var yearSelected = ' ';
var makeSelected = ' ';
var modelSelected = ' ';
var submodelSelected = ' ';
var engineSelected = ' ';
var firstTime = false;
var previousVehicleSelect;
var forcedPreviousVehicleSelect;
var showingPreviousSelect;

function getFirstSelection(pOriginalUrl) {
	$("forcedVehicleSelectLoading2").style.visibility = "visible";
	
	firstTime = true; 
	originalUrl = pOriginalUrl;
	isForced = false;

	try {
		$("forcedSavedVehicleSelect").className = " ";
		toggleAllSelectBoxes("hidden");
		$('selectHeader').innerHTML = "Select Year";
	} catch(err) {
		
	}

	new Ajax.Request(
		"/site/VehicleSelectionServlet", 
		{ method:     "get", 
		  parameters: "year = getYears", 
		  onSuccess:  updateSelection
		});
}

function getNextSelection(value, attributeParm, forced, pPreviousUrl, pOriginalUrl) {
	$("forcedVehicleSelectLoading2").style.visibility = "visible";
		
	if (pPreviousUrl != null && pPreviousUrl != "" ) {
		previousUrl = pPreviousUrl;
	}  
	
	if (pOriginalUrl != null && pOriginalUrl != "" ) {
		originalUrl = pOriginalUrl;
	}
	
	isForced = forced;
	
	if (isForced == "false") {
		try {
			$("forcedSavedVehicleSelect").className = " ";
			toggleAllSelectBoxes("hidden");
		} catch(err) {
		
		}
	} else {
		
	}
	
	if (attributeParm == "savedVehicleSelect" ) {
		previousVehicleSelect = true;
		firstTime = false;
	}
	
	if (attributeParm == "forcedSavedVehicleSelect" ) {
		forcedPreviousVehicleSelect = true;
	}
	
	var blah = new String(originalUrl).indexOf("/site");
	var newUrl = new String(originalUrl).substring(blah);
		
	new Ajax.Request(
		"/site/VehicleSelectionServlet", 
		{ method:     "post", 
		  parameters: {"url": newUrl, "attributeType": attributeParm, "attributeValue": value}, 
		  onSuccess:  updateSelection
		});
	
}

function removeVehicle(pOriginalUrl) {
	
	var removeString = "remove";

	var where_to= confirm("Do you really wish to remove this vehicle?");

	if (where_to == true) {
		var blah = new String(pOriginalUrl).indexOf("/site");
		var newUrl = new String(pOriginalUrl).substring(blah);

		new Ajax.Request(
			"/site/VehicleSelectionServlet", 
			{ method:     "get", 
			  parameters: {"vehicle": removeString, "url": newUrl}, 
			  onSuccess:  reloadPageAfterDelete
			});
	}
}

function setCurrentVehicle(value, attributeParm, pOriginalUrl) {
	
	new Ajax.Request(
		"/site/VehicleSelectionServlet", 
		{ method:     "post", 
		  parameters: {"url": originalUrl, "attributeType": attributeParm, "attributeValue": value}
		});
}

function updateSelection(originalRequest) {
	buildLastSelected(originalRequest);
	
	if (firstTime) {
		doForcedSelection("Vehicle Select", previousUrl, originalUrl, "body", isForced);	
		firstTime = false;
	}
	
	if (lastSelected == "getYears") {
		var respXML = originalRequest.responseXML.getElementsByTagName("Year");
		var populateList = "year";
		var divClassName = "year";
		if (isForced == true) {
			try {
				$("forcedSavedVehicleSelect").className = "neverHide";
				$("forcedSavedVehicleSelect").style.visibility = "visible";
				showingPreviousSelect = true;
			} catch(err) {
				showingPreviousSelect = false;
			}
		}
		$('yearBreadCrumb').innerHTML = " ";
		$('makeBreadCrumb').innerHTML = " ";
		$('modelBreadCrumb').innerHTML = " ";
		$('submodelBreadCrumb').innerHTML = " ";
		$('engineBreadCrumb').innerHTML = " ";
		if (showingPreviousSelect == true) {
			$('selectHeader').innerHTML = "or Select Year";
		} else {
			$('selectHeader').innerHTML = "Select Year";
		}
	} else if (lastSelected == "year") {
		var respXML = originalRequest.responseXML.getElementsByTagName("Make");
		var populateList = "make";
		var divClassName = " ";
		try {
			$("forcedSavedVehicleSelect").className = " ";
			toggleAllSelectBoxes("hidden");
		} catch(err) {
		
		}
		$('yearBreadCrumb').innerHTML = '<a href="#vehicleTop" onclick="getNextSelection(\'getYears\', \'year\', ' + isForced + ', null, null)">'+yearSelected+'</a>';
		$('makeBreadCrumb').innerHTML = " ";
		$('modelBreadCrumb').innerHTML = " ";
		$('submodelBreadCrumb').innerHTML = " ";
		$('engineBreadCrumb').innerHTML = " ";				
		$('selectHeader').innerHTML = "Select Make";
	} else if (lastSelected == "make") {
		var respXML = originalRequest.responseXML.getElementsByTagName("Model");
		var populateList = "model";
		var divClassName = " ";
		try {
			$("forcedSavedVehicleSelect").className = " ";
			toggleAllSelectBoxes("hidden");
		} catch(err) {
		
		}
		$('yearBreadCrumb').innerHTML = '<a href="#vehicleTop" onclick="getNextSelection(\'getYears\', \'year\', ' + isForced + ', null, null)">'+yearSelected+'</a>';
		$('makeBreadCrumb').innerHTML = '><a href="#vehicleTop" onclick="getNextSelection(\'' + yearSelected + '\', \'year\', ' + isForced + ', null, null)">'+makeSelected+'</a>';
		$('modelBreadCrumb').innerHTML = " ";
		$('submodelBreadCrumb').innerHTML = " ";
		$('engineBreadCrumb').innerHTML = " ";
		$('selectHeader').innerHTML = "Select Model";
	} else if (lastSelected == "model") {
		var respXML = originalRequest.responseXML.getElementsByTagName("Submodel");
		var populateList = "submodel";
		var divClassName = " ";
		try {
			$("forcedSavedVehicleSelect").className = " ";
			toggleAllSelectBoxes("hidden");
		} catch(err) {
		
		}
		$('yearBreadCrumb').innerHTML = '<a href="#vehicleTop" onclick="getNextSelection(\'getYears\', \'year\', ' + isForced + ', null, null)">'+yearSelected+'</a>';
		$('makeBreadCrumb').innerHTML = '><a href="#vehicleTop" onclick="getNextSelection(\'' + yearSelected + '\', \'year\', ' + isForced + ', null, null)">'+makeSelected+'</a>';
		$('modelBreadCrumb').innerHTML = '><a href="#vehicleTop" onclick="getNextSelection(\'' + makeSelected + '\', \'make\', ' + isForced + ', null, null)">'+modelSelected+'</a>';
		$('submodelBreadCrumb').innerHTML = " ";
		$('engineBreadCrumb').innerHTML = " ";
		$('selectHeader').innerHTML = "Select Sub-Model";
	} else if (lastSelected == "submodel") {
		var respXML = originalRequest.responseXML.getElementsByTagName("Engine");
		var populateList = "engine";
		var divClassName = "engine";
		try {
			$("forcedSavedVehicleSelect").className = " ";
			toggleAllSelectBoxes("hidden");
		} catch(err) {
		
		}
		$('yearBreadCrumb').innerHTML = '<a href="#vehicleTop" onclick="getNextSelection(\'getYears\', \'year\', ' + isForced + ', null, null)">'+yearSelected+'</a>';
		$('makeBreadCrumb').innerHTML = '><a href="#vehicleTop" onclick="getNextSelection(\'' + yearSelected + '\', \'year\', ' + isForced + ', null, null)">'+makeSelected+'</a>';
		$('modelBreadCrumb').innerHTML = '><a href="#vehicleTop" onclick="getNextSelection(\'' + makeSelected + '\', \'make\', ' + isForced + ', null, null)">'+modelSelected+'</a>';
		if (submodelSelected != "None" && submodelSelected != " ") {
			$('submodelBreadCrumb').innerHTML = '><a href="#vehicleTop" onclick="getNextSelection(\'' + modelSelected + '\', \'model\', ' + isForced + ', null, null)">'+submodelSelected+'</a>';
		}
		$('engineBreadCrumb').innerHTML = " ";
		$('selectHeader').innerHTML = "Select Engine";
	} else if (lastSelected == "savedVehicleSelect") {
		$("savedVehicleSelect").options[0].selected = true;	
		var respXML = originalRequest.responseXML.getElementsByTagName("forwardUrl");
		window.location = respXML[0].firstChild.data;
	} else if (lastSelected == "forcedSavedVehicleSelect") {
		$('yearBreadCrumb').innerHTML = '&nbsp;' + yearSelected;
		$('makeBreadCrumb').innerHTML = '&nbsp; > ' + makeSelected;
		$('modelBreadCrumb').innerHTML = '&nbsp; > ' + modelSelected;
		if (submodelSelected != "None" && submodelSelected != " ") {
			$('submodelBreadCrumb').innerHTML = '&nbsp; > ' + submodelSelected;
		}
		$('engineBreadCrumb').innerHTML = '&nbsp; > ' + engineSelected;
		$('selectHeader').innerHTML = " ";
		$('selectHeader').style.visibility = "hidden";
		$('selection').innerHTML = " ";
		try {
			$("forcedSavedVehicleSelect").options[0].selected = true;
		} catch(err) {
		
		}
		if (isForced) {
			submitSearch(originalRequest.responseXML.getElementsByTagName("forwardUrl"));
		} else {
			setTimeout('$("forcedVehicleSelectLoading2").style.visibility = "visible"', 60);
			var respXML = originalRequest.responseXML.getElementsByTagName("forwardUrl");
			window.location = respXML[0].firstChild.data;	
		}
	} else if (lastSelected == "engine") {
		var respXML = originalRequest.responseXML.getElementsByTagName("VehicleId");
		var vi = respXML[0].firstChild.data;
		
		$('yearBreadCrumb').innerHTML = '&nbsp;' + yearSelected;
		$('makeBreadCrumb').innerHTML = '&nbsp; > ' + makeSelected;
		$('modelBreadCrumb').innerHTML = '&nbsp; > ' + modelSelected;
		if (submodelSelected != "None" && submodelSelected != " ") {
			$('submodelBreadCrumb').innerHTML = '&nbsp; > ' + submodelSelected;
		}
		$('engineBreadCrumb').innerHTML = '&nbsp; > ' + engineSelected;
		$('selectHeader').innerHTML = " ";
		$('selectHeader').style.visibility = "hidden";

		if (isForced) {
			submitSearch(originalRequest.responseXML.getElementsByTagName("forwardUrl"));
		} else {
			setTimeout('$("forcedVehicleSelectLoading2").style.visibility = "visible"', 60);
			var respXML = originalRequest.responseXML.getElementsByTagName("forwardUrl");
			window.location = respXML[0].firstChild.data;	
		}		
	}
	
	if (lastSelected != "engineSelect" && lastSelected != "forcedSavedVehicleSelect") {
		var i;
		var ii;
		var lastListCnt = 0;
	
		$('selection').innerHTML = " ";
		
		var newUL = document.createElement("ul");
		var numOfRecords = 0
		
		for (i = 0; i < 10; i++) {
			var currentRow = "row" + (i + 1);			

			newUL = document.createElement("ul");
			
			var respXML = originalRequest.responseXML.getElementsByTagName(currentRow);
			
			for (ii = 0; ii < respXML.length; ii++) {
				numOfRecords ++;
				var respText = respXML[ii].firstChild.data;
				var newLI = document.createElement("li");
				
				newLI.innerHTML = '<a href="#vehicleTop" onclick="getNextSelection(\'' + respText + '\', \'' + populateList + '\', ' + isForced + ', null, null)">'+respText+'</a>';
				newUL.appendChild(newLI);
			}
			if (ii>0) {
				lastListCnt = ii;
				var newDiv = document.createElement("div");
				newDiv.appendChild(newUL);
				newDiv.className = divClassName;
				$("selection").appendChild(newDiv);
			}
		}
		
		if (lastSelected == 'model' && numOfRecords == 1 && respText == "None") {			
			getNextSelection(respText, populateList, isForced, null, null);
		}
		
	}
	$("forcedVehicleSelectLoading2").style.visibility = "hidden";
	
}

function buildLastSelected(originalRequest) {

	try {
		yearSelected = ' ';
		makeSelected = ' ';
	 	modelSelected = ' ';
	 	submodelSelected = ' ';
	 	engineSelected = ' ';
		
		var yearSelectedList = originalRequest.responseXML.getElementsByTagName("YearSelected");
		yearSelected = yearSelectedList[0].firstChild.data;
		var makeSelectedList = originalRequest.responseXML.getElementsByTagName("MakeSelected");
		makeSelected = makeSelectedList[0].firstChild.data;
		var modelSelectedList = originalRequest.responseXML.getElementsByTagName("ModelSelected");
		modelSelected = modelSelectedList[0].firstChild.data;		
		var submodelSelectedList = originalRequest.responseXML.getElementsByTagName("SubmodelSelected");
		submodelSelected = submodelSelectedList[0].firstChild.data;
		var engineSelectedList = originalRequest.responseXML.getElementsByTagName("EngineSelected");
		engineSelected = engineSelectedList[0].firstChild.data;		
		
	} catch(err) {
		
	}
	
	if (forcedPreviousVehicleSelect) {
		lastSelected = 'forcedSavedVehicleSelect';
	} else if (engineSelected != ' ') {
		lastSelected = 'engine';
    } else if (submodelSelected != ' ') {
		lastSelected = 'submodel';
	} else if (modelSelected != ' ') {
		lastSelected = 'model';
	} else if (makeSelected != ' ') {
		lastSelected = 'make';
	} else if (yearSelected != ' ') {
		lastSelected = 'year';
	} else if (previousVehicleSelect) {
		lastSelected = 'savedVehicleSelect';
	} else {
		lastSelected = 'getYears';
		firstTime = true;
	}
	
}

function forceVehicleSelect(originalRequest) {
	var respXML = originalRequest.responseXML.getElementsByTagName("vehicleSelected");
	
	if (respXML[0].firstChild.data == 'false') {
		grayOut(true, "body");
		forcedVehicleSelect(true);
	}
		
	submitSearch(respXML);
}

function submitSearch(respXML) {
	setTimeout('$("forcedVehicleSelectLoading2").style.visibility = "visible"', 1000);
	toggleVehicleSelect("true");
	
	if (isForced) {
		window.location = respXML[0].firstChild.data;
	} else if (window.location == originalUrl) {
		window.location.reload(true);
	} else {
		window.location.href = originalUrl;
	}
}

function reloadPageAfterDelete(originalRequest) {
	var respXML = originalRequest.responseXML.getElementsByTagName("forwardUrl");
	window.location = respXML[0].firstChild.data;
}

function resetAllSelects() {
	
}

function resetSearchOrList(url) {
	setTimeout('$("forcedVehicleSelectLoading2").style.visibility = "visible"', 60);
	window.location = url;
}

String.prototype.endsWith = function(str)
{
    return (this.match(str+"$")==str)
}

function replaceVIParm() {
	
}

//animation via scriptaculous & prototype

function showForced() {
	$('forcedVehicleSelect').appear({ duration: 1.0 });
}


