var xmlHttp;
var searchTable;
var searchLink;
var searchDisplay;
var searchTerms = '';
var searchCols = new Array();

function setSearchOptions (table, link, display) {
	searchTable = table;
	searchLink = link;
	searchDisplay = display;
}
function setDefaultSearchCols (cols) {
	searchCols = cols;
}
function addSearchCol (col) {
	// check in in array before pushing
	for (var i in searchCols) {
		if (searchCols[i] == col) return;
	}
	searchCols.push(col);
}
function removeSearchCol (col) {
	for (var i in searchCols) {
		if (searchCols[i] == col) {
			searchCols.splice(i, 1);
		}
	}
}
function addRemoveSearchCol (field) {
	if (field.checked) addSearchCol(field.value);
	else removeSearchCol(field.value);
	
	// requery search with new options
	showResult(searchTerms);
}
function searchCloseResults () {
	$('livesearch-wrapper').style.display = 'none';
}
function showResult (str) {
	if (str == null) {
		str = searchTerms;
	}
	else {
		searchTerms = str;
	}
	if (str.length==0) { 
		document.getElementById("livesearch").innerHTML = '';
		document.getElementById("livesearch-wrapper").style.display = 'none';
		return;
	}

	xmlHttp=GetXmlHttpObject()
	if (xmlHttp==null) {
		alert ("Browser does not support HTTP Request");
		return;
	} 

	var url = "http://www.pwsweather.com/scripts/livesearch.php";
	url += "?q=" + str;
	url += '&tbl=' + searchTable;
	url += '&lk=' + escape(searchLink);
	url += '&dply=' + searchDisplay;
	url += '&sc=' + searchCols.join(',');
	url += "&nc=" + Math.random();
	xmlHttp.onreadystatechange = stateChanged;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}
function stateChanged () { 
	if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") { 
		document.getElementById("livesearch").innerHTML = xmlHttp.responseText;
		document.getElementById("livesearch-wrapper").style.display = 'block';
	} 
}
function GetXmlHttpObject () {
	var xmlHttp=null;
	try {
		// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	}
	catch (e) {
		// Internet Explorer
		try {
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e) {
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}