PageSourceSearch

https://grueneliga.de/templates/ig_grueneliga_v2/script.js

js grueneliga.de collected 2026-09-25 02:47:12 UTC 49,298 bytes, 1,393 lines download raw bytes

1/* Created by Artisteer v4.1.0.59861 */
2/*jshint forin:true, noarg:true, noempty:true, eqeqeq:true, bitwise:true, strict:true, undef:true, curly:false, browser:true, jquery:false */
3/*global jQuery BackgroundHelper */
4
5// css helper
6(function ($) {
7    'use strict';
8    var data = [
9        { str: navigator.userAgent, sub: 'Chrome', ver: 'Chrome', name: 'chrome' },
10        { str: navigator.vendor, sub: 'Apple', ver: 'Version', name: 'safari' },
11        { prop: window.opera, ver: 'Opera', name: 'opera' },
12        { str: navigator.userAgent, sub: 'Firefox', ver: 'Firefox', name: 'firefox' },
13        { str: navigator.userAgent, sub: 'MSIE', ver: 'MSIE', name: 'ie' }
14    ];
15    var v = function (s, n) {
16        var i = s.indexOf(data[n].ver);
17        return (i !== -1) ? parseInt(s.substring(i + data[n].ver.length + 1), 10) : '';
18    };
19    var html = $('html');
20    for (var n = 0; n < data.length; n++) {
21        if ((data[n].str && (data[n].str.indexOf(data[n].sub) !== -1)) || data[n].prop) {
22            html.addClass(data[n].name + ' ' + data[n].name + v(navigator.userAgent, n) || v(navigator.appVersion, n));
23            break;
24        }
25    }
26
27    // 'desktop' class is used as responsive design initial value
28    html.addClass('desktop');
29})(jQuery);
30
31jQuery(function ($) {
32    'use strict';
33    var i, j, k, l, m;
34    if (!$.browser.msie || parseInt($.browser.version, 10) !== 9) {
35        return;
36    }
37
38    var splitByTokens = function (str, startToken, endToken, last) {
39        if (!last) {
40            last = false;
41        }
42        var startPos = str.indexOf(startToken);
43        if (startPos !== -1) {
44            startPos += startToken.length;
45            var endPos = last ? str.lastIndexOf(endToken) : str.indexOf(endToken, startPos);
46
47            if (endPos !== -1 && endPos > startPos) {
48                return str.substr(startPos, endPos - startPos);
49            }
50        }
51        return '';
52    };
53
54    var splitWithBrackets = function (str, token, brackets) {
55        /*jshint nonstandard:true */
56        if (!token) {
57            token = ',';
58        }
59        if (!brackets) {
60            brackets = '()';
61        }
62        var bracket = 0;
63        var startPos = 0;
64        var result = [];
65        if (brackets.lenght < 2) {
66            return result;
67        }
68        var pos = 0;
69        while (pos < str.length) {
70            var ch = str[pos];
71            if (ch === brackets[0]) {
72                bracket++;
73            }
74            if (ch === brackets[1]) {
75                bracket--;
76            }
77            if (ch === token && bracket < 1) {
78                result.push(str.substr(startPos, pos - startPos));
79                startPos = pos + token.length;
80            }
81            pos++;
82        }
83        result.push(str.substr(startPos, pos - startPos));
84        return result;
85    };
86
87    var byteToHex = function (d) {
88        var hex = Number(d).toString(16);
89        while (hex.length < 2) {
90            hex = "0" + hex;
91        }
92        return hex;
93    };
94
95    for (i = 0; i < document.styleSheets.length; i++) {
96        var s = document.styleSheets[i];
97        var r = [s];
98        for (j = 0; j < s.imports.length; j++) {
99            r.push(s.imports[j]);
100        }
101        for (j = 0; j < r.length; j++) {
102            s = r[j];
103            var n = [];
104            for (k = 0; k < s.rules.length; k++) {
105                var css = s.rules[k].cssText || s.rules[k].style.cssText;
106                if (!css) {
107                    continue;
108                }
109                var value = splitByTokens(css, '-svg-background:', ';');
110                if (value === '') {
111                    continue;
112                }
113                var values = splitWithBrackets(value);
114                for (l = 0; l < values.length; l++) {
115                    var g = splitByTokens(values[l], 'linear-gradient(', ')', true);
116                    if (g === '') {
117                        continue;
118                    }
119                    var args = splitWithBrackets(g);
120                    if (args.length < 3) {
121                        continue;
122                    }
123                    var maxOffset = 0;
124                    var stops = [];
125                    for (m = 1; m < args.length; m++) {
126                        var stopValues = splitWithBrackets($.trim(args[m]), ' ');
127                        if (stopValues.length < 2) {
128                            continue;
129                        }
130                        var stopColor = $.trim(stopValues[0]);
131                        var stopOpacity = 1;
132                        var colorRgba = splitByTokens(stopColor, 'rgba(', ')', true);
133                        var stopOffset = $.trim(stopValues[1]);
134                        if (colorRgba !== "") {
135                            var rgba = colorRgba.split(',');
136                            if (rgba.length < 4) {
137                                continue;
138                            }
139                            stopColor = '#' + byteToHex(rgba[0]) + byteToHex(rgba[1]) + byteToHex(rgba[2]);
140                            stopOpacity = rgba[3];
141                        }
142                        var isPx = stopOffset.indexOf('px') !== -1;
143                        if (isPx) {
144                            maxOffset = Math.max(maxOffset, parseInt(stopOffset, 10) || 0);
145                        }
146                        stops.push({ offset: stopOffset, color: stopColor, opacity: stopOpacity, isPx: isPx });
147                    }
148                    var stopsXML = '';
149                    var lastStop = null;
150                    for (m = 0; m < stops.length; m++) {
151                        if (stops[m].isPx) {
152                            stops[m].offset = ((parseInt(stops[m].offset, 10) || 0) / (maxOffset / 100)) + '%';
153                        }
154                        stopsXML += '<stop offset="' + stops[m].offset + '" stop-color="' + stops[m].color + '" stop-opacity="' + stops[m].opacity + '"/>';
155                        if (m === stops.length - 1) {
156                            lastStop = stops[m];
157                        }
158                    }
159                    var isLeft = $.trim(args[0]) === 'left';
160                    var direction = 'x1="0%" y1="0%" ' + (isLeft ? 'x2="100%" y2="0%"' : 'x2="0%" y2="
160100%"');
161                    var gradientLength = '100%';
162                    if (maxOffset > 0) {
163                        gradientLength = maxOffset + 'px';
164                    }
165                    var size = (isLeft ? 'width="' + gradientLength + '" height="100%"' : 'width="100%" height="' + gradientLength + '"');
166                    var last = "";
167                    if (lastStop !== null && maxOffset > 0) {
168                        last = '<rect ' +
169                            (isLeft ?
170                                'x="' + maxOffset + '" y="0"' :
171                                'x="0" y="' + maxOffset + '"') +
172                            ' width="100%" height="100%" style="fill:' + lastStop.color + ';opacity:' + lastStop.opacity + ';"/>';
173
174                    }
175                    var svgGradient = '<svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="none"><linearGradient id="g" gradientUnits="objectBoundingBox" ' + direction + '>' + stopsXML + '</linearGradient><rect x="0" y="0" ' + size + ' fill="url(#g)" />' + last + '</svg>';
176                    values[l] = values[l].replace('linear-gradient(' + g + ')', 'url(data:image/svg+xml,' + escape(svgGradient) + ')');
177                }
178                n.push({ s: s.rules[k].selectorText, v: 'background: ' + values.join(",") });
179            }
180            for (k = 0; k < n.length; k++) {
181                s.addRule(n[k].s, n[k].v);
182            }
183        }
184    }
185});
186
187jQuery(function ($) {
188    'use strict';
189    // ie < 9 slider multiple background fix
190    if (!$.browser.msie || $.browser.version > 8) return;
191    
192    function split(str) {
193        str = str.replace(/"/g, '').replace(/%20/g, '');
194        return  str.split(/\s*,\s*/);
195    }
196
197    $('.ig-slider .ig-slide-item').each(function () {
198        var bgs = split($(this).css('background-image'));
199        // needs to use the last image
200        if (bgs.length > 1) {
201            $(this).css("background-image", bgs[bgs.length - 1]);
202        }
203    });
204});
205
206jQuery(function ($) {
207    "use strict";
208    // ie8
209    if (!$.browser.msie || $.browser.version > 8) return;
210    $('.ig-shapes').css('z-index', 1);
211    
212    // ie7
213    if (!$.browser.msie || $.browser.version > 7) return;
214    var textblockTexts = $('.ig-textblock > div');
215    textblockTexts.each(function () {
216        var tbText = $(this);
217        var valign = tbText.css('vertical-align') ? tbText.css('vertical-align') : 'top';
218        if (valign === 'middle') {
219            var wrapper = tbText.wrap('<div/>').parent();
220            tbText.css({
221                'position': 'relative',
222                'top': '-50%',
223                'height': 'auto'
224            });
225            wrapper.css({
226                'position': 'absolute',
227                'top': '50%'
228            });
229        } else if (valign === 'bottom') {
230            tbText.css({
231                'position': 'absolute',
232                'height': 'auto',
233                'bottom': 0
234            });
235        }
236    });
237});
238
239/* Set wmode=transparent for iframes to show it under the menus, lightboxes etc. */
240jQuery(function ($) {
241    "use strict";
242    $("iframe[src]").each(function () {
243        var iframe = $(this);
244        var src = iframe.attr("src");
245        if (src == "") {
246            return;
247        }
248        if (src.lastIndexOf("?") !== -1) {
249            src += "&amp;wmode=transparent";
250        } else {
251            src += "?wmode=transparent";
252        }
253        iframe.attr("src", src);
254    });
255});
256
257jQuery(function ($) {
258    "use strict";
259    $(window).bind("resize", function () { navigatorResizeHandler($("html").hasClass("responsive")); });
260});
261
262var navigatorResizeHandler = (function ($) {
263    "use strict";
264    return function (responsiveDesign) {
265        if (responsiveDesign) return;
266        $(".ig-slider").each(function () {
267            var slider = $(this);
268            var sliderWidth = slider.width();
269            var nav = slider.siblings(".ig-slidenavigator");
270            if (nav.length) {
271                // left offset
272                var left = nav.attr("data-left");
273                // (margin = containerWidth - (objectPosition + objectWidth)) < 0
274                var margin = sliderWidth - sliderWidth * parseFloat(left) / 100 - nav.outerWidth(false);
275                if (margin < 0) {
276                    nav.css("margin-left", margin);
277                }
278            }
279        });
280    };
281})(jQuery);
282jQuery(function($) {
283    "use strict";
284    $('nav.ig-nav').addClass("desktop-nav");
285});
286
287
288jQuery(function ($) {
289    "use strict";
290    if (!$.browser.msie || parseInt($.browser.version, 10) > 7) {
291        return;
292    }
293    $('ul.ig-hmenu>li:not(:first-child)').each(function () { $(this).prepend('<span class="ig-hmenu-separator"> </span>'); });
294});
295
296jQuery(function ($) {
297    "use strict";
298    $("ul.ig-hmenu a:not([href])").attr('href', '#').click(function (e) { e.preventDefault(); });
299});
300
301
302jQuery(function ($) {
303    "use strict";
304    if (!$.browser.msie) {
305        return;
306    }
307    var ieVersion = parseInt($.browser.version, 10);
308    if (ieVersion > 7) {
309        return;
310    }
311
312    /* Fix width of submenu items.
313    * The width of submenu item calculated incorrectly in IE6-7. IE6 has wider items, IE7 dis
313play items like stairs.
314    */
315    $.each($("ul.ig-hmenu ul"), function () {
316        var maxSubitemWidth = 0;
317        var submenu = $(this);
318        var subitem = null;
319        $.each(submenu.children("li").children("a"), function () {
320            subitem = $(this);
321            var subitemWidth = subitem.outerWidth(false);
322            if (maxSubitemWidth < subitemWidth) {
323                maxSubitemWidth = subitemWidth;
324            }
325        });
326        if (subitem !== null) {
327            var subitemBorderLeft = parseInt(subitem.css("border-left-width"), 10) || 0;
328            var subitemBorderRight = parseInt(subitem.css("border-right-width"), 10) || 0;
329            var subitemPaddingLeft = parseInt(subitem.css("padding-left"), 10) || 0;
330            var subitemPaddingRight = parseInt(subitem.css("padding-right"), 10) || 0;
331            maxSubitemWidth -= subitemBorderLeft + subitemBorderRight + subitemPaddingLeft + subitemPaddingRight;
332            submenu.children("li").children("a").css("width", maxSubitemWidth + "px");
333        }
334    });
335});
336jQuery(function () {
337    "use strict";
338    setHMenuOpenDirection({
339        container: "div.ig-sheet",
340        defaultContainer: "#ig-main",
341        menuClass: "ig-hmenu",
342        leftToRightClass: "ig-hmenu-left-to-right",
343        rightToLeftClass: "ig-hmenu-right-to-left"
344    });
345});
346
347var setHMenuOpenDirection = (function ($) {
348    "use strict";
349    return (function(menuInfo) {
350        var defaultContainer = $(menuInfo.defaultContainer);
351        defaultContainer = defaultContainer.length > 0 ? defaultContainer = $(defaultContainer[0]) : null;
352
353        $("ul." + menuInfo.menuClass + ">li>ul").each(function () {
354            var submenu = $(this);
355
356            var submenuWidth = submenu.outerWidth(false);
357            var submenuLeft = submenu.offset().left;
358
359            var mainContainer = submenu.parents(menuInfo.container);
360            mainContainer = mainContainer.length > 0 ? mainContainer = $(mainContainer[0]) : null;
361
362            var container = mainContainer || defaultContainer;
363            if (container !== null) {
364                var containerLeft = container.offset().left;
365                var containerWidth = container.outerWidth(false);
366
367                if (submenuLeft + submenuWidth >= containerLeft + containerWidth) {
368                    /* right to left */
369                    submenu.addClass(menuInfo.rightToLeftClass).find("ul").addClass(menuInfo.rightToLeftClass);
370                } else if (submenuLeft <= containerLeft) {
371                    /* left to right */
372                    submenu.addClass(menuInfo.leftToRightClass).find("ul").addClass(menuInfo.leftToRightClass);
373                }
374            }
375        });
376    });
377})(jQuery);
378
379
380jQuery(window).bind("resize", (function ($) {
381    /*global responsiveDesign */
382    "use strict";
383    return function () {
384        if (typeof responsiveDesign !== "undefined" && responsiveDesign.isResponsive)
385            return;
386        var sheetLeft = $(".ig-sheet").offset().left;
387        $("header.ig-header #ig-flash-area").each(function () {
388            var object = $(this);
389            object.css("left", sheetLeft + "px");
390        });
391    };
392})(jQuery));
393
394jQuery(function ($) {
395    'use strict';
396
397    if ($.browser.msie && parseInt($.browser.version, 10) < 8) {
398        $(window).bind('resize', function() {
399            var c = $('div.ig-content');
400            var s = c.parent().children('.ig-layout-cell:not(.ig-content)');
401            var w = 0;
402            c.hide();
403            s.each(function() { w += $(this).outerWidth(true); });
404            c.w = c.parent().width(); c.css('width', c.w - w + 'px');
405            c.show();
406        });
407    }
408
409    $(window).trigger('resize');
410});
411
412jQuery(function($) {
413    "use strict";
414    if (!$('html').hasClass('ie7')) {
415        return;
416    }
417    $('ul.ig-vmenu li:not(:first-child),ul.ig-vmenu li li li:first-child,ul.ig-vmenu>li>ul').each(function () { $(this).append('<div class="ig-vmenu-separator"> </div><div class="ig-vmenu-separator-bg"> </div>'); });
418});
419jQuery(function() {
420    "use strict";
421    setOpenSubmenuWithHover({vMenuClass: "ig-vmenu", activeClass: "active", hoveredClass: "hovered"});
422});
423
424(function ($) {
425    "use strict";
426    $.fn.hoverIntent = function (f, g) {
427        var cfg = {
428            sensitivity: 7,
429            interval: 100,
430            timeout: 0
431        };
432        cfg = $.extend(cfg, g ? {
433            over: f,
434            out: g
435        } : f);
436        var cX, cY, pX, pY;
437        var track = function (ev) {
438                cX = ev.pageX;
439                cY = ev.pageY
440            };
441        var compare = function (ev, ob) {
442                ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
443                if ((Math.abs(pX - cX) + Math.abs(pY - cY)) < cfg.sensitivity) {
444                    $(ob).unbind("mousemove", track);
445                    ob.hoverIntent_s = 1;
446                    return cfg.over.apply(ob, [ev])
447                } else {
448                    pX = cX;
449                    pY = cY;
450                    ob.hoverIntent_t = setTimeout(function () {
451                        compare(ev, ob)
452                    }, cfg.interval)
453                }
454            };
455        var delay = function (ev, ob) {
456                ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
457                ob.hoverIntent_s = 0;
458                return cfg.out.apply(ob, [ev])
459            };
460        var handleHover = function (e) {
461                var ev = $.extend({}, e);
462                var ob = this;
463                if (ob.hoverIntent_t) {
464                    ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t)
465                }
466                if (e.type == "mouseenter") {
467                    pX = ev.pageX;
468                    pY = ev.pageY;
469                    $(ob).bind("mousemove", track);
470                    if (ob.hoverIntent_s != 1) {
471                        ob.hoverIntent_t = setTimeout(function () {
472                            compare(ev, ob)
473                        }, cfg.interval)
474                    }
475                } else {
476                    $(ob).unbind("mousemove", track);
477                    if (ob.hoverIntent_s == 1) {
478                        ob.hoverIntent_t = setTimeout(function () {
479                            delay(ev, ob)
480                        }, cfg.timeout)
481                    }
482                }
483            };
484        return this.bind('mouseenter', handleHover).bind('mouseleave', handleHover)
485    }
486})(jQuery);
487
488var setOpenSubmenuWithHover = (function ($) {
489    "use strict";
490    return (function(vMenuInfo) {
491        $("ul." + vMenuInfo.vMenuClass + " li").each(function () {
492            var item = $(this);
493            var simple = item.children("ul").length === 0;
494            if (!simple) {
495                item.children("a").hoverIntent({interval: 200, over: function() {
496                    var link = $(this);
497                    hideVMenuSubmenus(link, vMenuInfo.activeClass);
498                    showVMenuSubmenu(link, vMenuInfo.activeClass, vMenuInfo.hoveredClass, false);
499                }, out: function () { }});
500            }
501            item.children("a").bind("click", function(e) {
502                var link = $(this);
503                hideVMenuSubmenus(link, vMenuInfo.activeClass);
504                showVMenuSubmenu(link, vMenuInfo.activeClass, vMenuInfo.hoveredClass, simple);
505            });
506        });
507    });
508})(jQuery);
509
510var showVMenuSubmenu = (function ($) {
511    "use strict";
512    return (function(link, activeClass, hoveredClass, simple) {
513        if (simple) {
514            if (!link.hasClass(activeClass)) {
515                link.addClass(activeClass);
516            }
517            return;
518        }
519        if (!link.hasClass(activeClass)) {
520            link.siblings("ul").slideDown("fast", function() {
521                $(this).siblings("a").removeClass(hoveredClass);
522                $(this).addClass(activeClass).siblings("a").addClass(activeClass);
523                $(this).css("display", "");
524            });
525        }
526    });
527})(jQuery);
528
529var hideVMenuSubmenus = (function ($) {
530    "use strict";
531    return (function(link, activeClass) {
532        link.parent().siblings().children("ul." + activeClass).slideUp(function() {
533            $(this).find("a, ul").removeClass(activeClass);
534            $(this).removeClass(activeClass).siblings("a").removeClass(activeClass);
535            $(this).css("display", "");
536        });
537        link.parent().siblings().children("a." + activeClass).removeClass(activeClass);
538    });
539})(jQuery);
540
541
542var artButtonSetup = (function ($) {
543    'use strict';
544    return (function (className) {
545        $.each($("a." + className + ", button." + className + ", input." + className), function (i, val) {
546            var b = $(val);
547            if (!b.hasClass('ig-button')) {
548                b.addClass('ig-button');
549            }
550            if (b.is('input')) {
551                b.val(b.val().replace(/^\s*/, '')).css('zoom', '1');
552            }
553            b.mousedown(function () {
554                var b = $(this);
555                b.addClass("active");
556            });
557            b.mouseup(function () {
558                var b = $(this);
559                if (b.hasClass('active')) {
560                    b.removeClass('active');
561                }
562            });
563            b.mouseleave(function () {
564                var b = $(this);
565                if (b.hasClass('active')) {
566                    b.removeClass('active');
567                }
568            });
569        });
570    });
571})(jQuery);
572jQuery(function () {
573    'use strict';
574    artButtonSetup("ig-button");
575});
576
577jQuery(function($) {
578    'use strict';
579    $('input.ig-search-button, form.ig-search input[type="submit"]').attr('value', '');
580});
581
582var Control = (function ($) {
583    'use strict';
584    return (function () {
585        this.init = function(label, type, callback) {
586            var chAttr = label.find('input[type="' +type + '"]').attr('checked');
587            if (chAttr === 'checked') {
588              label.addClass('ig-checked');
589            }
590
591            label.mouseleave(function () {
592              $(this).removeClass('hovered').removeClass('active');
593            });
594            label.mouseover(function () {
595              $(this).addClass('hovered').removeClass('active');
596            });
597            label.mousedown(function (event) {
598              if (event.which !== 1) {
599                  return;
600              }
601              $(this).addClass('active').removeClass('hovered');
602            });
603            label.mouseup(function (event) {
604              if (event.which !== 1) {
605                  return;
606              }
607              callback.apply(this);
608              $(this).removeClass('active').addClass('hovered');
609            });
610        };
611    });
612})(jQuery);
613
614
615jQuery(function ($) {
616    'use strict';
617    $('.ig-pager').contents().filter(
618        function () {
619            return this.nodeType === this.TEXT_NODE;
620        }
621    ).remove();
622});
623var fixRssIconLineHeight = (function ($) {
624    "use strict";
625    return function (className) {
626        $("." + className).css("line-height", $("." + className).height() + "px");
627    };
628})(jQuery);
629
630jQuery(function ($) {
631    "use strict";
632    var rssIcons = $(".ig-rss-tag-icon");
633    if (rssIcons.length){
634        fixRssIconLineHeight("ig-rss-tag-icon");
635        if ($.browser.msie && parseInt($.browser.version, 10) < 9) {
636            rssIcons.each(function () {
637                if ($.trim($(this).html()) === "") {
638                    $(this).css("vertical-align", "middle");
639                }
640            });
641        }
642    }
643});
644/**
645* @license 
646* jQuery Tools 1.2.6 Mousewheel
647* 
648* NO COPYRIGHTS OR LICENSES. DO WHAT YOU LIKE.
649* 
650* http://flowplayer.org/tools/toolbox/mousewheel.html
651* 
652* based on jquery.event.wheel.js ~ rev 1 ~ 
653* Copyright (c) 2008, Three Dub Media
654* http://threedubmedia.com 
655*
656* Since: Mar 2010
657* Date:  
658*/
659(function ($) {
660    'use strict';
661    $.fn.mousewheel = function (fn) {
662        return this[fn ? "bind" : "trigger"]("wheel", fn);
663    };
664
665    // special event config
666    $.event.special.wheel = {
667        setup: function () {
668            $.event.add(this, wheelEvents, wheelHandler, {});
669        },
670        teardown: function () {
671            $.event.remove(this, wheelEvents, wheelHandler);
672        }
673    };
674
675    // events to bind ( browser sniffed... )
676    var wheelEvents = !$.browser.mozilla ? "mousewheel" : // IE, opera, safari
677        "DOMMouseScroll" + ($.browser.version < "1.9" ? " mousemove" : ""); // firefox
678
679    // shared event handler
680    function wheelHandler(event) {
681        /*jshint validthis:true*/
682        
683        switch (event.type) {
684
685            // FF2 has incorrect event positions
686            case "mousemove":
687                return $.extend(event.data, { // store the correct properties
688                    clientX: event.clientX, clientY: event.clientY,
689                    pageX: event.pageX, pageY: event.pageY
690                });
691
692                // firefox
693            case "DOMMouseScroll":
694                $.extend(event, event.data); // fix event properties in FF2
695                event.delta = -event.detail / 3; // normalize delta
696                break;
697
698            // IE, opera, safari
699            case "mousewheel":
700                event.delta = event.wheelDelta / 120;
701                break;
702        }
703
704        event.type = "wheel"; // hijack the event
705        return $.event.handle.call(this, event, event.delta);
706    }
707
708})(jQuery);
709
710
711var ThemeLightbox = (function ($) {
712    'use strict';
713    return (function () {
714        var current;
715        var images = $(".ig-lightbox");
716
717        this.init = function (ctrl) {
718            $(".ig-lightbox").live("click", { _ctrl: ctrl }, function (e) {
719
720                if (e.data._ctrl === true && !e.ctrlKey) {
721                    return;
722                }
723                
724                reload();
725                current = images.index(this);
726                show(this);
727            });
728
729            $(".ig-lightbox-wrapper .arrow.left:not(.disabled)").live("click", function () {
730                move(current - 1);
731            });
732
733            $(".ig-lightbox-wrapper .arrow.right:not(.disabled)").live("click", function () {
734                move(current + 1);
735            });
736
737            $(".ig-lightbox-wrapper .active").live("click", function () {
738                move(current + 1);
739            });
740
741            $(".ig-lightbox-wrapper .close").live("click", function () {
742                close();
743            });
744        };
745
746        function show(src) {
747            var closeBtn = $('<div class="close"><div class="cw"> </div><div class="ccw"> </div><div class="close-alt">&#10007;</div></div>')
748                .click(close);
749
750            var imgContainer = $('.ig-lightbox-wrapper');
751            if (imgContainer.length === 0) {
752                imgContainer = $('<div class="ig-lightbox-wrapper">').css('line-height', $(window).height() + "px")
753                    .appendTo($("body"));
754            }
755            
756            var img = $('<img class="ig-lightbox-image active" src="' + getFullImgSrc($(src).attr("src")) + '">');
757            img.appendTo(imgContainer);
758
759            showArrows();
760            closeBtn.appendTo(imgContainer);
761            showLoader(true);
762
763            img.load(function () {
764                showLoader(false);
765            });
766
767            img.error(function () {
768                showLoader(false);
769                img.attr("src", $(src).attr("src"));
770            });
771
772            bindMouse($(".ig-lightbox-wrapper .arrow").add(img).add(imgContainer));
773        }
774
775        function reload() {
776            images = $(".ig-lightbox");
777        }
778
779        function move(index) {
780            if (index < 0 || index >= images.length) {
781                return;
782            }
783
784            showError(false);
785
786            current = index;
787
788            $(".ig-lightbox-wrapper .ig-lightbox-image:not(.active)").remove();
789
790            var active = $(".ig-lightbox-wrapper .active");
791            var target = $('<img class="ig-lightbox-image" alt="" src="' + getFullImgSrc($(images[current]).attr("src")) + '" />');
792
793            active.after(target);
794
795            showArrows();
796            showLoader(true);
797
798            bindMouse($(".ig-lightbox-wrapper").add(target));
799
800            target.load(function () {
801                showLoader(false);
802
803                active.removeClass("active");
804                target.addClass("active");
805            });
806
807            target.error(function () {
808                showLoader(false);
809                active.removeClass("active");
810                target.addClass("active");
811                target.attr("src", $(images[current]).attr("src"));
812            });
813        }
814
815        function showArrows() {
816            if ($(".ig-lightbox-wrapper .arrow").length === 0) {
817                $(".ig-lightbox-wrapper").append($('<div class="arrow left"><div class="arrow-t ccw"> </div><div class="arrow-b cw"> </div><div class="arrow-left-alt">&#8592;</div></div>').css("top", $(window).height() / 2 - 40));
818                $(".ig-lightbox-wrapper").append($('<div class="arrow right"><div class="arrow-t cw"> </div><div class="arrow-b ccw"> </div><div class="arrow-right-alt">&#8594;</div></div>').css("top", $(window).height() / 2 - 40));
819            }
820
821            if (current === 0) {
822                $(".ig-lightbox-wrapper .arrow.left").addClass("disabled");
823            } else {
824                $(".ig-lightbox-wrapper .arrow.left").removeClass("disabled");
825            }
826
827            if (current === images.length - 1) {
828                $(".ig-lightbox-wrapper .arrow.right").addClass("disabled");
829            } else {
830                $(".ig-lightbox-wrapper .arrow.right").removeClass("disabled");
831            }
832        }
833
834        function showError(enable) {
835            if (enable) {
836                $(".ig-lightbox-wrapper").append($('<div class="lightbox-error">Der angeforderte Inhalt kann nicht geladen werden. <br/>Bitte später noch einmal versuchen.</div>')
837                        .css({ "top": $(window).height() / 2 - 60, "left": $(window).width() / 2 - 170 }));
838            } else {
839                $(".ig-lightbox-wrapper .lightbox-error").remove();
840            }
841        }
842
843        function showLoader(enable) {
844            if (!enable) {
845                $(".ig-lightbox-wrapper .loading").remove();
846            }
847            else {
848                $('<div class="loading"> </div>').css({ "top": $(window).height() / 2 - 16, "left": $(window).width() / 2 - 16 }).appendTo($(".ig-lightbox-wrapper"));
849            }
850        }
851
852        var close = function () {
853            $(".ig-lightbox-wrapper").remove();
854        };
855
856        function bindMouse(img) {
857            img.unbind("wheel").mousewheel(function (event, delta) {
858                delta = delta > 0 ? 1 : -1;
859                move(current + delta);
860                event.preventDefault();
861            });
862
863            img.mousedown(function (e) {
864                // close on middle button click
865                if (e.which === 2) {
866                    close();
867                }
868                e.preventDefault();
869            });
870        }
871
872        function getFullImgSrc(src) {
873            var fileName = src.substring(0, src.lastIndexOf('.'));
874            var ext = src.substring(src.lastIndexOf('.'));
875            src = fileName + "-large" + ext;
876
877            return src;
878        }
879
880    });
881})(jQuery);
882
883jQuery(function () {
884    'use strict';
885    new ThemeLightbox().init();
886});
887
888(function($) {
889    'use strict';
890    // transition && transitionEnd && browser prefix
891    $.support.transition = (function() {
892        var thisBody = document.body || document.documentElement,
893            thisStyle = thisBody.style,
894            support = thisStyle.transition !== undefined ||
895                thisStyle.WebkitTransition !== undefined ||
896                thisStyle.MozTransition !== undefined ||
897                thisStyle.MsTransition !== undefined ||
898                thisStyle.OTransition !== undefined;
899        return support && {
900            event: (function() {
901                var e = "transitionend";
902                if ($.browser.opera) {
903                    var version = parseFloat($.browser.version);
904                    e = version >= 12 ? (version < 12.50 ? "otransitionend" : "transitionend") : "oTransitionEnd";
905                } else if ($.browser.webkit) {
906                    e = "webkitTransitionEnd";
907                }
908                return e;
909            })(),
910            prefix: (function() {
911                var result;
912                $.each($.browser, function(key, value) {
913                    if (key === "version") {
914                        return true;
915                    }
916                    return (result = {
917                        opera: "-o-",
918                        mozilla: "-moz-",
919                        webkit: "-webkit-",
920                        msie: "-ms-"
921                    }[key]) ? false : true;
922                });
923                return result || "";
924            })()
925        };
926    })();
927
928    window.BackgroundHelper = function () {
929        var slides = [];
930        var direction = "next";
931        var motion = "horizontal";
932        var width = 0;
933        var height = 0;
934        var multiplier = 1;
935        var transitionDuration = "";
936
937        this.init = function(motionType, dir, duration) {
938            direction = dir;
939            motion = motionType;
940            slides = [];
941            width = 0;
942            height = 0;
943            multiplier = 1;
944            transitionDuration = duration;
945        };
946
947        this.processSlide = function(element, modify) {
948            this.updateSize(element, null);
949            var pos = [];
950
951            var bgPosition = element.css("background-position");
952            var positions = bgPosition.split(",");
953            $.each(positions, function (i) {
954                var position = $.trim(this);
955                var point = position.split(" ");
956                if (point.length > 1) {
957                    var x = parseInt(point[0], 10);
958                    var y = parseInt(point[1], 10);
959                    pos.push({ x: x, y: y });
960                }
961            });
962
963            slides.push({
964                "images": element.css("background-image"),
965                "sizes": element.css("background-size"),
966                "positions": pos
967            });
968            
969            if (modify)
970                element.css("background-image", "none");
971        };
972        
973        this.updateSize = function (element, initialSize) {
974            width = element.outerWidth(false);
975            height = element.outerHeight();
976            if (initialSize && parseInt(initialSize.width, 10) !== 0) {
977                multiplier = width / initialSize.width;
978                if (motion === "fade") {
979                    $.each(element.children(), function (i) {
980                        $(this).css("background-position", getCssPositions(slides[i].positions, { x: 0, y: 0 }));
981                    });
982                }
983            }
984        };
985
986        this.setBackground = function(element, items) {
987            var bg = [];
988            var sizes = [];
989            $.each(items, function (i, o) {
990                bg.push(o.images);
991                sizes.push(o.sizes);
992            });
993            element.css({
994                "background-image": bg.join(", "),
995                "background-size": sizes.join(", "),
996                "background-repeat": "no-repeat"
997            });
998        };
999
1000        this.setPosition = function(element, items) {
1001            var pos = [];
1002            $.each(items, function(i, o) {
1003                pos.push(o.positions);
1004            });
1005            element.css({
1006                "background-position": pos.join(", ")
1007            });
1008        };
1009
1010        this.current = function(index) {
1011            return slides[index] || null;
1012        };
1013
1014        this.next = function(index) {
1015            var next;
1016            if (direction === "next") {
1017                next = (index + 1) % slides.length;
1018            } else {
1019                next = index - 1;
1020                if (next < 0) {
1021                    next = slides.length - 1;
1022                }
1023            }
1024            return slides[next];
1025        };
1026
1027        this.items = function(prev, next, move) {
1028            var prevItem = { x: 0, y: 0 };
1029            var nextItem = { x: 0, y: 0 };
1030            var isDirectionNext = direction === "next";
1031            if (motion === "horizontal") {
1032                nextItem.x = isDirectionNext ? width : -width;
1033                nextItem.y = 0;
1034                if (move) {
1035                    prevItem.x += isDirectionNext ? -width : width;
1036                    nextItem.x += isDirectionNext ? -width : width;
1037                }
1038            } else if (motion === "vertical") {
1039                nextItem.x = 0;
1040                nextItem.y = isDirectionNext ? height : -height;
1041                if (move) {
1042                    prevItem.y += isDirectionNext ? -height : height;
1043                    nextItem.y += isDirectionNext ? -height : height;
1044                }
1045            }
1046            var result = [ ];
1047            if (!!prev) {
1048                result.push({ images: prev.images, positions: getCssPositions(prev.positions, prevItem), sizes: prev.sizes });
1049            }
1050            if (!!next) {
1051                result.push({ images: next.images, positions: getCssPositions(next.positions, nextItem), sizes: next.sizes });
1052            }
1053            
1054            if (direction === "next") {
1055                result.reverse();
1056            }
1057
1058            return result;
1059        };
1060
1061        this.transition = function(container, on) {
1062            container.css($.support.transition.prefix + "transition", on ? transitionDuration + " ease-in-out background-position" : "");
1063        };
1064        
1065        function getCssPositions(positions, offset) {
1066            var result = [];
1067            if (positions === undefined) {
1068                return "";
1069            }
1070            offset.x = offset.x || 0;
1071            offset.y = offset.y || 0;
1072            for (var i = 0; i < positions.length; i++) {
1073                result.push((positions[i].x * multiplier + offset.x) + "px " + (positions[i].y * multiplier + offset.y) + "px");
1074            }
1075            return result.join(", ");
1076        }
1077    };
1078
1079
1080    var Slider = function (element, settings) {
1081
1082        var interval = null;
1083        var active = false;
1084        var children = element.find(".active").parent().children();
1085        var last = false;
1086        var running = false;
1087
1088        this.settings = $.extend({ }, {
1089            "animation": "horizontal",
1090            "direction": "next",
1091            "speed": 600,
1092            "pause": 2500,
1093            "auto": true,
1094            "repeat": true,
1095            "navigator": null,
1096            "clickevents": true,
1097            "hover": true,
1098            "helper": null
1099        }, settings);
1100
1101        this.move = function (direction, next) {
1102            var activeItem = element.find(".active"),
1103                nextItem = next || activeItem[direction](),
1104                innerDirection = this.settings.direction === "next" ? "forward" : "back",
1105                reset = direction === "next" ? "first" : "last",
1106                moving = interval,
1107                slider = this, tmp;
1108
1109            active = true;
1110
1111            if (moving) { this.stop(true); }
1112
1113            if (!nextItem.length) {
1114                nextItem = element.find(".ig-slide-item")[reset]();
1115                if (!this.settings.repeat) { last = true; active = false; return; }
1116            }
1117
1118            if ($.support.transition) {
1119                nextItem.addClass(this.settings.direction);
1120                tmp = nextItem.get(0).offsetHeight;
1121                
1122                activeItem.addClass(innerDirection);
1123                nextItem.addClass(innerDirection);
1124                
1125                element.trigger("beforeSlide", children.length);
1126                
1127                element.one($.support.transition.event, function () {
1128                    nextItem.removeClass(slider.settings.direction)
1129                        .removeClass(innerDirection)
1130                        .addClass("active");
1131                    activeItem.removeClass("active")
1132                        .removeClass(innerDirection);
1133                    active = false;
1134                    setTimeout(function () {
1135                        element.trigger("afterSlide", children.length);
1136                    }, 0);
1137                });
1138            } else {
1139                element.trigger("beforeSlide", children.length);
1140                
1141                activeItem.removeClass("active");
1142                nextItem.addClass("active");
1143                active = false;
1144                
1145                element.trigger("afterSlide", children.length);
1146            }
1147
1148            this.navigate(nextItem);
1149
1150            if (moving) { this.start(); }
1151        };
1152
1153        this.navigate = function (position) {
1154            var index = children.index(position);
1155            $(this.settings.navigator).children().removeClass("active").eq(index).addClass("active");
1156        };
1157
1158        this.to = function (index) {
1159            var activeItem = element.find(".active"),
1160                children = activeItem.parent().children(),
1161                activeIndex = children.index(activeItem),
1162                slider = this;
1163
1164            if (index > (children.length - 1) || index < 0) {
1165                return;
1166            }
1167
1168            if (active) {
1169                return element.one("afterSlide", function () {
1170                    slider.to(index);
1171                });
1172            }
1173            
1174            if (activeIndex === index) {
1175                return;
1176            }
1177
1178            this.move(index > activeIndex ? "next" : "prev", $(children[index]));
1179        };
1180
1181        this.next = function () {
1182            if (!active) {
1183                if (last) { this.stop(); return;  }
1184                this.move("next");
1185            }
1186        };
1187
1188        this.prev = function () {
1189            if (!active) {
1190                if (last) { this.stop(); return; }
1191                this.move("prev");
1192            }
1193        };
1194
1195        this.start = function (force) {
1196            if (!!force) {
1197                setTimeout($.proxy(this.next, this), 10);
1198            }
1199            interval = setInterval($.proxy(this.next, this), this.settings.pause);
1200            running = true;
1201        };
1202
1203        this.stop = function (pause) {
1204            clearInterval(interval);
1205            interval = null;
1206            running = !!pause;
1207            active = false;
1208        };
1209
1210        this.active = function () {
1211            return running;
1212        };
1213
1214        this.moving = function () {
1215            return active;
1216        };
1217        
1218        this.navigate(children.filter(".active"));
1219
1220        if (this.settings.clickevents) {
1221            $(this.settings.navigator).on("click", "a", { slider: this }, function (event) {
1222                var activeIndex = children.index(children.filter(".active"));
1223                var index = $(this).parent().children().index($(this));
1224                if (activeIndex !== index) {
1225                    event.data.slider.to(index);
1226                }
1227                event.preventDefault();
1228            });
1229        }
1230        
1231        if (this.settings.hover) {
1232            var slider = this;
1233            element.add(this.settings.navigator)
1234                   .add(element.siblings(".ig-shapes")).hover(function () {
1235                if (element.is(":visible") && !last) { slider.stop(true); }
1236            }, function () {
1237                if (element.is(":visible") && !last) { slider.start(); }
1238            });
1239        }
1240    };
1241
1242    $.fn.slider = function (arg) {
1243        return this.each(function () {
1244            var element = $(this),
1245                data = element.data("slider"),
1246                options = typeof arg === "object" && arg;
1247
1248            if (!data) {
1249                data = new Slider(element, options);
1250                element.data("slider", data);
1251            }
1252            
1253            if (typeof arg === "string" && data[arg]) {
1254                data[arg]();
1255            } else if (data.settings.auto && element.is(":visible")) {
1256                data.start();
1257            }
1258        });
1259    };
1260
1261})(jQuery);
1262
1263
1264
1265
1266jQuery(function($) {
1267    'use strict';
1268    if ($.fn.slider) {
1269        $(".ig-slidecontainerheader").each(function () {
1270            var slideContainer = $(this), tmp;
1271            var inner = $(".ig-slider-inner", slideContainer);
1272            var helper = null;
1273
1274            if ($.support.transition) {
1275                helper = new BackgroundHelper();
1276                helper.init("fade", "next", $(".ig-slide-item", inner).first().css($.support.transition.prefix + "transition-duration"));
1277                inner.children().each(function () {
1278                    helper.processSlide($(this));
1279                });
1280
1281            }
1282
1283
1284            inner.children().eq(0).addClass("active");
1285            slideContainer.slider({
1286                pause: 2000,
1287                speed: 1000,
1288                repeat: true,
1289                animation: "fade",
1290                direction: "next",
1291                navigator: slideContainer.siblings(".ig-slidenavigatorheader"),
1292                helper: helper                
1293            });
1294        });
1295    }
1296});
1297jQuery(function ($) {
1298    "use strict";
1299    if (!$.browser.msie || parseInt($.browser.version, 10) > 8)
1300        return;
1301    var path = "";
1302    var scripts = $("script[src*='script.js']");
1303    if (scripts.length > 0) {
1304        var src = scripts.last().attr('src');
1305        path = src.substr(0, src.indexOf("script.js"));
1306    }
1307    processHeaderMultipleBg(path);
1308});
1309
1310var processHeaderMultipleBg = (function ($) {
1311    "use strict";
1312    return (function (path) {
1313        var header = $(".ig-header");
1314        var bgimages = "".split(",");
1315        var bgpositions = "".split(",");
1316        for (var i = bgimages.length - 1; i >= 0; i--) {
1317            var bgimage = $.trim(bgimages[i]);
1318            if (bgimage === "")
1319                continue;
1320            if (path !== "") {
1321                bgimage = bgimage.replace(/(url\(['"]?)/i, "$1" + path);
1322            }
1323            header.append("<div style=\"position:absolute;top:0;left:0;width:100%;height:100%;background:" + bgimage + " " + bgpositions[i] + " no-repeat\">");
1324        }
1325        header.css('background-image', "none".replace(/(url\(['"]?)/i, "$1" + path));
1326        header.css('background-position', "0 0");
1327    });
1328})(jQuery);
1329
1330(function ($) {
1331    'use strict';
1332
1333    /*global jQuery, artButtonSetup */
1334
1335    $(function () {
1336        artButtonSetup("btn-primary");
1337        artButtonSetup("button");
1338        artButtonSetup("readon");
1339        artButtonSetup("readmore");
1340    });
1341
1342    $(function ($) {
1343        var links = $('a.ig-rss-tag-icon[href="#"], a.ig-rss-tag-icon[href=""]'),
1344            href = $('head link[type="application/rss+xml"]').attr('href');
1345        if (href) {
1346            links.attr('href', href);
1347        } else {
1348            links.hide();
1349        }
1350    });
1351
1352    $(function ($) {
1353        $('.ig-messages').each(function () {
1354            $(this).css('display', $(this).find('dl').length ? '' : 'none');
1355        });
1356    });
1357
1358    $(function ($) {
1359        $('.ig-search-button').each(function (i, val) {
1360            var element = $(val),
1361                background = element.css('background-image');
1362
1363            if (-1 !== background.indexOf('url')) {
1364                element.val('');
1365            }
1366            if (element.hasClass('ig-button')) {
1367                element.removeClass('ig-button');
1368            }
1369        });
1370    });
1371
1372    $(function ($) {
1373        // ie < 9 slider multiple background joomla fix
1374        if (!jQuery.browser.msie || jQuery.browser.version > 8) {
1375            return;
1376        }
1377
1378        var scriptSrc = jQuery('script[src*="script.js"]').last().attr('src'),
1379            pathToImages = scriptSrc.substr(0, scriptSrc.lastIndexOf('/') + 1) + 'images/';
1380
1381        $('.ig-slider .ig-slide-item').each(function () {
1382            var bg = $(this).css('background-image');
1383            if (bg) {
1384                bg = bg.replace(/url\(["'](.+)["']\)/, function (match, path) {
1385                    var imageName = path.substr(path.lastIndexOf('/') + 1);
1386                    return 'url(\'' + pathToImages + imageName + '\')';
1387                });
1388                $(this).css('background-image', bg);
1389            }
1390        });
1391    });
1392
1393}(jQuery));

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.