﻿/// <reference path="../core-1.0.0.js"/>
/// <reference path="../jquery-1.5.1.js"/>
//Load Functions
$(document).ready(function () {
    LoadJSSearchEngine();
});

function LoadJSSearchEngine() {
    $("#ddlCountry").unbind("change");
    $('#ddlCountry').change(function (event) {
        event.stopImmediatePropagation(); //existe um problema no evento change que é chamado mais de uma vez, isso faz parar esse problema
        ClearTop();
        if (this.value != "" && this.value != 0) {
            Page.ProxyService.InvokeDDL("/SearchEngine/CityList", { countryId: this.value }, $('#ddlCity'), { Text: "Selecione uma cidade", Value: "" }, null, "lite");
        }
        else {
            Page.DropDownListClear($('#ddlCity'));
        }
    }).keyup(function () {
        $(this).change();
    });
    $("#cityTopAux").find("input[type=radio]").change(function (event) {
        event.stopImmediatePropagation(); //existe um problema no evento change que é chamado mais de uma vez, isso faz parar esse problema
        $("#ddlCountry")[0].selectedIndex = 0;
        Page.DropDownListClear($('#ddlCity'));
    });
    $("#ddlCity").unbind("change");
    $("#ddlCity").change(function (event) {
        event.stopImmediatePropagation(); //existe um problema no evento change que é chamado mais de uma vez, isso faz parar esse problema
        ClearTop();
    }).keyup(function () {
        $(this).change();
    });

    $("#btnPesquisar").click(function () {
        btnPesquisar();
    });
    var daysInAdvance = $("#__htnDaysInAdvance").val();
    var minDate = "+0";
    if (daysInAdvance != "" && daysInAdvance != undefined && daysInAdvance != null) {
        minDate = "+" + daysInAdvance;
    }
    var mark = $("#hdnMark").val();
    var urlCalendar = "/atracoes/Content/themes/images/" + mark + "/calendario.png";

    var datesviator = $("#txtDateFrom, #txtDateTo").datepicker({
        showOn: "both",
        buttonImage: urlCalendar,
        buttonImageOnly: true,
        showButtonPanel: true,
        minDate: minDate,
        maxDate: '+1y',
        numberOfMonths: 2,
        dateFormat: 'dd/mm/yy',
        //showAnim: 'fade', problema em homologacao
        showAnim: '', 
        closeText: 'Fechar',
        currentText: 'Mês Atual',
        dayNamesMin: ['D', 'S', 'T', 'Q', 'Q', 'S', 'S'],
        monthNames: ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'],
        onSelect: function (selectedDate) {
            if (this.id == "txtDateFrom") {
			    instance = $(this).data("datepicker"),
				date = $.datepicker.parseDate(
					instance.settings.dateFormat ||
					$.datepicker._defaults.dateFormat,
					selectedDate, instance.settings);
                datesviator.not(this).datepicker("option", "minDate", date);
            }
        }
    });
    $("#txtDateFrom, #txtDateTo").change(function () {
        try {
            var dateMin = new Date();
            dateMin.setDate(dateMin.getDate() + Number($("#__htnDaysInAdvance").val()));
            var dateFrom = $("#txtDateFrom").datepicker("getDate");
            if (dateFrom != null) {
                if (dateFrom > dateMin)
                    dateMin = dateFrom;
            }
            $("#txtDateTo").datepicker("option", "minDate", dateMin);
            //$("#txtDateFrom").datepicker("option", "maxDate", $("#txtDateTo").datepicker("getDate"));
        }
        catch (ex) { }
    });
    

    if ($('#ddlCountry').val() > 0) {
        $('#ddlCountry').change();
    }
}
function ClearTop() {
    var top = $("#cityTopAux").find("input[type=radio]:checked");
    if (top != null && top != undefined && top != "") {
        top.removeAttr("checked");
    }
}
function btnPesquisar() {
    var iata = $('#ddlCity')[0].value;
    var dateFrom = $('#txtDateFrom')[0].value;
    var dateTo = $('#txtDateTo')[0].value;

    var qsIataName = $("#__qsIATA")[0].value;
    var qsDateFromName = $("#__qsDateFrom")[0].value;
    var qsDateToName = $("#__qsDateTo")[0].value;
    var startValidDate = new Date();
    var startValidDateOneYear = new Date();

    startValidDate.setDate(startValidDate.getDate() + Number($("#__htnDaysInAdvance").val()));

    startValidDateOneYear.setDate(startValidDateOneYear.getDate() + 365);

    var dd = startValidDate.getDate();
    var mm = startValidDate.getMonth() + 1;
    var yyyy = startValidDate.getFullYear();
    if (dd < 10) { dd = '0' + dd; }
    if (mm < 10) { mm = '0' + mm; }

    var validDateString = dd + "/" + mm + "/" + yyyy;


    var dd2 = startValidDateOneYear.getDate();
    var mm2 = startValidDateOneYear.getMonth() + 1;
    var yyyy2 = startValidDateOneYear.getFullYear();
    if (dd2 < 10) { dd2 = '0' + dd2; }
    if (mm2 < 10) { mm2 = '0' + mm2; }

    var validDateString2 = dd2 + "/" + mm2 + "/" + yyyy2;


    if (iata == "") {
        var top = $("#cityTopAux").find("input[type=radio]:checked");
        iata = top.val();
        if (iata == "" || iata == undefined || iata == null) {
            alert("Preencha o campo destino e tente novamente.");
            return false;
        }
    }

    if (dateFrom == "" || dateTo == "") {
        alert("Preencha a data 'De' e 'Até' e tente novamente.");
        return false;
    }
    if (!ValidateDate(dateFrom, true)) {
        alert("Favor selecionar uma data 'De' valida");
        return false;
    } else if (!CompareDates(validDateString, dateFrom)) {
        alert("A data 'De' não pode ser menor que " + validDateString);
        return false;
    }

    if (!ValidateDate(dateTo, false)) {
        alert("Favor selecionar uma data 'Até' valida ");
        return false;
    } else if (!CompareDates(validDateString, dateTo)) {
        alert("A data 'Até' não pode ser menor que " + validDateString);
        return false;
    }

    if (!CompareDates(dateFrom, validDateString2)) {
        alert("A data 'De' não pode ser maior que 1 ano.");
        return false;
    }
    if (!CompareDates(dateTo, validDateString2)) {
        alert("A data 'Até' não pode ser maior que 1 ano.");
        return false;
    }

    if (!CompareDates(dateFrom, dateTo)) {
        alert("Data 'De' deve ser anterior a data 'Até' ");
        return false;
    }


    Page.Transfer("/atracoes/busca?" + qsIataName + "=" + iata + "&" + qsDateFromName + "=" + dateFrom + "&" + qsDateToName + "=" + dateTo);
    return false;
}
function CompareDates(dateFrom, dateTo) {
    var firstDate = parseInt(dateFrom.substr(6, 4) + dateFrom.substr(3, 2) + dateFrom.substr(0, 2));
    var secondDate = parseInt(dateTo.substr(6, 4) + dateTo.substr(3, 2) + dateTo.substr(0, 2));
    if (firstDate <= secondDate) {
        return true;
    }
    return false;
}
function ValidateDate(date, isFirst) {
    if (date.length < 10)
        return false;

    var day = date.substr(0, 2);
    var month = date.substr(3, 2);

    if (isFirst) {
        var daysInAdvance = $("#__htnDaysInAdvance").val();
        if (daysInAdvance == null || daysInAdvance == undefined) {
            daysInAdvance = 0;
        }
        if (day < Number(daysInAdvance)) {

        }
    }

    var nowDate = new Date();
    if (day > 31 || day <= 0)
        return false;

    if (month > 12 || month <= 0)
        return false;

    return true;
}



function VerificaSoNumeros(objCampo, e) {
    var tecla = new Number();
    if (window.event) {
        tecla = e.keyCode;
    } else if (e.which) {
        tecla = e.which;
    } else
        return true;
    if ((tecla == 8) || (tecla == 9) || (tecla == 46))
        return true;
    if ((tecla < 48) || (tecla > 57))
        return false;
    return true;
}
function FormataData(objCampo, intKeyCode) {
    if (!VerificaSoNumeros(objCampo, intKeyCode)) {
        return false;
    }
    else {
        strValor = objCampo.value;

        intLengthValor = parseInt(strValor.length);
        if (intLengthValor == 0 && intKeyCode.charCode > 51) {
            objCampo.value = strValor + "0";
        }
        if ((intKeyCode.keyCode != 8) && (intKeyCode.keyCode != 46)) {
            if (intLengthValor == 2) {
                if (intKeyCode.charCode > 49)
                    objCampo.value = strValor + "/0";
                else
                    objCampo.value = strValor + "/";
            }
            if (intLengthValor == 5 && objCampo.maxLength > 5) {
                objCampo.value = strValor + "/";
            }
        }
        return true;
    }

}
