﻿// JScript source code

/* 
---------
activeDiv
---------
Umožní skrývání DIVu pomocí myši.

HISTORIE
1.0 - 18.9.2008, prvni vydani

POUŽITÍ:
DIV, který má class=stActiveDiv, bude možno skrýt kliknutím. 
Nad nìj se vloží text urèený globálními promìnnými sShowText a sHideText.
Text je uložený v tagu LI, který má 
class=stActiveDivShow resp. class=stActiveDivHide
takže se dá formátovat pomocí CSS list-style. list-style-type a list-style-img a to vèetnì obrázkù.
Nadrazenu tag UL ma prirazen styl stActiveDivUl, viz pøíklad:

    .stActiveDiv { }
    .stActiveDivUl {padding-left:1em;margin-left:0;}
    .stActiveDivShow {list-style-image:url("divshow.gif");}
    .stActiveDivHide {list-style-image:url("divhide.gif");}

Pozn.: stActiveDiv nemusí být definován, ale u DIVu musi byt vždy uveden, protože podle nìj script pozná, ze má být aktivní.

CELÝ POSTUP:

- do HTML souboru, do tagu <head> vložte
    <script type="text/javascript" src="activeDiv.js" charset="windows-1250"></script>
- do HTML souboru, do tagu <body> volani funkce, tedy
    <body onload="JavaScript:activeDiv()">
- text, který chcete mít aktivní, oznaète tagem <DIV> s class=stActiveDiv, tedy
  <div class="stActiveDiv">
  ...
  </div>
- pokud chcete, aby byl po otevøení stránky text skrytý, použijte styl display:none
  <div class="stActiveDiv" style="displaty:none">
  ...
  </div>

ZNÁMÉ PROBLÉMY
Obrázek zadaný ve stylech stActiveDivShow a stActiveDivHide pomocí list-style-image se rendruje v různých prohlížečích různě vysoko; 
také se může lišit horizontální pozice prvku UL (tj. klikací nadpis).

*/


var sShowText = "zobrazit";
var sHideText = "skrýt";

function activeDiv() {
    var oAllDivs = document.getElementsByTagName('div');
    for(var i=oAllDivs.length-1;i>=0;i--) {
    	var oActDiv = oAllDivs[i]
        if(oActDiv.className=='stActiveDiv') {
            var oClickDiv = oActDiv.parentNode.insertBefore(document.createElement('div'),oActDiv);
            var bHidden = oActDiv.style.display=='none';
            oClickDiv.innerHTML = getMsgHtml(bHidden);
            oClickDiv.onclick = divClick;
            oClickDiv.style.cursor = 'pointer';
         }
    }
}

function divClick() {    
    var oDiv = this.nextSibling;
    var bHidden = oDiv.style.display=='none';
    oDiv.style.display = bHidden?'block':'none';
    this.innerHTML = getMsgHtml(!bHidden);
}

function getMsgHtml(bHidden) {
    return('<ul class="stActiveDivUl"><li class="' + (bHidden?'stActiveDivShow':'stActiveDivHide')+'">' + (bHidden?sShowText:sHideText) + '</li></ul>');
}
