     root,    .

 ajax.php



'gen_passkey'       => array('user'),

 

'user_modules'    	=> array('user'),



	function index_data()
    {
		require(AJAX_DIR .'index_data.php');
	}
	
 

	function user_modules()
    {
		require(AJAX_DIR .'user_modules.php');
    }

 index.php

  

// Set tpl vars for bt_userdata
if ($bb_cfg['bt_show_dl_stat_on_index'] && !IS_GUEST)
{
	show_bt_userdata($userdata['user_id']);
}
	
 main.js



//
// Menus
//

 

//
// Slide Menus
//
var SlideMenu = {
	openSpeed          : 'slow',
	hideSpeed          : 'fast',
	getOffsetOptions   : { margin: true, border: true, padding: true, scroll: false },
	offsetCorrection_X : -4,
	offsetCorrection_Y : 2,
	iframeFix          : false,

	activeMenuId       : null,  //  currently opened menu (from previous click)
	clickedMenuId      : null,  //  menu to show up
	$root              : null,  //  root element for menu with "href = '#clickedMenuId'"
	$menu              : null,  //  clicked menu
	positioningType    : null,  //  reserved
	outsideClickWatch  : false, //  prevent multiple $(document).click binding

	clicked: function($root) {
		$root.blur();
		this.clickedMenuId = this.getMenuId($root);
		this.$menu = $(this.clickedMenuId);
		this.$root = $root;
		this.toggle();
	},

	getMenuId: function($el) {
		var click = $el.attr('click');
		return click.substr(click.indexOf('#'));
	},

	setLocation: function() {
		var CSS = this.$root.offset();
		CSS.top  += this.$root.height() + this.offsetCorrection_Y;
		CSS.left += this.offsetCorrection_X;
		this.$menu.css(CSS);
	},

	fixLocation: function() {
		var $menu = this.$menu;
		var curLeft = parseInt($menu.css('left'));
		var rCorner = $(document).scrollLeft() + $(window).width() - 6;
		var maxVisibleLeft = Math.min(curLeft, Math.max(0, rCorner - $menu.width()));
		if (curLeft != maxVisibleLeft) {
			$menu.css('left', maxVisibleLeft);
		}
		var curTop = parseInt($menu.css('top'));
		var tCorner = $(document).scrollTop() + $(window).height() - 20;
		var maxVisibleTop = Math.min(curTop, Math.max(0, tCorner - $menu.height()));
		if (curTop != maxVisibleTop) {
			$menu.css('top', maxVisibleTop);
		}
		if (this.iframeFix) {
			$('iframe.ie-fix-select-overlap', $menu).css({ width: $menu.width(), height: $menu.height() });
		}
	},

	toggle: function() {
		if (this.activeMenuId && this.activeMenuId !== this.clickedMenuId) {
			$(this.activeMenuId).slideUp(this.hideSpeed);
			this.$root.removeClass('active')
		}
		// toggle clicked menu
		if (this.$menu.is(':visible')) {
		}	else {
			this.showClickedMenu();
			if (!this.outsideClickWatch) {
				$(document).one('mousedown', function(e){ SlideMenu.hideClickWatcher(e); });
				this.outsideClickWatch = true;
			}
		}
	},

	showClickedMenu: function() {
		this.setLocation();
		this.$menu.slideDown(this.openSpeed);
		this.$root.addClass('active')
		this.fixLocation();
		this.activeMenuId = this.clickedMenuId;
	},

	// hide if clicked outside of menu
	hideClickWatcher: function(e) {
		this.outsideClickWatch = false;
		this.hide(e);
	},

	hide: function(e) {
		if (this.$menu) {
			this.$menu.slideUp(this.hideSpeed);
			this.$root.removeClass('active')
		}
		this.activeMenuId = this.clickedMenuId = this.$menu = null;
	}
};

$(document).ready(function(){
	// SlideMenus
	$('div#slideMenu').click(
		function(e)
		{
			SlideMenu.clicked($(this));
			
			var menuClick = true;
            $(document).bind("click",function (e)
            {
                if (!menuClick && $(e.target).closest('div.slideMenuBlock').length == 0)
                {
					SlideMenu.clicked($(this));
                    $(document).unbind("click");
                }
                menuClick = false;
            });
		}
	);
	$('div.slideMenuBlock').mousedown(
		function(e)
		{
			e.stopPropagation();
		}
	)
	// Input hints
	$('input')
		.filter('.hint').one('focus', function()
		{
			$(this).val('').removeClass('hint');
		})
		.end()
		.filter('.error').one('focus', function()
		{
			$(this).removeClass('error');
		});
});	


 templates/default/page_header.tpl



<link rel="stylesheet" href="{STYLESHEET}?v={$bb_cfg['css_ver']}" type="text/css">

 

<link rel="stylesheet" href="{TPL_DIR}/slide_menu.css?v={$bb_cfg['css_ver']}" type="text/css">



</head>

 

<script type="text/javascript">
function user_modules(action, mode){
	ajax.exec({
		action  : 'user_modules',
		mode    : 'user_index_stats'
	});
	ajax.callback.user_modules = function(data) {
 	$('#user_modules').html(data.html);
 	}
	
}
</script>

  

     <!-- IF SHOW_BT_USERDATA --><div id="user_ratio">
      <h3>{L_USER_RATIO}</h3>
       <table cellpadding="0">
	   <div align="center">{THIS_AVATAR}</div>
       <tr><td>{L_USER_RATIO}</td><td><!-- IF DOWN_TOTAL_BYTES gt MIN_DL_BYTES --><b>{USER_RATIO}</b><!-- ELSE --><b>{L_NONE}</b> (DL < {MIN_DL_FOR_RATIO})<!-- ENDIF --></td></tr>
       <tr><td>{L_DOWNLOADED}</td><td class="leechmed"><b>{DOWN_TOTAL}</b></td></tr>
       <tr><td>{L_UPLOADED}</td><td class="seedmed"><b>{UP_TOTAL}</b></td></tr>
       <tr><td>{L_RELEASED}</td><td class="seedmed">{RELEASED}</td></tr>
       <tr><td>{L_BONUS}</td><td class="seedmed">{UP_BONUS}</td></tr>
       <!-- IF $bb_cfg['seed_bonus_enabled'] --><tr><td>{L_SEED_BONUS}</td><td><a href="profile.php?mode=bonus"><span class="points bold">{POINTS}</span></a></td></tr><!-- ENDIF -->
       </table>
     </div><!-- ENDIF -->
	 


<!-- IF LOGGED_IN -->
				<!-- IF HAVE_NEW_PM || HAVE_UNREAD_PM -->
					<a href="{U_READ_PM}" class="new-pm-link"><b>{L_PRIVATE_MESSAGES}: {PM_INFO}</b></a>
				<!-- ELSE -->
					<a href="{U_PRIVATEMSGS}"><b>{L_PRIVATE_MESSAGES}: {PM_INFO}</b></a>
				<!-- ENDIF -->
			<!-- ENDIF -->
		</td>

 		
	 
<td width="120px">
	<div id="slideMenuLink">	
		<div id="slideMenu" class="tabMenu" click="#profile">
			<span id="SpNTit" onclick="user_modules(); return false;"><p class="floatR IMGslideMenu menu_profile">{L_PROFILE}</p></span>
			<div class="slideMenuBlock lEft" id="profile">		
				<div class="navPopup" style="margin: 0 -4px">
					<div class="menuHeader primaryContent"><h4 class="tCenter">{L_PROFILE_USER}</h4></div>	
					<div class="secondaryContent">
						<div id="user_modules"></div>
					</div>
					<div class="sectionFooter">
					<table cellpadding="0" width="100%">
						<tr>
							<td><a href="{U_CUR_DOWNLOADS}">{L_PROFILE}</a></td>			
							<td><a href="{U_SEARCH_SELF_BY_LAST}">{L_SEARCH_SELF}</a></td>
							<td><a class="floatLink" href="{U_OPTIONS}">{L_OPTIONS}</a></td>
							</tr>
					</table>
					</div>
				</div>		
			</div>
		</div>
	</div>
</td>