/*=======================================================================================================================*/
/* UltraSunUSA.com (Copyright 2003 - 2010)                                                                               */
/* Created By: Bradley R. Clampitt (bradclampitt@gmail.com)																															 */
/* Modifications Date: December 13, 2009																															  								 */
/*=======================================================================================================================*/
/* validations.js : Custom Forms Javascription Functions																																 */
/*=======================================================================================================================*/
/* User Control Panel - Forms Functions																																									 */
/*=======================================================================================================================*/
/* Additional Functions that will be moved to the library at some point in time																					 */
/*=======================================================================================================================*/
var monthtext=['January','February','March','April','May','June','July','August','September','October','November','December'];

function populatedatedropdown(dayfield, monthfield, yearfield){
	var today=new Date()
	var dayfield=document.getElementById(dayfield)
	var monthfield=document.getElementById(monthfield)
	var yearfield=document.getElementById(yearfield)
	for (var i=0; i<31; i++)
		dayfield.options[i]=new Option(i, i+1)
		dayfield.options[today.getDate()]=new Option(today.getDate(), today.getDate(), true, true) //select today's day
	for (var m=0; m<12; m++)
		monthfield.options[m]=new Option(monthtext[m], monthtext[m])
		monthfield.options[today.getMonth()]=new Option(monthtext[today.getMonth()], monthtext[today.getMonth()], true, true) //select today's month

/*
	var thisyear=today.getFullYear()
	for (var y=0; y<10; y++) {
		yearfield.options[y]=new Option(thisyear, thisyear)
		thisyear-=1
	}
	yearfield.options[0]=new Option(today.getFullYear(), today.getFullYear(), true, true) //select today's year
}
*/
	var endyear = 1984;
	var startyear = today.getFullYear()

	for (var k=startyear;k>endyear;k--) {
		yearfield.options[k]=new Option(k, k)
		//startyear+=1;
	}
	yearfield.options[startyear]=new Option(startyear, startyear, true, true)
}
/*
		for(var k=startyear;k>endyear;k--)
		document.write("<option value="+k+">"+k+"</option>");
	
	
	var thisyear=today.getFullYear()
	
	for (var y=startyear; y<endyear; y++)
		yearfield.options[y]=new Option(y, y)
	}
	yearfield.options[startyear]=new Option(startyear, startyear, true, true)
}
*/
// For the Bed Registration Form
var state = 'hidden'; 
function showhide(layer_ref) { 
	if (state == 'visible') { 
		state = 'hidden'; 
	} else { 
		state = 'visible'; 
	} 

	if (document.all) {
		//IS IE 4 or 5 (or 6 beta) 
		eval( "document.all." + layer_ref + ".style.visibility = state"); 
	}
	
	if (document.layers) {
		//IS NETSCAPE 4 or below 
		document.layers[layer_ref].visibility = state; 
	}

	if (document.getElementById && !document.all) { 
		maxwell_smart = document.getElementById(layer_ref); 
		maxwell_smart.style.visibility = state; 
	} 
} 
/*=======================================================================================================================*/
/* myAccount Form																																																				 */
/*=======================================================================================================================*/
function checkMyAccountForm() {
	fname = document.getElementById("fname").value;
  lname = document.getElementById("lname").value;
  cname = document.getElementById("cname").value;
  address1 = document.getElementById("address1").value;
  city = document.getElementById("city").value;
  zip = document.getElementById("zip").value;
  phonenumber = document.getElementById("phonenumber").value;
  mobilenumber = document.getElementById("mobilenumber").value;
  
  if (fname == "") {
		hideAllAccountErrors();
		document.getElementById("fnameError").style.display = "inline";
		document.getElementById("fname").select();
		document.getElementById("fname").focus();
  	return false;
  }
  if (lname == "") {
		hideAllAccountErrors();
		document.getElementById("lnameError").style.display = "inline";
		document.getElementById("lname").select();
		document.getElementById("lname").focus();
  	return false;
  }
  if (cname == "") {
		hideAllAccountErrors();
		document.getElementById("cnameError").style.display = "inline";
		document.getElementById("cname").select();
		document.getElementById("cname").focus();
  	return false;
  }
  if (address1 == "") {
		hideAllAccountErrors();
		document.getElementById("address1Error").style.display = "inline";
		document.getElementById("address1").select();
		document.getElementById("address1").focus();
  	return false;
  }
  if (city == "") {
		hideAllAccountErrors();
		document.getElementById("cityError").style.display = "inline";
		document.getElementById("city").select();
		document.getElementById("city").focus();
  	return false;
  }
  // Zip Code Checker
  if (zip != "") {
			var zipCode = /(^\d{5}$)|(^\d{5}-\d{4}$)/;
			
			if (zipCode.test(zip) == false) {
				hideAllAccountErrors();
				document.getElementById("zip2Error").style.display = "inline";
				document.getElementById("zip").select();
				document.getElementById("zip").focus();
  			return false;
  		}	
	} else {
			hideAllAccountErrors();
			document.getElementById("zipError").style.display = "inline";
			document.getElementById("zip").select();
			document.getElementById("zip").focus();
  		return false;
  }
  // Complex Phone Number Validation
  if (phonenumber != "") {
			var telnr = /^\+?[0-9 ()-]+[0-9]$/;
			// var telnr2 = (/^\([1-9]\d{2}\)\s?\d{3}\-\d{4}$/);  // for (555) 555-1234
			// var telnr3 = /^\(?[2-9]\d{2}[\)\.-]?\s?\d{3}[\s\.-]?\d{4}$/ // (000)000-0000, (000) 000-0000, 000-000-0000, 000.000.0000, 000 000 0000, 0000000000
			// var telnr4 = /^(\+\d)*\s*(\(\d{3}\)\s*)*\d{3}(-{0,1}|\s{0,1})\d{2}(-{0,1}|\s{0,1})\d{2}$/; 
			var numdigits = 0;
			
			if (telnr.test(phonenumber) == false) {
					hideAllAccountErrors();
					document.getElementById("phonenumber2Error").style.display = "inline";
					document.getElementById("phonenumber").select();
					document.getElementById("phonenumber").focus();
  				return false;
  		}
  		for (var j=0; j<phonenumber.length; j++)
  		if (phonenumber.charAt(j)>='0' && phonenumber.charAt(j)<='9') numdigits++;
  		
  		if (numdigits<7) { 
					hideAllAccountErrors();
					document.getElementById("phonenumber2Error").style.display = "inline";
					document.getElementById("phonenumber").select();
					document.getElementById("phonenumber").focus();
  				return false;  
  		}		
  		if (numdigits>14) {	
					hideAllAccountErrors();
					document.getElementById("phonenumber3Error").style.display = "inline";
					document.getElementById("phonenumber").select();
					document.getElementById("phonenumber").focus();
  				return false;
  		}
  		return true;
	} else {
			hideAllAccountErrors();
			document.getElementById("phonenumberError").style.display = "inline";
			document.getElementById("phonenumber").select();
			document.getElementById("phonenumber").focus();
  		return false;
  }
  // Complex Mobile Phone Number Validation
  if (mobilenumber !== "") {
			var telnr2 = /^\+?[0-9 ()-]+[0-9]$/;
			var numdigits2 = 0;
			
			if (telnr2.test(mobilenumber) == false) {
					hideAllAccountErrors();
					document.getElementById("mobilenumberError").style.display = "inline";
					document.getElementById("mobilenumber").select();
					document.getElementById("mobilenumber").focus();
  				return false;
  		}
  		for (var j2=0; j2<mobilenumber.length; j2++)
  		if (mobilenumber.charAt(j2)>='0' && mobilenumber.charAt(j2)<='10') numdigits2++;
  		
  		if (numdigits2<7) { 
					hideAllAccountErrors();
					document.getElementById("mobilenumberError").style.display = "inline";
					document.getElementById("mobilenumber").select();
					document.getElementById("mobilenumber").focus();
  				return false;  
  		}		
  		if (numdigits2>14) {	
					hideAllAccountErrors();
					document.getElementById("mobilenumber2Error").style.display = "inline";
					document.getElementById("mobilenumber").select();
					document.getElementById("mobilenumber").focus();
  				return false;
  		}
  		return true;
	}
  return true;
}
function hideAllAccountErrors() {
	document.getElementById("fnameError").style.display = "none"
	document.getElementById("lnameError").style.display = "none"
	document.getElementById("cnameError").style.display = "none"
	document.getElementById("address1Error").style.display = "none"
	document.getElementById("cityError").style.display = "none"
	document.getElementById("zipError").style.display = "none"
	document.getElementById("zip2Error").style.display = "none"
	document.getElementById("phonenumberError").style.display = "none"
	document.getElementById("phonenumber2Error").style.display = "none"
	document.getElementById("phonenumber3Error").style.display = "none"
	document.getElementById("mobilenumberError").style.display = "none"
	document.getElementById("mobilenumber2Error").style.display = "none"
}
/*=======================================================================================================================*/
/* myProfile Form																																																				 */
/*=======================================================================================================================*/
function checkMyProfileForm() {
	displayname = document.getElementById("displayname").value;
  gender = document.getElementById("gender").value;
  
  if (displayname == "") {
		hideAllProfileErrors();
		document.getElementById("displaynameError").style.display = "inline";
		document.getElementById("displayname").select();
		document.getElementById("displayname").focus();
  	return false;
  }
  if (gender == "") {
		hideAllProfileErrors();
		document.getElementById("genderError").style.display = "inline";
		document.getElementById("gender").select();
		document.getElementById("gender").focus();
  	return false;
  }
  return true;
}
function hideAllProfileErrors() {
	document.getElementById("displaynameError").style.display = "none"
	document.getElementById("genderError").style.display = "none"
}
function checkTextArea(Textarea){
	if (navigator.appName.indexOf("Microsoft Internet Explorer") == 0) {
		Textarea.style.overflow = 'visible';
		return;
	}

	while ( Textarea.rows > 1 && Textarea.scrollHeight < Textarea.offsetHeight ) {
			Textarea.rows--;
	}

	while (Textarea.scrollHeight > Textarea.offsetHeight) {
		Textarea.rows++;
	}
	Textarea.rows++;
	return;
}
/*=======================================================================================================================*/
/* myPreferences Form																																																				 */
/*=======================================================================================================================*/
function checkMyPreferencesForm() {
	displayname = document.getElementById("displayname").value;
  gender = document.getElementById("gender").value;
  
  if (displayname == "") {
		hideAllPreferencesErrors();
		document.getElementById("displaynameError").style.display = "inline";
		document.getElementById("displayname").select();
		document.getElementById("displayname").focus();
  	return false;
  }
  if (gender == "") {
		hideAllPreferencesErrors();
		document.getElementById("genderError").style.display = "inline";
		document.getElementById("gender").select();
		document.getElementById("gender").focus();
  	return false;
  }
  return true;
}
function hideAllPreferencesErrors() {
	document.getElementById("displaynameError").style.display = "none"
	document.getElementById("genderError").style.display = "none"
}
/*=======================================================================================================================*/
/* myProfile Form																																																				 */
/*=======================================================================================================================*/
function checkMyAddressBook() {
	thename = document.getElementById("thename").value;
  thecompanyname = document.getElementById("thecompanyname").value;
  theaddy1 = document.getElementById("theaddy1").value;
  thecity = document.getElementById("thecity").value;
  thezip = document.getElementById("thezip").value;
  thephonenumber = document.getElementById("thephonenumber").value;
  
  if (thename == "") {
		hideAllAddressBookErrors();
		document.getElementById("ABnameError").style.display = "inline";
		document.getElementById("thename").select();
		document.getElementById("thename").focus();
  	return false;
  }
  if (thecompanyname == "") {
		hideAllAddressBookErrors();
		document.getElementById("ConameError").style.display = "inline";
		document.getElementById("thecompanyname").select();
		document.getElementById("thecompanyname").focus();
  	return false;
  }
  if (theaddy1 == "") {
		hideAllAddressBookErrors();
		document.getElementById("addy1Error").style.display = "inline";
		document.getElementById("theaddy1").select();
		document.getElementById("theaddy1").focus();
  	return false;
  }
  if (thecity == "") {
		hideAllAddressBookErrors();
		document.getElementById("cityError").style.display = "inline";
		document.getElementById("thecity").select();
		document.getElementById("thecity").focus();
  	return false;
  }
  // Zip Code Checker
  if (thezip != "") {
			var zipCode = /(^\d{5}$)|(^\d{5}-\d{4}$)/;
			
			if (zipCode.test(thezip) == false) {
				hideAllAddressBookErrors();
				document.getElementById("zip2Error").style.display = "inline";
				document.getElementById("thezip").select();
				document.getElementById("thezip").focus();
  			return false;
  		}	
	} else {
			hideAllAddressBookErrors();
			document.getElementById("zipError").style.display = "inline";
			document.getElementById("thezip").select();
			document.getElementById("thezip").focus();
  		return false;
  }
  // Complex Phone Number Validation
  if (thephonenumber != "") {
			var telnr = /^\+?[0-9 ()-]+[0-9]$/;
			// var telnr2 = (/^\([1-9]\d{2}\)\s?\d{3}\-\d{4}$/);  // for (555) 555-1234
			// var telnr3 = /^\(?[2-9]\d{2}[\)\.-]?\s?\d{3}[\s\.-]?\d{4}$/ // (000)000-0000, (000) 000-0000, 000-000-0000, 000.000.0000, 000 000 0000, 0000000000
			// var telnr4 = /^(\+\d)*\s*(\(\d{3}\)\s*)*\d{3}(-{0,1}|\s{0,1})\d{2}(-{0,1}|\s{0,1})\d{2}$/; 
			var numdigits = 0;
			
			if (telnr.test(thephonenumber) == false) {
					hideAllAddressBookErrors();
					document.getElementById("phonenumber2Error").style.display = "inline";
					document.getElementById("thephonenumber").select();
					document.getElementById("thephonenumber").focus();
  				return false;
  		}
  		for (var j=0; j<phonenumber.length; j++)
  		if (phonenumber.charAt(j)>='0' && phonenumber.charAt(j)<='9') numdigits++;
  		
  		if (numdigits<7) { 
					hideAllAddressBookErrors();
					document.getElementById("phonenumber2Error").style.display = "inline";
					document.getElementById("thephonenumber").select();
					document.getElementById("thephonenumber").focus();
  				return false;  
  		}		
  		if (numdigits>14) {	
					hideAllAddressBookErrors();
					document.getElementById("phonenumber3Error").style.display = "inline";
					document.getElementById("thephonenumber").select();
					document.getElementById("thephonenumber").focus();
  				return false;
  		}
  		return true;
	} else {
			hideAllAddressBookErrors();
			document.getElementById("phonenumberError").style.display = "inline";
			document.getElementById("thephonenumber").select();
			document.getElementById("thephonenumber").focus();
  		return false;
  }
  return true;
}
function hideAllAddressBookErrors() {
	document.getElementById("ABnameError").style.display = "none"
	document.getElementById("ConameError").style.display = "none"
	document.getElementById("addy1Error").style.display = "none"
	document.getElementById("cityError").style.display = "none"
	document.getElementById("zipError").style.display = "none"
	document.getElementById("zip2Error").style.display = "none"
	document.getElementById("phonenumberError").style.display = "none"
	document.getElementById("phonenumber2Error").style.display = "none"
	document.getElementById("phonenumber3Error").style.display = "none"
}
/*=======================================================================================================================*/
/* myAccount Form																																																				 */
/*=======================================================================================================================*/
function checkMyBedsForm() {
	ownersname = document.getElementById("ownersname").value;
  salonname = document.getElementById("salonname").value;
  streetaddress = document.getElementById("streetaddress").value;
  city = document.getElementById("city").value;
  zipcode = document.getElementById("zipcode").value;
  telephonenumber = document.getElementById("telephonenumber").value;
  purchasedfrom = document.getElementById("purchasedfrom").value;
  bedserialno = document.getElementById("bedserialno").value;
  emailaddress = document.getElementById("emailaddress").value;
  
  if (ownersname == "") {
		hideAllMyBedsErrors();
		document.getElementById("OwnerNameError").style.display = "inline";
		document.getElementById("ownersname").select();
		document.getElementById("ownersname").focus();
  	return false;
  }
  if (salonname == "") {
		hideAllMyBedsErrors();
		document.getElementById("SalonNameError").style.display = "inline";
		document.getElementById("salonname").select();
		document.getElementById("salonname").focus();
  	return false;
  }
  if (streetaddress == "") {
		hideAllMyBedsErrors();
		document.getElementById("StreetAddressError").style.display = "inline";
		document.getElementById("streetaddress").select();
		document.getElementById("streetaddress").focus();
  	return false;
  }
  if (city == "") {
		hideAllMyBedsErrors();
		document.getElementById("cityError").style.display = "inline";
		document.getElementById("city").select();
		document.getElementById("city").focus();
  	return false;
  }
  // Zip Code Checker
  if (zipcode != "") {
			var zipCode = /(^\d{5}$)|(^\d{5}-\d{4}$)/;
			
			if (zipCode.test(zipcode) == false) {
				hideAllMyBedsErrors();
				document.getElementById("zip2Error").style.display = "inline";
				document.getElementById("zipcode").select();
				document.getElementById("zipcode").focus();
  			return false;
  		}	
	} else {
			hideAllMyBedsErrors();
			document.getElementById("zipError").style.display = "inline";
			document.getElementById("zipcode").select();
			document.getElementById("zipcode").focus();
  		return false;
  }
  if (purchasedfrom == "") {
		hideAllMyBedsErrors();
		document.getElementById("PurchasedFromError").style.display = "inline";
		document.getElementById("purchasedfrom").select();
		document.getElementById("purchasedfrom").focus();
  	return false;
  }
  /*
	if (bedserialno != "") {
		var serialNo = /^[0-9]+$/; // Checks to see if this is just a number no letters/characters
		var numdigits = 0;
			
		if (serialNo.test(bedserialno) == false) {
			hideAllMyBedsErrors();
			document.getElementById("BedSN2Error").style.display = "inline";
			document.getElementById("bedserialno").select();
			document.getElementById("bedserialno").focus();
  		return false;
  	}
  	for (var j=0; j<bedserialno.length; j++)
  	if (bedserialno.charAt(j)>='0' && bedserialno.charAt(j)<='11') numdigits++;
  		
  	if (numdigits>5) { 
			hideAllMyBedsErrors();
			document.getElementById("BedSN2Error").style.display = "inline";
			document.getElementById("bedserialno").select();
			document.getElementById("bedserialno").focus();
  		return false;  
  	}		
  	if (numdigits<11) {	
			hideAllMyBedsErrors();
			document.getElementById("BedSN2Error").style.display = "inline";
			document.getElementById("bedserialno").select();
			document.getElementById("bedserialno").focus();
  		return false;
  	}
  	return true;
	} else {
		hideAllMyBedsErrors();
		document.getElementById("BedSNError").style.display = "inline";
		document.getElementById("bedserialno").select();
		document.getElementById("bedserialno").focus();
  	return false;
 	}
 	*/
   // Complex Phone Number Validation
  if (telephonenumber != "") {
			var telnr = /^\+?[0-9 ()-]+[0-9]$/;
			// var telnr2 = (/^\([1-9]\d{2}\)\s?\d{3}\-\d{4}$/);  // for (555) 555-1234
			// var telnr3 = /^\(?[2-9]\d{2}[\)\.-]?\s?\d{3}[\s\.-]?\d{4}$/ // (000)000-0000, (000) 000-0000, 000-000-0000, 000.000.0000, 000 000 0000, 0000000000
			// var telnr4 = /^(\+\d)*\s*(\(\d{3}\)\s*)*\d{3}(-{0,1}|\s{0,1})\d{2}(-{0,1}|\s{0,1})\d{2}$/; 
			var numdigits = 0;
			
			if (telnr.test(telephonenumber) == false) {
					hideAllMyBedsErrors();
					document.getElementById("phonenumber2Error").style.display = "inline";
					document.getElementById("telephonenumber").select();
					document.getElementById("telephonenumber").focus();
  				return false;
  		}
  		for (var j=0; j<telephonenumber.length; j++)
  		if (telephonenumber.charAt(j)>='0' && telephonenumber.charAt(j)<='9') numdigits++;
  		
  		if (numdigits<7) { 
					hideAllMyBedsErrors();
					document.getElementById("phonenumber2Error").style.display = "inline";
					document.getElementById("telephonenumber").select();
					document.getElementById("telephonenumber").focus();
  				return false;  
  		}		
  		if (numdigits>14) {	
					hideAllMyBedsErrors();
					document.getElementById("phonenumber3Error").style.display = "inline";
					document.getElementById("telephonenumber").select();
					document.getElementById("telephonenumber").focus();
  				return false;
  		}
  		return true;
	} else {
			hideAllMyBedsErrors();
			document.getElementById("phonenumberError").style.display = "inline";
			document.getElementById("telephonenumber").select();
			document.getElementById("telephonenumber").focus();
  		return false;
  }
  if (emailaddress == "") {
		hideAllMyBedsErrors();
		document.getElementById("theEmailError").style.display = "inline";
		document.getElementById("emailaddress").select();
		document.getElementById("emailaddress").focus();
  	return false;
  }
  return true;
}
function hideAllMyBedsErrors() {
	document.getElementById("OwnerNameError").style.display = "none"
	document.getElementById("SalonNameError").style.display = "none"
	document.getElementById("StreetAddressError").style.display = "none"
	document.getElementById("cityError").style.display = "none"
	document.getElementById("zipError").style.display = "none"
	document.getElementById("zip2Error").style.display = "none"
	document.getElementById("phonenumberError").style.display = "none"
	document.getElementById("phonenumber2Error").style.display = "none"
	document.getElementById("phonenumber3Error").style.display = "none"
	document.getElementById("PurchasedFromError").style.display = "none"
	document.getElementById("BedSNError").style.display = "none"
	document.getElementById("BedSN2Error").style.display = "none"
	document.getElementById("theEmailError").style.display = "none"
}