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(). |
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. |
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. |
4 * @param int When specified, represents the numeric opacity value to set the fade layer to. 1-100. |
5 */ |
5 */ |
6 |
6 |
7 var darkener_index = 0; |
7 var darkener_index = []; |
8 |
8 |
9 function darken(nofade, opacVal) |
9 function darken(nofade, opacVal, layerid) |
10 { |
10 { |
|
11 layerid = ( layerid ) ? layerid : 'specialLayer_darkener'; |
11 if(IE) |
12 if(IE) |
12 nofade = true; |
13 nofade = true; |
13 if ( !opacVal ) |
14 if ( !opacVal ) |
14 opacVal = 70; |
15 opacVal = 70; |
15 darkener_index++; |
16 darkener_index[layerid] = ( typeof(darkener_index[layerid]) == 'number' ) ? darkener_index[layerid] + 1 : 1; |
16 if(document.getElementById('specialLayer_darkener')) |
17 if(document.getElementById(layerid)) |
17 { |
18 { |
18 if(nofade) |
19 if(nofade) |
19 { |
20 { |
20 changeOpac(opacVal, 'specialLayer_darkener'); |
21 changeOpac(opacVal, layerid); |
21 document.getElementById('specialLayer_darkener').style.display = 'block'; |
22 document.getElementById(layerid).style.display = 'block'; |
22 document.getElementById('specialLayer_darkener').myOpacVal = opacVal; |
23 document.getElementById(layerid).myOpacVal = opacVal; |
23 } |
24 } |
24 else |
25 else |
25 { |
26 { |
26 if ( document.getElementById('specialLayer_darkener').style.display != 'none' ) |
27 if ( document.getElementById(layerid).style.display != 'none' ) |
27 { |
28 { |
28 var currentOpac = document.getElementById('specialLayer_darkener').myOpacVal; |
29 var currentOpac = document.getElementById(layerid).myOpacVal; |
29 opacity('specialLayer_darkener', currentOpac, opacVal, 1000); |
30 opacity(layerid, currentOpac, opacVal, 1000); |
30 document.getElementById('specialLayer_darkener').myOpacVal = opacVal; |
31 document.getElementById(layerid).myOpacVal = opacVal; |
31 } |
32 } |
32 else |
33 else |
33 { |
34 { |
34 document.getElementById('specialLayer_darkener').style.display = 'block'; |
35 document.getElementById(layerid).style.display = 'block'; |
35 document.getElementById('specialLayer_darkener').myOpacVal = opacVal; |
36 document.getElementById(layerid).myOpacVal = opacVal; |
36 opacity('specialLayer_darkener', 0, opacVal, 1000); |
37 opacity(layerid, 0, opacVal, 1000); |
37 } |
38 } |
38 } |
39 } |
39 } else { |
40 } else { |
40 w = getWidth(); |
41 w = getWidth(); |
41 h = getHeight(); |
42 h = getHeight(); |
57 thediv.style.opacity = '0'; |
58 thediv.style.opacity = '0'; |
58 thediv.style.filter = 'alpha(opacity=0)'; |
59 thediv.style.filter = 'alpha(opacity=0)'; |
59 thediv.style.backgroundColor = '#000000'; |
60 thediv.style.backgroundColor = '#000000'; |
60 thediv.style.width = '100%'; |
61 thediv.style.width = '100%'; |
61 thediv.style.height = '100%'; |
62 thediv.style.height = '100%'; |
62 thediv.zIndex = getHighestZ() + 5; |
63 thediv.style.zIndex = getHighestZ() + 5; |
63 thediv.id = 'specialLayer_darkener'; |
64 thediv.id = layerid; |
64 thediv.myOpacVal = opacVal; |
65 thediv.myOpacVal = opacVal; |
65 if(nofade) |
66 if(nofade) |
66 { |
67 { |
67 thediv.style.opacity = ( parseFloat(opacVal) / 100 ); |
68 thediv.style.opacity = ( parseFloat(opacVal) / 100 ); |
68 thediv.style.filter = 'alpha(opacity=' + opacVal + ')'; |
69 thediv.style.filter = 'alpha(opacity=' + opacVal + ')'; |
71 body.appendChild(thediv); |
72 body.appendChild(thediv); |
72 } else { |
73 } else { |
73 body = document.getElementsByTagName('body'); |
74 body = document.getElementsByTagName('body'); |
74 body = body[0]; |
75 body = body[0]; |
75 body.appendChild(thediv); |
76 body.appendChild(thediv); |
76 opacity('specialLayer_darkener', 0, opacVal, 1000); |
77 opacity(layerid, 0, opacVal, 1000); |
77 } |
78 } |
78 } |
79 } |
|
80 return document.getElementById(layerid); |
79 } |
81 } |
80 |
82 |
81 /** |
83 /** |
82 * Un-darkens the screen and re-enables clicking of on-screen controls. |
84 * 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. |
85 * @param bool If true, disables the fade effect. Fades are always disabled if aclDisableTransitionFX is true and on IE. |
84 */ |
86 */ |
85 |
87 |
86 function enlighten(nofade) |
88 function enlighten(nofade, layerid) |
87 { |
89 { |
|
90 layerid = ( layerid ) ? layerid : 'specialLayer_darkener'; |
|
91 |
88 if(IE) |
92 if(IE) |
89 nofade = true; |
93 nofade = true; |
90 darkener_index -= 1; |
94 darkener_index[layerid] -= 1; |
91 if ( darkener_index > 0 ) |
95 if ( darkener_index[layerid] > 0 ) |
92 return false; |
96 return false; |
93 if(document.getElementById('specialLayer_darkener')) |
97 if(document.getElementById(layerid)) |
94 { |
98 { |
95 if(nofade) |
99 if(nofade) |
96 { |
100 { |
97 document.getElementById('specialLayer_darkener').style.display = 'none'; |
101 document.getElementById(layerid).style.display = 'none'; |
98 } |
102 } |
99 else |
103 else |
100 { |
104 { |
101 var from = document.getElementById('specialLayer_darkener').myOpacVal; |
105 var from = document.getElementById(layerid).myOpacVal; |
102 // console.info('Fading from ' + from); |
106 opacity(layerid, from, 0, 1000); |
103 opacity('specialLayer_darkener', from, 0, 1000); |
107 setTimeout("document.getElementById('" + layerid + "').style.display = 'none';", 1000); |
104 setTimeout("document.getElementById('specialLayer_darkener').style.display = 'none';", 1000); |
|
105 } |
108 } |
106 } |
109 } |
|
110 return document.getElementById(layerid); |
107 } |
111 } |