var searcher_action;

$(document).ready(function () {
    var val_cl_destination_from;
    var val_cl_destination_from_2;
    var val_cl_destination_to;
    var val_cl_destination_to_2;
    
    $("#ajaxProgress").ajaxStart(function () {
        //$(this).bgiframe();
        $(this).show(0);
    }).ajaxStop(function () {
        $(this).hide(0);
    });
    
    $('#odlet_den').change(function () {
        setNavrat();
    });
    $('#odlet_mesiac').change(function () {
        setNavrat();
    });
    $('#odlet_rok').change(function () {
        setNavrat();
    });
    
    $('#cl_destination_from').bind('click', function () {
        addDepAirport('', '');
    });
    $('#cl_destination_to').bind('click', function () {
        addArrAirport('', '');
    });
    $('#cl_destination_from_2').bind('click', function () {
        addDepAirport_2('', '');
    });
    $('#cl_destination_to_2').bind('click', function () {
        addArrAirport_2('', '');
    });
    
    $('#cl_city').bind('click', function () {
        addCity('', '');
    });
    
    if($('#cl_destination_from').val() == '') {
        addDepAirport('BTS;VIE', 'Bratislava, Viedeň (BTS;VIE)');
    }
    else if($('#cl_destination_from').val() == '---') {
        addDepAirport('', '');
    }
    else{
        addDepAirport($('#cl_destination_from').val(),$('#dep_tmp').val());
    }
    if($('#cl_destination_to').val() != '') {
        addArrAirport($('#cl_destination_to').val(),$('#arr_tmp').val());
    }
    if($('#cl_destination_from_2').val() != '') {
        addDepAirport_2($('#cl_destination_from_2').val(),$('#dep_tmp_2').val());
    }
    if($('#cl_destination_to_2').val() != '') {
        addArrAirport_2($('#cl_destination_to_2').val(),$('#arr_tmp_2').val());
    }

    $("#DepDate,#ArrDate").datepicker({
        duration: "",
        firstDay: 1,
        dateFormat: "dd.mm.yy",
        beforeShow: customRange,
        onSelect: checkDate,
        showOn: "both",
        buttonImage: "/public/themes/images/kalendar.jpg",
        buttonText: "Kalendár",
        buttonImageOnly: true,
        numberOfMonths: 2,
        showAnim: ""
    });

    $('#rezervacny_formular').submit(function () {
        
        var odlet=$('#odlet_rok').val();
        if($('#odlet_mesiac').val()<10){
            odlet=odlet+'0'+parseInt($('#odlet_mesiac').val(),10);
        }
        else{
            odlet=odlet+parseInt($('#odlet_mesiac').val(),10);
        }
        if($('#odlet_den').val()<10){
            odlet=odlet+'0'+parseInt($('#odlet_den').val(),10);
        }
        else{
            odlet=odlet+parseInt($('#odlet_den').val(),10);
        }
        var navrat=$('#navrat_rok').val();
        if($('#navrat_mesiac').val()<10){
            navrat=navrat+'0'+parseInt($('#navrat_mesiac').val(),10);
        }
        else{
            navrat=navrat+parseInt($('#navrat_mesiac').val(),10);
        }
        if($('#navrat_den').val()<10){
            navrat=navrat+'0'+parseInt($('#navrat_den').val(),10);
        }
        else{
            navrat=navrat+parseInt($('#navrat_den').val(),10);
        }
        var pocet = eval(parseInt($('#ADT').val(),10) + parseInt($('#YTH').val(),10) + parseInt($('#CHD').val(),10) + parseInt($('#YCD').val(),10) + parseInt($('#INF').val(),10));
        
        if(($('#dep_tmp').val() == '') && ($('#cl_destination_from').val().length != 3) && ($('#cl_destination_from').val() != 'BTS;VIE')){
            alert('Zadajte prosím správne odletové miesto "Odkiaľ". Odletové miesto sa zadáva vypísaním aspoň prvých 3 znakov mesta, prípadne zadaním IATA kódu letiska a jeho následným odkliknutím v zozname letísk, ktoré Vám ponúkne systém');
            return false;
        }
        else if(($('#arr_tmp').val() == '') && ($('#cl_destination_to').val().length != 3) && ($('#cl_destination_to').val() != 'BTS;VIE')){
            alert('Zadajte prosím správne odletové miesto "Kam". Odletové miesto sa zadáva vypísaním aspoň prvých 3 znakov mesta, prípadne zadaním IATA kódu letiska a jeho následným odkliknutím v zozname letísk, ktoré Vám ponúkne systém');
            return false;
        }
        else if($('#sector_inynavrat').is(':checked') && ($('#dep_tmp_2').val() == '') && ($('#cl_destination_from_2').val().length != 3) && ($('#cl_destination_from_2').val() != 'BTS;VIE')){
            alert('Zadajte prosím správne odletové miesto "Odkiaľ (návrat)". Odletové miesto sa zadáva vypísaním aspoň prvých 3 znakov mesta, prípadne zadaním IATA kódu letiska a jeho následným odkliknutím v zozname letísk, ktoré Vám ponúkne systém');
            return false;
        }
        else if($('#sector_inynavrat').is(':checked') && ($('#arr_tmp_2').val() == '') && ($('#cl_destination_to_2').val().length != 3) && ($('#cl_destination_to_2').val() != 'BTS;VIE')){
            alert('Zadajte prosím správne odletové miesto "Kam (návrat)". Odletové miesto sa zadáva vypísaním aspoň prvých 3 znakov mesta, prípadne zadaním IATA kódu letiska a jeho následným odkliknutím v zozname letísk, ktoré Vám ponúkne systém');
            return false;
        }
        else if(isBTSVIEandMasterPricer()) {
            var to = $('#cl_destination_to').val();
            alert('Bohužiaľ Vám nemôžeme pri lete do „'+to+'“ naraz prehľadávať lety s odletom z Bratislavy aj z Viedne. Prosim zvoľte si iba jedno odletové miesto.');
            return false;
        }
        
        else if($('#cl_destination_from').val() == ''){
            alert('Zadajte prosím správne odletové miesto "Odkiaľ". Odletové miesto sa zadáva vypísaním aspoň prvých 3 znakov mesta, prípadne zadaním IATA kódu letiska a jeho následným odkliknutím v zozname letísk, ktoré Vám ponúkne systém');
            return false;
        }
        else if($('#cl_destination_to').val() == ''){
            alert('Zadajte prosím správne príletové miesto "Kam". Odletové miesto sa zadáva vypísaním aspoň prvých 3 znakov mesta, prípadne zadaním IATA kódu letiska a jeho následným odkliknutím v zozname letísk, ktoré Vám ponúkne systém');
            return false;
        }
        else if($('#DepAirport').val() != '' && $('#ArrAirport').val() && $('#DepAirport').val() == $('#ArrAirport').val()){
            alert('Vybrali ste si totožné odletové a príletové letisko. Vyplňte správne letiská');
            return false;
        }
        else if($('#sector_inynavrat').is(':checked') && $('#cl_destination_from_2').val() == ''){
            alert('Zadajte prosím správne odletové miesto "Odkiaľ (návrat)". Odletové miesto sa zadáva vypísaním aspoň prvých 3 znakov mesta, prípadne zadaním IATA kódu letiska a jeho následným odkliknutím v zozname letísk, ktoré Vám ponúkne systém');
            return false;
        }
        else if($('#sector_inynavrat').is(':checked') && $('#cl_destination_to_2').val() == ''){
            alert('Zadajte prosím správne príletové miesto "Kam (návrat)". Odletové miesto sa zadáva vypísaním aspoň prvých 3 znakov mesta, prípadne zadaním IATA kódu letiska a jeho následným odkliknutím v zozname letísk, ktoré Vám ponúkne systém');
            return false;
        } 
        else if(pocet > 9){
            alert('Bohužiaľ v jednej rezervácii môžete rezervovať maximílne 9 osôb. Opravte počet osôb a zvyšné osoby rezervujte v inej rezervácii');
            return false;
        }
        else if(($('#sector_inynavrat').is(':checked') || $('#sector_spiatocna').is(':checked')) && navrat<odlet){
            alert('Zadajte prosím správne dátumy letov, pretože dátum príletu nemôže byť pred dátumom odletu');
            return false;
        }
        else {
            showProgress();
            return true;
        }
    });
    
    
    if ($('#sector_spiatocna').is(':checked')) {
        hideOtherArr();
        showArrDate();
    }
    else if ($('#sector_jednosmerna').is(':checked')) {
        hideOtherArr();
        hideArrDate();
    }
    else if ($('#sector_inynavrat').is(':checked')) {
        showOtherArr();
        showArrDate();
    }
    
    $('#sector_inynavrat').click(function () {
        showOtherArr();
        showArrDate();
    });
    $('#sector_spiatocna').click(function () {
        hideOtherArr();
        showArrDate();
    });
    $('#sector_jednosmerna').click(function () {
        hideOtherArr();
        hideArrDate();
    });
    
    $('#dest_from_list').hide();
    
    // vyhladavanie 
    $('#AirlineFolder').click(function () {
        if($('#searcher2').length) {
            $('#searcher2').show();
            showOverlay();
        }
        else {
            $.ajax({
                url: '/ajax/airline/',
                success: function (req) {
                    showOverlay();
                    showAirlineList(req);
                }
            });
        }
    });
    
    $('#DepAirportFolder').click(function () {
        if($('#searcher').length) {
            $('#searcher').show();
            $("p.onlyDep", $('#searcher')).show();
            showOverlay();
            searcher_action = 'addDepAirport';
        }
        else {
            searcher_action = 'addDepAirport';
            $.ajax({
                url: '/ajax/countries/',
                //data: 'action=addDepAirport',
                data: 'action=addAirport',
                success: function (req) {
                    showOverlay();
                    showDestinationsList(req, true);
                }
            });
        }
    });
    $('#DepAirportFolder_2').click(function () {
        if($('#searcher').length) {
            $('#searcher').show();
            $("p.onlyDep", $('#searcher')).show();
            showOverlay();
            searcher_action = 'addDepAirport_2';
        }
        else {
                searcher_action = 'addDepAirport_2';
                $.ajax({
                url: '/ajax/countries/',
                //data: 'action=addDepAirport_2',
                data: 'action=addAirport',
                success: function (req) {
                    showOverlay();
                    showDestinationsList(req, true);
                }
            });
        }
    });
    
    $('#ArrAirportFolder').click(function () {
        if($('#searcher').length) {
            $('#searcher').show();
            $("p.onlyDep", $('#searcher')).hide();
            showOverlay();
            searcher_action = 'addArrAirport';
        }
        else {
            searcher_action = 'addArrAirport';
            $.ajax({
                url: '/ajax/countries/',
                //data: 'action=addArrAirport',
                data: 'action=addAirport',
                success: function (req) {
                    showOverlay();
                    showDestinationsList(req, false);
                }
            });
        }
    });
    
    $('#ArrAirportFolder_2').click(function () {
        if($('#searcher').length) {
            $('#searcher').show();
            $("p.onlyDep", $('#searcher')).hide();
            showOverlay();
            searcher_action = 'addArrAirport_2';
        }
        else {
            searcher_action = 'addArrAirport_2';
            $.ajax({
                url: '/ajax/countries/',
                //data: 'action=addArrAirport_2',
                data: 'action=addAirport',
                success: function (req) {
                    showOverlay();
                    showDestinationsList(req, false);
                }
            });
        }
    });
    
    //$('#cl_destination_from').autocomplete("../files/airports/airports_autocomplete.php",{
    if ($('#cl_city').length) {
        $('#cl_city').autocomplete("/ajax/goglobal-destination-autocomplete",{
            minChars: 3, 
            matchSubset:3, 
            matchContains:true, 
            cacheLength:3, 
            matchCase: true
        }).result(function(event, data, formatted){
            addCity(data[1], data[0]);
        });
    }

    if ($('#cl_destination_from').length) {
        $('#cl_destination_from').autocomplete("/ajax/destination-autocomplete-new",{
            minChars: 3, 
            matchSubset:3, 
            matchContains:true, 
            cacheLength:3, 
            matchCase: true
        }).result(function(event, data, formatted){
            addDepAirport(data[1], data[0]);
        });
    }

    if ($('#cl_destination_from_2').length) {
        $('#cl_destination_from_2').autocomplete("/ajax/destination-autocomplete-new",{
            minChars: 3, 
            matchSubset:3, 
            matchContains:true, 
            cacheLength:3, 
            matchCase: true
        }).result(function(event, data, formatted){
            addDepAirport_2(data[1], data[0]);
        });
    }

    if ($('#cl_destination_to').length) {
        $('#cl_destination_to').autocomplete("/ajax/destination-autocomplete-new",{
            minChars: 3, 
            matchSubset:3, 
            matchContains:true, 
            cacheLength:3, 
            matchCase: true
        }).result(function(event, data, formatted){
            addArrAirport(data[1], data[0]);
        });
    }

    if ($('#cl_destination_to_2').length) {
        $('#cl_destination_to_2').autocomplete("/ajax/destination-autocomplete-new",{
            minChars: 3, 
            matchSubset:3, 
            matchContains:true, 
            cacheLength:3, 
            matchCase: true
        }).result(function(event, data, formatted){
            addArrAirport_2(data[1], data[0]);
        });
    }
    
    if ($('#Airline').length) {
        $('#Airline').autocomplete("/ajax/airline-autocomplete",{
            minChars: 2, 
            matchSubset:2, 
            matchContains:0, 
            cacheLength:2,
            selectOnly:1
        });
    }

    $("a").bind('click', function(){
        if ($(this).attr('rel') == 'symphony') {showProgressSymphony(); return true;}
        if ($(this).attr('rel') == 'skyeurope') {showProgressSkyEurope(); return true;}
    })
});
function isBTSVIEandMasterPricer() {
    var btsvie = false;
    $('.datePlusMinus').each(function () {
        if($(this)[0].checked) {
            if($(this).val() == '0') {
                $('.dep_inputs').each(function () {
                    if($(this).attr('name')=='DepAirport'){
                        if($(this).val()=='BTS;VIE'){
                            btsvie = true;
                        }
                        
                    }
                });
            }
        }
    });
    return btsvie;
}
function isBTSVIEandMasterPricer() {
    var btsvie = false;
    $('.datePlusMinus').each(function () {
        if($(this)[0].checked) {
            if($(this).val() == '0') {
                $('.dep_inputs').each(function () {
                    if($(this).attr('name')=='DepAirport'){
                        if($(this).val()=='BTS;VIE'){
                            btsvie = true;
                        }
                        
                    }
                });
            }
        }
    });
    return btsvie;
}
function showOverlay() {
    var pageSize = getPageSize();
    $('#searcher_overlay').css('height', pageSize[1] + 'px');
    $('#searcher_overlay').bgiframe();
    $('#searcher_overlay').show();
}

function hideOtherArr() {
    $('#dep_airport2_row').hide();
    $('#arr_airport2_row').hide();
}

function showOtherArr() {
    $('#dep_airport2_row').show();
    $('#arr_airport2_row').show();
}

function showArrDate() {
    $('#arr_date_row').show();
}
function hideArrDate() {
    $('#arr_date_row').hide();
}

function showDestinationsList(dest, onlyDep) {
    var d = $('<div id="searcher"/>');
    // close
    $('<div class="sclose"/>').append($('<a href="javascript:void(0);"/>')
        .append('<span>-</span>')
        .click(function () {
            d.hide(); //d.remove();
            $('#searcher_overlay').hide();
        })
    ).appendTo(d);
    d.append()
    
    
    var popupBody = $('<div class="body"/>').css({
        'padding':'3px'
    });
    
    popupBody.append(dest);
    
    if (onlyDep) {
        $('p.onlyDep', popupBody).show();
    } else {
        $('p.onlyDep', popupBody).hide();
    }
    popupBody.appendTo(d);
    
    d.appendTo(document.body);
    
    $('#searcher').bgiframe();
}

function showAirlineList(airline) {
    var d = $('<div id="searcher2"/>');
    // close
    $('<div class="sclose"/>').append($('<a href="javascript:void(0);"/>')
        .append('<span>-</span>')
        .click(function () {
            d.hide(); //d.remove();
            $('#searcher_overlay').hide();
        })
    ).appendTo(d);
    d.append()

        
    var popupBody = $('<div class="body"/>').css({
        'padding':'3px'
    });
    
    popupBody.append(airline);
    
    popupBody.appendTo(d);
    
    d.appendTo(document.body);
    
}
function showAirports(iata, action) {
    $('#searcher').remove();
    $.ajax({
        url: '/files/airports/airports.php',
        data: 'iata='+iata+'&action='+action,
        success: function (req) {
            showDestinationsList(req);
        }
    });
}
/*
function addDepAirport(iata, name) {
    $('#dest_from_list').show();
    
    $('#cl_destination_from').val('');
    $('#cl_destination_from').attr('name', 'dep_tmp');
    $('#dep_tmp').attr('name', 'DepAirport');
    
    var values = $('#dep_tmp').val();
    $('#dep_tmp').val(values + iata + ';');
    
    var nm = $('<li/>').attr('rel', iata).append(name)
        .append($('<a href="javascript:void(0)" class="ico delete"/>').append('<span>-</span>').click(function () {
            $(this).parent().remove();
            var new_val = '';
            $('#dest_from_list li').each(function () {
                new_val += $(this).attr('rel') + ';';
            });
            $('#dep_tmp').val(new_val);
        }));
    
    $('#dest_from_list').append(nm);
    
    $('#searcher').remove();
    $('#searcher_overlay').hide();
}
*/
function addAirline(name) {
    $('#Airline').val(name);
    $('#searcher2').hide();
    $('#searcher_overlay').hide();
}
function addAirport(iata, name) {
    if(searcher_action == 'addDepAirport') {
        addDepAirport(iata, name);
    }
    else if(searcher_action == 'addArrAirport') {
        addArrAirport(iata, name);
    }
    if(searcher_action == 'addDepAirport_2') {
        addDepAirport_2(iata, name);
    }
    else if(searcher_action == 'addArrAirport_2') {
        addArrAirport_2(iata, name);
    }
}
function addDepAirport(iata, name) {
    $('#cl_destination_from').attr('name', 'dep_tmp');
    $('#cl_destination_from').val('');
    $('#dep_tmp').attr('name', 'DepAirport');
    
    $('#cl_destination_from').val(name);
    $('#dep_tmp').val(iata);
    
    //$('#searcher').remove();
    $('#searcher').hide();
    $('#searcher_overlay').hide();
}

function addDepAirport_2(iata, name) {
    $('#cl_destination_from_2').attr('name', 'dep_tmp_2');
    $('#cl_destination_from_2').val('');
    $('#dep_tmp_2').attr('name', 'DepAirport_1');
    
    $('#cl_destination_from_2').val(name);
    $('#dep_tmp_2').val(iata);
    
    $('#searcher').hide(); //$('#searcher').remove();
    $('#searcher_overlay').hide();
}

function addArrAirport(iata, name) {
    $('#cl_destination_to').attr('name', 'arr_tmp');
    $('#cl_destination_to').val('');
    $('#arr_tmp').attr('name', 'ArrAirport');
    
    $('#cl_destination_to').val(name);
    $('#arr_tmp').val(iata);
    
    $('#searcher').hide(); //$('#searcher').remove();
    $('#searcher_overlay').hide();
}

function addArrAirport_2(iata, name) {
    $('#cl_destination_to_2').attr('name', 'arr_tmp_2');
    $('#cl_destination_to_2').val('');
    $('#arr_tmp_2').attr('name', 'ArrAirport_1');
    
    $('#cl_destination_to_2').val(name);
    $('#arr_tmp_2').val(iata);
    
    $('#searcher').hide(); //$('#searcher').remove();
    $('#searcher_overlay').hide();
}

function addCity(code, name) {
    $('#cl_city').attr('name', 'city_tmp');
    $('#cl_city').val('');
    $('#city_tmp').attr('name', 'city');
    
    $('#cl_city').val(name);
    $('#city_tmp').val(code);
    
    //$('#searcher').remove();
    $('#searcher').hide();
    $('#searcher_overlay').hide();
}

/*
function selectDepItem(li) {
    var name = $(li).html();
    var nm = name.split("(");
    var iata = nm[1].substring(0,parseInt(nm[1].length - 1));
    addDepAirport(iata, name);
}

function selectDepItem_2(li) {
    var name = $(li).html();
    var nm = name.split("(");
    var iata = nm[1].substring(0,parseInt(nm[1].length - 1));
    addDepAirport_2(iata, name);
}

function selectArrItem(li) {
    var name = $(li).html();
    var nm = name.split("(");
    var iata = nm[1].substring(0,parseInt(nm[1].length - 1));
    addArrAirport(iata, name);
}

function selectArrItem_2(li) {
    var name = $(li).html();
    var nm = name.split("(");
    var iata = nm[1].substring(0,parseInt(nm[1].length - 1));
    addArrAirport_2(iata, name);
}

function selectCity(li) {
    var city = $(li).html();
    var nm = city.split(":");
    addCity(nm[1], nm[2]);
}
*/
function toggle(id) {
        $('#listAirport_'+id).toggle();
    };
    
function setNavrat() {
    var odlet = $('#odlet_rok').val()+formatInt($('#odlet_mesiac').val(),2)+formatInt($('#odlet_den').val(),2);
    var navrat = $('#navrat_rok').val()+formatInt($('#navrat_mesiac').val(),2)+formatInt($('#navrat_den').val(),2);
    
    if(odlet>navrat){
        $('#navrat_rok').val($('#odlet_rok').val());
        $('#navrat_mesiac').val($('#odlet_mesiac').val());
        $('#navrat_den').val($('#odlet_den').val());
    }
}

function formatInt(val,len) {
    var diff = len-val.length;
    if(diff>0){
        var new_val = '';
        for(var i=0;i<diff;i++){
            new_val +='0';
        }
        new_val += val;
        return new_val;
    }
    else{
        return val;
    }
}

function customRange(input) {
    return {minDate: (input.id == "ArrDate" ? $("#DepDate").datepicker("getDate") : new Date())}; 
        //maxDate: (input.id == "DepDate" ? $("#ArrDate").datepicker("getDate") : null)}; 
}
function checkDate(input) {
    var odlet = input.substring(6,8)+input.substring(3,4)+input.substring(0,1);
    var input2 = $("#ArrDate").val();
    var navrat = input2.substring(6,8)+input2.substring(3,4)+input2.substring(0,1);
    if(odlet>navrat){
        $("#ArrDate").val(input);
    }
    $("#odlet_den").val($("#DepDate").val().substring(0,2));
    $("#odlet_mesiac").val($("#DepDate").val().substring(3,5));
    $("#odlet_rok").val($("#DepDate").val().substring(6,10));
    $("#navrat_den").val($("#ArrDate").val().substring(0,2));
    $("#navrat_mesiac").val($("#ArrDate").val().substring(3,5));
    $("#navrat_rok").val($("#ArrDate").val().substring(6,10));
}
