function mask(o,f){
    v_obj=o;
    v_fun=f;
    setTimeout("execMask()",1);
}

function execMask(){
    v_obj.value=v_fun(v_obj.value);
}

function phone(v){
    v=v.replace(/\D/g,"");
    v=v.replace(/^(\d\d)(\d)/g,"($1) $2");
    v=v.replace(/(\d{4})(\d)/,"$1-$2");
    v=v.replace(/(\d{4})(\d)/,"$1-$2");
    return v;
}

function date(v){
    v=v.replace(/\D/g,"");
    v=v.replace(/(\d{2})(\d)/,"$1/$2");
    v=v.replace(/(\d{2})(\d)/,"$1/$2");
    v=v.replace(/^((0[1-9]|[12]\d)\-(0[1-9]|1[0-2])|30\-(0[13-9]|1[0-2])|31\-(0[13578]|1[02]))\-\d{4}$/);
    if(v.length>10) {
        v=v.toString().substring(0, 10);
    }
    return v;
}

function hora(v){
    v=v.replace(/\D/g,"");
    v=v.replace(/(\d{2})(\d{2})/,"$1:$2");
    return v
}

function cpf(v){
    v=v.replace(/\D/g,"");
    v=v.replace(/(\d{3})(\d)/,"$1.$2");
    v=v.replace(/(\d{3})(\d)/,"$1.$2");
    v=v.replace(/(\d{3})(\d{1,2})$/,"$1-$2");
    return v;
}

function cep(v){
    v=v.replace(/\D/g,"");
    v=v.replace(/^(\d{5})(\d)/,"$1-$2");
    return v;
}

function cnpj(v){
    v=v.replace(/\D/g,"");
    v=v.replace(/^(\d{2})(\d)/,"$1.$2");
    v=v.replace(/^(\d{2})\.(\d{3})(\d)/,"$1.$2.$3");
    v=v.replace(/\.(\d{3})(\d)/,".$1/$2");
    v=v.replace(/(\d{4})(\d)/,"$1-$2");
    return v;
}

function money(v) {
    v=v.replace(/\D/g,"");
    v=v.replace(/[0-9]{12}/,"");   //limita pra máximo 999.999.999,99
    v=v.replace(/(\d{1})(\d{8})$/,"$1.$2");
    v=v.replace(/(\d{1})(\d{5})$/,"$1.$2");
    v=v.replace(/(\d{1})(\d{1,2})$/,"$1,$2");
    return v;
}
