// AJAX Module

var requester = false;

function makeRequest(url, callbackFunc, return_xml) {
	// Set testing variables
	(url) ? null : null;
	(callbackFunc) ? null : callbackFunc = 'showResults';
	(return_xml != null) ? null : return_xml = true;
	
	//alert('makeRequest: '+url+', '+callbackFunc+', '+return_xml);

	//alert(url);

	// Create new connection
	try {
		requester = new XMLHttpRequest();
	}
	catch (error) {
		try {
			requester = new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch (error) {
			alert('Unable to open server connection.');
			return false;
		}
	}
	
	requester.onreadystatechange = function () {
		if (requester.readyState == 4) {
			if (requester.status == 200) {
				if (return_xml) {
					//alert(requester.responseXML);
					eval(callbackFunc + '(requester.responseXML)');
				}
				else {
					//alert(requester.responseText);
					eval(callbackFunc + '(requester.responseText)');
				}
			}
			else if (requester.status != 0) {
				alert("There was an error retrieving the necessary data:\n\n"+requester.statusText);
			}
		}
	}
	
	// Retrieve the data
	requester.open('GET', url, true);
	requester.send(null);
}

function showResults(xml) {
	oBox = document.getElementById('resultBox');
	
	products = xml.getElementsByTagName('product');
	
	for (i=0; i<products.length; i++) {
		url = products[i].getElementsByTagName('url')[0].firstChild.nodeValue;
		img = products[i].getElementsByTagName('img')[0].firstChild.nodeValue;
		name = products[i].lastChild.nodeValue;
	
		oBox.innerHTML += 'URL= '+url+'<br/>';
		oBox.innerHTML += 'IMG= '+img+'<br/>';
		oBox.innerHTML += 'Name = '+name+'<hr/>';
	}
}
