(function($){$.extend({isEmpty:function(obj){for(var i in obj){return false}
return true}})
$.flickr={url:function(method,params){return'http://api.flickr.com/services/rest/?method='+ method+'&format=json'+'&api_key='+ $.flickr.settings.api_key+($.isEmpty(params)?'':'&'+ $.param(params))+'&jsoncallback=?'},translate:function(size){switch(size){case'sq':return'_s'
case't':return'_t'
case's':return'_m'
case'm':return''
default:return''}},linkTag:function(text,photo,href){if(href===undefined)href=['http://www.flickr.com/photos',photo.owner,photo.id].join('/')
return'<a href="'+ href+'" title="'+ photo.title+'" target="_blank">'+ text+'</a>'}}
$.flickr.thumbnail={src:function(photo,size){if(size===undefined)size=$.flickr.translate($.flickr.settings.thumbnail_size)
return'http://farm'+ photo.farm+'.static.flickr.com/'+ photo.server+'/'+ photo.id+'_'+ photo.secret+ size+'.jpg'},imageTag:function(image){return'<img src="'+ image.src+'" alt="'+ image.alt+'" onmouseover="$(this).css(\'opacity\', 1)" onmouseout="$(this).css(\'opacity\', 0.5)" />'}}
$.flickr.thumbnail.process=function(photos){var thumbnails=$.map(photos.photo,function(photo){var image=new Image(),html='',href=undefined
image.src=$.flickr.thumbnail.src(photo)
image.alt=photo.title
var size=$.flickr.settings.link_to_size
if(size!=undefined&&size.match(/sq|t|s|m|o/))
href=$.flickr.thumbnail.src(photo,$.flickr.translate(size))
html=$.flickr.linkTag($.flickr.thumbnail.imageTag(image),photo,href)
return['<li>'+ html+'</li>']}).join("\n")
return $('<ul class="flickr"></ul>').append(thumbnails)}
$.flickr.photos=function(method,options){var options=$.extend($.flickr.settings,options||{}),elements=$.flickr.self,photos
return elements.each(function(){$.getJSON($.flickr.url(method,options),function(data){photos=(data.photos===undefined?data.photoset:data.photos)
elements.append($.flickr.thumbnail.process(photos))})})}
$.flickr.methods={photosGetRecent:function(options){$.flickr.photos('flickr.photos.getRecent',options)},photosGetContactsPublicPhotos:function(options){$.flickr.photos('flickr.photos.getContactsPublicPhotos',options)},photosSearch:function(options){$.flickr.photos('flickr.photos.search',options)},photosetsGetPhotos:function(options){$.flickr.photos('flickr.photosets.getPhotos',options)}}
$.fn.flickr=function(options){$.flickr.self=$(this)
$.flickr.settings=$.extend({api_key:'YOUR API KEY',thumbnail_size:'sq'},options||{})
return $.flickr.methods}})(jQuery);
