includes/clientside/static/fadefilter.js
changeset 582 a38876c0793c
child 677 2a263b598a2b
equal deleted inserted replaced
581:5e8fd89c02ea 582:a38876c0793c
       
     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 }