var step = 1;
var quoteDropdown;
var vcode;
var mileage;
var mileageText;
var months;
var make;
var model;
var quoteStatus = 0;

function loadQuoteStep() {	
	quoteDropdown = 'manufacturerDropdown';
	selectedValue = '';
	switch(step) {
		case 2:
			make = getSelectText(quoteDropdown);
			selectedValue = getSelectValue(quoteDropdown);
			quoteDropdown = 'modelDropdown';
		break;
		case 3:
			range = getSelectValue('modelDropdown');
			selectedValue = range;
			quoteDropdown = 'variantDropdown';
		break;
		case 4:
			model = getSelectText('variantDropdown');
			vcode = getSelectValue(document.getElementById('variantDropdown'));			
			selectedValue = vcode;
			quoteDropdown = 'mileageDropdown';
		break;
		case 5:
			mileage = getSelectValue(document.getElementById('mileageDropdown'));
			mileageText = getSelectValue(document.getElementById('mileageDropdown'));
			selectedValue = mileage;
			quoteDropdown = 'termDropdown';			
		break;
		case 6:
			months = getSelectValue(document.getElementById('termDropdown'));
			selectedValue = months;	
		break;		
	}	
	
	
	switch(step) {
		case 1:
		case 2:
		case 3:
		case 4:
		case 5:
			ajax.setURL('/action.php');
			ajax.setMode('xml');
			ajax.setParam('action','loadQuoteXML');
			ajax.setParam('step',step);	
			ajax.setParam('selectedValue',selectedValue);
			ajax.setParam('vcode',vcode);
			ajax.setParam('mileage',mileage);			
			ajax.setXMLCallBack('handleQuoteXML()');
			ajax.post();
		break;
		case 6:
			ajax.setURL('/action.php');
			ajax.setMode('xml');
			ajax.setParam('action','loadQuoteXML');
			ajax.setParam('step',step);	
			ajax.setParam('vcode',vcode);
			ajax.setParam('mileage',mileage);
			ajax.setParam('months',months);
			ajax.setXMLCallBack('handleQuoteXML()');
			ajax.post();		
		break;		
	}
}
function clearQuoteMenu(elementName) {
	
	if(!document.getElementById(elementName)) {
		return false;
	}
	
	var elementObj = document.getElementById(elementName);			
	while(elementObj.hasChildNodes() == true) {
		elementObj.removeChild(elementObj.lastChild);
	}													
}
function clearQuoteMenu_old(selectBox, from) {
	if(from == null) {
		from = 0;
	}
	var select = document.getElementById(selectBox);	
	while (select.length > from) {
		select.remove(select.length-1);
	}		
}
function appendToSelect(select, value, content) {
	var opt;
	opt = document.createElement("option");
	opt.value = value;
	opt.appendChild(document.createTextNode(content));
	select.appendChild(opt);
}
function setQuoteStatus(status) {
	quoteStatus = status;
}
function setMenuDisabled(menu, status) {
	menu.disabled = status;
}
function getStep(stepNumber) {	
	var dropdowns = new Array('manufacturerDropdown','modelDropdown','variantDropdown','mileageDropdown','termDropdown');

	for(i=stepNumber-1;i<dropdowns.length;i++) {		
		clearQuoteMenu(dropdowns[i]);
	}	

	switch(stepNumber) {
		case 6:
			if(getSelectValue('manufacturerDropdown') == "" || getSelectValue('modelDropdown') == "" || getSelectValue('variantDropdown') == ""
				|| getSelectValue('mileageDropdown') == "" || getSelectValue('termDropdown') == "") {
				alert('Please select each option before selecting get quote.');
				return false;
			}									
		break;
	}
	
	step = stepNumber;
	loadQuoteStep();
}
function handleQuoteXML() {	
	quoteDropdown = $(quoteDropdown);
	
	setMenuDisabled(quoteDropdown, 0);

	switch(step) {		
		case 1:
			//alert('case1');
			appendToSelect(quoteDropdown, '', 'Please select');
			var manufacturers = ajax.response.getElementsByTagName("manufacturer");				
			for (var i = 0; i < manufacturers.length; i++) {
				manufacturer = manufacturers[i].firstChild.data;
				manufacturer = manufacturer.split(",");				
				value = manufacturer[0];
				text = manufacturer[1];				
				appendToSelect(quoteDropdown, text, value);
			}			
		break;
		case 2:
			appendToSelect(quoteDropdown, '', 'Please select');
			var modeldescriptions = ajax.response.getElementsByTagName("modeldescription");				
			for (var i = 0; i < modeldescriptions.length; i++) {
				modeldescription = modeldescriptions[i].firstChild.data;
				modeldescription = modeldescription.split(",");
				value = modeldescription[0];
				isQuoteDisabled(value);
				text = modeldescription[1];				
				appendToSelect(quoteDropdown, text, value);
			}		
		break;
		case 3:
			appendToSelect(quoteDropdown, '', 'Please select');
			var modeldescriptions = ajax.response.getElementsByTagName("modeldescription");				
			for (var i = 0; i < modeldescriptions.length; i++) {
				modeldescription = modeldescriptions[i].firstChild.data;
				modeldescription = modeldescription.split(",");
				value = modeldescription[0];
				isQuoteDisabled(value);
				text = modeldescription[1];				
				appendToSelect(quoteDropdown, text, value);
			}		
		break;		
		case 4:
			appendToSelect(quoteDropdown, '', 'Please select');
			var mileage = ajax.response.getElementsByTagName("mileage");	
			for (var i = 0; i < mileage.length; i++) {
				isQuoteDisabled(mileage[i].firstChild.data);
				appendToSelect(quoteDropdown, mileage[i].firstChild.data, mileage[i].firstChild.data);
			}		
		break;
		case 5:		
			appendToSelect(quoteDropdown, '', 'Please select');
			var selectedMonths = ajax.response.getElementsByTagName("month");	
			for (var i = 0; i < selectedMonths.length; i++) {
				isQuoteDisabled(selectedMonths[i].firstChild.data);
				appendToSelect(quoteDropdown, selectedMonths[i].firstChild.data, selectedMonths[i].firstChild.data);
			}	
		break;
		case 6:				
			var record = ajax.response.getElementsByTagName("record");	
			if(record.length > 1) {						
				VehicleRental = record[0].firstChild.data;
				OptionalServices = record[1].firstChild.data;
				TotalRental = record[2].firstChild.data;				
				usageSelection = getSelectValue('usage');
				$('mileageDisplay').innerHTML = mileageText;
				$('termDisplay').innerHTML = months;
				$('usageDisplay').innerHTML = usageSelection;
				if(usageSelection == "Private") {
					$('vehicleRentalSummary').innerHTML = parseFloat(VehicleRental * 1.2).toFixed(2);
					$('vehicleRental').innerHTML = parseFloat(VehicleRental * 1.2).toFixed(2)+' (inc VAT.)';
					$('totalRental').innerHTML = parseFloat(TotalRental * 1.2).toFixed(2)+' (inc VAT.)';
					//$('vehicleRentalSummary').innerHTML = parseFloat(VehicleRental * 1.175).toFixed(2);
					//$('vehicleRental').innerHTML = parseFloat(VehicleRental * 1.175).toFixed(2)+' (inc VAT.)';
					//$('totalRental').innerHTML = parseFloat(TotalRental * 1.175).toFixed(2)+' (inc VAT.)';
					$('costDescription').innerHTML = 'inc VAT.';
				} else {
					$('vehicleRentalSummary').innerHTML = parseFloat(VehicleRental).toFixed(2);					
					$('vehicleRental').innerHTML = parseFloat(VehicleRental).toFixed(2)+' (exc VAT.)';
					$('totalRental').innerHTML = parseFloat(TotalRental).toFixed(2)+' (exc VAT.)';
					$('costDescription').innerHTML = 'exc VAT.';					
				}
				
				$('paymentTermDisplay').innerHTML = parseInt(months) - 1;				
				$('make').innerHTML = make;
				$('modelType').innerHTML = model;
				
				$('manufacturerHidden').value = make;
				$('vehicleHidden').value = model;
				$('contractPeriodHidden').value = months;
				$('mileageHidden').value = mileageText;
				$('usageHidden').value = usageSelection;
				$('vcodeHidden').value = vcode;
				$('rentalWithMaintenanceHidden').value = parseFloat(TotalRental).toFixed(2);
				$('rentalWithoutMaintenanceHidden').value = parseFloat(VehicleRental).toFixed(2);
				
				if(quoteStatus == 0) {
					new Effect.Fade('content', {duration: 0.1, queue: 'front'});
					new Effect.Appear('content_quote',{duration: 0.1, queue: 'end'});										
					setQuoteStatus(1);
				}				
				
 			} else {
				alert('Error unable to get quote details!\nYou must login/register to get more than 1 quote.');
			}
		break;								
	}
}
function isQuoteDisabled(xmlString) {
	if(xmlString == "Quote Disabled") {
		self.location = '/login.php';
	}
}
function getSelectValue(selectBox) {
	return $F(selectBox);
}
function getSelectText(selectBox) {
	return $(selectBox).options[$(selectBox).selectedIndex].text;
}
function checkForSpecial(id) {
	var specialText = getSelectText(id);
	if(specialText.indexOf(':') == -1) {
		return false;
	}
	start = specialText.indexOf(':') + 1;
	end = specialText.indexOf(')');
	specialID = specialText.substring(start, end);
	self.location = '/specials.php?id='+specialID;
}

