var selected_id = 0;
var cat0_id     = 0;
var cat1_id     = 0;
var loc0_id		= 0;
var loc1_id		= 0;

$(document).ready(function()
{
	loc0_id = $("#filter_location_level_0").val();
	loc1_id = $("#filter_location_level_1").val();

	$("#filter_location_level_0").selectbox({ inputClass: "location0", onChangeCallback:BasicSearch.getSubLoc});
	$("#filter_location_level_1").selectbox({ inputClass: "location1", onChangeCallback:BasicSearch.updateLocationId});

	if($('#filter_location_level_1').val() == null) {
		BasicSearch.getSubLoc();
	}
	
//	$("#filter_location_level_1").hide();
//
//	if($("#filter_location_level_1").val() == null)
//	{
//		$("#filter_location_level_1_input").hide();
//	}

	$("#filter_categories_level_0").selectboxMultilevel({inputClass: "categories0",onClickOption:BasicSearch.multiBox});
	
	$("#filter_date_from").datepicker({
		"showOn": "focus",
		"dateFormat": "yy-mm-dd",
		"onSelect": function() { BasicSearch.setMinDate()}
		});
		
	$("#filter_date_to").datepicker({"showOn":"focus", "dateFormat":"yy-mm-dd"});		
});

function BasicSearch(){}

BasicSearch.multiBox = function($this, options) {
	
	//get options
	var opt = options || {};
	
	//get Id's
	$id = $($this).attr('id');
	$idArr = $id.split('_input_');
	$selectId = $idArr[0];
	$valueId = $idArr[1];
	
	$country_id = $("#filter_location_level_0").val();
	
	var ourChildren = $('#'+$id).find('ul');
	
	$('#'+$selectId+'_input').focus(function() {
		if($('#'+$selectId+'_container').not(':visible')) {
			$('#'+$selectId+'_container').show();
		}
	});
	
	
	if(!ourChildren[0]) {
		if(!$('#'+$id).hasClass('open')) {
			$.getJSON(base_url + "/ajax/get-categories", {
				parent_category_id: $valueId, 
				totals: true,
				country: $country_id
			}, function(data){
				if(data.error != "no_children")
				{
					$('#'+$id).append('<ul></ul>');
					cat = '';
					$.each(data, function(key, cat)
					{			
						$('#'+$id+' ul').append('<li id="'+$selectId+'_input_'+cat['category_id']+'" class="subcat">'+cat['category_name']+'</li>');
						$('#'+$selectId).append($("<option class=\"parent_"+$selectId+"\"></option>").val(cat["category_id"]).text(cat["category_name"]));
					});
				}
				$('#'+$id).addClass('open');
			});
		} else {
			$('#'+$id).removeClass('open');
			$('#'+$id+' ul').remove();
			$('option.parent_'+$selectId).remove();
			$('#'+$id).addClass('closed');
		}
	} else {
		if($('#'+$id).hasClass('current')) {
			$('#'+$id).removeClass('open');

			$('#'+$selectId+'_input').val($('#'+$selectId+' option[value='+$valueId+']').text());
			$('#'+$id+' ul').remove();
			$('option.parent_'+$selectId).remove();
			$('#'+$id).addClass('closed');			
		} else {
			
			var $subId = $('#'+$id+' ul li.current').attr('id');

			var $subText = $('#'+$subId).text();
			var $subArr = $subId.split('_input_'); 
			$('#'+$selectId+'_input').val($subText);
			$('#'+$selectId).val($subArr[1]);
			$('#'+$selectId+'_container').hide();
		}
	}
}

BasicSearch.getSubLoc = function()
{
	loc0_id = $("#filter_location_level_0").val();
	BasicSearch.getSubLocationOptionsFilter(1,0,loc0_id);
}//BasicSearch.getSubLoc


BasicSearch.getAllLoc = function()
{
	loc0_id = $("#filter_location_level_0").val();
	loc1_id = $("#filter_location_level_1").val();
	BasicSearch.getSubLocationOptionsFilter(0, loc0_id, 0);
	BasicSearch.getSubLocationOptionsFilter(1, loc1_id, loc0_id);
}//BasicSearch.getAllLoc


BasicSearch.getSubLocationOptionsFilter = function(id, selected, parent_id)
{
	
	var name = "#filter_location_level_" + id;
	$(name).hide();
	
	
	$(name + "_input").remove();
	$(name  + "_container").remove();
	
	$(name).children().remove().end();
	
	$("#filter_location_id").val(selected);
	
	//var country = $("#search_country_id").val();
	
	$.getJSON(base_url + "/ajax/get-locations", {
				parent_location_id: parent_id, 
				first: "All", 
				type: "county"
			}, function(data){
				if(data.error != "no_children")
				{
					$.each(data, function(key, location)
						{								
						$(name).append($("<option></option>").val(location["location_id"]).text(location["location_name"])); 
						});
					
						$(name).val(selected)
						//selected_id = selected;
	 				if(id == 1)
	 				{
	 					$(name).selectbox({ inputClass: "location" + id, onChangeCallback:BasicSearch.updateLocationId});
		 				
	 				}
	 				else
	 				{
	 					$(name).selectbox({ inputClass: "location" + id, onChangeCallback:BasicSearch.getSubLoc});
	 				}
	 			} 
            }
        ); 
	 			
    
}//BasicSearch.getSubLocationOptionsFilter


BasicSearch.setMinDate = function()
{
	var from_date = $("#filter_date_from").datepicker("getDate");
	var to_date = $("#filter_date_to").datepicker("getDate");		
	
	$("#filter_date_to").datepicker("option", 'minDate', from_date);
	
	if (from_date > to_date)
	{		
		new_date = new Date();
		new_date.setDate(from_date.getDate() + 30);
		$("#filter_date_to").datepicker("setDate", new_date);			
	}			
}

