// JScript File
/*********************************************************************
/// <summary>
// Name of File     : HelperFunctions.js
// Author           : Infosys
// Class Definition : The file contains javascript 
                      functions used through out the application 
// Create date      : 05 Sep 2006
// 
// Modification log:
//    Date(mm/dd/yyyy)    Author          Change Request #          Description
//    09/05/2005         Infosys                                    Created file
//    07/31/2007         Infosys          Added for DBP Online      Added the CheckServiceAccountNumber function
//                                                                  for masking the service account number
//    08/16/2007         Infosys          MOD001                    Added the CheckFaxPhoneFormat function for masking 
//                                                                  phone and fax numbers in the format XXX-XXX-XXXX
//    08/17/2007         Infosys          MOD002                    Added a check for Mozilla in the EnableDisableButton function
//    03/19/2007         Infosys          MOD003                    Added common functions CheckLeapYear() & GetDateDifference()
//    03/06/08           Infosys         03971705A                  Changes for 03971705A -CARE Categorical Enrollment
//    05/06/09           Infosys         SSOP0001                   Changes for SS Online Payment Project
//    07/30/09           Infosys         WCAG0002                   Changes for Web Accessibility Phase 2
//    06/10/2009         Infosys	 MOD - 200039227 	    EAF Changes
//    31/10/2009         Infosys         SSOP PYMT                  Changes for SSOP Payment Issue
//    08/19/2010         Infosys         Forms Rewrite              Changes for forms rewrite
//    10/29/2010	     Infosys		MOD - WR# 800586101         Status Inquiry Rewrite
//    12/15/2010         Infosys                                    Chnages for Multiple Clicks
/// </summary>
************************************************************************/

/*'******************************************************************************
'* Function Name    :   FormatAccountNumber
'*
'* Function Desc    :   Function to mask the account number in the format xx-xxx-xxxx
'******************************************************************************
*/
var strUserAgent = navigator.userAgent.toLowerCase();
var isIE = strUserAgent.indexOf("msie") > -1;
function FormatAccountNumber(objEvent)
{   
    var iKeyCode, strKey;
    var reValidChars = /\d/;
    var objInput = objEvent.srcElement;    

    if (isIE)
    {
        iKeyCode = objEvent.keyCode;
    }
    else
    {
        iKeyCode = objEvent.which; 
    }
    strKey = String.fromCharCode(iKeyCode);

    if (!reValidChars.test(strKey)) 
    {       
        //alert("Invalid Character Detected!\nKeyCode = " + iKeyCode + "\nCharacter =" + strKey);

        return false;
    }

    if(objInput.value.length==2 ||objInput.value.length==6 )
    {
        objInput.value=objInput.value + '-';
    }
}
/*******************************************************************************
/Function Name   :  GetControlId
/
/Description     :  Returns the control id 
*******************************************************************************/
var __controlId = '';
function GetControlId()
{
    if (__controlId=='')
    {
        var controlId = document.getElementById("controlID");
        if(controlId == null)
        {
            __controlId= '';
        }
        else
        {
            __controlId= controlId.value;
        }
    }
    return __controlId;
}
/*******************************************************************************
/Function Name   :  GetMasterPageId
/
/Description     :  This function gets the master page id.
*******************************************************************************/
var __masterPageId = null;
function GetMasterPageId()
{
    if (__masterPageId==null)
    {
        __masterPageId = document.getElementById("masterPageId").value;
    }
    return __masterPageId;
}
/*******************************************************************************
/Function Name   :  InvertImage
/
/Description     :  This function chanegs the image of the buttons dynamically.
*******************************************************************************/
function InvertImage(image)
{
    var path, base, name, cleanname, curState, newState, extn;
    path = image.src;
    base= path.substring(0, path.lastIndexOf('/') + 1);
    name = path.substring(path.lastIndexOf('/') + 1, path.length);
    cleanname = name.substring(0, name.lastIndexOf('-'));
    curState = name.substring(name.lastIndexOf('-') + 1, name.lastIndexOf('.'));
    newState = (curState.toLowerCase()=="up"?"over":"up");
    extn = name.substring(name.lastIndexOf('.') + 1, name.length);
    image.src = base + cleanname + '-' + newState + '.' + extn;
 }

/*******************************************************************************
/Function Name   :  InvertPlusMinusImage
/
/Description     :  This function chanegs the image of the buttons dynamically.
*******************************************************************************/
function InvertImage2(image, normalMode, invertedMode, requiredMode)
{
    var path, base, name, cleanname, curState, newState, extn;
    path = image.src;
    base= path.substring(0, path.lastIndexOf('/') + 1);
    name = path.substring(path.lastIndexOf('/') + 1, path.length);
    cleanname = name.substring(0, name.lastIndexOf('-'));
    curState = name.substring(name.lastIndexOf('-') + 1, name.lastIndexOf('.'));
    
    if (curState.toLowerCase()==requiredMode.toLowerCase())
        newState = curState;
    else
        newState = (curState.toLowerCase()==normalMode?invertedMode:normalMode);
    
    extn = name.substring(name.lastIndexOf('.') + 1, name.length);
    image.src = base + cleanname + '-' + newState + '.' + extn;
 }

 /*'******************************************************************************
'* Function Name    :   fnTrim
'*
'* Function Desc    :   This Function will be used to trim the spaces from
'*                      Both sides of the input string
'* Scope            :   NA
'* Input Parameters :   vString
'* Output Parameters:   N/A
'*
'* Return Type      :   String
'*
'******************************************************************************
*/
function fnTrim(vString)
{
	vString = fnLTrim(vString)
	
	vString = fnRTrim(vString)
	return(vString)
}

/*
'******************************************************************************
'* Function Name    :   fnLTrim
'*
'* Function Desc    :   This Function will left trim the passed variable
'* Scope            :   NA
'*
'* Input Parameters :   vString (Variable to left trim)
'*						vDelimiter (Delimiter to trim)
'* Output Parameters:   vString (Variable to left trim)
'*
'* Return Type      :   None
'******************************************************************************

*/

function fnLTrim(strInput)
{
	var strOutput;
	var strlen = strInput.length;
	for (i = 0; i < strlen;i++)
	{
	   if (strInput.charAt(i) != " ")
	   break;
	}
	strOutput = strInput.substring(i,strlen);
	return strOutput;
}

/*
'******************************************************************************
'* Function Name    :   fnRTrim
'*
'* Function Desc    :   This Function will right trim the passed string.
'* Scope            :   NA
'*
'* Input Parameters :   vString (Variable to left trim)
'*						vDelimiter (Delimiter to trim)
'* Output Parameters:   None
'* Return Type      :   None
'******************************************************************************

*/
function fnRTrim(strInput)
{
   var strOutput;
   var strlen = strInput.length;
   for (i=strlen-1; i > 0; i--)
   {
      if (strInput.charAt(i) != " ")
      break;
   }

   strOutput = strInput.substring(0,i+1);
   return strOutput;
}


//Start MOD - Added for DBP Online
     
     //Masking the Service Account Number entered in the Search page
    /*
    '******************************************************************************
    '* Function Name    :   CheckServiceAccountNumber
    '*
    '* Function Desc    :   Function to mask the service account number entered
    '*                      in the search page.
    '* Scope            :   NA
    '*
    '* Input Parameters :   
    '* Output Parameters:   None
    '* Return Type      :   None
    '******************************************************************************
    */
    
    function CheckServiceAccountNumber(objEvent)
     {
        var strUserAgent = navigator.userAgent.toLowerCase();
        var isIE = strUserAgent.indexOf("msie") > -1;
        var isMozilla = strUserAgent.indexOf("firefox") > -1;
         var iKeyCode, strKey;
         var reValidChars = /\d/;
         var controlID = document.getElementById("controlID").value;
        
         var objInput;
         if (isMozilla)
         {
	    objInput = objEvent.target;    
         }
         else
         {
	    objInput = objEvent.srcElement;    
         }

         if (isIE)
         {
           iKeyCode = objEvent.keyCode;
         }
         else
         {
           iKeyCode = objEvent.which; 
         }
         	
        var bCtrlKeyPressed = (objEvent.ctlrKey)?objEvent.ctlrKey : objEvent.modifiers & 2 > 0;
	    switch (iKeyCode)
	    {
		    case 8: //allow backspace
			    return true;
		    case 0: //allow delete and navigation arrow
			    return true;
		    case 118: //allow Ctrl+V
			    if (bCtrlKeyPressed)
				    return true;
		    case 120: //allow Ctrl+X
			    if (bCtrlKeyPressed)
				    return true;
	    }
         strKey = String.fromCharCode(iKeyCode);     

         if (!reValidChars.test(strKey))
         {       
           if (isIE)
		    objEvent.returnValue=false;
	       else
		    return false;		
         }       

        if(objInput.value.length==1 || objInput.value.length==5 ||objInput.value.length==10 )
          {
                 objInput.value=objInput.value + '-';
          }  
             
     }
/*******************************************************************************
/Function Name   :  EnableDisableButton
/
/Description     :  This function is called to change the cursor for enabled and disabled buttons                          
/                   
/Input Parameter :  None
*******************************************************************************/
function EnableDisableButton(buttonId,isEnabled)
{
   var button=buttonId;   
   if (button==null) return;   
   //Start - MOD002
   var strUserAgent = navigator.userAgent.toLowerCase();   
   var isMozilla = strUserAgent.indexOf("firefox") > -1;
   //End - MOD002
        
   if(!isEnabled)
   {        
        button.style.cursor='text';
        button.disabled = true;
   } 
   else 
   {    
        //Start - MOD002
        if (isMozilla) 
        {
            button.style.cursor='pointer';
        }
        else
        {
            button.style.cursor='hand';
        }
        //button.style.cursor='hand';
        //End - MOD002
        button.disabled = false;
   }
   
}
//End MOD - Added for DBP Online     
//Start MOD001
//Masking the Phone Number entered in the page
    /*
    '******************************************************************************
    '* Function Name    :   CheckFaxPhoneFormat
    '*
    '* Function Desc    :   Function to mask the Phone number entered
    '*                      in the  page.
    '* Scope            :   NA
    '*
    '* Input Parameters :   
    '* Output Parameters:   None
    '* Return Type      :   None
    '******************************************************************************
    */
    
    function CheckFaxPhoneFormat(objEvent)
     {
     
        var strUserAgent = navigator.userAgent.toLowerCase();
        var isIE = strUserAgent.indexOf("msie") > -1;
        var isMozilla = strUserAgent.indexOf("firefox") > -1;
         var iKeyCode, strKey;
         var reValidChars = /\d/;
         var controlID = document.getElementById("controlID").value;
        
         var objInput;
         if (isMozilla)
         {
	    objInput = objEvent.target;    
         }
         else
         {
	    objInput = objEvent.srcElement;    
         }

         if (isIE)
         {
           iKeyCode = objEvent.keyCode;
         }
         else
         {
           iKeyCode = objEvent.which; 
         }
         	
        var bCtrlKeyPressed = (objEvent.ctlrKey)?objEvent.ctlrKey : objEvent.modifiers & 2 > 0;
	    switch (iKeyCode)
	    {
		    case 8: //allow backspace
			    return true;
		    case 0: //allow delete and navigation arrow
			    return true;
		    case 118: //allow Ctrl+V
			    if (bCtrlKeyPressed)
				    return true;
		    case 120: //allow Ctrl+X
			    if (bCtrlKeyPressed)
				    return true;
	    }
         strKey = String.fromCharCode(iKeyCode);     

         if (!reValidChars.test(strKey))
         {       
           if (isIE)
		    objEvent.returnValue=false;
	       else
		    return false;		
         }       

        if(objInput.value.length==3 || objInput.value.length==7 )
          {
                 objInput.value=objInput.value + '-';
          }  
             
     }
//End MOD001

//Start MOD - Care Online
//Masking the Service Account Number entered in the Search page
    /*
    '******************************************************************************
    '* Function Name    :   NumericOnly
    '*
    '* Function Desc    :   Function to restrict non numeric inputs
    '* Scope            :   NA
    '*
    '* Input Parameters :   
    '* Output Parameters:   None
    '* Return Type      :   None
    '******************************************************************************
    */
    
    function NumericOnly(objEvent)
     {
        var strUserAgent = navigator.userAgent.toLowerCase();
        var isIE = strUserAgent.indexOf("msie") > -1;
        var isMozilla = strUserAgent.indexOf("firefox") > -1;
         var iKeyCode, strKey;
         var reValidChars = /\d/;
         var controlID = document.getElementById("controlID").value;
        
         var objInput;
         if (isMozilla)
         {
	    objInput = objEvent.target;    
         }
         else
         {
	    objInput = objEvent.srcElement;    
         }

         if (isIE)
         {
           iKeyCode = objEvent.keyCode;
         }
         else
         {
           iKeyCode = objEvent.which; 
         }
         	
        var bCtrlKeyPressed = (objEvent.ctlrKey)?objEvent.ctlrKey : objEvent.modifiers & 2 > 0;
	    switch (iKeyCode)
	    {
		    case 8: //allow backspace
			    return true;
		    case 0: //allow delete and navigation arrow
			    return true;
		    case 118: //allow Ctrl+V
			    if (bCtrlKeyPressed)
				    return true;
		    case 120: //allow Ctrl+X
			    if (bCtrlKeyPressed)
				    return true;
            //Start 200039227 EAF Changes
		    case 46: //allow dot
				    return true;
           //End 200039227 EAF Changes
	    }
         strKey = String.fromCharCode(iKeyCode);     

         if (!reValidChars.test(strKey))
         {       
           if (isIE)
		    objEvent.returnValue=false;
	       else
		    return false;		
         } 
             
     }
     /*
    '******************************************************************************
    '* Function Name    :   timeOut
    '*
    '* Function Desc    :   Function to show alert on session time out
    '* Scope            :   NA
    '*
    '* Input Parameters :   
    '* Output Parameters:   None
    '* Return Type      :   None
    '******************************************************************************
    */
     function timeOut()
    {
        alert("Your session has ended due to inactivity.");
        location.replace('/sc3/');
    }
//End MOD - Care Online     
//MOD003-Start
//These functions have been added as part of Online Payment Extension Project
/*******************************************************************************
/Function Name   :  GetDateDifference()
/Description     :  The function is called to find the difference between 
/                   the From date and the To date selected by user.
*******************************************************************************/   
function GetDateDifference(fromDate, toDate)
{
    fromDate = new Date(fromDate);
    toDate = new Date(toDate);

    //  1 day in milliseconds - 1000*60*60*24
    var oneDayMilliSec=86400000        

    //Calculate difference btwn the two dates, and convert to days        
    var dateDiff =Date.UTC(toDate.getYear(),toDate.getMonth(),toDate.getDate(),0,0,0)- Date.UTC(fromDate.getYear(),fromDate.getMonth(),fromDate.getDate(),0,0,0);
    dateDiff=dateDiff/oneDayMilliSec;        

        /* 
           This code is added because. Report which checks for maximum span to be 12 months
           the earlier validation fails if Start Date =1/1/2004 and 12/31/2004 i.e. for leap year,
           as in all places we check the datediff>=365. For leap years the date difference returned is 365.
        */                

    if(CheckLeapYear(toDate.getYear()) || CheckLeapYear(fromDate.getYear()))
    {
        if(dateDiff==365 && toDate.getDate()!=fromDate.getDate())
        {
            dateDiff=364;
        }           

        if(dateDiff==730)
        {
            if((toDate.getYear()-fromDate.getYear())==1)
                dateDiff=729;
        }
    }  
    return dateDiff;
}        

/*******************************************************************************
/Function Name   :  CheckLeapYear()
/Description     :  Function newly added to check leap year.
*******************************************************************************/
function CheckLeapYear(inputDate)
{
    inputDate = parseInt(inputDate);
    if(inputDate%4 == 0)
    {
        if(inputDate%100 != 0)
        {
            return true;
        }
        else
        {
            if(inputDate%400 == 0)
                return true;
            else
                return false;
        }
    }
    return false;
}
//MOD003-End

    //MOD - Start - 03971705A
    /*
    '******************************************************************************
    '* Function Name    :   CheckNumericFormat
    '*
    '* Function Desc    :   Function to check that the given input is in proper
    '*                      numeric format
    '* Scope            :   NA
    '*
    '* Input Parameters :   source
    '*						
    '* Output Parameters:   NA
    '*
    '* Return Type      :   None
    '******************************************************************************
    */
    function CheckNumericFormat(source)
    {
        var numericFormat = /\d/;
        return numericFormat.test(source);   
    }
    //MOD - End - 03971705A

//Mod: Start - SSOP0001
    /*
    '******************************************************************************
    '* Function Name    :   FormatCustomerAccountNumber
    '*
    '* Function Desc    :   Function to auto-format the input customer account
    '*                      Number
    '* Scope            :   NA
    '*
    '* Input Parameters :   objEvent
    '*						
    '* Output Parameters:   NA
    '*
    '* Return Type      :   None
    '******************************************************************************
    */
    function FormatCustomerAccountNumber(objEvent)
    {
        var strUserAgent = navigator.userAgent.toLowerCase();
        var isIE = strUserAgent.indexOf("msie") > -1;
        var isMozilla = strUserAgent.indexOf("firefox") > -1;
        var iKeyCode, strKey;
        var reValidChars = /\d/;
        var controlID = document.getElementById("controlID").value;
        var objInput;
        if (isMozilla)
        {
            objInput = objEvent.target;    
        }
        else
        {
            objInput = objEvent.srcElement;    
        }

        if (isIE)
        {
            iKeyCode = objEvent.keyCode;
        }
        else
        {
           iKeyCode = objEvent.which; 
        }
        var bCtrlKeyPressed = (objEvent.ctlrKey)?objEvent.ctlrKey : objEvent.modifiers & 2 > 0;
        switch (iKeyCode)
        {
	        case 8: //allow backspace
		        return true;
	        case 0: //allow delete and navigation arrow
		        return true;
	        case 118: //allow Ctrl+V
		        if (bCtrlKeyPressed)
			        return true;
	        case 120: //allow Ctrl+X
		        if (bCtrlKeyPressed)
			        return true;
        }
        strKey = String.fromCharCode(iKeyCode);     

        if (!reValidChars.test(strKey))
        {       
            if (isIE)
	            objEvent.returnValue=false;
            else
	            return false;		
        }       

        if(objInput.value.length==1 || objInput.value.length==4 ||objInput.value.length==8 )
        {
            objInput.value=objInput.value + '-';
        }
    }
    /*
    '******************************************************************************
    '* Function Name    :   DoubleOnly
    '*
    '* Function Desc    :   Function to restrict non numeric inputs
    '* Scope            :   NA
    '*
    '* Input Parameters :   event raised
    '* Output Parameters:   None
    '* Return Type      :   None
    '******************************************************************************
    */
    function DoubleOnly(objEvent)
    {
        var strUserAgent = navigator.userAgent.toLowerCase();
        var isIE = strUserAgent.indexOf("msie") > -1;
        var isMozilla = strUserAgent.indexOf("firefox") > -1;
        var iKeyCode, strKey;
        var reValidChars = /\d/;
        var controlID = document.getElementById("controlID").value;
        
        var objInput;
        //Start SSOP PYMT 001
        if (isIE)
        {
	        objInput = objEvent.srcElement;    
        }
        else
        {
	        objInput = objEvent.target;    
        }
        //End SSOP PYMT 001

        if (isIE)
        {
            iKeyCode = objEvent.keyCode;
        }
        else
        {
            iKeyCode = objEvent.which; 
        }
         	
        var bCtrlKeyPressed = (objEvent.ctlrKey)?objEvent.ctlrKey : objEvent.modifiers & 2 > 0;
	    switch (iKeyCode)
	    {
		    case 8: //allow backspace
			    return true;
		    case 0: //allow delete and navigation arrow
			    return true;
		    case 118: //allow Ctrl+V
			    if (bCtrlKeyPressed)
				    return true;
				else
				    return false;
		    case 120: //allow Ctrl+X
			    if (bCtrlKeyPressed)
				    return true;
				else
				    return false;
            case 46://allow decimal point
                var val = objInput.value;
                var pos = val.indexOf(".");
                if (pos == -1)
                {
                    return true;
                }
                else
                {
                    return false;
                }
	    }
        strKey = String.fromCharCode(iKeyCode);     

        if (!reValidChars.test(strKey))
        {       
            if (isIE)
		        objEvent.returnValue=false;
              else
                return false;         
        }
        else
        {           
            if(checkDecimal(objInput.value) == false)
            {
                if (isIE)
                        objEvent.returnValue=false;
                  else
                        return false;                       
            }
        }                 
    }
    
    /*
    '******************************************************************************
    '* Function Name    :   checkDecimal
    '*
    '* Function Desc    :   Function to validate the regular expression
    '* Scope            :   NA
    '*
    '* Input Parameters :   value to be checked
    '* Output Parameters:   None
    '* Return Type      :   boolean
    '******************************************************************************
    */
    function checkDecimal(val) 
    {    
        if (/\d*\.?\d{0,1}$/.test(val))
              return true;
        else              
              return false;
    }
    
    /*
    '******************************************************************************
    '* Function Name    :   checkDecimal
    '*
    '* Function Desc    :   Rounds the numeric field provided to the decimal places
    '*                      specified
    '* Scope            :   NA
    '*
    '* Input Parameters :   number to round, number of decimal places
    '* Output Parameters:   None
    '* Return Type      :   numeric
    '******************************************************************************
    */
    function RoundNumber(rnum, rlength) 
    { 
        var newnumber = Math.round(rnum*Math.pow(10,rlength))/Math.pow(10,rlength);
        return newnumber;
    }
    
    /******************************************************************************
    * Function Name    :   FormatNumber
    *
    * Function Desc    :   Function populates the formats the amount to append 
    *                       zeros to have 2 digits after decimal
    * Scope            :   NA
    *
    * Input Parameters :  src,args
    * Output Parameters:   None
    * Return Type      :   None
    ******************************************************************************/
    function FormatNumber(finalAmount)
    {
       var value = String(finalAmount);
       if (value.length > 0)
       {
           var position = value.indexOf(".");
           if (position != -1)
           {
              var digitsAfterDecimal = (value.length-1) - position;
              if ((digitsAfterDecimal >= 0) && (digitsAfterDecimal < 2))
              {
                if (digitsAfterDecimal == 0)
                {
                    value = value + "00";
                    finalAmount = value;
                }
                else if (digitsAfterDecimal == 1)
                {
                    value = value + "0";
                    finalAmount = value;
                }
              }
           }
           else
           {
               value = value + ".00";
               finalAmount = value;
           }
       }
       else
       {
            value = value + "0.00";
            finalAmount = value;
       }
       return finalAmount;
    }
    //Mod: End - SSOP0001
    
/* Start - MOD – WCAG0002 */
/******************************************************************************
* Function Name    :   RemoveUltraGridIssues
*
* Function Desc    :   Function removes the JAWs reading issues, Liquid Layout  
*                       from Infragistics UltraWebGrid
* Scope            :   NA
*
* Input Parameters :  ultraGridId
* Output Parameters:   None
* Return Type      :   None
******************************************************************************/
function RemoveUltraGridIssues(ultraGridId)
{                
	var controlID = GetControlId();
	var searchGridIdName = controlID + "_" + ultraGridId;
	var gridId = document.getElementById("G_" + searchGridIdName.replace(/_/gi,"x"));
    gridId.attributes("onmouseover").value = null;

	var searchGridIdMainName =  controlID + "_" + ultraGridId;
	searchGridIdMainName = searchGridIdMainName.replace(/_/gi,"x") + "_main";
	var gridmain = document.getElementById(searchGridIdMainName);
	gridmain.style.tableLayout = "auto";        
	
	var thhead = gridId.getElementsByTagName("thead")[0];
	thhead.attributes("onmouseover").value = null;
	
}
/* End - MOD – WCAG0002 */
//Start - MOD - Forms Rewrite				
/*
'******************************************************************************
'* Function Name    :   limitText
'* Function Desc    :   Function to limit the text in the Text Area     
'******************************************************************************
*/ 			
function limitText(objEvent, limitNum, controlName) {
var keyPressed;
var controlId = document.getElementById("controlID").value;
var addNotes = document.getElementById(controlId + "_" + controlName);
var strUserAgent = navigator.userAgent.toLowerCase();
var isMozilla = strUserAgent.indexOf("firefox") > -1;
if(isMozilla){
	keyPressed = objEvent.which;
}else{
	keyPressed = event.keyCode;
}
	if (addNotes.value.length >= limitNum) {					
		if(keyPressed==13 || keyPressed==32 ||(keyPressed >=48 && keyPressed<=57)||(keyPressed >=65 && keyPressed<=90)||(keyPressed >=96 && keyPressed<=111)||(keyPressed >=186 && keyPressed<=191)||(keyPressed >=219 && keyPressed<=222))
		{	
			if(isMozilla){
				objEvent.preventDefault()=true;	
			}else{
				event.returnValue = false;
				event.cancel = true;
			}					
		}
	}
}
/*
'******************************************************************************
'* Function Name    :   DateValidation
'* Function Desc    :   Function to validate the date entered      
'******************************************************************************
*/
function DateValidation(selectedDate, fromDate, toDate)
{
    var isValidFormat;
    var validformat1=/^\d{1,2}\-\d{1,2}\-\d{4}$/;
	var validformat2=/^\d{1,2}\/\d{1,2}\/\d{4}$/;
	if (validformat1.test(selectedDate.value) || validformat2.test(selectedDate.value))
	{
	    isValidFormat = true;
	}
	else
	{
	    isValidFormat = false;
	}
	if(isValidFormat)
	{
	    if(selectedDate.value.indexOf("-") >= 0)
		{
		    var monthfield=selectedDate.value.split("-")[0];
            var dayfield=selectedDate.value.split("-")[1];
            var yearfield=selectedDate.value.split("-")[2];
        }
        else
        {
            var monthfield=selectedDate.value.split("/")[0];
            var dayfield=selectedDate.value.split("/")[1];
            var yearfield=selectedDate.value.split("/")[2];
        }   
        var dayobj = new Date(yearfield, monthfield-1, dayfield);
        if(fromDate.indexOf("-") >= 0)
        {
            var frmDate = new Date(fromDate.split("-")[2], fromDate.split("-")[0] - 1, fromDate.split("-")[1]);
        }
        else
        {
            var frmDate = new Date(fromDate.split("/")[2], fromDate.split("/")[0] - 1, fromDate.split("/")[1]);
        }
        if(toDate.indexOf("-") >= 0)
        {
            var futureDate = new Date(toDate.split("-")[2], toDate.split("-")[0] - 1, toDate.split("-")[1]);
        }
        else
        {
            var futureDate = new Date(toDate.split("/")[2], toDate.split("/")[0] - 1, toDate.split("/")[1]);
        }
        if ((dayobj.getMonth()+1!=monthfield)||(dayobj.getDate()!=dayfield)||(dayobj.getFullYear()!=yearfield))
        { 
            return false;
        }
        else
        {
            if (dayobj < frmDate || dayobj > futureDate)
            {
                return false;
            }
            else
            {
                return true;
            }
        }
	}
	else
	{
	    return false;
	}
}
/*
'******************************************************************************
'* Function Name    :   RadioButtonListValidation
'* Function Desc    :   Function to validate a radio button list      
'******************************************************************************
*/
function RadioButtonListValidation(controlArray)
{
    var checked = false;
	var count;
	for(count = 0; count < controlArray.length; count++)
	{
		if (controlArray[count].checked == true)
		{
			checked = true;
			break;
		}
	}
	return checked;
}
/*
'******************************************************************************
'* Function Name    :   ResetFormFields
'* Function Desc    :   Function to reset form fields      
'******************************************************************************
*/
function ResetFormFields()
{
    var i;
    var controlId = document.getElementById("controlID").value;
    var summary = document.getElementById(controlId + "_ValidationSummary");
    summary.style.display = "none";
    for(i=0;i<document.forms["aspnetForm"].length;i++)
	{
		if(document.forms["aspnetForm"].elements[i].id.substring(57,60)=="chk" ||
		   document.forms["aspnetForm"].elements[i].id.substring(57,60)=="rdb" )
		{
			document.forms["aspnetForm"].elements[i].checked = false;
		}
		else if(document.forms["aspnetForm"].elements[i].id.substring(57,60)=="txt")
		{
			document.forms["aspnetForm"].elements[i].value = "";
		}
		else if(document.forms["aspnetForm"].elements[i].id.substring(57,60)=="cmb")
		{
			document.forms["aspnetForm"].elements[i].selectedIndex = 0;
		}
		
	}
	var labelArray = document.forms["aspnetForm"].getElementsByTagName("label");
	for(i=0;i<labelArray.length;i++)
	{
	    if(labelArray[i].id.substring(57,60)=="lbl")
		{
		    labelArray[i].className = "labelplain";
		}
	}	
	return false;
}	
//End - MOD - Forms Rewrite
//Start - MOD – 800586101 Status Inquiry Rewrite
/*
'******************************************************************************
'* Function Name    :   CheckServiceAccountNumber11
'* Function Desc    :   Autoformats the service account number entered     
'******************************************************************************
*/
function CheckServiceAccountNumber11(objEvent)
{
    var strUserAgent = navigator.userAgent.toLowerCase();
    var isIE = strUserAgent.indexOf("msie") > -1;
    var isMozilla = strUserAgent.indexOf("firefox") > -1;
    var iKeyCode, strKey;
    var reValidChars = /\d/;
           
    var objInput;
    if (isMozilla)
     {
             objInput = objEvent.target;    
     }
     else
     {
            objInput = objEvent.srcElement;    
     }

     if (isIE)
     {
       iKeyCode = objEvent.keyCode;
     }
     else
     {
       iKeyCode = objEvent.which; 
     }
     	
    var bCtrlKeyPressed = (objEvent.ctlrKey)?objEvent.ctlrKey : objEvent.modifiers & 2 > 0;
        switch (iKeyCode)
        {
            case 8: //allow backspace
                return true;
            case 0: //allow delete and navigation arrow
                return true;
            case 118: //allow Ctrl+V
                if (bCtrlKeyPressed)
                    return true;
            case 120: //allow Ctrl+X
                if (bCtrlKeyPressed)
                    return true;
        }
     strKey = String.fromCharCode(iKeyCode);     

     if (!reValidChars.test(strKey))
     {       
       if (isIE)
            objEvent.returnValue=false;
           else
            return false;		
     }       

    if(objInput.value.length==3 || objInput.value.length==8)
     {
          objInput.value=objInput.value + '-';
     }

 }

//End - MOD – 800586101 Status Inquiry Rewrite

//Start - MOD - Changes for Multiple Clicks
/*
'******************************************************************************
'* Function Name    :   DisableMultipleClick
'* Function Desc    :   Disables the button for multiple clicks      
'******************************************************************************
*/
function DisableMultipleClick(buttonId, validationGrp)
{
    if (typeof(Page_ClientValidate) == 'function') 
        { 
            if (Page_ClientValidate(validationGrp) != false) 
            {                 
                var button = document.getElementById(buttonId);
                EnableDisableButton(button, false);
                return true;                
            }
            else
            {
                return false; 
            }
        }
     else
        {
            var button = document.getElementById(buttonId);
            EnableDisableButton(button, false);
            return true;
        }
}
/*******************************************************************************
/Function Name   :  EnableDisableLinkButton
/
/Description     :  This function is called to change the cursor for enabled and disabled buttons                          
/                   
/Input Parameter :  None
*******************************************************************************/
function EnableDisableLinkButton(buttonId1,buttonId2)
{
   var button1 = document.getElementById(buttonId1);
   var button2 = document.getElementById(buttonId2);
   if (button1.style.cursor != "text" || button2.style.cursor != "text")
    {
       button1.style.cursor = "text";
       button1.style.textDecoration = "none";
       button1.style.color = "#CCCCCC";
       
       button2.style.cursor = "text";
       button2.style.textDecoration = "none";
       button2.style.color = "#CCCCCC";
       
       return true;
    }
    else
    {            
        return false;
    } 
}
//End - MOD - Changes for Multiple Clicks

