﻿/* 错误代码定义 */
var DetailLang=function(){
	this.UNKNOWN=" ";
	this.AJAX_1="无效的操作";
	this.AJAX_2="未知错误";
	this.DATA_1="无效的请求方式";
	this.DATA_2="内容编号不能为空";
	this.DATA_3="无效的内容编号";
	this.DATA_4="无效的操作";
	this.DATA_5="无效的参数";
	this.DATA_6="内容编号不能为空，提交失败";
	this.DATA_7="无效的内容编号，提交失败";
	this.HANDLEDATA_1="起始编号不能为空";
	this.HANDLEDATA_2="无效的起始编号";
	this.HANDLEDATA_3="结束编号不能为空";
	this.HANDLEDATA_4="无效的结束编号";
	this.HANDLEDATA_5="无法获取数据库连接";
	this.HANDLEDATA_6="无法获取内容记录";
	this.HANDLEDATA_7="标题不能为空，提交失败";
	this.HANDLEDATA_8="标题的长度不能超过500字节，提交失败";
	this.HANDLEDATA_9="联系人的长度不能超过50字节，提交失败";
	this.HANDLEDATA_10="邮箱的长度不能超过100字节，提交失败";
	this.HANDLEDATA_11="内容的长度不能超过2000字节，提交失败";
	this.HANDLEDATA_12="无法获取客户端IP地址，提交失败";
	this.HANDLEDATA_13="该内容不存在，可能是已经被删除";
	this.HANDLEDATA_14="不允许对该内容发表评论";
	this.HANDLEDATA_15="未知错误";
	this.HANDLEDATA_16="回复内容不能为空，提交失败";
	this.HANDLEDATA_17="回复内容的长度不能超过2000字节，提交失败";
	this.HANDLEDATA_18="转换回复时间失败";
	this.HANDLEDATA_19="该评论不存在，可能是已经被删除";
	this.HANDLEDATA_20="无法获取此评论所属的内容分类记录";
	this.HANDLEDATA_21="用户名不能为空";
	this.HANDLEDATA_22="密码不能为空";
	this.HANDLEDATA_23="验证码不能为空";
	this.HANDLEDATA_24="无法获取会话";
	this.HANDLEDATA_25="无法从会话中获取验证码";
	this.HANDLEDATA_26="无效的验证码";
	this.HANDLEDATA_27="用户名不存在或者是密码不正确";
	this.HANDLEDATA_28="无效的内容分类编号";
	this.HANDLEDATA_29="无效的内容排序方式";
	this.HANDLEDATA_30="分页大小过大";
	this.DETAIL_1="年";
	this.DETAIL_2="月";
	this.DETAIL_3="日";
	this.DETAIL_4="无法获取内容编号";
	this.DETAIL_5="无法创建XMLHttpRequest对象";
	this.DETAIL_6="服务器没有生成正确的XML响应";
	this.DETAIL_7="未知错误";
	this.DETAIL_8="未知错误：";
	this.DETAIL_9="已被浏览";
	this.DETAIL_10="次";
	this.DETAIL_11="，共";
	this.DETAIL_12="页，本页显示：第";
	this.DETAIL_13="至";
	this.DETAIL_14="条";
	this.DETAIL_15="回复";
	this.DETAIL_16="删除回复";
	this.DETAIL_17="删除";
/*	this.DETAIL_18="尚无评论"; */
	this.DETAIL_19="标题不能为空";
	this.DETAIL_20="标题的长度必须小于500字节";
	this.DETAIL_21="联系人的长度必须小于50字节";
	this.DETAIL_22="邮箱的长度必须小于100字节";
	this.DETAIL_23="无效的邮箱";
	this.DETAIL_24="内容的长度必须小于2000字节";
	this.DETAIL_25="回复内容不能为空";
	this.DETAIL_26="回复内容的长度必须小于2000字节";
	this.DETAIL_27="站长于";
	this.DETAIL_28="回复：";
	this.DETAIL_29="是否要取消发表回复";
	this.DETAIL_30="是否要删除对此评论的回复？";
	this.DETAIL_31="是否要删除此评论？";
	this.DETAIL_32="请输入用户名";
	this.DETAIL_33="请输入密码";
	this.DETAIL_34="无效的验证码";
	this.DETAIL_35="无效的注册名，非法的登录请求";
	this.DETAIL_36="您没有使用该服务的权限";
	this.DETAIL_37="登录";
	this.DETAIL_38="请输入您的用户名和密码";
	this.DETAIL_39="用户名：";
	this.DETAIL_40="密&nbsp;&nbsp;码：";
	this.DETAIL_41="登&nbsp;&nbsp;录";
	this.DETAIL_42="取&nbsp;&nbsp;消";
	this.DETAIL_43="验证码：";
	this.DETAIL_44="请输入右边图片中的四位大写字母";
	this.DETAIL_45="看不清图片内容请点击图片刷新";
	this.DETAIL_46="\u3000";/* 全角空格 */
	this.DETAIL_47="上一篇";
	this.DETAIL_48="下一篇";
	/* 获取错误信息 */
	this.getString=function(n){
		if(typeof(g_detail_lang[n])=="string"){
			return g_detail_lang[n];
		}else{
			return g_detail_lang.UNKNOWN;
		}
	};
};
/* json */
(function (){
	var m={
					'\b':'\\b',
					'\t':'\\t',
					'\n':'\\n',
					'\f':'\\f',
					'\r':'\\r',
					'"':'\\"',
					'\\':'\\\\'
			},
			s={
					array:function (x){
							var a=['['],b,f,i,l=x.length,v;
							for(i=0;i<l;i+=1){
								v=x[i];
								f=s[typeof v];
								if(f){
									v=f(v);
									if(typeof v =='string'){
										if(b){
											a[a.length]=',';
										}
										a[a.length]=v;
										b=true;
									}
								}
							}
							a[a.length]=']';
							return a.join('');
					},
					'boolean':function (x){
						return String(x);
					},
					'null':function (x){
						return "null";
					},
					number:function (x){
						return isFinite(x)?String(x):'null';
					},
					object:function (x){
						if(x){
							if(x instanceof Array){
								return s.array(x);
							}
							var a=['{'],b,f,i,v;
							for(i in x){
								v=x[i];
								f=s[typeof v];
								if(f){
									v=f(v);
									if(typeof v =='string'){
										if(b){
											a[a.length]=',';
										}
										a.push(s.string(i),':',v);
										b=true;
									}
								}
							}
							a[a.length]='}';
							return a.join('');
						}
						return 'null';
					},
					string:function (x){
						if(/["\\\x00-\x1f]/.test(x)){
							x=x.replace(/([\x00-\x1f\\"])/g,
								function(a,b){
									var c=m[b];
									if(c){
										return c;
									}
									c=b.charCodeAt();
									return '\\u00'+Math.floor(c/16).toString(16)+(c%16).toString(16);
								});
						}
						return '"' + x + '"';
					}
			};
			Object.prototype.toJSONString=function (){
				return s.object(this);
			};
			Array.prototype.toJSONString=function (){
				return s.array(this);
			};
})();
/* siteem_win */
var STARTING_Z_INDEX=1000;
var siteem_win_al=[];
siteemWinGetWinSize=window.innerHeight?function(b_h){return b_h?innerHeight:innerWidth;}:function(b_h){return document.body[b_h?'clientHeight':'clientWidth'];};
siteemWinGetWinScroll=window.innerHeight?function(b_h){return b_h?pageYOffset:pageXOffset;}:function(b_h){return document.body[b_h?'scrollTop':'scrollLeft'];};
siteemWinSetStyle=function(ele,value){ele.style.cssText=value;ele.setAttribute("style",value);};
function siteem_win(content,title,imagePath,width,bLoading,top,left){
	var win=this;this.nsscrolltimer=null;this.imagePath=imagePath;this.uniqueid=++STARTING_Z_INDEX;
	siteem_win_al.push(this);
	this.width=width?width:500;this.top=top;this.left=left;
	this.winClientoutW=this.width+6;
	this.winClientinW=this.width+2;
	this.canFocusList={};
	this.content=[];this.tabIndex=0;
	this.onShow=null;this.onClose=null;this.bLoading=bLoading;
	var winContainer=document.createElement("div");
	document.body.appendChild(winContainer);
	siteemWinSetStyle(winContainer,"top:"+siteemWinGetWinScroll(true)+"px;left:"+siteemWinGetWinScroll(false)+"px;position:absolute;visibility:visible;width:100%;height:100%;background-image:url("+this.imagePath+"/transparent.gif);z-index:"+(win.uniqueid)+";");
	if(typeof(content)=="string"){
		var obj=document.createElement("div");obj.innerHTML=content;
		siteemWinSetStyle(obj,"position:relative;visibility:visible;display:inline;");
		this.content[0]=obj;
	}
	else if(typeof(content)=="object"){
		for(var i=0;i<content.length;i++){
			var obj=document.createElement("div");obj.innerHTML=content[i];
			//if(i==0)siteemWinSetStyle(obj,"position:relative;visibility:visible;display:inline;");
			if(i==0)siteemWinSetStyle(obj,"visibility:visible;display:inline;");
			else siteemWinSetStyle(obj,"position:relative;visibility:visible;display:none;");
			this.content[i]=obj;
		}
	}
	var buttons=[];
	var winPanel=document.createElement("div");var winBody=document.createElement("div");var winBar=document.createElement("div");
	var winBottom=document.createElement("div");var winTitle=document.createElement("div");var winClient=document.createElement("div");
	winTitle.id="siteem_drag_bar"+win.uniqueid;
	siteemWinSetStyle(winBody,"top:-10000px;left:-10000px;position:absolute;visibility:visible;display:block;z-index:"+(win.uniqueid+1));
	if(!this.bLoading)siteemWinSetStyle(winBar,"cursor:default;position:relative;top:0px;left:0px;");
	siteemWinSetStyle(winPanel,"text-align:center;");
	siteemWinSetStyle(winClient,"text-align:center;");
	siteemWinSetStyle(winTitle,"color:#000000;font-weight:bold;margin-top:4;padding-top:2;margin-left:4px;font-size:11pt;text-align:left;")
	if(!this.bLoading)winBottom.innerHTML="<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr><td height=\"10\"><\/td><\/tr><\/table>";
	if(this.bLoading)winClient.innerHTML="<table id=\"siteem_win_clienttbl"+this.uniqueid+"\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"border:0px\"><tr><td id=\"siteem_win_client"+win.uniqueid+"\" align=\"center\"><\/td><\/tr><\/table>";
	else winClient.innerHTML="<table id=\"siteem_win_clienttb2"+this.uniqueid+"\" width=\""+this.winClientoutW+"\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"style=\"background-color:#ffffff;border-left:#66667E solid 1px;border-right:#66667E solid 1px;border-bottom:#66667E solid 1px;\"><tr><td align=\"center\"><table id=\"siteem_win_clienttbl"+this.uniqueid+"\" width=\""+this.winClientinW+"\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"background-color:#E0DFE3;border-left:#66667E solid 1px;border-right:#66667E solid 1px;border-bottom:#66667E solid 1px;margin-bottom:1px\"><tr><td id=\"siteem_win_client"+win.uniqueid+"\" align=\"center\"><\/td><\/tr><\/table><\/td><\/tr><\/table>";
	winContainer.appendChild(winBody);
	if(!this.bLoading)winBody.appendChild(winBar);
	winBody.appendChild(winClient);
	var clientEle=document.getElementById("siteem_win_client"+win.uniqueid);
	if(clientEle){for(var i=0;i<this.content.length;i++)winPanel.appendChild(this.content[i]);clientEle.appendChild(winPanel);clientEle.appendChild(winBottom);}
	var html="<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr><td width=\"5\" height=\"29\"><img border=\"0\" src=\""+this.imagePath+"/left_focus.gif\" id=\"left_image"+win.uniqueid+"\"><\/td><td id=\"siteem_win_title"+win.uniqueid+"\" style=\"background-image:url("+this.imagePath+"/bg_focus.gif)\"><\/td>"+
	"<td width=\"29\" align=\"right\" valign=\"middle\" id=\"td_close"+win.uniqueid+"\" style=\"background-image:url("+this.imagePath+"/bg_focus.gif)\"><img border=\"0\" src=\""+this.imagePath+"/close_focus.gif\" id=\"siteem_win_close"+win.uniqueid+"\" style=\"cursor:default\"><\/td><td width=\"5\"><img border=\"0\" src=\""+this.imagePath+"/right_focus.gif\" id=\"right_image"+win.uniqueid+"\"><\/td><\/tr><\/table>";
	winBar.innerHTML=html;
	var ele=document.getElementById("siteem_win_title"+win.uniqueid);
	if(ele)ele.appendChild(winTitle);
	var agent=navigator.userAgent.toLowerCase();
	var ns=(agent.indexOf('mozilla')!=-1&&agent.indexOf('spoofer')==-1&&agent.indexOf('compatible')==-1&&agent.indexOf("opera")==-1&&agent.indexOf("firefox")==-1);
	var isIE=((agent.indexOf("msie")!=-1)&&(agent.indexOf("opera")==-1));
	var op=(agent.indexOf("opera")!=-1);
	var ff=(agent.indexOf('mozilla')!=-1&&agent.indexOf('spoofer')==-1&&agent.indexOf('compatible')==-1&&agent.indexOf("opera")==-1&&agent.indexOf("firefox")!=-1);
	this.mflag=false;
	this.attachEvent=function(){
		with(winBar){
			var x1,y1,l1,t1;
			if(isIE){
				onmousedown=function(){if(event.button!=1)return;this.setCapture();win.mflag=true;x1=event.clientX;y1=event.clientY;l1=winBody.style.pixelLeft;t1=winBody.style.pixelTop;};
				onmousemove=function(){if(win.mflag){winBody.style.pixelLeft=l1+event.clientX-x1;winBody.style.pixelTop=t1+event.clientY-y1;}};
				onmouseup=function(){this.releaseCapture();win.mflag=false;this.style.cursor='default';};
				onSelectStart=function(){return false;};
				onclick=function(){if(event.srcElement.id=="siteem_win_close"+win.uniqueid)win.hide();};
			}
			else{
				onmousedown=function(e){if(e.which!=1)return;if(e.target.id==("siteem_drag_bar"+win.uniqueid)){win.mflag=true;x1=e.clientX;y1=e.clientY;l1=winBody.offsetLeft;t1=winBody.offsetTop;}};
				onmousemove=function(e){if(win.mflag){winBody.style.left=l1+e.clientX-x1;winBody.style.top=t1+e.clientY-y1;}};
				onmouseup=function(e){win.mflag=false;};
				onSelectStart=function(){return false;};
				onclick=function(e){if(e.target.id=="siteem_win_close"+win.uniqueid)win.hide();};
			}
		}
	}
	this.buttons=buttons;this.body=winBody;this.panel=winPanel;
	this.bar=winBar;this.container=winContainer;this.bottom=winBottom;
	this.setTitle=function(val){if(val)winTitle.innerHTML=val;};
	this.setX=function(val){var x=siteemWinGetWinSize(false)-winBody.offsetWidth;winBody.style.left=(val?val:(x>0?parseInt(x/2):0));};
	this.setY=function(val){var t=siteemWinGetWinSize(true)-winBody.offsetHeight;winBody.style.top=(val?val:(t>0?parseInt(t/2):0));};
	this.setW=function(){winBody.style.width=this.winClientoutW};
	this.hide=function(){
		if(typeof(win.onClose)=="function")if(!win.onClose())return;
		win.hideOrShowOther("focus",win,"#66667E","#000000");
		if(winContainer.parentNode)
			winContainer.parentNode.removeChild(winContainer);
		win.clearScrollTimer();siteem_win_al.pop();
		if(siteem_win_al.length){var w=siteem_win_al[siteem_win_al.length-1];w.attachEvent();w.focusFirst();}
	};
	this.show=function(){
		win.hideOrShowOther("blur",win,"#C9C9D7","#A2A1A1");this.setW();this.setX(this.left);this.setY(this.top);
		this.retrieveCanFocusList();var oldSt=siteemWinGetWinScroll(true);var oldSl=siteemWinGetWinScroll();this.focusFirst();if(ns||ff){document.body.scrollTop=oldSt;document.body.scrollLeft=oldSl;};if(typeof(this.onShow)=="function"){this.onShow();}
	};
	this.ffnsscroll=function(){
		var dy=winBody.offsetTop;
		document.body.scrollTop = dy;
	}	
	this.reShow=function(){this.setX(this.left);this.setY(this.top);};
	this.hideOrShowOther=function(hide,obj,color,color1){if(siteem_win_al.length>1)siteem_win_al[siteem_win_al.length-2].hideOrShow(hide,color,color1);};
	this.hideOrShow=function(hide,color,color1){
		var li=document.getElementById("left_image"+win.uniqueid);var wt=document.getElementById("siteem_win_title"+win.uniqueid);
		var tc=document.getElementById("td_close"+win.uniqueid);var wc=document.getElementById("siteem_win_close"+win.uniqueid);
		var ri=document.getElementById("right_image"+win.uniqueid);
		var ele=document.getElementById("siteem_win_clienttbl"+win.uniqueid);var ele2=document.getElementById("siteem_win_clienttb2"+win.uniqueid);
		if(ele){ele.style.borderLeftColor=color;ele.style.borderRightColor=color;ele.style.borderBottomColor=color;}
		if(ele2){ele2.style.borderLeftColor=color;ele2.style.borderRightColor=color;ele2.style.borderBottomColor=color;}
		if(li)li.src=win.imagePath+"/left_"+hide+".gif";if(wt)wt.style.backgroundImage="url("+win.imagePath+"/bg_"+hide+".gif)";
		if(tc)tc.style.backgroundImage="url("+win.imagePath+"/bg_"+hide+".gif)";if(wc)wc.src=win.imagePath+"/close_"+hide+".gif";
		if(ri)ri.src=win.imagePath+"/right_"+hide+".gif";
		siteemWinSetStyle(winTitle,"color:"+color1+";font-weight:bold;margin-top:4;padding-top:2;margin-left:4px;font-size:12pt;text-align:left;");
	};
	this.setOnShow=function(onShow){this.onShow=onShow;};
	this.setOnClose=function(onClose){this.onClose=onClose};
	this.addButton=function(text,name,exeType,cb,disable,width,target){
		var btn=document.createElement("input");
		btn.name=name;btn.id=name;btn.type="button";btn.value=text;btn.disabled=disable;
		btn.style.width=width?width:80;btn.style.height=24;btn.style.fontSize=12;btn.style.marginLeft=5;btn.style.marginRight=5;
		if(clientEle)clientEle.insertBefore(btn,winBottom);
		btn.execute=new Function();
		exeType=(exeType?exeType:"").toLowerCase();
		switch(exeType){
			case "hide":btn.onclick=win.hide;break;
			case "js":btn.onclick=cb;break;
			case "url":if(typeof(cb)!="string")break;if(target==null||target=="")target="_blank";btn.onclick=function(){open(cb,target);};break;
		}
		buttons[buttons.length]=btn;
		return btn;
	};
	this.startScroll=function(){
		if(this.mflag)return;var st=siteemWinGetWinScroll(true);var sl=siteemWinGetWinScroll(false);
		for(var n_id=0;n_id<siteem_win_al.length;n_id++){if(siteem_win_al[n_id].container){siteem_win_al[n_id].container.style.top=st;siteem_win_al[n_id].container.style.left=sl;}}
	}
	this.startScrollTimer=function(){if(this.nsscrolltimer==null)this.nsscrolltimer=setInterval(this.startScroll,100);};
	this.clearScrollTimer=function(){if(this.nsscrolltimer){clearInterval(this.nsscrolltimer);this.nsscrolltimer=null;}};
	this.setTitle(title);
	this.attachEvent();
	if((ns)||(ff))this.startScrollTimer();
	this.retrieveCanFocusList=function(){
		var prevele=null;var firstele=null;var bFirst=true;
		var uid=0;
		function recursiveGetChildren(obj,lst){
			for(var i=0;i<obj.childNodes.length;i++)
			{
				var ele=obj.childNodes[i];if((ele.style)&&(ele.style.display)&&(ele.style.display=="none"))continue;
				if((ele.disabled)&&(ele.disabled))continue;
				if((ele.type)&&(ele.type=="hidden"))continue;
				var tn=ele.nodeName.toLowerCase();
				if((tn=="input")||(tn=="textarea")||(tn=="select")){
					if(bFirst){firstele=ele;bFirst=false;}
					ele.uid=(++uid);
					if(prevele)win.canFocusList[prevele.uid][2]=ele;
					lst[ele.uid]=[ele,false,null];
					prevele=ele;
					ele.onfocus=function(){var l=win.canFocusList[this.uid];if(l)l[1]=true;return true;};
					ele.onblur=function(){var l=win.canFocusList[this.uid];if(l)l[1]=false;return true;};
				}
				else recursiveGetChildren(ele,lst);
			}
		}
		recursiveGetChildren(winClient,this.canFocusList);
		if(prevele)win.canFocusList[prevele.uid][2]=firstele;
	};
	this.focusFirst=function(){for(attr in this.canFocusList){var l=this.canFocusList[attr];if(typeof(l)=="function")continue;l[0].focus();break;}};
	this.setBgColor=function(color){var ele=document.getElementById("siteem_win_clienttbl"+win.uniqueid);if(ele)ele.style.backgroundColor=color;}
	window.onscroll=function(e){
		var st=siteemWinGetWinScroll(true);var sl=siteemWinGetWinScroll(false);
		for(var n_id=0;n_id<siteem_win_al.length;n_id++){if(siteem_win_al[n_id].container){siteem_win_al[n_id].container.style.top=st;siteem_win_al[n_id].container.style.left=sl;}}
	};
	window.onresize=function(e){for(var n_id=0;n_id<siteem_win_al.length;n_id++)siteem_win_al[n_id].reShow();};
	this.handleKeydown=function(E){
		var key;
		if(isIE)key=event.keyCode;else key=E.which;
		if(siteem_win_al.length){
			if(key==9){/*tab*/
				var w=siteem_win_al[siteem_win_al.length-1];
				var bFinded=false;var bFirst=true;var firstl=null;
				for(attr in w.canFocusList){
					var l=w.canFocusList[attr];
					if(typeof(l) == "function") continue;
					if(bFirst){bFirst=false;firstl=l;};
					if(l[1]){
						bFinded=true;
						if(l[2]!=l[0])l[2].focus();
						break;
					}
				}
				if((!bFinded)&&(firstl))firstl[0].focus();
				return false;
			}
			else if(key==27)/*escape*/{var w=siteem_win_al[siteem_win_al.length-1];if(!w.bLoading){w.hide();return false;}}
		}
		return true;
	};
	if(ns||op)window.onkeydown=this.handleKeydown;
	else document.onkeydown=this.handleKeydown;
	this.changeTab=function(prev,cb){
		if(this.content.length<=1)return;
		if(this.tabIndex<0)this.tabIndex=0;if(this.tabIndex>=this.content.length)this.tabIndex=this.content.length-1;
		var newTabIndex;
		if(prev){
			if(this.tabIndex==0)return;
			newTabIndex=this.tabIndex-1;
		}
		else{
			if(this.tabIndex==(this.content.length-1))return;
			newTabIndex=this.tabIndex+1;
		}
		if(newTabIndex==this.tabIndex)return;
		this.tabIndex=newTabIndex;
		for(var i=0;i<this.content.length;i++){
			var ct=this.content[i];
			if(i!=this.tabIndex)ct.style.display="none";
			else ct.style.display="inline";
		}
		cb();
		this.retrieveCanFocusList();this.focusFirst();
	};
	this.getSource=function(){var ta=document.createElement("textarea");document.body.appendChild(ta);ta.value=winContainer.innerHTML;};
};		
/* 处理detail页面中所有脚本动作的对象 */
var Detail=function(afterLoadDataCB){
	this.params=new Object();/* 参数列表 */
	this.http=null;/* ajax对象 */
	this.request_url="/scms/servlet/Ajax?ac=data";/* 请求地址 */
	this.pagesize=20;/* 每页显示评论数 */
	this.showlink=10;/* 分页栏上显示链接数 */
	/* 获取到数据后的回调函数定义 */
	if(typeof afterLoadDataCB=="function"){
		this.afterLoadDataCB=afterLoadDataCB;
	}else{
		this.afterLoadDataCB=function(){};
	}
	this.ORDER_BY_SEQNO_DESC="0";/* 排序方式：按照排序编号降序排列 */
	this.ORDER_BY_SEQNO_ASC="1";/* 排序方式：按照排序编号升序排列 */
	this.ORDER_BY_UPLOAD_TIME_DESC="2";/* 排序方式：按照发布时间降序排列 */
	this.ORDER_BY_UPLOAD_TIME_ASC="3";/* 排序方式：按照发布时间升序排列 */
	this.ORDER_BY_VIEW_NUMBER_DESC="4";/* 排序方式：按照浏览次数降序排列 */
	this.DOMDocument=null;/* ajax返回的XML对象 */
	this.remark_al=null;/* 当前评论数组 */
	this.SSOErrorCode=-403;/* SSO错误代码 */
	this.loading_win=null;/* loading窗口对象 */
	this.SSO_ERROR_INVALIDREGNAME="-402";/* SSO错误：无效的注册名 */
	this.SSO_ERROR_NOTLOGIN="-403";/* SSO错误：尚未登录 */
	this.SSO_ERROR_NOTADMIN="-404";/* SSO错误：当前登录用户不是admin */
	/* 处理渐变 */
	this.FadeInterval=600;
	this.StartFadeAt=7;
	this.FadeSteps=new Array();
	this.FadeSteps[1]="ff";this.FadeSteps[2]="ee";this.FadeSteps[3]="dd";this.FadeSteps[4]="cc";
	this.FadeSteps[5]="bb";this.FadeSteps[6]="aa";this.FadeSteps[7]="99";
	this.Highlight=function(targetId,oldclr){g_detail.DoFade(g_detail.StartFadeAt,targetId,oldclr);};
	this.DoFade=function(colorId,targetId,oldclr){
		var ele=g_detail.$(targetId);if((ele==null)||(ele.style==null))return;
		if(colorId>=1){
			ele.style.backgroundColor="#ffff"+g_detail.FadeSteps[colorId];
			if(colorId==1)ele.style.backgroundColor=oldclr;
			colorId--;
			setTimeout("g_detail.DoFade("+colorId+",'"+targetId+"','"+oldclr+"')",g_detail.FadeInterval);
		}
	};
	/* 显示LoadingWin */
	this.showLoading=function(){
		if(g_detail.loading_win==null){
			var imagePath="images";
			g_detail.loading_win=new siteem_win("<img src=\""+imagePath+"/loading.gif\" border=\"0\">","",imagePath,96,true);
			g_detail.loading_win.show();
		}
	};
	/* 隐藏LoadingWin */
	this.hideLoading=function(){if(g_detail.loading_win){g_detail.loading_win.hide();g_detail.loading_win=null;}};
	/* 判断一个字符串是否是一个有效的整数 */
	this.isInt=function(s){var t=new String(s);if((t=="")||(t==null))return false;var p=/^-?\d+$/;if(!p.test(t)){return false;}return true;}; 
	/* 通过id获取html对象 */
	this.$=function(id){return document.getElementById(id);};
	/* 获得一个字串utf8编码的长度 */
	this.utf8_length=function(str){var n=0;k=0;for (i=0;i<str.length;i++){n=str.charCodeAt(i);if(n<=255)k+=1;else k+=3;}return k;};
	/* 判断一个字符串是否是空 */
	this.isEmpty=function(sz){return (sz==null)||(sz=="");};
	/* 将一个windows文本转换成显示用的html代码 */
	this.convertTxt2HtmlWhenEdit=function(s){if(g_detail.isEmpty(s))return "";var re=/&/ig;s=s.replace(re,"&amp;");re=/[<]/ig;s=s.replace(re,"&lt;");re=/>/ig;s=s.replace(re,"&gt;");re=/"/ig;s=s.replace(re,"&quot;");return s;};
	/* 将一个windows文本转换成编辑用的html代码 */
	this.convertTxt2HtmlWhenShow=function(s){
		function handleSpace(s1){
			if(g_detail.isEmpty(s1)){return "";}
			var r="";var c,got=0;
			for(var i=0;i<s1.length;i++){
				c=s1.charAt(i);
				if(c==' '){
					got++;
				}else{
					if(got>0){
						for(var j=0;j<(got-1);j++){
							r+='&nbsp;';
						}
						if(i==1){
							r+='&nbsp;';
						}else{
							r+=' ';
						}
					}
					r+=c;
					got=0;
				}
			}
			if(got>0){
				for(var j=0;j<got;j++){
					r+='&nbsp;';
				}
			}
			return r;
		};
		function handleOther(s1){
			var r=s1;
			var re=/\t/ig;r=r.replace(re,"  ");
			var re=/&/ig;r=r.replace(re,"&amp;");
			re=/[<]/ig;r=r.replace(re,"&lt;");
			re=/>/ig;r=r.replace(re,"&gt;");
			re=/"/ig;r=r.replace(re,"&quot;");
			return r;
		};
		function oneLine(s1){
			if(g_detail.isEmpty(s1)){return "";}
			return handleSpace(handleOther(s1));
		};
		var space=g_detail_lang.getString("DETAIL_46")/*"\u3000"*/;
		var re=/\r\n/ig;s=s.replace(re,"\n");
		var re=/\r/ig;s=s.replace(re,"\n");
		var a=s.split("\n");
		if(a==null){return "";}if(a.length==0){return "";}
		var r="";
		for(var i=0;i<a.length;i++){if(i>0){r+="<br>";}r+=oneLine(a[i]);}
		return r;
	};
	/* 替换 */
	this.replaceKey=function(sz,kv){if(g_detail.isEmpty(sz))return "";var reg;for(var i=0;i<kv.length;i++){eval("reg=/"+kv[i][0]+"/ig;");sz=sz.replace(reg,kv[i][1]);}return sz;};
	/* 验证是否是一个有效的邮箱 */
	this.isValidMail=function(v){if((v=="")||(v==null))return false;var reg=/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;return reg.test(v);};
	/* 转换日期为字符表示 */
	this.date2Str=function(date){
		if(date==null)return "";
		function fmt(n){if(n<10)return "0"+n;else return n+"";}
		return date.getFullYear()+g_detail_lang.getString("DETAIL_1")/*"年"*/+fmt(date.getMonth()+1)+g_detail_lang.getString("DETAIL_2")/*"月"*/+fmt(date.getDate())+g_detail_lang.getString("DETAIL_3")/*"日"*/+fmt(date.getHours())+":"+fmt(date.getMinutes())+":"+fmt(date.getSeconds());
	};
	/* 转换日期为字符表示 */
	this.date2Str1=function(date){
		if(date==null)return "";
		function fmt(n){if(n<10)return "0"+n;else return n+"";}
		var ret=date.getFullYear()+g_detail_lang.getString("DETAIL_1")/*"年"*/+fmt(date.getMonth()+1)+g_detail_lang.getString("DETAIL_2")/*"月"*/+fmt(date.getDate())+g_detail_lang.getString("DETAIL_3")/*"日"*/
		if((date.getHours()!=0)){
			ret+=fmt(date.getHours())+":"+fmt(date.getMinutes());
			if(date.getSeconds()!=0){
				ret+=":"+fmt(date.getSeconds());
			}
		}
		return ret;
	};
	/* 转换日期为字符表示 */
	this.date2Str2=function(date){
		if(date==null)return "";
		function fmt(n){if(n<10)return "0"+n;else return n+"";}
		return date.getFullYear()+"-"+fmt(date.getMonth()+1)+"-"+fmt(date.getDate())+" "+fmt(date.getHours())+":"+fmt(date.getMinutes())+":"+fmt(date.getSeconds());
	};
	/* 获取参数 */
	this.getParams=function(){
		var aParams=document.location.search.substr(1).split('&');
		for(var i=0;i<aParams.length;i++){
			var aParam=aParams[i].split('=');
			var sParamName=decodeURIComponent(aParam[0]);
			var sParamValue=decodeURIComponent(aParam[1]);
			g_detail.params[sParamName]=sParamValue;
		}
	};
	/* 检查参数 */
	this.checkParams=function(){
		if(g_detail.isEmpty(g_detail.params["id"])){
			alert(g_detail_lang.getString("DETAIL_4")/*"无法获取内容编号"*/);
			return false;
		}
		if(!g_detail.isInt(g_detail.params["id"])){
			alert(g_detail_lang.getString("DETAIL_4")/*"无法获取内容编号"*/);
			return false;
		}
		var n=parseInt(g_detail.params["id"]);
		if(n<0){
			alert(g_detail_lang.getString("DETAIL_4")/*"无法获取内容编号"*/);
			return false;
		}
		if(g_detail.isEmpty(g_detail.params["order"])){
			g_detail.params["order"]=g_detail.ORDER_BY_SEQNO_DESC;
		}else{
			if((g_detail.params["order"]!=g_detail.ORDER_BY_SEQNO_ASC)&&
				 (g_detail.params["order"]!=g_detail.ORDER_BY_UPLOAD_TIME_DESC)&&
				 (g_detail.params["order"]!=g_detail.ORDER_BY_UPLOAD_TIME_ASC)&&
				 (g_detail.params["order"]!=g_detail.ORDER_BY_VIEW_NUMBER_DESC)){
				g_detail.params["order"]=g_detail.ORDER_BY_SEQNO_DESC;
			}
		}
		return true;
	};
	/* 获取ajax对象 */
	this.getHTTPRequest=function(){
		var msxmlNames=["MSXML2.XMLHTTP.5.0","MSXML2.XMLHTTP.4.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"];
		try{return new XMLHttpRequest();}catch(e){}
		for(var i=0;i<msxmlNames.length;i++){try{return new ActiveXObject(msxmlNames[i]);}catch(e){}}
		return null;
	};
	/* 使用xpath选取一个节点 */
	this.xmlSelectSingleNode=function(xpath){
		if(navigator.userAgent.indexOf('MSIE')>=0){/*IE*/
			return g_detail.DOMDocument.selectSingleNode(xpath);
		}else{/*Gecko*/
			var xPathResult=g_detail.DOMDocument.evaluate(xpath,g_detail.DOMDocument,
					g_detail.DOMDocument.createNSResolver(g_detail.DOMDocument.documentElement),9,null);
			if(xPathResult&&xPathResult.singleNodeValue)
				return xPathResult.singleNodeValue;
			else
				return null;
		}
	};
	/* 初始化 */
	this.init=function(){
		g_detail.getParams();
		if(!g_detail.checkParams())return;
		if(g_detail.http){/*To fix in opera and mozilla*/
			delete g_detail.http;g_detail.http=null;
		}
		if(g_detail.http==null)g_detail.http=g_detail.getHTTPRequest();
		if(g_detail.http==null){alert(g_detail_lang.getString("DETAIL_5")/*"无法创建XMLHttpRequest对象"*/);return;}
		function cb(){
			if(g_detail.http.readyState==4){
				g_detail.hideLoading();
				if(((g_detail.http.status!=200)&&(g_detail.http.status!=304))||(g_detail.http.responseXML==null)||(g_detail.http.responseXML.firstChild==null)){
					alert(g_detail_lang.getString("DETAIL_6")/*"服务器没有生成正确的XML响应"*/);
					return;
				}
				g_detail.DOMDocument=g_detail.http.responseXML;
				g_detail.showDataAndRemark();
			}
		}
		var url=g_detail.request_url+"&command=getDataAndRemark&id="+g_detail.params["id"]+"&from=1&to="+g_detail.pagesize+"&t="+(new Date().getTime());
		g_detail.http.onreadystatechange=cb;
		g_detail.http.open("get",url,true);
		g_detail.showLoading();
		try{g_detail.http.setRequestHeader("Content-type", "text/plain");}catch(e){}
		try{g_detail.http.send(null);}catch(e){}
	};
	/* 处理错误 */
	this.checkError=function(){
		var iErrorNumber=-1;
		var oErrorNode=g_detail.xmlSelectSingleNode('ajaxret/error');
		if(oErrorNode){
			iErrorNumber=parseInt(oErrorNode.attributes.getNamedItem('code').value,10);
			switch(iErrorNumber){
				case 0:/*not an error*/
					break;
				case g_detail.SSOErrorCode:/*SSO*/
					break;
				case -1:/*custom error msg*/
					if(oErrorNode.firstChild){
						if(oErrorNode.firstChild.nodeValue){
							alert(g_detail_lang.getString(oErrorNode.firstChild.nodeValue));
						}else{
							alert(g_detail_lang.getString("DETAIL_7")/*"未知错误"*/);
						}
					}
					break ;
				default:
					alert(g_detail_lang.getString("DETAIL_8")/*"未知错误："*/+iErrorNumber);
					break ;
			}
		}else{
			alert(g_detail_lang.getString("DETAIL_7")/*"未知错误"*/);
		}
		return iErrorNumber;
	};
	/* 显示初始化获取的数据 */
	this.showDataAndRemark=function(){
		if(g_detail.checkError()!=0)return;
		var oRetNode=g_detail.xmlSelectSingleNode('ajaxret/ret');
		if(oRetNode==null){
			alert(g_detail_lang.getString("DETAIL_6")/*"服务器没有生成正确的XML响应"*/);
			return;
		}
		if((!oRetNode.firstChild)||((oRetNode.firstChild)&&(!oRetNode.firstChild.nodeValue))){
			alert(g_detail_lang.getString("DETAIL_6")/*"服务器没有生成正确的XML响应"*/);
			return;
		}
		var ret=oRetNode.firstChild.nodeValue;/*json string*/
		var jsonobj=null;eval("jsonobj="+ret+";");
		if((jsonobj==null)||((jsonobj!=null)&&((jsonobj.data==null)||(jsonobj.m_al==null)))){
			alert(g_detail_lang.getString("DETAIL_6")/*"服务器没有生成正确的XML响应"*/);
			return;
		}
		/* Fire after load data event */
		g_detail.afterLoadDataCB(jsonobj.data);
		document.title=jsonobj.data.title;
		g_detail.$("title_container").innerHTML=g_detail.convertTxt2HtmlWhenShow(jsonobj.data.title);
		var srvrurl=document.location.protocol+'//'+document.location.hostname;
		srvrurl="<a href='"+srvrurl+"' target='_blank'>"+srvrurl+"<\/a>";
		var info_time="";
		if(jsonobj.data.info_time){
			info_time="&nbsp;"+g_detail.date2Str1(new Date(jsonobj.data.info_time.time));
		}else{
			info_time="&nbsp;"+g_detail.date2Str(new Date(jsonobj.data.upload_time.time));
		}
		var origin="";
		if(!g_detail.isEmpty(jsonobj.data.origin)){
			if(!g_detail.isEmpty(jsonobj.data.origin_link)){
				origin='&nbsp;<a href="'+g_detail.convertTxt2HtmlWhenEdit(jsonobj.data.origin_link)+'" target="_blank" class="origin">'+g_detail.convertTxt2HtmlWhenShow(jsonobj.data.origin)+'<\/a>';
			}else{
				origin="&nbsp;"+g_detail.convertTxt2HtmlWhenShow(jsonobj.data.origin);
			}
		}
		var view_number="&nbsp;"+g_detail_lang.getString("DETAIL_9")/*"已被浏览"*/+" <font color='#A20010'>"+jsonobj.data.view_number+"<\/font> "+g_detail_lang.getString("DETAIL_10")/*"次"*/;
		g_detail.$("title1_container").innerHTML=srvrurl+info_time+origin+view_number;
		g_detail.$("content_td").innerHTML=(jsonobj.data.content==null?"":jsonobj.data.content);
		if(jsonobj.data.allow_remark==1){
			g_detail.$("artiremark").style.display="block";
			g_detail.$("remark_add").style.display="block";
			g_detail.$("leaveremark").style.display="block";
			g_detail.showRemark(jsonobj,0);
		}else{
			g_detail.$("artiremark").style.display="none";
			g_detail.$("remark_add").style.display="none";
			g_detail.$("leaveremark").style.display="none";
		}
		var prev="",next="";
		if(g_detail.params["order"]==g_detail.ORDER_BY_SEQNO_ASC){
			if(jsonobj.data.sdud_next!=-1){
				prev="<a href='detail.htm?id="+jsonobj.data.sdud_next+"&order="+g_detail.params["order"]+"'>"+g_detail_lang.getString("DETAIL_47")/*"上一篇"*/+"<\/a>";
			}
			if(jsonobj.data.sdud_prev!=-1){
				next="&nbsp;<a href='detail.htm?id="+jsonobj.data.sdud_prev+"&order="+g_detail.params["order"]+"'>"+g_detail_lang.getString("DETAIL_48")/*"下一篇"*/+"<\/a>";
			}
		}else if((g_detail.params["order"]==g_detail.ORDER_BY_UPLOAD_TIME_DESC)||(g_detail.params["order"]==g_detail.ORDER_BY_VIEW_NUMBER_DESC)){
			if(jsonobj.data.udsd_prev!=-1){
				prev="<a href='detail.htm?id="+jsonobj.data.udsd_prev+"&order="+g_detail.params["order"]+"'>"+g_detail_lang.getString("DETAIL_47")/*"上一篇"*/+"<\/a>";
			}
			if(jsonobj.data.udsd_next!=-1){
				next="&nbsp;<a href='detail.htm?id="+jsonobj.data.udsd_next+"&order="+g_detail.params["order"]+"'>"+g_detail_lang.getString("DETAIL_48")/*"下一篇"*/+"<\/a>";
			}
		}else if(g_detail.params["order"]==g_detail.ORDER_BY_UPLOAD_TIME_ASC){
			if(jsonobj.data.udsd_next!=-1){
				prev="<a href='detail.htm?id="+jsonobj.data.udsd_next+"&order="+g_detail.params["order"]+"'>"+g_detail_lang.getString("DETAIL_47")/*"上一篇"*/+"<\/a>";
			}
			if(jsonobj.data.udsd_prev!=-1){
				next="&nbsp;<a href='detail.htm?id="+jsonobj.data.udsd_prev+"&order="+g_detail.params["order"]+"'>"+g_detail_lang.getString("DETAIL_48")/*"下一篇"*/+"<\/a>";
			}
		}else{
			if(jsonobj.data.sdud_prev!=-1){
				prev="<a href='detail.htm?id="+jsonobj.data.sdud_prev+"&order="+g_detail.params["order"]+"'>"+g_detail_lang.getString("DETAIL_47")/*"上一篇"*/+"<\/a>";
			}
			if(jsonobj.data.sdud_next!=-1){
				next="&nbsp;<a href='detail.htm?id="+jsonobj.data.sdud_next+"&order="+g_detail.params["order"]+"'>"+g_detail_lang.getString("DETAIL_48")/*"下一篇"*/+"<\/a>";
			}
		}
		g_detail.$("prev_and_next").innerHTML=prev+next;
		g_detail.$("main_div").style.display="block";
	};
	/* 收藏此页 */
	this.addFavorite=function(){
		var url=document.URL;
		var t=document.title;
		if(document.all){
			window.external.AddFavorite(url,t);
		}else if((typeof window.sidebar=="object")&&(typeof window.sidebar.addPanel=="function")){
			window.sidebar.addPanel(t,url,"");
		}
	};
	/* 设置字体 */
	this.doZoom=function(size){
		var artibody=g_detail.$('content_td');
		if(!artibody)return;
		var artibodyChild=artibody.childNodes;
		artibody.style.fontSize=size+'px';
		for(var i=0;i<artibodyChild.length;i++){
			if(artibodyChild[i].nodeType==1){
				artibodyChild[i].style.fontSize=size+'px';
			}
		}
	};
	/* 获取评论 */
	this.getRemark=function(pageid,scroll,newrid){
		if(g_detail.http){/*To fix in opera and mozilla*/
			delete g_detail.http;g_detail.http=null;
		}
		if(g_detail.http==null)g_detail.http=g_detail.getHTTPRequest();
		if(g_detail.http==null){alert(g_detail_lang.getString("DETAIL_5")/*"无法创建XMLHttpRequest对象"*/);return;}
		function cb(){
			if(g_detail.http.readyState==4){
				g_detail.hideLoading();
				if(((g_detail.http.status!=200)&&(g_detail.http.status!=304))||(g_detail.http.responseXML==null)||(g_detail.http.responseXML.firstChild==null)){
					alert(g_detail_lang.getString("DETAIL_6")/*"服务器没有生成正确的XML响应"*/);
					return;
				}
				g_detail.DOMDocument=g_detail.http.responseXML;
				if(g_detail.checkError()!=0)return;
				var oRetNode=g_detail.xmlSelectSingleNode('ajaxret/ret');
				if(oRetNode==null){
					alert(g_detail_lang.getString("DETAIL_6")/*"服务器没有生成正确的XML响应"*/);
					return;
				}
				if((!oRetNode.firstChild)||((oRetNode.firstChild)&&(!oRetNode.firstChild.nodeValue))){
					alert(g_detail_lang.getString("DETAIL_6")/*"服务器没有生成正确的XML响应"*/);
					return;
				}
				var ret=oRetNode.firstChild.nodeValue;/*json string*/
				var jsonobj=null;eval("jsonobj="+ret+";");
				if((jsonobj==null)||((jsonobj)&&(jsonobj.m_al==null))){
					alert(g_detail_lang.getString("DETAIL_6")/*"服务器没有生成正确的XML响应"*/);
					return;
				}
				g_detail.showRemark(jsonobj,pageid);
				if(scroll){
					var totalOffset=0;
					var item=g_detail.$("a_remark_list");
					do{
						totalOffset+=item.offsetTop;
						item=item.offsetParent;
					}while(item);
					document.body.scrollTop=totalOffset;
				}
				if(newrid>0){
					g_detail.Highlight("remark_list_"+newrid,"transparent");
				}
			}
		}
		var from=pageid*g_detail.pagesize+1;var to=(pageid+1)*g_detail.pagesize;
		var url=g_detail.request_url+"&command=getRemark&id="+g_detail.params["id"]+"&from="+from+"&to="+to+"&t="+(new Date().getTime());
		g_detail.http.onreadystatechange=cb;
		g_detail.http.open("get",url,true);
		g_detail.showLoading();
		try{g_detail.http.setRequestHeader("Content-type", "text/plain");}catch(e){}
		try{g_detail.http.send(null);}catch(e){}
	};
	/* 通过id获取评论 */
	this.getRemarkById=function(id){
		if(g_detail.remark_al==null)return null;
		if(g_detail.remark_al.list==null)return null;
		for(var i=0;i<g_detail.remark_al.list.length;i++){
			if(id==g_detail.remark_al.list[i].id){
				return g_detail.remark_al.list[i];
			}
		}
		return null;
	};
	/* 显示评论列表 */
	this.showRemark=function(ret,pageid){
		g_detail.remark_al=ret.m_al;
		function getTotalTbl(total){
			var ct=g_detail.$("remark_page_tbl1").innerHTML;
			var sz="";var pc=Math.floor(total/g_detail.pagesize);if((pc*g_detail.pagesize)<total)pc++;
			if(total>0){sz=g_detail_lang.getString("DETAIL_11")/*"共"*/+"&nbsp;<b>"+pc+"&nbsp;<\/b>"+g_detail_lang.getString("DETAIL_12")/*"页，本页显示：第"*/+"&nbsp;<b>"+(pageid*g_detail.pagesize+1)+"&nbsp;<\/b>"+g_detail_lang.getString("DETAIL_13")/*"至"*/+"&nbsp;<b>"+Math.min(((pageid+1)*g_detail.pagesize),total)+"&nbsp;<\/b>"+g_detail_lang.getString("DETAIL_14")/*"条"*/;}
			var kv=[["<!-- #siteembegin#",""],["#siteemend# -->",""],["#total#",total],["#remark_total#",sz],["#remarkpage#",getSepPage(total,pageid,"remarklink")]];
			return g_detail.replaceKey(ct,kv);
		};
		function getTotalTbl2(total){
			var ct=g_detail.$("remark_page_tbl2").innerHTML;
			var kv=[["<!-- #siteembegin#",""],["#siteemend# -->",""],["#remarkpage#",getSepPage(total,pageid,"remarkpagelink")]];
			return g_detail.replaceKey(ct,kv);
		};
		function getSepPage(nTotal,curpageid,className){
			if(nTotal<=0)return "";
			var first="<font face=webdings>9<\/font>";var last="<font face=webdings>:<\/font>";var prev="<font face=webdings>7<\/font>";var next="<font face=webdings>8<\/font>";var space=" ";
			var pc=Math.floor(nTotal/g_detail.pagesize);
			if((pc*g_detail.pagesize)<nTotal)pc++;
			if(curpageid>=pc)curpageid=pc-1;
			var nQuotient=Math.floor(curpageid/g_detail.showlink);
			function getOne(pid,txt,className){
				return "<a href=\"javascript:g_detail.getRemark("+pid+",false,-1)\" class=\""+className+"\">"+txt+"<\/a>";
			}
			var ret="";
			if(curpageid>0)
				ret=ret+getOne(0,first,className)+space+getOne(curpageid-1,prev,className)+space;
			else
				ret=ret+first+space+prev+space;
			var nTmp=nQuotient*g_detail.showlink;
			for(var i=0;i<g_detail.showlink;i++){
				if((nTmp+i)>(pc-1))continue;
				if((nTmp+i)==curpageid)
					ret=ret+"<b>"+(curpageid+1)+"<\/b>"+space;
				else
					ret=ret+getOne(nTmp+i,nTmp+i+1,className)+space;
			}
			if (curpageid<(pc-1))
				ret=ret+getOne(curpageid+1,next,className)+space+getOne(pc-1,last,className);
			else
				ret=ret+next+space+last;
			return ret;
		};
		function getList(){
			function getOne(rs,index){
				var ct=g_detail.$("remark_list_div").innerHTML;
				var title=g_detail.date2Str2(new Date(rs.upload_time.time));
				if(!g_detail.isEmpty(rs.linkman)){
					title+="&nbsp;&nbsp;"+g_detail.convertTxt2HtmlWhenShow(rs.linkman);
				}
				if(!g_detail.isEmpty(rs.email)){
					title+='&nbsp;<a href="mailto:'+g_detail.convertTxt2HtmlWhenEdit(rs.email)+'">'+g_detail.convertTxt2HtmlWhenShow(rs.email)+'<\/a>';
				}
				title+="&nbsp;IP:"+rs.leave_ip;
				var content=g_detail.convertTxt2HtmlWhenShow(rs.title)+"<br>"+(g_detail.isEmpty(rs.content)?"&nbsp;":g_detail.convertTxt2HtmlWhenShow(rs.content));
				var op="<a href='javascript:g_detail.reply("+rs.id+")'>"+g_detail_lang.getString("DETAIL_15")/*"回复"*/+"<\/a>&nbsp;<a href='javascript:g_detail.clearReply("+rs.id+")'>"+g_detail_lang.getString("DETAIL_16")/*"删除回复"*/+"<\/a>&nbsp;<a href='javascript:g_detail.delRemark("+rs.id+")'>"+g_detail_lang.getString("DETAIL_17")/*"删除"*/+"<\/a>";
				var kv=[
					["<!-- #siteembegin#",""],
					["#siteemend# -->",""],
					["#id#",rs.id],
					["#reply_content#",rs.reply_content==null?"":g_detail.convertTxt2HtmlWhenEdit(rs.reply_content)],
					["#reply_content1#",rs.reply_content==null?"":g_detail.convertTxt2HtmlWhenShow(rs.reply_content)],
					["#title#",title],
					["#content#",content],
					["#reply_content_display#",g_detail.isEmpty(rs.reply_content)?"none":"block"],
					["#reply_time#",rs.reply_time==null?"":g_detail.date2Str2(new Date(rs.reply_time.time))],
					["#op#",op]
				];
				return g_detail.replaceKey(ct,kv);
			};
			var sz="";
			for(var i=0;i<ret.m_al.list.length;i++){
				sz+=getOne(ret.m_al.list[i],i);
			}
			return sz;
		};
		if(ret.total>0){
			g_detail.$("artiremark").innerHTML=getTotalTbl(ret.total)+getList(ret.m_al)+getTotalTbl2(ret.total);
		}else{
			g_detail.$("artiremark").innerHTML=getTotalTbl(ret.total)/*g_detail_lang.getString("DETAIL_18")*//*"尚无评论"*/;
		}
	};
	/* 添加评论 */
	this.leaveMsg=function(){
		function check(){
			var record=function(){
				this.id=g_detail.params["id"];
				this.title=title;
				this.linkman=linkman;
				this.email=email;
				this.content=content;
			};
			var title=g_detail.$("rl_title").value;
			if(g_detail.isEmpty(title)){
				alert(g_detail_lang.getString("DETAIL_19")/*"标题不能为空"*/);
				g_detail.$("rl_title").focus();
				return null;
			}
			if(g_detail.utf8_length(title)>500){
				alert(g_detail_lang.getString("DETAIL_20")/*"标题的长度必须小于500字节"*/);
				g_detail.$("rl_title").focus();
				return null;
			}
			var linkman=g_detail.$("rl_linkman").value;
			if(!g_detail.isEmpty(linkman)){
				if(g_detail.utf8_length(linkman)>50){
					alert(g_detail_lang.getString("DETAIL_21")/*"联系人的长度必须小于50字节"*/);
					g_detail.$("rl_linkman").focus();
					return null;
				}
			}
			var email=g_detail.$("rl_email").value;
			if(!g_detail.isEmpty(email)){
				if(g_detail.utf8_length(email)>100){
					alert(g_detail_lang.getString("DETAIL_22")/*"邮箱的长度必须小于100字节"*/);
					g_detail.$("rl_email").focus();
					return null;
				}
				if(!g_detail.isValidMail(email)){
					alert(g_detail_lang.getString("DETAIL_23")/*"无效的邮箱"*/);
					g_detail.$("rl_email").focus();
					return null;
				}
			}
			var content=g_detail.$("rl_content").value;
			if(!g_detail.isEmpty(content)){
				if(g_detail.utf8_length(content)>2000){
					alert(g_detail_lang.getString("DETAIL_24")/*"内容的长度必须小于2000字节"*/);
					g_detail.$("rl_content").focus();
					return null;
				}
			}
			return new record();
		};
		function _leaveMsg(){
			var r=check();if(r==null)return;
			if(g_detail.http){/*To fix in opera and mozilla*/
				delete g_detail.http;g_detail.http=null;
			}
			if(g_detail.http==null)g_detail.http=g_detail.getHTTPRequest();
			if(g_detail.http==null){alert(g_detail_lang.getString("DETAIL_5")/*"无法创建XMLHttpRequest对象"*/);return;}
			function cb(){
				if(g_detail.http.readyState==4){
					g_detail.hideLoading();
					if(((g_detail.http.status!=200)&&(g_detail.http.status!=304))||(g_detail.http.responseXML==null)||(g_detail.http.responseXML.firstChild==null)){
						alert(g_detail_lang.getString("DETAIL_6")/*"服务器没有生成正确的XML响应"*/);
						return;
					}
					g_detail.DOMDocument=g_detail.http.responseXML;
					if(g_detail.checkError()!=0)return;
					document.rl_form.reset();
					var rid=-1;
					var oErrorNode=g_detail.xmlSelectSingleNode('ajaxret/error');
					if(oErrorNode){
						if(oErrorNode.firstChild){
							if(oErrorNode.firstChild.nodeValue){
								var sz=oErrorNode.firstChild.nodeValue;
								if(g_detail.isInt(sz)){
									rid=parseInt(sz);
								}
							}
						}
					}
					g_detail.getRemark(0,true,rid);
				}
			}
			var url=g_detail.request_url+"&command=leave&t="+(new Date().getTime());
			g_detail.http.onreadystatechange=cb;
			g_detail.http.open("post",url,true);
			g_detail.showLoading();
			try{g_detail.http.setRequestHeader("Content-type", "text/plain");}catch(e){}
			try{g_detail.http.send(r.toJSONString());}catch(e){}
		};
		_leaveMsg();
		return false;
	};
	/* 显示回复 */
	this.reply=function(id){
		var div=g_detail.$("remark_list_reply_"+id);if(div==null)return;
		var t=g_detail.$("remark_list_reply_content_"+id);if(t==null)return;
		if(g_detail.http){/*To fix in opera and mozilla*/
			delete g_detail.http;g_detail.http=null;
		}
		if(g_detail.http==null)g_detail.http=g_detail.getHTTPRequest();
		if(g_detail.http==null){alert(g_detail_lang.getString("DETAIL_5")/*"无法创建XMLHttpRequest对象"*/);return;}
		function cb(){
			if(g_detail.http.readyState==4){
				g_detail.hideLoading();
				if(((g_detail.http.status!=200)&&(g_detail.http.status!=304))||(g_detail.http.responseXML==null)||(g_detail.http.responseXML.firstChild==null)){
					alert(g_detail_lang.getString("DETAIL_6")/*"服务器没有生成正确的XML响应"*/);
					return;
				}
				g_detail.DOMDocument=g_detail.http.responseXML;
				var code=g_detail.checkError();
				if(code==0){
					var r=g_detail.getRemarkById(id);
					if(r){
						t.value=(r.reply_content==null?"":r.reply_content);
					}
					div.style.display="block";
					t.focus();
				}else if(code==g_detail.SSOErrorCode){
					var args=[];args.push(id);
					g_detail.showLogin(""+code,"",g_detail.reply,args);
				}
			}
		}
		var url=g_detail.request_url+"&command=getLoginState&id="+id+"&t="+(new Date().getTime());
		g_detail.http.onreadystatechange=cb;
		g_detail.http.open("get",url,true);
		g_detail.showLoading();
		try{g_detail.http.setRequestHeader("Content-type", "text/plain");}catch(e){}
		try{g_detail.http.send(null);}catch(e){}
	};
	/* 发表回复 */
	this.doReply=function(id){
		var div=g_detail.$("remark_list_reply_"+id);if(div==null)return;
		function check(){
			var record=function(){
				this.id=id;
				this.reply_content=reply_content;
			};
			var t=g_detail.$("remark_list_reply_content_"+id);
			if(t==null){
				return null;
			}
			var reply_content=t.value;
			if(g_detail.isEmpty(reply_content)){
				alert(g_detail_lang.getString("DETAIL_25")/*"回复内容不能为空"*/);
				g_detail.$("remark_list_reply_content_"+id).focus();
				return null;
			}
			if(g_detail.utf8_length(reply_content)>2000){
				alert(g_detail_lang.getString("DETAIL_26")/*"回复内容的长度必须小于2000字节"*/);
				g_detail.$("remark_list_reply_content_"+id).focus();
				return null;
			}
			return new record();
		};
		var r=check();if(r==null)return;
		if(g_detail.http){/*To fix in opera and mozilla*/
			delete g_detail.http;g_detail.http=null;
		}
		if(g_detail.http==null)g_detail.http=g_detail.getHTTPRequest();
		if(g_detail.http==null){alert(g_detail_lang.getString("DETAIL_5")/*"无法创建XMLHttpRequest对象"*/);return;}
		function cb(){
			if(g_detail.http.readyState==4){
				g_detail.hideLoading();
				if(((g_detail.http.status!=200)&&(g_detail.http.status!=304))||(g_detail.http.responseXML==null)||(g_detail.http.responseXML.firstChild==null)){
					alert(g_detail_lang.getString("DETAIL_6")/*"服务器没有生成正确的XML响应"*/);
					return;
				}
				g_detail.DOMDocument=g_detail.http.responseXML;
				var code=g_detail.checkError();
				if(code==0){
					div.style.display="none";
					var reply_time=null;
					var oErrorNode=g_detail.xmlSelectSingleNode('ajaxret/error');
					if(oErrorNode){
						if(oErrorNode.firstChild){
							if(oErrorNode.firstChild.nodeValue){
								var sz=oErrorNode.firstChild.nodeValue;
								if(!g_detail.isEmpty(sz)){
									eval("reply_time="+sz+";");
								}
							}
						}
					}
					if(!reply_time){
						alert(g_detail_lang.getString("DETAIL_6")/*"服务器没有生成正确的XML响应"*/);
						return;
					}
					var r1=g_detail.getRemarkById(id);
					if(r1){
						r1.reply_content=r.reply_content;
						r1.reply_time=reply_time;
					}
					var div1=g_detail.$("reply_content_"+id);
					if(div1){
						if(div1.style.display=="none"){
							div1.style.display="block";
						}
						div1.innerHTML=g_detail_lang.getString("DETAIL_27")/*"站长于"*/+" "+g_detail.date2Str2(new Date(reply_time.time))+" "+g_detail_lang.getString("DETAIL_28")/*"回复："*/+"<br>"+g_detail.convertTxt2HtmlWhenShow(r.reply_content);
					}
				}else if(code==g_detail.SSOErrorCode){
					var args=[];args.push(id);
					g_detail.showLogin(""+code,"",g_detail.doReply,args);
				}
			}
		}
		var url=g_detail.request_url+"&command=reply&t="+(new Date().getTime());
		g_detail.http.onreadystatechange=cb;
		g_detail.http.open("post",url,true);
		g_detail.showLoading();
		try{g_detail.http.setRequestHeader("Content-type", "text/plain");}catch(e){}
		try{g_detail.http.send(r.toJSONString());}catch(e){}
	};
	/* 取消发表回复 */
	this.doReplyCancel=function(id){
		var div=g_detail.$("remark_list_reply_"+id);if(div==null)return;
		if(confirm(g_detail_lang.getString("DETAIL_29")/*"是否要取消发表回复"*/)){
			if(div.style.display=="block"){
				div.style.display="none";
			}
		}
	};
	/* 删除回复 */
	this.clearReply=function(id){
		if(!confirm(g_detail_lang.getString("DETAIL_30")/*"是否要删除对此评论的回复？"*/))return;
		if(g_detail.http){/*To fix in opera and mozilla*/
			delete g_detail.http;g_detail.http=null;
		}
		if(g_detail.http==null)g_detail.http=g_detail.getHTTPRequest();
		if(g_detail.http==null){alert(g_detail_lang.getString("DETAIL_5")/*"无法创建XMLHttpRequest对象"*/);return;}
		function cb(){
			if(g_detail.http.readyState==4){
				g_detail.hideLoading();
				if(((g_detail.http.status!=200)&&(g_detail.http.status!=304))||(g_detail.http.responseXML==null)||(g_detail.http.responseXML.firstChild==null)){
					alert(g_detail_lang.getString("DETAIL_6")/*"服务器没有生成正确的XML响应"*/);
					return;
				}
				g_detail.DOMDocument=g_detail.http.responseXML;
				var code=g_detail.checkError();
				if(code==0){
					var r1=g_detail.getRemarkById(id);
					if(r1){
						r1.reply_content="";
						r1.reply_time=null;
					}
					var div1=g_detail.$("reply_content_"+id);
					if(div1){
						if(div1.style.display=="block"){
							div1.style.display="none";
						}
						div1.innerHTML="";
					}
				}else if(code==g_detail.SSOErrorCode){
					var args=[];args.push(id);
					g_detail.showLogin(""+code,"",g_detail.clearReply,args);
				}
			}
		}
		var url=g_detail.request_url+"&command=clearReply&id="+id+"&t="+(new Date().getTime());
		g_detail.http.onreadystatechange=cb;
		g_detail.http.open("get",url,true);
		g_detail.showLoading();
		try{g_detail.http.setRequestHeader("Content-type", "text/plain");}catch(e){}
		try{g_detail.http.send(null);}catch(e){}
	};
	/* 删除 */
	this.delRemark=function(id){
		if(!confirm(g_detail_lang.getString("DETAIL_31")/*"是否要删除此评论？"*/))return;
		if(g_detail.http){/*To fix in opera and mozilla*/
			delete g_detail.http;g_detail.http=null;
		}
		if(g_detail.http==null)g_detail.http=g_detail.getHTTPRequest();
		if(g_detail.http==null){alert(g_detail_lang.getString("DETAIL_5")/*"无法创建XMLHttpRequest对象"*/);return;}
		function cb(){
			if(g_detail.http.readyState==4){
				g_detail.hideLoading();
				if(((g_detail.http.status!=200)&&(g_detail.http.status!=304))||(g_detail.http.responseXML==null)||(g_detail.http.responseXML.firstChild==null)){
					alert(g_detail_lang.getString("DETAIL_6")/*"服务器没有生成正确的XML响应"*/);
					return;
				}
				g_detail.DOMDocument=g_detail.http.responseXML;
				var code=g_detail.checkError();
				if(code==0){
					g_detail.getRemark(0,false,-1);
				}else if(code==g_detail.SSOErrorCode){
					var args=[];args.push(id);
					g_detail.showLogin(""+code,"",g_detail.delRemark,args);
				}
			}
		}
		var url=g_detail.request_url+"&command=delRemark&id="+id+"&t="+(new Date().getTime());
		g_detail.http.onreadystatechange=cb;
		g_detail.http.open("get",url,true);
		g_detail.showLoading();
		try{g_detail.http.setRequestHeader("Content-type", "text/plain");}catch(e){}
		try{g_detail.http.send(null);}catch(e){}
	};
	/* 显示站长回复时的键盘消息 */
	this.onReplyKeydown=function(e,id){
		var agent=navigator.userAgent.toLowerCase();
		var isie=((agent.indexOf("msie")!=-1)&&(agent.indexOf("opera")==-1));
		var key;
		if(isie)key=event.keyCode;else key=e.which;
		if((key==13)&&(e.ctrlKey)){
			g_detail.doReply(id);
			return false;
		}
		return true;
	};
	/* 刷新验证码 */
	this.refreshVerifyCodeImg=function(){
		var ele=g_detail.$('login_verifyCodeImg');if(ele!=null)ele.src='/scms/jsp/getverifycode.jsp?a='+(new Date()).getTime();
	};
	/* 显示登录窗口 */
	this.showLogin=function(loginex,requestUserName,login_cb,login_cb_args){
		var login_win=null;
		var isClose=true;
		function doLogin(){
			if(login_win==null)return;
			var record=function(){
				this.id=g_detail.params['id'];
				this.userName=userName;
				this.passwd=passwd;
				this.verifycode=verifycode;
			};
			var userName=document.loginform.login_userName.value.toLowerCase();
			var passwd=document.loginform.login_passwd.value;
			var verifycode=document.loginform.login_verifycode.value;
			if(userName==""){alert(g_detail_lang.getString("DETAIL_32")/*"请输入用户名"*/);document.loginform.login_userName.focus();return false;}
			if(passwd==""){alert(g_detail_lang.getString("DETAIL_33")/*"请输入密码"*/);document.loginform.login_passwd.focus();return false;}
			if((verifycode=="")||(verifycode.length!=4)){alert(g_detail_lang.getString("DETAIL_34")/*"无效的验证码"*/);document.loginform.login_verifycode.focus();return false;}
			if(g_detail.http){/*To fix in opera and mozilla*/
				delete g_detail.http;g_detail.http=null;
			}
			if(g_detail.http==null)g_detail.http=g_detail.getHTTPRequest();
			if(g_detail.http==null){alert(g_detail_lang.getString("DETAIL_5")/*"无法创建XMLHttpRequest对象"*/);return false;}
			function cb(){
				if(g_detail.http.readyState==4){
					g_detail.hideLoading();
					if(((g_detail.http.status!=200)&&(g_detail.http.status!=304))||(g_detail.http.responseXML==null)||(g_detail.http.responseXML.firstChild==null)){
						showError(g_detail_lang.getString("DETAIL_6")/*"服务器没有生成正确的XML响应"*/);
						return;
					}
					g_detail.DOMDocument=g_detail.http.responseXML;
					var oErrorNode=g_detail.xmlSelectSingleNode('ajaxret/error');
					if(oErrorNode){
						var iErrorNumber=parseInt(oErrorNode.attributes.getNamedItem('code').value,10);
						switch(iErrorNumber){
							case 0:{/*not an error, call request again*/
								isClose=true;
								hideLoginWin();
								if(typeof(login_cb)=="function"){
									var sz="login_cb(";
									if(login_cb_args){
										for (var i=0;i<login_cb_args.length;i++){
											sz+="login_cb_args["+i+"]";
											if(i<(login_cb_args.length-1))sz+=",";
										}
									}
									sz+=");";
									eval(sz);
								}
								break;
							}
							case -1:/*custom error msg*/
								if(oErrorNode.firstChild){
									if(oErrorNode.firstChild.nodeValue){
										showError(g_detail_lang.getString(oErrorNode.firstChild.nodeValue));
									}else{
										showError(g_detail_lang.getString("DETAIL_7")/*"未知错误"*/);
									}
								}
								break ;
							default:
								showError(g_detail_lang.getString("DETAIL_8")/*"未知错误："*/+iErrorNumber);
								break ;
						}
					}else{
						showError(g_detail_lang.getString("DETAIL_7")/*"未知错误"*/);
					}
				}
			};
			function showError(msg){var ele=g_detail.$("login_errmsg_td");ele.innerHTML=getErrorTbl(msg);};
			var url=g_detail.request_url+"&command=login&t="+(new Date().getTime());
			g_detail.http.onreadystatechange=cb;
			g_detail.http.open("post",url,true);
			g_detail.showLoading();
			try{g_detail.http.setRequestHeader("Content-type", "text/plain");}catch(e){}
			try{g_detail.http.send(new record().toJSONString());}catch(e){}
			return false;
		};
		function hideLoginWin(){if(login_win)login_win.hide();}
		function errCode2Msg(code){
			if(code==g_detail.SSO_ERROR_INVALIDREGNAME)return g_detail_lang.getString("DETAIL_35")/*"无效的注册名，非法的登录请求"*/;
			else if(code==g_detail.SSO_ERROR_NOTLOGIN)return "";
			else if(code==g_detail.SSO_ERROR_NOTADMIN)return g_detail_lang.getString("DETAIL_36")/*"您没有使用该服务的权限"*/;
			else return g_detail_lang.getString("DETAIL_7")/*"未知错误"*/;
		};
		function showLoginWin(ct){
			function onClose(){if(isClose){login_win=null;return true}else{return false}};
			if(login_win==null){
				var imagePath="images";
				login_win=new siteem_win(ct,g_detail_lang.getString("DETAIL_37")/*"登录"*/,imagePath,270,false);
				login_win.setBgColor("white");
				g_detail.refreshVerifyCodeImg();
				login_win.show();
				login_win.setOnClose(onClose);
				g_detail.$("loginform").onsubmit=doLogin;
				if(isClose){
					g_detail.$("login_closebtn").onclick=hideLoginWin;
				}
			}
		};
		function getErrorTbl(errmsg){
			if(errmsg=="")return "";
			else{
				var ct=g_detail.$("login_err_div").innerHTML;
				var kv=[
					["<!-- #siteembegin#",""],
					["#siteemend# -->",""],
					["#errmsg#",errmsg]
				];
				return g_detail.replaceKey(ct,kv);
			}
		};
		function getLoginTbl(){
			var errmsg="";if(loginex)errmsg=errCode2Msg(loginex);
			var ct="";
			ct=g_detail.$("login_login_div").innerHTML;
		 	var registerdisplay="none";
		 	var closedisplay="inline";
			var usernameval="<input type=\"text\" name=\"login_userName\" style=\"width:185px\">";
			if(requestUserName)usernameval="<div style=\"width:185px;text-align:left\">"+requestUserName+"<input type=\"hidden\" name=\"login_userName\" value=\""+requestUserName+"\"><\/div>";
			var kv=[
				["<!-- #siteembegin#",""],
				["#siteemend# -->",""],
				["#loginlbl#",g_detail_lang.getString("DETAIL_38")/*"请输入您的用户名和密码"*/],
				["#err#",getErrorTbl(errmsg)],
				["#registerdisplay#",registerdisplay],
				["#closedisplay#",closedisplay],
				["#usernamelbl#",g_detail_lang.getString("DETAIL_39")/*"用户名："*/],
				["#usernameval#",usernameval],
				["#passwdlbl#",g_detail_lang.getString("DETAIL_40")/*"密&nbsp;&nbsp;码："*/],
				["#submitval#",g_detail_lang.getString("DETAIL_41")/*"登&nbsp;&nbsp;录"*/],
				["#colseval#",g_detail_lang.getString("DETAIL_42")/*"取&nbsp;&nbsp;消"*/],
				["#verifycodelbl#",g_detail_lang.getString("DETAIL_43")/*"验证码："*/],
				["#verifycodetitle#",g_detail_lang.getString("DETAIL_44")/*"请输入右边图片中的四位大写字母"*/],
				["#verifycodeimgtitle#",g_detail_lang.getString("DETAIL_45")/*"看不清图片内容请点击图片刷新"*/]
			];
			return g_detail.replaceKey(ct,kv);
		}
		showLoginWin(getLoginTbl());
	};
};
g_detail_js_loaded=true;
