// JavaScript Document
/**
 * visualControl
 *
 * @category   jQuery
 * @package    visualControl
 * @copyright  Copyright (c) 2010 Astaster**. (http://www.astaster.jp/)
 * @version    0.5.0
 * 
 * require jquery
 * require jquery.easing
 *
 **/
(function ($) {
	$.fn.visualControl = function (options) {
		options = $.extend({
						fade: 3000,
						time: 15000,
						wait: 5000,
						move: 200,
						easing: 'jswing'
					}, options);
		
		var $this = $(this);
		var arrTargetElements = [];
		var currentVisualNo = 0;
		
		function initialize() {
			$('> .storeVisual', $this).each(function () {
				arrTargetElements.push(this);
			});
			
			if (arrTargetElements.length > 1) {
				startAnimation();
			} else if (arrTargetElements.length >= 1) {
				$(arrTargetElements[0]).fadeIn('slow');
			}
			
			return $this;
		}
		
		function startAnimation() {
			var currentTarget = arrTargetElements[currentVisualNo];
			$(currentTarget).css('z-index', 50);
			var $image = $('> .storeImage', $(currentTarget));
			$image.css('top', '0px').css('left', '0px');
			$(currentTarget).fadeIn(options.fade);
			$image.animate({
				top:'-=' + options.move + 'px'
			},
			{
				duration: options.time,
				easing: options.easing,
				complete: function(){
					currentVisualNo++;
					if (currentVisualNo > arrTargetElements.length - 1) currentVisualNo = 0;
					setTimeout(function () {
						$(currentTarget).fadeOut(options.fade).css('z-index', 25);
						startAnimation();
					}, options.wait);
				}
			});
		}
		
		return initialize();
	}
})(jQuery);

