var xmlHttp;
var loc;

function getPage(str,l)
{ 
  msg = "";
  if (arguments.length==3) msg = arguments[2];
  xmlHttp=GetXmlHttpObject();
  if (xmlHttp==null)
  {
    alert ("Browser does not support HTTP Request");
    return;
  }
  loc=l;
  var url=str;
  document.getElementById(loc).innerHTML=msg;
  xmlHttp.onreadystatechange=stateChanged;
  xmlHttp.open("GET",url,true);
  xmlHttp.send(null);
}


function getPage_sync(str,l)
{ 
  msg = "";
  if (arguments.length==3) msg = arguments[2];
  xmlHttp=GetXmlHttpObject();
  if (xmlHttp==null)
  {
    alert ("Browser does not support HTTP Request");
    return;
  }
  var url=str;
  document.getElementById(l).innerHTML=msg;
  xmlHttp.open("GET",url,false);
  xmlHttp.send(null);
  
  if(xmlHttp.responseText.match(/^fwd=/) )
  {
    window.location = xmlHttp.responseText.substring(4);
  }
  else
  {
    document.getElementById(l).innerHTML=xmlHttp.responseText;
  }
}



// pass in url, location to display message, message, and form#
// Optional: 5th value which will override the parameters string in the post request
function postPage(url,l,msg,n)
{

  xmlHttp=GetXmlHttpObject();
  if (xmlHttp==null)
  {
    alert ("Browser does not support HTTP Request");
    return;
  }

  var num = n;
  var parameters="";

  if (arguments.length==5)
  {
    parameters = arguments[4];
  }
  else
  {
    for(var i=0;i<document.forms[num].elements.length;i++ )
    {
       if(i>0) parameters += "&";
       if(document.forms[num].elements[i].type=="checkbox") {
         if(document.forms[num].elements[i].checked) {
           parameters += document.forms[num].elements[i].name + "=on";
         } else {
           parameters += document.forms[num].elements[i].name + "=off";
         }
       } else {
         parameters += document.forms[num].elements[i].name + "=" + escape(encodeURI(document.forms[num].elements[i].value));
       }       
    }
  }

  loc=l;
  if(msg.length > 0) document.getElementById(loc).innerHTML=msg;
  xmlHttp.onreadystatechange=stateChanged;
  xmlHttp.open('POST', url, true);
  xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  xmlHttp.setRequestHeader("Content-length", parameters.length);
  xmlHttp.setRequestHeader("Connection", "close");
  xmlHttp.send(parameters);

}

function postPage_sync(url,l,msg,n)
{

  xmlHttp=GetXmlHttpObject();
  if (xmlHttp==null)
  {
    alert ("Browser does not support HTTP Request");
    return;
  }

  var num = n;
  var parameters="";

  if (arguments.length==5)
  {
    parameters = arguments[4];
  }
  else
  {
    for(var i=0;i<document.forms[num].elements.length;i++ )
    {
      if(i>0) parameters += "&";
      if(document.forms[num].elements[i].type=="checkbox") {
        if(document.forms[num].elements[i].checked) {
          parameters += document.forms[num].elements[i].name + "=on";
        } else {
          parameters += document.forms[num].elements[i].name + "=off";
        }
       } else {
         parameters += document.forms[num].elements[i].name + "=" + escape(encodeURI(document.forms[num].elements[i].value));
      }
    }
  }

  loc=l;
  if(msg.length > 0) document.getElementById(loc).innerHTML=msg;
  xmlHttp.open('POST', url, false);
  xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  xmlHttp.setRequestHeader("Content-length", parameters.length);
  xmlHttp.setRequestHeader("Connection", "close");
  xmlHttp.send(parameters);

  if(xmlHttp.responseText.match(/^fwd=/) )
  {
    window.location = xmlHttp.responseText.substring(4);
  }
  else
  {
    document.getElementById(l).innerHTML=xmlHttp.responseText;
  }

}

function stateChanged() 
{ 
  if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
  {
    if(xmlHttp.responseText.match(/^fwd=/) )
    {
      window.location = xmlHttp.responseText.substring(4);
    }
    else
    {
      document.getElementById(loc).innerHTML=xmlHttp.responseText;
    }
  } 
}

function GetXmlHttpObject()
{
var xmlHttp=null;
try
 {
 // Firefox, Opera 8.0+, Safari
 xmlHttp=new XMLHttpRequest();
 }
catch (e)
 {
 //Internet Explorer
 try
  {
  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  }
 catch (e)
  {
  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
 }
return xmlHttp;
}