/* Original US JS */

Object.extend(spafinder, {
	Shop: {
		GiftCertificates: {
			tooltipNames: ['heartfelt_yoga_image','heartfelt_birthday_image','inner_peace_image','hip_birthday_image','pricingguide_element','OfferDetails_element', 'howitworks_element','cosmetic_image', '2009globalspafinder_image', 'bracelet_image', 'corneliaTravelKit_image', 'hotchoc_image', 'dippingkit_image', 'chocgiftbox_image','comogiftbox_image','comobodybath_image'],
			showOneToolTip: function(element) {
				if ($('SF_'+element)!==null){
					var name= element.id;
					if (name!='SF_'+element){
						$('SF_'+element).prototip.hide();
					} else {
						$('SF_'+element).prototip.show();
					}
				}
			},
			setToolTipClickEvent: function(){
				spafinder.Shop.GiftCertificates.tooltipNames.each(function(element){
					if ($('SF_'+element)!==null){
						$('SF_'+element).observe('click', function(event){
							spafinder.Shop.GiftCertificates.showOneToolTip(Event.element(event));
						});
					}
				});
			},
			getOtherAddress: function(element) {
				element = $(element);
				if ( typeof(element) == 'object' ) {
					if ( element.options ) {
						if ( element.options[element.options.selectedIndex].value == 'Other' ) {
							$('SF_other_address').setStyle({
								position: 'absolute',
								left: (element.cumulativeOffset().left - 10),
								top: (element.cumulativeOffset().top + 25),
								display: 'block'
							});
						} else {
							$('SF_other_address').setStyle({display: 'none'});
						}
					}
				}
			},
			getPricingGuide: function() {
				/*return new Tip('SF_pricingguide_element', $('SF_pricingguide_tip').innerHTML, {
					className: 'silvertip',
					style: 'silvertip',
					borderColor : '#cccccc',
					closeButton: true,
					duration: 0.3,
					effect: 'appear',
					hideOn: 'closeButton',
					hook: {target: 'topRight', tip: 'topLeft'},
					showOn: 'click',
					title: $('SF_pricingguide_element').innerHTML
				});*/
			},
			getHowItWorks: function() {
				/*return new Tip('SF_howitworks_element', $('SF_howitworks_tip').innerHTML, {
					className: 'silvertip',
					style: 'silvertip',
					closeButton: true,
					duration: 0.3,
					width: 300,
					borderColor : '#cccccc',
					effect: 'appear',
					hideOn: 'closeButton',
					hook: {target: 'topRight', tip: 'topLeft'},
					showOn: 'click',
					title: $('SF_howitworks_element').innerHTML
				});*/
			},
			getOfferDetails: function() {
				if( $('SF_OfferDetails_element')!=null) {
					return new Tip('SF_OfferDetails_element', $('SF_OfferDetails_tip').innerHTML, {
						className: 'silvertip',
						style: 'silvertip',
						closeButton: true,
						duration: 0.3,
						width: 300,
						borderColor : '#cccccc',
						effect: 'appear',
						hideOn: 'closeButton',
						stem: 'rightTop',
						offset: { x: 0, y: -10 },
						hook: {target: 'leftMiddle', tip: 'rightTop'},
						showOn: 'click',
						title: $('SF_OfferDetails_element').innerHTML
					});
				}
			},
			getShippingOffer: function(element) {
				var element = $(element);
				if ( element.options && (parseInt(element.options[element.options.selectedIndex].value) < 125) ) {
					$('ship-it-free').setStyle({display: 'block'});
				} else {
					$('ship-it-free').setStyle({display: 'none'});
				}
			},
			initEcards: function(){
				$('SF_inner_peace_image').prototip.show();
				$('SF_inner_peace_image').prototip.hide();
				$('SF_hip_birthday_image').prototip.show();
				$('SF_hip_birthday_image').prototip.hide();
				$('SF_heartfelt_yoga_image').prototip.show();
				$('SF_heartfelt_yoga_image').prototip.hide();
				$('SF_heartfelt_birthday_image').prototip.show();
				$('SF_heartfelt_birthday_image').prototip.hide();
				swfobject.embedSWF("/assets/others/shop/giftcertificates/ecards/inner_peace.swf?toText=Recipient%27s+Name&message=Your+message&fromText=Your+Name", "SWF_inner_peace", "350", "250", "8.0.0", "/assets/javascripts/library/swfobject/expressInstall.swf", {}, {allowScriptAccess: 'sameDomain', allowFullScreen: 'false', wmode: 'transparent'}, {});
				swfobject.embedSWF("/assets/others/shop/giftcertificates/ecards/hip_birthday.swf?toText=Recipient%27s+Name&message=Your+message&fromText=Your+Name", "SWF_hip_birthday", "350", "250", "8.0.0", "/assets/javascripts/library/swfobject/expressInstall.swf", {}, {allowScriptAccess: 'sameDomain', allowFullScreen: 'false', wmode: 'transparent'}, {});
				swfobject.embedSWF("/assets/others/shop/giftcertificates/ecards/heartfelt_birthday.swf?toText=Recipient%27s+Name&message=Your+message&fromText=Your+Name", "SWF_heartfelt_birthday", "350", "250", "8.0.0", "/assets/javascripts/library/swfobject/expressInstall.swf", {}, {allowScriptAccess: 'sameDomain', allowFullScreen: 'false', wmode: 'transparent'}, {});
				swfobject.embedSWF("/assets/others/shop/giftcertificates/ecards/heartfelt_yoga.swf?toText=Recipient%27s+Name&message=Your+message&fromText=Your+Name", "SWF_heartfelt_yoga", "350", "250", "8.0.0", "/assets/javascripts/library/swfobject/expressInstall.swf", {}, {allowScriptAccess: 'sameDomain', allowFullScreen: 'false', wmode: 'transparent'}, {});
			},
			setEcards: function() {
				['heartfelt_birthday', 'heartfelt_yoga', 'inner_peace', 'hip_birthday'].each(function(element) {
					new Tip('SF_'+element+'_image', '<div id="SWF_'+element+'">content</div>', {
						className: 'ecard',
						closeButton: true,
						hideOn: { element: 'closeButton', event: 'click' },
						showOn: 'click',
						width: 350,
						hook: { target: 'rightMiddle', tip: 'leftMiddle' },
						stem: 'leftMiddle',
						offset: { x: 6, y: 3 }
					});
				});
			},
			setAddOns: function() {
				['cosmetic', '2009globalspafinder', 'bracelet', 'corneliaTravelKit'].each(function(element) {
					new Tip('SF_'+element+'_image', $('SF_'+element+'_tip').innerHTML, {
						className: 'addon',
						style: 'addon',
						closeButton: true,
						duration: 0.3,
						effect: 'appear',
						hideOn: 'mouseleave',
						hook: {target: 'topRight', tip: 'topLeft'},
    					images: '/assets/javascripts/library/prototype/prototip/images/prototip/styles/silvertip/',
						// showOn: 'click',
						border: 0,
						radius: 0
					});
				});
			},
			validate: function(form) {
				if ( typeof(form) == 'object' ) {
					return true;
				}
			},
			submit: function() {
				if ( this.validate($('SF_shop_form')) ) {
					$('SF_shop_form').submit();
				}
			},
			clearEcards: function() {
				$$('input[name="value(card)"]').each(function(element) {
					element.checked = false;
				});
			}
		},
		Cart: {
			validate: function(form, action) {
				if ( typeof(form) == 'object' ) {
					if ( action ) {
						form.elements['value(action)'].value = action;
					}
					return true;
				}
			},
			submit: function(action) {
				if ( this.validate($('SF_shop_form'), action) ) {
					$('SF_shop_form').submit();
				}
			}
		},
		Shipping: {
			setShippingOptions: function() {
				$$('table[id*="usShipping"] input, table[id*="canadaShipping"] input').each(function(input) {
					if ( input.value == '16' ) {
						input.checked = true;
						$$('div.signature_required').each(function(signature) {
							signature.hide();
						});
					}
					input.observe('click', function(event) {
						$$('table[id*="usShipping"] input[value="'+input.value+'"], table[id*="canadaShipping"] input[value="'+input.value+'"]').each(function(element) {
							var type = element.type.toLowerCase();
							if ( type == 'radio' ) {
								element.checked = true;
							} else if ( type == 'checkbox' ) {
								element.checked = ( input.checked ? true : false);
							}
						});
					});
				});
			},
			getGreetingCard: function(id) {
				var form = document.forms['shippingAddressForm'];
				var itemPcard = "pcardType[" + id + "]";
				var cardIsSelected = false;
				for ( i=0; i<form.elements[itemPcard].length; i++ ) {
					if ( form.elements[itemPcard][i].checked == true ) {
						cardIsSelected = true;
						break;
					}
				}
				if ( !cardIsSelected ) {
					alert("Please select a card.");
					return false;
				}
				var to = document.shippingAddressForm.elements["pcardTo["+id+"]"];
				var from = document.shippingAddressForm.elements["pcardFrom["+id+"]"];
				var message = document.shippingAddressForm.elements["pcardMessage["+id+"]"];
				if ( to.value.trim().length <= 0 ) {
					alert("Please complete the To field.");
					to.activate();
					return false;
				} else if ( from.value.trim().length <= 0 ) {
					alert("Please complete the From field.");
					from.activate();
					return false;
				} else if ( message.value.trim().length <= 0 ) {
					alert("Please complete the Message field.");
					message.activate();
					return false;
				} else {
					document.printCardForm.pcardAmount.value = document.shippingAddressForm.elements["pcardAmount["+id+"]"].value.trim();
					document.printCardForm.pcardTo.value = to.value.trim();
					document.printCardForm.pcardFrom.value = from.value.trim();
					document.printCardForm.pcardMessage.value = message.value.trim();
					var types = $A(document.shippingAddressForm.elements["pcardType["+id+"]"]);
					types.each(function(type) {
						if ( type.checked ) {
							document.printCardForm.pcardType.value = type.value.trim();
							throw $break;
						} else {
							document.printCardForm.pcardType.value = types.first().value.trim();
						}
					});
					var reference = spafinder.Window.open('about:blank', {name:'Popup_Window'});
					document.printCardForm.target = 'Popup_Window';
					document.printCardForm.submit();
					spafinder.Window.opened[reference].focus();
				}
			},
			previewECard: function(id) {
				if ( spafinder.Shop.Shipping.validateEcard(id) ) {
					var form = document.forms['shippingAddressForm'];
					var itemEcard = 'orderItems['+id+'].ecard';
					var cardID = '';
					var cards = $A(form.elements[itemEcard + '.cardID']);
					cards.each(function(card) {
						if ( card.checked ) {
							cardID = card.value.trim();
							throw $break;
						} else {
							cardID = cards.first().value.trim();
						}
					});
					var toText = form.elements[itemEcard + '.toText'].value.trim();
					var fromText = form.elements[itemEcard + '.fromText'].value.trim();
					var message = form.elements[itemEcard + '.message'].value.trim();
					var reference = spafinder.Window.open('/ecard/preview.jsp?cardID='+cardID+'&toText='+toText+'&fromText='+fromText+'&message='+message, {name:'Popup_Window',width:640,height:360});
					spafinder.Window.opened[reference].focus();
				}
			},
			setMaxLength: function(field, limit, counter) {
				if ( field.value.trim().length > limit ) {
					field.value = field.value.substring(0, limit);
				}
			},
			getTerms: function(state) {
				if ( state ) {
					$("freeShipping").style.visibility = "visible";
				} else {
					$("freeShipping").style.visibility = "hidden";
				}
			},
			getCATerms: function(state) {
				if ( state ) {
					$("freeCAShipping").style.visibility = "visible";
				} else {
					$("freeCAShipping").style.visibility = "hidden";
				}
			},
			usOptions:Array(),
			caOptions:Array(),
			initOptionsArray: function(){
					var stateSelector = $('shippingAddress.state');
					var chk = 0;
					stateSelector.childElements().each(function(optionEl, index){
						if (optionEl.value==""){chk++;  }
						if (chk==1){ // US
							spafinder.Shop.Shipping.usOptions.push(optionEl);
						}
						else{  // CS
							spafinder.Shop.Shipping.caOptions.push(optionEl);
						}
					});
			},
			getCanadianAlert: function() {
				if ( document.forms['shippingAddressForm'].elements["shippingAddress.country"].value == "CA" ) {
					// change state/province options
					var stateSelector = $('shippingAddress.state');
					var oldval =  stateSelector.value;
					stateSelector.update('');
					spafinder.Shop.Shipping.caOptions.each(function(el){
						stateSelector.insert(el);
					});
					stateSelector.value = oldval;

					$$('table[id*="shipDetails"]').each(function(element) {
						if ( element.style.display == 'block' ) {
							var index = element.id.replaceAll('shipDetails', '');
							if ( ($('productNAME'+index).innerHTML.toLowerCase().indexOf('spafinder gift certificate') != -1) && ($('productNAME'+index).className == 'onBox') ) {
								$('canadaAlert'+index).style.display = "block";
								$('usAlert'+index).style.display = "none";
								$('canadaShipping'+index).style.display = "block";
								$('usShipping'+index).style.display = "none";
								$$('#usShipping'+index+' input[type="radio"]').each(function(sub_element) {
									sub_element.checked = false;
								});
								$$('#canadaShipping'+index+' input[value="17"]').each(function(sub_element) {
									sub_element.checked = true;
								});
							}
							throw $break;
						}
					});
				} else if (document.forms['shippingAddressForm'].elements["shippingAddress.country"].value == "US") {
					// change state/province options
					var stateSelector = $('shippingAddress.state');
					var oldval =  stateSelector.value;
					stateSelector.update('');
					spafinder.Shop.Shipping.usOptions.each(function(el){
						if (el.value==oldval){ el.selected=true; }
						stateSelector.insert(el);
					});
					stateSelector.value = oldval;
					$$('table[id*="shipDetails"]').each(function(element) {
						if ( element.style.display == 'block' ) {
							var index = element.id.replaceAll('shipDetails', '');
							$('usAlert'+index).style.display = "inline";
							$('canadaAlert'+index).style.display = "none";
							$('canadaShipping'+index).style.display = "none";
							$('usShipping'+index).style.display = "block";
							$$('#canadaShipping'+index+' input[type="radio"]').each(function(sub_element) {
								sub_element.checked = false;
							});
							$$('#usShipping'+index+' input[value="5"]').each(function(sub_element) {
								sub_element.checked = true;
							});
							$$('#usShipping'+index+' input[value="16"]').each(function(sub_element) {
								sub_element.checked = true;
							});
							throw $break;
						}
					});
				}
			},
			getUKAlert: function() {
				if ( document.forms['shippingAddressForm'].elements["shippingAddress.country"].value == "UK" ) {
					$$('table[id*="shipDetails"]').each(function(element) {
						if ( element.style.display == 'block' ) {
							var index = element.id.replaceAll('shipDetails', '');
							if ( ($('productNAME'+index).innerHTML.toLowerCase().indexOf('spafinder gift certificate') != -1) && ($('productNAME'+index).className == 'onBox') ) {
								$('canadaShipping'+index).style.display = "block";
								$('usShipping'+index).style.display = "none";
								$$('#usShipping'+index+' input[type="radio"]').each(function(sub_element) {
									sub_element.checked = false;
								});
								$$('#canadaShipping'+index+' input[value="17"]').each(function(sub_element) {
									sub_element.checked = true;
								});
							}
							throw $break;
						}
					});
				} else {
					$$('table[id*="shipDetails"]').each(function(element) {
						if ( element.style.display == 'block' ) {
							var index = element.id.replaceAll('shipDetails', '');
							$('canadaShipping'+index).style.display = "none";
							$('usShipping'+index).style.display = "block";
							$$('#canadaShipping'+index+' input[type="radio"]').each(function(sub_element) {
								sub_element.checked = false;
							});
							$$('#usShipping'+index+' input[value="5"]').each(function(sub_element) {
								sub_element.checked = true;
							});
							throw $break;
						}
					});
				}
			},
			getItem: function(item) {
				$$('table[id*="shipDetails"]').each(function(element, index) {
					$("shipDetails" + index).style.display = (index == item ? "block" : "none");
					$("productNAME" + index).className = (index == item ? "onBox" : "offBox");
				});
				if ( ($('productNAME'+item).innerHTML.toLowerCase().indexOf('spafinder gift certificate') != -1) && (document.forms['shippingAddressForm']['shippingAddress.country'].value == 'CA') ) {
					$$('input[value="17"]').each(function(element, index) {
						element.checked = true;
					});
					$('canadaAlert'+item).style.display = "block";
					$('usAlert'+item).style.display = "none";
					$('canadaShipping'+item).style.display = "block";
					$('usShipping'+item).style.display = "none";
				} else {
					$('canadaAlert'+item).style.display = "none";
					$('usAlert'+item).style.display = "inline";
					$('usShipping'+item).style.display = "block";
					$('canadaShipping'+item).style.display = "none";
				}
			},
			clearECard: function(item) {
				var form = document.forms['shippingAddressForm'];
				var itemEcard = "orderItems[" + item + "].ecard";
				for ( i=0; i<form.elements[itemEcard + ".cardID"].length; i++ ) {
					if ( form.elements[itemEcard + ".cardID"][i].checked == true ) {
						document.forms['shippingAddressForm'].elements[itemEcard + ".cardID"][i].checked = false;
						break;
					}
				}
				form.elements[itemEcard + ".toText"].value = "";
				form.elements[itemEcard + ".fromText"].value = "";
				form.elements[itemEcard + ".toEmail"].value = "";
				form.elements[itemEcard + ".fromEmail"].value = "";
				form.elements[itemEcard + ".message"].value = "";
			},
			validateLogin: function() {
				if ( !/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test($('SF_login_username').value) ) {
					alert("Please enter a valid email address");
					$('SF_login_username').activate();
					return false;
				} else if ( $('SF_login_password').value.length < 2 ) {
					alert("Your password seems incorrect. Please check it and try again.");
					$('SF_login_password').activate();
					return false;
				} else {
					return true;
				}
			},
			validate: function(form) {
				if ( typeof(form) == 'object' ) {

					var first_name = form.elements['shippingAddress.first_name'];
					var last_name = form.elements['shippingAddress.last_name'];
					var address = form.elements['shippingAddress.address'];
					var address2 = form.elements['shippingAddress.address2'];
					var city = form.elements['shippingAddress.city'];
					var state = form.elements['shippingAddress.state'];
					var country = form.elements['shippingAddress.country'];
					var postal_code = form.elements['shippingAddress.postal_code'];
					var phone = form.elements['shippingAddress.phone'];
					var email = form.elements['shippingAddress.email'];

					if ( first_name.value.trim().length <= 0 ) {
						alert("Please enter a First Name.");
						first_name.activate();
						return false;
					} else if ( last_name.value.trim().length <= 0 ) {
						alert("Please enter a Last Name.");
						last_name.activate();
						return false;
					} else if ( address.value.trim().length <= 0 ) {
						alert("Please enter an Address.");
						address.activate();
						return false;
					} else if ( (address.value.trim().length > 0) && (address.value.toLowerCase().indexOf('box') != -1) ) {
						if ( (country.value.trim() == 'US') || (country.value.trim() == 'CA') ) {
						alert("Sorry, we cannot ship to P.O. Boxes.");
						address.activate();
						return false;}
					} else if ( (address2.value.trim().length > 0) && (address2.value.toLowerCase().indexOf('box') != -1) ) {
						if ( (country.value.trim() == 'US') || (country.value.trim() == 'CA') ) {
						alert("Sorry, we cannot ship to P.O. Boxes.");
						address2.activate();
						return false;}
					} else if ( city.value.trim().length <= 0 ) {
						alert("Please enter a City.");
						city.activate();
						return false;
					} else if ( country.value.trim().length <= 0 ) {
						alert("Please select a Country.");
						country.activate();
						return false;
					} else if ( (email.value.trim().length > 0) && !/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(email.value) ) {
						alert("Please enter a valid Recipient Email address.");
						email.activate();
						return false;
					} else if ( (country.value.trim() == 'US') || (country.value.trim() == 'CA') ) {
						if ( state.value.trim().length <= 0 ) {
							alert("Please select a State.");
							state.activate();
							return false;
						} else if ( postal_code.value.trim().length <= 0 ) {
							alert("Please enter a Zip / Postal Code.");
							postal_code.activate();
							return false;
						} else if ( postal_code.value.trim().length < 5 ) {
							alert("The Zip / Postal Code must be five characters.");
							postal_code.activate();
							return false;
						}
					}

					var i = 0;
					var element = form.elements['orderItems[' + i + '].optionBean(item_gm_body)'];
					var element1 = form.elements['orderItems[' + i + '].optionBean(item_gm_body1)'];
					var element2 = form.elements['orderItems[' + i + '].optionBean(item_gm_body2)'];
					while ( element != null ) {
						if ( element1.value != "" ) {
							element.value = element1.value + "\n";
						}
						if  ( element2.value != "" ) {
							element.value += element2.value;
						}
						i++;
						element = form.elements['orderItems[' + i + '].optionBean(item_gm_body)'];
					}

					for ( j=0; j<form.elements.length; j++ ) {
						var signature = form.elements[j];
						var str = form.elements[j].name;
						if ( str.substring(0, 17) == 'orig_SKU_SHIP_SIG' ) {
							var idx = str.substring(18, str.length-1);
							var substr = 'orderItems[' + idx + '].optionBean(ship_sigreq)';
							var option_sig = form.elements[substr];
							if ( signature.checked ) {
								option_sig.value = "Y";
							} else {
								option_sig.value = "N";
							}
							break;
						} else if ( str.substring(str.length - 14) == 'shippingMethod' ) {
							var shippingMethod = form.elements[str];
							var groundRadio = shippingMethod[0];
							if ( (state.value == "AK" || state.value == "HI") && groundRadio.checked ) {
								alert("Shipments going to Alaska or Hawaii must be shipped using either next-day or second-day service. Please change your selection.");
								groundRadio.activate();
								return false;
							}
						}
					}

					var retVal = true;
					var country = document.forms['shippingAddressForm'].elements["shippingAddress.country"].value;
					$$('table[id*="Shipping"] * input[type="radio"]').each(function(element) {
						if ( element.checked ) {
							if ( (country == "CA") && (element.value == '17') && !($('accepttermscanada').checked) ) {
								alert('You must accept SpaFinder terms and condition to complete your order.');
								element.activate();
								retVal = false;
								throw $break;
							}
						}
					});
					if ( !retVal ) {
						return retVal;
					}

					var j = 0;
					var itemEcard = "orderItems[" + j + "].ecard";
					while ( $("shipDetails" + j) != null ) {
						if ( form.elements['orderItems[' + j + '].card'].checked != true ) {
							var itemEcard = "orderItems[" + j + "].ecard";
							for ( k=0; k<form.elements[itemEcard + ".cardID"].length; k++ ) {
								if ( form.elements[itemEcard + ".cardID"][k].checked == true ) {
									form.elements[itemEcard + ".cardID"][k].checked = false;
									break;
								}
							}
							form.elements[itemEcard + ".toText"].value = "";
							form.elements[itemEcard + ".fromText"].value = "";
							form.elements[itemEcard + ".toEmail"].value = "";
							form.elements[itemEcard + ".fromEmail"].value = "";
							form.elements[itemEcard + ".message"].value = "";
						} else if ( !spafinder.Shop.Shipping.validateEcard(j) ) {
							return false;
						}
						j++;
						itemEcard = "orderItems[" + j + "].ecard";
					}
					return true;
				}
			},
			validateEcard: function(item) {
				var form = document.forms['shippingAddressForm'];
				var itemEcard = "orderItems[" + item + "].ecard";
				var cardIsSelected = false;
				for ( i=0; i<form.elements[itemEcard + ".cardID"].length; i++ ) {
					if ( form.elements[itemEcard + ".cardID"][i].checked == true ) {
						cardIsSelected = true;
						break;
					}
				}
				if ( !cardIsSelected ) {
					alert("Please select a card.");
					spafinder.Shop.Shipping.getItem(item);
					return false;
				} else if ( form.elements[itemEcard + ".toText"].value == "" ) {
					alert("Please enter the Recipient's Name.");
					spafinder.Shop.Shipping.getItem(item);
					form.elements[itemEcard + ".toText"].focus();
					return false;
				} else if ( form.elements[itemEcard + ".fromText"].value == "" ) {
					alert("Please enter Your Name.");
					spafinder.Shop.Shipping.getItem(item);
					form.elements[itemEcard + ".fromText"].focus();
					return false;
				} else if ( (form.elements[itemEcard + ".toEmail"].value == "") || !/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(form.elements[itemEcard + ".toEmail"].value) ) {
					alert("Please enter the Recipient's Email address.");
					spafinder.Shop.Shipping.getItem(item);
					form.elements[itemEcard + ".toEmail"].focus();
					return false;
				} else if ( (form.elements[itemEcard + ".fromEmail"].value == "") || !/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(form.elements[itemEcard + ".fromEmail"].value) ) {
					alert("Please enter Your Email address.");
					spafinder.Shop.Shipping.getItem(item);
					form.elements[itemEcard + ".fromEmail"].focus();
					return false;
				} else if ( form.elements[itemEcard + ".message"].value == "" ) {
					alert("Please enter Your Message.");
					spafinder.Shop.Shipping.getItem(item);
					form.elements[itemEcard + ".message"].focus();
					return false;
				} else if ( form.elements[itemEcard + ".message"].value.length > 250 ) {
					alert("Please limit Your Message to 250 characters.");
					spafinder.Shop.Shipping.getItem(item);
					form.elements[itemEcard + ".message"].focus();
					return false;
				}
				return true;
			},
			submit: function(action) {
				if ( this.validate(document.forms['shippingAddressForm']) ) {
					document.forms['shippingAddressForm'].submit();
				}
			},
			set_super_saver_receipt_tip: function() {
				new Tip('super_saver_receipt', $('super_saver_receipt_copy').innerHTML, {
					effect: 'appear',
					showOn: 'mouseenter',
					hideOn: {element: 'tip', event: 'mouseleave'},
					hideAfter: 3,
					hook: {target: 'bottomMiddle', tip: 'topMiddle'},
					stem: { position: 'topMiddle', height: 12, width: 15 },
					offset: { x: 0, y: -5 },
					border: 0,
					radius: 5,
					width: 200,
					viewport: true,
					title: false
				});
			}
		}
	}
});

/* EMEA Functions */
/* JS to control envelope check boxes and hidden input */
Object.extend(spafinder.Shop.GiftCertificates, {
	EnvelopeControls:function () {
		$('SF_giftbox1_value').observe('click', doEnvelopes);
		$('SF_giftbox7_value').observe('click', doEnvelopes);
		$('SF_giftbox6_value').observe('click', doEnvelopes);
		$('SF_giftbox8_value').observe('click', doEnvelopes);

		function doEnvelopes(event) {
			//Master envelope control
			var envelope_control = document.SF_shop_form.SF_giftbox.value;

			//Individual envelope check boxes
			var envelopes = new Array();
			envelopes[0] = document.SF_shop_form.SF_giftbox1_value;
			envelopes[1] = document.SF_shop_form.SF_giftbox7_value;
			envelopes[2] = document.SF_shop_form.SF_giftbox6_value;
			envelopes[3] = document.SF_shop_form.SF_giftbox8_value;

			//Clear all envelopes but check this one if it was checked originally
			if (element = event.element().checked == true) {
				for (checkbox in envelopes) {
					envelopes[checkbox].checked = false;
				}
				event.element().checked = true;
			}

			var any_checked = false;
			for (checkbox in envelopes) {
				if (envelopes[checkbox].checked == true) {
					any_checked = true;
				}
			}
			//Update master envelopes control
			if (any_checked) {
				envelope_control = 'Y';
			}
			else {
				envelope_control = 'N';
			}
		}
	},
	setAddOnsUK: function() {
		['comogiftbox', 'directory'].each(function(element) {
			new Tip('SF_'+element+'_image', $('SF_'+element+'_tip').innerHTML, {
				className: 'addon',
				style: 'addon',
				closeButton: true,
				duration: 0.3,
				effect: 'appear',
				hideOn: 'mouseleave',
				hook: {target: 'topRight', tip: 'topLeft'},
				showOn: 'mouseenter',
				border: 0,
				radius: 0
			});
		});
	},
	getOtherAddressUK: function(element) {
		element = $(element);
		if ( typeof(element) == 'object' ) {
			if ( element.options ) {
				if ( element.options[element.options.selectedIndex].value == 'Other' ) {
					$('SF_other_addressUK').setStyle({
						position: 'absolute',
						left: (element.cumulativeOffset().left - 10),
						top: (element.cumulativeOffset().top + 25),
						display: 'block'
					});
				} else {
					$('SF_other_addressUK').setStyle({display: 'none'});
				}
			}
		}
	}
});