var setup=[];
setup.cssfile="http://www.mattcardy.co.uk/showroom/client/clean.css";
setup.pagesizes=[5,10,25,50,0];
setup.site="lhdfiat";
setup.locale="GBP";
setup.searchURL="http://www.mattcardy.co.uk/showroom/carlistsearch.php?site=lhdfiat&search=";
setup.viewURL="http://www.mattcardy.co.uk/showroom/viewupdate.php?site=lhdfiat&amp;id=";
setup.emailURL="http://www.mattcardy.co.uk/showroom/emailsales.php?site=lhdfiat&id=";
setup.thumburl="http://www.mattcardy.co.uk/showroom/data/lhdfiat/thumbs/";
setup.picurl="http://www.mattcardy.co.uk/showroom/data/lhdfiat/pics/";
setup.picsize=600;
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(5, false, 2007, "Fiat 500 1.3 TD DPF Pop Hatchback", 200, "Metallic Red", "manual", "- Description|ABS, Central Locking, Electric Windows, Immobilizer, Radio/CD/MP3, Air Bags, 1.3 TD DPF, Diesel|- Features|* Excellent Value For Money!", 121397, []);
	vehiclelist[1]=new Vehicle(39, false, 2007, "Fiat Scudo Panorama Family MPV", 24600, "Metallic Dark Grey", "manual", "- Description|ABS, ESP, Auxiliary Heating, Central Locking, Cruise Control, Electric Windows, Electric Heated Seats, Immobiliser, Navigation System, Parking Sensors, Warranty, Particulate Filter, Trailer Coupling, Leather Steering Wheel, Stereo, Auto Air Conditioning, Airbags|- Features|* Excellent Value For Money!", 21647, []);
	vehiclelist[2]=new Vehicle(38, false, 2007, "Fiat Scudo L2 MPV", 15000, "Metallic Silver", "manual", "- Description|ABS, ESP, Central Locking, Cruise Control, Electric Windows, Electric Heated Seats, Immobiliser, Parking Sensors, Warranty, Multi-Function Leather Steering Wheel, Radio/CD, Centre Armrest, Electric Adjust/Heat Outside Mirrors, Auto Air Conditioning, Airbags, Rain Sensors|- Features|* Excellent Value For Money!", 20497, []);
	vehiclelist[3]=new Vehicle(15, false, 2007, "Fiat Croma 1.9 16V Multijet Emotion Estate", 6500, "Metallic Blue", "manual", "- Description|ABS, ESP, ASR, Auto Air Con, Alloys, Parking Sensors, Cruise, Xenons, Front Fog Lights, Multi-Function Wheel, Electric Windows and Mirrors, Central Locking, Airbags, Radio/CD/MP3 with 6 Loudspeakers, Roof Rails|- Features|* Excellent Value For Money!", 19397, []);
	vehiclelist[4]=new Vehicle(44, false, 2007, "Fiat Ulysse Emotion 2.0 MPV", 12507, "Metallic Grey", "manual", "- Description|ABS, ESP, Alloy Wheels, Central Locking, Cruise Control, Electric Windows, Leather Steering Wheel, Radio/CD, CD Change Over, Auto Air Conditioning, On-Board Computer, Airbags, Electric Outside Mirrors, Immobiliser|- Features|* Excellent Value For Money!", 18897, []);
	vehiclelist[5]=new Vehicle(18, false, 2006, "Fiat Croma Emotion 2.4 Estate", 24010, "Metallic Silver", "manual", "- Description|ABS, ESP, Alloy Wheels, Central Locking, Cruise Control, Electric Windows, Electric Heated Seats, Immobiliser, Leather Interior, Parking Sensors, Navigation System, Multi Function Leather Steering Wheel, Centre Armrest, Roof Rails, Radio/CD, Electric Adjust/Heat Outside Mirrors, Auto Air Conditioning, Airbags|- Features|* Excellent Value For Money!", 17847, []);
	vehiclelist[6]=new Vehicle(9, false, 2007, "Fiat Bravo 1.9 16V Hatchback", 11990, "Metallic Red", "manual", "- Description|ABS, ESP, ASR,  Alloys,  Sport Seats, Onboard Computer, Leather Wheel, Centre Arm Rest, Electric Windows,  Parking Sensors, Central Locking, Airbags, Stereo/CD, Bluetooth, Immobiliser.|- Features|* Excellent Value For Money!", 16547, []);
	vehiclelist[7]=new Vehicle(16, false, 2006, "Fiat Croma 1.9 Multijet 16V Emotion Estate", 18200, "Metallic Black", "manual", "- Description|ABS, ESP, ASR, Alloy Wheels, Central Locking, Cruise Control, Electric Windows, Electric Heated Seats, Leather Interior, Parking Sensors, Multi Function Leather Steering Wheel, Centre Armrest, Radio/CD, Electric Adjust/Heat Outside Mirrors, Particulate Filter, Auto Air Conditioning, Airbags|- Features|* Excellent Value For Money!", 16547, []);
	vehiclelist[8]=new Vehicle(17, false, 2006, "Fiat Croma 2.4 Multijet 20V Estate", 23500, "Metallic Silver", "manual", "- Description|ABS, ESP, ASR, MSR, Alloy Wheels, Central Locking, Cruise Control, Electric Windows, Electric Heated Seats, Leather Interior, Immobiliser, Parking Sensors, Navigation System, Multi Function Leather Steering Wheel, Centre Armrest, Roof Rails, Stereo, Electric Adjust/Heat Outside Mirrors, Particulate Filter, Auto Air Conditioning, Warranty|- Features|* Excellent Value For Money!", 16547, []);
	vehiclelist[9]=new Vehicle(42, false, 2006, "Fiat Ulysee 2.2 MPV", 14600, "Metallic Blue", "manual", "- Description|ABS, ESP, Electric Windows, Central Locking, Leather Steering Wheel, Radio/CD, Airbags, Particulate Filter, Electric Adjust/Heat Outside Mirrors, Immobiliser, Warranty|- Features|* Excellent Value For Money!", 16547, []);
	vehiclelist[10]=new Vehicle(41, false, 2007, "Fiat Sedici Emotion 4x4", 10500, "Metallic Gold", "manual", "- Description|ABS, Alloy Wheels, Central Locking, Electric Windows, Electric Heated Seats, Four Wheel Drive,  Immobiliser, Leather Steering Wheel, Radio/CD, MP3, Auto Air Conditioning, On-Board Computer, Airbags, Electric Adjust Outside Mirrors, Roof Rails, Particulate Filter, Warranty|- Features|* Excellent Value For Money!", 15897, []);
	vehiclelist[11]=new Vehicle(11, false, 2007, "Fiat Bravo 1.9 Multijet 8V Emotion Hatchback", 19990, "Metallic Blue", "manual", "- Description|ABS, ESP, Alloy Wheels, Central Locking, Electric Windows, Electric Heated Seats, Parking Sensors, Multi Function Leather Steering Wheel, Centre Armrest, Stereo, Particulate Filter, Airbags, Auto Air Conditioning, Warranty|- Features|* Excellent Value For Money!", 15747, []);
	vehiclelist[12]=new Vehicle(33, false, 2007, "Fiat Multipla Dynamic 1.6 MPV", 25450, "Metallic Surf Blue", "manual", "- Description|ABS, Air Con, Alloys, Onboard Computer,  ISO-FIX, Multi-Function Leather Wheel, Electric Windows and Mirrors, Central Locking, Airbags, Radio/CD, Immobiliser|- Features|* Excellent Value For Money!", 15497, []);
	vehiclelist[13]=new Vehicle(12, false, 2007, "Fiat Bravo 1.9 Multijet Dynamic Hatchback", 7500, "Metallic Red", "manual", "- Description|ABS, ESP, ASR, Alloy Wheels, Central Locking, Electric Windows, Electric Heated Seats, Parking Sensors, Multi Function Leather Steering Wheel, Centre Armrest, Radio/CD, Bluetooth, Particulate Filter, Electrical Outside Mirror, Airbags, Air Conditioning, Immobiliser, Full Service History, Warranty|- Features|* Excellent Value For Money!", 15197, []);
	vehiclelist[14]=new Vehicle(7, false, 2007, "Fiat 500 1.4 16V Lounge Hatchback", 6000, "Metallic White", "manual", "- Description|ABS, Alloy wheels, Central locking, Electric windows, ESP, Sport Style, Leather Multi-Function Steering Wheel, Immobilizer, Warranty|- Features|* Excellent Value For Money!", 15047, []);
	vehiclelist[15]=new Vehicle(13, false, 2007, "Fiat Bravo Emotion 1.9 Multijet Hatchback", 9410, "Metallic Blue", "manual", "- Description|ABS, ESP, ASR, Alloy Wheels, Electric Windows, Electric Heated Seats, Parking Sensors, Multi Function Leather Steering Wheel, Centre Armrest, Radio/CD, Bluetooth, Particulate Filter, Electrical Outside Mirror, Auto Air Conditioning|- Features|* Excellent Value For Money!", 14847, []);
	vehiclelist[16]=new Vehicle(10, false, 2007, "Fiat Bravo 1.9 Multijet Hatchback", 9250, "Metallic Blue", "manual", "- Description|ABS, ESP, ASR, Alloy Wheels, Electric Windows, Electric Heated Seats, Central Locking, Multi Function Leather Steering Wheel, Centre Armrest, Auto Air Conditioning, Radio/CD, MP3, Bluetooth, Particulate Filter, Immobiliser, Warranty|- Features|* Excellent Value For Money!", 14047, []);
	vehiclelist[17]=new Vehicle(40, false, 2007, "Fiat Sedici 1.6 16V Estate", 17700, "Metallic Black", "manual", "- Description|ABS, ESP, Alloy Wheels, Central Locking, Electric Windows, Electric Heated Seats, Four Wheel Drive, Full Service History, Leather Interior, Immobiliser, Multi Function Leather Steering Wheel, Radio/CD, Auto Air Conditioning, Airbags, Electric Adjust/Heat Outside Mirrors, Roof Rails|- Features|* Excellent Value For Money!", 13497, []);
	vehiclelist[18]=new Vehicle(20, false, 2007, "Fiat Doblo 1.4 8V Dynamic Mini MPV", 7100, "Metallic Blue", "manual", "- Description|ABS, Air Con, Centre Armrests, Front Fog Lights, Electric Windows, Central Locking, Airbags, Radio Prep, 6 Loudspeakers|- Features|* Excellent Value For Money!", 13297, []);
	vehiclelist[19]=new Vehicle(32, false, 2007, "Fiat Idea 1.3 Multijet 16V Emotion MPV", 8500, "Metallic Silver", "manual", "- Description|ABS, Central Locking, Electric Windows, Electric Heated Seats, Warranty, Alarm, Leather Steering Wheel, Radio/CD, Centre Armrest, On-Board Computer, Electric Adjust Outside Mirrors, Air Conditioning, Airbags|- Features|* Excellent Value For Money!", 13147, []);
	vehiclelist[20]=new Vehicle(1, false, 2008, "Fiat 500 1.2 8V Lounge Hatchback", 0, "Metallic Grey", "manual", "- Description|ABS, Alloy Wheels, Central Locking, Electric Windows, Immobilizer, Air Bags, Radio/CD/MP3 Player, 1.2 Litre 8V, Petrol|- Features|* Excellent Value For Money!", 13047, []);
	vehiclelist[21]=new Vehicle(6, false, 2007, "Fiat 500 1.4 16V Lounge Hatchback", 7500, "Metallic Silver", "manual", "- Description|ABS, ESP, Alloy Wheels, Electric Windows, Central Locking, On-Board Computer, Multi Function Leather Steering Wheel, Radio/CD, Airbags, Bluetooth, Electrical Adjust Outside Mirrors, Sunroof, Immobiliser|- Features|* Excellent Value For Money!", 12647, []);
	vehiclelist[22]=new Vehicle(19, false, 2007, "Fiat Doblo 1.4 8V Dynamic MPV", 12185, "Metallic Grey/Silver", "manual", "- Description|Alloys, Air Con, Parking Sensors, Front Fog Lights, Radio/CD|- Features|* Excellent Value For Money!", 12597, []);
	vehiclelist[23]=new Vehicle(8, false, 2008, "Fiat 500 Sport 1.3 Multijet 16V DPF Hatchback", 6233, "Metallic Red", "manual", "- Description|Air Con, ABS, Alloy Wheels, Central Locking, Electric Windows, Full Service History, Immobilizer, Leather Seats, Radio/CD Player, Air Bags, 1.3 Litre 16V DPF, Diesel|- Features|* Excellent Value For Money!", 12347, []);
	vehiclelist[24]=new Vehicle(4, false, 2007, "Fiat 500 1.3 Multijet 16V DPF Loung Hatchback", 890, "Metallic Blue", "manual", "- Description|ABS, Alloy Wheels, Central Locking, Electric Windows, Full Service History, Immobilizer, Particulate Filter, Sunroof, Radio/CD Player, 1.3 Litre 16V DPF, Diesel|- Features|* Excellent Value For Money!", 12347, []);
	vehiclelist[25]=new Vehicle(3, false, 2007, "Fiat 500 1.2 8V Sport Hatchback", 2664, "Silver Metallic", "manual", "- Description|ABS, Alloy Wheels, Central Locking, Electric Windows, ESP, Full Service History, Immobilizer, Leather Seats, Particulate Filter, Radio/CD Player, MP3 and Bluetooth Function, Steering Wheel Audio Controls, 1.2 Litre 8V, Diesel|- Features|* Excellent Value For Money!", 12047, []);
	vehiclelist[26]=new Vehicle(2, false, 2008, "Fiat 500 1.2 8V Pop Hatchback", 6, "Metallic Red", "manual", "- Description|ABS, Alloy Wheels, Central Locking, Electric Windows, Immobilizer, Air Bags, Radio/CD/MP3 Player, 1.2 Litre 8V, Petrol|- Features|* Excellent Value For Money!", 11547, []);
	vehiclelist[27]=new Vehicle(23, false, 2007, "Fiat Doblo 1.9 Multijet 8V DPF Dyna Van", 36200, "Metallic Black", "manual", "- Description|ABS, Central Locking, Electric Windows, Full Service History, Immobilizer, Parking Sensor, Particulate Filter, 1.9 Litre 8V DPF, Diesel|- Features|* Excellent Value For Money!", 11397, []);
	vehiclelist[28]=new Vehicle(24, false, 2007, "Fiat Doblo 1.9 Multijet 8V DPF Dyna Van", 10500, "Metallic Gold", "manual", "- Description|ABS, Electric Windows, Immobilizer, Parking Sensor, Particulate Filter, Radio/CD/MP3 Player, 1.9 Litre 8V DPF, Diesel|- Features|* Excellent Value For Money!", 11247, []);
	vehiclelist[29]=new Vehicle(26, false, 2007, "Fiat Doblo 1.9 Multijet 8V Trofeo Van", 14685, "Metallic White", "manual", "- Description|ABS, Air Bags, Immobilizer, 1.9 Litre 8V, Diesel|- Features|* Excellent Value For Money!", 11047, []);
	vehiclelist[30]=new Vehicle(29, false, 2007, "Fiat Doblo Cargo Maxi 1.4 Van", 9685, "Silver Metallic", "manual", "- Description|Cental Locking, Electric Windows, Immobilizer, PAS, Air Bags, Radio/CD Player, 1.4 Litre, Petrol|- Features|* Excellent Value For Money!", 11047, []);
	vehiclelist[31]=new Vehicle(25, false, 2006, "Fiat Doblo 1.9 Multijet 8V Dynamic Van", 38200, "Metallic Blue", "manual", "- Description|ABS, Central Locking, Electric Windows, Immobilizer, PAS, Radio/Cd Player, 1.9 Litre 8V, Diesel|- Features|* Excellent Value For Money!", 10697, []);
	vehiclelist[32]=new Vehicle(30, false, 2006, "Fiat Doblo KWA 1.9 JTD Multijet 8V Van", 30289, "Metallic White", "manual", "- Description|ABS, Immobilizer, Air Bags, Radio/CD Player, 1.9 Litre JTD Multijet 8V, Diesel|- Features|* Excellent Value For Money!", 10347, []);
	vehiclelist[33]=new Vehicle(27, false, 2007, "Fiat Doblo Cargo 1.3 JTD SX Van", 32111, "Metallic White", "manual", "- Description|ABS, Central Locking, Electric Windows, Immobilizer, Radio, Alloy Wheels, 1.3 Litre JTD, Diesel|- Features|* Excellent Value For Money!", 9747, []);
	vehiclelist[34]=new Vehicle(22, false, 2005, "Fiat Doblo 1.9 JTD Dynamic Van", 47000, "Metallic Yellow", "manual", "- Description|ABS, Electric Windows, Immobilizer, Radio, Air Bags, 1.9 JTD, Diesel|- Features|* Excellent Value For Money!", 9647, []);
	vehiclelist[35]=new Vehicle(31, false, 2006, "Fiat Doblo Trofeo 1.9 JTD Van", 32000, "Silver Metallic", "manual", "- Description|ABS, Alloy Wheels, Central Locking, Electric Windows, Full Service History, Immobilizer, PAS, Air Bags, Radio/CD Player, 1.9 Litre JTD, Diesel|- Features|* Excellent Value For Money!", 9597, []);
	vehiclelist[36]=new Vehicle(43, false, 2005, "Fiat ULYSSE 2.2 JTD 16v MPV", 50000, "Silver", "manual", "- Description|7 Grey Cloth Seats, Auto Dual Climate, Alloys, Cruise, PDC, Auto Dim Mirror, Electric Sliding Rear Doors, Electric Windows, Electric Folding, Heated Mirrors, Integrated Sunblinds in Rear, Remote Locking, Radio/CD, Carpet Mats, Airbags|- Features|* Excellent Value For Money!", 9297, []);
	vehiclelist[37]=new Vehicle(28, false, 2005, "Fiat Doblo Cargo 1.9 L JTD SX Panor 4x4", 43500, "Silver Metallic", "manual", "- Description|ABS, Centrral Locking, Electric Windows, Full Service History, Immobilizer, PAS, Radio/CD Player, 1.9 Litre JTD SX, Diesel|- Features|* Excellent Value For Money!", 8847, []);
	vehiclelist[38]=new Vehicle(21, false, 2005, "Fiat Doblo 1.9 JTD Van", 25000, "Blue Metallic", "manual", "- Description|ABS, Alloy Wheels, Central, Electric Windows, Full Service History, Immobilizer, Air Bags, Radio/CD Player, 1.9 Litre JTD Diesel|- Features|* Excellent Value For Money!", 8747, []);
	vehiclelist[39]=new Vehicle(35, false, 2006, "Fiat Punto 1.3 Multijet D Hatchback", 41296, "Silver Metallic", "manual", "- Description|ABS, Central Locking, Electric Windows, Full Service History, Immobilizer, Navigation System, Alloy Wheels, Radio/CD Player with MP3 Function, 1.3 Litre, Diesel|- Features|* Excellent Value For Money!", 8347, []);
	vehiclelist[40]=new Vehicle(34, false, 2007, "Fiat Panda 1.2 Dynamic Hatchback", 13640, "Metallic Samba Orange", "manual", "- Description|ABS, Air Con, Alloys, Trip Computer, Electric Windows, Radio/CD, Roof Rails, Immobiliser|- Features|* Excellent Value For Money!", 8297, []);
	vehiclelist[41]=new Vehicle(36, false, 2005, "Fiat Punto 1.3 Multijet Trofeo D Hatchback", 65708, "Metallic Black", "manual", "- Description|ABS, Central Locking, Electric Windows, Immobilizer, PAS, Radio/CD Player, Air Bag, 1.3 Litre, Diesel|- Features|* Excellent Value For Money!", 7947, []);
	vehiclelist[42]=new Vehicle(37, false, 2005, "Fiat Punto 5L 1.3 JTD Hatchback", 50000, "Silver Metallic", "manual", "- Description|ABS, Central Locking, Electric Windows, Full Service History, Immobilizer, 1.3 Litre JTD|- Features|* Excellent Value For Money!", 7697, []);
	vehiclelist[43]=new Vehicle(14, false, 2000, "Fiat Coupe 1.8 16V Coupé", 76000, "Metallic Dark Metal Marine Blu", "manual", "- Description|Black Cloth Interior, Auto Climate Control, 0Z 16” Alloys, Front Fog Lights, Black Interior Trim, Electric Windows and Mirrors, Remote Central Locking, Amplifier, Sony Stereo System With CD Changer, Alarm System|- Features|* Excellent Value For Money!", 5497, []);
}
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);

