/***************************************************************************************************
* AGI Media - GUI Library
********************************
*
* purpose:
*    => define reusable GUI classes
*
* depends on:
*    => jquery.js
*    => AGIMedia.js
*    => AGIMedia_GUILib.js
***************************************************************************************************/

///////////////////////////////////////////////////////////////////////////////////////////////////
// CLASS: ImageSwitch
//-------------------------------------------------------------------------------------------------
AGIMedia_GUILib.createDivSwitch = function($container)
{
	var THIS =  {
// DATA MEMBERS
//-------------------------------------------------------------------------------------------------
		$container: $container,
		currDiv: 0,
		lastDiv: -1,
		numDivs: $container.children().length,
		
// GUI MEMBERS
//-------------------------------------------------------------------------------------------------
		$divs: null,
		
// EXTERNAL METHODS
//-------------------------------------------------------------------------------------------------
		showDiv: function(num)
		{
			this.currDiv = num;
			if(this.currDiv != this.lastDiv) {
				$(this.$divs[this.currDiv]).css("display", "block");
				if(this.lastDiv > -1)
					$(this.$divs[this.lastDiv]).css("display", "none");
			}
			this.lastDiv = this.currDiv;
		},
		
		fadeDiv: function(num, fadeTime, readyFunction)
		{
			if(this.numDivs < 2 || this.currDiv == num)
				return;
			
			var $currDiv = $(this.$divs[this.currDiv]);
			var $nextDiv = $(this.$divs[num]);

			var time_d2 = (~~fadeTime) / 2;
			
			$currDiv.fadeTo(time_d2, 0, function()
			{
				$nextDiv.fadeTo(0, 0);
				this.showDiv(num);
				if(readyFunction != undefined && typeof(readyFunction) == "function")
					$nextDiv.fadeTo(time_d2, 1, readyFunction);
				else
					$nextDiv.fadeTo(time_d2, 1);
			});
		},
		
		crossFadeDiv: function(num, fadeTime, readyFunction)
		{
			if(this.numDivs < 2 || this.currDiv == num)
				return;
			var $currDiv = $(this.$divs[this.currDiv]);
			var $nextDiv = $(this.$divs[num]);
			$nextDiv.fadeTo(0, 0);
			$nextDiv.css({display: "block"});
			this.currDiv = num;
			this.lastDiv = this.currDiv;
			$currDiv.fadeTo(fadeTime, 0, function(){
				$currDiv.css({display: "none"});
			});
			if(readyFunction != undefined && typeof(readyFunction) == "function")
				$nextDiv.fadeTo(fadeTime, 1, readyFunction);
			else
				$nextDiv.fadeTo(fadeTime, 1);
			this.lastDiv = this.currDiv;
		}
	};

// CONSTRUCTOR
//-------------------------------------------------------------------------------------------------
	THIS.$divs = THIS.$container.children();
	THIS.$divs.each(function(){
		$(this).css({
			display: "none"
		});
	})
	THIS.showDiv(0);
//-------------------------------------------------------------------------------------------------
	return THIS;
}

//-------------------------------------------------------------------------------------------------
///////////////////////////////////////////////////////////////////////////////////////////////////


