/**
 * jQuery Shuffle Bannar plugin
 * Copyright (C) cubdesign | http://www.cubdesign.com/
 * Dual licensed under the MIT <http://www.opensource.org/licenses/mit-license.php>
 * and GPL <http://www.opensource.org/licenses/gpl-license.php> licenses.
 * Date: 2010-02-26
 * @author Takeo Tamura
 * @version 0.5.0
 */

(function($) {
    var name_space = 'shuffleBannar';
    $.fn[name_space] = function(options) {
        var elements = this;

        var settings = $.extend({
            'bannarList' : [],
			'interval':5000,
			'fadeOutTime' : 1000,
			'fadeInTime' : 1000
        }, options);

		
		var addData = function (v) {
            $.data(v, name_space, {});
            return $(v);
        };


		/*
		* 繧ｷ繝｣繝�ヵ繝ｫ縺吶ｋ
		*/
		var shuffle = function (targetArray)  {
			var i  = targetArray.length;
			 while (i) {
				var j  = Math.floor(Math.random() * i);
				var x  = targetArray[--i];
				targetArray[i] = targetArray[j];
				targetArray[j] = x; 
			 }
			return targetArray; 
		};
	
		//繧ｭ繝｣繝�す繝･髦ｲ豁｢逕ｨ
		var nocache = new Date().getTime();
		
		
		var bannarList = settings.bannarList;
		//繧ｷ繝｣繝�ヵ繝ｫ
		//bannarList = shuffle(settings.bannarList);
		
		//莉願｡ｨ遉ｺ縺励※縺�ｋ繝舌リ繝ｼ縺ｮ逡ｪ蜿ｷ
		var currentBannarNumber = -1;
		
		//繧､繝ｳ繧ｿ繝ｼ繝舌ΝID
		var iId = -1;

		/*
		* 繝舌リ繝ｼ繧貞､画峩縺吶ｋ
		*/
		var changeBannarImage = function ()  {
			clearInterval(iId);
			 $("#topImage img:first").fadeOut(settings.fadeOutTime,function(){
				$(this).remove();
				loadBannarImage();
			 });
		
		};
		/*
		* 繝舌リ繝ｼ繧定ｪｭ縺ｿ霎ｼ繧\
		*/
		var loadBannarImage = function ()  {
			currentBannarNumber++;
			
			if( currentBannarNumber == bannarList.length ){
				currentBannarNumber = 0;
			}
			
			var targetBannar = bannarList[ currentBannarNumber ];
			
			
			
			var imageURL = "" + targetBannar.image + "?nocache="+nocache;
			var linkURL = "" + targetBannar.link;
		
			var img = new Image();
		
			 $(img).load(function(){
							$(this).hide();
							$("#topImage").append(this);
							$(this).fadeIn(settings.fadeInTime);
							//$(this).click(function(){location.href=linkURL;});
							iId = setInterval(changeBannarImage,settings.interval)
						}).attr('src', imageURL)
	
		};

        elements.each(function() {
			addData( this );
			loadBannarImage();
        });

        //method chain
        return this;
    };
})(jQuery);

