﻿// Copyright(c) 2009-2010 BABA Minoru

function AttachEventToMenu()
{
	var categoryLink = document.getElementById( 'category-link' );
	var lists = categoryLink.getElementsByTagName( 'li' );
	
	for( var i = 0; i < lists.length; i++ )
	{
		if( lists[ i ].className == 'menu' )
		{
			var menuBoxes = lists[ i ].getElementsByTagName( 'div' )
			if( menuBoxes && menuBoxes.length != 0 )
			{
				lists[ i ].onmouseover = function()
				{
					var menuBoxes = this.getElementsByTagName( 'div' )
					menuBoxes[ 0 ].style.visibility = 'visible';	
				}
	
				lists[ i ].onmouseout = function()
				{
					var menuBoxes = this.getElementsByTagName( 'div' )
					menuBoxes[ 0 ].style.visibility = 'hidden';	
				}
	
	
				menuBoxes[ 0 ].onmouseout = function()
				{
					this.style.visibility = 'hidden';
				}
			}
		}
	}
}

function CreateTableOfContents()
{
	var indexElement = document.getElementById( 'table-contents' );
	if( indexElement )
	{
		var headerElements = document.getElementsByTagName( 'h2' );
	
		if( 0 < headerElements.length )
		{
			var listElement = document.createElement( 'ul' );
	
			for( var i = 0; i < headerElements.length; i++ )
			{
				var header = headerElements[ i ];
	
				var anchorName;
				var anchorText;
	
				if( header.id )
				{
					anchorName = header.id;
					anchorText = header.innerHTML;
				}
				else if( header.firstChild && header.firstChild.nodeName == 'A' )
				{
					anchorName = header.firstChild.name;
					anchorText = header.firstChild.innerHTML;
				}			
				else
				{
					anchorName = 'page-index' + i;
					anchorText = header.innerHTML;
	
					header.id = anchorName;
				}
	
				var listItemLink = document.createElement( 'a' );
				listItemLink.href = '#' + anchorName;
				listItemLink.innerHTML = anchorText;
	
				var listItem = document.createElement( 'li' );
				listItem.appendChild( listItemLink );
	
				listElement.appendChild( listItem );
			}
	
			indexElement.appendChild( listElement );
		}
	}
}

function HighlightCurrentAnchor()
{
	var currentPath = document.location.pathname;
	
	var matchIndex = currentPath.search( /index\.(htm|html|php)/ );
	if( matchIndex != -1 )
	{
		currentPath = currentPath.substring( 0, matchIndex );
	}
	
	
	var categoryLinkElement = document.getElementById( 'category-link' );
	if( categoryLinkElement )
	{
		var categoryLinks = categoryLinkElement.getElementsByTagName( 'a' );
	
		for( var i = 0; i < categoryLinks.length; i++ )
		{
			if( currentPath.indexOf( categoryLinks[ i ].pathname ) != -1 )
			{
				categoryLinks[ i ].style.backgroundColor = '#808080';
				categoryLinks[ i ].style.color = 'white';
			}
		}
	}
	
	var subcategoryLinkElement = document.getElementById( 'subcategory-link' );
	if( subcategoryLinkElement )
	{
		var subcategoryLinks = subcategoryLinkElement.getElementsByTagName( 'a' );
	
		for( var i = 0; i < subcategoryLinks.length; i++ )
		{
			if( currentPath.indexOf( subcategoryLinks[ i ].pathname ) != -1 )
			{
				subcategoryLinks[ i ].style.backgroundColor = '#a0a0a0';
				subcategoryLinks[ i ].style.color = 'white';
			}
		}
	}
	
	
	var contentsLinkElement = document.getElementById( 'contents-link' );
	if( contentsLinkElement )
	{
		var contentsLinks = contentsLinkElement.getElementsByTagName( 'a' );
	
		for( var i = 0; i < contentsLinks.length; i++ )
		{
			var pathname = contentsLinks[ i ].pathname;
			if( pathname.charAt( 0 ) != '/' )
			{
				pathname = '/' + pathname;
			}
	
			if( currentPath == pathname )
			{
				contentsLinks[ i ].removeAttribute( 'href' );
				contentsLinks[ i ].style.backgroundColor = '#e0e0e0';
			}
		}
	}
}

AttachEventToMenu();
CreateTableOfContents();
HighlightCurrentAnchor();

