function _setMizRadioPlayList() {
	var url = "funnelPostsCache.xml";
	var http = new JKL.ParseXML(url + '?' + (new Date).getTime());
	var data = http.parse();
    var trackItems = (data.hash.tracks.track instanceof Array) ? data.hash.tracks.track : new Array(data.hash.tracks.track);
    miz$('playlist').innerHTML = '';

    for (var i=0, j=trackItems.length; i<j; i++) {
		var videoId = (trackItems[i].url.split("?")[1]).split("v=")[1];
		var displayFormat = trackItems[i].track_name + " - " + trackItems[i].artist_name;
		var LiElmt = mizuyari.elementFactory("LI", {
			'id'	: videoId,
		    'title' : displayFormat || ""
		});
		LiElmt.innerHTML = "<span>" + displayFormat + "<\/span>";
		mizuyari.addEvent(LiElmt, "click", function(){
			if (activeVideoElmt != this) {
				playMizRadioByLIElmt(this);
			} else {
				stopMizRadio();
			}
		});
		mizuyari.addEvent(LiElmt, "mouseover", function(){
			mizuyari.addClass(this, 'over');
		});
		mizuyari.addEvent(LiElmt, "mouseout", function(){
			mizuyari.removeClass(this, 'over');
		});
		miz$('playlist').appendChild(LiElmt);
	}
	loadPlayer();
}

function playMizRadioNextTrack() {
	var nextElmt = activeVideoElmt.nextElementSibling || miz$('playlist').firstChild;
	playMizRadioByLIElmt(nextElmt);
}

function playMizRadioByLIElmt(elmt) {
	if (!ytplayer) return;
	ytplayer.loadVideoById(elmt.id);
	mizuyari.addClass(elmt, 'active');
	mizuyari.removeClass(elmt, 'unavailable');
	if (activeVideoElmt) mizuyari.removeClass(activeVideoElmt, 'active');
	activeVideoElmt = elmt;
}

function stopMizRadio() {
	ytplayer.stopVideo();
	mizuyari.removeClass(activeVideoElmt, 'active');
	activeVideoElmt = null;
}

// This function is called when an error is thrown by the player
function onPlayerError(errorCode) {
	// trace("An error occured of type:" + errorCode);
	if (activeVideoElmt) {
		mizuyari.addClass(activeVideoElmt, 'unavailable');
		if (miz$('playlist').getElementsByTagName("LI").length > 1) {
			var tempTimer = setTimeout("playMizRadioNextTrack()", 500);
		}
	}
}
function onPlayerStateChange(newState) {
	// trace(newState);
	if (newState == 0) {
		playMizRadioNextTrack();
	}
	var volumeImg = miz$('volume').getElementsByTagName('IMG')[0];
	if (newState == 1) {
		volumeImg.src = 'images/volume_on.gif';
	} else {
		volumeImg.src = 'images/volume.gif';
	}
}

// This function is automatically called by the player once it loads
function onYouTubePlayerReady(playerId) {
	ytplayer = document.getElementById("ytPlayer");
	ytplayer.addEventListener("onError", "onPlayerError");
	ytplayer.addEventListener("onStateChange", "onPlayerStateChange");
}

// The "main method" of this sample. Called when someone clicks "Run".
function loadPlayer() {
	// Lets Flash from another domain call JavaScript
	var params = { allowScriptAccess: "always" };
	// The element id of the Flash embed
	var atts = { id: "ytPlayer" };
	// All of the magic handled by SWFObject (http://code.google.com/p/swfobject/)
	swfobject.embedSWF("http://www.youtube.com/apiplayer?" +
                     "&enablejsapi=1&playerapiid=player1",
                     "videoDiv", "0", "0", "8", null, null, params, atts);
}

var activeVideoElmt = null;
google.load("swfobject", "2.1");
google.setOnLoadCallback(_setMizRadioPlayList);