var setup=[];
setup.cssfile="http://www.mattcardy.co.uk/showroom/client/clean.css";
setup.pagesizes=[5,10,25,50,0];
setup.site="lhdastonmartin";
setup.locale="GBP";
setup.searchURL="http://www.mattcardy.co.uk/showroom/carlistsearch.php?site=lhdastonmartin&search=";
setup.viewURL="http://www.mattcardy.co.uk/showroom/viewupdate.php?site=lhdastonmartin&amp;id=";
setup.emailURL="http://www.mattcardy.co.uk/showroom/emailsales.php?site=lhdastonmartin&id=";
setup.thumburl="http://www.mattcardy.co.uk/showroom/data/lhdastonmartin/thumbs/";
setup.picurl="http://www.mattcardy.co.uk/showroom/data/lhdastonmartin/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(38, true, 2009, "Aston Martin AMV8, DB9, DBS ALL MODELS", 0, "your choice", "automatic", "We are able to supply brand new LHD Aston Martin, All Models Tax Free for export. For more information fill in the form below. Thank you.|Choose your own colours specification and features. Prices on application. Current Delivery Time - 5-6 Months Only.", 999999, []);
	vehiclelist[1]=new Vehicle(28, false, 2005, "Aston Martin Vanquish S Coupé", 13500, "Metallic Beige", "manual", "- Description|ABS, Alloy wheels, Central locking, Electric windows, ESP, Immobilizer, Leather seats, Navigation system, Parking sensors, Front Fog Lights, Radio/CD, 530 BHP|- Features|* Excellent Value For Money!", 126395, []);
	vehiclelist[2]=new Vehicle(27, false, 2005, "Aston Martin Vanquish S Coupé", 15442, "Metallic Grey", "manual", "- Description|ABS, Alloy wheels, Central locking, Electric heated seats, Electric windows, ESP, Immobilizer, Leather seats, Navigation system, Parking sensors, Xenon headlights, Front Fog Lights, Radio/CD, 530 BHP|- Features|* Excellent Value For Money!", 117195, []);
	vehiclelist[3]=new Vehicle(26, false, 2006, "Aston Martin Vanquish Coupé", 18862, "Metallic Meteorite Grey", "manual", "- Description|Air Bag, Passenger Air Bag, Passenger Air Bag On/Off Switch, Climate Control, A/C, AM/FM Stereo, Cassette, CD Changer, CD Player, 4-Wheel ABS, 4-Wheel Disc Brakes, Rear Defrost, Locking Rear Differential, Rear Wheel Drive, Auto-On Headlights, Keyless Entry, Power Door Locks, Power Driver Mirror, Navigation System, Power Driver Seat, Power Passenger Seat, Leather Seats, Bucket Seats, Power Steering, Adjustable Steering Wheel, Tires - Front Performance, Tires - Rear Performance, Traction Control, Aluminum Wheels, Power Windows, Intermittent Wipers, Premium Sound System, Power Passenger Mirror, Heated Driver Seat, Heated Passenger Seat, Variable Speed Intermittent Wipers, Rain Sensing Wipers, Vehicle Anti-Theft System, Auto-Off Headlights, Electrochromic rearview mirror, Leather Wrapped Steering Wheel, Remote Trunk Release, Tire Pressure Monitoring System, Trip Computer, Wireless Mobile Phone Hookup, Petro|- Features|* Excellent Value For Money!", 115695, []);
	vehiclelist[4]=new Vehicle(25, false, 2006, "Aston Martin Vanquish Coupé", 15104, "Metallic Grey", "manual", "- Description|Air Conditioning, Airbags, Radio/CD, Electric Windows, Leather Seats, ABS, Onboard Computer, Navigation System, Bluetooth, Traction Control, Rain Sensor, Front Fog Lights, Petrol|- Features|* Excellent Value For Money!", 110495, []);
	vehiclelist[5]=new Vehicle(29, false, 2005, "Aston Martin Vanquish S Coupé", 11000, "Metallic Black", "manual", "- Description|ABS, Alloy wheels, Central locking, Cruise control, Electric windows, Full Service History, Immobilizer, Leather seats, Parking sensors, Front Fog Lights, Stereo, 530 BHP|- Features|* Excellent Value For Money!", 109295, []);
	vehiclelist[6]=new Vehicle(8, false, 2006, "Aston Martin DB9 Volante Cabriolet", 8320, "Metallic Black", "manual", "- Description|Air Conditioning, Airbags, 22 Inch Black Alloy Wheels, Cruise Control, Electric Windows, Leather Seats, Electric Mirrors, Stereo, 450 BHP, Petrol|- Features|* Excellent Value For Money!", 98495, []);
	vehiclelist[7]=new Vehicle(12, false, 2006, "Aston Martin DB9 Volante Cabriolet", 4202, "Metallic Green", "manual", "- Description|Air Conditioning, Alarm, 19 Inch Alloy Wheels, Immobilizer, Bluetooth, Front Fog Lights, Traction Control, Airbags, ABS, Radio/CD, Cruise Control, Trip Computer, Leather Seats, 450 BHP, Petrol|- Features|* Excellent Value For Money!", 94395, []);
	vehiclelist[8]=new Vehicle(5, false, 2007, "Aston Martin DB9 Coupé", 7900, "Metallic Black", "manual", "- Description|Sport Pack, Warranty, ABS, ESP, Auto Air Con, 19&#34; Alloys, Leather Interior with Heated, Elec Adjust Seats, DVD Navigation System, Parking Sensors, Cruise, Xenons, Centre Armrest, Front Fog Lights, Electric Windows and Mirrors, Central Locking, LINN 950 Watts sound system with Dolby Pro Logic II, Immobiliser and Alarm System|- Features|* Excellent Value For Money!", 94295, []);
	vehiclelist[9]=new Vehicle(10, false, 2006, "Aston Martin DB9 Volante Cabriolet", 5758, "Metallic Slate Blue", "manual", "- Description|Navigation System, Centre Armrest, Multi Function Wheel, Electric Retractable Roof, Stereo, Leather Seats, Electric Windows, Petrol|- Features|* Excellent Value For Money!", 89295, []);
	vehiclelist[10]=new Vehicle(11, false, 2006, "Aston Martin DB9 Volante Cabriolet", 4880, "Metallic Black", "manual", "- Description|ABS, Alloy Wheels, Cruise Control, Airbags, Leather Seats, Electric Windows, Power Steering, Navigation System, Stereo, Bluetooth, Alarm, Parking Sensors, 450 BHP, Petrol|- Features|* Excellent Value For Money!", 89295, []);
	vehiclelist[11]=new Vehicle(1, false, 2007, "Aston Martin DB9 Coupé", 3845, "Metallic Slate Blue", "manual", "- Description|Air Conditioning, Alarm, Cruise Control, Electric Windows, 19 Inch Alloy Wheels, Radio/CD, Traction Control, Immobilizer, Navigation System, Parking Sensors, 450 BHP, Petrol|- Features|* Excellent Value For Money!", 86295, []);
	vehiclelist[12]=new Vehicle(9, false, 2006, "Aston Martin DB9 Volante Cabriolet", 23837, "Metallic Silver", "manual", "- Description|Air Conditioning, Navigation System, Radio/CD, Cruise Control, Electric Retractable Roof, Leather Seats, Airbags, ABS, Traction Control, Electric Windows, Petrol|- Features|* Excellent Value For Money!", 85995, []);
	vehiclelist[13]=new Vehicle(7, false, 2005, "Aston Martin DB9 Volante Cabriolet", 24700, "Metallic Dark Blue", "manual", "- Description|ABS, ESP, 455 BHP, Auto Air Con, 19 Inch Alloys, Leather Interior with Heated, Elec Adjust Seats, Navigation System, Parking Sensors, Cruise, Xenons, Centre Armrest, Front Fog Lights, Electric Windows, Central Locking, 4x Airbags, Radio/CD, Sound System, Immobiliser and Alarm System|- Features|* Excellent Value For Money!", 85095, []);
	vehiclelist[14]=new Vehicle(22, false, 2007, "Aston Martin V8 Vantage Roadster Roadster", 8346, "Metallic Black", "manual", "- Description|ABS, Alloy wheels, Central locking, Electric windows, ESP, Immobilizer, Leather seats, Navigation system, Parking sensors, Warranty, Xenon headlights, Radio/CD/DVD, Onboard Computer, Auto Air Con, 385 BHP, Petrol|- Features|* Excellent Value For Money!", 80995, []);
	vehiclelist[15]=new Vehicle(4, false, 2006, "Aston Martin DB9 Cabriolet", 8100, "Metallic Red", "manual", "- Description|ABS, Central locking, Cruise control, Electric heated seats, Electric windows, ESP, Immobilizer, Leather seats, Navigation system, Parking sensors, Warranty, Xenon headlights, Stereo, Auto Air Con, 455 BHP, Petrol|- Features|* Excellent Value For Money!", 80995, []);
	vehiclelist[16]=new Vehicle(23, false, 2007, "Aston Martin V8 Vantage Roadster Roadster", 9000, "Metallic Black", "manual", "- Description|Sportshift, ABS, ESP, Auto Air Con, 385 BHP, 19 Inch Anthracite Alloy Wheels, Leather Interior with Heated, Elec Adjust Seats, Navigation System, Xenons, Centre Armrest, Multi-Function Wheel, Electric Windows, Central Locking, Airbags, Stereo, Immobiliser and Alarm System|- Features|* Excellent Value For Money!", 79795, []);
	vehiclelist[17]=new Vehicle(17, false, 2007, "Aston Martin V8 Vantage Roadster", 9600, "Metallic Red", "manual", "- Description|ABS, Alloy wheels, Central locking, Cruise control, Electric heated seats, Electric windows, ESP, Immobilizer, Leather seats, Navigation system, Parking sensors, Xenon headlights, Bluetooth, Alarm, Stereo, 385 BHP, Petrol|- Features|* Excellent Value For Money!", 76295, []);
	vehiclelist[18]=new Vehicle(3, false, 2005, "Aston Martin DB9 Coupé", 13400, "Metallic Grey", "manual", "- Description|Alloy wheels, Central locking, Cruise control, Electric windows, Leather seats, Navigation system, Parking sensors, Xenon headlights, Stereo, Manual Air Con, 450 BHP, Petrol|- Features|* Excellent Value For Money!", 75095, []);
	vehiclelist[19]=new Vehicle(2, false, 2006, "Aston Martin DB9 Coupé", 18500, "Metallic Black", "manual", "- Description|ABS, Central locking, Cruise control, Electric heated seats, Electric windows, ESP, Immobilizer, Leather seats, Navigation system, Parking sensors, Warranty, Xenon headlights, Stereo, Auto Air Con, 455 BHP, Petrol|- Features|* Excellent Value For Money!", 73795, []);
	vehiclelist[20]=new Vehicle(24, false, 2007, "Aston Martin V8 Vantage Roadster Roadster", 17500, "Metallic Fire Red", "manual", "- Description|ABS, Alloy wheels, 385 BHP, Central locking, Cruise control, Electric heated seats, Electric windows, ESP, Full Service History, Immobilizer, Leather seats, Navigation system, Parking sensors, Warranty, Xenon headlights, Multi Function Steering Wheel, Radio/CD, Onboard Computer|- Features|* Excellent Value For Money!", 70995, []);
	vehiclelist[21]=new Vehicle(20, false, 2006, "Aston Martin V8 Vantage 4.3 Coupé", 15845, "Metallic Silver", "manual", "- Description|ABS, Alloy wheels, Central locking, Cruise control, Electric heated seats, Electric windows, ESP, Full Service History, Immobilizer, Leather seats, Navigation system, Parking sensors, Xenon headlights, Airbags, Bluetooth Interface, Radio/CD, Dolby Pro Logic II Sound System, 385 BHP, Petrol|- Features|* Excellent Value For Money!", 70995, []);
	vehiclelist[22]=new Vehicle(16, false, 2007, "Aston Martin V8 Vantage Coupé", 8400, "Metallic Meteorite Silver", "manual", "- Description|ABS, Alloy wheels, Central locking, Electric heated seats, Electric windows, ESP, Immobilizer, Leather seats, Navigation system, Parking sensors, Xenon headlights, Telephone, Stereo, Auto Air Con, 385 BHP, Petrol|- Features|* Excellent Value For Money!", 70695, []);
	vehiclelist[23]=new Vehicle(6, false, 2005, "Aston Martin DB9 Coupé", 30000, "Metallic Grey", "manual", "- Description|FSH, ABS, ESP, Air Con, Alloys, Leather Interior with Heated Elec Adjust Seats, Navigation System, Multi Function Wheel, Centre Arm Rest, Electric Windows & Mirrors, Central Locking, Stereo/CD, Immobiliser|- Features|* Excellent Value For Money!", 70395, []);
	vehiclelist[24]=new Vehicle(21, false, 2007, "Aston Martin V8 Vantage Coupe Coupé", 23000, "Metallic Grey", "manual", "- Description|ABS, Alloy wheels, Central locking, Electric heated seats, Electric windows, ESP, Immobilizer, Leather seats, Navigation system, Parking sensors, Xenon headlights, 6x Airbags, Radio/CD/DVD, Onboard Computer, Telephone, Auto Air Con, 385 BHP, Petrol|- Features|* Excellent Value For Money!", 66795, []);
	vehiclelist[25]=new Vehicle(37, false, 2007, "Aston Martin Vantage Coupé", 6266, "Metallic Midnight Blue", "manual", "- Description|Leather Seats, Bucket Seats, Power Steering, Adjustable Steering Wheel, Tires - Front Performance, Tires - Rear Performance, Traction Control, Aluminum Wheels, Power Windows, Vehicle Anti-Theft System, Rear Parking Aid, Driver Lumbar, Passenger Lumbar, Remote Trunk Release, Tire Pressure Monitoring System, Trip Computer, Electronic Stability Control, Brake Assist, Driver Air Bag, Passenger Air Bag, Passenger Air Bag On/Off Switch, Side Air Bag, Side Head Air Bag, Climate Control, A/C, Alarm, AM/FM Stereo, CD Changer, CD Player, 4-Wheel ABS, 4-Wheel Disc Brakes, Rear Defrost, Locking Rear Differential, Rear Wheel Drive, Power Door Locks, 380 BHP, Petrol|- Features|* Excellent Value For Money!", 66095, []);
	vehiclelist[26]=new Vehicle(13, false, 2007, "Aston Martin V8 Roadster Roadster", 9950, "Metallic Blue", "manual", "- Description|Warranty, ABS, ESP, 385 BHP, Auto Air Con, Alloys, Leather Interior with Heated, Elec Adjust Seats, Navigation System, Parking Sensors, Cruise, Xenons, Centre Armrest, Electric Windows, Central Locking, Airbags, Stereo, Immobiliser and Alarm System|- Features|* Excellent Value For Money!", 64495, []);
	vehiclelist[27]=new Vehicle(36, false, 2007, "Aston Martin Vantage Coupé", 5784, "Metallic Pearl", "manual", "- Description|Air Conditioning, Climate Control, Cruise Control, Tinted Windows, Electric Windows, Power Door Locks, Electric Mirrors, Electric Drivers Seat, Electric Passenger Seat, Clock, Tachometer, Digital Info Center, Tilt Steering Wheel, Driver Airbag, Passenger Airbag, Side Airbags, Keyless Entry, Alarm System, ABS Brakes, Rear Defogger, Stereo, 380 BHP, Petrol|- Features|* Excellent Value For Money!", 64395, []);
	vehiclelist[28]=new Vehicle(19, false, 2007, "Aston Martin V8 Vantage Coupé", 1000, "Metallic Grey", "manual", "- Description|ABS, Alloy wheels, Central locking, Cruise control, Electric heated seats, Electric windows, ESP, Full Service History, Immobilizer, Leather seats, Navigation system, Parking sensors, Warranty, Xenon headlights, Stereo, 385 BHP|- Features|* Excellent Value For Money!", 63895, []);
	vehiclelist[29]=new Vehicle(35, false, 2006, "Aston Martin Vantage Coupé", 2800, "Metallic Blue", "manual", "- Description|Cruise Control, Heated Front Seats, Heated Front Windscreen, High Intensity Discharge (HID) Headlamps with Powerwash, Parking Proximity Sensors, Premium Audio System, Satellite Navigation System, Radio/CD, Electric Windows, Leather Seats, Airbags, 380 BHP, Petrol|- Features|* Excellent Value For Money!", 63895, []);
	vehiclelist[30]=new Vehicle(34, false, 2006, "Aston Martin Vantage Coupé", 8757, "Metallic Black", "manual", "- Description|Engine Immobilizer Anti-theft, Cloth Seats, Clock, Traction Control, Front Side Airbags, Automatic Climate Control, Rear Window Defogger, Driver Air Bag, Anti-Lock Brakes, Alarm System, Alloy Wheels, Reading Lights, CD Changer, Performance Tires, Center Console, Rear Window Defroster, Dual Front Air Bags, Parking Assist Rear, Electric Mirrors, Electric Windows, Power Steering, Side Air Bag, Stability Control, Tachometer, Trip Computer, Tire Pressure Monitoring System, 380 BHP, Petrol|- Features|* Excellent Value For Money!", 63795, []);
	vehiclelist[31]=new Vehicle(18, false, 2007, "Aston Martin V8 Vantage Coupé", 7900, "Metallic Beige", "manual", "- Description|ABS, Alloy wheels, Central locking, Electric heated seats, Electric windows, ESP, Full Service History, Leather seats, Navigation system, Parking sensors, Stereo, Bluetooth, 385 BHP|- Features|* Excellent Value For Money!", 63195, []);
	vehiclelist[32]=new Vehicle(33, false, 2007, "Aston Martin Vantage Coupé", 11496, "Metallic Grey", "manual", "- Description|Radio/CD, Integrated Phone, Air Conditioning, Clock, Leather Seats, Tilt Wheel, Electric Drivers Seat, Electric Passenger Seat, Power Steering, Electric Windows, Anti-Lock Brakes, Keyless Entry, Alarm System, 380 BHP, Petrol|- Features|* Excellent Value For Money!", 62095, []);
	vehiclelist[33]=new Vehicle(14, false, 2006, "Aston Martin V8 Vantage Coupé", 29000, "Metallic Black", "manual", "- Description|ABS, ESP, Alloy Wheels, Central Locking, Electric Heated Seats, Electric Windows, Leather Interior, Navigation System, Parking Sensors, Leather Steering Wheel, Xenon Headlights, Premium Audio System, Immobiliser, Integrated Telephone System|- Features|* Excellent Value For Money!", 62095, []);
	vehiclelist[34]=new Vehicle(15, false, 2007, "Aston Martin V8 Vantage Coupé", 12000, "Metallic Silver", "manual", "- Description|FSH, ABS, ESP, Auto Air Con, 19” Alloys, Leather Interior with Heated Seats, Navigation System, Parking Sensors, Cruise, Xenons, Centre Armrest, Electric Windows, Mirrors, Central Locking, Immobiliser, Telephone System|- Features|* Excellent Value For Money!", 61995, []);
	vehiclelist[35]=new Vehicle(32, false, 2007, "Aston Martin Vantage Coupé", 11507, "Metallic Tungsten", "manual", "- Description|19 Inch Wheels, Premium Audio, Bluetooth, Xenon Headlights, Multi Function Steering Wheel, Centre Armrest, Electric Windows, Air Conditioning, 380 BHP, Petrol|- Features|* Excellent Value For Money!", 61495, []);
	vehiclelist[36]=new Vehicle(31, false, 2006, "Aston Martin Vantage Coupé", 9128, "Metallic Tungsten Silver", "manual", "- Description|Engine Immobilizer Anti-theft, Warning Light, Low Fuel, Cloth Seats, Clock, Traction Control, Front Side Airbags, Automatic Climate Control, Rear Window Defogger, Driver Air Bag, Anti-Lock Brakes, Alarm System, Alloy Wheels, Reading Lights, CD Changer, Performance Tires, Center Console, Rear Window Defroster, Dual Front Air Bags, Parking Assist Rear, Power Mirrors, Electric Windows, Power Steering, Side Air Bag, Stability Control, Tachometer, Trip Computer, Tire Pressure, Monitoring System, 380 BHP, Petrol|- Features|* Excellent Value For Money!", 61495, []);
	vehiclelist[37]=new Vehicle(30, false, 2007, "Aston Martin Vantage Coupé", 11802, "Metallic Yellow", "manual", "- Description|Driver Air Bag, Anti-Lock Brakes, Air Conditioning, Alloy Wheels, Cruise Control, Passenger Air Bag, Power Seats, Leather Seats, Power Door Locks, Power Mirrors, Electric Windows, Power Steering, Tilt Wheel, Petrol|- Features|* Excellent Value For Money!", 60295, []);
}
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);

