﻿// JScript File

function LTrim(str)
{
   var whitespace = new String(" \t\n\r");

   var s = new String(str);

   if (whitespace.indexOf(s.charAt(0)) != -1) {
      var j=0, i = s.length;
      while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
         j++;
      s = s.substring(j, i);
   }
   return s;
}

function RTrim(str)
{
   var whitespace = new String(" \t\n\r");
   var s = new String(str);
   if (whitespace.indexOf(s.charAt(s.length-1)) != -1) {
      var i = s.length - 1;
      while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
         i--;
      s = s.substring(0, i+1);
   }
   return s;
}

function Trim(str)
{
   return RTrim(LTrim(str));
}

//for validating email
function CheckEmail(email , label)
{
    var emailReg = "([\.a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(([a-zA-Z0-9_-])*\.([a-zA-Z0-9_-])+)+";
    var regex = new RegExp(emailReg);
    src =  Trim(email.value)
    if (!regex.test(src)) 
    {
        alert(label + " is invalid");
        return false;	
     }
    return true;
}

//validate number
function ValidateNumber(field) 
{
    var valid = "0123456789"
    var ok = "yes";
    var temp;

    field.value = Trim(field.value)
    for (var i=0; i<field.value.length; i++) 
    {
        temp = "" + field.value.substring(i,i+1)
        if (valid.indexOf(temp) == "-1") 
        { 
		    ok = "no"; 
        }
   }
   if (ok == "no")
   {
        return false;
    }
    else
    {
		return true;
    }
}

function getDocURL()
{
    return document.URL;
}

//function ManagePhoneNumber(PhoneNumberPart1,PhoneNumberPart2,PhoneNumberPart3,label){
//    if (Trim(PhoneNumberPart1.value).length == 3){
//        PhoneNumberPart2.focus();
//    }
//    if (Trim(PhoneNumberPart2.value).length == 3){        
//        PhoneNumberPart3.focus();        
//    }
//}

function ValidatePhoneNumber(PhoneNumberPart1,PhoneNumberPart2,PhoneNumberPart3,label)
{
    if (Trim(PhoneNumberPart1.value).length != 0 || Trim(PhoneNumberPart2.value).length != 0 || Trim(PhoneNumberPart3.value).length != 0){
            if (Trim(PhoneNumberPart1.value).length == 0){
                alert("\"" + label + "\" is required");
                PhoneNumberPart1.focus();
                return false;                
            }
            if (Trim(PhoneNumberPart1.value).length < 3){
                alert("\"" + label + "\" is invalid");
                PhoneNumberPart1.focus();
                return false;                
            }            
            if (ValidateNumber(PhoneNumberPart1) == false){
                alert("\"" + label + "\" is invalid");                
                PhoneNumberPart1.focus();
                return false;
            }
            if (Trim(PhoneNumberPart2.value).length == 0){
                alert("\"" + label + "\" is required");
                PhoneNumberPart2.focus();
                return false;                
            }
            if (Trim(PhoneNumberPart2.value).length < 3){
                alert("\"" + label + "\" is invalid");
                PhoneNumberPart2.focus();
                return false;                
            }  
            if (ValidateNumber(PhoneNumberPart2) == false){
                alert("\"" + label + "\" is invalid");                
                PhoneNumberPart2.focus();
                return false;
            }
            if (Trim(PhoneNumberPart3.value).length == 0){
                alert("\"" + label + "\" is required");
                PhoneNumberPart3.focus();
                return false;                
            }
            if (Trim(PhoneNumberPart3.value).length < 4){
                alert(label + " is invalid");
                PhoneNumberPart3.focus();
                return false;                
            }  
            if (ValidateNumber(PhoneNumberPart3) == false){
                alert("\"" + label + "\" is invalid");                
                PhoneNumberPart3.focus();
                return false;
            }                        
        }
        return true;
}

	function ValidateTaxId(TaxId)
    {
       var str;
	   if(Trim(TaxId).length > 11 || Trim(TaxId).length < 9)
        {   
            //str = "Tax ID should be between 9-11 characters";
            //return str;	
            return false;	
        }
        
        if(TaxId.indexOf(" ") >= 0)	//it is a 0 based index
        {
//            str = "spaces are not allowed";
//            return str;		
            return false;	
        }
        
        if(Trim(TaxId).length == 9)
        {
            if(isNaN(TaxId.substr(0,9)))
            {
//            str = "Tax id should be integer";
//            return str;		
            return false;	
           } 
        }
        else if(Trim(TaxId).length == 10)
        {
            if(TaxId.indexOf("-") != 2 || isNaN(TaxId.substr(0,2)) || isNaN(TaxId.substr(3,7)) )
            {
//                str ="incorrect format for 10 digits";
//                return str;
                return false;	
            }
        }
        else if(Trim(TaxId).length == 11)
        {
            if(TaxId.indexOf("-") != 3 || TaxId.indexOf("-",4) != 6 || isNaN(TaxId.substr(0,3)) || isNaN(TaxId.substr(4,2)) || isNaN(TaxId.substr(7,4)) )
            {
//                str ="incorrect format for 11 digits";
//                return str;
                return false;	
            }
        }
        return true;
    }

//function to validate the zip

function validate_zip(zipval)
{
			var str;
			str="ok";
			
			if(Trim(zipval)=="")
			{
					str="Zip is required";
					return str;
			}
			if(zipval.indexOf(" ") >= 0)	//it is a 0 based index
			{
					str="Enter a correct zip";
					return str;
			}
			if(zipval.length != 5)
			{
					str="Zip should be of 5 digits";
					return str;
			}
	
			if(isNaN(zipval))
			{
					str="Zip should be numeric";
					return str;
			}
			
			//in case all of the above are ok			
			return str;//this will contain ok
}

 function ValidatePassword(varNewPassword, varConfirmPassword)
    {
           var bResult = false; 
           if(varNewPassword.value.length >= 8 && varNewPassword.value.length < 20 )
           {
                 if(chkPwdCase(varNewPassword))
                 {
                      if(chkPwdCharRepeatation(varNewPassword))
                      {
                        //return true;
                        if(chkPwdConsCharRepetation(varNewPassword))
                        {
                          bResult = true;
                        }
                      } 
                 }
           }
           else
           {
             alert("Password should be between 8-20 characters.");
           }

           if (bResult == false) 
           {
                varNewPassword.value="";
                varConfirmPassword.value="";
           }

           return bResult;

    }
    
    
    function chkPwdCharRepeatation(varNewPassword)
    {
      var strPassword=varNewPassword.value
      var len;
      var i;
      var j;
      var ch;
      var ch1;
      var charCount;
      len=varNewPassword.value.length ;
      strPassword=strPassword.toUpperCase()
      for(i=0;i<len;i++)
      {
           ch=strPassword.charAt(i);
           charCount=0; 
           for(j=0;j<len;j++)
           {
                ch1=strPassword.charAt(j);
                if(ch==ch1)
                {
                    charCount=charCount + 1        
                }
                if(charCount>4)
                {
                    alert("Please do not repeat any character more than 4 times");
                    //varNewPassword.value=""
                    //varConfirmPassword.value=""
                    return false;
               }
            }
      }
      return true;
    }
    
        function chkPwdCase(varNewPassword)
        {
           
            var strUpper=new String("ABCDEFGHIJKLMNOPQRSTUVWXYZ")
            var strLower=new String("abcdefghijklmnopqrstuvwxyz")
            var strNumeric=new String("0123456789")
            var strPassword=varNewPassword.value
            var ch;
            var i;
            var chLower;
            var chNumeric
            var countUpper=0;
            var countLower=0;
            var countNumeric=0;
            var len;
            len=varNewPassword.value.length ;
            
            for(i=0;i<len;i++)
            {
                ch=strPassword.charAt(i);
                ch=strUpper.match(ch)
                if(ch!=null)
                {
                 countUpper=countUpper + 1;
                }     
                chLower=strPassword.charAt(i);
                chLower=strLower.match(chLower);
                if(chLower!=null)
                 {
                    countLower=countLower + 1;
                 }     
                 chNumeric=strPassword.charAt(i);
                 chNumeric=strNumeric.match(chNumeric);
                 if(chNumeric!=null)
                  {
                    countNumeric=countNumeric + 1;
                  }     
            }      
 
             if(countUpper < 1)
             {
               alert("Please enter at least one uppercase character");
               return false;
             }
         
             if(countLower < 1)
              {
                alert("Please enter at least one lowercase character");
                return false;
              }
              
              if(countNumeric < 1)
              {
                alert("Please enter at least one numeric character");
                return false;
              }
              if(countLower > 0 && countNumeric > 0 && countUpper >0 )  
              {
                return true;
              }    
        }
       
function chkPwdConsCharRepetation(varNewPassword)
 { 
  
   var pValue = varNewPassword.value.toUpperCase();
   var iCnt=0;
   var jCnt=0;
   var booExit = false;
   for(iCnt=0;iCnt<pValue.length;iCnt++)
   {
     var count=1;
     var chkChar = pValue.substr(iCnt,1);
     for(jCnt=iCnt+1;jCnt<pValue.length;jCnt++)
     {
       if (pValue.substr(jCnt,1) == chkChar)
        {
           if (count==2)
           {
              alert("Please do not repeat consecutive character more than 2 times");    
              return false;                                
           }
           else
           {
            count++;
           }                                                               
        }   
        else
        {
         break;
        }                                                
      }  
       
    } 
     return true;                                                                                         
  } 