var fairplayer_has_user_voted = function(track_id){
  return Fair.Session && Fair.Session.track_votes && Fair.Session.track_votes.contains(track_id.toInt());
};

var fairplayer_vote_clicked = function(track_id){
  Fair.Common.Votes.vote('track', track_id);
};
// New syntax for player v3
var fairplayer_track_vote_clicked = fairplayer_vote_clicked;

var fairplayer_playlist_vote_clicked = function(playlist_id){
  Fair.Common.Votes.vote('playlist', playlist_id);
};

// TODO Remove those legacy functions a few days after player v3 moves to production
var fairplayer_played_track = function(track_id){
  track_id = track_id || Fair.Player.current_track_id();
  if (track_id) new Request({ evalScripts: true, url: '/track_plays/create' }).post({ track_id: track_id });
};

var fairplayer_played_feed = function(feed_url){
  var playlist_id = feed_url.match(/playlists?\/(\d+)/);
  if (!playlist_id || !playlist_id[1]) return;
  new Request({ evalScripts: true, url: '/playlist_plays/create' }).post({ playlist_id: playlist_id[1] });
};
// End of TODO

var sync_vote_buttons = function(){
  Fair.Common.Votes.sync('track');
};

var sync_play_buttons = function(feed_url, track_id, playing){
  if (Fair.Common){
    Fair.Common.Plays.sync(feed_url, track_id, playing);
  }
};

var fairplayer_track_history = function(track_id, feed_url, title, artist, country, duration, image, feed_title){
  var player = Fair.Player, history = Fair.History;
  if (!player || !history) return;
  
  var play = {
    image: image,
    title: title,
    artist: artist,
    country: country,
    duration: duration,
    track_id: track_id,
    feed_url: feed_url,
    feed_title: feed_title
  };
  
  history.store(play, player);
};

var fairplayer3_history = function(track_info_json, tracklist_info_json){
  var player = Fair.Player, history = Fair.History;
  if (!player || !history) return;

  var track_info = JSON.decode(track_info_json, true);
  var tracklist_info = JSON.decode(tracklist_info_json, true);
  var play = {
    image: track_info.image,
    title: track_info.title,
    artist: track_info.artist,
    country: track_info.countrycode,
    duration: track_info.duration,
    track_id: track_info.identifier,
    feed_url: tracklist_info.src,
    feed_title: tracklist_info.title
  };
  
  history.store(play, player);
};

