var txt;
var automotive = [];
var motorcyle = [];
var fleet = [];
var makes = [];

function loadList(url) {
	document.getElementById('catMenu')[0].selected = "1";
	document.getElementById('catMenu').disabled = true;
	document.getElementById('modelMenu').disabled = true;
	document.getElementById('makeMenu').disabled = true;
	document.getElementById('yearMenu').disabled = true;
	document.getElementById('catWaitImg').style.display = 'inline';
  if (window.XMLHttpRequest) {
    req = new XMLHttpRequest();
  } else if (window.ActiveXObject) {
    req = new ActiveXObject("Microsoft.XMLHTTP");
  }
  if (req != undefined) {
    req.onreadystatechange = function() {loadDone(url);};
    req.open("GET", url, true);
    req.send("");
  }
	return false;
}

function loadDone(url) {
  if (req.readyState == 4) { // only if req is "loaded"
    if (req.status == 200) { // only if "OK"
	 txt= req.responseText;
	  setCat();
	  document.getElementById('catWaitImg').style.display = 'none';
    } else {
	  document.getElementById('makeWaitImg').innerHTML = " Error:\n"+ req.status + "\n" +req.statusText;
    }
  }
}
function addOption(element, optionName, optionValue){
	 var option = document.createElement('option');
	 option = document.createElement('option');
	 option.innerHTML =   optionName;
	 option.value = optionValue;
	 document.getElementById(element).appendChild(option);
}
function setCat(){
	 clearObject('catMenu');	
	 addOption('catMenu', '---Choose a Category---', '');
	 addOption('catMenu','Automotive', 'automotive');
	 addOption('catMenu','Motorcycles', 'motorcycles');
	 addOption('catMenu','Sheets', 'sheets');
	 addOption('catMenu','Rolls', 'rolls');
	 addOption('catMenu','Fleet', 'fleet');
	 addOption('catMenu','Tools', 'tools');
	 addOption('catMenu','Accessories', 'accessories');
	 document.getElementById('catMenu').disabled = false;
	 changeCat();
}
function getAutomotive(stext){
	var startIndex = stext.indexOf('>Category Index</');
	var endIndex = stext.indexOf('<!-- FOOTER -->');
	stext = stext.slice(startIndex, endIndex);
	var carSIndex = stext.indexOf('Automotive</a><br>');
	var carEIndex = stext.indexOf('Product FAQs</a>');
	var carAll = stext.slice(carSIndex, carEIndex);
	automotive = carAll.split("\n"+'&#149;');
	automotive.splice(0,1); 
	//MAKES:
	for (var w=0; w < automotive.length; w++){
		automotive[w] = automotive[w].split("\n"+' &nbsp; >');
		
		//MODELS:
		for (var x=1; x < automotive[w].length; x++){
			automotive[w][x] = automotive[w][x].split('&#149;');
			
			//YEARS:	
			for(var a=1; a < automotive[w][x].length; a++){
				var subYears  = automotive[w][x][a].split('&nbsp; >');

				//SUBLINKS:
				if( subYears.length > 1){
					var subName = parseForLinks(subYears[0]);
					var subArray = [];
					for(var b=1; b< subYears.length; b++){
						var disA = parseForLinks(subYears[b]);
						var newLink = '<a href="'+ disA[0] + '" class="yeah"> '+ subName[1] + ' -- ' + disA[1]+ ' </a>'+ '<br>';
						subArray.push(newLink);
					}
					automotive[w][x].splice(a,1);
					for(var c=0; c<subArray.length; c++){
						automotive[w][x].splice(a+c,0,subArray[c]);
						
					}
				}
			}
		}
	}
	
	document.getElementById('makeWaitImg').style.display = 'none';
	makes = automotive;	
}
function getMotorcycle(stext){
	var startIndex = stext.indexOf('>Category Index</');
	var endIndex = stext.indexOf('<!-- FOOTER -->');
	stext = stext.slice(startIndex, endIndex);
	var mcSIndex = stext.indexOf('Motorcycle</a><br>');
	var mcAll = stext.slice(mcSIndex, -1);
	var mcEIndex =  mcAll.indexOf('</tr>');
	mcAll = mcAll.slice(0, mcEIndex);
	motorcycle = mcAll.split("\n"+'&#149;');
	motorcycle.splice(0,1); 
	for (var w=0; w < motorcycle.length; w++){
		motorcycle[w] = motorcycle[w].split(' >');
		for (var x=1; x < motorcycle[w].length; x++){ 
			motorcycle[w][x] = motorcycle[w][x].split('&#149;');
		
		//YEARS:	
			for(var a=1; a < motorcycle[w][x].length; a++){
				var subYears  = motorcycle[w][x][a].split('&nbsp; >');

				//SUBLINKS:
				if( subYears.length > 1){
					var subName = parseForLinks(subYears[0]);
					var subArray = [];
					for(var b=1; b< subYears.length; b++){
						var disA = parseForLinks(subYears[b]);
						var newLink = '<a href="'+ disA[0] + '" class="yeah"> '+ subName[1] + ' -- ' + disA[1]+ ' </a>'+ '<br>';
						subArray.push(newLink);
					}
					motorcycle[w][x].splice(a,1);
					for(var c=0; c<subArray.length; c++){
						motorcycle[w][x].splice(a+c,0,subArray[c]);
						
					}
				}
			}
		}
	}
	document.getElementById('makeWaitImg').style.display = 'none';
	makes = motorcycle;	
}

function getSheets(stext){
	var startIndex = stext.indexOf('>Category Index</');
	var endIndex = stext.indexOf('<!-- FOOTER -->');
	stext = stext.slice(startIndex, endIndex);
	var sSIndex = stext.indexOf('Sheets</a><br>');
	var stext = stext.slice(sSIndex,-1);
	var sEIndex = stext.indexOf('</tr>');
	var sAll = stext.slice(0, sEIndex);
	sheets = sAll.split("\n"+'&#149;');
	sheets.splice(0,1); 
	for (var w=0; w < sheets.length; w++){
		sheets[w]= sheets[w].split(' >');
	    for (var x=1; x < sheets[w].length; x++){ 
			sheets[w][x] = sheets[w][x].split('&#149;');
		}
	}
	makes = sheets;	
	document.getElementById('makeWaitImg').style.display = 'none';
}
function getRolls(stext){
	var startIndex = stext.indexOf('>Category Index</');
	var endIndex = stext.indexOf('<!-- FOOTER -->');
	stext = stext.slice(startIndex, endIndex);
	var rSIndex = stext.indexOf('Rolls</a><br>');
	var stext = stext.slice(rSIndex,-1);
	var rEIndex = stext.indexOf('</tr>');
	var rAll = stext.slice(0, rEIndex);
	rolls = rAll.split("\n"+'&#149;');
	rolls.splice(0,1); 
	for (var w=0; w < rolls.length; w++){
		rolls[w]= rolls[w].split(' >');
	    for (var x=1; x < rolls[w].length; x++){ 
			rolls[w][x] = rolls[w][x].split('&#149;');
		}
	}
	makes = rolls;	
	document.getElementById('makeWaitImg').style.display = 'none';
}
function getFleet(stext){
	var startIndex = stext.indexOf('>Category Index</');
	var endIndex = stext.indexOf('<!-- FOOTER -->');
	stext = stext.slice(startIndex, endIndex);
	var fltSIndex = stext.indexOf('Fleet</a><br>');
	var fltAll = stext.slice(fltSIndex, -1);
	var fltEIndex = fltAll.indexOf('</tr>');
	fltAll = fltAll.slice(0, fltEIndex);
	fleet = fltAll.split("\n"+'&#149;');
	fleet.splice(0,1); 
	for (var w=0; w < fleet.length; w++){
		fleet[w] = fleet[w].split(' >');
		for (var x=1; x < fleet[w].length; x++){ 
			fleet[w][x] = fleet[w][x].split('&#149;');
		}
	}
	makes = fleet;	
	document.getElementById('makeWaitImg').style.display = 'none';
}
function getTools(stext){
	var startIndex = stext.indexOf('>Category Index</');
	var endIndex = stext.indexOf('<!-- FOOTER -->');
	stext = stext.slice(startIndex, endIndex);
	var tSIndex = stext.indexOf('Tools</a><br>');
	var stext = stext.slice(tSIndex,-1);
	var tEIndex = stext.indexOf('</tr>');
	var tAll = stext.slice(0, tEIndex);
	tools = tAll.split("\n"+'&#149;');
	tools.splice(0,1); 
	for (var w=0; w < tools.length; w++){
		tools[w]= tools[w].split(' >');
	    for (var x=1; x < tools[w].length; x++){ 
			tools[w][x] = tools[w][x].split('&#149;');
		}
	}
	makes = tools;	
	document.getElementById('makeWaitImg').style.display = 'none';
}
function getAccessories(stext){
	var startIndex = stext.indexOf('>Category Index</');
	var endIndex = stext.indexOf('<!-- FOOTER -->');
	stext = stext.slice(startIndex, endIndex);
	var aSIndex = stext.indexOf('Accessories</a><br>');
	var aEIndex = stext.indexOf('</tbody>');
	var aAll = stext.slice(aSIndex, aEIndex);
	accessories = aAll.split("\n"+'&#149;');
	accessories.splice(0,1); 
	for (var w=0; w < accessories.length; w++){
		accessories[w] = accessories[w].split(' >');
		for (var x=1; x < accessories[w].length; x++){ 
			accessories[w][x] = accessories[w][x].split('&#149;');
		}
	}
	makes = accessories;	
	document.getElementById('makeWaitImg').style.display = 'none';
}
function parseForLinks(input){
	var	result = [];
	input.replace(/<a[\s]+[^>]*?href[\s]?=[\s\"\']*(.*)[\"\']\sclass*.*?>([^<]+|.*?)?<\/a>/gi, function () {				
			result = Array.prototype.slice.call(arguments, 1, 4);	
	});
	return result;  //[0] is url,[1] is name
}
function getMakes(selObj){
	document.getElementById('makeWaitImg').style.display = 'inline';
	clearObject('makeMenu');
	clearObject('modelMenu');
	clearObject('yearMenu');
	cat = selObj.options[selObj.selectedIndex].value;
	if(cat != 'none'){	
		var theOption = document.createElement('option');
		if(cat == 'automotive'){
			getAutomotive(txt);
			document.getElementById('year_list').style.display = 'inline';
			theOption.innerHTML =  '---Choose Make---';
		}else if( cat =='motorcycles'){
			getMotorcycle(txt);
			document.getElementById('year_list').style.display = 'none';
			theOption.innerHTML =  '---Choose Make---';
		}else if(cat == 'fleet'){
			getFleet(txt);	
			document.getElementById('year_list').style.display = 'none';
			theOption.innerHTML =  '---Choose Make---';
		}else if(cat == 'accessories'){
			getAccessories(txt);
				{
     open('/Universal-Accessories-s/297.htm',"_parent");
}
		}else if(cat == 'rolls'){
			getRolls(txt);	
		    document.getElementById('model_list').style.display = 'none';
			document.getElementById('year_list').style.display = 'none';
			theOption.innerHTML =  '-Choose Roll Size-';
		}else if(cat == 'sheets'){
			getSheets(txt);	
			document.getElementById('model_list').style.display = 'none';
			document.getElementById('year_list').style.display = 'none';
			theOption.innerHTML =  '-Choose Sheet Size-';
		}else if(cat == 'tools'){
			getTools(txt);	
			{
     open('/Installation-Tools-s/167.htm',"_parent");
}
		}
		document.getElementById('makeMenu').appendChild(theOption);
		for (var w=0; w < makes.length; w++){
			var makeUrl = parseForLinks(makes[w][0]);

			var innerOption = document.createElement('option');
			innerOption.value = w;
			innerOption.innerHTML =  makeUrl[1];
			document.getElementById('makeMenu').appendChild(innerOption);
		}
	}
	document.getElementById('makeWaitImg').style.display = 'none';
	document.getElementById('makeMenu').disabled = false;
}
function getModels(selObj){
	clearObject('modelMenu');

	document.getElementById('modelWaitImg').style.display = 'inline';
	make = selObj.options[selObj.selectedIndex].value;
	var theOption = document.createElement('option');
	theOption.innerHTML =  '---Choose Model---';
	document.getElementById('modelMenu').appendChild(theOption);
	if(makes[make].length > 1){
		for (var x=1; x < makes[make].length; x++){
			var modelUrl = parseForLinks(makes[make][x][0]);
			var innerOption = document.createElement('option');
			innerOption.innerHTML = modelUrl[1];
			innerOption.value = make+ '--'+ x;
			document.getElementById('modelMenu').appendChild(innerOption);
			document.getElementById('model_list').style.display = 'inline';
		}
	}else{
		yearUrl = parseForLinks(makes[make][0]);
		document.getElementById('makeWaitImg').style.display = 'none';
		document.location = yearUrl[0] ;
		document.getElementById('year_list').style.display = 'none';
		document.getElementById('model_list').style.display = 'none';
	}
	document.getElementById('modelWaitImg').style.display = 'none';
	document.getElementById('modelMenu').disabled = false;
	document.getElementById('yearMenu').disabled = true;
}
function getYearGroup(selObj){
	clearObject('yearMenu');
	var makeModel = selObj.options[selObj.selectedIndex].value;
	var makeModelArr = makeModel.split('--');
	var make = makeModelArr[0];
	var model = makeModelArr[1];
	var yearUrl;
	if(makes[make][model].length >1){
		document.getElementById('yearWaitImg').style.display = 'inline';
		var theOption = document.createElement('option');
		theOption.innerHTML =  '---Choose Year---';
		document.getElementById('yearMenu').appendChild(theOption);
		for (var t=1; t < makes[make][model].length; t++){
			yearUrl = parseForLinks(makes[make][model][t]);			
			var innerOption = document.createElement('option');
			innerOption.innerHTML = yearUrl[1];
			innerOption.value = make+ '--'+ model + '--'+ t
			document.getElementById('yearMenu').appendChild(innerOption);
			document.getElementById('yearWaitImg').style.display = 'none';
		}
	}else{
		yearUrl = parseForLinks(makes[make][model][0]);
		document.getElementById('yearWaitImg').style.display = 'none';
		document.getElementById('modelWaitImg').style.display = 'none';
		document.location = yearUrl[0] ;
		
	}
	document.getElementById('yearMenu').disabled = false;
}
function selPage(selObj){
	var makeModelYear = selObj.options[selObj.selectedIndex].value;
	var makeModelYearArr = makeModelYear.split('--');
	var make = makeModelYearArr[0];
	var model = makeModelYearArr[1];
	var year = makeModelYearArr[2];	
	var url = parseForLinks(makes[make][model][year]);
	document.location = url[0] ;
}
function clearObject(name){
	var cell = document.getElementById(name);
	if ( cell.hasChildNodes() )
	{
		while ( cell.childNodes.length >= 1 )
		{
			cell.removeChild( cell.firstChild );       
		} 
	}
}


//Volusion supplies us with a breadcrumb variable. This function returns a string that is the current category.
function getCategoryID() {
	var list = breadCrumb.split("|");
/*
	console.log("list:");
	console.log(list);
*/
	var tmp = list[list.length - 2];
/*
	console.log("tmp:");
	console.log(tmp);
	console.log("Category Id: " + tmp);
*/
	return tmp;
}


//Categories Match list. So that we know which option in the select box corresponds to which category.
var Categories = {
	"47":{id:1}, //Automotive
	"74":{id:2}, //Motorcycle
    "289":{id:3}, //Sheets
	"296":{id:4}, //Rolls
    "167":{id:6}, //Tools
	"72":{id:5}, //Fleet
}

//Function to change the category of the select box automagically, and then call the onchange event.
function changeCat () {
	var catID = getCategoryID();
	var el = document.getElementById('catMenu');
/*
	console.log(Categories[catID]);
*/
	if (Categories[catID] !== undefined && el !== null) {
/*
		console.log(el);
*/
		el.options[Categories[catID].id].selected = true;
		getMakes(el);
	}
}
