var wfnsf = new Object();
wfnsf.player = new Object();

wfnsf.player.createPlaylist = function() {
  var playlist = [];
  $('.player-track').each(function() {
    var item = {};
    item.file = $(this).attr('href');
    item.title = $(this).attr('title');
    item.image = $(this).find('img').attr('src');
    item.links = [];
    item.index = playlist.length;
    $(this).find('span.link').each(function() {
      item.links.push($(this).html());
    });

     playlist.push(item);
     $(this).click(function() {ello.player.sendEvent("ITEM", item.index); return false;});
   });

   return playlist;
};

wfnsf.player.MediaPlayer = function(aRef) {
  this.ref = aRef;
}

wfnsf.player.MediaPlayer.prototype = {
  initialize : function(playlist) {
    player = $("#media-player-swf")[0]; // swf object
    if (!playlist)
        playlist = wfnsf.player.createPlaylist();

    player.sendEvent("LOAD", playlist);

    event = {};
    event.percentage = player.getConfig().volume;
    this.doVolume(event);

    // what do do if player is missing
    player.addControllerListener("PLAY", this.ref + ".doPlay");
    player.addControllerListener("ITEM", this.ref + ".doItem");
    player.addControllerListener("MUTE", this.ref + ".doMute");
    player.addControllerListener("VOLUME", this.ref + ".doVolume");
    player.addControllerListener("PLAYLIST", this.ref + ".doPlaylist");

    firstPlay = true;
    $("#media-player-play").click(function() {
      player.sendEvent("PLAY");
      if(firstPlay) {
        $("#media-player-play").toggleClass('selected');
        firstPlay = false;
      }
    });

    $('#media-player-prev').click(function() {
      if (player.getConfig().item == 0) return;

      player.sendEvent("PREV");
    });

    $('#media-player-next').click(function() {
      if (player.getConfig().item == player.getPlaylist().length-1)
      return;

      player.sendEvent("NEXT");
    });

    $('#media-player-mute').click(function() {
      player.sendEvent("MUTE");
    });

    $('#media-player-volume').find('a').each(function(i) {
        $(this).click(function() {
          player.sendEvent("VOLUME", (i+1)*10);
        });
    });

    this.player = player;
  },

  doPlay : function() {
    $("#media-player-play").toggleClass('selected');
  },

  doMute : function() {
    $("#media-player-mute").toggleClass('selected');
  },

  doVolume : function(event) {
    var volumeLevel = Math.floor((event.percentage/100) * 125);
    $('#media-player-current-volume').width(volumeLevel);
  },

  doItem : function(event) {
    $('#media-player-info .artist').html('');
    $('#media-player-info .title').html('');

    var item = this.player.getPlaylist()[event.index];
    if (item.title) {
      var info = item.title.split("-");
      $('#media-player-info .artist').html(info[0]);
      $('#media-player-info .title').html(info[1]);
      for (i=0; i<item.links.length; i++) {
        $('#media-player-info .links').html(item.links[i]);
      }
    }
  }
}

var flashvars = {};
var params = {quality: "low"};
var attributes = {id: "media-player-swf"};
swfobject.embedSWF("/media/player.swf", "altcontent", "1", "1", "9.0.0", false, flashvars, params, attributes);

var ello = new wfnsf.player.MediaPlayer('ello');
function playerReady(obj)
{
    ello.initialize();
}
