var CHAR_CCEDIL = 'ç';
var CHAR_ECIRC = 'ê';

var CHAR_ATILDE = 'ã';
var CHAR_OTILDE = 'õ';

var CHAR_AACUTE = 'á';
var CHAR_EACUTE = 'é';
var CHAR_IACUTE = 'í';
var CHAR_OACUTE = 'ó';
var CHAR_UACUTE = 'ú';

function verifyFields() {

}

function $p(sId) {
  return document.getElementById(sId);
}

function alunoCandidatar(iEmprIdParam) {
  oEmprId = $p('iEmprId');
  oEmprId.value = iEmprIdParam;

  oForm = $p('oFormFree');
  oForm.submit();
}

function alunoShowHide(sId) {
  oTable = $p(sId);
  oTable.style.display = (oTable.style.display == '' ? 'none' : '');
}

function alunoShowHideBtn(sId, sTableId) {
  oTable = $p(sTableId);

  oImg = $p(sId);
  oImg.innerHTML = (oTable.style.display == '' ? '<img src="assets/site/img/bullet_top.gif">' : '<img src="assets/site/img/icon_arrow2.gif">');
}

function checkAlunoFile() {
  var sMsg = '';
  var bRet = true;

  if ($p('oFileUpload').value == '') {
    sMsg += '- Arquivo' + "\n";
  }

  if ($p('iTypeId').value == '') {
    sMsg += '- Tipo' + "\n";
  }

  if (sMsg != '') {
    sMsg = 'Os seguintes campos devem ser preenchidos:' + "\n\n" + sMsg;
    alert(sMsg);
    bRet = false;
  }

  return bRet;
}

function checkAlunoPassagem() {
  var bRet = false;
  var sError = '';

  // validacao do periodo de ida
  oInicio = $p('dIdaIni');
  iIniDia = oInicio.value.substr(0, 2) - 0;
  iIniMes = oInicio.value.substr(3, 2) - 1;
  iIniAno = oInicio.value.substr(6, 4);
  dInicio = new Date(iIniAno, iIniMes, iIniDia);

  oFinal  = $p('dIdaFim');
  iFimDia = oFinal.value.substr(0, 2) - 0;
  iFimMes = oFinal.value.substr(3, 2) - 1;
  iFimAno = oFinal.value.substr(6, 4);
  dFinal  = new Date(iFimAno, iFimMes, iFimDia);

  iDiff = dFinal - dInicio;
  iDiffDia = iDiff / (24 * 60 * 60 * 1000) + 1;

  if (!(iDiffDia > 4)) {
    sError += 'Selecione um per' + CHAR_IACUTE + 'odo de pelo menos 5 dias para a sua ida.\n';
  }

  // validando se a data preferencial esta dentro do periodo
  oPref = $p('dIdaPref');
  iPrefDia = oPref.value.substr(0, 2) - 0;
  iPrefMes = oPref.value.substr(3, 2) - 1;
  iPrefAno = oPref.value.substr(6, 4);
  dPref = new Date(iPrefAno, iPrefMes, iPrefDia);

  if (dPref < dInicio || dPref > dFinal) {
    sError += 'A data preferida de embarque deve estar dentro do per' + CHAR_IACUTE + 'odo de ida.\n';
  }

  // validacao do periodo de volta
  oInicio = $p('dVoltaIni');
  iIniDia = oInicio.value.substr(0, 2) - 0;
  iIniMes = oInicio.value.substr(3, 2) - 1;
  iIniAno = oInicio.value.substr(6, 4);
  dInicio = new Date(iIniAno, iIniMes, iIniDia);

  oFinal  = $p('dVoltaFim');
  iFimDia = oFinal.value.substr(0, 2) - 0;
  iFimMes = oFinal.value.substr(3, 2) - 1;
  iFimAno = oFinal.value.substr(6, 4);
  dFinal  = new Date(iFimAno, iFimMes, iFimDia);

  iDiff = dFinal - dInicio;
  iDiffDia = iDiff / (24 * 60 * 60 * 1000) + 1;

  if (!(iDiffDia > 9)) {
    sError += 'Selecione um per' + CHAR_IACUTE + 'odo de pelo menos 10 dias para a sua volta.\n';
  }

  // validando se a data preferencial esta dentro do periodo
  oPref = $p('dVoltaPref');
  iPrefDia = oPref.value.substr(0, 2) - 0;
  iPrefMes = oPref.value.substr(3, 2) - 1;
  iPrefAno = oPref.value.substr(6, 4);
  dPref = new Date(iPrefAno, iPrefMes, iPrefDia);

  if (dPref < dInicio || dPref > dFinal) {
    sError += 'A data preferida de volta deve estar dentro do per' + CHAR_IACUTE + 'odo de volta.\n';
  }

  if (sError != '') {
    alert('Aten' + CHAR_CCEDIL + CHAR_ATILDE + 'o!\n\n' + sError);
  } else {
    bRet = true;
  }

  return bRet;
}

function checkAlunoCheckin() {
  var aFields = new Array();
  aFields.push(new Array('aluno_email_secundario'  , 'E-mail secund' + CHAR_AACUTE + 'rio'));
  aFields.push(new Array('aluno_skype'             , 'Skype ID'));
  aFields.push(new Array('aluno_free_data_chegada' , 'Data de Chegada nos EUA'));
  aFields.push(new Array('aluno_free_funcao'       , 'Fun' + CHAR_CCEDIL + CHAR_ATILDE + 'o'));
  aFields.push(new Array('aluno_free_data_inicio'  , 'Data de In' + CHAR_IACUTE + 'cio'));
  aFields.push(new Array('aluno_free_data_final'   , 'Data de T' + CHAR_EACUTE + 'rmino'));
  aFields.push(new Array('aluno_free_endereco'     , 'Endere' + CHAR_CCEDIL + 'o'));
  aFields.push(new Array('aluno_free_cidade'       , 'Cidade'));
  aFields.push(new Array('aluno_free_estado'       , 'Estado'));
//  aFields.push(new Array('aluno_free_telefone_fixo', 'Telefone Fixo (EUA)'));
//  aFields.push(new Array('aluno_free_telefone_cel' , 'Telefone M' + CHAR_OACUTE + 'vel (EUA)'));

  return checkFields(aFields);
}

function checkAlunoProblema() {
  var aFields = new Array();
  aFields.push(new Array('problema_cat_id', 'Natureza do problema'));
  aFields.push(new Array('problema_desc'  , 'Descri' + CHAR_CCEDIL + CHAR_ATILDE + 'o do problema'));

  var oProbCatOutr = $p('oRowCatName');
  if (oProbCatOutr.style.display == '') {
    aFields.push(new Array('problema_cat_out_name', 'Natureza do problema - Outro'));
  }

  var oCheckEmpreg = $p('problema_empregador');
  if (oCheckEmpreg.checked) {
    aFields.push(new Array('problema_empregador_data', 'Data do contato com o empregador'));
    aFields.push(new Array('problema_empregador_name', 'Nome do contato com o empregador'));
    aFields.push(new Array('problema_empregador_desc', 'Descri' + CHAR_CCEDIL + CHAR_ATILDE + 'o do contato com o empregador'));
  }

  var oCheckSponsor = $p('problema_sponsor');
  if (oCheckSponsor.checked) {
    aFields.push(new Array('problema_sponsor_data', 'Data do contato com o sponsor'));
    aFields.push(new Array('problema_sponsor_name', 'Nome do contato com o sponsor'));
    aFields.push(new Array('problema_sponsor_desc', 'Descri' + CHAR_CCEDIL + CHAR_ATILDE + 'o do contato com o sponsor'));
  }

  return checkFields(aFields);
}

function problemaNaturezaCat(oProbCat) {
  var oProbCatOutr = $p('oRowCatName');
  if(oProbCat.value == 9) {
    oProbCatOutr.style.display = '';
  } else {
    oProbCatOutr.style.display = 'none';
    var oProbCatOutrText  = $p('problema_cat_out_name');
    oProbCatOutrText.value = '';
  }
}

function checkFields(aFields) {
  var aErrorFields = new Array();
  for(i = 0; i < aFields.length; i++) {
    var aField     = aFields[i];
    var sFieldId   = aField[0];
    var sFieldName = aField[1];
    var oField     = $p(sFieldId);

    if (oField.value == '') {
      aErrorFields.push(aField);
    }
  }

  var bReturnOk = true;
  var sErrorFields = ''
  if (aErrorFields.length > 0) {
    for(i = 0; i < aErrorFields.length; i++) {
      var aErrorField = aErrorFields[i];
      sErrorFields += '- ' + aErrorField[1] + "\n";
    }

    bReturnOk = false;
    var sMsg = '';
    sMsg += 'Aten' + CHAR_CCEDIL + CHAR_ATILDE + 'o!' + "\n\n";
    sMsg += 'Os campos abaixo n' + CHAR_ATILDE + 'o foram preenchidos:' + "\n";
    sMsg += sErrorFields;
    alert(sMsg);

    aErrorField   = aErrorFields[0]; // pega o primeiro campo com erro
    sErrorFieldId = aErrorField[0]; // pega o ID do primeiro campo com erro
    oErrorField   = $p(sErrorFieldId);

    oErrorField.focus();
  }

  return bReturnOk;
}

