// Function to determine which XMLHTTP request to use depending on browser, for AJAX
function createRequestObject()
{
        try
        {
                request_o = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch(ex)
        {
                //either this is not IE, or it is a version of IE which does not support XMLHTTP
                var notIECompatibleXMLHTTP=true;
        }
        if(notIECompatibleXMLHTTP==true)
        {
                try
                {
                        request_o = new XMLHttpRequest();
                }
                catch(ex)
                {
                        //we can't use AJAX because this browser is not compatible.
                        request_o = false;
                }
        }
        return request_o;
}

var http=createRequestObject();
var global = new Object();// Make make request
function getMakes(year)
{
	// User Dropdown
	if (year > 1900)
	{
		makeBox = document.getElementById('makes');
		makeBox.disabled = true; // Disable Select Box while loading
		
		var len = makeBox.length;
		for (i=0; i<len; i++)
		{
			makeBox.options[0]=null; // Delete all existing options
		}
		
		var optionObject = new Option('Loading Makes...',0); // Define loading message
		makeBox.options[0]=optionObject; // Show loading message
		
		// Open Our URL
		http.open('get', '/registry/ajax.php?year=' + year);
		http.onreadystatechange = handleMakes;
		http.send(null);
	}
}

// Handle user request
function handleMakes()
{
	if(http.readyState == 4)
	{
		// Return our request as XML
		var request = http.responseXML;
		
		// Delete all existing users from the option box
		var makeBox = document.getElementById('makes');
		
		// Get users from XML
		makes = request.getElementsByTagName('make');
		
		// Remove loading message
		makeBox.options[0]=null;
		
		// Delete all models
		var modelBox = document.getElementById('models');
		var optionsLen = modelBox.length;
		for (j=0; j<optionsLen; j++) modelBox.options[0] = null;
		
		var optionObject = new Option('Select Model', '');
		var optionRank = modelBox.options.length;
		modelBox.options[optionRank]=optionObject;
		modelBox.disabled = true;

		if (makes.length > 1)
		{
			var optionObject = new Option('Select Make', '');
			var optionRank = makeBox.options.length;
			makeBox.options[optionRank]=optionObject;

			for(i=0; i<makes.length; i++)
			{
				//make_id = makes[i].getAttribute('id') //Grabs the id attribute.
				make = makes[i].firstChild.data;
				
				// Add user to option box
				var optionObject = new Option(make,make);
				var optionRank = makeBox.options.length;
				makeBox.options[optionRank]=optionObject;
			
			}
		}
		else
		{
			var optionObject = new Option('No Makes Found for the specified year!', '');
			var optionRank = makeBox.options.length;
			makeBox.options[optionRank]=optionObject;
		}
		makeBox.disabled = false;
		makeBox.selectedIndex = 0;
		//if (window.getAddresses)
		//{
			// Run the get addresses function, the same function we'd run onchange on this field
		//	getAddresses();
		//}
	}
}

// Make model request
function getModels(year, make)
{
	// User Dropdown
	if (make != '')
	{
		modelBox = document.getElementById('models');
		modelBox.disabled = true; // Disable Select Box while loading
			
		var len = modelBox.length;
		for (i=0; i<len; i++)
		{
			modelBox.options[0]=null; // Delete all existing options
		}
		
		var optionObject = new Option('Loading Models...',0); // Define loading message
		modelBox.options[0]=optionObject; // Show loading message
		
		// Open Our URL
		http.open('get', '/registry/ajax.php?year=' + year + '&make=' + make);
		http.onreadystatechange = handleModels;
		http.send(null);
	}
}

// Handle user request
function handleModels()
{
	if(http.readyState == 4)
	{
		// Return our request as XML
		var request = http.responseXML;
		
		// Delete all existing users from the option box
		var modelBox = document.getElementById('models');
		
		// Get users from XML
		models = request.getElementsByTagName('model');
		
		// Remove loading message
		modelBox.options[0]=null;
		

// Clear all existing options
	
		var optionsLen = modelBox.length;
		
		for (j=0; j<optionsLen; j++) modelBox.options[0] = null; // Delete all existing options

		if (models.length > 1)
		{
			var optionObject = new Option('Select Model', '');
			var optionRank = modelBox.length;
			modelBox.options[optionRank]=optionObject;

			for(i=0; i<models.length; i++)
			{
				
				//make_id = makes[i].getAttribute('id') //Grabs the id attribute.
				model = models[i].firstChild.data;
				
				// Add user to option box
				var optionObject = new Option(model,model);
				var optionRank = modelBox.length;
				//alert(optionRank);
				modelBox.options[optionRank]=optionObject;
			
			}
		}
		else
		{
			var optionObject = new Option('No Models Found!', '');
			var optionRank = modelBox.options.length;
			modelBox.options[optionRank]=optionObject;
		}
		modelBox.disabled = false;
		modelBox.selectedIndex = 0;
		//if (window.getAddresses)
		//{
			// Run the get addresses function, the same function we'd run onchange on this field
		//	getAddresses();
		//}
	}
}