/* Plugin by Rein  Van Oyen - January 2011 */
(function($){
	
	$.fn.tntSlideshow = function(method){

		var elementStack 	= this;
		var imgStack		= elementStack.find('img');
		
		/* METHODS */
		
		var methods = {
			
			init : function(){

				imgStack.hide().first().fadeIn(settings.speed);

				if(settings.autoPlay){
					methods.play();
				}
				
			},
			play : function(){
				if(elementStack.length>0){
					playInterval = setInterval(function(){
						var visibleImg 	= elementStack.children('img:visible');
						var currentImg 	= imgStack.index(visibleImg);
						methods.fadeTo(currentImg+1);
					}, settings.interval);
				}
			},
			pause : function(){
				clearInterval(playInterval);
			},
			fadeTo : function(n){
								
				var visibleImg 	= elementStack.children('img:visible');
				var visibleImgI	= imgStack.index(visibleImg);
				var fadeToImg	= imgStack.eq(n);
			
				if(fadeToImg.size()>0){
					
					if(visibleImgI>n){
						fadeToImg.show();
						visibleImg.fadeOut(settings.speed);
					}
					else
					{
						fadeToImg.fadeIn(settings.speed, function(){
							visibleImg.hide();
						});
					}

				}
				else
				{
					methods.fadeTo(0);
				}
				
			}
			
		};
		
		/* DEFAULT SETTINGS */
		
		var settings = {
			'speed': 1000,
			'interval': 2000,
			'autoPlay': true
		};
		
		/* CALL METHOD OR MERGE CUSTOM SETTINGS WITH DEFAULT SETTINGS & INIT */

		if ( methods[method] ) {
			return methods[method].apply( this, Array.prototype.slice.call( arguments, 1 ));
		}
		else if ( typeof method === 'object' || ! method ) /* Merge custom settings met default settings */
		{
			return this.each(function(){
				$.extend(settings, method);
				methods.init();
			});
		} 
		else
		{
			alert('method bestaat niet');
		}
		
	};

})( jQuery );
