/*
 * flickrBomb v1
 * www.ZURB.com/playground
 * Copyright 2011, ZURB
 * Free to use under the MIT license.
 * http://www.opensource.org/licenses/mit-license.php
*/

var flickrbombAPIkey = '66b5c17019403c96779e8fe88d5b576d', flickrbombLicenseTypes = '';

// Underscore.js
// (c) 2010 Jeremy Ashkenas, DocumentCloud Inc.
// Underscore is freely distributable under the terms of the MIT license.
// Portions of Underscore are inspired by or borrowed from Prototype.js,
// Oliver Steele's Functional, and John Resig's Micro-Templating.
// For all details and documentation:
// http://documentcloud.github.com/underscore

(function(){var j=this;var k=j._;var m=typeof StopIteration!=='undefined'?StopIteration:'__break__';var o=function(s){return s.replace(/([.*+?^${}()|[\]\/\\])/g,'\\$1')};var p=Array.prototype,ObjProto=Object.prototype;var q=p.slice,unshift=p.unshift,toString=ObjProto.toString,hasOwnProperty=ObjProto.hasOwnProperty,propertyIsEnumerable=ObjProto.propertyIsEnumerable;var r=p.forEach,nativeMap=p.map,nativeReduce=p.reduce,nativeReduceRight=p.reduceRight,nativeFilter=p.filter,nativeEvery=p.every,nativeSome=p.some,nativeIndexOf=p.indexOf,nativeLastIndexOf=p.lastIndexOf,nativeIsArray=Array.isArray,nativeKeys=Object.keys;var _=function(a){return new v(a)};if(typeof exports!=='undefined')exports._=_;j._=_;_.VERSION='1.1.0';var t=_.forEach=function(a,b,c){try{if(r&&a.forEach===r){a.forEach(b,c)}else if(_.isNumber(a.length)){for(var i=0,l=a.length;i<l;i++)b.call(c,a[i],i,a)}else{for(var d in a){if(hasOwnProperty.call(a,d))b.call(c,a[d],d,a)}}}catch(e){if(e!=m)throw e;}return a};_.map=function(d,e,f){if(nativeMap&&d.map===nativeMap)return d.map(e,f);var g=[];t(d,function(a,b,c){g.push(e.call(f,a,b,c))});return g};_.reduce=function(d,e,f,g){if(nativeReduce&&d.reduce===nativeReduce){if(g)e=_.bind(e,g);return d.reduce(e,f)}t(d,function(a,b,c){f=e.call(g,f,a,b,c)});return f};_.reduceRight=function(a,b,c,d){if(nativeReduceRight&&a.reduceRight===nativeReduceRight){if(d)b=_.bind(b,d);return a.reduceRight(b,c)}var e=_.clone(_.toArray(a)).reverse();return _.reduce(e,b,c,d)};_.detect=function(d,e,f){var g;t(d,function(a,b,c){if(e.call(f,a,b,c)){g=a;_.breakLoop()}});return g};_.filter=function(d,e,f){if(nativeFilter&&d.filter===nativeFilter)return d.filter(e,f);var g=[];t(d,function(a,b,c){e.call(f,a,b,c)&&g.push(a)});return g};_.reject=function(d,e,f){var g=[];t(d,function(a,b,c){!e.call(f,a,b,c)&&g.push(a)});return g};_.every=function(d,e,f){e=e||_.identity;if(nativeEvery&&d.every===nativeEvery)return d.every(e,f);var g=true;t(d,function(a,b,c){if(!(g=g&&e.call(f,a,b,c)))_.breakLoop()});return g};_.some=function(d,e,f){e=e||_.identity;if(nativeSome&&d.some===nativeSome)return d.some(e,f);var g=false;t(d,function(a,b,c){if(g=e.call(f,a,b,c))_.breakLoop()});return g};_.include=function(b,c){if(nativeIndexOf&&b.indexOf===nativeIndexOf)return b.indexOf(c)!=-1;var d=false;t(b,function(a){if(d=a===c)_.breakLoop()});return d};_.invoke=function(b,c){var d=_.rest(arguments,2);return _.map(b,function(a){return(c?a[c]:a).apply(a,d)})};_.pluck=function(b,c){return _.map(b,function(a){return a[c]})};_.max=function(e,f,g){if(!f&&_.isArray(e))return Math.max.apply(Math,e);var h={computed:-Infinity};t(e,function(a,b,c){var d=f?f.call(g,a,b,c):a;d>=h.computed&&(h={value:a,computed:d})});return h.value};_.min=function(e,f,g){if(!f&&_.isArray(e))return Math.min.apply(Math,e);var h={computed:Infinity};t(e,function(a,b,c){var d=f?f.call(g,a,b,c):a;d<h.computed&&(h={value:a,computed:d})});return h.value};_.sortBy=function(e,f,g){return _.pluck(_.map(e,function(a,b,c){return{value:a,criteria:f.call(g,a,b,c)}}).sort(function(c,d){var a=c.criteria,b=d.criteria;return a<b?-1:a>b?1:0}),'value')};_.sortedIndex=function(a,b,c){c=c||_.identity;var d=0,high=a.length;while(d<high){var e=(d+high)>>1;c(a[e])<c(b)?d=e+1:high=e}return d};_.toArray=function(a){if(!a)return[];if(a.toArray)return a.toArray();if(_.isArray(a))return a;if(_.isArguments(a))return q.call(a);return _.values(a)};_.size=function(a){return _.toArray(a).length};_.first=function(a,n,b){return n&&!b?q.call(a,0,n):a[0]};_.rest=function(a,b,c){return q.call(a,_.isUndefined(b)||c?1:b)};_.last=function(a){return a[a.length-1]};_.compact=function(b){return _.filter(b,function(a){return!!a})};_.flatten=function(c){return _.reduce(c,function(a,b){if(_.isArray(b))return a.concat(_.flatten(b));a.push(b);return a},[])};_.without=function(b){var c=_.rest(arguments);return _.filter(b,function(a){return!_.include(c,a)})};_.uniq=function(c,d){return _.reduce(c,function(a,b,i){if(0==i||(d===true?_.last(a)!=b:!_.include(a,b)))a.push(b);return a},[])};_.intersect=function(c){var d=_.rest(arguments);return _.filter(_.uniq(c),function(b){return _.every(d,function(a){return _.indexOf(a,b)>=0})})};_.zip=function(){var a=_.toArray(arguments);var b=_.max(_.pluck(a,'length'));var c=new Array(b);for(var i=0;i<b;i++)c[i]=_.pluck(a,String(i));return c};_.indexOf=function(a,b){if(nativeIndexOf&&a.indexOf===nativeIndexOf)return a.indexOf(b);for(var i=0,l=a.length;i<l;i++)if(a[i]===b)return i;return-1};_.lastIndexOf=function(a,b){if(nativeLastIndexOf&&a.lastIndexOf===nativeLastIndexOf)return a.lastIndexOf(b);var i=a.length;while(i--)if(a[i]===b)return i;return-1};_.range=function(b,c,d){var a=_.toArray(arguments);var e=a.length<=1;var b=e?0:a[0],c=e?a[0]:a[1],d=a[2]||1;var f=Math.ceil((c-b)/d);if(f<=0)return[];var g=new Array(f);for(var i=b,idx=0;true;i+=d){if((d>0?i-c:c-i)>=0)return g;g[idx++]=i}};_.bind=function(a,b){var c=_.rest(arguments,2);return function(){return a.apply(b||{},c.concat(_.toArray(arguments)))}};_.bindAll=function(a){var b=_.rest(arguments);if(b.length==0)b=_.functions(a);t(b,function(f){a[f]=_.bind(a[f],a)});return a};_.memoize=function(b,c){var d={};c=c||_.identity;return function(){var a=c.apply(this,arguments);return a in d?d[a]:(d[a]=b.apply(this,arguments))}};_.delay=function(a,b){var c=_.rest(arguments,2);return setTimeout(function(){return a.apply(a,c)},b)};_.defer=function(a){return _.delay.apply(_,[a,1].concat(_.rest(arguments)))};_.wrap=function(b,c){return function(){var a=[b].concat(_.toArray(arguments));return c.apply(c,a)}};_.compose=function(){var b=_.toArray(arguments);return function(){var a=_.toArray(arguments);for(var i=b.length-1;i>=0;i--){a=[b[i].apply(this,a)]}return a[0]}};_.keys=nativeKeys||function(a){if(_.isArray(a))return _.range(0,a.length);var b=[];for(var c in a)if(hasOwnProperty.call(a,c))b.push(c);return b};_.values=function(a){return _.map(a,_.identity)};_.functions=function(b){return _.filter(_.keys(b),function(a){return _.isFunction(b[a])}).sort()};_.extend=function(c){t(_.rest(arguments),function(a){for(var b in a)c[b]=a[b]});return c};_.clone=function(a){if(_.isArray(a))return a.slice(0);return _.extend({},a)};_.tap=function(a,b){b(a);return a};_.isEqual=function(a,b){if(a===b)return true;var c=typeof(a),btype=typeof(b);if(c!=btype)return false;if(a==b)return true;if((!a&&b)||(a&&!b))return false;if(a.isEqual)return a.isEqual(b);if(_.isDate(a)&&_.isDate(b))return a.getTime()===b.getTime();if(_.isNaN(a)&&_.isNaN(b))return false;if(_.isRegExp(a)&&_.isRegExp(b))return a.source===b.source&&a.global===b.global&&a.ignoreCase===b.ignoreCase&&a.multiline===b.multiline;if(c!=='object')return false;if(a.length&&(a.length!==b.length))return false;var d=_.keys(a),bKeys=_.keys(b);if(d.length!=bKeys.length)return false;for(var e in a)if(!(e in b)||!_.isEqual(a[e],b[e]))return false;return true};_.isEmpty=function(a){if(_.isArray(a)||_.isString(a))return a.length===0;for(var b in a)if(hasOwnProperty.call(a,b))return false;return true};_.isElement=function(a){return!!(a&&a.nodeType==1)};_.isArray=nativeIsArray||function(a){return!!(a&&a.concat&&a.unshift&&!a.callee)};_.isArguments=function(a){return a&&a.callee};_.isFunction=function(a){return!!(a&&a.constructor&&a.call&&a.apply)};_.isString=function(a){return!!(a===''||(a&&a.charCodeAt&&a.substr))};_.isNumber=function(a){return(a===+a)||(toString.call(a)==='[object Number]')};_.isBoolean=function(a){return a===true||a===false};_.isDate=function(a){return!!(a&&a.getTimezoneOffset&&a.setUTCFullYear)};_.isRegExp=function(a){return!!(a&&a.test&&a.exec&&(a.ignoreCase||a.ignoreCase===false))};_.isNaN=function(a){return _.isNumber(a)&&isNaN(a)};_.isNull=function(a){return a===null};_.isUndefined=function(a){return typeof a=='undefined'};_.noConflict=function(){j._=k;return this};_.identity=function(a){return a};_.times=function(n,a,b){for(var i=0;i<n;i++)a.call(b,i)};_.breakLoop=function(){throw m;};_.mixin=function(b){t(_.functions(b),function(a){x(a,_[a]=b[a])})};var u=0;_.uniqueId=function(a){var b=u++;return a?a+b:b};_.templateSettings={start:'<%',end:'%>',interpolate:/<%=(.+?)%>/g};_.template=function(a,b){var c=_.templateSettings;var d=new RegExp("'(?=[^"+c.end.substr(0,1)+"]*"+o(c.end)+")","g");var e=new Function('obj','var p=[],print=function(){p.push.apply(p,arguments);};'+'with(obj||{}){p.push(\''+a.replace(/\r/g,'\\r').replace(/\n/g,'\\n').replace(/\t/g,'\\t').replace(d,"âœ„").split("'").join("\\'").split("âœ„").join("'").replace(c.interpolate,"',$1,'").split(c.start).join("');").split(c.end).join("p.push('")+"');}return p.join('');");return b?e(b):e};_.each=_.forEach;_.foldl=_.inject=_.reduce;_.foldr=_.reduceRight;_.select=_.filter;_.all=_.every;_.any=_.some;_.contains=_.include;_.head=_.first;_.tail=_.rest;_.methods=_.functions;var v=function(a){this._wrapped=a};var w=function(a,b){return b?_(a).chain():a};var x=function(b,c){v.prototype[b]=function(){var a=_.toArray(arguments);unshift.call(a,this._wrapped);return w(c.apply(_,a),this._chain)}};_.mixin(_);t(['pop','push','reverse','shift','sort','splice','unshift'],function(a){var b=p[a];v.prototype[a]=function(){b.apply(this._wrapped,arguments);return w(this._wrapped,this._chain)}});t(['concat','join','slice'],function(a){var b=p[a];v.prototype[a]=function(){return w(b.apply(this._wrapped,arguments),this._chain)}});v.prototype.chain=function(){this._chain=true;return this};v.prototype.value=function(){return this._wrapped}})();
//     Backbone.js 0.3.0
//     (c) 2010 Jeremy Ashkenas, DocumentCloud Inc.
//     Backbone may be freely distributed under the MIT license.
//     For all details and documentation:
//     http://documentcloud.github.com/backbone
(function(){var j;if(typeof exports!=='undefined'){j=exports}else{j=this.Backbone={}}j.VERSION='0.3.0';var _=this._;if(!_&&(typeof require!=='undefined'))_=require("underscore")._;var $=this.jQuery;j.emulateHTTP=false;j.emulateJSON=false;j.Events={bind:function(a,b){var c=this._callbacks||(this._callbacks={});var d=this._callbacks[a]||(this._callbacks[a]=[]);d.push(b);return this},unbind:function(a,b){var c;if(!a){this._callbacks={}}else if(c=this._callbacks){if(!b){c[a]=[]}else{var d=c[a];if(!d)return this;for(var i=0,l=d.length;i<l;i++){if(b===d[i]){d.splice(i,1);break}}}}return this},trigger:function(a){var b,calls,i,l;if(!(calls=this._callbacks))return this;if(b=calls[a]){for(i=0,l=b.length;i<l;i++){b[i].apply(this,Array.prototype.slice.call(arguments,1))}}if(b=calls['all']){for(i=0,l=b.length;i<l;i++){b[i].apply(this,arguments)}}return this}};j.Model=function(a,b){this.attributes={};this.cid=_.uniqueId('c');this.set(a||{},{silent:true});this._previousAttributes=_.clone(this.attributes);if(b&&b.collection)this.collection=b.collection;if(this.initialize)this.initialize(a,b)};_.extend(j.Model.prototype,j.Events,{_previousAttributes:null,_changed:false,toJSON:function(){return _.clone(this.attributes)},get:function(a){return this.attributes[a]},set:function(a,b){b||(b={});if(!a)return this;if(a.attributes)a=a.attributes;var c=this.attributes;if(!b.silent&&this.validate&&!this._performValidation(a,b))return false;if('id'in a)this.id=a.id;for(var d in a){var e=a[d];if(!_.isEqual(c[d],e)){c[d]=e;if(!b.silent){this._changed=true;this.trigger('change:'+d,this,e)}}}if(!b.silent&&this._changed)this.change();return this},unset:function(a,b){b||(b={});var c=this.attributes[a];var d={};d[a]=void 0;if(!b.silent&&this.validate&&!this._performValidation(d,b))return false;delete this.attributes[a];if(!b.silent){this._changed=true;this.trigger('change:'+a,this);this.change()}return this},clear:function(a){a||(a={});var b=this.attributes;var c={};for(attr in b)c[attr]=void 0;if(!a.silent&&this.validate&&!this._performValidation(c,a))return false;this.attributes={};if(!a.silent){this._changed=true;for(attr in b){this.trigger('change:'+attr,this)}this.change()}return this},fetch:function(b){b||(b={});var c=this;var d=function(a){if(!c.set(c.parse(a),b))return false;if(b.success)b.success(c,a)};var e=b.error&&_.bind(b.error,null,c);j.sync('read',this,d,e);return this},save:function(b,c){b||(b={});c||(c={});if(!this.set(b,c))return false;var d=this;var e=function(a){if(!d.set(d.parse(a),c))return false;if(c.success)c.success(d,a)};var f=c.error&&_.bind(c.error,null,d);var g=this.isNew()?'create':'update';j.sync(g,this,e,f);return this},destroy:function(b){b||(b={});var c=this;var d=function(a){if(c.collection)c.collection.remove(c);if(b.success)b.success(c,a)};var e=b.error&&_.bind(b.error,null,c);j.sync('delete',this,d,e);return this},url:function(){var a=v(this.collection);if(this.isNew())return a;return a+'/'+this.id},parse:function(a){return a},clone:function(){return new this.constructor(this)},isNew:function(){return!this.id},change:function(){this.trigger('change',this);this._previousAttributes=_.clone(this.attributes);this._changed=false},hasChanged:function(a){if(a)return this._previousAttributes[a]!=this.attributes[a];return this._changed},changedAttributes:function(a){a||(a=this.attributes);var b=this._previousAttributes;var c=false;for(var d in a){if(!_.isEqual(b[d],a[d])){c=c||{};c[d]=a[d]}}return c},previous:function(a){if(!a||!this._previousAttributes)return null;return this._previousAttributes[a]},previousAttributes:function(){return _.clone(this._previousAttributes)},_performValidation:function(a,b){var c=this.validate(a);if(c){if(b.error){b.error(this,c)}else{this.trigger('error',this,c)}return false}return true}});j.Collection=function(a,b){b||(b={});if(b.comparator){this.comparator=b.comparator;delete b.comparator}this._boundOnModelEvent=_.bind(this._onModelEvent,this);this._reset();if(a)this.refresh(a,{silent:true});if(this.initialize)this.initialize(a,b)};_.extend(j.Collection.prototype,j.Events,{model:j.Model,toJSON:function(){return this.map(function(a){return a.toJSON()})},add:function(a,b){if(_.isArray(a)){for(var i=0,l=a.length;i<l;i++){this._add(a[i],b)}}else{this._add(a,b)}return this},remove:function(a,b){if(_.isArray(a)){for(var i=0,l=a.length;i<l;i++){this._remove(a[i],b)}}else{this._remove(a,b)}return this},get:function(a){return a&&this._byId[a.id!=null?a.id:a]},getByCid:function(a){return a&&this._byCid[a.cid||a]},at:function(a){return this.models[a]},sort:function(a){a||(a={});if(!this.comparator)throw new Error('Cannot sort a set without a comparator');this.models=this.sortBy(this.comparator);if(!a.silent)this.trigger('refresh',this);return this},pluck:function(b){return _.map(this.models,function(a){return a.get(b)})},refresh:function(a,b){a||(a=[]);b||(b={});this._reset();this.add(a,{silent:true});if(!b.silent)this.trigger('refresh',this);return this},fetch:function(b){b||(b={});var c=this;var d=function(a){c.refresh(c.parse(a));if(b.success)b.success(c,a)};var e=b.error&&_.bind(b.error,null,c);j.sync('read',this,d,e);return this},create:function(c,d){var e=this;d||(d={});if(!(c instanceof j.Model)){c=new this.model(c,{collection:e})}else{c.collection=e}var f=function(a,b){e.add(a);if(d.success)d.success(a,b)};return c.save(null,{success:f,error:d.error})},parse:function(a){return a},chain:function(){return _(this.models).chain()},_reset:function(a){this.length=0;this.models=[];this._byId={};this._byCid={}},_add:function(a,b){b||(b={});if(!(a instanceof j.Model)){a=new this.model(a,{collection:this})}var c=this.getByCid(a);if(c)throw new Error(["Can't add the same model to a set twice",c.id]);this._byId[a.id]=a;this._byCid[a.cid]=a;a.collection=this;var d=this.comparator?this.sortedIndex(a,this.comparator):this.length;this.models.splice(d,0,a);a.bind('all',this._boundOnModelEvent);this.length++;if(!b.silent)this.trigger('add',a);return a},_remove:function(a,b){b||(b={});a=this.getByCid(a);if(!a)return null;delete this._byId[a.id];delete this._byCid[a.cid];delete a.collection;this.models.splice(this.indexOf(a),1);a.unbind('all',this._boundOnModelEvent);this.length--;if(!b.silent)this.trigger('remove',a);return a},_onModelEvent:function(a,b){if(a==='change:id'){delete this._byId[b.previous('id')];this._byId[b.id]=b}this.trigger.apply(this,arguments)}});var k=['forEach','each','map','reduce','reduceRight','find','detect','filter','select','reject','every','all','some','any','include','invoke','max','min','sortBy','sortedIndex','toArray','size','first','rest','last','without','indexOf','lastIndexOf','isEmpty'];_.each(k,function(a){j.Collection.prototype[a]=function(){return _[a].apply(_,[this.models].concat(_.toArray(arguments)))}});j.Controller=function(a){a||(a={});if(a.routes)this.routes=a.routes;this._bindRoutes();if(this.initialize)this.initialize(a)};var m=/:([\w\d]+)/g;var n=/\*([\w\d]+)/g;_.extend(j.Controller.prototype,j.Events,{route:function(c,d,e){j.history||(j.history=new j.History);if(!_.isRegExp(c))c=this._routeToRegExp(c);j.history.route(c,_.bind(function(a){var b=this._extractParameters(c,a);e.apply(this,b);this.trigger.apply(this,['route:'+d].concat(b))},this))},saveLocation:function(a){j.history.saveLocation(a)},_bindRoutes:function(){if(!this.routes)return;for(var a in this.routes){var b=this.routes[a];this.route(a,b,this[b])}},_routeToRegExp:function(a){a=a.replace(m,"([^\/]*)").replace(n,"(.*?)");return new RegExp('^'+a+'$')},_extractParameters:function(a,b){return a.exec(b).slice(1)}});j.History=function(){this.handlers=[];this.fragment=this.getFragment();_.bindAll(this,'checkUrl')};var o=/^#*/;_.extend(j.History.prototype,{interval:50,getFragment:function(a){return(a||window.location).hash.replace(o,'')},start:function(){var a=document.documentMode;var b=($.browser.msie&&a<7);if(b){this.iframe=$('<iframe src="javascript:0" tabindex="-1" />').hide().appendTo('body')[0].contentWindow}if('onhashchange'in window&&!b){$(window).bind('hashchange',this.checkUrl)}else{setInterval(this.checkUrl,this.interval)}return this.loadUrl()},route:function(a,b){this.handlers.push({route:a,callback:b})},checkUrl:function(){var a=this.getFragment();if(a==this.fragment&&this.iframe){a=this.getFragment(this.iframe.location)}if(!a||a==this.fragment||a==decodeURIComponent(this.fragment))return false;if(this.iframe){window.location.hash=this.iframe.location.hash=a}this.loadUrl()},loadUrl:function(){var b=this.fragment=this.getFragment();var c=_.any(this.handlers,function(a){if(a.route.test(b)){a.callback(b);return true}});return c},saveLocation:function(a){a=(a||'').replace(o,'');if(this.fragment==a)return;window.location.hash=this.fragment=a;if(this.iframe&&(a!=this.getFragment(this.iframe.location))){this.iframe.document.open().close();this.iframe.location.hash=a}}});j.View=function(a){this._configure(a||{});this._ensureElement();this.delegateEvents();if(this.initialize)this.initialize(a)};var p=function(a){return $(a,this.el)};var q=/^(\w+)\s*(.*)$/;_.extend(j.View.prototype,j.Events,{tagName:'div',$:p,jQuery:p,render:function(){return this},make:function(a,b,c){var d=document.createElement(a);if(b)$(d).attr(b);if(c)$(d).html(c);return d},delegateEvents:function(a){if(!(a||(a=this.events)))return;$(this.el).unbind();for(var b in a){var c=a[b];var d=b.match(q);var e=d[1],selector=d[2];var f=_.bind(this[c],this);if(selector===''){$(this.el).bind(e,f)}else{$(this.el).delegate(selector,e,f)}}},_configure:function(a){if(this.options)a=_.extend({},this.options,a);if(a.model)this.model=a.model;if(a.collection)this.collection=a.collection;if(a.el)this.el=a.el;if(a.id)this.id=a.id;if(a.className)this.className=a.className;if(a.tagName)this.tagName=a.tagName;this.options=a},_ensureElement:function(){if(this.el)return;var a={};if(this.id)a.id=this.id;if(this.className)a.className=this.className;this.el=this.make(this.tagName,a)}});var r=function(a,b){var c=u(this,a,b);c.extend=r;return c};j.Model.extend=j.Collection.extend=j.Controller.extend=j.View.extend=r;var s={'create':'POST','update':'PUT','delete':'DELETE','read':'GET'};j.sync=function(b,c,d,e){var f=b==='create'||b==='update';var g=s[b];var h=JSON.stringify(c.toJSON());var i={url:v(c),type:g,contentType:'application/json',data:f?h:null,dataType:'json',processData:false,success:d,error:e};if(j.emulateJSON){i.contentType='application/x-www-form-urlencoded';i.processData=true;i.data=f?{model:h}:{}}if(j.emulateHTTP){if(g==='PUT'||g==='DELETE'){if(j.emulateJSON)i.data._method=g;i.type='POST';i.beforeSend=function(a){a.setRequestHeader("X-HTTP-Method-Override",g)}}}$.ajax(i)};var t=function(){};var u=function(a,b,c){var d;if(b&&b.hasOwnProperty('constructor')){d=b.constructor}else{d=function(){return a.apply(this,arguments)}}t.prototype=a.prototype;d.prototype=new t();if(b)_.extend(d.prototype,b);if(c)_.extend(d,c);d.prototype.constructor=d;d.__super__=a.prototype;return d};var v=function(a){if(!(a&&a.url))throw new Error("A 'url' property or function must be specified");return _.isFunction(a.url)?a.url():a.url}})();
//Backbone.js Local Storage
function supports_local_storage(){try{return'localStorage'in window&&window['localStorage']!==null}catch(e){return false}}if(supports_local_storage()){function S4(){return(((1+Math.random())*0x10000)|0).toString(16).substring(1)};function guid(){return(S4()+S4()+"-"+S4()+"-"+S4()+"-"+S4()+"-"+S4()+S4()+S4())};var Store=function(a){this.name=a;var b=localStorage.getItem(this.name);this.data=(b&&JSON.parse(b))||{}};_.extend(Store.prototype,{save:function(){localStorage.setItem(this.name,JSON.stringify(this.data))},create:function(a){if(!a.id)a.id=a.attributes.id=guid();this.data[a.id]=a;this.save();return a},update:function(a){this.data[a.id]=a;this.save();return a},find:function(a){return this.data[a.id]},findAll:function(){return _.values(this.data)},destroy:function(a){delete this.data[a.id];this.save();return a}});Backbone.sync=function(a,b,c,d){var e;var f=b.localStorage||b.collection.localStorage;switch(a){case"read":e=b.id?f.find(b):f.findAll();break;case"create":e=f.create(b);break;case"update":e=f.update(b);break;case"delete":e=f.destroy(b);break}if(e){c(e)}else{}}}else{Backbone.sync=$.noop}
//FlickrBomb by ZURB 2011; http://www.zurb.com/playground
var startFlickrBomb=function(){(function($){var localStorage=(supports_local_storage())?new Store("flickrBombImages"):null,FlickrImage=Backbone.Model.extend({fullsize_url:function(){return this.image_url('medium')},thumb_url:function(){return this.image_url('square')},image_url:function(size){var size_code;switch(size){case'square':size_code='_s';break;case'medium':size_code='_z';break;case'large':size_code='_b';break;default:size_code=''}return"http://farm"+this.get('farm')+".static.flickr.com/"+this.get('server')+"/"+this.get('id')+"_"+this.get('secret')+size_code+".jpg"}}),Image=Backbone.Model.extend({localStorage:localStorage,initialize:function(){_.bindAll(this,'loadFirstImage');this.flickrImages=new FlickrImages();this.flickrImages.fetch(this.get('keywords'),this.loadFirstImage);this.set({id:this.get("id")||this.get('keywords')});this.bind('change:src',this.changeSrc)},changeSrc:function(){this.save()},loadFirstImage:function(){if(this.get('src')===undefined){this.set({src:this.flickrImages.first().image_url()})}}}),FlickrImages=Backbone.Collection.extend({model:FlickrImage,key:flickrbombAPIkey,page:1,fetch:function(keywords,success){var self=this;success=success||$.noop;this.keywords=keywords||this.keywords;$.ajax({url:'http://api.flickr.com/services/rest/',data:{api_key:self.key,format:'json',method:'flickr.photos.search',tags:this.keywords,per_page:9,page:this.page,license:flickrbombLicenseTypes},dataType:'jsonp',jsonp:'jsoncallback',success:function(response){self.add(response.photos.photo);success()}})},nextPage:function(callback){this.page+=1;this.remove(this.models);this.fetch(null,callback)},prevPage:function(callback){if(this.page>1){this.page-=1}this.remove(this.models);this.fetch(null,callback)}}),FlickrImageView=Backbone.View.extend({tagName:'a',template:_.template('<img src="<%= thumb_url() %>" />'),className:'photo',events:{"click":"setImageSrc"},render:function(){$(this.el).html(this.template(this.model));$(this.el).addClass('photo');return this},setImageSrc:function(event){this.options.image.set({'src':this.model.fullsize_url()})}}),ImageView=Backbone.View.extend({tagName:"div",className:"flickrbombContainer",lock:false,template:_.template('<div id="<%= this.image.id.replace(" ","") %>" class="flickrbombWrapper"><img class="flickrbomb" src="" /><a href="#" title="Setup" class="setupIcon"></a></div><div class="flickrbombFlyout"><div class="content"><a href="#" title="Previous Page" class="prev">&#9664;</a><a href="#" title="Next Page" class="next">&#9654;</a></div></div>'),initialize:function(options){_.bindAll(this,'addImage','updateSrc','setDimentions','updateDimentions');var keywords=options.img.attr('src').replace('flickr://','');this.$el=$(this.el);this.ratio=this.options.img.attr('data-ratio');this.image=new Image({keywords:keywords,id:options.img.attr('id')});this.image.flickrImages.bind('add',this.addImage);this.image.bind('change:src',this.updateSrc)},events:{"click .setupIcon":"clickSetup","click .flickrbombFlyout a.photo":"selectImage","click .flickrbombFlyout a.next":"nextFlickrPhotos","click .flickrbombFlyout a.prev":"prevFlickrPhotos"},render:function(){$(this.el).html(this.template());this.image.fetch();if(!this.ratio){this.resize()}else{this.$('.flickrbombWrapper').append('<img style="width: 100%;" class="placeholder" src="http://placehold.it/'+this.ratio+'" />')}return this},updateSrc:function(model,src){var self=this;this.$('img.flickrbomb').css({top:'auto',left:'auto',width:'auto',height:'auto'}).attr('src','').bind('load',self.setDimentions).attr('src',src)},setDimentions:function(event){this.image.set({width:this.$('img').width(),height:this.$('img').height()});this.updateDimentions(this.image);$(event.target).unbind('load')},updateDimentions:function(){var image=this.$('img.flickrbomb'),flickrWidth=this.image.get('width'),flickrHeight=this.image.get('height'),flickrAspectRatio=flickrWidth/flickrHeight,clientWidth=this.$('div.flickrbombWrapper').width(),clientHeight=this.$('div.flickrbombWrapper').height(),clientAspectRatio=clientWidth/clientHeight;if(flickrAspectRatio<clientAspectRatio){image.css({width:'100%',height:null});image.css({top:((clientHeight-image.height())/2)+'px',left:null})}else{image.css({height:'100%',width:null});image.css({left:((clientWidth-image.width())/2)+'px',top:null})}},addImage:function(image){this.flickrImageView=new FlickrImageView({model:image,image:this.image});this.$('.flickrbombFlyout').append(this.flickrImageView.render().el)},clickSetup:function(event){event.preventDefault();this.toggleFlyout()},toggleFlyout:function(event){this.$('.flickrbombFlyout').toggle()},selectImage:function(event){event.preventDefault();this.toggleFlyout()},nextFlickrPhotos:function(event){event.preventDefault();var self=this;if(!this.lock){this.lock=true;this.$('.flickrbombFlyout').find('a.photo').remove();this.image.flickrImages.nextPage(function(){self.lock=false})}},prevFlickrPhotos:function(event){event.preventDefault();var self=this;if(!this.lock){this.lock=true;this.$('.flickrbombFlyout').find('a.photo').remove();this.image.flickrImages.prevPage(function(){self.lock=false})}},resize:function(){this.$('div.flickrbombWrapper').css({width:this.width()+'px',height:this.height()+'px'})},width:function(){return parseInt(this.options.img.width())},height:function(){return parseInt(this.options.img.height())}});$("img[src^='flickr://']").each(function(){var img=$(this);var imageView=new ImageView({img:img});img.replaceWith(imageView.render().el)});$('body').click(function(event){if(!$(event.target).closest('.setupIcon').length&&!$(event.target).closest('.flickrbombFlyout').length){$('.flickrbombFlyout').hide()}})})(jQuery)};startFlickrBomb();
