Upgrade to ExtJS 3.0.0 - Released 07/06/2009
[extjs.git] / docs / source / site.html
1 <html>\r
2 <head>\r
3   <title>The source code</title>\r
4     <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />\r
5     <script type="text/javascript" src="../resources/prettify/prettify.js"></script>\r
6 </head>\r
7 <body  onload="prettyPrint();">\r
8     <pre class="prettyprint lang-js">Ext.onReady(function(){\r
9 \r
10         var activeMenu;\r
11 \r
12         function createMenu(name){\r
13                 var el = Ext.get(name+'-link');\r
14                 var tid = 0, menu, doc = Ext.getDoc();\r
15 \r
16                 var handleOver = function(e, t){\r
17                         if(t != el.dom && t != menu.dom && !e.within(el) && !e.within(menu)){\r
18                                 hideMenu();\r
19                         }\r
20                 };\r
21 \r
22                 var hideMenu = function(){\r
23                         if(menu){\r
24                                 menu.hide();\r
25                                 el.setStyle('text-decoration', '');\r
26                                 doc.un('mouseover', handleOver);\r
27                                 doc.un('mousedown', handleDown);\r
28                         }\r
29                 };\r
30 \r
31                 var handleDown = function(e){\r
32                         if(!e.within(menu)){\r
33                                 hideMenu();\r
34                         }\r
35                 };\r
36 \r
37                 var showMenu = function(){\r
38                         clearTimeout(tid);\r
39                         tid = 0;\r
40 \r
41                         if (!menu) {\r
42                                 menu = new Ext.Layer({shadow:'sides',hideMode: 'display'}, name+'-menu');\r
43                         }\r
44                         menu.hideMenu = hideMenu;\r
45 \r
46                         menu.el = el;\r
47                         if(activeMenu && menu != activeMenu){\r
48                                 activeMenu.hideMenu();\r
49                         }\r
50                         activeMenu = menu;\r
51 \r
52                         if (!menu.isVisible()) {\r
53                                 menu.show();\r
54                                 menu.alignTo(el, 'tl-bl?');\r
55                                 menu.sync();\r
56                                 el.setStyle('text-decoration', 'underline');\r
57 \r
58                                 doc.on('mouseover', handleOver, null, {buffer:150});\r
59                                 doc.on('mousedown', handleDown);\r
60                         }\r
61                 };\r
62 \r
63                 el.on('mouseover', function(e){\r
64                         if(!tid){\r
65                                 tid = showMenu.defer(150);\r
66                         }\r
67                 });\r
68 \r
69                 el.on('mouseout', function(e){\r
70                         if(tid && !e.within(el, true)){\r
71                                 clearTimeout(tid);\r
72                                 tid = 0;\r
73                         }\r
74                 });\r
75         }\r
76 \r
77         createMenu('products');\r
78         createMenu('support');\r
79         createMenu('store');\r
80 \r
81         // expanders\r
82         Ext.getBody().on('click', function(e, t){\r
83                 t = Ext.get(t);\r
84                 e.stopEvent();\r
85 \r
86                 var bd = t.next('div.expandable-body');\r
87                 bd.enableDisplayMode();\r
88                 var bdi = bd.first();\r
89                 var expanded = bd.isVisible();\r
90 \r
91                 if(expanded){\r
92                         bd.hide();\r
93                 }else{\r
94                         bdi.hide();\r
95                         bd.show();\r
96                         bdi.slideIn('l', {duration:0.2, stopFx: true, easing:'easeOut'});\r
97                 }\r
98 \r
99                 t.update(!expanded ? 'Hide details' : 'Show details');\r
100 \r
101         }, null, {delegate:'a.expander'});\r
102 });\r
103 </pre>    \r
104 </body>\r
105 </html>