//Inicio Funcoes de expressoes Regulares
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 telefoneMascara(v){
    v=v.replace(/\D/g,"")
    v=v.replace(/^(\d\d)(\d)/g,"($1) $2")
    v=v.replace(/(\d{4})(\d)/,"$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 cepMascara(v){
 //   v=v.replace(/\D/g,"")
//    v=v.replace(/^(\d{5})(\d)/,"$1-$2")
//    return v
    v=v.replace(/\D/g,"")
    v=v.replace(/(\d{5})(\d)/,"$1-$2")
    return v
}

function cnpjMascara(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 dataMascara(v){
    v=v.replace(/\D/g,"")
    v=v.replace(/(\d{2})(\d)/,"$1/$2")
    v=v.replace(/(\d{2})(\d)/,"$1/$2")

    return v
}


function romanos(v){
    v=v.toUpperCase()
    v=v.replace(/[^IVXLCDM]/g,"")
    //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){

    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 removeCaractresSpeciais(texto){
  v=texto.value;
  v=v.replace(/([^A-Za-z0-9 .,!?:...%@\n])/g, "");
  texto.value = v;
}

function formataMoedaIngles(texto){
                v = texto.value;
                v=v.replace(/\D/g,"")
        v=v.replace(/[0-9]{12}/,"invÃ¡lido")
        v=v.replace(/(\d{1})(\d{1,2})$/,"$1.$2")
                texto.value = v;
}


//// expressoes de Validacao

var reDigits = /^\d+$/;

function doDigits(pStr)
{
	if (reDigits.test(pStr)) {
		alert(pStr + " contÃ©m apenas dÃ­gitos.");
	} else if (pStr != null && pStr != "") {
		alert(pStr + " NÃƒO contÃ©m apenas dÃ­gitos.");
	}
}

var reDecimalPt = /^[+-]?((\d+|\d{1,3}(\.\d{3})+)(\,\d*)?|\,\d+)$/;
var reDecimalEn = /^[+-]?((\d+|\d{1,3}(\,\d{3})+)(\.\d*)?|\.\d+)$/;
var reDecimal = reDecimalPt;

function doDecimal(pStr, pLang)
{
	charDec = ( pLang != "En"? ",": "." );
	eval("reDecimal = reDecimal" + pLang);
	if (reDecimal.test(pStr)) {
		pos = pStr.indexOf(charDec);
		decs = pos == -1? 0: pStr.length - pos - 1;
		alert(pStr + " Ã© um float vÃ¡lido (" + pLang + ") com " + decs + " decimais.");
	} else if (pStr != null && pStr != "") {
		alert(pStr + " NÃƒO Ã© um float vÃ¡lido.");
	}
} // doDecimal

var reMoeda = /^\d{1,3}(\.\d{3})*\,\d{2}$/;

function doMoeda(pStr)
{
	if (reMoeda.test(pStr)) {
		alert(pStr + " Ã© um valor financeiro vÃ¡lido.");
	} else if (pStr != null && pStr != "") {
		alert(pStr + " NÃƒO Ã© um valor financeiro vÃ¡lido.");
	}
}

var reDate1 = /^\d{1,2}\/\d{1,2}\/\d{1,4}$/;
var reDate2 = /^[0-3]?\d\/[01]?\d\/(\d{2}|\d{4})$/;
var reDate3 = /^(0?[1-9]|[12]\d|3[01])\/(0?[1-9]|1[0-2])\/(19|20)?\d{2}$/;
var reDate4 = /^((0?[1-9]|[12]\d)\/(0?[1-9]|1[0-2])|30\/(0?[13-9]|1[0-2])|31\/(0?[13578]|1[02]))\/(19|20)?\d{2}$/;
var reDate5 = /^((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}$/;
var reDate = reDate4;

function doDate(pStr, pFmt)
{
    retorno = true;
	eval("reDate = reDate" + pFmt);
	if (reDate.test(pStr)) {

	} else if (pStr != null && pStr != "") {
		alert(pStr + " Não é uma Data Válida!");
                
                /*document.forms[0].data_nascimento.focus();*/
                /*document.forms.getElementById(idCampo).focus();*/
                retorno = false;
	}
        return retorno;
} // doDate

var reTime1 = /^\d{2}:\d{2}$/;
var reTime2 = /^([0-1]\d|2[0-3]):[0-5]\d$/;
var reTime3 = /^(0[1-9]|1[0-2]):[0-5]\d$/;
var reTime4 = /^\d+:[0-5]\d:[0-5]\d$/;
var reTime5 = /^\d+:[0-5]\d:[0-5]\.\d{3}\d$/;

function doTime(pStr, pFmt)
{
	eval("reTime = reTime" + pFmt);
	if (reTime.test(pStr)) {
		alert(pStr + " Ã© um horÃ¡rio/tempo vÃ¡lido.");
	} else if (pStr != null && pStr != "") {
		alert(pStr + " NÃƒO Ã© um horÃ¡rio/tempo vÃ¡lido.");
	}
} // doTime

var reEmail1 = /^[\w!#$%&'*+\/=?^`{|}~-]+(\.[\w!#$%&'*+\/=?^`{|}~-]+)*@(([\w-]+\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
var reEmail2 = /^[\w-]+(\.[\w-]+)*@(([\w-]{2,63}\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
var reEmail3 = /^[\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 reEmail = reEmail3;

function doEmail(pStr, pFmt)
{
	eval("reEmail = reEmail" + pFmt);
	if (reEmail.test(pStr)) {
		alert(pStr + " Ã© um endereÃ§o de e-mail vÃ¡lido.");
	} else if (pStr != null && pStr != "") {
		alert(pStr + " NÃƒO Ã© um endereÃ§o de e-mail vÃ¡lido.");
	}
} // doEmail


//// Fim expressoes de validacao

//Fim Funcoes de expressoes Regulares

// Funcoes Diversas
 function selecionaCampo(field){
 field.select();
 }
 
 function validaVazio(field, help){
     if(field.value.length==0){
         if(help != null)
             help.innerHTML = " * ";
              return false;
     }else{
             help.innerHTML = "";
              return false;
     }
 }

 function limparFields(form){
  var objs = form;

 for( var j=0 ; j < objs.length ; ++j ){
   if(objs[j].type=="text" || objs[j].nodeName=="TEXTAREA" || objs[j].type=="password"){
    objs[j].value="";
   }
 }
 }

 function excluirRegistro(janela, id_campo , id, registro){
    if(((id=="")||(registro==""))){
     alert('O Registro ainda nÃ£o foi Salvo! Use o BotÃ£o CANCELAR para Limpar os Campos!');
    }else{
    if(confirm('Deseja excluir o registro: '+registro+'?'))
     document.location.href=janela+".php?"+id_campo+"="+parseInt(id);
    }
}


 function validarMelhoresPraticasRelatorio(form){
     var retorno = true;

     if(form.dataPara.value==""){
     retorno = false;
     alert("Favor preencher o campo!");
     form.dataPara.focus();
     }

     if(form.dataDe.value==""){
     retorno = false;
     alert("Favor preencher o campo!");
     form.dataDe.focus();
     }
 
     if(doDate(form.dataDe.value,5,form.dataDe)==false){
     retorno = false;
     form.dataDe.focus();
     }

     if(doDate(form.dataPara.value,5,form.dataPara)==false){
     retorno = false;
     form.dataPara.focus();
     
     }

     return retorno;
    }

// Fim Funcoes Diversas

//////////// determinar a quantidade de caracteres no textArea \\\\\\\\\\\\\
function ismaxlength(obj){
var mlength=obj.getAttribute? parseInt(obj.getAttribute("maxlength")) : ""
if (obj.getAttribute && obj.value.length>mlength)
obj.value=obj.value.substring(0,mlength)
}
//////////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

function doDateteste(pStr)
{
    retorno = true;
	eval("reDate = reDate");
	if (reDate.test(pStr)) {

	} else if (pStr != null && pStr != "") {
		alert(pStr + " Não é uma Data Válida!");
                
                /*document.forms[0].data_nascimento.focus();*/
                /*document.forms.getElementById(idCampo).focus();*/
                retorno = false;
	}
        return retorno;
} // doDate

function teste(){
    alert('sssssssss');
}
