var _nctab = {};

_nctab.item = [];

_nctab.script_pattern = /<script>[\s\S]*?<\/script>/i;

_nctab.tab_pattern = /<tab>[\s\S]*?<\/tab>/i;

_nctab.item_pattern = /<item>[\s\S]*?<\/item>/gi;


//将选项卡信息(tabs)渲染输出到id指定的元素中
_nctab.render = function(id, tabs, fun) {

    try {
        var obj = document.getElementById(id);
        var html = "";

        for (var i = 0; i < tabs.length; i++) {

            if (i == 0)
                html += '<a class="btnselected" id="__tag_' + i.toString() + '" href="javascript:' + fun + '(' + i.toString() + ');"><span><span class="btnvalue">' + tabs[i] + '</span> </span></a>';
            else
                html += '<a class="btn" id="__tag_' + i.toString() + '" href="javascript:' + fun + '(' + i.toString() + ');"><span><span class="btnvalue">' + tabs[i] + '</span> </span></a>';
        }

        obj.innerHTML = html;
    }
    catch (e) { }
}

//从内容中取出选项卡信息
_nctab.get = function(content) {

    try {

        //获取选项卡信息
        {
            var s = content.LTrim().match(_nctab.script_pattern);
            s = s[0].toLowerCase().replace("<script>", "").replace("</script>", "");

            //var _nctab = {_tab:["tab1", "tab2"]};
            eval(s);
        }


        //获取各选项卡内容
        {
            var _tab = content.match(_nctab.tab_pattern);
            var _tabs = _tab[0].match(_nctab.item_pattern);

            for (var i = 0; i < _tabs.length; i++) {

                try {

                    _nctab.item[i] = _tabs[i].substring(6, _tabs[i].length - 7);
                }
                catch (e) {

                    _nctab.item[i] = "";
                }
            }
        }

        return true;

    }
    catch (e) {

        return false;
    }
}

_nctab.init = function() {

    try {

        _nctab.content1 = document.getElementById(_nctab.content1_id);
        _nctab.content2 = document.getElementById(_nctab.content2_id);
        _nctab.tab_container = document.getElementById(_nctab.tab_container_id);

        if (_nctab.get(_nctab.content1.value)) {

            _nctab.content2.value = _nctab.item[0];
            _nctab.item_index = 0;
        }
        else {

            _nctab.content2.value = _nctab.content1.value;
            _nctab.item_index = 0;
        }

        _nctab.render(_nctab.tab_container_id, window._nctab_tab, _nctab.click1_name);
    }
    catch (e) { }
}

_nctab.click1 = function(index) {

    document.frames[_nctab.editor_id].window.setMode("EDIT");
    _nctab.item[_nctab.item_index] = document.frames[_nctab.editor_id].document.frames[0].window.document.body.innerHTML;
    _nctab.item_index = index;

    _nctab.content2.value = _nctab.item[index];

    document.frames[_nctab.editor_id].document.location.href = document.frames[_nctab.editor_id].document.location.href;

    for (var i = 0; i < window._nctab_tab.length; i++)
        _nctab.tab_container.childNodes[i].className = "btn";

    _nctab.tab_container.childNodes[index].className = "btnselected";
}

_nctab.save = function() {

    if (window._nctab_tab && window._nctab_tab.length > 0) {

        document.frames[_nctab.editor_id].window.setMode("EDIT");
        _nctab.item[_nctab.item_index] = document.frames[_nctab.editor_id].document.frames[0].window.document.body.innerHTML;

        var html = "";

        var s = "<script>window._nctab_tab = [";

        for (var i = 0; i < window._nctab_tab.length; i++) {

            s += "\"" + window._nctab_tab[i].toString() + "\"";

            if (i != window._nctab_tab.length - 1)
                s += ",";
        }

        s += "]</script>";

        s += "<script>window.onload = _nctab_render;</script>";

        html += s;

        html += "<tab>";

        for (var i = 0; i < _nctab.item.length; i++) {

            if (i == 0) {

                html += "<item>" + _nctab.item[i].toString() + "</item>";
            }
            else {

                html += "<item>" + _nctab.item[i].toString() + "</item>";
            }
        }

        html += "</tab>";

        _nctab.content1.value = html;
    }
    else {

        document.frames[_nctab.editor_id].window.setMode("EDIT");
        _nctab.content1.value = document.frames[_nctab.editor_id].document.frames[0].window.document.body.innerHTML;
    }
}

_nctab.create = function() {

    window._nctab_tab = ['正文'];
    _nctab.item = [_nctab.content1.value]
}


_nctab.tab = {};

_nctab.tab.list = function() {

    //如果不是选项卡式文章,则建立相关信息
    if (!window._nctab_tab) {

        _nctab.create();
    }
    else {

        //保存副本
        _nctab.tab_container_html = _nctab.tab_container.innerHTML;
        _nctab._window_nctab_tab = [];
        _nctab._item = [];

        for (var i = 0; i < window._nctab_tab.length; i++) {

            _nctab._window_nctab_tab[i] = window._nctab_tab[i].toString();
            _nctab._item[i] = _nctab.item[i].toString();
        }
    }

    var top, _window;

    top = document.body.scrollTop + document.body.clientHeight / 2;
    _window = document.createElement("div");
    _window.style.cssText = "position: absolute; margin:0px 0px 0px -200px; top:" + (top - 150) + "px; left: 50%; width: 400px; height:300px; border: 1px solid #999; filter: progid:DXImageTransform.Microsoft.Shadow(color=#333333,direction=135,strength=10); background-color:#f2f3f1";
    _window.id = "_nctab_tab_window";

    document.body.appendChild(_window);

    var html = "";

    html += "<table cellpadding='0' cellspacing='0' border='0' style='width:100%;'>" +
            "   <tr><td style='height:5px;'></td></tr>" +
            "   <tr>" +
            "       <td>" +
            "           <table cellpadding='0' cellspacing='0' style='width:100%;' border='0' style='height:17px; border-bottom:1px solid #999;'>" +
            "               <tr>" +
            "                   <td width='18' >" +
            "                       <img src='images/icon_apply.gif' hspace='0' vspace='0' />" +
            "                   </td>" +
            "                   <td>选项卡管理</td>" +
            "                   <td width='20'>" +
            "                       <img onclick='_nctab.tab.close(\"_nctab_tab_window\")' src='images/pf.gif' />" +
            "                   </td>" +
            "               </tr>" +
            "           </table>" +
            "       </td>" +
            "   </tr>" +
            "   <tr><td height='5'></td></tr>" +
            "   <tr>" +
            "       <td height='230' valign='top'>" +
            "           <table cellpadding='5' cellspacing='1' style='width:100%; background-color:#f7f7f7;' id='tab_list' border='0'>" +
            "               <tr>" +
            "                   <td align='center' style='background-color:#f2f3f1'><strong>名称</strong></td>" +
            "                   <td align='center' style='background-color:#f2f3f1'><strong>操作</strong></td>" +
            "               </tr>" +
            "           </table>" +
            "       </td>" +
            "   </tr>" +
            "   <tr>" +
            "       <td>" +
            "           <table cellpadding='0' cellspacing='0' style='width:100%;' border='0'>" +
            "               <tr>" +
            "                   <td align='center'>" +
            "                       <input type='button' onclick='_nctab.tab.ok();' value='确定' />&nbsp;" +
            "                       <input type='button' onclick='_nctab.tab.cancel();' value='取消' />&nbsp;" +
            "                       <input type='button' onclick='_nctab.tab.add();' value='添加选项卡' />" +
            "                   </td>" +
            "               </tr>" +
            "           </table>" +
            "       </td>" +
            "   </tr>" +
            "</table>";

    _window.innerHTML = html;

    _nctab.tab._list();
}

_nctab.tab._list = function() {

    var box = document.getElementById("tab_list");

    for (var i = 1, len = box.rows.length; i < len; i++)
        box.deleteRow(1);

    var tr, td;
    for (var i = 0; i < window._nctab_tab.length; i++) {

        tr = box.insertRow(box.rows.length);
        td = tr.insertCell(tr.cells.length);
        td.align = "center"
        td.style.backgroundColor = "#f2f3f1";
        td.innerHTML = window._nctab_tab[i];

        td = tr.insertCell(tr.cells.length);
        td.align = "center"
        td.style.backgroundColor = "#f2f3f1";
        td.innerHTML = "<a href='javascript:_nctab.tab.del(" + i.toString() + ")'>删除</a>&nbsp;&nbsp;<a href='javascript:_nctab.tab.edit(" + i.toString() + ")'>修改</a>";
    }
}


_nctab.tab.del = function(index) {

    for (var i = index; i < window._nctab_tab.length - 1; i++) {

        window._nctab_tab[i] = window._nctab_tab[i + 1];
        _nctab.item[i] = _nctab.item[i + 1];
    }

    window._nctab_tab.pop();
    _nctab.item.pop();

    _nctab.render(_nctab.tab_container_id, window._nctab_tab, _nctab.click1_name);
    _nctab.tab._list();

    if (index == _nctab.item_index) {

        _nctab.click1(0);
    }
}

_nctab.tab.itemwindow = function(add, index) {

    var value = "";

    if (add != "add") {

        value = window._nctab_tab[index];
    }
    else {

        index = 0;
    }

    var top, _window;

    top = document.body.scrollTop + document.body.clientHeight / 2;
    _window = document.createElement("div");
    _window.style.cssText = "position: absolute; margin:0px 0px 0px -100px; top:" + (top - 50) + "px; left: 50%; width: 200px; height:10px; border: 1px solid #999; filter: progid:DXImageTransform.Microsoft.Shadow(color=#333333,direction=135,strength=10); background-color:#f2f3f1";
    _window.id = "_nctab_tab_add";

    document.body.appendChild(_window);

    var html = "";

    html += "<table cellpadding='0' cellspacing='0' border='0' style='width:100%;'>" +
            "   <tr><td style='height:5px;'></td></tr>" +
            "   <tr>" +
            "       <td>" +
            "           <table cellpadding='0' cellspacing='0' style='width:100%;' border='0' style='height:17px; border-bottom:1px solid #999;'>" +
            "               <tr>" +
            "                   <td width='18' >" +
            "                       <img src='images/icon_apply.gif' hspace='0' vspace='0' />" +
            "                   </td>" +
            "                   <td>选项卡编辑</td>" +
            "                   <td width='20'>" +
            "                       <img onclick='_nctab.tab.close(\"_nctab_tab_add\")' src='images/pf.gif' />" +
            "                   </td>" +
            "               </tr>" +
            "           </table>" +
            "       </td>" +
            "   </tr>" +
            "   <tr><td height='5'></td></tr>" +
            "   <tr>" +
            "       <td height='30' align='center'>" +
            "           <input type='text' id='_nctab_itemvalue' maxlength='20' value='" + value + "' />" +
            "       </td>" +
            "   </tr>" +
             "   <tr>" +
            "       <td height='30' align='center'>" +
            "           <input type='button' value='确定' onclick='_nctab.tab.itemok(\"" + add.toString() + "\", " + index.toString() + ");' />" +
            "           <input type='button' value='取消' onclick='_nctab.tab.itemcancel();' />" +
            "       </td>" +
            "   </tr>" +
            "</table>";

    _window.innerHTML = html;
}

_nctab.tab.add = function() {

    _nctab.tab.itemwindow("add", 0);
}

_nctab.tab.itemok = function(add, index) {

    var obj = document.getElementById("_nctab_itemvalue");

    if (obj.value != "") {

        if (add == "add") {

            window._nctab_tab[window._nctab_tab.length] = obj.value;
            _nctab.item[_nctab.item.length] = "";
        }
        else {

            window._nctab_tab[index] = obj.value;
        }

        _nctab.render(_nctab.tab_container_id, window._nctab_tab, _nctab.click1_name);
        _nctab.tab._list();
    }

    _nctab.tab.close("_nctab_tab_add");
}

_nctab.tab.itemcancel = function() {

    _nctab.tab.close("_nctab_tab_add");
}

_nctab.tab.edit = function(index) {

    _nctab.tab.itemwindow("edit", index);
}

_nctab.tab.cancel = function() {

    if (_nctab._window_nctab_tab) {

        _nctab.tab_container.innerHTML = _nctab.tab_container_html;

        window._nctab_tab = _nctab._window_nctab_tab;
        _nctab.item = _nctab._item;
    }
    else {

        window._nctab_tab = null;
        _nctab.item = null;
        _nctab._window_nctab_tab = null;
    }

    _nctab.tab.close("_nctab_tab_window");
}

_nctab.tab.close = function(id) {

    var w = document.getElementById(id);
    w.parentNode.removeChild(w);
}


_nctab.tab.ok = function() {

    _nctab.tab.close("_nctab_tab_window");
}