// variable to store location name ("City or district" by default)
var defaultLocName = '';

function validate_search(){		
		var v = false;
		if($("#params-locId").val()!='' || ($("#params-locIdMeta").length > 0 && $("#params-locIdMeta").val()!=''))
			v = true;
		swapButtons(v);
		return v;
	}
	
function swapButtons(isTrue)
{
	if(isTrue)
	{
		$("#go_search").hide();
		$("#go_search_valid").show();
		$("#go_search_link").attr("href", "javascript:document.form.submit();").css('color','#99CC33');
	}
	else
	{
		$("#go_search_valid").hide();
		$("#go_search").show();
		$("#go_search").attr("src", "/images/search/search_cz_off.gif");
		$("#go_search_link").attr("href", "#").css('color','#cde699');
	}
}

function setAcValue(event, data, formatted) {
	if (data.length > 0){
		if(_controller=='sale' || _controller=='rent') agMyMap.reset();
		
		defaultLocName = formatted;

		$("#params-locId").val(data[1]);
		$("#params-locLev").val(data[2]);
		$("#params-postCode").val(data[7]);
		/*if(data[2] > 1) 
			$("#params-selected").val(1);
		else 
			$("#params-selected").val(0);*/
		$("#params-district").val(data[4]);
		if($.browser.safari){
	 		$(".ac_input").val(data[0]);
	 	}else{
			$(".ac_input").blur();
		}
		
	
		if(data[5]>0)
		{
			formatPond(data[5]);
			validate_search();
			$("#go_search_link").focus().blur(function(e){ e.preventDefault; });
		}
		else
		{
			if(_action!='search')
			{
				formatPond(0);
			}				
		}
		$("#params-useMap").val("1");
	}
	/* additional validation for entrust_form */
	if(_controller=="entrust")
	{
		$("#entrust_form").validate().element("#params-locId");
	}
}

function formatPond(result)
{
	if(result > 0)
	{
		$("#pond span").hide();
		$("#result").show();
		$("#resultNo").empty().append(result).show();
		swapButtons(true);
	}
	else
	{
		$("#pond span").hide();
		$("#noResult").show();
		swapButtons(false);
	}	
}

function resetSearch()
{
	$("#pond span").hide();
	agMyMap.reset();
	$("input[name!='params[propertyType]'][id^='params']").empty();
}

function formatAcResult(row) {
	return row[0];
}

function formatAcRow(row, i, max, val, term) 
{
	var format = row[0];
	if(row[6]) format += " (" + row[6] + ")";
	return format;
}


function setAcExtraParams()
{
	if(isPropertytypeSet())
	{
		var obj = new Object();
		obj.c= _controller;
		obj.pt= propertytype;
		$("#params-town").setOptions({
			extraParams: obj
		}).flushCache();
	}
}

function isPropertytypeSet()
{
	return (undefined === window.propertytype)?false:true;
}

$(document).ready(function() {
	defaultLocName = $("#params-town").val();
	if($("#params-locId").val() != '') validate_search();
	$("#params-town").focus(function(){
    	if ($(this).val() == defaultLocName) $(this).val('');
    });
    $("#params-town").blur(function (){
	   	if ($(this).val() != defaultLocName) $(this).val(defaultLocName);
    });
    $("#params-town").autocomplete("/ajax/"+currentLanguage+"/ajax/loc", {
			matchContains: false,
			minChars: 3,
			delay: 200,
			mustMatch: false,
			autoFill: false,
			scroll: false,
			selectFirst: true,
			formatResult: formatAcResult,
			formatItem: formatAcRow,
			extraParams: { c: _controller },
			cacheLength: 1,
			max: 15,
			highlight: function(value, term) {
				return "<strong>"+value.substr(0,term.length)+"</strong>"+value.substring(term.length);
			} 
		}).result(setAcValue);
	setAcExtraParams();
	$("#params-town").bind("keypress", function(e) {
 			if (e.keyCode == 13) return false;
 	});
});

