source: trunk/web/addons/job_monarch/lib/extjs/examples/shared/extjs/site.js @ 619

Last change on this file since 619 was 619, checked in by ramonb, 15 years ago

lib/:

  • added new AJAX dependancies: ExtJS, pChart, Lightbox2
File size: 2.0 KB
Line 
1/*
2 * Ext JS Library 2.2.1
3 * Copyright(c) 2006-2009, Ext JS, LLC.
4 * licensing@extjs.com
5 *
6 * http://extjs.com/license
7 */
8
9Ext.onReady(function(){
10
11        var activeMenu;
12
13        function createMenu(name){
14                var el = Ext.get(name+'-link');
15                var tid = 0, menu, doc = Ext.getDoc();
16
17                var handleOver = function(e, t){
18                        if(t != el.dom && t != menu.dom && !e.within(el) && !e.within(menu)){
19                                hideMenu();
20                        }
21                };
22
23                var hideMenu = function(){
24                        if(menu){
25                                menu.hide();
26                                el.setStyle('text-decoration', '');
27                                doc.un('mouseover', handleOver);
28                                doc.un('mousedown', handleDown);
29                        }
30                }
31
32                var handleDown = function(e){
33                        if(!e.within(menu)){
34                                hideMenu();
35                        }
36                }
37
38                var showMenu = function(){
39                        clearTimeout(tid);
40                        tid = 0;
41
42                        if (!menu) {
43                                menu = new Ext.Layer({shadow:'sides',hideMode: 'display'}, name+'-menu');
44                        }
45                        menu.hideMenu = hideMenu;
46
47                        menu.el = el;
48                        if(activeMenu && menu != activeMenu){
49                                activeMenu.hideMenu();
50                        }
51                        activeMenu = menu;
52
53                        if (!menu.isVisible()) {
54                                menu.show();
55                                menu.alignTo(el, 'tl-bl?');
56                                menu.sync();
57                                el.setStyle('text-decoration', 'underline');
58
59                                doc.on('mouseover', handleOver, null, {buffer:150});
60                                doc.on('mousedown', handleDown);
61                        }
62                }
63
64                el.on('mouseover', function(e){
65                        if(!tid){
66                                tid = showMenu.defer(150);
67                        }
68                });
69
70                el.on('mouseout', function(e){
71                        if(tid && !e.within(el, true)){
72                                clearTimeout(tid);
73                                tid = 0;
74                        }
75                });
76        }
77
78        createMenu('products');
79        createMenu('support');
80        createMenu('store');
81
82        // expanders
83        Ext.getBody().on('click', function(e, t){
84                t = Ext.get(t);
85                e.stopEvent();
86
87                var bd = t.next('div.expandable-body');
88                bd.enableDisplayMode();
89                var bdi = bd.first();
90                var expanded = bd.isVisible();
91
92                if(expanded){
93                        bd.hide();
94                }else{
95                        bdi.hide();
96                        bd.show();
97                        bdi.slideIn('l', {duration:.2, stopFx: true, easing:'easeOut'});
98                }
99
100                t.update(!expanded ? 'Hide details' : 'Show details');
101
102        }, null, {delegate:'a.expander'});
103});
Note: See TracBrowser for help on using the repository browser.