// JScript File leagues.js
//autor vkvkvkvk

//globalni promenne (mozno nastavovat i programove z vnejsku skriptu)
var PosunMenuDoprava = 0;  // o kolik px se ma posunout menu doprava od nazvu zeme
var PosunMenuDolu = 0;  // o kolik px se ma posunout menu dolu oproti nazvu zeme
var ZpozdeniZobrazeniTipu = 300;
var ZpozdeniSkrytiTipu = 0;

var timerID;    // casovac, aby bylo mozno zastavit zobrazeni Tipu (jen interni promenna)
var timerIDHide;    // casovac, aby bylo mozno zastavit skryti Tipu (jen interni promenna)
var pomAktivniOdkaz;    //pomocna promenna pro predani aktivniOdkaz do zpozdene volane funkce ShowTip1 (jen interni promenna)

//deklarace tridy pro predavani pozice prvku v nadrizenem kontejneru
function Pozice(left, top) {
   this.left = left;
   this.top = top;
}

function ShowTip(aktivniOdkaz) {    //pro jednu ligu
    clearTimeout(timerIDHide);
    pomAktivniOdkaz =  aktivniOdkaz;
    timerID = setTimeout("ShowTip1(pomAktivniOdkaz)", ZpozdeniZobrazeniTipu);  //spusti vlastni zobrazeni se zpozdenim
}

function ShowTip1(aktivniOdkaz) {    //pro jednu ligu Je spustena casovacem

    var SeznamTipu = document.getElementById("tipy");
    if (NaplnTipyUdajiOZemi(aktivniOdkaz.href)){    //zobrazim jedine kdyz jsou vzplneny "tipy"
        //pozice a zobrazeni selectu menu
        var PoziceZeme = SpocitejPozici(aktivniOdkaz);
        SeznamTipu.style.left = PoziceZeme.left + aktivniOdkaz.offsetWidth + PosunMenuDoprava + "px";
        SeznamTipu.style.top = PoziceZeme.top + PosunMenuDolu + "px";
        $("#tipy").show("normal");
    }
}

function NaplnTipyUdajiOZemi(URLLigy)
{
  /// <summary>Doplni udaje do tipu</summary>
  /// <param name="URLLigy" type="string">Adresa, ve ktere je identifikace ligy</param>
  /// <returns type="Boolean">jestli jsou spravne vyplneny "tipy"</returns>
  /// <remarks>V URLLigy najde oznaceni ligy, najde odpovidajici span s daty
  ///         jednotlive udaje oddelene stredniky (musi byt i za poslednim) nakopiruje do elementu tipyX
  ///         kde X je poradove cislo polozky (zacina od 0)
  /// </remarks>
    // vyprazneni policek
    var I = 0;
    while (document.getElementById("tipy" + I) != null) {
        document.getElementById("tipy" + I).innerHTML = "";
        I++;
    }
    // Ziskani ID ligy
    var myReLiga = new RegExp("l\=(.+?$)");
    var Ligy = URLLigy.match(myReLiga);
    
    if (Ligy.length >= 1) { //liga nalezena
        if ($("#tip" + Ligy[1]).length >=1){    //mam data ligy
            var myRe = /(.*?)(?=\;)/g;
            var myArray = $("#tip" + Ligy[1]).html().match(myRe);
            var J;
            for (J=0;J < myArray.length; J = J + 2) {
                document.getElementById("tipy" + J/2).innerHTML = myArray[J];
            }
            return true;
        }
    }
    return false
}

function SpocitejPozici(element) {
//rekurzivne prochzi strukturu dokumentu az k BODY a scita offsety jednotlivych prvku
    var PoziceElementu = new Pozice(0, 0);
    if (element.offsetParent != null) {
        PoziceElementu = SpocitejPozici(element.offsetParent);
    };
    PoziceElementu.left += element.offsetLeft;
    PoziceElementu.top += element.offsetTop;
    return PoziceElementu;
}

function HideTip() {
    clearTimeout(timerID);
    timerIDHide = setTimeout("HideTip1()", ZpozdeniSkrytiTipu);  //spusti vlastni zobrazeni se zpozdenim
}

function HideTip1() {
    $("#tipy").hide("normal");
}

//definice udalosti pomoci jQuery
$(document).ready(function()
    {
        $('tbody tr td a').hover(   //'tbody tr td a' urcuje, kterych elementu se udalosti tykaji
                                    //vyberou se sice jeste dalsi <a>, ale to nevadi
            function () {
                ShowTip($(this)[0]);
            },
            function () {
                 HideTip();
           }
        );
        $("#tipy").hover(   //kdyz najedu na tip, tak aby nezmizel, po odjeti pryc zmizi
                                    //vyberou se sice jeste dalsi <a>, ale to nevadi
            function () {
                clearTimeout(timerIDHide);
            },
            function () {
                 HideTip();
           }
        );
    });

