﻿// JScript File
  function validateLength(oSrc, args, len)
  {
   args.IsValid = (args.Value.length >= len.Value);   
  }
  
  function validateDate(oSrc, args)
  {
    //alert("In Validate Date" + args.Value);
    // regular expression to match required date format
    re = /^(\d{1,2})\/(\d{1,2})\/(\d{4})$/;
    if(args.Value != '') 
    {
        if(regs = args.Value.match(re))
        {
            if(regs[1] < 1 || regs[1] > 12)
                {
                //alert("Invalid value for month: " + regs[2]);
                args.IsValid = false;
                return;
                }        
            if(regs[2] < 1 || regs[2] > 31)
                {
                //alert("Invalid value for day: " + regs[1]);
                args.IsValid = false;
                return;
                }
            if(regs[3] < 1950)
                {
                //alert("Invalid value for year: " + regs[3] + " - must be after 1980");
                args.IsValid = false;
                return;
                }
        }
        else
        {
            //alert("Invalid date format: " + args.Value);
            args.IsValid = false;
            return;
        }
    }
    args.IsValid = true;
  }
  
  function validateShortDate(oSrc, args)
  {
    //alert("In Validate Date" + args.Value);
    // regular expression to match required date format
    re = /^(\d{1,2})\/(\d{1,2})$/;
    if(args.Value != '') 
    {
        if(regs = args.Value.match(re))
        {
            if(regs[1] < 1 || regs[1] > 12)
                {
                //alert("Invalid value for month: " + regs[2]);
                args.IsValid = false;
                return;
                }        
            if(regs[2] < 1 || regs[2] > 31)
                {
                //alert("Invalid value for day: " + regs[1]);
                args.IsValid = false;
                return;
                }
        }
        else
        {
            //alert("Invalid date format: " + args.Value);
            args.IsValid = false;
            return;
        }
    }
    args.IsValid = true;
  }
    
  function validateYear(oSrc, args)
  {
    //alert("In Validate Year" + args.Value);
    if(args.Value != '') 
    {
        if(args.Value < 1980)
            {
            //alert("Invalid value for year: " + regs[3] + " - must be after 1980");
            args.IsValid = false;
            return;
            }
    }
    args.IsValid = true;
  }  
  
  function validateInt(oSrc, args)
  { 
    //alert("In Validate Integer" + args.Value);
    if(args.Value != '') 
    {
        var strNum = args.Value
        strNum = strNum.replace(/\$/g,"")
        strNum = strNum.replace(/,/g,"")
        
        if (Number(strNum) || strNum == "0")
        {
            if(strNum < -2147483647 || strNum > 2147483647)
                {
                args.IsValid = false;
                return;
                }
        }
        else
        {
            args.IsValid = false;
            return;
        }        
    }
    args.IsValid = true;
  }    
  
  function validateMoney(oSrc, args)
  {
    //alert("In Validate Integer" + args.Value);
    if(args.Value != '') 
    {
        var strNum = args.Value
        strNum = strNum.replace(/\$/g,"")
        strNum = strNum.replace(/,/g,"")
                        
        //alert(strNum)
        
        if (Number(strNum) || strNum == "0" || strNum == "0.00"  || strNum == "0.000"|| strNum == "0.0000")
        {
            if(strNum < -922337203685477.5808 || strNum > 922337203685477.5807)
                {
                //alert("Invalid value for Integer: " + regs[3] + " - must be after 1980");
                args.IsValid = false;
                return;
                }
        }
        else
        {
            args.IsValid = false;
            return;
        }        
    }
    args.IsValid = true;
  }   
    
  function validateDec(oSrc, args)
  {
    //alert("In Validate Integer" + args.Value);
    if(args.Value != '') 
    {
        var strNum = args.Value
        strNum = strNum.replace(/\$/g,"")
        strNum = strNum.replace(/,/g,"")
        strNum = strNum.replace(/%/g,"")

        
        var idx = strNum.indexOf(".")
        if (idx == -1)
            idx = strNum.length
        
        if (Number(strNum) || strNum == "0" || strNum == "0.00" || strNum == "0.000" || strNum == "0.0000")
        {
            if(idx > 18)
                {
                //alert("Invalid value for Integer: " + regs[3] + " - must be after 1980");
                args.IsValid = false;
                return;
                }
        }
        else
        {
            args.IsValid = false;
            return;
        }        
    }
    args.IsValid = true;
  }     
  
function validateEmail(oSrc, args) {

		var at="@"
		var dot="."
		var lat=args.Value.indexOf(at)
		var lstr=args.Value.length
		var ldot=args.Value.indexOf(dot)
		if (args.Value.indexOf(at)==-1){
		   //alert("Invalid E-mail ID")
		   args.IsValid = false
		   return
		}

		if (args.Value.indexOf(at)==-1 || args.Value.indexOf(at)==0 || args.Value.indexOf(at)==lstr){
		   //alert("Invalid E-mail ID")
		   args.IsValid = false
		   return
		}

		if (args.Value.indexOf(dot)==-1 || args.Value.indexOf(dot)==0 || args.Value.indexOf(dot)==lstr){
		    //alert("Invalid E-mail ID")
		    args.IsValid = false
		    return
		}

		 if (args.Value.indexOf(at,(lat+1))!=-1){
		    //alert("Invalid E-mail ID")
		    args.IsValid = false
		    return
		 }

		 if (args.Value.substring(lat-1,lat)==dot || args.Value.substring(lat+1,lat+2)==dot){
		    //alert("Invalid E-mail ID")
		    args.IsValid = false
		    return
		 }

		 if (args.Value.indexOf(dot,(lat+2))==-1){
		    //alert("Invalid E-mail ID")
		    args.IsValid = false
		    return
		 }
		
		 if (args.Value.indexOf(" ")!=-1){
		    //alert("Invalid E-mail ID")
		    args.IsValid = false
		    return
		 }

 		 args.IsValid = true 		 
	}

  function validatePassword(oSrc, args)
  {
    var numb = '0123456789';
    var lwr = 'abcdefghijklmnopqrstuvwxyz';
    var upr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
    var hasNumber = false;
    var hasUpper = false;
    var hasLower = false;
   
    if(args.Value != '') 
    {
        if (args.Value.length < 8)
        {
            args.IsValid = false;
            return;
        }
        
        for (i=0; i<args.Value.length; i++)
        {
            if (numb.indexOf(args.Value.charAt(i),0) > -1) hasNumber = true;
            if (lwr.indexOf(args.Value.charAt(i),0) > -1) hasLower = true;
            if (upr.indexOf(args.Value.charAt(i),0) > -1) hasUpper = true;                        
        }
        
        //alert(hasNumber + " " + hasLower + " " + hasUpper);
        if (!hasNumber || !hasLower || !hasUpper)
        {
            args.IsValid = false;
            return;
        }
    }

    args.IsValid = true;
  }  
  
  
  

