
// Class Prototype used for generating results on prelog.
// Author: Melchor B. Pineda Jr.
var params="";
var page=1;
var Stocks = {
	data: null,
	//ON SALE
	aid:0,
	pagestate: "",
	//Used for getting on sale prelog stocks
    sale: function() {
		//action=sale
		Stocks.reset();
		Stocks.populate("sale");	
		Stocks.pagestate="sale";
		$("#pagenumber").val(1);
    },
	
	//NEW ARRIVALS
	//Used for getting newly arrived stocks
    arrivals: function() {
		//action=arrivals
		Stocks.reset();
		Stocks.populate("arrivals");
		Stocks.pagestate="arrivals";
		$("#pagenumber").val(1);		
    },	

	//SINGAPORE STOCKS
	//Used for getting singapore prelog stocks
	singapore: function() {
		//action=singapore
		Stocks.reset();
		Stocks.populate("singapore");		
		Stocks.pagestate="singapore";
		$("#pagenumber").val(1);
    },

	//THAILAND STOCKS	
	//Used for getting thailand prelog stocks
	thailand: function() {
		//action=thailand
		Stocks.reset();
		Stocks.populate("thailand");
		Stocks.pagestate="thailand";
		$("#pagenumber").val(1);		
    },
	
	//THAILAND STOCKS	
	//Used for getting thailand prelog stocks
	uk: function() {
		//action=thailand
		Stocks.reset();
		Stocks.populate("uk");
		Stocks.pagestate="uk";
		$("#pagenumber").val(1);		
    },

	//ORIGINAL LEFT HAND DRIVE STOCKS	
	// Used for getting LHD prelog stocks
	lhd:function(){
		//action=lhd
		Stocks.reset();
		Stocks.populate("lhd");	
		Stocks.pagestate="lhd";
		$("#pagenumber").val(1);		
	},
	
	//ORIGINAL LEFT HAND DRIVE STOCKS	
	// Used for getting LHD prelog stocks
	hybrid:function(){
		//action=lhd
		Stocks.reset();
		Stocks.populate("hybrid");	
		Stocks.pagestate="hybrid";
		$("#pagenumber").val(1);		
	},	
	
	//SEARCH BY MAKE
	//Search By Make on left panel
	searchbymake:function(selectedMake){
		//action=searchbymake
		Stocks.reset();
		$("#searchMake").val(selectedMake);
		Stocks.populate("searchbymake",selectedMake);
		Stocks.pagestate="searchbymake";
		$("#pagenumber").val(1);		
	},
	
	//SEARCH BY TYPE
	//Search By Type on left panel
	searchbytype:function(selectedtype){
		//action=searchbytype
		Stocks.reset();
		$("#searchType").val(selectedtype);
		Stocks.populate("searchbytype",selectedtype);	
		Stocks.pagestate="searchbytype";
		$("#pagenumber").val(1);
	
	},
	
	//DEFAULT SEARCH
	//Default searching for prelog
	vehiclesearch: function(parameter){
		//action=searchvehicle
		Stocks.populate("searchvehicle",parameter);	
		Stocks.pagestate="vehiclesearch";
		$("#pagenumber").val(1);		
	},
	
	//Populate Results
	populate:function(searchtype,data){						
		//
		//get all parameters
		//var params="";
		
		$('#buymoreannouncements').hide();
		
		if (searchtype =="searchvehicle"){
			params = data.substr(1);
		}else{
			params = "action=" + searchtype 
		}
		
		if(searchtype=="searchbymake"){
			params = "action=" + searchtype + "&make=" + data ;
		}

		if(searchtype=="searchbytype"){
			params = "action=" + searchtype + "&vcategory=" + data ;
		}
		
		
		params= params + "&page=" + $("#pagenumber").val();
		
		if (Stocks.data != params) {
			if($("#minilightbox").length<1){
				var content=$('#resultlistwrap').html();
				showminiLightBox();
			}
		
			//destory any ajax calls before populate
			try{ 
				Stocks.aid.abort();
			}catch(e){}
			
			Stocks.aid=$.ajax({
				type: "GET",
				url: "action_getvehicleprelogged.asp",
				data: params,
				cache: false,
				success: function(result) {
					if(result==""){
						errorPrelog("noresult");
					}else{
						document.getElementById("resultlist").innerHTML="";
						$("#noresultcontainer").css("display","none");
						hideminiLightBox();
						Stocks.data = params;						
						$(".listth").css("display","block");
						$("#promoads").css("display","none");
						$("#holidayannouncements").css("display","none");
						$("#newyearannouncements").css("display","none");
						$("#resultlist").css("display","block");
						document.getElementById("resultlist").innerHTML+=result;
						$("#resultlist").scrollTop(0);
						fn_paging($("#pagenumber").val());
					}
			
				}
			});
			return false;
		}
		

		
	},
	//gets list of makes and models on statup page prelog	
	getmake: function(){
		
		$("#prelogmake").html("");

		$.ajax({
			type: "GET",
			url: "action_getvehicleprelogged.asp",
			data: "action=GETMAKE&cboMinYear=" + $("#cboMinYear").val()+"&cboMaxYear=" + $("#cboMaxYear").val(),
			// beforeSend: function(){
				// $("#prelogmake").html("");
				// $("#prelogmake").append("<option value=''>Select Make</option>");
			// },
			success: function(result) {				
				if (result==""){
					$("#prelogmake").attr("disabled", "disabled");
					$("#prelogmodel").attr("disabled", "disabled");
				}else{
					$("#prelogmake").removeAttr("disabled");
					$("#prelogmodel").removeAttr("disabled");
					//$("#prelogmodel").removeAttr("disabled", "disabled");
				}
				
				$("#prelogmodel").attr("disabled", "disabled");
				$("#prelogmake").append(result);
				Stocks.getmodel();
				
				$('#prelogmake').change(function(){
					Stocks.getmodel();
					$("#prelogmodel").removeAttr("disabled", "disabled");
				});
				
			}
		});
		
	},

	getmodel: function() {
		$.ajax({
			type: "GET",
			url: "action_getvehicleprelogged.asp",
			data: "action=GETMODEL&prelogmake=" + $("#prelogmake").val()+"&cboMinYear=" + $("#cboMinYear").val()+"&cboMaxYear=" + $("#cboMaxYear").val(),
			// beforeSend: function(){
				// $("#prelogmodel").html("");
				// $("#prelogmodel").append("<option value=''>Select Model</option>");
			// },
			success: function(result) {
				$("#prelogmodel").html(result);
				//$("#goclick").attr("href", "javascript:Stocks.vehiclesearch('');");				
			}
		});
	},
	
	login: function(param) {
		location.href = "application.asp?"+param;
	},
	
	reset: function() {
		$("#myresetter").click();
		$("#prelogmodel").attr("disabled", "disabled");
		
	}
};


$(document).ready(function() {

	$.ajax({
		url: 'xml/prelog.js',
		dataType: 'json',
		beforeSend: function(){
			var loadingmake = $('<option>Loading Make....</option>');
			$('select[name="make"]').append(loadingmake);
		},
		success: function(data){		

			var makehtml="";
			
			//TotalCount
			$("#TotalCount").html(formatComma(data.TotalCount));

			//MakeCount	
			$("#BMWCount").html("(" + data.MakeCount[0].BMW  + ")");
			$("#MBCount").html("(" + data.MakeCount[1].MERCEDESBENZ + ")");
			$("#OthersCount").html("(" + data.MakeCount[3].OTHERS + ")");
			$("#SubaruCount").html("(" + data.MakeCount[4].SUBARU + ")");
			$("#HondaCount").html("(" + data.MakeCount[5].HONDA + ")");
			$("#MazdaCount").html("(" + data.MakeCount[6].MAZDA + ")");
			$("#VolkswagenCount").html("(" + data.MakeCount[7].VOLKSWAGEN + ")");
			$("#ToyotaCount").html("(" + data.MakeCount[8].TOYOTA + ")");
			$("#MitsubishiCount").html("(" + data.MakeCount[9].MITSUBISHI + ")");
			$("#IsuzuCount").html("(" + data.MakeCount[10].ISUZU + ")");		
			$("#SuzukiCount").html("(" + data.MakeCount[11].SUZUKI + ")");					
			$("#NissanCount").html("(" + data.MakeCount[2].NISSAN + ")");
			
			//TYPES
			var VanCount=data.TypeCount[0].VanCount;
			var WagonCount=data.TypeCount[1].WagonCount;
			var SportsCount=data.TypeCount[2].SportsCount;
			var PMCount=data.TypeCount[3].PMCount;
			var HatchbackCount=data.TypeCount[4].HatchbackCount;
			var TruckCount=data.TypeCount[5].TruckCount;
			var SedanCount=data.TypeCount[6].SedanCount;
			var SuvCount=data.TypeCount[7].SuvCount;
		
			$("#VanCount").html("(" + VanCount + ")");
			$("#WagonCount").html("(" + WagonCount+ ")");
			$("#SportsCount").html("(" + SportsCount+ ")");
			$("#PMCount").html("(" + PMCount+ ")");			
			$("#HatchbackCount").html("(" + HatchbackCount+ ")");
			$("#TruckCount").html("(" + TruckCount+ ")");
			$("#SedanCount").html("(" + SedanCount+ ")");
			$("#SuvCount").html("(" + SuvCount+ ")");	
			
			makehtml +="<option value=''>Select Make</option>";
			
			var dropdown = data.Dropdown;
			dropdown.sort();
			
			for(x=0;x<dropdown.length;x++){
				makehtml += '<option value="'+ data.Dropdown[x] +'">'+ data.Dropdown[x] +'</option>'
			}
				
			$('select[name="make"]').html(makehtml);
		}
		
	});
	
	
	
	$('#prelogmake').change(function(){
		Stocks.getmodel();
		$("#prelogmodel").removeAttr("disabled", "disabled");
	});


	$('#readbulletin').click(function(){
		showLightBox();
		$.ajax({
			type: "GET",
			url: 'action_getvehicleprelogged.asp',
			data: 'action=readbulliten',
			success: function(template){
				$('body').append(template);
				$('#bulletincontainer').fadeIn('slow');
				$('a.closebox').click(function(){
					hideLightBox();
					$('#bulletincontainer').fadeOut('slow', function(){
						$('#bulletincontainer').remove();
					});
					return false;
				});
			}
		});
		return false;
	});
	
	$('a.searchclick').click(function(){
		$("#pagenumber").val(1);
		var urlref = $(this).attr('href');
		urlref = urlref.replace(/^.*#/, '');
		History.load(urlref);
		return false;
	});
	
	$('a.searchmake').click(function(){
		$("#pagenumber").val(1);
		var urlref = $(this).attr('href');
		var makename = $(this).attr('make');
		urlref = urlref.replace(/^.*#/, '');
		History.load(urlref + "&" + makename);

		return false;
	});
	
	$('a.searchtype').click(function(){
		$("#pagenumber").val(1);
		var urlref = $(this).attr('href');
		var typenum = $(this).attr('stype');
		urlref = urlref.replace(/^.*#/, '');
		History.load(urlref + "&" + typenum);
		
		return false;
	});
	
	$("#goclick").click(function(){
		Stocks.pagestate="vehiclesearch";
		if ($("#prelogmake").val()=="" && $("#cboMaxYear").val()=="" && $("#cboMinYear").val()=="" && $("#cboMaxYear").val()=="" && $("#prelogmodel").val()=="" ){
			errorPrelog("noselected");
		} else {
			$("#pagenumber").val(1);
			var urlref = $(this).attr('href');
			var paramsearch = "action=searchvehicle&" + $("#searchform").serialize();
			urlref = urlref.replace(/^.*#/, '');
			History.load(urlref + "&" + paramsearch);
		}
		return false;
	});
	
	$('#searchform').keypress(function(event) {
		if (event.keyCode == '13') {
			$("#pagenumber").val(1);
			$("#goclick").click();
		}
	});
	
	History.init(loadSearch);
				
});

 function loadSearch(hash) {
	if(hash) {
		var splits = hash.split('&');
		var searchhistory = splits[0];
		delete splits[0];
		var params = splits.join('&');
		switch (searchhistory)
		{
		case "vehiclesearch":
		  Stocks.vehiclesearch(params);
		  break;
		case "sale":
		  Stocks.sale();
		  break;
		case "arrivals":
		  Stocks.arrivals();
		  break;
		case "singapore":
		  Stocks.singapore();
		  break;
		case "thailand":
		  Stocks.thailand();
		  break;
		case "lhd":
		  Stocks.lhd();
		  break;
		case "uk":
		  Stocks.uk();
		  break;
		case "hybrid":
		  Stocks.hybrid();
		  break;		  
		case "makesearch":
		  Stocks.searchbymake(params.substr(1));
		  break;
		case "typesearch":
		  Stocks.searchbytype(params.substr(1));
		  break;
		default:
		  //Do Nothing	
		}
	}
}

function hideminiLightBox() {

	$('#minilightbox').remove();
	if (typeof document.body.style.maxHeight === "undefined") { //if IE 6
			$('select').removeClass('hideselect');
	}	
	
}

function showminiLightBox(){

	var lightboxContainer = $('<div id="minilightbox"></div>');
	if (typeof document.body.style.maxHeight === "undefined") { //if IE 6
			$('select').addClass('hideselect');
	}		
	
	var bodyheight = $('#resultlistwrap').height();
	lightboxContainer.css('height', bodyheight);
	lightboxContainer.css('opacity', 0.7);

	$('#resultlistwrap').append(lightboxContainer);
			
}

function checkImage(img){
	img.src = "images/nocarimage.gif";
}

function errorPrelog(errortype){
	$.ajax({
		type: "GET",
		url: 'action_getvehicleprelogged.asp',
		data: 'action=searcherror&errortype=' + errortype,
		success: function(template){
			$('body').append(template);
			$('#errorlogincontainer').fadeIn('slow');
			$('a.boxclose').click(function(){
				$('#errorlogincontainer').fadeOut('slow', function(){
					$('#errorlogincontainer').remove();
				});
				return false;
			});
			hideminiLightBox();
		}
	});
}

function fn_paging(AbsolutePage){
	AbsolutePage= parseInt(AbsolutePage)
	var varStart, varEnd, varStr, obj;
	var PrevPage, NextPage;
	var searchmaxcount = $('#maxcount_flg').val();
	var pageflg = $('#page_flg').val();
	var PageSize = $('#PageSize').val();
	var TotalPages = Math.floor(searchmaxcount/PageSize);
	var PageRemainder = searchmaxcount%PageSize;
	var RecordCount = searchmaxcount;
	var DisplayPage = 5; //Display Number of pages in the paging
	PrevPage = AbsolutePage - 1;
	NextPage = AbsolutePage + 1;
	if (PageRemainder>0) {
		TotalPages = TotalPages + 1;
	}
	$('.StartPage').html(((AbsolutePage-1) * PageSize) + 1);
	$('.EndPage').html((((AbsolutePage) * PageSize)<RecordCount) ? ((AbsolutePage) * PageSize) : RecordCount);

	if(DisplayPage>TotalPages){
		varStart = 1;
		varEnd   = TotalPages;
	}
	else if(DisplayPage>AbsolutePage){
		varStart = 1;
		varEnd   = DisplayPage;
	}
	else if( AbsolutePage > (TotalPages-DisplayPage)){
		varStart = TotalPages - DisplayPage + 1;
		varEnd   = TotalPages;
	}
	else{
		varStart = AbsolutePage - parseInt(DisplayPage/2);
		varEnd   = AbsolutePage + parseInt(DisplayPage/2);
	}
	
	varStr="";
	
	//varStr='Displaying page '+ AbsolutePage + '<span> of ' + TotalPages + '<br>'
	if(PrevPage>0){
		varStr+='<a href="#" class="gotofirstpage"><img src="../images/pagefirst.gif" alt="First" /></a>'
		varStr+='<a href="#" class="gotopreviouspage"><img src="../images/pagerew.gif" alt="Previous" /></a>'
	}
	else{
		varStr+='<span class="gotofirstpage_disable"><img src="../images/pagefirst.gif" alt="First" /></span><span class="gotopreviouspage_disable"><img src="../images/pagerew.gif" alt="Previous" /></span>'
	}
	//If page is more than 7 needs to investigate this one
	if((PrevPage >= DisplayPage) || (varStart>1)){
		var PrevDisplayPage;
		if ((AbsolutePage-DisplayPage)<1){
			PrevDisplayPage= 1;
		}
		else{
			PrevDisplayPage= (AbsolutePage-DisplayPage);
		}
		varStr+='<a href="#" class="prevgrouppage">...</a>'
	}
	else{
		varStr+=''
	}

	for(x=varStart; x<=varEnd; x++){
		if(x!=AbsolutePage){
			varStr += '<a href="#pagesearch" class="pageNumber">' + x + '</a>';
		}
		else{
			varStr += '<span class="pageNumberSelected">' + x + '</span>';
		}
	}
	//If page is more than 7 needs to investigate this one
	
	if((NextPage <= TotalPages-DisplayPage) || (varEnd<TotalPages)){
		var NextDisplayPage;
		if ((AbsolutePage+DisplayPage)>TotalPages){
			NextDisplayPage= TotalPages;
		}
		else{
			NextDisplayPage= (AbsolutePage+DisplayPage);
		}
		varStr+='<a href="#" class="nextgrouppage">...</a> '
	}
	else{
		varStr+=''
	}
	
	if(NextPage <= TotalPages){
		varStr+='<a href="#" class="gotonextpage"><img src="../images/pagefor.gif" alt="Next" /></a>'
		varStr+='<a href="#" class="gotolastpage"><img src="../images/pagelast.gif" alt="Last" /></a>'
	}
	else{
		varStr+='<span class="gotonextpage_disable"><img src="../images/pagefor.gif" alt="Next" /></span><span class="gotolastpage_disable"><img src="../images/pagelast.gif" alt="Last" /></span> '
	}
	
	if(parseInt(RecordCount)>parseInt(PageSize)){
		$('.pagination').html(varStr);
		$('.pagination').show();
	}else{
		$('.pagination').hide();
	}

	$('.pageNumber').click(function(){
		var pagenumber = parseInt($(this).text());
		fn_paging(pagenumber);
		searchByPage(pagenumber);
		return false;
	});
	
	$('.gotonextpage').click(function(){
		fn_paging(NextPage);
		searchByPage(NextPage);
		return false;
	});
	
	$('.gotolastpage').click(function(){
		fn_paging(TotalPages);
		searchByPage(TotalPages);
		return false;
	});
	
	$('.gotofirstpage').click(function(){
		fn_paging(1);
		searchByPage(1);
		return false;
	});
	
	$('.gotopreviouspage').click(function(){
		fn_paging(PrevPage);
		searchByPage(PrevPage);
		return false;
	});
	
	$('.nextgrouppage').click(function(){
		fn_paging(NextDisplayPage);
		searchByPage(NextDisplayPage);
		return false;
	});
	
	$('.prevgrouppage').click(function(){
		fn_paging(PrevDisplayPage);
		searchByPage(PrevDisplayPage);
		return false;
	});
}

function searchByPage(page) {
	$("#pagenumber").val(page);
	
	var statelink="";
	statelink=Stocks.pagestate;
	switch(statelink)
	{
	case "sale":
	  Stocks.populate("sale");
	  break;
	case "arrivals":
		Stocks.populate("arrivals");
	  break;
	case "singapore":
		Stocks.populate("singapore");
	  break;	
	case "thailand":
		Stocks.populate("thailand");
	  break;	
	case "lhd":
		Stocks.populate("lhd");
	  break;
	case "hybrid":
		Stocks.populate("hybrid");
	  break;	  
	case "searchbymake":
	  	Stocks.populate("searchbymake",$("#searchMake").val());
	  break;	
	case "searchbytype":
	  Stocks.populate("searchbytype",$("#searchType").val());	
	  break;	  
	case "vehiclesearch":
		var urlref = "#vehiclesearch";
		var paramsearch = "&action=searchvehicle&" + $("#searchform").serialize();
		urlref = urlref.replace(/^.*#/, '');
		Stocks.populate("searchvehicle",paramsearch);	
	  break;	  	  
	case "uk":
	  Stocks.populate("uk");
	  break;
	}
}
