// JavaScript Document

var globalAjaxObject=null;

function Ajax(){
	this.httpRequest=false;
	if(window.XMLHttpRequest)this.httpRequest=new XMLHttpRequest();
	else if(window.ActiveXObject){
		try{this.httpRequest=new ActiveXObject("Msxml2.XMLhttpRequest");}catch(e){
			try{this.httpRequest=new ActiveXObject("Microsoft.XMLHTTP");}catch(er){}
		}
	}
	if(!this.httpRequest)alert('Ajax >> can not create XMLhttpRequest object');
	this.GET=new Object();
	this.POST=new Object();
}
Ajax.prototype.makeRequest=function(url,targetObject){
	this.targetObject=targetObject;
	this.httpRequest.open("POST",url,true);
	var post='';
    for(var name in this.POST) post+=name+'='+encodeURIComponent(this.POST[name])+'&';
	this.httpRequest.onreadystatechange = function(ajax){return function(){ajax.processStateChange();}}(this);
    this.httpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    this.httpRequest.setRequestHeader("Content-Length", post.length);
	this.httpRequest.send(post);
}
Ajax.prototype.processStateChange=function(){
	if(this.httpRequest.readyState==4){
		if(this.httpRequest.status==200){
			var resulType;
			try{
				if(this.targetObject.ajaxResponseType) resulType=this.targetObject.ajaxResponseType;
			}catch(er){
				resulType='text';
			}
			switch(resulType){
			case 'XML':
				this.targetObject.processResult(this.httpRequest.responseXML);
				break;
			default:
				this.targetObject.processResult(this.httpRequest.responseText,this.httpRequest.responseXML);
				break;
			}
		}
		else alert('processStateChange >> error');
	}
}
