//=== Função para clcular o IMC ===
function CalcularIMC() {
  //Declarar variáveis
  var strPeso          = "";
  var strAltura        = "";
  var strSexo          = "";
  var strDecimais      = "";

  var intAltura        = 0;
  var intPeso          = 0;
  var intPonto         = -1;
  var intVirgula       = -1;
  var intDecimais      = 0;

  var formIMC;

  //Ler o formulário do IMC
  formIMC = document.formIMC;

  //Ler os valores dos campos
  strPeso   = formIMC.peso.value;
  strAltura = formIMC.altura.value;
//  strSexo   = (formIMC.sexo[0].checked) ? "M" : "F";

  //Validar os campos obrigatórios
  if (strAltura == "") {
    alert("A 'Altura' é obrigatória para o cálculo do IMC.");
    formIMC.altura.focus();
    return false;
  }
  else if (strPeso == "") {
    alert("O 'Peso' é obrigatório para o cálculo do IMC.");
    formIMC.peso.focus();
    return false;
  }

  //Validar se o peso é menor do que 400kg
  intPonto   = strPeso.indexOf(".");
  intVirgula = strPeso.indexOf(",");

  if (intPonto != -1 && intVirgula != -1) {
    alert("No 'Peso', utilize somente ponto ou vírgula.");
    return false;
  }

  if (intPonto == 0) {
    alert("O ponto decimal não pode ser o 1º caracter do 'Peso'.");
    return false;
  }

  if (intVirgula == 0) {
    alert("A vírgula decimal não pode ser o 1º caracter do 'Peso'.");
    return false;
  }

  if (intPonto == (strPeso.length - 1)) {
    strPeso  = strPeso.substring(0, strPeso.length - 1);
    intPonto = -1;
  }

  if (intVirgula == (strPeso.length - 1)) {
    strPeso    = strPeso.substring(0, strPeso.length - 1);
    intVirgula = -1;
  }

  if (intPonto == -1 && intVirgula == -1) {
    intPonto = strPeso.length;
    intDecimais = 0;
  }
  else if (intPonto != -1) {
    intDecimais = strPeso.length - (intPonto + 1);
  }
  else {
    intDecimais = strPeso.length - (intVirgula + 1);
    intPonto    = intVirgula;
  }

  intPeso = parseFloat(strPeso.substring(0, intPonto));

  if (intDecimais > 0) {
    strDecimais  = strPeso.substring(intPonto + 1, strPeso.length);
    intPeso     += (parseFloat(strDecimais) * (10 ^ intDecimais));
  }

  if (intPeso <= 0) {
    alert("O 'Peso' deve ser maior do que zero.");
    return false;
  }

  if (intPeso > 400) {
    alert("O 'Peso' deve ser menor ou igual a 400kg.");
    return false;
  }

  //Validar se a altura é menor do que 4m
  intPonto   = strAltura.indexOf(".");
  intVirgula = strAltura.indexOf(",");

  if (intPonto != -1 && intVirgula != -1) {
    alert("Na 'Altura', utilize somente ponto ou vírgula.");
    return false;
  }

  if (intPonto == 0) {
    alert("O ponto decimal não pode ser o 1º caracter da 'Altura'.");
    return false;
  }

  if (intVirgula == 0) {
    alert("A vírgula decimal não pode ser o 1º caracter da 'Altura'.");
    return false;
  }

  if (intPonto == (strAltura.length - 1)) {
    strAltura = strAltura.substring(0, strAltura.length - 1);
    intPonto  = -1;
  }

  if (intVirgula == (strAltura.length - 1)) {
    strAltura  = strAltura.substring(0, strAltura.length - 1);
    intVirgula = -1;
  }

  if (intPonto == -1 && intVirgula == -1) {
    intPonto = strAltura.length;
    intDecimais = 0;
  }
  else if (intPonto != -1) {
    intDecimais = strAltura.length - (intPonto + 1);
  }
  else {
    intDecimais = strAltura.length - (intVirgula + 1);
    intPonto    = intVirgula;
  }

  intAltura = parseFloat(strAltura.substring(0, intPonto));

  if (intDecimais > 0) {
    strDecimais  = strAltura.substring(intPonto + 1, strAltura.length);
    intAltura   += (parseFloat(strDecimais) / Math.pow(10, intDecimais));
  }

  if (intAltura <= 0) {
    alert("A 'Altura' deve ser maior do que zero.");
    return false;
  }

  if (intAltura >= 4) {
    alert("A 'Altura' deve ser menor do que 4m.");
    return false;
  }

//  document.location.href = "IMC.htm?Peso=" + strPeso + "&Altura=" + strAltura + "&Sexo=" + strSexo + "&";

  return true;
}

//=== Função para validar os campo de altura e peso ===
function Validar(nome, valor) {
  //Declarar variáveis
  var strValidos   = "0123456789.,";
  var strValidar   = valor;
  var strCaracter  = "";
  var strMensagem = "";

  var i            = 0;
  var j            = 0;

  var boolValido   = true;

  var formIMC;

  //Ler o formulário do IMC
  formIMC = document.formIMC;

  //Validar caracter a caracter
  for (i = 0;  i < strValidar.length; i++) {
    strCaracter = strValidar.charAt(i);

    if (strValidos.indexOf(strCaracter) == -1) {
      boolValido = false;
      break;
    }
  }


  if (!boolValido) {
    if (nome == "altura")
      strMensagem = "Altura inválida";
    else if (nome == "peso")
      strMensagem = "Peso inválido";

    eval("formIMC." + nome + ".focus()");
    alert(strMensagem + ". Só são permitidos números, vírgula e ponto decimal.");
  }
}
