﻿	
function clickButtonOnEnter(e, buttonid){ 
    var evt = e ? e : window.event;
    var bt = document.getElementById(buttonid);
    if (bt){ 
        if (evt.keyCode == 13){ 
            bt.click(); 
            return false; 
        } 
    } 
}

function SuppressEnter(e) {
    var evt = e ? e : window.event;
    if (evt.keyCode == 13) return false; 
}

function ScrollToElement(elementid, offset) {
	var element = document.getElementById(elementid);
	if (element != null) {
		var newy = FindPos(element)[1];
		window.scrollTo(0, newy + offset);
	};
}

function FindPos(element) {
	var curleft = curtop = 0;
	if (element.offsetParent) {
		do {
			curleft += element.offsetLeft;
			curtop += element.offsetTop;
		} while (element = element.offsetParent);
	}
	return [curleft, curtop];
}

function encodeHtml(input) {
	var output = escape(input);
	output = output.replace(/\//g,"%2F");
	output = output.replace(/\?/g,"%3F");
	output = output.replace(/=/g,"%3D");
	output = output.replace(/&/g,"%26");
	output = output.replace(/@/g,"%40");
	return output;
}

function onSilverlightError(sender, args) {

    var appSource = "";
    if (sender != null && sender != 0) {
        appSource = sender.getHost().Source;
    } 
    var errorType = args.ErrorType;
    var iErrorCode = args.ErrorCode;
    
    var errMsg = "Unhandled Error in Silverlight 2 Application " +  appSource + "\n" ;

    errMsg += "Code: "+ iErrorCode + "    \n";
    errMsg += "Category: " + errorType + "       \n";
    errMsg += "Message: " + args.ErrorMessage + "     \n";

    if (errorType == "ParserError")
    {
        errMsg += "File: " + args.xamlFile + "     \n";
        errMsg += "Line: " + args.lineNumber + "     \n";
        errMsg += "Position: " + args.charPosition + "     \n";
    }
    else if (errorType == "RuntimeError")
    {           
        if (args.lineNumber != 0)
        {
            errMsg += "Line: " + args.lineNumber + "     \n";
            errMsg += "Position: " +  args.charPosition + "     \n";
        }
        errMsg += "MethodName: " + args.methodName + "     \n";
    }

    throw new Error(errMsg);
}


function isSilverlightInstalled() 
{
    var isSilverlightInstalled = false;
    try 
    {
        try 
        {
            var slControl = new ActiveXObject('AgControl.AgControl');        //check on IE
            isSilverlightInstalled = true;
        }
        catch (e) //either not installed or not IE. Check Firefox
        { 
            if (navigator.plugins["Silverlight Plug-In"]) isSilverlightInstalled = true;
        }
    }
    catch (e) { }
    return isSilverlightInstalled;
}

WaitForInstallCompletion = function() {
    try
    {    
        navigator.plugins.refresh();  //This forces Firefox/Safari to refresh their list of known plugins.
    }
    catch(e) //IE does not support the method, so an exception will be thrown.
    {
    }
    if (isSilverlightInstalled()) window.location.reload(false); else setTimeout(WaitForInstallCompletion, 3000);
};

function AddScriptTag(Source, Parent) {
    var scripttag = document.createElement('SCRIPT');
    scripttag.src=Source;
    scripttag.type='text/javascript';
    document.getElementById(Parent).innerHTML='';
    document.getElementById(Parent).appendChild(scripttag);
}