if (!window.commonui)
	commonui = {}

//==================================
//基本
//==================================

commonui._debug=[];
//事件注册==================
commonui.aE=function(obj,evt,fn) {
if (evt=='DOMContentLoaded'){
	if (!this._addEventOnDOMContentLoadedFucns)this._addEventOnDOMContentLoadedFucns=[]
	this._addEventOnDOMContentLoadedFucns.push(fn)
	return
	}
if (obj.addEventListener)
	obj.addEventListener(evt,function(event){fn.call(obj,event)},false)
else if (obj.attachEvent)
	obj.attachEvent('on'+evt,function(event){fn.call(obj,event)})
}//fe

commonui.triggerEventDOMContentLoadedAct = function(){
if (this._addEventOnDOMContentLoadedFucns)
	for (var i=0;i< this._addEventOnDOMContentLoadedFucns.length;i++)
		this._addEventOnDOMContentLoadedFucns[i]()
}//fe

//时间转日期================
commonui.time2date = function(t,f){
if(!t)return '';
if(!this._time2date_date)this._time2date_date=new Date;
var y=this._time2date_date;
y.setTime(t*1000);
if(!f)f='Y-m-d H:i:s'
var x = function(s){s=String(s);if(s.length<2)s='0'+s;return s}
f = f.replace(/([a-zA-Z])/g,function($0,$1){
	switch ($1)
		{
		case 'Y':
			return y.getFullYear()
		case 'y':
			$1 = String(y.getFullYear())
			return $1.substr($1.length-2)
		case 'm':
			return x(y.getMonth()+1)
		case 'd':
			return x(y.getDate())
		case 'H':
			return x(y.getHours())
		case 'i':
			return x(y.getMinutes())
		case 's':
			return x(y.getSeconds())
		}
	})
return f
}//fe
commonui.time2shortdate=function(t,f){
if(!f)f='y-m-d H:i'
return this.time2date(t,f)
}//fe


//时间转时段================
commonui.time2dis = function(y,f)
{
if(!this._time2dis_now){
	this._time2dis_now = new Date;
	this._time2dis_now = this._time2dis_now.getTime()/1000
	}
x = this._time2dis_now-y
if(x<60)
	x="刚才"
else if(x<450)
	x="<span class='numeric'>5</span> 分钟前"
else if(x<750)
	x="<span class='numeric'>10</span> 分钟前"
else if(x<1050)
	x="<span class='numeric'>15</span> 分钟前"
else if(x<1350)
	x="<span class='numeric'>20</span> 分钟前"
else if(x<1650)
	x="<span class='numeric'>25</span> 分钟前"
else if(x<2100)
	x="<span class='numeric'>30</span> 分钟前"
else if(x<2700)
	x="<span class='numeric'>40</span> 分钟前"
else if(x<3300)
	x="<span class='numeric'>50</span> 分钟前"
else if(x<5400)
	x="一小时前"
else if(x<9000)
	x="两小时前"
else if(x<12600)
	x="三小时前"
else if(x<86400)
	x="今天"
else if(x<172800)
	x="昨天"
else{
	if(!f)f='y-m-d H:i'
	x = this.time2date(y,f)
	}

return x;
}//fe

//==================================
//弹窗界面
//==================================

commonui.createCommmonWindow = function (){
var w = _$('<div/>')._.cls('single_ttip2')._.aC(
		_$('<div/>')._.cls('div1')._.aC(
			_$('<div/>')._.cls('div2')._.aC(
				_$('<div/>')._.cls('div3')
				)
			)
		)
w._.addContent=function (x){
	var z = this.self.childNodes[0].childNodes[0].childNodes[0]
	if (!x)
		z.innerHTML = ''
	else if (typeof(x)=='object')
		z.appendChild(x)
	else
		z.innerHTML+=x
	}//fe
return w
}//fe

//管理界面窗口================
commonui.createadminwindow = function(id){
if(this.adminwindow)return
this.adminwindow = this.createCommmonWindow()
if(!id)
	this.adminwindow.id = 'commonuiwindow';
else
	this.adminwindow.id = id;
if($('massAdminForm')) $('massAdminForm').appendChild(this.adminwindow);
else document.body.appendChild(this.adminwindow);
}//fe
commonui.hideAdminWindow = function(){
this.adminwindow.style.display='none'
}//fe

commonui.unselectCheckBox = function(){
var x = document.getElementsByTagName('input')
for(var i=0;i<x.length;i++)
	{
	if(x[i].name && x[i].name=='tidarray[]' && x[i].checked)
		x[i].checked = false
	}
}

//mass lock==================
commonui.lockmass = function (e)
{
this.createadminwindow()
this.adminwindow._.addContent(null)
this.adminwindow._.addContent( "\
	<table>\
		<tr>\
			<td>\
				锁定\
			</td>\
			<td>\
				<input name='lock' type='radio' value='0' checked>解除\
				<input name='lock' type='radio' value='1' >锁定\
				<input name='lock' type='radio' value='2' >关闭\
			</td>\
		</tr>\
		<tr>\
			<td>\
				PM\
			</td>\
			<td>\
				<input type='radio' name='pm' value='1'>是\
				<input type='radio' name='pm' value='0' checked='checked'>否\
			</td>\
		</tr>\
		<tr>\
			<td>\
				PM\
			</td>\
			<td>\
				<textarea name='info' rows='3' cols='20'></textarea>\
			</td>\
		</tr>\
		<tr>\
			<td colspan=2>\
				<input value='锁定' type='button' onclick='document.getElementById(\"massAdminForm\").submit();commonui.unselectCheckBox()'> <input value='关闭' type='button' onclick='commonui.hideAdminWindow()'>\
			</td>\
		</tr>\
	</table>\
	<iframe name='commonuiwindowiframe' id='commonuiwindowiframe' onreadystatechange='commonui.remuseInputAfterSubmit(this)' scrolling='no' allowtransparency='true' src='about:blank' frameborder='0' style='height:50px;width:200px;border:none;overflow:hidden'></iframe>\
")
document.getElementById('massAdminForm').action = 'nuke.php?func=locktopic';
document.getElementById('massAdminForm').target = 'commonuiwindowiframe';
tTip.showdscp(e,this.adminwindow);

}//fe

//lesser nuke==================
commonui.lessernuke = function (e,tid,pid,l,lou){
this.createadminwindow()
this.adminwindow._.addContent(null)
this.adminwindow._.addContent( "\
<form action='nuke.php' target='commonuiwindowiframe' method='post' onsubmit='commonui.disableInputOnSubmit(this)'><table>\
	<tr>\
		<td>\
			<input type='radio' name='func' value='lesserlessernuke'/>禁言2天\
			<input type='radio' name='func' value='lessernuke'/>禁言2天 扣1威望<br/>\
			<input type='radio' name='func' value='lessercommonnuke'/>禁言6天\
			<input type='radio' name='func' value='commonnuke'/>禁言6天 扣2威望\
		</td>\
	</tr>\
	<tr>\
		<td>\
			<input name='submit' value='提交' type='submit'> <input value='关闭' type='button' onclick='commonui.hideAdminWindow()'>\
		</td>\
	</tr>\
</table>\
<input type='hidden' value='"+tid+"' name='tid'/>\
<input type='hidden' value='"+pid+"' name='rid'/>\
<iframe name='commonuiwindowiframe' id='commonuiwindowiframe' onreadystatechange='commonui.remuseInputAfterSubmit(this)' scrolling='no' allowtransparency='true' src='about:blank' frameborder='0' style='height:50px;width:200px;border:none;overflow:hidden'></iframe>\
</form>\
")
tTip.showdscp(e,this.adminwindow);
}//fe

//删除收藏=================
commonui.favordelmass = function (e){
this.createadminwindow()
this.adminwindow._.addContent(null)
this.adminwindow._.addContent("\
	<table>\
		<tr>\
			<td colspan=2>\
				<input value='移除' type='button' onclick='document.getElementById(\"massAdminForm\").submit()'> <input value='取消' type='button' onclick='commonui.hideAdminWindow()'>\
			</td>\
		</tr>\
	</table>\
	<iframe name='commonuiwindowiframe' id='commonuiwindowiframe' scrolling='no' allowtransparency='true' src='about:blank' style='height:50px;width:200px;border:none;overflow:hidden'></iframe>\
")
document.getElementById('massAdminForm').action = 'nuke.php?func=topicfavor&action=del';
document.getElementById('massAdminForm').target = 'commonuiwindowiframe';
tTip.showdscp(e,this.adminwindow);
}//fe

//添加评论=================
commonui.comment = function (e,tid,pid)
{
this.createadminwindow()
this.adminwindow._.addContent(null)
this.adminwindow._.addContent( "\
<form action='nuke.php?func=comment' target='commonuiwindowiframe' method='post' onsubmit='commonui.disableInputOnSubmit(this)'><table>\
		<tr>\
			<td>\
				评论<br/>\
				1 不超过300字，图片代码无效<br/>\
				2 评论算一条回复<br/>\
				3 评论页尾的帖子会被挤下去\
			</td>\
		</tr>\
		<tr>\
			<td>\
				<textarea name='info' rows='3' cols='25'></textarea>\
			</td>\
		</tr>\
		<tr>\
			<td>\
				<input name='submit' value='提交' type='submit'> <input value='关闭' type='button' onclick='commonui.hideAdminWindow()'>\
			</td>\
		</tr>\
	</table>\
	<input type='hidden' value='"+tid+"' name='tid'/>\
	<input type='hidden' value='"+pid+"' name='pid'/>\
	<iframe name='commonuiwindowiframe' id='commonuiwindowiframe' onreadystatechange='commonui.remuseInputAfterSubmit(this)' scrolling='no' allowtransparency='true' src='about:blank' frameborder='0' style='height:50px;width:200px;border:none;overflow:hidden'></iframe>\
	</form>\
")
tTip.showdscp(e,this.adminwindow);
}//fe

//评分=================
commonui.addpoint = function (e,tid,pid,fid)
{
this.createadminwindow()
this.adminwindow._.addContent(null)
this.adminwindow._.addContent( "\
	<form action='nuke.php?func=addpoint&tid="+tid+"&pid="+pid+"' target='commonuiwindowiframe' method='post' onsubmit='commonui.disableInputOnSubmit(this)'>\
	增加/扣除用户在本版的声望\
	<table>\
		<tr>\
			<td>\
				声望\
			</td>\
			<td>\
				<input type='text' size='10' maxlength='10' name='rcvc' value=''>(-10000~10000)\
			</td>\
		</tr>\
		<tr>\
			<td>\
				理由\
			</td>\
			<td>\
				<input type='text' size='10' maxlength='16' name='info' value=''>\
			</td>\
		</tr>\
		<tr>\
			<td>\
				PM\
			</td>\
			<td>\
				<input type='radio' name='pm' value='1' checked='checked'>是\
				<input type='radio' name='pm' value='0'>否\
			</td>\
		</tr>\
		<tr>\
			<td colspan=2>\
				<input name='submit' value='提交' type='submit'> <input value='取消' type='button' onclick='commonui.hideAdminWindow()'>\
			</td>\
		</tr>\
	</table>\
	</form>\
	<iframe name='commonuiwindowiframe' id='commonuiwindowiframe' scrolling='no' allowtransparency='true' src='about:blank' style='height:50px;width:200px;border:none;overflow:hidden'></iframe>\
")
tTip.showdscp(e,this.adminwindow);
}
//fe

//引用主题=================
commonui.quotetopic = function (e,tid)
{
this.createadminwindow()
this.adminwindow._.addContent(null)
this.adminwindow._.addContent( "\
	<form action='' target='_blank' method='post'>\
	<table>\
		<tr>\
			<td>\
				在所选版面创建镜像\
			</td>\
			<td>\
				<span>\
					<select onclick='onloadforumlist(this)' name='fid'>\
						<option value='' selected='selected'>选择版面</option>\
					</select>\
				</span>\
			</td>\
		</tr>\
		<tr>\
			<td colspan=2>\
				<input name='submit' value='提交' type='submit'> <input value='关闭' type='button' onclick='commonui.hideAdminWindow()'>\
			</td>\
		</tr>\
	</table>\
	</form>\
	<iframe name='adminwindowiframe' id='adminwindowiframe' scrolling='no' allowtransparency='true' src='about:blank' style='height:50px;width:200px;border:none;overflow:hidden'></iframe>\
</div></div></div>\
")
this.adminwindow.getElementsByTagName('form')[0].action = 'nuke.php?func=quotetopic&tid='+tid;
this.adminwindow.getElementsByTagName('form')[0].target = 'adminwindowiframe';
tTip.showdscp(e,this.adminwindow);
}//fe

//删除回复=================
commonui.delsinglereply = function(e,tid,pid){
this.createadminwindow()
this.adminwindow._.addContent(null)
this.adminwindow._.addContent( "\
	确定要删除此回复么<br/><form action='nuke.php?func=delsinglereply&tid="+tid+"&rid="+pid+"' target='adminwindowiframe' method='post'><input name='submit' value='提交' type='submit'> <input value='关闭' type='button' onclick='commonui.hideAdminWindow()'></form><br/>\
	<iframe name='adminwindowiframe' id='adminwindowiframe' scrolling='no' allowtransparency='true' src='about:blank' style='height:50px;width:200px;border:none;overflow:hidden'></iframe>\
")
tTip.showdscp(e,this.adminwindow);
}//fe

//logpost=================
commonui.logpost = function (e,t,l,a)
{
var data = new Array();
data['t'] = t;
data['l'] = l;
data['url'] = window.location.href.replace(/^.+?read.php/,'read.php')+'#l'+l;
data['content'] = id2e('postcontent'+l).innerHTML.replace(/<div class='|"?(quote|textfield)'|"?>.+?<\/div>/gim,'').replace(/<.+?>/g,' ');
if (data['content'].length>70)
	{
		data['content'] = data['content'].substr(0,70)+'　……';
	}
data['author'] = id2e('postauthor'+l).innerHTML;
data['authorid'] = a;
this.createadminwindow()
this.adminwindow._.addContent(null)
this.adminwindow._.addContent( "\
<div><div><div><form action='nuke.php?func=logpost' target='commonuiwindowiframe' method='post' onsubmit='commonui.disableInputOnSubmit(this)'><table>\
		<tr>\
			<td>\
				<input name='submit' value='举报此帖' type='submit'> <input value='关闭' type='button' onclick='commonui.hideAdminWindow()'>\
			</td>\
		</tr>\
	</table>\
	<input type='hidden' value='"+data['t']+"' name='t'/>\
	<input type='hidden' value='"+data['l']+"' name='l'/>\
	<input type='hidden' value='"+data['url']+"' name='url'/>\
	<input type='hidden' value='"+data['content']+"' name='content'/>\
	<input type='hidden' value='"+data['author']+"' name='author'/>\
	<input type='hidden' value='"+data['authorid']+"' name='authorid'/>\
	<iframe name='commonuiwindowiframe' id='commonuiwindowiframe' onreadystatechange='commonui.remuseInputAfterSubmit(this)' scrolling='no' allowtransparency='true' src='about:blank' frameborder='0' style='height:50px;width:200px;border:none;overflow:hidden'></iframe>\
	</form>\
</div></div></div>\
")
tTip.showdscp(e,this.adminwindow);

}//fe

//批量操作选择数目限制=================
commonui.massAdminFormCount = function(f)
{
for (var i=0;i<f.elements.length;i++)
	{
	if (f.elements[i].type=='checkbox' && f.elements[i].name=='tidarray[]')
		{
		f.elements[i].onclick=function(){
			var x = this.form.elements;
			var y = 0;
			for (var j=0; j<x.length; j++)
				{
				if (x[j].type=='checkbox' && x[j].checked)y++;
				if (y>15)
					{
					this.checked=false;
					window.alert('你不能选择更多了')
					return false;
					}
				}
			}
		}
	}
}//fe

//防止重复提交=================
commonui.remuseInputAfterSubmit = function(o)
{
var f = o.parentNode;
if (f.nodeName=='FORM'){
	if (o.readyState=='complete')
	{
		f.submiting = false;
		var i = f.getElementsByTagName('input');
		for (var j=0; j<i.length; j++){
			if (i[j].getAttribute('type')=='submit'){
				i[j].disabled = false;
			}
		}
	}
}
}//fe

//防止重复提交=================
commonui.disableInputOnSubmit = function(o)
{
if (o.submiting){return false;}
o.submiting = true;
var i = o.getElementsByTagName('input');
for (var j=0; j<i.length; j++){
		if (i[j].getAttribute('type')=='submit'){
			i[j].disabled = true;
		}
	}
}//fe

//==================================
//显示设置
//==================================

//字体设置===============
commonui.setfont = function(f){
var t ={
	0:{0:'',1:'默认字体',2:'系统默认中文字体(宋体)'},
	1:{0:'Microsoft Yahei, Verdana, Tahoma, Arial, sans-serif',1:'雅黑字体',2:'微软雅黑'}
	}
f=parseInt(f,10)
if (!isNaN(f))
	{
	if(f)cookieFuncs.setMiscCookieInSecond('globalfont',f,3600*24*30);
	else cookieFuncs.setMiscCookieInSecond('globalfont',0,0);
	window.location.href=window.location.href
	return;
	}
var f = parseInt(cookieFuncs.getMiscCookie('globalfont'),10);
if (!f)f=0;
if(f && document.body.style.fontFamily!=t[f][0])document.body.style.fontFamily=t[f][0];
var s = "<select title='全局字体选择' onchange='commonui.setfont(this.options[this.selectedIndex].value)'>";
for (var k in t)
	{
	s+="<option ";
	if(k==f)s+=" selected ";
	s+="value='"+k+"' title="+t[k][2]+">"+t[k][1]+"</option>";
	}
s+="</select>";
put(s)
}//fe

//用户脚本设置===============
commonui.ifuserscript = function(r){
if (!domStorageFuncs)return
if (!__CURRENT_UID)return
var ck = 'user_script_'+__CURRENT_UID
var t ={
	0:{0:'不使用用户脚本',1:'不使用用户脚本'},
	1:{0:'使用用户脚本',1:'使用己设置的用户脚本(在用户中心中设置)'}
	}
r=parseInt(r,10)
if (!isNaN(r))
	{
	if(r)cookieFuncs.setMiscCookieInSecond(ck,r,3600*24*30);
	else cookieFuncs.setMiscCookieInSecond(ck,0,0);
	window.location.href=window.location.href
	return;
	}
var r = parseInt(cookieFuncs.getMiscCookie(ck))
if (!r)r=0;
if (r)
	{
	var s = domStorageFuncs.get(domStorageFuncs.domain+'_'+__CURRENT_UID+'_user_script');
	if (s){
		eval('var tmp=function(){'+s+'}')
		this.aE(window,'DOMContentLoaded',function(){var x = window.setTimeout(tmp,1500)});
		}
	}
var s = "<select title='是否用户脚本' onchange='commonui.ifuserscript(this.options[this.selectedIndex].value)'>";
for (var k in t)
	{
	s+="<option ";
	if(k==r)s+=" selected ";
	s+="value='"+k+"' title="+t[k][1]+">"+t[k][0]+"</option>";
	}
s+="</select>";
put(s)
}//fe

//内嵌窗口阅读===============
commonui.iframeread = function(r){
var t ={
	0:{0:'默认方式阅读主题',1:'点击链接跳转到阅读主题页面'},
	1:{0:'内嵌窗口阅读主题',1:'点击链接打开阅读主题内嵌窗口'}
	}
r=parseInt(r,10)
if (!isNaN(r))
	{
	if(r)cookieFuncs.setMiscCookieInSecond('iframeread',r,3600*24*30);
	else cookieFuncs.setMiscCookieInSecond('iframeread',0,0);
	window.location.href=window.location.href
	return;
	}
var r=parseInt(cookieFuncs.getMiscCookie('iframeread'),10);
if (!r)r=0;
var x= window.location.href.toLowerCase()
var z= __BBSURL.toLowerCase()
if (r && (x.indexOf(z+'/thread.php')==0 || x.indexOf(z+'/read.php')==0 || x.indexOf(z+'/index.php?user')==0)){
	loader.script(__COMMONRES_PATH+'/js_iframe_read.js')
	this.aE(window,'load',function(){sameWindowOpen.init($('topicrows'))});
	}
var s = "<select title='阅读主题方式选择' onchange='commonui.iframeread(this.options[this.selectedIndex].value)'>";
for (var k in t)
	{
	s+="<option ";
	if(k==r)s+=" selected ";
	s+="value='"+k+"' title="+t[k][1]+">"+t[k][0]+"</option>";
	}
s+="</select>";
put(s)
}//fe

//不显示签名和头像===============
commonui.picswitch = function(r){
var t ={
	0:{0:'显示签名和头像',1:'阅读主题页面中显示签名和头像'},
	1:{0:'不显示签名和头像',1:'阅读主题页面中不显示签名和头像'}
	}
r=parseInt(r,10)
if (!isNaN(r))
	{
	if(r)cookieFuncs.setMiscCookieInSecond('notLoadPAndS',r,3600*24*30);
	else cookieFuncs.setMiscCookieInSecond('notLoadPAndS',0,0);
	window.location.href=window.location.href
	return;
	}
var r=parseInt(cookieFuncs.getMiscCookie('notLoadPAndS'),10);
if (!r)r=0;
var s = "<select title='显示签名和头像选择' onchange='commonui.picswitch(this.options[this.selectedIndex].value)'>";
for (var k in t)
	{
	s+="<option ";
	if(k==r)s+=" selected ";
	s+="value='"+k+"' title="+t[k][1]+">"+t[k][0]+"</option>";
	}
s+="</select>";
put(s)
}//fe


//==================================
//历史链接
//==================================

//锁定历史链接==============
commonui.lockViewHis = function (kk,lock){
var h = cookieFuncs.getMiscCookie('ForumViewHis')
for (var k in h)
	{
	if (k==kk)
		{
		if (lock){
			window.alert('链接锁定')
			h['_'+k]=h[k]
			}
		else{
			window.alert('锁定解除')
			h[parseInt(k.substr(1),10)]=h[k]
			}
		delete h[k]
		cookieFuncs.setMiscCookieInSecond('ForumViewHis',h,3600*24*30)
		return
		}
	}
}//fe

//加入历史链接==============
commonui.addForumViewHis = function(n,id)
{
var h = cookieFuncs.getMiscCookie('ForumViewHis');
if (!h) h = {};
var j=1,i=true,hh={};
for (var k in h)
	{
	if (k.indexOf('_')==0)
		{
		if (k=='_'+id)return
		hh[k]=h[k]
		++j
		}
	if (j>10) break;
	}
hh[id]=n
for (var k in h)
	{
	if (parseInt(k,10))
		if(k!=id)
			{
			hh[k]=h[k]
			++j
			i=false
			}
		else if(i)return;
	if (j>10) break;
	}
cookieFuncs.setMiscCookieInSecond('ForumViewHis',hh,3600*24*30);
}//fe

//生成历史访问链接==============
commonui.drawForumViewHis = function()
{
var h = cookieFuncs.getMiscCookie('ForumViewHis');
if (!h) return;
var x= '';
for (var k in h) x+="<a href='/thread.php?fid="+k+"'>"+h[k]+"</a><br/>";
put("<span class='urltip2' style='padding:2px'>"+x+"</span><button onclick='this.previousSibling.style.display=\"inline\"'>最近访问</button>")
}//fe

//生成历史访问链接==============
commonui.advNav = function (o){
var h = cookieFuncs.getMiscCookie('ForumViewHis');
if (!h)return
var x = o.getElementsByTagName('a')[0], y = document.createElement('div'),fid=0;
y.className='urltip urltip2 navhisurltip'
y.onmouseout=function(e){
	if (!e) var e = window.event;
	var to = e.relatedTarget || e.toElement;
	if(to!=this && to.parentNode!=this && to.parentNode.parentNode!=this)this.style.display='none'
	}
for (var k in h)
	{
	var fid=k
	if (typeof(k)=='string' && k.indexOf('_')==0) {
		y.innerHTML+="<a href='javascript:void(0)' onclick='commonui.lockViewHis(\""+k+"\",false)' title='解除锁定'>&#9632;</a> "
		fid=k.substr(1)
		}
	else
		y.innerHTML+="<a href='javascript:void(0)' onclick='commonui.lockViewHis(\""+k+"\",true)' title='锁定这个链接'>&#9633;</a> "
	y.innerHTML+="<a href='/thread.php?fid="+fid+"'>"+h[k]+"</a><br/>"
	}
x.parentNode.insertBefore(y,x.parentNode.firstChild)
x.onmouseover=function(){y.style.display='block';return false}
}//fe

//==================================
//主题分类
//==================================

//分类转为连接============
commonui.topicLinkTip = {}
commonui.topicLinkTip.load = function (o){
var x = []
o.innerHTML=o.innerHTML.replace(/\[.+?\]/g,function($0){
	x.push($0);
	return '<span class="silver">'+$0+'</span>'})
if (x.length)
	{
	var y = document.createElement('span')
	y.className='urltip2'
	for (var i=0; i<x.length; i++)
		{
			y.innerHTML += "<a href='thread.php?key="+x[i]+"'>"+x[i]+"</a> "
		}
	o.parentNode.insertBefore(y,o)
	o.onmouseover = function(){y.style.display='inline'}
	o.parentNode.onmouseout = function(e){
		if (!e) var e = window.event;
		var to = e.relatedTarget || e.toElement;
		if (to && to != this && to.parentNode != this && to.parentNode.parentNode != this)
			y.style.display='none'
		}
	}
}//fe


//获取版面的分类==================
commonui.onloadtopic_key = function(o,fid){
var ffid = false
if (o.form && o.form.elements.namedItem('fid') && o.form.elements.namedItem('fid').value)
	ffid = o.form.elements.namedItem('fid').value
if (ffid)
	{
	if (o._last_fid==ffid)return
	fid=o._last_fid = ffid
	}
else
	{
		if (!fid){
			window.alert('你必须选择一个版面');
			return
		}
		if (o.onchange)
			return;
	}
o.disabled=true
o.innerHTML='';
var x = document.createElement('option');
x.innerHTML = '加载中...'
x.value=''
o.appendChild(x)
httpDataGetter.script_muti_get(Array('/data/bbscache/bbs_topic_key/'+fid+'.js?'+date.getHours(),'/nuke.php?func=loadtopickey&fid='+fid+'&time='+date.getHours()),
	function(r){
		if (!r) return false;
		else
			{
			if ((date.getTime()/1000-r.time)>3600){return false;}
			o.options[0].innerHTML = '...'
			r = r.data;
			for (var k in r)
				{
				var x = document.createElement('option');
				x.value=r[k].key
				x.innerHTML=r[k].key
				if (r[k].top) x.style.backgroundColor='#eee'
				o.appendChild(x)
				}
			o.onchange=function()
				{
				if (o.form.elements.namedItem("post_subject"))var x=o.form.elements.namedItem("post_subject")
				else if(o.form.elements.namedItem("key"))var x = o.form.elements.namedItem("key")
				x.value=o.value+" "+x.value
				}
			o.disabled=false
			o.onclick = function(){commonui.onloadtopic_key(this)}
			return true
			}
		},
	function(){o.disabled=false},
	'gbk'
	);
}//fe


//==================================
//版面杂项ui
//==================================

//子版面tab==============
commonui.setforumtab = function (o,fid,recmd,admin,user)
{
var tab = o.getElementsByTagName('h2')
var i = 0
if (tab[i].className.indexOf('parentforum')!=-1)
	i++;
tab[i].className='a'
tab[i+1].className=tab[i+2].className='ia'
if (fid){
	if (user||admin)
		{
		tab[i].className='ia'
		if (admin)
			tab[i+1].className='a'
		else
			tab[i+2].className='a'
		}
	}
else
	tab[i+1].style.display=tab[i+2].style.display='none'
}


//排序链接==============
commonui.setThreadOrder = function (o,oo)
{
var x = window.location.href.toLowerCase()
x = x.replace(/(?:(\?)|&)order_by=\w*/,'$1')
if (o=='postdatedesc' || o=='lastpostdesc'){
	if (x.substr(x.length-1)=='?')
		x+='order_by='+o
	else
		x+='&order_by='+o
	}
oo.href=x;
oo.onclick=function(){};
return true;
}//fe

//添加主题信息==============
commonui.loadthreadinfo = function(o,now,newtime,ifupload,digest,quote_from,quote_tid,postdate,lastpost,replies)
{
commonui.topicLinkTip.load(o.previousSibling);
var tmp = document.createElement('span');
if(quote_from)
	tmp.innerHTML+="<span class='gray nobr'>[<a href='read.php?tid="+quote_tid+"' class='gray'>镜像</a>]</span>";
if (digest)
	tmp.innerHTML+="<span class='red nobr'>[精华]</span>";
if (now-lastpost<=newtime)
	tmp.innerHTML+="<span class='orange nobr'>[新帖]</span>";
if (__GP['lesser'] && lastpost>postdate && (lastpost-postdate)<24*3600)
	tmp.innerHTML+="<span class='orange nobr' title='平均回复间隔时间'>["+Math.floor((lastpost-postdate)/replies)+"]</span>";
if (ifupload)
	tmp.innerHTML+="<b class='orange'>+</b>";
o.parentNode.insertBefore(tmp,o);
o.parentNode.removeChild(o);
}//fe

//添加版主信息==============
commonui.genadminlist = function(t,fid)
{
if (t){
	t = t.split(',');
	var i = 0;
	var l ='';
	for (var k in t){
		if (t[k]){
			l= l+"<option value='"+t[k]+"'>"+t[k]+"</option>";
			i++;
			}
		}
	if (l){
		t="版主: <select onchange='if(this.selectedIndex>0){window.location.href=\"nuke.php?func=ucp&username=\"+this.options[this.selectedIndex].value}'><option value=''>...</option>"+l+"</select>";
		}
	}
else t='';
if (fid) fid="<a href='nuke.php?func=view_privilege&fid="+fid+"'>[版面权限]</a>"
else fid='';
put("<span class='moderator'>"+fid+' '+t+"</span>");
}//fe

//==================================
//阅读杂项ui
//==================================

//翻页跳转==============
commonui.jumpToForm = function (postPerPage,tid,l)
{
if (l)
	{
	var x = window.location.href+'&';
	return x.replace(/(\?|&)page=\d+(&|#)+/gi,'$2').replace(/#l\d+/i,'')+'page='+Math.ceil ((parseInt(l,10)+1)/postPerPage)+'#l'+l;
	}
else if(tid && postPerPage)
	{
	put(" &nbsp; <span class='page_nav'><form action='' method='post' onsubmit='this.action=commonui.jumpToForm("+postPerPage+",0,this.getElementsByTagName(\"input\")[0].value)'>到<input type='text' size='2'/><button type='submit'><span>楼</span></button></form></span>");
	}
}//fe

//主题状态==============
commonui.dispTopicStat = function (d,l){
var x = ''
l=parseInt(l,10)
d=parseInt(d,10)
if (d)
	x+="<span class='red'>[精华]</span>"
if (l==1)
	x+="<span class='red'>[锁定]</span>"
if (l==2)
	x+="<span class='red'>[关闭]</span>"
return x
}//fe

//==================================
//杂项ui
//==================================

function onloadforumlist(o){
commonui.onloadforumlist(o)
}//fe
//版面选择生成==============
commonui.onloadforumlist=function(o)
{
o.onclick=null
o.disabled=true
o.name='fid';
o.options.innerHTML='';
o.options.length=0;
var x = document.createElement('option');
x.value=''
x.innerHTML='加载中...'
o.appendChild(x)
var load_admin=0,load_lesser=0,load_his=0
	function tmp(sub,pf,bg)
	{
	for (var k in sub)
		{
		var x = document.createElement('option');
		x.value=sub[k].fid
		x.innerHTML=pf+sub[k].name
		if (bg) x.style.backgroundColor=bg
		o.appendChild(x)
		if (sub[k].sub)
			{
			tmp(sub[k].sub,pf+'&emsp;')
			}
		}
	}
	function tmp2(n,bg)
	{
	var x = document.createElement('option');
	x.value=''
	x.innerHTML=n
	x.style.backgroundColor=bg
	o.appendChild(x)
	}
	function tmp3(){
	o.options[0].innerHTML='...';
	o.disabled=false;
	}
var h = cookieFuncs.getMiscCookie('ForumViewHis');
if (h)
	{
	var hh = {}
	tmp2('最近访问过的版面','#aaa')
	for (var k in h)
		hh[k] = {'fid':(k.toString().indexOf('_')==0) ? k.substr(1) : k,'name':h[k]}
	tmp(hh,'','#ddd')
	}
if (load_admin && load_lesser)tmp3()
load_his=1
if (__GP['lesser'])
	{
	httpDataGetter.script_muti_get("/nuke.php?func=loadforumselect",
		function(r){
		if (!r)
			{
			return false;
			}
		else
			{
			r = r.data;
			if (r)
				{
				tmp2('全部','#aaa')
				for (var k in r)
					{
					if (r[k]['fup'] && r[r[k]['fup']])
						{
							if (!r[r[k]['fup']].sub)r[r[k]['fup']].sub={}
							if (!r[r[k]['fup']].sub[k])r[r[k]['fup']].sub[k] = r[k];
							delete r[k];
						}
					}
				tmp(r,'','')
				}
			if (load_admin && load_his)tmp3()
			load_lesser=1
			return true
			}
		},
		function(){
			if (load_admin && load_his)tmp3()
			load_lesser=1
		},
		'gbk'
		);
	}
else
	load_lesser=1
httpDataGetter.script_muti_get("/nuke.php?func=loadforumselectbyadimin",
	function(r){
	if (!r)
		{
		return false;
		}
	else
		{
		r = r.data;
		if (r)
			{
			tmp2('我管理的版面','#aaa')
			for (var k in r)
				{
				if (r[k]['fup'] && r[r[k]['fup']])
					{
						if (!r[r[k]['fup']].sub)r[r[k]['fup']].sub={}
						if (!r[r[k]['fup']].sub[k])r[r[k]['fup']].sub[k] = r[k];
						delete r[k];
					}
				}
			tmp(r,'','#eee')
			}
		if (load_lesser && load_his)tmp3()
		load_admin=1
		return true
		}
	},
	function(){
		if (load_lesser && load_his)tmp3()
		load_admin=1
	},
	'gbk'
	);
}//fe

//PM链接生成==============
commonui.loadPmIcon=function(o,iconnew,iconno,uid){
o.onload=function(){}
httpDataGetter.script_muti_get("http://interface.i.178.com/?_app=sms&_controller=index&_action=check_new&rtype=2&uid="+uid+"&"+Math.floor(date.getTime()/100000),
	function(r){
	if (!r || !r.result)
		return false;
	else
		if (r.data.total>0)
			{
			o.src=iconnew
			o.title='您有新消息'
			}
		else
			{
			o.src=iconno
			o.title='短消息'
			}
	return true
	},
	function(){
	o.src=''
	o.title=o.alt='get error'
	},
	'gbk',
	'___json___'
	)
}//fe

//投票显示==================
commonui.vote = function(o,tid){
httpDataGetter.script_muti_get("/nuke.php?func=vote2&tid="+tid+"&"+Math.floor(date.getTime()/100),
	function(r){
	if (!r || !r.data)
		return false;
	var sum = 0,txt=''
	for (var k in r.data)
		sum+=r.data[k].count
	for (var k in r.data){
		txt += "<tr><td>"+r.data[k].info+"</td>";
		if ( r.checksum )
			{
			txt += "<td><a href='nuke.php?func=vote2&tid="+tid+"&voteid="+k+"&check="+r.checksum+"' target='_blank'>投一票</a></td>";
			}
		txt += "<td><b>"+r.data[k].count+"票</b><td style='width:200px'><div style='background:#790000;height:10px;width:"+((sum)? r.data[k].count/sum*100 : 0)+"%'></div></td></tr>";
		}
	o.innerHTML = "<table><tbody>"+txt+"</tbody></table>"
	return true
	},
	function(){
	o.innerHTML='get error'
	},
	'gbk'
	)
}//fe


//窗帘生成 =============
commonui.loadCurtainMatch={}
commonui.loadCurtain = function(o){
if (!window.ubbcode){
	window.setTimeout(function(){commonui.loadCurtain(o)},50)
	return
	}
var s={
'img':[[312,250],[312,250]],
'iframe':[[312,350],[312,475]]
}
var w,h,j,mm
w=h=j=0
mm=[]
var m = o.innerHTML.match(/\[(iframe|img)=?([0-9,]+)?\](.+?)\[\/(iframe|img)\]/ig)
if (m)
	{
	for (var i=0;i<2;i++)
		{
		if(!m[i])continue
		var x = m[i].match(/\[(iframe|img)=?([0-9,]+)?\](.+?)\[\/(iframe|img)\]/i);
		if (!x || x[1]!=x[4])continue
		x[1]=x[1].toLowerCase()
		if (x[1]=='iframe' && x[3] && ubbcode.checklink(x[3],1)==1)
			{
			if(x[2]){
				x[2]=x[2].split(',')
				if(x[2][1]){
					w = x[2][0]
					h = x[2][1]
					}
				}
			if(w==0 || w>s[x[1]][j][0])w=s[x[1]][j][0]
			if(h==0 || h>s[x[1]][j][1])h=s[x[1]][j][1]
			mm[j]="<iframe style='width:"+w+"px;height:"+h+"px;overflow:hidden;border:none' frameborder=0 src='"+x[3]+"'></iframe>";
			}
		else if (x[1]=='img'&& x[3])
			{
			if (x[3].substr(0,2)=='./')
				x[3] = __ATTACH_BASE+'/'+x[3].substr(2);
			w=s[x[1]][j][0]
			h=s[x[1]][j][1]
			mm[j]="<div style='width:"+w+"px;height:"+h+"px;overflow:hidden;text-align:center'><img src='"+x[3]+"' alt='' onerror='this.nextSibling.style.display=\"inline\"'/><span class='silver' style='display:none'> [ "+x[3]+" ] </span></div>";
			}
		j++
		w=h=0
		}
	}
commonui.loadCurtainMatch=mm
}//fe

//读取主题列表==================
commonui.loadmostuserrecommendbyfid = function (x,fid,day,nocache){
commonui.loadtopic_js(x,Array(__CACHE_PATH+'/load_topic_cache/mostuserrecommend_'+fid+'_'+day+'.js?'+date.getDate()+date.getHours(),'nuke.php?func=loadtopic&js=1&f=mostuserrecommend&fid='+fid+'&day='+day+'&timeout='+3600*2.1),3600*2.1);
}

commonui.loadhotbyfid = function (x,fid,nocache){
commonui.loadtopic_js(x,Array(__CACHE_PATH+'/load_topic_cache/hot_'+fid+'_.js?'+date.getDate()+date.getHours(),'nuke.php?func=loadtopic&js=1&f=hot&fid='+fid+'&timeout='+3600*2.1),3600*2.1);
}

commonui.loadtodaydelbyfid = function (x,fid,nocache){
commonui.loadtopic_js(x,Array(__CACHE_PATH+'/load_topic_cache/todaydel_'+fid+'_.js?'+date.getDate()+date.getHours(),'nuke.php?func=loadtopic&js=1&f=todaydel&fid='+fid+'&timeout='+3600*1.1),3600*1.1,false);
}

commonui.loadtopic_js = function (x,url,timeout,randomOrder,subjectLength)
{
if(typeof(x)=='string')x=$(x)
if (x.innerHTML!='')return
if (!subjectLength) subjectLength=21;
if (typeof(randomOrder)=='undefined') randomOrder=true;
this.loadtopic_js_v2({domObj:x,url:url,timeout:timeout,randomOrder:randomOrder,subjectLength:subjectLength,postPrePage:null,styleFunc:this.topicRender.style_2})
}

// 参数x的属性包括
//domObj, 列表容器
//url,取数据的地址 可以是一个字符串 或包含多个url的数组(详见httpDataGetter.script_muti_get)
//timeout,数据超时时间
//randomOrder,随机排序
//subjectLength,主题长度限制
//postPrePage,主题每页显示帖子数
//styleFunc,样式函数 见commonui.topicRender 
//onLoadFunc(domObj),加载结束后执行的
//currentPage,当前页 有值将增加翻页链接
//getPageUrlFunc(url,page)输入当前的url(既上面的url属性) 返回指定page的url
commonui.loadtopic_js_v2 = function (x)
{
var self=this;
if(typeof(x.url)=='string')x.url = Array(x.url)
if(!x.url[1])x.timeout=0;
x.domObj.style.visibility='hidden'
httpDataGetter.script_muti_get(
x.url,
function(data){
	if (!data)return false;
	if (x.timeout && (__NOW-data.time)>x.timeout)return false;
	var html=[],t,dk,d,nextPage;
	if (x.currentPage){
		//0 如果没指定获得翻页url的函数 则使用默认的
		if (!x.getPageUrlFunc)
			x.getPageUrlFunc=function(url,newPage){
				var u,uu=[]
				if(typeof(url)=='string')u=[url]
				else u=url
				for(var i=0;i<u.length;i++){
					if(u[i].indexOf('page=')!=-1)
						uu[i]=u[i].replace(/page=([0-9]+)/,'page='+newPage)
					else
						uu[i]=url[i]+'&page='+newPage
					}
				return uu
				}//fe
		//0 --------------
		var mp = 0;
		if(!data.nextPage)mp = x.currentPage
		nextPage = self.topicRender.listPager(x.currentPage,mp,function(a){commonui.loadtopic_js_v2(a)},function (p){
			a = __NUKE.inheritClone(x)
			a.currentPage = p
			a.url=x.getPageUrlFunc(a.url,p)
			return a
			})//calle
		}
	if (Object.prototype.toString.call(data.data) != '[object Array]'){
		d=[]
		for (var k in data.data) d.push(data.data[k])
		}
	else
		d=data.data
	if (x.randomOrder)
		d = d.sort(function(){return Math.random()-0.5});
	for (var k=0;k<d.length;k++){
		dk = d[k]
		if (!dk.tid && dk._id)dk.tid=dk._id;
		t={}
		t.i=k
		if(dk.hot)t.hot=dk.hot
		t.subject=self.topicRender.subject(dk.tid,dk.subject,x.subjectLength,dk.titlefont,dk.quote_from)
		if(typeof(dk.replies)!='undefined' && x.postPrePage) t.page=self.topicRender.pager(dk.tid,dk.replies,x.postPrePage)
		if(dk.fid){
			t.fid=dk.fid
			if(data.forumName)
				t.forum=self.topicRender.forum(dk.fid,data.forumName[dk.fid])
			else if(__SUBSCRIPTIONS)
				t.forum=self.topicRender.forum(dk.fid,__SUBSCRIPTIONS[dk.fid])
			}
		if(dk.authorid && dk.author) t.author=self.topicRender.author(dk.authorid,dk.author)
		if(dk.lastposter) t.replier=self.topicRender.author(null,dk.lastposter)
		if(dk.postdate) t.ptime=dk.postdate
		if(dk.lastpost) t.rtime=dk.lastpost
		html.push(x.styleFunc(t));
		}
	x.domObj.innerHTML='<ul>'+html.join('')+'</ul>';
	if(nextPage){
		x.domObj.appendChild(nextPage)
		x.domObj.insertBefore(nextPage.cloneNode(true),x.domObj.firstChild)
		}
	if(x.onLoadFunc)
		x.onLoadFunc(x.domObj)
	x.domObj.style.visibility='visible'
	return true;
	},
function(){
	x.domObj.innerHTML='读取错误';
	},
	{'charset':'gbk','noCache':true}
);

}




commonui.topicRender = {

style_1:function (t){
if (t.i&1==1)t.i='b2'
else t.i='b1'
var x= ''
if(__SUBSCRIPTIONS_COLOR && t.fid)x=" style='border-color:"+__SUBSCRIPTIONS_COLOR['_'+t.fid]+"'"
t.ptime = commonui.topicRender.date(t.ptime ,'m-d H:i')
t.rtime = commonui.topicRender.date(t.rtime ,'m-d H:i',1)
return "\
<li class='"+t.i+"'"+x+">\
<span class='right' title='最后回复'>"+t.replier+" "+t.rtime+"</span>\
"+t.subject+" "+t.page+"\
<span class='subinfo block'>\
<span class='right' title='发布时间'>"+t.author+" "+t.ptime+"</span>\
"+t.forum+"\
</span>\
</li>";
},//fe

style_2:function (t){
if (t.i&1==1)t.i='b2'
else t.i='b1'
t.ptime = commonui.topicRender.date(t.ptime)
return "<li class='"+t.i+"'><span class='subinfo'>"+t.hot+" "+t.ptime+"</span>"+t.subject+"</li>"
},//fe

date:function (time,format,_2dis,cls){
if(!format)format='y-m-d H:i'
if(!cls)cls='date'
if(_2dis)
	return "<span class='"+cls+"'>"+commonui.time2dis(time,format)+"</span>"
else
	return "<span class='"+cls+"'>"+commonui.time2date(time,format)+"</span>"
},//fe

listPager:function(currentPage,maxPage,handler,getHandlerArgFunc){
if (maxPage){
	if (maxPage<=1) return _$('<span/>')._.cls('page_nav');
	uncertain=''
	}
else
	{
	maxPage = currentPage+1
	uncertain ='可能有此页';
	}
var tmp = function(p,t,d,c){
	return _$('<a>'+t+'</a>')._.cls(c)._.attr('title',d)._.attr('href','javascript:void(0)')._.sV('pagerHandler',{handler:handler,arg:getHandlerArgFunc(p)})._.on('click',function (){
	var h = this._.gV('pagerHandler')
	h.handler(h.arg)
	})
	}

var pager = _$('<span/>')._.cls('page_nav');

pager._.aC(tmp(1,'&lt;&lt;','第一页','ls-4 first'))
if((currentPage-1)>0)pager._.aC(tmp(currentPage-1,'&lt;','上一页('+(currentPage-1)+')','prev'))
var j=0;
for(var i=currentPage-3;i<=currentPage-1;i++){
	if(i<1) continue;
	pager._.aC(tmp(i,i,'','pl'))
	}
pager._.aC(tmp(currentPage,currentPage,'','b current'))
if(currentPage<maxPage){
	for(var i=currentPage+1;i<=maxPage;i++){
		if (uncertain && i==maxPage)
			pager._.aC(tmp(i,i,uncertain,'pr'))
		else
			pager._.aC(tmp(i,i,'','pr'))
		j++;
		if(j==4) break;
		}
	i--;
	if (uncertain){
		pager._.aC(tmp(i,'&gt;',uncertain+'('+i+')','next'))
		pager._.aC(tmp(i,'','','end'))
		}
		else{
		pager._.aC(tmp(i,'&gt;','下一页('+i+')','next'))
		pager._.aC(tmp(i,'&gt;&gt;','最后页('+maxPage+')','last ls-4'))
		}
	
	}
pager._.aC( _$('<button>刷新</button>')._.attr('type','button')._.sV('pagerHandler',{handler:handler,arg:getHandlerArgFunc(currentPage)})._.on('click',function (){
	var h = this._.gV('pagerHandler')
	h.handler(h.arg)
	}) )
return pager
},

pager:function (tid,p,postPrePage,blank,cls){
if (p < postPrePage)return '';
page='';
if(!cls)cls='gray'
blank= blank ? ' target="_blank"' : ''
if ((p+1)%postPrePage==0)
	var maxp=(p+1)/postPrePage;
else
	var maxp=Math.floor((p+1)/postPrePage)+1;
page+=" <span class='pager'>[ ";
for (var j=1; j<=maxp; j++)
	{
	if (j==6)
		{
		page+=" ... <a class="+cls+" href='/read.php?tid="+tid+"&page="+maxp+"'"+blank+">"+maxp+"</a>";
		break;
		}
	page+=" <a style='color:gray' href='/read.php?tid="+tid+"&page="+j+"'"+blank+">"+j+"</a>";
	}
page+=' ]</span>';
return page
},//fe

subject:function (tid,subject,lengthMax,titlefont,quoteFrom,blank,cls){
if(!cls)cls='topic'
blank= blank ? ' target="_blank"' : ''
var til=''
if(lengthMax && subject.length>lengthMax){
	til=' title="'+subject+'" '
	subject = subject.substr(0,lengthMax)+'...';
	}
if(titlefont){
	titlefont=titlefont.split("~");
	if(titlefont[0])subject="<span class='"+titlefont[0]+"'>"+subject+"</span>";
	if(titlefont[1])subject="<b>"+subject+"</b>";
	if(titlefont[2])subject="<i>"+subject+"</i>";
	if(titlefont[3])subject="<u>"+subject+"</u>";
	}
else if (quoteFrom)
	subject="<b>"+subject+"</b>";
return "<a class='"+cls+"' href='/read.php?tid="+tid+"'"+blank+til+">"+subject+"</a>"
},//fe

author:function (uid,name,blank,cls){
if(!cls)cls='author'
if(uid)
	return "<a href='/nuke.php?func=ucp&uid="+uid+"' class='"+cls+"'"+blank+">"+name+"</a>"
else
	return "<span class='"+cls+"'>"+name+"</span>"
},//fe

forum:function (fid,name,blank,cls){
if(!cls)cls='forum'
blank= blank ? ' target="_blank"' : ''
return "<a href='/thread.php?fid="+fid+"' class='"+cls+"'"+blank+">[ "+name+" ]</a>"
}//fe
}//ce

//论坛信息==================
commonui.getBoardInfo = function (o,totalinbbs,userinbbs,unvalidateuser,guestinbbs){
httpDataGetter.script_muti_get(
'/nuke.php?func=custom_index&f=info',
function(data){
	if (!data)return false;
	o.innerHTML = "<table style='width:100%' cellpadding='0px' cellspacing='0px'><tr>\
	<td style='text-align:left;vertical-align:bottom;'>\
		<div class='nav'><strong>"+data['notice']+"</strong></div>\
	</td>\
	<td style='text-align:right;line-height:18px'>\
		共 <span class='numeric'>"+totalinbbs+"</span> 人在线,<span class='numeric'>"+userinbbs+" <span title='未验证'>("+unvalidateuser+")</span></span> 位会员,<span class='numeric'>"+guestinbbs+"</span> 位访客<br/>\
		最多 <span class='numeric'>"+data['higholnum']+"</span> 人 <span class='numeric'>("+time2date(data['higholtime'])+")</span><br/>\
		共 <span class='numeric'>"+data['threads']+"</span> 篇主题,<span class='numeric'>"+data['posts']+"</span>  篇帖子,<span class='numeric'>"+data['members']+"</span>  位会员<br/>\
		<a href='thread.php?authorid="+__CURRENT_UID+"&date=all'>我的主题</a> · <a href='thread.php?recommend=1&date=all'>精华区</a> · <a href='/thread.php?favor=1'>我的收藏</a> · 欢迎新会员 <a href='profile.php?uid="+data['newmember']['uid']+"' class='green'>"+data['newmember']['username']+"</a>\
	</td>\
</tr></table>";
	return true;
	},
function(){
	o.innerHTML='读取错误';
	},
'gbk'
);
}//fe

//用户头像与信息==================
commonui.dispUserInfo=function(l,avatar,honor,regdate,lastlogin,lpic,userip,level,mute_time,medal,postnum,aurvrc,reputation,authorid,fid,money,site,remark,r){
var x = ''
var tmp = ''
var tmp2 = ''
if (avatar)
	avatar=commonui.loadPostPortrait(avatar)
if (avatar)
	x+="<div id='postportrait"+l+"' class='portrait' name='portrait'>"+avatar+"</div>"
if (honor)
	x+="<span class='silver' name='honor'>"+honor+"</span>"
if(lpic==1)
	tmp = 'sikle_bg.gif'
else if(aurvrc>=0)
	tmp = 'nga_bg.gif'
else
	tmp = 'skeleton_bg.gif'
x+="<div class='stat'><img src='about:blank' class='x' onerror='w_s(\"background:url("+__IMG_STYLE+"/level/"+tmp+") top right no-repeat\",this)'/>"
//if (userip)	x+="<span class='gimg'>"+userip+"</span>"

x+="<div style='width:100%'><table cellspacing=0 style='width:100%' class='stat_table'><tbody>"

var w=0;
if(r){
	var y,z;
	for(var k in r){
		if (r[k]['r']==0)continue;
		if (r[k]['r']>21000)r[k]['r']=21000
		if (r[k]['r']<-21000)r[k]['r']=-21000
		if(r[k]['id']==fid)w=r[k]['r'];
		z = y = Math.abs(r[k]['r']/1000)
		y=Math.floor(y)
		if (z==y){
			y--;
			z=100;
			}
		else{
			z=(z-y)*100
			if (z<1)z=1
			}
		x+="<tr><td colspan=2><table style='width:100%'><tbody><tr><td style='width:31px'>声望:</td><td style='padding-right:4px'><div class='r_container' title='"+r[k]['n']+' &emsp;'+r[k]['r']+"'><table cellspacing=1 class='"+((r[k]['r']>0)?'blue':'red')+"' "+((y)?"style='margin-bottom:-1px'":'')+"><tbody><td class='r_barc'><div style='width:"+z+"%' class=r_bar></div></td></tr></tbody></table>"
		if(y){
			x+="<table cellspacing=1 class='"+((r[k]['r']>0)?'blue':'red')+"'><tbody><tr>"
			for (var i=0;i<y;i++)
				x+="<td class='dot'></td>"
			x+="</tr></tbody></table>"
			}
		x+="</div></td></tr></tbody></table></td></tr>";
		}
	}

tmp=tmp2=''
if (mute_time>__NOW){
	tmp='mute_color'
	tmp2 = "禁言至:"+commonui.time2date(mute_time,'Y-m-d H:i')
	}

if (fid<0 && window.__CUSTOM_LEVEL ){
	z=__CUSTOM_LEVEL[0].n
	for (var i=0;i<__CUSTOM_LEVEL.length;i++){
		if (w>=__CUSTOM_LEVEL[i].r)
			z=__CUSTOM_LEVEL[i].n
		else
			break
		}
	if(w>9999)
		y = 'numeric'
	else
		y = 'numericl'
	x+="<tr title='论坛级别:"+level+" &emsp;威望:"+aurvrc+" "+tmp2+"'><td style='width:50%'><div style='display:none;overflow:hidden'><nobr>级别: <span name='level'>"+z+"</span></nobr></div><img src='about:blank' class='x' onerror='this.previousSibling.style.width=this.parentNode.offsetWidth+\"px\";this.previousSibling.style.display=\"\"'/></td><td><nobr>声望: <span class='"+y+"'>"+w+"</span></nobr></td></tr>"
	}
else
	{
	z=''
	if (__CURRENT_UID!=authorid)
		z= " <a href='http://i.178.com/?uid="+authorid+"&from=nga' target='_blank' title='加好友' style='vertical-align:-2px'><img src='"+__IMG_STYLE+"/addfriend.gif'/></a> <a href='http://i.178.com/?b_uid="+authorid+"&_app=duel&_controller=combat&_action=fight' target='_blank' title='挑战' style='vertical-align:-2px'><img src='"+__IMG_STYLE+"/challenge.gif'/></a>";
	x+="<tr><td style='width:50%'>级别: <span name='level' class='"+tmp+"' title='"+tmp2+"'>"+level+"</span></td><td><nobr>威望: <span id='posterpg"+l+"' class='numericl' name='pg'>"+aurvrc+"</span></nobr>"+z+"</td></tr>"
	}


if(postnum>9999)
	tmp = 'numeric'
else
	tmp = 'numericl'
if(!isNaN(regdate-0))
	regdate = commonui.time2date(regdate,'Y-m-d H:i')
if(!isNaN(lastlogin-0))
	lastlogin = commonui.time2date(lastlogin,'Y-m-d H:i')
x+="<tr><td title=' 注册时间: "+regdate+" &#10; 最后登陆: "+lastlogin+" '>发帖: <span class='"+tmp+"' name='postnum'>"+postnum+"</span></td>"
if(money>0)
	money = "财富: <span class='numericl' name='money' value='"+money+"'>"+commonui.calc_money(money)+"</span>";
else
	money=''
x+="<td>"+money+"</td></tr></tbody></table></div>"

if (medal && medal.length){
	x+="徽章:<span name='medal'>"
	for (var k=0;k<medal.length;k++)
		x+=" <img class='medalimg' src='_.gif' onload='w_i(\""+__IMGPATH+"/medal/"+medal[k][0]+"\",this)' title='"+medal[k][1]+":&#10;"+medal[k][2]+"' style='margin-bottom:-4px'/>"
	x+="</span><br/>"
	}
if (site)
	x+="<a href='thread.php?fid=-"+authorid+"' name='site'>["+site+"]</a><br/>"

/*
if (reputation)
	x+="<a href='javascript:void(0)' onclick='commonui.dispReadReputation(this.nextSibling,"+authorid+","+fid+")' style='display:block;float:left'>声望: </a><div class=left>"+z+"</div><div class='clear'></div>"
*/

if (remark)
	x+="<img src='_.gif' onload='commonui.load_user_remark(this,"+authorid+")'/>"


return x+'<div class=clear></div></div><div class=stat_spacer></div>'
}//fe

//订阅==================

commonui.unionforum_subscribe = function (o,ufid,s){
if (!__CURRENT_UID)
	return window.alert('必须登录')
var i = o.getElementsByTagName('input')
var x = '';
for (var k in i){
	if (i[k].checked && i[k].value){
		x+=','+i[k].value
		}
	}
if (s){
	i = o.getElementsByTagName('select')[0]
	if(i && i.options[i.selectedIndex].value)
		x+=','+i.options[i.selectedIndex].value
	else
		return
	}
if(x)x=x.substr(1)
httpDataGetter.script_muti_get("/nuke.php?func=save_subscription&save=1&ufid="+ufid+'&fid='+x,
	function(r){
		window.alert(r.data)
		},
	function(){},
	'gbk'
	)
}//fe

//nouse ==================
commonui.dispReadReputation = function(o,uid,fid)
{
if (isNaN(parseInt(uid,10)))return;
if (typeof(fid)=='number' && fid<0) fid='&rid='+fid;
else fid=''
httpDataGetter.script_muti_get("/nuke.php?func=load_user_reputation&uid="+uid+fid,
	function(r){
	if (!r)
		{
		o.innerHTML = 'data error';
		return false;
		}
	else
		{
		var l='';
		var x = '';
		r = r.data;
		for (var k in r)
			{
			l=commonui._r_f.format(r[k]['r'])
			x+='<tr><td>'+r[k]['n']+' <span class=numeric>('+l.value+')</span><div class=r_container><div style=\"width:'+(l.rate*100)+'%\" class=r_bar></div></div><span class=silver>'+l.name+' <span class=numeric>('+l.valueDisp+'/'+l.range+')</span></span></td></tr>';
			}
		if (x)
			x = '<table class=reputation_table cellspacing=0><tbody>'+x+'</tbody></table>';
		else
			x = 'no reputation';
		o.innerHTML = x;
		return true
		}
	},
	function(){
	o.innerHTML = 'get error';
	},
	'gbk'
	)
}//fe