//------------------------------------------------------------------------------
//                                Array.indexOf
//------------------------------------------------------------------------------
Array.prototype.indexOf = function(co)
{
    var i = 0;
    if(arguments.length > 1)
        i = arguments[1];
    for(i=i;i<this.length;i++)
        if(this[i] == co)
            return i;
    return -1;
}

//------------------------------------------------------------------------------
//                                String.trim
//------------------------------------------------------------------------------
String.prototype.trim = function()
{
    return this.replace(/^\s+|\s+$/g, "");
}

//------------------------------------------------------------------------------
//                               vytvorElement
//------------------------------------------------------------------------------
if(document.createElementNS)
{
    function vytvorElement(meno_elementu)
    {
        return document.createElementNS("http://www.w3.org/1999/xhtml", meno_elementu);
    }
}
else if(document.createElement)
    vytvorElement = document.createElement;
else
    vytvorElement = function(meno_elementu) { return false;}

//------------------------------------------------------------------------------
//                              scrollbar_position
//------------------------------------------------------------------------------
//zisti, ako su posunute scrollbary
function scrollbar_position()
{
    var scr = new Array();
    scr['x'] = scr['y'] = 0;
    if(typeof(window.pageYOffset) == "number")
    {
        scr['x'] = window.pageXOffset;
        scr['y'] = window.pageYOffset;
    }
    else if(document.body && (document.body.scrollLeft || document.body.scrollTop))
    {
        scr['x'] = document.body.scrollLeft;
        scr['y'] = document.body.scrollTop;
    }
    else if(document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop))
    {
        scr['x'] = document.documentElement.scrollLeft;
        scr['y'] = document.documentElement.scrollTop;
    }
    
    return scr;
}

//------------------------------------------------------------------------------
//                               getElementPosition
//------------------------------------------------------------------------------
//zisti poziciu elementu vzhladom na lavy horny roh DOKUMENTU, nie okna
// !!! POZOR !!! Funguje az ked je STRANKA NACITANA!
function getElementPosition(element)
{
    var vysledok = new Array();

    if(!element)
        return false;

    vysledok['left'] = 0;
    vysledok['top'] = 0;
    if(element.offsetParent)
    {
        vysledok['left'] = element.offsetLeft;
        vysledok['top'] = element.offsetTop;
        while(element = element.offsetParent)
        {
            vysledok['left'] += element.offsetLeft;
            vysledok['top'] += element.offsetTop;
        }
    }
    return vysledok;
}

//------------------------------------------------------------------------------
//                                getTextContent
//------------------------------------------------------------------------------
//vrati text zobrazovany v danom elemente a jeho potomkoch
function getTextContent(element)
{
    var i;
    var text = "";
    if(element && element.nodeType == 3)
        return element.nodeValue;
    if(element && element.childNodes)
        for(i=0; i<element.childNodes.length; i++)
            text += getTextContent(element.childNodes[i]);
    return text;
}

//------------------------------------------------------------------------------
//                                  has_class   ***PREROBIT CEZ REGEXP***
//------------------------------------------------------------------------------
function has_class(element, trieda)
{
    var className = element.className || element.getAttribute("class");
    if(!className)
        return false;
    var pole = className.split(" ");
    return (pole.indexOf(trieda) != -1);
}

//------------------------------------------------------------------------------
//                                  add_class
//------------------------------------------------------------------------------
function add_class(element, trieda)
{
    if(element.className.trim() == "")
        element.className = trieda;
    else if(!has_class(element, trieda))
        element.className = element.className.trim()+" "+trieda;
}

//------------------------------------------------------------------------------
//                                 remove_class
//------------------------------------------------------------------------------

function remove_class(element, trieda)
{
    var regexp = new RegExp("^\\s*"+trieda+"\\s+|\\s+"+trieda+"\\s*$|\\s+"+trieda+"(?=\\s)");
    if(element.className.trim() == trieda)
        element.className = "";
    else while(has_class(element, trieda))
        element.className.replace(regexp, "");
}

//------------------------------------------------------------------------------
//                                  pockaj_na
//------------------------------------------------------------------------------
//pocka, kym bude dostupnuy zadany element a pusti zadanu funkciu
function pockaj_na(element_id, funkcia, interval)
{
    if(!document.getElementById)
        return false;
    if(!interval)
        interval = 50;
    if(document.getElementById(element_id))
        eval(funkcia);
    else if(!system_stranka_nacitana)
        setTimeout("pockaj_na(\""+element_id+"\", \""+funkcia+"\", "+interval+")", interval);
}

//------------------------------------------------------------------------------
//                              pridaj_onload_handler
//------------------------------------------------------------------------------
function pridaj_onload_handler(funkcia)
{
    var stary_onload = window.onload;
    if(typeof(stary_onload) == "function")
    {
        window.onload = function()
        {
            stary_onload();
            funkcia();
        }
    }
    else
        window.onload = funkcia;
}

//------------------------------------------------------------------------------
//                              pridaj_mouseover_note
//------------------------------------------------------------------------------
function hover_note_over(e)
{
    if(!e && event)
        e = event;
    if(!e)
        return false;
    if(this.mouseover_note)
    {
        var scr = scrollbar_position();
        this.mouseover_note.style.position = "absolute";
        this.mouseover_note.style.left = (e.clientX+scr['x']+10)+"px";
        this.mouseover_note.style.top = (e.clientY+scr['y']+10)+"px";
        if(!this.mouseover_note.parentNode || this.mouseover_note.parentNode.nodeName.toLowerCase() != "body")
            document.getElementsByTagName("body")[0].appendChild(this.mouseover_note);
    }
}

//------------------------------------------------------------------------------
//                            pridaj_onresize_handler
//------------------------------------------------------------------------------
function pridaj_onresize_handler(funkcia)
{
    var stary_onresize = window.onresize;
    if(typeof(stary_onresize) == "function")
    {
        window.onresize = function()
        {
            stary_onresize();
            funkcia();
        }
    }
    else
        window.onresize = funkcia;
}

function hover_note_move(e)
{
    if(!e && event)
        e = event;
    if(!e)
        return false;
    {
        if(this.mouseover_note && scrollbar_position)
        {
            var scr = scrollbar_position();
            this.mouseover_note.style.left = (e.clientX+scr['x']+10)+"px";
            this.mouseover_note.style.top = (e.clientY+scr['y']+10)+"px";
        }
    }
}

function hover_note_out()
{
    if(this.mouseover_note && this.mouseover_note.parentNode)
        this.mouseover_note.parentNode.removeChild(this.mouseover_note);
}


function pridaj_mouseover_note(element, note)
{
    element.mouseover_note = note;
    element.onmouseover = hover_note_over;
    element.onmousemove = hover_note_move;
    element.onmouseout = hover_note_out;
}

//------------------------------------------------------------------------------
//                                   hodiny
//------------------------------------------------------------------------------
//jedna z mojich uplne prvych funkcii, tak sa nesmej ;-)
function hodiny(Y0,M0,D0,h0,m0,s0)
{
    Y0++; Y0--; //ak by boli hodnoty zadane ako string, toto z nich spravi integer
    M0++; M0--;
    D0++; D0--;
    h0++; h0--;
    m0++; m0--;
    s0++; s0--;
    
    var rok = Y0; //prebratie vstupnych hodnot
    var mesiac = M0;
    var den = D0;
    var hodiny = h0;
    var minuty = m0;
    var sekundy = s0;
    
    if(minuty<10) //toto je tu preto, aby sa namiesto napr. 8:09:07 nezobrazovalo 8:9:7
        minuty = "0"+minuty;
    if(sekundy<10)
        sekundy = "0"+sekundy;
    
    if(document.getElementById("hodiny_rok"))
        document.getElementById("hodiny_rok").firstChild.nodeValue = rok; //vypisanie hodnot do stranky
    if(document.getElementById("hodiny_mesiac"))
        document.getElementById("hodiny_mesiac").firstChild.nodeValue = mesiac;
    if(document.getElementById("hodiny_den"))
        document.getElementById("hodiny_den").firstChild.nodeValue = den;
    if(document.getElementById("hodiny_hodina"))
        document.getElementById("hodiny_hodina").firstChild.nodeValue = hodiny;
    if(document.getElementById("hodiny_minuta"))
        document.getElementById("hodiny_minuta").firstChild.nodeValue = minuty;
    if(document.getElementById("hodiny_sekunda"))
        document.getElementById("hodiny_sekunda").firstChild.nodeValue = sekundy;
    
    var Y1 = Y0; //prebratie hodnot na preposlanie
    var M1 = M0;
    var D1 = D0;
    var h1 = h0;
    var m1 = m0;
    var s1 = ++s0; // prida sa 1 sekunda
    
    if(s1>59)
    { //po 59 sekundach sa sekundy vynuluju a prida sa 1 minuta
        s1=0;
        m1++;
        if(m1>59)
        { //po 59 minutach sa minuty vynuluju a prida sa 1 hodina
            m1=0;
            h1++;
            if(h1>23)
            { //po 23 hodinach sa hodiny vynuluju a prida sa 1 den
                h1=0;
                D1++;
                if(((D1>31) && ((M1==1) || (M1==3) || (M1==5) || (M1==7) || (M1==8) || (M1==10) || (M1==12))) || ((D1>30) && ((M1==4) || (M1==6) || (M1==9) || (M1==11))) || ((D1>29) && (M1==2) && ((Y1%4)==0)) || ((D1>28) && (M1==2) && ((Y1%4)!=0)))
                { //na konci mesiaca sa dni vratia na 1 prida sa 1 mesiac
                    D1=1;
                    M1++;
                    if(M1>12)
                    { //po 12 mesiacoch mesiace vratia na 1 a prida sa 1 rok
                        M1=1;
                        Y1++;
                    } //koniec M1
                } //koniec D1
            } //koniec h1
        } //koniec m1
    } //koniec s1
    
    setTimeout("hodiny("+Y1+","+M1+","+D1+","+h1+","+m1+","+s1+")",1000) //funkcia o sekundu spusti sama seba s novymi vstupnymi hodnotami
}

function spusti_hodiny()
{
    var rok = document.getElementById("hodiny_rok").firstChild.nodeValue;
    var mesiac = document.getElementById("hodiny_mesiac").firstChild.nodeValue;
    var den = document.getElementById("hodiny_den").firstChild.nodeValue;
    var hodina = document.getElementById("hodiny_hodina").firstChild.nodeValue;
    var minuta = document.getElementById("hodiny_minuta").firstChild.nodeValue;
    var sekunda = document.getElementById("hodiny_sekunda").firstChild.nodeValue;
    hodiny(rok, mesiac, den, hodina, minuta, sekunda);
}

pockaj_na("hodiny_sekunda", "spusti_hodiny()");

//==============================================================================
//                               email_linky
//==============================================================================
function email_linky()
{
    var i,a,obsah;
    var span = document.getElementsByTagName("span");
    for(i = 0; i < span.length; i++)
    {
        if(has_class(span[i], "mail"))
        {
            obsah = getTextContent(span[i]).replace(/ \[bodka\] /g, ".").replace(/ \[zavinac\] /g, "@");
            a = vytvorElement("a");
            a.setAttribute("href", "mailto:"+obsah);
            a.appendChild(document.createTextNode(obsah));
            while(span[i].firstChild)
                span[i].removeChild(span[i].firstChild);
            span[i].appendChild(a);
        }
    }
}
pridaj_onload_handler(email_linky);

//==============================================================================
//                               newWindowLinks
//==============================================================================
function newWindowLinks()
{
    var i;
    var links = document.getElementsByTagName("a");
    for(i = 0; i < links.length; i++)
    {
        if(has_class(links[i], "newWindowLink"))
        {
            links[i].onclick = function() {
                window.open(this.href);
                return false;
            }
        }
    }
}
pridaj_onload_handler(newWindowLinks);

//==============================================================================
//                                  snezenie
//==============================================================================

var minDX = -5;
var maxDX = 5;
var minDY = 1;
var maxDY = 5;
var maxX = 0;
var maxY = 0

function nastavOblastSnezenia() {
    if(typeof(document.body.offsetWidth) == "number")
    {
        maxX = document.body.offsetWidth - 20;
        maxY = document.body.offsetHeight - 20;
    }
    else if(typeof(window.innerWidth) == "number")
    {
        maxX = window.innerWidth - 20;
        maxY = window.innerHeight - 20;
    }
}

function zrusVlocku(ktoru)
{
    vlocky[ktoru] = null;
}

function vlocka(vlid)
{
    this.maxX = maxX;
    this.vlid = vlid;
    this.posX = 0;
    this.posY = 0;
    this.dX = 0;
    this.dY = 0;
    this.ddX = 0;
    this.ddY = 0;
    this.element = null;
}

vlocka.prototype.setStyles = function()
{
    this.element.style.left = this.posX + "px";
    this.element.style.top = this.posY + "px";
}

vlocka.prototype.posun = function()
{
    this.posX += this.dX;
    this.posY += this.dY;
    this.dX += this.ddX;
    this.ddY += this.ddY;
    this.ddX = Math.round(Math.random()) ? -1 : 1;
    this.ddY = Math.round(Math.random()) ? -1 : 1;
    if(this.dX > maxDX)
        this.dX = maxDX;
    if(this.dX < minDX)
        this.dX = minDX;
    if(this.dY > maxDY)
        this.dY = maxDY;
    if(this.dY < minDY)
        this.dY = minDY;
    if(this.posX < 0 || this.posX > maxX || this.posY > maxY)
    {
        this.element.parentNode.removeChild(this.element);
        zrusVlocku(this.vlid);
        return;
    }
    
    this.setStyles();
    
    setTimeout("vlocky["+this.vlid+"].posun();", 75);
}

vlocka.prototype.init = function()
{
    this.posX = Math.floor(this.maxX * Math.random());
    this.dX = minDX + Math.floor((maxDX - minDX) * Math.random() + 1);
    this.dY = minDY + Math.floor((maxDY - minDY) * Math.random() + 1);
    this.element = vytvorElement("img");
    this.element.setAttribute("src", "/vlocka.gif");
    this.element.style.position = "absolute";
    this.setStyles();
    document.body.appendChild(this.element);
}

var vlocky = new Array();
function snezenie()
{
    vlocky[vlocky.length] = new vlocka(vlocky.length);
    vlocky[vlocky.length -1].init();
    vlocky[vlocky.length -1].posun();
    
    setTimeout("snezenie();", 1000);
}
/*
pridaj_onload_handler(nastavOblastSnezenia);
pridaj_onload_handler(snezenie);
pridaj_onresize_handler(nastavOblastSnezenia);
*/
//==============================================================================
//                               js_nacitane
//==============================================================================

var system_stranka_nacitana = false;

//vola sa onload
function js_nacitane()
{
    system_stranka_nacitana = true;
}
pridaj_onload_handler(js_nacitane);


function spustiGoogleAnalytics() {
    if(typeof _gat == "object") {
        var pageTracker = _gat._getTracker("UA-5176044-1");
        pageTracker._initData();
        pageTracker._trackPageview();
    }
    else
        setTimeout(spustiGoogleAnalytics, 1000);
}
pridaj_onload_handler(spustiGoogleAnalytics);
