// -------------------------------------------------------------------------------------------
// ***Inicio*** - Funcao auto-tab
var isNN = (navigator.appName.indexOf("Netscape")!=-1);
function autoTab(input, len, e)
{
  var keyCode = (isNN) ? e.which : e.keyCode;
  var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
  if(input.value.length >= len && !containsElement(filter,keyCode))
  {
    input.value = input.value.slice(0, len);
    input.form[(getIndex(input)+1) % input.form.length].select();
  }
  return true;
}
function containsElement(arr, ele)
{
  var found = false, index = 0;
  while(!found && index < arr.length)
  if(arr[index] == ele)
    found = true;
  else
    index++;
  return found;
}
function getIndex(input)
{
  var index = -1, i = 0, found = false;
  while (i < input.form.length && index == -1)
  if (input.form[i] == input)
    index = i;
  else
    i++;
  return index;
}
// ***Fim*** - Funcao auto-tab
// -------------------------------------------------------------------------------------------

// -------------------------------------------------------------------------------------------
// ***Inicio*** - Campo Obrigatorio
function ValidarCampoObrigatorio(objCampo, strNomeApresentacao)
{
  if(objCampo.value == '' || objCampo.selectedIndex == '0')
  {
    alert(strNomeApresentacao);
    objCampo.focus();
    return false;
  }
  return true;
}

function ValidarCampoObrigatorioemail(objCampo, strNomeApresentacao)
{
  if(objCampo.value == '' || objCampo.selectedIndex == '0')
  {
    alert(strNomeApresentacao);
    objCampo.focus();
    return false;
  }
  return true;
}


// ***Fim*** - Campo Obrigatorio
// -------------------------------------------------------------------------------------------

// -------------------------------------------------------------------------------------------
// ***Inicio*** - Campo Numerico
function ValidarCampoNumerico(objCampo, strNomeApresentacao)
{
  var strCampo = objCampo.value;
  for ( var i=0; i<strCampo.length; i++ ) {
    var c = strCampo.charAt(i);
        if((c < '0') || (c > '9'))
        {
      alert('O campo ' + strNomeApresentacao + ' deve conter apenas números.');
      objCampo.focus();
      return false;
      }
  }
  return true;
}
// ***Fim*** - Campo Numerico
// -------------------------------------------------------------------------------------------

// -------------------------------------------------------------------------------------------
// ***Inicio*** - Campo Imagem
function ValidarCampoImagem(objCampo, strNomeApresentacao)
{
  if (objCampo.value!="")
  {
    var strCampo = objCampo.value.split(".");
    if (strCampo[strCampo.length-1].toUpperCase()!="JPG" &&
      strCampo[strCampo.length-1].toUpperCase()!="GIF")
    {
      alert('O campo ' + strNomeApresentacao + ' deve conter um nome de arquivo de imagem (.gif ou .jpg).');
      objCampo.focus();
      return false;
    }
  }
  return true;
}
// ***Fim*** - Campo Imagem
// -------------------------------------------------------------------------------------------

// -------------------------------------------------------------------------------------------
// ***Inicio*** - Campo E-mail
function ValidarCampoEmail(objCampo, strNomeApresentacao)
{
  var strCampo = objCampo.value;

  prim = strCampo.indexOf("@")
  if(prim < 2) {
      alert('O campo ' + strNomeApresentacao + ' está inválido.');
      objCampo.focus();
      return false;
  }
  if(strCampo.indexOf("@",prim + 1) != -1) {
      alert('O campo ' + strNomeApresentacao + ' está inválido.');
      objCampo.focus();
      return false;
  }
  if(strCampo.indexOf(".") < 1) {
      alert('O campo ' + strNomeApresentacao + ' está inválido.');
      objCampo.focus();
      return false;
  }
  if(strCampo.indexOf(" ") != -1) {
      alert('O campo ' + strNomeApresentacao + ' está inválido.');
      objCampo.focus();
      return false;
  }
  if(strCampo.indexOf(".@") > 0) {
      alert('O campo ' + strNomeApresentacao + ' está inválido.');
      objCampo.focus();
      return false;
  }
  if(strCampo.indexOf("@.") > 0) {
      alert('O campo ' + strNomeApresentacao + ' está inválido.');
      objCampo.focus();
      return false;
  }
  if(strCampo.indexOf(".com.br.") > 0) {
      alert('O campo ' + strNomeApresentacao + ' está inválido.');
      objCampo.focus();
      return false;
  }
  if(strCampo.indexOf("/") > 0) {
      alert('O campo ' + strNomeApresentacao + ' está inválido.');
      objCampo.focus();
      return false;
  }
  if(strCampo.indexOf("[") > 0) {
      alert('O campo ' + strNomeApresentacao + ' está inválido.');
      objCampo.focus();
      return false;
  }
  if(strCampo.indexOf("]") > 0) {
      alert('O campo ' + strNomeApresentacao + ' está inválido.');
      objCampo.focus();
      return false;
  }
  if(strCampo.indexOf("(") > 0) {
      alert('O campo ' + strNomeApresentacao + ' está inválido.');
      objCampo.focus();
      return false;
  }
  if(strCampo.indexOf(")") > 0) {
      alert('O campo ' + strNomeApresentacao + ' está inválido.');
      objCampo.focus();
      return false;
  }
  if(strCampo.indexOf("..") > 0) {
      alert('O campo ' + strNomeApresentacao + ' está inválido.');
      objCampo.focus();
      return false;
  }
  return true;

}
// ***Fim*** - Campo E-mail
// -------------------------------------------------------------------------------------------

// -------------------------------------------------------------------------------------------
// ***Inicio*** - Campo Data
function ValidarCampoData(objCampo, strNomeApresentacao)
{
  var strData = objCampo.value;

  // Verifica se data vazia.
  if (strData.length == 0)
  {
    return true;
  }

  // Verifica se foram passados os 10 dígitos (dd/mm/aaaa).
  if (strData.length != 10)
  {
    alert('O campo ' + strNomeApresentacao + ' deve ter o formato DD/MM/AAAA.');
    objCampo.focus();
    return false;
  }

  // Separa o dia, o mês e o ano, armazenando-os num array.
  var arrData = strData.split("/");

  // Verifica se foram passados os 3 (dia, mês e ano).
  if (arrData.length != 3)
  {
    alert('O campo ' + strNomeApresentacao + ' deve ter o formato DD/MM/AAAA.');
    objCampo.focus();
    return false;
  }

  // Extrai o dia, o mês e o ano.
  var intDia = parseInt(arrData[0], 10);
  var intMes = parseInt(arrData[1], 10);
  var intAno = parseInt(arrData[2], 10);

  // Verifica se o ano é válido.
  if ((intAno < 1000) || (intAno > 9999))
  {
    alert('O campo ' + strNomeApresentacao + ' deve ter o formato DD/MM/AAAA.');
    objCampo.focus();
    return false;
  }

  // Verifica se o mês é válido.
  if ((intMes < 1) || (intMes > 12))
  {
    alert('Mês inválido no campo ' + strNomeApresentacao + '.');
    objCampo.focus();
    return false;
  }

  // Verifica se o dia é menor que 1.
  if (intDia < 1)
  {
    alert('Dia inválido no campo ' + strNomeApresentacao + '.');
    objCampo.focus();
    return false;
  }

  // Verifica o dia para os meses que possuem 31 dias.
  if ((intMes == 1 || intMes == 3 || intMes == 5 || intMes == 7 || intMes == 8 || intMes == 10 || intMes == 12) && (intDia > 31))
  {
    alert('Dia inválido no campo ' + strNomeApresentacao + '.');
    objCampo.focus();
    return false;
  }

  // Verifica o dia para os meses que possuem 30 dias.
  if ((intMes == 4 || intMes == 6 || intMes == 9 || intMes == 11) && (intDia > 30))
  {
    alert('Dia inválido no campo ' + strNomeApresentacao + '.');
    objCampo.focus();
    return false;
  }

  // Verifica o dia para o mês de Fevereiro.
  if (intMes == 2)
  {
    if ((intAno % 4) == 0)
    {
      // Se o ano é bissexto o mês tem 29 dias.
      if (intDia > 29)
      {
        alert('Dia inválido no campo ' + strNomeApresentacao + '.');
        objCampo.focus();
        return false;
      }
    }
    else
    {
      // Se o ano não é bissexto o mês tem 28 dias.
      if (intDia > 28)
      {
        alert('Dia inválido no campo ' + strNomeApresentacao + '.');
        objCampo.focus();
        return false;
      }
    }
  }
  var now = new Date();
  now = now.getTime();

  var dateToCheck = new Date();
  dateToCheck.setYear(intAno);
  dateToCheck.setMonth(intMes-1);
  dateToCheck.setDate(intDia);
  var checkDate = dateToCheck.getTime();

  if (checkDate>now)
  {
    alert('O campo ' + strNomeApresentacao + ' deve ser menor que a data atual.');
    objCampo.focus();
    return false;
  }

  // Data Ok.
  return true;
}
// ***Fim*** - Campo Data
// -------------------------------------------------------------------------------------------

// -------------------------------------------------------------------------------------------
// ***Inicio*** - Campos Iguais
function ValidarCamposIguais(objCampo1, objCampo2, strNomeApresentacao)
{
  if (objCampo1.value!=objCampo2.value)
  {
    alert('Os campos de ' + strNomeApresentacao + ' devem ser iguais.');
    objCampo1.focus();
    return false;
  }

  return true;

}
// ***Fim*** - Campos Iguais
// -------------------------------------------------------------------------------------------

// -------------------------------------------------------------------------------------------
// ***Inicio*** - Validar CPF
function ValidarCampoCPF(objCampo)
{

  if(!ValidarCPF(objCampo.value))
  {
    alert('CPF inválido.');
    objCampo.focus();
    return false;
  }
  return true;
}

function RetirarChar(str, carac)
{
  while((indice=str.indexOf(carac))!=-1)
  {
    str = str.substring(0,indice)+str.substring(indice+1);
  }
  return(str);
}

function SomenteNumeros(c)
{
  c=RetirarChar(c,"-");
  c=RetirarChar(c,"/");
  c=RetirarChar(c,",");
  c=RetirarChar(c,".");
  c=RetirarChar(c,"(");
  c=RetirarChar(c,")");
  c=RetirarChar(c," ");
  if((parseFloat(c) / c != 1))
  {
    if(parseFloat(c) * c == 0)
    {
      return(c);
    }
    else
    {
      return(0);
    }
  }
  else
  {
    return(c);
  }
  return(c);
}

function ValidarCPF(strCPF)
{

  // Verifica se campo vazio.
  if (strCPF.length == 0)
  {
  return(true);
  }

  strCPF=SomenteNumeros(strCPF)
  if(strCPF == '00000000000' || strCPF == '11111111111' || strCPF == '22222222222' ||
     strCPF == '33333333333' || strCPF == '44444444444' || strCPF == '55555555555' ||
     strCPF == '66666666666' || strCPF == '77777777777' || strCPF == '88888888888' ||
     strCPF == '99999999999')
  {
    return(false);
  }

  if(strCPF == 0)
  {
    return(false);
  }
  else
  {
    indice=strCPF.length-2;
    if(TestarDigito(strCPF,indice))
    {
      indice=strCPF.length-1;
      if(TestarDigito(strCPF,indice))
      {
        return(true);
      }
      else
      {
        return(false);
      }
    }
    else
    {
      return(false);
    }
  }
}

function TestarDigito(strCPF,indice)
{
  var dig=0;
  var ind=2;
  for(f=indice;f>0;f--)
  {
    dig+=parseInt(strCPF.charAt(f-1))*ind;
    ind++
  }
  dig%=11;
  if(dig<2)
  {
    dig=0;
  }
  else
  {
    dig=11-dig;
  }
  if(dig!=parseInt(strCPF.charAt(indice)))
  {
    return(false);
  }
  else
  {
    return(true);
  }
}
// ***Fim*** - Validar CPF
// -------------------------------------------------------------------------------------------

function RunFoo(altura, largura, url)
{
    document.write('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="'+ largura +'" height="'+ altura +'" VIEWASTEXT ID="Object1">\n');
    document.write('<param name="movie" value="'+ url + '" />\n');
    document.write('<param name="quality" value="high">\n');
	document.write('<param NAME="wmode" Value="Transparent">');
    document.write('<embed src="'+ url +'" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="' + largura + '" height="' + altura + '"></embed>\n');
    document.write('</object>\n');
}

