var slider, slideInner, timerID;
var slideContent;
var posY = 0;
var scroll = true;

function init() {
   if (slider = document.getElementById('slider'))
   {
      slideInner = slider.firstChild;
      if (slideInner.className != "slideInner") slideInner = slider.childNodes[1];
      addEvent(slideInner, "mouseover", stopScrolling, false);
      addEvent(slideInner, "mouseout", startScrolling, false);
      slideContent = slideInner.innerHTML;
      scrolling();
   }
}

function stopScrolling(evt) {
   scroll = false;
   window.clearInterval(timerID);
}

function startScrolling(evt) {
   window.clearInterval(timerID);
   scroll = true;
   timerID = window.setTimeout("scrolling()", 500);
}

function scrolling() {
   if (scroll)
   {
      posY--;
      if (-slideInner.offsetHeight > posY) posY = slider.offsetHeight;
      slideInner.style.top = posY + "px";
      timerID = window.setTimeout("scrolling()", 20);
   }
}

/* ################################################
    wrapper functions for diffrent Browsers
   ################################################ */

function addEvent(obj, evType, fn, useCapture) {
	if (obj.addEventListener) {
		obj.addEventListener(evType, fn, useCapture)
		return true
	} else if (obj.attachEvent) {
		var r = obj.attachEvent("on"+evType, fn)
		return r
	} else {
		alert("Handler could not be attached")
	}
}

function removeEvent(obj, evType, fn, useCapture) {
	if (obj.removeEventListener) {
		obj.removeEventListener(evType, fn, useCapture)
		return true
	} else if (obj.detachEvent){
		var r = obj.detachEvent("on"+evType, fn)
		return r
	} else {
		alert("Handler could not be removed")
	}
}

window.onload = init