/* Globals */
// Set Globals only they aren't set in the calling page
if(typeof(sidebarid) != "string")
{
	var sidebarid = 'sidebar'; /* using a var in case the template id is different */
}
if(typeof(widgetClassPrefix) != "string")
{
	var widgetClassPrefix = 'widget ';
}
if(typeof(widgetClassPrefix) != "string")
{
	var widgetClassDisqualifier = 'draggable-widget';
}
if(blnsidebaraccordion != true && blnsidebaraccordion != false)
{
	var blnsidebaraccordion = true;
}
var widgetdivs = new Array();
var widgetdivsi = 0;
var blnInitComplete = false;
var windowOnLoad;

function initSidebar(){
  if(!blnInitComplete)
  {
    blnInitComplete = true;
    var sidebardiv = document.getElementById(sidebarid);
    if(sidebardiv == null || sidebardiv == undefined)
    {
      return;
    }
    if(blnsidebaraccordion != true) var sidebarnavdiv = document.createElement('div');
    var divCount = sidebardiv.childNodes.length;
    for (var i = 0;i < divCount; i++)
    {
      var child = sidebardiv.childNodes[i];
      var childclass = child.attributes['class'].value;
      if(childclass.indexOf(widgetClassPrefix) >= 0 && childclass.indexOf(widgetClassDisqualifier) < 0)
      {
        if(child.innerHTML.indexOf("http://benfinnigan.com/js/sidebarnav.js") < 0)
        {
          widgetdivs[widgetdivsi++] = child;
          child.style.display = 'none';
          var widgetTitles = child.getElementsByTagName('H2');
          var widgetTitle;
          if(widgetTitles != null)
          {
            widgetTitle = widgetTitles[0];
          }
          var navName;
          if(widgetTitle != null && widgetTitle.innerHTML != null)
          {
            navName = widgetTitle.innerHTML;
          }
          else
          {
            navName = childclass.replace(widgetClassPrefix, '');
          }
          if(blnsidebaraccordion == true)
          {
            var sidebarnavdiv = document.createElement('div');
            sidebardiv.insertBefore(sidebarnavdiv,child);
            i++;
            divCount++;
          }
          sidebarnavdiv.innerHTML += '<div class=\'sidebarnavbutton\' onClick=\'showWidget("' + child.id + '")\'>' + navName + '</div>';
	}
	else
        {
          child.style.display = 'none';
        }
      }
    }
    if(blnsidebaraccordion != true)
    {
      sidebardiv.insertBefore(sidebarnavdiv,sidebardiv.childNodes[0]);
    }
    showWidget(widgetdivs[0].id);
  } 
}
function showWidget(toShow)
{
  for (var i = 0;i < widgetdivsi; i++)
  {
    var thisDiv = widgetdivs[i];
    if(thisDiv.id == toShow)
    {
      thisDiv.style.display = (thisDiv.style.display == 'block')?'none':'block';
    }
    else
    {
      thisDiv.style.display = 'none';
    }
  }
}
/* Firefox DOM support */
if (document.addEventListener)
{
  document.addEventListener("DOMContentLoaded", initSidebar, false);
}

/* for other browsers */
if(window.onload == null || typeof window.onload != 'function')
{
  window.onload = initSidebar;
}
else
{
  windowOnLoad = window.onload;
  window.onload = function()
  {
    windowOnLoad();
    initSidebar();
  };
}