-function play_source_from(id_source, position){
- if(
- (current_document != false)
- && (current_source_id = get_current_source_id())
- && (id_source == current_source_id)
- ){
- _play(position);
- }
- else{
- stop();
- var FOUND = false;
- $("#track_" + id_source + " .documents li").each(
- function(){
- if(!FOUND){
- var source_document_id = $(this).attr("id").substring(9);
- if(source_document_id.length > 0){
- if($("#player_" + source_document_id).size()){
- FOUND = true;
- current_document = source_document_id;
- _play(position);
- }
- }
- }
- }
- );
- }
-}
-
-function _play(position){
- if(current_document != false){
- var audio_elt = $("#audio_" + current_document).get(0);
- audio_elt.preload = "auto";
- audio_elt.addEventListener("loadeddata", track_loadeddata, false);
- audio_elt.addEventListener("canplaythrough", track_canplaythrough, false);
- audio_elt.addEventListener("playing", track_playing, false);
- gui_state("loading");
- audio_elt.position = position;
- audio_elt.load();
- }
-}
-
-function track_loadeddata(event){
- var audio_elt = event.target;
- audio_elt.removeEventListener("loadeddata", track_loadeddata, false);
- if(current_document != false){
- audio_elt.currentTime = audio_elt.position ? (audio_elt.position * audio_elt.duration) / 100 : 0;
- }
-}
-
-function track_canplaythrough(event){
- var audio_elt = event.target;
- audio_elt.removeEventListener("canplaythrough", track_canplaythrough, false);
- audio_elt.play();
-}
-
-function track_playing(event){
- var audio_elt = event.target;
- audio_elt.removeEventListener("playing", track_playing, false);
- gui_state("playing");
-}
-
-function pause(){
- if(current_document != false){
- var audio_elt = $("#audio_" + current_document).get(0);
- audio_elt.pause();
- gui_state("paused");
- }
-}
-
-function stop(){
- if(current_document != false){
- var audio_elt = $("#audio_" + current_document).get(0);
- audio_elt.pause();
- audio_elt.currentTime = 0;
- gui_state("stoped");
- current_document = false;
- }
- autoplay_next = false;
-}
-
-function track_ended(){
- gui_state("stoped");
- var current_audio = $("#audio_" + current_document).get(0);
- current_audio.pause();
- if(current_audio.currentTime) current_audio.currentTime = 0;
- if(autoplay_next) autoplay_next = play_next_source();
-}
-
-function gui_state(state){
- gui_blur();
- if(current_document != false){
- var source_id = get_current_source_id();
- $("#track_" + source_id).removeClass("loading_player");
- if(state == "playing"){
- $("#player_" + current_document).find(".play").css("display", "none");
- $("#player_" + current_document).find(".pause").css("display", "inline");
- $("#player_" + current_document).find(".stop").css("display", "inline");
-// $("#track_" + source_id).removeClass("track");
- $("#track_" + source_id).addClass("playing_track");
- }
- else if(state == "paused"){
- $("#player_" + current_document).find(".play").get(0).style.display = "inline";
- $("#player_" + current_document).find(".pause").get(0).style.display = "none";
- $("#player_" + current_document).find(".stop").get(0).style.display = "inline";
-// $("#track_" + source_id).removeClass("track");
- $("#track_" + source_id).addClass("playing_track");
- }
- else if(state == "stoped"){
- $("#player_" + current_document).find(".play").get(0).style.display = "inline";
- $("#player_" + current_document).find(".pause").get(0).style.display = "none";
- $("#player_" + current_document).find(".stop").get(0).style.display = "none";
- $("#track_" + source_id).removeClass("playing_track");
-// $("#track_" + source_id).addClass("track");
- $("#track_" + source_id + " .player_progress .position").not(
- "#track_" + source_id + " .pistes .player_progress .position").not(
- "#track_" + source_id + " .derivation .player_progress .position").css("width", "0%");
- }
- else if(state == "loading"){
- $("#track_" + source_id).addClass("loading_player");
- }
- }
-}
-
-function gui_blur(){
- if((current_document != false) && $("#player_" + current_document).size()){
- $("#player_" + current_document).find(".play").get(0).blur();
- $("#player_" + current_document).find(".pause").get(0).blur();
- $("#player_" + current_document).find(".stop").get(0).blur();
- }
-}