

var __hdlWin = null
function WindowDetail(URL, WScale, HScale) {
    W = Math.round(screen.availWidth * WScale)
    H = Math.round(screen.availHeight * HScale)
    L = screen.availWidth - W - 50
    if (__hdlWin != null && !__hdlWin.closed) {
        __hdlWin.focus();
    }
    else {
        
        __hdlWin = window.open(URL, null, "toolbar=0,scrollbars=1,resizable=1,width=" + W + ",Height=" + H + ",top=10,left=" + L)
        __hdlWin.focus();
    }

}

function WindowDetailFixed(URL, W, H) {
    L = screen.availWidth - W - 50
    if (__hdlWin != null && !__hdlWin.closed) {
        __hdlWin.focus()
    }
    else
        __hdlWin = window.open(URL, null, "toolbar=0,scrollbars=1,resizable=1,width=" + W + ",Height=" + H + ",top=10,left=" + L)
}


function FieldRecord(name, value) {
    this.name = name
    this.value = value
}

function SerilizableRecord(serialString, separator) {
    fields = new Array()
    deliChar = separator;
    temps = serialString.split('|');
    for (var i = 0; i < temps.length - 1; i = i + 2) {
        fields.push(new FieldRecord(temps[i], temps[i + 1]))
    }
    this.report = __report
    this.getValue = __getValue


}
function __getValue(name) {
    var str = new String();
    for (var i = 0; i < fields.length; ++i) {
        if (fields[i].name == name)
            return fields[i].value

    }
    return ''
}
function __report() {
    var str = new String();
    for (var i = 0; i < fields.length; ++i) {
        str += fields[i].name + ' = ' + fields[i].value + '\r\n';

    }
    alert(str)

}

function UnitNumber() {
    return new Date().getTime();
}

var xmlhttp
function loadXMLDoc(url, callbackfunction) {
    xmlhttp = null
    // code for Mozilla, etc.
    if (window.XMLHttpRequest) {
        xmlhttp = new XMLHttpRequest()
    }
    // code for IE
    else if (window.ActiveXObject) {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP")
    }
    if (xmlhttp != null) {

        xmlhttp.onreadystatechange = callbackfunction
        xmlhttp.open("GET", url, true)
        xmlhttp.send(null)
    }
    else {
        alert("Your browser does not support XMLHTTP.")
    }
}

function getAbsolutePosition(obj) {
    var curleft = 0;
    var curtop = 0;
    if (obj.offsetParent) {
        while (obj.offsetParent) {
            curleft += obj.offsetLeft - obj.scrollLeft;
            curtop += obj.offsetTop - obj.scrollTop;
            var position = '';
            if (obj.style && obj.style.position) position = obj.style.position.toLowerCase();
            if ((position == 'absolute') || (position == 'relative')) break;
            while (obj.parentNode != obj.offsetParent) {
                obj = obj.parentNode;
                curleft -= obj.scrollLeft;
                curtop -= obj.scrollTop;
            }
            obj = obj.offsetParent;
        }
    }
    else {
        if (obj.x)
            curleft += obj.x;
        if (obj.y)
            curtop += obj.y;
    }
    return { x: curleft, y: curtop };
    //return curleft;
}



function getAbsoluteTop(obj) {
    oTop = obj.offsetTop;
    while (obj.offsetParent != null) {
        oParent = obj.offsetParent;
        oTop += oParent.offsetTop;
        obj = oParent;
    }
    return oTop;
}




function EnterToClick(enterObjId, clickObjId) {

    var el = document.getElementById(enterObjId)
    if (el.addEventListener)
        el.addEventListener("keypress", function(event) {
            if (event.keyCode == 13) {
                document.getElementById(clickObjId).click();
                return false;
            }
        }, true);
    else
        el.attachEvent('onkeypress', function() {
            if (event.keyCode == 13) {
                document.getElementById(clickObjId).click();
                return false;
            }
        });

}


function CloseWindowWithConfirm(confirmMessage) {
    if (window.confirm(confirmMessage))
        window.close()
}


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);
}
