function isMail(mailField){
  strMail = mailField.value;
  var re = new RegExp;
  re = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
  var arr = re.exec(strMail);
  if (arr == null)
    return(false);
  else
    return(true);
}

function isMail2(mailField){
  strMail = mailField;
  var re = new RegExp;
  re = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
  var arr = re.exec(strMail);
  if (arr == null)
    return(false);
  else
    return(true);
}

function minLen(txtField, minVal){
  strExp = txtField.value;
  l = strExp.length;
  if (l < minVal)
    return(true);
  else
    return(false);
}

function maxLen(txtField, maxVal){
  strExp = txtField.value;
  l = strExp.length;
  if (l > maxVal)
    return(true);
  else
    return(false);
}

function igualLen(txtField, igualVal){
  strExp = txtField.value;
  l = strExp.length;
  if (l = igualVal)
    return(true);
  else
    return(false);
}


function isBlank(txtField){
  if (txtField.value)
    return (false);
  else
    return(true);
}

function isSelectedZero(txtField){
  selected = txtField.selectedIndex;
  if (selected == 0)
    return(true);
  else
    return(false);
}

function isNumber(txtField){
  numExp = txtField.value;
  if (isNaN(numExp) || (numExp.length == 0))
    return (false);
  else
    return(true);
}

function isCPF(txtField){ 

  var i; 
  s = txtField.value;  
  var c = s.substr(0,9); 
  var dv = s.substr(9,2); 
  var d1 = 0; 
  
  for (i = 0; i < 9; i++){ 
    d1 += c.charAt(i)*(10-i); 
  } 
  
  if (d1 == 0) return false;   
  
  d1 = 11 - (d1 % 11); 
  
  if (d1 > 9) d1 = 0; 
  
  if (dv.charAt(0) != d1) return false; 
  
  d1 *= 2; 
  
  for (i = 0; i < 9; i++){ 
    d1 += c.charAt(i)*(11-i);   
  } 
  
  d1 = 11 - (d1 % 11); 
  
  if (d1 > 9) d1 = 0; 
  
  if (dv.charAt(1) != d1) return false; 
  
  return true; 
  
}

function validaCNPJ(txtField) {
  CNPJ = document.forms1.cnpj.value;
  alert (CNPJ); 
  alert (document.forms1.cnpj.value); 
  alert (txtField); 
  erro = new String;
  if (CNPJ.length < 18) 
    erro += "E' necessarios preencher corretamente o numero do CNPJ! \n\n";
  if ((CNPJ.charAt(2) != ".") || (CNPJ.charAt(6) != ".") || (CNPJ.charAt(10) != "/") || (CNPJ.charAt(15) != "-"))
  {
    if (erro.length == 0) 
      erro += "E' necessarios preencher corretamente o numero do CNPJ! \n\n";
  }
  
  //substituir os caracteres que nao sao numeros
  
  if(document.layers && parseInt(navigator.appVersion) == 4)
  {
    x = CNPJ.substring(0,2);
    x += CNPJ.substring(3,6);
    x += CNPJ.substring(7,10);
    x += CNPJ.substring(11,15);
    x += CNPJ.substring(16,18);
    CNPJ = x; 
  }
  else 
  {
    CNPJ = CNPJ.replace(".","");
    CNPJ = CNPJ.replace(".","");
    CNPJ = CNPJ.replace("-","");
    CNPJ = CNPJ.replace("/","");
  }
  var nonNumbers = /\D/;
  if (nonNumbers.test(CNPJ))
    erro += "A verificacao de CNPJ suporta apenas numeros! \n\n"; 
  var a = [];
  var b = new Number;
  var c = [6,5,4,3,2,9,8,7,6,5,4,3,2];
  for (i=0; i<12; i++)
  {
    a[i] = CNPJ.charAt(i);
    b += a[i] * c[i+1];
  }
  if ((x = b % 11) < 2)
  {
    a[12] = 0
  }
  else
  {
    a[12] = 11-x
  }
  b = 0;
  for (y=0; y<13; y++) 
  {
    b += (a[y] * c[y]); 
  }
  if ((x = b % 11) < 2)
  {
    a[13] = 0;
  }
  else
  {
    a[13] = 11-x;
  }
  if ((CNPJ.charAt(12) != a[12]) || (CNPJ.charAt(13) != a[13]))
  {
    erro +="Digito verificador com problema!";
  }
  if (erro.length > 0)
  {
    //alert(erro);
    return false;
  }
  return true;
}




function mascara_data(dt)
{  
  var mydata = '';  
  mydata = mydata + dt;  
  if (mydata.length == 2)
  {  
    mydata = mydata + "/";  
    document.form.dt_pag.value = mydata;  
  }  
  if (mydata.length == 5)
  {  
    mydata = mydata + "/";  
    document.form.dt_pag.value = mydata;  
  }  
  if (mydata.length == 10)
  {  
    verifica_data();  
  }  
}  
            
function verifica_data () 
{

  dia = (document.form.dt_pag.value.substring(0,2));  
  mes = (document.form.dt_pag.value.substring(3,5));  
  ano = (document.form.dt_pag.value.substring(6,10));  

  situacao = "";  
  // verifica o dia valido para cada mes  
  if ((dia < 01)||(dia < 01 || dia > 30) && (  mes == 04 || mes == 06 || mes == 09 || mes == 11 ) || dia > 31) {  
    situacao = "falsa";  
  }  

  // verifica se o mes e valido  
  if (mes < 01 || mes > 12 ) {  
    situacao = "falsa";  
  }  

  // verifica se e ano bissexto  
  if (mes == 2 && ( dia < 01 || dia > 29 || ( dia > 28 && (parseInt(ano / 4) != ano / 4)))) {  
    situacao = "falsa";  
  }  
     
  if (document.form.dt_pag.value == "") {  
    situacao = "falsa";  
  }  
  
  if (situacao == "falsa") {  
    alert("Data inválida!");  
    document.form.dt_pag.focus();  
  }  
} 

function mascara_data_enq(dt)
{  
  var mydata = '';  
  mydata = mydata + dt;  
  if (mydata.length == 2)
  {  
    mydata = mydata + "/";  
    document.form1.datafim.value = mydata;  
  }  
  if (mydata.length == 5)
  {  
    mydata = mydata + "/";  
    document.form1.datafim.value = mydata;  
  }  
  if (mydata.length == 10)
  {  
    verifica_data_enq();  
  }  
}  
            
function verifica_data_enq() 
{

  dia = (document.form1.datafim.value.substring(0,2));  
  mes = (document.form1.datafim.value.substring(3,5));  
  ano = (document.form1.datafim.value.substring(6,10));  

  situacao = "";  
  // verifica o dia valido para cada mes  
  if ((dia < 01)||(dia < 01 || dia > 30) && (  mes == 04 || mes == 06 || mes == 09 || mes == 11 ) || dia > 31) {  
    situacao = "falsa";  
  }  

  // verifica se o mes e valido  
  if (mes < 01 || mes > 12 ) {  
    situacao = "falsa";  
  }  

  // verifica se e ano bissexto  
  if (mes == 2 && ( dia < 01 || dia > 29 || ( dia > 28 && (parseInt(ano / 4) != ano / 4)))) {  
    situacao = "falsa";  
  }  
     
  if (document.form1.datafim.value == "") {  
    situacao = "falsa";  
  }  
  
  if (situacao == "falsa") {  
    alert("Data inválida!");  
    document.form1.datafim.focus();  
  }  
} 

function mascara_data_not(dt)
{  
  var mydata = '';  
  mydata = mydata + dt;  
  if (mydata.length == 2)
  {  
    mydata = mydata + "/";  
    document.form.datainidivulgacao.value = mydata;  
  }  
  if (mydata.length == 5)
  {  
    mydata = mydata + "/";  
    document.form.datainidivulgacao.value = mydata;  
  }  
  if (mydata.length == 10)
  {  
    verifica_data_not();  
  }  
}  
            
function verifica_data_not() 
{

  dia = (document.form.datainidivulgacao.value.substring(0,2));  
  mes = (document.form.datainidivulgacao.value.substring(3,5));  
  ano = (document.form.datainidivulgacao.value.substring(6,10));  

  situacao = "";  
  // verifica o dia valido para cada mes  
  if ((dia < 01)||(dia < 01 || dia > 30) && (  mes == 04 || mes == 06 || mes == 09 || mes == 11 ) || dia > 31) {  
    situacao = "falsa";  
  }  

  // verifica se o mes e valido  
  if (mes < 01 || mes > 12 ) {  
    situacao = "falsa";  
  }  

  // verifica se e ano bissexto  
  if (mes == 2 && ( dia < 01 || dia > 29 || ( dia > 28 && (parseInt(ano / 4) != ano / 4)))) {  
    situacao = "falsa";  
  }  
     
  if (document.form.datainidivulgacao.value == "") {  
    situacao = "falsa";  
  }  
  
  if (situacao == "falsa") {  
    alert("Data inválida!");  
    document.form.datainidivulgacao.focus();  
  }  
}  

function mascara_data_not1(dt)
{  
  var mydata = '';  
  mydata = mydata + dt;  
  if (mydata.length == 2)
  {  
    mydata = mydata + "/";  
    document.form.datafimdivulgacao.value = mydata;  
  }  
  if (mydata.length == 5)
  {  
    mydata = mydata + "/";  
    document.form.datafimdivulgacao.value = mydata;  
  }  
  if (mydata.length == 10)
  {  
    verifica_data_not1();  
  }  
}  
            
function verifica_data_not1() 
{

  dia = (document.form.datafimdivulgacao.value.substring(0,2));  
  mes = (document.form.datafimdivulgacao.value.substring(3,5));  
  ano = (document.form.datafimdivulgacao.value.substring(6,10));  

  situacao = "";  
  // verifica o dia valido para cada mes  
  if ((dia < 01)||(dia < 01 || dia > 30) && (  mes == 04 || mes == 06 || mes == 09 || mes == 11 ) || dia > 31) {  
    situacao = "falsa";  
  }  

  // verifica se o mes e valido  
  if (mes < 01 || mes > 12 ) {  
    situacao = "falsa";  
  }  

  // verifica se e ano bissexto  
  if (mes == 2 && ( dia < 01 || dia > 29 || ( dia > 28 && (parseInt(ano / 4) != ano / 4)))) {  
    situacao = "falsa";  
  }  
     
  if (document.form.datafimdivulgacao.value == "") {  
    situacao = "falsa";  
  }  
  
  if (situacao == "falsa") {  
    alert("Data inválida!");  
    document.form.datafimdivulgacao.focus();  
  }  
}  

function mascara_data1(dt1)
{  
  var mydata = '';  
  mydata = mydata + dt1;  
  if (mydata.length == 2)
  {  
    mydata = mydata + "/";  
    document.form1.datafim.value = mydata;  
  }  
  if (mydata.length == 5)
  {  
    mydata = mydata + "/";  
    document.form1.datafim.value = mydata;  
  }  
  if (mydata.length == 10)
  {  
    verifica_data1();  
  }  
}  
            
function verifica_data1 () 
{  
  dia = (document.form1.datafim.value.substring(0,2));  
  mes = (document.form1.datafim.value.substring(3,5));  
  ano = (document.form1.datafim.value.substring(6,10));  

  situacao = "";  
  // verifica o dia valido para cada mes  
  if ((dia < 01)||(dia < 01 || dia > 30) && (  mes == 04 || mes == 06 || mes == 09 || mes == 11 ) || dia > 31) {  
    situacao = "falsa";  
  }  

  // verifica se o mes e valido  
  if (mes < 01 || mes > 12 ) {  
    situacao = "falsa";  
  }  

  // verifica se e ano bissexto  
  if (mes == 2 && ( dia < 01 || dia > 29 || ( dia > 28 && (parseInt(ano / 4) != ano / 4)))) {  
    situacao = "falsa";  
  }  
     
  if (document.form1.datafim.value == "") {  
    situacao = "falsa";  
  }  
  
  if (situacao == "falsa") {  
    alert("Data inválida!");  
    document.form1.datafim.focus();  
  }  
}  



function mascara_hora(hora){  
  var myhora = "";  
  myhora = myhora + hora;  
  if (myhora.length == 2){  
     myhora = myhora + ":";  
     document.forms[0].hora.value = myhora;  
  }  
  if (myhora.length == 5){  
     verifica_hora();  
  }  
}  
            
function verifica_hora(){  
  hrs = (document.forms[0].hora.value.substring(0,2));  
  min = (document.forms[0].hora.value.substring(3,5));  
               
  alert("hrs "+ hrs);  
  alert("min "+ min);  
                
  situacao = "";  
  // verifica data e hora  
  if ((hrs < 00 ) || (hrs > 23) || ( min < 00) ||( min > 59)){  
    situacao = "falsa";  
  }  
                
  if (document.forms[0].hora.value == "") {  
    situacao = "falsa";  
  }  

  if (situacao == "falsa") {  
    alert("Hora inválida!");  
    document.forms[0].hora.focus();  
  }  
}  
 
// função para formatar mascara padrão
function formatar_mascara(src, mascara)
{
  var campo = src.value.length;
  var saida = mascara.substring(0,1);
  var texto = mascara.substring(campo);
  if(texto.substring(0,1) != saida) {
	src.value += texto.substring(0,1);}
}

function Limpar(valor, validos) {
// retira caracteres invalidos da string
var result = "";
var aux;
for (var i=0; i < valor.length; i++) {
aux = validos.indexOf(valor.substring(i, i+1));
if (aux>=0) {
result += aux;
}
}
return result;
}

//Formata número tipo moeda usando o evento onKeyDown

function Formata(campo,tammax,teclapres,decimal) {
var tecla = teclapres.keyCode;
vr = Limpar(campo.value,"0123456789");
tam = vr.length;
dec=decimal

if (tam < tammax && tecla != 8){ tam = vr.length + 1 ; }

if (tecla == 8 )
{ tam = tam - 1 ; }

if ( tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 )
{

if ( tam <= dec )
{ campo.value = vr ; }

if ( (tam > dec) && (tam <= 5) ){
campo.value = vr.substr( 0, tam - 2 ) + "," + vr.substr( tam - dec, tam ) ; }
if ( (tam >= 6) && (tam <= 8) ){
campo.value = vr.substr( 0, tam - 5 ) + "." + vr.substr( tam - 5, 3 ) + "," + vr.substr( tam - dec, tam ) ; 
}
if ( (tam >= 9) && (tam <= 11) ){
campo.value = vr.substr( 0, tam - 8 ) + "." + vr.substr( tam - 8, 3 ) + "." + vr.substr( tam - 5, 3 ) + "," + vr.substr( tam - dec, tam ) ; }
if ( (tam >= 12) && (tam <= 14) ){
campo.value = vr.substr( 0, tam - 11 ) + "." + vr.substr( tam - 11, 3 ) + "." + vr.substr( tam - 8, 3 ) + "." + vr.substr( tam - 5, 3 ) + "," + vr.substr( tam - dec, tam ) ; }
if ( (tam >= 15) && (tam <= 17) ){
campo.value = vr.substr( 0, tam - 14 ) + "." + vr.substr( tam - 14, 3 ) + "." + vr.substr( tam - 11, 3 ) + "." + vr.substr( tam - 8, 3 ) + "." + vr.substr( tam - 5, 3 ) + "," + vr.substr( tam - 2, tam ) ;}
} 

}


/* VALIDAÇÕES DE CAMPO */
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 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{2})(\d)/,"$1.$2") //Coloca ponto entre o segundo e o terceiro dígitos
    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 compararData( data )
{	
	var objDate = new Date();
	objDate.setYear(data.split("/")[2]);
	objDate.setMonth(data.split("/")[1]  - 1);//- 1 pq em js é de 0 a 11 os meses
	objDate.setDate(data.split("/")[0]);

	if( objDate.getTime() >= new Date().getTime() )
		return true
	else
		return false; 
}