/**
 * @author stevegolba
 */

var timerID = null;

var isAdminUser = (getQueryString('test') == 'steve' ? true : false);

$(document).ready(function() {
	//if(isAdminUser){
		$('#storelocations').load(function() {
		  this.style.height = this.contentWindow.document.body.offsetHeight + 'px';
		});
		//$('#storelocations').css('display','block');
	//}
	
	// Hide 'Welcome' link in top nav
	$("div#header div#logonav div#tabnav a:contains('Welcome')").css('display', 'none');
	
	var tabLabelsWithSubmenus = ['Products', 'Press', 'About', 'Blog', 'Contact', 'My Account', 'Wholesale Login'];
	for (var i = 0; i < tabLabelsWithSubmenus.length; i++) {
		var tabLabel = tabLabelsWithSubmenus[i];
		$("a.tablink:contains('" + tabLabel + "')")
			.bind('mouseenter', {'tabLabel': tabLabel}, function(e) {
				showCategorySubMenu(e.data.tabLabel);
			})
			.bind('mouseleave', null, function(e) {
				timerID = setTimeout('hideCategorySubMenu()', 1000);
			});
	}
	
	var categoryIDAry = ['245', '12', '14'];
	var categoryLabelAry = ['Products', 'About', 'Contact'];
	for (var i = 0; i < categoryIDAry.length; i++) {
		var thisCategoryID = categoryIDAry[i];
		var tabLabel = categoryLabelAry[i];
		$("div#cat" + thisCategoryID + "-submenu")
			.bind('mouseenter', {'tabLabel': tabLabel}, function(e) {
				showCategorySubMenu(e.data.tabLabel);
			})
			.bind('mouseleave', null, function(e) {
				timerID = setTimeout('hideCategorySubMenu()', 1000);
			});
	}
	
	var reloginHREF = $("div#relogin-div a:contains('Relog In')").attr('href');
	// If 'Sign Out' link is displayed, it means the customer is already logged in, and the top nav and
	// footer 'My Account' links can take the user to the customer center.
	// However, if the 'Register' & 'Log In' links are displayed, the customer is not yet completely
	// logged in, and the 'My Account' links should go to the relogin link. Once logged in, they will
	// need to click one of the 'My Account' links again to go to the customer center.
	if (!($("span.loginlink:contains('Sign')").length)) { // Searching for 'Sign Out' didn't work, but 'Sign' did.
		$("div#header div#logonav div#tabnav a:contains('My Account')").attr('href', reloginHREF);
		$("div#div__footer div.footer-div a:contains('My Account')").attr('href', reloginHREF);
	}
	// Set HREF of 'Wholesale Login' link in to the relogin link
	$("div#header div#logonav div#tabnav a:contains('Wholesale Login')").attr('href', reloginHREF);
	
	// Check if on welcome page or Press page
	var onWelcomePage = ($("form[name='welcome'] input[name='category']").val() == '-101' ? true : false);
	var onPressPage = ($("form[name='form0'] input[name='category']").val() == '-108' ? true : false);
	
	//if (onWelcomePage || onPressPage) {
	if (onWelcomePage) {
		// Hide left nav menu column
		$("table#leftnavblock-table").css('display', 'none');
		
		// Remove content area left border
		$("div#middle").css('border-left', 'none');
		
		// Hide table row with 'Welcome' content title and next 'spacer' row
		$("tr#handle_welcomeMainPortlet td.medtextboldnolink:contains('Welcome')")
			.parent().css('display', 'none')
			.next().css('display', 'none');
	} else {
		// Set width of left nav table's parent td
		$("table#leftnavblock-table").parent().css('width', '204px');
		
		// Style left nav menu levels
		var maxColSpanVal = 10;
		for (navLevelNum = 1; navLevelNum <= 4; navLevelNum++) {
			var colSpanVal = maxColSpanVal - navLevelNum + 1;
			$("div#leftnavblock tr.portletHandle table tr td[colspan='" + colSpanVal + "'] a").addClass('level' + navLevelNum);
		}
		
		// Remove indenting for left nav menu level 2
		$("div#leftnavblock tr.portletHandle table tr td[colspan='9']").prev().children("img").attr('width', '0');
		
		// Remove the right margin of the right-most item in each category and item list cell
		$("td.category-list-cell-td").parentsUntil("tbody").children(":last-child").children().css('margin-right', '0');
		$("td.item-list-cell-td").parentsUntil("tbody").children(":last-child").children().css('margin-right', '0');
	}
	
	// Set top and left nav 'Products' links to go to 'Products > Shop by Product' page
	var shopByProductHREF = '/s.nl/c.1257897/n.1/sc.7/category.245/.f';
	$("a.tablink:contains('Products')").attr('href', shopByProductHREF);
	$("#leftnavblock a.dottedlink.level1:contains('Products')").attr('href', shopByProductHREF);
	
	// Set left nav 'Gift Cards' link to go to 'Gifts Cards > Gift Card' item detail page
	var giftCardItemPageHREF = '/s.nl/c.1257897/n.1/it.A/id.170/.f';
	$("#leftnavblock a.level2:contains('Gift Cards')").attr('href', giftCardItemPageHREF);
	
	// Adjust space between 'What's New' (241) and 'Sale Items' (251) description and item list
	var categoryID = $("input[type='hidden'][name='category']").val();
	if (categoryID && (categoryID == '241' || categoryID == '251')) {
		$("div#main div.category-list div.item-cell").css('margin-top', '8px');
	}
	
	manipulateLeftNavShopByPatternLinks();
	
	manipulateQtyInput();
	
	var sizeSelectorOnly = false;
	if (window.categoryParentName && window.categoryParentName == "Products : Shop by Pattern") {
		sizeSelectorOnly = true;
	}
	manipulateSizeAndPatternSelectors(sizeSelectorOnly);
	
	// On 'Shop by Pattern' item list page and 'Search Results' item list page, 
	// remove width="%1" attribute from 'td' nodes. They're causing the Quantity 
	// label & field and 'Add to Cart' button to wrap.
	if (window.categoryParentName && window.categoryParentName == "Products : Shop by Pattern") {
		$("div.pattern-product-info td[width='1%']").removeAttr('width');
	}
	if (getQueryString('search')) {
		$("div.search-product-info td[width='1%']").removeAttr('width');
	}
	
	// For Gift Cards
	manipulateDesignSelector();
	manipulateGiftCardPage();
	
	restyleCartAndMyAccount();
	manipulateMyAccount();
	
	manipulateLoginPage();
	
	styleSearch();
	
	/*
	var id = getQueryString('id', '');
	// If on page other than item detail
	if (!id && window.location.href.indexOf('/id.') == -1) {
		// Hide breadcrumbs
		$("#breadcrumbs").css('display','none');
	}
	*/
	
	/*
	MM_preloadImages(
		"/c.1118754/site/images/toporangearea.jpg",
		"/c.1118754/site/images/toporangeareadark.jpg",
		"/c.1118754/site/images/toporangeareahilite.jpg"
	);
	*/
});

function restyleCartAndMyAccount() {
	var hasCartMainPortlet = ($("tr#handle_cartMainPortlet").length ? true : false);
	var hasLoginMainPortlet = ($("tr#handle_loginMainPortlet").length ? true : false);
	var hasLeftNavCheckout = ($("div#leftnavblock a.dottedlink.level1:contains('Checkout')").length ? true : false);
	var hasMyAccountHeader = ($("div#middle td.textboldnolink:contains('My Account')").length ? true : false);
	var hasPTContainer = ($("div#div__body div.pt_container").length ? true : false);
	var hasUnavailableOptionsHeader = ($("div#middle td.medtextboldnolink:contains('Unavailable Options')").length ? true : false);
	
	if (hasCartMainPortlet || hasLoginMainPortlet || hasLeftNavCheckout || hasMyAccountHeader || hasPTContainer || hasUnavailableOptionsHeader) {
		// If left nav is displayed
		if ($("div#leftnavblock").length) {
			// Add left & right padding to the content area
			$("div#middle").css('padding', '0 24px');
		} else {
			// Remove content area's left dotted border
			$("div#div__body div#middle").css('border', 'none');
		}
		
		// Reinstate base margins and padding
		$("div#div__body").css('margin', '0 24px');
		
		$("div#div__body :input").css('padding', '2px');
		
		$("div#div__body p").css('margin', '1em 0');
		
		if (hasMyAccountHeader) {
			$("div#middle td").css('padding', '2px');
		} else {
			$("div#div__body td").css('padding', '2px');
			
			if (hasPTContainer) {
				$("div#div__body tr.pgBntG td").css('padding', '0');
				$("div#div__body tr.tabBnt td").css('padding', '0');
			}
		}
		
		if (hasUnavailableOptionsHeader) {
			$("div#middle td.bgltmedtext").css('background-color', '#F7F0E8');
		}
		
		$(".greytitle").css('color', '#E20177');
		$(".checkoutprogresstext").css('color', '#794400');
		
		$(".bgbutton").addClass('cart-myacct-btn').css('padding', '3px 5px');
		$(".nlbutton").addClass('cart-myacct-btn').css('padding', '3px 5px');
		
		$("div#middle").css('padding', '0 24px');
	}
}

function manipulateMyAccount() {
	$("a.dottedlink:contains('Set Preferences')").parent().parent().remove();
	$("a.dottedlink:contains('Campaign Subscription Center')").parent().parent().remove();
	
	$("a.dottedlink:contains('Re-order Items')").parent().remove();
}

function displayContentFullWidth() {
	// Hide left nav column
	$("td#leftnavblock-outertd")
		.css('display', 'none');
	
	// Remove content area's left dotted border
	$("div#middle")
		.css('border', 'none');
	
	// Set width of content div
	$("div.category-list")
		.css('width', '816px')
		.css('margin-left', '48px')
		.css('margin-right', '48px');
	$("div.content-div")
		.css('width', '816px');
}

function setPressDetailContentDivWidth() {
	var onPressDetailPage = ($(".press-left").length ? true : false);
	
	if (onPressDetailPage) {
		$("#content-div").css('width', '392px');
	}
}

function manipulateLeftNavShopByPatternLinks() {
	// Add param to href of left nav 'Shop by Pattern' items so they know which pattern to display the item in
	
	// Find left nav tbody node 'Shop by Pattern' link
	var leftNavShopByPatternTBody = $("div#leftnavblock a.level2:contains('Shop by Pattern')").parent().parent().parent();
	
	if (leftNavShopByPatternTBody.length) {
		var inShopByPatternBranch = false;
		var pattNameWithEscapedSpaces = '';
		
		// Get all left nav rows
		var rows = $(leftNavShopByPatternTBody).children();
		
		for (var i = 0; i < rows.length; i++) {
			var row = rows[i];
			
			// If we're now 'under' the 'Shop by Pattern' row
			if (inShopByPatternBranch) {
				// Look for the anchor node in this row
				var rowAnchors = $(row).find("td a");
				
				if (rowAnchors.length == 1) {
					var rowAnchor = rowAnchors[0];
					
					// If this anchor is level2 ('Shop by Products', 'Shop by Pattern', etc. level)
					if ($(rowAnchor).hasClass('level2')) {
						// Then we must be out of the 'Shop by Pattern' branch
						inShopByPatternBranch = false;
					}
					
					// If this anchor is level3 (pattern names)
					if ($(rowAnchor).hasClass('level3')) {
						// Get the pattern name
						pattName = $(rowAnchor).text();
						pattNameWithEscapedSpaces = pattName.replace(/\s/g, '%20');
					}
					
					// If this anchor is level 4 (item names under a pattern name)
					if ($(rowAnchor).hasClass('level4') && pattNameWithEscapedSpaces) {
						// Add a parameter to the anchor's href to tell it what pattern to display the item in
						var href = $(rowAnchor).attr('href');
						if (href) {
							$(rowAnchor).attr('href', href + '?patt=' + pattNameWithEscapedSpaces);
						}
					}
				}
			}
			
			if ($(row).text().indexOf('Shop by Pattern') != -1) {
				// We've found the 'Shop by Pattern' row
				inShopByPatternBranch = true;
			}
		}
	}
}

function manipulateQtyInput() {
	var qtyInput = $("input#qty");
	qtyInput.before('<span class="item-detail-desc">Quantity:</span>&nbsp;&nbsp;');
	
	var qtyParents = qtyInput.parentsUntil('tr');
	if (qtyParents.length) {
		$(qtyParents[qtyParents.length-1])
			.attr('width', '')
			.css('width', '110px');
	}
}

function manipulateSizeAndPatternSelectors(sizeSelectorOnly) {
	var patternCustColNum = null;
	var sizeCustColNum = null;
	var patternSelRow = null;
	var sizeSelRow = null;
	
	var itemCellAry = $(".topproductinfo");
	if (!itemCellAry.length) {
		itemCellAry = $(".search-item-cell");
	}
	
	for (var i = 0; i < itemCellAry.length; i++) {
		var patternCustColNum = null;
		var sizeCustColNum = null;
		var patternSelRow = null;
		var sizeSelRow = null;
		
		var itemCell = itemCellAry[i];
		
		if (!sizeSelectorOnly) {
			var patternLabelSpan = $(itemCell).find("span[id^='custcol'][id$='_fs_lbl']:contains('Pattern')");
			var patternCustColID = patternLabelSpan.attr('id');
			if (patternCustColID) {
				var regExResults = patternCustColID.match(/^custcol(\d+)_fs_lbl$/);
				if (regExResults != null && regExResults.length > 1) {
					var numAsStr = regExResults[1];
					patternCustColNum = parseInt(numAsStr);
				}
			}
		}
		
		var sizeLabelSpan = $(itemCell).find("span[id^='custcol'][id$='_fs_lbl']:contains('Size')");
		var sizeCustColID = sizeLabelSpan.attr('id');
		if (sizeCustColID) {
			regExResults = sizeCustColID.match(/^custcol(\d+)_fs_lbl$/);
			if (regExResults != null && regExResults.length > 1) {
				var numAsStr = regExResults[1];
				sizeCustColNum = parseInt(numAsStr);
			}
		}
		
		if (!sizeSelectorOnly) {
			if (patternCustColNum) {
				var patternSelParents = patternLabelSpan.parentsUntil('tbody');
				if (patternSelParents.length) {
					patternSelRow = patternSelParents[patternSelParents.length - 1];
				}
			}
		}
		
		if (sizeCustColNum) {
			var sizeSelParents = sizeLabelSpan.parentsUntil('tbody');
			if (sizeSelParents.length) {
				sizeSelRow = sizeSelParents[sizeSelParents.length-1];
			}
		}
		
		// No longer reversing position of Pattern and Size - breaks search results' 'Add to Cart' feature
		/*
		if (!sizeSelectorOnly) {
			if (patternCustColNum < sizeCustColNum && patternSelRow && sizeSelRow) {
				$(sizeSelRow).after($(patternSelRow));
			}
		}
		*/
		
		if (sizeSelRow) {
			$(itemCell).find("span#custcol" + sizeCustColNum + "_fs_lbl a")
				.attr('onmouseover', '')
				.attr('onmouseout', '')
				.addClass('item-detail-desc');
			
			$(itemCell).find("span#custcol" + sizeCustColNum + "_fs select")
				.addClass('item-detail-desc');
			
			var html = '<tr><td colspan="2"></td><td><div class="item-detail-desc item-sizing-chart-link">See <a href="http://shopping.netsuite.com/s.nl/c.1257897/n.1/sc.7/category.256/.f" target="_blank">Sizing Chart</a></div></td></tr>';
			$(html).insertAfter(sizeSelRow);
		}
		
		if (!sizeSelectorOnly) {
			if (patternSelRow) {
				$(itemCell).find("span#custcol" + patternCustColNum + "_fs_lbl a")
					.attr('onmouseover', '')
					.attr('onmouseout', '')
					.addClass('item-detail-desc');
				
				$(itemCell).find("span#custcol" + patternCustColNum + "_fs select")
					.addClass('item-detail-desc');
				
				var patternSelEl = $(itemCell).find("#custcol" + patternCustColNum);
				if (patternSelEl.length) {
					if (document.addEventListener) {
						patternSelEl.get(0).addEventListener('change', patternSelectChanged, false);
					} else if (document.attachEvent) {
						patternSelEl.get(0).attachEvent('onchange', patternSelectChanged);
					}
				}
				
				if (!getQueryString('search')) {	
					var html = '<tr><td colspan="2"></td><td><div class="item-detail-desc item-patterns-instr">Patterns (click to see larger view):</div></td></tr>';
					html += '<tr><td colspan="2"></td><td>';
					html += getPatternSwatchHTML(patternCustColNum);
					html += '</td></tr>';
					html += '<tr><td colspan="3">&nbsp;</td></tr>';
					$(html).insertAfter(patternSelRow);
				}
			}
		}
	}
}

function manipulateDesignSelector() {
	$("select#custcol_giftcarddesign").addClass('inputreq');
	
	var designFieldID = 'custcol_giftcarddesign';
	var designLabelSpan = $("span#" + designFieldID + "_fs_lbl");
	
	var designSelRow = null;
	if (designLabelSpan) {
		designLabelSpan.prepend('<img class="required_icon" title="Required Field" src="/images/chiles/pageTitle/required.png">');
		
		var designSelParents = designLabelSpan.parentsUntil('tbody');
		if (designSelParents.length) {
			designSelRow = designSelParents[designSelParents.length - 1];
		}
	}
	
	if (designSelRow) {
		$("span#" + designFieldID + "_fs_lbl a")
			.attr('onmouseover', '')
			.attr('onmouseout', '')
			.addClass('item-detail-desc');
		
		$("span#" + designFieldID + "_fs select")
			.addClass('item-detail-desc');
		var designSelEl = document.getElementById(designFieldID);
		if (designSelEl) {
			if (document.addEventListener) {
				designSelEl.addEventListener('change', designSelectChanged, false);
			} else if (document.attachEvent) {
				designSelEl.attachEvent('onchange', designSelectChanged);
			}
		}
		
		var html = '<tr><td colspan="2"></td><td><div class="item-detail-desc item-patterns-instr">Pick your Design (click to see larger view):</div></td></tr>';
		html += '<tr><td colspan="2"></td><td>';
		html += getDesignSwatchHTML(designFieldID);
		html += '</td></tr>';
		html += '<tr><td colspan="3">&nbsp;</td></tr>';
		$(html).insertAfter(designSelRow);
		
	}
}

function getPatternSwatchHTML(custColNum) {
	var html = '';
	var patternSelectOptions = $("span#custcol" + custColNum + "_fs select#custcol" + custColNum + " option");
	for (var i = 0; i < patternSelectOptions.length; i++) {
		var pattOpt = $(patternSelectOptions[i]);
		var pattID = pattOpt.val();
		if (pattID) {
			var pattName = pattOpt.text();
			var pattNameWithUnderscores = pattName.replace(/\s/g, '_');
			var fileName = '/c.1257897/site/images/patterns/' + pattNameWithUnderscores + '_t.jpg';
			html += '<a class="item-pattern-link" href="javascript:void(0);" onmouseover="" onclick="patternSwatchClicked(' + custColNum + ', ' + i + ', \'' + pattNameWithUnderscores + '\');">';
			html += '<img class="item-pattern-img" src="' + fileName + '" />';
			html += '<div class="item-pattern-caption">' + pattName + '</div>';
			html += '</a>';
		}
	}
	return html;
}

function getDesignSwatchHTML(designFieldID) {
	var html = '';
	var designSelectOptions = $("span#" + designFieldID + "_fs select#" + designFieldID + " option");
	for (var i = 0; i < designSelectOptions.length; i++) {
		var designOpt = $(designSelectOptions[i]);
		var designID = designOpt.val();
		if (designID) {
			var designName = designOpt.text();
			var designNameWithUnderscores = designName.replace(/\s/g, '_');
			var fileName = '/c.1257897/site/images/designs/' + designNameWithUnderscores + '_t.jpg';
			html += '<a class="item-pattern-link" href="javascript:void(0);" onmouseover="" onclick="designSwatchClicked(\'' + designFieldID + '\', ' + i + ', \'' + designNameWithUnderscores + '\');">';
			html += '<img class="item-pattern-img" src="' + fileName + '" />';
			html += '<div class="item-pattern-caption">' + designName + '</div>';
			html += '</a>';
		}
	}
	return html;
}

function patternSwatchClicked(custColNum, selOptionIdx, pattNameWithUnderscores) {
	var patternSelEl = document.getElementById('custcol' + custColNum);
	if (patternSelEl) {
		patternSelEl.options[selOptionIdx].selected = true;
		displayLargeProductInPatternImg(pattNameWithUnderscores);
		$(patternSelEl).trigger('change');
	}
}

function designSwatchClicked(designFieldID, selOptionIdx, designNameWithUnderscores) {
	var designSelEl = document.getElementById(designFieldID);
	if (designSelEl) {
		designSelEl.options[selOptionIdx].selected = true;
		displayLargeProductInPatternImg(designNameWithUnderscores);
		$(designSelEl).trigger('change');
	}
}

function patternSelectChanged() {
	// This part is in-progress, and will be completed if the client wants the Pattern
	// select lists on Search Results pages to change the item thumbnail image.
	// If they do want that, they'll need to copy all the thumbnail versions of items
	// in their various patterns to the "Web Site Hosting Files > Live Hosting Files > 
	// site > images > products", probably using the naming convention, 100_My_Pattern_t.jpg.
	/*
	if (isAdminUser) {
		var cellDiv = $(this).parentsUntil("div.search-item-cell").last().parent();
		
		if (cellDiv.length) {
			var cellDivID = $(cellDiv).attr('id');
			var divIDPrefix = 'search-item-';
			var idx = cellDivID.indexOf(divIDPrefix);
			
			if (idx != -1) {
				var startIdx = idx + divIDPrefix.length;
				var iID = cellDivID.substr(startIdx);
				
				if (iID) {
					var imgID = 'search-item-img-' + iID;
					
					var selIdx = this.selectedIndex;
					
					if (selIdx != null) {
						var optionVal = this.options[selIdx].value;
						
						if (optionVal) {
							var optionText = this.options[selIdx].text;
							
							if (optionText) {
								var pattNameWithUnderscores = optionText.replace(/\s/g, '_');
								//displayLargeProductInPatternImg(pattNameWithUnderscores);
							}
						}
					}
				}
			}
		}
	}
	*/
	
	var patternLabelSpan = $("span[id^='custcol'][id$='_fs_lbl']:contains('Pattern')");
	var patternCustColID = patternLabelSpan.attr('id');
	var patternCustColNum = null;
	if (patternCustColID) {
		var regExResults = patternCustColID.match(/^custcol(\d+)_fs_lbl$/);
		if (regExResults != null && regExResults.length > 1) {
			var numAsStr = regExResults[1];
			patternCustColNum = parseInt(numAsStr);
		}
	}
	
	if (patternCustColNum) {
		var patternSelectEl = document.getElementById("custcol" + patternCustColNum);
		if (patternSelectEl) {
			var selIdx = patternSelectEl.selectedIndex;
			if (selIdx != null) {
				var optionVal = patternSelectEl.options[selIdx].value;
				if (optionVal) {
					var optionText = patternSelectEl.options[selIdx].text;
					if (optionText) {
						var pattNameWithUnderscores = optionText.replace(/\s/g, '_');
						displayLargeProductInPatternImg(pattNameWithUnderscores);
					}
				}
			}
		}
	}
}

function designSelectChanged() {
	var designFieldID = 'custcol_giftcarddesign';
	var designLabelSpan = $("span#" + designFieldID + "_fs_lbl");
	var patternCustColNum = null;
	
	if (designLabelSpan) {
		var designSelectEl = document.getElementById(designFieldID);
		if (designSelectEl) {
			var selIdx = designSelectEl.selectedIndex;
			if (selIdx != null) {
				var optionVal = designSelectEl.options[selIdx].value;
				if (optionVal) {
					var optionText = designSelectEl.options[selIdx].text;
					if (optionText) {
						var designNameWithUnderscores = optionText.replace(/\s/g, '_');
						displayLargeProductInPatternImg(designNameWithUnderscores);
					}
				}
			}
		}
	}
}

function displayLargeAlternateImg(imgFileURL) {
	if (imgFileURL) {
		$(".col_imglarge img.prodimage").attr('src', imgFileURL);
	}
}

/*
function displayLargePatternImg(pattNameWithUnderscores) {
	if (pattNameWithUnderscores) {
		var fileName = '/c.1257897/site/images/patterns/' + pattNameWithUnderscores + '.jpg';
		$(".col_imglarge img.prodimage").attr('src', fileName);
	}
}
*/

function displayLargeProductInPatternImg(pattNameWithUnderscores) {
	if (pattNameWithUnderscores) {
		var itemID = $("input[type='hidden'][name='id']").val();
		
		if (itemID) {
			var fileName = '/c.1257897/site/images/products/' + itemID + '_' + pattNameWithUnderscores + '.jpg';
			$(".col_imglarge img.prodimage").attr('src', fileName);
		}
	}
}

function manipulateGiftCardPage() {
	// Hide 'Quantity' span
	$(".item-giftcard .topproductinfo span.item-detail-desc:contains('Quantity')").css('display', 'none');
	
	// Add a 'Required' asterisk to the 'Enter Amount' label
	$(".item-giftcard .topproductinfo div.item-detail-price td.smalltext").prepend('<img class="required_icon" title="Required Field" src="/images/chiles/pageTitle/required.png">');
	
	// Change the 'Recipient Email' label
	$("span#GIFTCERTRECIPIENTEMAIL_fs_lbl a").html('Recipient or<br />Purchaser Email');
	
	if (isAdminUser) {
		// Style the 'Send' label and select list
		$("span#custcol_giftcardsend_fs_lbl a")
			.attr('onmouseover', '')
			.attr('onmouseout', '')
			.addClass('item-detail-desc');
		$("select#custcol_giftcardsend")
			.addClass('inputreq')
			.addClass('item-detail-desc');
		
		// In the 'Send' select list, select the 'Gift Certificate email only' option as the default
		$("select#custcol_giftcardsend option:eq(0)").removeAttr('selected');
		$("select#custcol_giftcardsend option:eq(1)").attr('selected', 'selected');
		
		// Add some top margin to the Gift Certificate 'Add To Cart' button
		$(".item-giftcard .topproductinfo input#addtocart").css('margin-top', '5px');
	} else {
		$("span#custcol_giftcardsend_fs_lbl a").css('display', 'none');
		$("select#custcol_giftcardsend").css('display', 'none');
	}
}

function manipulateLoginPage() {
	var wholesaleAppTitle = "Wholesale Customer Application";
	var returningAndWholesaleTitle = "Returning and Wholesale Customers";
	var wholesaleText = "I'd like to learn more about carrying Peanut Shell products";
	
	var newCustomerRegistrationTable = $("form#newcust > table");
	//var newCustomersLink = $("input#register[value='Continue']");
	
	if (newCustomerRegistrationTable.length) {
		$(newCustomerRegistrationTable).attr('id', 'new-customer-reg-table');
		var tableRows = $("#new-customer-reg-table > tbody > tr");
		if (tableRows.length) {
			var lastTableRow = tableRows[tableRows.length - 1];
			
			var btnRowHTML = "<tr><td style=\"padding: 2px;\"><span id=\"tbl_wholesale-submitter\"><input type=\"button\" class=\"bgbutton cart-myacct-btn\" value=\"Continue\" id=\"wholesale-submitter\" name=\"wholesale-submitter\" /></span></td></tr>";
			$(btnRowHTML).insertAfter($(lastTableRow));
			var textRowHTML = "<tr><td style=\"padding: 2px;\">" + wholesaleText + "</td></tr>";
			$(textRowHTML).insertAfter($(lastTableRow));
			var titleRowHTML = "<tr><td id=\"wholesale-app-title\" class=\"greytitle\" colspan=\"1\">" + wholesaleAppTitle + "</td></tr>";
			$(titleRowHTML).insertAfter($(lastTableRow));
		}
		
		$("input#wholesale-submitter")
			.bind('click', null, function() {
				return(document.location.href = '/s.nl/c.1257897/n.1/sc.14/category.269/.f', true);
			});
	}
	
	// Commented out the moving of the Returning Customers login fields above the New Customers registration fields,
	// since it was causing an issue in which, when logging in as a returning customer, a message displayed stating 
	// you had not entered an email address when you had.
	/*
	else if (newCustomersLink.length) {
		var returningCustomersRow = [];
		var returningCustomersTitleCells = $("td.greytitle");
		for (var i = 0; i < returningCustomersTitleCells.length; i++) {
			var cell = returningCustomersTitleCells[i];
			if ($(cell).text() == returningAndWholesaleTitle) {
				returningCustomersRow = $(cell).parent("tr").parent("tbody").parent("table").parent("td").parent("tr");
				break;
			}
		}
		
		if (returningCustomersRow) {
			var parentTable = $(returningCustomersRow).parent("tbody").parent("table").attr('id', 'login-options-table');
			
			if (parentTable.length) {
				var parentTableRows = $(parentTable[0]).children("tbody").children("tr");
				if (parentTableRows.length == 4) {
					var rowIDs = ['newcustomers', 'spacer1', 'spacer2', 'returningcustomers'];
					for (var i = 0; i < parentTableRows.length; i++) {
						$(parentTableRows[i]).attr('id', rowIDs[i]+'-row');
					}
					
					$("tr#spacer1-row")
						.prependTo($(parentTable));
					$("tr#returningcustomers-row")
						.prependTo($(parentTable));
					var returningCustomersRows = $("tr#returningcustomers-row > td > table > tbody > tr");
					if (returningCustomersRows.length == 4) {
						$(returningCustomersRows[3]).remove();
					}
					
//					$("tr#newcustomers-row")
//						.clone()
//						.attr('id', 'wholesalecustomers-row')
//						.appendTo($(parentTable));
//					var wholesaleTableRows = $("tr#wholesalecustomers-row > td > table > tbody > tr");
//					for (var i = 0; i < wholesaleTableRows.length; i++) {
//						if (i == 0) {
//							$(wholesaleTableRows[i]).children("td").text(wholesaleAppTitle);
//						} else if (i == 1) {
//							$(wholesaleTableRows[i]).children("td").html(wholesaleText);
//						} else if (i == 2) {
//							$("tr#wholesalecustomers-row input#register[value='Continue']")
//								.attr('id', 'wholesale-register')
//								.attr('name', 'wholesale-register')
//								.attr('onclick', '')
//								.bind('click', null, function() {
//									return(document.location.href = '/s.nl/c.1257897/n.1/sc.14/category.269/.f', true);
//								});
//						}
//					}

				}
			}
		}
	}
	*/
}

function styleSearch() {
	// Style search portlet
	$("#search-inner-div td[valign='top'][align='left']").attr('align', 'right');
	$("#search-inner-div tr td.smalltextnolink:contains('Search')").parent().hide();
	$("#search-inner-div input[name='search']")
		.css('height', '21px')
		.css('width', '149px')
		.css('border', '1px solid #E2CCB5')
		.css('padding', '0 2px')
		.css('font-size', '12px');
	$("#search-inner-div input#go").attr('value', 'Search');
	
	// Adjust rollover submenu top
	$(".cat-submenu-div").css('top', ($.browser.msie ? '31px' : '64px'));
	
	// Display search portlet (now that it's properly styled)
	$("#search-outer-div").css('display', 'block');
	
	// Style search results' 'No items found.' text
	$("div#middle td.medtextbold:contains('No items found.')")
		.css('padding-left', '24px')
		.css('font-weight', 'normal')
		.find("p")
		.css('font-size', '12px');
}

function selectPatternForAllItems(patternName, pageType) {
	if (patternName) {
		// Get 'Pattern' label span elements
		var patternLabelSpansAry = $("span[id^='custcol'][id$='_fs_lbl']:contains('Pattern')");
		
		// If on Pattern category's item list page
		if (pageType == 'itemlist') {
			// Hide table rows containing Pattern selectors
			$(patternLabelSpansAry)
				.parent()
				.parent()
				.css('display', 'none');
		}
		
		// Get Pattern select elements
		var patternSelAry = $(patternLabelSpansAry)
								.parent()
								.siblings()
								.children("span[id^='custcol'][id$='_fs']")
								.children("select[id^='custcol']");
		
		// Unselect all Pattern options for all items in this particular pattern category
		$(patternSelAry)
			.children("option")
			.removeAttr('selected');
		
		// Select this category pattern for all items displayed
		$(patternSelAry)
			.children("option[text='" + patternName + "']")
			.attr('selected', 'selected');
		
		// If on item drilldown page, fire the onchange of the Pattern select element
		// so the item's main image changes to the one with the selected pattern.
		if (pageType == 'itemdrilldown') {
			patternSelectChanged();
		}
	}
}

function getQueryString(key, default_) {
	if (default_ == null) {
		default_ = ""
	};
	key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	var regex = new RegExp("[\\?&]" + key + "=([^&#]*)");
	var qs = regex.exec(window.location.href);
	if (qs == null) {
		return default_;
	} else {
		return qs[1];
	}
}

function getSubcategoryMenuHTML(categoryLabel, companyID) {
	var html = '';
	
	if (!categoryLabel || !companyID) {
		return html;
	}
	
	var subcatAry = [];
	var categoryLabelLC = categoryLabel.toLowerCase();
	if (categoryLabelLC == 'products') {
		subcatAry = [
			{
				'name':			'What\'s New',
				'catID':		'245',
				'hrefCatID':	'7',
				'subcatID': 	'244'
			},
			{
				'name':			'Shop by Product',
				'catID':		'245',
				'hrefCatID':	'7',
				'subcatID':		'245'
			},
			{
				'name':			'Shop by Pattern',
				'catID':		'245',
				'hrefCatID':	'7',
				'subcatID':		'2087'
			},
			{
				'name':			'Gift Certificates',
				'catID':		'245',
				'subcatID':		'250',
				'href':			'http://shopping.netsuite.com/s.nl/c.' + companyID + '/n.1/it.A/id.1266/.f'
			},
			{
				'name':			'Sale',
				'catID':		'245',
				'hrefCatID':	'7',
				'subcatID':		'251'
			},
			{
				'name':			'Product Info',
				'catID':		'245',
				'subcatID':		'252'
			}
		];
	} else if (categoryLabelLC == 'about') {
		subcatAry = [
			{
				'name':		'Company History',
				'catID':	'12',
				'subcatID':	'264'
			},
			{
				'name':		'Company Bios',
				'catID':	'12',
				'subcatID':	'265'
			}, 
			{
				'name':		'Corporate Social Responsibility',
				'catID':	'12',
				'subcatID':	'266'
			}
		];
	} else if (categoryLabelLC == 'contact') {
		subcatAry = [
			{
				'name':		'Store Locator',
				'catID':	'14',
				'subcatID':	'268'
			},
			{
				'name':		'Wholesale Info',
				'catID':	'14',
				'subcatID':	'269'
			}
		];
	}
	
	if (subcatAry.length) {
		var catID = '';
		var linksHTML = '';
		for (var i = 0; i < subcatAry.length; i++) {
			if (!catID) {
				catID = subcatAry[i]['catID'];
			}
			var hrefCatID = subcatAry[i]['hrefCatID'];
			var subcatID = subcatAry[i]['subcatID'];
			var subcatName = subcatAry[i]['name'];
			var href = subcatAry[i]['href'];
			linksHTML += '<a href="' + (href ? href : 'http://shopping.netsuite.com/s.nl/c.' + companyID + '/n.1/sc.' + (hrefCatID ? hrefCatID : catID) + '/category.' + subcatID + '/.f') + '">' + subcatName + '</a>';
		}
		html += '<div' + (catID ? ' id="cat' + catID + '-submenu" ' : '') + ' class="cat-submenu-div">' + linksHTML + '</div>';
	}
	
	return html;
}

function getCategoryIDByLabel(categoryLabel) {
	var categoryIDByLabel = {
		'products':	'245',
		'about':	'12',
		'contact':	'14'
	};
	
	var categoryID = categoryIDByLabel[ categoryLabel.toLowerCase() ];
	
	if (!categoryID) {
		categoryID = '';
	}
	
	return categoryID;
}

function showCategorySubMenu(categoryLabel) {
	clearTimeout(timerID);
	timerID = null;
	
	var categoryID = getCategoryIDByLabel(categoryLabel);
	
	var categoryIDAry = ['245', '12', '14'];
	
	for (var i = 0; i < categoryIDAry.length; i++) {
		var thisCategoryID = categoryIDAry[i];
		if (thisCategoryID == categoryID) {
			$("div#cat" + thisCategoryID + "-submenu").fadeIn(0).css('left', 'auto').css('z-index', '100');
		} else {
			$("div#cat" + thisCategoryID + "-submenu").fadeOut(0).css('left', '-999em').css('z-index', '1');
		}
	}
}

function hideCategorySubMenu() {
	var categoryIDAry = ['245', '12', '14'];
	
	for (var i = 0; i < categoryIDAry.length; i++) {
		var thisCategoryID = categoryIDAry[i];
		$("div#cat" + thisCategoryID + "-submenu")
			.fadeOut(500, function() {
				$(this).css('left', '-999em').css('z-index', '1');
			});
	}
}

$.expr[':'].icontains = function(obj, index, meta, stack) {
	return (obj.textContent || obj.innerText || jQuery(obj).text() || '').toLowerCase().indexOf(meta[3].toLowerCase()) >= 0;
};
