/************************
 * Tanmar jQuery Plugin *
 * bannerRotator v 1.3  *
 * tanmar.de            *
 ************************/
(function($){
    var banner_counter = 0;
    var bt_interval_time = false;
    var nextBannerTime = 0;
    
    var methods = {
        init : function(options) {return this.each(function(){

            var ops = $.extend({
                naviNumbers:true,
                naviBoxSize:21,
                nextBannerTime:5000
            }, options);

            nextBannerTime = ops.nextBannerTime;
            var br = $(this);

            banner_counter = br.find('.rotator .rotatorBox').length;

            var bNav = $('<div>').
                addClass('bNav').
                css({width: (banner_counter * ops.naviBoxSize) }).
                appendTo( br );

            br.find('.rotator .rotatorBox').each(function(index){
                $(this).addClass('banner'+index).hover(function(){
                    clearInterval(bt_interval_time);
                },function(){
                    setNewInterval(br);
                });

            var navigation = br.find('.bNav');

                var nav = $('<div>').
                    addClass('bNav-box').
                    attr('banner',index).
                    html( ((ops.naviNumbers)?(index+1):'') ).
                    hover(function(){
                        this.style.cursor = 'pointer';
                        brShowBanner( index, br);
                        clearInterval(bt_interval_time);
                        setNewInterval(br);
                    }).
                    click(function(){
                        brShowBanner( index, br);
                        clearInterval(bt_interval_time);
                        setNewInterval(br);
                    }).
                    appendTo( navigation );

                if(index == 0){
                    nav.addClass('active');
                    $(this).addClass('first-child');
                }
            });

            br.find('.arrow-left').click(function(){
                var index = parseFloat( br.find('.active').attr('banner') )-1;
                if(index < 0){
                    index = (banner_counter-1);
                }
                brShowBanner( index, br);
                clearInterval(bt_interval_time);
                setNewInterval(br);
                return false;
            });
            br.find('.arrow-right').click(function(){
                var index = parseFloat( br.find('.active').attr('banner') )+1;
                if(index >= banner_counter){
                    index = 0;
                }
                brShowBanner( index, br);
                clearInterval(bt_interval_time);
                setNewInterval(br);
                return false;
            });
            setNewInterval( br );
        });}
    };
    $.fn.extend({
        bannerRotator: function(method) {
            if ( methods[method] ) {
                return methods[method].apply( this, Array.prototype.slice.call( arguments, 1 ));
            } else if ( typeof method === 'object' || ! method ) {
                return methods.init.apply( this, arguments );
            } else {
                $.error( 'Method ' +  method + ' does not exist on tanmar.jQuery.specialTag' );
            }
        }
    });
    function brShowBanner( index, br ){

        br.find('.bNav-box').removeClass('active');
        br.find('.bNav-box[banner="'+index+'"]').addClass('active');

        if( br.find('.banner'+index).css('display') != 'block'){

            br.find('.rotator .rotatorBox').each(function(){
                if($(this).css('display') != 'none'){
                    $(this).stop(true,true).fadeOut();
                }
            })

            br.find('.banner'+index).stop(true,true).fadeIn();
        }
    }
    function setNewInterval( br ){
        bt_interval_time = setInterval(function(){

            var index = parseFloat( br.find('.active').attr('banner') )+1;
            if(index >= banner_counter){
                index = 0;
            }
            brShowBanner( index, br );

        },nextBannerTime);
    }
})(jQuery);
