var carsPerPage=3;
var currentPage=0;
var numberPages=0;
var resultarray = new Array();
var ajaxarray = new Array();
var sortedby='low';
var resultstring='';

function sortByPriceAsc(a, b) {
    var x = a.price;
    var y = b.price;
    return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}
function sortByPriceDesc(a, b) {
    var x = a.price;
    var y = b.price;
    return ((x < y) ? 1 : ((x > y) ? -1 : 0));
}
function sortByDistance(a, b) {
    var x = a.distance;
    var y = b.distance;
    return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}

function add_result(output){
alert(output);
	resultstring=resultstring+output;
}

function end_result(){
	send_results(resultstring);
	resultstring='';
}

function callback(){
	alert('hello');
	return('cb=yes');
}


function send_results(output){
	var op = output;
	currentPage=0;
	resultarray = new Array();
	$('#results_body').text(' ');
	$('#results_head').text(' ');
	//alert("Output IDs for search results = " + op);
	$('#searching').show();
	$('#hideonsearch').hide();
	
	var oparray = op.split(",");
	var x;
	for(x in oparray){
		if(oparray[x]!=''){
			var elements=oparray[x].split("|");
			resultarray[x]={id:parseInt(elements[0]),price:parseInt(elements[1]),distance:parseInt(elements[2])}
		}
	}
	resultarray.sort(sortByPriceAsc);
	display_results();
}

function display_results(){
	var numberCars=resultarray.length;
	numberPages=Math.ceil(numberCars/carsPerPage);
	var i=1;
	$.post('/includes/carsearch/displaycar_head.php',
		{pages:numberPages,cur:currentPage},
		function(data){
			$('#results_head').html(data);
			$('#results_foot').html(data);
			$('#results_body').show();
			$('#results_head').show();
			$('#results_foot').show();
			$('#sortby').val(sortedby);
		}
	)
	display_cars();
}

function display_cars(){
	var offset=currentPage*carsPerPage;
	//clear any outstanding ajax calls
	for (x in ajaxarray){
		ajaxarray[x].abort();
	}
	for(i=1;i<=carsPerPage;i++){
		//display each car
		try{
			display_car(resultarray[offset+i-1]['id'],resultarray[offset+i-1]['distance']);
		} catch(err){
			continue;
		}
	}
	
}



function display_car(id,distance){
	//set up container
	var container='<div class=\'car_container\' id=\'container_' + id + '\'><img src=\'images/loading_car_data.gif\'></div>';
	$('#results_body').append(container);
	//display the car
	ajaxarray[id]=$.post('/includes/carsearch/displaycar.php',
		{carid:id,dist:distance},
		function(data){
			ajaxarray.splice(id,1);
			$('#container_' + id).html(data);
			$('#searching').hide();
			$('#searchresults').show();
		}
	)
}

function sortcars(sort){
	if(sort=='high'){
		resultarray.sort(sortByPriceDesc);
		sortedby='high';
	}
	if(sort=='low'){
		resultarray.sort(sortByPriceAsc);
		sortedby='low';
	}
	if(sort=='dist'){
		resultarray.sort(sortByDistance);
		sortedby='dist';
	}
	$('#results_body').text(' ');
	currentPage=0;
	display_results();

}

function gotocarpage(page){
	currentPage=page-1;
	if(currentPage<0) currentPage=0;
	if(currentPage>=numberPages) currentPage=numberPages-1;
	if(currentPage>=0){
		$('#results_body').text(' ');
		$('#results_head').text(' ');
		display_results();
	}
	
}

function openrhcol(){
	$('#rhcol_spacer').show(400);
}

function closerhcol(){
	$('#rhcol_spacer').hide(400);
}

function displaytab(tab,id){
	$('#vehicle_'+id).hide();
	$('#images_'+id).hide();
	$('#contact_'+id).hide();
	$('#'+tab+'_'+id).show();
	if(tab=='contact') top.frames['imap'+id].initialize();
}

function getdealers(id,distance){
	$('#results_body').hide();
	$('#results_head').hide();
	$('#results_foot').hide();
	$('#searching').show();
	$('#hideonsearch').hide();
	$.post('/includes/carsearch/getdealercars.php',
		{dealerid:id,thedist:distance},
		function(data){
			if(data=='nocarsfound'){
				alert('Sorry no cars have been found');
			} else {
				send_results(data);
			}
		}
	)
}
