var AlbumLibrary=(function(X){var s,t,n,c,T,C,r,J,V,o,u,e,P,v,i,M,p,A,O,I,l,Y,f,m,B,b=X("#discography");C=['<div class="sTrig"><span class="prev"></span></div>','<div class="sTrig sNext"><span class="next"></span></div>'].join("");s=X("#albumLibrary");f=X(".viewAll");r=X(".currentStart");J=X(".currentEnd");V=s.find("#total");t=X(".albumType a");n=X(".catalogh1").attr("id");c=X("span.triggers");T=X("li.albLibrary");o=X("#albumCount, #total");l=X("#compilationAlbums");Y=X("#fullAlbums");p=X("#albumSort");e=29;P=235;v=100;i=15;m=SaveForLater;B=X("div.pager");function K(){return X("div.lazy-susan").children("ul").children("li")}function U(){return parseInt(o.html(),10)}function E(){var w=X("div.lazy-susan").children("ul").children("li:visible").filter(":first");return(M.index(w)+1)}function D(){var w=X("div.lazy-susan").children("ul").children("li:visible").filter(":last");return(M.index(w)+1)}function G(){var x,y,w;M=K();x=U();y=E();w=D();r.html(y);J.html(w);if(B.is(":hidden")){B.fadeIn()}}function Z(w){A=new LazySusan(X("span.triggers, div.sTrig"),X(".lazy-susan"),G,"medium",w)}function Q(x,y){var w=X(x).parent().attr("id");X.ajax({type:"get",dataType:"json",url:["/catalog/album.html?albumId=",w,"&include=album,ratings&format=json","&data=catalogData&html=albumCondensed&ajax=true&"].join(""),error:function(){(console.log("ajax error"))},success:function(AB){if(AB!==null&&AB.status==="ok"){var AA=AB.albumCondensed,z;if(AB.albumCondensed){y.html(AA);y.find(".tooltip").addClass("albumTile");O=y.find(".tooltip").height()+e;z=x.offset().top+v;I=z-O;if(y.hasClass("topp")){y.css("top",I)}else{if(y.hasClass("bottomm")){y.css("top",x.offset().top-i)}}if(u){X(".tilePointer").addClass("pointLeft")}if(y.is(":visible")){X(".tooltipWrapper").height(y.find(".tooltipBg").height())}}else{}}else{}}})}function H(){X(".tipTrigger").tooltip({predelay:500,position:"center left",offset:[107,-9],tipClass:"tooltipWrapper",onBeforeShow:function(){var x=this.getTip(),w=this.getTrigger();u=false;x.find(".tooltip").addClass("albumTile");x.html("");if(w.parents("ul").hasClass("leftCol")){x.addClass("moveLeft");u=true}Q(w,x)},onHide:function(){X(".tooltipWrapper").height(310)}}).dynamic({top:{offset:[-174,-9]},classNames:"topp right bottomm left",bottom:{offset:[113,-9]}})}function a(){return X("#albumSort").val()}function W(y,z,x,AA){var AB=parseInt(X(z).attr(y),10),w=parseInt(X(x).attr(y),10);if(AA){return X(z).find(AA).attr(y).toLowerCase()>X(x).find(AA).attr(y).toLowerCase()?1:-1}return AB>w?1:-1}function k(AA,AB,z){var w=parseInt(X(AB).attr(AA),10)||false,AC=parseInt(X(z).attr(AA),10);if(!w){w=0}if(!AC){AC=0}return(AC-w)}function h(w,y,x){X("li.albLibrary").sortElements(function(AA,z){return y(w,AA,z,x)})}function S(w){switch(w){case"alpha":h("title",W,"div.bundleMeta h3 a");break;case"downloads":h("data-index",W);break;case"newest":h("data-dateAdded",k);break;case"releaseDate":h("data-releaseDate",k);break;default:h("data-index",W)}}function F(){X(".library").find("form").find("select").selectbox({wrapper:X("#albumSortContainer"),showGlyph:true,callback:function(){S(a());A.setCurrent(0);A.move()}})}function q(w){o.html(w)}function g(z){var y,w=/^frame/,AA=b.attr("class").split(" "),x=AA.length;for(y=0;y<x;y+=1){if(AA[y].match(w)){b.removeClass(AA[y])}}if(z<7){if(z<5){if(z<3){b.addClass("frame2")}b.addClass("frame4")}b.addClass("frame6")}else{b.addClass("frame8")}}function d(){m.init();X(".jsShow").removeClass("jsShow")}function N(){if(K().length>8){c.fadeIn();f.fadeIn()}else{X(".sTrig").remove();c.hide();f.hide()}}function L(){t.click(function(){var w=X(this);if(w.hasClass("empty")||w.hasClass("selected")){return false}t.removeClass("selected");w.addClass("selected");X.ajax({type:"get",dataType:"json",url:["/discography.html?artistId=",n,"&sortOrder=",a()].join(""),error:function(){(console.log("ajax error"))},success:function(y){var x=y[w.attr("id")].count;b.html(y[w.attr("id")].html);N();q(x);g(x);G();H();Z();d();DUMAS.EMUSIC_PLAYER.init(b)}});return false})}function R(){X.each([l,Y],function(){if(parseInt(X(this).attr("data-size"),10)===0){X(this).addClass("empty")}})}function j(w){M=K();G();Z(w);H();F();L();R();N();d()}return{init:j}}(jQuery));var GA_Concerts=(function(){function B(C,D){if(D){window.location.href=C}else{window.open(C)}}function A(D,C){D.find("td a").click(function(){var F=$(this),E;switch(F.parent().attr("class")){case"venue":E="venue link";break;case"location":E="location link";break;case"uri":E="ticket link";break;default:E="unknown link";break}if(0===_gaq.push(["_trackEvent","Concerts","Clicked"+E,C])){B(this.href)}else{B(this.href)}return false})}return{init:A}}());var BandsInTown=(function(){var d={ALL:0,IP:1},N=true,T=[undefined,"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Q,O,c,V,I,B=10,g="http://maps.google.com/maps?z=",h=12,R="http://api.bandsintown.com",F="json",L="emusic",Z="affil_code=emusic ",S={},W="<table>",H="</table>",Y='<tr><th>Date</th><th>Venue</th><th>Location</th><th class="tix_header">Tickets</th></tr>',C='<a href="#" class="moreConcerts no-ajax">more &raquo;</a>',j="loaded",U="United Kingdom",P="United States";function K(o,n){var m;if(n){m=$(n).serializeObj()}return[R,o,"?","app_id=",L,"&callback=?",m?"&"+m:""].join("")}function D(n,m){if(N&&n&&n.length>m){return n.substring(0,m)+"..."}else{return n}}function A(m){var n=m.split("-");return T[parseInt(n[1],10)]+" "+parseInt(n[2],10)}function k(p,n,q,m){var o=["q=",encodeURIComponent(q),",%20",encodeURIComponent(m)].join("");if(p&&n){return[g,h,"&ll=",p,",",n,"&",o].join("")}else{return[g,h,"&",o].join("")}}function M(n){var m;switch(n){case U:m="UK";break;default:m=n;break}return m}function G(m){return m.indexOf("?")>-1?[m,"&",Z].join(""):[m,"?",Z].join("")}function X(m,q){var t=[],p,u,o,n,v,s,r;u=[m.venue.city,m.venue.region&&m.venue.region===U?"":(", "+m.venue.region),m.venue.country&&m.venue.country===P?"":m.venue.country===m.venue.region?"":(", "+M(m.venue.country))].join("");r=k(m.venue.latitude,m.venue.longitude,m.venue.name,u);o='<td class="date">'+A(m.datetime)+"</td>";n=['<td class="venue"><a target="_blank" href="',r,'">',D(m.venue.name,35),"</a></td>"].join("");v=['<td class="location"><a target="_blank" href="',r,'">',D(u,25),"</a></td>"].join("");s=['<td class="uri">',m.ticket_status==="available"?['<a target="_blank" href="',G(m.url),'"></a>'].join(""):"","</td>"].join("");p=['<tr class="',q%2===0?"concertRow":"",(q>B-1?" hide":""),'">'].join("");t.push(p);t.push(o);t.push(n);t.push(v);t.push(s);t.push("</tr>");return t.join("")}function f(n){var m=[];m.push(W);m.push(Y);$(n).each(function(o){m.push(X(this,o))});m.push(H);if(n.length>B){m.push(C)}Q.addClass(j).html(m.join(""));GA_Concerts.init(Q,c)}function b(){Q.addClass(j).html('<p class="none">This artist is not currently on tour'+(I===d.IP?' in your area. Try selecting "All Tour Dates" to see more options':"")+".</p>")}function E(n,m){if(Object.hasOwnProperty.call(S,n)){f(S[n])}else{$.ajax({type:"get",dataType:"json",cache:true,url:K(n,m),success:function(o){if(o&&o.length){f(o);S[n]=o}else{b()}},error:b})}}function J(){I=d.IP;E("/events/search",{"artists[]":encodeURIComponent(c),location:V,format:F,radius:50})}function a(){I=d.ALL;E(["/artists/",encodeURIComponent(c),"/events.",F].join(""),{})}function l(){var n=false,m="concerts_active";$(".moreConcerts",Q).live("click",function(){if(n){Q.find(".hide").fadeOut();$(this).html("more &raquo;");n=false}else{Q.find(".hide").fadeIn();$(this).html("less &raquo;");n=true}return false});O.click(function(){var o=$(this);O.removeClass(m);switch(this.className){case"concerts_near":J();break;case"concerts_all":a();break;default:return }o.addClass(m);return false})}function e(o){var n=o.split(" "),m=[];$(n).each(function(){var p=jQuery.trim(this);if(p){m.push(p)}});return n.length?m.join(" "):o}function i(n){var m=new RegExp(/[\u0021-\u002f\u003a-\u0040\u005b-\u005e\u0060\u007b-\u007e]/g);try{N=!!n;Q=$("#bandsInTown .concerts");O=$(".concerts_toggle").find("a");Q.each(function(){c=e($(this).attr("data-artist").toLowerCase().replace(m," "));V=$(this).attr("data-IP");a();l()})}catch(o){b();Log.write(o)}}return{init:i}}());var GA_Album=(function(){function A(B,C,D){if(D==null){D=""}_gaq.push(["_trackEvent",B,C,D])}return{trackPageEvent:A}}());$.hashsignal.registerTransition("artist.js",["PAGEJS"],{load:function(B){var A;$(".moreable").moreBox();AlbumLibrary.init(B);ActionPanel.init();BandsInTown.init(true);B.bind(".upsell_overlay","click",function(){GA_Landing.used("Artist Overlay clicked")});A=$(".neighbor-sets");(new LazySusan(A.find(".carousel-content"),A.find(".neighbor-set"),undefined,undefined,B));B.bind(".discover-box","click",function(D){var C=$(this);if(D.target.nodeName.toLowerCase()!=="a"){window.location.href=C.find("h3 a").attr("href");return false}})},unload:function(A){}});(function(){var K,Y,A,V,L,X,P,G,T,C,D="tt_over",H="tt_on",Q={},J=[];function N(){G.each(function(){var b=$(this),a={};a.imageUrl=b.attr("data-imageUrl");a.playUrl=b.attr("data-playUrl");a.albumUrl=b.attr("data-albumUrl");a.albumName=b.find(".topTracksAlbName").attr("data-albumName");a.trackName=b.find(".topTracksName").attr("data-trackName");J.push(a)})}function B(b,a){if(a<b.length){b=b.substring(0,a);b=b+"..."}return b}function R(b){var a=J[b];L.attr("href",a.albumUrl).attr("title",a.albumName).text(B(a.albumName,36));K.attr("href",a.albumUrl).attr("title",a.trackName).text(B(a.trackName,37));V.attr("href",a.albumUrl);X.attr("href",a.playUrl);T.css({backgroundImage:"url("+a.imageUrl+")"})}function I(b){var a=J[b].playUrl;DUMAS.EMUSIC_PLAYER.playTrack(a);E(b)}function E(a){P.find("li").filter("."+H).removeClass(H);G.eq(a).addClass(H);if(Q.playStatus!="false"){X.addClass("topTracksOn")}else{X.removeClass("topTracksOn")}}function Z(){A=0;P.find("li").filter("."+H).removeClass(H);C.find("#currentTrackPlay").removeClass("topTracksOn");R(A)}function M(){E(A)}function S(){A--;if(A>=0){I(A);R(A)}else{A=0}return false}function U(){if(A<J.length-1){A++;I(A);R(A)}else{A=J.length-1}return false}function F(){G.hover(function(){$(this).toggleClass(D)})}function O(){Y.bind("click.topTracks",function(){var b=$(this);var a=b.attr("href");A=Y.index(b);E(A);R(A);if(Q.albumHref==a){C.find("#currentTrackPlay").removeClass("topTracksOn")}});C.find("#radioControls").find(".prevTopTrack").bind("click",S).end().find(".nextTopTrack").bind("click",U);X.bind("click.topTracks",M)}function W(){C=$("#topTracksModule");if(C.length){T=C.find("#currentImg");K=C.find("#currentTrack");L=C.find("#currentAlbum");V=C.find("#currentImgLink");X=C.find("#currentTrackPlay");P=C.find("#topTracksList");G=P.find("li");Y=G.find(".topTracksSample").find("a");A=0;F();N();R(A);O();$("#topTracksModule").bind("status",function(a,b){Q=b;if(b.playStatus===null&&b.albumHref===""&&b.hrefId===""){X.addClass("topTracksOn");U()}E(A)})}}$(function(){W()})})();(function(D){D.tools=D.tools||{version:"@VERSION"};D.tools.tooltip={conf:{effect:"toggle",fadeOutSpeed:"fast",predelay:0,delay:30,opacity:1,tip:0,position:["top","center"],offset:[0,0],relative:false,cancelDefault:true,events:{def:"mouseenter,mouseleave",input:"focus,blur",widget:"focus mouseenter,blur mouseleave",tooltip:"mouseenter,mouseleave"},layout:"<div/>",tipClass:"tooltip"},addEffect:function(E,G,F){C[E]=[G,F]}};var C={toggle:[function(E){var F=this.getConf(),G=this.getTip(),H=F.opacity;if(H<1){G.css({opacity:H})}G.show();E.call()},function(E){this.getTip().hide();E.call()}],fade:[function(E){var F=this.getConf();this.getTip().fadeTo(F.fadeInSpeed,F.opacity,E)},function(E){this.getTip().fadeOut(this.getConf().fadeOutSpeed,E)}]};function B(G,I,F){var K=F.relative?G.position().top:G.offset().top,J=F.relative?G.position().left:G.offset().left,L=F.position[0];K-=I.outerHeight()-F.offset[0];J+=G.outerWidth()+F.offset[1];if(/iPad/i.test(navigator.userAgent)){K-=D(window).scrollTop()}var E=I.outerHeight()+G.outerHeight();if(L=="center"){K+=E/2}if(L=="bottom"){K+=E}L=F.position[1];var H=I.outerWidth()+G.outerWidth();if(L=="center"){J-=H/2}if(L=="left"){J-=H}return{top:K,left:J}}function A(H,J){var R=this,G=H.add(R),O,F=0,Q=0,M=H.attr("title"),I=H.attr("data-tooltip"),S=C[J.effect],N,L=H.is(":input"),E=L&&H.is(":checkbox, :radio, select, :button, :submit"),K=H.attr("type"),P=J.events[K]||J.events[L?(E?"widget":"input"):"def"];if(!S){throw'Nonexistent effect "'+J.effect+'"'}P=P.split(/,\s*/);if(P.length!=2){throw"Tooltip: bad events configuration for "+K}H.bind(P[0],function(T){clearTimeout(F);if(J.predelay){Q=setTimeout(function(){R.show(T)},J.predelay)}else{R.show(T)}}).bind(P[1],function(T){clearTimeout(Q);if(J.delay){F=setTimeout(function(){R.hide(T)},J.delay)}else{R.hide(T)}});if(M&&J.cancelDefault){H.removeAttr("title");H.data("title",M)}D.extend(R,{show:function(U){if(!O){if(I){O=D(I)}else{if(J.tip){O=D(J.tip).eq(0)}else{if(M){O=D(J.layout).addClass(J.tipClass).appendTo(document.body).hide().append(M)}else{O=H.next();if(!O.length){O=H.parent().next()}}}}if(!O.length){throw"Cannot find tooltip for "+H}}if(R.isShown()){return R}O.stop(true,true);var V=B(H,O,J);if(J.tip){O.html(H.data("title"))}U=U||D.Event();U.type="onBeforeShow";G.trigger(U,[V]);V=B(H,O,J);O.css({position:"absolute",top:V.top,left:V.left});N=true;S[0].call(R,function(){U.type="onShow";N="full";G.trigger(U)});var T=J.events.tooltip.split(/,\s*/);if(!O.data("__set")){O.bind(T[0],function(){clearTimeout(F);clearTimeout(Q)});if(T[1]&&!H.is("input:not(:checkbox, :radio), textarea")){O.bind(T[1],function(W){if(W.relatedTarget!=H[0]){H.trigger(P[1].split(" ")[0])}})}O.data("__set",true)}return R},hide:function(T){if(!O||!R.isShown()){return R}T=T||D.Event();T.type="onBeforeHide";G.trigger(T);N=false;C[J.effect][1].call(R,function(){T.type="onHide";G.trigger(T)});return R},isShown:function(T){return T?N=="full":N},getConf:function(){return J},getTip:function(){return O},getTrigger:function(){return H}});D.each("onHide,onBeforeShow,onShow,onBeforeHide".split(","),function(U,T){if(D.isFunction(J[T])){D(R).bind(T,J[T])}R[T]=function(V){if(V){D(R).bind(T,V)}return R}})}D.fn.tooltip=function(E){var F=this.data("tooltip");if(F){return F}E=D.extend(true,{},D.tools.tooltip.conf,E);if(typeof E.position=="string"){E.position=E.position.split(/,?\s/)}this.each(function(){F=new A(D(this),E);D(this).data("tooltip",F)});return E.api?F:this}})(jQuery);(function(B){var A=B.tools.tooltip;B.extend(A.conf,{direction:"up",bounce:false,slideOffset:10,slideInSpeed:200,slideOutSpeed:200,slideFade:!B.browser.msie});var C={up:["-","top"],down:["+","top"],left:["-","left"],right:["+","left"]};A.addEffect("slide",function(D){var F=this.getConf(),G=this.getTip(),H=F.slideFade?{opacity:F.opacity}:{},E=C[F.direction]||C.up;H[E[1]]=E[0]+"="+F.slideOffset;if(F.slideFade){G.css({opacity:0})}G.show().animate(H,F.slideInSpeed,D)},function(E){var G=this.getConf(),I=G.slideOffset,H=G.slideFade?{opacity:0}:{},F=C[G.direction]||C.up;var D=""+F[0];if(G.bounce){D=D=="+"?"-":"+"}H[F[1]]=D+"="+I;this.getTip().animate(H,G.slideOutSpeed,function(){B(this).hide();E.call()})})})(jQuery);(function(D){var C=D.tools.tooltip;C.dynamic={conf:{classNames:"top right bottom left"}};function B(H){var E=D(window);var G=E.width()+E.scrollLeft();var F=E.height()+E.scrollTop();return[H.offset().top<=E.scrollTop(),G<=H.offset().left+H.width(),F<=H.offset().top+H.height(),E.scrollLeft()>=H.offset().left]}function A(F){var E=F.length;while(E--){if(F[E]){return false}}return true}D.fn.dynamic=function(F){if(typeof F=="number"){F={speed:F}}F=D.extend({},C.dynamic.conf,F);var E=F.classNames.split(/\s/),I;var H=true,G=true;this.each(function(){var J=D(this).tooltip().onBeforeShow(function(N,O){var M=this.getTip(),L=this.getConf();if(!I){I=[L.position[0],L.position[1],L.offset[0],L.offset[1],D.extend({},L)]}D.extend(L,I[4]);L.position=[I[0],I[1]];L.offset=[I[2],I[3]];M.css({visibility:"hidden",position:"absolute",top:O.top,left:O.left}).show();var K;K=B(M);if(!A(K)){if(K[2]){D.extend(L,F.top);L.position[0]="top";M.addClass(E[0])}if(K[3]){D.extend(L,F.right);L.position[1]="right";M.addClass(E[1])}if(K[0]){D.extend(L,F.bottom);L.position[0]="bottom";M.addClass(E[2])}if(K[1]){D.extend(L,F.left);L.position[1]="left";M.addClass(E[3])}if(H&&(K[0]||K[2])){L.offset[0]*=-1;H=false}if(G&&(K[1]||K[3])){L.offset[1]*=-1;G=false}}M.css({visibility:"visible"}).hide()});J.onBeforeShow(function(){var L=this.getConf(),K=this.getTip();setTimeout(function(){L.position=[I[0],I[1]];L.offset=[I[2],I[3]]},0)});J.onHide(function(){var K=this.getTip();K.removeClass(F.classNames)});ret=J});return F.api?ret:this}})(jQuery);jQuery.fn.sortElements=(function(){var A=[].sort;return function(C,D){D=D||function(){return this};var B=this.map(function(){var F=D.call(this),E=F.parentNode,G=E.insertBefore(document.createTextNode(""),F.nextSibling);return function(){if(E===this){throw new Error("You can't sort elements if any one is a descendant of another.")}E.insertBefore(this,G);E.removeChild(G)}});return A.call(this,C).each(function(E){B[E].call(D.call(this))})}})();
