﻿// Script by Jeroen Hendrickx for cvwarehouse.com
// Tested on: Internet Explorer 5.5/6/7, Safari 2/3, Firefox 2, Shiira 2, 
//			  Camino 1.5, Netscape Navigator 9, Opera 9, Konqueror
// Last revision: 19/08/2007

doc.scripts['openCloseMenu'] = openCloseMenuInit;

loadFunc = function () { doc.runScripts(); };

window.onload = loadFunc;

function openCloseMenuInit()
{
	 var list = doc.css("level0")
	 for (var i = 0; i < list.length; i++)
	 {
		 list[i].className += " clickable";
		 sibling = findNextElement(list[i].nextSibling)
		 if (sibling && sibling.className.match("hideMe"))
				list[i].className += sibling.className.match ("hidden") ? " closed" : " open";
		 doc.setFunction(list[i], "click", showList);
	 }
}

function findNextElement(element)
{
	try
	{
		if(element.className != undefined)
			return element;
		return findNextElement(element.nextSibling);
	}
	catch(text)
	{
		return findNextElement(element.nextSibling);
	}
}

function classNameMatchAndReplace(element, matchThis, replacement)
{
	if(element.className.match(matchThis))
	{
		if(replacement || replacement == "")
			element.className = element.className.replace(matchThis, replacement);
		return true;
	}
}

function showList(e)
{
    var clickTitle = doc.target(e);
    while(!clickTitle.className.match("level0"))
        clickTitle = clickTitle.parentNode;
        
	if (!classNameMatchAndReplace(clickTitle, "open", "closed"))
		if (!classNameMatchAndReplace(clickTitle, "closed", "open"))
			clickTitle.className += " open";

    var listElement = clickTitle;
	while((listElement = listElement.nextSibling) != null)
	{
		if(listElement.nodeName != "#text")
		{
			if(listElement.className.match ("level0"))
				break;
			nowYouSeeMe(listElement);
		}
	}
}

function nowYouSeeMe(listItem)
{
	if(listItem.className.match("hideMe"))
	{
		if(!classNameMatchAndReplace(listItem, "hidden", ""))
			listItem.className += " hidden";
	}
}
