(function (win,doc){
var useHTML5player = false,hasAudio = !!doc.createElement('audio').canPlayType,ua = navigator.userAgent.toLowerCase(),
	forceHTML5 = location.href.indexOf('html5')!=-1,
	isWin = (ua.indexOf("windows") != -1 || ua.indexOf("win32") != -1),
	isFF = !!doc.getBoxObjectFor || 'mozInnerScreenX' in win,
	html5player = '<audio preload="preload" data-loaded="0" style="width:330px;width:auto\\0;" width="330" height="66" autoplay="true" controls="controls" id="MediaPlayer1"></audio>',
	wmplayer = '<object id="MediaPlayer1" width="330" height="66" classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" ' +
	'codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,7,1112"' +
	'align="baseline" border="0" standby="Loading Microsoft Windows Media Player components..." ' +
	'type="application/x-oleobject">' +
	'    <param name="URL" value="" />' +
	'    <param name="autoStart" value="true" />' +
	'    <param name="invokeURLs" value="false" />' +
	'    <param name="playCount" value="100" />' +
	'    <param name="defaultFrame" value="0">' +
	'       ' +
	'		<embed src="" align="baseline" border="0" width="330" height="66"' +
	'			type="application\/x-mplayer2"' +
	'			pluginspage="http://port25.technet.com/videos/downloads/wmpfirefoxplugin.exe" playCount="100"' +
	'			name="MediaPlayer1" id="MediaPlayer1" showcontrols="1" showpositioncontrols="0"' +
	'			showaudiocontrols="1" showtracker="1" showdisplay="0"' +
	'			showstatusbar="1"' +
	'			autosize="0"' +
	'			showgotobar="0" showcaptioning="0" autostart="1" autorewind="0"' +
	'			animationatstart="0" transparentatstart="0" allowscan="1"' +
	'			enablecontextmenu="1" clicktoplay="0" ' +
	'			defaultframe="0" invokeurls="0" />' +
	'<\/object>'+
	'<script language="jscript" for="MediaPlayer1" type="text/jscript" event="PlayStateChange">'+
'LM.playStateChange();'+
'<\/scri'+'pt>';
if(hasAudio){
	useHTML5player = ((isWin && isFF) && (isFF && !forceHTML5)) ? false : true;
}

document.write('<div class="sbox workspace undis"><div class="ctr"><div class="tt"><div class="sbox-close"><a id="clsA" class="fico" title="关闭"></a></div></div><div id="playerpane"><div class="coll"><div id="player">'+
(useHTML5player ? html5player : wmplayer)+'<input type="file" class="undis" id="localmp3file" />'+
'</div><div id="ctrlbar"><p><em>操作</em>：<a id="set-dxplay-lnk" title="渲染播放"><b id="dxA" class="fico"></b>渲染</a> <a id="ilove-lnk" title="喜欢，顶一下"><b id="hitA" class="fico"></b>顶</a> <a id="newin-play-lnk" title="在新窗口播放"><b id="newinA" class="fico"></b>新窗口</a> <a id="down-this-lnk" title="下载这首歌曲"><b id="dwnA" class="fico"></b>下载</a> <a id="add2mybox-lnk" title="添加到播放列表"><b id="addA" class="fico"></b>添加</a></p><p><em onclick="g(\'MediaPlayer1\').innerHTML=null;">出处</em>：<span id="mp3Src">loading...</span><a id="copySrc" title="点击拷贝歌曲地址"><b id="cpUrlA" class="fico"></b>复制</a></p></div><div id="id3info"><em>ID3源</em>：<span id="chgname"></span></div><div id="mp3info"><em>歌曲名</em>：<span id="chgname"></span></div><div id="playlist"><em>播放地址</em>：<a href="#">试听慢，点这儿</a><ul></ul></div></div><div class="colr"><div class="tab"><a href="#lrc#lrcinfo#lrcpane" class="current">同步歌词</a><a href="#iplaylist">我的歌曲</a><a href="#moon">心情故事</a><a href="#download">歌曲搜索</a></div><div id="lrcTable" class="undis"></div><div id="lrcpane"><div id="lrc-option"><input type="checkbox" id="klok-chk" checked="checked"/><label for="klok-chk">卡拉OK歌词</label> <input type="checkbox" id="repeat-mode-chk" /><label for="repeat-mode-chk">重复单曲</label> <input type="checkbox" id="cbSync" checked="checked"/><label for="cbSync">同步歌词</label>        <span style="float:right; line-height:10px; margin-right:10px; cursor:pointer">            <a class="up-scr-lnk" title="歌词向下滚动" onmouseover="scrollLrc(true)" onmouseout="clearScroll()"></a>            <a class="dn-scr-lnk" title="歌词向上滚动" onmouseover="scrollLrc(false)" onmouseout="clearScroll()" ></a>        </span>                    </div>    <div class="dir5"></div>        <div id="lrcWrapper" class="rb-lrc">        <table id="lrc" cellpadding="0" cellspacing="0" border="0" width="200px"></table>    </div>        <div class="dir10"></div></div><div id="lrcinfo" class="undis"><div id="moveing" class="undis"><em>发布与我心灵共鸣的歌词</em>(附上心情噢)：<div id="imoveing"><p><textarea id="mylrcstorytxt" cols="45" rows="5"></textarea></p><p><label for="mylrcuser">用户名：</label><input id="mylrcuser" class="ftxt" value="" /></p><p><input class="fbtnHover" type="button" value="发表心灵共鸣歌词" /></p></div></div><div id="ilrcsearch" class="undis"><label for="">歌曲名：<input type="text" value="" /></label><input type="button" value="获取歌词" /></div></div><div id="iplaylist" class="undis"><div id="iplaylist-ctr"><div id="played"><em class="ico-fold" rel="({id:\'iplayed\',act:\'\'})">历史记录</em>：<a href="#" id="clear-history-lnk"><b id="clsckA" class="fico"></b>清空</a> <a id="export-histry-lnk"><b id="svlstA" class="fico"></b>导出</a><ul class="undis" id="iplayed"></ul></div><div id="mplayed"><em class="ico-fold" rel="({id:\'implayed\',act:\'\'})">连播歌曲</em>：<ul class="playlist" id="implayed"></ul></div><h3 class="ico-fold" rel="({id:\'ifavlist\',act:\'\'})">我的收藏：</h3><div id="ifavlist" class="undis"></div><h3 class="ico-fold" rel="({id:\'ilocalmp3upload,ilocalmp3upload-ie\',act:LM.user.iupload()})">上传歌曲：</h3><div class="localupload-before undis" id="ilocalmp3upload" contenteditable="true">将歌曲直接拖到此处</div><div class="localupload-before undis" id="ilocalmp3upload-ie"></div><h3 class="ico-fold" rel="({id:\'icommended\',act:LM.user.icommend()})">推荐好歌：</h3><div id="icommended" class="undis"><iframe id="icmdfrm" allowtransparency="true" frameborder="0" marginwidth="0"></iframe></div><h3 class="ico-fold" rel="({id:\'iqzone\',act:LM.user.iqzone()})">我的QQ空间：</h3><div id="iqzone" class="undis"><iframe id="iqzonefrm" allowtransparency="true" frameborder="0" marginwidth="0"></iframe></div></div></div><div id="moon" class="undis"><iframe id="moonfrm" allowtransparency="true" frameborder="0" marginwidth="0" src="javascript:\'\';"></iframe></div><div id="iinfo" class="undis"></div><div id="download" class="undis"><iframe id="dnloadfrm" allowtransparency="true" frameborder="0" marginwidth="0" src="javascript:\'\';" scrolling="no"></iframe></div><div id="mp3404" class="undis"></div></div></div><div class="other"></div></div></div><div id="playstatus" class="pl"></div>'+
'<div class="hr1"></div><div class="hr2"></div>'+
'<div id="ft">&copy;2010 LinrStudio 心情音乐 | <a href="/ff/options.html">所有音乐服务</a> | <a href="/ff/gushi.asp?sn=%CE%D2%C3%C7%D4%DA%BD%F8%B2%BD&id=9686">我们在进步</a> | <a href="#" onclick="window.external.AddService(\'http://www.nihaoku.cn/LinrAccelerator.xml\');return false;">添加到IE8</a> | <a target="_blank" href="/ff/about/">About us</a> 湘ICP备09003231号</div></div><div id="myklok"></div><div class="klok-pl" id="layer23"></div><div id="ui-ctrlbar" class="ui-ctrlbar"><a id="J_play_it"><s class="ui-ico ui-ico-play"></s>播放</a> <a id="J_add2playlist" title="添加到正在播放"><s class="ui-ico ui-ico-add"></s>添加</a> <a id="J_open2play" title="弹出播放"><s class="ui-ico ui-ico-nplay"></s>弹出</a></div>');
})(window,document);
var cfg={
	glbAudio:!!document.createElement('audio').canPlayType,
	glbWmpObj:document.getElementById('MediaPlayer1'),
	glbHTML5:document.getElementById('MediaPlayer1').tagName.toLowerCase()=='audio',
	glbSongName:'',
	glbSongNameArr:[],
	glbHistySongNameArr:[],
	glbCurIdx:0,
	localMusicObj:document.getElementById('ilocalmp3upload'),
	cookie:{
		history:'ilistented',
		lastsong:'',
		searched:'',
		themes:''
	},
	coreUriArr:[]
};
window.LM || (function(win,doc){
var LM = win.LM = {
	player:cfg.glbWmpObj,
	workspace:null,
	timer:null,
	mask:null,
	play:function(){
		var _o=arguments[0];
		cfg.glbSongName=(lr.isStr(_o))?_o:lr.getText(_o);
		LM.qPlay(cfg.glbSongName);
		LM.setMask();
	},
	setSongname:function(){
		s('#mp3info span')[0].innerHTML='<a href="#" onclick="lr.copy(this.innerHTML);return false;">'+cfg.glbSongName+'</a>';
	},
	log:function(msg){
		window.console && console.log(msg);
	},
	bindAudio:function(){
		if(LM.player.getAttribute('data-loaded')==='0'){
			LM.player.addEventListener('playing',function(){
				var u = LM.player.currentSrc;
				g('mp3Src').innerHTML='<a href="'+u+'">'+lr.getHost(u)+'</a>';
				LM.getLrc();
				Cookies.toJs(cfg.cookie.history,{"n":cfg.glbSongName,"u":LM.player.URL});
				lr.js('/ff/member/ctrl.php?api=saveurl&s='+cfg.glbSongName+'&sv='+LM.player.URL+'&id=1','lr-saveurl-js','');
			},false);
			LM.player.addEventListener('error',function(){
				LM.log('err');
			},false);
			LM.player.addEventListener('ended',function(){
				LM.log('play end..');
				LM.playEnd();
			},false);
		}
	},
	playUrl:function(u){
		LM.player = g('MediaPlayer1');
		if(LM.player.tagName.toLowerCase()=='audio'){
			LM.setAudioSrc(u);
			LM.bindAudio();
			LM.player.setAttribute('data-loaded',1);
		}else{
			if(window.ActiveXObject){	
				LM.player.URL=u;
			}
			else{
				g('MediaPlayer1').innerHTML='<embed mastersound src="'+u+'" type="application/x-mplayer2" pluginspage="" name="MediaPlayer1" id="MediaPlayer1" showcontrols="1" showpositioncontrols="0" showaudiocontrols="1" showtracker="1" showdisplay="0" showstatusbar="1" autosize="0" showgotobar="0" showcaptioning="0" autostart="1" autorewind="0" animationatstart="0" transparentatstart="0" allowscan="1" enablecontextmenu="1" clicktoplay="0" defaultframe="0" invokeurls="0" align="bottom" border="0" height="66" width="330" />';
			}
			g('mp3Src').innerHTML='<a href="'+u+'">'+lr.getHost(u)+'</a>';
		}
		
	},
	playWin:function(){
		window.open('play.htm#'+lr.urlEncode(cfg.glbSongName),'','width=370,height=510,resizable=1,scrollbars=1');
	},
	playArr:function(t,a,i){
		(i)?LM.initPlaylist(t,a):LM.initCorePlaylist(t)
	},
	qPlay:function(){
		var str=cfg.glbSongName;
			lr.js('http://blog.163.com/s/urlSearch.s?_jsonType=2&n='+getSongName(str,1).$songName+'&a='+getSongName(str,1).$artistor+'&event=LM.playArr&t=1199802961437&extend={"name":"'+getSongName(str,1).$songName+'","author":"'+getSongName(str,1).$artistor+'","url":"","index":0}&fromMailMusic','blog163','','UTF-8');
	},
	getArtist:function(){},
	getArtistAlbum:function(){},
	getSongName:function(str){
		var reg = /^[a-zA-Z\ ]+$/g;
		return (reg.test(str))?str.replace(/ /g,'+'):str;
	},
	getId3:function(wmp){
		var _cm = wmp.currentMedia;
		var _sn = _cm.getItemInfo("Title");
		var _artist = (_cm.getItemInfo("Author"))?_cm.getItemInfo("Author"):'';
		var _id3 = _sn+' '+_artist;
		return _id3;
	},
	getPlaylist:function(){},
	getLrc:function(){
		var str=cfg.glbSongName;
		lr.js('http://blog.163.com/s/lrc.s?_jsonType=2&n='+getSongName(str,1).$songName+'&a='+getSongName(str,1).$artistor+'&p=&event=LM.initLrcData&t=1199802964218&extend={"name":"'+getSongName(str,1).$songName+'","author":"'+getSongName(str,1).$artistor+'"}&fromMailMusic','blogLRC163','','UTF-8');
	},
	getPlayStates:function(){
		return LM.player.playState;
	},
	switchTimer:null,
	playEnd:function(){
		if(!g('repeat-mode-chk').checked){
			if(cfg.glbSongNameArr.length>1){
				cfg.glbCurIdx++;
				if(cfg.glbCurIdx==cfg.glbSongNameArr.length)
				{
					cfg.glbCurIdx=0;
				}
				LM.play(cfg.glbSongNameArr[cfg.glbCurIdx]);
			}else if(user.favlist.length>1){
				cfg.glbCurIdx=0;
				cfg.glbSongNameArr=user.favlist;
				LM.play(cfg.glbSongNameArr[cfg.glbCurIdx]);
			}else{
				cfg.glbCurIdx=0;
				cfg.glbSongNameArr=cfg.glbHistySongNameArr;
				var rnd = Math.floor(Math.random() * cfg.glbSongNameArr.length);
				LM.play(cfg.glbSongNameArr[rnd]);
			}
		}
	},
	playStateChange:function(){
		switch(LM.getPlayStates())
		{
			case 1:
				break;
			case 3:
				LM.getLrc();
				LM.setSongname();
				s('#id3info span')[0].innerHTML='<a href="#" onclick="lr.copy(this.innerHTML);return false;">'+LM.getId3(LM.player)+'</a>';
				Cookies.toJs(cfg.cookie.history,{"n":cfg.glbSongName,"u":LM.player.URL});
				lr.js('/ff/member/ctrl.php?api=saveurl&s='+cfg.glbSongName+'&sv='+LM.player.URL+'&id=1','lr-saveurl-js','');
				break;
			case 8:
				LM.playEnd();
				break;
			case 10:
				if(cfg.coreUriArr.length>1){
					LM.switchTimer = setTimeout(LM.switchUrl,2000);
				}
				break;
		}
		//1停2暂3正播4向前搜5后搜6缓7等待8放完9转换曲目10就绪
	},
	switchUrl:function(){
		if(LM.getPlayStates()==6 || LM.getPlayStates()==3 ){
			clearTimeout(LM.switchTimer);
		}else{
			LM.playUrl(cfg.coreUriArr[cfg.coreUriArr.lastIndexOf(LM.player.URL)+1]);
		}
	},
	user:{
		getLocalMusic:function(_e,_o){
		var o=_o||cfg.localMusicObj;
		var _llst = s('#'+o.id+' a');
			if(_e.getAttribute('contenteditable')=='true')
			{
				if(_llst.length!=0){
					o.contentEditable=false;
					o.className='playlist';
					var _ul = lr.tag('ul',{appendTo:o});
				}
				
				_llst.each(function(i,el){
					var _ihtm = el.innerHTML;
					el.innerHTML=decodeURIComponent(_ihtm.substring(_ihtm.lastIndexOf('\/')+1,_ihtm.lastIndexOf('.')));
					var _li = lr.tag('li',{append:el,appendTo:_ul});
					E.add(el,'dblclick',function(ev){
						LM.play(E.getEl(ev));
					});
				});
			}
		},
		uploadLocalSong:function(str)
		{
			var _arr = str.split('|');
			var _objstr = cfg.localMusicObj.id+'-ie';
			var _ul = lr.tag('ul',{appendTo:g(_objstr)});
			g(_objstr).className='playlist';
			g('upload-local-swf').className='undis';
			_arr.forEach(function(el,n){
				var _li = lr.tag('li',{'class':((n%2==1)?'split':''),innerHTML:el,appendTo:_ul});
			});
			s('#'+_objstr+' li').dblclick(function(ev){
				LM.play(this);
				s('#'+_objstr+' .playing').each(function(i,el){
					removeClass(el,'playing');
				});
				addClass(E.getEl(ev),'playing');				
			});
			s('#'+_objstr+' li').click(function(ev){
				s('#'+_objstr+' .selected').each(function(i,el){
					removeClass(el,'selected');
				});
				addClass(E.getEl(ev),'selected');
			});			
		},
		parseUrl:function(){
			var _u=lr.getParameter('u',true);
			var _s=lr.getParameter('s',true);
			if(_s!='' && _u!='')
			{
				LM.playUrl(decodeURIComponent(_u));
				cfg.glbSongName = decodeURIComponent(_s)
			}
			else
			{
				var _hs = document.location.hash.slice(1);
					if(_hs.indexOf('(')!=-1 || (/^[0123456789]{4,10}$/g).test(_hs))return;
					_hs=(_hs.indexOf('%')!=-1)?decodeURIComponent(_hs):_hs;
					if(_hs)
					{	cfg.glbSongName = _hs;
						LM.play(_hs);
					}
			}
		},
		icommend:function(){
			var _sn = cfg.glbSongName;
			lr.ifmOpen('icmdfrm','member/tuijian.php?sn='+_sn,'tuijian');
		},
		iqzone:function(){
			lr.ifmOpen('iqzonefrm','/m/qq.php?f=lrmp3&qq='+user.qq,'tuijian');
		},
		iupload:function(){
		},
		isLogin:function(){
			return (user.id=='')?false:true;
		}
	},
	setPlayDx:function(){
		LM.player.fullScreen=1;
	},
	iloveIt:function(){
		var reg = /^(\w|[\.\ ，·\u4E00-\u9FA5])*$/;
		if(cfg.glbSongName.match(reg))
		{
			lr.js('../user/ctrl.php?api=src&s='+cfg.glbSongName,'iloveit-js','');
		}
	},
	download:function(){
		window.open(LM.player.URL);
	},
	copy:function(){},
	clearHistory:function(){
		Cookies.clear(cfg.cookie.history);
	},
	exportHistory:function(){
		var _=Cookies.read(cfg.cookie.history);
		if(_!=null)
		{
			var a=[];
				a.push('#EXTM3U\r\n');
			
			var _ck = eval(_);
				_ck.forEach(function(el){
					a.push(el.u+'\r\n');
				});

			lr.saveFile(a.join(''));
		}
	},
	postFeeling:function(){},
	postLrcFeeling:function(){},
	initPlayer:function(){
		['playstatus','lrc','chgname','mp3info','mp3Src'].forEach(function(el){
			g(el).innerHTML='';
		});
	},
	setAudioList:function(a){
		LM.player.removeAttribute('src');
		s('source',LM.player).remove();
		s(a).each(function(i,u){
			if(u.indexOf('.mp3')>0)s('<source id="mp3-url-' + i + '" src="' + u + '" />').appendTo(LM.player);
		});
	},
	setAudioSrc:function(u){
		LM.setSongname();
		g('id3info').className='undis';
		if(u){
			s('source',LM.player).remove();
			LM.player.setAttribute('src',u);
		}
		LM.player.load();
		LM.player.play();
	},
	playInAudio:function(a){
		LM.setAudioList(a);
		LM.setAudioSrc();
		LM.bindAudio();
	},
	initPlaylist:function(t,a){
		if(a.length!==0){
			var _s='<li>';
			var _a=[];
			cfg.coreUriArr = a;
			if(t==1){
			
				LM.player.tagName.toLowerCase()=='audio' ? LM.playInAudio(a) : LM.playUrl(a[0]);
				
				a.forEach(function(el,idx){
					_a.push('<a class="act-play-rel act-dn-rel" href="#" rel="'+el+'">'+lr.getHost(el)+'</a>');
				});
			}

			_s+=_a.join('</li><li>')+'</li>';
			
			s('#playlist ul')[0].innerHTML=_s;
			s('.act-play-rel').click(function(ev){
				LM.playUrl(this.rel);
				returnFalse(ev);
			});
		}
		else
		{
			LM.playUrl('http://nihaoku.cn/mp3/url.php?'+cfg.glbSongName);
		}
	},
	initCorePlaylist:function(a){

		if(a.length!==0){
			var _s='<ul><li>';
			var _a=[],_b=[];
			
				LM.playUrl(a[0].u);
				a.forEach(function(el,idx){
					if(idx<21){
						if(el.u!='')_a.push('<a class="act-play-rel act-dn-rel" href="#" rel="'+el.u+'">'+lr.getHost(el.u)+'</a>');
					}
					_b.push(el.u);
				});
			cfg.coreUriArr = _b;	
			_s+=_a.join('</li><li>')+'</li></ul>';
			
			s('#playlist ul')[0].innerHTML=_s;
			s('.act-play-rel').click(function(ev){
				LM.playUrl(this.rel);
				returnFalse(ev);
			});
		}
	},
	initLrcData:function(n,a,j){
		if(a && a.value){
			g('lrcTable').innerHTML = a.value.replace(/\r/g,'').replace(/\n/g,'<BR>');
			g('klok-chk').checked && LM.klok(a.value);
			typeof(displayLyric)=='function' && displayLyric();
		};
	},
	initMood:function(){},
	setMask:function(){
		clearInterval(LM.timer);
		LM.volume(50);
		var doc = document;
		LM.mask = g('imask-div');
		if(LM.mask==null){
			LM.mask = lr.tag('div',{'id':'imask-div','class':'mask',appendTo:doc.body});
			//s(LM.mask).css({'opacity':'0.3'});
		}
		removeClass(LM.mask,'undis');
		LM.mask.style.height = doc.documentElement.scrollHeight+'px';
		
		LM.workspace=s('.workspace')[0];
			removeClass(LM.workspace,'undis');
			LM.workspace.style.left=(doc.documentElement.scrollWidth-LM.workspace.offsetWidth)/2+'px';
			LM.workspace.style.top = Math.max(doc.documentElement.scrollTop,doc.body.scrollTop)+(doc.documentElement.clientHeight-LM.workspace.offsetHeight)/2+'px';
	},
	closePlay:function(){
		addClass(LM.mask,'undis');
		addClass(LM.workspace,'undis');
		LM.tweenEffect();
	},
	volume:function(n){
		var setting = LM.player.settings;
		if(setting && setting.volume){
			if(n){
				setting.volume = n;
				return true;
			}else{
				return setting.volume;
			}
		}
		return false;
	},
	tweenEffect:function(){
		var w=LM.player;
		try{
		$idx=LM.volume();
		LM.timer=setInterval(function(){
			if($idx>0){
				LM.volume(LM.volume()-5);
				//LM.player.settings.volume-=5;
				$idx--;
			}else{
				clearInterval(LM.timer);
				LM.player.controls.pause();
				LM.volume(50);
				//LM.player.settings.volume=50;
			};
		},60);
		}catch(e){
			LM.player.pause();
		}
	},
	klok:function(v){
		if(typeof(KLOK)!='function'){
			lr.js('/js/klok.js','klok-js','klok.go(\\\''+v.replace(/\r/g,'').replace(/\n/g,'')+'\\\')');
			return;
		}
		if(typeof(klok)!='undefined')klok.go(v);
	}
}
})(window,document);
var play=LM.play;

(function(){
	s('#copySrc').click(function(){
		lr.copy(s('#mp3Src a')[0].href);
	});
	s('#export-histry-lnk').click(function(){
		LM.exportHistory();
	});	
	s('#newin-play-lnk').click(function(){
		LM.playWin();
	});	
	s('#ilove-lnk').click(function(){
		LM.iloveIt();
	});		
	s('#down-this-lnk').click(function(){
		LM.download();
	});
	s('#add2mybox-lnk').click(function(){
		user.addFav();
	});	
	s('#set-dxplay-lnk').click(function(){
		LM.setPlayDx();
	});	
	s('#playlist a').click(function(ev){
		LM.playUrl('http://nihaoku.cn/mp3/?'+cfg.glbSongName);
		returnFalse(ev);
	});
	s('.tab a').mouseover(function(ev){
		s('.tab a').each(function(i,el){
			el.className='';
			s(el).attr('href').split('#').forEach(function(ha,hn){
				if(hn!=0)g(ha).className='undis';
			});
		});
		this.className='current';
		this.href.split('#').forEach(function(ha,hn){
			if(hn!=0)g(ha).className='';
		});
		var _sn = getSongName(cfg.glbSongName,1).$songName;
		switch(this.href.split('#')[1]){
			case 'moon':
				if(g('moonfrm').src.indexOf(_sn)<0)g('moonfrm').src='mystory.asp?sn='+_sn;
			break;
			
			case 'download':
				if(g('dnloadfrm').src.indexOf(cfg.glbSongName)<0)g('dnloadfrm').src='/m/?f=lrmp3&msn='+lr.urlEncode(cfg.glbSongName);
			break;
			case 'iplaylist':
				{
					if(g('upload-local-swf')==null)lr.swf('/swf/upload-local-music.swf','upload-local-swf',['100%','100%'],[1,3],'ilocalmp3upload-ie');
					var _=Cookies.read(cfg.cookie.history);
					if(_!=null)
					{
						var a=[];
					
						var _ck = eval(_);
							_ck.forEach(function(el){
								cfg.glbHistySongNameArr.push(el.n);
								a.push('<li><a href="'+el.u+'">'+el.n+'</a></li>\r\n');
							});
							s('#played ul')[0].innerHTML=a.join('');
							s('#played li a').click(function(ev){
								LM.playUrl(this.href);
								cfg.glbSongName = this.innerHTML;
								returnFalse(ev);
							});
					}
				}
			break;	
			
		}
		returnFalse(ev);
	});	
	s('.tab a').click(function(ev){
		returnFalse(ev);
	});
	s('#ilocalmp3upload').mouseover(function(ev){
		LM.user.getLocalMusic(this);
	});
	s('#ilocalmp3upload').mouseout(function(ev){
		LM.user.getLocalMusic(this);
	});
	s('.ico-fold').click(function(ev){
		var _e = this;
			s(this).toggleClass('ico-expand');
			
		var _rel = eval(_e.getAttribute("rel"));
		var _id = _rel.id;
		
			if(typeof(_id)=='string'){
				var _ids = _id.split(',');
				if(_ids.length>1){
					_ids.forEach(function(el){
						s(g(el)).toggleClass('undis');
					});
				}
				else{
					s(g(_id)).toggleClass('undis');
				}
			}
			else{
				_rel.id.forEach(function(el){
						s(g(el)).toggleClass('undis');
				});
			}
			
			_rel.act;
	});
	s('.ico-expand').click(function(ev){
		var _e = this;
			s(this).toggleClass(_e,'ico-fold');
			
		var _rel = eval(_e.getAttribute("rel"));
		var _id = _rel.id;
		
			if(typeof(_id)=='string'){
				var _ids = _id.split(',');
				if(_ids.length>1){
					_ids.forEach(function(el){
						s(g(el)).toggleClass('undis');
					});
				}
				else{
					s(g(_id)).toggleClass('undis');
				}
			}
			else{
				_rel.id.forEach(function(el){
						s(g(el)).toggleClass('undis');
				});
			}
			
			_rel.act;
	});	
	s('#clsA').click(function(ev){
		var _e = E.getEl(ev);
		LM.closePlay();
	});
	s('#klok-chk').click(function(){
		if(this.checked){
			var o = (cfg.glbHTML5) ? LM.player : LM.player.controls;
			o.pause();
			o.play();
		}
	})
	E.add(window,'resize',function(ev){
		if(!hasClass(s('.workspace')[0],'undis'))LM.setMask();
	});

	LM.user.parseUrl();
})();

var lists={
	min:0,
	max:0,
	dur:15,
	arr:[],
	snarr:[],
	cur : null,
	mode:'classic',
	init:function(a){
		lists.arr=a;
		lists.max=a.length;
		lists.scroll();
		lists.bind();
	},
	clicked:function(){
	
		lists.arr.click(function(ev){
			var evt = ev||window.event;
			var e = evt.target||evt.srcElement;
			var _t = e.tagName.toLowerCase();
			
			switch(_t){
				case 'a':
					var _p=(window.ActiveXObject)?e.href.split('?'):e.getAttribute('href').split('?');
					_p[1] && play(_p[1]);
					returnFalse(ev);
				break;
				case 'img':
					var _p = e.parentNode.parentNode;
						addClass(_p,'selected');
						lists.selected();
						returnFalse(ev);
				break;
				case 'em':
					window.open('/artist/'+e.innerHTML+'.html');
				break;
				case 'i':
					var _p = e.parentNode.parentNode;
					removeClass(_p,'selected');
					lists.selected();
					returnFalse(ev);
				break;
				case 'div':
					var _p=e.parentNode;
					if(!hasClass(_p,'selected')){
						addClass(_p,'selected');
					}else{
						removeClass(_p,'selected');
					}
					lists.selected();
				break;
			}
			
		});
	},
	scroll:function(){
		var j=0;
		lists.arr.each(function(i,el){
			if(lists.mode=='thumb'){
				if(i>=lists.min && i<=lists.dur+lists.min){
					lists.attachTag(el,i);
					j++;
				}
			}else{
				lists.attachTag(el,i);
			}
		});
		if(lists.mode=='thumb'){lists.min+=j;}
		//if(typeof(klok)!='undefined')klok.scroll();
	},
	attachTag:function(li){
		var sn = (s('a',li)[0])?s('a',li)[0].innerHTML:'';
		var at = (s('em',li)[0])?s('em',li)[0].innerHTML:'';
		
		if(lists.mode=='thumb'){
			var img=s('img',li);
			img.each(function(i,el){
				if(el.src==''){
					el.src='/images/gs/'+el.alt+'.png';
					s(el).bind('error',function(){
						this.src='/images/noThb.png';
					});
				}
			});
		}
	},
	selected:function(){
		lists.snarr=[];
		lists.arr.each(function(i,el){
			if(hasClass(el,'selected')){
				var song = s('>a',el).get(0) ? s('>a',el).get(0).innerHTML : '';
				var art = s('>em',el).get(0) ? ' ' + s('>em',el).get(0).innerHTML:'';
				lists.snarr.push(song + art);
			}
		});
		cfg.glbSongNameArr = lists.snarr;
		lists.mplay();
	},
	mplay:function(){
		if(cfg.glbSongNameArr.length>1){
			g('implayed').innerHTML='';
			cfg.glbSongNameArr.forEach(function(el,n){
				var _li = lr.tag('li',{'class':((n%2==1)?'split':''),appendTo:g('implayed'),innerHTML:el});
					E.add(_li,'dblclick',function(ev){
						LM.play(E.getEl(ev));
					});
			});	
		}		
	},
	bind:function(){
		lists.clicked();
		$(window).bind('scroll',lists.scroll);
		var ar=s('.J-view-mode a');
		ar.click(function(ev){
			var eo=this;
			s('.J-view-mode a').each(function(i,mtd){
				removeClass(mtd,'on');
			});
			addClass(eo,'on');
			var md=eo.href.split('#')[1];
			g('ilinrViewModel').className=md;
			lists.mode=md;
			returnFalse(ev);
		});
		
		E.add(s('.plya')[0],'click',function(ev){
			lists.snarr=[];
			lists.arr.each(function(i,el){
				lists.snarr.push(s('a',el)[0].href.split('?')[1]);
			});
			cfg.glbSongNameArr = lists.snarr;
			lists.mplay();
			LM.play(lists.snarr[0]);
			returnFalse(ev);
		});
		lists.arr.mouseover(function(ev){
			var tmp = s('a',this).attr('href').split('?'),eo = s(this);
			lists.cur = eo;
			if(tmp[1])cfg.glbSongName = tmp[1];
			if(lists.mode == 'thumb'){
				s('#ui-ctrlbar').css({
					'top' : eo.offset().top + 40,
					'left' : eo.offset().left + 80
				});
			}else if(lists.mode == 'classic'){
				s('#ui-ctrlbar').css({
					'top' : eo.offset().top + 6,
					'left' : eo.offset().left + s('a',eo).width() + 25
				});
			}else{
			}
		});
		s('#J_play_it').click(function(){
			LM.play(cfg.glbSongName);
		});
		s('#J_add2playlist').click(function(){
			lists.cur.hasClass('selected')?lists.cur.removeClass('selected'):lists.cur.addClass('selected');
			lists.selected();
		});
		s('#J_open2play').click(function(){
			window.open('/ff/player.htm#'+cfg.glbSongName,'','width=850,height=550,resizable=1,scrollbars=1');
		});
	},
	create:function(a){
		a.pop();
		var ol=g('J-list');
			ol.innerHTML='';
		a.forEach(function(el){
		try{
			var sn=getSongName(el.n,1).$songName,ar=getSongName(el.n,1).$artistor;
		}catch(e){}
		});
		lists.init(s('.J-list li'));
	}
}

if(g('q')&&g('suggestion-pl')){
var lrso={
	v:-1,
	sn:'',
	G:function(str,p){
		return (p||document).getElementsByTagName(str);
	},
	key:g('q'),
	ok:g('lrso-go-btn'),
	suggestpane:(function(){
		var _pl = g('suggestion-pl');
		return _pl;
	}()),
	bind:function(){
		E.add(lrso.key,'keyup',function(ev){
			lrso.keydown(ev);
		});
		E.add(lrso.key,'keydown',function(ev){
			var e = window.event||ev;
			if(e.keyCode==13){
				lrso.playSrc(lrso.key.value);
			}
		});
		E.add(lrso.key,'click',function(ev){
			removeClass(lrso.suggestpane,'undis');
		});
		E.add(lrso.ok,'click',function(ev){
			lrso.playSrc(lrso.key.value);
		});
		E.add(lrso.key,'dblclick',function(ev){
			var eo=E.getEl(ev);
				eo.value='';
				lrso.v=-1;
		});
		E.add(lrso.suggestpane,'mouseover',function(){
			removeClass(lrso.suggestpane,'undis');
		});
		E.add(lrso.suggestpane,'mouseout',function(){
			addClass(lrso.suggestpane,'undis');
		});
	},
	keydown:function(e){
		removeClass(lrso.suggestpane,'undis');
		if(lrso.key.value=='')return;
		var _ky;
		if(window.event){_ky=e.keyCode;}else if(e.which){_ky=e.which;}
		if(_ky==39){
			lr.js('http://www.nihaoku.cn/mp3/local.php?v=suggest&u=http%3A%2F%2Fpassport.baidu.com%2Fuhint%2F%3Fhint_fn%3D133%26hint%3D'+lrso.key.value,'loadOneSongList','');
			_ts=lrso.key.value;
		}
		if(_ky!=40 && _ky!=38){
			lr.js('http://www.nihaoku.cn/mp3/local.php?v=suggest&u=http%3A%2F%2Fpassport.baidu.com%2Fuhint%2F%3Fhint_fn%3D132%26hint%3D'+lrso.key.value,'loadOneSongList','');
			_ts=lrso.key.value;
		}
		if(_ky==40 || _ky==38){
		if(_ky==40){
			if(lrso.v<lrso.G('li',lrso.suggestpane).length){
				lrso.v++;
				if(lrso.v>=lrso.G('li',lrso.suggestpane).length){
					lrso.v=-1;
				}
			}
			if(lrso.v>=lrso.G('li',lrso.suggestpane).length){
				lrso.v=-1;
			}
		}
		if(_ky==38){if(lrso.v>=0){lrso.v--;if(lrso.v<=-1)lrso.v=lrso.G('li',lrso.suggestpane).length;}else{lrso.v=lrso.G('li',lrso.suggestpane).length-1;};}
		lrso.setList(lrso.v);
		lrso.key.value=(lrso.v>=0 && lrso.v<lrso.G('li',lrso.suggestpane).length)?lrso.G('li',lrso.suggestpane)[lrso.v].childNodes[0].nodeValue:_ts;
		}

	},
	setSuggestion:function(a){
		lrso.v=-1;
		var _ul = g('sugstion-item');
		if(_ul==null){
			_ul = lr.tag('ul',{'id':'sugstion-item',appendTo:document.body});
			lrso.suggestpane.appendChild(_ul);
		}
		_ul.innerHTML = '';
		for(var i=0,j=a.suggest.length;i<j;++i)
		{
			var _htm = a.suggest[i].suggestWord.replace(/[0-9]+/gi,'');
			
			var _li = lr.tag('li',{'id':'sugstion-item','innerHTML':_htm,'appendTo':_ul});
			
				E.add(_li,'click',function(ev){
					var v = E.getEl(ev).innerHTML;
					lrso.key.value = v;
					play(v);
				});
		}
		lrso.suggestpane.style.top = getTop(lrso.key)+32+'px';
		lrso.suggestpane.style.left = getLeft(lrso.key)+'px';
		lrso.suggestpane.style.width = lrso.key.offsetWidth-2+'px';
	},
	setList:function(num){
		for(var i=0;i<lrso.G('li',lrso.suggestpane).length;i++){
			var _ln=lrso.G('li',lrso.suggestpane)[i];
				_ln.className="";
		}
		if(lrso.v>=0 && lrso.v<lrso.G('li',lrso.suggestpane).length){
			var _in=lrso.G('li',lrso.suggestpane)[lrso.v];
			lrso.G('li',lrso.suggestpane)[lrso.v].className="selected";
		}
	},
	init:function(){
		lrso.bind();
	},
	playSrc:function(v){
		if(v!=''){
			if(v.indexOf('http://')==0 || v.indexOf('mms://')==0){
				LM.setMask();
				LM.playUrl(v);
				g('q').value='播放歌曲地址中...';
			}else{
				lrso.v=-1;
				play(v);
			}
		}
	},
	formatName:function(str){return (typeof(getSongName)=='function')?getSongName(str):str;}
}
lrso.init();
var suggest = lrso.setSuggestion;
}

if(typeof LRC=='function'){
function GetCurrentPosition(){
	var _player=LM.player;
	try{
		return _player.currentTime?_player.currentTime:_player.controls.CurrentPosition;
	}catch(e){
		return 0;
	}
	
}
var uiLRC;
var timerId,scrollId,resetId;
//呈现歌词
function displayLyric(){
	//清理
	clearTimeout(resetId);
	clearInterval(scrollId);
	clearInterval(timerId);                   
	//同步歌词
	result=g('lrcTable').innerHTML;
	uiLRC=new LRC({lyric:result,lyricTable:g('lrc'),lyricWrapper:g('lrcWrapper'),curRowClassName:'cur-lrc-row',separator:((window.ActiveXObject)?'<BR>':'<br>')});
	
	if(uiLRC.IsLyricValid()&&g('cbSync').checked){
		timerId=setInterval(function(){ 
			if(g('cbSync').checked)             
				uiLRC.DoSync(GetCurrentPosition());//执行同步
		},100);
	}
}
//恢复同步
function resetLrc(){
	if(uiLRC!=null&&uiLRC.IsLyricValid()){
		timerId=setInterval(function(){ 
			if(g('cbSync').checked)            
				uiLRC.DoSync(GetCurrentPosition());
		},100);
	}
}
//滚动
function scrollLrc(up){
	clearTimeout(resetId);
	clearInterval(timerId);
	clearInterval(scrollId);
	
	scrollId=setInterval(function(){
		document.getElementById('lrcWrapper').scrollTop=up ? document.getElementById('lrcWrapper').scrollTop-1
			:document.getElementById('lrcWrapper').scrollTop+1;
	},10);    
}
function clearScroll(){
	clearInterval(scrollId);
	resetId=setTimeout('resetLrc()',2000);
}
}
