|
1 /** |
|
2 * Darkens the browser screen. This will make the entire page un-clickable except for any floating divs created after this is called. Restore with enlighten(). |
|
3 * @param bool Controls whether the fade should be disabled or not. aclDisableTransitionFX will override this if set to true, and fades are never fired on IE. |
|
4 * @param int When specified, represents the numeric opacity value to set the fade layer to. 1-100. |
|
5 */ |
|
6 |
|
7 var darkener_index = 0; |
|
8 |
|
9 function darken(nofade, opacVal) |
|
10 { |
|
11 if(IE) |
|
12 nofade = true; |
|
13 if ( !opacVal ) |
|
14 opacVal = 70; |
|
15 darkener_index++; |
|
16 if(document.getElementById('specialLayer_darkener')) |
|
17 { |
|
18 if(nofade) |
|
19 { |
|
20 changeOpac(opacVal, 'specialLayer_darkener'); |
|
21 document.getElementById('specialLayer_darkener').style.display = 'block'; |
|
22 document.getElementById('specialLayer_darkener').myOpacVal = opacVal; |
|
23 } |
|
24 else |
|
25 { |
|
26 if ( document.getElementById('specialLayer_darkener').style.display != 'none' ) |
|
27 { |
|
28 var currentOpac = document.getElementById('specialLayer_darkener').myOpacVal; |
|
29 opacity('specialLayer_darkener', currentOpac, opacVal, 1000); |
|
30 document.getElementById('specialLayer_darkener').myOpacVal = opacVal; |
|
31 } |
|
32 else |
|
33 { |
|
34 document.getElementById('specialLayer_darkener').style.display = 'block'; |
|
35 document.getElementById('specialLayer_darkener').myOpacVal = opacVal; |
|
36 opacity('specialLayer_darkener', 0, opacVal, 1000); |
|
37 } |
|
38 } |
|
39 } else { |
|
40 w = getWidth(); |
|
41 h = getHeight(); |
|
42 var thediv = document.createElement('div'); |
|
43 if(IE) |
|
44 thediv.style.position = 'absolute'; |
|
45 else |
|
46 thediv.style.position = 'fixed'; |
|
47 if ( IE ) |
|
48 { |
|
49 var top = getScrollOffset(); |
|
50 thediv.style.top = String(top) + 'px'; |
|
51 } |
|
52 else |
|
53 { |
|
54 thediv.style.top = '0px'; |
|
55 } |
|
56 thediv.style.left = '0px'; |
|
57 thediv.style.opacity = '0'; |
|
58 thediv.style.filter = 'alpha(opacity=0)'; |
|
59 thediv.style.backgroundColor = '#000000'; |
|
60 thediv.style.width = '100%'; |
|
61 thediv.style.height = '100%'; |
|
62 thediv.zIndex = getHighestZ() + 5; |
|
63 thediv.id = 'specialLayer_darkener'; |
|
64 thediv.myOpacVal = opacVal; |
|
65 if(nofade) |
|
66 { |
|
67 thediv.style.opacity = ( parseFloat(opacVal) / 100 ); |
|
68 thediv.style.filter = 'alpha(opacity=' + opacVal + ')'; |
|
69 body = document.getElementsByTagName('body'); |
|
70 body = body[0]; |
|
71 body.appendChild(thediv); |
|
72 } else { |
|
73 body = document.getElementsByTagName('body'); |
|
74 body = body[0]; |
|
75 body.appendChild(thediv); |
|
76 opacity('specialLayer_darkener', 0, opacVal, 1000); |
|
77 } |
|
78 } |
|
79 } |
|
80 |
|
81 /** |
|
82 * Un-darkens the screen and re-enables clicking of on-screen controls. |
|
83 * @param bool If true, disables the fade effect. Fades are always disabled if aclDisableTransitionFX is true and on IE. |
|
84 */ |
|
85 |
|
86 function enlighten(nofade) |
|
87 { |
|
88 if(IE) |
|
89 nofade = true; |
|
90 darkener_index -= 1; |
|
91 if ( darkener_index > 0 ) |
|
92 return false; |
|
93 if(document.getElementById('specialLayer_darkener')) |
|
94 { |
|
95 if(nofade) |
|
96 { |
|
97 document.getElementById('specialLayer_darkener').style.display = 'none'; |
|
98 } |
|
99 else |
|
100 { |
|
101 var from = document.getElementById('specialLayer_darkener').myOpacVal; |
|
102 // console.info('Fading from ' + from); |
|
103 opacity('specialLayer_darkener', from, 0, 1000); |
|
104 setTimeout("document.getElementById('specialLayer_darkener').style.display = 'none';", 1000); |
|
105 } |
|
106 } |
|
107 } |