Ajax = function (sUrl,fuHandler) {
  var MyRequest=null,MyUrl=sUrl,MyHandler=fuHandler;
  this.Valid = function(){ return (MyRequest!=null); }
  this.Url = function(sUrl){ MyUrl=sUrl; }
  this.Handler = function(fuHandler){ MyHandler=fuHandler; }
  this.Get = function(sParam) { if (MyRequest==null) return;
    MyRequest.abort(); MyRequest.onreadystatechange=Listen; MyRequest.open('GET',MyUrl+'?'+sParam,true);
    MyRequest.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); MyRequest.send(null); }
  this.Post = function(sParam){ if (MyRequest==null) return;
    MyRequest.abort(); MyRequest.onreadystatechange=Listen; MyRequest.open('POST',MyUrl,true);
    MyRequest.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); MyRequest.send(sParam); }
  this.Abort = function(){ if (MyRequest==null) return; MyRequest.abort(); MyRequest.onreadystatechange=Listen; }
  function Create() { if (MyRequest!=null) return;
    try { MyRequest=new XMLHttpRequest(); } catch(e) {
    try { MyRequest=new ActiveXObject('Msxml2.XMLHTTP'); } catch(e) {
    try { MyRequest=new ActiveXObject('Microsoft.XMLHTTP'); } catch(e) {
    try { MyRequest=window.createRequest(); } catch(e) { MyRequest=null; }}}}}
  function Listen(){ switch (MyRequest.readyState) {
    case 4: if (MyRequest.status==200) MyHandler(MyRequest.responseText); break; }}
  Create();
}