function myAjax()
{
}

  myAjax.prototype.runAjax = this.runAjax;

 function createAJAX(){
   if (window.ActiveXObject) {
     try
      {
         return new ActiveXObject('Msxml2.XMLHTTP');
      } catch(e) {
        try {
              return new ActiveXObject('Micorsoft.XMLHTTP');
        } catch(e2) {
              return null;
        }
      }
     } else if (window.XMLHttpRequest) {
             return new XMLHttpRequest();
    } else { return null; }
 }


 function onRcvData(http,receive,resultype,fun)
 {
    if (http.readyState==4) {
       if (http.status ==200) {  //-- status must be lowcase,otherwise occure error in FF
          switch(resultype)
          {
            case "alert" :    if (http.responseText !="")  alert(http.responseText);  break;
            case "value" : document.getElementById(receive).value = http.responseText;  break; 
            case "code" :   var ret = eval(http.responseText);  if(ret) { eval(fun);} break;
            case "" : break;
            default :  
              if (document.getElementById(receive) == undefined) { alert("can not found object");}
              else {   document.getElementById(receive).innerHTML = http.responseText;}  break;
          }
       } else {
          alert("process failed error:"+http.status); //-- design time for debug
//          window.location.reload();  //-- run time
       }
    }
 }

 function runAjax(target,method,param,receive,resultype,fun)
 {
     var ajax  = createAJAX();
     if (ajax == null) { alert("create Ajax failure ! "); return;}
     ajax.open(method,target,true);
//------
    if  (method.toUpperCase() =="POST")
    {
		ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		ajax.setRequestHeader("Content-length", param.length);
		ajax.setRequestHeader("Connection", "close")
    }
//------
     ajax.onreadystatechange = function(){ onRcvData(ajax,receive,resultype,fun);}
     ajax.send(param);
 }


