var statusAutocomplete = new Array("close","close") ;
var blnSkipOffice = false;

function setSkipOffice(blnSkipOfficeFnc){blnSkipOffice = blnSkipOfficeFnc;}
function getSkipOffice(){return blnSkipOffice;}
$(document).keypress(function(e) {
//	console.log(statusAutocomplete);
//	console.log(statusAutocomplete[statusAutocomplete.length - 2]);
//	console.log(statusAutocomplete.length - 2);
	if(statusAutocomplete[statusAutocomplete.length - 2] == "close" || statusAutocomplete[statusAutocomplete.length - 2] == undefined)
	{
		//push Enter to starting search
	    if(e.keyCode == 13)
	  	  	$(".search-btn-active").click();
	}
	//do nothing if arrow up button or arrow down button is pushing
	if(e.keyCode != 38 && e.keyCode != 40)
		statusAutocomplete.push("close") ;
}); 
	
function btnActive(type){
	
	$("a").removeClass("search-btn-active");
	
	switch(type){
		case "property":
			$("#property-search-btn-property").addClass("search-btn-active");
			break;
		case "agent":
			$("#property-search-btn-agent").addClass("search-btn-active");
			break;
		case "office":
			$("#property-search-btn-office").addClass("search-btn-active");
			break;
	}
}

$(document).ready(function(){
	$("select").change(function(){
		statusAutocomplete.push("close") ;
		//console.log(statusAutocomplete);
	});
	
	$('#property-search-location').focus();
	
	$('#search-tab-property').click(function(){ $('#property-search-location').focus(); btnActive("property"); });
	$('#search-tab-agent').click(function(){ $('#agent-search-location').focus(); btnActive("agent"); });
	$('#search-tab-office').click(function(){ $('#office-search-location').focus(); btnActive("office"); });
	
	
	//disable event click on the 4th tab because it's just used to display the shadow
	$('#property-search-bar').unbind('click') ;
	
	// Autocomplete property
	$( "#property-search-location" ).autocomplete( {
			source: function (request, response) {
                            $.ajax({
                                url: VARLanguagePath+"/modules/property_listing/frontend/includes/ajax.AutoComplete.php?fromQuickSearch=1",
                                dataType: "json",
                                data: request,
                                success: function (data) {
                                    if (!data.length) { // expect [] or ""
                                            $('.ui-autocomplete').css("display", "none");
                                    } else {
                                        response(data);
                                    }
                                }
                            });
                        },
			minLength: 2,
			autoFocus: true,
			select: function( event, ui ) {
				$( "#property-search-location" ).val( ui.item.label );
				
				strSubIdentifier = ui.item.specialId.substring(0,1);
				if(strSubIdentifier !="")
					strSubIdentifier +="::";
					
				if(ui.item.propertyId != undefined && ui.item.propertyId)
					$('#property_search_autocomplete').val(ui.item.propertyId);
				else
					$('#property_search_autocomplete').val(strSubIdentifier + ui.item.value);
				
				return false;
			},
			focus: function( event, ui ) {

				if(ui.item.position == 1)
				{
					strSubIdentifier = ui.item.specialId.substring(0,1);
					if(strSubIdentifier !="")
						strSubIdentifier +="::";
						
					if(ui.item.propertyId != undefined && ui.item.propertyId)
						$('#property_search_autocomplete').val(ui.item.propertyId);
					else
						$('#property_search_autocomplete').val(strSubIdentifier + ui.item.value);
				}
				return false;
			},
			open: function( event, ui ) {
				statusAutocomplete.push("open") ;
			},
			close: function( event, ui ) {
				statusAutocomplete.push("close") ;
			}
	} );
	
	var strAgentAutocompleteParams = '?skipOffices=0';
	blnLocalSkipOffice = getSkipOffice();
	if(blnLocalSkipOffice)
		strAgentAutocompleteParams = '?skipOffices=1';
		
	// Autocomplete agent
	$('#agent-search-location').autocomplete({
		source: VARLanguagePath+"/modules/agent_search/frontend/ajax.getAutoComplete.php"+strAgentAutocompleteParams,
		minLength: 2,
		autoFocus: true,
	    select: function( event, ui ) {      
	      setAgentAutoUi(ui);
	      $( "#agent-search-location" ).val( ui.item.label );
	      $('#property-search-broker input[name=autocomplete], #content-agent-search-broker input[name=autocomplete]').val(ui.item.label);
	      $('#property-search-broker input[name=autoFirst], #content-agent-search-broker input[name=autoFirst]').val(ui.item.first);
	      $('#property-search-broker input[name=autoLast], #content-agent-search-broker input[name=autoLast]').val(ui.item.last);
	      $('#property-search-broker input[name=autoOffice], #content-agent-search-broker input[name=autoOffice]').val(ui.item.office);
	      $('#property-search-broker input[name=agentIds], #content-agent-search-broker input[name=memberKeysAuto]').val(ui.item.agent_ids);
	      
	      if(ui.item.type == 'office' && ui.item.office_id != null){
	    	  $('#property-search-broker input[name=officeId], #content-agent-search-broker input[name=officeId]').val(ui.item.office_id);
	      }else if(ui.item.first != null && ui.item.last != null){
	    	  $('#property-search-broker input[name=agentId], #content-agent-search-broker input[name=agentId]').val(ui.item.agent_id);
	    	  $('#property-search-broker input[name=officeId], #content-agent-search-broker input[name=officeId]').val(ui.item.office_id);
	      } else {
	    	  $('#property-search-broker input[name=agentId], #content-agent-search-broker input[name=agentId]').val('');
	    	  $('#property-search-broker input[name=officeId], #content-agent-search-broker input[name=officeId]').val('');
	      }
	      $('#agent-search-region').val('');
	      return false;
	    },
	    focus: function( event, ui ) {
	      $('#property-search-broker input[name=autoFirst], #content-agent-search-broker input[name=autoFirst]').val(ui.item.first);
	      $('#property-search-broker input[name=autoLast], #content-agent-search-broker input[name=autoLast]').val(ui.item.last);
	      $('#property-search-broker input[name=autoOffice], #content-agent-search-broker input[name=autoOffice]').val(ui.item.office);
	      $('#property-search-broker input[name=officeId], #content-agent-search-broker input[name=officeId]').val(ui.item.office_id);
	      
	      if(ui.item.first != null && ui.item.last != null){
	    	  $('#property-search-broker input[name=agentId], #content-agent-search-broker input[name=agentId]').val(ui.item.agent_id);
	    	  $('#property-search-broker input[name=officeId], #content-agent-search-broker input[name=officeId]').val(ui.item.office_id);
	      }
	      else{
	    	  $('#property-search-broker input[name=agentId], #content-agent-search-broker input[name=agentId]').val('');
	    	  $('#property-search-broker input[name=officeId], #content-agent-search-broker input[name=officeId]').val('');
	      }
	      return false;
	    }
	});
	
	// Autocomplete agent's region
	$( "#agent-search-region" ).autocomplete( {
        source: VARLanguagePath+"/modules/property_listing/frontend/includes/ajax.AutoComplete.php?includeNeighbourhoods=0",
        minLength: 2,
        autoFocus: true,
        select: function( event, ui ) {
            $( "#agent-search-region" ).val( ui.item.label );
         	setAutocompleteAgentRegionsSearch(ui);
			$("#agent-search-location").val("");
			$('#property-search-broker input[name=agentId]').val('');
	    	$('#property-search-broker input[name=officeId]').val('');
	    	$('#property-search-broker input[name=cities]').val(ui.item.cityId);
	    	$('#property-search-broker input[name=regions]').val(ui.item.regionId);
	    	
            return false;
        },
        focus: function( event, ui ) {
            setAutocompleteAgentRegionsSearch(ui);
			$('#property-search-broker input[name=agentId]').val('');
	    	$('#property-search-broker input[name=officeId]').val('');
	    	$('#property-search-broker input[name=cities]').val(ui.item.cityId);
	    	$('#property-search-broker input[name=regions]').val(ui.item.regionId);
            return false;
        }
    } );
	
	// Autocomplete office
	$('#office-search-location').autocomplete({
		source: VARLanguagePath+"/modules/office_search/frontend/ajax.getAutoComplete.php",
	    minLength: 2,
	    autoFocus: true,
	    select: function( event, ui ) {      
	      setAgentAutoUi(ui);
	      $( "#office-search-location" ).val( ui.item.label );
	      $('#property-search-office input[name=officeId]').val(ui.item.office_id);
	      $('#office-search-region').val('');
	      return false;   // Prevents the Jquery select event from overwritting my event.
	    },
	    focus: function( event, ui ) {
	      $('#property-search-office input[name=officeId]').val(ui.item.office_id);
	      return false;   // Prevents the Jquery select event from overwritting my event.
	    }
	});
	
	$('#property-type-select').change(function(){
		$('.add-input-hidden').remove();
		
		var selected = $('#property-type-select').val();
		var arraySplit = selected.split("||");
		var type = arraySplit[1];
		var arrayType = type.split(':');
		
		var length = arrayType.length ;
		for(var i = 0; i<length;i++)
		{
			if(i == 0)
				$('#propertyQuickSearch').append('<input class="add-input-hidden" type="hidden" name="registrationType" value="' + arrayType[i] + '" />');
			else
				$('#propertyQuickSearch').append('<input class="add-input-hidden" type="hidden" name="resPropertyType[]" value="' + arrayType[i] + '" />');
		}
	});
});
