/** typein Match AJAX function 
	gets called on every keypress in a textbox 
	need a div under an input box for this to work **/
function locationAutoComplete(field, value, propertyType) {
	var autoCompleteDiv = "#locationAutoComplete";
	if($("input[name=cityZipSubdivision]").attr("value").length<3) return;
	
	$.ajax({
   		type: "POST",
   		url: "/includes/ajax/locationAutoComplete.php",
		dataType:"xmlDocument",
   		data: "&location="+value+"&propertyType=" +propertyType,
   		success: function(xml){
			xml = parseXML(xml);
			//alert("RESULT: " +xml);
			var html = "<ul>";
			$('aResult',xml).each(function() {
				var text = $(this).text();
				html += "<li>" +text+ "</li>";
			});
			html += "</ul>";
			$(autoCompleteDiv).empty()
				.append(html)
				.css("display","block");
			
			$(autoCompleteDiv).find("li").mouseover( function() {
				$(this).attr("class","autocomplete_highlight");
			});
			$(autoCompleteDiv).find("li").mouseout( function() {
				$(this).attr("class","");
			});
			$(autoCompleteDiv).find("li").click( function() {
				//$("input[name="+field+"]").attr("value",$(this).text());
				//$(autoCompleteDiv).css("display","none");
				if(validateInput($(this).text())) { // duplicate entry check
					$("input[name=cityZipSubdivision]").attr("value",""); // clear textbox
					$("#locationAutoComplete").css("display","none");
					return null;
				}
				var locList = $("#locationList");
				var li = document.createElement("li");
				locList.append(li); // add LI to UL
		
				var listItem = document.createElement("span");
				$(listItem).attr("class","locListItem");
				$(listItem).html($(this).text());
				$(li).append(listItem); // add location value
				
				var clearButton = document.createElement("span");
				$(clearButton).attr("class","clearButton").text("[x]");
				$(li).append(clearButton); // add clear button
				
				$(clearButton).click( function() {
					$(this).parent().remove();
					$("input[name=limitStart]").attr("value",0);
					$("input[name=uiChange]").attr("value","true");
					submitSearch();
				});
				
				$("input[name=limitStart]").attr("value",0);
				$("input[name=uiChange]").attr("value","true");
				$("input[name=cityZipSubdivision]").attr("value",""); // clear textbox
				$(autoCompleteDiv).css("display","none");
				submitSearch();
			});
		}
	});
}

/** Make sure the input is unique - if not, ignore **/
function validateInput(string) {
	string = string.toLowerCase();
	var r = false;
	$(".locListItem").each(function() {
		//alert($(this).text());
		if($(this).text()==string) {
			r = true;
			//alert("match!");
		}
	});
	//alert(r+ " "+string);
	return r;
}

/** AUTOCOMPLETE **/
$("input[name=cityZipSubdivision]").keyup(function() { 
	var div = $(this);							
	if($(this).attr("value").length<3) {
		if($(this).attr("value")=="") $("#locationAutoComplete").css("display","none");
		return null; // don't autocomplete unless at least 3 chars typed
	}
	delay(function(){
    	locationAutoComplete(div.attr("name"), div.attr("value"), $("select[name=propertyType]").val());
    }, 1000 );
});
$("input[name=cityZipSubdivision]").bind('keypress', function(e) {
	if(e.keyCode==13){
		if(validateInput($(this).attr("value"))) {
			$("input[name=cityZipSubdivision]").attr("value",""); // clear textbox
			$("#locationAutoComplete").css("display","none");
			return null;
		}
		var locList = $("#locationList");
		var li = document.createElement("li");
		locList.append(li); // add LI to UL

		var listItem = document.createElement("span");
		$(listItem).attr("class","locListItem");
		$(listItem).html($(this).attr("value"));
		$(li).append(listItem); // add location value
		
		var clearButton = document.createElement("span");
		$(clearButton).attr("class","clearButton").text("[x]");
		$(li).append(clearButton); // add clear button
		
		$(clearButton).click( function() {
			$(this).parent().remove();
			$("input[name=limitStart]").attr("value",0);
			$("input[name=uiChange]").attr("value","true");
			submitSearch();
		});
		
		$("input[name=limitStart]").attr("value",0);
		$("input[name=uiChange]").attr("value","true");
		$("input[name=cityZipSubdivision]").attr("value",""); // clear textbox
		$("#locationAutoComplete").css("display","none");
		submitSearch();
	}
});

