﻿// JScript File

//-------------------------------------------------------------------------
//名  称： CoreBBS 名字空间
//功  能：  实现表行数据，表单(Form)数据可实例化，方便表述业务逻辑。并提供系列方法，配置项。
//返回值：
//参  数：
//-------------------------------------------------------------------------
var CoreBBS = new Object();
CoreBBS.ForumsType = {ForumsList:1,ForumsFAQ:2,ForumsSupport:3};
CoreBBS.Post = {
    PostType:{AddNew:1,Edit:2,Reply:3},
    ActionType:{SptInsert:"SptInsert",SptInsertPost:"SptInsertPost",SptSelect:"SptSelect",SptSelectAppend:"SptSelectAppend",SptUpdate:"SptUpdate",SptDelete:"SptDelete",SptDeletePost:"SptDeletePost",FAQInsertUpdate:"FAQInsertUpdate",FAQSelect:"FAQSelect",FAQDelete:"FAQDelete"}
};
CoreBBS.Error = {LastError:"",Count:0}
CoreBBS.Content = {ForumsType:CoreBBS.ForumsType.ForumsList,_data:null,GetInstance:function(){if(this._data==null) this._data=new FCoreTCIT.Tools.Dictionary();return this._data;}};
CoreBBS.Functions = {
    GetBlinkText: function(srcText){return (CoreBBS.Page.SearchText.trim().length <= 0) ? srcText : srcText.replace(new RegExp(CoreBBS.Page.SearchText, "ig"),"<span style='color:red;'>" + CoreBBS.Page.SearchText + "</span>");},
    ParseFloat: function(value, fractionDigits){value = parseFloat(value); if (parseInt(value) != value && fractionDigits >= 0) value = value.toFixed(fractionDigits); return value;},
    ReLoad: function(text){if(text!=null)alert(text); window.location.reload();}
};



/// <summary>
///  Step 0:不能修改次序。或中间添加值类型成员。
/// </summary>
CoreBBS.FAQ = function(id,typeid,homeSort,sortIndex,subject,subject_e,content,content_e) { this.ActionID = 0; this.ID = id; this.ForumTypeID = typeid; this.HomeSortIndex = homeSort; this.SortIndex = sortIndex; this.Subject = subject; this.SubjectE = subject_e; this.Content = content; this.ContentE = content_e; this.Refresh = false; this.BodyArea = null; this.BodyAreaE = null; this.CultureBodyArea = null};
CoreBBS.FAQ.prototype.getSubject = function(){return (this.Subject || this.SubjectE || "");};
CoreBBS.FAQ.prototype.getContent = function(){return (this.Content || this.ContentE || "");};
CoreBBS.FAQ.prototype.getCultureBodyArea = function(){if(this.CultureBodyArea==null){this.CultureBodyArea = FCoreTCIT.PageInfo.IsDefaultCulture ? this.BodyArea : this.BodyAreaE;} return this.CultureBodyArea;};
CoreBBS.FAQ.prototype.toString = function (){return this.ID+CoreBBS.Page.CallBackSplit+this.ForumTypeID+CoreBBS.Page.CallBackSplit+this.Subject+CoreBBS.Page.CallBackSplit+this.SubjectE+CoreBBS.Page.CallBackSplit+this.Content+CoreBBS.Page.CallBackSplit+this.ContentE;};
CoreBBS.FAQ.prototype.toArray = FCoreTCIT.Function.__toArrayHandler;
CoreBBS.FAQ.prototype.equals = function (obj,ignoreCulture){if(obj==null)return false;if(this.constructor!=obj.constructor)return false;ignoreCulture=((ignoreCulture!=window.undefined)&&ignoreCulture);for(key in this){if((FCoreTCIT.Function.isSafeType(this[key])||FCoreTCIT.Function.isSafeType(this[key],"undefined")||FCoreTCIT.Function.isSafeType(obj[key],"undefined"))&&this[key]!=obj[key]){if(ignoreCulture){if((FCoreTCIT.PageInfo.IsDefaultCulture&&(key=="SubjectE"||key=="ContentE"))||(!FCoreTCIT.PageInfo.IsDefaultCulture&&(key=="Subject"||key=="Content"))){continue;}return false;}return false;}} return true;}

CoreBBS.Support = function(id,typeid,subject,content) { this.ActionID = 0; this.ID = id; this.ForumTypeID = typeid; this.Subject = subject; this.Content = content; this.BodyArea = null;};
CoreBBS.Support.prototype.toString = function (){return this.ID+CoreBBS.Page.CallBackSplit+this.ForumTypeID+CoreBBS.Page.CallBackSplit+this.Subject+CoreBBS.Page.CallBackSplit+this.Content;};
CoreBBS.Support.prototype.toArray = FCoreTCIT.Function.__toArrayHandler;
CoreBBS.Support.prototype.equals = function (obj,ignoreAction){if(obj==null)return false;if(this.constructor!=obj.constructor)return false;ignoreAction=((ignoreAction!=window.undefined)&&ignoreAction);for(key in this){if((FCoreTCIT.Function.isSafeType(this[key])||FCoreTCIT.Function.isSafeType(this[key],"undefined")||FCoreTCIT.Function.isSafeType(obj[key],"undefined"))&&this[key]!=obj[key]){if(ignoreAction){if(key=="ActionID"){continue;}}return false;}} return true;}


CoreBBS.Config = {
    DefaultCulture:FCoreTCIT.PageInfo.DefaultCultureName,
    MinContentLength: 10, MaxContentLength: 100000,
    ViewerTablePrefix:"tableViewer",
    ForumsKey:"a",ForumsQueryKey:"a1",ForumsFAQueryKey:"a2",
    ImageCollapseAll:"4.gif",
    ImageExpandAll:"3.gif",
    ImageCollapseChar:'-',
    ImageExpandChar:'+'
};

CoreBBS.Resource = {Error:{
    PostIDInvalid:"无效的postId！"
}};

CoreBBS.UI = {Text:{
    PageRetry:"页面载入中，请稍后重试！",
    PageLoading:"页面载入中，请等待。。。",
    PostAddNewTitle:"创建主题",PostEditTitle:"修改主题",PostReplyTitle:"回复主题",
    ExpandAll:"全部展开",CollapseAll:"全部收缩",
    BeforeDelete:"确认删除？",
    UnknowDataFormat:"返回的数据格式未知！",
    OperateSuccess:"操作成功！",OperateFailed:"操作失败！",OperationDenied:"对不起，当前会话已经过期或您的权限不足！",OperationInvalid:"<font color='red'>对不起，当前请求无效，可能是数据未找到或已删除，请刷新该页！</font>",ConfirmReloadWhenOperationInvalid:"对不起，当前请求无效，可能是数据未找到或已删除，确认刷新该页？",
    PageIndexChangeNeedless:"当前请求页仅一页，未做跳转。",
    PageIndexFormatUnknow:"当前请求页无效，确认跳转到首页？",
    PageIndexOverflow:"当前请求页超出页有效范围，确认跳转到末页？",
    AltView:"View",AltEdit:"Modify",AltDelete:"Delete"
}};







//==========================================================================
//-------------------------------------------------------------------------
//名  称： OpenInputForm / OpenSupportForm / OpenSupportReplyForm / OpenFAQtForm  //:Step 1
//功  能：	打开输入窗
//返回值：	void
//参  数：	blnKeepFormData:  是否保存原窗体数据
//-------------------------------------------------------------------------
function SetInputFormLocation(tagPostForm, x, y)
{
    tagPostForm.style.top = (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + 100 + "px";
    tagPostForm.style.left = (document.body.clientWidth - tagPostForm.style.pixelWidth) / 2 + "px";
    setMask();
}
function OpenInputForm(objPost)
{
    if (!(CoreBBS.Page.isReadyFCK(GetPostFCK(CoreBBS.SptPost)) &&  CoreBBS.Page.isReadyFCK(GetPostFCK(CoreBBS.FAQPost)) && CoreBBS.Page.isReadyFCK(GetPostFCK(CoreBBS.FAQPost, true)) ) )
    {
        alert(CoreBBS.UI.Text.PageRetry);
        return false;
    }
    //if (FCoreTCIT.PageInfo.IsIE) {$get(objPost.PostFormPanelID).fireEvent("onclick");} else {FCoreTCIT.Events.FireMouseEvent($get(objPost.PostFormPanelID), "click");}
    SetInputFormPostState(objPost, false);

    var post = $get(objPost.PostFormPanelID); if (post == null) return false;
    InitWebScript(objPost, true);
    post.style.display = "block";
    SetInputFormLocation(post, 10, 10);
    return true
}
function CloseInputForm(objPost)
{
    var post = $get(objPost.PostFormPanelID); if (post == null) return;
    FCKeditorAPI.__Instances[objPost.PostContent].HasFocus=false;FCKeditorAPI.__Instances[objPost.PostContent].Events.FireEvent("OnBlur");
    //$get(objPost.CloseButton).focus();
    post.style.display = "none";
    removeMask();
    DisposeWebScript(objPost);
}
function OpenSupportForm(blnKeepFormData)
{
    if (OpenInputForm(CoreBBS.SptPost))
    {
        if (!blnKeepFormData) ClearSupportForm();
        $get(CoreBBS.SptPost.CloseButton).focus();
    }
}
function OpenSupportReplyForm()
{
    if (OpenInputForm(CoreBBS.SptPost))
    {
        ClearSupportForm();
        var _fck = GetPostFCK(CoreBBS.SptPost); if (_fck.EditMode==0) try{_fck.EditorDocument.body.setActive();}catch(e){} else _fck.Focus();
    }
}
function OpenFAQtForm(blnKeepFormData)
{
    if (OpenInputForm(CoreBBS.FAQPost))
    {
        if (!blnKeepFormData) ClearFAQForm();
        SetFAQRefresh(true);
        $get(CoreBBS.FAQPost.CloseButton).focus();
    }
}

//-------------------------------------------------------------------------
//名  称： InitSupportFormData / ReplySupportForm / InitFAQFormData
//功  能：	初始化输入窗数据
//返回值：	void
//参  数：	typeid:   -1:默认值;0:清除;n:具体值.
//参  数：	subject:  主题。
//参  数：	typeid:   内容。
//-------------------------------------------------------------------------
function InitSupportFormData(sptid, typeid, subject, content)
{
    //Open需要加在这里，否则Paste的时候会有两条。
    if (OpenInputForm(CoreBBS.SptPost))
    {
        SetForumsTitle(CoreBBS.SptPost, CoreBBS.Post.PostType.Edit, sptid);
        SetForumsDDlSelectedValue(CoreBBS.SptPost, typeid);
        SetSptSubject(subject);
        SetStpContent(content);
        $get(CoreBBS.SptPost.CloseButton).focus();
    }
}
function ReplySupportForm(sptid, typeid, subject)
{
    //Open需要加在这里，否则Paste的时候会有两条。
    if (OpenInputForm(CoreBBS.SptPost))
    {
        SetForumsTitle(CoreBBS.SptPost, CoreBBS.Post.PostType.Reply, sptid);
        SetForumsDDlSelectedValue(CoreBBS.SptPost, typeid, true);
        SetSptSubject(subject, true);
        SetStpContent("");
        var _fck = GetPostFCK(CoreBBS.SptPost); if (_fck.EditMode==0) try{_fck.EditorDocument.body.setActive();}catch(e){} else _fck.Focus();
    }
}
function InitFAQFormData(faqid, typeid, homeSortIndex, sortIndex, subject, subject_e, content, content_e)
{
    //Open需要加在这里，否则Paste的时候会有两条。
    if (OpenInputForm(CoreBBS.FAQPost))
    {
        SetForumsTitle(CoreBBS.FAQPost, CoreBBS.Post.PostType.Edit, faqid);
        SetForumsDDlSelectedValue(CoreBBS.FAQPost, typeid);
        SetFAQSortIndex(
            homeSortIndex.length == 0 ? "" : CoreBBS.Functions.ParseFloat(homeSortIndex, 2),
            sortIndex.length == 0 ? "" : CoreBBS.Functions.ParseFloat(sortIndex, 2)
        );
        SetFAQSubject(subject, subject_e);
        SetFAQContent(content, content_e);
        SetFAQRefresh(true);
        $get(CoreBBS.FAQPost.CloseButton).focus();
    }
}
//-------------------------------------------------------------------------
//名  称： ClearSupportForm / ClearFAQForm
//功  能：	清除输入窗数据
//返回值：	void
//参  数：	null
//-------------------------------------------------------------------------
function ClearSupportForm()
{
    SetForumsTitle(CoreBBS.SptPost, CoreBBS.Post.PostType.AddNew);
    SetForumsDDlSelectedValue(CoreBBS.SptPost, "", false);
    SetSptSubject("", false);
    SetStpContent("");
}
function ClearFAQForm()
{
    SetForumsTitle(CoreBBS.FAQPost, CoreBBS.Post.PostType.AddNew);
    SetForumsDDlSelectedValue(CoreBBS.FAQPost, "", false);
    SetFAQSortIndex("", "");
    SetFAQSubject("", "");
    SetFAQContent("", "");
    SetFAQRefresh(false);
}
//-------------------------------------------------------------------------
//名  称： SetInputFormPostState
//功  能：	锁/解锁提交。
//返回值：	void
//参  数：	null
//-------------------------------------------------------------------------
function SetInputFormPostState(objPost, lockPost)
{
    if (lockPost)
    {
        $get(objPost.SubmitButton).setAttribute("disabled","disabled");
    }
    else
    {
        $get(objPost.SubmitButton).removeAttribute("disabled");
    }
}
//-------------------------------------------------------------------------
//名  称： SubmitSupportForm / SubmitFAQForm
//功  能：	提交窗口数据。
//返回值：	void
//参  数：	null
//-------------------------------------------------------------------------
function SubmitSupportForm()
{
    SetInputFormPostState(CoreBBS.SptPost, true);
    var sptPost = GetSupportDataInPostForm();
    var sptRow = GetSupportByViewTable(_getViewerTableByViewerTableID(sptPost.ID));
    if (sptPost.equals(sptRow, false))
    {
        ClearSupportForm();
        alert(CoreBBS.UI.Text.OperateSuccess);
        return;
    }

    // 这里执行数据有效性检查。
    if (!CoreBBS.SptPost.Validator.doValidate())
    {
        // OpenSupportForm(true);
        SetInputFormPostState(CoreBBS.SptPost, false);
        return;
    }

    switch (sptPost.ActionID)
    {
        case CoreBBS.Post.PostType.AddNew:
            var processor = new FCoreTCIT.Response.ResponseProcessor(_callbackhandler_SptInsert, sptPost, sptRow);
            FCoreTCIT.Request.ASynRequestServer(CoreBBS.Post.ActionType.SptInsert, sptPost.toArray(), processor);
            break;
        case CoreBBS.Post.PostType.Reply:
            var processor = new FCoreTCIT.Response.ResponseProcessor(_callbackhandler_SptInsertPost, sptPost);
            FCoreTCIT.Request.ASynRequestServer(CoreBBS.Post.ActionType.SptInsertPost, [sptPost.ID,sptPost.Subject,sptPost.Content], processor);
            break;
        case CoreBBS.Post.PostType.Edit:
            if (!CoreBBS.User.IsTaxFilingQAAdmin) return;
            break;
        default:
        {
            break;
        }
    }
}
function SubmitFAQForm()
{
    if (!CoreBBS.User.IsTaxFilingQAAdmin) return;
    SetInputFormPostState(CoreBBS.FAQPost, true);

    var faqPost = GetFAQDataInPostForm();
    var faqRow = GetFAQByViewTable(_getViewerTableByViewerTableID(faqPost.ID));
    if (faqPost.equals(faqRow)) //需要检测不同文化背景下的数据。所以总是回请服务器。返回 false;
    {
        ClearFAQForm();
        CloseInputForm(CoreBBS.FAQPost);
        alert(CoreBBS.UI.Text.OperateSuccess);
        return;
    }

    // 这里执行数据有效性检查。
    if (!CoreBBS.FAQPost.Validator.doValidate())
    {
        // OpenFAQtForm(true);
        SetInputFormPostState(CoreBBS.FAQPost, false);
        return;
    }

    var processor = new FCoreTCIT.Response.ResponseProcessor(_callbackhandler_FAQInsertUpdate, faqPost, faqRow);
    FCoreTCIT.Request.ASynRequestServer(CoreBBS.Post.ActionType.FAQInsertUpdate, faqPost.toArray(), processor);
}






//==========================================================================
//-------------------------------------------------------------------------
// Page BBs 初始化时运行的脚本。
function InitCoreBBSOnces()
{
    if (!CoreBBS.User.IsAuthenticated) HideNavigateSupportNode();
    SelecteNavigateCorrectNode();
    ReSetRecordCount(CoreBBS.Page.RecordCount, true, false);
    InitCoreBBSValidatorControlor();
    setTimeout("OpenDefaultArticleByQueryKey();", 100);
}
function InitCoreBBS()
{
    SetForumsTitle(CoreBBS.SptPost, CoreBBS.Post.PostType.AddNew);
    SetForumsTitle(CoreBBS.FAQPost, CoreBBS.Post.PostType.AddNew);

    if (CoreBBS.Page.ActivePanel.indexOf("ForumsList") > 0)
    {
        CoreBBS.Content.ForumsType = CoreBBS.ForumsType.ForumsList;

    }
    else if (CoreBBS.Page.ActivePanel.indexOf("ListSupport") > 0)
    {
        CoreBBS.Content.ForumsType = CoreBBS.ForumsType.ForumsSupport;

        InitCoreBBSSearchValidator();
        UpdateSupportListForumsName();
        ConfigPostListNavigate(CoreBBS.Page.RecordCount, true);
        SetBBSListRowTitleAttrib();
        if (!CoreBBS.User.IsTaxFilingQAAdmin)
        {
            HideControlsImage();
            if (CoreBBS.User.IsAuthenticated)
            {
                AdjustSupportListRowCellsWidth(CoreBBS.Page.ActivePanel);
            }
        }
        else
        {
            HideControlsImageByUserPermission();
        }
    }
    else if (CoreBBS.Page.ActivePanel.indexOf("ListFAQ") > 0)
    {
        CoreBBS.Content.ForumsType = CoreBBS.ForumsType.ForumsFAQ;

        InitCoreBBSSearchValidator();
        ReSetFAQListClientRowIndex();
        ConfigPostListNavigate(CoreBBS.Page.RecordCount, true);
        hideListNavigatePageIndex();
        HidePageIndexPanel();
        SetBBSListRowTitleAttrib();
        if (!CoreBBS.User.IsTaxFilingQAAdmin)
        {
            HideBottomLine();
            HideControlsImage();
            AdjustFAQListRowCellsWidth(CoreBBS.Page.ActivePanel);
        }
        else
        {
            if (!IsInPermission(CoreBBS.Page.ForumsListID))
            {
                HideBottomLine();
            }
            HideFAQControlsImageByUserPermissionAndAutoAdjustCellsWidth();
        }
    }

    CoreBBS.Page.SearchText = "";
    if (CoreBBS.Page.IsSearchMode)
    {
        var searchText = $get(CoreBBS.Page.SearchTextBox).value || "";
        if (searchText.trim().length > 0)
        {
            CoreBBS.Page.SearchText = searchText;
            SetBBSListRowTitleBlink();
        }
    }
}
// Page BBs CallBack后初始化运行的脚本。
function InitCallBackClientScript(count, pageIndexEvent)
{
    ReSetRecordCount(count, true, pageIndexEvent);
    CoreBBS.Page.IsSearchMode = !$get(CoreBBS.Page.SearchCanelButton).getAttribute("disabled");
    InitCoreBBS();
}
function InitCoreBBSValidatorControlor()
{
    var _handler = function(obj, arg) {if(obj.common.target.value.length > CoreBBS.Config.MaxContentLength || obj.common.target.value.length < CoreBBS.Config.MinContentLength) return false; /*if((obj.common.target.value).length > CoreBBS.Config.MaxContentLength) return false;*/ return true;};

    CoreBBS.SptPost.Validator = new FCoreTCIT.Validate.Manager();
    CoreBBS.SptPost.Validator.validatorItems.push(new FCoreTCIT.Validate.RequiredFieldValidator(
        $get(CoreBBS.SptPost.PostForumsList),
        null,
        new FCoreTCIT.Validate.Resource(new FCoreTCIT.Validate.CssText("请选择主题分类"))
    ));
    CoreBBS.SptPost.Validator.validatorItems.push(new FCoreTCIT.Validate.RequiredFieldValidator(
        $get(CoreBBS.SptPost.PostSubject),
        null,
        new FCoreTCIT.Validate.Resource(new FCoreTCIT.Validate.CssText("请填写主题名称"))
    ));
    var fv = new FCoreTCIT.Validate.CustomValidator(
        $get(CoreBBS.SptPost.PostContent),
        null,
        new FCoreTCIT.Validate.Resource(new FCoreTCIT.Validate.CssText("请填写" + CoreBBS.Config.MinContentLength + "-" + CoreBBS.Config.MaxContentLength + "字以内的内容"))
    );
    fv.common.setObjectType(FCoreTCIT.Validate.ObjectType.FCKEditor);
    fv.handler = _handler;
    CoreBBS.SptPost.Validator.validatorItems.push(fv);
    CoreBBS.SptPost.Validator.registerEvnetHandler();

    CoreBBS.FAQPost.Validator = new FCoreTCIT.Validate.Manager();
    CoreBBS.FAQPost.Validator.validatorItems.push(new FCoreTCIT.Validate.RequiredFieldValidator(
        $get(CoreBBS.FAQPost.PostForumsList),
        null,
        new FCoreTCIT.Validate.Resource(new FCoreTCIT.Validate.CssText("请选择FAQ所属板块"))
    ));
    CoreBBS.FAQPost.Validator.validatorItems.push(new FCoreTCIT.Validate.RequiredFieldValidator(
        $get(CoreBBS.FAQPost.PostSubject),
        null,
        new FCoreTCIT.Validate.Resource(new FCoreTCIT.Validate.CssText("请填写中文问题"))
    ));
    CoreBBS.FAQPost.Validator.validatorItems.push(new FCoreTCIT.Validate.RequiredFieldValidator(
        $get(CoreBBS.FAQPost.PostSubjectE),
        null,
        new FCoreTCIT.Validate.Resource(new FCoreTCIT.Validate.CssText("请填写英文问题"))
    ));
    fv = new FCoreTCIT.Validate.CustomValidator(
        $get(CoreBBS.FAQPost.PostContent),
        null,
        new FCoreTCIT.Validate.Resource(new FCoreTCIT.Validate.CssText("请填写" + CoreBBS.Config.MinContentLength + "-" + CoreBBS.Config.MaxContentLength + "字以内的中文回答"))
    );
    fv.common.setObjectType(FCoreTCIT.Validate.ObjectType.FCKEditor);
    fv.handler = _handler;
    CoreBBS.FAQPost.Validator.validatorItems.push(fv);
    fv = new FCoreTCIT.Validate.CustomValidator(
        $get(CoreBBS.FAQPost.PostContentE),
        null,
        new FCoreTCIT.Validate.Resource(new FCoreTCIT.Validate.CssText("请填写" + CoreBBS.Config.MinContentLength + "-" + CoreBBS.Config.MaxContentLength + "字以内的英文回答"))
    );
    fv.common.setObjectType(FCoreTCIT.Validate.ObjectType.FCKEditor);
    fv.handler = _handler;
    CoreBBS.FAQPost.Validator.validatorItems.push(fv);
    fv = new FCoreTCIT.Validate.DigitalCompareValidator(
        $get(CoreBBS.FAQPost.PostSortIndex),
        null,
        new FCoreTCIT.Validate.Resource(new FCoreTCIT.Validate.CssText("请填写有效的排序号[0-9999999999]"))
    );
    fv.max = 9999999999;
    fv.min = 0;
    fv.fractionDigits = 2;
    CoreBBS.FAQPost.Validator.validatorItems.push(fv);
    fv = new FCoreTCIT.Validate.DigitalCompareValidator(
        $get(CoreBBS.FAQPost.PostHomeSortIndex),
        null,
        new FCoreTCIT.Validate.Resource(new FCoreTCIT.Validate.CssText("请填写有效的首页排序号[0-9999999999]")),
        false
    );
    fv.max = 9999999999;
    fv.min = 0;
    fv.fractionDigits = 2;
    CoreBBS.FAQPost.Validator.validatorItems.push(fv);
    CoreBBS.FAQPost.Validator.registerEvnetHandler();
}
function InitCoreBBSSearchValidator()
{
    CoreBBS.Page.Validator = new FCoreTCIT.Validate.Manager();
    //CoreBBS.Page.Validator.validatorItems.push(new FCoreTCIT.Validate.RequiredFieldValidator(
    //    $get(CoreBBS.Page.SearchTextBox),
    //    null,
    //    new FCoreTCIT.Validate.Resource(new FCoreTCIT.Validate.CssText("搜索词是必填项。"))
    //));
    var cv = new FCoreTCIT.Validate.CustomValidator(
        $get(CoreBBS.Page.SearchTextBox),
        null,
        new FCoreTCIT.Validate.Resource(new FCoreTCIT.Validate.CssText("请填写有效搜索词"),null,new FCoreTCIT.Validate.CssText("&nbsp;"))
    );
    cv.handler = function(obj, arg) {obj.common.target.value = obj.common.target.value.replace(/[\!-\/\:-\@\[-\`\{-\~]+/ig, "").trim(); return obj.common.target.value.length > 0;};
    CoreBBS.Page.Validator.validatorItems.push(cv);
    CoreBBS.Page.Validator.registerEvnetHandler();
}

// 设置蒙板
function setMask()
{
    var maskDiv  = $get(CoreBBS.Page.MaskDivID);
    if (maskDiv == null)
    {
        maskDiv = document.createElement("DIV");
        maskDiv.id                  = CoreBBS.Page.MaskDivID;
        maskDiv.style.top           = 0 + "px";
        maskDiv.style.left          = 0 + "px";
        maskDiv.style.zIndex        = 1000;
        maskDiv.style.position      = "absolute";
        maskDiv.style.background    = "#333333";
        if (FCoreTCIT.PageInfo.IsIE) {maskDiv.style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity=30)"; FCoreTCIT.Events.RegisterObjectEvent(maskDiv, ["contextmenu", function(){return false;}]);}
        else {maskDiv.style.opacity   = 0.3; maskDiv.setAttribute("oncontextmenu", "return false;");}
        document.body.appendChild(maskDiv);
    }

    maskDiv.style.width   = Math.max(document.body.clientWidth, document.body.scrollWidth) + "px";
    maskDiv.style.height  = Math.max(document.body.clientHeight, document.body.scrollHeight) + "px";
    maskDiv.style.display = "block";
}
// 取消蒙板
function removeMask()
{
    var maskDiv  = $get(CoreBBS.Page.MaskDivID);
    if (maskDiv == null) return;
    maskDiv.style.display = "none";
}
// 打开窗体时脚本。
function InitWebScript(objPost, blnKeepData)
{
    BuildDropDownListById(objPost.PostForumsList, blnKeepData);
    InitPostFormObjectEventOnce(objPost);
    InitPostFormObjectEvent(objPost);
}
// 关闭窗体时脚本。
function DisposeWebScript(objPost)
{
    RemovePostFormObjectEvent(objPost);
}
// 通过列表行获得faq对象
function GetFAQByViewTable(tagTable)
{
    if (tagTable == null) return null;
    var bbsContents = CoreBBS.Content.GetInstance();
    var id = _getViewerTableIdByViewerTable(tagTable);
    var title = tagTable.rows[0].cells[1].childNodes[0].getAttribute("title");// || tagTable.rows[0].cells[1].childNodes[0].innerHTML;
    var bodyArea = tagTable.rows[1].cells[1].childNodes[1].rows[1].cells[1];// FCoreTCIT.PageInfo.IsIE ? tagTable.rows[1].cells[1].childNodes[1].rows[1].cells[1] : tagTable.rows[1].cells[1].childNodes[1].rows[1].cells[1];
    var obj = new CoreBBS.FAQ(id, CoreBBS.Page.ForumsListID);
    obj.HomeSortIndex = tagTable.rows[0].cells[2].innerText || tagTable.rows[0].cells[2].textContent;
    obj.SortIndex = tagTable.rows[0].cells[3].innerText || tagTable.rows[0].cells[3].textContent;
    if (FCoreTCIT.PageInfo.IsDefaultCulture)
    {
        obj.Subject = title;
        obj.Content = bbsContents.exists(id) ? bbsContents.item(id) : bodyArea.innerHTML;
        obj.BodyArea = bodyArea;
    }
    else
    {
        obj.SubjectE = title;
        obj.ContentE = bbsContents.exists(id) ? bbsContents.item(id) : bodyArea.innerHTML;
        obj.BodyAreaE = bodyArea;
    }
    return obj;
}
// 通过列表行获得support对象
function GetSupportByViewTable(tagTable)
{
    if (tagTable == null) return null;
    var id = _getViewerTableIdByViewerTable(tagTable);
    var forumsId = tagTable.rows[0].cells[0].childNodes[1].value;
    var title = tagTable.rows[0].cells[1].childNodes[0].getAttribute("title");// || tagTable.rows[0].cells[1].childNodes[0].innerHTML;
    tagTable.rows[1].cells[0].childNodes[0].rows[0].cells[0].childNodes[1].innerHTML = title;
    var bodyArea = tagTable.rows[1].cells[0].childNodes[0].rows[1].cells[1];
    var obj = new CoreBBS.Support(id, forumsId, title, bodyArea.innerHTML);
    obj.BodyArea = bodyArea;
    obj.ActionID = CoreBBS.Post.PostType.Edit;
    return obj;
}
// 通过列表行获得faq/support对象。
function GetContentObjectByViewTable(tagTable)
{
    var contentObject = null;
    switch (CoreBBS.Content.ForumsType)
    {
        case CoreBBS.ForumsType.ForumsFAQ:
            contentObject = GetFAQByViewTable(tagTable);
            contentObject.getCultureBodyArea();
            break;
        case CoreBBS.ForumsType.ForumsSupport:
            contentObject = GetSupportByViewTable(tagTable);
            break;
        default:break;
    }
    return contentObject;
}
// 获取请求表单中的faq对象
function GetFAQDataInPostForm()
{
    var objData = new CoreBBS.FAQ();
    objData.ActionID      = parseInt($get(CoreBBS.FAQPost.ActionID).value);
    objData.ID            = parseInt($get(CoreBBS.FAQPost.PostID).value);
    objData.ForumTypeID   = $get(CoreBBS.FAQPost.PostForumsList).value;
    objData.HomeSortIndex = FCoreTCIT.Function.getSafeSqlParameterString($get(CoreBBS.FAQPost.PostHomeSortIndex).value);
    objData.SortIndex     = FCoreTCIT.Function.getSafeSqlParameterString($get(CoreBBS.FAQPost.PostSortIndex).value);
    objData.Subject       = FCoreTCIT.Function.getSafeSqlParameterString($get(CoreBBS.FAQPost.PostSubject).value);
    objData.SubjectE      = FCoreTCIT.Function.getSafeSqlParameterString($get(CoreBBS.FAQPost.PostSubjectE).value);
    GetPostFCK(CoreBBS.FAQPost).UpdateLinkedField();
    GetPostFCK(CoreBBS.FAQPost,true).UpdateLinkedField();
    objData.Content       = FCoreTCIT.Function.getSafeSqlParameterString(GetPostFCK(CoreBBS.FAQPost).GetHTML());
    objData.ContentE      = FCoreTCIT.Function.getSafeSqlParameterString(GetPostFCK(CoreBBS.FAQPost,true).GetHTML());
    objData.Refresh       = $get(CoreBBS.FAQPost.PostRefresh).checked;
    return objData;
}
// 获取请求表单中的support对象
function GetSupportDataInPostForm()
{
    var objData = new CoreBBS.Support();
    objData.ActionID    = parseInt($get(CoreBBS.SptPost.ActionID).value);
    objData.ID          = parseInt($get(CoreBBS.SptPost.PostID).value);
    objData.ForumTypeID = FCoreTCIT.Function.getSafeSqlParameterString($get(CoreBBS.SptPost.PostForumsList).value);
    objData.Subject     = FCoreTCIT.Function.getSafeSqlParameterString($get(CoreBBS.SptPost.PostSubject).value);
    GetPostFCK(CoreBBS.SptPost).UpdateLinkedField();
    objData.Content     = FCoreTCIT.Function.getSafeSqlParameterString(GetPostFCK(CoreBBS.SptPost).GetHTML());
    return objData;
}
// 设置表单标题；添加/修改状态；表单号。PostAddNewTitle:"创建主题",PostEditTitle:"修改主题"
function SetForumsTitle(objPost, editModel, postId)
{
    var spanTitle = $get(objPost.EditorTitle);
    if (spanTitle == null) return;

    if (editModel == CoreBBS.Post.PostType.Edit || editModel == CoreBBS.Post.PostType.Reply)
    {
        spanTitle.innerHTML = editModel == CoreBBS.Post.PostType.Edit ? CoreBBS.UI.Text.PostEditTitle : CoreBBS.UI.Text.PostReplyTitle;
        if (FCoreTCIT.Function.isSafeType(postId,"string"))
        {
            postId = parseFloat(postId); if (postId <= 0) {alert(CoreBBS.Resource.Error.PostIDInvalid); return;}
        }
        else if (!FCoreTCIT.Function.isSafeType(postId,"number") || postId <= 0)
        {
            alert(CoreBBS.Resource.Error.PostIDInvalid); return;
        }
        $get(objPost.PostID).value = postId;
        $get(objPost.ActionID).value = editModel;
    }
    else
    {
        // CoreBBS.Post.PostType.AddNew
        spanTitle.innerHTML = CoreBBS.UI.Text.PostAddNewTitle;
        $get(objPost.PostID).value = "0";
        $get(objPost.ActionID).value = CoreBBS.Post.PostType.AddNew;
    }
}
// 设置表单类型。
function SetForumsDDlSelectedValue(objPost, text, lockTag)
{
    SetDropDownListDefalutValue(objPost.PostForumsList, text, lockTag)
}
// 设置FAQ表单排序。
function SetFAQSortIndex(homeSortIndex, sortIndex)
{
    $get(CoreBBS.FAQPost.PostHomeSortIndex).value = homeSortIndex;
    $get(CoreBBS.FAQPost.PostSortIndex).value = sortIndex;
}
function SetSptSubject(text, lockTag)
{
    var txtSubject = $get(CoreBBS.SptPost.PostSubject);
    if (txtSubject == null) return;

    lockTag = (lockTag!=window.undefined && lockTag);
    if (lockTag){if (!txtSubject.getAttribute("disabled")) txtSubject.setAttribute("disabled", "disabled");}
    else{if (txtSubject.getAttribute("disabled")) txtSubject.removeAttribute("disabled");}

    txtSubject.value = text;

}
function SetFAQSubject(text, text_e)
{
    $get(CoreBBS.FAQPost.PostSubject).value = text;
    $get(CoreBBS.FAQPost.PostSubjectE).value = text_e;
}
function SetStpContent(text)
{
    if (CoreBBS.Page.isReadyFCK(GetPostFCK(CoreBBS.SptPost)))
    {
        try { GetPostFCK(CoreBBS.SptPost).SetHTML(text); } catch (e) {};
    }
}
function SetFAQContent(text, text_e)
{
    if (CoreBBS.Page.isReadyFCK(GetPostFCK(CoreBBS.FAQPost)))
    {
        try { GetPostFCK(CoreBBS.FAQPost).SetHTML(text); } catch (e) {};
    }
    if (CoreBBS.Page.isReadyFCK(GetPostFCK(CoreBBS.FAQPost, true)))
    {
        try { GetPostFCK(CoreBBS.FAQPost, true).SetHTML(text_e); } catch (e) {};
    }
}
// 设置表单提交后是否刷新服务器缓存
function SetFAQRefresh(bRefresh)
{
    $get(CoreBBS.FAQPost.PostRefresh).checked = bRefresh;
}
// 注册事件
function InitPostFormObjectEvent(objPost)
{
//    var imgClose = $get(objPost.CloseImageButton);
//    if (imgClose!=null)
//    {
//        FCoreTCIT.Events.RegisterObjectEvent(imgClose, ["click", objPost._CloseButtonClickHandler]);
//    }
}
function RemovePostFormObjectEvent(objPost)
{
    var imgClose = $get(objPost.CloseImageButton);
    if (imgClose!=null)
    {
        FCoreTCIT.Events.RemoveObjectEvent(imgClose, ["click", objPost._CloseButtonClickHandler]);
    }
}
function InitPostFormObjectEventOnce(objPost)
{
    if (objPost._CloseButtonClickHandler == null)
    {
        objPost._CloseButtonClickHandler = function() {
            if (FCoreTCIT.PageInfo.IsIE) {$get(objPost.CloseButton).fireEvent("onclick");} else {FCoreTCIT.Events.FireMouseEvent($get(objPost.CloseButton), "click");}
        };
    }
    if (CoreBBS.Page._OnWindowErrorHander == null)
    {
        CoreBBS.Page._OnWindowErrorHander = function (msg,url,line) {return false;};
        window.onerror = CoreBBS.Page._OnWindowErrorHander;
    }
}
// 异步设置Body内容。
function SetTagTableText(threadId, text)
{
    if (text == window.undefined || text == null) text = CoreBBS.UI.Text.PageLoading.blink();
    var oTmp = GetContentObjectByViewTable(_getViewerTableByViewerTableID(threadId)); if (oTmp == null) return;
    var tagElement = (oTmp.CultureBodyArea || oTmp.BodyArea); if (tagElement == null) return;
    if (tagElement.innerHTML.length == 0)
    {
        tagElement.innerHTML = text;
    }
}
// 按请求打开对应FAQ。
function OpenDefaultArticleByQueryKey()
{
    if (CoreBBS.Page.ForumsListID > 0)
    {
        var expandTableId = FCoreTCIT.Request.QueryString(CoreBBS.Config.ForumsFAQueryKey);
        if (expandTableId.length > 0 && !isNaN(parseInt(expandTableId)))
        {
            var tagTable = _getViewerTableByViewerTableID(expandTableId);
            if (tagTable != null) _expandcollapse_click_controlor(_getViewerTableByViewerTableID(expandTableId), "");
        }
    }
}
// 配置列表导航的帖数。
function ConfigPostListNavigate(increment, isReset)
{
    var navi = $get(CoreBBS.Page.ListNavigate);
    if (navi == null) return;
    navi.rows[0].cells[1].childNodes[1].innerHTML = isReset ? increment : parseInt(navi.rows[0].cells[1].childNodes[1].innerHTML) + increment;
    navi.rows[0].cells[1].childNodes[4].innerHTML = parseInt($get(CoreBBS.Page.PageIndexInput).value) + 1;
    navi.rows[0].cells[1].childNodes[6].innerHTML = CoreBBS.Page.PageCount == 0 ? 1 : CoreBBS.Page.PageCount;
}
// 隐藏faq中"第x/x页"字符串。
function hideListNavigatePageIndex()
{
    var navi = $get(CoreBBS.Page.ListNavigate); if (navi == null) return;
    var navlist = navi.rows[0].cells[1].childNodes;
    for (var i=3; i<=7; i++) navlist[i].style.visibility = "hidden";
}
// 设置faq列表项数据。并自动排序。
function SetFAQListRowDataAndAutoSort(objFaq)
{
    if (objFaq == null || objFaq.ID <= 0) return false;
    var tagTable = _getViewerTableByViewerTableID(objFaq.ID)
    if (tagTable == null) return false;

    var subject, content;
    if (FCoreTCIT.PageInfo.IsDefaultCulture) {subject = objFaq.Subject; content = objFaq.Content;}
    else {subject = objFaq.SubjectE; content = objFaq.ContentE;}

    if (objFaq.ForumTypeID == CoreBBS.Page.ForumsListID)
    {
        var oldSort = parseFloat(tagTable.rows[0].cells[3].innerText || tagTable.rows[0].cells[3].textContent);
        var newSort = parseFloat(objFaq.SortIndex);
        if (isNaN(oldSort) || isNaN(newSort)) return false;
        tagTable.rows[0].cells[1].childNodes[0].innerHTML = CoreBBS.Functions.GetBlinkText(subject);
        tagTable.rows[0].cells[1].childNodes[0].setAttribute("title", subject);
        tagTable.rows[0].cells[2].innerHTML = objFaq.HomeSortIndex;
        tagTable.rows[0].cells[3].innerHTML = objFaq.SortIndex;
        objFaq.getCultureBodyArea().innerHTML = content;

        if (oldSort != newSort){ReSortFAQListClientRow(tagTable); ReSetFAQListClientRowIndex();}
    }
    else
    {
        tagTable.style.display = "none";
        ReSetFAQListClientRowIndex();
    }
    return true;
}
// 创建faq列表项。
function CreateForumsObjectListRow(unConfigNavigate)
{
    var _handler = function(tagTable, params) {var _id=tagTable.getAttribute("id"); return (_id!=null && _id.length>0 && _id.indexOf(CoreBBS.Config.ViewerTablePrefix)>=0);};
    var firstTable = _enumerate_activepanellist_controlor(_handler, null, true);

    if (FCoreTCIT.Function.isSafeType(firstTable, "boolean")) return null;
    if (firstTable == null) return null;
    var newRow = firstTable.cloneNode(true);
    if (newRow.style.display == "none") newRow.style.display = "";
    firstTable.parentNode.insertBefore(newRow, firstTable);
    _expandcollapse_click_controlor(newRow, "none");
    if (unConfigNavigate == window.undefined || !unConfigNavigate) ConfigPostListNavigate(1, false);

    return newRow;
}
// 重新设置列表排序。
function ReSortFAQListClientRow(keyTable)
{
    var _handler = function(tagTable, params){
        var _id=tagTable.getAttribute("id");
        if (_id==null || _id.length<=0 || _id.indexOf(CoreBBS.Config.ViewerTablePrefix)<0 || _id==params[0]) return false;
        tagIndex = parseFloat(tagTable.rows[0].cells[3].innerText || tagTable.rows[0].cells[3].textContent);
        if (isNaN(tagIndex) || isNaN(params[1])) return false;
        if (tagIndex >= params[1]) return true;
        return false;
    };
    var beforeTable = _enumerate_activepanellist_controlor(_handler, [keyTable.getAttribute("id"), parseFloat(keyTable.rows[0].cells[3].innerText || keyTable.rows[0].cells[3].textContent)]);
    if (FCoreTCIT.Function.isSafeType(beforeTable, "boolean"))
    {
        if (beforeTable == false) return;
        keyTable.parentNode.appendChild(keyTable);
        keyTable.swapNode(keyTable.previousSibling);
        return;
    }
    if (beforeTable == null) return;
    keyTable.parentNode.insertBefore(keyTable, beforeTable);
}
// 重设置列表项索引。
function ReSetFAQListClientRowIndex()
{
    var _handler = function(tagTable, params) {try {tagTable.rows[0].cells[0].childNodes[3].innerHTML = "Q" + params.key++ + ":";} catch(e) {} return false;};
    var p = {key:FCoreTCIT.PageInfo.IsIE?1:0}
    _enumerate_activepanellist_controlor(_handler, p);
    //ConfigPostListNavigate(p.key - 1, true);
}
// 调整"操作"，"首页排序,排序"显示状态。
function AdjustFAQListRowCellsWidth(panelId, hideImageOnly)
{
    var _handler = function(tagTable, params) {var lastCell=tagTable.rows[0].cells[tagTable.rows[0].cells.length-1]; tagTable.rows[0].cells[1].style.width=parseInt(tagTable.rows[0].cells[1].style.width)+parseInt(lastCell.style.width) - 5 + "px"; lastCell.style.display="none";return false;};
    _enumerate_activepanellist_controlor(_handler, null);
    var dispArea = $get(panelId);
    var titleBar = dispArea.childNodes[0].childNodes[0].rows[0];
    titleBar.cells[3].style.width = parseInt(titleBar.cells[3].style.width) + parseInt(titleBar.cells[6].style.width) + 5 + "px";
    titleBar.cells[5].style.width = parseInt(titleBar.cells[5].style.width) - 5 + "px";
    titleBar.cells[6].style.display = "none";

    hideImageOnly = hideImageOnly != window.undefined && hideImageOnly;
    if (!hideImageOnly)
    {
        _handler = function(tagTable, params) {var tableRow=tagTable.rows[0]; tableRow.cells[1].style.width=parseInt(tableRow.cells[1].style.width)+parseInt(tableRow.cells[2].style.width)+parseInt(tableRow.cells[3].style.width) + 10  + "px"; tableRow.cells[2].style.display="none";tableRow.cells[3].style.display="none";return false;};
        _enumerate_activepanellist_controlor(_handler, null);
        titleBar.cells[3].style.width = parseInt(titleBar.cells[3].style.width) + parseInt(titleBar.cells[4].style.width) + parseInt(titleBar.cells[5].style.width)  + "px";
        titleBar.cells[4].style.display = "none";
        titleBar.cells[5].style.display = "none";
    }
}
// 调整"作者"显示状态。
function AdjustSupportListRowCellsWidth(panelId)
{
    var _handler = function(tagTable, params) {var tableRow=tagTable.rows[0]; tableRow.cells[1].style.width=parseInt(tableRow.cells[1].style.width)+parseInt(tableRow.cells[4].style.width)  + "px"; tableRow.cells[4].style.display="none";return false;};
    _enumerate_activepanellist_controlor(_handler, null);
    var dispArea = $get(panelId);
    var titleBar = dispArea.childNodes[0].childNodes[0].rows[0];
    titleBar.cells[1].style.width = parseInt(titleBar.cells[1].style.width) + parseInt(titleBar.cells[4].style.width) + 5 + "px";
    titleBar.cells[2].style.width = parseInt(titleBar.cells[2].style.width) - 5 + "px";
    titleBar.cells[4].style.display = "none";
}
// 过滤控制器，供CreateForumsObjectListRow, ReSortFAQListClientRow 等方法使用。
function _enumerate_activepanellist_controlor(handler, params, includeHideItem)
{
    var objContainer = $get(CoreBBS.Page.ActivePanel);
    if (objContainer == null) return false;
    includeHideItem = includeHideItem != window.undefined && includeHideItem;

    for (var i=0; i<objContainer.childNodes.length; i++)
    {
        if (objContainer.childNodes[i].nodeType == 1 && objContainer.childNodes[i].tagName.toUpperCase() == "TABLE" && (includeHideItem || objContainer.childNodes[i].style.display != "none"))
        {
            if (handler(objContainer.childNodes[i], params)) return objContainer.childNodes[i];
        }
    }
    return true;
}
// 隐藏提问行。
function HideBottomLine()
{
    var objContainer = $get(CoreBBS.Page.ActivePanel);
    if (objContainer == null) return false;
    for (var i=0; i<objContainer.childNodes.length; i++)
    {
        if (objContainer.childNodes[i].nodeType == 1 && objContainer.childNodes[i].tagName.toUpperCase() == "DIV" && objContainer.childNodes[i].className=="bottomLine")
        {
            objContainer.childNodes[i].style.display = "none";
        }
    }
}
// 隐藏在线支持导航。
function HideNavigateSupportNode()
{
    var tag = $get(CoreBBS.Page.ForumsListDataSource); if (tag == null) return;
    tag = tag.parentNode; if (tag == null) return;
    tag = tag.parentNode; if (tag == null) return;
    tag = tag.lastChild; if (tag == null) return;
    while (tag.nodeType != 1) {tag = tag.previousSibling; if (tag == null) return;};
    tag.style.display = "none";
}
//已选择的导航着色。
function SelecteNavigateCorrectNode()
{
    var keyVal_a = FCoreTCIT.Request.QueryString(CoreBBS.Config.ForumsKey).trim().toLowerCase();
    var keyVal_a1 = FCoreTCIT.Request.QueryString(CoreBBS.Config.ForumsQueryKey).trim().toLowerCase();

    var tree = $get(CoreBBS.Page.ForumsTreeRoot); if (tree == null) return;
    var alist = tree.getElementsByTagName("A"); if (alist.length <= 0) return;
    var tagNode = alist[0].parentNode;
    for (var i=0; i<alist.length; i++)
    {
        var ahref = alist[i].getAttribute("href");
        if ((keyVal_a.length > 0 && FCoreTCIT.Request.QueryString(CoreBBS.Config.ForumsKey, ahref).toLowerCase() == keyVal_a)
            || (keyVal_a1.length > 0 && FCoreTCIT.Request.QueryString(CoreBBS.Config.ForumsQueryKey, ahref).toLowerCase() == keyVal_a1))
        {
            tagNode = alist[i].parentNode; break;
        }
    }
    tagNode.className = "Selected" + tagNode.className;
}
// 隐藏分页面板。
function HidePageIndexPanel()
{
    $get(CoreBBS.Page.PageIndexPanel).style.visibility = "hidden";
}
// 搜索关键字着色。
function SetBBSListRowTitleBlink()
{
    var _handler = function(tagTable, params) {tagTable.rows[0].cells[1].childNodes[0].innerHTML = CoreBBS.Functions.GetBlinkText(tagTable.rows[0].cells[1].childNodes[0].innerHTML)};
    _enumerate_activepanellist_controlor(_handler, null);
}
// 隐藏控制('删除'/'修改')图片
function HideControlsImage()
{
    var _handler = function (tagTable, params) {var lastCell=tagTable.rows[0].cells[tagTable.rows[0].cells.length-1];for(var i=0;i<lastCell.childNodes.length;i++){if(lastCell.childNodes[i].tagName.toUpperCase()=="IMG"){lastCell.childNodes[i].style.visibility="hidden";}}; return false;};
    _enumerate_activepanellist_controlor(_handler, null);//.visibility="hidden";
}
// 按权限隐藏控制('删除'/'修改')图片
function HideControlsImageByUserPermission()
{
    var _handler = function (tagTable, params) {var lastCell=tagTable.rows[0].cells[tagTable.rows[0].cells.length-1];var fid=parseInt(tagTable.rows[0].cells[0].childNodes[1].value);for(var i=0;i<lastCell.childNodes.length;i++){if(lastCell.childNodes[i].tagName.toUpperCase()=="IMG"){if (!IsInPermission(fid)){lastCell.childNodes[i].style.visibility="hidden";}else{lastCell.childNodes[i].style.visibility="visible";}}}; return false;};
    _enumerate_activepanellist_controlor(_handler, null);
}
// 按权限隐藏控制('删除'/'修改')图片等图并调整"操作"，"首页排序,排序"等显示状态。
function HideFAQControlsImageByUserPermissionAndAutoAdjustCellsWidth()
{
    //非查找模式。
    if (!CoreBBS.Page.IsSearchMode)
    {
        if (IsInPermission(CoreBBS.Page.ForumsListID)) {} else {AdjustFAQListRowCellsWidth(CoreBBS.Page.ActivePanel, true);}
        return;
    }

    //查找模式。
    var _handler = function (tagTable, params) {var lastCell=tagTable.rows[0].cells[tagTable.rows[0].cells.length-1]; if(IsInPermission(parseInt(tagTable.rows[0].cells[0].childNodes[1].value))){return true;} return false;}
    var findTable = _enumerate_activepanellist_controlor(_handler, null);
    if (FCoreTCIT.Function.isSafeType(findTable, "object") && findTable != null)
    {
        //检测到有存在。
        HideControlsImageByUserPermission();
        return;
    }

    AdjustFAQListRowCellsWidth(CoreBBS.Page.ActivePanel, true);
}
// 同步标题提示消息。
function SetBBSListRowTitleAttrib()
{
    var _handler = function (tagTable, params) {var titleArea=tagTable.rows[0].cells[1].childNodes[0];titleArea.setAttribute("title",titleArea.innerHTML); return false;}
    _enumerate_activepanellist_controlor(_handler, null);
}
// 设置该Post的ThreadID。备用。
function SetSupportPostedData(postTable, threadId)
{
    postTable.rows[2].cells[0].childNodes[0].setAttribute("alt", threadId);
}
// 设置回复框图片状态。
function SetReplyBoxButtons(reply, isThreadPost)
{
    reply.rows[2].cells[0].childNodes[0].style.display = "none"; // reply img
    reply.rows[2].cells[0].childNodes[1].style.display =
       (isThreadPost || !CoreBBS.User.IsTaxFilingQAAdmin || (CoreBBS.User.IsTaxFilingQAAdmin && !IsInPermission(parseInt(_getParentTableElement(reply).rows[0].cells[0].childNodes[1].value)) ))
        ? "none"
        : ""
    ; // delete img
}
function SetReplyButton(reply, isShow)
{
    reply.rows[2].cells[0].childNodes[0].style.display = (isShow != window.undefined && isShow) ? "" : "none";
}
// 创建并追加回复数据表框。
function CreateAndAppendSupportReply(tagTable)
{
    var fatherReply = tagTable.rows[1].cells[0].childNodes[0];
    var newReply = fatherReply.cloneNode(true);
    tagTable.rows[1].cells[0].appendChild(newReply);
    newReply.className = "SptReplyItem";
    newReply.rows[0].cells[0].childNodes[0].childNodes[0].innerHTML = "回复";
    newReply.rows[0].cells[0].childNodes[1].innerHTML = "";
    SetReplyBoxButtons(newReply, false);

    var dataItemContainor = newReply.rows[1].cells[0].childNodes[0];
    if (dataItemContainor.rows.length >= 3)
    {
        for (var i=dataItemContainor.rows.length-1; i>=2; i--)
        {
            dataItemContainor.tBodies[0].removeChild(dataItemContainor.rows[i]);
        }
    }

    return newReply;
}
//
function SetImageCompatibleSize(img, maxWidth)
{
    if (maxWidth <= 0) return;
    if (img.width > maxWidth)
    {
        img.width = maxWidth;
        //img.setAttribute("href", img.getAttribute("src"));
        //img.setAttribute("target", "_blank");
    }
}
// 设置回复数据表框内的数据。
function SetSupportReply(postTable, id, body, author, date)
{
    var maxWidth = postTable.rows[1].cells[1].clientWidth;

    postTable.rows[2].cells[0].childNodes[1].setAttribute("alt", id);
    postTable.rows[1].cells[0].childNodes[0].rows[0].cells[0].childNodes[1].innerHTML = author;
    postTable.rows[1].cells[1].innerHTML = "<div class='RootDivBody'>" + CoreBBS.Functions.GetBlinkText(body.replace(/\[\_\]/g, "_").replace(/\'\'/g,"'")) + "</div>";
    postTable.rows[1].cells[0].childNodes[0].rows[1].cells[0].childNodes[1].innerHTML = date;
    var imgList = postTable.rows[1].cells[1].getElementsByTagName("IMG");
    for (var i=0; i<imgList.length; i++)
    {
        SetImageCompatibleSize(imgList[i], maxWidth);
    }
}
// 设置主题数据表框内的最后回复。
function SetSupportPostedDataLastReply(postTable, author, date)
{
    var dataItemContainor = postTable.rows[1].cells[0].childNodes[0];
    var newDataItem;

    if (author != window.undefined && author != null)
    {
        if (dataItemContainor.rows.length >=3) {newDataItem = dataItemContainor.rows[2];}
        else {newDataItem = dataItemContainor.rows[0].cloneNode(true); dataItemContainor.tBodies[0].appendChild(newDataItem);}
        newDataItem.childNodes[0].childNodes[0].innerHTML = "最后回复："
        newDataItem.childNodes[0].childNodes[1].innerHTML = author;
    }

    if (date != window.undefined && date != null)
    {
        if (dataItemContainor.rows.length >=4) {newDataItem = dataItemContainor.rows[3];}
        else {newDataItem = dataItemContainor.rows[0].cloneNode(true); dataItemContainor.tBodies[0].appendChild(newDataItem);}
        newDataItem.childNodes[0].childNodes[0].innerHTML = "回复时间："
        newDataItem.childNodes[0].childNodes[1].innerHTML = date;
    }
    SetSupportPostAndLastReplyButton(postTable);
}
function SetSupportPostAndLastReplyButton(postItem)
{
    var postList = postItem.parentNode.childNodes;
    var firstIndex = -1; var lastIndex = -1;
    for (var i=0; i<postList.length; i++)
    {
        if (postList[i].nodeType != 1 || postList[i].tagName.toUpperCase() != "TABLE" || postList[i].style.display == "none") continue;
        if (firstIndex < 0) firstIndex = i; lastIndex = i;
        SetReplyButton(postList[lastIndex], false);
    }
    SetReplyBoxButtons(postList[firstIndex], true);
    SetReplyButton(postList[firstIndex], false);
    SetReplyButton(postList[lastIndex], true);
}
// 设置主题栏(横条)上的信息,常用于同步数据
function SetSupportListItemWithLastReply(tagTable, username, isAddNew)
{
    if (isAddNew)
    {
        tagTable.rows[0].cells[3].innerHTML = parseInt(tagTable.rows[0].cells[3].innerHTML) + 1;
        tagTable.rows[0].cells[5].innerHTML = username;
    }
    else
    {
        tagTable.rows[0].cells[3].innerHTML = parseInt(tagTable.rows[0].cells[3].innerHTML) - 1;
    }
}
// 对(新创建的)数据行配置初始化数据。
function ResetSupportListItem(tagTable, sptObj, replays, date)
{
    tagTable.rows[0].cells[0].childNodes[1].value = sptObj.ForumTypeID;
    tagTable.rows[0].cells[1].childNodes[0].innerHTML = CoreBBS.Functions.GetBlinkText(sptObj.Subject);
    tagTable.rows[0].cells[1].childNodes[0].setAttribute("title", sptObj.Subject);
    tagTable.rows[0].cells[3].innerHTML = (replays == window.undefined || replays == null) ? "0" : replays[0];
    tagTable.rows[0].cells[4].innerHTML = (replays == window.undefined || replays == null) ? CoreBBS.User.UserName : replays[1];
    tagTable.rows[0].cells[5].innerHTML = (replays == window.undefined || replays == null) ? CoreBBS.User.UserName : replays[2];
    tagTable.rows[0].cells[6].innerHTML = _getShortDate(date);

    SetReplyBoxButtons(tagTable.rows[1].cells[0].childNodes[0], true);
    SetReplyButton(tagTable.rows[1].cells[0].childNodes[0], true);

    tagTable.rows[1].cells[0].childNodes[0].rows[1].cells[1].innerHTML = sptObj.Content;
    tagTable.rows[1].cells[0].childNodes[0].rows[2].cells[0].childNodes[0].setAttribute("alt", sptObj.ID);

    var dataItemContainor = tagTable.rows[1].cells[0].childNodes[0].rows[1].cells[0].childNodes[0];
    for (var i=dataItemContainor.rows.length-1; i>=2; i--)
    {
        dataItemContainor.tBodies[0].removeChild(dataItemContainor.rows[i]);
    }
    var postContainor = tagTable.rows[1].cells[0];
    for (var i=postContainor.childNodes.length-1; i>=1; i--)
    {
        postContainor.removeChild(postContainor.childNodes[i]);
    }

    SetSupportReply(postContainor.childNodes[0], sptObj.ID, sptObj.Content, CoreBBS.User.UserName, (date == window.undefined || date == null) ? _getDate() : date);
}
// 添加后重新计算页并更新分页状态。
function CheckCurrentPageListCountAfterAddNew(tagTable, count)
{
    var _handler = function (tagTable, params) {if (params.key++ >= CoreBBS.Page.PageSize) {params.obj = tagTable;return true;} return false;};
    var param = {key:0,obj:null};
    _enumerate_activepanellist_controlor(_handler, param);
    if (param.obj != null)
    {
        tagTable.parentNode.removeChild(param.obj)
    }
    ReSetRecordCount(CoreBBS.Page.RecordCount + count, true, false);
}
// 删除后重新计算页并更新分页状态。
function CheckCurrentPageListCountAfterDelete(tableId, count)
{
    var pageIndex = parseInt($get(CoreBBS.Page.PageIndexInput).value);
    if (CoreBBS.Page.RecordCount <= CoreBBS.Page.PageSize || (isNaN(pageIndex) || pageIndex < 0))
    {
        alert(CoreBBS.UI.Text.OperateSuccess);
        return;
    }

    var result = CoreBBS.Page.RecordCount - CoreBBS.Page.PageSize * pageIndex;
    var requestIndex, requestStart, requestCount;
    if (result > CoreBBS.Page.PageSize)
    {
        requestIndex = pageIndex;
        requestStart = CoreBBS.Page.PageSize - count;
        requestCount = count;
    }
    else if (result > 1)
    {
        alert(CoreBBS.UI.Text.OperateSuccess);
        ReSetRecordCount(CoreBBS.Page.RecordCount - count, true, true);
        return;
    }
    else if (result == 1)
    {
        requestIndex = pageIndex - 1;
        requestStart = 0;
        requestCount = CoreBBS.Page.PageSize;

        $get(CoreBBS.Page.PageIndexInput).value = requestIndex;
    }
    else
    {
        CoreBBS.Functions.ReLoad();
        return;
    }

    var queryKey = CoreBBS.Page.IsSearchMode ? CoreBBS.Page.SearchText : "";
    var processor = new FCoreTCIT.Response.ResponseProcessor(_callbackhandler_SptSelectAppend, _getViewerTableByViewerTableID(tableId), count);
    FCoreTCIT.Request.ASynRequestServer(CoreBBS.Post.ActionType.SptSelectAppend, [requestIndex, requestStart, requestCount, queryKey], processor);
}

//-------------------------------------------------------------------------
function _getViewerTableIdByViewerTable(tagTable)
{
    return parseInt(tagTable.getAttribute("id").replace(new RegExp(CoreBBS.Config.ViewerTablePrefix, "ig"), ""));
}
function _getViewerTableByViewerTableID(tableId)
{
    return $get(CoreBBS.Config.ViewerTablePrefix + tableId);
}
function _getIdByUrl(url)
{
    return FCoreTCIT.Request.QueryString(CoreBBS.Config.ForumsQueryKey, url);
}
function _getDate()
{
    _date = new Date(); // return _date.toLocaleDateString().replace(new RegExp(/[^\x00-\x7F]/ig), "-") + _date.toLocaleTimeString();
    var _handler = function(val,count){val="00"+val;return val.substr(val.length - count);}
    return _handler(_date.getFullYear(),4) + '-' + _handler(_date.getMonth(),2)  + '-' + _handler(_date.getDay(),2) + " " + _handler(_date.getHours(),2) + ":" + _handler(_date.getMinutes(),2) + ":" + _handler(_date.getSeconds(),2);
}
function _getShortDate(_date)
{
    if (_date == window.undefined || _date == null)
    {
        _date = _getDate();
    }
    return _date.substring(0, _date.lastIndexOf(":"));
}
function IsInPermission(forumsId)
{
    for (var i=0; i<CoreBBS.User.Permission.length; i++) {if (CoreBBS.User.Permission[i] == forumsId) return true;}
    return false;
}
function SetObjectHrefEnabledState(tagObj, isEnabled)
{
    if (isEnabled) {if (tagObj.getAttribute("disabled")){tagObj.removeAttribute("disabled");tagObj.className = "";}}
    else {if (!tagObj.getAttribute("disabled")){tagObj.setAttribute("disabled", "disabled");tagObj.className = "disableAnchor";}}
}
function _getParentTableElement(tagObj)
{
    var tag = tagObj;
    do
    {
        tag = tag.parentNode;
        if (tag == null || tag.tagName == window.undefined) return null;
    }
    while (tag.tagName.toUpperCase() != "TABLE");
    return tag;
}
// faq板块数据集
var _forumsdata = [];
function GetForumsNameByForumsId(fid)
{
    var _data = GetForumsDataInForumsList(CoreBBS.Page.ForumsListDataSource);
    for (var i=0; i<_data.length; i++)
    {
        if (_data[i].Id == fid)
        {
            return _data[i].Name;
        }
    }
    return "UnKnow";
}
function GetForumsDataInForumsList(odsId)
{
    if (_forumsdata.length == 0)
    {
        var list = $get(odsId); if(list==null) return;
        var len = 0; var fid;
        if (FCoreTCIT.PageInfo.IsIE) {len=list.childNodes.length; for (var i=0; i<len; i++) {
            fid = _getIdByUrl(list.childNodes[i].childNodes[0].getAttribute("href"));
            if (CoreBBS.Content.ForumsType != CoreBBS.ForumsType.ForumsFAQ || IsInPermission(fid)) _forumsdata.push({
                Id:fid,
                Name:list.childNodes[i].childNodes[0].innerText,
                Description:list.childNodes[i].childNodes[0].getAttribute("title")
            });}}
        else {list=list.getElementsByTagName("A"); len=list.length; for (var i=0; i<len; i++) {
            fid = _getIdByUrl(list[i].getAttribute("href"));
            if (CoreBBS.Content.ForumsType != CoreBBS.ForumsType.ForumsFAQ || IsInPermission(fid)) _forumsdata.push({
                Id:fid,
                Name:list[i].textContent,
                Description:list[i].getAttribute("title")
            });}}
    }
    return _forumsdata;
}
function BuildDropDownListById(ddlId, blnKeepData)
{
    var ddl = $get(ddlId); if(ddl==null) return;
    if (blnKeepData && ddl.options.length > 1) return;

    ddl.options.length = 1;
    var len = _forumsdata.length;
    if (len <= 0)
    {
        GetForumsDataInForumsList(CoreBBS.Page.ForumsListDataSource);
        len = _forumsdata.length;
    }
    if (FCoreTCIT.PageInfo.IsIE) for (var i=0; i<_forumsdata.length; i++){ddl.add(new Option(_forumsdata[i].Name,_forumsdata[i].Id));}
    else for (var i=0; i<_forumsdata.length; i++){ddl.appendChild(new Option(_forumsdata[i].Name,_forumsdata[i].Id));}
}
function SetDropDownListDefalutValue(ddlId, text, lockTag)
{
    var ddl = $get(ddlId); if(ddl==null) return;

    lockTag = (lockTag!=window.undefined && lockTag);
    if (lockTag){if (!ddl.getAttribute("disabled")) ddl.setAttribute("disabled", "disabled");}
    else{if (ddl.getAttribute("disabled")) ddl.removeAttribute("disabled");}

    if (text.length == 0) {ddl.options[0].selected = true; return;}
    var len = ddl.options.length;
    for (var i=0; i<len; i++)
    {
        if (ddl.options[i].value == text)
        {
            ddl.options[i].selected = true;
            break;
        }
    }
}
// 设置/更新Support中的板块名(数据项在Input type=hidden中)。
function UpdateSupportListForumsName()
{
    var _handler = function (tagTable, params) {tagTable.rows[0].cells[2].innerHTML = GetForumsNameByForumsId(tagTable.rows[0].cells[0].childNodes[1].value); return false;};
    _enumerate_activepanellist_controlor(_handler, null);
}
// 获取FCK对象。
function GetPostFCK(objPost, isFAQE)
{
    isFAQE = ((isFAQE != window.undefined) && isFAQE);

    var _postfck = isFAQE ? objPost.PostFCKE : objPost.PostFCK;
    if (_postfck == null)
    {
        if (!FCoreTCIT.PageInfo.IsIE)
        {
            if (isFAQE) {_postfck = FCKeditorAPI.__Instances[objPost.PostContentE]; objPost.PostFCKE = _postfck;}
            else {_postfck = FCKeditorAPI.__Instances[objPost.PostContent]; objPost.PostFCK = _postfck;}
            return _postfck;
        }

        var obj = $get(isFAQE ? objPost.PostContentE : objPost.PostContent);
        if (obj == null || obj.parentNode == null) return null;

        var par = obj.parentNode;
        for (var i=0; i<par.childNodes.length; i++)
        {
            if (par.childNodes[i].tagName.toLowerCase() == "iframe")
            {
                _postfck = par.childNodes[i].contentWindow.FCK;
                if (isFAQE) objPost.PostFCKE = _postfck; else objPost.PostFCK = _postfck;
                break;
            }
        }
    }
    return _postfck;
}









//==========================================================================
//-------------------------------------------------------------------------
//名  称： _callbackhandler_METHOD__NAME
//功  能：	执行CallServer成功后的回调处理。
//返回值：	void
//参  数：	objects:    ResponseProcessor组织的参数列表。
//参  数：	returns[0]: doProcess方法组织参数 retValue。
//参  数：	returns[1]: doProcess方法组织参数 context。
//-------------------------------------------------------------------------
//名  称： _callbackhandler_SptSelectView
//功  能：	执行浏览Support数据返回后的处理。
//返回值：	void
//参  数：	objects[0]:  sptObj。
//参  数：	returns[0]:  返回值。
//-------------------------------------------------------------------------
function _callbackhandler_SptSelectView(objects, returns)
{
    var alist = returns[0].split(CoreBBS.Page.CallBackSplit);
    var isReceiveStateSuccess = ReceiveStateCheck(alist[0], true);

    //Bug 4647.在下面return.
    //if (!isReceiveStateSuccess)
    //{
    //    return;
    //}

    if (isReceiveStateSuccess && (alist.length % 4 != 1))
    {
        alert(CoreBBS.UI.Text.UnknowDataFormat);
        return;
    }

    var tagTable = _getViewerTableByViewerTableID(objects[0].ID);
    if (tagTable == null)
    {
        CoreBBS.Functions.ReLoad();
        return;
    }

    var tagPost = tagTable.rows[1].cells[0].childNodes[0];
    var lastPostAuth, lastPostDate;
    SetSupportPostedData(tagPost, objects[0].ID);
    if (!isReceiveStateSuccess)
    {
        SetSupportReply(tagPost, 0, CoreBBS.UI.Text.OperationInvalid, "", "");
        return;
    }

    SetSupportReply(tagPost, alist[1], alist[2], alist[3], alist[4])
    for (var i=1+4; i<alist.length; i+=4)
    {
        var tagReply = CreateAndAppendSupportReply(tagTable);
        lastPostAuth = alist[i+2];
        lastPostDate = alist[i+3];
        SetSupportReply(tagReply, alist[i], alist[i+1], lastPostAuth, lastPostDate)
    }

    SetSupportPostedDataLastReply(tagPost, lastPostAuth, lastPostDate);
}
//-------------------------------------------------------------------------
//名  称： _callbackhandler_SptSelectEdit
//功  能：	执行修改Support数据请求。
//返回值：	void
//参  数：	objects[0]:  目标输出区域。
//参  数：	returns[0]:  返回值。
//-------------------------------------------------------------------------
function _callbackhandler_SptSelectEdit(objects, returns)
{
    //var alist = returns[0].split(CoreBBS.Page.CallBackSplit);
    //InitSupportFormData(alist[0], alist[1], alist[3]);
}
function _callbackhandler_SptSelectAppend(objects, returns)
{
    var alist = returns[0].split(CoreBBS.Page.CallBackSplit);
    if (!ReceiveStateCheck(alist[0], true))
    {
        CoreBBS.Functions.ReLoad();
        return;
    }

    if (alist.length % 8 != 1)
    {
        CoreBBS.Functions.ReLoad();
        return;
    }

    for (var i=1; i<alist.length; i+=8)
    {
        var tagTable = _getViewerTableByViewerTableID(alist[i+1]);
        if (tagTable != null)
        {
            if (tagTable.style.display == "none")
            {
                tagTable.style.display = "";
                continue;
            }
            CoreBBS.Functions.ReLoad();
            return;
        }
        tagTable = CreateForumsObjectListRow(true);
        if (tagTable == null)
        {
            CoreBBS.Functions.ReLoad();
            return;
        }
        tagTable.setAttribute("id", CoreBBS.Config.ViewerTablePrefix + alist[i+1]);
        tagTable.rows[0].cells[0].childNodes[1].value = alist[i];

        tagTable.parentNode.appendChild(tagTable);
        tagTable.swapNode(tagTable.previousSibling);
        var sptObj = new CoreBBS.Support(alist[i+1], alist[i], alist[i+3], "");
        ResetSupportListItem(tagTable, sptObj, [alist[i+4], alist[i+5], alist[i+6]], alist[i+7]);
        UpdateSupportListForumsName();
    }

    ReSetRecordCount(CoreBBS.Page.RecordCount - objects[1], true, true);
    HideControlsImageByUserPermission();
    alert(CoreBBS.UI.Text.OperateSuccess);
}
function _callbackhandler_SptInsert(objects, returns)
{
    var alist = returns[0].split(CoreBBS.Page.CallBackSplit);
    if (!ReceiveStateCheck(alist[0])) return;

    if (alist.length < 2)
    {
        alert(CoreBBS.UI.Text.UnknowDataFormat);
        return;
    }

    ClearSupportForm();
    CloseInputForm(CoreBBS.SptPost);

    var pageIndex = parseInt($get(CoreBBS.Page.PageIndexInput).value);
    if (isNaN(pageIndex) || pageIndex != 0)
    {
        CoreBBS.Functions.ReLoad();
        // PageIndexGoTo(0);
        return;
    }

    var sptInForm = objects[0];
    var sptInRows = objects[1];
    var tagTable;
    if (sptInRows != null && sptInForm.ID > 0)
    {
        tagTable = _getViewerTableByViewerTableID(sptInForm.ID);
    }
    else if (sptInRows == null && sptInForm.ID == 0)
    {
        if (CoreBBS.Page.IsSearchMode)
        {
            CoreBBS.Functions.ReLoad();
            return;
        }

        sptInForm.ID = parseInt(alist[1]);
        tagTable = CreateForumsObjectListRow();
        if (tagTable == null)
        {
            CoreBBS.Functions.ReLoad();
            return;
        }
        tagTable.setAttribute("id", CoreBBS.Config.ViewerTablePrefix + sptInForm.ID);
        tagTable.rows[0].cells[0].childNodes[1].value = sptInForm.ForumTypeID;

        sptInRows = GetSupportByViewTable(tagTable);
    }
    else
    {
        CoreBBS.Functions.ReLoad();
        return;
    }

    ResetSupportListItem(tagTable, sptInForm, null, alist[3]);
    CheckCurrentPageListCountAfterAddNew(tagTable, 1);
    UpdateSupportListForumsName();
    if (CoreBBS.User.IsTaxFilingQAAdmin)
    {
        HideControlsImageByUserPermission();
    }

    // alert(CoreBBS.UI.Text.OperateSuccess);
}
function _callbackhandler_SptInsertPost(objects, returns)
{
    var alist = returns[0].split(CoreBBS.Page.CallBackSplit);
    if (!ReceiveStateCheck(alist[0])) return;

    if (alist.length < 2)
    {
        alert(CoreBBS.UI.Text.UnknowDataFormat);
        return;
    }

    ClearSupportForm();
    CloseInputForm(CoreBBS.SptPost);

    var tagTable = _getViewerTableByViewerTableID(objects[0].ID);
    if (tagTable == null)
    {
        CoreBBS.Functions.ReLoad();
        return;
    }

    var tagPost = tagTable.rows[1].cells[0].childNodes[0];
    var tagReply = CreateAndAppendSupportReply(tagTable);

    SetSupportReply(tagReply, alist[1], objects[0].Content, CoreBBS.User.UserName, alist[2]);
    SetSupportPostedDataLastReply(tagPost, CoreBBS.User.UserName, alist[2]);
    SetSupportListItemWithLastReply(tagTable, CoreBBS.User.UserName, true);
}
//-------------------------------------------------------------------------
//名  称： _callbackhandler_SptDeleteByThreadID
//功  能：	执行删除Support数据请求后的返回处理。
//返回值：	void
//参  数：	objects[0]:  tagTable。
//参  数：	returns[0]:  返回值。
//-------------------------------------------------------------------------
function _callbackhandler_SptDeleteByThreadID(objects, returns)
{
    var alist = returns[0].split(CoreBBS.Page.CallBackSplit);
    if (!ReceiveStateCheck(alist[0])) return;

    if (alist.length < 2)
    {
        alert(CoreBBS.UI.Text.UnknowDataFormat);
        return;
    }

    objects[0].style.display = "none";
    ConfigPostListNavigate(-1, false);
    setTimeout("CheckCurrentPageListCountAfterDelete(" + _getViewerTableIdByViewerTable(objects[0]) + ", 1);");
    // Change Request 4665;
    // 这里取消提示操作成功。在CheckCurrentPageListCountAfterDelete 或 _callbackhandler_SptSelectAppend 方法中提示。
    // alert(CoreBBS.UI.Text.OperateSuccess);
}
//-------------------------------------------------------------------------
//名  称： _callbackhandler_SptDeleteByThreadpostID
//功  能：	执行删除SupportPost数据请求后的返回处理。
//返回值：	void
//参  数：	objects[0]:  tagTable。
//参  数：	returns[0]:  返回值。
//-------------------------------------------------------------------------
function _callbackhandler_SptDeleteByThreadpostID(objects, returns)
{
    var alist = returns[0].split(CoreBBS.Page.CallBackSplit);
    if (!ReceiveStateCheck(alist[0])) return;

    if (alist.length < 2)
    {
        alert(CoreBBS.UI.Text.UnknowDataFormat);
        return;
    }

    SetSupportListItemWithLastReply(_getParentTableElement(objects[0]), null, false);
    objects[0].style.display = "none";
    SetSupportPostAndLastReplyButton(objects[0]);
    alert(CoreBBS.UI.Text.OperateSuccess);
}
//-------------------------------------------------------------------------
//名  称： _callbackhandler_FAQSelectView
//功  能：	执行浏览FAQ数据返回后的处理。 //空内容时处理，不做objects[0].getContent().length == 0检测。
//返回值：	void
//参  数：	objects[0]:  目标输出区域。
//参  数：	returns[0]:  返回值。
//-------------------------------------------------------------------------
function _callbackhandler_FAQSelectView(objects, returns)
{
    var alist = returns[0].split(CoreBBS.Page.CallBackSplit);
    if (!ReceiveStateCheck(alist[0], true))
    {
        objects[0].getCultureBodyArea().innerHTML = CoreBBS.UI.Text.OperationInvalid;
        return;
    }

    if (alist.length < 8)
    {
        alert(CoreBBS.UI.Text.UnknowDataFormat);
        return;
    }

    if (objects[0].getCultureBodyArea() != null)
    {
        var bbsContents = CoreBBS.Content.GetInstance()
        if (FCoreTCIT.PageInfo.IsIE) bbsContents.item(objects[0].ID) = FCoreTCIT.PageInfo.IsDefaultCulture ? alist[6] : alist[7];
        else bbsContents.setValue(objects[0].ID, FCoreTCIT.PageInfo.IsDefaultCulture ? alist[6] : alist[7]);
        objects[0].getCultureBodyArea().innerHTML = CoreBBS.Functions.GetBlinkText(bbsContents.item(objects[0].ID));
    }
}
//-------------------------------------------------------------------------
//名  称： _callbackhandler_FAQSelectEdit
//功  能：	执行修改FAQ数据请求后的返回处理。
//返回值：	void
//参  数：	objects[0]:  faqObject。
//参  数：	returns[0]:  返回值。
//-------------------------------------------------------------------------
function _callbackhandler_FAQSelectEdit(objects, returns)
{
    var alist = returns[0].split(CoreBBS.Page.CallBackSplit);
    if (!ReceiveStateCheck(alist[0])) return;

    if (alist.length < 8)
    {
        alert(CoreBBS.UI.Text.UnknowDataFormat);
        return;
    }

    InitFAQFormData(objects[0].ID, alist[1], alist[2], alist[3], alist[4], alist[5], alist[6], alist[7]);

    if (objects[0].getContent().length == 0 && objects[0].getCultureBodyArea() != null)
    {
        var bbsContents = CoreBBS.Content.GetInstance()
        if (FCoreTCIT.PageInfo.IsIE) bbsContents.item(objects[0].ID) = FCoreTCIT.PageInfo.IsDefaultCulture ? alist[6] : alist[7];
        else bbsContents.setValue(objects[0].ID, FCoreTCIT.PageInfo.IsDefaultCulture ? alist[6] : alist[7]);
        objects[0].getCultureBodyArea().innerHTML = CoreBBS.Functions.GetBlinkText(bbsContents.item(objects[0].ID));
    }
}
//-------------------------------------------------------------------------
//名  称： _callbackhandler_FAQInsertUpdate
//功  能：	执行添加/更新FAQ数据请求后的返回处理。
//返回值：	void
//参  数：	objects[0]:  faqObject4Post。
//参  数：	objects[1]:  faqObject4Row。
//参  数：	returns[0]:  返回值。
//-------------------------------------------------------------------------
function _callbackhandler_FAQInsertUpdate(objects, returns)
{
    var alist = returns[0].split(CoreBBS.Page.CallBackSplit);
    if (!ReceiveStateCheck(alist[0]))
    {
        OpenFAQtForm(true);
        return;
    }

    if (alist.length < 2)
    {
        alert(CoreBBS.UI.Text.UnknowDataFormat);
        return;
    }

    var faqInForm = objects[0];
    var faqInRows = objects[1];
    if (faqInRows != null && faqInForm.ID > 0)
    {
    }
    else if (faqInRows == null && faqInForm.ID == 0)
    {
        if (CoreBBS.Page.IsSearchMode)
        {
            CoreBBS.Functions.ReLoad();
            return;
        }

        faqInForm.ID = parseInt(alist[1]);
        var newFaqRow = CreateForumsObjectListRow();
        if (newFaqRow == null)
        {
            CoreBBS.Functions.ReLoad();
            return;
        }
        newFaqRow.setAttribute("id", CoreBBS.Config.ViewerTablePrefix + faqInForm.ID);
        faqInRows = GetFAQByViewTable(newFaqRow);
    }
    else
    {
        CoreBBS.Functions.ReLoad();
        return;
    }

    CloseInputForm(CoreBBS.FAQPost);

    faqInForm.BodyArea  = faqInRows.BodyArea;
    faqInForm.BodyAreaE = faqInRows.BodyAreaE;
    if (!SetFAQListRowDataAndAutoSort(faqInForm))
    {
        CoreBBS.Functions.ReLoad();
        return;
    }

    CoreBBS.Page.RecordCount = CoreBBS.Page.RecordCount + 1;
    // alert(CoreBBS.UI.Text.OperateSuccess);
    ClearFAQForm();
}
//-------------------------------------------------------------------------
//名  称： _callbackhandler_FAQDelete
//功  能：	执行删除FAQ数据请求后的返回处理。
//返回值：	void
//参  数：	objects[0]:  tagTable。
//参  数：	returns[0]:  返回值。
//-------------------------------------------------------------------------
function _callbackhandler_FAQDelete(objects, returns)
{
    var alist = returns[0].split(CoreBBS.Page.CallBackSplit);
    if (!ReceiveStateCheck(alist[0])) return;

    if (alist.length < 2)
    {
        alert(CoreBBS.UI.Text.UnknowDataFormat);
        return;
    }

    objects[0].style.display = "none";
    ReSetFAQListClientRowIndex();
    ConfigPostListNavigate(-1, false);
    CoreBBS.Page.RecordCount = CoreBBS.Page.RecordCount - 1;
    alert(CoreBBS.UI.Text.OperateSuccess);
}




//==========================================================================
//-------------------------------------------------------------------------
// 点击板块
function Fire_ForumsListAreaClick(identity)
{
    var treeView = $get(CoreBBS.Page.ForumsListDataSource);
    var anchorList = treeView.getElementsByTagName("A");
    var len = anchorList.length;
    for (var i=0; i<len; i++)
    {
        var sHref = anchorList[i].getAttribute("href");
        if (FCoreTCIT.Request.QueryString(CoreBBS.Config.ForumsQueryKey, sHref) == identity)
        {
            //if (FCoreTCIT.PageInfo.IsIE) {anchorList[i].fireEvent("onclick");} else {FCoreTCIT.Events.FireMouseEvent(anchorList[i], "click");}
            window.location.href = sHref;
            return;
        }
    }
}
// 点击faq
function FireLineFAQ_Click(object, arg)
{
    object = object.srcElement || object.target;
    var tag = _getParentTableElement(object);
    if (tag == null) return;

    var faqId = _getViewerTableIdByViewerTable(tag);
    if (object.tagName.toUpperCase() == "IMG")
    {
        if (object.title == CoreBBS.UI.Text.AltEdit)
        {
            if (!CoreBBS.User.IsTaxFilingQAAdmin) return;
            // 修改FAQ.
            var faqObj = GetFAQByViewTable(tag);
            var processor = new FCoreTCIT.Response.ResponseProcessor(_callbackhandler_FAQSelectEdit, faqObj);
            FCoreTCIT.Request.ASynRequestServer(CoreBBS.Post.ActionType.FAQSelect, faqId, processor);
            return;
        }
        else if (object.title == CoreBBS.UI.Text.AltDelete)
        {
            if (!CoreBBS.User.IsTaxFilingQAAdmin) return;
            // 删除FAQ.
            if (!confirm(CoreBBS.UI.Text.BeforeDelete)) return;
            var processor = new FCoreTCIT.Response.ResponseProcessor(_callbackhandler_FAQDelete, tag);
            FCoreTCIT.Request.ASynRequestServer(CoreBBS.Post.ActionType.FAQDelete, faqId, processor);
            return;
        }
    }

    // View
    var imgFlag = tag.rows[0].cells[0].childNodes[0];
    if (tag.rows[1].style.display == "")
    {
        tag.rows[1].style.display = "none";
        if (imgFlag != null) {imgFlag.src = imgFlag.src.replace(new RegExp("\\" + CoreBBS.Config.ImageCollapseChar, "ig"), CoreBBS.Config.ImageExpandChar);}

        CheckExpandCollapseState(false);
    }
    else
    {
        var faqObj = GetFAQByViewTable(tag);
        if (faqObj.getContent().length > 0 && faqObj.BodyArea.innerHTML.length == 0)
        {
            // PostBack 后从bbsContents中获取。
            faqObj.BodyArea.innerHTML = CoreBBS.Functions.GetBlinkText(faqObj.getContent());
        }
        else if (faqObj.getContent().length == 0 || faqObj.getCultureBodyArea().innerHTML == CoreBBS.UI.Text.PageLoading.blink())
        {
            // faqObj.getCultureBodyArea().innerHTML = CoreBBS.UI.Text.PageLoading.blink();
            setTimeout("SetTagTableText(" + faqId + ")", 1000);
            var processor = new FCoreTCIT.Response.ResponseProcessor(_callbackhandler_FAQSelectView,faqObj);
            FCoreTCIT.Request.ASynRequestServer(CoreBBS.Post.ActionType.FAQSelect, faqId, processor);
        }

        if (imgFlag != null) {imgFlag.src = imgFlag.src.replace(new RegExp("\\" + CoreBBS.Config.ImageExpandChar, "ig"), CoreBBS.Config.ImageCollapseChar);}
        tag.rows[1].style.display = "";

        CheckExpandCollapseState(true);
    }
}
// 点击在线支持
function FireLineSupport_Click(object, arg)
{
    object = object.srcElement || object.target;
    var tag = _getParentTableElement(object);
    if (tag == null) return;

    var threadId = _getViewerTableIdByViewerTable(tag);
    if (object.tagName.toUpperCase() == "IMG")
    {
        if (object.title == CoreBBS.UI.Text.AltEdit)
        {
            if (!CoreBBS.User.IsTaxFilingQAAdmin) return;
            var sptObj = GetSupportByViewTable(tag);
            var processor = new FCoreTCIT.Response.ResponseProcessor(_callbackhandler_SptSelectEdit, sptObj.BodyArea);
            FCoreTCIT.Request.ASynRequestServer(CoreBBS.Post.ActionType.SptSelect, threadId, processor);
            return;
        }
        else if (object.title == CoreBBS.UI.Text.AltDelete)
        {
            if (!CoreBBS.User.IsTaxFilingQAAdmin) return;
            if (!confirm(CoreBBS.UI.Text.BeforeDelete)) return;
            var processor = new FCoreTCIT.Response.ResponseProcessor(_callbackhandler_SptDeleteByThreadID, tag);
            FCoreTCIT.Request.ASynRequestServer(CoreBBS.Post.ActionType.SptDelete, threadId, processor);
            return;
        }
    }

    // View
    var imgFlag = tag.rows[0].cells[0].childNodes[0];
    if (tag.rows[1].style.display == "")
    {
        tag.rows[1].style.display = "none";
        if (imgFlag != null) {imgFlag.src = imgFlag.src.replace(new RegExp("\\" + CoreBBS.Config.ImageCollapseChar, "ig"), CoreBBS.Config.ImageExpandChar);}

        CheckExpandCollapseState(false);
    }
    else
    {
        var sptObj = GetSupportByViewTable(tag);
        if (sptObj.BodyArea.innerHTML.length == 0 || sptObj.BodyArea.innerHTML == CoreBBS.UI.Text.PageLoading.blink())
        {
            // sptObj.BodyArea.innerHTML = CoreBBS.UI.Text.PageLoading.blink();
            setTimeout("SetTagTableText(" + threadId + ")", 1000);
            var processor = new FCoreTCIT.Response.ResponseProcessor(_callbackhandler_SptSelectView, sptObj);
            FCoreTCIT.Request.ASynRequestServer(CoreBBS.Post.ActionType.SptSelect, sptObj.ID, processor);
        }

        if (imgFlag != null) {imgFlag.src = imgFlag.src.replace(new RegExp("\\" + CoreBBS.Config.ImageExpandChar, "ig"), CoreBBS.Config.ImageCollapseChar);}
        tag.rows[1].style.display = "";

        CheckExpandCollapseState(true);
    }
}
// 点击在线支持回复
function FireItemSupportReply_Click(objImg)
{
    var tagTable = _getParentTableElement(_getParentTableElement(objImg));
    ReplySupportForm(objImg.getAttribute("alt"), tagTable.rows[0].cells[0].childNodes[1].value, tagTable.rows[0].cells[1].childNodes[0].getAttribute("title"));
}
// 点击在线支持回复的删除
function FireItemSupportReplyDelete_Click(objImg)
{
    if (!CoreBBS.User.IsTaxFilingQAAdmin) return;
    if (!confirm(CoreBBS.UI.Text.BeforeDelete)) return;
    var tag = _getParentTableElement(objImg);
    if (tag == null) return;
    var repImg = objImg.parentNode.childNodes[0];
    if (repImg == null) return;

    var processor = new FCoreTCIT.Response.ResponseProcessor(_callbackhandler_SptDeleteByThreadpostID, tag);
    FCoreTCIT.Request.ASynRequestServer(CoreBBS.Post.ActionType.SptDeletePost, [objImg.getAttribute("alt"),repImg.getAttribute("alt")], processor);
}
// 点击数据行并按照dispstyle做状态显示。
function _expandcollapse_click_controlor(tag, dispstyle)
{
    if (tag.nodeType!=1 || tag.tagName.toUpperCase() != "TABLE") return;
    if (FCoreTCIT.PageInfo.IsIE)
    {
        if (tag.rows.length > 1 && tag.rows[1].style.display != dispstyle)
        {
            tag.rows[0].fireEvent("onclick"); //FCoreTCIT.Events.FireMouseEvent(dispArea.childNodes[i].rows[0], "onclick");
        }
    }
    else if (tag.nodeType == 1)
    {
        if (tag.rows.length > 1 && tag.rows[1].style.display != dispstyle)
        {
            FCoreTCIT.Events.FireMouseEvent(tag.rows[0], "click");
        }
    }
}
// 检测当前页所有行的显示状态并按结果更新"展开/收缩全部"按钮。
function CheckExpandCollapseState(opend)
{
    var _handler = function(tagTable, params) {if ( (tagTable.rows[1].style.display == "none") == (opend) ) return true; else return false;}
    var findTable = _enumerate_activepanellist_controlor(_handler, opend);

    if (FCoreTCIT.Function.isSafeType(findTable, "boolean") || findTable == null)
    {
        var imgExpand = $get(CoreBBS.Page.ExpandCollapseAllButton);
        if (imgExpand == null) return;

        if ((imgExpand.alt == CoreBBS.Config.ImageExpandChar) == (opend) ) FireExpandCollapse_Click(imgExpand);
    }
}
// 点击展开/收缩全部
function FireExpandCollapse_Click(object)
{
    if (object.alt == CoreBBS.Config.ImageExpandChar)
    {
        var dispArea = $get(CoreBBS.Page.ActivePanel);
        for (var i=0; i<dispArea.childNodes.length; i++)
        {
            if (dispArea.childNodes[i].nodeType==1 && dispArea.childNodes[i].style.display != "none")
                _expandcollapse_click_controlor(dispArea.childNodes[i], "");
        }

        object.title = CoreBBS.UI.Text.CollapseAll;
        object.alt = CoreBBS.Config.ImageCollapseChar;
        object.src = object.src.replace(CoreBBS.Config.ImageExpandAll, CoreBBS.Config.ImageCollapseAll);
    }
    else if(object.alt == CoreBBS.Config.ImageCollapseChar)
    {
        var dispArea = $get(CoreBBS.Page.ActivePanel);
        for (var i=0; i<dispArea.childNodes.length; i++)
        {
            if (dispArea.childNodes[i].nodeType==1 && dispArea.childNodes[i].style.display != "none")
                _expandcollapse_click_controlor(dispArea.childNodes[i], "none");
        }

        object.title = CoreBBS.UI.Text.ExpandAll;
        object.alt = CoreBBS.Config.ImageExpandChar;
        object.src = object.src.replace(CoreBBS.Config.ImageCollapseAll, CoreBBS.Config.ImageExpandAll);
    }
}







//==========================================================================
//-------------------------------------------------------------------------
//客户端分页。
function _getpagecount(recordcount, pagesize)
{
    return pagesize > 0 ? parseInt((recordcount + pagesize - 1) / pagesize) : 1;
}
function ReSetRecordCount(newCount, reset, pageIndexEvent)
{
    var pageIndexInput = $get(CoreBBS.Page.PageIndexInput);
    if (pageIndexInput == null) return;
    reset = (reset != window.undefined && reset);
    if (reset || newCount != CoreBBS.Page.RecordCount)
    {
        CoreBBS.Page.RecordCount = newCount;
        CoreBBS.Page.PageCount = _getpagecount(CoreBBS.Page.RecordCount, CoreBBS.Page.PageSize);
        if(!pageIndexEvent) pageIndexInput.value = 0;
        ConfigPostListNavigate(0, false);
    }

    if (!FCoreTCIT.PageInfo.IsIE) return;
    var pageindexpanel = $get(CoreBBS.Page.PageIndexPanel); if (pageindexpanel == null) return;
    if (pageindexpanel.style.visibility == "hidden" || pageindexpanel.style.display == "none") return;

    var blnEnabledList = [true,true,true,true,true];
    var pageIndex = parseInt(pageIndexInput.value);
    if (pageIndex <= 0) {blnEnabledList[0]=false; blnEnabledList[1]=false;}
    if (pageIndex >= CoreBBS.Page.PageCount - 1) {blnEnabledList[2]=false; blnEnabledList[3]=false;}
    for (var i=0,k=0; i<pageindexpanel.childNodes.length; i++)
    {
        if (pageindexpanel.childNodes[i].nodeType != 1 || pageindexpanel.childNodes[i].tagName.toUpperCase() != "UL") continue;
        var ulList = pageindexpanel.childNodes[i].childNodes;
        for (var j=0; j<ulList.length; j++)
        {
            if (ulList[j].nodeType != 1 || ulList[j].tagName.toUpperCase() != "LI") continue;
            SetObjectHrefEnabledState(ulList[j], blnEnabledList[k++]);
        }
        break;
    }
}

function FirePageIndexChanger_Click(tagObj)
{
    var pageIndex = parseInt($get(CoreBBS.Page.PageIndexInput).value);
    if (isNaN(pageIndex)) pageIndex = 0;

    CoreBBS.Page.PageCount = _getpagecount(CoreBBS.Page.RecordCount, CoreBBS.Page.PageSize);
    switch (tagObj.getAttribute("title").toLowerCase())
    {
        case "first":
            pageIndex = 0;
            break;
        case "previous":
            if (pageIndex > 0) pageIndex -= 1;
            break;
        case "next":
            if (pageIndex < (CoreBBS.Page.PageCount - 1)) pageIndex += 1;
            break;
        case "last":
            pageIndex = CoreBBS.Page.PageCount - 1;
            break;
        default: {pageIndex = 0;}
    }
    PageIndexGoTo(pageIndex);
    //if (FCoreTCIT.PageInfo.IsIE) {$get(CoreBBS.Page.PageIndexChanger).fireEvent("onclick");} else {FCoreTCIT.Events.FireMouseEvent($get(CoreBBS.Page.PageIndexChanger), "click");}
}
function FirePageIndexGoTo_Click(tagObj)
{
    if (CoreBBS.Page.PageCount <= 1) {alert(CoreBBS.UI.Text.PageIndexChangeNeedless); return;}
    if (tagObj == null) return;
    var newIndex = parseInt(tagObj.value);
    if (isNaN(newIndex)) if (confirm(CoreBBS.UI.Text.PageIndexFormatUnknow)) newIndex = 1; else return;
    if (newIndex <= 0) newIndex = 1
    if (newIndex > CoreBBS.Page.PageCount) if (confirm(CoreBBS.UI.Text.PageIndexOverflow)) newIndex = CoreBBS.Page.PageCount; else return;
    //if (newIndex > CoreBBS.Page.PageCount) {if (CoreBBS.Page.PageCount <= 0) newIndex = 1; else {if (confirm(CoreBBS.UI.Text.PageIndexOverflow)) newIndex = CoreBBS.Page.PageCount; else return;}}
    PageIndexGoTo(newIndex - 1);
}
function PageIndexGoTo(newPageIndex)
{
    $get(CoreBBS.Page.PageIndexInput).value = newPageIndex;
    window.location.href = $get(CoreBBS.Page.PageIndexChanger).getAttribute("href");
}






//==========================================================================
//-------------------------------------------------------------------------
//名  称： ReceiveServerData
//功  能：	异步执行服务器返回结果(成功后处理)
//返回值：	void
//参  数：	retValue:   服务端返回数据。
//参  数：	context:    上下文件。
//-------------------------------------------------------------------------
function ReceiveServerData(retValue, context)
{
    if (FCoreTCIT.Function.isSafeType(context))
    {
        var index = context.indexOf(CoreBBS.Page.CallBackSplit);
        var eventArgument = index >= 0 ? context.substr(0, index) : context;
        context = context.substr(index + 1);

        switch (eventArgument)
        {
            case "SptInsert":
                break;
            case "SptSelect":
                break;
            case "SptUpdate":
                break;
            case "SptDelete":
                break;
            default:
            {
                alert(retValue);
                break;
            }
        }

        alert(context);
    }
    else if (context.doProcess != window.undefined)
    {
        context.doProcess(retValue, context);
    }
    else
    {
        alert(CoreBBS.UI.Text.UnknowDataFormat);
    }
}
//-------------------------------------------------------------------------
//名  称： ReceiveServerData
//功  能：	异步执行服务器返回结果(失败时处理) //系统未捕获的错误。
//返回值：	void
//参  数：	retValue:   服务端返回数据。
//参  数：	context:    上下文件。
//-------------------------------------------------------------------------
function ReceiveServerError(retValue, context)
{
    if (FCoreTCIT.Function.isSafeType(context))
    {
        var index = context.indexOf(CoreBBS.Page.CallBackSplit);
        var eventArgument = index >= 0 ? context.substr(0, index) : context;
        context = context.substr(index + 1);

        alert("System Error![" + eventArgument + "]");
    }
    else
    {
        alert("System Error![" + retValue + "]");
    }
}

//-------------------------------------------------------------------------
//名  称： ReceiveStateCheck
//功  能：	如果状态失败，弹出错误提示。
//返回值：	boolean
//参  数：	alist0:   服务端返回的第一格数据。
//-------------------------------------------------------------------------
function ReceiveStateCheck(alist0, notAlertError)
{
    var blnRetState = false;
    notAlertError = (notAlertError != window.undefined && notAlertError);
    switch (alist0)
    {
        case FCoreTCIT.Response.ReturnCode.Success:
            blnRetState = true;
            break;
        case FCoreTCIT.Response.ReturnCode.SuccessButError:
            blnRetState = true;
            break;
        case FCoreTCIT.Response.ReturnCode.BadRequest:
            if(!notAlertError && confirm(CoreBBS.UI.Text.ConfirmReloadWhenOperationInvalid)) CoreBBS.Functions.ReLoad();
            break;
        case FCoreTCIT.Response.ReturnCode.AccessDenied:
            alert(CoreBBS.UI.Text.OperationDenied); CoreBBS.Functions.ReLoad();
            break;
        case FCoreTCIT.Response.ReturnCode.ServerError:
            if(!notAlertError) alert(CoreBBS.UI.Text.OperateFailed);
            break;
        default:
        {
            if(!notAlertError) alert(CoreBBS.UI.Text.UnknowDataFormat);
            break;
        }
    }

    if (!blnRetState)
    {
        CoreBBS.Error.Count++;
        CoreBBS.Error.LastError = alist0;
    }
    return blnRetState;
}

