﻿var initMusic = true;
var musicId = '';
var musicVolume = 100;
var musicIsPlaying = false;
var musicPosition = 0;
var musicDuration = 0;
var musicPlayOnInit = false;
var musicRepeat = true;
var mySound = null;

function playMusic(jid, file, volume, page) {
    if (initMusic) {
        musicId = jid;
        musicVolume = volume;
        soundManager.url = 'music/';
        soundManager.waitForWindowLoad = true;

        // disable debug mode after development/testing
        // soundManager.debugMode = false;

        soundManager.onload = function() {
            mySound = soundManager.createSound({
                id: jid,
                url: file
            });
            mySound.setVolume(volume);
            mySound.options.whileplaying = function() {
                musicPosition = this.position;
                musicDuration = this.duration;
            }
            /*mySound.play({
            onfinish: function() {
            this.play();
            }
            });
            musicIsPlaying = true;*/
            setTimeout(playMusicDelay, 10);
        }

        soundManager.onerror = function() {
        }

        initMusic = false;
    }
    else {
        var id = musicId;
        if (jid) id = jid;
        soundManager.play(id);
    }
}

function getMusicPosition() {
    return musicPosition;
}

function getMusicDuration() {
    return musicDuration;
}

function playMusicDelay() {
    var objMusicSpan = document.getElementById('musicSpan');
    if (objMusicSpan) {
        objMusicSpan.style.display = '';
    }
    if (musicPlayOnInit && mySound) {
        mySound.play({
            onfinish: function() {
                if (musicRepeat) {
                    this.play();
                }
                else {
                    updateMusicButtons();
                }
            }
        });
        musicIsPlaying = true;
    }
}

function finishMusicDelay() {
    updateMusicButtons();
    alert(mySound.paused);
}

function stopMusic(jid) {
    if (!soundManager) return;
    if (!mySound) return;
    var id = musicId;
    if (jid) id = jid;
    soundManager.stop(id);
    musicIsPlaying = false;
    updateMusicButtons();
}

function pauseMusic(jid) {
    if (!soundManager) return;
    if (!mySound) return;
    var id = musicId;
    if (jid) id = jid;
    soundManager.pause(id);
    musicIsPlaying = false;
    updateMusicButtons();
}

function resumeMusic(jid) {
    if (!soundManager) return;
    if (!mySound) return;
    var id = musicId;
    if (jid) id = jid;
    soundManager.resume(id);
    musicIsPlaying = true;
    updateMusicButtons();
}

function setMusicVolume(jid, volume) {
    if (!soundManager) return;
    if (!mySound) return;
    var id = musicId;
    if (jid) id = jid;
    musicVolume = volume;
    if (musicVolume > 100) {
        musicVolume = 100;
    }
    else if (musicVolume < 0) {
        musicVolume = 0;
    }
    //alert('setMusicVolume: ' + id + ', ' + musicVolume);
    soundManager.setVolume(id, musicVolume);
}

function incMusicVolume(jid, volume) {
    var id = musicId;
    if (jid) id = jid;
    //alert('incMusicVolume: ' + id + ', ' + musicVolume + ', ' + volume);
    if (volume < 0 && musicVolume > 0) {
        setMusicVolume(id, musicVolume + volume);
    }
    else if (volume > 0 && musicVolume < 100) {
        setMusicVolume(id, musicVolume + volume);
    }
}

function toggleMusic() {
    if (!mySound) return;
    //var obj = document.getElementById('musicToggleImg');
    mySound.togglePause();
    //alert('playState: ' + mySound.playState + ', paused: ' + mySound.paused);
    updateMusicButtons();
}

function updateMusicButtons() {
    var obj = document.getElementById('musicToggleImg');
    if (mySound && (mySound.playState == 0 || mySound.paused == true)) {
        if (obj) obj.src = 'images/music_play.gif';
        musicIsPlaying = false;
    }
    else {
        if (obj) obj.src = 'images/music_pause.gif';
        musicIsPlaying = true;
    }
}

