function XHRProx(url){
    var url;
    
    this.url = url;
    this.GetXHR = GetXHR;
    this.SendXHR = SendXHR;
    this.URL2Doc = URL2Doc;
    
    function GetXHR(handler){
       var xhr = null;   
       if (typeof window.ActiveXObject != 'undefined' ){
           xhr = new ActiveXObject("Microsoft.XMLHTTP");
           xhr.onreadystatechange = function(){handler(xhr);};
       }else{
           xhr = new XMLHttpRequest();
           xhr.onload = function(){handler(xhr);};
       }
       return xhr;
    }
    function SendXHR(xhr, params){
        xhr.open( "POST", url, true );
        xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
        xhr.send(params);
        return xhr;
    }
    function URL2Doc(path){
        if (typeof window.ActiveXObject != 'undefined' ){
            var xsl = new ActiveXObject("MSXML2.DOMDocument");
            xsl.async = false;
            xsl.load(path);
            return xsl;
        }else{
            var xmlhttp = new XMLHttpRequest();
            xmlhttp.open("GET", path, false);
            xmlhttp.send(null);
            return xmlhttp.responseXML;
        }
    }
}
