	var Event = YAHOO.util.Event;
	var Dom = YAHOO.util.Dom;
	var templateParentPage = false;
	var applyTo = 'menu';
	
Event.onAvailable(applyTo, function() {
		menuItems = Dom.getElementsBy(function() { return true; },'a',applyTo);
		if (!templateParentPage) {
			setActiveMenu(menuItems, extractPageName(document.URL));
		}
		else {
			setActiveMenu(menuItems, templateParentPage);
		}
		sublists = Dom.getElementsBy(function() { return true; },'ul',applyTo);
		setActiveList(sublists);
		
});

	function extractPageName(uStr) {
		var fSlash = uStr.indexOf('/',uStr.indexOf('//')+2);
		var currentPage = uStr.substr(fSlash);
		if (currentPage.indexOf('#') > -1) {
			currentPage = currentPage.substr(0,currentPage.indexOf('#'));
		}
		if (currentPage.indexOf('?') > -1) {
			currentPage = currentPage.substr(0,currentPage.indexOf('?'));
		}
		if (currentPage.indexOf('default.') > -1) {
			currentPage = currentPage.replace('default.htm','');
			currentPage = currentPage.replace('default.html','');
			currentPage = currentPage.replace('default.asp','');
			currentPage = currentPage.replace('default.php','');
		}
		if (currentPage.indexOf('index.') > -1) {
			currentPage = currentPage.replace('index.htm','');
			currentPage = currentPage.replace('index.html','');
			currentPage = currentPage.replace('index.asp','');
			currentPage = currentPage.replace('index.php','');
		}

		return currentPage;
	}
	

	function setActiveList(arr) {
		var topNode = Dom.get(applyTo);
		for(var i=0; i < arr.length; i++) {
			if (arr[i].id != applyTo) {
				if(!Dom.hasClass(arr[i],'active')) {
					Dom.addClass(arr[i],'inactive');	
				}
				Dom.addClass(Dom.getAncestorByTagName(arr[i],'LI'),'more');
			}
		}
	}
	// search through all the links in array, if one points to
	// the same file, apply the class .active to it and to all its parents
	// until it reaches the top node

	function setActiveMenu(arr, crtPage) {
		var topNode = Dom.get(applyTo);
		
	  for(var i=0; i < arr.length; i++) {
			
		  if(extractPageName(arr[i].href) == crtPage) {
			Dom.addClass(arr[i],'active');
			currNode = arr[i];
			while(currNode != topNode) {
				Dom.addClass(currNode,'active');
				if (currNode.tagName=='LI') {
					Dom.addClass(Dom.getFirstChild(currNode),'active');
				}
				currNode = currNode.parentNode;
			}
		  }
	  }
	}
	