	// Code by Ben Clayton (2006)
	// IE/Netscape/Mozilla

	var BC_startDelay=8; // seconds before first ad changes
	var BC_speed=12; // seconds between future changes

	var BC_fadespeed=10;// milliseconds between steps of fader (20 step from 0-100%)

	var fin=1;

	function fadeIn(objname,opacity) {
		objId = objname;
		if (document.getElementById) {
			obj = document.getElementById(objId);
			if (opacity <= 100) {
				setOpacity(obj, opacity);
				opacity += 5;
				window.setTimeout("fadeIn('"+objname+"',"+opacity+")", BC_fadespeed);
			}else{
				fin=1
			}
		}
	}

	function fadeOut(objname,opacity) {
		objId = objname;
		if (document.getElementById) {
			obj = document.getElementById(objId);
			setOpacity(obj, opacity);
			if (opacity > 0) {
				opacity -= 5;
				window.setTimeout("fadeOut('"+objname+"',"+opacity+")", BC_fadespeed);
			}
		}
	}


	function setOpacity(obj, opacity) {
		// IE/Win							// problem with IE opacity filter and jpgs found 16/10/2006
		if (opacity ==100){
			obj.style.filter = "";
			opacity = 99.999;
		}else{
			obj.style.filter = "alpha(opacity:"+opacity+")";
		}
		// Safari<1.2, Konqueror
		obj.style.KHTMLOpacity = opacity/100;
		// Older Mozilla and Firefox
		obj.style.MozOpacity = opacity/100;
		// Safari 1.2, newer Firefox and Mozilla, CSS3
		obj.style.opacity = opacity/100;
	}

	function BCfaderstart(){
		var pref = 'BC_anim';
		cidx=1;
		if (document.getElementById(pref+(a2z.charAt(cidx)))){
			do{
				//alert(a2z.charAt(cidx));
				var obj = document.getElementById(pref + a2z.charAt(cidx));
				if (obj){
					setOpacity(obj,0.1);
					obj.style.visibility = 'visible';
				}else{
					alert(pref+ a2z.charAt(cidx));
				}
				cidx = (cidx+1) % a2z.length;
			} while (document.getElementById(pref+ a2z.charAt(cidx)));
			cidx=0;
			setTimeout("BC_changeimages('"+pref+"')",BC_startDelay*1000);
		}
	}

	var tid;

	var currentlayer="A";
	var currdetialsEnabled = 1;
	var a2z = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	var cidx=0;
	var dv=1;

	function BC_changeimages(pref){
		var p1=a2z.charAt(cidx);
		var p2;
		do{
			cidx = (cidx+1) % a2z.length;
			p2=a2z.charAt(cidx);
		} while (!document.getElementById(pref+p2));
		//alert("p1="+p1+"  p2="+p2);
		currentlayer= p2;
		DelayfadeOut(pref+p1,100);
		DelayfadeIn(pref+p2,0);

		var disobj = document.getElementById("detailsDIV");
		if (disobj){
			var disvobj = document.getElementById("detailsEnabled"+p2);
			if (disvobj){
				//disobj.style.visibility = (disvobj.value==1)?"visible":"hidden";
				currdetialsEnabled=disvobj.value;

				if ((disvobj.value==1)&&(dv==0)){
					DelayfadeIn("detailsDIV",0);
					dv=1
				}
				if ((disvobj.value==0)&&(dv==1)){
					DelayfadeOut("detailsDIV",100);
					dv=0
				}


			}else{
				alert("detailsEnabled"+p2)
			}
		}

		if (tid) clearTimeout(tid);
		tid=setTimeout("BC_changeimages('"+pref+"',100)",BC_speed*1000);
		
		//BC_time2displaymin*1000 + Math.random()*(BC_time2displaymax-BC_time2displaymin)*1000);
	}

	function DelayfadeOut(objname,opacity) {
		window.setTimeout("fadeOut('"+objname+"',"+opacity+")", 500);
	}

	function DelayfadeIn(objname,opacity) {
		window.setTimeout("fadeIn('"+objname+"',"+opacity+")", 500);
	}


	function dynamic_contact(model){
		if (model != null){
			location.href = "/dyn/_pages/dynamic_contact.shtml?state=new&model="+escape(model);
			//alert(location.href);
		}else{
			//alert("currentlayer="+currentlayer );
			if (currentlayer != ''){
				var mobj=document.getElementById('model'+currentlayer);
				if (mobj){
					//alert("modelobj="+mobj );
					//alert(obj.value);
					location.href = "/dyn/_pages/dynamic_contact.shtml?state=new&model="+escape(mobj.value);
				}else{
					alert("Error Hidden field 'model"+currentlayer+"' not found\nCould be the ssi is not updated to latest version see slmvauxhall")
				}
			}else{
				//alert("Error Currentlayer not A or B")
			}
		}
	}

	function mortgagepass(model,price,zerorate){
		if (model != null){
			if (zerorate==null){
				zerorate=0;
			}
			location.href = "/dyn/_pages/dynamic_mortgage.shtml?state=new&model="+escape(model)+"&price="+escape(price)+"&zerorate="+zerorate;
		}else{
			if (currentlayer != ''){
				var mobj=document.getElementById('model'+currentlayer);
				var pobj=document.getElementById('price'+currentlayer);
				var hobj=document.getElementById('HPZeroRate'+currentlayer);
				if (mobj && pobj){
					//alert(obj.value);
					location.href = "/dyn/_pages/dynamic_mortgage.shtml?state=new&model="+escape(mobj.value)+"&price="+escape(pobj.value)+"&zerorate="+hobj.value;
				}
			}
		}
	}

	function finance(model,price,zerorate){
		if (model != null){
			if (zerorate==null){
				zerorate=0;
			}
			location.href = "/dyn/_pages/finance.shtml?state=new&model="+escape(model)+"&price="+escape(price)+"&zerorate="+zerorate;
		}else{
			if (currentlayer != ''){
				var mobj=document.getElementById('model'+currentlayer);
				var pobj=document.getElementById('price'+currentlayer);
				var hobj=document.getElementById('HPZeroRate'+currentlayer);
				if (mobj && pobj){
					//alert(obj.value);
					location.href = "/dyn/_pages/finance.shtml?state=new&model="+escape(mobj.value)+"&price="+escape(pobj.value)+"&zerorate="+hobj.value;
				}
			}
		}
	}



	function useddynamic_contact(model,registration){
			location.href = "/dyn/_pages/dynamic_contact.shtml?state=used&model="+escape(model)+"&registration="+escape(registration);
	}

	function usedfinance(model,price,registration){
		location.href = "/dyn/_pages/finance.shtml?state=used&model="+escape(model)+"&price="+escape(price)+"&registration="+escape(registration);
	}


	function moredetails(path){
		if (path != null){
			window.location.href = path;
		}else{
			if ((currentlayer != '')&&(currdetialsEnabled==1)){
				var obj=document.getElementById('path'+currentlayer);
				if (obj){
					//alert(obj.value);
					window.location.href = obj.value;
				}
			}
		}
	}

	function breakurl(){
		var s1 = location.href;
		var s2 = s1.split('?');
		if (s2.length<2) return;
		var s3 = s2[1];
		var s4 = s3.split('&');
		for (var x=0;x<s4.length;x++){
			var s5 = s4[x].split('=');
			var nm = s5[0];
			var val = unescape(s5[1]);
			var obj = document.getElementById(nm);
			if (obj){obj.value=val}
			var obj = document.getElementById("DIV"+nm);
			if (obj){obj.innerHTML=val}
			if (nm == 'registration' && val != ''){obj.style.display='block'}
		}
	}

//----------------------------------------------------------------------------------------------
	function Xcalcrepayments(update){
		// Take price of car
		// deduct deposit which is site set at say 20%
		// add £130 HP documentation fee this becomes the loan.
		// Then divide amount into say 48 equal payments
		// If HP rate is not zero then take flat rate divide by 12 and
		//   add this percentage of loan to each payment
		//globals:   deposit and rate (from site wide parameters as percent)
		// passed parameters:  price   zerorate (bool)
		// form select: usrterm
		//      select: usrdeposit
		// output fields:  DIVdeal

		var usrdeposit = deposit;
		var usrterm = 48;
		if (update){
			// these are only here after page has been drawn once.
			usrdeposit = document.getElementById("usrdeposit").value;
			usrterm = document.getElementById("usrterm").value;
		}

		var price = document.getElementById("price").value;
		var zerorate = document.getElementById("zerorate").value;

		//alert("zerorate="+zerorate);

		price = price.replace(/[^0-9\.]/g,'');
		var depositamount = price * usrdeposit / 100;
		var loan = price-depositamount;
		loan = loan + 130 ; /////////// add HP document cost ?

		var payment = loan / usrterm;
		var szr="";
		if (zerorate == 0){
			payment += rate * loan /(12*100);
		}else{
			szr = "&nbsp;(0% finance)";
		}
		

		var s = "<table>";
		s += "<tr height=30><td>";
		s += "With a&nbsp;&nbsp;";
		s += makeDropdown("usrdeposit",usrdeposit,deposit,5,90,"%");
		s += "&nbsp;deposit of <b>&euro;"+formatcurrency(depositamount)+"</b>";

		s += "</td></tr><tr height=30><td>";
		
		s += "repaid over&nbsp;&nbsp;"; 
		s += makeDropdown("usrterm",usrterm,12,12,60," months") ;

		s += "</td></tr><tr height=30><td>";

		s += "the monthly payment could be as low as <b>&euro;"+formatcurrency(payment)+"&nbsp;"+szr+"</b>"; 

		s += "</td></tr><table>";

		obj = document.getElementById("DIVdeal");
		if (obj) {obj.innerHTML = s;}
	}

	function XmakeDropdown(nm,curr,dmin,dstep,dmax,dsym){
		var s = "<select class=\"inputFinance\" onchange=\"calcrepayments(1)\" name=\""+nm+"\" id=\""+nm+"\">\n";
		for (var d=dmin;d <= dmax ; d += dstep ){
			var sel = (d == curr)?"selected":"";
			s += "<option value="+d+" "+sel+">"+d+dsym+"</option>\n";
		}
		s += "</select>\n";
		return s;
	}

//----------------------------------------------------------------------------------------------

//----------------------------------------------------------------------------------------------
	function calcrepayments(update){
		// Take price of car
		// deduct deposit which is site set at say 20%
		// ***************** REMOVED add £130 HP documentation fee this becomes the loan.
		// Then divide amount into say 48 equal payments
		// If HP rate is not zero then take flat rate divide by 12 and
		//   add this percentage of loan to each payment
		//globals:   deposit and rate (from site wide parameters as percent)
		// passed parameters:  price   zerorate (bool)
		// form select: usrterm
		//      select: usrdeposit
		// output fields:  DIVdeal

		var price = document.getElementById("price").value;
		price = price.replace(/[^0-9\.]/g,'');
		var zerorate = document.getElementById("zerorate").value;
		if (depositminamt != 0){
			var d = price * deposit / 100;
			//alert("d="+d);
			if (d < depositminamt){
				deposit = format(0.1 + ((depositminamt / price) * 100),1);
			}

		}
		//alert("deposit="+deposit);

		var usrdeposit = deposit;
		var usrterm = 36;
		if (update){
			// these are only here after page has been drawn once.
			usrdeposit = document.getElementById("usrdeposit").value;
			if (usrdeposit < deposit) usrdeposit = deposit;
			usrterm = document.getElementById("usrterm").value;
		}


		//alert("zerorate="+zerorate);

		var depositamount = price * usrdeposit / 100;
		var loan = price-depositamount;
		//loan = loan + 130 ; /////////// add HP document cost ? REMOVED 30/4/2007

		var payment = loan / usrterm;
		var szr="";
		if (zerorate == 0){
			payment += rate * loan /(12*100);
		}else{
			szr = "&nbsp;(0% finance)";
		}
		

		var s = "<table>";
		s += "<tr height=30><td>";
		s += "With a&nbsp;&nbsp;";
		s += makeDropdown("usrdeposit",usrdeposit,deposit,5,90,"%");
		s += "&nbsp;deposit of <b>&euro;"+formatcurrency(depositamount)+"</b>";

		s += "</td></tr><tr height=30><td>";
		
		s += "repaid over&nbsp;&nbsp;"; 
		s += makeDropdown("usrterm",usrterm,12,12,60," months") ;

		s += "</td></tr><tr height=30><td>";

		s += "the monthly payment could be as low as <b>&euro;"+formatcurrency(payment)+"&nbsp;"+szr+"</b>"; 

		s += "</td></tr><table>";

		obj = document.getElementById("DIVdeal");
		if (obj) {obj.innerHTML = s;}
	}

	function makeDropdown(nm,curr,dmin,dstep,dmax,dsym){
		var s = "<select class=\"inputFinance\" onchange=\"calcrepayments(1)\" name=\""+nm+"\" id=\""+nm+"\">\n";
		var d=dmin;
		var cnt=0;
		while ((d <= dmax)&&(cnt < 30)){
			var sel = (d == curr)?"selected":"";
			s += "<option value="+d+" "+sel+">"+d+dsym+"</option>\n";
			if (cnt==0) d = dstep * parseInt(d / dstep);
			cnt++;
		
			d += dstep;
		}
		s += "</select>\n";
		return s;
	}

//----------------------------------------------------------------------------------------------


function formatcurrency(expr) {
	return addCommas(format(expr,2));
}

function format(expr,decplaces) {
	var str = "" + Math.round(eval(expr)*Math.pow(10,decplaces));
	while(str.length<= decplaces) {
		str = "0"+str;
	}
	var decpoint = str.length - decplaces
	var decimal = ".";
	if (decplaces==0){decimal = "";}
	return str.substring(0,decpoint) + decimal + str.substring(decpoint,str.length);
}

function addCommas(nStr)
{
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}
//----------------------------------------------------------------------------------------------

function arrayrandomise(arr,n){
// Will randomise a single dimension array,of integers or strings.
	var l=arr.length;
	if (n!=null){
		for (w=0;w<n;w++)arr[w]=w;
		l=n;
	}
	//alert("Lenght of array "+l);
	for (var w=0; w<l;w++){

		var r = parseInt(Math.random()*l);
		var t = arr[r];
		arr[r]=arr[w];
		arr[w]=t ;
	}
	//for (w=0; w<l;w++){

	//	alert(arr[w]);
	//}
}

// Select 3 random adds
function rand_small_ads(){
	var w=0;
	while (document.getElementById("smallad_"+w)){
		w++;
	}
	var arr=new Array();
	arrayrandomise(arr,w);
	var s="";
	var t=(w>3)?3:w;
	for (var w=0; w<t;w++){
		s+=document.getElementById("smallad_"+arr[w]).innerHTML;
	}
	document.getElementById("smallads").innerHTML=s;
}

// Use list item 0 then select 2 random adds from rest of list (used on slmvauxhall)
function rand_small_ads2(){
	var w=0;
	while (document.getElementById("smallad_"+w)){
		w++;
	}
	var arr=new Array();
	arrayrandomise(arr,w);
	var s="";
	var t=(w>3)?3:w;

	for (var x=0; x<w;x++){
		if(arr[x]==0){
			arr[x] = arr[0];
			arr[0] = 0;
			break;
		}
	}

	for (var x=0; x<t;x++){
		s+=document.getElementById("smallad_"+arr[x]).innerHTML;
	}
	document.getElementById("smallads").innerHTML=s;
}