Event.observe(window, 'load', init, false);

function init() {
	Event.observe('type', 'change', getMakes, false);
    Event.observe('make', 'change', getModels, false);
    Event.observe('model', 'change', getYears, false);
}

function getMakes() {
     var type = $F('type'); 
     var url = serverURL + 'ajax/getMakes/' + type + '/';
     var myAjax = new Ajax.Request(url, {
		method: 'post', 
		parameters: type, 
		onSuccess: successMakes
	});
}

function getModels() {
	var type = $F('type');
	var make = $F('make');
	var url = serverURL + 'ajax/getModels/' + type + '/' + make + '/';
	var myAjax = new Ajax.Request(url, {
		method: 'post', 
		parameters: make, 
		onSuccess: successModels
	});
}

function getYears() {
	var type = $F('type');
	var make = $F('make');
	var model = $F('model');
	var url = serverURL + 'ajax/getYears/' + type + '/' + make + '/' + model + '/';
	var myAjax = new Ajax.Request(url, {
		method: 'post', 
		parameters: make, 
		onSuccess: successYears
	});
}

function successMakes(originalRequest) {
	$('makeSelect').innerHTML = originalRequest.responseText;
    Event.observe('make', 'change', getModels, false);
    if($('make').options.length == 1) {
		getModels();
		$('model').disabled = false;
	} else {
		$('model').options.selectedIndex = 'any';
		$('model').disabled = true;
	}
	getYears();
}

function successModels(originalRequest) {	
	$('modelSelect').innerHTML = originalRequest.responseText;
	Event.observe('model', 'change', getYears, false);
	if($('make').value == 'any') {
		$('model').disabled = true;		
	} else {
		$('model').disabled = false;
	}
	getYears();
}

function successYears(originalRequest) {
	var rt = originalRequest.responseText;

	if(rt == 'false') {
		$('maxYearSelect').disabled = true;
		$('minYearSelect').disabled = true;
	} else {	
		var arr = rt.split('||');		
		$('maxYearSelect').innerHTML = arr[0];
		$('minYearSelect').innerHTML = arr[1];
		$('maxyear').disabled = false;
		$('minyear').disabled = false;
	}
}