﻿//Login Validation
//Login Validation
function fValidateLogin()
{
    var VUserName = "";
    var VPassword = "";
    var VRememberme ="";
    var LoginValidationMessage ="";
    
    if(document.getElementById('txtEmail') != null)
        VUserName = document.getElementById('txtEmail').value;
    if(document.getElementById('txtPassword') != null)
        VPassword = document.getElementById('txtPassword').value;        
        
    if(VUserName == ""){ LoginValidationMessage = LoginValidationMessage + "* Email is Required \n";}
    if(VPassword == ""){ LoginValidationMessage = LoginValidationMessage + "* Password is Required \n";}
    if(!IsValidEmail(VUserName) && !IsEmptyString(VUserName)){LoginValidationMessage = LoginValidationMessage + "*Invalid Email \n";}
    
    if(LoginValidationMessage != "")
    {
    alert(LoginValidationMessage);
    return false;
    }
    
    return true;    
}

//Registration Validations
function ValidateRegistration(VTitle, VFName, VLName, VAddress1, VAddress2, VCity, VState, 
                              VZip, VddlDate, VddlMonth, VddlYear, VEmail, VConfirmEmail, 
                              VPassword, VConfirmPassword)
{
    var ValidtionMessage = "";
    
    //Empty string validations
    if(VTitle == ""){ ValidtionMessage = ValidtionMessage + "* Title is Required \n"; }
    if(VFName == ""){ ValidtionMessage = ValidtionMessage + "* FirstName is Required \n"; }
    if(VLName == ""){ ValidtionMessage = ValidtionMessage + "* LastName is Required \n"; }
    if(VAddress1.trim() == ""){ ValidtionMessage = ValidtionMessage + "* Address is Required \n"; }
    //if(VAddress2 == ""){ ValidtionMessage = ValidtionMessage + "* Address is Required \n"; }
    if(VCity.trim() == ""){ ValidtionMessage = ValidtionMessage + "* City is Required \n"; }
    if(VState == ""){ ValidtionMessage = ValidtionMessage + "* State is Required \n"; }
    if(VZip == ""){ ValidtionMessage = ValidtionMessage + "* Zip is Required \n"; }
    
    if((VddlDate != "") || (VddlMonth != "") || (VddlYear != ""))
    {
    if(VddlDate == ""){ ValidtionMessage = ValidtionMessage + "* Date is Required \n"; }
    if(VddlMonth == ""){ ValidtionMessage = ValidtionMessage + "* Month is Required \n"; }
    if(VddlYear == ""){ ValidtionMessage = ValidtionMessage + "* Year is Required \n"; }

        //Date Validations
        //Check for days in feb
        if(VddlMonth == 2 )
        {
            if(VddlDate > daysInFebruary(VddlYear))
            {
                ValidtionMessage = ValidtionMessage + "* Date not valid \n";
            }
        }
        else
        {
        //check for days in other months
       if(VddlDate > DaysInMonth(VddlMonth))
       {
                ValidtionMessage = ValidtionMessage + "* Date not valid \n";
       }
       }
    
    }
    
    if(VEmail == ""){ ValidtionMessage = ValidtionMessage + "* Email is Required \n"; }
    if(VConfirmEmail == ""){ ValidtionMessage = ValidtionMessage + "* Confirm Email is Required \n"; }
    if(VPassword == ""){ ValidtionMessage = ValidtionMessage + "* Password is Required \n"; }
    if(VConfirmPassword == ""){ ValidtionMessage = ValidtionMessage + "* Confirm Password is Required \n"; }
    
    //Confirm Validations
    if(VEmail != VConfirmEmail){ ValidtionMessage = ValidtionMessage + "* Email and Confirm EMail do not match \n"; }
    if(VPassword != VConfirmPassword){ ValidtionMessage = ValidtionMessage + "* Password and Confirm Password do not match \n"; }
    
    //Name Validations
    if((IsValidName(VFName) == false) && !IsEmptyString(VFName)){ ValidtionMessage = ValidtionMessage + "* First Name not valid \n"; }
    if((IsValidName(VLName) == false) && !IsEmptyString(VLName)){ ValidtionMessage = ValidtionMessage + "* Last Name not valid \n"; }
    
    //Address VAlidations
    if((IsValidAddress(VAddress1) == false) && !IsEmptyString(VAddress1)){ ValidtionMessage = ValidtionMessage + "* Address not valid \n"; }
    //if(IsValidAddress(VAddress2) == false){ ValidtionMessage = ValidtionMessage + "* Adderss not valid \n"; }
    if(VAddress2 != "" && VAddress2.trim() == ""){ ValidtionMessage = ValidtionMessage + "* App/Suite not valid  \n"; }

    //City Validation
    if((IsValidCity(VCity) == false) && !IsEmptyString(VCity)){ ValidtionMessage = ValidtionMessage + "* City not valid \n"; }

    //Zip Validation
    if((IsValidZip(VZip) == false) && !IsEmptyString(VZip)){ ValidtionMessage = ValidtionMessage + "* Zip not valid \n"; }
    
    //Email Validation
    if((IsValidEmail(VEmail) == false) && !IsEmptyString(VEmail)){ ValidtionMessage = ValidtionMessage + "* Email not valid \n"; }
    
    
                
    if(ValidtionMessage != "")
    {
    alert(ValidtionMessage);
    return false;
    }
    
    return true;
}

function DaysInMonth(i) 
{	  
	if (i==1 || i==3 || i==5 || i==7 || i==8) {return 31}
	if (i==4 || i==6 || i==9 || i==11) {return 30}
	if (i==2) {return 29}
 }

function daysInFebruary (year){
	 // February has 29 days in any year evenly divisible by four,
     // EXCEPT for centurial years which are not also divisible by 400.
     return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}

function IsValidName(name)
{
   var objRegExp = /^[a-zA-Z]+(([\'\,\.\- ][a-zA-Z ])?[a-zA-Z\.]*)*$/;
   return objRegExp.test(name);
}

function IsValidAddress(address)
{
   var objRegExp = /[a-zA-Z0-9 \.\-#\\\/]{5,50}$/;
   return objRegExp.test(address);
}

function IsValidCity(city)
{
   var objRegExp = /^[a-zA-Z0-9 \.\-]{2,50}$/;
   return objRegExp.test(city);
}

function IsEmptyString(str)
{
    if(str == "")
    {
        return true;
    }
        
    return false;
}

function IsValidZip(zip)
{
     var regEx = new RegExp('\\d{5}');
     regEx = new RegExp('\\d{5}');

     return regEx.test(zip);
}

function IsValidEmail(email)
{
    var objRegExp = /^[A-Za-z0-9&\+\'_-]+(\.[A-Za-z0-9&\+\'_-]+)*@([A-Za-z0-9_-]+\.)+[A-Za-z]{2,6}$/i;
    return objRegExp.test(email);
}

String.prototype.trim = function() 
{
  return this.replace(/^\s+|\s+$/g, "");
}
