// Standard AJAX lib

function getXMLHTTPRequest () {
	try {
		req = new XMLHttpRequest ();
	} catch (err1) {
		try {
			req = new ActiveXObject ("Msxml2.XMLHTTP");
		} catch (err2) {
			try {
				req = new ActiveXObject ("Microsoft.XMLHTTP");
			} catch (err3) {
				req = false;
			} 
		} 
	}
	return req;
}

function replaceDiv (http, divid, displaywaittimer) {
	if (http.readyState == 4) {
		if (http.status == 200) {
			document.getElementById (divid).innerHTML = http.responseText;
		} else {
			document.getElementById (divid).innerHTML = '<p>useHttpResponse: AJAX request fatal error: ' + http.status + ' updating ' + divid + '</p>';
		}
	} else if (displaywaittimer) {
		document.getElementById (divid).innerHTML = '<p class="ajaxworking"><img src="/furniture/ajaxworking.gif"></p>';
	}
}



// Site-specific functions

function getSearchResults (searchmode, terms, criterion) {
	var http = getXMLHTTPRequest ();
	var actionurl = 'components/ajax_'+searchmode+'.php?s=ajax&terms=' + terms + '&criterion=' + criterion;
	randno = parseInt (Math.random () * 999999999999999);
	var modurl = actionurl + "&rand=" + randno;
	http.open ("GET", modurl, true);
	http.onreadystatechange = function () {
		replaceDiv (http, 'searchresults', true);
	}
	http.send (null);
}

