//XMLHtttpRequest function
//as designed by PPK, who's been my particular idol since childbirth

function sendRequest(url,callback,postData,trigger)
   {
   var req=createXMLHTTPObject();
   if(!req)return;
   
   var method=(postData)?"POST":"GET";
   req.open(method,url,true);
   req.setRequestHeader('User_agent','PPK_xmlhttp_shibumi/1.0');

   if(postData){req.setRequestHeader('Content-type','application/x-www-form-urlencoded');}
   
   req.onreadystatechange=function()
      {
      if(req.readyState!=4) return;
      if(req.status!=200 && req.status!=304)
         {
	 alert('HTTP error ' + req.status);
         return;
         }
      if(!trigger)
         {
         callback(req);
         }
      else
         {
         callback(req,trigger);
         }
      }
   if (req.readyState == 4) return;
   req.send(postData);
   }

var XMLHttpFactories = [
   function () {return new XMLHttpRequest()},
   function () {return new ActiveXObject("Msxml2.XMLHTTP")},
   function () {return new ActiveXObject("Msxml3.XMLHTTP")},
   function () {return new ActiveXObject("Microsoft.XMLHTTP")}
];

function createXMLHTTPObject() 
   {
   var xmlhttp = false;
   for (var i=0;i<XMLHttpFactories.length;i++) 
      {
      try 
         {
         xmlhttp = XMLHttpFactories[i]();
         }
      catch (e) 
         {
         continue;
         }
      break;
      }
   return xmlhttp;
   }


