<?php
/**
 * pragmaMx  Content Management System
 * Copyright (c) 2006 pragmaMx Dev Team - http://pragmaMx.org
 * 
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 * 
 * $Source: /home/www/dps3311/home/cvsroot/pragmamx/html/modules/Userinfo/view.php,v $
 * $Revision: 1.16.4.5 $
 * $Author: tora60 $
 * $Date: 2006/12/05 19:39:32 $
 */

if (!defined("mxMainFileLoaded")) die ("You can't access this file directly...");
if (!defined("mxYALoaded")) die ("You can't access this file directly...");

/**
 * zeigt die Daten eines angemeldetet Users an
 */
function viewuserinfo($uinfo)
{
    global $prefix, $user_prefix, $bgcolor1, $bgcolor2, $bgcolor3, $useuserpoints;
    global $istheuser, $privmsgactive, $gbactiv, $showall; // fuer Unterfunktionen in mx_userfunctions_options.php
    if (!isset($useuserpoints)) include("modules/Your_Account/config.php"); 
    // Für die Fotoalbum Funktion
    if (@is_file("modules/Avatar/index.php")) {
        if (file_exists("modules/Avatar/settings.php")) {
            include("modules/Avatar/settings.php"); 
            // Für die neue Version:
            if (($album) && file_exists("modules/Avatar/thumb.php")) {
                if (!defined("AV_ALBUM")) define("AV_ALBUM", 1);
            } 
        } 
    } 
    mxGetLangfile("Your_Account");

    $uinfo = mxPrepareCensored($uinfo);

    $istheuser = vkpUserIsThisTheUser($uinfo['uid']);
    $showall = ($istheuser || MX_IS_ADMIN) ? 1 : 0;

    $privmsgactive = (mxModuleAllowed("Private_Messages")) ? 1 : 0; # feststellen ob pm-modul aktiv ist
    $gbactiv = (mxModuleAllowed("UserGuest")) ? 1 : 0; # feststellen ob gaestebuch vorhanden
    $uinfo['url'] = mxCutHTTP($uinfo['url']); 
    // Signatur
    if (!empty($uinfo['user_sig'])) {
        if (@file_exists('modules/Private_Messages/bbfunctions.php')) {
            include_once('modules/Private_Messages/bbfunctions.php');
            $uinfo['user_sig'] = msg_smile(msg_bbencode(make_clickable(pmxSigBbCode($uinfo['user_sig']))));
        } 
        $uinfo['user_sig'] = mxNL2BR(mxPrepareToDisplay($uinfo['user_sig']));
    } 
    // Modul erlaubt? :
    // Prüfem ob ein Avatar hochgeladen wurde:
    $isAvatarUploaded = mxIsAvatarUploaded($uinfo['uname'], false, true); 
    // Prüfem ob ein Avatar hochgeladen wurde:
    if (!$isAvatarUploaded['werist']) {
        $uinfo['user_avatar'] = (empty($uinfo['user_avatar']) || $uinfo['user_avatar'] == "blank.gif") ? "" : mxCreateImage(MX_PATH_AVATAR . "/" . $uinfo['user_avatar'], $uinfo['user_avatar']);
    } else {
        $uinfo['user_avatar'] = mxCreateImage(MX_PATH_MEMBERAVATAR . "/" . $isAvatarUploaded['werist']);
    } 
    // Private Nachrichten
    if ($privmsgactive && $istheuser) { // falls pm-modul aktiv ist
        $uinfo['countpm'] = 0;
        $uinfo['countpmread'] = 0;
        $uinfo['countpmunread'] = 0;
        $qry = "SELECT read_msg, Count(msg_id) FROM ${prefix}_priv_msgs WHERE to_userid='" . intval($uinfo['uid']) . "' group by read_msg;";
        $result = sql_query($qry);
        while (list($read_msg, $nums) = sql_fetch_row($result)) {
            if ($read_msg == 0) { // wenn angemeldeter User
                $uinfo['countpmunread'] = $nums; # Anzahl ungelesene ermitteln
            } else {
                $uinfo['countpmread'] = $nums; # Anzahl gelesener pm's ermitteln
            } 
        } 
        $uinfo['countpm'] = $uinfo['countpmread'] + $uinfo['countpmunread'];
        $uinfo['contpm'] = "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td nowrap><a href=\"modules.php?name=Private_Messages\"><b>" . $uinfo['countpm'] . "</b></a>&nbsp;<a href=\"modules.php?name=Private_Messages\">" . _YA_BWOPMSGALL . "</a>";
        if ($uinfo['countpmunread']) {
            $uinfo['contpm'] .= "</td><td>,&nbsp;</td><td nowrap><a href=\"modules.php?name=Private_Messages\"><marquee behavior='alternate' direction='left' width='100' hspace='0' vspace='0' loop=''><b>" . $uinfo['countpmunread'] . "</b>&nbsp;<b>" . _YA_BWOPMSGUNREAD . "</b></marquee></a>\n";
        } 
        $uinfo['contpm'] .= "</td><td>&nbsp;&nbsp;*</td></tr></table>";
    } 
    // Online oder Offline
    $uinfo['online'] = ($istheuser) ? true : mxIsUserOnline($uinfo['uname']);
    $uinfo['lastonline'] = ($uinfo['online']) ? "" : mx_strftime(_XDATESTRING, $uinfo['user_lastvisit']);
    if ($uinfo['online']) {
        $uinfo['online'] = mxCreateImage("images/online.gif", _YES) . '&nbsp;' . _YES;
    } else {
        $uinfo['online'] = mxCreateImage("images/offline.gif", _NO) . '&nbsp;' . _NO;
    } 
    // Newsletter
    if (mxModuleAllowed("Newsletter")) {
        $resultx = sql_query("SELECT status FROM ${prefix}_newsletter WHERE email='" . mxAddSlashesForSQL($uinfo['email']) . "' OR email='" . mxAddSlashesForSQL($uinfo['femail']) . "'");
        list($status) = sql_fetch_row($resultx);
        $uinfo['newsletter'] = (empty($status) || $status == 3) ? _NOTSUBSCRIBED : _SUBSCRIBED;
        $img = (empty($status) || $status == 3) ? "images/td.gif" : "images/tu.gif";
        $uinfo['newsletter'] = mxCreateImage($img, $uinfo['newsletter']) . "&nbsp;" . $uinfo['newsletter'] . "\n";
    } 
    // Userpunkte
    // $uinfo['userpoints'] = 0;
    $uinfo['hasuserpoints'] = "";
    $uinfo['userpointsfaq'] = "";
    if ($useuserpoints) {
        if (@file_exists("modules/Your_Account/userpoints.php")) {
            $uname = $uinfo['uname'];
            include_once("modules/Your_Account/userpoints.php");
            $uinfo['hasuserpoints'] = $hasuserpoints; 
            // $uinfo['userpoints']    = $userpoints;
            $uinfo['userpointsfaq'] = $userpointsfaq;
        } 
    } 
    // Usergaestebuch
    $uinfo['gbnewentries'] = 0;
    if ($gbactiv) { // falls gaestebuch vorhanden
        $qry = "SELECT Count(gid) FROM ${prefix}_userguest WHERE touserid='" . intval($uinfo['uid']) . "' and dummy=0;";
        $result = sql_query($qry);
        list($uinfo['gbnewentries']) = sql_fetch_row($result);
    } 
    // Geburtstag
    $bday = explode('-', $uinfo['user_bday']);
    $uinfo['user_bday'] = (@checkdate($bday[1], $bday[2], $bday[0])) ? vkpGetBdayString($uinfo['user_bday']) : ""; 
    // Benutzergruppe
    if (MX_IS_ADMIN) {
        $result = sql_query("SELECT access_title FROM " . $prefix . "_groups_access WHERE access_id = " . intval($uinfo['user_ingroup']));
        list($uinfo['usergroup']) = sql_fetch_row($result);
    } 
    // //////////////////////// Ausgabe der Daten /////////////////////////////////////////////////////
    include("header.php");
        if ($istheuser && $_REQUEST['name'] == "Your_Account") {
       include("header.php");
        /*include_once("modules/Your_Account/navbar.php");
        OpenTable();
        nav(1);
        CloseTable();
        echo "<br>";*/
    } else {
  yaheader($uinfo);
 yabody();
    }
    if (function_exists('viewuserinfo_option_1')) {
        viewuserinfo_option_1($uinfo);
    } else {
        OpenTable();
        echo "<center>";
        echo "<table border=\"0\" cellspacing=\"1\" cellpadding=\"3\" bgcolor=\"$bgcolor1\">\n";
        echo "<tr valign=\"top\"><td width=\"20%\" bgcolor=\"$bgcolor2\"><b>" . _NICKNAME . ":</b></td><td bgcolor=\"$bgcolor3\"><b>" . mxPrepareToDisplay($uinfo['uname']) . "</b></td></tr>\n";
        if ($showall) echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>" . _UREALEMAIL . ":</b></td><td bgcolor=\"$bgcolor3\"><a href=\"mailto:" . mxPrepareToDisplay($uinfo['email']) . "\"><b>" . mxPrepareToDisplay($uinfo['email']) . "</b></a> *</td></tr>\n";
        if (!empty($uinfo['user_avatar'])) echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>" . _AVATAR . ":</b></td><td bgcolor=\"$bgcolor3\">" . $uinfo['user_avatar'] . "</td></tr>\n"; 
        // Als Thumbnail darstellen: (Nur Fotos!)
        if (!empty($isAvatarUploaded['foto']) && defined("AV_ALBUM")) echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>" . _AV_USERFOTO . "</b></td><td bgcolor=\"$bgcolor3\"><img src=\"modules/Avatar/thumb.php?wat=displayThumb&amp;pic=" . $isAvatarUploaded['foto'] . "\" alt=\"" . $isAvatarUploaded['foto'] . "\"><br><a href=\"modules.php?name=Avatar&amp;file=album&amp;uid=" . $isAvatarUploaded['aid'] . "\">" . _AV_VISIT_ALBUM . "</a></td></tr>\n";
        else if (defined("AV_ALBUM")) echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>" . _AV_USERFOTO . "</b></td><td bgcolor=\"$bgcolor3\">" . _AV_NO_PICS_UPLOADED . "<br><a href=\"modules.php?name=Avatar&amp;file=album&amp;uid=" . $uinfo['uname'] . "\">" . _AV_VISIT_ALBUM . "</a></td></tr>\n";
        if (!empty($uinfo['femail'])) echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>" . _UFAKEMAIL . ":</b></td><td bgcolor=\"$bgcolor3\"><a href=\"mailto:" . mxPrepareToDisplay($uinfo['femail']) . "\">" . mxPrepareToDisplay($uinfo['femail']) . "</a></td></tr>\n";
        if (!empty($uinfo['name'])) echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>" . _UREALNAME . ":</b></td><td bgcolor=\"$bgcolor3\">" . mxPrepareToDisplay($uinfo['name']) . "</td></tr>\n";
        if (!empty($uinfo['user_sexus'])) echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>" . _YA_USEXUS . ":</b></td><td bgcolor=\"$bgcolor3\">" . vkpGetSexusString($uinfo['user_sexus']) . "</td></tr>\n";
        if (!empty($uinfo['user_bday'])) echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>" . _YA_UBDAY . ":</b></td><td bgcolor=\"$bgcolor3\">" . $uinfo['user_bday'] . "&nbsp;, " . $uinfo['user_age'] . "&nbsp;" . _YEARS . "</td></tr>\n";
        if (!empty($uinfo['url'])) echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>" . _MYHOMEPAGE . "</b></td><td bgcolor=\"$bgcolor3\"><a href=\"" . mxPrepareToDisplay($uinfo['url']) . "\" target=\"_blank\">" . mxPrepareToDisplay($uinfo['url']) . "</a></td></tr>\n";
        if (!empty($uinfo['user_icq'])) echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>" . _ICQ . ":</b></td><td bgcolor=\"$bgcolor3\">" . mxPrepareToDisplay($uinfo['user_icq']) . "</td></tr>\n";
        if (!empty($uinfo['user_aim'])) echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>" . _AIM . "</b></td><td bgcolor=\"$bgcolor3\">" . mxPrepareToDisplay($uinfo['user_aim']) . "</td></tr>\n";
        if (!empty($uinfo['user_yim'])) echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>" . _YIM . ":</b></td><td bgcolor=\"$bgcolor3\">" . mxPrepareToDisplay($uinfo['user_yim']) . "</td></tr>\n";
        if (!empty($uinfo['user_msnm'])) echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>" . _MSNM . ":</b></td><td bgcolor=\"$bgcolor3\">" . mxPrepareToDisplay($uinfo['user_msnm']) . "</td></tr>\n";
        if (!empty($uinfo['user_from'])) echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>" . _LOCATION . ":</b></td><td bgcolor=\"$bgcolor3\">" . mxPrepareToDisplay($uinfo['user_from']) . "</td></tr>\n";
        if (!empty($uinfo['user_occ'])) echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>" . _OCCUPATION . ":</b></td><td bgcolor=\"$bgcolor3\">" . mxPrepareToDisplay($uinfo['user_occ']) . "</td></tr>\n";
        if (!empty($uinfo['user_intrest'])) echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>" . _INTERESTS . ":</b></td><td bgcolor=\"$bgcolor3\">" . mxPrepareToDisplay($uinfo['user_intrest']) . "</td></tr>\n";
        if (!empty($uinfo['user_sig'])) echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>" . _SIGNATURE . ":</b></td><td bgcolor=\"$bgcolor3\">" . $uinfo['user_sig'] . "</td></tr>\n";
        if (!empty($uinfo['bio'])) echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>" . _EXTRAINFO . ":</b></td><td bgcolor=\"$bgcolor3\">" . mxNL2BR(mxPrepareToDisplay($uinfo['bio'])) . "</td></tr>\n";
        if (mxModuleAllowed("Newsletter")) {
            if ($showall) echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>" . _NEWSLETTER . ":</b></td><td bgcolor=\"$bgcolor3\">" . $uinfo['newsletter'] . " *</td></tr>\n";
        } 
        if ($uinfo['hasuserpoints']) {
            echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>" . _GRANKS . ":</b></td><td bgcolor=\"$bgcolor3\">" . $uinfo['hasuserpoints'] . " &nbsp;&nbsp;&nbsp;&nbsp;<span class=\"tiny\">" . $uinfo['userpointsfaq'] . "</span></td></tr>\n";
        } 
        if ($privmsgactive && $istheuser) {
            echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>" . _YA_BWOPMSG . ":</b></td><td bgcolor=\"$bgcolor3\">" . $uinfo['contpm'] . "</td></tr>\n";
        } 
        if ($gbactiv && $uinfo['gbnewentries'] && $istheuser) { // falls gaestebuch vorhanden und der User selbst
            echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>" . _GUESTBOOKVIEW . ":</b></td><td bgcolor=\"$bgcolor3\"><b>" . $uinfo['gbnewentries'] . "</b> " . _YA_BWOPMSGUNREAD . " *</td></tr>\n";
        } 
        echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>" . _USERSTATUS . ":</b></td><td bgcolor=\"$bgcolor3\"><b>" . $uinfo['online'] . "</b></td></tr>\n";
        if (!empty($uinfo['lastonline'])) echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>" . _YA_LASTONLINE . ":</b></td><td bgcolor=\"$bgcolor3\">" . $uinfo['lastonline'] . "</td></tr>\n";
        if (!empty($uinfo['usergroup'])) echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>" . _YA_INGROUP . ":</b></td><td bgcolor=\"$bgcolor3\">" . $uinfo['usergroup'] . "</td></tr>\n";
        echo "</table>";
        if ($istheuser) {
            echo "<br>* " . _YA_ONLYYOUSEE . "!<br>";
        } 
        if (MX_IS_ADMIN) {
            echo "<br>[&nbsp;<a href=\"admin.php?op=modifyUser&amp;chng_uid=" . $uinfo["uid"] . "\">" . _EDITUSER . "</a>&nbsp;]<br>";
        } 
        echo "</center>";
        CloseTable();
    } 
    if (function_exists('viewuserinfo_option_2')) {
        viewuserinfo_option_2($uinfo);
    } else {
        // Usergaestebuch
        if ($gbactiv && !$istheuser) {
            echo "<br>";
            OpenTable();
            echo "<center>";
            echo "<a href=\"modules.php?name=UserGuest&amp;op=view&amp;touser=" . $uinfo['uname'] . "\" alt=\"" . $uinfo['uname'] . _GUESTBOOKPRIVMSG2 . "\" title=\"" . $uinfo['uname'] . _GUESTBOOKPRIVMSG2 . "\"><img src=\"images/menu/guestbook.gif\" border=\"0\"></a><br>";
            echo "[&nbsp;<a href=\"modules.php?name=UserGuest&amp;op=view&amp;touser=" . $uinfo['uname'] . "\">" . $uinfo['uname'] . _GUESTBOOKPRIVMSG2 . "</a>&nbsp;]";
            echo "</center>";
            CloseTable();
        } 
        if (mxModuleAllowed("User_Fotoalbum") && !$istheuser) { // falls User Fotoalbum Modul vorhanden
            echo "<br>";
            OpenTable();
            echo "<center>";
            echo "<a href=\"modules.php?name=User_Fotoalbum&amp;op=fotoview&amp;uname=" . $uinfo['uname'] . "\" alt=\"" . $uinfo['uname'] . _FOTOALBUM . "\" title=\"" . $uinfo['uname'] . _GUESTBOOKPRIVMSG2 . "\"><img src=\"images/menu/fotoalbum.gif\" border=\"0\"></a><br>";
            echo "[&nbsp;<a href=\"modules.php?name=User_Fotoalbum&amp;op=fotoview&amp;uname=" . $uinfo['uname'] . "\">" . $uinfo['uname'] . _FOTOALBUM . "</a>&nbsp;]";
            echo "</center>";
            CloseTable();
        } 
        // private Nachrichten
        if ($privmsgactive) {
            if (!$istheuser) {
                echo "<br>";
                OpenTable();
                echo "<center><br>";
                $xuname = (MX_IS_USER || MX_IS_ADMIN) ? $uinfo['uname'] : "";
                echo
                "<form action=\"modules.php?name=Private_Messages\" method=\"post\">"
                 . "<input type=\"hidden\" name=\"name\" value=\"Private_Messages\">"
                 . _USENDPRIVATEMSG . ": <input type=\"text\" name=\"to_user\" size=\"20\" maxlength=\"25\" value=\"$xuname\">&nbsp;&nbsp;"
                 . "<input type=\"hidden\" name=\"op\" value=\"send_to\">"
                 . "<input type=\"submit\" name=\"submita\" value=\"Go\">"
                 . "</form></center>";
                CloseTable();
            } 
        } 
        // Listings
        $result1 = sql_query("select tid, sid, subject, comment from " . $prefix . "_comments where uid='" . intval($uinfo['uid']) . "' order by tid DESC limit 0,10");
        $view1 = sql_num_rows($result1);

        $result2 = sql_query("select sid, title from ${prefix}_stories where informant='" . mxAddSlashesForSQL($uinfo['uname']) . "' AND `time` <= now() order by time DESC limit 0,10");
        $view2 = sql_num_rows($result2);

        if (!empty($view1) || !empty($view2)) {
            echo "<br>";
            OpenTable();
            echo "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"5\"><tr>";
            if ($view2) {
                echo "<td valign=\"top\"><b>" . _LAST10SUBMISSIONS . " " . $uinfo['uname'] . ":</b><ul>";
                while (list($sid, $title) = sql_fetch_row($result2)) {
                    echo "<li><a href=\"modules.php?name=News&amp;file=article&amp;sid=" . $sid . "\">" . $title . "</a><br>";
                } 
                echo "</ul></td>";
            } 
            if ($view1) {
                echo "<td valign=\"top\"><b>" . _LAST10COMMENTS . " " . $uinfo['uname'] . ":</b><ul>";
                while (list($tid, $sid, $subject, $comment) = sql_fetch_row($result1)) {
                    $subject = strip_tags($subject);
                    $subject = (empty($subject)) ? mxCutString(strip_tags($comment), 50) : $subject;
                    if ($subject) {
                        echo "<li><a href=\"modules.php?name=News&amp;file=article&amp;sid=$sid#$tid\">$subject</a><br>";
                    } 
                } 
                echo "</ul></td>";
            } 
            echo "</tr></table>";
            CloseTable();
        } 
    } 
    include("footer.php");
} 
       if ($istheuser && $_REQUEST['name'] == "Your_Account") {
    include("footer.php");
  }else{
    yafooter();
       }
if (!function_exists('pmxSigBbCode')) {
    /**
     * diese Funktion stammt aus dem mxBoard und ergaenzt das alte Teil aus den PM's ;)
     */
    function pmxSigBbCode($message)
    { 
        // eventuelle Zeilenumbrüche bei bestimmten bbCode-Tags entfernen, damit nl2br keine zusätzlichen anfügt...
        $message = preg_replace('#[[:cntrl:]]?(\[/?(?:p|li|center|blink|strike|h[1-7]|marquee|quote|list(?:=[1Aa])?)\])[[:cntrl:]]?#is', '\1', $message);

        $message = preg_replace('#\[size=([1-7])\](.*)\[\/size\]#isU', "<font size=\"\\1\">\\2</font>", $message);
        $message = preg_replace("/\[color=([^\[]*)\](.*)\[\/color\]/isU", "<font color=\"\\1\">\\2</font>", $message);
        $message = preg_replace("/\[font=([^\[]*)\](.*)\[\/font\]/isU", "<font face=\"\\1\">\\2</font>", $message);
        $message = preg_replace("/\[align=([^\[]*)\](.*)\[\/align\]/isU", "<p align=\"\\1\">\\2</p>", $message); 
        // unterstrichen extra behandeln
        $message = preg_replace('#\[([u])\]#is', '<u style="text-decoration: underline;">', $message); 
        // Formatierungen, fett, unterstrichen, kursiv, absatz
        $message = preg_replace('#\[(/?[abiup])\]#is', '<\1>', $message);
        $message = preg_replace('#\[(/?(?:center|blink|strike|li|strong|h[1-7]|sup|marquee))\]#is', '<\1>', $message);
        $message = preg_replace("/(^|[>[:space:]\n])([[:alnum:]]+):\/\/([^[:space:]]*)([[:alnum:]#?\/&=])([<[:space:]\n]|$)/mi", "\\1<a href=\"\\2://\\3\\4\" target=\"_blank\">\\2://\\3\\4</a>\\5", $message);
        $message = str_replace("[list]", "<ul type=\"square\">", $message);
        $message = str_replace("[/list]", "</ul>", $message);
        $message = preg_replace('#\[list=([1Aa])\]#i', '<ol type="\1">', $message);
        $message = preg_replace('#\[/?list=([1Aa])\]#i', '</ol>', $message);
        $message = str_replace("[*]", "<li>", $message);
        $message = str_replace("[line]", "<hr width=\"95%\" size=\"1\" noshade>", $message);
        $message = str_replace("[hr]", "<hr width=\"95%\" size=\"1\" noshade>", $message);
        $message = preg_replace("/\[img(?:[^\]]*)\]([^\[]*)\[\/img\]/i", "<img src=\"\\1\" border=\"0\" alt=\"\">", $message); 
        // # Img-Link fix
        $patterns = array();
        $replacements = array();
        $patterns[0] = "/\[url\]www.([^\[]*)\[\/url\]/i";
        $replacements[0] = "<a href=\"http://www.\\1\" target=_blank>\\1</a>";
        $patterns[1] = "/\[url\]([^\[]*)\[\/url\]/i";
        $replacements[1] = "<a href=\"\\1\" target=_blank>\\1</a>";
        $patterns[2] = "/\[url=([^\[]*)\]([^\[]*)\[\/url\]/i";
        $replacements[2] = "<a href=\"\\1\" target=_blank>\\2</a>";
        $patterns[3] = "/\[email\]([^\[]*)\[\/email\]/i";
        $replacements[3] = "<a href=\"mailto:\\1\">\\1</a>";
        $patterns[4] = "/\[email=([^\[]*)\]([^\[]*)\[\/email\]/i";
        $replacements[4] = "<a href=\"mailto:\\1\">\\2</a>";
        $message = preg_replace($patterns, $replacements, $message);

        return $message;
    } 
} 

?>