themes/admin/js/menu.js
author Dan
Sat, 25 Aug 2007 12:11:31 -0400
changeset 98 6457a9b983c6
parent 86 c162ca39db8f
permissions -rw-r--r--
Fixed non-object reference in databaseless template, added locking for Javascript paginator, made comments on AES key size more clear in constants, and disallowed "anonymous" and IP addresses for admin username in install.php; Loch Ness release candidate

/*
 * IE doesn't like display: table.
 */

var TBL_SHOW = ( IE ) ? 'block' : 'table';

function admin_expand()
{
  var expander = document.getElementById('sidebar-hide');
  var content  = document.getElementById('sidebar-show');
  var holder  = document.getElementById('td-sidebar');
  if ( content.style.display == TBL_SHOW )
  {
    admin_collapse_real(expander, content, holder);
    createCookie('theme_admin_sidebar', 'collapsed', 3650);
  }
  else
  {
    admin_expand_real(expander, content, holder);
    createCookie('theme_admin_sidebar', 'expanded', 3650);
  }
}

function admin_collapse_real(expander, content, holder)
{
  expander.className = 'collapsed';
  content.style.display = 'none';
  holder.style.width = '0px';
  holder.style.paddingRight = '12px';
  holder.style.paddingLeft = '0px';
}

function admin_expand_real(expander, content, holder)
{
  expander.className = 'expanded';
  content.style.display = TBL_SHOW;
  holder.style.width = '230px';
  holder.style.paddingLeft = '12px';
  holder.style.paddingRight = '0px';
}

function expander_set_height()
{
  var expander = document.getElementById('sidebar-hide');
  var magic = $('header').Height() + $('pagebar_main').Height();
  var height = getHeight();
  var exheight = height - magic;
  expander.style.height = exheight + 'px';
  expander.style.top = magic + 'px';
  expander_set_pos();
}

function expander_onload()
{
  var expander = document.getElementById('sidebar-hide');
  var content  = document.getElementById('sidebar-show');
  var holder  = document.getElementById('td-sidebar');
  if ( readCookie('theme_admin_sidebar') == 'collapsed' )
  {
    admin_collapse_real(expander, content, holder);
  }
  else if ( readCookie('theme_admin_sidebar') == 'expanded' )
  {
    admin_expand_real(expander, content, holder);
  }
}

function expander_set_pos()
{
  var winheight = getHeight();
  var magic = $('header').Height() + $('pagebar_main').Height();
  var top = getScrollOffset();
  if ( typeof(top) != 'number' )
  {
    return null;
  }
  magic = magic - top;
  if ( magic < 0 )
    magic = 0;
  var bartop = magic + top;
  var barheight = winheight - magic;
  var expander = document.getElementById('sidebar-hide');
  expander.style.top = bartop + 'px';
  expander.style.height = barheight + 'px';
}

addOnloadHook(expander_set_height);
addOnloadHook(expander_onload);
window.onresize = expander_set_height;
window.onscroll = expander_set_pos;