1/** 2 * Tabify 3 */ 4;(function ($) { 5 6 'use strict'; 7 8 $.fn.tabify = function () { 9 return this.each(function () { 10 var tabs = $(this); 11 $('ul.tab-nav li:first', tabs).addClass('current'); 12 $('div:first', tabs).show(); 13 var tabLinks = $('ul.tab-nav li', tabs); 14 $(tabLinks).click(function () { 15 $(this).addClass('current').siblings().removeClass('current'); 16 $('.tab-content', tabs).hide(); 17 var activeTab = $(this).find('a').attr('href'); 18 $(activeTab).show(); 19 $( 'body' ).trigger( 'tf_tabs_switch', [ activeTab, tabs ] ); 20 if ( $(activeTab).find('.shortcode.map').length > 0 ) { 21 $(activeTab).find('.shortcode.map').each(function(){ 22 var mapInit = $(this).find('.map-container').data('map'), 23 center = mapInit.getCenter(); 24 google.maps.event.trigger(mapInit, 'resize'); 25 mapInit.setCenter(center); 26 }); 27 } 28 return false; 29 }); 30 $('.tab-content', tabs).find('a[href^="#tab-"]').on('click', function(event){ 31 event.preventDefault(); 32 var dest = $(this).prop('hash').replace('#tab-', ''), 33 contentID = $('.tab-content', tabs).eq( dest - 1 ).prop('id'); 34 if ( $('a[href^="#'+ contentID +'"]').length > 0 ) { 35 $('a[href^="#'+ contentID +'"]').trigger('click'); 36 } 37 }); 38 }); 39 }; 40 41 // $('img.photo',this).themifyBuilderImagesLoaded(myFunction) 42 // execute a callback when all images have loaded. 43 // needed because .load() doesn't work on cached images 44 $.fn.themifyBuilderImagesLoaded = function(callback){ 45 var elems = this.filter('img'), 46 len = elems.length, 47 blank = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw=="; 48 49 elems.bind('load.imgloaded',function(){ 50 if (--len <= 0 && this.src !== blank){ 51 elems.unbind('load.imgloaded'); 52 callback.call(elems,this); 53 } 54 }).each(function(){ 55 // cached images don't fire load sometimes, so we reset src. 56 if (this.complete || this.complete === undefined){ 57 var src = this.src; 58 // webkit hack from http://groups.google.com/group/jquery-dev/browse_thread/thread/eee6ab7b2da50e1f 59 // data uri bypasses webkit log warning (thx doug jones) 60 this.src = blank; 61 this.src = src; 62 } 63 }); 64 65 return this; 66 }; 67})(jQuery); 68 69/* 70 * Parallax Scrolling Builder 71 */ 72(function( $ ){ 73 74 'use strict'; 75 76 var $window = $(window); 77 var windowHeight = $window.height(); 78 79 $window.resize(function () { 80 windowHeight = $window.height(); 81 }); 82 83 $.fn.builderParallax = function(xpos, speedFactor, outerHeight) { 84 var $this = $(this); 85 var getHeight; 86 var firstTop; 87 var paddingTop = 0, resizeId; 88 89 //get the starting position of each element to have parallax applied to it 90 $this.each(function(){ 91 firstTop = $this.offset().top; 92 }); 93 $window.resize(function(){ 94 clearTimeout(resizeId); 95 resizeId = setTimeout(function(){ 96 $this.each(function(){ 97 firstTop = $this.offset().top; 98 }); 99 }, 500); 100 }); 101 102 if (outerHeight) { 103 getHeight = function(jqo) { 104 return jqo.outerHeight(true); 105 }; 106 } else { 107 getHeight = function(jqo) { 108 return jqo.height(); 109 }; 110 } 111 112 // setup defaults if arguments aren't specified 113 if (arguments.length < 1 || xpos === null) xpos = "50%"; 114 if (arguments.length < 2 || speedFactor === null) speedFactor = 0.1; 115 if (arguments.length < 3 || outerHeight === null) outerHeight = true; 116 117 // function to be called whenever the window is scrolled or resized 118 function update(){ 119 var pos = $window.scrollTop(); 120 121 $this.each(function(){ 122 var $element = $(this); 123 var top = $element.offset().top; 124 var height = getHeight($element); 125 126 // Check if totally above or totally below viewport 127 if (top + height < pos || top > pos + windowHeight) { 128 return; 129 } 130 131 $this.css('backgroundPosition', xpos + " " + Math.round((firstTop - pos) * speedFactor) + "px"); 132 }); 133 } 134 135 $window.bind('scroll', update).resize(update); 136 update(); 137 }; 138})(jQuery); 139 140/*! WOW - v1.0.2 - 2014-10-28 141* Copyright (c) 2014 Matthieu Aussaguel; Licensed MIT */ 142(function() { 143 var MutationObserver, Util, WeakMap, getComputedStyle, getComputedStyleRX, 144 __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }, 145 __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; 146 147 Util = (function() { 148 function Util() {} 149 150 Util.prototype.extend = function(custom, defaults) { 151 var key, value; 152 for (key in defaults) { 153 value = defaults[key]; 154 if (custom[key] == null) { 155 custom[key] = value; 156 } 157 } 158 return custom; 159 }; 160 161 Util.prototype.isMobile = function(agent) { 162 return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(agent); 163 }; 164 165 Util.prototype.addEvent = function(elem, event, fn) { 166 if (elem.addEventListener != null) { 167 return elem.addEventListener(event, fn, false); 168 } else if (elem.attachEvent != null) { 169 return elem.attachEvent("on" + event, fn); 170 } else { 171 return elem[event] = fn; 172 } 173 }; 174 175 Util.prototype.removeEvent = function(elem, event, fn) { 176 if (elem.removeEventListener != null) { 177 return elem.removeEventListener(event, fn, false); 178 } else if (elem.detachEvent != null) { 179 return elem.detachEvent("on" + event, fn); 180 } else { 181 return delete elem[event]; 182 } 183 }; 184
vendor: 10,549 bytes, lines 185-599
185 Util.prototype.innerHeight = function() { 186 if ('innerHeight' in window) { 187 return window.innerHeight; 188 } else { 189 return document.documentElement.clientHeight; 190 } 191 }; 192 193 return Util; 194 195 })(); 196 197 WeakMap = this.WeakMap || this.MozWeakMap || (WeakMap = (function() { 198 function WeakMap() { 199 this.keys = []; 200 this.values = []; 201 } 202 203 WeakMap.prototype.get = function(key) { 204 var i, item, _i, _len, _ref; 205 _ref = this.keys; 206 for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) { 207 item = _ref[i]; 208 if (item === key) { 209 return this.values[i]; 210 } 211 } 212 }; 213 214 WeakMap.prototype.set = function(key, value) { 215 var i, item, _i, _len, _ref; 216 _ref = this.keys; 217 for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) { 218 item = _ref[i]; 219 if (item === key) { 220 this.values[i] = value; 221 return; 222 } 223 } 224 this.keys.push(key); 225 return this.values.push(value); 226 }; 227 228 return WeakMap; 229 230 })()); 231 232 MutationObserver = this.MutationObserver || this.WebkitMutationObserver || this.MozMutationObserver || (MutationObserver = (function() { 233 function MutationObserver() { 234 if (typeof console !== "undefined" && console !== null) { 235 console.warn('MutationObserver is not supported by your browser.'); 236 } 237 if (typeof console !== "undefined" && console !== null) { 238 console.warn('WOW.js cannot detect dom mutations, please call .sync() after loading new content.'); 239 } 240 } 241 242 MutationObserver.notSupported = true; 243 244 MutationObserver.prototype.observe = function() {}; 245 246 return MutationObserver; 247 248 })()); 249 250 getComputedStyle = this.getComputedStyle || function(el, pseudo) { 251 this.getPropertyValue = function(prop) { 252 var _ref; 253 if (prop === 'float') { 254 prop = 'styleFloat'; 255 } 256 if (getComputedStyleRX.test(prop)) { 257 prop.replace(getComputedStyleRX, function(_, char) { 258 return char.toUpperCase(); 259 }); 260 } 261 return ((_ref = el.currentStyle) != null ? _ref[prop] : void 0) || null; 262 }; 263 return this; 264 }; 265 266 getComputedStyleRX = /(\-([a-z]){1})/g; 267 268 this.WOW = (function() { 269 WOW.prototype.defaults = { 270 boxClass: 'wow', 271 animateClass: 'animated', 272 offset: 0, 273 mobile: true, 274 live: true 275 }; 276 277 function WOW(options) { 278 if (options == null) { 279 options = {}; 280 } 281 this.scrollCallback = __bind(this.scrollCallback, this); 282 this.scrollHandler = __bind(this.scrollHandler, this); 283 this.start = __bind(this.start, this); 284 this.scrolled = true; 285 this.config = this.util().extend(options, this.defaults); 286 this.animationNameCache = new WeakMap(); 287 } 288 289 WOW.prototype.init = function() { 290 var _ref; 291 this.element = window.document.documentElement; 292 if ((_ref = document.readyState) === "interactive" || _ref === "complete") { 293 this.start(); 294 } else { 295 this.util().addEvent(document, 'DOMContentLoaded', this.start); 296 } 297 return this.finished = []; 298 }; 299 300 WOW.prototype.start = function() { 301 var box, _i, _len, _ref; 302 this.stopped = false; 303 this.boxes = (function() { 304 var _i, _len, _ref, _results; 305 _ref = this.element.querySelectorAll("." + this.config.boxClass); 306 _results = []; 307 for (_i = 0, _len = _ref.length; _i < _len; _i++) { 308 box = _ref[_i]; 309 _results.push(box); 310 } 311 return _results; 312 }).call(this); 313 this.all = (function() { 314 var _i, _len, _ref, _results; 315 _ref = this.boxes; 316 _results = []; 317 for (_i = 0, _len = _ref.length; _i < _len; _i++) { 318 box = _ref[_i]; 319 _results.push(box); 320 } 321 return _results; 322 }).call(this); 323 if (this.boxes.length) { 324 if (this.disabled()) { 325 this.resetStyle(); 326 } else { 327 _ref = this.boxes; 328 for (_i = 0, _len = _ref.length; _i < _len; _i++) { 329 box = _ref[_i]; 330 this.applyStyle(box, true); 331 } 332 } 333 } 334 if (!this.disabled()) { 335 this.util().addEvent(window, 'scroll', this.scrollHandler); 336 this.util().addEvent(window, 'resize', this.scrollHandler); 337 this.interval = setInterval(this.scrollCallback, 50); 338 } 339 if (this.config.live) { 340 return new MutationObserver((function(_this) { 341 return function(records) { 342 var node, record, _j, _len1, _results; 343 _results = []; 344 for (_j = 0, _len1 = records.length; _j < _len1; _j++) { 345 record = records[_j]; 346 _results.push((function() { 347 var _k, _len2, _ref1, _results1; 348 _ref1 = record.addedNodes || []; 349 _results1 = []; 350 for (_k = 0, _len2 = _ref1.length; _k < _len2; _k++) { 351 node = _ref1[_k]; 352 _results1.push(this.doSync(node)); 353 } 354 return _results1; 355 }).call(_this)); 356 } 357 return _results; 358 }; 359 })(this)).observe(document.body, { 360 childList: true, 361 subtree: true 362 }); 363 } 364 }; 365 366 WOW.prototype.stop = function() { 367 this.stopped = true; 368 this.util().removeEvent(window, 'scroll', this.scrollHandler); 369 this.util().removeEvent(window, 'resize', this.scrollHandler); 370 if (this.interval != null) { 371 return clearInterval(this.interval); 372 } 373 }; 374 375 WOW.prototype.sync = function(element) { 376 if (MutationObserver.notSupported) { 377 return this.doSync(this.element); 378 } 379 }; 380 381 WOW.prototype.doSync = function(element) { 382 var box, _i, _len, _ref, _results; 383 if (element == null) { 384 element = this.element; 385 } 386 if (element.nodeType !== 1) { 387 return; 388 } 389 element = element.parentNode || element; 390 _ref = element.querySelectorAll("." + this.config.boxClass); 391 _results = []; 392 for (_i = 0, _len = _ref.length; _i < _len; _i++) { 393 box = _ref[_i]; 394 if (__indexOf.call(this.all, box) < 0) { 395 this.boxes.push(box); 396 this.all.push(box); 397 if (this.stopped || this.disabled()) { 398 this.resetStyle(); 399 } else { 400 this.applyStyle(box, true); 401 } 402 _results.push(this.scrolled = true); 403 } else { 404 _results.push(void 0); 405 } 406 } 407 return _results; 408 }; 409 410 WOW.prototype.show = function(box) { 411 this.applyStyle(box); 412 return box.className = "" + box.className + " " + this.config.animateClass; 413 }; 414 415 WOW.prototype.applyStyle = function(box, hidden) { 416 var delay, duration, iteration; 417 duration = box.getAttribute('data-wow-duration'); 418 delay = box.getAttribute('data-wow-delay'); 419 iteration = box.getAttribute('data-wow-iteration'); 420 return this.animate((function(_this) { 421 return function() { 422 return _this.customStyle(box, hidden, duration, delay, iteration); 423 }; 424 })(this)); 425 }; 426 427 WOW.prototype.animate = (function() { 428 if ('requestAnimationFrame' in window) { 429 return function(callback) { 430 return window.requestAnimationFrame(callback); 431 }; 432 } else { 433 return function(callback) { 434 return callback(); 435 }; 436 } 437 })(); 438 439 WOW.prototype.resetStyle = function() { 440 var box, _i, _len, _ref, _results; 441 _ref = this.boxes; 442 _results = []; 443 for (_i = 0, _len = _ref.length; _i < _len; _i++) { 444 box = _ref[_i]; 445 _results.push(box.style.visibility = 'visible'); 446 } 447 return _results; 448 }; 449 450 WOW.prototype.customStyle = function(box, hidden, duration, delay, iteration) { 451 if (hidden) { 452 this.cacheAnimationName(box); 453 } 454 box.style.visibility = hidden ? 'hidden' : 'visible'; 455 if (duration) { 456 this.vendorSet(box.style, { 457 animationDuration: duration 458 }); 459 } 460 if (delay) { 461 this.vendorSet(box.style, { 462 animationDelay: delay 463 }); 464 } 465 if (iteration) { 466 this.vendorSet(box.style, { 467 animationIterationCount: iteration 468 }); 469 } 470 this.vendorSet(box.style, { 471 animationName: hidden ? 'none' : this.cachedAnimationName(box) 472 }); 473 return box; 474 }; 475 476 WOW.prototype.vendors = ["moz", "webkit"]; 477 478 WOW.prototype.vendorSet = function(elem, properties) { 479 var name, value, vendor, _results; 480 _results = []; 481 for (name in properties) { 482 value = properties[name]; 483 elem["" + name] = value; 484 _results.push((function() { 485 var _i, _len, _ref, _results1; 486 _ref = this.vendors; 487 _results1 = []; 488 for (_i = 0, _len = _ref.length; _i < _len; _i++) { 489 vendor = _ref[_i]; 490 _results1.push(elem["" + vendor + (name.charAt(0).toUpperCase()) + (name.substr(1))] = value); 491 } 492 return _results1; 493 }).call(this)); 494 } 495 return _results; 496 }; 497 498 WOW.prototype.vendorCSS = function(elem, property) { 499 var result, style, vendor, _i, _len, _ref; 500 style = getComputedStyle(elem); 501 result = style.getPropertyCSSValue(property); 502 _ref = this.vendors; 503 for (_i = 0, _len = _ref.length; _i < _len; _i++) { 504 vendor = _ref[_i]; 505 result = result || style.getPropertyCSSValue("-" + vendor + "-" + property); 506 } 507 return result; 508 }; 509 510 WOW.prototype.animationName = function(box) { 511 var animationName; 512 try { 513 animationName = this.vendorCSS(box, 'animation-name').cssText; 514 } catch (_error) { 515 animationName = getComputedStyle(box).getPropertyValue('animation-name'); 516 } 517 if (animationName === 'none') { 518 return ''; 519 } else { 520 return animationName; 521 } 522 }; 523 524 WOW.prototype.cacheAnimationName = function(box) { 525 return this.animationNameCache.set(box, this.animationName(box)); 526 }; 527 528 WOW.prototype.cachedAnimationName = function(box) { 529 return this.animationNameCache.get(box); 530 }; 531 532 WOW.prototype.scrollHandler = function() { 533 return this.scrolled = true; 534 }; 535 536 WOW.prototype.scrollCallback = function() { 537 var box; 538 if (this.scrolled) { 539 this.scrolled = false; 540 this.boxes = (function() { 541 var _i, _len, _ref, _results; 542 _ref = this.boxes; 543 _results = []; 544 for (_i = 0, _len = _ref.length; _i < _len; _i++) { 545 box = _ref[_i]; 546 if (!(box)) { 547 continue; 548 } 549 if (this.isVisible(box)) { 550 this.show(box); 551 continue; 552 } 553 _results.push(box); 554 } 555 return _results; 556 }).call(this); 557 if (!(this.boxes.length || this.config.live)) { 558 return this.stop(); 559 } 560 } 561 }; 562 563 WOW.prototype.offsetTop = function(element) { 564 var top; 565 while (element.offsetTop === void 0) { 566 element = element.parentNode; 567 } 568 top = element.offsetTop; 569 while (element = element.offsetParent) { 570 top += element.offsetTop; 571 } 572 return top; 573 }; 574 575 WOW.prototype.isVisible = function(box) { 576 var bottom, offset, top, viewBottom, viewTop; 577 offset = box.getAttribute('data-wow-offset') || this.config.offset; 578 viewTop = window.pageYOffset; 579 viewBottom = viewTop + Math.min(this.element.clientHeight, this.util().innerHeight()) - offset; 580 top = this.offsetTop(box); 581 bottom = top + box.clientHeight; 582 return top <= viewBottom && bottom >= viewTop; 583 }; 584 585 WOW.prototype.util = function() { 586 return this._util != null ? this._util : this._util = new Util(); 587 }; 588 589 WOW.prototype.disabled = function() { 590 return !this.config.mobile && this.util().isMobile(navigator.userAgent); 591 }; 592 593 return WOW; 594 595 })(); 596 597}).call(this); 598 599/* Backstretch 2.0.3 2012-11-30 http://srobbin.com/jquery-plugins/backstretch/ (c)
599Scott Robbin Licensed MIT */ 600;(function(f,b,g){f.fn.backstretch=function(h,e){return(h===g||h.length===0)&&f.error("No images were supplied for Backstretch"),f(b).scrollTop()===0&&b.scrollTo(0,0),this.each(function(){var i=f(this),j=i.data("backstretch");j&&(e=f.extend(j.options,e),j.destroy(!0)),j=new a(this,h,e),i.data("backstretch",j)})},f.backstretch=function(e,h){return f("body").backstretch(e,h).data("backstretch")},f.expr[":"].backstretch=function(e){return f(e).data("backstretch")!==g},f.fn.backstretch.defaults={centeredX:!0,centeredY:!0,duration:5000,fade:0/*!Themify*/,mode:'fullcover'/*!Themify*/ };var d={wrap:{left:0,top:0,overflow:"hidden",margin:0,padding:0,height:"100%",width:"100%",zIndex:-999999},img:{position:"absolute",display:"none",margin:0,padding:0,border:"none",width:"auto",height:"auto",maxWidth:"none",zIndex:-999999}},a=function(l,j,k){this.options=f.extend({},f.fn.backstretch.defaults,k||{}),this.images=f.isArray(j)?j:[j],f.each(this.images,function(){f("<img />")[0].src=this}),this.isBody=l===document.body,this.$container=f(l),this.$wrap=f('<div class="backstretch"></div>').css(d.wrap).appendTo(this.$container),this.$root=this.isBody?c?f(b):f(document):this.$container;if(!this.isBody){var h=this.$container.css("position"),e=this.$container.css("zIndex");this.$container.css({position:h==="static"?"relative":h,zIndex:e==="auto"?0:e,background:"none"}),this.$wrap.css({zIndex:-999998})}this.$wrap.css({position:this.isBody&&c?"fixed":"absolute"}),this.index=0,this.show(this.index),f(b).on("resize.backstretch",f.proxy(this.resize,this)).on("orientationchange.backstretch",f.proxy(function(){this.isBody&&b.pageYOffset===0&&(b.scrollTo(0,1),this.resize())},this))};a.prototype={resize:function(){try{var m={left:0,top:0},q=this.isBody?this.$root.width():this.$root.innerWidth(),l=q,j=this.isBody?b.innerHeight?b.innerHeight:this.$root.height():this.$root.innerHeight(),k=l/this.$img.data("ratio"),p;k>=j?(p=(k-j)/2,this.options.centeredY&&(m.top="-"+p+"px")):(k=j,l=k*this.$img.data("ratio"),p=(l-q)/2,this.options.centeredX&&(m.left="-"+p+"px")),this.$wrap.css({width:q,height:j}).find("img:not(.deleteable)").css({width:l,height:k}).css(m); 601/*!Begin Themify*/ 602;if("best-fit"==k.options.mode){if(this.$img.width()<this.$img.height()){if(this.$img.closest('.row_inner').width()<f(window).height()){if(this.$img.closest('.row_inner').width()<this.$img.width()){this.$img.removeClass("best-fit-vertical").addClass("best-fit-horizontal")}}else{this.$img.removeClass("best-fit-horizontal").addClass("best-fit-vertical")}}} 603/*!End Themify*/ 604}catch(h){}return this},show:function(h){if(Math.abs(h)>this.images.length-1){return}this.index=h;var k=this,e=k.$wrap.find("img").addClass("deleteable"),j=f.Event("backstretch.show",{relatedTarget:k.$container[0]});return clearInterval(k.interval),k.$img=f("<img />").css(d.img).bind("load",function(i){var l=this.width||f(i.target).width(),m=this.height||f(i.target).height(); 605/*!Begin Themify*/ 606;if("best-fit"==k.options.mode){if(this.width<this.height){f(this).removeClass('best-fit-horizontal').addClass("best-fit best-fit-vertical")}else{f(this).removeClass('best-fit-vertical').addClass("best-fit best-fit-horizontal")}} 607/*!End Themify*/ 608;f(this).data("ratio",l/m),f(this).fadeIn(k.options.speed||k.options.fade,function(){e.remove(),k.paused||k.cycle(),k.$container.trigger(j,k)}),k.resize()}).appendTo(k.$wrap),k.$img.attr("src",k.images[h]),k},next:function(){return this.show(this.index<this.images.length-1?this.index+1:0)},prev:function(){return this.show(this.index===0?this.images.length-1:this.index-1)},pause:function(){return this.paused=!0,this},resume:function(){return this.paused=!1,this.next(),this},cycle:function(){return this.images.length>1&&(clearInterval(this.interval),this.interval=setInterval(f.proxy(function(){this.paused||this.next()},this),this.options.duration)),this},destroy:function(e){f(b).off("resize.backstretch orientationchange.backstretch"),clearInterval(this.interval),e||this.$wrap.remove(),this.$container.removeData("backstretch")}};var c=function(){var t=navigator.userAgent,k=navigator.platform,h=t.match(/AppleWeb
608Kit\/([0-9]+)/),p=!!h&&h[1],x=t.match(/Fennec\/([0-9]+)/),j=!!x&&x[1],w=t.match(/Opera Mobi\/([0-9]+)/),v=!!w&&w[1],q=t.match(/MSIE ([0-9]+)/),m=!!q&&q[1];return !((k.indexOf("iPhone")>-1||k.indexOf("iPad")>-1||k.indexOf("iPod")>-1)&&p&&p<534||b.operamini&&{}.toString.call(b.operamini)==="[object OperaMini]"||w&&v<7458||t.indexOf("Android")>-1&&p&&p<533||j&&j<6||"palmGetResource" in b&&p&&p<534||t.indexOf("MeeGo")>-1&&t.indexOf("NokiaBrowser/8.5.0")>-1||m&&m<=6)}()})(jQuery,window);
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.