var MAX_TABS=4;
/**
 * 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>MAX_TABS-1 && tabIndex-MAX_TABS==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
	if(document.getElementById("infoContainer" + i + suffix)) {
		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 optionalSelected = responseXML.getElementsByTagName("optionalSelected");
		var covers = responseXML.getElementsByTagName("cover");
		var soldOut = "false";
		var closeUpImages = responseXML.getElementsByTagName("images");
		var totalPrice = -1;
		var totalQty = 4;
		
		if(wheels.length > 0) {
		    var wheel = wheels[0];
		    var returnToSearchResultsLink = "/wheels/WheelSearchSelectorServlet?initialPartNumber=";
		    var frontMax = 0;
		    var ecomstring = wheel.getElementsByTagName("ecomstring")[0].firstChild.data;
		    var tireSizeLink = wheel.getElementsByTagName("tiresizelink")[0].firstChild.data + "&minSpeedRating=" + minSpeed;
		    if(wheel.getElementsByTagName("placeHolder").length) {
			frontMax = -1;
			totalPrice = 0;
			totalQty = 0;
			document.getElementById("frontNotAvailable" + currWheel).style.display = "block";
			document.getElementById("frontNewItem" + currWheel).style.display = "none";
			document.getElementById("frontPricing" + currWheel).style.display = "none";
			document.getElementById("frontMarkdownPricing" + currWheel).style.display = "none";
			document.getElementById("frontMapPricing" + currWheel).style.display = "none";
			document.getElementById("frontStockSpan" + currWheel).style.display = "none";
			if(document.getElementById("frontLightCell" + currWheel)) {
				document.getElementById("frontAvailableWheelLightCell" + currWheel).style.display = "none";
				document.getElementById("frontLightCell" + currWheel).className = "darkcell";
			} else {
				document.getElementById("front" + currWheel).style.display = "none";
				document.getElementById("frontQtyItem" + currWheel).style.display = "none";
				document.getElementById("frontPriceItem" + currWheel).style.display = "none";
			}
			if(document.getElementById("back")) {
				returnToSearchResultsLink += "placeHolder" + paramList;
			}
		    } else {
			var partnumber = wheel.getElementsByTagName("partnumber")[0].firstChild.data;
			var sortcode = wheel.getElementsByTagName("sortcode")[0].firstChild.data;
			var size = wheel.getElementsByTagName("size")[0].firstChild.data;
			if(document.getElementById("back")) {
				returnToSearchResultsLink += partnumber + paramList;
			}
			var wsortcode = "";
			if(wheel.getElementsByTagName("wsortcode").length) {					wsortcode = wheel.getElementsByTagName("wsortcode")[0].firstChild.data;
			}
			var frontQty = "4";
			if(wheel.getElementsByTagName("qty").length) {
				frontQty = wheel.getElementsByTagName("qty")[0].firstChild.data;
				totalQty = (frontQty - 0);
			}
			if(wheel.getElementsByTagName("maxqty").length) frontMax = wheel.getElementsByTagName("maxqty")[0].firstChild.data;
			if(document.getElementById("frontNotAvailable" + currWheel)) {
				document.getElementById("frontNotAvailable" + currWheel).style.display = "none";
				document.getElementById("frontNewItem" + currWheel).style.display = "block";
				if(document.getElementById("frontLightCell" + currWheel)) {
					document.getElementById("frontAvailableWheelLightCell" + currWheel).style.display = "block";
					document.getElementById("frontLightCell" + currWheel).className = "lightcell";
				} else {
					document.getElementById("front" + currWheel).style.display = "block";
					document.getElementById("frontQtyItem" + currWheel).style.display = "block";
					document.getElementById("frontPriceItem" + currWheel).style.display = "block";
				}
			}

			/* 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;
						}
					} 
				}
				if(document.getElementById("frontWheelSize" + currWheel)) {
					document.getElementById("frontWheelSize" + currWheel).firstChild.data = size;
				}
			}
			/** 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) {
					if(closeUp == "false") {
						document.getElementById("frontNewItem" + currWheel).className = "star_grey";
					} else {
						document.getElementById("frontNewItem" + currWheel).className = "star";
					}
				} else {
					document.getElementById("frontNewItem" + currWheel).className = "mainclass";
				}
			}
				
			var speccode = "";
			if(wheel.getElementsByTagName("speccode").length) {
				speccode = wheel.getElementsByTagName("speccode")[0].firstChild.data;
			}
			var blockOrInline = "block";
			if(closeUp == "true") blockOrInline = "inline";
/* 
			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 = blockOrInline;
				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 = blockOrInline;
				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 = blockOrInline;
					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 = blockOrInline;
				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;
//			}
			if(wheel.getElementsByTagName("totalprice").length) {
				totalPrice = wheel.getElementsByTagName("totalprice")[0].firstChild.data - 0;
			}
			/** 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 = "**Ligero: " + lightweight + "lbs.**";
				document.getElementById("frontWeight" + currWheel).style.fontWeight = "bold";
			   } else 
			   */
			   if(weight-0 > 0) {
				document.getElementById("frontWeight" + currWheel).firstChild.data = weight + "lbs.";
				// document.getElementById("frontWeight" + currWheel).style.fontWeight = "normal";
			   } else {
				document.getElementById("frontWeight" + currWheel).firstChild.data = "No disponible";
			   }
			}
			/** 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;
			document.getElementById("frontTireSizeLink" + currWheel).href = tireSizeLink;
			/** TPMS */
			if(document.getElementById("tpms" + currWheel)) {
				document.getElementById("tpms" + currWheel).href = "/wheels/TPMSServlet?qty=4&sortCodeType=W&wheelPartNum=" + partnumber + "&sortCode=" + sortcode + encodedVehicle;
			}
			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(wheel.getElementsByTagName("sortcodenote").length) {
				var sortcodenote = wheel.getElementsByTagName("sortcodenote")[0].firstChild.data;
				if(sortcodenote && sortcodenote.length) {
					if(frontNote && frontNote.length > 0) frontNote += "<br><br>";
					frontNote += sortcodenote;
				}
			}
			if(document.getElementById("frontNote" + currWheel)) {
	                        if(frontNote && frontNote.length && frontNote != "null") {
                                	document.getElementById("frontNote" + currWheel).style.display = "block";
					if(wheels.length > 1 || (optionalRear.length > 0 && optionalSelected.length)) {
						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("features")) {
				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");
						capTypeArea.id = "capType";
						document.getElementById("subfeature").appendChild(capTypeArea);
					}
					capTypeCopy = document.createTextNode(wheel.getElementsByTagName("captypedesc")[0].firstChild.data);
					capTypeLI = document.createElement("LI");
					capTypeLI.appendChild(capTypeCopy);
					capTypeArea.appendChild(capTypeLI);
					document.getElementById("featureText").style.display = "block";
				} else if(!document.getElementById("textCopy")) {
					document.getElementById("featureText").style.display = "none";
				}
			}
			if(closeUp == "true") {
/*				if(wheel.getElementsByTagName("finishWar").length) {
					document.getElementById("frontFinishWar" + currWheel).style.display = "block";
					document.getElementById("frontFinishWarranty" + currWheel).firstChild.data = wheel.getElementsByTagName("finishWar")[0].firstChild.data;
				} else {
					document.getElementById("frontFinishWar" + currWheel).style.display = "none";
				}
*/
				if(wheel.getElementsByTagName("country").length) {
					document.getElementById("frontManufactured" + currWheel).style.display = "block";
					document.getElementById("frontCountry" + currWheel).firstChild.data = wheel.getElementsByTagName("country")[0].firstChild.data;
				} else {
					document.getElementById("frontManufactured" + currWheel).style.display = "none";
				}
				if(wheel.getElementsByTagName("constType").length) {
					document.getElementById("frontConstruction" + currWheel).style.display = "block";
					document.getElementById("frontConstructionType" + currWheel).firstChild.data = wheel.getElementsByTagName("constType")[0].firstChild.data;
				} else {
					document.getElementById("frontConstruction" + currWheel).style.display = "none";
				}
			}
			if(document.getElementById("hardwareDiv")) {
				if(wheel.getElementsByTagName("includedHardwareLink").length || wheel.getElementsByTagName("oelugs").length) {
					document.getElementById("tr_tab_4").style.display = "block";
				} else {
					document.getElementById("tr_tab_4").style.display = "none";
				}
				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("P");
					hwlistElement.id = "hardwareList";
					myDiv.appendChild(hwlistElement);
				}
				while(hwlistElement.firstChild) {
					hwlistElement.removeChild(hwlistElement.firstChild);
				}
				for(var z=0; z<hardwareList.length; z++) {
					hwlistElement.appendChild(document.createTextNode(hardwareList[z].firstChild.data));
					hwlistElement.appendChild(document.createElement("BR"));
				}
			}
			/** rear wheel */
			if(wheels.length > 1) {
			    wheel = wheels[1];
			    var rearMax = 0;
			    if(wheel.getElementsByTagName("placeHolder").length) {
				rearMax = -1;
				document.getElementById("rearNotAvailable" + currWheel).style.display = "block";
				document.getElementById("rearNewItem" + currWheel).style.display = "none";
				document.getElementById("rearPricing" + currWheel).style.display = "none";
				document.getElementById("rearMarkdownPricing" + currWheel).style.display = "none";
				document.getElementById("rearMapPricing" + currWheel).style.display = "none";
				document.getElementById("rearStockSpan" + currWheel).style.display = "none";
				if(document.getElementById("rearLightCell" + currWheel)) {
					document.getElementById("rearAvailableWheelLightCell" + currWheel).style.display = "none";
					document.getElementById("rearLightCell" + currWheel).className = "darkcell";
				} else {
					document.getElementById("rear" + currWheel).style.display = "none";
					document.getElementById("rearQtyItem" + currWheel).style.display = "none";
					document.getElementById("rearPriceItem" + currWheel).style.display = "none";
				}
			    } else {
				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;
				var rearQty = "0";
				if(wheel.getElementsByTagName("qty").length) {
					rearQty = wheel.getElementsByTagName("qty")[0].firstChild.data;
					totalQty += (rearQty-0);
				}
				if(wheel.getElementsByTagName("maxqty").length) rearMax = wheel.getElementsByTagName("maxqty")[0].firstChild.data;
				document.getElementById("rearNotAvailable" + currWheel).style.display = "none";
				document.getElementById("rearNewItem" + currWheel).style.display = "block";
				if(document.getElementById("rearLightCell" + currWheel)) {
					document.getElementById("rearAvailableWheelLightCell" + currWheel).style.display = "block";
					document.getElementById("rearLightCell" + currWheel).className = "lightcell";
				} else {
					document.getElementById("rearQtyItem" + currWheel).style.display = "block";
					document.getElementById("rearPriceItem" + currWheel).style.display = "block";
				}
				/** build the rear size dropdown and text */
				if(rearSizes.length > 0) {
					if(document.getElementById("back")) {
						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;
							}
						} 
					}
					if(document.getElementById("rearWheelSize" + currWheel)) {
						document.getElementById("rearWheelSize" + currWheel).firstChild.data = size;
					}
				}
				/** 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;
				}
				var blockOrInline = "block";
				if(closeUp == "true") blockOrInline = "inline";
				/** 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 = blockOrInline;
					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 = blockOrInline;
					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 = blockOrInline;
					} else {
						document.getElementById("rearDiscount" + currWheel).style.display = "none";
					}
				
				} else {
*/
					document.getElementById("rearMarkdownPricing" + currWheel).style.display = "none";
					document.getElementById("rearPricing" + currWheel).style.display = blockOrInline;
					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;
//				}
				if(wheel.getElementsByTagName("totalprice").length) {
					if(totalPrice != -1) totalPrice += (wheel.getElementsByTagName("totalprice")[0].firstChild.data - 0);
				} else {
					totalPrice = -1;
				}
				/** 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 = "**Ligero: " + lightweight + "lbs.**";
					document.getElementById("rearWeight" + currWheel).style.fontWeight = "bold";
			   	} else 
				*/
				if(weight-0 > 0) {
					document.getElementById("rearWeight" + currWheel).firstChild.data = weight + "lbs.";
					// document.getElementById("rearWeight" + currWheel).style.fontWeight = "normal";
				} else {
					document.getElementById("rearWeight" + currWheel).firstChild.data = "No disponible";
				}
				/** 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(wheel.getElementsByTagName("sortcodenote").length) {
					var sortcodenote = wheel.getElementsByTagName("sortcodenote")[0].firstChild.data;
					if(sortcodenote && sortcodenote.length) {
						if(rearNote && rearNote.length > 0) rearNote += "<br><br>";
						rearNote += sortcodenote;
					}
				}
				if(document.getElementById("rearNote" + currWheel)) {
                                	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) {
						if(closeUp == "false") {
							document.getElementById("rearNewItem" + currWheel).className = "star_grey";
						} else {
							document.getElementById("rearNewItem" + currWheel).className = "star";
						}
					} 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 */
				if(closeUp == "false") {
					document.getElementById("rightDetail" + currWheel).style.display = "block";
					document.getElementById("leftDetail" + currWheel).style.width = "49.5%";
				} else {
					document.getElementById("rear" + currWheel).style.display = "block";
					document.getElementById("frontText" + currWheel).style.display = "inline";
				}
				document.getElementById("viewOpt" + currWheel).style.display = "none";
				document.getElementById("rearSizes" + currWheel).style.display = "block";
				document.getElementById("rearWheelInfo" + currWheel).style.display = "block";
				if(closeUp == "true") {
/*					if(wheel.getElementsByTagName("finishWar").length) {
						document.getElementById("rearFinishWar" + currWheel).style.display = "block";
						document.getElementById("rearFinishWarranty" + currWheel).firstChild.data = wheel.getElementsByTagName("finishWar")[0].firstChild.data;
					} else {
						document.getElementById("rearFinishWar" + currWheel).style.display = "none";
					}
*/
					if(wheel.getElementsByTagName("country").length) {
						document.getElementById("rearManufactured" + currWheel).style.display = "block";
						document.getElementById("rearCountry" + currWheel).firstChild.data = wheel.getElementsByTagName("country")[0].firstChild.data;
					} else {
						document.getElementById("rearManufactured" + currWheel).style.display = "none";
					}
					if(wheel.getElementsByTagName("constType").length) {
						document.getElementById("rearConstruction" + currWheel).style.display = "block";
						document.getElementById("rearConstructionType" + currWheel).firstChild.data = wheel.getElementsByTagName("constType")[0].firstChild.data;
					} else {
						document.getElementById("rearConstruction" + currWheel).style.display = "none";
					}
				}
				var rearTabLinkText = "Trasero";
				if(closeUp == "true") {
					updateQty(currWheel, frontQty, rearQty);
					document.getElementById("frontFitment" + currWheel).firstChild.data = "Delantero";
				} else {
					document.getElementById("frontFitment" + currWheel).firstChild.data = "Delantero";
				}
				if(hasOptionalRear.length) {
					document.getElementById("removeOpt" + currWheel).style.display = "block";
					rearTabLinkText = "Opc. trasero";
					if(closeUp == "true") {
						document.getElementById("rearHR" + currWheel).style.display = "none";
						document.getElementById("rearFitment" + currWheel).firstChild.firstChild.data = "Trasero Opcional";
					} else {
						document.getElementById("rearFitment" + currWheel).firstChild.data = "Trasero Opcional";
					}
				} else {
					document.getElementById("removeOpt" + currWheel).style.display = "none";
					if(closeUp == "true") {
						document.getElementById("rearHR" + currWheel).style.display = "block";
						document.getElementById("rearFitment" + currWheel).firstChild.firstChild.data = "Trasero";
					} else {
						document.getElementById("rearFitment" + currWheel).firstChild.data = "Trasero";
					}
				}
				if(document.getElementById("frontTabLink")) {
					document.getElementById("frontTabLink").firstChild.data = "Delantero";
//					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";
				}
				if(document.getElementById("fQtyLabel" + currWheel)) {
					document.getElementById("fQtyLabel" + currWheel).firstChild.data = "Delantero";
					document.getElementById("rQtyLabel" + currWheel).style.display = "block";
					document.getElementById("i2_Qty" + currWheel).style.display = "block";
				}
			    }
			} else if(covers.length == 0 && !optionalRear.length) {
				//all-around non-steel
				if(closeUp == "false") {
					document.getElementById("rightDetail" + currWheel).style.display = "none";
					document.getElementById("leftDetail" + currWheel).style.width = "100%";
				} else {
					document.getElementById("rear" + currWheel).style.display = "none";
					document.getElementById("rearHR" + currWheel).style.display = "none";
				}
				if(closeUp == "true") {
					updateQty(currWheel, frontQty, rearQty);
					document.getElementById("frontFitment" + currWheel).firstChild.data = "Delantero y trasero";
					document.getElementById("frontText" + currWheel).style.display = "none";
				} else {
					document.getElementById("frontFitment" + currWheel).firstChild.data = "Delantero y trasero";
				}
				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("rearSizes" + currWheel)) document.getElementById("rearSizes" + currWheel).style.display = "none";
				if(document.getElementById("frontTabLink")) {
					document.getElementById("rearImageTab").style.display = "none";
					document.getElementById("frontTabLink").firstChild.data = "Delantero y trasero";
//					document.getElementById("frontTabLink").firstChild.nextSibling.nextSibling.data = "Fitments";
				}
				if(document.getElementById("fQtyLabel" + currWheel)) {
					document.getElementById("fQtyLabel" + currWheel).firstChild.data = "Cantidad";
					document.getElementById("rQtyLabel" + currWheel).style.display = "none";
					document.getElementById("i2_Qty" + currWheel).style.display = "none";
				}
			} else if(optionalRear.length > 0) {
				//AA with optional rear
				if(closeUp == "false") {
					document.getElementById("rightDetail" + currWheel).style.display = "block";
				} else {
					document.getElementById("rear" + currWheel).style.display = "none";
					document.getElementById("rearHR" + currWheel).style.display = "none";
				}
				document.getElementById("viewOpt" + currWheel).style.display = "block";
				document.getElementById("removeOpt" + currWheel).style.display = "none";
				document.getElementById("rearSizes" + currWheel).style.display = "none";
				if(closeUp == "true") {
					updateQty(currWheel, frontQty, rearQty);
					document.getElementById("frontFitment" + currWheel).firstChild.data = "Delantero y trasero";
					document.getElementById("frontText" + currWheel).style.display = "none";
				} else {
					document.getElementById("frontFitment" + currWheel).firstChild.data = "Delantero y trasero";
				}
				if(document.getElementById("back")) {
					returnToSearchResultsLink += "&showRear=no";
				}
				if(document.getElementById("frontTabLink")) {
					document.getElementById("frontTabLink").firstChild.data = "Delantero y trasero";
//					document.getElementById("frontTabLink").firstChild.nextSibling.nextSibling.data = "Fitments";
				}
				if(document.getElementById("fQtyLabel" + currWheel)) {
					document.getElementById("fQtyLabel" + currWheel).firstChild.data = "Cantidad";
					document.getElementById("rQtyLabel" + currWheel).style.display = "none";
					document.getElementById("i2_Qty" + currWheel).style.display = "none";
				}
			}
			createQtyDrop("i1_Qty" + currWheel, frontQty, frontMax, (wheels.length > 1 || (optionalRear.length > 0 && optionalSelected.length)));
			createQtyDrop("i2_Qty" + currWheel, rearQty, rearMax, true);
			/** 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("back")) {
				document.getElementById("back").href = returnToSearchResultsLink;
			}
                        /** sort code notes for Close Up */
			if(document.getElementById("importantNoteContent")) {
				if((frontNote && frontNote != "" && frontNote != "null") ||
				   (rearNote && rearNote != "" && rearNote != "null")) {
					var element = document.getElementById("importantNoteContent");
					while (element.firstChild) {
						element.removeChild(element.firstChild);
					}
					if(!frontNote || frontNote == "null") frontNote = "";
					if(!rearNote || rearNote == "null") rearNote = "";
					var lineBreak = document.createElement("BR");
					if(frontNote != "") {
						frontNote = frontNote.replace(/&quot;/g, " \"");
						if(rearNote != frontNote && (wheels.length > 1 || (optionalRear.length > 0 && optionalSelected.length))) {
							var strongFront = document.createElement("STRONG");
							strongFront.appendChild(document.createTextNode("Frontal: "));
							element.appendChild(strongFront);
						}
						var lines = frontNote.split("<br><br>");
						for(var x=0; x<lines.length; x++) {
							element.appendChild(document.createTextNode(lines[x]));
							if(x<lines.length-1) {
								element.appendChild(lineBreak.cloneNode(false));
								element.appendChild(lineBreak.cloneNode(false));
							}
						}
					}
					if(rearNote != "" && frontNote != rearNote) {
						rearNote = rearNote.replace(/&quot;/g, " \"");
						if(frontNote && frontNote != "" && frontNote != "null") {
							element.appendChild(document.createElement("HR"));
						}
						var strongRear = document.createElement("STRONG");
						strongRear.appendChild(document.createTextNode("Trasero: "));
						element.appendChild(strongRear);
						var lines = rearNote.split("<br><br>");
						for(var x=0; x<lines.length; x++) {
							element.appendChild(document.createTextNode(lines[x]));
							if(x<lines.length-1) {
								element.appendChild(lineBreak.cloneNode(false));
								element.appendChild(lineBreak.cloneNode(false));
							}
						}
					}
					document.getElementById("tr_tab_0").style.display = "block";
					changeTRTabs('tr_tab', 8, 0);
				} else {
					document.getElementById("tr_tab_0").style.display = "none";
					changeTRTabs('tr_tab', 8, 1);
				}
			}
			if(document.getElementById("priceTotal" + currWheel)) {
				if(totalPrice > 0) {
					document.getElementById("totalPrice" + currWheel).firstChild.data = currencyFormatted(totalPrice);
					if(document.getElementById("totalQty" + currWheel)) document.getElementById("totalQty" + currWheel).firstChild.data = totalQty;
					document.getElementById("priceTotal" + currWheel).style.display = "block";
				} else {
					document.getElementById("priceTotal" + currWheel).style.display = "none";
				}
			}
		}
		if(covers.length>0) {
			cover = covers[0];
			if(closeUp == "false") {
				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(document.getElementById("soldOut" + currWheel).style.display == "block") { //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 = cover.getElementsByTagName("cbigimage")[0].firstChild.data;
				A.title = cover.getElementsByTagName("cdesc")[0].firstChild.data;
				A.onclick = function() {openImageBox(this.href, this.title, 505, 275);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 = false;
			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;
					var arg3 = cover.getElementsByTagName("cprice")[0].firstChild.data;
					document.getElementById("prevCover" + currWheel).onclick = BindArguments(changeCover, arg1, arg2, arg3);
					document.getElementById("prevCover" + currWheel).href = "javascript:void(0);";
					hideOtherCovers = false;
					arg1 = null;
					arg2 = null;
					arg3 = null;
				} else {
					myLink = document.createElement("A");
					myLink.id = "prevCover" + currWheel;
					txt = document.createTextNode("previo");
					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;
					var arg3 = cover.getElementsByTagName("cprice")[0].firstChild.data;
					document.getElementById("nextCover" + currWheel).onclick = BindArguments(changeCover, arg1, arg2, arg3);
					document.getElementById("nextCover" + currWheel).href = "javascript:void(0);";
					hideOtherCovers = false;
					arg1 = null;
					arg2 = null;
					arg3 = null;
				} else {
					myLink = document.createElement("A");
					myLink.id = "nextCover" + currWheel;
					txt = document.createTextNode("seguir");
					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";
				}
			}
			var allCoversSoldOut = responseXML.getElementsByTagName("coversSoldOut");
			if(allCoversSoldOut.length > 0) {
				if(allCoversSoldOut[0].firstChild.data == "true") {
					eval("document.steelCoversSoldOut" + currWheel).allSoldOut.value = "true";
				} else {
					eval("document.steelCoversSoldOut" + currWheel).allSoldOut.value = "false";
				}
			}
			document.getElementById("chooseCover" + currWheel).onclick = BindArguments(toggleCoverSelected, currWheel, cover.getElementsByTagName("cprice")[0].firstChild.data);
		}
		/** change images shown on the close up page */
		if(closeUpImages.length > 0) {
			var images = closeUpImages[0];
			detailImage1 = images.getElementsByTagName("img1")[0].firstChild.data;
			detailImage2 = images.getElementsByTagName("img2")[0].firstChild.data;
			detailImage3 = images.getElementsByTagName("img3")[0].firstChild.data;
			thumb1 = images.getElementsByTagName("thumb1")[0].firstChild.data;
			thumb2 = images.getElementsByTagName("thumb2")[0].firstChild.data;
			thumb3 = images.getElementsByTagName("thumb3")[0].firstChild.data;
			if(images.getElementsByTagName("subtype").length) {
				currentSubType = images.getElementsByTagName("subtype")[0].firstChild.data;
			} else {
				currentSubType = "";
			}
			if(document.getElementById("subType")) {
				var tmpSubTypes = document.getElementById("subType");
				var sCount = 0;
				for(var sCount=0; sCount<tmpSubTypes.options.length; sCount++) {
					if(tmpSubTypes.options[sCount].value == currentSubType) {
						tmpSubTypes.options[sCount].selected = true;
					} else {
						tmpSubTypes.options[sCount].selected = false;
					}
				}
			}
			showImages();
			changeSubTypeSelectMenu(subTypes, currentSubType);
		}
	  }
	}
}
/** 
 * closes a tab
 */
function closeInfo(i, suffix) {
	//close the help dialogues if they are open
	closeHelpLayers();
	/* close the div */
	if(document.getElementById("infoContainer" + i + suffix)) {
		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();	
}
/** 
 * 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") {
			if(document.getElementById("more" + i) &&
			   document.getElementById("arrow2" + i).style.display == "block") {
				return j+MAX_TABS;
			} else {
				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 */
	if(document.getElementById("infoContainer" + i)) {
		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 = MAX_TABS-1;
	var counter = MAX_TABS;
	/* 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 = "";
	}
	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";
	}
	//if in the "hide all" state, close this back up
	if(document.getElementById("showWheelDetails") && document.getElementById("showWheelDetails").style.display == "block" && document.getElementById("infoContainer" + i)) {
		closeInfo(i, "");
	}
}
/**
 * logs information in omniture
 */
function linkCode() {
  if(openedTab != null && openedTab == "false") {
    s=s_gi('tirellantas');
      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('tirellantas');
   */
  }
}
/**
 * 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";
	document.getElementById("blockout").style.display = "block";
	document.getElementById("alloytabtop").className = "";
	document.getElementById("alloytabbottom").className = "";
	document.getElementById("steeltabtop").className = "current";
	document.getElementById("steeltabbottom").className = "current";
	if(document.getElementById("newtabtop")) document.getElementById("newtabtop").className = "";
	if(document.getElementById("newtabbottom")) document.getElementById("newtabbottom").className = "";
	if(document.getElementById("specialstabtop")) document.getElementById("specialstabtop").className = "";
	if(document.getElementById("specialstabbottom")) document.getElementById("specialstabbottom").className = "";
	document.getElementById("filterSize_id").disabled = true;
	document.getElementById("filterFinish_id").disabled = true;
	document.getElementById("filterBrand_id").disabled = true;
	document.getElementById("filterWeight_id").disabled = true;
	if(document.getElementById("pagingTable")) document.getElementById("pagingTable").style.visibility = "hidden";
	if(resultsDisplayed > 12 && document.getElementById("showWheelDetails")) {
		document.getElementById("showWheelDetails").onclick = function() { startLoading(); openUnOpened(true); setTimeout("finishLoading()", 500); return false; };
	}
}
/* switch to showing alloy wheels */
function chooseAlloy() {
	document.getElementById("steel").style.display = "none";
	document.getElementById("alloy").style.display = "block";
	document.getElementById("blockout").style.display = "none";
	if(document.getElementById("steeltabtop")) document.getElementById("steeltabtop").className = "";
	if(document.getElementById("steeltabbottom")) document.getElementById("steeltabbottom").className = "";
	document.getElementById("filterSize_id").disabled = false;
	document.getElementById("filterFinish_id").disabled = false;
	document.getElementById("filterBrand_id").disabled = false;
	document.getElementById("filterWeight_id").disabled = false;
	if(document.getElementById("pagingTable")) document.getElementById("pagingTable").style.visibility = "visible";
}
function chooseAllAlloy() {
	document.getElementById("alloytabtop").className = "current";
	document.getElementById("alloytabbottom").className = "current";
	chooseAlloy();
}
function chooseNew() {
	document.getElementById("newtabtop").className = "current";
	document.getElementById("newtabbottom").className = "current";
	chooseAlloy();
}
function chooseSpecials() {
	document.getElementById("specialstabtop").className = "current";
	document.getElementById("specialstabbottom").className = "current";
	chooseAlloy();
}
/**
 * changes which cover is displayed
 */
function changeCover(i, selectedCover, currentCoverPrice) {
	//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;
        }
	if(document.getElementById("totalPrice" + i + "_s")) {
		var localTotalPrice = (document.getElementById("totalPrice" + i + "_s").firstChild.data.substring(1)) - 0;
		if(document.getElementById("chooseCover" + i + "_s").checked) {
			localTotalPrice = (localTotalPrice-0) - (currentCoverPrice-0);
			document.getElementById("totalPrice" + i + "_s").firstChild.data = currencyFormatted(localTotalPrice);
		}
	}
	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");
		}
		if(document.getElementById("includesCovers" + currWheel)) document.getElementById("includesCovers" + currWheel).style.display = "none";
	} else {
		if(coverEcom.indexOf("&i1_Qty=0") > -1) {
			coverEcom = coverEcom.replace(/&i1_Qty=0/, "&i1_Qty=1");
		}
		if(document.getElementById("includesCovers") + currWheel) document.getElementById("includesCovers" + currWheel).style.display = "block";
	}
	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, coverSetPrice) {
	if(document.getElementById("totalPrice" + currWheel)) {
		var localTotalPrice = (document.getElementById("totalPrice" + currWheel).firstChild.data.substring(1)) - 0;
		if(!document.getElementById("chooseCover" + currWheel).checked) {
			localTotalPrice = (localTotalPrice-0) - (coverSetPrice-0);
		} else {
			localTotalPrice = (localTotalPrice-0) + (coverSetPrice-0);
		}
		document.getElementById("totalPrice" + currWheel).firstChild.data = currencyFormatted(localTotalPrice);
	}
	alterEcomLinks(currWheel, '');
}
/** make sure the customer really does not want covers */
function confirmCovers(currWheel, successHrefID, newWindow) {
	if(eval("document.steelCoversSoldOut" + currWheel).allSoldOut.value == "true") return true;
	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, 'Importante: tapas para rines');
		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_"));
	}
	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 showImages() {
	changeLargeImage(detailImage3);
	document.getElementById("thumb1").src = thumb1;
	document.getElementById("thumb1link").href = detailImage1;
	document.getElementById("thumb2").src = thumb2;
	document.getElementById("thumb2link").href = detailImage2;
	document.getElementById("thumb3").src = thumb3;
	document.getElementById("thumb3link").href = detailImage3;
	//document.getElementById("superviewlink").href = bigPic + "&subType=" + currentSubType;
	//document.getElementById("superviewlinkimage").href = bigPic + "&subType=" + currentSubType;
}
/** 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, ecom) {
	if(ecom) {
	        var url = "/wheels/WheelGridControlServlet?action=changeImage&ajax=true&wheel=" + i + "&closeUp=true&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();
	} else {
		var currIndex = document.getElementById('subType').selectedIndex;
		document.getElementById('thumb1').src = nonEcomSubTypes[currIndex].thumb1;
		document.getElementById('thumb2').src = nonEcomSubTypes[currIndex].thumb2;
		document.getElementById('thumb3').src = nonEcomSubTypes[currIndex].thumb3;
		document.getElementById('thumb1link').href = nonEcomSubTypes[currIndex].large1;
		document.getElementById('thumb2link').href = nonEcomSubTypes[currIndex].large2;
		document.getElementById('thumb3link').href = nonEcomSubTypes[currIndex].large3;
		changeLargeImage(nonEcomSubTypes[currIndex].large3);
		document.getElementById("superviewlink").href = bigPic + "&subType=" + nonEcomSubTypes[currIndex].subType;
		document.getElementById("superviewlinkimage").href = bigPic + "&subType=" + nonEcomSubTypes[currIndex].subType;
	}
}
/** 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);
	}
  }
}
/** code to update the quanity dropdowns */
function updateQty(currWheel, frontQty, rearQty) {
	var frontQtySelect = document.getElementById("i1_Qty" + currWheel);
	for(var i=0; i<frontQtySelect.options.length; i++) {
		if(frontQtySelect.options[i].value == frontQty) {
			frontQtySelect.options[i].selected = true;
		} else {
			frontQtySelect.options[i].selected = false;
		}
	}
	var rearQtySelect = document.getElementById("i2_Qty" + currWheel);
	for(var i=0; i<rearQtySelect.options.length; i++) {
		if(rearQtySelect.options[i].value == rearQty) {
			rearQtySelect.options[i].selected = true;
		} else {
			rearQtySelect.options[i].selected = false;
		}
	}
}
function changeBeautyShot(index) {
	document.getElementById("beautyShotImage").src = beautyShots[index].image;
	document.getElementById("beautyShotShowing").firstChild.data = beautyShots[index].mmy;
	var beautyShotLinkHolder = document.getElementById("beautyShotLinks");
	while(beautyShotLinkHolder.firstChild) {
		beautyShotLinkHolder.removeChild(beautyShotLinkHolder.firstChild);
	}
	for(var i=0; i<beautyShots.length; i++) {
	    if(i != index) {
		var link = document.createElement("A");
		link.href = "javascript:void(0);";
		link.onclick = BindArguments(changeBeautyShot, i);
		var txt = document.createTextNode(beautyShots[i].mmy);
		link.appendChild(txt);
		beautyShotLinkHolder.appendChild(link);
		beautyShotLinkHolder.appendChild(document.createElement("BR"));
	    }
	}
	var url = "/wheels/WheelDetailControlServlet?action=changeBeautyShot&ajax=true&beautyShot=" + index;
	var ajax = new TR_AJAXInteraction(url);
	ajax.doGet();
}
/** makes an AJAX call to change the quantity in the bean */
function changeQty(i, winter, suffix) {
    if(winter == "false") { 
	var url = "/wheels/WheelGridControlServlet?action=changeQty&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("rearSizes" + i + suffix) && document.getElementById("rearSizes" + i + suffix).style.display == "block") {
		if(document.getElementById("selectRear" + i + suffix).style.display == "none") {
			url += "&selectedRear=" + document.getElementById("selectRear" + i + suffix)[0].value;
		} else {
			url += "&selectedRear=" + document.getElementById("selectRear" + i + suffix)[document.getElementById("selectRear" + i + suffix).selectedIndex].value + encodedVehicle + filters;
		}
	} else {
		url += "&selectedRear=";
	}
	if(closeUp == "true") {
		url += "&closeUp=true";
	}
	url += "&frontQty=" + document.getElementById("i1_Qty" + i + suffix)[document.getElementById("i1_Qty" + i + suffix).selectedIndex].value;
	if(document.getElementById("i2_Qty" + i + suffix) && document.getElementById("i2_Qty" + i + suffix).selectedIndex > 0) {
		url += "&rearQty=" + document.getElementById("i2_Qty" + i + suffix)[document.getElementById("i2_Qty" + i + suffix).selectedIndex].value;
	} else {
		url += "&rearQty=0";
	}
	url += encodedVehicle + filters;
	if(suffix == "_s") url += "&info=steel";
	var ajax = new TR_AJAXInteraction(url, toggleCallBack);
	ajax.doGet();
    } else { //winter
	if(document.getElementById("i1_Qty_Winter")) {
		document.getElementById("i1_Qty_Winter").value = document.getElementById("i1_Qty" + i)[document.getElementById("i1_Qty" + i).selectedIndex].value;
		if(document.getElementById("i2_Qty_Winter")) {
			document.getElementById("i2_Qty_Winter").value = document.getElementById("i2_Qty" + i)[document.getElementById("i2_Qty" + i).selectedIndex].value;
		}
	}
    }
}
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(steelOnly) {
	startLoading();
	var url = "/wheels/WheelGridControlServlet?action=changeDefaultOpen&ajax=true" + encodedVehicle + filters;
	if(steelOnly) {
		var ajax = new TR_AJAXInteraction(url);
		ajax.doGet();
		if(document.getElementById("alloytabtop")) document.getElementById("alloytabtop").onclick = function() { return true; };
		if(document.getElementById("alloytabbottom")) document.getElementById("alloytabbottom").onclick = function() { return true; };
		if(document.getElementById("newtabtop")) document.getElementById("newtabtop").onclick = function() { return true; };
		if(document.getElementById("newtabbottom")) document.getElementById("newtabbottom").onclick = function() { return true; };
		if(document.getElementById("specialstabtop")) document.getElementById("specialstabtop").onclick = function() { return true; };
		if(document.getElementById("specialstabbottom")) document.getElementById("specialstabbottom").onclick = function() { return true; };
	} else {
		var ajax = new TR_AJAXInteraction(url, openUnOpenedCallback);
		ajax.doGet();
	}
	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 openUnOpenedCallback(responseXML) {
    if(responseXML) {
	if(responseXML.getElementsByTagName("openwheels").length > 0) {
		var w_sel = responseXML.getElementsByTagName("w_selected");
		for(var i=0; i<w_sel.length; i++) {
			var currIdx = w_sel[i];
			var wheelIdx = currIdx.getElementsByTagName("w_index")[0].firstChild.data;
			var tabIdx = currIdx.getElementsByTagName("tab")[0].firstChild.data;
			var frontPart = currIdx.getElementsByTagName("front")[0].firstChild.data;
			var rearPart = "";
			if(currIdx.getElementsByTagName("rear").lenght > 0) {
				rearPart = currIdx.getElementsByTagName("rear")[0].firstChild.data;
			}
			if(document.getElementById("sizelist" + wheelIdx) && document.getElementById("sizelist" + wheelIdx).getElementsByTagName("LI")[tabIdx].getElementsByTagName("A")[0].className != "current") {
				if(tabIdx > MAX_TABS && document.getElementById("arrow2" + wheelIdx).style.display == "none") {
					showMore(wheelIdx, MAX_TABS);
				} else if(tabIdx <= MAX_TABS && document.getElementById("arrow2" + wheelIdx) && document.getElementById("arrow2" + wheelIdx).style.display == "block") {
					showMore(wheelIdx, 0);
				}
				toggleInfo(wheelIdx, tabIdx, frontPart, rearPart);
			}
		}
	}
    }
}
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 currencyFormatted(num) {
  num = num.toString().replace(/\$|\,/g,'');
  if(isNaN(num))
  num = "0";
  num = Math.floor(num*100+0.50000000001);
  cents = num%100;
  num = Math.floor(num/100).toString();
  if(cents<10) cents = "0" + cents;
  for(var i = 0; i < Math.floor((num.length-(1+i))/3); i++) num = num.substring(0,num.length-(4*i+3))+','+ num.substring(num.length-(4*i+3));
  return ('$' + num + '.' + cents);
}
function createQtyDrop(elementId, selectedValue, maxValue, showZero) {
	var dropdown = document.getElementById(elementId);
	if(!dropdown) return;
	while(dropdown.options.length>0) {
		dropdown.options[0] = null;
	}
	var max = 6;
	maxValue = maxValue-0;
	if(maxValue == -1) max = 1;
	if(maxValue && maxValue > 0 && maxValue < 9) max = maxValue+1;
	if(showZero) {
	    for(var j=0; j<max; j++) {
		newOption = new Option();
		newOption.text = j;
		newOption.value = j;
		dropdown.options[j] = newOption;
		if(selectedValue == newOption.value) {
			newOption.selected = true;
		} else {
			newOption.selected = false;
		}
	    }
	} else {
	    for(var j=0; j<max-1; j++) {
		newOption = new Option();
		newOption.text = j+1;
		newOption.value = j+1;
		dropdown.options[j] = newOption;
		if(selectedValue == newOption.value) {
			newOption.selected = true;
		} else {
			newOption.selected = false;
		}
	    }
	}
}
function BindArguments(fn) {
  var args = [];
  for (var n = 1; n < arguments.length; n++)
    args.push(arguments[n]);
  return function () { return fn.apply(this, args);};
}

