//
// Copyright(c) 2005 Gammakurve Corporation. All rights reserved.
//

var sidebarIsOpen     = SGL_SIDEBAR_OPEN;
var sidebarIsAnchored = SGL_SIDEBAR_ANCHORED;

function getEvent(e)
{
  if (typeof e == 'undefined') e = window.event;

  if (e.srcElement) {
    e.realtarget = e.srcElement;
  } else {
    e.realtarget = e.target;
  }

  return e;
}

function showSidebar(e)
{
  e = getEvent(e);

  var sb = document.getElementById('dynamicSidebar');

  if (sb == null) {
    return false;
  }

  sb.style.display = "block";
  sidebarIsOpen = true;

  return false;
}

function hideSidebar(e)
{
  e = getEvent(e);

  switch (e.realtarget.id) {
  case 'sidebarGrip':
  case 'dynamicSidebar':
  case 'theGrip':
    break;
  default:
    if ( e.realtarget.className.search(/sidebarControlButton/) != -1 ) {
      break;
    } else {
      return true;
    }
  }

  if (sidebarIsAnchored) {
    return false;
  }

  var sb = document.getElementById('dynamicSidebar');

  if (sb == null) {
    return false;
  }

  sb.style.display = "none";
  sidebarIsOpen = false;

  return false;
}

function toggleSidebar(e)
{
  if (sidebarIsAnchored) {
    return anchorSidebar(e);
  }

  if (sidebarIsOpen) {
      return hideSidebar(e);
  } else {
      return showSidebar(e);
  }
}

function theEventStopsHere(e)
{
  e.cancelBubble = true;
  if (e.stopPropagation) {
    e.stopPropagation();
  }
}

function anchorSidebar(e)
{
  e = getEvent(e);

  theEventStopsHere(e);

  var cb = document.getElementById('contentBlock');
  if (cb == null) {
    var cb = document.getElementById('contentBlock-nocols');
  }

  if (cb == null) {
    var cb = document.getElementById('contentBlock-rightcol');
  }

  if (cb == null) {
    var cb = document.getElementById('contentBlock-leftcol');
  }

  if (cb == null) {
    return false;
  }

  sidebarIsAnchored = !sidebarIsAnchored;
  sidebarIsOpen = sidebarIsAnchored;

  var asb = document.getElementById('anchorSidebar');
  if (sidebarIsAnchored) {
    if (asb != null) {
      asb.className = "sidebarControlButton anchoredSidebar";
    }

    cb.style.marginLeft = SGL_PAGE_INDENT_ANCHORED;
    return showSidebar(e);
  } else {
    if (asb != null) {
      asb.className = "sidebarControlButton unanchoredSidebar";
    }

    cb.style.marginLeft = SGL_PAGE_INDENT;
    return hideSidebar(e);
  }
}
