﻿// JScript File
var empAppEmail = 'ctl00_MainContentPlaceHolder_TabContainer1_TabPanel1_txtEmail'
var EmployeeEntryEmail = 'ctl00_MainContentPlaceHolder_wbcEmployeeEntry_txtEmail'

function checkIfBlank(ctrlArr)
    {          
        var x;
        var errorMessage=''
        var loopMaxCount = 0

        //if the param is not an array, then just loop thru once.
        if (ctrlArr.isType)
            {
                if (ctrlArr.isType=='array'){loopMaxCount = ctrlArr.length-1}
            }
        else
            {ctrlArr.isType=""}
            
        if (!ctrlArr.SubmitVal){ctrlArr.SubmitVal=""}            
                                 
        //--------------------------------Start of for loop-----------------------------------------------
        for (x=0;x<=loopMaxCount;x++)
            {
                if (ctrlArr.isType=='array')
                    {var ctrl = ctrlArr[x];}
                else 
                    {var ctrl = ctrlArr;}   
                                         
                var spnRequired=''
                
                if (!ctrl.id){ctrl.id = ctrl.name}
                
                //*************Change the ctrl's ID prefix to the control's "REQUIRED" span's names
                //If the control is a drop down list then, else change for textboxes
                if (ctrl.tagName=='SELECT')
                    {
                        if (ctrl.name=='ctl00$MainContentPlaceHolder$wbcEmployeeEntry$orgChooser$ctl00')
                            {spnRequired = 'ctl00_MainContentPlaceHolder_wbcEmployeeEntry_spnREQChooser';}
                        else
                            {spnRequired = ctrl.id.replace(/ddl/,"spnREQ");}
                    }
                else
                    {
                        spnRequired = ctrl.id.replace(/txt/,"spnREQ");
                        if(ctrlArr.SubmitVal=='Yes'){removeSpaces(ctrl);}
                    }
                //Email is not a required field, but still show its span tag if the email entered is invalid. don't show this in the alert pop-up
                if (ctrl.id==empAppEmail)
                    {
                        if ((validateEmail(ctrl.value)==false)&&(ctrl.value!=""))
                            {$get('ctl00_MainContentPlaceHolder_TabContainer1_TabPanel1_spnREQEmail').style.visibility="visible"}
                        else
                            {$get('ctl00_MainContentPlaceHolder_TabContainer1_TabPanel1_spnREQEmail').style.visibility="hidden"}
                        return false;
                    } 
                if ((ctrl.id==EmployeeEntryEmail)&&(ctrl.value!=""))
                    {
                        var txtEmail = $get('ctl00_MainContentPlaceHolder_wbcEmployeeEntry_spnREQEmail')
                        
                        if (!validateEmail(ctrl.value))
                            {
                                txtEmail.style.visibility="visible";
                                $get(spnRequired).innerHTML="Invalid Email"; 
                                errorMessage = errorMessage + " --" + ctrl.title + '\n';
                            }
                        else
                            {txtEmail.style.visibility="hidden";$get(spnRequired).innerHTML="REQUIRED"}
                            
                    }          
                else if((ctrl.value=='')||(ctrl.value==' ')||(ctrl.selectedIndex == 0))
                    {
                       
                        //If any of the required fields are empty, then get the name of the field (in the title/tooltip) and show a alert box
                        errorMessage = errorMessage + " --" + ctrl.title + '\n';
                     
                        //then show the "REQUIRED" span for the empty control.
                        $get(spnRequired).style.visibility="visible"
                        $get(spnRequired).innerHTML="REQUIRED"
                    }
                else
                    {
                        $get(spnRequired).style.visibility="hidden"
                        $get(spnRequired).innerHTML="REQUIRED"
                    }                
              
                 //if (ctrlArr.isType!='array'){break;}                
            }
        //--------------------------------End of for loop-----------------------------------------------
        return errorMessage                   

    }   
    
function Val(ctrl)
    {
        if (ctrl.skipVal!==null){if (ctrl.skipVal==1){return;}}
        removeSpaces(ctrl)

        try
            {
                if ((ctrl.id==requiredArr[0])||(ctrl.id==requiredArr[1])||(ctrl.id==requiredArr[2])||(ctrl.id==requiredArr[3])||(ctrl.id==requiredArr[4])||(ctrl.id==requiredArr[5])||(ctrl.id==requiredArr[6])||(ctrl.id==requiredArr[9])||(ctrl.id==requiredArr[10])||(ctrl.id==requiredArr[11])||(ctrl.id==requiredArr[12])||(ctrl.id==requiredArr[13])||(ctrl.id==requiredArr[14])||(ctrl.id==requiredArr[8])||(ctrl.id==requiredArr[7]))
                    {checkIfBlank(ctrl);}                    
            }
        catch(err)
            {checkIfBlank(ctrl);}
    } 
    
function validateEmail(elementValue)
    {
        var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/; return emailPattern.test(elementValue);
    } 
//function removeAllSpecialChars(ctrl)
//    {
//        var oldValue = ctrl.value
//        var newValue = oldValue.replace(/[`~\\|!@#\$%^&*()_+{}:"<>?/.,';\]\[=-]/g, '');
//        ctrl.value =  newValue
//    }
//function dateOnly(ctrl, e)
//    {
//        var keynum                             
//        if(e.keyCode) // IE
//            {keynum = e.keyCode;}
//        else if(e.which) // Netscape/Firefox/Opera
//            {keynum = e.which;}

//        if ((keynum==8)||(keynum>46)||e=='onblur')
//            {
//                var oldValue = ctrl.value
//                var newValue = oldValue.replace(/[A-Za-z`~\\|!@#\$%^&*()_+{}:"<>?.,';\]\[=-]/g, '');
//                ctrl.value =  newValue
//               
//                try
//                    {
//                        if ((ctrl.id==requiredArr[0])||(ctrl.id==requiredArr[1])||(ctrl.id==requiredArr[2])||(ctrl.id==requiredArr[3])||(ctrl.id==requiredArr[4])||(ctrl.id==requiredArr[5])||(ctrl.id==requiredArr[6]))
//                            {checkIfBlank(ctrl);}                    
//                    }
//                catch(err)
//                    {checkIfBlank(ctrl);}                                 
//            }
//        
//    }
function removeSomeSpecialChars(ctrl, e)
    {
        var keynum                             
        if(e.keyCode) // IE
            {keynum = e.keyCode;}
        else if(e.which) // Netscape/Firefox/Opera
            {keynum = e.which;}

//        if ((keynum==8)||(keynum>46)||e=='onblur'||e=='onchange')
//            {
                if (keynum==9){return;}
                
                
                var oldValue = ctrl.value

                var reg = /[`~\\|!#\$%^*+{}<>]/g
                var reg0 = new RegExp(reg);
                             
                if (!reg0.test(oldValue)){Val(ctrl);return false;}
            
                var newValue = oldValue.replace(reg, '');
                ctrl.value =  newValue  

                if ((e=='onblur')&&(ctrl.value=='')){return false;}

                Val(ctrl);
//                function Val(ctrl)
//                    {
//                        if (ctrl.skipVal){if (ctrl.skipVal==1){return;}}
//                        removeSpaces(ctrl)

//                        try
//                            {
//                                if ((ctrl.id==requiredArr[0])||(ctrl.id==requiredArr[1])||(ctrl.id==requiredArr[2])||(ctrl.id==requiredArr[3])||(ctrl.id==requiredArr[4])||(ctrl.id==requiredArr[5])||(ctrl.id==requiredArr[6])||(ctrl.id==requiredArr[9])||(ctrl.id==requiredArr[10])||(ctrl.id==requiredArr[11])||(ctrl.id==requiredArr[12])||(ctrl.id==requiredArr[13])||(ctrl.id==requiredArr[14])||(ctrl.id==requiredArr[8])||(ctrl.id==requiredArr[7]))
//                                    {checkIfBlank(ctrl);}                    
//                            }
//                        catch(err)
//                            {checkIfBlank(ctrl);}
//                    }

//            }
    } 
function numberAndLettersOnly(ctrl, e)
    {
        var keynum                             
        if(e.keyCode) // IE
            {keynum = e.keyCode;}
        else if(e.which) // Netscape/Firefox/Opera
            {keynum = e.which;}

//        if ((keynum==8)||(keynum>46)||e=='onblur'||e=='onchange')
//            {
                if (keynum==9){return;}
                
                
                var oldValue = ctrl.value

                var reg =/[`~\\|!@#\$%^&*()_+{}:"<>?.,';\]\[=-]/g
                var reg0 = new RegExp(reg);
                             
                if (!reg0.test(oldValue)){Val(ctrl);;return false;}
            
                var newValue = oldValue.replace(reg, '');
                ctrl.value =  newValue  

                if ((e=='onblur')&&(ctrl.value=='')){return false;}
                Val(ctrl);
//                function Val(ctrl)
//                    {
//                        if (ctrl.skipVal){if (ctrl.skipVal==1){return;}}
//                        removeSpaces(ctrl)

//                        try
//                            {
//                                if ((ctrl.id==requiredArr[0])||(ctrl.id==requiredArr[1])||(ctrl.id==requiredArr[2])||(ctrl.id==requiredArr[3])||(ctrl.id==requiredArr[4])||(ctrl.id==requiredArr[5])||(ctrl.id==requiredArr[6]))
//                                    {checkIfBlank(ctrl);}                    
//                            }
//                        catch(err)
//                            {checkIfBlank(ctrl);}
//                    }

//            }
    } 
function onlyNumbers(ctrl, e)
    {
            
        var keynum
        var isCtrl
                                 
        if(e.keyCode) // IE
            {
                keynum = e.keyCode;
            }
        else if(e.which) // Netscape/Firefox/Opera
            {
                keynum = e.which;
            }

        isCtrl = String.fromCharCode(keynum);

        //if e is 'onblur' that means allow the onblur event to fire after the user leaves the textbox.
        //this wasn't working because the onblur click was undefined as a keycode
//        if ((keynum==8)||(keynum>46)||e=='onblur')
//            {
                if (keynum==9){return;}
                //if (ctrl.skipVal){if (ctrl.skipVal==1){return;}}
                
                var oldValue = ctrl.value
                
                var reg = /[A-Za-z`~\\|!@#\$%^&*() _+{}:"<>?/.,';\]\[=-]/g
                var reg0 = new RegExp(reg);
                             
                if (!reg0.test(oldValue)){Val(ctrl);return false;}
           
                var newValue = oldValue.replace(reg, '');
                ctrl.value =  newValue       
               
                if ((e=='onblur')&&(ctrl.value=='')){return;}    
                Val(ctrl);
//                function Val()
//                    {
//                        if (ctrl.skipVal){if (ctrl.skipVal==1){return;}}
//                        removeSpaces(ctrl)
//                        
//                        try
//                            {
//                                if ((ctrl.id==requiredArr[0])||(ctrl.id==requiredArr[1])||(ctrl.id==requiredArr[2])||(ctrl.id==requiredArr[3])||(ctrl.id==requiredArr[4])||(ctrl.id==requiredArr[5])||(ctrl.id==requiredArr[6]))
//                                    {checkIfBlank(ctrl);}                    
//                            }
//                        catch(err)
//                            {checkIfBlank(ctrl);}
//                    }

        
//            }

    }
function onlyLetters(ctrl)
    {
        var oldValue = ctrl.value
        var newValue = oldValue.replace(/[0-9`~\\|!@#\$%^&*() _+{}:"<>?/.,';\]\[=-]/g, '');
        ctrl.value =  newValue
    } 
function removeSpaces(ctrl)
    {
    
        var reg = /\s{2,}/
        var reg0 = new RegExp(reg);
                
          var oldValue = ctrl.value
        //var newValue = 
          if (reg0.test(oldValue)){ctrl.value =  $.trim(ctrl.value)}
          
    }  
function dateFormat(ctrl, e)
    {
        var oldValue = ctrl.value
        var g = /^([1-9]|(0[1-9])|([1-2][0-9])|3[0-1])\/([1-9]|(0[1-9])|(1[0-2]))\/[0-9]{4}$/
        alert(g.test(oldValue))
        //var newValue = oldValue.test(g)//replace(/[A-Za-z`~\\|!@#\$-%^&*() _+{}:"<>?.,';\]\[=]/g, '');
        //ctrl.value =  newValue
    }
function Counter(ctrlID,limit)
    {
        var CounterID = ctrlID.replace(/txt/,"spnCntr")
        
        //CounterID = CounterID.substring(53)
        var Counter = $get(CounterID);
        
        if (Counter==null){return}
        
        var txtBox = $get(ctrlID);
        
        if(txtBox.value.length>limit)
            {txtBox.value = txtBox.value.substring(0,limit)}//Counter.innerHTML = "max. <font color='red'>"+txtBox.length+"</font>/"+limit+" characters";}
        else
            {Counter.innerHTML = 'max. '+txtBox.value.length+'/'+limit+' characters';}
            
        if (txtBox=="")
            {Counter.innerHTML='max. 0/'+limit+' characters'};
    }
function checkFieldSize(ctrl, size, AddBreak)
    {
        if (ctrl==null){return}
        
        var spnID = ctrl.id.replace(/txt/,'spnREQ')
        var spn = $get(spnID)

        if ((ctrl.value.length<size)&&(ctrl.value!=''))
            {
                if (AddBreak==1)
                    {spn.innerHTML="*<br/><font style='font-size:8pt;'>Invalid Format</font>"}
                else if (AddBreak==0)
                    {spn.innerHTML="<font style='font-size:8pt;'>Invalid Format</font>"}
                else if (AddBreak==2)
                    {spn.innerHTML="Invalid"}
                else if (AddBreak==3)
                    {spn.innerHTML="Invalid "+ctrl.title}

                spn.style.visibility='visible'
                
                return " --" + ctrl.title + '\n';
            }
        else
            {
                //for employment entry ssn-----------------
                if ((spn.innerHTML=='REQUIRED')&&(spn.style.visibility=='visible'))
                    {spn.style.visibility='visible'; return ''}
                //---------------------------------
                    
                spn.style.visibility='hidden'
                               
                try
                    {
                        if ((ctrl.id==requiredArr[2])||(ctrl.id==requiredArr[5]))
                            {spn.innerHTML='REQUIRED'}
                        else
                            {spn.innerHTML='*'}  
                            
                        return '';                     
                    }
                catch(err)
                    {spn.innerHTML='*';}                    

                return ''
            }            

    }    
//function calendarFormatEffect(ctrl, action)
//    {
//        if (action=='hide')
//            {
//                if (ctrl.value=='MM/DD/YYYY')
//                    {ctrl.value=''; }//ctrl.style.color='black'; }
//            }
//        else if (action=='show')
//            {
//                if (ctrl.value=='')
//                    {ctrl.value='MM/DD/YYYY'; }//ctrl.style.color='gray'}
//            }
//    }