
/* COOKIES *************************************************** */
// http://www.quirksmode.org/js/cookies.html
function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}
function eraseCookie(name) {
	createCookie(name,"",-1);
}

/* SMOOTH BOXES ********************************************* */
function showModal(url,height,width){
	if ((url.indexOf('/TBG/GeneralContent/Shipping.jsp') > -1)) {
		TB_show('',url+'?TB_iframe=true&height=450&width=700',false);
	} else if (url.indexOf('/store/catalog/product_detail_modal.jsp') > -1) {
		TB_show('',url+'?TB_iframe=true&height=525&width=888',false);			
	} else {
		TB_show('',url+'?TB_iframe=true&height='+height+'&width='+width,false);
	}
}

/* MINICART ************************************************* */
function toggleMiniCart(){
	if ($('minicart_container').getStyle('top') == '-200px')
	{
		showMiniCart(false);
	} else {
		hideMiniCart();
	}
}

var blnItemAdded = false; // to be checked in lastCall, below, for addition of 'checkout' link

function showMiniCart(autoHide){
	blnItemAdded = true;
	if ($('minicart_container').getStyle('top') == '-210px')
	{
		new Fx.Style('minicart_container', 'top',{duration: 1000, transition: Fx.Transitions.sineInOut}).start(-210,0);
	}
	if (autoHide == true)
	{
		setTimeout("hideMiniCart()", 3000);
	}
}
function hideMiniCart(){
	if ($('minicart_container').getStyle('top') != '-210px')
	{
		new Fx.Style('minicart_container', 'top',{duration: 1000, transition: Fx.Transitions.sineInOut}).start(0,-210);
	}
}

// **************************************************************************//
// **************************************************************************//
// **************************************************************************//
/* TODO: These variables and methods are used specifically for these templates
   Acquity should remove this code and use their own navigational controls */
// *************************************************************************//
function clientSideInclude(id, url) {
	var req = false;
	// For Safari, Firefox, and other non-MS browsers
	if (window.XMLHttpRequest) {
		try {
			req = new XMLHttpRequest();
		} catch (e) {
			req = false;
		}
	} else if (window.ActiveXObject) {
		// For Internet Explorer on Windows
		try {
			req = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				req = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {
				req = false;
			}
		}
	}
	var element = document.getElementById(id);
	if (!element) {
		alert("Bad id " + id + 
		"passed to clientSideInclude." +
		"You need a div or span element " +
		"with this id in your page.");
		return;
	}
	if (req) {
		// Synchronous request, wait till we have it all
		req.open('GET', url, false);
		req.send(null);
		element.innerHTML = req.responseText;
	} else {
		element.innerHTML =
		"Sorry, your browser does not support " +
		"XMLHTTPRequest objects. This page requires " +
		"Internet Explorer 5 or better for Windows, " +
		"or Firefox for any system, or Safari. Other " +
		"compatible browsers may also exist.";
	}
}


// PRINT *************************************************************//
function printpage(){  
	if (window.print) {
		window.print() ;  
	} else {
		var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
	document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
		WebBrowser1.ExecWB(6, 2);//Use a 1 vs. a 2 for a prompting dialog box    
		WebBrowser1.outerHTML = "";  
	}
}

// swaps images for rollover functions of <input/> tags
function imageRollOver (image_replacement, elementID)
{
	var imagetag = document.getElementById(elementID);
	imagetag.src = image_replacement;
}


if (window.location.toString().indexOf('www.tommybahama.com/store/catalog/search_results.jsp') > -1) {
	var headID = document.getElementsByTagName("head")[0];
    var cssNode = document.createElement('link');
	cssNode.type = 'text/css';
	cssNode.rel = 'stylesheet';
	cssNode.href = '/media/TB001/images/static/css/search.css';
	cssNode.media = 'screen';
	headID.appendChild(cssNode);
	
}

function showModalDiv(e) {
	var el_1 = document.getElementById('imgModalContent1');
	var el_2 = document.getElementById('imgModalContent2');
	
	if (e=='1') {
		el_1.style.display = 'block';
		el_2.style.display = 'hidden';
	} else {
		el_2.style.display = 'block';
		el_1.style.display = 'hidden';
		
	}
}

function isNumeric(x) {
	return (x!=null && !isNaN(x));
}


// Store Locator Exact Target Email Fix (2008.07.24), dpl
if ((window.location.toString().indexOf('StoresAndCafes.jsp') > -1) && (window.location.toString().indexOf('utm_source=ExactTarget') > -1)) {
	if ((window.location.toString().indexOf('utm_content=StorePreHeader&utm_campaign=EofT') > -1) || (window.location.toString().indexOf('utm_content=SwimFit&utm_campaign=EofT') > -1)) {
			window.location = '/TBG/StoresAndCafes/Tommy_Bahama_Stores.jsp';

	}
}

function lastCall() {
	
	//the page has been fully printed at this point; from here we can do client-side hacks and tweaks
	
	//show highlighted top nav:
	if (window.location.toString().indexOf('/TBG/Men') > -1) {
		var objNavMen = $$('.nav_Men a')[0];
		objNavMen.setStyle('background','url(/media/TB001/images/static/navbar/nav_men_on.gif) no-repeat');
	}
	if (window.location.toString().indexOf('/TBG/Women') > -1) {
		var objNavWomen = $$('.nav_Womens a')[0];
		objNavWomen.setStyle('background','url(/media/TB001/images/static/navbar/nav_women_on_20091029.gif) no-repeat');
	}
	if (window.location.toString().indexOf('/TBG/Swim') > -1) {
		var objNavSwim = $$('.nav_Swim a')[0];
		objNavSwim.setStyle('background','url(/media/TB001/images/static/navbar/nav_swim_on.gif) no-repeat');
	}
	if (window.location.toString().indexOf('/TBG/Gifts') > -1) {
		var objNavAccessories = $$('.nav_Gifts a')[0];
		objNavAccessories.setStyle('background','url(/media/TB001/images/static/navbar/nav_gifts_on.gif) no-repeat');
	}
	if (window.location.toString().indexOf('/TBG/Home') > -1) {
		var objNavHome = $$('.nav_Home a')[0];
		objNavHome.setStyle('background','url(/media/TB001/images/static/navbar/nav_home_on.gif) no-repeat');
	}
	if (window.location.toString().indexOf('/TBG/Accessories') > -1) {
		var objNavAccessories = $$('.nav_Accessories a')[0];
		objNavAccessories.setStyle('background','url(/media/TB001/images/static/navbar/nav_accessories_on.gif) no-repeat');
	}
	if (window.location.toString().indexOf('/TBG/StoresAndCafes') > -1) {
		var objNavStores = $$('.nav_StoresCafes a')[0];
		objNavStores.setStyle('background','url(/media/TB001/images/static/navbar/nav_stores_on.gif) no-repeat');
	}
	if (window.location.toString().indexOf('/TBG/Cafes') > -1) {
		var objNavRestaurants = $$('.nav_Cafes a')[0];
		objNavRestaurants.setStyle('background','url(/media/TB001/images/static/navbar/nav_restaurants_on.gif) no-repeat');
	}
	

	
	
	//On the Gift Cards Listing page, show a range of prices, instead of $25:
	if (window.location.toString().indexOf('GiftCards_M.jsp') > -1) {
		$$(".product_desc").each(
			function(target){
				target.innerHTML = target.innerHTML.replace('$25','$25-$1000');
				
			}
		);
	}

	if (window.location.toString().indexOf('/TBG/Women') > -1) {
		var elJimi = $$('.leftnav')[0];
		if (elJimi) {
			var objULOne = elJimi.getElementsByTagName('ul')[0];
			var objULTwo = objULOne.getElementsByTagName('ul')[0];
			var objTargetLI = objULTwo.getElementsByTagName('li')[6];
			
			//objTargetLI.innerHTML = '<div id="divRibbon" style="position:absolute;left:56px;height:19px;width:12px;"><a href="/TBG/Garden_of_Hope_and_Courage.jsp"><img src="/media/TB001/images/static/gohac/ribbon.gif" border="0" /></a></div>' + objTargetLI.innerHTML;

			//var arrImages = elJimi.getElementsByTagName('img');
			//arrImages[0].onmouseover = function () {arrImages[0].style.cursor='pointer'; arrImages[0].style.cursor='hand';}
			//arrImages[0].onclick = function () {showModal('/TBG/GeneralContent/Shipping.jsp','525','560');}
		}	
	}

	
	if (window.location.toString().indexOf('/store/checkout/cart.jsp') > -1) {
		var objPromoCodeInput = document.getElementById('promotionCode');
		if (objPromoCodeInput) {
			objPromoCodeInput.onkeyup = function () {
				objPromoCodeInput.value = objPromoCodeInput.value.toUpperCase();
				objPromoCodeInput.value = objPromoCodeInput.value.replace(" ","");
				if ((objPromoCodeInput.value.length > 5) && (isNumeric(objPromoCodeInput.value))) {
					alert('If this is a Gift Card, please move forward in the checkout process and enter the Gift Card number within the "Payment Options" step.');
					objPromoCodeInput.value = '';
					objPromoCodeInput.blur();
				}
			}
		}	
	}


	if (window.location.toString().indexOf('/store/checkout/address_details.jsp') > -1) {
		var objCardInput = document.getElementById('ACCOUNT<>accountNumber');
		var objPaymentSelect = document.getElementById('paymentSelect');
		
		//help guide giftcard input
		if (objCardInput) {
			try {
				objCardInput.onkeyup = function () {
					var noSpaces = objCardInput.value;
					objCardInput.value = noSpaces.replace(/ /g,"");
					if ((objPaymentSelect.options[objPaymentSelect.selectedIndex].value=='GC') && (objCardInput.value.length > 19)) {
						alert("A Gift Card number should not be more than 19 digits; please verify your input");
						objCardInput.focus();
					}
				}
				objCardInput.onblur = function () {
					if ((objPaymentSelect.options[objPaymentSelect.selectedIndex].value=='GC') && (objCardInput.value.length < 19)) {
						alert("Your Gift Card number should be 19 digits in length, without spaces; please verify your input");
					}
				}
			} catch (e) {
				// do nothing
			}	
		}
	}
	
	
	//Push footer down to bottom of recipes page:
	if ((window.location.toString().indexOf('/TBG/Cafes/Recipes.jsp') > -1)) {
		var objFooter = $$('.content_container')[2];
		var objMainContent = $$('.main_content')[0];
		var intPageHeight; //= (document.height !== undefined) ? document.height : document.body.offsetHeight;
	
		if (window.innerHeight && window.scrollMaxY) { // Firefox
			intPageHeight = window.innerHeight + window.scrollMaxY;
		} else if( document.body.scrollHeight > document.body.offsetHeight ) { // all but Explorer Mac
			intPageHeight = document.body.scrollHeight;
		} else { // works in Explorer 6 Strict, Mozilla (not FF) and Safari
			//intPageHeight = document.body.offsetHeight + document.body.offsetTop; 
			objFooter.setStyle('display','none');
		}
		objFooter.setStyle('top',intPageHeight+'px');
	}
	
	//fix giftcard page layout issues
	if ((window.location.toString().indexOf('/PRD_GC') > -1)) {
		document.write('<style type="text/css">');
		document.write('.product_detail_bg{top:-8px;}');
		document.write('.detail_paperclip_giftcard{top:0px;}');
		document.write('</style>');
	}
	
	//kill links in minicart for items we've removed:
	var objCustomerServiceLink = $$(".nav_mini_cs");
	try {
		objCustomerServiceLink[0].style.height = '19px';
		objCustomerServiceLink[0].innerHTML = '';
	} catch (e) {
		//do nothing
	}
	
	
	if ((window.location.toString().indexOf('/store/myaccount/returns_confirm_print.jsp') > -1) || (window.location.toString().indexOf('/store/checkout/order_confirm_print.jsp') > -1)) {
		document.write('<style type="text/css">');
		document.write('.main_logo {background: url("/media/TB001/images/static/tommy_logo_print.gif") no-repeat;width:328px;height:54px;}');
		document.write('</style>');
	}
	

	if ((window.location.toString().indexOf('/Island_Values') > -1) || (window.location.toString().indexOf('/Mothers_Day_Gift_Shop/Watches.jsp') > -1)) {
		document.write('<style type="text/css">');
		document.write('.product_desc {color:#e78a31;}');
		document.write('</style>');
		
	}


	//search input handler
	var objSearchForm = document.basic_search;
	var objSearchInput = document.getElementById('searchFor');

	try {
		//alert('d test - form:' + objSearchForm + '|input:' + objSearchInput.value);
		objSearchForm.onsubmit = function() {
			//alert('darryl test - please ignore...');
			if ((objSearchInput.value=='')||(objSearchInput.value=='Search')) {
				alert('Please enter a search term.');
				objSearchInput.select();
				return false;		
			} else if ((objSearchInput.value=='size chart')||(objSearchInput.value=='sizing')||(objSearchInput.value=='men size chart')) {
				showSizeChart('TBM','/TBG/GeneralContent/SizingChart.jsp');
				return false;
			} else {
				return true;
			}
			
		}
	} catch(e) {
		//this is probably a page with no search--like a modal.
	}

	// 6.1.2009 - quick fix:
	if (window.location.toString().indexOf('/store/catalog/product_view_larger_modal.jsp') > -1) {
		document.write('<link rel="stylesheet" type="text/css" href="/media/TB001/images/static/css/viewlarger.css" />');
	}
	
	if (window.location.toString().indexOf('/store/checkout/order_confirm.jsp') > -1) {
		document.write('<script language="JavaScript" src="http://pbid.pro-market.net/engine?site=tbconfirm+size=1x1+mimetype=js"></script>');
	}



	/////////////////////////////////////////////////////////
	//  Positioning of upper-right images (contact us/checkout)
	// insert entire contact us/checkout paper in upper right
	var objTopNav = $$('.top_bg')[0];
	
	try {
//		objTopNav.innerHTML = ('<div id="divContactUsLink" style="position:absolute;left:730px;top:0px;width:189px;height:29px;display:block;z-index:10;"><img src="/media/TB001/images/static/spacer.gif" width="189" height="29" border="0" usemap="#mapMinicart" /></div><map name="mapMinicart"><area shape="rect" coords="0,0,60,29" href="/TBG/GeneralContent/ContactUs.jsp" alt="Contact Us" /><area shape="rect" coords="64,0,189,29" href="/store/checkout/cart.jsp" alt="Checkout / Shopping Bag" /></map>' + objTopNav.innerHTML);

		objTopNav.innerHTML = ('<div id="divContactUsLink" style="position:absolute;left:650px;top:0px;width:150px;height:29px;display:block;z-index:10;"><a href="/TBG/GeneralContent/ContactUs.jsp"><img src="/media/TB001/images/static/spacer.gif" width="150" height="29" border="0" alt="Contact Us" /></a></div><div id="divShoppingBagLink" style="position:absolute;left:794px;top:0px;width:125px;height:29px;display:block;z-index:10;"><a href="/store/checkout/cart.jsp"><img src="/media/TB001/images/static/spacer.gif" width="125" height="29" border="0" alt="Checkout / Shopping Bag" /></a></div>' + objTopNav.innerHTML);

	
		var objCheckoutBox = $$('.checkout_box')[0];
		var objShoppingBag1 = objCheckoutBox.getElementsByTagName('img')[2];
		var objShoppingBag2 = objCheckoutBox.getElementsByTagName('img')[3];
		objShoppingBag1.src = '/media/TB001/images/static/spacer.gif';
		objShoppingBag1.style.display='none';
	
		objShoppingBag2.src = '/media/TB001/images/static/spacer.gif';
		objShoppingBag2.style.display='none';
		
	} catch(e) {
		//this is a page with no top nav--like a modal.
		//alert(e.toString());
	}
		
	//
	/////////////////////////////////////////////////////////
	
	if (window.location.toString().indexOf('/store/catalog/product_detail_modal.jsp') > -1) {
		document.write('<link rel="stylesheet" type="text/css" href="/media/TB001/images/static/css/productdetailmodal.css" />');
	}
	
	if (window.location.toString().indexOf('/store/checkout/cart.jsp') > -1) {
		try {
			var objShippingInfo = $$('.bag_shipping_info_link')[0];
			//objShippingInfo.innerHTML = objShippingInfo.innerHTML.replace("<a href=\"javascript:showModal('http:\/\/ecap03\/TBG\/GeneralContent\/Shipping.jsp','620','550');\">[shipping info]<\/a>", "<a href=\"javascript:showModal('http:\/\/ecap03\/TBG\/GeneralContent\/Shipping.jsp','620','550');\" style=\"text-decoration:underline;\">When will my<br \/>order ship?<\/a>");
			objShippingInfo.innerHTML = objShippingInfo.innerHTML.replace("[shipping info]", "When will my order&nbsp;ship?");
			} catch(e) {
			//alert(e.toString());
		}
	}



	//////////////////////////////////////////////////////////////////////
	//
	//  Top Nav Flyout Menus
	try {
		if (window.location.search.toString().indexOf('darryl') > -1) {
			var objTopNavMen = $$('.nav_Men')[0];
			var objTopNavWomen = $$('.nav_Womens')[0];
			var objTopNavSwim = $$('.nav_Swim')[0];
			var objTopNavHome = $$('.nav_Home')[0];
			var objTopNavAccessories = $$('.nav_Accessories')[0];
			var objTopNavStores = $$('.nav_StoresCafes')[0];
			var objTopNavCafes =  $$('.nav_Cafes')[0];
			//document.write('<style type="text/css">');
			//document.write('ul.flyout_nav{list-style-image:none;list-style-position:outside;list-style-type:none;margin:0;padding-left:8px;padding-top:8px;}');
			//document.write('ul.flyout_nav li {float:left;height:9px;margin:0 6px;padding:0;position:relative;}');
			//document.write('</style>');
			
			document.write('<div class="navFlyout" id="divFlyout_nav_Men" style="position:absolute;display:none;background:url(/media/TB001/images/static/navbar/flyout_men.png) no-repeat;left:68px;top:94px;width:632px;height:25px;z-index:200;" onmouseout="hideFlyout(this)"><a href="">NEW ARRIVALS</a>&nbsp;&nbsp;&nbsp;<a href="">BIG &amp; TALL</a>&nbsp;&nbsp;&nbsp;<a href="">SHIRTS</a>&nbsp;&nbsp;&nbsp;<a href="">PANTS</a>&nbsp;&nbsp;&nbsp;<a href="">SWIM</a></div>');
			document.write('<div class="navFlyout" id="divFlyout_nav_Womens" style="position:absolute;display:none;background:url(/media/TB001/images/static/navbar/flyout_women.png) no-repeat;left:68px;top:94px;width:632px;height:25px;z-index:200;" onmouseout="hideFlyout(this)">Women\'s links...</div>');
			document.write('<div class="navFlyout" id="divFlyout_nav_Swim" style="position:absolute;display:none;background:url(/media/TB001/images/static/navbar/flyout_swim.png) no-repeat;left:68px;top:94px;width:632px;height:25px;z-index:200;" onmouseout="hideFlyout(this)">Swim links</div>');
			document.write('<div class="navFlyout" id="divFlyout_nav_Home" style="position:absolute;display:none;background:url(/media/TB001/images/static/navbar/flyout_home.png) no-repeat;left:68px;top:94px;width:632px;height:25px;z-index:200;" onmouseout="hideFlyout(this)">Home links</div>');
			document.write('<div class="navFlyout" id="divFlyout_nav_Accessories" style="position:absolute;display:none;background:url(/media/TB001/images/static/navbar/flyout_accessories.png) no-repeat;left:68px;top:94px;width:632px;height:25px;z-index:200;" onmouseout="hideFlyout(this)">Accessories links</div>');
			document.write('<div class="navFlyout" id="divFlyout_nav_StoresCafes" style="position:absolute;display:none;background:url(/media/TB001/images/static/navbar/flyout_stores.png) no-repeat;left:68px;top:94px;width:632px;height:25px;z-index:200;" onmouseout="hideFlyout(this)">Stores links</div>');
			document.write('<div class="navFlyout" id="divFlyout_nav_Cafes" style="position:absolute;display:none;background:url(/media/TB001/images/static/navbar/flyout_restaurants.png) no-repeat;left:68px;top:94px;width:632px;height:25px;z-index:200;" onmouseout="hideFlyout(this)">Restaurant links</div>');
			
			var objFlyoutMen = document.getElementById('divFlyout_nav_Men');
			var objFlyoutWomen = document.getElementById('divFlyout_nav_Womens');
			var objFlyoutSwim = document.getElementById('divFlyout_nav_Swim');
			var objFlyoutHome = document.getElementById('divFlyout_nav_Home');
			var objFlyoutAccessories = document.getElementById('divFlyout_nav_Accessories');
			var objFlyoutStores = document.getElementById('divFlyout_nav_StoresCafes');
			var objFlyoutCafes = document.getElementById('divFlyout_nav_Cafes');
			
			objTopNavMen.onmouseover = function() {
				showFlyout(objFlyoutMen);
			}
			objTopNavWomen.onmouseover = function() {
				showFlyout(objFlyoutWomen);
			}
			objTopNavSwim.onmouseover = function() {
				showFlyout(objFlyoutSwim);
			}
			objTopNavHome.onmouseover = function() {
				showFlyout(objFlyoutHome);
			}
			objTopNavAccessories.onmouseover = function() {
				showFlyout(objFlyoutAccessories);
			}
			objTopNavStores.onmouseover = function() {
				showFlyout(objFlyoutStores);
			}
			objTopNavCafes.onmouseover = function() {
				showFlyout(objFlyoutCafes);
			}

		/*		
			var objTopNav = $$('.top_nav')[0];
			var objTopNavArray = objTopNav.getElementsByTagName('li');
			var objNavItemFlyout;
			for (i=0;i<objTopNavArray.length;i++) {
				
				objNavItemFlyout = document.getElementById('divFlyout_' + objTopNavArray[i].className);
				objTopNavArray[i].onmouseover = function() {
					alert(objNavItemFlyout.id.toString());
					showFlyout(objNavItemFlyout);
				}
			}
		*/
			
		}
	} catch(e) {
		alert(e.toString());
	}
	
	
	//  End Top Nav Flyout Menus
	//
	////////////////////////////////////////////////////////////////////
	
	////////////////////////////////////////////////////////////////////
	// GOHAC 
	//
	if ((window.location.toString().indexOf('/PRD_TH7352') > -1) || (window.location.toString().indexOf('/PRD_TH7353') > -1) || (window.location.toString().indexOf('/PRD_TH7354') > -1) || (window.location.toString().indexOf('/PRD_TW20499') > -1) || (window.location.toString().indexOf('/PRD_TB1017-BR') > -1) || (window.location.toString().indexOf('/PRD_T32577') > -1)) {
		var objDetailText = $$('.product_detail_text')[0];
		var objDetailTextDiv = objDetailText.getElementsByTagName('div')[1];
		objDetailTextDiv.innerHTML += '<div style="margin-top:8px;margin-bottom:16px;"><img src="/media/TB001/images/static/gohac/gohac_large.gif" width="247" height="84" border="0" alt="The Garden of Hope and Courage" /></div>';
	}
	//
	////////////////////////////////////////////////////////////////////
	
	// shopping bag updates
	if (window.location.toString().indexOf('/store/checkout/cart.jsp') > -1) {

		// prompt (show flyout) in shopping bag for free shipping @ $100
		try {
			var objSubTotalRow = $$('.dark_back')[2];
			var objSubTotalCell = objSubTotalRow.getElementsByTagName('td')[5];
			var objSubTotal = objSubTotalCell.getElementsByTagName('div')[0];
			var txtSubTotal = '';
			var intSubTotal = 0.00;
			txtSubTotal = objSubTotal.innerHTML.replace('<b>$','');
			txtSubTotal = txtSubTotal.replace('</b>','');
			txtSubTotal = txtSubTotal.replace('<B>$',''); // IE seems to think this is uppercase, despite showing lower-case in the source
			txtSubTotal = txtSubTotal.replace('</B>',''); // IE seems to think this is uppercase, despite showing lower-case in the source
			intSubTotal = txtSubTotal;
			var intSpendMore = (100-intSubTotal);
			intSpendMore = intSpendMore.toFixed(2);
			if (intSubTotal < 0) {				
				var objSubTotalTextRow = $$('.dark_back')[2];
				var objSubTotalTextCell = objSubTotalTextRow.getElementsByTagName('td')[0];
				objSubTotalTextCell.innerHTML = '<div id="divPromptOffer" style="background-color:#fffbf7;width:550px;left:22px;margin-bottom:18px;height:15px;color:#8c4918;background:url(/media/TB001/images/static/shipping/arrow.gif) right no-repeat;position:relative;top:-1px;z-index:50;"><b>You\'re&nbsp;almost&nbsp;there!</b>&nbsp;Spend&nbsp;$' + intSpendMore + '&nbsp;more&nbsp;for&nbsp;free&nbsp;ground&nbsp;shipping.&nbsp;[<a href="javascript:showShippingModal()">details</a>]</div>' + objSubTotalTextCell.innerHTML;
			} 

		} catch(e) {
			//alert('darryl-testing:' + e.toString());
		}

		// show banner in shopping bag
		try {
			var objBookContent = $$('.book_content')[0];
			var objBigDiv = objBookContent.getElementsByTagName('div')[0];
			//objBigDiv.innerHTML = '<div id="divTopBanner" style="background-color:#c0c0c0;">here\'s the banner!</div>' + objBigDiv.innerHTML;
			
		} catch(e) {
			
		}
	}


	if (window.location.toString().indexOf('/TBG/GeneralContent/ContactUs.jsp') > -1) {
		var objContactForm = $$('.accountForm')[0];
		var objContactFormText = objContactForm.getElementsByTagName('div')[0];
		objContactFormText.style.width = '680px';
			
		objContactFormText.innerHTML = ' <div id="divPhoneNumber" style="position:relative;width:266px;left:108px;z-index:50;text-align:center;float:right;">Contact us by phone: 1-866-986-8282<br />Monday-Friday, 6am-6pm PST.</div>' + objContactFormText.innerHTML;
		
		// prompt (show flyout) in shopping bag for free shipping @ $100
		try {
			
		} catch(e) {
		
		}
	}
	

	
	
	/////////////////////////////////////////////////////////////////
	//
	// Begin Chat
	
	function showChatPopup(url,w,h) {
		objNewWin = window.open(url,'winChat','height=' + h + ',width=' + w + ', toolbar=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,top=100,left=300');
	}
	
	function getCurrentPSTHour(){
	
		var TimezoneOffset = -7;  // PST
		var localTime = new Date();
		var ms = localTime.getTime() + (localTime.getTimezoneOffset() * 60000) + TimezoneOffset * 3600000;
		var time =  new Date(ms);
		var hour = time.getHours(); 
		return hour;
	
	}
	
	function getCurrentPSTDate(){
	
		var TimezoneOffset = -7;  // PST
		var localTime = new Date();
		var ms = localTime.getTime() + (localTime.getTimezoneOffset() * 60000) + TimezoneOffset * 3600000;
		var time =  new Date(ms);
		var date = time.getDate(); 
		return date;
	
	}
	
	function getCurrentPSTMonth(){
	
		var TimezoneOffset = -7;  // PST
		var localTime = new Date();
		var ms = localTime.getTime() + (localTime.getTimezoneOffset() * 60000) + TimezoneOffset * 3600000;
		var time =  new Date(ms);
		var month = time.getMonth(); 
		return month;
	
	}
	
	function getCurrentPSTDay(){
	
		var TimezoneOffset = -7;  // PST
		var localTime = new Date();
		var ms = localTime.getTime() + (localTime.getTimezoneOffset() * 60000) + TimezoneOffset * 3600000;
		var time =  new Date(ms);
		var day = time.getDay(); 
		return day;
	
	}
	
	
	
	var objChatButton = document.getElementById('divChatButton');
	var objChatInactive = document.getElementById('divChatInactive');
	
	var now = new Date();
	
	if ((getCurrentPSTMonth()==8) && (getCurrentPSTDate()==23)) { // don't show active chat on 9/23.
		// do nothing
	} else if (getCurrentPSTDay() < 6) { // it's a weekday
		if ((getCurrentPSTMonth()==8) && (getCurrentPSTDate()==25)) {
			if ((getCurrentPSTHour() < 9) || (getCurrentPSTHour() > 11)) { // after hours; show inactive.
				// do nothing
			}
		} else 	if ((getCurrentPSTHour() < 9) || (getCurrentPSTHour() > 14)) { // after hours; show inactive.
			// do nothing
		} else { // during hours; show active
			showChatLink()
		}
	} else { // it's a weekend; show inactive.
		// do nothing	
	}
	
	//allows us to override the time of day and view inactive chat.
	if (window.location.search.toString().indexOf('chat=off') > -1) {
		objChatButton.style.display = 'none';
		objChatInactive.style.display = 'block';
	}
	
	function showChatLink() {
		try {
			var objLeftNav = $$('.leftnav')[0];
		///////////////////////////////////////////
		//
		// next two lines commented out to disable chat.  to enable, uncomment these next two commented lines:
		
		//	var objMarlin = objLeftNav.getElementsByTagName('div')[0];
		//	objMarlin.innerHTML += '<div id="divChatLink"><a href="javascript:showChatPopup(\'/TBG/GeneralContent/modal/chat.jsp?cm_sp=Site%20Features-_-Live%20Chat-_-Chat%20On\', \'630\',\'520\');"><img src="/media/TB001/images/static/chat/leftnav_chat_20090922.gif" border="0" alt="" /></a></div>';
		
		//
		///////////////////////////////////////////
		
		} catch(e) {
			// some pages don't have the leftnav, so this won't be applicable.
		}
	}


	// End Chat
	//
	/////////////////////////////////////////////////////////////////
	
	
	
	/*
	if (window.location.toString().indexOf('/PRD_') > -1) {
		var objAddToBag = $$(".btm_add_to_bag")[0];
		if (objAddToBag) {
			objAddToBag.innerHTML += '<div style="text-align:center;"><a href="/store/checkout/cart.jsp"><img src="/media/TB001/images/static/checkout/btn_go_to_checkout_off.gif" border="0" alt="Go To Checkout" /></a></div>';
		}
	} */
}


function hideFlyout(e) {
	try {
		hideElement(e);
		if (window.location.toString().indexOf('/TBG/PRD_') > -1) {
			var objIframe = document.getElementById('S7ProdTest');
		//	showElement(objIframe);
		}
	} catch(e) {
	
	}
}

function showFlyout(e) {
	try {
/*		var objTopNav = $$('.top_nav')[0];
		var objTopNavArray = objTopNav.getElementsByTagName('li');
		var objFlyoutArray = $$('.navFlyout');
		for (i=0;i<objFlyoutArray.length;i++) {
			objFlyoutArray[i].style.display = 'none';
		}
		for (i=0;i<objTopNavArray.length;i++) {
			if (objTopNavArray[i]==e) {
				e.style.display = 'block';
			}
		}
		if (window.location.toString().indexOf('/TBG/PRD_') > -1) {
			var objIframe = document.getElementById('S7ProdTest');
		//	hideElement(objIframe);
		}
*/
		showElement(e);
		
	} catch(e) {
		alert(e.toString());
	}
}

function hideElement(e) {
	try {
		e.style.display='none';	
	} catch(e) {
		
	}
}

function showElement(e) {
	try {
		e.style.display='block';	
	} catch(e) {
		
	}
}

function showShippingModal() {
	showModal('/TBG/GeneralContent/Shipping.jsp','450','700');
}

/******************************************************
	View Larger Link on Product Details Page
******************************************************/

function viewLarger(strPagePath,strStyle,strSelectedColor, productId) {
	var strImageFormat = '';
	var intScreenWidth = screen.width;
	var intPopupWidth = 749;
	var intPopupHeight = 665;
	
	if (intScreenWidth > 1279) {
		strImageFormat = '1';
		intPopupWidth = 999;
		intPopupHeight = 860;
	}
	//showModal(strPagePath+"?if=" + strImageFormat + "&style=" + strStyle + "&color=" + strSelectedColor ,"800","999");
	popupWindow(strPagePath+"?if=" + strImageFormat + "&style=" + strStyle + "&color=" + strSelectedColor +"&productId=" + productId, intPopupHeight,intPopupWidth);
}

function updateLargeImage(strImageFormat,path,img) {
	var objLargeImage = document.getElementById("imgLarge");
	var strURL = "";
	strURL += path.toString() + img.toString() + '?$' + strImageFormat.toString() + '$';
	objLargeImage.src = strURL;
}


function closeModal() {
	parent.TB_remove();
}

function closeWindow() {
	window.close();
}

/******************************************************
	End View Larger Link
******************************************************/

/******************************************************
	Two functions that used to be written inline along with the footer HTML:
**/
function popupWindow(lnk, h, w) {
	var topOffset = (screen.height - h) / 2;
	var leftOffset = (screen.width - w) / 2;
	settings='width='+w+',height='+h+',top='+topOffset+',left='+leftOffset;
	var popupname='defaultName';
	var win = window.open(lnk, popupname , settings);
}


function newWindow(lnk) {
	var win = window.open(lnk, "fullscreen");
}
/**
******************************************************/

/********************************************************
	Size Charts
**/

function showSizeChart(strWhich,strURL) {
	// for now, we're ignoring strURL and hardcoding a different one below, to avoid prematurely overwriting the old one:
	var strFullURL = "/TBG/GeneralContent/Modal/Size_Charts.jsp?show=" + strWhich;
	javascript:showModal(strFullURL, '550', '750');
}

/**
******************************************************/


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 Left(str, n) {
	if (n <= 0) {
		return "";
	} else if (n > String(str).length) {
		return str;
	} else {
		return String(str).substring(0,n);
	}
}

function Right(str, n) {
	if (n <= 0) {
		return "";
	} else if (n > String(str).length) {
		return str;
	} else {
		var iLen = String(str).length;
		return String(str).substring(iLen, iLen - n);
	}
}
