﻿

function AjaxCallerService(xUrl, ResponseHandler) {
    var xmlhttp = false;
    /*@cc_on@*/
    /*@if (@_jscript_version >= 5)
    // JScript gives us Conditional compilation, we can cope with old IE versions.
    // and security blocked creation of the objects.
    try {
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e) {
        try {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch (E) {
            xmlhttp = false;
        }
    }
    /*@end@*/

    var randomnumber = Math.floor(Math.random() * 9958646459)

    xUrl = ((xUrl.toString().indexOf("?") == -1) ? (xUrl + "?rand=" + randomnumber) : xUrl + "&rand=" + randomnumber);

    if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
        xmlhttp = new XMLHttpRequest();
    }
    xmlhttp.open("GET", xUrl, true);
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4) {
            var OldResponseHandler = ResponseHandler;
            /*@cc_on@*/  // IE 6 Fix for PNG to be Invoked Every time when Page Starts rendering New Images with Other Content
            /*@if (@_jscript_version <= 5.6) // Conditional Compile and Execution
            ResponseHandler = function(DocumentElement, e) {
                OldResponseHandler(DocumentElement, e);
                correctPNG();
            }
            /*@end@*/
            ResponseHandler(xmlhttp.responseXML.documentElement, this);
        }
    }
    xmlhttp.send(null)
}
