/***************************************************************
 Programa ...: funcoes.js
 Uso ........: funcoes globais em JavaScript
 Programador : Claudio Monteoliva
***************************************************************/
// seta variaveis global
var xIE          = (!document.all) ? 0 : 1;
var rnd          = "";
var sdir         = "";
var swidth       = parseInt(window.screen.width );
var sheight      = parseInt(window.screen.height);
var loadingState = 0;

//**************************************************************
// Parametros da funcao:
// evento : evento onKeyPress
//**************************************************************
function isNumber(evento)
{
  // seta variaveis
  var key;
  var keychar;

  // verifica
  if     (window.event) { key = window.event.keyCode; }
  else if(evento)       { key = evento.which; }
  else                  { return false; }

  // tecla ENTER pressionada
  if (key == 13 || key == 8 || key == 0) { return true; }

  // pega o codigo da tecla
  keychar = String.fromCharCode(key);

  // verifica o keychar
  if ((("0123456789").indexOf(keychar) > -1)) { return true;  }
  else                                        { return false; }
}

//**************************************************************
// Parametros da funcao:
// evento : evento onKeyPress
//**************************************************************
function isNumberNoEnter(evento)
{
  // seta variaveis
  var key;
  var keychar;

  // verifica
  if     (window.event) { key = window.event.keyCode; }
  else if(evento)       { key = evento.which; }
  else                  { return false; }

  // tecla ENTER pressionada
  if (key == 13           ) { return false; }
  if (key == 8 || key == 0) { return true;  }

  // pega o codigo da tecla
  keychar = String.fromCharCode(key);

  // verifica o keychar
  if ((("0123456789").indexOf(keychar) > -1)) { return true;  }
  else                                        { return false; }
}

//**************************************************************
// Parametros da funcao:
// evento : evento onKeyPress
//**************************************************************
function isValor(evento)
{
  // seta variaveis
  var key;
  var keychar;

  // verifica
  if     (window.event) { key = window.event.keyCode; }
  else if(evento)       { key = evento.which; }
  else                  { return false; }

  // tecla ENTER pressionada
  if (key == 13 || key == 8 || key == 0) { return true; }

  // pega o codigo da tecla
  keychar = String.fromCharCode(key);

  // verifica o keychar
  if ((("-0123456789,").indexOf(keychar) > -1)) { return true;  }
  else                                          { return false; }
}

//**************************************************************
//
//**************************************************************
function formataVALOR(valor)
{
  // seta variaveis
  var nvalor = valor.toString();
  var retor  = "";

  // verifica se tem casas decimais
  if (nvalor.indexOf(".") == -1) { retor = nvalor + ",00"; }
  else                           { retor = strReplace(nvalor,".",","); }

  // seta o tamanho
  var tama = retor.length;

  // verifica o sinal
  if (nvalor.indexOf("-") > -1) { tama = tama - 1; }

  // seta milhares
  if (tama == 7) { retor = retor.substring(0,1) + "." + retor.substring(1,tama); }
  if (tama == 8) { retor = retor.substring(0,2) + "." + retor.substring(2,tama); }
  if (tama == 9) { retor = retor.substring(0,3) + "." + retor.substring(3,tama); }

  // retorna
  return retor;
}

//**************************************************************
// Parametros da funcao:
// evento : evento onKeyPress
//**************************************************************
function isEnter(evento)
{
  // seta variavel
  var key;

  // verifica
  if     (window.event) { key = window.event.keyCode; }
  else if(evento)       { key = evento.which; }
  else                  { return false; }

  // tecla ENTER pressionada
  if (key == 13) { return true; } else { return false; }
}

//**************************************************************
// Parametros da funcao:
// evento : evento onKeyPress
//**************************************************************
function isNoEnter(evento)
{
  // seta variavel
  var key;

  // verifica
  if     (window.event) { key = window.event.keyCode; }
  else if(evento)       { key = evento.which; }
  else                  { return false; }

  // tecla ENTER pressionada
  if (key != 13) { return true; } else { return false; }
}

//**************************************************************
// Parametros da funcao:
// evento : evento onKeyPress
//**************************************************************
function isCaracter(evento)
{
  // seta variaveis
  var key;
  var keychar;

  // verifica
  if     (window.event) { key = window.event.keyCode; }
  else if(evento)       { key = evento.which;         }
  else                  { return false;               }

  // tecla ENTER pressionada
  if (key == 13 || key == 8 || key == 0) { return true; }

  // pega o codigo da tecla
  keychar = String.fromCharCode(key);

  // verifica o keychar
  if      ((("abcdefghijklmnopqrstuvxyz ").indexOf(keychar) > -1)) { return true;  }
  else if ((("ABCDEFGHIJKLMNOPQRSTUVXYZ ").indexOf(keychar) > -1)) { return true;  }
  else                                                             { return false; }
}

function sData(){var zeit=new Date();var ms=(zeit.getHours() * 24 * 60 * 1000) + (zeit.getMinutes() * 60 * 1000) + (zeit.getSeconds() * 1000) + zeit.getMilliseconds();return ms;}

//**************************************************************
// formata uma mascara
//**************************************************************
// exemplo de uso:
//
// onKeyPress="return setMASCARA(this, '999.999.999-99',event)" (CPF)
// onKeyPress="return setMASCARA(this, '###-9999',event)"       (Placa)
//
// tipos de mascara:
// 9 = (numerico)
// # = (string)
//**************************************************************
// teclas:
// 0  = (TAB)
// 8  = (BACKSPACE)
// 13 = (ENTER)
//**************************************************************
function setMASCARA(este, mask, evento)
{
  // seta variaveis
  var key;

  // verifica
  if     (window.event) { key = window.event.keyCode; }
  else if(evento)       { key = evento.which; }
  else                  { return false; }

  // tecla ENTER pressionada
  if (key == 13 || key == 8 || key == 0) { return true; }

  // pega o codigo da tecla
  var keychar = String.fromCharCode(key);

  // pega os totais
  var i = este.value.length;
  var m = mask.length - 1;

  // verifica o total de mascara com o total do campo
  if (i > m) { return false; }
  else
  {
    // pega a mascara
    var texto = mask.substring(i);
    var saida = texto.substring(0,1);

    // verifica
    if      (saida == "9") { if (("0123456789").indexOf(keychar) > -1) { return true; }}
    else if (saida == "#")
    {
        if      ((("abcdefghijklmnopqrstuvwxyz ").indexOf(keychar) > -1)) { return true; }
        else if ((("ABCDEFGHIJKLMNOPQRSTUVWXYZ ").indexOf(keychar) > -1)) { return true; }
    }
    else
    {
      // coloca a separacao no campo texto
      este.value += saida;

      // pega o proximo da mascara
      var texto1 = mask.substring(i+1);
      var saida1 = texto1.substring(0,1);

      // realiza uma nova validacao
      if      (saida1 == "9") { if (("0123456789").indexOf(keychar) > -1) { return true; }}
      else if (saida1 == "#")
      {
        if      ((("abcdefghijklmnopqrstuvwxyz ").indexOf(keychar) > -1)) { return true; }
        else if ((("ABCDEFGHIJKLMNOPQRSTUVWXYZ ").indexOf(keychar) > -1)) { return true; }
      }
    }

    // retorna
    return false;
  }
}

//**************************************************************
// verifica se eh data
//**************************************************************
function isDate(digData)
{
    var bissexto = 0;
    var data     = digData;
    var tam      = data.length;
    if (tam == 10)
    {
        var dia = data.substr(0,2)
        var mes = data.substr(3,2)
        var ano = data.substr(6,4)
        if ((ano > 1900)||(ano < 2100))
        {
            switch (mes)
            {
                case '01':
                case '03':
                case '05':
                case '07':
                case '08':
                case '10':
                case '12': if  (dia <= 31) { return true; } break;
                case '04':
                case '06':
                case '09':
                case '11': if  (dia <= 30) { return true; } break;
                case '02':
                    /* Validando ano Bissexto / fevereiro / dia */
                    if ((ano % 4 == 0) || (ano % 100 == 0) || (ano % 400 == 0))  { bissexto = 1; }
                    if ((bissexto == 1) && (dia <= 29))                          { return true;  }
                    if ((bissexto != 1) && (dia <= 28))                          { return true;  }
                    break;
            }
        }
    }
    return false;
}

//**************************************************************
// Funcao que retorna a tecla pressionada
//**************************************************************
function getKey(evento)
{
  // seta variaveis
  var key;

  // verifica
  if     (window.event) { key = window.event.keyCode; }
  else if(evento)       { key = evento.which; }
  else                  { return false; }

  // retorna
  return key;
}

//**************************************************************
// Funcoes de Trim
//**************************************************************
function  trim(str, chars) { return ltrim(rtrim(str, chars), chars); }
function ltrim(str, chars) { chars = chars || "\\s"; return str.replace(new RegExp("^[" + chars + "]+", "g"), ""); }
function rtrim(str, chars) { chars = chars || "\\s"; return str.replace(new RegExp("[" + chars + "]+$", "g"), ""); }

//**************************************************************
// Funcao de replace
//**************************************************************
function str_replace(search,replace,str) { return str.replace(new RegExp(search,"gi"), replace); }

//**************************************************************
// Funcao que mostra o Loading
//**************************************************************
function setLoading(act) { dg("divLoading").style.display = (act == 0) ? "none" : "block"; loadingState = act; }

//**************************************************************
// Funcao que limpa uma DIV (objeto)
//**************************************************************
function setClear(obj) { setLoading(1); obj.innerHTML = "&nbsp;"; setLoading(0); }

//**************************************************************
// Funcao que carrega um JS dinamicamente
//**************************************************************
// Parametro recebido:
// obj .: Objeto onde vai ser carregado o JS (DIV)
// file : arquivo js
//**************************************************************
function getLoadJS(obj,file)
{
  // cria o objeto DOM para carregar o JS
  //var xscript      = document.createElement("script");
  //    xscript.type = "text/javascript";
  //    xscript.src  = xServer+"/"+xPath+"/"+file;

  // acrescenta no Body
  //obj.appendChild(xscript);
}

//**************************************************************
// Funcao que carrega no iFrame
//**************************************************************
function loadFrame(url,elemento) { setLoading(1); document.getElementById(elemento).src = url; }

//**************************************************************
// funcao que retorna um OBJETO
//**************************************************************
function dg(id) { return document.getElementById(id); }

//**************************************************************
// carrega o mouse
//**************************************************************
//document.oncontextmenu = function(e) { alert("Ação inválida!!!"); return false; }