function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function isEmail(elem){
	var str = elem.value;
	var sCrit = /^.+@.+\..{2,3}$/;
	if(!str.match(sCrit)){
		return false;	
	}else{
		return true;
	}	
}

function validateRegister(){
	var error = "";	var message = "";
	var title = document.getElementById("title");
	var first_name = document.getElementById("first_name");
	var surname = document.getElementById("surname");
	var email_address = document.getElementById("email_address");
	var telephone_number = document.getElementById("telephone_number");
	var mobile_number = document.getElementById("mobile_number");
	var newsletter = document.getElementById("newsletter");
	var id_number = document.getElementById("id_number");
	var dob_day = document.getElementById("dob_day");
	var dob_month = document.getElementById("dob_month");
	var dob_year = document.getElementById("dob_year");
	var terms = document.getElementById("terms");
// Billing
	var billing_address_one = document.getElementById("billing_address_one");
	var billing_address_two = document.getElementById("billing_address_two");
	var billing_city = document.getElementById("billing_city");
	var billing_postal_code = document.getElementById("billing_postal_code");
	var billing_country_code = document.getElementById("billing_country_code");
// Delivery
	var use_billing = document.getElementById("use_billing");
	var delivery_address_one = document.getElementById("delivery_address_one");
	var delivery_address_two = document.getElementById("delivery_address_two");
	var delivery_city = document.getElementById("delivery_city");
	var delivery_postal_code = document.getElementById("delivery_postal_code");
	var delivery_country_code = document.getElementById("delivery_country_code");
	
	if(!title.value){
		error += "Title is mandatory\n";
	}
	if(!first_name.value){
		error += "First Name is mandatory\n";
	}
	if(!surname.value){
		error += "Surname is mandatory\n";
	}
	if(!email_address.value){
		error += "Email Address is mandatory\n";
	}else if(!isEmail(email_address)){
		error += "Email Address is invalid\n";
	}
	if(!telephone_number.value && !mobile_number.value){
		error += "Telephone Number OR Mobile Number is mandatory\n";
	}
	if(!dob_day.value || !dob_month.value || !dob_year.value){
		error += "Birth Date is mandatory\n";
	}
	if(!id_number.value){
		error += "ID Number is mandatory\n";
	}
	if(!terms.checked){
		error += "Please accept our Terms and Conditions\n";
	}
	
	if(!billing_address_one.value){
		error += "Billing Address is mandatory\n";
	}
	if(!billing_city.value){
		error += "Billing City is mandatory\n";
	}
	if(!billing_postal_code.value){
		error += "Billing Postal Code is mandatory\n";
	}
	if(!billing_country_code.value){
		error += "Billing Country is mandatory\n";
	}

	if(!use_billing.checked){
		if(!delivery_address_one.value){
			error += "Delivery Address is mandatory\n";
		}
		if(!delivery_city.value){
			error += "Delivery City is mandatory\n";
		}
		if(!delivery_postal_code.value){
			error += "Delivery Postal Code is mandatory\n";
		}
		if(!delivery_country_code.value){
			error += "Delivery Country is mandatory\n";
		}		
	}
	
	if(error){
		alert("Please check the following errors...\n\n"+error+"\nPlease correct these and resubmit your application.");
		return false;	
	}else{
		return true;
	}
}

function validateAddress(){
	var error = "";	var message = "";
// Billing
	var billing_address_one = document.getElementById("billing_address_one");
	var billing_address_two = document.getElementById("billing_address_two");
	var billing_city = document.getElementById("billing_city");
	var billing_postal_code = document.getElementById("billing_postal_code");
	var billing_country_code = document.getElementById("billing_country_code");
// Delivery
	var use_billing = document.getElementById("use_billing");
	var delivery_address_one = document.getElementById("delivery_address_one");
	var delivery_address_two = document.getElementById("delivery_address_two");
	var delivery_city = document.getElementById("delivery_city");
	var delivery_postal_code = document.getElementById("delivery_postal_code");
	var delivery_country_code = document.getElementById("delivery_country_code");	
	
	if(!billing_address_one.value){
		error += "Billing Address is mandatory\n";
	}
	if(!billing_city.value){
		error += "Billing City is mandatory\n";
	}
	if(!billing_postal_code.value){
		error += "Billing Postal Code is mandatory\n";
	}
	if(!billing_country_code.value){
		error += "Billing Country is mandatory\n";
	}

	if(!delivery_address_one.value){
		error += "Delivery Address is mandatory\n";
	}
	if(!delivery_city.value){
		error += "Delivery City is mandatory\n";
	}
	if(!delivery_postal_code.value){
		error += "Delivery Postal Code is mandatory\n";
	}
	if(!delivery_country_code.value){
		error += "Delivery Country is mandatory\n";
	}
	
	if(error){
		alert("Please check the following errors...\n\n"+error+"\nPlease correct these and resubmit your application.");
		return false;	
	}else{
		return true;
	}	
	
}

function validateLogin(){
	var error = "";	var message = "";
	var email_address = document.getElementById("email_address_login");
	var pssword = document.getElementById("pssword");

	if(!email_address.value){
		error += "Please enter your email address\n";
	}else if(!isEmail(email_address)){
		error += "Your email address is invalid\n";
	}

	if(!pssword.value){
		error += "Please enter your password\n";
	}	

	if(error){
		alert("Please check the following errors...\n\n"+error+"\nPlease correct these and retry your login.");
		return false;	
	}else{
		return true;
	}	
}

function validateUpdate(){
	var error = "";	var message = "";
	var title = document.getElementById("title");
	var first_name = document.getElementById("first_name");
	var surname = document.getElementById("surname");
	var email_address = document.getElementById("email_address");
	var telephone_number = document.getElementById("telephone_number");
	var mobile_number = document.getElementById("mobile_number");
	var newsletter = document.getElementById("newsletter");

	if(!title.value){
		error += "Title is mandatory\n";
	}
	if(!first_name.value){
		error += "First Name is mandatory\n";
	}
	if(!surname.value){
		error += "Surname is mandatory\n";
	}
	if(!email_address.value){
		error += "Email Address is mandatory\n";
	}else if(!isEmail(email_address)){
		error += "Email Address is invalid\n";
	}
	if(!telephone_number.value){
		error += "Telephone Number is mandatory\n";
	}
	
	if(error){
		alert("Please check the following errors...\n\n"+error+"\nPlease correct these and resubmit your application.");
		return false;	
	}else{
		return true;
	}	
}

function validatePasswordChange(){
	var error = "";	var message = "";
	var pssword = document.getElementById("pssword");
	var new_password = document.getElementById("new_password");
	var repeat_password = document.getElementById("repeat_password");

	if(!pssword.value){
		error += "Old Password is mandatory\n";
	}
	if(!new_password.value){
		error += "New Password is mandatory\n";
	}
	if(new_password.value != repeat_password.value){
		error += "New Password do not match\n";
	}
	
	if(error){
		alert("Please check the following errors...\n\n"+error+"\nPlease correct these and resubmit your change password application.");
		return false;	
	}else{
		return true;
	}	
}

function validateForgotPassword(){
	var error = "";	var message = "";
	var email_address = document.getElementById("email_address");

	if(!email_address.value){
		error += "Please enter your email address\n";
	}else if(!isEmail(email_address)){
		error += "Your email address is invalid\n";
	}
	
	if(error){
		alert("Please check the following errors...\n\n"+error+"\nPlease correct these and resubmit your request for your password.");
		return false;	
	}else{
		return true;
	}	
}

function validateSubscribe(){
	var error = "";	var message = "";
	var first_name = document.getElementById("first_name");
	var surname = document.getElementById("surname");
	var email_address = document.getElementById("email_address");
	var mobile_number = document.getElementById("mobile_number");
	var terms = document.getElementById("terms");


	if(!first_name.value){
		error += "First Name is mandatory\n";
	}
	if(!surname.value){
		error += "Surname is mandatory\n";
	}
	if(!email_address.value){
		error += "Email Address is mandatory\n";
	}else if(!isEmail(email_address)){
		error += "Email Address is invalid\n";
	}
	
	if(!terms.checked){
		error += "Please select the \"I agree to receive communication\" checkbox\n";
	}
	
	if(error){
		alert("Please check the following errors...\n\n"+error+"\nPlease correct these and resubmit your subscription request.");
		return false;	
	}else{
		return true;
	}	
}

function validateUnSubscribe(){
	var error = "";	var message = "";
	var email_address = document.getElementById("email_address");

	if(!email_address.value){
		error += "Email Address is mandatory\n";
	}else if(!isEmail(email_address)){
		error += "Email Address is invalid\n";
	}
	
	if(error){
		alert("Please check the following errors...\n\n"+error+"\nPlease correct these and resubmit your unsubscription request.");
		return false;	
	}else{
		return true;
	}	
}

function validatePurchase(f){
	var error = "";	var message = "";
	var delivery_type_id = document.getElementById("delivery_type_id");
	var has_address = document.getElementById("has_address");
	var has_title = document.getElementById("has_title");
	
	var optEFT = document.getElementById("optEFT");
	var optCC = document.getElementById("optCC");
	
	if(!optEFT.checked && !optCC.checked){
		error += "Please select a payment method\n";
	}

	if(!delivery_type_id.value){
		error += "Please select a delivery method\n";
	}
	
	if(!has_address.value){
		error += "Please update your address before continuing\n";
	}

	if(!has_title.value){
		error += "Please update your profile before continuing\n";
	}

// set action based on payment type

	if(optEFT.checked){
		f.action="eft-payment.php";
	}else if(optCC.checked){
		f.action="https://secure.safeshop.co.za/SafePay/Lite/Index.asp";
	}
	
	if(error){
		alert("Please check the following errors...\n\n"+error+"\nPlease correct these before continuing with your purchase.");
		return false;	
	}else{
		return true;
	}	
}

function validateWishlistSend(){
	var error = "";	var message = "";
	var recipient_name = document.getElementById("recipient_name");
	var recipient_email_address = document.getElementById("recipient_email_address");

	if(!recipient_name.value){
		error += "Recipient's Name is mandatory\n";
	}	
	
	if(!recipient_email_address.value){
		error += "Recipient's Email Address is mandatory\n";
	}else if(!isEmail(recipient_email_address)){
		error += "Recipient's Email Address is invalid\n";
	}
	
	if(error){
		alert("Please check the following errors...\n\n"+error+"\nPlease correct these and resubmit your wishlist request.");
		return false;	
	}else{
		return true;
	}		
}

function setFragrance(Gender){
	var newElem;
	var where = (navigator.appName == "Microsoft Internet Explorer") ? -1 : null;
	var fragChoose = document.getElementById("fragrance_id");
	
	while(fragChoose.options.length){
		fragChoose.remove(0);
	}
	var choice = Gender.options[Gender.selectedIndex].value;
	var fragrances = fragranceArray[choice];
	newElem = document.createElement("option");
	newElem.text = "< Select Type >";
	newElem.value = "";
	fragChoose.add(newElem, where);
	if(choice != ""){
		for(var i = 0; i < fragrances.length+where; i++){
			newElem = document.createElement("option");
			newElem.text = fragrances[i].text;
			newElem.value = fragrances[i].value;
			fragChoose.add(newElem, where);
		}
	}		
}

function setProductType(Gender){
	var newElem;
	var where = (navigator.appName == "Microsoft Internet Explorer") ? -1 : null;
	var prodChoose = document.getElementById("product_type_id");
	
	while(prodChoose.options.length){
		prodChoose.remove(0);
	}
	var choice = Gender.options[Gender.selectedIndex].value;
	var products = productTypeArray[choice];
	newElem = document.createElement("option");
	newElem.text = "< Select Type >";
	newElem.value = "";
	prodChoose.add(newElem, where);
	if(choice != ""){
		for(var i = 0; i < products.length+where; i++){
			newElem = document.createElement("option");
			newElem.text = products[i].text;
			newElem.value = products[i].value;	
			prodChoose.add(newElem, where);				
		}
	}		
}

function validateSearch(){
	var error = "";	var message = "";
	var product_type_id = document.getElementById("product_type_id");
	var product_type_id_value = product_type_id.options[product_type_id.selectedIndex].value
	
	var fragrance_id = document.getElementById("fragrance_id");
	var fragrance_id_value = fragrance_id.options[fragrance_id.selectedIndex].value
	
	if(!fragrance_id_value){
		error += "Fragrance is mandatory\n";
	}

	if(!product_type_id_value){
		error += "Product Type is mandatory\n";
	}	
	
	if(error){
		alert("Please check the following errors...\n\n"+error+"\nPlease correct these and resubmit your wishlist request.");
		return false;	
	}else{
		return true;
	}	
}

function validateCustomerService(){
	var error = "";	var message = "";
	var title = document.getElementById("title");
	var first_name = document.getElementById("first_name");
	var surname = document.getElementById("surname");
	var email_address = document.getElementById("email_address");
	var telephone_number = document.getElementById("telephone_number");
	var query = document.getElementById("query");

	if(!title.value){
		error += "Title is mandatory\n";
	}
	if(!first_name.value){
		error += "First Name is mandatory\n";
	}
	if(!surname.value){
		error += "Surname is mandatory\n";
	}
	if(!email_address.value){
		error += "Email Address is mandatory\n";
	}else if(!isEmail(email_address)){
		error += "Email Address is invalid\n";
	}
	if(!telephone_number.value){
		error += "Telephone is mandatory\n";
	}
	
	if(!query.value){
		error += "Please enter a query\n";
	}
	
	if(error){
		alert("Please check the following errors...\n\n"+error+"\nPlease correct these and resubmit your subscription request.");
		return false;	
	}else{
		return true;
	}	
}

function validateContactForm(){
	var error = "";	var message = "";
	var title = document.getElementById("title");
	var first_name = document.getElementById("first_name");
	var surname = document.getElementById("surname");
	var email_address = document.getElementById("email_address");
	var telephone_number = document.getElementById("telephone_number");
	var query = document.getElementById("query");

	if(!title.value){
		error += "Title is mandatory\n";
	}
	if(!first_name.value){
		error += "First Name is mandatory\n";
	}
	if(!surname.value){
		error += "Surname is mandatory\n";
	}
	if(!email_address.value){
		error += "Email Address is mandatory\n";
	}else if(!isEmail(email_address)){
		error += "Email Address is invalid\n";
	}
	
	if(!telephone_number.value){
		error += "Telephone is mandatory\n";
	}	
	
	if(!query.value){
		error += "Please enter a query\n";
	}
	
	if(error){
		alert("Please check the following errors...\n\n"+error+"\nPlease correct these and resubmit your subscription request.");
		return false;	
	}else{
		return true;
	}	
}

function showPopUp($id, $state){
	var desc_div = document.getElementById($id);
	
	if($state){
		desc_div.style.visibility = "visible";	
	}else{
		desc_div.style.visibility = "hidden";
	}
}

function checkCountry(select){
	var countryCode = select.options[select.selectedIndex].value;
	var use_billing = document.getElementById("use_billing");
	
	if(countryCode != 'ZA'){
		use_billing.checked = false;
		use_billing.disabled = true;
	}else if(countryCode == 'ZA'){
		use_billing.disabled = false;
	}
}

function validatePromo(redirect){
	
	
	
	var is_promotion = document.getElementById("is_promotion");
	var frmPromotion = document.getElementById("frmPromotion");
	
	if(is_promotion.value && !frmPromotion.value){
		alert("You have not selected your free 15ml fragrance of your choice. \n             Please do so, before proceeding to checkout"
);
	}else{
		location.href=redirect;
	}
}