home *** CD-ROM | disk | FTP | other *** search
/ PC World 2003 April / PCWorld_2003-04_cd.bin / Novinky / interval / podklady / fridrich / 257 / newsticker-illustrated.js < prev    next >
Text File  |  2003-02-25  |  2KB  |  65 lines

  1. var newsTicker = {};
  2.  
  3. // elm, step, speed, delay, actual, timer
  4. newsTicker.ticker = [];
  5.  
  6. newsTicker.init = function(elm, step, speed, delay) {
  7.     if (elm && (elm.tagName == "UL") && document.getElementsByTagName) {
  8.         
  9.         alert("Zacina inicializacia skriptu.\nVsetky spravy su teraz naukladane na seba.\nO chvilu budu posunute dolava tak, aby ich nebolo vidno v drziaku.");
  10.         
  11.         if (isNaN(step)) {var step = 2};
  12.         if (isNaN(speed)) {var speed = 25};
  13.         if (isNaN(delay)) {var delay = 1000};
  14.         
  15.         var message = elm.getElementsByTagName("LI");
  16.         for (var i = 0; i < message.length; i++) {
  17.             message[i].style.left = 0 - message[i].offsetWidth + "px";
  18.         }
  19.         
  20.         var tickerID = newsTicker.ticker.length;
  21.         newsTicker.ticker[tickerID] = new Array(elm, step, speed, delay, message.length-1);
  22.         
  23.         alert("Inicializacia je ukoncena. O chvilu bude spustena funkcia, ktora posuva spravami.");
  24.         
  25.         newsTicker.roll(tickerID);
  26.         
  27.         return true;
  28.     }
  29.     return false;
  30. }
  31.  
  32. newsTicker.roll = function(id) {
  33.     if (!isNaN(id) && newsTicker.ticker[id]) {
  34.         
  35.         var ticker = newsTicker.ticker[id];
  36.         var message = ticker[0].getElementsByTagName("li");
  37.         var actualMessage = message[ticker[4]];
  38.  
  39.         if (parseInt(actualMessage.style.left) <= 0 - actualMessage.offsetWidth) {
  40.             if (ticker[4] + 1 == message.length) {
  41.                 alert("Aktualna sprava dorazila na koniec svojej cesty. Bola poslena a tak zacneme pohybovat opat prvou.");
  42.                 ticker[4] = 0;
  43.             } else {
  44.                 alert("Aktualna sprava dorazila na koniec svojej cesty. Bola poslena a tak zacneme pohybovat nasledujucou.");
  45.                 ticker[4] = ticker[4] + 1;
  46.             }
  47.             actualMessage.style.border = "1px solid #0f0";
  48.             actualMessage = message[ticker[4]];
  49.             actualMessage.style.left = ticker[0].offsetWidth + (ticker[0].offsetWidth % ticker[1]);
  50.             actualMessage.style.border = "1px solid #f00";
  51.             alert("Aktualna sprava bola umiestnena za drziak.");
  52.         }
  53.         
  54.         actualMessage.style.left = parseInt(actualMessage.style.left) - ticker[1] + "px";
  55.         
  56.         if (parseInt(actualMessage.style.left) == 0) {
  57.             alert("Aktualna sprava sa dostala na zaciatok drziaku. Chvilu si ju tu podrzime.");
  58.         }
  59.         
  60.         ticker[5] = setTimeout("newsTicker.roll(" + id + ")", (parseInt(actualMessage.style.left) == 0) ? ticker[3] : ticker[2]);
  61.         
  62.         return true;
  63.     }
  64.     return false;
  65. }