﻿var HomeGeral = {};
var HomeGeralEstudo = {};
var HomeGeralPassagem = {};

HomeGeralEstudo.VALOR_DEFAULT_COMBO = "[default]";
HomeGeralEstudo.DEBUG = false;
HomeGeralEstudo.SEPARADOR_VALUE_STOP = "|";

HomeGeral.TodosObjetos = new Array('Passagens', 'Cursos', 'Pacotes', 'AsistenciaMedica');

HomeGeral.Load = function()
{
    //$Get('chkPassagens').checked = true;
    //$Get('lblPassagens').setAttribute("class", "on");
    //$Get('ulPassagens').style.display = "";
    HomeGeral.SelecionaBoxHome($Get('chkPassagensBoxHome'));
    $Get('chkPassagensBoxHome').checked = true;
}

HomeGeral.Associacao =
        {
            'liPassagensBoxHome': 'ulPassagens',
            'liCursosBoxHome': 'ulCursos',
            'liPacotesBoxHome': 'ulPacotes',
            'liAsistenciaMedicaBoxHome': 'ulAsistenciaMedica'
        }


HomeGeral.SelecionaBoxHome = function(objeto)
{
    var liSelecionado = objeto.parentNode;
    var ulBoxHome = liSelecionado.parentNode;

    for (var i = 0; i < ulBoxHome.childNodes.length; i++)
    {
        if (ulBoxHome.childNodes[i].tagName && ulBoxHome.childNodes[i].tagName.toLowerCase() == 'li')
        {
            liSelecionado = ulBoxHome.childNodes[i];
            for (var j = 0; j < liSelecionado.childNodes.length; j++)
            {
                if (liSelecionado.childNodes[j].tagName && liSelecionado.childNodes[j].tagName.toLowerCase() == 'label')
                {
                    liSelecionado.childNodes[j].className = "";
                    $Get(HomeGeral.Associacao[liSelecionado.id]).style.display = 'none';
                    break;
                }
            }
        }
    }

    liSelecionado = objeto.parentNode;

    for (var i = 0; i < liSelecionado.childNodes.length; i++)
    {
        if (liSelecionado.childNodes[i].tagName && liSelecionado.childNodes[i].tagName.toLowerCase() == 'label')
        {
            liSelecionado.childNodes[i].className = "on";
            $Get(HomeGeral.Associacao[liSelecionado.id]).style.display = '';
            break;
        }
    }
}

HomeGeralEstudo.Cursos = [];
HomeGeralEstudo.Cursos.push({ Curso: 'Cursos para profissionais', Acomodacao: 'false', Tipo: 'Idioma para negócios', Atividade: '', Idioma: 'Inglês', Nivel: 'Avançado' });
HomeGeralEstudo.Cursos.push({ Curso: 'Curso de férias 12-17 anos', Acomodacao: 'false', Tipo: '', Atividade: '', Idioma: 'Inglês', Nivel: 'Avançado' });
HomeGeralEstudo.Cursos.push({ Curso: 'Cursos de Idioma', Acomodacao: 'false', Tipo: '', Atividade: '', Idioma: 'Inglês', Nivel: 'Avançado' });
HomeGeralEstudo.Cursos.push({ Curso: 'Preparatório Exames', Acomodacao: 'false', Tipo: 'CAMBRIDGE', Atividade: '', Idioma: 'Inglês', Nivel: 'Avançado' });
HomeGeralEstudo.Cursos.push({ Curso: 'Vocacional / Técnico', Acomodacao: 'false', Tipo: '', Atividade: '', Idioma: 'Inglês', Nivel: 'Avançado' });
HomeGeralEstudo.Cursos.push({ Curso: 'Graduação', Acomodacao: 'false', Tipo: 'Negócios', Tipo: '', Atividade: '', Idioma: 'Inglês', Nivel: 'Avançado' });
HomeGeralEstudo.Cursos.push({ Curso: 'Idioma com atividades', Acomodacao: 'false', Tipo: '', Atividade: '', Idioma: 'Inglês', Tipo: 'Arte - cultura', Nivel: 'Avançado' });


HomeGeralEstudo.LimpaCampos = function(tipoCurso, pais, cidade, inicio, duracao, carga)
{
    if (tipoCurso) page.ddlTipoCurso.selectedIndex = 0;
    if (pais) page.ddlPais.options.length = 1;
    if (cidade) page.ddlCidade.options.length = 1;
    if (inicio) page.ddlDataInicio.options.length = 1;
    if (duracao) page.ddlDuracao.options.length = 1;
    if (carga) page.ddlCargaHoraria.options.length = 1;
}

HomeGeralEstudo.Valida = function()
{
    if (page.txtAnos.value.Trim() == "")
    {
        alert('Campo Idade obrigatório');
        return false;
    }

    if (page.ddlTipoCurso.SelectedValue() == "")
    {
        alert('Campo Tipo de Curso obrigatório');
        return false;
    }

    if (page.ddlPais.SelectedValue() == "")
    {
        alert('Campo País obrigatório');
        return false;
    }

    if (page.ddlCidade.SelectedValue() == "")
    {
        alert('Campo Cidade obrigatório');
        return false;
    }

    if (page.ddlDataInicio.SelectedValue() == "")
    {
        alert('Campo Data de Inicio obrigatório');
        return false;
    }
    return true;
}

HomeGeralEstudo.RetornaCurso = function()
{
    return HomeGeralEstudo.Cursos.First(String.Format('x => x.Curso == "{0}"', page.ddlTipoCurso.SelectedText()));
}

HomeGeralEstudo.PopulaCarregando = function(objeto)
{
    objeto.options.length = 0;
    objeto.options[0] = new Option('Carregando...', '');
}

//-------------------------

HomeGeralEstudo.RetornaSelectedValue = function(id)
{
    var objeto = $Get(id);

    if (objeto == null)
        return "";
    if (objeto.selectedIndex == 0)
        return "";

    if (objeto.value == HomeGeralEstudo.VALOR_DEFAULT_COMBO)
        return "";
    
    var array = objeto.value.split(HomeGeralEstudo.SEPARADOR_VALUE_STOP);
    if (array.length > 0)
        return array[0];
    
    return objeto.value;
}

HomeGeralEstudo.RetornaSelectedTextDataInicio = function(id)
{
    var objeto = $Get(id);
    
    if (objeto == null)
        return "";
    if (objeto.selectedIndex == 0)
        return "";
    if (objeto.value == HomeGeralEstudo.VALOR_DEFAULT_COMBO)
        return "";
    
    var valor = "01/" + objeto.SelectedText();
    
    var array = valor.split(HomeGeralEstudo.SEPARADOR_VALUE_STOP);
    if (array.length > 0)
        return array[0];
    
    return valor;
}

HomeGeralEstudo.RetornaSelectedStop = function(id)
{
    var objeto = $Get(id);

    if (objeto == null)
        return false;
    if (objeto.selectedIndex == 0)
        return false;

    var array = objeto.value.split(this.SEPARADOR_VALUE_STOP);
    if (array.length > 1)
        return ((array[1] || 'false').toLowerCase() == 'true');
    
    return false;
}

HomeGeralEstudo.PopulaRetorno = function(ret, titulo, objeto, texto, valor, valorPadrao)
{
    var itemPadrao = null;
    var defaultExisteLista = false;
    
    if (valorPadrao != '')
    {
        for (var i = 0; i < ret.length; i++)
        {
            if (ret[i][texto] == valorPadrao) //Valor padrão já está na lista de retorno
            {
                defaultExisteLista = true;
                break;
            }
        }
        
        if (!defaultExisteLista)
        {
            //Adiciona valor padrão
            itemPadrao = {};
            itemPadrao[texto] = valorPadrao;
            itemPadrao[valor] = HomeGeralEstudo.VALOR_DEFAULT_COMBO;
            
            ret.unshift(itemPadrao);
        }
    }
    
    if (ret.Count() > 0)
    {
        objeto.disabled = false;
        objeto.DataBind(ret, texto, valor);
        
        HomeGeralEstudo.VerificaPopulaRetorno(ret, titulo, objeto);
        
        //Seleciona o valor padrão
        if (valorPadrao != '')
        {
            for (var j = 0; j < objeto.options.length; j++)
            {
                if (objeto.options[j].text == valorPadrao)
                {
                    objeto.selectedIndex = j;
                    break;
                }
            }
        }
        
        objeto.onchange();
        return true;
    }
    else
    {
        objeto.disabled = true;
        alert(String.Format('Não há dados para: {0}', titulo))
        return false;
    }
}

HomeGeralEstudo.VerificaPopulaRetorno = function(ret, titulo, combo)
{
    combo.AddAt(0, titulo, '');
    if (ret.Count() == 1)
        combo.options.selectedIndex = 1;
    else
        combo.options.selectedIndex = 0;
}

HomeGeralEstudo.GetConfigCampos = function(idTipoCurso, campo)
{
    var config = window['HomeGeralEstudo_ConfigCamposTipoCurso_' + idTipoCurso];
    if (config == null)
        return '';
    
    for (var i = 0; i < config.length; i++)
    {
        if (config[i].Campo == campo)
            return config[i].ValorPadrao;
    }
    
    return '';
}

HomeGeralEstudo.GetConfigCamposEnviar = function(idTipoCurso, campo)
{
    var valor = HomeGeralEstudo.GetConfigCampos(idTipoCurso, campo);
    if (valor == null)
        return null;
    
    //Substitui TODOS por vazio para enviar para o webservice
    valor = (valor == 'TODOS' || valor == 'TODAS' ? '' : valor);
    valor = (valor == 'SIM' ? true : valor);
    valor = (valor == 'NAO' ? false : valor);
    
    return valor;
}

HomeGeralEstudo.ExibeMensagemDebug = function(mensagem)
{
    if (HomeGeralEstudo.DEBUG)
        window.alert(mensagem);
}

//-------------------------------------

HomeGeralEstudo.IdadeAlterada = function() {
    HomeGeralEstudo.LimpaCampos(true, true, true, true, true, true);

    var idade = page.txtAnos.value;

    if (idade.length < 2)
        return false;

    HomeGeralEstudo.ExibeMensagemDebug('HomeGeralEstudo.IdadeAlterada() -- idade = ' + idade);
}

HomeGeralEstudo.TipoCursoAlterado = function()
{
    HomeGeralEstudo.LimpaCampos(false, true, true, true, true, true);
    
    var tipoCurso = HomeGeralEstudo.RetornaSelectedValue(page.ddlTipoCurso.id);
    var idade = page.txtAnos.value;
    var acomodacao = HomeGeralEstudo.GetConfigCamposEnviar(tipoCurso, 'Acomodacao');
    var idioma = HomeGeralEstudo.GetConfigCamposEnviar(tipoCurso, 'Idioma');
    var nivelIdioma = HomeGeralEstudo.GetConfigCamposEnviar(tipoCurso, 'NivelIdioma');
    var curso = HomeGeralEstudo.GetConfigCamposEnviar(tipoCurso, 'TipoCurso');

    if (tipoCurso == '' || idade.length < 2)
        return false;

    HomeGeralEstudo.ExibeMensagemDebug('HomeGeralEstudo.TipoCursoAlterado() --> Ajax.Tarifario.ListaPorPais() -- tipoCurso=' + tipoCurso + ' -- idade=' + idade + ' -- acomodacao=' + acomodacao + ' -- idioma=' + idioma + ' -- nivelIdioma=' + nivelIdioma + ' -- curso=' + curso);

    Ajax.Tarifario.ListaPorPais(tipoCurso, idade, acomodacao, idioma, nivelIdioma, curso, HomeGeralEstudo.EndTipoCursoAlterado);
}

HomeGeralEstudo.EndTipoCursoAlterado = function(ret)
{
    var tipoCurso = HomeGeralEstudo.RetornaSelectedValue(page.ddlTipoCurso.id);
    var valorPadrao = HomeGeralEstudo.GetConfigCampos(tipoCurso, 'Pais');
    HomeGeralEstudo.ExibeMensagemDebug('HomeGeralEstudo.EndTipoCursoAlterado() -- ret=' + ret + ' -- valorPadrao Pais=' + valorPadrao);
    HomeGeralEstudo.PopulaRetorno(ret, 'País', page.ddlPais, 'Value', 'Key', valorPadrao);
}

HomeGeralEstudo.PaisAlterado = function()
{
    HomeGeralEstudo.LimpaCampos(false, false, true, true, true, true)
    
    if (HomeGeralEstudo.RetornaSelectedStop(page.ddlTipoCurso.id))
    {
        HomeGeralEstudo.Busca(true);
        return;
    }
    
    var tipoCurso = HomeGeralEstudo.RetornaSelectedValue(page.ddlTipoCurso.id);
    var idade = page.txtAnos.value;
    var acomodacao = HomeGeralEstudo.GetConfigCamposEnviar(tipoCurso, 'Acomodacao');
    var idioma = HomeGeralEstudo.GetConfigCamposEnviar(tipoCurso, 'Idioma');
    var nivelIdioma = HomeGeralEstudo.GetConfigCamposEnviar(tipoCurso, 'NivelIdioma');
    var curso = HomeGeralEstudo.GetConfigCamposEnviar(tipoCurso, 'TipoCurso');
    var pais = HomeGeralEstudo.RetornaSelectedValue(page.ddlPais.id);

    if (tipoCurso == '' || idade.length < 2 || page.ddlPais.SelectedValue() == '')
        return false;

    HomeGeralEstudo.ExibeMensagemDebug('HomeGeralEstudo.PaisAlterado() --> Ajax.Tarifario.ListaPorCidade() -- tipoCurso=' + tipoCurso + ' -- idade=' + idade + ' -- acomodacao=' + acomodacao + ' -- idioma=' + idioma + ' -- nivelIdioma=' + nivelIdioma + ' -- curso=' + curso + ' -- pais=' + pais);

    Ajax.Tarifario.ListaPorCidade(tipoCurso, idade, acomodacao, idioma, nivelIdioma, curso, pais, HomeGeralEstudo.EndPaisAlterado);
}

HomeGeralEstudo.EndPaisAlterado = function(ret)
{
    var tipoCurso = HomeGeralEstudo.RetornaSelectedValue(page.ddlTipoCurso.id);
    var valorPadrao = HomeGeralEstudo.GetConfigCampos(tipoCurso, 'Cidade');
    HomeGeralEstudo.ExibeMensagemDebug('HomeGeralEstudo.EndPaisAlterado() -- ret=' + ret + ' -- valorPadrao Cidade=' + valorPadrao);
    HomeGeralEstudo.PopulaRetorno(ret, 'Cidade', page.ddlCidade, 'Value', 'Key', valorPadrao);
}

HomeGeralEstudo.CidadeAlterada = function()
{
    HomeGeralEstudo.LimpaCampos(false, false, false, true, true, true)

    if (HomeGeralEstudo.RetornaSelectedStop(page.ddlPais.id))
    {
        HomeGeralEstudo.Busca(true);
        return;
    }
    
    var tipoCurso = HomeGeralEstudo.RetornaSelectedValue(page.ddlTipoCurso.id);
    var idade = page.txtAnos.value;
    var acomodacao = HomeGeralEstudo.GetConfigCamposEnviar(tipoCurso, 'Acomodacao');
    var idioma = HomeGeralEstudo.GetConfigCamposEnviar(tipoCurso, 'Idioma');
    var nivelIdioma = HomeGeralEstudo.GetConfigCamposEnviar(tipoCurso, 'NivelIdioma');
    var curso = HomeGeralEstudo.GetConfigCamposEnviar(tipoCurso, 'TipoCurso');
    var pais = HomeGeralEstudo.RetornaSelectedValue(page.ddlPais.id);
    var cidade = HomeGeralEstudo.RetornaSelectedValue(page.ddlCidade.id);

    if (tipoCurso == '' || idade.length < 2 || page.ddlPais.SelectedValue() == '' || page.ddlCidade.SelectedValue() == '')
        return false;

    HomeGeralEstudo.ExibeMensagemDebug('HomeGeralEstudo.CidadeAlterada --> Ajax.Tarifario.ListaPorDataInicio() -- tipoCurso=' + tipoCurso + ' -- idade=' + idade + ' -- acomodacao=' + acomodacao + ' -- idioma=' + idioma + ' -- nivelIdioma=' + nivelIdioma + ' -- curso=' + curso + ' -- pais=' + pais + ' -- cidade=' + cidade);
    
    Ajax.Tarifario.ListaPorDataInicio(tipoCurso, idade, acomodacao, idioma, nivelIdioma, curso, pais, cidade, HomeGeralEstudo.EndCidadeAlterada);
}

HomeGeralEstudo.EndCidadeAlterada = function(ret)
{
    var tipoCurso = HomeGeralEstudo.RetornaSelectedValue(page.ddlTipoCurso.id);
    var valorPadrao = HomeGeralEstudo.GetConfigCampos(tipoCurso, 'DataInicio');
    HomeGeralEstudo.ExibeMensagemDebug('HomeGeralEstudo.EndCidadeAlterada() -- ret=' + ret + ' -- valorPadrao Data Inicio=' + valorPadrao);

    for (var i = 0; i < ret.Count(); i++)
    {
        ret[i].Value = ret[i].Value.substr(3);
        ret[i].Key = ret[i].Key.substr(3);
    }
    
    HomeGeralEstudo.PopulaRetorno(ret, 'Data de inicio', page.ddlDataInicio, 'Value', 'Key', valorPadrao);
}

HomeGeralEstudo.DataInicioAlterada = function()
{
    HomeGeralEstudo.LimpaCampos(false, false, false, false, true, true)
    
    if (HomeGeralEstudo.RetornaSelectedStop(page.ddlCidade.id))
    {
        HomeGeralEstudo.Busca(true);
        return;
    }
    
    var tipoCurso = HomeGeralEstudo.RetornaSelectedValue(page.ddlTipoCurso.id);
    var idade = page.txtAnos.value;
    var acomodacao = HomeGeralEstudo.GetConfigCamposEnviar(tipoCurso, 'Acomodacao');
    var idioma = HomeGeralEstudo.GetConfigCamposEnviar(tipoCurso, 'Idioma');
    var nivelIdioma = HomeGeralEstudo.GetConfigCamposEnviar(tipoCurso, 'NivelIdioma');
    var curso = HomeGeralEstudo.GetConfigCamposEnviar(tipoCurso, 'TipoCurso');
    var pais = HomeGeralEstudo.RetornaSelectedValue(page.ddlPais.id);
    var cidade = HomeGeralEstudo.RetornaSelectedValue(page.ddlCidade.id);
    var dataInicio = HomeGeralEstudo.RetornaSelectedTextDataInicio(page.ddlDataInicio.id);
    
    if (tipoCurso == '' || idade.length < 2 || page.ddlPais.SelectedValue() == '' || page.ddlCidade.SelectedValue() == '' || page.ddlDataInicio.SelectedValue() == '')
        return false;
    
    HomeGeralEstudo.ExibeMensagemDebug('HomeGeralEstudo.DataInicioAlterada --> Ajax.Tarifario.ListaPorDuracao() -- tipoCurso=' + tipoCurso + ' -- idade=' + idade + ' -- acomodacao=' + acomodacao + ' -- idioma=' + idioma + ' -- nivelIdioma=' + nivelIdioma + ' -- curso=' + curso + ' -- pais=' + pais + ' -- cidade=' + cidade + ' -- dataInicio=' + dataInicio);
    
    Ajax.Tarifario.ListaPorDuracao(tipoCurso, idade, acomodacao, idioma, nivelIdioma, curso, pais, cidade, dataInicio, HomeGeralEstudo.EndDataInicioAlterada);
}

HomeGeralEstudo.EndDataInicioAlterada = function(ret)
{
    var tipoCurso = HomeGeralEstudo.RetornaSelectedValue(page.ddlTipoCurso.id);
    var valorPadrao = HomeGeralEstudo.GetConfigCampos(tipoCurso, 'Duracao');
    HomeGeralEstudo.ExibeMensagemDebug('HomeGeralEstudo.EndDataInicioAlterada() -- ret=' + ret + ' -- valorPadrao Duracao=' + valorPadrao);
    HomeGeralEstudo.PopulaRetorno(ret, 'Duração', page.ddlDuracao, 'Value', 'Key', valorPadrao);
}

HomeGeralEstudo.DuracaoAlterada = function()
{
    HomeGeralEstudo.LimpaCampos(false, false, false, false, false, true);

    if (HomeGeralEstudo.RetornaSelectedStop(page.ddlDataInicio.id))
    {
        HomeGeralEstudo.Busca(true);
        return;
    }
    
    var tipoCurso = HomeGeralEstudo.RetornaSelectedValue(page.ddlTipoCurso.id);
    var idade = page.txtAnos.value;
    var acomodacao = HomeGeralEstudo.GetConfigCamposEnviar(tipoCurso, 'Acomodacao');
    var idioma = HomeGeralEstudo.GetConfigCamposEnviar(tipoCurso, 'Idioma');
    var nivelIdioma = HomeGeralEstudo.GetConfigCamposEnviar(tipoCurso, 'NivelIdioma');
    var curso = HomeGeralEstudo.GetConfigCamposEnviar(tipoCurso, 'TipoCurso');
    var pais = HomeGeralEstudo.RetornaSelectedValue(page.ddlPais.id);
    var cidade = HomeGeralEstudo.RetornaSelectedValue(page.ddlCidade.id);
    var dataInicio = HomeGeralEstudo.RetornaSelectedTextDataInicio(page.ddlDataInicio.id);
    var duracao = HomeGeralEstudo.RetornaSelectedValue(page.ddlDuracao.id);
    
    if (tipoCurso == '' || idade.length < 2 || page.ddlPais.SelectedValue() == '' || page.ddlCidade.SelectedValue() == '' || page.ddlDataInicio.SelectedValue() == '' || page.ddlDuracao.SelectedValue() == '')
        return false;

    HomeGeralEstudo.ExibeMensagemDebug('HomeGeralEstudo.DuracaoAlterada --> Ajax.Tarifario.ListaPorCargaHoraria() -- tipoCurso=' + tipoCurso + ' -- idade=' + idade + ' -- acomodacao=' + acomodacao + ' -- idioma=' + idioma + ' -- nivelIdioma=' + nivelIdioma + ' -- curso=' + curso + ' -- pais=' + pais + ' -- cidade=' + cidade + ' -- dataInicio=' + dataInicio + ' -- duracao=' + duracao);
    
    Ajax.Tarifario.ListaPorCargaHoraria(tipoCurso, idade, acomodacao, idioma, nivelIdioma, curso, pais, cidade, dataInicio, duracao, HomeGeralEstudo.EndDuracaoAlterada);
}

HomeGeralEstudo.EndDuracaoAlterada = function(ret)
{
    var tipoCurso = HomeGeralEstudo.RetornaSelectedValue(page.ddlTipoCurso.id);
    var valorPadrao = HomeGeralEstudo.GetConfigCampos(tipoCurso, 'CargaHoraria');
    HomeGeralEstudo.ExibeMensagemDebug('HomeGeralEstudo.EndDuracaoAlterada() -- ret=' + ret + ' -- valorPadrao CargaHoraria=' + valorPadrao);
    HomeGeralEstudo.PopulaRetorno(ret, 'Carga Horária', page.ddlCargaHoraria, 'Value', 'Key', valorPadrao);
}

HomeGeralEstudo.CargaHorariaAlterada = function()
{
    if (HomeGeralEstudo.RetornaSelectedStop(page.ddlDuracao.id))
    {
        HomeGeralEstudo.Busca(true);
        return;
    }
    
    var tipoCurso = HomeGeralEstudo.RetornaSelectedValue(page.ddlTipoCurso.id);
    var idade = page.txtAnos.value;
    var acomodacao = HomeGeralEstudo.GetConfigCamposEnviar(tipoCurso, 'Acomodacao');
    var idioma = HomeGeralEstudo.GetConfigCamposEnviar(tipoCurso, 'Idioma');
    var nivelIdioma = HomeGeralEstudo.GetConfigCamposEnviar(tipoCurso, 'NivelIdioma');
    var curso = HomeGeralEstudo.GetConfigCamposEnviar(tipoCurso, 'TipoCurso');
    var pais = HomeGeralEstudo.RetornaSelectedValue(page.ddlPais.id);
    var cidade = HomeGeralEstudo.RetornaSelectedValue(page.ddlCidade.id);
    var dataInicio = HomeGeralEstudo.RetornaSelectedTextDataInicio(page.ddlDataInicio.id);
    var duracao = HomeGeralEstudo.RetornaSelectedValue(page.ddlDuracao.id);
    var cargaHoraria = HomeGeralEstudo.RetornaSelectedValue(page.ddlCargaHoraria.id);
    
    if (tipoCurso == '' || idade.length < 2 || page.ddlPais.SelectedValue() == '' || page.ddlCidade.SelectedValue() == '' || page.ddlDataInicio.SelectedValue() == '' || page.ddlDuracao.SelectedValue() == '' || page.ddlCargaHoraria.SelectedValue() == '')
        return false;

    HomeGeralEstudo.ExibeMensagemDebug('HomeGeralEstudo.CargaHorariaAlterada() -- tipoCurso=' + tipoCurso + ' -- idade=' + idade + ' -- acomodacao=' + acomodacao + ' -- idioma=' + idioma + ' -- nivelIdioma=' + nivelIdioma + ' -- curso=' + curso + ' -- pais=' + pais + ' -- cidade=' + cidade + ' -- dataInicio=' + dataInicio + ' -- duracao=' + duracao + ' -- cargaHoraria=' + cargaHoraria);
}

/*HomeGeralEstudo.RetornaPaisCursosTarifario = function()
{
    HomeGeralEstudo.LimpaCampos(true, true, true, true, true)
    var curso = HomeGeralEstudo.RetornaCurso();
    if (curso == null) return false;
    Ajax.Tarifario.ListaPorPais(page.ddlTipoCurso.SelectedValue(), page.txtAnos.value, false, curso.Idioma, curso.Tipo, curso.Nivel, HomeGeralEstudo.EndRetornaPaisCursosTarifario);
}

HomeGeralEstudo.EndRetornaPaisCursosTarifario = function(ret)
{
    if (ret.Count() > 0)
        page.ddlPais.DataBind(ret, 'txt_pais', 'txt_pais');
    else
        alert('Não há dados para: País');

    page.ddlPais.AddAt(0, 'País', '');
    page.ddlPais.selectedIndex = 0;
    
}

HomeGeralEstudo.RetornaCidadeCursosTarifario = function()
{
    HomeGeralEstudo.LimpaCampos(false, true, true, true, true)
    var curso = HomeGeralEstudo.RetornaCurso();
    if (curso == null) return false;
    if (page.ddlPais.SelectedValue() == '') return false;
    Ajax.Tarifario.ListaPorCidade(page.ddlTipoCurso.SelectedValue(), page.txtAnos.value, false, curso.Idioma, curso.Tipo, curso.Nivel, page.ddlPais.SelectedValue(), HomeGeralEstudo.EndRetornaCidadeCursosTarifario);
}

HomeGeralEstudo.EndRetornaCidadeCursosTarifario = function(ret)
{
    if (ret.Count() > 0)
        page.ddlCidade.DataBind(ret, 'cidade', 'cidade');
    else
        alert('Não há dados para: Cidade');

    page.ddlCidade.AddAt(0, 'Cidade', '');
    page.ddlCidade.selectedIndex = 0;
}

HomeGeralEstudo.RetornaDataInicioCursosTarifario = function()
{
    HomeGeralEstudo.LimpaCampos(false, false, true, true, true)
    var curso = HomeGeralEstudo.RetornaCurso();
    if (curso == null) return false;
    if (page.ddlCidade.SelectedValue() == '') return false;
    Ajax.Tarifario.ListaPorDataInicio(page.ddlTipoCurso.SelectedValue(), page.txtAnos.value, false, curso.Idioma, curso.Tipo, curso.Nivel, page.ddlPais.SelectedValue(), page.ddlCidade.SelectedValue(), HomeGeralEstudo.EndRetornaDataInicioCursosTarifario);
}

HomeGeralEstudo.EndRetornaDataInicioCursosTarifario = function(ret)
{
    if (ret.Count() > 0)
    {
        for (var i = 0; i < ret.Count(); i++)
            ret[i].Column1 = ret[i].Column1.substr(3);
        page.ddlDataInicio.DataBind(ret, 'Column1', 'Column1');
    }
    else
        alert('Não há dados para: Data de inicio');

    page.ddlDataInicio.AddAt(0, 'Data de Inicio', '');
    page.ddlDataInicio.selectedIndex = 0;
}

HomeGeralEstudo.RetornaDuracaoCursosTarifario = function()
{
    HomeGeralEstudo.LimpaCampos(false, false, false, true, true)
    var curso = HomeGeralEstudo.RetornaCurso();
    if (curso == null) return false;
    Ajax.Tarifario.ListaPorDuracao(page.ddlTipoCurso.SelectedValue(), page.txtAnos.value, false, curso.Idioma, curso.Tipo, curso.Nivel, page.ddlPais.SelectedValue(), page.ddlCidade.SelectedValue(), "01/" + page.ddlDataInicio.SelectedValue(), HomeGeralEstudo.EndRetornaDuracaoCursosTarifario);
}

HomeGeralEstudo.EndRetornaDuracaoCursosTarifario = function(ret)
{
    if (ret.Count() > 0)
        page.ddlDuracao.DataBind(ret, 'nom_duracao', 'nom_duracao');
    else
        alert('Não há dados para: Duração');

    page.ddlDuracao.AddAt(0, 'Duração', '');
    page.ddlDuracao.selectedIndex = 0;
}

HomeGeralEstudo.RetornaCargaHorariaCursosTarifario = function()
{
    HomeGeralEstudo.LimpaCampos(false, false, false, false, true)
    var curso = HomeGeralEstudo.RetornaCurso();
    if (curso == null) return false;
    if (page.ddlDuracao.SelectedValue() == '') return false;
    Ajax.Tarifario.ListaPorCargaHoraria(page.ddlTipoCurso.SelectedValue(), page.txtAnos.value, false, curso.Idioma, curso.Tipo, curso.Nivel, page.ddlPais.SelectedValue(), page.ddlCidade.SelectedValue(), "01/" + page.ddlDataInicio.SelectedValue(), page.ddlDuracao.SelectedValue(), HomeGeralEstudo.EndRetornaCargaHorariaCursosTarifario);
}

HomeGeralEstudo.EndRetornaCargaHorariaCursosTarifario = function(ret)
{
    if (ret.Count() > 0)
        page.ddlCargaHoraria.DataBind(ret, 'nom_carga_horaria', 'nom_carga_horaria');
    else
        alert('Não há dados para: Carga Horária');

    page.ddlCargaHoraria.AddAt(0, 'Carga Horária', '');
    page.ddlCargaHoraria.selectedIndex = 0;
}
*/

HomeGeralEstudo.Busca = function(ignoraValidacao)
{
    if (ignoraValidacao != true)
    {
        if (HomeGeralEstudo.Valida() == false)
            return false;
    }
    
    var tipoCurso = HomeGeralEstudo.RetornaSelectedValue(page.ddlTipoCurso.id);
    var idade = page.txtAnos.value;
    var acomodacao = HomeGeralEstudo.GetConfigCamposEnviar(tipoCurso, 'Acomodacao');
    var idioma = HomeGeralEstudo.GetConfigCamposEnviar(tipoCurso, 'Idioma');
    var nivelIdioma = HomeGeralEstudo.GetConfigCamposEnviar(tipoCurso, 'NivelIdioma');
    var curso = HomeGeralEstudo.GetConfigCamposEnviar(tipoCurso, 'TipoCurso');
    var pais = HomeGeralEstudo.RetornaSelectedValue(page.ddlPais.id);
    var cidade = HomeGeralEstudo.RetornaSelectedValue(page.ddlCidade.id);
    var dataInicio = HomeGeralEstudo.RetornaSelectedTextDataInicio(page.ddlDataInicio.id);
    var duracao = HomeGeralEstudo.RetornaSelectedValue(page.ddlDuracao.id);
    var cargaHoraria = HomeGeralEstudo.RetornaSelectedValue(page.ddlCargaHoraria.id);
    
    if (ignoraValidacao != true)
    {
        if (tipoCurso == '' || idade.length < 2 || page.ddlPais.SelectedValue() == '' || page.ddlCidade.SelectedValue() == '' || page.ddlDataInicio.SelectedValue() == '' || page.ddlDuracao.SelectedValue() == '' || page.ddlCargaHoraria.SelectedValue() == '')
            return false;
    }

    HomeGeralEstudo.ExibeMensagemDebug('HomeGeralEstudo.Busca() -- tipoCurso=' + tipoCurso + ' -- idade=' + idade + ' -- acomodacao=' + acomodacao + ' -- idioma=' + idioma + ' -- nivelIdioma=' + nivelIdioma + ' -- curso=' + curso + ' -- pais=' + pais + ' -- cidade=' + cidade + ' -- dataInicio=' + dataInicio + ' -- duracao=' + duracao + ' -- cargaHoraria=' + cargaHoraria);

    var resultadoBusca = new App.URLRedirect(page.ResolveUrl("~/aspx/Produtos/ResultadoBusca.aspx"));
    resultadoBusca.Add('idTipoIntercambio', 1);
    resultadoBusca.Add('idTipoProduto', tipoCurso);
    resultadoBusca.Add('txtAnos', idade);
    resultadoBusca.Add('acomodacao', acomodacao);
    resultadoBusca.Add('cmbIdioma', idioma);
    resultadoBusca.Add('cmbNivelidioma', nivelIdioma);
    resultadoBusca.Add('TipoCurso', curso);
    resultadoBusca.Add('cmbAtividade', '');
    resultadoBusca.Add('cmbPais', pais);
    resultadoBusca.Add('cmbCidade', cidade);
    resultadoBusca.Add('cmbDataInicio', dataInicio);
    resultadoBusca.Add('cmbDuracao', duracao);
    resultadoBusca.Add('cmbCarga', cargaHoraria);
    resultadoBusca.Add('cmbAcomodacao', '');
    resultadoBusca.Go();
}

HomeGeralPassagem.Valida = function()
{

    if (page.txtOrigem.value.Trim() == "")
    {
        alert('Campo Origem obrigatório');
        return false;
    }

    if (page.txtDestino.value.Trim() == "")
    {
        alert('Campo Destino obrigatório');
        return false;
    }

    if (page.txtDataPartida.value.Trim() == "")
    {
        alert('Campo Data de Patida obrigatório');
        return false;
    }

    if (page.txtDataRetorno.value.Trim() == "")
    {
        alert('Campo Data de Retorno obrigatório');
        return false;
    }

    if (!Validator.IsDate(page.txtDataPartida.value))
    {
        alert('Campo Data de Partida inválido');
        return false;
    }

    if (!Validator.IsDate(page.txtDataRetorno.value))
    {
        alert('Campo Data de Retorno inválido');
        return false;
    }

    var dataPartida = $Date(page.txtDataPartida.value + ' 23:59');
    var dataRetorno = $Date(page.txtDataRetorno.value + ' 23:59');

    if (dataPartida < Date.Now())
    {
        alert('O campo Data de Partida não pode ser menor que a data atual');
        return false;
    }

    if (dataPartida > dataRetorno)
    {
        alert('O campo Data de Partida não pode ser maior que o campo Data de Retorno');
        return false;
    }

    if (page.ddlAdulto.selectedIndex == 0 && page.ddlEstudante.selectedIndex == 0 && page.ddlCriancas.selectedIndex == 0 && page.ddlBebes.selectedIndex == 0)
    {
        alert('Selecione um valor maior que zero para qualquer um dos campos:\r\n- Adultos acima de 12 anos\r\n- Estudantes de 12 a 34 anos\r\n- Crianças até 11 anos\r\n- Bebês até 2 anos');
        return false;
    }

    //if (!Validator.IsNumber(page.txtAdulto.value))
    //{
    //   alert('Campo Adultos acima de 12 anos inválido');
    //    return false;
    //}

    //if (page.ddlEstudante.selectedIndex == 0)
    //{
    //   alert('Campo Estudantes de 12 a 34 anos obrigatório');
    //    return false;
    //}

    //if (!Validator.IsNumber(page.txtEstudante.value))
    //{
    //    alert('Campo Estudantes de 12 a 34 anos inválido');
    //    return false;
    //}

    //if (page.txtCriancas.value.Trim() == "")
    //{
    //    alert('Campo Crianças até 11 anos obrigatório');
    //    return false;
    //}

    //if (!Validator.IsNumber(page.txtCriancas.value))
    //{
    //    alert('Campo Crianças até 11 anos inválido');
    //    return false;
    //}

    //if (page.txtBebes.value.Trim() == "")
    //{
    //   alert('Campo Bebês até 2 anos obrigatório');
    //    return false;
    //}

    //if (!Validator.IsNumber(page.txtBebes.value))
    //{
    //    alert('Campo Bebês até 2 anos inválido');
    //    return false;
    //}
    return true;
}

HomeGeralPassagem.Busca = function()
{
    if (HomeGeralPassagem.Valida() == false)
        return false;
    
    var resultadoBusca = new App.URLRedirect(page.ResolveUrl("~/aspx/Servicos/PassagemAereaResultados.aspx"), 'post');
    resultadoBusca.Add('hdnUrlRESULTADO', window["UrlResultadoPassagemAerea"]);
    resultadoBusca.Add('hdnORIGEM', page.txtOrigem.value);
    resultadoBusca.Add('hdnDESTINO', page.txtDestino.value);
    resultadoBusca.Add('hdnPARTIDA', page.txtDataPartida.value);
    resultadoBusca.Add('hdnRETORNO', page.txtDataRetorno.value);
    
    resultadoBusca.Add('hdnADULTOS', page.ddlAdulto.options[page.ddlAdulto.selectedIndex].value);
    resultadoBusca.Add('hdnESTUDANTES', page.ddlEstudante.options[page.ddlEstudante.selectedIndex].value);
    resultadoBusca.Add('hdnCRIANCAS', page.ddlCriancas.options[page.ddlCriancas.selectedIndex].value);
    resultadoBusca.Add('hdnBEBES', page.ddlBebes.options[page.ddlBebes.selectedIndex].value);
    resultadoBusca.Add('hdnVooDIRETO', "false");
    resultadoBusca.Add('hdnXML', '[WSAvailabilityService]'); //Carrega esse valor na página PassagemAereaResultados.aspx
    resultadoBusca.Add('hdnCABINE', "Economy");
    resultadoBusca.Add('hdnPAGINARESULTADO', window["UrlPaginaResultadoPassagemAerea"]);
    
    resultadoBusca.Go();
}

