/*
Version: 2008-09-19 21:40
*/
var gradesArr = new Array();
var gradePricesArr = new Array();
var fleetRangePage = false;		//the grade dropdown is not shown when fullspecification.js is used in corporate section

var menuLoaded = function(response) {
	
	$("#fullSpecMenu").html(response);

	if (fleetRangePage) $('#fullSpecMenu select#grade').css("display","none");

	$("#fullSpecMenu select#grade").change(function() {
		$("select.engine").css("display","none");						// hide all engine-trans dropdowns
		memory.gradeID 	= $(this).attr("value");
		$("select#engine"+memory.gradeID).css("display","inline");		// Show engines for selected grade
		updateEngineTrans();
		getFullTable();
	});
		
	$("#fullSpecMenu select.engine").change(function() {
		updateEngineTrans();
		getFullTable();
	});
	
	if (memory.gradeID) {
		
		changeDropDownsFromMemory();
	}
	else {
		
	
		$("#fullSpecMenu select.engine").css("display","none");
		$("#fullSpecMenu select.engine:first, div.optionsGroup:first, div.options:first").css("display","inline");
		getFullTable();
		
	}

}


function updateEngineTrans() {
	var lookup = $("#fullSpecMenu select#engine"+memory.gradeID).attr("value");
	if (!(lookup === undefined))
	{
		var filters = lookup.split("_");
		memory.engineID = filters[1];
		memory.transmissionID = filters[2];
	}
}


function changeDropDownsFromMemory() {

	$("#fullSpecMenu select.engine").css("display","none");
	$('#fullSpecMenu #grade option').each(
		function() {
			if ($(this).val() == memory.gradeID) {
				this.selected = true;
			}
		}
	);
	
	$("#fullSpecMenu select#engine" + memory.gradeID + " option").each(
		function() {
			if ($(this).val() == memory.gradeID+"_"+memory.engineID+"_"+memory.transmissionID) {
				this.selected = true;
			}
		}
	);
	
	$("#fullSpecMenu select#engine"+memory.gradeID).css("display","inline");
	getFullTable();
}
	
	
function getFullTable() {

	if (!memory.gradeID) {
		memory.gradeID = $("#fullSpecMenu #grade").attr("value");
	}
	
	if (memory.gradeID) {		//ready to build
		if (!memory.engineID) {
			updateEngineTrans();
		}
		
		var gradeParams = modelParams.replace("badgeList=","badgeListTemp=") + "&badgeList=" + memory.gradeID + "&engineID=" + memory.engineID + "&transID=" + memory.transmissionID;
		$("#fullSpecData").html("");
		$("#fullSpecLoader").css("display","block");
		transform("CARDATA", "/cars/_assets/transforms/full-specification-table.xsl", "GetFullSpecificationByModelBody", gradeParams, dataLoaded);
	}
}
	
	
var dataLoaded = function(response) {
	
	$("#fullSpecLoader").css("display","none");
	$("#fullSpecData").html(response);
	
	$("div.optionsGroup").show();
	$("div.options").show();
	
	// Spec accordion
	var specTrigger = "h3";
	var cClass = "closed";

	// Alter DOM and wrap the table in a div

	$("#fullSpecData table").each(function(){
		$(this)
			.before('<'+specTrigger+'>'+$(this).find("thead th").text()+'</'+specTrigger+'>')
			.wrap("<div></div>")
			.find("thead").remove();
	});


	// Hide all div/tables except the first
	
	$(".options").find("div").each(function(i){
			if(i>0){
				$(this).css("display", "none");
				$(this).prev().addClass(cClass);
			}
	});

	// On click change the style and slide
	$("#fullSpecData "+specTrigger)
		.css({cursor:"pointer"})
		.click(function(){
			var el = $(this);
			with(el){
				el.next().slideToggle(300);
				el.hasClass(cClass)?el.removeClass(cClass):el.addClass(cClass);
			}
	});

	
	var lookup = $("#fullSpecMenu select#engine"+memory.gradeID).attr("value");
	var engineTrans = $("#fullSpecMenu select#grade option:selected").text() + " " + $("#fullSpecMenu select#engine"+memory.gradeID+" option:selected").text();
	
	$("#price span").text(gradesArr[lookup]);
	$("#gradeLabel").text(engineTrans);


}
	

function initFullSpec() {
	
	transform("CARDATA", "/cars/_assets/transforms/full-specification-menu.xsl", "GetFullSpecificationByModelBody", modelParams, menuLoaded);
}


if (!fleetRangePage) initFullSpec();

