//=========================================
//
//        Virtualize Framework
//
//        Leonardo Pessoa de Moura. 19/11/2007
//
//        Funções de expressões regulares com as mascaras de preenchimento de formulário
//
//
//==========================================

var glb_obj;        //Objeto atual em manipulação
var glb_fun;        //Função responsável pela mascara de tratamento


function mask(obj,fun)
{
    glb_obj=obj
    glb_fun=fun
    setTimeout("execmask()",1)
};

function execmask()
{
    glb_obj.value=glb_fun(glb_obj.value)
};


function mask_email(value)
{
    return value
};

function mask_number(value)
{
    return value.replace(/\D/g,"")
};

function mask_username(value)
{
    var regExp = /[<>@#$!?|'"&*: ;,+=%\/]/;
    return value.replace(regExp,"");         //Remove tudo o que não for Alfanumerico
};

function mask_password(value)
{
    return value;
};

function mask_password_confirm(value)
{
    return value;
};


function mask_telephone(value)
{
    value = value.replace(/\D/g,"")                        //Remove tudo o que não é dígito
    value = value.replace(/^(\d\d)(\d)/g,"($1) $2")        //Coloca parênteses em volta dos dois primeiros dígitos
    value = value.replace(/(\d{4})(\d)/,"$1-$2")        //Coloca hífen entre o quarto e o quinto dígitos

    if (value.length > 14) value = value.substr(0,14);

    return value
};

// Telefone sem DDD.
function mask_telephone2(value)
{
    value = value.replace(/\D/g,"")                        //Remove tudo o que não é dígito
    value = value.replace(/(\d{4})(\d)/,"$1-$2")        //Coloca hífen entre o quarto e o quinto dígitos

    if (value.length > 9) value = value.substr(0,9);

    return value
};

function mask_date(value)
{
    value = value.replace(/\D/g,"")                        //Remove tudo o que não é dígito
    value = value.replace(/(\d{2})(\d)/,"$1/$2")        //Coloca barra entre o segundo e o terceiro dígitos
    value = value.replace(/(\d{2})(\d)/,"$1/$2")        //Coloca barra entre o quarto e o quinto dígitos

    if (value.length > 10) value = value.substr(0,10);

    return value
};

function mask_datetime(value)
{
    //^\d{1,2}\/\d{1,2}\/\d{4}\s\d{1,2}\:\d{1,2}\:\d{1,2}$
    if (value.length > 19) value = value.substr(0,19);
    
    value = value.replace(/\D/g,"")                        //Remove tudo o que não é dígito
    value = value.replace(/(\d{2})(\d)/,"$1/$2")        //Coloca barra entre o segundo e o terceiro dígitos
    value = value.replace(/(\d{2})(\d)/,"$1/$2")        //Coloca barra entre o quarto e o quinto dígitos

    value = value.replace(/(\d{4})(\d)/,"$1 $2")        //Coloca espaço entre o ano e a hora
    value = value.replace(/(\s\d{2})(\d)/,"$1:$2")        //Coloca : entre a hora e o minuto
    value = value.replace(/(\:\d{2})(\d)/,"$1:$2")        //Coloca : entre o minuto e o segundo
    

    return value
};

function mask_time(value)
{
    //^\d{1,2}\/\d{1,2}\/\d{4}\s\d{1,2}\:\d{1,2}\:\d{1,2}$
    if (value.length > 19) value = value.substr(0,19);
    
    value = value.replace(/\D/g,"")                        //Remove tudo o que não é dígito
    value = value.replace(/(\d{2})(\d)/,"$1:$2")        //Coloca barra entre o segundo e o terceiro dígitos
    value = value.replace(/(\d{2})(\d)/,"$1:$2")        //Coloca barra entre o quarto e o quinto dígitos
    
	if (value.length > 8) value = value.substr(0,8);

    return value
};

function mask_cpf(value)
{
    value = value.replace(/\D/g,"")                                //Remove tudo o que não é dígito
    value = value.replace(/(\d{3})(\d)/,"$1.$2")            //Coloca um ponto entre o terceiro e o quarto dígitos
    value = value.replace(/(\d{3})(\d)/,"$1.$2")            //Coloca um ponto entre o terceiro e o quarto dígitos
    value = value.replace(/(\d{3})(\d{1,3})$/,"$1-$2")    //Coloca um hífen entre o terceiro e o quarto dígitos

    if (value.length > 14) value = value.substr(0,14);

    return value
};

function mask_cep(value)
{
    value = value.replace(/D/g,"")                             //Remove tudo o que não é dígito
    value = value.replace(/^(\d{5})(\d)/,"$1-$2")            //Esse é tão fácil que não merece explicações

    if (value.length > 9) value = value.substr(0,9);

    return value
};

function mask_cnpj(value)
{
    value = value.replace(/\D/g,"")                                             //Remove tudo o que não    é dígito     
    value = value.replace(/^(\d{2})(\d)/,"$1.$2")                        //Coloca ponto entre o segundo e o terceiro dígitos
    value = value.replace(/^(\d{2})\.(\d{3})(\d)/,"$1.$2.$3")        //Coloca ponto entre o quinto e o sexto dígitos
    value = value.replace(/\.(\d{3})(\d)/,".$1/$2")                        //Coloca uma barra entre o oitavo e o nono dígitos
    value = value.replace(/(\d{4})(\d)/,"$1-$2")                        //Coloca um hífen depois    do bloco de quatro dígitos
    
    if (value.length > 18) value = value.substr(0,18);
    return value
};

function mask_currency(value)
{
    if (value.length > 10) value = value.substr(0,10);
    
    value = value.replace(/\D/g,"")                   //Remove tudo o que não    é dígito
    value = value.replace(/^(\d{1,30})(\d{2})/,"$1,$2")//Coloca virgula nas casas decimais.
    
    value = value.replace(/^(\d{3})(\d{3})/,"$1.$2")   //Coloca ponto entre um digito seguido por tres digitos    
    value = value.replace(/^(\d{2})(\d{3})/,"$1.$2")   //Coloca ponto entre um digito seguido por tres digitos    
    value = value.replace(/^(\d{1})(\d{3})/,"$1.$2")   //Coloca ponto entre um digito seguido por tres digitos    

    return value
};

function changeBgColor(element, color)
{
    element.style.backgroundColor = color;
};