function Vai_Para (Caminho)
{
  // Vai para a página indicada

  window.location.href = Caminho;
} // Fim de Vai_Para()

function Vai_Para_Procura (Caminho)
{
  // Vai para a página indicada

  window.location.href = Caminho + '&Procura=' + document.all.cxProcura.value;
  //alert(document.all.Procura.value);
} // Fim de Vai_Para_Procura()

function AbreJanela(Conteudo,Largura,Altura)
{
  janela = window.open(Conteudo,'novaJanela','width=' + Largura + ',height=' + Altura + ',screenX=0,screenY=0,top=5,left=10,scrollbars=yes,location=yes,toolbar=yes,menubar=yes');
}

function Abre_Janela_Especial(Conteudo,Largura,Altura)
{
  janela = window.open(Conteudo,'novaJanela','width=' + Largura + ',height=' + Altura + ',screenX=0,screenY=0,top=0,left=210,directories=0,scrollbars=yes,location=0,toolbar=no,menubar=no,status=0,resizable=0');
  //janela.resizeTo(Largura,Altura);
}

function Abre_Janela_Especial_mf(Conteudo,Largura,Altura)
{
  janela = window.open(Conteudo,'novaJanela','width=' + Largura + ',height=' + Altura + ',screenX=0,screenY=0,top=90,left=450,directories=0,scrollbars=yes,location=0,toolbar=no,menubar=no,status=0,resizable=0');
  //janela.resizeTo(Largura,Altura);
}

function Abre_Janela_Especial1(Conteudo,Largura,Altura)
{
  janela = window.open(Conteudo,'novaJanela','width=' + Largura + ',height=' + Altura + ',screenX=0,screenY=0,top=270,left=210,directories=0,scrollbars=yes,location=0,toolbar=0,menubar=0,status=0,resizable=0');
  //janela.resizeTo(Largura,Altura);
}

function Abre_Janela_Limpa_IE(Conteudo,Largura,Altura)
{
  janela = window.open(Conteudo,'novaJanela','width=' + Largura + ',height=' + Altura + ',screenX=0,screenY=0,top=' + event.clientY + ',left=' + event.clientX + ',scrollbars=no,location=no,toolbar=no,menubar=no');
}

function Abre_Janela_Limpa_IE2(Conteudo,Largura,Altura)
{
  janela = window.open(Conteudo,'novaJanela','width=' + Largura + ',height=' + Altura + ',screenX=0,screenY=0,top=100,left=100,scrollbars=yes,location=no,toolbar=no,menubar=no');
}

function Abre_Janela_Limpa_NS(Conteudo,Largura,Altura)
{
  janela = window.open(Conteudo,'novaJanela','width=' + Largura + ',height=' + Altura + ',screenX=0,screenY=0,top=100,left=100,scrollbars=no,location=no,toolbar=no,menubar=no');
}

function Abre_Janela_Limpa_NS2(Conteudo,Largura,Altura)
{
  janela = window.open(Conteudo,'novaJanela','width=' + Largura + ',height=' + Altura + ',screenX=0,screenY=0,top=100,left=100,scrollbars=yes,location=no,toolbar=no,menubar=no');
}

function Abre_Janela_Limpa2()
{
  alert("X: " + event.clientX);
}

// Abre uma nova janela e envia o nome do médico como parâmetro
function Abre_Janela_Medico(Conteudo,Largura,Altura)
{
  var Nome_Medico;

  Nome_Medico = "&Medico=" + document.all.cxID_Medico.options[document.all.cxID_Medico.selectedIndex].text;
  janela = window.open(Conteudo + Nome_Medico,'novaJanela','width=' + Largura + ',height=' + Altura + ',screenX=0,screenY=0,top=5,left=10,scrollbars=yes,location=yes,toolbar=yes,menubar=yes');
}

// Função que converte o conteúdo da caixa para maiúsculas.
function Converte_Maiusculas (Objecto)
{
  var Frase;

  Frase = Objecto.value;
  Objecto.value = Frase.toUpperCase();
} // Fim de Converte_Maiusculas()

function Maiusculas_Vazio (Objecto)
{
  // Verifica se está vazio, colocando como errado se sim e convertendo
  // para maiúsculas se não.

  var Frase;

  //Frase = document.frm_Novo_Doente.Objecto.value;
  //document.frm_Novo_Doente.Objecto.value = Frase.toUpperCase();
  Frase = Objecto.value;
  if (Frase == "")
  {
    Objecto.className = "Formularios_Erro";
  }
  else
  {
    Objecto.value = Frase.toUpperCase();
  }
} // Fim de Maiusculas_Vazio()

function Verifica_Vazio (Objecto)
{
  // Verifica se está vazio, colocando como errado se sim.

  var Frase;

  Frase = Objecto.value;
  if (Frase == "")
  {
    Objecto.className = "Formularios_Erro";
  }
} // Fim de Verifica_Vazio()

function Verifica_Vazio2 (Objecto)
{
  // Verifica se está vazio, colocando 0 se sim.

  var Frase;

  Frase = Objecto.value;
  if (Frase == "")
  {
    Objecto.value = "0";
  }
} // Fim de Verifica_Vazio2()

function Limpa_CP (Objecto)
{
  // Limpa o código postal, caso tenha o valor 0000-000

  if (Objecto.value == "0000-000")
  {
    Objecto.value = "";
  }
} // Fim de Limpa_CP()

function Limpa_Datas (Objecto)
{
  // Limpa a data, caso tenha o valor DD-MM-AAAA.

  if (Objecto.value == "DD-MM-AAAA")
  {
    Objecto.value = "";
  }
} // Fim de Limpa_Datas()

function Limpa_Horas (Objecto)
{
  // Limpa a hora, caso tenha o valor HH:MM.

  if (Objecto.value == "HH:MM")
  {
    Objecto.value = "";
  }
} // Fim de Limpa_Horas()

function Verifica_Digitos (Objecto,Digitos)
{
  // Verifica se é numérico e com os dígitos indicados.

  if (Objecto.name == "cxContribuinte")
  {
    if (Objecto.value == "")
    {
      Objecto.className = "Formularios_Erro";
      return true;
    }
  }

  if ((Objecto.value == '') || (Objecto.value == '0'))
  {
    Objecto.value = '0';
    return true;
  }

  if (Objecto.value <= 0)
  {
    Objecto.value = '';
    Objecto.className = "Formularios_Erro";
    return true;
  }

  if (parseInt(Objecto.value,10) > 0)
  {
    Objecto.value = parseInt(Objecto.value);
  }
  else
  {
    Objecto.value = '';
    Objecto.className = "Formularios_Erro";
    return true;
  }

  if (Objecto.value.length != Digitos)
  {
    Objecto.value = '';
    Objecto.className = "Formularios_Erro";
    return true;
  }
}

function Verifica_Digitos2 (Objecto,Digitos)
{
  // Verifica se é numérico e se os dígitos não ultrapassam o indicado.

  if ((Objecto.value == '') || (Objecto.value == '0'))
  {
    Objecto.value = '0';
    return true;
  }

  if (Objecto.value <= 0)
  {
    Objecto.value = '';
    Objecto.className = "Formularios_Erro";
    return true;
  }

  if (parseInt(Objecto.value,10) > 0)
  {
    Objecto.value = parseInt(Objecto.value);
  }
  else
  {
    Objecto.value = '';
    Objecto.className = "Formularios_Erro";
    return true;
  }

  if (Objecto.value.length > Digitos)
  {
    Objecto.value = '';
    Objecto.className = "Formularios_Erro";
    return true;
  }
}

function Verifica_Datas (Objecto)
{
  // Verifica se a data no objecto é válida.

  var I = 0;

  var Dia = Objecto.value.charAt(0) + Objecto.value.charAt(1);
  var Mes = Objecto.value.charAt(3) + Objecto.value.charAt(4);
  var Ano = Objecto.value.charAt(6) + Objecto.value.charAt(7) + Objecto.value.charAt(8) + Objecto.value.charAt(9);
  if ((Objecto.value.charAt(2) != "-") || (Objecto.value.charAt(5) != "-"))
  {
    alert("O SEPARADOR PARA DATAS É O - (HÍFEN)!");
    Objecto.value = '';
    Objecto.className = "Formularios_Erro";
    return false;
  }
  for (I = 0; I <= 9; I++)
  {
    if ((Objecto.value.charAt(I) != '-') && (Objecto.value.charAt(I) != '0'))
    {
      if (parseInt(Objecto.value.charAt(I),10) > 0)
      {
      }
      else
      {
        alert("CARACTERES INVÁLIDOS NA DATA!");
        Objecto.value = '';
        Objecto.className = "Formularios_Erro";
        return false;
      }
    }
  }
  if ((Mes < 1) || (Mes > 12))
  {
    alert("O MÊS DEVE SER ENTRE 1 E 12");
    Objecto.value = '';
    Objecto.className = "Formularios_Erro";
    return false;
  }
  if ((Dia <= 0) || (Dia > 31))
  {
    alert("O DIA DEVE SER ENTRE 1 E 31!");
    Objecto.value = '';
    Objecto.className = "Formularios_Erro";
    return false;
  }
  if (Ano < 1900)
  {
    alert("O ANO DEVE SER SUPERIOR OU IGUAL A 1900!");
    Objecto.value = '';
    Objecto.className = "Formularios_Erro";
    return false;
  }
  switch (parseInt(Mes,10))
  {
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:
      if (Dia > 31)
      {
        alert("O DIA DO MÊS INDICADO NÃO PODE SER SUPERIOR A 31!");
        Objecto.value = '';
        Objecto.className = "Formularios_Erro";
        return false;
      }
      break;
    case 4:
    case 6:
    case 9:
    case 11:
      if (Dia > 30)
      {
        alert("O DIA DO MÊS INDICADO NÃO PODE SER SUPERIOR A 30!");
        Objecto.value = '';
        Objecto.className = "Formularios_Erro";
        return false;
      }
      break;
    case 2:
      if (Dia > 29)
      {
        alert("O DIA DO MÊS INDICADO NÃO PODE SER SUPERIOR A 29!");
        Objecto.value = '';
        Objecto.className = "Formularios_Erro";
        return false;
      }
      break;
  }
}

function Verifica_Horas (Objecto)
{
  // Verifica se a hora no objecto é válida.

  var I = 0;

  var Horas = Objecto.value.charAt(0) + Objecto.value.charAt(1);
  var Minutos = Objecto.value.charAt(3) + Objecto.value.charAt(4);
  if (Objecto.value.charAt(2) != ":")
  {
    alert("O SEPARADOR PARA HORAS É O : (dois pontos)!");
    Objecto.value = '';
    Objecto.className = "Formularios_Erro";
    return false;
  }
  for (I = 0; I <= 4; I++)
  {
    if ((Objecto.value.charAt(I) != ':') && (Objecto.value.charAt(I) != '0'))
    {
      if (parseInt(Objecto.value.charAt(I),10) > 0)
      {
      }
      else
      {
        alert("CARACTERES INVÁLIDOS NA HORA!");
        Objecto.value = '';
        Objecto.className = "Formularios_Erro";
        return false;
      }
    }
  }
  if ((Horas < 0) || (Horas > 23))
  {
    alert("A HORA DEVE SER ENTRE 0 E 23");
    Objecto.value = '';
    Objecto.className = "Formularios_Erro";
    return false;
  }
  if ((Minutos != 0) && (Minutos != 15) && (Minutos != 30) && (Minutos != 45))
  {
    alert("OS MINUTOS DEVEM SER 0, 15, 30 ou 45!");
    Objecto.value = '';
    Objecto.className = "Formularios_Erro";
    return false;
  }
}

// Função que coloca uma máscara numa caixa de texto.
function txtBoxFormat(objForm, strField, sMask, evtKeyPress, field) {
      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 = objForm[strField].value;

      // Limpa todos os caracteres de formatação que
      // já estiverem no campo.
      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( " ", "" );
      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) == " "))
        bolMask = bolMask || ((sMask.charAt(i) == ":"))

        if (bolMask) {
          sCod += sMask.charAt(i);
          mskLen++; }
        else {
          sCod += sValue.charAt(nCount);
          nCount++;
        }

        i++;
      }

      objForm[strField].value = sCod;

      if (nTecla == 13)
      {
        var i;
        for (i = 0; i < field.form.elements.length; i++)
          if (field == field.form.elements[i])
            break;
        i = (i + 1) % field.form.elements.length;
        field.form.elements[i].focus();
        return false;
      }
      else
        return true;

      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;
      }
    }

// Função que actualiza a caixa Data_Ate com o mesmo valor de Objecto.
function Act_Data_Ate(Objecto)
{
  document.frmDisponibilidade.cxData_Ate.value = Objecto.value;
} // Fim de Act_Data_Ate()

// Função que actualiza a caixa Hora_Ate com o mesmo valor de Objecto.
function Act_Hora_Ate(Objecto)
{
  document.frmDisponibilidade.cxHora_Ate.value = Objecto.value;
} // Fim de Act_Hora_Ate()

// Função que mostra os contactos das pessoas que estão disponíveis...
function Mostra_Info_Contactos(Objecto)
{
  alert(Objecto[Objecto.selectedIndex].text);
}

// Função para controlar a opacidade nas imagens
function makevisible(cur,which)
{
  if (which == 0)
    cur.filters.alpha.opacity=100
  else
    cur.filters.alpha.opacity=50
}

// Função que faz o submit ao formulário enviado. Ver AGENCIAS_CD_LINGUAS (SNATTI-ProGUIA)
function Submit_Form(Formulario)
{
  Formulario.submit();
} // Fim de Submit_Form()

// Função que passa de um dado SELECT para uma dada caixa de texto. Ver em
// AGENCIAS_CD_LINGUAS (SNATTI - ProGUIA).
function Passa_De_Para (De,Para,Separador)
{
  Lingua = De.options[De.selectedIndex].text;
  if (Para.value == "")
  {
    Para.value = Lingua;
  }
  else
  {
    Para.value = Para.value + Separador + Lingua
  }
} // Fim de Passa_De_Para()
