var setup=[];
setup.cssfile="http://www.mattcardy.co.uk/showroom/client/lhdcentre.css";
setup.pagesizes=[5,10,25,50,0];
setup.site="lhdjeep";
setup.locale="GBP";
setup.searchURL="http://www.mattcardy.co.uk/showroom/carlistsearch.php?site=lhdjeep&search=";
setup.viewURL="http://www.mattcardy.co.uk/showroom/viewupdate.php?site=lhdjeep&amp;id=";
setup.emailURL="http://www.mattcardy.co.uk/showroom/emailsales.php?site=lhdjeep&id=";
setup.thumburl="http://www.mattcardy.co.uk/showroom/data/lhdjeep/thumbs/";
setup.picurl="http://www.mattcardy.co.uk/showroom/data/lhdjeep/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(2, true, 2009, "Jeep Grand Cherokee Overland", 0, "Silver", "automatic", "- Description|Supplied with COC, UK OTR price 36795 Includes Duty, Vat and Reg. Price below is Export Price ex-Germany|- Features|* European Equipment Grp|* Trailer Tow Grp|* Supp side Curtain Frt/Rr Air Bags|* Elec LTD Slip Differential Frt/Rr Axle|* Rr View Auto Dim Mirror w/Microphone|* Power Sunroof|* Auto Dim Driver/Passenger Mirror|* Euro Stage IV Emission|* Exterior Mirros w/Heating Element|* Quadra-Trac II Full-Time,Active 4WD|* Tinted Windshield Glass|* Remote Keyless Entry|* Power Folding Multi-Function Mirrors|* Air Cond. ATC w/Dual Zone Control|* Rain Sensitive Windshield Wipers|* Power Locks|* Power Driver/Passenger Seats|* Heated Frt/Second Row Seats|* Power Frt Windows|* Security Alarm|* Fog Lamps|* MW/FM/CD/DVD/HDD/MP3 Radio|* 6 Boston Acoustics Speakers|* Frt/Rr Park Assist System|* Rr Back-up Camera|*   18X7.5 Aluminum Wheels|* COC", 31800, []);
	vehiclelist[1]=new Vehicle(3, true, 2009, "Jeep Grand Cherokee Overland", 0, "Black", "automatic", "- Description|Supplied with COC, UK OTR price 36795 Includes Duty, Vat and Reg. Price below is Export Price ex-Germany|- Features|* European Equipment Grp|* Power Sunroof|* Deep Tint Sunscreen Glass|* Trailer Tow Grp|* Electronic Infotainment Sys Grp|* Sentry Key Theft Deterrent System|*   Euro Stage IV Emission|* Rear Seat Video System|* Electronic Stability|* Supplemental Side Air Bags|* Remote Keyless Entry|* Air Cond ATC w/Dual Zone Control|* Power Locks|* Power Seats|* Heated Frt/ 2nd Row Seats|* Power Frt Windows|* MW/FM/CD/DVD/HDD/MP3 Radio|* 6 Boston Acoustics Speakers|* ParkView Rear Back-up Camera|* ParkSense FT/RR Park Assist Sys|* 18X7.5 Aluminum Wheels; COC", 31800, []);
	vehiclelist[2]=new Vehicle(4, true, 2009, "Jeep Grand Cherokee Limited", 0, "Black", "automatic", "- Description|Supplied with COC, UK OTR price 36795 Includes Duty, Vat and Reg. Price below is Export Price ex-Germany|- Features|* European Equipment Grp|* Trailer Tow Grp|* Supp. Side Curtain Frt/Rr Air Bags|* Deep Tint Sunscreen Glass|*   Power Sunroof|* Deluxe Security Alarm|* Euro Stage IV Emission|* MOPAR Rear Spoiler|* UConnect Hands-Free Communication|* ParkView Rear Back-up Camera|* Air Cond ATC w/Dual Zone Control|* Remote Keyless Entry|*   Power Locks|* Power Drvr/Pass Seats|* MW/FM/CD/DVD/HDD/MP3 Radio|* 4WD/4X4|* DPF|* Full Size Matching Whl Spare Tire|* 18X7.5 Aluminum Wheels|* COC", 31800, []);
	vehiclelist[3]=new Vehicle(5, true, 2009, "Jeep Grand Cherokee Limited", 0, "Black", "automatic", "- Description|Supplied with COC, UK OTR price 36795 Includes Duty, Vat and Reg. Price below is Export Price ex-Germany|- Features|* European Equipment Grp|* Trailer Tow Grp|* Supp. Side Curtain Frt/Rr Air Bags|* Deep Tint Sunscreen Glass|*   Power Sunroof|* Deluxe Security Alarm|* Euro Stage IV Emission|* MOPAR Rear Spoiler|* UConnect Hands-Free Communication|* ParkView Rear Back-up Camera|* Air Cond ATC w/Dual Zone Control|* Remote Keyless Entry|*   Power Locks|* Power Drvr/Pass Seats|* MW/FM/CD/DVD/HDD/MP3 Radio|* 4WD/4X4|* DPF|* Full Size Matching Whl Spare Tire|* 18X7.5 Aluminum Wheels|* COC", 31800, []);
	vehiclelist[4]=new Vehicle(29, true, 2009, "JEEP GRAND CHEROKEE LIMITED 4X4 3.0 V6 TD", 100, "black", "automatic", "Air bags, Tinted windows, Electric sunroof, Air conditioning, hands free, DVD/CD/MP3/HDD radio, Aloy wheels, Rear spoiler, Parking sensor and rear back-up camera.For more information please fill in the form below or call 0207 993 8447.", 25995, []);
	vehiclelist[5]=new Vehicle(30, true, 2009, "JEEP GRAND CHEROKE LIMITED 4X4 3.0 V6 TD", 100, "black", "automatic", "Tow bar, Air bags, Tinted windows, Rear spoiler, Eletric sunroof, Hands free, Parking sensor with rear back-up camera, Air conditioning, CD/DVD/MP3/HDD radio, Alloy Wheels. For more information please fill in the form below or call 0207 993 8447.", 25995, []);
	vehiclelist[6]=new Vehicle(8, true, 2009, "Jeep Wrangler unltd Rubicon", 0, "Green", "automatic", "- Description|Supplied with COC, UK OTR price 29995 Includes Duty, Vat and Reg. Price below is Export Price ex-Germany6|- Features|* Freedom Top 3-Pc Black Hard Top|* Dual Top Grp|* Power Convenience Grp|* Deep Tint Suscreen Windows|* AM/FM 6-Disc DVD MP3 Radio|* European Equip Grp|* COC", 23000, []);
	vehiclelist[7]=new Vehicle(9, true, 2009, "Jeep Wrangler unltd Rubicon", 0, "Green", "automatic", "- Description|Supplied with COC, UK OTR price 29995 Includes Duty, Vat and Reg. Price below is Export Price ex-Germany7|- Features|* Freedom Top 3-Pc Black Hard Top|* Dual Top Grp|* Power Convenience Grp|* Deep Tint Suscreen Windows|* AM/FM 6-Disc DVD MP3 Radio|* European Equip Grp|* COC", 23000, []);
	vehiclelist[8]=new Vehicle(45, true, 2009, "JEEP WRANGLER UNLIMITED RUBICON 2.8 TD", 0, "silver", "automatic", "Traction control, 3-piece black hard top, Tinted windows, Air conditioning, Aloy wheels, CD/DVD/MP3 radio. For more information please fill in the form below or call 0207 993 8447.", 22995, []);
	vehiclelist[9]=new Vehicle(1, true, 2009, "Jeep Wrangler Unltd Rubicon", 0, "Red", "automatic", "- Description|Supplied with COC, UK OTR price 28695 Includes Duty, Vat and Reg. Price below is Export Price ex-Germany|- Features|* European Equipment Group|* Traction Control|*  Deep Tint Sunscreen Windows|* Full Metal Doors w/Roll-up Windows|*   Euro Stage IV Emission Vehicle|* Speed Control|* Freedom Top 3-piece Black Hard Top|* 4-Wheel Disc Brakes|* 4:1 Rock-Trac HD Part Time 4WD Sys|* Sentry Key Theft Deterrent System|* Air Conditioning|* Frt/Rr Fog Lamps|* AM/FM DVD MP3 Radio (BUX)|* 17X7.5 Alum Machined Cast Wheels|* 4WD/4X4|* COC", 22000, []);
	vehiclelist[10]=new Vehicle(44, true, 2009, "JEEP WRANGLER RUBICON 3.8 V6", 0, "red", "automatic", "Traction control, Soft top, Fog lamps, Aloy wheels, Tinted windows, Remote control mirrors, Air conditioning, CD/DVD/MP3 radio. For more information please fill in the form below or call 0207 993 8447.", 21995, []);
	vehiclelist[11]=new Vehicle(47, true, 2009, "JEEP WRANGLER RUBICON 2.8 TD", 0, "blue", "automatic", "Traction control, Tinted windows, Dual top: soft top and 3 piece hard top, Fog lamps, Aloy wheels, Air conditioning, CD/DVD/MP3 radio.For more information please fill in the form below or call 0207 993 8447.", 21995, []);
	vehiclelist[12]=new Vehicle(31, true, 2009, "JEEP WRANGLER UNLIMITED RUBICON 4X4 2.8 TD", 0, "green", "automatic", "Freedom Top 3-pc black hard top, Tinted windows, 6 disc CD/DVD/MP3 radio, 6 speakers and subwoofer, Alloy wheels. For more information please fill in the form below or call 0207 993 8447.", 21995, []);
	vehiclelist[13]=new Vehicle(32, true, 2009, "JEEP WRANGLER UNLIMITED RUBICON 4X4 2.8 TD", 0, "green", "automatic", "Freedom Top 3-pc black hard top, Tinted windows, 6 disc CD/DVD/MP3 radio. For more information please fill in the form below or call 0207 993 8447.", 21995, []);
	vehiclelist[14]=new Vehicle(6, true, 2009, "Jeep Grand Cherokee Sport", 0, "Black", "automatic", "- Description|Supplied with COC, UK OTR price 25695 Includes Duty, Vat and Reg. Price below is Export Price ex-Germany|- Features|* European Equip Grp|* Hill Descent Ctrl|* Luxury Frt/Rr Floor Mats|* Deep Tint Sunscreen Glass|* Euro Stage IV Emission|* Speed Ctrl|* Rr Park Assist Sys|* Elect Stability Prog|* Supp Side Air Bags|*   Selec-Trac II Active Full Time 4WD|* 3.73 Axle Ratio|* Keyless Entry w/Immobilizer|* Power Heated Mirrors F-Away|* Air Cond w/Auto Temp Ctrl|* 240 KPH Speedometer|* Power Windows|* Spd Sensitive Power Locks|* Security Alarm|* AM/FM DVD MP3 Radio (BUX)|* 16X7.0 Aluminum Wheels|* COC", 21000, []);
	vehiclelist[15]=new Vehicle(7, true, 2009, "Jeep Grand Cherokee Sport", 0, "Black", "automatic", "- Description|Supplied with COC, UK OTR price 28695 Includes Duty, Vat and Reg. Price below is Export Price ex-Germany5|- Features|* European Equip Grp|* Hill Descent Ctrl|* Luxury Frt/Rr Floor Mats|* Deep Tint Sunscreen Glass|* Euro Stage IV Emission|* Speed Ctrl|* Rr Park Assist Sys|* Elect Stability Prog|* Supp Side Air Bags|*   Selec-Trac II Active Full Time 4WD|* 3.73 Axle Ratio|* Keyless Entry w/Immobilizer|* Power Heated Mirrors F-Away|* Air Cond w/Auto Temp Ctrl|* 240 KPH Speedometer|* Power Windows|* Spd Sensitive Power Locks|* Security Alarm|* AM/FM DVD MP3 Radio (BUX)|* 16X7.0 Aluminum Wheels|* COC", 21000, []);
	vehiclelist[16]=new Vehicle(28, true, 2009, "JEEP WRANGLER UNLIMITED 4-DOOR RUBICON 4X4", 100, "red", "automatic", "Traction control, Tinted windows, Freedom Top 3-piece Black hard top, Air conditioning, Frog lamps, DVD/CD/MP3 radio, Alloy wheels. For more information please fill in the form below or call 0207 993 8447.", 20995, []);
	vehiclelist[17]=new Vehicle(43, true, 2009, "JEEP WRANGLER SAHARA 3.8 V6", 0, "green", "automatic", "Traction control, Tinted windows, Freedom 3-peice hard top, Air conditioning, CD/DVD/MP3 radio, Aloy wheels. For more information please fill in the form below or call 0207 993 8447.", 20995, []);
	vehiclelist[18]=new Vehicle(46, true, 2009, "JEEP WRANGLER UNLIMITED RUBICON 3.8 V6", 0, "silver", "automatic", "Traction control, Tinted windows, 3-piece hard top, Fog lamps, Aloy wheels, Air conditioning, CD/DVD/MP3 radio. For more information please fill in the form below or call 0207 993 8447.", 20995, []);
	vehiclelist[19]=new Vehicle(13, false, 2007, "Jeep Grand Cherokee Limited", 100, "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|* Skid Plate Group|* Quadra-Drive 4WD Sys|*   Deep Tint Sunscreen Glass|* Power Sunroof|* 230 KPH Primary Speedometer|* Heated Front Seats|* Fog Lamps|* Premium Security Alarm|* Adjustable Roof Rail Crossbars|* AM/FM CD 6-Disc MP3 RDS Radio|* 6 Boston Acoustics Speakers|*   17X7.5 Aluminum Wheels", 18000, []);
	vehiclelist[20]=new Vehicle(14, false, 2007, "Jeep Grand Cherokee Limited", 100, "Grey", "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|* Quadra-Drive 4WD Sys|*   Deep Tint Sunscreen Glass|* Power Sunroof|* 230 KPH Primary Speedometer|* Heated Front Seats|* Fog Lamps|* Premium Security Alarm|* Adjustable Roof Rail Crossbars|* AM/FM CD 6-Disc MP3 RDS Radio|* 6 Boston Acoustics Speakers|*   17X7.5 Aluminum Wheels", 18000, []);
	vehiclelist[21]=new Vehicle(10, true, 2009, "Jeep Patriot 2", 0, "Black", "automatic", "- Description|Supplied with COC, UK OTR price 22995 Includes Duty, Vat and Reg. Price below is Export Price ex-Germany8|- Features|* European Equip Grp|* Full Size Spare Tire|* AM/FM CD 6-Disc MP3 RDS Radio|* Fog Lamps|* Air Cond|* Deep Tint Sunscreen Glass|* All-Season Floor Mats|* Safety & Comfort Grp|* 9-Spkr Boston Acoustics Sound Grp|* Prem Steering Wheel Grp; COC", 17000, []);
	vehiclelist[22]=new Vehicle(11, true, 2009, "Jeep Patriot 2", 0, "Black", "automatic", "- Description|Supplied with COC, UK OTR price 22995 Includes Duty, Vat and Reg. Price below is Export Price ex-Germany9|- Features|* European Equip Grp|* Full Size Spare Tire|* AM/FM CD 6-Disc MP3 RDS Radio|* Fog Lamps|* Air Cond|* Deep Tint Sunscreen Glass|* All-Season Floor Mats|* Safety & Comfort Grp|* 9-Spkr Boston Acoustics Sound Grp|* Prem Steering Wheel Grp; COC", 17000, []);
	vehiclelist[23]=new Vehicle(12, false, 2007, "Jeep Grand Cherokee Limited", 150, "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|* Quadra-Drive 4WD Sys|*   230 KPH Primary Speedometer|* Fog Lamps|* AM/FM Compact Disc RDS Radio|* 6 Boston Acoustics Speakers|* Air Cond ATC w/Dual Zone Control|*  Euro Stage IV Emission|*   Sentry Key Theft Deterrent Sys|*   ParkSense FT/RR Park Assist Sys|* 17X7.5 Aluminum Wheels", 17000, []);
	vehiclelist[24]=new Vehicle(15, false, 2007, "Jeep Grand Cherokee Limited", 100, "Blue", "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|* Quadra-Drive 4WD Sys|*   Power Sunroof|* 230 KPH Primary Speedometer|* Heated Front Seats|* Fog Lamps|* Premium Security Alarm|* AM/FM CD 6-Disc MP3 RDS Radio|* 6 Boston Acoustics Speakers|*   17X7.5 Aluminum Wheels", 17000, []);
	vehiclelist[25]=new Vehicle(16, false, 2007, "Jeep Commander Limited", 1500, "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|* Quadra-Drive 4WD Sys|*  Air Cond ATC w/Dual Zone Control|*  Rear Air Conditioning w/Heater|* Fog Lamps|* AM/FM Compact Disc RDS Radio|* 6 Boston Acoustics Speakers|*  Sentry Key Theft Deterrent System|*  Euro Stage IV Emission|* ParkSense FT/RR Park Assist Sys|* 17\" Aluminum Wheels", 17000, []);
	vehiclelist[26]=new Vehicle(17, false, 2007, "Jeep Commander Limited", 100, "Blue", "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|* Trailer Tow Group|* Quadra-Drive 4WD Sys|* Deep Tint Sunscreen Glass|* Power Sunroof w/CommandView|* Rear Air Conditioning w/Heater|* Heated Front Seats|* Power Liftgate|* Fog Lamps|* AM/FM Compact Disc RDS Radio|* 6 Boston Acoustics Speakers|* ParkSense FT/RR Park Assist Sys|* 17\" Aluminum Wheels", 17000, []);
	vehiclelist[27]=new Vehicle(18, false, 2007, "Jeep Commander Limited", 100, "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|* Quadra-Drive 4WD Sys|* Deep Tint Sunscreen Glass|* Power Sunroof w/CommandView|*   Air Cond ATC w/Dual Zone Control|* Rear Air Conditioning w/Heater|* Heated Front Seats|* Power Liftgate|* Fog Lamps|* Premium Security Alarm|* Adjustable Roof Rail Crossbars|* AM/FM CD 6-Disc MP3 RDS Radio|* 6 Boston Acoustics Speakers|*   ParkSense FT/RR Park Assist Sys|*  17\" Aluminum Wheels", 17000, []);
	vehiclelist[28]=new Vehicle(19, false, 2007, "Jeep Commander Limited", 100, "Green", "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|* Quadra-Drive 4WD Sys|* Deep Tint Sunscreen Glass|* Power Sunroof w/CommandView|*   Air Cond ATC w/Dual Zone Control|* Rear Air Conditioning w/Heater|* Heated Front Seats|* Power Liftgate|* Fog Lamps|* Premium Security Alarm|* Adjustable Roof Rail Crossbars|* AM/FM CD 6-Disc MP3 RDS Radio|* 6 Boston Acoustics Speakers|* ParkSense FT/RR Park Assist Sys|*  17\" Aluminum Wheels", 17000, []);
	vehiclelist[29]=new Vehicle(24, false, 2006, "Jeep Grand Cherokee Limited", 1000, "Grey", "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|* Electronic Stability|* Supp. Side Air Bags|* Deep Tint Sunscreen Glass|* Power Sunroof|* Heated Front Seats|* Sentry Key Theft Deterrent Sys|* Euro Stage IV Emission|* AM/FM CD 6-Disc MP3 RDS Radio|* 6 Boston Acoustics Speakers|* Air Cond ATC w/Dual Zone Control|* Remote Keyless Entry|* Rain Sensitive Windshield Wipers|* 230 KPH Primary Speedometer|* Power Locks|* Power Seats|* Power Frt Windows|* 17X7.5 Aluminum Wheels (no COC)", 16000, []);
	vehiclelist[30]=new Vehicle(25, false, 2006, "Jeep Grand Cherokee Limited", 2000, "Blue", "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|* Electronic Stability|* Supp Side Air Bags|* Sentry Key Theft Deterrent Sys|* Euro Stage IV Emission|* AM/FM Compact Disc RDS Radio|* 6 Boston Acoustics Speakers|* Remote Keyless Entry|* Air Cond ATC w/Dual Zone Control|*  230 KPH Primary Speedometer|*   Rain Sensitive Windshield Wipers|* Power Locks|* Power Seats|* Power Frt Windows|* ParkSense FT/RR Park Assist System|* 17X7.5 Aluminum Wheels (no COC)", 16000, []);
	vehiclelist[31]=new Vehicle(36, true, 2009, "JEEP PATRIOT 2.4 DUAL VVT", 0, "black", "automatic", "6 Disc CD/MP3 radio, Air conditioning, Tinted windows, Fog lamps. For more information please fill in the form below or call 0207 993 8447.", 15995, []);
	vehiclelist[32]=new Vehicle(37, true, 2009, "JEEP PATRIOT 2.4 DUAL VVT", 0, "black", "automatic", "6 Disc CD/MP3 radio, Sound system, Air conditioning, Tinted windows, Fog lamps. For more information please fill in the form below or call 0207 993 8447.", 15995, []);
	vehiclelist[33]=new Vehicle(38, true, 2009, "JEEP GRAND CHEROKE LIMITED 4.7 V8", 105, "black", "automatic", "Fog lamps, Parking sensor front and rear Aloy wheels, Air conditioning, CD radio. Not available for sale in Europe. For more information please fill in the form below or call 0207 993 8447.", 15995, []);
	vehiclelist[34]=new Vehicle(39, true, 2009, "JEEP GRAND CHEROKE LIMITED 4.7 V8", 0, "blue", "automatic", "Heated front seats, Electric sunroof, Fog lamps, Aloy wheels, 6-disc CD/MP3 radio. Not available for sale in Europe. For more information please fill in the form below or call 0207 993 8447.", 15995, []);
	vehiclelist[35]=new Vehicle(35, true, 2009, "JEEP COMANDER LIMITED 4.7 V8", 594, "black", "automatic", "Air bags, Tinted windows, Air conditioning, CD radio, Parking sensor, Alloy wheels. Not availible for sale in Europe. For more information please fill in the form below or call 0207 993 8447.", 15995, []);
	vehiclelist[36]=new Vehicle(40, false, 2007, "JEEP COMANDER LIMITED 4.7 V8", 1273, "silver", "automatic", "Air conditioning, Fog lamps, Front and rear parking sensor, Aloy wheels, CD radio. Not available for sale in Europe. For more information please fill in the form below or call 0207 993 8447.", 15995, []);
	vehiclelist[37]=new Vehicle(33, false, 2006, "JEEP GRAND CHEROKE LIMITED 4X4 4.7", 1946, "blue", "automatic", "ESP, Air bags, CD radio, Air conditioning, Rain sensitive windshield wipers, parking sensors, Alloy wheels. Not available for sale in Europe. For more information please fill in the form below or call 0207 993 8447.", 15995, []);
	vehiclelist[38]=new Vehicle(34, false, 2006, "JEEP COMMANDER LIMITED 5.7 V8", 1503, "green", "automatic", "Air bags, Tinted windows, Electric sunroof, Heated front seats, Air conditioning, CD radio, parking sensor, Alloy wheels. Not available for sale in Europe. For more information please fill in the form below or call 0207 993 8447.", 15995, []);
	vehiclelist[39]=new Vehicle(26, false, 2006, "Jeep Commander Limited", 2000, "Green", "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|* Brake Assist|* Supp Side Curtain All Rows Air Bags|* Deep Tint Sunscreen Glass|* Power Sunroof w/CommandView|* Sentry Key Theft Deterrent System|*   Heated Front Seats|* Euro Stage IV Emission|* Remote Keyless Entry|* Rear Window Defroster|* Air Cond ATC w/Dual Zone Control|* Rear Air Conditioning w/Heater|* Rain Sensitive Windshield Wipers|* Power Seats|* Power Front Windows|* Power Locks|*   AM/FM Compact Disc RDS Radio|* 6 Boston Acoustics Speakers|*   ParkSense FT/RR Park Assist System|*   17X7.5 Aluminum Wheels (no COC)", 15500, []);
	vehiclelist[40]=new Vehicle(27, false, 2006, "Jeep Commander Limited", 1000, "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|* Brake Assist|* Supp Side Curtain All Rows Air Bags|* Sentry Key Theft Deterrent System|* Euro Stage IV Emission|* Tinted Windshield Glass|* Remote Keyless Entry|* Air Cond ATC w/Dual Zone Control|* Rear Air Conditioning w/Heater|*   230 KPH Primary Speedometer|* Rain Sensitive Windshield Wipers|* Power Locks|* Power Seats|* Power Windows|* AM/FM Compact Disc RDS Radio|*   6 Boston Acoustics Speakers|* ParkSense FT/RR Park Assist System|* 17X7.5 Aluminum Wheels (no COC)", 15500, []);
	vehiclelist[41]=new Vehicle(20, false, 2007, "Jeep Wrangler Unltd Sahara", 1000, "Green", "automatic", "- Description|Supplied with COC, UK OTR price 19295 Includes Duty, Vat and Reg. Price below is Export Price ex-Germany9|- Features|* COC|* European Equipment Group|* 4.10 Axle Ratio|* Full Metal Doors w/Roll-up Windows|* Speed Control|* AM/FM 6 Disc DVD MP3 Radio (Euro)|*   Freedom Top 3-piece Black Hard Top", 15000, []);
	vehiclelist[42]=new Vehicle(21, false, 2007, "Jeep Wrangler Sahara", 1000, "Red", "automatic", "- Description|Supplied with COC, UK OTR price 18795 Includes Duty, Vat and Reg. Price below is Export Price ex-Germany10|- Features|* COC|* European Equipment Group|* 4.10 Axle Ratio|* Speed Control|* AM/FM 6 Disc DVD MP3 Radio (Euro)|* Dark Khaki Soft Top", 14500, []);
	vehiclelist[43]=new Vehicle(22, false, 2007, "Jeep Compass 4x4", 5500, "White", "manual", "- Description|Supplied with COC, UK OTR price 19395 Includes Duty, Vat and Reg. Price below is Export Price ex-Germany11|- Features|* European Equipment Group|* Air Conditioning|* Fog Lamps|* 6CD/Full Map GPS Display Nav Radio; COC", 13500, []);
	vehiclelist[44]=new Vehicle(23, false, 2007, "Jeep Compass 4x4", 5500, "Silver", "automatic", "- Description|Supplied with COC, UK OTR price 19395 Includes Duty, Vat and Reg. Price below is Export Price ex-Germany12|- Features|* European Equipment Group|* 9-Spkr Boston Acoustics Sound Grp|* Air Conditioning|* Fog Lamps|* AM/FM CD 6-Disc MP3 RDS Radio; COC", 13500, []);
	vehiclelist[45]=new Vehicle(41, false, 2007, "JEEP  COMPASS 2.4 DUAL VVT", 3300, "white", "manual", "Air conditioning, Fog lamps, 6 CD radio, Sat nav. For more information please fill in the form below or call 0207 993 8447.", 11995, []);
	vehiclelist[46]=new Vehicle(42, false, 2007, "JEEP COMPASS 2.4 DUAL VVT", 3200, "silver", "automatic", "Air conditioning, Fog lamps, 6 Disc CD/MP3 radio. For more information please fill in the form below or call 0207 993 8447.", 11995, []);
}
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);

