﻿$(document).ready(function() {

    // prikazovanje poglavij, clenov, prilog
    $("#a_poglavja, #aPoglavjaClose").click(function(e) {
        $(".faveconfirm").hide();
        $('[id$="pnlMainPanel"]').css("display", "none");
        if ($("#cleni").css("display") == "inline") { $("#cleni").css('display', ""); }
        if ($("#poglavja").css("display") == "inline") {
            $("#poglavja").css('display', "none");
        }
        else {
            $("#poglavja").css('display', "inline");
        }
    });
    $("#a_cleni, #aCleniClose").click(function(e) {
        $(".faveconfirm").hide();
        $('[id$="pnlMainPanel"]').css("display", "none");
        if ($("#poglavja").css("display") == "inline") { $("#poglavja").css('display', "none"); }
        if ($("#cleni").css("display") == "inline") { $("#cleni").css('display', "none"); }
        else { $("#cleni").css('display', "inline"); }
    });
    /*$("#a_priloga").click(function(e) {
    var r = $(this).get(0).id;
    var s = r.replace(/a_/, "");
    if ($("#cleni").css("display") == "inline") { $("#cleni").css('display', ""); }
    if ($("#poglavja").css("display") == "inline") { $("#poglavja").css('display', ""); }
    if ($("#priloga").css("display") == "inline") { $("#poglavja").css('display', ""); }
    if ($("#" + s).css("display") == "inline") { $("#" + s).css('display', ""); }
    else { $("#" + s).css('display', "inline"); }
    });*/

    //JQuery selectorji za vse objekte, katerim se spreminja velikost besedila
    var myObjects = ".doc, .doc_h3, .doc_h4, .news_body, .news_abstract, .doc_al_01, .doc_al_02, .doc_al_03, .doc_meta_01, .tabela_title, .tColheader, .tData, .tRowHeader, .tabela_title_right, .tRowHeaderR, .dok_not";

    //Manjšanje besedila
    $("#lnkZoomIn").click(function(e) {
        //začasne spremenljivke
        var currentFontSize = null;
        var currentFontSizeNum = null;
        var newFontSize = null;

        //za vsak dobljen element element..
        $(myObjects).each(function() {
            //preberemo trenutno pisavo in jo povečamo
            currentFontSize = $(this).css('font-size');
            currentFontSizeNum = parseFloat(currentFontSize, 10);
            newFontSize = currentFontSizeNum * 1.2;
            $(this).css('font-size', newFontSize + "px");
        });

        return false;
    });

    //Večanje besedila
    $("#lnkZoomOut").click(function(e) {
        //začasne spremenljivke
        var currentFontSize = null;
        var currentFontSizeNum = null;
        var newFontSize = null;

        //za vsak dobljen element element..
        $(myObjects).each(function() {
            //preberemo trenutno pisavo in jo zmanjšamo
            currentFontSize = $(this).css('font-size');
            currentFontSizeNum = parseFloat(currentFontSize, 10);
            newFontSize = currentFontSizeNum / 1.2;
            $(this).css('font-size', newFontSize + "px");
        });

        return false;
    });



    //---TEST--- navedene člene v besedilu spremenimo v linke na vsebino člena
    //IusLabs.ViewClen.Activate();
    //---TEST---

});

/*OLD - Zgenerira HREF linka za navigacijo po členih (Zakoni, predpisi)
function ZgradiPovezavoNaAnchor(source, clenNum) {
    
    //željen člen se vedno pozicionira na vrh strani
    $('#spnClen' + clenNum + ' a').
    
    //source.onclick = '';
    if ($('#spnClen' + clenNum + ' a').size() > 0) {
        source.href = '#' + $('#spnClen' + clenNum + ' a').attr('name');
        return true;
    }    
    else {
        return false; 
    }
}*/

/*Zgenerira HREF linka za navigacijo po členih (Zakoni, predpisi)*/
function ScrollToClen(source, clenNum) {

    //će željeni člen obstaja ga prikažemo na istem mestu kot je sedaj trenutni člen   
    if ($('#aClenDown' + clenNum).size() > 0)
    {        
        //preberemo scrollTop vrednost za željen člen
        var scrollTop = $('#aClenDown' + clenNum).offset().top;    
        //izračunamo zamik od zgornjega roba trenutnega člena
        var scrollExtra =  $(window).scrollTop() - $(source).offset().top;
        //željen člen prikažemo na isti poziciji kot je sedaj trenutni
        var scroll = scrollTop + scrollExtra;
        $(document).scrollTop(scroll);

        /*//podamo fokus istemu gumbo željnega člena
        if ($(source).attr('class') == 'nav_clen_up') {
            $('#aClenUp' + clenNum).focus();
        }
        else {
            $('#aClenDown' + clenNum).focus();
        }*/        

        //$('#spnClen' + clenNum).next().css('color', 'red');
        //$('#spnClen' + clenNum).next().animate({ display: 'none' }, 100);
        //$('#spnClen' + clenNum).next().hide().delay(100).show();
        
        //odstranimo fokus od izbranega linka
        $(source).blur();   
    }      
   
    return false;
}

/*Za hover efekt na gumbu 
(ob koncu hover-ja se mora nastaviti prvotna slikca, ki je lahko označena ali ne)*/
function SetHoverImage(image, imgSrcOn, imgSrcOnHover, imgSrcOff, imgSrcOffHover) {
      
    //shranimo prvotno slikco
    $(image).data('src', image.src);
    
    if (image.src.indexOf(imgSrcOn) > -1) {        
        //gumb je izbran -> hover slikca za označen gumb
        image.src = imgSrcOnHover;
    }
    else {
        //gumb ni izbran -> hover slikca za neoznačen gumb
        image.src = imgSrcOffHover;
    }
}

function SetNormalImage(image) {  
    //nastavimo nazaj na prvotno slikco
    image.src = $(image).data('src');
}

/*Nastavimo sliko*/
function SetImage(image, imgSrc) {     
    $(image).attr('src', imgSrc);
}

function SetStarImage(image, newImageSrc, newImageSelectedSrc) {
    if (newImageSrc != '' && newImageSelectedSrc != '') {
        
        //shranimo prvotno slikco
        lnkStarSrc = image.src;
        
        if (image.src.indexOf('/images/tool_ico_priljubljena_zvezda.gif') > -1) {        
            //hover slikca za neoznačeno zvezdo
            image.src = newImageSrc;
        }
        else {
            //hover slikca za označeno zvezdo
            image.src = newImageSelectedSrc;
        }        
    }
    else {
        //nastavimo nazaj na prvotno slikco
        image.src = lnkStarSrc;
    }
}

//---IUS LABS---
var IusLabs = {

    /*Prikazovanje vsebine člena v besedilu*/
    ViewClen: {

        Activate: function() {

            //text tipa "... 23. členu ..." spremenimo v link na ta člen
            var reSelect = /(\b\d+\.[\s\S]?člen[^\s<]*\b)(?! [A-Z]|[^>]*<\/)/g;
            var replaceString = "<a class=\"ViewClen\" onclick=\"IusLabs.ViewClen.ShowClen(this, 0);\" style=\"cursor:pointer;\">$1</a>";

            if (jQuery.browser.msie) {  
                //za vsak dobljen element .. (slabo podpira '>' selector-je)
                $('.doc').each(function() {
                    //preverimo, da parent nima class="opomba_spodaj"
                    if ($(this).parent().attr('class') != 'opomba_spodaj') {
                        //zadetek spremenimo v link
                        $(this)[0].innerHTML = $(this)[0].innerHTML.replace(reSelect, replaceString);
                    }
                });
            }
            else {
                //za vsak dobljen element (razen spodnjih opomb) ..
                $('.clenright > .doc, .clenright > [class!="opomba_spodaj"] > .doc').each(function() {
                    //zadetek spremenimo v link
                    $(this)[0].innerHTML = $(this)[0].innerHTML.replace(reSelect, replaceString);
                });
            }
        },

        Deactivate: function() {

            //link na člen spremenimo v navaden text        
            $(".ViewClen").each(function() {
                $(this).before($(this).html());
                $(this).remove();
            });
        },

        ShowClen: function(trigger, level) {

            //če je člen že prikazan -> ga skrijemo in prekinemo
            if ($(trigger).next('[id^="divClenPanel"]').get(0) !== undefined) {
                $(trigger).next('[id^="divClenPanel"]').remove();
                return;
            }

            //preberemo (sparsamo) številko kliknjenega člena     
            var clenNum = trigger.innerHTML.substring(0, trigger.innerHTML.indexOf("."));

            //poiščemo vrstico tabele, kjer se začne želen člen
            var tableTR = $('a[name|="C' + clenNum + '"]').parent().parent().parent();

            //če ni zadetkov -> prekinemo
            if ($(tableTR).size() == 0)
                return;

            //regex za zamenjavo: ShowClen(this, 0) -> ShowClen(this, X)   
            var iLevel = level + 1;
            var reSelect = /IusLabs\.ViewClen\.ShowClen\(this, 0\)/gi;
            var replaceString = "IusLabs.ViewClen.ShowClen(this, " + iLevel + ")";

            //preberemo vsebino člena
            IusLabs.ViewClen.g_content = "";
            IusLabs.ViewClen.g_isHeaderAdded = false;
            IusLabs.ViewClen.GetContent(tableTR, reSelect, replaceString);

            //dinamične CSS vrednosti panela
            var backgroundColor = IusLabs.ViewClen.ChangeHexColor("E5FFFF", level * -8);
            var borderColor = IusLabs.ViewClen.ChangeHexColor("E5E5E5", level * -8);
            var width = 730 - (level * 45); //glede na level določimo širino

            //definiramo elemente za kreacijo zaokroženih robov 
            var corner1 = "<b style=\"display:block;height:1px;background-color: #" + borderColor + ";margin:0 8px;\"></b>";
            var corner2 = "<b style=\"display:block;height:1px;background-color: #" + borderColor + ";margin:0 6px;\"></b>";
            var corner3 = "<b style=\"display:block;height:1px;background-color: #" + borderColor + ";margin:0 4px;\"></b>";
            var corner4 = "<b style=\"display:block;height:1px;background-color: #" + backgroundColor + ";margin:0 3px;border-left:5px solid #" + borderColor + ";border-right:5px solid #" + borderColor + ";\"></b>";
            var corner5 = "<b style=\"display:block;height:1px;background-color: #" + backgroundColor + ";margin:0 2px;border-left:4px solid #" + borderColor + ";border-right:4px solid #" + borderColor + ";\"></b>";
            var corner6 = "<b style=\"display:block;height:1px;background-color: #" + backgroundColor + ";margin:0 2px;border-left:3px solid #" + borderColor + ";border-right:3px solid #" + borderColor + ";\"></b>";
            var corner7 = "<b style=\"display:block;height:2px;background-color: #" + backgroundColor + ";margin:0 1px;border-left:3px solid #" + borderColor + ";border-right:3px solid #" + borderColor + ";\"></b>";

            /*var corner1 = '<b style="display:block;height:1px;background-color: #' + borderColor + ';margin:0 8px;"></b>';
            var corner2 = '<b style="display:block;height:1px;background-color: #' + borderColor + ';margin:0 6px;"></b>';
            var corner3 = '<b style="display:block;height:1px;background-color: #' + borderColor + ';margin:0 4px;"></b>';
            var corner4 = '<b style="display:block;height:1px;background-color: #' + backgroundColor + ';margin:0 3px;border-left:5px solid #' + borderColor + ';border-right:5px solid #' + borderColor + ';"></b>';
            var corner5 = '<b style="display:block;height:1px;background-color: #' + backgroundColor + ';margin:0 2px;border-left:4px solid #' + borderColor + ';border-right:4px solid #' + borderColor + ';"></b>';
            var corner6 = '<b style="display:block;height:1px;background-color: #' + backgroundColor + ';margin:0 2px;border-left:3px solid #' + borderColor + ';border-right:3px solid #' + borderColor + ';"></b>';
            var corner7 = '<b style="display:block;height:2px;background-color: #' + backgroundColor + ';margin:0 1px;border-left:3px solid #' + borderColor + ';border-right:3px solid #' + borderColor + ';"></b>';*/

            //sestavimo panel za prikaz vsebine  
            var panelID = Math.floor(Math.random() * 100000001);
            var panelTitle = $(".doc_h1").html(); //naslov dokumenta
            if (panelTitle.length > (level * -5) + 65)
                panelTitle = panelTitle.substr(0, (level * -5) + 65) + "... ";

            var panelStart = "";
            panelStart += "<div id=\"divClenPanel" + panelID + "\" style=\"display: block;margin:5px;max-height:450px;position:relative;width:" + width + "px;\">";
            panelStart += corner1 + corner2 + corner3 + corner4 + corner5 + corner6 + corner7;
            panelStart += "  <span style=\"display:block;padding:0px 5px 0px 0px;text-align:right;border-left:3px solid #" + borderColor + ";border-right:3px solid #" + borderColor + ";background-color:#" + backgroundColor + "\">";
            panelStart += "    <a style=\"color:#B2B2B2;\" href=\"javascript:void(0);\" onclick=\"$('#divClenPanel" + panelID + "').remove();\">Zapri</a>";
            panelStart += "  </span>";
            panelStart += "  <span style=\"display:block;padding:2px 10px 0px 0px;text-align:center;border-left:3px solid #" + borderColor + ";border-right:3px solid #" + borderColor + ";background-color:#" + backgroundColor + "\">";
            panelStart += "    <span style=\"font-size:18px;font-weight:bold;padding-left:25px;color:gray;text-shadow:4px 3px 5px #B5B5B5;\">" + panelTitle + "</span>";
            panelStart += "  </span>";
            panelStart += "  <span style=\"display:block;max-height:400px;overflow:auto;padding:0 5px;border-left:3px solid #" + borderColor + ";border-right:3px solid #" + borderColor + ";background-color:#" + backgroundColor + "\">";
            panelStart += "    <h4 class=\"doc_h4\">...</h4>";

            /*var panelStart = '<div id="divClenPanel"' + panelID + ' style="display: block;margin:5px;max-height:450px;position:relative;width:' + width + 'px;">'
            corner1 + corner2 + corner3 + corner4 + corner5 + corner6 + corner7 + '\
            <span style="display:block;padding:0px 5px 0px 0px;text-align:right;border-left:3px solid #' + borderColor + ';border-right:3px solid #' + borderColor + ';background-color:#' + backgroundColor + '"> \
            <a style="color:#B2B2B2;" href="javascript:void(0);" onclick="$(\'#divClenPanel' + panelID + '\').remove();">Zapri</a> \
            </span> \
            <span style="display:block;padding:2px 10px 0px 0px;text-align:center;border-left:3px solid #' + borderColor + ';border-right:3px solid #' + borderColor + ';background-color:#' + backgroundColor + '> \
            <span style="font-size:18px;font-weight:bold;padding-left:25px;color:gray;text-shadow:4px 3px 5px #B5B5B5;">' + panelTitle + '</span> \
            </span> \
            <span style="display:block;max-height:400px;overflow:auto;padding:0 5px;border-left:3px solid #' + borderColor + ';border-right:3px solid #' + borderColor + ';background-color:#' + backgroundColor + '> \
            <h4 class="doc_h4">...</h4>';                                    
            
            var panelEnd = '        <h4 class=\"doc_h4\">...</h4> \
            </span>' +
            corner7 + corner6 + corner5 + corner4 + corner3 + corner2 + corner1 +
            '</div>';   */

            var panelEnd = "";
            panelEnd += "      <h4 class=\"doc_h4\">...</h4>";
            panelEnd += "    </span>";
            panelEnd += corner7 + corner6 + corner5 + corner4 + corner3 + corner2 + corner1;
            panelEnd += "  </div>";

            //zložimo vse skupaj
            var panelClen = panelStart + IusLabs.ViewClen.g_content + panelEnd;

            //dodamo v besedilo takoj za kliknjenim linkom
            $(trigger).after(panelClen);
        },

        g_content: "",
        g_isHeaderAdded: false,

        g_reClenPanel: /<div[\s\S]*id=.?divClenPanel[\s\S]*<\/div>/gi, //regular expresion za panel z členom
        g_reClenAncor: /<span[\s\S]*id=.?spnClen[\s\S]*<\/span>/gi, //regular expresion za ancor clena  

        GetContent: function(tableTR, reSelect, replaceString) {

            //ali gre za celico z naslovom člena
            if ($(tableTR).find('.clenright > .doc_h2').size() > 0 ||
                $(tableTR).find('.clenright > .doc_h3').size() > 0 ||
                $(tableTR).find('.clenright > .doc_h4').size() > 0) {

                if (IusLabs.ViewClen.g_isHeaderAdded) {
                    //prišli smo do naslednjega člena -> prekinemo
                    return;
                }
                else {
                    //naslov člena -> dodamo
                    IusLabs.ViewClen.g_content += $(tableTR).find('.clenright').html().replace(IusLabs.ViewClen.g_reClenAncor, "");
                }
            }
            else {
                //vsebina člena -> dodamo
                IusLabs.ViewClen.g_content += $(tableTR).find('.clenright').html().replace(IusLabs.ViewClen.g_reClenPanel, "").replace(reSelect, replaceString);
                //označimo da je naslov za ta člen dodan
                IusLabs.ViewClen.g_isHeaderAdded = true;
            }

            //preberemo naslednjo vrstico
            if ($(tableTR).next().size() > 0) {
                IusLabs.ViewClen.GetContent($(tableTR).next(), reSelect, replaceString);
            }
        },

        ChangeHexColor: function(sHexColor, iChangeAmount) {

            //pretvorimo v RGB barvo
            sHexColor = sHexColor.toLowerCase();

            //pretvorimo v RGB barvo
            var r, g, b;
            r = parseInt(sHexColor.substr(0, 2), 16);
            g = parseInt(sHexColor.substr(2, 2), 16);
            b = parseInt(sHexColor.substr(4, 2), 16);

            //spremenimo glede na parameter
            r += iChangeAmount; if (r > 255) r = 255; if (r < 0) r = 0;
            g += iChangeAmount; if (g > 255) g = 255; if (g < 0) g = 0;
            b += iChangeAmount; if (b > 255) b = 255; if (b < 0) b = 0;

            //pretvorimo nazaj v HEX barvo
            return r.toString(16) + g.toString(16) + b.toString(16);
        }
    }
};
//---IUS LABS---
