
/*
	Jesper HorsMark 2010
	http://www.horsmark.com
*/

	var fader = function ()
	{
		return {
			slidesContainer:'fader-slides',
			elements: 		[],
			timeVisible:	7000,	// miliseconds
			fadeSpeed:		1000,	// miliseconds
			timer: 			null,
			auto: 			true,
			current: 		null,	// inprogress
			initialized:	false,

			start: function()
			{
				// Run once
				if ( fader.initialized == false ) {
					// Fetch elements
					fader.elements = $("#"+fader.slidesContainer).children('div')
					// Apply proper CSS
					for( var i = 0; i < fader.elements.length; i++ ) {
						$( fader.elements[i] ).css('position','absolute').css('top','0px').css('left', '0px').css('z-index', 0)
						$( fader.elements[i] ).css('display','none')
					}
					$('#'+fader.slidesContainer).show()
					fader.initialized = true
				}
				fader.fade(0)
			},

			fade: function ( i )
			{
				if ( fader.current ) fader.current.stop();
				fader.stop(i)
				i = i < fader.elements.length ? i : 0
				fader.current = $( fader.elements[i] )

				fader.callbackBefore(i)

				$( fader.elements[i] ).css('z-index', 1).fadeIn(
					fader.fadeSpeed,
					function(){
						// hide all other divs and set opacity restored in case fade progress was interrupted
						for( var j = 0; j < fader.elements.length; j++ ) {
							if ( i != j ) {
								$( fader.elements[j] ).css('display','none').css('opacity', 1)
							}
						}
						$(this).css('z-index', 0).find("img").removeAttr('filter')
						fader.callbackAfter(i)

						if ( fader.auto ) {
							fader.timer = setTimeout( function(){ fader.fade(i+1) }, fader.timeVisible )
						}
					}
				)

			},

			stop: function (i)
			{
				clearTimeout(fader.timer)
			},

			callbackBefore: function(i){},

			callbackAfter: function(i){}
		}
	}();



