function sp_TopicIndexIcon($args = '')
{
    global $spThisForum, $spThisTopic;
    $defs = array('tagId' => 'spTopicIndexIcon%ID%', 'tagClass' => 'spRowIcon', 'icon' => 'sp_TopicIcon.png', 'iconUnread' => 'sp_TopicIconPosts.png', 'iconLocked' => 'sp_TopicIconLocked.png', 'iconPinned' => 'sp_TopicIconPinned.png', 'echo' => 1, 'get' => 0);
    $a = wp_parse_args($args, $defs);
    $a = apply_filters('sph_TopicIndexIcon_args', $a);
    extract($a, EXTR_SKIP);
    # sanitize before use
    $tagId = esc_attr($tagId);
    $tagClass = esc_attr($tagClass);
    $echo = (int) $echo;
    $get = (int) $get;
    $tagId = str_ireplace('%ID%', $spThisTopic->topic_id, $tagId);
    $path = SPTHEMEICONSDIR;
    $url = SPTHEMEICONSURL;
    if ($spThisTopic->topic_status || $spThisForum->forum_status) {
        $tIcon = sanitize_file_name($iconLocked);
        if (!empty($spThisForum->topic_icon_locked)) {
            $tIcon = sanitize_file_name($spThisForum->topic_icon_locked);
            $path = SFCUSTOMDIR;
            $url = SFCUSTOMURL;
        }
    } elseif ($spThisTopic->topic_pinned) {
        $tIcon = sanitize_file_name($iconPinned);
        if (!empty($spThisForum->topic_icon_pinned)) {
            $tIcon = sanitize_file_name($spThisForum->topic_icon_pinned);
            $path = SFCUSTOMDIR;
            $url = SFCUSTOMURL;
        }
    } elseif ($spThisTopic->unread) {
        $tIcon = sanitize_file_name($iconUnread);
        if (!empty($spThisForum->topic_icon_new)) {
            $tIcon = sanitize_file_name($spThisForum->topic_icon_new);
            $path = SFCUSTOMDIR;
            $url = SFCUSTOMURL;
        }
    } else {
        $tIcon = sanitize_file_name($icon);
        if (!empty($spThisForum->topic_icon)) {
            $tIcon = sanitize_file_name($spThisForum->topic_icon);
            $path = SFCUSTOMDIR;
            $url = SFCUSTOMURL;
        }
    }
    if (!file_exists($path . $tIcon)) {
        $tIcon = sp_paint_icon($tagClass, SPTHEMEICONSURL, $icon);
    } else {
        $tIcon = sp_paint_custom_icon($tagClass, $url . $tIcon);
    }
    if ($get) {
        return $tIcon;
    }
    $out = sp_paint_icon_id($tIcon, $tagId);
    $out = apply_filters('sph_TopicIndexIcon', $out, $a);
    if ($echo) {
        echo $out;
    } else {
        return $out;
    }
}
function sp_ListTopicIcon($args = '')
{
    global $spThisListTopic;
    $defs = array('tagId' => 'spListTopicIcon%ID%', 'tagClass' => 'spRowIconSmall', 'icon' => 'sp_TopicIconSmall.png', 'echo' => 1, 'get' => 0);
    $a = wp_parse_args($args, $defs);
    $a = apply_filters('sph_ListTopicIcon_args', $a);
    extract($a, EXTR_SKIP);
    # sanitize before use
    $tagId = esc_attr($tagId);
    $tagClass = esc_attr($tagClass);
    $echo = (int) $echo;
    $get = (int) $get;
    $tagId = str_ireplace('%ID%', $spThisListTopic->topic_id, $tagId);
    $path = SPTHEMEICONSDIR;
    $url = SPTHEMEICONSURL;
    if (isset($spThisListTopic->new_post_count) && $spThisListTopic->new_post_count > 0) {
        $tIcon = sanitize_file_name($icon);
        if (!empty($spThisListTopic->topic_icon_new)) {
            $tIcon = sanitize_file_name($spThisListTopic->topic_icon_new);
            $path = SFCUSTOMDIR;
            $url = SFCUSTOMURL;
        }
    } else {
        $tIcon = sanitize_file_name($icon);
        if (!empty($spThisListTopic->topic_icon)) {
            $tIcon = sanitize_file_name($spThisListTopic->topic_icon);
            $path = SFCUSTOMDIR;
            $url = SFCUSTOMURL;
        }
    }
    if (!file_exists($path . $tIcon)) {
        $tIcon = sp_paint_icon($tagClass, SPTHEMEICONSURL, sanitize_file_name($icon));
    } else {
        $tIcon = sp_paint_custom_icon($tagClass, $url . $tIcon);
    }
    if ($get) {
        return $tIcon;
    }
    $out = sp_paint_icon_id($tIcon, $tagId);
    $out = apply_filters('sph_ListTopicIcon', $out, $a);
    if ($echo) {
        echo $out;
    } else {
        return $out;
    }
}
function sp_PostNewButton($args = '', $label = '', $toolTip = '', $toolTipLock = '', $toolTipDenied = '')
{
    global $spThisTopic, $spGlobals, $spThisUser;
    # can be empty if request is for a bogus topic slug
    if (empty($spThisTopic)) {
        return;
    }
    if ($spThisTopic->editmode) {
        return;
    }
    $allowed = $spThisTopic->reply_own_topics && $spThisTopic->topic_starter == $spThisUser->ID;
    if ($spThisTopic->reply_topics) {
        $allowed = true;
    }
    $defs = array('tagId' => 'spPostNewButton', 'tagClass' => 'spButton', 'icon' => 'sp_NewPost.png', 'iconLock' => 'sp_TopicStatusLock.png', 'iconDenied' => 'sp_WriteDenied.png', 'iconClass' => 'spIcon', 'iconStatusClass' => 'spIcon', 'echo' => 1);
    $a = wp_parse_args($args, $defs);
    $a = apply_filters('sph_PostNewButton_args', $a);
    extract($a, EXTR_SKIP);
    # sanitize before use
    $tagId = esc_attr($tagId);
    $tagClass = esc_attr($tagClass);
    $icon = sanitize_file_name($icon);
    $iconClass = esc_attr($iconClass);
    $iconStatusClass = esc_attr($iconStatusClass);
    $toolTip = esc_attr($toolTip);
    $toolTipLock = esc_attr($toolTipLock);
    $echo = (int) $echo;
    # is the forum locked?
    $out = '';
    $lock = false;
    if ($spGlobals['lockdown'] || $spThisTopic->forum_status || $spThisTopic->topic_status) {
        if (!empty($iconLock)) {
            $iconLock = sp_paint_icon($tagClass . ' ' . $iconStatusClass, SPTHEMEICONSURL, sanitize_file_name($iconLock), $toolTipLock);
            $out .= sp_paint_icon_id($iconLock, $tagId);
        }
        if (!$spThisUser->admin) {
            $lock = true;
        }
    }
    if (!$lock && $allowed) {
        $out .= "<a href='javascript:void(null)' class='{$tagClass}' id='{$tagId}' title='{$toolTip}' onclick='spjOpenEditor(\"spPostForm\", \"post\");'>\n";
        if (!empty($icon)) {
            $out .= sp_paint_icon($iconClass, SPTHEMEICONSURL, $icon);
        }
        if (!empty($label)) {
            $out .= sp_filter_title_display($label);
        }
        $out .= "</a>\n";
    }
    # Display if user not allowed to start topics
    if (!$allowed && !empty($toolTipDenied)) {
        if (!empty($iconDenied)) {
            $out .= "<a href='#' class='{$tagClass}' id='{$tagId}' title='{$toolTipDenied}'>\n";
            $out .= sp_paint_icon($iconStatusClass, SPTHEMEICONSURL, sanitize_file_name($iconDenied), $toolTipDenied);
            $out .= "</a>\n";
        }
    }
    $out = apply_filters('sph_PostNewButton', $out, $a);
    if ($echo) {
        echo $out;
    } else {
        return $out;
    }
}
function sp_MembersUsergroupIcon($args = '')
{
    global $spThisMemberGroup;
    if (!sp_get_auth('view_members_list')) {
        return;
    }
    $defs = array('tagId' => 'spUsergroupIcon%ID%', 'tagClass' => 'spHeaderIcon', 'icon' => 'sp_MembersIcon.png', 'echo' => 1, 'get' => 0);
    $a = wp_parse_args($args, $defs);
    $a = apply_filters('sph_UsergroupIcon_args', $a);
    extract($a, EXTR_SKIP);
    # sanitize before use
    $tagId = esc_attr($tagId);
    $tagClass = esc_attr($tagClass);
    $icon = sanitize_file_name($icon);
    $echo = (int) $echo;
    $get = (int) $get;
    $tagId = str_ireplace('%ID%', $spThisMemberGroup->usergroup_id, $tagId);
    $icon = sp_paint_icon($tagClass, SPTHEMEICONSURL, sanitize_file_name($icon));
    if ($get) {
        return $icon;
    }
    $out = sp_paint_icon_id($icon, $tagId);
    $out = apply_filters('sph_UsergroupIcon', $out, $a);
    if ($echo) {
        echo $out;
    } else {
        return $out;
    }
}