The source code

    Ext.onReady(function(){

    	var activeMenu;

    	function createMenu(name){
    		var el = Ext.get(name+'-link');
    		var tid = 0, menu, doc = Ext.getDoc();

    		var handleOver = function(e, t){
    			if(t != el.dom && t != menu.dom && !e.within(el) && !e.within(menu)){
    				hideMenu();
    			}
    		};

    		var hideMenu = function(){
    			if(menu){
    				menu.hide();
    				el.setStyle('text-decoration', '');
    				doc.un('mouseover', handleOver);
    				doc.un('mousedown', handleDown);
    			}
    		};

    		var handleDown = function(e){
    			if(!e.within(menu)){
    				hideMenu();
    			}
    		};

    		var showMenu = function(){
    			clearTimeout(tid);
    			tid = 0;

    			if (!menu) {
    				menu = new Ext.Layer({shadow:'sides',hideMode: 'display'}, name+'-menu');
    			}
    			menu.hideMenu = hideMenu;

    			menu.el = el;
    			if(activeMenu && menu != activeMenu){
    				activeMenu.hideMenu();
    			}
    			activeMenu = menu;

    			if (!menu.isVisible()) {
    				menu.show();
    				menu.alignTo(el, 'tl-bl?');
    				menu.sync();
    				el.setStyle('text-decoration', 'underline');

    				doc.on('mouseover', handleOver, null, {buffer:150});
    				doc.on('mousedown', handleDown);
    			}
    		};

    		el.on('mouseover', function(e){
    			if(!tid){
    				tid = showMenu.defer(150);
    			}
    		});

    		el.on('mouseout', function(e){
    			if(tid && !e.within(el, true)){
    				clearTimeout(tid);
    				tid = 0;
    			}
    		});
    	}

    	createMenu('products');
    	createMenu('support');
    	createMenu('store');

    	// expanders
    	Ext.getBody().on('click', function(e, t){
    		t = Ext.get(t);
    		e.stopEvent();

    		var bd = t.next('div.expandable-body');
    		bd.enableDisplayMode();
    		var bdi = bd.first();
    		var expanded = bd.isVisible();

    		if(expanded){
    			bd.hide();
    		}else{
    			bdi.hide();
    			bd.show();
    			bdi.slideIn('l', {duration:0.2, stopFx: true, easing:'easeOut'});
    		}

    		t.update(!expanded ? 'Hide details' : 'Show details');

    	}, null, {delegate:'a.expander'});
    });