var player = null;
var playlist = null;
var previousItem = null;
var currentTime = null;
var seek = true;
var indexitem = null;


var file = unescape(readCookie('file'));
var title = unescape(readCookie('title'));
var time = unescape(readCookie('time'));
var state = unescape(readCookie('state'));
var volume = unescape(readCookie('volume'));
var track = unescape(readCookie('track'));

var autoStart = "false";

if (state == 'PLAYING' || state == "NULL") {
    autoStart = true;
}

if (state == 'PAUSED' || state == "IDLE") {
    autoStart = false;
}


var flashvars =
      {
          'shuffle': 'false',
          'repeat': 'always',
          'playlist': 'none',
          'controlbar': 'bottom',
          'icons': 'false',
          'backcolor': 'FFFFFF',
          'frontcolor': '999999',
          'lightcolor': '00FF00',
          'id': 'player',
          'autostart': autoStart
      };

var params =
      {
          'allowscriptaccess': 'always',
          'allowfullscreen': 'false',
          'wmode': 'transparent'
      };

var attributes =
      {
          'id': 'player',
          'name': 'player'
      };

if ((file == null) || (file == '') || (file == 'null')) {
    flashvars.file = 'xml/playlist.xml';
}
else {
    flashvars.file = file;
}

//...workaround because player.getConfig().file doesn't return the new file
var currentFile = flashvars.file;

if ((volume == null) || (volume == '') || (volume == 'null')) {
    flashvars.volume = '80';
} else {
    flashvars.volume = volume;
}

// flashvars.volume = 0;

if ((track == null) || (track == '') || (track == 'null')) {
    flashvars.item = 0;
}
else {
    flashvars.item = track;
}


swfobject.embedSWF('swf/player.swf', 'player', '278', '16', '9.0.124', "scripts/swfobject/expressinstall.swf", flashvars, params, attributes);


function createCookie(file, title, time, state, volume, days, track) {

    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        var expires = '; expires=' + date.toGMTString();
    }
    else {
        var expires = '';
    }

    document.cookie = 'file=' + escape(file) + expires + '; path=/';
    document.cookie = 'title=' + escape(title) + expires + '; path=/';
    document.cookie = 'time=' + escape(time) + expires + '; path=/';
    document.cookie = 'state=' + escape(state) + expires + '; path=/';
    document.cookie = 'volume=' + escape(volume) + expires + '; path=/';
    document.cookie = 'track=' + escape(track) + expires + '; path=/';

};

function readCookie(name) {
    var nameEQ = name + '=';
    var ca = document.cookie.split(';');

    for (var j = 0; j < ca.length; j++) {
        var c = ca[j];

        while (c.charAt(0) == ' ') {
            c = c.substring(1, c.length);
        }

        if (c.indexOf(nameEQ) == 0) {
            return c.substring(nameEQ.length, c.length);
        }
    }
    return null;
};

function eraseCookie(name) {
    createCookie(name, '', -1);
};

function playerReady(obj) {
    player = gid(obj.id);
    addListeners();
    /*alert(state);
    if(state == 'PAUSED'){
    player.sendEvent('PLAY', 'false');
    }else if (state =="PLAYING" || state == "BUFFERING" || state == "IDLE"){
    state = "PLAYING";
    player.sendEvent('PLAY', 'true');
    }else if(state == "null"){
    state = "PLAYING";
    player.sendEvent('PLAY', 'true');
    }*/
};

function addListeners() {
    playlist = player.getPlaylist();

    if (playlist.length > 0) {
        player.addControllerListener('ITEM', 'itemListener');
        player.addControllerListener('VOLUME', 'volumeListener');
        player.addModelListener('TIME', 'timeListener');
        itemListener({ index: 0 });
        volumeListener({ percentage: player.getConfig().volume });
        printPlaylistData();

        //...index to title
        /*  for(var j in playlist)
        {
        for(var k in playlist[j])
        {
        if(playlist[j][k] == title)
        {
        player.sendEvent('ITEM', j);
        }
        }
        }*/

    } else {
        setTimeout("addListeners()", 100);
    }
};

function itemListener(obj) {
    //gid('item').innerHTML = 'Current Item: ' + obj.index + '<br>Previous Item: ' + previousItem;
    getPlaylistData(obj.index);
    previousItem = obj.index;
};

function volumeListener(obj) {
    // gid('volume').innerHTML = 'Volume: ' + obj.percentage;
};

function timeListener(obj) {
    currentTime = obj.position;

    //...only if there is serverside support for streaming
    if ((seek == true) && (obj.position > 0)) {

        seek = false;
        player.sendEvent('SEEK', time);
    }

    if ((state == 'PAUSED') && (obj.position > time)) {
        state = 'PLAYING';
        player.sendEvent('PLAY', 'true');
    }


};

function getPlaylistData(idx) {
    // gid('flashmusicnowplaying').innerHTML = '<div class="nowplaying">Now Playing: ' + playlist[idx].author + ' - ' + playlist[idx].title + '</div>';
    // gid('flashmusicshare').innerHTML      = '<div class="share">Share this tune:</div>';
};

function printPlaylistData() {
    var txt = '<a class="prevPage" onFocus="if(this.blur)this.blur()">Â«</a><div class="scrollable"><div class="items">';

    for (var i in playlist) {
        txt += '<a href="#" onclick="javascript:player.sendEvent(\'ITEM\',' + i + '); javascript:return false;" title="Click to Play" onFocus="if(this.blur)this.blur()"><img src="' + playlist[i].image + '" align="left" border="0" alt="Click to Play" vspace="0" hspace="0" /><div>' + playlist[i].title + '<br />' + playlist[i].author + '</div></a>';
    }

    txt += '</div></div><a class="nextPage" onFocus="if(this.blur)this.blur()">Â»</a>';
    //gid('playlist').innerHTML = txt;
};

function loadPlaylist(file, item) {

    alert("testing");
    if (!item) item = 0;
    indexitem = item;

    player.sendEvent('STOP');
    player.sendEvent('LOAD', { file: file });

    //...workaround because player.getConfig().file doesn't return the new file
    currentFile = file;
    //alert('loadPlaylist - item: ' + indexitem);
    setTimeout("player.sendEvent('ITEM', indexitem); playlist = player.getPlaylist();", 100);
    setTimeout("itemListener({index:indexitem}); printPlaylistData();", 200);
};

//...testing only...
function dumpCookie() {
    file = unescape(readCookie('file'));
    title = unescape(readCookie('title'));
    time = unescape(readCookie('time'));
    state = unescape(readCookie('state'));
    volume = unescape(readCookie('volume'));
    //gid('cookie').innerHTML = '<br />Cookie:<br />File: ' + file + '<br />Title: ' + title + '<br />Time: ' + time + '<br />State: ' + state + '<br />Volume: ' +volume;
}

function gid(name) {
    return document.getElementById(name);
};
