/*#######################################################################

  Programmer: Erin Germ

  Script:     eGerm!
  
  Purpose:    Javascript to process eGerm! AJAX requests

  How to use: beats the heck out of me....

  Is used by: index.html

  Database:

  Version:    00.2

  Fixes:
  2007/02/15 - ver 00.2
    changed the way the script handles because the script was not 
      working when I moved it from my test SuSE/Apache environment to 
      the production Windows/IIS campus web server. Changed variables
      as paths

  2007/04/15 - ver 00.1
    buggy at best

#######################################################################*/

/* ====================================================================

  declare the following globals

=====================================================================*/

// the XmlHttpRequest/AJAX object
var xhrObject = getXmlHttpRequestObject();

// for SuSE/Apache test environment
//var path = "/test-a/sub_db/beta/egerm/include/"; 

// for Windows/IIS campus web server
var path = "/libweb/find/egerm/include/"; 


/* ====================================================================

  declare the following functions for AJAX requests

=====================================================================*/

// create the  browser specific XmlHttpRequest object 
function getXmlHttpRequestObject() 
{
  // for Mozilla, Safari, etc...
  if (window.XMLHttpRequest) 
  {
    return new XMLHttpRequest();
  } 
  // for IE
  else if (window.ActiveXObject) 
  {
    return new ActiveXObject("Microsoft.XMLHTTP");
  } 
  // alert saying browser doesn't support XmlHttpRequest
  else 
  {
    alert("Your browser doesn't support the XmlHttpRequest object (AJAX).");
  }
}

//Initiate the AJAX request
function initiateXhr(url, param) 
{
  if (xhrObject.readyState == 4 || xhrObject.readyState == 0) 
  {
    //Set up the connection to captcha_test.html. True sets the request to asyncronous(default)
    xhrObject.open("POST", url, true);

    //Set the function that will be called when the XmlHttpRequest objects state changes
    xhrObject.onreadystatechange = updateXhr;

    xhrObject.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xhrObject.setRequestHeader("Content-length", param.length);
    xhrObject.setRequestHeader("Connection", "close");

    //Make the request
    xhrObject.send(param);
  }
}

// display result to from initiateRequest's request
function updateXhr() 
{
  // IF readystate is not started or finished THEN initiate a new request
  if (xhrObject.readyState != 4)
  {
    document.getElementById('egermStatus').style.visibility = "visible";
  }

  // IF check if our response is ready
  if (xhrObject.readyState == 4) 
  {
    // set DIV with response text
    if (xhrObject.responseText != "true")
    {
      document.getElementById('egermDisplayRes').innerHTML = xhrObject.responseText;
      document.getElementById('egermStatus').style.visibility = "hidden";
    }
    else if (xhrObject.responseText == "true")
    {
      document.getElementById('egermDisplayRes').innerHTML = xhrObject.responseText;
      document.getElementById('egermStatus').style.visibility = "hidden";
    }
    else
    {
      temp = "Error! Error, Will Robinson!"
      document.getElementById('egermDisplayRes').innerHTML = temp;
      document.getElementById('egermStatus').innerHTML = "failed to load";
    }
  }
}


/* ====================================================================

  declare the following functions

=====================================================================*/

// simple display of either full (1)alphabetical, (2)subject OR (3)specific subject 
//  state   = what is going to be limited
//  limit   = the value to limit by
function simpleRes(state, limit)
{
  // set url
  var url = path + "ajax.php";

  // set up parameters of the XMLHttpRequest/AJAX request
  var postStr = state + "=" + encodeURIComponent(limit);

  // start the request
  initiateXhr(url, postStr);
}

