1/* 2 * jQuery Touch Optimized Sliders "R"Us 2.5.0-patched 3 * 4 * Copyright (c) Fred Heusschen 5 * www.frebsite.nl 6 * 7 * Plugin website: 8 * tosrus.frebsite.nl 9 * 10 * Licensed under the MIT license. 11 * http://en.wikipedia.org/wiki/MIT_License 12 */ 13(!(function (t) { 14 function i() { 15 ((n = function (t) { 16 return e + '-' + t; 17 }), 18 (o = function (t) { 19 return e + '-' + t; 20 }), 21 (a = function (t) { 22 return t + '.' + e; 23 }), 24 t.each([n, o, a], function (t, i) { 25 i.add = function (t) { 26 t = t.split(' '); 27 for (var s in t) i[t[s]] = i(t[s]); 28 }; 29 }), 30 n.add( 31 'touch desktop scale-1 scale-2 scale-3 wrapper opened opening fixed inline hover slider slide loading noanimation fastanimation' 32 ), 33 o.add('slide anchor'), 34 a.add( 35 'open opening close closing prev next slideTo sliding click pinch scroll resize orientationchange load loading loaded transitionend webkitTransitionEnd' 36 ), 37 (r = { 38 complObject: function (i, s) { 39 return (t.isPlainObject(i) || (i = s), i); 40 }, 41 complBoolean: function (t, i) { 42 return ('boolean' != typeof t && (t = i), t); 43 }, 44 complNumber: function (i, s) { 45 return ((!isNaN(parseFloat(i)) && isFinite(i)) || (i = s), i); 46 }, 47 complString: function (t, i) { 48 return ('string' != typeof t && (t = i), t); 49 }, 50 isPercentage: function (t) { 51 return 'string' == typeof t && '%' == t.slice(-1); 52 }, 53 getPercentage: function (t) { 54 return parseInt(t.slice(0, -1)); 55 }, 56 resizeRatio: function (t, i, s, e, n) { 57 if (i.is(':visible')) { 58 var o = i.width(), 59 a = i.height(); 60 (s && o > s && (o = s), 61 e && a > e && (a = e), 62 n > o / a ? (a = o / n) : (o = a * n), 63 t.width(o).height(a)); 64 } 65 }, 66 transitionend: function (t, i, s) { 67 var e = !1, 68 n = function () { 69 (e || i.call(t[0]), (e = !0)); 70 }; 71 (t.one(a.transitionend, n), 72 t.one(a.webkitTransitionEnd, n), 73 setTimeout(n, 1.1 * s)); 74 }, 75 setViewportScale: function () { 76 if (d.viewportScale) { 77 var t = d.viewportScale.getScale(); 78 void 0 !== t && 79 ((t = 1 / t), 80 d.$body 81 .removeClass(n['scale-1']) 82 .removeClass(n['scale-2']) 83 .removeClass(n['scale-3']) 84 .addClass(n['scale-' + Math.max(Math.min(Math.round(t), 3), 1)])); 85 } 86 }, 87 }), 88 (d = { 89 $wndw: t(window), 90 $html: t('html'), 91 $body: t('body'), 92 scrollPosition: 0, 93 viewportScale: null, 94 viewportScaleInterval: null, 95 }).$body.addClass(t[s].support.touch ? n.touch : n.desktop), 96 d.$wndw.on(a.scroll, function (t) { 97 d.$body.hasClass(n.opened) && 98 (window.scrollTo(0, d.scrollPosition), 99 t.preventDefault(), 100 t.stopPropagation(), 101 t.stopImmediatePropagation()); 102 }), 103 !d.viewportScale && 104 t[s].support.touch && 105 'undefined' != typeof FlameViewportScale && 106 ((d.viewportScale = new FlameViewportScale()), 107 r.setViewportScale(), 108 d.$wndw.on(a.orientationchange + ' ' + a.resize, function (t) { 109 (d.viewportScaleInterval && 110 (clearTimeout(d.viewportScaleInterval), (d.viewportScaleInterval = null)), 111 (d.viewportScaleInterval = setTimeout(function () { 112 r.setViewportScale(); 113 }, 500))); 114 })), 115 (t[s]._c = n), 116 (t[s]._d = o), 117 (t[s]._e = a), 118 (t[s]._f = r), 119 (t[s]._g = d)); 120 } 121 var s = 'tosrus', 122 e = 'tos'; 123 if (!t[s]) { 124 var n = {}, 125 o = {}, 126 a = {}, 127 r = {}, 128 d = {}; 129 ((t[s] = function (t, i, s) { 130 return ( 131 (this.$node = t), 132 (this.opts = i), 133 (this.conf = s), 134 (this.vars = {}), 135 (this.nodes = {}), 136 (this.slides = {}), 137 this._init(), 138 this 139 ); 140 }), 141 (t[s].prototype = { 142 _init: function () { 143 var i = this; 144 (this._complementOptions(), 145 (this.vars.fixed = 'window' == this.opts.wrapper.target), 146 (this.nodes.$wrpr = t('<div class="' + n.wrapper + '" />')), 147 (this.nodes.$sldr = t('<div class="' + n.slider + '" />').appendTo( 148 this.nodes.$wrpr 149 )), 150 this.nodes.$wrpr 151 .addClass(this.vars.fixed ? n.fixed : n.inline) 152 .addClass(n('fx-' + this.opts.effect)) 153 .addClass(n(this.opts.slides.scale)) 154 .addClass(this.opts.wrapper.classes), 155 this.nodes.$wrpr 156 .on( 157 a.open + 158 ' ' + 159 a.close + 160 ' ' + 161 a.prev + 162 ' ' + 163 a.next + 164 ' ' + 165 a.slideTo, 166 function (t) { 167 var args = Array.prototype.slice.call(arguments); 168 var s = args.shift().type; 169 t.stopPropagation(); 170 'function' == typeof i[s] && i[s].apply(i, args); 171 } 172 ) 173 .on( 174 a.opening + 175 ' ' + 176 a.closing + 177 ' ' + 178 a.sliding + 179 ' ' + 180 a.loading + 181 ' ' + 182 a.loaded, 183 function (t) { 184 t.stopPropagation(); 185 } 186 ) 187 .on(a.click, function (s) { 188 switch ((s.stopPropagation(), i.opts.wrapper.onClick)) { 189 case 'toggleUI': 190 i.nodes.$wrpr.toggleClass(n.hover); 191 break; 192 case 'close': 193 t(s.target).is('img') || i.close(); 194 } 195 }), 196 (this.nodes.$anchors = this._initAnchors()), 197 (this.nodes.$slides = this._initSlides()), 198 (this.slides.total = this.nodes.$slides.length), 199 (this.slides.visible = this.opts.slides.visible), 200 (this.slides.index = 0), 201 (this.vars.opened = !0)); 202 for (var e = 0; e < t[s].addons.length; e++) 203 typeof this['_addon_' + t[s].addons[e]] === 'function' && 204 this['_addon_' + t[s].addons[e]](); 205 for (var o = 0; o < t[s].ui.length; o++) 206 this.nodes.$wrpr.find('.' + n[t[s].ui[o]]).length && 207 this.nodes.$wrpr.addClass(n('has-' + t[s].ui[o])); 208 ('close' == this.opts.wrapper.onClick && 209 (this.nodes.$uibg || 210 t() 211 .add(this.nodes.$capt || t()) 212 .add(this.nodes.$pagr || t()) 213 .on(a.click, function (t) { 214 t.stopPropagation(); 215 })), 216 this.vars.fixed 217 ? (this.nodes.$wrpr.appendTo(d.$body), this.close(!0)) 218 : (this.nodes.$wrpr.appendTo(this.opts.wrapper.target), 219 this.opts.show 220 ? ((this.vars.opened = !1), this.open(0, !0)) 221 : this.close(!0))); 222 }, 223 open: function (i, s) { 224 var e = this; 225 (this.vars.opened || 226 (this.vars.fixed && 227 ((d.scrollPosition = d.$wndw.scrollTop()), 228 d.$body.addClass(n.opened), 229 r.setViewportScale()), 230 s 231 ? this.nodes.$wrpr.addClass(n.opening).trigger(a.opening, [i, s]) 232 : setTimeout(function () { 233 e.nodes.$wrpr.addClass(n.opening).trigger(a.opening, [i, s]); 234 }, 5), 235 this.nodes.$wrpr.addClass(n.hover).addClass(n.opened)), 236 (this.vars.opened = !0), 237 this._loadContents(), 238 !isNaN(parseFloat(i)) && 239 isFinite(i) && 240 ((s = s || !this.vars.opened), this.slideTo(i, s))); 241 }, 242 close: function (i) { 243 (this.vars.opened && 244 (this.vars.fixed && d.$body.removeClass(n.opened), 245 i 246 ? this.nodes.$wrpr.removeClass(n.opened) 247 : r.transitionend( 248 this.nodes.$wrpr, 249 function () { 250 t(this).removeClass(n.opened); 251 }, 252 this.conf.transitionDuration 253 ), 254 this.nodes.$wrpr 255 .removeClass(n.hover) 256 .removeClass(n.opening) 257 .trigger(a.closing, [this.slides.index, i])), 258 (this.vars.opened = !1)); 259 }, 260 prev: function (i, s) { 261 ((!isNaN(parseFloat(i)) && isFinite(i)) || (i = this.opts.slides.slide),
262 this.slideTo(this.slides.index - i, s)); 263 }, 264 next: function (i, s) { 265 ((!isNaN(parseFloat(i)) && isFinite(i)) || (i = this.opts.slides.slide), 266 this.slideTo(this.slides.index + i, s)); 267 }, 268 slideTo: function (i, e) { 269 if (!this.vars.opened) return !1; 270 if (!(!isNaN(parseFloat(i)) && isFinite(i))) return !1; 271 var o = !0; 272 if (0 > i) { 273 var d = 0 == this.slides.index; 274 this.opts.infinite 275 ? (i = d ? this.slides.total - this.slides.visible : 0) 276 : ((i = 0), d && (o = !1)); 277 } 278 if (i + this.slides.visible > this.slides.total) { 279 var l = this.slides.index + this.slides.visible >= this.slides.total; 280 this.opts.infinite 281 ? (i = l ? 0 : this.slides.total - this.slides.visible) 282 : ((i = this.slides.total - this.slides.visible), l && (o = !1)); 283 } 284 if (((this.slides.index = i), this._loadContents(), o)) { 285 var p = 286 0 - 287 this.slides.index * this.opts.slides.width + 288 this.opts.slides.offset; 289 (this.slides.widthPercentage && (p += '%'), 290 e && 291 (this.nodes.$sldr.addClass(n.noanimation), 292 r.transitionend( 293 this.nodes.$sldr, 294 function () { 295 t(this).removeClass(n.noanimation); 296 }, 297 5 298 ))); 299 for (var c in t[s].effects) 300 if (c == this.opts.effect) { 301 t[s].effects[c].call(this, p, e); 302 break; 303 } 304 this.nodes.$wrpr.trigger(a.sliding, [i, e]); 305 } 306 }, 307 _initAnchors: function () { 308 var i = this, 309 e = t(); 310 if (this.$node.is('a')) 311 for (var n in t[s].media) 312 e = e.add( 313 this.$node.filter(function () { 314 if (i.opts.media[n] && i.opts.media[n].filterAnchors) { 315 var e = i.opts.media[n].filterAnchors.call(i, t(this)); 316 if ('boolean' == typeof e) return e; 317 } 318 return t[s].media[n].filterAnchors.call(i, t(this)); 319 }) 320 ); 321 return e; 322 }, 323 _initSlides: function () { 324 return ( 325 this[ 326 this.$node.is('a') ? '_initSlidesFromAnchors' : '_initSlidesFromContent' 327 ](), 328 this.nodes.$sldr 329 .children() 330 .css( 331 'width', 332 this.opts.slides.width + (this.slides.widthPercentage ? '%' : 'px') 333 ) 334 ); 335 }, 336 _initSlidesFromAnchors: function () { 337 var i = this; 338 this.nodes.$anchors.each(function (s) { 339 var e = t(this), 340 r = t('<div class="' + n.slide + ' ' + n.loading + '" />') 341 .data(o.anchor, e) 342 .appendTo(i.nodes.$sldr); 343 e.data(o.slide, r).on(a.click, function (t) { 344 (t.preventDefault(), i.open(s)); 345 }); 346 }); 347 }, 348 _initSlidesFromContent: function () { 349 var i = this; 350 this.$node.children().each(function () { 351 var e = t(this); 352 t('<div class="' + n.slide + '" />') 353 .append(e) 354 .appendTo(i.nodes.$sldr); 355 for (var o in t[s].media) { 356 var a = null; 357 if ( 358 (i.opts.media[o] && 359 i.opts.media[o].filterSlides && 360 (a = i.opts.media[o].filterSlides.call(i, e)), 361 'boolean' != typeof a && 362 (a = t[s].media[o].filterSlides.call(i, e)), 363 a) 364 ) { 365 (t[s].media[o].initSlides.call(i, e), e.parent().addClass(n(o))); 366 break; 367 } 368 } 369 }); 370 }, 371 _loadContents: function () { 372 var t = this; 373 switch (this.opts.slides.load) { 374 case 'all': 375 this._loadContent(0, this.slides.total); 376 break; 377 case 'visible': 378 this._loadContent( 379 this.slides.index, 380 this.slides.index + this.slides.visible 381 ); 382 break; 383 case 'near-visible': 384 default: 385 (this._loadContent( 386 this.slides.index, 387 this.slides.index + this.slides.visible 388 ), 389 setTimeout(function () { 390 (t._loadContent( 391 t.slides.index - t.slides.visible, 392 t.slides.index 393 ), 394 t._loadContent( 395 t.slides.index + t.slides.visible, 396 t.slides.index + 2 * t.slides.visible 397 )); 398 }, this.conf.transitionDuration)); 399 } 400 }, 401 _loadContent: function (i, e) { 402 var r = this; 403 this.nodes.$slides.slice(i, e).each(function () { 404 var i = t(this); 405 if (0 == i.children().length) { 406 var e = i.data(o.anchor), 407 d = e.attr('href'); 408 for (var l in t[s].media) { 409 var p = null; 410 if ( 411 (r.opts.media[l] && 412 r.opts.media[l].filterAnchors && 413 (p = r.opts.media[l].filterAnchors.call(r, e)), 414 'boolean' != typeof p && 415 (p = t[s].media[l].filterAnchors.call(r, e)), 416 p) 417 ) { 418 (t[s].media[l].initAnchors.call(r, i, d), i.addClass(n(l))); 419 break; 420 } 421 } 422 i.trigger(a.loading, [i.data(o.anchor)]); 423 } 424 }); 425 }, 426 _complementOptions: function () { 427 if ( 428 (void 0 === this.opts.wrapper.target &&
429 (this.opts.wrapper.target = this.$node.is('a') ? 'window' : this.$node), 430 'window' != this.opts.wrapper.target && 431 'string' == typeof this.opts.wrapper.target && 432 (this.opts.wrapper.target = t(this.opts.wrapper.target)), 433 (this.opts.show = r.complBoolean( 434 this.opts.show, 435 'window' != this.opts.wrapper.target 436 )), 437 !isNaN(parseFloat(this.opts.slides.width)) && 438 isFinite(this.opts.slides.width)) 439 ) 440 ((this.slides.widthPercentage = !1), 441 (this.opts.slides.visible = r.complNumber( 442 this.opts.slides.visible, 443 1 444 ))); 445 else { 446 var i = 447 !!r.isPercentage(this.opts.slides.width) && 448 r.getPercentage(this.opts.slides.width); 449 ((this.slides.widthPercentage = !0), 450 (this.opts.slides.visible = r.complNumber( 451 this.opts.slides.visible, 452 i ? Math.floor(100 / i) : 1 453 )), 454 (this.opts.slides.width = 455 i || Math.ceil(1e4 / this.opts.slides.visible) / 100)); 456 } 457 ((this.opts.slides.slide = r.complNumber( 458 this.opts.slides.slide, 459 this.opts.slides.visible 460 )), 461 (this.opts.slides.offset = r.isPercentage(this.opts.slides.offset) 462 ? r.getPercentage(this.opts.slides.offset) 463 : r.complNumber(this.opts.slides.offset, 0))); 464 }, 465 _uniqueID: function () { 466 return ( 467 this.__uniqueID || (this.__uniqueID = 0), 468 this.__uniqueID++, 469 n('uid-' + this.__uniqueID) 470 ); 471 }, 472 }), 473 (t.fn[s] = function (e, n, o, a) { 474 (d.$wndw || i(), 475 (e = t.extend(!0, {}, t[s].defaults, e)), 476 (e = t.extend(!0, {}, e, t[s].support.touch ? o : n)), 477 (a = t.extend(!0, {}, t[s].configuration, a))); 478 var r = new t[s](this, e, a); 479 return (this.data(s, r), r.nodes.$wrpr); 480 }), 481 (t[s].support = { 482 touch: 'ontouchstart' in window.document || navigator.msMaxTouchPoints, 483 }), 484 (t[s].defaults = { 485 infinite: !1, 486 effect: 'slide', 487 wrapper: { 488 classes: '', 489 onClick: 'toggleUI', 490 }, 491 slides: { 492 offset: 0, 493 scale: 'fit', 494 load: 'near-visible', 495 visible: 1, 496 }, 497 media: {}, 498 }), 499 (t[s].configuration = { 500 transitionDuration: 400, 501 }), 502 (t[s].constants = {}), 503 (t[s].debug = function (t) {}), 504 (t[s].deprecated = function (t, i) { 505 'undefined' != typeof console && 506 void 0 !== console.warn && 507 console.warn(s + ': ' + t + ' is deprecated, use ' + i + ' instead.'); 508 }), 509 (t[s].effects = { 510 slide: function (t) { 511 this.nodes.$sldr.css('left', t); 512 }, 513 fade: function (i) { 514 (r.transitionend( 515 this.nodes.$sldr, 516 function () { 517 t(this).css('left', i).css('opacity', 1); 518 }, 519 this.conf.transitionDuration 520 ), 521 this.nodes.$sldr.css('opacity', 0)); 522 }, 523 }), 524 (t[s].version = '2.5.0'), 525 (t[s].media = {}), 526 (t[s].addons = []), 527 (t[s].ui = [])); 528 } 529})(jQuery), 530 (function (t) { 531 var i, 532 s, 533 e, 534 n, 535 o, 536 a = 'tosrus', 537 r = 'autoplay', 538 d = !1; 539 ((t[a].prototype['_addon_' + r] = function () { 540 d || 541 ((i = t[a]._c), 542 (s = t[a]._d), 543 (e = t[a]._e), 544 (n = t[a]._f), 545 (o = t[a]._g), 546 e.add('mouseover mouseout'), 547 (d = !0)); 548 var l = this, 549 p = this.opts[r]; 550 p.play && 551 ((this.opts.infinite = !0), 552 this.nodes.$wrpr.on(e.sliding, function (t) { 553 l.autoplay(); 554 }), 555 p.pauseOnHover && 556 this.nodes.$wrpr 557 .on(e.mouseover, function (t) { 558 l.autostop(); 559 }) 560 .on(e.mouseout, function (t) { 561 l.autoplay(); 562 }), 563 this.autoplay()); 564 }), 565 (t[a].prototype.autoplay = function () { 566 var t = this; 567 (this.autostop(), 568 (this.vars.autoplay = setTimeout(function () { 569 t.next(); 570 }, this.opts[r].timeout))); 571 }), 572 (t[a].prototype.autostop = function () { 573 this.vars.autoplay && clearTimeout(this.vars.autoplay); 574 }), 575 (t[a].defaults[r] = { 576 play: !1, 577 timeout: 4e3, 578 pauseOnHover: !1, 579 }), 580 t[a].addons.push(r)); 581 })(jQuery), 582 (function (t) { 583 function i(i, s) { 584 return t('<a class="' + e[i] + s + '" href="#"><span></span></a>'); 585 } 586 587 function s(t, i, s, e) { 588 i.on(o.click, function (i) { 589 (i.preventDefault(), i.stopPropagation(), t.trigger(o[s], [e])); 590 }); 591 } 592 var e, 593 n, 594 o, 595 a, 596 r, 597 d = 'tosrus', 598 l = 'buttons', 599 p = !1; 600 ((t[d].prototype['_addon_' + l] = function () { 601 p || 602 ((e = t[d]._c), 603 (n = t[d]._d),
604 (o = t[d]._e), 605 (a = t[d]._f), 606 (r = t[d]._g), 607 e.add('prev next close disabled'), 608 (p = !0)); 609 var c = this, 610 h = this.opts[l]; 611 ((this.nodes.$prev = null), 612 (this.nodes.$next = null), 613 (this.nodes.$clse = null), 614 ('boolean' == typeof h || ('string' == typeof h && 'inline' == h)) && 615 (h = { 616 prev: h, 617 next: h, 618 }), 619 void 0 === h.close && (h.close = this.vars.fixed), 620 this.nodes.$slides.length < 2 && ((h.prev = !1), (h.next = !1)), 621 t.each( 622 { 623 prev: 'prev', 624 next: 'next', 625 close: 'clse', 626 }, 627 function (n, a) { 628 h[n] && 629 ('string' == typeof h[n] && 'inline' == h[n] 630 ? c.vars.fixed && 631 'close' != n && 632 c.nodes.$slides.on(o.loading, function (o, a) { 633 var r = i(n, ' ' + e.inline)[ 634 'prev' == n ? 'prependTo' : 'appendTo' 635 ](this); 636 (s(c.nodes.$wrpr, r, n, 1), 637 c.opts.infinite || 638 ((('prev' == n && t(this).is(':first-child')) || 639 ('next' == n && t(this).is(':last-child'))) && 640 r.addClass(e.disabled))); 641 }) 642 : ('string' == typeof h[n] && (h[n] = t(h[n])), 643 (c.nodes['$' + a] = 644 h[n] instanceof t 645 ? h[n] 646 : i(n, '').appendTo(c.nodes.$wrpr)), 647 s(c.nodes.$wrpr, c.nodes['$' + a], n, null))); 648 } 649 ), 650 this.opts.infinite || 651 (this.updateButtons(), 652 this.nodes.$wrpr.on(o.sliding, function (t, i, s) { 653 c.updateButtons(); 654 }))); 655 }), 656 (t[d].prototype.updateButtons = function () { 657 (this.nodes.$prev && 658 this.nodes.$prev[(this.slides.index < 1 ? 'add' : 'remove') + 'Class']( 659 e.disabled 660 ), 661 this.nodes.$next && 662 this.nodes.$next[ 663 (this.slides.index >= this.slides.total - this.slides.visible 664 ? 'add' 665 : 'remove') + 'Class' 666 ](e.disabled)); 667 }), 668 (t[d].defaults[l] = { 669 prev: !t[d].support.touch, 670 next: !t[d].support.touch, 671 }), 672 t[d].addons.push(l), 673 t[d].ui.push('prev'), 674 t[d].ui.push('next'), 675 t[d].ui.push('close')); 676 })(jQuery), 677 (function (t) { 678 var i, 679 s, 680 e, 681 n, 682 o, 683 a = 'tosrus', 684 r = 'caption', 685 d = !1; 686 ((t[a].prototype['_addon_' + r] = function () { 687 d || 688 ((i = t[a]._c), 689 (s = t[a]._d), 690 (e = t[a]._e), 691 (n = t[a]._f), 692 (o = t[a]._g), 693 i.add('caption uibg'), 694 s.add('caption'), 695 (d = !0)); 696 var l = this, 697 p = this.opts[r]; 698 if (p.add) { 699 ((p.attributes = p.attributes || []), 700 'string' == typeof p.target && (p.target = t(p.target)), 701 p.target instanceof t 702 ? (this.nodes.$capt = p.target) 703 : ((this.nodes.$capt = t('<div class="' + i.caption + '" />').appendTo( 704 this.nodes.$wrpr 705 )), 706 this.nodes.$uibg || 707 (this.nodes.$uibg = t('<div class="' + i.uibg + '" />').prependTo( 708 this.nodes.$wrpr 709 )))); 710 for (var c = 0, h = this.slides.visible; h > c; c++) 711 t('<div class="' + i.caption + '-' + c + '" />') 712 .css( 713 'width', 714 this.opts.slides.width + (this.slides.widthPercentage ? '%' : 'px') 715 ) 716 .appendTo(this.nodes.$capt); 717 (this.nodes.$slides.each(function (i) { 718 var e = t(this), 719 n = l.vars.fixed ? e.data(s.anchor) : e.children(); 720 e.data(s.caption, ''); 721 for (var o = 0, a = p.attributes.length; a > o; o++) { 722 var r = n.attr(p.attributes[o]); 723 if (r && r.length) { 724 e.data(s.caption, r); 725 break; 726 } 727 } 728 }), 729 this.nodes.$wrpr.on(e.sliding, function (t, i, e) { 730 for (var n = 0, o = l.slides.visible; o > n; n++) 731 l.nodes.$capt 732 .children() 733 .eq(n) 734 .html( 735 window.RLG && window.RLG.sanitizeHtml 736 ? window.RLG.sanitizeHtml( 737 l.nodes.$sldr 738 .children() 739 .eq(l.slides.index + n) 740 .data(s.caption) || '' 741 ) 742 : l.nodes.$sldr 743 .children() 744 .eq(l.slides.index + n) 745 .data(s.caption) || '' 746 ); 747 })); 748 } 749 }), 750 (t[a].defaults[r] = { 751 add: !1, 752 target: null, 753 attributes: ['title', 'alt', 'rel'], 754 }), 755 t[a].addons.push(r), 756 t[a].ui.push('caption')); 757 })(jQuery), 758 (function (t) { 759 var i, 760 s, 761 e, 762 n, 763 o, 764 a = 'tosrus', 765 r = 'drag', 766 d = !1; 767 ((t[a].prototype['_addon_' + r] = function () { 768 d || 769 ((i = t[a]._c), 770 (s = t[a]._d), 771 (e = t[a]._e), 772 (n = t[a]._f), 773 (o = t[a]._g), 774 (d = !0)); 775 var l = this; 776 if (this.opts[r] && 'slide' == this.opts.effect) { 777 if (this.nodes.$slides.length > 1) { 778 var p = 0, 779 c = !1, 780 h = !1, 781 u = null, 782 f = null, 783 v = 0; 784 785 this.nodes.$wrpr.on( 786 'touchstart pointerdown MSPointerDown mousedown', 787 function (t) { 788 var e = t.originalEvent.touches 789 ? t.originalEvent.touches[0] 790 : t.originalEvent; 791 ((u = e.pageX), 792 (f = e.pageY), 793 (c = !1), 794 (h = !1), 795 (v = new Date().getTime())); 796 } 797 ); 798 799 this.nodes.$wrpr.on( 800 'touchmove pointermove MSPointerMove mousemove', 801 function (t) { 802 if (u !== null) { 803 var e = t.originalEvent.touches 804 ? t.originalEvent.touches[0] 805 : t.originalEvent; 806 var deltaY = e.pageY - f; 807 p = e.pageX - u; 808 809 if (typeof c === 'undefined' || c === !1) { 810 c = Math.abs(p) > Math.abs(deltaY) ? 'horizontal' : 'vertical'; 811 } 812 813 if (c == 'horizontal') { 814 t.preventDefault(); 815 l.nodes.$sldr.addClass(i.noanimation); 816 817 var r = p; 818 if ( 819 (p < 0 && 820 l.slides.index + l.slides.visible >= l.slides.total) || 821 (p >
821 0 && 0 == l.slides.index) 822 ) { 823 r /= 2.5; 824 } 825 l.nodes.$sldr.css('margin-left', Math.round(r)); 826 } 827 } 828 } 829 ); 830 831 this.nodes.$wrpr.on( 832 'touchend touchcancel pointerup pointercancel MSPointerUp MSPointerCancel mouseup mouseleave', 833 function (t) { 834 if (u !== null && c == 'horizontal') { 835 l.nodes.$sldr.removeClass(i.noanimation).addClass(i.fastanimation); 836 n.transitionend( 837 l.nodes.$sldr, 838 function () { 839 l.nodes.$sldr.removeClass(i.fastanimation); 840 }, 841 l.conf.transitionDuration / 2 842 ); 843 l.nodes.$sldr.css('margin-left', 0); 844 845 var r = new Date().getTime() - v; 846 if (r < 300 && Math.abs(p) > 20) { 847 h = !0; 848 } 849 850 if (p < 0 || p > 0) { 851 if (h) o = l.slides.visible; 852 else { 853 var s = l.nodes.$slides.first().width(); 854 o = Math.floor((Math.abs(p) + s / 2) / s); 855 } 856 if (o > 0) { 857 l.nodes.$wrpr.trigger(e[p < 0 ? 'next' : 'prev'], [o]); 858 } 859 } 860 } 861 ((u = null), (c = !1), (h = !1)); 862 } 863 ); 864 } 865 } 866 }), 867 (t[a].defaults[r] = t[a].support.touch), 868 t[a].addons.push(r)); 869 })(jQuery), 870 (function (t) { 871 var i, 872 s, 873 e, 874 n, 875 o, 876 a = 'tosrus', 877 r = 'keys', 878 d = !1; 879 ((t[a].prototype['_addon_' + r] = function () { 880 d || 881 ((i = t[a]._c), 882 (s = t[a]._d), 883 (e = t[a]._e), 884 (n = t[a]._f), 885 (o = t[a]._g), 886 e.add('keyup'), 887 (d = !0)); 888 var l = this, 889 p = this.opts[r]; 890 if ( 891 ('boolean' == typeof p && 892 p && 893 (p = { 894 prev: !0, 895 next: !0, 896 close: !0, 897 }), 898 t.isPlainObject(p)) 899 ) { 900 for (var c in t[a].constants[r]) 901 'boolean' == typeof p[c] && p[c] && (p[c] = t[a].constants[r][c]); 902 (this.nodes.$slides.length < 2 && ((p.prev = !1), (p.next = !1)), 903 t(document).on(e.keyup, function (t) { 904 if (l.vars.opened) { 905 var i = !1; 906 switch (t.keyCode) { 907 case p.prev: 908 i = e.prev; 909 break; 910 case p.next: 911 i = e.next; 912 break; 913 case p.close: 914 i = e.close; 915 } 916 i && 917 (t.preventDefault(), t.stopPropagation(), l.nodes.$wrpr.trigger(i)); 918 } 919 })); 920 } 921 }), 922 (t[a].defaults[r] = !1), 923 (t[a].constants[r] = { 924 prev: 37, 925 next: 39, 926 close: 27, 927 }), 928 t[a].addons.push(r)); 929 })(jQuery), 930 (function (t) { 931 var i, 932 s, 933 e, 934 n, 935 o, 936 a = 'tosrus', 937 r = 'pagination', 938 d = !1; 939 940 function getAllowedMediaUrl(url) { 941 if (window.RLG && window.RLG.isAllowedMediaUrl) { 942 return window.RLG.isAllowedMediaUrl(url) ? url : ''; 943 } 944 945 if ( 946 window.RLG && 947 window.RLG.sanitizeConfig && 948 window.RLG.sanitizeConfig.ALLOWED_URI_REGEXP && 949 !window.RLG.sanitizeConfig.ALLOWED_URI_REGEXP.test(url) 950 ) { 951 return ''; 952 } 953 954 return url; 955 } 956 957 function buildThumbnailAnchor(url) { 958 var anchor = t('<a href="#"></a>'); 959 960 if (url) anchor.css('background-image', 'url("' + url + '")'); 961 962 return anchor; 963 } 964 ((t[a].prototype['_addon_' + r] = function () { 965 d || 966 ((i = t[a]._c), 967 (s = t[a]._d), 968 (e = t[a]._e), 969 (n = t[a]._f), 970 (o = t[a]._g), 971 i.add('pagination selected uibg bullets thumbnails'), 972 (d = !0)); 973 var l = this, 974 p = this.opts[r]; 975 if ((this.nodes.$slides.length < 2 && (p.add = !1), p.add)) { 976 if ( 977 ('string' == typeof p.target && (p.target = t(p.target)), 978 p.target instanceof t 979 ? (this.nodes.$pagr = p.target) 980 : ((this.nodes.$pagr = t( 981 '<div class="' + i.pagination + ' ' + i[p.type] + '" />' 982 ).appendTo(this.nodes.$wrpr)), 983 this.nodes.$uibg || 984 (this.nodes.$uibg = t('<div class="' + i.uibg + '" />').prependTo( 985 this.nodes.$wrpr 986 ))), 987 'function' != typeof p.anchorBuilder) 988 ) 989 switch (p.type) { 990 case 'thumbnails': 991 this.vars.fixed 992 ? (p.anchorBuilder = function (i) { 993 return buildThumbnailAnchor( 994 getAllowedMediaUrl(t(this).data(s.anchor).attr('href')) 995 ); 996 }) 997 : (p.anchorBuilder = function (i) { 998 return buildThumbnailAnchor( 999 getAllowedMediaUrl(t(this).find('img').attr('src')) 1000 ); 1001 }); 1002 break; 1003 case 'bullets': 1004 default: 1005 p.anchorBuilder = function (t) { 1006 return '<a href="#"></a>'; 1007 }; 1008 } 1009 (this.nodes.$slides.each(function (i) { 1010 t(p.anchorBuilder.call(this, i + 1)) 1011 .appendTo(l.nodes.$pagr) 1012 .on(e.click, function (t) { 1013 (t.preventDefault(), 1014 t.stopPropagation(), 1015 l.nodes.$wrpr.trigger(e.slideTo, [i])); 1016 }); 1017 }), 1018 this.updatePagination(), 1019 this.nodes.$wrpr.on(e.sliding, function (t, i, s) { 1020 l.updatePagination(); 1021 })); 1022 } 1023 }), 1024 (t[a].prototype.updatePagination = function () { 1025 this.nodes.$pagr && 1026 this.nodes.$pagr 1027 .children() 1028 .removeClass(i.selected) 1029 .eq(this.slides.index) 1030 .addClass(i.selected); 1031 }), 1032 (t[a].defaults[r] = { 1033 add: !1, 1034 type: 'bullets', 1035 target: null, 1036 anchorBuilder: null, 1037 }), 1038 t[a].addons.push(r), 1039 t[a].ui.push('pagination'), 1040 t[a].ui.push('bullets'), 1041 t[a].ui.push('thumbnails')); 1042 })(jQuery), 1043 (function (t) { 1044 var i = 'tosrus', 1045 s = 'html'; 1046 ((t[i].media[s] = { 1047 filterAnchors: function (i) { 1048 var s = i.attr('href'); 1049 return '#' == s.slice(0, 1) && t(s).is('div'); 1050 }, 1051 initAnchors: function (s, e) { 1052 var content = t(e).html(); // Get inner HTML 1053 var sanitized = 1054 window.RLG && window.RLG.sanitizeHtml 1055 ? window.RLG.sanitizeHtml(content) 1056 : content; // Fallback if RLG unavailable 1057 t('<div class="' + t[i]._c('html') + '" />') 1058 .html(sanitized) 1059 .appendTo(s); // Use sanitized HTML 1060 s.removeClass(t[i]._c.loading).trigger(t[i]._e.loaded); 1061 }, 1062 filterSlides: function (t) { 1063 return t.is('div'); 1064 }, 1065 initSlides: function (t) {}, 1066 }), 1067 (t[i].defaults.media[s] = {})); 1068 })(jQuery), 1069 (function (t) { 1070 var i = 'tosrus', 1071 s = 'image'; 1072 1073 function getAllowedMediaUrl(url) { 1074 if (window.RLG && window.RLG.isAllowedMediaUrl) { 1075 return window.RLG.isAllowedMediaUrl(url) ? url : ''; 1076 } 1077 1078 if ( 1079 window.RLG && 1080 window.RLG.sanitizeConfig && 1081 window.RLG.sanitizeConfig.ALLOWED_URI_REGEXP && 1082 !window.RLG.sanitizeConfig.ALLOWED_URI_REGEXP.test(url) 1083 ) { 1084 return ''; 1085 } 1086 1087 return url; 1088 } 1089 ((t[i].media[s] = { 1090 filterAnchors: function (i) { 1091 return ( 1092 t.inArray(i.attr('href').toLowerCase().split('.').pop().split('?')[0], [ 1093 'jpg', 1094 'jpe', 1095 'jpeg', 1096 'gif', 1097 'png', 1098 'webp', 1099 ]) > -1 1100 ); 1101 }, 1102 initAnchors: function (s, e) { 1103 if (!getAllowedMediaUrl(e)) { 1104 return; // Skip invalid URIs 1105 } 1106 t('<img border="0" />') 1107 .on(t[i]._e.load, function (e) { 1108 (e.stopPropagation(), 1109 s.removeClass(t[i]._c.loading).trigger(t[i]._e.loaded)); 1110 }) 1111 .appendTo(s) 1112 .attr('src', e); 1113 }, 1114 filterSlides: function (t) { 1115 return t.is('img'); 1116 }, 1117 initSlides: function (t) {}, 1118 }), 1119 (t[i].defaults.media[s] = {})); 1120 })(jQuery), 1121 (function (t) { 1122 function i(i) { 1123 function p() { 1124 c.length && (c.attr('src', ''), c.attr('src', u)); 1125 } 1126 l || 1127 ((s = t[r]._c), 1128 (e = t[r]._d), 1129 (n = t[r]._e), 1130 (o = t[r]._f), 1131 (a = t[r]._g), 1132 e.add('ratio maxWidth maxHeight'), 1133 (l = !0)); 1134 var c = i.children(),
1135 h = i.data(t[r]._d.anchor) || t(), 1136 u = c.attr('src'), 1137 f = h.data(e.ratio) || this.opts[d].ratio, 1138 v = h.data(e.maxWidth) || this.opts[d].maxWidth, 1139 g = h.data(e.maxHeight) || this.opts[d].maxHeight; 1140 (i 1141 .removeClass(s.loading) 1142 .trigger(n.loaded) 1143 .on(n.loading, function (t) { 1144 o.resizeRatio(c, i, v, g, f); 1145 }), 1146 this.nodes.$wrpr 1147 .on(n.sliding, function (t) { 1148 p(); 1149 }) 1150 .on(n.opening, function (t) { 1151 o.resizeRatio(c, i, v, g, f); 1152 }) 1153 .on(n.closing, function (t) { 1154 p(); 1155 }), 1156 a.$wndw.on(n.resize, function (t) { 1157 o.resizeRatio(c, i, v, g, f); 1158 })); 1159 } 1160 var s, 1161 e, 1162 n, 1163 o, 1164 a, 1165 r = 'tosrus', 1166 d = 'vimeo', 1167 l = !1; 1168 ((t[r].media[d] = { 1169 filterAnchors: function (t) { 1170 return t.attr('href').toLowerCase().indexOf('vimeo.com/') > -1; 1171 }, 1172 initAnchors: function (s, e) { 1173 var n = this._uniqueID(); 1174 var videoId = e.split('vimeo.com/')[1].split('?')[0].replace(/\D/g, ''); 1175 1176 if (!videoId) { 1177 return; 1178 } 1179 1180 var url = 'https://player.vimeo.com/video/' + videoId + '?api=1&player_id=' + n; 1181 if ( 1182 window.RLG && 1183 window.RLG.isAllowedEmbedUrl && 1184 !window.RLG.isAllowedEmbedUrl(url) 1185 ) { 1186 return; // Skip disallowed embeds 1187 } 1188 t('<iframe/>', { 1189 id: n, 1190 src: url, 1191 frameborder: 0, 1192 allowfullscreen: 'allowfullscreen', 1193 }).appendTo(s); 1194 i.call(this, s); 1195 }, 1196 filterSlides: function (t) { 1197 return ( 1198 !(!t.is('iframe') || !t.attr('src')) && 1199 t.attr('src').toLowerCase().indexOf('vimeo.com/video/') > -1 1200 ); 1201 }, 1202 initSlides: function (t) { 1203 i.call(this, t); 1204 }, 1205 }), 1206 (t[r].defaults.media[d] = {}), 1207 (t[r].defaults[d] = { 1208 ratio: 16 / 9, 1209 maxWidth: !1, 1210 maxHeight: !1, 1211 })); 1212 })(jQuery), 1213 (function (t) { 1214 function i(i) { 1215 function p(t) { 1216 c.length && 1217 c[0].contentWindow.postMessage( 1218 '{ "event": "command", "func": "' + t + 'Video" }', 1219 '*' 1220 ); 1221 } 1222 l || 1223 ((s = t[r]._c), 1224 (e = t[r]._d), 1225 (n = t[r]._e), 1226 (o = t[r]._f), 1227 (a = t[r]._g), 1228 e.add('ratio maxWidth maxHeight'), 1229 (l = !0)); 1230 var c = i.children(), 1231 h = i.data(t[r]._d.anchor) || t(), 1232 u = h.data(e.ratio) || this.opts[d].ratio, 1233 f = h.data(e.maxWidth) || this.opts[d].maxWidth, 1234 v = h.data(e.maxHeight) || this.opts[d].maxHeight; 1235 (i 1236 .removeClass(s.loading) 1237 .trigger(n.loaded) 1238 .on(n.loading, function (t) { 1239 o.resizeRatio(c, i, f, v, u); 1240 }), 1241 this.nodes.$wrpr 1242 .on(n.sliding, function (t) { 1243 p('pause'); 1244 }) 1245 .on(n.opening, function (t) { 1246 o.resizeRatio(c, i, f, v, u); 1247 }) 1248 .on(n.closing, function (t) { 1249 p('stop'); 1250 }), 1251 a.$wndw.on(n.resize, function (t) { 1252 o.resizeRatio(c, i, f, v, u); 1253 })); 1254 } 1255 var s, 1256 e, 1257 n, 1258 o, 1259 a, 1260 r = 'tosrus', 1261 d = 'youtube', 1262 l = !1; 1263 1264 function getAllowedMediaUrl(url) { 1265 if (window.RLG && window.RLG.isAllowedMediaUrl) { 1266 return window.RLG.isAllowedMediaUrl(url) ? url : ''; 1267 } 1268 1269 if ( 1270 window.RLG && 1271 window.RLG.sanitizeConfig && 1272 window.RLG.sanitizeConfig.ALLOWED_URI_REGEXP && 1273 !window.RLG.sanitizeConfig.ALLOWED_URI_REGEXP.test(url) 1274 ) { 1275 return ''; 1276 } 1277 1278 return url; 1279 } 1280 ((t[r].media[d] = { 1281 filterAnchors: function (t) { 1282 return t.attr('href').toLowerCase().indexOf('youtube.com/watch?v=') > -1; 1283 }, 1284 initAnchors: function (s, e) { 1285 var videoId = e.split('?v=')[1].split('&')[0].replace(/[^a-zA-Z0-9_-]/g, ''); 1286 1287 if (!videoId) { 1288 return; 1289 } 1290 1291 if (this.opts[d].imageLink) { 1292 var thumbnailUrl = 'https://img.youtube.com/vi/' + videoId + '/0.jpg'; 1293 var watchUrl = 'https://www.youtube.com/watch?v=' + videoId; 1294 if ( 1295 getAllowedMediaUrl(thumbnailUrl) && 1296 !(window.RLG && window.RLG.isAllowedEmbedUrl && !window.RLG.isAllowedEmbedUrl(watchUrl)) 1297 ) { 1298 t('<a/>', { 1299 href: watchUrl, 1300 class: t[r]._c('play'), 1301 target: '_blank', 1302 rel: 'noopener noreferrer', 1303 }).appendTo(s); 1304 t('<img border="0" />') 1305 .on(t[r]._e.load, function (i) { 1306 (i.stopPropagation(), 1307 s.removeClass(t[r]._c.loading).trigger(t[r]._e.loaded)); 1308 }) 1309 .appendTo(s) 1310 .attr('src', thumbnailUrl); 1311 } 1312 } else { 1313 var url = 'https://www.youtube.com/embed/' + videoId + '?enablejsapi=1'; 1314 if ( 1315 !( 1316 window.RLG && 1317 window.RLG.isAllowedEmbedUrl && 1318 !window.RLG.isAllowedEmbedUrl(url) 1319 ) 1320 ) { 1321 t('<iframe/>', { 1322 src: url, 1323 frameborder: 0, 1324 allowfullscreen: 'allowfullscreen', 1325 }).appendTo(s); 1326 i.call(this, s); 1327 } 1328 } 1329 }, 1330 filterSlides: function (t) { 1331 return ( 1332 !(!t.is('iframe') || !t.attr('src')) && 1333 t.attr('src').toLowerCase().indexOf('youtube.com/embed/') > -1 1334 ); 1335 }, 1336 initSlides: function (t) { 1337 i.call(this, t); 1338 }, 1339 }), 1340 (t[r].defaults.media[d] = {}), 1341 (t[r].defaults[d] = { 1342 ratio: 16 / 9, 1343 maxWidth: !1, 1344 maxHeight: !1, 1345 imageLink: t[r].support.touch, 1346 })); 1347 })(jQuery));
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.