        	var myListener = new Object();
        	
        	/**
        	 * Initialize
        	 */
        	 
        	myListener.onInit = function()
        	{
        		_addEventListener(document.getElementById("playerslider"), "mousedown", _sliderDown, false);
        		_addEventListener(document, "mousemove", _sliderMove, false);
        		_addEventListener(document, "mouseup", _sliderUp, false);
        	};
        	
        	/**
        	 * Update
        	 */
        	myListener.onUpdate = function()
        	{
        		var isPlaying = this.isPlaying;
           		var url = this.url;
           		var volume = this.volume;
           		var position = this.position;
            	var duration = this.duration;
            	
            	var id3_artist = this.id3_artist;
            	var id3_album = this.id3_album;
            	var id3_songname = this.id3_songname;
            	var id3_genre = this.id3_genre;
            	var id3_year = this.id3_year;
            	var id3_track = this.id3_track;
            	var id3_comment = this.id3_comment;
            	
            	document.getElementById("info_playing").innerHTML = isPlaying;
            	document.getElementById("info_url").innerHTML = url;
            	document.getElementById("info_volume").innerHTML = volume;
            	document.getElementById("info_position").innerHTML = position;
            	document.getElementById("info_duration").innerHTML = duration;
            	document.getElementById("info_bytes").innerHTML = this.bytesLoaded + "/" + this.bytesTotal + " (" + this.bytesPercent + "%)";
            	
            	document.getElementById("info_id3_artist").innerHTML = id3_artist;
            	document.getElementById("info_id3_album").innerHTML = id3_album;
            	document.getElementById("info_id3_songname").innerHTML = id3_songname;
            	document.getElementById("info_id3_genre").innerHTML = id3_genre;
            	document.getElementById("info_id3_year").innerHTML = id3_year;
            	document.getElementById("info_id3_track").innerHTML = id3_track;
            	document.getElementById("info_id3_comment").innerHTML = id3_comment;
            	
            	isPlaying = (isPlaying == "true");
           		document.getElementById("playerplay").style.display = (isPlaying)?"none":"block";
           		document.getElementById("playerpause").style.display = (isPlaying)?"block":"none";
           		
            	var timelineWidth = 160;
            	var sliderWidth = 40;
            	var sliderPositionMin = 40;
            	var sliderPositionMax = sliderPositionMin + timelineWidth - sliderWidth;
            	var sliderPosition = sliderPositionMin + Math.round((timelineWidth - sliderWidth)* position / duration);
            	
            	if (sliderPosition < sliderPositionMin) {
            		sliderPosition = sliderPositionMin;
            	}
            	if (sliderPosition > sliderPositionMax) {
            		sliderPosition = sliderPositionMax;
            	}
            	
            	document.getElementById("playerslider").style.left = sliderPosition+"px";
        	};
        	
        	/**
        	 * private functions
        	 */
        	var sliderPressed = false;
        	function _getFlashObject()
        	{
        		return document.getElementById("myFlash");
        	}
        	function _cumulativeOffset (pElement)
        	{
				var valueT = 0, valueL = 0;
				do {
					valueT += pElement.offsetTop  || 0;
					valueL += pElement.offsetLeft || 0;
					pElement = pElement.offsetParent;
				} while (pElement);
				return [valueL, valueT];
			}
        	function _xmouse(pEvent)
        	{
				return pEvent.pageX || (pEvent.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft));
        	}
        	function _ymouse(pEvent)
        	{
				return pEvent.pageY || (pEvent.clientY + (document.documentElement.scrollTop || document.body.scrollTop));
        	}
        	function _findPosX(pElement)
        	{
				if (!pElement) return 0;
				var pos = _cumulativeOffset(pElement);
				return pos[0];
			}
        	function _findPosY(pElement)
        	{
				if (!pElement) return 0;
				var pos = _cumulativeOffset(pElement);
				return pos[1];
			}
			
			
        	function _addEventListener(pElement, pName, pListener, pUseCapture)
        	{
				if (pElement.addEventListener) {
					pElement.addEventListener(pName, pListener, pUseCapture);
				} else if (pElement.attachEvent) {
					pElement.attachEvent("on"+pName, pListener);
				}
			}
			
			
			function _sliderDown(pEvent)
			{
				sliderPressed = true;
			}
			function _sliderMove(pEvent)
			{
				if (sliderPressed) {
					var timelineWidth = 160;
					var sliderWidth = 40;
	            	var sliderPositionMin = 40;
	            	var sliderPositionMax = sliderPositionMin + timelineWidth - sliderWidth;
					var startX = _findPosX(document.getElementById("timeline"));
					var x = _xmouse(pEvent) - sliderWidth / 2;
					
					if (x < startX) {
						var position = 0;
					} else if (x > startX + timelineWidth) {
						var position = myListener.duration;
					} else {
						var position = Math.round(myListener.duration * (x - startX - sliderWidth) / (startX + timelineWidth - sliderWidth - startX));
					}
					_getFlashObject().SetVariable("method:setPosition", position);
				}
			}
			function _sliderUp(pEvent)
			{
				sliderPressed = false;
			}
        	
        	/**
        	 * public functions
        	 */
        	
            function play() {
            	if (myListener.url == "undefined") {
                	_getFlashObject().SetVariable("method:setUrl", "test.mp3");
                }
                //_getFlashObject().SetVariable("method:setUrl", "http://scfire-nyk-aa01.stream.aol.com:80/stream/1074");
                _getFlashObject().SetVariable("method:play", "");
                document.getElementById("playerplay").style.display="none";
                document.getElementById("playerstop").style.display="block";
            }
            function pause() {
                _getFlashObject().SetVariable("method:pause", "");
            }
            function stop() {
                _getFlashObject().SetVariable("method:stop", "");
                document.getElementById("playerplay").style.display="block";
                document.getElementById("playerstop").style.display="none";
            }            
            
  
