﻿// JScript File

        function TrimString(str)
        {				
	        var st=new String(str);
	        stpos=0;
	        strln=st.length;
	        while(stpos<strln)
	        {
		        if(st.substr(stpos,1)!=' ')
		        {
			        break;
		        }
		        stpos=stpos+1;
	        }

	        edpos=strln-1;
	        while(edpos>=stpos)
	        {
		        if(st.substr(edpos,1)!=' ')
		        {
			        break;
		        }
		        edpos=edpos-1;
	        }
	        var retst=st.substring(stpos,edpos+1);
	        return retst;
        }


//        function ValidateEmail(strValue)
//        {
//            var objRegExp  = /(^[a-z]([a-z_\.]*)@([a-z_\.]*)([.][a-z]{3})$)|(^[a-z]([a-z_\.]*)@([a-z_\.]*)(\.[a-z]{3})(\.[a-z]{2})*$)/i;  //check for valid email  return 
//            if (objRegExp.test(strValue))
//	        {
//	            return true;
//	        }
//	        else
//	        {
//	            return false;
//	        }
//        }

function ValidateEmail(argStr)
{
	var s = new String(argStr)
	
	if(IsBlank(s)==true) {return false;}
	if(IsThereAnyWhiteSpace(s)==true) { return false;}
	if(IsValid(s,"qwertyuiopasdfghjklzxcvbnm0123456789-_@.QWERTYUIOPASDFGHJKLZXCVBNM")==false) return false;
	if(s.indexOf('@')<1) { return false;}
	
	var dotCount;
	var id = new String();
	var dom = new String();
	
	arr=s.split('@')
	
	id  = arr[0];
	dom = arr[1];
	
	
	
	if (id.length<1) { return false;}
	if (dom.length<4) { return false;}
	if (dom.indexOf('.')<1) { return false;}
	return true;
}
function IsValid(argValue,argValidChars)
{
   var ValidChars = argValidChars;
   var ret=true;
   var Char;
 
   for (i = 0; i < argValue.length && ret == true; i++) 
      { 
      Char = argValue.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         ret = false;
         }
      }
   return ret;
}
//check if arg contains no white spaces
function IsThereAnyWhiteSpace(argStr)
{
	var s = new String(argStr);
	var cnt=0;
	len = s.length;
	if (IsBlank(argStr))
	{
	return false;
	}
	
	if(s.indexOf(" ")>=0)
	{
		return true;
	}
	return false;
}

//check if a string contains whitespaces or nothing ...
function IsBlank(argStr)
{
	var s = new String(argStr);
	var cnt=0;
	len = s.length;
	
	for(i=0;i<len;i++)
	{
		intCh = GetAsciiCode(s.charAt(i));
		if(intCh==32)
		{
			cnt++;
		}
	}
	if ((cnt==len)||(cnt==0&&len==0))
	{
	
		return true;
	}
	return false;
}

function GetAsciiCode(argChar)
{
	var s = new String(argChar);
	return parseInt(s.charCodeAt(0));
}
	   
	    /******************************************************************************************************
			Created By		: Rahul Gupta 
			Created On		:  
			Purpose			:  Real Number (integer and float number both) validation on 'keypress' event.
			Parameters      : (1)ControlID     --> ID of control.
			                  (2)MinValue      --> Minimum value for validation.
			                  (3)MaxValue      --> Maximum value for validation.
			                  (4)bNegative     --> If Negative number is allowed then bNegative='Y' else bNegative='N'
			                  (5)bIntergerOnly --> If only integer number is allowed then bIntegerOnly='Y' else bIntegerOnly='N' 
			                  (6)AfterDecimalPt--> How many decimal points you want,if number is floating point.  
			Note            : For some parameters there are default values,in case they are not passed.
			                  If possible,use this function with function RealNumberValidation_onblur() that is used on 'onblur' event.
		******************************************************************************************************/	
        function RealNumberValidation(ControlID,MinValue,MaxValue,bNegative,bIntegerOnly,AfterDecimalPt)
        { 
            //Reference of text box.
            var txtCtl=document.getElementById(ControlID);
            
            //value of text box.
            var txtValue=TrimString(txtCtl.value);
            
            //temporary variable for holding some value.
            var tempTxtValue='';
            
            //Setting default value.
            if(MinValue=='' || MinValue==null)
            {
                MinValue=0;
            }
            if(MaxValue=='' || MaxValue==null)
            {
                MaxValue=100000;
            }
            if(bNegative=='' || bNegative==null)
            {
                bNegative="N";
            }
            if(bIntegerOnly=='' || bIntegerOnly==null)
            {
                bIntegerOnly='N';
            }
            if(bIntegerOnly=='N')
            {
              if(AfterDecimalPt=='' || AfterDecimalPt==null)
               {
                AfterDecimalPt='5';
               }
            }       
            
            //Clearing selected value.
            var selectedText = document.selection;
            
            if(selectedText.type == 'Text') 
            { 
                selectedText.clear();
            }
            
            
            //If bNegative=='N' then negative number is not allowed.
            if(!(bNegative.toUpperCase()=="Y") && window.event.keyCode==45)
            {
                window.event.keyCode = 0;
            }
            
            //debugger
            if(bIntegerOnly=='N') //for float number.
            {
                if (!((window.event.keyCode>=48 && window.event.keyCode <= 57) ||(window.event.keyCode == 46) || (window.event.keyCode == 45) ))
		        {
			        window.event.keyCode = 0;
		        }
		    }
		    else // for integer number.
		    {
		        if (!(window.event.keyCode>=48 && window.event.keyCode <= 57))
		        {
			        window.event.keyCode = 0;
		        }   
		    }
    		
    		//Can not enter two dots.
		    if(window.event.keyCode == 46)
		    {
		        if(txtValue.indexOf('.')>-1)
		        {
		            window.event.keyCode = 0;
		        }
		    }
    		
    		//Can not enter two minus and can enter minus only at starting.
		    if(window.event.keyCode == 45)
		    {
    		    
		        if(txtValue.indexOf('-')>-1)
		        {
		            window.event.keyCode = 0;
		        }
		        tempTxtValue=txtValue+'-';
		        if(tempTxtValue.indexOf('-')>0)
		        {
		            window.event.keyCode = 0;
		        }
    		    
		    }
            
            //range checking.
            if(bIntegerOnly=='N') //for float value only.
            {
                if(window.event.keyCode == 46 || window.event.keyCode == 45)
		        {
        		   
		        }
		        else
		        {
		            txtValue=TrimString(txtCtl.value);//Getting latest value of text box.
		            tempTxtValue=txtValue+(window.event.keyCode-48);
		            if(parseFloat(tempTxtValue)< parseFloat(MinValue) || parseFloat(tempTxtValue) > parseFloat(MaxValue))
                    {
                        window.event.keyCode = 0;
                        return false;
                    }
                    var strIndexOfPt=txtValue.indexOf('.'); 
                    if(strIndexOfPt>-1)
                     {
                       var strdecimal=txtValue.substring(strIndexOfPt+1,txtValue.length)                                              
                       if(strdecimal.length>=AfterDecimalPt)
                        {
                         window.event.keyCode = 0;
                         return false;
                        }
                     }
                    
		        }
		    }
		    else //for integer value only.
		    {
		        txtValue=TrimString(txtCtl.value);//Getting latest value of text box.
		        tempTxtValue=txtValue+(window.event.keyCode-48);
	            if(parseInt(tempTxtValue)< parseInt(MinValue) || parseInt(tempTxtValue) > parseInt(MaxValue))
                {
                    window.event.keyCode = 0;
                    return false;
                }
		    }
        }
        
        
        /******************************************************************************************************
			Created By		:  Rahul Gupta
			Created On		:  
			Purpose			:  Real Number (integer and float number both) validation on 'onblur' event.
			Parameters      :  (1)ControlID     --> ID of control.
			                   (2)MinValue      --> Minimum value for validation.
			                   (3)MaxValue      --> Maximum value for validation.
			                   (4)bNegative     --> If Negative number is allowed then bNegative='Y' else bNegative='N'
			                   (5)bIntergerOnly --> If only integer number is allowed then bIntegerOnly='Y' else bIntegerOnly='N'
			                    
			Note            :  For some parameters there are default values,in case they are not passed.
		********************************************************************************************************/
        function RealNumberValidation_onblur(ControlID,MinValue,MaxValue,bNegative,bIntegerOnly)
        { 
            
            //Reference of text box.
            var txtCtl=document.getElementById(ControlID);
            
            //value of text box.
            var txtValue=TrimString(txtCtl.value);
            
            //Setting default value.
            if(MinValue=='' || MinValue==null)
            {
                MinValue=0;
            }
            if(MaxValue=='' || MaxValue==null)
            {
                MaxValue=100000;
            }
            if(bNegative=='' || bNegative==null)
            {
                bNegative="N";
            }
            if(bIntegerOnly=='' || bIntegerOnly==null)
            {
                bIntegerOnly='N';
            }
            
            
            
            if(isNaN(txtValue))
            {
                alert('Please enter number only.');
                txtCtl.focus();
                return false;
            }
            
            
            if(!(bNegative=="Y"))
            {
                if(txtValue<0)
                {
                    alert('Negative number is not allowed.');
                    txtCtl.focus();
                    return false;
                }
            }
            
            
            
            //for integer value decimal(.) is not allowed.
		    if(bIntegerOnly.toUpperCase()=='Y') 
		    {
		        if(txtValue.indexOf('.')>-1)
		        {
		            alert('Decimal number is not allowed.');
                    txtCtl.focus();
                    return false;
		        }
		    }
            
            
            //Checking range.
            if(bIntegerOnly=='N') //for float value.
            {
                if(parseFloat(txtValue)< parseFloat(MinValue) || parseFloat(txtValue) > parseFloat(MaxValue))
                {
                    alert("Number range is between " + MinValue + " and " + MaxValue);
                    txtCtl.focus();
                    return false;
                }
            }
            else //for integer value.
            {
                if(parseInt(txtValue)< parseInt(MinValue) || parseInt(txtValue) > parseInt(MaxValue))
                {
                    alert("Number range is between " + MinValue + " and " + MaxValue);
                    txtCtl.focus();
                    return false;
                }
            }
            
        }
        	
		
    /***********************************************************************   
        Created By		 :  Rahul Gupta
        Method Name      :  SSNValidation()
        Date Created     :  18 Sept 2007
        Last Modified    :  
        Purpose          :  FILLING SOCIAL SECURITY NUMBER IN THE FORMAT 
					        333-22-4444
        Input Parameters :  CtrlName
        Output Parameters: 
    ************************************************************************/
    function SSNValidation(CtrlName)
	{
	    try
	    {
		    txtCtl=document.getElementById(CtrlName);
		    if (!((window.event.keyCode>=48 && window.event.keyCode <= 57) || window.event.keyCode==45 ))
            {
	            window.event.keyCode = 0;
	            return false;
            }
            if(txtCtl.value.length==3)
            {
                txtCtl.value += "-";
            }  
		    
		    if(txtCtl.value.length==6)
            {
                txtCtl.value += "-";
            }
            
		    return true;
	    }

	    catch(ex)
	    {
	        
	    }	

	}
	
	/***********************************************************************   
        Created By		 :  Rahul Gupta
        Method Name      :  CellPhoneValidation()
        Date Created     :  19 Sept 2007
        Last Modified    :  
        Purpose          :  FILLING CELL PHONE NUMBER IN THE FORMAT 
					        333-222-4444
        Input Parameters :  CtrlName
        Output Parameters: 
    ************************************************************************/
    function CellPhoneValidation(CtrlName)
	{
	    //alert(window.event.keyCode);
	    try
	    {
	    
		    txtCtl=document.getElementById(CtrlName);
		    if (!((window.event.keyCode>=48 && window.event.keyCode <= 57) || window.event.keyCode==45 ))
            {
	            window.event.keyCode = 0;
	            return false;
            }
            if(txtCtl.value.length==3)
            {
                txtCtl.value += "-";
            }  
		    
		    if(txtCtl.value.length==7)
            {
                txtCtl.value += "-";
            }
            
		    return true;
	    }

	    catch(ex)
	    {
	        
	    }	

	}
	function CellPhoneValidation1(CtrlName)
	{
	    //alert(window.event.keyCode);
	    try
	    {
	    
		    txtCtl=document.getElementById(CtrlName);
		    if (!((window.event.keyCode>=48 && window.event.keyCode <= 57) || window.event.keyCode==45 ))
            {
	            window.event.keyCode = 0;
	            return false;
            }
            
		    return true;
	    }

	    catch(ex)
	    {
	        
	    }	

	}
	
	function KeyUp(CtrlName)
	{
	    
	     if(window.event.keyCode != 8 && window.event.keyCode != 46 && window.event.keyCode != 9 && window.event.keyCode != 37 && window.event.keyCode != 39 )
	     {
	        txtCtl=document.getElementById(CtrlName);
	        if ((window.event.keyCode>=48 && window.event.keyCode <= 57) || (window.event.keyCode>=96 && window.event.keyCode <= 105))
            {
	            if(txtCtl.value.length == "3" || txtCtl.value.length=="7")
                {
                    txtCtl.value = txtCtl.value + "-";
                }
                return true;
            }
            else
            {
                return false;
            }
         }
         else
         {
            return true;
         }
	}
	
	function KeyDown(CtrlName)
	{
	    
	    if(window.event.keyCode != 8 && window.event.keyCode != 46 && window.event.keyCode != 9 && window.event.keyCode != 37 && window.event.keyCode != 39 )
	    {
	    
	       txtCtl=document.getElementById(CtrlName);
	       if ((window.event.keyCode>=48 && window.event.keyCode <= 57) || (window.event.keyCode>=96 && window.event.keyCode <= 105))
           {
	           if(txtCtl.value.length == "3" || txtCtl.value.length=="7" )
               {    
                    txtCtl.value =txtCtl.value + "-";
                    return true;
               }
            }
            else
            {
                return false;
            }   
	    }  
	    else
	    {
	        return true; 
	    }
	}
	
	
	/***********************************************************************   
        Created By		 :  Rahul Gupta
        Method Name      :  WorkPhoneValidation()
        Date Created     :  19 Sept 2007
        Last Modified    :  
        Purpose          :  FILLING WORK PHONE NUMBER IN THE FORMAT 
					        333-222-4444-1234
        Input Parameters :  CtrlName
        Output Parameters: 
    ************************************************************************/
    function WorkPhoneValidation(CtrlName)
	{
	    //alert(window.event.keyCode);
	    try
	    {
		    txtCtl=document.getElementById(CtrlName);
		    if (!((window.event.keyCode>=48 && window.event.keyCode <= 57) || window.event.keyCode==45 ))
            {
	            window.event.keyCode = 0;
	            return false;
            }
            if(txtCtl.value.length==3)
            {
                txtCtl.value += "-";
            }  
		    
		    if(txtCtl.value.length==7)
            {
                txtCtl.value += "-";
            }
            
            if(txtCtl.value.length==7)
            {
                txtCtl.value += "-";
            }
            
            if(txtCtl.value.length==12)
            {
                txtCtl.value += "-";
            }
            
            
		    return true;
	    }

	    catch(ex)
	    {
	        
	    }	

	}

    /************************************************************************
    Created By:		   SURESH DEV
    Method Name:       findPosX(obj)
    Date Created:      8th Dec 2005
    Last Modified:     8th Dec 2005
    Purpose:           FUNCTION to get Top position of any control
    Input Parameters:  Object
    Output Parameters: Position
    ************************************************************************/
    function findPosY(obj)
    {
	    var curtop = 0;
	    if (obj.offsetParent)
	    {
		    while (obj.offsetParent)
		    {
			    curtop += obj.offsetTop
			    obj = obj.offsetParent;
		    }
	    }
	    else if (obj.y)
		    curtop += obj.y;
		    
		//alert(curtop);    
	    return curtop;
    }
    
    /************************************************************************
    Created By:		   SURESH DEV
    Method Name:       findPosX(obj)
    Date Created:      8th Dec 2005
    Last Modified:     8th Dec 2005
    Purpose:           FUNCTION to get Left position of any control
    Input Parameters:  Object
    Output Parameters: Position
    ************************************************************************/
    function findPosX(obj)
    {
	    var curleft = 0;
	    if (obj.offsetParent)
	    {
		    while (obj.offsetParent)
		    {
			    curleft += obj.offsetLeft
			    obj = obj.offsetParent;
		    }
	    }
	    else if (obj.x)
		    curleft += obj.x;
    	
	    return curleft;
    }
    
    /***********************************************************************   
        Created By		 :  Rahul Gupta
        Method Name      :  ReSetAllFormControls()
        Date Created     :  19 Sept 2007
        Last Modified    :  
        Purpose          :  Resetting all controls of form 
        Input Parameters :  FormID --> id of form
        Output Parameters: 
    ************************************************************************/
    function ReSetAllFormControls(FormID)
    {
        var sType='';
        objForm=document.getElementById(FormID);
        try
        {
            for(i=0;i<objForm.elements.length;i++)
            {
                sType = objForm.elements[i].type;
                if(sType.indexOf('text')>-1)
                {
                    objForm.elements[i].value="";
                }
                if(sType.indexOf('checkbox')>-1)
                {
                    objForm.elements[i].checked=false;
                }
                if(sType.indexOf('radio')>-1)
                {
                    objForm.elements[i].checked=false;
                }
                if(sType.indexOf('select')>-1)
                {
                    objForm.elements[i].selectedIndex=0;
                }
            }
        }
        catch(ex)
        {
            alert(ex.description);
        }
    }
    
    
    
    
    
    
    
    function validateCellPhoneorPager(ObjId)
    {
        var CellPhone_TaxPayer=document.getElementById(ObjId);
       
        
        if(TrimString(CellPhone_TaxPayer.value)!="")
        {
            if(CellPhone_TaxPayer.value.length!=12 || CellPhone_TaxPayer.value.substring(3,4)!="-" || CellPhone_TaxPayer.value.substring(7,8)!="-")
            {
                //alert('Please enter valid Cell Phone No (eg. 123-456-7890)');
                //CellPhone_TaxPayer.focus();
                return false;
            }
        }
        
              
        return true;
        
    }
    
    
    function validateWorkPhone(ObjId)
    {
        var txtWorkPhone_TaxPayer=document.getElementById(ObjId);
      
        
        if(TrimString(txtWorkPhone_TaxPayer.value)!="")
        {
            if(txtWorkPhone_TaxPayer.value.length!=17 || txtWorkPhone_TaxPayer.value.substring(3,4)!="-" || txtWorkPhone_TaxPayer.value.substring(7,8)!="-" || txtWorkPhone_TaxPayer.value.substring(12,13)!="-")
            {
                //alert('Please enter valid Work Phone No (eg. 123-456-7890-1234),1234 is extension.');
                //txtWorkPhone_TaxPayer.focus();
                return false;
            }
        }
      
        
        return true;
        
    }
    
    
    /***********************************************************************   
        Created By		 :  
        Method Name      :  Automatic Type the Date Format
        Date Created     :  19 Sept 2007
        Last Modified    :  
        Purpose          : 
        
    ************************************************************************/
    
    function DateFormatValidation(CtrlName)
	{
	    //alert(window.event.keyCode);
	    try
	    {
		    txtCtl=document.getElementById(CtrlName);
		    if (!((window.event.keyCode>=48 && window.event.keyCode <= 57) || window.event.keyCode==45 ))
            {
	            window.event.keyCode = 0;
	            return false;
            }
            if(txtCtl.value.length==2)
            {
                txtCtl.value += "/";
            }  
		    
		    if(txtCtl.value.length==5)
            {
                txtCtl.value += "/";
            }
            
		    return true;
	    }

	    catch(ex)
	    {
	        
	    }	

	}    
    
  /***********************************************************************   
        Created By		 :  
        Method Name      :  isValidDate() ...Regular Expression Form
        Date Created     :  19 Sept 2007
        Last Modified    :  
        Purpose          : To Validate Date , By Default checks for mm,dd,yyyy format
        
    ************************************************************************/
    
    
 function isValidDate(dateStr, format) 
{
  
   if (format == null) { format = "MDY"; }
   
   format = format.toUpperCase();
   
   if (format.length != 3) { format = "MDY"; }
   
   if ( (format.indexOf("M") == -1) || (format.indexOf("D") == -1) || (format.indexOf("Y") == -1) ) 
   { format = "MDY"; }
   
   if (format.substring(0, 1) == "Y") 
   { // If the year is first
      var reg1 = /^\d{2}(\-|\/|\.)\d{1,2}\1\d{1,2}$/
      var reg2 = /^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$/
   } else if (format.substring(1, 2) == "Y") { // If the year is second
      var reg1 = /^\d{1,2}(\-|\/|\.)\d{2}\1\d{1,2}$/
      var reg2 = /^\d{1,2}(\-|\/|\.)\d{4}\1\d{1,2}$/
   } else { // The year must be third
      var reg1 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{2}$/
      var reg2 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/
   }
   // If it doesn't conform to the right format (with either a 2 digit year or 4 digit year), fail
   if ( (reg1.test(dateStr) == false) && (reg2.test(dateStr) == false) ) 
   { return false; }
   
   var parts = dateStr.split(RegExp.$1); // Split into 3 parts based on what the divider was
   // Check to see if the 3 parts end up making a valid date
   if (format.substring(0, 1) == "M") { var mm = parts[0]; } else 
      if (format.substring(1, 2) == "M") { var mm = parts[1]; } else { var mm = parts[2]; }
   if (format.substring(0, 1) == "D") { var dd = parts[0]; } else 
      if (format.substring(1, 2) == "D") { var dd = parts[1]; } else { var dd = parts[2]; }
   if (format.substring(0, 1) == "Y") { var yy = parts[0]; } else 
      if (format.substring(1, 2) == "Y") { var yy = parts[1]; } else { var yy = parts[2]; }
   if (parseFloat(yy) <= 50) { yy = (parseFloat(yy) + 2000).toString(); }
   if (parseFloat(yy) <= 99) { yy = (parseFloat(yy) + 1900).toString(); }
   var dt = new Date(parseFloat(yy), parseFloat(mm)-1, parseFloat(dd), 0, 0, 0, 0);
   if (parseFloat(dd) != dt.getDate()) { return false; }
   if (parseFloat(mm)-1 != dt.getMonth()) { return false; }
   var dtToday=new Date();
   if (dtToday<= dt){ alert('Please Specify the Date Range between 1900 - ' + dtToday.getFullYear());return false; }
   if (yy<1900){alert('Please Specify the Date Range between 1900 - ' + dtToday.getFullYear());return false; }
   
   
   return true;
}



   /***********************************************************************   
        Created By		 :  
        Method Name      :  Check Fiscal Date And Month
        Date Created     :  19 Sept 2007
        Last Modified    :  
        Purpose          : 
        
    ************************************************************************/
 
 function IsFiscalDateValid(monthName,dayNumber)
 {

   var mm;
   mm=monthName.toUpperCase();
   
   if(mm=='JAN' || mm=='MAR' || mm=='MAY' || mm=='JUL' || mm=='AUG' || mm=='OCT' || mm=='DEC')
   {
    
     if(parseInt(dayNumber) >= 1 && parseInt(dayNumber) <= 31  )
     {
        
           return true;
     }else
     return false;
     
   }
   
   if(mm=='FEB')
   {
    
     if(parseInt(dayNumber) >= 1 && parseInt(dayNumber) <= 29 )
     {
      
           return true;
     }else
     return false;
   
   }
   
   if(mm=='APR' || mm=='JUN' || mm=='SEP' || mm=='NOV')
   {
   
     if(parseInt(dayNumber) >= 1 && parseInt(dayNumber) <= 30  )
     {
       
           return true;
     }else
     return false;
   
   } 
 
   return false;
 
 
 }   
    
