var Blip={context:{},events:{},control:null,_searchUrl:"/ajax/search",_checkUrl:"/ajax/check",_submitUrl:"/ajax/submit",_favoriteUrl:"/ajax/fav",_propsUrl:"/ajax/giveProps",_deleteUrl:"/ajax/delete",_updateSettingsUrl:"/ajax/updateSettings",_pingUrl:"/ajax/ping",_nowPlayingUrl:"/ajax/nowPlaying",_recordListenUrl:"/ajax/recordListen",_infoUrl:"/ajax/info",_recsUrl:"/ajax/getRecommendations",_loadMoreBlipsUrl:"/ajax/loadMoreBlips",_clearAdInfoUrl:"/ajax/clearAdInfo",_getFavoriteDJsUrl:"/ajax/getFavoriteDJs",_requests:new Array(),_pinging:false,_pingInterval:null,_pingResults:new Array(),_pingResultsTimeout:null,_playing:null,_checking:null,_saveVolumeTimeout:null,_messageMax:150,_searchOffset:0,_searchLimit:50,_nextPageToLoad:2,_numNewBlips:0,_swfUrl:"/_/swf/BlipPlayer.swf",_swfContainerId:"blipPlayerContainer",_init:false,init:function(B){this.context=B||this.context||{};this.events.startPing=new YAHOO.util.CustomEvent("startPing",this);this.events.stopPing=new YAHOO.util.CustomEvent("stopPing",this);this.events.ping=new YAHOO.util.CustomEvent("ping",this);this.events.loadMoreBlipsComplete=new YAHOO.util.CustomEvent("loadMoreBlipsComplete",this);this.events.showSearchResults=new YAHOO.util.CustomEvent("showSearchResults",this);this.events.select=new YAHOO.util.CustomEvent("select",this);this.events.cancelSelection=new YAHOO.util.CustomEvent("cancelSelection",this);this.control=new BlipControl(this.context.options);this.control.events.init.subscribe(BlipUI.showControls);this.control.events.beforeShutdown.subscribe(this.clearAdInfo,this,true);this.control.events.add.subscribe(BlipUI.addBlip);this.control.events.create.subscribe(BlipUI.injectBlip,BlipUI,true);this.control.events.beforeRemove.subscribe(BlipUI.beforeRemoveBlip,BlipUI,true);this.control.events.remove.subscribe(BlipUI.removeBlip);this.control.events.play.subscribe(BlipUI.highlightBlip,BlipUI,true);this.control.events.pause.subscribe(BlipUI.pauseBlip);this.control.events.resume.subscribe(BlipUI.playBlip);this.control.events.stop.subscribe(BlipUI.stopBlip);this.control.events.playing.subscribe(BlipUI.playBlip);this.control.events.prev.subscribe(BlipUI.nextBlip);this.control.events.prev.subscribe(BlipUI.checkPageAdvance,BlipUI,true);this.control.events.next.subscribe(BlipUI.nextBlip);this.control.events.next.subscribe(BlipUI.checkPageAdvance,BlipUI,true);this.control.events.mediaFilterSkip.subscribe(BlipUI.checkPageAdvance,BlipUI,true);this.control.events.markAsFiltered.subscribe(BlipUI.markBlipAsFiltered,BlipUI,true);this.control.events.trackListen.subscribe(BlipUI.trackListen);this.control.events.buffering.subscribe(BlipUI.updateBlipStatus);this.control.events.doneBuffering.subscribe(BlipUI.updateBlipStatus);this.control.events.playTime.subscribe(BlipUI.updateBlipStatus);this.control.events.available.subscribe(BlipUI.available);this.control.events.error.subscribe(BlipUI.ioError);this.control.events.songUrlReplace.subscribe(this.songUrlReplace,this,true);this.control.events.previewError.subscribe(this.doIOError,this,true);this.control.events.previewStop.subscribe(this.doStopped,this,true);this.control.events.playing.subscribe(this.doNowPlaying,this,true);this.control.events.trackListen.subscribe(this.doRecordListen,this,true);this.control.events.volume.subscribe(this.saveVolume,this,true);this.control.registerMediaHandler(new BlipSongHandler("blipPlayer","/_/swf/BlipPlayer.swf"));this.control.registerMediaHandler(new ImeemSongHandler("imeemPlayer","de894e74-9dc3-4789-b608-0cc58cdc52c6"));if(!B.wrapper||B.wrapper=="chrome"){var A={width:320,height:270,show:function(){if(!this.anim.show){this.anim.show=new YAHOO.util.Anim(this.playerId+"Backdrop",{opacity:{to:1}},0.5,YAHOO.util.Easing.easeOut)}if(this.anim.hide&&this.anim.hide.isAnimated()){this.anim.hide.stop(false)}$D.setStyle("slot300x250","display","none");$D.setStyle(this.playerId+"Backdrop","top","0");this.anim.show.animate()},hide:function(){if(!this.anim.hide){this.anim.hide=new YAHOO.util.Anim(this.playerId+"Backdrop",{opacity:{to:0}},0.4,YAHOO.util.Easing.easeOut);this.anim.hide.onComplete.subscribe(function(){$D.setStyle(this.playerId+"Backdrop","top","-750px")},this,true)}if(this.anim.show&&this.anim.show.isAnimated()){this.anim.show.stop(false)}$D.setStyle("slot300x250","display","block");this.anim.hide.animate()}};var C=new YouTubeVideoHandler("youtubePlayer",A);C.events.init.subscribe(function(){$D.setStyle(C.playerId+"Backdrop","top","-750px");$D.setStyle(C.playerId+"Backdrop","opacity","0")});this.control.registerMediaHandler(C)}else{if(B.wrapper=="playlist"){var A={width:160,height:120,show:function(){if(!this.anim.show){this.anim.show=new YAHOO.util.Anim(this.playerId+"Backdrop",{bottom:{to:0}},0.5,YAHOO.util.Easing.easeOut)}if(this.anim.hide&&this.anim.hide.isAnimated()){this.anim.hide.stop(false)}this.anim.show.animate()},hide:function(){if(!this.anim.hide){this.anim.hide=new YAHOO.util.Anim(this.playerId+"Backdrop",{bottom:{to:-120}},0.4,YAHOO.util.Easing.easeOut)}if(this.anim.show&&this.anim.show.isAnimated()){this.anim.show.stop(false)}this.anim.hide.animate()}};var C=new YouTubeVideoHandler("youtubePlayer",A);C.events.init.subscribe(function(){$D.setStyle(C.playerId+"Backdrop","bottom","-120px");$D.setStyle(C.playerId+"Backdrop","opacity","1")});this.control.registerMediaHandler(C)}}this.control.init();if(!this._requests.checks){this._requests.checks=new Array()}this.keylisteners={};this.keylisteners.shortcuts=new YAHOO.util.KeyListener(document,{keys:[80]},{fn:this.doKeyPress,scope:this,correctScope:true});this.keylisteners.shortcuts.enable();this._playJustBlipped=true;this._forcePlay=false;$E.on($("mp3SearchForm"),"submit",this.doSearch,$("mp3SearchForm"));$E.on($("submitBtn"),"click",function(D,E){if(D.shiftKey){Blip._forcePlay=true}});this._init=true},setContext:function(A){if(!this._init){this.init(A)}else{this.context=A}this._nextPageToLoad=A.page+1;if(A.pageBlips){this.control.load(A.pageBlips)}BlipUI.init();if(A.options.volume){this.control.setVolume(A.options.volume)}if(this.context.options.autoscroll){this.control.events.prev.subscribe(BlipUI.scroll2Blip);this.control.events.next.subscribe(BlipUI.scroll2Blip)}else{this.control.events.prev.unsubscribe(BlipUI.scroll2Blip);this.control.events.next.unsubscribe(BlipUI.scroll2Blip)}if(A.autosearch&&$("search")&&$("search").value){this.search($("search").value)}else{if(A.reblip){this.doSelect("reblip",A.reblip)}else{if($("search")){if(!YAHOO.util.Dom.hasClass($("search"),"inviteLanding")){$("search").focus()}}}}if(A.autoplay){this.control.events.mediaHandlersReady.subscribe(function(){this.control.play()},this,true)}this.context.options.ping?this.startPing():this.stopPing()},parseSearchResults:function(J,D){var D=D||false;if(!D){var A=document.createElement("TBODY");A.id="resultsContainer";var C=document.createTextNode("Get more results...");var K=document.createElement("A");$D.addClass(K,"more");$E.on(K,"click",function(){Blip.search($("mp3SearchForm").q.value,true)});var M=document.createElement("TD");var G=document.createElement("TR");var H=document.createElement("TBODY");H.id="moreResultsContainer";K.appendChild(C);M.appendChild(K);G.appendChild(document.createElement("TD"));G.appendChild(M);G.appendChild(document.createElement("TD"));H.appendChild(G);var N=document.createElement("TABLE");N.id="searchResultsTable";N.appendChild(A);N.appendChild(H);$D.addClass(N,"list");$("searchResults").innerHTML="";$("searchResults").appendChild(N);this.events.showSearchResults.fire()}var E=0;if(J&&J.length){for(var L=0;L<J.length;L++){var P=J[L];try{if(!P.location){continue}if(!P.title){var Q=P.location.split("/");if(Q.length){var R=decodeURIComponent(Q.pop());P.title=R.replace(/\.mp3$/,"")}}if(this.insert(P)){E++}}catch(O){console.log("Bad URI",P.location)}}}else{$D.setStyle("moreResultsContainer","display","none")}if(!E&&!D){var I="No songs found.";var B=document.createElement("TR");var F=document.createElement("TD");$D.addClass(F,"noresults");F.appendChild(document.createTextNode(I));B.appendChild(F);A.appendChild(B)}},searchCallback:{success:function(E){if(E.responseText){var B=YAHOO.lang.JSON.parse(E.responseText);var A=B.more||false;Blip.parseSearchResults(B.data,A);if(!A){$D.setStyle($("searchResults"),"display","block");$("searchResults").scrollTop=0}var C="155";var D=$D.getRegion($("searchResults").firstChild);if(D&&((D.bottom-D.top)<C)){C=(D.bottom-D.top)}$D.setStyle($("searchResults"),"height",C+"px")}},failure:function(A){$D.setStyle($("searchResults"),"display","none")}},searchReplaceCallback:{success:function(C){if(C.responseText){var A=YAHOO.lang.JSON.parse(C.responseText);var B=Blip.control._nodesById[A.id];if(A.url){B.data.type="imeemSong";B.data.url=A.url;Blip.control.play(A.id)}else{if(A.data&&A.data.length){console.log(A.data)}else{Blip.control.events.error.fire("IO Error",B);if(Blip.control._currentNode&&Blip.control._currentNode.data.id==A.id){Blip.control.next()}}}}},failure:function(A){}},search:function(C,B){console.log("Search");var B=B||false;if(!B){if($D.inDocument("help")){}if($D.inDocument("userErrors")){$D.setStyle($("userErrors"),"display","none")}if(this._requests.search&&YAHOO.util.Connect.isCallInProgress(this._requests.search)){YAHOO.util.Connect.abort(this._requests.search)}for(var A=0;A<this._requests.checks.length;A++){YAHOO.util.Connect.abort(this._requests.checks[A])}this._requests.checks=new Array();this._searchOffset=0;this.stop();$D.setStyle($("searchResults"),"display","none");this._requests.search=YAHOO.util.Connect.asyncRequest("POST","/ajax/search",this.searchCallback,"q="+encodeURIComponent(C)+"&limit="+this._searchLimit)}else{if(this._requests.search&&!YAHOO.util.Connect.isCallInProgress(this._requests.search)){this._searchOffset+=this._searchLimit;this._requests.search=YAHOO.util.Connect.asyncRequest("POST","/ajax/search",this.searchCallback,"q="+encodeURIComponent(C)+"&limit="+this._searchLimit+"&offset="+this._searchOffset)}}ga("/stats/search/"+C)},resultCheckCallback:{success:function(B,C){if(B.getAllResponseHeaders){var A=YAHOO.lang.JSON.parse(B.getResponseHeader["X-Fuzz-Return"]);if(A){Blip.insert(B.argument)}else{}}},failure:function(A){}},check:function(C){var A=C.location;var B=C.blipType;this._requests.checks[this._requests.checks.length]=YAHOO.util.Connect.asyncRequest("HEAD",this._checkUrl+"?url="+A+"&type="+B,{success:this.resultCheckCallback.success,failure:this.resultCheckCallback.failure,argument:C,timeout:30000})},insert:function(K){var B=$("resultsContainer");var N=B.childNodes.length;var P=K;var C=document.createElement("TR");C.id="preview"+N;var R=(typeof P.title==="string")?P.title:"";var D=(typeof P.artist==="string")?P.artist:"";var A=(typeof P.duration==="number")?P.duration:"";var L=(typeof P.blipType==="string")?P.blipType:"songUrl";var G=((D)?D+" - ":"")+R;if(!R||!P.location){return false}var F=document.createElement("TD");$D.addClass(F,"songTitle");var Q=document.createElement("A");Q.title=G;Q.appendChild(document.createTextNode(G));F.appendChild(Q);if(P.blipType=="youtubeVideo"){var H=document.createElement("IMG");H.src="/_/images/blip/video.png";H.alt="video";H.height="18";H.width="17";F.appendChild(H)}var O=document.createElement("TD");var J=document.createElement("A");$D.addClass(J,"blipit");J.appendChild(document.createTextNode("Blip"));O.appendChild(J);var I=document.createElement("TD");var E=document.createElement("A");var M=document.createElement("span");M.id="preview"+N;$D.addClass(M,"preview");E.appendChild(document.createTextNode("preview"));M.appendChild(E);I.appendChild(M);C.appendChild(O);C.appendChild(F);C.appendChild(I);B.appendChild(C);$E.on(Q,"click",Blip.doSelect,P,this,true);$E.on(J,"click",Blip.doSelect,P,this,true);$E.on(E,"click",Blip.doPlay,{id:N,item:P,elm:M},this);return true},play:function(C){console.log("Preview play");if(this._playing){this.stop()}this._playing=C;var B=C.item;var D=C.elm;YAHOO.com.fuzz.util.removeAllChildren(D);var A=document.createElement("a");A.appendChild(document.createTextNode("stop"));$D.addClass(A,"playing");D.appendChild(A);$E.on(A,"click",Blip.doStop,{item:B,elm:D},this);this.control.preview(C.item.location,C.item.blipType);ga("/stats/preview/start/"+C.item.location)},stop:function(){console.log("Preview stop");if(this._playing){this.control.previewStop()}},disable:function(F){var E=$("preview"+F.id);var B=$D.getElementsBy(function(G){return true},"A",E);for(var C=0;C<B.length;C++){var D=B[C].parentNode;var A=B[C].firstChild;YAHOO.com.fuzz.util.removeAllChildren(B[C].parentNode);D.appendChild(A)}$D.addClass(E,"error")},recsCallback:{success:function(E){if(E.responseText){var I=YAHOO.lang.JSON.parse(E.responseText);var C=null;if(I.recommendedProducts){if($D.inDocument("recommendedUsers")){C=I.recommendedProducts.pop();if(!C){return }var O=document.createElement("div");$D.addClass(O,"clearfix");$E.on(O,"click",function(){window.open(C.itemLinkUrl,"iTunes")});var A=document.createElement("div");$D.addClass(A,"heading");A.appendChild(document.createTextNode("Download the full album from iTunes:"));var L=document.createElement("a");L.href=C.itemLinkUrl;L.target="iTunes";var P=document.createElement("div");$D.addClass(P,"pic");var G=document.createElement("img");G.src=C.artworkUrl100;G.alt=C.artistDisplayName+" - "+C.itemName;L.appendChild(G);P.appendChild(L);var K=document.createElement("div");var F=document.createElement("div");$D.addClass(F,"title");F.appendChild(document.createTextNode(C.itemName));var H=document.createElement("div");$D.addClass(H,"subtitle");H.appendChild(document.createTextNode(C.artistDisplayName));var M=document.createElement("div");$D.addClass(M,"extra");M.appendChild(document.createTextNode("Genre: "+C.primaryGenreName));K.appendChild(F);K.appendChild(H);K.appendChild(M);O.appendChild(A);O.appendChild(P);O.appendChild(K);var J=document.createElement("div");var D=document.createElement("span");$D.addClass(D,"price");D.appendChild(document.createTextNode("$"+parseFloat(C.itemPrice).toFixed(2)+" "));var B=document.createElement("a");B.title="Buy '"+C.itemName+"' on iTunes";B.href=C.itemLinkUrl;B.target="iTunes";var N=document.createElement("img");N.src="http://ax.itunes.apple.com/images/badgeitunes61x15dark.gif";N.alt=C.itemName;N.align="absmiddle";B.appendChild(N);J.appendChild(D);J.appendChild(B);O.appendChild(J);YAHOO.com.fuzz.util.removeAllChildren($("recommendedUsers"));$("recommendedUsers").appendChild(O);$D.setStyle($("help"),"display","block");ga("/stats/recommendProduct/display")}}if(!C&&I.recommendedUsers){if($D.inDocument("recommendedUsers")){$("recommendedUsers").innerHTML=I.recommendedUsers;$D.setStyle($("help"),"display","block");ga("/stats/recommendUsers/display")}}}},failure:function(A){}},parseSubmitResults:function(A){this._pingResults.unshift(A.blip);if((BlipUI._page==1)||Blip._playJustBlipped){BlipUI.scrollToNewBlips();if(Blip._playJustBlipped){if(this._playing){this.control.inheritPreview(A.blip.id);this._playing=null}else{this.control.play(A.blip.id)}}}else{BlipUI.updateNewBlipsCounter(this._pingResults.length)}Blip._playJustBlipped=true},submitCallback:{success:function(C){if(C.responseText){var B=YAHOO.lang.JSON.parse(C.responseText);if(B.forceReload){window.location=window.location.href.replace(window.location.search,"")+"?p=1"}else{if(!Blip._requests.recs||!YAHOO.util.Connect.isCallInProgress(Blip._requests.recs)){var A=Blip._recsUrl+"?artist="+encodeURIComponent(B.blip.artist)+"&title="+encodeURIComponent(B.blip.title);Blip._requests.recs=YAHOO.util.Connect.asyncRequest("GET",A,Blip.recsCallback)}Blip.parseSubmitResults(B);Blip.reset()}}else{$("submitBtn").disabled=false;$D.addClass($("submitBtn"),"blip");$D.removeClass($("submitBtn"),"blipDisabled")}},failure:function(A){console.log("Submit failed");$("submitBtn").disabled=false;$D.addClass($("submitBtn"),"blip");$D.removeClass($("submitBtn"),"blipDisabled");YAHOO.com.fuzz.notice.addNotice("alert","Failed to submit blip, please try again.")}},submit:function(A){if(!this.checkForm(A)){return false}if("undefined"!=typeof (checkUser)&&!checkUser(function(){var B=document.createElement("input");B.type="hidden";B.name="forceReload";B.value=true;A.appendChild(B);Blip.submit(A)})){return false}if(!this._requests.submit||!YAHOO.util.Connect.isCallInProgress(this._requests.submit)){$("submitBtn").disabled=true;$D.removeClass($("submitBtn"),"blip");$D.addClass($("submitBtn"),"blipDisabled");if(this.control._currentNode&&!this.control._preview&&!this._forcePlay){this._playJustBlipped=false}else{this._forcePlay=false}YAHOO.util.Connect.setForm(A);this._requests.submit=YAHOO.util.Connect.asyncRequest("POST","/ajax/submit",this.submitCallback)}},checkForm:function(A){if(!(A.url.value&&A.title.value)){$("submitBtn").disabled=true;$D.removeClass($("submitBtn"),"blip");$D.addClass($("submitBtn"),"blipDisabled");return false}if(this._messageMax<A.message.value.length){$("submitBtn").disabled=true;$D.removeClass($("submitBtn"),"blip");$D.addClass($("submitBtn"),"blipDisabled");return false}$("submitBtn").disabled=false;$D.addClass($("submitBtn"),"blip");$D.removeClass($("submitBtn"),"blipDisabled");return true},reblipCallback:{success:function(B){if(B.responseText){var A=YAHOO.lang.JSON.parse(B.responseText);if(A.result){Blip.context.reblip=A.reblip;Blip.doSelect("reblip",A.reblip)}else{if(A.errorMsg){YAHOO.com.fuzz.formErrors[0].addMessage(A.errorMsg)}}}},failure:function(A){YAHOO.com.fuzz.notice.addNotice("Notice","Oops, we had trouble contacting the server. Please try again.")}},reblip:function(H){if(!H){return false}if($D.inDocument($("feedme"))){var E;if(E=Blip.control.get(H)){if((typeof E.artist!="undefined")&&(typeof E.message!="undefined")&&(typeof E.owner!="undefined")){var C=((E.artist)?E.artist+" - ":"")+E.title;var J=E.message?E.message.replace(/\[reply\]([^\[]+)\[\/reply\]/ig,"@$1"):"";var A=E.owner.urlName}else{var K=document.createElement("div");K.innerHTML=E.html;var G=$D.getFirstChild(K);var I=$D.getElementsBy(function(L){return L.id=="tweem"+E.id+"headline"},"span",G);var C=I[0].innerHTML;var D=$D.getElementsBy(function(L){return L.id=="tweem"+E.id+"message"},"span",G);var J=D[0].innerHTML.replace(/<([^>])*>/ig,"");var F=$D.getElementsBy(function(L){return L.id=="tweem"+E.id+"owner"},"a",G);var A=F[0].innerHTML}var B={reblipId:E.id,title:C,message:(J?"@"+A+': "'+J+'"':"")};Blip.context.reblip=B;Blip.doSelect("reblip",B)}else{YAHOO.util.Connect.asyncRequest("GET","/ajax/reblip?reblipId="+H,this.reblipCallback)}}else{window.location=((this.context&&this.context.userId)?"/home":"/all")+"?reblipId="+H}},favoriteCallback:{success:function(C){var B=(Blip.control&&Blip.control._currentNode)?Blip.control._currentNode.data:null;if(C.responseText){var A=YAHOO.lang.JSON.parse(C.responseText);if(A&&A.result){if(Blip.control&&Blip.control._nodesById[A.data.id]){Blip.control._nodesById[A.data.id].data.isFavorite=(A.following)?true:false}if(A.following){$D.addClass("tweem"+A.data.id+"actionsmenu","favorite");if(B&&(B.id==A.data.id)){$D.addClass("npfavorite","favorite");$E.purgeElement("npfav");$E.on("npfav","click",function(){Blip.fav(B.id,true)})}}else{$D.removeClass("tweem"+A.data.id+"actionsmenu","favorite");if(Blip.context.playlistType=="favorite"){Blip.control.remove(A.data.id)}if(B&&(B.id==A.data.id)){$D.removeClass("npfavorite","favorite");$E.purgeElement("npfav");$E.on("npfav","click",function(){Blip.fav(B.id)})}}}}},failure:function(A){YAHOO.com.fuzz.notice.addNotice("Notice","Oops, we had trouble contacting the server. Please try again.")}},fav:function(C,A){console.log("Favorite");var B=!A;if(!this._requests.favorite||!YAHOO.util.Connect.isCallInProgress(this._requests.favorite)){this._requests.favorite=YAHOO.util.Connect.asyncRequest("POST",this._favoriteUrl,this.favoriteCallback,"follow="+B+"&b="+C)}},favoriteUserCallback:{success:function(D){if(D.responseText){var B=YAHOO.lang.JSON.parse(D.responseText);if(B&&B.result){var C=$D.getElementsBy(function(E){return(E.getAttribute("owner")==B.data.urlName&&$D.hasClass(E,"quickFav"))?true:false},"DIV");if(C&&B.following){for(var A=0;A<C.length;A++){C[A].innerHTML='<a class="unfav clickable" title="Remove '+B.data.urlName+' from your favorites" onclick="Blip.favUser(\''+B.data.urlName+"', true)\">Unfav</a>"}}else{for(var A=0;A<C.length;A++){C[A].innerHTML='<a class="fav clickable" title="Add '+B.data.urlName+' to your favorites" onclick="Blip.favUser(\''+B.data.urlName+"')\">Add DJ</a>"}}}}},failure:function(A){YAHOO.com.fuzz.notice.addNotice("Notice","Oops, we had trouble contacting the server. Please try again.")}},favUser:function(C,A){console.log("Favorite User");var B=!A;if(!this._requests.favoriteUser||!YAHOO.util.Connect.isCallInProgress(this._requests.favoriteUser)){this._requests.favoriteUser=YAHOO.util.Connect.asyncRequest("POST",this._favoriteUrl,this.favoriteUserCallback,"follow="+B+"&u="+C)}},givePropsCallback:{success:function(F){if(F.responseText){var B=YAHOO.lang.JSON.parse(F.responseText);if(B&&B.result){var G=B.data.to;var C=B.data.count;var D=B.data.left;var A=/(\d+)(\d{3})/;while(A.test(D)){D=D.replace(A,"$1,$2")}if($("propsCount"+G)){$("propsCount"+G).innerHTML=C}if($("propsLeft")){$("propsLeft").innerHTML='<a href="http://blog.blip.fm/faq/#props" target="faq">'+D+"</a>"}var E="You gave props to "+G+".";D?E+=" You still have "+D+" credits.":E+=" You're fresh out of credits. Blip more to get more.";YAHOO.com.fuzz.notice.addNotice("alert",E)}}},failure:function(A){YAHOO.com.fuzz.notice.addNotice("alert","Oops, an error occured when trying to give props.")}},giveProps:function(B,A){console.log("Give Props");var A=A||null;ga("/stats/props/"+B+"/"+(A?A:"noBlipId"));if(!this._requests.giveProps||!YAHOO.util.Connect.isCallInProgress(this._requests.giveProps)){this._requests.giveProps=YAHOO.util.Connect.asyncRequest("POST",this._propsUrl,this.givePropsCallback,"to="+B+(A?"&blipId="+A:""))}},deleteCallback:{success:function(B){if(B.responseText){var A=YAHOO.lang.JSON.parse(B.responseText);if(A.result){Blip.control.remove(A.data.id)}}},failure:function(A){YAHOO.com.fuzz.notice.addNotice("Notice","Oops, we had trouble contacting the server. Please try again.")}},axe:function(A){console.log("Delete");if(!this._requests["delete"]||!YAHOO.util.Connect.isCallInProgress(this._requests["delete"])){this._requests["delete"]=YAHOO.util.Connect.asyncRequest("POST",this._deleteUrl,this.deleteCallback,"id="+A)}},cancelSelection:function(){if(this.context.reblip){this.context.reblip=false;Blip.reset()}else{$("blipForm").url.value="";$("blipForm").artist.value="";$("blipForm").title.value="";$("blipForm").message.value="";$D.setStyle($("messageDiv"),"display","none");$D.setStyle($("searchDiv"),"display","block");$D.setStyle($("searchResults"),"display","block");$("charCount").innerHTML=this._messageMax}this.events.cancelSelection.fire()},reset:function(){$("blipForm").url.value="";$("blipForm").artist.value="";$("blipForm").title.value="";$("blipForm").message.value="";$("blipForm").reblipId.value="";$("submitBtn").disabled=false;$D.removeClass($("submitBtn"),"blipDisabled");$D.addClass($("submitBtn"),"blip");$("searchResults").innerHTML="";$("search").value=$("search").getAttribute("default");$D.addClass($("search"),"default");$D.setStyle($("searchResults"),"display","none");$D.setStyle($("messageDiv"),"display","none");$D.setStyle($("searchDiv"),"display","block");$("charCount").innerHTML=this._messageMax},startPing:function(A){console.log("Start Ping");var A=A||(this.context.options.ping*1000)||0;if(A){if(this._pingInterval){clearInterval(this._pingInterval)}this._pingInterval=setInterval("Blip.ping()",A);this._pinging=true;if(this._pingResults){this.parsePingResults()}this.events.startPing.fire()}else{this.stopPing()}},stopPing:function(){console.log("Stop Ping");clearInterval(this._pingInterval);this._pingInterval=null;this._pinging=false;this.events.stopPing.fire()},ping:function(){console.log("Ping");if(!this.context.options.ping||((this._pingResults.length*this.context.options.pingResultsDelay)>(this.context.options.ping*1000))){return }if(!this._requests.ping||!YAHOO.util.Connect.isCallInProgress(this._requests.ping)){var B=this.context.timestamp;var A=(this.context.playlistType=="public")?1:0;this._requests.ping=YAHOO.util.Connect.asyncRequest("POST",this._pingUrl,this.pingCallback,"t="+B+"&all="+A)}this.events.ping.fire();ga(this._pingUrl)},pingCallback:{success:function(C){if(C.responseText){var A=YAHOO.lang.JSON.parse(C.responseText);Blip.context.timestamp=A.ts;if(A.data.length){var B=A.data;Blip._pingResults=B.concat(Blip._pingResults);Blip.parsePingResults()}}},failure:function(A){console.log("Ping failure",A)}},parsePingResults:function(){var C=this._pingResults||new Array();var A=this.context.options.pingResultsDelay||5000;if(!C.length){return }if(BlipUI._page==1&&this._pinging){var B=this._pingResults.pop();this.control.create(B);BlipUI._initialBlip=this.control._nodesById[B.id];if(this._pingResultsTimeout){clearTimeout(this._pingResultsTimeout)}this._pingResultsTimeout=setTimeout("Blip.parsePingResults()",A)}BlipUI.updateNewBlipsCounter(C.length)},addNewBlips:function(){var B=null;var A=0;while(B=this._pingResults.pop()){this.control.add(B);A++}BlipUI.updateNewBlipsCounter(0);return A},doNowPlaying:function(A,B){console.log("Set Now Playing");var C=B[0].id;if((!this._requests.nowPlaying||!YAHOO.util.Connect.isCallInProgress(this._requests.nowPlaying))){this._requests.nowPlaying=YAHOO.util.Connect.asyncRequest("POST",this._nowPlayingUrl,this.nowPlayingCallback,"blipId="+C)}},nowPlayingCallback:{success:function(B){if(B.responseText){var A=YAHOO.lang.JSON.parse(B.responseText);if(A&&A.result){console.log("Now playing updated")}else{console.log("Now playing not updated")}}},failure:function(A){console.log("Now playing failure",A)}},doRecordListen:function(D,F){console.log("Record Listen");var G=F[0].data.id;var B=F[0].trackLength;var C=F[0].playTime;var A=F[0].playStart;var E=this.context.playlistType||"public";if(!G||(B==0)||(C==0)){return false}if((!this._requests.recordListen||!YAHOO.util.Connect.isCallInProgress(this._requests.recordListen))){this._requests.recordListen=YAHOO.util.Connect.asyncRequest("POST",this._recordListenUrl,this.recordListenCallback,"blipId="+G+"&trackLength="+B+"&playTime="+C+"&playStart="+A+"&playlistType="+E)}},recordListenCallback:{success:function(B){if(B.responseText){var A=YAHOO.lang.JSON.parse(B.responseText);if(A&&A.result){console.log("Song listen recorded")}else{console.log("Song listen not recorded")}}},failure:function(A){console.log("Record listen failure",A)}},settingsCallback:{success:function(B){if(B.responseText){var A=YAHOO.lang.JSON.parse(B.responseText);if(A){BlipUI.updateFilteredBlips()}console.log("Settings updated",B)}},failure:function(A){YAHOO.com.fuzz.notice.addNotice("Notice","Oops, we had trouble contacting the server. Please try again.")}},updateSettings:function(C,A){console.log("Update Settings");var B="";B+="direction="+C.direction;if(C.direction){this.control.options.direction=C.direction}B+="&autoscroll="+C.autoscroll;if(C.autoscroll){this.control.events.prev.subscribe(BlipUI.scroll2Blip);this.control.events.next.subscribe(BlipUI.scroll2Blip)}else{this.control.events.prev.unsubscribe(BlipUI.scroll2Blip);this.control.events.next.unsubscribe(BlipUI.scroll2Blip)}if(C.mediaFilter){this.context.options.mediaFilter=this.context.options.mediaFilter|C.mediaFilter;this.control.options.mediaFilter=this.context.options.mediaFilter}else{this.context.options.mediaFilter=this.context.options.mediaFilter&C.mediaFilter;this.control.options.mediaFilter=this.context.options.mediaFilter}B+="&mediaFilter="+this.context.options.mediaFilter;if(A){if(this._requests.settings&&YAHOO.util.Connect.isCallInProgress(this._requests.settings)){YAHOO.util.Connect.abort(this._requests.settings)}this._requests.settings=YAHOO.util.Connect.asyncRequest("POST",this._updateSettingsUrl,this.settingsCallback,B)}},infoCallback:{success:function(B){if(B.responseText){var D=YAHOO.lang.JSON.parse(B.responseText);if(!D.result||!D.data){return }if(D.data.ringtone){var E=D.data.ringtone;var F='<div class="attribution"><img src="/_/images/attribution/'+E.sponsor+'.png" alt="'+E.sponsor+'" /></div>';F+="Bring "+E.artist+" everywhere you go. ";F+='<a href="'+E.url+'" target="_blank">Click here</a> ';F+="to get ringtones.";YAHOO.com.fuzz.trackPopup.addNotice(E.sponsor,F,E.url)}else{if(D.data.event){var A=D.data.event;var F='<div class="attribution"><img src="/_/images/attribution/'+A.sponsor+'.png" alt="'+A.sponsor+'" /></div>';F+=A.headliner+" will be performing at "+A.venueName+" on "+A.date;F+=' <a href="'+A.url+'" target="_blank">Get your tickets now!</a>';YAHOO.com.fuzz.trackPopup.addNotice(A.sponsor,F,A.url)}else{if(D.data.artist){var C=D.data.artist;var F='<div class="attribution"><img src="/_/images/attribution/'+C.sponsor+'.png" alt="'+C.sponsor+'" /></div>';F+=C.name+' is on tour! <a href="'+C.url+'" target="_blank">Click here</a> ';F+="for tour dates and ticket info.";YAHOO.com.fuzz.trackPopup.addNotice(C.sponsor,F,C.url)}else{if(D.data.ticket){var G=D.data.ticket;var F='<div class="attribution"><img src="/_/images/attribution/'+G.sponsor+'.png" alt="'+G.sponsor+'" /></div>';F+="See "+G.name+" live. ";F+='<a href="'+G.url+'" target="_blank">Get your tickets now</a>.';YAHOO.com.fuzz.trackPopup.addNotice(G.sponsor,F,G.url)}else{if(D.data.offer){var I=D.data.offer;var F='<div class="attribution"><img src="/_/images/attribution/'+I.sponsor+'.png" alt="'+I.sponsor+'" /></div>';F+=I.offer;F+=' <a href="'+I.url+'" target="_blank">Click here</a>.';YAHOO.com.fuzz.trackPopup.addNotice(I.sponsor,F,I.url)}else{if(D.data.notice){var H=D.data.notice;var F=H.text;F+=' <a href="'+H.url+'">Click here</a>.';YAHOO.com.fuzz.trackPopup.addNotice(H.sponsor,F,H.url)}}}}}}}},failure:function(A){console.log("Info failure",A)}},getInfo:function(A){if(!A){return false}if(this._requests.info&&YAHOO.util.Connect.isCallInProgress(this._requests.info)){YAHOO.util.Connect.abort(this._requests.info)}this._requests.info=YAHOO.util.Connect.asyncRequest("POST",this._infoUrl,this.infoCallback,"blipId="+A)},saveVolume:function(B,A){if(this._saveVolumeTimeout){clearTimeout(this._saveVolumeTimeout)}this._saveVolumeTimeout=setTimeout("Blip.doSaveVolume("+A[0]+")",5000)},doSaveVolume:function(A){if(this.context.options.volume==A){return }this.context.options.volume=A;YAHOO.util.Connect.asyncRequest("POST","/ajax/saveVolume",{},"volume="+this.context.options.volume)},doPlay:function(A,B){this.play(B)},doStop:function(A,B,C){this.stop()},doStopped:function(C,D,F){console.log("Preview stopped");if(this._playing){var B=this._playing.item;var E=this._playing.elm;YAHOO.com.fuzz.util.removeAllChildren(E);var A=document.createElement("a");A.appendChild(document.createTextNode("preview"));E.appendChild(A);$E.on(A,"click",Blip.doPlay,{item:B,elm:E},this);this._playing=null}},songUrlReplace:function(B,C){var A="/ajax/searchReplace?id="+this._currentNode.data.id+"&limit=25";YAHOO.util.Connect.asyncRequest("GET",A,Blip.searchReplaceCallback)},doIOError:function(B,C){var A=this._playing;if(!A){return false}this.disable(A);this._playing=false},doSearch:function(B,C){var A=C.q.value;if(A==C.q.getAttribute("default")){$E.stopEvent(B);return false}Blip.search(A)},selectCheckCallback:{success:function(B){if(B.responseText){var A=YAHOO.lang.JSON.parse(B.responseText);if(A.result){Blip.doSelect("check",Blip._checking.item);this._checking=null}else{Blip.disable(Blip._checking);this._checking=null}}},failure:function(A){}},doSelectCheck:function(C,D){if(this._requests.check&&YAHOO.util.Connect.isCallInProgress(this._requests.check)){YAHOO.util.Connect.abort(this._requests.check);this._checking=null}var A=D.item.location;var B=D.item.blipType;this._checking=D;if("fuzzSong"==B){Blip.doSelect("check",Blip._checking.item);this._checking=null;return }this._requests.check=YAHOO.util.Connect.asyncRequest("POST",this._checkUrl,this.selectCheckCallback,"url="+A+"&type="+B)},doSelect:function(D,F){if(this._playing&&!(this._playing.item.location==F.location)){this.stop()}var E=(typeof F.title==="string")?F.title:"";var A=(typeof F.artist==="string")?F.artist:"";var C=F.bitrate||"";var B=F.genre||"";$("blipForm").title.value=E;$("blipForm").artist.value=A;$("blipForm").bitrate.value=C;$("blipForm").genre.value=B;$("blipForm").url.value=F.location;$("blipForm").blipType.value=F.blipType;$("selection").innerHTML=((A)?A+" &ndash; ":"")+E;if(F.message){$("blipForm").message.value=F.message;updateCharCount("reblip",$("message"))}$("blipForm").reblipId.value=F.reblipId||"";$D.setStyle($("searchDiv"),"display","none");$D.setStyle($("messageDiv"),"display","block");Blip.checkForm($("blipForm"));$("message").focus();this.events.select.fire()},doKeyPress:function(D,E){var A=E[0];var B=E[1];var C=$E.getTarget(B);if(C.tagName=="INPUT"||C.tagName=="TEXTAREA"||C.tagName=="BUTTON"||B.metaKey||B.altKey){return false}switch(A){case 80:this.startPing();if(this.context.options.ping){this.ping()}break}$E.stopEvent(B)},showQuickFav:function(A,C){var B=$E.getTarget(A);Blip.hideQuickFav();while(B.id!="blips"){if($D.hasClass(B,"user")){var D=B.id.substring(4);$D.setStyle("quickFav"+D,"visibility","");break}else{B=B.parentNode}}},hideQuickFav:function(){var B=$D.getChildren($("blips"));for(var A=0;A<B.length;A++){var C=B[A].id.substring(5);$D.setStyle("quickFav"+C,"visibility","hidden")}},clearAdInfo:function(){},loadMoreBlips:function(C,B){console.log("Loading more blips");var C=C||this._nextPageToLoad;var B=B||false;var A=this._loadMoreBlipsUrl+"?page="+C;if(!B){A+="&firstBlipId="+this.control._playlist.first.data.id}else{A+="&lastBlipId="+this.control._playlist.last.data.id}if(this.events.loadMoreBlipsComplete.subscribers.length){this.events.loadMoreBlipsComplete.unsubscribeAll()}if(this.context.bliperId){A+="&bliperId="+this.context.bliperId}if((!this._requests.loadMoreBlips||!YAHOO.util.Connect.isCallInProgress(this._requests.loadMoreBlips))){this._requests.loadMoreBlips=YAHOO.util.Connect.asyncRequest("GET",A,this.loadMoreBlipsCallback)}},loadMoreBlipsCallback:{success:function(C){if(C.responseText){var A=YAHOO.lang.JSON.parse(C.responseText);if(A.result){if(A.loadingNextPage){var D=$("blips").offsetHeight;if(!BlipUI._skipInjectOnLoad){BlipUI.injectBlips(A.blips,true,true);var B=$("blips").offsetHeight-D;$D.setY("blips",$D.getY("blips")-B)}else{BlipUI._skipInjectOnLoad=false}A.blips.reverse();Blip.control.load(A.blips,false)}else{Blip._nextPageToLoad++;if($D.inDocument(Blip.control._playlist.first.data.elm)){if(!BlipUI._skipInjectOnLoad){BlipUI.injectBlips(A.blips,false,true)}else{BlipUI._skipInjectOnLoad=false}}Blip.control.load(A.blips,true)}}else{BlipUI.toggleDirectionAvailability("prev",false);BlipUI._skipInjectOnLoad=false}Blip.events.loadMoreBlipsComplete.fire(A.result)}},failure:function(A){YAHOO.com.fuzz.notice.addNotice("alert","Failed to load more blips. Please try again.")}},getFavoriteDJs:function(B){if(!this._requests.getFavoriteDJs||!YAHOO.util.Connect.isCallInProgress(this._requests.getFavoriteDJs)){var A=this._getFavoriteDJsUrl+"?userId="+B;this._requests.getFavoriteDJs=YAHOO.util.Connect.asyncRequest("GET",A,this.getFavoriteDJsCallback)}},getFavoriteDJsCallback:{success:function(B){if(B.responseText){var A=YAHOO.lang.JSON.parse(B.responseText);if(A.result){BlipUI.injectFavoriteDJs(A.favoriteDJs);setCookie("SHOW_FAVORITE_DJS",true,1)}else{BlipUI.showHideFavoriteDJs();YAHOO.com.fuzz.notice.addNotice("alert","There was an error loading favorite DJs. Please try again.")}}},failure:function(A){BlipUI.showHideFavoriteDJs();YAHOO.com.fuzz.notice.addNotice("alert","There was an error loading favorite DJs. Please try again.")}}};