var scroll = new Array();
var scrollCounter = new Array();
var scrollCount = new Array();
var scrollConfig = new Array();
var scrollTimer = new Array();

function scrollInit(id, config)
{		
    if ( $('scroll-'+id) == null ) return;    
    if ( $('scroll-'+id).getElement('ul') == null ) return;

    scrollCount[id] = $$('#scroll-'+id+' li').length;
    scrollCounter[id] = 0;    
    scrollConfig[id] = config;
    
    if (scrollCount[id] <= config.items)
    {
    	if($('scroll-'+id+'-prev')) $('scroll-'+id+'-prev').destroy();
    	if($('scroll-'+id+'-next')) $('scroll-'+id+'-next').destroy();    	
    	return;
    }
    
    if (config.size == undefined)
    {
    	config.size = $('scroll-'+id).getElement('li').getSize();    	
    	if (config.align == 'width')
    		config.size = config.size.x;
    	else
    		config.size = config.size.y;
    }
	
    $('scroll-'+id).getElement('ul').setStyle(config.align, (config.size * scrollCount[id])+'px');
    scroll[id] = new Fx.Scroll('scroll-'+id);
	scrollSet(id, 0);
    
    if (config.auto != undefined){
    	scrollTimer[id] = (function(){ scrollAuto(id); }).delay(config.auto);
    }
	
	if($('scroll-'+id+'-pages')){
    	$$('#scroll-'+id+'-pages a').each(function(el, nr){
			el.addEvent('click', function(){
				scrollSet( id, nr*config.items );
			});
		});	
    }
	
	if($('scroll-'+id+'-prev')) $('scroll-'+id+'-prev').addEvent('click', function(){ scrollPrev(id) } );
	if($('scroll-'+id+'-next')) $('scroll-'+id+'-next').addEvent('click', function(){ scrollNext(id) } );
}

function scrollPrev(id)
{
	scrollCounter[id] = scrollCounter[id]-scrollConfig[id].items;
    
	if (scrollCounter[id] < 0)
		scrollCounter[id] = scrollCount[id] - scrollConfig[id].items;

	scrollSet( id, scrollCounter[id] );
}

function scrollNext(id)
{
	scrollCounter[id] = scrollCounter[id]+scrollConfig[id].items;
	if (scrollCounter[id] > scrollCount[id])
		scrollCounter[id] = 0;

	scrollSet( id, scrollCounter[id] );
}

function scrollSet(id, idPic)
{
	if (idPic < 0 || idPic > scrollCount[id]-1) return;
	
	scrollCounter[id] = idPic;
	scroll[id].toElement( $('scroll-'+id).getElement('li:nth-child('+(idPic+1)+')'), { transition:Fx.Transitions.Quart.easeInOut } );
	
	if($('scroll-'+id+'-pages')){
		$$('#scroll-'+id+'-pages a').removeClass('active');
		var nr = parseInt((idPic / scrollConfig[id].items)+1);
		if($('scroll-'+id+'-pages').getElement('a:nth-child('+nr+')'))
			$('scroll-'+id+'-pages').getElement('a:nth-child('+nr+')').addClass('active');
	}
	
	if (scrollConfig[id].auto != undefined){
		$clear(scrollTimer[id]);
    	scrollTimer[id] = (function(){ scrollAuto(id); }).delay(config.auto);
    }
}

function scrollAuto(id)
{
	scrollCounter[id]++;
    
	if (scrollCounter[id] > scrollCount[id] - scrollConfig[id].items)
		scrollCounter[id] = 0;

	scrollSet(id, scrollCounter[id]);
}

