
$(document).ready(function(){
	initAjax();
	setupSearchHandler();
}) ;

function initAjax() {
	// set up makes...
	$('.quick-search .searchbar-make').each(function(){
		$(this).change(function(){
							var make_id = $(this).parent().children('.searchbar-make').val() ;
							_searchbarquick = $(this).parent() ;
							// alert("/ajaxGateway/vehicle.ajax.php?action=ranges&make_id="+make_id) ;
							$.getJSON("/ajaxGateway/vehicle.ajax.php?action=ranges&make_id="+make_id, {},
							  function(data){
							    var options = '';
							    options += '<option value="false">All Vehicle Models</option>';
							    for (row in data.vehiclefinder['ranges']) {
							      vehicle = data.vehiclefinder['ranges'][row] ;
						          options += '<option value="' + vehicle.range_id + '">' + vehicle.range + '</option>';
						        }
							    _searchbarquick.children('.searchbar-range').html(options) ;
							    _searchbarquick.children('.searchbar-variant').html("<option value='false'>Please Select a Vehicle Model</option>") ;
							  });
						})
	}) ;

	// set up models...
	$('.quick-search .searchbar-range').each(function(){
		$(this).change(function(){
							var model_id = $(this).parent().children('.searchbar-range').val() ;
							_searchbarquick = $(this).parent() ;
							$.getJSON("/ajaxGateway/vehicle.ajax.php?action=variants&range_id="+model_id, {},
							  function(data){
							    var options = '';
							    for (row in data.vehiclefinder['variants']) {
							      vehicle = data.vehiclefinder['variants'][row] ;
						          options += '<option value="' + vehicle.id + '">' + vehicle.model + ' ' + vehicle.variant + '</option>';
						        }
							    _searchbarquick.children('.searchbar-variant').html(options) ;
							  });
						})
		
	}) ;
	
	
	return ;
}

function setupSearchHandler() {

	// : ajax forms : //
	var options = {		target:        	'#content-2col',   // target element(s) to be updated with server response 
						beforeSubmit:  	preSearch,  // pre-submit callback 
						success:       	showResults,  // post-submit callback
						error:			errorSearch, // something's gond wrong
						type:      		"post"
					};

	// : bind form using 'ajaxForm' : //

	var searchform = $('#searchform') ;

	// : hide the search button : //
	$('.hidden-search-submit').hide() ;

	// : set up the checkboxes on the search filter : //
	$('.check-list li').each(function(){
		$(this).click(function(){
			preSearch() ;
			$('#searchform').submit() ;
		}) ;

		$(this).find("a").click(function(){
						var input = $(this).parent().parent().find("input") ;
						if(input.attr("checked") == true) {
							input.attr("checked", false) ;
						} else {
							input.attr("checked", true) ;
						}

						// $(this).parent().parent().find("input").attr("checked", "checked") ;
						preSearch() ;
						$('#searchform').submit() ;
						return false ;
		}) ;

	}) ;

	$('.check-list select').change(function(){
		preSearch() ;
		$('#searchform').submit() ;
	}) ;

	searchform.attr("action", "/ajaxGateway/search.ajax.php") ;
	searchform.ajaxForm(options) ;
}

function preSearch() {
	// : change the results pane to a 'loading' image : //
	// $("div.result-table table").fadeTo("slow", 0.33);
	// $('#searchform').fadeTo("slow", 0.33);
	$('.content-holder-2col').fadeTo("fast", 0.50);
	$("div.result-table table").fadeTo("fast", 0.50);
	$("#searchLoading").show() ;
}

function showResults() {
	// : unchange the results pane from a 'loading' image and bulid the results : //
	// $("div.result-table table").fadeTo("fast", 1);
	$(".content-holder-2col").fadeTo("fast", 1);
	$("div.result-table table").fadeTo("fast", 1);
	$("#searchLoading").hide() ;
}

function errorSearch() {
	// alert("Something has gone wrong - please try again in a moment.") ;
}