var PlayerControls = {
  playerFocus: null,
  playerWindowPage: './player.php',
  playerWindowWidth: 300,
  playerWindowHeight: 450,
  playerWindowName: 'gg_player',
  playerWindowStatus: false,
  playerControllerMovieName: 'player_controller',
  flashMovie : function() {
    return swfobject.getObjectById(PlayerControls.playerControllerMovieName);
  },
  checkIfPlayerIsOpen : function() {
    
    var startState = PlayerControls.playerWindowStatus;
    var playerControllerMovie = PlayerControls.flashMovie();
    setTimeout('checkPlayerIsOpen()',250);

    if(playerControllerMovie != null && typeof(playerControllerMovie.isPlayerOpen)=='function') {    
      PlayerControls.playerWindowStatus = playerControllerMovie.isPlayerOpen();
    } else {
      PlayerControls.playerWindowStatus = false;
    }
    
  },
  openPlayerIfRequired : function() {
    if(PlayerControls.playerWindowStatus != true) {
      PlayerControls.playerFocus = window.open(PlayerControls.playerWindowPage,
                                               PlayerControls.playerWindowName,
                                                  "toolbar=no, location=no, directories=no, "+
                                                  "status=no, menubar=no, scrollbars=no, "+
                                                  "resizable=no, copyhistory=no, "+
                                                  "width="+PlayerControls.playerWindowWidth+", "+
                                                  "height="+PlayerControls.playerWindowHeight);
    }
  },
  cueTrack : function(track_id,mix_id,artist,title,label,mp3_url,artwork_url,info_url) {
    var playerControllerMovie = PlayerControls.flashMovie();
    if(playerControllerMovie == null || typeof(playerControllerMovie.isPlayerOpen)!='function') return;
      
    PlayerControls.openPlayerIfRequired(); 
    playerControllerMovie.cueTrack(track_id,mix_id,artist,title,label,mp3_url,artwork_url,info_url);
    playerControllerMovie.focusPlayerWindow();
  },
  playTrack : function(track_id,mix_id,artist,title,label,mp3_url,artwork_url,info_url) {
    var playerControllerMovie = PlayerControls.flashMovie();
    if(playerControllerMovie == null || typeof(playerControllerMovie.isPlayerOpen)!='function') return;
    
    PlayerControls.openPlayerIfRequired(); 
    playerControllerMovie.playTrack(track_id,mix_id,artist,title,label,mp3_url,artwork_url,info_url);
    playerControllerMovie.focusPlayerWindow();
  },
  pause : function() {
    var playerControllerMovie = PlayerControls.flashMovie();
    playerControllerMovie.pausePlayer();
  },
  play : function() {
    var playerControllerMovie = PlayerControls.flashMovie();
    playerControllerMovie.playPlayer();
  },
  focusPlayer : function() {
    var playerControllerMovie = PlayerControls.flashMovie();
    playerControllerMovie.focusPlayerWindow();
  }  
}

// Start to check if the player window is open
function checkPlayerIsOpen() {
  PlayerControls.checkIfPlayerIsOpen();
}

Event.observe(window, 'load', checkPlayerIsOpen);