jQuery.searchLocation = {
	
	slConst: {
		ALL             : 'All',
		IN_MY_HOMETOWN  : 'InMyHometown',
		NEWEST          : 'Newest',
		MOST_POPULAR    : 'MostPopular',
		LAST_LOGIN      : 'LastLogin',
		CURRENTLY_IN    : 'CurrentlyIn',  
		PLANNING_TO_GO  : 'PlanningToGo',
		HAVE_BEEN_TO    : 'HaveBeenTo'
	},
	
	ajaxSettings: {
		url: "/ajaxpages/load-country.php",
		type: "POST",
		returnType: "json",
		queryString: 'ddd',
		onErrorMsg: "Error loading JSON data", 
		onErrorCallback: null,
		onSuccessMsg: null,
		onSuccessCallback: null
	},
	
	makeRequest: function(s){
		var settings = jQuery.extend({}, this.ajaxSettings, s || {});
		var self = this;   
		jQuery.ajax({
		    url     : settings.url,
		    type    : settings.type, 
		    dataType: settings.returnType,
		    data    : settings.queryString,
		    error   : function(){
		        		if( settings.onErrorMsg != null ) 
		        			alert(settings.onErrorMsg);
		        		if( jQuery.isFunction( settings.onErrorCallback ) ) 
							settings.onErrorCallback({});
		    		  },
		    success : function(json){
		        		if( settings.onSuccessMsg != null )  
		        			alert(settings.onSuccessMsg);
		        		if( jQuery.isFunction(settings.onSuccessCallback) )
		        			settings.onSuccessCallback(json);
		        		
		   			  }  
		});
	},
	
	
	init: function(id){
		var self = this, slConst = self.slConst;
		var selected = jQuery('#'+id).val();
		jQuery('#'+id)
		.bind('change', function(){
			self.triggerEvent(id);
		});
		jQuery('<select name="country_select" id="country_select"></select>')
		.bind('change', function(){
			self.submit();
		})
		.appendTo('#COUNTRYSEARCH');
		if( slConst.CURRENTLY_IN == selected || slConst.PLANNING_TO_GO == selected || slConst.HAVE_BEEN_TO == selected )
			self.triggerEvent(id);
	},

	triggerEvent: function(id){
		var self = this, slConst = self.slConst;
		var selected = jQuery('#'+id).val(); 
		switch(selected){
			case slConst.ALL:
			case slConst.IN_MY_HOMETOWN:
			case slConst.NEWEST:
			case slConst.MOST_POPULAR:
			case slConst.LAST_LOGIN:
				window.location.href = '/travelers.php?action='+selected;
			break;
			
			case slConst.CURRENTLY_IN:
			case slConst.PLANNING_TO_GO:
			case slConst.HAVE_BEEN_TO:
				jQuery('#COUNTRYSEARCH').css('display', 'block');
				if( jQuery.browser.msie )
					jQuery('#country_select').html('<option value="0">Loading...</option>');
				else	
					jQuery('#country_select').attr('disabled', true).html('<option value="0">Loading...</option>');
				
				self.makeRequest({
					queryString      : 'mode='+selected,
					onSuccessCallback: self.loadCountry
				});				
			break;
		}
	},
		
	submit: function(){
		var action = jQuery('#ga_traveler_form_search').val();  
		var locationID  = jQuery('#country_select').val(); 
		if( parseInt(locationID) )
			window.location.href = '/travelers.php?action='+action+'&locationID='+locationID;  
	},
		
	loadCountry: function(json){
		if( json.length ){
			jQuery('#country_select')
			//.populate({LIST: json, DEFAULT_TEXT: '- select a country -'})
			.populate({LIST: json})
			.selected(locationID);
			jQuery('#country_select').removeAttr('disabled'); 
			locationID = 0;
		}
		else{
			jQuery('#COUNTRYSEARCH').css('display', 'none');
		}
		
	}
}

function searchByKeywords(){

	var keywords = jQuery('#keywords').val(); 
	var type = jQuery('#searchby').val(); 
	if( parseInt(type) )
		window.location.href = '/travelers.php?action=search&keywords='+keywords+'&searchby='+type;
} 

jQuery(document).ready(function(){

	jQuery.searchLocation.init('ga_traveler_form_search');
	jQuery('#keywords_search')
	.bind
	(
		'click',
		function(){
			searchByKeywords();
		}
	)
	
});
