function ajax(){
  
  this.send=send;
  this.xmlHttp=null;
  
  function GetXmlHttpObject(){
    var xmlHttp=null;
    try{
      xmlHttp=new XMLHttpRequest();
    }catch (e){
      try{
        xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
      }
      catch (e){
      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    }
   return xmlHttp;
  }
  
  function add_url(urlx){
    url=urlx;
    return url;
  }
  function alertx(){
    alert("url:"+url+"\nparam:"+param);
  }
  function add_param(paramx){
     sep="";param="";
     if(paramx){
     
        for(b in paramx){
        param+=sep+paramx[b][0]+"="+encodeURI(paramx[b][1]);
        sep="&";
      }
     }
     if(param)param+="&sid="+Math.random();
     return param;
  }
  
  function send(urlx,paramx,fx){
    url=add_url(urlx);
    param=add_param(paramx);
    //alert(param);
    xmlHttp=GetXmlHttpObject();
    this.xmlHttp=xmlHttp;
    xmlHttp.onreadystatechange=fx;
    POST(url,param);
  }
  
  function POST(url, parameters) {
      xmlHttp.open('POST', url, true);
      xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      xmlHttp.setRequestHeader("Content-length", parameters.length);
      xmlHttp.setRequestHeader("Connection", "close");
      xmlHttp.send(parameters);
  }
 
}