// Class "Баннеры партнеров"
var Banners =
{
    // function executes when DOM loaded
    Banners : function ()
    {
        this.margin=parseInt($(".fly_box img").css("margin-right").replace(/px/, ''));
        // при наведении - подсветка картинок
        $(".fly_box img").hover(function(){
                $(this).attr("src", $(this).attr("data-name"));
        }, function(){
                if($(this).attr("data-active")!='yes')
                    $(this).attr("src", Banners.banners_list[$(this).attr("data-index")]['src']);
        });
        // обойдем весь массив баннеров и вычислим тот который нужно поставить в центре
        var left_summ=0;
        var center=$("#banner_block").width()/2;
        for(i in this.banners_list)
        {           
            this.current_banner=i;
            if(left_summ+parseInt(this.banners_list[i]['width']/2)>center)
            {
                this.current_banner=i-1;
                var margin_real=$("#banner_block").width()/2-(parseInt(Banners.getLeftOffset(this.current_banner))+Banners.banners_list[this.current_banner]['width']);
                $(".fly_box").css("left", Banners.banners_list[this.current_banner]['width']/2+parseInt(margin_real)+Banners.banners_list[this.current_banner]['width']*0.035+'px');
                this.resetImages();
                this.highlightImage(this.current_banner);
                break;
            }
            else
            {
                left_summ+=parseInt(this.banners_list[i]['width']);
            }
        }

        // при клике на правую стрелку прокрутки баннеров
        $("#strelka_2").click(function(){
            $(this).hide();
            // считаем сдвиг влево
            var current=parseInt(Banners.current_banner);
            var left_offset=Banners.banners_list[current]['width']/2+Banners.margin+Banners.banners_list[current+1]['width']/2;
            var x=parseFloat($(".fly_box").css("left").replace(/px/, ''));
            // смещаем блок вправо
            Banners.resetImages();
            $(".fly_box").animate({left:-(left_offset-x)+'px'}, 1000, "easeOutBack", function(){
                Banners.current_banner++;
                if(Banners.banners_list[Banners.current_banner+1])
                {
                  $("#strelka_2").fadeIn(500);
                }
                // подсвечиваем картинку
                Banners.highlightImage(Banners.current_banner);
                $("#strelka_1").fadeIn(500);
            });
        });

        // при клике на левую стрелку прокрутки баннеров
        $("#strelka_1").click(function(){
            $(this).hide();
            // считаем сдвиг влево
            var current=parseInt(Banners.current_banner);
            var left_offset=Banners.banners_list[current]['width']/2+Banners.margin+Banners.banners_list[current-1]['width']/2;
            var x=parseFloat($(".fly_box").css("left").replace(/px/, ''));
            // смещаем блок влево
            Banners.resetImages();
            $(".fly_box").animate({left:(x+left_offset)+'px'}, 1000, "easeOutBack", function(){
                Banners.current_banner--;
                if(Banners.banners_list[Banners.current_banner-1])
                {
                  $("#strelka_1").fadeIn(500);
                }
                // подсвечиваем картинку
                Banners.highlightImage(Banners.current_banner);
                $("#strelka_2").fadeIn(500);
            });
        });

        // при клике на баннер
        $(".fly_box img").click(function(){
            var clicked=parseInt($(this).attr("data-index"));
            // считаем сдвиг
            var current=parseInt(Banners.current_banner);
            // если щелкнули по текущему баннеру - ничего не происходит
            if(clicked==current) return false;
            var summ=0;
            if(current>clicked)
            {
                // картинка находится слева от текущей
                for(i in Banners.banners_list)
                {
                    if(i>=clicked && i<current)
                    {
                        if(i==clicked)
                        summ+=parseFloat(Banners.banners_list[i]['width']/2);
                        else
                        summ+=parseInt(Banners.banners_list[i]['width']);
                    }
                }
                // учитываем margin
                summ+=Banners.margin*(current-clicked);
            }
            else
            {
                // картинка справа от текущей
                for(i in Banners.banners_list)
                {
                    if(i<=clicked && i>current)
                    {
                        if(i==clicked)
                        summ+=parseFloat(Banners.banners_list[i]['width']/2);
                        else
                        summ+=parseInt(Banners.banners_list[i]['width']);
                    }
                }
                // учитываем margin
                summ+=Banners.margin*(clicked-current);
                summ=-summ;
            }
            var offset=(current>clicked) ? Banners.banners_list[current]['width']/2+summ : summ-Banners.banners_list[current]['width']/2;
            var x=parseFloat($(".fly_box").css("left").replace(/px/, ''));
            Banners.current_banner=clicked;
            // смещаем блок
            Banners.resetImages();
            $(".fly_box").animate({left:(x+offset)+'px'}, 1000, "easeOutBack", function(){               
                Banners.highlightImage(Banners.current_banner);
                // если баннер последний слева
                if(clicked==0)
                $("#strelka_1").hide();
                else if(clicked!=Banners.banners_list.length-1)
                $("#strelka_2").fadeIn(500);
                // если баннер последний справа
                if(clicked==Banners.banners_list.length-1)
                $("#strelka_2").hide();
                else if (clicked!=0)
                $("#strelka_1").fadeIn(500);
            });
        });
    },

    getLeftOffset : function(banner){
        var offset=0;
        for(i in this.banners_list)
        {
            if(i<parseInt(banner))
            {
                offset+=parseInt(this.banners_list[i]['width']);
            }
        }
        // учитываем margin-right между картинками
        offset+=parseInt(this.margin)*banner+this.banners_list[banner]['width']*0.09;
        return offset;
    },

    highlightImage : function(image){
        $(".fly_box img").eq(image).attr("src", $(".fly_box img").eq(image).attr("data-name")).attr("data-active", "yes");
        $("#banner_block_text").html(this.banners_list[image]['text']).animate({top:'160px', opacity:'1'}, 250);
    },

    resetImages : function(){
        // вернем всем остальным картинкам их прежние адреса
        for(i in this.banners_list)
        {
                $(".fly_box img").eq(i).attr("data-active", "no").attr("src", this.banners_list[i]['src']);
        }
        // сбрасываем текст
        $("#banner_block_text").animate({top:'240px', opacity:'0'}, 250, null, function(){
            $("#banner_block_text").css("top", "140px");
        });
    },

    margin : 0,
    banners_list : new Array(),
    current_banner: 3
}
