source: BMXNET_RPMS_dotNET_UTILITIES-BMX/branch/BMX41000/IHS BMX Framework/IndianHealthService.BMXNet.Doc/Help/Scripts/Dropdown.js@ 1548

Last change on this file since 1548 was 1146, checked in by Sam Habiel, 13 years ago

Initial Import of BMX4

File size: 1.7 KB
Line 
1
2 // Dropdown menu control
3
4 function Dropdown(activatorId, dropdownId) {
5
6 // store activator and dropdown elements
7 this.activator = document.getElementById(activatorId);
8 this.dropdown = document.getElementById(dropdownId);
9
10 // wire up show/hide events
11 registerEventHandler(this.activator,'mouseover', getInstanceDelegate(this, "show"));
12 registerEventHandler(this.activator,'mouseout', getInstanceDelegate(this, "requestHide"));
13 registerEventHandler(this.dropdown,'mouseover', getInstanceDelegate(this, "show"));
14 registerEventHandler(this.dropdown,'mouseout', getInstanceDelegate(this, "requestHide"));
15
16 // fix visibility and position
17 this.dropdown.style.visibility = 'hidden';
18 this.dropdown.style.position = 'absolute';
19 this.reposition(null);
20
21 // wire up repositioning event
22 registerEventHandler(window, 'resize', getInstanceDelegate(this, "reposition"));
23
24
25 }
26
27 Dropdown.prototype.show = function(e) {
28 clearTimeout(this.timer);
29 this.dropdown.style.visibility = 'visible';
30 }
31
32 Dropdown.prototype.hide = function(e) {
33 this.dropdown.style.visibility = 'hidden';
34 }
35
36 Dropdown.prototype.requestHide = function(e) {
37 this.timer = setTimeout( getInstanceDelegate(this, "hide"), 250);
38 }
39
40 Dropdown.prototype.reposition = function(e) {
41
42 // get position of activator
43 var offsetLeft = 0;
44 var offsetTop = 0;
45 var offsetElement = this.activator;
46 while (offsetElement) {
47 offsetLeft += offsetElement.offsetLeft;
48 offsetTop += offsetElement.offsetTop;
49 offsetElement = offsetElement.offsetParent;
50 }
51
52 // set position of dropdown relative to it
53 this.dropdown.style.left = offsetLeft;
54 this.dropdown.style.top = offsetTop + this.activator.offsetHeight;
55
56 }
Note: See TracBrowser for help on using the repository browser.