//-----------------------------------------------------------------------------

function ValidateRegForm(loForm)
{
	return ValidateRegForm2(loForm, false)
}

function ValidateRegForm2(loForm, lbRedirectAge)
{
	var sErrors, bErrors;
	var dTomorrow;
	var sCookieName;
	
	sCookieName = "Underage";
	
	try
	{
	    if(GetCookie(sCookieName) != null)
	    {
		    document.body.style.cursor='wait';
		    bErrors = true;
	        alert( "Sorry you must be over 18 to join MyOffers, and you have previously stated you are under 18." );
			window.location = "/myoffers/index.asp";
	    }
	    else
	    {
		    gbFieldFocus = false;
		    loForm = GetForm(loForm);
		    sErrors = RequiredField(loForm, "Addressline", "Address Chooser")
			    + RequiredField(loForm, "NameTitleID", "Title")
			    + ValidField(loForm, "name", "NameFirst", "First Name")
			    + ValidField(loForm, "name", "NameLast", "Surname")
			    + ValidField(loForm, "StreetNumber", "StreetNumber", "House/Flat No")
			    + ValidField(loForm, "postcode", "Postcode", "UK Postcode")
			    + ValidFieldConfirm(loForm, "email", "Email", "Email address")
			    + ValidField(loForm, "email", "Email2", "Alternative Email address")
			    + RequiredField(loForm, "Address1", "First Address Field")
			    + RequiredField(loForm, "Town")
			    + ValidField(loForm, "mobilenumber", "MobileNumber", "Mobile Number", true)
			    + ValidField(loForm, "phonenumber", "PhoneNumber", "Phone Number", true)
			    + validPassword(loForm, "Password", "ConfirmPassword")
    			
			    if(lbRedirectAge) 
			    {
				    sErrors = sErrors + validDate(loForm, "Birth", 0)
			    }
			    else
			    {
				    sErrors = sErrors + validDate(loForm, "Birth", 18)
			    }
    			
		    sErrors = sErrors + RequiredField(loForm, "NumOfChildrenID", "Number Of Children")
			    + RequiredField(loForm, "MaritalStatusID", "Marital Status")
			    + RequiredField(loForm, "HouseholdIncomeID", "Household Income")
			    + RequiredField(loForm, "HomeOwnerID", "Home Owner")
			    + RequiredField(loForm, "ResidentialStatusID", "Residential Status")
			    + RequiredField(loForm, "webbrandsoptin", "Would you like to join Web Brands?")
			    + RequiredField(loForm, "TermsConditions", "Terms and Conditions")
		    bErrors = Boolean(sErrors);
		    //bErrors = true;
		    if (bErrors)
		    {
			    sErrors = "Please complete the following in your form:\n\n"
				    + sErrors;
			    alert(sErrors);
		    }
		    else
		    {
			    document.body.style.cursor='wait';
    		
			    if(validDate(loForm, "Birth", 18).indexOf("18") >= 0 && lbRedirectAge)
			    {
				    bErrors = true;
				    dTomorrow = DayAdd(new Date(), 1);
				    alert("Sorry you must be over 18 to join MyOffers, we are unable to process your request at this time");
				    SetCookie(sCookieName, "true", '/', dTomorrow);
				    window.location = "/myoffers/index.asp";
			    }
		    }
	    }
	}
	catch (eError)
	{
		alert('eError: ' + eError.description);
		bErrors = true;
	}
	return (!bErrors);
}

//-----------------------------------------------------------------------------

function ValidateLogin(oLoginForm)
{
	var oLoginForm, oEmail, sEmail, oPassword, sPassword, bValidLogin;
	var sError;
	oLoginForm = (oLoginForm || 'login');
	oLoginForm = GetForm(oLoginForm);
	oEmail = GetField(oLoginForm, 'Email')
	oPassword = GetField(oLoginForm, 'Password')
	sEmail = FieldValue(oLoginForm, oEmail);
	sPassword = FieldValue(oLoginForm, oPassword);
	if (sPassword.length == 0)
	{
		oPassword.focus();
		sError = 'a password';
	}
	if (!validEmail(sEmail))
	{
		sError = 'a valid email address' + (sError ? ' and ' + sError : '');
		oEmail.focus();
	}
	if (sError)
	{
		bValidLogin = false;
		alert('Please enter ' + sError + '.');
	}
	else
	{
		bValidLogin = true;
		document.body.style.cursor = 'wait';
		setTimeout('document.body.style.cursor = \'wait\';', 2000)
	}
	return(bValidLogin);
}

//-----------------------------------------------------------------------------

function ValidateDuplicate(oLoginForm)
{
	var oLoginForm, oPassword, sPassword, oPasswordConfirm, sPasswordConfirm, bValidLogin;
	var sError;
	oLoginForm = (oLoginForm || 'duplicate');
	oLoginForm = GetForm(oLoginForm);
	oPassword = GetField(oLoginForm, 'Password')
	sPassword = FieldValue(oLoginForm, oPassword);
	
	oPasswordConfirm = GetField(oLoginForm, 'ConfirmPassword')
	sPasswordConfirm = FieldValue(oLoginForm, oPasswordConfirm);
	
	if (sPassword.length == 0)
	{
		oPassword.focus();
		sError = 'Please enter a password';
	}
	else
	{
	    if (sPasswordConfirm.length == 0)
	    {
	        oPasswordConfirm.focus();
		    sError = 'Please enter password confirmation';
	    }
	    else if(sPassword!=sPasswordConfirm)
	    {
	        oPassword.focus();
		    sError = 'Password confirmation does not match';
	    }
	}
	
	if (sError)
	{
		bValidLogin = false;
		alert(sError + '.');
	}
	else
	{
		bValidLogin = true;
		document.body.style.cursor = 'wait';
		setTimeout('document.body.style.cursor = \'wait\';', 2000)
	}
	return(bValidLogin);
}

//-----------------------------------------------------------------------------

function ForgotPass(oLoginForm)
{
	var sEmail, oEmail;
	if (!oLoginForm)
	{
		oLoginForm = 'login';
	}
	oLoginForm = GetForm(oLoginForm);
	oEmail = GetField(oLoginForm, 'Email')
	sEmail = FieldValue(oLoginForm, oEmail);
	//alert('sEmail: ' + sEmail);
	if (validEmail(sEmail))
	{
		if (confirm('Send password reminder to ' + sEmail + '?'))
		{
			SetValueSubmitForm(oLoginForm, 'forgotpass', 1);
		}
	}
	else
	{
		alert('Enter your registered email address in the email field to send a password reminder to.');
		oEmail.focus();
	}
	return(false);
} // ForgotPass

//-----------------------------------------------------------------------------

function ValidateExistingUser(oLoginForm)
{
	var oLoginForm, oEmail, iExistingUserChoice, oPassword, sPassword, bValidLogin;
	var sError;
	try
	{
		oLoginForm = GetForm(oLoginForm);
		iExistingUserChoice = FieldValue(oLoginForm, 'existinguserchoice');
		oPassword = GetField(oLoginForm, 'Password');
		sPassword = FieldValue(oLoginForm, oPassword);
		if (!iExistingUserChoice)
		{
			sError = 'Please choose one of the 3 options.';
		}
		else if (iExistingUserChoice == 1 && sPassword.length == 0)
		{
			sError = 'Please enter your password (it should be 4 characters or more).';
			oPassword.focus();
		}
		if (sError)
		{
			bValidLogin = false;
			alert(sError);
		}
		else
		{
			bValidLogin = true;
			document.body.style.cursor = 'wait';
			setTimeout('document.body.style.cursor = \'wait\';', 2000)
		}
	}
	catch (eError)
	{
		alert('eError: ' + eError.description);
		bValidLogin = false;
	}
	return(bValidLogin);
}

//-----------------------------------------------------------------------------

/*

function ValidateManualAddress()
{
}

//-----------------------------------------------------------------------------

// remove? 
function ValidateAddressChooser(inForm)
{
	var sError;
	sError = '';
	
	if (!inForm.addressline.value || inForm.addressline.value=="-1")
	{
		sError += 'Address\n';
	}
	sError += optionalInfoValidation(inForm);
	if (sError != "")
	{
		alert("Please supply the following information:\n" + sError);
		return false;
	}
	else
		return true;
}
*/

//-----------------------------------------------------------------------------

function populateAddress(loAddressForm, loAddressList)
{
	var strAddressList, arrAddressList, strAddressList, strAddressHtml, iSelected;

	if (NS6)
	{
		elAddress = document.getElementById('elAddress');
	}
	else if (NS4)
	{
		elAddress = document.elAddress;
	}

	loAddressForm = GetForm(loAddressForm);
	loAddressList = GetField(loAddressForm, loAddressList);
	if (loAddressList)
	{
		strAddressList = loAddressList.value;

		arrAddressList = strAddressList.split("|");
		strAddressHtml = arrAddressList.slice(0,2).join("<br>");
		strAddressHtml = strAddressHtml + '<br>' + FieldValue(loAddressForm, 'Town')
			+ '<br>' + FieldValue(loAddressForm, 'Postcode');

		strAddressHtml = strAddressHtml.replace(/(<br>)+/g,'<br>');
		strAddressHtml = '<p class="description">' + strAddressHtml 
				+ '<br><br>';
				
		if (strAddressList != "-1")
		{
			if (NS4)
			{
				//elAddress.document.write(strAddressHtml);
				//elAddress.close();
			}
			else
			{
				elAddress.innerHTML = strAddressHtml;
			}

			loAddressForm.Address1.value = arrAddressList[0]
			loAddressForm.Address2.value = arrAddressList[1];
			loAddressForm.Address3.value = arrAddressList[2];
			loAddressForm.PafStatusID.value = arrAddressList[3];
			loAddressForm.postkey.value = arrAddressList[4];
			loAddressForm.DPS.value = arrAddressList[5]; 
			loAddressForm.StreetNumber.value = arrAddressList[6]; 
		}
		else
		{
			loAddressForm.Address1.value="";
			loAddressForm.Address2.value="";
			loAddressForm.Address3.value="";
			loAddressForm.PafStatusID.value="";
			loAddressForm.postkey.value="";
			loAddressForm.DPS.value = "";
			loAddressForm.StreetNumber.value = ""; 
		}
	} //loAddressList
}
		
//-----------------------------------------------------------------------------

function ValidateEmailSuggested(loForm)
	{
		var sErrors, bErrors;
		try
		{

			loForm = GetForm(loForm);
			sErrors = RequiredField(loForm, "NameTitle", "Name Title")
				+ ValidField(loForm, "name", "NameFirst")
				+ ValidField(loForm, "name", "NameLast")
				+ validDate(loForm, "Birth", 18)
				+ RequiredField(loForm, "NumOfChildrenID", "Number Of Children")
				+ RequiredField(loForm, "HouseholdIncomeID", "Household Income")
				+ RequiredField(loForm, "MaritalStatusID", "Marital Status")
				+ RequiredField(loForm, "HomeOwnerID", "Home Owner")
				+ ValidField(loForm, "email", "Email", "Email");
			
			// only validate new email if has been confirmed
			if(FieldValue(loForm, loForm.confirmemail, null) == 2)
			{
				sErrors += ValidField(loForm, "email", "newEmail", "Email");
			}
			
			// only validate new password if its been entered
			if (FieldValue(loForm, "NewPassword").length > 0 )
			{	
				sErrors += validPassword(loForm, "NewPassword", "ConfirmNewPassword")
			}
			
			bErrors = Boolean(sErrors);
			
			if (bErrors)
			{
				sErrors = "Please complete the following in your form:\n\n"
					+ sErrors;
				alert(sErrors);
			}
			else
			{
				document.body.style.cursor='wait';
			}
		}
		catch (eError)
		{
			alert('eError: ' + eError.description);
			bErrors = true;
		}
		return (!bErrors);
	}
	
//-----------------------------------------------------------------------------

function ValidateEmailConfirmation(loForm)
{
	var sErrors, bErrors;
	
	try
	{
		if(FieldValue(loForm, loForm.doicode, null).length != 5)
		{
			sErrors = 'Invalid Activation Code'
		}
		bErrors = Boolean(sErrors);
			
		if (bErrors)
		{
			sErrors = "Please complete the following in your form:\n\n"
				+ sErrors;
			alert(sErrors);
		}
		else
		{
			document.body.style.cursor='wait';
		}
	}
	catch (eError)
	{
		alert('eError: ' + eError.description);
		bErrors = true;
	}
	return (!bErrors);

}

//-----------------------------------------------------------------------------

function DOIReminder(oLoginForm)
{
	var sEmail, oEmail;
	if (!oLoginForm)
	{
		oLoginForm = 'confirmdoubleoptin';
	}
	oLoginForm = GetForm(oLoginForm);
	oEmail = GetField(oLoginForm, 'Email')
	sEmail = FieldValue(oLoginForm, oEmail);
	
	if (confirm('Send activation reminder email to ' + sEmail + '?'))
	{
		SetValueSubmitForm(oLoginForm, 'activationreminder', 1);
	}
	
	return(false);
} // ForgotPass

//-----------------------------------------------------------------------------
