1/** 2 * @name Page Builder CK 3 * @package com_pagebuilderck 4 * @copyright Copyright (C) 2015. All rights reserved. 5 * @license GNU General Public License version 2 or later; see LICENSE.txt 6 * @author Cedric Keiflin - https://www.template-creator.com - https://www.joomlack.fr 7 */ 8 9jQuery(document).ready(function($){ 10 var hashtag = window.location.hash; 11 $('.accordionsck,.faqsck[data-accordion="1"]').each(function() { 12 var activetab = typeof($(this).attr('activetab')) != 'undefined' ? parseInt($(this).attr('activetab')) : false; 13 var scrolltoactive = typeof($(this).attr('activetab')) != 'undefined' ? ($(this).attr('scrolltoactive') === '1') : false; 14 var multiplecollapse = typeof($(this).attr('multiplecollapse')) != 'undefined' ? ($(this).attr('multiplecollapse') === '1') : false; 15 if (window.location.hash) { 16 if (hashtag.substr(0, 5) == '#tab-') { 17 var tabindex = 0; 18 $('h3 > .itemtitleck', $(this)).each(function() { 19 if ('#tab-' + $(this).text().toLowerCase().replace(/ /g, '-') == decodeURI(hashtag)) { 20 activetab = tabindex; 21 } 22 tabindex++; 23 }); 24 } 25 } 26 $(this).accordionck({ 27 header: "> h3", 28 collapsible: true, 29 active: activetab, 30 heightStyle: "content", 31 scrollToActive: scrolltoactive, 32 multiple: multiplecollapse 33 }); 34 $('> h3', $(this)).click(function() { 35 $(window).trigger('resize'); 36 }); 37 }); 38 $('.tabsck').each(function() { 39 var activetab = parseInt($(this).attr('activetab')); 40 if (window.location.hash) { 41 if (hashtag.substr(0, 5) == '#tab-') { 42 var tabindex = 0; 43 $('> ol > li a', $(this)).each(function() { 44 if ('#tab-' + $(this).text().toLowerCase().replace(/ /g, '-') == decode
44URI(hashtag)) { 45 activetab = tabindex; 46 } 47 tabindex++; 48 }); 49 } 50 } 51 $(this).tabsck({ 52 active: activetab 53 }); 54 $('.ui-tabs-nav > li', $(this)).click(function() { 55 $(window).trigger('resize'); 56 }); 57 }); 58 $('.blockck, .rowck').each(function() { 59 var $this = $(this); 60 $window = $(window); 61 62 // function to be called whenever the window is scrolled or resized 63 function update($this){ 64 var top = $this.offset().top; 65 var pos = $window.scrollTop(); 66 var height = $this.height(); 67 var windowheight = $(window).height(); 68 69 // check if totally above or totally below viewport 70 if (top + height < pos || top > pos + windowheight) { 71 if (! $this.hasClass('noreplayck')) $this.removeClass('animateck'); 72 return; 73 } 74 // animate the content if found 75 if (top < pos || top > pos + windowheight-30) { 76 // is out of the screen 77 } else { 78 $this.addClass('animateck'); 79 } 80 } 81 if (PAGEBUILDERCK_DISABLE_ANIMATIONS && PAGEBUILDERCK_DISABLE_ANIMATIONS >= $window.width()) { 82 $this.addClass('noanimationck'); 83 $this.addClass('animateck'); 84 return; 85 } else { 86 update($this); 87 $this.removeClass('noanimationck'); 88 $window.scroll(function() { update($this); }); 89 } 90 }); 91 $('.rowckfullwidth .rowckfullwidth').removeClass('rowckfullwidth'); // remove for imbricated rows 92 $('.rowckfullwidth').each(function() { 93 var $this = $(this); 94 $window = $(window); 95 $this.css('position', 'relative'); 96 $this.css('z-index', '1'); 97 function update($this){ 98 var w = $window.width(); 99 if ($this.offset().left != 0) $this.css('margin-left', '-=' + $this.offset().left); 100 $this.css('width', w); 101 } 102 update($this); 103 $window.on('resize load', function() { update($this); }); 104 }); 105 $('.messageck .close').click(function() { 106 $(this).parent().hide(); 107 }); 108 109 var faqAccordionEffect = 'single'; // single or multiple, allow which are opened in the same time 110 $('.faqsck[data-display="accordion"]').each(function() { 111 var $faq = $(this); 112 $faq.find('.faqck-heading').on('click', function() { 113 // var $h = $(this); 114 if (faqAccordionEffect == 'single') { 115 $faq.find('.faqck-heading').not(this).removeClass('faqsck-open').find('+ div').each(function() { 116 this.style.maxHeight = null; 117 }); 118 } 119 var panel = this.nextElementSibling; 120 if (panel.style.maxHeight) { 121 panel.style.maxHeight = null; 122 this.classList.remove('faqsck-open'); 123 } else { 124 panel.style.maxHeight = panel.scrollHeight + "px"; 125 this.classList.add('faqsck-open'); 126 } 127 }); 128 }); 129}); 130 131/** 132 * Replace the iframe to load the youtube video 133 * 134 * @returns void 135 */ 136function ckLoadYoutube(thumb) { 137 var videock = $ck(thumb).parent(); 138 var framecode = videock.find('i-frame').get(0).outerHTML; 139 framecode = framecode.replace('<i-frame', '<iframe'); 140 framecode = framecode.replace('</i-frame>', '</iframe>'); 141 videock.find('i-frame').get(0).outerHTML = framecode; 142 var url = videock.find('iframe').attr('src'); 143 if (url.indexOf("?") == -1) { 144 url += '?autoplay=1'; 145 } else { 146 url += '&autoplay=1'; 147 } 148 videock.find('iframe').attr('src', url); 149}
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.