var REQUEST_MAP = new Array();

SearchUtil.prototype.element
SearchUtil.prototype.timer_id;
SearchUtil.prototype.current_id;

SearchUtil.prototype.setTimer = function() {
	if (this.timer_id != null) clearTimeout(this.timer_id);
	current_id = this.timer_id;
	REQUEST_MAP[current_id] = this;
	timer_id = setTimeout('_findSettlement(' + current_id + ')', 500);
}

function SearchUtil() {
	return(this);
}

function _DO_SEARCH_(id) {
	var request = REQUEST_MAP[id]
}




var find_timer = null;
var current_id = null;
function setFindTimer() {
	if (find_timer != null) clearTimeout(find_timer);
	current_id = Math.random();
	find_timer = setTimeout('_findSettlement()', 500);
}

function _findSettlement() {
	var id = current_id;
	var el = document.getElementById('settlement');
	if (el == null) return;
	
	call('./search.php?q=' + encodeURI(el.value) + "&method=address&template=settlements.html",
		function(settlements) {
			if (id != current_id) return;
			if (settlements == '') {
				_closeSettlements();
				return;
			}
			var el = document.getElementById("settlements_result");
			if (el == null) return;
			
			el.style.display = "block";
			el.innerHTML = settlements;
		}
	);
}

function _closeSettlements() {
	var el = document.getElementById("settlements_result");
	if (el == null) return;
	el.style.display = "none";
}

function _selectSettlement(settlement, region) {
	var el = document.getElementById("settlements_result");
	if (el == null) return;
	
	el.style.display = "none";
	
	var ar = region.split(',');
	if (ar.length < 2) return;
	
	document.getElementById("region").value = ar[1];
	document.getElementById("settlement").value = settlement;
}




function showHideResults() {
	var el = document.getElementById("search_results");
	//var button = document.getElementById("show_hide_button");
	
	if (el.style.display == "block") {
		el.style.display = "none";
	} else {
		el.style.display = "block";
	}
}

var map_find_timer = null;
var map_current_id = null;
function setMapFindTimer() {
	if (map_find_timer != null) clearTimeout(map_find_timer);
	map_current_id = Math.random();
	map_find_timer = setTimeout('_map_findSettlement()', 500);
}

function _map_findSettlement() {
	var id = map_current_id;
	var el = document.getElementById('query');
	if (el == null) return;
	
	do_search(el.value,
		function(results) {
			if (id != map_current_id) return;
			
			var el = document.getElementById("search_results");
			el.innerHTML = results;
			el.style.display = "block";
		}
	);
}
