//
// siblinglistsupport.js - display sibling list support
// V1.02 URL matching version
//
var sibprefix  = "";
var sibbetween = " - ";
var sibsuffix  = ".";
var shownames = true; 
//
function getlevel(tree, lookfor){
 for ( var i=1; i <= tree.length; i++ )
   {
   var thisurl = unescape(tree[i].sURL);
   thisurl = thisurl.replace(/.*SECTIONID=(.*)\..*$/i, "$1");   // strip prefix and .html (or .whatever)
   if ( thisurl == lookfor ) return tree;
   if ( tree[i].pChild ) 
     {
     var level = getlevel(tree[i].pChild, lookfor);		// warning! recursive code.
     if ( level ) return level;
     }
   }
 return false;
}

function showsiblings(lookfor, showcount){
// Show concise links to all sibling level sections
  if ( lookfor.indexOf('PreviewHTML') == -1)		// must be a live page
    {
    // we'll search for the following patterns to deal with normal, logged-in and search highlights
    var pattern = new Array('?PRODUCTPAGE=', '&PRODUCTPAGE=', '&PN=', '/acatalog/', '/shop/')
    for ( var i = 0; i < pattern.length; i++)
      {
      var start = lookfor.indexOf(pattern[i]);
      if ( start > -1 )
        {
        lookfor = lookfor.substr(start + pattern[i].length);
        break;
        }
      }
    lookfor = unescape(lookfor);			// now strip encoding
    lookfor = lookfor.replace(/\..*/i, "");		// strip .html (or .whatever)
    level = getlevel(section_tree, lookfor);		// look for the current level
    showcount = isNaN(showcount) ? 0 : showcount - 0;	// make limit numeric
    if ( level && (level.length >= showcount) )		// we've a match and it's above visible range
      {
      document.write(sibprefix);
      for ( var i = 1; i <= level.length; i++) 
        {
        var thisurl = unescape(level[i].sURL);		// the current URL
        var thisitem = shownames ? level[i].sName : i;	// show either sequence or page name
        thisurl = thisurl.replace(/.*SECTIONID=(.*)\..*$/i, "$1"); // strip prefix and the .html or .whatever
        if ( thisurl != lookfor ) 			// not current page so show link
          {
          document.write('<a href="' + level[i].sURL + '">' + thisitem + '</a>');
          }
        else						// current page, so no link
          {
          document.write('<b>[' + thisitem + ']</b>');
          }
        if ( i < level.length ) document.write(sibbetween);
        }
      document.write(sibsuffix);
      }
    }
  else	// some demo info for the Preview only
    {
    thisitem = shownames ? 'Page' : '';
    document.write(sibprefix + thisitem + '1' + sibbetween 
                   + '<b>[' + thisitem + '2]</b>' 
                   + sibbetween + thisitem  + '3' + sibsuffix);
    }
}
//
// siblinglistsupport.js - display sibling list support
//
