      var extSong       = ".mp3"; var songFld  = "mp3/";
      var extLyric      = ".html"; var lyricFld = "lyrics/";
      var lyricId       = "lyricContent";
      var loadTextId    = "divloadingText";
			var loadWrapperId = "divloading";
      var playingSongId = "PlayingSong";
      var now_SongName;
      var req;

      if (window.ActiveXObject) {
        window.XMLHttpRequest = function() {
          var x = null; var progIds = [
            'MSXML3.XMLHTTP.5.0',
            'MSXML3.XMLHTTP.4.0',
            'MSXML3.XMLHTTP.3.0',
            'MSXML3.XMLHTTP.2.0',
            'MSXML3.XMLHTTP',
            'MSXML2.XMLHTTP.5.0', 
            'MSXML2.XMLHTTP.4.0', 
            'MSXML2.XMLHTTP.3.0', 
            'MSXML2.XMLHTTP', 
            'Microsoft.XMLHTTP'];
          for (var i=0; i<progIds.length; i++) {
            try { x = new ActiveXObject(progIds[i]); break; } catch (ex) {};
          }; if (!x) throw new Error([0,"Can not create XMLHttpRequest Object"]);
          return x;
        };
      }
      function playSong(strSong) {
        lyricTextIs(""); now_SongName = strSong;
        loadingTextIs("Loading \"" +strSong+ "\" Data...");
        playingSongIs(strSong);
        show_loading(loadWrapperId);
        strSong = strSong.replace(/ /g,"");
        var FO  = { movie:"swf/mp3player.swf",
                   width:"770px",
                   height:"100px",
                   majorversion:"7",
                   build:"0",
                   bgcolor:"#04329E",
                   flashvars:"file=" +songFld+strSong+extSong+ "&autostart=true&backcolor=0x04329E&frontcolor=0xffffff&enablejs=true&image=images/banner.gif" };
        UFO.create(FO,"myPlayer");
        loadLyric(strSong);
      }
      
      function playingSongIs (str) {
        document.getElementById(playingSongId).innerHTML = str;
      }

      function loadingTextIs (str) {
        document.getElementById(loadTextId).innerHTML = str;
      }

      function lyricTextIs (str) {
        document.getElementById(lyricId).innerHTML = str;
      }

      function loadLyric (strSong) {
        try {
          req = new XMLHttpRequest();
          req.open("GET",lyricFld +strSong+ extLyric+"?rnd="+Math.random(),true);
          req.onreadystatechange = callback;
          req.send(null);
        } catch (ex) {};
      }

      function callback () {
        if (req.readyState==4) {
          loadingTextIs("Loading \"" +now_SongName+ "\" Lyric Complete.")
          window._timeout?window.clearTimeout(window._timeout):'';
          window._timeout=window.setTimeout(function(){hide_loading(loadWrapperId)},1500);
          var lyric;
          if (req.status!=200) { lyric="No Entry..." } else {
            lyric = req.responseText;
            lyric.replace(/\n/g,"<br/>");
          }
          lyricTextIs(lyric);
        } else { return; }

      }

      function show_loading (id) {
        var container = document.getElementById(loadWrapperId);
				var a = getCoordinate(document.getElementById(lyricId));
        var cStyle = container.style;
        cStyle.display = "block";
        cStyle.top = (parseInt(a.bottom-container.offsetHeight)/2+50)+'px';
        cStyle.left = (parseInt(a.right-container.offsetWidth)/2+50)+'px';
      }

      function hide_loading (id) {
        var container = document.getElementById(id);
        var cStyle = container.style;
        cStyle.display="none";
      }

			function getCoordinate (e) {
				var width = e.offsetWidth;
				var height = e.offsetHeight;
				var left = e.offsetLeft;
				var top = e.offsetTop;
				while (e=e.offsetParent) {
					left += e.offsetLeft;
					top  += e.offsetTop;
				}
				var right = left+width;
				var bottom = top+height;
				return {
					'width': width,
					'height': height,
					'left': left,
					'top': top,
					'right': right,
					'bottom': bottom
				}
			}

      function initializeSong (id) {
        var e = document.getElementById(id);
        var a = document.getElementsByTagName("li");
        for (var i=0; i<a.length; i++) {
          var c = a[i];
          c.onclick=function() { playSong(this.innerHTML.cleanHTML()); }
        }
      }

      String.prototype.cleanHTML = function () {
        return this.replace(/<[^<>]*>/ig,"");
      }

      window.onerror=function(){return true;}