/* Validation Functions */

//////////////////
// validEmail() //
//////////////////

function validEmail(emailStr) {

var emailPat=/^(.+)@(.+)$/;
var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
var validChars="\[^\\s" + specialChars + "\]";
var quotedUser="(\"[^\"]*\")";
var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
var atom=validChars + '+';
var word="(" + atom + "|" + quotedUser + ")";
var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");

var matchArray=emailStr.match(emailPat);

if (matchArray==null) {
return false;
}

var user=matchArray[1];
var domain=matchArray[2];

if (user.match(userPat)==null) {
return false;
}

var IPArray=domain.match(ipDomainPat)
if (IPArray!=null) {
for (var i=1;i<=4;i++) {
if (IPArray[i]>255) {
return false;
}
}
}

var domainArray=domain.match(domainPat);

if (domainArray==null) {
return false;
}

var atomPat=new RegExp(atom,"g");
var domArr=domain.match(atomPat);
var len=domArr.length;

if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) {
return false;
}

if (len<2) {
return false;
}

return true;

}

/* Form Validation */

/////////////////////////////
// validateSendToAFriend() //
/////////////////////////////

function validateSendToAFriend(form) {

if (form.inputName.value == "") {
alert("Please enter your Friend's name.");
return false;
}

if (form.inputEmail.value == "") {
alert("Please enter your Friend's email address.");
return false;
}

if (!validEmail(form.inputEmail.value)) {
alert("Please enter a valid Email address.");
return false;
}

// javascript is enabled

form.javascript.value = 'enabled';

return true;

}

//////////////////////
// validateMember() //
//////////////////////

function validateMember(form) {

var action = form.action.value; // set action

if (action == 'edit' || action == 'new') { // edit / new

if (form.inputEmail.value == "") {
alert("Please enter your Email address.");
return false;
}

if (!validEmail(form.inputEmail.value)) {
alert("Please enter a valid Email address.");
return false;
}

if (form.action.value == 'new') { // new

if (form.inputPassword.value == "") {
alert("Please enter a Password.");
return false;
}

} // end add

if (form.inputPassword.value != form.passwordCheck.value) {
alert("The Password and Re-Enter Password fields do not match.");
return false;
}

if (form.inputFirstname.value == "") {
alert("Please enter your First Name.");
return false;
}

if (form.inputLastname.value == "") {
alert("Please enter your Last Name.");
return false;
}

// check birthday

var birthday = form.inputBirthday.value;
var birthdayArray = birthday.split('-');
var birthDate = new Date;
birthDate.setDate(birthdayArray[2]);
birthDate.setMonth(birthdayArray[1]);
birthDate.setFullYear(birthdayArray[0]);

var targetAge = 18;
var targetAgeDate = new Date;
var yearMinusAge = targetAgeDate.getFullYear() - targetAge;
targetAgeDate.setFullYear(yearMinusAge);

if (birthDate > targetAgeDate) { // guardian required
if (form.inputGuardian.value == "") {
alert("Please enter the name of your Parent / Guardian.");
return false;
}
} // end guardian required

if (form.inputPhone.value == "") {
alert("Please enter your Phone Number.");
return false;
}

} else { // not edit / new

return false;

} // end not edit / new

// javascript is enabled

form.javascript.value = 'enabled';

return true;

}

/////////////////////
// validateEmail() //
/////////////////////

function validateEmail(form) {

if (form.inputEmail.value == "") {
alert("Please enter an Email address.");
return false;
}

if (!validEmail(form.inputEmail.value)) {
alert("Please enter a valid Email address.");
return false;
}

// javascript is enabled

form.javascript.value = 'enabled';

return true;

}

///////////////////////
// validateMyPicks() //
///////////////////////

function validateMyPicks(form) {

var action = form.action.value; // set action

if (action != 'update') { // not update

return false;

} // end not update

// javascript is enabled

form.javascript.value = 'enabled';

return true;

}

/////////////////////////////
// validateMemberContent() //
/////////////////////////////

function validateMemberContent(form) {

var action = form.action.value; // set action

if (action == 'edit' || action == 'add') { // edit / add

if (form.inputTitle.value == "") {
alert("Please enter a Title.");
return false;
}

} else { // not edit / add

return false;

} // end not edit / add

// javascript is enabled

form.javascript.value = 'enabled';

return true;

}