function pdnovelcategoryrow($key, $level = 0, $last = "")
{
    global $_G;
    loadcache("pdnovelcategory");
    $value = $_G['cache']['pdnovelcategory'][$key];
    $return = "";
    if ($level == 1) {
        $return = "<tr class=\"hover\" id=\"cat" . $value['catid'] . "\"><td> </td><td class=\"td25\"><input type=\"text\" class=\"txt\" name=\"order[" . $value['catid'] . "]\" value=\"" . $value['displayorder'] . "\" /></td><td><div class=\"board\"><input type=\"text\" class=\"txt\" name=\"name[" . $value['catid'] . "]\" value=\"" . $value['catname'] . "\" /></div></td><td class=\"txt170\"><input type=\"text\" class=\"txt\" name=\"caption[" . $value['catid'] . "]\" value=\"" . $value['caption'] . "\" /></td><td class=\"txt170\"><input type=\"text\" class=\"txt\" name=\"keyword[" . $value['catid'] . "]\" value=\"" . $value['keyword'] . "\" /></td><td class=\"txt170\"><input type=\"text\" class=\"txt\" name=\"summary[" . $value['catid'] . "]\" value=\"" . $value['description'] . "\" /></td><td class=\"td28 lightfont\">catid:" . $value['catid'] . "</td><td><a href=\"" . ADMINSCRIPT . "?action=pdnovel&operation=category&do=delete&catid=" . $value['catid'] . "\">" . cplang("delete") . "</a></td></tr>";
        return $return;
    }
    $childrennum = count($_G['cache']['pdnovelcategory'][$key]['children']);
    $toggle = 25 < $childrennum ? " style=\"display:none\"" : "";
    $return = "<tbody><tr class=\"hover\" id=\"cat" . $value['catid'] . "\"><td onclick=\"toggle_group('group_" . $value['catid'] . "')\"><a id=\"a_group_" . $value['catid'] . "\" href=\"javascript:;\">" . ($toggle ? "[+]" : "[-]") . "</a></td><td class=\"td25\"><input type=\"text\" class=\"txt\" name=\"order[" . $value['catid'] . "]\" value=\"" . $value['displayorder'] . "\" /></td><td><div class=\"parentboard\"><input type=\"text\" class=\"txt\" name=\"name[" . $value['catid'] . "]\" value=\"" . $value['catname'] . "\" /></div></td><td class=\"txt170\"><input type=\"text\" class=\"txt\" name=\"caption[" . $value['catid'] . "]\" value=\"" . $value['caption'] . "\" /></td><td class=\"txt170\"><input type=\"text\" class=\"txt\" name=\"keyword[" . $value['catid'] . "]\" value=\"" . $value['keyword'] . "\" /></td><td class=\"txt170\"><input type=\"text\" class=\"txt\" name=\"summary[" . $value['catid'] . "]\" value=\"" . $value['description'] . "\" /></td><td class=\"td28 lightfont\">catid:" . $value['catid'] . "</td><td><a href=\"" . ADMINSCRIPT . "?action=pdnovel&operation=category&do=delete&catid=" . $value['catid'] . "\">" . cplang("delete") . "</a></td></tr></tbody><tbody id=\"group_" . $value['catid'] . "\"" . $toggle . ">";
    $i = 0;
    $L = count($value['children']);
    for (; $i < $L; ++$i) {
        $return .= pdnovelcategoryrow($value['children'][$i], 1, "");
    }
    $return .= "</tdoby><tr><td> </td><td colspan=\"6\"><div class=\"lastboard\"><a href=\"###\" onclick=\"addrow(this, 1, " . $value['catid'] . ")\" class=\"addtr\">" . cplang("category_addsubcategory") . "</a></div></td></tr>";
    return $return;
}
    exit('Access Denied');
}
pdnovelcache('pdnovelcategory', 'pdnovel');
loadcache('pdnovelcategory');
$pdnovelcategory = $_G['cache']['pdnovelcategory'];
shownav('pdnovel', 'category');
if ($do == 'show') {
    if (!submitcheck('categorysubmit')) {
        showsubmenu('category', array(array('list', 'pdnovel&operation=category', 1)));
        showformheader('pdnovel&operation=category');
        echo "<style>.txt170 .txt{min-width:170px;}</style><div><a href=\"javascript:;\" onclick=\"show_all()\">" . cplang('show_all') . "</a> | <a href=\"javascript:;\" onclick=\"hide_all()\">" . cplang('hide_all') . '</a></div>';
        showtableheader('', '', " style=\"min-width:910px; _width:910px;\"");
        showsubtitle(array('', 'category_displayorder', 'category_name', 'category_caption', 'category_keyword', 'category_summary', ' ', 'category_operation'));
        foreach ($pdnovelcategory as $key => $value) {
            if ($value['level'] == 0) {
                echo pdnovelcategoryrow($key, 0, '');
            }
        }
        echo "<tbody><tr><td> </td><td colspan=\"6\"><div><a href=\"###\" onclick=\"addrow(this, 0)\" class=\"addtr\">" . cplang('category_addcategory') . '</a></div></td></tr></tbody>';
        showsubmit('categorysubmit');
        showtablefooter();
        showformfooter();
        echo "<script type=\"text/Javascript\">\r\nvar rowtypedata = [\r\n[[1,'',''], [1,'<input type=\"text\" class=\"txt\" name=\"neworder[0][]\" value=\"0\" />', 'td25'], [1,'<div class=\"parentboard\"><input type=\"text\" class=\"txt\" name=\"newname[0][]\" value=\"";
        echo $lang['category_newname'];
        echo "\"/></div>'], [1,'<input type=\"text\" class=\"txt\" name=\"newcaption[0][]\" value=\"";
        echo $lang['category_caption'];
        echo "\"/></div>','txt170'], [1,'<input type=\"text\" class=\"txt\" name=\"newkeyword[0][]\" value=\"";
        echo $lang['category_keyword'];
        echo "\"/></div>','txt170'], [1,'<input type=\"text\" class=\"txt\" name=\"newsummary[0][]\" value=\"";
        echo $lang['category_summary'];
        echo "\"/></div>','txt170'], [1,'','']],\r\n[[1,'',''], [1,'<input type=\"text\" class=\"txt\" name=\"neworder[{1}][]\" value=\"0\" />', 'td25'], [1,'<div class=\"board\"><input type=\"text\" class=\"txt\" name=\"newname[{1}][]\" value=\"";