window.onload = setupYearListener;
window.unload = cleanup;

var xmlhttp = false;

xmlhttp = new getXmlHttpRequest();

function getXmlHttpRequest() {
	if (window.XMLHttpRequest) {
		xmlhttp = new XMLHttpRequest();
		xmlhttp.overrideMimeType('text/xml');
	}
	else {
		try {
			xmlhttp = new ActiveXObject('Msxml2.XMLHTTP');
		
		}
		catch (e) {
			try {
				xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
			}
			catch (e) {
				xmlhttp = false;
			}
		}
	}
	return xmlhttp;
}

function cleanup()
{
	var evtObject = document.getElementById('ymm').year;
	
	if (evtObject.detachEvent) {
		evtObject.detachEvent('onchange', getMakes);
	}
}

function setupYearListener()
{
	// getMakes for object model
	var evtObject = document.getElementById('year');
	
	if (evtObject.addEventListener) {
		evtObject.addEventListener("change", getMakes, true);
	} 
	else if (evtObject.attachEvent) {
		evtObject.attachEvent('onchange', getMakes);
	} 
	else if (evtOBject.onclick) {
		evtObject.onclick = getMakes;
	}
}

function setupMakeListener()
{
	// getMakes for object model
	var evtObjectMakes = document.getElementById('ymm').make;
	
	if (evtObjectMakes.addEventListener) {
		evtObjectMakes.addEventListener("change", getModels, true);
	} 
	else if (evtObjectMakes.attachEvent) {
		evtObjectMakes.attachEvent('onchange', getModels);
	} 
	else if (evtObjectMakes.onclick) {
		evtObjectMakes.onclick = getModels;
	}
}

function setupModelListener()
{
	// getMakes for object model
	var evtObjectMakes = document.getElementById('ymm').model;
	
	if (evtObjectMakes.addEventListener) {
		evtObjectMakes.addEventListener("change", enableSubmit, true);
	} 
	else if (evtObjectMakes.attachEvent) {
		evtObjectMakes.attachEvent('onchange', enableSubmit);
	} 
	else if (evtObjectMakes.onclick) {
		evtObjectMakes.onclick = enableSubmit;
	}
}


function submitForm()
{
	document.ymm.submit()
}

function findSubmitImage()
{
	var submitImage;
	
	if (document.getElementById('buttonImage')) {
		return document.getElementById('ymm').buttonText.value;
	}
	else {
		return false;
	}
}

function findButtonText()
{
	var buttonText;
	
	if(document.getElementById('buttonText')) {
		return document.getElementById('ymm').buttonText.value;
	}
	else {
		return 'Go';
	}
}

function disableSubmit()
{
	var buttonText = findButtonText();
	var submitImage = findSubmitImage();
	
	if (submitImage) {
		document.getElementById('submitBox').innerHTML = '<input type="img" src="' + submitImage + '" name="submitYMM" id="submitYMM" />';
	}
	else {
		document.getElementById('submitBox').innerHTML = '<input type="submit" value="' + buttonText + '" name="submitYMM" id="submitYMM" disabled="disabled" />';
	}
}

function enableSubmit()
{
	var buttonText = findButtonText();
	var submitImage = findSubmitImage();
	
	if (submitImage) {
		document.getElementById('submitBox').innerHTML = '<input onclick="javascript: pageTracker._trackPageview(\'/ymm/FilterExpand/\')" type="img" src="' + submitImage + '" name="submitYMM" id="submitYMM" />';
	}
	else {
		document.getElementById('submitBox').innerHTML = '<input onclick="javascript: pageTracker._trackPageview(\'/ymm/FilterExpand/\')" type="submit" value="' + buttonText + '" name="submitYMM" id="submitYMM" />';
	}
	
	
}

function clearModels()
{
	document.getElementById('modelBox').innerHTML = '<select name="model" id="model" disabled="disabled"><option value="0">model</option></select>';
}

function getMakes()
{
	var year = document.getElementById('year').value;
	var base_url = document.getElementById('ymm').base_url.value;	
	
	var url = 'http://' + base_url + 'lib/consoles/ymm_console.php?do=getMakes&year=' + year;
	
	xmlhttp.open('GET', url, true);
	
	xmlhttp.onreadystatechange = fillMakes;
	xmlhttp.send(null);
}

function getModels()
{
	var year = document.getElementById('ymm').year.value;
	var make_id = document.getElementById('ymm').make.value;
	var base_url = document.getElementById('ymm').base_url.value;
	
	var url = 'http://' + base_url + 'lib/consoles/ymm_console.php?do=getModels&year=' + year + '&make=' + make_id;
	xmlhttp.open('GET', url, true);
	
	xmlhttp.onreadystatechange = fillModels;
	xmlhttp.send(null);
}


function fillMakes()
{
	if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
		var textMakes = xmlhttp.responseText;
		
		textMakes = '<select name="make" id="make"> ' + textMakes + '</select>';	
		
		document.getElementById('ymm').make.disabled = false;
		document.getElementById('makeBox').innerHTML = textMakes;
		clearModels();
		setupMakeListener();
		disableSubmit();
	}
	else {
		// document.ymm.make.innerHTML = 'Error';
	}
}


function fillModels()
{
	if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
		var textModels = xmlhttp.responseText;
		
		textModels = '<select name="model" id="model"> ' + textModels + '</select>';

		document.getElementById('modelBox').innerHTML = textModels;
		document.getElementById('model').disabled = false;
		setupModelListener();
	}
	else {
		// document.getElementById('modelBox').innerHTML = '<select name="model" id="model"><option value="0">Error</option></select>';
	}
}
