$.validator.addMethod(
        "bookingDate",
        function(value, element) {
            var check = false;
            var month = $('#month').val();
			var year = $('#year').val();
			var day = $('#day').val();
			var selectedDate = new Date(year, month, day);
            return this.optional(element) || selectedDate > new Date();
        },
        "Please check your input."
);

$(document).ready(function() {
	$("#owner").hide();
	$("#non_owner").hide();
	
	populateYearOptions();
	populateManufacturedYearOptions();
	populateCarMakeOptions();
	$('#year').rules('add', {bookingDate:true});
	$('#month').rules('add', {bookingDate:true});
	$('#day').rules('add', {bookingDate:true});
});

function populateYearOptions(){
	var dteNow = new Date();
	var intYear = dteNow.getFullYear();
	var options = [];
	options.push('<option value="">Select Year</option>');
	options.push('<option value="' + intYear + '">' + intYear + '</option>');
	intYear = intYear + 1;
	options.push('<option value="' + intYear + '">' + intYear + '</option>');
	$('#year').html(options.join(''));
	
}

function populateManufacturedYearOptions(){
	var dteNow = new Date();
	var intYear = dteNow.getFullYear();
	var options = [];
	options.push('<option value="">Please select</option>');
	
	for (i=1960;i<=intYear;i++)
	{
		options.push('<option value="' + i + '">' + i + '</option>');
	}
	
	$('#currentCarYearManufactured').html(options.join(''));
}

function populateCarMakeOptions(){
	var options = ["Alfa", "Audi", "BMW", "Chevrolet", "Chrysler", "Citroen", "Daihatsu", "Fiat", "Ford", "Honda", "Hyundai", "Isuzu", "Jaguar", "Jeep", "KIA", "Land Rover", "Mazda", "Mercedes", "Mini", "Mitsubishi", "Nissan", "Opel", "Perodua", "Peugeot", "Proton", "Renault", "Rover", "SAAB", "Ssang Yong", "Subaru", "Suzuki", "Toyota", "Volkswagen", "Volvo", "Others"];
	options = jQuery.map(options, function(n, i){
      return ('<option value="'+ n + '">' + n + '</option>');
    });
	$('#currentCarMake').html('<option value="">Please select</option>' + options.join(''));
}

$("input[name=ownership]").change(function(){
	if($("input[name=ownership]:checked").val() == "Yes"){
		$("#owner").show();
		$("#non_owner").hide();
		$("input[name=carRegNo]").addClass('required');
		$("input[name=icNo]").addClass('required');
		$("input[name=icNo2]").removeClass('required');
	} else {
		$("#owner").hide();
		$("#non_owner").show();
		$("input[name=carRegNo]").removeClass('required');
		$("input[name=icNo]").removeClass('required');
		$("input[name=icNo2]").addClass('required');
	}
});

$('#currentSate').change(function(){
	$.getJSON('/dotCMS/getDealersInJson', {'state':$(this).val(), 'action':'getDealerWithTestdriveModels'}, function(data){
		var townOptions = [];
		var tmpTown = '';
		$('#modelsSection').html('');
		townOptions.push('<option value="">Please select</option>');
		$.each(data, function(index,town) {
			if (tmpTown == '') {
				tmpTown = town.town;
				townOptions.push('<optgroup label="' + tmpTown + '">');
			}
			if (tmpTown != town.town) {
				townOptions.push('</optgroup>');
				tmpTown = town.town;
				townOptions.push('<optgroup label="' + tmpTown + '">');
			}
			townOptions.push('<option value="' + town.id + '">' + town.address + '</option>');
		});
		townOptions.push('</optgroup>');
		$('#dealerId').html(townOptions.join(''));
	});
});
	
$('#dealerId').change(function(){
	var selectedDealer = $('#dealerId').val();
		
	if (selectedDealer == ''){
		$('#modelsSection').html('');
		return ;
	}
	$.getJSON('/dotCMS/getDealersInJson', {'id': $(this).val(), 'action':'getDealerTestDriveModels'}, function(data){
		if (data[0].toUpperCase() == 'NULL') {
			return;		
		}
		var models = [];
		models.push('<li class="title">Please select the model you are<br />interested in</li><div class="model_list">');
		
		$.each(data, function(index, model){
			model = model.charAt(0).toUpperCase() + model.slice(1);
			models.push('<li class="title_checkbox">');
			//if (index == 0) {
			//	models.push(': ');
			//} else if (index % 3 == 0){
			//	models.push('&nbsp;&nbsp;');
			//}				
			models.push('<input name="modelsInterested" type="checkbox" value="' + model + '" /> ' + model + '</li>');
		});
		models.push('</div>');
		$('#modelsSection').html(models.join(''));
	});
});

$('#month').change(function(){
	var selectedMonth = $(this).val();
	if (selectedMonth == '') {
		$('#day').html('');
		return;
	}
	var bound = 31;
	
	switch(selectedMonth) {
		case '2':
			bound = 28;
			break;
		case '4':
		case '6':
		case '9':
		case '11':
			bound = 30;
			break;
		default :
			bound = 31;
			break;
	}
	
	var options = [];
	options.push('<option value="">Select Day</option>');
	
	for (i=1;i<=bound;i++)
	{
		options.push('<option value="' + i + '">' + i + '</option>');
	}
	
	$('#day').html(options.join(''));
});

$('#currentCarMake').change(function(){
	var selectedCarMake = $(this).val();
	var options;
	if (selectedCarMake == ''){
		$('#currentCarModel').html('<option value="">Please select</option>' );
		return ;
	} 
	
	switch(selectedCarMake) {		
		case "Alfa" :
			options = ["147", "147 GTA", "156", "156 GTA", "156 Sportwagon", "166 3.0", "GT"];
			break;
		case "Audi" :
			options = ["A3", "A4", "A6", "A8", "TT", "Q7", "R8"];
			break;
		case "BMW":
			options = ["1 series", "3 series", "5 series", "6 series", "7 series", "X3", "X5", "Z4", "M models"];
			break;
		case "Chevrolet":
			options = ["Aveo", "Optra", "Lumina", "Nabira", "Spark"];
			break;
		case "Chrysler":
			options = ["Voyager"];
			break;
		case "Citroen":
			options = ["Berlingo", "C1", "C2", "C3", "C4", "C5", "C6", "C8", "Xsara Picasso"];
			break;
		case "Daihatsu":
			options = ["Charade", "Copen", "Mira", "Move", "Terios"];
			break;
		case "Fiat":
			options = ["Bravo", "Grande Punto", "Idea", "Marea", "Multipla", "Punto", "Sedici", "Siena", "Stilo", "Ulysse"];
			break;
		case "Ford":
			options = ["Econovan", "Escape", "Everest", "Focus", "Ranger"];
			break;
		case "Honda":
			options = ["Accord", "City", "Civic", "CRV", "Jazz", "Legend", "Odyssey", "Stream"];
			break;
		case "Honda":
			options = ["Accord", "City", "Civic", "CRV", "Jazz", "Legend", "Odyssey", "Stream"];
			break;
		case "Hyundai":
			options = ["Atos", "Accent", "Elantra", "Getz", "Grandeur", "Matrix", "Sonata", "Tarjet"];
			break;
		case "Isuzu":
			options = ["Bighorn", "Citation", "Invader", "Trooper", "Rodeo"];
			break;
		case "Jaguar":
			options = ["X-Type", "S-Type", "XJ6", "XJ8", "XK"];
			break;
		case "Jeep":
			options = ["Wrangler", "Grand Cherokee", "COmmander"];
			break;
		case "Kia":
			options = ["Carens", "Carnival", "Optima", "Rio", "Sephia", "Spectra", "Sportage", "Sorento"];
			break;
		case "Land Rover":
			options = ["Discovery", "Land Rover"];
			break;
		case "Mazda":
			options = ["Astina", "Mazda3", "Mazda5", "Mazda6", "Fighter"];
			break;
		case "Mercedes":
			options = ["A-Class", "C-Class", "E-Class", "S-Class", "CLK-Class", "CLS-Class", "SLK-Class", "SL-Class", "M-Class", "R-Class"];
			break;
		case "Mini":
			options = ["Cooper", "Cooper S", "Cooper Cabriolet"];
			break;
		case "Mitsubishi":
			options = ["Airtrek", "Challenger", "Colt", "Evolution", "Gallant", "Grandis", "Lancer", "L200", "Outlander", "Pajero", "Storm", "Triton"];
			break;
		case "Nissan":
			options = ["Ad Resort", "Cefiro", "Latio", "Sentra", "Serena", "X-Trail SUV", "C22 Vanette", "Frontier SUT", "Murano", "Terrano"];
			break;
		case "Opel":
			options = ["Astra", "Mariva", "Tigra", "Vectra", "Zafira"];
			break;
		case "Perodua":
			options = ["Kancil", "Kelisa", "Kembara", "Kenari", "Rusa", "Myvi", "Viva"];
			break;
		case "Peugeot":
			options = ["206", "307", "407", "607", "807"];
			break;
		case "Perodua":
			options = ["Kancil", "Kelisa", "Kembara", "Kenari", "Rusa", "Myvi", "Viva"];
			break;
		case "Proton":
			options = ["Gen-2", "Iswara", "Juara", "Perdana", "Putra", "Satria", "Satria Neo", "Savvy", "Waja", "Wira"];
			break;
		case "Renault":
			options = ["Espace", "Scenic", "Kangoo", "Grand Scenic", "Magane"];
			break;
		case "Rover":
			options = ["75 Saloon", "75 Tourer", "Mini"];
			break;
		case "SAAB":
			options = ["9-3", "9-5"];
			break;
		case "Ssang Yong":
			options = ["Chairman", "Kyron", "Rexton", "Stavic"];
			break;
		case "Subaru":
			options = ["Forester", "Impreza", "Legacy"];
			break;
		case "Suzuki":
			options = ["APV", "Grand Vitara", "Liana", "Swift"];
			break;
		case "Toyota":
			options = ["Altis/Corolla", "Avanza", "Camry", "Fortuner", "Hiace", "Hilux", "Innova", "Prius", "Rav4", "Unser", "Vios", "Wish", "Yaris"];
			break;
		case "Volkswagen":
			options = ["Golf", "Jetta", "Beetle", "New Beetle", "Passat", "Polo", "Touareg"];
			break;
		case "Volvo":
			options = ["C70", "S40", "S60", "S80", "V50", "XC90"];
		default :
			options = ["Others"];
	}
	
	options = jQuery.map(options, function(n, i){
      return ('<option value="'+ n + '">' + n + '</option>');
    });
	
	$('#currentCarModel').html('<option value="">Please select</option>' + options.join(''));
});