///<summary>
/// Ask the user for confirmation before resetting the form
///</summary>
function GenericReset()
{
    return confirm("Are you sure you want to reset this form?");
}//GenericReset

///<summary>
/// Validate the phone number
///</summary>
function ValidatePhoneNumber(inPhone)
{
    var PhonePattern1 = /\d\d\d\ \d\d\d \d\d\d\d/;
    var PhonePattern2 = /\d\d\d-\d\d\d-\d\d\d\d/;
    var PhonePattern3 = /\(\d\d\d\) \d\d\d-\d\d\d\d/;
    var PhonePattern4 = /\(\d\d\d\) \d\d\d\ \d\d\d\d/;
    
    var bPhoneValid = false;
   
   if(PhonePattern1.test(inPhone) || PhonePattern2.test(inPhone) || PhonePattern3.test(inPhone) || PhonePattern4.test(inPhone))
   {
		bPhoneValid = true;
   }
    return bPhoneValid;
}//ValidatePhoneNumber

///<summary>
/// Validate the login form
///</summary>
function ValidateFieldsLogon()
{
    var oForm = document.Logon
    var RetVal = true;
    
    if(oForm.Username.value.length < 1)
    {
        alert("Please enter in your username.");
        AttemptFocus(oForm.Username);
        RetVal = false;    
    }
    else if(oForm.Password.value.length < 1)
    {
        alert("Please enter in your password.");
        AttemptFocus(oForm.Password);
        RetVal = false;    
    }
    
    return RetVal;
}//ValidateFieldsLogon


///<summary>
/// Validate the subscribe and unsubscribe form fields
///</summary>
function ValidateSubscribeFields()
{
	var sErrorMsg = '';
	var RetVal = true;
	var oForm = document.forms.Newsletter;
	
	if(oForm.FirstName.value.length < 1)
	{
		alert("Please enter your name.");
		AttemptFocus(oForm.FirstName);
        RetVal = false;
	}
	else if (oForm.Email.value.length < 1)
	{
		alert("Please enter your email address.");
		AttemptFocus(oForm.Email);
        RetVal = false;
	}
	else if (oForm.Email.value.length > 0)
	{
		var Test = oForm.Email.value;
		
		if ( ! EmailValidate(Test))
		{
			alert("Please enter a valid email address.");
			AttemptFocus(oForm.Email);
			RetVal = false;
		}
	}
	return RetVal;		
}//Validate

///<summary>
/// Validate the subscribe and unsubscribe form fields
///</summary>
function ValidateUnSubscribeFields()
{
	var sErrorMsg = '';
	var RetVal = true;
	var oForm = document.forms.Unsubscribe;
	
	if(oForm.FirstName.value.length < 1)
	{
		alert("Please enter your name.");
		AttemptFocus(oForm.FirstName);
        RetVal = false;
	}
	else if (oForm.Email.value.length < 1)
	{
		alert("Please enter your email address.");
		AttemptFocus(oForm.Email);
        RetVal = false;
	}
	else if (oForm.Email.value.length > 0)
	{
		var Test = oForm.Email.value;
		
		if ( ! EmailValidate(Test))
		{
			alert("Please enter a valid email address.");
			AttemptFocus(oForm.Email);
			RetVal = false;
		}
	}
	return RetVal;		
}//Validate

///<summary>
/// Validate the CFL form
///</summary>
function ValidateCFLForm()
{
	var oForm = document.CFLForm;
	var RetVal = true;
	
	 if(oForm.First_Name.value.length < 1)
    {
        alert("Please enter in your first name.");
        AttemptFocus(oForm.First_Name);
        RetVal = false;    
    }
    else if(oForm.Last_Name.value.length < 1)
    {
        alert("Please enter in your last name.");
        AttemptFocus(oForm.Last_Name);
        RetVal = false;    
    }
    else if( !ValidatePhoneNumber(oForm.Phone_Number.value))
    {
        alert("Please enter your phone number in the format 111 111 1111 or 111-111-1111");
        AttemptFocus(oForm.Phone_Number);
        RetVal = false;    
    } 
    else if(oForm.Email_Address.value.length < 1)
    {
        alert("Please enter your email address");
        AttemptFocus(oForm.Email_Address);
        RetVal = false;        
    }
    else if( !EmailValidate(oForm.Email_Address.value))
    {
		alert("The email address you have entered is invalid. Please enter your valid email address");
        AttemptFocus(oForm.Email_Address);
        RetVal = false;
    }
    else if(oForm.Number_Of_Guests.value.length < 1)
    {
        alert("Please enter the number of guests.");
        AttemptFocus(oForm.Number_Of_Guests);
        RetVal = false;
    }
    
    return RetVal; 
}//ValidateCFLForm

///<summary>
/// Validate the contact us form
///</summary>
function  ValidateContactUs()
{
    var oForm = document.ContactUs;
    var RetVal = true;
    
    if(oForm.Name.value.length<1)
    {
        alert("Please enter in your name.");
        AttemptFocus(oForm.Name);
        RetVal = false;
    }
    else if(oForm.Address.value.length<1)
    {
        alert("Please enter in your address.");
        AttemptFocus(oForm.Address); 
        RetVal = false;    
    }
    else if(oForm.City.value.length<1)
    {
        alert("Please enter in your city of residence.");
        AttemptFocus(oForm.City);
        RetVal = false;    
    }    
    else if(oForm.Province.selectedIndex  < 1)
    {
        alert("Please select your province");
        AttemptFocus(oForm.Province);
        RetVal = false;    
    }  
    else if( !ValidatePostalCode(oForm.Postal_Code.value))
    {
        alert("Please enter your postal code in the format ANA NAN");
        AttemptFocus(oForm.Postal_Code);
        RetVal = false;    
    } 
    else if( !ValidatePhoneNumber(oForm.Phone.value))
    {
        alert("Please enter your phone number in the format 111 111 1111 or 111-111-1111");
        AttemptFocus(oForm.Phone);
        RetVal = false;    
    }     
    else if( !EmailValidate(oForm.Email.value))
    {
        alert("Please enter your email address");
        AttemptFocus(oForm.Email);
        RetVal = false;        
    }
    else if(oForm.Comments.value.length < 1)
    {
        alert("Please enter your comments");
        AttemptFocus(oForm.Comments);
        RetVal = false;        
    }    
    
    return RetVal;
}//ValidateContactUs

function ValidateSubmitReport()
{
	var oForm = document.ReportForm;
	var RetVal = true;

	if(oForm.Name.value == '')
    {
        alert("Please enter in your name.");
        AttemptFocus(oForm.Name);
        RetVal = false;
    }
    else if( !ValidatePhoneNumber(oForm.Phone.value))
    {
        alert("Please enter your phone number in the format 111 111 1111 or 111-111-1111");
        AttemptFocus(oForm.Phone);
        RetVal = false;    
    }
    else if(oForm.Email.value.length < 1)
    {
        alert("Please enter your email address");
        AttemptFocus(oForm.Email);
        RetVal = false;        
    }
    else if( !EmailValidate(oForm.Email.value))
    {
		alert("The email address you have entered is invalid. Please enter your valid email address");
        AttemptFocus(oForm.Email);
        RetVal = false;
    }
    
      return RetVal;
}//ValidateSubmitReport

///<summary>
///This function will be used to validate all the input fields in the email a friend form
///</summary>
function ValidateEmailAFriend()
{
	var oForm = document.EmailAFriend;
    var RetVal = true;
    
	if(oForm.Name.value == '')
    {
        alert("Please enter in your name.");
        AttemptFocus(oForm.Name);
        RetVal = false;
    }
    else if( !EmailValidate(oForm.Email.value))
    {
        alert("Please enter your email address");
        AttemptFocus(oForm.Email);
        RetVal = false;        
    }
	else if( !EmailValidate(oForm.FEmail.value))
    {
        alert("Please enter your friend's email address");
        AttemptFocus(oForm.FEmail);
        RetVal = false;        
    }
    else if(oForm.Comments == '')
    {
        alert("Please enter your comments.");
        AttemptFocus(oForm.Comments);
        RetVal = false;
    }
    
    return RetVal;
  }//ValidateEmailAFriend

///<summary>
/// Validate the order form
///</summary>
function  ValidateOrder()
{
    var oForm = document.OrderForm;
    var RetVal = true;
    
    if(!ValidInput())
    {
		alert("Please order at least one item in order to submit this form or enter an integer value if you already have an entry");
		AttemptFocus(oForm.Post_Cards);
		RetVal = false;
    }
    else if(oForm.Name.value.length<1)
    {
        alert("Please enter in your name.");
        AttemptFocus(oForm.Name);
        RetVal = false;
    }
    else if(oForm.Address.value.length<1)
    {
        alert("Please enter in your address.");
        AttemptFocus(oForm.Address);
        RetVal = false;    
    }
    else if(oForm.City.value.length<1)
    {
        alert("Please enter in your city of residence.");
        AttemptFocus(oForm.City);
        RetVal = false;    
    }    
    else if(oForm.Province.selectedIndex  < 1)
    {
        alert("Please select your province");
        AttemptFocus(oForm.Province);
        RetVal = false;    
    }  
    else if( !ValidatePostalCode(oForm.Postal_Code.value))
    {
        alert("Please enter your postal code in the format ANA NAN");
        AttemptFocus(oForm.Postal_Code);
        RetVal = false;    
    } 
    else if( !ValidatePhoneNumber(oForm.Phone.value))
    {
        alert("Please enter your phone number in the format 111 111 1111 or 111-111-1111");
        AttemptFocus(oForm.Phone);
        RetVal = false;    
    }     
    else if( !EmailValidate(oForm.Email.value))
    {
        alert("Please enter your email address");
        AttemptFocus(oForm.Email);
        RetVal = false;        
    }  
    
    return RetVal;
}//ValidateOrder

///<summary>
/// Validate the input items on the order form
///</summary>
function ValidInput()
{
	var itemVal = false;
	var oForm = document.OrderForm;
	//Loop through the items to make sure that atleast one item has been specified.
    for(var i = 0; i<oForm.length; i++)
    {
     if((oForm.elements[i].name.indexOf("ORDERITEM") != -1) && (oForm.elements[i].value != ''))
     {
		//validate to make sure the input value is an integer
		if(oForm.elements[i].value == (oForm.elements[i].value-0))
		{
			itemVal = true;
			break;
		}
     }
    }//for
    return itemVal;
    
}//ValidInput

///<summary>
/// Validate the input on the User preferences form
///</summary>
function ValidateUserPrefs()
{
    var oForm = document.UserPreferences;
    var RetVal = true;
    
    if(oForm.Description.value.length < 1)
    {
        alert("Please enter your name.");
        AttemptFocus(oForm.Description);
        RetVal = false;                
    }
    else if(oForm.Street.value.length < 1)
    {
        alert("Please enter your Address.");
        AttemptFocus(oForm.Street);
        RetVal = false;                   
    }
    else if(oForm.City.value.length < 1)
    {
        alert("Please enter your city or town of residence.");
        AttemptFocus(oForm.City);
        RetVal = false;     
    }
    else if(oForm.Province.selectedIndex < 1)
    {
        alert("Please enter your Province");
        AttemptFocus(oForm.Province);
        RetVal = false;    
    }
    else if(oForm.PostalCode.value < 1)
    {
        alert("Please enter your Postal Code");
        AttemptFocus(oForm.PostalCode);
        RetVal = false;    
    }
    else if( oForm.PostalCode.value > 1 && !ValidatePostalCode(oForm.PostalCode.value))
    {
        alert("Please enter your postal code in the format ANA NAN");
        AttemptFocus(oForm.PostalCode);
        RetVal = false;    
    } 
    else if(oForm.HomePhone.value.length > 0 && !ValidatePhoneNumber(oForm.HomePhone.value) )
    {
        alert("Please enter in a valid phone number in the format NNN NNN NNNN or NNN-NNN-NNNN");
        AttemptFocus(oForm.HomePhone);
        RetVal = false;         
    }
    else if(oForm.OfficePhone.value.length > 0 && !ValidatePhoneNumber(oForm.OfficePhone.value) )
    {
        alert("Please enter in a valid phone number in the format NNN NNN NNNN or NNN-NNN-NNNN");
        AttemptFocus(oForm.OfficePhone);
        RetVal = false;         
    }
    else if(oForm.FaxPhone.value.length > 0 && !ValidatePhoneNumber(oForm.FaxPhone.value) )
    {
        alert("Please enter in a valid phone number in the format NNN NNN NNNN or NNN-NNN-NNNN");
        AttemptFocus(oForm.FaxPhone);
        RetVal = false;         
    }        
     else if(oForm.Email.value < 1)
    {
        alert("Please enter your Email");
        AttemptFocus(oForm.Province);
        RetVal = false;    
    }
    else if( !EmailValidate(oForm.Email.value) )
    {
        alert("Please enter in a valid email address");
        AttemptFocus(oForm.Email);
        RetVal = false;     
    }
    else if(oForm.Live_Reffered.checked && oForm.ReferedBy.value.length < 1)
    {
        alert("Please enter your referring ambassador.");
        AttemptFocus(oForm.ReferedBy);
        RetVal = false;    
    }
    else if(oForm.Live_Moved.checked && (oForm.YearOfMove.value.length < 1 || isNaN(parseInt(oForm.YearOfMove.value, 10))) )
    {
        alert("Please enter the year of your move.");
        AttemptFocus(oForm.YearOfMove);
        RetVal = false;    
    }    
        
    return RetVal;
}//ValidateUserPrefs