PageSourceSearch

https://wesecureapp.com/wp-content/plugins/ultra_portfolio/src/uport_isotobe.js?ver=7.1.2

js wesecureapp.com collected 2026-10-03 22:51:35 UTC 44,366 bytes, 591 lines download raw bytes

1
2/**
3 * Isotobe v1.5.25
4 * An exquisite jQuery plugin for magical layouts
5 * http://isotobe.metafizzy.co
6 *
7 * Commercial use requires one-time license fee
8 * http://metafizzy.co/#licenses
9 *
10 * Copyright 2012 David DeSandro / Metafizzy
11 *
12 * Few modifications Added (beforeAnimation option, isotobe renamed to isotobe)
13 */
14
15/*jshint asi: true, browser: true, curly: true, eqeqeq: true, forin: false, immed: false, newcap: true, noempty: true, strict: true, undef: true */
16// {var F=n.document,m=n.Modernizr,u=function(a){return a.charAt(0).toUpperCase()+a.slice(1)},z=["Moz","Webkit","O","Ms"],s=function(a){var b=F.documentElement.style,c;if("string"===typeof b[a])return a;a=u(a);for(var d=0,e=z.length;d<e;d++)if(c=z[d]+a,"string"===typeof b[c])return c},v=s("transform"),A=s("transitionProperty");r={csstransforms:function(){return!!v},csstransforms3d:function(){var a=!!s("perspective");if(a){var a="@media ("+" -o- -moz- -ms- -webkit- -khtml- ".split(" ").join("transform-3d),(")+ "modernizr)",b=f("<style>"+a+"{#modernizr{height:3px}}</style>").appendTo("head"),c=f('<div id="modernizr" />').appendTo("html"),a=3===c.height();c.remove();b.remove()}return a},csstransitions:function(){return!!A}};var p;if(m)for(p in r)m.hasOwnProperty(p)||m.addTest(p,r[p]);else{var m=n.Modernizr={_version:"1.6ish: miniModernizr for Isotobe"},w=" ",x;for(p in r)x=r[p](),m[p]=x,w+=" "+(x?"":"no-")+p;f("html").addClass(w)}if(m.csstransforms){var G=m.csstransforms3d?{translate:function(a){return"translate3d("+ a[0]+"px, "+a[1]+"px, 0) "},scale:function(a){return"scale3d("+a+", "+a+", 1) "}}:{translate:function(a){return"translate("+a[0]+"px, "+a[1]+"px) "},scale:function(a){return"scale("+a+") "}},B=function(a,b,c){var d=f.data(a,"isoTransform")||{},e={},g,h={};e[b]=c;f.extend(d,e);for(g in d)b=d[g],h[g]=G[g](b);g=(h.translate||"")+(h.scale||"");f.data(a,"isoTransform",d);a.style[v]=g};f.cssNumber.scale=!0;f.cssHooks.scale={set:function(a,b){B(a,"scale",b)},get:function(a,b){var c=f.data(a,"isoTransform"); return c&&c.scale?c.scale:1}};f.fx.step.scale=function(a){f.cssHooks.scale.set(a.elem,a.now+a.unit)};f.cssNumber.translate=!0;f.cssHooks.translate={set:function(a,b){B(a,"translate",b)},get:function(a,b){var c=f.data(a,"isoTransform");return c&&c.translate?c.translate:[0,0]}}}var C,D;m.csstransitions&&(C={WebkitTransitionProperty:"webkitTransitionEnd",MozTransitionProperty:"transitionend",OTransitionProperty:"oTransitionEnd otransitionend",transitionProperty:"transitionend"}[A],D=s("transitionDuration")); var t=f.event,H=f.event.handle?"handle":"dispatch",y;t.special.smartresize={setup:function(){f(this).bind("resize",t.special.smartresize.handler)},teardown:function(){f(this).unbind("resize",t.special.smartresize.handler)},handler:function(a,b){var c=this,d=arguments;a.type="smartresize";y&&clearTimeout(y);y=setTimeout(function(){t[H].apply(c,d)},"execAsap"===b?0:100)}};f.fn.smartresize=function(a){return a?this.bind("smartresize",a):this.trigger("smartresize",["execAsap"])};f.IsotobeOm=function(a, b,c){this.element=f(b);this._create(a);this._init(c)};var I=["width","height"],E=f(n);f.IsotobeOm.settings={resizable:!0,layoutMode:"masonry",containerClass:"isotobe",itemClass:"isotobe-item",hiddenClass:"isotobe-hidden",hiddenStyle:{opacity:0,scale:0.001},visibleStyle:{opacity:1,scale:1},containerStyle:{position:"relative",overflow:"hidden"},animationEngine:"best-available",animationOptions:{queue:!1,duration:800},sortBy:"original-order",sortAscending:!0,resizesContainer:!0,transformsEnabled:!0, itemPositionDataEnabled:!1};f.IsotobeOm.prototype={_create:function(a){this.options=f.extend({},f.IsotobeOm.settings,a);this.styleQueue=[];this.elemCount=0;a=this.element[0].style;this.originalStyle={};var b=I.slice(0),c;for(c in this.options.containerStyle)b.push(c);for(var d=0,e=b.length;d<e;d++)c=b[d],this.originalStyle[c]=a[c]||"";this.element.css(this.options.containerStyle);this._updateAnimationEngine();this._updateUsingTransforms();this.options.getSortData=f.extend(this.options.getSortData, {"original-order":function(a,c){c.elemCount++;
16return c.elemCount},random:function(){return Math.random()}});this.reloadItems();this.offset={left:parseInt(this.element.css("padding-left")||0,10),top:parseInt(this.element.css("padding-top")||0,10)};var g=this;setTimeout(function(){g.element.addClass(g.options.containerClass)},0);this.options.resizable&&E.bind("smartresize.isotobe",function(){g.resize()});this.element.delegate("."+this.options.hiddenClass,"click",function(){return!1})},_getAtoms:function(a){var b= this.options.itemSelector;a=b?a.filter(b).add(a.find(b)):a;b={position:"absolute"};a=a.filter(function(a,b){return 1===b.nodeType});this.usingTransforms&&(b.left=0,b.top=0);a.css(b).addClass(this.options.itemClass);this.updateSortData(a,!0);return a},_init:function(a){this.$filteredAtoms=this._filter(this.$allAtoms);this._sort();this.reLayout(a)},option:function(a){if(f.isPlainObject(a)){this.options=f.extend(!0,this.options,a);for(var b in a)if(a="_update"+u(b),this[a])this[a]()}},_updateAnimationEngine:function(){var a; switch(this.options.animationEngine.toLowerCase().replace(/[ _\-]/g,"")){case "css":case "none":a=!1;break;case "jquery":a=!0;break;default:a=!m.csstransitions}this.isUsingJQueryAnimation=a;this._updateUsingTransforms()},_updateTransformsEnabled:function(){this._updateUsingTransforms()},_updateUsingTransforms:function(){var a=this.usingTransforms=this.options.transformsEnabled&&m.csstransforms&&m.csstransitions&&!this.isUsingJQueryAnimation;a||(delete this.options.hiddenStyle.scale,delete this.options.visibleStyle.scale); this.getPositionStyles=a?this._translate:this._positionAbs},_filter:function(a){var b=""===this.options.filter?"*":this.options.filter;if(!b)return a;var c=this.options.hiddenClass,d="."+c,e=a.filter(d),g=e;"*"!==b&&(g=e.filter(b),d=a.not(d).not(b).addClass(c),this.styleQueue.push({$el:d,style:this.options.hiddenStyle}));this.styleQueue.push({$el:g,style:this.options.visibleStyle});g.removeClass(c);return a.filter(b)},updateSortData:function(a,b){var c=this,d=this.options.getSortData,e,g;a.each(function(){e= f(this);g={};for(var a in d)g[a]=b||"original-order"!==a?d[a](e,c):f.data(this,"isotobe-sort-data")[a];f.data(this,"isotobe-sort-data",g)})},_sort:function(){var a=this.options.sortBy,b=this._getSorter,c=this.options.sortAscending?1:-1;this.$filteredAtoms.sort(function(d,e){var g=b(d,a),f=b(e,a);g===f&&"original-order"!==a&&(g=b(d,"original-order"),f=b(e,"original-order"));return(g>f?1:g<f?-1:0)*c})},_getSorter:function(a,b){return f.data(a,"isotobe-sort-data")[b]},_translate:function(a,b){return{translate:[a, b]}},_positionAbs:function(a,b){return{left:a,top:b}},_pushPosition:function(a,b,c){b=Math.round(b+this.offset.left);c=Math.round(c+this.offset.top);var d=this.getPositionStyles(b,c);this.styleQueue.push({$el:a,style:d});this.options.itemPositionDataEnabled&&a.data("isotobe-item-position",{x:b,y:c})},layout:function(a,b){this.options.beforeLayout&&this.options.beforeLayout(a,this);var c=this.options.layoutMode;this["_"+c+"Layout"](a);this.options.resizesContainer&&(c=this["_"+c+"GetContainerSize"](), this.styleQueue.push({$el:this.element,style:c}));this._processStyleQueue(a,b);this.isLaidOut=!0},_processStyleQueue:function(a,b){var c=this.isLaidOut?this.isUsingJQueryAnimation?"animate":"css":"css",d=this.options.animationOptions,e=this.options.onLayout,g,h,l,k;h=function(a,b){b.$el[c](b.style,d)};if(this._isInserting&&this.isUsingJQueryAnimation)h=function(a,b){g=b.$el.hasClass("no-transition")?"css":c;b.$el[g](b.style,d)};else if(b||e||d.complete){var n=!1,p=[b,e,d.complete],r=this;l=!0;k=function(){if(!n){for(var c, b=0,d=p.length;b<d;b++)c=p[b],"function"===typeof c&&c.call(r.element,a,r);n=!0}};if(this.isUsingJQueryAnimation&&"animate"===c)d.complete=k,l=!1;else if(m.csstransitions){for(var e=0,q=this.styleQueue[0],q=q&&q.$el;!q||!q.length;){q=this.styleQueue[e++];if(!q)return;q=q.$el}0<parseFloat(getComputedStyle(q[0])[D])&&(h=function(a,b){b.$el[c](b.style,d).one(C,k)},l=!1)}}this.options.beforeAnimation&&this.options.beforeAnimation(a,this);f.each(this.styleQueue,h);l&&k();this.styleQueue=[]},resize:function(){this["_"+ this.options.layoutMode+"ResizeChanged"]()&&this.reLayout()},reLayout:function(a){this["_"+this.options.layoutMode+"Reset"]();this.layout(this.$filteredAtoms,a)},addItems:function(a,b){var c=this._getAtoms(a);this.$allAtoms=this.$allAtoms.add(c);b&&b(c)},insert:function(a,b){this.element.append(a);var c=this;this.addItems(a,function(a){a=c._filter(a);c._addHideAppended(a);c._sort();c.reLayout();c._revealAppended(a,b)})},appended:function(a,b){var c=this;this.addItems(a,function(a){c._addHideAppended(a); c.layout(a);c._revealAppended(a,b)})},_addHideAppended:function(a){this.$filteredAtoms=this.$filteredAtoms.add(a);a.addClass("no-transition");this._isInserting=!0;this.styleQueue.push({$el:a,style:this.options.hiddenStyle})},_revealAppended:function(a,b){var c=this;setTimeout(function(){a.removeClass("no-transition");c.styleQueue.push({$el:a,style:c.options.visibleStyle});c._isInserting=!1;c._processStyleQueue(a,b)},10)},reloadItems:function(){this.$allAtoms=this._getAtoms(this.element.children())}, remove:function(a,b){this.$allAtoms=this.$allAtoms.not(a);this.$filteredAtoms=this.$filteredAtoms.not(a);var c=this,d=function(){a.remove();b&&b.call(c.element)};a.filter(":not(."+this.options.hiddenClass+")").length?(this.styleQueue.push({$el:a,style:this.options.hiddenStyle}),this._sort(),this.reLayout(d)):d()},shuffle:function(a){this.updateSortData(this.$allAtoms);this.options.sortBy="random";this._sort();this.reLayout(a)},destroy:function(){var a=this.usingTransforms,b=this.options;this.$allAtoms.removeClass(b.hiddenClass+ " "+b.itemClass).each(function(){var b=this.style;b.position="";b.top="";b.left="";b.opacity="";a&&(b[v]="")});var c=this.element[0].style,d;for(d in this.originalStyle)c[d]=this.originalStyle[d];this.element.unbind(".isotobe").undelegate("."+b.hiddenClass,"click").removeClass(b.containerClass).removeData("isotobe");E.unbind(".isotobe")},_getSegments:function(a){var b=this.options.layoutMode,c=a?"rowHeight":"columnWidth",d=a?"height":"width";a=a?"rows":"cols";var e=this.element[d](),d=this.options[b]&& this.options[b][c]||this.$filteredAtoms["outer"+u(d)](!0)||e,e=Math.floor(e/d),e=Math.max(e,1);this[b][a]=e;this[b][c]=d},_checkIfSegmentsChanged:function(a){var b=this.options.layoutMode,c=a?"rows":"cols",d=this[b][c];this._getSegments(a);return this[b][c]!==d},_masonryReset:function(){this.masonry={};this._getSegments();var a=this.masonry.cols;for(this.masonry.colYs=[];a--;)this.masonry.colYs.push(0)},_masonryLayout:function(a){var b=this,c=b.masonry;a.each(function(){var a=f(this),e=Math.ceil(a.outerWidth(!0)/ c.columnWidth),e=Math.min(e,c.cols);if(1===e)b._masonryPlaceBrick(a,c.colYs);else{var g=c.cols+1-e,h=[],l,k;for(k=0;k<g;k++)l=c.colYs.slice(k,k+e),h[k]=Math.max.apply(Math,l);b._masonryPlaceBrick(a,h)}})},_masonryPlaceBrick:function(a,b){for(var c=Math.min.apply(Math,b),d=0,e=0,f=b.length;e<f;e++)if(b[e]===c){d=e;break}this._pushPosition(a,this.masonry.columnWidth*d,c);c+=a.outerHeight(!0);f=this.masonry.cols+1-f;for(e=0;e<f;e++)this.masonry.colYs[d+e]=c},_masonryGetContainerSize:function(){return{height:Math.max.apply(Math, this.masonry.colYs)}},_masonryResizeChanged:function(){return this._checkIfSegmentsChanged()},_fitRowsReset:function(){this.fitRows={x:0,y:0,height:0}},_fitRowsLayout:function(a){var b=this,c=this.element.width(),d=this.fitRows;a.each(function(){var a=f(this),g=a.outerWidth(!0),h=a.outerHeight(!0);0!==d.x&&g+d.x>c&&(d.x=0,d.y=d.height);b._pushPosition(a,d.x,d.y);d.height=Math.max(d.y+h,d.height);d.x+=g})},_fitRowsGetContainerSize:function(){return{height:this.fitRows.height}},_fitRowsResizeChanged:function(){return!0}, _cellsByRowReset:function(){this.cellsByRow={index:0};this._getSegments();this._getSegments(!0)},_cellsByRowLayout:function(a){var b=this,c=this.cellsByRow;a.each(function(){var a=f(this),e=Math.floor(c.index/c.cols),g=(c.index%c.cols+0.5)*c.columnWidth-a.outerWidth(!0)/2,e=(e+0.5)*c.rowHeight-a.outerHeight(!0)/2;b._pushPosition(a,g,e);c.index++})},_cellsByRowGetContainerSize:function(){return{height:Math.ceil(this.$filteredAtoms.length/this.cellsByRow.cols)*this.cellsByRow.rowHeight+this.offset.top}}, _cellsByRowResizeChanged:function(){return this._checkIfSegmentsChanged()},_straightDownReset:function(){this.straightDown={y:0}},_straightDownLayout:function(a){var b=this;a.each(function(a){a=f(this);b._pushPosition(a,0,b.straightDown.y);b.straightDown.y+=a.outerHeight(!0)})},_straightDownGetContainerSize:function(){return{height:this.straightDown.y}},_straightDownResizeChanged:function(){return!0},_masonryHorizontalReset:function(){this.masonryHorizontal={};this._getSegments(!0);var a=this.masonryHorizontal.rows; for(this.masonryHorizontal.rowXs=[];a--;)this.masonryHorizontal.rowXs.push(0)},_masonryHorizontalLayout:function(a){var b=this,c=b.masonryHorizontal;a.each(function(){var a=f(this),e=Math.ceil(a.outerHeight(!0)/c.rowHeight),e=Math.min(e,c.rows);if(1===e)b._masonryHorizontalPlaceBrick(a,c.rowXs);else{var g=c.rows+1-e,h=[],l,k;for(k=0;k<g;k++)l=c.rowXs.slice(k,k+e),h[k]=Math.max.apply(Math,l);b._masonryHorizontalPlaceBrick(a,h)}})},_masonryHorizontalPlaceBrick:function(a,b){for(var c=Math.min.apply(Math, b),d=0,e=0,f=b.length;e<f;e++)if(b[e]===c){d=e;break}this._pushPosition(a,c,this.masonryHorizontal.rowHeight*d);c+=a.outerWidth(!0);f=this.masonryHorizontal.rows+1-f;for(e=0;e<f;e++)this.masonryHorizontal.rowXs[d+e]=c},_masonryHorizontalGetContainerSize:function(){return{width:Math.max.apply(Math,this.masonryHorizontal.rowXs)}},_masonryHorizontalResizeChanged:function(){return this._checkIfSegmentsChanged(!0)},_fitColumnsReset:function(){this.fitColumns={x:0,y:0,width:0}},_fitColumnsLayout:function(a){var b= this,c=this.element.height(),d=this.fitColumns;a.each(function(){var a=f(this),g=a.outerWidth(!0),h=a.outerHeight(!0);0!==d.y&&h+d.y>c&&(d.x=d.width,d.y=0);b._pushPosition(a,d.x,d.y);d.width=Math.max(d.x+g,d.width);d.y+=h})},_fitColumnsGetContainerSize:function(){return{width:this.fitColumns.width}},_fitColumnsResizeChanged:function(){return!0},_cellsByColumnReset:function(){this.cellsByColumn={index:0};this._getSegments();this._getSegments(!0)},_cellsByColumnLayout:function(a){var b=this,c=this.cellsByColumn; a.each(function(){var a=f(this),e=c.index%c.rows,g=(Math.floor(c.index/c.rows)+0.5)*c.columnWidth-a.outerWidth(!0)/2,e=(e+0.5)*c.rowHeight-a.outerHeight(!0)/2;b._pushPosition(a,g,e);c.index++})},_cellsByColumnGetContainerSize:function(){return{width:Math.ceil(this.$filteredAtoms.length/this.cellsByColumn.rows)*this.cellsByColumn.columnWidth}},_cellsByColumnResizeChanged:function(){return this._checkIfSegmentsChanged(!0)},_straightAcrossReset:function(){this.straightAcross={x:0}},_straightAcrossLayout:function(a){var b= this;a.each(function(a){a=f(this);b._pushPosition(a,b.straightAcross.x,0);b.straightAcross.x+=a.outerWidth(!0)})},_straightAcrossGetContainerSize:function(){return{width:this.straightAcross.x}},_straightAcrossResizeChanged:function(){return!0}};f.fn.imagesLoaded=function(a){function b(){a.call(d,e)}function c(a){a=a.target;a.src!==h&&-1===f.inArray(a,l)&&(l.push(a),0>=--g&&(setTimeout(b),e.unbind(".imagesLoaded",c)))}var d=this,e=d.find("img").add(d.filter("img")),g=e.length,h="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==", l=[];g||b();e.bind("load.imagesLoaded error.imagesLoaded",c).each(function(){var a=this.src;this.src=h;this.src=a});return d};f.fn.isotobeOm=function(a,b){if("string"===typeof a){var c=Array.prototype.slice.call(arguments,1
16);this.each(function(){var b=f.data(this,"isotobe");b?f.isFunction(b[a])&&"_"!==a.charAt(0)?b[a].apply(b,c):n.console&&n.console.error("no such method '"+a+"' for isotobe instance"):n.console&&n.console.error("cannot call methods on isotobe prior to initialization; attempted to call method '"+ a+"'")})}else this.each(function(){var c=f.data(this,"isotobe");c?(c.option(a),c._init(b)):f.data(this,"isotobe",new f.IsotobeOm(a,this,b))});return this}})(window,jQuery);
17/*global jQuery: false */
18
19(function(n, f, r) {
20    var F = n.document, m = n.Modernizr, u = function(a) {
21        return a.charAt(0).toUpperCase() + a.slice(1)
22    }, z = ["Moz", "Webkit", "O", "Ms"], s = function(a) {
23        var b = F.documentElement.style, c;
24        if ("string" === typeof b[a])
25            return a;
26        a = u(a);
27        for (var d = 0, e = z.length; d < e; d++)
28            if (c = z[d] + a, "string" === typeof b[c])
29                return c
30    }, v = s("transform"), A = s("transitionProperty");
31    r = {csstransforms: function() {
32            return!!v
33        }, csstransforms3d: function() {
34            var a = !!s("perspective");
35            if (a) {
36                var a = "@media (" + " -o- -moz- -ms- -webkit- -khtml- ".split(" ").join("transform-3d),(") + "modernizr)", b = f("<style>" + a + "{#modernizr{height:3px}}</style>").appendTo("head"), c = f('<div id="modernizr" />').appendTo("html"), a = 3 === c.height();
37                c.remove();
38                b.remove()
39            }
40            return a
41        }, csstransitions: function() {
42            return!!A
43        }};
44    var p;
45    if (m)
46        for (p in r)
47            m.hasOwnProperty(p) || m.addTest(p, r[p]);
48    else {
49        var m = n.Modernizr = {_version: "1.6ish: miniModernizr for Isotobe"}, w = " ", x;
50        for (p in r)
51            x = r[p](), m[p] = x, w += " " + (x ? "" : "no-") + p;
52        f("html").addClass(w)
53    }
54    if (m.csstransforms) {
55        var G = m.csstransforms3d ? {translate: function(a) {
56                return"translate3d(" + a[0] + "px, " + a[1] + "px, 0) "
57            }, scale: function(a) {
58                return"scale3d(" + a + ", " + a + ", 1) "
59            }} : {translate: function(a) {
60                return"translate(" + a[0] + "px, " + a[1] + "px) "
61            }, scale: function(a) {
62                return"scale(" + a + ") "
63            }}, B = function(a, b, c) {
64            var d = f.data(a, "isoTransform") || {}, e = {}, g, h = {};
65            e[b] = c;
66            f.extend(d, e);
67            for (g in d)
68                b = d[g], h[g] = G[g](b);
69            g = (h.translate || "") + (h.scale || "");
70            f.data(a, "isoTransform", d);
71            a.style[v] = g
72        };
73        f.cssNumber.scale = !0;
74        f.cssHooks.scale = {set: function(a, b) {
75                B(a, "scale", b)
76            }, get: function(a, b) {
77                var c = f.data(a, "isoTransform");
78                return c && c.scale ? c.scale : 1
79            }};
80        f.fx.step.scale = function(a) {
81            f.cssHooks.scale.set(a.elem, a.now + a.unit)
82        };
83        f.cssNumber.translate = !0;
84        f.cssHooks.translate = {set: function(a, b) {
85                B(a, "translate", b)
86            }, get: function(a, b) {
87                var c = f.data(a, "isoTransform");
88                return c && c.translate ? c.translate : [0, 0]
89            }}
90    }
91    var C, D;
92    m.csstransitions && (C = {WebkitTransitionProperty: "webkitTransitionEnd", MozTransitionProperty: "transitionend", OTransitionProperty: "oTransitionEnd otransitionend", transitionProperty: "transitionend"}[A], D = s("transitionDuration"));
93    var t = f.event, H = f.event.handle ? "handle" : "dispatch", y;
94    t.special.smartresize = {setup: function() {
95            f(this).bind("resize", t.special.smartresize.handler)
96        }, teardown: function() {
97            f(this).unbind("resize", t.special.smartresize.handler)
98        }, handler: function(a, b) {
99            var c = this, d = arguments;
100            a.type = "smartresize";
101            y && clearTimeout(y);
102            y = setTimeout(function() {
103                t[H].apply(c, d)
104            }, "execAsap" === b ? 0 : 100)
105        }};
106    f.fn.smartresize = function(a) {
107        return a ? this.bind("smartresize", a) : this.trigger("smartresize", ["execAsap"])
108    };
109    f.Isotobe = function(a, b, c) {
110        this.element = f(b);
111        this._create(a);
112        this._init(c)
113    };
114    var I = ["width", "height"], E = f(n);
115    f.Isotobe.settings = {resizable: !0, layoutMode: "masonry", containerClass: "isotobe", itemClass: "isotobe-item", hiddenClass: "isotobe-hidden", hiddenStyle: {opacity: 0, scale: 0.001}, visibleStyle: {opacity: 1, scale: 1}, containerStyle: {position: "relative", overflow: "hidden"}, animationEngine: "best-available", animationOptions: {queue: !1, duration: 8
11500}, sortBy: "original-order", sortAscending: !0, resizesContainer: !0, transformsEnabled: !0, itemPositionDataEnabled: !1};
116    f.Isotobe.prototype = {_create: function(a) {
117            this.options = f.extend({}, f.Isotobe.settings, a);
118            this.styleQueue = [];
119            this.elemCount = 0;
120            a = this.element[0].style;
121            this.originalStyle = {};
122            var b = I.slice(0), c;
123            for (c in this.options.containerStyle)
124                b.push(c);
125            for (var d = 0, e = b.length; d < e; d++)
126                c = b[d], this.originalStyle[c] = a[c] || "";
127            this.element.css(this.options.containerStyle);
128            this._updateAnimationEngine();
129            this._updateUsingTransforms();
130            this.options.getSortData = f.extend(this.options.getSortData, {"original-order": function(a, c) {
131                    c.elemCount++;
132                    return c.elemCount
133                }, random: function() {
134                    return Math.random()
135                }});
136            this.reloadItems();
137            this.offset = {left: parseInt(this.element.css("padding-left") || 0, 10), top: parseInt(this.element.css("padding-top") || 0, 10)};
138            var g = this;
139            setTimeout(function() {
140                g.element.addClass(g.options.containerClass)
141            }, 0);
142            this.options.resizable && E.bind("smartresize.isotobe", function() {
143                g.resize()
144            });
145            this.element.delegate("." + this.options.hiddenClass, "click", function() {
146                return!1
147            })
148        }, _getAtoms: function(a) {
149            var b = this.options.itemSelector;
150            a = b ? a.filter(b).add(a.find(b)) : a;
151            b = {position: "absolute"};
152            a = a.filter(function(a, b) {
153                return 1 === b.nodeType
154            });
155            this.usingTransforms && (b.left = 0, b.top = 0);
156            a.css(b).addClass(this.options.itemClass);
157            this.updateSortData(a, !0);
158            return a
159        }, _init: function(a) {
160            this.$filteredAtoms = this._filter(this.$allAtoms);
161            this._sort();
162            this.reLayout(a)
163        }, option: function(a) {
164            if (f.isPlainObject(a)) {
165                this.options = f.extend(!0, this.options, a);
166                for (var b in a)
167                    if (a = "_update" + u(b), this[a])
168                        this[a]()
169            }
170        }, _updateAnimationEngine: function() {
171            var a;
172            switch (this.options.animationEngine.toLowerCase().replace(/[ _\-]/g, "")) {
173                case "css":
174                case "none":
175                    a = !1;
176                    break;
177                case "jquery":
178                    a = !0;
179                    break;
180                default:
181                    a = !m.csstransitions
182            }
183            this.isUsingJQueryAnimation = a;
184            this._updateUsingTransforms()
185        }, _updateTransformsEnabled: function() {
186            this._updateUsingTransforms()
187        }, _updateUsingTransforms: function() {
188            var a = this.usingTransforms = this.options.transformsEnabled && m.csstransforms && m.csstransitions && !this.isUsingJQueryAnimation;
189            a || (delete this.options.hiddenStyle.scale, delete this.options.visibleStyle.scale);
190            this.getPositionStyles = a ? this._translate : this._positionAbs
191        }, _filter: function(a) {
192            var b = "" === this.options.filter ? "*" : this.options.filter;
193            if (!b)
194                return a;
195            var c = this.options.hiddenClass, d = "." + c, e = a.filter(d), g = e;
196            "*" !== b && (g = e.filter(b), d = a.not(d).not(b).addClass(c), this.styleQueue.push({$el: d, style: this.options.hiddenStyle}));
197            this.styleQueue.push({$el: g, style: this.options.visibleStyle});
198            g.removeClass(c);
199            return a.filter(b)
200        }, updateSortData: function(a, b) {
201            var c = this, d = this.options.getSortData, e, g;
202            a.each(function() {
203                e = f(this);
204                g = {};
205                for (var a in d)
206                    g[a] = b || "original-order" !== a ? d[a](e, c) : f.data(this, "isotobe-sort-data")[a];
207                f.data(this, "isotobe-sort-data", g)
208            })
209        }, _sort: function() {
210            var a = this.options.sortBy, b = this._getSorter, c = this.options.sortAscending ? 1 : -1;
211            this.$filteredAtoms.sort(function(d, e) {
212                var g = b(d, a), f = b(e, a);
213                g === f && "original-order" !== a && (g = b(d, "original-order"), f = b(e, "original-order"));
214                return(g > f ? 1 : g < f ? -1 : 0) * c
215            })
216        }, _getSorter: function(a, b) {
217            return f.data(a, "isotobe-sort-data")[b]
218        }, _translate: function(a, b) {
219            return{translate: [a, b]}
220        }, _positionAbs: function(a, b) {
221            return{left: a, top: b}
222        }, _pushPosition: function(a, b, c) {
223            b = Math.round(b + this.offset.left);
224            c = Math.round(c + this.offset.top);
225            var d = this.getPositionStyles(b, c);
226            this.styleQueue.push({$el: a, style: d});
227            this.options.itemPositionDataEnabled && a.data("isotobe-item-position", {x: b, y: c})
228        }, layout: function(a, b) {
229            this.options.beforeLayout && this.options.beforeLayout(a, this);
230            var c = this.options.layoutMode;
231            this["_" + c + "Layout"](a);
232            this.options.resizesContainer && (c = this["_" + c + "GetContainerSize"](), this.styleQueue.push({$el: this.element, style: c}));
233            this._processStyleQueue(a, b);
234            this.isLaidOut = !0
235        }, _processStyleQueue: function(a, b) {
236            var c = this.isLaidOut ? this.isUsingJQueryAnimation ? "animate" : "css" : "css", d = this.options.animationOptions, e = this.options.onLayout, g, h, l, k;
237            h = function(a, b) {
238                b.$el[c](b.style, d)
239            };
240            if (this._isInserting && this.isUsingJQueryAnimation)
241                h = function(a, b) {
242                    g = b.$el.hasClass("no-transition") ? "css" : c;
243                    b.$el[g](b.style, d)
244                };
245            else if (b || e || d.complete) {
246                var n = !1, p = [b, e, d.complete], r = this;
247                l = !0;
248                k = function() {
249                    if (!n) {
250                        for (var c, b = 0, d = p.length; b < d; b++)
251                            c = p[b], "function" === typeof c && c.call(r.element, a, r);
252                        n = !0
253                    }
254                };
255                if (this.isUsingJQueryAnimation && "animate" === c)
256                    d.complete = k, l = !1;
257                else if (m.csstransitions) {
258                    for (var e = 0, q = this.styleQueue[0], q = q && q.$el; !q || !q.length; ) {
259                        q = this.styleQueue[e++];
260                        if (!q)
261                            return;
262                        q = q.$el
263                    }
264                    0 < parseFloat(getComputedStyle(q[0])[D]) && (h = function(a, b) {
265                        b.$el[c](b.style, d).one(C, k)
266                    }, l = !1)
267                }
268            }
269            this.options.beforeAnimation && this.options.beforeAnimation(a, this);
270            f.each(this.styleQueue, h);
271            l && k();
272            this.styleQueue = []
273        }, resize: function() {
274            this["_" + this.options.layoutMode + "ResizeChanged"]() && this.reLayout()
275        }, reLayout: function(a) {
276            this["_" + this.options.layoutMode + "Reset"]();
277            this.layout(this.$filteredAtoms, a)
278        }, addItems: function(a, b) {
279            var c = this._getAtoms(a);
280            this.$allAtoms = this.$allAtoms.add(c);
281            b && b(c)
282        }, insert: function(a, b) {
283            this.element.append(a);
284            var c = this;
285            this.addItems(a, function(a) {
286                a = c._filter(a);
287                c._addHideAppended(a);
288                c._sort();
289                c.reLayout();
290                c._revealAppended(a, b)
291            })
292        }, appended: function(a, b) {
293            var c = this;
294            this.addItems(a, function(a) {
295                c._addHideAppended(a);
296                c.layout(a);
297                c._revealAppended(a, b)
298            })
299        }, _addHideAppended: function(a) {
300            this.$filteredAtoms = this.$filteredAtoms.add(a);
301            a.addClass("no-transition");
302            this._isInserting = !0;
303            this.styleQueue.push({$el: a, style: this.options.hiddenStyle})
304        }, _revealAppended: function(a, b) {
305            var c = this;
306            setTimeout(function() {
307                a.removeClass("no-transition");
308                c.styleQueue.push({$el: a, style: c.options.visibleStyle});
309                c._isInserting = !1;
310                c._processStyleQueue(a, b)
311            }, 10)
312        }, reloadItems: function() {
313            this.$allAtoms = this._getAtoms(this.element.children())
314        }, remove: function(a, b) {
315            this.$allAtoms = this.$allAtoms.not(a);
316            this.$filteredAtoms = this.$filteredAtoms.not(a);
317            var c = this, d = function() {
318                a.remove();
319                b && b.call(c.element)
320            };
321            a.filter(":not(." + this.options.hiddenClass + ")").length ? (this.styleQueue.push({$el: a, style: this.options.hiddenStyle}), this._sort(), this.reLayout(d)) : d()
322        }, shuffle: function(a) {
323            this.updateSortData(this.$allAtoms);
324            this.options.sortBy = "random";
325            this._sort();
326            this.reLayout(a)
327        }, destroy: function() {
328            var a = this.usingTransforms, b = this.options;
329            this.$allAtoms.removeClass(b.hiddenClass + " " + b.itemClass).each(function() {
330                var b = this.style;
331                b.position = "";
332                b.top = "";
333                b.left = "";
334                b.opacity = "";
335                a && (b[v] = "")
336            });
337            var c = this.element[0].style, d;
338            for (d in this.originalStyle)
339                c[d] = this.originalStyle[d];
340            this.element.unbind(".isotobe").undelegate("." + b.hiddenClass, "click").removeClass(b.containerClass).removeData("isotobe");
341            E.unbind(".isotobe")
342        }, _getSegments: function(a) {
343            var b = this.options.layoutMode, c = a ? "rowHeight" : "columnWidth", d = a ? "he
343ight" : "width";
344            a = a ? "rows" : "cols";
345            var e = this.element[d](), d = this.options[b] && this.options[b][c] || this.$filteredAtoms["outer" + u(d)](!0) || e, e = Math.floor(e / d), e = Math.max(e, 1);
346            this[b][a] = e;
347            this[b][c] = d
348        }, _checkIfSegmentsChanged: function(a) {
349            var b = this.options.layoutMode, c = a ? "rows" : "cols", d = this[b][c];
350            this._getSegments(a);
351            return this[b][c] !== d
352        }, _masonryReset: function() {
353            this.masonry = {};
354            this._getSegments();
355            var a = this.masonry.cols;
356            for (this.masonry.colYs = []; a--; )
357                this.masonry.colYs.push(0)
358        }, _masonryLayout: function(a) {
359            var b = this, c = b.masonry;
360            a.each(function() {
361                var a = f(this), e = Math.ceil(a.outerWidth(!0) / c.columnWidth), e = Math.min(e, c.cols);
362                if (1 === e)
363                    b._masonryPlaceBrick(a, c.colYs);
364                else {
365                    var g = c.cols + 1 - e, h = [], l, k;
366                    for (k = 0; k < g; k++)
367                        l = c.colYs.slice(k, k + e), h[k] = Math.max.apply(Math, l);
368                    b._masonryPlaceBrick(a, h)
369                }
370            })
371        }, _masonryPlaceBrick: function(a, b) {
372            for (var c = Math.min.apply(Math, b), d = 0, e = 0, f = b.length; e < f; e++)
373                if (b[e] === c) {
374                    d = e;
375                    break
376                }
377            this._pushPosition(a, this.masonry.columnWidth * d, c);
378            c += a.outerHeight(!0);
379            f = this.masonry.cols + 1 - f;
380            for (e = 0; e < f; e++)
381                this.masonry.colYs[d + e] = c
382        }, _masonryGetContainerSize: function() {
383            return{height: Math.max.apply(Math, this.masonry.colYs)}
384        }, _masonryResizeChanged: function() {
385            return this._checkIfSegmentsChanged()
386        }, _fitRowsReset: function() {
387            this.fitRows = {x: 0, y: 0, height: 0}
388        }, _fitRowsLayout: function(a) {
389            var b = this, c = this.element.width(), d = this.fitRows;
390            a.each(function() {
391                var a = f(this), g = a.outerWidth(!0), h = a.outerHeight(!0);
392                0 !== d.x && g + d.x > c && (d.x = 0, d.y = d.height);
393                b._pushPosition(a, d.x, d.y);
394                d.height = Math.max(d.y + h, d.height);
395                d.x += g
396            })
397        }, _fitRowsGetContainerSize: function() {
398            return{height: this.fitRows.height}
399        }, _fitRowsResizeChanged: function() {
400            return!0
401        }, _cellsByRowReset: function() {
402            this.cellsByRow = {index: 0};
403            this._getSegments();
404            this._getSegments(!0)
405        }, _cellsByRowLayout: function(a) {
406            var b = this, c = this.cellsByRow;
407            a.each(function() {
408                var a = f(this), e = Math.floor(c.index / c.cols), g = (c.index % c.cols + 0.5) * c.columnWidth - a.outerWidth(!0) / 2, e = (e + 0.5) * c.rowHeight - a.outerHeight(!0) / 2;
409                b._pushPosition(a, g, e);
410                c.index++
411            })
412        }, _cellsByRowGetContainerSize: function() {
413            return{height: Math.ceil(this.$filteredAtoms.length / this.cellsByRow.cols) * this.cellsByRow.rowHeight + this.offset.top}
414        }, _cellsByRowResizeChanged: function() {
415            return this._checkIfSegmentsChanged()
416        }, _straightDownReset: function() {
417            this.straightDown = {y: 0}
418        }, _straightDownLayout: function(a) {
419            var b = this;
420            a.each(function(a) {
421                a = f(this);
422                b._pushPosition(a, 0, b.straightDown.y);
423                b.straightDown.y += a.outerHeight(!0)
424            })
425        }, _straightDownGetContainerSize: function() {
426            return{height: this.straightDown.y}
427        }, _straightDownResizeChanged: function() {
428            return!0
429        }, _masonryHorizontalReset: function() {
430            this.masonryHorizontal = {};
431            this._getSegments(!0);
432            var a = this.masonryHorizontal.rows;
433            for (this.masonryHorizontal.rowXs = []; a--; )
434                this.masonryHorizontal.rowXs.push(0)
435        }, _masonryHorizontalLayout: function(a) {
436            var b = this, c = b.masonryHorizontal;
437            a.each(function() {
438                var a = f(this), e = Math.ceil(a.outerHeight(!0) / c.rowHeight), e = Math.min(e, c.rows);
439                if (1 === e)
440                    b._masonryHorizontalPlaceBrick(a, c.rowXs);
441                else {
442                    var g = c.rows + 1 - e, h = [], l, k;
443                    for (k = 0; k < g; k++)
444                        l = c.rowXs.slice(k, k + e), h[k] = Math.max.apply(Math, l);
445                    b._masonryHorizontalPlaceBrick(a, h)
446                }
447            })
448        }, _masonryHorizontalPlaceBrick: function(a, b) {
449            for (var c = Math.min.apply(Math, b), d = 0, e = 0, f = b.length; e < f; e++)
450                if (b[e] === c) {
451                    d = e;
452                    break
453                }
454            this._pushPosition(a, c, this.masonryHorizontal.rowHeight * d);
455            c += a.outerWidth(!0);
456            f = this.masonryHorizontal.rows + 1 - f;
457            for (e = 0; e < f; e++)
458                this.masonryHorizontal.rowXs[d + e] = c
459        }, _masonryHorizontalGetContainerSize: function() {
460            return{width: Math.max.apply(Math, this.masonryHorizontal.rowXs)}
461        }, _masonryHorizontalResizeChanged: function() {
462            return this._checkIfSegmentsChanged(!0)
463        }, _fitColumnsReset: function() {
464            this.fitColumns = {x: 0, y: 0, width: 0}
465        }, _fitColumnsLayout: function(a) {
466            var b = this, c = this.element.height(), d = this.fitColumns;
467            a.each(function() {
468                var a = f(this), g = a.outerWidth(!0), h = a.outerHeight(!0);
469                0 !== d.y && h + d.y > c && (d.x = d.width, d.y = 0);
470                b._pushPosition(a, d.x, d.y);
471                d.width = Math.max(d.x + g, d.width);
472                d.y += h
473            })
474        }, _fitColumnsGetContainerSize: function() {
475            return{width: this.fitColumns.width}
476        }, _fitColumnsResizeChanged: function() {
477            return!0
478        }, _cellsByColumnReset: function() {
479            this.cellsByColumn = {index: 0};
480            this._getSegments();
481            this._getSegments(!0)
482        }, _cellsByColumnLayout: function(a) {
483            var b = this, c = this.cellsByColumn;
484            a.each(function() {
485                var a = f(this), e = c.index % c.rows, g = (Math.floor(c.index / c.rows) + 0.5) * c.columnWidth - a.outerWidth(!0) / 2, e = (e + 0.5) * c.rowHeight - a.outerHeight(!0) / 2;
486                b._pushPosition(a, g, e);
487                c.index++
488            })
489        }, _cellsByColumnGetContainerSize: function() {
490            return{width: Math.ceil(this.$filteredAtoms.length / this.cellsByColumn.rows) * this.cellsByColumn.columnWidth}
491        }, _cellsByColumnResizeChanged: function() {
492            return this._checkIfSegmentsChanged(!0)
493        }, _straightAcrossReset: function() {
494            this.straightAcross = {x: 0}
495        }, _straightAcrossLayout: function(a) {
496            var b = this;
497            a.each(function(a) {
498                a = f(this);
499                b._pushPosition(a, b.straightAcross.x, 0);
500                b.straightAcross.x += a.outerWidth(!0)
501            })
502        }, _straightAcrossGetContainerSize: function() {
503            return{width: this.straightAcross.x}
504        }, _straightAcrossResizeChanged: function() {
505            return!0
506        }};
507    f.fn.imagesLoaded = function(a) {
508        function b() {
509            a.call(d, e)
510        }
511        function c(a) {
512            a = a.target;
513            a.src !== h && -1 === f.inArray(a, l) && (l.push(a), 0 >= --g && (setTimeout(b), e.unbind(".imagesLoaded", c)))
514        }
515        var d = this, e = d.find("img").add(d.filter("img")), g = e.length, h = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==", l = [];
516        g || b();
517        e.bind("load.imagesLoaded error.imagesLoaded", c).each(function() {
518            var a = this.src;
519            this.src = h;
520            this.src = a
521        });
522        return d
523    };
524    f.fn.isotobe = function(a, b) {
525        if ("string" === typeof a) {
526            var c = Array.prototype.slice.call(arguments, 1);
527            this.each(function() {
528                var b = f.data(this, "isotobe");
529                b ? f.isFunction(b[a]) && "_" !== a.charAt(0) ? b[a].apply(b, c) : n.console && n.console.error("no such method '" + a + "' for isotobe instance") : n.console && n.console.error("cannot call methods on isotobe prior to initialization; attempted to call method '" + a + "'")
530            })
531        } else
532            this.each(function() {
533                var c = f.data(this, "isotobe");
534                c ? (c.option(a), c._init(b)) : f.data(this, "isotobe", new f.Isotobe(a, this, b))
535            });
536        return this
537    }
538})(window, jQuery);
539
540/*
541 * Isotobe custom layout mode that extends masonry in order to work with percentage-sized columns
542 */
543(function(l, e) {
544    e.extend(e.Isotobe.prototype, {_sloppyMasonryReset: function() {
545            var b = this.element.width(), d = this.options.sloppyMasonry && this.options.sloppyMasonry.columnWidth || this.$filteredAtoms.outerWidth(!0) || b;
546            this.sloppyMasonry = {cols: Math.round(b / d), columnWidth: d};
547            b = this.sloppyMasonry.cols;
548            for (this.sloppyMasonry.colYs = []; b--; )
549                this.sloppyMasonry.colYs.push(0)
550        }, _sloppyMasonryLayout: function(b) {
551            var d = this, c = d.sloppyMasonry;
552            b.each(function() {
553                var b = e(this), a = Math.round(b.outerWidth(!0) / c.columnWidth),
554                        a = Math.min(a, c.cols);
555                if (1 === a)
556                    d._sloppyMasonryPlaceBrick(b, c.colYs);
557                else {
558                    var f = c.cols + 1 - a, h = [], k, g;
559                    for (g = 0; g < f; g++)
560                        k = c.colYs.slice(g, g + a), h[g] = Math.max.apply(Math, k);
561                    d._sloppyMasonryPlaceBrick(b, h)
562                }
563            })
564        }, _sloppyMasonryPlaceBrick: function(b, d) {
565            for (var c = Math.min.apply(Math, d), e = 0, a = 0, f = d.length; a < f; a++)
566                if (d[a] === c) {
567                    e = a;
568                    break
569                }
570            this._pushPosition(b, this.sloppyMasonry.columnWidth * e, c);
571            c += b.outerHeight(!0);
572            f = this.sloppyMasonry.cols + 1 - f;
573            for (a = 0; a < f; a++)
574                this.sloppyMasonry.colYs[e + a] = c
575        }, _sloppyMasonryGetContainerSize: function() {
576            return{height: Math.max.apply(Math,
577                        this.sloppyMasonry.colYs)}
578        }, _sloppyMasonryResizeChanged: function() {
579            return!0
580        }})
581})(this, this.jQuery);
582
583
584
585
586/*
587 * Isotobe custom layout mode that extends masonry in order to work with percentage-sized columns
588 */
589(function(l,e){e.extend(e.Isotobe.prototype,{_sloppyMasonryReset:function(){var b=this.element.width(),d=this.options.sloppyMasonry&&this.options.sloppyMasonry.columnWidth||this.$filteredAtoms.outerWidth(!0)||b;this.sloppyMasonry={cols:Math.round(b/d),columnWidth:d};b=this.sloppyMasonry.cols;for(this.sloppyMasonry.colYs=[];b--;)this.sloppyMasonry.colYs.push(0)},_sloppyMasonryLayout:function(b){var d=this,c=d.sloppyMasonry;b.each(function(){var b=e(this),a=Math.round(b.outerWidth(!0)/c.columnWidth),
590a=Math.min(a,c.cols);if(1===a)d._sloppyMasonryPlaceBrick(b,c.colYs);else{var f=c.cols+1-a,h=[],k,g;for(g=0;g<f;g++)k=c.colYs.slice(g,g+a),h[g]=Math.max.apply(Math,k);d._sloppyMasonryPlaceBrick(b,h)}})},_sloppyMasonryPlaceBrick:function(b,d){for(var c=Math.min.apply(Math,d),e=0,a=0,f=d.length;a<f;a++)if(d[a]===c){e=a;break}this._pushPosition(b,this.sloppyMasonry.columnWidth*e,c);c+=b.outerHeight(!0);f=this.sloppyMasonry.cols+1-f;for(a=0;a<f;a++)this.sloppyMasonry.colYs[e+a]=c},_sloppyMasonryGetContainerSize:function(){return{height:Math.max.apply(Math,
591this.sloppyMasonry.colYs)}},_sloppyMasonryResizeChanged:function(){return!0}})})(this,this.jQuery);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.