//the following two functions are helper infrastructure to 
//craete a XMLHTTPRequest and register a listener callback function

function newXMLHttpRequest() {
	var xmlreq = false;
	if(window.XMLHttpRequest) {
		xmlreq = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		// Try ActiveX
		try { 
			xmlreq = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (ex) { 
			// first method failed 
			try {
				xmlreq = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {
				 // both methods failed 
				 alert("Your browser does not support AJAX!");
			} 
		}
 	}
  return xmlreq;
} 

function getReadyStateHandler(req, responseXmlHandler) {
	return function () {
		/*
			readyState
				0 = uninitialized
				1 = loading
				2 = loaded
				3 = interactive
				4 = complete 
		*/
		if(req.readyState == 4) {
			
			switch(req.status) {
				case 200:   /* e.g. 404 for "Not Found" or 200 for "OK") */
						responseXmlHandler(req.responseXML);
						break;
				case 404:
					alert("Page not Found");
					break;
				default:
					alert("Problem retrieving XML data");
			}
		}
 	}
}

