var currForm;
$(function () {
    //$('select').bgiframe();
    $("div.reservationForm[rel='" + $('ul.reservationFormTabs li.active').attr('rel')+ "']").show();
    currForm = $('form', $("div.reservationForm[rel='" + $('ul.reservationFormTabs li.active').attr('rel')+ "']"));
    $(':text.DepDate, :text.ArrDate').datepicker({
        duration: "",
        firstDay: 1,
        dateFormat: "dd.mm.yy",
        beforeShow: customRange,
        onSelect: checkDate,
        showOn: "both",
        buttonImage: "/public/themes/images/ico-calendar.gif",
        buttonText: "Kalendár",
        buttonImageOnly: true,
        numberOfMonths: 2,
        showAnim: ""
    });
   
    $('#ArrDateHotel').datepicker({
        duration: "",
        firstDay: 1,
        dateFormat: "dd.mm.yy",
        showOn: "both",
        buttonImage: "/public/themes/images/ico-calendar.gif",
        buttonText: "Kalendár",
        buttonImageOnly: true,
        numberOfMonths: 2,
        showAnim: "",
        minDate: '+7'
    });

    $(":text.DepDate, #ArrDateHotel").datepicker("setDate", '+7');
    $(":text.ArrDate").datepicker("setDate", '+14');

    $(":radio[name='Sector']").change(function(){
        var form = $(this).parents('form');
        var delay = 500;    
        if ($(":radio[name='Sector']:checked", form).val() == 3) {
            $('#dep_airport2_row', form).fadeIn(delay);       
            $('#arr_airport2_row', form).fadeIn(delay);       
            $('#arrDateContainer', form).fadeIn(delay);
        } else if ($(":radio[name='Sector']:checked", form).val() == 1) {
            $('#dep_airport2_row', form).fadeOut(delay);       
            $('#arr_airport2_row', form).fadeOut(delay);
            $('#arrDateContainer', form).fadeOut(delay);
        } else {
            $('#dep_airport2_row', form).fadeOut(delay);       
            $('#arr_airport2_row', form).fadeOut(delay);
            $('#arrDateContainer', form).fadeIn(delay);
        }
    });
    $('#dep_airport2_row').hide();       
    $('#arr_airport2_row').hide();
    $(":radio[name='Sector']").change();
   
    $('#topAirport').change(function () {
        if ($(this).val() == '') {
            addDepAirport('', '', $(this).parents('form'));    
            $('tr.depAirportLine').hide();            
        } else if ($(this).val() == 'other') {
            addDepAirport('', '', $(this).parents('form'));    
            $('tr.depAirportLine').show();            
        } else {
            $('tr.depAirportLine').hide();            
            addDepAirport($('option:selected', $(this)).val(), $('option:selected', $(this)).text(), $(this).parents('form'));    
        }
    });
    $('#topAirport').change();
    $('#topHotel').change(function () {
        addCity($(this).val(), $('option:selected', $(this)).text(), $(this).parents('form'));
    });

    $(':text.departure').bind('click', function () {
        addDepAirport('', '', $(this).parents('form'));
    });
    $(':text.arrival').bind('click', function () {
        addArrAirport('', '', $(this).parents('form'));
    });
    $(':text.departure_1').bind('click', function () {
        addDepAirport_2('', '', $(this).parents('form'));
    });
    $(':text.arrival_1').bind('click', function () {
        addArrAirport_2('', '', $(this).parents('form'));
    });
    
    $('#cl_city').bind('click', function () {
        addCity('', '');
    });
    
    if($(':text.departure', $('#rezervacny_formular')).val() == '---') {
        addDepAirport('', '', $('#rezervacny_formular'));
    }
    
    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 ($(':text.destination').length) {
        $(':text.destination').autocomplete("/ajax/destination-autocomplete",{
            minChars: 3, 
            matchSubset:3, 
            matchContains:true, 
            cacheLength:3, 
            matchCase: true,
            formatItem: function (row) {
                return '<img src="http://' + RESERVATION_LINK+ '/public/images/countries/' + (row[2] != '' ? row[2] : 'noflag') + '.gif" />&nbsp;' + row[0];
            }
        }).result(function(event, data, formatted){
            if ($(this).hasClass('departure')) {
                addDepAirport(data[1], data[0], $(this).parents('form'));        
            } else if ($(this).hasClass('arrival')) {
                addArrAirport(data[1], data[0], $(this).parents('form'));        
            } else if ($(this).hasClass('departure_1')) {
                addDepAirport_2(data[1], data[0], $(this).parents('form'));        
            } else if($(this).hasClass('arrival_1')) {
                addArrAirport_2(data[1], data[0], $(this).parents('form'));        
            }
        });
    }

    if ($(':text.Airline').length) {
        $(':text.Airline').autocomplete("/ajax/airline-autocomplete",{
            minChars: 2, 
            matchSubset:2, 
            matchContains:0, 
            cacheLength:2,
            selectOnly:1
        });
    }
    
    /* Vyhladavanie destinacii - dialog*/
    $('<div id="dialog_destinations" />').appendTo($('body'));
    $("#dialog_destinations").dialog({
        bgiframe: true,
        autoOpen: false,
        modal: true,
        resizable: false,
        draggable: true,
        width: 300,
        height: 450,
        title: 'Destinácie'
    });
    $('<div id="dialog_airlines">').appendTo($('body'));
    $("#dialog_airlines").dialog({
        bgiframe: true,
        autoOpen: false,
        modal: true,
        resizable: false,
        draggable: true,
        width: 300,
        height: 450,
        title: 'Letecké spoločnosti'
    });

    $('#DepAirportFolder').click(function () {
        $('#dialog_destinations').html('');
        $('#dialog_destinations').dialog('open');
        searcher_action = 'addDepAirport';
        loadDestinationsDialog(searcher_action);
    });
    
    $('#ArrAirportFolder').click(function () {
        $('#dialog_destinations').html('');
        $('#dialog_destinations').dialog('open');
        searcher_action = 'addArrAirport';
        loadDestinationsDialog(searcher_action);
    });
    
    $('#DepAirportFolderFR').click(function () {
        $('#dialog_destinations').html('');
        $('#dialog_destinations').dialog('open');
        searcher_action = 'addDepAirport';
        loadDestinationsDialog(searcher_action);
    });
    
    $('#ArrAirportFolderFR').click(function () {
        $('#dialog_destinations').html('');
        $('#dialog_destinations').dialog('open');
        searcher_action = 'addArrAirport';
        loadDestinationsDialog(searcher_action);
    });

    $('#DepAirportFolder_2').click(function () {
        $('#dialog_destinations').html('');
        $('#dialog_destinations').dialog('open');
        searcher_action = 'addDepAirport_2';
        loadDestinationsDialog(searcher_action);
    });
    
    $('#ArrAirportFolder_2').click(function () {
        $('#dialog_destinations').html('');
        $('#dialog_destinations').dialog('open');
        searcher_action = 'addArrAirport_2';
        loadDestinationsDialog(searcher_action);
    });
    $('#AirlineFolder').click(function () {
        $('#dialog_airlines').dialog('open');
        if($('#dialog_airlines').html() == ''){
            $('#dialog_airlines').addClass('ryanairSectorAjaxImg');
            $.ajax({
                url: '/ajax/airline',
                success: function (req) {
                    $('#dialog_airlines').removeClass('ryanairSectorAjaxImg');
                    $('#dialog_airlines').html(req);
                }
            });
        }
    });
    $('<div id="dialog_cities">').appendTo($('body'));
    $("#dialog_cities").dialog({
        bgiframe: true,
        autoOpen: false,
        modal: true,
        resizable: false,
        draggable: true,
        width: 300,
        height: 450,
        title: 'Destinácie'
    });

    $('#DepFolder').click(function () {
        $('#dialog_cities').dialog('open');
        if($('#dialog_cities').html() == ''){
            $('#dialog_cities').addClass('ryanairSectorAjaxImg');
            $.ajax({
                url: '/ajax/goglobal-destination/',
                success: function (req) {
                    $('#dialog_cities').removeClass('ryanairSectorAjaxImg');
                    $('#dialog_cities').html(req);
                }
            });
        }
    });
    $('form#rezervacny_formular').submit(function(){
        if ($(':input[name=DepAirport]', $(this)).val() == '') {
            alert('Nezadali ste odletovu destináciu.');    
            return false;
        }
        if ($(':input[name=ArrAirport]', $(this)).val() == '') {
            alert('Nezadali ste príletovú destináciu.');    
            return false;
        }
        if ($(':radio[name=Sector]', $(this)).val() == '') {
            alert('Nezadali ste smer letu.');    
            return false;
        }
        if ($('select[name=Date_PlusMinus1]', $(this)).val() == 0 && $(':input[name=DepAirport]', $(this)).val().match(/([A-Z]{3})+/g).length > 1) {
            alert('V prípade presného dátumu nie je možné vyhľadávať z destinácií ' + $(':input[name=dep_tmp]').val());    
            return false;
        }
        if (Number($('#ADT', $(this)).val()) + Number($('#YTH', $(this)).val()) + Number($('#CHD', $(this)).val()) + Number($('#INF', $(this)).val()) + Number($('#YCD', $(this)).val()) < 1) {
            alert('Minimálny počet cestujúcich je 1.');    
            return false;
        }
        if (Number($('#ADT', $(this)).val()) + Number($('#YTH', $(this)).val()) + Number($('#CHD', $(this)).val()) + Number($('#INF', $(this)).val()) + Number($('#YCD', $(this)).val()) > 9) {
            alert('Maximálny počet cestujúcich je 9.');    
            return false;
        }
        $(":text.DepDate", $(this)).val($.datepicker.formatDate('yy-mm-dd', $(":text.DepDate", $(this)).datepicker('getDate')));
        $(":text.ArrDate", $(this)).val($.datepicker.formatDate('yy-mm-dd', $(":text.ArrDate", $(this)).datepicker('getDate')));
        ajaxOverlay();
        return true;
    });    

    $('form#ryanair_rezervacny_formular').submit(function(){
        $(":text.DepDate").val($.datepicker.formatDate('yy-mm-dd', $(":text.DepDate").datepicker('getDate')));
        $(":text.ArrDate").val($.datepicker.formatDate('yy-mm-dd', $(":text.ArrDate").datepicker('getDate')));
        ajaxOverlay();
        return true;
    });
    
    $('#mailinglistEmail').focus(function(){
        $(this).val('');
        $(this).css('color', '#122550');
    }).blur(function(){
        if ($(this).val() == '') {
            $(this).val('na Váš email ...');
            $(this).css('color', 'gray');
        }
    });
    $('#mailinglistForm').submit(function(){
        return false;
    })
});

function addAirport(input, dest) {
    form = $('#reservationForms .reservationForm:first');
    iata = dest[1];
    name = dest[0];
    if(input == 'addDepAirport') {
        addDepAirport(iata, name, form);
    }
    else if(input == 'addArrAirport') {
        addArrAirport(iata, name, form);
    }
    if(input == 'addDepAirport_2') {
        addDepAirport_2(iata, name, form);
    }
    else if(input == 'addArrAirport_2') {
        addArrAirport_2(iata, name, form);
    }
}
function addAirline(name) {
    $('#Airline').val(name);
    $('#dialog_airlines').dialog('close');
}


function addCity(code, name) {
    $('#cl_city').attr('name', 'city_tmp');
    $('#cl_city').val('');
    $('#city_tmp').attr('name', 'cityCode');
    
    $('#cl_city').val(name);
    $('#city_tmp').val(code);
    $('#dialog_cities').dialog('close');
}

function addDepAirport(iata, name, form) {
    if (typeof form == 'undefined') {
        form = currForm;    
    }
    form.find(':text.destination.departure').attr('name', 'dep_tmp');
    form.find(':text.destination.departure').val('');
    form.find("input[type='hidden'].departure").attr('name', 'DepAirport');
    form.find(':text.departure').val(name);
    form.find("input[type='hidden'].departure").val(iata);
    $('#dialog_destinations').dialog('close');
}

function addDepAirport_2(iata, name, form) {
    if (typeof form == 'undefined') {
        form = currForm;    
    }
    form.find(':text.destination.departure_1').attr('name', 'dep_tmp_2');
    form.find(':text.destination.departure_1').val('');
    form.find("input[type='hidden'].departure_1").attr('name', 'DepAirport_1');
    form.find(':text.departure_1').val(name);
    form.find("input[type='hidden'].departure_1").val(iata);
    $('#dialog_destinations').dialog('close');
}

function addArrAirport(iata, name, form) {
    if (typeof form == 'undefined') {
        form = currForm;    
    }
    form.find(':text.destination.arrival').attr('name', 'arr_tmp');
    form.find(':text.destination.arrival').val('');
    form.find("input[type='hidden'].arrival").attr('name', 'ArrAirport');
    form.find(':text.arrival').val(name);
    form.find("input[type='hidden'].arrival").val(iata);
    $('#dialog_destinations').dialog('close');
}

function addArrAirport_2(iata, name, form) {
    if (typeof form == 'undefined') {
        form = currForm;    
    }
    form.find(':text.destination.arrival_1').attr('name', 'arr_tmp_2');
    form.find(':text.destination.arrival_1').val('');
    form.find("input[type='hidden'].arrival_1").attr('name', 'ArrAirport_1');
    form.find(':text.arrival_1').val(name);
    form.find("input[type='hidden'].arrival_1").val(iata);
    $('#dialog_destinations').dialog('close');
}

function customRange(input) {
    return {minDate: ($(this).hasClass('ArrDate') ? $(".DepDate", $(this).parents('form')).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", $(this).parents('form')).val();
    var navrat = input2.substring(6,8)+input2.substring(3,4)+input2.substring(0,1);
    if(odlet>navrat){
        $(".ArrDate", $(this).parents('form')).val(input);
    }
}

function loadDestinationsDialog(text) {
    $('#dialog_destinations').addClass('ryanairSectorAjaxImg');
    $.ajax({
        url: '/ajax/countries',
        data: 'action=' + text,
        success: function (req) {
            $('#dialog_destinations').removeClass('ryanairSectorAjaxImg');
            $('#dialog_destinations').html(req);
        }
    });
}

function toggle(id) {
    $('#listAirport_'+id).toggle();
};


