
function validate_browser(){
    var MSIEIndex = userAgent.indexOf('MSIE');
    return ((isMSIE) && (userAgent.substring(MSIEIndex + 5,MSIEIndex + 6)>=6));
}

function validate_email(str,text){
    if (str!=''){
        if (str.match(/^[\w\.\-]+@[\w\.\-]+\.[\w]{2,4}$/)!=null)
            return true;
        else{
        if (text!='') alert(text);
        return false;
        }
    }
    return true;
}

function validate_complete(str,text){
    if (str!='') return true;
    else {
        if (text!='') alert(text);
        return false;
    }
}

function validate_age(str,text){
    today=new Date();
    age=str.split('/');
    if  ( ((today.getFullYear()-age[2])>18) ||
            ( ((today.getFullYear()-age[2])==18) && ((today.getMonth()+1)>age[0]) ) ||
            ( ((today.getFullYear()-age[2])==18) && ((today.getMonth()+1)==age[0]) && (today.getDate()>=age[1]) )
         ) return true;
    else {
        if (text!='') alert(text);
        return false;
    }

}

function allow_arrows(e){
    if (
        (e.keyCode==8) ||
        (e.keyCode==46) ||
        (e.keyCode==37) ||
        (e.keyCode==39)
        )
            return true;
     else return false;
}

function allow_numbers(e) {
    var keyChar = String.fromCharCode(e.keyCode);
         if ((keyChar.match(/^\d$/)!=null) ||
            (allow_arrows(e)) ||
            (e.keyCode==96) ||
            (e.keyCode==97) ||
            (e.keyCode==98) ||
            (e.keyCode==99) ||
            (e.keyCode==100) ||
            (e.keyCode==101) ||
            (e.keyCode==102) ||
            (e.keyCode==103) ||
            (e.keyCode==104) ||
            (e.keyCode==105)
        )
            return true;
    else  return false;
}

function allow_1_plus_6(e) {
    var keyChar = String.fromCharCode(e.keyCode);  
     if ((keyChar.match(/^\d$/)!=null) ||
            (allow_arrows(e)) ||
            (e.keyCode==97) ||
            (e.keyCode==98) ||
            (e.keyCode==99) ||
            (e.keyCode==100) ||
            (e.keyCode==101) ||
            (e.keyCode==102) ||
            (e.keyCode==187)  ||  // +
            (e.keyCode==9)  // Tab
        )
            return true;
    else  return false;
}

function allow_ssn(e){
   if (
        allow_numbers(e) ||
        (e.keyCode==189)
   )
        return true;
   else return false;
}

function allow_dob(e){
   if (
        allow_numbers(e) ||
        (e.keyCode==190) ||
        (e.keyCode==191) ||
        (e.keyCode==111)
   )
        return true;
   else return false;
}

function allow_phone(e){
   if (
        allow_numbers(e) ||
        (e.keyCode==189) ||
        (e.keyCode==32)
   )
        return true;
   else return false;
}

function validate_ssn(str,text){
     if (str!='...-..-....'){
        if (str.match(/^\d{3}-?\d{2}-?\d{4}$/)!=null)
            return true;
        else{
        if (text!='') alert(text);
        return false;
        }
    }
    return true;
}

function mask_dob(str){
    points='000000000000000000000000';
    return str.replace(/^(\d{1,2})[\/\.]?(\d{1,2})[\/\.]?(\d{1,4})$/,
            function($0,$1,$2,$3){
                return points.substr(0,(2-$1.length))+(($1!=0)?$1:'')+'/'+points.substr(0,(2-$2.length))+(($2!=0)?$2:'')+'/'+(($3.length==1)?'200'+$3:($3.length==2)?'20'+$3:($3.length==3)?'2'+$3:($3!='0000')?$3:'');
                }
            );
}

function validate_dob(str,text){
    if (str!=''){
      if (str.match(/^\d{2}\/\d{2}\/\d{4}$/)!=null)
            return true;
        else{
        if (text!='') alert(text);
        return false;
        }
    }
    return true;
}


function validate_homephone(str,text){
   if (str!='(...) ...-....'){
        if (str.match(/^\(?\d{3}\)? ?\d{3}-?\d{4}$/)!=null)
            return true;
        else{
        if (text!='') alert(text);
        return false;
        }
    }
    return true;
}

function validate_workphone(str,text){
   if (str!='(...) ...-.... Ext. ......'){
        if (str.match(/^\(?\d{3}\)? ?\d{3}-?\d{4} ?(ext\.)? ?[\d\.]{0,6}$/gi)!=null)
            return true;
        else{
        if (text!='') alert(text);
        return false;
        }
    }
    return true;
}


function mask_ssn(str){
    points='.........................';
    return str.replace(/^([\d\.]{0,3})-?([\d\.]{0,2})-?([\d\.]{0,4})$/,
            function($0,$1,$2,$3){
                return $1+points.substr(0,(3-$1.length))+'-'+$2+points.substr(0,(2-$2.length))+'-'+$3+points.substr(0,(4-$3.length));
                }
            );
}

function mask_homephone(str) {
    points='.........................';
    return str.replace(/^\(?([\d\.]{0,3})\)? ?([\d\.]{0,3})-?([\d\.]{0,4})$/,
            function($0,$1,$2,$3){
                return '('+$1+points.substr(0,(3-$1.length))+') '+$2+points.substr(0,(3-$2.length))+'-'+$3+points.substr(0,(4-$3.length));
                }
            );

}

function unmask_homephone(str){
    if (str!='(...) ...-....')
      return str.replace(/^\((\d{3})\) (\d{3})-(\d{4})$/,"$1$2$3")
     else
       return '';
}



function mask_workphone(str) {
    points='.........................';
    return str.replace(/^\(?([\d\.]{0,3})\)? ?([\d\.]{0,3})-?([\d\.]{0,4}) ?e?x?t?\.? ?([\d\.]{0,6})$/i,
            function($0,$1,$2,$3,$4){
                return '('+$1+points.substr(0,(3-$1.length))+') '+$2+points.substr(0,(3-$2.length))+'-'+$3+points.substr(0,(4-$3.length))+' Ext. '+$4+points.substr(0,(6-$4.length));
                }
            );

}

function unmask_workphone(str){
   if (str!='(...) ...-.... Ext. ......')
      return str.replace(/^\((\d{3})\) (\d{3})-(\d{4}) Ext\. (\d{0,6})\.*$/,"$1$2$3$4")
     else
       return '';
}

function unmask_ssn(str){
    if (str!='...-..-....')
       return str.replace(/^(\d{3})-(\d{2})-(\d{4})$/,"$1$2$3");
    else
        return '';

}

function validate_zip(str,text){
     if (str!='.....'){
        if (str.match(/^\d{5}$/)!=null)
            return true;
        else{
        if (text!='') alert(text);
        return false;
        }
     }
    return true;
}

function mask_zip(str){
    points='.........................';
    return str.replace(/^([\d\.]{0,5})$/,
            function($0,$1){
                return $1+points.substr(0,(5-$1.length));
                }
            );
}

function unmask_zip(str){
    if (str!='.....')
       return str.replace(/^(\d{5})$/,"$1");
    else
        return '';
}
