/**
 * changes which diameter tab is displayed, if the tab is open already, close it
 */
function toggleInfo(i, tabIndex, selectedFront, suffix, myEvent) {
	//get all of the (size) tab elements
	var sizeTabs = document.getElementById("sizelist" + i + suffix).getElementsByTagName("LI");
	for(j=0; j<sizeTabs.length; j++) {
		if(tabIndex==j || (tabIndex>4 && tabIndex-5==j)) {
			if(sizeTabs[j].getElementsByTagName("A")[0].className == "current") {
				//this table is already open, close it
				//if we are on the closeup, do not close it
				if(closeUp == "false") {
					closeInfo(i, suffix);
				}
				return;
			}
			//set the style to indicate this is the open tab
			sizeTabs[j].getElementsByTagName("A")[0].className="current";
		} else {
			//set the style to indicate this is a closed tab
			sizeTabs[j].getElementsByTagName("A")[0].className="";
		}
	}
	//create the string to send to the servlet and set up toggleCallBack
	//to handle the xml that will be passed back
	var url = "/wheels/WheelGridControlServlet?action=openInfo&ajax=true&wheel=" + i + "&tab=" + tabIndex + "&initialPartNumber=" + selectedFront + encodedVehicle + filters;
	if(suffix != null && suffix == "_s") {
		url += "&info=steel";
	}
	if(closeUp == "true") {
		url += "&closeUp=true";
	}

	var ajax = new TR_AJAXInteraction(url, toggleCallBack);
	ajax.doGet();
	//make sure the wheel information is visible
	document.getElementById("infoContainer" + i + suffix).style.display = "block";

	var divHeight = document.getElementById("infoContainer" + i + suffix).offsetHeight + 20;
	scrollDown(myEvent, divHeight);

	//track the event in Omniture
	if(closeUp == "false") {
		linkCode();
	}
	//close the help dialogues if they are open
	if(helpOpen == i) {
		closeHelpLayers();
		showHelp(i);
	} else {
		closeHelpLayers();
	}
}
/**
 * processes the xml sent back from toggleInfo and any other method that changes
 * the display information
 */
function toggleCallBack(responseXML) {
	if(responseXML) {
	  if(responseXML.getElementsByTagName("sessionexpired").length > 0) {
		document.location = "/sessionexpired.jsp";
	  } else {
		var currWheel = "";
		if(responseXML.getElementsByTagName("currwheel").length) {
			currWheel = responseXML.getElementsByTagName("currwheel")[0].firstChild.data;
		}
		var wheels = responseXML.getElementsByTagName("wheel");
		var frontSizes = responseXML.getElementsByTagName("frontsize");
		var optionalRear = responseXML.getElementsByTagName("optionalRear");
		var hasOptionalRear = responseXML.getElementsByTagName("hasOptionalRear");
		var covers = responseXML.getElementsByTagName("cover");
		var soldOut = "false";
		var closeUpImages = responseXML.getElementsByTagName("images");
		
		if(wheels.length > 0) {
			var wheel = wheels[0];
			var partnumber = wheel.getElementsByTagName("partnumber")[0].firstChild.data;
			var sortcode = wheel.getElementsByTagName("sortcode")[0].firstChild.data;
			var size = wheel.getElementsByTagName("size")[0].firstChild.data;
			var returnToSearchResultsLink = "/wheels/WheelSearchSelectorServlet?initialPartNumber=";
			if(document.getElementById("searchResultsLink")) {
				returnToSearchResultsLink += partnumber + paramList;
			}
			var wsortcode = "";
			if(wheel.getElementsByTagName("wsortcode").length) {
				wsortcode = wheel.getElementsByTagName("wsortcode")[0].firstChild.data;
			}
			/* change the front size text and front size dropdown */
			if(frontSizes.length > 0) {
				if(frontSizes.length == 1) {
					document.getElementById("frontSizeText" + currWheel).style.display = "block";
					document.getElementById("selectFront" + currWheel).style.display = "none";
					if(navigator.platform.indexOf('Mac') < 0 && (navigator.appName == 'Microsoft Internet Explorer' || navigator.userAgent.toUpperCase().indexOf('MSIE') > -1 || navigator.appName == 'Opera' || navigator.userAgent.toUpperCase().indexOf('OPERA') > -1)){
						document.getElementById("selectFront" + currWheel).parentNode.style.height = "0px";
					}
					document.getElementById("frontSizeText" + currWheel).firstChild.data = size;
				} else {
					document.getElementById("frontSizeText" + currWheel).style.display = "none";
					frontSelect = document.getElementById("selectFront" + currWheel);
					frontSelect.style.display = "block";
					if(navigator.platform.indexOf('Mac') < 0 && (navigator.appName == 'Microsoft Internet Explorer' || navigator.userAgent.toUpperCase().indexOf('MSIE') > -1 || navigator.appName == 'Opera' || navigator.userAgent.toUpperCase().indexOf('OPERA') > -1)){
						document.getElementById("selectFront" + currWheel).parentNode.style.height = "25px";
					}
					while(frontSelect.options.length>0) {
						frontSelect.options[0] = null;
					}
					for(var j=0; j<frontSizes.length; j++) {
						newOption = new Option();
						newOption.text = frontSizes[j].getElementsByTagName("size")[0].firstChild.data;
						newOption.value = frontSizes[j].getElementsByTagName("partnumber")[0].firstChild.data;
						frontSelect.options[j] = newOption;
						if(partnumber == newOption.value) {
							newOption.selected = true;
						} else {
							newOption.selected = false;
						}
					} 
				}
			}
			/** change the front offset */
			if(wheel.getElementsByTagName("offset").length > 0) {
				var offset = wheel.getElementsByTagName("offset")[0].firstChild.data;
				document.getElementById("frontOffset" + currWheel).style.display = "block";
				if(!document.getElementById("frontOffsetNumber" + currWheel).firstChild) {
					document.getElementById("frontOffsetNumber" + currWheel).appendChild(document.createTextNode(""));
				}
				document.getElementById("frontOffsetNumber" + currWheel).firstChild.data = offset;
			} else {
				document.getElementById("frontOffset" + currWheel).style.display = "none";
			}
			/** change the front backspacing */
			if(wheel.getElementsByTagName("backspacing").length > 0) {
				var backspacing = wheel.getElementsByTagName("backspacing")[0].firstChild.data;
				document.getElementById("frontBackSpacing" + currWheel).style.display = "block";
				if(!document.getElementById("frontBackSpacingNumber" + currWheel).firstChild) {
					document.getElementById("frontBackSpacingNumber" + currWheel).appendChild(document.createTextNode(""));
				}
				document.getElementById("frontBackSpacingNumber" + currWheel).firstChild.data = backspacing;
			} else {
				document.getElementById("frontBackSpacing" + currWheel).style.display = "none";
			}
			/** create the ecom form information */
			var currPrice = wheel.getElementsByTagName("price")[0].firstChild.data;
			if(document.getElementById("frontNewItem" + currWheel)) {
				if(wheel.getElementsByTagName("isNew").length) {
					document.getElementById("frontNewItem" + currWheel).className = "star_grey";
				} else {
					document.getElementById("frontNewItem" + currWheel).className = "mainclass";
				}
			}
				
			var speccode = "";
			if(wheel.getElementsByTagName("speccode").length) {
				speccode = wheel.getElementsByTagName("speccode")[0].firstChild.data;
			}
			var ecomstring = wheel.getElementsByTagName("ecomstring")[0].firstChild.data;
			if(wheel.getElementsByTagName("mapprice").length) {
				var mapprice = wheel.getElementsByTagName("mapprice")[0].firstChild.data;
				document.getElementById("frontMarkdownPricing" + currWheel).style.display = "none";
				document.getElementById("frontPricing" + currWheel).style.display = "none";
				document.getElementById("frontMapPricing" + currWheel).style.display = "block";
				document.getElementById("frontMapPrice" + currWheel).firstChild.data = "$" + mapprice;
				document.getElementById("frontMapLink" + currWheel).href = "/cart/AddItemServlet?shopTires=false" + encodedVehicle + "&wishlist=false&shipquote=M&minSpeedRating=" + minSpeed + ecomstring;
				if(!document.getElementById("frontMapSpecFlag" + currWheel).firstChild) {
					document.getElementById("frontMapSpecFlag" + currWheel).appendChild(document.createTextNode(""));
				}
				document.getElementById("frontMapSpecFlag" + currWheel).firstChild.data = speccode;
			} else if(wheel.getElementsByTagName("markdownprice").length) {
				var markdownprice = wheel.getElementsByTagName("markdownprice")[0].firstChild.data;
				document.getElementById("frontMarkdownPricing" + currWheel).style.display = "block";
				document.getElementById("frontPricing" + currWheel).style.display = "none";
				document.getElementById("frontMapPricing" + currWheel).style.display = "none";
				document.getElementById("frontMarkdownPrice" + currWheel).firstChild.data = "$" + markdownprice;
				document.getElementById("frontMarkdownCurrPrice" + currWheel).firstChild.data = "$" + currPrice;
				if(!document.getElementById("frontMarkdownSpecFlag" + currWheel).firstChild) {
					document.getElementById("frontMarkdownSpecFlag" + currWheel).appendChild(document.createTextNode(""));
				}
				document.getElementById("frontMarkdownSpecFlag" + currWheel).firstChild.data = speccode;
				if(wheel.getElementsByTagName("discountpercent").length) {
					var discountpercent = wheel.getElementsByTagName("discountpercent")[0].firstChild.data;
					document.getElementById("frontDiscount" + currWheel).style.display = "block";
					document.getElementById("frontDiscountNumber" + currWheel).firstChild.data = discountpercent;	
				} else {
					document.getElementById("frontDiscount" + currWheel).style.display = "none";
				}
				
			} else {
				document.getElementById("frontMarkdownPricing" + currWheel).style.display = "none";
				document.getElementById("frontPricing" + currWheel).style.display = "block";
				document.getElementById("frontMapPricing" + currWheel).style.display = "none";
				document.getElementById("frontCurrPrice" + currWheel).firstChild.data = "$" + currPrice;
				if(!document.getElementById("frontSpecFlag" + currWheel).firstChild) {
					document.getElementById("frontSpecFlag" + currWheel).appendChild(document.createTextNode(""));
				}
				document.getElementById("frontSpecFlag" + currWheel).firstChild.data = speccode;
			}
			/** front weight */
			var lightweight = wheel.getElementsByTagName("lightweight")[0].firstChild.data;
			var weight = wheel.getElementsByTagName("weight")[0].firstChild.data;
			if(document.getElementById("frontWeight" + currWheel)) {
			   if(!document.getElementById("frontWeight" + currWheel).firstChild) {
				document.getElementById("frontWeight" + currWheel).appendChild(document.createTextNode(""));
			   }
			   /** we no longer want to show the lightweight text,
			       commenting out, ALS 6/08
			   if(lightweight-0 > 0) {
				document.getElementById("frontWeight" + currWheel).firstChild.data = "**Lightweight: " + lightweight + "lbs.**";
				document.getElementById("frontWeight" + currWheel).style.fontWeight = "bold";
			   } else 
			   */
			   if(weight-0 > 0) {
				document.getElementById("frontWeight" + currWheel).firstChild.data = "Weight: " + weight + "lbs.";
				//document.getElementById("frontWeight" + currWheel).style.fontWeight = "normal";
			   } else {
				document.getElementById("frontWeight" + currWheel).firstChild.data = "Weight: Not Available";
			   }
			}
			/** front tire size */
			document.getElementById("frontTireSize" + currWheel).firstChild.data = wheel.getElementsByTagName("tirewidth")[0].firstChild.data + wheel.getElementsByTagName("tireratio")[0].firstChild.data + "-" + wheel.getElementsByTagName("tirediameter")[0].firstChild.data;
			var tireSizeLink = wheel.getElementsByTagName("tiresizelink")[0].firstChild.data + "&minSpeedRating=" + minSpeed;
			document.getElementById("frontTireSizeLink" + currWheel).href = tireSizeLink;
			/** TPMS */
			if(document.getElementById("tpms" + currWheel)) {
				var tpmsString = "/wheels/TPMSServlet?qty=4&wheelPartNum=" + partnumber + "&sortCode=" + sortcode + encodedVehicle + "&sortCodeType=";
				if(currWheel.indexOf("_s") > -1) {
					tpmsString += "S";
				} else {
					tpmsString += "W";
				}
				document.getElementById("tpms" + currWheel).href = tpmsString;
					
			}
			if(document.getElementById("tpmsR" + currWheel)) {
				document.getElementById("tpmsR" + currWheel).href = "/wheels/TPMSServlet?qty=4&sortCodeType=W&wheelPartNum=" + partnumber + "&sortCode=" + sortcode + encodedVehicle;
			}
			/** sortcode note */
			var frontNote = "";
			if(wsortcode != null && wsortcode != "") {
				frontNote = getSortCodeNote(wsortcode);
			} else {
				frontNote = getSortCodeNote(sortcode);
			}
			if(frontNote && frontNote.length && frontNote != "null") {
				document.getElementById("frontNote" + currWheel).style.display = "block";
				if(wheels.length > 1 || optionalRear.length > 0) {
					document.getElementById("frontNoteLink" + currWheel).href = "/modalPopups/genericAlert.jsp?note1=" + escape(frontNote);
				} else {
					document.getElementById("frontNoteLink" + currWheel).href = "/modalPopups/genericAlert.jsp?message=" + escape(frontNote);
				}
			} else {
				document.getElementById("frontNote" + currWheel).style.display = "none";
			}
			/** front stock message */
			document.getElementById("frontStock" + currWheel).firstChild.data = wheel.getElementsByTagName("stockmessage")[0].firstChild.data;
			if(wheel.getElementsByTagName("soldout").length) {
				document.getElementById("frontStockSpan" + currWheel).style.display = "none";
				soldOut = "true";
			} else {
				document.getElementById("frontStockSpan" + currWheel).style.display = "block";
			}
			/** vendor number */
			if(document.getElementById("frontVend" + currWheel)) {
				if(wheel.getElementsByTagName("vend").length) {
					document.getElementById("frontVend" + currWheel).style.display = "block";
					document.getElementById("frontVend" + currWheel).firstChild.data = "Manufacturer Part #: " + wheel.getElementsByTagName("vend")[0].firstChild.data;
				} else {
					document.getElementById("frontVend" + currWheel).style.display = "none";
				}
			}
			/** view on vehicle, close up and buttons */
			if(document.getElementById("viewOnVehicle" + currWheel)) {
				document.getElementById("viewOnVehicle" + currWheel).href = wheel.getElementsByTagName("onvehiclelink")[0].firstChild.data + encodedVehicle + "&wIndex=" + currWheel + "&grid=true";
			}
			if(document.getElementById("viewOnVehicleToo")) {
				document.getElementById("viewOnVehicleToo").href = wheel.getElementsByTagName("onvehiclelink")[0].firstChild.data + encodedVehicle + "&wIndex=" + currWheel + "&grid=true";
			}
			if(document.getElementById("closeUp" + currWheel)) {
				document.getElementById("closeUp" + currWheel).href = wheel.getElementsByTagName("closeuplink")[0].firstChild.data + encodedVehicle + filters;
			}
			if(document.getElementById("imageLink" + currWheel)) {
				document.getElementById("imageLink" + currWheel).href = wheel.getElementsByTagName("closeuplink")[0].firstChild.data + encodedVehicle + filters;
			}
			if(document.getElementById("makeModelLink" + currWheel)) {
				document.getElementById("makeModelLink" + currWheel).href = wheel.getElementsByTagName("closeuplink")[0].firstChild.data + encodedVehicle + filters;
			}
			document.getElementById("addToCart" + currWheel).href = "/cart/AddItemServlet?shopTires=false" + encodedVehicle + "&wishlist=false&shipquote=N&minSpeedRating=" + minSpeed + ecomstring;
			document.getElementById("shopTires" + currWheel).href = "/cart/AddItemServlet?shopTires=true" + encodedVehicle + "&wishlist=false&shipquote=N&minSpeedRating=" + minSpeed + ecomstring;
			document.getElementById("shipquote" + currWheel).href = "/cart/AddItemServlet?shopTires=false" + encodedVehicle + "&wishlist=false&shipquote=Y&minSpeedRating=" + minSpeed + ecomstring;
			document.getElementById("wishlist" + currWheel).href = "/cart/AddItemServlet?shopTires=false" + encodedVehicle + "&wishlist=true&shipquote=N&minSpeedRating=" + minSpeed + ecomstring;
			if(document.getElementById("textAndCap")) {
				document.getElementById("textAndCap").style.width = "410px";
				var capTypeArea = "";
				if(document.getElementById("capType")) {
					capTypeArea = document.getElementById("capType");
					while(capTypeArea.firstChild) {
						capTypeArea.removeChild(capTypeArea.firstChild);
					}
				}
				if(wheel.getElementsByTagName("captypedesc").length) {
					if(!document.getElementById("capType")) {
						capTypeArea = document.createElement("UL");
						document.getElementById("textAndCap").appendChild(capTypeArea);
					}
					capTypeCopy = document.createTextNode(wheel.getElementsByTagName("captypedesc")[0].firstChild.data);
					capTypeLI = document.createElement("LI");
					capTypeLI.appendChild(capTypeCopy);
					capTypeArea.appendChild(capTypeLI);
				}
			}
			if(document.getElementById("wheel_specs")) {
				var specs = document.getElementById("wheel_specs");
				while(specs.firstChild) {
					specs.removeChild(specs.firstChild);
				}
				if(wheel.getElementsByTagName("finishWar").length) {
					listElement = document.createElement("LI");
					listElement.appendChild(document.createTextNode(wheel.getElementsByTagName("finishWar")[0].firstChild.data + " Finish Warranty"));
					specs.appendChild(listElement);
				}
				if(wheel.getElementsByTagName("country").length) {
					listElement = document.createElement("LI");
					listElement.appendChild(document.createTextNode("Manufactured in " + wheel.getElementsByTagName("country")[0].firstChild.data));
					specs.appendChild(listElement);
				}
				if(wheel.getElementsByTagName("constType").length) {
					listElement = document.createElement("LI");
					link = document.createElement("A");
					link.href = "/wheels/tech/techpage.jsp?techid=90";
					txt = document.createTextNode(wheel.getElementsByTagName("constType")[0].firstChild.data);
					link.appendChild(txt);
					listElement.appendChild(link);
					listElement.appendChild(document.createTextNode(" construction"));
					specs.appendChild(listElement);
				}
			}
			if(document.getElementById("hardwareDiv")) {
				if(wheel.getElementsByTagName("includedHardwareLink").length) {
					document.getElementById("hardwareLink").href="/wheels/IncludedHardware.jsp?" + wheel.getElementsByTagName("includedHardwareLink")[0].firstChild.data;
					document.getElementById("hardwareDiv").style.display = "block";
				} else {
					document.getElementById("hardwareDiv").style.display = "none";
					if(document.getElementById("hardwareList")) {
						document.getElementById("hardwareDiv").removeChild(document.getElementById("hardwareList"));
					}
				}
				if(wheel.getElementsByTagName("oelugs").length) {
					document.getElementById("oelugs").style.display = "block";
				} else {
					document.getElementById("oelugs").style.display = "none";
				}
				var hardwareList = wheel.getElementsByTagName("hardwareItem");
				if(hardwareList.length) {
					document.getElementById("hardwareNote").style.display = "block";
				} else {
					document.getElementById("hardwareNote").style.display = "none";
				}
				var hwlistElement = document.getElementById("hardwareList");
				if(!hwlistElement) {
					myDiv = document.getElementById("hardwareDiv");
					hwlistElement = document.createElement("UL");
					hwlistElement.id = "hardwareList";
					myDiv.appendChild(hwlistElement);
				}
				while(hwlistElement.firstChild) {
					hwlistElement.removeChild(hwlistElement.firstChild);
				}
				for(var z=0; z<hardwareList.length; z++) {
					listElement = document.createElement("LI");
					listElement.appendChild(document.createTextNode(hardwareList[z].firstChild.data));
					hwlistElement.appendChild(listElement);
				}
			}
			if(document.getElementById("centerCapDiv")) {
				if(wheel.getElementsByTagName("centerCap").length) {
					var centerCap = wheel.getElementsByTagName("centerCap")[0];
					document.getElementById("centerCapDiv").style.display = "block";
					document.getElementById("centerCapP").style.display = "inline";
					document.getElementById("centerCapPriceOf4").firstChild.data = centerCap.getElementsByTagName("price4")[0].firstChild.data;
					document.getElementById("centerCapImageLink").href = centerCap.getElementsByTagName("image")[0].firstChild.data;
					document.getElementById("centerCapImage").src = centerCap.getElementsByTagName("image")[0].firstChild.data;
					document.getElementById("centerCapPrice").firstChild.data = centerCap.getElementsByTagName("price")[0].firstChild.data;
					document.getElementById("centerCapPartNum").value = centerCap.getElementsByTagName("partNum")[0].firstChild.data;
					document.getElementById("centerCapDesc").value = centerCap.getElementsByTagName("desc")[0].firstChild.data;
					document.getElementById("centerCapFloatPrice").value = centerCap.getElementsByTagName("fprice")[0].firstChild.data;
					document.getElementById("centerCapStockLevel").value = centerCap.getElementsByTagName("stock")[0].firstChild.data;
					var centerCapURL = document.getElementById("centerCapURL").value;
					if(centerCapURL.indexOf("?partNum=") > -1) {
						var firstEndIndex = centerCapURL.indexOf("?partNum=");
						var lastEndIndex = centerCapURL.indexOf("&", firstEndIndex);
						document.getElementById("centerCapURL").value = centerCapURL.substring(0, firstEndIndex) + "?partNum=" + centerCap.getElementsByTagName("partNum")[0].firstChild.data + centerCapURL.substring(lastEndIndex);
					}
					ecomForCapSelected = centerCap.getElementsByTagName("ecom")[0].firstChild.data + "&i3_URL=/wheels/CenterCap.jsp?partNum=" + centerCap.getElementsByTagName("partNum")[0].firstChild.data + "&fromCart=true" + encodedVehicle;
				} else {
					document.getElementById("centerCapDiv").style.display = "none";
					document.getElementById("centerCapP").style.display = "none";
				}
			}
			/** rear wheel */
			if(wheels.length > 1) {
				wheel = wheels[1];
				var partnumber = wheel.getElementsByTagName("partnumber")[0].firstChild.data;
				var currPrice = wheel.getElementsByTagName("price")[0].firstChild.data;
				var size = wheel.getElementsByTagName("size")[0].firstChild.data;
				var rearSizes = responseXML.getElementsByTagName("rearsize");
				var sortcode = wheel.getElementsByTagName("sortcode")[0].firstChild.data;
				/** build the rear size dropdown and text */
				if(rearSizes.length > 0) {
					if(document.getElementById("searchResultsLink")) {
						returnToSearchResultsLink += "&selectedRear=" + partnumber + "&showRear=yes";
					}
					if(rearSizes.length == 1) {
						document.getElementById("rearSizeText" + currWheel).style.display = "block";
						document.getElementById("selectRear" + currWheel).style.display = "none";
						if(navigator.platform.indexOf('Mac') < 0 && (navigator.appName == 'Microsoft Internet Explorer' || navigator.userAgent.toUpperCase().indexOf('MSIE') > -1 || navigator.appName == 'Opera' || navigator.userAgent.toUpperCase().indexOf('OPERA') > -1)){
							document.getElementById("selectRear" + currWheel).parentNode.style.height = "0px";
						}
						document.getElementById("rearSizeText" + currWheel).firstChild.data = size;
					} else {
						document.getElementById("rearSizeText" + currWheel).style.display = "none";
						rearSelect = document.getElementById("selectRear" + currWheel);
						rearSelect.style.display = "block";
						if(navigator.platform.indexOf('Mac') < 0 && (navigator.appName == 'Microsoft Internet Explorer' || navigator.userAgent.toUpperCase().indexOf('MSIE') > -1 || navigator.appName == 'Opera' || navigator.userAgent.toUpperCase().indexOf('OPERA') > -1)){
							document.getElementById("selectRear" + currWheel).parentNode.style.height = "25px";
						}
						while(rearSelect.options.length>0) {
							rearSelect.options[0].selected = false;
							rearSelect.options[0] = null;
						}
						for(var j=0; j<rearSizes.length; j++) {
							newOption = new Option();
							newOption.text = rearSizes[j].getElementsByTagName("size")[0].firstChild.data;
							newOption.value = rearSizes[j].getElementsByTagName("partnumber")[0].firstChild.data;
							rearSelect.options[j] = newOption;
							if(partnumber == newOption.value) {
								newOption.selected = true;
							} else {
								newOption.selected = false;
							}
						} 
					}
				}
				/** rear offset */
				if(wheel.getElementsByTagName("offset").length > 0) {
					var offset = wheel.getElementsByTagName("offset")[0].firstChild.data;
					document.getElementById("rearOffset" + currWheel).style.display = "block";
					if(!document.getElementById("rearOffsetNumber" + currWheel).firstChild) {
						document.getElementById("rearOffsetNumber" + currWheel).appendChild(document.createTextNode(""));
					}
					document.getElementById("rearOffsetNumber" + currWheel).firstChild.data = offset;
				} else {
					document.getElementById("rearOffset" + currWheel).style.display = "none";
				}
				/** change the rear backspacing */
				if(wheel.getElementsByTagName("backspacing").length > 0) {
					var backspacing = wheel.getElementsByTagName("backspacing")[0].firstChild.data;
					document.getElementById("rearBackSpacing" + currWheel).style.display = "block";
					if(!document.getElementById("rearBackSpacingNumber" + currWheel).firstChild) {
						document.getElementById("rearBackSpacingNumber" + currWheel).appendChild(document.createTextNode(""));
					}
					document.getElementById("rearBackSpacingNumber" + currWheel).firstChild.data = backspacing;
				} else {
					document.getElementById("rearBackSpacing" + currWheel).style.display = "none";
				}
				var speccode = "";
				if(wheel.getElementsByTagName("speccode").length) {
					speccode = wheel.getElementsByTagName("speccode")[0].firstChild.data;
				}
				/** rear ecom information */
				if(wheel.getElementsByTagName("mapprice").length) {
					var mapprice = wheel.getElementsByTagName("mapprice")[0].firstChild.data;
					document.getElementById("rearMarkdownPricing" + currWheel).style.display = "none";
					document.getElementById("rearPricing" + currWheel).style.display = "none";
					document.getElementById("rearMapPricing" + currWheel).style.display = "block";
					document.getElementById("rearMapPrice" + currWheel).firstChild.data = "$" + mapprice;
					document.getElementById("rearMapLink" + currWheel).href = "/cart/AddItemServlet?shopTires=false" + encodedVehicle + "&wishlist=false&shipquote=M&minSpeedRating=" + minSpeed + ecomstring;
					if(!document.getElementById("rearMapSpecFlag" + currWheel).firstChild) {
						document.getElementById("rearMapSpecFlag" + currWheel).appendChild(document.createTextNode(""));
					}
					document.getElementById("rearMapSpecFlag" + currWheel).firstChild.data = speccode;
				} else if(wheel.getElementsByTagName("markdownprice").length) {
					var markdownprice = wheel.getElementsByTagName("markdownprice")[0].firstChild.data;
					document.getElementById("rearMarkdownPricing" + currWheel).style.display = "block";
					document.getElementById("rearPricing" + currWheel).style.display = "none";
					document.getElementById("rearMapPricing" + currWheel).style.display = "none";
					document.getElementById("rearMarkdownPrice" + currWheel).firstChild.data = "$" + markdownprice;
					document.getElementById("rearMarkdownCurrPrice" + currWheel).firstChild.data = "$" + currPrice;
					if(!document.getElementById("rearMarkdownSpecFlag" + currWheel).firstChild) {
						document.getElementById("rearMarkdownSpecFlag" + currWheel).appendChild(document.createTextNode(""));
					}
					document.getElementById("rearMarkdownSpecFlag" + currWheel).firstChild.data = speccode;
					if(wheel.getElementsByTagName("discountpercent").length) {
						var discountpercent = wheel.getElementsByTagName("discountpercent")[0].firstChild.data;
						document.getElementById("rearDiscountNumber" + currWheel).firstChild.data = discountpercent;	
						document.getElementById("rearDiscount" + currWheel).style.display = "block";
					} else {
						document.getElementById("rearDiscount" + currWheel).style.display = "none";
					}
				
				} else {
					document.getElementById("rearMarkdownPricing" + currWheel).style.display = "none";
					document.getElementById("rearPricing" + currWheel).style.display = "block";
					document.getElementById("rearMapPricing" + currWheel).style.display = "none";
					document.getElementById("rearCurrPrice" + currWheel).firstChild.data = "$" + currPrice;
					if(!document.getElementById("rearSpecFlag" + currWheel).firstChild) {
						document.getElementById("rearSpecFlag" + currWheel).appendChild(document.createTextNode(""));
					}
					document.getElementById("rearSpecFlag" + currWheel).firstChild.data = speccode;
				}
				/** rear weight */
				var lightweight = wheel.getElementsByTagName("lightweight")[0].firstChild.data;
				var weight = wheel.getElementsByTagName("weight")[0].firstChild.data;
				if(!document.getElementById("rearWeight" + currWheel).firstChild) {
					document.getElementById("rearWeight" + currWheel).appendChild(document.createTextNode(""));
				}
			        /** we no longer want to show the lightweight text,
			            commenting out, ALS 6/08
				if(lightweight-0 > 0) {
					document.getElementById("rearWeight" + currWheel).firstChild.data = "**Lightweight: " + lightweight + "lbs.**";
					document.getElementById("rearWeight" + currWheel).style.fontWeight = "bold";
			   	} else 
				*/
				if(weight-0 > 0) {
					document.getElementById("rearWeight" + currWheel).firstChild.data = "Weight: " + weight + "lbs.";
					//document.getElementById("rearWeight" + currWheel).style.fontWeight = "normal";
				} else {
					document.getElementById("rearWeight" + currWheel).firstChild.data = "Weight: Not Available";
				}
				/** rear tire size */
				if(wheel.getElementsByTagName("tirewidth")[0].firstChild.data.length > 0) {
					document.getElementById("rearTireSize" + currWheel).firstChild.data = wheel.getElementsByTagName("tirewidth")[0].firstChild.data + wheel.getElementsByTagName("tireratio")[0].firstChild.data + "-" + wheel.getElementsByTagName("tirediameter")[0].firstChild.data;
				} else { //17" BMW M3 Fix
					document.getElementById("rearTireSize" + currWheel).firstChild.data = document.getElementById("frontTireSize" + currWheel).firstChild.data;
				}
				document.getElementById("rearTireSizeLink" + currWheel).href = tireSizeLink;
				/** sortcode note */
				var rearNote = getSortCodeNote(sortcode);
				if(rearNote && rearNote.length && rearNote != "null") {
					document.getElementById("rearNote" + currWheel).style.display = "block";
					if(frontNote != null && frontNote != "" &&
					   frontNote != "null") {
						if(frontNote == rearNote) {
							document.getElementById("rearNoteLink" + currWheel).href = "/modalPopups/genericAlert.jsp?message=" + escape(rearNote);
							document.getElementById("frontNoteLink" + currWheel).href = "/modalPopups/genericAlert.jsp?message=" + escape(frontNote);
						} else {
							document.getElementById("rearNoteLink" + currWheel).href = "/modalPopups/genericAlert.jsp?note1=" + escape(frontNote) + "&note2=" + escape(rearNote);
							document.getElementById("frontNoteLink" + currWheel).href = "/modalPopups/genericAlert.jsp?note1=" + escape(frontNote) + "&note2=" + escape(rearNote);
						}
					} else {
						document.getElementById("rearNoteLink" + currWheel).href = "/modalPopups/genericAlert.jsp?note2=" + escape(rearNote);
					}
				} else {
					document.getElementById("rearNote" + currWheel).style.display = "none";
				}
				/** rear stock message */
				if(!document.getElementById("rearStock" + currWheel).firstChild) {
					document.getElementById("rearStock" + currWheel).appendChild(document.createTextNode(""));
				}
				document.getElementById("rearStock" + currWheel).firstChild.data = wheel.getElementsByTagName("stockmessage")[0].firstChild.data;
				if(wheel.getElementsByTagName("soldout").length) {
					document.getElementById("rearStockSpan" + currWheel).style.display = "none";
					soldOut = "true";
				} else {
					document.getElementById("rearStockSpan" + currWheel).style.display = "block";
				}
				/** vendor number */
				if(document.getElementById("rearVend" + currWheel)) {
					if(wheel.getElementsByTagName("vend").length) {
						document.getElementById("rearVend" + currWheel).style.display = "block";
						document.getElementById("rearVend" + currWheel).firstChild.data = "Manufacturer Part #: " + wheel.getElementsByTagName("vend")[0].firstChild.data;
					} else {
						document.getElementById("rearVend" + currWheel).style.display = "none";
					}
				}
				/** rear spec code */
				var speccode = "";
				if(wheel.getElementsByTagName("speccode").length) {
					speccode = wheel.getElementsByTagName("speccode")[0].firstChild.data;
				}
				if(!document.getElementById("rearSpecFlag" + currWheel).firstChild) {
					document.getElementById("rearSpecFlag" + currWheel).appendChild(document.createTextNode(""));
				}
				if(document.getElementById("rearNewItem" + currWheel)) {
					if(wheel.getElementsByTagName("isNew").length) {
						document.getElementById("rearNewItem" + currWheel).className = "star_grey";
					} else {
						document.getElementById("rearNewItem" + currWheel).className = "mainclass";
					}
				}
				document.getElementById("rearSpecFlag" + currWheel).firstChild.data = speccode;
				/** adjust the size of the right and left information to make sure the rear wheel information can be displayed and make sure the rear info is set to display */
				document.getElementById("rightDetail" + currWheel).style.display = "block";
				document.getElementById("leftDetail" + currWheel).style.width = "49.5%";
				document.getElementById("viewOpt" + currWheel).style.display = "none";
				document.getElementById("rearSizes" + currWheel).style.display = "block";
				document.getElementById("rearWheelInfo" + currWheel).style.display = "block";
				document.getElementById("frontFitment" + currWheel).firstChild.data = "Front Fitment";
				var rearTabLinkText = "Rear";
				if(hasOptionalRear.length) {
					document.getElementById("removeOpt" + currWheel).style.display = "block";
					document.getElementById("rearFitment" + currWheel).firstChild.data = "Optional Rear Fitment";
					rearTabLinkText = "Opt. Rear";
				} else {
					document.getElementById("removeOpt" + currWheel).style.display = "none";
					document.getElementById("rearFitment" + currWheel).firstChild.data = "Rear Fitment";
				}
				if(document.getElementById("frontTabLink")) {
					document.getElementById("frontTabLink").firstChild.data = "Front";
					document.getElementById("frontTabLink").firstChild.nextSibling.nextSibling.data = "Fitment";
					document.getElementById("rearImageTab").style.display = "block";
					document.getElementById("rearTabLink").firstChild.data = rearTabLinkText;
					document.getElementById("rearTabLink").firstChild.nextSibling.nextSibling.data = "Fitment";
				}
			} else if(covers.length == 0 && !optionalRear.length) {
				//all-around non-steel
				document.getElementById("rightDetail" + currWheel).style.display = "none";
				document.getElementById("leftDetail" + currWheel).style.width = "100%";
				document.getElementById("frontFitment" + currWheel).firstChild.data = "Front and Rear Fitments";
				if(document.getElementById("viewOpt" + currWheel)) {
					document.getElementById("viewOpt" + currWheel).style.display = "none";
				}
				if(document.getElementById("removeOpt" + currWheel)) {
					document.getElementById("removeOpt" + currWheel).style.display = "none";
				}
				if(document.getElementById("frontTabLink")) {
					document.getElementById("rearImageTab").style.display = "none";
					document.getElementById("frontTabLink").firstChild.data = "Front & Rear";
					document.getElementById("frontTabLink").firstChild.nextSibling.nextSibling.data = "Fitments";
				}
			} else if(optionalRear.length > 0) {
				//AA with optional rear
				document.getElementById("rightDetail" + currWheel).style.display = "block";
				document.getElementById("viewOpt" + currWheel).style.display = "block";
				document.getElementById("removeOpt" + currWheel).style.display = "none";
				document.getElementById("rearSizes" + currWheel).style.display = "none";
				document.getElementById("frontFitment" + currWheel).firstChild.data = "Front and Rear Fitments";
				if(document.getElementById("searchResultsLink")) {
					returnToSearchResultsLink += "&showRear=no";
				}
				if(document.getElementById("frontTabLink")) {
					document.getElementById("frontTabLink").firstChild.data = "Front & Rear";
					document.getElementById("frontTabLink").firstChild.nextSibling.nextSibling.data = "Fitments";
				}
			}
			/** only show the ecom buttons if the item is not sold out */
			if(soldOut == "true") {
				document.getElementById("buttons" + currWheel).style.display = "none";
				document.getElementById("soldOut" + currWheel).style.display = "block";
			} else {
				document.getElementById("buttons" + currWheel).style.display = "block";
				document.getElementById("soldOut" + currWheel).style.display = "none";
			}
			if(document.getElementById("searchResultsLink")) {
				document.getElementById("searchResultsLink").href = returnToSearchResultsLink;
			}
		}
		if(covers.length>0) {
			cover = covers[0];
			document.getElementById("leftDetail" + currWheel).style.width = "49.5%";
			document.getElementById("rightDetail" + currWheel).style.display = "block";
			document.getElementById("coverDesc" + currWheel).firstChild.data = cover.getElementsByTagName("cdesc")[0].firstChild.data;
			document.getElementById("coverPrice" + currWheel).firstChild.data = "$" + cover.getElementsByTagName("cprice")[0].firstChild.data;
			document.getElementById("coverStock" + currWheel).firstChild.data = cover.getElementsByTagName("cstock")[0].firstChild.data;
			if(cover.getElementsByTagName("cSoldOut").length) {
				document.getElementById("chooseCover" + currWheel).checked = false;
				document.getElementById("coverStockSpan" + currWheel).style.display = "none";
				document.getElementById("selectCover" + currWheel).style.display = "none";
				document.getElementById("coverSoldOut" + currWheel).style.display = "block";
				document.getElementById("coverSoldOutPlaceHolder" + currWheel).style.display = "block";
			} else {
				document.getElementById("coverStockSpan" + currWheel).style.display = "block";
				document.getElementById("selectCover" + currWheel).style.display = "block";
				document.getElementById("coverSoldOut" + currWheel).style.display = "none";
				document.getElementById("coverSoldOutPlaceHolder" + currWheel).style.display = "none";
				if(soldOut == "true") { //wheel is sold out
					document.getElementById("coverSoldOutPlaceHolder" + currWheel).style.display = "block";
					document.getElementById("selectCover" + currWheel).style.display = "none";
				}
			}
			//remove all children of the cover image div
			var element = document.getElementById("coverImageLayer" + currWheel);
			while (element.firstChild) {
  				element.removeChild(element.firstChild);
			}
			if(cover.getElementsByTagName("cbigimage").length > 0) {
				A = document.createElement("A");
				A.href = "/wheels/wheelDisplay.jsp?image=" + cover.getElementsByTagName("cbigimage")[0].firstChild.data + "&title=" + escape(cover.getElementsByTagName("cdesc")[0].firstChild.data.replace(/"/g, " inch")) + "&iWidth=505&iHeight=225";
				A.title = cover.getElementsByTagName("cdesc")[0].firstChild.data;
				A.onclick = function() {openInfoBox(this.href, this.title, 550, 355);return false;}; 
				IMG = document.createElement("IMG");
				IMG.src = cover.getElementsByTagName("cimage")[0].firstChild.data;
				A.appendChild(IMG);
				document.getElementById("coverImageLayer" + currWheel).appendChild(A);
			} else {
				IMG = createElement("IMG");
				IMG.src = cover.getElementsByTagName("cimage")[0].firstChild.data;
				document.getElementById("coverImageLayer" + currWheel).appendChild(IMG);
			}
			//document.getElementById("chooseCover" + currWheel).checked = "true";
			var coverEcom = cover.getElementsByTagName("ecomstring")[0].firstChild.data;
			alterEcomLinks(currWheel, coverEcom);
			if(document.getElementById("prevCover" + currWheel) &&
			   document.getElementById("nextCover" + currWheel)) {
				hideOtherCovers = true;
				if(cover.getElementsByTagName("prevCover").length > 0) {
					var arg1 = responseXML.getElementsByTagName("coveri")[0].firstChild.data;
					var arg2 = cover.getElementsByTagName("prevCover")[0].firstChild.data;
					document.getElementById("prevCover" + currWheel).onclick = BindArguments(changeCover, arg1, arg2);
					document.getElementById("prevCover" + currWheel).href = "javascript:void(0);";
					hideOtherCovers = false;
					arg1 = null;
					arg2 = null;
				} else {
					myLink = document.createElement("A");
					myLink.id = "prevCover" + currWheel;
					txt = document.createTextNode("prev");
					myLink.appendChild(txt);
					document.getElementById("prevCover" + currWheel).parentNode.replaceChild(myLink, document.getElementById("prevCover" + currWheel));
				}
				if(cover.getElementsByTagName("nextCover").length > 0) {
					var arg1 = responseXML.getElementsByTagName("coveri")[0].firstChild.data;
					var arg2 = cover.getElementsByTagName("nextCover")[0].firstChild.data;
					document.getElementById("nextCover" + currWheel).onclick = BindArguments(changeCover, arg1, arg2);
					document.getElementById("nextCover" + currWheel).href = "javascript:void(0);";
					hideOtherCovers = false;
					arg1 = null;
					arg2 = null;
				} else {
					myLink = document.createElement("A");
					myLink.id = "nextCover" + currWheel;
					txt = document.createTextNode("next");
					myLink.appendChild(txt);
					document.getElementById("nextCover" + currWheel).parentNode.replaceChild(myLink, document.getElementById("nextCover" + currWheel));
				}
				if(hideOtherCovers) {
					document.getElementById("coverOthers" + currWheel).style.display = "none";
				} else {
					document.getElementById("coverOthers" + currWheel).style.display = "block";
				}
			}
		}
		/** change images shown on the close up page */
		if(closeUpImages.length > 0) {
			var images = closeUpImages[0];
			frontImage1 = images.getElementsByTagName("img1")[0].firstChild.data;
			frontImage2 = images.getElementsByTagName("img2")[0].firstChild.data;
			frontImage3 = images.getElementsByTagName("img3")[0].firstChild.data;
			frontThumb1 = images.getElementsByTagName("thumb1")[0].firstChild.data;
			frontThumb2 = images.getElementsByTagName("thumb2")[0].firstChild.data;
			frontThumb3 = images.getElementsByTagName("thumb3")[0].firstChild.data;
			if(images.getElementsByTagName("subtype").length) {
				frontSubType = images.getElementsByTagName("subtype")[0].firstChild.data;
			} else {
				frontSubType = "";
			}
			if(document.getElementById("subType")) {
				var subTypes = document.getElementById("subType");
				var sCount = 0;
				for(var sCount=0; sCount<subTypes.options.length; sCount++) {
					if(subTypes.options[sCount].value == frontSubType) {
						subTypes.options[sCount].selected = true;
					} else {
						subTypes.options[sCount].selected = false;
					}
				}
			}
			if(images.getElementsByTagName("rimg1").length) {
				rearImage1 = images.getElementsByTagName("rimg1")[0].firstChild.data;
				rearImage2 = images.getElementsByTagName("rimg2")[0].firstChild.data;
				rearImage3 = images.getElementsByTagName("rimg3")[0].firstChild.data;
				rearThumb1 = images.getElementsByTagName("rthumb1")[0].firstChild.data;
				rearThumb2 = images.getElementsByTagName("rthumb2")[0].firstChild.data;
				rearThumb3 = images.getElementsByTagName("rthumb3")[0].firstChild.data;
				if(images.getElementsByTagName("rsubtype").length) {
					rearSubType = images.getElementsByTagName("rsubtype")[0].firstChild.data;
				} else {
					rearSubType = "";
				}
			}
			if(images.getElementsByTagName("front").length) {
				frontImageTab();
			} else {
				rearImageTab();
			}
		}
	  }
	}
}
/** 
 * closes a tab
 */
function closeInfo(i, suffix) {
	//close the help dialogues if they are open
	closeHelpLayers();
	/* close the div */
	document.getElementById("infoContainer" + i + suffix).style.display = "none";

	/* go through and make all of the tabs dark/unselected */
	sizeTabs = document.getElementById("sizelist" + i + suffix).getElementsByTagName("LI");
	for(j=0; j<sizeTabs.length; j++) {
		sizeTabs[j].getElementsByTagName("A")[0].className="";
	}
	var url = "/wheels/WheelGridControlServlet?action=closeInfo&ajax=true&wheel=" + i + encodedVehicle + filters;
	if(suffix != null && suffix == "_s") {
		url += "&info=steel";
	}
	if(closeUp == "true") {
		url += "&closeUp=true";
	}
	var ajax = new TR_AJAXInteraction(url);
	ajax.doGet();	
}
/** 
 * pop up the estimated availability explanation
 */
function estAvail(link) {
	window.open(link, 'popupwindow','width=400,height=400,scrollbars,resizable');
}
/** 
 * closes the optional rear display
 */
function removeOptional(i) {
	var url = "/wheels/WheelGridControlServlet?action=removeOptional&ajax=true&wheel=" + i + "&tab=" + findSelectedTab(i) + "&optionalRear=";
	if(document.getElementById("selectRear" + i).options.length == 1) {
		url += document.getElementById("selectRear" + i)[0].value;
	} else {
		url += document.getElementById("selectRear" + i)[document.getElementById("selectRear" + i).selectedIndex].value;
	}
	url += "&initialPartNumber=";
	if(document.getElementById("selectFront" + i).options.length == 1) {
		url += document.getElementById("selectFront" + i)[0].value;
	} else {
		url += document.getElementById("selectFront" + i)[document.getElementById("selectFront" + i).selectedIndex].value;
	}
	url += encodedVehicle + filters;
	if(closeUp == "true") {
		url += "&closeUp=true";
	}
	/* go to the server to set in the session that the opt. rear is removed.
	   toggleCallBack processes the response and updates the display */
	var ajax = new TR_AJAXInteraction(url, toggleCallBack);
	ajax.doGet();
	document.getElementById("rearWheelInfo" + i).style.display = "none";
}
/**
 * changes which rear wheel is displayed
 */
function changeRear(i) {
	/* go to the server to set in the session which rear wheel is selected.
   	   toggleCallBack processes the response and updates the display
 	*/
	var url = "/wheels/WheelGridControlServlet?action=changeRear&ajax=true&wheel=" + i + "&tab=" + findSelectedTab(i) + "&initialPartNumber=";
	if(document.getElementById("selectFront" + i).style.display == "none") {
		url += document.getElementById("selectFront" + i)[0].value;
	} else {
		url += document.getElementById("selectFront" + i)[document.getElementById("selectFront" + i).selectedIndex].value;
	}
	url += "&selectedRear=" + document.getElementById("selectRear" + i)[document.getElementById("selectRear" + i).selectedIndex].value + encodedVehicle + filters;
	if(closeUp == "true") {
		url += "&closeUp=true";
	}
	var ajax = new TR_AJAXInteraction(url, toggleCallBack);
	ajax.doGet();
}
/**
 * changes which (front) size is displayed
 */
function changeSize(i,suffix) {
	/* go to the server to set in the session which front wheel is selected.
   	   toggleCallBack processes the response and updates the display
 	*/
	var url = "/wheels/WheelGridControlServlet?action=changeSize&ajax=true&wheel=" + i + "&tab=" + findSelectedTab(i+suffix) + "&initialPartNumber=";
	if(document.getElementById("selectFront" + i + suffix).style.display == "none") {
		url += document.getElementById("selectFront" + i + suffix)[0].value;
	} else {
		url += document.getElementById("selectFront" + i + suffix)[document.getElementById("selectFront" + i + suffix).selectedIndex].value;
	}
	if(document.getElementById("selectRear" + i + suffix)) {
		url += "&selectedRear=";
	   	if(document.getElementById("selectRear" + i + suffix).style.display == "none") {
			url += document.getElementById("selectRear" + i + suffix)[0].value;
		} else {
			url += document.getElementById("selectRear" + i + suffix)[document.getElementById("selectRear" + i + suffix).selectedIndex].value;
		}
	}
	if(suffix != null && suffix == "_s") {
		url += "&info=steel";
	}
	url += encodedVehicle + filters;
	if(closeUp == "true") {
		url += "&closeUp=true";
	}
	var ajax = new TR_AJAXInteraction(url, toggleCallBack);
	ajax.doGet();
}
/** 
 * returns the index of the selected tab for the selected wheel
 */
function findSelectedTab(i) {
	var tabs = document.getElementById("sizelist" + i).getElementsByTagName("LI");
	for(var j=0; j<tabs.length; j++) {
		if(tabs[j].getElementsByTagName("A")[0].className == "current") {
			return j;
		}
	}
}
/**
 * shows the rest of the wheel diameters when there are more than 5
 */
function showMore(i, starter) {
	/* close the tab if it is open */
	document.getElementById("infoContainer" + i).style.display = "none";
	/* go to the server to set in the session that we are moving to
	   the next/last set of diameters.
	   toggleCallBack processes the response and updates the display 
	*/
	var url = "/wheels/WheelGridControlServlet?action=more&ajax=true&wheel=" + i + "&startTab=" + starter + encodedVehicle + filters;
	if(closeUp == "true") {
		url += "&closeUp=true";
	}
	var ajax = new TR_AJAXInteraction(url);
	ajax.doGet();
	var ender = 4;
	var counter = 5;
	/* go through and deselect all of the tabs */
	var sizeTabs = document.getElementById("sizelist" + i).getElementsByTagName("LI");
	var startGood = starter;
	var endGood = ender;
	if(startGood != 0) endGood += counter;
	for(var j=0; j<sizeTabs.length; j++) {
		if(sizeTabs[j].className == "moreavail") {
		} else if(j < startGood || j > endGood) {
			sizeTabs[j].style.display = "none";
		} else {
			sizeTabs[j].style.display = "block";
		}
		sizeTabs[j].getElementsByTagName("A")[0].className = "";
	}
	if(closeUp == "true") {
		toggleInfo(i, starter, '', '');
	}
	/* update the MORE button */
	var newStart = 0;
	if(starter == 0) newStart = counter;
	document.getElementById("more" + i).onclick = function() {showMore(i, newStart); return false;};
	if(newStart == 0) {
		document.getElementById("arrow1" + i).style.display = "none";
		document.getElementById("arrow2" + i).style.display = "block";
	} else {
		document.getElementById("arrow1" + i).style.display = "block";
		document.getElementById("arrow2" + i).style.display = "none";
	}
}
/**
 * logs information in omniture
 */
function linkCode() {
  if(openedTab != null && openedTab == "false") {
    s=s_gi('tirerackcom');
      s.linkTrackVars='events';
      s.linkTrackEvents='event7';
      s.events='event7';
//      s.tl(true,'o','Opened Grid Wheel Search Tab');
    openedTab = "true";
   /** old G code
    s_linkTrackVars='s_events';
    s_linkTrackEvents='event7';
    s_linkType='o';
    s_linkName='Opened Grid Wheel Search Tab';
    s_events='event7';
    s_lnk=s_co(true);
    s_gs('tirerackcom');
   */
  }
}
/**
 * closes any open help dialogues
 */
function closeHelpLayers() {
    var help1 = document.getElementById("hintOuter" + helpOpen);
    var help2 = document.getElementById("hint2" + helpOpen);
    helpOpen = "";
    if(help1) help1.style.display = "none";
    if(help2) help2.style.display = "none";
}
/**
 * if the tab is already open, the 2nd help dialogue is opened.
 * otherwise, the first help dialogue is opened
 * if the dialogue to be opened is already open, close it
 */
function showHelp(i) {
    if(document.getElementById("infoContainer" + i).style.display == "none") {
    	document.getElementById("hintOuter" + i).style.display = "block";
    }
    document.getElementById("hint2" + i).style.display = "block";
    closeHelpLayers();
    if(document.getElementById("hint2" + i).style.display == "block") {
    	helpOpen = i;
    }
}
/* closes a help dialogue */
function hideHelp(i) {
    document.getElementById("hintOuter" + i).style.display = "none";
    hideHelp2(i);
    helpOpen = "";
}
/* closes a help dialogue */
function hideHelp2(i) {
    document.getElementById("hint2" + i).style.display = "none";
    helpOpen = "";
}
/* runs when a customer lauches View on Vehicle */
function foundViewOnVehicle() {
	closeHelpLayers();
}
/* switch to showing steel wheels */
function chooseSteel() {
	document.getElementById("alloy").style.display = "none";
	document.getElementById("steel").style.display = "block";
	if(document.getElementById("sorter")) {
	  document.getElementById("alloytabtop").className = "topdarkswitch";
	  document.getElementById("alloytabbottom").className = "bottomdarkswitch";
	  document.getElementById("steeltabtop").className = "toplightswitch";
	  document.getElementById("steeltabbottom").className = "bottomlightswitch";
	  document.getElementById("filterSize").disabled = true;
	  document.getElementById("filterFinish").disabled = true;
	  document.getElementById("filterBrand").disabled = true;
	  document.getElementById("filterSpecial").disabled = true;
	  document.getElementById("filterNew").disabled = true;
	  document.getElementById("sorter").disabled = true;
	  document.getElementById("resetallfilters").style.visibility = "hidden";
	} else {
	  document.getElementById("blockout").style.display = "block";
	  document.getElementById("alloytabtop").className = "";
	  document.getElementById("alloytabbottom").className = "";
	  document.getElementById("steeltabtop").className = "current";
	  document.getElementById("steeltabbottom").className = "current";
	  document.getElementById("filterSize_id").disabled = true;
	  document.getElementById("filterFinish_id").disabled = true;
	  document.getElementById("filterBrand_id").disabled = true;
	  document.getElementById("filterSpecial_id").disabled = true;
	  document.getElementById("filterNew_id").disabled = true;
	}
	if(document.getElementById("pagingTable")) document.getElementById("pagingTable").style.visibility = "hidden";
}
/* switch to showing alloy wheels */
function chooseAlloy() {
	document.getElementById("steel").style.display = "none";
	document.getElementById("alloy").style.display = "block";
	if(document.getElementById("sorter")) {
	  document.getElementById("steeltabtop").className = "topdarkswitch";
	  document.getElementById("steeltabbottom").className = "bottomdarkswitch";
	  document.getElementById("alloytabtop").className = "toplightswitch";
	  document.getElementById("alloytabbottom").className = "bottomlightswitch";
	  document.getElementById("filterSize").disabled = false;
	  document.getElementById("filterFinish").disabled = false;
	  document.getElementById("filterBrand").disabled = false;
	  document.getElementById("filterSpecial").disabled = false;
	  document.getElementById("filterNew").disabled = false;
	  document.getElementById("sorter").disabled = false;
	  document.getElementById("resetallfilters").style.visibility = "visible";
	} else {
	  document.getElementById("blockout").style.display = "none";
	  document.getElementById("alloytabtop").className = "current";
	  document.getElementById("alloytabbottom").className = "current";
	  document.getElementById("steeltabtop").className = "";
	  document.getElementById("steeltabbottom").className = "";
	  document.getElementById("filterSize_id").disabled = false;
	  document.getElementById("filterFinish_id").disabled = false;
	  document.getElementById("filterBrand_id").disabled = false;
	  document.getElementById("filterSpecial_id").disabled = false;
	  document.getElementById("filterNew_id").disabled = false;
	}
	if(document.getElementById("pagingTable")) document.getElementById("pagingTable").style.visibility = "visible";
}
/**
 * changes which cover is displayed
 */
function changeCover(i, selectedCover) {
	//create the string to send to the servlet and set up toggleCallBack
	//to handle the xml that will be passed back
	var url = "/wheels/WheelGridControlServlet?action=showCover&ajax=true&wheel=" + i + "&tab=" + findSelectedTab(i + '_s') + "&coverIndex=" + selectedCover + encodedVehicle + filters + "&initialPartNumber=";
        if(document.getElementById("selectFront" + i + "_s").options.length == 1) {
                url += document.getElementById("selectFront" + i + "_s")[0].value;
        } else {
                url += document.getElementById("selectFront" + i + "_s")[document.getElementById("selectFront" + i + "_s").selectedIndex].value;
        }

	var ajax = new TR_AJAXInteraction(url, toggleCallBack);
	ajax.doGet();
}
/** strips the old cover info from all ecom strings, then appends the new cover
 *  info 
 */
function alterEcomLinks(currWheel, coverEcom) {
	//strip any old cover info if found
	var frontMapLink = document.getElementById("frontMapLink" + currWheel).href;
	var addToCart = document.getElementById("addToCart" + currWheel).href;
	var shopTires = document.getElementById("shopTires" + currWheel).href;
	var shipquote = document.getElementById("shipquote" + currWheel).href;
	var wishlist = document.getElementById("wishlist" + currWheel).href;
	if(addToCart.indexOf("&i1_") > -1) {
		if(coverEcom == null || coverEcom.length < 1) coverEcom = addToCart.substring(addToCart.indexOf("&i1_"));
		frontMapLink = frontMapLink.substring(0, frontMapLink.indexOf("&i1_"));
		addToCart = addToCart.substring(0, addToCart.indexOf("&i1_"));
		shopTires = shopTires.substring(0, shopTires.indexOf("&i1_"));
		shipquote = shipquote.substring(0, shipquote.indexOf("&i1_"));
		wishlist = wishlist.substring(0, wishlist.indexOf("&i1_"));
	}
	if(!document.getElementById("chooseCover" + currWheel).checked) {
		if(coverEcom.indexOf("&i1_Qty=1") > -1) {	
			coverEcom = coverEcom.replace(/&i1_Qty=1/, "&i1_Qty=0");
		}
	} else {
		if(coverEcom.indexOf("&i1_Qty=0") > -1) {	
			coverEcom = coverEcom.replace(/&i1_Qty=0/, "&i1_Qty=1");
		}
	}
	frontMapLink += coverEcom;
	addToCart += coverEcom;
	shopTires += coverEcom;
	shipquote += coverEcom;
	wishlist += coverEcom;

	document.getElementById("frontMapLink" + currWheel).href = frontMapLink;
	document.getElementById("addToCart" + currWheel).href = addToCart;
	document.getElementById("shopTires" + currWheel).href = shopTires;
	document.getElementById("shipquote" + currWheel).href = shipquote;
	document.getElementById("wishlist" + currWheel).href = wishlist;
}
/** take the cover info out of the ecom strings */
function toggleCoverSelected(currWheel) {
	alterEcomLinks(currWheel, '');
}
/** make sure the customer really does not want covers */
function confirmCovers(currWheel, successHrefID, newWindow) {
	if(document.getElementById("rightDetail" + currWheel).style.display == "block" &&
	   document.getElementById("chooseCover" + currWheel) &&
	  !document.getElementById("chooseCover" + currWheel).checked) {
		openWarningBox('/wheels/modalPopups/wheelCovers.jsp?gotoID=' + successHrefID + '&newWindow=' + newWindow, 'Important: Wheel Covers');
		return false;
	}
	return true;
}
/* show the wheels on vehicle preview */
function showPreview() {
	document.getElementById("screenCap").style.display = "block";
}
/* hide the wheels on vehicle preview */
function hidePreview() {
	document.getElementById("screenCap").style.display = "none";
}
/* add or take away the center cap from the ecom buttons */
function processCap(currWheel) {
	var frontMapLink = document.getElementById("frontMapLink" + currWheel).href;
	var rearMapLink = document.getElementById("rearMapLink" + currWheel).href;
	var addToCart = document.getElementById("addToCart" + currWheel).href;
	var shopTires = document.getElementById("shopTires" + currWheel).href;
	var shipquote = document.getElementById("shipquote" + currWheel).href;
	var wishlist = document.getElementById("wishlist" + currWheel).href;
	if(addToCart.indexOf("&i3_") > -1) {
		frontMapLink = frontMapLink.substring(0, frontMapLink.indexOf("&i3_"));
		rearMapLink = rearMapLink.substring(0, rearMapLink.indexOf("&i3_"));
		addToCart = addToCart.substring(0, addToCart.indexOf("&i3_"));
		shopTires = shopTires.substring(0, shopTires.indexOf("&i3_"));
		shipquote = shipquote.substring(0, shipquote.indexOf("&i3_"));
		//wishlist = wishlist.substring(0, wishlist.indexOf("&i3_"));
	}
	if(document.getElementById("addcapset" + currWheel).checked) {
		frontMapLink += ecomForCapSelected;
		rearMapLink += ecomForCapSelected;
		addToCart += ecomForCapSelected;
		shopTires += ecomForCapSelected;
		shipquote += ecomForCapSelected;
		//wishlist += ecomForCapSelected;
	}
	document.getElementById("frontMapLink" + currWheel).href = frontMapLink;
	document.getElementById("rearMapLink" + currWheel).href = frontMapLink;
	document.getElementById("addToCart" + currWheel).href = addToCart;
	document.getElementById("shopTires" + currWheel).href = shopTires;
	document.getElementById("shipquote" + currWheel).href = shipquote;
	document.getElementById("wishlist" + currWheel).href = wishlist;
}
/** toggle to the front images on the wheel close up page */
function showFrontImages() {
	document.getElementById("frontImageTab").getElementsByTagName("A")[0].className = "current";
	if(document.getElementById("rearImageTab")) {
		document.getElementById("rearImageTab").getElementsByTagName("A")[0].className = "";
	}
	changeLargeImage(frontImage3);
	document.getElementById("thumb1").src = frontThumb1;
	document.getElementById("thumb1link").href = frontImage1;
	document.getElementById("thumb2").src = frontThumb2;
	document.getElementById("thumb2link").href = frontImage2;
	document.getElementById("thumb3").src = frontThumb3;
	document.getElementById("thumb3link").href = frontImage3;
	document.getElementById("superviewlink").href = bigPic + "&subType=" + frontSubType;
}
/** toggle to the rear images on the wheel close up page */
function showRearImages() {
	document.getElementById("rearImageTab").getElementsByTagName("A")[0].className = "current";
	document.getElementById("frontImageTab").getElementsByTagName("A")[0].className = "";
	changeLargeImage(rearImage3);
	document.getElementById("thumb1").src = rearThumb1;
	document.getElementById("thumb1link").href = rearImage1;
	document.getElementById("thumb2").src = rearThumb2;
	document.getElementById("thumb2link").href = rearImage2;
	document.getElementById("thumb3").src = rearThumb3;
	document.getElementById("thumb3link").href = rearImage3;
	document.getElementById("superviewlink").href = bigPic + "&subType=" + rearSubType;
}
/** change main image on the close up, use a transition if the picture is different*/
function changeLargeImage(imageToShow) {
	var transitionEffect = "false";
	var currentImage = document.getElementById("largeimage").src;
	if(currentImage.substring(currentImage.length-imageToShow.length) != imageToShow) {
		transitionEffect = "true";
	}
	if(transitionEffect == "true") {
		Effect.Pulsate('largeimage', {pulses:1,duration:1});
	}
	setTimeout("document.getElementById('largeimage').src = '" +  imageToShow + "';", 500);
}
/** change the values listed in the select menu below the wheel image */
function changeSubTypeSelectMenu(subTypes, currentlySelected) {
	if(subTypes.length > 1) {
		if(document.getElementById("typeshown")) {
			document.getElementById("typeshown").style.display = "block";
		}
		var element = document.getElementById("subType");
		while(element.options.length>0) {
			element.options[0] = null;
		}
		for(var j=0; j<subTypes.length; j++) {
			newOption = new Option();
			var txtString = modelString;
			if(subTypes[j].length > 1) {
				txtString += ", " + subTypes[j];
			}
			newOption.text = txtString;
			var valueString = subTypes[j];
			valueString = valueString.replace(/ /g, "+");
			valueString = valueString.replace(/\"/g, "%22");
			newOption.value = valueString;
			if(valueString == currentlySelected) {
				newOption.selected = true;
			}
			element.options[j] = newOption;
		}
	} else {
		if(document.getElementById("typeshown")) {
			document.getElementById("typeshown").style.display = "none";
		}
	}
}
/** changes the images on the closeup, used by the dropdown */
function changeImageSet(i) {
        var url = "/wheels/WheelGridControlServlet?action=changeImage&ajax=true&wheel=" + i + "&closeUp=true&isRear=" + subTypeIsRear + "&subType=";
	var unencodedValue = (document.getElementById("subType")[document.getElementById("subType").selectedIndex].value).replace(/\+/g, "%20");
	url += unencodedValue + encodedVehicle + filters;
        var ajax = new TR_AJAXInteraction(url, toggleCallBack);
        ajax.doGet();
}
/** all steps needed when changing to the rear image tab */
function rearImageTab() {
	showRearImages();
	changeSubTypeSelectMenu(rearSubTypes, rearSubType);
	subTypeIsRear="true";
}
/** all steps needed when changing to the front image tab */
function frontImageTab() {
	showFrontImages();
	changeSubTypeSelectMenu(frontSubTypes, frontSubType);
	subTypeIsRear="false";
}
/** scrolls down the page, params are the event handler
 *  and the height of the object that we are going to display 
 */
function scrollDown(myEvent, objectHeight) {
  if(navigator.userAgent.indexOf("Safari") != -1 &&
     navigator.userAgent.indexOf("Mac") != -1) {
	//Mac Safari does not support clientY
	return;
  }
  if(!myEvent) {
   if(window.event) {
 	myEvent = window.event;
   }
  }
  var yPos = 0;
  if(myEvent) yPos = myEvent.clientY;
  var browserHeight = 9999999;
  if(typeof(window.innerHeight) == 'number') {
	browserHeight = window.innerHeight;
  } else if(document.documentElement && 
     document.documentElement.clientHeight) {
	browserHeight = document.documentElement.clientHeight;
  } else if(document.body && document.body.clientHeight) {
	browserHeight = document.clientHeight;
  }
  if(yPos + objectHeight > browserHeight) {
	if(yPos + objectHeight - browserHeight > objectHeight+1) {
		//do nothing, the browser likely doesn't support clientY correctly
	} else {
		top.scrollBy(0, yPos + objectHeight - browserHeight);
	}
  }
}
function getSortCodeNote(sortcode) {
	sortcode = "W" + sortcode;
	if(sortCodeNotes != null) {
		for(var i=0; i<sortCodeNotes.length; i++) {
			if(sortCodeNotes[i].key && sortCodeNotes[i].key == sortcode) {
				return sortCodeNotes[i].note;
			}
		}
	}
	return "";
}
function openUnOpened() {
	startLoading();
	var url = "/wheels/WheelGridControlServlet?action=changeDefaultOpen&ajax=true" + encodedVehicle + filters;
	var ajax = new TR_AJAXInteraction(url);
	ajax.doGet();
	for(var i=0; i<numOfWheels; i++) {
	    if(document.getElementById("sizelist" + i)) {
		var sizeTabs = document.getElementById("sizelist" + i).getElementsByTagName("LI");
		var open = "false";
		for(var j=1; j<sizeTabs.length; j++) {
			if(sizeTabs[j].getElementsByTagName("A")[0].className == "current") {
				open = "true";
				break;
			} else {
				sizeTabs[j].getElementsByTagName("A")[0].className="";
			}
		}
		if(open == "false") {
			sizeTabs[0].getElementsByTagName("A")[0].className="current";
			document.getElementById("infoContainer" + i).style.display = "block";
		}
	    }
	}
	for(var i=0; i<numOfSteels; i++) {
		var sizeTabs = document.getElementById("sizelist" + i + "_s").getElementsByTagName("LI")
		var open = "false";
		for(var j=0; j<sizeTabs.length; j++) {
			if(sizeTabs[j].getElementsByTagName("A")[0].className == "current") {
				open = "true";
				break;
			} else {
				sizeTabs[j].getElementsByTagName("A")[0].className="";
			}
		}
		if(open == "false") {
			sizeTabs[0].getElementsByTagName("A")[0].className="current";
			document.getElementById("infoContainer" + i + "_s").style.display = "block";
		}
	}
	document.getElementById("showWheelDetails").style.display = "none";
	document.getElementById("hideWheelDetails").style.display = "block";
	setTimeout("finishLoading()", 500);
}
function initOpen() {
	var url = "/wheels/WheelGridControlServlet?action=tnt&ajax=true" + encodedVehicle + filters;
	var ajax = new TR_AJAXInteraction(url, initOpenCallback);
	ajax.doGet();
}
function initOpenCallback(responseXML) {
    if(responseXML) {
	if(responseXML.getElementsByTagName("firstRun").length > 0) {
		startLoading();
		for(var i=0; i<numOfWheels; i++) {
		    if(document.getElementById("sizelist" + i)) {
			var sizeTabs = document.getElementById("sizelist" + i).getElementsByTagName("LI");
			var open = "false";
			for(var j=1; j<sizeTabs.length; j++) {
				if(sizeTabs[j].getElementsByTagName("A")[0].className == "current") {
					open = "true";
					break;
				} else {
					sizeTabs[j].getElementsByTagName("A")[0].className="";
				}
			}
			if(open == "false") {
				sizeTabs[0].getElementsByTagName("A")[0].className="current";
				document.getElementById("infoContainer" + i).style.display = "block";
			}
		    }
		}
		for(var i=0; i<numOfSteels; i++) {
		   if(document.getElementById("sizelist" + i + "_s")) {
			var sizeTabs = document.getElementById("sizelist" + i + "_s").getElementsByTagName("LI")
			var open = "false";
			for(var j=0; j<sizeTabs.length; j++) {
				if(sizeTabs[j].getElementsByTagName("A")[0].className == "current") {
					open = "true";
					break;
				} else {
					sizeTabs[j].getElementsByTagName("A")[0].className="";
				}
			}
			if(open == "false") {
				sizeTabs[0].getElementsByTagName("A")[0].className="current";
				document.getElementById("infoContainer" + i + "_s").style.display = "block";
			}
		    }
		}
		document.getElementById("showWheelDetails").style.display = "none";
		document.getElementById("hideWheelDetails").style.display = "block";
		setTimeout("finishLoading()", 500);
	}
    }
}
function closeAll() {
	startLoading();
	var url = "/wheels/WheelGridControlServlet?action=changeDefaultOpen&ajax=true" + encodedVehicle + filters;
	var ajax = new TR_AJAXInteraction(url);
	ajax.doGet();
	for(var i=0; i<numOfWheels; i++) {
	    if(document.getElementById("sizelist" + i)) {
		var sizeTabs = document.getElementById("sizelist" + i).getElementsByTagName("LI");
		for(var j=0; j<sizeTabs.length; j++) {
			sizeTabs[j].getElementsByTagName("A")[0].className="";
			document.getElementById("infoContainer" + i).style.display = "none";
		}
	    }
	}
	for(var i=0; i<numOfSteels; i++) {
		var sizeTabs = document.getElementById("sizelist" + i + "_s").getElementsByTagName("LI")
		for(var j=0; j<sizeTabs.length; j++) {
			sizeTabs[j].getElementsByTagName("A")[0].className="";
			document.getElementById("infoContainer" + i + "_s").style.display = "none";
		}
	}
	document.getElementById("hideWheelDetails").style.display = "none";
	document.getElementById("showWheelDetails").style.display = "block";
	setTimeout("finishLoading()", 500);
}
function startLoading() {
	if(document.getElementById("loading")) document.getElementById("loading").style.display = "inline";
}
function finishLoading() {
	if(document.getElementById("loading")) document.getElementById("loading").style.display = "none";
}
function BindArguments(fn) {
  var args = [];
  for (var n = 1; n < arguments.length; n++)
    args.push(arguments[n]);
  return function () { return fn.apply(this, args);};
}
