//Konstanty pro js script běžící text
var TRIDA = "beziciText";
var TAGY = Array ("div","p"); 
var prepinac = Array(); //smrtelně důležitá proměnná
//V html nebo php souboru pak stačí mít daný tag s určeným classem, jež sou nastaveny výše,


function jsLoaderBezici() {
  tridy = detektorClassu(najdiTag(TAGY),TRIDA); //ziska objekty podle tridy
  //musí sám skript přepsat vnitřní strukturu všech spanů, které najde
  for (i = 0; i< tridy.length; i++) {
    prepracujFormuTextu(tridy[i],i);
    prepinac[i]=1;
    setTimeout("pohniTextem(0,"+ i +");",50);
  } 
}
//funkce nalezne vsechny spany s vyhovujicim classem
function pohniTextem (VstupPozice,CisloSpanu) {
  var konstantaPozice = VstupPozice;
  var pracovniElement = document.getElementById("bezici" + CisloSpanu);
  var vnejsiElement = document.getElementById("beziciText" + CisloSpanu);
    var text = pracovniElement.innerHTML;
    delka = pracovniElement.clientWidth;
    delkaVnejsiho = vnejsiElement.clientWidth;
  if (prepinac[CisloSpanu] == 1) {  
    vypocitanaPozice = konstantaPozice;
    pracovniElement.style.left = vypocitanaPozice + "px";
    konstantaPozice = konstantaPozice - 1;
  }
  if (konstantaPozice == -delka) {
    konstantaPozice = delkaVnejsiho - 18;
  }  
  setTimeout("pohniTextem(" + konstantaPozice + ","+ CisloSpanu +");",50);                    
}
//funkce zapíná nebo vypíná běh konkrétního běžícího okýnka
function prepniBeh(TLACITKO) {
  try {
    var idObjektu = document.getElementById("beziciOnOff" + TLACITKO);
    switch (prepinac[TLACITKO]) {
      case 1:
        prepinac[TLACITKO] = 0;
        idObjektu.className = "tlacitko vypnuteTlacitko";
        break;
      case 0:
        prepinac[TLACITKO] = 1;
        idObjektu.className = "tlacitko zapnuteTlacitko";
        break;
      default:
        prepinac[TLACITKO] = 1;
        idObjektu.className = "tlacitko zapnuteTlacitko";
        break; 
    }
  } catch (error) {
    return 0;
  }
}

//parametrem je jediný objekt, ktery upravi k obrazu svemu
function prepracujFormuTextu (OBJEKT,TLACITKO) {
  originalniDelka = OBJEKT.clientWidth;
  OBJEKT.style.width = OBJEKT.clientWidth + 20 + "px" ;
  text = OBJEKT.innerHTML;
  
  newSpan = document.createElement("span");
  bodyElement = document.getElementsByTagName("body");
  bodyElement[0].appendChild(newSpan);
  newSpan.innerHTML = text;
  newSpan.id = TLACITKO+"docasnySpan";
  zmerenaDelka = newSpan.offsetWidth;
  OBJEKT.id = "beziciText" + TLACITKO ;
  OBJEKT.innerHTML = "<span class=\"bezici\" id=\"bezici" + TLACITKO + "\" style=\"left:0px; width:"+ zmerenaDelka +";\">" + text + "</span><span class=\"tlacitko zapnuteTlacitko\" id=\"beziciOnOff" + TLACITKO + "\" onclick=\"prepniBeh("+ TLACITKO +");\">&nbsp;</span>";
  
  bodyElement[0].removeChild(newSpan);
  //***:-)
}

//parametrem je pole objektu nalezenych podle urciteho tagu a zde je tridi podle classu
function detektorClassu (OBJEKTY,TRIDA) {
  s = 0;
  var nazevTridy = new RegExp(TRIDA);
  navratfce = new Array();
  for (i = 0; i < OBJEKTY.length ; i++) {
  //window.alert(nazevTridy.test(OBJEKTY[i].className));
    if (nazevTridy.test(OBJEKTY[i].className)) {
      navratfce[s] = OBJEKTY[i];
      s++;
    }
  }           //OBJEKTY[i].className == TRIDA
  return (navratfce);
} 
//Parametrem je pole tagů, které se mají načíst
function najdiTag (TAG) {
  try {
    var objekty = new Array();
    var navratovafce = new Array();
    s = 0;
     for (i = 0; i < TAG.length ; i++) {
      objekty = document.getElementsByTagName(TAG[i]);
      for (j = 0; j < objekty.length; j++) {
        navratovafce[s] = objekty[j];
        s++;
      }
    }
  } catch (error) {
    window.alert(error);
  }
  return (navratovafce);
}   
