var current_description='';var current_name='';var edited=false;var sending=false;function playlist_edit(){if(edited==false){show_error(null);var playlistedit_title=$("playlistedit-title");var playlistedit_descr=$("playlistedit-descr");$("playlistEditButton").innerHTML='Save';$("playlistEditButton").addClassName("save");current_name=playlistedit_title.innerHTML+"";current_description=playlistedit_descr.innerHTML+"";playlistedit_title.innerHTML='';playlistedit_descr.innerHTML='';var playlistedit_title_edit=document.createElement('input');playlistedit_title_edit.setAttribute('id','playlistedit_title_edit');playlistedit_title_edit.setAttribute('name','playlistedit_title_edit');playlistedit_title_edit.setAttribute('type','text');playlistedit_title_edit.setAttribute('value',current_name);playlistedit_title.appendChild(playlistedit_title_edit);var playlistedit_descr_edit=document.createElement('textarea');playlistedit_descr_edit.setAttribute('id','playlistedit_descr_edit');playlistedit_descr_edit.setAttribute('name','playlistedit_descr_edit');playlistedit_descr.appendChild(playlistedit_descr_edit);playlistedit_descr_edit.appendChild(document.createTextNode(current_description));edited=true;Event.observe(document,'click',playlist_unedit,true)}else{Event.stopObserving(document,'click',playlist_unedit,true);if(!sending){$("playlistEditButton").innerHTML='Saving';sending=true;playlist_send_edit()}}return false}function playlist_unedit(event){if(edited==false||sending==true||gotErrors==true){return false}var targetel=Event.element(event);var playlistedit_title=$("playlistedit-title");var playlistedit_descr=$("playlistedit-descr");if(targetel.id=='playlistEditButton'||targetel.id=='playlistedit_title_edit'||targetel.id=='playlistedit_descr_edit'){return}YAHOO.util.Event.preventDefault(event);Event.stop(event);if(playlistedit_title.value!=current_name||playlistedit_descr.value!=current_description){if(!confirm('Are you sure to discard your changes?')){return false}}$("playlistEditButton").innerHTML='Edit';$("playlistEditButton").removeClassName("save");Event.stopObserving(document,'click',playlist_unedit,true);edited=false;playlistedit_title.innerHTML=current_name;playlistedit_descr.innerHTML=current_description;return false}var $classParams='';function playlist_send_edit(){show_error(null);$("myttplaylists_status").innerHTML="Saving playlist details...";$("myttplaylists_status_img").style.display="block";$("block-myttPlaylists-2").style.display="block";var url=base_url+"ajax/playlist/edit";mytt_gaTrack(url);var myAjax=new Ajax.Request(url,{method:"post",postBody:Form.serialize("myttplaylist-edit"),onComplete:playlist_done_editing})}function playlist_done_editing(originalRequest){if(originalRequest.responseText.substr(0,2)=="OK"){$("playlistEditButton").innerHTML='Edit';$("playlistEditButton").removeClassName("save");edited=false;var playlistedit_title=$("playlistedit-title");var playlistedit_descr=$("playlistedit-descr");playlistedit_title.innerHTML=$("playlistedit_title_edit").value;playlistedit_descr.innerHTML=$("playlistedit_descr_edit").value;$("myttplaylists_status").innerHTML="Playlist details saved.";var response_array=originalRequest.responseText.split('|');var playlistId=response_array[1];$("playlist_name-"+playlistId).innerHTML=response_array[2];if($("playlist-change")!=null){$("playlist-change").innerHTML=response_array[3]}var playlistContainer=$("playlistulcontent");var playlists=playlistContainer.childNodes;var newPlaylists=new Array();for(var i=0;i<playlists.length;i++){if(!isElementLI(playlists[i])){continue}var playlist_name_el=getChildWithClass(playlists[i],'playlist-name');newPlaylists.push(playlist_name_el.innerHTML)}newPlaylists.sort(sortCaseInsensitive);var newNode=$("playlist-"+playlistId).parentNode;Element.remove(newNode);var inserted=false;var j=0;for(var i=0;i<playlists.length;i++){if(!isElementLI(playlists[i])){continue}var playlistName=getChildWithClass(playlists[i],'playlist-name').innerHTML;if(playlistName!=newPlaylists[j]){new Insertion.Before(playlists[i],'<li>'+newNode.innerHTML+'</li>');inserted=true;break}j++}if(!inserted){new Insertion.Bottom(playlistContainer,'<li>'+newNode.innerHTML+'</li>')}}else if(originalRequest.responseText.substr(0,5).toLowerCase()=="error"){$("playlistEditButton").innerHTML='Save';$("playlistEditButton").addClassName("save");var response_array=originalRequest.responseText.split('|');$("myttplaylists_status").innerHTML=response_array[1];show_error(response_array[1]);Event.observe(document,'click',playlist_unedit,true);sending=false}else{$("myttplaylists_status").innerHTML=originalRequest.responseText;Event.observe(document,'click',playlist_unedit,true);sending=false}$("myttplaylists_status_img").style.display="none";sending=false}function show_help(){show_error(null);Effect.Appear("shared_bubbleHelp")}function hide_help(){show_error(null);Effect.Fade("shared_bubbleHelp")}function save_reorder(pos1,pos2){show_error(null);var songTable=$("song-table");if(songTable==undefined){return}var trs=songTable.rows;var length=trs.length;var newOrder="";var holders=$$('.playlist_songs');var hlen=holders.length;newOrder=holders[pos1-1].id.replace(/^song_/,"")+",";newOrder+=holders[pos2-1].id.replace(/^song_/,"")+",";var url=base_url+"ajax/playlist/reorder/"+currentPlaylist+"/"+newOrder;mytt_gaTrack(url);var myAjax=new Ajax.Request(url,{method:"get",onComplete:done_reordering});return false}function done_reordering(originalRequest){show_error(null);refreshOrderingLinks();swapOn=false;if(originalRequest.responseText!="OK"){alert("There was an error saving the new order.\nError is: "+originalRequest.responseText);return false}return false}function remove_song(songId,playlist_id,minSongPublic){if(confirm("Are you sure you want to remove this song from this playlist ?")){if($('song-table').getElementsByClassName('song-no').length==minSongPublic){message="This will automatically make the playlist private because the number of songs is no longer sufficient (less than 5 songs). Are you sure you want to continue ?";if(!confirm(message)){return}}Element.hide('delete_song_'+songId);Element.show('delete_song_'+songId+'_ind');$("myttplaylists_status").innerHTML="Removing song from playlist...";$("myttplaylists_status_img").style.display="block";$("block-myttPlaylists-2").style.display="block";current_operation_playlist_nid=playlist_id;current_operation_minSongPublic=minSongPublic;var url=base_url+"ajax/playlist/removeSong/"+playlist_id+"/"+songId;mytt_gaTrack(url);var myAjax=new Ajax.Request(url,{method:"get",onComplete:done_removing})}return false}function done_removing(originalRequest){show_error(null);if(originalRequest.responseText.substr(0,2)=="OK"){var response_array=originalRequest.responseText.split('|');var nbson_el=$("playlist-nb-songs-"+current_operation_playlist_nid);if(nbson_el){var new_nb_songs=$("playlist-nb-songs-"+current_operation_playlist_nid).innerHTML;new_nb_songs--;$("playlist-nb-songs-"+current_operation_playlist_nid).innerHTML=new_nb_songs}$("myttplaylists_status").innerHTML="Song removed.";$("myttplaylists_status_img").style.display="none";var songId=response_array[1];var elem=$("song_"+songId);var tr=elem.parentNode.parentNode.parentNode;var tableParent=tr.parentNode;tableParent.removeChild(tr);refreshPlaylistNumbering();refreshOrderingLinks();refreshZebra();if(response_array[2]!=""){$("block-myttRecommendations-0").innerHTML=response_array[2]}var songCnt=$$('td.song-no').length;if($("shared-icon-"+current_operation_playlist_nid)&&songCnt<current_operation_minSongPublic){Element.remove('shared-icon-'+current_operation_playlist_nid)}sharePlaylistButtons(current_operation_playlist_nid);if($('playlist-genres')){$('playlist-genres-values').innerHTML=response_array[3]}if(response_array[4]=="0"){Element.show('myttplaylistempty')}}else{$("myttplaylists_status").innerHTML=originalRequest.responseText}$("myttplaylists_status_img").style.display="none"}var min_song_for_shared=5;function show_songBoxIcons(songId){if($('delete_song_'+songId)){$('delete_song_'+songId).style.visibility='visible'}}function hide_songBoxIcons(songId){if($('delete_song_'+songId)){$('delete_song_'+songId).style.visibility='hidden'}}function show_songInfo(songId){$('song-info-'+songId).style.display='block'}function sharePlaylistButtons(playlist_id){if(!$('shareButton-share')||!$('shareButton-unshare')){return}var sharable=false;var isShared=false;songNos=$$('td.song-no');if(songNos.length>=min_song_for_shared){sharable=true}if($("shared-icon-"+playlist_id)){isShared=true}if(sharable){if(isShared){$('shareButton-share').style.display='none';$('shareButton-unshare').style.display='block'}else{$('shareButton-share').style.display='block';$('shareButton-unshare').style.display='none'}}else{$('shareButton-share').style.display='none';$('shareButton-unshare').style.display='none'}}function refreshPlaylistNumbering(){var songTable=$("song-table");if(songTable==undefined){return}var trs=songTable.rows;var songNos=$$('td.song-no');var slen=songNos.length;var cnt=1;for(var i=0;i<slen;i++){songNos[i].innerHTML=cnt++}return}var swapOn=false;var swappedLink=null;function reorder_playlist_song(position,direction,link){if(swapOn){return}swapOn=true;swappedLink=link;var pos1=position;var pos2=0;var song_box=$('playlist_song_'+position);var swapWith='';var moveY=0;if(direction=="down"){var box2=$$('#playlist_song_'+(position+1)+' div.song-box');swapWith=$('playlist_song_'+(position+1));pos2=position+1}else{var box2=$$('#playlist_song_'+(position-1)+' div.song-box');swapWith=$('playlist_song_'+(position-1));pos2=position-1}var box1=$$('#playlist_song_'+(position)+' div.song-box');box1=box1.shift();box2=box2.shift();if(box1.hasClassName('zebra-1')){var box1Class='zebra-1';var box2Class='zebra-0'}else{var box1Class='zebra-0';var box2Class='zebra-1'}box1.removeClassName(box1Class);box2.addClassName(box1Class);box2.removeClassName(box2Class);box1.addClassName(box2Class);sbPos=Element.cumulativeOffset(song_box);swPos=Element.cumulativeOffset(swapWith);moveY=sbPos.top-swPos.top;var eff=new Effect.Parallel([new Effect.Move(song_box,{sync:true,x:0,y:-moveY,mode:'relative'}),new Effect.Move(swapWith,{sync:true,x:0,y:moveY,mode:'relative'})],{duration:0.6,beforeStart:function(){swappedLink.className="song-reorder-loader"},afterFinish:function(){swapWith.style.top=0;song_box.style.top=0;var tmp=swapWith.innerHTML;swapWith.innerHTML=song_box.innerHTML;song_box.innerHTML=tmp;save_reorder(pos1,pos2)}});return false}function refreshOrderingLinks(){var songTable=$("song-table");if(songTable==undefined||$('reorder-tr')==undefined){return}var holders=$$('div.playlist_song_holder');var hlen=holders.length;for(var i=0;i<hlen;i++){holders[i].id='playlist_song_'+(i+1)}var reorders=$$('td.song-reorder');var rlen=reorders.length;if(rlen<2){$('reorder-tr').hide();return}else{$('reorder-tr').show()}for(var i=0;i<rlen;i++){if(i==0){reorders[i].innerHTML='<a onclick="reorder_playlist_song(1, \'down\',this); return false;" class="order-down"></a>'}else if(i==rlen-1){reorders[i].innerHTML='<a onclick="reorder_playlist_song('+rlen+', \'up\',this); return false;"  class="order-up"></a>'}else{reorders[i].innerHTML='<a onclick="reorder_playlist_song('+(i+1)+', \'up\',this); return false;"  class="order-up"></a>'+'<a onclick="reorder_playlist_song('+(i+1)+', \'down\',this); return false;" class="order-down"></a>'}}return}function refreshZebra(){var holders=$$('div.playlist_song_holder div.song-box');var newClass='';for(var i=0;i<=holders.length;i++){newClass='zebra-'+((i+1)%2);holders[i].removeClassName('zebra-0');holders[i].removeClassName('zebra-1');holders[i].addClassName(newClass)}}function playlistPageEvents(){if($('playlistEditButton')!=undefined){$('playlistEditButton').onclick=playlist_edit}}function change_PlaylistVisibility(playlistId,visibility){show_error(null);if(visibility=='public'){$("shareButton-share-text").innerHTML=$("myttplaylists_status").innerHTML="Sharing..."}else if(visibility=='private'){$("shareButton-unshare-text").innerHTML=$("myttplaylists_status").innerHTML="Unsharing..."}$("myttplaylists_status_img").style.display="block";$("block-myttPlaylists-2").style.display="block";var url=base_url+"ajax/playlist/visibility/v1/"+playlistId+"/"+visibility;mytt_gaTrack(url);var myAjax=new Ajax.Request(url,{method:"get",onComplete:done_changePlaylistVisibility})}function done_changePlaylistVisibility(originalRequest){var response_array=originalRequest.responseText.split('|');$("shareButton-share-text").innerHTML='Share';$("shareButton-unshare-text").innerHTML='Unshare';if(response_array[0]=="OK"){if(response_array[2]=='public'){$("myttplaylists_status").innerHTML="Your playlist is now Shared.";$("shareButton-unshare").style.display='block';$("shareButton-share").style.display='none';new Insertion.Before('playlist_name-'+response_array[1],'<span id="shared-icon-'+response_array[1]+'" class="shared-icon">'+'<img height="15" width="20" src="/assets/en/images/transparent.v1.2.gif"/></span>')}else if(response_array[2]=='private'){$("myttplaylists_status").innerHTML="Your playlist is not shared.";$("shareButton-share").style.display='block';$("shareButton-unshare").style.display='none';Element.remove($('shared-icon-'+response_array[1]))}if($('playlist-sharing')){$('playlist-sharing').innerHTML=response_array[3]}}else if(originalRequest.responseText.substr(0,5)=="ERROR"){var response_array=originalRequest.responseText.split('|');$("myttplaylists_status").innerHTML=response_array[1];show_error(response_array[1])}else{$("myttplaylists_status").innerHTML=originalRequest.responseText}$("myttplaylists_status_img").style.display="none"}function copyPlaylist(playlistId){var doneCopyPlaylist=function(responseText){$("copyButton").innerHTML="Copy";var responseText=eval("("+responseText.responseText+")");$("myttplaylists_status_img").style.display="none";$("myttplaylists_status").innerHTML=responseText.message;if(responseText.result){$("copyButton-status").style.display='list-item';$("copyButton-status").addClassName('view-playlist');$("copyButton-status").innerHTML="<a href='"+responseText.url+"'>Go to playlist</a>";$("copyButton").style.display='none';done_creating_s("OK|"+responseText.id+"|"+responseText.name+"|"+responseText.url,responseText.name,"mytt")}else{show_error(responseText.message)}};$("copyButton").innerHTML=$("myttplaylists_status").innerHTML="Copying...";$("myttplaylists_status_img").style.display="block";$("block-myttPlaylists-2").style.display="block";var url=base_url+"ajax/playlist/copy/"+playlistId;mytt_gaTrack(url);new Ajax.Request(url,{method:"get",onComplete:doneCopyPlaylist})}function favoritePlaylist(doFavorite,playlistId){var done=function(responseText){$("favoriteButton").innerHTML="Favorite";$("unFavoriteButton").innerHTML="Unfavorite";var responseText=eval("("+responseText.responseText+")");$("myttplaylists_status_img").style.display="none";$("myttplaylists_status").innerHTML=responseText.message;if(responseText.result){if(doFavorite==true){$("unFavoriteButton").style.display='block';$("favoriteButton").style.display='none';if(responseText.isCollaborative==true){collaboratives.unshift([responseText.id,responseText.title])}}else{$("unFavoriteButton").style.display='none';$("favoriteButton").style.display='block';removeCollaborative(responseText.id)}}else{show_error(responseText.message)}};if(doFavorite==true){$("favoriteButton").innerHTML=$("myttplaylists_status").innerHTML="Favoriting..."}else{$("unFavoriteButton").innerHTML=$("myttplaylists_status").innerHTML="Unfavoriting..."}$("myttplaylists_status_img").style.display="block";$("block-myttPlaylists-2").style.display="block";var url=base_url+"ajax/user/favoriteplaylist/"+playlistId+"/"+doFavorite;new Ajax.Request(url,{method:"get",onComplete:done});mytt_gaTrack(url)}function getUserDiv(user){var userDiv=document.createElement('div');Element.extend(userDiv);userDiv.addClassName('user-wrap');var img=document.createElement('img');img.src=user.image.image50;var a=document.createElement('a');a.href=user.url;a.innerHTML=user.username;userDiv.appendChild(img);userDiv.appendChild(a);return userDiv}var invitedUsers;var users=new Array;var i=0;function addInvitee(obj,noSearch){if($('user_container').getElementsByClassName('user-wrap').length>0){if(users.indexOf(obj.id)>-1){alert('This collaborator is already added');return}}users[i]=obj.id;i++;if(noSearch==true&&obj==''){return}var onUserGet=function(user){invitedUsers.unshift(user.id);$('user_container').appendChild(getUserDiv(user))};$('usernameBox').value='';if(noSearch!=true){var item=obj.id;var url=base_url+"ajax/user/get_user/"+obj.id;new Ajax.Request(url,{method:"get",onComplete:function(response){var user=eval("("+response.responseText+")");onUserGet(user)}})}else{var done=function(response){var result=eval("("+response.responseText+")");if(result.found==false){alert(result.message);return}else{if(result.type=='user'){onUserGet(result.data);return}else if(result.type=='email'){invitedUsers.unshift(result.data);var userDiv=document.createElement('div');Element.extend(userDiv);userDiv.addClassName('user-wrap');userDiv.appendChild(document.createTextNode(result.data));$('user_container').appendChild(userDiv)}}};var url=base_url+"ajax/user/validate_invite/"+obj;new Ajax.Request(url,{method:"get",onComplete:done});var item=obj}}function collabPlaylistInvite(playlistId){if($('invite_collaborators')){return}invitedUsers=new Array();var div=document.createElement('div');div.id='invite_collaborators';div.innerHTML='<img height="16" width="16" src="/assets/en/images/indicator-arrows.v1.1.gif" align="top" /> Loading';$('collaborators-panel').appendChild(div);var handleSubmit=function(){var url=base_url+"ajax/playlist/invite";new Ajax.Request(url,{method:"post",postBody:"playlist_id="+playlistId+"&invitees="+invitedUsers.join(','),onComplete:submitted});$('invite_collaborators').innerHTML='<img height="16" width="16" src="/assets/en/images/indicator-arrows.v1.1.gif" align="top" /> Loading'};var handleCancel=function(){Element.remove('invite_collaborators')};var done=function(response){$('invite_collaborators').innerHTML=response.responseText;$('collab_submit').observe('click',handleSubmit);$('collab_cancel').observe('click',handleCancel);$('usernameBox').observe('keydown',function(event){if(event.keyCode==13){addInvitee($('usernameBox').value,true)}});var autoCompleter=new Ajax.Autocompleter("usernameBox","invite_autocomplete_choices_box",base_url+"ajax/friends/search",{minChars:3,frequency:0.7,updateElement:addInvitee})};var url=base_url+"ajax/playlist/invite/"+playlistId;new Ajax.Request(url,{method:"get",onComplete:done});mytt_gaTrack(url);var submitted=function(response){var response=eval("("+response.responseText+")");if(response.result==false){div.innerHTML=response.message}else{div.innerHTML='';if(response.invited.length==0){var paragraph=document.createElement('p');paragraph.innerHTML='No invitations were sent!';div.appendChild(paragraph)}else{var paragraph=document.createElement('p');paragraph.innerHTML='Success! Invitations have been sent.';div.appendChild(paragraph)}if(response.alreadyInvited.length>0){div.appendChild(document.createTextNode("The following have already been invited, so an invitation was no re-sent:"));div.appendChild(document.createElement('br'));for(var i=0;i<response.alreadyInvited.length;i++){if(response.alreadyInvited[i].id){div.appendChild(getUserDiv(response.alreadyInvited[i]))}else{var aDiv=document.createElement('div');div.appendChild(document.createTextNode(response.alreadyInvited[i].email));div.appendChild(aDiv)}}}if(response.skipped.length>0){div.appendChild(document.createTextNode("The following were invalid users or e-mails and were skipped:"));div.appendChild(document.createElement('br'));for(var i=0;i<response.skipped.length;i++){if(response.skipped[i].id){div.appendChild(getUserDiv(response.skipped[i]))}else{var aDiv=document.createElement('div');div.appendChild(document.createTextNode(response.skipped[i].email));div.appendChild(aDiv)}}}var button=document.createElement('div');Element.extend(button);button.addClassName('clear');button.innerHTML='<input type="button" class="form-submit" value="Close"></input>';button.observe('click',handleCancel);div.appendChild(button)}}}addLoadEvent(refreshOrderingLinks);addLoadEvent(playlistPageEvents);