/*
* Generic, common Ajax stuff for NPScripts.com
* A good chunk of this was initially gathered from:
*   http://developer.mozilla.org/en/docs/AJAX:Getting_Started
*/


var http = false;

function createHTTP()
{
   http = false;
   
   if (window.XMLHttpRequest)
   {
      http = new XMLHttpRequest();
      if (http.overrideMimeType)
         http.overrideMimeType('text/xml');
   }
   
   else if (window.ActiveXObject)
   {
      try
      {
         http = new ActiveXObject("Msxml2.XMLHTTP");
      }
      catch (e) {
         try
         {
            http = new ActiveXObject("Microsoft.XMLHTTP");
         }
         catch (e) {}
      }
   }   
   
   if (!http)
   {
      alert("Cannot create an XMLHTTP instance.");
   }
}


function getFormData(f)
{

   var str = "";
   
   for (i=0; i<f.elements.length; i++)
   {
      if (f.elements[i].tagName == "SELECT")
      {
         var sel = f.elements[i];
         str += sel.name + "=" + sel.options[sel.selectedIndex].value + "&";
      }
      
      else
      {
         str += f.elements[i].name + "=" + encodeURI(f.elements[i].value) + "&";
      }
   }
   
   return str;
}


function postForm(url, form_id)
{
   if (!http)
      createHTTP();

   var str = "";
   var f = document.getElementById(form_id);
   
   str = getFormData(f);

   str = str.substring(0, str.length-1);
      
   http.onreadystatechange = handleResponse;
   http.open('POST', url, true);
   http.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
   http.send(str);
}



// Just returns the response text... Useless, no?
function handleResponse()
{
   if (http.readyState == 4)
   {
      if (http.status == 200)
      {
         return http.responseText;
      }  
      else
         alert("There was a problem with the request.");
   }
}

