Index: trunk/wb/framework/class.frontend.php
===================================================================
--- trunk/wb/framework/class.frontend.php	(revision 219)
+++ trunk/wb/framework/class.frontend.php	(revision 220)
@@ -305,41 +305,39 @@
 	   if (!isset($wb->menu_current_class)) {
 	   	$wb->menu_current_class = ' class="menu_current"';
 	   }
-       if (!isset($wb->menu_parent)) {
-     	$wb->menu_parent = 0;
+	   if (!isset($wb->menu_parent)) {
+	   	$wb->menu_parent = 0;
 	   }
 	   $wb->show_menu();
-	   if ($start_level>0) {
-	       $key_array=array_keys($wb->page_trail);
-	       $real_start=$key_array[$start_level-1];
-	       if (isset($real_start))
-	       {
-	       	$wb->menu_parent=$real_start;
-	        $wb->show_menu();
-	       }
-	       return;
-	   }
-
 	}
 	
 	function show_menu() {
 	   global $database;
-	   global $wb;
-	   if ($wb->menu_recurse==0)
+	   if ($this->menu_start_level>0) {
+	       $key_array=array_keys($this->page_trail);
+	       $real_start=$key_array[$this->menu_start_level-1];
+	       if (isset($real_start)) {
+	       	$this->menu_parent=$real_start;
+		$this->menu_start_level=0;
+	       } else {
+	       	 return;
+	       }
+	   }
+	   if ($this->menu_recurse==0)
 	       return;
 	   // Check if we should add menu number check to query
-	   if($menu_parent == 0) {
-	       $menu_number = "menu = '$wb->menu_number'";
+	   if($this->menu_parent == 0) {
+	       $menu_number = "menu = '$this->menu_number'";
 	   } else {
 	      $menu_number = '1';
 	   }
 	   // Query pages
 	   $query_menu = $database->query("SELECT page_id,menu_title,page_title,link,target,level,visibility FROM ".
-	TABLE_PREFIX."pages WHERE parent = '$wb->menu_parent' AND $menu_number AND $wb->extra_where_sql ORDER BY position ASC");
+	TABLE_PREFIX."pages WHERE parent = '$this->menu_parent' AND $menu_number AND $this->extra_where_sql ORDER BY position ASC");
 	   // Check if there are any pages to show
 	   if($query_menu->numRows() > 0) {
 	   	  // Print menu header
-	   	  echo "\n".$wb->menu_header;
+	   	  echo "\n".$this->menu_header;
 	      // Loop through pages
 	      while($page = $query_menu->fetchRow()) {
 	      	 // Check if this page should be shown
@@ -347,30 +345,30 @@
 	         $vars = array('[class]','[a]', '[/a]', '[menu_title]', '[page_title]');
 	         // Work-out class
 	         if($page['page_id'] == PAGE_ID) {
-	            $class = $wb->menu_current_class;
+	            $class = $this->menu_current_class;
 	         } else {
-	            $class = $wb->menu_default_class;
+	            $class = $this->menu_default_class;
 	         }
 	         // Check if link is same as first page link, and if so change to WB URL
-	         if($page['link'] == $wb->default_link AND !INTRO_PAGE) {
+	         if($page['link'] == $this->default_link AND !INTRO_PAGE) {
 	            $link = WB_URL;
 	         } else {
-	            $link = $wb->page_link($page['link']);
+	            $link = $this->page_link($page['link']);
 	         }
 	         // Create values
 	         $values = array($class,'<a href="'.$link.'" target="'.$page['target'].'" '.$class.'>', '</a>', ($page['menu_title']), ($page['page_title']));
 	         // Replace vars with value and print
-	         echo "\n".str_replace($vars, $values, $wb->menu_item_template);
+	         echo "\n".str_replace($vars, $values, $this->menu_item_template);
 	         // Generate sub-menu
-	         if($wb->menu_collapse==false OR ($wb->menu_collapse==true AND isset($wb->page_trail[$page['page_id']]))) {
-	            $wb->menu_recurse--;
-	            $wb->menu_parent=$page['page_id'];
-	            $wb->show_menu();
+	         if($this->menu_collapse==false OR ($this->menu_collapse==true AND isset($this->page_trail[$page['page_id']]))) {
+	            $this->menu_recurse--;
+	            $this->menu_parent=$page['page_id'];
+	            $this->show_menu();
 	         }
-	         echo "\n".$wb->menu_item_footer;
+	         echo "\n".$this->menu_item_footer;
 	      }
 	      // Print menu footer
-	      echo "\n".$wb->menu_footer;
+	      echo "\n".$this->menu_footer;
 	   }
 	}
 
Index: trunk/wb/framework/frontend.functions.php
===================================================================
--- trunk/wb/framework/frontend.functions.php	(revision 219)
+++ trunk/wb/framework/frontend.functions.php	(revision 220)
@@ -67,10 +67,11 @@
 
 // Old menu call invokes new menu function
 if (!function_exists('page_menu')) {
-	function page_menu($parent = 0, $menu_number = 1, $item_template = '<li><span[class]>[a][menu_title][/a]</span>', $menu_header = '<ul>', $menu_footer = '</ul>', $default_class = ' class="menu_default"', $current_class = ' class="menu_current"', $recurse = LEVEL) {
+	function page_menu($parent = 0, $menu_number = 1, $item_template = '<li[class]>[a][menu_title][/a]</li>', $menu_header = '<ul>', $menu_footer = '</ul>', $default_class = ' class="menu_default"', $current_class = ' class="menu_current"', $recurse = LEVEL) {
 		global $wb;
 		$wb->menu_number=$menu_number;
 		$wb->menu_item_template=$item_template;
+		$wb->menu_item_footer='';
 		$wb->menu_parent = $parent;
 		$wb->menu_header = $menu_header; 
 		$wb->menu_footer = $menu_footer;
@@ -78,9 +79,52 @@
 		$wb->menu_current_class = $current_class;
 		$wb->menu_recurse = $recurse+2; 	
 		$wb->menu();
+		unset($wb->menu_parent);
+		unset($wb->menu_number);
+		unset($wb->menu_item_template);
+		unset($wb->menu_item_footer);
+		unset($wb->menu_header);
+		unset($wb->menu_footer);
+		unset($wb->menu_default_class);
+		unset($wb->menu_current_class);
+		unset($wb->menu_start_level);
+		unset($wb->menu_collapse);
+		unset($wb->menu_recurse);
 	}
 }
 
+if (!function_exists('show_menu')) {
+	function show_menu($menu_number = NULL, $start_level=NULL, $recurse = NULL, $collapse = NULL, $item_template = NULL, $item_footer = NULL, $menu_header = NULL, $menu_footer = NULL, $default_class = NULL, $current_class = NULL, $parent = NULL) {
+		global $wb;
+		if (isset($menu_number))
+			$wb->menu_number=$menu_number;
+		if (isset($start_level))
+			$wb->menu_start_level=$start_level;
+		if (isset($recurse))
+			$wb->menu_recurse=$recurse;
+		if (isset($collapse))
+			$wb->menu_collapse=$collapse;
+		if (isset($item_template))
+			$wb->menu_item_template=$item_template;
+		if (isset($item_footer))
+			$wb->menu_item_footer=$item_footer;
+		if (isset($menu_header))
+			$wb->menu_header=$menu_header;
+		if (isset($menu_footer))
+			$wb->menu_footer=$menu_footer;
+		if (isset($default_class))
+			$wb->menu_default_class=$default_class;
+		if (isset($current_class))
+			$wb->menu_current_class=$current_class;
+		if (isset($parent))
+			$wb->menu_parent=$parent;
+		$wb->menu();
+		unset($wb->menu_recurse);
+		unset($wb->menu_parent);
+		unset($wb->menu_start_level);
+	}
+}
+
 if (!function_exists('page_content')) {
 	function page_content($block = 1) {
 		// Get outside objects
