/**
 * show/hide cool global overlay
 *
 * Created on 11.09.2008
 * Project: asurvey
 *
 * '$Id: cool.js,v 1.9 2011/02/28 10:31:44 abaethe Exp $'
 *
 */


/**
 * display/hide grey overlay div
 * NOTE: normally all selects are disabled (because of bad interactions with some browsers), 
 *       except "toggleGlobalOverlay('noselectchange')" is called
 */
var body_objects;
function toggleGlobalOverlay(noselectchange)    
{
  var go = document.getElementById('grey_overlay');
  var fr = document.getElementById('body');
  var go_v = go.style.visibility;

  // have to set height dynamically because css-100% would refer to visible browser-window only, not whole html-height
  go.style.height = (fr.scrollHeight > fr.offsetHeight ? fr.scrollHeight : fr.offsetHeight) + "px";   // (offset|scroll)Height have only a getter
  
  var body_selects = document.getElementsByTagName("select");
  if( !body_objects )
    body_objects = document.getElementsByTagName("object");

  if( !go_v || (go_v == 'hidden') )
  {
    document.getElementById('grey_overlay').style.visibility = 'visible';
    if( noselectchange != 'noselectchange' )
      for( i = 0; i < body_selects.length; i++ )
        body_selects[i].style.visibility = "hidden";
    for( i = 0; i < body_objects.length; i++ )
    {
      if( body_objects[i].style.visibility == "visible" )
        body_objects[i].style.visibility = "hidden";
      else
        body_objects[i].id = '';
    }
  }
  else
  {
    document.getElementById('grey_overlay').style.visibility = 'hidden';
    if( noselectchange != 'noselectchange' )
      for( i = 0; i < body_selects.length; i++ )
        body_selects[i].style.visibility = "visible";
    for( i = 0; i < body_objects.length; i++ )
      if( body_objects[i].id )
        body_objects[i].style.visibility = "visible";
  }
}



function toggleGlobalOverlayLoading(noselectchange)    
{
  var go = document.getElementById('grey_overlay_loading');
  var fr = document.getElementById('body');
  var go_v = go.style.visibility;

  // have to set height dynamically because css-100% would refer to visible browser-window only, not whole html-height
  go.style.height = (fr.scrollHeight > fr.offsetHeight ? fr.scrollHeight : fr.offsetHeight) + "px";   // (offset|scroll)Height have only a getter
  
  var body_selects = document.getElementsByTagName("select");
  if( !body_objects )
    body_objects = document.getElementsByTagName("object");

  // place loading image relative to vertical scroll position
  go.style.backgroundPosition = "center " + (parseInt(window.pageYOffset ? window.pageYOffset : document.documentElement.scrollTop) + 400) + "px";

  if( !go_v || (go_v == 'hidden') )
  {
    go.style.visibility = 'visible';
    if( noselectchange != 'noselectchange' )
      for( i = 0; i < body_selects.length; i++ )
        body_selects[i].style.visibility = "hidden";
    for( i = 0; i < body_objects.length; i++ )
    {
      if( body_objects[i].style.visibility == "visible" )
        body_objects[i].style.visibility = "hidden";
      else
        body_objects[i].id = '';
    }
  }
  else
  {
    go.style.visibility = 'hidden';
    if( noselectchange != 'noselectchange' )
      for( i = 0; i < body_selects.length; i++ )
        body_selects[i].style.visibility = "visible";
    for( i = 0; i < body_objects.length; i++ )
      if( body_objects[i].id )
        body_objects[i].style.visibility = "visible";
  }
}

