﻿  //function to check email pattern
    function echeck(str) {

		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   alert("Invalid E-mail ID")
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   alert("Invalid E-mail ID")
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    alert("Invalid E-mail ID")
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    alert("Invalid E-mail ID")
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    alert("Invalid E-mail ID")
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    alert("Invalid E-mail ID")
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		    alert("Invalid E-mail ID")
		    return false
		 }

 		 return true					
	}

         function checkEmail(inputvalue){	
            var pattern=/^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/;
            if(pattern.test(inputvalue)){         
		        return true;
            }else{   
		        return false;
            }
        }
        
     
        
        
        
        function IsNumeric(sText)
        {
            var ValidChars = "0123456789";
            var IsNumber=true;
            var Char;

        if (sText.length == 0) return false
        
        // test sText consists of valid characters listed abov
        for (i = 0; i < sText.length && IsNumber == true; i++) 
        { 
            Char = sText.charAt(i); 
            if (ValidChars.indexOf(Char) == -1) 
             {
             IsNumber = false;
             }
        }
        return IsNumber;

        }


        function IsEmpty(aTextFieldValue) {
            if ((aTextFieldValue.length==0) ||
            (aTextFieldValue==null)) {
              return true;
            }
            else { return false; }
        }
        	
        //custom validate numeric
        
         function CV_IsNumericAllowEmpty(source, args) {

        var strValue
        strValue= args.Value;

        if ((IsNumeric(strValue)==true) || (args.Value == "")) {
            args.IsValid = true
            return true
        } 
        else {
            args.IsValid = false
            return false
        }
        }
        
        
        function CV_IsNumeric(source, args) {

        var strValue
        strValue= args.Value;

        if (IsNumeric(strValue)==true) {
            args.IsValid = true
            return true
        } 
        else {
            args.IsValid = false
            return false
        }
        }
        
        //value has grater than 0
        function CV_IsValue(source, args) {

        var strValue
        strValue= args.Value;
        strValue = strValue.replace(/,/g,"");

        if (IsNumeric(strValue)==true && strValue > 0) {
            args.IsValid = true
            return true
        } 
        else {
            args.IsValid = false
            return false
        }
        }
        
        function CV_Email(source, args) {
             if ((args.Value == "") || ! checkEmail(args.Value))
                {
                    args.IsValid = false;   
                    return false;                          
                }
                else
                {
                    args.IsValid = true;
                    return true;
                }
        }
        
        
        //this function use for REGISTER page to validate ACCESS CODE & EMAIL, invalid field will change 
        //  background color
        function validateCtrl(source, args) {
             var objObject = document.getElementById(document.getElementById(source.id).getAttribute("controltovalidate"));
             var str = objObject.id;  
             
             
             if (str == "ctl00_ContentPlaceHolder1_txtAccessCd" || str == "ctl00_ContentPlaceHolder1_txtSubDiv" ||
                    str == "ctl00_ContentPlaceHolder1_txtSubExt" || str == "ctl00_ContentPlaceHolder1_txtSeqNum" || 
                    str == "ctl00_ContentPlaceHolder1_txtSeqExt"  || str == "ctl00_ContentPlaceHolder1_txtCkDigt")
             {
                if (IsEmpty(args.Value) || ! IsNumeric(args.Value) )
                {
                    args.IsValid = false;
                   //document.getElementById('<%=txtAccessCd.ClientID%>').className = 'ErrorControl';          
                    document.getElementById(objObject.id).className = 'ErrorControl';                
                }
                else
                {
                    args.IsValid = true;
                    document.getElementById(objObject.id).className = 'DefaultTextbox'; 
                }
                

             }
             else {
                if ((args.Value == "") || ! checkEmail(args.Value))
                {
                    args.IsValid = false;
                   //document.getElementById('<%=txtAccessCd.ClientID%>').className = 'ErrorControl';          
                    document.getElementById(objObject.id).className = 'ErrorControl';                   
                }
                else
                {
                    args.IsValid = true;
                    document.getElementById(objObject.id).className = 'DefaultTextbox'; 
                }
                
             }
 
        } //end of validateCtrl function
        
        
        //**this function fire from onkeyup does not accept decimal 
         function AdjustToCurrency(t)
        {
            var completevalue = t.value;
            var splitvalues = completevalue.split(".");
            var dnumber = "."

            // check for decimal points ans if greater then 1 point stop and turn default values
            if (splitvalues[2] != null)
            {
            t.value = "To many . in " + t.value;
            return;
            }

            // check valid range of deciaml number
            var dnumberExp = new RegExp('([0-9]{2})');

            if (splitvalues[1] > 0 && splitvalues[1] < 99) dnumber = dnumber + splitvalues[1];
            if (splitvalues[1] == "0" || splitvalues[1] == "00" || splitvalues[1] == "" || splitvalues[1] == null) dnumber = dnumber + "00"
            else dnumber = dnumber + splitvalues[1];

            // add commas to the whole numbers
            if (splitvalues[0] != null)
            {
            
            //remove all the comma and period
            splitvalues[0] = splitvalues[0].replace(/,/g,'');

            //add thousand comma
            var objRegExp = new RegExp('(-?[0-9]+)([0-9]{3})');
            while(objRegExp.test(splitvalues[0]))
            splitvalues[0] = splitvalues[0].replace(objRegExp, '$1,$2');
            t.value = splitvalues[0];
            
            if (dnumber == "00") 
              t.value = splitvalues[0] + dnumber;
            
            return;
            }
        } 
        
        function AdjustToUpperCase(t)
        {
            t.value =  t.value.toUpperCase();
            return;
        }
        
        
        /* The scripts on this page was produced by mordechai Sandhaus - 52action.com,
        and is copyrighted . If you like this script, we encourage you to use it,
        provided that  include this note, and link to 52action.com. */

        /* script explanation for dummies */

        /* NOTE: THE FIRST 2 ARGUMENTS SHOULD ALWAYS REMAIN THE SAME - this.value, this */
        // the first argument in the function, accepts the "value" of the textbox to be masked
        // the second argument is the name of the textbox 
        //although the first 2 could have been done in 1 argument I did it in 2
        // to make it easier to understand

        //the third argument holds the locations of the separator,
        // each location should be separated by a comma - (going from lower numbers to higher)

        //the fourth holds the delimiter (or separator) character.

        /* nothing in the function should be edited,
        to change a delimiter or character location,
        change it in the calling script
        - the following code should be inserted into the field(s) to be masked - */

        /*replace 'location1,location2' with the locations where you want the delimiter
	        replace the 'delimiter' with the separating character you would like */
        // javascript:return mask(this.value,this,'location1,location2','delimiter')

        //-there is no limit to the amount of delimiters you can have added
        function mask(str,textbox,loc,delim){
            var locs = loc.split(',');

            for (var i = 0; i <= locs.length; i++){
                for (var k = 0; k <= str.length; k++){
                if (k == locs[i]){
                    if (str.substring(k, k+1) != delim){
                        str = str.substring(0,k) + delim + str.substring(k,str.length)
                        }
                    }
                }
            }
            textbox.value = str
        }
        
       /* Validate International Phone number  START HERE*/
       
       // Declaring required variables
        var digits = "0123456789";
        // non-digit characters which are allowed in phone numbers
        var phoneNumberDelimiters = "()- ";
        // characters which are allowed in international phone numbers
        // (a leading + is OK)
        var validWorldPhoneChars = phoneNumberDelimiters + "+";
        // Minimum no of digits in an international phone no.
        var minDigitsInIPhoneNumber = 10;

        function isInteger(s)
        {   var i;
            for (i = 0; i < s.length; i++)
            {   
                // Check that current character is number.
                var c = s.charAt(i);
                if (((c < "0") || (c > "9"))) return false;
            }
            // All characters are numbers.
            return true;
        }
        function trim(s)
        {   var i;
            var returnString = "";
            // Search through string's characters one by one.
            // If character is not a whitespace, append to returnString.
            for (i = 0; i < s.length; i++)
            {   
                // Check that current character isn't whitespace.
                var c = s.charAt(i);
                if (c != " ") returnString += c;
            }
            return returnString;
        }
        function stripCharsInBag(s, bag)
        {   var i;
            var returnString = "";
            // Search through string's characters one by one.
            // If character is not in bag, append to returnString.
            for (i = 0; i < s.length; i++)
            {   
                // Check that current character isn't whitespace.
                var c = s.charAt(i);
                if (bag.indexOf(c) == -1) returnString += c;
            }
            return returnString;
        }

        function checkInternationalPhone(strPhone){
            var bracket=3
            strPhone=trim(strPhone)
            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);
            var bl = isInteger(s) && s.length >= minDigitsInIPhoneNumber;
            return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
        }
      /* Validate International Phone number  END HERE*/
      
      //put in Custom Validator
      function CV_checkInternationalPhone(source, args){
        var tmp = args.Value;
               
         //if ( ! checkInternationalPhone(args.Value))
          if ((args.Value == "") || ! checkInternationalPhone(args.Value))
            {
                args.IsValid = false;   
                return false;                          
            }
            else
            {
                args.IsValid = true;
                return true;
            }
        }

       
