ok PHP121 isnt free anymore but it is only $20.
so I purchased a copy.
So far I can get it to read the database and show the amount of profiles and I can log in using my dolphin 6.1.4 user and passwords and logs in just fine. only thing is
you have to log into it even after logging into dolphin.

here is the php121login.php file I have commented out some "powered by" code but other than that it is still virgin.

Code:
<?php
/*****************************************************************************************
 **  PHP121 Instant Messenger (PHP121)							**
 **  File:              php121login.php                                                 **
 **  Date modified:     30/06/06                                                        **
 **  Copyright:         (C) 2005 Paul Synnott                                           **
 **  Email:             support@php121.com                                              **
 **  Web:               http://www.php121.com                                           **
 **  File function:     Login screen.  Cookie check.                                    **
 *****************************************************************************************/

/*****************************************************************************************
 **    This file is part of PHP121.                                                     **
 **                                                                                     **
 **    PHP121 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.                                              **
 **                                                                                     **
 **    PHP121 is distributed in the hope that it will be useful,                        **
 **    but WITHOUT ANY WARRANTY; without even the implied warranty of                   **
 **    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                    **
 **    GNU General Public License for more details.                                     **
 **                                                                                     **
 **    You should have received a copy of the GNU General Public License                **
 **    along with PHP121; if not, write to the Free Software                            **
 **    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA       **
 *****************************************************************************************/

global $db_usertable, $dbf_uid, $dbf_uname, $dbf_upassword, $dbf_passwordtype, $dbf_uemail;
global $dbf_user_chatting, $dbf_smilies, $dbf_level, $dbf_showrequest;
global $dbf_uname_len, $dbf_upassword_len, $dbf_uemail_len;
global $dbf_upassword_input_max_length, $integration;

require_once("php121db.php");

session_start();

if ($integration == "none") {
        if (isset($_COOKIE['php121un']) && isset($_COOKIE['php121pw'])) {
                $logindataun = $_COOKIE['php121un'];
                $logindatapw = $_COOKIE['php121pw'];
                if (!empty($logindataun) && !empty($logindatapw)) {
                        //we have a cookie - use it to login, overriding any sessions
                        $_SESSION[sess_username] = $logindataun;
                        $_SESSION[sess_password] = $logindatapw;
                }
        }

        $sess_username = $_SESSION[sess_username];
        $sess_password = $_SESSION[sess_password];

        //end if integration = none

} else if ($integration == "phpnuke") {
        global $user, $cookie, $db, $anonymous, $sitekey;
        require_once("mainfile.php");
        cookiedecode($user);
        $sess_username = $cookie[1];
        //end if integration is phpnuke
}


$sess_username = makedbsafe($sess_username);
$sess_password = makedbsafe($sess_password);

$sql = "Select $dbf_uname from $db_usertable";
$result = mysql_query($sql);
$numusers = mysql_num_rows($result);
$row = mysql_fetch_row(mysql_query("SELECT $dbf_banned from $db_usertable WHERE $dbf_uname='$sess_username'", $php121db));
$bannedstatus = $row[0];

if ($bannedstatus > 0) {
        echo _YOU_ARE_BANNED;
        die();
}

if ($sess_username != "") {
        require_once("php121checksession.php");
} else {
	if ($integration == "phpnuke") {
		echo $opentable;
		echo "<br>" . _PLEASE . " " . _LOGIN . " to PHPNuke first!";
		echo $closetable;
		die;
	}
} 

if ($_GET[op] == "logout") {
	$sql = "update $db_usertable set $dbf_user_chatting='0' where $dbf_uname='$sess_username'";
	$result = mysql_query($sql);
	$controlUpdateKey = rand(1, 99999999999);
	$sqlupd = "update " . $php121_prefix . "_control set CL_LastModified='$now', CL_UpdateKey='$controlUpdateKey' where id='1'";
	$result = mysql_query($sqlupd);
        session_destroy();
        setcookie('php121un',FALSE);
        setcookie('php121pw',FALSE);
        Header("Location: php121login.php");
}

$sql = "Select $dbf_uname from $db_usertable";
$result = mysql_query($sql);
$numusers = mysql_num_rows($result);

function userLookup($username, $password) {
	global $php121db, $password;
	global $db_usertable, $dbf_uid, $dbf_uname, $dbf_upassword, $dbf_passwordtype, $dbf_uemail;
	global $dbf_user_chatting, $dbf_smilies, $dbf_level, $dbf_showrequest;
	global $dbf_upassword_len;

        $stop = "";
        if (mysql_num_rows(mysql_query("SELECT $dbf_uname FROM $db_usertable WHERE $dbf_uname='$username'",$php121db)) == 0) $stop .= _USERNAME_NOT_FOUND . "<br>";
        if ($stop == ""){
                $row = mysql_fetch_row(mysql_query("SELECT $dbf_upassword from $db_usertable WHERE $dbf_uname='$username'", $php121db));
		if ($dbf_passwordtype == "md5") {
			if ($row[0] != substr(md5($password), 0, $dbf_upassword_len)) $stop .= _INCORRECT_PASSWORD . "<br>";
		} else if ($dbf_passwordtype == "plaintext") {
			if ($row[0] != substr($password, 0, $dbf_upassword_len)) $stop .= _INCORRECT_PASSWORD . "<br>";
		}
        }

        return($stop);
}

$username = makedbsafe($_POST[username]);
$password = makedbsafe($_POST[password]);
$submit = $_POST[check];
$url = $_GET[url];

if ($submit == 1) { //just submitted, so do the lookup
        $stop = userLookup($username, $password);
        if ($stop == "") {
                $row = mysql_fetch_row(mysql_query("SELECT $dbf_uemail,$dbf_upassword from $db_usertable WHERE $dbf_uname='$username'", $php121db));
        }
}

if ($submit == 1 && $stop == "") {
	$_SESSION[sess_username] = $username;
	$_SESSION[sess_password] = substr($row[1], 0, 9);
	setcookie('php121un', $username, time() + 2592000);
	setcookie('php121pw', substr($row[1], 0, 9), time() + 2592000);

	if ($url == "") {
		Header("Location: php121im.php");
	} else {
		Header("Location: $url");
	}
}
?>

<html>
<head>
<title>PHP121 - Instant Messenger</title>
</head>
<body>
<font style="FONT-FAMILY: Verdana,Helvetica; FONT-SIZE: 12px">
<table border="1" width="100%" height="100%" cellpadding="5" style="border-collapse: collapse" bordercolor="#000000">
<tr height="*"><td valign="top" bgcolor="#DFEFF5"><center><font style="COLOR: #000000; FONT-SIZE: 14px; FONT-WEIGHT: bold"><img border="0" src="php121logosm.gif" align="left"><?php echo $customtitle; ?></font><br>&nbsp;<p>
<font style="color: #000000; font-size: 12px"><center>

<?php
if ($stop != "") {
	echo "<font color=\"FF0000\"><b>" . _ERROR . "</b>".$stop."</font><p>";
}

$numuserssql = "select $dbf_uid from $db_usertable";
$numusers = mysql_num_rows(mysql_query($numuserssql));

if ($integration=="phpbb" or $integration=="phpnuke") {
	$numusers--;
}
echo _PLEASE_LOGIN . "<p>";
?>

<form name="userlogin" method="POST">
<?php echo _USERNAME; ?>:  <br><input type="text" style="FONT-FAMILY: Verdana,Helvetica; FONT-SIZE: 12px" name="username" size="20" maxlength="<?php echo $dbf_uname_len; ?>" value="<?php echo $username; ?>">
<p>
<?php echo _PASSWORD; ?>:  <br><input type="password" style="FONT-FAMILY: Verdana,Helvetica; FONT-SIZE: 12px" name="password" size="20" maxlength="<?php echo $dbf_upassword_input_max_length; ?>" value="<?php echo $password; ?>">
<p>
<input type="submit" value="<?php echo _LOGIN; ?>" style="FONT-FAMILY: Verdana,Helvetica; FONT-SIZE: 12px">
<input type="hidden" name="check" value="1">
</form>
<p>

<?php
echo $numusers . " " . _REGISTERED_USERS;
echo "<p>";
if ($acctman == 1) {
	if ($php121_config[user_can_create_account] == '1') {
		echo "<a href=\"php121newuser.php\">" . _CREATE_NEW_ACCOUNT ."</a><p>";
	}
	echo "<a href=\"php121recoveruser.php\"><font style=\"FONT-SIZE: 10px\">" . _LOST_LOGIN ."</font></a>";
}
// ************************************************
// ************************************************
// DO NOT CHANGE ANYTHING BELOW THIS LINE!!!!!!!!!!
// ************************************************
// ************************************************
?>

<br>
</center>
</font>
</td>
</tr>
<!--<tr height="20"><td bgcolor="#DFEFF5" valign="top">
<font style="color: #000000; font-size: 9px"><center>Powered by <a target="_blank" style="TEXT-DECORATION: none; COLOR: #000066; FONT-SIZE: 10px" href="http://www.php121.com"><U>PHP121</U></a> <?php echo $php121ver; ?></center></font>
</td></tr>-->
</table>
</body>
</html>
The Challenge is to make dolphin automatically log in and go straight to the main instant messenger.
No prizes tho lol
the php121config file gives you some information
Code:
# db_usertable:				name of the existing user table (e.g. php121_users)
$db_usertable			=	"Profiles";

# dbf_uid:				name of the user id field (e.g. uid)
#					(must be an integer field)
$dbf_uid			=	"ID";

# dbf_uname:				name of the username field (e.g. uname)
$dbf_uname			=	"NickName";

# dbf_upassword:			name of the password field (e.g. upassword)
$dbf_upassword			=	"Password";

# dbf_passwordtype:			password type, either md5 or plaintext
$dbf_passwordtype		=	"md5";

# dbf_uemail:				name of the email field (e.g. uemail)
$dbf_uemail			=	"Email";
maybe together we can figure it out
cant be that hard

below is the zip file for the whole thing if you need that too.