﻿/// <reference path="core.js" />

var colapsPannel = {

    init: function()
    {

        var paneli = Core.getElementsByClass("flood");

        for (var i in paneli)
        {
            var elem = paneli[i].firstChild;

            do
            {

                if (Core.hasClass(elem, "header")) Core.addEventListener(elem, "click", colapsPannel.mouseClick);

                if (Core.hasClass(elem, "content"))
                {
                    if (Core.hasClass(elem, "colapsed")) elem.state = "colapsed";
                    else elem.state = "expanded"
                }
                elem = elem.nextSibling;
            } while (elem);
        }

    },

    mouseClick: function(event)
    {

        var sadrzaj = this.nextSibling;

        while (!Core.hasClass(sadrzaj, "content")) sadrzaj = sadrzaj.nextSibling;

        if (sadrzaj.timer) clearTimeout(sadrzaj.timer);

        switch (sadrzaj.state)
        {
            case ("expanding"): colapsPannel.cloapser(sadrzaj);
                break;
            case ("colapsing"): colapsPannel.expander(sadrzaj);
                break;
            case ("expanded"): colapsPannel.cloapser(sadrzaj);
                break;
            case ("colapsed"): colapsPannel.expander(sadrzaj);
                break;
            default: colapsPannel.expander(sadrzaj);
                break;
        }

    },

    cloapser: function(element)
    {

        var visina = (element.style.height == "") ? element.clientHeight : element.style.height.match(/\d{1,4}/g)[0];
        visina -= 5;

        if (visina > 0)
        {
            element.style.height = visina + "px";
            element.timer = setTimeout(function() { colapsPannel.cloapser(element) }, 20);
            element.state = "colapsing";
        }
        else
        {
            element.style.height = "";
            Core.addClass(element, "colapsed");
            element.state = "colapsed";
            colapsPannel.promjeniSliku(element);
        }

    },

    expander: function(element)
    {

        var visina = element.clientHeight;
        visina += 5;

        var ukupno = element.scrollHeight;

        if (visina < ukupno)
        {
            element.style.height = visina + "px";
            element.timer = setTimeout(function() { colapsPannel.expander(element) }, 20);
            element.state = "expanding"
        }
        else
        {
            if (Core.hasClass(element, "colapsed")) Core.removeClass(element, "colapsed");
            element.style.height = "";
            element.state = "expanded"
            colapsPannel.promjeniSliku(element);
        }
    },

    promjeniSliku: function(element)
    {

        var source = (element.state != "expanded") ? "/down.gif" : "/up.gif";
        var elem = element;
        while (!Core.hasClass(elem, "header")) elem = elem.previousSibling;

        var slika = elem.getElementsByTagName("img")[0];

        slika.src = slika.src.replace(/\/\w+.gif$/, source);

    }
};


var prosirenaNavigacija = {

    init: function() {

        var listaLinkova = document.getElementById("navigation").getElementsByTagName("li");

        for (var i = 0; i < listaLinkova.length; i++)
        {
            var li = listaLinkova[i];
            Core.addEventListener(li, "click", prosirenaNavigacija.mouseClick);
        }
    },

    mouseClick: function(event) {
        window.location = this.getElementsByTagName("a")[0];
    }

};

var effectNavi = {

    init: function() {

        var url = document.URL.split('/');

        var slike = document.getElementById("ctl00_posebnosti").getElementsByTagName("img");

        for (var i = 0; i < slike.length; i++)
        {
            var slika = slike[i];

            var aktivniLink = slika.parentNode.attributes.getNamedItem("href").value.split('/');
            if (aktivniLink[aktivniLink.length - 1] != url[url.length - 1])
            {
                effectNavi.setOpacity(slika, 0.5);
                Core.addEventListener(slika, "mouseover", effectNavi.mouseOver);
                Core.addEventListener(slika, "mouseout", effectNavi.mouseOut);
            }

        }
    },

    mouseOver: function(event) {
        effectNavi.fadeIn(this);
    },

    mouseOut: function(event) {
        effectNavi.fadeOut(this);
    },

    setOpacity: function(element, opacityAsDecimal) {

        var opacityAsInt = opacityAsDecimal * 100;

        element.style.opacity = (opacityAsDecimal);
        element.style.filter = "alpha(opacity=" + opacityAsInt + ")";
        element.opacity = opacityAsDecimal;
    },

    fadeIn: function(element) {

        if (element.fadeOutTimer != null) clearTimeout(element.fadeOutTimer);

        var opacity = element.opacity;
        opacity += 0.1;

        if (opacity < 0.9) element.fadeInTimer = setTimeout(function() { effectNavi.fadeIn(element) }, 200);
        else opacity = 0.9;

        effectNavi.setOpacity(element, opacity);
    },

    fadeOut: function(element) {

     if (element.fadeInTimer != null) clearTimeout(element.fadeInTimer);

        var opacity = parseFloat(element.opacity);
        opacity -= 0.1;

        if (opacity > 0.6) element.fadeOutTimer = setTimeout(function() { effectNavi.fadeOut(element) }, 200);
        else opacity = 0.6;

        effectNavi.setOpacity(element, opacity);

    }
};

Core.addEventListener(this, "load", prosirenaNavigacija.init);
Core.addEventListener(this, "load", effectNavi.init);
Core.addEventListener(this, "load", colapsPannel.init);
