var setup=[];
setup.cssfile="http://www.mattcardy.co.uk/showroom/client/lhdcentre.css";
setup.pagesizes=[5,10,25,50,0];
setup.site="example";
setup.locale="USD";
setup.searchURL="http://www.mattcardy.co.uk/showroom/carlistsearch.php?site=example&search=";
setup.viewURL="http://www.mattcardy.co.uk/showroom/viewupdate.php?site=example&amp;id=";
setup.emailURL="http://www.mattcardy.co.uk/showroom/emailsales.php?site=example&id=";
setup.thumburl="http://www.mattcardy.co.uk/showroom/data/example/thumbs/";
setup.picurl="http://www.mattcardy.co.uk/showroom/data/example/pics/";
setup.picsize=400;
setup.licprod=true;
setup.showform=true;
setup.adverton=true;
setup.orderbyon=true;
setup.advert="powered by Corrupted Design";
setup.advertURL="http://www.corrupteddesign.com/";

var vehiclelist;
function DefineVehicles() {
	vehiclelist=[];
	vehiclelist[0]=new Vehicle(3, false, 1997, "McLaren F1", 1000, "silver", "manual", "This is the nearest you can get to a Formula 1 car on the road. The McLaren F1 is one of the fastest vehicles in the world with a top speed of 240mph and 0 to 60 in just 3.2 seconds. And all this for only half a million?!|-Example vehicle|This car is shown on the Euroam Imports example page and is _not_ for sale. Vehicle images are poor since they are highly compressed to reduce the size of the installation.|Corrupted Design allows car dealers to manage their own web showroom. Visit _((http://www.corrupteddesign.com/))_ for more information.", 500000, [7,8,9]);
	vehiclelist[1]=new Vehicle(7, true, 2008, "Rolls-Royce Phantom", 50, "bronze", "automatic", "Renowned as the worlds best cars, you will not go unnoticed in this gorgeous Rolls-Royce. It provides the ultimate in comfort with a top speed of 149mph and 0 to 60 in 5.7 seconds.|-Example vehicle|This car is shown on the Euroam Imports example page and is _not_ for sale. Vehicle images are poor since they are highly compressed to reduce the size of the installation.|Corrupted Design allows car dealers to manage their own web showroom. Visit _((http://www.corrupteddesign.com/))_ for more information.", 250000, [17,18,19]);
	vehiclelist[2]=new Vehicle(4, false, 2002, "Aston Martin V12 Vanquish", 4000, "gun metal grey", "manual", "If James Bond can drive one, then you must be able to? This car may not have an ejector seat or heat seeking missiles, but you cannot go wrong with a top speed of 190mph and stunning looks like this.|-Example vehicle|This car is shown on the Euroam Imports example page and is _not_ for sale. Vehicle images are poor since they are highly compressed to reduce the size of the installation.|Corrupted Design allows car dealers to manage their own web showroom. Visit _((http://www.corrupteddesign.com/))_ for more information.", 150000, [10,11,12]);
	vehiclelist[3]=new Vehicle(1, false, 2000, "Ferrari 360 Modena", 5000, "ferrari yellow", "tiptronic", "Is 0 to 60mph in 4.2 seconds fast enough for you? How about a top speed of 189mph? With 395bhp V8 engine and the most stunning curves, the Ferrari 360 is the ultimate car.|-Example vehicle|This car is shown on the Euroam Imports example page and is _not_ for sale. Vehicle images are poor since they are highly compressed to reduce the size of the installation.|Corrupted Design allows car dealers to manage their own web showroom. Visit _((http://www.corrupteddesign.com/))_ for more information.", 95000, [1,2,3]);
	vehiclelist[4]=new Vehicle(12, true, 2008, "Jaguar XKR", 150, "silver", "automatic", "If you want a stylish convertable, this could be the car for you. This Jaguar has stunning curves and a top speed of 155mph.|-Example vehicle|This car is shown on the Euroam Imports example page and is _not_ for sale. Vehicle images are poor since they are highly compressed to reduce the size of the installation.|Corrupted Design allows car dealers to manage their own web showroom. Visit _((http://www.corrupteddesign.com/))_ for more information.", 75000, [27]);
	vehiclelist[5]=new Vehicle(11, false, 1985, "Lamborghini Countach LP500 QV", 25000, "red", "manual", "It is impractical. It will not fit in your garage. It is not easy to get in to. But who cares - everyone will notice you in a Lamborghini, especially when you reach the top speed of 182mph.|-Example vehicle|This car is shown on the Euroam Imports example page and is _not_ for sale. Vehicle images are poor since they are highly compressed to reduce the size of the installation.|Corrupted Design allows car dealers to manage their own web showroom. Visit _((http://www.corrupteddesign.com/))_ for more information.", 65000, [25,26]);
	vehiclelist[6]=new Vehicle(8, false, 2002, "TVR Tuscan S", 4500, "black", "manual", "At just 2400lbs, the TVR provides Ferrari-like speed and looks with a \"budget\" price. From 0 to 60mph in just 3.9 seconds, you will soon be at the top speed of almost 200mph.|-Example vehicle|This car is shown on the Euroam Imports example page and is _not_ for sale. Vehicle images are poor since they are highly compressed to reduce the size of the installation.|Corrupted Design allows car dealers to manage their own web showroom. Visit _((http://www.corrupteddesign.com/))_ for more information.", 45000, [20,21]);
	vehiclelist[7]=new Vehicle(5, false, 1995, "Lotus Esprit S4S", 0, "yellow", "manual", "The Esprit may have a 30 year-old design, but it is still one of the most beautiful cars Lotus ever produced. Its turbo-charged inline 2174cc engine provides 300bhp and a top speed of 165mph.|-Example vehicle|This car is shown on the Euroam Imports example page and is _not_ for sale. Vehicle images are poor since they are highly compressed to reduce the size of the installation.|Corrupted Design allows car dealers to manage their own web showroom. Visit _((http://www.corrupteddesign.com/))_ for more information.", 45000, [13,14,15]);
	vehiclelist[8]=new Vehicle(9, true, 2008, "Vauxhall VX220 Turbo", 100, "red", "manual", "The VX220 is not one of Vauxhall's typical cars. Designed by Lotus, this vehicle provides excellent performance with gorgeous looks. 0 to 60 is just 4.7 seconds, with a top speed of 151mph.|-Example vehicle|This car is shown on the Euroam Imports example page and is _not_ for sale. Vehicle images are poor since they are highly compressed to reduce the size of the installation.|Corrupted Design allows car dealers to manage their own web showroom. Visit _((http://www.corrupteddesign.com/))_ for more information.", 26000, [22,23]);
	vehiclelist[9]=new Vehicle(6, false, 1999, "Mitsubishi 3000GT VR-4", 8000, "red", "manual", "Mitsubishi produce some stunning sports cars, and this 3000GT is no exception. Its twin-turbo 2972cc engine will power you from 0 to 60mph in just 5.5 seconds, but it still manages 25 miles to the gallon.|-Example vehicle|This car is shown on the Euroam Imports example page and is _not_ for sale. Vehicle images are poor since they are highly compressed to reduce the size of the installation.|Corrupted Design allows car dealers to manage their own web showroom. Visit _((http://www.corrupteddesign.com/))_ for more information.", 25000, [16]);
	vehiclelist[10]=new Vehicle(10, false, 1995, "Toyota MR2 Turbo", 15000, "red", "manual", "The MR2 remains one of Toyota's most popular sports cars. With stunning curves and a top speed of 145mph, it is not surprising.|-Example vehicle|This car is shown on the Euroam Imports example page and is _not_ for sale. Vehicle images are poor since they are highly compressed to reduce the size of the installation.|Corrupted Design allows car dealers to manage their own web showroom. Visit _((http://www.corrupteddesign.com/))_ for more information.", 20000, [24]);
	vehiclelist[11]=new Vehicle(2, false, 2002, "Mini Cooper S", 8000, "british racing green", "manual", "The Mini is a classic British car that is small, economical and incredible fun to drive. This Mini is a little different: a supercharged inline 1600cc engine will power you from 0 to 60 in 6.5 seconds to reach a top speed of 141mph.|-Example vehicle|This car is shown on the Euroam Imports example page and is _not_ for sale. Vehicle images are poor since they are highly compressed to reduce the size of the installation.|Corrupted Design allows car dealers to manage their own web showroom. Visit _((http://www.corrupteddesign.com/))_ for more information.", 19500, [4,5,6]);
	vehiclelist[12]=new Vehicle(13, false, 2002, "Ford Focus RS", 12000, "dark blue", "manual", "This may look like a standard Ford hatchback, but its looks are deceiving. With a top speed of 144mph and 0 to 60mph in 6.4 seconds, it will not feel like a standard Ford for long.|-Example vehicle|This car is shown on the Euroam Imports example page and is _not_ for sale. Vehicle images are poor since they are highly compressed to reduce the size of the installation.|Corrupted Design allows car dealers to manage their own web showroom. Visit _((http://www.corrupteddesign.com/))_ for more information.", 19000, [28,29,30]);
	vehiclelist[13]=new Vehicle(14, false, 1995, "Mazda RX-7", 30000, "red", "manual", "You do not see many RX-7's on the road, so this car is one way to get noticed. At 0 to 60mph in just 5.2 seconds and a top speed of 155mph, it drives as well as it looks.|-Example vehicle|This car is shown on the Euroam Imports example page and is _not_ for sale. Vehicle images are poor since they are highly compressed to reduce the size of the installation.|Corrupted Design allows car dealers to manage their own web showroom. Visit _((http://www.corrupteddesign.com/))_ for more information.", 16000, [31,32,33]);
}
setup.searchon=true;



// 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="|"+info+"|";
this.info=reRepeat(this.info, /\|\-+\|/g, "|<hr />|");
this.info=reRepeat(this.info, /\|-([^\|]+)\|/g, "|<h2>$1</h2>|");
this.info=reRepeat(this.info, /\_([^\|]+)\_/g, "{{strong}}$1{{/strong}}");
this.info=reRepeat(this.info, /!\(([^\||\(]+)\)/g, '{{img src="$1" /}}');
this.info=reRepeat(this.info, /\[([^\||\[]+)\]\(\(([^\||\(]+)\)\)/g, '{{a href="$2"}}$1{{/a}}');
this.info=reRepeat(this.info, /\(\(([^\||\(]+)\)\)/g, '{{a href="$1"}}$1{{/a}}');
this.info=reRepeat(this.info, /\|\*([^\|]+)\|/g, "|<li>$1</li>|");
this.info=reRepeat(this.info, /\|\+([^\|]+)\|/g, "|<liN>$1</liN>|");
this.info=reRepeat(this.info, /\|([^\<][^\|]+)\|/g, "|<p>$1</p>|");
this.info=reRepeat(this.info, /<\/li>\|<li>/g, "</li><li>");
this.info=reRepeat(this.info, /<\/liN>\|<liN>/g, "</liN><liN>");
this.info=reRepeat(this.info, /\|(<li>[^\|]+<\/li>)\|/g, "|<ul>$1</ul>|");
this.info=reRepeat(this.info, /\|(<liN>[^\|]+<\/liN>)\|/g, "|<ol>$1</ol>|");
this.info=reRepeat(this.info, /liN>/g, "li>");
this.info=reRepeat(this.info, /\{\{/g, "<");
this.info=reRepeat(this.info, /\}\}/g, ">");
this.info=reRepeat(this.info, /\|/g, "");
this.price=(price!=null ? price.toInt():null);
this.pics=pics;
this.searchrank=0;}
function reRepeat(str, regex, rep){var ostr;
do {ostr=str;str=str.replace(regex, rep);} while (str!=ostr);
return str;}
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);
var price;
switch(this.price){case null: price="sold";break;
case 1: price="please call";break;
default: price=this.price.format(0,true);}
template=template.replace(/\[price\]/gi, price);
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){var eNode=evt.Raised.Element;
if(eNode.nodeName.toLowerCase()!="a"&&eNode.parentNode.nodeName.toLowerCase()!="a"){evt.Raised.StopDefaultAction();
if(eNode.nodeName.toLowerCase()=="img"&&eNode.title) PopupImage(String(eNode.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");
return (head.length==1 ? head[0].appendChild(element):null);}
this.HeadRemove=function(element){var head=this.Tags("head");
return (head.length==1 ? head[0].removeChild(element):null);}
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){return (this.AttachedEvents ? this.AttachedEvents.RunEvents(new EventInformation(evt)):null);}
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);

