
  var EpisodeBookmarks = {
  
   posts_id:null,

   initializePlaylists:function(posts_id) {

     $("#addToPlaylist").attr('disabled','disabled');
     $("#addToPlaylist").hide();
     $("#PlaylistWrapper").append("<select id='playlistsSelect'></select>");

     EpisodeBookmarks.getPlaylists(posts_id);

     $("#PlaylistWrapper").append('<input type="submit" id="doBookmark" value="">');

     $("#doBookmark").click(function() {
       EpisodeBookmarks.doBookmark();
      });

     $("#playlistsSelect").change( function() {
      EpisodeBookmarks.toggleAddRemoveBookmark();
    }).change();

  },

   doBookmark:function() {
     var selected = $("#playlistsSelect option:selected");
       
     $("#doBookmark").attr('disabled','disabled');
     if (selected.attr("id") == 'playlistsEdit') {
	 window.location.href = "/playlists";
     }	 
     else if (selected.hasClass("bookmarked")) {
	 EpisodeBookmarks.removeBookmark();
     } else {
	 EpisodeBookmarks.addBookmark();
     }
  },

   getPlaylists:function(posts_id) {
    this.posts_id = posts_id;
    $.getJSON("/playlists?posts_id=" + posts_id + "&&skin=json&callback=?",EpisodeBookmarks.loadedPlaylists);
  },

   loadedPlaylists:function(data) {

     var option;
     var options = "";
     $("#playlistsSelect").empty();
     $("doBookmark").empty();
     if (data.length) {
       $.each(data, function(i) {
        option = "<option value=" + '"' + data[i].id + '"';
        if (i == 0) { option+= ' selected="selected"'; };
 
        if (data[i].bookmarked == 1) {option += ' class="bookmarked"'};

        option += ">" + data[i].name + "</option>";
         
	options += option;
        
      });
        
     } else {
         options = "<option value=" + '"-1"' +  ">My Playlist</option>";
     }

     //Edit Playlists
     options += '<option value="" id="bookmarkSeparator">' +
                 '----------------------' + '</option>';
     
     options += '<option value="" id="playlistsEdit">Edit Playlists</option>';

     $("#playlistsSelect").html(options);

     EpisodeBookmarks.toggleAddRemoveBookmark();
           
   },
   addBookmark:function() {
     $("#doBookmark").attr('disabled','disabled');
     var playlists_id = $("#playlistsSelect option:selected").val();
     var playlists_name = $("#playlistsSelect option:selected").text();
     var thisObj = this;

     $.post("/bookmarks/add?posts_id=" + thisObj.posts_id + "&playlists_id=" + playlists_id + "&playlists_name=" + playlists_name + "&skin=xmlhttprequest",
	    function () { EpisodeBookmarks.getPlaylists(thisObj.posts_id); } );
      
   },

   removeBookmark:function() {
     $("#doBookmark").attr('disabled','disabled');
     var playlists_id = $("#playlistsSelect option:selected").val();
     var thisObj = this;
     $.post("/bookmarks/remove?posts_id=" + thisObj.posts_id + "&&playlists_id=" + playlists_id + "&skin=xmlhttprequest", 
	    function () { EpisodeBookmarks.getPlaylists(thisObj.posts_id); } );
   },

    toggleAddRemoveBookmark:function() {
     var selected = $("#playlistsSelect option:selected");

     if (selected.attr("id") == $("#bookmarkSeparator").attr("id")) {
	 $("#doBookmark").attr('disabled','disabled');
     } 
     else {
	 $("#doBookmark").attr('disabled','');
     }
     
     if (selected.attr("id") == 'playlistsEdit') {
	 $("#doBookmark").attr("value", "Go");
     }
     else if (selected.hasClass("bookmarked")) {
	 $("#doBookmark").attr("value","Remove");
     } else {
	 $("#doBookmark").attr("value", "Add");
     }
   }

  };
