function Ajax(){
	 var http_request = false;
	 var _postvalue='';//get data from form value
	 var _method='';//get or post
	 var _url='';//url address
	 var _responsetype='';//text or xml
	 var _formobject;//form id
	 var _documentid='';//get document id
	 
	 function setMethod(setValue){
	      _method=setValue;
	  	return false;
	 }
	 this.setMethod=setMethod;
	  
	 function setUrl(setValue){
	  	_url=setValue;
	 }
	  
	 this.setUrl=setUrl;
  
  	 function setResponseType(setValue){
   		_responsetype=setValue;
  	}
  	
  	this.setResponseType=setResponseType;
  
  	function setDocumentId(setValue){
   		_documentid=setValue;
  	}
  	
  	this.setDocumentId=setDocumentId;
  
  	function setFormObject(setValue){
   		//_formobject=setValue;
   		_formobject=document.getElementById(setValue);
  	}
  	
  	this.setFormObject=setFormObject;
  	
  	function createRequest(){
      		http_request = false ;
    		if (window.XMLHttpRequest){ 
     			http_request = new XMLHttpRequest();
     			if (http_request.overrideMimeType){
       				http_request.overrideMimeType('text/xml');
            		}
     		} 
     		else if(window.ActiveXObject){ 
      			var aVersions = [ "MSXML2.XMLHttp.6.0", "MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0", "MSXML2.XMLHttp.3.0", "Microsoft.XMLHTTP" ];
      			for (var i = 0; i < aVersions.length; i++){
       				try{ 
         				http_request = new ActiveXObject(aVersions[ i ]);
         				break;
      				}
       				catch (e){
       					// Do nothing 
       				} 
      			}
     		}
     		if (!http_request){
      			alert ('Giving up :( Cannot create an XMLHTTP instance');
      			return false;
     		}
     		var timestamp = new Date();
     		var uniqueURI = _url+ (_url.indexOf("?") > 0 ? "&" : "?")+ "timestamp="+timestamp.getTime();
     		
     		if(_method=="get"){
      			http_request.open('GET', uniqueURI, true);
      			http_request.onreadystatechange = handleResponse;
      			http_request.send(null);
     		}
     		else{
     		           //alert(_formobject);
     		           if(!_formobject)return false;
     		           //alert(_formobject.elements[0].type);
      			   for(i = 0; i < _formobject.length; i++){
        			if (_postvalue.length) _postvalue += '&';
        			switch(_formobject.elements[i].type){
        				case "text":
          					//alert(_formobject.elements[i].name);
           					_postvalue += _formobject.elements[i].name + '=' + encodeURI(_formobject.elements[i].value);
          					break;
          				case "password":
           					_postvalue += _formobject.elements[i].name + '=' + encodeURI(_formobject.elements[i].value);
          					break;
          				case "textarea":
           					_postvalue += _formobject.elements[i].name + '=' + encodeURI(_formobject.elements[i].value);
          					break;
          				case "hidden":
           					_postvalue += _formobject.elements[i].name + '=' + encodeURI(_formobject.elements[i].value);
          					break;
          				case "select-one":
           					if(_formobject.elements[i].selectedIndex>=0){
            						_postvalue += _formobject.elements[i].options[_formobject.elements[i].selectedIndex-1].value;
          					}
          					break;
         				}
      			   }
      			   _postvalue += "id=" + Math.random(); 
      			   http_request.open('POST', uniqueURI, false);
      			   http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
      			   http_request.setRequestHeader("Content-length", _postvalue.length);
      			   http_request.setRequestHeader("Connection", "close");
      			   http_request.send(_postvalue);
      			   http_request.onreadystatechange = handleResponse;
      			   alert(_postvalue);
      			   for(i = 0; i < _formobject.length; i++){
      				if((_formobject.elements[i].type=="text")||(_formobject.elements[i].type=="textarea")||(_formobject.elements[i].type=="hidden")||(_formobject.elements[i].type=="password"))
      					 _formobject.elements[i].value="";
       			   }
       
     		}
     		//return false;
  	}
  	this.createRequest=createRequest;
  	
  	function handleResponse(){
  		//alert(http_request.readyState);
  		if (http_request.readyState == 4){
    			if (http_request.status == 200){
      				var docid=new Array();
      				var i;
      				docid=_documentid.split('~');
      				//alert(docid);
      				if(_responsetype=="text"){
       					var responsetxt=new Array();
       					responsetxt=http_request.responseText.split('|');
       					//alert(responsetxt);
       					for(i=0;i<docid.length;i++){
        					document.getElementById(docid[i]).innerHTML=''+responsetxt[i];
       					}
      				}
      				else if(_responsetype=="xml")
       					alert(http_request.responseXML);
   
    			} 
    			else alert('There was a problem with the request.');
   		}
   		return false;
  	}
}
     
function doRequest(requestmethod, urladdress, responsetype, documentid, formobject){
  		try{
   			var obj=new Ajax();
   			obj.setMethod(requestmethod);
   			obj.setUrl(urladdress);
   			//alert(urladdress);
   			obj.setResponseType(responsetype);
   			obj.setDocumentId(documentid);
   			//if(formobject){
    				obj.setFormObject(formobject);
   			//}
   			obj.createRequest();
    		}
    		catch(ex){
   			alert(ex.message);
   			//alert('me');
    		}
} 








     		

