includes/clientside/static/fadefilter.js
changeset 1227 bdac73ed481e
parent 1056 f21d6e75b469
equal deleted inserted replaced
1226:de56132c008d 1227:bdac73ed481e
     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 }