var setup=[];
setup.cssfile="http://www.mattcardy.co.uk/showroom/client/lhdcentre.css";
setup.pagesizes=[5,10,25,50,0];
setup.site="lhddodge";
setup.locale="GBP";
setup.searchURL="http://www.mattcardy.co.uk/showroom/carlistsearch.php?site=lhddodge&search=";
setup.viewURL="http://www.mattcardy.co.uk/showroom/viewupdate.php?site=lhddodge&amp;id=";
setup.emailURL="http://www.mattcardy.co.uk/showroom/emailsales.php?site=lhddodge&id=";
setup.thumburl="http://www.mattcardy.co.uk/showroom/data/lhddodge/thumbs/";
setup.picurl="http://www.mattcardy.co.uk/showroom/data/lhddodge/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(21, false, 2006, "Dodge Viper SRT10 Roadster", 100, "Red", "manual", "- Description|Car not for sale in Europe as it doesn't have a COC. Export Only. Price not including Local taxes or duty.|- Features|* European Equipment Grp|* Fog Lamps (Frt&Rr)|* AM/FM CD RDS Radio|* 7 Speakers Inc Subwoofer/Tweeters|* 310 Watt Amplifier|* Black Soft Top|* 600 Amp Maintenance Free Battery|* Passenger Air Bag On/Off Switch|* Next Gen Multistage Front Air Bags|* Floor Carpet|* Trunk Dress-Up|* Anti-Spin Differential Rear Axle|* Tinted Windshield Glass|* Power Mirrors|* Keyless Entry|* A/C|* Sentry Key Theft Deterrent Sys|* 330 KPH Primary Speedometer|* Tachometer|* Speed Sensitive Power Locks|* Pwr Windows|* Sport Suspension|* 18X10.0 19X13.0 Aluminum Wheels (no COC)", 45000, []);
	vehiclelist[1]=new Vehicle(1, true, 2009, "Dodge Challenger Coupe", 0, "Black Metallic", "", "- Description|6.1L SRT8, Dark Slate Grey Leather, Electric Sunroof, GoodYear Tyres, Navigation System - In stock Immedite Delivery|- Features|* US Import - Price Excludes Shipping|* Duty & VAT", 41995, []);
	vehiclelist[2]=new Vehicle(2, true, 2009, "Dodge Challenger Coupe", 0, "Hemi Orange", "", "- Description|6.1L SRT8, Dark Slate Grey Leather, Good Year Tyres, Navigation, Sunroof|- Features|* US Import - Price Excludes Shipping|* Duty & VAT", 40595, []);
	vehiclelist[3]=new Vehicle(3, true, 2009, "Dodge Challenger Coupe", 0, "Black Metallic", "", "- Description|6.1L SRT8, Dark Slate Grey Leather, Good Year Tyres, Navigation, Sunroof|- Features|* US Import - Price Excludes Shipping|* Duty & VAT", 39995, []);
	vehiclelist[4]=new Vehicle(4, true, 2009, "Dodge Challenger Coupe", 0, "Hemi Orange", "", "- Description|6.1L SRT8, Dark Slate Grey Leather, Good Year Tyres, Navigation, Sunroof|- Features|* US Import - Price Excludes Shipping|* Duty & VAT", 39995, []);
	vehiclelist[5]=new Vehicle(5, true, 2009, "Dodge Challenger Coupe", 0, "Bright Silver", "", "- Description|6.1L SRT8, Dark Slate Grey Leather|- Features|* US Import - Price Excludes Shipping|* Duty & VAT", 39995, []);
	vehiclelist[6]=new Vehicle(6, true, 2009, "Dodge Challenger Coupe", 0, "Hemi Orange", "", "- Description|6.1L SRT8, Dark Slate Grey, Sunroof, Good Year Tyres, Navigation System|- Features|* US Import - Price Excludes Shipping|* Duty & VAT", 37995, []);
	vehiclelist[7]=new Vehicle(30, true, 2009, "DODGE VIPER SRT-10 2-DOOR CONVERTIBLE 8.3", 26, "black", "automatic", "Fog lamps, CD radio, 7 speakers and subwoofer, Black soft top, Air bags, LSD, Tinted widows, sport suspension, Alloy wheels. Not available for sale in europe. For more information please fill in the form below or call 0207 993 8447.", 36995, []);
	vehiclelist[8]=new Vehicle(15, true, 2009, "Dodge Nitro SLT", 0, "Silver", "automatic", "- Description|Supplied with COC, UK OTR price 27895 Includes Duty, Vat and Reg. Price below is Export Price ex-Germany|- Features|* European Equip Grp|* Deep Tint Sunscreen Glass|* Euro Stage IV Emission|* AM/FM 6 Disc DVD MP3 Radio (Euro)|* 8 Amplified Speakers Plus Subwoofer|* UConnect Hands-Free Communication|* YES Essentials Seat Fabric|* Elect Stability Prog|* Supp Side Air Bags|* LOAD N' GO Slide Out Floor|* Power Heated Mirrors F-Away|* Keyless Entry w/Immobilizer|* Air Cond w/Auto Temp Ctrl|* Spd Sensitive Power Locks|* Power Driver Seat|* Power Windows|* Frt/Rr Fog Lamps|* Security Alarm|* Speed Ctrl|* Leather Wrapped Steering Wheel|* Rr Park Assist Sys|* 17X7.0 Aluminum Wheels|* COC", 22895, []);
	vehiclelist[9]=new Vehicle(14, true, 2009, "Dodge Nitro SLT", 0, "Black", "automatic", "- Description|Supplied with COC, UK OTR price 26695 Includes Duty, Vat and Reg. Price below is Export Price ex-Germany|- Features|* European Equipment Grp|* All Spd Traction Control|* Rr View Auto Dim Mirror w/Microphone|* Power Sunroof|* Heated Front Seats|* Premium Security Alarm|* Euro Stage IV Emission|* 8 Amplified Speakers Plus Subwoofer|* AM/FM 6 Disc DVD MP3 Radio (Euro)|* Supplemental Side Air Bags|* Load N' Go Slide Out Floor|* Tinted Windshield Glass|* Power Heated Mirrors Fold-Away|* Keyless Entry w/Immobilizer|* Air Conditioning w/Auto Temp Control|* 240 KPH Primary Speedometer|* Speed Sensitive Power Locks|* Power Express Windows|* Power Driver Seat|* Fog Lamps|* Rear Fog Lamps|* Rear Park Assist System|* Speed Control|* 4WD/4X4|* 20X7.5 Alumi Platinum Clad Wheels|* COC", 21695, []);
	vehiclelist[10]=new Vehicle(16, true, 2009, "Dodge Avenger SXT", 0, "Black", "automatic", "- Description|Supplied with COC, UK OTR price 26695 Includes Duty, Vat and Reg. Price below is Export Price ex-Germany|- Features|* European Equipment Group|* Sound Grp|* Supplemental Frt Seat Side Air Bags|* Rr View Auto Dim Mirror w/Microphone|* Power Heated Mirrors F-Away|* Power Express Sunroof|* Air Conditioning w/Auto Temp Control|* Security Alarm. Euro Stage IV Emission|* MW/FM/CD/DVD/HDD/MP3 Radio|* 6 Boston Acoustics Speakers|* Luxury Frt/Rr Floor Mats|* 240 KPH Primary Speedometer|* Power Locks|* Power Driver Seat|* Power Frt Windwows|* Fog Lamps|* Speed Control|* Heated/Cooled Frt Console Cupholder|* 18X7.0 Aluminum Wheels|* COC", 21695, []);
	vehiclelist[11]=new Vehicle(26, true, 2009, "DODGE CALIBER SRT4", 100, "black", "automatic", "Heated front seats, Electric sunroof, Steering wheel controls, 13 speakers kicker, Subwoofer, Air bags, Electric folding mirrors, Air conditioning with cooled box, Alloy wheels. For more information please fill in the form below or call 0207 993 8447.", 19995, []);
	vehiclelist[12]=new Vehicle(27, true, 2009, "DODGE CALIBER SRT4", 100, "black", "manual", "Heated front seats, Electric sunroof, 13 speakers kicker, Subwoofer, DVD/CD/MP3 radio, Airbags, Electric fold away mirrors, Air conditioning with cooled box, Frog lamps, Alloy wheels. For more information please fill in the form below or call 0207 993 8447.", 19995, []);
	vehiclelist[13]=new Vehicle(28, true, 2009, "DODGE NITRO SLT 4X4 2.8 TD", 100, "silver", "automatic", "Tinted windows, Air bags, Electric fold away mirrors, Frog lamps, Air conditioning, Hands free, 8 speakers and subwoofer, Slide out floor, Alloy wheels. For more information please fill in the form below or call 0207 993 8447.", 19995, []);
	vehiclelist[14]=new Vehicle(11, true, 2009, "Dodge Caliber SRT4", 0, "Black", "manual", "- Description|Supplied with COC, UK OTR price 24495 Includes Duty, Vat and Reg. Price below is Export Price ex-Germany|- Features|* European Equipment Group|* Brake Assist|* Heated Front Seats|* Power Express Open/Close Sunroof|* Steering Wheel Mounted Audio Ctrls|* 13 SPKRS Kicker SRT High Perf Audio|* 322 Watt Kicker SRT Amplifier|* 200 Watt Kicker SRT Subwoofer|* 2 Articulating Liftgate Speakers|* AM/FM 6 Disc DVD MP3 Radio (Euro)|* Anti-Lock 4-Wheel Disc Brakes|* Supp. Side Curtain Frt/Rr Air Bags|* Power Heated Mirrors Fold-Away|* Keyless Entry|* Sentry Key Theft Deterrent Sys|* A/C w/Chill Zone Storage|* Turbo Boost Gauge|* 300 KPH Primary Speedometer|* Power Windows|* Speed Sensitive Power Locks|* Security Alarm|* 19X7.5 Polished Aluminum SRT Wheels|*  COC", 19495, []);
	vehiclelist[15]=new Vehicle(12, true, 2009, "Dodge Caliber SRT4", 0, "Black", "manual", "- Description|Supplied with COC, UK OTR price 24495 Includes Duty, Vat and Reg. Price below is Export Price ex-Germany|- Features|* European Equipment Group|* Brake Assist|*   Heated Front Seats|*   Power Express Open/Close Sunroof|*  AM/FM 6 Disc DVD MP3 Radio (Euro)|*  13 SPKRS Kicker SRT High Perf Audio|* 322 Watt Kicker SRT Amplifier|*   200 Watt Kicker SRT Subwoofer|* Supp. Side Curtain Frt/Rr Air Bags|* Power Heated Mirrors|* Fold-Away|*   Keyless Entry|* Sentry Key Theft Deterrent System|*   A/C with Chill Zone (TM) Storage|* 300 KPH Primary Speedometer|* Power Windows Driver One-Touch|*  Speed Sensitive Power Locks|*  Frt/Rr Fog Lamps|* Security Alarm|* Speed Control|*  19X7.5 Polished Aluminum SRT Wheels|* COC", 19495, []);
	vehiclelist[16]=new Vehicle(18, true, 2009, "Dodge Caliber SXT", 0, "Black", "manual", "- Description|Supplied with COC, UK OTR price 24495 Includes Duty, Vat and Reg. Price below is Export Price ex-Germany|- Features|* European Equipment Grp|* Supplemental Side Curtain Frt/Rr Air Bags|* Heated Frt Seats|* Power Heated Mirrors Fold-Away|* Rear Fog Lamps|* Security Alarm|* Luxury Front Rear Floor Mats|* AM/FM Compact Disc RDS Radio|* Boston Acoustic Spkrs w/Subwoofer|* 2 Articulating Liftgate Speakers|* Keyless Entry|* A/C with Chill Zone Storage|* 240 KPH Primary Speedometer|* Power Windows|* Speed Sensitive Power Locks|* FWD|* 18X7.0 Aluminum Wheels; COC", 19495, []);
	vehiclelist[17]=new Vehicle(29, true, 2009, "DODGE AVENGER SXT 2.0 DIESEL", 100, "black", "automatic", "Air bags, Electric sunroof, Air conditioning, CD/DVD/MP3/HDD radio, Frog lamps, Heated/Cooled cup holder, Diming mirror, Alloy wheels. For more information please fill in the form below or call 0207 993 8447.", 18995, []);
	vehiclelist[18]=new Vehicle(13, true, 2009, "Dodge Nitro SXT", 0, "White", "automatic", "- Description|Supplied with COC, UK OTR price 23495 Includes Duty, Vat and Reg. Price below is Export Price ex-Germany|- Features|* European Equip Grp|* All Spd Traction Ctrl|* Luxury Frt/Rr Floor Mats|* Deep Tint Sunscreen Glass|* Power Heated Mirrors F/Away|* Euro Stage IV Emission|* Spd Ctrl|* Park Assist Sys|* Supp Side Air Bags|* Part Time 4WD|* Keyless Entry w/Immobilizer|* Air Cond|* Power Windows|* Spd Sensitive Power Locks|* Rr Window Defroster|* Security Alarm|* AM/FM DVD MP3 Radio (BUX)|* 4 Spkrs|* Tire Pressure Monitoring Warning|* 16X6.5 Aluminum Wheels|* COC", 18495, []);
	vehiclelist[19]=new Vehicle(35, false, 2009, "DODGE  CALIBER SRT4 2.4L TURBO", 0, "black", "manual", "Heated front seats, electric sunroof, Electric mirrors, Air bags, Air conditioning with cooled box, Fog lamps, Aloy wheels, 6 disc CD/DVDMP3 radio. For more information please fill in the form below or call 0207 993 8447.", 17995, []);
	vehiclelist[20]=new Vehicle(9, true, 2009, "Dodge Journey SXT", 0, "Silver", "automatic", "- Description|Car not for sale in Europe as it doesn't have a COC. Export Only. Price not including Local taxes or duty.|- Features|* Power Express Open/Close Sunroof|* ATC w/3 Zone Temp Control|* Rr Air Cond w/Heater|* Power Folding Heated Mirrors|* Euro Stage IV Emission|* AM/FM 6 Disc DVD MP3 Radio (Euro)|* Keyless Entry|* Sentry Key Theft Deterrent Sys|* Power Drvr Seat|* Power Windows|* Roof Rack|* Power Locks|* Speed Control|* 16X6.5 Aluminum Wheels (no COC)", 16995, []);
	vehiclelist[21]=new Vehicle(10, true, 2009, "Dodge Journey SXT", 0, "Silver", "automatic", "- Description|Car not for sale in Europe as it doesn't have a COC. Export Only. Price not including Local taxes or duty.|- Features|* Power Express Open/Close Sunroof|* ATC w/3 Zone Temp Control|* Rr Air Cond w/Heater|* Power Folding Heated Mirrors|* Euro Stage IV Emission|* AM/FM 6 Disc DVD MP3 Radio (Euro)|* Keyless Entry|* Sentry Key Theft Deterrent Sys|* Power Drvr Seat|* Power Windows|* Roof Rack|* Power Locks|* Speed Control|* 16X6.5 Aluminum Wheels (no COC)", 16995, []);
	vehiclelist[22]=new Vehicle(32, true, 2009, "DODGE CALIBER SXT 2.0 DIESEL", 0, "black", "manual", "Air bags, Heated front seats, Electric mirrors, Air conditioning with cooled box, Rear fog lamps, Aloy wheels, CD radio with sound system. For more information please fill in the form below or call 0207 993 8447.", 16995, []);
	vehiclelist[23]=new Vehicle(7, true, 2009, "Dodge Journey SE", 0, "Black", "automatic", "- Description|Car not for sale in Europe as it doesn't have a COC. Export Only. Price not including Local taxes or duty.|- Features|* Traction Control|* ATC w/3 Zone Temp Control|* Rear Air Conditioning w/Heater|* Roof Rack|* Euro Stage IV Emission|* Speed Control|* AM/FM 6 Disc DVD MP3 Radio (Euro)|* Electronic Stability|* Supp. Side Curtain All Rows Air Bags|* Power Heated Fold-Away Mirrors|* Keyless Entry|* Sentry Key Theft Deterrent System|* 240 KPH Primary Speedometer|* Power Locks|* Power Windows|* 16X6.5 Steel Wheels (no COC)", 15995, []);
	vehiclelist[24]=new Vehicle(8, true, 2009, "Dodge Journey SE", 0, "Silver", "automatic", "- Description|Car not for sale in Europe as it doesn't have a COC. Export Only. Price not including Local taxes or duty.|- Features|* Traction Control|* ATC w/3 Zone Temp Control|* Rear Air Conditioning w/Heater|* Roof Rack|* Euro Stage IV Emission|* Speed Control|* AM/FM 6 Disc DVD MP3 Radio (Euro)|* Electronic Stability|* Supp. Side Curtain All Rows Air Bags|* Power Heated Fold-Away Mirrors|* Keyless Entry|* Sentry Key Theft Deterrent System|* 240 KPH Primary Speedometer|* Power Locks|* Power Windows|* 16X6.5 Steel Wheels (no COC)", 15995, []);
	vehiclelist[25]=new Vehicle(24, true, 2009, "DODGE JOURNEY SXT", 100, "silver", "automatic", "All terrain traction control, Air conditioning, Electric folding mirrors, Electric sunroof, 6 disc CD/DVD/MP3 radio, Roof Rack. Not available for sale in Europe. For more information please fill in the form below or call 0207 993 8447.", 15995, []);
	vehiclelist[26]=new Vehicle(25, true, 2009, "DODGE JOURNEY SXT", 100, "silver", "automatic", "All terrain traction control, Electric sunroof, Electric folding mirrors, 6 Disc DVD/CD/MP3 radio, Roof Rack. Not availible for sale in Europe. For more information please fill in the form below or call 0207 993 8447.", 15995, []);
	vehiclelist[27]=new Vehicle(22, true, 2009, "DODGE JOURNEY SE", 0, "black", "automatic", "Traction control, Air conditioning, Roof rack, Six disc cd/dvd MP3 radio, Air bags, Electric folding mirrors. Not available for sale in Europe. For more information please fill in the form below or call 0207 993 8447.", 14995, []);
	vehiclelist[28]=new Vehicle(23, true, 2009, "DODGE JOURNEY SE", 100, "silver", "automatic", "Traction control, Air conditioning, Roof Rack, 6 Disc CD/DVD/MP3 radio, Electric folding mirrors. Not availablefor sale in europe. For more information please fill in the form below or call 0207 993 8447.", 14995, []);
	vehiclelist[29]=new Vehicle(19, false, 2007, "Dodge Caliber RT", 3000, "Blue", "manual", "- Description|Supplied with COC, UK OTR price 17250 Includes Duty, Vat and Reg. Price below is Export Price ex-Germany|- Features|* European Equip Grp|* 9-Spkr Boston Acoustics Sound Grp|* Elect Stability Prog|* Frt/Rr Floor Mats|* Heated Front Seats|* Blue Seat Insert|* Power Express Sunroof|* Air Cond|* Speed Ctrl|* 6CD/Full Map GPS Display Nav Radio|* 18\" Aluminum Chrome Wheels|* COC", 13000, []);
	vehiclelist[30]=new Vehicle(17, false, 2008, "Dodge Caliber SXT", 3000, "Orange", "automatic", "- Description|Car not for sale in Europe as it doesn't have a COC. Export Only. Price not including Local taxes or duty.|- Features|* European Equipment Grp|* Electronic Stability|* Heated Front Seats|* Power Express Open/Close Sunroof|*   Boston Acoustic Spkrs w/Subwoofer|* 2 Articulating Liftgate Speakers|* AM/FM Compact Disc RDS Radio|* Supp. Side Curtain Frt/Rr Air Bags|*   Luxury Frt/ Rr Floor Mats|* Keyless Entry|* Sentry Key Theft Deterrent Sys|* A/C with Chill Zone Storage|* Speed Sensitive Power Locks|* Power Windows|* 18X7.0 Aluminum Wheels (no COC)", 12495, []);
	vehiclelist[31]=new Vehicle(20, false, 2007, "Dodge Caravan SE", 5000, "White", "automatic", "- Description|Car not for sale in Europe as it doesn't have a COC. Export Only. Price not including Local taxes or duty.|- Features|* Sunscreen Glass|* Power Windows|* Power Locks|* Speed Ctrl|* Power Frt Disc/Rr Drum Brakes|* Drvr Inflatable Knee-Bolster Air Bag|* Easy-Out Roller Seats|* Deluxe Bench/Rr Bench Seating|* Air Cond|* AM/FM CD Radio w/Chgr Ctrl|* 15X6.5 Steel Wheels|* no COC (US Specs)", 12000, []);
	vehiclelist[32]=new Vehicle(31, false, 2008, "DODGE CALIBER SXT 2.0 VVT", 1300, "orange", "automatic", "Heated front seats, Electric sun roof, Air bags, Air conditioning with cooled box, CD radio with sound system, Aloy wheels. Not available for sale in Europe. For more information please fill in the form below or call 0207 993 8447.", 11995, []);
	vehiclelist[33]=new Vehicle(33, false, 2007, "DODGE CALIBER R/T 2.4 DUAL VVT", 1700, "blue", "manual", "Heated front seats, Electric sunroof, Air conditioning, 6 CD sat nav radio, Aloy wheels. For more information please fill in the form below or call 0207 993 8447.", 11995, []);
	vehiclelist[34]=new Vehicle(34, false, 2007, "DODGE CARAVAN SE 2", 2800, "white", "automatic", "Air conditioning, Air bags, CD radio. Not available for sale in Europe. For more information please fill in the form below or call 0207 993 8447.", 10995, []);
}
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);

