var menusections = [];

function addSectionToMenu (id,
                           title,
                           icon)
{
    
    menusections[menusections.length] =
    {
        
        id: id,
        title: title,
        icon: icon
        
    };
    
}

function generateMenuSections ()
{
  
  // Find the page that is being displayed.
  var url = window.document.location;
  
  var nodes = window.document.getElementsByTagName ('a');
  
  var node = null;
  
  for (var i = 0; i < nodes.length; i++)
  {
  
    if (nodes[i].className == 'menu-item')
    {

        if (nodes[i].href == url)
        {
                          
            node = nodes[i];
                
            break;
            
        }
    
    }
    
  }
  
  if (!node)
  {
    
     // Get the blank node.
     node = window.document.getElementById ('menu-item-blank');
     
     node.innerHTML = '<a id="menu-item-blank-a" href="#' + menusections[0].id + '"><img alt="*" src="' + menusections[0].icon + '" />' + menusections[0].title + '</a>';
     
     menusections.shift ();
  
     node = window.document.getElementById ('menu-item-blank-a');
  
  }
    
  var s = '';
  
  for (var i = 0; i < menusections.length; i++)
  {

     s = s + '<div class="menu"><a class="menu-item" href="#' + menusections[i].id + '"><img alt="*" src="' + menusections[i].icon + '" />' + menusections[i].title + '</a></div>';

  }

  node.parentNode.className = node.parentNode.className + ' menu-highlighted';
  node.parentNode.innerHTML = node.parentNode.innerHTML + s;
  
}

function toggleView (id,
                     imgId)
{

    var c = readCookie ('polliwog-menu');

    var el = document.getElementById (id);

      if ((el.style.visibility == 'visible')
	  ||
	  (el.style.visibility == '')
	 )
      {

        el.style.display = 'none';
        el.style.visibility = 'hidden';

	if (c)
	{
    
	    // Split on $
	    var parts = c.split ('$');
    
	    c = "";
    
	    for (var i = 0; i < parts.length; i++)
	    {
    
		if (parts[i] != id)
		{
    
		    if (c.length > 0)
		    {
    
			c = c + '$';
    
		    }
    
		    c = c + parts[i];
    
		}
    
	    }
	    
	}

    } else {

	el.style.display = 'table-row';
        el.style.visibility = 'visible';

	if (c)
	{
    
	    if (c.indexOf (id) == -1)
	    {
    
		c = c + '$' + id;
    
	    }
    
	} else {
    
	    c = id;
    
	}   

    }

    // Set the cookie value.
    createCookie ('polliwog-menu', c, 0.04);
	
    var img = document.getElementById (imgId);
    
    if (img)
    {
        
        if (img.src.indexOf ('plus.gif') != -1)
        {
            
            img.src = img.src.replace (/plus\.gif$/,
                                       'minus.gif');
            
        } else {

            img.src = img.src.replace (/minus\.gif$/,
                                       'plus.gif');
            
        }
        
    }

}

function initMenuBar ()
{

    var c = readCookie ('polliwog-menu');

    if (c)
    {

	// Split on $
	var parts = c.split ('$');

	for (var i = 0; i < parts.length; i++)
	{

	    toggleView (parts[i],
			parts[i] + '-img');

	}

    }

}

function setHidden (id)
{
    
    var el = document.getElementById (id);
    
    el.style.display = 'none';
    el.style.visibility = 'hidden';
    
}

function closeAll (prefix, 
                   exclude)
{

    var els = window.document.getElementsByTagName ('*');

    for (var i = 0; i < els.length; i++)
    {

	var el = els[i];

	//window.alert ('here: ' + i.id);

	if ((el.id != this.undefined)
	    &&
	    (el.id.indexOf (prefix) != -1)
	    &&
	    (el.id != exclude)
	    &&
	    (el.style != this.undefined)
	   )
	{

	    el.style.display = 'none';

	}

    }

}

function collapseNavigation ()
{

   polliwog.page.layout.getRegion ('west').collapse ();

}

function getFile (path)
{

  var request = false;
 
  try 
  {

     request = new XMLHttpRequest();
 
  } catch (trymicrosoft) {

     try 
     {
    
        request = new ActiveXObject("Msxml2.XMLHTTP");

     } catch (othermicrosoft) {

        try 
        {

           request = new ActiveXObject("Microsoft.XMLHTTP");

        } catch (failed) {

           request = false;

        }
  
     }

   }

  if (!request)
  {

    return false;

  }

  request.open ("GET",
                path,
                false);

  request.send (null);

  return request.responseText;

}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}
