﻿function JavaScriptErrorHandler(message, url, line) {
    var xmlHttpRequest;
    var bHookTheEventHandler = true;
    if (window.XMLHttpRequest) {
        xmlHttpRequest = new XMLHttpRequest();
    }
    else {
        try {
            xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e) {
            // AJAX not supported
            return false;
        }
    }
    var errorXML = "<JavaScriptError line='" + line + "' url='" + url + "'>" + message + "</JavaScriptError>";
    var xmlDoc;
    if (document.implementation && document.implementation.createDocument) {
        var parser = new DOMParser();
        xmlDoc = parser.parseFromString(errorXML, "text/xml");
    }
    else if (window.ActiveXObject) {
        xmlDoc = new ActiveXObject("Msxml2.DOMDocument.3.0");
        xmlDoc.async = false;
        xmlDoc.loadXML(errorXML);
    }
    else {
        // AJAX not supported
        return false;
    }
    xmlHttpRequest.open("post", "JavaScriptErrorHandler.ashx", bHookTheEventHandler);
    xmlHttpRequest.send(xmlDoc);
    return true;
}