﻿// [MCE] These functions work in conjunction with MainMaster markup
//       you better not using it outside that context ;-)
//       DO NOT USE JQuery in here
var pendingStop;

function get(id) {
    return document.getElementById(id);
}

function play() {
    player().SetVariable("player:jsUrl", "../Mp3/shh-shh.mp3");
    player().SetVariable("player:jsPlay", "");
}

function stopPlaying() {
    player().SetVariable("player:jsStop", "");
    clearPending();
}

// [MCE] Kill timer so we don't think a song played all 30 seconds
function clearPending() {
    if (pendingStop)
        clearTimeout(pendingStop);
}

function playSong(url) {
    player().SetVariable("player:jsUrl", url);
    player().SetVariable("player:jsPlay", "");
}

function player() {
    return get('mp3player');
}

// [MCE] Tracklist.ascs functions (these need to be here because that control is inside a paga that is loaded through AJAX
function getTrack(trackNumber) {
    return get('trackName' + trackNumber);
}

function startClicked(url, trackNumber) {
    clearPending();
    playSong(url);
    hideStopButtons();
    setupPlay(trackNumber);
    // [MCE] Well, if the song plays the entire 30 seconds we must send UI back to normal
    pendingStop = setTimeout('setupStop("' + trackNumber + '")', 30000);
}

function stopClicked(trackNumber) {
    stopPlaying();
    setupStop(trackNumber);
}

function setupStop(trackNumber) {
    get('stop' + trackNumber).style.display = 'none';
    get('play' + trackNumber).style.display = '';
    get('equalizer').style.display = 'none';
    formatAllTracks(enableTrack, null);
}

function setupPlay(trackNumber) {
    get('play' + trackNumber).style.display = 'none';
    get('stop' + trackNumber).style.display = '';
    showEqualizer();
    formatAllTracks(disableTrack, trackNumber);
    highliteTrack(trackNumber);
}

function showEqualizer() {
    get('equalizer').style.display = '';
}

function hideStopButtons() {
    var track = 1;
    while (get('stop' + track))
        setupStop(track++);
}

// [MCE] Tracks -----------------
function setupTrack(trackNumber, color, weight) {
    var track = getTrack(trackNumber);
    //track.style.fontWeight = weight;
    track.style.color = color;
}

function highliteTrack(trackNumber) {
    setupTrack(trackNumber, 'blue', 'bold');
}

function disableTrack(trackNumber) {
    setupTrack(trackNumber, '#7D9EFF', '');
}

function enableTrack(trackNumber) {
    setupTrack(trackNumber, 'navy', '');
}

function formatAllTracks(formatDelegate, exceptTrackNumber) {
    var track = 1;
    while (getTrack(track)) {
        if (track != exceptTrackNumber)
            formatDelegate(track);
        track++;
    }
}
// End of tracks -----------------

