
/* Footer Teaser Scroller ========================================================================================== */
var footerScrollerWidth = 205;
var footerScrollerBoxes = new Array();
var footerScrollerInProcess = false;

function FooterStrollerStart()
{
	var list = document.getElementById('FooterScrollerList');
	
	if (list)
	{
		var ix = 0;
		for(var i in list.childNodes)
		{
			var elm = list.childNodes[i];
			if (elm.className)
			{
				elm.setPosition = function(position)
				{
					this.style.left = position + "px";
					this.position = position;
				};
				
				elm.setPosition(ix * footerScrollerWidth);
				footerScrollerBoxes[ix] = elm;
				ix++;
			}
		}
	}
}

function FooterScrollerMove(direction)
{
	if (!footerScrollerBoxes.length)
		FooterStrollerStart();
		
	if (footerScrollerInProcess)
		return;
	
	footerScrollerInProcess = true;
	
	var myLeft = 0;
	var myRight = 0;
	
	for (var i = 0; i < footerScrollerBoxes.length; i++)
	{
		if (footerScrollerBoxes[i].position < myLeft)
			myLeft = footerScrollerBoxes[i].position;
		
		if (footerScrollerBoxes[i].position > myRight)
			myRight = footerScrollerBoxes[i].position;
	}
	
	if(direction == 'next')
	{
		for (var i = 0; i < footerScrollerBoxes.length; i++)
		{
			if (footerScrollerBoxes[i].position < 0)
			{
				footerScrollerBoxes[i].setPosition(myRight + footerScrollerWidth);
				myRight += footerScrollerWidth;
			}
		}
		FooterScrollerMoveBy(-footerScrollerWidth);
	}
	
	if(direction == 'previous')
	{
		for (var i = (footerScrollerBoxes.length - 1); i >= 0; i--)
		{
			if (footerScrollerBoxes[i].position >= (footerScrollerWidth * 4))
			{
				footerScrollerBoxes[i].setPosition(myLeft - footerScrollerWidth);
				//alert('Set: ' + (myLeft - footerScrollerWidth) + ', setted: ' + footerScrollerBoxes[i].position + ', offset: ' + footerScrollerBoxes[i].offsetLeft);
				myLeft -= footerScrollerWidth;
			}
		}
		FooterScrollerMoveBy(footerScrollerWidth);
	}
}

function FooterScrollerMoveBy(px)
{
	var step = getStep(px);
	
	if (px < 0)
		step = -step;
	
	for (var i = 0; i < footerScrollerBoxes.length; i++)
	{
		footerScrollerBoxes[i].setPosition(footerScrollerBoxes[i].position + step);
	}
	
	px -= step;
	if (px)
		window.setTimeout('FooterScrollerMoveBy(' + px.toString() + ')', 10);
	else
		footerScrollerInProcess = false;
}



/* Top Teaser Scroller ============================================================================================= */
var topScrollerHeight = 158;
var topScrollerBoxes = new Array();
var topScrollerInProcess = false;
var topScrollerAuto = 0;

function TopStrollerStart()
{
	var list = document.getElementById('TopScrollerList');
	
	if (list)
	{
		var ix = 0;
		for(var i in list.childNodes)
		{
			var elm = list.childNodes[i];
			if (elm.className)
			{
				elm.setPosition = function(position)
				{
					this.style.top = position + "px";
					this.position = position;
				};
				
				elm.setPosition(ix * topScrollerHeight);
				topScrollerBoxes[ix] = elm;
				ix++;
			}
		}
	}
}

function TopScrollerMove(direction)
{
	if (!topScrollerBoxes.length)
		TopStrollerStart();
		
	if (topScrollerInProcess)
		return;
	
	if (direction == 'auto')
	{
		if (topScrollerMouseOn)
			return;
		else
			direction = 'next';
	}
	else if (topScrollerAuto)
	{
		window.clearInterval(topScrollerAuto);
	}
	
	topScrollerInProcess = true;
	
	var myTop = 0;
	var myBottom = 0;
	
	for (var i = 0; i < topScrollerBoxes.length; i++)
	{
		if (topScrollerBoxes[i].position < myTop)
			myTop = topScrollerBoxes[i].position;
		
		if (topScrollerBoxes[i].position > myBottom)
			myBottom = topScrollerBoxes[i].position;
	}
	
	if(direction == 'next')
	{
		for (var i = 0; i < topScrollerBoxes.length; i++)
		{
			if (topScrollerBoxes[i].position < 0)
			{
				topScrollerBoxes[i].setPosition(myBottom + topScrollerHeight);
				myBottom += topScrollerHeight;
			}
		}
		TopScrollerMoveBy(-topScrollerHeight);
	}
	
	if(direction == 'previous')
	{
		for (var i = (topScrollerBoxes.length - 1); i >= 0; i--)
		{
			if (topScrollerBoxes[i].position >= (topScrollerHeight * 2))
			{
				topScrollerBoxes[i].setPosition(myTop - topScrollerHeight);
				myTop -= topScrollerHeight;
			}
		}
		TopScrollerMoveBy(topScrollerHeight);
	}
}

function TopScrollerMoveBy(px)
{
	var step = getStep(px);
	
	if (px < 0)
		step = -step;
	
	for (var i = 0; i < topScrollerBoxes.length; i++)
	{
		topScrollerBoxes[i].setPosition(topScrollerBoxes[i].position + step);
	}
	
	px -= step;
	if (px)
		window.setTimeout('TopScrollerMoveBy(' + px.toString() + ')', 10);
	else
		topScrollerInProcess = false;
}

function TopScrollerAuto()
{
	topScrollerAuto = window.setInterval('TopScrollerMove("auto")', 6000);
}



/* Gallery Teaser Scroller ========================================================================================= */
var galleryScrollerWidth = 106;
var galleryScrollerBoxes = new Array();
var galleryScrollerInProcess = false;
var galleryShownItems = 4;

function GalleryStrollerStart()
{
	var list = document.getElementById('GalleryScrollerList');
	
	if (list)
	{
		var ix = 0;
		for(var i in list.childNodes)
		{
			var elm = list.childNodes[i];
			if (elm.className && elm.id && elm.id.indexOf('GalleryScrollerBox') === 0)
			{
				elm.setPosition = function(position)
				{
					this.style.left = position + "px";
					this.position = position;
				};
				elm.setPosition(ix * galleryScrollerWidth);
				galleryScrollerBoxes[ix] = elm;
				ix++;
			}
		}
	}
}

function GalleryScrollerMove(direction)
{
	if (!galleryScrollerBoxes.length)
		GalleryStrollerStart();
		
	if (galleryScrollerInProcess)
		return;
	
	if (galleryScrollerBoxes.length <= galleryShownItems)
		return;
	
	galleryScrollerInProcess = true;
	
	var myLeft = 0;
	var myRight = 0;
	
	for (var i = 0; i < galleryScrollerBoxes.length; i++)
	{
		if (galleryScrollerBoxes[i].position < myLeft)
			myLeft = galleryScrollerBoxes[i].position;
		
		if (galleryScrollerBoxes[i].position > myRight)
			myRight = galleryScrollerBoxes[i].position;
	}
	
	if(direction == 'next')
	{
		for (var i = 0; i < galleryScrollerBoxes.length; i++)
		{
			if (galleryScrollerBoxes[i].position < 0)
			{
				galleryScrollerBoxes[i].setPosition(myRight + galleryScrollerWidth);
				myRight += galleryScrollerWidth;
			}
		}
		GalleryScrollerMoveBy(-galleryScrollerWidth);
	}
	
	if(direction == 'previous')
	{
		for (var i = (galleryScrollerBoxes.length - 1); i >= 0; i--)
		{
			if (galleryScrollerBoxes[i].position >= (galleryScrollerWidth * galleryShownItems))
			{
				galleryScrollerBoxes[i].setPosition(myLeft - galleryScrollerWidth);
				myLeft -= galleryScrollerWidth;
			}
		}
		GalleryScrollerMoveBy(galleryScrollerWidth);
	}
}

function GalleryScrollerMoveBy(px)
{
	var step = getStep(px);
	
	if (px < 0)
		step = -step;
	
	for (var i = 0; i < galleryScrollerBoxes.length; i++)
	{
		galleryScrollerBoxes[i].setPosition(galleryScrollerBoxes[i].position + step);
	}
	
	px -= step;
	if (px)
		window.setTimeout('GalleryScrollerMoveBy(' + px.toString() + ')', 10);
	else
		galleryScrollerInProcess = false;
}



/* ================================================================================================================= */


function getStep(px)
{
	if(px < 0)
		px = -px;
	
	if(px >= 300)
		return 50;
	
	if(px >= 50)
		return 20;
	
	if(px >= 10)
		return 5;
	
	return 1;
}
