﻿//  check for valid numeric strings	
function IsNumeric(strString)
{
   var strValidChars = "0123456789.-";
   var strChar;
   var blnResult = true;

   if (strString.length == 0) return false;

   //  test strString consists of valid characters listed above
   for (i = 0; i < strString.length && blnResult == true; i++)
   {
      strChar = strString.charAt(i);
      if (strValidChars.indexOf(strChar) == -1)
      {
         blnResult = false;
      }
   }
   
   return blnResult;
}

function IsPhone(strString)
{
   var strValidChars = "0123456789";
   var strChar;
   var blnResult = true;

   if (strString.length == 0) return false;

   //  test strString consists of valid characters listed above
   for (i = 0; i < strString.length && blnResult == true; i++)
   {
      strChar = strString.charAt(i);
      if (strValidChars.indexOf(strChar) == -1)
      {
         blnResult = false;
      }
   }
   
   return blnResult;
}

function GetInvalidPhoneMessage()
{
    return "Please enter a valid phone number. Numbers only." ;
}

function IsAlphaNumeric(valueToCheck)
{
    var check=/^[0-9A-Za-z]+$/; //alphanumeric only
    if(valueToCheck.search(check) == -1)
    {
        return false
    }

    return true ;
}

function IsNumeric(valueToCheck)
{
    var check=/^[0-9]+$/; //numeric only
    if(valueToCheck.search(check) == -1)
    {
        return false
    }

    return true ;
}

function IsAlpha(valueToCheck)
{
    var check=/^[A-Za-z]+$/; //alpha only
    if(valueToCheck.search(check) == -1)
    {
        return false
    }

    return true ;
}

function IsValidName(valueToCheck)
{
    if(valueToCheck.length < 2)
        return false;

    return IsAlpha(valueToCheck) ;    
}

function GetInvalidNameMessage(firstOrLast)
{
    var message = "You must enter a valid " + firstOrLast + " name. " + toProperCase(firstOrLast) + " name must be at least 2 characters long. Letters only.\n" ;
    return message ;
}

function IsValidPassword(valueToCheck)
{
    if(valueToCheck.length < 6)
        return false;
    
    return IsAlphaNumeric(valueToCheck) ;
}

function GetInvalidPasswordMessage()
{
    return "Please enter a valid password.  Passwords must be at least 6 characters long.  Letters and numbers only.\n" ;
}

function IsValidEmailAddress(valueToCheck)
{
	var exclude=/[^@\-\.\w]|^[_@\.\-]|[\._\-]{2}|[@\.]{2}|(@)[^@]*\1/;
	var check=/@[\w\-]+\./;
	var checkend=/\.[a-zA-Z]{2,5}$/;

    var completeCheck=/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,5}$/;
        
    //regular expresion:
    //1. /^[a-zA-Z0-9._-]+:  Means that the email address must begin with alpha-numeric characters (both lowercase and uppercase characters are allowed). It may have periods,underscores and hyphens.
    //2. @:   There must be a ‘@’ symbol after initial characters.
    //3. [a-zA-Z0-9.-]+: After the ‘@’ sign there must be some alpha-numeric characters. It can also contain period (’.') and and hyphens(’-').
    //4. \.: After the second group of characters there must be a period (’.'). This is to separate domain and subdomain names.
    //5. [a-zA-Z]{2,5}$/: Finally, the email address must end with two to five alphabets. Having a-z and A-Z means that both lowercase and uppercase letters are allowed.
	if(((valueToCheck.search(exclude) != -1)||(valueToCheck.search(check)) == -1)||(valueToCheck.search(checkend) == -1))
	{
	    return false;	    
	}
	
	//redundancy check
    if(valueToCheck.search(completeCheck) == -1)
    {
        return false;
	}
	
	if (valueToCheck.length < 5)
	    return false ;
	    
	return true
}

function GetInvalidEmailMessage()
{
    return "Please Enter a valid Email address.  Email address must be at least 5 characters long.\n";
}

function checkInternationalPhone(strPhone)
{
    var bracket=3;
    strPhone=trim(strPhone);
    if(strPhone.length == 0) return false;
    if(strPhone.indexOf("+")>1) return false;
    if(strPhone.indexOf("-")!=-1) bracket=bracket+1;
    if(strPhone.indexOf("(")!=-1 && strPhone.indexOf("(")>bracket) return false;
    var brchr=strPhone.indexOf("(");
    if(strPhone.indexOf("(")!=-1 && strPhone.charAt(brchr+2)!=")") return false;
    if(strPhone.indexOf("(")==-1 && strPhone.indexOf(")")!=-1) return false;
    s=stripCharsInBag(strPhone,validWorldPhoneChars);
    return (isInteger(s) && s.length >= minDigitsInIPhoneNumber && s.length <= minDigitsInIPhoneNumber);
}

function GetInvalidInternationPhoneMessage()
{
    return "You must enter a proper phone number.\ne.g. 212-555-5555.  Phone number can not be blank.\n";
}

function IsValidSevenDigitNumericPhone(valueToCheck)
{
    if(valueToCheck.length < 7)
        return false;
        
    return IsNumeric(valueToCheck) ;
}

function GetInvalidSevenDigitNumericPhone()
{
    return "Please enter a valid phone number.  Seven digits numeric only." ;
}

function IsValidTenDigitNumericPhone(valueToCheck)
{
    if(valueToCheck.length < 10)
        return false;
        
    return IsNumeric(valueToCheck) ;
}

function GetInvalidTenDigitNumericPhone()
{
    return "Please enter a valid phone number. A phone number must include area code plus phone number with not spaces or alpha characters.  Example: 4805551212\n";
}

function toProperCase(s)
{
  return s.toLowerCase().replace(/^(.)|\s(.)/g, 
          function($1) { return $1.toUpperCase(); });
}
