// Pull random quotes and reload a new one every five minutes.

var DEBUG = false;
var DEBUG2 = false;
var DEBUG3 = true;

// Timeout of five minutes in milliseconds (5 * 60 * 1000) after first pull.
var timeOut = 300000;
if (DEBUG3) 
	timeOut = 300000000;

var xmlRequest = null;
var EXPLODER = true;

// Alternative approach to get XML/HTTP hook.

// Get AJAX Object using XMLHttpRequest functionality.

function GetAJAXObject() { 

	// Set to null, if still null after attempts means failure.
	var objXMLHttp = null;

	// All the Microsoft request types.
	var reqTypes = ["Microsoft.XmlHttp", "MSXML2.XmlHttp",
				    "MSXML2.XmlHttp.3.0", "MSXML2.XmlHttp.4.0",
					"MSXML2.XmlHttp.5.0"];

	// Netscape, Firefox and other standards.

	if (window.XMLHttpRequest) {
	   objXMLHttp = new XMLHttpRequest();
	   EXPLODER = false;
	   return objXMLHttp;

	// Microsoft standard.

	} else if (window.ActiveXObject) {
	  for (var i = reqTypes.length -1; i >= 0; i--) {
		try {
			objXMLHttp = new ActiveXObject(reqTypes[i]);
			return objXMLHttp;
		} catch(ex) {
		    alert (ex);
		}
	  }
    } // else
} 

// Use the XML HTTP Object to pull up a new quote.

function PullQuote() {

	xmlRequest = GetAJAXObject();
	if (xmlRequest == null) {
	   alert ("Your browser does not support HTTP Request");
	   return;
	}

	// URL to call script to pull a quote from a list.
	var url = "getquote.php";
	if (DEBUG2)
	    alert ('url=' + url + ', quote=' + xmlRequest.responseText);

	if (EXPLODER)
		xmlRequest.onreadystatechange = stateChanged;
	else
		xmlRequest.onreadystatechange = stateChanged;
	xmlRequest.open ("GET", url, true);
	xmlRequest.send (null);

	// Set up a timer to pull another quote after each timeout.
	window.setTimeout ("PullQuote()", timeOut);

} // PullQuote

// When the script returns a value, this function is called, and updates
// the information on the page.

function stateChanged() { 

	if (DEBUG && xmlRequest.status != 200)
	   alert ('ERROR: Status '+ xmlRequest.status + ' returned.');

	if (DEBUG && xmlRequest.statusText) {
	   alert ('Status is ' + xmlRequest.statusText);
	   alert ('Content-Type: ' + xmlRequest.getResponseHeader("Content-Type"));
	}

	if (xmlRequest && xmlRequest.readyState == 4) {
		  document.getElementById('quote').innerHTML = xmlRequest.responseText;
	}

} // stateChanged
