﻿// JScript File
/***********************************************************************
Function alertValidation(formname, notRequired)
Author: Jon White 2/1/2008

Description:
Validates all standard promotional fields using an alert box to display
invalid information. Returns true if everything is valid and false 
otherwise. 
Fields Validated: firstName, lastName, email, confirmEmail, address1,
city, state, zip, phone(as 1 field or 3 fields(phone1, phone2, phone3), 
birthdate(as 1 field or 3 fields(birthMonth, birthDay, birthYear), 
password, confirmPassword, agreeToRules. 

** NOTE: for alertValidation() to work the input field names in the form to be
validated MUST match the list above.

Parameters:
formname -> the name of the form to be validated
notRequired (optional) -> An array of field names that will NOT be 
                          validated. If this parameter is not sent
                          to alertValidation() it will validate all 
                          standard fields

Returns:
True if all fields are valid, False if any fields are invalid

Dependencies:
Uses methods and functions in jsutil.js and prototype.js Be sure to include
these files on the page calling alertValidation()

Additonal Fields:
If you need to validate additional non-standard fields simply add another
case to the switch statement in the following format:

case "<fieldname>":
    if($F(item)=="")
    {
        ErrorList += '<Error Message>\n';
        if (FormObj == "") {FormObj = item;}
    }
    break;

Change Log:
2/1/2008        Intial Creation             JW    
************************************************************************/

function alertValidation(formname, notRequired)
{  
   // take care of optional notRequired parameter
   notRequired = notRequired || new Array ();
   
   var ErrorList = "";
   var FormObj = "";
   var FullPhoneNumber = "";
   var phoneFlag = 0;
   var FullBirthDate = "";
   var bdayFlag = 0;
   var tempEmail;
   var tempPassword;
   var opt1Fail = "";
   var monthFailed = false;
   var dayFailed = false;
   
   // Get all the Elements of the Form
   var formFields = new Array();
   var form1 = $(formname); 
   formFields = form1.getElements()
  
   // Loop through all Form Elements
   for (var index = 0; index < formFields.length; ++index) {
        var item = formFields[index];

        // perform a select case and validate depending on name
            switch (item.name)
            {
                case "firstName":
                    if (notRequired.indexOf(item.name) == -1)
                    {
                        if ($F(item) == "")
                        {
                            ErrorList += 'Please enter your First Name.<br />';
                            document.getElementById("lblFirstName").className = "errorLabel";
                            document.getElementById("lblFirstName").style.color = "red";
                            if (FormObj == "") {FormObj = item;}
                        }
                        else
                        {
                            document.getElementById("lblFirstName").className = "";
                            document.getElementById("lblFirstName").style.color = "#009245";
                        }
                    }
                    break;
                
                case "lastName":
                    if (notRequired.indexOf(item.name) == -1)
                    {
                        if ($F(item) == "")
                        {
                            ErrorList += 'Please enter your Last Name.<br />';
                            document.getElementById("lblLastName").className = "errorLabel";
                            document.getElementById("lblLastName").style.color = "red";
                            if (FormObj == "") {FormObj = item;}
                        }
                        else
                        {
                            document.getElementById("lblLastName").className = "";
                            document.getElementById("lblLastName").style.color = "#009245";
                        }
                    }
                    break;
                case "email":
                    if (notRequired.indexOf(item.name) == -1)
                    {
                        if ($F(item)=="")
                        {
                            ErrorList += 'Please enter an Email Address.<br />';
                            document.getElementById("lblEmail").className = "errorLabel";
                            document.getElementById("lblEmail").style.color = "red";
                            if (FormObj == "") {FormObj = item;}
                        }
                        else
                        {
                            document.getElementById("lblEmail").className = "";
                             document.getElementById("lblEmail").style.color = "#009245";
                            tempEmail = $F(item);
                            if (!validateEmail($F(item))) 
                            {
                                ErrorList += 'Please enter your e-mail in a valid form(Ex. username@isp.com).<br />';
                                document.getElementById("lblEmail").className = "errorLabel";
                                document.getElementById("lblEmail").style.color = "red";
                                if (FormObj == "") {FormObj = item;}
                            }
                            else
                            {
                                document.getElementById("lblEmail").className = "";
                                document.getElementById("lblEmail").style.color = "#009245";
                            }
                        }
                    }
                    break;
                
                 case "loginEmail":
                    if (notRequired.indexOf(item.name) == -1)
                    {
                        if ($F(item)=="" || $F(item)=="EMAIL")
                        {
                            ErrorList += 'Please enter an Email Address.<br />';
                            //document.getElementById("loginEmailLabel").className = "errorLabel";
                            if (FormObj == "") {FormObj = item;}
                        }
                        else
                        {
                            //document.getElementById("loginEmailLabel").className = "";
                            tempEmail = $F(item);
                            if (!validateEmail($F(item))) 
                            {
                                ErrorList += 'Please enter your e-mail in a valid form(Ex. username@isp.com).<br />';
                                //document.getElementById("loginEmailLabel").className = "errorLabel";
                                if (FormObj == "") {FormObj = item;}
                            }
                            else
                            {
                                //document.getElementById("loginEmailLabel").className = "";
                            }
                        }
                    }
                    break;
                
                case "confirmEmail":
                    if (notRequired.indexOf(item.name) == -1)
                    {
                        if ($F(item)=="")
                        {
                            ErrorList += 'Please confirm your email address.<br />';
                            if (FormObj == "") {FormObj = item;}
                        }
                        else
                        {
                            if ($F(item).toUpperCase() != tempEmail.toUpperCase())
                            {
                                ErrorList += 'Your email addresses do not match.<br />';
                                
                                if (FormObj == "") {FormObj = item;}
                            }   
                        }
                    }
                    break;
                case "address1":
                    if (notRequired.indexOf(item.name) == -1)
                    {
                        if ($F(item) == "")
                        {
                            ErrorList += 'Please enter your Address.<br />';
                            document.getElementById("lblAddressLine1").className = "errorLabel";
                             document.getElementById("lblAddressLine1").style.color = "red";
                            if (FormObj == "") {FormObj = item;}
                        }
                        else
                        {
                            document.getElementById("lblAddressLine1").className = "";
                            document.getElementById("lblAddressLine1").style.color = "#009245";
                            var valstreet_address = new RegExp("[pP]{1}[.]*[oO]{1}[.]*[ ]*[bB]{1}[oO]{1}[xX]{1}");

                              if ($F(item).match(valstreet_address) != null) 
                              {
                                 ErrorList += 'No P.O. Box Allowed in Address 1.<br />';
                                 document.getElementById("lblAddressLine1").className = "errorLabel";
                                  document.getElementById("lblAddressLine1").style.color = "red";
                                if (FormObj == "") {FormObj = item;}
                              }
                              else
                              {
                                 document.getElementById("lblAddressLine1").className = "";
                                 document.getElementById("lblAddressLine1").style.color = "#009245";
                              }
                             

                        }
                    }
                    break;
               
               case "address2":
                     if ($F(item) != "")
                         {
                            //var doc = document.create_account;
                            var valstreet_address = new RegExp("[pP]{1}[.]*[oO]{1}[.]*[ ]*[bB]{1}[oO]{1}[xX]{1}");

                              if ($F(item).match(valstreet_address) != null) {
                                 ErrorList += 'No P.O. Box Allowed in Address 2.<br />';
                                if (FormObj == "") {FormObj = item;}
                             }

                        }
                    break;
                    
                case "city":
                    if (notRequired.indexOf(item.name) == -1)
                    {
                        if ($F(item) == "")
                        {
                            ErrorList += 'Please enter your City.<br />';
                            document.getElementById("lblCity").className = "errorLabel";
                            document.getElementById("lblCity").style.color = "red";
                            if (FormObj == "") {FormObj = item;}
                        }
                        else
                        {
                            document.getElementById("lblCity").className = "";
                            document.getElementById("lblCity").style.color = "#009245";
                        }
                    }
                    break;
                case "state":
                    if (notRequired.indexOf(item.name) == -1)
                    {
                        if ($F(item) == "" || $F(item) == "select" || $F(item) == "--")
                        {
                            ErrorList += 'Please enter your State.<br />';
                            document.getElementById("lblState").className = "errorLabel";
                            document.getElementById("lblState").style.color = "red";
                            if (FormObj == "") {FormObj = item;}
                        }
                        else
                        {
                            document.getElementById("lblState").className = "";
                            document.getElementById("lblState").style.color = "#009245";
                        }
                    }
                    break;
                case "zip":
                    if (notRequired.indexOf(item.name) == -1)
                    {
                        if ($F(item) == "")
                        {
                            ErrorList += 'Please enter your Zipcode.<br />';
                            document.getElementById("lblZip").className = "errorLabel";
                            document.getElementById("lblZip").style.color = "red";
                            if (FormObj == "") {FormObj = item;}
                        }
                        else
                        {
                            document.getElementById("lblZip").className = "";
                            if (!isZipCode($F(item)))
				            {
					            ErrorList += "Please enter a valid Zipcode.<br />";
					            document.getElementById("lblZip").className = "errorLabel";
					            document.getElementById("lblZip").style.color = "red";
					            if (FormObj == "") {FormObj = item;}
				            }
				            else
				            {
				                document.getElementById("lblZip").className = "";
				                document.getElementById("lblZip").style.color = "#009245";
				            }
		                }
		            }
		            else
		            {
		                if($F(item) != "")
		                {
		                    if (!isZipCode($F(item)))
				            {
					            ErrorList += "The Zipcode you have entered is invalid.<br />";
					            if (FormObj == "") {FormObj = item;}
				            }
		                }
		            }
		            break;
		        // if phone number is 1 field
		        case "phone":
		            if (notRequired.indexOf(item.name) == -1)
                    {
		                if ($F(item) == "" || $F(item)=="###-###-####")
		                {
		                    ErrorList += "Please enter your Phone Number.<br />";
		                    if (FormObj == "") {FormObj = item;}
		                }
		                else
		                {
		                    if (!isPhone($F(item)))
		                    {
		                        ErrorList += "Please enter your phone number in a valid format (ex: ###-###-####).<br />";
		                        if (FormObj == "") {FormObj = item;}
		                    }
        		        }
		            }
		            else
		            {
		                if ($F(item)!= "" && $F(item)!= "###-###-####")
		                {
		                    if (!isPhone($F(item)))
		                        {
		                            ErrorList += "The phone number you have entered is invalid please us a valid format (ex: ###-###-####).<br />";
		                            if (FormObj == "") {FormObj = item;}
		                        }
		                }
		            }
		            break;
		         // if phone number is 3 fields
		         case "phone1":
		            if (notRequired.indexOf(item.name) == -1)
                    {
		                if ($F(item)=="" || $F(item)=="##")
		                {
		                    if (phoneFlag != 1)
		                    {
		                        ErrorList += "Please complete your phone number.<br />";
		                        phoneFlag = 1;
		                    }
		                    if (FormObj == "") {FormObj = item;}
		                }
		                else
		                {
		                    FullPhoneNumber += ($F(item) + "-");
		                }
		            }
		            else
		            {
		                if ($F(item)!="" && $F(item)!="##")
		                {
		                    FullPhoneNumber += ($F(item) + "-");
		                }
		            }
		            break;
    		     
		         case "phone2":
		            if (notRequired.indexOf(item.name) == -1)
                    {
		                if ($F(item)=="" || $F(item)=="##")
		                {
		                    if (phoneFlag != 1)
		                    {
		                        ErrorList += "Please complete your phone number.<br />";
		                        phoneFlag = 1;
		                    }
		                    if (FormObj == "") {FormObj = item;}
		                }
		                else
		                {
		                    FullPhoneNumber += ($F(item) + "-");
		                }
		            }
		            else
		            {
		                if (FullPhoneNumber!="" || ($F(item)!="" && $F(item)!="##"))
		                {
		                    FullPhoneNumber += ($F(item) + "-");
		                }
		            }
		            break;
    		        
		         case "phone3":
		            if (notRequired.indexOf(item.name) == -1)
                    {
		                if ($F(item)=="" || $F(item)=="####")
		                {
		                    if (phoneFlag != 1)
		                    {
		                        ErrorList += "Please complete your phone number.<br />";
		                        phoneFlag = 1;
		                    }
		                    if (FormObj == "") {FormObj = item;}
		                }
		                else
		                {
		                    FullPhoneNumber += $F(item);
		                    if (phoneFlag != 1)
		                    {
		                        if (!isPhone(FullPhoneNumber))
		                        {

		                            ErrorList += "Please enter your phone number in a valid format (ex: ###-###-####).<br />";
		                            if (FormObj == "") {FormObj = item;}
		                        }
		                    }
        		            
		                }
		            }
		            else
		            {   
		                if (FullPhoneNumber != "" || ($F(item)!="" && $F(item)!="####"))
		                {
		                    FullPhoneNumber+=$F(item);
		                
		                    if (!isPhone(FullPhoneNumber))
		                    {
		                        ErrorList += "The phone number you have entered is invalid please us a valid format (ex: ###-###-####).<br />";
		                        if (FormObj == "") {FormObj = item;}
		                    }
		                }
		            }
		            break;
		         case "birthdate":
		            if (notRequired.indexOf(item.name) == -1)
		            {
		                if($F(item)=="" || $F(item).toUpperCase() == "MM/DD/YYYY")
		                {
		                    ErrorList += "Please enter your birthdate.<br />";
		                    if (FormObj == "") {FormObj = item;}
		                } 
		                else
		                {
		                    if(!IsDate($F(item)))
		                    {
		                        ErrorList += "Please enter your birth date in a valid format (ex: mm/dd/yyyy).<br />";
		                        if (FormObj == "") {FormObj = item;}
		                    }
		                }
		            }
		            else
		            {
		                if($F(item)!="" && $F(item).toUpperCase() != "MM/DD/YYYY")
		                {
		                    if(!IsDate($F(item)))
		                    {
		                        ErrorList += "The birthdate you have entered is invalid. Please enter it in a valid format (ex: mm/dd/yyyy).<br />";
		                        if (FormObj == "") {FormObj = item;}
		                    }
		                }
		            }
		            break;
		         // if birthdate is 3 fields
		         case "birthMonth":
		            if (notRequired.indexOf(item.name) == -1)
		            {
		                if ($F(item) == "" || IsNumeric($F(item)) == false)
                        {
                            ErrorList += 'Please enter your birth month.<br />';
                            document.getElementById("lblBirthDate").className = "errorLabel";
                            document.getElementById("lblBirthDate").style.color = "red";
                            monthFailed = true;
                            if (FormObj == "") {FormObj = item;}
                        }
                        else
                        {
                            document.getElementById("lblBirthDate").className = "";
                            document.getElementById("lblBirthDate").style.color = "#009245";
                        }
		            }
		            break;
    		     
		         case "birthDay":
		            if (notRequired.indexOf(item.name) == -1)
		            {
		                if(monthFailed == false)
		                {
		                    if ($F(item) == "" || IsNumeric($F(item)) == false)
                            {
                                ErrorList += 'Please enter your birth day.<br />';
                                document.getElementById("lblBirthDate").className = "errorLabel";
                                document.getElementById("lblBirthDate").style.color = "red";
                                dayFailed = true;
                                if (FormObj == "") {FormObj = item;}
                            }
                            else
                            {
                                document.getElementById("lblBirthDate").className = "";
                                document.getElementById("lblBirthDate").style.color = "#009245";
                            }
                        }
                     
		            }
		            break;
    		        
		         case "birthYear":
		            if (notRequired.indexOf(item.name) == -1)
		            {
		                if(monthFailed == false && dayFailed == false)
		                {
		                    if ($F(item) == "" || IsNumeric($F(item)) == false)
                            {
                                ErrorList += 'Please enter your birth year.<br />';
                                document.getElementById("lblBirthDate").className = "errorLabel";
                                document.getElementById("lblBirthDate").style.color = "red";
                                if (FormObj == "") {FormObj = item;}
                            }
                            else
                            {
                                document.getElementById("lblBirthDate").className = "";
                                document.getElementById("lblBirthDate").style.color = "#009245";
                            }
                        }
                     }
                    break;
		            
		        case "password":
		            if ($F(item)== "")
		            {
		                ErrorList += 'Please enter a password.<br />';
		                document.getElementById("lblPassword").className = "errorLabel";
		                document.getElementById("lblPassword").style.color = "red";
		                if (FormObj == "") {FormObj = item;}
		            }
		            else
		            {
		                tempPassword = $F(item);
		                document.getElementById("lblPassword").className = "";
		                document.getElementById("lblPassword").style.color = "#009245";
		            }
		            
		            break;
		        
		        case "loginPassword":
		            if ($F(item)== "" || $F(item)=="PASSWORD" )
		            {
		                ErrorList += 'Please enter a password.<br />';
		                //document.getElementById("loginPasswordLabel").className = "errorLabel";
		                if (FormObj == "") {FormObj = item;}
		            }
		            else
		            {
		                tempPassword = $F(item);
		                //document.getElementById("loginPasswordLabel").className = "";
		            }
		            
		            break;
    		        
		        case "confirmPassword":
                    if ($F(item)=="")
                    {
                        ErrorList += 'Please confirm your Password.<br />';
                        document.getElementById("lblConfirmPassword").className = "errorLabel";
                        document.getElementById("lblConfirmPassword").style.color = "red";
                        if (FormObj == "") {FormObj = item;}
                    }
                    else
                    {
                        if ($F(item) != tempPassword)
                        {
                            ErrorList += 'Your Passwords do not match.<br />';
                            document.getElementById("lblPassword").className = "errorLabel";
                            document.getElementById("lblConfirmPassword").className = "errorLabel";
                            document.getElementById("lblConfirmPassword").style.color = "red";
                            if (FormObj == "") {FormObj = item;}
                        }
                        else
                        {
                            document.getElementById("lblPassword").className = "label";
                            document.getElementById("lblConfirmPassword").className = "label";
                        }
                          
                    }
                    break;
                    
                 case "codeValue":
                    if ($F(item)== "" || $F(item).length < 10)
		            {
		                ErrorList += 'Please enter a code.<br />';
		                if (FormObj == "") {FormObj = item;}
		            }
		          
		            break;
                 
                 
                  case "soccerClubs":
                        if($F(item) == "")
                        {
                            ErrorList += 'Please select a soccer club.<br />';
                            //document.getElementById("lblPrefix").className = "errorLabel";
                            if (FormObj == "") {FormObj = item;}
                        }
                        else
                        {
                            //document.getElementById("lblPrefix").className = "";
                        }
                    
                    break; 
                    
                    
                    
                case "friendEmail1":
                    if (notRequired.indexOf(item.name) == -1)
                    {
                        if ($F(item)=="")
                        {
                            ErrorList += '*Denotes required field.<br />Please enter at least one Email Address.<br />';
                            document.getElementById("friendEmail").className="errorLabel";
                            document.getElementById("friendEmail").style.color="red";
                            if (FormObj == "") {FormObj = item;}
                        }
                        else
                        {
                            document.getElementById("lblEmail").className="";
                            if (!validateEmail($F(item))) 
                            {
                                ErrorList += '*Denotes required field.<br />Please enter the email address in a valid form<br />(Ex. username@isp.com).<br />';
                                document.getElementById("friendEmail").className="errorLabel";
                                document.getElementById("friendEmail").style.color="red";
                                if (FormObj == "") {FormObj = item;}
                            }
                        }
                    }
                    break;
        }
    }
    
    
    if(form1.name == 'frmRegister')
    {
        
    }
    
    if (ErrorList != "")
		{
			//alert(ErrorList);
			//$('errorContainer').innerHTML = ErrorList;
			
			if(form1.name == 'frmCode')
			{
			    $('codeError').innerHTML = '<font color="RED">Please enter a valid 10 character code.</font>';
			}
			else
			{			
			    if(form1.name == 'frmRegLogin')
			    {
			        $('errorContainer2').innerHTML = '<font color="RED">Double-check required fields and try again.</font>';
			    }
			    else
			    {
			        document.getElementById('errorContainer').style.display = "block";
			        $('errorContainer').innerHTML = '<font color="RED">Double-check required fields and try again.</font>';
			    }
			}
		    
			if (FormObj != "")
			{
				FormObj.focus(); 
			}
			return false;
		}
		return true;
}



function IsNumeric(sText)

{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
   }


