var cars_json;
var MAX_RESULTS = 60;
var current_page = 1;
var slider_activated = false;
var section = "";
var size_filter = new Object();
var completed = false;
var feed_finished = false;
var filters_applied = new Object();
var filter_results = new Object();
var done_code = false;
var ButtonText = "More";
var request_id = '';

// Called when page html is ready to be manipulated
$().ready(function() {/*{{{*/
	      
	      

	getCars();

	$('.icons a.ui-state-default-green').hover(
		function() { $(this).addClass('ui-state-hover-green'); },
		function() { $(this).removeClass('ui-state-hover-green'); }
	);
	$('.icons a.ui-state-default').hover(
		function() { $(this).addClass('ui-state-hover'); },
		function() { $(this).removeClass('ui-state-hover'); }
	);
	
});/*}}}*/

function getCars()/*{{{*/
{
	completed = false;
	$.getJSON("/carhire/getCars.php?jsoncallback=?&"+query_string+'&request_id='+request_id, function(json) {
		cars_json = json;
		request_id = json.request_id;
		completed = true;
		$.each(json, function(i,item)
		{
			switch(i)
			{
		    	case "feed_completion":/*{{{*/
					if(item != 100)
					{
  			  			setTimeout("getCars()", 1000);
						feed_finished = false;
					}
					else
					{
						$('#progressbar').hide();
            $('.loadingImage').hide();
            $('.searchResultsFormRight').show();
            feed_finished = true;
					}
			  		//$('#progressbar').progressbar('option', 'value', item);
				break;	/*}}}*/

				case "nocars":/*{{{*/
					if(feed_finished)
					{
						carshtml = nocars_template;
						$("#bookingForm").html(carshtml);
					}
				break;/*}}}*/

				case "suppliers":/*{{{*/
			  		var suphtml = "";
			   		$.each(item, function(supname,supdata) {
						supprice = parseFloat(supdata.price).toFixed(2);
	    				suphtml += supplier_template.replace(/%%supplier_name%%/g, supname).replace(/%%supplier_price%%/g, supprice).replace(/%%car_id%%/, supdata.car_id);
			   		});
			   		//$("#suppliers_content").html(suphtml);
					/*$(".suppliers_tooltip").tooltip({
						bodyHandler: function() {
							return $("<img/>").attr("src", "images/suppliers/"+$(this).attr("id")+".jpg");
						}
					});    */
				break;/*}}}*/

				case "carsizes":/*{{{*/
			   		$.each(item, function(sipp,sizedata)
					{
						sizeprice = parseFloat(sizedata.price).toFixed(2);
	    				var sizehtml = '<a href="javascript:void(0);" onclick="showCar('+sizedata.car_id+')">&pound;'+sizeprice+'</a>';
						var id = "#class_"+sipp;
			   			//$(id).html(sizehtml);
			   			//$("#chk_class_"+sipp).attr("disabled", false);

			   		});
				break;/*}}}*/

				case "cartypes":/*{{{*/
			   		$.each(item, function(sipp,typedata)
					{
						typeprice = parseFloat(typedata.price).toFixed(2);
	    				var typehtml = '<a href="javascript:void(0);" onclick="showCar('+typedata.car_id+')">&pound;'+typeprice+'</a>';
						var id = "#type_"+sipp;
			   			//$(id).html(typehtml);
			   			//$("#chk_type_"+sipp).attr("disabled", false);

			   		});
				break;/*}}}*/

				case "prices":/*{{{*/
					//$("#slider-range").slider('option', 'min', Math.floor(item.cheapest));
					//$("#slider-range").slider('option', 'max', Math.ceil(item.expensive));
					//$("#slider-range").slider('values', 0, Math.floor(item.cheapest));
					//$("#slider-range").slider('values', 1, Math.ceil(item.expensive));
					//$("#amount").html('Minimum: &pound;' + $("#slider-range").slider("values", 0) + ' - Maximum: &pound;' + $("#slider-range").slider("values", 1));
				break;/*}}}*/

				case "co2":/*{{{*/
					//$("#slider-range-green").slider('option', 'min', Math.floor(item.lowest));
					//$("#slider-range-green").slider('option', 'max', Math.ceil(item.highest));
					//$("#slider-range-green").slider('values', 0, Math.floor(item.lowest));
					//$("#slider-range-green").slider('values', 1, Math.ceil(item.highest));
					//$("#amount-green").html('Minimum: ' + $("#slider-range-green").slider("values", 0) + ' CO2 g/km '+co2Rating($("#slider-range-green").slider("values", 0))+'<br />Maximum: ' + $("#slider-range-green").slider("values", 1)+' CO2 g/km '+co2Rating($("#slider-range-green").slider("values", 1)));
				break;/*}}}*/

    			case "cars":/*{{{*/
					restrictCars(json.cars);

				break;/*}}}*/
			}
		});
		if(json.cars)
		{
			var num_pages = Math.ceil(json.cars.length/MAX_RESULTS);
		}
		else
		{
			var num_pages = 0;
		}
		//alert(num_pages);
		pageNumbers(num_pages);
	});

}/*}}}*/

function setImage(val)/*{{{*/
{
	if(val == "Yes")
	{
		return tick;
	}
	else if(val == "No")
	{
		return cross;
	}
	else
	{
		return unknown;
	}
}/*}}}*/

function showCar(car_id)/*{{{*/
{
	$('#dialogdiv').html($('#dialogdiv').html()+'<div id="dialog" title="Dialog Title"><span></span></div>');
	var car = cars_json.cars[car_id];

	temphtml = parseResultsTemplate(car);
	temphtml = temphtml.replace(/class="tooltip"/g, 'class="tooltip2"');
	temphtml = temphtml.replace(/class="car_image"/g, 'class="car_image2"');
	$('#dialog').dialog({ autoOpen: false, width: '650px', resizable: false, title: car.supplier_name, modal: true });
	$("#dialog span").html(temphtml);
	$.ui.dialog.defaults.bgiframe = true;
	$(function() {
		$("#dialog").dialog('open');
	});
  /*	$('.tooltip2').tooltip({
		showBody: " - ",
		extraClass: 'tooltip'
	});
	$('.car_image2').tooltip({
	    delay: 0,
		track: true,
		showURL: false,
		bodyHandler: function() {
			return $("<img/>").attr("src", this.src);
		}
	});   */

}/*}}}*/

function parseResultsTemplate(car)/*{{{*/
{
	var price = parseFloat(car.price).toFixed(2);
	var temphtml = results_template
	var class_text = car.car_class+' - '+car.type;
	temphtml = temphtml.replace(/%%class_text%%/g, class_text);
	temphtml = temphtml.replace(/%%price%%/g, price);
	temphtml = temphtml.replace(/%%link_out%%/g, car.link);
	temphtml = temphtml.replace(/%%car_image%%/g, car.image);
	temphtml = temphtml.replace(/%%doors%%/g, car.doors);
	if(car.transmission == "Manual")
		temphtml = temphtml.replace(/%%transmission%%/g, manual_img);
	else
		temphtml = temphtml.replace(/%%transmission%%/g, auto_img);

	temphtml = temphtml.replace(/%%aircon%%/g, setImage(car.aircon));
	temphtml = temphtml.replace(/%%freecancel%%/g, setImage(car.free_cancelation));
	temphtml = temphtml.replace(/%%unlimiles%%/g, setImage(car.unlimited_mileage));
	temphtml = temphtml.replace(/%%cdw%%/g, setImage(car.cdw));
	temphtml = temphtml.replace(/%%theft%%/g, setImage(car.theft_protection));
	temphtml = temphtml.replace(/%%localtax%%/g, setImage(car.local_tax));
	temphtml = temphtml.replace(/%%vehiclestatus%%/g, car.status);
	temphtml = temphtml.replace(/%%freeadditionaldriver%%/g, setImage(car.free_additional_driver));
	temphtml = temphtml.replace(/%%freecancel%%/g, setImage(car.free_cancelation));
	temphtml = temphtml.replace(/%%freecancelcon%%/g, car.free_cancelation_message);

	if(car.co2 != "")
	{
		temphtml = temphtml.replace(/%%co2_title%%/g, 'Green rating:');
	}
	else
	{
		temphtml = temphtml.replace(/%%co2_title%%/g, '');
	}

	temphtml = temphtml.replace(/%%co2%%/g, co2Rating(car.co2));

	if(car.special_offers == "")
		temphtml = temphtml.replace(/%%specials_show%%/g, "");
	else
		temphtml = temphtml.replace(/%%specials_show%%/g, 'style="display:block;"');

	temphtml = temphtml.replace(/%%specials%%/g, car.special_offers);
	temphtml = temphtml.replace(/%%supplier_image%%/g, car.supplier_image);
	temphtml = temphtml.replace(/%%car_id%%/g, car.car_id);

	return temphtml;
}/*}}}*/

function co2Rating(co2)/*{{{*/
{
	var co2Rating = 0;
	if(co2 == 0)
	{
		co2Rating = 0;
	}
	else if(co2<=125)
	{
	   co2Rating=5;
	}
	else if(co2>125 && co2 <=150)
	{
	   co2Rating=4;
	}
	else if(co2>150 && co2 <=180)
	{
	   co2Rating=3;
	}
	else if(co2>180 && co2 <=230)
	{
	   co2Rating=2;
	}
	else if(co2>230)
	{
	   co2Rating=1;
	}

	var tempHtml = "";
	for(i = 0;i<co2Rating;i++)
	{
		tempHtml += '<img src="images/search_results/green_rating.gif"/>';
	}

	return tempHtml;
}/*}}}*/

var currentAnchor = null;
// Function which check if there are anchor changes
function checkAnchor()/*{{{*/
{
	//Check if it has changes
	if(currentAnchor != document.location.hash)
	{
		currentAnchor = document.location.hash;
		//if there is not anchor, the loads the default section
		if(!currentAnchor)
		query = "";
		else
		{
			//Creates the string callback. This converts the url URL/#main&id=2 in URL/?section=main&id=2
			var splits = currentAnchor.substring(1).split('&');
			//Get the section
			section = splits[0];
			delete splits[0];
			//Create the params string
			var params = splits.join('&');
			var query = "section=" + section + params;
		}
		//Send the petition
		switch(section)
		{
			case "paging":
				var page = splits[1].split('=');
				if(completed)
				{
					sleep('paging('+page[1]+')', 2000);
				}
			break;

			case "filter":
				if(completed)
				{
					sleep('paging(1)', 2000);
				}
			break;
		}
		//$.getJSON("callbacks.php?"+query, function(data){

		//	$("#welcome_text").html(data.welcome_text);
		//	$("#content").html(data.content);
		//});
	}
}/*}}}*/

function pageNumbers(num_pages)/*{{{*/
{
	if(num_pages)
	{
		var total_pages = 5;
		var max_pages = num_pages;
		var page_num_html = '&#171; Prev ';
		var start_page_num = 1;

		if(max_pages > total_pages)
		{
			max_pages = total_pages;
		}

		if(current_page > 1)
		{
			var prev_page = parseInt(current_page)-1;
			page_num_html = '&#171; <a href="#paging&page='+prev_page+'"> Prev</a> ';
		}

		if(current_page >= 4)
		{
			start_page_num = parseInt(current_page) - 1;
			max_pages = start_page_num+total_pages-1;
			if(max_pages >= num_pages)
			{
				max_pages = num_pages;
				start_page_num = num_pages-4
			}
			page_num_html += '<a href="#paging&page=1">1</a> ... ';
		}

		for(i = start_page_num;i<=max_pages;i++)
		{
			if(current_page != i)
			{
				page_num_html += '<a href="#paging&page='+i+'">'+i+'</a> ';
			}
			else
			{
				page_num_html += '<span id="current_page">'+i+'</span> ';
			}
		}
		if(current_page == num_pages-4 && num_pages-4 > max_pages)
		{
			page_num_html += '<a href="#paging&page='+num_pages+'">'+num_pages+'</a> ';
		}
		else if(max_pages < num_pages-1)
		{
			page_num_html += '... <a href="#paging&page='+num_pages+'">'+num_pages+'</a> ';
		}

		if(current_page == num_pages)
		{
			page_num_html += 'Next &#187;';
		}
		else
		{
			var next_page = current_page+1;
			page_num_html += '<a href="#paging&page='+next_page+'">Next</a>  &#187;';
		}

		//$('#paging_list').html(page_num_html);
	}
	else
	{
		//$('#paging_list').html('');
	}

  /*	$('.tooltip').tooltip({
		showBody: " - ",
		extraClass: 'tooltip'
	});
	$('.car_image').tooltip({
	    delay: 0,
		track: true,
		showURL: false,
		bodyHandler: function() {
			return $("<img/>").attr("src", this.src);
		}
	});   */
	//$(".sidebar_tooltip").tooltip();
}       /*}}}*/

function paging(page_num)/*{{{*/
{
	$("#loading").show();
	current_page = page_num;
	cars = filterCars();
	//cars = cars_json;

	page_num--;

	var car_start = page_num * MAX_RESULTS;
	var car_end = car_start+MAX_RESULTS-1;

	restrictCars(cars);

	/*scroll(0,0);
  	$('.tooltip').tooltip({
		showBody: " - ",
		extraClass: 'tooltip'
	});
	$('.car_image').tooltip({
	    delay: 0,
		track: true,
		showURL: false,
		bodyHandler: function() {
			return $("<img/>").attr("src", this.src);
		}
	});              */
	//$(".sidebar_tooltip").tooltip();
	$("#loading").hide();
	$("#updating").hide();
}/*}}}*/

function filterCars()/*{{{*/
{
	var suppliers = new Object();
	var car_options = new Object();
	var car_class = new Object();
	var car_type = new Object();
	var count = 0;
/*
	$(".suppliers").each( function ()
	{
		if(this.checked == true)
		{
			suppliers[$(this).val()] = '';
			count++;
      	}
		else
		{
			filters_applied['suppliers'] = true;
		}
    });
	if(count == $(".suppliers").length)  filters_applied['suppliers'] = false;
*/
	count = 0;
	$(".car_options").each( function ()
	{
		if(this.checked == true)
		{
		  switch($(this).attr('id'))
		  {
        case "airconboth":
          car_options['airconyes'] = 'Yes';
          car_options['airconno'] = 'No';
        break;
        
        case "transboth":
          car_options['automatic'] = 'Automatic';
          car_options['manual'] = 'Manual';
        break;
        
        default:
          car_options[$(this).attr('id')] = $(this).val();
      }
			
			count++;
    }
		else
		{
			car_options[$(this).attr('id')] = '';
			filters_applied['options'] = true;
		}
    });
	if(count == $(".car_options").length)  filters_applied['options'] = false;
/*
	count = 0;
	$(".car_class").each( function ()
	{
		if(this.checked == true)
		{
			if($(this).val().length == 2)
			{
				car_class[$(this).val().substring(0,1)] = '';
				car_class[$(this).val().substring(1,2)] = '';
			}
			else
			{
				car_class[$(this).val()] = '';
			}
			count++;
		}
		else
		{
			filters_applied['class'] = true;
		}
    });
	if(count == $(".car_class").length)  filters_applied['class'] = false;

	count = 0;
	$(".car_types").each( function ()
	{
		if(this.checked == true)
		{
			if($(this).val().length == 2)
			{
				car_type[$(this).val().substring(0,1)] = '';
				car_type[$(this).val().substring(1,2)] = '';
			}
			else
			{
				car_type[$(this).val()] = '';
			}
			count++;
      	}
		else
		{
			filters_applied['type'] = true;
		}
    });
	if(count == $(".car_types").length)  filters_applied['type'] = false;
*/
	var carcount = 0;
	var cars = Object();
	var cheapest = 0;
	var expensive = 0;
	var lowest = 0;
	var highest = 0;

   	$.each(cars_json.cars, function(m,car)
	{
		//var carclass = car.sipp.substring(0,1);
		if(/*car.supplier_name in suppliers &&*/ (car.transmission == car_options['manual'] || car.transmission == car_options['automatic']) && (car.aircon == car_options['airconyes'] || car.aircon == car_options['airconno'])/* && carclass in car_class && car.sipp.substring(1,2) in car_type*/)
		{

			//if((car.price >= $("#slider-range").slider("values", 0) && car.price <= $("#slider-range").slider("values", 1) || ($("#slider-range").slider("option", 'min') == 0 && $("#slider-range").slider("option", 'max') == 0)) && (car.co2 >= $("#slider-range-green").slider("values", 0) && car.co2 <= $("#slider-range-green").slider("values", 1) || ($("#slider-range-green").slider("option", 'min') == 0 && $("#slider-range-green").slider("option", 'max') == 0)))
			//{
					carcount++;
			//}
			//if(lowest == 0 || parseInt(car.co2) < parseInt(lowest)) lowest = car.co2;
			//if(parseInt(car.co2) > parseInt(highest)) highest = car.co2;
			//if(cheapest == 0 || parseInt(car.price) < parseInt(cheapest)) cheapest = car.price;
			//if(parseInt(car.price) > parseInt(expensive)) expensive = car.price;
		}
   	});

	// Set slider values
	/*if(!slider_activated && $("#slider-range").slider("values", 0) == $("#slider-range").slider("option", "min"))*//*{{{*/
	/*{
		$("#slider-range").slider('option', 'min', Math.floor(cheapest));
		$("#slider-range").slider('values', 0, Math.floor(cheapest));
		$("#amount").html('Minimum: &pound;' + $("#slider-range").slider("values", 0) + ' - Maximum: &pound;' + $("#slider-range").slider("values", 1));
	}
	else if(!slider_activated && $("#slider-range").slider("option", "min") > Math.floor(cheapest))
	{
		$("#slider-range").slider('option', 'min', Math.floor(cheapest));
	}

	if(!slider_activated && $("#slider-range").slider("values", 1) == $("#slider-range").slider("option", "max"))
	{
		$("#slider-range").slider('option', 'max', Math.ceil(expensive));
		$("#slider-range").slider('values', 1, Math.ceil(expensive));
		$("#amount").html('Minimum: &pound;' + $("#slider-range").slider("values", 0) + ' - Maximum: &pound;' + $("#slider-range").slider("values", 1));
	}
	else if(!slider_activated && $("#slider-range").slider("option", "max") > Math.ceil(expensive))
	{
		var current = $("#slider-range").slider("values", 1);
		$("#slider-range").slider('option', 'max', Math.ceil(expensive));
		if(current > $("#slider-range").slider("option", "max"))
		{
			$("#slider-range").slider('values', 1, Math.ceil(expensive));
			$("#amount").html('Minimum: &pound;' + $("#slider-range").slider("values", 0) + ' - Maximum: &pound;' + $("#slider-range").slider("values", 1));
		}
	}
	else if(!slider_activated && $("#slider-range").slider("option", "max") < Math.ceil(expensive))
	{
		$("#slider-range").slider('option', 'max', Math.ceil(expensive));
	}

	if(!slider_activated && $("#slider-range-green").slider("values", 0) == $("#slider-range-green").slider("option", "min"))
	{
		$("#slider-range-green").slider('option', 'min', Math.floor(lowest));
		$("#slider-range-green").slider('values', 0, Math.floor(lowest));
		$("#amount-green").html('Minimum: ' + $("#slider-range-green").slider("values", 0) + ' CO2 g/km '+co2Rating($("#slider-range-green").slider("values", 0))+'<br />Maximum: ' + $("#slider-range-green").slider("values", 1)+' CO2 g/km '+co2Rating($("#slider-range-green").slider("values", 1)));
	}
	else if(!slider_activated && $("#slider-range-green").slider("option", "min") > Math.floor(lowest))
	{
		$("#slider-range-green").slider('option', 'min', Math.floor(lowest));
	}

	if(!slider_activated && $("#slider-range-green").slider("values", 1) == $("#slider-range-green").slider("option", "max"))
	{
		$("#slider-range-green").slider('option', 'max', Math.ceil(highest));
		$("#slider-range-green").slider('values', 1, Math.ceil(highest));
		$("#amount-green").html('Minimum: ' + $("#slider-range-green").slider("values", 0) + ' CO2 g/km '+co2Rating($("#slider-range-green").slider("values", 0))+'<br />Maximum: ' + $("#slider-range-green").slider("values", 1)+' CO2 g/km '+co2Rating($("#slider-range-green").slider("values", 1)));
	}
	else if(!slider_activated && $("#slider-range-green").slider("option", "max") > Math.ceil(highest))
	{
		var current = $("#slider-range-green").slider("values", 1);
		$("#slider-range-green").slider('option', 'max', Math.ceil(highest));
		if(current > $("#slider-range-green").slider("option", "max"))
		{
			$("#slider-range-green").slider('values', 1, Math.ceil(highest));
			$("#amount-green").html('Minimum: ' + $("#slider-range-green").slider("values", 0) + ' CO2 g/km '+co2Rating($("#slider-range-green").slider("values", 0))+'<br />Maximum: ' + $("#slider-range-green").slider("values", 1)+' CO2 g/km '+co2Rating($("#slider-range-green").slider("values", 1)));
		}
	}
	else if(!slider_activated && $("#slider-range-green").slider("option", "max") < Math.ceil(highest))
	{
		$("#slider-range-green").slider('option', 'max', Math.ceil(highest));
	}*//*}}}*/

	if(carcount)
	{
		var num_pages = Math.ceil(carcount/MAX_RESULTS);
	}
	else
	{
		var num_pages = 0;
	}

   	$.each(cars_json.cars, function(m,car)
	{
		//carclass = car.sipp.substring(0,1);
		if(/*car.supplier_name in suppliers && */(car.transmission == car_options['manual'] || car.transmission == car_options['automatic']) && (car.aircon == car_options['airconyes'] || car.aircon == car_options['airconno'])/* && carclass in car_class && car.sipp.substring(1,2) in car_type*/)
		{
			//if((car.price >= $("#slider-range").slider("values", 0) && car.price <= $("#slider-range").slider("values", 1) || ($("#slider-range").slider("option", 'min') == 0 && $("#slider-range").slider("option", 'max') == 0)) && (car.co2 >= $("#slider-range-green").slider("values", 0) && car.co2 <= $("#slider-range-green").slider("values", 1) || ($("#slider-range-green").slider("option", 'min') == 0 && $("#slider-range-green").slider("option", 'max') == 0)))
			//{
					cars[m] = car;
			//}
		}
   	});

	/*if($("#slider-range").slider("values", 0) != $("#slider-range").slider("option", 'min') || $("#slider-range").slider("values", 1) != $("#slider-range").slider("option", 'max'))
	{
		filters_applied['price'] = true;
	}
	else
	{ */
		filters_applied['price'] = false;
	//}

	//if($("#slider-range-green").slider("values", 0) != $("#slider-range-green").slider("option", 'min') || $("#slider-range-green").slider("values", 1) != $("#slider-range-green").slider("option", 'max'))
	//{
	//	filters_applied['co2'] = true;
	//}
	//else
	//{
		filters_applied['co2'] = false;
	//}

	var show_filters = false;
/*
   	$.each(filters_applied, function(filter,value)
	{
		switch(filter)
		{
			case "suppliers":
				if(value)
				{
					$('#filter_suppliers').show();
					show_filters = true;
				}
				else
				{
					$('#filter_suppliers').hide();
				}
			break;

			case "options":
				if(value)
				{
					$('#filter_options').show();
					show_filters = true;
				}
				else
				{
					$('#filter_options').hide();
				}
			break;

			case "type":
				if(value)
				{
					$('#filter_type').show();
					show_filters = true;
				}
				else
				{
					$('#filter_type').hide();
				}
			break;

			case "class":
				if(value)
				{
					$('#filter_class').show();
					show_filters = true;
				}
				else
				{
					$('#filter_class').hide();
				}
			break;

			case "price":
				if(value)
				{
					$('#filter_price').show();
					show_filters = true;
				}
				else
				{
					$('#filter_price').hide();
				}
			break;

			case "co2":
				if(value)
				{
					$('#filter_co2').show();
					show_filters = true;
				}
				else
				{
					$('#filter_co2').hide();
				}
			break;
			//alert(filter+' '+value)
		}
	});
*/
	if(show_filters)
	{
		$('#filter_box').show();
	}
	else
	{
		$('#filter_box').hide();
	}

	pageNumbers(num_pages);

	return cars;
}/*}}}*/

var sleepTO = new Array();
function sleep(func, delay)/*{{{*/
{
    if (sleepTO[func] != undefined)
	  clearTimeout(sleepTO[func]);

	$("#loading").show();
	$("#updating").show();
	sleepTO[func] = window.setTimeout(func, delay);
}/*}}}*/

function perPage()/*{{{*/
{
	$("#loading").show();
	$("#updating").show();
	MAX_RESULTS = $('#perpage').val();
	paging(1);
}/*}}}*/

function filter()/*{{{*/
{
	$("#loading").show();
    $("#updating").show();
	window.location = "#filter&page=1";
	sleep('paging(1)', 2000);
}/*}}}*/

function filterSupplier(supName)/*{{{*/
{
	$("#loading").show();
    $("#updating").show();
	$(".suppliers").each( function ()
	{
		if($(this).attr("id") == supName || supName == "all")
		{
			this.checked = true;
		}
		else
		{
			this.checked = false;
		}
    });
	window.location = "#filter&page=1";
	sleep('paging(1)', 1000);
}/*}}}*/

var shortlist = new Object();
function addShortlist(car_id)/*{{{*/
{
	shortlist[car_id] = '';
	var htmlList = "";
   	$.each(cars_json.cars, function(m,car)
	{
		if(car.car_id in shortlist)
		{
			var price = parseFloat(car.price).toFixed(2);
			var temphtml = shortlist_template
			var class_text = car.car_class+' - '+car.type;
			temphtml = temphtml.replace(/%%car_details%%/g, class_text);
			temphtml = temphtml.replace(/%%car_image%%/g, car.image);
			temphtml = temphtml.replace(/%%supplier_name%%/g, car.supplier_name);
			temphtml = temphtml.replace(/%%car_id%%/g, car.car_id);
			temphtml = temphtml.replace(/%%car_price%%/g, price);
			temphtml = temphtml.replace(/%%car_link%%/g, car.link);
			htmlList += temphtml;
		}
	});

	htmlList += '<a href="javascript:void(0)" onclick="showShortlist();"><div class="compare_go">Click to Compare</div></a>';

	//$('#shortlist_content').html(htmlList);
}/*}}}*/

function showShortlist()/*{{{*/
{
	$('#dialogdiv').html($('#dialogdiv').html()+'<div id="dialogShortlist" title="Short List"><span></span></div>');

	temphtml = '<div class="compare_header"></div>';
   	$.each(cars_json.cars, function(m,car)
	{
		if(car.car_id in shortlist)
		{
			temphtml += parseCompareTemplate(car);
		}
	});
	temphtml += '<div class="compare_bottom"></div>';

	$('#dialogShortlist').dialog({ autoOpen: false, width: 760, resizable: false, modal: true, height: 600, draggable: false, buttons: { "Close": function() { $(this).dialog("close"); } } });

	//$("#dialogShortlist span").html(temphtml);

	$.ui.dialog.defaults.bgiframe = true;

	$(function() {
		$("#dialogShortlist").dialog('open');
	});

  	$('.tooltip3').tooltip({
		showBody: " - ",
		extraClass: 'tooltip'
	});

	$('.car_image3').tooltip({
	    delay: 0,
		track: true,
		showURL: false,
		bodyHandler: function() {
			return $("<img/>").attr("src", this.src);
		}
	});

}/*}}}*/

function parseCompareTemplate(car)/*{{{*/
{
	var price = parseFloat(car.price).toFixed(2);
	var temphtml = compare_template
	var class_text = car.car_class+' - '+car.type;
	temphtml = temphtml.replace(/%%car_details%%/g, class_text);
	temphtml = temphtml.replace(/%%car_price%%/g, price);
	temphtml = temphtml.replace(/%%car_link%%/g, car.link);
	temphtml = temphtml.replace(/%%car_image%%/g, car.image);
	temphtml = temphtml.replace(/%%doors%%/g, car.doors);
	if(car.transmission == "Manual")
		temphtml = temphtml.replace(/%%transmission%%/g, manual_img);
	else
		temphtml = temphtml.replace(/%%transmission%%/g, auto_img);

	temphtml = temphtml.replace(/%%aircon%%/g, setImage(car.aircon));
	temphtml = temphtml.replace(/%%freecancel%%/g, setImage(car.free_cancelation));
	temphtml = temphtml.replace(/%%unlimiles%%/g, setImage(car.unlimited_mileage));
	temphtml = temphtml.replace(/%%cdw%%/g, setImage(car.cdw));
	temphtml = temphtml.replace(/%%theft%%/g, setImage(car.theft_protection));
	temphtml = temphtml.replace(/%%localtax%%/g, setImage(car.local_tax));
	temphtml = temphtml.replace(/%%vehiclestatus%%/g, car.status);
	temphtml = temphtml.replace(/%%freeadditionaldriver%%/g, setImage(car.free_additional_driver));
	temphtml = temphtml.replace(/%%freecancel%%/g, setImage(car.free_cancelation));
	temphtml = temphtml.replace(/%%freecancelcon%%/g, car.free_cancelation_message);
	temphtml = temphtml.replace(/%%supplier_name%%/g, car.supplier_name);

	if(car.co2 != "")
	{
		temphtml = temphtml.replace(/%%co2_title%%/g, 'Green rating:');
	}
	else
	{
		temphtml = temphtml.replace(/%%co2_title%%/g, '');
	}

	temphtml = temphtml.replace(/%%co2%%/g, co2Rating(car.co2));

	if(car.special_offers == "")
		temphtml = temphtml.replace(/%%specials_show%%/g, "");
	else
		temphtml = temphtml.replace(/%%specials_show%%/g, 'style="display:block;"');

	temphtml = temphtml.replace(/%%specials%%/g, car.special_offers);
	temphtml = temphtml.replace(/%%supplier_image%%/g, car.supplier_image);
	temphtml = temphtml.replace(/%%car_id%%/g, car.car_id);

	return temphtml;
}/*}}}*/

function printResults()/*{{{*/
{
	page_num = current_page;
	cars = filterCars();
	//cars = cars_json;

	page_num--;

	var car_start = page_num * MAX_RESULTS;
	var car_end = car_start+MAX_RESULTS-1;
	var carcount = 0;
	var carshtml = '<link href="http://compare.carrentals.co.uk/styles/default_search.css" rel="stylesheet" type="text/css" />';

   	$.each(cars, function(m,car)
	{
	    if(carcount >= car_start)
			carshtml += parseResultsTemplate(car);

		if(carcount >= car_end)
		   return false;

		carcount++;
   	});

	carshtml = carshtml.replace(/class="search_results_container"/g, 'class="search_results_container_print"');
	var windowUrl = 'about:blank';
	var uniqueName = new Date();
	var windowName = 'PrintSection' + uniqueName.getTime();
	var printWindow = window.open(windowUrl, windowName, 'left=500,top=000,width=650,height=600');
	printWindow.document.write(carshtml);
	printWindow.document.close();
	printWindow.focus();
	printWindow.print();
	printWindow.close();
}/*}}}*/

function removeFilter(filter)/*{{{*/
{
	switch(filter)
	{
		case "suppliers":/*{{{*/
			filters_applied['suppliers'] = false;
			$('filter_suppliers').hide();
			$(".suppliers").each( function ()
			{
				this.checked = true;
	    	});
		break;/*}}}*/

		case "options":/*{{{*/
			filters_applied['options'] = false;
			$('filter_options').hide();
			$(".car_options").each( function ()
			{
				this.checked = true;
	    	});
		break;/*}}}*/

		case "type":/*{{{*/
			filters_applied['type'] = false;
			$('filter_type').hide();
			$(".car_types").each( function ()
			{
				this.checked = true;
	    	});
		break;/*}}}*/

		case "class":/*{{{*/
			filters_applied['class'] = false;
			$('filter_class').hide();
			$(".car_class").each( function ()
			{
				this.checked = true;
	    	});
		break;/*}}}*/

		case "price":/*{{{*/
			filters_applied['price'] = false;
			//$('filter_price').hide();
			//$("#slider-range").slider("values", 0, $("#slider-range").slider("option", 'min'));
			//$("#slider-range").slider("values", 1, $("#slider-range").slider("option", 'max'));
		break;/*}}}*/

		case "co2":/*{{{*/
			filters_applied['co2'] = false;
			//$('filter_co2').hide();
			//$("#slider-range-green").slider("values", 0, $("#slider-range-green").slider("option", 'min'));
			//$("#slider-range-green").slider("values", 1, $("#slider-range-green").slider("option", 'max'));
		break;/*}}}*/
	}
	paging(1);
}/*}}}*/

function restrictCars(cars)
{
	var carcount = 0;
	var carshtml = "";
	var minihtml = "";
	var economyhtml = "";
	var compacthtml = "";
	var intermediatehtml = "";
	var standardhtml = "";
	var fullsizehtml = "";
	var premiumhtml = "";
	var luxuryhtml = "";
	var minicarcount = 0;
	var economycarcount = 0;
	var compactcarcount = 0;
	var intermediatecarcount = 0;
	var standardcarcount = 0;
	var fullsizecarcount = 0;
	var premiumcarcount = 0;
	var luxurycarcount = 0;
	var estatecarcount = 0;
	var coupecarcount = 0;
	var peoplecarriercarcount = 0;
	var suvcarcount = 0;
	var estatehtml = "";
	var coupehtml = "";
	var peoplecarrierhtml = "";
	var suvhtml = ""; 
  var sportscarcount = 0;
  var sportshtml = "";
  var convertiblecarcount = 0;
  var convertiblehtml = "";  
  var peoplecarrier8carcount = 0;
  var peoplecarrier8html = "";   
	var filter_results = new Object();
	var filter_results2 = new Object();

   	$.each(cars, function(m,car)
	{
		switch(car.sipp.substring(0,1))
		{
			case "M":/*{{{*/
			case "N":
			  if(car.sipp.substring(1,2) != "V")
        {
				  if("M" in filter_results)
				  { 
  				}
  				else
  				{
  					filter_results["M"] = new Object();
  				}
  
  				if(car.supplier_name in filter_results.M)
  				{
  				}
  				else
  				{
  
  					filter_results["M"][car.supplier_name] = 1;
  					minihtml += parseResultsTemplate(car);
  					minicarcount++;
  				}
  			}
  			
			break;/*}}}*/

			case "E":/*{{{*/
			case "H":
				if("E" in filter_results)
				{
				}
				else
				{
					filter_results["E"] = new Object();
				}

				if(car.supplier_name in filter_results.E)
				{
				}
				else
				{
					filter_results["E"][car.supplier_name] = 1;
					economyhtml += parseResultsTemplate(car);
					economycarcount++;
				}
			break;/*}}}*/
			
			case "C":/*{{{*/
			case "D":

				if("C" in filter_results)
				{
				}
				else
				{
					filter_results["C"] = new Object();
				}

				if(car.supplier_name in filter_results.C)
				{
				}
				else
				{
					filter_results["C"][car.supplier_name] = 1;
					compacthtml += parseResultsTemplate(car);
					compactcarcount++;
				}

			break;/*}}}*/

			case "I":/*{{{*/
			case "J":

				if("I" in filter_results)
				{
				}
				else
				{
					filter_results["I"] = new Object();
				}

				if(car.supplier_name in filter_results.I)
				{
				}
				else
				{
					filter_results["I"][car.supplier_name] = 1;
					intermediatehtml += parseResultsTemplate(car);
					intermediatecarcount++;
				}

			break;/*}}}*/

			case "S":/*{{{*/
			case "R":

				if("S" in filter_results)
				{
				}
				else
				{
					filter_results["S"] = new Object();
				}

				if(car.supplier_name in filter_results.S)
				{
				}
				else
				{
					filter_results["S"][car.supplier_name] = 1;
					standardhtml += parseResultsTemplate(car);
					standardcarcount++;
				}

			break;/*}}}*/

			case "F":/*{{{*/
			case "G":

				if("F" in filter_results)
				{
				}
				else
				{
					filter_results["F"] = new Object();
				}

				if(car.supplier_name in filter_results.F)
				{
				}
				else
				{
					filter_results["F"][car.supplier_name] = 1;
					fullsizehtml += parseResultsTemplate(car);
					fullsizecarcount++;
				}

			break;/*}}}*/

			case "L":/*{{{*/
			case "W":

				if("L" in filter_results)
				{
				}
				else
				{
					filter_results["L"] = new Object();
				}

				if(car.supplier_name in filter_results.L)
				{
				}
				else
				{
					filter_results["L"][car.supplier_name] = 1;
					luxuryhtml += parseResultsTemplate(car);
					luxurycarcount++;
				}

			break;/*}}}*/

			case "P":/*{{{*/
			case "U":

				if("P" in filter_results)
				{
				}
				else
				{
					filter_results["P"] = new Object();
				}

				if(car.supplier_name in filter_results.P)
				{
				}
				else
				{
					filter_results["P"][car.supplier_name] = 1;
					premiumhtml += parseResultsTemplate(car);
					premiumcarcount++;
				}

			break;/*}}}*/
				
		}		
			
		switch(car.sipp.substring(1,2))
		{
			case "W":/*{{{*/
				if("W" in filter_results2)
				{
				}
				else
				{
					filter_results2["W"] = new Object();
				}

				if(car.supplier_name in filter_results2.W)
				{
				}
				else
				{
					filter_results2["W"][car.supplier_name] = 1;
					estatehtml += parseResultsTemplate(car);
					estatecarcount++;
				}

			break;/*}}}*/

			case "F":/*{{{*/
				if("F" in filter_results2)
				{
				}
				else
				{
					filter_results2["F"] = new Object();
				}

				if(car.supplier_name in filter_results2.F)
				{
				}
				else
				{
					filter_results2["F"][car.supplier_name] = 1;
					suvhtml += parseResultsTemplate(car);
					suvcarcount++;
				}
			break;/*}}}*/

			case "V":/*{{{*/
		  if(car.supplier_name=="sixt.co.uk_holidaycars")
		  {
		  	//alert(car.sipp+" "+car.price);
		  }
        switch(car.sipp.substring(0,1))
        {
          case "S":
          case "R":
          case "F":
          case "G":
            if("SV" in filter_results2)
    				{
    				}
    				else
    				{ 
    				  filter_results2["SV"] = new Object();
    				}
            if(car.supplier_name in filter_results2.SV)
    				{
    				}
    				else
    				{
    					filter_results2["SV"][car.supplier_name] = 1;
    					peoplecarrier8html += parseResultsTemplate(car);
    					peoplecarrier8carcount++;
    				}
          break;
          
          
          
          default:
            if("V" in filter_results2)
    				{
    				}
    				else
    				{
    					filter_results2["V"] = new Object();
    				}
    
    				if(car.supplier_name in filter_results2.V)
    				{
    				}
    				else
    				{
    					filter_results2["V"][car.supplier_name] = 1;
    					peoplecarrierhtml += parseResultsTemplate(car);
    					peoplecarriercarcount++;
    				}    
        }
				

			break;/*}}}*/

			case "E":/*{{{*/

				if("E" in filter_results2)
				{
				}
				else
				{
					filter_results2["E"] = new Object();
				}

				if(car.supplier_name in filter_results2.E)
				{
				}
				else
				{
					filter_results2["E"][car.supplier_name] = 1;
					coupehtml += parseResultsTemplate(car);
					coupecarcount++;
				}

			break;/*}}}*/
      
      
      
      case "S":/*{{{*/

				if("S" in filter_results2)
				{
				}
				else
				{
					filter_results2["S"] = new Object();
				}

				if(car.supplier_name in filter_results2.S)
				{
				}
				else
				{
					filter_results2["S"][car.supplier_name] = 1;
					sportshtml += parseResultsTemplate(car);
					sportscarcount++;
				}

			break;/*}}}*/
      
      
      
      
      case "T":/*{{{*/

				if("T" in filter_results2)
				{
				}
				else
				{
					filter_results2["T"] = new Object();
				}

				if(car.supplier_name in filter_results2.T)
				{
				}
				else
				{
					filter_results2["T"][car.supplier_name] = 1;
					convertiblehtml += parseResultsTemplate(car);
					convertiblecarcount++;
				}

			break;/*}}}*/


		}
   	});
	if(minicarcount)
	{
		$("#miniCarRow").show();
		$("#miniResults").html(minihtml);
	}
	else
	{
		$("#miniCarRow").hide();
	}
	if(economycarcount)
	{
		$("#economyCarRow").show();
		$("#economyResults").html(economyhtml);
	}
	else
	{
		$("#economyCarRow").hide();
	}
	if(compactcarcount)
	{
		$("#compactCarRow").show();
		$("#compactResults").html(compacthtml);
	}
	else
	{
		$("#compactCarRow").hide();
	}
	if(intermediatecarcount)
	{
		$("#intermediateCarRow").show();
		$("#intermediateResults").html(intermediatehtml);
	}
	else
	{
		$("#intermediateCarRow").hide();
	}
	if(standardcarcount)
	{
		$("#standardCarRow").show();
		$("#standardResults").html(standardhtml);
	}
	else
	{
		$("#standardCarRow").hide();
	}
	if(fullsizecarcount)
	{
		$("#fullsizeCarRow").show();
		$("#fullsizeResults").html(fullsizehtml);
	}
	else
	{
		$("#fullsizeCarRow").hide();
	}
	if(premiumcarcount)
	{
		$("#premiumCarRow").show();
		$("#premiumResults").html(premiumhtml);
	}
	else
	{
		$("#premiumCarRow").hide();
	}
	if(luxurycarcount)
	{
		$("#luxuryCarRow").show();
		$("#luxuryResults").html(luxuryhtml);
	}
	else
	{
		$("#luxuryCarRow").hide();
	}
	if(coupecarcount)
	{
		$("#coupeCarRow").show();
		$("#coupeResults").html(coupehtml);
	}
	else
	{
		$("#coupeCarRow").hide();
	}
	if(suvcarcount)
	{
		$("#suvCarRow").show();
		$("#suvResults").html(suvhtml);
	}
	else
	{
		$("#suvCarRow").hide();
	}
	if(estatecarcount)
	{
		$("#estateCarRow").show();
		$("#estateResults").html(estatehtml);
	}
	else
	{
		$("#estateCarRow").hide();
	}
	if(peoplecarriercarcount)
	{
		$("#peoplecarrierCarRow").show();
		$("#peoplecarrierResults").html(peoplecarrierhtml);
	}
	else
	{
		$("#peoplecarrierCarRow").hide();
	}
  if(peoplecarrier8carcount)
	{
		$("#peoplecarrier8CarRow").show();
		$("#peoplecarrier8Results").html(peoplecarrier8html);
	}
	else
	{
		$("#peoplecarrier8CarRow").hide();
	}
  if(sportscarcount)
	{
		$("#sportsCarRow").show();
		$("#sportsResults").html(sportshtml);
	}
	else
	{
		$("#sportsCarRow").hide();
	}
  if(convertiblecarcount)
	{
		$("#convertibleCarRow").show();
		$("#convertibleResults").html(convertiblehtml);
	}
	else
	{
		$("#convertibleCarRow").hide();
	}
	
	if(cars_json.feed_completion == 100/* && !done_code*/)
	{
		done_code = true;
		$('.infiniteCarousel').infiniteCarousel();
	}
 $('a.newWindow').click(function(){
     window.open(this.href,'','toolbar=yes,scrollbars=yes,status=yes,menubar=yes,width=800,height=550,resizable=1');
    return false;
  });
}




$.fn.infiniteCarousel = function () {/*{{{*/

    function repeat(str, num) {
		if(isNaN(num)) num = 1;
        return new Array( num + 1 ).join( str );
    }

    return this.each(function () {
        var $wrapper = $('> div', this).css('overflow', 'hidden'),
            $slider = $wrapper.find('> ul'),
            $items = $slider.find('> li'),
            $single = $items.filter(':first'),

            singleWidth = $single.outerWidth(),
            visible = Math.ceil($wrapper.innerWidth() / singleWidth), // note: doesn't include padding or border
            currentPage = 1,
            pages = Math.ceil($items.length / visible);


        // 1. Pad so that 'visible' number will always be seen, otherwise create empty items
        if (($items.length % visible) != 0) {
            $slider.append(repeat('<li class="empty" />', visible - ($items.length % visible)));
            $items = $slider.find('> li');
        }

        // 2. Top and tail the list with 'visible' number of items, top has the last section, and tail has the first
        $items.filter(':first').before($items.slice(- visible).clone().addClass('cloned'));
        $items.filter(':last').after($items.slice(0, visible).clone().addClass('cloned'));
        $items = $slider.find('> li'); // reselect

        // 3. Set the left position to the first 'real' item
        $wrapper.scrollLeft(singleWidth * visible);

        // 4. paging function
        function gotoPage(page) {
            var dir = page < currentPage ? -1 : 1,
                n = Math.abs(currentPage - page),
                left = singleWidth * dir * visible * n;

            $wrapper.filter(':not(:animated)').animate({
                scrollLeft : '+=' + left
            }, 500, function () {
                if (page == 0) {
                    $wrapper.scrollLeft(singleWidth * visible * pages);
                    page = pages;
                } else if (page > pages) {
                    $wrapper.scrollLeft(singleWidth * visible);
                    // reset back to start position
                    page = 1;
                }

                currentPage = page;
            });

            return false;
        }

        $wrapper.after('<a class="arrow back">&lt;</a><a class="arrow forward">&gt;</a>');

        // 5. Bind to the forward and back buttons
        $('a.back', this).click(function () {
            return gotoPage(currentPage - 1);
        });

        $('a.forward', this).click(function () {
            return gotoPage(currentPage + 1);
        });

        // create a public interface to move to a specific page
        $(this).bind('goto', function (event, page) {
            gotoPage(page);
        });
    });
};/*}}}*/


function clearBox(el)/*{{{*/
{
	if (el.value == "Type an airport, city or town.")
	  $(el).val('');
}/*}}}*/

function setLocation(str, postForm)/*{{{*/
{
  var loc = new Array();
  loc = str.split('#');

  $("#pickup").val(loc[2]);
  $("#dropoff").val(loc[2]);
  $("#ploc_id").val(loc[1]);
  $("#dloc_id").val(loc[1]);
  $("#country_id").val(loc[0]);

  $("#dialog1").dialog('close');
if(postForm)
{
  $('#frmSearch').submit();
}
}/*}}}*/

function checkEnteredLocation()/*{{{*/
{
  if($('#pDate').val() != "Click to choose")
  {
       var pData = $('#pDate').val().split("/");
       var pTData = $('#pTime').val().split(":");

    sel_time = new Date();
       sel_time.setYear(pData[2])
       sel_time.setMonth(pData[1]-1);
       sel_time.setDate(pData[0]);
       sel_time.setHours(pTData[0]*1-2);
    sel_time.setMinutes(pTData[1]);

    now = new Date();

       if (sel_time < now)
       {
         alert("Pick up time must be at least 2 hours in advance.");
         return false;
       }
  }



  if (parseInt($("#age").val()) != $("#age").val() )
  {
    alert("Please enter a valid age.")
	return false;
  }
  
  if ($("#pickup").val() == "" && $("#ploc_id").val() == 0 )
  {
    alert("Please enter a pick up location.")
	  return false;
  }
  
  if ($("#pickup").val() != "" && $("#ploc_id").val() == 0 )
  {
    $("#dialog").html("<div id='dialog1' title='Select Pick Up Location'><span></span></div>");

	$("#dialog1").dialog({
		bgiframe: true, resizable: false,
		height: 340,
		width: 440,
		modal: true,
		overlay:
		{
		  backgroundColor: '#000',
		  opacity: 0.5
		},
		buttons:
		{
		  Cancel: function()
		  {
		  	$(this).dialog('close');
		  }
		}
	});

	$.get(
		"/carhire/post/get_locations.php",  
		"&type=overlay&q=" + $("#pickup").val()+"&id=*",

		function(data)
		{
		  $("#dialog1 span").html("<div>"+data+"</div>");
		  $('#dialog1').dialog('show');
		}
	);

	return false;
  }

  if($('#pDate').val() == "Click to choose")
  {
    alert("Please enter a pick up date.");
    $("#pDate").datepicker('show');
	return false;
  }

  if($('#dDate').val() == "Click to choose")
  {
    alert("Please enter a drop off date.");
    $("#dDate").datepicker('show');
	return false;
  }

  if($('#pDate').val() == $('#dDate').val() && $("#pTime").val() == $("#dTime").val())
  {
    alert("Drop off date and time are the same as pick up date and time.");
    return false;
  }
  
  return true;
}/*}}}*/





