function getElementsByClassName(clss, prnt, tg) {
    var elements = new Array();
    tg = tg || '*';
    prnt = prnt || document;
    var list = prnt.getElementsByTagName(tg);
    for (var i = 0; i < list.length; ++i) {
        if (list[i].className == clss) {
            elements.push(list[i]);
        }
    }
	return elements;
}

var ScrollReg = new scrollers();
var scrollStat = new Array ('inactive','active','hover');
var scrollRight = new Array();
var scrollLeft  = new Array();
for(i=0;i<scrollStat.length;i++)
{
	scrollRight[i] = new Image();
	scrollLeft[i]  = new Image();

	scrollRight[i].src = 'images1/scrollright_net_'+ scrollStat[i] +'.gif'
	scrollLeft[i].src  = 'images1/scrollleft_net_'+ scrollStat[i] +'.gif'
}

function scrollers ()
{
	var sarr = new Array()
	this.add = add
	this.get = get

	function add(scr) {
		sarr.push(scr)
	}

	function get(id) {
		for(i=0;i<sarr.length;i++) {
			if(sarr[i].id == id) {
				return sarr[i]
			}
		}
	}
}

function nso () {
	var me = this
	this.id = ''
	this.dir = 0
	this.pos = 0
	this.offset = 0
	this.max = 8
	this.view = 4
	this.cpos = 0
	this.moving = false
	this.interval = ''
	// this.movearray = new Array ( 1, 2, 3, 5, 8, 12, 15, 18, 21, 18, 15, 12, 8, 5, 3, 2, 1 );
	this.movearray = new Array ( 1, 2, 3, 5, 8, 12, 17, 23, 31, 23, 17, 12, 8, 5, 3, 2, 1 );
	this.getStatus = getStatus
	this.updateIcons = updateIcons

	function getStatus(side)
	{
		if(side==0)
		{
			if(me.cpos==0)
				return 0
			return 1
		}

		if(side==1)
		{
			if( (me.cpos+me.view) < me.max)
				return 1
			return 0
		}

	}

	function updateIcons(hover,side)
	{
		if(hover)
		{
			if(side&1 && getStatus(0))
			document.getElementById('scrollleft_'+me.id).src = scrollLeft[2].src
			if(side&2 && getStatus(1))
			document.getElementById('scrollright_'+me.id).src = scrollRight[2].src
		} else {
			if(side&1)
			document.getElementById('scrollleft_'+me.id).src = scrollLeft[getStatus(0)].src
			if(side&2)
			document.getElementById('scrollright_'+me.id).src = scrollRight[getStatus(1)].src
		}
	}

}

function initScrollers()
{

	var scrollers = getElementsByClassName('scrollamatic', document.getElementById('scroll-wrap'), 'div')
	for(i=0;i<scrollers.length;i++)
	{

		var scr = scrollers[i]
		var scid = scr.id

		var sc = document.getElementById( 'scrollcontent_'  + scid )

		var sob = new nso();
		sob.id = scid
		if(sc.style.left != '')
		{
			sob.offset = parseInt(sc.style.left);
		}

		// count children
		sob.max = getElementsByClassName('scrollPromoBox',document.getElementById('scrollshell_'+scid),'div').length
		sob.updateIcons(false,3)
		ScrollReg.add(sob)
	}
}


function singleScroll(unit,scid)
{

	var sob = ScrollReg.get(scid)
	sob.dir = unit
	
	if(  !sob.moving && ( (sob.dir>0 && (sob.cpos+sob.view)<sob.max )  ||  (sob.dir<0 && sob.cpos>0) ) )
	{
		sob.moving = true
		sob.cpos += sob.dir
		if(sob.dir > 0)
		{
			sob.updateIcons(false,1)
		} else {
			sob.updateIcons(false,2)
		}
		if(sob.getStatus(0) == 0)
			sob.updateIcons(false,1)
		if(sob.getStatus(1) == 0)
			sob.updateIcons(false,2)
		sob.interval = setInterval(function () { unitScroller(sob) },15)
	}
}

function unitScroller(sob)
{

	var sc = document.getElementById( 'scrollcontent_'  + sob.id )

	if(sob.pos == sob.movearray.length)
	{
		sob.pos = 0
		clearInterval(sob.interval)
		sob.moving = false
		return
	}

	sob.offset += ((-1 * sob.dir) * sob.movearray[sob.pos])
	sc.style.left = sob.offset + 'px'
	sob.pos++

}