7 var darkener_index = []; |
7 var darkener_index = []; |
8 var FADE_TIME = 500; // in ms |
8 var FADE_TIME = 500; // in ms |
9 |
9 |
10 function darken(nofade, opacVal, layerid) |
10 function darken(nofade, opacVal, layerid) |
11 { |
11 { |
12 layerid = ( layerid ) ? layerid : 'specialLayer_darkener'; |
12 layerid = ( layerid ) ? layerid : 'specialLayer_darkener'; |
13 if(IE) |
13 if(IE) |
14 nofade = true; |
14 nofade = true; |
15 if ( !opacVal ) |
15 if ( !opacVal ) |
16 opacVal = 70; |
16 opacVal = 70; |
17 darkener_index[layerid] = ( typeof(darkener_index[layerid]) == 'number' ) ? darkener_index[layerid] + 1 : 1; |
17 darkener_index[layerid] = ( typeof(darkener_index[layerid]) == 'number' ) ? darkener_index[layerid] + 1 : 1; |
18 if(document.getElementById(layerid) && !document.getElementById(layerid).destroying) |
18 if(document.getElementById(layerid) && !document.getElementById(layerid).destroying) |
19 { |
19 { |
20 document.getElementById(layerid).style.zIndex = getHighestZ() + 1; |
20 document.getElementById(layerid).style.zIndex = getHighestZ() + 1; |
21 if(nofade) |
21 if(nofade) |
22 { |
22 { |
23 changeOpac(opacVal, layerid); |
23 changeOpac(opacVal, layerid); |
24 document.getElementById(layerid).style.display = 'block'; |
24 document.getElementById(layerid).style.display = 'block'; |
25 document.getElementById(layerid).myOpacVal = opacVal; |
25 document.getElementById(layerid).myOpacVal = opacVal; |
26 } |
26 } |
27 else |
27 else |
28 { |
28 { |
29 if ( document.getElementById(layerid).style.display != 'none' ) |
29 if ( document.getElementById(layerid).style.display != 'none' ) |
30 { |
30 { |
31 var currentOpac = document.getElementById(layerid).myOpacVal; |
31 var currentOpac = document.getElementById(layerid).myOpacVal; |
32 opacity(layerid, currentOpac, opacVal, FADE_TIME); |
32 opacity(layerid, currentOpac, opacVal, FADE_TIME); |
33 document.getElementById(layerid).myOpacVal = opacVal; |
33 document.getElementById(layerid).myOpacVal = opacVal; |
34 } |
34 } |
35 else |
35 else |
36 { |
36 { |
37 document.getElementById(layerid).style.display = 'block'; |
37 document.getElementById(layerid).style.display = 'block'; |
38 document.getElementById(layerid).myOpacVal = opacVal; |
38 document.getElementById(layerid).myOpacVal = opacVal; |
39 opacity(layerid, 0, opacVal, FADE_TIME); |
39 opacity(layerid, 0, opacVal, FADE_TIME); |
40 } |
40 } |
41 } |
41 } |
42 } |
42 } |
43 else if(document.getElementById(layerid) && document.getElementById(layerid).destroying) |
43 else if(document.getElementById(layerid) && document.getElementById(layerid).destroying) |
44 { |
44 { |
45 // fade in progress - abort |
45 // fade in progress - abort |
46 console.warn('Aborting fade'); |
46 console.warn('Aborting fade'); |
47 abortFades(); |
47 abortFades(); |
48 changeOpac(opacVal, layerid); |
48 changeOpac(opacVal, layerid); |
49 document.getElementById(layerid).destroying = false; |
49 document.getElementById(layerid).destroying = false; |
50 return document.getElementById(layerid); |
50 return document.getElementById(layerid); |
51 } |
51 } |
52 else |
52 else |
53 { |
53 { |
54 w = getWidth(); |
54 w = getWidth(); |
55 h = getHeight(); |
55 h = getHeight(); |
56 var thediv = document.createElement('div'); |
56 var thediv = document.createElement('div'); |
57 if(IE) |
57 if(IE) |
58 thediv.style.position = 'absolute'; |
58 thediv.style.position = 'absolute'; |
59 else |
59 else |
60 thediv.style.position = 'fixed'; |
60 thediv.style.position = 'fixed'; |
61 if ( IE ) |
61 if ( IE ) |
62 { |
62 { |
63 var top = getScrollOffset(); |
63 var top = getScrollOffset(); |
64 thediv.style.top = String(top) + 'px'; |
64 thediv.style.top = String(top) + 'px'; |
65 } |
65 } |
66 else |
66 else |
67 { |
67 { |
68 thediv.style.top = '0px'; |
68 thediv.style.top = '0px'; |
69 } |
69 } |
70 thediv.style.left = '0px'; |
70 thediv.style.left = '0px'; |
71 thediv.style.opacity = '0'; |
71 thediv.style.opacity = '0'; |
72 thediv.style.filter = 'alpha(opacity=0)'; |
72 thediv.style.filter = 'alpha(opacity=0)'; |
73 thediv.style.backgroundColor = '#000000'; |
73 thediv.style.backgroundColor = '#000000'; |
74 thediv.style.width = '100%'; |
74 thediv.style.width = '100%'; |
75 thediv.style.height = IE ? h + 'px' : '100%'; |
75 thediv.style.height = IE ? h + 'px' : '100%'; |
76 thediv.style.zIndex = getHighestZ() + 1; |
76 thediv.style.zIndex = getHighestZ() + 1; |
77 thediv.id = layerid; |
77 thediv.id = layerid; |
78 thediv.myOpacVal = opacVal; |
78 thediv.myOpacVal = opacVal; |
79 if(nofade) |
79 if(nofade) |
80 { |
80 { |
81 thediv.style.opacity = ( parseFloat(opacVal) / 100 ); |
81 thediv.style.opacity = ( parseFloat(opacVal) / 100 ); |
82 thediv.style.filter = 'alpha(opacity=' + opacVal + ')'; |
82 thediv.style.filter = 'alpha(opacity=' + opacVal + ')'; |
83 body = document.getElementsByTagName('body'); |
83 body = document.getElementsByTagName('body'); |
84 body = body[0]; |
84 body = body[0]; |
85 body.appendChild(thediv); |
85 body.appendChild(thediv); |
86 } else { |
86 } else { |
87 body = document.getElementsByTagName('body'); |
87 body = document.getElementsByTagName('body'); |
88 body = body[0]; |
88 body = body[0]; |
89 body.appendChild(thediv); |
89 body.appendChild(thediv); |
90 opacity(layerid, 0, opacVal, FADE_TIME); |
90 opacity(layerid, 0, opacVal, FADE_TIME); |
91 } |
91 } |
92 } |
92 } |
93 return document.getElementById(layerid); |
93 return document.getElementById(layerid); |
94 } |
94 } |
95 |
95 |
96 /** |
96 /** |
97 * Un-darkens the screen and re-enables clicking of on-screen controls. |
97 * Un-darkens the screen and re-enables clicking of on-screen controls. |
98 * @param bool If true, disables the fade effect. Fades are always disabled if aclDisableTransitionFX is true and on IE. |
98 * @param bool If true, disables the fade effect. Fades are always disabled if aclDisableTransitionFX is true and on IE. |
99 */ |
99 */ |
100 |
100 |
101 function enlighten(nofade, layerid) |
101 function enlighten(nofade, layerid) |
102 { |
102 { |
103 layerid = ( layerid ) ? layerid : 'specialLayer_darkener'; |
103 layerid = ( layerid ) ? layerid : 'specialLayer_darkener'; |
104 |
104 |
105 if(IE) |
105 if(IE) |
106 nofade = true; |
106 nofade = true; |
107 darkener_index[layerid] -= 1; |
107 darkener_index[layerid] -= 1; |
108 if ( darkener_index[layerid] > 0 ) |
108 if ( darkener_index[layerid] > 0 ) |
109 return false; |
109 return false; |
110 if(document.getElementById(layerid)) |
110 if(document.getElementById(layerid)) |
111 { |
111 { |
112 if(nofade) |
112 if(nofade) |
113 { |
113 { |
114 document.getElementById(layerid).style.display = 'none'; |
114 document.getElementById(layerid).style.display = 'none'; |
115 } |
115 } |
116 else |
116 else |
117 { |
117 { |
118 document.getElementById(layerid).destroying = true; |
118 document.getElementById(layerid).destroying = true; |
119 var from = document.getElementById(layerid).myOpacVal; |
119 var from = document.getElementById(layerid).myOpacVal; |
120 opacity(layerid, from, 0, FADE_TIME); |
120 opacity(layerid, from, 0, FADE_TIME); |
121 setTimeout("var l = document.getElementById('" + layerid + "'); var b = document.getElementsByTagName('body')[0]; b.removeChild(l);", 1000); |
121 setTimeout("var l = document.getElementById('" + layerid + "'); var b = document.getElementsByTagName('body')[0]; b.removeChild(l);", 1000); |
122 } |
122 } |
123 } |
123 } |
124 return document.getElementById(layerid); |
124 return document.getElementById(layerid); |
125 } |
125 } |