var selectedCar 	= null;
var gct				= 1.165;
var periodType 		= 0;

var additionalCost 	= 0;
var addDropFee		= 0;
var addCellular		= 0;
var addBabySeat		= 0;
var addAgeSurCharge	= 0; 
var addCwd			= 0;

var useOffPeak 		= false;

var car 			= new Array();
var offpeak			= new Array();

/*~~~~~~~~~~PEAK HR~~~~~~OFF PEAK HR~~~CWD~~~~~~~CAR~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~FEATURE~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~SPAECIAL~~~~~~~~*/
car = [
	   	[50.00, 300.00, 35.00, 210.00,  10.00,  "Mazda Demio", 					"5 Seater, 4 Doors, Auto, AC, CD Player",                         1], 
		[55.00, 330.00, 40.00, 240.00,  10.00,  "Toyota Yaris", 				"5 Seater, 4 Doors, Auto, AC, Radio - CD Player",                 1], 
		[58.00, 348.00, 43.00, 258.00,  10.00,  "Toyota Corolla", 				"5 Seater, 4 Doors, Auto, AC, RAdio - Tape deck or CD Player",    1], 
		[70.00, 420.00, 55.00, 330.00,  10.00,  "Mitsubishi Lancer", 			"5 Seater, 4 Doors, Auto, AC, CD Player",                         1], 
		[95.00, 570.00, 80.00, 480.00,  20.00, "Nissan X-trail", 			   	"5 Seater, 4 Doors, Auto, AC, CD Player",                         0],
		[100.00, 700.00, 85.00, 595.00, 20.00, "Suzuki Vitara", 			   	"5 Seater,,4 Doors, Auto, AC, CD Player",                         0],
		[100.00, 700.00, 85.00, 595.00, 20.00,  "Mitsubishi Grandis Mini Van", 	"5 Seater, 5 Doors, Auto, AC, CD Player",                         0]
	  ];
var len = car.length;

/*~~~~~~~~~~~~~~~~~~~~~~~MONTHS~~~~~~~~~~~~~~~~~~~*/
offpeak 		= [2, 3, 6, 9, 10, 11];

function loadList()
{
	var str = "<select name='carlist' onChange='setCarValue(this.value)' >";
	str += "<option value=''>Select A Car</option>";
	for( var i=0; i<len; i++)
	{
		str += "<option value=" + i + ">" + car[i][5] + "</option>";
	}
	str += "</select>";
	
	document.getElementById("carlist").innerHTML = str;
}

function setCarValue(val)
{ 
	resetCal();
	selectedCar = val; 
}

function useRates(ele)
{
	for(x in offpeak)
	{
		if(ele.value == offpeak[x])
		{
			useOffPeak = true;
			break;	
		}
		else
		{
			useOffPeak = false;
		} 
	}

	if( document.getElementById("rental_period_week").checked ) 
	{
		setRentalPeriod("week");
	}
	else
	{
		setRentalPeriod("day");
	}
}

function setRentalPeriod(val)
{ 
	if(useOffPeak)
	{
		if(val == "day") 
			periodType = 2; 
		else 
			periodType = 3;
	}
	else
	{
		if( val == "day" )
			periodType = 0; 
		else 
			periodType = 1;
	}
}

function calculat()
{
	if(selectedCar==null || selectedCar=="")
	{
		document.getElementById("results").innerHTML = "";
		alert("Please select type of Vehcile.")
		return false;
	}
		
	additionalCost = addDropFee + addCellular + addBabySeat + addAgeSurCharge + addCwd;
	
	var freeDay = 0;
	var nDay 	= parseInt(document.getElementById("noday").value);
	var carCost = car[selectedCar][periodType];
	var numDay  = (periodType == 1 || periodType == 3)? Math.ceil(nDay/7) : nDay;
	
	
		if( periodType == 2 && useOffPeak == true )
		{
			var freeDay = Math.floor(nDay/7);
			if( freeDay>0 )
			{
				numDay = numDay - freeDay;
			}
		}

	var cost = (carCost*numDay) * gct;
	cost += additionalCost;
	
	var costPrice = cost;	
	var str = "";
	str += "<span>Total Rental Cost:</span> $" + costPrice.toFixed(2); 
	str += "<br><span>Number of day(s):</span> " + nDay;
	str += "<br><span>Comes with:</span> " + car[selectedCar][6];
	document.getElementById("results").innerHTML = str;
}

function additionalCharges(ele)
{
	var nDay 	= parseInt(document.getElementById("noday").value);
	switch(ele.name)
	{
		case "drop_fee": 
			if(ele.checked)
				addDropFee += 65;
			else
				addDropFee = 0;
		break;
		case "cellular": 
			if(ele.checked)
				addCellular += (7 * nDay);
			else
				addCellular = 0;
		break;
		case "age_surcharge":
			if(ele.checked)
			{ 
				var age = parseInt(document.getElementById("age").value);
				if( isNaN(age) )
				{
					alert("Age is required!!");
					document.RentalInfo.age_surcharge.checked = false;
					document.getElementById("age").focus();
					return false;
				}
					
				if( age > 21 || age < 25  )
				{
					addAgeSurCharge += (7.50 * nDay);
				}
			}
			else
			{
				addAgeSurCharge = 0;
			}
		break;
		case "baby_seat": 
			if(ele.checked)
				addBabySeat += (6 * nDay);
			else
				addBabySeat = 0;
		break;
		case "cwd": 
			if(ele.checked)
				addCwd += (car[selectedCar][4] * nDay);
			else
				addCwd = 0;
		break;	
	}
}

function resetCal()
{
	document.RentalInfo.cwd.checked = false;
	document.RentalInfo.drop_fee.checked = false;
	document.RentalInfo.baby_seat.checked = false;
	document.RentalInfo.cellular.checked = false;
	document.RentalInfo.age_surcharge.checked = false;
	document.getElementById("results").innerHTML = "";
	
	additionalCharges(document.RentalInfo.cwd);
	additionalCharges(document.RentalInfo.drop_fee);
	additionalCharges(document.RentalInfo.baby_seat);
	additionalCharges(document.RentalInfo.cellular);
	additionalCharges(document.RentalInfo.age_surcharge);
}

function init()
{ 
	loadList(); 
	resetCal();
}

init();


