jQuery(function(){
		jQuery('ul.jd_menu_vertical').jdMenu({onShow: loadMenu, onHide: unloadMenu, offset: 1, onAnimate: onAnimate});
	});

	function onAnimate(show) {
		if (show) {
			jQuery(this)
				.css('visibility', 'hidden').show()
					.css('width', jQuery(this).innerWidth())
				.hide().css('visibility', 'visible')
			.fadeIn('normal');
		} else {
			jQuery(this).fadeOut('fast');
		}
	}

	var MENU_COUNTER = 1;
	function loadMenu() {
		if (this.id == 'dynamicMenu') {
			jQuery('> ul > li', this).remove();
	
			var ul = jQuery('<ul></ul>');
			var t = MENU_COUNTER + 10;
			for (; MENU_COUNTER < t; MENU_COUNTER++) {
				jQuery('> ul', this).append('<li>Item ' + MENU_COUNTER + '</li>');
			}
		}
	}

	function unloadMenu() {
		if (MENU_COUNTER >= 30) {
			MENU_COUNTER = 1;
		}
	}

	// We're passed a UL
	function onHideCheckMenu() {
		return !jQuery(this).parent().is('.LOCKED');
	}

	// We're passed a LI
	function onClickMenu() {
		jQuery(this).toggleClass('LOCKED');
		return true;
	}