//var newmakes = new Array("Acura", "Aston Martin", "Audi", "Bentley", "BMW", "Buick", "Cadillac", "Chevrolet", "Chrysler", "Dodge", "Ferrari", "Ford", "GMC", "Honda", "HUMMER", "Hyundai", "Infiniti", "Isuzu", "Jaguar", "Jeep", "Kia", "Lamborghini", "Land Rover", "Lexus", "Lincoln", "Lotus", "Maserati", "Maybach", "Mazda", "Mercedes-Benz", "Mercury", "MINI", "Mitsubishi", "Nissan", "Pontiac", "Porsche", "Rolls-Royce", "Saab", "Saturn", "Scion", "Smart", "Subaru", "Suzuki", "Toyota", "Volkswagen", "Volvo");
//var makes = new Array("Acura", "Alfa Romeo", "AM General", "AMC", "Aston Martin", "Audi", "Bentley", "BMW", "Buick", "Cadillac", "Chevrolet", "Chrysler", "Daewoo", "Daihatsu", "Datsun", "Dodge", "Eagle", "Ferrari", "Fiat", "Ford", "Geo", "GMC", "Honda", "HUMMER", "Hyundai", "Infiniti", "Isuzu", "Jaguar", "Jeep", "Kia", "Lamborghini", "Land Rover", "Lexus", "Lincoln", "Lotus", "Maserati", "Maybach", "Mazda", "Mercedes-Benz", "Mercury", "Merkur", "MINI", "Mitsubishi", "Nissan", "Oldsmobile", "Panoz", "Peugeot", "Plymouth", "Pontiac", "Porsche", "Renault", "Rolls-Royce", "Saab", "Saturn", "Scion", "Smart", "Sterling", "Subaru", "Suzuki", "Toyota", "Volkswagen", "Volvo", "Yugo");

var newmakes = new Array();
var makes = new Array();
var newmodels = new Array();
var models = new Array();

var cities = new Array();

var xmlDoc;
var xmlDoc2;
var xmlDoc3;
var times_up = false;
var times_up2 = false;
var times_up3 = false;
var expiretime = 5000; //set expire time to abort. 5 seconds.
var rooturl = 'http://' + window.location.host;

function loadmakes() {
	if (window.ActiveXObject) {
	
		xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.load(rooturl + "/data/make.xml");
		//setTimeout("times_up=true", expiretime); //set abort download time (5 sec).
		XMLloadcontrol();
	}
	
	else if (window.XMLHttpRequest) {
	 
        req = new XMLHttpRequest();
        req.onreadystatechange = processReqChange;
        req.open("GET", rooturl + "/data/make.xml", true);
        req.send(null);
      
        }
	
}
//processreqchanges for each load
function processReqChange() {

    // only if req shows "loaded"
    if (req.readyState == 4) {
        // only if "OK"
        if (req.status == 200) {
        
            processmakes2();
         } else {
            alert("There was a problem retrieving the XML data:\n" +
                req.statusText);
         }
    }
}
function XMLloadcontrol() {
	if (times_up==true) { //if designated time frame has expired
		//alert ("XML file loading aborted");
		return;
	}
	else if (xmlDoc.readyState==4) { //if xml file has loaded within time frame
		processmakes(); //execute the rest of the script
	}
	else //else, run thyself again
		setTimeout("XMLloadcontrol()",10);
}

function processmakes() {

	var makeobj = xmlDoc.getElementsByTagName("ConfigDS")[0];
	
	var cnt = 0;
	
	for (i=0;i<makeobj.childNodes.length;i++){
		makes[i] = new Array(makeobj.childNodes[i].childNodes[0].firstChild.nodeValue);
		
		models[makeobj.childNodes[i].childNodes[0].firstChild.nodeValue] = new Array();
		if (makeobj.childNodes[i].childNodes[1].firstChild.nodeValue == 1) {
			newmakes[cnt] = new Array(makeobj.childNodes[i].childNodes[0].firstChild.nodeValue);
			newmodels[makeobj.childNodes[i].childNodes[0].firstChild.nodeValue] = new Array();
			cnt = cnt + 1;
		}
	}
//	loadmodels();
}


//This handles Firefox reading WhiteSpaces in XML and now also Safari/Google Chrome
function processmakes2() {

	var makeobj = req.responseXML.getElementsByTagName("ConfigDS")[0];
	var cnt = 0;
	 	for (i=0;i<makeobj.getElementsByTagName("MakeDS").length;i++){
		  makes[i] = new Array(makeobj.getElementsByTagName("MakeDS")[i].childNodes[1].textContent);
	  models[makeobj.getElementsByTagName("MakeDS")[i].childNodes[1].textContent] = new Array();
	  //alert(makeobj.getElementsByTagName("MakeDS")[i].childNodes[3].textContent);
		if (makeobj.getElementsByTagName("MakeDS")[i].childNodes[3].textContent == 1) {
      newmakes[cnt] = new Array(makeobj.getElementsByTagName("MakeDS")[i].childNodes[1].textContent);
      //alert('hi');
			newmodels[makeobj.getElementsByTagName("MakeDS")[i].childNodes[1].textContent] = new Array();
			cnt = cnt + 1;
			
		}
	}
//	loadmodels();
}


loadmakes();


function addOption(selectbox,text,value )
{
var optn = document.createElement("OPTION");
optn.text = text;
optn.value = value;
selectbox.options.add(optn);
}


function addOption_list(selectbox){

for (var i=0; i < makes.length;++i){

addOption(selectbox, makes[i], makes[i]);
}
}

function addOptionNew_list(selectbox){

for (var i=0; i < newmakes.length;++i){

addOption(selectbox, newmakes[i], newmakes[i]);
}
}


function addOption3_list(box){

var make = newmodels[box.options[box.selectedIndex].value];
var newmake = box.options[box.selectedIndex].value;
//emptyList( box.form.Model );

if (newmake.length > 0){
	/*for (var i=0; i < make.length;++i){
	addOption(box.form.Model, make[i], make[i]);
	}*/
	//Change Flash movies
	var movieName = "MediaViewer";
	var mymovie = thisMovie(movieName);
	var newurl = 'MediaViewer.swf?c=CFG/WebsiteConfigMV' + newmake + 'Config.xml';
	
	mymovie.LoadMovie(0, newurl);
	
	
}
else
{
//addOption(box.form.Model, 'Select Model', '');
}
}

function emptyList( box ) {
 // Set each option to null thus removing it
 while ( box.options.length ) box.options[0] = null;
}

function thisMovie(movieName) {
  // IE and Netscape refer to the movie object differently.
  // This function returns the appropriate syntax depending on the browser.
  if (navigator.appName.indexOf ("Microsoft") !=-1) {
    return window[movieName]
  } else {
    return document[movieName]
  }
}

// Checks if movie is completely loaded.
// Returns true if yes, false if no.
function movieIsLoaded (theMovie) {
  // First make sure the movie's defined.
  if (typeof(theMovie) != "undefined") {
    // If it is, check how much of it is loaded.
    return theMovie.PercentLoaded() == 100;
  } else {
    // If the movie isn't defined, it's not loaded.
    return false;
  }
}

