// Contribution to pellesoft from Niklas Schräder - Orust
// 2006-03-15

var scrollStep = 2
var scrollDelay = 40
var scrollLongDelay = 4000

var scrollAllowed = true
var scrollHeight = null

var thetimer = 0;
var alreadyrunning = 0;

function scrollerInit() {

	// om objektet finns eller ej
	if (document.getElementById("scroller")) {

		// har vi kört denna förr?
		if (alreadyrunning ==0) {
			document.getElementById("scroller").onmouseover = function() {scrollAllowed = false;}
			document.getElementById("scroller").onmouseout = function() {scrollAllowed = true;}
			
			// kör vi ie5?
			if (navigator.appVersion.indexOf("MSIE 5")!=-1) {
				document.getElementById("outerBox").style.width = document.getElementById("outerBox").offsetWidth+2
				document.getElementById("outerBox").style.height = document.getElementById("outerBox").offsetHeight+2
			}
			
			scrollHeight = document.getElementById("innerBox").offsetHeight
					
			// dubbla datat så vi får jämn scrollning med samma data gång på gång
			content = document.getElementById("innerBox").innerHTML
			document.getElementById("innerBox").innerHTML = content + content
			
			// flagga så vi bara kör denna rutin 1 gång
			alreadyrunning = 1;
			
			scrollUp()
		} else {
			// vi har redan kört init på sidan
		}
				
    }
}

function scrollUp() {

	//om scrollern finns
	if (document.getElementById("scroller")) {

		toppos = parseInt(document.getElementById("innerBox").style.top)
		if (isNaN(toppos) || -toppos > scrollHeight-scrollStep) {
			toppos = 0
		}
	    
		if (scrollAllowed)
			document.getElementById("innerBox").style.top = toppos-scrollStep + "px"

		delay = scrollDelay
		p = document.getElementById("innerBox")	
		specialitems = p.childNodes.length;
						
		for (i = 0; i < specialitems; i++) {
			if (p.childNodes[i].tagName == "A") {
				if (p.childNodes[i].offsetParent)
					var linkpos = toppos + p.childNodes[i].offsetTop
				else
					var linkpos = toppos + p.childNodes[i].offsetTop - p.offsetTop // NN6

				if (linkpos >= 0 && linkpos < scrollStep)
					delay = scrollLongDelay
				
				if(linkpos < 0) {
					var linkpos = toppos + p.childNodes[i].offsetTop;
					delay = scrollDelay;
				}
			}
		}

		//window.status = "delay:" + scrollDelay + " objects: " + specialitems + " linkpos:" + linkpos;

		try {
			// får vi för lågt värde - ökar vi till 40 igen
			if (delay < 40) {
				delay = scrollDelay;
			}
			thetimer = window.setTimeout("scrollUp()", delay);
		} catch (e) {
			// ignorera ev fel
		}
	}
}

// startar scrollern på framsidan
window.onload=scrollerInit




