//////////////////////////////////////////////////////////////////////////////

var isMsie  = ( navigator.userAgent.indexOf( "MSIE" ) > -1 ) ? true : false;
var isGecko = ( navigator.userAgent.indexOf( "Gecko" ) > -1 ) ? true : false;

//////////////////////////////////////////////////////////////////////////////

var css1DisplayValues      = new Array();
css1DisplayValues['block'] = new Array( 'div', 'p', 'table', 'tr', 'tbody', 'thead', 'tfoot' );

if( isGecko ) {
   var css2DisplayValues = new Array();
   css2DisplayValues['table'] = new Array( 'table' );
   css2DisplayValues['table-cell'] = new Array( 'td', 'th' );
   css2DisplayValues['table-row'] = new Array( 'tr' );
   css2DisplayValues['block'] = new Array( 'div', 'p' );
   css2DisplayValues['table-row-group'] = new Array( 'tbody' );
   css2DisplayValues['table-header-group'] = new Array( 'thead' );
   css2DisplayValues['table-footer-group'] = new Array( 'tfoot' );
}


function lookupDisplayValue( tagName, displayValues )
{
   tagName = tagName.toLowerCase()
   
   for( var displayValue in displayValues )
      for( var i=0; i < displayValues[displayValue].length; i++ )
         if( tagName == displayValues[displayValue][i] ) {   
            return displayValue;
         }
            
   return 'inline';
}

//////////////////////////////////////////////////////////////////////////////

function showElement( element )
{
   if( element == null )
      return;

   if( isGecko == true ) {
      element.style.display = lookupDisplayValue( element.tagName, css2DisplayValues );
   } else if( isMsie == true ) {
      element.style.display = lookupDisplayValue( element.tagName, css1DisplayValues );
   }
}

function hideElement( element )
{
   if( element == null ) {
      return;
   }
   element.style.display = 'none';
}

//////////////////////////////////////////////////////////////////////////////

function isHidden( id )
{
   var element = document.getElementById( id );
   return ( element.className.indexOf( "invisible" ) != -1  &&  !element.style.display ) 
          ||  ( element.style.display == "none" )
   ;
}

//////////////////////////////////////////////////////////////////////////////

function toggleVisibility( id, state ) {            
   var element = document.getElementById( id );      
   if( element != null ) {
      if( state == "off" ) {
         hideElement( element );
         return;
      }
      if( isHidden( id ) || state == 1 || state == "on" ) {
         showElement( element );
      }
      else {
         hideElement( element );
      }
   }
}

//////////////////////////////////////////////////////////////////////////////

