$(document).ready(function() {
  $("#intro #header").css('cursor', 'pointer');
  $("#intro #header").click(function() {
    window.location = sitepath;
  });
  
	// Used cars
	if ($("#f_carfinder").length) {
		update_carfinder('f_carfinder');
		$("#f_carfinder select").not("#sort_order").change(function() {
			update_carfinder('f_carfinder');
		});
		$("a.car_slideshow").colorbox({slideshow:true});
	}
});


function update_carfinder(obj_id) {
	$("#" + obj_id + " div.loadbar").width($("#" + obj_id).width());
	$("#" + obj_id + " div.loadbar").height($("#" + obj_id).height() - 20);  // 20px padding
	$("#" + obj_id + " div.loadbar").show();
	// if the make's been chaaged, reset the model
	if ($("#" + obj_id + " select.make").val() != selected_make) {
		$("#" + obj_id + " select.model").val('')
	}
	if ($("#" + obj_id + " select.make option").length) {
		selected_make = $("#" + obj_id + " select.make").val();
		selected_model = $("#" + obj_id + " select.model").val();
		selected_price1 = $("#" + obj_id + " select.price1").val();
		selected_price2 = $("#" + obj_id + " select.price2").val();
		selected_sort = $("#" + obj_id + " select.sort").val();
	}
	// if the make's been chaaged, reset the model
	$.getJSON(sitepath + 'ajax/carfinder/', {
		'action': 'form',
		'make': selected_make,
		'model': selected_model,
		'price1': selected_price1,
		'price2': selected_price2,
		'sort': selected_sort
	}, function(data) {
		var thisval;
		/*
		console.log(selected_make);
		console.log(selected_model);
		console.log(selected_price1);
		console.log(selected_price2);
		console.log(selected_sort);
		*/
		
		// makes
		$("#" + obj_id + " select.make option").remove();
		$("#" + obj_id + " select.make").append('<option value="">SHOW ALL</option>');
		for (key in data.makes) {
			thisval = data.makes[key].Make;
			$("#" + obj_id + " select.make").append('<option value="' + thisval + '">' + thisval + '</option>');
		}
		$("#" + obj_id + " select.make option[value='" + selected_make + "']").attr('selected', 'true');
		
		// models
		$("#" + obj_id + " select.model option").remove();
		$("#" + obj_id + " select.model").append('<option value="">SHOW ALL</option>');
		for (key in data.models) {
			thisval = data.models[key].Model;
			$("#" + obj_id + " select.model").append('<option value="' + thisval + '">' + thisval + '</option>');
		} 
		$("#" + obj_id + " select.model option[value='" + selected_model + "']").attr('selected', 'true');
		
		// prices (min)
		$("#" + obj_id + " select.price1 option").remove();
		for (key in data.prices) {
			thisval = data.prices[key];
			// don't show highest value
			if (key != (data.prices.length - 1)) {
				$("#" + obj_id + " select.price1").append('<option value="' + thisval + '">&pound;' + addCommas(thisval) + '</option>');
			}
		}
		if (selected_price1 != null && $("#" + obj_id + " select.price1 option[value='" + selected_price1 + "']").length) {
			$("#" + obj_id + " select.price1 option[value='" + selected_price1 + "']").attr('selected', 'true');
		} else {
			$("#" + obj_id + " select.price1 option:first").attr('selected', 'true');
		}
		
		// prices (max)
		$("#" + obj_id + " select.price2 option").remove();
		for (key in data.prices) {
			thisval = data.prices[key];
			// don't show lowest value
			if (key != 0) {
				$("#" + obj_id + " select.price2").append('<option value="' + thisval + '">&pound;' + addCommas(thisval) + '</option>');
			}
		}
		if (selected_price2 != null && $("#" + obj_id + " select.price2 option[value='" + selected_price2 + "']").length) {
			$("#" + obj_id + " select.price2 option[value='" + selected_price2 + "']").attr('selected', 'true');
		} else {
			$("#" + obj_id + " select.price2 option:last").attr('selected', 'true');
		}
		
		// sort order
		$("#" + obj_id + " select.sort option").removeAttr('selected');
		if (selected_price2 != null && $("#" + obj_id + " select.sort option[value='" + selected_sort + "']").length) {
			$("#" + obj_id + " select.sort option[value='" + selected_sort + "']").attr('selected', 'true');
		}
		
		
		// num results
		if (data.results == 1) {
			$("#" + obj_id + " span.num_results").html('<a href="javascript:show_cars();">Click to show 1 match</a>');
		} else if (data.results > 1) {
			$("#" + obj_id + " span.num_results").html('<a href="javascript:show_cars();">Click to show ' + data.results + ' matches</a>');
		} else {
			$("#" + obj_id + " span.num_results").html('No matches');
		}
		
		$("#" + obj_id + " div.loadbar").hide();
	});
}

function show_cars() {
	$("#f_carfinder").submit();
}

function addCommas(nStr)
{
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}

