var setup=[];
setup.cssfile="http://www.mattcardy.co.uk/showroom/client/lhdspecialist.css";
setup.pagesizes=[5,10,25,50,0];
setup.site="lhdvolvo";
setup.locale="GBP";
setup.searchURL="http://www.mattcardy.co.uk/showroom/carlistsearch.php?site=lhdvolvo&search=";
setup.viewURL="http://www.mattcardy.co.uk/showroom/viewupdate.php?site=lhdvolvo&amp;id=";
setup.emailURL="http://www.mattcardy.co.uk/showroom/emailsales.php?site=lhdvolvo&id=";
setup.thumburl="http://www.mattcardy.co.uk/showroom/data/lhdvolvo/thumbs/";
setup.picurl="http://www.mattcardy.co.uk/showroom/data/lhdvolvo/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(11, false, 2006, "Volvo C70 Cabriolet", 21993, "Red Metallic", "manual", "- Description|ABS, ESP, Auto Air Con, Alloys, Leather Interior with El Heated Seats, El Adjust Seats with Memory, Traction Control, Telescopic Wheel, Cruise, Centre Armrest, Front Fog Lights, Multi-Function Wheel, Electric Windows, El Mirrors, Central Locking, Airbags, Remote Keyless Entry, Radio/CD, Immobiliser, Petrol.|- Features|* Excellent Value For Money!", 45347, []);
	vehiclelist[1]=new Vehicle(58, false, 2006, "Volvo XC90 V8 4x4", 9950, "Metallic Silver", "manual", "- Description|ABS, ESP, Four Wheel Drive, Auto Air Con, Alloys, Leather Interior with Heated, Elec Adjust Seats, Navigation System, Xenons, Centre Armrest, Front Fog Lights, Multi-Function Wheel, Electric Windows, Central Locking, Airbags, Radio/CD, Roof Rails, Immobiliser and Alarm System, 7 Seater|- Features|* Excellent Value For Money!", 31097, []);
	vehiclelist[2]=new Vehicle(48, false, 2007, "Volvo XC 70 D5 Edition DPF Estate", 19000, "Metallic Grey", "manual", "- Description|ABS, ESP, PDC, Alloys, Central Locking, Cruise, Electric Heated Leather Seats, Electric Windows, Four Wheel Drive, Immobilizer, Navigation System, Xenons.|- Features|* Excellent Value For Money!", 28997, []);
	vehiclelist[3]=new Vehicle(35, false, 2007, "Volvo S80 4.4L AWD Saloon", 11387, "Electric Silver Metallic", "manual", "- Description|ABS, ESP, Auto Air Con, Alloys, Leather Interior with El Heated Seats, El Adjust Seats with Memory, Trip Computer, Adjustable Steering Wheel, Cruise, Centre Armrest, Front Fog Lights, Multi-Function Wheel, Electric Windows, El Mirrors, Central Locking, Airbags, Remote Keyless Entry, Radio/CD, All Wheel Drive, Immobiliser, Warranty, Petrol.|- Features|* Excellent Value For Money!", 27997, []);
	vehiclelist[4]=new Vehicle(47, false, 2006, "Volvo V70 T5 Summun Estate", 6000, "Metallic Saphire Black", "manual", "- Description|ABS, ESP, Central Locking, Cruise, Immobiliser, Heated Leather Seats, Alloys, Navigation System, Electric Windows, Xenons, Roof Rails, telephone GSM, Onboard Computer, Multi-Function Steering Wheel.|- Features|* Excellent Value For Money!", 26497, []);
	vehiclelist[5]=new Vehicle(15, false, 2008, "Volvo C70 T5 Cabriolet", 26147, "White Metallic", "manual", "- Description|ABS, ESP, Auto Air Con, Alloys, Leather Interior with El Heated Seats, El Adjust Seats, Telescopic Wheel, Traction Control, Trip Computer, Cruise, Centre Armrest, Front Fog Lights, Multi-Function Wheel, Electric Windows, El Mirrors with Memory, Keyless Entry, Central Locking, Airbags, Radio/CD, Immobiliser, Petrol.|- Features|* Excellent Value For Money!", 26147, []);
	vehiclelist[6]=new Vehicle(55, false, 2007, "Volvo XC90 AWD V8 4x4", 13312, "Silver Metallic", "manual", "- Description|ABS, ESP, Auto Air Con, Alloys, Dual Climate Control Zone, Leather Interior, El Adjust Seats, Lumbar Support, Traction Control, Cruise, Multi-Function Wheel, Adjustable Steering Wheel, Electric Windows, Centre Armrest, Wood Interior Trim, Front Fog Lights, El Heated Mirrors, Central Locking, Keyless entry, Airbags, Radio/CD/MP3 with CD Changer and 8 Loudspeakers, Roof Rails, Immobilizer, Alarm, Privacy Glass, Intermittent Wipers, Warranty, All Wheel Drive, 6 Cylinder Gasoline Engine, Petrol.|- Features|* Excellent Value For Money!", 26147, []);
	vehiclelist[7]=new Vehicle(34, false, 2007, "Volvo S80 4.4L AWD Saloon", 12000, "Gold Metallic", "manual", "- Description|ABS, ESP, Auto Air Con, Alloys, Leather Interior with El Heated Seats, Adjustable Steering Wheel, Cruise, Centre Armrest, Front Fog Lights, Multi-Function Wheel, Electric Windows, El Mirrors, Central Locking, Airbags, Remote Keyless Entry, Radio/CD, , All Wheel Drive, Immobiliser, Sunroof, Warranty, Petrol.|- Features|* Excellent Value For Money!", 25797, []);
	vehiclelist[8]=new Vehicle(56, false, 2006, "Volvo XC90 AWD V8 4x4", 17860, "Ocean Blue Metallic", "manual", "- Description|ABS, ESP, Auto Air Con, Dual Climate Control Zone, Alloys, Leather Interior, El Adjust Seats with Memory, Traction Control, Trip Computer, Rain Sensor, Cruise, Multi-Function Wheel, Adjustable Steering Wheel, Electric Windows, Centre Armrest, Front Fog Lights, El Heated Mirrors, Central Locking, Keyless entry, Airbags, Radio/CD, Roof Rails, Sunroof, Immobilizer, Privacy Glass, Intermittent Wipers, Warranty, All Wheel Drive, 8 Cylinder Gasoline Engine, Petrol.|- Features|* Excellent Value For Money!", 25747, []);
	vehiclelist[9]=new Vehicle(14, false, 2007, "Volvo C70 T5 Cabriolet", 32305, "Celestial Blue Metallic", "manual", "- Description|ABS, ESP, Auto Air Con, Alloys, Leather Interior with El Heated Seats, El Adjust Seats, Telescopic Wheel, Traction Control, Trip Computer, Cruise, Centre Armrest, Front Fog Lights, Multi-Function Wheel, Electric Windows, El Mirrors with Memory, Keyless Entry, Central Locking, Airbags, Radio/CD, Immobiliser, Petrol.|- Features|* Excellent Value For Money!", 25697, []);
	vehiclelist[10]=new Vehicle(2, false, 2007, "Volvo XC90 AWD 3.2L 4x4", 26332, "Ruby Red Metallic", "manual", "- Description|ABS, ESP, Auto Air Con, Alloys, Leather Interior with El Heated Seats, El Adjust Seats with Memory, Lumbar Support, Trip Computer, Cruise, Traction Control, Multi-Function Wheel, Adjustable Steering Wheel, Electric Windows, Centre Armrest, Front Fog Lights, El Heated Mirrors, Central Locking, Keyless entry, Airbags, Radio/CD, Premium Sound System, Roof Rails, Sunroof, Immobilizer, Privacy Glass, Intermittent Wipers, Spoiler, Warranty, All Wheel Drive, 6 Cylinder Gasoline Engine, Petrol.|- Features|* Excellent Value For Money!", 25497, []);
	vehiclelist[11]=new Vehicle(44, false, 2006, "Volvo V70 D5 Momentum DPF Estate", 9661, "Metallic Blue", "manual", "- Description|ABS, Central Locking, Cruise, Immobiliser, Heated Leather Seats, Alloys, Navigation System, Electric Windows, Roof Rails, Telephone Prep, Central Arm Rest in Front.|- Features|* Excellent Value For Money!", 25497, []);
	vehiclelist[12]=new Vehicle(57, false, 2006, "Volvo XC90 AWD V8 4x4", 18678, "Black Sapphire Metallic", "manual", "- Description|ABS, ESP, Auto Air Con, Dual Zone Climate Control, Alloys, Leather Interior with El Heated Seats, El Adjust Seat with Memory, Rear Seat Entertainment System, Cruise, Trip Computer, Passenger Air Bag On/Off Switch, Traction Control, Multi-Function Wheel, Adjustable Steering Wheel, Rain Sensor, Rear Parking Sensors, Electric Windows, Centre Armrest, Wood Interior Trim, Front Fog Lights, Bi-Xenon, El Heated Mirrors with Memory, Central Locking, Keyless entry, Airbags, Radio/CD/MP3 with CD Changer, Pro-Logic II Surround Sound, Roof Rails, Sun/Moon Roof, Immobilizer, Intermittent Wipers, Privacy Glass, Universal Garage Door Opener, Alarm, Warranty, All Wheel Drive, 8 Cylinder Gasoline Engine, Petrol.|- Features|* Excellent Value For Money!", 24897, []);
	vehiclelist[13]=new Vehicle(39, false, 2007, "Volvo V50 T5 AWD Estate", 9537, "Ice White Metallic", "manual", "- Description|ABS, ESP, Auto Air Con, Alloys, Leather Interior with El Heated Seats, El Adjust Seats with Memory, Adjustable Steering Wheel, Cruise, Centre Armrest, Multi-Function Wheel, Traction Control, Electric Windows, El Mirrors, Front Fog Lights, Central Locking, Airbags, Radio/CD, Immobilizer, Remote Keyless Entry, Roof Rails, Sunroof, Security System, All Wheel Drive, Warranty, Petrol.|- Features|* Excellent Value For Money!", 24797, []);
	vehiclelist[14]=new Vehicle(46, false, 2007, "Volvo V70 R AWD Estate", 12486, "Black Metallic", "manual", "- Description|ABS, ESP, Auto Air Con, Alloys, Leather Interior, El Adjust Seats with Memory, Adjustable Steering Wheel, Traction Control, Cruise, Centre Armrest, Multi-Function Wheel, Electric Windows, El Mirrors, Front Fog Lights, Central Locking, Airbags, Radio/CD, Remote Trunk Release, Roof Rails, Rear Spoiler, All Wheel Drive, Warranty, Petrol.|- Features|* Excellent Value For Money!", 24790, []);
	vehiclelist[15]=new Vehicle(13, false, 2007, "Volvo C70 T5 Cabriolet", 32483, "Silver Metallic", "manual", "- Description|ABS, ESP, Auto Air Con, Alloys, Leather Interior with El Heated Seats, El Adjust Seats, Telescopic Wheel, Navigation System, Traction Control, Trip Computer, Cruise, Centre Armrest, Front Fog Lights, Multi-Function Wheel, Electric Windows, El Mirrors with Memory, Keyless Entry, Central Locking, Airbags, Radio/CD, Immobiliser, Petrol.|- Features|* Excellent Value For Money!", 24597, []);
	vehiclelist[16]=new Vehicle(29, false, 2007, "Volvo S80 3.2L 2WD Saloon", 17771, "Silver Metallic", "manual", "- Description|ABS, ESP, Auto Air Con, Alloys, Leather Interior with El Heated Seats, El Adjust Seats with Memory, Adjustable Steering Wheel, Wood Trim Interior, Cruise, Centre Armrest, Front Fog Lights, Multi-Function Wheel, Electric Windows, El Mirrors, Central Locking, Airbags, Radio/CD/MP3, Immobiliser, Keyless Entry, El Moonroof, Warranty, Petrol.|- Features|* Excellent Value For Money!", 24397, []);
	vehiclelist[17]=new Vehicle(1, false, 2007, "Volvo XC90 3.2 AWD 4x4", 22673, "Metallic Black", "manual", "- Description|ABS, ESP, Auto Air Con, Interior Air Filtration, Alloys, Leather Interior, El Adjust Seat, Traction Control, Cruise, Rain Sensors, Rear Parking Sensor, Front Fog Lights, Multi-Function Leather Wheel, Adjustable Steering Wheel, Electric Windows, Centre Armrest, El Heated Mirrors, Central Locking, Airbags, Radio/CD, Roof Rails, Sunroof, Keyless Entry, Multi-Function Remote, Immobilizer, Alarm, Privacy Glass, Warranty, All Wheel Drive, 6 Cylinder Gasoline Engine, Petrol.|- Features|* Excellent Value For Money!", 23937, []);
	vehiclelist[18]=new Vehicle(32, false, 2007, "Volvo S80 4.4L AWD Saloon", 14067, "Silver Metallic", "manual", "- Description|ABS, ESP, Auto Air Con, Interior Air Filtration, Alloys, Leather Interior with El Heated Seats, El Adjust Seats with Memory, Cruise, Centre Armrest, Trip computer, Wood Grain Interior Trim, Traction Control, Front Fog Lights, Multi-Function Wheel, Adjustable Steering Wheel, Electric Windows, El Mirrors, Central Locking, Airbags, Radio/CD, Immobiliser, Keyless Entry, Multi-Function Remote, Sunroof, All Wheel Drive, Dual Exhaust, Warranty, Petrol.|- Features|* Excellent Value For Money!", 23447, []);
	vehiclelist[19]=new Vehicle(5, false, 2006, "Volvo C70 Cabriolet", 19598, "Flint Gray Metallic", "manual", "- Description|ABS, ESP, Auto Air Con, Alloys, Leather Interior with El Heated Seats, El Adjust Seats with Memory, Traction Control, Adjustable Steering Wheel, Cruise, Centre Armrest, Front Fog Lights, Multi-Function Wheel, Electric Windows, El Mirrors, Central Locking, Airbags, Remote Keyless Entry, Radio/CD, Immobiliser, Petrol.|- Features|* Excellent Value For Money!", 23447, []);
	vehiclelist[20]=new Vehicle(12, false, 2006, "Volvo C70 Cabriolet", 23691, "Black Metallic", "manual", "- Description|ABS, ESP, Auto Air Con, Alloys, Leather Interior with El Heated Seats, El Adjust Seats, Telescopic Wheel, Cruise, Centre Armrest, Front Fog Lights, Multi-Function Wheel, Electric Windows, El Mirrors, Keyless Entry, Remote Trunk Lid, Remote Fuel Door, Central Locking, Airbags, Radio/CD, Immobiliser, Petrol.|- Features|* Excellent Value For Money!", 23397, []);
	vehiclelist[21]=new Vehicle(59, false, 2006, "Volvo XC90 V8 AWD 4x4", 27656, "Ice White Metallic", "manual", "- Description|ABS, ESP, Auto Air Con, Alloys, Leather Interior, El Adjust Seat with Memory, Traction Control, Cruise, Centre Armrest, Multi-Function Leather Wheel, Trip Computer, Rain Sensors, Front Fog Lights, Adjustable Steering Wheel, Electric Windows, El Heated Mirrors with Memory, Central Locking, Airbags, Radio/CD, Roof Rails, Sunroof, Keyless Entry, Immobilizer, Intermittent Wipers, Tinted Glass, Warranty, All Wheel Drive, 8 Cylinder Gasoline Engine, Petrol.|- Features|* Excellent Value For Money!", 22947, []);
	vehiclelist[22]=new Vehicle(33, false, 2007, "Volvo S80 4.4L AWD Saloon", 14440, "Crystal Green Metallic", "manual", "- Description|ABS, ESP, Auto Air Con, Alloys, Leather Interior, El Adjust Seat, Trip Computer, Traction Control, Adjustable Steering Wheel, Cruise, Centre Armrest, Interior Wood Trim, Front Fog Lights, Multi-Function Wheel, Electric Windows, El Mirrors, Central Locking, Airbags, Radio/CD/MP3, Premium Sound System, Immobiliser, Sunroof, All Wheel Drive, Warranty, Petrol.|- Features|* Excellent Value For Money!", 22797, []);
	vehiclelist[23]=new Vehicle(31, false, 2007, "Volvo S80 3.2L 2WD Saloon", 22708, "Grey Metallic", "manual", "- Description|ABS, ESP, Auto Air Con, Alloys, Leather Interior with El Heated Seats, El Adjust Seats with Memory, Traction Control, Adjustable Steering Wheel, Cruise, Centre Armrest, Multi-Function Wheel, Electric Windows, El Mirrors, Central Locking, Airbags, Radio/CD with CD Changer, Premium Sound System, Immobiliser, Keyless Entry, Sunroof, Warranty, Petrol.|- Features|* Excellent Value For Money!", 21397, []);
	vehiclelist[24]=new Vehicle(37, false, 2007, "Volvo V50 2.4i Estate", 16747, "Blue Metallic", "manual", "- Description|ABS, ESP, Auto Air Con, Alloys, El Heated Seats, El Adjust Seats, Adjustable Steering Wheel, Cruise, Centre Armrest, Multi-Function Wheel, Electric Windows, El Mirrors, Central Locking, Airbags, Radio/CD, Premium Sound System, Roof Rails, Sunroof, Warranty, Petrol.|- Features|* Excellent Value For Money!", 20797, []);
	vehiclelist[25]=new Vehicle(30, false, 2007, "Volvo S80 3.2L 2WD Saloon", 17913, "Silver Metallic", "manual", "- Description|ABS, ESP, Auto Air Con, Dual Climate Control Zone, Alloys, Leather Interior with El Heated Seats, El Adjust Seats, Traction Control, Adjustable Steering Wheel, Wood Trim Interior, Cruise, Centre Armrest, Front Fog Lights, Multi-Function Wheel, Electric Windows, El Mirrors, Central Locking, Airbags, Radio/CD with CD Changer, Premium Sound System, Immobiliser, Keyless Entry, Sunroof, Warranty, Petrol.|- Features|* Excellent Value For Money!", 20747, []);
	vehiclelist[26]=new Vehicle(53, false, 2007, "Volvo XC70 Estate", 22968, "Sage Metallic", "manual", "- Description|ABS, ESP, Auto Air Con, Alloys, Leather Interior, El Adjust Seats with Memory, Adjustable Steering Wheel, Cruise, Centre Armrest, Multi-Function Leather Wheel, Tyre Pressure Control, Outside Temperature Announcement, Front Fog Lights, Electric Windows, El Heated Mirrors, Central Locking, Airbags, Radio/CD, Roof Rails, El Sunroof, Keyless Entry, Intermittent Wipers, Alarm, All Wheel Drive, 5 Cylinder Turbo Engine, Warranty, Petrol.|- Features|* Excellent Value For Money!", 20497, []);
	vehiclelist[27]=new Vehicle(7, false, 2008, "Volvo C30 Hatchback", 11520, "Brilliant Blue Metallic", "manual", "- Description|ABS, ESP, Auto Air Con, Alloys, El Heated Seats, Adjustable Steering Wheel, Traction Control, Tire Pressure Monitor, Cruise, Centre Armrest, Front Fog Lights, Multi-Function Wheel, Electric Windows, El Mirrors, Central Locking, Keyless Entry, Airbags, Radio/CD/MP3, Immobiliser, Tinted Glass, Roof Spoiler, Warranty, Alarm, Petrol.|- Features|* Excellent Value For Money!", 19797, []);
	vehiclelist[28]=new Vehicle(54, false, 2007, "Volvo XC70 Estate", 12747, "Ruby Red Metallic", "manual", "- Description|ABS, ESP, Auto Air Con, Interior Air Filtration, Alloys, Leather Interior, El Adjust Driver Seat with Memory, Adjustable Steering Wheel, Cruise, Centre Armrest, Multi-Function Wheel, Electric Windows, El Heated Mirrors, Front Fog Lights, Central Locking, Airbags, Radio/CD, Roof Rails, Interval Wipers, All Wheel Drive, 5 Cylinder Turbo Engine, Warranty, Petrol.|- Features|* Excellent Value For Money!", 19497, []);
	vehiclelist[29]=new Vehicle(25, false, 2007, "Volvo S60 2.5T Saloon", 15011, "Barents Blue Metallic", "manual", "- Description|ABS, ESP, Air Con, Alloys, Interior Air Filtration, Leather Interior with El Adjust Seats, Cruise, Centre Armrest, Multi-Function Wheel, Electric Windows, El Mirrors, Front Fog Lights, Xenons, Central Locking, Airbags, Radio/CD, Remote Keyless Entry, Immobiliser, Sunroof, Cup Holder(s), Warranty, Petrol.|- Features|* Excellent Value For Money!", 19447, []);
	vehiclelist[30]=new Vehicle(38, false, 2007, "Volvo V50 T5 Estate", 17395, "Barents Blue Metallic", "manual", "- Description|ABS, ESP, Auto Air Con, Alloys, Leather Interior with El Heated Seats, El Adjust Seats, Adjustable Steering Wheel, Cruise, Centre Armrest, Multi-Function Wheel, Electric Windows, El Mirrors, Front Fog Lights, Xenons, Central Locking, Airbags, Radio/CD, Remote Keyless Entry, Roof Rails, Sunroof, Warranty, Petrol.|- Features|* Excellent Value For Money!", 19297, []);
	vehiclelist[31]=new Vehicle(24, false, 2007, "Volvo S40 T5 AWD Saloon", 12361, "Silver Metallic", "manual", "- Description|ABS, ESP, Auto Air Con, 17&#8221; Chrome Alloys, Leather Interior with El Heated Seats, El Adjust Seats, Traction Control, Adjustable Steering Wheel, Cruise, Centre Armrest, Multi-Function Wheel, Tire Pressure Control, Electric Windows, El Mirrors, Central Locking, Airbags, Radio/CD/MP3, Premium Sound System, Keyless Entry, Sunroof/Moonroof, 4 Wheel Drive, Immobiliser, Warranty, Petrol.|- Features|* Excellent Value For Money!", 19197, []);
	vehiclelist[32]=new Vehicle(28, false, 2008, "Volvo S60 2.5T Saloon", 18997, "Barents Blue Metallic", "manual", "- Description|ABS, ESP, Auto Air Con, Alloys, Leather Interior with El Heated Seats, El Adjust Seats with Memory, Adjustable Steering Wheel, Cruise, Centre Armrest, Front Fog Lights, Multi-Function Wheel, Tire Pressure Control, Electric Windows, El Mirrors, Central Locking, Airbags, Radio/CD/MP3, Keyless Entry, Sunroof/Moonroof, Immobiliser, Warranty, Petrol.|- Features|* Excellent Value For Money!", 18997, []);
	vehiclelist[33]=new Vehicle(27, false, 2007, "Volvo S60 2.5T Saloon", 9950, "Silver Metallic", "manual", "- Description|ABS, ESP, Auto Air Con, Alloys, Leather Interior with El Heated Seats, El Adjust Seats, Adjustable Steering Wheel, Cruise, Centre Armrest, Front Fog Lights, Multi-Function Wheel, Electric Windows, El Mirrors, Central Locking, Airbags, Radio/CD, Premium Sound System, Sunroof/Moonroof, Immobiliser, Warranty, Petrol.|- Features|* Excellent Value For Money!", 18747, []);
	vehiclelist[34]=new Vehicle(45, false, 2006, "Volvo V70 R AWD Estate", 22843, "Silver Metallic", "manual", "- Description|ABS, ESP, Auto Air Con, 17&#8221; Alloys, Interior Leather, El Adjust Seats, Outside Temperature Announcement, Traction Control, Cruise, Centre Armrest, Multi-Function Wheel, Adjustable Steering Wheel, Electric Windows, El Mirrors, Front Fog Lights, Bi-Xenons, Central Locking, Airbags, Radio/CD with 6 Speakers, Roof Spoiler, 5 Cylinder Turbo Engine, Petrol.|- Features|* Excellent Value For Money!", 18647, []);
	vehiclelist[35]=new Vehicle(52, false, 2007, "Volvo XC70 Estate", 13544, "Black Metallic", "manual", "- Description|ABS, ESP, Auto Air Con, Alloys, Leather Interior, El Adjust Seats, Adjustable Steering Wheel, Cruise, Centre Armrest, Multi-Function Leather Wheel, Front Fog Lights, Electric Windows, El Heated Mirrors, Central Locking, Airbags, Radio/CD, Roof Rails, El Sunroof, Keyless Entry, Intermittent Wipers, All Wheel Drive, 5 Cylinder Turbo Engine, Warranty, Petrol.|- Features|* Excellent Value For Money!", 18373, []);
	vehiclelist[36]=new Vehicle(51, false, 2007, "Volvo XC70 Estate", 27012, "Blue Metallic", "manual", "- Description|ABS, ESP, Auto Air Con, Interior Air Filtration, Alloys, Leather Interior, El Adjust Seats, Adjustable Steering Wheel, Cruise, Centre Armrest, Multi-Function Leather Wheel, Front Fog Lights, Xenon, Electric Windows, El Heated Mirrors, Central Locking, Airbags, Radio/CD, Roof Rails, El Sunroof, Keyless Entry, Intermittent Wipers, All Wheel Drive, 5 Cylinder Turbo Engine, Warranty, Petrol.|- Features|* Excellent Value For Money!", 18270, []);
	vehiclelist[37]=new Vehicle(26, false, 2007, "Volvo S60 2.5T Saloon", 23662, "Silver Metallic", "manual", "- Description|ABS, ESP, Air Con, Alloys, Interior Air Filtration, Leather Interior with El Adjust Driver Seats, Cruise, Centre Armrest, Multi-Function Wheel, Electric Windows, El Mirrors, Front Fog Lights, Central Locking, Airbags, Radio/CD/, Multi-Function Remote, Immobiliser, Warranty, Petrol.|- Features|* Excellent Value For Money!", 17997, []);
	vehiclelist[38]=new Vehicle(49, false, 2007, "Volvo XC70 Estate", 2033, "Silver Metallic", "manual", "- Description|ABS, ESP, Auto Air Con, Interior Air Filtration, Alloys, Leather Interior, El Adjust Seats with Memory, Adjustable Steering Wheel, Cruise, Centre Armrest, Interior Wood Trim, Multi-Function Leather Wheel, Traction Control, Trip computer, External Temperature Display, Front Fog Lights, Electric Windows, El Heated Mirrors with Memory, Central Locking, Airbags, Radio/CD with 6 Speakers, Roof Rails, Sunroof, Multi-Function Remote, Keyless Entry, Intermittent Wipers, Alarm, All Wheel Drive, 5 Cylinder Turbo Engine, Warranty, Petrol.|- Features|* Excellent Value For Money!", 17997, []);
	vehiclelist[39]=new Vehicle(50, false, 2007, "Volvo XC70 Estate", 20219, "Silver Metallic", "manual", "- Description|ABS, ESP, Auto Air Con with Dual Zone Climate Control, Interior Air Filtration, Alloys, Leather Interior, El Adjust Seats with Memory, Adjustable Steering Wheel, Cruise, Centre Armrest, Interior Wood Trim, Multi-Function Leather Wheel, Trip computer, External Temperature Display, Front Fog Lights, Electric Windows, El Heated Mirrors, Central Locking, Airbags, Radio/CD, Roof Rails, Sunroof, Multi-Function Remote Trunk/Hatch/Door, Keyless Entry, Intermittent Wipers, All Wheel Drive, 5 Cylinder Turbo Engine, 208 Horsepower, Warranty, Petrol.|- Features|* Excellent Value For Money!", 17997, []);
	vehiclelist[40]=new Vehicle(10, false, 2007, "Volvo C30 2.4i Momentum Hatchback", 10000, "Metallic Black", "manual", "- Description|170BHP, ABS, ESP, Auto Air Con, Alloys, Cloth Interior with Heated, Elec Adjust Seats,  Onboard Computer, Cruise, Xenons, Rain Sensor, Centre Armrest, Front Fog Lights, Multi-Function Wheel, Electric Windows and Mirrors, Central Locking, Airbags, Stereo, Immobiliser and Alarm System|- Features|* Excellent Value For Money!", 17797, []);
	vehiclelist[41]=new Vehicle(23, false, 2006, "Volvo S40 T5 AWD Saloon", 25480, "Silver Metallic", "manual", "- Description|ABS, ESP, Air Con, Alloys, Interior Air Filtration, Leather Interior, El Adjust Driver Seats, Traction Control, Cruise, Centre Armrest, Multi-Function Wheel, Electric Windows, El Mirrors, Front Fog Lights, Central Locking, Airbags, Radio/CD, Immobiliser, Multi-Function Remote, Warranty, Petrol.|- Features|* Excellent Value For Money!", 17197, []);
	vehiclelist[42]=new Vehicle(43, false, 2007, "Volvo V70 2.5T FWD Estate", 14792, "Light Silver Metallic", "manual", "- Description|ABS, ESP, Auto Air Con, Alloys, Interior Leather with Heated Seats, El Adjust Seat with Memory, Adjustable Steering Wheel, Traction Control, Cruise, Parking Sensors, Centre Armrest, Wood Trim, Multi-Function Wheel, Electric Windows, El Mirrors, Front Fog Lights, Central Locking, Airbags, Radio/CD with CD Changer, Intermittent Wipers, Moonroof, Security System, Petrol.|- Features|* Excellent Value For Money!", 16797, []);
	vehiclelist[43]=new Vehicle(36, false, 2006, "Volvo V50 2.4i Estate", 27683, "Black Metallic", "manual", "- Description|ABS, ESP, Auto Air Con, Alloys, Leather Interior with El Heated Seats, El Adjust Seats, Adjustable Steering Wheel, Cruise, Centre Armrest, Front Fog Lights, Multi-Function Wheel, Electric Windows, El Mirrors, Central Locking, Airbags, Keyless Entry, Radio/CD, Anti Theft Device, Security System, Sunroof, Warranty, Petrol.|- Features|* Excellent Value For Money!", 16747, []);
	vehiclelist[44]=new Vehicle(42, false, 2006, "Volvo V70 2.5T FWD Estate", 18091, "Graphite Metallic", "manual", "- Description|ABS, ESP, Auto Air Con, Alloys, Interior Leather with Heated Seats, El Adjust Seat with Memory, Adjustable Steering Wheel, Traction Control, Cruise, Centre Armrest, Multi-Function Wheel, Electric Windows, El Mirrors, Front Fog Lights, Central Locking, Airbags, Radio/CD, Intermittent Wipers, Petrol.|- Features|* Excellent Value For Money!", 16597, []);
	vehiclelist[45]=new Vehicle(40, false, 2006, "Volvo V50 T5 AWD Estate", 29416, "Silver Metallic", "manual", "- Description|ABS, ESP, Auto Air Con, Alloys, Leather Interior with El Heated Seats, El Adjust Seats with Memory, Adjustable Steering Wheel, Cruise, Rain Sensor, Headlamp Washer, Centre Armrest, Front Fog Lights, Multi-Function Wheel, Electric Windows, El Mirrors, Central Locking, Airbags, Remote Keyless Entry, Radio/CD with CD Changer, Premium Sound System, Security System, All wheel drive, Warranty, Petrol.|- Features|* Excellent Value For Money!", 16447, []);
	vehiclelist[46]=new Vehicle(6, false, 2001, "Volvo C30 Hatchback", 10299, "Cosmic White Metallic", "manual", "- Description|ABS, ESP, Auto Air Con, Alloys, El Heated Seats, Elec Adjust Seats, Adjustable Steering Wheel, Traction Control, Cruise, Centre Armrest, Front Fog Lights, Multi-Function Wheel, Electric Windows, El Mirrors, Central Locking, Keyless Entry, Airbags, Radio/CD/MP3, Dolby Pro Logic II Surround Sound with 10 Loudspeakers, Immobiliser, Tinted Glass, Roof Spoiler, Warranty, Petrol.|- Features|* Excellent Value For Money!", 15998, []);
	vehiclelist[47]=new Vehicle(20, false, 2007, "Volvo S40 2.4i Saloon", 15321, "White Metallic", "manual", "- Description|ABS, ESP, Air Con, Alloys, Leather Interior with El Heated Seats, Traction Control, Cruise, Centre Armrest, Outside Temperature Announcement, Multi-Function Leather Wheel, Electric Windows, El Mirrors, Central Locking, Keyless Entry, Airbags, Radio/CD with 6 Disc CD Changer, Immobiliser, Sunroof, Warranty, Petrol.|- Features|* Excellent Value For Money!", 15797, []);
	vehiclelist[48]=new Vehicle(21, false, 2007, "Volvo S40 2.4i Saloon", 16776, "Silver Metallic", "manual", "- Description|ABS, ESP, Air Con, Alloys, Leather Interior with El Heated Seats, Traction Control, Cruise, Centre Armrest, Multi-Function Leather Wheel, Electric Windows, El Mirrors, Central Locking, Airbags, Radio/CD with 6 Disc CD Changer, Immobiliser, Sunroof, Warranty, Petrol.|- Features|* Excellent Value For Money!", 15797, []);
	vehiclelist[49]=new Vehicle(8, false, 2008, "Volvo C30 Hatchback", 5937, "Passion Red Metallic", "manual", "- Description|ABS, ESP, Auto Air Con, Alloys, El Heated Seats, Cruise, Centre Armrest, Multi-Function Wheel, Electric Windows, El Mirrors, Central Locking, Airbags, Radio/CD, Tinted Glass, Immobiliser, Warranty, Petrol.|- Features|* Excellent Value For Money!", 15747, []);
	vehiclelist[50]=new Vehicle(19, false, 2007, "Volvo S40 2.4i Saloon", 27500, "Blue Metallic", "manual", "- Description|ABS, ESP, Air Con, Alloys, El Seats, Traction Control, Cruise, Centre Armrest, Multi-Function Wheel, Electric Windows, El Mirrors, Central Locking, Airbags, Radio/CD, Immobiliser, Sunroof, Petrol.|- Features|* Excellent Value For Money!", 15397, []);
	vehiclelist[51]=new Vehicle(22, false, 2006, "Volvo S40 T5 Saloon", 5185, "Brilliant Blue Metallic", "manual", "- Description|ABS, ESP, Air Con, Interior Air Filtration, Alloys, El Heated Seats, El Adjust Driver Seat with Memory, External Temperature Display, Traction Control, Cruise, Centre Armrest, Multi-Function Wheel, Electric Windows, El Mirrors, Central Locking, Airbags, Radio/CD, Immobiliser, Multi-Function Remote, Petrol.|- Features|* Excellent Value For Money!", 14697, []);
	vehiclelist[52]=new Vehicle(9, false, 2007, "Volvo C30 1.6 D Climatronic Hatchback", 22178, "Silver", "manual", "- Description|Warranty, ABS, ESP, ASR, Auto Air Con, Alloys, Centre Armrest, Electric Windows and Mirrors, Central Locking, 8x Airbags, Radio/CD, Immobiliser and Alarm System|- Features|* Excellent Value For Money!", 13847, []);
	vehiclelist[53]=new Vehicle(3, false, 2007, "Volvo V40 Saloon", 27012, "Blue Metallic", "manual", "- Description|ABS, ESP, Auto Air Con, Alloys, El Heated Seats, Traction Control, Cruise, Centre Armrest, Multi-Function Leather Wheel, Outside Temperature Announcement, Tilt and Telescopic Wheel, Electric Windows, El Mirrors, Central Locking, Keyless Entry, Airbags, Radio/CD, Immobiliser, Cup Holder(s), Remote Keyless Entry, Sunroof/Moonroof, Air Filtration, Petrol.|- Features|* Excellent Value For Money!", 13747, []);
	vehiclelist[54]=new Vehicle(4, false, 2006, "Volvo V40 Saloon", 21320, "Barents Blue Metallic", "manual", "- Description|ABS, ESP, Auto Air Con, Alloys, El Heated Seats, Traction Control, Cruise, Centre Armrest, Multi-Function Leather Wheel, Rain Sensors, Tilt and Telescopic Wheel, Electric Windows, El Mirrors, Central Locking, Keyless Entry, Airbags, Radio/CD 6-disc Cd Changer, Immobiliser, Cup Holder(s), Remote Keyless Entry, Sunroof, Warranty, Alarm, Petrol.|- Features|* Excellent Value For Money!", 13747, []);
	vehiclelist[55]=new Vehicle(41, false, 2006, "Volvo V70 2.4 FWD Estate", 24081, "Lt.Green Metallic", "manual", "- Description|ABS, ESP, Auto Air Con, Alloys, Adjustable Steering Wheel, Traction Control, Cruise, Centre Armrest, Multi-Function Wheel, Electric Windows, El Mirrors, Front Fog Lights, Central Locking, Airbags, Radio/CD, Petrol.|- Features|* Excellent Value For Money!", 13397, []);
	vehiclelist[56]=new Vehicle(17, false, 2007, "Volvo S40 2.4i Saloon", 23156, "Black Metallic", "manual", "- Description|ABS, ESP, Auto Air Con, Alloys, El Heated Seats, Traction Control, Cruise, Centre Armrest, Front Fog Lights, Multi-Function Wheel, Electric Windows, El Mirrors, Keyless Entry, Central Locking, Airbags, Radio/CD with CD Changer, Immobiliser, Alarm, Petrol.|- Features|* Excellent Value For Money!", 12597, []);
	vehiclelist[57]=new Vehicle(18, false, 2007, "Volvo S40 2.4i Saloon", 20494, "Silver Metallic", "manual", "- Description|ABS, ESP, Auto Air Con, Alloys, El Heated Seats, Traction Control, Cruise, Centre Armrest, Front Fog Lights, Multi-Function Wheel, Electric Windows, El Mirrors, Keyless Entry, Central Locking, Airbags, Radio/CD with 6 Loudspeakers, Immobiliser, Air Filtration, Sunroof, Alarm, Petrol.|- Features|* Excellent Value For Money!", 12597, []);
	vehiclelist[58]=new Vehicle(16, false, 2006, "Volvo S40 2.4i Saloon", 28742, "Black Metallic", "manual", "- Description|ABS, ESP, Auto Air Con, Alloys, El Heated Seats, Traction Control, Trip Computer, Cruise, Centre Armrest, Front Fog Lights, Multi-Function Wheel, Electric Windows, El Mirrors, Keyless Entry, Central Locking, Airbags, Radio/CD, Immobiliser, Sun/Moon Roof, Petrol.|- Features|* Excellent Value For Money!", 11997, []);
}
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);

