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').focus(function () {
        addDepAirport('', '');
    });
    $('#cl_destination_to').focus(function () {
        addArrAirport('', '');
    });
    $('#cl_destination_from_2').focus(function () {
        addDepAirport_2('', '');
    });
    $('#cl_destination_to_2').focus(function () {
        addArrAirport_2('', '');
    });
    
    
    if($('#cl_destination_from').val() == '') {
        // addDepAirport('BTS', 'Bratislava (BTS)');
    }
    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());
    }
    
    $('#rezervacny_formular').submit(function () {
        //odlet=$('#odlet_rok').val()+$('#odlet_mesiac').val()+$('#odlet_den').val();
        //navrat=$('#navrat_rok').val()+$('#navrat_mesiac').val()+$('#navrat_den').val();
        
        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();
        var dd = new Date();
        var mesiac = dd.getMonth()+1;
        var den = dd.getDate();
        if (mesiac<10)mesiac='0'+mesiac;
        if (den<10)den='0'+den;
        var teraz = '' + dd.getFullYear() + mesiac + den;
        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')[0].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')[0].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;
        }
            /*
        var kontrola_dest=/^[A-Z]{3}$|^[A-Z]{3};[A-Z]{3}$/;
        if(($('#dep_tmp').val() == '') && ($('#cl_destination_from').val().search(kontrola_dest) == '-1')) {
            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().search(kontrola_dest) == '-1')) {
            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')[0].checked && ($('#dep_tmp_2').val() == '') && ($('#cl_destination_from_2').val().search(kontrola_dest) == '-1')){
            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')[0].checked && ($('#arr_tmp_2').val() == '') && ($('#cl_destination_to_2').val().search(kontrola_dest) == '-1')){
            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(($('#dep_tmp').val() == 'BTS;VIE') && ($('#cl_destination_from').val() != 'Bratislava, Viedeň') && ($('#cl_destination_from').val() != 'Bratislava, Viedeň, Všetky letiská (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($('#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($('#cl_destination_to').val() == $('#cl_destination_from').val()){
            alert('Vybrali ste si totožné odletové a príletové letisko. Vyplňte správne letiská');
            return false;
        }
        else if($('#sector_inynavrat')[0].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')[0].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')[0].checked || $('#sector_spiatocna')[0].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 if(navrat<teraz || odlet <teraz){
            alert('Zadajte prosím správne dátumy letov, pretože dátum nemôže byť pred aktuálnym dátumom');
            return false;
        }
        else {

            showProgress();
            return true;
        }
    });
    
    
    if ($('#sector_spiatocna')[0].checked) {
        hideOtherArr();
        showArrDate();
    }
    else if ($('#sector_jednosmerna')[0].checked) {
        hideOtherArr();
        hideArrDate();
    }
    else if ($('#sector_inynavrat')[0].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();
    
    $('#cl_destination_from').focus(function () {
        var val_cl_destination_from = $('#cl_destination_from').val();
    });
    $('#cl_destination_from').keyup(function (key) {
        if(val_cl_destination_from != $('#cl_destination_from').val()) {
            if(key.keyCode != 13) {    // ENTER
                val_cl_destination_from = $('#cl_destination_from').val();
                $('#cl_destination_from').attr('name', 'DepAirport');
                $('#dep_tmp').attr('name', 'dep_tmp');
            }
        }
    });
    
    $('#cl_destination_from_2').focus(function () {
        var val_cl_destination_from_2 = $('#cl_destination_from_2').val();
    });
    $('#cl_destination_from_2').keyup(function (key) {
        if(val_cl_destination_from_2 != $('#cl_destination_from_2').val()) {
            if(key.keyCode != 13) {    // ENTER
                val_cl_destination_from_2 = $('#cl_destination_from_2').val();
                $('#cl_destination_from_2').attr('name', 'DepAirport_1');
                $('#dep_tmp_2').attr('name', 'dep_tmp_2');
            }
        }
    });
    
    $('#cl_destination_to').focus(function () {
        var val_cl_destination_to = $('#cl_destination_to').val();
    });
    $('#cl_destination_to').keyup(function (key) {
        if(val_cl_destination_to != $('#cl_destination_to').val()) {
            if(key.keyCode != 13) {    // ENTER
                val_cl_destination_to = $('#cl_destination_to').val();
                $('#cl_destination_to').attr('name', 'ArrAirport');
                $('#arr_tmp').attr('name', 'arr_tmp');
            }
        }
    });
    
    $('#cl_destination_to_2').focus(function () {
        var val_cl_destination_to_2 = $('#cl_destination_to_2').val();
    });
    $('#cl_destination_to_2').keyup(function (key) {
        if(val_cl_destination_to_2 != $('#cl_destination_to_2').val()) {
            if(key.keyCode != 13) {    // ENTER
                val_cl_destination_to_2 = $('#cl_destination_to_2').val();
                $('#cl_destination_to_2').attr('name', 'ArrAirport_1');
                $('#arr_tmp_2').attr('name', 'arr_tmp_2');
            }
        }
    });
    
    
    // vyhladavanie 
    $('#AirlineFolder').click(function () {
        if($('#searcher2').length) {
            $('#searcher2').show();
            showOverlay();
        }
        else {
            $.ajax({
                url: '/ajax/airline/',
                success: function (req) {
                    showOverlay();
                    showAirlineList(req);
                }
            });
        }
    });
    
    $('#DepAirportFolder').click(function () {
        showOverlay();
        if($('#searcher').length) {
            $('#searcher').show();
            searcher_action = 'addDepAirport';
        }
        else {
            searcher_action = 'addDepAirport';
            $.ajax({
                url: '/ajax/countries/',
                //data: 'action=addDepAirport',
                data: 'action=addAirport',
                success: function (req) {
                    showDestinationsList(req);
                }
            });
        }
    });
    $('#DepAirportFolder_2').click(function () {
        showOverlay();
        if($('#searcher').length) {
            $('#searcher').show();
            searcher_action = 'addDepAirport_2';
        }
        else {
                searcher_action = 'addDepAirport_2';
                $.ajax({
                url: '/ajax/countries/',
                //data: 'action=addDepAirport_2',
                data: 'action=addAirport',
                success: function (req) {
                    showDestinationsList(req);
                }
            });
        }
    });
    
    $('#ArrAirportFolder').click(function () {
        showOverlay();
        if($('#searcher').length) {
            $('#searcher').show();
            searcher_action = 'addArrAirport';
        }
        else {
            searcher_action = 'addArrAirport';
            $.ajax({
                url: '/ajax/countries/',
                //data: 'action=addArrAirport',
                data: 'action=addAirport',
                success: function (req) {
                    showDestinationsList(req);
                }
            });
        }
    });
    
    $('#ArrAirportFolder_2').click(function () {
        showOverlay();
        if($('#searcher').length) {
            $('#searcher').show();
            searcher_action = 'addArrAirport_2';
        }
        else {
            searcher_action = 'addArrAirport_2';
            $.ajax({
                url: '/ajax/countries/',
                //data: 'action=addArrAirport_2',
                data: 'action=addAirport',
                success: function (req) {
                    showDestinationsList(req);
                }
            });
        }
    });
    
    $('#cl_destination_from').autocomplete("/ajax/destination-autocomplete",{
        minChars: 3, 
        matchSubset:3, 
        matchContains:0, 
        cacheLength:3, 
        onItemSelect: selectDepItem,
        selectOnly:1
    });
    
    $('#cl_destination_from_2').autocomplete("/ajax/destination-autocomplete",{
        minChars: 3, 
        matchSubset:3, 
        matchContains:0, 
        cacheLength:3, 
        onItemSelect: selectDepItem_2,
        selectOnly:1
    });
    
    $('#cl_destination_to').autocomplete("/ajax/destination-autocomplete",{
        minChars: 3,
        matchSubset:3,
        matchContains:0,
        cacheLength:3,
        onItemSelect: selectArrItem,
        selectOnly:1
    });
    
    $('#cl_destination_to_2').autocomplete("/ajax/destination-autocomplete",{
        minChars: 3,
        matchSubset:3,
        matchContains:0,
        cacheLength:3,
        onItemSelect: selectArrItem_2,
        selectOnly:1
    });
    
    $('#Airline').autocomplete("/ajax/airline-autocomplete",{
        minChars: 2, 
        matchSubset:2, 
        matchContains:0, 
        cacheLength:2,
        selectOnly:1
    });
    
});
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();
    $('#arr_date_row2').show();
}
function hideArrDate() {
    $('#arr_date_row').hide();
    $('#arr_date_row2').hide();
}


function showDestinationsList(dest) {

    var d = $('<div id="searcher">');
    $('<div id="searcher_top">').appendTo(d);

$('<div class="closer">').append($('<img src="/public/letenkysezona/theme/images/closer.jpg" width="16" height="16" alt="" />')
          .click(function () {
              d.hide(); //d.remove();
              $('#searcher_overlay').hide();
          })
      ).appendTo(d);

    d.append();

    $('#searcher_overlay').click(function () {
            d.hide(); //d.remove();
            $(this).hide();});
    
    var popupBody = $('<div class="body">').css({
        'padding':'3px'
    });
    
    popupBody.append(dest);
    
    popupBody.appendTo(d);
    
    d.appendTo(document.body);
    
    $('#airportList DIV').attr('style', 'display:none');
    $('#airportList DIV').attr('class', 'svetlo');
  
    $('#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();
    
    // $('#letenkyGoSearch').val(name.replace(/,(.+)/, ''));
}

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 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 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;
    }
}
