window.onload=initPage;

var count = 0;

function initPage() {
	
	addEventHandler(document.getElementById("searchText"),"keyup",monitorSearchBox);

	addEventHandler(document.getElementById("filterOnID"),"click",getItems);
	addEventHandler(document.getElementById("filterOffID"),"click",getItems);

	
	addEventHandler(document.getElementById("minLevelID"),"change",doFilterChange);
	addEventHandler(document.getElementById("maxLevelID"),"change",doFilterChange);
	addEventHandler(document.getElementById("typeID"),"change",doFilterChange);
	addEventHandler(document.getElementById("antiFlagsIncludeID"),"change",doFilterChange);
	addEventHandler(document.getElementById("antiFlagsID"),"change",doFilterChange);
	addEventHandler(document.getElementById("orderFirstID"),"change",doFilterChange);
	addEventHandler(document.getElementById("orderFirstDirectionID"),"change",doFilterChange);
	addEventHandler(document.getElementById("locationID"),"change",doFilterChange);
	addEventHandler(document.getElementById("layerID"),"change",doFilterChange);

	document.getElementById("searchText").focus();
	getItems();
}

// function: mousePointer
// changes the mouse style to a pointer

function mousePointer() {
	document.body.style.cursor='pointer';
}

// function: mouseDefault
// changes the mouse style back to default

function mouseDefault() {
	document.body.style.cursor='default';
}


function monitorSearchBox()
{
   count = count+1;
   setTimeout("submitNameSearch("+count+")",300);
}

function doFilterChange(e) {
	var me = getActivatedObject(e);
	var attributes=me.attributes;

	if (attributes.id.value=="minLevelID") {
		if (document.getElementById("minLevelID").selectedIndex > document.getElementById("maxLevelID").selectedIndex) {
			document.getElementById("maxLevelID").selectedIndex = document.getElementById("minLevelID").selectedIndex;
		}
	}
	if (attributes.id.value=="maxLevelID") {
		if (document.getElementById("maxLevelID").selectedIndex < document.getElementById("minLevelID").selectedIndex) {
			document.getElementById("minLevelID").selectedIndex = document.getElementById("maxLevelID").selectedIndex;
		}
	}
													   
	if (document.getElementById("filterOnID").checked==true) {
		getItems();
	}
}

function getItems() {
	itemRequest = createRequest();
	if (itemRequest == null) {
		alert("Unable to create request.");
	} else {
		var searchText = document.getElementById("searchText").value;
		var url = "findNames.php";
		var requestData = "&searchText=" + escape(searchText) +
			"&filterOn=" + document.getElementById("filterOnID").checked +
			"&minLevel=" + document.getElementById("minLevelID").value +
			"&maxLevel=" + document.getElementById("maxLevelID").value +
			"&type=" + document.getElementById("typeID").value +
			"&location=" + document.getElementById("locationID").value +
			"&layer=" + document.getElementById("layerID").value +
			"&orderFirst=" + document.getElementById("orderFirstID").value +
			"&orderFirstDirection=" + document.getElementById("orderFirstDirectionID").value +
			"&antiFlagsInclude=" + document.getElementById("antiFlagsIncludeID").value +
			createURLFromMultiSelect(document.getElementById("antiFlagsID"),"antiFlags");
		itemRequest.onreadystatechange = processgetItemsResponse;
		itemRequest.open("POST", url, true);
		itemRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		itemRequest.send(requestData);
	}
}

function submitNameSearch(currCount) {
	
	if(currCount == count) {
    	count = 0;
		getItems();
	}
}

function processgetItemsResponse() {
	if (itemRequest.readyState == 4) {
		if (itemRequest.status == 200) {
				document.getElementById("searchText").focus();
				document.getElementById("matches").innerHTML = itemRequest.responseText;
				setupMatchEvents();
		} else {
			alert("Request failed.");
		}
	}
}

function selectItem(e) {
	var me = getActivatedObject(e);

	statsRequest = createRequest();
	if (statsRequest == null) {
		alert("Unable to create request.");
	} else {
		var searchText = me.innerHTML;
		var url = "getStats.php";
		var requestData = "&searchText=" + escape(searchText);
		statsRequest.onreadystatechange = processStatsResponse;
		statsRequest.open("POST", url, true);
		statsRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		statsRequest.send(requestData);
	}
}


function processStatsResponse() {
	if (statsRequest.readyState == 4) {
		if (statsRequest.status == 200) {
				document.getElementById("identify").innerHTML = statsRequest.responseText;
				//scroll(0,0);
				//document.getElementById("searchText").focus();
		} else {
			alert("Request Failed.");
		}
	}
}

function setupMatchEvents() {
	var matches = document.getElementsByClassName("matches","li");
	for (var i=0; i<matches.length;i++) {
		var currentMatch = matches[i];
		addEventHandler(currentMatch,"click",selectItem);
		addEventHandler(currentMatch,"mouseover",mousePointer);
		addEventHandler(currentMatch,"mouseout",mouseDefault);
	}
}

