function Ajax()
 {
  var http_request = false;
   //var _datareturn='';//data return
  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;
  }
this.setFormObject=setFormObject;

  function createRequest()
  {
  
    http_request = false ;
    if (window.XMLHttpRequest) 
    { // Mozilla, Safari ,...
     http_request = new XMLHttpRequest();
     if (http_request.overrideMimeType) 
     {
       http_request.overrideMimeType('text/xml');
       // See note below about this line
      }
     } 
     else 
     if (window.ActiveXObject) 
      { // IE
      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 
       } 
      }//end for
     }//end if window.ActiveXObject
     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
     {
      if(!_formobject)return false;
    for(i = 0; i < _formobject.length; i++)
     {
        if (_postvalue.length) _postvalue += '&';
       switch(_formobject.elements[i].type)
       {
          case "text":
          _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;
        }//end switch
      }//end for
      http_request.open('POST', uniqueURI, true);
      http_request.onreadystatechange = handleResponse;
    http_request.setRequestHeader('Content-Type', 
             'application/x-www-form-urlencoded');
      http_request.send(_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="";
       }
       
     }//end else
  }//end function
  this.createRequest=createRequest;
  


  function handleResponse()
  {
   if (http_request.readyState == 4) 
   {
    if (http_request.status == 200) 
    {
      var docid=new Array();
      var i;
      docid=_documentid.split('~');
     
      if(_responsetype=="text")
      {
       var responsetxt=new Array();
       responsetxt=http_request.responseText.split('|');
       
       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.');
  }//else alert('There was a problem with the request '+http_request.readyState);
   return false;
  }//end function
 }//end class
 
 function doRequest(requestmethod, urladdress, responsetype, documentid, formobject){
  try
  {
   var obj=new Ajax();
   obj.setMethod(requestmethod);
   obj.setUrl(urladdress);
   obj.setResponseType(responsetype);
   obj.setDocumentId(documentid);
   if(formobject)
   {
    obj.setFormObject(formobject);
   }
  obj.createRequest();
    }catch(ex)
    {
   alert(ex.message);
    }
 } 
