function Main()
{
    global $site;
    global $date_format;
    $sRetHtml = '';
    $oBlogs = new BxDolBlogs(TRUE);
    $oBlogs->bAdminMode = TRUE;
    $sRetHtml .= $oBlogs->GenCommandForms();
    switch ($_REQUEST['action']) {
        //print functions
        case 'top_blogs':
            $sRetHtml .= $oBlogs->GenBlogLists('top');
            break;
        case 'show_member_blog':
            $sRetHtml .= $oBlogs->GenMemberBlog();
            break;
        case 'top_posts':
            $sRetHtml .= $oBlogs->GenPostLists('top');
            break;
        case 'new_post':
            $sRetHtml .= $oBlogs->AddNewPostForm();
            break;
        case 'show_member_post':
            $sRetHtml .= $oBlogs->GenPostPage();
            break;
        case 'search_by_tag':
            $sRetHtml .= $oBlogs->GenSearchResult();
            break;
            //forms of editing
        //forms of editing
        case 'add_category':
            $sRetHtml .= $oBlogs->GenEditCategoryForm();
            break;
        case 'edit_category':
            $iCategoryID = (int) $_REQUEST['categoryID'];
            $sRetHtml .= $oBlogs->GenEditCategoryForm($iCategoryID);
            break;
        case 'edit_post':
            $iPostID = (int) $_POST['EditPostID'];
            $sRetHtml .= $oBlogs->AddNewPostForm($iPostID);
            break;
            //non safe functions
        //non safe functions
        case 'create_blog':
            $sRetHtml .= $oBlogs->ActionCreateBlog();
            break;
        case 'edit_blog':
            $sRetHtml .= $oBlogs->ActionEditBlog();
            $iOwnerID = (int) $_REQUEST['EOwnerID'];
            $sRetHtml .= $oBlogs->GenMemberBlog($iOwnerID);
            break;
        case 'delete_blog':
            $sRetHtml .= $oBlogs->ActionDeleteBlogSQL();
            $sRetHtml .= $oBlogs->GenBlogLists('last');
            break;
        case 'addcategory':
            $sRetHtml .= $oBlogs->ActionUpdateCategory();
            $iOwnerID = (int) $_REQUEST['OwnerID'];
            $_REQUEST['category'] = mysql_insert_id();
            $sRetHtml .= $oBlogs->GenMemberBlog($iOwnerID);
            break;
        case 'editcategory':
            $sRetHtml .= $oBlogs->ActionUpdateCategory(TRUE);
            $iOwnerID = (int) $_REQUEST['OwnerID'];
            $_REQUEST['category'] = mysql_insert_id();
            $sRetHtml .= $oBlogs->GenMemberBlog($iOwnerID);
            break;
        case 'delete_category':
            $sRetHtml .= $oBlogs->ActionDeleteCategory();
            break;
        case 'add_post':
            $arrPostAdv = $oBlogs->GetPostArrByPostValues();
            $arrErr = $oBlogs->GetCheckErrors($arrPostAdv);
            if (empty($arrErr)) {
                $iLastID = -1;
                $sRetHtml .= $oBlogs->ActionAddNewPost($iLastID);
                $_REQUEST['post_id'] = $iLastID;
                $sRetHtml .= $oBlogs->GenPostPage();
            } else {
                $sRetHtml .= $oBlogs->AddNewPostForm(-1, $arrErr);
            }
            break;
        case 'post_updated':
            $iPostID = (int) $_POST['EditedPostID'];
            $arrPostAdv = $oBlogs->GetPostArrByPostValues();
            $arrErr = $oBlogs->GetCheckErrors($arrPostAdv);
            if (empty($arrErr)) {
                $sRetHtml .= $oBlogs->ActionEditPost();
                $_REQUEST['post_id'] = $iPostID;
                $sRetHtml .= $oBlogs->GenPostPage();
            } else {
                $sRetHtml .= $oBlogs->AddNewPostForm($iPostID, $arrErr);
            }
            break;
        case 'delete_post':
            $iOwnerID = (int) $_REQUEST['DOwnerID'];
            $sRetHtml .= $oBlogs->ActionDeletePost();
            $sRetHtml .= $oBlogs->GenMemberBlog($iOwnerID);
            break;
        case 'addcomment':
            $sRetHtml .= $oBlogs->ActionAddBlogComment();
            $iPostID = (int) $_POST['CommPostID'];
            $iOwnerID = (int) $_POST['ownerID'];
            $_REQUEST['post_id'] = $iPostID;
            $sRetHtml .= $oBlogs->GenPostPage();
            break;
        case 'editcomment':
            $sRetHtml .= $oBlogs->ActionEditComment();
            $iPostID = (int) $_POST['EPostID'];
            $iOwnerID = (int) $_POST['ownerID'];
            $_REQUEST['post_id'] = $iPostID;
            $sRetHtml .= $oBlogs->GenPostPage();
            break;
        case 'delete_comment':
            $sRetHtml .= $oBlogs->ActionDeleteComment();
            $iPostID = (int) $_POST['DPostID'];
            $iOwnerID = (int) $_POST['ownerID'];
            $_REQUEST['post_id'] = $iPostID;
            $sRetHtml .= $oBlogs->GenPostPage();
            break;
        default:
            $sRetHtml .= $oBlogs->GenBlogLists('last');
            break;
    }
    print $sRetHtml;
}