// tire selector application functions
var root_dir= "/uniroyal"
var data_dir= "/uniroyal/tire-selector/data";
var t_width	= "";
var t_ratio	= "";
var t_size 	= "";

function show_items_preselected() {
// purpose: prepopulates tire selection by vehicle combo boxes when the vehicle is present
	if (document.getElementById) {
		var yearX	=(window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
		var makeX	=(window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
		var modelX	=(window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
		var optionX	=(window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
		
		var file_dir=data_dir+"/ymmo/";
		
		// year
		if (yearX) {
			yearX.onreadystatechange = function() {
				if (yearX.readyState==4 && yearX.status==200) {
					var el=document.getElementById("year");
					el.innerHTML=combo_box_preselected(yearX.responseText,"year",year);
				}
			}
			yearX.open("GET", file_dir+"years.txt", true);
			yearX.send(null);
		}
		
		// make
		if (makeX) {
			makeX.onreadystatechange = function() {
				if (makeX.readyState==4 && makeX.status==200) {
					var el=document.getElementById("make");
					el.innerHTML=combo_box_preselected(makeX.responseText,"make",make);
				}
			}
			makeX.open("GET", file_dir+filter(year)+".makes.txt", true);
			makeX.send(null);
		}
		
		// model
		if (modelX) {
			modelX.onreadystatechange = function() {
				if (modelX.readyState==4 && modelX.status==200) {
					var el=document.getElementById("model");
					el.innerHTML=combo_box_preselected(modelX.responseText,"model",model);
				}
			}
			modelX.open("GET", file_dir+fiter(year)+"."+filter(make)+".models.txt", true);
			modelX.send(null);
		}
		
		// option
		if (optionX) {
			optionX.onreadystatechange = function() {
				if (optionX.readyState==4 && optionX.status==200) {
					var el=document.getElementById("option");
					el.innerHTML=combo_box_preselected(optionX.responseText,"option",option);
					en_button("by-vehicle-btn");
				}
			}
			optionX.open("GET", file_dir+filter(year)+"."+filter(make)+"."+filter(model)+".options.txt", true);
			optionX.send(null);
		}
	}
}

function combo_box_preselected(text,name,value) {
// purpose: generates the lists of options for the tire selection by vehicle combo boxes when the vehicle is present
	var o='<select name="'+name+'"';
	switch (name) {
		case "year":
			o += ' onchange="year_onchange(this)"';
			break;
		case "make":
			o += ' onchange="make_onchange(this)"';
			break;
		case "model":
			o += ' onchange="model_onchange(this)"';
			break;
		case "option":
			o += ' onchange="option_onchange(this)"';
			break;
	}
	o += '>';
	if (text.indexOf("|")>0) {
    	var r=text.split("||");
		if (r.length>1) {
			o += '\n<option value="-">Seleccionar</option>';
			// display years in desc order
			if(name=="year") {
				for (var i=r.length-1; i>=0; i--) {
					o += '\n<option value="'+r[i]+'"';
					if (filter(r[i])==filter(value)) o += ' selected="selected"';
					o += '>'+r[i]+'</option>';
				}
			// all the rest in asc
			}else{
				for (var i=0; i<r.length; i++) {
					o += '\n<option value="'+r[i]+'"';
					if (filter(r[i])==filter(value)) o += ' selected="selected"';
					o += '>'+r[i]+'</option>';
				}
			}
		}
	}else{
		o += '\n<option value="'+text+'">'+text+'</option>';
	}
	o += '</select>';
	return o;
}

function show_year_preselected(year) {
// purpose: prepopulates year selection combo box when the year is present
	if (document.getElementById) {
		dis_select("year");
		dis_select("make");
		dis_select("model");
		dis_select("option");
		dis_button("by-vehicle-btn");
		var yearX	=(window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
		var makeX	=(window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
		var file_dir=data_dir+"/ymmo/";
		
		// model
		if (yearX) {
			yearX.onreadystatechange = function() {
				if (yearX.readyState==4 && yearX.status==200) {
					var el=document.getElementById("year");
					el.innerHTML=year_combo_box(yearX.responseText,"year",year);
				}
			}
			yearX.open("GET", file_dir+"years.txt", true);
			yearX.send(null);
		}

		//make
		if (makeX) {
			makeX.onreadystatechange = function() {
				if (makeX.readyState==4 && makeX.status==200) {
					var el=document.getElementById("make");
					el.innerHTML=combo_box(makeX.responseText,"make");
				}
			}
			makeX.open("GET", file_dir+filter(year)+".makes.txt", true);
			makeX.send(null);
		}
	}
}

function year_combo_box(text,name,value) {
// purpose: generates the lists of options for the vehicle year combo box
	var o='<select name="'+name+'" onchange="'+name+'_onchange(this)">';
	if (text.indexOf("|")>0) {
    	var r=text.split("||");
		if (r.length>1) {
			o += '\n<option value="-">Seleccionar</option>';
			for (var i=0; i<r.length; i++) {
				o += '\n<option value="'+r[i]+'"';
				if (filter(r[i])==filter(value)) o += ' selected="selected"';
				o += '>'+r[i]+'</option>';
			}
		}
	}else{
		o += '\n<option value="'+text+'">'+text+'</option>';
	}
	o += '</select>';
	year=value;
	return o;
}

function show_items(id,file) {
// purpose: gets contents of the specified .txt file
	if (document.getElementById) {
		var x=(window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
		if (x) {
			x.onreadystatechange = function() {
				if (x.readyState==4 && x.status==200) {
					var el=document.getElementById(id);
					el.innerHTML=combo_box(x.responseText,id);
					//el.childNodes[0].focus();
					// handle single-option selects
					if (el.childNodes[0].options.length==1) {
						switch (id) {
							case "make":
								year=filter(el.childNodes[0].options[0].value);
								show_items("model", filter(year) + "." + filter(make) + ".models");
								break;
							case "model":
								model=filter(el.childNodes[0].options[0].value);
								show_items("option", filter(year) + "." + filter(make) + "." + filter(model) + ".options");
								break;
							case "option":
								en_button("by-vehicle-btn");
								break;
							case "tireSectionWidth":
								t_width=filter(el.childNodes[0].options[0].value);
								show_items("tireAspectRatio", filter(t_width) + ".aspects");
								break;
							case "tireAspectRatio":
								t_ratio=filter(el.childNodes[0].options[0].value);
								show_items("tireRimDiameter", filter(t_width) + "." + filter(t_ratio) + ".sizes");
								break;
							case "tireRimDiameter":
								en_button("tire-size-btn");
								break;
						}
					}
				}
			}
			var file_dir 	= "";
			switch (id) {
				case "year":
				case "make":
				case "model":
				case "option":
					file_dir=data_dir+"/ymmo/";
					break;
				case "tireSizeType":
				case "tireSectionWidth":
				case "tireAspectRatio":
				case "tireRimDiameter":
					file_dir=data_dir+"/tires/";
					if (t_size != "") file_dir=data_dir+"/tires/"+t_size+"/";
					break;
			}
			x.open("GET", file_dir+file+".txt", true);
			x.send(null);
		}
	}
}

function show_tire_names(id) {
// purpose: populates "search by tire name" dropdown
	if (document.getElementById) {
		var x=(window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
		if (x) {
			x.onreadystatechange = function() {
				if (x.readyState==4) {
					var el=document.getElementById(id);
					el.innerHTML=combo_box(x.responseText,id);
					//el.childNodes[0].focus();
				}
			}
			x.open("GET", root_dir+"/tireNameInitialize.do", true);
			x.send(null);
		}
	}
}

function combo_box(text,name) {
// purpose: generates a combo box using the specified list of items
	var o='<select name="'+name+'"';
	switch (name) {
		case "year":
			dis_select("make");
			dis_select("model");
			dis_select("option");
			dis_button("by-vehicle-btn");
			o += ' onchange="year_onchange(this)"';
			break;
		case "make":
			dis_select("model");
			dis_select("option");
			dis_button("by-vehicle-btn");
			o += ' onchange="make_onchange(this)"';
			break;
		case "model":
			dis_select("option");
			dis_button("by-vehicle-btn");
			o += ' onchange="model_onchange(this)"';
			break;
		case "option":
			o += ' onchange="option_onchange(this)"';
			break;
		case "tireSizeType":
			dis_select("tireSectionWidth");
			dis_select("tireAspectRatio");
			dis_select("tireRimDiameter");
			dis_button("tire-size-btn");
			o += ' onchange="tireSizeType_onchange(this)"';
			break;
		case "tireSectionWidth":
			dis_select("tireAspectRatio");
			dis_select("tireRimDiameter");
			dis_button("tire-size-btn");
			o += ' onchange="tireSectionWidth_onchange(this)"';
			break;
		case "tireAspectRatio":
			o += ' onchange="tireAspectRatio_onchange(this)"';
			break;
		case "tireRimDiameter":
			o += ' onchange="tireRimDiameter_onchange(this)"';
			break;
		case "prodId":
			o += ' onchange="brandLineCode_onchange(this)"';
			break;
	}
	o += '>';
	// the list is supposed to be || delimited
	if (text.indexOf("|")>0) {
		// remove leading and trailing line breaks
		var r=text.replace(/^[\r\n]+|[\r\n]+$/g, "");
		// ensure that there is no extraneous delimiter in the end
		if(r.substring(r.length-2,r.length)=="||") r=r.substring(0,r.length-2);
		var r=r.split("||");
		if (r.length>1) {
			o += '\n<option value="-">Seleccionar</option>';
			// display years in desc order
			if(name=="year") {
				for (var i=r.length-1; i>=0; i--) {
					o += '\n<option value="'+r[i].replace(/^[\r\n]+|[\r\n]+$/g, "")+'">'+r[i].replace(/^[\r\n]+|[\r\n]+$/g, "")+'</option>';
				}
			// modify value for tire size
			}else if(name=="tireSizeType"){
				for (var i=0; i<r.length; i++) {
					o += '\n<option value="'+r[i].replace(/^[\r\n]+|[\r\n]+$/g, "").substring(0,(r[i].indexOf("(")-1))+'">'+r[i].replace("(","(ex.").replace(/^[\r\n]+|[\r\n]+$/g, "")+'</option>';
				}
			// break the tire name value into brand line name and legal name with special characters
			}else if(name=="prodId"){
				for (var i=0; i<r.length; i++) {
					o += '\n<option value="'+r[i].replace(/^[\r\n]+|[\r\n]+$/g, "").substring(0,r[i].indexOf("~"))+'">'+r[i].replace(/^[\r\n]+|[\r\n]+$/g, "").substring(r[i].indexOf("~")+1)+'</option>';
				}
			// all the rest in asc
			}else{
				for (var i=0; i<r.length; i++) {
					o += '\n<option value="'+r[i].replace(/^[\r\n]+|[\r\n]+$/g, "")+'">'+r[i].replace(/^[\r\n]+|[\r\n]+$/g, "")+'</option>';
				}
			}
		}
	}else{
		o += '\n<option value="'+text+'">'+text+'</option>';
	}
	o += '</select>';
	return o;
}

function year_onchange(sel) {
// purpose: runs onchange of the 'year' combo box
	var val=filter(sel.options[sel.selectedIndex].value);
	dis_select("make");
	dis_select("model");
	dis_select("option");
	dis_button("by-vehicle-btn");
	year=val;
	show_items("make", filter(year)+".makes");
}

function make_onchange(sel) {
// purpose: runs onchange of the 'make' combo box
	var val=filter(sel.options[sel.selectedIndex].value);
	dis_select("model");
	dis_select("option");
	dis_button("by-vehicle-btn");
	make=val;
	show_items("model", filter(year) + "." + filter(make) + ".models");
}

function model_onchange(sel) {
// purpose: runs onchange of the 'model' combo box
	var val=filter(sel.options[sel.selectedIndex].value);
	dis_select("option");
	dis_button("by-vehicle-btn");
	model=val;
	show_items("option", filter(year) + "." + filter(make) + "." + filter(model) + ".options");
}

function option_onchange(sel) {
// purpose: runs onchange of the 'option' combo box
	if (sel.selectedIndex<=0) {
		dis_button("by-vehicle-btn");
	}else{
		if (option.length>0) option_old=option;
		en_button("by-vehicle-btn");
	}
}


function show_section_items(id) {
// purpose: populates "search by tire name" dropdown
	if (document.getElementById) {
		var x=(window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
		if (x) {
			x.onreadystatechange = function() {
				if (x.readyState==4) {
					var el=document.getElementById(id);
					el.innerHTML=combo_box(x.responseText,id);
					el.childNodes[0].focus();
				}
			}
			switch (id) {
				case "tireSectionWidth":
					x.open("GET", root_dir+"/tireSectionWidthInitialize.do", true);
				break;
				case "tireAspectRatio":
					x.open("GET", root_dir+"/tireSectionWidthSubmit.do", true);
				break;
				case "":
					x.open("GET", root_dir+"/tireAspectRatioSubmit.do", true);
				break;
				case "":
					x.open("GET", root_dir+"/tireRimDiameterSubmit.do", true);
				break;
			}			
			x.send(null);
		}
	}
}

function tireSizeType_onchange(sel) {
// purpose: runs onchange of the 'tireSectionWidth' combo box
	val=filter(sel.options[sel.selectedIndex].value);
	dis_select("tireSectionWidth");
	dis_select("tireAspectRatio");
	dis_select("tireRimDiameter");
	dis_button("tire-size-btn");
	t_size=val;
	show_items("tireSectionWidth","widths");
	//show_section_items("tireSectionWidth");
}

function tireSectionWidth_onchange(sel) {
// purpose: runs onchange of the 'tireSectionWidth' combo box
	val=filter(sel.options[sel.selectedIndex].value);
	dis_select("tireAspectRatio");
	dis_select("tireRimDiameter");
	dis_button("tire-size-btn");
	t_width=val;
	show_items("tireAspectRatio", filter(t_width)+".aspects");
	//show_section_items("tireAspectRatio");
}

function tireAspectRatio_onchange(sel) {
// purpose: runs onchange of the 'tireAspectRatio' combo box
	val=filter(sel.options[sel.selectedIndex].value);
	dis_select("tireRimDiameter");
	dis_button("tire-size-btn");
	t_ratio=val;
	show_items("tireRimDiameter", filter(t_width) + "." + filter(t_ratio) + ".sizes");
	//show_section_items("tireRimDiameter");
}

function tireRimDiameter_onchange(sel) {
// purpose: runs onchange of the 'tireRimDiameter' combo box
	if (sel.selectedIndex<=0) {
		dis_button("tire-size-btn");
	}else{
		en_button("tire-size-btn");
	}
}

function brandLineCode_onchange(sel) {
// purpose: runs onchange of the 'tireName' combo box
	if (sel.selectedIndex<=0) {
		dis_button("tire-name-btn");
	}else{
		en_button("tire-name-btn");
	}
}

function dis_select(id) {
// purpose: displays an empty and disabled select box
	var sel='<select></select>';
	var el=document.getElementById(id);
	if(el) {
		try {
			el.innerHTML=sel;
			el.childNodes[0].disabled=true;
		} catch(e) {
			// do nothing
		}
	}
}

function dis_button(id) {
// purpose: disables the specified submit button
	var btn=document.getElementById(id);
	if (btn && btn.disabled==false) {
		for (var x=0; x<btn.attributes.length; x++) {
			if (btn.attributes[x].nodeName.toLowerCase()=="class") btn.className=btn.attributes[x].nodeValue+" op5";
		}
		btn.disabled=true;
	}
}

function en_button(id) {
// purpose: enables the specified submit button
	var btn=document.getElementById(id);
	if (btn && btn.disabled==true) {
		for (var x=0; x<btn.attributes.length; x++) {
			if (btn.attributes[x].nodeName.toLowerCase()=="class") btn.className=btn.attributes[x].nodeValue.replace(" op5","");
		}
		btn.disabled=false;
	}
}

function filter(v) {
// purpose: converts the specified value to lower case and replaces non-alphanumeric characters with underscores
	if (v) v=v.toLowerCase().replace(/[^a-zA-Z0-9]/g, "_");
	return v;
}

function toggle_form_display() {
// purpose: populates the 'change vehicle' form with proper data and handles its display properties
	var id="vehicle-form";
	if (document.getElementById(id)) {
		// display disabled select boxes
		dis_select("year");
		dis_select("make");
		dis_select("model");
		dis_select("option");
		dis_button("by-vehicle-btn");
	  	if (document.getElementById(id).style.display=="none") {
	  		document.getElementById(id).style.display="block";
			if (year.length>0 && make.length>0 && model.length>0 && option.length>0) {
				show_items_preselected();
			}else{
				// populate the 'year' select box
				show_items('year','years');
			}
	  	}else{
			if (year && year_old) {
				year	=year_old;
				make	=make_old;
				model	=model_old;
				option	=option_old;
			}
	  		document.getElementById(id).style.display="none";
	  	}
	}
}

function enlarge(src,name) {
// purpose: displays an enlarged version of the tire image
	el	=document.getElementById("floatLayer");
	ets	=document.getElementById("enlarge-tire-src");
	tn	=document.getElementById("enlarge-tire-name");
	if (tn) 	tn.innerHTML  		=name;
	if (ets) 	ets.style.background		='url(/images/ts-dl/tires/large/' + src + '.jpg) 0 0 no-repeat';
	if (el) 	el.style.display	="block";
}

function closeEnlarge() {
// purpose: closes the enlarged version of the tire image
	el=document.getElementById("floatLayer");
	if (el) el.style.display="none";
}

function showGrid(id) {
// purpose: displays the Michelin Tire grid
	if (document.getElementsByTagName("select")) {
		var sels = document.getElementsByTagName("select");
		for (var i=0; i<sels.length; i++) {
			if (sels[i].getAttribute("id").substring(0,11).toLowerCase()=="dynamic-col") sels[i].style.visibility="hidden";
		}
	}
	if (id!=null) {
		el=document.getElementById(id);
		if (el) el.style.display="block";
	}
}

function hideGrid(id) {
// purpose: displays the Michelin Tire grid
	if (id!=null) {
		el=document.getElementById(id);
		if (el) el.style.display="none";
	}
	if (document.getElementsByTagName("select")) {
		var sels = document.getElementsByTagName("select");
		for (var i=0; i<sels.length; i++) {
			if (sels[i].getAttribute("id").substring(0,11).toLowerCase()=="dynamic-col") sels[i].style.visibility="visible";
		}
	}
}

function find_dealer() {
// purpose: allows visitors to submit the form with specific tire id to the dealer locator application
	if (document.tiresForm && document.tiresForm.tirePos && document.tiresForm.tireMspn) { 
		var boxes=document.tiresForm.tirePos;
		var mspns=document.tiresForm.tireMspn;
		if (boxes.length==mspns.length) {
			var count=0;
			var new_val="";
			for (var i=0; i<boxes.length; i++) {
				if (boxes[i].checked) {
					count++;
					new_val+=","+mspns[i].value;
				}
			}
			if (count==0) {
				alert ("Seleccione la llanta que desea para realizar la b\372squeda.");
			} else if (count>1) {
				alert ("S\363lo puede buscar una llanta por vez.\nCambie su selecci\363n.");
			} else {
				document.newMap.dealerDetailsId.value=new_val.substring(1,new_val.length);
				document.newMap.submit();
			}
		}
	}else{
		document.newMap.submit();
	}
}

function compare_tires() {
// purpose: allows visitors to submit the form with specific tires to the tires comparison page
	if (document.compTires && document.compTires.selectedItems) {
		var boxes=document.compTires.selectedItems;
		if (boxes.length>1) {
			var count=0;
			for (var i=0; i<boxes.length; i++) {
				if (boxes[i].checked) count++;
			}
		}
		if (count<2) {
			alert ("Seleccione al menos 2llantas para realizar una comparaci\363n.");
		} else if (count>4) {
			alert ("No puede comparar m\341s de 4 llantas.\nCambie su selecci\363n.");
		} else {
			document.compTires.submit();
		}
	}
}

function show_cat_tires(id) {
// purpose: allows visitors to view all tires in a given category with the optional vehicle filtering
	document.tireCatForm.categoryId.value=id;
	document.tireCatForm.submit();
}

function tires_dropdown(pos,sel) {
// purpose: creates a dropdown list of tires with pre-selected option for the tires comparison page
	var tiresBox = '<select id="dynamic-col-'+pos+'" onchange="tiresBox_onchange(this)">';
	tiresBox += '<option value="-1" style="text-transform:capitalize">Seleccionar Llanta</option>';
	for (var i=0; i<tiresAll.length; i++) {
		tiresBox += '<option value="'+i+'"';
		if (tiresAll[i].id==sel) tiresBox += ' selected="selected"';
		tiresBox += '>'+tiresAll[i].legal+'</option>';
	}
	tiresBox += '</select>';
	return tiresBox;
}

function tiresBox_onchange(obj) {
// purpose: updates the contents of a dynamic data column in the tires comparison table 
	var i=obj.selectedIndex==0?0:obj.selectedIndex-1;
	var y=parseInt(obj.getAttribute("id").toLowerCase().replace("dynamic-col-",""));
	
	var tableRows 	= document.getElementById("top-table").rows;
	
	for (var j=0; j<tableRows.length; j++) {
		var rowCells = tableRows[j].cells;
		switch(j) {
			case 0:
				rowCells[y].innerHTML='<div class="tire-img '+tiresAll[i].image+'">&nbsp;</div>';
				break;
			case 1:
				rowCells[y].innerHTML=tires_dropdown(y,tiresAll[i].id);
				break;
			case 2:
				rowCells[y].innerHTML=tiresAll[i].features;
				break;
			case 3:
				rowCells[y].innerHTML='<a href="/overview/'+tiresAll[i].image+'/'+tiresAll[i].id+'.html" class="tire-details-btn" title="Ver Llanta"><span>Ver Llanta</span></a>';
				break;
		}
	}
	init_all_layers();
}

function tire_info() {
// purpose: populates dynamic table columns on the tire comparison page
	if (tiresAll.length > 0) {
		var tableRows 	= document.getElementById("top-table").rows;
		for (var j=0; j<tableRows.length; j++) {
			var rowCells = tableRows[j].cells;
			for (var i=0; i<tiresStatic.length; i++) {
				switch(j) {
					case 0:
						rowCells[i+1].innerHTML='<div class="tire-img '+tiresStatic[i].image+'">&nbsp;</div>';
						break;
					case 1:
						rowCells[i+1].innerHTML=tires_dropdown(i+1,tiresStatic[i].id);
						break;
					case 2:
						rowCells[i+1].innerHTML=tiresStatic[i].features;
						break;
					case 3:
						rowCells[i+1].innerHTML='<a href="/overview/'+tiresStatic[i].image+'/'+tiresStatic[i].id+'.html" class="tire-details-btn" title="Ver Llanta"><span>Ver Llanta</span></a>';
						break;
				}
			}
			if (maxVisible-tiresStatic.length > 0) {
				for (var i=tiresStatic.length; i<maxVisible; i++) {
					if (j==1) rowCells[i+1].innerHTML=tires_dropdown(i+1,0);
				}
			}
		}
	}
	init_all_layers();
}

function toggle_el(id) {
// purpose: handles an element display properties
	if (document.getElementById(id)) {
		if (document.getElementById(id).style.display=="none") {
	  		document.getElementById(id).style.display="block";
		}else{
	  		document.getElementById(id).style.display="none";
	  	}
	}
}

function handle_results(display_class,tag_type) {
// purpose: handles the tire search by vehicle result
	if (!(std_b==0 && std_f==0 && std_r==0 && opt1_b==0 && opt1_f==0 && opt1_r==0 && opt2_b==0 && opt2_f==0 && opt2_r==0)) {
		var total_items		= 0;
		var arStdOpt 		= new Array("opt2", "opt1", "std");
		var arDivName 		= new Array("opt2", "opt1", "st");
		var arBFR 			= new Array("r", "f", "b");
		var all_divs		= document.getElementsByTagName("div");
		var content_height  = 0;
		if (tag_type=="tr") {
			all_divs=document.getElementsByTagName("tr");
		}else{
			tag_type="div";
		}
		
		if (document.getElementById("tabNavForm") && document.getElementById("tabNavForm").showElements) {
			document.getElementById("tabNavForm").showElements.value=display_class;
		}
		if (document.getElementById("content-container")) {
			content_height = document.getElementById("content-container").offsetHeight;
		}
		
		show_hide('results-tag,tire-results-tab-nav,results-comparison','cross-sell-wrap,spacer');
		
		for (var o=0; o<arStdOpt.length; o++) {
			for (var p=0; p<arBFR.length; p++) {
				var name 		= arStdOpt[o]+ "_" + arBFR[p];
				var linkName 	= name + "_link";
				var divName 	= "tire-wrap-" + arDivName[o]+ "-" + arBFR[p];
				var temp 		= eval(name);
				var temp_str 	= "";
				var the_length;
				if (temp > 0) {
					temp_str='<a href="javascript:handle_results(\''+divName+'\',\''+tag_type+'\')">'+document.getElementById(linkName).innerHTML+'</a>';
					the_length=document.getElementById(linkName).innerHTML.length;
					// if (document.getElementById(linkName).innerHTML.charAt(the_length-1) != ")" && document.getElementById(linkName).innerHTML.charAt(the_length-1) != ">") temp_str+='&nbsp;&nbsp;(<strong>'+temp+'</strong> tires)';
					document.getElementById(linkName).innerHTML=temp_str;
				}
			}
		}
		
		if (display_class!="all") {
			for (var i=0; i<all_divs.length; i++) {
				var the_div=all_divs[i];
				for (var x=0; x<the_div.attributes.length; x++) {
					if (the_div.attributes[x].nodeName.toLowerCase()=="class" && the_div.attributes[x].nodeValue.substring(0,9)=="tire-wrap") {
						// hide all divs first, then display the ones that are needed
						content_height = content_height - the_div.offsetHeight;
						the_div.style.display="none";
						if (the_div.attributes[x].nodeValue==display_class) {
							if (tag_type=="tr") {
								try {
									the_div.style.display="table-row";
								} catch(e) {
									the_div.style.display="block";
								}
							}else{
								the_div.style.display="block";
								content_height = content_height + the_div.offsetHeight;
							}
							total_items++;
						}
					}
				}
			}
			document.getElementById("result-length").innerHTML=total_items;
		} else {
			var total_items = 0;
			
			for (var o=0; o<arStdOpt.length; o++) {
				for (var p=0; p<arBFR.length; p++) {
					var className 	= "tire-wrap-" + arDivName[o]+ "-" + arBFR[p];
					var name 		= arStdOpt[o]+ "_" + arBFR[p];
					var temp 		= eval(name);
					if (temp > 0) {
						display_class 	= className;
						total_items 	= temp;
					}
				}
			}
			
			if (display_class.length>0) {
				for (var i=0; i<all_divs.length; i++) {
					var the_div=all_divs[i];
					for (var x=0; x<the_div.attributes.length; x++) {
						if (the_div.attributes[x].nodeName.toLowerCase()=="class" && the_div.attributes[x].nodeValue.substring(0,9)=="tire-wrap") {
							// hide all divs first, then display the ones that are needed
							content_height = content_height - the_div.offsetHeight;
							the_div.style.display="none";
							if (the_div.attributes[x].nodeValue==display_class) {
								if (tag_type=="tr") {
									try {
										the_div.style.display="table-row";
									} catch(e) {
										the_div.style.display="block";
									}
								}else{
									the_div.style.display="block";
									content_height = content_height + the_div.offsetHeight;
								}
							}
						}
					}
				}
				document.getElementById("result-length").innerHTML=total_items;
			}
		}
		if (document.getElementById("content-container")) {
			document.getElementById("content-container").style.height=content_height+"px";
		}
		var size_type=display_class.charAt(display_class.length-1).toLowerCase();
		switch (size_type) {
			case "f":
				document.getElementById("result-type").innerHTML="&nbsp;front";
				break;
			case "r":
				document.getElementById("result-type").innerHTML="&nbsp;rear";
				break;
			default:
				document.getElementById("result-type").innerHTML="";
				break;
		}
	}
	init_all_layers();
}


function show_cs() {
// purpose:  displays the cross-cell message
	var content_height = 0;
	if (document.getElementById("content-container")) {
		content_height = document.getElementById("content-container").offsetHeight;
	} 
	show_hide('cross-sell-wrap,spacer','results-tag,tire-results-tab-nav,results-comparison');
	var all_divs		= document.getElementsByTagName("div");
	for (var i=0; i<all_divs.length; i++) {
		var the_div=all_divs[i];
		for (var x=0; x<the_div.attributes.length; x++) {
			if (the_div.attributes[x].nodeName.toLowerCase()=="class" && the_div.attributes[x].nodeValue.substring(0,9)=="tire-wrap") {
				content_height = content_height - the_div.offsetHeight;
				the_div.style.display="none";
			}
		}
	}
	if (document.getElementById("content-container")) {
		document.getElementById("content-container").style.height=(content_height>530?content_height:530)+"px";
		init_all_layers();
	}
}
