$(function(){

     //$(".zoom").imgbox();



    // update search

    function ajaxUpdateSearch(partitialUpdate){

        partitialUpdate = partitialUpdate || false;
        var seatsClass = $('input[name=seats_class]').val();

        $.ajax({

            type: 'POST',

            url: '/orders/search',

            data: ({'from_country_id':  $('input[name=from_country_id]').val(),

                'from_city_id':  $('select[name=from_city_id] :selected').val(),

                'to_country_id': $('input[name=to_country_id]').val(),

                'to_city_id': $('select[name=to_city_id] :selected').val(),

                'date_to': $('input[name=date_to]').val(),

                'date_back': $('input[name=date_back]').val(),

                'no_return': $('input[name=no_return]').is(':checked') ? 'on' : 'off',

                'seats_class': seatsClass

            }),

            dataType: 'html',

            beforeSend: function(){

                $('#depart_chart').addClass('chart-empty');

                $('#return_chart').addClass('chart-empty');

                $('#depart_chart .column').remove();

                $('#return_chart .column').remove();

                if(partitialUpdate){

                    $('.ca-column-4 .ca-header-extra').html('Поиск');

                    $('#ca-list-result').html('');

                } else {

                    $('.ca-column-4').html('<div id="search-empty">Поиск</div>');

                }

                $('.tipsy').remove();

            },

            success: function(data) {

                var newData = jQuery(data);

                $('.ca-column-4').html(newData.find('.ca-column-4  > *'));

                $('.date-nav').html(newData.find('.date-nav  > *'));

                $('#depart_chart').removeClass('chart-empty').html(newData.find('#depart_chart  > *'));

                $('#return_chart').removeClass('chart-empty').html(newData.find('#return_chart  > *'));

                $('#ca-list-result').tablesorter({

                    headers: {4: {sorter: false}},
                    sortList: [[0,0],[3,0]]

                });

                $("#sort-by-cost").css({'background-color': '#7ddc16'}).find('.img-path-sort').css({'background-position': '0% 10%'});

                $('#depart_month .month-name').html(newData.find('#depart_month .month-name  > *'));

                $('#depart_month .arrive-month-calendar').html(newData.find('#depart_month .arrive-month-calendar  > *'));

                if(seatsClass == 1){
                    $('#visible-econom').css({'background-color': '#387d19'});
                    $('#visible-bussiness').css({'background-color': '#7ddc16'});
                } else {
                    $('#visible-bussiness').css({'background-color': '#387d19'});
                    $('#visible-econom').css({'background-color': '#7ddc16'});
                }

                $('#return_month .month-name').html(newData.find('#return_month .month-name  > *'));

                $('#return_month .arrive-month-calendar').html(newData.find('#return_month .arrive-month-calendar  > *'));



                var departColumn = $('#depart_chart .columns .selected .label:first');

                if(departColumn.length > 0){

                    var selectDateTo = new Date('20'+(departColumn.find('div:eq(2)').html()),(departColumn.find('div:eq(1)').html()-1),(departColumn.find('div:eq(0)').html())*1);

                    $("#datepicker-from").datepicker('setDate',selectDateTo);

                }

                if(!($('input[name=no_return]').is(':checked'))){

                    $('#return_month').show();

                    var returnColumn = $('#return_chart .columns .selected .label:first');

                    if(returnColumn.length > 0){

                        var selectDateBack = new Date('20'+(returnColumn.find('div:eq(2)').html()),(returnColumn.find('div:eq(1)').html()-1),(returnColumn.find('div:eq(0)').html())*1);

                        $("#datepicker-to").datepicker('setDate',selectDateBack);

                    }

                }

            }

        });

    };


    $("#datepicker-to").datepicker({

        inline: true,

        numberOfMonths: 2,

        navigationAsDateFormat: true,

        changeFirstDay: false,

        changeMonth: false,

        changeYear: false,

        altFormat: 'dd.mm.yy',

        minDate: new Date(),

        onSelect: function(date) {

            if($('div').is('.graph-container')){

                if(!($('input[name=no_return]').is(':checked'))){

                    ajaxUpdateSearch();

                }

            }

        }

    });

    $("#datepicker-from").datepicker({

        inline: true,

        numberOfMonths: 2,

        navigationAsDateFormat: true,

        changeFirstDay: false,

        changeMonth: false,

        changeYear: false,

        altFormat: 'dd.mm.yy',

        minDate: new Date(),

        onSelect: function(date) {
            var dateBack = $('input[name=date_back]');
            var dateBackStr = dateBack.val().toString().split('.');
            var dateTo = date.toString().split('.');
            var selectDateTo = new Date(dateTo[2],dateTo[1]-1,dateTo[0]);
            $("#datepicker-to").datepicker("option", "minDate",selectDateTo);
            if((dateBackStr[2]+dateBackStr[1]+dateBackStr[0])*1 < (dateTo[2]+dateTo[1]+dateTo[0])*1){
                $("#datepicker-to").datepicker('setDate',selectDateTo);
            } else {
                var selectDateBack = new Date(dateBackStr[2],dateBackStr[1]-1,dateBackStr[0]);
                $("#datepicker-to").datepicker('setDate',selectDateBack);
            }


            if($('div').is('.graph-container')){
                ajaxUpdateSearch();
            }

        }

    });



    $("#datepicker-from").datepicker('option', 'altField', '#date-select-from');

    $("#datepicker-to").datepicker('option', 'altField', '#date-select-to');

    // инициализация модуля дат

    if($('div').is('.graph-container')){

        var departColumn = $('#depart_chart .columns .selected .label:first');

        if(departColumn.length > 0){

            var selectDateTo = new Date('20'+(departColumn.find('div:eq(2)').html())*1,(departColumn.find('div:eq(1)').html()-1),(departColumn.find('div:eq(0)').html())*1);

            $("#datepicker-from").datepicker('setDate',selectDateTo);

        }

        if(!($('input[name=no_return]').is(':checked'))){

            var returnColumn = $('#return_chart .columns .selected .label:first');

            if(returnColumn.length > 0){

                var selectDateBack = new Date('20'+(returnColumn.find('div:eq(2)').html())*1,(returnColumn.find('div:eq(1)').html()-1),(returnColumn.find('div:eq(0)').html())*1);

                $("#datepicker-to").datepicker('setDate',selectDateBack);

            }

        }

    }



    $(".ca-date-select-window").click(function(){

         return false;

    });



    $(".date-select-click").click(function() {

        $(".ca-date-select-window").hide();

        $(this).siblings(".ca-date-select-window").toggle();

        return false;

    });



    $(".ca-month-from").click(function() {

            jQuery.datepicker._adjustDate('#datepicker-from', -1, 'M');

            return false;

    });



    $(".ca-month-to").click(function() {

            jQuery.datepicker._adjustDate('#datepicker-to', +1, 'M');

            return false;

    });





    $("body").click(function() {

            if (($("#ca-datepicker-cal-2").css("display") == "block") || ($("#ca-datepicker-cal-1").css("display") == "block"))

            {

                $("#ca-datepicker-cal-1").css({display:"none"});

                $("#ca-datepicker-cal-2").css({display:"none"});

            }

            else

            {

            }

    });





    $(".ca-close-window-button").click(function() {

        $(this).parent().parent().hide();

        return false;

    });



    $(".ca-go-to-current").click(function() {

        $(this).parent().siblings(".ca-date-calendars").children().eq(0).datepicker('option', 'gotoCurrent', 'true');

        return false;

    });



    $("#contacts-name").val("");

    /*Спецпредложения*/
    var changeVisibleBlock = true;

    $('.ca-special:gt(0)').hide();
    function changeVisibleSpecBlock(idBlock){
        $('.ca-city-menu a').removeClass('active');
        $('#show_depart_'+idBlock).addClass('active');
        $('.ca-special').hide('slide');
        //$('.ca-special').slideToggle('slow');
        $('#depart_'+idBlock).show('slide',{direction:'right'});
    }

    function nextVisibleSpecBlock(){
        if(changeVisibleBlock){
            var item =  $('.ca-city-menu .active').index();
            var countLinkMenu = $('.ca-city-menu a').length-1;
            if(item === countLinkMenu)
                item = 0;
            else
                item = item*1+1;
            var nextItem = $('.ca-city-menu a:eq('+item+')');
            var nextItemId = nextItem.attr('id').substr(12);
            changeVisibleSpecBlock(nextItemId);
        }
    }
    $('.ca-city-menu a').live('click',function(){
        if(!$(this).hasClass('active')){
            var curId = $(this).attr('id').substr(12);
            changeVisibleSpecBlock(curId);
        }
        changeVisibleBlock = false;
        return false;
    });

    $('.ca-column-1').hover(
        function(){changeVisibleBlock = false;},
        function(){}
    );
    if($('.ca-city-menu a').length > 1){
        setInterval(nextVisibleSpecBlock, 5000);
    }

    if($('.depart_city_block').length > 1){
        var cityActive = $('.filter-city').filter('.active').attr('id').substr(12);
        $('.depart_city_block:not([id=depart_'+cityActive+'])').hide();
    }
    // смена отображаемого блока спец. предложений
    function changeVisibleSpecFullBlock(idBlock){
        $('.filters-city a').removeClass('active');
        $('#show_depart_'+idBlock).addClass('active');
        $('.depart_city_block').hide('slide');
        $('#depart_'+idBlock).show('slide',{direction:'right'});
    }

    // загрузка спец. предложений с учетом фильтров стран и сортировки
    function applyFilterSpecOrders(){
        var strCountry = '';
        $('.filters-country a.active').each(function(){
            var curIdArr = $(this).attr('href').split('/');
            strCountry = strCountry + curIdArr[curIdArr.length-1] + '_';
        });
        if(strCountry != ''){
            strCountry = strCountry.substr(0,strCountry.length-1);
        }
        var strOrder = $('.filters-order a.active').attr('id').substr(6);
        $.ajax({
            type: 'POST',
            url: '/orders/special',
            data: ({'filter-country':  strCountry,
                'filter-order':  strOrder
            }),
            dataType: 'html',
            success: function(data) {
                var newData = jQuery(data);
                $('.depart_city_block').each(function(){
                    var curContent = newData.find('#'+$(this).attr('id')+' > *');

                    if(curContent.length > 0){
                        $(this).html(curContent);
                    }else {
                        $(this).html('<div class="no-spec-flights">Нет спецпредложений по данному направлению.</div>');
                    }
                });
            }
        })
    }

    $('.filter-city').live('click',function(){
        if(!$(this).hasClass('active')){
            var curId = $(this).attr('id').substr(12);
            changeVisibleSpecFullBlock(curId);
        }
        return false;
    });

    $('.filters-country a:eq(0)').live('click',function(){
        if(!$(this).hasClass('active')){
            $(this).addClass('active');
            $('.filters-country a:gt(0)').removeClass('active');
            applyFilterSpecOrders();
        }
        return false;
    });

    $('.filters-country a:gt(0)').live('click',function(){
        if($(this).hasClass('active')){
            $(this).removeClass('active');
            if($('.filters-country a.active').length == 0)
                $('.filters-country a:eq(0)').addClass('active');
        }else{
            $(this).addClass('active');
            $('.filters-country a:eq(0)').removeClass('active');
        }
        applyFilterSpecOrders();
        return false;
    });

    $('.filters-order a').live('click',function(){
        if(!$(this).hasClass('active')){
            $('.filters-order a').removeClass('active');
            $(this).addClass('active');
            applyFilterSpecOrders();
        }
        return false;
    });
});
