function showBlockEvents($sCaption, $bNoDB = false)
    {
        global $site;
        $ID = $this->_iProfileID;
        if ($ID > 0) {
            $sQuery = "\r\n\t\t\t\tSELECT COUNT(`SDatingEvents`.`ID`) AS 'Cnt'\r\n\t\t\t\tFROM `SDatingEvents` \r\n\t\t\t\tLEFT JOIN `SDatingParticipants` ON `SDatingParticipants`.`IDEvent` = `SDatingEvents`.`ID` \r\n\t\t\t\tWHERE (`SDatingEvents`.`ResponsibleID` = '{$ID}' OR `SDatingParticipants`.`IDMember` = '{$ID}')\r\n\t\t\t\tAND `SDatingEvents`.`Status` = 'Active'\r\n\t\t\t";
            $iBlogs = db_value($sQuery);
            if ($iBlogs > 0) {
                $oEvents = new BxDolEvents();
                $sBlocks = $oEvents->GenAnyBlockContent('last', $ID);
                $ret = <<<EOF
<div id="container_events">
\t{$sBlocks}
</div>
EOF;
                $show_hide = $this->genShowHideItem('container_events');
                if ($bNoDB) {
                    return $ret;
                } else {
                    echo DesignBoxContent(_t($sCaption), $ret, 1, $show_hide);
                }
            } else {
                return;
            }
        } else {
            if ($bNoDB) {
                return MsgBox(_t('_im_textNoCurrUser'));
            } else {
                echo MsgBox(_t('_im_textNoCurrUser'));
            }
        }
    }
function PageCompGroups($sCaption, &$sShowHide)
{
    global $site;
    global $short_date_format;
    $php_date_format = getParam('php_date_format');
    //$iBlogLimitChars = (int)getParam("max_classified_preview");
    $iBlogLimitChars = (int) getParam("max_blog_preview");
    global $p_arr;
    $ID = $p_arr['ID'];
    if ($ID > 0) {
        $sQuery = "\r\n\t\t\t\tSELECT DISTINCT `Groups`.`ID`, `Groups`.`Name`, `Groups`.`Desc`,\r\n\t\t\t\tUNIX_TIMESTAMP( `Groups`.`created` ) as `DateTime_f`,\r\n\t\t\t\t`Profiles`.`NickName`,\r\n\t\t\t\t`GroupsCateg`.`Name` AS 'CategName', `GroupsCateg`.`ID` AS `CategID`\r\n\t\t\t\tFROM `GroupsMembers`, `Groups`\r\n\t\t\t\tLEFT JOIN `GroupsCateg` ON `GroupsCateg`.`ID` = `Groups`.`categID` \r\n\t\t\t\tLEFT JOIN `Profiles` ON `Profiles`.`ID` = `Groups`.`creatorID` \r\n\t\t\t\tWHERE\r\n\t\t\t\t`GroupsMembers`.`memberID` = '{$ID}' AND\r\n\t\t\t\t`GroupsMembers`.`groupID`  = `Groups`.`ID` AND\r\n\t\t\t\t`GroupsMembers`.`status`   = 'Active'\r\n\t\t\t\tORDER BY `created` DESC \r\n\t\t\t\tLIMIT 5\r\n\t\t\t";
        $rBlogs = db_res($sQuery);
        if (!mysql_num_rows($rBlogs)) {
            return '';
        }
        ob_start();
        ?>
			<div id="container_groups">
			<?php 
        $oEvents = new BxDolEvents();
        while ($aBlog = mysql_fetch_assoc($rBlogs)) {
            $sPic = $oEvents->GetGroupPicture($aBlog['ID']);
            $sLinkMore = '';
            if (strlen($aBlog['Description']) > $iBlogLimitChars) {
                //$sLinkMore = "... <a href=\"".$site['url']."blog.php?owner=".$ID."&show=blog&blogID=".$aBlog['PostID']."\">"._t('_Read more')."</a>";
                $sLinkMore = "... <a href=\"" . $site['url'] . "group.php?ID=" . $aBlog['ID'] . "\">" . _t('_Read more') . "</a>";
            }
            $sBlogSnippet = substr(strip_tags($aBlog['Desc']), 0, $iBlogLimitChars) . $sLinkMore;
            ?>
					<div class="icon_block">
						<?php 
            echo $sPic;
            ?>
					</div>
					<div class="blog_wrapper_n">
						<div class="blog_subject_n">
							<?php 
            echo '<a href="' . $site['url'] . 'group.php?ID=' . $aBlog['ID'] . '" class="bottom_text">';
            ?>
								<?php 
            echo $aBlog['Name'];
            ?>
							</a>
						</div>
						<div class="blogInfo">
							<span><img src="<?php 
            echo getTemplateIcon('clock.gif');
            ?>
" />
							<?php 
            echo date($php_date_format, $aBlog['DateTime_f']) . ' ';
            ?>
</span>
							<span><?php 
            echo _t('_in Category', getTemplateIcon('folder_small.png'), 'groups_browse.php?categID=' . $aBlog['CategID'], process_line_output($aBlog['CategName']));
            ?>
</span>
						</div>
						<div class="blogSnippet">
							<?php 
            echo $sBlogSnippet;
            ?>
						</div>
					</div>
					<div class="clear_both"></div>
				<?php 
        }
        ?>
			</div>
			<?php 
        $ret = ob_get_clean();
        $show_hide = genShowHideItem('container_groups');
        $sShowHide = $show_hide;
        return $ret;
        //echo DesignBoxContent( _t( $sCaption ), $ret, 1, $show_hide );
    } else {
        return MsgBox(_t('_im_textNoCurrUser'));
    }
}
function profile_delete($ID)
{
    global $MySQL;
    global $dir;
    global $site;
    global $logged;
    $ID = (int) $ID;
    if (!$ID) {
        return false;
    }
    if (!getProfileInfo($ID)) {
        return false;
    }
    modules_del($ID);
    db_res("DELETE FROM `VKisses` WHERE `ID` = '{$ID}' OR `Member` = '{$ID}'");
    db_res("DELETE FROM `Profiles` WHERE `ID` = '{$ID}'");
    if (!mysql_affected_rows()) {
        return false;
    }
    db_res("DELETE FROM `BlockList` WHERE `ID` = '{$ID}' OR `Profile` = '{$ID}';");
    db_res("DELETE FROM `ProfilesTrack` WHERE `Member` = '{$ID}' OR `Profile` = '{$ID}'");
    db_res("DELETE FROM `Messages` WHERE Recipient = {$ID} ");
    db_res("DELETE FROM `Guestbook` WHERE Recipient = {$ID} ");
    db_res("DELETE FROM `aff_members` WHERE idProfile = {$ID}");
    db_res("DELETE FROM `HotList` WHERE ID = {$ID} OR Profile = {$ID}");
    db_res("DELETE FROM `FriendList` WHERE ID = {$ID} OR Profile = {$ID}");
    db_res("DELETE FROM `BlockList` WHERE ID = {$ID} OR Profile = {$ID}");
    db_res("DELETE FROM `BoughtContacts` WHERE `IDBuyer` = {$ID} OR `IDContact` = {$ID}");
    db_res("DELETE FROM `ProfileMemLevels` WHERE `IDMember` = {$ID}");
    db_res("DELETE FROM `ProfilesComments` WHERE `Sender` = {$ID} OR `Recipient` = {$ID}");
    db_res("DELETE FROM `ProfilesPolls` WHERE `id_profile` = {$ID}");
    db_res("DELETE FROM `Tags` WHERE `ID` = {$ID} AND `Type` = 'profile'");
    db_res("DELETE FROM `GroupsMembers` WHERE `memberID` = {$ID}");
    // delete profile votings
    require_once BX_DIRECTORY_PATH_CLASSES . 'BxDolVoting.php';
    $oVotingProfile = new BxDolVoting('profile', 0, 0);
    $oVotingProfile->deleteVotings($ID);
    // delete profile comments
    require_once BX_DIRECTORY_PATH_CLASSES . 'BxDolCmts.php';
    $oCmts = new BxDolCmts('profile', $ID);
    $oCmts->onObjectDelete();
    // delete all comments in all comments' systems, this user posted
    $oCmts->onAuthorDelete($ID);
    // Clean gallery
    $albumsRes = db_res("SELECT `ID` FROM `GalleryAlbums` WHERE `IDMember` = {$ID}");
    while ($albumArr = mysql_fetch_assoc($albumsRes)) {
        $albumID = $albumArr['ID'];
        $objectsRes = db_res("SELECT `Filename`, `ThumbFilename` FROM `GalleryObjects` WHERE `IDAlbum` = {$albumID}");
        while ($objectArr = mysql_fetch_assoc($objectsRes)) {
            @unlink("{$dir['gallery']}{$objectArr['Filename']}");
            if (strlen($objectArr['ThumbFilename']) && file_exists("{$dir['gallery']}{$objectArr['ThumbFilename']}")) {
                @unlink("{$dir['gallery']}{$objectArr['ThumbFilename']}");
            }
        }
        db_res("DELETE FROM `GalleryObjects` WHERE `IDAlbum` = {$albumID}");
    }
    db_res("DELETE FROM `GalleryAlbums` WHERE `IDMember` = {$ID}");
    // Clean customizations
    $customArr = db_arr("SELECT `BackgroundFilename` FROM `ProfilesSettings` WHERE `IDMember` = {$ID}");
    if (strlen($customArr['BackgroundFilename']) && file_exists($dir['profileImage'] . $customArr['BackgroundFilename']) && is_file($dir['profileImage'] . $customArr['BackgroundFilename'])) {
        unlink($dir['profileImage'] . $customArr['BackgroundFilename']);
    }
    db_res("DELETE FROM `ProfilesSettings` WHERE `IDMember` = {$ID}");
    // delete media
    $rMedia = db_res("SELECT `med_id`, `med_file`, `med_type` FROM `media` WHERE `med_prof_id` = {$ID}");
    $oVotingMedia = new BxDolVoting('media', 0, 0);
    while ($aMedia = mysql_fetch_assoc($rMedia)) {
        switch ($aMedia['med_type']) {
            case 'photo':
                $medDir = $dir['profileImage'] . $ID . "/";
                @unlink($medDir . 'icon_' . $aMedia['med_file']);
                @unlink($medDir . 'photo_' . $aMedia['med_file']);
                @unlink($medDir . 'thumb_' . $aMedia['med_file']);
                break;
            case 'audio':
                $medDir = $dir['profileSound'] . $ID . "/";
                @unlink($medDir . $aMedia['med_file']);
                break;
            case 'video':
                $medDir = $dir['profileVideo'] . $ID . "/";
                @unlink($medDir . $aMedia['med_file']);
                break;
        }
        // delete media voting
        $oVotingMedia->deleteVotings($aMedia['med_id']);
    }
    $aMem = array();
    $aMedia = array('photo', 'music', 'video');
    foreach ($aMedia as $sVal) {
        $oMedia = new BxDolSharedMedia($sVal, $site, $dir, $aMem);
        $oMedia->deleteUserGallery($ID, $logged);
    }
    db_res("DELETE FROM `media` WHERE `med_prof_id` = {$ID}");
    @rmdir($dir['profileImage'] . $ID);
    @rmdir($dir['profileVideo'] . $ID);
    @rmdir($dir['profileSound'] . $ID);
    //Clean blogs
    $aBlog = db_arr("SELECT `ID` FROM `Blogs` WHERE `OwnerID` = {$ID}");
    $iBlogID = $aBlog['ID'];
    if ($iBlogID > 0) {
        //Clean blogs
        $oBlogs = new BxDolBlogs(TRUE);
        $oBlogs->bAdminMode = TRUE;
        (int) ($_REQUEST['DeleteBlogID'] = $iBlogID);
        $oBlogs->ActionDeleteBlogSQL();
    }
    //delete user classifieds
    $oClassifieds = new BxDolClassifieds();
    $oClassifieds->bAdminMode = TRUE;
    $oClassifieds->DeleteProfileAdvertisement($ID);
    //delete user events
    $oEvents = new BxDolEvents();
    $oEvents->bAdminMode = TRUE;
    $oEvents->DeleteProfileEvents($ID);
    //delete cache file
    $sCacheFile = $dir['cache'] . 'user' . $ID . '.php';
    @unlink($sCacheFile);
    reparseObjTags('profile', $ID);
}
 function getBlockCode_Events()
 {
     global $site;
     $mode = $_REQUEST['events_mode'];
     if ($mode != 'rand' and $mode != 'latest') {
         $mode = 'latest';
     }
     $aDBTopMenu = array();
     //$menu = '<div class="dbTopMenu">';
     foreach (array('latest', 'rand') as $myMode) {
         switch ($myMode) {
             case 'latest':
                 $sTabTitle = _t('_Latest');
                 break;
             case 'rand':
                 $sTabTitle = _t('_Random');
                 break;
         }
         /*if( $mode == $myMode ) {
         			$menu .= "<div class=\"active\">$sTabTitle</div>";
         		} else {
         			$menu .= "
         			<div class=\"notActive\">
         				<a href=\"{$_SERVER['PHP_SELF']}?events_mode=$myMode\" class=\"top_members_menu\" onclick=\"getHtmlData( 'show_events', this.href+'&amp;show_only=events'); return false;\">$sTabTitle</a>
         			</div>";
         		}*/
         $aDBTopMenu[$sTabTitle] = array('href' => "{$_SERVER['PHP_SELF']}?events_mode={$myMode}", 'dynamic' => true, 'active' => $myMode == $mode);
     }
     /*$menu .= '
     			<div class="clear_both"></div>
     		</div>';*/
     $iTotalNum = db_value("SELECT COUNT(*) AS 'Cnt' FROM `SDatingEvents` WHERE `Status` = 'Active'");
     $oEvents = new BxDolEvents();
     if ($iTotalNum) {
         $iResPerPage = (int) getParam("max_blogs_on_home");
         $iTotalPages = ceil($iTotalNum / $iResPerPage);
         $page = (int) $_REQUEST['events_page'];
         if ($page < 1 or $mode == 'rand') {
             $page = 1;
         }
         if ($page > $iTotalPages) {
             $page = $iTotalPages;
         }
         $sqlLimitFrom = ($page - 1) * $iResPerPage;
         $sBlocks = $oEvents->GenAnyBlockContent($mode, 0, "LIMIT {$sqlLimitFrom}, {$iResPerPage}");
         $ret = $sBlocks;
     } else {
         $ret .= '<div class="no_result"><div>' . _t("_No events available") . '</div></div>';
     }
     $aDBBottomMenu = array();
     if ($iTotalPages > 1) {
         //$ret .= '<div class="dbBottomMenu">';
         if ($page > 1) {
             $prevPage = $page - 1;
             $aDBBottomMenu[_t('_Back')] = array('href' => "{$_SERVER['PHP_SELF']}?events_mode={$mode}&amp;events_page={$prevPage}", 'dynamic' => true, 'class' => 'backMembers');
             $sBackC = _t('_Back');
             /*$ret .= <<<EOF
             	<a href="{$_SERVER['PHP_SELF']}?events_mode={$mode}&amp;events_page={$prevPage}" class="backMembers" onclick="getHtmlData( 'show_events', this.href+'&amp;show_only=events'); return false;">
             		{$sBackC}
             	</a>
             EOF;*/
         }
         if ($page < $iTotalPages) {
             $nextPage = $page + 1;
             $aDBBottomMenu[_t('_Next')] = array('href' => "{$_SERVER['PHP_SELF']}?events_mode={$mode}&amp;events_page={$nextPage}", 'dynamic' => true, 'class' => 'moreMembers');
             /*$sNextC = _t('_Next');
             				$ret .= <<<EOF
             	<a href="{$_SERVER['PHP_SELF']}?events_mode={$mode}&amp;events_page={$nextPage}" class="moreMembers" onclick="getHtmlData( 'show_events', this.href+'&amp;show_only=events'); return false;">
             		{$sNextC}
             	</a>
             EOF;*/
         }
         $sBMViewAllLink = $oEvents->bUseFriendlyLinks ? "{$site['url']}events/" : "{$site['url']}events.php?show_events=all&action=show";
         $aDBBottomMenu[_t('_View All')] = array('href' => $sBMViewAllLink, 'dynamic' => false, 'class' => 'viewAllMembers');
         //$ret .= '<div class="clear_both"></div></div>';
     }
     return array($ret, $aDBTopMenu, $aDBBottomMenu);
     //return $ret;
 }
    function getBlockCode_Events()
    {
        if ($this->iMember > 0) {
            $sqlQuery = "\r\n\t\t\t\tSELECT COUNT(`SDatingEvents`.`ID`) AS 'Cnt'\r\n\t\t\t\tFROM `SDatingEvents` \r\n\t\t\t\tLEFT JOIN `SDatingParticipants` ON `SDatingParticipants`.`IDEvent` = `SDatingEvents`.`ID` \r\n\t\t\t\tWHERE (`SDatingEvents`.`ResponsibleID` = '{$this->iMember}' OR `SDatingParticipants`.`IDMember` = '{$this->iMember}')\r\n\t\t\t\tAND `SDatingEvents`.`Status` = 'Active'\r\n\t\t\t";
            $iBlogs = db_value($sqlQuery);
            if ($iBlogs > 0) {
                $oEvents = new BxDolEvents();
                $sBlocks = $oEvents->GenAnyBlockContent('last', $this->iMember);
                $ret = <<<EOF
<div id="container_events">
\t{$sBlocks}
</div>
EOF;
                $show_hide = $this->genShowHideItem('container_events');
                $sShowHide = $show_hide;
                return $ret;
            } else {
                return '';
            }
        } else {
            return MsgBox(_t('_im_textNoCurrUser'));
        }
    }
function PageCompGroupsContent($sCaption)
{
    global $site;
    global $date_format;
    $php_date_format = getParam('php_date_format');
    $mode = $_REQUEST['groups_mode'];
    if ($mode != 'rand' and $mode != 'latest') {
        $mode = 'latest';
    }
    $menu = '<div class="dbTopMenu">';
    foreach (array('latest', 'rand') as $myMode) {
        switch ($myMode) {
            case 'latest':
                $OrderBy = '`created` DESC';
                $sTabTitle = _t('_Latest');
                break;
            case 'rand':
                $OrderBy = 'RAND()';
                $sTabTitle = _t('_Random');
                break;
        }
        if ($mode == $myMode) {
            $sqlOrderBy = $OrderBy;
            $menu .= "\r\n\t\t\t<div class=\"active\">{$sTabTitle}</div>";
        } else {
            $menu .= "\r\n\t\t\t<div class=\"notActive\">\r\n\t\t\t\t<a href=\"{$_SERVER['PHP_SELF']}?groups_mode={$myMode}\" class=\"top_members_menu\" onclick=\"getHtmlData( 'show_groups', this.href+'&amp;show_only=groups'); return false;\">{$sTabTitle}</a>\r\n\t\t\t</div>";
        }
    }
    $menu .= '
			<div class="clear_both"></div>
		</div>';
    $aTotalNum = db_arr("\r\n\t\tSELECT\r\n\t\t\tCOUNT(*) FROM `Groups`\r\n\t\tWHERE\r\n\t\t\t`status` = 'Active'\r\n\t\t");
    $iTotalNum = $aTotalNum[0];
    if ($iTotalNum) {
        //$iResPerPage = (int)getParam("max_groups_on_home");
        $iResPerPage = (int) getParam("max_blogs_on_home");
        //$iResPerPage = 3;
        $iTotalPages = ceil($iTotalNum / $iResPerPage);
        $page = (int) $_REQUEST['groups_page'];
        if ($page < 1 or $mode == 'rand') {
            $page = 1;
        }
        if ($page > $iTotalPages) {
            $page = $iTotalPages;
        }
        $sqlLimitFrom = ($page - 1) * $iResPerPage;
        //$iBlogLimitChars = (int)getParam("max_classified_preview");
        $iBlogLimitChars = (int) getParam("max_blog_preview");
        //$iBlogLimitChars = 50;
        $sBlogQuery = "\r\n\t\t\tSELECT DISTINCT `Groups`.`ID`, `Groups`.`Name`,\r\n\t\t\tLEFT(`Groups`.`Desc`, {$iBlogLimitChars}) as 'Desc_f', \r\n\t\t\tUNIX_TIMESTAMP( `Groups`.`created` ) as `DateTime_f`,\r\n\t\t\t`Profiles`.`NickName`,\r\n\t\t\t`GroupsCateg`.`Name` AS 'CategName', `GroupsCateg`.`ID` AS `CategID`\r\n\t\t\tFROM `Groups`\r\n\t\t\tLEFT JOIN `GroupsCateg` ON `GroupsCateg`.`ID` = `Groups`.`categID` \r\n\t\t\tLEFT JOIN `Profiles` ON `Profiles`.`ID` = `Groups`.`creatorID` \r\n\t\t\tWHERE\r\n\t\t\t`Groups`.`Status` = 'Active'\r\n\t\t\tORDER BY {$sqlOrderBy}\r\n\t\t\tLIMIT {$sqlLimitFrom}, {$iResPerPage}\r\n\t\t";
        $rBlog = db_res($sBlogQuery);
        $ret = '';
        $oEvents = new BxDolEvents();
        $ret .= '<div class="clear_both"></div>';
        while ($arr = mysql_fetch_array($rBlog)) {
            $sPic = $oEvents->GetGroupPicture($arr['ID']);
            $sLinkMore = '';
            if (strlen($arr['Desc']) == $iBlogLimitChars) {
                $sLinkMore = "... <a href=\"" . $site['url'] . "group.php?ID=" . $arr['ID'] . "\">" . _t('_Read more') . "</a>";
            }
            $ret .= '
			<div class="icon_block">
				' . $sPic . '
			</div>
			<div class="blog_wrapper_n">
				<div class="blog_subject_n">
					<a href="' . $site['url'] . 'group.php?ID=' . $arr['ID'] . '" class="bottom_text">' . process_line_output($arr['Name']) . '</a>
				</div>
				<div class="blog_author">' . '<span>' . _t('_By Author', $arr['NickName'], $arr['NickName']) . '</span>' . '<span><img src="' . getTemplateIcon('clock.gif') . '" />' . date($php_date_format, $arr['DateTime_f']) . '</span>' . '<span>' . _t('_in Category', getTemplateIcon('folder_small.png'), 'groups_browse.php?categID=' . $arr['CategID'], process_line_output($arr['CategName'])) . '</span>' . '</div>
				<div class="blog_text">' . strip_tags(process_html_output($arr['Desc_f'])) . $sLinkMore . '</div>
			</div>';
        }
        $ret .= '<div class="clear_both"></div>';
    } else {
        $ret .= '<div class="no_result"><div>' . _t("_No groups available") . '</div></div>';
    }
    if ($iTotalPages > 1) {
        $ret .= '
		<div class="dbBottomMenu">';
        if ($page > 1) {
            $prevPage = $page - 1;
            $ret .= "\r\n\t\t\t\t<a href=\"{$_SERVER['PHP_SELF']}?groups_mode={$mode}&amp;groups_page={$prevPage}\"\r\n\t\t\t\t  class=\"backMembers\"\r\n\t\t\t\t  onclick=\"getHtmlData( 'show_groups', this.href+'&amp;show_only=groups'); return false;\">" . _t('_Back') . "</a>\r\n\t\t\t";
        }
        if ($page < $iTotalPages) {
            $nextPage = $page + 1;
            $ret .= "\r\n\t\t\t\t<a href=\"{$_SERVER['PHP_SELF']}?groups_mode={$mode}&amp;groups_page={$nextPage}\"\r\n\t\t\t\t  class=\"moreMembers\"\r\n\t\t\t\t  onclick=\"getHtmlData( 'show_groups', this.href+'&amp;show_only=groups'); return false;\">" . _t('_Next') . "</a>\r\n\t\t\t";
        }
        $ret .= '
			<div class="clear_both"></div>
		</div>';
    }
    return DesignBoxContent(_t($sCaption), $ret, 1, $menu);
}