(function( $ ){
$.fn.rl_teaserviewer = function() 
{
	var items=[];
	// Get all items
	this.find('li').each( function () 
	{
		var url        = $(this).find('a').attr("href");
		var thumbnail  = $(this).find('img').attr("src");
		var image      = $(this).find('img').attr("longdesc");
		var title      = $(this).find('.title').text();
		var copy       = $(this).find('.copy').text();
		
		items.push(
			{
				url : 		 url,
				thumbnail :  thumbnail,
				image : 	 image,
				title : 	 title,
				copy : 		 copy
			}
		);
	} );
	
	this.empty();
	
	// create Markup
	var tv_container = "<div id='teaserviewer_image'><a href=''><img src='' alt=''/></a><div id='teaserviewer_overlay'><div id='teaserviewer_text'><div class='title'></div><p></p></div></div></div>";
	var tv_thumbs = "<div id='teaserviewer_thumbs'><ul></ul></div>";
	
	this.append(tv_container);
	this.append(tv_thumbs);
	
	// index des aktiven Bildes
	var active = -1;
	
	// stop looping through items
	var stopped = false;
	
	var tv_image = $('#teaserviewer_image img');
	var tv_link = $('#teaserviewer_image a');
	var tv_thumblist = $('#teaserviewer_thumbs ul');
	var tv_title = $('#teaserviewer_text .title');
	var tv_text = $('#teaserviewer_text p');

	// add thumbnails to thumblist
	$.each(
		items,
		function( index, value )
		{	
			tv_thumblist.append("<li><a id='thumb"+index+"'><img src='"+value.thumbnail+"'/></a></li>");
		}
	);

	var showNext = function()
	{
		var next = active + 1;	
		if (next >= items.length)
		{
			next = 0;
		}
		showItem( next, true );
	}
	
	var showPrevious = function()
	{
		var prev = active-1;
		if (prev < 0)
		{
			prev = items.length-1;
		}
		showItem(prev, false);
	}
	
	var showItem = function( index, forward )
	{
		active = index;
		var activeObj = items[active];
		
		tv_image.hide();
		tv_title.hide();
		tv_text.hide();
		
		tv_image.attr('src', activeObj.image);
		tv_image.fadeIn(800);
		tv_title.text(activeObj.title);
		tv_title.fadeIn(400);
		tv_text.text(activeObj.copy);
		tv_text.fadeIn(400);
		tv_link.attr('href', activeObj.url);

		if (!stopped)
		{
			//forward ? slideForward() : slideBackward();
		}
	}
	
	var slideForward = function()
	{
		tv_thumblist.find("li").css("top", "0px").stop().animate({top:'-96px'},2000);
		tv_thumblist.append(tv_thumblist.children().first());
	}
	
	var slideBackward = function()
	{	
		tv_thumblist.prepend(tv_thumblist.children().last()).queue( function(next)
		{
			tv_thumblist.find("li").css("top", "-96px").stop().animate({top:'0px'},2000);
			next();	
		});
	}
	
	tv_thumblist.find('a').click( function(event)
	{
		event.preventDefault();
		var index = $(this).attr("id").substring(5);
		stopped = true;
		showItem(index);
	} );

	showNext();
	
	setInterval(function()
	{ 
		if (!stopped)
		{
			showNext()
		} 
	}, 5000);		
};
})( jQuery );


$(document).ready(function() 
{
 	$('#tv_plugin').rl_teaserviewer();
});
