function initMenu() {
$("ul.menu ul ul").hide(); //on load hide sub menus
$('ul.menu ul').hide(); // hide all list items except top level

// ########### SECOND LEVEL CODE ############# ///* */
$('#menu li ul li a').click(
function() {
var checkElement = $(this).next(); //element after this
var parent2 = this.parentNode.parentNode.parentNode.parentNode.id; // root node 3 levels up	
if((checkElement.is('ul li ul:visible'))) { // 2nd level link - then element after, is it UL is it visible?
//alert(parent2 + " 2nd level") 
				$('#' + parent2 + ' ul li ul:visible').slideUp('normal');
				// $('#menu ul li ul:visible').slideUp('normal');
				  $('#' + parent2 + ' ul li a').removeClass("ul-isopen");
				//$('#menu ul li a').removeClass("ul-isopen"); // then remove class from all others
				 $(this).addClass("ul-isclosed");
				return false;
			}
		
if((checkElement.is('ul li ul:hidden'))) { // 2nd level link - then element after, is it UL is it visible?
//alert(parent2 + " 2nd level") 
				 $('#' + parent2 + ' ul li ul:visible').slideUp('normal');
				 //$('#menu ul li ul:visible').slideUp('normal'); // - slide up any sub UL that is visible 
				 $('#' + parent2 + ' ul li a').removeClass("ul-isopen");
				 //$('#menu ul li a').removeClass("ul-isopen" );	 			 
				
				checkElement.slideDown('normal'); // // - slide down any sub UL that is hidden directly below
				 $('#' + parent2 + ' ul li ul:visible').prev("a").addClass("ul-isclosed");
				 //$("#menu ul li ul:visible").prev("a").addClass("ul-isclosed");	//BUG! this restores initialised second level class
				 $(this).addClass("ul-isopen");
				return false;
			}
 });
// ########### END SECOND LEVEL CODE ############# //
// ########### TOP LEVEL CODE ############# ///* */

$('#menu li a').click(
function() {
var checkElement = $(this).next();
var parent = this.parentNode.parentNode.id;

if((checkElement.is('ul:visible'))) {
//alert(parent + " 1st level") //!! error occurs if you leave ul ul with no id !!
					$('#' + parent + ' ul:visible').slideUp('normal');
					$('#' + parent + ' li a').removeClass("ul-isopen");
				 	$(this).addClass("ul-isclosed");
				return false;
			}
if((checkElement.is('ul:hidden'))) {
//alert ("1st level hidden removed class");
					 $('#' + parent + ' ul:visible').slideUp('normal');
					 $('#' + parent + ' li a').removeClass("ul-isopen");

				checkElement.slideDown('normal');
				    $("ul:visible").prev("a").addClass("ul-isclosed");	//BUG! this restores initialised top level class
				    $(this).addClass("ul-isopen");

				return false;
			}
 });	
// ########### END TOP LEVEL CODE ############# //



}
$(function() {initMenu();}); 

