// START Collapsing Menu Replacement for YahooSections V4.03
// This variant optionally uses [+] and [-] buttons to manipulate sub-sections
// author - see www.drillpine.biz/actinicstuff
// begin user configurable variables
var autocollapse = true;							// whether to collapse existing menus when others are opened
var iconfirst = true;								// whether to place the [+] / [-] at beginning of line
var iconactive = true;								// whether icon manages navigation separately from text
var iconseparator = ' ';							// between icon and text
var cobetween = '';								// extra vertical space between top-level items
var coindent = '&nbsp;&nbsp;';							// the indenting for sub-menus
var subcobetween = '';								// extra vertical space between sub-level items
var subcoindent = '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';			// the indenting for sub-sub-menus
var topwithchildclosed = '<img border=0 src="coll-plus.gif" width=9 height=9>';	// icon for top level with sub-levels, when closed
var topwithchildopen = '<img border=0 src="coll-minus.gif" width=9 height=9>';	// icon for top level with sub-levels, when open
var topwithnochild = '<img border=0 src="coll-null.gif" width=9 height=9>';	// icon for top level with no sub-levels
var subwithchildclosed = '<img border=0 src="coll-plus.gif" width=9 height=9> ';// icon for sub level with sub-levels, when closed
var subwithchildopen = '<img border=0 src="coll-minus.gif" width=9 height=9> ';	// icon for sub level with sub-levels, when open
var subwithnochild = '<img border=0 src="coll-null.gif" width=9 height=9>';	// icon for sub level with no sub-levels
var subend = '';								// after last sub menu item
var subsubwithchild = '';							// suffix for sub-sub level with no sub-levels
var subsubwithnochild = '';							// suffix for sub-sub level with no sub-levels
var subsubend = '';								// after last sub-sub menu item
// end user configurable variables

var menuState = -1;
var submenuStateM = -1;
var submenuStateN = -1;

function showSubMenu(n){
  //collapse currently displayed submenu
  if (autocollapse && (menuState >= 0))
    {
    // collapse submenu
    document.getElementById("Header" + menuState).className = "hideObject";
    // hide heading
    document.getElementById("SubMenu" + menuState).className = "hideObject";
    // show Menu item
    document.getElementById("Item" + menuState).className = "showObject";
    }
  // turn off Menu item
  document.getElementById("Item" + n).className = "hideObject";
  // turn on Menu header
  document.getElementById("Header" + n).className = "showObject";
  // expand submenu
  document.getElementById("SubMenu" + n).className = "showObject";
  menuState = n;
}  

function hideSubMenu(n){
  document.getElementById("Header" + n).className = "hideObject";
  document.getElementById("SubMenu" + n).className = "hideObject";
  document.getElementById("Item" + n).className = "showObject";
}

function showSubSubMenu(m, n){
  //collapse currently displayed submenu
  if (autocollapse && (submenuStateM >= 0))
    {
    // collapse submenu
    document.getElementById("SubHeader" + submenuStateM + '-' + submenuStateN).className = "hideObject";
    // hide heading
    document.getElementById("SubSubMenu" + submenuStateM + '-' + submenuStateN).className = "hideObject";
    // show Menu item
    document.getElementById("SubItem" + submenuStateM + '-' + submenuStateN).className = "showObject";
    }
  // turn off Menu item
  document.getElementById("SubItem" + m + '-' + n).className = "hideObject";
  // turn on Menu header
  document.getElementById("SubHeader" + m + '-' + n).className = "showObject";
  // expand submenu
  document.getElementById("SubSubMenu" + m + '-' + n).className = "showObject";
  submenuStateM = m;
  submenuStateN = n;
}  

function hideSubSubMenu(m, n){
  document.getElementById("SubHeader" + m + '-' + n).className = "hideObject";
  document.getElementById("SubSubMenu" + m + '-' + n).className = "hideObject";
  document.getElementById("SubItem" + m + '-' + n).className = "showObject";
}

function YahooSections(ar){
  var strIDs = '<table class="toptable" width="100%" cellpadding="0" cellspacing="0" border="0">';
  for (var i=0; i < ar.length; i++)
    {  // main FOR
    var covspace = i == 0 ? '' : cobetween;
    if (ar[i+1].pChild)
      {   // top has CHILD
      strIDs += '<tr id="Item' + i + '" class="showObject"><td>' + covspace;
      if ( iconactive )
        {
        ls = '';
        l1 = '<a href="javascript:showSubMenu(' + i + ')">' + topwithchildclosed + '</a>';
        l2 = '<a href="' + ar[i+1].sURL + '"><span class="topclosed">' + ar[i+1].sName + '</span></a>';
        le = '';  
        }
      else
        {
        ls = '<a href="javascript:showSubMenu(' + i + ')">';
        l1 = topwithchildclosed;
        l2 = '<span class="topclosed">' + ar[i+1].sName + '</span>';
        le = '</a>';
        }
      strIDs += iconfirst ? ls + l1 + iconseparator + l2 + le : ls + l2 + iconseparator + l1 + le;   
      strIDs + '</td></tr>';

      strIDs += '<tr id="Header' + i + '" class="hideObject"><td>' + covspace + '';
      if ( iconactive )
        {
        ls = '';
        l1 = '<a href="javascript:hideSubMenu(' + i + ')">' + topwithchildopen + '</a>';
        l2 = '<a href="' + ar[i+1].sURL + '"><span class="topopen">' + ar[i+1].sName + '</span></a>'; 
        le = '';  
        }
      else
        {
        ls = '<a href="javascript:hideSubMenu(' + i + ')">';
        l1 =  topwithchildopen;
        l2 = '<span class="topopen">' + ar[i+1].sName + '</span>'; 
        le = '</a>';  
        }
      strIDs += iconfirst ? ls + l1 + iconseparator + l2 + le : ls + l2 + iconseparator + l1 + le;   
      strIDs += '</td></tr>';

      strIDs += '<tr id="SubMenu' + i + '" class="hideObject">'
                + '<td><table class="subtable" width="100%" cellpadding="0" cellspacing="0" border="0">';

      for (var j=1; j <= ar[i+1].pChild.length; j++)
        {  // each CHILD
        var subcovspace = j == 1 ? '' : subcobetween;
        if (ar[i+1].pChild[j].pChild)
          {    // child has SUB
          strIDs += '<tr id="SubItem' + i + '-' + j + '" class="showObject"><td>' + coindent;
          if ( iconactive )
            {
            ls = '';
            l1= '<a href="javascript:showSubSubMenu(' + i + ',' + j + ')">' + subwithchildclosed + '</a>';
            l2 = '<a href="' + ar[i+1].pChild[j].sURL + '"><span class="subtopclosed">' + ar[i+1].pChild[j].sName + '</span></a>';
            le = '';
            }
          else
            {
            ls = '<a href="javascript:showSubSubMenu(' + i + ',' + j + ')">';
            l1=  subwithchildclosed;
            l2 = '<span class="subtopclosed">' + ar[i+1].pChild[j].sName + '</span>';
            le = '</a>';
            } 
          strIDs += iconfirst ? ls + l1 + iconseparator + l2 + le : ls + l2 + iconseparator + l1 + le;   
	  strIDs += '</td></tr>';

          strIDs += '<tr id="SubHeader' + i + '-' + j + '" class="hideObject"><td>' + subcovspace + coindent
          if ( iconactive )
            {
            ls = '';
            l1 = '<a href="javascript:hideSubSubMenu(' + i + ',' + j + ')">' + subwithchildopen + '</a>';
            l2 = '<a href="' + ar[i+1].pChild[j].sURL + '"><span class="subtopopen">' + ar[i+1].pChild[j].sName + '</span></a>';
            le = ''; 
            }
          else
            {
            ls = '<a href="javascript:hideSubSubMenu(' + i + ',' + j + ')">';
            l1 = subwithchildopen;
            l2 = '<span class="subtopopen">' + ar[i+1].pChild[j].sName + '</span>';
            le = '</a>'; 
            }
          strIDs += iconfirst ? ls + l1 + iconseparator + l2 + le : ls + l2 + iconseparator + l1 + le;   
	  strIDs += '</td></tr>';

          strIDs += '<tr id="SubSubMenu' + i + '-' + j + '" class="hideObject">'
                    + '<td><table class="subsubtable" width="100%" cellpadding="0" cellspacing="0" border="0">';
          for (var k=1; k <= ar[i+1].pChild[j].pChild.length; k++)
            {    // each SUB SUB
            if (ar[i+1].pChild[j].pChild[k].pChild)
              {
              strIDs += '<tr><td>' + subcoindent + '<a href="' + ar[i+1].pChild[j].pChild[k].sURL + '">'
                        + '<span class="subsubwchild">' + ar[i+1].pChild[j].pChild[k].sName + subsubwithchild + '</span></a></td></tr>';
              }
            else
              {
              strIDs += '<tr><td>' + subcoindent + '<a href="' + ar[i+1].pChild[j].pChild[k].sURL + '">'
                        + '<span class="subsubnochild">' + ar[i+1].pChild[j].pChild[k].sName + subsubwithnochild + '</span></a></td></tr>';
              }
            }     // each SUB SUB
          strIDs += '</table>' + subsubend + '</td></tr>';
          }    // child has SUB
        else
          {    // child has SUB
          strIDs += '<tr id="SubItem' + j + '"><td>' + coindent; 
          l1 = subwithnochild; 
          l2 = '<a href="' + ar[i+1].pChild[j].sURL + '"><span class="subnochild">' + ar[i+1].pChild[j].sName + '</span></a>'
          strIDs += iconfirst ? l1 + iconseparator + l2 : l2 + iconseparator + l1;   
          strIDs += '</td></tr>';
          }    // child has SUB
        }  // each CHILD
      strIDs += '</table>' + subend + '</td></tr>';
      }   // top has CHILD
    else
      {   // top has CHILD
      strIDs += '<tr id="Item' + i + '" class="showObject"><td>' + covspace
      l1 = topwithnochild; 
      l2 = '<a href="' + ar[i+1].sURL + '"><span class="topnochild">'+ ar[i+1].sName + '</span></a>'
      strIDs += iconfirst ? l1 + iconseparator + l2 : l2 + iconseparator + l1;   
      strIDs += '</td></tr>';
      }   // top has CHILD
    strIDs += '</tr>'
    }  // main FOR
  strIDs += '</table>';
  return strIDs;
}
// author - see www.drillpine.biz/actinicstuff
// END Collapsing Menu Replacement for YahooSections
