// JavaScript Document
var slide_w 				= 308;
var slide_viewport_num		= 3;
var slide_duration			= 200;
var slide_enabled			= true;
	
function TeaserList()
{
	this.init	= function()
	{
		$(window).load
		(
			function()
			{
				$('.catalog-teaser-list').each
				(
					function(key, value)
					{
						add_teaser_list(value);
					}
				)
			}
		)
	}
}

function add_teaser_list(wrapper)
{
	var child_num;
	
	child_num	= $('ul li', wrapper).length;
	
	if(child_num > slide_viewport_num)
	{
		$('.control-panel', wrapper).css('display', 'block');
		$('.control-panel a', wrapper).each
		(
			function(key, value)
			{
				var dir;
				
				if( $(value).hasClass('btn-left') )
				{
					dir = 1;
				}
				else
				{
					dir = -1;	
				}
				
				$(value).click
				(
					function()
					{
						if(slide_enabled) 
						{
							slide_enabled = false;
							setTimeout(function(){ slide_enabled = true}, slide_duration); 
							slide_current_list( $(wrapper), child_num, dir);
						}
						return false;	
					}
				);
			}
		);
	}
}


function slide_current_list(wrapper, child_num, dir)
{
	var list		= $('ul', wrapper);
	var x_pos		= $(list).position().left + (dir * slide_w);;
	var max_x		= 0;
	var min_x		= -slide_w * (child_num - slide_viewport_num);
	var slide_id;
	
	// Bewege Liste
	if(x_pos > 0)
	{
		x_pos = 0;
	}
	else if(x_pos <= min_x )
	{
		x_pos = min_x;
		
	}
	
	slide_id	= -( x_pos / slide_w);
	
	$('ul li', wrapper).each
	(
		function(key, value)
		{
			if( key >= slide_id && key < slide_id + slide_viewport_num)
			{
				$(value).animate({opacity: 1}, slide_duration);
			}
			else
			{
				$(value).animate({opacity: 0}, slide_duration);
			}
		}
	)	
	
	
	$(list).stop().animate({'left': x_pos}, slide_duration);
	
	
	// Linken Button aktualisieren
	(x_pos >= 0) ? $('.control-panel .btn-left', wrapper).css('display', 'none') : $('.control-panel .btn-left', wrapper).css('display', 'block');
	// Rechten Button aktualisieren
	(x_pos <= min_x) ? $('.control-panel .btn-right', wrapper).css('display', 'none') : $('.control-panel .btn-right', wrapper).css('display', 'block');
}



new TeaserList().init();
