1class Menu{constructor(options){this.options={selector:'.menu',};$.extend(this.options,options);this.window_node=$(window);this.body_node=$('body');this.menu_node=$();this.default_menu_ul_node=$();this.hamburger_menu_handler_node=$();this.hamburger_menu_node=$();this.hamburger_menu_close_node=$();this.hamburger_menu_ul_node=$();this.block_node=$();this.block_container_node=$();this.column_node=$();this.row_node=$();this.window_rect={};this.hamburger_menu_position={};this.hamburger_menu_margin={};this.hamburger_menu_max_width=NaN;this.dropdown_menu_position={};this.dropdown_menu_margin={};this.start();} 2start(){let _this=this;let selectors=this.options.selector.split(',');if(selectors.length>1){for(let x in selectors){let options=$.extend({},this.options);options.selector=selectors[x].trim();new Menu(options);}}else{$(this.options.selector+':not([data-menu_init])').each(function(index){if(index>1){return false;} 3if(index){new Menu(_this.options);}else{_this.menu_node=$(this);_this.block_node=_this.menu_node.parents('header, section, footer').first();_this.block_container_node=_this.block_node.children('.container:first');_this.column_node=_this.menu_node.parents('.col:first');_this.row_node=_this.menu_node.parents('.row:first');_this.default_menu_ul_node=_this.menu_node.find('.default-menu:first ul:first',);_this.hamburger_menu_handler_node=_this.menu_node.find('.hamburger-menu-handler:first',);_this.hamburger_menu_node=_this.menu_node.find('.hamburger-menu:first',);_this.hamburger_menu_close_node=_this.hamburger_menu_node.find('.hamburger-menu-close
3:first',);_this.hamburger_menu_ul_node=_this.hamburger_menu_node.find('ul:first');_this.hamburger_menu_position={top:parseInt(_this.hamburger_menu_node.css('top')),bottom:parseInt(_this.hamburger_menu_node.css('bottom'),),left:parseInt(_this.hamburger_menu_node.css('left'),),right:parseInt(_this.hamburger_menu_node.css('right'),),};_this.hamburger_menu_margin={top:parseInt(_this.hamburger_menu_node.css('margin-top'),),bottom:parseInt(_this.hamburger_menu_node.css('margin-bottom'),),left:parseInt(_this.hamburger_menu_node.css('margin-left'),),right:parseInt(_this.hamburger_menu_node.css('margin-right'),),};_this.hamburger_menu_max_width=parseInt(_this.hamburger_menu_node.css('max-width'),);let dropdown_menu_node=_this.default_menu_ul_node.find('.dropdown-menu:first',);_this.dropdown_menu_position={left:parseInt(dropdown_menu_node.css('left')),right:parseInt(dropdown_menu_node.css('right')),};_this.dropdown_menu_margin={top:parseInt(dropdown_menu_node.css('margin-top')),bottom:parseInt(dropdown_menu_node.css('margin-bottom'),),left:parseInt(dropdown_menu_node.css('margin-left'),),right:parseInt(dropdown_menu_node.css('margin-right'),),};_this.setWindowRect();_this.setEvents();_this.setDefaultMenuEvents();_this.setHamburgerMenuEvents();_this.menu_node.attr('data-menu_init','');}},);}} 4setWindowRect(){let window_width=this.window_node.width();let window_height=this.window_node.height();this.window_rect={width:window_width,height:window_height,top:0,right:window_width,bottom:window_height,left:0,};} 5setEvents(){let _this=this;this.window_node.on('resize',function(){_this.setWindowRect();});this.menu_node.find('nav li > .dropdown-menu, nav li > ul').on('click',function(event){event.stopPropagation();});this.menu_node.find('nav li:has(> .dropdown-menu, > ul) > a').on('mousedown',function(){let a_node=$(this);let submenu_node=a_node.nextAll('.dropdown-menu, ul').first();if(submenu_node.is(':hidden')){a_node.data('prevent_default',true);}}).on('click',function(event){let a_node=$(this);if(a_node.data('prevent_default')){event.preventDefault();}else{event.stopPropagation();} 6setTimeout(function(){a_node.data('prevent_default',false);},1);}).each(function(){this.addEventListener('touchstart',function(){let a_node=$(this);let submenu_node=a_node.nextAll('.dropdown-menu, ul').first();if(submenu_node.is(':hidden')){a_node.data('prevent_default',true);}},{passive:true},);});} 7setDefaultMenuEvents(){let _this=this;this.window_node.on('resize',function(){_this.default_menu_ul_node.find('li.enter:not(.leave)').each(function(){_this.setSubmenuPosition($(this));});});this.default_menu_ul_node.find('li:has(> .dropdown-menu, > ul)').on({mouseenter:function(){let li_node=$(this);if(li_node.children('.dropdown-menu, ul').first().css('position')=='fixed'){li_node.addClass('enter leave').height();_this.setSubmenuPosition(li_node);li_node.removeClass('leave');}},mouseleave:function(){let li_node=$(this);if(li_node.hasClass('enter')){li_node.addClass('leave');}},});this.default_menu_ul_node.find('li > .dropdown-menu, li > ul').on('transitionend',function(event){event.stopPropagation();let submenu_node=$(this);submenu_node.parent('li.leave').removeClass('enter leave');submenu_node.find('li.leave').removeClass('enter leave');if(submenu_node.hasClass('shift')){let submenu_ul_node=submenu_node.is('ul')?submenu_node:submenu_node.children('ul:first');submenu_node.removeClass('shift');submenu_ul_node.css({height:'',width:'',});}});} 8setSubmenuPosition(li_node){let submenu_node=li_node.children('.dropdown-menu, ul').first();if(submenu_node.css('position')!='fixed'){return;} 9submenu_node.removeClass('shift').removeAttr('style');submenu_node.children('ul').removeAttr('style');let is_dropdown=submenu_node.is('.dropdown-menu');let dropdown_menu_node=$();if(is_dropdown){this.setDropdownMenuPosition(li_node,submenu_node);}else{dropdown_menu_node=li_node.parents('.dropdown-menu:first');submenu_node.css({left:dropdown_menu_node[0].getBoundingClientRect().right,top:li_node[0].getBoundingClientRect().top,});} 10let body_rect=this.body_node[0].getBoundingClientRect();let submenu_rect=submenu_node[0].getBoundingClientRect();if(submenu_rect.right>body_rect.right){if(is_dropdown){submenu_node.css('left',submenu_rect.left-(submenu_rect.right-body_rect.right),);}else{let dropdown_menu_rect=dropdown_menu_node[0].getBoundingClientRect();let submenu_width=submenu_node.outerWidth()+ 11parseInt(submenu_node.css('margin-left'))*2;submenu_node.css('left',dropdown_menu_rect.left-submenu_width,);}} 12this.setSubmenuSpacers(li_node,submenu_node);this.shiftSubmenu(li_node,submenu_node);} 13setSubmenuSpacers(li_node,submenu_node){let prev_li_node=li_node.prev('li');let li_spacer_node=li_node.children('.spacer:first');let submenu_spacer_node=submenu_node.children('.spacer:first');let li_spacer_position={};let submenu_spacer_position={};let prev_li_margin_right=0;let prev_li_margin_bottom=0;let li_margin_right=parseInt(li_node.css('margin-right'));let li_margin_bottom=parseInt(li_node.css('margin-bottom'));if(prev_li_node.length){prev_li_margin_right=parseInt(prev_li_node.css('margin-right'));prev_li_margin_bottom=parseInt(prev_li_node.css('margin-bottom'));} 14if(submenu_node.is('.dropdown-menu')){submenu_spacer_position.top=li_node[0].getBoundingClientRect().bottom- 15submenu_node[0].getBoundingClientRect().top;}else{let li_rect=li_node[0].getBoundingClientRect();let submenu_rect=submenu_node[0].getBoundingClientRect();submenu_spacer_position.top=-parseInt(submenu_node.css('margin-top'),);if(submenu_rect.right<li_rect.left){submenu_spacer_position.left
15='100%';submenu_spacer_position.right=-parseInt(submenu_node.css('margin-right'),);}else{submenu_spacer_position.left=-parseInt(submenu_node.css('margin-left'),);}} 16li_spacer_node.removeAttr('style');submenu_spacer_node.removeAttr('style');if(prev_li_margin_right){li_spacer_position.left=-prev_li_margin_right;} 17if(li_margin_right){li_spacer_position.right=-li_margin_right;} 18if(prev_li_margin_bottom){li_spacer_position.top=-prev_li_margin_bottom;} 19if(li_margin_bottom){li_spacer_position.bottom=-li_margin_bottom;} 20if(li_spacer_position){if(!li_spacer_node.length){li_spacer_node=$('<div>',{class:'spacer'});li_node.prepend(li_spacer_node);} 21li_spacer_node.css(li_spacer_position);} 22if(submenu_spacer_position){if(!submenu_spacer_node.length){submenu_spacer_node=$('<div>',{class:'spacer'});submenu_node.prepend(submenu_spacer_node);} 23submenu_spacer_node.css(submenu_spacer_position);}} 24setDropdownMenuPosition(li_node,dropdown_menu_node){if(dropdown_menu_node.data('align_vertical')=='block_bottom'){dropdown_menu_node.css('top',this.block_node[0].getBoundingClientRect().bottom,);}else{dropdown_menu_node.css('top',this.menu_node[0].getBoundingClientRect().bottom,);} 25if(!isNaN(this.dropdown_menu_position.left)||!isNaN(this.dropdown_menu_position.right)){let window_width=$(window).width();let body_rect=this.body_node[0].getBoundingClientRect();if(!isNaN(this.dropdown_menu_position.left)&&body_rect.left){dropdown_menu_node.css('left',this.dropdown_menu_position.left+body_rect.left,);} 26if(!isNaN(this.dropdown_menu_position.right)&&body_rect.right<window_width){dropdown_menu_node.css('right',this.dropdown_menu_position.right+ 27(window_width-body_rect.right),);}}else{let li_rect=li_node[0].getBoundingClientRect();let li_left=Math.round(li_rect.left);let dropdown_menu_width;switch(dropdown_menu_node.data('align_horizontal')){case'center':dropdown_menu_width=dropdown_menu_node.outerWidth();dropdown_menu_node.css('left',li_left+ 28Math.round((li_rect.width-dropdown_menu_width)/ 2,),);break;case'right':dropdown_menu_width=dropdown_menu_node.outerWidth();dropdown_menu_node.css('left',li_rect.right-dropdown_menu_width,);break;default:dropdown_menu_node.css('left',li_left);}}} 29shiftSubmenu(li_node,submenu_node){let dropdown_menu_node=submenu_node.is('.dropdown-menu')?submenu_node:submenu_node.parents('.dropdown-menu:first');if(dropdown_menu_node.data('switch_effect')!='shift'){return;} 30let sibling_li_node=li_node.siblings('.leave:first');let sibling_submenu_node=sibling_li_node.children('.dropdown-menu, ul').first();let sibling_submenu_ul_node=sibling_submenu_node.is('ul')?sibling_submenu_node:sibling_submenu_node.children('ul:first');if(!sibling_submenu_ul_node.length){return;} 31let sibling_submenu_rect=sibling_submenu_node[0].getBoundingClientRect();let sibling_submenu_top=sibling_submenu_rect.top- 32parseInt(sibling_submenu_node.css('margin-top'));let sibling_submenu_left=sibling_submenu_rect.left- 33parseInt(sibling_submenu_node.css('margin-left'));let submenu_rect=submenu_node[0].getBoundingClientRect();let submenu_top=submenu_rect.top-parseInt(submenu_node.css('margin-top'));let submenu_left=submenu_rect.left-parseInt(submenu_node.css('margin-left'));let submenu_ul_node=submenu_node.is('ul')?submenu_node:submenu_node.children('ul:first');let submenu_ul_height=submenu_ul_node.outerHeight();let submenu_ul_width=submenu_ul_node.outerWidth();submenu_node.css({left:sibling_submenu_left,top:sibling_submenu_top,}).height();submenu_ul_node.css({height:sibling_submenu_ul_node.outerHeight(),width:sibling_submenu_ul_node.outerWidth(),}).height();submenu_ul_node.children().css('opacity',0).height();submenu_node.addClass('shift').css({left:submenu_left,top:submenu_top,});submenu_ul_node.css({height:submenu_ul_height,width:submenu_ul_width,}).children().css('opacity','');sibling_li_node.removeClass('enter leave');sibling_submenu_node.removeClass('shift').find('li').removeClass('enter leave');} 34setHamburgerMenuEvents(){let _this=this;this.window_node.on('resize',function(){if(_this.hamburger_menu_node.hasClass('active')){if(_this.hamburger_menu_node.is(':hidden')){_this.hamburger_menu_node.trigger('close');}else{_this.setHamburgerMenuPosition();}}});this.hamburger_menu_handler_node.on('click',function(){if(_this.hamburger_menu_handler_node.hasClass('active')){_this.hamburger_menu_node.trigger('close');}
34else{_this.body_node.find('.hamburger-menu-handler.active').trigger('click');_this.hamburger_menu_node.trigger('open');}});this.hamburger_menu_close_node.on('click',function(){_this.hamburger_menu_node.trigger('close');});this.hamburger_menu_node.find('a[href*="#"]').on('click',function(){let a_node=$(this);if(!a_node.data('prevent_default')){let hostname=location.hostname.replace(/\./g,'\\.');let search=location.search.replace(/\?/g,'\\?');let pattern=new RegExp('^((('+ 35location.protocol+')?//'+ 36hostname+')?'+ 37location.pathname+')?('+ 38search+')?#[\\w\\-]+','i',);if(a_node.attr('href').match(pattern)){_this.hamburger_menu_node.trigger('close');}}});this.hamburger_menu_node.on({open:function(){_this.setHamburgerMenuPosition();_this.hamburger_menu_ul_node.find('li:not(.active).expand').removeClass('expand');_this.hamburger_menu_handler_node.addClass('active');_this.hamburger_menu_node.addClass('active passive').height();_this.hamburger_menu_node.removeClass('passive');},close:function(){_this.hamburger_menu_handler_node.removeClass('active');if(_this.hamburger_menu_node.is(':visible')){_this.hamburger_menu_node.addClass('passive');}else{_this.hamburger_menu_node.removeClass('active');}},transitionend:function(event){event.stopPropagation();if(_this.hamburger_menu_node.hasClass('passive')){_this.hamburger_menu_node.removeClass('active passive');}},});this.hamburger_menu_ul_node.find('li:has(> ul)').on('click',function(){let li_node=$(this);let ul_node=li_node.children('ul:first');if(li_node.hasClass('expand')){ul_node.css('height',ul_node.outerHeight()).height();li_node.addClass('collapse');}else{ul_node.addClass('measure noheight');ul_node.css('height',ul_node.outerHeight());ul_node.removeClass('measure noheight');li_node.siblings('.expand').trigger('click');li_node.addClass('expand collapse').height();li_node.removeClass('collapse');}});this.hamburger_menu_ul_node.find('li > ul').on('transitionend',function(event){event.stopPropagation();let ul_node=$(this);let li_node=$(this).parent('li');if(li_node.hasClass('collapse')){li_node.removeClass('expand collapse');}else{ul_node.css('height','');}});} 39setHamburgerMenuPosition(){this.hamburger_menu_node.removeAttr('style');this.hamburger_menu_close_node.removeAttr('style');let window_width=$(window).width();let handler_rect=this.hamburger_menu_handler_node[0].getBoundingClientRect();let handler_align=handler_rect.left-this.window_rect.left<this.window_rect.right-handler_rect.right?'left':'right';let hamburger_menu_max_width=this.hamburger_menu_max_width+ 40this.hamburger_menu_margin.left+ 41this.hamburger_menu_margin.right;let hamburger_menu_align=null;let hamburger_menu_top=0;if(!isNaN(this.hamburger_menu_max_width)&&hamburger_menu_max_width<this.window_rect.width){hamburger_menu_align=handler_align;if(hamburger_menu_align=='left'){this.hamburger_menu_node.css('right','auto');}else{this.hamburger_menu_node.css('left','auto');} 42this.hamburger_menu_node.css('width','100%');} 43if(!isNaN(this.hamburger_menu_position.top)){hamburger_menu_top=isNaN(this.hamburger_menu_position.bottom)?this.block_node[0].getBoundingClientRect().top:this.hamburger_menu_position.top+this.window_rect.top;this.hamburger_menu_node.css('top',hamburger_menu_top);this.hamburger_menu_close_node.css('top',hamburger_menu_top);if(hamburger_menu_align&&isNaN(this.hamburger_menu_position.bottom)){let container_rect=this.block_container_node[0].getBoundingClientRect();if(hamburger_menu_align=='left'){this.hamburger_menu_close_node.css('left',container_rect.left,);}else{this.hamburger_menu_close_node.css('right',window_width-container_rect.right,);}}else{if(handler_align=='left'){this.hamburger_menu_close_node.css('left',this.window_rect.left,);}else{this.hamburger_menu_close_node.css('right',window_width-this.window_rect.right,);}}}else{if(this.column_node.next('.col').length){hamburger_menu_top=this.column_node[0].getBoundingClientRect().bottom;}else if(this.row_node.next('.row').length){hamburger_menu_top=this.row_node[0].getBoundingClientRect().bottom;}else{hamburger_menu_top=this.block_node[0].getBoundingClientRect().bottom;} 44this.hamburger_menu_node.css('top',hamburger_menu_top);} 45if(!isNaN(this.hamburger_menu_position.bottom)){} 46else{this.hamburger_menu_node.css('max-height',this.window_rect.bottom- 47hamburger_menu_top- 48this.hamburger_menu_margin.top- 49this.hamburger_menu_margin.bottom,);} 50if(!isNaN(this.hamburger_menu_position.left)&&hamburger_menu_align!='right'){let hamburger_menu_left=hamburger_menu_align=='left'&&isNaN(this.hamburger_menu_position.bottom)?this.block_container_node[0].getBoundingClientRect().left:this.window_rect.left;if(hamburger_menu_left){this.hamburger_menu_node.css('left',this.hamburger_menu_position.left+hamburger_menu_left,);}} 51if(!isNaN(this.hamburger_menu_position.right)&&hamburger_menu_align!='left'){let hamburger_menu_right=hamburger_menu_align=='right'&&isNaN(this.hamburger_menu_position.bottom)?this.block_container_node[0].getBoundingClientRect().right:this.window_rect.right;hamburger_menu_right=window_width-hamburger_menu_right;if(hamburger_menu_right){this.hamburger_menu_node.css('right',this.hamburger_menu_position.right+hamburger_menu_right,);}}}}class Scroll{constructor(options){this.options={selector:'[data-scroll_speed], [data-bg_scroll_speed]',};$.extend(this.options,options);this.window_node=$(window);this.body_node=$('body');this.scroll_speed_nodes=$();this.window_rect={};this.screen_size='';this.screen_size_inits=[];this.screen_widths={xs:[0,479],sm:[480,767],md:[768,1023],lg:[1024,1279],};this.scroll_speed_attr='';this.scroll_speed_matrix_attr='';this.scroll_speed_matrix3d_attr='';this.bg_scroll_speed_attr='';this.start();} 52start(){this.setWindowRect();this.setScreenSize();this.setScrollSpeedNodes();this.setScrollSpeedNodes(this.screen_size);this.setBgScrollSpeedNodes();this.setBgScrollSpeedNodes(this.screen_size);this.setBgSizes();this.setScreenSizeEvents();if(this.scroll_speed_nodes.length){this.setScrollSpeeds();this.setEvents();}} 53setWindowRect(){let window_width=this.window_node.width();let window_height=this.window_node.height();this.window_rect={width:window_width,height:window_height,top:0,right:window_width,bottom:window_height,left:0,};} 54setScreenSize(){let prev_screen_size=this.screen_size;this.screen_size='xl';for(let screen_size in this.screen_widths){let min_width=this.screen_widths[screen_size][0];let max_width=this.screen_widths[screen_size][1];if(this.window_rect.width>=min_width&&this.window_rect.width<=max_width){this.screen_size=screen_size;break;}} 55if(this.screen_size!==prev_screen_size){this.scroll_speed_attr='scroll_speed_'+this.screen_size;this.scroll_speed_matrix_attr='scroll_speed_matrix_'+this.screen_size;this.scroll_speed_matrix3d_attr='scroll_speed_matrix3d_'+this.screen_size;this.bg_scroll_speed_attr='bg_scroll_speed_'+this.screen_size;} 56if(this.screen_size_inits.includes(this.screen_size)){return false;} 57this.screen_size_inits.push(this.screen_size);return true;} 58setScrollSpeedNodes(screen_size){let _this=this;let attr=screen_size?this.scroll_speed_attr:'scroll_speed';let scroll_speed_nodes=$('[data-'+attr+']:not([data-'+attr+'_init])',).filter(function(){let node=$(this);let speed=parseInt(this.dataset[attr]);if(!isNaN(speed)&&(speed!==100||screen_size)){node.data(attr,speed);
58let matrix=node.css('transform').match(/^(matrix(?:3d)?)\(([^)]*)/);if(matrix){node.data(attr+'_'+matrix[1],matrix[2].split(', '));} 59node.attr('data-'+attr+'_init','');return _this.scroll_speed_nodes.index(this)===-1;} 60node.removeAttr('data-'+attr);return false;});if(scroll_speed_nodes.length){this.scroll_speed_nodes=this.scroll_speed_nodes.add(scroll_speed_nodes);}} 61setBgScrollSpeedNodes(screen_size){let _this=this;let attr=screen_size?this.bg_scroll_speed_attr:'bg_scroll_speed';let bg_scroll_speed_nodes=$('[data-'+attr+']:not([data-'+attr+'_init])',).filter(function(){let node=$(this);let speed=parseInt(this.dataset[attr]);if(!isNaN(speed)&&(speed!==100||screen_size)){let bg_nodes=node.data('bg_scroll_speed_nodes');if(bg_nodes===undefined){let background_node=node.children('x-shape-bg:first');if(!background_node.length){background_node=node;} 62let media_nodes=background_node.find('> .media-4, > .carousel article > .media-4',);_this.moveBackgroundCss(background_node);media_nodes.has('iframe').each(function(){let media_node=$(this);let media_class=media_node.attr('class');media_node.attr('class','media-4').wrap('<div class="'+media_class+'">');});bg_nodes=background_node.find('> .media-4, > .carousel article > .media-4').children('img, video, .background, .media-4');if(bg_nodes.length){node.data('bg_scroll_speed_nodes',bg_nodes);}} 63if(bg_nodes.length){node.data(attr,speed).attr('data-'+attr+'_init','');return _this.scroll_speed_nodes.index(this)===-1;}} 64node.removeAttr('data-'+attr);return false;});if(bg_scroll_speed_nodes.length){this.scroll_speed_nodes=this.scroll_speed_nodes.add(bg_scroll_speed_nodes,);}} 65setBgSizes(){let _this=this;this.scroll_speed_nodes.each(function(){let node=$(this);if(node.data('bg_scroll_speed_nodes')!==undefined){_this.setBgSize(node,_this.getOffset(this),true);}});} 66moveBackgroundCss(node){let background='';if(node.is('x-shape-bg')){let shape_node=node.children('x-shape:first');if(shape_node.length){background=shape_node.css('background');shape_node.remove();}}else{background=node.css('background');} 67if(background&&background.match(/url\(/)){node.prepend($('<div>',{class:'media-4',html:$('<div>',{class:'background',css:{background:background,},}),}),).css('background','none');}} 68setEvents(){let _this=this;this.window_node.on({resize:function(){_this.setScrollSpeeds();},scroll:function(){_this.setScrollSpeeds();},});} 69setScreenSizeEvents(){let _this=this;this.window_node.on('resize',function(){_this.setWindowRect();let prev_screen_size=_this.screen_size;if(_this.setScreenSize()){let scroll_speed_nodes_length=_this.scroll_speed_nodes.length;_this.setScrollSpeedNodes(_this.screen_size);_this.setBgScrollSpeedNodes(_this.screen_size);if(!scroll_speed_nodes_length&&_this.scroll_speed_nodes.length){_this.setScrollSpeeds();_this.setEvents();}} 70if(_this.screen_size!==prev_screen_size){_this.setBgSizes();}});} 71setScrollSpeeds(){let _this=this;let scroll_top=this.window_node.scrollTop();this.scroll_speed_nodes.each(function(){let rect=this.getBoundingClientRect();if(rect.top<_this.window_rect.bottom){let node=$(this);let data=node.data();let offset=_this.getOffset(this);let top=scroll_top;if(offset.top>_this.window_rect.height){top+=_this.window_rect.height-offset.top;} 72let speed=data[_this.scroll_speed_attr]===undefined?data.scroll_speed===undefined?100:data.scroll_speed:data[_this.scroll_speed_attr];let matrix=data[_this.scroll_speed_matrix_attr]===undefined?data.scroll_speed_matrix:data[_this.scroll_speed_matrix_attr];let matrix3d=data[_this.scroll_speed_matrix3d_attr]===undefined?data.scroll_speed_matrix3d:data[_this.scroll_speed_matrix3d_attr];_this.adjustPosition(node,speed,top,matrix,matrix3d);if(data.bg_scroll_speed_nodes){let bg_speed=data[_this.bg_scroll_speed_attr]===undefined?data.bg_scroll_speed===undefined?100:data.bg_scroll_speed:data[_this.bg_scroll_speed_attr];_this.setBgSize(node,offset);_this.adjustPosition(data.bg_scroll_speed_nodes,bg_speed,top,);}}});} 73setBgSize(node,offset,force){let data=node.data();if(force||data.scroll_speed_offset===undefined||data.scroll_speed_offset.top!==offset.top){node.data('scroll_speed_offset',offset);let scroll_distance=offset.top<this.window_rect.height?offset.top:this.window_rect.height;let scroll_speed=data[this.scroll_speed_attr]===undefined?data.scroll_speed===undefined?100:data.scroll_speed:data[this.scroll_speed_attr];let height=node.outerHeight();let multiplier=scroll_speed / 100;let bg_scroll_speed=data[this.bg_scroll_speed_attr]===undefined?data.bg_scroll_speed===undefined?100:data.bg_scroll_speed:data[this.bg_scroll_speed_attr];let bg_multiplier=(100-bg_scroll_speed)/ 100;let bg_top='';let bg_bottom=0;if(bg_multiplier<0){scroll_distance+=height;bg_multiplier*=-1;bg_top=0;bg_bottom='';} 74let bg_overflow=(scroll_distance*bg_multiplier)/ multiplier;let bg_scale=((height+bg_overflow)/ height)*100;data.bg_scroll_speed_nodes.css({bottom:bg_bottom,height:bg_scale+'%',position:'absolute',top:bg_top,});}} 75adjustPosition(nodes,scroll_speed,scroll_top,matrix,matrix3d){if(scroll_speed===100){nodes.css('transform','');}else{let translate_y=scroll_top*((100-scroll_speed)/ 100);if(matrix){let new_matrix=[...matrix];new_matrix[5]=parseFloat(matrix[5])+translate_y;new_matrix=new_matrix.join(', ');nodes.css('transform','matrix('+new_matrix+')');}else if(matrix3d){let new_matrix3d=[...matrix3d];new_matrix3d[13]=parseFloat(matrix3d[13])+translate_y;new_matrix3d=new_matrix3d.join(', ');nodes.css('transform','matrix3d('+new_matrix3d+')');}else{nodes.css('transform','translateY('+translate_y+'px)');}}} 76getOffset(element){let top=0;let left=0;do{top+=element.offsetTop||0;left+=element.offsetLeft||0;element=element.offsetParent;}while(element);return{top,left};}}class Sticky{constructor(options){this.options={selector:'[data-sticky]',};$.extend(this.options,options);this.window_node=$(window);this.active_nodes=$();this.passive_nodes=$();this.screen_width='xs';this.start();} 77start(){this.sticky_nodes=$(this.options.selector).not(['data-sticky_init']);if(this.sticky_nodes.length){this.setScreenWidth();this.setNodes();this.setTops();
77this.setZindexes();this.setClasses();this.setEvents();this.sticky_nodes.attr('data-sticky_init','');}} 78setEvents(){let _this=this;if(this.sticky_nodes.length>1){this.window_node.on('resize',function(){_this.setScreenWidth();_this.setNodes();_this.setTops();_this.setClasses();_this.resetPassive();});} 79this.window_node.on('scroll',function(){_this.setClasses();});} 80setScreenWidth(){let window_width=this.window_node.width();switch(true){case window_width<480:this.screen_width='xs';break;case window_width<768:this.screen_width='sm';break;case window_width<1024:this.screen_width='md';break;case window_width<1280:this.screen_width='lg';break;default:this.screen_width='xl';}} 81setNodes(){this.active_nodes=this.sticky_nodes.filter(':visible').filter('[data-sticky=""], [data-sticky="sticky"], [data-sticky*="'+ 82this.screen_width+'"]',);this.passive_nodes=this.sticky_nodes.filter(':hidden, :not([data-sticky=""]):not([data-sticky="sticky"]):not([data-sticky*="'+ 83this.screen_width+'"])',);} 84setTops(){let sticky_top=0;this.active_nodes.each(function(){let sticky_node=$(this);sticky_node.data('sticky_top',sticky_top).css('top',sticky_top);sticky_top+=sticky_node.outerHeight(true);});} 85setZindexes(){this.active_nodes.each(function(){let sticky_node=$(this);let sticky_zindex=parseInt(sticky_node.css('z-index'));if(!isNaN(sticky_zindex)&&sticky_zindex&&sticky_zindex<10){sticky_node.css('z-index',sticky_zindex+10);}});} 86setClasses(){let scroll_top=this.window_node.scrollTop();this.active_nodes.each(function(){let sticky_node=$(this);let sticky_top=sticky_node.data('sticky_top');let sticky_rect=sticky_node[0].getBoundingClientRect();if(scroll_top&&sticky_rect.top<=sticky_top){sticky_node.addClass('sticky');}else{sticky_node.removeClass('sticky');}});} 87resetPassive(){this.passive_nodes.css({top:'',zIndex:''}).removeClass('sticky');}}class Carousel{constructor(options){this.options={selector:'.carousel',};$.extend(this.options,options);this.window_node=$(window);this.carousel_node=$();this.items_node=$();this.item_nodes=$();this.prev_node=$();this.next_node=$();this.play_node=$();this.stop_node=$();this.timeline_node=$();this.bullet_nodes=$();this.thumbnails_parent_node=$();this.thumbnails_node=$();this.thumbnail_nodes=$();this.slide=false;this.autoplay=false;this.interval=5000;this.thumbnail_slide=false;this.item_index=0;this.item_count=0;this.timer=null;this.start();} 88start(){let _this=this;let selectors=this.options.selector.split(',');if(selectors.length>1){for(let x in selectors){let options=$.extend({},this.options);options.selector=selectors[x].trim();new Carousel(options);}}else{$(this.options.selector+':not([data-carousel_init])').each(function(index){if(index>1){return false;} 89if(index){new Carousel(_this.options);}else{_this.carousel_node=$(this);_this.items_node=_this.carousel_node.find('.items:first');_this.item_nodes=_this.items_node.children('article');_this.item_count=_this.item_nodes.length;_this.prev_node=_this.carousel_node.find('.previous:first');_this.next_node=_this.carousel_node.find('.next:first');_this.play_node=_this.carousel_node.find('.play:first');_this.stop_node=_this.carousel_node.find('.stop:first');_this.timeline_node=_this.carousel_node.find('.timeline:first');_this.bullet_nodes=_this.carousel_node.find('.bullet');_this.thumbnails_node=_this.carousel_node.find('.thumbnails').first();_this.thumbnails_parent_node=_this.thumbnails_node.parent();_this.thumbnail_nodes=_this.thumbnails_node.find('a.thumbnail, .thumbnail a',);if(_this.carousel_node.data('carousel_slide')!==undefined){_this.slide=true;} 90if(_this.carousel_node.data('carousel_autoplay')!==undefined){_this.autoplay=true;} 91let interval=parseInt(_this.carousel_node.data('carousel_interval'),);if(interval){_this.interval=interval;} 92if(_this.carousel_node.data('carousel_thumbnail_slide',)!==undefined){_this.thumbnail_slide=true;} 93let active_item=parseInt(_this.carousel_node.data('carousel_active_item'),);if(active_item&&active_item>1&&active_item<=_this.item_nodes.length){_this.item_index=active_item-1;}else{_this.carousel_node[0].dataset.carousel_active_item=_this.item_index+1;} 94let active_item_node=_this.item_nodes.filter('.active:first');let active_item_index=_this.item_nodes.index(active_item_node);
94if(active_item_index!==_this.item_index){_this.item_nodes.eq(_this.item_index).addClass('notransition active').height();_this.item_nodes.eq(_this.item_index).removeClass('notransition');_this.bullet_nodes.eq(_this.item_index).addClass('active');_this.thumbnail_nodes.eq(_this.item_index).addClass('active');if(active_item_index!==-1){_this.item_nodes.eq(active_item_index).addClass('notransition').removeClass('active').height();_this.item_nodes.eq(active_item_index).removeClass('notransition');_this.bullet_nodes.eq(active_item_index).removeClass('active');_this.thumbnail_nodes.eq(active_item_index).removeClass('active');}} 95_this.carousel_node[0].dispatchEvent(new Event('change'),);_this.setEvents();if(_this.autoplay){if(_this.stop_node.length){_this.play_node.hide();}else{_this.play_node.toggleClass('play stop');} 96_this.setTimer();}else{_this.stop_node.hide();} 97if(_this.thumbnail_slide){let active_thumbnail_node=_this.thumbnail_nodes.eq(_this.item_index);let thumbnails_width=0;_this.thumbnail_nodes.each(function(index){let thumbnail_node=$(this);let img_node=thumbnail_node.find('img:first');if(img_node.width()){thumbnails_width+=thumbnail_node.outerWidth();if(index+1==_this.item_count){_this.setThumbnails(active_thumbnail_node,thumbnails_width,);}}else{img_node.on('load',function(){thumbnails_width+=thumbnail_node.outerWidth(true);if(index+1==_this.item_count){_this.setThumbnails(active_thumbnail_node,thumbnails_width,);}});}});} 98_this.carousel_node.attr('data-carousel_init','');}},);}} 99setThumbnails(thumbnail_node,thumbnails_width){if(!thumbnail_node){thumbnail_node=this.thumbnail_nodes.eq(this.item_index);} 100if(thumbnail_node.length){let init=thumbnails_width?true:false;let parent_width=this.thumbnails_parent_node.width();let parent_center=Math.round(parent_width / 2);let thumbnails_gap=parseInt(this.thumbnails_node.css('column-gap'),);let thumbnails_left=0;let thumbnail_width=thumbnail_node.outerWidth(true);let thumbnail_position=thumbnail_node.position();let thumbnail_left=thumbnail_position.left;let thumbnail_center=thumbnail_left+Math.round(thumbnail_width / 2);if(!thumbnails_width){thumbnails_width=0;this.thumbnail_nodes.each(function(){thumbnails_width+=$(this).outerWidth(true);});} 101if(thumbnails_gap&&this.thumbnail_nodes.length>1){thumbnails_width+=thumbnails_gap*(this.thumbnail_nodes.length-1);} 102if(thumbnails_width>parent_width&&parent_center<thumbnail_center){let max_thumbnails_left=parent_width-thumbnails_width;thumbnails_left=-(thumbnail_center-parent_center);if(thumbnails_left<max_thumbnails_left){thumbnails_left=max_thumbnails_left;}} 103if(init){this.thumbnails_node.addClass('notransition').css('left',thumbnails_left).height();this.thumbnails_node.removeClass('notransition');}else{this.thumbnails_node.css('left',thumbnails_left);}}} 104setEvents(){let _this=this;let item_node=this.item_nodes.first();this.window_node.on('resize',function(){if(_this.thumbnail_slide){_this.setThumbnails();}});this.carousel_node.on('prev',function(){_this.showItem(_this.item_index-1);});this.carousel_node.on('next',function(){_this.showItem(_this.item_index+1);});let touch_x_start=0;let touch_y_start=0;let touch_x_end=0;let touch_y_end=0;let prev_touch_x=0;let prev_touch_y=0;let touch_time_start=0;let active_item_node=$();let prev_item_node=$();let next_item_node=$();let item_nodes=$();if(this.items_node.length&&this.item_nodes.length>1){this.items_node.get(0).addEventListener('touchstart',function(event){prev_touch_x=event.touches[0].pageX;prev_touch_y=event.touches[0].pageY;touch_x_start=prev_touch_x;touch_y_start=prev_touch_y;touch_x_end=prev_touch_x;touch_y_end=prev_touch_y;touch_time_start=event.timeStamp;if(_this.slide){active_item_node=_this.item_nodes.eq(_this.item_index,);prev_item_node=_this.item_nodes.eq(_this.translateIndex(_this.item_index-1),);next_item_node=_this.item_nodes.eq(_this.translateIndex(_this.item_index+1),);item_nodes=active_item_node.add(prev_item_node).add(next_item_node).addClass('notransition');prev_item_node.css('left','-100%');next_item_node.css('left','100%');}},{passive:true},);this.items_node.get(0).addEventListener('touchmove',function(event){let touch_x=event.touches[0].pageX;let touch_y=event.touches[0].pageY;let touch_x_move=touch_x-prev_touch_x;let touch_y_move=touch_y-prev_touch_y;if(Math.abs(touch_x_move)>Math.abs(touch_y_move)){event.stopPropagation();if(_this.slide){let active_item_left=active_item_node.position().left+touch_x_move;let prev_item_left=prev_item_node.position().left+touch_x_move;let next_item_left=next_item_node.position().left+touch_x_move;let active_item_width=active_item_node.width();if(active_item_left<-active_item_width){active_item_left='-100%';prev_item_left='-200%';next_item_left=0;} 105if(active_item_left>active_item_width){active_item_left='100%';prev_item_left=0;next_item_left='200%';} 106active_item_node.css('left',active_item_left);prev_item_node.css('left',prev_item_left);next_item_node.css('left',next_item_left);}} 107prev_touch_x=touch_x;prev_touch_y=touch_y;touch_x_end=touch_x;
107touch_y_end=touch_y;},{passive:true},);this.items_node.get(0).addEventListener('touchend',function(event){if(_this.slide){item_nodes.height();item_nodes.removeClass('notransition');} 108let touch_x_moved=touch_x_end-touch_x_start;let touch_y_moved=touch_y_end-touch_y_start;if(touch_x_moved){let item_index=_this.item_index;if(Math.abs(touch_x_moved)>Math.abs(touch_y_moved*2)){let touch_time_end=event.timeStamp;let touch_time=touch_time_end-touch_time_start;let swipe=Math.abs(touch_x_moved)>=50&&touch_time<=250;if(_this.slide){let item_width=item_node.width();let items_moved=touch_x_moved / item_width;item_index-=swipe?touch_x_moved>0?Math.ceil(items_moved):Math.floor(items_moved):Math.round(items_moved);}else if(swipe){item_index+=touch_x_moved>0?-1:1;}} 109if(_this.slide){if(item_index>_this.item_index){active_item_node.css('left','-100%');prev_item_node.css('left','-100%');next_item_node.css('left',0);}else if(item_index<_this.item_index){active_item_node.css('left','100%');prev_item_node.css('left',0);next_item_node.css('left','100%');}else{active_item_node.css('left',0);prev_item_node.css('left','-100%');next_item_node.css('left','100%');}} 110_this.showItem(item_index,true);}},{passive:true},);} 111this.prev_node.on('click',function(event){event.preventDefault();_this.carousel_node.trigger('prev');});this.next_node.on('click',function(event){event.preventDefault();_this.carousel_node.trigger('next');});this.play_node.on('click',function(event){event.preventDefault();let is_stop=false;if(_this.stop_node.length){_this.play_node.hide();_this.stop_node.show();}else{is_stop=_this.play_node.hasClass('stop');_this.play_node.toggleClass('play stop');} 112_this.autoplay=is_stop==false;_this.setTimer(is_stop);});this.stop_node.on('click',function(event){event.preventDefault();_this.autoplay=false;_this.play_node.show();_this.stop_node.hide();_this.setTimer(true);});this.bullet_nodes.on('click',function(event){event.preventDefault();let bullet_node=$(this);let index=_this.bullet_nodes.index(bullet_node);_this.showItem(index);});this.thumbnail_nodes.on('click',function(event){event.preventDefault();let thumbnail_node=$(this);let index=_this.thumbnail_nodes.index(thumbnail_node);_this.showItem(index);});} 113showItem(index,touch){let active_index=this.item_index;let new_index=this.translateIndex(index);if(new_index===active_index){return;} 114let active_item_node=this.item_nodes.eq(active_index);let active_effect_nodes=active_item_node.find('[data-effect]');
114let active_video_node=active_item_node.find('video, iframe').first();let active_bullet_node=this.bullet_nodes.eq(active_index);let active_thumbnail_node=this.thumbnail_nodes.eq(active_index);let new_item_node=this.item_nodes.eq(new_index);let new_effect_nodes=new_item_node.find('[data-effect]');let new_bullet_node=this.bullet_nodes.eq(new_index);let new_thumbnail_node=this.thumbnail_nodes.eq(new_index);if(this.slide&&!touch){if(index<active_index){new_item_node.addClass('notransition').css('left','-100%').height();new_item_node.removeClass('notransition');active_item_node.css('left','100%');}else{new_item_node.addClass('notransition').css('left','100%').height();new_item_node.removeClass('notransition');active_item_node.css('left','-100%');} 115new_item_node.css('left',0);} 116active_item_node.removeClass('active');new_item_node.addClass('active');active_bullet_node.removeClass('active');new_bullet_node.addClass('active');active_thumbnail_node.removeClass('active');new_thumbnail_node.addClass('active');this.item_index=new_index;this.carousel_node[0].dataset.carousel_active_item=this.item_index+1;this.carousel_node[0].dispatchEvent(new Event('change'));active_effect_nodes.trigger('effectrevert');new_effect_nodes.trigger('effectstart');
116if(active_video_node.length){if(active_video_node.is('video')){active_video_node[0].pause();}else{let video_src=active_video_node.attr('src')||'';let channel_matches=video_src.match(/^(?:https?:)?\/\/(?:[a-z0-9\-.]+\.)?(youtube|vimeo)\.com\//i,);if(channel_matches){let channel_data='';switch(channel_matches[1]){case'youtube':break;case'vimeo':channel_data='{"method": "pause"}';} 117if(channel_data){active_video_node[0].contentWindow.postMessage(channel_data,'*',);}else{video_src=video_src.replace('?autoplay=1&','?');video_src=video_src.replace('?autoplay=1','');video_src=video_src.replace('&autoplay=1','');active_video_node.attr('src',video_src);}}}} 118if(this.autoplay){this.setTimer();} 119if(this.thumbnail_slide){this.setThumbnails(new_thumbnail_node);}} 120setTimer(stop){let _this=this;if(this.timeline_node.length){this.timeline_node.stop().css('padding-right','100%');if(!stop){this.timeline_node.animate({'padding-right':0},this.interval,'linear',function(){let item_index=_this.item_index+1;_this.showItem(item_index);_this.setTimer();},);}}else{if(this.timer){clearTimeout(this.timer);} 121if(!stop){this.timer=setTimeout(function(){let item_index=_this.item_index+1;_this.showItem(item_index);_this.setTimer();},this.interval);}}} 122translateIndex(index){if(index<0){return this.item_count+index;} 123if(index>=this.item_count){return index-this.item_count;} 124return index;}}class Slider{constructor(options){this.options={selector:'.slider',};$.extend(this.options,options);this.window_node=$(window);this.slider_node=$();this.prev_node=$();this.next_node=$();this.viewport_node=$();this.items_node=$();this.item_nodes=$();this.autoplay=false;this.interval=5000;this.viewport_width=0;this.items_width=0;this.items_left=0;this.items_max_left=0;this.item_width=0;this.computed_item_width=0;this.item_index=0;this.item_count=0;this.timer=null;this.disabled=true;this.start();} 125start(){let _this=this;let selectors=this.options.selector.split(',');if(selectors.length>1){for(let x in selectors){let options=$.extend({},this.options);options.selector=selectors[x].trim();new Slider(options);}}else{$(this.options.selector+':not([data-slider_init])').each(function(index){if(index>1){return false;} 126if(index){new Slider(_this.options);}else{_this.slider_node=$(this);_this.prev_node=_this.slider_node.find('.previous:first');_this.next_node=_this.slider_node.find('.next:first');_this.items_node=_this.slider_node.find('.items:first');_this.item_nodes=_this.items_node.children('article');_this.item_count=_this.item_nodes.length;_this.viewport_node=_this.items_node.parent();if(_this.slider_node.data('slider_autoplay')!==undefined){_this.autoplay=true;} 127let interval=parseInt(_this.slider_node.data('slider_interval'),);if(interval){_this.interval=interval;} 128let active_item=parseInt(_this.slider_node.data('slider_active_item'),);if(active_item&&active_item>1&&active_item<=_this.item_nodes.length){_this.item_index=active_item-1;}else{_this.slider_node[0].dataset.slider_active_item=_this.item_index+1;} 129_this.slider_node[0].dispatchEvent(new Event('change'));_this.item_nodes.each(function(index){let item_node=$(this);let img_node=item_node.find('img:first');if(!img_node.length||img_node.width()){_this.items_width+=item_node.outerWidth();if(index+1==_this.item_count){_this.setWidths();}}else{img_node.on('load',function(){_this.items_width+=item_node.outerWidth();if(index+1==_this.item_count){_this.setWidths();}});}});_this.setEvents();_this.setTimer();_this.slider_node.attr('data-slider_init','');}},);}} 130setWidths(){let viewport_width=this.viewport_node.width();if(viewport_width===this.viewport_width){return;} 131this.viewport_width=viewport_width;this.item_width=this.computed_item_width=this.item_nodes.first().css('width','').outerWidth();if(viewport_width%this.item_width){let viewport_item_count=Math.floor(viewport_width / this.item_width)||1;this.computed_item_width=viewport_width / viewport_item_count;this.item_nodes.css('width',this.computed_item_width);this.items_width=this.computed_item_width*this.item_count;} 132this.items_max_left=this.viewport_width-this.items_width;this.showItem(this.item_index,true);this.setDisabled();} 133setDisabled(){let disabled=this.items_width<=this.viewport_width;if(disabled!==this.disabled){this.disabled=disabled;if(disabled){this.items_node.addClass('notransition').css('left','').height();this.items_node.removeClass('notransition');this.prev_node.addClass('disabled');this.next_node.addClass('disabled');this.setTimer(true);}else{this.prev_node.removeClass('disabled');this.next_node.removeClass('disabled');}}} 134setEvents(){let _this=this;this.window_node.on('resize',function(){_this.setWidths();});this.slider_node.on('prev',function(){_this.showItem(_this.item_index-1);});this.slider_node.on('next',function(){_this.showItem(_this.item_index+1);});let touch_x_start=0;let touch_y_start=0;let touch_x_end=0;let touch_y_end=0;let prev_touch_x=0;let prev_touch_y=0;let touch_time_start=0;if(this.items_node.length){this.items_node.get(0).addEventListener('touchstart',function(event){if(!_this.disabled){prev_touch_x=event.touches[0].pageX;prev_touch_y=event.touches[0].pageY;touch_x_start=prev_touch_x;
134touch_y_start=prev_touch_y;touch_x_end=prev_touch_x;touch_y_end=prev_touch_y;touch_time_start=event.timeStamp;_this.items_node.addClass('notransition');}},{passive:true},);this.items_node.get(0).addEventListener('touchmove',function(event){if(!_this.disabled){let touch_x=event.touches[0].pageX;let touch_y=event.touches[0].pageY;let touch_x_move=touch_x-prev_touch_x;let touch_y_move=touch_y-prev_touch_y;if(Math.abs(touch_x_move)>Math.abs(touch_y_move)){event.stopPropagation();_this.items_left+=touch_x_move;if(_this.items_left>0){_this.items_node.prepend(_this.items_node.children('article:last'),);_this.items_left=-_this.computed_item_width;}else if(_this.items_left<_this.items_max_left){_this.items_node.append(_this.items_node.children('article:first'),);_this.items_left=_this.items_max_left+ 135_this.computed_item_width;} 136_this.items_node.css('left',_this.items_left);let item_index=Math.round(Math.abs(_this.items_left)/ 137_this.computed_item_width,);let item_node=_this.items_node.find('article:eq('+item_index+')',);_this.item_index=_this.item_nodes.index(item_node);} 138prev_touch_x=touch_x;prev_touch_y=touch_y;touch_x_end=touch_x;touch_y_end=touch_y;}},{passive:true},);this.items_node.get(0).addEventListener('touchend',function(event){if(!_this.disabled){_this.items_node.height();_this.items_node.removeClass('notransition');let touch_x_moved=touch_x_end-touch_x_start;let touch_y_moved=touch_y_end-touch_y_start;if(touch_x_moved){if(Math.abs(touch_x_moved)>Math.abs(touch_y_moved*2)){let touch_time_end=event.timeStamp;let touch_time=touch_time_end-touch_time_start;let swipe=Math.abs(touch_x_moved)>=50&&touch_time<=250;if(swipe){_this.showItem(touch_x_moved>0?_this.item_index-1:_this.item_index+1,);return;}} 139if(_this.items_left%_this.computed_item_width){_this.items_left=Math.round(_this.items_left / 140_this.computed_item_width,)*_this.computed_item_width;_this.items_node.css('left',_this.items_left);}}}},{passive:true},);} 141this.prev_node.on('click',function(event){event.preventDefault();if(!_this.prev_node.hasClass('disabled')){_this.slider_node.trigger('prev');}});this.next_node.on('click',function(event){event.preventDefault();if(!_this.next_node.hasClass('disabled')){_this.slider_node.trigger('next');}});} 142showItem(index,force){let active_index=this.item_index;let new_index=this.translateIndex(index);if(new_index===active_index&&!force){return;} 143let new_item_node=this.item_nodes.eq(new_index);let computed_new_index=this.items_node.find('article').index(new_item_node);if(index<active_index){if(computed_new_index==this.item_count-1){computed_new_index=-1;}}else if(index>active_index){if(!computed_new_index){computed_new_index=this.item_count;}} 144this.items_left=-this.computed_item_width*computed_new_index;if(this.items_left>0||this.items_left<this.items_max_left){if(index<active_index){this.items_left=0;this.items_node.addClass('notransition').css('left',-this.computed_item_width).prepend(this.items_node.children('article:last')).height();}else{this.items_left=this.items_max_left;this.items_node.addClass('notransition').css('left',this.items_max_left+this.computed_item_width).append(this.items_node.children('article:first')).height();} 145this.items_node.removeClass('notransition');} 146if(force){this.items_node.addClass('notransition').css('left',this.items_left).height();this.items_node.removeClass('notransition');}else{this.items_node.css('left',this.items_left);} 147this.item_index=new_index;this.slider_node[0].dataset.slider_active_item=this.item_index+1;this.slider_node[0].dispatchEvent(new Event('change'));this.setTimer();} 148setTimer(stop){if(this.autoplay){if(this.timer){clearTimeout(this.timer);} 149if(!stop&&!this.disabled){let _this=this;this.timer=setTimeout(function(){_this.showItem(_this.item_index+1);_this.setTimer();},this.interval);}}} 150translateIndex(index){if(index<0){return this.item_count+index;} 151if(index>=this.item_count){return index-this.item_count;} 152return index;}}class Effect{constructor(options){this.options={selector:'[data-effect]',};$.extend(this.options,options);this.start();} 153start(){this.effect_nodes=$(this.options.selector).not('[data-effect_init]');if(this.effect_nodes.length){this.setHeights();this.setEvents();this.setEffects();this.effect_nodes.attr('data-effect_init','');}} 154setHeights(){this.effect_nodes.each((index,element)=>{let effect_node=$(element);effect_node.data('effect_height',effect_node.outerHeight());});} 155setEvents(){$(window).on({resize:()=>{this.setHeights();this.setEffects();},scroll:()=>{this.setEffects();},});this.effect_nodes.each((index,element)=>{let effect_node=$(element);effect_node.attr('data-effect_init','').on('effectstart',(event)=>{event.stopPropagation();if(effect_node.data('effect_type')!='start'){if(!effect_node.hasClass('effect-start')){effect_node.addClass('effect-start').height();effect_node.find('img:first').height();} 156effect_node.addClass('effect-play').removeClass('effect-start').data('effect_type','
156start');}}).on('transitionend',(event)=>{event.stopPropagation();effect_node.removeClass('effect-play');switch(effect_node.data('effect_type')){case'start':effect_node.addClass('effect-end');break;case'revert':effect_node.removeClass('effect-start');} 157effect_node.data('effect_type','');});if(effect_node.data('effect_revert')!==undefined){effect_node.on('effectrevert',(event)=>{event.stopPropagation();if(effect_node.data('effect_type')!='revert'){effect_node.addClass('effect-play effect-start').removeClass('effect-end').data('effect_type','revert');}});}});} 158setEffects(){let scroll_top=$(window).scrollTop();this.effect_nodes.each((index,element)=>{let effect_node=$(element);let effect_top=0;let effect_height=effect_node.data('effect_height');let effect_start_is_custom=effect_node.data('effect_start')!==undefined;let effect_start=String(effect_node.data('effect_start')||'');let effect_start_position=0;if(effect_start.match(/^\d+px$/)){effect_start_position=window.innerHeight-parseInt(effect_start);}else if(effect_start.match(/^\d+/)){effect_start_position=window.innerHeight*((100-parseInt(effect_start))/ 100);}else{effect_start_position=window.innerHeight / 2;} 159effect_start_position=parseInt(Math.round(effect_start_position));if(effect_node.hasClass('effect-start')){effect_top=effect_node.data('effect_top');}else{effect_top=effect_node.offset().top;effect_node.data('effect_top',effect_top);} 160let effect_rect={top:effect_top-scroll_top,bottom:effect_top+effect_height-scroll_top,};if(!effect_node.hasClass('effect-end')){if(effect_rect.top<=effect_start_position||(!effect_start_is_custom&&effect_rect.bottom<=window.innerHeight)){effect_node.trigger('effectstart');}}else if(effect_node.data('effect_revert')!==undefined){if(effect_rect.top>effect_start_position&&(effect_start_is_custom||effect_rect.bottom>window.innerHeight)){effect_node.trigger('effectrevert');}}});}}class Form{constructor(options){this.options={selector:'form[data-form_type]',};$.extend(this.options,options);this.window_node=$(window);this.document_node=$(document);this.body_node=$('body');this.page_node=$();this.form_node=$();this.recaptcha_nodes=$('.g-recaptcha');this.fixed_top_node=$();this.window_rect={};this.hold=false;this.recaptcha_type='';this.recaptcha_site_key='';this.recaptcha_index=0;this.start();} 161start(){let _this=this;let selectors=this.options.selector.split(',');if(selectors.length>1){for(let x in selectors){let options=$.extend({},this.options);options.selector=selectors[x].trim();new Form(options);}}else{$(this.options.selector+':not([data-form_init])').each(function(index){if(index>1){return false;} 162if(index){new Form(_this.options);}else{_this.form_node=$(this);_this.page_node=_this.form_node.parents('.page:first');let recaptcha_node=_this.form_node.children('.g-recaptcha:first');_this.recaptcha_type=recaptcha_node.data('type');_this.recaptcha_site_key=recaptcha_node.data('sitekey');_this.recaptcha_index=_this.recaptcha_nodes.index(recaptcha_node);switch(_this.recaptcha_type){case'v2_invisible':case'v2_checkbox':_this.loadRecaptchaApi();} 163_this.setFixedNode();_this.setWindowRect();switch(_this.form_node.data('form_type')){case'search':_this.setSearchEvents();break;default:_this.setEvents();} 164_this.form_node.attr('data-form_init','');}},);}} 165setFixedNode(){this.fixed_top_node=this.body_node.children('.fixed-top:last');if(!this.fixed_top_node.length){this.fixed_top_node=$('<div>',{class:'fixed-top',css:{position:'fixed',top:0,},});this.body_node.append(this.fixed_top_node);}} 166setWindowRect(){let window_width=this.window_node.width();let window_height=this.window_node.height();this.window_rect={width:window_width,height:window_height,top:0,right:window_width,bottom:window_height,left:0,};} 167loadRecaptchaApi(callback){if(!$('#recaptcha-api').length){if(callback){$('<script>').attr('id','recaptcha-api').appendTo('head').on('load',callback).attr('src','https://www.google.com/recaptcha/api.js?render='+ 168this.recaptcha_site_key,);}else{$('<script>').attr('id','recaptcha-api').attr('src','https://www.google.com/recaptcha/api.js').prop('async',true).prop('defer',true).appendTo('head');}}} 169setEvents(){let _this=this;this.setSelectEvents();this.setRadioEvents();this.setCheckboxEvents();this.setDateEvents();this.setFileEvents();this.window_node.on('resize',function(){_this.setWindowRect();});this.form_node.find('input[readonly]').on('focus',function(){this.blur();});this.form_node.find('input').on('keydown',function(event){if(event.key=='Enter'){_this.form_node.trigger('submit');}});this.form_node.children('a:last').on('click',function(event){event.preventDefault();_this.form_node.trigger('submit');});this.form_node.on('submit',function(event,recaptcha_response){event.preventDefault();switch(_this.recaptcha_type){case'v3':if(typeof grecaptcha=='undefined'){_this.form_node.addClass('disabled');_this.loadRecaptchaApi(function(){if(typeof grecaptcha=='undefined'){_this.submit(recaptcha_response);}else{_this.form_node.trigger('submit');}});return;}
170if(!recaptcha_response){grecaptcha.ready(function(){grecaptcha.execute(_this.recaptcha_site_key,{action:'submit',}).then(function(token){_this.submit(token);});});return;}} 171_this.submit(recaptcha_response);});} 172setSelectEvents(){let _this=this;let click_select=false;this.window_node.on({resize:function(){_this.setOptionsPosition($('.select.active'));},scroll:function(){_this.setOptionsPosition($('.select.active'));},});this.document_node.on('click',function(){if(!click_select){$('.select.active').trigger('click');}});this.form_node.find('.select').each(function(){let select_node=$(this);let select_id=select_node.attr('id');let input_node=select_node.children('input[type="text"]:first');let button_node=select_node.children('button:first');let options_node=select_node.children('.options:first');let option_nodes=options_node.find('.option');let text_border_right_width=parseInt(input_node.css('border-right-width'),);let button_border_left_width=parseInt(button_node.css('border-left-width'),);if(text_border_right_width&&button_border_left_width){input_node.css('margin-right',-text_border_right_width);} 173select_node.on('click',function(event){event.stopPropagation();if(select_node.hasClass('active')){select_node.removeClass('active top');options_node.removeClass('top').removeAttr('style');}else{click_select=true;setTimeout(function(){click_select=false;},1);let active_select_nodes=$('.select.active');active_select_nodes.trigger('click');_this.showOptions(select_node);}});button_node.on('click',function(event){event.preventDefault();});options_node.on('click',function(event){event.stopPropagation();});option_nodes.on('click',function(event){let option_node=$(this);if(option_node.hasClass('active')){let option_href=option_node.attr('href');if(option_href!=undefined){event.preventDefault();}}else{let placeholder=option_node.data('placeholder');let option_text='';if(typeof placeholder=='undefined'){option_text=option_node.text().trim();} 174option_nodes.removeClass('active');option_node.addClass('active');input_node.val(option_text).trigger('change');} 175select_node.trigger('click');});if(select_id){let label_node=$('label[for="'+select_id+'"]');label_node.on('click',function(){select_node.trigger('click');});}});} 176showOptions(select_node){let options_node=select_node.children('.options, .results').first();options_node.css('visibility','hidden');select_node.addClass('active');this.setOptionsPosition(select_node);} 177setOptionsPosition(select_nodes){if(select_nodes&&select_nodes.length){let _this=this;let fixed_rect=this.fixed_top_node[0].getBoundingClientRect();select_nodes.each(function(){let select_node=$(this);let text_node=select_node.children('input[type="text"], input[type="search"]').first();let options_node=select_node.children('.options, .results').first();let select_rect=select_node[0].getBoundingClientRect();let select_top=select_rect.top-fixed_rect.top;let select_bottom=select_rect.bottom-fixed_rect.top;options_node.css({bottom:'',left:0,maxHeight:'',maxWidth:'',minWidth:select_rect.width,right:'',top:select_bottom,visibility:'hidden',});let options_margin_top=parseInt(options_node.css('margin-top'),);let options_margin_bottom=parseInt(options_node.css('margin-bottom'),);let options_margin_left=parseInt(options_node.css('margin-left'),);let options_margin_right=parseInt(options_node.css('margin-right'),);let options_max_width=parseInt(options_node.css('max-width'));options_node.css({left:select_rect.left-options_margin_left,width:options_node.outerWidth(),});let options_rect=options_node[0].getBoundingClientRect();let options_bottom=options_rect.bottom-fixed_rect.top;if(options_bottom>_this.window_rect.bottom&&select_top>_this.window_rect.bottom-select_bottom){let options_max_height=select_top- 178_this.window_rect.top- 179options_margin_top- 180options_margin_bottom;if(!options_margin_bottom){let text_border_top_width=parseInt(text_node.css('border-top-width'),);let options_border_bottom_width=parseInt(options_node.css('border-bottom-width'),);if(text_border_top_width&&options_border_bottom_width){options_max_height+=text_border_top_width;}} 181select_node.addClass('top');options_node.addClass('top').css({bottom:$(window).height()-select_top,maxHeight:options_max_height,top:'',});} 182else{let options_max_height=_this.window_rect.bottom- 183select_bottom- 184options_margin_top- 185options_margin_bottom;if(!options_margin_top){let text_border_bottom_width=parseInt(text_node.css('border-bottom-width'),);let options_border_top_width=parseInt(options_node.css('border-top-width'),);if(text_border_bottom_width&&options_border_top_width){options_max_height+=text_border_bottom_width;}} 186select_node.removeClass('top');options_node.removeClass('top').css('max-height',options_max_height);} 187if(options_rect.right>_this.window_rect.right&&select_rect.left>_this.window_rect.right-select_rect.right){let _options_max_width=select_rect.right- 188_this.window_rect.left- 189options_margin_left- 190options_margin_right;if(isNaN(options_max_width)||options_max_width>_options_max_width){options_max_width=_options_max_width;} 191options_node.css({left:'',maxWidth:options_max_width,right:$(window).width()- 192select_rect.right- 193options_margin_right,});} 194else{let _options_max_width=_this.window_rect.right- 195select_rect.left- 196options_margin_left- 197options_margin_right;if(isNaN(options_max_width)||options_max_width>_options_max_width){options_max_width=_options_max_width;} 198options_node.css('max-width',options_max_width);} 199options_node.css('visibility','');});}} 200setRadioEvents(){this.form_node.find('.radio').each(function(){let radio_node=$(this);let radios_node=radio_node.parents('.radios:first');
200let input_node=radio_node.children('input:first');let label_node=radio_node.next('label');radio_node.on('click',function(){if(radio_node.hasClass('active')){input_node.prop('checked',false).trigger('change');radio_node.removeClass('active');}else{let active_radio_nodes=radios_node.find('.radio.active');input_node.prop('checked',true).trigger('change');active_radio_nodes.removeClass('active');radio_node.addClass('active');}});label_node.on('click',function(){radio_node.trigger('click');});});} 201setCheckboxEvents(){this.form_node.find('.checkbox').each(function(){let checkbox_node=$(this);let input_node=checkbox_node.children('input:first');let label_node=checkbox_node.next('label');checkbox_node.on('click',function(){if(checkbox_node.hasClass('active')){input_node.prop('checked',false).trigger('change');checkbox_node.removeClass('active');}else{input_node.prop('checked',true).trigger('change');checkbox_node.addClass('active');}});label_node.on('click',function(){checkbox_node.trigger('click');});});} 202setDateEvents(){this.form_node.find('.date, .date-time').each(function(){let date_node=$(this);let input_node=date_node.children('input:first');let button_node=date_node.children('button:first');let input_border_right_width=parseInt(input_node.css('border-right-width'),);let button_border_left_width=parseInt(button_node.css('border-left-width'),);if(input_border_right_width&&button_border_left_width){input_node.css('margin-right',-input_border_right_width);} 203button_node.on('click',function(event){event.preventDefault();});let options={wrap:true,dateFormat:'d-m-Y',onReady:function(){input_node.attr('type','text');},onOpen:function(){date_node.addClass('active');},onClose:function(){date_node.removeClass('active');},onChange:function(){input_node.trigger('change');},};if(typeof LANGUAGE_CODE!='undefined'&&LANGUAGE_CODE!='en'&&flatpickr.l10ns[LANGUAGE_CODE]){options.locale=LANGUAGE_CODE;} 204if(date_node.hasClass('date-time')){((options.dateFormat='d-m-Y H:i'),(options.enableTime=true));options.time_24hr=true;} 205date_node.flatpickr(options);});} 206setFileEvents(){this.form_node.find('.file').each(function(){let file_node=$(this);let file_id=file_node.attr('id');let input_file_node=file_node.children('input[type="file"]:first',);let input_text_node=file_node.children('input[type="text"]:first',);let button_node=file_node.children('button:first');let text_border_right_width=parseInt(input_text_node.css('border-right-width'),);let button_border_left_width=parseInt(button_node.css('border-left-width'),);if(text_border_right_width&&button_border_left_width){input_text_node.css('margin-right',-text_border_right_width);} 207file_node.on('click',function(){input_file_node.trigger('click');});input_file_node.on({click:function(event){event.stopPropagation();},change:function(){let value=input_file_node.val();let filename=value.replace(/^.*[\/\\]/,'');input_text_node.val(filename).trigger('change');},});button_node.on('click',function(event){event.preventDefault();});if(file_id){let label_node=$('label[for="'+file_id+'"]');label_node.on('click',function(){file_node.trigger('click');});}});} 208submit(recaptcha_response){if(this.hold){return;} 209this.hold=true;this.form_node.addClass('disabled');let _this=this;let form_action=this.form_node.attr('action');let form_data=new FormData(this.form_node[0]);let field_nodes=this.form_node.children('div:not(.feedback)');let redirect=this.form_node.data('redirect');let redirect_target=this.form_node.data('redirect_target');if(recaptcha_response){form_data.set('g-recaptcha-response',recaptcha_response);} 210let options={type:'post',url:form_action,data:form_data,cache:false,contentType:false,processData:false,};options.success=function(data){if(!data||!data.status){return;} 211let feedback_node=_this.form_node.children('.feedback:first');feedback_node.remove();let feedback_html=Array.isArray(data.feedback)?data.feedback.join('<br>'):data.feedback;feedback_node=$('<div>',{class:'feedback',html:feedback_html,});switch(data.status){case'error':_this.form_node.find('.error').removeClass('error');feedback_node.addClass('error');if(_this.form_node.css('display')=='flex'&&_this.form_node.css('flex-direction')=='row'){field_nodes.first().before(feedback_node);}else{field_nodes.last().after(feedback_node);} 212let field_selector='input[type="text"]:first';field_selector+=', input[type="password"]:first';field_selector+=', input[type="email"]:first';field_selector+=', input[type="tel"]:first';field_selector+=', textarea:first';field_selector+=', button:first';field_selector+=', .options:first';field_selector+=', .radio';field_selector+=', .checkbox';$.each(data.error_fields,function(index,value){field_nodes.has('[name="'+ 213value+'"], [name^="'+ 214value+'["]',).find(field_selector).addClass('error');});if(_this.recaptcha_type=='v2_invisible'&&typeof grecaptcha!='undefined'&&typeof grecaptcha.reset=='function'){grecaptcha.reset(_this.recaptcha_index);} 215break;case'success':let _redirect=data.redirect||redirect;let _redirect_target=data.redirect_target||redirect_target;if(_redirect){if(!_redirect_target||_redirect_target=='_self'){location.href=_redirect;return;} 216switch(_redirect_target){case'popin':_this.form_node.trigger('redirect');break;default:window.open(_redirect,_redirect_target);}} 217feedback_node.addClass('success');_this.form_node.replaceWith(feedback_node);return;} 218_this.hold=false;_this.form_node.removeClass('disabled');};$.ajax(options);} 219setSearchEvents(){let _this=this;let form_action=this.form_node.attr('action');let search_node=this.form_node.find('.search:first');
219let input_node=search_node.children('input:first');let button_node=search_node.children('button:first');let overlay_node=search_node.children('.overlay:first');let results_node=search_node.children('.results:first');let result_title_node=results_node.find('.result-title:first');let result_content_node=results_node.find('.result-content:first');let request=null;let timeout=false;let input_border_right_width=parseInt(input_node.css('border-right-width'),);let button_border_left_width=parseInt(button_node.css('border-left-width'),);if(input_border_right_width&&button_border_left_width){input_node.css('margin-right',-input_border_right_width);} 220this.window_node.on({resize:function(){_this.setWindowRect();_this.setOptionsPosition($('.search.active'));},scroll:function(){_this.setOptionsPosition($('.search.active'));},});this.form_node.on('submit',function(event){event.preventDefault();if(request){request.abort();} 221request=$.ajax({type:'get',url:form_action,data:_this.form_node.serialize(),success:function(data){let show_results=false;results_node.empty();if(data.length){$.each(data,function(key,value){if(value.url&&value.title){show_results=true;$('<a>',{class:result_title_node.attr('class'),href:value.url,html:value.title,}).appendTo(results_node);result_content_node.clone().html(value.content?'<p>'+value.content+'</p>':'',).appendTo(results_node);}else if(value.content){show_results=true;result_content_node.clone().html('<p>'+value.content+'</p>').appendTo(results_node);}});} 222if(show_results){search_node.trigger('show');}else{search_node.trigger('hide');} 223if(typeof ga=='function'){ga('send','pageview',location.pathname+'?keyword='+input_node.val(),);} 224if(typeof window.plausible!=='undefined'){window.plausible('search',{props:{search:input_node.val()},});}},});});search_node.on({show:function(){_this.showOptions(search_node);},hide:function(){search_node.removeClass('active');},});input_node.on({focus:function(){search_node.addClass('focus');if(input_node.val()&&results_node.html()){search_node.trigger('show');}},blur:function(){search_node.removeClass('focus');},input:function(){if(timeout){clearTimeout(timeout);} 225timeout=setTimeout(function(){_this.form_node.trigger('submit');},250);},});overlay_node.on('click',function(){search_node.removeClass('active');});}}class Dropdown{constructor(options){this.options={selector:'.dropdown',bottom:false,};$.extend(this.options,options);this.window_node=$(window);this.dropdown_node=$();this.start();} 226start(){let _this=this;let selectors=this.options.selector.split(',');if(selectors.length>1){for(let x in selectors){let options=$.extend({},this.options);options.selector=selectors[x].trim();new Dropdown(options);}}else{$(this.options.selector+':not([data-dropdown_init])').each(function(index){if(index>1){return false;} 227if(index){new Dropdown(_this.options);}else{_this.dropdown_node=$(this);_this.setListHeight();if(_this.options.bottom){_this.setListPosition();} 228_this.setEvents();_this.dropdown_node.attr('data-dropdown_init','');}},);}} 229setListHeight(){let list_node=this.dropdown_node.children('options, ul').first();let active_item_node=list_node.children('.active:first');let active_item_text=active_item_node.text();if(!active_item_text){active_item_text=active_item_node.find('img:first').clone();} 230this.dropdown_node.prepend(active_item_text);list_node.addClass('measure noheight');let list_height=list_node.outerHeight();list_node.removeClass('measure noheight').css('height',list_height);} 231setListPosition(){let col_node=this.dropdown_node.parents('.col:first');let col_bottom=col_node.offset().top+col_node.outerHeight();let list_node=this.dropdown_node.children('options, ul').first();let dropdown_top=this.dropdown_node.offset().top;let list_top=col_bottom-dropdown_top;let spacer_height=list_top-this.dropdown_node.outerHeight();let spacer_node=this.dropdown_node.children('.spacer:first');if(!spacer_node.length){spacer_node=$('<div>',{class:'spacer'});list_node.before(spacer_node);} 232spacer_node.css('height',spacer_height);list_node.css('top',list_top);} 233setEvents(){let _this=this;if(this.options.bottom){this.window_node.on('resize',function(){_this.setListPosition();});} 234if(this.dropdown_node.length){this.dropdown_node.get(0).addEventListener('touchstart',function(){},{passive:true,});}}}class Popin{constructor(options){this.options={selector:'a[target="popin"], form[data-redirect_target="popin"]',};$.extend(this.options,options);this.window_node=$(window);this.body_node=$('body');this.media_handler_nodes=$();this.url_handler_nodes=$();this.popin_node=$();this.viewport_node=$();this.controls_node=$();this.close_node=$();this.previous_node=$();this.next_node=$();this.counter_node=$();this.gallery_index=0;this.gallery_count=0;this.gallery_items=[];this.gallery_item_index=0;this.gallery_item_count=0;this.message_height=0;this.content_type=null;this.start();} 235start(){let _this=this;let handler_nodes=$(this.options.selector).not('[data-popin_init]');if(handler_nodes.length){this.popin_node=$('<div>',{class:'popin',style:'display: none;',});this.viewport_node=$('<div>',{class:'popin-viewport'});this.controls_node=$('<div>',{class:'popin-controls'});this.close_node=$('<a>',{href:'#',class:'popin-close'});this.previous_node=$('<a>',{href:'#',class:'popin-previous',});this.next_node=$('<a>',{href:'#',class:'popin-next'});this.counter_node=$('<div>',{class:'popin-counter'});this.controls_node.append(this.close_node,this.previous_node,this.next_node,this.counter_node,);this.popin_node.append(this.viewport_node,this.controls_node);this.body_node.append(this.popin_node);handler_nodes.each(function(){let handler_node=$(this);let handler_href=handler_node.attr('href')||handler_node.data('redirect')||'';let content_type=_this.getContentType(handler_href);handler_node.data('content_type',content_type);switch(content_type){case'image':case'video':case'video_url':let parent_node=handler_node.parents('x-gallery, header, section, footer').first();let gallery_index=parent_node.data('popin_gallery_index',);if(gallery_index===undefined){gallery_index=_this.gallery_count++;parent_node.data('popin_gallery_index',gallery_index,);} 236if(!_this.gallery_items[gallery_index]){_this.gallery_items[gallery_index]=[];} 237let gallery_item_index=_this.gallery_items[gallery_index].indexOf(handler_href,);if(gallery_item_index===-1){gallery_item_index=_this.gallery_items[gallery_index].length;_this.gallery_items[gallery_index][gallery_item_index]=handler_href;} 238handler_node.data({popin_gallery_index:gallery_index,popin_gallery_item_index:gallery_item_index,});_this.media_handler_nodes=_this.media_handler_nodes.add(handler_node);break;default:_this.url_handler_nodes=_this.url_handler_nodes.add(handler_node);} 239handler_node.attr('data-popin_init','');});this.setEvents();}} 240getContentType(href){if(href==window.origin||(!href.match(/\.[a-z0-9]+([?#].*)?$/i)&&(href.match(/^\//i)||href.indexOf(window.origin+'/')===0))){return'page';} 241if(href.match(/\.(apng|avif|bmp|gif|jp2|jpeg|jpg|png|svg|tif|tiff|webp)([?#].*)?$/i,)){return'image';} 242if(href.match(/\.(mp4|webm)([?#].*)?$/i)){return'video';} 243if(href.match(/^(?:https:)?\/\/(?:(?:www\.)?youtube\.com\/embed|player\.vimeo\.com|player\.mediadelivery\.net|(?:www\.)?tiktok\.com\/player)\//i,)){return'video_url';} 244if(href.match(/^((?:https:)?\/\/(?:app|staging)\.(?:askwise|mach3forms)\.io)\/s\/(\w+)/i,)){return'form';} 245if(href.match(/^(?:https:)?\/\/[^\/]*/i)){return'website';} 246return'';} 247setEvents(){let _this=this;this.media_handler_nodes.each(function(){let media_handler_node=$(this);media_handler_node.on(this.tagName=='FORM'?'redirect':'click',function(event){event.preventDefault();_this.showPopin(media_handler_node,'media');},);});this.url_handler_nodes.each(function(){let url_handler_node=$(this);url_handler_node.on(this.tagName=='FORM'?'redirect':'click',function(event){event.preventDefault();_this.showPopin(url_handler_node,'url');},);});this.window_node.on({keyup:function(event){if(_this.popin_node.is(':visible')){switch(event.key){case'Escape':_this.popin_node.trigger('close');break;case'ArrowLeft':_this.popin_node.trigger('prev');break;case'ArrowRight':_this.popin_node.trigger('next');}}},message:function(event){if(event.originalEvent.data.height){_this.message_height=event.originalEvent.data.height;_this.setIframeHeight(_this.message_height);}},});this.popin_node.on({close:function(){_this.popin_node.hide();_this.viewport_node.empty();},prev:function(){let previous_item_index=_this.gallery_item_index?_this.gallery_item_index-1:_this.gallery_item_count-1;let previous_handler_node=_this.media_handler_nodes.filter(function(){let handler_node=$(this);
247return(handler_node.data('popin_gallery_index')==_this.gallery_index&&handler_node.data('popin_gallery_item_index')==previous_item_index);},);previous_handler_node.trigger('click');},next:function(){let next_item_index=_this.gallery_item_index<_this.gallery_item_count-1?_this.gallery_item_index+1:0;let next_handler_node=_this.media_handler_nodes.filter(function(){let handler_node=$(this);return(handler_node.data('popin_gallery_index')==_this.gallery_index&&handler_node.data('popin_gallery_item_index')==next_item_index);},);next_handler_node.trigger('click');},});this.popin_node.on('click',function(){_this.popin_node.trigger('close');});this.close_node.on('click',function(event){event.preventDefault();});this.previous_node.on('click',function(event){event.preventDefault();event.stopPropagation();_this.popin_node.trigger('prev');});this.next_node.on('click',function(event){event.preventDefault();event.stopPropagation();_this.popin_node.trigger('next');});} 248showPopin(handler_node,type){let _this=this;this.content_type=handler_node.data('content_type');switch(type){case'media':this.gallery_index=handler_node.data('popin_gallery_index');this.gallery_item_index=handler_node.data('popin_gallery_item_index',);this.gallery_item_count=this.gallery_items[this.gallery_index].length;let content_src=handler_node.attr('href')||handler_node.data('redirect');let counter=this.gallery_item_index+1;this.counter_node.text(counter+'/'+this.gallery_item_count);let content_node=$();switch(this.content_type){case'image':this.popin_node.addClass('loading');content_node=$('<img>',{src:content_src,alt:handler_node.data('href_alt')||'',});content_node.on('load',function(){_this.popin_node.removeClass('loading');});break;case'video':content_node=$('<video>',{src:content_src,autoplay:true,controls:true,});break;case'video_url':this.popin_node.addClass('loading');content_node=$('<div>',{class:'video'});let iframe_node=$('<iframe>',{src:content_src,referrerpolicy:'strict-origin-when-cross-origin',allow:'fullscreen',});content_node.append(iframe_node);iframe_node.on('load',function(){_this.popin_node.removeClass('loading');});} 249content_node.on('click',function(event){event.stopPropagation();});if(this.popin_node.is(':visible')){this.viewport_node.html(content_node);}else{let popin_type=this.gallery_item_count>1?'gallery':'';this.viewport_node.append(content_node);this.popin_node.attr('data-type',popin_type).show();} 250break;case'url':let iframe_node=$('<iframe>',{src:handler_node.attr('href')||handler_node.data('redirect'),});this.viewport_node.append(iframe_node);this.popin_node.addClass('loading');iframe_node.on('load',function(){_this.popin_node.removeClass('loading');try{$(this.contentWindow).on('unload',function(){_this.popin_node.addClass('loading');iframe_node.height('');});iframe_node.contents().find('a[href]:not([href^="#"]):not([target="_blank"]):not([target="_parent"]):not([target="_top"])',).on('click',function(){_this.content_type=_this.getContentType($(this).attr('href'),);_this.popin_node.addClass('loading');iframe_node.height('');});}catch(error){} 251switch(_this.content_type){case'page':case'form':break;default:_this.setIframeHeight();}});this.popin_node.attr('data-type','').show();}} 252setIframeHeight(iframe_height){let iframe_node=this.viewport_node.children('iframe:first');if(iframe_height===undefined){try{iframe_height=iframe_node.contents().find('body').height();}catch(error){}} 253if(!iframe_height){iframe_height=1024;} 254iframe_node.height(iframe_height);}}class Equalize{constructor(options){this.options={selector:'.equalize',};$.extend(this.options,options);this.window_node=$(window);this.equalize_node=$();this.size=null;this.sizes=['xs','sm','md','lg','xl'];this.start();} 255start(){let _this=this;let selectors=this.options.selector.split(',');if(selectors.length>1){for(let x in selectors){let options=$.extend({},this.options);options.selector=selectors[x].trim();new Equalize(options);}}else{$(this.options.selector+':not([data-equalize_init])').each(function(index){if(index>1){return false;} 256if(index){new Equalize(_this.options);}else{_this.equalize_node=$(this);_this.column_nodes=_this.equalize_node.children();let img_nodes=_this.equalize_node.find('img');let img_count=img_nodes.length;if(img_count){let counter=0;img_nodes.each(function(){let img_node=$(this);let img_height=img_node.height();if(img_height){counter++;if(counter==img_count){_this.setSize();_this.equalize();}}else{img_node.on('load',function(){counter++;if(counter==img_count){_this.setSize();_this.equalize();}});}});}else{_this.setSize();_this.equalize();} 257_this.setEvents();_this.equalize_node.attr('data-equalize_init','');}},);}} 258setSize(){let window_width=this.window_node.width();let size=null;switch(true){case window_width<480:size=this.sizes[0];break;case window_width<768:size=this.sizes[1];break;case window_width<1024:size=this.sizes[2];break;case window_width<1280:size=this.sizes[3];break;default:size=this.sizes[4];} 259if(size!=this.size){this.size=size;return true;} 260return false;} 261setEvents(){let _this=this;this.window_node.on('resize',function(event,force){if(force||_this.setSize()){_this.equalize();}});} 262equalize(){let _this=this;let equalize_width=this.equalize_node.width();let column_count=this.column_nodes.length;let columns_width=0;let prev_elements=[];let prev_heights=[];let ignore=false;this.column_nodes.css('clear','').each(function(index){let column_node=$(this);let column_width=column_node.outerWidth(true);let box_node=column_node.children('.box, [class^="box-"]').first();let element_nodes=box_node.length?box_node.children(':not(:last)'):column_node.children(':not(:last)');columns_width+=column_width;if(columns_width>equalize_width){_this.setMargins(prev_elements,prev_heights);columns_width=column_width;prev_elements=[];prev_heights=[];ignore=false;column_node.css('clear','both');} 263if(!ignore){element_nodes.filter(function(){let position=$(this).css('position');return['static','relative'].includes(position);}).css('margin-bottom','').each(function(_index){let element_node=$(this);if(prev_elements[_index]){let element_class=element_node.attr('class');
263let prev_element_count=prev_elements[_index].length;let prev_element_node=prev_elements[_index][prev_element_count-1][0];let prev_element_class=prev_element_node.attr('class');if(element_class&&prev_element_class){let first_element_class=element_class.match(/^[\w\-]+/);let first_prev_element_class=prev_element_class.match(/^[\w\-]+/);if(first_element_class){element_class=first_element_class[0];} 264if(first_prev_element_class){prev_element_class=first_prev_element_class[0];}} 265if(element_class!=prev_element_class){ignore=true;return false;}} 266let element_height=element_node.outerHeight(true);let element_margin=parseInt(element_node.css('margin-bottom'),);if(!prev_elements[_index]){prev_elements[_index]=[];} 267if(!prev_heights[_index]){prev_heights[_index]=[];} 268prev_elements[_index].push([element_node,element_height,element_margin,]);prev_heights[_index].push(element_height);});if(ignore||index==column_count-1){_this.setMargins(prev_elements,prev_heights);}}});} 269setMargins(elements,heights){if(elements&&heights){for(let x in elements){if(heights[x]){let equal_elements=elements[x];let height=Math.max.apply(Math,heights[x]);for(let y in equal_elements){let element=equal_elements[y];if(element&&element.length>2){let element_node=element[0];let element_height=element[1];let element_margin=element[2];if(element_height<height){let margin=height-element_height+element_margin;element_node.css('margin-bottom',margin);}}}}}}}}class Video{constructor(options){this.options={selector:'video, iframe[src*="youtube.com/embed/"], iframe[src*="player.vimeo.com/"], iframe[src*="player.mediadelivery.net/"], iframe[src*="tiktok.com/player/"]',};$.extend(this.options,options);this.window_node=$(window);this.video_node=$();this.parent_node=$();this.image_nodes=$();this.is_video=false;this.is_iframe=false;this.video_src='';this.video_channel='';this.start();} 270start(){const _this=this;const selectors=this.options.selector.split(',');if(selectors.length>1){for(let x in selectors){const options=$.extend({},this.options);options.selector=selectors[x].trim();new Video(options);}}else{$(this.options.selector+':not([data-video_init])').each(function(index){if(index>1){return false;} 271if(index){new Video(_this.options);}else{_this.video_node=$(this);_this.is_video=_this.video_node.is('video');_this.is_iframe=_this.video_node.is('iframe');_this.parent_node=_this.video_node.parents('[class*="media-"]:first',);_this.image_nodes=_this.video_node.nextAll('img');_this.video_src=_this.video_node.attr('src')||'';const has_image=_this.image_nodes.filter(':visible:first',).length?true:false;let has_autoplay=false;let has_controls=false;if(_this.is_video){has_autoplay=_this.video_node.attr('autoplay')!==undefined;has_controls=_this.video_node.attr('controls')!==undefined;}else if(_this.is_iframe){has_autoplay=_this.video_src.match(/[?&]autoplay=1/i);has_controls=!_this.video_src.match(/[?&]controls=0/i);_this.video_channel=_this.getChannel(_this.video_src,);if(has_autoplay&&!has_controls&&_this.parent_node.data('contain')===undefined){const parent_ratio=_this.parent_node.data('ratio');if(parent_ratio!==undefined){_this.scaleIframe(parent_ratio);}else if(_this.parent_node.css('position')=='absolute'){_this.scaleIframe();_this.window_node.on('resize',function(){_this.scaleIframe();});}} 272_this.video_node.css('visibility','visible');} 273if(!has_image||has_autoplay){_this.parent_node.addClass('playing');} 274if(has_controls){_this.parent_node.addClass('has-controls');} 275if(!_this.parent_node.attr('href')){_this.setPlayEvents();} 276_this.video_node.attr('data-video_init','');}},);}} 277getChannel(src){const channels={'youtube.com':'youtube','vimeo.com':'vimeo','mediadelivery.net':'bunny.net','tiktok.com':'tiktok',};const domains=Object.keys(channels).map((domain)=>domain.replace(/\./g,'\\.')).join('|');const matches=src.match(new RegExp(`(${domains})/`,'i'));if(!matches){return'';} 278return channels[matches[1].toLowerCase()];} 279scaleIframe(ratio){const parent_height=this.parent_node.height();const parent_width=this.parent_node.width();ratio=ratio?ratio.split('x'):[parent_width,parent_height];const parent_multiplier=ratio[0]/ ratio[1];const video_multiplier=16 / 9;let multiplier=0;if(parent_multiplier>video_multiplier){const video_width=parent_height*video_multiplier;multiplier=parent_width / video_width;}else if(parent_multiplier<video_multiplier){const video_height=parent_width / video_multiplier;multiplier=parent_height / video_height;} 280if(multiplier){const scale=multiplier*100+1+'%';
280this.video_node.css({height:scale,left:'50%',position:'absolute',top:'50%',transform:'translate(-50%, -50%)',width:scale,});}} 281setPlayEvents(){const _this=this;this.image_nodes.on('click',function(){let channel_data='';if(_this.parent_node.hasClass('playing')){_this.parent_node.removeClass('playing');if(_this.is_video){_this.video_node[0].pause();}else if(_this.is_iframe){switch(_this.video_channel){case'youtube':channel_data='{"event": "command", "func": "pauseVideo", "args": ""}';break;case'vimeo':channel_data='{"method": "pause"}';}}}else{_this.parent_node.addClass('playing');if(_this.is_video){_this.video_node[0].play();}else if(_this.is_iframe&&_this.video_src){if(_this.video_src.match(/[?&]autoplay=1/i)){switch(_this.video_channel){case'youtube':channel_data='{"event": "command", "func": "playVideo", "args": ""}';break;case'vimeo':channel_data='{"method": "play"}';}}else{const[base,query]=_this.video_src.split('?');const params=new URLSearchParams(query);params.set('autoplay','1');if(_this.video_channel=='vimeo'){params.set('autopause','0');} 282_this.video_src=base+'?'+params.toString();_this.video_node.attr('src',_this.video_src);}}} 283if(channel_data){_this.video_node[0].contentWindow.postMessage(channel_data,'*',);}});}}class Share{constructor(options){this.options={selector:'.share',};$.extend(this.options,options);this.share_node=$();this.start();} 284start(){let _this=this;let selectors=this.options.selector.split(',');if(selectors.length>1){for(let x in selectors){let options=$.extend({},this.options);options.selector=selectors[x].trim();new Share(options);}}else{$(this.options.selector+':not([data-share_init])').each(function(index){if(index>1){return false;} 285if(index){new Share(_this.options);}else{_this.share_node=$(this);_this.setEvents();_this.share_node.attr('data-share_init','');}},);}} 286setEvents(){if(this.share_node.length){let share_nodes=this.share_node.children('[class*=share-]');share_nodes.each(function(){let share_node=$(this);let share_class=share_node.attr('class');let match=null;if((match=share_class.match(/(?:^|\s)share-([a-z0-9\-]+)/i))){let share_type=match[1];share_node.on('click',function(){let title_node=$('title:first');let title=title_node.length?encodeURIComponent(title_node.text()):'';let url=encodeURIComponent(location.href);let href='#';let target='_blank';switch(share_type){case'email':href='mailto:?subject='+title+'&body='+url;target='';break;case'facebook':href='https://www.facebook.com/sharer/sharer.php?u='+ 287url;break;case'twitter':href='https://twitter.com/intent/tweet?text='+ 288url;break;case'linkedin':href='https://www.linkedin.com/shareArticle?mini=true&url='+ 289url+'&title='+ 290title;break;case'pinterest':href='https://pinterest.com/pin/create/button/?url=&media='+ 291url;break;case'whatsapp':href='whatsapp://send?text='+url;} 292share_node.attr({href:href,target:target});});}});}}}
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.