/************************************************************\
 *        (c) 2008, Bluebear Internet Data Solutions        *
 *    http://www.bluebear.nl/        http://www.tic4.nl/    *
 *                                                          *
 *                    Licensed under the                    *
 * Creative Commons Attribution-Share Alike 3.0 Netherlands *
 *      http://creativecommons.org/licenses/by-sa/3.0/      *
\************************************************************/
/* OPTIONS */
var scrollContClass = 'itemcontainer'; //Class of the animation container
var blockClass      = 'item';          //Class of the scrolling blocks
var containerHeight = 256;             //Pixels
var blockHeight     = 246;             //Pixels
var blockVertMargin = 10;              //Pixels (Vertical margin)
var curBlock        = 0;               //Starting block (default: 0)
var scrollInterval  = 9000;            //Milliseconds (default: 5000)
var scrollDuration  = 3000;            //Milliseconds (default: 1000)

/* SCRIPT */

var autoScroll = new Array();
var blocks = new Array();
var blockCount = new Array();
var viewed = new Array();
var scroller = function(){
	if ($$('.'+scrollContClass+' .'+blockClass)) {
		if ($$('.'+scrollContClass).getStyle('position') != 'absolute') {
			$$('.'+scrollContClass).setStyle('position','relative');
		}
		$$('.'+scrollContClass).setStyle('overflow','hidden');
		$$('.'+scrollContClass).setStyle('height',containerHeight);
		$each($$('.'+scrollContClass),function(container,iteration) {
			blocks[iteration] = container.getElements('.'+blockClass);
			blocks[iteration].each(function(block,count){
				block.setStyle('height',blockHeight);
				block.setStyle('position','absolute');
				block.setStyle('top',(blockHeight+blockVertMargin*2-1)*count);
			});
			var blockCount = blocks[iteration].indexOf(blocks[iteration].getLast())+1;
			autoScroll = scrollBlocks.periodical(scrollInterval,this,iteration);
		});
	}
};

var scrollBlocks = function(iteration) {
	viewed[iteration] = Math.floor(containerHeight/(blockHeight+blockVertMargin));
	blockCount[iteration] = blocks[iteration].indexOf(blocks[iteration].getLast())+1;
	if (viewed[iteration] < blockCount[iteration]) {
		blocks[iteration].each(function(block,count){
			if (block.getStyle('top').toInt() <= 0-blockHeight-blockVertMargin*2+1) {
				block.setStyle('top',(blockCount[iteration]-1)*(blockHeight+blockVertMargin*2-1));
			}
			var posVert = block.getStyle('top').toInt();
			block.set('tween', {property: 'top', duration: scrollDuration}).tween(posVert-blockHeight-blockVertMargin*2+1);
		});
	}
	(function(){
	}).delay(scrollDuration);
};
window.addEvent('domready',scroller);