Fluid.mediaqueries = { registerMQ: function(name, mq) { if (typeof name !== 'string' || typeof mq !== 'string' || typeof this[name] === 'object') return false; this[name] = { firstime: true, match_cb: [], unmatch_cb: [], setup_cb: [], init: function() { //setup mq passing this as context, and mq as an argument Fluid.mediaqueries.setupMQ.call(this, mq); }, setup: function(cb,args) { //if matches executes function if not deffers it to first match if (typeof cb === 'function') { if (!this.firstime) { cb.apply(cb, args); } else { this.setup_cb.push([cb,args]); } } }, match: function(cb,args) { //add callback to matches callback array if (this.mediaQuery.matches){ cb.apply(cb, args); } if (typeof cb === 'function') { this.match_cb.push([cb,args]); } }, unmatch: function(cb,args) { //add callback to unmatches callback array if (typeof cb === 'function') { this.unmatch_cb.push([cb,args]); } }, remove: function(type, cb) { //remove callback to maches callback array Fluid.mediaqueries.removeCallback(this[type + '_cb'], cb); } }; this[name].init(); }, setupMQ: function(mq) { var self = this; //setup mediaquery self.mediaQuery = window.matchMedia(mq); //setup listeners and its callbacks self.mediaQuery.addListener(function(changed) { if (changed.matches) { //setup is only executed when mediaquery is matched for first time if (self.firstime) { Fluid.mediaqueries.run(self.setup_cb); self.firstime = false; } Fluid.mediaqueries.run(self.match_cb); } else { Fluid.mediaqueries.run(self.unmatch_cb); } }); }, removeCallback: function(arr, cb) { if (Array.isArray(arr)) { arr.forEach(function(e,i){ if (e[0]===cb){ arr.splice(i, 1); return arr; } }); } else { return false; } }, run: function(cbs) { cbs.forEach(function(cb) { cb[0].apply( cb[0], cb[1]); }); } }; // FLUID MEDIAQUERIES REQUIRED Fluid.initQueue.enqueue(function(){ Fluid.mediaqueries.registerMQ('xs', '(max-width:768px)'); Fluid.mediaqueries.registerMQ('sm', '(min-width:768px)'); Fluid.mediaqueries.registerMQ('md', '(min-width:992px)'); Fluid.mediaqueries.registerMQ('lg', '(min-width:1200px)'); }); ;window.htmlFramework="bootstrap"; /** * Copyright Marc J. Schmidt. See the LICENSE file at the top-level * directory of this distribution and at * https://github.com/marcj/css-element-queries/blob/master/LICENSE. */ 'use strict';!function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():e.ResizeSensor=t()}("undefined"!=typeof window?window:this,function(){if("undefined"==typeof window)return null;var e="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")(),t=e.requestAnimationFrame||e.mozRequestAnimationFrame||e.webkitRequestAnimationFrame||function(t){return e.setTimeout(t,20)};function n(e,t){var n=Object.prototype.toString.call(e),i="[object Array]"===n||"[object NodeList]"===n||"[object HTMLCollection]"===n||"[object Object]"===n||"undefined"!=typeof jQuery&&e instanceof jQuery||"undefined"!=typeof Elements&&e instanceof Elements,o=0,r=e.length;if(i)for(;o=t.containerBottom?(t.translateY=t.containerBottom-e,o="CONTAINER-BOTTOM"):i>=t.containerTop&&(t.translateY=i-t.containerTop,o="VIEWPORT-TOP"):t.containerBottom<=n?(t.translateY=t.containerBottom-e,o="CONTAINER-BOTTOM"):e+t.translateY<=n?(t.translateY=n-e,o="VIEWPORT-BOTTOM"):t.containerTop+t.translateY<=i&&0!==t.translateY&&t.maxTranslateY!==t.translateY&&(o="VIEWPORT-UNBOTTOM"),o}},{key:"_getAffixTypeScrollingUp",value:function(){var t=this.dimensions,e=t.sidebarHeight+t.containerTop,i=t.viewportTop+t.topSpacing,n=t.viewportBottom-t.bottomSpacing,o=this.affixedType;return i<=t.translateY+t.containerTop?(t.translateY=i-t.containerTop,o="VIEWPORT-TOP"):t.containerBottom<=n?(t.translateY=t.containerBottom-e,o="CONTAINER-BOTTOM"):this.isSidebarFitsViewport()||t.containerTop<=i&&0!==t.translateY&&t.maxTranslateY!==t.translateY&&(o="VIEWPORT-UNBOTTOM"),o}},{key:"_getStyle",value:function(t){if(void 0!==t){var e={inner:{},outer:{}},i=this.dimensions;switch(t){case"VIEWPORT-TOP":e.inner={position:"fixed",top:i.topSpacing,left:i.sidebarLeft-i.viewportLeft,width:i.sidebarWidth};break;case"VIEWPORT-BOTTOM":e.inner={position:"fixed",top:"auto",left:i.sidebarLeft,bottom:i.bottomSpacing,width:i.sidebarWidth};break;case"CONTAINER-BOTTOM":case"VIEWPORT-UNBOTTOM":var n=this._getTranslate(0,i.translateY+"px");e.inner=n?{transform:n}:{position:"absolute",top:i.translateY,width:i.sidebarWidth}}switch(t){case"VIEWPORT-TOP":case"VIEWPORT-BOTTOM":case"VIEWPORT-UNBOTTOM":case"CONTAINER-BOTTOM":e.outer={height:i.sidebarHeight,position:"relative"}}return e.outer=c.extend({height:"",position:""},e.outer),e.inner=c.extend({position:"relative",top:"",left:"",bottom:"",width:"",transform:""},e.inner),e}}},{key:"stickyPosition",value:function(t){if(!this._breakpoint){t=this._reStyle||t||!1,this.options.topSpacing,this.options.bottomSpacing;var e=this.getAffixType(),i=this._getStyle(e);if((this.affixedType!=e||t)&&e){var n="affix."+e.toLowerCase().replace("viewport-","")+l;for(var o in c.eventTrigger(this.sidebar,n),"STATIC"===e?c.removeClass(this.sidebar,this.options.stickyClass):c.addClass(this.sidebar,this.options.stickyClass),i.outer){var s="number"==typeof i.outer[o]?"px":"";this.sidebar.style[o]=i.outer[o]+s}for(var r in i.inner){var a="number"==typeof i.inner[r]?"px":"";this.sidebarInner.style[r]=i.inner[r]+a}var p="affixed."+e.toLowerCase().replace("viewport-","")+l;c.eventTrigger(this.sidebar,p)}else this._initialized&&(this.sidebarInner.style.left=i.inner.left);this.affixedType=e}}},{key:"_widthBreakpoint",value:function(){window.innerWidth<=this.options.minWidth?(this._breakpoint=!0,this.affixedType="STATIC",this.sidebar.removeAttribute("style"),c.removeClass(this.sidebar,this.options.stickyClass),this.sidebarInner.removeAttribute("style")):this._breakpoint=!1}},{key:"updateSticky",value:function(){var t,e=this,i=0i)){e[n]=function(e,t,n){return this.$menu=e,this._api=["bind","getInstance","initPanels","openPanel","closePanel","closeAllPanels","setSelected"],this.opts=t,this.conf=n,this.vars={},this.cbck={},this.mtch={},"function"==typeof this.___deprecated&&this.___deprecated(),this._initHooks(),this._initWrappers(),this._initAddons(),this._initExtensions(),this._initMenu(),this._initPanels(),this._initOpened(),this._initAnchors(),this._initMatchMedia(),"function"==typeof this.___debug&&this.___debug(),this},e[n].version=i,e[n].uniqueId=0,e[n].wrappers={},e[n].addons={},e[n].defaults={hooks:{},extensions:[],wrappers:[],navbar:{add:!0,title:"Menu",titleLink:"parent"},onClick:{setSelected:!0},slidingSubmenus:!0},e[n].configuration={classNames:{divider:"Divider",inset:"Inset",nolistview:"NoListview",nopanel:"NoPanel",panel:"Panel",selected:"Selected",spacer:"Spacer",vertical:"Vertical"},clone:!1,openingInterval:25,panelNodetype:"ul, ol, div",transitionDuration:400},e[n].prototype={getInstance:function(){return this},initPanels:function(e){this._initPanels(e)},openPanel:function(t,i){if(this.trigger("openPanel:before",t),t&&t.length&&(t.is("."+s.panel)||(t=t.closest("."+s.panel)),t.is("."+s.panel))){var r=this;if("boolean"!=typeof i&&(i=!0),t.parent("."+s.listitem+"_vertical").length)t.parents("."+s.listitem+"_vertical").addClass(s.listitem+"_opened").children("."+s.panel).removeClass(s.hidden),this.openPanel(t.parents("."+s.panel).not(function(){return e(this).parent("."+s.listitem+"_vertical").length}).first()),this.trigger("openPanel:start",t),this.trigger("openPanel:finish",t);else{if(t.hasClass(s.panel+"_opened"))return;var l=this.$pnls.children("."+s.panel),o=this.$pnls.children("."+s.panel+"_opened");if(!e[n].support.csstransitions)return o.addClass(s.hidden).removeClass(s.panel+"_opened"),t.removeClass(s.hidden).addClass(s.panel+"_opened"),this.trigger("openPanel:start",t),void this.trigger("openPanel:finish",t);l.not(t).removeClass(s.panel+"_opened-parent");for(var d=t.data(a.parent);d;)d=d.closest("."+s.panel),d.parent("."+s.listitem+"_vertical").length||d.addClass(s.panel+"_opened-parent"),d=d.data(a.parent);l.removeClass(s.panel+"_highest").not(o).not(t).addClass(s.hidden),t.removeClass(s.hidden);var c=function(){o.removeClass(s.panel+"_opened"),t.addClass(s.panel+"_opened"),t.hasClass(s.panel+"_opened-parent")?(o.addClass(s.panel+"_highest"),t.removeClass(s.panel+"_opened-parent")):(o.addClass(s.panel+"_opened-parent"),t.addClass(s.panel+"_highest")),r.trigger("openPanel:start",t)},h=function(){o.removeClass(s.panel+"_highest").addClass(s.hidden),t.removeClass(s.panel+"_highest"),r.trigger("openPanel:finish",t)};i&&!t.hasClass(s.panel+"_noanimation")?setTimeout(function(){r.__transitionend(t,function(){h()},r.conf.transitionDuration),c()},r.conf.openingInterval):(c(),h())}this.trigger("openPanel:after",t)}},closePanel:function(e){this.trigger("closePanel:before",e);var t=e.parent();t.hasClass(s.listitem+"_vertical")&&(t.removeClass(s.listitem+"_opened"),e.addClass(s.hidden),this.trigger("closePanel",e)),this.trigger("closePanel:after",e)},closeAllPanels:function(e){this.trigger("closeAllPanels:before"),this.$pnls.find("."+s.listview).children().removeClass(s.listitem+"_selected").filter("."+s.listitem+"_vertical").removeClass(s.listitem+"_opened");var t=this.$pnls.children("."+s.panel),n=e&&e.length?e:t.first();this.$pnls.children("."+s.panel).not(n).removeClass(s.panel+"_opened").removeClass(s.panel+"_opened-parent").removeClass(s.panel+"_highest").addClass(s.hidden),this.openPanel(n,!1),this.trigger("closeAllPanels:after")},togglePanel:function(e){var t=e.parent();t.hasClass(s.listitem+"_vertical")&&this[t.hasClass(s.listitem+"_opened")?"closePanel":"openPanel"](e)},setSelected:function(e){this.trigger("setSelected:before",e),this.$menu.find("."+s.listitem+"_selected").removeClass(s.listitem+"_selected"),e.addClass(s.listitem+"_selected"),this.trigger("setSelected:after",e)},bind:function(e,t){this.cbck[e]=this.cbck[e]||[],this.cbck[e].push(t)},trigger:function(){var e=this,t=Array.prototype.slice.call(arguments),n=t.shift();if(this.cbck[n])for(var i=0,s=this.cbck[n].length;i').append(this.$menu.children(this.conf.panelNodetype)).prependTo(this.$menu),this.$menu.addClass(s.menu).parent().addClass(s.wrapper),this.trigger("initMenu:after")},_initPanels:function(t){this.trigger("initPanels:before",t),t=t||this.$pnls.children(this.conf.panelNodetype);var n=e(),i=this,a=function(t){t.filter(i.conf.panelNodetype).each(function(t){var r=i._initPanel(e(this));if(r){i._initNavbar(r),i._initListview(r),n=n.add(r);var l=r.children("."+s.listview).children("li").children(i.conf.panelNodetype).add(r.children("."+i.conf.classNames.panel));l.length&&a(l)}})};a(t),this.trigger("initPanels:after",n)},_initPanel:function(e){this.trigger("initPanel:before",e);if(e.hasClass(s.panel))return e;if(this.__refactorClass(e,this.conf.classNames.panel,s.panel),this.__refactorClass(e,this.conf.classNames.nopanel,s.nopanel),this.__refactorClass(e,this.conf.classNames.inset,s.listview+"_inset"),e.filter("."+s.listview+"_inset").addClass(s.nopanel),e.hasClass(s.nopanel))return!1;var t=e.hasClass(this.conf.classNames.vertical)||!this.opts.slidingSubmenus;e.removeClass(this.conf.classNames.vertical);var n=e.attr("id")||this.__getUniqueId();e.is("ul, ol")&&(e.removeAttr("id"),e.wrap("
"),e=e.parent()),e.attr("id",n),e.addClass(s.panel+" "+s.hidden);var i=e.parent("li");return t?i.addClass(s.listitem+"_vertical"):e.appendTo(this.$pnls),i.length&&(i.data(a.child,e),e.data(a.parent,i)),this.trigger("initPanel:after",e),e},_initNavbar:function(t){if(this.trigger("initNavbar:before",t),!t.children("."+s.navbar).length){var n=t.data(a.parent),i=e('
'),r=this.__getPanelTitle(t,this.opts.navbar.title),l="";if(n&&n.length){if(n.hasClass(s.listitem+"_vertical"))return;if(n.parent().is("."+s.listview))var o=n.children("a, span").not("."+s.btn+"_next");else var o=n.closest("."+s.panel).find('a[href="#'+t.attr("id")+'"]');o=o.first(),n=o.closest("."+s.panel);var d=n.attr("id");switch(r=this.__getPanelTitle(t,e(""+o.text()+"").text()),this.opts.navbar.titleLink){case"anchor":l=o.attr("href");break;case"parent":l="#"+d}i.append('')}else if(!this.opts.navbar.title)return;this.opts.navbar.add&&t.addClass(s.panel+"_has-navbar"),i.append('"+r+"").prependTo(t),this.trigger("initNavbar:after",t)}},_initListview:function(t){this.trigger("initListview:before",t);var n=this.__childAddBack(t,"ul, ol");this.__refactorClass(n,this.conf.classNames.nolistview,s.nolistview);var i=n.not("."+s.nolistview).addClass(s.listview).children().addClass(s.listitem);this.__refactorClass(i,this.conf.classNames.selected,s.listitem+"_selected"),this.__refactorClass(i,this.conf.classNames.divider,s.listitem+"_divider"),this.__refactorClass(i,this.conf.classNames.spacer,s.listitem+"_spacer");var r=t.data(a.parent);if(r&&r.is("."+s.listitem)&&!r.children("."+s.btn+"_next").length){var l=r.children("a, span").first(),o=e('').insertBefore(l);l.is("span")&&o.addClass(s.btn+"_fullwidth")}this.trigger("initListview:after",t)},_initOpened:function(){this.trigger("initOpened:before");var e=this.$pnls.find("."+s.listitem+"_selected").removeClass(s.listitem+"_selected").last().addClass(s.listitem+"_selected"),t=e.length?e.closest("."+s.panel):this.$pnls.children("."+s.panel).first();this.openPanel(t,!1),this.trigger("initOpened:after")},_initAnchors:function(){this.trigger("initAnchors:before");var t=this;l.$body.on(r.click+"-oncanvas","a[href]",function(i){var a=e(this),r=a.attr("href"),l=t.$menu.find(a).length,o=a.is("."+s.listitem+" > a"),d=a.is('[rel="external"]')||a.is('[target="_blank"]');if(l&&r.length>1&&"#"==r.slice(0,1))try{var c=t.$menu.find(r);if(c.is("."+s.panel))return t[a.parent().hasClass(s.listitem+"_vertical")?"togglePanel":"openPanel"](c),void i.preventDefault()}catch(h){}var f={close:null,setSelected:null,preventDefault:"#"==r.slice(0,1)};for(var p in e[n].addons){var u=e[n].addons[p].clickAnchor.call(t,a,l,o,d);if(u){if("boolean"==typeof u)return void i.preventDefault();"object"==typeof u&&(f=e.extend({},f,u))}}l&&o&&!d&&(t.__valueOrFn(a,t.opts.onClick.setSelected,f.setSelected)&&t.setSelected(e(i.target).parent()),t.__valueOrFn(a,t.opts.onClick.preventDefault,f.preventDefault)&&i.preventDefault(),t.__valueOrFn(a,t.opts.onClick.close,f.close)&&t.opts.offCanvas&&"function"==typeof t.close&&t.close())}),this.trigger("initAnchors:after")},_initMatchMedia:function(){var e=this;for(var t in this.mtch)!function(){var n=t,i=window.matchMedia(n);e._fireMatchMedia(n,i),i.addListener(function(t){e._fireMatchMedia(n,t)})}()},_fireMatchMedia:function(e,t){for(var n=t.matches?"yes":"no",i=0;i1&&s.wrapPageIfNeeded&&(t=t.wrapAll("<"+this.conf[n].pageNodetype+" />").parent())),t.each(function(){e(this).attr("id",e(this).attr("id")||i.__getUniqueId())}),t.addClass(o.page+" "+o.slideout),r.$page=t,this.trigger("setPage:after",t)},e[t].prototype["_initWindow_"+n]=function(){r.$wndw.off(s.keydown+"-"+n).on(s.keydown+"-"+n,function(e){if(r.$html.hasClass(o.wrapper+"_opened")&&9==e.keyCode)return e.preventDefault(),!1});var e=0;r.$wndw.off(s.resize+"-"+n).on(s.resize+"-"+n,function(t,n){if(1==r.$page.length&&(n||r.$html.hasClass(o.wrapper+"_opened"))){var i=r.$wndw.height();(n||i!=e)&&(e=i,r.$page.css("minHeight",i))}})},e[t].prototype._initBlocker=function(){var t=this;this.opts[n].blockUI&&(r.$blck||(r.$blck=e('
')),r.$blck.appendTo(r.$body).off(s.touchstart+"-"+n+" "+s.touchmove+"-"+n).on(s.touchstart+"-"+n+" "+s.touchmove+"-"+n,function(e){e.preventDefault(),e.stopPropagation(),r.$blck.trigger(s.mousedown+"-"+n)}).off(s.mousedown+"-"+n).on(s.mousedown+"-"+n,function(e){e.preventDefault(),r.$html.hasClass(o.wrapper+"_modal")||(t.closeAllOthers(),t.close())}))};var o,i,s,r}(jQuery); /* * jQuery mmenu screenReader add-on * mmenu.frebsite.nl */ !function(t){var i="mmenu",n="screenReader";t[i].addons[n]={setup:function(){var a=this,o=this.opts[n],h=this.conf[n];s=t[i].glbl,"boolean"==typeof o&&(o={aria:o,text:o}),"object"!=typeof o&&(o={}),o=this.opts[n]=t.extend(!0,{},t[i].defaults[n],o),o.aria&&(this.bind("initAddons:after",function(){this.bind("initMenu:after",function(){this.trigger("initMenu:after:sr-aria")}),this.bind("initNavbar:after",function(){this.trigger("initNavbar:after:sr-aria",arguments[0])}),this.bind("openPanel:start",function(){this.trigger("openPanel:start:sr-aria",arguments[0])}),this.bind("close:start",function(){this.trigger("close:start:sr-aria")}),this.bind("close:finish",function(){this.trigger("close:finish:sr-aria")}),this.bind("open:start",function(){this.trigger("open:start:sr-aria")}),this.bind("initOpened:after",function(){this.trigger("initOpened:after:sr-aria")})}),this.bind("updateListview",function(){this.$pnls.find("."+e.listview).children().each(function(){a.__sr_aria(t(this),"hidden",t(this).is("."+e.hidden))})}),this.bind("openPanel:start",function(t){var i=this.$menu.find("."+e.panel).not(t).not(t.parents("."+e.panel)),n=t.add(t.find("."+e.listitem+"_vertical ."+e.listitem+"_opened").children("."+e.panel));this.__sr_aria(i,"hidden",!0),this.__sr_aria(n,"hidden",!1)}),this.bind("closePanel",function(t){this.__sr_aria(t,"hidden",!0)}),this.bind("initPanels:after",function(i){var n=i.find("."+e.btn).each(function(){a.__sr_aria(t(this),"owns",t(this).attr("href").replace("#",""))});this.__sr_aria(n,"haspopup",!0)}),this.bind("initNavbar:after",function(t){var i=t.children("."+e.navbar);this.__sr_aria(i,"hidden",!t.hasClass(e.panel+"_has-navbar"))}),o.text&&(this.bind("initlistview:after",function(t){var i=t.find("."+e.listview).find("."+e.btn+"_fullwidth").parent().children("span");this.__sr_aria(i,"hidden",!0)}),"parent"==this.opts.navbar.titleLink&&this.bind("initNavbar:after",function(t){var i=t.children("."+e.navbar),n=!!i.children("."+e.btn+"_prev").length;this.__sr_aria(i.children("."+e.title),"hidden",n)}))),o.text&&(this.bind("initAddons:after",function(){this.bind("setPage:after",function(){this.trigger("setPage:after:sr-text",arguments[0])})}),this.bind("initNavbar:after",function(n){var r=n.children("."+e.navbar),a=r.children("."+e.title).text(),s=t[i].i18n(h.text.closeSubmenu);a&&(s+=" ("+a+")"),r.children("."+e.btn+"_prev").html(this.__sr_text(s))}),this.bind("initListview:after",function(n){var s=n.data(r.parent);if(s&&s.length){var o=s.children("."+e.btn+"_next"),d=o.nextAll("span, a").first().text(),l=t[i].i18n(h.text[o.parent().is("."+e.listitem+"_vertical")?"toggleSubmenu":"openSubmenu"]);d&&(l+=" ("+d+")"),o.html(a.__sr_text(l))}}))},add:function(){e=t[i]._c,r=t[i]._d,a=t[i]._e,e.add("sronly")},clickAnchor:function(t,i){}},t[i].defaults[n]={aria:!0,text:!0},t[i].configuration[n]={text:{closeMenu:"Close menu",closeSubmenu:"Close submenu",openSubmenu:"Open submenu",toggleSubmenu:"Toggle submenu"}},t[i].prototype.__sr_aria=function(t,i,n){t.prop("aria-"+i,n)[n?"attr":"removeAttr"]("aria-"+i,n)},t[i].prototype.__sr_role=function(t,i){t.prop("role",i)[i?"attr":"removeAttr"]("role",i)},t[i].prototype.__sr_text=function(t){return''+t+""};var e,r,a,s}(jQuery); /* * jQuery mmenu scrollBugFix add-on * mmenu.frebsite.nl */ !function(o){var t="mmenu",n="scrollBugFix";o[t].addons[n]={setup:function(){var r=this.opts[n];this.conf[n];i=o[t].glbl,o[t].support.touch&&this.opts.offCanvas&&this.opts.offCanvas.blockUI&&("boolean"==typeof r&&(r={fix:r}),"object"!=typeof r&&(r={}),r=this.opts[n]=o.extend(!0,{},o[t].defaults[n],r),r.fix&&(this.bind("open:start",function(){this.$pnls.children("."+e.panel+"_opened").scrollTop(0)}),this.bind("initMenu:after",function(){this["_initWindow_"+n]()})))},add:function(){e=o[t]._c,r=o[t]._d,s=o[t]._e},clickAnchor:function(o,t){}},o[t].defaults[n]={fix:!0},o[t].prototype["_initWindow_"+n]=function(){var t=this;i.$docu.off(s.touchmove+"-"+n).on(s.touchmove+"-"+n,function(o){i.$html.hasClass(e.wrapper+"_opened")&&o.preventDefault()});var r=!1;i.$body.off(s.touchstart+"-"+n).on(s.touchstart+"-"+n,"."+e.panels+"> ."+e.panel,function(o){i.$html.hasClass(e.wrapper+"_opened")&&(r||(r=!0,0===o.currentTarget.scrollTop?o.currentTarget.scrollTop=1:o.currentTarget.scrollHeight===o.currentTarget.scrollTop+o.currentTarget.offsetHeight&&(o.currentTarget.scrollTop-=1),r=!1))}).off(s.touchmove+"-"+n).on(s.touchmove+"-"+n,"."+e.panels+"> ."+e.panel,function(t){i.$html.hasClass(e.wrapper+"_opened")&&o(this)[0].scrollHeight>o(this).innerHeight()&&t.stopPropagation()}),i.$wndw.off(s.orientationchange+"-"+n).on(s.orientationchange+"-"+n,function(){t.$pnls.children("."+e.panel+"_opened").scrollTop(0).css({"-webkit-overflow-scrolling":"auto"}).css({"-webkit-overflow-scrolling":"touch"})})};var e,r,s,i}(jQuery); /* * jQuery mmenu autoHeight add-on * mmenu.frebsite.nl */ !function(t){var e="mmenu",i="autoHeight";t[e].addons[i]={setup:function(){var h=this.opts[i];this.conf[i];if(a=t[e].glbl,"boolean"==typeof h&&h&&(h={height:"auto"}),"string"==typeof h&&(h={height:h}),"object"!=typeof h&&(h={}),h=this.opts[i]=t.extend(!0,{},t[e].defaults[i],h),"auto"==h.height||"highest"==h.height){this.bind("initMenu:after",function(){this.$menu.addClass(n.menu+"_autoheight")});var s=function(e){if(!this.opts.offCanvas||this.vars.opened){var i=Math.max(parseInt(this.$pnls.css("top"),10),0)||0,s=Math.max(parseInt(this.$pnls.css("bottom"),10),0)||0,a=0;this.$menu.addClass(n.menu+"_autoheight-measuring"),"auto"==h.height?(e=e||this.$pnls.children("."+n.panel+"_opened"),e.parent("."+n.listitem+"_vertical").length&&(e=e.parents("."+n.panel).not(function(){return t(this).parent("."+n.listitem+"_vertical").length})),e.length||(e=this.$pnls.children("."+n.panel)),a=e.first().outerHeight()):"highest"==h.height&&this.$pnls.children("."+n.panel).each(function(){var e=t(this);e.parent("."+n.listitem+"_vertical").length&&(e=e.parents("."+n.panel).not(function(){return t(this).parent("."+n.listitem+"_vertical").length})),a=Math.max(a,e.first().outerHeight())}),this.$menu.height(a+i+s).removeClass(n.menu+"_autoheight-measuring")}};this.opts.offCanvas&&this.bind("open:start",s),"highest"==h.height&&this.bind("initPanels:after",s),"auto"==h.height&&(this.bind("updateListview",s),this.bind("openPanel:start",s),this.bind("closePanel",s))}},add:function(){n=t[e]._c,h=t[e]._d,s=t[e]._e,s.add("resize")},clickAnchor:function(t,e){}},t[e].defaults[i]={height:"default"};var n,h,s,a}(jQuery); /* * jQuery mmenu backButton add-on * mmenu.frebsite.nl */ !function(n){var t="mmenu",o="backButton";n[t].addons[o]={setup:function(){function e(){l=[c],this.$pnls.children("."+i.panel+"_opened-parent").add(s.$pnls.children("."+i.panel+"_opened")).each(function(){l.push("#"+n(this).attr("id"))})}if(this.opts.offCanvas){var s=this,h=this.opts[o];this.conf[o];a=n[t].glbl,"boolean"==typeof h&&(h={close:h}),"object"!=typeof h&&(h={}),h=n.extend(!0,{},n[t].defaults[o],h);var c="#"+this.$menu.attr("id");if(h.close){var l=[];this.bind("open:finish",function(){history.pushState(null,document.title,c)}),this.bind("open:finish",e),this.bind("openPanel:finish",e),this.bind("close:finish",function(){l=[],history.back(),history.pushState(null,document.title,location.pathname+location.search)}),n(window).on("popstate",function(t){if(s.vars.opened&&l.length){l=l.slice(0,-1);var o=l[l.length-1];o==c?s.close():(s.openPanel(n(o)),history.pushState(null,document.title,c))}})}h.open&&n(window).on("popstate",function(n){s.vars.opened||location.hash!=c||s.open()})}},add:function(){return window.history&&window.history.pushState?(i=n[t]._c,e=n[t]._d,void(s=n[t]._e)):void(n[t].addons[o].setup=function(){})},clickAnchor:function(n,t){}},n[t].defaults[o]={close:!1,open:!1};var i,e,s,a}(jQuery); /* * jQuery mmenu columns add-on * mmenu.frebsite.nl */ !function(e){var n="mmenu",i="columns";e[n].addons[i]={setup:function(){function l(e){var n=e.data(s.parent);if(n&&(n=n.closest("."+a.panel),n.length)){var i=n.attr("class");if(i&&(i=i.split(a.panel+"_columns-")[1]))for(i=parseInt(i.split(" ")[0],10)+1;i>0;){var l=this.$pnls.children("."+a.panel+"_columns-"+i);if(!l.length){i=-1;break}i++,l.removeClass(r).addClass(a.hidden)}}}var o=this.opts[i];this.conf[i];if(t=e[n].glbl,"boolean"==typeof o&&(o={add:o}),"number"==typeof o&&(o={add:!0,visible:o}),"object"!=typeof o&&(o={}),"number"==typeof o.visible&&(o.visible={min:o.visible,max:o.visible}),o=this.opts[i]=e.extend(!0,{},e[n].defaults[i],o),o.add){o.visible.min=Math.max(1,Math.min(6,o.visible.min)),o.visible.max=Math.max(o.visible.min,Math.min(6,o.visible.max));for(var d="",p="",m=0;m<=o.visible.max;m++)d+=" "+a.menu+"_columns-"+m,p+=" "+a.panel+"_columns-"+m;d.length&&(d=d.slice(1),p=p.slice(1));var r=p+" "+a.panel+"_opened "+a.panel+"_opened-parent "+a.panel+"_highest",c=function(n){var i=this.$pnls.children("."+a.panel+"_opened-parent").length;n.hasClass(a.panel+"_opened-parent")||i++,i=Math.min(o.visible.max,Math.max(o.visible.min,i)),this.$menu.removeClass(d).addClass(a.menu+"_columns-"+i),this.$pnls.children("."+a.panel).removeClass(p).filter("."+a.panel+"_opened-parent").add(n).slice(-o.visible.max).each(function(n){e(this).addClass(a.panel+"_columns-"+n)})};this.bind("openPanel:before",l),this.bind("openPanel:start",c)}},add:function(){a=e[n]._c,s=e[n]._d,l=e[n]._e},clickAnchor:function(e,n){}},e[n].defaults[i]={add:!1,visible:{min:1,max:3}};var a,s,l,t}(jQuery); /* * jQuery mmenu counters add-on * mmenu.frebsite.nl */ !function(t){var e="mmenu",n="counters";t[e].addons[n]={setup:function(){var s=this,d=this.opts[n];this.conf[n];if(c=t[e].glbl,"boolean"==typeof d&&(d={add:d,update:d}),"object"!=typeof d&&(d={}),d=this.opts[n]=t.extend(!0,{},t[e].defaults[n],d),this.bind("initListview:after",function(t){var e=this.conf.classNames[n].counter;this.__refactorClass(t.find("."+e),e,i.counter)}),d.add&&this.bind("initListview:after",function(e){var n;switch(d.addTo){case"panels":n=e;break;default:n=e.filter(d.addTo)}n.each(function(){var e=t(this).data(a.parent);e&&(e.children("."+i.counter).length||e.prepend(t('')))})}),d.update){var r=function(e){e=e||this.$pnls.children("."+i.panel),e.each(function(){var e=t(this),n=e.data(a.parent);if(n){var c=n.children("em."+i.counter);c.length&&(e=e.children("."+i.listview),e.length&&c.html(s.__filterListItems(e.children()).length))}})};this.bind("initListview:after",r),this.bind("updateListview",r)}},add:function(){i=t[e]._c,a=t[e]._d,s=t[e]._e,i.add("counter")},clickAnchor:function(t,e){}},t[e].defaults[n]={add:!1,addTo:"panels",count:!1},t[e].configuration.classNames[n]={counter:"Counter"};var i,a,s,c}(jQuery); /* * jQuery mmenu dividers add-on * mmenu.frebsite.nl */ !function(i){var e="mmenu",t="dividers";i[e].addons[t]={setup:function(){var s=this,a=this.opts[t];this.conf[t];if(l=i[e].glbl,"boolean"==typeof a&&(a={add:a,fixed:a}),"object"!=typeof a&&(a={}),a=this.opts[t]=i.extend(!0,{},i[e].defaults[t],a),a.type&&this.bind("initMenu:after",function(){this.$menu.addClass(n.menu+"_"+t+"-"+a.type)}),a.add&&this.bind("initListview:after",function(e){var t;switch(a.addTo){case"panels":t=e;break;default:t=e.filter(a.addTo)}t.length&&(t.children("."+n.listitem+"_divider").remove(),t.find("."+n.listview).each(function(){var e="";s.__filterListItems(i(this).children()).each(function(){var t=i.trim(i(this).children("a, span").text()).slice(0,1).toLowerCase();t!=e&&t.length&&(e=t,i('
  • '+t+"
  • ").insertBefore(this))})}))}),a.fixed){this.bind("initPanels:after",function(){"undefined"==typeof this.$fixeddivider&&(this.$fixeddivider=i('
    ').appendTo(this.$pnls).children())});var o=function(e){if(e=e||this.$pnls.children("."+n.panel+"_opened"),!e.is(":hidden")){var t=e.find("."+n.listitem+"_divider").not("."+n.hidden),s=e.scrollTop()||0,d="";t.each(function(){i(this).position().top+st&&(e=t),e}function t(t,o,i){var r,p,d,f=this,u={events:"panleft panright",typeLower:"x",typeUpper:"X",open_dir:"right",close_dir:"left",negative:!1},c="width",l=u.open_dir,m=function(e){e<=t.maxStartPos&&(g=1)},h=function(){return e("."+s.slideout)},g=0,_=0,v=0,b=this.opts.extensions.all,w="undefined"==typeof b?"left":b.indexOf(s.menu+"_position-right")>-1?"right":b.indexOf(s.menu+"_position-top")>-1?"top":b.indexOf(s.menu+"_position-bottom")>-1?"bottom":"left",y="undefined"==typeof b?"back":b.indexOf(s.menu+"_position-top")>-1||b.indexOf(s.menu+"_position-bottom")>-1||b.indexOf(s.menu+"_position-front")>-1?"front":"back";switch(w){case"top":case"bottom":u.events="panup pandown",u.typeLower="y",u.typeUpper="Y",c="height"}switch(w){case"right":case"bottom":u.negative=!0,m=function(e){e>=i.$wndw[c]()-t.maxStartPos&&(g=1)}}switch(w){case"right":u.open_dir="left",u.close_dir="right";break;case"top":u.open_dir="down",u.close_dir="up";break;case"bottom":u.open_dir="up",u.close_dir="down"}switch(y){case"front":h=function(){return f.$menu}}var x,O=this.__valueOrFn(this.$menu,t.node,i.$page);"string"==typeof O&&(O=e(O));var $=new Hammer(O[0],this.opts[a].vendors.hammer);$.on("panstart",function(e){m(e.center[u.typeLower]),x=h(),l=u.open_dir}),$.on(u.events+" panend",function(e){g>0&&e.preventDefault()}),$.on(u.events,function(e){if(r=e["delta"+u.typeUpper],u.negative&&(r=-r),r!=_&&(l=r>=_?u.open_dir:u.close_dir),_=r,_>t.threshold&&1==g){if(i.$html.hasClass(s.wrapper+"_opened"))return;g=2,f._openSetup(),f.trigger("open:start"),i.$html.addClass(s.dragging),v=n(i.$wndw[c]()*o[c].perc,o[c].min,o[c].max)}2==g&&(p=n(_,10,v)-("front"==y?v:0),u.negative&&(p=-p),d="translate"+u.typeUpper+"("+p+"px )",x.css({"-webkit-transform":"-webkit-"+d,transform:d}))}),$.on("panend",function(e){2==g&&(i.$html.removeClass(s.dragging),x.css("transform",""),f[l==u.open_dir?"_openFinish":"close"]()),g=0})}function o(e,n,t,o){var i=this,p=e.data(r.parent);if(p){p=p.closest("."+s.panel);var d=new Hammer(e[0],i.opts[a].vendors.hammer),f=null;d.on("panright",function(e){f||(i.openPanel(p),f=setTimeout(function(){clearTimeout(f),f=null},i.conf.openingInterval+i.conf.transitionDuration))})}}var i="mmenu",a="drag";e[i].addons[a]={setup:function(){if(this.opts.offCanvas){var n=this.opts[a],s=this.conf[a];d=e[i].glbl,"boolean"==typeof n&&(n={menu:n,panels:n}),"object"!=typeof n&&(n={}),"boolean"==typeof n.menu&&(n.menu={open:n.menu}),"object"!=typeof n.menu&&(n.menu={}),"boolean"==typeof n.panels&&(n.panels={close:n.panels}),"object"!=typeof n.panels&&(n.panels={}),n=this.opts[a]=e.extend(!0,{},e[i].defaults[a],n),n.menu.open&&this.bind("setPage:after",function(){t.call(this,n.menu,s.menu,d)}),n.panels.close&&this.bind("initPanel:after",function(e){o.call(this,e,n.panels,s.panels,d)})}},add:function(){return"function"!=typeof Hammer||Hammer.VERSION<2?(e[i].addons[a].add=function(){},void(e[i].addons[a].setup=function(){})):(s=e[i]._c,r=e[i]._d,p=e[i]._e,void s.add("dragging"))},clickAnchor:function(e,n){}},e[i].defaults[a]={menu:{open:!1,maxStartPos:100,threshold:50},panels:{close:!1},vendors:{hammer:{}}},e[i].configuration[a]={menu:{width:{perc:.8,min:140,max:440},height:{perc:.8,min:140,max:880}},panels:{}};var s,r,p,d}(jQuery); /* * jQuery mmenu dropdown add-on * mmenu.frebsite.nl */ !function(t){var o="mmenu",e="dropdown";t[o].addons[e]={setup:function(){if(this.opts.offCanvas){var r=this,f=this.opts[e],p=this.conf[e];if(a=t[o].glbl,"boolean"==typeof f&&f&&(f={drop:f}),"object"!=typeof f&&(f={}),"string"==typeof f.position&&(f.position={of:f.position}),f=this.opts[e]=t.extend(!0,{},t[o].defaults[e],f),f.drop){var l;this.bind("initMenu:after",function(){if(this.$menu.addClass(i.menu+"_"+e),"string"!=typeof f.position.of){var o=this._getOriginalMenuId();o&&o.length&&(f.position.of='[href="#'+o+'"]')}"string"==typeof f.position.of&&(l=t(f.position.of),f.event=f.event.split(" "),1==f.event.length&&(f.event[1]=f.event[0]),"hover"==f.event[0]&&l.on(s.mouseenter+"-"+e,function(){r.open()}),"hover"==f.event[1]&&this.$menu.on(s.mouseleave+"-"+e,function(){r.close()}))}),this.bind("open:start",function(){this.$menu.data(n.style,this.$menu.attr("style")||""),a.$html.addClass(i.wrapper+"_dropdown")}),this.bind("close:finish",function(){this.$menu.attr("style",this.$menu.data(n.style)),a.$html.removeClass(i.wrapper+"_dropdown")});var h=function(t,o){var e=o[0],n=o[1],s="x"==t?"scrollLeft":"scrollTop",r="x"==t?"outerWidth":"outerHeight",h="x"==t?"left":"top",u="x"==t?"right":"bottom",d="x"==t?"width":"height",c="x"==t?"maxWidth":"maxHeight",m=null,v=a.$wndw[s](),x=l.offset()[h]-=v,b=x+l[r](),w=a.$wndw[d](),g=p.offset.button[t]+p.offset.viewport[t];if(f.position[t])switch(f.position[t]){case"left":case"bottom":m="after";break;case"right":case"top":m="before"}null===m&&(m=x+(b-x)/2'),r=0,s=i.length;r')),l.append(o))}),l&&(this.bind("initMenu:after",function(){this.$menu.addClass(e.menu+"_iconbar-"+c.size).prepend(l)}),"tabs"==c.type)){l.addClass(e.iconbar+"_tabs");var f=l.find("a");f.on(o.click+"-"+n,function(t){var n=a(this);if(n.hasClass(e.iconbar+"__tab_selected"))return void t.stopImmediatePropagation();try{var i=a(n.attr("href"));i.hasClass(e.panel)&&(t.preventDefault(),t.stopImmediatePropagation(),d.__openPanelWoAnimation(i))}catch(o){}}),this.bind("openPanel:start",s)}}},add:function(){e=a[t]._c,i=a[t]._d,o=a[t]._e,e.add(n)},clickAnchor:function(a,t){}},a[t].defaults[n]={add:!1,size:40,top:[],bottom:[]},a[t].configuration[n]={};var e,i,o,r}(jQuery); /* * jQuery mmenu iconPanels add-on * mmenu.frebsite.nl */ !function(e){var i="mmenu",n="iconPanels";e[i].addons[n]={setup:function(){var a=this,l=this.opts[n],d=(this.conf[n],!1);if(s=e[i].glbl,"boolean"==typeof l&&(l={add:l}),"number"!=typeof l&&"string"!=typeof l||(l={add:!0,visible:l}),"object"!=typeof l&&(l={}),"first"==l.visible&&(d=!0,l.visible=1),l=this.opts[n]=e.extend(!0,{},e[i].defaults[n],l),l.visible=Math.min(3,Math.max(1,l.visible)),l.visible++,l.add){for(var r="",o=0;o<=l.visible;o++)r+=" "+t.panel+"_iconpanel-"+o;r.length&&(r=r.slice(1));var c=function(i){if(!i.parent("."+t.listitem+"_vertical").length){var n=a.$pnls.children("."+t.panel).removeClass(r);d&&n.removeClass(t.panel+"_iconpanel-first").first().addClass(t.panel+"_iconpanel-first"),n.filter("."+t.panel+"_opened-parent").removeClass(t.hidden).not(function(){return e(this).parent("."+t.listitem+"_vertical").length}).add(i).slice(-l.visible).each(function(i){e(this).addClass(t.panel+"_iconpanel-"+i)})}};this.bind("initMenu:after",function(){var e=[t.menu+"_iconpanel-"+l.size];l.hideNavbar&&e.push(t.menu+"_hidenavbar"),l.hideDivider&&e.push(t.menu+"_hidedivider"),this.$menu.addClass(e.join(" "))}),this.bind("openPanel:start",c),this.bind("initPanels:after",function(e){c.call(a,a.$pnls.children("."+t.panel+"_opened"))}),this.bind("initListview:after",function(e){!l.blockPanel||e.parent("."+t.listitem+"_vertical").length||e.children("."+t.panel+"__blocker").length||e.prepend('
    ')})}},add:function(){t=e[i]._c,a=e[i]._d,l=e[i]._e},clickAnchor:function(e,i){}},e[i].defaults[n]={add:!1,blockPanel:!0,hideDivider:!1,hideNavbar:!0,size:40,visible:3};var t,a,l,s}(jQuery); /* * jQuery mmenu keyboardNavigation add-on * mmenu.frebsite.nl */ !function(n){function e(e,t){e=e||this.$pnls.children("."+i.panel+"_opened");var a=n(),s=this.$menu.children("."+i.mm("navbars_top")+", ."+i.mm("navbars_bottom")).children("."+i.navbar);s.find(r).filter(":focus").length||("default"==t&&(a=e.children("."+i.listview).find("a[href]").not("."+i.hidden),a.length||(a=e.find(r).not("."+i.hidden)),a.length||(a=s.find(r).not("."+i.hidden))),a.length||(a=this.$menu.children("."+i.tabstart)),a.first().focus())}var t="mmenu",a="keyboardNavigation";n[t].addons[a]={setup:function(){if(!n[t].support.touch){var s=this.opts[a];this.conf[a];if(d=n[t].glbl,"boolean"!=typeof s&&"string"!=typeof s||(s={enable:s}),"object"!=typeof s&&(s={}),s=this.opts[a]=n.extend(!0,{},n[t].defaults[a],s),s.enable){var o=n('' + '
    ' ); } $productsBody.find('.product-list').not('.product-list-empty').remove(); SHOP.categories.lazyLoadProducts.loadStep(data, status, jqXHR); if (!isNaN(productId)) { var $el = $('#buyForm' + productId); if ($el.length) { $('html, body').animate({ scrollTop: $el.offset().top - 100 }, 350); } } }); } else { $.ajax({ url: SHOP.categories.lazyLoadProducts.nextPageUrlFull, dataType: 'html', method: "GET" }).done(function(data, status, jqXHR){ SHOP.categories.lazyLoadProducts.loadStep(data, status, jqXHR); }); } $('.lazyLoadButton .btn').click(function(event) { // add loading $(this).addClass('loading').html(''); $.ajax({ url: SHOP.categories.lazyLoadProducts.nextPageUrlFull, dataType: 'html', method: "GET" }).done(function(data, status, jqXHR){ SHOP.categories.lazyLoadProducts.loadStep(data, status, jqXHR); }); }); $(document).on('click', '.loadMorePrevius', function(event) { // add loading $(this).addClass('loading').html(''); // ajax $.ajax({ url: SHOP.categories.lazyLoadProducts.prevPageUrlFull, dataType: 'html', method: "GET" }).done(function(data, status, jqXHR){ SHOP.categories.lazyLoadProducts.loadPrevStep(data, status, jqXHR); }); }); } }, loadPrevStep: function(data, status, jqXHR) { $('.product-list-loadSkeleton').remove(); // append html var $firstEmpty = $('.module-lazy-products > .container'); if ($firstEmpty.length > 0) { $firstEmpty.prepend(data); } var $noInit = $('.product-list.no-init'), $btn = $('.loadMorePrevius'); // remove focus $btn.blur(); // remove loading $btn.removeClass('loading').html(languageSheet.LOADPREVIOUS); var loadedPageArr = this.prevPageUrlFull.match(/(\?|\&)(page|PAGE)=[0-9]{1,3}/); var loadedPage = 1; if (loadedPageArr.length) { loadedPage = loadedPageArr[0].replace('&', '').replace('?', '').toLowerCase().replace('page=', ''); $noInit.find('a').attr('data-page', loadedPage).click(function(event) { history.scrollRestoration = 'manual'; window.location.hash = $(this).data('page') + '-' + $(this).closest('.buyForm').data('product').id; }); } if (loadedPage > 1) { // get prev url this.prevPageUrlFull = jqXHR.getResponseHeader('fluid-prevPage'); // init buyforms and others $noInit.each(function(i, el) { new Fluid.BuyForm($(el).removeClass('no-init').find('.buyForm')[0]); }); SHOP.categories.loadProdsCallback($noInit); } else { $btn.closest('.loadMorePreviusWrap').remove(); } history.scrollRestoration = 'auto'; }, loadStep: function(data, status, jqXHR) { $('.product-list-loadSkeleton').remove(); // append html var $firstEmpty = $('.module-lazy-products .product-list-empty').first(); if ($firstEmpty.length > 0) { $firstEmpty.before(data); } else { $('.module-lazy-products').append(data); } var $noInit = $('.product-list.no-init'), $btn = $('.lazyLoadButton .btn'), $progressItems = $('.lazyLoadProgress .progress-text-items'); // remove focus $btn.blur(); // remove loading $btn.removeClass('loading').html(languageSheet.LOADMOREPRODUCTS); var loadedPage = 1; var loadedPageArr = this.nextPageUrlFull.match(/(\?|\&)(page|PAGE)=[0-9]{1,3}/); if (loadedPageArr.length) { loadedPage = loadedPageArr[0].replace('&', '').replace('?', '').toLowerCase().replace('page=', ''); $noInit.find('a').attr('data-page', loadedPage).click(function(event) { history.scrollRestoration = 'manual'; window.location.hash = $(this).data('page') + '-' + $(this).closest('.buyForm').data('product').id; }); } // update number and bar var actualItems = $('[data-perpage]').data('perpage') * (loadedPage); var totalItems = parseInt($('.progress-text-total').text()); if(actualItems > totalItems) actualItems = totalItems; $progressItems.html(parseInt(actualItems)); var percentVal = (parseInt(actualItems) * 100) / parseInt($('.lazyLoadProgress .progress-text-total').text()); $('.lazyLoadProgress .progress-bar').attr({ 'aria-valuenow': percentVal, 'style': 'width: ' + percentVal + '%;' }); // if reached total hide button load more if (percentVal >= 100) { $('.lazyLoadButton').addClass('hidden'); $('.lazyLoadProgress ').addClass('reachedTotal'); } // get next url this.nextPageUrlFull = jqXHR.getResponseHeader('fluid-nextPage'); // init buyforms and others $noInit.each(function(i, el) { new Fluid.BuyForm($(el).removeClass('no-init').find('.buyForm')[0]); }); SHOP.categories.loadProdsCallback($noInit); history.scrollRestoration = 'auto'; } }, // callback load productlist ajax loadProdsCallback: function ($buyForms) { $buyForms.each(function(index, el) { if ($(el).index() == 9) { $(el).after($('#cat-source-page-related').html()) } }); }, imgFilterLabelText : function() { $('.form-group.customTagsFilterElement label img').each(function(index, el) { $(this).parents(".form-group").addClass('customTagsFilterElementImage') var textLabel = $(this).attr('alt') || ''; $(this).parents('label').append($('', { class: 'filter-label-img-txt', html: textLabel })) }); }, splitFilterAnchorText : function() { $('a.filterElement').each(function(index, el) { var htmlReplace = SHOP.utils.wrapTextWords( $(el).text() ); $(el).html(htmlReplace); }); }, customOrderByLabels : function() { $('.orderBynameAsc .wrap-word-js:nth-child(2)').text(languageSheet.ORDERBYNAMEASC); $('.orderBynameDesc .wrap-word-js:nth-child(2)').text(languageSheet.ORDERBYNAMEDESC); $('.orderBypriceAsc .wrap-word-js:nth-child(2)').text(languageSheet.ORDERBYPRICEASC); $('.orderBypriceDesc .wrap-word-js:nth-child(2)').text(languageSheet.ORDERBYPRICEDESC); }, shopsFilter: function (){ $(".shopsSelect").change(function(){ // get the data-filter value of the selector var filterValue = $(this).find(":selected").attr('data-filter'); // show all items if(filterValue == "all") { $(".module-cats .all").fadeIn(); $(".module-cats .all").find(".collapse").removeClass('in'); $(".module-cats .all").find(".collapse-toggle").addClass('collapsed'); } else { // hide all items $(".module-cats .all").not('.'+filterValue).hide(); // and then, show only items with selected data-filter value $(".module-cats .all").filter('.'+filterValue).fadeIn(); $(".module-cats .all").filter('.'+filterValue).find(".collapse").addClass('in'); $(".module-cats .all").filter('.'+filterValue).find(".collapse-toggle").removeClass('collapsed'); } }); } }; SHOP.product = { init : function() { if (SHOP.scope.product()) { this.productDetailButtonTitle(); this.genericGalleryZoom(); this.packs(); // this.addAssemblyProduct(); $('.product-page .productOption .productOptionPrompt').append(''); $('.productOptionSelectValue option[value="0"]').prop('disabled', true); SHOP.utils.smothScrollto($('.scroll-to-product-long-description')); this.stickyProductBar.init(); SHOP.product.setUniqueValue($('.productOptions [name*="optionValue"]'), $('.main-product-form')); this.requestInfoForm(); } }, requestInfoForm: function () { $(document).on('change', '#productShopsContactSelect', function (event) { $('[data-uid="customFormProduct"] .emailCopy').val($(this).find(":selected").data('emailto')); }); }, initProductTop: function (){ // init product page top 02 sliders var productTop = $('.product-page-top').data('module'); if (typeof SHOP.module[productTop].init == 'function') { SHOP.module[productTop].init(); } }, // Buy assembly - vinculated prod - version check /*addAssemblyProduct : function(){ $('#assemblyCheck').change(function(event) { if ($(this).prop('checked')) { $('.main-product-form .buyFormVinculatedProduct').val($('#assemblyCheck').data('assembly')) } else { $('.main-product-form .buyFormVinculatedProduct').val(''); } }) },*/ setUniqueValue : function($target, $buyForm) { $target.each(function (index, el) { var $valueContainer = $(el).closest('.productOption').find('.selectedValue'), $option = $(el).closest('.productOption'), idOption = $option.data('fluid-product-option').id, $valueUndefinedContainer = $('.value-' + idOption), value = ''; if ($valueContainer.length || $valueUndefinedContainer.length) { // radios & checkboxes if ($option.find('.productOptionSelected').length) { //value = $option.find('.productOptionSelected label').text(); value = $option.find('.productOptionSelected').data('fluid-product-option-value').value; // selects } else if ($option.find('select.productOptionSelectValue').length) { value = $option.find('select.productOptionSelectValue option:selected').first().text(); } $valueContainer.addClass('hidden').html(value); if (value.length) { $valueContainer.removeClass('hidden').html(value); $valueUndefinedContainer.html(value); } } }); }, cetelemCalculator : function(){ if($('#eCalculadoraCetelemDiv').html() != ""){ $('#eCalculadoraCetelemDiv').html(''); } var priceFormated = $('.main-product-form .product-price .price .integerPrice').text(); priceFormated = priceFormated.replace('.',''); // var price = priceFormated + $('.main-product-form .product-price .price .decimalPrice').text(); codCentro = "LAFABRICA_039"; //cantidad = priceFormated + $('.main-product-form .product-price .price .decimalPrice').text(); cantidad = priceFormated; server = "https://www.cetelem.es"; listadoMeses = ""; Fluid.require.js("https://www.cetelem.es/eCommerceCalculadora/resources/js/eCalculadoraCetelemCombo.js"); }, affixColumnProduct : function() { if (navigator.userAgent.match(/iPad/i) == null && SHOP.stickyHeight.desktop > 0) { try { $('.col-product-left').stickySidebar({ resizeSensor: true, containerSelector: '.product-page-row', innerWrapperSelector: '.inner-wrapper', topSpacing: SHOP.stickyHeight.desktop, bottomSpacing: - $('.product-page-row').find('.product-social-actions').outerHeight() - 30, }); } catch (e) { console.error('SHOP say: affixColumnProduct require "ResizeSensor.min.js" & "jquery.sticky-sidebar.min.js" includes in theme'); } Fluid.events.removeCallback('scroll_throttled', SHOP.product.affixColumnProduct); } }, // v1.0.4 changeImage : function($buyForm, data, $elements, mode) { // get last selected option with large image! var imageSrc = ''; $.each(data.selectedOptions, function(index, optionId) { var valueId = null; var $option = $buyForm.find('.productOption' + optionId); var data = $option.closest('.buyForm').data('product'); // radios & checkboxes if ($option.find('.productOptionSelected').length) { valueId = $option.find('.productOptionSelected').data('fluid-product-option-value').id; // selects } else if ($option.find('select.productOptionSelectValue').length) { valueId = $option.find('select.productOptionSelectValue').val() } if (valueId != null) { var thisImageSrc = data.options['id' + optionId].values['id' + parseInt(valueId)].largeImage; if (thisImageSrc.length) imageSrc = thisImageSrc; } }); if (mode == 'swiper') { if (imageSrc.length) { $elements.each(function(index, swiper) { var existsImg = false, $findedSlide = null, swiperInstance = swiper.swiper; $(swiper).find('img').each(function(index, img) { if ($(img).attr('src') == imageSrc) { existsImg = true; $findedSlide = $(img).closest('.swiper-slide'); return false; } }); $(swiper).find('.item-gallery').removeClass('item-gallery-active'); if (existsImg && $findedSlide) { $findedSlide.addClass('item-gallery-active'); swiperInstance.slideTo($findedSlide.index(), 0); } else { var imgClass = $(swiperInstance.imagesToLoad[0]).attr('class'), slideClass = $(swiperInstance.slides[0]).attr('class'), lastIndex = swiperInstance.slides.length; swiperInstance.addSlide(lastIndex, '' ); swiperInstance.slideTo(lastIndex, 0); } }); } } else if (mode == 'swiper-mlf') { $elements.not('.swiper-additional-gallery').each(function(index, swiper) { var swiperInstance = swiper.swiper; if (imageSrc.length) { // swiperInstance.update(); $(swiper).find('.option-image-item').remove(); var imgClass = $(swiperInstance.imagesToLoad[0]).attr('class'), slideClass = $(swiperInstance.slides[0]).attr('class'); //lastIndex = swiperInstance.slides.length; swiperInstance.addSlide(0, '' ); swiperInstance.slideTo(0, 0); // change item gallery classes $('#swiper-additional-gallery-02 .item-gallery') .removeClass('item-gallery-active'); // $(swiper).find('.swiper-control').addClass('hidden'); } else { // $(swiper).find('.swiper-control').removeClass('hidden'); } swiperInstance.update(); }); } else if (mode == 'static') { if(!$elements.data('original')) $elements.data('original', $elements.attr('src')); if (imageSrc.length) $elements.attr('src', imageSrc); else $elements.attr('src', $elements.data('original')); } }, productDetailButtonTitle : function() { // Add title only if buttons not contain text $('.productDetailContactButton').filter(function(index) { return $.trim($(this).text()).length > 0 ? false : true; }).attr('title', languageSheet.PRODUCTCONTACTBTN); $('.productDetailRecommendButton').filter(function(index) { return $.trim($(this).text()).length > 0 ? false : true; }).attr('title', languageSheet.PRODUCTRECOMENDBTN); }, zoomSlides : [], genericGalleryZoom : function() { $(document).on('click', '.zoom-gallery-img', function(event) { var gallerySkeleton = $('.pswp-zoom-gallery')[0]; // build items array SHOP.product.zoomSlides = []; $('.zoom-gallery-img').each(function(index, el) { SHOP.product.zoomSlides.push({ src: el.src, w: el.naturalWidth, h: el.naturalHeight, }); }); //SHOP.product.zoomSlides = SHOP.utils.removeObjDuplicated(SHOP.product.zoomSlides, 'src'); // http://photoswipe.com/documentation/options.html var options = { galleryUID : 'product-gallery-zoom', index: 0, loop: false, history: false, closeOnScroll: false, focus: false, showHideOpacity: true, clickToCloseNonZoomable: true, showAnimationDuration: 0, hideAnimationDuration: 0, tapToClose: true, spacing: 0, preload: [1, SHOP.product.zoomSlides.length], barsSize: { top: 0, bottom: 'auto' }, // top --> margin img space closeEl: true, captionEl: true, fullscreenEl: true, zoomEl: true, shareEl: false, counterEl: true, arrowEl: true, preloaderEl: false }; var index = $(this).parents('.swiper-slide').index(); var gallery = new PhotoSwipe( gallerySkeleton, PhotoSwipeUI_Default, SHOP.product.zoomSlides, options); gallery.init(); gallery.goTo(index); gallery.updateSize(true); }); }, packs : function() { $('.packBuyForm .buyFormSubmit[data-showlabel="1"]').not('[disabled]') .html(languageSheet.BUYPACK); }, stickyProductBar : { init : function() { SHOP.utils.smothScrollto($('.product-sticky-mobile-btn-href')); SHOP.product.stickyProductBar.onClickStickyButton($('.product-sticky-mobile-btn-href')); //SHOP.utils.makeMeSticky.add($('.product-sticky-bar-mobile'), $('.product-price-info-top'), 'sticky-a'); //SHOP.utils.makeMeSticky.add($('.product-sticky-bar-mobile'), $('.product-actions, .block-button'), 'sticky-b'); }, onChangeOptionText : function(){ var buttonTextConfirm = $(".main-product-form .buyFormSubmit"); if(!buttonTextConfirm.prop("disabled")){ $(".product-sticky-mobile-btn-href").html(languageSheet.BUY); }else{ $(".product-sticky-mobile-btn-href").html(languageSheet.BUYTEXT); } } , onClickStickyButton : function($element){ var buttonTextConfirm = $(".main-product-form .buyFormSubmit"); $element.click(function(){ buttonTextConfirm.click(); }) } }, }; SHOP.pages = { init : function() { if (SHOP.scope.pages()) { this.projectFilter(); this.catalogueFilter(); if ($(".page-contents-container").hasClass('page-contents-project-detail')) { $('.block-breadcrumb').addClass('block-breadcrumb-project-detail'); } this.requestInfoForm(); } }, requestInfoForm: function () { $(document).on('change', '#pageShopsContactSelect', function (event) { //$('[data-uid="customFormPageModule"] .emailCopy').val($(this).find(":selected").data('emailto')); $('.modal-page-module-custom.in .emailCopy').val($(this).find(":selected").data('emailto')); }); }, projectFilter: function (){ $(".projectSelect").change(function(){ // get the data-filter value of the selector var filterValue = $(this).find(":selected").attr('data-filter'); // show all items if(filterValue == "all") { $(".page-contents-projects .all").show("slow"); } else { // hide all items $(".page-contents-projects .all").not('.'+filterValue).hide("slow"); // and then, show only items with selected data-filter value $(".page-contents-projects .all").filter('.'+filterValue).show("slow"); } }); }, catalogueFilter: function (){ var filterValue = $(".catalogueSelect").find(":selected").attr('data-filter'); $(".page-contents-catalogues .all").not('.'+filterValue).hide(); $(".catalogueSelect").change(function(){ // get the data-filter value of the selector var filterValue = $(this).find(":selected").attr('data-filter'); // hide all items $(".page-contents-catalogues .all").not('.'+filterValue).hide(); // and then, show only items with selected data-filter value $(".page-contents-catalogues .all").filter('.'+filterValue).fadeIn(); }); } }; SHOP.user = { init : function() { $('.modal-user #smallLoginForm [name="redirect"]').val('/userWelcome'); if (SHOP.scope.user()) { this.editRefunds(); // Before orders! this.editOrders(); SHOP.utils.tableMobileFirst($('#stockAlertsSubscriptions'), 'stockAlerts'); SHOP.utils.tableMobileFirst($('table.affiliateOrders'), 'affiliateOrders'); this.editPaymentCards(); this.addressBookButtons(); this.addressBookAlias(); this.ePoints(); this.companyExtraText(); this.changeTexts(); this.reorderCountrySelectValues($('[name*="ountry_1"]')); } }, /** * Reorder the countries. Andorra and Spain in first position and add a separator. * @param {object} $select - country