var fstrs=new Array();
var arrClass=new Array();
var ClassDisplayMode=0;
var LevelCount=4;
var CurFcid=null;
var c_fcid=0;
var c_cid=1;
var c_cname=2;
var opt,nav,SelectedClassID,zjlistSelect,btnSelector,ClassTable,ClassTableTitle,ClassTableContent;
function UseNewClassMode(mode){
if(!mode || mode==1){
for(var i=0;i<LevelCount;i++){
document.write("<SELECT name='cSelect"+i.toString()+"' rel='" +i.toString()+ "' id='cSelect"+i.toString()+"' size='12' style='display:none; margin-right:10px;'></SELECT>");
}
G("classopt").style.display="none";
ClassDisplayMode=1;
}else if(mode==2){
G("classopt").style.display="none";
var navObj=$("#classnav");
var navText=navObj.text();
navObj.empty();
navObj.append("<input type='button' value='" +navText+ "' id='selector' /><div id='cTable' style='display:none;'><div class='title'><a href='#' onclick='ClassTable.hide(); btnSelector.show(0); return false;' class='close'>×</a><span id='cTableTitle'></span></div><ul id='cTableContent'></ul><div style='clear:both;'></div></div>");
btnSelector=$("#selector");
ClassTable=$("#cTable");
ClassTableTitle=$("#cTableTitle");
ClassTableContent=$("#cTableContent");
btnSelector.click( function(){EchoClass_2();});
ClassDisplayMode=2;
}
}
function ChangeLocation(selid,level){
opt=G("classopt");
nav=G("classnav");
SelectedClassID=G("SelectedClassID");
zjlistSelect=$("#zjlist");
InitClasses();
if(ClassDisplayMode==0){
return ChangeLocation_0(selid,level);
}else if(ClassDisplayMode==1){
return ChangeLocation_1(selid,level);
}else if(ClassDisplayMode==2){
return ChangeLocation_2(selid,level);
}
}
function EchoClass_0(cid,selid){
var arr,fcidOfList;
var bShowBack=false;
var iIndex=-1;
opt.options.length=0;
opt.selectedIndex=-1;
if(HaveSubClass(cid)){
fcidOfList=cid;
}else{
selid=cid;
fcidOfList=GetFatherID(cid);
}
var c;
var clist;
for(var i=0;i<arrClass.length;i++){
arr=arrClass[i];
if(arr[c_fcid]==fcidOfList){
if(iIndex==-1 && fcidOfList>0){
bShowBack=true;
iIndex++;
opt.options.length=1;
opt.options[0].value=GetFatherID(fcidOfList);
opt.options[0].text="*** 返回上级分类 ***";
opt.options[0].style.color="blue";
}
iIndex++;
opt.options.length=iIndex+1;
opt.options[iIndex].value=arr[c_cid];
opt.options[iIndex].text=arr[c_cname];
if(arr[c_cid]==selid) opt.selectedIndex=iIndex;
}
}
if(iIndex>-1 && !bShowBack){try{opt.options[0].style.color="";}catch(e){}}
return (fcidOfList==cid);
opt.hideFocus=false;
opt.selectedIndex=-1;
opt.options[0].selected=false;
}
function ChangeLocation_0(selid,level){
var SelLeastC=false;
if(typeof(selid)=="undefined"){
if(opt.selectedIndex==-1) return false;
var cid=opt[opt.selectedIndex].value;
var topic=opt[opt.selectedIndex].text;
var fid;
if(topic=="*** 返回上级分类 ***"){
EchoClass_0(cid,0);
}else{
if(EchoClass_0(cid,0)){
fstrs.push(cid);
}else{
SelLeastC=true;
}
}
}else{
var cid=selid;
var topic=GetClassName(selid);
if(HaveSubClass(cid)==false){
SelLeastC=true;
EchoClass_0(GetFatherID(cid),cid);
}else{
EchoClass_0(cid,0);
}
}
SelectedClassID.value=cid;
Initfstr(cid);
var s="";
var cname;
for(var i=0;i<fstrs.length;i++){
cname=GetClassName(fstrs[i]);
if(!cname)cname="分类名称未知"
s=s+"<a href='javascript:ChangeLocation_0(" + fstrs[i] + ");'>" + cname + "</a> >> ";
}
if(SelLeastC==true)s=s+topic;
nav.innerHTML=s;
zjlistSelect.focus(function(){
refreshZjlist(cid);
});
}
function selectOption_1(level,fcid,cid){
var opt=G('cSelect'+level);
if(!opt){hideClass(level);return false;}
var arr,iIndex=-1;
opt.options.length=0;
opt.selectedIndex=-1;
for(var i=0;i<arrClass.length;i++){
arr=arrClass[i];
if(arr[c_fcid]==fcid){
iIndex++;
opt.options.length=iIndex+1;
opt.options[iIndex].value=arr[c_cid];
opt.options[iIndex].text=arr[c_cname];
if(arr[c_cid]==cid) opt.selectedIndex=iIndex;
}
}
if(opt.options.length>0){
try{opt.options[0].style.color="";}catch(e){}
if(opt.style.display=="none") opt.style.display="";
return true;
}else{
hideClass(level);
return false;
}
}
function ChangeLocation_1(selid,level){
if(SelectedClassID) SelectedClassID.value=selid;
var curLevel=0;
if(typeof(level)=="undefined"){
if(typeof(selid)=="number" && selid>0){
Initfstr(selid);
if(fstrs.length>0 && fstrs[fstrs.length-1]!=selid) fstrs.push(selid);
for(var i=1;i<fstrs.length;i++){
if(!selectOption_1(i-1,fstrs[i-1],fstrs[i])) return false;
}
curLevel=fstrs.length-1;
}else{
selid=0;
if(!selectOption_1(0,0,0)) return false;
curLevel++;
}
}else{
selectOption_1(level,GetFatherID(selid),selid);
curLevel=level;
curLevel++;
}
if(selid>0 && HaveSubClass(selid)){
selectOption_1(curLevel,selid,0);
curLevel++;
}
hideClass(curLevel);
zjlistSelect.focus(function(){
refreshZjlist(selid);
});
}
function EchoClass_2(cid){
var arr,fcidOfList;
if(typeof(cid)=="undefined") cid=$("#SelectedClassID").val();
if(HaveSubClass(cid)){
fcidOfList=cid;
}else{
fcidOfList=GetFatherID(cid);
}
if(CurFcid !=fcidOfList){
var c,id;
var clist="";
for(var i=0;i<arrClass.length;i++){
arr=arrClass[i];
if(arr[c_fcid]==fcidOfList){
id=arr[c_cid];
c="<li><a href='#" +id+ "' rel='" +id+ "' onclick='ChangeLocation_2(" +id+ "); return false;'";
if(id==cid){
c+=" class='sel'";
}
c+=">" +arr[c_cname]+ "</a></li>";
clist+=c;
}
}
Initfstr(cid);
var sLinks="";
var cname;
for(var i=0;i<fstrs.length;i++){
cname=GetClassName(fstrs[i]);
if(!cname)cname="分类名称未知"
sLinks+="<a href='javascript:ChangeLocation_2(" + fstrs[i] + ");'>" + cname + "</a> >> ";
}
sLinks+="<span id='TheLeastC'>";
if(fcidOfList!=cid) sLinks+=GetClassName(cid);
sLinks+="</span>"
ClassTableTitle.html(sLinks);
ClassTableContent.html(clist);
}else if (fcidOfList!=cid){
cname=GetClassName(cid);
$("#TheLeastC").text(cname);
$("#cTableContent a.sel").attr("class","");
$("#cTableContent a[rel='" +cid+ "']").attr("class","sel");
}
CurFcid=fcidOfList;
var sTexts=ClassTableTitle.text();
sTexts=sTexts.replace("顶级分类 >> ", "");
if(sTexts=="") sTexts="请选择问题分类"; else sTexts+=" （点击可修改）";
btnSelector.val(sTexts);
btnSelector.hide();
ClassTable.show(0);
}
function ChangeLocation_2(selid,level)
{
SelectedClassID.value=selid;
if(ClassTable && ClassTable.css("display")!="none"){
EchoClass_2(selid);
}else if(selid){
var sTexts=GetFullPathOf(selid);
sTexts=sTexts.replace("顶级分类 >> ", "");
if(sTexts=="") sTexts="请选择问题分类"; else sTexts+=" （点击可修改）";
btnSelector.val(sTexts);
}
zjlistSelect.focus(function(){
refreshZjlist(selid);
});
}
function SearchClassOf(SearchInput)
{
hideClass(0);
var optMain=G("classopt");
var s=SearchInput.value;
if(!s){
optMain.style.display="none";
ChangeLocation(0);
return true;
}
InitClasses();
var arr;
var iIndex=-1;
optMain.options.length=0;
optMain.selectedIndex=-1;
SelectedClassID.value=0;
for(var i=0;i<arrClass.length;i++){
arr=arrClass[i];
if(arr[c_cname].indexOf(s)!=-1){
iIndex++;
optMain.options.length=iIndex+1;
optMain.options[iIndex].value=arr[c_cid];
optMain.options[iIndex].text=GetFullPathOf(arr[c_cid]);
}
}
if(optMain.options.length==0){
optMain.options.length=1;
optMain.options[0].value=0;
optMain.options[0].text="没找到相关分类，返回顶级分类";
optMain.options[0].style.color="blue";
optMain.onchange=optMain.onclick=function(){
SearchInput.value="";
optMain.style.display="none";
ChangeLocation_1();
};
}else{
optMain.onchange=optMain.onclick=function(){
var selIdx=this.selectedIndex;
if(selIdx==-1){
SelectedClassID.value=0;
}else{
SelectedClassID.value=this.options[selIdx].value;
}
};
}
optMain.style.display="";
zjlistSelect.focus(function(){
refreshZjlist(0);
});
return true;
}
function InitClasses(){
if(arrClass.length>0) return true;
this.addc=function(id){
try{
var cstr=eval("c"+id);
if(cstr){
var cs=cstr.split(",");
for(var i=0;i<cs.length;i++){
var c=cs[i];
var carr=c.split(":");
if(carr.length==2){
arrClass.push( new Array(id,parseInt(carr[0],10),carr[1]) );
addc( parseInt(carr[0],10) );
}
}
}
}catch(e){}
};
this.initClassSelect=function(){
var aSelect
for(var i=0;i<LevelCount;i++){
aSelect=G("cSelect"+i.toString());
if(aSelect) aSelect.onchange=function(){ChangeLocation_1(this.value,this.id.substring(7,8))};
}
};
addc(0);
if(ClassDisplayMode==1) this.initClassSelect();
}
function Initfstr(cid){
var arr,id,fid;
fstrs.splice(0,fstrs.length);
id=cid;
while(id>0){
fid=GetFatherID(id);
if(fid>0){
id=fid;
fstrs.unshift(fid);
}else{
break;
}
}
if(HaveSubClass(cid)==true) fstrs.push(cid);
try{
if(fstrs.length==0 || fstrs[0]!=0) fstrs.unshift(0);
}catch(e){
fstrs.unshift(0);
}
}
function GetClassName(cid){
if(cid==0) return "顶级分类";
var arr,cs,c;
for(var i=0;i<arrClass.length;i++){
arr=arrClass[i];
if(arr[c_cid]==cid) return arr[c_cname];
}
return "";
}
function GetFatherID(cid){
if(cid==0) return "顶级分类";
var arr,cs,c;
for(var i=0;i<arrClass.length;i++){
arr=arrClass[i];
if(arr[c_cid]==cid) return arr[c_fcid];
}
return 0;
}
function HaveSubClass(cid){
var arr;
for(var i=0;i<arrClass.length;i++){
arr=arrClass[i];
if(arr[c_fcid]==cid) return true;
}
return false;
}
function hideClass(FromLevel){
var o;
for(var i=FromLevel;i<LevelCount;i++){
o=G('cSelect'+i.toString());
if(o) o.style.display='none';
}
}
function GetFullPathOf(cid){
var fid,fname,fnames;
this.SearchFatherClass=function(id){
var arr;
for(var i=0;i<arrClass.length;i++){
arr=arrClass[i];
if(arr[c_cid]==id){
fid=arr[c_fcid];
fname=GetClassName(fid);
}
}
}
fnames="";
if(cid){
fnames=GetClassName(cid);
if(!fnames) return "";
}
while(cid>0){
fid=0;
fname="";
SearchFatherClass(cid);
cid=fid;
if(fid && fname){
fnames=fname+" >> "+fnames;
}
}
return fnames;
}
function refreshZjlist(cid){
if(!zjlistSelect) return;
if(!cid){
zjlistSelect.empty();
return ;
}
if(zjlistSelect.length==0 || getUserID()==0){
zjlistSelect=$("select:contains('不指定专家')");
}
if(zjlistSelect.length>0){
$.ajax({
url:weburl+"js/ajaxServer.asp?lei=4&cid="+cid.toString(),
async:false,
cache:true,
success: function(html){
zjlistSelect.empty();
zjlistSelect.html(html);
}
});
}
}
function check_askform(frm,reserv1)
{
if(frm==window){
frm=G("ftiwen");
if(!frm)frm=G("askForm");
}
if(frm.title.value=="" || frm.title.value.length ==0){
alert("请输入问题标题");frm.title.focus();return false;
}
var len=frm.title.value.length;
if(len<4){
ls_str="问题标题不详细，请重新输入";
alert(ls_str);
frm.title.focus();
return false;
}
if (len>100){
ls_str="问题标题字数限定在100个汉字以内，请缩短提问字数";
frm.title.focus();
return false;
}
var co=StripHtml(frm.content.value);
var content_length=co.length;
if(content_length<5){
ls_str="请填写问题说明，说明越详细，解答就越有针对性";
alert(ls_str);
return false;
}
if ( content_length >4000){
ls_str="问题说明字数限定在4000字以内，请缩短字数";
alert(ls_str);
frm.content.focus();
return false;
}
var cid=frm.SelectedClassID.value;
if(cid=="" || cid=="0"){
alert("请选择问题分类"); return false;
}
var uid=getUserID();
if(uid==0){
var sName="";
var sPwd="";
try{
var sName=frm.UserName.value;
var sPwd=frm.password.value;
}catch(e){}
if (sName=="" || sPwd==""){
if(EnableGuestAsk==1){
if(!confirm("您还没有登陆，\n登陆用户可设置悬赏分，激励更多人回答您的问题，\n建议您先去注册一下。\n\n继续使用游客身份匿名提问吗？")) return false;
}else{
ShowLogin('请登录后再次提交问题', '3');
return false;
}
}
}
if(EnableAntiSpam==1){
PrepareAntiSpam(frm,"ASK");
if( NeedVCode(frm,"ask") ) return false;
}
}