;(function($){
	var bbCarousels = {
		autoScrollTime : 5, // seconds
		
		init : function(element, options){
			var opts = {};
			opts.wrap = options.wrap;
			opts.scroll = options.scroll;

			opts.easing = options.easing;
			opts.animation = options.animation;
			
			if(options.autoScroll){
				opts.auto = options.autoScroll;
			}
			if(options.pagination){
				opts.initCallback = function(carousel){
					bbCarousels.initCallback(carousel, options.pagination, opts);
				}
				opts.pagination = options.pagination;
			}
			if(options.prevBttn){
				opts.buttonPrevHTML = null;
				opts.prevBttn = options.prevBttn;
			}
			if(options.nextBttn){
				opts.buttonNextHTML = null;
				opts.nextBttn = options.nextBttn;
			}

			if(options.itemVisibleInCallback){
				opts.itemVisibleInCallback = bbCarousels.itemVisibleInCallback;
				opts.itemVisibleOutCallback = bbCarousels.itemVisibleOutCallback;
			}

			$(element).jcarousel(opts);
		},

		initCallback : function(carousel, pagination, options){
			if(options.prevBttn){
				options.prevBttn.click( function(){
					carousel.prev();
					return false;
				});
			}
			if(options.nextBttn){
				options.nextBttn.click( function(){
					carousel.next();
					return false;
				});
			}

			pagination.click( function(){
				var index = pagination.index( $(this) );
				carousel.scroll(index * options.scroll + 1);

				pagination.removeClass('active');
				$(this).addClass('active');
				return false;
			});
		},
		
		itemVisibleInCallback : function(carousel, li, index){
			$(li).addClass('j_visible');
		},
		
		itemVisibleOutCallback : function(carousel, li, index){
			li = $(li);
			li.removeClass('j_visible');
			var id = li.parent().find('li.j_visible:first').attr('jcarouselindex');
			id = parseInt(id) - 1;
			carousel.options.pagination.removeClass('active').eq(id).addClass('active');
		}
	};

	
	$.fn.bbCarousels = function(options){
		var def = {addControls : true, scroll : 1, wrap : 'last', 
					pagination : null, autoScroll : 5, prevBttn : null, nextBttn : null,
					itemVisibleInCallback : false, animation: 800, easing : 'swing'};
		var opts = $.extend(def, options);
		this.each( function(){bbCarousels.init($(this), opts);});
	};
})(jQuery);


jQuery(document).ready( function($){
	// main top slider
	// $('#home_main_slider ul').bbCarousels();
	
	// the game sliders categories
	var cat_list = $('.the_game_slider .cat_list a');
	cat_list.click( function(){
		var items = $('.the_game_slider .sliders_item').removeClass('active')
		var index = cat_list.index( $(this) );
		var current = items.eq(index).addClass('active');
		
		if(!$('.slider', current).hasClass('jcarousel-list')){

			// setting top margin
			$('.slider li span', current).each( function(){
				var h = $(this).height();
				$(this).css('top', -(h + 7) + 'px');
			});

			current.find('.game_slider_container').addClass('active');
			var footer = current.find('.footer');
			$('.slider', current).bbCarousels({
				scroll	: 1,
				wrap	: 'both',
				addControls : false,
				autoScroll	: null,
				pagination	: $('.dot', footer),
				prevBttn	: $('.prev', footer),
				nextBttn	: $('.next', footer),
				itemVisibleInCallback : true,
				animation	: 300,
				easing		: 'linear'
			});
		}

		cat_list.removeClass('active');
		$(this).addClass('active');
		return false;
	});
	cat_list.eq(0).click();
});

