function newXMLHttpRequest() {
    var xmlreq = false;
    if (window.XMLHttpRequest) {
        xmlreq = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        // Try ActiveX
        try {
            xmlreq = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e1) {
            // first method failed 
            try {
                xmlreq = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e2) {
                // both methods failed 
            }
        }
    }
    return xmlreq;
}

function getReadyStateHandler(req, responseHandler) {
    return function () {
        if (req.readyState == 4) {
            if (req.status == 200) {
                responseHandler(req);
            } else {
                // TBD - Hack - Fix Later
                document.getElementById("ddmenu").className = 'nav2';
                alert("Error in AJAX Request " + req.status);
            }
        }
    }
}