/**
 * @author tmplimfe
 */

function validateRegForm(form, lang)
{
	var errors = new Array();
	lang = lang.toLowerCase();
		
	if (trimWhitespace(form.email.value) == ''){
		if (lang == "es")
			{ errors[errors.length] = "Por favor escriba su correo electr\xF3nico."; }
		else
			{ errors[errors.length] = "Please enter your email address."; }			
	} else if (!isValidEmail(form.email.value)){
		if (lang == "es")
			{ errors[errors.length] = "Por favor escriba un correo electr\xF3nico v\xE1lido."; }
		else
			{ errors[errors.length] = "Please enter a valid email address."; }			
	}
	
	if (trimWhitespace(form.password.value) == ''){
		if (lang == "es")
			{ errors[errors.length] = "Por favor escriba una contrase\xF1a."; }
		else
			{ errors[errors.length] = "Please enter a password."; }			
	} else if (!isSharpPassword(form.password.value)){
		if (lang == "es")
			{ errors[errors.length] = "Su contrase\xF1a no llena los requisitos inscritos debajo."; }
		else
			{ errors[errors.length] = "Your password does not meet the requirements listed below."; }			
	} else if (form.password.value != form.verifyPassword.value){
		if (lang == "es")
			{ errors[errors.length] = "Sus contrase\xF1as no corresponden. Por favor pruebe otra vez."; }
		else
			{ errors[errors.length] = "Your passwords do not match. Please try again."; }						
	}

	if (trimWhitespace(form.reminderPassword.value) == ''){
		if (lang == "es")
			{ errors[errors.length] = "Por favor escriba una frase para acordarse de su contrase\xF1a."; }
		else
			{ errors[errors.length] = "Please enter a password reminder phrase."; }			
	}
	
	if (trimWhitespace(form.firstName.value) == ''){
		if (lang == "es")
			{ errors[errors.length] = "Por favor escriba su nombre."; }
		else
			{ errors[errors.length] = "Please enter your first name."; }			
	}

	if (trimWhitespace(form.lastName.value) == ''){
		if (lang == "es")
			{ errors[errors.length] = "Por favor escriba su apellido."; }
		else
			{ errors[errors.length] = "Please enter your last name."; }			
	}
	
	if (form.useExtended.checked)  {	
		
		var totInfo = 0;
		
		if (trimWhitespace(form.address1.value) != '')
			totInfo++;

		if (trimWhitespace(form.address2.value) != '')
			totInfo++;

		if (trimWhitespace(form.city.value) != '')
			totInfo++;
	
		if (form.state.value != 0)	
			totInfo++;
			
		if (trimWhitespace(form.zipCode.value) != ''){
			totInfo++;
			if (!isValidZipcode(form.zipCode.value)){
				if (lang == "es")
					{ errors[errors.length] = "Por favor escriba un c\xF3digo postal v\xE1lido."; }
				else
					{ errors[errors.length] = "Please enter a valid ZIP code."; }
			} else if (!isValidLength(form.zipCode.value, 5, Number.MAX_VALUE)){
				if ( lang == "es" )
					{ errors[errors.length] = "Por favor escriba un c\xF3digo postal v\xE1lido."; }
				else
					{ errors[errors.length] = "Please enter a valid ZIP code."; }				
			} 	
		}
			
		var areaCodeValid = true;
		if (trimWhitespace(form.areaCode.value) != ''){
			totInfo++;
			areaCodeEntered = true;
			if ((!isNumeric(form.areaCode.value, true)) || (!isValidLength(form.areaCode.value, 3, Number.MAX_VALUE))) {
				areaCodeValid = false;
				if ( lang == "es" )
					{ errors[errors.length] = "Por favor escriba un c\xF3digo de \xE1rea v\xE1lido."; }
				else
					{ errors[errors.length] = "Please enter a valid area code."; }
			} 
		} else areaCodeEntered = false;
		
		var exchangeValid = true;
		if (trimWhitespace(form.exchange.value) != ''){
			totInfo++;
			exchangeEntered = true;
			if ((!isNumeric(form.exchange.value, true)) || (!isValidLength(form.exchange.value, 3, Number.MAX_VALUE)))
				exchangeValid = false;
		} else exchangeEntered = false;

		var suffixValid = true;
		if (trimWhitespace(form.suffix.value) != ''){
			totInfo++;
			suffixEntered = true;
			if ((!isNumeric(form.suffix.value, true)) || (!isValidLength(form.suffix.value, 4, Number.MAX_VALUE)))
				suffixValid = false;			 
		} else suffixEntered = false;

		if ((!exchangeValid) || (!suffixValid)){
			if ( lang == "es" )
				{ errors[errors.length] = "Por favor escriba un n\xFAmero telef\xF3nico v\xE1lido."; }
			else
				{ errors[errors.length] = "Please enter a valid phone number."; }
		}

		var extensionValid = true;
		if (trimWhitespace(form.extension.value) != ''){
			totInfo++;
			extensionEntered = true;
			if (!isNumeric(form.extension.value, true)){
				extensionValid = false;
				if ( lang == "es" )
					{ errors[errors.length] = "Por favor escriba una extensi\xF3n v\xE1lida."; }
				else
					{ errors[errors.length] = "Please enter a valid extension."; }
			} 
		} else extensionEntered = false;

		if (areaCodeValid && exchangeValid && suffixValid && extensionValid) {
			if ((areaCodeEntered && ((!exchangeEntered) || (!suffixEntered))) ||  
					(exchangeEntered && ((!areaCodeEntered) || (!suffixEntered))) ||
					(suffixEntered && ((!areaCodeEntered) || (!exchangeEntered))) ||
					(extensionEntered && ((!areaCodeEntered) || (!exchangeEntered) || (!suffixEntered)))){
				if ( lang == "es" )
					{ errors[errors.length] = "Por favor escriba su n\xFAmero telef\xF3nico completo."; }
				else
					{ errors[errors.length] = "Please enter your complete phone number."; }
							
				}
		}
		
		if (trimWhitespace(form.birthDate.value) != ''){
			totInfo++;
			if (!isValidDate(form.birthDate.value)){
				if ( lang == "es" )
					{ errors[errors.length] = "Por favor escriba una fecha de nacimiento v\xE1lida."; }
				else
					{ errors[errors.length] = "Please enter a valid date of birth."; }
			} else {
				var todaysdate = new Date(); 
				var birthDate = new Date(form.birthDate.value);
				var todaysdateCompare =  todaysdate.getMonth()+1+"/"+todaysdate.getDate()+"/"+todaysdate.getFullYear();
				var birthDateCompare =  birthDate.getMonth()+1+"/"+birthDate.getDate()+"/"+birthDate.getFullYear();
			
				todaysdateCompare = new Date(todaysdateCompare);
				birthDateCompare = new Date(birthDateCompare);
				
				if ((birthDateCompare > todaysdateCompare) || (birthDate.getFullYear() < 1900)) {
					if (lang == "en"){
						errors[errors.length] = "Please enter a valid date of birth.";
					} else {
						errors[errors.length] = "Por favor escriba una fecha de nacimiento v\xE1lida.";
					}
				} 
			}			
		}

		if (!totInfo){
			if (lang == "en"){
				errors[errors.length] = "Please enter at least one of the extended information.";
			} else {
				errors[errors.length] = "Por favor escriba una fecha de nacimiento v\xE1lida.";
			}			
		}
	}
		
	if (errors.length > 0)
	{
		displayFormErrors(errors, lang);
		return false;
	}
	// no errors: return true 
	return true;
}

function validateUpdateForm(form, lang, hasSMSinfo, hasDemoinfo)
{
	var errors = new Array();
	lang = lang.toLowerCase();
	
	if (form.useExtended.checked)  {	
		
		var totInfo = 0;
		var totSMSInfo = 0;
		
		if (trimWhitespace(form.address1.value) != '')
			totInfo++;

		if (trimWhitespace(form.address2.value) != '')
			totInfo++;

		if (trimWhitespace(form.city.value) != '')
			totInfo++;
	
		if (form.state.value != 0)	
			totInfo++;
			
		if (trimWhitespace(form.zipCode.value) != ''){
			totInfo++;
			if (!isValidZipcode(form.zipCode.value)){
				if (lang == "es")
					{ errors[errors.length] = "Por favor escriba un c\xF3digo postal v\xE1lido."; }
				else
					{ errors[errors.length] = "Please enter a valid ZIP code."; }
			} else if (!isValidLength(form.zipCode.value, 5, Number.MAX_VALUE)){
				if ( lang == "es" )
					{ errors[errors.length] = "Por favor escriba un c\xF3digo postal v\xE1lido."; }
				else
					{ errors[errors.length] = "Please enter a valid ZIP code."; }				
			} 	
		}
			
		var areaCodeValid = true;
		if (trimWhitespace(form.areaCode.value) != ''){
			totInfo++;
			areaCodeEntered = true;
			if ((!isNumeric(form.areaCode.value, true)) || (!isValidLength(form.areaCode.value, 3, Number.MAX_VALUE))) {
				areaCodeValid = false;
				if ( lang == "es" )
					{ errors[errors.length] = "Por favor escriba un c\xF3digo de \xE1rea v\xE1lido."; }
				else
					{ errors[errors.length] = "Please enter a valid area code."; }
			} 
		} else areaCodeEntered = false;
		
		var exchangeValid = true;
		if (trimWhitespace(form.exchange.value) != ''){
			totInfo++;
			exchangeEntered = true;
			if ((!isNumeric(form.exchange.value, true)) || (!isValidLength(form.exchange.value, 3, Number.MAX_VALUE)))
				exchangeValid = false;
		} else exchangeEntered = false;

		var suffixValid = true;
		if (trimWhitespace(form.suffix.value) != ''){
			totInfo++;
			suffixEntered = true;
			if ((!isNumeric(form.suffix.value, true)) || (!isValidLength(form.suffix.value, 4, Number.MAX_VALUE)))
				suffixValid = false;			 
		} else suffixEntered = false;

		if ((!exchangeValid) || (!suffixValid)){
			if ( lang == "es" )
				{ errors[errors.length] = "Por favor escriba un n\xFAmero telef\xF3nico v\xE1lido."; }
			else
				{ errors[errors.length] = "Please enter a valid phone number."; }
		}

		var extensionValid = true;
		if (trimWhitespace(form.extension.value) != ''){
			totInfo++;
			extensionEntered = true;
			if (!isNumeric(form.extension.value, true)){
				extensionValid = false;
				if ( lang == "es" )
					{ errors[errors.length] = "Por favor escriba una extensi\xF3n v\xE1lida."; }
				else
					{ errors[errors.length] = "Please enter a valid extension."; }
			} 
		} else extensionEntered = false;

		if (areaCodeValid && exchangeValid && suffixValid && extensionValid) {
			if ((areaCodeEntered && ((!exchangeEntered) || (!suffixEntered))) ||  
					(exchangeEntered && ((!areaCodeEntered) || (!suffixEntered))) ||
					(suffixEntered && ((!areaCodeEntered) || (!exchangeEntered))) ||
					(extensionEntered && ((!areaCodeEntered) || (!exchangeEntered) || (!suffixEntered)))){
				if ( lang == "es" )
					{ errors[errors.length] = "Por favor escriba su n\xFAmero telef\xF3nico completo."; }
				else
					{ errors[errors.length] = "Please enter your complete phone number."; }
							
				}
		}
		
		if (trimWhitespace(form.birthDate.value) != ''){
			totInfo++;
			if (!isValidDate(form.birthDate.value)){
				if ( lang == "es" )
					{ errors[errors.length] = "Por favor escriba una fecha de nacimiento v\xE1lida."; }
				else
					{ errors[errors.length] = "Please enter a valid date of birth."; }
			} else {
				var todaysdate = new Date(); 
				var birthDate = new Date(form.birthDate.value);
				var todaysdateCompare =  todaysdate.getMonth()+1+"/"+todaysdate.getDate()+"/"+todaysdate.getFullYear();
				var birthDateCompare =  birthDate.getMonth()+1+"/"+birthDate.getDate()+"/"+birthDate.getFullYear();
			
				todaysdateCompare = new Date(todaysdateCompare);
				birthDateCompare = new Date(birthDateCompare);
				
				if ((birthDateCompare > todaysdateCompare) || (birthDate.getFullYear() < 1900)) {
					if (lang == "en"){
						errors[errors.length] = "Please enter a valid date of birth.";
					} else {
						errors[errors.length] = "Por favor escriba una fecha de nacimiento v\xE1lida.";
					}
				} 
			}			
		}
			
		if (hasSMSinfo) {

			if ((form.mobileCarrier.value == 0) && (trimWhitespace(form.mobileAreaCode.value) == '') &&
				(trimWhitespace(form.mobileExchange.value) == '') && (trimWhitespace(form.mobileSuffix.value) == '')) {
				if (lang == "en")
					confirmMsg = "Are you sure you would like to remove your mobile information and all your text reminders?";
				else 
					confirmMsg = "Are you sure you would like to remove your mobile information and all your text reminders?";
				var yes=confirm(confirmMsg);
				if (!yes)
					return false ;
			}		
				
			else {

				if (form.mobileCarrier.value == 0){
					if (lang == "en")
						errors[errors.length] = "Please select a mobile phone carrier.";
					else 
						errors[errors.length] = "Por favor seleccione una compa\xF1\xEDa de telefon\xEDa celular.";						
				} else totSMSInfo++;
				
				if ((trimWhitespace(form.mobileAreaCode.value) == '') || (trimWhitespace(form.mobileExchange.value) == '') || (trimWhitespace(form.mobileSuffix.value) == '')){
					if (lang == "en")
						errors[errors.length] = "Please enter your mobile phone number.";
					else 
						errors[errors.length] = "Por favor escriba su n\xFAmero de tel\xE9fono celular.";						
				}
				else { 
					totSMSInfo++;
					if ((!isNumeric(form.mobileAreaCode.value, true)) || (!isNumeric(form.mobileExchange.value, true)) || (!isNumeric(form.mobileSuffix.value, true))){
						if (lang == "en")
							errors[errors.length] = "Please enter a valid mobile phone number.";
						else 
							errors[errors.length] = "Por favor escriba un n\xFAmero de tel\xE9fono celular v\xE1lido.";						
					}	
					else if ((!isValidLength(form.mobileAreaCode.value, 3, Number.MAX_VALUE)) || (!isValidLength(form.mobileExchange.value, 3, Number.MAX_VALUE)) || (!isValidLength(form.mobileSuffix.value, 4, Number.MAX_VALUE))){
						if (lang == "en")
							errors[errors.length] = "Please enter a valid mobile phone number.";
						else 
							errors[errors.length] = "Por favor escriba un n\xFAmero de tel\xE9fono celular v\xE1lido.";						
					}
				}		
			}												
		}
		else {
			if (form.mobileCarrier.value == 0)
				hasCarrier = false;				
			else
				{hasCarrier = true; totSMSInfo++;}
				
			if ((trimWhitespace(form.mobileAreaCode.value) == '') && (trimWhitespace(form.mobileExchange.value) == '') && (trimWhitespace(form.mobileSuffix.value) == ''))
				hasNumber = false;
			else	
				{hasNumber = true; totSMSInfo++;}
			
			if ((hasCarrier && !hasNumber) || (!hasCarrier && hasNumber)){
				if (lang == "en")
					errors[errors.length] = "Please enter complete mobile information.";
				else 
					errors[errors.length] = "Por favor escriba su compa\xF1\xEDa de telefon\xEDa celular y su n\xFAmero de tel\xE9fono celular.";														
			}	
			else if (hasNumber) {
				
			 if ((!isNumeric(form.mobileAreaCode.value, true)) || (!isNumeric(form.mobileExchange.value, true)) || (!isNumeric(form.mobileSuffix.value, true))){
				if (lang == "en")
					errors[errors.length] = "Please enter a valid mobile phone number.";
				else 
					errors[errors.length] = "Por favor escriba un n\xFAmero de tel\xE9fono celular v\xE1lido.";						
			} else if ((!isValidLength(form.mobileAreaCode.value, 3, Number.MAX_VALUE)) || (!isValidLength(form.mobileExchange.value, 3, Number.MAX_VALUE)) || (!isValidLength(form.mobileSuffix.value, 4, Number.MAX_VALUE))){
				if (lang == "en")
					errors[errors.length] = "Please enter a valid mobile phone number.";
				else 
					errors[errors.length] = "Por favor escriba un n\xFAmero de tel\xE9fono celular v\xE1lido.";						
				}									
			} 
		}
		
		if (!totInfo && hasDemoinfo) {
			if (lang == "en"){
				errors[errors.length] = "Please enter at least one of the extended information.";
			} else {
				errors[errors.length] = "Por favor introduzca al menos un dato the la informaci\xF3n extendida.";
			}			
		} else if (!totInfo && !totSMSInfo && !hasSMSinfo){
			if (lang == "en"){
				errors[errors.length] = "Please enter at least one of the extended information.";
			} else {
				errors[errors.length] = "Por favor introduzca al menos un dato the la informaci\xF3n extendida.";
			}			
		}
	}	
	if (errors.length > 0)
	{
		displayFormErrors(errors, lang);
		return false;
	}
	// no errors: return true 
	return true;
}

function checkTypeReg(form) {

	if (form.useExtended.checked){
		showExtendedRegFields(form);		
	} else {
		hideExtendedRegFields(form)	
	}	
}
function showExtendedRegFields(form) {

	var agent   = navigator.userAgent.toLowerCase();
	var msie	= agent.indexOf("msie")		!=-1 ? true : false;
	var calendar1;
	today		= new Date(); 
	
	if (msie) 
		display = "block";
	else  
		display = "table-row";
	
	document.getElementById('address1Row').style.display = display;
	document.getElementById('address2Row').style.display = display;
	document.getElementById('cityRow').style.display = display;
	document.getElementById('stateRow').style.display = display;
	document.getElementById('zipCodeRow').style.display = display;
	document.getElementById('phoneRow').style.display = display;
	document.getElementById('birthdateRow').style.display = display;
	document.getElementById('mobileCarrierRow').style.display = display;
	document.getElementById('mobilePhoneRow').style.display = display;
	calendar1 = new Epoch('birthDate', 'popup', document.getElementById('birthDate'),false,1900,today.getFullYear(),'');
}

function hideExtendedRegFields(form) {

	document.getElementById('address1Row').style.display = "none";
	document.getElementById('address2Row').style.display = "none";
	document.getElementById('cityRow').style.display = "none";
	document.getElementById('stateRow').style.display = "none";
	document.getElementById('zipCodeRow').style.display = "none";
	document.getElementById('phoneRow').style.display = "none";
	document.getElementById('birthdateRow').style.display = "none";
	document.getElementById('mobileCarrierRow').style.display = "none";
	document.getElementById('mobilePhoneRow').style.display = "none";

}

function confirmClose()
{
	var yes=confirm("Are you sure you would like to close this account? This will remove this user's history and all the reminders");
	if (yes)
		return true ;
	else
		return false ;
}

function checkLength(theForm, currentLength, lengthToUse, placeToGo)
{
	if(currentLength == lengthToUse)
	{
		eval("theForm." + placeToGo + ".focus()");
	}
}

function cleanSessionVars(){
	var prefix = window.parent.document.location.protocol + '//' +  top.location.hostname;
	var newURL = prefix + '/secure/mysharp_ajax.cfc?method=cleanMySharpSession';		
	http( 'POST' , newURL, parseMySharp); 		
	//http( 'POST' , '/tools/mysharp-ajax.cfc?method=cleanMySharpSession', parseMySharp); 
}

function parseMySharp(obj) {
}

function ShowReminder(un) {
	param = "username="+ un;
	http( 'POST' , '/customcf/mysharp/mysharp_ajax.cfc?method=getPassReminder', parseShowReminder, param); 
}

function parseShowReminder(obj) {	
	
	lang = obj.lang.toLowerCase();
	
	if (obj.retquery.passwordreminderphrase.length > 0)
	{
		if (obj.retquery.passwordreminderphrase[0] == ""){
			if (lang == "en") 	
				{document.getElementById('passReminder').innerHTML = "<a href='forgot-password.cfm'>Reset your password and set up a reminder phrase.</a>";}
			else
				{document.getElementById('passReminder').innerHTML = "<a href='forgot-password.cfm'>Reestablezca su contrase\xF1a y registre una frase para acordarse de su contrase\xF1a.</a>";}
		}else
		document.getElementById('passReminder').innerHTML = obj.retquery.passwordreminderphrase[0];
	} 
	else {
			if (lang == "en") 	
				{document.getElementById('passReminder').innerHTML = "Your Email address was invalid.";}
			else
				{document.getElementById('passReminder').innerHTML = "Su correo electr\xF3nico no es v\xE1lido.";}
	} 
}
function confirmDelete(lang)
{
	lang = lang.toLowerCase();
	if (lang == "en")
		confirmMessage = "Are you sure you would like to remove this reminder?";
	else
		confirmMessage = "\xBFEst\xE1 seguro(a) que quiere eliminar este recordatorio?";
		
	var yes=confirm(confirmMessage);
	if (yes)
		return true ;
	else
		return false ;
}
// the functions below are used by the Newsletter pages
function checkPregnancy(form) {
	
		if (document.getElementById('newsletter_764449').checked)
			document.getElementById('pregnancy').style.display = 'inline';
		else
			document.getElementById('pregnancy').style.display = "none";	
}

function daysBetween(date1, date2) {
    var DSTAdjust = 0;
    // constants used for our calculations below
    oneMinute = 1000 * 60;
    var oneDay = oneMinute * 60 * 24;
    // equalize times in case date objects have them
    date1.setHours(0);
    date1.setMinutes(0);
    date1.setSeconds(0);
    date2.setHours(0);
    date2.setMinutes(0);
    date2.setSeconds(0);
    // take care of spans across Daylight Saving Time changes
    if (date2 > date1) {
        DSTAdjust =
            (date2.getTimezoneOffset() - date1.getTimezoneOffset()) * oneMinute;
    } else {
        DSTAdjust =
            (date1.getTimezoneOffset() - date2.getTimezoneOffset()) * oneMinute;
    }
    var diff = Math.abs(date2.getTime() - date1.getTime()) - DSTAdjust;
    return Math.ceil(diff/oneDay);
}

/* 
 * [GBJ:08/13/2010]
 * - checking to see if newsletter_76444 exists before checking if null
 * [GBJ:11/24/2010]
 * - added email validation
 * NOTE: if you update the form validation in this function,
 * 		it also needs to be updated for the server-side validation at
 * 		components.newsletters.getServersideErrors()
*/
function validateNewsletterForm(form, lang, checkSubscribed )
{
	if( lang == undefined )
		{ lang = "en"; }
	lang = lang.toLowerCase();

	form.emailAddress.required = true;
	if (lang == "es")
		{ form.emailAddress.requiredError = "Por favor escriba un correo electr\xF3nico v\xE1lido."; }
	else
		{ form.emailAddress.requiredError = "Please enter a valid Email address."; }
	
	var errors = getFormErrors(form);
	
	// validate that the email is correctly formatted
	if( trimWhitespace( form.emailAddress.value ) != '' )
	{
		if( !isValidEmail( form.emailAddress.value) )
		{
			if (lang == "es")
				{ errors[errors.length] = "Por favor escriba un correo electr\xF3nico v\xE1lido."; }
			else
				{ errors[errors.length] = "Please enter a valid email address."; }				
		}
	}
	
	// validation for "newEmail"
	if( form.newEmail != undefined )
	{
		if(trimWhitespace( form.newEmail.value ) != '' )
		{
			if( !isValidEmail( form.newEmail.value) )
			{
				if (lang == "es")
					{ errors[errors.length] = "Por favor escriba un correo electr\xF3nico v\xE1lido."; }
				else
					{ errors[errors.length] = "Please enter a valid email address."; }				
			}
		}
	}
	
	// special code for pregnancy newsletter
	if (document.getElementById('newsletter_764449') != null && document.getElementById('newsletter_764449').checked){		
		if (trimWhitespace(form.dueDate.value) == '')
			errors[errors.length] = 'Please enter your due date or baby\'s birth date.';
		else if (!isValidDate(form.dueDate.value))
			errors[errors.length] = 'Please enter a valid due date.';	
		else {
			/*Removed By:CML 10/28/2010
			var todaysdate = new Date(); 
			var dueDate = new Date(form.dueDate.value);
			var todaysdateCompare =  todaysdate.getMonth()+1+"/"+todaysdate.getDate()+"/"+todaysdate.getFullYear();
			var dueDateCompare =  dueDate.getMonth()+1+"/"+dueDate.getDate()+"/"+dueDate.getFullYear();
		
			todaysdateCompare = new Date(todaysdateCompare);
			dueDateCompare = new Date(dueDateCompare);
			
			daysDiff = daysBetween(dueDateCompare, todaysdateCompare);
							
			if (dueDateCompare >= todaysdateCompare) {
				// see if the due date is more than nine months out
				if (daysDiff >= 273)
					errors[errors.length] = 'Your due date is more than nine months out, please consider subscribing to our Family Wellness newsletter.';
			} 
			else {
			   // see if the baby is more than three months old	
				if (daysDiff >= 77)
					errors[errors.length] = 'Your baby is more than 3 months old, please consider subscribing to our Family Wellness newsletter.';				
			}
			*/
			//CML 10/28/2010 Replaced above with...
			var todaysdate = new Date(); 
			var dueDate = new Date(form.dueDate.value);
			var dateDiffInDays = daysBetween(todaysdate, dueDate);
			
			// see if the due date is more than nine months out
			if ((dueDate > todaysdate) && (dateDiffInDays >= 272)){
				errors[errors.length] = 'Your due date is more than nine months out, please consider subscribing to our Family Wellness newsletter.';
			}
			
		   // see if the baby is more than three months old	
			if ((todaysdate > dueDate) && (dateDiffInDays >= 76)){
				errors[errors.length] = 'Your baby is more than 3 months old, please consider subscribing to our Family Wellness newsletter.';				
			}
		}		
	}

	if (errors.length > 0) {
		displayFormErrors(errors, lang)
		return false;
	}
	else 
	{
		if (checkSubscribed) {
		
			// pop a confirmation box if they have not selected any newsletters
			// if( document.getElementById( 'newsletterList' ) != null
			checkboxes = document.getElementsByName('newsletterList');
			isSubscribed = false;
			
			for (i = 0; i < checkboxes.length; i++) {
				if (checkboxes[i].checked) {
					isSubscribed = true;
					break;
				}
			}
			
			if (!isSubscribed) {
				if (lang == "es") {
					confirmText = 'No haz elejido un bolet\xEDn. Haz click en "Cancel" para hacer tu selecci\xF3n.';
				}
				else {
					confirmText = 'You have not selected a newsletter.\nClick "Cancel" to select your subscriptions.';
				}
				
				if (!confirm(confirmText)) {
					return false;
				}
			}
		}
		
		// make an ajax call to see if the new email already exists
		if( form.newEmail != undefined && trimWhitespace(form.newEmail.value) != '' && isValidEmail(form.newEmail.value)) 
		{
			// newEmail exists, is not "", and is valid
			//params = "email="+form.newEmail.value+"&oldEmail="+form.emailAddress.value;
			var params = "email="+form.newEmail.value+"&lang="+lang;
			http( 'POST' , '/customcf/newsletters/newslettersAJAX.cfc?method=getRecord', parseGetRecord, params );
			return false;
		}
	}

	// no errors: return true		
	return true;
}

function validateNewsletterFormPromo(form)
{
	if ( document.getElementById('emailAddress').value == "Enter email address" ) {
		document.getElementById('emailAddress').value = '';
	}
	
	form.emailAddress.required = true
	form.emailAddress.requiredError = "Please enter a valid Email address."

	var errors = getFormErrors(form)
	
	if (document.getElementById('newsletterList').value == '764449'){
		if (trimWhitespace(form.dueDate.value) == '')
			errors[errors.length] = 'Please enter your due date or baby\'s birth date.';
		else if (!isValidDate(form.dueDate.value))
			errors[errors.length] = 'Please enter a valid due date.';	
		else {
			var todaysdate = new Date(); 
			var dueDate = new Date(form.dueDate.value);
			var todaysdateCompare =  todaysdate.getMonth()+1+"/"+todaysdate.getDate()+"/"+todaysdate.getFullYear();
			var dueDateCompare =  dueDate.getMonth()+1+"/"+dueDate.getDate()+"/"+dueDate.getFullYear();
		
			todaysdateCompare = new Date(todaysdateCompare);
			dueDateCompare = new Date(dueDateCompare);
			
			daysDiff = daysBetween(dueDateCompare, todaysdateCompare);
							
			if (dueDateCompare >= todaysdateCompare) {
				// see if the due date is more than nine months out
				if (daysDiff >= 273)
					errors[errors.length] = 'Your due date is more than nine months out, please consider subscribing to our Family Wellness newsletter.';
			} 
			else {
			   // see if the baby is more than three months old	
				if (daysDiff >= 77)
					errors[errors.length] = 'Your baby is more than 3 months old, please consider subscribing to our Family Wellness newsletter.';				
			}
		}		
	}
			
	if (errors.length > 0)
	{
		displayFormErrors(errors, 'English')
		return false;
	}
	// no errors: return true		
	return true;
}

// this is to parse the object returned from the ajax call in validateNewsletterForm()
function parseGetRecord( obj ) 
{
	var bFound = new Boolean( obj.accountfound );

	if( bFound == true )
	{
		//Set Title
		document.getElementById('dialogWindow').title = "Email Already Exists";
		
		//Show dialog
		$("#dialogWindow").dialog( { zIndex:10, modal:true, draggable:false, resizable:false } );
		
		// set inner text
		if (obj.lang.toLowerCase() == 'es') {
			document.getElementById('dialogWindow').innerHTML = "Este email ya existe en nuestro sistema. &#xBF;Te gustar&#xED;a  combinar tus cuentas\?";
			$( "#dialogWindow" ).dialog({buttons:{'Cancel': function() { $(this).dialog('close'); },'OK': function() { document.getElementById("frmNewsletters").submit(); }}});
		}
		else
		{
			document.getElementById('dialogWindow').innerHTML = "The email address <b>" + obj.email + "</b>, already exists in the system, would you like to merge the accounts?";
			$( "#dialogWindow" ).dialog({buttons:{'Cancel': function() { $(this).dialog('close'); },'OK': function() { document.getElementById("frmNewsletters").submit(); }}});
		}
	}
	else
	{
		document.getElementById("frmNewsletters").submit();
	}
}

