var http_request = null;
var response_obj = null;

function setResultsTitle(title)
{
	document.getElementById('search-results-header').innerHTML = title;
}

function getQuery(form_obj)
{
  var getstr = "?";
  for (i=0; i<form_obj.getElementsByTagName("input").length; i++) {
		var el = form_obj.getElementsByTagName("input")[i];
		if (el.type == "text" || el.type == "hidden")
			getstr += el.name + "=" + el.value + "&";
		else if ((el.type == "radio" || el.type == "checkbox") && el.checked)
			getstr += el.name + "=" + el.value + "&";
		else if (el.type == "select")
			getstr += el.name + "=" + el.value + "&";
  }
	for (i=0; i<form_obj.getElementsByTagName("select").length; i++) {
		var el = form_obj.getElementsByTagName("select")[i];
		getstr += el.name + "=" + el.value + "&";
	}
	return getstr;
}

function displayStatus(status)
{
	response_obj.innerHTML = status;
}

function ajax(url, response_id, form_obj) {
	response_obj = document.getElementById(response_id);
	var query = getQuery(form_obj);	
  makeRequest(url+query);
}

function makeRequest(url)
{
	if (window.XMLHttpRequest) {
		http_request=new XMLHttpRequest();
  } else if (window.ActiveXObject) {
		http_request=new ActiveXObject("Microsoft.XMLHTTP");
  } else {
		alert("Your browser does not support XMLHTTP!");
  }
	displayStatus('<p><img src="/images/loading.gif"></p><p><b>Tip:</b> Hold your mouse over a result to see a preview!</p>');
	setResultsTitle('Loading...');
	http_request.onreadystatechange=readystatechangeHandler;
	http_request.open("GET",url,true);
	http_request.send(null);
}


function readystatechangeHandler() {
	switch (http_request.readyState) {
		case 1 : // The request has been set up
			break;
		case 2 : // The request has been sent
			break;
		case 3 : // The request is in process
			break;
		case 4 : // The request is complete
			if (http_request.status == 200) {	
				setResultsTitle('Results');
				var response = http_request.responseText.split('<SPLIT>');
				if (response[1]) setResultsTitle(response[1]);
				displayStatus(response[0]);
			} else {
				alert(http_request.status);
			}
			break;
	}
}