HttpClient = new function(){};
HttpClient.Response = null;
HttpClient.resType = 'html';
HttpClient.method = 'GET';
HttpClient.callback = null;

HttpClient.getJs = function(url, callback){
	var sel1 = null;
	try{
		s1el = document.getElementById(url);
	}catch(e){
	}
	if( s1el ){
		s1el.parentNode.removeChild(s1el);
	}
	
	try{
		var s = document.createElement("SCRIPT");
		s.id = url;
		
		var h = document.getElementsByTagName("head").item(0);
		var cd = new Date().getTime();
		s.src = url+'&callback='+callback+'&t='+cd;
		h.appendChild(s);
	}catch(e){
		alert(e);
	}
};


HttpClient.doGet = function( url, callback ){
	content = null;
	HttpClient.callback = callback;
	this.Request( url, content, true );
	
}
HttpClient.xml = function( url, content ){
	this.Request( url, content );
	HttpClient.resType = 'xml';
	return this.http.responseXML;
}


HttpClient.Request = function( url, content, async ){
	async === true  || false;
	if( !content ){
		content = null;
	}
	
	this.http = HttpClient.Http();	
	//alert(this.http);
	var done = false;
	var hc = this;
	var checkState = function(){
		
		if( hc.http.readyState != 4 ){
			return;
		}
	
		done = HttpClient.checkResponse(async);
		if( done ){
			return;
		}
	}
	
    this.http.onreadystatechange = checkState;
    this.http.open(HttpClient.method, url, async);
    
    this.http.send(content);
}

HttpClient.checkResponse = function(async){
	 
	  if ( this.http.status == 200 ){
	  	if( async ){
			HttpClient.callback( HttpClient.http.respnseText );
			return true;
		}
	  	this.Response = HttpClient.http.responseXML;
		return true;
	  }
	  return false;
}

HttpClient.Http = function(){
	req = false;
    // branch for native XMLHttpRequest object
    if(window.XMLHttpRequest) {
    	try {
			req = new XMLHttpRequest();
        } catch(e) {
			req = false;
        }
    // branch for IE/Windows ActiveX version
    } else if(window.ActiveXObject) {
       	try {
        	req = new ActiveXObject("Msxml2.XMLHTTP");
      	} catch(e) {
        	try {
          		req = new ActiveXObject("Microsoft.XMLHTTP");
        	} catch(e) {
          		req = false;
        	}
		}
    }
	if(req) {
		return req;
	}
}

