function makeMenu() {
	var menuParent = d.getElementById('menu_cntr');
	var menu = d.getElementById('listMenuRoot');
	if(! menu) return;
	menu.innerHTML = '';
	menu.className = 'menulist';
	var subsubMenus = new Array();
	for (var i = 0; i < menuItems.length; i++) {
		if(!((d.getElementsByTagName('body')[0].id == 'home') && (menuItems[i].id == 'navHome'))) { 
			menuItems[i].li = d.createElement('li');
			// the following if statement classes the top-level li tags to align correctly from the left
	//		if(i == 0) {
	//			//menuItems[i].li.className = 'left';
	//		}
			menuItems[i].a = d.createElement('a');
			if(menuItems[i].idHref) {
				menuItems[i].a.id = menuItems[i].idHref; // id is on the a tag!
				menuItems[i].li.id = menuItems[i].mHref.replace(/\//, '') + '_li';
			}
			if(menuItems[i].mHref == '#') {
				menuItems[i].a.href = '#';
				menuItems[i].a.className = 'standard';
			} else if(menuItems[i].mHref.match(/^([a-zA-Z0-9_\.\'-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/)) {
				menuItems[i].a.href = 'mailto:' + menuItems[i].mHref;
				menuItems[i].a.className = 'standard';
			} else {
				menuItems[i].a.href = rootPath + menuItems[i].mHref;
				menuItems[i].a.className = 'standard';
			}
			//if(menuItems[i].mLink.match(/(\.gif$)|(\.jpg$)/)) {
	//			var linkImgExt = menuItems[i].mLink.match(/(\.gif$)|(\.jpg$)/);
	//			var mLinkImg = d.createElement('img');
	//			if(menuItems[i].altTxt) {
	//				mLinkImg.alt = menuItems[i].altTxt;
	//			}
	//			mLinkImg.src = rootPath + 'shw_menu/img/' + menuItems[i].mLink;
	//			mLinkImg.onmouseover = function() {
	//				var menuItemsOver = this.src.replace(/(\.gif$)|(\.jpg$)/,'_f2');
	//				this.src = menuItemsOver + linkImgExt[0];
	//			}
	//			mLinkImg.onmouseout = function() {
	//				var menuItemsOut = this.src.replace(/(_f2\.gif$)|(_f2\.jpg$)/,'');
	//				this.src = menuItemsOut + linkImgExt[0];
	//			}
	//			
	//			menuItems[i].a.appendChild(mLinkImg);
	//			
	//		} else {
	//			menuItems[i].a.innerHTML = menuItems[i].mLink.replace(/\s/g, '&nbsp;');
	//		}
			menuItems[i].a.innerHTML = menuItems[i].mLink.replace(/\s/g, '&nbsp;');
			menuItems[i].li.appendChild(menuItems[i].a);
			if (menuItems[i].subItems.length > 0) { //create TEXT ONLY submenu... 
				menuItems[i].subMenu = d.createElement('ul');
				for (var n = 0; n < menuItems[i].subItems.length; n++) {
					var sub_li = d.createElement('li');
					var sub_a = d.createElement('a');
					sub_a.className = 'standard';
					if (typeof menuItems[i].subItems[n] == 'string') {
						if(menuItems[i].subHrefs[n] == '#') {
							sub_a.href = '#';
						} else {
							sub_a.href = rootPath + menuItems[i].subHrefs[n];
						}
						sub_a.innerHTML = menuItems[i].subItems[n].replace(/\s/g, '&nbsp;');
					} 
					sub_li.appendChild(sub_a);
					menuItems[i].subMenu.appendChild(sub_li);
				}
				menuItems[i].li.appendChild(menuItems[i].subMenu);
			}
			menu.appendChild(menuItems[i].li);
		}
	}
	menuParent.appendChild(menu);
//	menuParent.className = '';
	//--from fsMenu
	
//	//for the link fading, 'standard' class is for submenu items, special is for top level items, highlighted is who knows....
//	listMenu.setLinkFading({
//		'standard': { dim: [0,0,0], lit: [0,0,0] },//submenu items
//		'highlighted': { dim: [0,0,0], lit: [0,0,0] },// ? maybe for use with highlight the current page module ? - check fsmenu_extras
//		'special': { dim: [0,0,0], lit: [0,0,0] },//toplevel menu with href=# (items that only are there to have submenu items)
//		'special highlighted': { dim: [0,0,0], lit: [0,0,0] }//toplevel menu when submenu is showing
//	}, 10);
}









// For each menu you create, you must create a matching "FSMenu" JavaScript object to represent
// it and manage its behaviour. You don't have to edit this script at all if you don't want to;
// these comments are just here for completeness. Also, feel free to paste this script into the
// external .JS file to make including it in your pages easier!

// Here's a menu object to control the above list of menu data:
var listMenu = new FSMenu('listMenu', true, 'display', 'block', 'none');

// The parameters of the FSMenu object are:
//  1) Its own name in quotes.
//  2) Whether this is a nested list menu or not (in this case, true means yes).
//  3) The CSS property name to change when menus are shown and hidden.
//  4) The visible value of that CSS property.
//  5) The hidden value of that CSS property.
//
// Next, here's some optional settings for delays and highlighting:
//  * showDelay is the time (in milliseconds) to display a new child menu.
//    Remember that 1000 milliseconds = 1 second.
//  * switchDelay is the time to switch from one child menu to another child menu.
//    Set this higher and point at 2 neighbouring items to see what it does.
//  * hideDelay is the time it takes for a menu to hide after mouseout.
//    Set this to a negative number to disable hiding entirely.
//  * cssLitClass is the CSS classname applied to parent items of active menus.
//  * showOnClick will, suprisingly, set the menus to show on click. Pick one of 4 values:
//     0 = All levels show on mouseover.
//     1 = Menu activates on click of first level, then shows on mouseover.
//     2 = All levels activate on click, then shows on mouseover.
//     3 = All levels show on click only (no mouseover at all).
//  * hideOnClick hides all visible menus when one is clicked (defaults to true).
//  * animInSpeed and animOutSpeed set the animation speed. Set to a number
//    between 0 and 1 where higher = faster. Setting both to 1 disables animation.

listMenu.showDelay = 0;
listMenu.switchDelay = 125;
listMenu.hideDelay = 500;
listMenu.cssLitClass = 'highlighted';
listMenu.showOnClick = 0;
listMenu.hideOnClick = true;
listMenu.animInSpeed = 0.2;
listMenu.animOutSpeed = 0.2;


// Now the fun part... animation! This script supports animation plugins you
// can add to each menu object you create. I have provided 3 to get you started.
// To enable animation, add one or more functions to the menuObject.animations
// array; available animations are:
//  * FSMenu.animSwipeDown is a "swipe" animation that sweeps the menu down.
//  * FSMenu.animFade is an alpha fading animation using tranparency.
//  * FSMenu.animClipDown is a "blind" animation similar to 'Swipe'.
// They are listed inside the "fsmenu.js" file for you to modify and extend :).

// I'm applying two at once to listMenu. Delete this to disable!
listMenu.animations[listMenu.animations.length] = FSMenu.animFade;
listMenu.animations[listMenu.animations.length] = FSMenu.animSwipeDown;
//listMenu.animations[listMenu.animations.length] = FSMenu.animClipDown;


// Finally, on page load you have to activate the menu by calling its 'activateMenu()' method.
// I've provided an "addEvent" method that lets you easily run page events across browsers.
// You pass the activateMenu() function two parameters:
//  (1) The ID of the outermost <ul> list tag containing your menu data.
//  (2) A node containing your submenu popout arrow indicator.
// If none of that made sense, just cut and paste this next bit for each menu you create.

var arrow = null;
//if (document.createElement && document.documentElement)
//{
// arrow = document.createElement('span');
// arrow.appendChild(document.createTextNode('>'));
// // Feel free to replace the above two lines with these for a small arrow image...
// //arrow = document.createElement('img');
// //arrow.src = 'arrow.gif';
// //arrow.style.borderWidth = '0';
// arrow.className = 'subind';
//}
addEvent(window, 'load', new Function('listMenu.activateMenu("listMenuRoot", arrow)'));


// You may wish to leave your menu as a visible list initially, then apply its style
// dynamically on activation for better accessibility. Screenreaders and older browsers will
// then see all your menu data, but there will be a 'flicker' of the raw list before the
// page has completely loaded. If you want to do this, remove the CLASS="..." attribute from
// the above outermost UL tag, and uncomment this line:
//addEvent(window, 'load', new Function('getRef("listMenuRoot").className="menulist"'));







// LINK FADING: Fades between over/out colours for links in the menu.
// To activate:
//  1) Paste the FSMenu.prototype function into the script anywhere.
//     You might want to put them into fsmenu.js, or around your menu data.
//  2) Paste the "Activation" section beneath your menu data, and ensure that
//     you follow the instructions within it.
		
//		FSMenu.prototype.setLinkFading = function(linkClasses, linkSpeed) { with (this)
//		{
//		 // Store the link classes in the menu object.
//		 this.linkClasses = linkClasses || {};
//		 this.linkSpeed = linkSpeed || 100;
//		 
//		 // Find the root menu.
//		 var mRoot = null;
//		 for (var m in menus) if (menus[m].isRoot) mRoot = menus[m];
//		 if (!mRoot) return;
//		
//		 // Find all link tags and add ID/timers/counters/mouse handlers...
//		 var links = mRoot.lyr.ref.getElementsByTagName('a'), i = links.length;
//		 while (i--)
//		 {
//		  if (!links[i].id) links[i].id = myName + '-linkfade-' + i;
//		  links[i].__lf_timer = 0;
//		  links[i].__lf_count = 0;
//		  addEvent(links[i], 'mouseover', new Function(myName + '.linkFade("' + links[i].id + '", 1)'));
//		  addEvent(links[i], 'mouseout', new Function(myName + '.linkFade("' + links[i].id + '", 0)'));
//		 }
//		}};
//		
//		FSMenu.prototype.linkFade = function(link, doShow) { with (this)
//		{
//		 // Repeatedly called to animate a link colour in and out.
//		
//		 link = document.getElementById(link);
//		 clearTimeout(link.__lf_timer);
//		
//		// If we're hiding, delay until the link is no longer highlighted.
//		 var fadeOK = doShow || !link.className || !cssLitClass ||
//		  (link.className.indexOf(cssLitClass) == -1);
//		
//		 if (fadeOK)
//		 {
//		  var linkClass = linkClasses[link.className || 'standard'] || linkClasses.standard;
//		  var dim = linkClass.dim, lit = linkClass.lit;
//		
//		  // Increment the fading counter in the proper direction and speed.
//		  link.__lf_count = Math.max(0, Math.min(link.__lf_count+(2*doShow-1)*linkSpeed, 100));
//		 
//		  // Since Konqueror as of v3.1 doesn't support Number.toString(radix), we need a hack.
//		  // What the heck were they thinking/smoking when they omitted that? :P
//		  var col = '#', nc, hexD = '0123456789ABCDEF';
//		  // Loop through dim/lit arrays, to calculate 3 new hex pairs (0xRR, 0xGG and 0xBB).
//		  for (var i=0; i<3; i++)
//		  {
//		   // Make a new hex pair based on weighted averages of the out/over array indices.
//		   nc = parseInt(dim[i] + (lit[i]-dim[i])*(link.__lf_count/100));
//		   col += hexD.charAt(Math.floor(nc/16)).toString() + hexD.charAt(nc%16);
//		  }
//		  // Assign to the background of the link.
//		  link.style.backgroundColor = col;
//		 }
//		
//		 // Repeat in 50ms if we're delaying the fade or the fade isn't done yet.
//		 if (!fadeOK || (link.__lf_count % 100 > 0)) link.__lf_timer = setTimeout(this.myName +
//		  '.linkFade("' + link.id + '",' + doShow + ')', 50);
//		 }
//		};
//
//
//		// Activation: This must be pasted beneath your activateMenu() call.
//		addEvent(window, 'load', function() {
//		 // You must call menuObjectName.setLinkFading for each of your menu objects.
//		 // Pass an associative array {} that contains a list of classnames.
//		 // You must include a 'standard' class which applies to menu items that have no
//		 // other classname set like <a class="special"> in the HTML.
//		 // You can also optionally specify a "highlighted" class that will apply
//		 // to lit items (or whatever your menu cssLitClass is).
//		 // You can also style other classes individually -- here I am applying
//		 // different styles to <a class="special"> as an example.
//		 // Finally, pass a "speed" parameter to setLinkFading.
//		 
//		 // Each class is formatted like so with colour values 0-255:
//		 // 'classname': { dim: [RR, GG, BB], lit: [RR, GG, BB] }
//		
//		 listMenu.setLinkFading({
//		  'standard': { dim: [240,240,248], lit: [64,80,192] },
//		  'highlighted': { dim: [240,240,248], lit: [64,80,192] },
//		  'special': { dim: [240,240,248], lit: [200,0,0] },
//		  'special highlighted': { dim: [240,240,248], lit: [200,200,0] },
//		  'current-page': { dim: [255,0,0], lit: [255,0,0] },
//		  'current-page highlighted': { dim: [255,0,0], lit: [255,0,0] },
//		  'current-page highlighted highlighted': { dim: [255,0,0], lit: [255,0,0] },
//		  'current-page highlighted highlighted highlighted': { dim: [255,0,0], lit: [255,0,0] },
//		  'current-page highlighted highlighted highlighted highlighted': { dim: [255,0,0], lit: [255,0,0] }
//		 }, 10);
//
//});

//		  'current-page highlighted': { dim: [255,0,0], lit: [255,0,0] }





// CURRENT PAGE: Paste this anywhere. Include the ID of your menu <UL>, and call
// it once onload for each menu object you create.
// Note: You will probably have to edit this to make it work. The key line is
// the one that tests location.pathname (which is like '/folder/file.html'
// without any '?querystring' or '#bookmark'). I am trying to find the longest
// matching item and highlight that and all its parent links.
// Note 2: Add a rule like this:
//   .current-page { font-weight: bold }
// or similar to your stylesheet of course :).

		function activePageHighlight (elm)
		{
			//alert(location.pathname.match(/(meyersacupuncture.com|meyersacupuncture.com\/|meyersacupuncture.com\/index.html)$/));
			if (typeof elm == 'string') elm = document.getElementById(elm);
			if (!elm) return;
			var links = elm.getElementsByTagName('a'), chosen = null;
		
			for (var i = 0; i < links.length; i++) {
				if (links.item(i).href.indexOf(location.pathname.match(/(?:\/.*\/)/)) > -1) {
					if (!chosen || links[i].href.length > chosen.href.length) {
						chosen = links[i];
					}
				}
			}
		
			while (chosen && chosen.className != 'menulist')	{
				if (chosen.nodeName.toLowerCase() == 'li')
			 	{
			 	 	chosen.getElementsByTagName('a').item(0).className = 'current-page';
			 	}
		  	 chosen = chosen.parentNode;
		 	}
		};
		// Activation: Include the ID for your menu in here.
		addEvent(window, 'load', new Function('activePageHighlight("listMenuRoot")'));
		




// To create more menus, duplicate this section and make sure you rename your
// menu object to something different; also, activate another <ul> list with a
// different ID, of course :). You can hae as many menus as you want on a page.
//---------------------------------------------------------------------------------------------------------------------
