vendor: 7,199 bytes, lines 1-2
1/*! jQuery Migrate v1.2.1 | (c) 2005, 2013 jQuery Foundation, Inc. and other contributors | jquery.org/license */ 2jQuery.migrateMute===void 0&&(jQuery.migrateMute=!0),function(e,t,n){function r(n){var r=t.console;i[n]||(i[n]=!0,e.migrateWarnings.push(n),r&&r.warn&&!e.migrateMute&&(r.warn("JQMIGRATE: "+n),e.migrateTrace&&r.trace&&r.trace()))}function a(t,a,i,o){if(Object.defineProperty)try{return Object.defineProperty(t,a,{configurable:!0,enumerable:!0,get:function(){return r(o),i},set:function(e){r(o),i=e}}),n}catch(s){}e._definePropertyBroken=!0,t[a]=i}var i={};e.migrateWarnings=[],!e.migrateMute&&t.console&&t.console.log&&t.console.log("JQMIGRATE: Logging is active"),e.migrateTrace===n&&(e.migrateTrace=!0),e.migrateReset=function(){i={},e.migrateWarnings.length=0},"BackCompat"===document.compatMode&&r("jQuery is not compatible with Quirks Mode");var o=e("<input/>",{size:1}).attr("size")&&e.attrFn,s=e.attr,u=e.attrHooks.value&&e.attrHooks.value.get||function(){return null},c=e.attrHooks.value&&e.attrHooks.value.set||function(){return n},l=/^(?:input|button)$/i,d=/^[238]$/,p=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,f=/^(?:checked|selected)$/i;a(e,"attrFn",o||{},"jQuery.attrFn is deprecated"),e.attr=function(t,a,i,u){var c=a.toLowerCase(),g=t&&t.nodeType;return u&&(4>s.length&&r("jQuery.fn.attr( props, pass ) is deprecated"),t&&!d.test(g)&&(o?a in o:e.isFunction(e.fn[a])))?e(t)[a](i):("type"===a&&i!==n&&l.test(t.nodeName)&&t.parentNode&&r("Can't change the 'type' of an input or button in IE 6/7/8"),!e.attrHooks[c]&&p.test(c)&&(e.attrHooks[c]={get:function(t,r){var a,i=e.prop(t,r);return i===!0||"boolean"!=typeof i&&(a=t.getAttributeNode(r))&&a.nodeValue!==!1?r.toLowerCase():n},set:function(t,n,r){var a;return n===!1?e.removeAttr(t,r):(a=e.propFix[r]||r,a in t&&(t[a]=!0),t.setAttribute(r,r.toLowerCase())),r}},f.test(c)&&r("jQuery.fn.attr('"+c+"') may use property instead of attribute")),s.call(e,t,a,i))},e.attrHooks.value={get:function(e,t){var n=(e.nodeName||"").toLowerCase();return"button"===n?u.apply(this,arguments):("input"!==n&&"option"!==n&&r("jQuery.fn.attr('value') no longer gets properties"),t in e?e.value:null)},set:function(e,t){var a=(e.nodeName||"").toLowerCase();return"button"===a?c.apply(this,arguments):("input"!==a&&"option"!==a&&r("jQuery.fn.attr('value', val) no longer sets properties"),e.value=t,n)}};var g,h,v=e.fn.init,m=e.parseJSON,y=/^([^<]*)(<[\w\W]+>)([^>]*)$/;e.fn.init=function(t,n,a){var i;return t&&"string"==typeof t&&!e.isPlainObject(n)&&(i=y.exec(e.trim(t)))&&i[0]&&("<"!==t.charAt(0)&&r("$(html) HTML strings must start with '<' character"),i[3]&&r("$(html) HTML text after last tag is ignored"),"#"===i[0].charAt(0)&&(r("HTML string cannot start with a '#' character"),e.error("JQMIGRATE: Invalid selector string (XSS)")),n&&n.context&&(n=n.context),e.parseHTML)?v.call(this,e.parseHTML(i[2],n,!0),n,a):v.apply(this,arguments)},e.fn.init.prototype=e.fn,e.parseJSON=function(e){return e||null===e?m.apply(this,arguments):(r("jQuery.parseJSON requires a valid JSON string"),null)},e.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||0>e.indexOf("compatible")&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},e.browser||(g=e.uaMatch(navigator.userAgent),h={},g.browser&&(h[g.browser]=!0,h.version=g.version),h.chrome?h.webkit=!0:h.webkit&&(h.safari=!0),e.browser=h),a(e,"browser",e.browser,"jQuery.browser is deprecated"),e.sub=function(){function t(e,n){return new t.fn.init(e,n)}e.extend(!0,t,this),t.superclass=this,t.fn=t.prototype=this(),t.fn.constructor=t,t.sub=this.sub,t.fn.init=function(r,a){return a&&a instanceof e&&!(a instanceof t)&&(a=t(a)),e.fn.init.call(this,r,a,n)},t.fn.init.prototype=t.fn;var n=t(document);return r("jQuery.sub() is deprecated"),t},e.ajaxSetup({converters:{"text json":e.parseJSON}});var b=e.fn.data;e.fn.data=function(t){var a,i,o=this[0];return!o||"events"!==t||1!==arguments.length||(a=e.data(o,t),i=e._data(o,t),a!==n&&a!==i||i===n)?b.apply(this,arguments):(r("Use of jQuery.fn.data('events') is deprecated"),i)};var j=/\/(java|ecma)script/i,w=e.fn.andSelf||e.fn.addBack;e.fn.andSelf=function(){return r("jQuery.fn.andSelf() replaced by jQuery.fn.addBack()"),w.apply(this,arguments)},e.clean||(e.clean=function(t,a,i,o){a=a||document,a=!a.nodeType&&a[0]||a,a=a.ownerDocument||a,r("jQuery.clean() is deprecated");var s,u,c,l,d=[];if(e.merge(d,e.buildFragment(t,a).childNodes),i)for(c=function(e){return!e.type||j.test(e.type)?o?o.push(e.parentNode?e.parentNode.removeChild(e):e):i.appendChild(e):n},s=0;null!=(u=d[s]);s++)e.nodeName(u,"script")&&c(u)||(i.appendChild(u),u.getElementsByTagName!==n&&(l=e.grep(e.merge([],u.getElementsByTagName("script")),c),d.splice.apply(d,[s+1,0].concat(l)),s+=l.length));return d});var Q=e.event.add,x=e.event.remove,k=e.event.trigger,N=e.fn.toggle,T=e.fn.live,M=e.fn.die,S="ajaxStart|ajaxStop|ajaxSend|ajaxComplete|ajaxError|ajaxSuccess",C=RegExp("\\b(?:"+S+")\\b"),H=/(?:^|\s)hover(\.\S+|)\b/,A=function(t){return"string"!=typeof t||e.event.special.hover?t:(H.test(t)&&r("'hover' pseudo-event is deprecated, use 'mouseenter mouseleave'"),t&&t.replace(H,"mouseenter$1 mouseleave$1"))};e.event.props&&"attrChange"!==e.event.props[0]&&e.event.props.unshift("attrChange","attrName","relatedNode","srcElement"),e.event.dispatch&&a(e.event,"handle",e.event.dispatch,"jQuery.event.handle is undocumented and deprecated"),e.event.add=function(e,t,n,a,i){e!==document&&C.test(t)&&r("AJAX events should be attached to document: "+t),Q.call(this,e,A(t||""),n,a,i)},e.event.remove=function(e,t,n,r,a){x.call(this,e,A(t)||"",n,r,a)},e.fn.error=function(){var e=Array.prototype.slice.call(arguments,0);return r("jQuery.fn.error() is deprecated"),e.splice(0,0,"error"),arguments.length?this.bind.apply(this,e):(this.triggerHandler.apply(this,e),this)},e.fn.toggle=function(t,n){if(!e.isFunction(t)||!e.isFunction(n))return N.apply(this,arguments);r("jQuery.fn.toggle(handler, handler...) is deprecated");var a=arguments,i=t.guid||e.guid++,o=0,s=function(n){var r=(e._data(this,"lastToggle"+t.guid)||0)%o;return e._data(this,"lastToggle"+t.guid,r+1),n.preventDefault(),a[r].apply(this,arguments)||!1};for(s.guid=i;a.length>o;)a[o++].guid=i;return this.click(s)},e.fn.live=function(t,n,a){return r("jQuery.fn.live() is deprecated"),T?T.apply(this,arguments):(e(this.context).on(t,this.selector,n,a),this)},e.fn.die=function(t,n){return r("jQuery.fn.die() is deprecated"),M?M.apply(this,arguments):(e(this.context).off(t,this.selector||"**",n),this)},e.event.trigger=function(e,t,n,a){return n||C.test(e)||r("Global events are undocumented and deprecated"),k.call(this,e,t,n||document,a)},e.each(S.split("|"),function(t,n){e.event.special[n]={setup:function(){var t=this;return t!==document&&(e.event.add(document,n+"."+e.guid,function(){e.event.trigger(n,null,t,!0)}),e._data(this,n,e.guid++)),!1},teardown:function(){return this!==document&&e.event.remove(document,n+"."+e._data(this,n)),!1}}})}(jQuery,window);
2 3var stacks = {}; 4stacks.jQuery = jQuery.noConflict(true); 5stacks.uk_co_doobox_doomontage2 = {}; 6stacks.uk_co_doobox_doomontage2 = (function(stack) { 7var jQuery = stacks.jQuery;var $ = jQuery;// Start dooMontage 2 stack page Javascript code 8 9 10/*! 11 * Justified Gallery - v3.6.1 12 * http://miromannino.github.io/Justified-Gallery/ 13 * Copyright (c) 2015 Miro Mannino 14 * Licensed under the MIT license. 15 */ 16!function(a){var b=function(b,c){this.settings=c,this.checkSettings(),this.imgAnalyzerTimeout=null,this.entries=null,this.buildingRow={entriesBuff:[],width:0,aspectRatio:0},this.lastAnalyzedIndex=-1,this["yield"]={every:2,flushed:0},this.border=c.border>=0?c.border:c.margins,this.maxRowHeight=this.retrieveMaxRowHeight(),this.suffixRanges=this.retrieveSuffixRanges(),this.offY=this.border,this.spinner={phase:0,timeSlot:150,$el:a('<div class="spinner"><span></span><span></span><span></span></div>'),intervalId:null},this.checkWidthIntervalId=null,this.galleryWidth=b.width(),this.$gallery=b};b.prototype.getSuffix=function(a,b){var c,d;for(c=a>b?a:b,d=0;d<this.suffixRanges.length;d++)if(c<=this.suffixRanges[d])return this.settings.sizeRangeSuffixes[this.suffixRanges[d]];return this.settings.sizeRangeSuffixes[this.suffixRanges[d-1]]},b.prototype.removeSuffix=function(a,b){return a.substring(0,a.length-b.length)},b.prototype.endsWith=function(a,b){return-1!==a.indexOf(b,a.length-b.length)},b.prototype.getUsedSuffix=function(a){for(var b in this.settings.sizeRangeSuffixes)if(this.settings.sizeRangeSuffixes.hasOwnProperty(b)){if(0===this.settings.sizeRangeSuffixes[b].length)continue;if(this.endsWith(a,this.settings.sizeRangeSuffixes[b]))return this.settings.sizeRangeSuffixes[b]}return""},b.prototype.newSrc=function(a,b,c){var d=a.match(this.settings.extension),e=null!=d?d[0]:"",f=a.replace(this.settings.extension,"");return f=this.removeSuffix(f,this.getUsedSuffix(f)),f+=this.getSuffix(b,c)+e},b.prototype.showImg=function(a,b){this.settings.cssAnimation?(a.addClass("entry-visible"),b&&b()):a.stop().fadeTo(this.settings.imagesAnimationDuration,1,b)},b.prototype.extractImgSrcFromImage=function(a){var b="undefined"!=typeof a.data("safe-src")?a.data("safe-src"):a.attr("src");return a.data("jg.originalSrc",b),b},b.prototype.imgFromEntry=function(a){var b=a.find("> img");return 0===b.length&&(b=a.find("> a > img")),0===b.length?null:b},b.prototype.doocaptionFromEntry=function(a){var b=a.find("> .doocaption");return 0===b.length?null:b},b.prototype.displayEntry=function(b,c,d,e,f,g){b.width(e),b.height(g),b.css("top",d),b.css("left",c);var h=this.imgFromEntry(b);if(null!==h){h.css("width",e),h.css("height",f),h.css("margin-left",-e/2),h.css("margin-top",-f/2);var i=h.attr("src"),j=this.newSrc(i,e,f);h.one("error",function(){h.attr("src",h.data("jg.originalSrc"))});var k=function(){i!==j&&h.attr("src",j)};"skipped"===b.data("jg.loaded")?this.onImageEvent(i,a.proxy(function(){this.showImg(b,k),b.data("jg.loaded",!0)},this)):this.showImg(b,k)}else this.showImg(b);this.displayEntrydoocaption(b)},b.prototype.displayEntrydoocaption=function(b){var c=this.imgFromEntry(b);if(null!==c&&this.settings.doocaptions){var d=this.doocaptionFromEntry(b);if(null==d){var e=c.attr("alt");this.isValiddoocaption(e)||(e=b.attr("data-title")),this.isValiddoocaption(e)&&(d=a('<div class="doocaption">'+e+"</div>"),b.append(d),b.data("jg.createddoocaption",!0))}null!==d&&(this.settings.cssAnimation||d.stop().fadeTo(0,this.settings.doocaptionSettings.nonVisibleOpacity),this.adddoocaptionEventsHandlers(b))}else this.removedoocaptionEventsHandlers(b)},b.prototype.isValiddoocaption=function(a){return"undefined"!=typeof a&&a.length>0},b.prototype.onEntryMouseEnterFordoocaption=function(b){var c=this.doocaptionFromEntry(a(b.currentTarget));this.settings.cssAnimation?c.addClass("doocaption-visible").removeClass("doocaption-hidden"):c.stop().fadeTo(this.settings.doocaptionSettings.animationDuration,this.settings.doocaptionSettings.visibleOpacity)},b.prototype.onEntryMouseLeaveFordoocaption=function(b){var c=this.doocaptionFromEntry(a(b.currentTarget));this.settings.cssAnimation?c.removeClass("doocaption-visible").removeClass("doocaption-hidden"):c.stop().fadeTo(this.settings.doocaptionSettings.animationDuration,this.settings.doocaptionSettings.nonVisibleOpacity)},b.prototype.adddoocaptionEventsHandlers=function(b){var c=b.data("jg.doocaptionMouseEvents");"undefined"==typeof c&&(c={mouseenter:a.proxy(this.onEntryMouseEnterFordoocaption,this),mouseleave:a.proxy(this.onEntryMouseLeaveFordoocaption,this)},b.on("mouseenter",void 0,void 0,c.mouseenter),b.on("mouseleave",void 0,void 0,c.mouseleave),b.data("jg.doocaptionMouseEvents",c))},b.prototype.removedoocaptionEventsHandlers=function(a){var b=a.data("jg.doocaptionMouseEvents");"undefined"!=typeof b&&(a.off("mouseenter",void 0,b.mouseenter),a.off("mouseleave",void 0,b.mouseleave),a.removeData("jg.doocaptionMouseEvents"))},b.prototype.prepareBuildingRow=function(a){var b,c,d,e,f,g=!0,h=0,i=this.galleryWidth-2*this.border-(this.buildingRow.entriesBuff.length-1)*this.settings.margins,j=i/this.buildingRow.aspectRatio,k=this.buildingRow.width/i>this.settings.justifyThreshold;if(a&&"hide"===this.settings.lastRow&&!k){for(b=0;b<this.buildingRow.entriesBuff.length;b++)c=this.buildingRow.entriesBuff[b],this.settings.cssAnimation?c.removeClass("entry-visible"):c.stop().fadeTo(0,0);return-1}for(a&&!k&&"nojustify"===this.settings.lastRow&&(g=!1),b=0;b<this.buildingRow.entriesBuff.length;b++)c=this.buildingRow.entriesBuff[b],d=c.data("jg.width")/c.data("jg.height"),g?(e=b===this.buildingRow.entriesBuff.length-1?i:j*d,f=j):(e=this.settings.rowHeight*d,f=this.settings.rowHeight),i-=Math.round(e),c.data("jg.jwidth",Math.round(e)),c.data("jg.jheight",Math.
16ceil(f)),(0===b||h>f)&&(h=f);return this.settings.fixedHeight&&h>this.settings.rowHeight&&(h=this.settings.rowHeight),{minHeight:h,justify:g}},b.prototype.clearBuildingRow=function(){this.buildingRow.entriesBuff=[],this.buildingRow.aspectRatio=0,this.buildingRow.width=0},b.prototype.flushRow=function(a){var b,c,d,e=this.settings,f=this.border;if(d=this.prepareBuildingRow(a),c=d.minHeight,a&&"hide"===e.lastRow&&-1===c)return void this.clearBuildingRow();this.maxRowHeight.percentage?this.maxRowHeight.value*e.rowHeight<c&&(c=this.maxRowHeight.value*e.rowHeight):this.maxRowHeight.value>0&&this.maxRowHeight.value<c&&(c=this.maxRowHeight.value);for(var g=0;g<this.buildingRow.entriesBuff.length;g++)b=this.buildingRow.entriesBuff[g],this.displayEntry(b,f,this.offY,b.data("jg.jwidth"),b.data("jg.jheight"),c),f+=b.data("jg.jwidth")+e.margins;this.$gallery.height(this.offY+c+this.border+(this.isSpinnerActive()?this.getSpinnerHeight():0)),(!a||c<=this.settings.rowHeight&&d.justify)&&(this.offY+=c+this.settings.margins,this.clearBuildingRow(),this.$gallery.trigger("jg.rowflush"))},b.prototype.checkWidth=function(){this.checkWidthIntervalId=setInterval(a.proxy(function(){var a=parseFloat(this.$gallery.width());this.galleryWidth!==a&&(this.galleryWidth=a,this.rewind(),this.startImgAnalyzer(!0))},this),this.settings.refreshTime)},b.prototype.isSpinnerActive=function(){return null!=this.spinner.intervalId},b.prototype.getSpinnerHeight=function(){return this.spinner.$el.innerHeight()},b.prototype.stopLoadingSpinnerAnimation=function(){clearInterval(this.spinner.intervalId),this.spinner.intervalId=null,this.$gallery.height(this.$gallery.height()-this.getSpinnerHeight()),this.spinner.$el.detach()},b.prototype.startLoadingSpinnerAnimation=function(){var a=this.spinner,b=a.$el.find("span");clearInterval(a.intervalId),this.$gallery.append(a.$el),this.$gallery.height(this.offY+this.getSpinnerHeight()),a.intervalId=setInterval(function(){a.phase<b.length?b.eq(a.phase).fadeTo(a.timeSlot,1):b.eq(a.phase-b.length).fadeTo(a.timeSlot,0),a.phase=(a.phase+1)%(2*b.length)},a.timeSlot)},b.prototype.rewind=function(){this.lastAnalyzedIndex=-1,this.offY=this.border,this.clearBuildingRow()},b.prototype.hideBuildingRowImages=function(){for(var a=0;a<this.buildingRow.entriesBuff.length;a++)this.settings.cssAnimation?this.buildingRow.entriesBuff[a].removeClass("entry-visible"):this.buildingRow.entriesBuff[a].stop().fadeTo(0,0)},b.prototype.updateEntries=function(b){return this.entries=this.$gallery.find(this.settings.selector).toArray(),0===this.entries.length?!1:(this.settings.filter?this.modifyEntries(this.filterArray,b):this.modifyEntries(this.resetFilters,b),a.isFunction(this.settings.sort)?this.modifyEntries(this.sortArray,b):this.settings.randomize&&this.modifyEntries(this.shuffleArray,b),!0)},b.prototype.insertToGallery=function(b){var c=this;a.each(b,function(){a(this).appendTo(c.$gallery)})},b.prototype.shuffleArray=function(a){var b,c,d;for(b=a.length-1;b>0;b--)c=Math.floor(Math.random()*(b+1)),d=a[b],a[b]=a[c],a[c]=d;return this.insertToGallery(a),a},b.prototype.sortArray=function(a){return a.sort(this.settings.sort),this.insertToGallery(a),a},b.prototype.resetFilters=function(b){for(var c=0;c<b.length;c++)a(b[c]).removeClass("jg-filtered");return b},b.prototype.filterArray=function(b){var c=this.settings;return"string"===a.type(c.filter)?b.filter(function(b){var d=a(b);return d.is(c.filter)?(d.removeClass("jg-filtered"),!0):(d.addClass("jg-filtered"),!1)}):a.isFunction(c.filter)?b.filter(c.filter):void 0},b.prototype.modifyEntries=function(a,b){var c=b?this.entries.splice(this.lastAnalyzedIndex+1,this.entries.length-this.lastAnalyzedIndex-1):this.entries;c=a.call(this,c),this.entries=b?this.entries.concat(c):c},b.prototype.destroy=function(){clearInterval(this.checkWidthIntervalId),a.each(this.entries,a.proxy(function(b,c){var d=a(c);d.css("width",""),d.css("height",""),d.css("top",""),d.css("left",""),d.data("jg.loaded",void 0),d.removeClass("jg-entry");var e=this.imgFromEntry(d);e.css("width",""),e.css("height",""),e.css("margin-left",""),e.css("margin-top",""),e.attr("src",e.data("jg.originalSrc")),e.data("jg.originalSrc",void 0),this.removedoocaptionEventsHandlers(d);var f=this.doocaptionFromEntry(d);d.data("jg.createddoocaption")?(d.data("jg.createddoocaption",void 0),null!=f&&f.remove()):null!=f&&f.fadeTo(0,1)},this)),this.$gallery.css("height",""),this.$gallery.removeClass("justified-gallery"),this.$gallery.data("jg.controller",void 0)}
16,b.prototype.analyzeImages=function(b){for(var c=this.lastAnalyzedIndex+1;c<this.entries.length;c++){var d=a(this.entries[c]);if(d.data("jg.loaded")===!0||"skipped"===d.data("jg.loaded")){var e=this.galleryWidth-2*this.border-(this.buildingRow.entriesBuff.length-1)*this.settings.margins,f=d.data("jg.width")/d.data("jg.height");if(e/(this.buildingRow.aspectRatio+f)<this.settings.rowHeight&&(this.flushRow(!1),++this["yield"].flushed>=this["yield"].every))return void this.startImgAnalyzer(b);this.buildingRow.entriesBuff.push(d),this.buildingRow.aspectRatio+=f,this.buildingRow.width+=f*this.settings.rowHeight,this.lastAnalyzedIndex=c}else if("error"!==d.data("jg.loaded"))return}this.buildingRow.entriesBuff.length>0&&this.flushRow(!0),this.isSpinnerActive()&&this.stopLoadingSpinnerAnimation(),this.stopImgAnalyzerStarter(),this.$gallery.trigger(b?"jg.resize":"jg.complete")},b.prototype.stopImgAnalyzerStarter=function(){this["yield"].flushed=0,null!==this.imgAnalyzerTimeout&&clearTimeout(this.imgAnalyzerTimeout)},b.prototype.startImgAnalyzer=function(a){var b=this;this.stopImgAnalyzerStarter(),this.imgAnalyzerTimeout=setTimeout(function(){b.analyzeImages(a)},.001)},b.prototype.onImageEvent=function(b,c,d){if(c||d){var e=new Image,f=a(e);c&&f.one("load",function(){f.off("load error"),c(e)}),d&&f.one("error",function(){f.off("load error"),d(e)}),e.src=b}},b.prototype.init=function(){var b=!1,c=!1,d=this;a.each(this.entries,function(e,f){var g=a(f),h=d.imgFromEntry(g);if(g.addClass("jg-entry"),g.data("jg.loaded")!==!0&&"skipped"!==g.data("jg.loaded"))if(null!==d.settings.rel&&g.attr("rel",d.settings.rel),null!==d.settings.target&&g.attr("target",d.settings.target),null!==h){var i=d.extractImgSrcFromImage(h);if(h.attr("src",i),d.settings.waitThumbnailsLoad===!1){var j=parseFloat(h.attr("width")),k=parseFloat(h.attr("height"));if(!isNaN(j)&&!isNaN(k))return g.data("jg.width",j),g.data("jg.height",k),g.data("jg.loaded","skipped"),c=!0,d.startImgAnalyzer(!1),!0}g.data("jg.loaded",!1),b=!0,d.isSpinnerActive()||d.startLoadingSpinnerAnimation(),d.onImageEvent(i,function(a){g.data("jg.width",a.width),g.data("jg.height",a.height),g.data("jg.loaded",!0),d.startImgAnalyzer(!1)},function(){g.data("jg.loaded","error"),d.startImgAnalyzer(!1)})}else g.data("jg.loaded",!0),g.data("jg.width",g.width()|parseFloat(g.css("width"))|1),g.data("jg.height",g.height()|parseFloat(g.css("height"))|1)}),b||c||this.startImgAnalyzer(!1),this.checkWidth()},b.prototype.checkOrConvertNumber=function(b,c){if("string"===a.type(b[c])&&(b[c]=parseFloat(b[c])),"number"!==a.type(b[c]))throw c+" must be a number";if(isNaN(b[c]))throw"invalid number for "+c},b.prototype.checkSizeRangesSuffixes=function(){if("object"!==a.type(this.settings.sizeRangeSuffixes))throw"sizeRangeSuffixes must be defined and must be an object";var b=[];for(var c in this.settings.sizeRangeSuffixes)this.settings.sizeRangeSuffixes.hasOwnProperty(c)&&b.push(c);for(var d={0:""},e=0;e<b.length;e++)if("string"===a.type(b[e]))try{var f=parseInt(b[e].replace(/^[a-z]+/,""),10);d[f]=this.settings.sizeRangeSuffixes[b[e]]}catch(g){throw"sizeRangeSuffixes keys must contains correct numbers ("+g+")"}else d[b[e]]=this.settings.sizeRangeSuffixes[b[e]];this.settings.sizeRangeSuffixes=d},b.prototype.retrieveMaxRowHeight=function(){var b={};if("string"===a.type(this.settings.maxRowHeight))this.settings.maxRowHeight.match(/^[0-9]+%$/)?(b.value=parseFloat(this.settings.maxRowHeight.match(/^([0-9])+%$/)[1])/100,b.percentage=!1):(b.value=parseFloat(this.settings.maxRowHeight),b.percentage=!0);else{if("number"!==a.type(this.settings.maxRowHeight))throw"maxRowHeight must be a number or a percentage";b.value=this.settings.maxRowHeight,b.percentage=!1}if(isNaN(b.value))throw"invalid number for maxRowHeight";return b.percentage?b.value<100&&(b.value=100):b.value>0&&b.value<this.settings.rowHeight&&(b.value=this.settings.rowHeight),b},b.prototype.checkSettings=function(){if(this.checkSizeRangesSuffixes(),this.checkOrConvertNumber(this.settings,"rowHeight"),this.checkOrConvertNumber(this.settings,"margins"),this.checkOrConvertNumber(this.settings,"border"),"nojustify"!==this.settings.lastRow&&"justify"!==this.settings.lastRow&&"hide"!==this.settings.lastRow)throw'lastRow must be "nojustify", "justify" or "hide"';if(this.checkOrConvertNumber(this.settings,"justifyThreshold"),this.settings.justifyThreshold<0||this.settings.justifyThreshold>1)throw"justifyThreshold must be in the interval [0,1]";if("boolean"!==a.type(this.settings.cssAnimation))throw"cssAnimation must be a boolean";if("boolean"!==a.type(this.settings.doocaptions))throw"doocaptions must be a boolean";if(this.checkOrConvertNumber(this.settings.doocaptionSettings,"animationDuration"),this.checkOrConvertNumber(this.settings.doocaptionSettings,"visibleOpacity"),this.settings.doocaptionSettings.visibleOpacity<0||this.settings.doocaptionSettings.visibleOpacity>1)throw"doocaptionSettings.visibleOpacity must be in the interval [0, 1]";if(this.checkOrConvertNumber(this.settings.doocaptionSettings,"nonVisibleOpacity"),this.settings.doocaptionSettings.nonVisibleOpacity<0||this.settings.doocaptionSettings.nonVisibleOpacity>1)throw"doocaptionSettings.nonVisibleOpacity must be in the interval [0, 1]";if("boolean"!==a.type(this.settings.fixedHeight))throw"fixedHeight must be a boolean";if(this.checkOrConvertNumber(this.settings,"imagesAnimationDuration"),this.checkOrConvertNumber(this.settings,"refreshTime"),"boolean"!==a.type(this.settings.randomize))throw"randomize must be a boolean";if("string"!==a.type(this.settings.selector))throw"selector must be a string";if(this.settings.sort!==!1&&!a.isFunction(this.settings.sort))throw"sort must be false or a comparison function";if(this.settings.filter!==!1&&!a.isFunction(this.settings.filter)&&"string"!==a.type(this.settings.filter))throw"filter must be false, a string or a filter function"},b.prototype.retrieveSuffixRanges=function(){var a=[];for(var b in this.settings.sizeRangeSuffixes)this.settings.sizeRangeSuffixes.hasOwnProperty(b)&&a.push(parseInt(b,10));return a.sort(function(a,b){return a>b?1:b>a?-1:0}),a},b.prototype.updateSettings=function(b){this.settings=a.extend({},this.settings,b),this.checkSettings(),this.border=this.settings.border>=0?this.settings.border:this.settings.margins,this.maxRowHeight=this.retrieveMaxRowHeight(),this.suffixRanges=this.retrieveSuffixRanges()},a.fn.doojustifiedGallery=function(c){return this.each(function(d,e){var f=a(e);f.addClass("justified-gallery");var g=f.data("jg.controller");if("undefined"==typeof g){if("undefined"!=typeof c&&null!==c&&"object"!==a.type(c))throw"The argument must be an object";g=new b(f,a.extend({},a.fn.doojustifiedGallery.defaults,c)),f.data("jg.controller",g)}else if("norewind"===c)g.hideBuildingRowImages();else{if("destroy"===c)return void g.destroy();g.updateSettings(c),g.rewind()}g.updateEntries("norewind"===c)&&g.init()})},a.fn.doojustifiedGallery.defaults={sizeRangeSuffixes:{},rowHeight:120,maxRowHeight:"200%",margins:1,border:-1,lastRow:"nojustify",justifyThreshold:.75,fixedHeight:!1,waitThumbnailsLoad:!0,doocaptions:!0,cssAnimation:!1,imagesAnimationDuration:500,doocaptionSettings:{animationDuration:300,visibleOpacity:.7,nonVisibleOpacity:0},rel:null,target:null,extension:/\.[^.\\/]+$/,refreshTime:100,randomize:!1,sort:!1,filter:!1,selector:"> a, > div:not(.spinner)"}}(jQuery); 17 18 19// End dooMontage 2 stack page Javascript code 20return stack;})(stacks.uk_co_doobox_doomontage2); 21stacks.stacks_in_1283_page10 = {}; 22stacks.stacks_in_1283_page10 = (function(stack) { 23var jQuery = stacks.jQuery;var $ = jQuery;/* 24 * jQuery appear plugin 25 * Copyright (c) 2012 Andrey Sidorov 26 * licensed under MIT license. 27 * https://github.com/morr/jquery.appear/ 28 * Version: 0.3.6 29 */ 30 (function($){var selectors=[];var check_binded=false;var check_lock=false;var defaults={interval:250,force_process:false};var $window=$(window);var $prior_appeared=[];function process(){check_lock=false;for(var index=0,selectorsLength=selectors.length;index<selectorsLength;index++){var $appeared=$(selectors[index]).filter(function(){return $(this).is(':appeared');});$appeared.trigger('appear',[$appeared]);if($prior_appeared[index]){var $disappeared=$prior_appeared[index].not($appeared);$disappeared.trigger('disappear',[$disappeared]);} 31$prior_appeared[index]=$appeared;}};function add_selector(selector){selectors.push(selector);$prior_appeared.push();} 32$.expr[':']['appeared']=function(element){var $element=$(element);if(!$element.is(':visible')){return false;} 33var window_left=$window.scrollLeft();var window_top=$window.scrollTop();var offset=$element.offset();var left=offset.left;var top=offset.top;if(top+$element.height()>=window_top&&top-($element.data('appear-top-offset')||0)<=window_top+$window.height()&&left+$element.width()>
33=window_left&&left-($element.data('appear-left-offset')||0)<=window_left+$window.width()){return true;}else{return false;}};$.fn.extend({appear:function(options){var opts=$.extend({},defaults,options||{});var selector=this.selector||this;if(!check_binded){var on_check=function(){if(check_lock){return;} 34check_lock=true;setTimeout(process,opts.interval);};$(window).scroll(on_check).resize(on_check);check_binded=true;} 35if(opts.force_process){setTimeout(process,opts.interval);} 36add_selector(selector);return $(selector);}});$.extend({force_appear:function(){if(check_binded){process();return true;} 37return false;}});})(function(){if(typeof module!=='undefined'){return require('jquery');}else{return jQuery;}}());/*! waitForImages jQuery Plugin 2015-06-02 */ 38!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a(jQuery)}(function(a){var b="waitForImages";a.waitForImages={hasImageProperties:["backgroundImage","listStyleImage","borderImage","borderCornerImage","cursor"],hasImageAttributes:["srcset"]},a.expr[":"]["has-src"]=function(b){return a(b).is('img[src][src!=""]')},a.expr[":"].uncached=function(b){return a(b).is(":has-src")?!b.complete:!1},a.fn.waitForImages=function(){var c,d,e,f=0,g=0,h=a.Deferred();if(a.isPlainObject(arguments[0])?(e=arguments[0].waitForAll,d=arguments[0].each,c=arguments[0].finished):1===arguments.length&&"boolean"===a.type(arguments[0])?e=arguments[0]:(c=arguments[0],d=arguments[1],e=arguments[2]),c=c||a.noop,d=d||a.noop,e=!!e,!a.isFunction(c)||!a.isFunction(d))throw new TypeError("An invalid callback was supplied.");return this.each(function(){var i=a(this),j=[],k=a.waitForImages.hasImageProperties||[],l=a.waitForImages.hasImageAttributes||[],m=/url\(\s*(['"]?)(.*?)\1\s*\)/g;e?i.find("*").addBack().each(function(){var b=a(this);b.is("img:has-src")&&j.push({src:b.attr("src"),element:b[0]}),a.each(k,function(a,c){var d,e=b.css(c);if(!e)return!0;for(;d=m.exec(e);)j.push({src:d[2],element:b[0]})}),a.each(l,function(c,d){var e,f=b.attr(d);return f?(e=f.split(","),void a.each(e,function(c,d){d=a.trim(d).split(" ")[0],j.push({src:d,element:b[0]})})):!0})}):i.find("img:has-src").each(function(){j.push({src:this.src,element:this})}),f=j.length,g=0,0===f&&(c.call(i[0]),h.resolveWith(i[0])),a.each(j,function(e,j){var k=new Image,l="load."+b+" error."+b;a(k).one(l,function m(b){var e=[g,f,"load"==b.type];return g++,d.apply(j.element,e),h.notifyWith(j.element,e),a(this).off(l,m),g==f?(c.call(i[0]),h.resolveWith(i[0]),!1):void 0}),k.src=j.src})}),h.promise()}}); 39/* 40 * jQuery FlexSlider v2.5.0 41 * Copyright 2012 WooThemes 42 * Contributing Author: Tyler Smith 43 */ 44; 45(function ($) { 46 47 //FlexSlider: Object Instance 48 $.flexslider = function(el, options) { 49 var slider = $(el); 50 51 // making variables public 52 slider.vars = $.extend({}, $.flexslider.defaults, options); 53 54 var namespace = slider.vars.namespace, 55 msGesture = window.navigator && window.navigator.msPointerEnabled && window.MSGesture, 56 touch = (( "ontouchstart" in window ) || msGesture || window.DocumentTouch && document instanceof DocumentTouch) && slider.vars.touch, 57 // depricating this idea, as devices are being released with both of these events 58 //eventType = (touch) ? "touchend" : "click", 59 eventType = "click touchend MSPointerUp keyup", 60 watchedEvent = "", 61 watchedEventClearTimer, 62 vertical = slider.vars.direction === "vertical", 63 reverse = slider.vars.reverse, 64 carousel = (slider.vars.itemWidth > 0), 65 fade = slider.vars.animation === "fade", 66 asNav = slider.vars.asNavFor !== "", 67 methods = {}, 68 focused = true; 69 70 // Store a reference to the slider object 71 $.data(el, "flexslider", slider); 72 73 // Private slider methods 74 methods = { 75 init: function() { 76 slider.animating = false; 77 // Get current slide and make sure it is a number 78 slider.currentSlide = parseInt( ( slider.vars.startAt ? slider.vars.startAt : 0), 10 ); 79 if ( isNaN( slider.currentSlide ) ) { slider.currentSlide = 0; } 80 slider.animatingTo = slider.currentSlide; 81 slider.atEnd = (slider.currentSlide === 0 || slider.currentSlide === slider.last); 82 slider.containerSelector = slider.vars.selector.substr(0,slider.vars.selector.search(' ')); 83 slider.slides = $(slider.vars.selector, slider); 84 slider.container = $(slider.containerSelector, slider); 85 slider.count = slider.slides.length; 86 // SYNC: 87 slider.syncExists = $(slider.vars.sync).length > 0; 88 // SLIDE: 89 if (slider.vars.animation === "slide") { slider.vars.animation = "swing"; } 90 slider.prop = (vertical) ? "top" : "marginLeft"; 91 slider.args = {}; 92 // SLIDESHOW: 93 slider.manualPause = false;
vendor: 44,750 bytes, lines 94-1127
94 slider.stopped = false; 95 //PAUSE WHEN INVISIBLE 96 slider.started = false; 97 slider.startTimeout = null; 98 // TOUCH/USECSS: 99 slider.transitions = !slider.vars.video && !fade && slider.vars.useCSS && (function() { 100 var obj = document.createElement('div'), 101 props = ['perspectiveProperty', 'WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective']; 102 for (var i in props) { 103 if ( obj.style[ props[i] ] !== undefined ) { 104 slider.pfx = props[i].replace('Perspective','').toLowerCase(); 105 slider.prop = "-" + slider.pfx + "-transform"; 106 return true; 107 } 108 } 109 return false; 110 }()); 111 slider.ensureAnimationEnd = ''; 112 // CONTROLSCONTAINER: 113 if (slider.vars.controlsContainer !== "") slider.controlsContainer = $(slider.vars.controlsContainer).length > 0 && $(slider.vars.controlsContainer); 114 // MANUAL: 115 if (slider.vars.manualControls !== "") slider.manualControls = $(slider.vars.manualControls).length > 0 && $(slider.vars.manualControls); 116 117 // CUSTOM DIRECTION NAV: 118 if (slider.vars.customDirectionNav !== "") slider.customDirectionNav = $(slider.vars.customDirectionNav).length === 2 && $(slider.vars.customDirectionNav); 119 120 // RANDOMIZE: 121 if (slider.vars.randomize) { 122 slider.slides.sort(function() { return (Math.round(Math.random())-0.5); }); 123 slider.container.empty().append(slider.slides); 124 } 125 126 slider.doMath(); 127 128 // INIT 129 slider.setup("init"); 130 131 // CONTROLNAV: 132 if (slider.vars.controlNav) { methods.controlNav.setup(); } 133 134 // DIRECTIONNAV: 135 if (slider.vars.directionNav) { methods.directionNav.setup(); } 136 137 // KEYBOARD: 138 if (slider.vars.keyboard && ($(slider.containerSelector).length === 1 || slider.vars.multipleKeyboard)) { 139 $(document).bind('keyup', function(event) { 140 var keycode = event.keyCode; 141 if (!slider.animating && (keycode === 39 || keycode === 37)) { 142 var target = (keycode === 39) ? slider.getTarget('next') : 143 (keycode === 37) ? slider.getTarget('prev') : false; 144 slider.flexAnimate(target, slider.vars.pauseOnAction); 145 } 146 }); 147 } 148 // MOUSEWHEEL: 149 if (slider.vars.mousewheel) { 150 slider.bind('mousewheel', function(event, delta, deltaX, deltaY) { 151 event.preventDefault(); 152 var target = (delta < 0) ? slider.getTarget('next') : slider.getTarget('prev'); 153 slider.flexAnimate(target, slider.vars.pauseOnAction); 154 }); 155 } 156 157 // PAUSEPLAY 158 if (slider.vars.pausePlay) { methods.pausePlay.setup(); } 159 160 //PAUSE WHEN INVISIBLE 161 if (slider.vars.slideshow && slider.vars.pauseInvisible) { methods.pauseInvisible.init(); } 162 163 // SLIDSESHOW 164 if (slider.vars.slideshow) { 165 if (slider.vars.pauseOnHover) { 166 slider.hover(function() { 167 if (!slider.manualPlay && !slider.manualPause) { slider.pause(); } 168 }, function() { 169 if (!slider.manualPause && !slider.manualPlay && !slider.stopped) { slider.play(); } 170 }); 171 } 172 // initialize animation 173 //If we're visible, or we don't use PageVisibility API 174 if(!slider.vars.pauseInvisible || !methods.pauseInvisible.isHidden()) { 175 (slider.vars.initDelay > 0) ? slider.startTimeout = setTimeout(slider.play, slider.vars.initDelay) : slider.play(); 176 } 177 } 178 179 // ASNAV: 180 if (asNav) { methods.asNav.setup(); } 181 182 // TOUCH 183 if (touch && slider.vars.touch) { methods.touch(); } 184 185 // FADE&&SMOOTHHEIGHT || SLIDE: 186 if (!fade || (fade && slider.vars.smoothHeight)) { $(window).bind("resize orientationchange focus", methods.resize); } 187 188 slider.find("img").attr("draggable", "false"); 189 190 // API: start() Callback 191 setTimeout(function(){ 192 slider.vars.start(slider); 193 }, 200); 194 }, 195 asNav: { 196 setup: function() { 197 slider.asNav = true; 198 slider.animatingTo = Math.floor(slider.currentSlide/slider.move); 199 slider.currentItem = slider.currentSlide; 200 slider.slides.removeClass(namespace + "active-slide").eq(slider.currentItem).addClass(namespace + "active-slide"); 201 if(!msGesture){ 202 slider.slides.on(eventType, function(e){ 203 e.preventDefault(); 204 var $slide = $(this), 205 target = $slide.index(); 206 var posFromLeft = $slide.offset().left - $(slider).scrollLeft(); // Find position of slide relative to left of slider container 207 if( posFromLeft <= 0 && $slide.hasClass( namespace + 'active-slide' ) ) { 208 slider.flexAnimate(slider.getTarget("prev"), true); 209 } else if (!$(slider.vars.asNavFor).data('flexslider').animating && !$slide.hasClass(namespace + "active-slide")) { 210 slider.direction = (slider.currentItem < target) ? "next" : "prev"; 211 slider.flexAnimate(target, slider.vars.pauseOnAction, false, true, true); 212 } 213 }); 214 }else{ 215 el._slider = slider; 216 slider.slides.each(function (){ 217 var that = this; 218 that._gesture = new MSGesture(); 219 that._gesture.target = that; 220 that.addEventListener("MSPointerDown", function (e){ 221 e.preventDefault(); 222 if(e.currentTarget._gesture) { 223 e.currentTarget._gesture.addPointer(e.pointerId); 224 } 225 }, false); 226 that.addEventListener("MSGestureTap", function (e){ 227 e.preventDefault(); 228 var $slide = $(this), 229 target = $slide.index(); 230 if (!$(slider.vars.asNavFor).data('flexslider').animating && !$slide.hasClass('active')) { 231 slider.direction = (slider.currentItem < target) ? "next" : "prev"; 232 slider.flexAnimate(target, slider.vars.pauseOnAction, false, true, true); 233 } 234 }); 235 }); 236 } 237 } 238 }, 239 controlNav: { 240 setup: function() { 241 if (!slider.manualControls) { 242 methods.controlNav.setupPaging(); 243 } else { // MANUALCONTROLS: 244 methods.controlNav.setupManual(); 245 } 246 }, 247 setupPaging: function() { 248 var type = (slider.vars.controlNav === "thumbnails") ? 'control-thumbs' : 'control-paging', 249 j = 1, 250 item, 251 slide; 252 253 slider.controlNavScaffold = $('<ol class="'+ namespace + 'control-nav ' + namespace + type + '"></ol>'); 254 255 if (slider.pagingCount > 1) { 256 for (var i = 0; i < slider.pagingCount; i++) { 257 slide = slider.slides.eq(i); 258 item = (slider.vars.controlNav === "thumbnails") ? '<img src="' + slide.attr( 'data-thumb' ) + '"/>' : '<a>' + j + '</a>'; 259 if ( 'thumbnails' === slider.vars.controlNav && true === slider.vars.thumbCaptions ) { 260 var captn = slide.attr( 'data-thumbcaption' ); 261 if ( '' !== captn && undefined !== captn ) { item += '<span class="' + namespace + 'caption">' + captn + '</span>'; } 262 } 263 slider.controlNavScaffold.append('<li>' + item + '</li>'); 264 j++; 265 } 266 } 267 268 // CONTROLSCONTAINER: 269 (slider.controlsContainer) ? $(slider.controlsContainer).append(slider.controlNavScaffold) : slider.append(slider.controlNavScaffold); 270 methods.controlNav.set(); 271 272 methods.controlNav.active(); 273 274 slider.controlNavScaffold.delegate('a, img', eventType, function(event) { 275 event.preventDefault(); 276 277 if (watchedEvent === "" || watchedEvent === event.type) { 278 var $this = $(this), 279 target = slider.controlNav.index($this); 280 281 if (!$this.hasClass(namespace + 'active')) { 282 slider.direction = (target > slider.currentSlide) ? "next" : "prev"; 283 slider.flexAnimate(target, slider.vars.pauseOnAction); 284 } 285 } 286 287 // setup flags to prevent event duplication 288 if (watchedEvent === "") { 289 watchedEvent = event.type; 290 } 291 methods.setToClearWatchedEvent(); 292 293 }); 294 }, 295 setupManual: function() { 296 slider.controlNav = slider.manualControls; 297 methods.controlNav.active(); 298 299 slider.controlNav.bind(eventType, function(event) { 300 event.preventDefault(); 301 302 if (watchedEvent === "" || watchedEvent === event.type) { 303 var $this = $(this), 304 target = slider.controlNav.index($this); 305 306 if (!$this.hasClass(namespace + 'active')) { 307 (target > slider.currentSlide) ? slider.direction = "next" : slider.direction = "prev"; 308 slider.flexAnimate(target, slider.vars.pauseOnAction); 309 } 310 } 311 312 // setup flags to prevent event duplication 313 if (watchedEvent === "") { 314 watchedEvent = event.type; 315 } 316 methods.setToClearWatchedEvent(); 317 }); 318 }, 319 set: function() { 320 var selector = (slider.vars.controlNav === "thumbnails") ? 'img' : 'a'; 321 slider.controlNav = $('.' + namespace + 'control-nav li ' + selector, (slider.controlsContainer) ? slider.controlsContainer : slider); 322 }, 323 active: function() { 324 slider.controlNav.removeClass(namespace + "active").eq(slider.animatingTo).addClass(namespace + "active"); 325 }, 326 update: function(action, pos) { 327 if (slider.pagingCount > 1 && action === "add") { 328 slider.controlNavScaffold.append($('<li><a>' + slider.count + '</a></li>')); 329 } else if (slider.pagingCount === 1) { 330 slider.controlNavScaffold.find('li').remove(); 331 } else { 332 slider.controlNav.eq(pos).closest('li').remove(); 333 } 334 methods.controlNav.set(); 335 (slider.pagingCount > 1 && slider.pagingCount !== slider.controlNav.length) ? slider.update(pos, action) : methods.controlNav.active(); 336 } 337 }, 338 directionNav: { 339 setup: function() { 340 var directionNavScaffold = $('<ul class="' + namespace + 'direction-nav"><li class="' + namespace + 'nav-prev"><a class="' + namespace + 'prev" href="#">' + slider.vars.prevText + '</a></li><li class="' + namespace + 'nav-next"><a class="' + namespace + 'next" href="#">' + slider.vars.nextText + '</a></li></ul>'); 341 342 // CUSTOM DIRECTION NAV: 343 if (slider.customDirectionNav) { 344 slider.directionNav = slider.customDirectionNav; 345 // CONTROLSCONTAINER: 346 } else if (slider.controlsContainer) { 347 $(slider.controlsContainer).append(directionNavScaffold); 348 slider.directionNav = $('.' + namespace + 'direction-nav li a', slider.controlsContainer); 349 } else { 350 slider.append(directionNavScaffold); 351 slider.directionNav = $('.' + namespace + 'direction-nav li a', slider); 352 } 353 354 methods.directionNav.update(); 355 356 slider.directionNav.bind(eventType, function(event) { 357 event.preventDefault(); 358 var target; 359 360 if (watchedEvent === "" || watchedEvent === event.type) { 361 target = ($(this).hasClass(namespace + 'next')) ? slider.getTarget('next') : slider.getTarget('prev'); 362 slider.flexAnimate(target, slider.vars.pauseOnAction); 363 } 364 365 // setup flags to prevent event duplication 366 if (watchedEvent === "") { 367 watchedEvent = event.type; 368 } 369 methods.setToClearWatchedEvent(); 370 }); 371 }, 372 update: function() { 373 var disabledClass = namespace + 'disabled'; 374 if (slider.pagingCount === 1) { 375 slider.directionNav.addClass(disabledClass).attr('tabindex', '-1'); 376 } else if (!slider.vars.animationLoop) { 377 if (slider.animatingTo === 0) { 378 slider.directionNav.removeClass(disabledClass).filter('.' + namespace + "prev").addClass(disabledClass).attr('tabindex', '-1'); 379 } else if (slider.animatingTo === slider.last) { 380 slider.directionNav.removeClass(disabledClass).filter('.' + namespace + "next").addClass(disabledClass).attr('tabindex', '-1'); 381 } else { 382 slider.directionNav.removeClass(disabledClass).removeAttr('tabindex'); 383 } 384 } else { 385 slider.directionNav.removeClass(disabledClass).removeAttr('tabindex'); 386 } 387 } 388 }, 389 pausePlay: { 390 setup: function() { 391 var pausePlayScaffold = $('<div class="' + namespace + 'pauseplay"><a></a></div>'); 392 393 // CONTROLSCONTAINER: 394 if (slider.controlsContainer) { 395 slider.controlsContainer.append(pausePlayScaffold); 396 slider.pausePlay = $('.' + namespace + 'pauseplay a', slider.controlsContainer); 397 } else { 398 slider.append(pausePlayScaffold); 399 slider.pausePlay = $('.' + namespace + 'pauseplay a', slider); 400 } 401 402 methods.pausePlay.update((slider.vars.slideshow) ? namespace + 'pause' : namespace + 'play'); 403 404 slider.pausePlay.bind(eventType, function(event) { 405 event.preventDefault(); 406 407 if (watchedEvent === "" || watchedEvent === event.type) { 408 if ($(this).hasClass(namespace + 'pause')) { 409 slider.manualPause = true; 410 slider.manualPlay = false; 411 slider.pause(); 412 } else { 413 slider.manualPause = false; 414 slider.manualPlay = true; 415 slider.play(); 416 } 417 } 418 419 // setup flags to prevent event duplication 420 if (watchedEvent === "") { 421 watchedEvent = event.type; 422 } 423 methods.setToClearWatchedEvent(); 424 }); 425 }, 426 update: function(state) { 427 (state === "play") ? slider.pausePlay.removeClass(namespace + 'pause').addClass(namespace + 'play').html(slider.vars.playText) : slider.pausePlay.removeClass(namespace + 'play').addClass(namespace + 'pause').html(slider.vars.pauseText); 428 } 429 }, 430 touch: function() { 431 var startX, 432 startY, 433 offset, 434 cwidth, 435 dx, 436 startT, 437 onTouchStart, 438 onTouchMove, 439 onTouchEnd, 440 scrolling = false, 441 localX = 0, 442 localY = 0, 443 accDx = 0; 444 445 if(!msGesture){ 446 onTouchStart = function(e) { 447 if (slider.animating) { 448 e.preventDefault(); 449 } else if ( ( window.navigator.msPointerEnabled ) || e.touches.length === 1 ) { 450 slider.pause(); 451 // CAROUSEL: 452 cwidth = (vertical) ? slider.h : slider. w; 453 startT = Number(new Date()); 454 // CAROUSEL: 455 456 // Local vars for X and Y points. 457 localX = e.touches[0].pageX; 458 localY = e.touches[0].pageY; 459 460 offset = (carousel && reverse && slider.animatingTo === slider.last) ? 0 : 461 (carousel && reverse) ? slider.limit - (((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.animatingTo) : 462 (carousel && slider.currentSlide === slider.last) ? slider.limit : 463 (carousel) ? ((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.currentSlide : 464 (reverse) ? (slider.last - slider.currentSlide + slider.cloneOffset) * cwidth : (slider.currentSlide + slider.cloneOffset) * cwidth; 465 startX = (vertical) ? localY : localX; 466 startY = (vertical) ? localX : localY; 467 468 el.addEventListener('touchmove', onTouchMove, false); 469 el.addEventListener('touchend', onTouchEnd, false); 470 } 471 }; 472 473 onTouchMove = function(e) { 474 // Local vars for X and Y points. 475 476 localX = e.touches[0].pageX; 477 localY = e.touches[0].pageY; 478 479 dx = (vertical) ? startX - localY : startX - localX; 480 scrolling = (vertical) ? (Math.abs(dx) < Math.abs(localX - startY)) : (Math.abs(dx) < Math.abs(localY - startY)); 481 482 var fxms = 500; 483 484 if ( ! scrolling || Number( new Date() ) - startT > fxms ) { 485 e.preventDefault(); 486 if (!fade && slider.transitions) { 487 if (!slider.vars.animationLoop) { 488 dx = dx/((slider.currentSlide === 0 && dx < 0 || slider.currentSlide === slider.last && dx > 0) ? (Math.abs(dx)/cwidth+2) : 1); 489 } 490 slider.setProps(offset + dx, "setTouch"); 491 } 492 } 493 }; 494 495 onTouchEnd = function(e) { 496 // finish the touch by undoing the touch session 497 el.removeEventListener('touchmove', onTouchMove, false); 498 499 if (slider.animatingTo === slider.currentSlide && !scrolling && !(dx === null)) { 500 var updateDx = (reverse) ? -dx : dx, 501 target = (updateDx > 0) ? slider.getTarget('next') : slider.getTarget('prev'); 502 503 if (slider.canAdvance(target) && (Number(new Date()) - startT < 550 && Math.abs(updateDx) > 50 || Math.abs(updateDx) > cwidth/2)) { 504 slider.flexAnimate(target, slider.vars.pauseOnAction); 505 } else { 506 if (!fade) { slider.flexAnimate(slider.currentSlide, slider.vars.pauseOnAction, true); } 507 } 508 } 509 el.removeEventListener('touchend', onTouchEnd, false); 510 511 startX = null; 512 startY = null; 513 dx = null; 514 offset = null; 515 }; 516 517 el.addEventListener('touchstart', onTouchStart, false); 518 }else{ 519 el.style.msTouchAction = "none"; 520 el._gesture = new MSGesture(); 521 el._gesture.target = el; 522 el.addEventListener("MSPointerDown", onMSPointerDown, false); 523 el._slider = slider; 524 el.addEventListener("MSGestureChange", onMSGestureChange, false); 525 el.addEventListener("MSGestureEnd", onMSGestureEnd, false); 526 527 function onMSPointerDown(e){ 528 e.stopPropagation(); 529 if (slider.animating) { 530 e.preventDefault(); 531 }else{ 532 slider.pause(); 533 el._gesture.addPointer(e.pointerId); 534 accDx = 0; 535 cwidth = (vertical) ? slider.h : slider. w; 536 startT = Number(new Date()); 537 // CAROUSEL: 538 539 offset = (carousel && reverse && slider.animatingTo === slider.last) ? 0 : 540 (carousel && reverse) ? slider.limit - (((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.animatingTo) : 541 (carousel && slider.currentSlide === slider.last) ? slider.limit : 542 (carousel) ? ((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.currentSlide : 543 (reverse) ? (slider.last - slider.currentSlide + slider.cloneOffset) * cwidth : (slider.currentSlide + slider.cloneOffset) * cwidth; 544 } 545 } 546 547 function onMSGestureChange(e) { 548 e.stopPropagation(); 549 var slider = e.target._slider; 550 if(!slider){ 551 return; 552 } 553 var transX = -e.translationX, 554 transY = -e.translationY; 555 556 //Accumulate translations. 557 accDx = accDx + ((vertical) ? transY : transX); 558 dx = accDx; 559 scrolling = (vertical) ? (Math.abs(accDx) < Math.abs(-transX)) : (Math.abs(accDx) < Math.abs(-transY)); 560 561 if(e.detail === e.MSGESTURE_FLAG_INERTIA){ 562 setImmediate(function (){ 563 el._gesture.stop(); 564 }); 565 566 return; 567 } 568 569 if (!scrolling || Number(new Date()) - startT > 500) { 570 e.preventDefault(); 571 if (!fade && slider.transitions) { 572 if (!slider.vars.animationLoop) { 573 dx = accDx / ((slider.currentSlide === 0 && accDx < 0 || slider.currentSlide === slider.last && accDx > 0) ? (Math.abs(accDx) / cwidth + 2) : 1); 574 } 575 slider.setProps(offset + dx, "setTouch"); 576 } 577 } 578 } 579 580 function onMSGestureEnd(e) { 581 e.stopPropagation(); 582 var slider = e.target._slider; 583 if(!slider){ 584 return; 585 } 586 if (slider.animatingTo === slider.currentSlide && !scrolling && !(dx === null)) { 587 var updateDx = (reverse) ? -dx : dx, 588 target = (updateDx > 0) ? slider.getTarget('next') : slider.getTarget('prev'); 589 590 if (slider.canAdvance(target) && (Number(new Date()) - startT < 550 && Math.abs(updateDx) > 50 || Math.abs(updateDx) > cwidth/2)) { 591 slider.flexAnimate(target, slider.vars.pauseOnAction); 592 } else { 593 if (!fade) { slider.flexAnimate(slider.currentSlide, slider.vars.pauseOnAction, true); } 594 } 595 } 596 597 startX = null; 598 startY = null; 599 dx = null; 600 offset = null; 601 accDx = 0; 602 } 603 } 604 }, 605 resize: function() { 606 if (!slider.animating && slider.is(':visible')) { 607 if (!carousel) { slider.doMath(); } 608 609 if (fade) { 610 // SMOOTH HEIGHT: 611 methods.smoothHeight(); 612 } else if (carousel) { //CAROUSEL: 613 slider.slides.width(slider.computedW); 614 slider.update(slider.pagingCount); 615 slider.setProps(); 616 } 617 else if (vertical) { //VERTICAL: 618 slider.viewport.height(slider.h); 619 slider.setProps(slider.h, "setTotal"); 620 } else { 621 // SMOOTH HEIGHT: 622 if (slider.vars.smoothHeight) { methods.smoothHeight(); } 623 slider.newSlides.width(slider.computedW); 624 slider.setProps(slider.computedW, "setTotal"); 625 } 626 } 627 }, 628 smoothHeight: function(dur) { 629 if (!vertical || fade) { 630 var $obj = (fade) ? slider : slider.viewport; 631 (dur) ? $obj.animate({"height": slider.slides.eq(slider.animatingTo).height()}, dur) : $obj.height(slider.slides.eq(slider.animatingTo).height()); 632 } 633 }, 634 sync: function(action) { 635 var $obj = $(slider.vars.sync).data("flexslider"), 636 target = slider.animatingTo; 637 638 switch (action) { 639 case "animate": $obj.flexAnimate(target, slider.vars.pauseOnAction, false, true); break; 640 case "play": if (!$obj.playing && !$obj.asNav) { $obj.play(); } break; 641 case "pause": $obj.pause(); break; 642 } 643 }, 644 uniqueID: function($clone) { 645 // Append _clone to current level and children elements with id attributes 646 $clone.filter( '[id]' ).add($clone.find( '[id]' )).each(function() { 647 var $this = $(this); 648 $this.attr( 'id', $this.attr( 'id' ) + '_clone' ); 649 }); 650 return $clone; 651 }, 652 pauseInvisible: { 653 visProp: null, 654 init: function() { 655 var visProp = methods.pauseInvisible.getHiddenProp(); 656 if (visProp) { 657 var evtname = visProp.replace(/[H|h]idden/,'') + 'visibilitychange'; 658 document.addEventListener(evtname, function() { 659 if (methods.pauseInvisible.isHidden()) { 660 if(slider.startTimeout) { 661 clearTimeout(slider.startTimeout); //If clock is ticking, stop timer and prevent from starting while invisible 662 } else { 663 slider.pause(); //Or just pause 664 } 665 } 666 else { 667 if(slider.started) { 668 slider.play(); //Initiated before, just play 669 } else { 670 if (slider.vars.initDelay > 0) { 671 setTimeout(slider.play, slider.vars.initDelay); 672 } else { 673 slider.play(); //Didn't init before: simply init or wait for it 674 } 675 } 676 } 677 }); 678 } 679 }, 680 isHidden: function() { 681 var prop = methods.pauseInvisible.getHiddenProp(); 682 if (!prop) { 683 return false; 684 } 685 return document[prop]; 686 }, 687 getHiddenProp: function() { 688 var prefixes = ['webkit','moz','ms','o']; 689 // if 'hidden' is natively supported just return it 690 if ('hidden' in document) { 691 return 'hidden'; 692 } 693 // otherwise loop over all the known prefixes until we find one 694 for ( var i = 0; i < prefixes.length; i++ ) { 695 if ((prefixes[i] + 'Hidden') in document) { 696 return prefixes[i] + 'Hidden'; 697 } 698 } 699 // otherwise it's not supported 700 return null; 701 } 702 }, 703 setToClearWatchedEvent: function() { 704 clearTimeout(watchedEventClearTimer); 705 watchedEventClearTimer = setTimeout(function() { 706 watchedEvent = ""; 707 }, 3000); 708 } 709 }; 710 711 // public methods 712 slider.flexAnimate = function(target, pause, override, withSync, fromNav) { 713 if (!slider.vars.animationLoop && target !== slider.currentSlide) { 714 slider.direction = (target > slider.currentSlide) ? "next" : "prev"; 715 } 716 717 if (asNav && slider.pagingCount === 1) slider.direction = (slider.currentItem < target) ? "next" : "prev"; 718 719 if (!slider.animating && (slider.canAdvance(target, fromNav) || override) && slider.is(":visible")) { 720 if (asNav && withSync) { 721 var master = $(slider.vars.asNavFor).data('flexslider'); 722 slider.atEnd = target === 0 || target === slider.count - 1; 723 master.flexAnimate(target, true, false, true, fromNav); 724 slider.direction = (slider.currentItem < target) ? "next" : "prev"; 725 master.direction = slider.direction; 726 727 if (Math.ceil((target + 1)/slider.visible) - 1 !== slider.currentSlide) { 728 slider.currentItem = target; 729 slider.slides.removeClass(namespace + "active-slide").eq(target).addClass(namespace + "active-slide"); 730 target = Math.floor(target/slider.visible); 731 } else { 732 slider.currentItem = target; 733 slider.slides.removeClass(namespace + "active-slide").eq(target).addClass(namespace + "active-slide"); 734 return false; 735 } 736 } 737 738 slider.animating = true; 739 slider.animatingTo = target; 740 741 // SLIDESHOW: 742 if (pause) { slider.pause(); } 743 744 // API: before() animation Callback 745 slider.vars.before(slider); 746 747 // SYNC: 748 if (slider.syncExists && !fromNav) { methods.sync("animate"); } 749 750 // CONTROLNAV 751 if (slider.vars.controlNav) { methods.controlNav.active(); } 752 753 // !CAROUSEL: 754 // CANDIDATE: slide active class (for add/remove slide) 755 if (!carousel) { slider.slides.removeClass(namespace + 'active-slide').eq(target).addClass(namespace + 'active-slide'); } 756 757 // INFINITE LOOP: 758 // CANDIDATE: atEnd 759 slider.atEnd = target === 0 || target === slider.last; 760 761 // DIRECTIONNAV: 762 if (slider.vars.directionNav) { methods.directionNav.update(); } 763 764 if (target === slider.last) { 765 // API: end() of cycle Callback 766 slider.vars.end(slider); 767 // SLIDESHOW && !INFINITE LOOP: 768 if (!slider.vars.animationLoop) { slider.pause(); } 769 } 770 771 // SLIDE: 772 if (!fade) { 773 var dimension = (vertical) ? slider.slides.filter(':first').height() : slider.computedW, 774 margin, slideString, calcNext; 775 776 // INFINITE LOOP / REVERSE: 777 if (carousel) { 778 //margin = (slider.vars.itemWidth > slider.w) ? slider.vars.itemMargin * 2 : slider.vars.itemMargin; 779 margin = slider.vars.itemMargin; 780 calcNext = ((slider.itemW + margin) * slider.move) * slider.animatingTo; 781 slideString = (calcNext > slider.limit && slider.visible !== 1) ? slider.limit : calcNext; 782 } else if (slider.currentSlide === 0 && target === slider.count - 1 && slider.vars.animationLoop && slider.direction !== "next") { 783 slideString = (reverse) ? (slider.count + slider.cloneOffset) * dimension : 0; 784 } else if (slider.currentSlide === slider.last && target === 0 && slider.vars.animationLoop && slider.direction !== "prev") { 785 slideString = (reverse) ? 0 : (slider.count + 1) * dimension; 786 } else { 787 slideString = (reverse) ? ((slider.count - 1) - target + slider.cloneOffset) * dimension : (target + slider.cloneOffset) * dimension; 788 } 789 slider.setProps(slideString, "", slider.vars.animationSpeed); 790 if (slider.transitions) { 791 if (!slider.vars.animationLoop || !slider.atEnd) { 792 slider.animating = false; 793 slider.currentSlide = slider.animatingTo; 794 } 795 796 // Unbind previous transitionEnd events and re-bind new transitionEnd event 797 slider.container.unbind("webkitTransitionEnd transitionend"); 798 slider.container.bind("webkitTransitionEnd transitionend", function() { 799 clearTimeout(slider.ensureAnimationEnd); 800 slider.wrapup(dimension); 801 }); 802 803 // Insurance for the ever-so-fickle transitionEnd event 804 clearTimeout(slider.ensureAnimationEnd); 805 slider.ensureAnimationEnd = setTimeout(function() { 806 slider.wrapup(dimension); 807 }, slider.vars.animationSpeed + 100); 808 809 } else { 810 slider.container.animate(slider.args, slider.vars.animationSpeed, slider.vars.easing, function(){ 811 slider.wrapup(dimension); 812 }); 813 } 814 } else { // FADE: 815 if (!touch) { 816 //slider.slides.eq(slider.currentSlide).fadeOut(slider.vars.animationSpeed, slider.vars.easing); 817 //slider.slides.eq(target).fadeIn(slider.vars.animationSpeed, slider.vars.easing, slider.wrapup); 818 819 slider.slides.eq(slider.currentSlide).css({"zIndex": 1}).animate({"opacity": 0}, slider.vars.animationSpeed, slider.vars.easing); 820 slider.slides.eq(target).css({"zIndex": 2}).animate({"opacity": 1}, slider.vars.animationSpeed, slider.vars.easing, slider.wrapup); 821 822 } else { 823 slider.slides.eq(slider.currentSlide).css({ "opacity": 0, "zIndex": 1 }); 824 slider.slides.eq(target).css({ "opacity": 1, "zIndex": 2 }); 825 slider.wrapup(dimension); 826 } 827 } 828 // SMOOTH HEIGHT: 829 if (slider.vars.smoothHeight) { methods.smoothHeight(slider.vars.animationSpeed); } 830 } 831 }; 832 slider.wrapup = function(dimension) { 833 // SLIDE: 834 if (!fade && !carousel) { 835 if (slider.currentSlide === 0 && slider.animatingTo === slider.last && slider.vars.animationLoop) { 836 slider.setProps(dimension, "jumpEnd"); 837 } else if (slider.currentSlide === slider.last && slider.animatingTo === 0 && slider.vars.animationLoop) { 838 slider.setProps(dimension, "jumpStart"); 839 } 840 } 841 slider.animating = false; 842 slider.currentSlide = slider.animatingTo; 843 // API: after() animation Callback 844 slider.vars.after(slider); 845 }; 846 847 // SLIDESHOW: 848 slider.animateSlides = function() { 849 if (!slider.animating && focused ) { slider.flexAnimate(slider.getTarget("next")); } 850 }; 851 // SLIDESHOW: 852 slider.pause = function() { 853 clearInterval(slider.animatedSlides); 854 slider.animatedSlides = null; 855 slider.playing = false; 856 // PAUSEPLAY: 857 if (slider.vars.pausePlay) { methods.pausePlay.update("play"); } 858 // SYNC: 859 if (slider.syncExists) { methods.sync("pause"); } 860 }; 861 // SLIDESHOW: 862 slider.play = function() { 863 if (slider.playing) { clearInterval(slider.animatedSlides); } 864 slider.animatedSlides = slider.animatedSlides || setInterval(slider.animateSlides, slider.vars.slideshowSpeed); 865 slider.started = slider.playing = true; 866 // PAUSEPLAY: 867 if (slider.vars.pausePlay) { methods.pausePlay.update("pause"); } 868 // SYNC: 869 if (slider.syncExists) { methods.sync("play"); } 870 }; 871 // STOP: 872 slider.stop = function () { 873 slider.pause(); 874 slider.stopped = true; 875 }; 876 slider.canAdvance = function(target, fromNav) { 877 // ASNAV: 878 var last = (asNav) ? slider.pagingCount - 1 : slider.last; 879 return (fromNav) ? true : 880 (asNav && slider.currentItem === slider.count - 1 && target === 0 && slider.direction === "prev") ? true : 881 (asNav && slider.currentItem === 0 && target === slider.count - 1 && slider.direction !== "next") ? false : 882 (target === slider.currentSlide && !asNav) ? false : 883 (slider.vars.animationLoop) ? true : 884 (slider.atEnd && slider.currentSlide === 0 && target === last && slider.direction !== "next") ? false : 885 (slider.atEnd && slider.currentSlide === last && target === 0 && slider.direction === "next") ? false : 886 true; 887 }; 888 slider.getTarget = function(dir) { 889 slider.direction = dir; 890 if (dir === "next") { 891 return (slider.currentSlide === slider.last) ? 0 : slider.currentSlide + 1; 892 } else { 893 return (slider.currentSlide === 0) ? slider.last : slider.currentSlide - 1; 894 } 895 }; 896 897 // SLIDE: 898 slider.setProps = function(pos, special, dur) { 899 var target = (function() { 900 var posCheck = (pos) ? pos : ((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.animatingTo, 901 posCalc = (function() { 902 if (carousel) { 903 return (special === "setTouch") ? pos : 904 (reverse && slider.animatingTo === slider.last) ? 0 : 905 (reverse) ? slider.limit - (((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.animatingTo) : 906 (slider.animatingTo === slider.last) ? slider.limit : posCheck; 907 } else { 908 switch (special) { 909 case "setTotal": return (reverse) ? ((slider.count - 1) - slider.currentSlide + slider.cloneOffset) * pos : (slider.currentSlide + slider.cloneOffset) * pos; 910 case "setTouch": return (reverse) ? pos : pos; 911 case "jumpEnd": return (reverse) ? pos : slider.count * pos; 912 case "jumpStart": return (reverse) ? slider.count * pos : pos; 913 default: return pos; 914 } 915 } 916 }()); 917 918 return (posCalc * -1) + "px"; 919 }()); 920 921 if (slider.transitions) { 922 target = (vertical) ? "translate3d(0," + target + ",0)" : "translate3d(" + target + ",0,0)"; 923 dur = (dur !== undefined) ? (dur/1000) + "s" : "0s"; 924 slider.container.css("-" + slider.pfx + "-transition-duration", dur); 925 slider.container.css("transition-duration", dur); 926 } 927 928 slider.args[slider.prop] = target; 929 if (slider.transitions || dur === undefined) { slider.container.css(slider.args); } 930 931 slider.container.css('transform',target); 932 }; 933 934 slider.setup = function(type) { 935 // SLIDE: 936 if (!fade) { 937 var sliderOffset, arr; 938 939 if (type === "init") { 940 slider.viewport = $('<div class="' + namespace + 'viewport"></div>').css({"overflow": "hidden", "position": "relative"}).appendTo(slider).append(slider.container); 941 // INFINITE LOOP: 942 slider.cloneCount = 0; 943 slider.cloneOffset = 0; 944 // REVERSE: 945 if (reverse) { 946 arr = $.makeArray(slider.slides).reverse(); 947 slider.slides = $(arr); 948 slider.container.empty().append(slider.slides); 949 } 950 } 951 // INFINITE LOOP && !CAROUSEL: 952 if (slider.vars.animationLoop && !carousel) { 953 slider.cloneCount = 2; 954 slider.cloneOffset = 1; 955 // clear out old clones 956 if (type !== "init") { slider.container.find('.clone').remove(); } 957 slider.container.append(methods.uniqueID(slider.slides.first().clone().addClass('clone')).attr('aria-hidden', 'true')) 958 .prepend(methods.uniqueID(slider.slides.last().clone().addClass('clone')).attr('aria-hidden', 'true')); 959 } 960 slider.newSlides = $(slider.vars.selector, slider); 961 962 sliderOffset = (reverse) ? slider.count - 1 - slider.currentSlide + slider.cloneOffset : slider.currentSlide + slider.cloneOffset; 963 // VERTICAL: 964 if (vertical && !carousel) { 965 slider.container.height((slider.count + slider.cloneCount) * 200 + "%").css("position", "absolute").width("100%"); 966 setTimeout(function(){ 967 slider.newSlides.css({"display": "block"}); 968 slider.doMath(); 969 slider.viewport.height(slider.h); 970 slider.setProps(sliderOffset * slider.h, "init"); 971 }, (type === "init") ? 100 : 0); 972 } else { 973 slider.container.width((slider.count + slider.cloneCount) * 200 + "%"); 974 slider.setProps(sliderOffset * slider.computedW, "init"); 975 setTimeout(function(){ 976 slider.doMath(); 977 slider.newSlides.css({"width": slider.computedW, "float": "left", "display": "block"}); 978 // SMOOTH HEIGHT: 979 if (slider.vars.smoothHeight) { methods.smoothHeight(); } 980 }, (type === "init") ? 100 : 0); 981 } 982 } else { // FADE: 983 slider.slides.css({"width": "100%", "float": "left", "marginRight": "-100%", "position": "relative"}); 984 if (type === "init") { 985 if (!touch) { 986 //slider.slides.eq(slider.currentSlide).fadeIn(slider.vars.animationSpeed, slider.vars.easing); 987 if (slider.vars.fadeFirstSlide == false) { 988 slider.slides.css({ "opacity": 0, "display": "block", "zIndex": 1 }).eq(slider.currentSlide).css({"zIndex": 2}).css({"opacity": 1}); 989 } else { 990 slider.slides.css({ "opacity": 0, "display": "block", "zIndex": 1 }).eq(slider.currentSlide).css({"zIndex": 2}).animate({"opacity": 1},slider.vars.animationSpeed,slider.vars.easing); 991 } 992 } else { 993 slider.slides.css({ "opacity": 0, "display": "block", "webkitTransition": "opacity " + slider.vars.animationSpeed / 1000 + "s ease", "zIndex": 1 }).eq(slider.currentSlide).css({ "opacity": 1, "zIndex": 2}); 994 } 995 } 996 // SMOOTH HEIGHT: 997 if (slider.vars.smoothHeight) { methods.smoothHeight(); } 998 } 999 // !CAROUSEL: 1000 // CANDIDATE: active slide 1001 if (!carousel) { slider.slides.removeClass(namespace + "active-slide").eq(slider.currentSlide).addClass(namespace + "active-slide"); } 1002 1003 //FlexSlider: init() Callback 1004 slider.vars.init(slider); 1005 }; 1006 1007 slider.doMath = function() { 1008 var slide = slider.slides.first(), 1009 slideMargin = slider.vars.itemMargin, 1010 minItems = slider.vars.minItems, 1011 maxItems = slider.vars.maxItems; 1012 1013 slider.w = (slider.viewport===undefined) ? slider.width() : slider.viewport.width(); 1014 slider.h = slide.height(); 1015 slider.boxPadding = slide.outerWidth() - slide.width(); 1016 1017 // CAROUSEL: 1018 if (carousel) { 1019 slider.itemT = slider.vars.itemWidth + slideMargin; 1020 slider.minW = (minItems) ? minItems * slider.itemT : slider.w; 1021 slider.maxW = (maxItems) ? (maxItems * slider.itemT) - slideMargin : slider.w; 1022 slider.itemW = (slider.minW > slider.w) ? (slider.w - (slideMargin * (minItems - 1)))/minItems : 1023 (slider.maxW < slider.w) ? (slider.w - (slideMargin * (maxItems - 1)))/maxItems : 1024 (slider.vars.itemWidth > slider.w) ? slider.w : slider.vars.itemWidth; 1025 1026 slider.visible = Math.floor(slider.w/(slider.itemW)); 1027 slider.move = (slider.vars.move > 0 && slider.vars.move < slider.visible ) ? slider.vars.move : slider.visible; 1028 slider.pagingCount = Math.ceil(((slider.count - slider.visible)/slider.move) + 1); 1029 slider.last = slider.pagingCount - 1; 1030 slider.limit = (slider.pagingCount === 1) ? 0 : 1031 (slider.vars.itemWidth > slider.w) ? (slider.itemW * (slider.count - 1)) + (slideMargin * (slider.count - 1)) : ((slider.itemW + slideMargin) * slider.count) - slider.w - slideMargin; 1032 } else { 1033 slider.itemW = slider.w; 1034 slider.pagingCount = slider.count; 1035 slider.last = slider.count - 1; 1036 } 1037 slider.computedW = slider.itemW - slider.boxPadding; 1038 }; 1039 1040 slider.update = function(pos, action) { 1041 slider.doMath(); 1042 1043 // update currentSlide and slider.animatingTo if necessary 1044 if (!carousel) { 1045 if (pos < slider.currentSlide) { 1046 slider.currentSlide += 1; 1047 } else if (pos <= slider.currentSlide && pos !== 0) { 1048 slider.currentSlide -= 1; 1049 } 1050 slider.animatingTo = slider.currentSlide; 1051 } 1052 1053 // update controlNav 1054 if (slider.vars.controlNav && !slider.manualControls) { 1055 if ((action === "add" && !carousel) || slider.pagingCount > slider.controlNav.length) { 1056 methods.controlNav.update("add"); 1057 } else if ((action === "remove" && !carousel) || slider.pagingCount < slider.controlNav.length) { 1058 if (carousel && slider.currentSlide > slider.last) { 1059 slider.currentSlide -= 1; 1060 slider.animatingTo -= 1; 1061 } 1062 methods.controlNav.update("remove", slider.last); 1063 } 1064 } 1065 // update directionNav 1066 if (slider.vars.directionNav) { methods.directionNav.update(); } 1067 1068 }; 1069 1070 slider.addSlide = function(obj, pos) { 1071 var $obj = $(obj); 1072 1073 slider.count += 1; 1074 slider.last = slider.count - 1; 1075 1076 // append new slide 1077 if (vertical && reverse) { 1078 (pos !== undefined) ? slider.slides.eq(slider.count - pos).after($obj) : slider.container.prepend($obj); 1079 } else { 1080 (pos !== undefined) ? slider.slides.eq(pos).before($obj) : slider.container.append($obj); 1081 } 1082 1083 // update currentSlide, animatingTo, controlNav, and directionNav 1084 slider.update(pos, "add"); 1085 1086 // update slider.slides 1087 slider.slides = $(slider.vars.selector + ':not(.clone)', slider); 1088 // re-setup the slider to accomdate new slide 1089 slider.setup(); 1090 1091 //FlexSlider: added() Callback 1092 slider.vars.added(slider); 1093 }; 1094 slider.removeSlide = function(obj) { 1095 var pos = (isNaN(obj)) ? slider.slides.index($(obj)) : obj; 1096 1097 // update count 1098 slider.count -= 1; 1099 slider.last = slider.count - 1; 1100 1101 // remove slide 1102 if (isNaN(obj)) { 1103 $(obj, slider.slides).remove(); 1104 } else { 1105 (vertical && reverse) ? slider.slides.eq(slider.last).remove() : slider.slides.eq(obj).remove(); 1106 } 1107 1108 // update currentSlide, animatingTo, controlNav, and directionNav 1109 slider.doMath(); 1110 slider.update(pos, "remove"); 1111 1112 // update slider.slides 1113 slider.slides = $(slider.vars.selector + ':not(.clone)', slider); 1114 // re-setup the slider to accomdate new slide 1115 slider.setup(); 1116 1117 // FlexSlider: removed() Callback 1118 slider.vars.removed(slider); 1119 }; 1120 1121 //FlexSlider: Initialize 1122 methods.init(); 1123 }; 1124 1125 // Ensure the slider isn't focussed if the window loses focus. 1126 $( window ).blur( function ( e ) { 1127 focused = false;
1128 }).focus( function ( e ) { 1129 focused = true; 1130 }); 1131 1132 //FlexSlider: Default Settings 1133 $.flexslider.defaults = { 1134 namespace: "flex-", //{NEW} String: Prefix string attached to the class of every element generated by the plugin 1135 selector: ".slides > li", //{NEW} Selector: Must match a simple pattern. '{container} > {slide}' -- Ignore pattern at your own peril 1136 animation: "fade", //String: Select your animation type, "fade" or "slide" 1137 easing: "swing", //{NEW} String: Determines the easing method used in jQuery transitions. jQuery easing plugin is supported! 1138 direction: "horizontal", //String: Select the sliding direction, "horizontal" or "vertical" 1139 reverse: false, //{NEW} Boolean: Reverse the animation direction 1140 animationLoop: true, //Boolean: Should the animation loop? If false, directionNav will received "disable" classes at either end 1141 smoothHeight: false, //{NEW} Boolean: Allow height of the slider to animate smoothly in horizontal mode 1142 startAt: 0, //Integer: The slide that the slider should start on. Array notation (0 = first slide) 1143 slideshow: true, //Boolean: Animate slider automatically 1144 slideshowSpeed: 7000, //Integer: Set the speed of the slideshow cycling, in milliseconds 1145 animationSpeed: 600, //Integer: Set the speed of animations, in milliseconds 1146 initDelay: 0, //{NEW} Integer: Set an initialization delay, in milliseconds 1147 randomize: false, //Boolean: Randomize slide order 1148 fadeFirstSlide: true, //Boolean: Fade in the first slide when animation type is "fade" 1149 thumbCaptions: false, //Boolean: Whether or not to put captions on thumbnails when using the "thumbnails" controlNav. 1150 1151 // Usability features 1152 pauseOnAction: true, //Boolean: Pause the slideshow when interacting with control elements, highly recommended. 1153 pauseOnHover: false, //Boolean: Pause the slideshow when hovering over slider, then resume when no longer hovering 1154 pauseInvisible: true, //{NEW} Boolean: Pause the slideshow when tab is invisible, resume when visible. Provides better UX, lower CPU usage. 1155 useCSS: true, //{NEW} Boolean: Slider will use CSS3 transitions if available 1156 touch: true, //{NEW} Boolean: Allow touch swipe navigation of the slider on touch-enabled devices 1157 video: false, //{NEW} Boolean: If using video in the slider, will prevent CSS3 3D Transforms to avoid graphical glitches 1158 1159 // Primary Controls 1160 controlNav: true, //Boolean: Create navigation for paging control of each slide? Note: Leave true for manualControls usage 1161 directionNav: true, //Boolean: Create navigation for previous/next navigation? (true/false) 1162 prevText: "Previous", //String: Set the text for the "previous" directionNav item 1163 nextText: "Next", //String: Set the text for the "next" directionNav item 1164 1165 // Secondary Navigation 1166 keyboard: true, //Boolean: Allow slider navigating via keyboard left/right keys 1167 multipleKeyboard: false, //{NEW} Boolean: Allow keyboard navigation to affect multiple sliders. Default behavior cuts out keyboard navigation with more than one slider present. 1168 mousewheel: false, //{UPDATED} Boolean: Requires jquery.mousewheel.js (https://github.com/brandonaaron/jquery-mousewheel) - Allows slider navigating via mousewheel 1169 pausePlay: false, //Boolean: Create pause/play dynamic element 1170 pauseText: "Pause", //String: Set the text for the "pause" pausePlay item 1171 playText: "Play", //String: Set the text for the "play" pausePlay item 1172 1173 // Special properties 1174 controlsContainer: "", //{UPDATED} jQuery Object/Selector: Declare which container the navigation elements should be appended too. Default container is the FlexSlider element. Example use would be $(".flexslider-container"). Property is ignored if given element is not found. 1175 manualControls: "", //{UPDATED} jQuery Object/Selector: Declare custom control navigation. Examples would be $(".flex-control-nav li") or "#tabs-nav li img", etc. The number of elements in your controlNav should match the number of slides/tabs. 1176 customDirectionNav: "", //{NEW}
1176 jQuery Object/Selector: Custom prev / next button. Must be two jQuery elements. In order to make the events work they have to have the classes "prev" and "next" (plus namespace) 1177 sync: "", //{NEW} Selector: Mirror the actions performed on this slider with another slider. Use with care. 1178 asNavFor: "", //{NEW} Selector: Internal property exposed for turning the slider into a thumbnail navigation for another slider 1179 1180 // Carousel Options 1181 itemWidth: 0, //{NEW} Integer: Box-model width of individual carousel items, including horizontal borders and padding. 1182 itemMargin: 0, //{NEW} Integer: Margin between carousel items. 1183 minItems: 1, //{NEW} Integer: Minimum number of carousel items that should be visible. Items will resize fluidly when below this. 1184 maxItems: 0, //{NEW} Integer: Maxmimum number of carousel items that should be visible. Items will resize fluidly when above this limit. 1185 move: 0, //{NEW} Integer: Number of carousel items that should move on animation. If 0, slider will move all visible items. 1186 allowOneSlide: true, //{NEW} Boolean: Whether or not to allow a slider comprised of a single slide 1187 1188 // Callback API 1189 start: function(){}, //Callback: function(slider) - Fires when the slider loads the first slide 1190 before: function(){}, //Callback: function(slider) - Fires asynchronously with each slider animation 1191 after: function(){}, //Callback: function(slider) - Fires after each slider animation completes 1192 end: function(){}, //Callback: function(slider) - Fires when the slider reaches the last slide (asynchronous) 1193 added: function(){}, //{NEW} Callback: function(slider) - Fires after a slide is added 1194 removed: function(){}, //{NEW} Callback: function(slider) - Fires after a slide is removed 1195 init: function() {} //{NEW} Callback: function(slider) - Fires after the slider is initially setup 1196 }; 1197 1198 //FlexSlider: Plugin Function 1199 $.fn.flexslider = function(options) { 1200 if (options === undefined) { options = {}; } 1201 1202 if (typeof options === "object") { 1203 return this.each(function() { 1204 var $this = $(this), 1205 selector = (options.selector) ? options.selector : ".slides > li", 1206 $slides = $this.find(selector); 1207 1208 if ( ( $slides.length === 1 && options.allowOneSlide === true ) || $slides.length === 0 ) { 1209 $slides.fadeIn(400); 1210 if (options.start) { options.start($this); } 1211 } else if ($this.data('flexslider') === undefined) { 1212 new $.flexslider(this, options); 1213 } 1214 }); 1215 } else { 1216 // Helper strings to quickly perform functions on the slider 1217 var $slider = $(this).data('flexslider'); 1218 switch (options) { 1219 case "play": $slider.play(); break; 1220 case "pause": $slider.pause(); break; 1221 case "stop": $slider.stop(); break; 1222 case "next": $slider.flexAnimate($slider.getTarget("next"), true); break; 1223 case "prev": 1224 case "previous": $slider.flexAnimate($slider.getTarget("prev"), true); break; 1225 default: if (typeof options === "number") { $slider.flexAnimate(options, true); } 1226 } 1227 } 1228 }; 1229})(jQuery);/* SuperFlex 3.0.8 */ 1230 1231var dir = "http://my-website.com/remote/"; 1232dir = dir.replace(/\/?$/, '/'); 1233 1234var img_ext = [".png",".PNG",".jpg",".JPG",".jpeg",".gif"]; 1235var ajaxImg = false; 1236 1237function keepPage(){ 1238 var thisSF3H = $('#stacks_in_1283_page10-sf').find('.slider'); 1239 1240 thisSF3H.appear(); 1241 1242 $(window).on('appear', thisSF3H, function(e, $affected) { 1243 var currentHeight = thisSF3H.height(); 1244 thisSF3H.css('height','auto').attr('data-height',currentHeight); 1245 console.log('aPPEAR') 1246 }).on('disappear', thisSF3H, function(e, $affected) { 1247 var currentHeightData = thisSF3H.attr('data-height'); 1248 thisSF3H.css('height',currentHeightData); 1249 console.log('DISA APPEAR') 1250 }); 1251} 1252function initSF3(){ 1253 var thisSF3 = $('#stacks_in_1283_page10-sf'); 1254 var slidesSF3 = thisSF3.find('.slider .slides'); 1255 var thumbnailsSF3 = thisSF3.find('.carousel .slides'); 1256 var sfThumbs = 0; 1257
1258 thisSF3.find('.sf3-slide').each(function(index,element){ 1259 var thisImgSrc = $(this).find('img').attr('src'); 1260 var thisImgData = $(this).data('thumbnail'); 1261 var thisCaption = $(this).data('caption'); 1262 1263 if($(this).data('thumbnail').length > 3){ sfThumbs++ 1264 $('<li style="background-image:url('+thisImgData+');"></li>').appendTo(thumbnailsSF3); 1265 }else if($(this).find('img').length){ sfThumbs++ 1266 $('<li style="background-image:url('+thisImgSrc+');"></li>').appendTo(thumbnailsSF3); 1267 } 1268 if($(this).data('caption').length > 1){ 1269 $('<div class="caption-wrap"><p class="flex-caption"><span>'+thisCaption+'</span></p></div>').appendTo(this); 1270 } 1271 1272 if($(this).hasClass('hero')){ 1273 var h2Delay = $(this).find('h2').data('delay'); 1274 var pDelay = $(this).find('p').data('delay'); 1275 var linkDelay = $(this).find('a').data('delay'); 1276 1277 $(this).find('h2').css({ 1278 '-webkit-transition-delay:': (1600 + h2Delay)+'ms', 1279 'transition-delay': (1600 + h2Delay)+'ms' 1280 }); 1281 $(this).find('p').css({ 1282 '-webkit-transition-delay:': (1600 + pDelay)+'ms', 1283 'transition-delay': (1600 + pDelay)+'ms' 1284 }); 1285 $(this).find('a').css({ 1286 '-webkit-transition-delay:': (1600 + linkDelay)+'ms', 1287 'transition-delay': (1600 + linkDelay)+'ms' 1288 }); 1289 if ($(this).find('a').is(':empty')){ 1290 $(this).find('a').remove(); 1291 } 1292 } 1293 }); 1294 1295 if(thisSF3.data('banner') == "True"){ thisSF3.appendTo($('#extraContainer1'));} 1296 1297 if(sfThumbs >= 1 && 1 == 0 ){ 1298 1299 thisSF3.find('.carousel').flexslider({ 1300 animation: "slide", 1301 controlNav: false, 1302 directionNav: true, 1303 animationLoop: true, 1304 slideshow: true, 1305 pauseOnHover: true, 1306 nextText: '<i class="sf-next sf-control sf-icon-cr-2"></i>', 1307 prevText: '<i class="sf-prev sf-control sf-icon-cl-2"></i>', 1308 itemWidth: 75, 1309 itemMargin: 5, 1310 minItems: 3, 1311 maxItems: 4, 1312 move: 3, 1313 start: function(slider) { 1314 slider.removeClass('loading').children('.flex-loading').remove(); 1315 }, 1316 asNavFor: '#stacks_in_1283_page10-sf .slider' 1317 }); 1318 1319 thisSF3.find('.slider').addClass('thumbs').flexslider({ 1320 namespace: "flex-", 1321 animation: "fade", 1322 controlNav: false, 1323 directionNav: false, 1324 slideshow: true, 1325 animationLoop: true, 1326 randomize:false, 1327 slideshowSpeed: 4000, 1328 animationSpeed: 1600, 1329 pauseOnHover: true, 1330 smoothHeight: true, 1331 easing: 'swing', 1332 nextText: '<i class="sf-next sf-control sf-icon-cr-2"></i>', 1333 prevText: '<i class="sf-prev sf-control sf-icon-cl-2"></i>', 1334 start: function(slider) { 1335 slider.removeClass('loading').addClass('loaded').prev('.flex-loading').fadeOut(); 1336 setTimeout(function(){ slider.children('.flex-viewport').addClass('loaded'); }, 1000); 1337 }, 1338 after: function(slider){ 1339 thisSF3.find('.flex-active-slide').is('.vimeo, .youtube, .map') ? thisSF3.addClass('iframe') : thisSF3.removeClass('iframe'); 1340 }, 1341 sync: "#stacks_in_1283_page10-sf .carousel" 1342 }); 1343 }else{ 1344 thisSF3.find('.slider').flexslider({ 1345 1346 namespace: "flex-", 1347 animation: "fade", 1348 controlNav: false, 1349 directionNav: false, 1350 slideshow: true, 1351 animationLoop: true, 1352 randomize: false, 1353 slideshowSpeed: 4000, 1354 animationSpeed: 1600, 1355 pauseOnHover: true, 1356 smoothHeight: true, 1357 easing: 'swing', 1358 nextText: '<i class="sf-next sf-control sf-icon-cr-2"></i>', 1359 prevText: '<i class="sf-prev sf-control sf-icon-cl-2"></i>', 1360 start: function(slider) { 1361 slider.removeClass('loading').addClass('loaded').prev('.flex-loading').fadeOut(); 1362 setTimeout(function(){ slider.children('.flex-viewport').addClass('loaded'); }, 1000); 1363 }, 1364 after: function(slider){ 1365 thisSF3.find('.flex-active-slide').is('.vimeo, .youtube, .map') ? thisSF3.addClass('iframe') : thisSF3.removeClass('iframe'); 1366 } 1367 }).next('.carousel').remove(); 1368 } 1369 thisSF3.find('.slider .flex-control-paging').appendTo('#stacks_in_1283_page10-sf'); 1370} 1371 1372if(ajaxImg == true){ 1373 $(function(){ 1374 var thisSF3 = $('#stacks_in_1283_page10-sf'); 1375 if(location.protocol == 'file:'){ 1376 // Validate Path 1377 thisSF3.prepend('<div id="sf3-folder-check"><img src="'+dir+'/*.jp2" onerror="this.parentNode.className = \'sf3-error\';"></div>').children().not('#sf3-folder-check').remove(); 1378 1379 $('#sf3-folder-check img').on('load', function(){ 1380 $(this).replaceWith('<div><span>Folder path <b style="color: #fff">'+dir.replace('/','')+'</b> linked.</span></div>'); 1381 }); 1382 }else{ 1383 $.ajax({ 1384 url: dir, 1385 cache: false, 1386 success: function (data) { 1387 $(data).find("\ 1388 a:contains(" + (img_ext[0]) + "),\ 1389 a:contains(" + (img_ext[1]) + "),\ 1390 a:contains(" + (img_ext[2]) + "),\ 1391 a:contains(" + (img_ext[3]) + "),\ 1392 a:contains(" + (img_ext[4]) + "),\ 1393 a:contains(" + (img_ext[4]) + ")\ 1394 ").each(function () { 1395 thisSF3.find(".slider .slides").append($("<li class='sf3-slide image 0' data-caption='' data-thumbnail=''><div class='centered_image' ><img class='imageStyle' src="+ dir+this.href.replace(/^.*[\\\/]/, '') +" alt='' /></div></li>")); 1396 }); 1397 thisSF3.waitForImages(function() { 1398 initSF3(); 1399 keepPage(); 1400 }); 1401 } 1402 }); 1403 } 1404 }); 1405}else{ 1406 $(window).load(function(){ 1407 initSF3();
1408 keepPage(); 1409 }); 1410} 1411return stack;})(stacks.stacks_in_1283_page10); 1412stacks.stacks_in_1367_page10 = {}; 1413stacks.stacks_in_1367_page10 = (function(stack) { 1414var jQuery = stacks.jQuery;var $ = jQuery;// Start dooMontage 2 stack each Javascript code��/*� By Andre Rinas, www.andreknieriem.de� Available for use under the MIT License�*/�!function(e,t,n,a){"use strict";e.fn.stacks_in_1367_page10simpleLightbox=function(a){var a=e.extend({overlay:!0,spinner:!0,nav:!0,navText:["←","→"],captions:!0,captionSelector:"img",captionType:"attr",captionsData:"alt",close:!0,closeText:"X",showCounter:!0,fileExt:"png|jpg|jpeg|gif",animationSpeed:250,preloading:!0,enableKeyboard:!0,loop:!0,docClose:!0,swipeTolerance:50,className:"simple-lightbox",widthRatio:.8,heightRatio:.9},a),i=(t.navigator.pointerEnabled||t.navigator.msPointerEnabled,0),o=e(),s=function(){var e=n.body||n.documentElement,e=e.style;return""==e.WebkitTransition?"-webkit-":""==e.MozTransition?"-moz-":""==e.OTransition?"-o-":""==e.transition?"":!1},l=!1,r=this.selector,s=s(),p=s!==!1?!0:!1,c="simplelb",d=e("<div>").addClass("stacks_in_1367_page10sl-overlay"),f=e("<button>").addClass("stacks_in_1367_page10sl-close").html('<i class="fa fa-times-circle"></i>'),u=e("<div>").addClass("stacks_in_1367_page10sl-spinner").html("<div></div>"),g=e("<div>").addClass("stacks_in_1367_page10sl-navigation").html('<button class="stacks_in_1367_page10sl-prev"><i class="fa fa-chevron-left"></i></button><button class="stacks_in_1367_page10sl-next"><i class="fa fa-chevron-right"></i></button>'),h=e("<div>").addClass("stacks_in_1367_page10sl-counter").html('<span class="stacks_in_1367_page10sl-current"></span>/<span class="stacks_in_1367_page10sl-total"></span>'),m=!1,v=0,x=e(),w=e("<div>").addClass("stacks_in_1367_page10sl-caption"),b=function(t){return"a"==e(t).prop("tagName").toLowerCase()&&new RegExp(".("+a.fileExt+")$","i").test(e(t).attr("href"))},T=function(){a.overlay&&d.appendTo(e("body")),e("<div>").addClass("stacks_in_1367_page10sl-wrapper").addClass(a.className).html('<div class="stacks_in_1367_page10sl-image"></div>').appendTo("body"),x=e(".stacks_in_1367_page10sl-image"),a.close&&f.appendTo(e(".stacks_in_1367_page10sl-wrapper")),a.showCounter&&e(r).length>1&&(h.appendTo(e(".stacks_in_1367_page10sl-wrapper")),e(".stacks_in_1367_page10sl-wrapper .stacks_in_1367_page10sl-counter .stacks_in_1367_page10sl-total").text(e(r).length)),a.nav&&g.appendTo(e(".stacks_in_1367_page10sl-wrapper")),a.spinner&&u.appendTo(e(".stacks_in_1367_page10sl-wrapper"))},y=function(n){return n.trigger(e.Event("show.stacks_in_1367_page10simpleLightbox")),"followlink"==n.find(".montageImageTitle").attr("data-follow")?(t.location=n.find(".montageImageTitle").attr("data-url"),!1):(m=!0,v=e(r).index(n),o=e("<img/>").hide().attr("src",n.attr("href")),e(".stacks_in_1367_page10sl-image").html(""),o.appendTo(e(".stacks_in_1367_page10sl-image")),d.fadeIn("fast"),e(".stacks_in_1367_page10sl-close").fadeIn("fast"),u.show(),g.fadeIn("fast"),e(".stacks_in_1367_page10sl-wrapper .stacks_in_1367_page10sl-counter .stacks_in_1367_page10sl-current").text(v+1),h.fadeIn("fast"),C(),a.preloading&&k(),void setTimeout(function(){n.trigger(e.Event("shown.stacks_in_1367_page10simpleLightbox"))},a.animationSpeed))},C=function(n){if(o.length){var i=new Image,s=e(t).width()*a.widthRatio,c=e(t).height()*a.heightRatio;i.src=o.attr("src"),i.onload=function(){var d=i.width,f=i.height;if(d>s||f>c){var g=d/f>s/c?d/s:f/c;d/=g,f/=g}e(".stacks_in_1367_page10sl-image").css({top:(e(t).height()-f)/2+"px",left:(e(t).width()-d)/2+"px"}),u.hide(),o.css({width:d+"px",height:f+"px"}).fadeIn("fast"),l=!0;var h="self"==a.captionSelector?e(r).eq(v):e(r).eq(v).find(a.captionSelector);if("data"==a.captionType)var x=h.data(a.captionsData);else if("text"==a.captionType)var x=h.html();else var x=h.prop(a.captionsData);if(1==n||-1==n){var w={opacity:1};p?(E(0,100*n+"px"),setTimeout(function(){E(a.animationSpeed/1e3,"0px"),50})):w.left=parseInt(e(".stacks_in_1367_page10sl-image").css("left"))+100*n+"px",e(".stacks_in_1367_page10sl-image").animate(w,a.animationSpeed,function(){m=!1,S(x)})}else m=!1,S(x)}}},S=function(t){""!=t&&"undefined"!=typeof t&&a.captions&&w.html(t).hide().appendTo(e(".stacks_in_1367_page10sl-image")).fadeIn("fast")},E=function(t,n){var a={};a[s+"transform"]="translateX("+n+")",a[s+"transition"]=s+"transform "+t+"s linear",e(".stacks_in_1367_page10sl-image").css(a)},k=function(){var t=0>
1414v+1?e(r).length-1:v+1>=e(r).length-1?0:v+1,n=0>v-1?e(r).length-1:v-1>=e(r).length-1?0:v-1;e("<img />").attr("src",e(r).eq(t).attr("href")).load(),e("<img />").attr("src",e(r).eq(n).attr("href")).load()},I=function(t){u.show();var n=v+t;if(!(m||(0>n||n>=e(r).length)&&0==a.loop)){m=!0,v=0>n?e(r).length-1:n>e(r).length-1?0:n,e(".stacks_in_1367_page10sl-wrapper .stacks_in_1367_page10sl-counter .stacks_in_1367_page10sl-current").text(v+1);var s={opacity:0};p?E(a.animationSpeed/1e3,-100*t-i+"px"):s.left=parseInt(e(".stacks_in_1367_page10sl-image").css("left"))+-100*t+"px",e(".stacks_in_1367_page10sl-image").animate(s,a.animationSpeed,function(){setTimeout(function(){var n=e(r).eq(v);o.attr("src",n.attr("href")),e(".stacks_in_1367_page10sl-caption").remove(),C(t),a.preloading&&k()},100)})}},D=function(){if(!m){var t=e(r).eq(v),n=!1;t.trigger(e.Event("close.stacks_in_1367_page10simpleLightbox")),e(".stacks_in_1367_page10sl-image img, .stacks_in_1367_page10sl-overlay, .stacks_in_1367_page10sl-close, .stacks_in_1367_page10sl-navigation, .stacks_in_1367_page10sl-image .stacks_in_1367_page10sl-caption, .stacks_in_1367_page10sl-counter").fadeOut("fast",function(){n||t.trigger(e.Event("closed.stacks_in_1367_page10simpleLightbox")),n=!0}),o=e(),l=!1}};T(),e(t).on("resize",C),e(n).on("click."+c,this.selector,function(t){if(b(this)){if(t.preventDefault(),m)return!1;y(e(this))}}),e(n).on("click",".stacks_in_1367_page10sl-close",function(e){e.preventDefault(),l&&D()}),e(n).click(function(t){l&&a.docClose&&0==e(t.target).closest(".stacks_in_1367_page10sl-image").length&&0==e(t.target).closest(".stacks_in_1367_page10sl-navigation").length&&D()}),e(n).on("click",".stacks_in_1367_page10sl-navigation button",function(t){t.preventDefault(),i=0,I(e(this).hasClass("stacks_in_1367_page10sl-next")?1:-1)}),a.enableKeyboard&&e(n).on("keyup."+c,function(e){if(e.preventDefault(),i=0,l){var t=e.keyCode;27==t&&D(),(37==t||39==e.keyCode)&&I(39==e.keyCode?1:-1)}});var M=0,q=0,X=!1,P=0;return e(n).on("touchstart mousedown pointerdown MSPointerDown",".stacks_in_1367_page10sl-image",function(e){return X?!0:(p&&(P=parseInt(x.css("left"))),X=!0,void(M=e.originalEvent.pageX||e.originalEvent.touches[0].pageX))}).on("touchmove mousemove pointermove MSPointerMove",function(e){return X?(e.preventDefault(),q=e.originalEvent.pageX||e.originalEvent.touches[0].pageX,i=M-q,void(p?E(0,-i+"px"):x.css("left",P-i+"px"))):!0}).on("touchend mouseup touchcancel pointerup pointercancel MSPointerUp MSPointerCancel",function(e){X&&(X=!1,Math.abs(i)>a.swipeTolerance?I(i>0?1:-1):p?E(a.animationSpeed/1e3,"0px"):x.animate({left:P+"px"},a.animationSpeed/2))}),this.open=function(e){y(e)},this.next=function(){I(1)},this.prev=function(){I(-1)},this.close=function(){D()},this.destroy=function(){e(n).unbind("click."+c).unbind("keyup."+c),D(),e(".stacks_in_1367_page10sl-overlay, .stacks_in_1367_page10sl-wrapper").remove()},this}}(jQuery,window,document);��$(document).ready(function() {� function stacks_in_1367_page10is_touch_device() {� return 'ontouchstart' in window // works on most browsers � || 'onmsgesturechange' in window; // works on ie10� };� // check if single instance of an image� var stacks_in_1367_page10nav = true;� if($("#stacks_in_1367_page10Montage img").length > 1){� var stacks_in_1367_page10looplb = true;� }else{� stacks_in_1367_page10nav = false;� var stacks_in_1367_page10looplb = false;� }� // check for small screen touch device to hide nav arrows� if($(window).width() < 768 && stacks_in_1367_page10is_touch_device()){� stacks_in_1367_page10nav = false;� }� // sort out the titles� function stacks_in_1367_page10eachtitle(){� $("#stacks_in_1367_page10Montage img").each(function(){� $(this).attr("alt", $(this).parent().find(".montageImageTitle").text());� }); � }� var stacks_in_1367_page10thumbcaptions = false;� var stacks_in_1367_page10lightboxcaptions = false;� if("notitles" == "thumbsandlightbox"){� stacks_in_1367_page10eachtitle();� stacks_in_1367_page10thumbcaptions = true;� stacks_in_1367_page10lightboxcaptions = true;� }else if("notitles" == "thumbsonly"){� stacks_in_1367_page10eachtitle();� stacks_in_1367_page10thumbcaptions = true;� }else if("notitles" == "lightboxonly"){� stacks_in_1367_page10eachtitle();� stacks_in_1367_page10lightboxcaptions = true;� }else{� stacks_in_1367_page10lightboxcaptions = false;� stacks_in_1367_page10thumbcaptions = false;� }� // set the prefered row height� var stacks_in_1367_page10maxrowheight = 150 + 120;� // create the montage� $("#stacks_in_1367_page10Montage").doojustifiedGallery({� lastRow: "justify",� rowHeight: 150,� maxRowHeight: stacks_in_1367_page10maxrowheight,� margins: 5,� border: 0,� doocaptions: stacks_in_1367_page10thumbcaptions,� randomize: false� });� � // setup the lightbox� var stacks_in_1367_page10gallery = $('#stacks_in_1367_page10Montage a').stacks_in_1367_page10simpleLightbox({� className: 'stacks_in_1367_page10simple-lightbox',� captions: stacks_in_1367_page10lightboxcaptions,� loop: stacks_in_1367_page10looplb,� nav: stacks_in_1367_page10nav� });� ��});��// End dooMontage 2 stack each Javascript code 1415return stack;})(stacks.stacks_in_1367_page10);
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.