1// page init 2jQuery(function(){ 3 initOpenClose(); 4}); 5 6// open-close init 7function initOpenClose() { 8 jQuery('div.open-close').openClose({ 9 activeClass: 'active', 10 opener: '.opener', 11 slider: '.slide', 12 animSpeed: 400, 13 effect: 'slide' 14 }); 15} 16 17/* 18 * jQuery Open/Close plugin 19 */ 20;(function($) { 21 function OpenClose(options) { 22 this.options = $.extend({ 23 addClassBeforeAnimation: true, 24 activeClass:'active', 25 opener:'.opener', 26 slider:'.slide', 27 animSpeed: 400, 28 effect:'fade', 29 event:'click' 30 }, options); 31 this.init(); 32 } 33 OpenClose.prototype = { 34 init: function() { 35 if(this.options.holder) { 36 this.findElements(); 37 this.attachEvents(); 38 this.makeCallback('onInit'); 39 } 40 }, 41 findElements: function() { 42 this.holder = $(this.options.holder); 43 this.opener = this.holder.find(this.options.opener); 44 this.slider = this.holder.find(this.options.slider); 45 46 if (!this.holder.hasClass(this.options.activeClass)) { 47 this.slider.addClass(slideHiddenClass); 48 } 49 }, 50 attachEvents: function() { 51 // add handler 52 var self = this; 53 this.eventHandler = function(e) { 54 e.preventDefault(); 55 if (self.slider.hasClass(slideHiddenClass)) { 56 self.showSlide(); 57 } else { 58 self.hideSlide(); 59 } 60 }; 61 self.opener.bind(self.options.event, this.eventHandler); 62 63 // hove mode handler 64 if(self.options.event === 'over') { 65 self.opener.bind('mouseenter', function() { 66 self.holder.removeClass(self.options.activeClass); 67 self.opener.trigger(self.options.event); 68 }); 69 self.holder.bind('mouseleave', function() { 70 self.holder.addClass(self.options.activeClass); 71 self.opener.trigger(self.options.event); 72 }); 73 } 74 }, 75 showSlide: function() { 76 var self = this; 77 if (self.options.addClassBeforeAnimation) { 78 self.holder.addClass(self.options.activeClass); 79 } 80 self.slider.removeClass(slideHiddenClass); 81 82 self.makeCallback('animStart', true); 83 toggleEffects[self.options.effect].show({ 84 box: self.slider, 85 speed: self.options.animSpeed, 86 complete: function() { 87 if (!self.options.addClassBeforeAnimation) { 88 self.holder.addClass(self.options.activeClass); 89 } 90 self.makeCallback('animEnd', true); 91 } 92 }); 93 }, 94 hideSlide: function() { 95 var self = this; 96 if (self.options.addClassBeforeAnimation) { 97 self.holder.removeClass(self.options.activeClass); 98 } 99 100 self.makeCallback('animStart', false); 101 toggleEffects[self.options.effect].hide({ 102 box: self.slider, 103 speed: self.options.animSpeed, 104 complete: function() { 105 if (!self.options.addClassBeforeAnimation) { 106 self.holder.removeClass(self.options.activeClass); 107 } 108 self.slider.addClass(slideHiddenClass); 109 self.makeCallback('animEnd', false); 110 } 111 }); 112 }, 113 destroy: function() { 114 this.slider.removeClass(slideHiddenClass); 115 this.opener.unbind(this.options.event, this.eventHandler); 116 this.holder.removeClass(this.options.activeClass).removeData('OpenClose'); 117 }, 118 makeCallback: function(name) { 119 if(typeof this.options[name] === 'function') { 120 var args = Array.prototype.slice.call(arguments); 121 args.shift(); 122 this.options[name].apply(this, args); 123 } 124 } 125 }; 126 127 // add stylesheet for slide on DOMReady 128 var slideHiddenClass = 'js-slide-hidden'; 129 $(function() { 130 var tabStyleSheet = $('<style type="text/css">')[0]; 131 var tabStyleRule = '.' + slideHiddenClass; 132 tabStyleRule += '{position:absolute !important;left:-9999px !important;top:-9999px !important;display:block !important}'; 133 if (tabStyleSheet.styleSheet) { 134 tabStyleSheet.styleSheet.cssText = tabStyleRule; 135 } else { 136 tabStyleSheet.appendChild(document.createTextNode(tabStyleRule)); 137 } 138 $('head').append(tabStyleSheet); 139 }); 140 141 // animation effects 142 var toggleEffects = { 143 slide: { 144 show: function(o) { 145 o.box.stop(true).hide().slideDown(o.speed, o.complete); 146 }, 147 hide: function(o) {
148 o.box.stop(true).slideUp(o.speed, o.complete); 149 } 150 }, 151 fade: { 152 show: function(o) { 153 o.box.stop(true).hide().fadeIn(o.speed, o.complete); 154 }, 155 hide: function(o) { 156 o.box.stop(true).fadeOut(o.speed, o.complete); 157 } 158 }, 159 none: { 160 show: function(o) { 161 o.box.hide().show(0, o.complete); 162 }, 163 hide: function(o) { 164 o.box.hide(0, o.complete); 165 } 166 } 167 }; 168 169 // jQuery plugin interface 170 $.fn.openClose = function(opt) { 171 return this.each(function() { 172 jQuery(this).data('OpenClose', new OpenClose($.extend(opt, {holder: this}))); 173 }); 174 }; 175}(jQuery)); 176 177/* curator-feed-default */ 178(function(){ 179var i, e, d = document, s = "script";i = d.createElement("script");i.async = 1; 180i.src = "https://cdn.curator.io/published/7c118c52-d774-4b6e-8e36-69e3fd88.js"; 181e = d.getElementsByTagName(s)[0];e.parentNode.insertBefore(i, e); 182})(); 183 184 /*var curatorConfig = { 185 container:"#curator-feed" 186 }; 187 (function(){ 188 var i, e, d = document, s = "script";i = d.createElement("script");i.async = 1; 189 i.src = "https://cdn.curator.io/published/7c118c52-d774-4b6e-8e36-69e3fd88.js"; 190 e = d.getElementsByTagName(s)[0];e.parentNode.insertBefore(i, e); 191 })();*/ 192 193window.mobilecheck = function() { 194 var check = false; 195 (function(a){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4))) check = true;})(navigator.userAgent||navigator.vendor||window.opera); 196 return check; 197}; 198 199function enableVideo(){ 200 201var testMobile = window.mobilecheck(); 202 203if (testMobile === false){ 204 var video = document.querySelector("#videomain"); 205 video.setAttribute("src", video.getAttribute("data-src")); 206} 207} 208enableVideo(); 209 210//closure for play/pause toggle Rory King 07/18/17 211var videopause = (function () { 212 var toggle; 213 return function () { 214 if (toggle){ 215 return toggle = 0; 216 } 217 else{ 218 return toggle = 1; 219 } 220 } 221})(); 222 223videopause(); 224 225function pauseVid() { 226 227 var vid = document.getElementById("videomain"); 228 //var vid2 = document.getElementById("videomain2"); 229 //var vid3 = document.getElementById("videomain3"); 230 var c = document.getElementById("toggle"); 231 videopause(); 232 233 if (c.classList){ 234 if(videopause() == 0){ 235 vid.play(); 236 //vid2.play(); 237 //vid3.play(); 238 c.classList.remove("fa-play"); 239 c.classList.add("fa-pause"); 240 videopause(); 241 } 242 else{ 243 c.classList.remove("fa-pause") ; 244 c.classList.add("fa-play"); 245 vid.pause(); 246 //vid2.pause(); 247 //vid3.pause(); 248 videopause(); 249 } 250} 251 else { 252 if (c.className === "fas fa-2x fa-play pausevideo"){ 253 vid.play(); 254 //vid2.play(); 255 //vid3.play(); 256 c.className = "fas fa-2x fa-pause pausevideo"; 257 } 258 else{ 259 vid.pause(); 260 //vid2.pause() 261 //vid3.pause(); 262 c.className = "fas fa-2x fa-play pausevideo"; 263 } 264 } 265}
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.