/*
 * siaTabsui.Animate 0.1 - jQuery plugin
 * 
 * Copyright (c) 2008 Sukharev Ivan (www.siarion.net)
 *
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 *
 * Revision: $Id: jquery.ui.animate.js 1 2008-06-11 00:14 $
 *
 */
(function($) {

	$.widget("ui.Animate", {

		_init: function() {
			var self = this;
			$.ui.Animate._Counter = 0;
			$.ui.Animate._Fade = 0;
			$.ui.Animate._Container = this.element;
			$.ui.Animate._Container.attr("class", this.options.imageclass + $.ui.Animate._Counter);
			$.ui.Animate._Container.html('<div id="' + this.element.attr('id') + '_sub"></div>');
			$.ui.Animate._ContainerSub = $('#' + this.element.attr('id') + '_sub');
			$.ui.Animate._ContainerSub.css("opacity", $.ui.Animate._Fade);
			this._playAnimation();
		},

		_playAnimation: function() {
			var self = this;
			$.ui.Animate._timer_rotate = setInterval(function() { self._rotateContent() }, this.options.rotateDelay);
		},

		_rotateContent: function() {
			var self = this;
			$("." + this.options.thumbclass + $.ui.Animate._Counter).css("opacity", 0.3);
			$.ui.Animate._Counter++;
			if ($.ui.Animate._Counter > this.options.hightIndex) {
				$.ui.Animate._Counter = 0;
			}
			$("." + this.options.thumbclass + $.ui.Animate._Counter).css("opacity", 1.0);
			$.ui.Animate._ContainerSub.attr("class", this.options.imageclass + $.ui.Animate._Counter);
			$.ui.Animate._timer_fade = setInterval(function() { self._fadeContent() }, this.options.fadeDelay);
		},

		_fadeContent: function() {
			if ($.ui.Animate._Fade < 1) {
				/**
				 * Fade in Process
				 */
				$.ui.Animate._Fade += this.options.fadeStep;
				$.ui.Animate._ContainerSub.css("opacity", $.ui.Animate._Fade);
			} else {
				/**
				 * Fade Finished = 1
				 */
				$.ui.Animate._Container.attr("class", $.ui.Animate._ContainerSub.attr("class"));
				$.ui.Animate._Fade = 0;
				$.ui.Animate._ContainerSub.css("opacity", $.ui.Animate._Fade);
				clearInterval($.ui.Animate._timer_fade);
				$.ui.Animate._timer_fade = null;
			}
		}

	});

	$.ui.Animate.defaults = {
		imageclass: "animate-",
		thumbclass: "thumb-",
		rotateDelay: 3000,
		fadeDelay: 50,
		hightIndex: 15,
		fadeStep: .05
	};

})(jQuery);
