var setup=[];
setup.cssfile="http://www.japautosalon.co.uk/autodirector/client/classic.css";
setup.pagesizes=[5,10,25,50];
setup.site="japautosalon";
setup.locale="GBP";
setup.searchURL="http://www.japautosalon.co.uk/autodirector/carlistsearch.php?site=japautosalon&search=";
setup.viewURL="http://www.japautosalon.co.uk/autodirector/viewupdate.php?site=japautosalon&id=";
setup.emailURL="http://www.japautosalon.co.uk/autodirector/emailsales.php?site=japautosalon&id=";
setup.thumburl="http://www.japautosalon.co.uk/autodirector/data/japautosalon/thumbs/";
setup.picurl="http://www.japautosalon.co.uk/autodirector/data/japautosalon/pics/";
setup.picsize=600;
setup.licprod=true;
setup.showform=true;
setup.adverton=true;
setup.orderbyon=true;
setup.advert="Powered by Compnix";
setup.advertURL="http://www.compnix.co.uk/";

var vehiclelist;
function DefineVehicles() {
	vehiclelist=[];
}
setup.searchon=false;



// Client JavaScript, (C)AutoDirector
var run=[];setup.comlimit=1000;setup.timeout=10000;setup.thisURL=location.protocol+"//"+location.host+(location.port!='' ? ":"+location.port:"")+location.pathname;setup.activesearch=false;setup.JSsearch=null;setup.activesend=false;setup.JSsend=null;setup.senderror='';setup.salesemail='';setup.divs=['licence','search','jumptop','list','jumpend','backtop','vehicle','enqresult','enquiry','backend','sponsor'];
if(setup.orderbyon||setup.searchon){setup.Tsearch='<form id="adsearch" action="'+setup.thisURL+'" method="get"><fieldset><legend>search</legend>'
setup.Tsearch+='<div class="order"><label for="adorderby" title="change the vehicle order">order by:</label><select id="adorderby" name="adorderby"></select></div>';
if(setup.searchon)setup.Tsearch+='<div class="search"><label for="adsearchterm" title="search for a vehicle">search:</label><input id="adsearchterm" name="adsearchterm" type="text" size="20" maxlength="50" /><input type="submit" value="go" class="button" /></div>';
setup.Tsearch+='</fieldset></form>';}
else setup.Tsearch='';
setup.Tlist='<a id="ad_id[id]" href="#" title="click for more details...">[pic]<dl><dt class="model">model:</dt><dd class="model">[newcar] [year] [model]</dd><dt class="colour">'+(setup.locale=='USD' ? 'color':'colour')+':</dt><dd class="colour">[colour]</dd><dt class="gearbox">'+(setup.locale=='USD' ? 'transmission':'gearbox')+':</dt><dd class="gearbox">[gearbox]</dd><dt class="mileage">mileage:</dt><dd class="mileage">[mileage]</dd></dl><div class="price">[price]</div></a>';
setup.Tlistnone='<p>No vehicles are available at this time. Please return later.</p>';
setup.Tdetail='[pics]<dl><dt class="model">model:</dt><dd class="model">[newcar] [year] [model]</dd><dt class="colour">'+(setup.locale=='USD' ? 'color':'colour')+':</dt><dd class="colour">[colour]</dd><dt class="gearbox">'+(setup.locale=='USD' ? 'transmission':'gearbox')+':</dt><dd class="gearbox">[gearbox]</dd><dt class="mileage">mileage:</dt><dd class="mileage">[mileage]</dd><dt class="details">details:</dt><dd class="details">[info]</dd></dl><div class="price">[price]</div><img src="'+setup.viewURL+'[id]" class="count" />';
setup.Tdetailnone='The vehicle you requested is not available. Please return to the showroom.';
setup.Tenquiry='<form id="adenquiry" action="'+setup.thisURL+'" method="get"><fieldset><legend>contact us about this vehicle</legend><div><label for="adname" title="enter your name">name:</label><input  id="adname" name="adname" type="text" size="20" maxlength="50" /></div><div><label for="ademail" title="enter your email address">email:</label><input  id="ademail" name="ademail" type="text" size="20" maxlength="100" /></div><div><label for="adtel" title="enter your telephone number">telephone:</label><input  id="adtel" name="adtel" type="text" size="20" maxlength="20" /></div><div><label for="adcomments" title="enter any questions or comments">questions:</label><textarea id="adcomments" name="adcomments" rows="4" cols="20"></textarea></div><div><input type="submit" value="send enquiry" class="button" /></div></fieldset></form>';
setup.Tback='<a href="#">&lt; back to the showroom</a>';
setup.Tsponsor="";
if(setup.adverton!=""){setup.Tsponsor+=setup.advert;
if(setup.advertURL!="")setup.Tsponsor='<a href="'+setup.advertURL+'">'+setup.Tsponsor+'</a>';}
setup.Tunlic='This showroom is powered by an unlicenced trial copy of AutoDirector. You may evaluate the AutoDirector system for 30 days. To remove this message, please visit <a href="http://www.autodirector.co.uk/">http://www.autodirector.co.uk/</a> and purchase a licence key.';
var sortTypes=[];var st=0;sortTypes[st++]={name:"price, highest first",sort:function(a,b){return SortCars(a.price,b.price,-1);}}
sortTypes[st++]={name:"price, lowest first",sort:function(a,b){return SortCars(a.price,b.price,1);}}
sortTypes[st++]={name:"make/model, A to Z",sort:function(a,b){return SortCars(a.model,b.model,1);}}
sortTypes[st++]={name:"make/model, Z to A",sort:function(a,b){return SortCars(a.model,b.model,-1);}}
sortTypes[st++]={name:"year, youngest first",sort:function(a,b){return SortCars(a.year,b.year,-1);}}
sortTypes[st++]={name:"year, oldest first",sort:function(a,b){return SortCars(a.year,b.year,1);}}
sortTypes[st++]={name:"mileage, lowest first",sort:function(a,b){return SortCars(a.mileage,b.mileage,1);}}
sortTypes[st++]={name:"mileage, highest first",sort:function(a,b){return SortCars(a.mileage,b.mileage,-1);}}
sortTypes[st++]={name:"search result",sort:function(a,b){return SortCars(a.searchrank,b.searchrank,-1);}}
sortTypes[st++]={name:"search (reversed)",sort:function(a,b){return SortCars(a.searchrank,b.searchrank,1);}}
function SortCars(a,b,asc){if(a<b)return -1*asc;
if(a>b)return 1*asc;
return 0;}
function ADstart(){if(setup.cssfile!="")DOM.LoadCSS(setup.cssfile);
setup.adnode=DOM.Id("autodirector");
DefineVehicles();DefineDefaults();DefineNodes();var list=run.list;
if(!setup.orderbyon&&!setup.searchon)ShowVehicleList();
else{var adorderby=DOM.Id("adorderby");
var adsearchterm=DOM.Id("adsearchterm");
if(adsearchterm&&run.searchresult==null){list=true;
adsearchterm.value=run.search;
run.search="";
EventSearchSubmit();}
else if(adorderby){var page=run.thispage;
adorderby.value=run.orderby;
EventChangeOrder();
if(run.thispage!=page){run.thispage=page;
ShowVehicleList();}}}
if(!list&&run.ID>0){var id=run.ID;
run.ID=0;
ShowVehicle(id);}
else run.ID=0;}
function DefineDefaults(){var adcs=[];adcs.LoadAll("adcs");
var adqs=HTTParguments();
var Define=function(name,def){var ret=def;
if(adcs.Exists(name))ret=adcs[name];
if(adqs.Exists(name))ret=adqs[name];
return ret;}
run.ID=Define("id",0).toInt();
run.list=(Define("list",true)==true);
if(run.ID>0&&run.list==true&&adqs.Exists('id')&&!adqs.Exists('list'))run.list=false;
run.orderby=Define("orderby",0).toInt();run.pagesize=Define("pagesize",setup.pagesizes[0]).toInt();run.thispage=Define("thispage",1).toInt();run.name=Define("name","");run.email=Define("email","");run.tel=Define("tel","");run.comments=Define("comments","");run.scrollpos=Define("scrollpos",0).toInt();
var sext=(adqs.Exists("search")? adqs.search:"");var sint=(adcs.Exists("search")? adcs.search:"");
if(sext!=""&&setup.searchon){run.orderby=(setup.orderbyon ? sortTypes.length-2:0);run.list=true;}
if(sext!=""&&sext!=sint){run.search=sext;
run.searchresult=null;}
else{run.search=sint;
run.searchresult=Define("searchresult","");
if(run.searchresult!="")run.searchresult=run.searchresult.split(',');
else for(var v=0;v<vehiclelist.length;v++)run.searchresult[v]=vehiclelist[v].id;
UpdateSearchResult();}}
function SaveDefaults(){run.StoreAll("adcs");}
function DefineNodes(){DOM.RemoveChildren(setup.adnode);
var node;
for(var i=0;i<setup.divs.length;i++){node=document.createElement("div");
node.id="autodirector_"+setup.divs[i];
setup["node"+setup.divs[i]]=setup.adnode.appendChild(node);
setup["node"+setup.divs[i]].style.display="none";}
if(!setup[String.fromCharCode(108,105,99,112,114,111,100)]){var unl=setup[String.fromCharCode(84,117,110,108,105,99)];
var unn=setup['node'+'li'+'ce'+'nce'];
if(unl.substr(31,5)=='un'+'li'+'c')DOM.NodeAdd(unn,unl);
else DOM.NodeAdd(unn,String.fromCharCode(85,78,76,73,67,69,78,67,69,68));
var us=unn.style;
us.position="static";us.display="block";us.visibility="visible";
us.width="auto";us.height="auto";
us.fontSize="1.2em";us.fontWeight="bold";us.textAlign="center";
us.padding="0.5em";us.marginBottom="0.5em";
us.color='#c00';us.backgroundColor='#ffc';us.border='3px solid #c00';}
if(setup.orderbyon||setup.searchon){DOM.NodeAdd(setup.nodesearch,setup.Tsearch);
var adorderby=DOM.Id("adorderby");
if(adorderby){var opt;
for(var s=(setup.orderbyon ? 0:sortTypes.length-2);s<sortTypes.length-(setup.searchon ? 0:2);s++){opt=document.createElement("option");
opt.setAttribute("value",s);
opt.appendChild(document.createTextNode(sortTypes[s].name));
adorderby.appendChild(opt);}
adorderby.value=run.orderby;
new Event(adorderby,"change",EventChangeOrder);}
var adsearch=DOM.Id("adsearch");
if(adsearch)new Event(adsearch,"submit",EventSearchSubmit);}
if(setup.showform){DOM.NodeAdd(setup.nodeenquiry,setup.Tenquiry);
DOM.Id("adname").value=run.name;DOM.Id("ademail").value=run.email;DOM.Id("adtel").value=run.tel;
DOM.Id("adcomments").value=run.comments;
new Event(DOM.Id("adenquiry"),"submit",EventSendEnquiry);
new Event(DOM.Id("adcomments"),"keypress",EventLimitComments);}
DOM.NodeAdd(setup.nodebacktop,setup.Tback);
DOM.NodeAdd(setup.nodebackend,setup.Tback);
if(setup.Tsponsor!=""){DOM.NodeAdd(setup.nodesponsor,setup.Tsponsor);
setup.nodesponsor.style.display="block";}
new Event(setup.nodelist,"click",EventVehicleClick);
new Event(setup.nodejumptop,"click",EventPageClick);
new Event(setup.nodejumpend,"click",EventPageClick);
new Event(setup.nodevehicle,"click",EventVehicleImageClick);
new Event(DOM.Tags("a",setup.nodebacktop)[0],"click",EventBackClick);
new Event(DOM.Tags("a",setup.nodebackend)[0],"click",EventBackClick);}
function ShowVehicleList(render){run.list=true;
render=(render !== false);
var show="list";
if(vehiclelist.length>0){if(setup.orderbyon||setup.searchon)show+=",search";
show+=",jumptop,jumpend";
var pages=Math.floor((vehiclelist.length-1)/run.pagesize)+1;
if(run.thispage>pages)run.thispage=pages;
if(render){var vs=(run.thispage-1)*run.pagesize;
var ve=vs+run.pagesize-1;
if(ve>vehiclelist.length-1)ve=vehiclelist.length-1;
var list="";for(var v=vs;v<=ve;v++)list+=vehiclelist[v].Replace(setup.Tlist);
DOM.NodeAdd(setup.nodelist,list,true);
var pagelist='<p>'+vehiclelist.length+' vehicle'+(vehiclelist.length>1 ? 's':'')+': show ';
for(var s=0;s<setup.pagesizes.length;s++){pagelist+='<a href="#*'+setup.pagesizes[s]+'"'+(run.pagesize==setup.pagesizes[s] ? ' class="active"':'')+'>'+setup.pagesizes[s]+'</a>';
if(s+2<=setup.pagesizes.length)pagelist+=(s+2==setup.pagesizes.length ? ' or ':', ');}
pagelist+=" per page</p>";
if(pages>1){pagelist+="<ol>";
if(run.thispage>1)pagelist+='<li><a href="#-1" class="back" title="previous page">&lt; back</a></li>';
for(var p=1;p<=pages;p++){pagelist+='<li><a href="#'+p+'" title="page '+p+'"'
if(p==run.thispage)pagelist+=' class="active"';
pagelist+='>'+p+'</a></li>';}
if(run.thispage<pages)pagelist+='<li><a href="#+1" class="next" title="next page">next &gt;</a></li>';
pagelist+="</ol>";}
DOM.NodeAdd(setup.nodejumptop,pagelist,true);
DOM.NodeAdd(setup.nodejumpend,pagelist,true);}}
else{if(render)DOM.NodeAdd(setup.nodelist,setup.Tlistnone,true);}
ShowNodes(show);
SaveDefaults();}
function ShowVehicle(id){run.list=false;
var show='vehicle,backtop,backend';
var sform=setup.showform;
if(id!=run.ID){run.ID=id;
var vIndex=VehicleIndex(id);
if(vIndex>=0)DOM.NodeAdd(setup.nodevehicle,vehiclelist[vIndex].Replace(setup.Tdetail),true);
else{run.ID=0;
DOM.NodeAdd(setup.nodevehicle,setup.Tdetailnone,true);
sform=false;}}
if(sform)show+=',enquiry';
ShowNodes(show);
Graphic.PositionViewport("autodirector",0,30);
SaveDefaults();}
function ShowNodes(list){for(var n=1;n<setup.divs.length-1;n++)setup["node"+setup.divs[n]].style.display=(list.indexOf(setup.divs[n])>=0 ? "block":"none");}
function VehicleIndex(id){var i=0;
while (id!=vehiclelist[i].id&&i<vehiclelist.length-1)i++;
return (vehiclelist[i].id==id ? i:-1);}
function UpdateSearchResult(){vehiclelist.sort(sortTypes[0].sort);
var nv=vehiclelist.length;
var vi;
for(var v=0;v<nv;v++){vi=0;
while (vehiclelist[v].id!=run.searchresult[vi]&&vi<run.searchresult.length)vi++;
vehiclelist[v].searchrank=(vehiclelist[v].id==run.searchresult[vi] ? nv-vi:-v);}}
function Vehicle(id,newcar,year,model,mileage,colour,gearbox,info,price,pics){this.id=id;this.newcar=(newcar ? "NEW":"");this.year=year.toInt();this.model=model;this.mileage=mileage.toInt();this.colour=(colour!="" ? colour:"&nbsp;");this.gearbox=(gearbox!="" ? gearbox:"&nbsp;");this.info="<p>"+info.replace(/\|/g,"</p><p>")+"</p>";this.price=(price!=null ? price.toInt():null);this.pics=pics;this.searchrank=0;}
Vehicle.prototype.Replace=function(template){template=template.replace(/\[id\]/gi,this.id);template=template.replace(/\[newcar\]/gi,this.newcar);template=template.replace(/\[year\]/gi,this.year);template=template.replace(/\[model\]/gi,this.model);template=template.replace(/\[mileage\]/gi,this.mileage.format(0)+" miles");template=template.replace(/\[colour\]/gi,this.colour);template=template.replace(/\[gearbox\]/gi,this.gearbox);template=template.replace(/\[info\]/gi,this.info);template=template.replace(/\[price\]/gi,(this.price!=null ? this.price.format(0,true):"sold"));
if(this.pics.length>0){template=template.replace(/\[pic\]/gi,'<img src="'+setup.thumburl+this.pics[0]+'.jpg" title="'+this.model+'" />');
var pics="<ol>";
for(var p=0;p<this.pics.length;p++)pics+='<li><img src="'+setup.thumburl+this.pics[p]+'.jpg" alt="'+this.model+' picture" title="'+this.model+' picture '+(p+1)+' - click to enlarge..." /></li>';
pics+="</ol>";
template=template.replace(/\[pics\]/gi,pics);}
else{template=template.replace(/\[pic\]/gi,'');
template=template.replace(/\[pics\]/gi,'');}
return template;}
function EventVehicleClick(evt){evt.Raised.StopDefaultAction();
run.scrollpos=Graphic.ViewportScrollY();
var node=DOM.ParentFind(evt.Raised.Element,"a");
var id=(node ? String(node.id).substr(5).toInt():0);
if(id>0)ShowVehicle(id);}
function EventChangeOrder(evt){if(evt)evt.Raised.StopDefaultAction();
var adorderby=DOM.Id("adorderby");
if(adorderby){Graphic.ClassApply(adorderby.parentNode,"active");
run.orderby=adorderby.value;
vehiclelist.sort(sortTypes[run.orderby].sort);
var adsearchterm=DOM.Id("adsearchterm");
if(adsearchterm){if(run.orderby>=sortTypes.length-2)adsearchterm.value=run.search;
else adsearchterm.value="";}
run.thispage=1;
ShowVehicleList();
Graphic.ClassRemove(adorderby.parentNode,"active");
Graphic.PositionViewport("autodirector",0,30);}}
function EventSearchSubmit(evt){if(evt)evt.Raised.StopDefaultAction();
var adsearchterm=DOM.Id("adsearchterm");
if(!setup.activesearch&&adsearchterm){var sterm=adsearchterm.value.Clean();
if(sterm.length>0){if(sterm==run.search){DOM.Id("adorderby").value=sortTypes.length-2;
EventChangeOrder();}
else{setup.activesearch=true;run.search=sterm;adsearchterm.value=run.search;Graphic.ClassApply(adsearchterm.parentNode,"active");
if(setup.JSsearch)DOM.HeadRemove(setup.JSsearch);
setup.JSsearch=DOM.LoadJS(setup.searchURL+escape(run.search)+"&callback=EventSearchResult()");
setTimeout(EventSearchTimeout,setup.timeout);}}}}
function EventSearchResult(){SearchReset();
UpdateSearchResult();
DOM.Id("adorderby").value=sortTypes.length-2;
EventChangeOrder();}
function EventSearchTimeout(){if(setup.activesearch){SearchReset();
DOM.HeadRemove(setup.JSsearch);setup.JSsearch=null;run.search="";
alert("Sorry, but your search is taking too long.\nPlease try again later.");}}
function SearchReset(){Graphic.ClassRemove(DOM.Id("adsearchterm").parentNode,"active");
setup.activesearch=false;}
function EventPageClick(evt){evt.Raised.StopDefaultAction();
var node=DOM.ParentFind(evt.Raised.Element,"a");
if(node){var href=node.getAttribute("href");
var h=href.lastIndexOf("#");
if(h>=0){var num=href.substr(h+1);
var sign=num.charAt(0);
var ps=(sign=="*");
var inc=(sign=="-"||sign=="+");
num=num.toInt();
if(ps){if(num!=run.pagesize){run.pagesize=num;
ShowVehicleList();}}
else{var newpage=(inc ? run.thispage+num:num);
if(run.thispage!=newpage){run.thispage=newpage;
ShowVehicleList();
Graphic.PositionViewport("autodirector",0,30);}}}}}
function EventVehicleImageClick(evt){evt.Raised.StopDefaultAction();
var img=evt.Raised.Element;
if(img.nodeName.toLowerCase()=="img")PopupImage(String(img.src).replace(new RegExp(setup.thumburl),setup.picurl));}
function EventBackClick(evt){evt.Raised.StopDefaultAction();
if(!setup.activesend)ShowVehicleList(false);
window.scrollTo(0,run.scrollpos);}
function EventSendEnquiry(evt){evt.Raised.StopDefaultAction();
if(!setup.activesend){var msg="";
var hl=false;var nComments=DOM.Id("adcomments");
run.comments=nComments.value.Trim().replace(/\r/g,"").replace(/\n/g,"\n");
var oc;
do{oc=run.comments;
run.comments=run.comments.replace(/\n\n/g,"\n");} while (run.comments!=oc);
run.comments=run.comments.substr(0,setup.comlimit);
nComments.value=run.comments;
var nTel=DOM.Id("adtel");
run.tel=nTel.value.Trim();nTel.value=run.tel;
var nEmail=DOM.Id("ademail");
run.email=nEmail.value;
if(run.email!=""){run.email=verify_email(run.email);
if(run.email==""){msg="\t  - a valid email address\n"+msg;hl=nEmail;}
else nEmail.value=run.email;}
if(run.email==""&&run.tel==""&&msg==""){msg=" - an email address or telephone number";hl=nEmail;}
var nName=DOM.Id("adname");
run.name=nName.value.Clean();nName.value=run.name;
if(run.name.length<4){msg="  - your name\n"+msg;hl=nName}
if(hl){alert("Please enter:\n"+msg);
try {hl.select();} catch(e){}
try {hl.focus();} catch(e){}}
else{setup.activesend=true;
setup.nodeenquiry.style.display="none";
Graphic.ClassApply(setup.nodeenqresult,"active");
DOM.SetText(setup.nodeenqresult,"sending your enquiry...");
setup.nodeenqresult.style.display="block";
var send=setup.emailURL+run.ID;send+="&callback=EventSendResult()";send+="&url="+escape(setup.thisURL);send+="&name="+escape(run.name);send+=(run.email!="" ? "&email="+escape(run.email):"");send+=(run.tel!="" ? "&tel="+escape(run.tel):"");send+=(run.comments!="" ? "&comments="+escape(run.comments):"");
if(setup.JSsend)DOM.HeadRemove(setup.JSsend);
setup.JSsend=DOM.LoadJS(send);
setTimeout(EventSendTimeout,setup.timeout);
SaveDefaults();}}}
function EventSendResult(){SendReset();
var msg='';
switch (setup.senderror){case '': msg+="Your enquiry was sent successfully. We will contact you shortly.";break;
case 'noemail':
msg+="Sorry, but your enquiry could not be sent at this time. Please try again later";
if(setup.salesemail!='')msg+=" or contact us at "+setup.salesemail+" directly";
msg+=".";
setup.nodeenquiry.style.display="block";
break;
default:
msg+="Sorry, but there was a technical problem with your enquiry.";
if(setup.salesemail!='')msg+=" Please contact us at "+setup.salesemail+" directly.";
break;}
DOM.SetText(setup.nodeenqresult,msg);}
function EventSendTimeout(){if(setup.activesend){SendReset();
DOM.HeadRemove(setup.JSsend);
setup.JSsend=null;
DOM.SetText(setup.nodeenqresult,"Sorry, but your enquiry is taking too long. Please try again later.");
setup.nodeenquiry.style.display="block";}}
function SendReset(){Graphic.ClassRemove(setup.nodeenqresult,"active");
setup.activesend=false;}
function EventLimitComments(evt){var key=evt.Raised.Key;
if(evt.Raised.Element.value.length>setup.comlimit)evt.Raised.Element.value=evt.Raised.Element.value.substr(0,setup.comlimit);
if(evt.Raised.ControlKey==''&&key.length+evt.Raised.Element.value.length>setup.comlimit)evt.Raised.StopDefaultAction();}
function PopupImage(img){var scnWidth=(screen.availWidth ? screen.availWidth:640);
var scnHeight=(screen.availHeight ? screen.availHeight:480);
var size=setup.picsize+20;
var win=window.open(img,"","width="+size+",height="+size+",left="+Math.floor((scnWidth-size)/2)+",top="+Math.floor((scnHeight-size)/2)+",location=0,directories=0,menubar=0,toolbar=0,status=0,scrollbars=0,resizable=1");
var cImage=new Image;
cImage.src=img;
if(cImage.complete)PopupImageResize(win,cImage);
else new Event(cImage,"load",function(evt){evt.Detach();PopupImageResize(win,cImage);});}
function PopupImageResize(win,cImage){var imgWidth=cImage.width+30;
var imgHeight=cImage.height+70;
var scnWidth=(screen.availWidth ? screen.availWidth:640);
var scnHeight=(screen.availHeight ? screen.availHeight:480);
if(scnWidth>imgWidth&&scnHeight>imgHeight){try {win.resizeTo(imgWidth,imgHeight);} catch(e){}
try {win.moveTo(Math.floor((scnWidth-imgWidth)/2),Math.floor((scnHeight-imgHeight)/2));} catch(e){}}
win.focus();}
Object.prototype.toInt=function(){var str=String(this);
str=str.replace(/[^0-9-.]/g,"");
var ret=parseInt(str,10);
if(isNaN(ret))ret=0;
return ret;}
Number.prototype.format=function(dp,currency){var num=this;
var ThousandsSep=(setup.locale=="EURO" ? " ":",");var DecimalPoint=(setup.locale=="EURO" ? ",":".");var NegativePre="-";var NegativePost="";var CurrencyPre="\u00a3";var CurrencyPost="";if(setup.locale=="USD")CurrencyPre="$";if(setup.locale=="EURO"){CurrencyPre="";CurrencyPost="\u20ac";}
var neg,bdp,adp,obdp;
if(isNaN(num))num=0;
dp=Math.abs(dp.toInt());
neg=(num<0);
num=String(Math.round(Math.abs(num)*Math.pow(10,dp))).Pad(dp,'0');
bdp=num.substr(0,num.length-dp);
adp=num.substr(num.length-dp);
if(bdp=="")bdp="0";
else{do {obdp=bdp;
bdp=bdp.replace(/(\d+)(\d{3})/g,"$1"+ThousandsSep+"$2");} while (bdp!=obdp);}
num=bdp+(dp>0 ? DecimalPoint+adp:"");
if(currency===true)num=CurrencyPre+num+CurrencyPost;
if(neg)num=NegativePre+num+NegativePost;
return num;}
String.prototype.Trim=function(){return this.replace(/^\s*|\s*$/g,"");}
String.prototype.Clean=function(){return this.replace(/[^\w|\s|@|&|.|,|!|%|(|)|+|-]/g,"").replace(/_/g," ").replace(/\s+/g," ").Trim();}
String.prototype.Pad=function(length,padChar){var str=String(this);
length=length.toInt();
if(typeof padChar=='undefined')padChar=" ";
else{padChar=String(padChar);
if(padChar.length<1)padChar=" ";}
while (str.length<length)str=padChar+str;
return str;}
function HTTParguments(){var args=new Array();
var arglist=location.search.Trim();
if(arglist.charAt(0)=='?')arglist=arglist.substr(1);
var argsep=arglist.split('&');
var thisValue;
for(var i=0;i<argsep.length;i++){thisValue=argsep[i].split("=");
if(thisValue.length==2)args[unescape(thisValue[0].toLowerCase())]=unescape(thisValue[1]);}
return args;}
Array.prototype.Exists=function(key){var type=typeof(this[key]);
return (type!='undefined'&&type!='function');}
Array.prototype.StoreAll=function(name,minutes){var values="";
for(var key in this)if(typeof(this[key])!='function')values+=(values=="" ? "":"[:]")+key.toLowerCase()+"[=]"+String(this[key]);
CookieSet(name,values,minutes);}
Array.prototype.LoadAll=function(name){var allValues=CookieGet(name);
var values=allValues.split("[:]");
var thisValue;
for(var i=0;i<values.length;i++){thisValue=values[i].split("[=]");
if(thisValue.length==2){if(thisValue[1]=="true"||thisValue[1]=="false")this[thisValue[0].toLowerCase()]=(thisValue[1]=="true");
else this[thisValue[0].toLowerCase()]=thisValue[1];}}}
function CookieSet(name,value,minutes){value=String(value).replace(/\r/g,"").replace(/\n/g,"[#]");
if(minutes){var date=new Date();
date.setTime(date.getTime()+(minutes*60000));
var expires=";expires="+date.toGMTString();}
else expires="";
document.cookie=name+"="+String(value)+expires+";path="+location.pathname.substr(0,location.pathname.indexOf("/",1)+1);}
function CookieGet(name){var ret="";
name+="=";
var allCookies=document.cookie.split(';');
var thisCookie;
for(var i=0;i<allCookies.length&&ret=="";i++){thisCookie=allCookies[i].Trim();
if(thisCookie.indexOf(name)==0)ret=thisCookie.substring(name.length).replace(/\[#\]/g,"\n");}
return ret;}
function CookiesEnabled(){CookieSet("testcookie","testvalue",0.05);
return (CookieGet("testcookie")=="testvalue");}
function verify_email(email){email=email.Trim().toLowerCase();
if(email!="")if(email.replace(/^.+@[a-z0-9]+([_\.\-]{0,1}[a-z0-9]+)*([\.]{1}[a-z0-9]+)+$/,"")!="")email="";
return email;}
var DOM=new function(){this.ElementNode=1;
this.AttributeNode=2;
this.TextNode=3;
this.CommentNode=8;
this.Enabled=(document.getElementById&&document.getElementsByTagName);
this.Id=function(id,rootElement){var element=null;
if(this.Enabled){if(typeof rootElement=='string')rootElement=this.Id(rootElement);
if(!rootElement)rootElement=document;
element=rootElement.getElementById(String(id));}
return element;}
this.Tags=function(tag,rootElement){var elements=new Array(0);
if(this.Enabled){if(typeof rootElement=='string')rootElement=this.Id(rootElement);
if(!rootElement)rootElement=document;
elements=rootElement.getElementsByTagName(String(tag));}
return elements;}
this.NodeAdd=function(element,content,clear){if(typeof element=='string')element=this.Id(element);
if(clear===true)this.RemoveChildren(element);
return (element.innerHTML=content);}
this.ParentFind=function(element,nodename){if(typeof element=='string')element=this.Id(element);
nodename=nodename.toLowerCase();
while (element.nodeName.toLowerCase()!=nodename&&element.parentNode)element=element.parentNode;
if(element.nodeName.toLowerCase()!=nodename)element=false;
return element;}
this.ChildElements=function(element){var ce=new Array();
if(typeof element=='string')element=this.Id(element);
if(element){for(var i=0;i<element.childNodes.length;i++){if(element.childNodes[i].nodeType==this.ElementNode&&element.childNodes[i].nodeName!="!")ce.push(element.childNodes[i]);}}
return ce;}
this.FindNodeType=function(element,ntype){var found=null;
if(typeof element=='string')element=this.Id(element);
if(element){var thisNode;
for(var i =0;i<element.childNodes.length&&found==null;i++){thisNode=element.childNodes[i];
if(thisNode.nodeType==ntype)found=thisNode;
else found=this.FindNodeType(thisNode,ntype);}}
return found;}
this.SetText=function(element,text){if(typeof element=='string')element=this.Id(element);
if(element){var tNode=this.FindNodeType(element,this.TextNode);
if(tNode)tNode.nodeValue=text;
else element.appendChild(document.createTextNode(text));}}
this.RemoveChildren=function(element){if(typeof element=='string')element=this.Id(element);
if(element)while (element.lastChild)element.removeChild(element.lastChild);}
this.AbsoluteX=function(element){var pos=0;
if(typeof element=='string')element=this.Id(element);
if(element&&typeof element.offsetLeft!='undefined'){pos=element.offsetLeft;
while ((element=element.offsetParent))pos+=element.offsetLeft;}
return pos;}
this.AbsoluteY=function(element){var pos=0;
if(typeof element=='string')element=this.Id(element);
if(element&&typeof element.offsetTop!='undefined'){pos=element.offsetTop;
while ((element=element.offsetParent))pos+=element.offsetTop;}
return pos;}
this.HeadAppend=function(element){var head=this.Tags("head");
if(head.length==1)return head[0].appendChild(element);}
this.HeadRemove=function(element){var head=this.Tags("head");
if(head.length==1)return head[0].removeChild(element);}
this.LoadJS=function(file){var jsfrag=document.createElement("script");
jsfrag.setAttribute("type","text/javascript");
jsfrag.setAttribute("src",file);
return this.HeadAppend(jsfrag);}
this.LoadCSS=function(file){var cssfrag=document.createElement("link");cssfrag.setAttribute("type","text/css");cssfrag.setAttribute("rel","stylesheet");cssfrag.setAttribute("media","screen");cssfrag.setAttribute("href",file);return this.HeadAppend(cssfrag);}}
var Graphic=new function(){if(typeof window.innerWidth!='undefined'){this.ViewportWidth=function(){return window.innerWidth;}
this.ViewportHeight=function(){return window.innerHeight;}}
else{this.ViewportWidth=function(){if(typeof document.documentElement!='undefined'&&typeof document.documentElement.clientWidth!='undefined'&&document.documentElement.clientWidth!=0)return document.documentElement.clientWidth;
else return DOM.Tags("body")[0].clientWidth;}
this.ViewportHeight=function(){if(typeof document.documentElement!='undefined'&&typeof document.documentElement.clientHeight!='undefined'&&document.documentElement.clientHeight!=0)return document.documentElement.clientHeight;
else return DOM.Tags("body")[0].clientHeight;}}
if(typeof window.pageXOffset!='undefined'){this.ViewportScrollX=function(){return window.pageXOffset;}
this.ViewportScrollY=function(){return window.pageYOffset;}}
else{this.ViewportScrollX=function(){if(typeof document.documentElement.scrollLeft!='undefined'&&document.documentElement.scrollLeft>0)return document.documentElement.scrollLeft;
else if(typeof document.body.scrollLeft!='undefined')return document.body.scrollLeft;
else return 0;}
this.ViewportScrollY=function(){if(typeof document.documentElement.scrollTop!='undefined'&&document.documentElement.scrollTop>0)return document.documentElement.scrollTop;
else if(typeof document.body.scrollTop!='undefined')return document.body.scrollTop;
else return 0;}}
this.ClassApply=function(element,cname){if(typeof element=='string')element=DOM.Id(element);
if(element&&cname.length>0){var cc=" "+element.className+" ";
if(cc.indexOf(" "+cname+" ")<0)cc+=cname;
element.className=cc.Trim();}}
this.ClassRemove=function(element,cname){if(typeof element=='string')element=DOM.Id(element);
if(element&&cname.length>0){var cc=" "+element.className+" ";
cc=cc.replace(new RegExp(" "+cname+" ","gi"),"");
element.className=cc.Trim();}}
this.PositionViewport=function(element,vtop,vbottom,absolute){if(absolute !== true){var vh=this.ViewportHeight();
vtop=Math.floor((vtop/100)*vh);
vbottom=Math.ceil((vbottom/100)*vh);}
var ey=DOM.AbsoluteY(element);
var vy=this.ViewportScrollY();
if(ey<vy+vtop)this.ScrollViewport(ey-vtop);
else if(ey>vy+vbottom)this.ScrollViewport(ey-vbottom);}
this.AnimationFrames=10;this.AnimationPause=300;
this.ScrollViewport=function(moveTo,frame,pause){if(isNaN(frame)){var cTime=new Date();frame=this.AnimationFrames;}
var moveFrom=this.ViewportScrollY();
window.scrollTo(0,moveFrom+Math.floor((moveTo-moveFrom)/frame));
if(frame>1&&moveFrom!=this.ViewportScrollY()){if(isNaN(pause)){pause=((new Date()-cTime)+8)*2;
frame=Math.floor(this.AnimationPause/pause);}
else frame--;
setTimeout(function(){Graphic.ScrollViewport(moveTo,frame,pause);},pause);}}}
function Event(element,type,handler){this.Raised=null;
if(typeof element.AttachedEvents=='undefined'||element.AttachedEvents==null){element.AttachedEvents=new EventStore();
var existingEvent=element["on"+type];
if(existingEvent)new Event(element,type,existingEvent);
EventStore.ElementList[EventStore.ElementList.length]=element;
if(EventStore.ElementList.length==1)new Event(window,"unload",EventStore.CleanUp);}
var hIndex=element.AttachedEvents.Add(element,type,this);
this.Handler=function(evtinfo){this.Raised=evtinfo;
return handler(this);}
this.Detach=function(){element.AttachedEvents.Detach(type,hIndex);}}
function EventStore(){this.Type=[];}
EventStore.prototype.Add=function(element,type,EventObj){if(typeof this.Type[type]=='undefined'){this.Type[type]=[];
element["on"+type]=EventStore.Handler;}
var hIndex=this.Type[type].length;
this.Type[type][hIndex]=EventObj;
return hIndex;}
EventStore.prototype.Detach=function(type,hIndex){if(typeof this.Type[type][hIndex]=='object')delete this.Type[type][hIndex];}
EventStore.prototype.RunEvents=function(evtinfo){var ret=true;
if(typeof this.Type[evtinfo.Type]!='undefined'){var EventObj;
for(var h=0;h<this.Type[evtinfo.Type].length;h++){EventObj=this.Type[evtinfo.Type][h];
if(typeof EventObj=='object')ret &= (EventObj.Handler(evtinfo)!==false);}}
return ret;}
EventStore.Handler=function(evt){if(this.AttachedEvents)return this.AttachedEvents.RunEvents(new EventInformation(evt));}
EventStore.ElementList=[];
EventStore.CleanUp=function(){for(var e=0;e<EventStore.ElementList.length;e++)EventStore.ElementList[e].AttachedEvents=null;
EventStore.ElementList=null;}
function EventInformation(event){if(event){this.Event=event;
this.StopPropagation=function(){this.Event.stopPropagation();}
this.StopDefaultAction=function(){this.Event.preventDefault();}}
else{this.Event=window.event;
this.StopPropagation=function(){this.Event.cancelBubble=true;}
this.StopDefaultAction=function(){this.Event.returnValue=false;}}
this.Type="";this.Element=null;this.Key="";this.ControlKey="";this.Shift=false;this.Ctrl=false;this.Alt=false;this.MouseX=0;this.MouseY=0;
if(this.Event){this.Type=String(this.Event.type).toLowerCase();
this.Element=(this.Event.target ? this.Event.target:this.Event.srcElement);
var charCode=this.Event.charCode;
var keyCode=(this.Event.keyCode ? this.Event.keyCode:charCode);
if(charCode!=0&&keyCode>=32)this.Key=String.fromCharCode(keyCode);
if(this.Key==""){this.ControlKey=Event.CK[keyCode];
if(!this.ControlKey)this.ControlKey="";}
this.Ctrl=this.Event.ctrlKey;this.Alt=this.Event.altKey;this.Shift=this.Event.shiftKey;
var mre=/mouse|click/i;
if(mre.test(this.Type)){this.MouseX=(this.Event.pageX ? this.Event.pageX:this.Event.clientX+Math.max(document.documentElement.scrollLeft,document.body.scrollLeft));
this.MouseY=(this.Event.pageY ? this.Event.pageY:this.Event.clientY+Math.max(document.documentElement.scrollTop,document.body.scrollTop));}}}
Event.CK=[];Event.CK[8]="backspace";Event.CK[9]="tab";Event.CK[13]="enter";Event.CK[27]="esc";Event.CK[33]="pageup";Event.CK[34]="pagedown";Event.CK[35]="end";Event.CK[36]="home";Event.CK[37]="left";Event.CK[38]="up";Event.CK[39]="right";Event.CK[40]="down";Event.CK[45]="insert";Event.CK[46]="delete";Event.CK[112]="f1";Event.CK[113]="f2";Event.CK[114]="f3";Event.CK[115]="f4";Event.CK[116]="f5";Event.CK[117]="f6";Event.CK[118]="f7";Event.CK[119]="f8";Event.CK[120]="f9";Event.CK[121]="f10";Event.CK[122]="f11";Event.CK[123]="f12";Event.CK[144]="numlock";Event.CK[145]="scrolllock";
setup.OK=true;
if(!DOM.Enabled){setup.OK=false;document.write("<p>Please use a more modern browser to view the showroom.</p>");}
else{if(!DOM.Id("autodirector")){setup.OK=false;document.write('<p><strong>AutoDirector error</strong>: the page is missing the &lt;div id="autodirector"&gt; tag.</p>');}
if(DOM.Tags("head").length!=1){setup.OK=false;document.write('<p><strong>AutoDirector error</strong>: the page does not have one &lt;head&gt; tag.</p>');}}
if(setup.OK)new Event(window,"load",ADstart);

