/*
 * FeatureList - simple and easy creation of an interactive "Featured Items" widget
 * Examples and documentation at: http://jqueryglobe.com/article/feature_list/
 * Version: 1.0.0 (01/09/2009)
 * Copyright (c) 2009 jQueryGlobe
 * Licensed under the MIT License: http://en.wikipedia.org/wiki/MIT_License
 * Requires: jQuery v1.3+
*/
/*;(function($) {
	$.fn.featureList = function(options) {
		var tabs = $(this);
		var output = $(options.output);

		new jQuery.featureList(tabs, output, options);

		return this;
	};

	$.featureList = function(tabs, output, options) {
		function slide(nr) {
			if (typeof nr == "undefined") {
				nr = visible_item + 1;
				nr = nr >= total_items ? 0 : nr;
			}

			tabs.removeClass('current').filter(":eq(" + nr + ")").addClass('current');

			output.stop(true, true).filter(":visible").fadeOut();
			output.filter(":eq(" + nr + ")").fadeIn(function() {
				visible_item = nr;
			});
		}

		var options = options || {};
		var total_items = tabs.length;
		var visible_item = options.start_item || 0;

		options.pause_on_hover = options.pause_on_hover || true;
		options.transition_interval = options.transition_interval || 5000;

		output.hide().eq( visible_item ).show();
		tabs.eq( visible_item ).addClass('current');

		tabs.click(function() {
			if ($(this).hasClass('current')) {
				return false;
			}

			slide( tabs.index( this) );
		});

		if (options.transition_interval > 0) {
			var timer = setInterval(function () {
				slide();
			}, options.transition_interval);

			if (options.pause_on_hover) {
				tabs.mouseenter(function() {
					clearInterval( timer );

				}).mouseleave(function() {
					clearInterval( timer );
					timer = setInterval(function () {
						slide();
					}, options.transition_interval);
				});
			}
		}
	};
})(jQuery);*/

(function($){
	$.fn.alibannerSlide = function(option){
		var params = jQuery.extend({
			animation : 500,
			random : true,
			interval : 3000,
			motion : 'horizontal'
		},option);

		$(this).each(function(){
			var $bannerContainer = $(this);
			var $bannerItem = $('.item',$bannerContainer);
			var motion; (params.animation==false) ? motion=0 : motion=params.animation;
			var amount = $bannerItem.size();
			var isImage = $bannerItem.is('a');
			if ( isImage ){
				var w = parseInt($bannerItem.find('img').width());
				var h = parseInt($bannerItem.find('img').height());
			} else {
				var w = parseInt($bannerItem.width());
				var h = parseInt($bannerItem.height());
			}

			var setbannerNav = $('<div class="bannerNav"></div>');
			setbannerNav.prependTo($bannerContainer);
			if(amount > 1){
				for(i=0 ; i < amount ; i++){
					$('<button type="button" id="'+$bannerContainer.attr('id')+'Btn'+(i+1)+'"></button>').appendTo(setbannerNav);
					$bannerItem.eq(i).attr('id',$bannerContainer.attr('id')+'Banner'+(i+1));
				}
			}

			var randomset = (params.random) ? Math.floor(Math.random()*amount) : 0;
			var bannerIndex = randomset;
			var action; (params.interval > 0) ? action=true : action=false;

			var $animationController = $('.banners', $bannerContainer);
			var $mask = $('<div style="overflow:hidden;position:relative;width:'+w+'px;height:'+h+'px" />');
			$animationController.wrap($mask);

			if(params.motion == 'horizontal'){ // horizontal
				$animationController.css({'width':w*amount+'px'});
				$bannerItem.css('float','left');
			} else { // vertical
				if (isImage) { $bannerItem.find('img').css('display','block'); }
			}

			var $bannerNav = $('.bannerNav button',$bannerContainer);
			$bannerNav.each(function(n) {
				var $thisNum = $(this);
				function bannerShow(){
					bannerMotion(n,motion);
					on($thisNum);
					action = false;
				}
				$thisNum.bind('click',bannerShow);
			});

			function bannerMotion(num,ani){
				bannerIndex = num;
				if(params.motion == 'horizontal'){
					$animationController.stop().animate({'marginLeft':'-'+w*num+'px'},ani,'swing');
				} else {
					$animationController.stop().animate({'marginTop':'-'+h*num+'px'},ani,'swing');
				}
				resetNum();
			}

			function on(nObj){ nObj.addClass('on'); }
			function off(nObj){ nObj.removeClass('on'); }
			function resetNum(){
				$bannerNav.each(function(){off($(this));});
			}

			function setBanner(setup,ani){
				bannerMotion(setup,ani);
				on($('.bannerNav button:eq('+setup+')',$bannerContainer));
			}
			function nextBanner(){
				(bannerIndex >= (amount-1) ) ? bannerIndex = 0 : bannerIndex++;
				setBanner(bannerIndex,motion);
			}
			setBanner(bannerIndex,0);

			function autorun(){
				if(!action) return;
				nextBanner();
			}
			if(action) {
				setInterval(function(){autorun()}, params.interval);
				$bannerContainer.hover(function(){action = false;},function(){action = true;});
			}
		});
	}
})(jQuery);
