
forum.search={};
forum.search.forumid=-1;

forum.search.modules={"search":new Object(),"new":new Object(),"order":new Object(),"hot":new Object(),"good":new Object(),"vote":new Object(),"top":new Object(),"my":new Object(),"myreply":new Object()};

forum.search.defines={"list":new Object()};
forum.search.defines["list"]["template.key"]="list";
forum.search.defines["list"]["listnum"]=15;
forum.search.defines["list"]["listnum.define"]=15;

forum.search.modules["search"]["define"]="list";
forum.search.modules["new"]["define"]="list";
forum.search.modules["order"]["define"]="list";
forum.search.modules["hot"]["define"]="list";
forum.search.modules["good"]["define"]="list";
forum.search.modules["vote"]["define"]="list";
forum.search.modules["top"]["define"]="list";
forum.search.modules["my"]["define"]="list";
forum.search.modules["myreply"]["define"]="list";

forum.search.oList=null;
forum.search.oPaging=null;
forum.search.module="new";
forum.search.page=1;
forum.search.pagenow=1;
forum.search.execProcess=null;

forum.search.DataURLScript="search.ext";
forum.search.DataURLParams="_portal=dtml&_format=map&module={$module}&forumid={$forumid}&username={$username}&keyword={$keyword}&sea_term={$sea_term}&page={$page}&listnum={$listnum}";
forum.search.getDataURL=function(){return this.DataURLScript+"?"+this.DataURLParams;}

forum.search.doPageInit=function(){
	$formx.SELECT_HANDLE_PROCESS="forum.search.doHandleLoad()";
	$formx.SELECT_PROMPT_CHECK=false;
	this.doDefineInit();
	if(this.modules[dcs.request.getQuery("module")]){
		this.module=dcs.request.getQuery("module");
		if(this.module=="search"){
			$f.setValue("frm_search.username",dcs.url.toDecode(dcs.request.getQuery("username")));
			$f.setValue("frm_search.keyword",dcs.url.toDecode(dcs.request.getQuery("keyword")));
			$f.setValue("frm_search.sea_term",dcs.request.getQuery("sea_term"));
			$f.setValue("frm_search.forumid",dcs.request.getQuery("forumid"));
			this.doSearchInit('process');
			return;
		}
	}
	this.doMenuInit();
	this.doListInit();
}


//########################################
//########################################
forum.search.doModuleInit=function(m){
	if(!this.oList || this.oList.status()!=0) return;
	var oldModule=this.module;
	if(this.modules[m]) this.module=m;
	if(oldModule==this.module) return false;
	this.doModuleExchange(oldModule);
	this.doMenuInit();
	this.doListInit();
	this.doSearchDestory();
	return false;
}

forum.search.doModuleRefurbish=function(){
	this.doMenuInit();
	this.doListInit(this.pagenow);
}

forum.search.doModuleExchange=function(m){
	if(this.execProcess) clearTimeout(this.execProcess);
	//$oo("module-"+this.modules[m]["template.key"]).hide();
	//$oo("module-"+this.modules[m]["template.key"]+"-select-data").html("");
	//$oo("module-"+this.defines[this.modules[this.module]["define"]]["template.key"]).show();
	//$oo("module-"+this.defines[this.modules[this.module]["define"]]["template.key"]+"-select-data").html("");
}

forum.search.doMenuInit=function(){
	$oo("module-title").html(this.modules[this.module]["title"]);
}


//########################################
//########################################
forum.search.doSearchInit=function(t){
	if(this.execProcess!=null) return false;
	$oo("module-search").show();
	this.doSearchSelectForum();
	switch(t){
		case "process":
			if(!$f.getValue("frm_search.keyword") && !$f.getValue("frm_search.username")) { alert("请致少填一项搜索选项！"); return false; }
			this.page=this.pagenow=1;
			this.forumid=toInt($f.getValue("frm_search.forumid"));
			if(this.module!="search") this.doModuleInit("search");
			else this.doListInit();
			break;
		case "reset":
			d.forms["frm_search"].reset();
			this.page=this.pagenow=1;
			this.forumid=toInt($f.getValue("frm_search.forumid"));
			this.doModuleInit("search");
			break;
	}
	if(t=="process"){
		
	}
	return false;
}

forum.search.doSearchSelectForum=function(){
	if(!forum.tableClass){
		appChannel.addEvent("config.load","forum.search.doSearchSelectForum()");
		forum.doLoad();
		return;
	}
	var o=$o($f.o("frm_search._forumid"));
	if(o){
		if(o.att("_init")) return;
		o.att("_init","yes");
		o.bindEvent("change",function(){$f.v("frm_search.forumid",$f.v("frm_search._forumid"));});
	}
	var sel=$f.oe("frm_search._forumid");
	if(sel){
		forum.tableClass.doItemBegin();
		for(var t=0;t<forum.tableClass.getRow();t++){
			var tit=forum.tableClass.getItemValue("name");
			var isSelected=false;
			for(var l=1;l<forum.tableClass.getItemValueInt("levelid");l++){tit="  "+tit;}
			sel.addItem(forum.tableClass.getItemValue("id"),tit,isSelected);
			forum.tableClass.doItemMove();
		}
	}
}

forum.search.doSearchDestory=function(){
	if(this.module!="search") $oo("module-search").hide();
}

forum.search.getSearchField=function(k,t){
	var re="";
	if(this.module=="search"){
		switch(k){
			case "username": re=$f.getValue("frm_search.username"); break;
			case "keyword": re=$f.getValue("frm_search.keyword"); break;
			case "sea_term": re=$f.getValue("frm_search.sea_term"); break;
		}
	}
	if (t==1) re=dcs.url.toEncode(re);
	return re;
}


//########################################
//########################################
forum.search.doDefineInit=function(){
	var n;
	n=toInt(dcs.cookies.getValue("forum.search.listnum."+this.modules[this.module]["define"]));
	if(this.isDefineListnum(n)) this.defines[this.modules[this.module]["define"]]["listnum.define"]=n;
	$f.setValue("frm_define.listnum-list",this.defines[this.modules[this.module]["define"]]["listnum.define"]);
}

forum.search.doDefineParse=function(t){
	var n;
	switch(t){
		case "clear":
			this.modules["list"]["listnum.define"]=this.defines[this.modules[this.module]["define"]]["listnum"]; $f.setValue("frm_define.listnum-list",this.defines[this.modules[this.module]["define"]]["listnum.define"]); dcs.cookies.setValue("forum.search.listnum.list","","yes");
			break;
		default:
			n=toInt($f.getValue("frm_define.listnum-list"));
			if (this.isDefineListnum(n) && n!=this.modules["list"]["listnum.define"]) { this.defines[this.modules[this.module]["define"]]["listnum.define"]=n; dcs.cookies.setValue("forum.search.listnum.list",n,"yes"); }
			break;
	}
	$oo("module-define-body").hide();
	$oo("module-define-saveing").show();
	this.doModuleRefurbish();
	$oo("module-define-saveing").hide();
	$oo("module-define-succeed").show();
}

forum.search.isDefineListnum=function(n) { return (n>4 && n<101); }


//########################################
//########################################
forum.search.doListInit=function(n){
	var k=this.defines[this.modules[this.module]["define"]]["template.key"];
	this.oPaging=new VDCS.DTML.Paging();
	this.oList=new VDCS.DTML.ListBox();
	this.oList.doInit({"body":"module-"+k+"-Body","items":"module-"+k+"-Items","paging":"module-"+k+"-paging","item":"module-"+k+"-ItemTemplet","itemno":"module-"+k+"-Itemno","script":"module-"+k+"-ItemScript","loading":"module-"+k+"-Loading","scriptloader":"module-"+k+"-ScriptLoader"});
	this.doListProcess(n);
}

forum.search.doListProcess=function(n){
	this.doPagingInit("clear");
	this.doStatInit("clear");
	if(n) this.oList.doUpdateItems("init",1);
	n=toInt(n); if(n<1) n=1;
	this.page=n;
	var tmpURL=this.getDataURL();
	tmpURL=rd(tmpURL,"module",this.module);
	tmpURL=rd(tmpURL,"forumid",this.forumid);
	tmpURL=rd(tmpURL,"username",this.getSearchField("username",1));
	tmpURL=rd(tmpURL,"keyword",this.getSearchField("keyword",1));
	tmpURL=rd(tmpURL,"sea_term",this.getSearchField("sea_term",1));
	tmpURL=rd(tmpURL,"page",n);
	tmpURL=rd(tmpURL,"listnum",this.defines[this.modules[this.module]["define"]]["listnum.define"]);
	$oo("var-url").html(tmpURL);
	if($o("module-resource-url")) $o("module-resource-url").href=tmpURL;
	this.oList.setDataURL(tmpURL);
	this.oList.addEvent("end.once","forum.search.doListPaging("+n+")");
	this.oList.addEvent("end.once","forum.search.doStatShow()");
	this.oList.addEvent("end.once","forum.search.doListComplete()");
	this.execProcess=setTimeout("forum.search.doListParse()",100);
	//this.oList.testXML=function(xml){alert(xml);};
}

forum.search.doListParse=function(){
	this.oList.doParse(0.5);
	this.execProcess=null;
}

forum.search.doListComplete=function(){
	this.oList.setMap(null);
}

forum.search.doListPaging=function(n){
	n=toInt(n); if(n<1) n=1;
	this.oPaging.setPage(n);
	this.oPaging.setPageNum(5);
	this.oPaging.setListNum(this.modules[this.module]["listnum.define"]);
	this.oPaging.setDataCfg("url","javascript:forum.search.doPagingClick('{$page}');");
	this.oPaging.setTotal(this.oList.treeVar.getItemInt("paging.total"));
	this.oPaging.doParse();
	$oo("module-paging").html(this.oPaging.toString());
}


//########################################
//########################################
forum.search.doPagingInit=function(t) { $oo("module-paging").html(""); }

forum.search.doPagingClick=function(n) { this.pagenow=n; this.doListProcess(n); }


//########################################
//########################################
forum.search.doStatInit=function(t){
	$oo("module-stat-query").html(0);
	$oo("module-stat-exectime").html(0);
	$oo("module-stat").hide();
}

forum.search.doStatShow=function(){
	$oo("module-stat").show();
	$oo("module-stat-query").html(this.oList.treeVar.getItemInt("_stat.query"));
	$oo("module-stat-exectime").html(this.oList.treeVar.getItem("_stat.exectime"));
}

