function semVagasPeriodo() {
    var date = this.value.split('/');
    var selected_date = new Date(parseInt(date[2], 10), parseInt(date[1], 10)-1, parseInt(date[0],10));
    var nodate = new Array(new Date(2011, 2, 14), new Date(2011, 2, 18));
    
    if (selected_date >= nodate[0] && selected_date <= nodate[1]) {
        alert('Sem disponibilidade para o período de 14-03-2011 a 18-03-2011. Por favor altere a data para novas consultas.');
    }
}

function sum(elementId)
{
    var element = document.getElementById(elementId);
    if (element)
    {
        element.value = parseInt(element.value, 10) + 1;
    }
}

function minus(elementId)
{
    var element = document.getElementById(elementId);
    if (element && element.value > 0)
    {
        element.value = parseInt(element.value, 10) - 1;
    }
}

var aptos = {
    'luxo_twin': {'capacidade_maxima': 3, 'valores': {'normal': {2010: [133, 163, 196], 2011: [133, 163, 196]}, 'fds':{2010:[133, 163, 196], 2011:[133, 163, 196]}, 'alterada':{2010:[133, 163, 196], 2011:[133, 163, 196]}}}, 
    'luxo_casal': {'capacidade_maxima': 2, 'valores': {'normal':{2010:[133, 163], 2011:[133, 163]}, 'fds':{2010:[133, 163], 2011:[133, 163]}, 'alterada':{2010:[133, 163], 2011:[133, 163]}}}, 
    'suite_luxo': {'capacidade_maxima': 3, 'valores': {'normal':{2010:[159, 196, 229], 2011: [159, 196, 229]}, 'fds':{2010:[159, 196, 229], 2011:[159, 196, 229]}, 'alterada':{2010:[159, 196, 229], 2011:[159, 196, 229]}}},
    'suite_master': {'capacidade_maxima': 3, 'valores': {'normal':{2010:[189, 229, 276], 2011:[189, 229, 276]}, 'fds':{2010:[189, 229, 276], 2011:[189, 229, 276]}, 'alterada':{2010:[189, 229, 276], 2011:[189, 229, 276]}}},
    'conjugado': {'capacidade_maxima': 2, 'valores': {'normal':{2010:[133, 163], 2011:[133, 163]}, 'fds':{2010:[133, 163], 2011:[133, 163]}, 'alterada':{2010:[133, 163], 2011:[133, 163]}}},
    'especiais': {'capacidade_maxima': 2, 'valores': {'normal':{2010:[133, 163], 2011:[133, 163]}, 'fds':{2010:[133, 163], 2011:[133, 163]}, 'alterada':{2010:[133, 163], 2011:[133, 163]}}}
};

Array.prototype.inArray = function(value) {
    for (var i = 0; i < this.length; i++) {
        if (this[i] == value) {
            return true;
        }
    }
    return false;
}

function isWeekendValue() {
    var weekend = [5,6,0]; //sexta, sabado, domingo
	// Begin Leo Zica
	var de = $('#data_entrada').val();
	var ds = $('#data_saida').val();
	// End Leo Zica
    var checkin = $('#data_entrada').datepicker('getDate').getDay();
    var checkout = $('#data_saida').datepicker('getDate').getDay();
	/*(Fabrício Zica)if (weekend.inArray(checkin) && (weekend.inArray(checkout) || checkout == 1)) {*/
    if (weekend.inArray(checkin) && (weekend.inArray(checkout) || checkout == 1) && de != '10/06/2011' && de != '11/06/2011' && de != '12/06/2011' && ds != '10/06/2011' && ds != '11/06/2011' && ds != '12/06/2011' && ds != '13/06/2011') {
        //ambas as datas sao fds ou entro no fim de semana e saio segunda => tarifa fds
        return true;
    }
    return false;
}

function getYearValue() {
    var checkin = $('#data_entrada').datepicker('getDate');
    var checkout = $('#data_saida').datepicker('getDate');
    
    if (checkout.getFullYear() == 2011 && checkout.getMonth() >= 1 && checkout.getMonth() <= 11) {
        return 2011;
    }
    else {
        return 2010;
    }
}

function findMaxCapacity() {
    var max = 0;
    for (var apto in aptos)
    {
        if (aptos[apto]['capacidade_maxima'] > max)
        {
            max = aptos[apto]['capacidade_maxima'];
        }
    }
    return max;
}

function aptoValue()
{
    var lugares_ocupados = parseInt(document.getElementById('adultos').value, 10) + parseInt(document.getElementById('criancas').value, 10);
    if (lugares_ocupados == 0)
    {
        alert('Selecione a quantidade de pessoas.');
    }
    else
    {
        var tipo_apto = document.getElementById('tipo_apto');
        if (lugares_ocupados <= findMaxCapacity() && tipo_apto.value != '')
        {
            if (aptos[tipo_apto.value]['capacidade_maxima'] >= lugares_ocupados && lugares_ocupados > 0)
            {
                //neste ponto descrubro se eh fim de semana
                //var tarifa = isWeekendValue() ? 'fds' : 'normal';
				// ZICA DO SACI
				var de = $('#data_entrada').val();
				var ds = $('#data_saida').val();
				//var tarifa = (isWeekendValue()) ? ('fds') : ( de == '29/10/2011' || de == '30/10/2011' || ds == '29/10/2011' || ds == '30/10/2011' ? 'alterada' : 'normal');
				var tarifa = ( de == '29/10/2011' || de == '30/10/2011' || ds == '29/10/2011' || ds == '30/10/2011') ? 'alterada' : (isWeekendValue() ? 'fds' : 'normal');
				// END ZICA DO SACI
                var valorAno = getYearValue();
                
                document.getElementById('valor_estimado').value = 'R$ '+aptos[tipo_apto.value]['valores'][tarifa][valorAno][lugares_ocupados-1].toFixed(2);
            }
            else if(aptos[tipo_apto.value]['capacidade_maxima'] < lugares_ocupados)
            {
                alert('O apartamento selecionado acomoda no máximo '+aptos[tipo_apto.value]['capacidade_maxima']+' pessoas');
            }
        }
        else if (tipo_apto.value != '')
        {
            alert('Não existe apartamento que acomode todas as pessoas. Por favor, faça reservas separadamente.');
        }
    }
}

window.onload = function(){

    var listen_update_elements = [{'listen':'more_adult', 'update':'adultos'}, {'listen':'less_adult', 'update':'adultos'}, {'listen':'more_child', 'update':'criancas'}, {'listen':'less_child', 'update':'criancas'}];
    
    for (var i = 0; i < listen_update_elements.length; i++)
    {
        document.getElementById(listen_update_elements[i]['listen']).onclick = function() {
            for (var j = 0; j < listen_update_elements.length; j++)
            {
                if (listen_update_elements[j]['listen'] == this.id && this.id.search('more') != -1)
                {
                    sum(listen_update_elements[j]['update']);
                    aptoValue();
                }
                else if (listen_update_elements[j]['listen'] == this.id && this.id.search('less') != -1)
                {
                    minus(listen_update_elements[j]['update']);
                    aptoValue();
                }
            }
        };
    }
    
    document.getElementById('tipo_apto').onchange = aptoValue;
    
    $('#data_entrada').datepicker($.datepicker.regional['pt-BR']);
    $('#data_saida').datepicker($.datepicker.regional['pt-BR']);
    
    document.getElementById('data_entrada').onchange = semVagasPeriodo;
    document.getElementById('data_saida').onchange = semVagasPeriodo;
}
