// -------------------------------------------------------------------------- //
// Muda cor de fundo da celula                                                //
// -------------------------------------------------------------------------- //
function fundo(obj,acao,cod,linkx){
  obj.style.cursor ="hand"
  if (acao =="1"){ obj.style.background = "#FFFFCE" }
  if (acao =="2"){ obj.style.background = "#FFFFFF" }
  if (acao =="3"){ parent.location = linkx}
}


// -------------------------------------------------------------------------- //
// Abre uma janela                                                            //
// -------------------------------------------------------------------------- //
function abreJanela(pag,nom,largura,altura,rol){
  window.open(pag,nom,"height="+ altura +", width="+ largura +", left=10, top=10 toolbar=no, location=no, status=no, scrollbars="+ rol +", resizable=no");
}


// -------------------------------------------------------------------------- //
// Verifica Caracteres                                                        //
// -------------------------------------------------------------------------- //
function verificaCaracter(objnome){
  caracter = objnome.value;
  if (caracter.length == 0){
    //objnome.style.background = "#FFFFCC"
    objnome.focus();    
    return true;
  }
  return false;
}


// -------------------------------------------------------------------------- //
// Verifica Radio buttom e Check box                                          //
// -------------------------------------------------------------------------- //
function verificaOpcao(objnome){
  resp = true
  for(ii=0; ii < objnome.length; ii++){
    if(objnome[ii].checked){ resp = false }
  }
  if(resp){
    return true
  }else{
    return false;
  }
}


// -------------------------------------------------------------------------- //
// Verifica Objetos SELECT do formulário                                      //
// -------------------------------------------------------------------------- //
function verificaSelect(objnome){ 
  if(objnome.options[objnome.selectedIndex].value ==""){
    objnome.focus();
    return true;
  }
  return false;
}


// -------------------------------------------------------------------------- //
// Verifica data no formato brasil (dd/mm/aaaa)                               //
// -------------------------------------------------------------------------- //
function verificaData(objnome){
  numero  = objnome.value;
  partes  = numero.split("/")
  if (partes.length==3){
    numeros = partes[0] + partes[1] + partes[2]
    if (numeros.length ==0 ){ objnome.focus(); return true }
    if (partes[0] < 1 || partes[0] > 31){ objnome.focus(); return true }
    if (partes[1] < 1 || partes[1] > 12){ objnome.focus(); return true }
    if (partes[2].length < 4){ objnome.focus(); return true }
    if (partes[2] < 1900){ objnome.focus(); return true }
  }else{
    objnome.focus();
    return true;
  }
  return false;
}


// -------------------------------------------------------------------------- //
// Verifica email's quanto ao forma e carácteres válidos                      //
// -------------------------------------------------------------------------- //
function verificaEmail(objnome){
  invalid = Array("~","!","@","#","$","%","^","&","*","(",")","+","=","[","]",":",";",",","\"","'","|","{","}","\\","/","<",">","?"," ");
  xemail = objnome.value;
  if (xemail.indexOf("@")==-1){
    objnome.focus();
    return true;
  }else{
    partes=xemail.split("@");
    if(partes[0]=="" || partes[0].length < 2){
      objnome.focus();
      return true;
    }else{
      for(i=0;i < invalid.length;i++){
        if(partes[0].indexOf(invalid[i])!=-1){ objnome.focus(); return true }
      }
    }
    if(partes[1]==""){
      objnome.focus();
      return true;
    }else{
      if (partes[1].indexOf(".")==-1){
        objnome.focus();
        return true;
      }else{
        ponto=partes[1].split(".")
        if(ponto[0]=="" || ponto[0].length < 2){
          objnome.focus();
          return true;
        }else{
          for(i=0;i < invalid.length;i++){
            if(ponto[0].indexOf(invalid[i])!=-1){ objnome.focus(); return true }
          }
        }
        if(ponto[1]==""){ objnome.focus(); return true; }
      }
    }
  }
  return false
}


// -------------------------------------------------------------------------- //
// Valida CEP no formato 00000-000                                            //
// -------------------------------------------------------------------------- //
function validaCEP(objnome){
  validos = Array("0","1","2","3","4","5","6","7","8","9");
  valor   = objnome.value;
  partes  = valor.split("-");
  resp    = 0;
  if (partes.length ==2){
    numeros = partes[0] + partes[1];
    if (numeros.length ==0 ){ objnome.focus(); return true }
    for(i=0;i < validos.length; i++){
      for(j=0;j < numeros.length; j++){
        if(numeros.substring(j,j+1) == validos[i]) { resp++ }
      }
    }
    if (numeros.length != resp){ objnome.focus(); return true }
    if (partes[0].length != 5){ objnome.focus(); return true }
    if (partes[1].length != 3){ objnome.focus(); return true }
  }else{
    objnome.focus();
    return true;
  }
  return false;
}


// -------------------------------------------------------------------------- //
// Validar valores com 2 casas decimais no formato brasil (0.000,00)          //
// -------------------------------------------------------------------------- //
function validaValor(objnome){
  valor   = objnome.value;
  virgula = valor.split(",");
  if (virgula.length >=2){
    if (virgula[1].length ==2 && virgula[0].length !=0){
      ponto = virgula[0].split(".");
      if (ponto.length == 2){
        for(i=1; i< ponto.length; i++){
          if(ponto[i].length != 3){ objnome.focus(); return true }
        }
      }
    }else{
      objnome.focus();
      return true;
    }
  }else{
    objnome.focus();
    return true;
  }
  return false;
}


// -------------------------------------------------------------------------- //
// Permite somente números inteiros                                           //
// -------------------------------------------------------------------------- //
function validaNumero(objnome){
  numero  = objnome.value;
  resp    = 0;
  if(numero.length==0) { objnome.focus(); return true }
  for(i=0;i < numero.length; i++){
    for(j=0;j < 11; j++){
      if (numero.substring(i,i+1) == j) resp++;
    }
  }
  if (numero.length != resp) { objnome.focus(); return true }
  return false;
}


// -------------------------------------------------------------------------- //
// Valida campo CPF                                                           //
// -------------------------------------------------------------------------- //
function validaCPF(objnome) {
  cpf   = objnome.value;
  valor = true;
  erro  = false;
  if (cpf.length < 11) erro = true; 
  var nonNumbers = /\D/;
  if (nonNumbers.test(cpf)) erro = true;	
  if (cpf == "00000000000" || cpf == "11111111111" || cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" || cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" || cpf == "88888888888" || cpf == "99999999999"){
    erro = true;
  }
  var a = [];
  var b = new Number;
  var c = 11;
  for (i=0; i<11; i++){
    a[i] = cpf.charAt(i);
    if (i < 9) b += (a[i] *  --c);
  }
  if ((x = b % 11) < 2) { a[9] = 0 } else { a[9] = 11-x }
  b = 0;
  c = 11;
  for (y=0; y<10; y++) b += (a[y] *  c--); 
  if ((x = b % 11) < 2) { a[10] = 0; } else { a[10] = 11-x; }
  if ((cpf.charAt(9) != a[9]) || (cpf.charAt(10) != a[10])){
    erro = true;
  }
  return erro;
}


// -------------------------------------------------------------------------- //
// Valida campo CNPJ                                                          //
// -------------------------------------------------------------------------- //
function validaCNPJ(objnome)
      {
      var numeros, digitos, soma, i, resultado, pos, tamanho, digitos_iguais;
      digitos_iguais = 1;
      if (cnpj.length < 14 && cnpj.length < 15)
            return false;
      for (i = 0; i < cnpj.length - 1; i++)
            if (cnpj.charAt(i) != cnpj.charAt(i + 1))
                  {
                  digitos_iguais = 0;
                  break;
                  }
      if (!digitos_iguais)
            {
            tamanho = cnpj.length - 2
            numeros = cnpj.substring(0,tamanho);
            digitos = cnpj.substring(tamanho);
            soma = 0;
            pos = tamanho - 7;
            for (i = tamanho; i >= 1; i--)
                  {
                  soma += numeros.charAt(tamanho - i) * pos--;
                  if (pos < 2)
                        pos = 9;
                  }
            resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
            if (resultado != digitos.charAt(0))
                  return false;
            tamanho = tamanho + 1;
            numeros = cnpj.substring(0,tamanho);
            soma = 0;
            pos = tamanho - 7;
            for (i = tamanho; i >= 1; i--)
                  {
                  soma += numeros.charAt(tamanho - i) * pos--;
                  if (pos < 2)
                        pos = 9;
                  }
            resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
            if (resultado != digitos.charAt(1))
                  return false;
            return true;
            }
      else
            return false;
      } 




// -------------------------------------------------------------------------- //
// Cria mascara para qualquer campo                                           //
// -------------------------------------------------------------------------- //
function exibeMascara(strField, sMask, evtKeyPress) {
  var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla;

  if(document.all) { // Internet Explorer
    nTecla = evtKeyPress.keyCode; }
  else if(document.layers) { // Nestcape
    nTecla = evtKeyPress.which;
  }
  
  sValue = strField.value;
  sValue = sValue.toString().replace( "-", "" );
  sValue = sValue.toString().replace( "-", "" );
  sValue = sValue.toString().replace( ".", "" );
  sValue = sValue.toString().replace( ".", "" );
  sValue = sValue.toString().replace( "/", "" );
  sValue = sValue.toString().replace( "/", "" );
  sValue = sValue.toString().replace( "(", "" );
  sValue = sValue.toString().replace( "(", "" );
  sValue = sValue.toString().replace( ")", "" );
  sValue = sValue.toString().replace( ")", "" );
  sValue = sValue.toString().replace( " ", "" );
  sValue = sValue.toString().replace( " ", "" );
  fldLen = sValue.length;
  mskLen = sMask.length;
  
  i = 0;
  nCount = 0;
  sCod = "";
  mskLen = fldLen;
  
  while (i <= mskLen) {
    bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/"))
    bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " "))

    if (bolMask) {
      sCod += sMask.charAt(i);
      mskLen++; }
    else {
      sCod += sValue.charAt(nCount);
      nCount++;
    }
    
    i++;
  }
  
  strField.value = sCod;
  
  if (nTecla != 8) { // backspace
    if (sMask.charAt(i-1) == "9") { // apenas números...
      return ((nTecla > 47) && (nTecla < 58)); } // números de 0 a 9
    else { // qualquer caracter...
      return true;
    } }
  else {
    return true;
  }
}

// -------------------------------------------------------------------------- //
// Valida Campos para conterem apenas números menores que 100 (medidas        //
// -------------------------------------------------------------------------- //
function ValidaCampo(campo) {
  if (campo == "") {
    alert("Para prosseguir é necessário preencher todos os campos de medidas.")
    return false
  }

  if (campo >= 100) {
  	alert("Nenhuma das medidas deve ser maior que 100 cm.")
	return false
  }

  var CaractereInvalido
  var enter = "\n"
  var caracteres = "0123456789" + String.fromCharCode(13) + enter

  var contador = 0
  for (var i=0; i < campo.length; i++) {
    CaractereInvalido = campo.substring(i, i + 1)
    if (caracteres.indexOf(CaractereInvalido) != -1) {
      contador++
    } else {
      alert("As medidas devem conter apenas números.\nNão sendo válidos números negativos ou não inteiros.")
      return false
    }
}
  }