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'});
});