// JavaScript Document
function listModels()
{	
	var a;
	var curMake = document.forms[0].make.options[document.forms[0].make.selectedIndex].value;
	if (curMake == "select")
	{ return false; }
	
	var counter = 0;
	var noModel = "true";

	document.forms[0].model.options.length = 0;
	
	//Loop through models array, populating the model drop down menu
	for (a=0; a<modelsArray.length; a++)
	{
		//Only populate the models drop down with models that are defined as belonging to the current make
		if (modelsArray[a][1] == curMake)
		{
			document.forms[0].model.options[counter] = new Option(modelsArray[a][0], modelsArray[a][0]);	
			counter++;
			noModel = "false";
		}
	}
	
	if (noModel == "true")
	{
		document.forms[0].model.options[counter] = new Option("No Models Entered", "none");
	}
}

function validateForm()
{
	resetFormDisplay();
	
	//Validate Vin
	var vin = document.forms[0].VIN.value;
	var vinError;
	if (!vin)
	{
		alert("Please enter in a valid VIN number for this vehicle.");
		vinError = true;
	}
	
	if (vin.length != 17 && vinError != true)
	{
		alert("VIN Numbers are17 characters long.");
		vinError = true;
	}
	
	if (vinError == true)
	{
		document.getElementById('vin_img').style.visibility = 'visible';
		document.getElementById('vin1').className = 'formTextHighlighted';
		document.getElementById('vin2').className = 'formTextHighlighted';
		return false;
	}
	
	//Validate New/Used
	var newOrUsed = document.forms[0].new_used.options[document.forms[0].new_used.options.selectedIndex].value;
	if (newOrUsed == "select")
	{
		document.getElementById('new_used_img').style.visibility = 'visible';
		document.getElementById('new_used1').className = 'formTextHighlighted';
		document.getElementById('new_used2').className = 'formTextHighlighted';
		alert("Select whether this is a new or used vehicle.");
		return false;
	}
	
	//Validate Year
	var year = document.forms[0].year.options[document.forms[0].year.options.selectedIndex].value;
	if (year == "select")
	{
		document.getElementById('year_img').style.visibility = 'visible';
		document.getElementById('year1').className = 'formTextHighlighted';
		document.getElementById('year2').className = 'formTextHighlighted';
		alert("You must select the year of the vehicle.");
		return false;
	}
	
	//Validate Make
	var make = document.forms[0].make.options[document.forms[0].make.options.selectedIndex].value;
	if (make == "select")
	{
		document.getElementById('make_img').style.visibility = 'visible';
		document.getElementById('make1').className = 'formTextHighlighted';
		document.getElementById('make2').className = 'formTextHighlighted';
		alert("You must select a make and model for this vehicle.");
		return false;
	}
	
	//Validate Mileage
	var mileage = document.forms[0].mileage.value;
	var mileageArray = mileage.split(",");
	if (mileageArray)
	{ mileage = mileageArray[0] + "" + mileageArray[1]; }
	
	if (!mileage)
	{
		alert("You must enter the mileage for this vehicle.");
		mileageError = true;
	}
	
	if (isNaN(parseInt(mileage, 10)))
	{
		alert("You must enter the mileage in numerical format.");
		mileageError = true;
	}

	if (parseInt(mileage, 10) >= 500000)
	{
		alert("You can not enter a number greater than 500,000 for the mileage.");
		var mileageError = true;
	}
	
	if (mileageError == true)
	{
		document.getElementById('mileage_img').style.visibility = 'visible';
		document.getElementById('mileage1').className = 'formTextHighlighted';
		document.getElementById('mileage2').className = 'formTextHighlighted';
		return false;
	}
	
	//Validate Engine
	var engine = document.forms[0].engine.value;
	if (!engine)
	{
		document.getElementById('engine_img').style.visibility = 'visible';
		document.getElementById('engine1').className = 'formTextHighlighted';
		document.getElementById('engine2').className = 'formTextHighlighted';
		alert("You must describe the type of engine the vehicle has.");
		return false;
	}
	
	//Validate Transmission
	var trans = document.forms[0].trans.options[document.forms[0].trans.options.selectedIndex].value;
	if (trans == "--SELECT TRANSMISSION--")
	{
		document.getElementById('trans_img').style.visibility = 'visible';
		document.getElementById('trans1').className = 'formTextHighlighted';
		document.getElementById('trans2').className = 'formTextHighlighted';
		alert("You must select a transmission type for this vehicle.");
		return false;
	}

	
	//Validate Doors
	var doors = document.forms[0].doors.value;
	if (!doors)
	{
		document.getElementById('doors_img').style.visibility = 'visible';
		document.getElementById('doors1').className = 'formTextHighlighted';
		document.getElementById('doors2').className = 'formTextHighlighted';
		alert("You must enter the number of doors the vehicle has.");
		return false;
	}
	
	//Validate Body Style
	var bodyStyle = document.forms[0].body_style.value;
	if (!bodyStyle)
	{
		document.getElementById('body_img').style.visibility = 'visible';
		document.getElementById('body1').className = 'formTextHighlighted';
		document.getElementById('body2').className = 'formTextHighlighted';
		alert("You must describe the body type the vehicle has.");
		return false;
	}
	
	//Validate MPG
	var cityMPG = document.forms[0].mpg_city.value;
	var hwyMPG = document.forms[0].mpg_hwy.value;
	var mpgError;
	if (!cityMPG || !hwyMPG)
	{
		alert("Enter the city and highway mpg for this vehicle.");
		mpgError = true;
	}
	
	if (isNaN(cityMPG) || isNaN(hwyMPG))
	{
		alert("You must enter the mpg in numerical form.");
		mpgError = true;	
	}
								
	if (mpgError == true)
	{
		document.getElementById('mpg_img').style.visibility = 'visible';
		document.getElementById('mpg1').className = 'formTextHighlighted';
		document.getElementById('mpg2').className = 'formTextHighlighted';
		return false;
	}
	
	//Validate Price
	var price = document.forms[0].price.value;
	if (!price || price == "")
	{
		document.getElementById('price_img').style.visibility = 'visible';
		document.getElementById('price1').className = 'formTextHighlighted';
		document.getElementById('price2').className = 'formTextHighlighted';
		alert("The price field can not be left blank.");
		return false;
	}
	
	return true;
}

function resetFormDisplay()
{
	
	document.getElementById('vin_img').style.visibility = 'hidden';
	document.getElementById('vin1').className = 'formText';
	document.getElementById('vin2').className = 'formText';
	
	document.getElementById('year_img').style.visibility = 'hidden';
	document.getElementById('year1').className = 'formText';
	document.getElementById('year2').className = 'formText';
	
	document.getElementById('make_img').style.visibility = 'hidden';
	document.getElementById('make1').className = 'formText';
	document.getElementById('make2').className = 'formText';
	
	document.getElementById('mileage_img').style.visibility = 'hidden';
	document.getElementById('mileage1').className = 'formText';
	document.getElementById('mileage2').className = 'formText';
	
	document.getElementById('engine_img').style.visibility = 'hidden';
	document.getElementById('engine1').className = 'formText';
	document.getElementById('engine2').className = 'formText';
	
	document.getElementById('trans_img').style.visibility = 'hidden';
	document.getElementById('trans1').className = 'formText';
	document.getElementById('trans2').className = 'formText';
	
	document.getElementById('doors_img').style.visibility = 'hidden';
	document.getElementById('doors1').className = 'formText';
	document.getElementById('doors2').className = 'formText';
	
	document.getElementById('body_img').style.visibility = 'hidden';
	document.getElementById('body1').className = 'formText';
	document.getElementById('body2').className = 'formText';
	
	document.getElementById('mpg_img').style.visibility = 'hidden';
	document.getElementById('mpg1').className = 'formText';
	document.getElementById('mpg2').className = 'formText';
		
	document.getElementById('price_img').style.visibility = 'hidden';
	document.getElementById('price1').className = 'formText';
	document.getElementById('price2').className = 'formText';
	
	document.getElementById('new_used_img').style.visibility = 'hidden';
	document.getElementById('new_used1').className = 'formText';
	document.getElementById('new_used2').className = 'formText';
}
