{"id":17301,"date":"2025-07-12T14:19:36","date_gmt":"2025-07-12T12:19:36","guid":{"rendered":"https:\/\/igr-ev.de\/playground\/"},"modified":"2025-07-12T14:38:32","modified_gmt":"2025-07-12T12:38:32","slug":"playground","status":"publish","type":"page","link":"https:\/\/igr-ev.de\/en\/playground\/","title":{"rendered":"Playground"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"17301\" class=\"elementor elementor-17301 elementor-17289\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ebd471a e-flex e-con-boxed e-con e-parent\" data-id=\"ebd471a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8519d22 elementor-widget elementor-widget-shortcode\" data-id=\"8519d22\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\t<!-- CSS Part Start From Here-->\n\t<style>\t\n\t\n\t* {\n\t\tbox-sizing:border-box;\n\t}\n\n\tspan.hidden {\n\t\tdisplay: none;\n\t}\n\t.filtr-item .img-box { transform: scale3d(0.001, 0.001, 1); } \n\t\n\t.filtr-item .lazyimg  {\n\t\ttransition-property: transform, opacity;\n\t\ttransition-duration: 0.8s;\n\t\ttransform: scale3d(1, 1, 1);\n\t\ttransition-delay: 0.8s;\n\t}\n\tpf_no_more-17286 {\n\t\ttransition-delay: 0.8s;\n\t}\n\t\t\t#all-simplefilter-17286 {\n\t\tdisplay:inline;\n\t\tpadding-left: 0px !important;\n\t}\n\t#f-simplefilter-17286 {\n\t\tdisplay:inline;\n\t\tpadding-left: 0px !important;\n\t}\n\t\n\t.portfolio_wrapper {\n\t\tdirection: ltr;\n\t}\n\t.pf_load_more-17286 {\n\t\ttransition: background .3s linear,color .3s linear,border .3s linear,opacity .3s linear;\n\t\tpadding: 8px 37px;\n\t\tborder: 2px solid #ccc;\n\t\tcolor: #ccc;\n\t}\n\t.pf_load_more-17286:hover {\n\t\tborder-color: #B2B5BC;\n\t\tcolor: #B2B5BC;\n\t}\n\t.la-square-loader {\n\t\tcolor: #ffffff;\n\t}\n\t@keyframes .YouTubePopUp-Content {\n\t\tfrom {\n\t\t\ttransform: translate3d(0, 100%, 0);\n\t\t\tvisibility: visible;\n\t\t}\n\t\tto {\n\t\t\ttransform: translate3d(0, 0, 0);\n\t\t}\n\t}\n\t.YouTubePopUp-Content  {\n\t\tanimation-name: .YouTubePopUp-Content ;\n\t}\n\t.YouTubePopUp-Close {\n\t\tbackground:url(https:\/\/igr-ev.de\/wp-content\/plugins\/portfolio-filter-gallery-premium\/\/img\/close-icon-white.png) no-repeat;\n\t\tbackground-size:50px 50px;\n\t\t-webkit-background-size:70px 50px;\n\t\t-moz-background-size:70px 50px;\n\t\t-o-background-size:70px 50px;\n\t}\n\t\t\/* .simplefilter li {\n\t\tmargin-bottom: 12px;\n\t} *\/\n\t.simplefilter ul li {\n\t\tlist-style: none;\n\t}\n\t\n\t\n\t\n\t\n\t\t\t\/* Filter controls *\/\n\t\t.simplefilter_17286 {\n\t\t\tpadding:0;\n\t\t\tmargin: 20px 0px 20px 0px;\n\t\t}\n\t\t.simplefilter_17286 li {\n\t\t\tcolor: white;\n\t\t\tmargin-bottom: 5px;\n\t\t\tcursor: pointer;\n\t\t\tdisplay: inline-block;\n\t\t\tfont-weight: normal;\n\t\t\tpadding: 5px 20px;\n\t\t\tbackground-color: #d7d7e299;\n\t\t}\n\t\t\n\t\t\t\t\n\t\t.simplefilter_17286 li {\n\t\t\ttransition: background .3s linear,color .3s linear,border .3s linear,opacity .3s linear;\n\t\t\t\t\t}\n\t\t@media only screen and (min-width: 1000px) {\n\t\t\t.simplefilter_17286 li:hover {\n\t\t\t\t\t\t\t}\n\t\t}\n\t\t\t\t.simplefilter_17286 li.active {\n\t\t\tbackground-color:  !important;\n\t\t\tcolor:#FFFFFF !important;\n\t\t}\n\t\t\n\t\t.wrapper-dropdown-5:after {\n\t\tborder-color:  transparent;\n\t}\n\t.wrapper-dropdown-5.active {\n\t\tbackground: ;\n\t}\n\twrapper-dropdown-5 .dropdown li:hover {\n\t\tcolor: ;\n\t}\n\t.wrapper-dropdown-5.active:after {\n\t\tborder-color: #eee transparent;\n\t}\n\t\n\t.wrapper-dropdown-5 .simplefilter_17286 li.active[data-filter] {\n        background-color:  !important;\n        color: #FFFFFF !important;\n    }\n\t\n\t\n\n\t.wrapper-dropdown-5 .simplefilter_17286 li {\n\t\tdisplay: flex !important;\n\t\talign-items: center;\n\t\talign-content: center;\n\t\tgap: 10px;\n\t\tpadding: 1rem !important\n\t}\n\n\t\t\t.filter_gallery_17286 .portfolio_thumbnail {\n\t\t\tborder-radius: 0;\n\t\t\tdisplay: block;\n\t\t\theight: auto !important;\n\t\t\tline-height: 1.42857;\n\t\t\twidth: 100% !important;\n\t\t}\n\t\t\/* thumb spacing *\/\n\t\t.filter_gallery_17286 .col-xs-1, .filter_gallery_17286 .col-sm-1, .filter_gallery_17286 .col-md-1, .filter_gallery_17286 .col-lg-1,\n\t\t.filter_gallery_17286 .col-xs-2, .filter_gallery_17286 .col-sm-2, .filter_gallery_17286 .col-md-2, .filter_gallery_17286 .col-lg-2,\n\t\t.filter_gallery_17286 .col-xs-3, .filter_gallery_17286 .col-sm-3, .filter_gallery_17286 .col-md-3, .filter_gallery_17286 .col-lg-3,\n\t\t.filter_gallery_17286 .col-xs-4, .filter_gallery_17286 .col-sm-4, .filter_gallery_17286 .col-md-4, .filter_gallery_17286 .col-lg-4,\n\t\t.filter_gallery_17286 .col-xs-5, .filter_gallery_17286 .col-sm-5, .filter_gallery_17286 .col-md-5, .filter_gallery_17286 .col-lg-5,\n\t\t.filter_gallery_17286 .col-xs-6, .filter_gallery_17286 .col-sm-6, .filter_gallery_17286 .col-md-6, .filter_gallery_17286 .col-lg-6,\n\t\t.filter_gallery_17286 .col-xs-7, .filter_gallery_17286 .col-sm-7, .filter_gallery_17286 .col-md-7, .filter_gallery_17286 .col-lg-7,\n\t\t.filter_gallery_17286 .col-xs-8, .filter_gallery_17286 .col-sm-8, .filter_gallery_17286 .col-md-8, .filter_gallery_17286 .col-lg-8,\n\t\t.filter_gallery_17286 .col-xs-9, .filter_gallery_17286 .col-sm-9, .filter_gallery_17286 .col-md-9, .filter_gallery_17286 .col-lg-9,\n\t\t.filter_gallery_17286 .col-xs-10, .filter_gallery_17286 .col-sm-10, .filter_gallery_17286 .col-md-10, .filter_gallery_17286 .col-lg-10,\n\t\t.filter_gallery_17286 .col-xs-11, .filter_gallery_17286 .col-sm-11, .filter_gallery_17286 .col-md-11, .filter_gallery_17286 .col-lg-11,\n\t\t.filter_gallery_17286.col-xs-12, .filter_gallery_17286 .col-sm-12, .filter_gallery_17286.col-md-12, .filter_gallery_17286.col-lg-12 {\n\t\t\tpadding-right: 2px !important;\n\t\t\tpadding-left: 2px !important;\n\t\t\tpadding-bottom: 2px !important;\n\t\t\tpadding-top: 2px !important;\n\t\t}\n\t\t\/* title box css*\/\n\t\t.pfg_title_box_17286 {\n\t\t\tposition: relative;\n\t\t\tbackground-color: ;\n\t\t\tpadding: 40px 20px;\n\t\t\tborder: 1px solid #d5d8dd;\n\t\t}\n\t\t.pfg_title_17286 {\n\t\t\tmargin-top: 0;\n\t\t\tfont-size: 20px !important;\n\t\t\tmargin-bottom: 0;\n\t\t\tcolor :  !important;\n\t\t}\n\t\t.pfg_desc_17286 {\n\t\t\tfont-size: 12px;\n\t\t\tcolor: #a4a6ac;\n\t\t}\n\t\t.pfg_desc_more_17286 {\n\t\t\tfloat: right\n\t\t}\n\t\t\/* thumbnail border *\/\n\t\t.thumbnail_17286 {\n\t\t\tborder: px solid  !important;\n\t\t\tpadding: 0px !important;\n\t\t}\n\t\t\t\t\n\t\/* Load Scroll Icon*\/\n\t.load-scroll-block, .no-more-posts {\n\t\topacity:0;\n\t\ttext-align:center;\n\t\tfont-weight: bold;\n\t}\n\t.load-scroll-block.active {\n\t\topacity:1;\n\t}\n\t.no-more-posts.active {\n\t\topacity:1;\n\t}\n\t.lds-ellipsis {\n\t  display: inline-block;\n\t  position: relative;\n\t  width: 80px;\n\t  height: 80px;\n\t}\n\t.lds-ellipsis-17286 div {\n\t  position: absolute;\n\t  top: 33px;\n\t  width: 13px;\n\t  height: 13px;\n\t  border-radius: 50%;\n\t  background: #B2B5BC !important;\n\t  animation-timing-function: cubic-bezier(0, 1, 1, 0);\n\t}\n\t.lds-ellipsis div:nth-child(1) {\n\t  left: 8px;\n\t  animation: lds-ellipsis1 0.6s infinite;\n\t}\n\t.lds-ellipsis div:nth-child(2) {\n\t  left: 8px;\n\t  animation: lds-ellipsis2 0.6s infinite;\n\t}\n\t.lds-ellipsis div:nth-child(3) {\n\t  left: 32px;\n\t  animation: lds-ellipsis2 0.6s infinite;\n\t}\n\t.lds-ellipsis div:nth-child(4) {\n\t  left: 56px;\n\t  animation: lds-ellipsis3 0.6s infinite;\n\t}\n\t@keyframes lds-ellipsis1 {\n\t  0% {\n\t\ttransform: scale(0);\n\t  }\n\t  100% {\n\t\ttransform: scale(1);\n\t  }\n\t}\n\t@keyframes lds-ellipsis3 {\n\t  0% {\n\t\ttransform: scale(1);\n\t  }\n\t  100% {\n\t\ttransform: scale(0);\n\t  }\n\t}\n\t@keyframes lds-ellipsis2 {\n\t  0% {\n\t\ttransform: translate(0, 0);\n\t  }\n\t  100% {\n\t\ttransform: translate(24px, 0);\n\t  }\n\t}\n\t\n\t\t<\/style>\n\t<div id='PortfolioMain' class='portfolio_wrapper pfg-bootstrap' style='' version='7.4.3' data-pfgscrollflage='1'><\/div><script>\n\n<!--\n    (function(jQuery) {\n        \"use strict\";\n\n        \/\/ Global variables (set via PHP)\n        var pfGalleryId = '17286';\n        var pfTotalImages = parseInt();\n        var pfLimit = parseInt(9);\n        var nonce = '0c8b6b602d';\n        var videoAutoPlay = 0;\n        var filterImageData = [];\n        var filterImageDataStr = JSON.stringify(filterImageData);\n        var isMultiFilters = false;\n        var multiFiltersLogic = 'or';\n\n        \/\/ Debounce utility (used for keyup and scroll events)\n        function debounce(func, wait, immediate) {\n            var timeout;\n            return function() {\n                var context = this,\n                    args = arguments;\n                var later = function() {\n                    timeout = null;\n                    if (!immediate) func.apply(context, args);\n                };\n                var callNow = immediate && !timeout;\n                clearTimeout(timeout);\n                timeout = setTimeout(later, wait);\n                if (callNow) func.apply(context, args);\n            };\n        }\n\n        \/\/ Build Filterizr options based on the current filter\n        function getFilterizrOptions(targetFilter) {\n            var options = {\n                callbacks: {\n                    onFilteringStart: function() {},\n                    onFilteringEnd: function() {},\n                    onShufflingStart: function() {},\n                    onShufflingEnd: function() {},\n                    onSortingStart: function() {},\n                    onSortingEnd: function() {}\n                },\n                controlsSelector: '.filtr-controls-' + pfGalleryId,\n                filter: targetFilter,\n                filterOutCss: {\n                    top: '0px',\n                    left: '0px',\n                    opacity: 0.001,\n                    transform: ''\n                },\n                filterInCss: {\n                    top: '0px',\n                    left: '0px',\n                    opacity: 1,\n                    transform: ''\n                },\n                layout: 'sameWidth',\n                selector: '.filtr-item',\n                setupControls: false\n            };\n                        return options;\n        }\n\n        function computeFilterMetrics(targetFilter) {\n            var filterImageLen = 0,\n                numItems = 0;\n            if (targetFilter === 'all') {\n                filterImageLen = pfTotalImages;\n                numItems = jQuery('.all-' + pfGalleryId).length;\n            } else {\n                \/\/ If multifilter AND logic and more than one filter is selected,\n                \/\/ compute the intersection.\n                if (isMultiFilters && multiFiltersLogic === \"and\" && targetFilter.length > 1) {\n                    var arrays = [];\n                    jQuery.each(targetFilter, function(index, key) {\n                        if (filterImageData[key]) {\n                            arrays.push(filterImageData[key]);\n                        }\n                    });\n                    \/\/ Intersection helper function:\n                    function intersection(arrays) {\n                        if (arrays.length === 0) return [];\n                        return arrays.reduce(function(a, b) {\n                            return a.filter(function(x) {\n                                return b.indexOf(x) !== -1;\n                            });\n                        });\n                    }\n                    var inter = intersection(arrays);\n                    filterImageLen = inter.length;\n                    \/\/ Count loaded items by selecting elements that have ALL the filter classes\n                    \/\/ (e.g., for filters [3,4] use '.3.4')\n                    numItems = jQuery('.' + targetFilter.join('.')).length;\n                } else {\n                    \/\/ For OR logic (or a single filter), sum the counts as before.\n                    jQuery.each(targetFilter, function(index, val) {\n                        filterImageLen += filterImageData[val].length;\n                        numItems += jQuery('.' + val).length;\n                    });\n                }\n            }\n            return {\n                filterImageLen: filterImageLen,\n                numItems: numItems\n            };\n        }\n\n        \/\/ Process the AJAX response: insert new items, reinitialize Filterizr, set up lazy images, video popups, lightboxes, etc.\n        function processAjaxResponse(response, targetFilter) {\n            var options = getFilterizrOptions(targetFilter),\n                $filterizd = jQuery('.filter_gallery_' + pfGalleryId).filterizr(options);\n\n            var $node = jQuery(response).find('.pf_result-' + pfGalleryId);\n            $filterizd.filterizr('insertItem', $node).addClass('pfg_animate');\n\n            \/\/ Bind debounced search\n            jQuery('.filtr_search_' + pfGalleryId).off('keyup').on('keyup', debounce(function() {\n                var searchVal = jQuery(this).val().toLowerCase();\n                $filterizd.filterizr('filter', searchVal);\n                $filterizd.filterizr().resize();\n            }, 300));\n\n            $filterizd.filterizr(options).resize();\n            jQuery('.filtr-item .img-box').addClass('lazyimg');\n\n            \/\/ Remove any blank items (if image source is missing)\n            jQuery(\".count_attached-\" + pfGalleryId).each(function() {\n                if (!jQuery(this).val()) {\n                    jQuery(this).parents(\"div.pf_result-\" + pfGalleryId).remove();\n                }\n            });\n\n            setTimeout(function() {\n                jQuery(\".pf_loader-\" + pfGalleryId).hide();\n                jQuery(\".pf_load_more-\" + pfGalleryId).show();\n            }, 800);\n\n            \/\/ Initialize YouTube popup video player\n            jQuery(\"a.bla-2-\" + pfGalleryId).YouTubePopUp({\n                autoplay: videoAutoPlay\n            });\n\n            \/\/ Set lightbox attributes (for LD, Bootstrap, and Swipebox)\n            var lighboxClassName = \"pfg-lightbox-\" + pfGalleryId + \"-\" + targetFilter;\n            jQuery('.pfg-lightbox-' + pfGalleryId + '-' + targetFilter)\n                .attr('data-lightbox', lighboxClassName)\n                .attr('data-gallery', lighboxClassName)\n                .attr('rel', lighboxClassName);\n        }\n\n        \/\/ Unified function for both \"load more\" (button click) and \"load more\" (scroll)\n        \/\/ 'trigger' should be either \"click\" or \"scroll\"\n        \/\/ 'loadType' is used (for example) to check if the button is a \"load all\" button.\n        function loadMoreImages(trigger, loadType) {\n            var targetFilter;\n            if (isMultiFilters) {\n                targetFilter = jQuery('.filtr-control-' + pfGalleryId + ' li.filter-active')\n                    .map(function() {\n                        return jQuery(this).data('multifilter');\n                    })\n                    .get();\n            } else {\n                targetFilter = jQuery('.filtr-control-' + pfGalleryId + ' li.active')\n                    .map(function() {\n                        return jQuery(this).data('filter');\n                    })\n                    .get();\n            }\n            if (targetFilter[0] === 'all' || (Array.isArray(targetFilter) && targetFilter.length === 1 && targetFilter[0] === 'All')) {\n                targetFilter = 'all';\n            }\n\n            \/\/ For AND logic, we could build a combined string (e.g. \"3.4\")\n            \/\/ but since you're sending targetFilter directly, we'll use it as is.\n\n            var metrics = computeFilterMetrics(targetFilter);\n            if (metrics.filterImageLen <= metrics.numItems) {\n                jQuery(\".pf_loader-\" + pfGalleryId).hide();\n                jQuery(\".pf_load_more-\" + pfGalleryId).hide();\n                jQuery(\".pf_no_more-\" + pfGalleryId).show();\n                return;\n            }\n\n            var pfLimitStart = metrics.numItems;\n            var pfLimitEnd = pfLimitStart + pfLimit; \/\/ pfLimit is defined globally\n            if (loadType === 'load_all_button') {\n                pfLimitEnd = pfTotalImages;\n            }\n\n            \/\/ Determine filterImageLens (the array of image IDs for the current batch)\n            var filterImageLens;\n\n\n            filterImageLens = jQuery(\".count_attached-\" + pfGalleryId).map(function() {\n                return jQuery(this).val();\n            }).get();\n\n            var scroll_loader = jQuery('.load-scroll-block');\n            \/\/var scroll_no_post = jQuery('.no-more-posts');\n            scroll_loader.addClass('active');\n            \/\/ scroll_no_post.addClass('active');\n\n            jQuery(\".pf_load_more-\" + pfGalleryId).hide();\n            jQuery(\".pf_loader-\" + pfGalleryId).show();\n\n            \/\/ Since you're using direct concatenation, we send targetFilter directly.\n            jQuery.ajax({\n                dataType: 'html',\n                type: 'POST',\n                url: location.href,\n                cache: false,\n                data: '&pf_security=' + nonce +\n                    '&pf_limit_start=' + pfLimitStart +\n                    '&pf_limit_end=' + pfLimitEnd +\n                    '&targetFilter=' + targetFilter +\n                    '&numItems=' + metrics.numItems +\n                    '&filter_image_lens=' + filterImageLens +\n                    '&filter_image=' + filterImageDataStr,\n                success: function(response) {\n\t\t\t\t\tprocessAjaxResponse(response, targetFilter);\n\t\t\t\t\tif (trigger === \"scroll\") {\n\t\t\t\t\t\tjQuery(\"#PortfolioMain\").attr(\"data-pfgscrollflage\", \"1\");\n\t\t\t\t\t}\n\n\t\t\t\t\t\/\/ --- NEW: after new items\/images are in, force Filterizr to recompute layout ---\n\t\t\t\t\tvar $gallery = jQuery('.filter_gallery_' + pfGalleryId);\n\t\t\t\t\tvar appliedFilter = (targetFilter === 'all' || targetFilter === 'All') ? 'all' : targetFilter;\n\n\t\t\t\t\tif ($gallery.length && typeof $gallery.imagesLoaded === 'function') {\n\t\t\t\t\t\t$gallery.imagesLoaded(function() {\n\t\t\t\t\t\t\t$gallery.filterizr('filter', appliedFilter);\n\t\t\t\t\t\t\t\/\/ optional: ensure parent wrapper grows if needed\n\t\t\t\t\t\t\t$gallery.css('height', 'auto');\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\t\/\/ fallback if imagesLoaded is missing: small delay then re-layout\n\t\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\t\t$gallery.filterizr('filter', appliedFilter);\n\t\t\t\t\t\t\t$gallery.css('height', 'auto');\n\t\t\t\t\t\t}, 400);\n\t\t\t\t\t}\n\t\t\t\t},\n\n                complete: function() {\n                    setTimeout(function() {\n                        jQuery(\".pf_loader-\" + pfGalleryId).hide();\n                        jQuery(\".pf_load_more-\" + pfGalleryId).show();\n                        scroll_loader.removeClass('active');\n                        \/\/scroll_no_post.removeClass('active');\n                    }, 800);\n                }\n            });\n        }\n\n        \/\/ jQuery plugin to check if an element is in the viewport\n        jQuery.fn.isInViewport = function() {\n            var elementTop = jQuery(this).offset().top;\n            var elementBottom = elementTop + jQuery(this).outerHeight();\n            var viewportTop = jQuery(window).scrollTop();\n            var viewportBottom = viewportTop + jQuery(window).height();\n            return elementBottom > viewportTop && elementTop < viewportBottom;\n        };\n\n        \/\/ ----------------- DOCUMENT READY -----------------\n        jQuery(document).ready(function() {\n            \/\/ Delay to allow the default filter to be applied.\n            \/\/ Load deafult filter is active (Not filter cliked)\n            setTimeout(function() {\n                var targetFilter;\n                                    targetFilter = jQuery('.filtr-control-17286 li.active')\n                        .map(function() {\n                            return jQuery(this).data('filter');\n                        }).get();\n                                if (targetFilter[0] === 'all' || (Array.isArray(targetFilter) && targetFilter.length === 1 && targetFilter[0] === 'All')) {\n                    targetFilter = 'all';\n                }\n                var metrics = computeFilterMetrics(targetFilter);\n                if (metrics.numItems === 0 && metrics.filterImageLen > 0) {\n                    loadMoreImages(\"click\", null);\n                }\n            }, 500);\n\n            \/\/ When clicking on any filter control, update the load-more UI after a delay.\n            \/\/ Extra: if no items are loaded (filter is blank), automatically load one page.\n            \n            \/\/ ---------- LOAD MORE BY BUTTON ----------\n            \n            \/\/ ---------- LOAD MORE BY SCROLL ----------\n            \n            \/\/ ---------------- GET FILTER FROM SHORTCODE ----------------\n                                    jQuery(\"#all\").addClass(\"active\");\n                                                jQuery('.fil-head').text('all');\n            \n            \/\/ Adjust thumbnails after a delay\n            setTimeout(function() {\n                jQuery(\".thumbnail_17286\").each(function() {\n                    var h = jQuery(this).height();\n                    var w = jQuery(this).width();\n                    jQuery(this).height(h).width(w).resize();\n                });\n            }, 2500);\n\n            jQuery(\".loader_img\").hide();\n            jQuery(\".lg_load_more\").show();\n            jQuery(\".filtr-container\").css(\"opacity\", 1);\n            jQuery('.filtr-item .img-box').addClass('lazyimg');\n\n            var options = getFilterizrOptions('all');\n            var filterizd = jQuery('.filter_gallery_17286').filterizr(options);\n\n            if (jQuery('.portfolio_wrapper').length <= 1) {\n                jQuery('.filter_gallery_17286').imagesLoaded(function() {\n                    jQuery('.filter_gallery_17286').filterizr(options);\n                });\n            }\n\n            \n            \n            jQuery(\"a.bla-2-\" + pfGalleryId).YouTubePopUp({\n                autoplay: videoAutoPlay\n            });\n\n            \t\t\t\t                \/\/ LD Lightbox Options\n                lightbox.option({\n                    'resizeDuration': 200,\n                    'wrapAround': true,\n                    'showImageNumberLabel': false\n                });\n\t\t\t\t                document.addEventListener('DOMContentLoaded', (event) => {\n                    document.querySelectorAll('.my-lightbox-toggle').forEach((el) => {\n                        el.addEventListener('click', (e) => {\n                            e.preventDefault();\n                            const options = {\n                                keyboard: true,\n                                size: 'fullscreen'\n                            };\n                            if (typeof Lightbox !== 'undefined') {\n                                const lightbox = new Lightbox(el, options);\n                                lightbox.show();\n                            } else {\n                                console.error('Lightbox library is not loaded.');\n                            }\n                        });\n                    });\n                });\n\n                jQuery(document).delegate('*[data-gallery=\"navigateTo\"]', 'click', function(event) {\n                    event.preventDefault();\n                    var lb;\n                    return jQuery(this).ekkoLightbox({\n                        onShown: function() {\n                            lb = this;\n                            jQuery(lb.modal_content).on('click', '.modal-footer a', function(e) {\n                                e.preventDefault();\n                                lb.navigateTo(2);\n                            });\n                        }\n                    });\n                });\n\n                                    jQuery('.filtr-control-17286 [data-filter]').click(function() {\n                        var targetFilter = jQuery(this).data('filter');\n                        var lighboxClassName = \"pfg-lightbox-17286-\" + targetFilter;\n                        jQuery('.pfg-lightbox-17286-' + targetFilter)\n                            .attr('data-lightbox', lighboxClassName)\n                            .attr('data-gallery', lighboxClassName);\n                    });\n                    jQuery('.filtr-control-17286 [data-multifilter]').click(function() {\n                        var targetFilter = jQuery(this).data('multifilter');\n                        var lighboxClassName = \"pfg-lightbox-17286-\" + targetFilter;\n                        setTimeout(function() {\n                            jQuery(\".filtr-item\").each(function() {\n                                if (jQuery(this).css('opacity') == 1) {\n                                    jQuery(this).find(\"a\").attr('data-lightbox', lighboxClassName);\n                                }\n                            });\n                        }, 1000);\n                    });\n                            \n            \n            \n            \/\/ Toggle active classes for filters, multifilters, shuffle, and sort\n            jQuery('.filtr-control-17286 li').click(function() {\n                jQuery('.filtr-control-17286 li').removeClass('active');\n                jQuery(this).addClass('active');\n            });\n            jQuery('.multifilter li').click(function() {\n                jQuery(this).toggleClass('active');\n            });\n            jQuery('.shuffle-btn').click(function() {\n                jQuery('.sort-btn').removeClass('active');\n            });\n            jQuery('.sort-btn').click(function() {\n                jQuery('.sort-btn').removeClass('active');\n                jQuery(this).addClass('active');\n            });\n            \n        }); \/\/ end document.ready\n    })(jQuery);\n\t-->\n<\/script><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5b7265c e-flex e-con-boxed e-con e-parent\" data-id=\"5b7265c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-73b9965 e-con-full e-flex e-con e-child\" data-id=\"73b9965\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f4e205a elementor-widget elementor-widget-igr_product_masonry\" data-id=\"f4e205a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"igr_product_masonry.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n        <section class=\"igr-product-gallery__wrapper\">\n\n                            <!-- Filter Gallery -->\n                <div class=\"igr-product-gallery__filter\">\n                    <ul id=\"all-simplefilter-17286\" class=\"filtr-control-17286 simplefilter simplefilter_17286\">\n                                                        <li id=\"all\" class=\"active filtr-controls-17286\" data-filter=\".all\">All<\/li>\n                                            <\/ul>\n                    <ul id=\"f-simplefilter-17286\" class=\"filtr-control-17286 simplefilter simplefilter_17286\">\n                                            <\/ul>\n                <\/div>\n            \n            <!-- Filter Search -->\n            <div class=\"igr-filter-search\" >\n                <input type=\"text\" name=\"filter-search\" placeholder=\"Suchbegriff\" class=\"igr-quick-search\" value=\"\">\n            <\/div>\n\n            <!-- Gallery Grid -->\n            <div class=\"igr-filter-gallery igr-filter-container\">\n                \n                            <\/div>\n\n            <div class=\"igr-not-found\" style=\"text-align: center; font-size: 20px;\">\n                Data not found            <\/div>\n\n        <\/section>\n\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>All Sport &#038; Freizeit B\u00fcro &#038; Homeoffice ADA M\u00f6belwerke Holding AG 8184 Anger \/ \u00d6sterreich Gepr\u00fcfte Produkte: Sitztechnik \u201eADAption\u201c Funktion (Essgruppen) ada.at Logo smow by OM 01 Sport &#038; Freizeit Logo smow by OM 01 Steven Anor RS.esystems B\u00fcro &#038; Homeoffice 81245 M\u00fcnchen<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"inline_featured_image":false,"footnotes":""},"class_list":["post-17301","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Playground - IGR Institut f\u00fcr Gesundheit und Ergonomie GmbH<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/igr-ev.de\/en\/playground\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Playground - IGR Institut f\u00fcr Gesundheit und Ergonomie GmbH\" \/>\n<meta property=\"og:description\" content=\"All Sport &#038; Freizeit B\u00fcro &#038; Homeoffice ADA M\u00f6belwerke Holding AG 8184 Anger \/ \u00d6sterreich Gepr\u00fcfte Produkte: Sitztechnik \u201eADAption\u201c Funktion (Essgruppen) ada.at Logo smow by OM 01 Sport &#038; Freizeit Logo smow by OM 01 Steven Anor RS.esystems B\u00fcro &#038; Homeoffice 81245 M\u00fcnchen\" \/>\n<meta property=\"og:url\" content=\"https:\/\/igr-ev.de\/en\/playground\/\" \/>\n<meta property=\"og:site_name\" content=\"IGR Institut f\u00fcr Gesundheit und Ergonomie GmbH\" \/>\n<meta property=\"article:modified_time\" content=\"2025-07-12T12:38:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/igr-ev.de\/wp-content\/uploads\/2023\/09\/Logo_ADA-1024x1024.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/igr-ev.de\\\/en\\\/playground\\\/\",\"url\":\"https:\\\/\\\/igr-ev.de\\\/en\\\/playground\\\/\",\"name\":\"Playground - IGR Institut f\u00fcr Gesundheit und Ergonomie GmbH\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/igr-ev.de\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/igr-ev.de\\\/en\\\/playground\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/igr-ev.de\\\/en\\\/playground\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/igr-ev.de\\\/wp-content\\\/uploads\\\/2023\\\/09\\\/Logo_ADA-1024x1024.png\",\"datePublished\":\"2025-07-12T12:19:36+00:00\",\"dateModified\":\"2025-07-12T12:38:32+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/igr-ev.de\\\/en\\\/playground\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/igr-ev.de\\\/en\\\/playground\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/igr-ev.de\\\/en\\\/playground\\\/#primaryimage\",\"url\":\"https:\\\/\\\/igr-ev.de\\\/wp-content\\\/uploads\\\/2023\\\/09\\\/Logo_ADA-1024x1024.png\",\"contentUrl\":\"https:\\\/\\\/igr-ev.de\\\/wp-content\\\/uploads\\\/2023\\\/09\\\/Logo_ADA-1024x1024.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/igr-ev.de\\\/en\\\/playground\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/igr-ev.de\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Playground\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/igr-ev.de\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/igr-ev.de\\\/en\\\/\",\"name\":\"IGR Institut f\u00fcr Gesundheit und Ergonomie GmbH\",\"description\":\"Entdecken Sie die Welt der Ergonomie\",\"publisher\":{\"@id\":\"https:\\\/\\\/igr-ev.de\\\/en\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/igr-ev.de\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/igr-ev.de\\\/en\\\/#organization\",\"name\":\"IGR Institut f\u00fcr Gesundheit und Ergonomie GmbH\",\"url\":\"https:\\\/\\\/igr-ev.de\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/igr-ev.de\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/igr-ev.de\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/cropped-Logo-IGR-Institut.png\",\"contentUrl\":\"https:\\\/\\\/igr-ev.de\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/cropped-Logo-IGR-Institut.png\",\"width\":3472,\"height\":909,\"caption\":\"IGR Institut f\u00fcr Gesundheit und Ergonomie GmbH\"},\"image\":{\"@id\":\"https:\\\/\\\/igr-ev.de\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Playground - IGR Institut f\u00fcr Gesundheit und Ergonomie GmbH","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/igr-ev.de\/en\/playground\/","og_locale":"en_US","og_type":"article","og_title":"Playground - IGR Institut f\u00fcr Gesundheit und Ergonomie GmbH","og_description":"All Sport &#038; Freizeit B\u00fcro &#038; Homeoffice ADA M\u00f6belwerke Holding AG 8184 Anger \/ \u00d6sterreich Gepr\u00fcfte Produkte: Sitztechnik \u201eADAption\u201c Funktion (Essgruppen) ada.at Logo smow by OM 01 Sport &#038; Freizeit Logo smow by OM 01 Steven Anor RS.esystems B\u00fcro &#038; Homeoffice 81245 M\u00fcnchen","og_url":"https:\/\/igr-ev.de\/en\/playground\/","og_site_name":"IGR Institut f\u00fcr Gesundheit und Ergonomie GmbH","article_modified_time":"2025-07-12T12:38:32+00:00","og_image":[{"url":"https:\/\/igr-ev.de\/wp-content\/uploads\/2023\/09\/Logo_ADA-1024x1024.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/igr-ev.de\/en\/playground\/","url":"https:\/\/igr-ev.de\/en\/playground\/","name":"Playground - IGR Institut f\u00fcr Gesundheit und Ergonomie GmbH","isPartOf":{"@id":"https:\/\/igr-ev.de\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/igr-ev.de\/en\/playground\/#primaryimage"},"image":{"@id":"https:\/\/igr-ev.de\/en\/playground\/#primaryimage"},"thumbnailUrl":"https:\/\/igr-ev.de\/wp-content\/uploads\/2023\/09\/Logo_ADA-1024x1024.png","datePublished":"2025-07-12T12:19:36+00:00","dateModified":"2025-07-12T12:38:32+00:00","breadcrumb":{"@id":"https:\/\/igr-ev.de\/en\/playground\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/igr-ev.de\/en\/playground\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/igr-ev.de\/en\/playground\/#primaryimage","url":"https:\/\/igr-ev.de\/wp-content\/uploads\/2023\/09\/Logo_ADA-1024x1024.png","contentUrl":"https:\/\/igr-ev.de\/wp-content\/uploads\/2023\/09\/Logo_ADA-1024x1024.png"},{"@type":"BreadcrumbList","@id":"https:\/\/igr-ev.de\/en\/playground\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/igr-ev.de\/en\/"},{"@type":"ListItem","position":2,"name":"Playground"}]},{"@type":"WebSite","@id":"https:\/\/igr-ev.de\/en\/#website","url":"https:\/\/igr-ev.de\/en\/","name":"IGR Institut f\u00fcr Gesundheit und Ergonomie GmbH","description":"Entdecken Sie die Welt der Ergonomie","publisher":{"@id":"https:\/\/igr-ev.de\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/igr-ev.de\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/igr-ev.de\/en\/#organization","name":"IGR Institut f\u00fcr Gesundheit und Ergonomie GmbH","url":"https:\/\/igr-ev.de\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/igr-ev.de\/en\/#\/schema\/logo\/image\/","url":"https:\/\/igr-ev.de\/wp-content\/uploads\/2023\/11\/cropped-Logo-IGR-Institut.png","contentUrl":"https:\/\/igr-ev.de\/wp-content\/uploads\/2023\/11\/cropped-Logo-IGR-Institut.png","width":3472,"height":909,"caption":"IGR Institut f\u00fcr Gesundheit und Ergonomie GmbH"},"image":{"@id":"https:\/\/igr-ev.de\/en\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/igr-ev.de\/en\/wp-json\/wp\/v2\/pages\/17301","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/igr-ev.de\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/igr-ev.de\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/igr-ev.de\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/igr-ev.de\/en\/wp-json\/wp\/v2\/comments?post=17301"}],"version-history":[{"count":2,"href":"https:\/\/igr-ev.de\/en\/wp-json\/wp\/v2\/pages\/17301\/revisions"}],"predecessor-version":[{"id":17306,"href":"https:\/\/igr-ev.de\/en\/wp-json\/wp\/v2\/pages\/17301\/revisions\/17306"}],"wp:attachment":[{"href":"https:\/\/igr-ev.de\/en\/wp-json\/wp\/v2\/media?parent=17301"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}