/* Modernizr 2.6.2 (Custom Build) | MIT & BSD * Build: http://modernizr.com/download/#-csstransforms-csstransforms3d-csstransitions-cssclasses-prefixed-teststyles-testprop-testallprops-prefixes-domprefixes */ window.Modernizr=function(a,b,c){function z(a){j.cssText=a}function A(a,b){return z(m.join(a+";")+(b||""))}function B(a,b){return typeof a===b}function C(a,b){return!!~(""+a).indexOf(b)}function D(a,b){for(var d in a){var e=a[d];if(!C(e,"-")&&j[e]!==c)return b=="pfx"?e:!0}return!1}function E(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:B(f,"function")?f.bind(d||b):f}return!1}function F(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+o.join(d+" ")+d).split(" ");return B(b,"string")||B(b,"undefined")?D(e,b):(e=(a+" "+p.join(d+" ")+d).split(" "),E(e,b,c))}var d="2.6.2",e={},f=!0,g=b.documentElement,h="modernizr",i=b.createElement(h),j=i.style,k,l={}.toString,m=" -webkit- -moz- -o- -ms- ".split(" "),n="Webkit Moz O ms",o=n.split(" "),p=n.toLowerCase().split(" "),q={},r={},s={},t=[],u=t.slice,v,w=function(a,c,d,e){var f,i,j,k,l=b.createElement("div"),m=b.body,n=m||b.createElement("body");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:h+(d+1),l.appendChild(j);return f=["­",'"].join(""),l.id=h,(m?l:n).innerHTML+=f,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=g.style.overflow,g.style.overflow="hidden",g.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),g.style.overflow=k),!!i},x={}.hasOwnProperty,y;!B(x,"undefined")&&!B(x.call,"undefined")?y=function(a,b){return x.call(a,b)}:y=function(a,b){return b in a&&B(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=u.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(u.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(u.call(arguments)))};return e}),q.csstransforms=function(){return!!F("transform")},q.csstransforms3d=function(){var a=!!F("perspective");return a&&"webkitPerspective"in g.style&&w("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(b,c){a=b.offsetLeft===9&&b.offsetHeight===3}),a},q.csstransitions=function(){return F("transition")};for(var G in q)y(q,G)&&(v=G.toLowerCase(),e[v]=q[G](),t.push((e[v]?"":"no-")+v));return e.addTest=function(a,b){if(typeof a=="object")for(var d in a)y(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},z(""),i=k=null,e._version=d,e._prefixes=m,e._domPrefixes=p,e._cssomPrefixes=o,e.testProp=function(a){return D([a])},e.testAllProps=F,e.testStyles=w,e.prefixed=function(a,b,c){return b?F(a,b,c):F(a,"pfx")},g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+t.join(" "):""),e}(this,this.document); /*! Shuffle.js by @Vestride Categorize, sort, and filter a responsive grid of items. Dependencies: jQuery 1.9+, Modernizr 2.6.2+ @license MIT license @version 2.1.2 */(function(factory){if(typeof define==='function'&&define.amd){define(['jquery','modernizr'],factory);}else{factory(window.jQuery,window.Modernizr);}})(function($,Modernizr,undefined){'use strict';if(typeof Modernizr!=='object'){throw new Error('Shuffle.js requires Modernizr.\n'+'http://vestride.github.io/Shuffle/#dependencies');}function dashify(prop){if(!prop){return'';}return prop.replace(/([A-Z])/g,function(str,m1){return'-'+m1.toLowerCase();}).replace(/^ms-/,'-ms-');}var TRANSITION=Modernizr.prefixed('transition');var TRANSITION_DELAY=Modernizr.prefixed('transitionDelay');var TRANSITION_DURATION=Modernizr.prefixed('transitionDuration');var TRANSITIONEND={'WebkitTransition':'webkitTransitionEnd','transition':'transitionend'}[TRANSITION];var TRANSFORM=Modernizr.prefixed('transform');var CSS_TRANSFORM=dashify(TRANSFORM);var CAN_TRANSITION_TRANSFORMS=Modernizr.csstransforms&&Modernizr.csstransitions;var HAS_TRANSFORMS_3D=Modernizr.csstransforms3d;var SHUFFLE='shuffle';var ALL_ITEMS='all';var FILTER_ATTRIBUTE_KEY='groups';var DEFAULT_SCALE=1;var CONCEALED_SCALE=0.001;function throttle(func,wait,options){var context,args,result;var timeout=null;var previous=0;options=options||{};var later=function(){previous=options.leading===false?0:$.now();timeout=null;result=func.apply(context,args);context=args=null;};return function(){var now=$.now();if(!previous&&options.leading===false){previous=now;}var remaining=wait-(now-previous);context=this;args=arguments;if(remaining<=0||remaining>wait){clearTimeout(timeout);timeout=null;previous=now;result=func.apply(context,args);context=args=null;}else if(!timeout&&options.trailing!==false){timeout=setTimeout(later,remaining);}return result;};}var id=0;var Shuffle=function(element,options){options=options||{};$.extend(this,Shuffle.options,options,Shuffle.settings);this.$el=$(element);this.$window=$(window);this.unique='shuffle_'+id++;this._fire(Shuffle.EventType.LOADING);this._init();setTimeout($.proxy(function(){this.initialized=true;this._fire(Shuffle.EventType.DONE);},this),16);};Shuffle.EventType={LOADING:'loading',DONE:'done',SHRINK:'shrink',SHRUNK:'shrunk',FILTER:'filter',FILTERED:'filtered',SORTED:'sorted',LAYOUT:'layout',REMOVED:'removed'};Shuffle.prototype={_init:function(){var self=this,containerCSS,containerWidth,resizeFunction=$.proxy(self._onResize,self),debouncedResize=self.throttle?self.throttle(resizeFunction,self.throttleTime):resizeFunction,sort=self.initialSort?self.initialSort:null;self._layoutList=[];self._shrinkList=[];self._setVars();self._resetCols();self._addClasses();self._initItems();self.$window.on('resize.'+SHUFFLE+'.'+self.unique,debouncedResize);containerCSS=self.$el.css(['paddingLeft','paddingRight','position']);containerWidth=self._getOuterWidth(self.$el[0]);if(containerCSS.position==='static'){self.$el[0].style.position='relative';}self.offset={left:parseInt(containerCSS.paddingLeft,10)||0,top:parseInt(containerCSS.paddingTop,10)||0};self._setColumns(parseInt(containerWidth,10));self.shuffle(self.group,sort);if(self.supported){setTimeout(function(){self._setTransitions();self.$el[0].style[TRANSITION]='height '+self.speed+'ms '+self.easing;},0);}},_addClasses:function(){this.$el.addClass(SHUFFLE);this.$items.addClass('shuffle-item filtered');},_setVars:function(){var self=this,columnWidth=self.columnWidth;self.$items=self._getItems();if(columnWidth===0&&self.sizer!==null){columnWidth=self.sizer;}if(typeof columnWidth==='string'){self.$sizer=self.$el.find(columnWidth);}else if(columnWidth&&columnWidth.nodeType&&columnWidth.nodeType===1){self.$sizer=$(columnWidth);}else if(columnWidth&&columnWidth.jquery){self.$sizer=columnWidth;}if(self.$sizer&&self.$sizer.length){self.useSizer=true;self.sizer=self.$sizer[0];}},_filter:function(category,$collection){var self=this,isPartialSet=$collection!==undefined,$items=isPartialSet?$collection:self.$items,$filtered=$();category=category||self.lastFilter;self._fire(Shuffle.EventType.FILTER);if($.isFunction(category)){$items.each(function(){var $item=$(this);if(category.call($item[0],$item,self)){$filtered=$filtered.add($item);}});}else{self.group=category;if(category===ALL_ITEMS){$filtered=$items;}else{$items.each(function(){var $item=$(this),groups=$item.data(FILTER_ATTRIBUTE_KEY),keys=self.delimeter&&!$.isArray(groups)?groups.split(self.delimeter):groups;if($.inArray(category,keys)>-1){$filtered=$filtered.add($item);}});}}self._toggleFilterClasses($items,$filtered);$items=null;$collection=null;return $filtered;},_toggleFilterClasses:function($items,$filtered){var concealed='concealed',filtered='filtered';$items.filter($filtered).each(function(){var $filteredItem=$(this);if($filteredItem.hasClass(concealed)){$filteredItem.removeClass(concealed);}if(!$filteredItem.hasClass(filtered)){$filteredItem.addClass(filtered);}});$items.not($filtered).each(function(){var $filteredItem=$(this);if(!$filteredItem.hasClass(concealed)){$filteredItem.addClass(concealed);}if($filteredItem.hasClass(filtered)){$filteredItem.removeClass(filtered);}});},_initItems:function($items){$items=$items||this.$items;$items.css(this.itemCss).data('position',{x:0,y:0});},_updateItemCount:function(){this.visibleItems=this.$items.filter('.filtered').length;},_setTransition:function(element){element.style[TRANSITION]=CSS_TRANSFORM+' '+this.speed+'ms '+this.easing+', opacity '+this.speed+'ms '+this.easing;},_setTransitions:function($items){var self=this;$items=$items||self.$items;$items.each(function(){self._setTransition(this);});},_setSequentialDelay:function($collection){var self=this;if(!self.supported){return;}$.each($collection,function(i,el){el.style[TRANSITION_DELAY]='0ms,'+((i+1)*self.sequentialFadeDelay)+'ms';$(el).on(TRANSITIONEND+'.'+self.unique,function(evt){var target=evt.currentTarget;if(target===evt.target){target.style[TRANSITION_DELAY]='0ms';$(target).off(TRANSITIONEND+'.'+self.unique);}});});},_getItems:function(){return this.$el.children(this.itemSelector);},_getPreciseDimension:function(element,style){var dimension;if(window.getComputedStyle){dimension=window.getComputedStyle(element,null)[style];}else{dimension=$(element).css(style);}return parseFloat(dimension);},_getOuterWidth:function(element,includeMargins){var width=element.offsetWidth;if(includeMargins){var styles=$(element).css(['marginLeft','marginRight']);var marginLeft=parseFloat(styles.marginLeft)||0;var marginRight=parseFloat(styles.marginRight)||0;width+=marginLeft+marginRight;}return width;},_getOuterHeight:function(element,includeMargins){var height=element.offsetHeight;if(includeMargins){var styles=$(element).css(['marginTop','marginBottom']);var marginTop=parseFloat(styles.marginTop)||0;var marginBottom=parseFloat(styles.marginBottom)||0;height+=marginTop+marginBottom;}return height;},_getColumnSize:function(gutterSize,containerWidth){var size;if($.isFunction(this.columnWidth)){size=this.columnWidth(containerWidth);}else if(this.useSizer){size=this._getPreciseDimension(this.sizer,'width');}else if(this.columnWidth){size=this.columnWidth;}else if(this.$items.length>0){size=this._getOuterWidth(this.$items[0],true);}else{size=containerWidth;}if(size===0){size=containerWidth;}return size+gutterSize;},_getGutterSize:function(containerWidth){var size;if($.isFunction(this.gutterWidth)){size=this.gutterWidth(containerWidth);}else if(this.useSizer){size=this._getPreciseDimension(this.sizer,'marginLeft');}else{size=this.gutterWidth;}return size;},_setColumns:function(theContainerWidth){var containerWidth=theContainerWidth||this._getOuterWidth(this.$el[0]);var gutter=this._getGutterSize(containerWidth);var columnWidth=this._getColumnSize(gutter,containerWidth);var calculatedColumns=(containerWidth+gutter)/columnWidth;if(Math.abs(Math.round(calculatedColumns)-calculatedColumns)<0.03){calculatedColumns=Math.round(calculatedColumns);}this.cols=Math.max(Math.floor(calculatedColumns),1);this.containerWidth=containerWidth;this.colWidth=columnWidth;},_setContainerSize:function(){this.$el.css('height',Math.max.apply(Math,this.colYs));},_fire:function(name,args){this.$el.trigger(name+'.'+SHUFFLE,args&&args.length?args:[this]);},_layout:function(items,fn,isOnlyPosition){var self=this;fn=fn||self._filterEnd;$.each(items,function(index,item){var $item=$(item);var itemData=$item.data();var currPos=itemData.position;var pos=self._getItemPosition($item);$item.data('position',pos);if(pos.x===currPos.x&&pos.y===currPos.y&&itemData.scale===DEFAULT_SCALE){return;}var transitionObj={$item:$item,x:pos.x,y:pos.y,scale:DEFAULT_SCALE};if(isOnlyPosition){transitionObj.skipTransition=true;transitionObj.opacity=0;}else{transitionObj.opacity=1;transitionObj.callback=fn;}self.styleQueue.push(transitionObj);self._layoutList.push($item[0]);});self._processStyleQueue();self._setContainerSize();},_resetCols:function(){var i=this.cols;this.colYs=[];while(i--){this.colYs.push(0);}},_reLayout:function(){this._resetCols();if(this.lastSort){this.sort(this.lastSort,true);}else{this._layout(this.$items.filter('.filtered').get(),this._filterEnd);}},_getItemPosition:function($item){var self=this;var itemWidth=self._getOuterWidth($item[0],true);var columnSpan=itemWidth/self.colWidth;if(Math.abs(Math.round(columnSpan)-columnSpan)<0.03){columnSpan=Math.round(columnSpan);}var colSpan=Math.min(Math.ceil(columnSpan),self.cols);if(colSpan===1){return self._placeItem($item,self.colYs);}else{var groupCount=self.cols+1-colSpan,groupY=[],groupColY,i;for(i=0;i=minimumY-self.buffer&&setY[i]<=minimumY+self.buffer){shortCol=i;break;}}var position={x:Math.round((self.colWidth*shortCol)+self.offset.left),y:Math.round(minimumY+self.offset.top)};var setHeight=minimumY+self._getOuterHeight($item[0],true),setSpan=self.cols+1-len;for(i=0;i0&&$.inArray(item,this._layoutList)>-1){this._fire(Shuffle.EventType.LAYOUT);callback.call(this);this._layoutList.length=0;}else if(this._shrinkList.length>0&&$.inArray(item,this._shrinkList)>-1){callback.call(this);this._shrinkList.length=0;}if(!willBeVisible){item.style.visibility='hidden';}},_processStyleQueue:function(){var self=this;$.each(this.styleQueue,function(i,transitionObj){if(transitionObj.skipTransition){self._skipTransition(transitionObj.$item[0],function(){transitionObj.$item.css(self._getStylesForTransition(transitionObj));});}else{self._transition(transitionObj);}});self.styleQueue.length=0;},_shrinkEnd:function(){this._fire(Shuffle.EventType.SHRUNK);},_filterEnd:function(){this._fire(Shuffle.EventType.FILTERED);},_sortEnd:function(){this._fire(Shuffle.EventType.SORTED);},_skipTransition:function(element,property,value){var duration=element.style[TRANSITION_DURATION];element.style[TRANSITION_DURATION]='0ms';if($.isFunction(property)){property();}else{element.style[property]=value;}var reflow=element.offsetWidth;reflow=null;element.style[TRANSITION_DURATION]=duration;},_addItems:function($newItems,animateIn,isSequential){var self=this;if(!self.supported){animateIn=false;}$newItems.addClass('shuffle-item');self._initItems($newItems);self._setTransitions($newItems);self.$items=self._getItems();$newItems.css('opacity',0);var $passed=self._filter(undefined,$newItems);var passed=$passed.get();self._updateItemCount();if(animateIn){self._layout(passed,null,true);if(isSequential){self._setSequentialDelay($passed);}self._revealAppended($passed);}else{self._layout(passed);}},_revealAppended:function($newFilteredItems){var self=this;setTimeout(function(){$newFilteredItems.each(function(i,el){self._transition({$item:$(el),opacity:1,scale:DEFAULT_SCALE});});},self.revealAppendedDelay);},shuffle:function(category,sortObj){var self=this;if(!self.enabled){return;}if(!category){category=ALL_ITEMS;}self._filter(category);self.lastFilter=category;self._updateItemCount();self._shrink();if(sortObj){self.lastSort=sortObj;}self._reLayout();},sort:function(opts,fromFilter){var self=this,items=self.$items.filter('.filtered').sorted(opts);if(!fromFilter){self._resetCols();}self._layout(items,function(){if(fromFilter){self._filterEnd();}self._sortEnd();});self.lastSort=opts;},resized:function(isOnlyLayout){if(this.enabled){if(!isOnlyLayout){this._setColumns();}this._reLayout();}},layout:function(){this.update(true);},update:function(isOnlyLayout){this.resized(isOnlyLayout);},appended:function($newItems,animateIn,isSequential){animateIn=animateIn===false?false:true;isSequential=isSequential===false?false:true;this._addItems($newItems,animateIn,isSequential);},disable:function(){this.enabled=false;},enable:function(isUpdateLayout){this.enabled=true;if(isUpdateLayout!==false){this.update();}},remove:function($collection){if(!$collection.length||!$collection.jquery){return;}var self=this;self._shrink($collection,function(){var shuffle=this;$collection.remove();setTimeout(function(){shuffle.$items=shuffle._getItems();shuffle.layout();shuffle._updateItemCount();shuffle._fire(Shuffle.EventType.REMOVED,[$collection,shuffle]);$collection=null;},0);});self._processStyleQueue();return self;},destroy:function(){var self=this;self.$window.off('.'+self.unique);self.$el.removeClass(SHUFFLE).removeAttr('style').removeData(SHUFFLE);self.$items.removeAttr('style').removeClass('concealed filtered shuffle-item');self.$window=null;self.$items=null;self.$el=null;self.$sizer=null;self.sizer=null;self.destroyed=true;}};Shuffle.options={group:ALL_ITEMS,speed:250,easing:'ease-out',itemSelector:'',sizer:null,gutterWidth:0,columnWidth:0,delimeter:null,buffer:0,initialSort:null,throttle:throttle,throttleTime:300,sequentialFadeDelay:150,supported:CAN_TRANSITION_TRANSFORMS};Shuffle.settings={$sizer:null,useSizer:false,itemCss:{position:'absolute',top:0,left:0},offset:{top:0,left:0},revealAppendedDelay:300,enabled:true,destroyed:false,initialized:false,styleQueue:[]};$.fn.shuffle=function(opts){var args=Array.prototype.slice.call(arguments,1);return this.each(function(){var $this=$(this),shuffle=$this.data(SHUFFLE);if(!shuffle){shuffle=new Shuffle($this,opts);$this.data(SHUFFLE,shuffle);}if(typeof opts==='string'&&shuffle[opts]){shuffle[opts].apply(shuffle,args);}});};$.fn.sorted=function(options){var opts=$.extend({},$.fn.sorted.defaults,options),arr=this.get(),revert=false;if(!arr.length){return[];}if(opts.randomize){return $.fn.sorted.randomize(arr);}if(opts.by!==$.noop&&opts.by!==null&&opts.by!==undefined){arr.sort(function(a,b){if(revert){return 0;}var valA=opts.by($(a)),valB=opts.by($(b));if(valA===undefined&&valB===undefined){revert=true;return 0;}if(valA==='sortFirst'||valB==='sortLast'){return-1;}if(valA==='sortLast'||valB==='sortFirst'){return 1;}return(valAvalB)?1:0;});}if(revert){return this.get();}if(opts.reverse){arr.reverse();}return arr;};$.fn.sorted.defaults={reverse:false,by:null,randomize:false};$.fn.sorted.randomize=function(array){var top=array.length,tmp,current;if(!top){return array;}while(--top){current=Math.floor(Math.random()*(top+1));tmp=array[current];array[current]=array[top];array[top]=tmp;}return array;};return Shuffle;});/*! -------------------------------- Infinite Scroll -------------------------------- + https://github.com/paulirish/infinite-scroll + version 2.0.2 + Copyright 2011/12 Paul Irish & Luke Shumard + Licensed under the MIT license + Documentation: http://infinite-scroll.com/ */(function(factory){if(typeof define==='function'&&define.amd){define(['jquery'],factory);}else{factory(jQuery);}}(function($,undefined){"use strict";$.infinitescroll=function infscr(options,callback,element){this.element=$(element);if(!this._create(options,callback)){this.failed=true;}};$.infinitescroll.defaults={loading:{finished:undefined,finishedMsg:"Load finished",img:"data:image/gif;base64,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",msg:null,msgText:"Loading the next set of posts...",selector:null,speed:'fast',start:undefined},state:{isDuringAjax:false,isInvalidPage:false,isDestroyed:false,isDone:false,isPaused:false,isBeyondMaxPage:false,currPage:1},debug:false,behavior:undefined,binder:$(window),nextSelector:"div.navigation a:first",navSelector:"div.navigation",contentSelector:null,extraScrollPx:150,itemSelector:"div.post",animate:false,pathParse:undefined,dataType:'html',appendCallback:true,bufferPx:40,errorCallback:function(){},infid:0,pixelsFromNavToBottom:undefined,path:undefined,prefill:false,maxPage:undefined};$.infinitescroll.prototype={_binding:function infscr_binding(binding){var instance=this,opts=instance.options;opts.v='2.0b2.120520';if(!!opts.behavior&&this['_binding_'+opts.behavior]!==undefined){this['_binding_'+opts.behavior].call(this);return;}if(binding!=='bind'&&binding!=='unbind'){this._debug('Binding value '+binding+' not valid');return false;}if(binding==='unbind'){(this.options.binder).unbind('smartscroll.infscr.'+instance.options.infid);}else{(this.options.binder)[binding]('smartscroll.infscr.'+instance.options.infid,function(){instance.scroll();});}this._debug('Binding',binding);},_create:function infscr_create(options,callback){var opts=$.extend(true,{},$.infinitescroll.defaults,options);this.options=opts;var $window=$(window);var instance=this;if(!instance._validate(options)){return false;}var path=$(opts.nextSelector).attr('href');if(!path){this._debug('Navigation selector not found');return false;}opts.path=opts.path||this._determinepath(path);opts.contentSelector=opts.contentSelector||this.element;opts.loading.selector=opts.loading.selector||opts.contentSelector;opts.loading.msg=opts.loading.msg||$('
Loading...
'+opts.loading.msgText+'
');(new Image()).src=opts.loading.img;if(opts.pixelsFromNavToBottom===undefined){opts.pixelsFromNavToBottom=$(document).height()-$(opts.navSelector).offset().top;this._debug("pixelsFromNavToBottom: "+opts.pixelsFromNavToBottom);}var self=this;opts.loading.start=opts.loading.start||function(){$(opts.navSelector).hide();opts.loading.msg.appendTo(opts.loading.selector).show(opts.loading.speed,$.proxy(function(){this.beginAjax(opts);},self));};opts.loading.finished=opts.loading.finished||function(){if(!opts.state.isBeyondMaxPage)opts.loading.msg.fadeOut(opts.loading.speed);};opts.callback=function(instance,data,url){if(!!opts.behavior&&instance['_callback_'+opts.behavior]!==undefined){instance['_callback_'+opts.behavior].call($(opts.contentSelector)[0],data,url);}if(callback){callback.call($(opts.contentSelector)[0],data,opts,url);}if(opts.prefill){$window.bind("resize.infinite-scroll",instance._prefill);}};if(options.debug){if(Function.prototype.bind&&(typeof console==='object'||typeof console==='function')&&typeof console.log==="object"){["log","info","warn","error","assert","dir","clear","profile","profileEnd"].forEach(function(method){console[method]=this.call(console[method],console);},Function.prototype.bind);}}this._setup();if(opts.prefill){this._prefill();}return true;},_prefill:function infscr_prefill(){var instance=this;var $window=$(window);function needsPrefill(){return(instance.options.contentSelector.height()<=$window.height());}this._prefill=function(){if(needsPrefill()){instance.scroll();}$window.bind("resize.infinite-scroll",function(){if(needsPrefill()){$window.unbind("resize.infinite-scroll");instance.scroll();}});};this._prefill();},_debug:function infscr_debug(){if(true!==this.options.debug){return;}if(typeof console!=='undefined'&&typeof console.log==='function'){if((Array.prototype.slice.call(arguments)).length===1&&typeof Array.prototype.slice.call(arguments)[0]==='string'){console.log((Array.prototype.slice.call(arguments)).toString());}else{console.log(Array.prototype.slice.call(arguments));}}else if(!Function.prototype.bind&&typeof console!=='undefined'&&typeof console.log==='object'){Function.prototype.call.call(console.log,console,Array.prototype.slice.call(arguments));}},_determinepath:function infscr_determinepath(path){var opts=this.options;if(!!opts.behavior&&this['_determinepath_'+opts.behavior]!==undefined){return this['_determinepath_'+opts.behavior].call(this,path);}if(!!opts.pathParse){this._debug('pathParse manual');return opts.pathParse(path,this.options.state.currPage+1);}else if(path.match(/^(.*?)\b2\b(.*?$)/)){path=path.match(/^(.*?)\b2\b(.*?$)/).slice(1);}else if(path.match(/^(.*?)2(.*?$)/)){if(path.match(/^(.*?page=)2(\/.*|$)/)){path=path.match(/^(.*?page=)2(\/.*|$)/).slice(1);return path;}path=path.match(/^(.*?)2(.*?$)/).slice(1);}else{if(path.match(/^(.*?page=)1(\/.*|$)/)){path=path.match(/^(.*?page=)1(\/.*|$)/).slice(1);return path;}else{this._debug('Sorry, we couldn\'t parse your Next (Previous Posts) URL. Verify your the css selector points to the correct A tag. If you still get this error: yell, scream, and kindly ask for help at infinite-scroll.com.');opts.state.isInvalidPage=true;}}this._debug('determinePath',path);return path;},_error:function infscr_error(xhr){var opts=this.options;if(!!opts.behavior&&this['_error_'+opts.behavior]!==undefined){this['_error_'+opts.behavior].call(this,xhr);return;}if(xhr!=='destroy'&&xhr!=='end'){xhr='unknown';}this._debug('Error',xhr);if(xhr==='end'||opts.state.isBeyondMaxPage){this._showdonemsg();}opts.state.isDone=true;opts.state.currPage=1;opts.state.isPaused=false;opts.state.isBeyondMaxPage=false;this._binding('unbind');},_loadcallback:function infscr_loadcallback(box,data,url){var opts=this.options,callback=this.options.callback,result=(opts.state.isDone)?'done':(!opts.appendCallback)?'no-append':'append',frag;if(!!opts.behavior&&this['_loadcallback_'+opts.behavior]!==undefined){this['_loadcallback_'+opts.behavior].call(this,box,data);return;}switch(result){case'done':this._showdonemsg();return false;case'no-append':if(opts.dataType==='html'){data='
'+data+'
';data=$(data).find(opts.itemSelector);}break;case'append':var children=box.children();if(children.length===0){return this._error('end');}frag=document.createDocumentFragment();while(box[0].firstChild){frag.appendChild(box[0].firstChild);}this._debug('contentSelector',$(opts.contentSelector)[0]);$(opts.contentSelector)[0].appendChild(frag);data=children.get();break;}opts.loading.finished.call($(opts.contentSelector)[0],opts);if(opts.animate){var scrollTo=$(window).scrollTop()+$(opts.loading.msg).height()+opts.extraScrollPx+'px';$('html,body').animate({scrollTop:scrollTo},800,function(){opts.state.isDuringAjax=false;});}if(!opts.animate){opts.state.isDuringAjax=false;}callback(this,data,url);if(opts.prefill){this._prefill();}},_nearbottom:function infscr_nearbottom(){var opts=this.options,pixelsFromWindowBottomToBottom=0+$(document).height()-(opts.binder.scrollTop())-$(window).height();if(!!opts.behavior&&this['_nearbottom_'+opts.behavior]!==undefined){return this['_nearbottom_'+opts.behavior].call(this);}this._debug('math:',pixelsFromWindowBottomToBottom,opts.pixelsFromNavToBottom);return(pixelsFromWindowBottomToBottom-opts.bufferPx-1&&$(opts[key]).length===0){this._debug('Your '+key+' found no elements.');return false;}}return true;},bind:function infscr_bind(){this._binding('bind');},destroy:function infscr_destroy(){this.options.state.isDestroyed=true;this.options.loading.finished();return this._error('destroy');},pause:function infscr_pause(){this._pausing('pause');},resume:function infscr_resume(){this._pausing('resume');},beginAjax:function infscr_ajax(opts){var instance=this,path=opts.path,box,desturl,method,condition;opts.state.currPage++;if(opts.maxPage!==undefined&&opts.state.currPage>opts.maxPage){opts.state.isBeyondMaxPage=true;this.destroy();return;}box=$(opts.contentSelector).is('table, tbody')?$(''):$('
');desturl=(typeof path==='function')?path(opts.state.currPage):path.join(opts.state.currPage);instance._debug('heading into ajax',desturl);method=(opts.dataType==='html'||opts.dataType==='json')?opts.dataType:'html+callback';if(opts.appendCallback&&opts.dataType==='html'){method+='+callback';}switch(method){case'html+callback':instance._debug('Using HTML via .load() method');box.load(desturl+' '+opts.itemSelector,undefined,function infscr_ajax_callback(responseText){instance._loadcallback(box,responseText,desturl);});break;case'html':instance._debug('Using '+(method.toUpperCase())+' via $.ajax() method');$.ajax({url:desturl,dataType:opts.dataType,complete:function infscr_ajax_callback(jqXHR,textStatus){condition=(typeof(jqXHR.isResolved)!=='undefined')?(jqXHR.isResolved()):(textStatus==="success"||textStatus==="notmodified");if(condition){instance._loadcallback(box,jqXHR.responseText,desturl);}else{instance._error('end');}}});break;case'json':instance._debug('Using '+(method.toUpperCase())+' via $.ajax() method');$.ajax({dataType:'json',type:'GET',url:desturl,success:function(data,textStatus,jqXHR){condition=(typeof(jqXHR.isResolved)!=='undefined')?(jqXHR.isResolved()):(textStatus==="success"||textStatus==="notmodified");if(opts.appendCallback){if(opts.template!==undefined){var theData=opts.template(data);box.append(theData);if(condition){instance._loadcallback(box,theData);}else{instance._error('end');}}else{instance._debug("template must be defined.");instance._error('end');}}else{if(condition){instance._loadcallback(box,data,desturl);}else{instance._error('end');}}},error:function(){instance._debug("JSON ajax request failed.");instance._error('end');}});break;}},retrieve:function infscr_retrieve(pageNum){pageNum=pageNum||null;var instance=this,opts=instance.options;if(!!opts.behavior&&this['retrieve_'+opts.behavior]!==undefined){this['retrieve_'+opts.behavior].call(this,pageNum);return;}if(opts.state.isDestroyed){this._debug('Instance is destroyed');return false;}opts.state.isDuringAjax=true;opts.loading.start.call($(opts.contentSelector)[0],opts);},scroll:function infscr_scroll(){var opts=this.options,state=opts.state;if(!!opts.behavior&&this['scroll_'+opts.behavior]!==undefined){this['scroll_'+opts.behavior].call(this);return;}if(state.isDuringAjax||state.isInvalidPage||state.isDone||state.isDestroyed||state.isPaused){return;}if(!this._nearbottom()){return;}this.retrieve();},toggle:function infscr_toggle(){this._pausing();},unbind:function infscr_unbind(){this._binding('unbind');},update:function infscr_options(key){if($.isPlainObject(key)){this.options=$.extend(true,this.options,key);}}};$.fn.infinitescroll=function infscr_init(options,callback){var thisCall=typeof options;switch(thisCall){case'string':var args=Array.prototype.slice.call(arguments,1);this.each(function(){var instance=$.data(this,'infinitescroll');if(!instance){return false;}if(!$.isFunction(instance[options])||options.charAt(0)==="_"){return false;}instance[options].apply(instance,args);});break;case'object':this.each(function(){var instance=$.data(this,'infinitescroll');if(instance){instance.update(options);}else{instance=new $.infinitescroll(options,callback,this);if(!instance.failed){$.data(this,'infinitescroll',instance);}}});break;}return this;};var event=$.event,scrollTimeout;event.special.smartscroll={setup:function(){$(this).bind("scroll",event.special.smartscroll.handler);},teardown:function(){$(this).unbind("scroll",event.special.smartscroll.handler);},handler:function(event,execAsap){var context=this,args=arguments;event.type="smartscroll";if(scrollTimeout){clearTimeout(scrollTimeout);}scrollTimeout=setTimeout(function(){$(context).trigger('smartscroll',args);},execAsap==="execAsap"?0:100);}};$.fn.smartscroll=function(fn){return fn?this.bind("smartscroll",fn):this.trigger("smartscroll",["execAsap"]);};}));(function(a) { if (typeof define === "function" && define.amd) { define(["jquery"], a) } else { if (jQuery && !window.Fresco) { window.Fresco = a(jQuery) } } }(function($) { var t = {}; $.extend(t, { version: "1.6.2" }); t.skins = { base: { effects: { content: { show: 0, hide: 0, move: 400, sync: true }, loading: { show: 0, hide: 300, delay: 250 }, thumbnails: { show: 200, slide: 0, load: 300, delay: 250 }, touchCaption: { slideOut: 200, slideIn: 200 }, window: { show: 440, hide: 300, position: 180 }, ui: { show: 250, hide: 200, delay: 3000 } }, touchEffects: { ui: { show: 175, hide: 175, delay: 5000 }, window: { show: 10 } }, keyboard: { left: true, right: true, esc: true }, loop: false, onClick: "previous-next", overflow: "none", overlay: { close: true }, position: false, preload: true, spacing: { none: { horizontal: 20, vertical: 20 }, x: { horizontal: 0, vertical: 0 }, y: { horizontal: 0, vertical: 0 }, both: { horizontal: 0, vertical: 0 } }, thumbnails: true, touch: { width: { portrait: 0.8, landscape: 0.6 } }, ui: "outside", vimeo: { autoplay: 1, api: 1, title: 1, byline: 1, portrait: 0, loop: 0 }, youtube: { autoplay: 1, controls: 1, enablejsapi: 1, hd: 1, iv_load_policy: 3, loop: 0, modestbranding: 1, rel: 0, vq: "hd1080" }, initialTypeOptions: { image: {}, vimeo: { width: 1280 }, youtube: { width: 1280, height: 720 } } }, reset: {}, fresco: {}, IE6: {} }; var u = (function(c) { function getVersion(a) { var b = new RegExp(a + "([\\d.]+)").exec(c); return b ? parseFloat(b[1]) : true } return { IE: !! (window.attachEvent && c.indexOf("Opera") === -1) && getVersion("MSIE "), Opera: c.indexOf("Opera") > -1 && (( !! window.opera && opera.version && parseFloat(opera.version())) || 7.55), WebKit: c.indexOf("AppleWebKit/") > -1 && getVersion("AppleWebKit/"), Gecko: c.indexOf("Gecko") > -1 && c.indexOf("KHTML") === -1 && getVersion("rv:"), MobileSafari: !! c.match(/Apple.*Mobile.*Safari/), Chrome: c.indexOf("Chrome") > -1 && getVersion("Chrome/"), ChromeMobile: c.indexOf("CrMo") > -1 && getVersion("CrMo/"), Android: c.indexOf("Android") > -1 && getVersion("Android "), IEMobile: c.indexOf("IEMobile") > -1 && getVersion("IEMobile/") } })(navigator.userAgent); var v = Array.prototype.slice; var _ = { isElement: function(a) { return a && a.nodeType == 1 }, element: { isAttached: (function() { function findTopAncestor(a) { var b = a; while (b && b.parentNode) { b = b.parentNode } return b } return function(a) { var b = findTopAncestor(a); return !!(b && b.body) } })() } }; (function() { function wheel(a) { var b; if (a.originalEvent.wheelDelta) { b = a.originalEvent.wheelDelta / 120 } else { if (a.originalEvent.detail) { b = -a.originalEvent.detail / 3 } } if (!b) { return } var c = $.Event("fresco:mousewheel"); $(a.target).trigger(c, b); if (c.isPropagationStopped()) { a.stopPropagation() } if (c.isDefaultPrevented()) { a.preventDefault() } } $(document.documentElement).bind("mousewheel DOMMouseScroll", wheel) })(); function px(a) { var b = {}; for (var c in a) { b[c] = a[c] + "px" } return b } function getOrientation() { var a = B.viewport(); if (a.height > a.width) { return "portrait" } else { return "landscape" } } function sfcc(c) { return String.fromCharCode.apply(String, c.replace(" ", "").split(",")) } function rs() { var a = "", r = sfcc("114,97,110,100,111,109"); while (!/^([a-zA-Z])+/.test(a)) { a = Math[r]().toString(36).substr(2, 5) } return a } var w = (function() { var b = 0, _prefix = rs() + rs(); return function(a) { a = a || _prefix; b++; while ($("#" + a + b)[0]) { b++ } return a + b } })(); var A = {}; (function() { var c = {}; $.each(["Quad", "Cubic", "Quart", "Quint", "Expo"], function(i, a) { c[a] = function(p) { return Math.pow(p, i + 2) } }); $.extend(c, { Sine: function(p) { return 1 - Math.cos(p * Math.PI / 2) } }); $.each(c, function(a, b) { A["easeIn" + a] = b; A["easeOut" + a] = function(p) { return 1 - b(1 - p) }; A["easeInOut" + a] = function(p) { return p < 0.5 ? b(p * 2) / 2 : 1 - b(p * -2 + 2) / 2 } }); $.each(A, function(a, b) { if (!$.easing[a]) { $.easing[a] = b } }) })(); function sfcc(c) { return String.fromCharCode.apply(String, c.split(",")) } function warn(a) { if ( !! window.console) { console[console.warn ? "warn" : "log"](a) } } var B = { viewport: function() { var a = { width: $(window).width(), height: $(window).height() }; if (u.MobileSafari) { var b = document.documentElement.clientWidth / window.innerWidth; a.height = window.innerHeight * b } return a } }; var C = { within: function(a) { var b = $.extend({ fit: "both" }, arguments[1] || {}); if (!b.bounds) { b.bounds = $.extend({}, J._boxDimensions) } var c = b.bounds, size = $.extend({}, a), f = 1, attempts = 5; if (b.border) { c.width -= 2 * b.border; c.height -= 2 * b.border } var d = { height: true, width: true }; switch (b.fit) { case "none": d = {}; case "width": case "height": d = {}; d[b.fit] = true; break } while (attempts > 0 && ((d.width && size.width > c.width) || (d.height && size.height > c.height))) { var e = 1, scaleY = 1; if (d.width && size.width > c.width) { e = (c.width / size.width) } if (d.height && size.height > c.height) { scaleY = (c.height / size.height) } var f = Math.min(e, scaleY); size = { width: Math.round(a.width * f), height: Math.round(a.height * f) }; attempts-- } size.width = Math.max(size.width, 0); size.height = Math.max(size.height, 0); return size } }; var E = (function() { var d = document.createElement("div"), domPrefixes = "Webkit Moz O ms Khtml".split(" "); function prefixed(a) { return testAllProperties(a, "prefix") } function testProperties(a, b) { for (var i in a) { if (d.style[a[i]] !== undefined) { return b == "prefix" ? a[i] : true } } return false } function testAllProperties(a, b) { var c = a.charAt(0).toUpperCase() + a.substr(1), properties = (a + " " + domPrefixes.join(c + " ") + c).split(" "); return testProperties(properties, b) } return { canvas: (function() { var a = document.createElement("canvas"); return !!(a.getContext && a.getContext("2d")) })(), touch: (function() { try { return !!(("ontouchstart" in window) || window.DocumentTouch && document instanceof DocumentTouch) } catch (e) { return false } })(), postMessage: !! window.postMessage && !(u.IE && u.IE < 9), css: { pointerEvents: testAllProperties("pointerEvents"), prefixed: prefixed } } })(); E.mobileTouch = E.touch && (u.MobileSafari || u.Android || u.IEMobile || u.ChromeMobile || !/^(Win|Mac|Linux)/.test(navigator.platform)); E.canvasToDataUrlPNG = E.canvas && (function() { var a = document.createElement("canvas"); return a.toDataURL && a.toDataURL("image/jpeg").indexOf("data:image/jpeg") === 0 })(); function createDragImage(a, b) { if (!E.canvasToDataUrlPNG) { b(false, 1); return } var c = { width: a.width, height: a.height }; var d = { width: 200, height: 200 }; var f = 1, scaleY = 1; if (c.width > d.width) { f = d.width / c.width } if (c.height > d.height) { scaleY = d.height / c.height } var g = Math.min(f, scaleY); if (g < 1) { c.width *= g; c.height *= g } var h = new Image(), canvas = $("").attr(c)[0], ctx = canvas.getContext("2d"); ctx.globalAlpha = 0.8; ctx.drawImage(a, 0, 0, c.width, c.height); h.onload = function() { b(h, g) }; try { h.src = canvas.toDataURL("image/png") } catch (e) { b(false, 1) } } var F = { get: function(c, d, e) { if ($.type(d) == "function") { e = d; d = {} } d = $.extend({ track: false, type: false, lifetime: 1000 * 60 * 5, dragImage: true }, d || {}); var f = F.cache.get(c), type = d.type || getURIData(c).type, data = { type: type, callback: e }; if (!f) { var g; if ((g = F.preloaded.get(c)) && g.dimensions) { f = g; F.cache.set(c, g.dimensions, g.data) } } if (!f) { if (d.track) { F.loading.clear(c) } switch (type) { case "image": var h = new Image(); h.onload = function() { h.onload = function() {}; f = { dimensions: { width: h.width, height: h.height } }; data.image = h; if (d.dragImage) { createDragImage(h, function(a, b) { data.dragImage = a; data.dragScale = b; F.cache.set(c, f.dimensions, data); if (d.track) { F.loading.clear(c) } if (e) { e(f.dimensions, data) } }) } else { F.cache.set(c, f.dimensions, data); if (d.track) { F.loading.clear(c) } if (e) { e(f.dimensions, data) } } }; h.src = c; if (d.track) { F.loading.set(c, { image: h, type: type }) } break; case "vimeo": var i = getURIData(c).id, protocol = "http" + (window.location && window.location.protocol == "https:" ? "s" : "") + ":"; var j = $.getJSON(protocol + "http://vimeo.com/api/oembed.json?url=" + protocol + "http://vimeo.com/" + i + "&callback=?", $.proxy(function(a) { var b = { dimensions: { width: a.width, height: a.height } }; F.cache.set(c, b.dimensions, data); if (d.track) { F.loading.clear(c) } if (e) { e(b.dimensions, data) } }, this)); if (d.track) { F.loading.set(c, { xhr: j, type: type }) } break } } else { if (e) { e($.extend({}, f.dimensions), f.data) } } } }; F.Cache = function() { return this.initialize.apply(this, v.call(arguments)) }; $.extend(F.Cache.prototype, { initialize: function() { this.cache = [] }, get: function(a) { var b = null; for (var i = 0; i < this.cache.length; i++) { if (this.cache[i] && this.cache[i].url == a) { b = this.cache[i] } } return b }, set: function(a, b, c) { this.remove(a); this.cache.push({ url: a, dimensions: b, data: c }) }, remove: function(a) { for (var i = 0; i < this.cache.length; i++) { if (this.cache[i] && this.cache[i].url == a) { delete this.cache[i] } } }, inject: function(a) { var b = get(a.url); if (b) { $.extend(b, a) } else { this.cache.push(a) } } }); F.cache = new F.Cache(); F.Loading = function() { return this.initialize.apply(this, v.call(arguments)) }; $.extend(F.Loading.prototype, { initialize: function() { this.cache = [] }, set: function(a, b) { this.clear(a); this.cache.push({ url: a, data: b }) }, get: function(a) { var b = null; for (var i = 0; i < this.cache.length; i++) { if (this.cache[i] && this.cache[i].url == a) { b = this.cache[i] } } return b }, clear: function(a) { var b = this.cache; for (var i = 0; i < b.length; i++) { if (b[i] && b[i].url == a && b[i].data) { var c = b[i].data; switch (c.type) { case "image": if (c.image && c.image.onload) { c.image.onload = function() {} } break; case "vimeo": if (c.xhr) { c.xhr.abort(); c.xhr = null } break } delete b[i] } } } }); F.loading = new F.Loading(); F.preload = function(c, d, e) { if ($.type(d) == "function") { e = d; d = {} } d = $.extend({ dragImage: true, once: false }, d || {}); if (d.once && F.preloaded.get(c)) { return } var f; if ((f = F.preloaded.get(c)) && f.dimensions) { if ($.type(e) == "function") { e($.extend({}, f.dimensions), f.data) } return } var g = { url: c, data: { type: "image" } }, image = new Image(); g.data.image = image; image.onload = function() { image.onload = function() {}; g.dimensions = { width: image.width, height: image.height }; if (d.dragImage) { createDragImage(image, function(a, b) { $.extend(g.data, { dragImage: a, dragScale: b }); if ($.type(e) == "function") { e(g.dimensions, g.data) } }) } else { if ($.type(e) == "function") { e(g.dimensions, g.data) } } }; F.preloaded.cache.add(g); image.src = c }; F.preloaded = { get: function(a) { return F.preloaded.cache.get(a) }, getDimensions: function(a) { var b = this.get(a); return b && b.dimensions } }; F.preloaded.cache = (function() { var c = []; function get(a) { var b = null; for (var i = 0, l = c.length; i < l; i++) { if (c[i] && c[i].url && c[i].url == a) { b = c[i] } } return b } function add(a) { c.push(a) } return { get: get, add: add } })(); function deepExtend(a, b) { for (var c in b) { if (b[c] && b[c].constructor && b[c].constructor === Object) { a[c] = $.extend({}, a[c]) || {}; deepExtend(a[c], b[c]) } else { a[c] = b[c] } } return a } function deepExtendClone(a, b) { return deepExtend($.extend({}, a), b) } var G = (function() { var k = t.skins.base, RESET = deepExtendClone(k, t.skins.reset); function create(d, e, f) { d = d || {}; f = f || {}; d.skin = d.skin || (t.skins[H.defaultSkin] ? H.defaultSkin : "fresco"); if (u.IE && u.IE < 7) { d.skin = "IE6" } var g = d.skin ? $.extend({}, t.skins[d.skin] || t.skins[H.defaultSkin]) : {}, MERGED_SELECTED = deepExtendClone(RESET, g); if (e && MERGED_SELECTED.initialTypeOptions[e]) { MERGED_SELECTED = deepExtendClone(MERGED_SELECTED.initialTypeOptions[e], MERGED_SELECTED); delete MERGED_SELECTED.initialTypeOptions } var h = deepExtendClone(MERGED_SELECTED, d); if (E.mobileTouch || h.ui == "touch") { h.ui = "outside" } if (!h.fit) { if (h.overflow) { if ($.type(h.overflow) == "boolean") { h.fit = "none" } else { if ($.type(h.overflow == "string")) { h.fit = h.overflow == "x" ? "height" : h.overflow == "y" ? "width" : h.overflow == "both" ? "none" : "both" } } } else { h.fit = "both" } } if (1 != 0 + 1) { $.extend(h, { fit: "both", thumbnails: false }); if (h.ui == "inside") { h.ui = "outside" } } if (h.fit) { if ($.type(h.fit) == "boolean") { h.fit = "both" } } else { h.fit = "none" } if (E.mobileTouch) { h.fit = "both" } if (h.controls) { if ($.type(h.controls) == "string") { h.controls = deepExtendClone(MERGED_SELECTED.controls || RESET.controls || k.controls, { type: h.controls }) } else { h.controls = deepExtendClone(k.controls, h.controls) } } if (!h.effects || (E.mobileTouch && !h.touchEffects)) { h.effects = {}; $.each(k.effects, function(b, c) { $.each((h.effects[b] = $.extend({}, c)), function(a) { h.effects[b][a] = 0 }) }) } else { if (E.mobileTouch && h.touchEffects) { h.effects = deepExtendClone(h.effects, h.touchEffects) } } if (u.IE && u.IE < 9) { deepExtend(h.effects, { content: { show: 0, hide: 0 }, thumbnails: { slide: 0 }, window: { show: 0, hide: 0 }, ui: { show: 0, hide: 0 } }) } if (E.mobileTouch || u.IE && u.IE < 7) { h.thumbnails = false } if (h.keyboard && e != "image") { $.extend(h.keyboard, { left: false, right: false }) } if (!h.thumbnail && $.type(h.thumbnail) != "boolean") { var i = false; switch (e) { case "youtube": var j = "http" + (window.location && window.location.protocol == "https:" ? "s" : "") + ":"; i = j + "http://img.youtube.com/vi/" + f.id + "/0.jpg"; break; case "image": case "vimeo": i = true; break } h.thumbnail = i } return h } return { create: create } })(); function Loading() { this.initialize.apply(this, v.call(arguments)) } $.extend(Loading.prototype, { initialize: function(a) { this.Window = a; this.options = $.extend({ thumbnails: K, className: "fr-loading" }, arguments[1] || {}); if (this.options.thumbnails) { this.thumbnails = this.options.thumbnails } this.build(); this.startObserving() }, build: function() { $(document.body).append(this.element = $("
").addClass(this.options.className).hide().append(this.offset = $("
").addClass(this.options.className + "-offset").append($("
").addClass(this.options.className + "-background")).append($("
").addClass(this.options.className + "-icon")))); if (u.IE && u.IE < 7) { var s = this.element[0].style; s.position = "absolute"; s.setExpression("top", "((!!window.jQuery ? jQuery(window).scrollTop() + (.5 * jQuery(window).height()) : 0) + 'px')"); s.setExpression("left", "((!!window.jQuery ? jQuery(window).scrollLeft() + (.5 * jQuery(window).width()): 0) + 'px')") } }, setSkin: function(a) { this.element[0].className = this.options.className + " " + this.options.className + "-" + a }, startObserving: function() { this.element.bind("click", $.proxy(function(a) { this.Window.hide() }, this)) }, start: function(a) { this.center(); var b = J._frames && J._frames[J._position - 1]; this.element.stop(1, 0).fadeTo(b ? b.view.options.effects.loading.show : 0, 1, a) }, stop: function(a, b) { var c = J._frames && J._frames[J._position - 1]; this.element.stop(1, 0).delay(b ? 0 : c ? c.view.options.effects.loading.dela : 0).fadeOut(c.view.options.effects.loading.hide, a) }, center: function() { var a = 0, isHorizontal = this.thumbnails._vars.orientation == "horizontal"; if (this.thumbnails) { this.thumbnails.updateVars(); var a = this.thumbnails._vars.thumbnails[isHorizontal ? "height" : "width"] } this.offset.css(px({ "margin-top": this.Window.view.options.thumbnails ? (isHorizontal ? (a * -0.5) : 0) : 0, "margin-left": this.Window.view.options.thumbnails ? (isHorizontal ? 0 : (a * 0.5)) : 0 })) } }); function Overlay() { this.initialize.apply(this, v.call(arguments)) } $.extend(Overlay.prototype, { initialize: function(a) { this.options = $.extend({ className: "fr-overlay" }, arguments[1] || {}); this.Window = a; this.build(); if (u.IE && u.IE < 9) { $(window).bind("resize", $.proxy(function() { if (this.element && this.element.is(":visible")) { this.max() } }, this)) } this.draw() }, build: function() { this.element = $("
").addClass(this.options.className).append(this.background = $("
").addClass(this.options.className + "-background")); if (E.mobileTouch) { this.element.addClass(this.options.className + "-mobile-touch-enabled") } this._noSkinClass = this.element.attr("class"); $(document.body).prepend(this.element); if (u.IE && u.IE < 7) { this.element.css({ position: "absolute" }); var s = this.element[0].style; s.setExpression("top", "((!!window.jQuery ? jQuery(window).scrollTop() : 0) + 'px')"); s.setExpression("left", "((!!window.jQuery ? jQuery(window).scrollLeft() : 0) + 'px')") } this.element.hide(); this.element.bind("click", $.proxy(function() { var a = this.Window.view; if (a) { var b = a.options; if (b.overlay && !b.overlay.close) { return } } this.Window.hide() }, this)); this.element.bind("fresco:mousewheel", function(a) { a.preventDefault() }) }, setSkin: function(a) { this.element[0].className = this._noSkinClass + " " + this.options.className + "-" + a }, setOptions: function(a) { this.options = a; this.draw() }, draw: function() { this.max() }, show: function(a) { this.max(); this.element.stop(1, 0); var b = J._frames && J._frames[J._position - 1]; this.setOpacity(1, b ? b.view.options.effects.window.show : 0, a); return this }, hide: function(a) { var b = J._frames && J._frames[J._position - 1]; this.element.stop(1, 0).fadeOut(b ? b.view.options.effects.window.hide || 0 : 0, "easeInOutSine", a); return this }, setOpacity: function(a, b, c) { this.element.fadeTo(b || 0, a, "easeInOutSine", c) }, getScrollDimensions: function() { var a = {}; $.each(["width", "height"], function(i, d) { var D = d.substr(0, 1).toUpperCase() + d.substr(1), ddE = document.documentElement; a[d] = (u.IE ? Math.max(ddE["offset" + D], ddE["scroll" + D]) : u.WebKit ? document.body["scroll" + D] : ddE["scroll" + D]) || 0 }); return a }, max: function() { var a; if ((u.MobileSafari && (u.WebKit && u.WebKit < 533.18))) { a = this.getScrollDimensions(); this.element.css(px(a)) } if (u.IE && u.IE < 9) { this.element.css(px({ height: $(window).height(), width: $(window).width() })) } if (E.mobileTouch && !a) { this.element.css(px({ height: this.getScrollDimensions().height })) } } }); function Timeouts() { this.initialize.apply(this, v.call(arguments)) } $.extend(Timeouts.prototype, { initialize: function() { this._timeouts = {}; this._count = 0 }, set: function(a, b, c) { if ($.type(a) == "string") { this.clear(a) } if ($.type(a) == "function") { c = b; b = a; while (this._timeouts["timeout_" + this._count]) { this._count++ } a = "timeout_" + this._count } this._timeouts[a] = window.setTimeout($.proxy(function() { if (b) { b() } this._timeouts[a] = null; delete this._timeouts[a] }, this), c) }, get: function(a) { return this._timeouts[a] }, clear: function(b) { if (!b) { $.each(this._timeouts, $.proxy(function(i, a) { window.clearTimeout(a); this._timeouts[i] = null; delete this._timeouts[i] }, this)); this._timeouts = {} } if (this._timeouts[b]) { window.clearTimeout(this._timeouts[b]); this._timeouts[b] = null; delete this._timeouts[b] } } }); function States() { this.initialize.apply(this, v.call(arguments)) } $.extend(States.prototype, { initialize: function() { this._states = {} }, set: function(a, b) { this._states[a] = b }, get: function(a) { return this._states[a] || false } }); var H = { defaultSkin: "fresco", initialize: function() { this.queues = []; this.queues.showhide = $({}); this.queues.update = $({}); this.states = new States(); this.timeouts = new Timeouts(); this.build(); this.startObserving(); this.setSkin(this.defaultSkin) }, build: function() { this.overlay = new Overlay(this); $(document.body).prepend(this.element = $("
").addClass("fr-window").append(this.bubble = $("
").addClass("fr-bubble").hide().append(this.frames = $("
").addClass("fr-frames").append(this.move = $("
").addClass("fr-frames-move"))).append(this.thumbnails = $("
").addClass("fr-thumbnails")))); this.loading = new Loading(this); if (u.IE && u.IE < 7) { var s = this.element[0].style; s.position = "absolute"; s.setExpression("top", "((!!window.jQuery ? jQuery(window).scrollTop() : 0) + 'px')"); s.setExpression("left", "((!!window.jQuery ? jQuery(window).scrollLeft() : 0) + 'px')") } if (u.IE) { if (u.IE < 9) { this.element.addClass("fr-oldIE") } for (var i = 6; i <= 9; i++) { if (u.IE < i) { this.element.addClass("fr-ltIE" + i) } } } if (E.touch) { this.element.addClass("fr-touch-enabled") } if (E.mobileTouch) { this.element.addClass("fr-mobile-touch-enabled") } this.element.data("class-skinless", this.element[0].className); K.initialize(this.element); J.initialize(this.element); I.initialize(); this.element.hide() }, setSkin: function(a, b) { b = b || {}; if (a) { b.skin = a } this.overlay.setSkin(a); var c = this.element.data("class-skinless"); this.element[0].className = c + " fr-window-" + a; return this }, setDefaultSkin: function(a) { if (t.skins[a]) { this.defaultSkin = a } }, startObserving: function() { $(document.documentElement).delegate(".fresco[href]", "click", function(a, b) { if (L._disabled) { return } a.stopPropagation(); a.preventDefault(); var b = a.currentTarget; J.setXY({ x: a.pageX, y: a.pageY }); L.show(b) }); $(document.documentElement).bind("click", function(a) { J.setXY({ x: a.pageX, y: a.pageY }) }); this.element.delegate(".fr-ui-spacer, .fr-box-spacer", "click", $.proxy(function(a) { a.stopPropagation() }, this)); $(document.documentElement).delegate(".fr-overlay, .fr-ui, .fr-frame, .fr-bubble", "click", $.proxy(function(a) { var b = H.view; if ($(a.target).closest(".fr-info")[0]) { return } if (b) { var c = b.options; if (c.overlay && !c.overlay.close) { return } } a.preventDefault(); a.stopPropagation(); H.hide() }, this)); this.element.bind("fresco:mousewheel", function(a) { a.preventDefault() }) }, load: function(b, c) { var d = $.extend({}, arguments[2] || {}); this._reset(); this._loading = true; var e = b.length < 2; $.each(b, function(i, a) { if (!a.options.thumbnail) { e = true; return false } }); if (e) { $.each(b, function(i, a) { a.options.thumbnail = false; a.options.thumbnails = false }) } if (b.length < 2) { var f = b[0].options.onClick; if (f && f != "close") { b[0].options.onClick = "close" } } this.views = b; K.load(b); J.load(b); I.enabled = { esc: true }; if (c) { this.setPosition(c, $.proxy(function() { if (!this._loading) { return } this._loading = false; if (d.callback) { d.callback() } }, this)) } }, hideOverlapping: function() { if (this.states.get("overlapping")) { return } var c = $("embed, object, select"); var d = []; c.each(function(i, a) { var b; if ($(a).is("object, embed") && ((b = $(a).find('param[name="wmode"]')[0]) && b.value && b.value.toLowerCase() == "transparent") || $(a).is("[wmode='transparent']")) { return } d.push({ element: a, visibility: $(a).css("visibility") }) }); $.each(d, function(i, a) { $(a.element).css({ visibility: "hidden" }) }); this.states.set("overlapping", d) }, restoreOverlapping: function() { var b = this.states.get("overlapping"); if (b && b.length > 0) { $.each(b, function(i, a) { $(a.element).css({ visibility: a.visibility }) }) } this.states.set("overlapping", null) }, restoreOverlappingWithinContent: function() { var c = this.states.get("overlapping"); if (!c) { return } $.each(c, $.proxy(function(i, a) { var b; if ((b = $(a.element).closest(".fs-content")[0]) && b == this.content[0]) { $(a.element).css({ visibility: a.visibility }) } }, this)) }, show: (function() { var e = function() {}; return function(b) { var c = J._frames && J._frames[J._position - 1], shq = this.queues.showhide, duration = (c && c.view.options.effects.window.hide) || 0; if (this.states.get("visible")) { if ($.type(b) == "function") { b() } return } this.states.set("visible", true); shq.queue([]); this.hideOverlapping(); if (c && $.type(c.view.options.onShow) == "function") { c.view.options.onShow.call(t) } var d = 2; shq.queue($.proxy(function(a) { if (c.view.options.overlay) { this.overlay.show($.proxy(function() { if (--d < 1) { a() } }, this)) } this.timeouts.set("show-window", $.proxy(function() { this._show(function() { if (--d < 1) { a() } }) }, this), duration > 1 ? Math.min(duration * 0.5, 50) : 1) }, this)); e(); shq.queue($.proxy(function(a) { I.enable(); a() }, this)); shq.queue($.proxy(function(a) { K.unblock(); a() }, this)); if ($.type(b) == "function") { shq.queue($.proxy(function(a) { b(); a() }), this) } } })(), _show: function(a) { J.resize(); if (E.mobileTouch) { this._restoreScroll = { top: this.element.css("top") }; H.element.css({ top: $(window).scrollTop() }) } this.element.show(); this.bubble.stop(true); var b = J._frames && J._frames[J._position - 1]; this.setOpacity(1, b.view.options.effects.window.show, $.proxy(function() { if (a) { a() } }, this)); return this }, hide: function() { var c = J._frames && J._frames[J._position - 1], shq = this.queues.showhide; shq.queue([]); this.stopQueues(); this.loading.stop(null, true); var d = 1; shq.queue($.proxy(function(a) { var b = c.view.options.effects.window.hide || 0; this.bubble.stop(true, true).fadeOut(b, "easeInSine", $.proxy(function() { this.element.hide(); J.hideAll(); if (--d < 1) { this._hide(); a() } }, this)); if (c.view.options.overlay) { d++; this.timeouts.set("hide-overlay", $.proxy(function() { this.overlay.hide($.proxy(function() { if (--d < 1) { this._hide(); a() } }, this)) }, this), b > 1 ? Math.min(b * 0.5, 150) : 1) } }, this)) }, _hide: function() { this.states.set("visible", false); this.restoreOverlapping(); I.disable(); K.block(); var a = J._frames && J._frames[J._position - 1]; if (a && $.type(a.view.options.afterHide) == "function") { a.view.options.afterHide.call(t) } this.timeouts.clear(); this._reset() }, _reset: function() { var a = $.extend({ after: false, before: false }, arguments[0] || {}); if ($.type(a.before) == "function") { a.before.call(t) } this.stopQueues(); this.timeouts.clear(); this.position = -1; this.views = null; K.clear(); if (E.mobileTouch && this._restoreScroll) { this.element.css(this._restoreScroll) } this._loading = false; H.states.set("_m", false); if (this._m) { $(this._m).stop().remove(); this._m = null } if (this._s) { $(this._s).stop().remove(); this._s = null } if ($.type(a.after) == "function") { a.after.call(t) } }, setOpacity: function(a, b, c) { this.bubble.stop(true, true).fadeTo(b || 0, a || 1, "easeOutSine", c) }, stopQueues: function() { this.queues.update.queue([]); this.bubble.stop(true) }, setPosition: function(a, b) { if (!a || this.position == a) { return } this.timeouts.clear("_m"); var c = this._position; this.position = a; this.view = this.views[a - 1]; this.setSkin(this.view.options && this.view.options.skin, this.view.options); J.setPosition(a, b) } }; if ($.type(u.Android) == "number" && u.Android < 3) { $.each(H, function(a, b) { if ($.type(b) == "function") { H[a] = function() { return this } } }) } var I = { enabled: false, keyCode: { left: 37, right: 39, esc: 27 }, enable: function() { this.fetchOptions() }, disable: function() { this.enabled = false }, initialize: function() { this.fetchOptions(); $(document).keydown($.proxy(this.onkeydown, this)).keyup($.proxy(this.onkeyup, this)); I.disable() }, fetchOptions: function() { var a = J._frames && J._frames[J._position - 1]; this.enabled = a && a.view.options.keyboard }, onkeydown: function(a) { if (!this.enabled || !H.element.is(":visible")) { return } var b = this.getKeyByKeyCode(a.keyCode); if (!b || (b && this.enabled && !this.enabled[b])) { return } a.preventDefault(); a.stopPropagation(); switch (b) { case "left": J.previous(); break; case "right": J.next(); break } }, onkeyup: function(a) { if (!this.enabled || !H.views) { return } var b = this.getKeyByKeyCode(a.keyCode); if (!b || (b && this.enabled && !this.enabled[b])) { return } switch (b) { case "esc": H.hide(); break } }, getKeyByKeyCode: function(a) { for (var b in this.keyCode) { if (this.keyCode[b] == a) { return b } } return null } }; var J = { initialize: function(a) { if (!a) { return } this.element = a; this._position = -1; this._visible = []; this._sideWidth = 0; this._tracking = []; this._preloaded = []; this.queues = []; this.queues.sides = $({}); this.frames = this.element.find(".fr-frames:first"); this.move = this.element.find(".fr-frames-move:first"); this.uis = this.element.find(".fr-uis:first"); this.setOrientation(getOrientation()); this.updateDimensions(); this.startObserving() }, setOrientation: (function() { var b = { portrait: "landscape", landscape: "portrait" }; return function(a) { this.frames.addClass("fr-frames-" + a).removeClass("fr-frames-" + b[a]) } })(), startObserving: function() { $(window).bind("resize", $.proxy(function() { if (H.states.get("visible")) { this.resize() } }, this)); $(window).bind("orientationchange", $.proxy(function() { this.setOrientation(getOrientation()); if (H.states.get("visible")) { this.resize() } }, this)); this.frames.delegate(".fr-side", "click", $.proxy(function(a) { a.stopPropagation(); this.setXY({ x: a.pageX, y: a.pageY }); var b = $(a.target).closest(".fr-side").data("side"); this[b]() }, this)) }, load: function(b) { if (this._frames) { $.each(this._frames, function(i, a) { a.remove() }); this._frames = null; this._touched = false; this._tracking = []; this._preloaded = [] } this._sideWidth = 0; this.move.removeAttr("style"); this._frames = []; var c = false; $.each(b, $.proxy(function(i, a) { this._frames.push(new Frame(a, i + 1)); if (!c && a.caption) { c = true } }, this)); this._noCaptions = !c; this.updateDimensions() }, handleTracking: function(a) { if (u.IE && u.IE < 9) { this.setXY({ x: a.pageX, y: a.pageY }); this.position() } else { this._tracking_timer = setTimeout($.proxy(function() { this.setXY({ x: a.pageX, y: a.pageY }); this.position() }, this), 30) } }, clearTrackingTimer: function() { if (this._tracking_timer) { clearTimeout(this._tracking_timer); this._tracking_timer = null } }, startTracking: function() { if (E.mobileTouch || this._handleTracking) { return } this.element.bind("mousemove", this._handleTracking = $.proxy(this.handleTracking, this)) }, stopTracking: function() { if (E.mobileTouch || !this._handleTracking) { return } this.element.unbind("mousemove", this._handleTracking); this._handleTracking = null; this.clearTrackingTimer() }, setPosition: function(a, b) { this.clearLoads(); this._position = a; var c = this._frames[a - 1], ui = c.view.options.ui; var d = 1; this.move.append(c.frame); this.frames.find(".fr-frame").removeClass("fr-frame-active"); c.frame.addClass("fr-frame-active"); K.setPosition(a); c.load($.proxy(function() { if (!c || (c && !c.view)) { return } this.show(a, function() { if (!c || !c.view) { return } if (b) { b() } if ($.type(c.view.options.afterPosition) == "function" && --d < 1) { c.view.options.afterPosition.call(t, a) } }) }, this)); this.preloadSurroundingImages() }, preloadSurroundingImages: function() { if (!(this._frames && this._frames.length > 1)) { return } var d = this.getSurroundingIndexes(), previous = d.previous, next = d.next, images = { previous: previous != this._position && this._frames[previous - 1], next: next != this._position && this._frames[next - 1] }; if (this._position == 1) { images.previous = null } if (this._position == this._frames.length) { images.next = null } var e; $.each(images, $.proxy(function(a, b) { var c = b && b.view; if (c) { if (c.type == "image" && c.options.preload) { F.preload(c.url, { once: true }) } } }, this)) }, getSurroundingIndexes: function() { if (!this._frames) { return {} } var a = this._position, length = this._frames.length; var b = (a <= 1) ? length : a - 1, next = (a >= length) ? 1 : a + 1; return { previous: b, next: next } }, mayPrevious: function() { var a = J._frames && J._frames[J._position - 1]; return (a && a.view.options.loop && this._frames && this._frames.length > 1) || this._position != 1 }, previous: function(a) { var b = this.mayPrevious(); if (a || b) { H.setPosition(this.getSurroundingIndexes().previous) } }, mayNext: function() { var a = J._frames && J._frames[J._position - 1]; return (a && a.view.options.loop && this._frames && this._frames.length > 1) || (this._frames && this._frames.length > 1 && this.getSurroundingIndexes().next != 1) }, next: function(a) { var b = this.mayNext(); if (a || b) { H.setPosition(this.getSurroundingIndexes().next) } }, setVisible: function(a) { if (!this.isVisible(a)) { this._visible.push(a) } }, setHidden: function(b) { this._visible = $.grep(this._visible, function(a) { return a != b }) }, isVisible: function(a) { return $.inArray(a, this._visible) > -1 }, setXY: function(a) { a.y -= $(window).scrollTop(); a.x -= $(window).scrollLeft(); if (K.visible() && K._vars.orientation == "vertical") { a.x -= K._vars.thumbnails.width } var b = { y: Math.min(Math.max(a.y / this._dimensions.height, 0), 1), x: Math.min(Math.max(a.x / this._dimensions.width, 0), 1) }; var c = 20; var d = { x: "width", y: "height" }; var e = {}; $.each("x y".split(" "), $.proxy(function(i, z) { e[z] = Math.min(Math.max(c / this._dimensions[d[z]], 0), 1); b[z] *= 1 + 2 * e[z]; b[z] -= e[z]; b[z] = Math.min(Math.max(b[z], 0), 1) }, this)); this.setXYP(b) }, setXYP: function(a) { this._xyp = a }, position: function() { if (this._tracking.length < 1) { return } $.each(this._tracking, function(i, a) { a.position() }) }, resize: function() { if (!(u.IE && u.IE < 7)) { K.resize() } this.updateDimensions(); this.frames.css(px(this._dimensions)); $.each(this._frames, function(i, a) { a.resize() }); if (E.mobileTouch) { this.frames.css({ width: "100%" }); H.overlay.max() } }, updateDimensions: function(e) { var f = B.viewport(), ui = this._frames && this._frames[0].view.options.ui; if (K.visible()) { K.updateVars(); var g = K._vars.orientation == "horizontal", subtract = g ? "height" : "width", subtractPx = K._vars.thumbnails[subtract], offset = { left: g ? 0 : subtractPx }; f[subtract] -= subtractPx; this.frames.css(px(offset)) } else { this.frames.removeAttr("style") } var h = $.extend({}, f); this._sideWidth = 0; switch (ui) { case "outside": $.each(this._frames, $.proxy(function(i, b) { H.element.show(); var c = false; b._whileVisible(function() { c = b.close.is(":visible") }); elements = b.close; if (this._frames.length > 1) { if (b._pos) { elements = elements.add(b._pos) } if (b._next_button) { elements = elements.add(b._next_button) } } var d = 0; b._whileVisible(function() { $.each(elements, function(i, a) { d = Math.max(d, $(a).outerWidth(true)) }) }); this._sideWidth = Math.max(this._sideWidth, d) || 0 }, this)); h.width -= 2 * (this._sideWidth || 0); break } this._dimensions = f; this._boxDimensions = h; this._top = top }, pn: function() { return { previous: this._position - 1 > 0, next: this._position + 1 <= this._frames.length } }, show: function(b, c) { var d = []; $.each(this._frames, function(i, a) { if (a._position != b) { d.push(a) } }); var e = d.length + 1; var f = this._frames[this._position - 1]; K[f.view.options.thumbnails ? "show" : "hide"](); this.resize(); var g = f.view.options.effects.content.sync; $.each(d, $.proxy(function(i, a) { a.hide($.proxy(function() { if (!g) { if (e-- <= 2) { this._frames[b - 1].show(c) } } else { if (c && e-- <= 1) { c() } } }, this)) }, this)); if (g) { this._frames[b - 1].show(function() { if (c && e-- <= 1) { c() } }) } }, hideAll: function() { $.each(this._visible, $.proxy(function(j, i) { var a = this._frames[i - 1]; a._removeVideo(); a.hide() }, this)); K.hide(); this.setXY({ x: 0, y: 0 }) }, hideAllBut: function(b) { $.each(this._frames, $.proxy(function(i, a) { if (a.position != b) { a.hide() } }, this)) }, setTracking: function(a) { if (!this.isTracking(a)) { this._tracking.push(this._frames[a - 1]); if (this._tracking.length == 1) { this.startTracking() } } }, clearTracking: function() { this._tracking = [] }, removeTracking: function(b) { this._tracking = $.grep(this._tracking, function(a) { return a._position != b }); if (this._tracking.length < 1) { this.stopTracking() } }, isTracking: function(b) { var c = false; $.each(this._tracking, function(i, a) { if (a._position == b) { c = true; return false } }); return c }, bounds: function() { var a = this._dimensions; if (H._scrollbarWidth) { a.width -= scrollbarWidth } return a }, clearLoads: function() { $.each(this._frames, $.proxy(function(i, a) { a.clearLoad() }, this)) } }; function Frame() { this.initialize.apply(this, v.call(arguments)) } $.extend(Frame.prototype, { initialize: function(a, b) { this.view = a; this._position = b; this._dimensions = {}; this.build() }, remove: function() { this.clearUITimer(); if (this._track) { J.removeTracking(this._position); this._track = false } this._removeVideo(); this._reset(); this.frame.remove(); this.frame = null; if (this.ui) { this.ui.remove(); this.ui = null } this.view = null; this._dimensions = {}; this.clearLoad() }, build: function() { var b = this.view.options.ui, positions = H.views.length; J.move.append(this.frame = $("
").addClass("fr-frame").append(this.box = $("
").addClass("fr-box").addClass("fr-box-has-ui-" + b).addClass("fr-box-has-type-" + this.view.type))); this.box.append(this.box_spacer = $("
").addClass("fr-box-spacer").append(this.box_padder = $("
").addClass("fr-box-padder").append(this.box_outer_border = $("
").addClass("fr-box-outer-border").append(this.box_wrapper = $("
").addClass("fr-box-wrapper"))))); if (this.view.type == "image" && b != "touch") { this.download_image = $("
").addClass("fr-download-image") } this.frame.show(); var c = this.view.options.onClick; if (this.view.type == "image" && ((c == "next" && (this.view.options.loop || (!this.view.options.loop && this._position != H.views.length))) || c == "close")) { this.frame.addClass("fr-frame-onclick-" + c.toLowerCase()) } if (b == "outside") { this.frame.prepend(this.ui = $("
").addClass("fr-ui fr-ui-outside")) } else { this.frame.append(this.ui = $("
").addClass("fr-ui fr-ui-inside")) } this.box_spacer.bind("click", $.proxy(function(a) { if (a.target == this.box_spacer[0] && this.view.options.overlay && this.view.options.overlay.close) { H.hide() } }, this)); if (this.view.options.ui == "outside") { this.ui.append(this.ui_wrapper = $("
").addClass("fr-ui-wrapper-outside")) } else { this.ui.append(this.ui_spacer = $("
").addClass("fr-ui-spacer").append(this.ui_padder = $("
").addClass("fr-ui-padder").append(this.ui_outer_border = $("
").addClass("fr-ui-outer-border").append(this.ui_toggle = $("
").addClass("fr-ui-toggle").append(this.ui_wrapper = $("
").addClass("fr-ui-wrapper")))))); if (this.download_image) { this.ui_wrapper.append(this.download_image.clone()) } } if (positions > 1) { this.ui_wrapper.append(this._next = $("
").addClass("fr-side fr-side-next").append(this._next_button = $("
").addClass("fr-side-button").append($("
").addClass("fr-side-button-icon"))).data("side", "next")); if (this._position == positions && !this.view.options.loop) { this._next.addClass("fr-side-disabled"); this._next_button.addClass("fr-side-button-disabled") } this.ui_wrapper.append(this._previous = $("
").addClass("fr-side fr-side-previous").append(this._previous_button = $("
").addClass("fr-side-button").append($("
").addClass("fr-side-button-icon"))).data("side", "previous")); if (this._position == 1 && !this.view.options.loop) { this._previous.addClass("fr-side-disabled"); this._previous_button.addClass("fr-side-button-disabled") } } if (this.download_image && this.view.options.ui == "inside") { this.ui_wrapper.find(".fr-side").prepend(this.download_image.clone()) } this.frame.addClass("fr-no-caption"); if (this.view.caption || (this.view.options.ui == "inside" && !this.view.caption)) { this[this.view.options.ui == "inside" ? "ui_wrapper" : "frame"].append(this.info = $("
").addClass("fr-info fr-info-" + this.view.options.ui).append(this.info_background = $("
").addClass("fr-info-background")).append(this.info_padder = $("
").addClass("fr-info-padder"))) } if (this.view.caption) { this.frame.removeClass("fr-no-caption").addClass("fr-has-caption"); this.info_padder.append(this.caption = $("
").addClass("fr-caption").html(this.view.caption)) } if (positions > 1 && this.view.options.position) { var d = this._position + " / " + positions; this.frame.addClass("fr-has-position"); var b = this.view.options.ui; this[b == "inside" ? "info_padder" : "ui_wrapper"][b == "inside" ? "prepend" : "append"](this._pos = $("
").addClass("fr-position").append($("
").addClass("fr-position-background")).append($("").addClass("fr-position-text").html(d))) } this.ui_wrapper.append(this.close = $("
").addClass("fr-close").bind("click", function() { H.hide() }).append($("").addClass("fr-close-background")).append($("").addClass("fr-close-icon"))); if (this.view.type == "image" && this.view.options.onClick == "close") { this[this.view.options.ui == "outside" ? "box_wrapper" : "ui_padder"].bind("click", function(a) { if ($(a.target).closest(".fr-info")[0]) { return } a.preventDefault(); a.stopPropagation(); H.hide() }) } this.frame.hide() }, _getInfoHeight: function(a) { if (!this.view.caption) { return 0 } if (this.view.options.ui == "outside") { a = Math.min(a, J._boxDimensions.width) } var b, info_pw = this.info.css("width"); this.info.css({ width: a + "px" }); b = parseFloat(this.info.css("height")); this.info.css({ width: info_pw }); return b }, _whileVisible: function(b, c) { var d = []; var e = H.element.add(H.bubble).add(this.frame).add(this.ui); if (c) { e = e.add(c) } $.each(e, function(i, a) { d.push({ visible: $(a).is(":visible"), element: $(a).show() }) }); b(); $.each(d, function(i, a) { if (!a.visible) { a.element.hide() } }) }, getLayout: function() { this.updateVars(); var d = this._dimensions.max, ui = this.view.options.ui, fit = this._fit, i = this._spacing, border = this._border; var e = C.within(d, { fit: fit, ui: ui, border: border }); var f = $.extend({}, e), contentPosition = { top: 0, left: 0 }; if (border) { f = C.within(f, { bounds: e, ui: ui }); e.width += 2 * border; e.height += 2 * border } if (i.horizontal || i.vertical) { var g = $.extend({}, J._boxDimensions); if (border) { g.width -= 2 * border; g.height -= 2 * border } g = { width: Math.max(g.width - 2 * i.horizontal, 0), height: Math.max(g.height - 2 * i.vertical, 0) }; f = C.within(f, { fit: fit, bounds: g, ui: ui }) } var h = { caption: true }, cfitted = false; if (ui == "outside") { var i = { height: e.height - f.height, width: e.width - f.width }; var j = $.extend({}, f), noCaptionClass = this.caption && this.frame.hasClass("fr-no-caption"); var k; if (this.caption) { k = this.caption; this.info.removeClass("fr-no-caption"); var l = this.frame.hasClass("fr-no-caption"); this.frame.removeClass("fr-no-caption"); var m = this.frame.hasClass("fr-has-caption"); this.frame.addClass("fr-has-caption") } H.element.css({ visibility: "visible" }); this._whileVisible($.proxy(function() { var a = 0, attempts = 2; while ((a < attempts)) { h.height = this._getInfoHeight(f.width); var b = 0.5 * (J._boxDimensions.height - 2 * border - (i.vertical ? i.vertical * 2 : 0) - f.height); if (b < h.height) { f = C.within(f, { bounds: $.extend({}, { width: f.width, height: Math.max(f.height - h.height, 0) }), fit: fit, ui: ui }) } a++ } h.height = this._getInfoHeight(f.width); var c = B.viewport(); if (((c.height <= 320 && c.width <= 568) || (c.width <= 320 && c.height <= 568)) || (h.height >= 0.5 * f.height) || (h.height >= 0.6 * f.width)) { h.caption = false; h.height = 0; f = j } }, this), k); H.element.css({ visibility: "visible" }); if (l) { this.frame.addClass("fr-no-caption") } if (m) { this.frame.addClass("fr-has-caption") } var n = { height: e.height - f.height, width: e.width - f.width }; e.height += (i.height - n.height); e.width += (i.width - n.width); if (f.height != j.height) { cfitted = true } } else { h.height = 0 } var o = { width: f.width + 2 * border, height: f.height + 2 * border }; if (h.height) { e.height += h.height } if (ui == "inside") { h.height = 0 } var p = { spacer: { dimensions: e }, padder: { dimensions: o }, wrapper: { dimensions: f, bounds: o, margin: { top: 0.5 * (e.height - o.height) - (0.5 * h.height), left: 0.5 * (e.width - o.width) } }, content: { dimensions: f }, info: h }; if (ui == "outside") { p.info.top = p.wrapper.margin.top; h.width = Math.min(f.width, J._boxDimensions.width) } var g = $.extend({}, J._boxDimensions); if (ui == "outside") { p.box = { dimensions: { width: J._boxDimensions.width }, position: { left: 0.5 * (J._dimensions.width - J._boxDimensions.width) } } } p.ui = { spacer: { dimensions: { width: Math.min(e.width, g.width), height: Math.min(e.height, g.height) } }, padder: { dimensions: o }, wrapper: { dimensions: { width: Math.min(p.wrapper.dimensions.width, g.width - 2 * border), height: Math.min(p.wrapper.dimensions.height, g.height - 2 * border) }, margin: { top: p.wrapper.margin.top + border, left: p.wrapper.margin.left + border } } }; return p }, updateVars: function() { var a = $.extend({}, this._dimensions.max); var b = parseInt(this.box_outer_border.css("border-top-width")); this._border = b; if (b) { a.width -= 2 * b; a.height -= 2 * b } var c = this.view.options.fit; if (c == "smart") { if (a.width > a.height) { c = "height" } else { if (a.height > a.width) { c = "width" } else { c = "none" } } } else { if (!c) { c = "none" } } this._fit = c; var d = { none: "both", width: "y", height: "x", both: "none" }; var e = this.view.options.spacing[d[this._fit]]; this._spacing = e }, clearLoadTimer: function() { if (this._loadTimer) { clearTimeout(this._loadTimer); this._loadTimer = null } }, clearLoad: function() { if (this._loadTimer && this._loading && !this._loaded) { this.clearLoadTimer(); this._loading = false } }, load: function(p, q) { if (this._loaded || this._loading) { if (this._loaded) { this.afterLoad(p) } return } if (!q && !(F.cache.get(this.view.url) || F.preloaded.getDimensions(this.view.url))) { H.loading.start() } this._loading = true; this._loadTimer = setTimeout($.proxy(function() { this.clearLoadTimer(); switch (this.view.type) { case "image": var n = this.view.options.ui; F.get(this.view.url, { dragImage: n != "touch" }, $.proxy(function(g, h) { if (!this.view) { return } this._dimensions._max = g; this._dimensions.max = g; this._loaded = true; this._loading = false; this.updateVars(); var j = this.getLayout(); this._dimensions.spacer = j.spacer.dimensions; this._dimensions.content = j.content.dimensions; this.content = $("").attr({ src: this.view.url }).addClass("fr-content fr-content-image"); this.box_wrapper.append(this.content); if (n == "touch") { this.content.bind("dragstart", function(a) { a.preventDefault() }) } var k; this.box_wrapper.append(k = $("
").addClass("fr-content-image-overlay")); if (this.download_image) { k.append(this.download_image.clone()) } var l; if (this.view.options.ui == "outside" && ((l = this.view.options.onClick) && l == "next" || l == "previous-next")) { var m = this.view.options.loop; if ((this._position != J._frames.length) || m) { this.box_wrapper.append($("
").addClass("fr-onclick-side fr-onclick-next").data("side", "next")) } if (l == "previous-next" && (this._position != 1 || m)) { this.box_wrapper.append($("
").addClass("fr-onclick-side fr-onclick-previous").data("side", "previous")) } if (this.download_image) { this.box_wrapper.find(".fr-onclick-side").each($.proxy(function(i, a) { var b = $(a).data("side"); $(a).prepend(this.download_image.clone().data("side", b)) }, this)) } this.frame.delegate(".fr-onclick-side", "click", function(a) { var b = $(a.target).closest(".fr-onclick-side").data("side"); J[b]() }); this.frame.delegate(".fr-onclick-side", "mouseenter", $.proxy(function(a) { var b = $(a.target).closest(".fr-onclick-side").data("side"), button = b && this["_" + b + "_button"]; if (!button) { return } this["_" + b + "_button"].addClass("fr-side-button-active") }, this)).delegate(".fr-onclick-side", "mouseleave", $.proxy(function(a) { var b = $(a.target).data("side"), button = b && this["_" + b + "_button"]; if (!button) { return } this["_" + b + "_button"].removeClass("fr-side-button-active") }, this)) } this.frame.find(".fr-download-image").each($.proxy(function(i, d) { var e = $("").addClass("fr-download-image").attr({ src: this.view.url }).css({ opacity: 0 }), side = $(d).data("side"); if (u.IE && u.IE < 9) { var f = parseInt(H.element.css("z-index")) || 0; e.css({ "z-index": f }); $(d).parents().css({ "z-index": f }); if (/^(x|both)$/.test(this.view.options.overflow || "")) { e.hide() } } if (h.dragImage && !E.mobileTouch) { e.add(this.content).bind("dragstart", $.proxy(function(a) { if (this.view.options.ui == "touch") { a.preventDefault(); return } var b = a.originalEvent, dt = b.dataTransfer || {}; if (h.dragImage && dt.setDragImage) { var x = b.pageX || 0, y = b.pageY || 0; var c = this.content.offset(); x = Math.round(x - c.left); y = Math.round(y - c.top); if (h.dragScale < 1) { x *= h.dragScale; y *= h.dragScale } dt.setDragImage(h.dragImage, x, y) } else { if (dt.addElement) { dt.addElement(this.content[0]) } else { a.preventDefault() } } }, this)) } if (side) { e.data("side", side) } $(d).replaceWith(e) }, this)); this.afterLoad(p, q) }, this)); break; case "youtube": var o = { width: this.view.options.width, height: this.view.options.height }; if (this.view.options.youtube && this.view.options.youtube.hd) { this.view._data.quality = (o.width > 720) ? "hd1080" : "hd720" } this._movieLoaded(o, p); break; case "vimeo": var o = { width: this.view.options.width, height: this.view.options.height }; F.get(this.view.url, $.proxy(function(a, b) { if (!this.view) { return } var c = o.width, dh = o.height, bw = a.width, bh = a.height, oneDimension = false; if ((oneDimension = (c && !dh) || (dh && !c)) || c && dh) { if (oneDimension) { if (c && !dh) { o.height = c * bh / bw } else { o.width = dh * bw / bh } } o = C.within(a, { bounds: o }) } else { o = a } this._movieLoaded(o, p) }, this)); break } }, this), 10) }, _movieLoaded: function(a, b) { this._dimensions._max = a; this._dimensions.max = a; this._loaded = true; this._loading = false; this.updateVars(); var c = this.getLayout(); this._dimensions.spacer = c.spacer.dimensions; this._dimensions.content = c.content.dimensions; this.box_wrapper.append(this.content = $("
").addClass("fr-content fr-content-" + this.view.type)); if (this.view.options.ui == "touch" && (this.view.type == "youtube" || this.view.type == "vimeo")) { this.resize(); if ((this.view.type == "youtube" && !! window.YT) || (this.view.type == "vimeo" && E.postMessage)) { this.show() } } this.afterLoad(b) }, afterLoad: function(a) { var b = this.view.options.ui; this.resize(); if (b == "inside") { this.ui_outer_border.bind("mouseenter", $.proxy(this.showUI, this)).bind("mouseleave", $.proxy(this.hideUI, this)) } if (this.ui) { if (!E.mobileTouch) { this.ui.delegate(".fr-ui-padder", "mousemove", $.proxy(function() { if (!this.ui_wrapper.is(":visible")) { this.showUI() } this.startUITimer() }, this)) } else { this.box.bind("click", $.proxy(function() { if (!this.ui_wrapper.is(":visible")) { this.showUI() } this.startUITimer() }, this)) } } var c; if (J._frames && (c = J._frames[J._position - 1]) && (c.view.url == this.view.url || c.view.options.ui == "touch")) { H.loading.stop() } if (a) { a() } }, resize: function() { if (this.content) { var a = this.getLayout(); var b = this.view.options.ui; this._dimensions.spacer = a.spacer.dimensions; this._dimensions.content = a.content.dimensions; this.box_spacer.css(px(a.spacer.dimensions)); if (b == "inside") { this.ui_spacer.css(px(a.ui.spacer.dimensions)) } this.box_wrapper.add(this.box_outer_border).css(px(a.wrapper.dimensions)); var c = 0; if (this.view.options.ui == "outside" && a.info.caption) { c = a.info.height } this.box_outer_border.css({ "padding-bottom": c + "px" }); this.box_padder.css(px({ width: a.padder.dimensions.width, height: a.padder.dimensions.height + c })); if (a.spacer.dimensions.width > (this.view.options.ui == "outside" ? a.box.dimensions.width : B.viewport().width)) { this.box.addClass("fr-prevent-swipe") } else { this.box.removeClass("fr-prevent-swipe") } switch (b) { case "outside": if (this.caption) { this.info.css(px({ width: a.info.width })) } break; case "inside": this.ui_wrapper.add(this.ui_outer_border).add(this.ui_toggle).css(px(a.ui.wrapper.dimensions)); this.ui_padder.css(px(a.ui.padder.dimensions)); var d = 0; if (this.caption) { var e = this.frame.hasClass("fr-no-caption"), has_hascap = this.frame.hasClass("fr-has-caption"); this.frame.removeClass("fr-no-caption"); this.frame.addClass("fr-has-caption"); var d = 0; this._whileVisible($.proxy(function() { d = this.info.outerHeight() }, this), this.ui_wrapper.add(this.caption)); var f = B.viewport(); if (d >= 0.45 * a.wrapper.dimensions.height || ((f.height <= 320 && f.width <= 568) || (f.width <= 320 && f.height <= 568))) { a.info.caption = false } if (e) { this.frame.addClass("fr-no-caption") } if (!has_hascap) { this.frame.removeClass("fr-has-caption") } } break } if (this.caption) { var g = a.info.caption; this.caption[g ? "show" : "hide"](); this.frame[(!g ? "add" : "remove") + "Class"]("fr-no-caption"); this.frame[(!g ? "remove" : "add") + "Class"]("fr-has-caption") } this.box_padder.add(this.ui_padder).css(px(a.wrapper.margin)); var h = J._boxDimensions, spacer_dimensions = this._dimensions.spacer; this.overlap = { y: spacer_dimensions.height - h.height, x: spacer_dimensions.width - h.width }; this._track = this.view.options.overflow != "none" && (this.overlap.x > 0 || this.overlap.y > 0); J[(this._track ? "set" : "remove") + "Tracking"](this._position); if (u.IE && u.IE < 8 && this.view.type == "image") { this.content.css(px(a.wrapper.dimensions)) } if (/^(vimeo|youtube)$/.test(this.view.type)) { var i = a.wrapper.dimensions; if (this.player) { this.player.setSize(i.width, i.height) } else { if (this.player_iframe) { this.player_iframe.attr(i) } } } } this.position() }, position: function() { if (!this.content) { return } var a = J._xyp; var b = J._boxDimensions, spacer_dimensions = this._dimensions.spacer; var c = { top: 0, left: 0 }; var d = this.overlap; if (d.y > 0) { c.top = 0 - a.y * d.y } else { c.top = b.height * 0.5 - spacer_dimensions.height * 0.5 } if (d.x > 0) { c.left = 0 - a.x * d.x } else { c.left = b.width * 0.5 - spacer_dimensions.width * 0.5 } if (E.mobileTouch) { if (d.y > 0) { c.top = 0 } if (d.x > 0) { c.left = 0 } this.box_spacer.css({ position: "relative" }) } this._style = c; this.box_spacer.css({ top: c.top + "px", left: c.left + "px" }); var e = $.extend({}, c); if (e.top < 0) { e.top = 0 } if (e.left < 0) { e.left = 0 } var f = this.view.options.ui; switch (f) { case "outside": var g = this.getLayout(); this.box.css(px(g.box.dimensions)).css(px(g.box.position)); if (this.view.caption) { var h = c.top + g.wrapper.margin.top + g.wrapper.dimensions.height + this._border; if (h > J._boxDimensions.height - g.info.height) { h = J._boxDimensions.height - g.info.height } var i = J._sideWidth + c.left + g.wrapper.margin.left + this._border; if (i < J._sideWidth) { i = J._sideWidth } if (i + g.info.width > J._sideWidth + g.box.dimensions.width) { i = J._sideWidth } this.info.css({ top: h + "px", left: i + "px" }) } break; case "inside": this.ui_spacer.css({ left: e.left + "px", top: e.top + "px" }); break } }, setDimensions: function(a) { this.dimensions = a }, insertYoutubeVideo: function() { var a = u.IE && u.IE < 8, layout = this.getLayout(), lwd = layout.wrapper.dimensions; var b = $.extend({}, this.view.options.youtube || {}); var c = "http" + (window.location && window.location.protocol == "https:" ? "s" : "") + ":"; var d = $.param(b); this.content.append(this.player_iframe = $("