
function createHttpRequest()
{
    var oRequest;
    if (typeof XMLHttpRequest == "undefined" && window.ActiveXObject) {
        // IE
            var arrSignatures = ["MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0",
                                 "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP",
                                 "Microsoft.XMLHTTP"];
            for (var i=0; i < arrSignatures.length; i++) {
                try {
                    var oRequest = new ActiveXObject(arrSignatures[i]);
                    return oRequest;
                } catch (oError) {
                    //ignore
                }
            }
            throw new Error("MSXML is not installed on your system.");
    } else {
       // safari / firefox
       oRequest = new XMLHttpRequest();
    }
    return oRequest;

}

function checkStatus(url, aCallback)
{
    makeRequest(url, aCallback);
}

function makeRequest(url, aCallback)
{
    var http_request = createHttpRequest();
    if (!http_request) {
        //alert('Giving up :( Cannot create an XMLHTTP instance #1');
        return false;
    }

    http_request.onreadystatechange = function() { aCallback(http_request); };
    http_request.open('GET', url, true);
    http_request.send(null);
}

function makeRequest2(url, container) {
    var http_request = createHttpRequest();
    if (!http_request) {
        //alert('Giving up :( Cannot create an XMLHTTP instance #1');
        return false;
    }

    http_request.onreadystatechange = function() { writeResult(container, http_request); };
    http_request.open('GET', url, true);

    http_request.send(null);
}

function writeResult(container, ahttp_request) {
    if (ahttp_request.readyState == 4) {
        if (ahttp_request.status == 200) {
           var response = ahttp_request.responseText;
           if( "" != response ){
               document.getElementById(container).innerHTML = response;
           }
        }
    }
}

function loadXML(filename, aCallback)
{
    var http_request = createHttpRequest();

    http_request.onreadystatechange = function() { aCallback(http_request); };
    http_request.open('GET', filename, true);
    http_request.send(null);
}

function getXML(filename)
{
    var result;
    var http_request = createHttpRequest();

    http_request.open('GET', filename, false);
    http_request.send(null);
    result = http_request.responseXML;
    return result;
}

function processXMLFirefoxFragment(dest, xml, xsl)
{
    var xsltProcessor = new XSLTProcessor();
    xsltProcessor.importStylesheet(xsl);

    var fragment = xsltProcessor.transformToFragment(xml, document);
    document.getElementById(dest).innerHTML = "";
    document.getElementById(dest).appendChild(fragment);
}

function processXMLIEFragment(dest, xml, xsl)
{
    document.getElementById(dest).innerHTML = xml.transformNode(xsl);
}

function processDataFragment(dest, xml, xsl)
{
    if (typeof ActiveXObject == "undefined") {
        //Firefox
        processXMLFirefoxFragment(dest, xml, xsl);
    }
    else{
        //IE
        processXMLIEFragment(dest, xml, xsl);
    }
}

function getTimeSeed()
{
    var date = new Date();
    return "" + date.getHours() + date.getMinutes();
}


