includes/clientside/static/fadefilter.js
changeset 677 2a263b598a2b
parent 582 a38876c0793c
child 694 43367c66d869
equal deleted inserted replaced
676:47413d71c2d9 677:2a263b598a2b
     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 }