var globalActionTimeouted=new Array();var globalAlbumMatrix=new Array();var globalRecomArtistMatrix=new Array();var globalActualPage="index";var globalLoggedIn=false;var globalTooltipTimeouted=null;Array.implement({limit:function(){var B=(arguments.length>1)?arguments[0]:0;var A=(arguments.length>1)?arguments[1]:arguments[0];return this.slice(B,A)},project:function(A){return this.map(function(D){var E={};for(var G in A){var F=A[G];if($type(F)=="object"&&("as" in F)){var B=F.as;E[B]=D[G];if("aggregate" in F){var C=F.aggregate;E[B]=C(E[B])}}else{E[F]=D[G]}}return E})},groupBy:function(G){var J=[];var A=$A(this);var C=$H(this[0]).getKeys().filter(function(K){return !G.contains(K)});for(var F=0;F<A.length;F++){var E={};for(var H=0;H<G.length;H++){E[G[H]]=A[F][G[H]]}for(var H=0;H<C.length;H++){E[C[H]]=new Array();E[C[H]].push(A[F][C[H]])}for(var D=F+1;D<A.length;D++){var I=true;for(var H=0;H<G.length&&I;H++){if(E[G[H]]!=A[D][G[H]]){I=false}}if(I){for(var H=0;H<C.length;H++){E[C[H]].push(A[D][C[H]])}A.splice(D--,1)}else{for(var B=0;B<C.length;B++){E[C[B]]=E[C[B]]}}}J.push(E)}return J},reduce:function(B,A){var C=A;this.each(function(D){C=B(C,D)});return C},join:function(G,D){var A=[];for(var C=0;C<this.length;C++){var E=this[C];for(var B=0;B<G.length;B++){if(block(this[C],G[B])){var F=$merge(E,G[B]);A.push(F)}}}return A}});var Atomize=[];var ImageInstance=null;var Container=new Class({initialize:function(C,A,D){this.idSlide=C;this.idContainer=A;this.slideHeight=D;var B=this;this.container=$(A);this.slide=$(C);$(this.idSlide+"Hide").addEvent("click",function(){B.hide()});$(this.idSlide+"Show").addEvent("click",function(){B.show()});Atomize[C]={_busy:false}},show:function(){var B=this.idSlide;if(!Atomize[B]._busy){Atomize[B]._busy=true;var A=this.slide.get("tween",{duration:500,transition:Fx.Transitions.Quart.easeOut});A.start("height",this.slideHeight).chain(function(){this.start("opacity",1)}).chain(function(){$(B+"Hide").style.display="";$(B+"Show").style.display="none";Atomize[B]._busy=false})}},hide:function(){var B=this.idSlide;if(!Atomize[B]._busy){Atomize[B]._busy=true;var A=this.slide.get("tween");A.start("opacity",0).chain(function(){this.start("height",0)}).chain(function(){Atomize[B]._busy=false;$(B+"Hide").style.display="none";$(B+"Show").style.display=""})}},toggle:function(A){if(A){this.show()}else{this.hide()}}});var PaginatedContainer=new Class({Extends:Container,initialize:function(D,B,G,A,F,E){this.parent(D,B,E);this.idPageNext=G;this.idPagePrevious=A;this.shownRows=F;var C=this;$(G).addEvent("click",function(){C.nextPage()});$(A).addEvent("click",function(){C.previousPage()})},initPagination:function(){this.container.setStyles({"margin-left":15,"margin-top":0});this.checkPaginationLinks()},checkPaginationLinks:function(){var A=this.shownRows;table=this.container,height=table.offsetHeight,marginTop=table.getStyle("margin-top").toFloat(),rowHeight=table.getElement("tr").getStyle("height").toFloat(),cantRows=table.getElements("tr").length,nextLink=$(this.idPageNext),previousLink=$(this.idPagePrevious),rowsPassed=Math.abs(Math.floor(marginTop/rowHeight));previousLink.style.visibility=(rowsPassed!=0)?"visible":"hidden";nextLink.style.visibility=(rowsPassed+A>=cantRows)?"hidden":"visible"},page:function(E){var B=this.idSlide,A=this;if(!Atomize[B]._busy){Atomize[B]._busy=true;var D=Browser.Engine.trident?276:271;var C=this.container.getStyle("margin-top").toInt();this.container.get("tween",{duration:1000,transition:Fx.Transitions.Quart.easeOut}).start("margin-top",C+D*E).chain(function(){A.checkPaginationLinks();Atomize[B]._busy=false})}},nextPage:function(){this.page(-1)},previousPage:function(){this.page(1)}});var PaginatedImageContainer=new Class({Extends:PaginatedContainer,imageUrls:null,initialize:function(C,B,E,A){var D=Browser.Engine.trident?276:271;this.parent(C,B,E,A,3,D)},loadImages:function(){this.imageUrls=[];var D=$(this.idContainer);var E=D.getElementsByTagName("tr");var F;var A;globalAlbumMatrix=[];for(var C=0;C<E.length;C++){F=E[C].getElementsByTagName("td");globalAlbumMatrix[C]=new Array();for(var B=0;B<F.length;B++){var A=F[B].getElementsByTagName("img")[0];globalAlbumMatrix[C][B]=A.id;this.imageUrls.push(A.src)}}},setLoadingTransition:function(){var C=$("loadingCounter");var B=$("loadingPanel");C.style.display="";B.style.display="";var A=this.imageUrls;this.show();this.checkPaginationLinks();new Asset.images(A,{onProgress:function(E){if(C){var D=(E/A.length*100).round();C.set("html",D+"%")}},onComplete:function(){C.style.display="none";B.style.display="none"}})}});var ImageTooltip=new Class({idImage:null,initialize:function(){var A=this;$$(".img_details").each(function(B){B.set("tween",{duration:300,transition:Fx.Transitions.linear,link:"cancel"}).setStyle("cursor","pointer");B.addEvents({mouseenter:function(){B.tween("opacity",1,0.7);A.displayTooltip(B.id,true)},mouseleave:function(){B.tween("opacity",0.7,1);A.displayTooltip(B.id,false)}})})},displayTooltip:function(H,B){var F=H.split("_");var E=document.getElementById(F[0]+"_entireStuff");var G=document.getElementById("albumDescription");var D=G.offsetWidth;var A=G.offsetHeight;if(globalActionTimeouted){for(var C=0;C<globalActionTimeouted.length;C++){clearTimeout(globalActionTimeouted[C])}}if(!B){G.style.display="none"}else{globalActionTimeouted[0]=setTimeout("ImageInstance.showTooltip('"+F[0]+"')",500)}},showTooltip:function(A){var C=$(A+"_img");var F=Album.getIndexTable(A+"_img");var E;var D;var G=$("albumDescription");var H=$(A+"_entireStuff");H.getElement("img").setStyle("width",160);var J=C.offsetHeight;G.set("html",H.innerHTML).setStyles({width:0,display:"",zIndex:"100"});var I=$(G).getCoordinates();var B=C.getCoordinates();if(F[0]>5){E=-1;posx=0}else{E=0;posx=100}switch(F[1]%3){case 0:D=-1;posy=-I.height+B.height;break;case 1:D=0;posy=-15;break;case 2:D=-1;posy=-I.height+2*B.height}G.setStyles({top:B.top+posy,left:B.left+posx}).set("morph",{duration:300,transition:Fx.Transitions.Expo.easeOut}).morph({width:160+30,left:B.left+posx+((160+30)*E)})}});var ImageLoad=new Class({initialize:function(){$$("img").each(function(A){A.setStyle("visibility","hidden");A.addEvent("load",function(){this.setOpacity(0);this.setStyle("visibility","visible");this.effect("opacity",{duration:200,transition:Fx.Transitions.linear}).start(0,1)})})}});var FontEffect=new Class({id:null,isReverse:false,initialize:function(A){this.id=A;this.splitText()},splitText:function(A){var C=$(this.id);var D=C.innerHTML.trim();C.innerHTML="";var B="";D.split("").each(function(E){B+="<span>"+E+"</span>"});C.innerHTML=B;return this},setStyle:function(A,B){$$("#"+this.id+" span").each(function(C){C.setStyle(A,B)});return this},tweenToStyle:function(F,G,E,D){var H=0;var C=0;if(!D){D={duration:400,transition:Fx.Transitions.Quart.easeOut}}var B=$$("#"+this.id+" span");if(this.isReverse){B=B.reverse()}var A=new Array();B.each(function(J,I){A[I]=new Fx.Style(J,F,D);if(E){C=E;A[I].start.delay(H,A[I],G)}else{A[I].start(G)}H+=C});return this},tweenToStyles:function(F,E,D){var G=0;var C=0;if(!D){D={duration:400,transition:Fx.Transitions.Quart.easeOut}}var B=$$("#"+this.id+" span");if(this.isReverse){B=B.reverse()}var A=new Array();B.each(function(I,H){A[H]=new Fx.Styles(I,D);if(E){C=E;A[H].start.delay(G,A[H],F)}else{A[H].start(F)}G+=C});return this},reverse:function(){this.isReverse=!this.isReverse;return this}});var Aggregate={count:function(A){return A.length},sum:function(A){return A.reduce(function(C,B){return 1*C+1*B},0)},prod:function(A){return A.reduce(function(C,B){return 1*C*B},1)},max:function(A){return A.reduce(function(C,B){return(C>B)?C:B},Number.MIN_VALUE)},min:function(A){return A.reduce(function(C,B){return(C<B)?C:B},Number.MAX_VALUE)},avg:function(C){var B=0;for(var A=0;A<C.length;A++){B+=1*C[A]}return B/C.length}};var Error={phrase:"Oops, seems like the request failed! Do you wanna give it another shot?",raise:function(A,B){if(confirm(this.phrase)){A(B)}return}};var Transition={type:null,clearTimeouts:function(){if(globalActionTimeouted){for(var A=0;A<globalActionTimeouted.length;A++){clearTimeout(globalActionTimeouted[A])}}},loadGeneric:function(){var A=$("loading").set("html","Loading...");$("topartist").style.display="none";var B=$("loading").get("tween",{duration:800,transition:Fx.Transitions.linear});B.start("opacity",0,1);A.style.display="";if(arguments.length>1){this.requirePage(arguments[0],arguments[1])}else{this.requirePage(arguments[0])}},showCenterText:function(){$("loadingCenterText").style.display=""},hideCenter:function(){$("loadingCenter").style.display="none";$("loadingCenterText").style.display="none"},requireInfo:null,requirePage:function(){this.requireInfo=arguments;var B=new Object();switch(arguments[0]){case Artist.load:case"Artist.load":this.type=arguments[1];var A="/topartists/"+arguments[1]+"/";B=Artist;break;case Album.load:case"Album.load":this.type=arguments[1];var A="/topalbums/"+arguments[1]+"/";B=Album;break;case Song.load:case"Song.load":this.type=arguments[1];var A="/topsongs/"+arguments[1]+"/";B=Song;break;case Saved.load:case"Saved.load":var A="/saved_bands/";B=Saved;break;default:return false}new Request({method:"get",url:A,onSuccess:function(C){B.load(C)},onFailure:function(){Error.raise(Transition.requirePage,Transition.requireInfo)}}).send()}};var Menu={opacElem:function(D,A){var B=$(D);var C=B.get("tween",{duration:300,transition:Fx.Transitions.linear});if(A){C.start("opacity",1,0.5)}else{C.start("opacity",0.5,1)}},selectedElement:function(C){var B;for(var A=0;A<6;A+=2){setTimeout("Menu.opacElem('"+C+"', true)",A*320);setTimeout("Menu.opacElem('"+C+"', false)",(A+1)*320)}},displayToolTip:function(A,G){var E=document.getElementById(A);var B=document.getElementById("menuTitle");var I=Menu.findPos(E);var F={x:I[0],y:I[1]};if(G){B.style.display="block";var H=E.title;var C=H.split("");if(globalActionTimeouted){for(var D=0;D<globalActionTimeouted.length;D++){clearTimeout(globalActionTimeouted[D])}}B.innerHTML="";globalActionTimeouted=new Array();for(var D=0;D<C.length;D++){globalActionTimeouted[D]=setTimeout("Menu.addChar('menuTitle', '"+C[D]+"')",30*D)}}else{B.style.display="none";var H=B.innerHTML}},capturePosition:function(B){var A=0;var C=0;if(!B){var B=window.event}if(B.pageX||B.pageY){A=B.pageX;C=B.pageY}else{if(B.clientX||B.clientY){A=B.clientX+document.body.scrollLeft+document.documentElement.scrollLeft;C=B.clientY+document.body.scrollTop+document.documentElement.scrollTop}}Menu.resizeAllObjects({x:A,y:C})},resizeAllObjects:function(I){var D=document.getElementById("menu");var C=D.getElementsByTagName("img");var G=new Array();var J;for(var E=0;E<C.length;E++){var H=Menu.findPos(C[E]);var B=Menu.euclidDistance(I,{x:H[0]+30,y:H[1]+30});var A=C[E];if(B>=100){J={x:35,y:35}}else{var F=35+Math.floor((100-B)/100*50);J={x:F,y:F}}G[E]=J}for(E=0;E<C.length;E++){C[E].style.width=G[E].x+"px";C[E].style.height=G[E].y+"px"}},euclidDistance:function(B,C){var A=(B.x-C.x)*(B.x-C.x);var D=(B.y-C.y)*(B.y-C.y);return Math.sqrt(A+D)},resetElements:function(){var C=document.getElementById("menu");var B=C.getElementsByTagName("img");for(var A=0;A<B.length;A++){B[A].style.width="35px";B[A].style.height="35px"}},findPos:function(B){var A=$(B).getPosition();return[A.x,A.y]},addChar:function(B,A){$(B).innerHTML+=A},init:function(){var C=function(F){var E=$(F);E.addEvents({mouseenter:function(){Menu.displayToolTip(F,true)},mouseleave:function(){Menu.displayToolTip(F,false)}});if(F=="Artist"||F=="Album"||F=="Song"){E.addEvent("click",function(){Menu.selectedElement(F);Transition.loadGeneric(F+".load","all")})}};var D=$("menu");$(document.body).addEvent("mousemove",function(E){Menu.capturePosition(E.event)});var A=D.getElementsByTagName("img");for(var B=0;B<A.length;++B){C(A[B].id)}}};var Chart={page:0,limit:10,order:"asc",totalPlaycounts:0,type:null,response:null,container_id:"tabContent",linkTitle:"lastfm page",show_url:false,query:null,wholequery:null,renderToTable:function(G){var D='<table class="chart_table">';var E=$H(this.query[0]).getKeys();D+="<tr>";for(var C=0;C<E.length;C++){if(E[C]!="url"||E[C]=="url"&&this.show_url){D+='<td class="header">'+E[C]+"</td>"}}D+="</tr>";for(var A=0;A<this.query.length;A++){if(A%2==1){D+="<tr class='odd'>"}else{D+="<tr class='even'>"}for(var C in this.query[A]){var F=this.query[A][C];if(typeof(F)!="function"){switch(C){case"url":if(this.show_url){D+='<a href="'+F.url+'" title="'+this.linkTitle+' target="_blank" ">'+this.linkTitle+"</a>"}break;default:if(typeof(F)=="object"){D+="<td><ul>";for(var B=0;B<F.length;B++){D+="<li>"+F[B]+"</li>"}D+="</ul></td>"}else{D+="<td>"+F+"</td>"}break}}}D+="</tr>"}D+="</table>";$(G).empty().set("html",D)},renderToArtistTable:function(A){var F='<table class="chart_table">';var C=new Hash(this.query[0]);var I=C.getKeys();F+="<tr>";for(var E=0;E<I.length;E++){if(I[E]!="url"||I[E]=="url"&&this.show_url){F+='<td class="header">'+I[E]+"</td>"}}F+="</tr>";for(var B=0;B<this.query.length;B++){var H="";if(this.query[B].thumb){H='style="height:67px;"'}if(B%2==1){F+="<tr class='odd' "+H+">"}else{F+="<tr class='even' "+H+">"}for(var E in this.query[B]){var D=this.query[B][E];if(typeof(D)!="function"){switch(E){case"url":if(this.show_url){F+='<a target="_blank" title="'+this.linkTitle+'" href="'+D.url+'">'+this.linkTitle+"</a>"}break;case"thumb":F+='<td><img class="artist_thumbnail" src="'+D+'" /></td>';break;case"histogram":F+='<td><span id="'+D+'_hist" class="histogram" style="position: absolute;"></span></td>';break;default:if(typeof(D)=="object"){F+="<td><ul>";for(var G=0;G<D.length;G++){F+="<li>"+D[G]+"</li>"}F+="</ul></td>"}else{F+="<td>"+D+"</td>"}break}}}F+="</tr>"}F+="</table>";$(A).empty().set("html",F)},renderToArtistDetail:function(F){var C='<h3>detail view&nbsp;&nbsp;&nbsp;&nbsp; <span style="color:#555; display:none;" id="loadingPanel">loading </span> <span class="" id="loadingCounter" style="display:none;background-color:transparent;color:#555; ">&nbsp;</span></h3><span id="misterious_span" style="float:right; margin-top:-35px; margin-right:0px;"><span id="pagination"><a style="visibility:hidden;color:darkred;font-size:12px; margin-right:1px;" id="previous_page" href="javascript:void(0);">less</a> | <a style="visibility:hidden;color:darkred;font-size:12px; margin-right:313px;" id="next_page" href="javascript:void(0);">more</a><a id="picSlideShow" style="display:none; color:white;" href="javascript:void(0);"><img title="show" src="/static/img/add.png" /></a><a id="picSlideHide" style="color:white;" href="javascript:void(0);"><img title="hide" src="/static/img/del.png" /></a></span></span><div id="picSlide" style="height:0px;">';C+='<table id="lastFmTable" style="margin-top:0px;" class="chart_table_detail">';var D=$H(this.query[0]).getKeys();for(var A=0;A<this.query.length;A+=9){C+='<tr style="height:90px;" valign="bottom">';for(var B=A;B<A+9&&B<this.query.length;B++){var E=this.query[B];C+="<td>";C+="<img src='"+E.image+"' id='"+E.mbid+"_img' class='img_details' onclick=\"BandDetails.bandDetails('"+E.mbid+"_det');\"	/>";C+='<div style="display:none" id="'+E.mbid+'_entireStuff">';C+='<div class="bandDescription">';C+='<img  align="middle" src="'+E.image+'" />';C+='<div class="bandName">';if(E.artist){C+="<div ><b>album:</b> <span id='"+E.mbid+"_det'>"+E.name+"</span></div>";C+="<div ><b>artist:</b> "+E.artist+"</div>"}else{C+="<div ><b>artist:</b><span id='"+E.mbid+"_det'>"+E.name+"</span></div>"}if(E.chartposition){C+="<div><b>rank:</b> "+E.chartposition+"</div>"}else{C+="<div><b>rank:</b> "+E.rank+"</div>"}C+="<div><b>playcount:</b> "+E.playcount+"</div>";C+="</div></div></div>"}C+="</tr>"}C+="</table></div>";$(F).empty().set("html",C)},classicView:function(){this.page=0;this.wholequery=this.response;this.query=this.response.limit(this.limit);this.renderToTable(this.container_id);this.checkPages()},classicViewTopArtist:function(){this.page=0;var A={rank:"rank",name:"name",mbid:"histogram",playcount:"playcount"};this.wholequery=this.response.project(A);this.query=this.wholequery.limit(this.limit);this.renderToArtistTable(this.container_id);Artist.computeHistogram(this.totalPlaycounts);this.checkPages()},topArtistThumbnails:function(){this.page=0;var A={rank:"rank",thumbnail:"thumb",name:"name",mbid:"histogram",playcount:"playcount"};this.wholequery=this.response.project(A);this.query=this.wholequery.limit(this.limit);this.renderToArtistTable(this.container_id);Artist.computeHistogram(this.totalPlaycounts);this.checkPages()},topArtistDetails:function(){this.page=0;var A={image:"image",name:"name",artist:"artist",playcount:"playcount",chartposition:"chartposition",rank:"rank",mbid:"mbid"};this.wholequery=this.response.project(A);this.query=this.wholequery;this.renderToArtistDetail(this.container_id);var B=new PaginatedImageContainer("picSlide","lastFmTable","next_page","previous_page");B.loadImages();B.setLoadingTransition();ImageInstance=new ImageTooltip()},topAlbumDetails:function(){this.topArtistDetails()},classicViewTopAlbum:function(){this.page=0;var A={chartposition:"chartposition",artist:"artist",name:"name",playcount:"playcount"};this.wholequery=this.response.project(A);this.query=this.wholequery.limit(this.limit);this.renderToTable(this.container_id);this.checkPages()},groupArtists:function(C){this.page=0;var B;if(C=="playcount"){var A={playcount:"playcount",name:"name",chartposition:{as:"artist count",aggregate:Aggregate.count}}}else{var A={chartposition:"chartposition",name:"name",playcount:{as:"total playcount",aggregate:Aggregate.sum}}}this.wholequery=this.response.groupBy([C]).project(A);this.query=this.wholequery.limit(this.limit);this.renderToTable(this.container_id);this.checkPages()},groupAlbums:function(C){this.page=0;var B;if(C=="playcount"){var A={playcount:"playcount",name:"name",artist:"artist",chartposition:{as:"count",aggregate:Aggregate.count}}}else{if(C=="chartposition"){var A={chartposition:"chartposition",name:"name(s)",artist:"artist(s)",playcount:{as:"total playcounts",aggregate:Aggregate.sum}}}else{var A={artist:"artist",name:"name(s)",chartposition:{as:"average chartposition",aggregate:Aggregate.avg},playcount:{as:"total playcounts",aggregate:Aggregate.sum}}}}this.wholequery=this.response.groupBy([C]).project(A);this.query=this.wholequery.limit(this.limit);this.renderToTable(this.container_id);this.checkPages()},setVisibility:function(C,B){var A=document.getElementById(C);A.style.visibility=B},checkPages:function(){this.setVisibility("prev","visible");this.setVisibility("next","visible");if(this.page==0){this.setVisibility("prev","hidden")}if((this.page+1)*10>=this.wholequery.length){this.setVisibility("next","hidden")}},nextPage:function(){var B=++this.page*10;var A=this.page*10+this.limit-1;this.query=this.wholequery.limit(B,A);this.checkPages();if(this.type=="artist"){this.renderToArtistTable(this.container_id);Artist.computeHistogram(this.totalPlaycounts)}else{this.renderToTable(this.container_id)}},prevPage:function(){var B=--this.page*10;var A=this.page*10+this.limit-1;this.query=this.wholequery.limit(B,A);this.renderToTable(this.container_id);this.checkPages();if(this.type=="artist"){this.renderToArtistTable(this.container_id);Artist.computeHistogram(this.totalPlaycounts)}else{this.renderToTable(this.container_id)}}};var Tab={links:["/weekly/JSON/artist/","/weekly/JSON/album/","/weekly/JSON/track/"],tabNames:["weekly artist chart","weekly album chart","weekly track chart"],username:null,linc:null,ide:null,init:function(){this.tabContent=$("tabContent")},showTabContent:function(B,A){this.ide=B;this.linc=A;this.unselectAllTabs();this.selectTab(B);this.loadingTab();new Request({method:"get",url:A+"form/",onSuccess:Tab.showForm,onFailure:function(){Error.raise(Tab.showTabContent,[Tab.ide,Tab.linc])}}).send();new Request.JSON({url:A,onSuccess:Tab.getTabsTarget,onFailure:function(){Error.raise(Tab.showTabContent,[Tab.ide,Tab.linc])}}).get()},showForm:function(B){var A=$("views").set("html",B).setStyles({display:"",height:0,opacity:0}).set("morph",{duration:500,transition:Fx.Transitions.Back.easeOut}).morph({opacity:1,height:50})},getTabsTarget:function(A){var B=Chart;B.response=A;$(B.container_id).empty();B.page=0;B.type=null;B.classicView()},unselectAllTabs:function(){var D=document.getElementById("ttab");var G=D.getElementsByTagName("span");var F=D.getElementsByTagName("li");var E="tb"+G[0].id;for(var B=0;B<F.length&&E!=F[B].id;B++){}for(var C=0;C<G.length;C++){tabParent=G[C].parentNode;var A="javascript:Tab.showTabContent('"+G[C].id+"','/"+Tab.username+Tab.links[B]+"')";tabParent.innerHTML='<a href="'+A+'">'+G[C].innerHTML+"</a>"}},selectTab:function(E){var C=document.getElementById("ttab");var B=C.getElementsByTagName("li");var D="tb"+E;for(var A=0;A<B.length;A++){if(B[A].id==D){B[A].innerHTML="<span id='"+E+"'>"+Tab.tabNames[A]+"</span>"}}},loadingTab:function(){this.tabContent.set("html","<div class='loading_tab'> <span class='loading'><em>loading please wait...</em><br /><br /><img src=\"/static/img/loading2.gif\"  style=\"widht:30px; height:30px;\" /></span></div>")},load:function(){this.username=document.getElementById("username1").innerHTML;this.showTabContent("tab1","/"+Tab.username+this.links[0])}};function init(){window.addEvent("scroll",function(){BandDetails.setPosition()});Menu.init();Index.init();Tab.init()}var Index={tooltipEnabled:false,enableLogin:function(){var B=$("login_form");var A=B.get("tween",{duration:500,transition:Fx.Transitions.Quart.easeOut});if(B.style.display=="none"){B.setStyles({opacity:0,display:""});A.start("opacity",1)}else{B.setOpacity(1);A.start("opacity",0).chain(function(){B.setStyle("display","none")})}},hide:function(A){$(A).set("tween",{duration:500,transition:Fx.Transitions.Quart.easeOut}).tween("opacity",0)},checkAlbums:function(){var A=$("albumDescription");if(A){A.setStyle("display","none")}},clearText:function(A){A.value="";A.style.color="#555"},checkText:function(A,B){if(A.value==""){A.style.color="#999";A.value=B}},enableTooltip:function(B){if(!B){var B=window.event}if(B.keyCode&&B.keyCode!=40&&B.keyCode!=38&&B.keyCode!=13){var D=document.getElementById("band_name");var C=new String(D.value);var A=$("bandTooltip");if(C.length>2){this.tooltipEnabled=true;var E=$("band_name").getPosition();$("bandTooltip").setStyles({top:E.y+22+"px",left:E.x+"px",position:"absolute",display:"block",opacity:0.85}).set("html","Loading...");if(globalTooltipTimeouted){clearTimeout(globalTooltipTimeouted)}globalTooltipTimeouted=setTimeout("Index.ajaxTooltip('"+C+"')",500)}else{this.tooltipEnabled=false;A.style.display="none"}}},uncheckAll:function(){var B=document.getElementById("bandTooltip");var A=B.getElementsByTagName("a");for(var C=0;C<A.length;C++){A[C].className="tooltip_link"}},tooltiphover:function(B){this.uncheckAll();B.className="tooltip_hover";var A=document.getElementById("band_name");A.value=B.innerHTML.trim()},keyHandler:function(E){var C=document.getElementById("band_name");if(!E){var E=window.event}if(E.keyCode&&(E.keyCode==40||E.keyCode==38)&&this.tooltipEnabled){var B=document.getElementById("bandTooltip");var A=B.getElementsByTagName("a");var F=false;for(var D=0;D<A.length&&!F;D++){if(A[D].className=="tooltip_hover"){if(E.keyCode==40&&D+1<A.length){A[D].className="tooltip_link";A[D+1].className="tooltip_hover";C.value=(A[D+1].innerHTML).trim();F=true}else{if(E.keyCode==38&&D>0){A[D].className="tooltip_link";A[D-1].className="tooltip_hover";C.value=(A[D-1].innerHTML).trim();F=true}}}}if(!F&&E.keyCode==40&&A.length>0){A[0].className="tooltip_hover";C.value=(A[0].innerHTML).trim()}}},ajaxTooltip:function(A){new Request({method:"get",url:"/"+A+"/tooltip/",link:"cancel",onSuccess:function(B){$("bandTooltip").set("html",B)}}).send()},init:function(){var B=$("search_form"),A=Index;if(B){this.SearchForm.load()}$("topartist").addEvent("mouseenter",function(){A.checkAlbums()})},SearchForm:{load:function(){var B=Index,A=$("band_name");A.addEvents({focus:function(){B.clearText(A)},blur:function(){B.checkText(A,"type a band name to get recommendations");B.hide("bandTooltip")},keyup:function(D){var C=D.event;B.enableTooltip(C);B.keyHandler(C)}})}}};var Artist={load:function(B){$("topartist").set("html",B);Index.SearchForm.load();var A=$("topartist");A.style.display="";$("loading").style.display="none";new Request.JSON({url:"/JSON/topartists/"+Transition.type+"/",onComplete:function(C){var D=Chart;D.response=C;$(D.container_id).empty();D.page=0;D.type="artist";D.totalPlaycounts=C.reduce(function(F,E){return F.playcount*1+E.playcount*1},0);Chart.classicViewTopArtist()}}).get();secRounded("div.#topartist","bl br","#b2b2b2","#fff","smooth")},computeHistogram:function(D){var C=$("topartist");var E=/(.+)_hist/;var F=/_/;var B=C.getElementsByTagName("span");for(var A=0;A<B.length;A++){if(E.test(B[A].id)){idString=new String(B[A].id);idArray=idString.split("_");idArray.pop();idArray=idArray.join("_");Artist.makeHistogramForBand(idArray,D)}}},makeHistogramForBand:function(G,C){var F=Chart.response.filter(function(H){return H.mbid==G});var A=(F[0].playcount/C*100).round();var E=$(G+"_hist");if(E){var D=E.get("tween",{duration:600,transition:Fx.Transitions.linear});E.setStyles({height:12,width:0,opacity:Math.min(A*10,100)/100});var B=Math.min(A*10+15,180);D.start("width",0,B)}}};var Album={load:function(A){Album.showAlbumContainer(A)},showAlbumContainer:function(C){var A=$("topartist");A.set("html",C);Index.SearchForm.load();$("topartist").style.display="";var B=$("loading").get("tween",{duration:300,transition:Fx.Transitions.linear});B.start("opacity",0,1);new Request.JSON({url:"/JSON/topalbums/"+Transition.type+"/",onSuccess:function(E){var G=$("loading").get("tween",{duration:300,transition:Fx.Transitions.linear});G.start("opacity",1,0);var F=Chart;F.response=E;$(F.container_id).empty();F.page=0;F.type="album";F.totalPlaycounts=0;for(var D=0;D<F.response.length;D++){F.totalPlaycounts+=parseInt(F.response[D].playcount)}F.topAlbumDetails()},onFailure:function(){Error.raise(Transition.loadGeneric,[Album.load,Transition.type])}}).get();secRounded("div.#topartist","bl br","#b2b2b2","#fff","smooth")},getIndexTable:function(D){var A=false;for(var C=0;C<globalAlbumMatrix.length&&!A;C++){for(var B=0;B<globalAlbumMatrix[C].length&&!A;B++){if(globalAlbumMatrix[C][B]==D){A=true}}}return[B,C]}};var Song={load:function(A){this.showSongContainer(A)},showSongContainer:function(B){var A=document.getElementById("topartist");A.innerHTML=B;A.style.display="block";Index.SearchForm.load();var C=document.getElementById("loading");C.style.display="none";new Request.JSON({url:"/JSON/topsongs/"+Transition.type+"/",onSuccess:function(E){var F=Chart;F.response=E;$(F.container_id).empty();F.page=0;F.type="track";F.totalPlaycounts=0;for(var D=0;D<F.response.length;D++){F.totalPlaycounts+=parseInt(F.response[D].playcount)}F.classicViewTopAlbum()},onFailure:function(){Error.raise(Transition.loadGeneric,[Song.load,Transition.type])}}).get();secRounded("div.#topartist","bl br","#b2b2b2","#fff","smooth")}};var Recom={musictrailsContainer:null,lastfmContainer:null,isInArray:function(A,B){for(var C=0;C<A.length;++C){if(document.getElementById(A[C]).innerHTML==document.getElementById(B).innerHTML){return true}}return false},bandName:null,recomArtistFromName:function(){this.bandName=($("queried_band_name").innerHTML).trim();$("topartist").style.display="";$("loading").style.display="none";this.musictrailsRecommendation();this.lastfmRecommendation()},musictrailsRecommendation:function(){var A=encodeURI(this.bandName).replace(/ /g,"+");var B="/"+A+"/musictrails_recom/";var C=Recom;new Request({method:"get",url:B,onSuccess:function(D){C.loadDataInto("musictrails_container",D)},onFailure:function(){C.loadError()}}).send()},lastfmRecommendation:function(){var A=encodeURI(this.bandName).replace(/ /g,"+");var B="/"+A+"/lastfm_recom/";var C=Recom;new Request({method:"get",url:B,onSuccess:function(D){C.loadDataInto("last_fm_recom_container",D)},onFailure:function(){C.loadError()}}).send()},loadDataInto:function(B,A){Transition.hideCenter();Recom.showContainer(B,A)},loadError:function(){$(id).set("html","<div class='ajax_problem'>No recommendations available</div>")},showContainer:function(D,C){var B=$(D);B.set("html",C);if(D=="last_fm_recom_container"){this.lastfmContainer=new PaginatedImageContainer("picSlide","lastFmTable","next_page","previous_page");this.lastfmContainer.loadImages();if(!Browser.Engine.trident){this.lastfmContainer.setLoadingTransition()}else{$("loadingCounter").style.display="none";$("loadingPanel").style.display="none";this.lastfmContainer.show();if(!window.ie6){this.lastfmContainer.checkPaginationLinks()}else{$("loadingPanel").style.display="";setTimeout("$('loadingPanel').style.display= 'none'; Recom.lastfmContainer.checkPaginationLinks();",25000)}}ImageInstance=new ImageTooltip()}else{var A=document.getElementById("musictrailsTable").clientHeight;this.musictrailsContainer=new Container("musictrailsSlide","musictrailsTable",A);this.musictrailsContainer.show()}},getIndexOfRecomTable:function(D){var A=false;for(var C=0;C<globalRecomArtistMatrix.length&&!A;C++){for(var B=0;B<globalRecomArtistMatrix[C].length&&!A;B++){if(globalRecomArtistMatrix[C][B]==D){A=true}}}return[B,C]},displayBubble:function(H,E,B){if(!B){B=120}var D=document.getElementById("bubble_info");if(E){var C=document.getElementById("bubble_info_container");var G=$(H).getPosition();var F=document.getElementById(H+"_entireStuff");C.innerHTML=F.innerHTML;D.style.display="block";var A=D.offsetHeight;D.style.top=(G.y-A)+"px";D.style.left=(G.x-B)+"px"}else{D.style.display="none"}},displayDisclaimer:function(C,B,A){if(Browser.Engine.trident||Browser.Engine.presto){if(!A){A=120}this.displayBubble(C,B,A)}}};var BandDetails={top:50,left:150,id:null,relative:null,video_top:70,video_left:650,links_top:350,links_left:650,Video:{loadVideo:function(C,A){this.id=C;this.relative=A;var B;if(!(B=document.getElementById("video_container_saved_videos"))){B=document.getElementById("video_container")}new Request({method:"get",url:"/"+C+"/video/",onSuccess:function(D){var E;if(!(E=$("video_container_saved_videos"))){E=$("video_container")}E.set("html",D)},onFailure:function(){Error.raise(loadVideo,[BandDetails.id,BandDetails.parent])}}).send();if(A){this.setVideo(C+"_a",A)}},setVideo:function(E,D){var A=document.getElementById(D).getElementsByTagName("a");for(var C=0;C<A.length;++C){var B=$(A[C].id);if(E!=A[C].id){A[C].className="";B.setStyles({opacity:0.75,"margin-left":0})}else{A[C].className="video_selected";B.setStyles({opacity:1,"margin-left":0})}}},saveVideo:function(B,C){var E=document.getElementById(C+"_sv");var D;if(E.value=="save selected video"){var A=document.getElementById(C+"_a").innerHTML;D="/"+B+"/"+C+"/"+A+"/save_video/"}else{D="/"+C+"/unsave_video/"}new Request({method:"get",url:D,onSuccess:function(){if(E.value=="save selected video"){E.value="unsave selected video"}else{E.value="save selected video"}}}).send()}},bandDetails:function(F){this.id=F;if(document.getElementById(F)){var C=document.getElementById(F);var D=C.innerHTML}else{var D=F}D=D.trim();var A=document.getElementById("background_fill");var E={x:Window.getScrollLeft(),y:Window.getScrollTop()};$("background_fill").setStyles({left:E.x,top:E.y,width:Window.getWidth(),height:Window.getHeight(),display:"",opacity:0.5});$("loading").setStyles({"z-index":1800,display:""}).set("html","Loading...").set("tween",{duration:300,transition:Fx.Transitions.linear}).tween("opacity",0,1);var B="/"+D+"/youtube/";new Request({method:"get",url:B,onSuccess:function(G){BandDetails.loadBandDetails(G)},onFailure:function(){Error.raise(BandDetails.bandDetails,BandDetails.id)}}).send()},setPosition:function(){var D;var C;var B;var E={x:Window.getScrollLeft(),y:Window.getScrollTop()};$("background_fill").setStyles({left:E.x,top:E.y,width:Window.getWidth(),height:Window.getHeight(),opacity:0.5});var E={x:Window.getScrollLeft(),y:Window.getScrollTop()};var A=$("band_details");var F=A.getCoordinates();if(A!=null){A.setStyles({left:Window.getWidth()/2-F.width/2,top:E.y+40})}},loadVideoList:function(E){var C=$(E+"_videos").getCoordinates();var A=$(E+"_slide");var D=A.getCoordinates();var B=A.get("tween",{duration:500,link:"cancel",transition:Fx.Transitions.Back.easeOut});if(D.height<=1){B.start("height",0,C.height+10)}else{B.start("height",C.height+10,0)}},setLinksBehaviour:function(A){A.each(function(B){var C=B.get("tween",{duration:150,link:"cancel",transition:Fx.Transitions.linear});B.addEvents({mouseenter:function(){C.start("margin-left",-25)},mouseleave:function(){C.start("margin-left",0)}})})},loadBandDetails:function(H){$("loading").set("tween",{duration:300,transition:Fx.Transitions.linear}).tween("opacity",1,0);var E=$("band_details");E.innerHTML=H;E.style.display="";var B={x:Window.getScrollLeft(),y:Window.getScrollTop()};var A=$("band_details");var D=A.getCoordinates();A.setStyles({left:Window.getWidth()/2-D.width/2,top:B.y+40});this.setLinksBehaviour($$("#bandvideos_list a"));var I=E.getCoordinates().height;var G=$("bandvideos_list");var F=G.getElement("a").id;BandDetails.Video.setVideo(F,"bandvideos_list");var C=G.setStyle("width",0).getPosition();G.set("morph",{duration:600,transition:Fx.Transitions.Quart.easeOut}).morph({width:300,left:C.left-300})},loadLinkDetails:function(E){if(E.readyState==4){if(E.status==200){var D=$("bandlinks_list");D.style.display="none";if(D){D.innerHTML=E.responseText;D.style.overflow="hidden";var A=$("bandvideos_list");var F=A.getCoordinates();var C=$("bandlinks_list").setStyles({width:0,display:""});var B=C.effects({duration:600,transition:Fx.Transitions.Quart.easeOut});B.start({width:300,left:F.left-300});BandDetails.Video.setVideo(null,"bandlinks_list")}}else{}}},closeBandDetails:function(){var B=document.getElementById("band_details");var A=document.getElementById("background_fill");B.style.display="none";B.innerHTML="";A.style.display="none"},Save:{band_name:null,saveBand:function(B){this.band_name=B;var D=document.getElementById("saveBand");var A;if(D.innerHTML=="save"){A="/save_band/"}else{A="/unsave_band/"}var C="/"+B+A;new Request({method:"get",url:C,onSuccess:function(){var E=document.getElementById("saveBand");if(E.innerHTML=="save"){E.innerHTML="unsave"}else{E.innerHTML="save"}},onFailure:function(){Error.raise(BandDetails.Save.saveBand,BandDetails.Save.band_name)}}).send()}}};var RecomVideos={busy:false,videoWidth:430,recommendationHeight:350,fontInstance:null,load:function(){$("y_more").addEvent("click",function(A){A=new Event(A);RecomVideos.slideVideosLeft();A.stop()});$("y_less").addEvent("click",function(A){A=new Event(A);RecomVideos.slideVideosRight();A.stop()});this.checkPages();this.checkVideoPages()},slideDown:function(){var B=$("musictrails_slide");var A=B.effects({duration:1200,transition:Fx.Transitions.Quart.easeOut});if(!RecomVideos.busy){var C=B.style.marginTop.toInt()||0;RecomVideos.busy=true;A.start({"margin-top":C-RecomVideos.recommendationHeight}).chain(function(){RecomVideos.checkPages();RecomVideos.busy=false})}},slideUp:function(){var B=$("musictrails_slide");var A=B.effects({duration:1200,transition:Fx.Transitions.Quart.easeOut});if(!RecomVideos.busy){var C=B.style.marginTop.toInt()||0;RecomVideos.busy=true;A.start({"margin-top":C+RecomVideos.recommendationHeight}).chain(function(){RecomVideos.checkPages();RecomVideos.busy=false})}},slideVideosLeft:function(){var B=$("y_slide");var A=B.effects({duration:1200,transition:Fx.Transitions.Quart.easeOut});if(!RecomVideos.busy){var C=B.style.marginLeft.toInt()||0;RecomVideos.busy=true;A.start({"margin-left":C-RecomVideos.videoWidth}).chain(function(){RecomVideos.checkVideoPages();RecomVideos.busy=false})}},slideVideosRight:function(){var B=$("y_slide");var A=B.effects({duration:1200,transition:Fx.Transitions.Quart.easeOut});if(!RecomVideos.busy){var C=B.style.marginLeft.toInt();RecomVideos.busy=true;A.start({"margin-left":C+RecomVideos.videoWidth}).chain(function(){RecomVideos.checkVideoPages();RecomVideos.busy=false})}},checkPages:function(){var C=$("musictrails_slide");var A=C.style.marginTop.toInt()||0;if(A>=0){$("back_videos").style.visibility="hidden"}else{$("back_videos").style.visibility="visible"}var B=$$(".video_item");var D=(1-B.length/5)*RecomVideos.recommendationHeight;if(A<=D){$("more_videos").style.visibility="hidden"}else{$("more_videos").style.visibility="visible"}},checkVideoPages:function(){var E="y";var C=$("y_slide");var A=C.style.marginLeft.toInt()||0;if(A>=0){$(E+"_less").style.visibility="hidden"}else{$(E+"_less").style.visibility="visible"}var B=$$("#"+E+"_slide .Tips1");var D=(1-B.length/5)*RecomVideos.videoWidth;if(A<=D){$(E+"_more").style.visibility="hidden"}else{$(E+"_more").style.visibility="visible"}},loadYoutubeInfo:function(F){if($(F+"_ct").className=="selected_video_item"){return false}var D=$(F+"_phrase").innerHTML.trim();var A=$(F).innerHTML.trim();new Request({method:"get",url:"/youtube_info/"+A+"/",onSuccess:function(){$("youtube_band_info").set("html",req.responseText);$("y_more").addEvent("click",function(G){G=new Event(G);RecomVideos.slideVideosLeft();G.stop()});$("y_less").addEvent("click",function(G){G=new Event(G);RecomVideos.slideVideosRight();G.stop()});RecomVideos.checkVideoPages()}}).send();$$(".selected_video_item").each(function(H){var G=$(H).effects({duration:600,wait:false,transition:Fx.Transitions.Quart.easeOut});G.start({"background-color":"#ffffff",color:"#555555"}).chain(function(){H.setStyle("background-color","");H.setStyle("color","");H.removeClass("selected_video_item");H.addClass("video_item")})});var E;if(this.fontInstance==null){this.fontInstance=new FontEffect("band_title")}var C={left:[0,-35],opacity:[1,0]};this.fontInstance.setStyle("position","relative").tweenToStyles(C,100,{duration:300,Transition:Fx.Transitions.Quart.easeOut});(function(){$("band_title").setStyle("visibility","hidden").set("html",A);RecomVideos.fontInstance=new FontEffect("band_title");RecomVideos.fontInstance.setStyle("position","relative").setStyle("opacity",0);var G={left:[-35,0],opacity:[0,1]};RecomVideos.fontInstance.tweenToStyles(G,100,{duration:300,Transition:Fx.Transitions.Quart.easeOut});$("band_title").setStyle("visibility","visible")}).delay(2500);var B=$(F+"_ct").effects({duration:600,wait:false,transition:Fx.Transitions.Quart.easeOut});B.start({"background-color":["#e0ecff","#333333"],color:"#ffffff"});$(F+"_ct").className="selected_video_item"},setVideoTitle:function(B){var A=$(B+"_img").title;$("video_title").innerHTML=A},setTitle:function(){}};function NiftyCheck(){if(!document.getElementById||!document.createElement){return(false)}isXHTML=/html\:/.test(document.getElementsByTagName("body")[0].nodeName);if(Array.prototype.push==null){Array.prototype.push=function(){this[this.length]=arguments[0];return(this.length)}}return(true)}function Rounded(G,O,C,I,B){var K,F,A,N="r",H="",J=false,E="",M=false,Q=false;if(I=="transparent"){N=N+"x";H=C;C="transparent"}else{if(B&&B.indexOf("border")>=0){var L=B.split(" ");for(K=0;K<L.length;K++){if(L[K].indexOf("#")>=0){H=L[K]}}if(H==""){H="#666"}N+="e";J=true}else{if(B&&B.indexOf("smooth")>=0){N+="a";H=Mix(C,I)}}}if(B&&B.indexOf("small")>=0){N+="s"}F=N;A=N;if(O.indexOf("all")>=0){Q=true;M=true}else{if(O.indexOf("top")>=0){Q="true"}else{if(O.indexOf("tl")>=0){Q="true";if(O.indexOf("tr")<0){F+="l"}}else{if(O.indexOf("tr")>=0){Q="true";F+="r"}}}}if(O.indexOf("bottom")>=0){M=true}else{if(O.indexOf("bl")>=0){M="true";if(O.indexOf("br")<0){A+="l"}}else{if(O.indexOf("br")>=0){M="true";A+="r"}}}var P=getElementsBySelector(G);var D=P.length;for(K=0;K<D;K++){if(J){AddBorder(P[K],H)}if(Q){AddTop(P[K],C,I,H,F)}if(M){AddBottom(P[K],C,I,H,A)}}}function AddBorder(C,D){var B;if(!C.passed){if(C.childNodes.length==1&&C.childNodes[0].nodeType==3){var A=C.firstChild.nodeValue;C.removeChild(C.lastChild);var E=CreateEl("span");E.style.display="block";E.appendChild(document.createTextNode(A));C.appendChild(E)}for(B=0;B<C.childNodes.length;B++){if(C.childNodes[B].nodeType==1){C.childNodes[B].style.borderLeft="1px solid "+D;C.childNodes[B].style.borderRight="1px solid "+D}}}C.passed=true}function AddTop(A,C,D,F,I){var E,B=4,G=CreateEl("b");if(I.indexOf("s")>=0){B=2}if(F){G.className="artop"}else{G.className="rtop"}G.style.backgroundColor=C;for(E=1;E<=B;E++){var H=CreateEl("b");H.className=I+E;H.style.backgroundColor=D;if(F){H.style.borderColor=F}G.appendChild(H)}A.style.paddingTop=0;A.insertBefore(G,A.firstChild)}function AddBottom(A,C,D,F,I){var E,B=4,G=CreateEl("b");if(I.indexOf("s")>=0){B=2}if(F){G.className="artop"}else{G.className="rtop"}G.style.backgroundColor=C;for(E=B;E>0;E--){var H=CreateEl("b");H.className=I+E;H.style.backgroundColor=D;if(F){H.style.borderColor=F}G.appendChild(H)}A.style.paddingBottom=0;A.appendChild(G)}function CreateEl(A){if(isXHTML){return(document.createElementNS("http://www.w3.org/1999/xhtml",A))}else{return(document.createElement(A))}}function getElementsBySelector(B){var C,A="",F="",J=B,E,I=[],G=[];if(B.indexOf(" ")>0){I=B.split(" ");var D=I[0].split("#");if(D.length==1){return(G)}E=document.getElementById(D[1]);if(E){return(E.getElementsByTagName(I[1]))}return(G)}if(B.indexOf("#")>0){I=B.split("#");J=I[0];A=I[1]}if(A!=""){E=document.getElementById(A);if(E){G.push(E)}return(G)}if(B.indexOf(".")>0){I=B.split(".");J=I[0];F=I[1]}var H=document.getElementsByTagName(J);if(F==""){return(H)}for(C=0;C<H.length;C++){if(H[C].className.indexOf(F)>=0){G.push(H[C])}}return(G)}function Mix(F,E){var D,C,B,A,H,G=new Array(3);if(F.length==4){C=1}else{C=2}if(E.length==4){B=1}else{B=2}for(D=0;D<3;D++){A=parseInt(F.substr(1+C*D,C),16);if(C==1){A=16*A+A}H=parseInt(E.substr(1+B*D,B),16);if(B==1){H=16*H+H}G[D]=Math.floor((A*50+H*50)/100)}return("#"+G[0].toString(16)+G[1].toString(16)+G[2].toString(16))}var checkvalue=1;function CheckUncheckAll(){count=document.frm.elements.length;for(i=10;i<count;i++){document.frm.elements[i].checked=checkvalue}if(checkvalue==0){checkvalue=1}else{checkvalue=0}}function secRounded(B,E,A,C,D){if(!NiftyCheck()){return}Rounded(B,E,A,C,D)};