//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
//-----------------------------------------------------------------

function Ajax(){
    var xml_supported=false;
    var xml_http=null;
    var xml_tested=false;
    this.XmlTest();
}

Ajax.prototype.XmlTest = function() {
    if (this.xml_tested) return;
    if (typeof XMLHttpRequest!='undefined') {
        try {
            var test = new XMLHttpRequest();
            this.xml_supported=true;
        } catch (e) {
            this.xml_supported=false;
        }
    }
    if (!this.xml_supported && window.createRequest) {
        try {
            var test = window.createRequest();
            this.xml_supported=true;
        } catch (e) {
            this.xml_supported=false;
            //alert('Your browser does not support my implemention of XMLHttpRequest and therefore nothing will work');
        }
    }
    this.xml_tested=true;
}

Ajax.prototype.XmlNew = function() {
    try {
        var newone = new XMLHttpRequest();
        return newone;
    } catch (e) {}
    try {
        var newone = window.createRequest();
        return newone;
    } catch (e) {}   
}

Ajax.prototype.XmlGetRequest = function(loc, prams, callback, obj) {
   var xml_http=this.XmlNew();
   xml_http.open('POST', loc, true);
   xml_http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
   xml_http.setRequestHeader("Content-length", prams.length);
   xml_http.setRequestHeader("Connection", "close");
   xml_http.setRequestHeader("User-Agent","MACv2");
   if (callback!=null){
      xml_http.onreadystatechange=function() {
         if (this.readyState==4) {
            this.responseText == "" ? callback("",obj) : callback(this.responseText.split(";"),obj);
         }
      }
   }
   //alert('Posting to: '+loc);
   xml_http.send(prams);
}

Ajax.prototype.XmlStimUrl = function(loc, prams){
   var xml_http=this.XmlNew();
   xml_http.open('POST', loc, true);
   xml_http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
   xml_http.setRequestHeader("Content-length", prams.length);
   xml_http.setRequestHeader("Connection", "close");
   xml_http.setRequestHeader("User-Agent","MACv2");
   xml_http.send(prams);
   //alert(loc + ' ' + prams);
}
