﻿var vcmap;
var pcmap;
var tbamap,tbsmap;
var commentListBox;
var postCommentBox;
var commentTipBox;
var msgTipBox;
var postMsgBox;

var xmlDoc;
var bil;
var currentSortId;
var gbTipBox;
var rh;

var sortFlag;
Event.observe(window,"load",init,0);

function init(){
	vcmap=new Mapping();
	pcmap=new Mapping();
	dlmap=new Mapping();
	tbamap=new Mapping();
	tbsmap=new Mapping();
	
	commentListBox=document.createElement("div");
	Element.addClassName(commentListBox,"commentList commentListBox");
	
	postCommentBox=$se("div");
	Element.addClassName(postCommentBox,"commentList postCommentBox");
	
	var dl=$se("dl");
	Element.addClassName(dl,"list postComment");
	dl.appendChild(document.createElementWithText("dt",MultiLang.s191));
	var dd=$se("dd");
	dd.appendChild(document.createElementWithText("span",MultiLang.s192));
	var input=$se("input");
	input.type="text";
	input.maxlength=15;
	dd.appendChild(input);
	dl.appendChild(dd);
	dd=$se("dd");
	dd.appendChild(document.createElementWithText("span",MultiLang.s193));
	var textArea=$se("textarea");
	textArea.cols=6;
	textArea.rows=6;
	dd.appendChild(textArea);
	input=$se("input");
	input.id="btnPostComment";
	input.className="button";
	input.type="button";
	input.value=MultiLang.s194;
	dd.appendChild(input);
	dl.appendChild(dd);
	postCommentBox.appendChild(dl);
	

	//postCommentBox=(document.getElementsByClassName("postCommentBox"))[0];
	
	
	commentTipBox=new TipBox("",{elementName:"div",marginLeft:"15px",marginRight:"15px",marginTop:"0",marginBottom:"10px"});
	msgTipBox=new TipBox("",{marginTop:"10px",padding:"3px",borderStyle:"solid",borderColor:"#888"});
	postMsgBox=$("postMsg");
	if(postMsgBox)postMsgBox.insertBefore(msgTipBox.box,postMsgBox.childNodes[1]);
	externalLinks();

	bil=$("blogItemList");
	currentSortId=0;
	gbTipBox=new TipBox("",{elementName:"div",marginLeft:"10px",marginRight:"10px",paddingLeft:"3px"});

	bil.parentNode.insertBefore(gbTipBox.box,bil);
	gbTipBox.setText("");
	getMenuEffect();
	
	rh=new RefreshHandler();
	rh.check("admin");
	rh.check();
	
	

}
function getMenuEffect(){
	var menu=$("ulMenu");
	for(var i=0;i<menu.childNodes.length;i++){
		menu.childNodes[i].onmouseover=function(){
			Element.addClassName(this,"hover");
		}
		menu.childNodes[i].onmouseout=function(){
			Element.removeClassName(this,"hover");
		}
	}

}


function toggleDl(dt)
{	
	var e=dt.parentNode;
	if(Element.hasClassName(e,"dlClose")){
		Element.removeClassName(e,"dlClose");
		Element.addClassName(e,"dlOpen");
	}
	else{
		Element.removeClassName(e,"dlOpen");
		Element.addClassName(e,"dlClose");
	}
}

function toggleViewComment(topicId,e){try{
	hideCommentTipBox();
	var bi=e.parentNode.parentNode;
	var vcb;
	if(!vcmap.exist(topicId)){
		var tempNode=commentListBox.cloneNode(true);
		bi.parentNode.insertBefore(tempNode,bi.nextSibling);
		vcmap.push(topicId,tempNode);
		vcb=tempNode;
	}
	else vcb=vcmap.getValue(topicId);
	var viewTb=getViewTb(bi);
	if(isTbClose(viewTb)){
		if(isTbOpen(getPostTb(bi)))togglePostCommentBox(topicId,e);
		if(isTbOpen(getTbaTb(bi)))toggleTrackbackAddress(topicId,e);
		if(isTbOpen(getTbsTb(bi)))toggleTrackbacks(topicId,e);
		genCommentList(topicId);
	}
	else{
		Element.hide(vcb);
		setTbClose(viewTb);
	}
}catch(e){
	return;
}
}

function toggleTrackbacks(topicId,e){
	hideCommentTipBox();
	var bi=e.parentNode.parentNode;
	var tbsb;
	if(!tbsmap.exist(topicId)){
		var tempNode=commentListBox.cloneNode(true);
		bi.parentNode.insertBefore(tempNode,bi.nextSibling);
		tbsmap.push(topicId,tempNode);
		tbsb=tempNode;
	}
	else tbsb=tbsmap.getValue(topicId);
	var tbsTb=getTbsTb(bi);
	if(isTbClose(tbsTb)){
		if(isTbOpen(getPostTb(bi)))togglePostCommentBox(topicId,e);
		if(isTbOpen(getTbaTb(bi)))toggleTrackbackAddress(topicId,e);
		if(isTbOpen(getViewTb(bi)))toggleViewComment(topicId,e);
		genTrackbacks(topicId);
	}
	else{
		Element.hide(tbsb);
		setTbClose(tbsTb);
	}
}

function togglePostCommentBox(topicId,e){
	hideCommentTipBox();
	var bi=e.parentNode.parentNode;
	var pcb;
	if(!pcmap.exist(topicId)){
		var tempNode=postCommentBox.cloneNode(true);
		bi.parentNode.insertBefore(tempNode,bi.nextSibling);
		pcmap.push(topicId,tempNode);
		pcb=tempNode;
		resetPcb(pcb);
		attachPostEvent(topicId,pcb);
	}
	else pcb=pcmap.getValue(topicId);
	var postTb=getPostTb(bi);
	if(isTbClose(postTb)){
		if(isTbOpen(getViewTb(bi)))toggleViewComment(topicId,e);
		if(isTbOpen(getTbaTb(bi)))toggleTrackbackAddress(topicId,e);
		if(isTbOpen(getTbsTb(bi)))toggleTrackbacks(topicId,e);
		Element.show(pcb);
		setTbOpen(postTb);
	}
	else{
		Element.hide(pcb);
		setTbClose(postTb);
	}
}

function toggleTrackbackAddress(topicId,e){
	hideCommentTipBox();
	var bi=e.parentNode.parentNode;
	var tbab;
	if(!tbamap.exist(topicId)){
		var tempNode=$se("div");
		var path=window.location.host+window.location.pathname;
		tempNode.innerHTML="<ul class='trackbackAddress'><li class='text'>"+MultiLang.s149+"Trackback"+MultiLang.s150+"</li><li>http://"
			+path.substring(0,path.lastIndexOf('/')+1)+"trackback.aspx?id="+topicId+"</li><li class='text'>"+MultiLang.s151+"</li><li>http://"
			+path+"#tid."+topicId+"/</li></ul>";
		tempNode.className="trackbackAddress";
		bi.parentNode.insertBefore(tempNode,bi.nextSibling);
		tbamap.push(topicId,tempNode);
		tbab=tempNode;
		
		//resetPcb(pcb);
		//attachPostEvent(topicId,pcb);
	}
	else tbab=tbamap.getValue(topicId);
	var tbaTb=getTbaTb(bi);
	if(isTbClose(tbaTb)){
		if(isTbOpen(getViewTb(bi)))toggleViewComment(topicId,e);
		if(isTbOpen(getPostTb(bi)))togglePostCommentBox(topicId,e);
		if(isTbOpen(getTbsTb(bi)))toggleTrackbacks(topicId,e);
		Element.show(tbab);
		setTbOpen(tbaTb);
	}
	else{
		Element.hide(tbab);
		setTbClose(tbaTb);
	}
}


function showCommentTipBox(msg,e,noButton){
	e.parentNode.insertBefore(commentTipBox.box,e.nextSibling);
	commentTipBox.show();
	if(noButton)commentTipBox.setText(msg,"noCloseButton");
	else commentTipBox.setText(msg);
}

function hideCommentTipBox(){
	commentTipBox.hide();
}

function isTbOpen(tb){
	return tb.nodeValue.charAt(0)==MultiLang.s152;
}
function isTbClose(tb){
	return tb.nodeValue.charAt(0)==MultiLang.s153;
}
function setTbClose(tb){
	tb.nodeValue=MultiLang.s153+tb.nodeValue.slice(1,tb.nodeValue.length);
}
function setTbOpen(tb){
	tb.nodeValue=MultiLang.s152+tb.nodeValue.slice(1,tb.nodeValue.length);
}
function getViewTb(e){
	return e.lastChild.childNodes[0].firstChild;
}
function getPostTb(e){
	return e.lastChild.childNodes[1].firstChild;
}
function getTbaTb(e){
	return e.lastChild.childNodes[2].firstChild;
}
function getTbsTb(e){
	return e.lastChild.childNodes[3].firstChild;
}
function genCommentList(topicId){
try{
	var vcb=vcmap.getValue(topicId);
	var bi=pn(vcb);
	showCommentTipBox(MultiLang.s66,bi,"noButton");
	var option={
		parameters:"s="+Math.random()+"&oper=getComment&topicId="+topicId,
		method:"get",
		onSuccess:function(transport){
			var rp=transport.responseText;
			if(/^<(\d+)>/.exec(rp)==null){
				commentTipBox.setText(rp);
				commentTipBox.hideAfterSeconds(3);
				return;
			}
			
			bi.lastChild.childNodes[0].childNodes[1].innerHTML=RegExp.$1;
			if(RegExp.$1==0){
				commentTipBox.setText(MultiLang.s154);
				commentTipBox.hideAfterSeconds(3);
				return;
			}
			setTbOpen(getViewTb(bi));
			vcb.innerHTML=RegExp.rightContext;
			commentTipBox.hide();
			Element.show(vcb);
		},
		onFailure:function(transport){
			commentTipBox.setText(MultiLang.s13+"<a href='javascript:genCommentList("+topicId+")'>"+MultiLang.s11+"</a>"+MultiLang.s12);
		}
	}
	var request=new Ajax.Request("ajax.aspx",option);
	return;
}catch(e){
	return;
}
}

function genTrackbacks(topicId){try{
	var tbsb=tbsmap.getValue(topicId);
	var bi=pn(tbsb);
	showCommentTipBox(MultiLang.s66,bi,"noButton");
	var option={
		parameters:"s="+Math.random()+"&oper=getTrackbacks&topicId="+topicId,
		method:"get",
		onSuccess:function(transport){
			var rp=transport.responseText;
			if(/^<(\d+)>/.exec(rp)==null){
				commentTipBox.setText(rp);
				commentTipBox.hideAfterSeconds(3);
				return;
			}
			
			bi.lastChild.childNodes[3].childNodes[1].innerHTML=RegExp.$1;
			if(RegExp.$1==0){
				commentTipBox.setText(MultiLang.s155+"Trackback"+MultiLang.s156);
				commentTipBox.hideAfterSeconds(3);
				return;
			}
			setTbOpen(getTbsTb(bi));
			tbsb.innerHTML=RegExp.rightContext;
			commentTipBox.hide();
			Element.show(tbsb);
		},
		onFailure:function(transport){
			commentTipBox.setText(MultiLang.s13+"<a href='javascript:genTrackbacks("+topicId+")'>"+MultiLang.s11+"</a>"+MultiLang.s12);
		}
	}
	var request=new Ajax.Request("ajax.aspx",option);
	return;
}catch(e){
	return;
}
}

function genTrackbackList(topicId){try{
	var vcb=vcmap.getValue(topicId);
	var bi=pn(vcb);
	showCommentTipBox(MultiLang.s66,bi,"noButton");
	var option={
		parameters:"s="+Math.random()+"&oper=getTrackback&topicId="+topicId,
		method:"get",
		onSuccess:function(transport){
			var rp=transport.responseText;
			if(/^<(\d+)>/.exec(rp)==null){
				commentTipBox.setText(rp);
				commentTipBox.hideAfterSeconds(3);
				return;
			}
			
			bi.childNodes[3].childNodes[0].childNodes[1].innerHTML=RegExp.$1;
			if(RegExp.$1==0){
				commentTipBox.setText(MultiLang.s155+"Trackback"+MultiLang.s156);
				commentTipBox.hideAfterSeconds(3);
				return;
			}
			setTbOpen(getViewTb(bi));
			vcb.innerHTML=RegExp.rightContext;
			commentTipBox.hide();
			Element.show(vcb);
		},
		onFailure:function(transport){
			commentTipBox.setText(MultiLang.s13+"<a href='javascript:genCommentList("+topicId+")'><font color='blue'>"+MultiLang.s11+"</font></a>"+MultiLang.s12);
		}
	}
	var request=new Ajax.Request("ajax.aspx",option);
	return;
}catch(e){
	return;
}
}

function attachPostEvent(topicId,pcb){
	var btn=pcb.childNodes[0].childNodes[pcb.childNodes[0].childNodes.length-1].childNodes[2];
	var iptAuthor=pcb.childNodes[0].childNodes[pcb.childNodes[0].childNodes.length-2].childNodes[1];
	var taContent=pcb.childNodes[0].childNodes[pcb.childNodes[0].childNodes.length-1].childNodes[1];
	var tipBox=new TipBox("",{});
	pcb.childNodes[0].insertBefore(tipBox.box,pcb.childNodes[0].childNodes[1]);
	btn.onclick=function addComment(){
		if(tipBox.using){
			tipBox.setText(MultiLang.s157);
			return;
		}
		if(iptAuthor.value.trim().length==0 || taContent.value.trim().length==0){
			tipBox.setText(MultiLang.s158);
			tipBox.show();
			tipBox.hideAfterSeconds(3);
			tipBox.using=false;
			return;
		}
		tipBox.show();
		tipBox.setText(MultiLang.s159,"noCloseButton");
		var option={
			parameters:"author="+escape2(iptAuthor.value)+"&memo="+escape2(taContent.value)+"&topicId="+topicId,
			method:"post",
			onSuccess:function(transport){
				var sortId=0;
				var response=transport.responseText;
				if(/^\d{4}-\d{1,2}-\d{1,2}/.test(response)){
					tipBox.setText(MultiLang.s160);
					tipBox.hideAfterSeconds(3);
					var bi=pn(pcb);
					var count=bi.childNodes[3].childNodes[0].childNodes[1].innerHTML;
					count++;
					bi.childNodes[3].childNodes[0].childNodes[1].innerHTML=count;
					togglePostCommentBox(topicId,bi.childNodes[3].childNodes[0]);
					showCommentTipBox(MultiLang.s160,bi);
					addCommentToLeft(iptAuthor.value,taContent.value,topicId,sortId);
					resetPcb(pcb);
					commentTipBox.hideAfterSeconds(3);
				}
				else{
					tipBox.setText(response);
					tipBox.hideAfterSeconds(3);
				}
			},
			onFailure:function(transport){
				tipBox.using=false;
				tipBox.setText(MultiLang.s161);
				tipBox.hideAfterSeconds(3);
			}
		}
		var request=new Ajax.Request("ajax.aspx?s="+Math.random()+"&oper=addComment",option);
	}
}

function resetPcb(pcb){
	pcb.childNodes[0].childNodes[pcb.childNodes[0].childNodes.length-2].childNodes[1].value="";
	pcb.childNodes[0].childNodes[pcb.childNodes[0].childNodes.length-1].childNodes[1].value="";
}

function pn(e){
	n=e.previousSibling;
	while(n.tagName.toLowerCase()!="dl"){
		if(!n.previousSibling)return null;
		n=n.previousSibling;
	}
	return n;
}

function addCommentToLeft(author,content,topicId,sortId){
	var n=$("newComment");
	if(!n)return;
	var str="<span>"+author.escapeHTML2()+MultiLang.s36+"</span>";
	str+=("<a href='javascript:gsb("+topicId+")'>"+cutLeft(content,50).escapeHTML2()+"</a>");
	var dd=document.createElementWithText("dd",str);
	
	if(cc(n)>10)n.removeChild(n.childNodes[ci(cc(n)-1)]);
	n.insertBefore(dd,n.childNodes[ci(1)]);
}


function postMsg(){
	try{
		if(msgTipBox.using){
			msgTipBox.toggleText(MultiLang.s157,1);
			return;
		}
		if($F("tbAuthor").trim().length==0 || $F("tbTitle").trim().length==0 || $F("tbContent").trim().length==0 || $F("ddlMsgSort")=="0"){
			msgTipBox.setText(MultiLang.s162);
			msgTipBox.show();
			msgTipBox.hideAfterSeconds(3);
			msgTipBox.using=false;
			return;
		}
		msgTipBox.show();
		msgTipBox.setText(MultiLang.s163,"noCloseButton");
		var option={
			parameters:"author="+escape2($F("tbAuthor"))+"&title="+escape2($F("tbTitle"))+"&content="+escape2($F("tbContent"))+"&sortId="+$F("ddlMsgSort"),
			method:"post",
			onSuccess:function(transport){
				var response=transport.responseText;
				if(/^<(\d+)><(\d+)>$/.exec(response)){
					msgTipBox.setText(MultiLang.s164);
					msgTipBox.hideAfterSeconds(3);
					if(RegExp.$2==1)addMsgToLeft(RegExp.$1,$F("ddlMsgSort"));
					resetPostMsgBox();
				}
				else{
					msgTipBox.setText(response);
					msgTipBox.hideAfterSeconds(3);
				}
			},
			onFailure:function(transport){
				msgTipBox.using=false;
				msgTipBox.setText(MultiLang.s13+"<a href='javascript:postMsg()'>"+MultiLang.s11+"</a>"+MultiLang.s12);
				msgTipBox.hideAfterSeconds(3);
			}
		}
		var request=new Ajax.Request("ajax.aspx?s="+Math.random()+"&oper=addMsg",option);
	}catch(e){
		return;
	}
}

function addMsgToLeft(topicId,sortId){
	var n=$("newMsg");
	if(!n)return;
	var str="<a href='javascript:gsb("+topicId+")'>"+$F("tbTitle").escapeHTML2()+"</a>";
	var dd=document.createElementWithText("dd",str);
	
	
	if(cc(n)>10)n.removeChild(n.childNodes[ci(cc(n)-1)]);
	
	n.insertBefore(dd,n.childNodes[ci(1)]);

}

function resetPostMsgBox(){
	$("tbAuthor").value="";
	$("tbTitle").value="";
	$("tbContent").value="";
	$("ddlMsgSort").selectedIndex=0;
}

function cutLeft(str,len){
	if(str.length>len)return str.slice(0,len)+MultiLang.s165;
	return str;
}


function getBlog(sortId,p){try{
	currentSortId=sortId;
	sortFlag=Math.random();
	var sortFlagTemp=sortFlag;
	gbTipBox.setText(MultiLang.s66,"noCloseButton");
	gbTipBox.show();
	var option={
		parameters:"s="+Math.random()+"&oper=getBlog&sortId="+sortId+"&page="+p,
		method:"get",
		onSuccess:function(transport){
			if(sortFlagTemp!=sortFlag)return;
			xmlDoc=new X2Doc(transport.responseText);
			if(xmlDoc.root.attributes["recCount"]=="0"){
				try{
					setCurrentMenu(sortId);
					getBlogList(sortId);
					gbTipBox.hide();
					rh.reset();
					rh.setValue("sid",sortId);
					rh.setValue("page",p);
					rh.toHash();
					
				}catch(e){
					gbTipBox.setText(MultiLang.s166);
					gbTipBox.show();
				}
				return;
			}
			setCurrentMenu(sortId);
			getBlogList(sortId);
			gbTipBox.hide();
			if(document.X2Lighter)highLightCode();
			rh.reset();
			rh.setValue("sid",sortId);
			rh.setValue("page",p);
			rh.toHash();
		},
		onFailure:function(transport){
			if(sortFlagTemp!=sortFlag)return;
			gbTipBox.using=false;
			gbTipBox.setText(MultiLang.s167);
		}
	}
	var request=new Ajax.Request("ajax.aspx",option);
}catch(e){
	return;
}
}
/*getSingleBlog=gsb*/
function gsb(tid){try{
	sortFlag=Math.random();
	var sortFlagTemp=sortFlag;
	gbTipBox.setText(MultiLang.s66,"noCloseButton");
	gbTipBox.show();
	var option={
		parameters:"s="+Math.random()+"&oper=getBlog&tid="+tid,
		method:"get",
		onSuccess:function(transport){
			if(sortFlagTemp!=sortFlag)return;
			xmlDoc=new X2Doc(transport.responseText);
			if(xmlDoc.root.attributes["recCount"]=="0"){
				gbTipBox.setText(MultiLang.s168);
				gbTipBox.show();
				return;
			}
			var sortId=xmlDoc.root.contents[0].getValue("sortId");
			setCurrentMenu(sortId);
			getBlogList(sortId);
			gbTipBox.hide();
			rh.reset();
			rh.setValue("tid",tid);
			rh.toHash();
			if(document.X2Lighter)highLightCode();
		},
		onFailure:function(transport){
		if(sortFlagTemp!=sortFlag)return;
			gbTipBox.using=false;
			gbTipBox.setText(MultiLang.s167);
		}
	}
	var request=new Ajax.Request("ajax.aspx",option);
}catch(e){
	return;
}
}


function getBlogList(sortId){
try{
	
	var recCount=parseInt(xmlDoc.root.attributes["recCount"]);
	var pageSize=parseInt(xmlDoc.root.attributes["pageSize"]);
	var currentPage=parseInt(xmlDoc.root.attributes["currentPage"]);
	if(pageSize==0)hidePager();else {showPager();genPager(recCount,pageSize,currentPage,sortId);}
	
	var tempBil=document.createElement("div");
	for(var i=0;i<xmlDoc.cns.length;i++){
		tempBil.appendChild(createBlogItem(xmlDoc.cns[i]));
	}
	bil.parentNode.replaceChild(tempBil,bil);
	bil=tempBil;
	scroll(0,0);
	vcmap.reset();
	pcmap.reset();
}catch(e){
	return;
}
	
}
function createBlogItem(bi){
	var opt;
	if(bi.getValue("option"))opt=bi.getValue("option");
	else opt="0000000";
	/*more|link|sortTop|homeTop|allowComment|noTitle|noDate*/
	var more=opt.charAt(0)=="1";
	var link=opt.charAt(1)=="1";
	var sortTop=opt.charAt(2)=="1";
	var homeTop=opt.charAt(3)=="1";
	var allowComment=opt.charAt(4)=="1";
	var noTitle=opt.charAt(5)=="1";
	var noDate=opt.charAt(6)=="1";

	var sortId=bi.getValue("sortId");

	var dl,span,dt,txt,txt;
	dl=document.createElement("dl");
	Element.addClassName(dl,"list");
	Element.addClassName(dl,"blogItem");

	if(!noTitle){
		dt=document.createElement("dt");
		span=document.createElementWithText("span",bi.getValue("date").split(" ")[0]);
		dt.appendChild(span)
		if((currentSortId=="0" && homeTop) || (currentSortId!="0" && sortTop)){
			span=document.createElementWithText("span",MultiLang.s169);
			Element.addClassName(span,"top");
			dt.appendChild(span);
		}
		dt.appendChild(document.createTextNode(bi.getValue("title")));
		dl.appendChild(dt);
	}

	if(!noDate){
		dd=document.createElement("dd");
		Element.addClassName(dd,"dateAbout");
		dd.appendChild(document.createTextNode(MultiLang.s170));
		span=document.createElementWithText("span",bi.getValue("sortName"));
		dd.appendChild(span);
		dd.appendChild(document.createTextNode(MultiLang.s171));
		span=document.createElementWithText("span",bi.getValue("date"));
		dd.appendChild(span);
		dd.appendChild(document.createTextNode(MultiLang.s30));
		span=document.createElementWithText("span",bi.getValue("author"));
		dd.appendChild(span);
		dl.appendChild(dd);
	}

	dd=$se("dd");
	try{
		dd.innerHTML=bi.getValue("abstract");
	}catch(e){
		try{
			dd.innerHTML=bi.getValue("abstract").replace("<dd>","<span>").replace("</dd>","</span");
			dd.innerHTML="<div style='color:#f00'>"+MultiLang.s172+"</div>"+dd.innerHTML;
		}catch(e){
			dd.innerHTML="<div style='color:#f00'>"+MultiLang.s173+"</div>";
		}
	}
	Element.addClassName(dd,"content");
	if(more){
		var para=document.createElement("p");
		Element.addClassName(para,"readMore");
		para.innerHTML="<a target=\"_blank\" href=\"html/"+bi.getValue("id")+".html\">"+MultiLang.s174+"</a>";
		dd.appendChild(para);
	}
	if(link){
		var para=document.createElement("p");
		Element.addClassName(para,"readMore");
		para.innerHTML="<a rel=\"external\" href=\""+bi.getValue("link")+"\">"+MultiLang.s175+"</a>";
		dd.appendChild(para);
	}
	dl.appendChild(dd);

	if(allowComment){
		dd=document.createElement("dd");
		Element.addClassName(dd,"comment");
		
		span=document.createElement("span");
		Element.addClassName(span,"viewComment");
		span.appendChild(document.createTextNode(MultiLang.s176+" ("));
		span.appendChild(document.createElementWithText("span",bi.getValue("commentCount")));
		span.appendChild(document.createTextNode(")"));
		span.onclick=toggleV(bi.getValue("id"));
		dd.appendChild(span);

		span=document.createElement("span");
		Element.addClassName(span,"viewComment");
		span.appendChild(document.createTextNode(MultiLang.s177));
		span.onclick=toggleP(bi.getValue("id"));
		dd.appendChild(span);
		
		span=document.createElement("span");
		Element.addClassName(span,"viewComment");
		span.appendChild(document.createTextNode(MultiLang.s153+"Trackback"+MultiLang.s178));
		span.onclick=_toggleTrackbackAddress(bi.getValue("id"));
		dd.appendChild(span);
		
		span=document.createElement("span");
		Element.addClassName(span,"viewComment");
		span.appendChild(document.createTextNode(MultiLang.s153+"Trackbacks ("));
		span.appendChild(document.createElementWithText("span",bi.getValue("trackbackCount")));
		span.appendChild(document.createTextNode(")"));
		span.onclick=_toggleTrackbacks(bi.getValue("id"));
		dd.appendChild(span);

		dl.appendChild(dd);
	}
	
	return dl;
}
function toggleV(id){
	return function(){toggleViewComment(id,this);}
}
function toggleP(id){
	return function(){togglePostCommentBox(id,this);}
}
function _toggleTrackbackAddress(id){
	return function(){toggleTrackbackAddress(id,this);}
}
function _toggleTrackbacks(id){
	return function(){toggleTrackbacks(id,this);}
}
function setCurrentMenu(sortId){
	var _menu=$("ulMenu");
	for(var i=0;i<_menu.childNodes.length;i++){
		if(_menu.childNodes[i].id=="m"+sortId)Element.addClassName(_menu.childNodes[i],"current");
		else Element.removeClassName(_menu.childNodes[i],"current");
	}
}

function hidePager(){
	Element.hide($("pagerHolder"));
}
function showPager(){
	Element.show($("pagerHolder"));
}
/*
rc=recCount
pz=pageSize
cp=currentPage
tpc=totalPageCount
si=sortId
_type:
1 mainPage
2 adminTopicList
3 adminCommentList
*/
function genPager(rc,ps,cp,si,_type){
	var pager=$("pager");
	var p=10;
	var pagerStr="";
	var tpc=Math.ceil(rc/ps);
	var t=Math.floor(((cp-1)/p));
	var i=0;
	var type=1;
	if(_type)type=_type;
	
	for(i=t*p+1;i<=(t+1)*p && i<=tpc;i++){
		if(i==cp)pagerStr+="<span title='"+MultiLang.s179+"' class='cp'>["+i+"]</span>";
		else pagerStr+="<a title='"+MultiLang.s180+i+MultiLang.s181+"' href='javascript:scroll(0,0);pagerAdapter("+type+","+si+","+i+")'>["+i+"]</a>";
	}
	if(t>0){
		pagerStr="<a title='"+MultiLang.s180+t*p+MultiLang.s181+"' href='javascript:scroll(0,0);pagerAdapter("+type+","+si+","+t*p+")'>&lt;&lt;</a>"+pagerStr;
		pagerStr="<a title='"+MultiLang.s182+"' href='javascript:scroll(0,0);pagerAdapter("+type+","+si+",1)'>|&lt;&lt;</a>"+pagerStr;
	}
	if((t+1)*p<tpc){
		pagerStr+="<a title='"+MultiLang.s180+((t+1)*p+1)+MultiLang.s181+"' href='javascript:scroll(0,0);pagerAdapter("+type+","+si+","+((t+1)*p+1)+")'>&gt;&gt;</a>";
		pagerStr+="<a title='"+MultiLang.s183+"' href='javascript:scroll(0,0);pagerAdapter("+type+","+si+","+tpc+")'>&gt;&gt;|</a>";
	}
	if(rc==0)pagerStr="<span style='font-family:Arial,sans-serif'>"+MultiLang.s184+"</span>";
	pager.innerHTML=pagerStr;
}

function pagerAdapter(type,sortId,page){
	switch(type){
		case 1:
			getBlog(sortId,page);
			break;
		case 2:
			getTopicList(page);
			break;
		case 3:
			getAdminCommentList(page);
			break;
		case 4:
			getAdminTrackbackList(page);
			break;
		default:
			break;
	}
}





function setRssLink(sortId){
	if(sortId=="admin")sortId="0";
	$("rssLink").href="rss.aspx?c="+sortId;
	$("rssLink").target="_blank";
	$("imgRss").title="RSS"+MultiLang.s185+$("m"+sortId).innerHTML;
	
	
	
}

function setStyle(title) {
	var i, links,eflag=false;
	links = document.getElementsByTagName("link");
	for(i=0; links[i]; i++) {
		if(links[i].getAttribute("rel").indexOf("style") != -1 && links[i].getAttribute("title")) {
			links[i].disabled = true;
			if(links[i].getAttribute("title").indexOf(title) != -1){links[i].disabled = false;eflag=true;}
		}
	}
	if(!eflag){
		$import("skin/"+title+"/default.css","css",title);
		$import("skin/"+title+"/admin.css","css",title);
		setStyle(title);
	}
}

var RefreshHandler=Class.create();
RefreshHandler.prototype={
	initialize:function(){
		this.keyValue=new function(){};
	},
	check:function(s){
		var hash=window.location.hash;
		hash=hash.substring(1,hash.length);
		var arr=hash.split('#')[0].split('/');
		var keyValue=new Object();
		for(var i=0;i<arr.length;i++){
			keyValue[arr[i].split('.')[0]]=arr[i].split('.')[1];
		}
		
		if(s && !keyValue[s])return false;
		
		if(s && keyValue[s]){
			if(s=="adminAction"){
				eval("adminHandler.show('"+keyValue[s]+"');");
			}else{
				eval(keyValue[s]+"();");
			}
			return true;
		}	
		
		if(keyValue.tid){gsb(keyValue.tid);return true;}
		if(keyValue.sid=="0"){
			if(keyValue.page && keyValue.page!="1"){
				getBlog("0",keyValue.page);
				return true;
			}
		}
		if(keyValue.sid && keyValue.sid!="0"){getBlog(keyValue.sid,keyValue.page?keyValue.page:1);return true;}
		return false;
		
	},
	toHash:function(){
		/*var hash=window.location.hash;
		hash=hash.substring(1,hash.length);
		var arr=hash.split('#')[0].split('/');
		var kv=new Object();
		for(var i=0;i<arr.length;i++){
			kv[arr[i].split('.')[0]]=arr[i].split('.')[1];
		}
		
		for(var p in kv){
			if(!this.keyValue[p])this.keyValue[p]=kv[p];
		}*/
		
		var hh="#";
		for(var p in this.keyValue){
			if(p=="extend")continue;
			if(this.keyValue[p] || this.keyValue[p]=="0"){
				hh+=p+"."+this.keyValue[p]+"/";
			}
		}
		window.location=window.location.pathname+hh;
		
	},
	setValue:function(key,value){
		this.keyValue[key]=value;
	},
	reset:function(){
		this.keyValue=new function(){};
	}
}



//entrance for admin state
var adminScript=false;
var adminBil=document.createElement("div");
function admin(){
	scroll(0,0);
	gbTipBox.setText(MultiLang.s66,"noCloseButton");
	gbTipBox.show();
	if(adminScript){
		hidePager();
		setCurrentMenu("admin");
		bil.parentNode.replaceChild(adminBil,bil);
		bil=adminBil;
		adminInit(bil);
		setCurrentMenu("admin");
		gbTipBox.hide();
		
		if(!rh.check("action")){
			rh.reset();
			rh.setValue("admin","admin");
			rh.toHash();
		}
		
		return;
	}
	sortFlag=Math.random();
	var sortFlagTemp=sortFlag;
	var s=$import("js/admin.js?s="+Math.random(),"js");
	s.onload=s.onreadystatechange=function(){
		if(sortFlagTemp!=sortFlag)return;
		if(this.readyState && this.readyState=="loading")return;
		//rh.reset();
		
		adminScript=true;
		admin();
	}
	return;
}