/*
 * catalog.js
 * Javascript that is used on the Catalog pages of the Lowes.com web site.
 * 
 * Copyright Lowes, Inc.
 */

var lowes=window.lowes || {};
lowes.catalog={
    init:function(){
        lowes.catalog._setupVertCenter();
        lowes.catalog._setupFindStore();
        lowes.catalog._setupFindMore();
        lowes.catalog._setupRelatedProducts();
        lowes.catalog._setupGiftcardAmount();
        lowes.catalog._setupGiftcardOccasion();
        lowes.catalog._setupFindMoreLikeThis();
    },
    _setupVertCenter:function(){
        // Vertically aligns P elements within the availability-info section of Product List pages.
        dojo.query('.availability-info p').forEach(function(element){
            var box = dojo.contentBox(element);
            if(box.h == 36) {
                dojo.addClass(element, 'three-line');
            } else if (box.h == 24) {
                dojo.addClass(element, 'two-line');
            } else {
                dojo.addClass(element, 'one-line');
            }
        });
    }, 

    //TODO: Combine Find Store and Find More into single tooltip function
    _setupFindStore:function(){
        // Find Store via ZIP code dialog box on Product List pages.
        dojo.query('.zipTrigger').forEach(function(element){
            dojo.connect(element, 'onclick',function(ev){
			//Aug 26,2009 Adam C Mills
			//check if the zipEntryDialog div exist	
			if(dojo.byId('zipEntryDialog') == null){
				var tooltip = document.createElement('div');
	                var id = 'zipEntryDialog';
	                if(dojo.byId(id)) {
	                    dojo.byId(id).parentNode.removeChild(dojo.byId(id));
	                }
	                tooltip.id = id;
	                dojo.body().appendChild(tooltip);
			}else{
				//Aug 26,2009 Adam C Mills
				//object exist so just show it don't recreate it.
				dojo.style(dojo.byId('zipEntryDialog'), "display", "block");	
			}
		// preserve zipEntryDialog1 div because the dijit.TooltipDialog overwrites it
		// var htmlString = dojo.byId('zipEntryDialog1').innerHTML;
		// var tooltipCopy = document.createElement('div');
                
		var ttd = new dijit.TooltipDialog({
                        title: "",
                        srcNodeRef:dojo.byId('zipEntryDialog1')
                }, tooltip);

		// restore zipEntryDialog1 div
		// var copyId = 'zipEntryDialog1';
		// tooltipCopy.id = copyId;
		// tooltipCopy.innerHTML = htmlString;
		// dojo.body().appendChild(tooltipCopy);

                var closeButton = dojo.byId('findZipClose');
                if(closeButton) {
                    ttd.connect(closeButton,'onclick',function(e){
                       //Aug 26,2009 Adam C Mills
				   //Removing Destory//ttd.destroy();
				    //changing display of hte zipEntryDalog	
				    dojo.style(dojo.byId('zipEntryDialog'), "display", "none");
					  
                    });
                }
                            
                    // Set up closing mechanisms
                    ttd.connect(ttd,'onLoad',function(e){
                        if (dojo.isIE && dojo.isIE<7) { // fix dropdown bleedthru in IE6
                            //ttd.domNode.appendChild(document.createElement('iframe'));
                        }
                        setTimeout(function(){
                            ttd.connect(ttd.domNode,'onclick',function(e){
                                e.stopPropagation();
                                return false;
                            });
                            ttd.connect(dojo.doc,'onclick',function(e){
                              
						//Aug 26,2009 Adam C Mills
						//Removing Destory // this.destroy();
				    		//changing display of hte zipEntryDalog	
						dojo.style(dojo.byId('zipEntryDialog'), "display", "none");
                            });
                            var closeButton = dojo.byId('findZipClose2');
                            if(closeButton) {
                                ttd.connect(closeButton,'onclick',function(e){
                                                                
							//Aug 26,2009 Adam C Mills
							//Removing Destory // this.destroy();
							//changing display of hte zipEntryDalog	
							dojo.style(dojo.byId('zipEntryDialog'), "display", "none");
                                });
                            }
                        },100); // timeout to workaround a race condition in IE
                    });
                
                // Set up location of TooltipDialog
			 
                var coords = dojo.coords(ev.target, true);
                dojo.style(ttd.domNode, "position", "absolute");
                dojo.style(ttd.domNode, "top", coords.y + 10 + "px");
                dojo.style(ttd.domNode, "left", coords.x - 180 + "px");
                dojo.style(ttd.domNode, "zIndex", 10000);
			 //Aug 26,2009 Adam C Mills
			 //Updating coordinates of physical view as well ... no idea what the above positioning does exactly
                dojo.style(dojo.byId('zipEntryDialog'), "top", coords.y + 10 + "px");
                dojo.style(dojo.byId('zipEntryDialog'), "left", coords.x - 180 + "px");			 
                
                // Startup the TooltipDialog
                ttd.startup();
                    
                return false;
            });
        });
    },
    
    
    //TODO: Combine Find Store and Find More into single tooltip function
    _setupFindMoreLikeThis:function(){
        // Find Store via ZIP code dialog box on Product List pages.
        dojo.query('.findMoreLTTrigger').forEach(function(element){
            dojo.connect(element, 'onclick',function(ev){
                var tooltip = document.createElement('div');
                var id = 'findMoreLTEntryDialog'; 
                if(dojo.byId(id)) {
                    dojo.byId(id).parentNode.removeChild(dojo.byId(id));
                }
                tooltip.id = id;
                dojo.body().appendChild(tooltip);
            
                var ttd = new dijit.TooltipDialog({
                        title: "",
                        srcNodeRef:dojo.byId('findMoreLTEntryDialog1')
                });
                var closeButton = dojo.byId('findMoreLTClose');
                if(closeButton) {
                    ttd.connect(closeButton,'onclick',function(e){
                        ttd.destroy();
                    });
                }
                            
                    // Set up closing mechanisms
                    ttd.connect(ttd,'onLoad',function(e){
                        if (dojo.isIE && dojo.isIE<7) { // fix dropdown bleedthru in IE6
                            //ttd.domNode.appendChild(document.createElement('iframe'));
                        }
                        setTimeout(function(){
                            ttd.connect(ttd.domNode,'onclick',function(e){
                                e.stopPropagation();
                                return false;
                            });
                            ttd.connect(dojo.doc,'onclick',function(e){
                                this.destroy();
                            });
                            var closeButton = dojo.byId('findMoreLTClose');
                            if(closeButton) {
                                ttd.connect(closeButton,'onclick',function(e){
                                    this.destroy();
                                });
                            }
                        },100); // timeout to workaround a race condition in IE
                    });
                
                // Set up location of TooltipDialog
                var coords = dojo.coords(ev.target, true);
                dojo.style(ttd.domNode, "position", "absolute");
                dojo.style(ttd.domNode, "left", coords.x - 180 + "px");
                dojo.style(ttd.domNode, "zIndex", 10000);
                
                // Startup the TooltipDialog
                ttd.startup();
                    
                return false;
            });
        });
    },
    
    
    _setupFindMore:function(){
        // Find Store via ZIP code dialog box on Product List pages.
        dojo.query('.findMoreTrigger').forEach(function(element){
            dojo.connect(element, 'onclick',function(ev){
                var tooltip = document.createElement('div');
                var id = 'findMoreDialog';
                if(dojo.byId(id)) dojo.byId(id).parentNode.removeChild(dojo.byId(id));
                tooltip.id = id;
                dojo.body().appendChild(tooltip);
                var ttd = new dijit.TooltipDialog({
                        title: "", 
                        href: "modals/find_more.html"
                }, tooltip);
                var closeButton = dojo.byId('findMoreClose');
                if(closeButton) {
                    ttd.connect(closeButton,'onclick',function(e){
                        ttd.destroy();
                    });
                }
                
                // Set up closing mechanisms
                ttd.connect(ttd,'onLoad',function(e){
                    if (dojo.isIE && dojo.isIE<7) { // fix dropdown bleedthru in IE6
                        //ttd.domNode.appendChild(document.createElement('iframe'));
                    }
                    setTimeout(function(){
                        ttd.connect(ttd.domNode,'onclick',function(e){
                            e.stopPropagation();
                            return false;
                        });
                        ttd.connect(dojo.doc,'onclick',function(e){
                            this.destroy();
                        });
                        var closeButton = dojo.byId('findMoreClose');
                        if(closeButton) {
                            ttd.connect(closeButton,'onclick',function(e){
                                this.destroy();
                            });
                        }
                    },100); // timeout to workaround a race condition in IE
                });
                
                // Set up location of TooltipDialog
                var coords = dojo.coords(ev.target, true);
                dojo.style(ttd.domNode, "position", "absolute");
                dojo.style(ttd.domNode, "top", coords.y + 10 + "px");
                dojo.style(ttd.domNode, "left", coords.x - 180 + "px");
                dojo.style(ttd.domNode, "zIndex", 10000);
                
                // Startup the TooltipDialog
                ttd.startup();
                    
                return false;
            });
        });
    },
    _setupRelatedProducts:function() {
        var $relatedProducts = dojo.query('div.prod-grouping');
        $relatedProducts.forEach(function(el){
            var $header = dojo.query('h3',el)[0];
            var $list = dojo.query('ul',el)[0];
            var $trigger = dojo.doc.createElement('a');
            $trigger.setAttribute("href","javascript:void(0);");
            $trigger.className = 'icon-expand';
            dojo.place($trigger,$header,'first');
            var _show = dojo.hasClass(el,'open');
            if(!_show) {
                dojo.addClass($list,'hidden');
            } else {
                dojo.addClass($trigger,'open');
            }
            dojo.connect($trigger,'onclick',function(){
                if($list) {
                    if(dojo.hasClass($list,'hidden')) {
                        dojo.removeClass($list,'hidden');
                        dojo.addClass($trigger,'open');
                    } else {
                        dojo.addClass($list,'hidden');
                        dojo.removeClass($trigger,'open');
                    }
                }
            });
        });
    },
    _setupGiftcardAmount:function(){
        var selectAmount = dojo.byId('giftcard-value')
        if(selectAmount){
        dojo.connect(selectAmount,'onchange',function(){
            if(selectAmount.value == "other") {
                if(dojo.byId('giftcard-other-amount')) dojo.addClass(dojo.byId('giftcard-other-amount'),'open')
            } else {
                if(dojo.byId('giftcard-other-amount')) dojo.removeClass(dojo.byId('giftcard-other-amount'),'open')
            }
        });
        }
    },
    _setupGiftcardOccasion:function(){
        var aOccasionImgList = new Array("default", "congratulations", "thank-you", "thinking" ,"birthday" ,"seasonal" ,"fathers-day" ,"mothers-day" ,"anniversary")
        var selectOccasion = dojo.byId('giftcard-occasion')
        var imgOccasion = dojo.byId('giftcard-occasion-img')
        if(imgOccasion && selectOccasion){
        dojo.connect(selectOccasion,'onchange',function(){
            imgOccasion.src = "/wcsstore/B2BDirectStorefrontAssetStore/images/fpo/ph_giftcard_" + aOccasionImgList[selectOccasion.selectedIndex] + ".gif";
        });
        }
    },
    _postQuickviewLoad:function(prodId, domNode){
        lowes.catalog._mapQuickViewData(prodId);
        lowes.common._setupContextHelp('modal-content');
        lowes.common._setupHoverTips('modal-content');
        //initDrag();
       // console.log("parse", domNode);
    //    if(!domNode.hasAttribute("isParsed")) {
    //        domNode.setAttribute("isParsed", "true");
            dojo.parser.parse(domNode);
			document.getElementsByName('spanQV').onLoad = lowes.common._setupContextHelp(domNode);
    //    }
        
    },
    _postDemoLoad:function(prodId, containerNode){
        dojo.query('.quickview-link').forEach(function(elm){
            dojo.connect(elm, 'onclick', null, function(e){
                e.preventDefault();
                lowes.common.createFloatPanel(e.target.href,"Quick View",prodId,"quickview-modal");
            });
        });
        if(dojo.hasClass(containerNode, 'demo-modal')) {
            lowes.catalog._mapDemoModal(prodId, containerNode);    
        }
        if(dojo.hasClass(containerNode, 'large-image-modal')) {
            lowes.catalog._mapLargeImageModal(prodId, containerNode);
        }
        
    },
    _escapeQuotes:function(altImage){
    	/*
    	 * This escapes the alt of the quick view images to display the quotes correctly.
    	*/
    	var auxAltImage = altImage;
    	var doubleQuotes = "&#034;";
    	var simpleQuote = "&#039;";
    	while(auxAltImage.indexOf(doubleQuotes) > -1 || auxAltImage.indexOf(simpleQuote) > -1){
    		if (auxAltImage.indexOf(doubleQuotes) > -1){
    			auxAltImage = auxAltImage.replace(doubleQuotes,"\"");
    		}else{
    			auxAltImage = auxAltImage.replace(simpleQuote,"\'");
    		}
    	}
    	return auxAltImage;
    
    }, 
	_mapQuickViewData:function(prodId){
		/* 
		 * This takes the QuickView template (/catalog/quickview/quickView.html) 
		 * and adds in the content via a JSON objects present on the Product List page.
		*/
		
		// Static product data
		var oThisProd = eval("prodData." + prodId);
		if (!oThisProd) return;
		
		// if "oThisProd.price" exist then this function called from Product Comparison, else it is called from Product List.
		if (!oThisProd.price){
			
			           //var strBrowserInfo = navigator.userAgent.toLowerCase();
                        // Browser Information for Defect# 10011
                        // This code will be executed when the Quick View pop up is called from Product List page.
                        // Price/Availability information
                        var oThisPriceAvail = dojo.getObject("lowes.quickview.productPriceAvailData."+prodId);
                        if (!oThisPriceAvail) return;
                
                        /**
                                Fix for Defect# 10011, Setup Event Where If Unknown Error Occurs, Try to Recover by Setting Image Back to That of Product. If Error Happens Again, Clear Event to Stop Infinite Loop
                        **/
                        if (dojo.isFF >= 3 && dojo.isFF < 3.5)
                        {
                                // Store a Copy of the Path
                                Image.prototype.strSourcePath = "";
                                Image.prototype.nCalls = 0;
                                Image.prototype.nDojoConnectID = 0;
                        }
                                
                        // Image and Demo area
                        var $displayImage = document.getElementById('original-image');
                        if($displayImage) {
                        
                                /**
                                        Fix for Defect# 10011
                                **/
                                if (dojo.isFF >= 3 && dojo.isFF < 3.5)
                                {
                                        $displayImage.strSourcePath = oThisProd.prodImages.displayImage.path;
                                        
                                        $displayImage.nDojoConnectID = dojo.connect($displayImage, "onerror", function()
																  {
																		  if (this.nCalls < 1)
																		  {
																		  this.src = this.strSourcePath;
																				  this.nCalls++;
																		  }
																		  else
																		  {
																				  dojo.disconnect(this.nDojoConnectID);
																		  }
																  });
                                }
                
                                $displayImage.src = oThisProd.prodImages.displayImage.path;     
                        //      $displayImage.width = oThisProd.prodImages.displayImage.width;
                        //      $displayImage.height = oThisProd.prodImages.displayImage.height;
                                // Strip any HTML from name string
                                var nameString = oThisProd.name;
                                var strippedName = nameString.replace(/(<([^>]+)>)/ig,""); 
                                
                                //escaped the single quote and double quote for quick view image alt
                                strippedName = lowes.catalog._escapeQuotes(strippedName);
                                
                                $displayImage.alt = strippedName;
			}
			// Product Information
			var $prodLink = "<a href=\"" + oThisProd.links.prodDetail + "\">" + oThisProd.name + "</a>";
			var $prodTitle = document.getElementById('prod-title');
			if($prodTitle) $prodTitle.innerHTML = $prodLink;
			var $itemInfo = document.getElementById('item-info');
			if($itemInfo) $itemInfo.innerHTML = oThisProd.itemInfo;
			var $rating = document.getElementById('rating');
			if($rating) $rating.innerHTML = oThisProd.rating;
			var $prodDisc = document.getElementById('prod-disclaimer');
			if($prodDisc) $prodDisc.innerHTML = oThisProd.disclaimer;
			
			if(oThisPriceAvail.needZIP == true) {
				var $pricingBlock = document.getElementById('pricing-block');
				$pricingBlock.innerHTML = oThisProd.ZIPform;
			} else {
				var $rebate = document.getElementById('rebate');
				if($rebate) $rebate.innerHTML = oThisProd.rebate;
				var $price = document.getElementById('price');
				if($price) $price.innerHTML = oThisPriceAvail.price;
				var $promoMessage = document.getElementById('promo-message');								
				if ($promoMessage) $promoMessage.innerHTML = oThisPriceAvail.promoMessage;
				var $freeShipping = document.getElementById('prod-free-shipping');
				if ($freeShipping) $freeShipping.innerHTML = oThisPriceAvail.freeShipping;
				var _priceMessaging = 0;
				var $priceMessaging = document.getElementById('price-messaging');
				var $wasPrice = document.getElementById('was-price');
				if ($wasPrice) {
					if(oThisPriceAvail.wasPrice != '') {
						$wasPrice.innerHTML = oThisPriceAvail.wasPrice;
						_priceMessaging ++;
					} 
				}
				var $saveMessage = document.getElementById('save-message');
				if ($saveMessage) {
					if(oThisPriceAvail.saveMessage != '') {
						$saveMessage.innerHTML = oThisPriceAvail.saveMessage;
						_priceMessaging ++;
					}
				} 
				
				if (_priceMessaging == 0) {
					dojo.addClass($priceMessaging, 'hidden');
				}
				var $internetOnly = document.getElementById('internet-only');
				if ($internetOnly) {
					if(oThisPriceAvail.internetOnly != '') {
						$internetOnly.innerHTML = oThisPriceAvail.internetOnly;
					} else {
						dojo.addClass($internetOnly, 'hidden');
					}
				}
				var $addToCart = document.getElementById('buy-now');
				if ($addToCart) {
					if(oThisPriceAvail.addToCart) {
						if(oThisPriceAvail.addToCart.canPurchase == true) {
							dojo.removeClass($addToCart, 'hidden');
						}	
						var $cart = document.getElementById('cart');
						if ($cart) $cart.innerHTML = oThisPriceAvail.addToCart.cartLink;
						var $wishList = document.getElementById('wish-list');
						if($wishList) $wishList.innerHTML = oThisPriceAvail.addToCart.wishList;
						var $giftRegistry = document.getElementById('gift-registry');
						if($giftRegistry) $giftRegistry.innerHTML = oThisPriceAvail.addToCart.giftRegistry;
					}
				}
				var $availablity = document.getElementById('availability-message');
				if ($availablity && oThisPriceAvail.available) {
					if(oThisPriceAvail.available.isAvailable == true) {
						dojo.removeClass($availablity, 'hidden');
						$availablity.innerHTML = '<p>'+oThisPriceAvail.available.message+'</p>';
					}
				}
			}
			
			if (oThisProd.links) {
				var $detailLink = document.getElementById('prod-detail');
				if($detailLink) $detailLink.href = oThisProd.links.prodDetail;;
			}
		}else{
		
		// This code will be executed when the Quick View pop up is called from Product Comparison page.
			var $displayImage = document.getElementById('original-image');
	        if($displayImage) {
	            $displayImage.src = oThisProd.prodImages.displayImage.path;    
	            $displayImage.width = oThisProd.prodImages.displayImage.width;
	            $displayImage.height = oThisProd.prodImages.displayImage.height;
	            // Strip any HTML from name string
	            var nameString = oThisProd.name;
	            var strippedName = nameString.replace(/(<([^>]+)>)/ig,""); 
	            $displayImage.alt = strippedName;
	        }
	        // Product Information
	        var $prodLink = "<a href=\"" + oThisProd.links.prodDetail + "\">" + oThisProd.name + "</a>";
	        var $prodTitle = document.getElementById('prod-title');
	        if($prodTitle) $prodTitle.innerHTML = $prodLink;
	        var $itemInfo = document.getElementById('item-info');
	        if($itemInfo) $itemInfo.innerHTML = oThisProd.itemInfo;
	        var $rating = document.getElementById('rating');
	        if($rating) $rating.innerHTML = oThisProd.rating;
	        var $prodDisc = document.getElementById('prod-disclaimer');
	        if($prodDisc) $prodDisc.innerHTML = oThisProd.disclaimer;
	        // Pricing Info
	        if(oThisProd.needZIP == true) {
	            var $pricingBlock = document.getElementById('pricing-block');
	            if($pricingBlock) $pricingBlock.innerHTML = oThisProd.ZIPform;
	        } else {
	            var $rebate = document.getElementById('rebate');
	            if($rebate) $rebate.innerHTML = oThisProd.rebate;
	            var $price = document.getElementById('price');
	            if($price) $price.innerHTML = oThisProd.price;
	            var $promoMessage = document.getElementById('promo-message');
	            if ($promoMessage) $promoMessage.innerHTML = oThisProd.promoMessage;
	            var $freeShipping = document.getElementById('prod-free-shipping');
	            if ($freeShipping) $freeShipping.innerHTML = oThisPriceAvail.freeShipping;								
	            var _priceMessaging = 0;
	            var $priceMessaging = document.getElementById('price-messaging');
	            var $wasPrice = document.getElementById('was-price');
	            if ($wasPrice) {
	                if(oThisProd.wasPrice != '') {
	                    $wasPrice.innerHTML = oThisProd.wasPrice;
	                    _priceMessaging ++;
	                } 
	            }
	            var $saveMessage = document.getElementById('save-message');
	            if ($saveMessage) {
	                if(oThisProd.saveMessage != '') {
	                    $saveMessage.innerHTML = oThisProd.saveMessage;
	                    _priceMessaging ++;
	                }
	            } 
	            if (_priceMessaging == 0) {
	                if($priceMessaging) dojo.addClass($priceMessaging, 'hidden');
	            }
	            var $internetOnly = document.getElementById('internet-only');
	            if ($internetOnly) {
	                if(oThisProd.internetOnly != '') {
	                    $internetOnly.innerHTML = oThisProd.internetOnly;
	                } else {
	                    dojo.addClass($internetOnly, 'hidden');
	                }
	            }
	            var $addToCart = document.getElementById('buy-now');
	            if ($addToCart) {
	                if(oThisProd.addToCart.canPurchase == true) {
	                    dojo.removeClass($addToCart, 'hidden');
	                }
	                var $cart = document.getElementById('cart');
	                if ($cart) $cart.innerHTML = oThisProd.addToCart.cartLink;
	                var $wishList = document.getElementById('wish-list');
	                if($wishList) $wishList.innerHTML = oThisProd.addToCart.wishList;
	                var $giftRegistry = document.getElementById('gift-registry');
	                if($giftRegistry) $giftRegistry.innerHTML = oThisProd.addToCart.giftRegistry;
	            }
	            var $availablity = document.getElementById('availability-message');
	            if ($availablity) {
	                if(oThisProd.available.isAvailable == true) {
	                    dojo.removeClass($availablity, 'hidden');
	                    $availablity.innerHTML = '<p>'+oThisProd.available.message+'</p>';
	                }
	            }
	        }
	        var $detailLink = document.getElementById('prod-detail');
	        if($detailLink) $detailLink.href = oThisProd.links.prodDetail;
		}
	},
    _mapDemoModal:function(prodId, containerNode) {
        /* 
         * This takes the Larger Image Modal template (/catalog/quickview/quickViewLargerImage.html) 
         * and adds in the content via a JSON object present on the Product List page.
        */
        var oThisProd = eval("prodData." + prodId);
        if (!oThisProd) return;
        var $prodLink = "<a href=\"" + oThisProd.links.prodDetail + "\">" + oThisProd.name + "</a>";
        var $prodTitle = document.getElementById('prod-title');
        if($prodTitle) $prodTitle.innerHTML = $prodLink;
        var $prodDemo = document.getElementById('prod-demo');
        if($prodDemo) $prodDemo.innerHTML = oThisProd.demo;
        dojo.query('a.prod-detail-link', containerNode).forEach(function(el){
            el.href = oThisProd.links.prodDetail;    
        });
    }, 
    _mapLargeImageModal:function(prodId, containerNode) {
        /* 
         * This takes the Larger Image Modal template (/catalog/quickview/quickViewLargerImage.html) 
         * and adds in the content via a JSON object present on the Product List page.
        */
        var oThisProd = eval("prodData." + prodId);
        if (!oThisProd) return;
        var $prodLink = "<a href=\"" + oThisProd.links.prodDetail + "\">" + oThisProd.name + "</a>";
        var $prodTitle = document.getElementById('prod-title');
        if($prodTitle) $prodTitle.innerHTML = $prodLink;
        var $largerImg = document.getElementById('prod-larger-image');
        if($largerImg) {
            $largerImg.src = oThisProd.prodImages.largeImage.path;
            $largerImg.width = oThisProd.prodImages.largeImage.width;
            $largerImg.height = oThisProd.prodImages.largeImage.height;
            // Strip any HTML from name string
            var nameString = oThisProd.name;
            var strippedName = nameString.replace(/(<([^>]+)>)/ig,""); 
            $largerImg.alt = strippedName;
        }
        dojo.query('a.prod-detail-link', containerNode).forEach(function(el){
            el.href = oThisProd.links.prodDetail;    
        });
    },    
    hideDojoTabs:function(id) {
        // This function hides the dojo tabs if there is only one tab.
        // It's used on the Product Detail page
        var $tabDijit = dijit.byId(id);
        if(!$tabDijit) return;
        // Find all of the elements needed
        var $tabPaneWrapper = dojo.byId(id);
        var $tabContainer = $tabDijit.containerNode;
        var $tabPane = dojo.byId(id+'_tablist');
        var $tabs = dojo.query('.dijitTab',$tabPane);
        // Add and remove CSS classes as necessary
        if ($tabs && $tabs.length <= 1) {
            if($tabPane) dojo.removeClass($tabPane,'dijitTabLabels-bottom');
            if($tabPane) dojo.addClass($tabPane,'dijitTabLabels-bottom-alt');
            if($tabContainer) dojo.addClass($tabContainer,'invert-tabs-alt');
            if($tabPaneWrapper) dojo.addClass($tabPaneWrapper,'invert-tabs-alt');
            $tabs.forEach(function(el){
                dojo.style(el,'display','none');
            });
        } else {
            return;
        }
    }
}
        
dojo.addOnLoad(lowes.catalog.init);