Flickr={Client:new JS.Class({initialize:function(A){this._key=A||Flickr.API_KEY},call:function(B,D,A,C){B=/^flickr\./.test(B)?B:"flickr."+B;D=JS.extend({method:B,api_key:this._key},D||{});Flickr.JSONP.request(Flickr.REST_ENDPOINT,D,A,C)},feed:function(B,D,A,C){B=/\.gne$/.test(B)?B:B+".gne";Flickr.JSONP.request(Flickr.FEED_ENDPOINT+B,D,A,C)},groupBrowse:function(B,C,A){this.call("groups.browse",{cat_id:B},C,A)},groupInfo:function(B,C,A){this.call("groups.getInfo",{group_id:B},C,A)},groupDiscuss:function(B,C,A){this.feed("groups_discuss",{id:B},C,A)},groupPool:function(B,C,A){this.feed("groups_pool",{id:B},C,A)},photoFavourites:function(B,C,A){this.feed("photos_faves",{id:B},C,A)},getGroupPhotos:function(D,A,C){var B=this._wrapPhotos;this.groupPool(D,function(E){A.call(C,B(E))})},getFavourites:function(D,A,C){var B=this._wrapPhotos;this.photoFavourites(D,function(E){A.call(C,B(E))})},_wrapPhotos:function(B){var D=[];for(var A=0,C=B.items.length;A<C;A++){D.push(new Flickr.Photo(B.items[A]))}return D}}),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 A=Flickr.Photo.METHOD_MAPPINGS;for(var B in A){(function(C,D){Flickr.Photo.define("get"+C,function(){return this._data[D]})})(B,A[B])}})();Flickr.JSONP={_counter:0,CALLBACK_BASE:"__jsonpcb__",getCallbackName:function(){return this.CALLBACK_BASE+(this._counter++)},encode:function(A){return encodeURIComponent(decodeURIComponent(A))},buildURL:function(B,C){if(C===undefined){return B}for(var A in C){if(!C.hasOwnProperty(A)){continue}B+=/\?/.test(B)?"&":"?";B+=this.encode(A)+"="+this.encode(C[A])}return B},request:function(H,A,G,F){var E=this.getCallbackName();A=JS.extend({format:"json",jsoncallback:E},A||{});var C=document.getElementsByTagName("head")[0],D=document.createElement("script"),B=this.buildURL(H,A);window[E]=function(I){window[E]=undefined;try{delete window[E]}catch(J){}C.removeChild(D);if(G){G.call(F,I)}};D.type="text/javascript";D.src=B;C.appendChild(D)}}