function getXmlHttp(){
  var xmlhttp;
  try {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
    try {
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (E) {
      xmlhttp = false;
    }
  }
  if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
    xmlhttp = new XMLHttpRequest();
  }
  return xmlhttp;
}


function request(url, php) {
 var req=getXmlHttp();
 if (!php) {php='aj.php';}
 req.open('POST', php, true);
 req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
 req.onreadystatechange = function() {
  if (req.readyState == 4) {
     if(req.status == 200) {
       //alert(req.responseText);
       if (req.responseXML!=null) {
        err=req.responseXML.documentElement.getElementsByTagName('err');       
        if (err[0]!=undefined) {showerror(err);} else {
         fn=req.responseXML.documentElement.getElementsByTagName('fn');
         eval(fn[0].childNodes[0].nodeValue+'(req)');
        }
       } else {
        //alert(req.responseText);
       }
     }
  }
 };
req.send(url);

}

function getnode(req, tag, num) {
 if (!num) {num=0;}
 rt='';
 ret=req.responseXML.documentElement.getElementsByTagName(tag);
 if (ret[num]==undefined) {ret='';} else {
  if (ret[num].childNodes[0]==undefined) {ret='';} else {
   for (i=0;i<ret[num].childNodes.length;i++) {
    rt+=ret[num].childNodes[i].nodeValue;
   }
  }
 }
 rt=rt.replace(/%3C/g, '<');
 rt=rt.replace(/%3E/g, '>');
 rt=rt.replace(/%3D/g, '=');
 rt=rt.replace(/%26/g, '&');;
 return rt;
}


