<!--
  //**************************************************************************************//
  //*** ARQUIVO:     funcoes.js                                                        ***//
  //*** DATA:        16/01/2003                                                        ***//
  //*** AUTOR:       Wellington Nascimento de Oliveira Júnior                          ***//
  //*** E-MAIL:      wjunior@ufba.br                                                   ***//
  //*** DESCRICAO:   funcoes genericas em javascript                                   ***//
  //**************************************************************************************//
  var lastclass = "";
  
 function gerarSenha(digitos) {
    var x=0, n, str="";

    for (; x<digitos; x++) {
      n = Math.round((90 - 65) * Math.random() + 65);
      str = str + unescape('%'+ n.toString(16));
    }
    return str;
  }

  function gerarEmail() {
    return gerarSenha(8) + "@" + gerarSenha(8) + "." + gerarSenha(3) + ".br";
  }


  function selecionado(controle) {
    if (!controle.length)
      return (controle.checked) ? 1 : 0;
    else {
      var cont = 0;
      for (var i=0; i<controle.length; i++) 
        if (controle[i].checked) 
          cont++;
      return cont;
     }
  }


  function lembrar_senha() {
    var width = 320;
    var height = 220;
    var left = ((screen.width - width) / 2);
    var top = (((screen.height - height) / 2));

    window.open("recuperacao.asp", "Lembrar", 
                "left=" + left + ", top=" + top + ", width=" + width + ", height=" + 
                height + ", toolbar=no,location=no,directories=no,status=no,menubar=no," + 
                "scrollbars=no,resizable=no,menubar=no");    
  }

  function validar() {
    var f = document.forms[0];

    if (f.login.value=="") {
      alert("Por favor, informe seu e-mail!");
      f.login.focus();
      return;
    }
    else if (! isMail(f.login, "O e-mail informado não é válido!")) {
      f.login.focus();
      return;
    }

    if (f.senha.value=="") {
      alert("Por favor, informe sua senha!");
      f.senha.focus();
      return;
    }
    f.action="validar.asp";
    f.submit();
  }

  function mOvr(src) {
    if (!src.contains(event.fromElement)) {
        lastclass = src.className;
		  if (src.className.substr(0, 2) != 's_')
			  src.className = 's_' + src.className;
	  }
  }

  function mOut(src) {
    if ((!src.contains(event.toElement)) && (src.className.substr(0, 2) == 's_') && (lastclass!="")) 
        src.className = lastclass;	
  }

  function sair(area_faclube) {
	var dir = "";

	if (!area_faclube)
      dir = "../";
    if (confirm("Deseja realmente sair?"))
      window.location.href = dir + "sair.asp";
  }

  function validarPesquisa() {
    document.forms[0].pagina.value=1;
    return true;
  }

  function replaceAll( str, from, to ) {
      var idx = str.indexOf( from );

      while ( idx > -1 ) {
          str = str.replace( from, to ); 
          idx = str.indexOf( from );
      }

      return str;
  }

  function FormataData(campo,teclapres) {
    var tecla = teclapres.keyCode;
    vr = campo.value;
    vr = vr.replace( ".", "" );
    vr = vr.replace( "/", "" );
    vr = vr.replace( "/", "" );
    tam = vr.length + 1;

    if ( tecla != 9 && tecla != 8 ){
      if ( tam > 2 && tam < 5 )
        campo.value = vr.substr( 0, tam - 2  ) + '/' + vr.substr( tam - 2, tam );
      if ( tam >= 5 && tam <= 10 )
        campo.value = vr.substr( 0, 2 ) + '/' + vr.substr( 2, 2 ) + '/' + vr.substr( 4, 4 ); 
    }
  }

  function numbersOnly(event)
  {
    var keyCode = event.keyCode;
    if (keyCode==0)
      keyCode = event.which;
    if (keyCode==8 || keyCode==9 || keyCode==13 || (keyCode>=48 && keyCode<=57))
      return true;
    return false;
  }

  function validarCPF(s) {
    var i;
    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 enableAll() {
    var j=0;
    var f = document.forms[0];
    var max = 0;
    if (f.elements.length)
      max = f.elements.length;
    
    for (; j<max; j++) {
      if ((f[j].disabled==true) && (f[j].type=="text") || 
          (f[j].type=="select-one") || (f[j].type=="checkbox"))
        f[j].disabled=false;
    }
  }


  //limpa os elementos de um controle select
  function limparDados(select) {
    var x=select.length-1;
    for (; x>=0; x--) 
      select.options[x] = null;    
  }

  //exibe ou oculta um bloco (propriedade 'display')
  function mostrarBloco(nome, status) {
    var obj=null;
    if (!(obj=document.getElementById(nome)))
      return;

    if (status) 
      obj.style.display='block';
    else
      obj.style.display='none';
  }


  function ativarTAB() {
    tab = true;  //deve ser declarada na pagina que usa a funcao
  }

  function desativarTAB() {
    tab = false; //deve ser declarada na pagina que usa a funcao
  }


  function clicar(obj, funcao) {
    if (!obj.disabled) {
      obj.checked = (!obj.checked);
      if (funcao)
        eval(funcao);
    }
  }


  function extensaoArquivo(nome) {
    var ext = "";
    var pos = nome.lastIndexOf(".");
    if (pos > -1) {
      ext = nome.substr(pos+1);
    }
    return ext;
  }
  
  function mudarPagina(p) {
    document.forms[0].pagina.value = p;
  	document.forms[0].submit();
  }

  function ir() {
    var objmax = document.getElementById('maxpagina');
    if (objmax) {
      var max = objmax.value;
      var p = parseInt(document.getElementById('indice').value);
      if ((p > max) || (p<=0)) {
        alert('Página inválida!');
        return;
      }
      mudarPagina(p);
    }
  }

  //descricao: verifica se um valor e numerico
  //parametros: v - string
  //retorno: true - numerico
  //         false - nao numerico
  function isNumber(v){
    var num="01213456789";
    
    if (v == "")  
      return false;  
     
    for(i=0; i<v.length; i++) {
      if (num.indexOf(v.substr(i, 1)) < 0)
        return false;
    }
    return true; 
  }

  //descricao: verifica se a sintaxe de um endereco de e-mail
  //parametros: obj - objeto do tipo text
  //            mesn - mensagem de error, caso o endereco nao esteja correto
  //retorno: true - correto
  //         false - incorreto
  function isMail(obj, mens){ 
    var arroba = "@";
    var mail = obj.value;
    if (mail == "") {
      alert(mens);
      return false;
    }
     
    var A1 = mail.indexOf(arroba);
    if (A1 < 0) {
       alert(mens);
       return false;  
    }
     
    var cliente = mail.substring(0,A1);
    var provedor = mail.substring(A1+1,mail.length);
    var P1 = provedor.indexOf(".");
           
    if (P1 < 0) {
      alert(mens);
      return false;
    }
    return true;
  }


  //descricao: verifica a se uma data e valida
  //parametros: d - dia, m - mes, a ano (string)
  //retorno: true - valida
  //         false - invalida
  function isDate(d, m, a) {
    if ((isNaN(parseInt(d)) || isNaN(parseInt(m)) || 
        isNaN(parseInt(a))) ||
        ((a < 1500) || (a > 9999)) ||
        ((m < 1) || (m > 12)) ||
        ((d < 1) || (d > 31)) ||
        ((m == 2) && (d > 28) && (a % 4 != 0)) ||
        ((m == 2) && (d > 29) && (a % 4 == 0)) ||
        ((d > 30) && (m == 4) || (d > 30) && (m == 6) ||
         (d > 30) && (m == 9) || (d > 30) && (m == 11)))
      return false;

    return true;
  }


  //descricao: obtem a posicao de um objeto no vetor de elementos ao qual ele pertence
  //parametros: o - qualquer objeto de um formulario
  //retorno: -1 - nao encontrado
  //          n - posicao do objeto
  function getElementIndex(o) {
    var i = 0;
    for (; i < o.form.length; i++) {
      if (o.form.elements[i].name == o.name)
        return i;
    }
    return -1;
  }


  //descricao: passa o focus para o proximo objeto
  //parametros: sender - objeto em questao
  //            size - numero de caracteres necessarios para a mudanca
  //            nextObject - proximo objeto (null - pula para o proximo objeto no vetor de elementos
  function nextElement(sender, size, nextObject) {
    var index;
    if ((sender.value.length == size) && (tab==true)) {    
      if (!nextObject) {
        index = getElementIndex(sender) + 1;
        sender.form.elements[index].focus();
      }
      else
        nextObject.focus();
    }
  }

  function relatorio(id) {
    var arquivo, param;
    //define o tipo de relatorio
    var f = document.forms[0];

    if (f.pais) {
      if (f.estado.selectedIndex>0)
        param = "estado=" + f.estado.value;
      else if (f.pais.selectedIndex>0)
        param = "pais=" + f.pais.value;
    }
    switch (id.toString()) {
      case '0': arquivo = "rel_faclubes_X_localidade.asp?" + param;
              break;

      case '1': arquivo = "rel_geral.asp";
                break;

      case '2': arquivo = "rel_fas_X_localidade.asp?" + param;
              break;

    }
   //abre o relatorio correto
   window.open('relatorios/' + arquivo, 'Relatorio', 
               'resizable=yes,menubar=yes,scrollbars=yes,top=10,left=10,width=' + 
               (screen.width-30) + ',height=' + (screen.height-150));
  }
-->
