var country = -1;
var cityList;
var dealerList;

/* these scripts deal with populating the dealer fields on the registration form */
/* as I don't know how the signup app expects the data, they'll probably need changing */

/* sets up the list of cities and dealers and disables the fields we aren't using yet */
function fnLoadRegister() {
	cityList = document.getElementById('dealercity');
	dealerList = document.getElementById('dealername');
	cityList.disabled = true;
	dealerList.disabled = true;
}

function resetDealers() {
	dealerList.innerHTML = '';
	tempOption = document.createElement('option');
	tempOption.innerHTML = 'Select dealership';
	dealerList.appendChild(tempOption);
}

function resetCities() {
	cityList.innerHTML = '';
	tempOption = document.createElement('option');
	tempOption.innerHTML = 'Select Town/City';
	cityList.appendChild(tempOption);
}

/* load list of cities for specified country */
function loadCities(countryId) {
	resetDealers();
	if (countryId == "none") resetCities();
	var cities = [];
	
	switch(countryId) {
		case "AU": // Australia
			cities[0] = 'South Australia';
			cities[1] = 'Queensland';
			cities[2] = 'Western Australia';
			cities[3] = 'Victoria';
			cities[4] = 'New South Wales';
			break;
		case "AT": // Austria
			cities[0] = 'Salzburg';
			cities[1] = 'Vienna';
			break;
		case "BE":	// Belgium
			cities[0] = 'Antwerp';
			cities[1] = 'Brussels';
			break;
		case "CA":	// Canada
			cities[0] = 'Vancouver';
			cities[1] = 'Toronto';
			cities[2] = 'Montreal';
			break;		
		case "CN":	// China
			cities[0] = 'Beijing';
			cities[1] = 'Shanghai';
			break;		
		case "DK":	// Denmark
			cities[0] = 'Copenhagen';
			break;	
		case "FR":	// France
			cities[0] = 'Cannes';
			cities[1] = 'Bordeaux';
			cities[2] = 'Paris';
			cities[3] = 'Ivry';
			cities[4] = 'Lyon';
			break;		
		case "DE":	// Germany
			cities[0] = 'Hamburg';
			cities[1] = 'Bremen';
			cities[2] = 'Dresden - Radebeul';
			cities[3] = 'Koln';
			cities[4] = 'Dortmund';
			cities[5] = 'Memmingen';
			cities[6] = 'Dusseldorf';
			cities[7] = 'Frankfurt';
			cities[8] = 'Munchen';
			cities[9] = 'Aachen';
			cities[10] = 'Berlin';
			cities[11] = 'Mannheim';
			cities[12] = 'Moll';
			cities[13] = 'Stuttgart';
			break;
		case "HK":	// Hong Kong
			cities[0] = 'Hong Kong';
			break;
		case "IT":	// Italy
			cities[0] = 'Rome';
			cities[1] = 'Bologna';
			cities[2] = 'Milano';
			cities[3] = 'Padova';
			break;	
		case "JP":	// Japan
			cities[0] = 'Akasaka - Tokyo';
			cities[1] = 'Osaka';
			cities[2] = 'Nagoya';
			cities[3] = 'Azabudai - Tokyo';
			break;		
		case "MC":	// Monaco
			cities[0] = 'Monte Carlo';
			break;	
		case "NZ":	// New Zealand
			cities[0] = 'Auckland';
			break;
		case "NO":	// Norway
			cities[0] = 'Oslo';
			break;		
		case "PT":	// Portugal
			cities[0] = 'Porto';
			cities[1] = 'Lisbon';
			break;
		case "RU":	// Russia
			cities[0] = 'Moscow';
			break;
		case "SG":	// Singapore
			cities[0] = 'Tuas Basin Link';
			break;
		case "ZA":	// South Africa
			cities[0] = 'Sandton';
			cities[1] = 'Cape Town';
			break;		
		case "ES":	// Spain
			cities[0] = 'Marbella';
			cities[1] = 'Barcelona';
			cities[2] = 'Madrid';
			cities[3] = 'Valencia';
			break;		
		case "CH":	// Switzerland
			cities[0] = 'Cadenazzo';
			cities[1] = 'Geneva';
			cities[2] = 'Safenwil';
			cities[3] = 'Zurich';
			cities[4] = 'Bern';
			break;		
		case "NL":	// The Netherlands
			cities[0] = 'Eindhoven';
			cities[1] = 'Hilversum';
			break;
		case "UK":	// United Kingdom
			cities[0] = 'Northern Ireland';
			cities[1] = 'Cheshire';
			cities[2] = 'Scotland';
			cities[3] = 'Cambridge';
			cities[4] = 'Reading';
			cities[5] = 'Kent';
			cities[6] = 'Devon';
			cities[7] = 'Gloucestershire';
			cities[8] = 'Essex';
			cities[9] = 'Hertfordshire';
			cities[10] = 'West Sussex';
			cities[11] = 'Surrey';
			cities[12] = 'Jersey';
			cities[13] = 'Leeds';
			cities[14] = 'Cobham';
			cities[15] = 'Buckinghamshire';
			cities[16] = 'West Midlands';
			cities[17] = 'South Wales';
			cities[18] = 'Derbyshire';
			cities[19] = 'Middlesex';
			cities[20] = 'London';
			cities[21] = 'Tyne and Wear';
			cities[22] = 'Norfolk';
			cities[23] = 'Other';
			break;		
		case "US":	// USA
			cities[0] = 'California - San Diego';
			cities[1] = 'Michigan - Troy';
			cities[2] = 'Texas - Houston';
			cities[3] = 'Arizona - Scottsdale';
			cities[4] = 'Florida - Naples';
			cities[5] = 'Pennsylvania - Wexford';
			cities[6] = 'Florida - West Palm Beach';
			cities[7] = 'Washington - Bellvue';
			cities[8] = 'New York - Roslyn';
			cities[9] = 'New York - Port Washington';
			cities[10] = 'Missouri - St Louis';
			cities[11] = 'Massachusetts - Waltham';
			cities[12] = 'Texas - Dallas';
			cities[13] = 'California - Los Angeles';
			cities[14] = 'North Carolina - Greensboro';
			cities[15] = 'California - Rancho Mirage';
			cities[16] = 'New Jersey - Edison';
			cities[17] = 'California - Walnut Creek';
			cities[18] = 'Florida - Coal Gables';
			cities[19] = 'California - Orange County';
			cities[20] = 'California - Marin';
			cities[21] = 'California - Los Gatos';
			cities[22] = 'Virginia - Vienna';
			cities[23] = 'Georgia - Roswell';
			cities[24] = 'California - Beverly Hills';
			cities[25] = 'Florida - Tampa';
			cities[26] = 'Walnut Creek';
			cities[27] = 'New Jersey - Palmyra';
			cities[28] = 'Nevada - Las Vegas';
			cities[29] = 'Illinois - Lake Bluff';
			cities[30] = 'Ohio - Dublin';
			cities[31] = 'Connecticut - Greenwich';
			cities[32] = 'New Jersey - Edison';
			cities[33] = 'Colorado - Denver';
			cities[34] = 'Other';
			break;		
		case "KW":	// Kuwait
			cities[0] = 'Other';
			break;		
		case "LB":	// Lebanon
			cities[0] = 'Other';
			break;		
		case "MID":	// Middle East
			cities[0] = 'Other';
			break;		
		case "QA":	// Qatar
			cities[0] = 'Other';
			break;
		default:
			country = -1;
			cityList.disabled = true;
			dealerList.disabled = true;
			return false;
			break;
	}
	
	resetCities();
	for(i=0;i<cities.length;i++) {
		tempOption = document.createElement('option');
		tempOption.innerHTML = cities[i];
		tempOption.value = i;
		cityList.appendChild(tempOption);
	}
	
	cityList.disabled = false;
	country = countryId;
}

/* load list of dealers for selected country */
function loadDealerList() {
	var dealers = [];
	switch(country) {
		case "AU": // Australia
			dealers[0] = new Array('Solitaire Aston Martin');
			dealers[1] = new Array('Sunshine Aston Martin');
			dealers[2] = new Array('Barbagallo Aston Martin');
			dealers[3] = new Array('Trivett Classic Aston Martin Melbourne');
			dealers[4] = new Array('Trivett Classic Aston Martin Sydney');
			break;
		case "AT": // Austria
			dealers[0] = new Array('Aston Martin Salzburg');
			dealers[1] = new Array('Aston Martin Wien');
			break;
		case "BE":	// Belgium
			dealers[0] = new Array('Aston Martin Antwerp');
			dealers[1] = new Array('Aston Martin Brussels NV-SA');
			break;
		case "CA":	// Canada
			dealers[0] = new Array('MCL Motor Cars');
			dealers[1] = new Array('Aston Martin of Ontario');
			dealers[2] = new Array('Decarie Motors');
			break;		
		case "CN":	// China
			dealers[0] = new Array('Aston Martin Beijing');
			dealers[1] = new Array('Aston Martin Shanghai');
			break;		
		case "DK":	// Denmark
			dealers[0] = new Array('Aston Martin Denmark');
			break;	
		case "FR":	// France
			dealers[0] = new Array('Royal Motors Cannes');
			dealers[1] = new Array('Auto Performance Bordeaux');
			dealers[2] = new Array('Auto Performance');
			dealers[3] = new Array('Auto Performance Ivry - Bodyshop');
			dealers[4] = new Array('Auto Performance Lyon');
			break;		
		case "DE":	// Germany
			dealers[0] = new Array('Tamsen GmbH');
			dealers[1] = new Array('Tamsen Bremen');
			dealers[2] = new Array('Thomas Exclusive Cars GmbH');
			dealers[3] = new Array('Royal Motors Kempen GmbH');
			dealers[4] = new Array('Aston Martin Dortmund');
			dealers[5] = new Array('Aston Martin Allgau');
			dealers[6] = new Array('Aston Martin Dusseldorf');
			dealers[7] = new Array('Aston Martin Kronberg');
			dealers[8] = new Array('Aston Martin Munchen');
			dealers[9] = new Array('Hauswirth Exclusiv-Car GmbH');
			dealers[10] = new Array('Krauthahn Berlin');
			dealers[11] = new Array('Kroymans Autohaus Mannheim GmbH');
			dealers[12] = new Array('Moll Sportwagen GmbH');
			dealers[13] = new Array('Schwabengarage AG');
			break;
		case "HK":	// Hong Kong
			dealers[0] = new Array('MF Jebsen Automotive Ltd.');
			break;
		case "IT":	// Italy
			dealers[0] = new Array('Aston Martin Roma');
			dealers[1] = new Array('EmilianAuto Spa');
			dealers[2] = new Array('Aston Martin Milano S.R.L.');
			dealers[3] = new Array('Aston Martin Padova S.R.L.');
			break;	
		case "JP":	// Japan
			dealers[0] = new Array('Aston Martin Akasaka');
			dealers[1] = new Array('Aston Martin Osaka Hakko');
			dealers[2] = new Array('Aston Martin Nagoya');
			dealers[3] = new Array('Atlantic Cars Limited');
			break;		
		case "MC":	// Monaco
			dealers[0] = new Array('British Motors SAM - Head Office');
			break;	
		case "NZ":	// New Zealand
			dealers[0] = new Array('Independent Prestige Limited');
			break;
		case "NO":	// Norway
			dealers[0] = new Array('AS Insignia');
			break;		
		case "PT":	// Portugal
			dealers[0] = new Array('AML Sport S.A.');
			dealers[1] = new Array('AML Sport S.A. Lisboa');
			break;
		case "RU":	// Russia
			dealers[0] = new Array('Aston Martin Moscow');
			break;
		case "SG":	// Singapore
			dealers[0] = new Array('Aston Martin Lagonda (SEA) Pte Ltd.');
			break;
		case "ZA":	// South Africa
			dealers[0] = new Array('Aston Martin Sandton');
			dealers[1] = new Array('Aston Martin Cape Town');
			break;		
		case "ES":	// Spain
			dealers[0] = new Array('C De Salamanca SA - Marbella');
			dealers[1] = new Array('Aston Martin Barcelona');
			dealers[2] = new Array('C De Salamanca SA - Madrid');
			dealers[3] = new Array('Aston Martin Valencia');
			break;		
		case "CH":	// Switzerland
			dealers[0] = new Array('Garage Tarcisio Pasta SA');
			dealers[1] = new Array('Keller Motorcars Geneva SA');
			dealers[2] = new Array('Emil Frey AG, Aston Martin Safenwil');
			dealers[3] = new Array('Emil Frey AG, Aston Martin Zurich');
			dealers[4] = new Array('Roos Engineering Ltd. - Heritage');
			break;		
		case "NL":	// The Netherlands
			dealers[0] = new Array('Cito Motors B.V.');
			dealers[1] = new Array('Kroymans Aston Martin B.V.');
			break;
		case "UK":	// United Kingdom
			dealers[0] = new Array('Charles Hurst Limited');
			dealers[1] = new Array('Stratstone of Wilmslow');
			dealers[2] = new Array('Murray Motor Company');
			dealers[3] = new Array('Lancaster Cambridge');
			dealers[4] = new Array('Lancaster Reading');
			dealers[5] = new Array('Lancaster Sevenoaks');
			dealers[6] = new Array('Grange of Exeter');
			dealers[7] = new Array('Broughtons Aston Martin');
			dealers[8] = new Array('Grange Aston Martin');
			dealers[9] = new Array('Grange Welwyn');
			dealers[10] = new Array('Harwoods Aston Martin');
			dealers[11] = new Array('HWM Aston Martin');
			dealers[12] = new Array('Jacksons (C.I.) Ltd.');
			dealers[13] = new Array('JCT600 Aston Martin Brooklands');
			dealers[14] = new Array('R.S. Williams Ltd. - Heritage');
			dealers[15] = new Array('Stratstone Aston Martin Amershame');
			dealers[16] = new Array('Stratstone Aston Martin Birmingham');
			dealers[17] = new Array('Stratstone Aston Martin Cardiff');
			dealers[18] = new Array('Stratstone Aston Martin Derby');
			dealers[19] = new Array('Stratstone of Mayfair - Isleworth');
			dealers[20] = new Array('Stratstone of Mayfair - Park Lane','Stratstone of Mayfair - Western Avenue');
			dealers[21] = new Array('Stratstone Tyne and Wear'); 
			dealers[22] = new Array('Stratton Motor Company (Norfolk) Ltd.');
			dealers[23] = new Array('Other UK');
			break;		
		case "US":	// USA
			dealers[0] = new Array('Aston Martin of San Diego');
			dealers[1] = new Array('Aston Martin of Troy');
			dealers[2] = new Array('Star Motor Cars');
			dealers[3] = new Array('Scottsdale Aston Martin');
			dealers[4] = new Array('Aston Martin Naples');
			dealers[5] = new Array('Bobby Rahal Aston Martin');
			dealers[6] = new Array('Aston Martin Palm Beach');
			dealers[7] = new Array('Park Place Aston Martin');
			dealers[8] = new Array('Miller Motorcars');
			dealers[9] = new Array('Miller Motorcars');
			dealers[10] = new Array('Moore Aston Martin');
			dealers[11] = new Array('Aston Martin of New England');
			dealers[12] = new Array('Aston Martin Dallas');
			dealers[13] = new Array('Galpin Aston Martin');
			dealers[14] = new Array('Foreign Cars Aston Martin');
			dealers[15] = new Array('Desert European');
			dealers[16] = new Array('Ray Catena');
			dealers[17] = new Array('Cole European');
			dealers[18] = new Array('The Collection');
			dealers[19] = new Array('Bauer Aston Martin');
			dealers[20] = new Array('Aston Martin Marin');
			dealers[21] = new Array('Aston Martin Silicon Valley');
			dealers[22] = new Array('Aston Martin Tysons');
			dealers[23] = new Array('Aston Martin of Atlanta');
			dealers[24] = new Array('Aston Martin of Beverly Hills');
			dealers[25] = new Array('Aston Martin of Tampa Bay');
			dealers[26] = new Array('Cole European - Parts & Service');
			dealers[27] = new Array('F C Kerbeck Aston Martin');
			dealers[28] = new Array('Gaudin Aston Martin of Las Vegas');
			dealers[29] = new Array('Lake Forest Sports Cars Ltd.');
			dealers[30] = new Array('Midwestern Auto Group');
			dealers[31] = new Array('Miller Motor Cars Inc.');
			dealers[32] = new Array('Ray Catena - Service');
			dealers[33] = new Array('Sill-Terhar Aston Martin');
			dealers[34] = new Array('Other USA');
			break;		
		case "KW":	// Kuwait
			dealers[0] = new Array('Other Kuwait');
			break;		
		case "LB":	// Lebanon
			dealers[0] = new Array('Other Lebanon');
			break;		
		case "MID":	// Middle East
			dealers[0] = new Array('Other Middle East');
			break;		
		case "QA":	// Qatar
			dealers[0] = new Array('Other');
			break;
	}
	return dealers;
}

/* load dealers for selected city */
function loadDealers(cityId) {
	var dealers = [];
	var dealersList = loadDealerList();
	var tempOption;
	
	dealers = dealersList[cityId];
	resetDealers();
	for(i=0;i<dealers.length;i++) {
		tempOption = document.createElement('option');
		tempOption.innerHTML = dealers[i];
		tempOption.value = dealers[i];
		dealerList.appendChild(tempOption);
	}
	dealerList.disabled = false;
}