
/** RainJSi18n ********************/

I18N.RainJS = {
    "required":         "povinné",
    "optional":         "nepovinné",
    "ok":               "OK",
    "error":            "chyba",
    "checkForm":        "Formulár obsahuje chyby. Skontrolujte ho, prosím.",
    "leaveUnsaved":     "Chystáte sa opustiť túto stránku. Vo formulári boli\n" +
                        "uskutočnené zmeny, ktoré neboli odoslané. Ak formulár\n" +
                        "teraz neodošlete, všetky zmeny budú nenávratne stratené.\n\n" +
                        "Chcete teraz formulár odoslať?",
    "maxLength":        "max.dĺžka:",
    "minLength":        "min.dĺžka:",
    "wrongEmail":       "nesprávny email",
    "wrongInteger":     "nesprávne číslo",
    "max":              "max:",
    "min":              "min:",
    "equals":			"musí sa rovnať poľu",

    "strange_email":    "zvláštny email",
    "format":           "formát",
    "dd_mm_yyyy":       "DD.MM.RRRR",
    "wrong_phone":      "nesprávne tel.č.",
    "wrong_number":     "nesprávne číslo",
    "wrong_float":      "neplatné číslo",
    "minimum":          "minimum",
    "maximum":          "maximum",
    
    "close":			"Zavrieť",

    "days":             new Array("Po", "Ut", "St", "Št", "Pi", "So", "Ne"),
    "months":           new Array("Jan", "Feb", "Mar", "Apr", "Máj", "Jún", "Júl", "Aug", "Sep", "Okt", "Nov", "Dec")
};




/** RainJS ************************/
/**
 * Kniznica RainJS
 *
 * Obsah:
 *   trieda   RCapsLock         testovanie ci je zapnuty caps lock
 *   trieda   RForm             validacia formularov
 *   trieda   RCookies          praca s cookies
 *   trieda   RAdminMenu        vysuvacie administratorske menu
 *   trieda   RCalendar         vyskakovaci kalendar
 *
 *   funkcia  rLoadScript       nacita externy skript
 *   funkcia  rDump             vrati dump objektu
 *   funkcia  rPrint            vypise dump objektu do dokumentu
 *   funkcia  rAlert            zobrazi dump objektu v alert okne
 *   funkcia  rOpenImage        otvori obrazok v novom pop-up okne
 *   funkcia  rAjaxStatus       zobrazi status prebiehajucej AJAX operacie
 *   funkcia  rTableMouseOver   nastavi mouseover efekt pre tabulky table.cms-listing
 *   funkcia  rFixFlash         osetri zvlastne zobrazovanie flashu v MSIE 6
 *   funkcia  rFixFormAction    kazdemu formularu, ktory nema atribut action, nastavi URL aktualnej stranky
 *
 *
 * Kniznica RainJS je zavisla na kniznici Prototype (otestovane s verziou 1.5.0),
 * ktora je takisto OpenSource, volne k dispozicii na http://www.prototypejs.org.
 *
 *
 * RainJS - JavaScript Utility Library
 *
 * Copyright (C) 2005 - 2009  Oto Komiňák (www.oto.kominak.sk)
 *
 *
 * LICENSE:
 *
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation;
 * either version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License along with this
 * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
 * Boston, MA 02111-1307 USA
 *
 * @package     RainJS
 * @author      Oto Komiňák
 * @copyright   2005-2008 Oto Komiňák
 * @link        http://www.oto.kominak.sk
 * @license     http://www.opensource.org/licenses/lgpl-license.php GNU LGPL
 * @filesource
 */



/**
 * Trieda na validaciu formularov
 */
function RForm(objName, formName) {

    this.objName  = objName;
    this.formName = formName;

    this.fields         = { };
    this.errors         = 0;
    this.modified       = false;
    this.watchingUnload = false;
    
    // Ak formular obsahuje viacjazycne prvky, v tejto premennej je jazyk prveho chyboveho prvku
    this.errorInTranslatableElement = null;

    // True, ak bol aspon raz pouzity languageSwitcher
    this.languageSwitcherUsed = false;
    
    this.currentLanguage = lang;
    

    /**
     *  Pole jednoduchych datovych typov
     *
     * Pole obsahuje regularne vyrazy pre validaciu emailov, telefonnych cisel, ...
     * Ostatne zlozitejsie datove typy su kontrolovane samostatne: integer, text, regex.
     * Pre podrobnosti vid funkciu validate().
     */
    this.regex = {
        "empty":        /^\s*$/,
        "email":        /^[^@]+@[^@.]+\.[^@]*\w\w$/,
        "mobile":       /^0[0-9]{2,3} [0-9]{3} [0-9]{3}$/,
        //"mobileIntl":   /^\+[0-9]{2,3} [0-9]{3} [0-9]{3}$/,
        "phone":        /^\+?[0-9\ ]+$/
    };


    /**
     * Nastavi obsluzne funkcie vsetkym vsetupnym poliam spomenutym v this.fields.
     */
    this.setHandlers = function() {
        var name;
        for (name in this.fields) {
            if (!name) continue;
            var input = $("#" + name);
            var div   = input[0].parentNode;

            eval("input.change(function() { " + this.objName + ".validate(this); });");

            var children = input.find("span");
            if (children.length >= 1) {
                this.fields[name].spanText = children[0].innerHTML;
            }
            
            if (/\[[a-z]{2}\]$/.test(input.attr("name"))) {
                this.fields[name].lang = input.attr("name").replace(/^.+\[([a-z]{2})\]$/, "$1");
            } else {
                this.fields[name].lang = false;
            }
        }
    };


    /**
     * Funkcia zapne kontrolu nechceneho opustenia formulara
     *
     * Nechcene opustenie formualra nastane, ak uzivatel zmenil niektore zo
     * sledovanych vstupnych poli, a bez ulozenia zmien opusta stranku.
     */
    this.watchUnload = function () {
        if (watchUnload) {
            this.watchingUnload = true;
            eval(
                "window.onunload = function() { " +
                "   if ((" + this.objName + ".modified) && (confirm(I18N.RainJS.leaveUnsaved))) { " +
                "       $(\"" + this.formName + "\").submit(); " +
                "   } " +
                "}"
            );
        }
    };


    /**
     * Nastavi status vstupnemu polu: ok / error
     */
    this.setStatus = function(div, ok, message) {
        div = $(div);
        div.removeClass("input-ok");
        div.removeClass("input-error");
        if (ok) {
            div.addClass("input-ok");
        } else {
            div.addClass("input-error");
            this.errors += 1;
        }

        // Span element, ktory obsahuje informacie o validite input boxu
        var children = div.find('span:not([class~=mceEditor])').first().html(message);

        return ok;
    };


    /**
     * Skontroluje validitu vstupneho pola
     */
    this.validate = function(input) {
        // Nastavenia z pola this.fields relevantne pre tento div
        var field = this.fields[input.id];
        
        // Volanie uzivatelskeho handleru
        if (field.onchange) {
            field.onchange();
            field = this.fields[input.id];
        }

        // Div element, ktory obsahuje label, input a span
        var div = input.parentNode;

        // Hodnota pola bez medzier na zaciatku a na konci
        var value = input.value.replace(/^\s+|\s+$/g, '');
        //value = trim(input.value);

        this.modified = true;
        
        //najprv otestujeme podmienku equals
        if(field.equals != null) {
        	if(value != $(field.equals).value) {
        		return this.setStatus(div, false, I18N.RainJS.equals + " \"" + field.equals_label + "\"");
        	}
        }

        //if (this.regex.empty.test(input.value)) {
        if (value == "") {
            return this.setStatus(div, !field.required, field.spanText);
            if (field.required) {
                return this.setStatus(div, false, I18N.RainJS.error);
            } else {
                return this.setStatus(div, true, I18N.RainJS.optional);
            }
        }

        // Najprv skusime, ci nejde o jednoduchy typ z this.regex.
        if (this.regex[field.type]) {
            if (this.regex[field.type].test(value)) {
                return this.setStatus(div, true, I18N.RainJS.ok);
            } else {
                var messageId = "error";
                switch (field.type) {
                    case "email": messageId = "wrongEmail";     break;
                    case "phone": messageId = "error";          break;
                }
                return this.setStatus(div, false, I18N.RainJS[messageId]);
            }
        }

        // Dalej skusime, ci nejde o specialny typ "regex", kde je nutne
        // uviest specificky regularny vyraz.
        if (field.type == "regex") {
        	if ((field.min != null) && (value.length < field.min)) {
                return this.setStatus(div, false, I18N.RainJS.minLength + " " + field.min);
            }
            if ((field.max != null) && (value.length > field.max)) {
                return this.setStatus(div, false, I18N.RainJS.maxLength + " " + field.max);
            }
            
            if (field.regex.test(value)) {
                return this.setStatus(div, true, I18N.RainJS.ok);
            } else {
                return this.setStatus(div, false, I18N.RainJS.error);
            }
        }

        // Typ "text"
        if (field.type == "text") {
            if ((field.min != null) && (value.length < field.min)) {
                return this.setStatus(div, false, I18N.RainJS.minLength + " " + field.min);
            }
            if ((field.max != null) && (value.length > field.max)) {
                return this.setStatus(div, false, I18N.RainJS.maxLength + " " + field.max);
            }
            return this.setStatus(div, true, I18N.RainJS.ok);
        }

        // Typ "integer" (cele cislo)
        if (field.type == "integer") {
            var regex = /^-?[0-9]+$/;
            if (!regex.test(value)) {
                return this.setStatus(div, false, I18N.RainJS.wrongInteger);
            }
            var n = parseInt(value);
            if ((field.min != null) && (n < field.min)) {
                return this.setStatus(div, false, I18N.RainJS.min + " " + field.min);
            }
            if ((field.max != null) && (n > field.max)) {
                return this.setStatus(div, false, I18N.RainJS.max + " " + field.max);
            }
            return this.setStatus(div, true, I18N.RainJS.ok);
        }

        // Typ "float" (desatinne cislo s bodkou alebo ciarkou)
        if (field.type == "float") {
            var regex = /^-?[0-9]*[,.]?[0-9]+$/;
            if (!regex.test(value)) {
                return this.setStatus(div, false, I18N.RainJS.wrongInteger);
            }
            var n = parseFloat(value.replace(/,/, '.'));
            if ((field.min != null) && (n < field.min)) {
                return this.setStatus(div, false, I18N.RainJS.min + " " + field.min);
            }
            if ((field.max != null) && (n > field.max)) {
                return this.setStatus(div, false, I18N.RainJS.max + " " + field.max);
            }
            return this.setStatus(div, true, I18N.RainJS.ok);
        }

        return true;
    };


    /**
     * Spusti validaciu vsetkych poli formulara
     *
     * Ak je showAlert true, zobrazi sa vystrazne okno s oznamenim o chybne vyplnenom formulari
     */
    this.validateAllFields = function (showAlert) {
    	
    	// najprv vykoname save vsetkych tinyMCE editorov, aby sme do textarea-i dostali aktualne hodnoty
    	if (typeof(tinymce) !== "undefined") {
        	if ((typeof(tinymce) != "undefined") && (tinymce != null) && (tinymce.EditorManager != null)) {
        		tinymce.EditorManager.triggerSave();
        	}
    	}
    	
        this.errors = 0;
        this.errorInTranslatableElement = null;

        if (this.watchingUnload) {
            window.onunload = function() { };
        }
        
        if (!this.beforeValidate()) {
            this.errors += 1;
            return false;
        }
        
        var name, input;
        
        for (name in this.fields) {
            if (!name) continue;
            
            input = $("#" + name)[0];
            
            // Povinny prekladatelny prvok formulara v inom ako "hlavnom" jazyku:
            // ak je prazdny a uzivatel o nom ani "nevie" (este nepouzil prepinac jazykov), naplnime mu hodnotu  z "hlavneho" jazyka
            if ((this.fields[name].required) && (!input.value) && (!this.languageSwitcherUsed) && (this.fields[name].lang) && (this.fields[name].lang != lang)) {
            	var mainName = name.replace(new RegExp("_" + this.fields[name].lang + "$"), "_" + lang);
            	input.value = $("#" + mainName)[0].value;
            }
            
            var errorsCount = this.errors;
            
            this.validate(input);
//            input.onchange(input);
            
            if ((this.errors > errorsCount) && (this.fields[name].lang) && (!this.errorInTranslatableElement)) {
               this.errorInTranslatableElement = this.fields[name].lang;
            }
            
        }
        
        
        if (!this.afterValidate()) {
            this.errors += 1;
        }
        

        if (this.errors > 0) {
            if (this.errorInTranslatableElement) this.switchInputLanguage(this.errorInTranslatableElement);
            if (showAlert) {
                alert(I18N.RainJS.checkForm);
            }
            
            return false;
        } else {
            return true;
        }
    };


    this.beforeValidate = function () { return true; };

    this.afterValidate = function () { return true; };
    
    
    this.switchInputLanguage = function(language) {
        if (language == this.currentLanguage) return;
        
        this.languageSwitcherUsed = true;
        this.currentLanguage = language;
        
        $("#" + this.objName + "_languageInfo").hide();
        
        $("div.tab-language-" + this.objName).removeClass("selected-language");
        $("div.tab-language-" + this.objName + "-" + language).addClass("selected-language");
        
        $("div.input-i18n-" + this.objName).hide();
        $("div.input-i18n-" + this.objName + "-" + language).show();
    };
}


/**
 * Trieda na pracu s cookies
 */
function RCookies() {

    this.getCookie = function (name)  {
        var start = document.cookie.indexOf( name + "=" );
        var len = start + name.length + 1;
        if ( ( !start ) && ( name != document.cookie.substring( 0, name.length ) ) ) {
            return null;
        }
        if ( start == -1 ) return null;
        var end = document.cookie.indexOf( ';', len );
        if ( end == -1 ) end = document.cookie.length;
        return unescape( document.cookie.substring( len, end ) );
    };


    this.setCookie = function (name, value, expires, path, domain, secure) {
        var today = new Date();
        today.setTime( today.getTime() );
        if ( expires ) {
            expires = expires * 1000 * 60 * 60 * 24;
        }
        var expires_date = new Date( today.getTime() + (expires) );
        document.cookie = name+'='+escape( value ) +
            ( ( expires ) ? ';expires='+expires_date.toGMTString() : '' ) + //expires.toGMTString()
            ( ( path ) ? ';path=' + path : '' ) +
            ( ( domain ) ? ';domain=' + domain : '' ) +
            ( ( secure ) ? ';secure' : '' );
    };

    this.deleteCookie = function (name, path, domain) {
        if ( getCookie( name ) ) document.cookie = name + '=' +
                ( ( path ) ? ';path=' + path : '') +
                ( ( domain ) ? ';domain=' + domain : '' ) +
                ';expires=Thu, 01-Jan-1970 00:00:01 GMT';
    };
};



/**
 * Trieda na testovanie zapnuteho capslocku
 */
function RCapsLock(obj,capsOnFnc,capsOffFnc) {
    
    if(RCapsLock.instances==undefined) {
        RCapsLock.instances = {};
    }
    this.id = RCapsLock.instances.length;
    RCapsLock.instances[RCapsLock.instances.length] = this;
    
    if (document.addEventListener) {
        eval('obj.addEventListener(\'keypress\',function(e) {RCapsLock.instances['+this.id+'].keypress(e,'+capsOnFnc+','+capsOffFnc+')},false)');
    } else if (document.attachEvent) {
        eval('obj.attachEvent(\'onkeypress\',function(e) {RCapsLock.instances['+this.id+'].keypress(e,'+capsOnFnc+','+capsOffFnc+')})');
    } else {
          // no support for addEventListener *or* attachEvent, so quietly exit
    }

    this.keypress = function(e,capsOnFnc,capsOffFnc) {
        var ev = e ? e : window.event;
        if (!ev) {
            return;
        }
        var targ = ev.target ? ev.target : ev.srcElement;
        // get key pressed
        var which = -1;
        if (ev.which) {
            which = ev.which;
        } else if (ev.keyCode) {
            which = ev.keyCode;
        }

        // get shift status
        var shift_status = false;
        if (ev.shiftKey) {
            shift_status = ev.shiftKey;
        } else if (ev.modifiers) {
            shift_status = !!(ev.modifiers & 4);
        }
        if (((which >= 65 && which <=  90) && !shift_status) ||
            ((which >= 97 && which <= 122) && shift_status)) {
          // uppercase, no shift key
          capsOnFnc();
        } else {
            var char = String.fromCharCode(which);
            if(char.toLowerCase() == char) var is_lower_case = true;
            if(char.toUpperCase() == char) var is_upper_case = true;
              
            if((is_lower_case && shift_status && !is_upper_case) ||
                (is_upper_case && !shift_status && !is_lower_case)) {
                capsOnFnc();
            } else if(!(is_upper_case && is_lower_case)) {
                capsOffFnc();
            }
        }
    };
}


/**
 * Nacita externy JavaScriptovy subor
 */
function rLoadScript(url) {
    var e = document.createElement("script");
    e.src = url;
    e.type="text/javascript";
    document.getElementsByTagName("head")[0].appendChild(e);
}


/**
 * Vygeneruje dump objektu
 */
function rDump(obj, name, html, indent, depth) {
    var nl = "\n";

    if (depth > 10) {
        return indent + name + ": <Maximum Depth Reached>" + nl;
    }

    if (typeof obj == "object") {
        var child = null;
        var output = indent + name + nl;
        indent += html ? "&nbsp;&nbsp;&nbsp;&nbsp;" : "    ";

        for (var item in obj) {
            try {
                child = obj[item];
            } catch (e) {
                child = "<Unable to Evaluate>";
            }
            if (typeof child == "object") {
                output += rDump(child, item, html, indent, depth + 1);
            } else {
                output += indent + item + ": " + child + nl;
            }
        }
        return output;

    } else {
        return obj;
    }
}


/**
 * Zobrazi dump objektu v alert okne
 */
function rAlert(obj) {
    alert(rDump(obj, "", false, "", 0));
}


/**
 * Vypise dump objektu do dokumentu
 */
function rPrint(obj) {
    document.write("<div style=\"text-align: left\"><pre>" + rDump(obj, "", true, "", 0) + "</pre></div>");
}


/**
 * Otvori obrazok (resp. akukolvek url) v novom pop-up okne
 */
function rOpenImage(url) {
    window.open(url, 'w', 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=no,width=660,height=660');
}


/**
 * Nastavi status AJAX poziadavky do div#ajaxStatus
 */
function rAjaxStatus(status, message) {
    clearTimeout(rAjaxStatusTimer);

    if (status) {
        $("#ajaxStatus").attr("class", "ajax-status ajax-status-" + status);
        $("#ajaxStatus").html(message);
        if (status == "ok") {
            rAjaxStatusTimer = setTimeout("rAjaxStatus()", 2000);
        }
    } else {
        $("#ajaxStatus").attr("class", "ajax-status");
        $("#ajaxStatus").html("&nbsp;");
    }
}
var rAjaxStatusTimer = null;


/**
 * Prida riadkom v table.cms-listing efekt pre mouse over
 */
function rTableMouseOver() {
    var tables = document.getElementsByClassName("cms-listing");

    for (var i = 0; i < tables.length; i++) {
        var rows = tables[i].getElementsByTagName("tr");
        var j = 0;

        var firstRowParent = rows[0].parentNode.tagName;
        if ((firstRowParent == "THEAD") || (firstRowParent == "thead")) j++;

        for (; j < rows.length; j++) {
            rows[j].onmouseover = function () {
                if (!rTableMouseOverDisabled) $(this).addClassName("mouseover");
            };
            rows[j].onmouseout = function () {
                $(this).removeClassName("mouseover");
            };
        }
    }
}
var rTableMouseOverDisabled = false;


/**
 * Osetri MSIE Flash bug/feature.
 */
function rFixFlash() {
    var n = navigator.userAgent;
    var w = n.indexOf("MSIE");

    if ((w > 0) && (parseInt(n.charAt(w + 5)) > 5)) {
        var T = ["object", "embed", "applet"];
        for (var j = 0; j < 2; j++) {
            var E = document.getElementsByTagName(T[j]);
            for (var i = 0; i < E.length; i++) {
                var P = E[i].parentNode;
                var H = P.innerHTML;
                P.removeChild(E[i]);
                P.innerHTML = H;
            }
        }
    }
}


/**
 * Kazdemu formularu, ktory nema atribut action (alebo ho ma prazdny),
 * nastavi action na akutlanu url (window.pathname)
 */
function rFixFormAction() {
    if ((document.forms) && (document.forms.length > 0)) {
        for (var i = 0; i < document.forms.length; i++) {
            var action = document.forms[i].getAttribute("action");
            if ((action == null) || (action == "")) {
                document.forms[i].setAttribute("action", window.location.pathname + window.location.search);
            }
        }
    }
}


/**
 * Nastavi focus prvemu vstupnemu prvku (input)
 */
function rFocusOnFirstFormInput() {
    var allFormElements = $("div.cms-form div.input");
    if (allFormElements.length > 0) {
        var firstFormElement = allFormElements.first().find("input, selectbox")[0];
        if ((firstFormElement) && (firstFormElement.type != "hidden")) {
            firstFormElement.focus();
        }
    }
}


/**
 * Ak neexistuje Firebug konzola, vytvorime aspon prazdnu nahradu.
 * Vdaka tomu nebudu na stranke zobrazovane chyby, ak v kode boli ponechane volania console.log() a stranka
 * sa zobrazuje v browseri bez Firebugu.
 */
function rFixFirebug() {
    if (typeof console == 'undefined') {
        var console = {};
        console.log = function(msg) {
            return;
        };
    }
}




/** SWFObject *********************/
/*	SWFObject v2.2 <http://code.google.com/p/swfobject/> 
	is released under the MIT License <http://www.opensource.org/licenses/mit-license.php> 
*/
var swfobject=function(){var D="undefined",r="object",S="Shockwave Flash",W="ShockwaveFlash.ShockwaveFlash",q="application/x-shockwave-flash",R="SWFObjectExprInst",x="onreadystatechange",O=window,j=document,t=navigator,T=false,U=[h],o=[],N=[],I=[],l,Q,E,B,J=false,a=false,n,G,m=true,M=function(){var aa=typeof j.getElementById!=D&&typeof j.getElementsByTagName!=D&&typeof j.createElement!=D,ah=t.userAgent.toLowerCase(),Y=t.platform.toLowerCase(),ae=Y?/win/.test(Y):/win/.test(ah),ac=Y?/mac/.test(Y):/mac/.test(ah),af=/webkit/.test(ah)?parseFloat(ah.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,X=!+"\v1",ag=[0,0,0],ab=null;if(typeof t.plugins!=D&&typeof t.plugins[S]==r){ab=t.plugins[S].description;if(ab&&!(typeof t.mimeTypes!=D&&t.mimeTypes[q]&&!t.mimeTypes[q].enabledPlugin)){T=true;X=false;ab=ab.replace(/^.*\s+(\S+\s+\S+$)/,"$1");ag[0]=parseInt(ab.replace(/^(.*)\..*$/,"$1"),10);ag[1]=parseInt(ab.replace(/^.*\.(.*)\s.*$/,"$1"),10);ag[2]=/[a-zA-Z]/.test(ab)?parseInt(ab.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}}else{if(typeof O.ActiveXObject!=D){try{var ad=new ActiveXObject(W);if(ad){ab=ad.GetVariable("$version");if(ab){X=true;ab=ab.split(" ")[1].split(",");ag=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}}catch(Z){}}}return{w3:aa,pv:ag,wk:af,ie:X,win:ae,mac:ac}}(),k=function(){if(!M.w3){return}if((typeof j.readyState!=D&&j.readyState=="complete")||(typeof j.readyState==D&&(j.getElementsByTagName("body")[0]||j.body))){f()}if(!J){if(typeof j.addEventListener!=D){j.addEventListener("DOMContentLoaded",f,false)}if(M.ie&&M.win){j.attachEvent(x,function(){if(j.readyState=="complete"){j.detachEvent(x,arguments.callee);f()}});if(O==top){(function(){if(J){return}try{j.documentElement.doScroll("left")}catch(X){setTimeout(arguments.callee,0);return}f()})()}}if(M.wk){(function(){if(J){return}if(!/loaded|complete/.test(j.readyState)){setTimeout(arguments.callee,0);return}f()})()}s(f)}}();function f(){if(J){return}try{var Z=j.getElementsByTagName("body")[0].appendChild(C("span"));Z.parentNode.removeChild(Z)}catch(aa){return}J=true;var X=U.length;for(var Y=0;Y<X;Y++){U[Y]()}}function K(X){if(J){X()}else{U[U.length]=X}}function s(Y){if(typeof O.addEventListener!=D){O.addEventListener("load",Y,false)}else{if(typeof j.addEventListener!=D){j.addEventListener("load",Y,false)}else{if(typeof O.attachEvent!=D){i(O,"onload",Y)}else{if(typeof O.onload=="function"){var X=O.onload;O.onload=function(){X();Y()}}else{O.onload=Y}}}}}function h(){if(T){V()}else{H()}}function V(){var X=j.getElementsByTagName("body")[0];var aa=C(r);aa.setAttribute("type",q);var Z=X.appendChild(aa);if(Z){var Y=0;(function(){if(typeof Z.GetVariable!=D){var ab=Z.GetVariable("$version");if(ab){ab=ab.split(" ")[1].split(",");M.pv=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}else{if(Y<10){Y++;setTimeout(arguments.callee,10);return}}X.removeChild(aa);Z=null;H()})()}else{H()}}function H(){var ag=o.length;if(ag>0){for(var af=0;af<ag;af++){var Y=o[af].id;var ab=o[af].callbackFn;var aa={success:false,id:Y};if(M.pv[0]>0){var ae=c(Y);if(ae){if(F(o[af].swfVersion)&&!(M.wk&&M.wk<312)){w(Y,true);if(ab){aa.success=true;aa.ref=z(Y);ab(aa)}}else{if(o[af].expressInstall&&A()){var ai={};ai.data=o[af].expressInstall;ai.width=ae.getAttribute("width")||"0";ai.height=ae.getAttribute("height")||"0";if(ae.getAttribute("class")){ai.styleclass=ae.getAttribute("class")}if(ae.getAttribute("align")){ai.align=ae.getAttribute("align")}var ah={};var X=ae.getElementsByTagName("param");var ac=X.length;for(var ad=0;ad<ac;ad++){if(X[ad].getAttribute("name").toLowerCase()!="movie"){ah[X[ad].getAttribute("name")]=X[ad].getAttribute("value")}}P(ai,ah,Y,ab)}else{p(ae);if(ab){ab(aa)}}}}}else{w(Y,true);if(ab){var Z=z(Y);if(Z&&typeof Z.SetVariable!=D){aa.success=true;aa.ref=Z}ab(aa)}}}}}function z(aa){var X=null;var Y=c(aa);if(Y&&Y.nodeName=="OBJECT"){if(typeof Y.SetVariable!=D){X=Y}else{var Z=Y.getElementsByTagName(r)[0];if(Z){X=Z}}}return X}function A(){return !a&&F("6.0.65")&&(M.win||M.mac)&&!(M.wk&&M.wk<312)}function P(aa,ab,X,Z){a=true;E=Z||null;B={success:false,id:X};var ae=c(X);if(ae){if(ae.nodeName=="OBJECT"){l=g(ae);Q=null}else{l=ae;Q=X}aa.id=R;if(typeof aa.width==D||(!/%$/.test(aa.width)&&parseInt(aa.width,10)<310)){aa.width="310"}if(typeof aa.height==D||(!/%$/.test(aa.height)&&parseInt(aa.height,10)<137)){aa.height="137"}j.title=j.title.slice(0,47)+" - Flash Player Installation";var ad=M.ie&&M.win?"ActiveX":"PlugIn",ac="MMredirectURL="+O.location.toString().replace(/&/g,"%26")+"&MMplayerType="+ad+"&MMdoctitle="+j.title;if(typeof ab.flashvars!=D){ab.flashvars+="&"+ac}else{ab.flashvars=ac}if(M.ie&&M.win&&ae.readyState!=4){var Y=C("div");X+="SWFObjectNew";Y.setAttribute("id",X);ae.parentNode.insertBefore(Y,ae);ae.style.display="none";(function(){if(ae.readyState==4){ae.parentNode.removeChild(ae)}else{setTimeout(arguments.callee,10)}})()}u(aa,ab,X)}}function p(Y){if(M.ie&&M.win&&Y.readyState!=4){var X=C("div");Y.parentNode.insertBefore(X,Y);X.parentNode.replaceChild(g(Y),X);Y.style.display="none";(function(){if(Y.readyState==4){Y.parentNode.removeChild(Y)}else{setTimeout(arguments.callee,10)}})()}else{Y.parentNode.replaceChild(g(Y),Y)}}function g(ab){var aa=C("div");if(M.win&&M.ie){aa.innerHTML=ab.innerHTML}else{var Y=ab.getElementsByTagName(r)[0];if(Y){var ad=Y.childNodes;if(ad){var X=ad.length;for(var Z=0;Z<X;Z++){if(!(ad[Z].nodeType==1&&ad[Z].nodeName=="PARAM")&&!(ad[Z].nodeType==8)){aa.appendChild(ad[Z].cloneNode(true))}}}}}return aa}function u(ai,ag,Y){var X,aa=c(Y);if(M.wk&&M.wk<312){return X}if(aa){if(typeof ai.id==D){ai.id=Y}if(M.ie&&M.win){var ah="";for(var ae in ai){if(ai[ae]!=Object.prototype[ae]){if(ae.toLowerCase()=="data"){ag.movie=ai[ae]}else{if(ae.toLowerCase()=="styleclass"){ah+=' class="'+ai[ae]+'"'}else{if(ae.toLowerCase()!="classid"){ah+=" "+ae+'="'+ai[ae]+'"'}}}}}var af="";for(var ad in ag){if(ag[ad]!=Object.prototype[ad]){af+='<param name="'+ad+'" value="'+ag[ad]+'" />'}}aa.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+ah+">"+af+"</object>";N[N.length]=ai.id;X=c(ai.id)}else{var Z=C(r);Z.setAttribute("type",q);for(var ac in ai){if(ai[ac]!=Object.prototype[ac]){if(ac.toLowerCase()=="styleclass"){Z.setAttribute("class",ai[ac])}else{if(ac.toLowerCase()!="classid"){Z.setAttribute(ac,ai[ac])}}}}for(var ab in ag){if(ag[ab]!=Object.prototype[ab]&&ab.toLowerCase()!="movie"){e(Z,ab,ag[ab])}}aa.parentNode.replaceChild(Z,aa);X=Z}}return X}function e(Z,X,Y){var aa=C("param");aa.setAttribute("name",X);aa.setAttribute("value",Y);Z.appendChild(aa)}function y(Y){var X=c(Y);if(X&&X.nodeName=="OBJECT"){if(M.ie&&M.win){X.style.display="none";(function(){if(X.readyState==4){b(Y)}else{setTimeout(arguments.callee,10)}})()}else{X.parentNode.removeChild(X)}}}function b(Z){var Y=c(Z);if(Y){for(var X in Y){if(typeof Y[X]=="function"){Y[X]=null}}Y.parentNode.removeChild(Y)}}function c(Z){var X=null;try{X=j.getElementById(Z)}catch(Y){}return X}function C(X){return j.createElement(X)}function i(Z,X,Y){Z.attachEvent(X,Y);I[I.length]=[Z,X,Y]}function F(Z){var Y=M.pv,X=Z.split(".");X[0]=parseInt(X[0],10);X[1]=parseInt(X[1],10)||0;X[2]=parseInt(X[2],10)||0;return(Y[0]>X[0]||(Y[0]==X[0]&&Y[1]>X[1])||(Y[0]==X[0]&&Y[1]==X[1]&&Y[2]>=X[2]))?true:false}function v(ac,Y,ad,ab){if(M.ie&&M.mac){return}var aa=j.getElementsByTagName("head")[0];if(!aa){return}var X=(ad&&typeof ad=="string")?ad:"screen";if(ab){n=null;G=null}if(!n||G!=X){var Z=C("style");Z.setAttribute("type","text/css");Z.setAttribute("media",X);n=aa.appendChild(Z);if(M.ie&&M.win&&typeof j.styleSheets!=D&&j.styleSheets.length>0){n=j.styleSheets[j.styleSheets.length-1]}G=X}if(M.ie&&M.win){if(n&&typeof n.addRule==r){n.addRule(ac,Y)}}else{if(n&&typeof j.createTextNode!=D){n.appendChild(j.createTextNode(ac+" {"+Y+"}"))}}}function w(Z,X){if(!m){return}var Y=X?"visible":"hidden";if(J&&c(Z)){c(Z).style.visibility=Y}else{v("#"+Z,"visibility:"+Y)}}function L(Y){var Z=/[\\\"<>\.;]/;var X=Z.exec(Y)!=null;return X&&typeof encodeURIComponent!=D?encodeURIComponent(Y):Y}var d=function(){if(M.ie&&M.win){window.attachEvent("onunload",function(){var ac=I.length;for(var ab=0;ab<ac;ab++){I[ab][0].detachEvent(I[ab][1],I[ab][2])}var Z=N.length;for(var aa=0;aa<Z;aa++){y(N[aa])}for(var Y in M){M[Y]=null}M=null;for(var X in swfobject){swfobject[X]=null}swfobject=null})}}();return{registerObject:function(ab,X,aa,Z){if(M.w3&&ab&&X){var Y={};Y.id=ab;Y.swfVersion=X;Y.expressInstall=aa;Y.callbackFn=Z;o[o.length]=Y;w(ab,false)}else{if(Z){Z({success:false,id:ab})}}},getObjectById:function(X){if(M.w3){return z(X)}},embedSWF:function(ab,ah,ae,ag,Y,aa,Z,ad,af,ac){var X={success:false,id:ah};if(M.w3&&!(M.wk&&M.wk<312)&&ab&&ah&&ae&&ag&&Y){w(ah,false);K(function(){ae+="";ag+="";var aj={};if(af&&typeof af===r){for(var al in af){aj[al]=af[al]}}aj.data=ab;aj.width=ae;aj.height=ag;var am={};if(ad&&typeof ad===r){for(var ak in ad){am[ak]=ad[ak]}}if(Z&&typeof Z===r){for(var ai in Z){if(typeof am.flashvars!=D){am.flashvars+="&"+ai+"="+Z[ai]}else{am.flashvars=ai+"="+Z[ai]}}}if(F(Y)){var an=u(aj,am,ah);if(aj.id==ah){w(ah,true)}X.success=true;X.ref=an}else{if(aa&&A()){aj.data=aa;P(aj,am,ah,ac);return}else{w(ah,true)}}if(ac){ac(X)}})}else{if(ac){ac(X)}}},switchOffAutoHideShow:function(){m=false},ua:M,getFlashPlayerVersion:function(){return{major:M.pv[0],minor:M.pv[1],release:M.pv[2]}},hasFlashPlayerVersion:F,createSWF:function(Z,Y,X){if(M.w3){return u(Z,Y,X)}else{return undefined}},showExpressInstall:function(Z,aa,X,Y){if(M.w3&&A()){P(Z,aa,X,Y)}},removeSWF:function(X){if(M.w3){y(X)}},createCSS:function(aa,Z,Y,X){if(M.w3){v(aa,Z,Y,X)}},addDomLoadEvent:K,addLoadEvent:s,getQueryParamValue:function(aa){var Z=j.location.search||j.location.hash;if(Z){if(/\?/.test(Z)){Z=Z.split("?")[1]}if(aa==null){return L(Z)}var Y=Z.split("&");for(var X=0;X<Y.length;X++){if(Y[X].substring(0,Y[X].indexOf("="))==aa){return L(Y[X].substring((Y[X].indexOf("=")+1)))}}}return""},expressInstallCallback:function(){if(a){var X=c(R);if(X&&l){X.parentNode.replaceChild(l,X);if(Q){w(Q,true);if(M.ie&&M.win){l.style.display="block"}}if(E){E(B)}}a=false}}}}();


/** MediaLibrary ******************/
/**
 * MediaLibrary.js (June 2011)
 *
 * @author MMA
 *
 */
var MediaLibrary = {
    fancyboxSelector: "a.fancybox",     //zvolime selector
    lang: {                             //preklady
        picture: 'Obrázok',
        from: 'z'    
    },
    
    /**
    *   fancybox init 
    */
    initFancybox: function() {
        var lang = this.lang;
        $(this.fancyboxSelector).fancybox({
            titlePosition: 'over',
            
            //naformatujeme titulok
            titleFormat: function(title, currentArray, currentIndex, currentOpts){
                
                //ak nemame titulok ani obrazky tak vratime false
                if(currentArray.length <= 1 && (!title || !title.length)) return false;
                
                var titleHTML = '<div class="fancy-simple-title" id="tip-title" style="text-align: left">';
                    
                if(currentArray.length > 1) {
                    //ak mame title zobrazime title
                    if(title && title.length) titleHTML += '<strong>' + title + '</strong><br />'; 
                    
                    //mame galeriu obrazkov tak zobrazime kolky obrazok sa zobrazuje
                    titleHTML += '<small>' + lang.picture + ' ' + (currentIndex + 1) + ' ' + lang.from + ' ' + currentArray.length + '</small>';
                } else {
                    titleHTML += '<strong>' + title + '</strong>'; 
                } 
                   
                titleHTML += '</div>';
                
                return titleHTML;
            },
            
            //binduje mouseover a mouseout eventy aby krasne animovalo titulok
            onComplete: function(currentArray, currentIndex, currentOpts) {
                $("#fancybox-title").stop(true, true).hide();
                $("#fancybox-title").stop(true, true).slideDown(currentOpts.changeSpeed);

                $("#fancybox-wrap").bind('mouseenter', function() {
                    $("#fancybox-title").stop(true, true).slideDown(currentOpts.changeSpeed);
                });

                $("#fancybox-wrap").bind('mouseleave', function() {
                    $("#fancybox-title").stop(true, true).slideUp(currentOpts.changeSpeed);
                });
            },
            
            //unbindovanie eventov pri prepinani a zavreti fancyboxu
            onCleanup : function() {
                $("#fancybox-wrap").unbind('mouseenter').unbind('mouseleave');
            }
        });  
    },
    
    
    //initializacia fancyboxovych formularov
    fancyboxForm: function() {
        $('.medialibrary-fancybox-form').fancybox();
    }
}


/** Stats *************************/
/**
 * Stats (Apr 2010)
 *
 * @author Oto Komiňák
 *
 */
var Stats = {

    /*
     * Metody sa pridavaju tymto sposobom:
     *

    foo: function() {
        // Kod...
    },


    bar: function(p1, p2) {
        // Kod...
    }

     *
     */

}

