
var capSelector = {gIsYear:null}

capSelector.cregplate = function(obj, isyear){
	with(capSelector){
		var lastYear;
		var oRegYear =obj.form.regYear
		var oRegLetter =obj.form.regLetter
		var CAPDataType = obj.form.CAPDataType
		if(gIsYear==null)gIsYear=isyear;
		if(gIsYear && gIsYear==isyear){ //user changing the year drop down
			 while(oRegLetter.options.length>1){ 
			  oRegLetter.options[1] = null ;
			 }
			for(var n=0; n < reg.length-1; n++){
				if (oRegYear.selectedIndex == 0 || reg[n][0]==oRegYear.options[oRegYear.selectedIndex].value){
					oRegLetter.options[oRegLetter.options.length] = new Option(reg[n][1],reg[n][1]);
				}
			}
			if(oRegYear.selectedIndex == 0)gIsYear=null;
		}
		if(!gIsYear && gIsYear==isyear){ //user changing the reg letters drop down
			 while(oRegYear.options.length>1){ 
			  oRegYear.options[1] = null ;
			 }
			for(var n=0; n < reg.length-1; n++){
				if (oRegLetter.selectedIndex == 0 || reg[n][1]==oRegLetter.options[oRegLetter.selectedIndex].value){
					if(reg[n][0]!=lastYear){
						lastYear=reg[n][0];
						oRegYear.options[oRegYear.options.length] = new Option(lastYear,lastYear);
					}
				}
			}
			if(oRegLetter.selectedIndex == 0)gIsYear=null;
		}
		yearChanged(oRegYear,oRegLetter,CAPDataType);
	}
}

capSelector.refreshScreen = function (){
	with(capSelector){
		var boxes = document.getElementById('capCarSelector').getElementsByTagName("SELECT");
		var c
		for(var b=0;b<boxes.length;b++){
			c=(b<2)?2:b+1;
			if(!boxes[b].disabled && boxes[b].selectedIndex==0 && (b == boxes.length-1 || boxes[c].disabled)){
				setTRclass(boxes[b],"highlight");
				switch(boxes[b].id){
					case "regYear":
					case "regLetter":
						document.getElementById('instruction').innerHTML="Please start by selecting the age of your vehicle. Enter this by selecting the <b>Letter or Number age identifier</b> from your number plate  and also the <b>Year of Registration</b>. <a href='#' onclick=\"return showQuoteHelp('carselector')\">click here for help</a>";
						break;
					case "CAPDataType":
						document.getElementById('instruction').innerHTML="Please now select the <b>Vehicle Type</b> is your vehicle a car or a van?";
						break;
					case "manufacturerId":
						document.getElementById('instruction').innerHTML="Please now select the <b>Make</b> of your vehicle.";
						break;
					case "rangeId":
						document.getElementById('instruction').innerHTML="Please now select the <b>Range</b> of your vehicle.";
						break;
					case "capTransmissionCode":
						document.getElementById('instruction').innerHTML="Please select if your vehicle has a automatic or manual <b>Gearbox</b>.";
						break;	
					case "capFuelTypeCode":
						document.getElementById('instruction').innerHTML="Please select the <b>Fuel</b> type your vehicle uses.";
						break;	
					case "modelId":
						document.getElementById('instruction').innerHTML="Please select the <b>Model</b> of your vehicle. A model is defined by its shape (body style) and the year your vehicle was first introduced, shown in brackets.";
						break;
					case "productDataId":
						document.getElementById('instruction').innerHTML="Please select the <b>derivative</b> of your vehicle. <span class='red'>If your vehicle is not listed then check you have chosen the correct model in the box above.</span>";
						break;
				}
				
			}else if(boxes[b].disabled){
				setTRclass(boxes[b],"gry");
			}else{
				setTRclass(boxes[b],"");
			}
			ieResize(boxes[b]);
		}
	}
}

capSelector.setTRclass = function (tr,clas){
	while(tr != null && tr.tagName!="TR")tr = tr.parentNode;
	tr.className=clas;
}

capSelector.ieResize = function (box){
	if(box.disabled || navigator.userAgent.indexOf("MSIE")==-1 || navigator.userAgent.indexOf("Opera")!=-1)return;
	var ws = box.offsetWidth;
	box.style.width="auto";
	var ns = box.offsetWidth;
	if (ws > ns)box.style.width=ws+"px";
}

capSelector.imgloaded = function(img){
	if(parseInt(img.offsetHeight)>10){
		document.getElementById('instruction').innerHTML="Please check that you have selected the correct car and the car looks similar to the illustrative car shown below."
	}else{
		document.getElementById('instruction').innerHTML="Please check that you have selected the correct car."
	}
}

capSelector.showLoading = function(){
	var tr = document.getElementById('capCarSelector').getElementsByTagName("TR");
	for(var b=0;b<tr.length;b++){
		if(tr[b].className=="gry"){
			tr[b].className="gry loading";
			break;
		}
	}
}

capSelector.vehicleType = function(obj){
	with(capSelector){
		if(obj.form.regYear != null && obj.form.regLetter !=null){
			yearChanged(obj.form.regYear , obj.form.regLetter, obj);
		}else{
			refreshScreen();
			formsubmit(obj.form);
		}
	}
}

capSelector.carage = function(obj){
	with(capSelector){
		resetOptionBox(document.getElementById('manufacturerId')) ; 
		resetOptionBox(document.getElementById('rangeId')) ;
		resetOptionBox(document.getElementById('capTransmissionCode')) ;		
		resetOptionBox(document.getElementById('capFuelTypeCode')) ;
		resetOptionBox(document.getElementById('modelId')) ;
		resetOptionBox(document.getElementById('productDataId')) ;
		formsubmit(obj.form);
	}
}	

capSelector.yearChanged = function (obj1,obj2,CAPDataType){
		with(capSelector){
			resetOptionBox(document.getElementById('manufacturerId')) ; 
			resetOptionBox(document.getElementById('rangeId')) ;
			resetOptionBox(document.getElementById('capTransmissionCode')) ;
			resetOptionBox(document.getElementById('capFuelTypeCode')) ;
			resetOptionBox(document.getElementById('modelId')) ;
			resetOptionBox(document.getElementById('productDataId')) ;
			if(CAPDataType)CAPDataType.disabled = (obj1.selectedIndex==0 || obj2.selectedIndex==0);
			if(obj1.selectedIndex>0 && obj2.selectedIndex>0 && (typeof(CAPDataType)=="undefined" || CAPDataType.value!="")){
				refreshScreen();
				gIsYear=null;
				formsubmit(obj1.form);
			}else{
				refreshScreen();
			}
		}
}

capSelector.manufacturerChanged = function(obj){
	with(capSelector){
		resetOptionBox(document.getElementById('rangeId')) ;
		resetOptionBox(document.getElementById('capTransmissionCode')) ;		
		resetOptionBox(document.getElementById('capFuelTypeCode')) ;
		resetOptionBox(document.getElementById('modelId')) ;
		resetOptionBox(document.getElementById('productDataId')) ;
		if(obj.selectedIndex>0){
			formsubmit(obj.form);
		}else{
			refreshScreen();
		}
	}
}	
capSelector.rangeChanged = function(obj){
	with(capSelector){
		resetOptionBox(document.getElementById('capTransmissionCode')) ;
		resetOptionBox(document.getElementById('capFuelTypeCode')) ;
		resetOptionBox(document.getElementById('modelId')) ;		
		resetOptionBox(document.getElementById('productDataId')) ;
		if(obj.selectedIndex>0){
			formsubmit(obj.form);
		}else{
			refreshScreen();
		}
	}
}	

capSelector.transmissionChanged = function (obj){
	with(capSelector){
		resetOptionBox(document.getElementById('capFuelTypeCode')) ;
		resetOptionBox(document.getElementById('modelId')) ;
		resetOptionBox(document.getElementById('productDataId')) ;
		if(obj.selectedIndex>0){
			formsubmit(obj.form);
		}else{
			refreshScreen();
		}
	}
}	

capSelector.fueltypeChanged = function (obj){
	with(capSelector){
		resetOptionBox(document.getElementById('modelId')) ;
		resetOptionBox(document.getElementById('productDataId')) ;
		if(obj.selectedIndex>0){
			formsubmit(obj.form);
		}else{
			refreshScreen();
		}
	}
}

capSelector.modelChanged = function(obj){
	with(capSelector){
		resetOptionBox(document.getElementById('productDataId')) ;
		if(obj.selectedIndex>0){
			formsubmit(obj.form);
		}else{
			refreshScreen();
		}
	}
}	

capSelector.derivativeChanged = function(obj){
	if(obj.selectedIndex>0){
		capSelector.formsubmit(obj.form);
	}else{
		capSelector.refreshScreen();
	}
}

capSelector.resetOptionBox = function(obj){
    if(obj){	
		if(obj.options[0])obj.options[0].text="" ;
		obj.selectedIndex=0;
		obj.disabled=true;
		//for(i =1 ; i < obj.options.length;i++){
		//  obj.options[i] = null ;
		//}
     }	
}	

capSelector.formsubmit = function(frm){
	capSelector.refreshScreen();
	capSelector.carsubmit(frm);
}

capSelector.carsubmit = function(frm){
	var myUrl;
	myUrl = frm.action + "?";
	myUrl = myUrl + $(frm).serialize();
	capSelector.showLoading();
	capSelector.makeCapCarSelectorAJAXCall(myUrl,"returnedAJAXCapCarSelector");
	//alert('MyUrl ' + myUrl);
	
	return false;
}

capSelector.makeCapCarSelectorAJAXCall = function(parameter,loadOnSuccess){
	var l = eval(loadOnSuccess)
	$.ajax({
			  url: parameter,
			  cache: false,
			  success: l
    });
}  

function returnedAJAXCapCarSelector(data,ioArgs) {
	document.getElementById('capCarSelector').innerHTML = data;
	capSelector.refreshScreen();
}

capSelector.checkMileage = function(frm){
	var mils = document.getElementById('mileage').value;
	if(mils=="" || mils ==null || isNaN(parseInt(mils))){
		alert("Please enter the mileage of your car in the box provided first.")	;
		return false;
	}
	if(parseInt(mils) > 200){
		return confirm("You have entered a mileage of " + mils + ",000 miles. If this is correct please click 'OK' to continue, or 'Cancel' if you wish to change it.");
	}
	frm.submitAction.disabled=true
	return true;
}

$(document).ready(function() {
    var regy = document.getElementById('regYear');
	var regl = document.getElementById('regLetter');
	if(regy)if(regl){
		regy.selectedIndex=0;
		regl.selectedIndex=0;
		capSelector.refreshScreen();
	}
	billboard.init();
});

var billboard = {};

billboard.init = function(){
	if( $("div.scrollable div div").size()>1 ){ //just check there are items to scroll through
		var sc = $("div.scrollable").scrollable({circular:true,speed:1600,onBeforeSeek:billboard.scrollseek}).autoscroll({ autoplay: true,interval:8000,autopause:true }).navigator();	
	}
}

billboard.scrollseek = function(e,v){
	var s = e.currentTarget.getSize();
	var f = e.currentTarget.getConf();;
	var t = $.tools.scrollable.autoscroll 
	var d = v * ((723-90-15)/s)+5;
	$("div.scrollcar").show().animate({left:d},1600,function(){
			$("div.scrollcar").show();
		});
	$("#notspinning").hide();
}


