// This library is maintained at
// http://github.com/othermedia/flickr
Flickr={Client:new JS.Class({initialize:function(a){this._key=a||Flickr.API_KEY},call:function(a,c,b,d){a=/^flickr\./.test(a)?a:'flickr.'+a;c=JS.extend({method:a,api_key:this._key},c||{});Flickr.JSONP.request(Flickr.REST_ENDPOINT,c,b,d)},feed:function(a,c,b,d){a=/\.gne$/.test(a)?a:a+'.gne';Flickr.JSONP.request(Flickr.FEED_ENDPOINT+a,c,b,d)},groupBrowse:function(a,c,b){this.call('groups.browse',{cat_id:a},c,b)},groupInfo:function(a,c,b){this.call('groups.getInfo',{group_id:a},c,b)},groupDiscuss:function(a,c,b){this.feed('groups_discuss',{id:a},c,b)},groupPool:function(a,c,b){this.feed('groups_pool',{id:a},c,b)},photoFavourites:function(a,c,b){this.feed('photos_faves',{id:a},c,b)},getGroupPhotos:function(c,b,d){var f=this._wrapPhotos;this.groupPool(c,function(a){b.call(d,f(a))})},getFavourites:function(c,b,d){var f=this._wrapPhotos;this.photoFavourites(c,function(a){b.call(d,f(a))})},_wrapPhotos:function(a){var c=[];for(var b=0,d=a.items.length;b<d;b++)c.push(new Flickr.Photo(a.items[b]));return c}}),API_KEY:null,REST_ENDPOINT:'http://api.flickr.com/services/rest/',FEED_ENDPOINT:'http://api.flickr.com/services/feeds/'};Flickr.Photo=new JS.Class({initialize:function(a){this._data=a},getTags:function(){var a=this._data.tags;return(a==='')?[]:a.split(/\s+/)},getThumbnail:function(){return this._data.media.m},extend:{METHOD_MAPPINGS:{Author:'author',AuthorId:'author_id',DateTaken:'date_taken',Description:'description',Link:'link',Published:'published',Title:'title'}}});(function(){var b=Flickr.Photo.METHOD_MAPPINGS;for(var d in b)(function(a,c){Flickr.Photo.define('get'+a,function(){return this._data[c]})})(d,b[d])})();Flickr.JSONP={_counter:0,CALLBACK_BASE:'__jsonpcb__',getCallbackName:function(){return this.CALLBACK_BASE+(this._counter++)},encode:function(a){return encodeURIComponent(decodeURIComponent(a))},buildURL:function(a,c){if(c===undefined)return a;for(var b in c){if(!c.hasOwnProperty(b))continue;a+=/\?/.test(a)?'&':'?';a+=this.encode(b)+'='+this.encode(c[b])}return a},request:function(c,b,d,f){var g=this.getCallbackName();b=JS.extend({format:'json',jsoncallback:g},b||{});var i=document.getElementsByTagName('head')[0],h=document.createElement('script'),j=this.buildURL(c,b);window[g]=function(a){window[g]=undefined;try{delete window[g]}catch(e){}i.removeChild(h);if(d)d.call(f,a)};h.type='text/javascript';h.src=j;i.appendChild(h)}};
