function mascara(o,f){
    v_obj=o
    v_fun=f
    setTimeout("execmascara()",1)
}

function execmascara(){
    v_obj.value=v_fun(v_obj.value)
}

function leech(v){
    v=v.replace(/o/gi,"0")
    v=v.replace(/i/gi,"1")
    v=v.replace(/z/gi,"2")
    v=v.replace(/e/gi,"3")
    v=v.replace(/a/gi,"4")
    v=v.replace(/s/gi,"5")
    v=v.replace(/t/gi,"7")
    return v
}

function soNumeros(v){
    return v.replace(/\D/g,"")
}

function moeda(v){
    v=v.replace(/\D/g,"")  //permite digitar apenas números
    v=v.replace(/[0-9]{12}/,"inválido")   //limita pra máximo 999.999.999,99
    v=v.replace(/(\d{1})(\d{8})$/,"$1.$2")  //coloca ponto antes dos últimos 8 digitos
    v=v.replace(/(\d{1})(\d{5})$/,"$1.$2")  //coloca ponto antes dos últimos 5 digitos
    v=v.replace(/(\d{1})(\d{1,2})$/,"$1,$2")        //coloca virgula antes dos últimos 2 digitos
    return v;
}


function telefone(v){
    v=v.replace(/\D/g,"")                 //Remove tudo o que n�o � d�gito
    v=v.replace(/^(\d\d)(\d)/g,"($1) $2") //Coloca par�nteses em volta dos dois primeiros d�gitos
    v=v.replace(/(\d{4})(\d)/,"$1-$2")    //Coloca h�fen entre o quarto e o quinto d�gitos
    return v
}

function cpf(v){
    v=v.replace(/\D/g,"")                    //Remove tudo o que n�o � d�gito
    v=v.replace(/(\d{3})(\d)/,"$1.$2")       //Coloca um ponto entre o terceiro e o quarto d�gitos
    v=v.replace(/(\d{3})(\d)/,"$1.$2")       //Coloca um ponto entre o terceiro e o quarto d�gitos
    //de novo (para o segundo bloco de n�meros)
    v=v.replace(/(\d{3})(\d{1,2})$/,"$1-$2") //Coloca um h�fen entre o terceiro e o quarto d�gitos
    return v
}

function cep(v){
    v=v.replace(/\D/g,"")                //Remove tudo o que n�o � d�gito
    v=v.replace(/^(\d{5})(\d)/,"$1-$2") //Esse � t�o f�cil que n�o merece explica��es
    return v
}

function cnpj(v){
    v=v.replace(/\D/g,"")                           //Remove tudo o que n�o � d�gito
    v=v.replace(/^(\d{2})(\d)/,"$1.$2")             //Coloca ponto entre o segundo e o terceiro d�gitos
    v=v.replace(/^(\d{2})\.(\d{3})(\d)/,"$1.$2.$3") //Coloca ponto entre o quinto e o sexto d�gitos
    v=v.replace(/\.(\d{3})(\d)/,".$1/$2")           //Coloca uma barra entre o oitavo e o nono d�gitos
    v=v.replace(/(\d{4})(\d)/,"$1-$2")              //Coloca um h�fen depois do bloco de quatro d�gitos
    return v
}

function romanos(v){
    v=v.toUpperCase()             //Mai�sculas
    v=v.replace(/[^IVXLCDM]/g,"") //Remove tudo o que n�o for I, V, X, L, C, D ou M
    //Essa � complicada! Copiei daqui: http://www.diveintopython.org/refactoring/refactoring.html
    while(v.replace(/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,"")!="")
        v=v.replace(/.$/,"")
    return v
}

function site(v){
    //Esse sem comentarios para que voc� entenda sozinho ;-)
    v=v.replace(/^http:\/\/?/,"")
    dominio=v
    caminho=""
    if(v.indexOf("/")>-1)
        dominio=v.split("/")[0]
    caminho=v.replace(/[^\/]*/,"")
    dominio=dominio.replace(/[^\w\.\+-:@]/g,"")
    caminho=caminho.replace(/[^\w\d\+-@:\?&=%\(\)\.]/g,"")
    caminho=caminho.replace(/([\?&])=/,"$1")
    if(caminho!="")dominio=dominio.replace(/\.+$/,"")
    v="http://"+dominio+caminho
    return v
}


/******************************************************************************/
function minChar(obj, min) {
    tam = obj.value.length * 1;
    if (tam < min) {
        alert("Senha deve ter no mínimo 4 caracteres")
        obj.focus();
        return false;
    } else {
        return true;
    }
}

function checkEmail(ema) {
    var reEmail = /^[\w-]+(\.[\w-]+)*@(([A-Za-z\d][A-Za-z\d-]{0,61}[A-Za-z\d]\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
    var deucerto = reEmail.test(ema.value);
    if (deucerto) {
        return true;
    } else {
        alert("Informe o e-mail corretamente!");
        ema.focus();
        ema.select();
        return false;
    }
}

function checkCPF(cpf) {
    var numeros, digitos, soma, i, resultado, digitos_iguais;
	
    var digitos_iguais = 1;
    if (cpf.length < 11){
        alert("CPF digitado incorretamente");
        return false;
    }
	
    if (cpf.length > 11){
        alert("CPF digitado incorretamente");
        return false;
    }
	
    for (i = 0; i < cpf.length - 1; i++){
        if (cpf.charAt(i) != cpf.charAt(i + 1)){
            digitos_iguais = 0;
            break;
        }
    }
	
    if (digitos_iguais == 1){
        numeros = cpf.substring(0,9);
        digitos = cpf.substring(9);
        soma = 0;
        for (i = 10; i > 1; i--)
            soma += numeros.charAt(10 - i) * i;
		
        resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
        alert(resultado);
		
        if (resultado != digitos.charAt(0))
            return false;
		
        numeros = cpf.substring(0,10);
        soma = 0;
		
        for (i = 11; i > 1; i--)
            soma += numeros.charAt(11 - i) * i;
		
        resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
		
        if (resultado != digitos.charAt(1))
            alert("Nao existe este cpf.");
        return false;
        return true;
    }
    else{
        return false;
        alert("Cpf nao existentes.");
    }
}

function checkForm(form) {
    var nroelem = form.elements.length;
    var achei = false;
    for (i=0; i<nroelem; i++) {
        elem = form.elements[i];
        if (elem.value == "") {
            alert("O campo "+elem.id.toUpperCase()+" está sem preechimento");
            achei = true;
            break;
        }
    }
    if (achei) {
        return false;
    } else {
        return true;
    }
}

/*********************************************************/

function completeDate(objtxt) {
    elem = objtxt.name;
    if (objtxt.value.length == 2) {
        objtxt.value += "/";
        document.forms[0].elem.value = objtxt.value;
    }
    if (objtxt.value.length == 5) {
        objtxt.value += "/";
        document.forms[0].elem.value = objtxt.value;
    }
}

/*********************************************************/

function validateForm(form) {
    nroelem = form.elements.length;
    for (i=0; i<nroelem; i++) {
        elem = form.elements[i];
        if (elem.type == "password" && elem.id != "") {
            //alert(elem.id+"("+elem.value+")");
            setTimeout(elem.id+"("+elem+")" ,1);
        }
    }
}

function testeSenha(obj) {
    if (obj.value.length < 4) {
        return false;
        alert("Senha deve ter no mínimo 4 caracteres")
        obj.focus();
    } else {
        return true;
    }
}

/**********************************************************/


//Função que envia os dados do form para um servlet. Envia também a ação (act)
function saveData(form, file, returnFile, param) {
    //pegar os dados do form com um loop
    //montar a lista de parâmetros com esse loop
    if(form!=null) {
        for(i=0; i<form.length; i++) {
            elem = form.elements[i];
            if (elem.name != "") {
                if(elem.type == 'checkbox'){
                    if(elem.checked==true) {
                        param += "&" + elem.name + "=" + elem.value;
                    }
                }
                else {
                    param += "&" + elem.name + "=" + elem.value;
                }
            }
        }
    }
    //alert(param);
    ok = getXml(file, "post", param);

    //se deu tudo certo, então faz o direcionamento
    if (ok && returnFile != null) {
        showText("dados", returnFile, "post", "os="+document.getElementById("os").value);
    }
    return ok;
}

/**********************************************************/