//So yeah this is really non portable Javascript
//if you can find something useful here nice and please leave
//a thanks to the bloke at www.somedodgywebsite.com in your comments
//-----------------------------------------------------------------

var xmltested=false;
var xmlsupported=false;

function XmlTest() {
   if (xmltested) {return;}
   if (typeof XMLHttpRequest!='undefined') {
      try {
         test = new XMLHttpRequest();
         xmlsupported=true;
      } catch (e) {
         xmlsupported=false;
      }
   }
   if (!xmlsupported && window.createRequest) {
      try {
         test = window.createRequest();
         xmlsupported=true;
      } catch (e) {
         xmlsupported=false;
         //alert('Your browser does not support my implemention of XMLHttpRequest and therefore nothing will work');
      }
   }      
   xmltested=true;
}

function XmlNew() {
      try {
         newone = new XMLHttpRequest();
         return newone;
      } catch (e) {}
      try {
         newone = window.createRequest();
         return newone;
      } catch (e) {}   
}

function XmlGetRequest(prams,callback) {
   if (!xmltested) {XmlTest();}
   if (!xmlsupported) {return;}
   
   this.prams=prams;
   this.xmlhttp=XmlNew();
   
   this.xmlhttp.open("POST", "/mac/mac2.php",true);
   this.xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
   this.xmlhttp.setRequestHeader("Content-length", this.prams.length);
   this.xmlhttp.setRequestHeader("Connection", "close");
   this.xmlhttp.setRequestHeader("User-Agent","MACv2");
   if (callback!=null){
      this.xmlhttp.onreadystatechange=function() {
         if (this.readyState==4) {
            this.responseText == "" ? callback("") : callback(this.responseText.split(";"));
         }
      }
   }
   //alert('Posting');
   this.xmlhttp.send(this.prams);
}

function XmlGetRequestEx(loc, prams, callback, obj) {
   if (!xmltested) {XmlTest();}
   if (!xmlsupported) {return;}
   
   this.prams=prams;
   this.xmlhttp=XmlNew();
   
   this.xmlhttp.open('POST', loc, true);
   this.xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
   this.xmlhttp.setRequestHeader("Content-length", this.prams.length);
   this.xmlhttp.setRequestHeader("Connection", "close");
   this.xmlhttp.setRequestHeader("User-Agent","MACv2");
   if (callback!=null){
      this.xmlhttp.onreadystatechange=function() {
         if (this.readyState==4) {
            this.responseText == "" ? callback("",obj) : callback(this.responseText.split(";"),obj);
         }
      }
   }
   //alert('Posting');
   this.xmlhttp.send(this.prams);
}

function XmlStimUrl(loc, prams){
   if (!xmltested) XmlTest();
   if (!xmlsupported) return;
   var xmlhttp=XmlNew();
   xmlhttp.open('POST', loc, true);
   xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
   xmlhttp.setRequestHeader("Content-length", prams.length);
   xmlhttp.setRequestHeader("Connection", "close");
   xmlhttp.setRequestHeader("User-Agent","MACv2");
   xmlhttp.send(prams);
   //alert(loc + ' ' + prams);
}