	var mp3Listener = new Object();
	var ajaxMp3Player = new cAJAX("ajaxMp3Player");

	var playingTrackList = false;
	var playingListNo = 0;
	var playingTrackNo = 0;

	var isPlaying = false;

	mp3Listener.onInit = function() {
	}  // end function

	mp3Listener.onUpdate = function() {
		var url = this.url;
		var volume = this.volume;
		var position = this.position;
		var duration = this.duration;

		isPlaying = (this.isPlaying == "true");

		if (!isPlaying && playingTrackList && playingTrackNo < playlist[playingListNo].length) {
			trackEnded();
		}  // end if
		updatePlaylist(playingListNo);
	};

	function getMp3Player() {
		return document.getElementById("mp3Player");
	}  // end function

	function playMp3(url, title) {
		getMp3Player().SetVariable("method:setUrl", url);

		getMp3Player().SetVariable("method:play", "");
		getMp3Player().SetVariable("enabled", "true");

		document.getElementById("Mp3PlayerTitle").innerHTML = title;
	}  // end function

	function pauseMp3() {
		getMp3Player().SetVariable("method:pause", "");
	}  // end function

	function stopMp3() {
		playingTrackList = false;
		getMp3Player().SetVariable("method:stop", "");
	}  // end function

	function playTracklist(list) {
		playingTrackList = true;
		if (playingTrackNo < 1) playingTrackNo = 1;
		playTrackFromList(list, playingTrackNo);
		updatePlaylist(list);
	}  // end function

	function playShuffled(list) {
		playingTrackList = true;
		playingTrackNo = Math.floor(Math.random() * (playlist[list].length - 1));
		playTrackFromList(list, playingTrackNo);
		updatePlaylist(list);
	}  // end function

	function playTrack(list, no) {
		playingTrackList = false;
		playTrackFromList(list, no);
		updatePlaylist(list);
	}  // end function

	function playPrev() {
		if (playingTrackNo > 1) {
			playTrackFromList(playingListNo, playingTrackNo - 1);
		}  // end if
	}  // end function

	function playNext() {
		if (playingTrackNo < playlist[playingListNo].length) {
			playTrackFromList(playingListNo, playingTrackNo + 1);
		}  // end if
	}  // end function

	function playTrackFromList(list, no) {
		if (typeof playlist[list][no] != "undefined") {
			if (typeof playlist[list][no]["url"] != "undefined") {
				playMp3(playlist[list][no]["url"], playlist[list][no]["title"]);
				playingListNo = list; playingTrackNo = no;

			// Die Infos per AJAX holen
			} else {
				ajaxMp3Player.url = "../ajax/gettrackinfo.php?id=" + playlist[list][no]["id"];
				ajaxMp3Player.method = "get";

				ajaxMp3Player.callbackFunction = "parseTrackInfo(" + list + ", " + no + ")";
				ajaxMp3Player.call();
			}  // end if
		}  // end if
	}  // end function

	function parseTrackInfo(list, no) {
		var trackInfo = eval("(" + ajaxMp3Player.data + ")");

		playlist[list][no]["title"] = trackInfo.title;
		playlist[list][no]["url"] = trackInfo.previewurl;

		playMp3(playlist[list][no]["url"], playlist[list][no]["title"]);

		playingListNo = list; playingTrackNo = no;
	}  // end function

	function updatePlaylist(list) {
		if (document.getElementById("PlayTrack1")) {
			for (var t = 1; t < playlist[list].length; t++) {
				if (isPlaying && playingTrackNo == t) {
					document.getElementById("PlayTrack" + t).innerHTML = "<a href=\"javascript:stopMp3()\"><img src=\"../grafix/btn_stop.png\"></a>";
				} else {
					document.getElementById("PlayTrack" + t).innerHTML = "<a href=\"javascript:playTrack(" + t + ")\"><img src=\"../grafix/btn_play.png\"></a>";
				}  // end if
			}  // end for
		}  // end if
	}  // end function
