var pickedSwatch = 'swatch_id';
var sizeDropDown = 'drop_down';
var skuId = 'skuId';
var swatchDescription = 'swatch_description';
var selSwatchDesc = '';
var selSwatchS7info = '';

// temporary until fixed in template:
document.write('<style type="text/css"> .title, .title_bar {display:none;}</style>')

function loadSwatches(skuID){
	//alert('swatch');
	$$('.product_swatch').each(
		function(target){
			target.selected = false;
			target.getFirst().addClass('product_swatches_norm');
			target.addEvent('click', function(){swatchClick(target);dropDownSelect();});
			target.addEvent('mouseover',function(){swatchMouseover(target);});
			target.addEvent('mouseout',function(){swatchMouseout(target);});
		}
	);
	$$('.giftcard_swatch').each(
		function(target) {
			target.selected = false;
			target.getFirst().addClass('product_swatches_norm');
			target.addEvent('click', function(){gc_swatchClick(target);dropDownSelect();});
			target.addEvent('mouseover',function(){gc_swatchMouseover(target);});
			target.addEvent('mouseout',function(){gc_swatchMouseout(target);});
		}
	);


	// dpl added: 03/28/2008; selects first swatch by default.
	var elToUse = skuID;
	if (elToUse == null) {
		elToUse = "prodctID0";
	}

	var el = document.getElementById(elToUse);
	if (el) {
		swatchMouseover(el);
		swatchClick(el);
		attributeSelected('colorSelected');
	} else {
		try {
			$$('.alt_images_show')[0].style.display = 'block';
		} catch(e) {
			//
		}
	}
}



function dropDownSelect() {
	if ($(sizeDropDown)) {
		var skuIdElement = $(skuId);
		var dropDownValue = $(sizeDropDown).value;
		skuIdElement.setProperty('value', dropDownValue);
	}
/*
	if (window.location.toString().indexOf('/TBG/Gifts/GiftCards_M/PRD_GC') > -1) {
		// strip out "To:" "From:" text...
		var objTo = document.getElementById('gw_to_1');
		var objFrom = document.getElementById('gw_from_1');
		var objMessage = document.getElementById('gw_message_1');

		//try {
			var strToPrefix = Left(objTo.value,3);
			alert("'" + strToPrefix + "'");
			if (strToPrefix=='To:') {
				alert(Right(objToValue,(objToValue.length-3)));
				objTo.value = objTo.value.replace("To:","");
			}
		//} catch(e) {
		//	alert(e.toString);
		//}
	}
*/
}

function swatchMouseover(swatch){
	//alert(swatch);
	if (swatch.selected == false){
		swatch.getFirst().removeClass('product_swatches_norm');
		swatch.getFirst().addClass('product_swatches_sel');
	}
	$(swatchDescription).innerHTML = swatch.getProperty('rel').split('|')[0];
//	callScene7(swatch.getProperty('rel').split('|')[1]); // set Scene7 to the moused over swatch
}
function swatchMouseout(swatch){
	if (swatch.selected == false){
		swatch.getFirst().removeClass('product_swatches_sel');
		swatch.getFirst().addClass('product_swatches_norm');
	}
	$(swatchDescription).innerHTML = selSwatchDesc;
//	callScene7(selSwatchS7info); // set Scene7 back to the selected swatch
}
/*
function showDetailImage(strStyleColor) {
	// TB937: To display alt image if present. Getting the value dynamicaly instead of hard coding 'main'
	var strScene7URL = 'http://s7d2.scene7.com/is/image/TommyBahama/'+strStyleColor+'_' + strImageFormatDetail +'?$detail2$';
	var objDetailImage = document.getElementById('imgDetail');
	objDetailImage.src = strScene7URL;
}
*/

function showDetailImage(strStyleColor) {
	//var strScene7URL = 'http://s7d2.scene7.com/is/image/TommyBahama/'+strStyleColor+'_main?$detail2$';
	// TB937: To display alt image if present. Getting the value dynamicaly instead of hard coding 'main'
	try {
		var strScene7URL = 'http://s7d2.scene7.com/is/image/TommyBahama/'+strStyleColor+'_' + strImageFormatDetail +'?$detail2$';

		var objDetailImage = document.getElementById('imgDetail');
		objDetailImage.src = strScene7URL;

		//update alt images, if applicable.
		var arrAltImages = $$('.alt_images_show');
		var strAltImageColor = '';
		var strColor = strStyleColor.split('_')[1];
			if (arrAltImages) {
				for (i=0;i<arrAltImages.length;i++) {
					strAltImageID = arrAltImages[i].id.replace('alt_images_','');
					if (strAltImageID == strColor) {
						arrAltImages[i].style.display = 'block';
					} else {
						arrAltImages[i].style.display = 'none';
					}
				}
			}
	} catch (e) {
		// do nothing; we're on the view larger page with the zoom viewer.
	}
}

function swatchClick(swatch) {
	//alert('swatch selected:' + swatch.selected + '; swatch:'+swatch);
	if (swatch.selected == false) {
		// set the style of all the classes
		$$('.product_swatch').each(
				function(target) {
					target.getFirst().removeClass('product_swatches_sel');
					target.getFirst().addClass('product_swatches_norm');
					target.selected = false;
				});

		// set the style of the clicked item
		swatch.getFirst().removeClass('product_swatches_norm');
		swatch.getFirst().addClass('product_swatches_sel');
		swatch.selected = true;

		// set the hidden swatch and store the selected swatch info
		$(pickedSwatch).value = swatch.id;
		selSwatchDesc = swatch.getProperty('rel').split('|')[0];
		selSwatchS7info = swatch.getProperty('rel').split('|')[1];

		// update the Detail image
		showDetailImage(selSwatchS7info);

		// set the size drop down
		var dropDownElem = $(sizeDropDown);

		if (dropDownElem) {
			//options = dropDownElem.getChildren();

			// this .remove code is not working
			// Replaced this function with a remove childrend
			/*
			 if (options) {
			 options.remove();
			 }*/
			// new method to remove previous sizes -- Creilly 10/12/07
			while (dropDownElem.hasChildNodes())
			{
				dropDownElem.removeChild(dropDownElem.childNodes[0]);
			}

		}

		try {
			var sizes = swatch.getProperty('rel').split('|');

			// if sizes > 3 it means there should be a size drop down
			if (sizes.length > 3) {
				for (var i = 2; i < sizes.length; i = i + 2) {

					// dpl 10/22/2009 - added if statement:
					if (i == 2) {
						var option2 = new Element('option');
						option2.setProperty('value', '').appendText('Choose Size');
						$(sizeDropDown).adopt(option2);
					}
					var option1 = new Element('option');
					if (sizes[i + 1].toString().indexOf('Not Available') > -1) {
						option1.setProperty('class', 'size_na');
						option1.setProperty('onmouseover', 'showSizeNA()');
					} else {
						//option1.setProperty('onmouseover', 'clearSizeNA()');
					}
					option1.setProperty('value', sizes[i]).appendText(sizes[i + 1]);
					$(sizeDropDown).adopt(option1);
				}
				;

			} else {
				// set the value of skuId
				var thisSkuId = swatch.getProperty('rel').split('|')[2];
				$(skuId).setProperty('value', thisSkuId);

			}
		} catch (e) {
			//
		}
	}
}

function setSize(currentSize) {
	var dropDownElem = document.getElementById("drop_down");

	for (var x=0;x < dropDownElem.length;x++) {

		/*
		if (currentSize == dropDownElem.options[x].value) {
			dropDownElem.options[x].selected = true;
		} else
		  */

		if (currentSize == dropDownElem.options[x].text){

			dropDownElem.options[x].selected = true;
			dropDownElem.options[x].onchange;
			dropDownElem.options[x].onclick;
		}
	}
}

function setQuantity(currentQuantity) {
	var dropDownElem = document.getElementById("selQuantity");
	for (var z=0;z < dropDownElem.length;z++) {
		if (currentQuantity == dropDownElem.options[z].value) {
			dropDownElem.options[z].selected = true;
		}

	}

}

function attributeSelected (elmId) {
//	alert("attributeSelected: " + elmId);
	var attrSelectedIndicator = document.getElementById(elmId);
	attrSelectedIndicator.value = 'true';
}


function callScene7(scene7info){
	// call Scene 7 with the swatch info
	//window.status = scene7info;
}

function initTabCss(){
	var objSummary = document.getElementById('divSummary');
	var objDetails = document.getElementById('divDetails');
	var objThird = document.getElementById('divThirdTab');
	var objThirdTab = document.getElementById('tabThirdTab');


	}

function showSummaryText() {

	var objSummary = document.getElementById('divSummary');
	var objSummaryTab = document.getElementById('tabSummary');
	var objDetails = document.getElementById('divDetails');
	var objDetailsTab = document.getElementById('tabDetails');
	var objThird = document.getElementById('divThirdTab');
	var objThirdTab = document.getElementById('tabThirdTab');
	var objDetailsSummaryNav = document.getElementById('divDetailTabs');
	var arrLinks = objDetailsSummaryNav.getElementsByTagName('a');
	var strClassAttribute = 'class';
	if (navigator.userAgent.toLowerCase().indexOf('msie') > -1) {
		strClassAttribute = 'className';
	}

	objDetails.style.display = 'none';
	objSummary.style.display = 'block';
	objThird.style.display = 'none';
	if (objSummaryTab ){
		objSummaryTab.setAttribute(strClassAttribute, "desc_nav_selected");
	}
	if (objDetailsTab ){
		objDetailsTab.setAttribute(strClassAttribute, "desc_nav_link");
	}
	if (objThirdTab ){
		objThirdTab.setAttribute(strClassAttribute, "desc_nav_link");
	}
	//arrLinks[0].setAttribute(strClassAttribute, "desc_nav_selected");
	//arrLinks[1].setAttribute(strClassAttribute, "desc_nav_link");

}

function showThirdTab() {
	var objSummary = document.getElementById('divSummary');
	var objSummaryTab = document.getElementById('tabSummary');
	var objDetails = document.getElementById('divDetails');
	var objDetailsTab = document.getElementById('tabDetails');
	var objThird = document.getElementById('divThirdTab');
	var objThirdTab = document.getElementById('tabThirdTab');
	var objDetailsSummaryNav = document.getElementById('divDetailTabs');
	var arrLinks = objDetailsSummaryNav.getElementsByTagName('a');
	var strClassAttribute = 'class';
	if (navigator.userAgent.toLowerCase().indexOf('msie') > -1) {
		strClassAttribute = 'className';
	}

	objThird.style.display = 'block';
	objDetails.style.display = 'none';
	objSummary.style.display = 'none';
	if (objSummaryTab ){
		objSummaryTab.setAttribute(strClassAttribute, "desc_nav_link");
	}
	if (objDetailsTab ){
		objDetailsTab.setAttribute(strClassAttribute, "desc_nav_link");
	}
	if (objThirdTab ){
		objThirdTab.setAttribute(strClassAttribute, "desc_nav_selected");
	}
	//arrLinks[0].setAttribute(strClassAttribute, "desc_nav_link");
	//arrLinks[1].setAttribute(strClassAttribute, "desc_nav_selected");
}

function showDetailText() {
	var objSummary = document.getElementById('divSummary');
	var objSummaryTab = document.getElementById('tabSummary');
	var objDetails = document.getElementById('divDetails');
	var objDetailsTab = document.getElementById('tabDetails');
	var objThird = document.getElementById('divThirdTab');
	var objThirdTab = document.getElementById('tabThirdTab');
	var objDetailsSummaryNav = document.getElementById('divDetailTabs');
	var arrLinks = objDetailsSummaryNav.getElementsByTagName('a');
	var strClassAttribute = 'class';
	if (navigator.userAgent.toLowerCase().indexOf('msie') > -1) {
		strClassAttribute = 'className';
	}

	objDetails.style.display = 'block';
	objSummary.style.display = 'none';
	objThird.style.display = 'none';
	if (objSummaryTab ){
		objSummaryTab.setAttribute(strClassAttribute, "desc_nav_link");
	}
	if (objDetailsTab ){
		objDetailsTab.setAttribute(strClassAttribute, "desc_nav_selected");
	}
	if (objThirdTab ){
		objThirdTab.setAttribute(strClassAttribute, "desc_nav_link");
	}
	//arrLinks[0].setAttribute(strClassAttribute, "desc_nav_link");
	//arrLinks[1].setAttribute(strClassAttribute, "desc_nav_selected");
}


function updateDetailImage(strImageFormat,path,img) {
	var objDetailImage = document.getElementById("imgDetail");
	var strURL = "";
	strURL += path.toString() + img.toString() + '?$' + strImageFormat.toString() + '$';
	objDetailImage.src = strURL;
}

function showSizeNA() {
	var objMessage = document.getElementById('divSizeMessage');
	objMessage.innerHTML = 'This size is not available in the color you specified';
}
function clearSizeNA() {
	var objMessage = document.getElementById('divSizeMessage');
	objMessage.style.display = 'none';
}

function showMultiMore(intWhich) {
	var objSpanToHide = document.getElementById('spanMultiMoreLink'+intWhich);
	var objSpanToShow = document.getElementById('spanMultiMore'+intWhich);
	objSpanToHide.style.display = 'none';
	objSpanToShow.style.display = 'inline';
}
function showMultiSummary(intWhich) {
	var objDivToHide = document.getElementById('divMultiDescDetails'+intWhich);
	var objDivToShow = document.getElementById('divMultiDescSummary'+intWhich);
	var objDivMultiNav = document.getElementById('divMultiDescNav'+intWhich);
	var arrLinks = objDivMultiNav.getElementsByTagName('a');
	var strClassAttribute = 'class';
	if (navigator.userAgent.toLowerCase().indexOf('msie') > -1) {
		strClassAttribute = 'className';
	}
	objDivToHide.style.display = 'none';
	objDivToShow.style.display = 'block';
	arrLinks[0].setAttribute(strClassAttribute, "multi_desc_nav_selected");
	arrLinks[1].setAttribute(strClassAttribute, "multi_desc_nav_link");
}
function showMultiDetails(intWhich) {
	var objDivToHide = document.getElementById('divMultiDescSummary'+intWhich);
	var objDivToShow = document.getElementById('divMultiDescDetails'+intWhich);
	var objDivMultiNav = document.getElementById('divMultiDescNav'+intWhich);
	var arrLinks = objDivMultiNav.getElementsByTagName('a');
	var strClassAttribute = 'class';
	if (navigator.userAgent.toLowerCase().indexOf('msie') > -1) {
		strClassAttribute = 'className';
	}
	objDivToHide.style.display = 'none';
	objDivToShow.style.display = 'block';
	arrLinks[0].setAttribute(strClassAttribute, "multi_desc_nav_link");
	arrLinks[1].setAttribute(strClassAttribute, "multi_desc_nav_selected");
}

function showShareThis2() {
	/*
	if (window.location.toString().indexOf('product_detail_modal.jsp') > -1) {
		//do nothing; don't show "share this" in a cross-sell modal.
	} else {
		if (navigator.userAgent.toLowerCase().indexOf('msie 6') > -1) {
			//do nothing; don't show ShareThis to IE6
		} else {
			document.write('<style type="text/css">');
			document.write('.btm_add_to_bag {margin-bottom:8px;}');
			document.write('#divShareThis {text-align:right;margin-top:8px;}');
			document.write('</style>');
			document.write('<!--[if lt ie 7]>');
			document.write('<style type="text/css">');
			document.write('#divShareThis {display:none;}');
			document.write('</style>');
			document.write('<![endif]-->');
			document.write('<!--[if gt ie 6]>');
			document.write('<style type="text/css">');
			document.write('#sharethis_0 {margin-left:118px;}');
			document.write('</style>');
			document.write('<![endif]-->');
			document.write('<div id="divShareThis"><script type="text/javascript" src="http://w.sharethis.com/button/sharethis.js#publisher=67d31587-f651-47e4-a0c0-67003e14dfb9&amp;type=website&tracking=google"><\/script></div>');
		}
	}
	*/
}

function launchZoomViewer(strPagePath,strStyle,strSelectedColor, productId) {
	viewLarger(strPagePath,strStyle,strSelectedColor, productId)
}

function hasContent (testString){
    if (/\S/.test(testString)) {
        // string is not empty and not just whitespace
        return true;
    } else {
        return false;
    }
}

function addToBag(strPage) {
	// depending on value of strPage, validate form accordingly (possible values are "pd", "pdm", "pdm2")
	//
	// will probably add some validation pieces here, but ultimately, if the form input is valid, the form should post and take the user to the Shopping Bag

	var blnSubmit = true;

	if (strPage == 'pd' || strPage == 'pd_multi') {
		// product detail
		var objSizeSelect = document.getElementById('drop_down');
		var objQuantitySelect = document.getElementById('selQuantity');

		if (objSizeSelect != null) {
			if (objSizeSelect.options[objSizeSelect.options.selectedIndex].value=='') {
				showPDError('Please select a size');
				blnSubmit = false;
			}
		}
	}
	if (strPage == 'vgc') {
		var toField = document.getElementById('txtRecipientEmail');
		var toField2 = document.getElementById('txtRecipientEmail2');
		var objToName = document.getElementById('txtToName');
		var objSender = document.getElementById('txtSenderEmail');
		if (toField.value == 'Recipient\'s Email' || !hasContent(toField.value)) {
			alert('Please enter the recipient\'s email.');
			toField.focus();
			blnSubmit = false;
		} else if (toField2.value == 'Confirm Recipient\'s Email' || !hasContent(toField2.value)) {
			alert('Please confirm the recipient\'s email.');
			toField2.focus();
			blnSubmit = false;
		} else if (validateEmail(toField.value) == false) {
			alert('Please enter a valid email address for the recipient.');
			toField.focus();
			blnSubmit = false;
		} else if (toField.value != toField2.value) {
			alert('The recipient email addresses do not match; please check to be sure you have entered the correct email address.');
			toField2.select();
			blnSubmit = false;
		} else if (objToName.value == 'Recipient\'s Name' || !hasContent(objToName.value)) {
			alert('Please supply the name of the person who is receiving this fabulous gift!');
			objToName.select();
			blnSubmit = false;
		} else if (objSender.value == 'Your Name' || !hasContent(objSender.value)) {
			alert('Please supply your own name, so the recipient knows who sent them this fabulous gift!');
			objSender.select();
			blnSubmit = false;
		}
	}

	if (blnSubmit) {
		var checkoutToAddressBtn = document.getElementById("add_to_bag_btn");
		checkoutToAddressBtn.click();
		//location.href = '/store/checkout/cart.jsp';
	}
}

function showPDError(strError) {
	var objPDErrorDiv = document.getElementById('divSizeMessage');
//	var objPDErrorText = document.getElementById('divPDErrorText');
	objPDErrorDiv.innerHTML = strError;
	objPDErrorDiv.style.display = 'block';

//	alert(strError);
}

function hidePDError() {
	try{
		var objPDErrorDiv = document.getElementById('divPDError');
		var objPDErrorText = document.getElementById('divPDErrorText');
		objPDErrorText.innerHTML = '';
		objPDErrorDiv.style.display = 'none';
	}
	catch(e){}
}

function updateNumCartItems(noCartItems) {
	var objNumItemsDiv = document.getElementById('divNumberOfItems');

	objNumItemsDiv.innerHTML = '<a onclick="toggleDiv(\'quickview\');" href="#">'+noCartItems+'&nbsp;ITEMS PREVIEW</a> - <a href="/store/checkout/cart.jsp">CHECKOUT</a>';

}

/*
//////////////////////////////////////////////////////////////////
//
//
	Giftcards
*/

function loadGCSwatches(){
//	alert('ya');
	$$('.giftcard_swatch_link').each(
		function(target){
//			alert("yo");
//			target.selected = false;
//			target.getFirst().addClass('giftcard_swatch');
			target.addEvent('click', function(){gcSwatchClick(target);});
//			target.addEvent('mouseover',function(){gcSwatchMouseover(target);});
//			target.addEvent('mouseout',function(){gcSwatchMouseout(target);});
		});
}

function gcSwatchMouseover(swatch){
	if (swatch.selected == false){
		swatch.getFirst().removeClass('product_swatches_norm');
		swatch.getFirst().addClass('product_swatches_sel');
	}
	$(swatchDescription).innerHTML = swatch.getProperty('rel').split('|')[0];
//	callScene7(swatch.getProperty('rel').split('|')[1]); // set Scene7 to the moused over swatch
}
function gcSwatchMouseout(swatch){
	if (swatch.selected == false){
		swatch.getFirst().removeClass('product_swatches_sel');
		swatch.getFirst().addClass('product_swatches_norm');
	}
	$(swatchDescription).innerHTML = selSwatchDesc;
//	callScene7(selSwatchS7info); // set Scene7 back to the selected swatch
}

function gcSwatchClick(swatch){
	//alert('clicky');
	swatch.getFirst().addClass('giftcard_swatch_selected');
}


function blurGCInput(e) {
	if (e.value=='') {
		if (e.name=='txtRecipientEmail') {
			e.value = 'Recipient\'s Email';
		} else if (e.name=='txtRecipientEmail2') {
			e.value = 'Confirm Recipient\'s Email';
		} else if (e.name=='txtToName') {
			e.value = 'Recipient\'s Name';
		} else if (e.name=='txtSenderEmail') {
			e.value = 'Your Email';
		}
	}
}
function focusGCInput(e) {
	if ((e.name=='txtRecipientEmail') && (e.value == 'Recipient\'s Email')) {
		e.value = '';
	} else if ((e.name=='txtRecipientEmail2') && (e.value == 'Confirm Recipient\'s Email')) {
		e.value = '';
	} else if ((e.name=='txtToName') && (e.value = 'Recipient\'s Name')) {
		e.value = '';
	} else if ((e.name=='txtSenderEmail') && (e.value = 'Your Email')) {
		e.value = '';
	}

}


function viewLargerOnload(){
	init();
	loadSwatches(null);
}


function viewLargerOnloadWithProduct(skuID,currentSize,currentQuantity) {
	init();
	loadSwatches(skuID);;
	dropDownSelect();
	setSize(currentSize);
	setQuantity(currentQuantity);
}

function validateEmail(strEmail) {
   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   if(reg.test(strEmail) == false) {
	  return false;
   }
}

