var BannerAnimation = {
    hoverWidth: 0,
    currentOffset: 0,
    hoverCount: 0,

    aLoaders: [],

    init: function() {
        $('.homepage_banner .js_img').each(function() {
            BannerAnimation.aLoaders.push(new Image(728, 150));
            BannerAnimation.aLoaders[BannerAnimation.aLoaders.length - 1].src = $(this).val();
        });

        this.hoverWidth = $('.homepage_banner .hover').width();
        this.hoverCount = $('.homepage_banner .hover').length;

        $('.homepage_banner .hover').mouseenter(function(){
            if ($(this).hasClass('active')) {
                return false;
            }

            $(this).siblings().removeClass('active').find('img')
                .stop(true)
                .css('margin-top', 0);

            $('.homepage_banner .banner_bgr').stop(true, true);

            $('.homepage_banner .address')
                .text($(this).find('.js_address').val())
                .attr('href', $(this).find('a').attr('href'));

            var sImgSrc = $(this).find('.js_img').val();

            $('.homepage_banner .banner_bgr').fadeOut(100, function() {
                $(this).css('background-image', 'url('+sImgSrc+')')
                    .fadeIn(250);
            });

            $(this).find('img').animate({'margin-top': '-14px'}, 'fast', function(){
                $(this).parents('.hover').addClass('active');
            });
        });

        if (this.hoverCount <= 3) {
            $('.homepage_banner .scroll_right').addClass('disabled');
        } else {
            $('.homepage_banner .scroll_right').click(function() {
                if (!$(this).hasClass('disabled')) {
                    $('.homepage_banner .hovers_container').animate({'margin-left': BannerAnimation.currentOffset -= BannerAnimation.hoverWidth});

                    if (BannerAnimation.currentOffset == -BannerAnimation.hoverWidth) {
                        $('.homepage_banner .scroll_left').removeClass('disabled');
                    }

                    if (BannerAnimation.currentOffset/BannerAnimation.hoverWidth + BannerAnimation.hoverCount == 3) {
                        $(this).addClass('disabled')
                    }
                }
                return false;
            });

            $('.homepage_banner .scroll_left').click(function() {
                if (!$(this).hasClass('disabled')) {
                    $('.homepage_banner .hovers_container').animate({'margin-left': BannerAnimation.currentOffset += BannerAnimation.hoverWidth});

                    if (BannerAnimation.currentOffset/BannerAnimation.hoverWidth + BannerAnimation.hoverCount > 3) {
                        $('.homepage_banner .scroll_right').removeClass('disabled');
                    }

                    if (BannerAnimation.currentOffset == 0) {
                        $(this).addClass('disabled');
                    }
                }
            });

        }
    }
}

$(document).ready(function(){
    BannerAnimation.init();
});
