//****************************************************************
// Newsticker
//
// Copyright by DataFlash, www.dataflash.at, 2008
//****************************************************************
var tickerDelay = 4000; // in milliseconds
var slideSpeed = 100; // in milliseconds
var slideStartTop = 100; // where new item should start to slide
// MUST BE divideable by 'slideAmount' !!!!
var slideAmount = 4; // how far should nesItems slide up
var arrNews = new Array();
var sequence = 1;
var currNewsItem = null;
var newNewsItem = null;
//----------------------------------------------
//----------------------------------------------
function initNews() {
// alle
mit id='newsItemX' in Array
var i = 0;
for (i=1; i<100; i++) {
var newsItem = document.getElementById("newsItem"+i);
if(newsItem == null) {
break;
} else {
arrNews[i] = newsItem;
}
}
// keine newsItems vorhanden => raus!
if (arrNews.length == 0) {
return false;
}
// Anzeige des 1. newsItems
currNewsItem = arrNews[sequence];
currNewsItem.style.visibility = 'visible';
currNewsItem.style.position = 'absolute';
currNewsItem.style.top = '0px';
// Eigenart von JavaScript Arrays?
// Wenn 1 newsItem im Array vorhanden ist, zeigt JS für arrNews.lengt = 2 an!
// => nur wenn mehr als 1 newsItem vorhanden ist, lösen wir den scroller/slider aus
if (arrNews.length > 2) {
setTimeout(showNewsItem, tickerDelay);
}
}
//----------------------------------------------
//----------------------------------------------
function showNewsItem() {
// aktuell angezeigten newsItem setzen
currNewsItem = arrNews[sequence];
// sequence um 1 erhöhen
sequence++;
// prüfen, ob es einen newsItem mit der erhöhten sequence gibt
// wenn nein, sequence auf 1 zurücksetzen.
if (arrNews[sequence] == null) {
sequence = 1;
}
// neu anzuzeigenden newsItem setzen
newNewsItem = arrNews[sequence];
// neuen newsItem einsliden, während alter newsItem hinaus slided
slideNewsItems();
}
//----------------------------------------------
//----------------------------------------------
function slideNewsItems() {
newNewsItem.style.visibility = 'visible';
newNewsItem.style.position = 'absolute';
newNewsItem.style.top = slideStartTop + 'px';
moveNewsItems();
}
//----------------------------------------------
//----------------------------------------------
function moveNewsItems() {
// aktuelle Position des neuen Items
posNewTop = newNewsItem.style.top;
posNewTop = posNewTop.replace(/px/, "");
// aktuelle Position des aktuellen Items
posCurrTop = currNewsItem.style.top;
posCurrTop = posCurrTop.replace(/px/, "");
if ((posNewTop == 0) || (posNewTop < 0)) {
// Timer für Anzeige des nächsten newsItem starten
currNewsItem.style.visibility = 'hidden';
setTimeout(showNewsItem, tickerDelay);
} else {
newNewsItem.style.top = (posNewTop - slideAmount) + 'px';
currNewsItem.style.top = (posCurrTop - slideAmount) + 'px';
setTimeout(moveNewsItems, slideSpeed);
}
}