1/* Source and licensing information for the line(s) below can be found at https://dannybarnes.com/misc/jquery-extend-3.4.0.js. */ 2(function(e){var n=e.fn.jquery.split('.'),t=parseInt(n[0]),i=parseInt(n[1]),r=parseInt(n[2]),f=(r.toString()!==n[2]);if((t>3)||(t===3&&i>4)||(t===3&&i===4&&r>0)||(t===3&&i===4&&r===0&&!f)){return};e.extend=e.fn.extend=function(){var o,r,f,t,s,a,n=arguments[0]||{},i=1,l=arguments.length,u=!1;if(typeof n==='boolean'){u=n;n=arguments[i]||{};i++};if(typeof n!=='object'&&!e.isFunction(n)){n={}};if(i===l){n=this;i--};for(;i<l;i++){if((o=arguments[i])!=null){for(r in o){t=o[r];if(r==='__proto__'||n===t){continue};if(u&&t&&(e.isPlainObject(t)||(s=e.isArray(t)))){f=n[r];if(s&&!e.isArray(f)){a=[]} 3else if(!s&&!e.isPlainObject(f)){a={}} 4else{a=f};s=!1;n[r]=e.extend(u,a,t)} 5else if(t!==undefined){n[r]=t}}}};return n}})(jQuery);; 6/* Source and licensing information for the above line(s) can be found at https://dannybarnes.com/misc/jquery-extend-3.4.0.js. */ 7;/*})'"*/ 8/** 9 * For jQuery versions less than 3.5.0, this replaces the jQuery.htmlPrefilter() 10 * function with one that fixes these security vulnerabilities while also 11 * retaining the pre-3.5.0 behavior where it's safe to do so. 12 * - https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-11022 13 * - https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-11023 14 * 15 * Additionally, for jQuery versions that do not have a jQuery.htmlPrefilter() 16 * function (1.x prior to 1.12 and 2.x prior to 2.2), this adds it, and 17 * extends the functions that need to call it to do so. 18 * 19 * Drupal core's jQuery version is 1.4.4, but jQuery Update can provide a 20 * different version, so this covers all versions between 1.4.4 and 3.4.1. 21 * The GitHub links in the code comments below link to jQuery 1.5 code, because 22 * 1.4.4 isn't on GitHub, but the referenced code didn't change from 1.4.4 to 23 * 1.5. 24 */ 25 26(function (jQuery) { 27 28 // Parts of this backport differ by jQuery version. 29 var versionParts = jQuery.fn.jquery.split('.'); 30 var majorVersion = parseInt(versionParts[0]); 31 var minorVersion = parseInt(versionParts[1]); 32 33 // No backport is needed if we're already on jQuery 3.5 or higher. 34 if ( (majorVersion > 3) || (majorVersion === 3 && minorVersion >= 5) ) { 35 return; 36 } 37 38 // Prior to jQuery 3.5, jQuery converted XHTML-style self-closing tags to 39 // their XML equivalent: e.g., "<div />" to "<div></div>". This is 40 // problematic for several reasons, including that it's vulnerable to XSS 41 // attacks. However, since this was jQuery's behavior for many years, many 42 // Drupal modules and jQuery plugins may be relying on it. Therefore, we 43 // preserve that behavior, but for a limited set of tags only, that we believe 44 // to not be vulnerable. This is the set of HTML tags that satisfy all of the 45 // following conditions: 46 // - In DOMPurify's list of HTML tags. If an HTML tag isn't safe enough to 47 // appear in that list, then we don't want to mess with it here either. 48 // @see https://github.com/cure53/DOMPurify/blob/2.0.11/dist/purify.js#L128 49 // - A normal element (not a void, template, text, or foreign element). 50 // @see https://html.spec.whatwg.org/multipage/syntax.html#elements-2 51 // - An element that is still defined by the current HTML specification 52 // (not a deprecated element), because we do not want to rely on how 53 // browsers parse deprecated elements. 54 // @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element 55 // - Not 'html', 'head', or 'body', because this pseudo-XHTML expansion is 56 // designed for fragments, not entire documents. 57 // - Not 'colgroup', because due to an idiosyncrasy of jQuery's original 58 // regular expression, it didn't match on colgroup, and we don't want to 59 // introduce a behavior change for that. 60 var selfClosingTagsToReplace = [ 61 'a', 'abbr', 'address', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 62 'blockquote', 'button', 'canvas', 'caption', 'cite', 'code', 'data', 63 'datalist', 'dd', 'del', 'details', 'dfn', 'div', 'dl', 'dt', 'em', 64 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 65 'h4', 'h5', 'h6', 'header', 'hgroup', 'i', 'ins', 'kbd', 'label', 'legend', 66 'li', 'main', 'map', 'mark', 'menu', 'meter', 'nav', 'ol', 'optgroup', 67 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 68 'ruby', 's', 'samp', 'section', 'select', 'small', 'source', 'span', 69 'strong', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'tfoot', 'th', 70 'thead', 'time', 'tr', 'u', 'ul', 'var', 'video' 71 ]; 72 73 // Define regular expressions for <TAG/> and <TAG ATTRIBUTES/>. Doing this as 74 // two expressions makes it easier to target <a/> without also targeting 75 // every tag that starts with "a". 76 var xhtmlRegExpGroup = '(' + selfClosingTagsToReplace.join('|') + ')'; 77 var whitespace = '[\\x20\\t\\r\\n\\f]'; 78 var rxhtmlTagWithoutSpaceOrAttributes = new RegExp('<' + xhtmlRegExpGroup + '\\/>', 'gi'); 79 var rxhtmlTagWithSpaceAndMaybeAttributes = new RegExp('<' + xhtmlRegExpGroup + '(' + whitespace + '[^>]*)\\/>', 'gi'); 80 81 // jQuery 3.5 also fixed a vulnerability for when </select> appears within 82 // an <option> or <optgroup>, but it did that in local code that we can't 83 // backport directly. Instead, we filter such cases out. To do so, we need to 84 // determine when jQuery would otherwise invoke the vulnerable code, which it 85 // uses this regular expression to determine. The regular expression changed 86 // for version 3.0.0 and changed again for 3.4.0. 87 // @see https://github.com/jquery/jquery/blob/1.5/jquery.js#L4958 88 // @see https://github.com/jquery/jquery/blob/3.0.0/dist/jquery.js#L4584 89 // @see https://github.com/jquery/jquery/blob/3.4.0/dist/jquery.js#L4712 90 var rtagName; 91 if (majorVersion < 3) { 92 rtagName = /<([\w:]+)/; 93 } 94 else if (minorVersion < 4) { 95 rtagName = /<([a-z][^\/\0>\x20\t\r\n\f]+)/i; 96 } 97 else { 98 rtagName = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i; 99 } 100 101 // The regular expression that jQuery uses to determine which self-closing 102 // tags to expand to open and close tags. This is vulnerable, because it 103 // matches all tag names except the few excluded ones. We only use this 104 // expression for determining vulnerability. The expression changed for 105 // version 3, but we only need to check for vulnerability in versions 1 and 2, 106 // so we use the expression from those versions. 107 // @see https://github.com/jquery/jquery/blob/1.5/jquery.js#L4957 108 var rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi; 109 110 jQuery.extend({ 111 htmlPrefilter: function (html) { 112 // This is how jQuery determines the first tag in the HTML. 113 // @see https://github.com/jquery/jquery/blob/1.5/jquery.js#L5521 114 var tag = ( rtagName.exec( html ) || [ "", "" ] )[ 1 ].toLowerCase(); 115
116 // It is not valid HTML for <option> or <optgroup> to have <select> as 117 // either a descendant or sibling, and attempts to inject one can cause 118 // XSS on jQuery versions before 3.5. Since this is invalid HTML and a 119 // possible XSS attack, reject the entire string. 120 // @see https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-11023 121 if ((tag === 'option' || tag === 'optgroup') && html.match(/<\/?select/i)) { 122 html = ''; 123 } 124 125 // Retain jQuery's prior to 3.5 conversion of pseudo-XHTML, but for only 126 // the tags in the `selfClosingTagsToReplace` list defined above. 127 // @see https://github.com/jquery/jquery/blob/1.5/jquery.js#L5518 128 // @see https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-11022 129 html = html.replace(rxhtmlTagWithoutSpaceOrAttributes, "<$1></$1>"); 130 html = html.replace(rxhtmlTagWithSpaceAndMaybeAttributes, "<$1$2></$1>"); 131 132 // Prior to jQuery 1.12 and 2.2, this function gets called (via code later 133 // in this file) in addition to, rather than instead of, the unsafe 134 // expansion of self-closing tags (including ones not in the list above). 135 // We can't prevent that unsafe expansion from running, so instead we 136 // check to make sure that it doesn't affect the DOM returned by the 137 // browser's parsing logic. If it does affect it, then it's vulnerable to 138 // XSS, so we reject the entire string. 139 if ( (majorVersion === 1 && minorVersion < 12) || (majorVersion === 2 && minorVersion < 2) ) { 140 var htmlRisky = html.replace(rxhtmlTag, "<$1></$2>"); 141 if (htmlRisky !== html) { 142 // Even though htmlRisky and html are different strings, they might 143 // represent the same HTML structure once parsed, in which case, 144 // htmlRisky is actually safe. We can ask the browser to parse both 145 // to find out, but the browser can't parse table fragments (e.g., a 146 // root-level "<td>"), so we need to wrap them. We just need this 147 // technique to work on all supported browsers; we don't need to 148 // copy from the specific jQuery version we're using. 149 // @see https://github.com/jquery/jquery/blob/3.5.1/dist/jquery.js#L4939 150 var wrapMap = { 151 thead: [ 1, "<table>", "</table>" ], 152 col: [ 2, "<table><colgroup>", "</colgroup></table>" ], 153 tr: [ 2, "<table><tbody>", "</tbody></table>" ], 154 td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ], 155 }; 156 wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; 157 wrapMap.th = wrapMap.td; 158 159 // Function to wrap HTML into something that a browser can parse. 160 // @see https://github.com/jquery/jquery/blob/3.5.1/dist/jquery.js#L5032 161 var getWrappedHtml = function (html) { 162 var wrap = wrapMap[tag]; 163 if (wrap) { 164 html = wrap[1] + html + wrap[2]; 165 } 166 return html; 167 }; 168 169 // Function to return canonical HTML after parsing it. This parses 170 // only; it doesn't execute scripts. 171 // @see https://github.com/jquery/jquery-migrate/blob/3.3.0/src/jquery/manipulation.js#L5 172 var getParsedHtml = function (html) { 173 var doc = window.document.implementation.createHTMLDocument( "" ); 174 doc.body.innerHTML = html; 175 return doc.body ? doc.body.innerHTML : ''; 176 }; 177 178 // If the browser couldn't parse either one successfully, or if 179 // htmlRisky parses differently than html, then html is vulnerable, 180 // so reject it. 181 var htmlParsed = getParsedHtml(getWrappedHtml(html)); 182 var htmlRiskyParsed = getParsedHtml(getWrappedHtml(htmlRisky)); 183 if (htmlRiskyParsed === '' || htmlParsed === '' || (htmlRiskyParsed !== htmlParsed)) { 184 html = ''; 185 } 186 } 187 } 188 189 return html; 190 } 191 }); 192 193 // Prior to jQuery 1.12 and 2.2, jQuery.clean(), jQuery.buildFragment(), and 194 // jQuery.fn.html() did not call jQuery.htmlPrefilter(), so we add that. 195 if ( (majorVersion === 1 && minorVersion < 12) || (majorVersion === 2 && minorVersion < 2) ) { 196 // Filter the HTML coming into jQuery.fn.html(). 197 var fnOriginalHtml = jQuery.fn.html; 198 jQuery.fn.extend({ 199 // @see https://github.com/jquery/jquery/blob/1.5/jquery.js#L5147 200 html: function (value) { 201 if (typeof value === "string") { 202 value = jQuery.htmlPrefilter(value); 203 } 204 // .html() can be called as a setter (with an argument) or as a getter 205 // (without an argument), so invoke fnOriginalHtml() the same way that 206 // we were invoked. 207 return fnOriginalHtml.apply(this, arguments.length ? [value] : []); 208 } 209 }); 210 211 // The regular expression that jQuery uses to determine if a string is HTML. 212 // Used by both clean() and buildFragment(). 213 // @see https://github.com/jquery/jquery/blob/1.5/jquery.js#L4960
214 var rhtml = /<|&#?\w+;/; 215 216 // Filter HTML coming into: 217 // - jQuery.clean() for versions prior to 1.9. 218 // - jQuery.buildFragment() for 1.9 and above. 219 // 220 // The looping constructs in the two functions might be essentially 221 // identical, but they're each expressed here in the way that most closely 222 // matches their original expression in jQuery, so that we filter all of 223 // the items and only the items that jQuery will treat as HTML strings. 224 if (majorVersion === 1 && minorVersion < 9) { 225 var originalClean = jQuery.clean; 226 jQuery.extend({ 227 // @see https://github.com/jquery/jquery/blob/1.5/jquery.js#L5493 228 'clean': function (elems, context, fragment, scripts) { 229 for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) { 230 if ( typeof elem === "string" && rhtml.test( elem ) ) { 231 elems[i] = elem = jQuery.htmlPrefilter(elem); 232 } 233 } 234 return originalClean.call(this, elems, context, fragment, scripts); 235 } 236 }); 237 } 238 else { 239 var originalBuildFragment = jQuery.buildFragment; 240 jQuery.extend({ 241 // @see https://github.com/jquery/jquery/blob/1.9.0/jquery.js#L6419 242 'buildFragment': function (elems, context, scripts, selection) { 243 var l = elems.length; 244 for ( var i = 0; i < l; i++ ) { 245 var elem = elems[i]; 246 if (elem || elem === 0) { 247 if ( jQuery.type( elem ) !== "object" && rhtml.test( elem ) ) { 248 elems[i] = elem = jQuery.htmlPrefilter(elem); 249 } 250 } 251 } 252 return originalBuildFragment.call(this, elems, context, scripts, selection); 253 } 254 }); 255 } 256 } 257 258})(jQuery); 259 260;/*})'"*/ 261;/*})'"*/ 262/* Source and licensing information for the line(s) below can be found at https://dannybarnes.com/misc/jquery.once.js. */ 263(function(n){var e={},i=0;n.fn.once=function(r,o){if(typeof r!='string'){if(!(r in e)){e[r]=++i};if(!o){o=r};r='jquery-once-'+e[r]};var s=r+'-processed',t=this.not('.'+s).addClass(s);return n.isFunction(o)?t.each(o):t};n.fn.removeOnce=function(e,i){var r=e+'-processed',o=this.filter('.'+r).removeClass(r);return n.isFunction(i)?o.each(i):o}})(jQuery);; 264/* Source and licensing information for the above line(s) can be found at https://dannybarnes.com/misc/jquery.once.js. */ 265;/*})'"*/ 266 267var Drupal = Drupal || { 'settings': {}, 'behaviors': {}, 'locale': {} }; 268 269// Allow other JavaScript libraries to use $. 270jQuery.noConflict(); 271 272(function ($) { 273 274/** 275 * Override jQuery.fn.init to guard against XSS attacks. 276 * 277 * See http://bugs.jquery.com/ticket/9521 278 */ 279var jquery_init = $.fn.init; 280$.fn.init = function (selector, context, rootjQuery) { 281 // If the string contains a "#" before a "<", treat it as invalid HTML. 282 if (selector && typeof selector === 'string') { 283 var hash_position = selector.indexOf('#'); 284 if (hash_position >= 0) { 285 var bracket_position = selector.indexOf('<'); 286 if (bracket_position > hash_position) { 287 throw 'Syntax error, unrecognized expression: ' + selector; 288 } 289 } 290 } 291 return jquery_init.call(this, selector, context, rootjQuery); 292}; 293$.fn.init.prototype = jquery_init.prototype; 294 295/** 296 * Pre-filter Ajax requests to guard against XSS attacks. 297 * 298 * See https://github.com/jquery/jquery/issues/2432 299 */ 300if ($.ajaxPrefilter) { 301 // For newer versions of jQuery, use an Ajax prefilter to prevent 302 // auto-executing script tags from untrusted domains. This is similar to the 303 // fix that is built in to jQuery 3.0 and higher. 304 $.ajaxPrefilter(function (s) { 305 if (s.crossDomain) { 306 s.contents.script = false; 307 } 308 }); 309} 310else if ($.httpData) { 311 // For the version of jQuery that ships with Drupal core, override 312 // jQuery.httpData to prevent auto-detecting "script" data types from 313 // untrusted domains. 314 var jquery_httpData = $.httpData; 315 $.httpData = function (xhr, type, s) { 316 // @todo Consider backporting code from newer jQuery versions to check for 317 // a cross-domain request here, rather than using Drupal.urlIsLocal() to 318 // block scripts from all URLs that are not on the same site. 319 if (!type && !Drupal.urlIsLocal(s.url)) { 320 var content_type = xhr.getResponseHeader('content-type') || ''; 321 if (content_type.indexOf('javascript') >= 0) { 322 // Default to a safe data type. 323 type = 'text'; 324 } 325 } 326 return jquery_httpData.call(this, xhr, type, s); 327 }; 328 $.httpData.prototype = jquery_httpData.prototype; 329} 330 331/** 332 * Attach all registered behaviors to a page element. 333 * 334 * Behaviors are event-triggered actions that attach to page elements, enhancing 335 * default non-JavaScript UIs. Behaviors are registered in the Drupal.behaviors 336 * object using the method 'attach' and optionally also 'detach' as follows: 337 * @code 338 * Drupal.behaviors.behaviorName = { 339 * attach: function (context, settings) { 340 * ... 341 * }, 342 * detach: function (context, settings, trigger) { 343 * ... 344 * } 345 * }; 346 * @endcode 347 * 348 * Drupal.attachBehaviors is added below to the jQuery ready event and so 349 * runs on initial page load. Developers implementing AHAH/Ajax in their 350 * solutions should also call this function after new page content has been 351 * loaded, feeding in an element to be processed, in order to attach all 352 * behaviors to the new content. 353 * 354 * Behaviors should use 355 * @code 356 * $(selector).once('behavior-name', function () { 357 * ... 358 * }); 359 * @endcode 360 * to ensure the behavior is attached only once to a given element. (Doing so 361 * enables the reprocessing of given elements, which may be needed on occasion 362 * despite the ability to limit behavior attachment to a particular element.) 363 * 364 * @param context 365 * An element to attach behaviors to. If none is given, the document element 366 * is used. 367 * @param settings
368 * An object containing settings for the current context. If none given, the 369 * global Drupal.settings object is used. 370 */ 371Drupal.attachBehaviors = function (context, settings) { 372 context = context || document; 373 settings = settings || Drupal.settings; 374 // Execute all of them. 375 $.each(Drupal.behaviors, function () { 376 if ($.isFunction(this.attach)) { 377 this.attach(context, settings); 378 } 379 }); 380}; 381 382/** 383 * Detach registered behaviors from a page element. 384 * 385 * Developers implementing AHAH/Ajax in their solutions should call this 386 * function before page content is about to be removed, feeding in an element 387 * to be processed, in order to allow special behaviors to detach from the 388 * content. 389 * 390 * Such implementations should look for the class name that was added in their 391 * corresponding Drupal.behaviors.behaviorName.attach implementation, i.e. 392 * behaviorName-processed, to ensure the behavior is detached only from 393 * previously processed elements. 394 * 395 * @param context 396 * An element to detach behaviors from. If none is given, the document element 397 * is used. 398 * @param settings 399 * An object containing settings for the current context. If none given, the 400 * global Drupal.settings object is used. 401 * @param trigger 402 * A string containing what's causing the behaviors to be detached. The 403 * possible triggers are: 404 * - unload: (default) The context element is being removed from the DOM. 405 * - move: The element is about to be moved within the DOM (for example, 406 * during a tabledrag row swap). After the move is completed, 407 * Drupal.attachBehaviors() is called, so that the behavior can undo 408 * whatever it did in response to the move. Many behaviors won't need to 409 * do anything simply in response to the element being moved, but because 410 * IFRAME elements reload their "src" when being moved within the DOM, 411 * behaviors bound to IFRAME elements (like WYSIWYG editors) may need to 412 * take some action. 413 * - serialize: When an Ajax form is submitted, this is called with the 414 * form as the context. This provides every behavior within the form an 415 * opportunity to ensure that the field elements have correct content 416 * in them before the form is serialized. The canonical use-case is so 417 * that WYSIWYG editors can update the hidden textarea to which they are 418 * bound. 419 * 420 * @see Drupal.attachBehaviors 421 */ 422Drupal.detachBehaviors = function (context, settings, trigger) { 423 context = context || document; 424 settings = settings || Drupal.settings; 425 trigger = trigger || 'unload'; 426 // Execute all of them. 427 $.each(Drupal.behaviors, function () { 428 if ($.isFunction(this.detach)) { 429 this.detach(context, settings, trigger); 430 } 431 }); 432}; 433 434/** 435 * Encode special characters in a plain-text string for display as HTML. 436 * 437 * @ingroup sanitization 438 */ 439Drupal.checkPlain = function (str) { 440 var character, regex, 441 replace = { '&': '&', "'": ''', '"': '"', '<': '<', '>': '>' }; 442 str = String(str); 443 for (character in replace) { 444 if (replace.hasOwnProperty(character)) { 445 regex = new RegExp(character, 'g'); 446 str = str.replace(regex, replace[character]); 447 } 448 } 449 return str; 450}; 451 452/** 453 * Replace placeholders with sanitized values in a string. 454 * 455 * @param str 456 * A string with placeholders. 457 * @param args 458 * An object of replacements pairs to make. Incidences of any key in this 459 * array are replaced with the corresponding value. Based on the first 460 * character of the key, the value is escaped and/or themed: 461 * - !variable: inserted as is 462 * - @variable: escape plain text to HTML (Drupal.checkPlain) 463 * - %variable: escape text and theme as a placeholder for user-submitted 464 * content (checkPlain + Drupal.theme('placeholder')) 465 * 466 * @see Drupal.t() 467 * @ingroup sanitization 468 */ 469Drupal.formatString = function(str, args) { 470 // Transform arguments before inserting them. 471 for (var key in args) { 472 if (args.hasOwnProperty(key)) { 473 switch (key.charAt(0)) { 474 // Escaped only. 475 case '@': 476 args[key] = Drupal.checkPlain(args[key]); 477 break; 478 // Pass-through. 479 case '!': 480 break; 481 // Escaped and placeholder. 482 default: 483 args[key] = Drupal.theme('placeholder', args[key]); 484 break; 485 } 486 } 487 } 488 489 return Drupal.stringReplace(str, args, null); 490}; 491 492/** 493 * Replace substring. 494 * 495 * The longest keys will be tried first. Once a substring has been replaced, 496 * its new value will not be searched again. 497 * 498 * @param {String} str 499 * A string with placeholders. 500 * @param {Object} args 501 * Key-value pairs. 502 * @param {Array|null} keys 503 * Array of keys from the "args". Internal use only. 504 * 505 * @return {String} 506 * Returns the replaced string. 507 */ 508Drupal.stringReplace = function (str, args, keys) { 509 if (str.length === 0) { 510 return str; 511 } 512 513 // If the array of keys is not passed then collect the keys from the args. 514 if (!$.isArray(keys)) { 515 keys = []; 516 for (var k in args) { 517 if (args.hasOwnProperty(k)) { 518 keys.push(k); 519 } 520 } 521 522 // Order the keys by the character length. The shortest one is the first. 523 keys.sort(function (a, b) { return a.length - b.length; }); 524 } 525 526 if (keys.length === 0) { 527 return str; 528 } 529 530 // Take next longest one from the end. 531 var key = keys.pop(); 532 var fragments = str.split(key); 533 534 if (keys.length) { 535 for (var i = 0; i < fragments.length; i++) { 536 // Process each fragment with a copy of remaining keys. 537 fragments[i] = Drupal.stringReplace(fragments[i], args, keys.slice(0)); 538 } 539 } 540 541 return fragments.join(args[key]); 542}; 543 544/** 545 * Translate strings to the page language or a given language. 546 * 547 * See the documentation of the server-side t() function for further details. 548 * 549 * @param str 550 * A string containing the English string to translate. 551 * @param args 552 * An object of replacements pairs to make after translation. Incidences 553 * of any key in this array are replaced with the corresponding value. 554 * See Drupal.formatString(). 555 * 556 * @param options 557 * - 'context' (defaults to the empty context): The context the source string 558 * belongs to. 559 * 560 * @return 561 * The translated string. 562 */ 563Drupal.t = function (str, args, options) { 564 options = options || {}; 565 options.context = options.context || ''; 566 567 // Fetch the localized version of the string. 568 if (Drupal.locale.strings && Drupal.locale.strings[options.context] && Drupal.locale.strings[options.context][str]) { 569 str = Drupal.locale.strings[options.context][str]; 570 } 571 572 if (args) { 573 str = Drupal.formatString(str, args); 574 } 575 return str; 576}; 577 578/** 579 * Format a string containing a count of items. 580 * 581 * This function ensures that the string is pluralized correctly. Since Drupal.t() is 582 * called by this function, make sure not to pass already-localized strings to it. 583 * 584 * See the documentation of the server-side format_plural() function for further details. 585 * 586 * @param count 587 * The item count to display. 588 * @param singular 589 * The string for the singular case. Please make sure it is clear this is 590 * singular, to ease translation (e.g. use "1 new comment" instead of "1 new"). 591 * Do not use @count in the singular string. 592 * @param plural 593 * The string for the plural case. Please make sure it is clear this is plural, 594 * to ease translation. Use @count in place of the item count, as in "@count 595 * new comments". 596 * @param args 597 * An object of replacements pairs to make after translation. Incidences 598 * of any key in this array are replaced with the corresponding value. 599 * See Drupal.formatString(). 600 * Note that you do not need to include @count in this array.
601 * This replacement is done automatically for the plural case. 602 * @param options 603 * The options to pass to the Drupal.t() function. 604 * @return 605 * A translated string. 606 */ 607Drupal.formatPlural = function (count, singular, plural, args, options) { 608 args = args || {}; 609 args['@count'] = count; 610 // Determine the index of the plural form. 611 var index = Drupal.locale.pluralFormula ? Drupal.locale.pluralFormula(args['@count']) : ((args['@count'] == 1) ? 0 : 1); 612 613 if (index == 0) { 614 return Drupal.t(singular, args, options); 615 } 616 else if (index == 1) { 617 return Drupal.t(plural, args, options); 618 } 619 else { 620 args['@count[' + index + ']'] = args['@count']; 621 delete args['@count']; 622 return Drupal.t(plural.replace('@count', '@count[' + index + ']'), args, options); 623 } 624}; 625 626/** 627 * Returns the passed in URL as an absolute URL. 628 * 629 * @param url 630 * The URL string to be normalized to an absolute URL. 631 * 632 * @return 633 * The normalized, absolute URL. 634 * 635 * @see https://github.com/angular/angular.js/blob/v1.4.4/src/ng/urlUtils.js 636 * @see https://grack.com/blog/2009/11/17/absolutizing-url-in-javascript 637 * @see https://github.com/jquery/jquery-ui/blob/1.11.4/ui/tabs.js#L53 638 */ 639Drupal.absoluteUrl = function (url) { 640 var urlParsingNode = document.createElement('a'); 641 642 // Decode the URL first; this is required by IE <= 6. Decoding non-UTF-8 643 // strings may throw an exception. 644 try { 645 url = decodeURIComponent(url); 646 } catch (e) {} 647 648 urlParsingNode.setAttribute('href', url); 649 650 // IE <= 7 normalizes the URL when assigned to the anchor node similar to 651 // the other browsers. 652 return urlParsingNode.cloneNode(false).href; 653}; 654 655/** 656 * Returns true if the URL is within Drupal's base path. 657 * 658 * @param url 659 * The URL string to be tested. 660 * 661 * @return 662 * Boolean true if local. 663 * 664 * @see https://github.com/jquery/jquery-ui/blob/1.11.4/ui/tabs.js#L58 665 */ 666Drupal.urlIsLocal = function (url) { 667 // Always use browser-derived absolute URLs in the comparison, to avoid 668 // attempts to break out of the base path using directory traversal. 669 var absoluteUrl = Drupal.absoluteUrl(url); 670 var protocol = location.protocol; 671 672 // Consider URLs that match this site's base URL but use HTTPS instead of HTTP 673 // as local as well. 674 if (protocol === 'http:' && absoluteUrl.indexOf('https:') === 0) { 675 protocol = 'https:'; 676 } 677 var baseUrl = protocol + '//' + location.host + Drupal.settings.basePath.slice(0, -1); 678 679 // Decoding non-UTF-8 strings may throw an exception. 680 try { 681 absoluteUrl = decodeURIComponent(absoluteUrl); 682 } catch (e) {} 683 try { 684 baseUrl = decodeURIComponent(baseUrl); 685 } catch (e) {} 686 687 // The given URL matches the site's base URL, or has a path under the site's 688 // base URL. 689 return absoluteUrl === baseUrl || absoluteUrl.indexOf(baseUrl + '/') === 0; 690}; 691 692/** 693 * Sanitizes a URL for use with jQuery.ajax(). 694 * 695 * @param url 696 * The URL string to be sanitized. 697 * 698 * @return 699 * The sanitized URL. 700 */ 701Drupal.sanitizeAjaxUrl = function (url) { 702 var regex = /\=\?(&|$)/; 703 while (url.match(regex)) { 704 url = url.replace(regex, ''); 705 } 706 return url; 707} 708 709/** 710 * Generate the themed representation of a Drupal object. 711 * 712 * All requests for themed output must go through this function. It examines 713 * the request and routes it to the appropriate theme function. If the current 714 * theme does not provide an override function, the generic theme function is 715 * called. 716 * 717 * For example, to retrieve the HTML for text that should be emphasized and 718 * displayed as a placeholder inside a sentence, call 719 * Drupal.theme('placeholder', text). 720 * 721 * @param func 722 * The name of the theme function to call. 723 * @param ... 724 * Additional arguments to pass along to the theme function. 725 * @return 726 * Any data the theme function returns. This could be a plain HTML string, 727 * but also a complex object. 728 */ 729Drupal.theme = function (func) { 730 var args = Array.prototype.slice.apply(arguments, [1]); 731 732 return (Drupal.theme[func] || Drupal.theme.prototype[func]).apply(this, args); 733}; 734 735/** 736 * Freeze the current body height (as minimum height). Used to prevent 737 * unnecessary upwards scrolling when doing DOM manipulations. 738 */ 739Drupal.freezeHeight = function () { 740 Drupal.unfreezeHeight(); 741 $('<div id="freeze-height"></div>').css({ 742 position: 'absolute', 743 top: '0px', 744 left: '0px', 745 width: '1px', 746 height: $('body').css('height') 747 }).appendTo('body'); 748}; 749 750/** 751 * Unfreeze the body height. 752 */ 753Drupal.unfreezeHeight = function () { 754 $('#freeze-height').remove(); 755}; 756 757/** 758 * Encodes a Drupal path for use in a URL. 759 * 760 * For aesthetic reasons slashes are not escaped. 761 */ 762Drupal.encodePath = function (item, uri) { 763 uri = uri || location.href; 764 return encodeURIComponent(item).replace(/%2F/g, '/'); 765}; 766 767/** 768 * Get the text selection in a textarea. 769 */ 770Drupal.getSelection = function (element) { 771 if (typeof element.selectionStart != 'number' && document.selection) { 772 // The current selection. 773 var range1 = document.selection.createRange(); 774 var range2 = range1.duplicate(); 775 // Select all text. 776 range2.moveToElementText(element); 777 // Now move 'dummy' end point to end point of original range.
778 range2.setEndPoint('EndToEnd', range1); 779 // Now we can calculate start and end points. 780 var start = range2.text.length - range1.text.length; 781 var end = start + range1.text.length; 782 return { 'start': start, 'end': end }; 783 } 784 return { 'start': element.selectionStart, 'end': element.selectionEnd }; 785}; 786 787/** 788 * Add a global variable which determines if the window is being unloaded. 789 * 790 * This is primarily used by Drupal.displayAjaxError(). 791 */ 792Drupal.beforeUnloadCalled = false; 793$(window).bind('beforeunload pagehide', function () { 794 Drupal.beforeUnloadCalled = true; 795}); 796 797/** 798 * Displays a JavaScript error from an Ajax response when appropriate to do so. 799 */ 800Drupal.displayAjaxError = function (message) { 801 // Skip displaying the message if the user deliberately aborted (for example, 802 // by reloading the page or navigating to a different page) while the Ajax 803 // request was still ongoing. See, for example, the discussion at 804 // http://stackoverflow.com/questions/699941/handle-ajax-error-when-a-user-clicks-refresh. 805 if (!Drupal.beforeUnloadCalled) { 806 alert(message); 807 } 808}; 809 810/** 811 * Build an error message from an Ajax response. 812 */ 813Drupal.ajaxError = function (xmlhttp, uri, customMessage) { 814 var statusCode, statusText, pathText, responseText, readyStateText, message; 815 if (xmlhttp.status) { 816 statusCode = "\n" + Drupal.t("An AJAX HTTP error occurred.") + "\n" + Drupal.t("HTTP Result Code: !status", {'!status': xmlhttp.status}); 817 } 818 else { 819 statusCode = "\n" + Drupal.t("An AJAX HTTP request terminated abnormally."); 820 } 821 statusCode += "\n" + Drupal.t("Debugging information follows."); 822 pathText = "\n" + Drupal.t("Path: !uri", {'!uri': uri} ); 823 statusText = ''; 824 // In some cases, when statusCode == 0, xmlhttp.statusText may not be defined. 825 // Unfortunately, testing for it with typeof, etc, doesn't seem to catch that 826 // and the test causes an exception. So we need to catch the exception here. 827 try { 828 statusText = "\n" + Drupal.t("StatusText: !statusText", {'!statusText': $.trim(xmlhttp.statusText)}); 829 } 830 catch (e) {} 831 832 responseText = ''; 833 // Again, we don't have a way to know for sure whether accessing 834 // xmlhttp.responseText is going to throw an exception. So we'll catch it. 835 try { 836 responseText = "\n" + Drupal.t("ResponseText: !responseText", {'!responseText': $.trim(xmlhttp.responseText) } ); 837 } catch (e) {} 838 839 // Make the responseText more readable by stripping HTML tags and newlines. 840 responseText = responseText.replace(/<("[^"]*"|'[^']*'|[^'">])*>/gi,""); 841 responseText = responseText.replace(/[\n]+\s+/g,"\n"); 842 843 // We don't need readyState except for status == 0. 844 readyStateText = xmlhttp.status == 0 ? ("\n" + Drupal.t("ReadyState: !readyState", {'!readyState': xmlhttp.readyState})) : ""; 845 846 // Additional message beyond what the xmlhttp object provides. 847 customMessage = customMessage ? ("\n" + Drupal.t("CustomMessage: !customMessage", {'!customMessage': customMessage})) : ""; 848 849 message = statusCode + pathText + statusText + customMessage + responseText + readyStateText; 850 return message; 851}; 852 853// Class indicating that JS is enabled; used for styling purpose. 854$('html').addClass('js'); 855 856$(function () { 857 if (Drupal.settings.setHasJsCookie === 1) { 858 // 'js enabled' cookie. 859 document.cookie = 'has_js=1; path=/; SameSite=Lax'; 860 } 861}); 862 863/** 864 * Additions to jQuery.support. 865 */ 866$(function () { 867 /** 868 * Boolean indicating whether or not position:fixed is supported. 869 */ 870 if (jQuery.support.positionFixed === undefined) { 871 var el = $('<div style="position:fixed; top:10px" />').appendTo(document.body); 872 jQuery.support.positionFixed = el[0].offsetTop === 10; 873 el.remove(); 874 } 875}); 876 877//Attach all behaviors. 878$(function () { 879 Drupal.attachBehaviors(document, Drupal.settings); 880}); 881 882/** 883 * The default themes. 884 */ 885Drupal.theme.prototype = { 886 887 /** 888 * Formats text for emphasized display in a placeholder inside a sentence. 889 * 890 * @param str 891 * The text to format (plain-text). 892 * @return 893 * The formatted text (html). 894 */ 895 placeholder: function (str) { 896 return '<em class="placeholder">' + Drupal.checkPlain(str) + '</em>'; 897 } 898}; 899 900})(jQuery); 901 902;/*})'"*/ 903;/*})'"*/ 904/** 905 * Workaround for deprecated $.browser which was removed in jQuery 1.9 906 * @see https://api.jquery.com/jquery.browser/ 907 */ 908(function ($) { 909 if ($.browser===undefined) { 910 $.browser={}; 911 $.browser.msie=false; 912 $.browser.version=0; 913 if (navigator.userAgent.match(/MSIE ([0-9]+)\./)) { 914 $.browser.msie=true; 915 $.browser.version=RegExp.$1; 916 } 917 } 918})(jQuery); 919 920;/*})'"*/ 921;/*})'"*/ 922/* Source and licensing information for the line(s) below can be found at https://dannybarnes.com/sites/all/modules/extlink/extlink.js. */ 923(function(e){Drupal.extlink=Drupal.extlink||{};Drupal.extlink.attach=function(l,t){if(!t.hasOwnProperty('extlink')){return};var c=/^(([^\/:]+?\.)*)([^\.:]{4,})((\.[a-z]{1,4})*)(:[0-9]{1,5})?$/,o=window.location.host.replace(c,'$3$4'),r=window.location.host.replace(c,'$1'),s;if(t.extlink.extSubdomains){s='([^/]*\\.)?'} 924else if(r=='www.'||r==''){s='(www\\.)?'} 925else{s=r.replace('.','\\.')};var u=new RegExp('^https?://'+s+o,'i'),p=!1;if(t.extlink.extInclude){p=new RegExp(t.extlink.extInclude.replace(/\\/,'\\'),'i')};var x=!1;if(t.extlink.extExclude){x=new RegExp(t.extlink.extExclude.replace(/\\/,'\\'),'i')};var n=!1;if(t.extlink.extCssExclude){n=t.extlink.extCssExclude};var i=!1;if(t.extlink.extCssExplicit){i=t.extlink.extCssExplicit};var a=[],k=[];e('a:not(.'+t.extlink.extClass+', .'+t.extlink.mailtoClass+'), area:not(.'+t.extlink.extClass+', .'+t.extlink.mailtoClass+')',l).each(function(t){try{var l=this.href.toLowerCase();if(l.indexOf('http')==0&&((!l.match(u)&&!(x&&l.match(x)))||(p&&l.match(p)))&&!(n&&e(this).parents(n).length>0)&&!(i&&e(this).parents(i).length<1)){a.push(this)} 926else if(this.tagName!='AREA'&&l.indexOf('mailto:')==0&&!(n&&e(this).parents(n).length>0)&&!(i&&e(this).parents(i).length<1)){k.push(this)}}catch(s){return!1}});if(t.extlink.extClass){Drupal.extlink.applyClassAndSpan(a,t.extlink.extClass)};if(t.extlink.mailtoClass){Drupal.extlink.applyClassAndSpan(k,t.extlink.mailtoClass)};if(t.extlink.extTarget){e(a).attr('target',t.extlink.extTarget)};Drupal.extlink=Drupal.extlink||{};Drupal.extlink.popupClickHandler=Drupal.extlink.popupClickHandler||function(){if(t.extlink.extAlert){return confirm(t.extlink.extAlertText)}};e(a).click(function(e){return Drupal.extlink.popupClickHandler(e)})};Drupal.extlink.applyClassAndSpan=function(t,l){var i;if(Drupal.settings.extlink.extImgClass){i=e(t)} 927else{var x=e(t).find('img').parents('a');
927i=e(t).not(x)};i.addClass(l);var a,s=i.length;for(a=0;a<s;a++){var n=e(i[a]);if(n.css('display')=='inline'||n.css('display')=='inline-block'){if(l==Drupal.settings.extlink.mailtoClass){n.append('<span class="'+l+'"><span class="element-invisible"> '+Drupal.settings.extlink.mailtoLabel+'</span></span>')} 928else{n.append('<span class="'+l+'"><span class="element-invisible"> '+Drupal.settings.extlink.extLabel+'</span></span>')}}}};Drupal.behaviors.extlink=Drupal.behaviors.extlink||{};Drupal.behaviors.extlink.attach=function(e,t){if(typeof extlinkAttach==='function'){extlinkAttach(e)} 929else{Drupal.extlink.attach(e,t)}}})(jQuery);; 930/* Source and licensing information for the above line(s) can be found at https://dannybarnes.com/sites/all/modules/extlink/extlink.js. */ 931;/*})'"*/ 932/* Source and licensing information for the line(s) below can be found at https://dannybarnes.com/sites/all/modules/external/external.js. */ 933(function(e){Drupal.behaviors.external={attach:function(t,n){e('a[href^=http\\:\\/\\/]:not(.external-processed)',t).each(function(){if(this.href.toLowerCase().indexOf(location.hostname)==-1||this.href.toLowerCase().indexOf(location.hostname)>13){e(this).click(a)}}).addClass('external-processed');if(Drupal.settings.externalpdf){e('a[href*=\\.pdf]:not(.external-processed)',t).each(function(){e(this).click(a)}).addClass('external-processed')};e('a.newtab:not(.external-processed)',t).click(a).addClass('external-processed');e('a[href*=pdf]',t).click(a);function a(){window.open(this.href);return!1}}}}(jQuery));; 934/* Source and licensing information for the above line(s) can be found at https://dannybarnes.com/sites/all/modules/external/external.js. */ 935;/*})'"*/ 936/* Source and licensing information for the line(s) below can be found at https://dannybarnes.com/sites/all/modules/floating_block/floating_block.js. */ 937(function(o){Drupal.blockFloatStack=function(){if(typeof Drupal.blockFloatStack.blocks=='undefined'){Drupal.blockFloatStack.blocks=[]};return Drupal.blockFloatStack.blocks};Drupal.behaviors.blockFloat={attach:function(t){var i=Drupal.settings.floating_block.settings;if(navigator.appName=='Microsoft Internet Explorer'&&navigator.userAgent.match(/msie 6/i)){return};if(jQuery.isFunction(t.parent)){t=t.parent()};o.each(i,function(l,i){o(l.toString()+':not(.blockFloat-processed)',t).each(function(a,l){var t=[];t.original_css=[];t.original_css.left=Drupal.blockFloatCleanCSSValue(o(l).css('left'));t.original_css.top=Drupal.blockFloatCleanCSSValue(o(l).css('top'));t.original_css.position=o(l).css('position');t.original_css.height=o(l).height();t.floating=!1;t.reset=!0;t.original_identifier='blockFloat-'+Drupal.blockFloatStack().length;if(i.container&&o(i.container.toString()).length>0){t.container=i.container};if(i.padding_top){t.padding_top=i.padding_top} 938else{t.padding_top=0};if(i.padding_bottom){t.padding_bottom=i.padding_bottom} 939else{t.padding_bottom=0};o(l).width(o(l).width());o(l).addClass('blockFloat-processed '+t.original_identifier);Drupal.blockFloatTracker(t);Drupal.blockFloatStack().push(t)})})}};Drupal.blockFloatTracker=function(t){var r=Drupal.settings.floating_block.minWidth;if(r&&window.matchMedia){if(!window.matchMedia('(min-width: '+r+')').matches){return}};var c=o(window).height(),l=t.original_css.height;if(l>c){if(t.floating==!0){} 940else{Drupal.blockFloatResetPosition(i,t);return}};var e=document.documentElement.scrollHeight||document.body.scrollHeight,i=o('.'+t.original_identifier);if(i.length==0){return};if(t.scrollHeight!=e||t.reset){if(t.reset){Drupal.blockFloatResetPosition(i,t);t.original_offset=o(i).offset();t.reset=!1};t.scrollHeight=e;t.minOffset=t.original_offset.top-t.padding_top;if(t.container){t.maxOffset=o(t.container).height()+o(t.container).offset().top-t.padding_bottom} 941else{t.maxOffset=e}};var a=(document.documentElement.scrollTop||document.body.scrollTop);if(a>t.minOffset){var n=t.padding_top,l=i.height();if((a+l)>t.maxOffset){n=t.maxOffset-a-l};i.css({left:t.original_offset.left+'px',position:'fixed',top:n+'px'}).addClass('floating-block-active');t.floating=!0} 942else{Drupal.blockFloatResetPosition(i,t)}};Drupal.blockFloatResetPosition=function(o,t){if(t.floating){o.css({left:t.original_css.left,position:t.original_css.position,top:t.original_css.top}).removeClass('floating-block-active');t.floating=!1}};
942Drupal.blockFloatCleanCSSValue=function(o){if(o=='0px'){o=''};return o};Drupal.blockFloatOnScroll=function(){o(Drupal.blockFloatStack()).each(function(){Drupal.blockFloatTracker(this)})};Drupal.blockFloatWindowResize=function(){if(typeof Drupal.blockFloatWindowResize.timer=='undefined'){Drupal.blockFloatWindowResize.timer=!1};if(Drupal.blockFloatWindowResize.timer){return};Drupal.blockFloatWindowResize.timer=setTimeout(function(){o(Drupal.blockFloatStack()).each(function(){this.reset=!0;Drupal.blockFloatTracker(this)});Drupal.blockFloatWindowResize.timer=!1},250)};if(!o('body').hasClass('blockFloat-processed')){o('body').addClass('blockFloat-processed');o(window).scroll(Drupal.blockFloatOnScroll);o(document.documentElement).scroll(Drupal.blockFloatOnScroll);o(window).resize(Drupal.blockFloatWindowResize)}})(jQuery);; 943/* Source and licensing information for the above line(s) can be found at https://dannybarnes.com/sites/all/modules/floating_block/floating_block.js. */ 944;/*})'"*/ 945/* Source and licensing information for the line(s) below can be found at https://dannybarnes.com/sites/all/modules/views_slideshow/js/views_slideshow.js. */ 946(function(e){Drupal.viewsSlideshow=Drupal.viewsSlideshow||{};Drupal.viewsSlideshowControls=Drupal.viewsSlideshowControls||{};Drupal.viewsSlideshowControls.play=function(e){try{if(typeof Drupal.settings.viewsSlideshowControls[e.slideshowID].top.type!='undefined'&&typeof Drupal[Drupal.settings.viewsSlideshowControls[e.slideshowID].top.type].play=='function'){Drupal[Drupal.settings.viewsSlideshowControls[e.slideshowID].top.type].play(e)}}catch(s){};try{if(typeof Drupal.settings.viewsSlideshowControls[e.slideshowID].bottom.type!='undefined'&&typeof Drupal[Drupal.settings.viewsSlideshowControls[e.slideshowID].bottom.type].play=='function'){Drupal[Drupal.settings.viewsSlideshowControls[e.slideshowID].bottom.type].play(e)}}catch(s){}};Drupal.viewsSlideshowControls.pause=function(e){try{if(typeof Drupal.settings.viewsSlideshowControls[e.slideshowID].top.type!='undefined'&&typeof Drupal[Drupal.settings.viewsSlideshowControls[e.slideshowID].top.type].pause=='function'){Drupal[Drupal.settings.viewsSlideshowControls[e.slideshowID].top.type].pause(e)}}catch(s){};try{if(typeof Drupal.settings.viewsSlideshowControls[e.slideshowID].bottom.type!='undefined'&&typeof Drupal[Drupal.settings.viewsSlideshowControls[e.slideshowID].bottom.type].pause=='function'){Drupal[Drupal.settings.viewsSlideshowControls[e.slideshowID].bottom.type].pause(e)}}catch(s){}};Drupal.behaviors.viewsSlideshowControlsText={attach:function(s){e('.views_slideshow_controls_text_previous:not(.views-slideshow-controls-text-previous-processed)',s).addClass('views-slideshow-controls-text-previous-processed').each(function(){var s=e(this).attr('id').replace('views_slideshow_controls_text_previous_','');e(this).click(function(){Drupal.viewsSlideshow.action({'action':'previousSlide','slideshowID':s});return!1})});e('.views_slideshow_controls_text_next:not(.views-slideshow-controls-text-next-processed)',s).addClass('views-slideshow-controls-text-next-processed').each(function(){var s=e(this).attr('id').replace('views_slideshow_controls_text_next_','');e(this).click(function(){Drupal.viewsSlideshow.action({'action':'nextSlide','slideshowID':s});return!1})});e('.views_slideshow_controls_text_pause:not(.views-slideshow-controls-text-pause-processed)',s).addClass('views-slideshow-controls-text-pause-processed').each(function(){var s=e(this).attr('id').replace('views_slideshow_controls_text_pause_','');e(this).click(function(){if(Drupal.settings.viewsSlideshow[s].paused){Drupal.viewsSlideshow.action({'action':'play','slideshowID':s,'force':!0})} 947else{Drupal.viewsSlideshow.action({'action':'pause','slideshowID':s,'force':!0})};return!1})})}};Drupal.viewsSlideshowControlsText=Drupal.viewsSlideshowControlsText||{};Drupal.viewsSlideshowControlsText.pause=function(s){var i=Drupal.theme.prototype['viewsSlideshowControlsPause']?Drupal.theme('viewsSlideshowControlsPause'):'';e('#views_slideshow_controls_text_pause_'+s.slideshowID+' a').text(i);e('#views_slideshow_controls_text_pause_'+s.slideshowID).removeClass('views-sli
947deshow-controls-text-status-play');e('#views_slideshow_controls_text_pause_'+s.slideshowID).addClass('views-slideshow-controls-text-status-pause')};Drupal.viewsSlideshowControlsText.play=function(s){var i=Drupal.theme.prototype['viewsSlideshowControlsPlay']?Drupal.theme('viewsSlideshowControlsPlay'):'';e('#views_slideshow_controls_text_pause_'+s.slideshowID+' a').text(i);e('#views_slideshow_controls_text_pause_'+s.slideshowID).removeClass('views-slideshow-controls-text-status-pause');e('#views_slideshow_controls_text_pause_'+s.slideshowID).addClass('views-slideshow-controls-text-status-play')};Drupal.theme.prototype.viewsSlideshowControlsPause=function(){return Drupal.t('Resume')};Drupal.theme.prototype.viewsSlideshowControlsPlay=function(){return Drupal.t('Pause')};Drupal.viewsSlideshowPager=Drupal.viewsSlideshowPager||{};Drupal.viewsSlideshowPager.transitionBegin=function(e){try{if(typeof Drupal.settings.viewsSlideshowPager[e.slideshowID].top.type!='undefined'&&typeof Drupal[Drupal.settings.viewsSlideshowPager[e.slideshowID].top.type].transitionBegin=='function'){Drupal[Drupal.settings.viewsSlideshowPager[e.slideshowID].top.type].transitionBegin(e)}}catch(s){};try{if(typeof Drupal.settings.viewsSlideshowPager[e.slideshowID].bottom.type!='undefined'&&typeof Drupal[Drupal.settings.viewsSlideshowPager[e.slideshowID].bottom.type].transitionBegin=='function'){Drupal[Drupal.settings.viewsSlideshowPager[e.slideshowID].bottom.type].transitionBegin(e)}}catch(s){}};Drupal.viewsSlideshowPager.goToSlide=function(e){try{if(typeof Drupal.settings.viewsSlideshowPager[e.slideshowID].top.type!='undefined'&&typeof Drupal[Drupal.settings.viewsSlideshowPager[e.slideshowID].top.type].goToSlide=='function'){Drupal[Drupal.settings.viewsSlideshowPager[e.slideshowID].top.type].goToSlide(e)}}catch(s){};try{if(typeof Drupal.settings.viewsSlideshowPager[e.slideshowID].bottom.type!='undefined'&&typeof Drupal[Drupal.settings.viewsSlideshowPager[e.slideshowID].bottom.type].goToSlide=='function'){Drupal[Drupal.settings.viewsSlideshowPager[e.slideshowID].bottom.type].goToSlide(e)}}catch(s){}};Drupal.viewsSlideshowPager.previousSlide=function(e){try{if(typeof Drupal.settings.viewsSlideshowPager[e.slideshowID].top.type!='undefined'&&typeof Drupal[Drupal.settings.viewsSlideshowPager[e.slideshowID].top.type].previousSlide=='function'){Drupal[Drupal.settings.viewsSlideshowPager[e.slideshowID].top.type].previousSlide(e)}}catch(s){};try{if(typeof Drupal.settings.viewsSlideshowPager[e.slideshowID].bottom.type!='undefined'&&typeof Drupal[Drupal.settings.viewsSlideshowPager[e.slideshowID].bottom.type].previousSlide=='function'){Drupal[Drupal.settings.viewsSlideshowPager[e.slideshowID].bottom.type].previousSlide(e)}}catch(s){}};Drupal.viewsSlideshowPager.nextSlide=function(e){try{if(typeof Drupal.settings.viewsSlideshowPager[e.slideshowID].top.type!='undefined'&&typeof Drupal[Drupal.settings.viewsSlideshowPager[e.slideshowID].top.type].nextSlide=='function'){Drupal[Drupal.settings.viewsSlideshowPager[e.slideshowID].top.type].nextSlide(e)}}catch(s){};try{if(typeof Drupal.settings.viewsSlideshowPager[e.slideshowID].bottom.type!='undefined'&&typeof Drupal[Drupal.settings.viewsSlideshowPager[e.slideshowID].bottom.type].nextSlide=='function'){Drupal[Drupal.settings.viewsSlideshowPager[e.slideshowID].bottom.type].nextSlide(e)}}catch(s){}};Drupal.behaviors.viewsSlideshowPagerFields={attach:function(s){e('.views_slideshow_pager_field:not(.views-slideshow-pager-field-processed)',s).addClass('views-slideshow-pager-field-processed').each(function(){var i=e(this).attr('id').split('_'),o=i[2];i.splice(0,3);var s=i.join('_');if(Drupal.settings.viewsSlideshowPagerFields[s][o].activatePauseOnHover){e(this).children().each(function(i,o){var t=function(){Drupal.viewsSlideshow.action({'action':'goToSlide','slideshowID':s,'slideNum':i});Drupal.viewsSlideshow.action({'action':'pause','slideshowID':s})},l=function(){Drupal.viewsSlideshow.action({'action':'play','slideshowID':s})};if(jQuery.fn.hoverIntent){e(o).hoverIntent(t,l)} 948else{e(o).hover(t,l)}})} 949else{e(this).children().each(function(i,o){e(o).click(function(){Drupal.viewsSlideshow.action({'action':'goToSlide','slideshowID':s,'slideNum':i})})})}})}};Drupal.viewsSlideshowPagerFields=Drupal.viewsSlideshowPagerFields||{};Drupal.viewsSlideshowPagerFields.transitionBegin=function(s){for(pagerLocation in Drupal.settings.viewsSlideshowPager[s.slideshowID]){e('[id^="views_slideshow_pager_field_item_'+pagerLocation+'_'+s.slideshowID+'"]').removeClass('active');e('#views_slideshow_pager_field_item_'+pagerLocation+'_'+s.slideshowID+'_'+s.slideNum).addClass('active')}};Drupal.viewsSlideshowPagerFields.goToSlide=function(s){for(pagerLocation in Drupal.settings.viewsSlideshowPager[s.slideshowID]){e('[id^="views_slideshow_pager_field_item_'+pagerLocation+'_'+s.slideshowID+'"]').removeClass('active');e('#views_slideshow_pager_field_item_'+pagerLocation+'_'+s.slideshowID+'_'+s.slideNum).addClass('active')}};Drupal.viewsSlideshowPagerFields.previousSlide=function(s){for(pagerLocation in Drupal.settings.viewsSlideshowPager[s.slideshowID]){var i=e('[id^="views_slideshow_pager_field_item_'+pagerLocation+'_'+s.slideshowID+'"].active').attr('id').replace('views_slideshow_pager_field_item_'+pagerLocation+'_'+s.slideshowID+'_','');if(i==0){i=e('[id^="views_slideshow_pager_field_item_'+pagerLocation+'_'+s.slideshowID+'"]').length()-1} 950else{i--};e('[id^="views_slideshow_pager_field_item_'+pagerLocation+'_'+s.slideshowID+'"]').removeClass('active');e('#views_slideshow_pager_field_item_'+pagerLocation+'_'+s.slideshowID+'_'+i).addClass('active')}};Drupal.viewsSlideshowPagerFields.nextSlide=function(s){for(pagerLocation in Drupal.settings.viewsSlideshowPager[s.slideshowID]){var i=e('[id^="views_slideshow_pager_field_item_'+pagerLocation+'_'+s.slideshowID+'"].active').attr('id').replace('views_slideshow_pager_field_item_'+pagerLocation+'_'+s.slideshowID+'_',''),o=e('[id^="views_slideshow_pager_field_item_'+pagerLocation+'_'+s.slideshowID+'"]').length();i++;if(i==o){i=0};e('[id^="views_slideshow_pager_field_item_'+pagerLocation+'_'+s.slideshowID+'"]').removeClass('active');e('#views_slideshow_pager_field_item_'+pagerLocation+'_'+s.slideshowID+'_'+slideNum).addClass('active')}};Drupal.viewsSlideshowSlideCounter=Drupal.viewsSlideshowSlideCounter||{};Drupal.viewsSlideshowSlideCounter.transitionBegin=function(s){e('#views_slideshow_slide_counter_'+s.slideshowID+' .num').text(s.slideNum+1)};Drupal.viewsSlideshow.action=function(e){var i={'value':!0,'text':''};if(typeof e.action=='undefined'||e.action==''){i.value=!1;i.text=Drupal.t('There was no action specified.');return error};if(e.action=='pause'){Drupal.settings.viewsSlideshow[e.slideshowID].paused=1;if(e.force){Drupal.settings.viewsSlideshow[e.slideshowID].pausedForce=1}} 951else if(e.action=='play'){if(!Drupal.settings.viewsSlideshow[e.slideshowID].pausedForce||e.force){Drupal.settings.viewsSlideshow[e.slideshowID].paused=0;Drupal.settings.viewsSlideshow[e.slideshowID].pausedForce=0} 952else{i.value=!1;i.text+=' '+Drupal.t('This slideshow is forced paused.');return i}};switch(e.action){case'goToSlide':case'transitionBegin':case'transitionEnd':if(typeof e.slideNum=='undefined'||typeof e.slideNum!=='number'||parseInt(e.slideNum)!=(e.slideNum-0)){i.value=!1;i.text=Drupal.t('An invalid integer was specified for slideNum.')};case'pause':case'play':case'nextSlide':case'previousSlide':var o=Drupal.settings.viewsSlideshow[e.slideshowID]['methods'];var t={};if(typeof e.excludeMethods!=='undefined'){for(var s=0;s<excludeMethods.length;s++){t[excludeMethods[s]]=''}};for(s=0;s<o[e.action].length;s++){if(Drupal[o[e.action][s]]!=undefined&&typeof Drupal[o[e.action][s]][e.action]=='function'&&!(o[e.action][s]in t)){Drupal[o[e.action][s]][e.action](e)}};break;default:i.value=!1;i.text=Drupal.t('An invalid action "!action" was specified.',{'!action':e.action})};return i}})(jQuery);; 953/* Source and licensing information for the above line(s) can be found at https://dannybarnes.com/sites/all/modules/views_slideshow/js/views_slideshow.js. */ 954;/*})'"*/ 955/* 956 * jQuery mmenu v5.7.8 957 * @requires jQuery 1.7.0 or later 958 * 959 * mmenu.frebsite.nl 960 * 961 * Copyright (c) Fred Heusschen 962 * www.frebsite.nl 963 * 964 * License: CC-BY-NC-4.0 965 * http://creativecommons.org/licenses/by-nc/4.0/ 966 */ 967!function(e){function n(){e[t].glbl||(r={$wndw:e(window),$docu:e(document),$html:e("html"),$body:e("body")},s={},a={},o={}
967,e.each([s,a,o],function(e,n){n.add=function(e){e=e.split(" ");for(var t=0,i=e.length;t<i;t++)n[e[t]]=n.mm(e[t])}}),s.mm=function(e){return"mm-"+e},s.add("wrapper menu panels panel nopanel current highest opened subopened navbar hasnavbar title btn prev next listview nolistview inset vertical selected divider spacer hidden fullsubopen"),s.umm=function(e){return"mm-"==e.slice(0,3)&&(e=e.slice(3)),e},a.mm=function(e){return"mm-"+e},a.add("parent child"),o.mm=function(e){return e+".mm"},o.add("transitionend webkitTransitionEnd click scroll keydown mousedown mouseup touchstart touchmove touchend orientationchange"),e[t]._c=s,e[t]._d=a,e[t]._e=o,e[t].glbl=r)}var t="mmenu",i="5.7.8";if(!(e[t]&&e[t].version>i)){e[t]=function(e,n,t){this.$menu=e,this._api=["bind","getInstance","update","initPanels","openPanel","closePanel","closeAllPanels","setSelected"],this.opts=n,this.conf=t,this.vars={},this.cbck={},"function"==typeof this.___deprecated&&this.___deprecated(),this._initMenu(),this._initAnchors();var i=this.$pnls.children();return this._initAddons(),this.initPanels(i),"function"==typeof this.___debug&&this.___debug(),this},e[t].version=i,e[t].addons={},e[t].uniqueId=0,e[t].defaults={extensions:[],initMenu:function(){},initPanels:function(){},navbar:{add:!0,title:"Menu",titleLink:"panel"},onClick:{setSelected:!0},slidingSubmenus:!0},e[t].configuration={classNames:{divider:"Divider",inset:"Inset",panel:"Panel",selected:"Selected",spacer:"Spacer",vertical:"Vertical"},clone:!1,openingInterval:25,panelNodetype:"ul, ol, div",transitionDuration:400},e[t].prototype={init:function(e){this.initPanels(e)},getInstance:function(){return this},update:function(){this.trigger("update")},initPanels:function(e){e=e.not("."+s.nopanel),e=this._initPanels(e),this.opts.initPanels.call(this,e),this.trigger("initPanels",e),this.trigger("update")},openPanel:function(n){var i=n.parent(),a=this;if(i.hasClass(s.vertical)){var o=i.parents("."+s.subopened);if(o.length)return void this.openPanel(o.first());i.addClass(s.opened),this.trigger("openPanel",n),this.trigger("openingPanel",n),this.trigger("openedPanel",n)}else{if(n.hasClass(s.current))return;var r=this.$pnls.children("."+s.panel),l=r.filter("."+s.current);r.removeClass(s.highest).removeClass(s.current).not(n).not(l).not("."+s.vertical).addClass(s.hidden),e[t].support.csstransitions||l.addClass(s.hidden),n.hasClass(s.opened)?n.nextAll("."+s.opened).addClass(s.highest).removeClass(s.opened).removeClass(s.subopened):(n.addClass(s.highest),l.addClass(s.subopened)),n.removeClass(s.hidden).addClass(s.current),a.trigger("openPanel",n),setTimeout(function(){n.removeClass(s.subopened).addClass(s.opened),a.trigger("openingPanel",n),a.__transitionend(n,function(){a.trigger("openedPanel",n)},a.conf.transitionDuration)},this.conf.openingInterval)}},closePanel:function(e){var n=e.parent();n.hasClass(s.vertical)&&(n.removeClass(s.opened),this.trigger("closePanel",e),this.trigger("closingPanel",e),this.trigger("closedPanel",e))},closeAllPanels:function(){this.$menu.find("."+s.listview).children().removeClass(s.selected).filter("."+s.vertical).removeClass(s.opened);var e=this.$pnls.children("."+s.panel),n=e.first();this.$pnls.children("."+s.panel).not(n).removeClass(s.subopened).removeClass(s.opened).removeClass(s.current).removeClass(s.highest).addClass(s.hidden),this.openPanel(n)},togglePanel:function(e){var n=e.parent();n.hasClass(s.vertical)&&this[n.hasClass(s.opened)?"closePanel":"openPanel"](e)},setSelected:function(e){this.$menu.find("."+s.listview).children("."+s.selected).removeClass(s.selected),e.addClass(s.selected),this.trigger("setSelected",e)},bind:function(e,n){e="init"==e?"initPanels":e,this.cbck[e]=this.cbck[e]||[],this.cbck[e].push(n)},trigger:function(){var e=this,n=Array.prototype.slice.call(arguments),t=n.shift();if(t="init"==t?"initPanels":t,this.cbck[t])for(var i=0,s=this.cbck[t].length;i<s;i++)this.cbck[t][i].apply(e,n)},_initMenu:function(){this.conf.clone&&(this.$orig=this.$menu,this.$menu=this.$orig.clone(!0),this.$menu.add(this.$menu.find("[id]")).filter("[id]").each(function(){e(this).attr("id",s.mm(e(this).attr("id")))})),this.opts.initMenu.call(this,this.$menu,this.$orig),this.$menu.attr("id",this.$menu.attr("id")||this.__getUniqueId()),this.$pnls=e('<div class="'+s.panels+'" />').append(this.$menu.children(this.conf.panelNodetype)).prependTo(this.$menu),this.$menu.parent().addClass(s.wrapper);var n=[s.menu];this.opts.slidingSubmenus||n.push(s.vertical),this.opts.extensions=this.opts.extensions.length?"mm-"+this.opts.extensions.join(" mm-"):"",this.opts.extensions&&n.push(this.opts.extensions),this.$menu.addClass(n.join(" ")),this.trigger("_initMenu")},_initPanels:function(n){var i=this,o=this.__findAddBack(n,"ul, ol");this.__refactorClass(o,this.conf.classNames.inset,"inset").addClass(s.nolistview+" "+s.nopanel),o.not("."+s.nolistview).addClass(s.listview);var r=this.__findAddBack(n,"."+s.listview).children();this.__refactorClass(r,this.conf.classNames.selected,"selected"),this.__refactorClass(r,this.conf.classNames.divider,"divider"),this.__refactorClass(r,this.conf.classNames.spacer,"spacer"),this.__refactorClass(this.__findAddBack(n,"."+this.conf.classNames.panel),this.conf.classNames.panel,"panel");var l=e(),d=n.add(n.find("."+s.panel)).add(this.__findAddBack(n,"."+s.listview).children().children(this.conf.panelNodetype)).not("."+s.nopanel);this.__refactorClass(d,this.conf.classNames.vertical,"vertical"),this.opts.slidingSubmenus||d.addClass(s.vertical),d.each(function(){var n=e(this),t=n;n.is("ul, ol")?(n.wrap('<div class="'+s.panel+'" />'),t=n.parent()):t.addClass(s.panel);var a=n.attr("id");n.removeAttr("id"),t.attr("id",a||i.__getUniqueId()),n.hasClass(s.vertical)&&(n.removeClass(i.
967conf.classNames.vertical),t.add(t.parent()).addClass(s.vertical)),l=l.add(t)});var c=e("."+s.panel,this.$menu);l.each(function(n){var o,r,l=e(this),d=l.parent(),c=d.children("a, span").first();if(d.is("."+s.panels)||(d.data(a.child,l),l.data(a.parent,d)),d.children("."+s.next).length||d.parent().is("."+s.listview)&&(o=l.attr("id"),r=e('<a class="'+s.next+'" href="#'+o+'" data-target="#'+o+'" />').insertBefore(c),c.is("span")&&r.addClass(s.fullsubopen)),!l.children("."+s.navbar).length&&!d.hasClass(s.vertical)){d.parent().is("."+s.listview)?d=d.closest("."+s.panel):(c=d.closest("."+s.panel).find('a[href="#'+l.attr("id")+'"]').first(),d=c.closest("."+s.panel));var h=!1,u=e('<div class="'+s.navbar+'" />');if(i.opts.navbar.add&&l.addClass(s.hasnavbar),d.length){switch(o=d.attr("id"),i.opts.navbar.titleLink){case"anchor":h=c.attr("href");break;case"panel":case"parent":h="#"+o;break;default:h=!1}u.append('<a class="'+s.btn+" "+s.prev+'" href="#'+o+'" data-target="#'+o+'" />').append(e('<a class="'+s.title+'"'+(h?' href="'+h+'"':"")+" />").text(c.text())).prependTo(l)}else i.opts.navbar.title&&u.append('<a class="'+s.title+'">'+e[t].i18n(i.opts.navbar.title)+"</a>").prependTo(l)}});var h=this.__findAddBack(n,"."+s.listview).children("."+s.selected).removeClass(s.selected).last().addClass(s.selected);h.add(h.parentsUntil("."+s.menu,"li")).filter("."+s.vertical).addClass(s.opened).end().each(function(){e(this).parentsUntil("."+s.menu,"."+s.panel).not("."+s.vertical).first().addClass(s.opened).parentsUntil("."+s.menu,"."+s.panel).not("."+s.vertical).first().addClass(s.opened).addClass(s.subopened)}),h.children("."+s.panel).not("."+s.vertical).addClass(s.opened).parentsUntil("."+s.menu,"."+s.panel).not("."+s.vertical).first().addClass(s.opened).addClass(s.subopened);var u=c.filter("."+s.opened);return u.length||(u=l.first()),u.addClass(s.opened).last().addClass(s.current),l.not("."+s.vertical).not(u.last()).addClass(s.hidden).end().filter(function(){return!e(this).parent().hasClass(s.panels)}).appendTo(this.$pnls),this.trigger("_initPanels",l),l},_initAnchors:function(){var n=this;r.$body.on(o.click+"-oncanvas","a[href]",function(i){var a=e(this),o=!1,r=n.$menu.find(a).length;for(var l in e[t].addons)if(e[t].addons[l].clickAnchor.call(n,a,r)){o=!0;break}var d=a.attr("href");if(!o&&r&&d.length>1&&"#"==d.slice(0,1))try{var c=e(d,n.$menu);c.is("."+s.panel)&&(o=!0,n[a.parent().hasClass(s.vertical)?"togglePanel":"openPanel"](c))}catch(h){}if(o&&i.preventDefault(),!o&&r&&a.is("."+s.listview+" > li > a")&&!a.is('[rel="external"]')&&!a.is('[target="_blank"]')){n.__valueOrFn(n.opts.onClick.setSelected,a)&&n.setSelected(e(i.target).parent());var u=n.__valueOrFn(n.opts.onClick.preventDefault,a,"#"==d.slice(0,1));u&&i.preventDefault(),n.__valueOrFn(n.opts.onClick.close,a,u)&&n.close()}}),this.trigger("_initAnchors")},_initAddons:function(){var n;for(n in e[t].addons)e[t].addons[n].add.call(this),e[t].addons[n].add=function(){};for(n in e[t].addons)e[t].addons[n].setup.call(this);this.trigger("_initAddons")},_getOriginalMenuId:function(){var e=this.$menu.attr("id");return e&&e.length&&this.conf.clone&&(e=s.umm(e)),e},__api:function(){var n=this,t={};return e.each(this._api,function(e){var i=this;t[i]=function(){var e=n[i].apply(n,arguments);return"undefined"==typeof e?t:e}}),t},__valueOrFn:function(e,n,t){return"function"==typeof e?e.call(n[0]):"undefined"==typeof e&&"undefined"!=typeof t?t:e},__refactorClass:function(e,n,t){return e.filter("."+n).removeClass(n).addClass(s[t])},__findAddBack:function(e,n){return e.find(n).add(e.filter(n))},__filterListItems:function(e){return e.not("."+s.divider).not("."+s.hidden)},__transitionend:function(n,t,i){var s=!1,a=function(i){if("undefined"!=typeof i){if(!e(i.target).is(n))return!1;n.unbind(o.transitionend),n.unbind(o.webkitTransitionEnd)}s||t.call(n[0]),s=!0};n.on(o.transitionend,a),n.on(o.webkitTransitionEnd,a),setTimeout(a,1.1*i)},__getUniqueId:function(){return s.mm(e[t].uniqueId++)}},e.fn[t]=function(i,s){n(),i=e.extend(!0,{},e[t].defaults,i),s=e.extend(!0,{},e[t].configuration,s);var a=e();return this.each(function(){var n=e(this);if(!n.data(t)){var o=new e[t](n,i,s);o.$menu.data(t,o.__api()),a=a.add(o.$menu)}}),a},e[t].i18n=function(){var n={};return function(t){switch(typeof t){case"object":return e.extend(n,t),n;case"string":return n[t]||t;case"undefined":default:return n}}}(),e[t].support={touch:"ontouchstart"in window||navigator.msMaxTouchPoints||!1,csstransitions:function(){if("undefined"!=typeof Modernizr&&"undefined"!=typeof Modernizr.csstransitions)return Modernizr.csstransitions;var e=document.body||document.documentElement,n=e.style,t="transition";if("string"==typeof n[t])return!0;var i=["Moz","webkit","Webkit","Khtml","O","ms"];t=t.charAt(0).toUpperCase()+t.substr(1);for(var s=0;s<i.length;s++)if("string"==typeof n[i[s]+t])return!0;return!1}(),csstransforms:function(){return"undefined"==typeof Modernizr||"undefined"==typeof Modernizr.csstransforms||Modernizr.csstransforms}(),csstransforms3d:function(){return"undefined"==typeof Modernizr||"undefined"==typeof Modernizr.csstransforms3d||Modernizr.csstransforms3d}()};var s,a,o,r}}(jQuery),/* 968 * jQuery mmenu offCanvas add-on 969 * mmenu.frebsite.nl 970 * 971 * Copyright (c) Fred Heusschen 972 */ 973function(e){var n="mmenu",t="offCanvas";e[n].addons[t]={setup:function(){if(this.opts[t]){var s=this.opts[t],a=this.conf[t];o=e[n].glbl,this._api=e.merge(this._api,["open","close","setPage"]),"top"!=s.position&&"bottom"!=s.position||(s.zposition="front"),"string"!=typeof a.pageSelector&&(a.pageSelector="> "+a.pageNodetype),o.$allMenus=(o.$allMenus||e()).add(this.$menu),this.vars.opened=!1;var r=[i.offcanvas];"left"!=s.position&&r.push(i.mm(s.position)),"back"!=s.zposition&&r.push(i.mm(s.zposition)),this.$menu.addClass(r.join(" ")).parent().removeClass(i.wrapper),e[n].support.csstransforms||this.$menu.addClass(i["no-csstransforms"]),e[n].support.csstransforms3d||this.$menu.addClass(i["no-csstransforms3d"]),this.setPage(o.$page),this._initBlocker(),this["_initWindow_"+t](),this.$menu[a.menuInjectMethod+"To"](a.menuWrapperSelector);var l=window.location.hash;if(l){var d=this._getOriginalMenuId();d&&d==l.slice(1)&&this.open()}}},add:function(){i=e[n]._c,s=e[n]._d,a=e[n]._e,i.add("offcanvas slideout blocking modal background opening blocker page no-csstransforms3d"),s.add("style"),a.add("resize")},clickAnchor:function(e,n){var s=this;if(this.opts[t]){var a=this._getOriginalMenuId();if(a&&e.is('[href="#'+a+'"]')){if(n)return!0;var r=e.closest("."+i.menu);
973if(r.length){var l=r.data("mmenu");if(l&&l.close)return l.close(),s.__transitionend(r,function(){s.open()},s.conf.transitionDuration),!0}return this.open(),!0}if(o.$page)return a=o.$page.first().attr("id"),a&&e.is('[href="#'+a+'"]')?(this.close(),!0):void 0}}},e[n].defaults[t]={position:"left",zposition:"back",blockUI:!0,moveBackground:!0},e[n].configuration[t]={pageNodetype:"div",pageSelector:null,noPageSelector:[],wrapPageIfNeeded:!0,menuWrapperSelector:"body",menuInjectMethod:"prepend"},e[n].prototype.open=function(){if(!this.vars.opened){var e=this;this._openSetup(),setTimeout(function(){e._openFinish()},this.conf.openingInterval),this.trigger("open")}},e[n].prototype._openSetup=function(){var n=this,r=this.opts[t];this.closeAllOthers(),o.$page.each(function(){e(this).data(s.style,e(this).attr("style")||"")}),o.$wndw.trigger(a.resize+"-"+t,[!0]);var l=[i.opened];r.blockUI&&l.push(i.blocking),"modal"==r.blockUI&&l.push(i.modal),r.moveBackground&&l.push(i.background),"left"!=r.position&&l.push(i.mm(this.opts[t].position)),"back"!=r.zposition&&l.push(i.mm(this.opts[t].zposition)),this.opts.extensions&&l.push(this.opts.extensions),o.$html.addClass(l.join(" ")),setTimeout(function(){n.vars.opened=!0},this.conf.openingInterval),this.$menu.addClass(i.current+" "+i.opened)},e[n].prototype._openFinish=function(){var e=this;this.__transitionend(o.$page.first(),function(){e.trigger("opened")},this.conf.transitionDuration),o.$html.addClass(i.opening),this.trigger("opening")},e[n].prototype.close=function(){if(this.vars.opened){var n=this;this.__transitionend(o.$page.first(),function(){n.$menu.removeClass(i.current+" "+i.opened);var a=[i.opened,i.blocking,i.modal,i.background,i.mm(n.opts[t].position),i.mm(n.opts[t].zposition)];n.opts.extensions&&a.push(n.opts.extensions),o.$html.removeClass(a.join(" ")),o.$page.each(function(){e(this).attr("style",e(this).data(s.style))}),n.vars.opened=!1,n.trigger("closed")},this.conf.transitionDuration),o.$html.removeClass(i.opening),this.trigger("close"),this.trigger("closing")}},e[n].prototype.closeAllOthers=function(){o.$allMenus.not(this.$menu).each(function(){var t=e(this).data(n);t&&t.close&&t.close()})},e[n].prototype.setPage=function(n){var s=this,a=this.conf[t];n&&n.length||(n=o.$body.find(a.pageSelector),a.noPageSelector.length&&(n=n.not(a.noPageSelector.join(", "))),n.length>1&&a.wrapPageIfNeeded&&(n=n.wrapAll("<"+this.conf[t].pageNodetype+" />").parent())),n.each(function(){e(this).attr("id",e(this).attr("id")||s.__getUniqueId())}),n.addClass(i.page+" "+i.slideout),o.$page=n,this.trigger("setPage",n)},e[n].prototype["_initWindow_"+t]=function(){o.$wndw.off(a.keydown+"-"+t).on(a.keydown+"-"+t,function(e){if(o.$html.hasClass(i.opened)&&9==e.keyCode)return e.preventDefault(),!1});var e=0;o.$wndw.off(a.resize+"-"+t).on(a.resize+"-"+t,function(n,t){if(1==o.$page.length&&(t||o.$html.hasClass(i.opened))){var s=o.$wndw.height();(t||s!=e)&&(e=s,o.$page.css("minHeight",s))}})},e[n].prototype._initBlocker=function(){var n=this;this.opts[t].blockUI&&(o.$blck||(o.$blck=e('<div id="'+i.blocker+'" class="'+i.slideout+'" />')),o.$blck.appendTo(o.$body).off(a.touchstart+"-"+t+" "+a.touchmove+"-"+t).on(a.touchstart+"-"+t+" "+a.touchmove+"-"+t,function(e){e.preventDefault(),e.stopPropagation(),o.$blck.trigger(a.mousedown+"-"+t)}).off(a.mousedown+"-"+t).on(a.mousedown+"-"+t,function(e){e.preventDefault(),o.$html.hasClass(i.modal)||(n.closeAllOthers(),n.close())}))};var i,s,a,o}(jQuery),/* 974 * jQuery mmenu scrollBugFix add-on 975 * mmenu.frebsite.nl 976 * 977 * Copyright (c) Fred Heusschen 978 */ 979function(e){var n="mmenu",t="scrollBugFix";e[n].addons[t]={setup:function(){var s=this,r=this.opts[t];this.conf[t];if(o=e[n].glbl,e[n].support.touch&&this.opts.offCanvas&&this.opts.offCanvas.blockUI&&("boolean"==typeof r&&(r={fix:r}),"object"!=typeof r&&(r={}),r=this.opts[t]=e.extend(!0,{},e[n].defaults[t],r),r.fix)){var l=this.$menu.attr("id"),d=!1;this.bind("opening",function(){this.$pnls.children("."+i.current).scrollTop(0)}),o.$docu.on(a.touchmove,function(e){s.vars.opened&&e.preventDefault()}),o.$body.on(a.touchstart,"#"+l+"> ."+i.panels+"> ."+i.current,function(e){s.vars.opened&&(d||(d=!0,0===e.currentTarget.scrollTop?e.currentTarget.scrollTop=1:e.currentTarget.scrollHeight===e.currentTarget.scrollTop+e.currentTarget.offsetHeight&&(e.currentTarget.scrollTop-=1),d=!1))}).on(a.touchmove,"#"+l+"> ."+i.panels+"> ."+i.current,function(n){s.vars.opened&&e(this)[0].scrollHeight>e(this).innerHeight()&&n.stopPropagation()}),o.$wndw.on(a.orientationchange,function(){s.$pnls.children("."+i.current).scrollTop(0).css({"-webkit-overflow-scrolling":"auto"}).css({"-webkit-overflow-scrolling":"touch"})})}},add:function(){i=e[n]._c,s=e[n]._d,a=e[n]._e},clickAnchor:function(e,n){}},e[n].defaults[t]={fix:!0};var i,s,a,o}
979(jQuery),/* 980 * jQuery mmenu autoHeight add-on 981 * mmenu.frebsite.nl 982 * 983 * Copyright (c) Fred Heusschen 984 */ 985function(e){var n="mmenu",t="autoHeight";e[n].addons[t]={setup:function(){if(this.opts.offCanvas){var s=this.opts[t];this.conf[t];if(o=e[n].glbl,"boolean"==typeof s&&s&&(s={height:"auto"}),"string"==typeof s&&(s={height:s}),"object"!=typeof s&&(s={}),s=this.opts[t]=e.extend(!0,{},e[n].defaults[t],s),"auto"==s.height||"highest"==s.height){this.$menu.addClass(i.autoheight);var a=function(n){if(this.vars.opened){var t=parseInt(this.$pnls.css("top"),10)||0,a=parseInt(this.$pnls.css("bottom"),10)||0,o=0;this.$menu.addClass(i.measureheight),"auto"==s.height?(n=n||this.$pnls.children("."+i.current),n.is("."+i.vertical)&&(n=n.parents("."+i.panel).not("."+i.vertical).first()),o=n.outerHeight()):"highest"==s.height&&this.$pnls.children().each(function(){var n=e(this);n.is("."+i.vertical)&&(n=n.parents("."+i.panel).not("."+i.vertical).first()),o=Math.max(o,n.outerHeight())}),this.$menu.height(o+t+a).removeClass(i.measureheight)}};this.bind("opening",a),"highest"==s.height&&this.bind("initPanels",a),"auto"==s.height&&(this.bind("update",a),this.bind("openPanel",a),this.bind("closePanel",a))}}},add:function(){i=e[n]._c,s=e[n]._d,a=e[n]._e,i.add("autoheight measureheight"),a.add("resize")},clickAnchor:function(e,n){}},e[n].defaults[t]={height:"default"};var i,s,a,o}(jQuery),/* 986 * jQuery mmenu backButton add-on 987 * mmenu.frebsite.nl 988 * 989 * Copyright (c) Fred Heusschen 990 */ 991function(e){var n="mmenu",t="backButton";e[n].addons[t]={setup:function(){if(this.opts.offCanvas){var s=this,a=this.opts[t];this.conf[t];if(o=e[n].glbl,"boolean"==typeof a&&(a={close:a}),"object"!=typeof a&&(a={}),a=e.extend(!0,{},e[n].defaults[t],a),a.close){var r="#"+s.$menu.attr("id");this.bind("opened",function(e){location.hash!=r&&history.pushState(null,document.title,r)}),e(window).on("popstate",function(e){o.$html.hasClass(i.opened)?(e.stopPropagation(),s.close()):location.hash==r&&(e.stopPropagation(),s.open())})}}},add:function(){return window.history&&window.history.pushState?(i=e[n]._c,s=e[n]._d,void(a=e[n]._e)):void(e[n].addons[t].setup=function(){})},clickAnchor:function(e,n){}},e[n].defaults[t]={close:!1};var i,s,a,o}(jQuery),/* 992 * jQuery mmenu columns add-on 993 * mmenu.frebsite.nl 994 * 995 * Copyright (c) Fred Heusschen 996 */ 997function(e){var n="mmenu",t="columns";e[n].addons[t]={setup:function(){var s=this.opts[t];this.conf[t];if(o=e[n].glbl,"boolean"==typeof s&&(s={add:s}),"number"==typeof s&&(s={add:!0,visible:s}),"object"!=typeof s&&(s={}),"number"==typeof s.visible&&(s.visible={min:s.visible,max:s.visible}),s=this.opts[t]=e.extend(!0,{},e[n].defaults[t],s),s.add){s.visible.min=Math.max(1,Math.min(6,s.visible.min)),s.visible.max=Math.max(s.visible.min,Math.min(6,s.visible.max)),this.$menu.addClass(i.columns);for(var a=this.opts.offCanvas?this.$menu.add(o.$html):this.$menu,r=[],l=0;l<=s.visible.max;l++)r.push(i.columns+"-"+l);r=r.join(" ");var d=function(e){u.call(this,this.$pnls.children("."+i.current))},c=function(){var e=this.$pnls.children("."+i.panel).filter("."+i.opened).length;e=Math.min(s.visible.max,Math.max(s.visible.min,e)),a.removeClass(r).addClass(i.columns+"-"+e)},h=function(){this.opts.offCanvas&&o.$html.removeClass(r)},u=function(n){this.$pnls.children("."+i.panel).removeClass(r).filter("."+i.subopened).removeClass(i.hidden).add(n).slice(-s.visible.max).each(function(n){e(this).addClass(i.columns+"-"+n)})};this.bind("open",c),this.bind("close",h),this.bind("initPanels",d),this.bind("openPanel",u),this.bind("openingPanel",c),this.bind("openedPanel",c),this.opts.offCanvas||c.call(this)}},add:function(){i=e[n]._c,s=e[n]._d,a=e[n]._e,i.add("columns")},clickAnchor:function(n,s){if(!this.opts[t].add)return!1;if(s){var a=n.attr("href");if(a.length>1&&"#"==a.slice(0,1))try{var o=e(a,this.$menu);if(o.is("."+i.panel))for(var r=parseInt(n.closest("."+i.panel).attr("class").split(i.columns+"-")[1].split(" ")[0],10)+1;r!==!1;){var l=this.$pnls.children("."+i.columns+"-"+r);if(!l.length){r=!1;break}r++,l.removeClass(i.subopened).removeClass(i.opened).removeClass(i.
997current).removeClass(i.highest).addClass(i.hidden)}}catch(d){}}}},e[n].defaults[t]={add:!1,visible:{min:1,max:3}};var i,s,a,o}(jQuery),/* 998 * jQuery mmenu counters add-on 999 * mmenu.frebsite.nl 1000 * 1001 * Copyright (c) Fred Heusschen 1002 */ 1003function(e){var n="mmenu",t="counters";e[n].addons[t]={setup:function(){var a=this,r=this.opts[t];this.conf[t];o=e[n].glbl,"boolean"==typeof r&&(r={add:r,update:r}),"object"!=typeof r&&(r={}),r=this.opts[t]=e.extend(!0,{},e[n].defaults[t],r),this.bind("initPanels",function(n){this.__refactorClass(e("em",n),this.conf.classNames[t].counter,"counter")}),r.add&&this.bind("initPanels",function(n){var t;switch(r.addTo){case"panels":t=n;break;default:t=n.filter(r.addTo)}t.each(function(){var n=e(this).data(s.parent);n&&(n.children("em."+i.counter).length||n.prepend(e('<em class="'+i.counter+'" />')))})}),r.update&&this.bind("update",function(){this.$pnls.find("."+i.panel).each(function(){var n=e(this),t=n.data(s.parent);if(t){var o=t.children("em."+i.counter);o.length&&(n=n.children("."+i.listview),n.length&&o.html(a.__filterListItems(n.children()).length))}})})},add:function(){i=e[n]._c,s=e[n]._d,a=e[n]._e,i.add("counter search noresultsmsg")},clickAnchor:function(e,n){}},e[n].defaults[t]={add:!1,addTo:"panels",update:!1},e[n].configuration.classNames[t]={counter:"Counter"};var i,s,a,o}(jQuery),/* 1004 * jQuery mmenu dividers add-on 1005 * mmenu.frebsite.nl 1006 * 1007 * Copyright (c) Fred Heusschen 1008 */ 1009function(e){var n="mmenu",t="dividers";e[n].addons[t]={setup:function(){var s=this,r=this.opts[t];this.conf[t];if(o=e[n].glbl,"boolean"==typeof r&&(r={add:r,fixed:r}),"object"!=typeof r&&(r={}),r=this.opts[t]=e.extend(!0,{},e[n].defaults[t],r),this.bind("initPanels",function(n){this.__refactorClass(e("li",this.$menu),this.conf.classNames[t].collapsed,"collapsed")}),r.add&&this.bind("initPanels",function(n){var t;switch(r.addTo){case"panels":t=n;break;default:t=n.filter(r.addTo)}e("."+i.divider,t).remove(),t.find("."+i.listview).not("."+i.vertical).each(function(){var n="";s.__filterListItems(e(this).children()).each(function(){var t=e.trim(e(this).children("a, span").text()).slice(0,1).toLowerCase();t!=n&&t.length&&(n=t,e('<li class="'+i.divider+'">'+t+"</li>").insertBefore(this))})})}),r.collapse&&this.bind("initPanels",function(n){e("."+i.divider,n).each(function(){var n=e(this),t=n.nextUntil("."+i.divider,"."+i.collapsed);t.length&&(n.children("."+i.subopen).length||(n.wrapInner("<span />"),n.prepend('<a href="#" class="'+i.subopen+" "+i.fullsubopen+'" />')))})}),r.fixed){var l=function(n){n=n||this.$pnls.children("."+i.current);var t=n.find("."+i.divider).not("."+i.hidden);if(t.length){this.$menu.addClass(i.hasdividers);var s=n.scrollTop()||0,a="";n.is(":visible")&&n.find("."+i.divider).not("."+i.hidden).each(function(){e(this).position().top+s<s+1&&(a=e(this).text())}),this.$fixeddivider.text(a)}else this.$menu.removeClass(i.hasdividers)};this.$fixeddivider=e('<ul class="'+i.listview+" "+i.fixeddivider+'"><li class="'+i.divider+'"></li></ul>').prependTo(this.$pnls).children(),this.bind("openPanel",l),this.bind("update",l),this.bind("initPanels",function(n){n.off(a.scroll+"-dividers "+a.touchmove+"-dividers").on(a.scroll+"-dividers "+a.touchmove+"-dividers",function(n){l.call(s,e(this))})})}},add:function(){i=e[n]._c,s=e[n]._d,a=e[n]._e,i.add("collapsed uncollapsed fixeddivider hasdividers"),a.add("scroll")},clickAnchor:function(e,n){if(this.opts[t].collapse&&n){var s=e.parent();if(s.is("."+i.divider)){var a=s.nextUntil("."+i.divider,"."+i.collapsed);return s.toggleClass(i.opened),a[s.hasClass(i.opened)?"addClass":"removeClass"](i.uncollapsed),!0}}return!1}},e[n].defaults[t]={add:!1,addTo:"panels",fixed:!1,collapse:!1},e[n].configuration.classNames[t]={collapsed:"Collapsed"};var i,s,a,o}(jQuery),/* 1010 * jQuery mmenu drag add-on 1011 * mmenu.frebsite.nl 1012 * 1013 * Copyright (c) Fred Heusschen 1014 */ 1015function(e){function n(e,n,t){return e<n&&(e=n),e>t&&(e=t),e}function t(t,i,s){var r,l,d,c,h,u=this,f={},p=0,v=!1,m=!1,g=0,b=0;switch(this.opts.offCanvas.position){case"left":case"right":f.events="panleft panright",f.typeLower="x",f.typeUpper="X",m="width";break;case"top":case"bottom":f.events="panup pandown",f.typeLower="y",f.typeUpper="Y",m="height"}switch(this.opts.offCanvas.position){case"right":case"bottom":f.
1015negative=!0,c=function(e){e>=s.$wndw[m]()-t.maxStartPos&&(p=1)};break;default:f.negative=!1,c=function(e){e<=t.maxStartPos&&(p=1)}}switch(this.opts.offCanvas.position){case"left":f.open_dir="right",f.close_dir="left";break;case"right":f.open_dir="left",f.close_dir="right";break;case"top":f.open_dir="down",f.close_dir="up";break;case"bottom":f.open_dir="up",f.close_dir="down"}switch(this.opts.offCanvas.zposition){case"front":h=function(){return this.$menu};break;default:h=function(){return e("."+o.slideout)}}var _=this.__valueOrFn(t.node,this.$menu,s.$page);"string"==typeof _&&(_=e(_));var C=new Hammer(_[0],this.opts[a].vendors.hammer);C.on("panstart",function(e){c(e.center[f.typeLower]),s.$slideOutNodes=h(),v=f.open_dir}).on(f.events+" panend",function(e){p>0&&e.preventDefault()}).on(f.events,function(e){if(r=e["delta"+f.typeUpper],f.negative&&(r=-r),r!=g&&(v=r>=g?f.open_dir:f.close_dir),g=r,g>t.threshold&&1==p){if(s.$html.hasClass(o.opened))return;p=2,u._openSetup(),u.trigger("opening"),s.$html.addClass(o.dragging),b=n(s.$wndw[m]()*i[m].perc,i[m].min,i[m].max)}2==p&&(l=n(g,10,b)-("front"==u.opts.offCanvas.zposition?b:0),f.negative&&(l=-l),d="translate"+f.typeUpper+"("+l+"px )",s.$slideOutNodes.css({"-webkit-transform":"-webkit-"+d,transform:d}))}).on("panend",function(e){2==p&&(s.$html.removeClass(o.dragging),s.$slideOutNodes.css("transform",""),u[v==f.open_dir?"_openFinish":"close"]()),p=0})}function i(n,t,i,s){var l=this;n.each(function(){var n=e(this),t=n.data(r.parent);if(t&&(t=t.closest("."+o.panel),t.length)){var i=new Hammer(n[0],l.opts[a].vendors.hammer);i.on("panright",function(e){l.openPanel(t)})}})}var s="mmenu",a="drag";e[s].addons[a]={setup:function(){if(this.opts.offCanvas){var n=this.opts[a],o=this.conf[a
1015];d=e[s].glbl,"boolean"==typeof n&&(n={menu:n,panels:n}),"object"!=typeof n&&(n={}),"boolean"==typeof n.menu&&(n.menu={open:n.menu}),"object"!=typeof n.menu&&(n.menu={}),"boolean"==typeof n.panels&&(n.panels={close:n.panels}),"object"!=typeof n.panels&&(n.panels={}),n=this.opts[a]=e.extend(!0,{},e[s].defaults[a],n),n.menu.open&&t.call(this,n.menu,o.menu,d),n.panels.close&&this.bind("initPanels",function(e){i.call(this,e,n.panels,o.panels,d)})}},add:function(){return"function"!=typeof Hammer||Hammer.VERSION<2?void(e[s].addons[a].setup=function(){}):(o=e[s]._c,r=e[s]._d,l=e[s]._e,void o.add("dragging"))},clickAnchor:function(e,n){}},e[s].defaults[a]={menu:{open:!1,maxStartPos:100,threshold:50},panels:{close:!1},vendors:{hammer:{}}},e[s].configuration[a]={menu:{width:{perc:.8,min:140,max:440},height:{perc:.8,min:140,max:880}},panels:{}};var o,r,l,d}(jQuery),/* 1016 * jQuery mmenu fixedElements add-on 1017 * mmenu.frebsite.nl 1018 * 1019 * Copyright (c) Fred Heusschen 1020 */ 1021function(e){var n="mmenu",t="fixedElements";e[n].addons[t]={setup:function(){if(this.opts.offCanvas){var i=this.opts[t];this.conf[t];o=e[n].glbl,i=this.opts[t]=e.extend(!0,{},e[n].defaults[t],i);var s=function(e){var n=this.conf.classNames[t].fixed;this.__refactorClass(e.find("."+n),n,"slideout").appendTo(o.$body)};s.call(this,o.$page),this.bind("setPage",s)}},add:function(){i=e[n]._c,s=e[n]._d,a=e[n]._e,i.add("fixed")},clickAnchor:function(e,n){}},e[n].configuration.classNames[t]={fixed:"Fixed"};var i,s,a,o}(jQuery),/* 1022 * jQuery mmenu dropdown add-on 1023 * mmenu.frebsite.nl 1024 * 1025 * Copyright (c) Fred Heusschen 1026 */ 1027function(e){var n="mmenu",t="dropdown";e[n].addons[t]={setup:function(){if(this.opts.offCanvas){var r=this,l=this.opts[t],d=this.conf[t];if(o=e[n].glbl,"boolean"==typeof l&&l&&(l={drop:l}),"object"!=typeof l&&(l={}),"string"==typeof l.position&&(l.position={of:l.position}),l=this.opts[t]=e.extend(!0,{},e[n].defaults[t],l),l.drop){if("string"!=typeof l.position.of){var c=this.$menu.attr("id");c&&c.length&&(this.conf.clone&&(c=i.umm(c)),l.position.of='[href="#'+c+'"]')}if("string"==typeof l.position.of){var h=e(l.position.of);if(h.length){this.$menu.addClass(i.dropdown),l.tip&&this.$menu.addClass(i.tip),l.event=l.event.split(" "),1==l.event.length&&(l.event[1]=l.event[0]),"hover"==l.event[0]&&h.on(a.mouseenter+"-dropdown",function(){r.open()}),"hover"==l.event[1]&&this.$menu.on(a.mouseleave+"-dropdown",function(){r.close()}),this.bind("opening",function(){this.$menu.data(s.style,this.$menu.attr("style")||""),o.$html.addClass(i.dropdown)}),this.bind("closed",function(){this.$menu.attr("style",this.$menu.data(s.style)),o.$html.removeClass(i.dropdown)});var u=function(s,a){var r=a[0],c=a[1],u="x"==s?"scrollLeft":"scrollTop",f="x"==s?"outerWidth":"outerHeight",p="x"==s?"left":"top",v="x"==s?"right":"bottom",m="x"==s?"width":"height",g="x"==s?"maxWidth":"maxHeight",b=null,_=o.$wndw[u](),C=h.offset()[p]-=_,y=C+h[f](),$=o.$wndw[m](),w=d.offset.button[s]+d.offset.viewport[s];if(l.position[s])switch(l.position[s]){case"left":case"bottom":b="after";break;case"right":case"top":b="before"}null===b&&(b=C+(y-C)/2<$/2?"after":"before");var x,k;return"after"==b?(x="x"==s?C:y,k=$-(x+w),r[p]=x+d.offset.button[s],r[v]="auto",c.push(i["x"==s?"tipleft":"tiptop"])):(x="x"==s?y:C,k=x-w,r[v]="calc( 100% - "+(x-d.offset.button[s])+"px )",r[p]="auto",c.push(i["x"==s?"tipright":"tipbottom"])),r[g]=Math.min(e[n].configuration[t][m].max,k),[r,c]},f=function(e){if(this.vars.opened){this.$menu.attr("style",this.$menu.data(s.style));var n=[{},[]];n=u.call(this,"y",n),n=u.call(this,"x",n),this.$menu.css(n[0]),l.tip&&this.$menu.removeClass(i.tipleft+" "+i.tipright+" "+i.tiptop+" "+i.tipbottom).addClass(n[1].join(" "))}};this.bind("opening",f),o.$wndw.on(a.resize+"-dropdown",function(e){f.call(r)}),this.opts.offCanvas.blockUI||o.$wndw.on(a.scroll+"-dropdown",function(e){f.call(r)})}}}}},add:function(){i=e[n]._c,s=e[n]._d,a=e[n]._e,i.add("dropdown tip tipleft tipright tiptop tipbottom"),a.add("mouseenter mouseleave resize scroll")},clickAnchor:function(e,n){}},e[n].defaults[t]={drop:!1,event:"click",position:{},tip:!0},e[n].configuration[t]={offset:{button:{x:-10,y:10},viewport:{x:20,y:20}},height:{max:880},width:{max:440}};var i,s,a,o}
1027(jQuery),/* 1028 * jQuery mmenu iconPanels add-on 1029 * mmenu.frebsite.nl 1030 * 1031 * Copyright (c) Fred Heusschen 1032 */ 1033function(e){var n="mmenu",t="iconPanels";e[n].addons[t]={setup:function(){var s=this,a=this.opts[t];this.conf[t];if(o=e[n].glbl,"boolean"==typeof a&&(a={add:a}),"number"==typeof a&&(a={add:!0,visible:a}),"object"!=typeof a&&(a={}),a=this.opts[t]=e.extend(!0,{},e[n].defaults[t],a),a.visible++,a.add){this.$menu.addClass(i.iconpanel);for(var r=[],l=0;l<=a.visible;l++)r.push(i.iconpanel+"-"+l);r=r.join(" ");var d=function(n){n.hasClass(i.vertical)||s.$pnls.children("."+i.panel).removeClass(r).filter("."+i.subopened).removeClass(i.hidden).add(n).not("."+i.vertical).slice(-a.visible).each(function(n){e(this).addClass(i.iconpanel+"-"+n)})};this.bind("openPanel",d),this.bind("initPanels",function(n){d.call(s,s.$pnls.children("."+i.current)),n.not("."+i.vertical).each(function(){e(this).children("."+i.subblocker).length||e(this).prepend('<a href="#'+e(this).closest("."+i.panel).attr("id")+'" class="'+i.subblocker+'" />')})})}},add:function(){i=e[n]._c,s=e[n]._d,a=e[n]._e,i.add("iconpanel subblocker")},clickAnchor:function(e,n){}},e[n].defaults[t]={add:!1,visible:3};var i,s,a,o}(jQuery),/* 1034 * jQuery mmenu keyboardNavigation add-on 1035 * mmenu.frebsite.nl 1036 * 1037 * Copyright (c) Fred Heusschen 1038 */ 1039function(e){function n(n,t){n||(n=this.$pnls.children("."+a.current));var i=e();"default"==t&&(i=n.children("."+a.listview).find("a[href]").not(":hidden"),i.length||(i=n.find(d).not(":hidden")),i.length||(i=this.$menu.children("."+a.navbar).find(d).not(":hidden"))),i.length||(i=this.$menu.children("."+a.tabstart)),i.first().focus()}function t(e){e||(e=this.$pnls.children("."+a.current));var n=this.$pnls.children("."+a.panel),t=n.not(e);t.find(d).attr("tabindex",-1),e.find(d).attr("tabindex",0),e.find("input.mm-toggle, input.mm-check").attr("tabindex",-1)}var i="mmenu",s="keyboardNavigation";e[i].addons[s]={setup:function(){var o=this,r=this.opts[s];this.conf[s];if(l=e[i].glbl,"boolean"!=typeof r&&"string"!=typeof r||(r={enable:r}),"object"!=typeof r&&(r={}),r=this.opts[s]=e.extend(!0,{},e[i].defaults[s],r),r.enable){r.enhance&&this.$menu.addClass(a.keyboardfocus);var c=e('<input class="'+a.tabstart+'" tabindex="0" type="text" />'),h=e('<input class="'+a.tabend+'" tabindex="0" type="text" />');this.bind("initPanels",function(){this.$menu.prepend(c).append(h).children("."+a.navbar).find(d).attr("tabindex",0)}),this.bind("open",function(){t.call(this),this.__transitionend(this.$menu,function(){n.call(o,null,r.enable)},this.conf.transitionDuration)}),this.bind("openPanel",function(e){t.call(this,e),this.__transitionend(e,function(){n.call(o,e,r.enable)},this.conf.transitionDuration)}),this["_initWindow_"+s](r.enhance)}},add:function(){a=e[i]._c,o=e[i]._d,r=e[i]._e,a.add("tabstart tabend keyboardfocus"),r.add("focusin keydown")},clickAnchor:function(e,n){}},e[i].defaults[s]={enable:!1,enhance:!1},e[i].configuration[s]={},e[i].prototype["_initWindow_"+s]=function(n){l.$wndw.off(r.keydown+"-offCanvas"),l.$wndw.off(r.focusin+"-"+s).on(r.focusin+"-"+s,function(n){if(l.$html.hasClass(a.opened)){var t=e(n.target);t.is("."+a.tabend)&&t.parent().find("."+a.tabstart).focus()}}),l.$wndw.off(r.keydown+"-"+s).on(r.keydown+"-"+s,function(n){var t=e(n.target),i=t.closest("."+a.menu);if(i.length){i.data("mmenu");if(t.is("input, textarea"));else switch(n.keyCode){case 13:(t.is(".mm-toggle")||t.is(".mm-check"))&&t.trigger(r.click);break;case 32:case 37:case 38:case 39:case 40:n.preventDefault()}}}),n&&l.$wndw.on(r.keydown+"-"+s,function(n){var t=e(n.target),i=t.closest("."+a.menu);if(i.length){var s=i.data("mmenu");if(t.is("input, textarea"))switch(n.keyCode){case 27:t.val("")}else switch(n.keyCode){case 8:var r=t.closest("."+a.panel).data(o.parent);r&&r.length&&s.openPanel(r.closest("."+a.panel));break;case 27:i.hasClass(a.offcanvas)&&s.close()}}})};var a,o,r,l,d="input, select, textarea, button, label, a[href]"}(jQuery),/* 1040 * jQuery mmenu lazySubmenus add-on 1041 * mmenu.frebsite.nl 1042 * 1043 * Copyright (c) Fred Heusschen 1044 */ 1045function(e){var n="mmenu",t="lazySubmenus";e[n].addons[t]={setup:function(){var a=this.opts[t];this.conf[t];o=e[n].glbl,"boolean"==typeof a&&(a={load:a}),"object"!=typeof a&&(a={}),a=this.opts[t]=e.extend(!0,{},e[n].defaults[t],a),a.load&&(this.$menu.find("li").find("li").children(this.conf.panelNodetype).each(function(){e(this).parent().addClass(i.lazysubmenu).data(s.lazysubmenu,this).end().remove()}),this.bind("openingPanel",function(n){var t=n.find("."+i.lazysubmenu);t.length&&(t.each(function(){e(this).append(e(this).data(s.lazysubmenu)).removeData(s.lazysubmenu).removeClass(i.lazysubmenu)}),this.initPanels(n))}))},add:function(){i=e[n]._c,s=e[n]._d,a=e[n]._e,i.add("lazysubmenu"),s.add("lazysubmenu")},clickAnchor:function(e,n){}},e[n].defaults[t]={load:!1},e[n].configuration[t]={};var i,s,a,o}
1045(jQuery),/* 1046 * jQuery mmenu navbar add-on 1047 * mmenu.frebsite.nl 1048 * 1049 * Copyright (c) Fred Heusschen 1050 */ 1051function(e){var n="mmenu",t="navbars";e[n].addons[t]={setup:function(){var s=this,a=this.opts[t],r=this.conf[t];if(o=e[n].glbl,"undefined"!=typeof a){a instanceof Array||(a=[a]);var l={};if(a.length){e.each(a,function(o){var d=a[o];"boolean"==typeof d&&d&&(d={}),"object"!=typeof d&&(d={}),"undefined"==typeof d.content&&(d.content=["prev","title"]),d.content instanceof Array||(d.content=[d.content]),d=e.extend(!0,{},s.opts.navbar,d);var c=d.position,h=d.height;"number"!=typeof h&&(h=1),h=Math.min(4,Math.max(1,h)),"bottom"!=c&&(c="top"),l[c]||(l[c]=0),l[c]++;var u=e("<div />").addClass(i.navbar+" "+i.navbar+"-"+c+" "+i.navbar+"-"+c+"-"+l[c]+" "+i.navbar+"-size-"+h);l[c]+=h-1;for(var f=0,p=0,v=d.content.length;p<v;p++){var m=e[n].addons[t][d.content[p]]||!1;m?f+=m.call(s,u,d,r):(m=d.content[p],m instanceof e||(m=e(d.content[p])),u.append(m))}f+=Math.ceil(u.children().not("."+i.btn).length/h),f>1&&u.addClass(i.navbar+"-content-"+f),u.children("."+i.btn).length&&u.addClass(i.hasbtns),u.prependTo(s.$menu)});for(var d in l)s.$menu.addClass(i.hasnavbar+"-"+d+"-"+l[d])}}},add:function(){i=e[n]._c,s=e[n]._d,a=e[n]._e,i.add("close hasbtns")},clickAnchor:function(e,n){}},e[n].configuration[t]={breadcrumbSeparator:"/"},e[n].configuration.classNames[t]={};var i,s,a,o}(jQuery),/* 1052 * jQuery mmenu navbar add-on breadcrumbs content 1053 * mmenu.frebsite.nl 1054 * 1055 * Copyright (c) Fred Heusschen 1056 */ 1057function(e){var n="mmenu",t="navbars",i="breadcrumbs";e[n].addons[t][i]=function(t,i,s){var a=e[n]._c,o=e[n]._d;a.add("breadcrumbs separator");var r=e('<span class="'+a.breadcrumbs+'" />').appendTo(t);this.bind("initPanels",function(n){n.removeClass(a.hasnavbar).each(function(){for(var n=[],t=e(this),i=e('<span class="'+a.breadcrumbs+'"></span>'),r=e(this).children().first(),l=!0;r&&r.length;){r.is("."+a.panel)||(r=r.closest("."+a.panel));var d=r.children("."+a.navbar).children("."+a.title).text();n.unshift(l?"<span>"+d+"</span>":'<a href="#'+r.attr("id")+'">'+d+"</a>"),l=!1,r=r.data(o.parent)}i.append(n.join('<span class="'+a.separator+'">'+s.breadcrumbSeparator+"</span>")).appendTo(t.children("."+a.navbar))})});var l=function(){r.html(this.$pnls.children("."+a.current).children("."+a.navbar).children("."+a.breadcrumbs).html())};return this.bind("openPanel",l),this.bind("initPanels",l),0}}(jQuery),/* 1058 * jQuery mmenu navbar add-on close content 1059 * mmenu.frebsite.nl 1060 * 1061 * Copyright (c) Fred Heusschen 1062 */ 1063function(e){var n="mmenu",t="navbars",i="close";e[n].addons[t][i]=function(t,i){var s=e[n]._c,a=e[n].glbl,o=e('<a class="'+s.close+" "+s.btn+'" href="#" />').appendTo(t),r=function(e){o.attr("href","#"+e.attr("id"))};return r.call(this,a.$page),this.bind("setPage",r),-1}}(jQuery),/* 1064 * jQuery mmenu navbar add-on next content 1065 * mmenu.frebsite.nl 1066 * 1067 * Copyright (c) Fred Heusschen 1068 */ 1069function(e){var n="mmenu",t="navbars",i="next";e[n].addons[t][i]=function(i,s){var a,o,r,l=e[n]._c,d=e('<a class="'+l.next+" "+l.btn+'" href="#" />').appendTo(i),c=function(e){e=e||this.$pnls.children("."+l.current);var n=e.find("."+this.conf.classNames[t].panelNext);a=n.attr("href"),r=n.attr("aria-owns"),o=n.html(),d[a?"attr":"removeAttr"]("href",a),d[r?"attr":"removeAttr"]("aria-owns",r),d[a||o?"removeClass":"addClass"](l.hidden),d.html(o)};return this.bind("openPanel",c),this.bind("initPanels",function(){c.call(this)}),-1},e[n].configuration.classNames[t].panelNext="Next"}(jQuery),/* 1070 * jQuery mmenu navbar add-on prev content 1071 * mmenu.frebsite.nl 1072 * 1073 * Copyright (c) Fred Heusschen 1074 */ 1075function(e){var n="mmenu",t="navbars",i="prev";e[n].addons[t][i]=function(i,s){var a=e[n]._c,o=e('<a class="'+a.prev+" "+a.btn+'" href="#" />').appendTo(i);this.bind("initPanels",function(e){e.removeClass(a.hasnavbar).children("."+a.navbar).addClass(a.hidden)});var r,l,d,c=function(e){if(e=e||this.$pnls.children("."+a.current),!e.hasClass(a.vertical)){var n=e.find("."+this.conf.classNames[t].panelPrev);n.length||(n=e.children("."+a.navbar).children("."+a.prev)),r=n.attr("href"),d=n.attr("aria-owns"),l=n.html(),o[r?"attr":"removeAttr"]("href",r),o[d?"attr":"removeAttr"]("aria-owns",d),o[r||l?"removeClass":"addClass"](a.hidden),o.html(l)}};return this.bind("openPanel",c),this.bind("initPanels",function(){c.call(this)}),-1},e[n].configuration.classNames[t].panelPrev="Prev"}(jQuery),/* 1076 * jQuery mmenu navbar add-on searchfield content 1077 * mmenu.frebsite.nl 1078 * 1079 * Copyright (c) Fred Heusschen 1080 */ 1081function(e){var n="mmenu",t="navbars",i="searchfield";e[n].addons[t][i]=function(t,i){var s=e[n]._c,a=e('<div class="'+s.search+'" />').appendTo(t);return"object"!=typeof this.opts.searchfield&&(this.opts.searchfield={}),this.opts.searchfield.add=!0,this.opts.searchfield.addTo=a,0}}(jQuery),/* 1082 * jQuery mmenu navbar add-on title content 1083 * mmenu.frebsite.nl 1084 * 1085 * Copyright (c) Fred Heusschen 1086 */ 1087function(e){var n="mmenu",t="navbars",i="title";e[n].addons[t][i]=function(i,s){var a,o,r=e[n]._c,l=e('<a class="'+r.title+'" />').appendTo(i),d=function(e){if(e=e||this.$pnls.children("."+r.current),!e.hasClass(r.vertical)){var n=e.find("."+this.conf.classNames[t].panelTitle);n.length||(n=e.children("."+r.navbar).children("."+r.title)),a=n.attr("href"),o=n.html()||s.title,l[a?"attr":"removeAttr"]("href",a),l[a||o?"removeClass":"addClass"](r.hidden),l.html(o)}};return this.bind("openPanel",d),this.bind("initPanels",function(e){d.call(this)}),0},e[n].configuration.classNames[t].panelTitle="Title"}(jQuery),/* 1088 * jQuery mmenu RTL add-on 1089 * mmenu.frebsite.nl 1090 * 1091 * Copyright (c) Fred Heusschen 1092 */ 1093function(e){var n="mmenu",t="rtl";e[n].addons[t]={setup:function(){var s=this.opts[t];this.conf[t];o=e[n].glbl,"object"!=typeof s&&(s={use:s}),s=this.opts[t]=e.extend(!0,{},e[n].defaults[t],s),"boolean"!=typeof s.use&&(s.use="rtl"==(o.$html.attr("dir")||"").toLowerCase()),s.use&&this.$menu.addClass(i.rtl)},add:function(){i=e[n]._c,s=e[n]._d,a=e[n]._e,i.add("rtl")},clickAnchor:function(e,n){}},e[n].defaults[t]={use:"detect"};var i,s,a,o}
1093(jQuery),/* 1094 * jQuery mmenu screenReader add-on 1095 * mmenu.frebsite.nl 1096 * 1097 * Copyright (c) Fred Heusschen 1098 */ 1099function(e){function n(e,n,t){e.prop("aria-"+n,t)[t?"attr":"removeAttr"]("aria-"+n,t)}function t(e){return'<span class="'+a.sronly+'">'+e+"</span>"}var i="mmenu",s="screenReader";e[i].addons[s]={setup:function(){var o=this.opts[s],r=this.conf[s];if(l=e[i].glbl,"boolean"==typeof o&&(o={aria:o,text:o}),"object"!=typeof o&&(o={}),o=this.opts[s]=e.extend(!0,{},e[i].defaults[s],o),o.aria){if(this.opts.offCanvas){var d=function(){n(this.$menu,"hidden",!1)},c=function(){n(this.$menu,"hidden",!0)};this.bind("open",d),this.bind("close",c),n(this.$menu,"hidden",!0)}var h=function(){},u=function(e){var t=this.$menu.children("."+a.navbar),i=t.children("."+a.prev),s=t.children("."+a.next),r=t.children("."+a.title);n(i,"hidden",i.is("."+a.hidden)),n(s,"hidden",s.is("."+a.hidden)),o.text&&n(r,"hidden",!i.is("."+a.hidden)),n(this.$pnls.children("."+a.panel).not(e),"hidden",!0),n(e,"hidden",!1)};this.bind("update",h),this.bind("openPanel",h),this.bind("openPanel",u);var f=function(t){var i;t=t||this.$menu;var s=t.children("."+a.navbar),r=s.children("."+a.prev),l=s.children("."+a.next);s.children("."+a.title);n(r,"haspopup",!0),n(l,"haspopup",!0),i=t.is("."+a.panel)?t.find("."+a.prev+", ."+a.next):r.add(l),i.each(function(){n(e(this),"owns",e(this).attr("href").replace("#",""))}),o.text&&t.is("."+a.panel)&&(i=t.find("."+a.listview).find("."+a.fullsubopen).parent().children("span"),n(i,"hidden",!0))};this.bind("initPanels",f),this.bind("_initAddons",f)}if(o.text){var p=function(n){var s;n=n||this.$menu;var o=n.children("."+a.navbar);o.each(function(){var n=e(this),o=e[i].i18n(r.text.closeSubmenu);s=n.children("."+a.title),s.length&&(o+=" ("+s.text()+")"),n.children("."+a.prev).html(t(o))}),o.children("."+a.close).html(t(e[i].i18n(r.text.closeMenu))),n.is("."+a.panel)&&n.find("."+a.listview).children("li").children("."+a.next).each(function(){var n=e(this),o=e[i].i18n(r.text[n.parent().is("."+a.vertical)?"toggleSubmenu":"openSubmenu"]);s=n.nextAll("span, a").first(),s.length&&(o+=" ("+s.text()+")"),n.html(t(o))})};this.bind("initPanels",p),this.bind("_initAddons",p)}},add:function(){a=e[i]._c,o=e[i]._d,r=e[i]._e,a.add("sronly")},clickAnchor:function(e,n){}},e[i].defaults[s]={aria:!1,text:!1},e[i].configuration[s]={text:{closeMenu:"Close menu",closeSubmenu:"Close submenu",openSubmenu:"Open submenu",toggleSubmenu:"Toggle submenu"}};var a,o,r,l}(jQuery),/* 1100 * jQuery mmenu searchfield add-on 1101 * mmenu.frebsite.nl 1102 * 1103 * Copyright (c) Fred Heusschen 1104 */ 1105function(e){function n(e){switch(e){case 9:case 16:case 17:case 18:case 37:case 38:case 39:case 40:return!0}return!1}var t="mmenu",i="searchfield";e[t].addons[i]={setup:function(){var l=this,d=this.opts[i],c=this.conf[i];r=e[t].glbl,"boolean"==typeof d&&(d={add:d}),"object"!=typeof d&&(d={}),"boolean"==typeof d.resultsPanel&&(d.resultsPanel={add:d.resultsPanel}),d=this.opts[i]=e.extend(!0,{},e[t].defaults[i],d),c=this.conf[i]=e.extend(!0,{},e[t].configuration[i],c),this.bind("close",function(){this.$menu.find("."+s.search).find("input").blur()}),this.bind("initPanels",function(r){if(d.add){var h;switch(d.addTo){case"panels":h=r;break;default:h=this.$menu.find(d.addTo)}if(h.each(function(){var n=e(this);if(!n.is("."+s.panel)||!n.is("."+s.vertical)){if(!n.children("."+s.search).length){var i=l.__valueOrFn(c.clear,n),a=l.__valueOrFn(c.form,n),r=l.__valueOrFn(c.input,n),h=l.__valueOrFn(c.submit,n),u=e("
1105<"+(a?"form":"div")+' class="'+s.search+'" />'),f=e('<input placeholder="'+e[t].i18n(d.placeholder)+'" type="text" autocomplete="off" />');u.append(f);var p;if(r)for(p in r)f.attr(p,r[p]);if(i&&e('<a class="'+s.btn+" "+s.clear+'" href="#" />').appendTo(u).on(o.click+"-searchfield",function(e){e.preventDefault(),f.val("").trigger(o.keyup+"-searchfield")}),a){for(p in a)u.attr(p,a[p]);h&&!i&&e('<a class="'+s.btn+" "+s.next+'" href="#" />').appendTo(u).on(o.click+"-searchfield",function(e){e.preventDefault(),u.submit()})}n.hasClass(s.search)?n.replaceWith(u):n.prepend(u).addClass(s.hassearch)}if(d.noResults){var v=n.closest("."+s.panel).length;if(v||(n=l.$pnls.children("."+s.panel).first()),!n.children("."+s.noresultsmsg).length){var m=n.children("."+s.listview).first();e('<div class="'+s.noresultsmsg+" "+s.hidden+'" />').append(e[t].i18n(d.noResults))[m.length?"insertAfter":"prependTo"](m.length?m:n)}}}}),d.search){if(d.resultsPanel.add){d.showSubPanels=!1;var u=this.$pnls.children("."+s.resultspanel);u.length||(u=e('<div class="'+s.panel+" "+s.resultspanel+" "+s.hidden+'" />').appendTo(this.$pnls).append('<div class="'+s.navbar+" "+s.hidden+'"><a class="'+s.title+'">'+e[t].i18n(d.resultsPanel.title)+"</a></div>").append('<ul class="'+s.listview+'" />').append(this.$pnls.find("."+s.noresultsmsg).first().clone()),this.initPanels(u))}this.$menu.find("."+s.search).each(function(){var t,r,c=e(this),h=c.closest("."+s.panel).length;h?(t=c.closest("."+s.panel),r=t):(t=e("."+s.panel,l.$menu),r=l.$menu),d.resultsPanel.add&&(t=t.not(u));var f=c.children("input"),p=l.__findAddBack(t,"."+s.listview).children("li"),v=p.filter("."+s.divider),m=l.__filterListItems(p),g="a",b=g+", span",_="",C=function(){var n=f.val().toLowerCase();if(n!=_){if(_=n,d.resultsPanel.add&&u.children("."+s.listview).empty(),t.scrollTop(0),m.add(v).addClass(s.hidden).find("."+s.fullsubopensearch).removeClass(s.fullsubopen+" "+s.fullsubopensearch),m.each(function(){var n=e(this),t=g;(d.showTextItems||d.showSubPanels&&n.find("."+s.next))&&(t=b);var i=n.data(a.searchtext)||n.children(t).text();i.toLowerCase().indexOf(_)>-1&&n.add(n.prevAll("."+s.divider).first()).removeClass(s.hidden)}),d.showSubPanels&&t.each(function(n){var t=e(this);l.__filterListItems(t.find("."+s.listview).children()).each(function(){var n=e(this),t=n.data(a.child);n.removeClass(s.nosubresults),t&&t.find("."+s.listview).children().removeClass(s.hidden)})}),d.resultsPanel.add)if(""===_)this.closeAllPanels(),this.openPanel(this.$pnls.children("."+s.subopened).last());else{var i=e();t.each(function(){var n=l.__filterListItems(e(this).find("."+s.listview).children()).not("."+s.hidden).clone(!0);n.length&&(d.resultsPanel.dividers&&(i=i.add('<li class="'+s.divider+'">'+e(this).children("."+s.navbar).text()+"</li>")),i=i.add(n))}),i.find("."+s.next).remove(),u.children("."+s.listview).append(i),this.openPanel(u)}else e(t.get().reverse()).each(function(n){var t=e(this),i=t.data(a.parent);i&&(l.__filterListItems(t.find("."+s.listview).children()).length?(i.hasClass(s.hidden)&&i.children("."+s.next).not("."+s.fullsubopen).addClass(s.fullsubopen).addClass(s.fullsubopensearch),i.removeClass(s.hidden).removeClass(s.nosubresults).prevAll("."+s.divider).first().removeClass(s.hidden)):h||(t.hasClass(s.opened)&&setTimeout(function(){l.openPanel(i.closest("."+s.panel))},(n+1)*(1.5*l.conf.openingInterval)),i.addClass(s.nosubresults)))});r.find("."+s.noresultsmsg)[m.not("."+s.hidden).length?"addClass":"removeClass"](s.hidden),this.update()}};f.off(o.keyup+"-"+i+" "+o.change+"-"+i).on(o.keyup+"-"+i,function(e){n(e.keyCode)||C.call(l)}).on(o.change+"-"+i,function(e){C.call(l)});var y=c.children("."+s.btn);y.length&&f.on(o.keyup+"-"+i,function(e){y[f.val().length?"removeClass":"addClass"](s.hidden)}),f.trigger(o.keyup+"-"+i)})}}})},add:function(){s=e[t]._c,a=e[t]._d,o=e[t]._e,s.add("clear search hassearch resultspanel noresultsmsg noresults nosubresults fullsubopensearch"),a.add("searchtext"),o.add("change keyup")},clickAnchor:function(e,n){}},e[t].defaults[i]={add:!1,addTo:"panels",placeholder:"Search",noResults:"No results found.",resultsPanel:{add:!1,dividers:!0,title:"Search results"},search:!0,showTextItems:!1,showSubPanels:!0},e[t].configuration[i]={clear:!1,form:!1,input:!1,submit:!1};var s,a,o,r}(jQuery),/* 1106 * jQuery mmenu sectionIndexer add-on 1107 * mmenu.frebsite.nl 1108 * 1109 * Copyright (c) Fred Heusschen 1110 */ 1111function(e){var n="mmenu",t="sectionIndexer";e[n].addons[t]={setup:function(){var s=this,r=this.opts[t];this.conf[t];o=e[n].glbl,"boolean"==typeof r&&(r={add:r}),"object"!=typeof r&&(r={}),r=this.opts[t]=e.extend(!0,{},e[n].defaults[t],r),this.bind("initPanels",function(n){if(r.add){var t;switch(r.addTo){case"panels":t=n;break;default:t=e(r.addTo,this.$menu).filter("."+i.panel)}t.find("."+i.divider).closest("."+i.panel).addClass(i.hasindexer)}if(!this.$indexer&&this.$pnls.children("."+i.hasindexer).length){this.$indexer=e('<div class="'+i.indexer+'" />').prependTo(this.$pnls).append('<a href="#a">a</a><a href="#b">b</a><a href="#c">c</a><a href="#d">d</a><a href="#e">e</a><a href="#f">f</a><a href="#g">g</a><a href="#h">h</a><a href="#i">i</a><a href="#j">j</a><a href="#k">k</a><a href="#l">l</a><a href="#m">m</a><a href="#n">n</a><a href="#o">o</a><a href="#p">p</a><a href="#q">q</a><a href="#r">r</a><a href="#s">s</a><a href="#t">t</a><a href="#u">u</a><a href="#v">v</a><a href="#w">w</a><a href="#x">x</a><a href="#y">y</a><a href="#z">z</a>'),this.$indexer.children().on(a.mouseover+"-sectionindexer "+i.touchstart+"-sectionindexer",function(n){var t=e(this).attr("href").slice(1),a=s.$pnls.children("."+i.current),o=a.find("."+i.listview),r=!1,l=a.scrollTop();a.scrollTop(0),o.children("."+i.divider).not("."+i.hidden).each(function(){r===!1&&t==e(this).text().slice(0,1).toLowerCase()&&(r=e(this).position().top)}),a.scrollTop(r!==!1?r:l)}
1111);var o=function(e){s.$menu[(e.hasClass(i.hasindexer)?"add":"remove")+"Class"](i.hasindexer)};this.bind("openPanel",o),o.call(this,this.$pnls.children("."+i.current))}})},add:function(){i=e[n]._c,s=e[n]._d,a=e[n]._e,i.add("indexer hasindexer"),a.add("mouseover touchstart")},clickAnchor:function(e,n){if(e.parent().is("."+i.indexer))return!0}},e[n].defaults[t]={add:!1,addTo:"panels"};var i,s,a,o}(jQuery),/* 1112 * jQuery mmenu setSelected add-on 1113 * mmenu.frebsite.nl 1114 * 1115 * Copyright (c) Fred Heusschen 1116 */ 1117function(e){var n="mmenu",t="setSelected";e[n].addons[t]={setup:function(){var a=this,r=this.opts[t];this.conf[t];if(o=e[n].glbl,"boolean"==typeof r&&(r={hover:r,parent:r}),"object"!=typeof r&&(r={}),r=this.opts[t]=e.extend(!0,{},e[n].defaults[t],r),"detect"==r.current){var l=function(e){e=e.split("?")[0].split("#")[0];var n=a.$menu.find('a[href="'+e+'"], a[href="'+e+'/"]');n.length?a.setSelected(n.parent(),!0):(e=e.split("/").slice(0,-1),e.length&&l(e.join("/")))};l(window.location.href)}else r.current||this.bind("initPanels",function(e){e.find("."+i.listview).children("."+i.selected).removeClass(i.selected)});if(r.hover&&this.$menu.addClass(i.hoverselected),r.parent){this.$menu.addClass(i.parentselected);var d=function(e){this.$pnls.find("."+i.listview).find("."+i.next).removeClass(i.selected);for(var n=e.data(s.parent);n&&n.length;)n=n.not("."+i.vertical).children("."+i.next).addClass(i.selected).end().closest("."+i.panel).data(s.parent)};this.bind("openedPanel",d),this.bind("initPanels",function(e){d.call(this,this.$pnls.children("."+i.current))})}},add:function(){i=e[n]._c,s=e[n]._d,a=e[n]._e,i.add("hoverselected parentselected")},clickAnchor:function(e,n){}},e[n].defaults[t]={current:!0,hover:!1,parent:!1};var i,s,a,o}(jQuery),/* 1118 * jQuery mmenu toggles add-on 1119 * mmenu.frebsite.nl 1120 * 1121 * Copyright (c) Fred Heusschen 1122 */ 1123function(e){var n="mmenu",t="toggles";e[n].addons[t]={setup:function(){var s=this;this.opts[t],this.conf[t];o=e[n].glbl,this.bind("initPanels",function(n){this.__refactorClass(e("input",n),this.conf.classNames[t].toggle,"toggle"),this.__refactorClass(e("input",n),this.conf.classNames[t].check,"check"),e("input."+i.toggle+", input."+i.check,n).each(function(){var n=e(this),t=n.closest("li"),a=n.hasClass(i.toggle)?"toggle":"check",o=n.attr("id")||s.__getUniqueId();t.children('label[for="'+o+'"]').length||(n.attr("id",o),t.prepend(n),e('<label for="'+o+'" class="'+i[a]+'"></label>').insertBefore(t.children("a, span").last()))})})},add:function(){i=e[n]._c,s=e[n]._d,a=e[n]._e,i.add("toggle check")},clickAnchor:function(e,n){}},e[n].configuration.classNames[t]={toggle:"Toggle",check:"Check"};var i,s,a,o}(jQuery); 1124;/*})'"*/ 1125;/*})'"*/ 1126/*! 1127 * jQuery meanMenu v2.0.6 (Drupal Responsive Menus version) 1128 * @Copyright (C) 2012-2013 Chris Wharton (https://github.com/weare2ndfloor/meanMenu) 1129 * 1130 */ 1131(function(e){"use strict";e.fn.meanmenu=function(t){var n={meanMenuTarget:jQuery(this),meanMenuContainer:"body",meanMenuClose:"X",meanMenuCloseSize:"18px",meanMenuOpen:"<span /><span /><span />",meanRevealPosition:"right",meanRevealPositionDistance:"0",meanRevealColour:"",meanRevealHoverColour:"",meanScreenWidth:"480",meanNavPush:"",meanShowChildren:true,meanExpandableChildren:true,meanExpand:"+",meanContract:"-",meanRemoveAttrs:false,onePage:false,removeElements:""};var t=e.extend(n,t);var r=document.documentElement.clientWidth||document.body.clientWidth;return this.each(function(){function x(){if(a=="center"){var e=document.documentElement.clientWidth||document.body.clientWidth;var t=e/2-22+"px";C="left:"+t+";right:auto;";if(!S){jQuery(".meanmenu-reveal").css("left",t)}else{jQuery(".meanmenu-reveal").animate({left:t})}}}function A(){if(jQuery(L).is(".meanmenu-reveal.meanclose")){L.html(s)}else{L.html(u)}}function O(){jQuery(".mean-bar,.mean-push").remove();jQuery(i).removeClass("mean-container");jQuery(e).show();T=false;N=false;jQuery(E).removeClass("mean-remove")}function M(){if(r<=h){jQuery(E).addClass("mean-remove");N=true;jQuery(i).addClass("mean-container");jQuery(".mean-container").prepend('<div class="mean-bar"><a href="#nav" class="meanmenu-reveal" style="'+k+'">Show Navigation</a><nav class="mean-nav"></nav></div>');var t=jQuery(n).html();jQuery(".mean-nav").html(t);if(b){jQuery("nav.mean-nav ul, nav.mean-nav ul *").each(function(){jQuery(this).removeAttr("class");jQuery(this).removeAttr("id")})}jQuery(e).before('<div class="mean-push" />');jQuery(".mean-push").css("margin-top",p);jQuery(e).hide();jQuery(".meanmenu-reveal").show();jQuery(d).html(u);L=jQuery(d);jQuery(".mean-nav ul").hide();if(v){if(m){jQuery(".mean-nav ul ul").each(function(){if(jQuery(this).children().length){jQuery(this,"li:first").parent().append('<a class="mean-expand" href="#" style="font-size: '+o+'">'+g+"</a>")}});jQuery(".mean-expand").on("click",function(e){e.preventDefault();if(jQuery(this).hasClass("mean-clicked")){jQuery(this).text(g);jQuery(this).prev("ul").slideUp(300,function(){})}else{jQuery(this).text(y);jQuery(this).prev("ul").slideDown(300,function(){})}jQuery(this).toggleClass("mean-clicked")})}else{jQuery(".mean-nav ul ul").show()}}else{jQuery(".mean-nav ul ul").hide()}jQuery(".mean-nav ul li").last().addClass("mean-last");L.removeClass("meanclose");jQuery(L).click(function(e){e.preventDefault();if(T==false){L.css("text-align","center");L.css("text-indent","0");L.css("font-size",o);jQuery(".mean-nav ul:first").slideDown();T=true}else{jQuery(".mean-nav ul:first").slideUp();T=false}L.toggleClass("meanclose");A();jQuery(E).addClass("mean-remove")});if(w){jQuery(".mean-nav ul > li > a:first-child").on("click",function(){jQuery(".mean-nav ul:first").slideUp();T=false;jQuery(L).toggleClass("meanclose").html(u)})}}else{O()}}var e=t.meanMenuTarget;var n=t.meanMenuTarget.clone();n.find(".contextual-links-wrapper").remove().find("ul.contextual-links").remove();var i=t.meanMenuContainer;var s=t.meanMenuClose;var o=t.meanMenuCloseSize;var u=t.meanMenuOpen;var a=t.meanRevealPosition;var f=t.meanRevealPositionDistance;var l=t.meanRevealColour;var c=t.meanRevealHoverColour;var h=t.meanScreenWidth;var p=t.meanNavPush;var d=".meanmenu-reveal";var v=t.meanShowChildren;var m=t.meanExpandableChildren;var g=t.meanExpand;var y=t.meanContract;var b=t.meanRemoveAttrs;var w=t.onePage;var E=t.removeElements;if(navigator.userAgent.match(/iPhone/i)||navigator.userAgent.match(/iPod/i)||navigator.userAgent.match(/iPad/i)||navigator.userAgent.match(/Android/i)||navigator.userAgent.match(/Blackberry/i)||navigator.userAgent.match(/Windows Phone/i)){var S=true}if(navigator.userAgent.match(/MSIE 8/i)||navigator.userAgent.match(/MSIE 7/i)){jQuery("html").css("overflow-y","scroll")}var T=false;var N=false;if(a=="right"){C="right:"+f+";left:auto;"}
1131if(a=="left"){var C="left:"+f+";right:auto;"}x();var k="background:"+l+";color:"+l+";"+C;var L="";if(!S){jQuery(window).resize(function(){r=document.documentElement.clientWidth||document.body.clientWidth;if(r>h){O()}else{O()}if(r<=h){M();x()}else{O()}})}window.onorientationchange=function(){x();r=document.documentElement.clientWidth||document.body.clientWidth;if(r>=h){O()}if(r<=h){if(N==false){M()}}};M()})}})(jQuery) 1132 1133;/*})'"*/ 1134;/*})'"*/ 1135/* Source and licensing information for the line(s) below can be found at https://dannybarnes.com/sites/all/modules/responsive_menus/styles/meanMenu/responsive_menus_mean_menu.js. */ 1136(function(e){Drupal.behaviors.responsive_menus_mean_menu={attach:function(s,n){n.responsive_menus=n.responsive_menus||{};e.each(n.responsive_menus,function(s,n){if(n.responsive_menus_style!='mean_menu'){return!0};if(!n.selectors.length){return};e.each(n,function(e,s){if(s==0){n[e]=!1};if(s==1){n[e]=!0}});e(n.selectors).once('responsive-menus-mean-menu',function(){e(this).meanmenu({meanMenuClose:n.close_txt||'X',meanMenuCloseSize:n.close_size||'18px',meanMenuOpen:n.trigger_txt||'<span /><span /><span />',meanRevealPosition:n.position||'right',meanScreenWidth:n.media_size||'480',meanExpand:n.expand_txt||'+',meanContract:n.contract_txt||'-',meanShowChildren:n.show_children,meanExpandableChildren:n.expand_children,meanRemoveAttrs:n.remove_attrs})})})}}}(jQuery));; 1137/* Source and licensing information for the above line(s) can be found at https://dannybarnes.com/sites/all/modules/responsive_menus/styles/meanMenu/responsive_menus_mean_menu.js. */ 1138;/*})'"*/ 1139/*! WOW - v1.1.3 - 2016-05-06 1140* Copyright (c) 2016 Matthieu Aussaguel;*/(function(){var a,b,c,d,e,f=function(a,b){return function(){return a.apply(b,arguments)}},g=[].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1};b=function(){function a(){}return a.prototype.extend=function(a,b){var c,d;for(c in b)d=b[c],null==a[c]&&(a[c]=d);return a},a.prototype.isMobile=function(a){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(a)},a.prototype.createEvent=function(a,b,c,d){var e;return null==b&&(b=!1),null==c&&(c=!1),null==d&&(d=null),null!=document.createEvent?(e=document.createEvent("CustomEvent"),e.initCustomEvent(a,b,c,d)):null!=document.createEventObject?(e=document.createEventObject(),e.eventType=a):e.eventName=a,e},a.prototype.emitEvent=function(a,b){return null!=a.dispatchEvent?a.dispatchEvent(b):b in(null!=a)?a[b]():"on"+b in(null!=a)?a["on"+b]():void 0},a.prototype.addEvent=function(a,b,c){return null!=a.addEventListener?a.addEventListener(b,c,!1):null!=a.attachEvent?a.attachEvent("on"+b,c):a[b]=c},a.prototype.removeEvent=function(a,b,c){return null!=a.removeEventListener?a.removeEventListener(b,c,!1):null!=a.detachEvent?a.detachEvent("on"+b,c):delete a[b]},a.prototype.innerHeight=function(){return"innerHeight"in window?window.innerHeight:document.documentElement.clientHeight},a}(),c=this.WeakMap||this.MozWeakMap||(c=function(){function a(){this.keys=[],this.values=[]}return a.prototype.get=function(a){var b,c,d,e,f;for(f=this.keys,b=d=0,e=f.length;e>d;b=++d)if(c=f[b],c===a)return this.values[b]},a.prototype.set=function(a,b){var c,d,e,f,g;for(g=this.keys,c=e=0,f=g.length;f>e;c=++e)if(d=g[c],d===a)return void(this.values[c]=b);return this.keys.push(a),this.values.push(b)},a}()),a=this.MutationObserver||this.WebkitMutationObserver||this.MozMutationObserver||(a=function(){function a(){"undefined"!=typeof console&&null!==console&&console.warn("MutationObserver is not supported by your browser."),"undefined"!=typeof console&&null!==console&&console.warn("WOW.js cannot detect dom mutations, please call .sync() after loading new content.")}return a.notSupported=!0,a.prototype.observe=function(){},a}()),d=this.getComputedStyle||function(a,b){return this.getPropertyValue=function(b){var c;return"float"===b&&(b="styleFloat"),e.test(b)&&b.replace(e,function(a,b){return b.toUpperCase()}),(null!=(c=a.currentStyle)?c[b]:void 0)||null},this},e=/(\-([a-z]){1})/g,this.WOW=function(){function e(a){null==a&&(a={}),this.scrollCallback=f(this.scrollCallback,this),this.scrollHandler=f(this.scrollHandler,this),this.resetAnimation=f(this.resetAnimation,this),this.start=f(this.start,this),this.scrolled=!0,this.config=this.util().extend(a,this.defaults),null!=a.scrollContainer&&(this.config.scrollC
vendor: 5,227 bytes, line 1140
1140ontainer=document.querySelector(a.scrollContainer)),this.animationNameCache=new c,this.wowEvent=this.util().createEvent(this.config.boxClass)}return e.prototype.defaults={boxClass:"wow",animateClass:"animated",offset:0,mobile:!0,live:!0,callback:null,scrollContainer:null},e.prototype.init=function(){var a;return this.element=window.document.documentElement,"interactive"===(a=document.readyState)||"complete"===a?this.start():this.util().addEvent(document,"DOMContentLoaded",this.start),this.finished=[]},e.prototype.start=function(){var b,c,d,e;if(this.stopped=!1,this.boxes=function(){var a,c,d,e;for(d=this.element.querySelectorAll("."+this.config.boxClass),e=[],a=0,c=d.length;c>a;a++)b=d[a],e.push(b);return e}.call(this),this.all=function(){var a,c,d,e;for(d=this.boxes,e=[],a=0,c=d.length;c>a;a++)b=d[a],e.push(b);return e}.call(this),this.boxes.length)if(this.disabled())this.resetStyle();else for(e=this.boxes,c=0,d=e.length;d>c;c++)b=e[c],this.applyStyle(b,!0);return this.disabled()||(this.util().addEvent(this.config.scrollContainer||window,"scroll",this.scrollHandler),this.util().addEvent(window,"resize",this.scrollHandler),this.interval=setInterval(this.scrollCallback,50)),this.config.live?new a(function(a){return function(b){var c,d,e,f,g;for(g=[],c=0,d=b.length;d>c;c++)f=b[c],g.push(function(){var a,b,c,d;for(c=f.addedNodes||[],d=[],a=0,b=c.length;b>a;a++)e=c[a],d.push(this.doSync(e));return d}.call(a));return g}}(this)).observe(document.body,{childList:!0,subtree:!0}):void 0},e.prototype.stop=function(){return this.stopped=!0,this.util().removeEvent(this.config.scrollContainer||window,"scroll",this.scrollHandler),this.util().removeEvent(window,"resize",this.scrollHandler),null!=this.interval?clearInterval(this.interval):void 0},e.prototype.sync=function(b){return a.notSupported?this.doSync(this.element):void 0},e.prototype.doSync=function(a){var b,c,d,e,f;if(null==a&&(a=this.element),1===a.nodeType){for(a=a.parentNode||a,e=a.querySelectorAll("."+this.config.boxClass),f=[],c=0,d=e.length;d>c;c++)b=e[c],g.call(this.all,b)<0?(this.boxes.push(b),this.all.push(b),this.stopped||this.disabled()?this.resetStyle():this.applyStyle(b,!0),f.push(this.scrolled=!0)):f.push(void 0);return f}},e.prototype.show=function(a){return this.applyStyle(a),a.className=a.className+" "+this.config.animateClass,null!=this.config.callback&&this.config.callback(a),this.util().emitEvent(a,this.wowEvent),this.util().addEvent(a,"animationend",this.resetAnimation),this.util().addEvent(a,"oanimationend",this.resetAnimation),this.util().addEvent(a,"webkitAnimationEnd",this.resetAnimation),this.util().addEvent(a,"MSAnimationEnd",this.resetAnimation),a},e.prototype.applyStyle=function(a,b){var c,d,e;return d=a.getAttribute("data-wow-duration"),c=a.getAttribute("data-wow-delay"),e=a.getAttribute("data-wow-iteration"),this.animate(function(f){return function(){return f.customStyle(a,b,d,c,e)}}(this))},e.prototype.animate=function(){return"requestAnimationFrame"in window?function(a){return window.requestAnimationFrame(a)}:function(a){return a()}}(),e.prototype.resetStyle=function(){var a,b,c,d,e;for(d=this.boxes,e=[],b=0,c=d.length;c>b;b++)a=d[b],e.push(a.style.visibility="visible");return e},e.prototype.resetAnimation=function(a){var b;return a.type.toLowerCase().indexOf("animationend")>=0?(b=a.target||a.srcElement,b.className=b.className.replace(this.config.animateClass,"").trim()):void 0},e.prototype.customStyle=function(a,b,c,d,e){return b&&this.cacheAnimationName(a),a.style.visibility=b?"hidden":"visible",c&&this.vendorSet(a.style,{animationDuration:c}),d&&this.vendorSet(a.style,{animationDelay:d}),e&&this.vendorSet(a.style,{animationIterationCount:e}),this.vendorSet(a.style,{animationName:b?"none":this.cachedAnimationName(a)}),a},e.prototype.vendors=["moz","webkit"],e.prototype.vendorSet=function(a,b){var c,d,e,f;d=[];for(c in b)e=b[c],a[""+c]=e,d.push(function(){var b,d,g,h;for(g=this.vendors,h=[],b=0,d=g.length;d>b;b++)f=g[b],h.push(a[""+f+c.charAt(0).toUpperCase()+c.substr(1)]=e);return h}.call(this));return d},e.prototype.vendorCSS=function(a,b){var c,e,f,g,h,i;for(h=d(a),g=h.getPropertyCSSValue(b),f=this.vendors,c=0,e=f.length;e>c;c++)i=f[c],g=g||h.getPropertyCSSValue("-"+i+"-"+b);return g},e.prototype.animationName=function(a){var b;try{b=this.vendorCSS(a,"animation-name").cssText}catch(c){b=d(a).getPropertyValue("animation-name")}return"none"===b?"":b},e.prototype.cacheAnimationName=function(a){return this.animationNameCache.set(a,this.animationName(a))},e.prototype.cachedAnimationName=function(a){return this.animationNameCache.get(a)},e.prototype.scrollHandler=function(){return this.scrolled=!0},e.prototype.scrollCallback=function(){var a;return!this.scrolled||(this.scrolled=!1,this.boxes=function(){var b,c,d,e;for(d=this.boxes,e=[],b=0,c=d.length;c>b;b++)a=d[b],a&&(this.isVisible(a)?this.show(a):e.push(a));return e}.call(this),this.boxes.length||this.config.live)?void 0:this.stop()},e.prototype.offsetTop=function(a){for(var b;void 0===a.offsetTop;)a=a.parentNode;for(b=a.offsetTop;a=a.offsetParent;)b+=a.offsetTop;return b},e.prototype.isVisible=function(a){var b,c,d,e,f;return c=a.getAttribute("data-wow-offset")||this.config.offset,f=this.config.scrollC
1140ontainer&&this.config.scrollContainer.scrollTop||window.pageYOffset,e=f+Math.min(this.element.clientHeight,this.util().innerHeight())-c,d=this.offsetTop(a),b=d+a.clientHeight,e>=d&&b>=f},e.prototype.util=function(){return null!=this._util?this._util:this._util=new b},e.prototype.disabled=function(){return!this.config.mobile&&this.util().isMobile(navigator.userAgent)},e}()}).call(this); 1141;/*})'"*/ 1142;/*})'"*/ 1143/* Source and licensing information for the line(s) below can be found at https://dannybarnes.com/sites/all/modules/google_analytics/googleanalytics.js. */ 1144(function(e){Drupal.googleanalytics={};e(document).ready(function(){e(document.body).bind("mousedown keyup touchstart",function(t){e(t.target).closest("a,area").each(function(){if(Drupal.googleanalytics.isInternal(this.href)){if(e(this).is(".colorbox")&&(Drupal.settings.googleanalytics.trackColorbox)){} 1145else if(Drupal.settings.googleanalytics.trackDownload&&Drupal.googleanalytics.isDownload(this.href)){ga("send",{"hitType":"event","eventCategory":"Downloads","eventAction":Drupal.googleanalytics.getDownloadExtension(this.href).toUpperCase(),"eventLabel":Drupal.googleanalytics.getPageUrl(this.href),"transport":"beacon"})} 1146else if(Drupal.googleanalytics.isInternalSpecial(this.href)){ga("send",{"hitType":"pageview","page":Drupal.googleanalytics.getPageUrl(this.href),"transport":"beacon"})}} 1147else{if(Drupal.settings.googleanalytics.trackMailto&&e(this).is("a[href^='mailto:'],area[href^='mailto:']")){ga("send",{"hitType":"event","eventCategory":"Mails","eventAction":"Click","eventLabel":this.href.substring(7),"transport":"beacon"})} 1148else if(Drupal.settings.googleanalytics.trackOutbound&&this.href.match(/^\w+:\/\//i)){if(Drupal.settings.googleanalytics.trackDomainMode!==2||(Drupal.settings.googleanalytics.trackDomainMode===2&&!Drupal.googleanalytics.isCrossDomain(this.hostname,Drupal.settings.googleanalytics.trackCrossDomains))){ga("send",{"hitType":"event","eventCategory":"Outbound links","eventAction":"Click","eventLabel":this.href,"transport":"beacon"})}}}})});if(Drupal.settings.googleanalytics.trackUrlFragments){window.onhashchange=function(){ga("send",{"hitType":"pageview","page":location.pathname+location.search+location.hash})}};if(Drupal.settings.googleanalytics.trackColorbox){e(document).bind("cbox_complete",function(){var t=e.colorbox.element().attr("href");if(t){ga("send",{"hitType":"pageview","page":Drupal.googleanalytics.getPageUrl(t)})}})}});Drupal.googleanalytics.isCrossDomain=function(t,a){if(!a){return!1} 1149else{return e.inArray(t,a)>-1?!0:!1}};Drupal.googleanalytics.isDownload=function(e){var t=new RegExp("\\.("+Drupal.settings.googleanalytics.trackDownloadExtensions+")([\?#].*)?$","i");return t.test(e)};Drupal.googleanalytics.isInternal=function(e){var t=new RegExp("^(https?):\/\/"+window.location.host,"i");return t.test(e)};Drupal.googleanalytics.isInternalSpecial=function(e){var t=new RegExp("(\/go\/.*)$","i");return t.test(e)};Drupal.googleanalytics.getPageUrl=function(e){var t=new RegExp("^(https?):\/\/"+window.location.host,"i");return e.replace(t,"")};Drupal.googleanalytics.getDownloadExtension=function(e){var a=new RegExp("\\.("+Drupal.settings.googleanalytics.trackDownloadExtensions+")([\?#].*)?$","i"),t=a.exec(e);return(t===null)?"":t[1]}})(jQuery);; 1150/* Source and licensing information for the above line(s) can be found at https://dannybarnes.com/sites/all/modules/google_analytics/googleanalytics.js. */ 1151;/*})'"*/
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.