var TRACK = 'track';
var RING = 'ring';
var RES = 'res';

var startIdx = 0;
var endIdx   = 1;

function onSlideEvent(a, b){
    $('startmls').value = a[startIdx];
    $('endmls').value = a[endIdx];
    $('hand1title').innerHTML = millisecondsToStr(a[startIdx]);
    $('hand2title').innerHTML = millisecondsToStr(a[endIdx]);
}

function is_sm(){
    return typeof(soundManager) !== 'undefined';
}


function showLoading(){
    var show = $('showonsubmit');
    var hide = $('hideonsubmit');
    var parent = hide.getOffsetParent();
    var w = hide.getWidth();
    var h = hide.getHeight();
    hide.hide();
    show.show();
    show.style.width = w + 'px';
    show.style.height = h + 'px';
}

function setBtnImg(track, state){
    if(track == TRACK){
        if(state == 0) $('track_play').src = 'images/btn_pause.png';
        else if(state == 1) $('track_play').src = 'images/btn_play.png';
    }

    if(track == RES){
        if(state==1) ringtoneStop();
    }
}

if(is_sm()){
    soundManager.url = '/sm/'; // directory where SM2 .SWFs live

    // disable debug mode after development/testing..
    soundManager.debugMode = false;
    //soundManager.flashVersion = 9;
    //soundManager.flash9Options.useWaveformData = true;

    soundManager.defaultOptions = {
        position: 0,
        whileplaying: function() {
                setTrackPosition(soundManager.getSoundById(TRACK).position);
            },
        onfinish: function(){ setBtnImg(this.sID, 1);},
        onplay:   function(){ setBtnImg(this.sID, 0);},
        onpause:  function(){ setBtnImg(this.sID, 1);},
        onresume: function(){ setBtnImg(this.sID, 0);},
        onstop:   function(){ setBtnImg(this.sID, 1);}
    };
}

function togglePause(track){
    if(!is_sm()) return;

    var t = soundManager.getSoundById(TRACK);
    if(!t) return;
    if(t.paused){
        var p = slider2.values[0];
        t.togglePause();
        t.setPosition(p);
    }else{
        t.togglePause();
    }
}

function rewindClick(track){
    if(!is_sm()) return;
    soundManager.stop(track);
    setTrackPosition(0)
}

function setTrackPosition(pos){
    slider2.setValue(pos, 0);
}


function ringtonePlay(){
    if(!is_sm()) return;

    soundManager.play(RES);
    soundManager.getSoundById(RES).setPosition(0);
    $('res_play').hide();
    $('res_stop').show();
}

function ringtoneStop(){
    if(!is_sm()) return;

    soundManager.stop(RES);
    $('res_play').show();
    $('res_stop').hide();
}

function millisecondsToStr(t){
    t = isNaN(t) ? 0 : t;
    t = Math.round(t);
    var h = parseInt(t / (60 * 60 * 1000));
    t -= h * 60 * 60 * 1000;
    var m = parseInt(t / (60 * 1000));
    t -= m * 60 * 1000;
    var s = parseInt(t / 1000);
    t -= s * 1000;
    if(h < 10) h = '0' + h;
    if(m < 10) m = '0' + m;
    if(s < 10) s = '0' + s;
    return m + ":" + s + "." + t;
}
