
(function($){$.fn.jqAlbumParser=function(options){return this.each(function(index){var it=this,$this=$(this);it.opts=$.extend({},$.fn.jqAlbumParser.defaults,options);it.index=index;it.wrapper=it.opts.wrapper.split('>');var cls=it.className;it.opts.webAlbum=(cls.match(/wa:(\w+)/)||[])[1]||it.opts.webAlbum;it.url=$.fn.jqAlbumParser.urlFix(it,$this.attr('href'));$this.bind(it.opts.triggerEvent,function(){$.fn.jqAlbumParser.loadIndicator('build');$('#jqAlbumParserID'+it.index).remove();$.ajaxSetup({cache:true});$.ajax({type:'GET',url:it.url,success:function(data){$.fn.jqAlbumParser.toJson(data,it);},dataType:'jsonp',cache:true});return false;});});};$.fn.jqAlbumParser.toJson=function(json,it){$.fn.jqAlbumParser.loadIndicator('log','Building Photo Array');var obj=Object(),cleared=false;if(it.opts.webAlbum=='picasa'){obj=$.fn.jqAlbumParser.shuffle(json['feed']['entry'],it.opts.randomized);$.jqAlbumParser.photos[it.index]={};$.each(obj,function(i){$.fn.jqAlbumParser.loadIndicator('log','Process JSON '+(i+1)+' of '+obj.length);var elements={tn:{url:obj[i]['media$group']['media$thumbnail'][it.opts.tnSize]['url']+'?imgmax=800',h:obj[i]['media$group']['media$thumbnail'][it.opts.tnSize]['height'],w:obj[i]['media$group']['media$thumbnail'][it.opts.tnSize]['width']},title:obj[i]['title']['$t'],full:{url:obj[i]['media$group']['media$content'][0]['url']+'?imgmax=800',h:obj[i]['media$group']['media$content'][0]['height'],w:obj[i]['media$group']['media$content'][0]['width']}};$.jqAlbumParser.photos[it.index][i]=elements;});cleared=true;}
else if(it.opts.webAlbum=='flickr'){obj=$.fn.jqAlbumParser.shuffle(json['items'],it.opts.randomized);$.jqAlbumParser.photos[it.index]={};$.each(obj,function(i){var desc=$('<div></div>').append(obj[i]['description']);$.fn.jqAlbumParser.loadIndicator('log','Process JSON '+(i+1)+' of '+obj.length);var elements={tn:{url:obj[i]['media']['m'].replace(/_m.jpg/,$.jqAlbumParser.flickrArray[it.opts.tnSize])},title:obj[i]['title'],desc:$('p:eq(2)',desc).html(),full:{url:obj[i]['media']['m'].replace(/_m/,'')}};$.jqAlbumParser.photos[it.index][i]=elements;});cleared=true;}
$.fn.jqAlbumParser.loadIndicator('log','End process JSON');if(cleared)$.fn.jqAlbumParser.build(it);};$.fn.jqAlbumParser.build=function(it){$.fn.jqAlbumParser.loadIndicator('log','Start Build');var cnt=it.wrapper.length;var child,$parent;if(cnt<2){return false;}
else{$parent=$("<"+$.trim(it.wrapper[0])+">");if(it.opts.appendTo=='self'){$(it).before($parent).hide();}
else{$parent.appendTo(it.opts.appendTo);}
child="<"+$.trim(it.wrapper[(cnt-1)])+">";}
var photos=$.jqAlbumParser.photos[it.index];for(i in it.opts.parentAttr){$parent.attr(i,it.opts.parentAttr[i]);};$parent.attr('id','jqAlbumParserID'+it.index);for(i in photos){var $it=$(child);var deschtml=photos[i]['desc'];var $img=$('<img src="'+photos[i][it.opts.buildFrom]['url']+'" alt="'+photos[i]['title']+'" title="'+photos[i]['title']+'"/>').appendTo($it);if(it.opts.includeHref){var $a=$('<a/>').attr('href',photos[i]['full']['url']);$img.wrap($a);}
if(it.opts.showDesc){var $descspan=$('<span></span>').html(deschtml);$it.append($descspan);}
$parent.append($it);if(it.opts.count!=null&&it.opts.count-1==i){break;};};$.fn.jqAlbumParser.loadIndicator('log','End Build');$.fn.jqAlbumParser.callback(it,$parent);};$.fn.jqAlbumParser.callback=function(item,$parent){$.fn.jqAlbumParser.loadIndicator('log','Start Callback');item.opts.pluginExec.apply($parent);item.opts.callback();$.fn.jqAlbumParser.loadIndicator('hide');};$.fn.jqAlbumParser.urlFix=function(it,url){switch(it.opts.webAlbum){case'picasa':return url.replace(/alt=rss/g,"alt=json");case'flickr':return url+"&format=json&jsoncallback=?";}}
$.fn.jqAlbumParser.shuffle=function(o,r){if(r){for(var j,x,i=o.length;i;j=parseInt(Math.random()*i),x=o[--i],o[i]=o[j],o[j]=x);}
return o;};$.fn.jqAlbumParser.loadIndicator=function(option,txt){switch(option){case'build':if($('#jqAlbumParserLoader').size()==0){}
else{$('#jqAlbumParserLoader').show();};break;case'hide':$('#jqAlbumParserLoader').hide();break;case'log':$('#jqAlbumParserLoader').text(txt);break;};};$.jqAlbumParser={photos:{},flickrArray:Array('_s.jpg','_t.jpg','_m.jpg')};$.fn.jqAlbumParser.defaults={wrapper:"ul > li",parentAttr:{},webAlbum:null,triggerEvent:'click',callback:function(){},pluginExec:function(){},tnSize:0,appendTo:'self',count:null,buildFrom:'tn',randomized:false,includeHref:true,showDesc:true};})(jQuery);