﻿PWC.MyServer = function(){
    var self = this;
	self.method = "GET";
	self.http = new Array();
	self.onFinish = function(){};
	self.onStatus = function(){};
	self.onState = function(){};
	self.response = null;
	self.responseXML = null;
	self.status = null;
	self._state = null;
	self.url = "";
	self.vars = "";
    self.createRequestObject = function(){
        var request_ = false;
        //verificamos si existe el objeto xmlhttprequest
        if(window.XMLHttpRequest) {
            request_ = new XMLHttpRequest();  
        } else {
            //En caso de que no como el IE6 verificamos su version de XMLHttp
            var asParsers=['Msxml2.XMLHTTP.5.0','Msxml2.XMLHTTP.4.0','Msxml2.XMLHTTP.3.0','Msxml2.XMLHTTP', 'Microsoft.XMLHTTP'];
            for (var iCont=0; ((!request_) && (iCont<asParsers.length)); iCont++)
            {	
                try{
                    request_=new ActiveXObject(asParsers[iCont]);	
                }catch(e){
                    request_=false;	
                }
            }
        }
        return request_;
    }
    self._get = function(){
		var curDateTime = self.http.length;
		self.http[curDateTime] = self.createRequestObject();
		var strQry = self.url + "?" + self.vars;
		self.http[curDateTime].open('GET', strQry);
		var me = this;
		self.http[curDateTime].onreadystatechange = function()
		{
			self._state = self.http[curDateTime].readyState;
			self.onState();
			switch(self.http[curDateTime].readyState){
				case 4:
				    self.status = self.http[curDateTime].status;
				    self.onStatus();
					if (self.http[curDateTime].status == 200 || self.http[curDateTime].status == 304){
						try{
							self.response = self.http[curDateTime].responseText;
						}catch(ex){
							if (ex.description.indexOf("-1072896748")>0) { 
										self.response = "";
										window.status = ex.description;
							}
						}
						self.responseXML = self.http[curDateTime].responseXML;
						self.onFinish();
					}
					break;
			}
		}
		self.http[curDateTime].send(null);
	}
	self._post = function(){
		var curDateTime = self.http.length;
		self.http[curDateTime] = self.createRequestObject();
		var strQry = self.url;
		self.http[curDateTime].open('POST', strQry,true);
		var me = this;
		self.http[curDateTime].onreadystatechange = function()
		{
				self._state = self.http[curDateTime].readyState;
			    self.onState();
			    switch(self.http[curDateTime].readyState){
				    case 4:
					    self.status = self.http[curDateTime].status;
				        self.onStatus();
					    if (self.http[curDateTime].status == 200 || self.http[curDateTime].status == 304){
						    self.response = self.http[curDateTime].responseText;
						    self.responseXML = self.http[curDateTime].responseXML;
						    self.onFinish();
					    }
					    break;
			    }
		}
		self.http[curDateTime].setRequestHeader("encoding", "ISO-8859-1");
		self.http[curDateTime].setRequestHeader("Content-type", "application/x-www-form-urlencoded;Charset=iso-8859-1");
		self.http[curDateTime].setRequestHeader("Content-length", self.vars.length);
		self.http[curDateTime].setRequestHeader("Connection", "close");
		self.http[curDateTime].send(self.vars);

	}


}

