$(document).ready(function() {
  $('.wbraudio-playlist .item a').each(function(i) {
    $(this).click(function() {
      WBRaudio.clearAllActive();
      WBRaudio.clearAllInactive();
      flash_callback('setitem', {index:i});
      return false;
    });
  });
  $('.wbraudio-playlist .item-0').addClass('inactive');
  WBRaudio.jqueryUI();
});

var WBRaudio = {
  
  last_index: null,
  is_playing: 0,
  first_set: 1,
  
  jqueryUI: function () {
    // Setup volume.
    $(".wbraudio-volume").slider({handle:'.wbraudio-volume-handle', min:0, max:100, startValue:flashvars.volume, slide:WBRaudio.sendVolChange});
    $(".wbraudio-volume a").attr('href', '#');
    $(".wbraudio-volume a").click(function() {
      return false;
    });
  },
  
  sendVolChange: function(e, ui) {
    flash_callback('volume', {vol:ui.value});
  },
  
  receiveEvent: function(op, data) {
    /*console.log(op+' | '+data);
    if (data) {
      for (var prop in data) {
        console.log(op+': '+prop+':'+data[prop]);
      }
    }*/
    var index;
    if (data) {
      index = WBRaudio.last_index = data.index;
    } else {
      index = WBRaudio.last_index;
    }
    switch (op) {
      case 'setitem':
        setTimeout(function() {
          WBRaudio.clearAllActive();
          WBRaudio.clearAllInactive();
          $('.wbraudio-playlist .item-'+data.index).addClass('active');
        }, 1);
        if (flashvars.autoplay == '1' && WBRaudio.first_set) {
          WBRaudio.is_playing = 1;
        }
        WBRaudio.first_set = 0;
        break;
      case 'playpause':
        WBRaudio.clearAllActive();
        WBRaudio.clearAllInactive();
        $('.wbraudio-playlist .item-'+index).addClass('active');
        if (WBRaudio.is_playing) {
          WBRaudio.is_playing = 0;
        } else {
          WBRaudio.is_playing = 1;
        }
        break;
      case 'complete':
      case 'stop':
        WBRaudio.clearAllActive();
        $('.wbraudio-playlist .item-'+WBRaudio.last_index).addClass('inactive');
        WBRaudio.is_playing = 0;
        break;
      case 'prev':
      case 'next':
        WBRaudio.is_playing = 1;
        break;
    }
    WBRaudio.setPlayState();
  },
  
  setPlayState: function() {
    var e = '.audio_controls .audio_play_pause';
    if (WBRaudio.is_playing) {
      $(e).addClass('playing');
    } else {
      $(e).removeClass('playing');
    }
  },
  
  clearAllActive: function() {
    $('.wbraudio-playlist .item').each(function(i) {
      $(this).removeClass('active');
    });
  },
  
  clearAllInactive: function() {
    $('.wbraudio-playlist .item').each(function(i) {
      $(this).removeClass('inactive');
    });
  }

}