function initButtons() {
  var news_scrollers = document.getElementsByName('news_scroller');
  for (var i=0; i < news_scrollers.length; i++) {
    news_scrollers[i].onclick = buttonClick;
    news_scrollers[i].onmousedown = buttonDown;
    news_scrollers[i].onmouseup = buttonUp;
    news_scrollers[i].oncontextmenu = buttonMenu;
  }
	getLinkElems();
	playFirstTicker();
}

function buttonMenu(e) {
	return false;
}

function buttonDown(e) {
	if (!e) var e = window.event;
	if ((lock_tick == false) && (e.button != 2)) {
		document.getElementById(this.id).style.cssText = "vertical-align: bottom; cursor: hand;";
	}
}

function buttonUp(e) {
	if (!e) var e = window.event;
	if ((lock_tick == false) && (e.button != 2)) {
		document.getElementById(this.id).style.cssText = "vertical-align: middle; cursor: hand;";
	}
}

function buttonClick(e) {
  delayTicker();
  if (this.id == "back") {
    prevArticle();
  } else if (this.id == "next") {
    nextArticle();
  }
}

function prevArticle() {
  if (lock_tick == false) {
	  if (tick_pos == 0) {
	    tick_pos = arrNewsItems.length-1;
	  } else {
	    tick_pos--;
		}
		setArticle(tick_pos);
	}
}

function nextArticle() {
	if (lock_tick == false) {
	  if (tick_pos == arrNewsItems.length-1) {
	    tick_pos = 0;
	  } else {
	    tick_pos++;
		}
		setArticle(tick_pos);
	}
}

function typeText() {
	if(cur_pos < cur_Text.length) {
		sText += cur_Text.charAt(cur_pos);
		setSpan(sText,cur_Linkage);
		cur_pos++;		
	} else if (cur_pos == cur_Text.length) {
		sText += cur_Text.charAt(cur_pos);
		setSpan(sText,cur_Linkage);
		clearInterval(typeInterval);
		hideCursor();
	} else if (cur_pos > cur_Text.length){
		setSpan(sText,cur_Linkage);
		clearInterval(typeInterval);
		hideCursor();
	}
}

function setSpan(sText, strLink) {
	var tickElem = document.getElementById("tick");
	var tickFirstChild =  tickElem.firstChild;
	var tickLinkElem = document.createElement("a");
		
		tickLinkElem.setAttribute('href', strLink);
        tickLinkElem.setAttribute('target', '_top');
        tickLinkElem.style.textDecoration = 'none';
		tickText = document.createTextNode(sText);
		tickLinkElem.appendChild(tickText);
		tickElem.replaceChild(tickLinkElem,tickFirstChild);
		getLinkElems();
}

function getLinkElems() {
	var tickerElem = document.getElementById("tick"); 
	var tickerAElem = tickerElem.getElementsByTagName("a"); 
	
	for (var i=0; i < tickerAElem.length; i++) {
    tickerAElem[i].onmouseover = stopTicker;
   	tickerAElem[i].onmouseout = resumeTicker;
  }
}

function setArticle(intPos) {
	if(arrNewsItems[intPos]!=null) {
		lock_tick = true;
		cur_pos = 0;
		sText = '';
		setSpan('', '#');
		showCursor();
		cur_Text = arrNewsItems[intPos][0];
		cur_Linkage = arrNewsItems[intPos][1];
		typeInterval = setInterval( "typeText()", t_speed);
		lock_tick = false;
  }
}

function playTicker() {
  isInFirstTimeout = false;
	if (my_timer != 0) {
		clearInterval(typeInterval);
		nextArticle();
  }
  my_timer = self.setTimeout("playTicker()", tick_speed);
}

function playFirstTicker() {
	if(pass_one == true) {
		hideCursor();
		setSpan(arrNewsItems[0][0],arrNewsItems[0][1]);
		pass_one = false;
		typeInterval = setInterval('',0);
		isInFirstTimeout = true;
		my_timer = self.setTimeout("playFirstTicker()", tick_speed);
	}
	else if(pass_one == false) {
		clearTimeout(my_timer);
		isInFirstTimeout = false;
		setArticle(tick_pos);
		playTicker();
	}
}

function stopTicker() {
	clearTimeout(my_timer);
}

function resumeTicker() {
	clearTimeout(my_timer);
	my_timer = self.setTimeout("playTicker()", tick_speed);
}

function delayTicker() {
  clearTimeout(my_timer);
	clearInterval(typeInterval);
  my_timer = self.setTimeout("playTicker()", tick_speed * 2);
}

function hideCursor() {
	document.getElementById("cursor").className = "hidden";
}

function showCursor() {
	document.getElementById("cursor").className = "";
}

initButtons();