$(function(){
    loadSavedSetting();
    if($("#featured-title").val() == 0) {
    	writePlayer(getSelectedIDs().join(";"),$("#setting-repeat")[0].checked,$("#setting-shuffle")[0].checked,false);
    } else {
    	writePlayer($("#featured-title").val(),$("#setting-repeat")[0].checked,$("#setting-shuffle")[0].checked,true);	
    }	

    $("#play-button").click(function(){
        saveSetting();
        writePlayer(getSelectedIDs().join(";"),$("#setting-repeat")[0].checked,$("#setting-shuffle")[0].checked,true);
    });

    $("#select-all").click(function() {
        $(".check").each(function(){
            this.checked = true;
        });
    });

    $("#select-none").click(function() {
        $(".check").each(function(){
            this.checked = false;
        });
    });

    $("#select-invert").click(function() {
        $(".check").each(function(){
            this.checked = !this.checked;
        });
    });

    $(".title").click(function() {
        $(this).parent().find(".check")[0].checked = !$(this).parent().find(".check")[0].checked;
    });
});

function getSelectedIDs() {
    var ids = [];
    $(".check").each(function(){
        if(this.checked) {
            ids.push($(this).val());
        }
    });
    return ids;
}


function loadSavedSetting() {
    var cookies = parseCookies();
    if(cookies['repeat'] == "true") {
        $("#setting-repeat")[0].checked = true;
    } else {
        $("#setting-repeat")[0].checked = false;
    }

    if(cookies['shuffle'] == "true") {
         $("#setting-shuffle")[0].checked = true;
    } else {
         $("#setting-shuffle")[0].checked = false;
    }

    if(typeof cookies['ids'] != 'undefined') {
        ids = cookies['ids'].split("-");
        for (var i = 0; i < ids.length; i++) {
            selectTitle(ids[i]);
        }
    }
}

function selectTitle(id){
    if(id.length > 0) {
        $("#check" + id)[0].checked = true;
    }
}

function saveSetting() {
    saveCookies("repeat",$("#setting-repeat")[0].checked);
    saveCookies("shuffle",$("#setting-shuffle")[0].checked);
    saveCookies("ids",getSelectedIDs().join("-"));
}

function writePlayer(ids,repeat,shuffle,autostart) {
  var player = new SWFObject("mediaplayer/mediaplayer.swf","mediaplayer","400","500","8");
  player.addParam("allowfullscreen","true");
  player.addVariable("config","mediaplayer/config.xml");

  player.addVariable("file","playlist.php?ids=" + ids);
  player.addVariable("autostart",autostart);
  player.addVariable("shuffle",shuffle);
  if(repeat) {
      player.addVariable("repeat","always");
  } else {
      player.addVariable("repeat","list");
  }

  player.write("mp");
}

function saveCookies(key,value){
    var expire = new Date();
    expire.setDate(expire.getDate() + 365);
    document.cookie = key + "=" + value + "; expires=" + expire.toGMTString() + ";";
}

function parseCookies(){
    var cookieList = document.cookie.split("; ");
    var cookieArray = [];
    for (var i = 0; i < cookieList.length; i++){
        var str = cookieList[i].split("=");
        cookieArray[unescape(str[0])] = unescape(str[1]);
    }

    return cookieArray;
}
