diff -r -N -U 3 mod_menu/fields/index.html mod_menuwithitemselection/fields/index.html
--- mod_menu/fields/index.html	1970-01-01 01:00:00.000000000 +0100
+++ mod_menuwithitemselection/fields/index.html	2011-06-19 15:39:37.000000000 +0200
@@ -0,0 +1 @@
+<!DOCTYPE html><title></title>
diff -r -N -U 3 mod_menu/fields/menuselection.css mod_menuwithitemselection/fields/menuselection.css
--- mod_menu/fields/menuselection.css	1970-01-01 01:00:00.000000000 +0100
+++ mod_menuwithitemselection/fields/menuselection.css	2012-01-18 00:50:01.000000000 +0100
@@ -0,0 +1,40 @@
+/**
+ * Adapted from administrator/templates/bluestork/css/templates.css (template.css 22238 2011-10-15 20:51:55Z github_bot)
+ * @license             GNU General Public License version 2 or later; see LICENSE.txt
+ */
+
+fieldset ul.menu-item-links label {
+        clear: none;
+}
+
+div#menu-item-selection {
+        clear:left;
+}
+div#menu-item-selection input,
+div#menu-item-selection h3 {
+        clear:left;
+        padding-bottom: 0;
+        margin-bottom: 0;
+}
+div#menu-item-selection ul.menu-item-links {
+        float:left;
+        width:49%;
+}
+div#menu-item-selection ul.menu-item-links li:last-child label {
+        margin-bottom: 20px;
+}
+
+fieldset.adminform .menu-item-links label {
+        white-space:nowrap;
+}
+fieldset.adminform .menu-item-links input {
+        margin: 8px 5px 0 0;
+}
+
+/**
+ * Required to override the #FAFAFA background set by bluestork rule ".pane-sliders .panel h3".
+ */
+dl.tabs dt.closed h3 {
+	background: #e9e9e9;
+	color: #666;
+}
diff -r -N -U 3 mod_menu/fields/menuselection.php mod_menuwithitemselection/fields/menuselection.php
--- mod_menu/fields/menuselection.php	1970-01-01 01:00:00.000000000 +0100
+++ mod_menuwithitemselection/fields/menuselection.php	2012-06-06 22:49:32.992743005 +0200
@@ -0,0 +1,60 @@
+<?php
+/**
+ * @license GNU General Public License version 2 or later; see LICENSE.txt
+ */
+
+defined('_JEXEC') or die;
+ 
+jimport('joomla.form.formfield');
+ 
+class JFormFieldMenuSelection extends JFormField {
+ 
+    protected $type = 'MenuSelection';
+  
+    /**
+     * Adapted from administrator/components/com_modules/views/module/tmpl/edit_assignment.php (edit_assignment.php 21674 2011-06-24 22:16:09Z chdemko)
+     */
+    public function getInput() {
+        $document = JFactory::getDocument();
+        $document->addStyleSheet(JUri::root(true).'/modules'.DS.'mod_menuwithitemselection'.DS.'fields'.DS.'menuselection.css');        
+        
+        require_once JPATH_ADMINISTRATOR.'/components/com_menus/helpers/menus.php';
+        $menuTypes = MenusHelper::getMenuLinks();
+                
+        $html[] = '<fieldset class="adminform">';
+        $html[] = '<div id="menu-item-selection">';
+        $html[] = JHtml::_('tabs.start','menu-item-selection-tabs', array('useCookie'=>1));
+        
+        foreach ($menuTypes as &$type) {
+                $html[] = JHtml::_('tabs.panel', $type->title ? $type->title : $type->menutype, $type->menutype.'-details');
+
+                $count = count($type->links);
+                $i = 0;
+                if ($count) {
+                    $html[] = '    <ul class="menu-item-links">';
+                    foreach ($type->links as $link) {
+                        $checked = in_array($link->value, $this->value) ? ' checked="checked"' : '';
+                        
+                        $html[] = '    <li class="menu-item-link">';
+                        $html[] = '        <input type="checkbox" class="chk-menuitemlink" name="jform[params][itemsToShow][]" value="'.(int) $link->value.'" id="itemlink'.(int) $link->value.'" '.$checked.'/>';
+                        $html[] = '        <label for="link'.(int) $link->value.'">';
+                        $html[] = '            '.$link->text;
+                        $html[] = '        </label>';
+                        $html[] = '    </li>';
+                        if ($count > 20 && ++$i == ceil($count/2)) {
+                            $html[] = '    </ul><ul class="menu-item-links">';
+                        }
+                }
+                $html[] = '    </ul>';
+                $html[] = '<div class="clr"></div>';
+            }
+        }
+
+        $html[] = JHtml::_('tabs.end');
+
+        $html[] = '</div>';
+        $html[] = '</fieldset>';
+        
+        return implode("\n", $html);
+    }
+}
diff -r -N -U 3 mod_menu/helper.php mod_menuwithitemselection/helper.php
--- mod_menu/helper.php	2012-06-14 18:32:53.000000000 +0200
+++ mod_menuwithitemselection/helper.php	2012-06-09 17:53:45.000000000 +0200
@@ -8,11 +8,9 @@
 defined('_JEXEC') or die;
 
 /**
- * @package		Joomla.Site
- * @subpackage	mod_menu
  * @since		1.5
  */
-class modMenuHelper
+class modMenuWithItemSelectionHelper
 {
 	/**
 	 * Get a list of the menu items.
@@ -34,28 +32,33 @@
 		$levels = $user->getAuthorisedViewLevels();
 		asort($levels);
 		$key = 'menu_items'.$params.implode(',', $levels).'.'.$active->id;
-		$cache = JFactory::getCache('mod_menu', '');
+		$cache = JFactory::getCache('mod_menuwithitemselection', '');
 		if (!($items = $cache->get($key)))
 		{
 			// Initialise variables.
 			$list		= array();
 			$db			= JFactory::getDbo();
 
+			$ignoreBasicOptions = $params->get('ignoreBasicOptions');
+			$itemsToShow = $params->get('itemsToShow', array());
+
 			$path		= $active->tree;
-			$start		= (int) $params->get('startLevel');
+			$start		= $ignoreBasicOptions ? 1 : (int) $params->get('startLevel');
 			$end		= (int) $params->get('endLevel');
 			$showAll	= $params->get('showAllChildren');
-			$items 		= $menu->getItems('menutype', $params->get('menutype'));
+			$items 		= $ignoreBasicOptions ? self::getAllItemsOrderedByMenuType() : $menu->getItems('menutype',$params->get('menutype'));
 
 			$lastitem	= 0;
 
 			if ($items) {
 				foreach($items as $i => $item)
 				{
-					if (($start && $start > $item->level)
+					if (($ignoreBasicOptions && array_search($item->id, $itemsToShow) === false) || (
+					    !$ignoreBasicOptions && (
+						($start && $start > $item->level)
 						|| ($end && $item->level > $end)
 						|| (!$showAll && $item->level > 1 && !in_array($item->parent_id, $path))
-						|| ($start > 1 && !in_array($item->tree[$start-2], $path))
+						|| ($start > 1 && !in_array($item->tree[$start-2], $path))))
 					) {
 						unset($items[$i]);
 						continue;
@@ -63,12 +66,17 @@
 
 					$item->deeper = false;
 					$item->shallower = false;
-					$item->level_diff = 0;
+					$item->level_diff_to_shallower = 0;
+					$item->level_diff_from_shallower = 0;
 
 					if (isset($items[$lastitem])) {
 						$items[$lastitem]->deeper		= ($item->level > $items[$lastitem]->level);
 						$items[$lastitem]->shallower	= ($item->level < $items[$lastitem]->level);
-						$items[$lastitem]->level_diff	= ($items[$lastitem]->level - $item->level);
+						if ($items[$lastitem]->shallower) {
+							$items[$lastitem]->level_diff_to_shallower = ($items[$lastitem]->level - $item->level);
+						} else if ($items[$lastitem]->deeper) {
+							$item->level_diff_from_shallower = ($item->level - $items[$lastitem]->level);
+						}
 					}
 
 					$item->parent = (boolean) $menu->getItems('parent_id', (int) $item->id, true);
@@ -126,10 +134,18 @@
 					$item->menu_image = $item->params->get('menu_image', '') ? htmlspecialchars($item->params->get('menu_image', '')) : '';
 				}
 
+				$firstItem = reset($items);
+				if ($firstItem) {
+					//The first item is a special case. As it has no previous
+					//item, the level difference must be calculated against the
+					//base of the list (which is 1 level below the start level).
+					$firstItem->level_diff_from_shallower = $firstItem->level - (($start?$start:1) - 1);
+				}
+
 				if (isset($items[$lastitem])) {
 					$items[$lastitem]->deeper		= (($start?$start:1) > $items[$lastitem]->level);
 					$items[$lastitem]->shallower	= (($start?$start:1) < $items[$lastitem]->level);
-					$items[$lastitem]->level_diff	= ($items[$lastitem]->level - ($start?$start:1));
+					$items[$lastitem]->level_diff_to_shallower	= ($items[$lastitem]->level - ($start?$start:1));
 				}
 			}
 
@@ -137,4 +153,30 @@
 		}
 		return $items;
 	}
+
+	private static function getAllItemsOrderedByMenuType() {
+		$db = JFactory::getDbo();
+		$query	= $db->getQuery(true);
+		
+		$query->select('menutype');
+		$query->from('#__menu_types');
+		$query->order('title, menutype');
+		$db->setQuery($query);
+
+		try {
+			$menuTypes = $db->loadColumn();    
+		} catch (JDatabaseException $e) {
+			return array();
+		}
+
+		$app = JFactory::getApplication();
+		$menu = $app->getMenu();
+
+		$items = array();
+		foreach ($menuTypes as $menutype) {
+			$items = array_merge($items, $menu->getItems('menutype', $menutype));
+		}
+
+		return $items;
+	}
 }
diff -r -N -U 3 mod_menu/language/en-GB/en-GB.mod_menu.ini mod_menuwithitemselection/language/en-GB/en-GB.mod_menu.ini
--- mod_menu/language/en-GB/en-GB.mod_menu.ini	2012-06-14 13:58:03.000000000 +0200
+++ mod_menuwithitemselection/language/en-GB/en-GB.mod_menu.ini	1970-01-01 01:00:00.000000000 +0100
@@ -1,21 +0,0 @@
-; Joomla! Project
-; Copyright (C) 2005 - 2012 Open Source Matters. All rights reserved.
-; License GNU General Public License version 2 or later; see LICENSE.txt, see LICENSE.php
-; Note : All ini files need to be saved as UTF-8 - No BOM
-
-MOD_MENU="Menu"
-MOD_MENU_FIELD_ALLCHILDREN_DESC="Expand the menu and make its sub-menu items always visible."
-MOD_MENU_FIELD_ALLCHILDREN_LABEL="Show Sub-menu Items"
-MOD_MENU_FIELD_CLASS_DESC="A suffix to be applied to the CSS class of the menu items"
-MOD_MENU_FIELD_CLASS_LABEL="Menu Class Suffix"
-MOD_MENU_FIELD_ENDLEVEL_DESC="Level to stop rendering the menu at. If you choose 'All', all levels will be shown depending on 'Show Sub-menu Items' setting."
-MOD_MENU_FIELD_ENDLEVEL_LABEL="End Level"
-MOD_MENU_FIELD_MENUTYPE_DESC="Select a menu in the list"
-MOD_MENU_FIELD_MENUTYPE_LABEL="Select Menu"
-MOD_MENU_FIELD_STARTLEVEL_DESC="Level to start rendering the menu at. Setting the start and end levels to the same # and setting 'Show Sub-menu Items' to yes will only display that single level."
-MOD_MENU_FIELD_STARTLEVEL_LABEL="Start Level"
-MOD_MENU_FIELD_TAG_ID_DESC="An ID attribute to assign to the root UL tag of the menu (optional)"
-MOD_MENU_FIELD_TAG_ID_LABEL="Menu Tag ID"
-MOD_MENU_FIELD_TARGET_DESC="JavaScript values to position a popup window, e.g. top=50,left=50,width=200,height=300"
-MOD_MENU_FIELD_TARGET_LABEL="Target Position"
-MOD_MENU_XML_DESCRIPTION="This module displays a menu on the frontend."
diff -r -N -U 3 mod_menu/language/en-GB/en-GB.mod_menu.sys.ini mod_menuwithitemselection/language/en-GB/en-GB.mod_menu.sys.ini
--- mod_menu/language/en-GB/en-GB.mod_menu.sys.ini	2012-06-14 13:58:03.000000000 +0200
+++ mod_menuwithitemselection/language/en-GB/en-GB.mod_menu.sys.ini	1970-01-01 01:00:00.000000000 +0100
@@ -1,9 +0,0 @@
-; Joomla! Project
-; Copyright (C) 2005 - 2012 Open Source Matters. All rights reserved.
-; License GNU General Public License version 2 or later; see LICENSE.txt, see LICENSE.php
-; Note : All ini files need to be saved as UTF-8 - No BOM
-
-MOD_MENU="Menu"
-MOD_MENU_XML_DESCRIPTION="This module displays a menu on the frontend."
-MOD_MENU_LAYOUT_DEFAULT="Default"
-
diff -r -N -U 3 mod_menu/language/en-GB/en-GB.mod_menuwithitemselection.ini mod_menuwithitemselection/language/en-GB/en-GB.mod_menuwithitemselection.ini
--- mod_menu/language/en-GB/en-GB.mod_menuwithitemselection.ini	1970-01-01 01:00:00.000000000 +0100
+++ mod_menuwithitemselection/language/en-GB/en-GB.mod_menuwithitemselection.ini	2012-06-06 18:08:26.571380560 +0200
@@ -0,0 +1,26 @@
+; Copyright (C) 2005 - 2012 Open Source Matters. All rights reserved.
+; Copyright (C) 2012 Daniel Calviño Sánchez.
+; License GNU General Public License version 2 or later; see LICENSE.txt, see LICENSE.php
+; Note : All ini files need to be saved as UTF-8 - No BOM
+
+MOD_MENUWITHITEMSELECTION="Menu With Item Selection"
+MOD_MENU_FIELD_ALLCHILDREN_DESC="Expand the menu and make its sub-menu items always visible."
+MOD_MENU_FIELD_ALLCHILDREN_LABEL="Show Sub-menu Items"
+MOD_MENU_FIELD_CLASS_DESC="A suffix to be applied to the CSS class of the menu items"
+MOD_MENU_FIELD_CLASS_LABEL="Menu Class Suffix"
+MOD_MENU_FIELD_ENDLEVEL_DESC="Level to stop rendering the menu at. If you choose 'All', all levels will be shown depending on 'Show Sub-menu Items' setting."
+MOD_MENU_FIELD_ENDLEVEL_LABEL="End Level"
+MOD_MENU_FIELD_MENUTYPE_DESC="Select a menu in the list"
+MOD_MENU_FIELD_MENUTYPE_LABEL="Select Menu"
+MOD_MENU_FIELD_STARTLEVEL_DESC="Level to start rendering the menu at. Setting the start and end levels to the same # and setting 'Show Sub-menu Items' to yes will only display that single level."
+MOD_MENU_FIELD_STARTLEVEL_LABEL="Start Level"
+MOD_MENU_FIELD_TAG_ID_DESC="An ID attribute to assign to the root UL tag of the menu (optional)"
+MOD_MENU_FIELD_TAG_ID_LABEL="Menu Tag ID"
+MOD_MENU_FIELD_TARGET_DESC="JavaScript values to position a popup window, e.g. top=50,left=50,width=200,height=300"
+MOD_MENU_FIELD_TARGET_LABEL="Target Position"
+MOD_MENUWITHITEMSELECTION_CONFIG_ITEMS_SETTINGS_LABEL="Items"
+MOD_MENUWITHITEMSELECTION_FIELD_IGNORE_BASIC_OPTIONS_LABEL="Ignore basic options"
+MOD_MENUWITHITEMSELECTION_FIELD_IGNORE_BASIC_OPTIONS_DESC="Show the items selected no matter what the basic options are"
+MOD_MENUWITHITEMSELECTION_FIELD_ITEMS_TO_SHOW_LABEL="Menu items to show"
+MOD_MENUWITHITEMSELECTION_FIELD_ITEMS_TO_SHOW_DESC="The menu items that will be shown by the module"
+MOD_MENUWITHITEMSELECTION_XML_DESCRIPTION="This module displays menus on the frontend. It is a modification of the Joomla! menu module that adds the option to select individually what menu items are shown."
diff -r -N -U 3 mod_menu/language/en-GB/en-GB.mod_menuwithitemselection.sys.ini mod_menuwithitemselection/language/en-GB/en-GB.mod_menuwithitemselection.sys.ini
--- mod_menu/language/en-GB/en-GB.mod_menuwithitemselection.sys.ini	1970-01-01 01:00:00.000000000 +0100
+++ mod_menuwithitemselection/language/en-GB/en-GB.mod_menuwithitemselection.sys.ini	2012-06-06 18:06:45.750618691 +0200
@@ -0,0 +1,8 @@
+; Copyright (C) 2005 - 2012 Open Source Matters. All rights reserved.
+; Copyright (C) 2012 Daniel Calviño Sánchez.
+; License GNU General Public License version 2 or later; see LICENSE.txt, see LICENSE.php
+; Note : All ini files need to be saved as UTF-8 - No BOM
+
+MOD_MENUWITHITEMSELECTION="Menu With Item Selection"
+MOD_MENUWITHITEMSELECTION_XML_DESCRIPTION="This module displays menus on the frontend. It is a modification of the Joomla! menu module that adds the option to select individually what menu items are shown."
+MOD_MENU_LAYOUT_DEFAULT="Default"
diff -r -N -U 3 mod_menu/LICENSE.txt mod_menuwithitemselection/LICENSE.txt
--- mod_menu/LICENSE.txt	1970-01-01 01:00:00.000000000 +0100
+++ mod_menuwithitemselection/LICENSE.txt	2012-06-06 12:52:18.401539512 +0200
@@ -0,0 +1,339 @@
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                            NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff -r -N -U 3 mod_menu/mod_menu.php mod_menuwithitemselection/mod_menu.php
--- mod_menu/mod_menu.php	2012-06-14 13:58:03.000000000 +0200
+++ mod_menuwithitemselection/mod_menu.php	1970-01-01 01:00:00.000000000 +0100
@@ -1,26 +0,0 @@
-<?php
-/**
- * @package		Joomla.Site
- * @subpackage	mod_menu
- * @copyright	Copyright (C) 2005 - 2012 Open Source Matters, Inc. All rights reserved.
- * @license		GNU General Public License version 2 or later; see LICENSE.txt
- */
-
-// no direct access
-defined('_JEXEC') or die;
-
-// Include the syndicate functions only once
-require_once dirname(__FILE__).'/helper.php';
-
-$list	= modMenuHelper::getList($params);
-$app	= JFactory::getApplication();
-$menu	= $app->getMenu();
-$active	= $menu->getActive();
-$active_id = isset($active) ? $active->id : $menu->getDefault()->id;
-$path	= isset($active) ? $active->tree : array();
-$showAll	= $params->get('showAllChildren');
-$class_sfx	= htmlspecialchars($params->get('class_sfx'));
-
-if(count($list)) {
-	require JModuleHelper::getLayoutPath('mod_menu', $params->get('layout', 'default'));
-}
diff -r -N -U 3 mod_menu/mod_menuwithitemselection.php mod_menuwithitemselection/mod_menuwithitemselection.php
--- mod_menu/mod_menuwithitemselection.php	1970-01-01 01:00:00.000000000 +0100
+++ mod_menuwithitemselection/mod_menuwithitemselection.php	2012-06-06 22:44:19.989492501 +0200
@@ -0,0 +1,24 @@
+<?php
+/**
+ * @copyright	Copyright (C) 2005 - 2012 Open Source Matters, Inc. All rights reserved.
+ * @license		GNU General Public License version 2 or later; see LICENSE.txt
+ */
+
+// no direct access
+defined('_JEXEC') or die;
+
+// Include the syndicate functions only once
+require_once dirname(__FILE__).'/helper.php';
+
+$list	= modMenuWithItemSelectionHelper::getList($params);
+$app	= JFactory::getApplication();
+$menu	= $app->getMenu();
+$active	= $menu->getActive();
+$active_id = isset($active) ? $active->id : $menu->getDefault()->id;
+$path	= isset($active) ? $active->tree : array();
+$showAll	= $params->get('showAllChildren');
+$class_sfx	= htmlspecialchars($params->get('class_sfx'));
+
+if(count($list)) {
+	require JModuleHelper::getLayoutPath('mod_menuwithitemselection', $params->get('layout', 'default'));
+}
diff -r -N -U 3 mod_menu/mod_menuwithitemselection.xml mod_menuwithitemselection/mod_menuwithitemselection.xml
--- mod_menu/mod_menuwithitemselection.xml	1970-01-01 01:00:00.000000000 +0100
+++ mod_menuwithitemselection/mod_menuwithitemselection.xml	2012-06-07 01:56:53.381741932 +0200
@@ -0,0 +1,165 @@
+<?xml version="1.0" encoding="utf-8"?>
+<extension
+	type="module"
+	version="2.5"
+	client="site"
+	method="upgrade">
+	<name>mod_menuwithitemselection</name>
+	<author>Joomla! Project</author>
+	<creationDate>May 2012</creationDate>
+	<copyright>Copyright (C) 2005 - 2012 Open Source Matters. All rights reserved.</copyright>
+	<copyright>Copyright (C) 2012 Daniel Calviño Sánchez.</copyright>
+	<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
+	<version>1.0</version>
+	<description>MOD_MENUWITHITEMSELECTION_XML_DESCRIPTION</description>
+	<files>
+		<filename module="mod_menuwithitemselection">mod_menuwithitemselection.php</filename>
+		<folder>fields</folder>
+		<folder>tmpl</folder>
+		<filename>helper.php</filename>
+		<filename>index.html</filename>
+		<filename>mod_menuwithitemselection.xml</filename>
+	</files>
+	<languages folder="language">
+		<language tag="en-GB">en-GB/en-GB.mod_menuwithitemselection.ini</language>
+		<language tag="en-GB">en-GB/en-GB.mod_menuwithitemselection.sys.ini</language>
+	</languages>
+	<help key="JHELP_EXTENSIONS_MODULE_MANAGER_MENU" />
+	<config>
+		<fields name="params">
+			<fieldset name="basic">
+				<field
+					name="menutype"
+					type="menu"
+					label="MOD_MENU_FIELD_MENUTYPE_LABEL"
+					description="MOD_MENU_FIELD_MENUTYPE_DESC" />
+				<field
+					name="startLevel"
+					type="list"
+					default="1"
+					label="MOD_MENU_FIELD_STARTLEVEL_LABEL"
+					description="MOD_MENU_FIELD_STARTLEVEL_DESC"
+				>
+					<option value="1">J1</option>
+					<option value="2">J2</option>
+					<option value="3">J3</option>
+					<option value="4">J4</option>
+					<option value="5">J5</option>
+					<option value="6">J6</option>
+					<option value="7">J7</option>
+					<option value="8">J8</option>
+					<option value="9">J9</option>
+					<option value="10">J10</option>
+				</field>
+
+				<field
+					name="endLevel"
+					type="list"
+					default="0"
+					label="MOD_MENU_FIELD_ENDLEVEL_LABEL"
+					description="MOD_MENU_FIELD_ENDLEVEL_DESC"
+					>
+					<option value="0">JALL</option>
+					<option value="1">J1</option>
+					<option value="2">J2</option>
+					<option value="3">J3</option>
+					<option value="4">J4</option>
+					<option value="5">J5</option>
+					<option value="6">J6</option>
+					<option value="7">J7</option>
+					<option value="8">J8</option>
+					<option value="9">J9</option>
+					<option value="10">J10</option>
+				</field>
+
+				<field
+					name="showAllChildren"
+					type="radio"
+					default="0"
+					label="MOD_MENU_FIELD_ALLCHILDREN_LABEL"
+					description="MOD_MENU_FIELD_ALLCHILDREN_DESC">
+					<option
+						value="0">JNO</option>
+					<option
+						value="1">JYES</option>
+				</field>
+			</fieldset>
+
+			<fieldset
+				name="items"
+				label="MOD_MENUWITHITEMSELECTION_CONFIG_ITEMS_SETTINGS_LABEL"
+				addfieldpath="modules/mod_menuwithitemselection/fields">
+				<field
+					name="ignoreBasicOptions"
+					type="checkbox"
+					label="MOD_MENUWITHITEMSELECTION_FIELD_IGNORE_BASIC_OPTIONS_LABEL"
+					description="MOD_MENUWITHITEMSELECTION_FIELD_IGNORE_BASIC_OPTIONS_DESC"
+					value="1" />
+					
+				<field
+					name="itemsToShow"
+					type="menuselection"
+					label="MOD_MENUWITHITEMSELECTION_FIELD_ITEMS_TO_SHOW_LABEL"
+					description="MOD_MENUWITHITEMSELECTION_FIELD_ITEMS_TO_SHOW_DESC" />
+			</fieldset>
+
+			<fieldset
+				name="advanced">
+				<field
+					name="tag_id"
+					type="text"
+					label="MOD_MENU_FIELD_TAG_ID_LABEL"
+					description="MOD_MENU_FIELD_TAG_ID_DESC" />
+
+				<field
+					name="class_sfx"
+					type="text"
+					label="MOD_MENU_FIELD_CLASS_LABEL"
+					description="MOD_MENU_FIELD_CLASS_DESC" />
+
+				<field
+					name="window_open"
+					type="text"
+					label="MOD_MENU_FIELD_TARGET_LABEL"
+					description="MOD_MENU_FIELD_TARGET_DESC" />
+
+				<field
+					name="layout"
+					type="modulelayout"
+					label="JFIELD_ALT_LAYOUT_LABEL"
+					description="JFIELD_ALT_MODULE_LAYOUT_DESC" />
+
+				<field
+					name="moduleclass_sfx"
+					type="text"
+					label="COM_MODULES_FIELD_MODULECLASS_SFX_LABEL"
+					description="COM_MODULES_FIELD_MODULECLASS_SFX_DESC" />
+
+				<field
+					name="cache"
+					type="list"
+					default="1"
+					label="COM_MODULES_FIELD_CACHING_LABEL"
+					description="COM_MODULES_FIELD_CACHING_DESC">
+					<option
+						value="1">JGLOBAL_USE_GLOBAL</option>
+					<option
+						value="0">COM_MODULES_FIELD_VALUE_NOCACHING</option>
+				</field>
+				<field
+					name="cache_time"
+					type="text"
+					default="900"
+					label="COM_MODULES_FIELD_CACHE_TIME_LABEL"
+					description="COM_MODULES_FIELD_CACHE_TIME_DESC" />
+				<field
+					name="cachemode"
+					type="hidden"
+					default="itemid">
+					<option
+						value="itemid"></option>
+				</field>
+			</fieldset>
+		</fields>
+	</config>
+</extension>
diff -r -N -U 3 mod_menu/mod_menu.xml mod_menuwithitemselection/mod_menu.xml
--- mod_menu/mod_menu.xml	2012-06-14 13:58:03.000000000 +0200
+++ mod_menuwithitemselection/mod_menu.xml	1970-01-01 01:00:00.000000000 +0100
@@ -1,146 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<extension
-	type="module"
-	version="2.5"
-	client="site"
-	method="upgrade">
-	<name>mod_menu</name>
-	<author>Joomla! Project</author>
-	<creationDate>July 2004</creationDate>
-	<copyright>Copyright (C) 2005 - 2012 Open Source Matters. All rights reserved.</copyright>
-	<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
-	<authorEmail>admin@joomla.org</authorEmail>
-	<authorUrl>www.joomla.org</authorUrl>
-	<version>2.5.0</version>
-	<description>MOD_MENU_XML_DESCRIPTION</description>
-	<files>
-		<filename module="mod_menu">mod_menu.php</filename>
-		<folder>tmpl</folder>
-		<filename>helper.php</filename>
-		<filename>index.html</filename>		<filename>mod_menu.xml</filename>
-	</files>
-	<languages>
-		<language tag="en-GB">en-GB.mod_menu.ini</language>
-		<language tag="en-GB">en-GB.mod_menu.sys.ini</language>
-	</languages>
-	<help key="JHELP_EXTENSIONS_MODULE_MANAGER_MENU" />
-	<config>
-		<fields name="params">
-			<fieldset name="basic">
-				<field
-					name="menutype"
-					type="menu"
-					label="MOD_MENU_FIELD_MENUTYPE_LABEL"
-					description="MOD_MENU_FIELD_MENUTYPE_DESC" />
-				<field
-					name="startLevel"
-					type="list"
-					default="1"
-					label="MOD_MENU_FIELD_STARTLEVEL_LABEL"
-					description="MOD_MENU_FIELD_STARTLEVEL_DESC"
-				>
-					<option value="1">J1</option>
-					<option value="2">J2</option>
-					<option value="3">J3</option>
-					<option value="4">J4</option>
-					<option value="5">J5</option>
-					<option value="6">J6</option>
-					<option value="7">J7</option>
-					<option value="8">J8</option>
-					<option value="9">J9</option>
-					<option value="10">J10</option>
-				</field>
-
-				<field
-					name="endLevel"
-					type="list"
-					default="0"
-					label="MOD_MENU_FIELD_ENDLEVEL_LABEL"
-					description="MOD_MENU_FIELD_ENDLEVEL_DESC"
-					>
-					<option value="0">JALL</option>
-					<option value="1">J1</option>
-					<option value="2">J2</option>
-					<option value="3">J3</option>
-					<option value="4">J4</option>
-					<option value="5">J5</option>
-					<option value="6">J6</option>
-					<option value="7">J7</option>
-					<option value="8">J8</option>
-					<option value="9">J9</option>
-					<option value="10">J10</option>
-				</field>
-
-				<field
-					name="showAllChildren"
-					type="radio"
-					default="0"
-					label="MOD_MENU_FIELD_ALLCHILDREN_LABEL"
-					description="MOD_MENU_FIELD_ALLCHILDREN_DESC">
-					<option
-						value="0">JNO</option>
-					<option
-						value="1">JYES</option>
-				</field>
-			</fieldset>
-
-			<fieldset
-				name="advanced">
-				<field
-					name="tag_id"
-					type="text"
-					label="MOD_MENU_FIELD_TAG_ID_LABEL"
-					description="MOD_MENU_FIELD_TAG_ID_DESC" />
-
-				<field
-					name="class_sfx"
-					type="text"
-					label="MOD_MENU_FIELD_CLASS_LABEL"
-					description="MOD_MENU_FIELD_CLASS_DESC" />
-
-				<field
-					name="window_open"
-					type="text"
-					label="MOD_MENU_FIELD_TARGET_LABEL"
-					description="MOD_MENU_FIELD_TARGET_DESC" />
-
-				<field
-					name="layout"
-					type="modulelayout"
-					label="JFIELD_ALT_LAYOUT_LABEL"
-					description="JFIELD_ALT_MODULE_LAYOUT_DESC" />
-
-				<field
-					name="moduleclass_sfx"
-					type="text"
-					label="COM_MODULES_FIELD_MODULECLASS_SFX_LABEL"
-					description="COM_MODULES_FIELD_MODULECLASS_SFX_DESC" />
-
-				<field
-					name="cache"
-					type="list"
-					default="1"
-					label="COM_MODULES_FIELD_CACHING_LABEL"
-					description="COM_MODULES_FIELD_CACHING_DESC">
-					<option
-						value="1">JGLOBAL_USE_GLOBAL</option>
-					<option
-						value="0">COM_MODULES_FIELD_VALUE_NOCACHING</option>
-				</field>
-				<field
-					name="cache_time"
-					type="text"
-					default="900"
-					label="COM_MODULES_FIELD_CACHE_TIME_LABEL"
-					description="COM_MODULES_FIELD_CACHE_TIME_DESC" />
-				<field
-					name="cachemode"
-					type="hidden"
-					default="itemid">
-					<option
-						value="itemid"></option>
-				</field>
-			</fieldset>
-		</fields>
-	</config>
-</extension>
diff -r -N -U 3 mod_menu/tmpl/default_component.php mod_menuwithitemselection/tmpl/default_component.php
--- mod_menu/tmpl/default_component.php	2012-06-14 13:58:03.000000000 +0200
+++ mod_menuwithitemselection/tmpl/default_component.php	2012-06-06 18:20:18.000000000 +0200
@@ -1,7 +1,5 @@
 <?php
 /**
- * @package		Joomla.Site
- * @subpackage	mod_menu
  * @copyright	Copyright (C) 2005 - 2012 Open Source Matters, Inc. All rights reserved.
  * @license		GNU General Public License version 2 or later; see LICENSE.txt
  */
diff -r -N -U 3 mod_menu/tmpl/default.php mod_menuwithitemselection/tmpl/default.php
--- mod_menu/tmpl/default.php	2012-06-14 18:32:53.000000000 +0200
+++ mod_menuwithitemselection/tmpl/default.php	2012-06-09 17:53:45.000000000 +0200
@@ -1,7 +1,5 @@
 <?php
 /**
- * @package		Joomla.Site
- * @subpackage	mod_menu
  * @copyright	Copyright (C) 2005 - 2012 Open Source Matters, Inc. All rights reserved.
  * @license		GNU General Public License version 2 or later; see LICENSE.txt
  */
@@ -51,6 +49,13 @@
 		$class = ' class="'.trim($class) .'"';
 	}
 
+	//Fill the gap (more than one level of difference) from the previous item
+	//with as many empty nested list items as needed (note that if the current
+	//item is deeper than the previous one a list was already opened).
+	if ($item->level_diff_from_shallower > 1) {
+		echo str_repeat('<li><ul>', $item->level_diff_from_shallower - 1);
+	}
+
 	echo '<li'.$class.'>';
 
 	// Render the menu item.
@@ -58,11 +63,11 @@
 		case 'separator':
 		case 'url':
 		case 'component':
-			require JModuleHelper::getLayoutPath('mod_menu', 'default_'.$item->type);
+			require JModuleHelper::getLayoutPath('mod_menuwithitemselection', 'default_'.$item->type);
 			break;
 
 		default:
-			require JModuleHelper::getLayoutPath('mod_menu', 'default_url');
+			require JModuleHelper::getLayoutPath('mod_menuwithitemselection', 'default_url');
 			break;
 	endswitch;
 
@@ -73,7 +78,7 @@
 	// The next item is shallower.
 	elseif ($item->shallower) {
 		echo '</li>';
-		echo str_repeat('</ul></li>', $item->level_diff);
+		echo str_repeat('</ul></li>', $item->level_diff_to_shallower);
 	}
 	// The next item is on the same level.
 	else {
diff -r -N -U 3 mod_menu/tmpl/default_separator.php mod_menuwithitemselection/tmpl/default_separator.php
--- mod_menu/tmpl/default_separator.php	2012-06-14 13:58:03.000000000 +0200
+++ mod_menuwithitemselection/tmpl/default_separator.php	2012-06-06 18:20:18.000000000 +0200
@@ -1,7 +1,5 @@
 <?php
 /**
- * @package		Joomla.Site
- * @subpackage	mod_menu
  * @copyright	Copyright (C) 2005 - 2012 Open Source Matters, Inc. All rights reserved.
  * @license		GNU General Public License version 2 or later; see LICENSE.txt
  */
diff -r -N -U 3 mod_menu/tmpl/default_url.php mod_menuwithitemselection/tmpl/default_url.php
--- mod_menu/tmpl/default_url.php	2012-06-14 13:58:03.000000000 +0200
+++ mod_menuwithitemselection/tmpl/default_url.php	2012-06-06 18:20:18.000000000 +0200
@@ -1,7 +1,5 @@
 <?php
 /**
- * @package		Joomla.Site
- * @subpackage	mod_menu
  * @copyright	Copyright (C) 2005 - 2012 Open Source Matters, Inc. All rights reserved.
  * @license		GNU General Public License version 2 or later; see LICENSE.txt
  */
diff -r -N -U 3 mod_menu/unit-tests/create-test-tables.sql mod_menuwithitemselection/unit-tests/create-test-tables.sql
--- mod_menu/unit-tests/create-test-tables.sql	1970-01-01 01:00:00.000000000 +0100
+++ mod_menuwithitemselection/unit-tests/create-test-tables.sql	2012-06-14 14:30:31.000000000 +0200
@@ -0,0 +1,112 @@
+CREATE TABLE IF NOT EXISTS `#__extensions` (
+  `extension_id` int(11) NOT NULL AUTO_INCREMENT,
+  `name` varchar(100) NOT NULL,
+  `type` varchar(20) NOT NULL,
+  `element` varchar(100) NOT NULL,
+  `folder` varchar(100) NOT NULL,
+  `client_id` tinyint(3) NOT NULL,
+  `enabled` tinyint(3) NOT NULL DEFAULT '1',
+  `access` int(10) unsigned NOT NULL DEFAULT '1',
+  `protected` tinyint(3) NOT NULL DEFAULT '0',
+  `manifest_cache` text NOT NULL,
+  `params` text NOT NULL,
+  `custom_data` text NOT NULL,
+  `system_data` text NOT NULL,
+  `checked_out` int(10) unsigned NOT NULL DEFAULT '0',
+  `checked_out_time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+  `ordering` int(11) DEFAULT '0',
+  `state` int(11) DEFAULT '0',
+  PRIMARY KEY (`extension_id`),
+  KEY `element_clientid` (`element`,`client_id`),
+  KEY `element_folder_clientid` (`element`,`folder`,`client_id`),
+  KEY `extension` (`type`,`element`,`folder`,`client_id`)
+) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=801 ;
+
+
+
+CREATE TABLE IF NOT EXISTS `#__menu` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `menutype` varchar(24) NOT NULL COMMENT 'The type of menu this item belongs to. FK to trunk_menu_types.menutype',
+  `title` varchar(255) NOT NULL COMMENT 'The display title of the menu item.',
+  `alias` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'The SEF alias of the menu item.',
+  `note` varchar(255) NOT NULL DEFAULT '',
+  `path` varchar(1024) NOT NULL COMMENT 'The computed path of the menu item based on the alias field.',
+  `link` varchar(1024) NOT NULL COMMENT 'The actually link the menu item refers to.',
+  `type` varchar(16) NOT NULL COMMENT 'The type of link: Component, URL, Alias, Separator',
+  `published` tinyint(4) NOT NULL DEFAULT '0' COMMENT 'The published state of the menu link.',
+  `parent_id` int(10) unsigned NOT NULL DEFAULT '1' COMMENT 'The parent menu item in the menu tree.',
+  `level` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'The relative level in the tree.',
+  `component_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'FK to trunk_extensions.id',
+  `ordering` int(11) NOT NULL DEFAULT '0' COMMENT 'The relative ordering of the menu item in the tree.',
+  `checked_out` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'FK to trunk_users.id',
+  `checked_out_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT 'The time the menu item was checked out.',
+  `browserNav` tinyint(4) NOT NULL DEFAULT '0' COMMENT 'The click behaviour of the link.',
+  `access` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'The access level required to view the menu item.',
+  `img` varchar(255) NOT NULL COMMENT 'The image of the menu item.',
+  `template_style_id` int(10) unsigned NOT NULL DEFAULT '0',
+  `params` text NOT NULL COMMENT 'JSON encoded data for the menu item.',
+  `lft` int(11) NOT NULL DEFAULT '0' COMMENT 'Nested set lft.',
+  `rgt` int(11) NOT NULL DEFAULT '0' COMMENT 'Nested set rgt.',
+  `home` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT 'Indicates if this menu item is the home or default page.',
+  `language` char(7) NOT NULL DEFAULT '',
+  `client_id` tinyint(4) NOT NULL DEFAULT '0',
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `idx_client_id_parent_id_alias_language` (`client_id`,`parent_id`,`alias`,`language`),
+  KEY `idx_componentid` (`component_id`,`menutype`,`published`,`access`),
+  KEY `idx_menutype` (`menutype`),
+  KEY `idx_left_right` (`lft`,`rgt`),
+  KEY `idx_alias` (`alias`),
+  KEY `idx_path` (`path`(333)),
+  KEY `idx_language` (`language`)
+) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=468 ;
+
+
+
+CREATE TABLE IF NOT EXISTS `#__menu_types` (
+  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+  `menutype` varchar(24) NOT NULL,
+  `title` varchar(48) NOT NULL,
+  `description` varchar(255) NOT NULL DEFAULT '',
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `idx_menutype` (`menutype`)
+) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=8 ;
+
+
+
+CREATE TABLE IF NOT EXISTS `#__template_styles` (
+  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+  `template` varchar(50) NOT NULL DEFAULT '',
+  `client_id` tinyint(1) unsigned NOT NULL DEFAULT '0',
+  `home` char(7) NOT NULL DEFAULT '0',
+  `title` varchar(255) NOT NULL DEFAULT '',
+  `params` text NOT NULL,
+  PRIMARY KEY (`id`),
+  KEY `idx_template` (`template`),
+  KEY `idx_home` (`home`)
+) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=115 ;
+
+
+
+CREATE TABLE IF NOT EXISTS `#__usergroups` (
+  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Primary Key',
+  `parent_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Adjacency List Reference Id',
+  `lft` int(11) NOT NULL DEFAULT '0' COMMENT 'Nested set lft.',
+  `rgt` int(11) NOT NULL DEFAULT '0' COMMENT 'Nested set rgt.',
+  `title` varchar(100) NOT NULL DEFAULT '',
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `idx_usergroup_parent_title_lookup` (`parent_id`,`title`),
+  KEY `idx_usergroup_title_lookup` (`title`),
+  KEY `idx_usergroup_adjacency_lookup` (`parent_id`),
+  KEY `idx_usergroup_nested_set_lookup` (`lft`,`rgt`) USING BTREE
+) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=13 ;
+
+
+
+CREATE TABLE IF NOT EXISTS `#__viewlevels` (
+  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Primary Key',
+  `title` varchar(100) NOT NULL DEFAULT '',
+  `ordering` int(11) NOT NULL DEFAULT '0',
+  `rules` varchar(5120) NOT NULL COMMENT 'JSON encoded access control.',
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `idx_assetgroup_title_lookup` (`title`)
+) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;
diff -r -N -U 3 mod_menu/unit-tests/extensions.csv mod_menuwithitemselection/unit-tests/extensions.csv
--- mod_menu/unit-tests/extensions.csv	1970-01-01 01:00:00.000000000 +0100
+++ mod_menuwithitemselection/unit-tests/extensions.csv	2012-06-07 18:51:15.000000000 +0200
@@ -0,0 +1,125 @@
+'extension_id','name','type','element','folder','client_id','enabled','access','protected','manifest_cache','params','custom_data','system_data','checked_out','checked_out_time','ordering','state'
+'1','com_mailto','component','com_mailto',,'0','1','1','1',,,,,'0','0000-00-00 00:00:00','0','0'
+'2','com_wrapper','component','com_wrapper',,'0','1','1','1',,,,,'0','0000-00-00 00:00:00','0','0'
+'3','com_admin','component','com_admin',,'1','1','1','1',,,,,'0','0000-00-00 00:00:00','0','0'
+'4','com_banners','component','com_banners',,'1','1','1','0',,'{"purchase_type":"3","track_impressions":"0","track_clicks":"0","metakey_prefix":""}',,,'0','0000-00-00 00:00:00','0','0'
+'5','com_cache','component','com_cache',,'1','1','1','1',,,,,'0','0000-00-00 00:00:00','0','0'
+'6','com_categories','component','com_categories',,'1','1','1','1',,,,,'0','0000-00-00 00:00:00','0','0'
+'7','com_checkin','component','com_checkin',,'1','1','1','1',,,,,'0','0000-00-00 00:00:00','0','0'
+'8','com_contact','component','com_contact',,'1','1','1','0',,'{"show_contact_category":"hide","show_contact_list":"0","presentation_style":"sliders","show_name":"1","show_position":"1","show_email":"0","show_street_address":"1","show_suburb":"1","show_state":"1","show_postcode":"1","show_country":"1","show_telephone":"1","show_mobile":"1","show_fax":"1","show_webpage":"1","show_misc":"1","show_image":"1","image":"","allow_vcard":"0","show_articles":"0","show_profile":"0","show_links":"0","linka_name":"","linkb_name":"","linkc_name":"","linkd_name":"","linke_name":"","contact_icons":"0","icon_address":"","icon_email":"","icon_telephone":"","icon_mobile":"","icon_fax":"","icon_misc":"","show_headings":"1","show_position_headings":"1","show_email_headings":"0","show_telephone_headings":"1","show_mobile_headings":"0","show_fax_headings":"0","allow_vcard_headings":"0","show_suburb_headings":"1","show_state_headings":"1","show_country_headings":"1","show_email_form":"1","show_email_copy":"1","banned_email":"","banned_subject":"","banned_text":"","validate_session":"1","custom_reply":"0","redirect":"","show_category_crumb":"0","metakey":"","metadesc":"","robots":"","author":"","rights":"","xreference":""}',,,'0','0000-00-00 00:00:00','0','0'
+'9','com_cpanel','component','com_cpanel',,'1','1','1','1',,,,,'0','0000-00-00 00:00:00','0','0'
+'10','com_installer','component','com_installer',,'1','1','1','1',,'{}',,,'0','0000-00-00 00:00:00','0','0'
+'11','com_languages','component','com_languages',,'1','1','1','1',,'{"administrator":"en-GB","site":"en-GB"}',,,'0','0000-00-00 00:00:00','0','0'
+'12','com_login','component','com_login',,'1','1','1','1',,,,,'0','0000-00-00 00:00:00','0','0'
+'13','com_media','component','com_media',,'1','1','0','1',,'{"upload_extensions":"bmp,csv,doc,gif,ico,jpg,jpeg,odg,odp,ods,odt,pdf,png,ppt,swf,txt,xcf,xls,BMP,CSV,DOC,GIF,ICO,JPG,JPEG,ODG,ODP,ODS,ODT,PDF,PNG,PPT,SWF,TXT,XCF,XLS","upload_maxsize":"10","file_path":"images","image_path":"images","restrict_uploads":"1","allowed_media_usergroup":"3","check_mime":"1","image_extensions":"bmp,gif,jpg,png","ignore_extensions":"","upload_mime":"image\/jpeg,image\/gif,image\/png,image\/bmp,application\/x-shockwave-flash,application\/msword,application\/excel,application\/pdf,application\/powerpoint,text\/plain,application\/x-zip","upload_mime_illegal":"text\/html","enable_flash":"0"}',,,'0','0000-00-00 00:00:00','0','0'
+'14','com_menus','component','com_menus',,'1','1','1','1',,'{}',,,'0','0000-00-00 00:00:00','0','0'
+'15','com_messages','component','com_messages',,'1','1','1','1',,,,,'0','0000-00-00 00:00:00','0','0'
+'16','com_modules','component','com_modules',,'1','1','1','1',,'{}',,,'0','0000-00-00 00:00:00','0','0'
+'17','com_newsfeeds','component','com_newsfeeds',,'1','1','1','0',,'{"show_feed_image":"1","show_feed_description":"1","show_item_description":"1","feed_word_count":"0","show_headings":"1","show_name":"1","show_articles":"0","show_link":"1","show_description":"1","show_description_image":"1","display_num":"","show_pagination_limit":"1","show_pagination":"1","show_pagination_results":"1","show_cat_items":"1"}',,,'0','0000-00-00 00:00:00','0','0'
+'18','com_plugins','component','com_plugins',,'1','1','1','1',,'{}',,,'0','0000-00-00 00:00:00','0','0'
+'19','com_search','component','com_search',,'1','1','1','1',,'{"enabled":"0","show_date":"1"}',,,'0','0000-00-00 00:00:00','0','0'
+'20','com_templates','component','com_templates',,'1','1','1','1',,'{}',,,'0','0000-00-00 00:00:00','0','0'
+'21','com_weblinks','component','com_weblinks',,'1','1','1','0',,'{"show_comp_description":"1","comp_description":"","show_link_hits":"1","show_link_description":"1","show_other_cats":"0","show_headings":"0","show_numbers":"0","show_report":"1","count_clicks":"1","target":"0","link_icons":""}',,,'0','0000-00-00 00:00:00','0','0'
+'22','com_content','component','com_content',,'1','1','0','1','{"legacy":false,"name":"com_content","type":"component","creationDate":"April 2006","author":"Joomla! Project","copyright":"(C) 2005 - 2012 Open Source Matters. All rights reserved.\t","authorEmail":"admin@joomla.org","authorUrl":"www.joomla.org","version":"1.7.0","description":"COM_CONTENT_XML_DESCRIPTION","group":""}','{"article_layout":"_:default","show_title":"1","link_titles":"1","show_intro":"1","show_category":"1","link_category":"1","show_parent_category":"0","link_parent_category":"0","show_author":"1","link_author":"0","show_create_date":"0","show_modify_date":"0","show_publish_date":"1","show_item_navigation":"1","show_vote":"0","show_readmore":"1","show_readmore_title":"1","readmore_limit":"100","show_icons":"1","show_print_icon":"1","show_email_icon":"1","show_hits":"1","show_noauth":"0","show_publishing_options":"1","show_article_options":"1","show_urls_images_frontend":"0","show_urls_images_backend":"1","targeta":0,"targetb":0,"targetc":0,"float_intro":"left","float_fulltext":"left","category_layout":"_:blog","show_category_title":"0","show_description":"0","show_description_image":"0","maxLevel":"1","show_empty_categories":"0","show_no_articles":"1","show_subcat_desc":"1","show_cat_num_articles":"0","show_base_description":"1","maxLevelcat":"-1","show_empty_categories_cat":"0","show_subcat_desc_cat":"1","show_cat_num_articles_cat":"1","num_leading_articles":"1","num_intro_articles":"4","num_columns":"2","num_links":"4","multi_column_order":"0","show_subcategory_content":"0","show_pagination_limit":"1","filter_field":"hide","show_headings":"1","list_show_date":"0","date_format":"","list_show_hits":"1","list_show_author":"1","orderby_pri":"order","orderby_sec":"rdate","order_date":"published","show_pagination":"2","show_pagination_results":"1","show_feed_link":"1","feed_summary":"0"}',,,'0','0000-00-00 00:00:00','0','0'
+'23','com_config','component','com_config',,'1','1','0','1','{"legacy":false,"name":"com_config","type":"component","creationDate":"April 2006","author":"Joomla! Project","copyright":"(C) 2005 - 2012 Open Source Matters. All rights reserved.\t","authorEmail":"admin@joomla.org","authorUrl":"www.joomla.org","version":"1.7.0","description":"COM_CONFIG_XML_DESCRIPTION","group":""}','{"filters":{"1":{"filter_type":"NH","filter_tags":"","filter_attributes":""},"6":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"7":{"filter_type":"NONE","filter_tags":"","filter_attributes":""},"2":{"filter_type":"NH","filter_tags":"","filter_attributes":""},"3":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"4":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"5":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"10":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"12":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"8":{"filter_type":"NONE","filter_tags":"","filter_attributes":""}}}',,,'0','0000-00-00 00:00:00','0','0'
+'24','com_redirect','component','com_redirect',,'1','1','0','1',,'{}',,,'0','0000-00-00 00:00:00','0','0'
+'25','com_users','component','com_users',,'1','1','0','1',,'{"allowUserRegistration":"1","new_usertype":"2","useractivation":"1","frontend_userparams":"1","mailSubjectPrefix":"","mailBodySuffix":""}',,,'0','0000-00-00 00:00:00','0','0'
+'27','com_finder','component','com_finder',,'1','1','0','0',,'{"show_description":"1","description_length":255,"allow_empty_query":"0","show_url":"1","show_advanced":"1","expand_advanced":"0","show_date_filters":"0","highlight_terms":"1","opensearch_name":"","opensearch_description":"","batch_size":"50","memory_table_limit":30000,"title_multiplier":"1.7","text_multiplier":"0.7","meta_multiplier":"1.2","path_multiplier":"2.0","misc_multiplier":"0.3","stemmer":"snowball"}',,,'0','0000-00-00 00:00:00','0','0'
+'28','com_joomlaupdate','component','com_joomlaupdate',,'1','1','0','1','{"legacy":false,"name":"com_joomlaupdate","type":"component","creationDate":"February 2012","author":"Joomla! Project","copyright":"(C) 2005 - 2012 Open Source Matters. All rights reserved.","authorEmail":"admin@joomla.org","authorUrl":"www.joomla.org","version":"2.5.0","description":"COM_JOOMLAUPDATE_XML_DESCRIPTION","group":""}','{}',,,'0','0000-00-00 00:00:00','0','0'
+'100','PHPMailer','library','phpmailer',,'0','1','1','1',,,,,'0','0000-00-00 00:00:00','0','0'
+'101','SimplePie','library','simplepie',,'0','1','1','1',,,,,'0','0000-00-00 00:00:00','0','0'
+'102','phputf8','library','phputf8',,'0','1','1','1',,,,,'0','0000-00-00 00:00:00','0','0'
+'103','Joomla! Platform','library','joomla',,'0','1','1','1','{"legacy":false,"name":"Joomla! Platform","type":"library","creationDate":"2008","author":"Joomla! Project","copyright":"Copyright (C) 2005 - 2012 Open Source Matters. All rights reserved.","authorEmail":"admin@joomla.org","authorUrl":"http:\/\/www.joomla.org","version":"11.4","description":"LIB_JOOMLA_XML_DESCRIPTION","group":""}','{}',,,'0','0000-00-00 00:00:00','0','0'
+'200','mod_articles_archive','module','mod_articles_archive',,'0','1','1','1',,,,,'0','0000-00-00 00:00:00','0','0'
+'201','mod_articles_latest','module','mod_articles_latest',,'0','1','1','1',,,,,'0','0000-00-00 00:00:00','0','0'
+'202','mod_articles_popular','module','mod_articles_popular',,'0','1','1','0',,,,,'0','0000-00-00 00:00:00','0','0'
+'203','mod_banners','module','mod_banners',,'0','1','1','1',,,,,'0','0000-00-00 00:00:00','0','0'
+'204','mod_breadcrumbs','module','mod_breadcrumbs',,'0','1','1','1',,,,,'0','0000-00-00 00:00:00','0','0'
+'205','mod_custom','module','mod_custom',,'0','1','1','1',,,,,'0','0000-00-00 00:00:00','0','0'
+'206','mod_feed','module','mod_feed',,'0','1','1','1',,,,,'0','0000-00-00 00:00:00','0','0'
+'207','mod_footer','module','mod_footer',,'0','1','1','1',,,,,'0','0000-00-00 00:00:00','0','0'
+'208','mod_login','module','mod_login',,'0','1','1','1',,,,,'0','0000-00-00 00:00:00','0','0'
+'209','mod_menu','module','mod_menu',,'0','1','1','1',,,,,'0','0000-00-00 00:00:00','0','0'
+'210','mod_articles_news','module','mod_articles_news',,'0','1','1','0',,,,,'0','0000-00-00 00:00:00','0','0'
+'211','mod_random_image','module','mod_random_image',,'0','1','1','0',,,,,'0','0000-00-00 00:00:00','0','0'
+'212','mod_related_items','module','mod_related_items',,'0','1','1','0',,,,,'0','0000-00-00 00:00:00','0','0'
+'213','mod_search','module','mod_search',,'0','1','1','0',,,,,'0','0000-00-00 00:00:00','0','0'
+'214','mod_stats','module','mod_stats',,'0','1','1','0',,,,,'0','0000-00-00 00:00:00','0','0'
+'215','mod_syndicate','module','mod_syndicate',,'0','1','1','1',,,,,'0','0000-00-00 00:00:00','0','0'
+'216','mod_users_latest','module','mod_users_latest',,'0','1','1','1',,,,,'0','0000-00-00 00:00:00','0','0'
+'217','mod_weblinks','module','mod_weblinks',,'0','1','1','0',,,,,'0','0000-00-00 00:00:00','0','0'
+'218','mod_whosonline','module','mod_whosonline',,'0','1','1','0',,,,,'0','0000-00-00 00:00:00','0','0'
+'219','mod_wrapper','module','mod_wrapper',,'0','1','1','0',,,,,'0','0000-00-00 00:00:00','0','0'
+'220','mod_articles_category','module','mod_articles_category',,'0','1','1','1',,,,,'0','0000-00-00 00:00:00','0','0'
+'221','mod_articles_categories','module','mod_articles_categories',,'0','1','1','1',,,,,'0','0000-00-00 00:00:00','0','0'
+'222','mod_languages','module','mod_languages',,'0','1','1','1',,,,,'0','0000-00-00 00:00:00','0','0'
+'223','mod_finder','module','mod_finder',,'0','1','0','0',,,,,'0','0000-00-00 00:00:00','0','0'
+'300','mod_custom','module','mod_custom',,'1','1','1','1',,,,,'0','0000-00-00 00:00:00','0','0'
+'301','mod_feed','module','mod_feed',,'1','1','1','0',,,,,'0','0000-00-00 00:00:00','0','0'
+'302','mod_latest','module','mod_latest',,'1','1','1','0',,,,,'0','0000-00-00 00:00:00','0','0'
+'303','mod_logged','module','mod_logged',,'1','1','1','0',,,,,'0','0000-00-00 00:00:00','0','0'
+'304','mod_login','module','mod_login',,'1','1','1','1',,,,,'0','0000-00-00 00:00:00','0','0'
+'305','mod_menu','module','mod_menu',,'1','1','1','0',,,,,'0','0000-00-00 00:00:00','0','0'
+'307','mod_popular','module','mod_popular',,'1','1','1','0',,,,,'0','0000-00-00 00:00:00','0','0'
+'308','mod_quickicon','module','mod_quickicon',,'1','1','1','1',,,,,'0','0000-00-00 00:00:00','0','0'
+'309','mod_status','module','mod_status',,'1','1','1','0',,,,,'0','0000-00-00 00:00:00','0','0'
+'310','mod_submenu','module','mod_submenu',,'1','1','1','0',,,,,'0','0000-00-00 00:00:00','0','0'
+'311','mod_title','module','mod_title',,'1','1','1','0',,,,,'0','0000-00-00 00:00:00','0','0'
+'312','mod_toolbar','module','mod_toolbar',,'1','1','1','1',,,,,'0','0000-00-00 00:00:00','0','0'
+'313','mod_multilangstatus','module','mod_multilangstatus',,'1','1','1','0','{"legacy":false,"name":"mod_multilangstatus","type":"module","creationDate":"September 2011","author":"Joomla! Project","copyright":"Copyright (C) 2005 - 2012 Open Source Matters. All rights reserved.","authorEmail":"admin@joomla.org","authorUrl":"www.joomla.org","version":"1.7.1","description":"MOD_MULTILANGSTATUS_XML_DESCRIPTION","group":""}','{"cache":"0"}',,,'0','0000-00-00 00:00:00','0','0'
+'314','mod_version','module','mod_version',,'1','1','1','0','{"legacy":false,"name":"mod_version","type":"module","creationDate":"January 2012","author":"Joomla! Project","copyright":"Copyright (C) 2005 - 2012 Open Source Matters. All rights reserved.","authorEmail":"admin@joomla.org","authorUrl":"www.joomla.org","version":"2.5.0","description":"MOD_VERSION_XML_DESCRIPTION","group":""}','{"format":"short","product":"1","cache":"0"}',,,'0','0000-00-00 00:00:00','0','0'
+'400','plg_authentication_gmail','plugin','gmail','authentication','0','0','1','0',,'{"applysuffix":"0","suffix":"","verifypeer":"1","user_blacklist":""}',,,'0','0000-00-00 00:00:00','1','0'
+'401','plg_authentication_joomla','plugin','joomla','authentication','0','1','1','1',,'{}',,,'0','0000-00-00 00:00:00','0','0'
+'402','plg_authentication_ldap','plugin','ldap','authentication','0','0','1','0',,'{"host":"","port":"389","use_ldapV3":"0","negotiate_tls":"0","no_referrals":"0","auth_method":"bind","base_dn":"","search_string":"","users_dn":"","username":"admin","password":"bobby7","ldap_fullname":"fullName","ldap_email":"mail","ldap_uid":"uid"}',,,'0','0000-00-00 00:00:00','3','0'
+'404','plg_content_emailcloak','plugin','emailcloak','content','0','1','1','0',,'{"mode":"1"}',,,'0','0000-00-00 00:00:00','1','0'
+'405','plg_content_geshi','plugin','geshi','content','0','0','1','0',,'{}',,,'0','0000-00-00 00:00:00','2','0'
+'406','plg_content_loadmodule','plugin','loadmodule','content','0','1','1','0','{"legacy":false,"name":"plg_content_loadmodule","type":"plugin","creationDate":"November 2005","author":"Joomla! Project","copyright":"Copyright (C) 2005 - 2012 Open Source Matters. All rights reserved.","authorEmail":"admin@joomla.org","authorUrl":"www.joomla.org","version":"1.7.0","description":"PLG_LOADMODULE_XML_DESCRIPTION","group":""}','{"style":"xhtml"}',,,'0','2011-09-18 15:22:50','0','0'
+'407','plg_content_pagebreak','plugin','pagebreak','content','0','1','1','1',,'{"title":"1","multipage_toc":"1","showall":"1"}',,,'0','0000-00-00 00:00:00','4','0'
+'408','plg_content_pagenavigation','plugin','pagenavigation','content','0','1','1','1',,'{"position":"1"}',,,'0','0000-00-00 00:00:00','5','0'
+'409','plg_content_vote','plugin','vote','content','0','1','1','1',,'{}',,,'0','0000-00-00 00:00:00','6','0'
+'410','plg_editors_codemirror','plugin','codemirror','editors','0','1','1','1',,'{"linenumbers":"0","tabmode":"indent"}',,,'0','0000-00-00 00:00:00','1','0'
+'411','plg_editors_none','plugin','none','editors','0','1','1','1',,'{}',,,'0','0000-00-00 00:00:00','2','0'
+'412','plg_editors_tinymce','plugin','tinymce','editors','0','1','1','1','{"legacy":false,"name":"plg_editors_tinymce","type":"plugin","creationDate":"2005-2011","author":"Moxiecode Systems AB","copyright":"Moxiecode Systems AB","authorEmail":"N\/A","authorUrl":"tinymce.moxiecode.com\/","version":"3.4.7","description":"PLG_TINY_XML_DESCRIPTION","group":""}','{"mode":"1","skin":"0","entity_encoding":"raw","lang_mode":"0","lang_code":"en","text_direction":"ltr","content_css":"1","content_css_custom":"","relative_urls":"1","newlines":"0","invalid_elements":"script,applet,iframe","extended_elements":"","toolbar":"top","toolbar_align":"left","html_height":"550","html_width":"750","resizing":"true","resize_horizontal":"false","element_path":"1","fonts":"1","paste":"1","searchreplace":"1","insertdate":"1","format_date":"%Y-%m-%d","inserttime":"1","format_time":"%H:%M:%S","colors":"1","table":"1","smilies":"1","media":"1","hr":"1","directionality":"1","fullscreen":"1","style":"1","layer":"1","xhtmlxtras":"1","visualchars":"1","nonbreaking":"1","template":"1","blockquote":"1","wordcount":"1","advimage":"1","advlink":"1","advlist":"1","autosave":"1","contextmenu":"1","inlinepopups":"1","custom_plugin":"","custom_button":""}',,,'0','0000-00-00 00:00:00','3','0'
+'413','plg_editors-xtd_article','plugin','article','editors-xtd','0','1','1','1',,'{}',,,'0','0000-00-00 00:00:00','1','0'
+'414','plg_editors-xtd_image','plugin','image','editors-xtd','0','1','1','0',,'{}',,,'0','0000-00-00 00:00:00','2','0'
+'415','plg_editors-xtd_pagebreak','plugin','pagebreak','editors-xtd','0','1','1','0',,'{}',,,'0','0000-00-00 00:00:00','3','0'
+'416','plg_editors-xtd_readmore','plugin','readmore','editors-xtd','0','1','1','0',,'{}',,,'0','0000-00-00 00:00:00','4','0'
+'417','plg_search_categories','plugin','categories','search','0','1','1','0',,'{"search_limit":"50","search_content":"1","search_archived":"1"}',,,'0','0000-00-00 00:00:00','0','0'
+'418','plg_search_contacts','plugin','contacts','search','0','1','1','0',,'{"search_limit":"50","search_content":"1","search_archived":"1"}',,,'0','0000-00-00 00:00:00','0','0'
+'419','plg_search_content','plugin','content','search','0','1','1','0',,'{"search_limit":"50","search_content":"1","search_archived":"1"}',,,'0','0000-00-00 00:00:00','0','0'
+'420','plg_search_newsfeeds','plugin','newsfeeds','search','0','1','1','0',,'{"search_limit":"50","search_content":"1","search_archived":"1"}',,,'0','0000-00-00 00:00:00','0','0'
+'421','plg_search_weblinks','plugin','weblinks','search','0','1','1','0',,'{"search_limit":"50","search_content":"1","search_archived":"1"}',,,'0','0000-00-00 00:00:00','0','0'
+'422','plg_system_languagefilter','plugin','languagefilter','system','0','0','1','1',,'{}',,,'0','0000-00-00 00:00:00','1','0'
+'423','plg_system_p3p','plugin','p3p','system','0','1','1','1',,'{"headers":"NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"}',,,'0','0000-00-00 00:00:00','2','0'
+'424','plg_system_cache','plugin','cache','system','0','0','1','1',,'{"browsercache":"0","cachetime":"15"}',,,'0','0000-00-00 00:00:00','9','0'
+'425','plg_system_debug','plugin','debug','system','0','1','1','0',,'{"profile":"1","queries":"1","memory":"1","language_files":"1","language_strings":"1","strip-first":"1","strip-prefix":"","strip-suffix":""}',,,'0','0000-00-00 00:00:00','4','0'
+'426','plg_system_log','plugin','log','system','0','1','1','1',,'{}',,,'0','0000-00-00 00:00:00','5','0'
+'427','plg_system_redirect','plugin','redirect','system','0','1','1','1',,'{}',,,'0','0000-00-00 00:00:00','6','0'
+'428','plg_system_remember','plugin','remember','system','0','1','1','1',,'{}',,,'0','0000-00-00 00:00:00','7','0'
+'429','plg_system_sef','plugin','sef','system','0','1','1','0',,'{}',,,'0','0000-00-00 00:00:00','8','0'
+'430','plg_system_logout','plugin','logout','system','0','1','1','1',,'{}',,,'0','0000-00-00 00:00:00','3','0'
+'431','plg_user_contactcreator','plugin','contactcreator','user','0','0','1','1',,'{"autowebpage":"","category":"34","autopublish":"0"}',,,'0','0000-00-00 00:00:00','1','0'
+'432','plg_user_joomla','plugin','joomla','user','0','1','1','0',,'{"autoregister":"1"}',,,'0','0000-00-00 00:00:00','2','0'
+'433','plg_user_profile','plugin','profile','user','0','0','1','1',,'{"register-require_address1":"1","register-require_address2":"1","register-require_city":"1","register-require_region":"1","register-require_country":"1","register-require_postal_code":"1","register-require_phone":"1","register-require_website":"1","register-require_favoritebook":"1","register-require_aboutme":"1","register-require_tos":"1","register-require_dob":"1","profile-require_address1":"1","profile-require_address2":"1","profile-require_city":"1","profile-require_region":"1","profile-require_country":"1","profile-require_postal_code":"1","profile-require_phone":"1","profile-require_website":"1","profile-require_favoritebook":"1","profile-require_aboutme":"1","profile-require_tos":"1","profile-require_dob":"1"}',,,'0','0000-00-00 00:00:00','0','0'
+'434','plg_extension_joomla','plugin','joomla','extension','0','1','1','1',,'{}',,,'0','0000-00-00 00:00:00','1','0'
+'435','plg_content_joomla','plugin','joomla','content','0','1','1','0',,'{}',,,'0','0000-00-00 00:00:00','0','0'
+'436','plg_system_languagecode','plugin','languagecode','system','0','0','1','0',,'{}',,,'0','0000-00-00 00:00:00','10','0'
+'437','plg_quickicon_joomlaupdate','plugin','joomlaupdate','quickicon','0','1','1','1',,'{}',,,'0','0000-00-00 00:00:00','0','0'
+'438','plg_quickicon_extensionupdate','plugin','extensionupdate','quickicon','0','1','1','1',,'{}',,,'0','0000-00-00 00:00:00','0','0'
+'439','plg_captcha_recaptcha','plugin','recaptcha','captcha','0','1','1','0','{}','{"public_key":"","private_key":"","theme":"clean"}',,,'0','0000-00-00 00:00:00','0','0'
+'440','plg_system_highlight','plugin','highlight','system','0','1','1','0',,'{}',,,'0','0000-00-00 00:00:00','7','0'
+'441','plg_content_finder','plugin','finder','content','0','0','1','0','{"legacy":false,"name":"plg_content_finder","type":"plugin","creationDate":"December 2011","author":"Joomla! Project","copyright":"Copyright (C) 2005 - 2012 Open Source Matters. All rights reserved.","authorEmail":"admin@joomla.org","authorUrl":"www.joomla.org","version":"1.7.0","description":"PLG_CONTENT_FINDER_XML_DESCRIPTION","group":""}','{}',,,'0','0000-00-00 00:00:00','0','0'
+'442','plg_finder_categories','plugin','categories','finder','0','1','1','0',,'{}',,,'0','0000-00-00 00:00:00','1','0'
+'443','plg_finder_contacts','plugin','contacts','finder','0','1','1','0',,'{}',,,'0','0000-00-00 00:00:00','2','0'
+'444','plg_finder_content','plugin','content','finder','0','1','1','0',,'{}',,,'0','0000-00-00 00:00:00','3','0'
+'445','plg_finder_newsfeeds','plugin','newsfeeds','finder','0','1','1','0',,'{}',,,'0','0000-00-00 00:00:00','4','0'
+'446','plg_finder_weblinks','plugin','weblinks','finder','0','1','1','0',,'{}',,,'0','0000-00-00 00:00:00','5','0'
+'500','atomic','template','atomic',,'0','1','1','0','{"legacy":false,"name":"atomic","type":"template","creationDate":"10\/10\/09","author":"Ron Severdia","copyright":"Copyright (C) 2005 - 2012 Open Source Matters, Inc. All rights reserved.","authorEmail":"contact@kontentdesign.com","authorUrl":"http:\/\/www.kontentdesign.com","version":"1.6.0","description":"TPL_ATOMIC_XML_DESCRIPTION","group":""}','{}',,,'0','0000-00-00 00:00:00','0','0'
+'502','bluestork','template','bluestork',,'1','1','1','0','{"legacy":false,"name":"bluestork","type":"template","creationDate":"07\/02\/09","author":"Joomla! Project","copyright":"Copyright (C) 2005 - 2012 Open Source Matters, Inc. All rights reserved.","authorEmail":"admin@joomla.org","authorUrl":"http:\/\/www.joomla.org","version":"1.6.0","description":"TPL_BLUESTORK_XML_DESCRIPTION","group":""}','{"useRoundedCorners":"1","showSiteName":"0","textBig":"0","highContrast":"0"}',,,'0','0000-00-00 00:00:00','0','0'
+'503','beez_20','template','beez_20',,'0','1','1','0','{"legacy":false,"name":"beez_20","type":"template","creationDate":"25 November 2009","author":"Angie Radtke","copyright":"Copyright (C) 2005 - 2012 Open Source Matters, Inc. All rights reserved.","authorEmail":"a.radtke@derauftritt.de","authorUrl":"http:\/\/www.der-auftritt.de","version":"1.6.0","description":"TPL_BEEZ2_XML_DESCRIPTION","group":""}','{"wrapperSmall":"53","wrapperLarge":"72","sitetitle":"","sitedescription":"","navposition":"center","templatecolor":"nature"}',,,'0','0000-00-00 00:00:00','0','0'
+'504','hathor','template','hathor',,'1','1','1','0','{"legacy":false,"name":"hathor","type":"template","creationDate":"May 2010","author":"Andrea Tarr","copyright":"Copyright (C) 2005 - 2012 Open Source Matters, Inc. All rights reserved.","authorEmail":"hathor@tarrconsulting.com","authorUrl":"http:\/\/www.tarrconsulting.com","version":"1.6.0","description":"TPL_HATHOR_XML_DESCRIPTION","group":""}','{"showSiteName":"0","colourChoice":"0","boldText":"0"}',,,'0','0000-00-00 00:00:00','0','0'
+'505','beez5','template','beez5',,'0','1','1','0','{"legacy":false,"name":"beez5","type":"template","creationDate":"21 May 2010","author":"Angie Radtke","copyright":"Copyright (C) 2005 - 2012 Open Source Matters, Inc. All rights reserved.","authorEmail":"a.radtke@derauftritt.de","authorUrl":"http:\/\/www.der-auftritt.de","version":"1.6.0","description":"TPL_BEEZ5_XML_DESCRIPTION","group":""}','{"wrapperSmall":"53","wrapperLarge":"72","sitetitle":"","sitedescription":"","navposition":"center","html5":"0"}',,,'0','0000-00-00 00:00:00','0','0'
+'600','English (United Kingdom)','language','en-GB',,'0','1','1','1',,,,,'0','0000-00-00 00:00:00','0','0'
+'601','English (United Kingdom)','language','en-GB',,'1','1','1','1',,,,,'0','0000-00-00 00:00:00','0','0'
+'700','Joomla! CMS','file','joomla',,'0','1','1','1','{"legacy":false,"name":"files_joomla","type":"file","creationDate":"June 2012","author":"Joomla!","copyright":"(C) 2005 - 2012 Open Source Matters. All rights reserved","authorEmail":"admin@joomla.org","authorUrl":"www.joomla.org","version":"2.5.5","description":"FILES_JOOMLA_XML_DESCRIPTION","group":""}',,,,'0','0000-00-00 00:00:00','0','0'
+'800','joomla','package','pkg_joomla',,'0','1','1','1',,,,,'0','0000-00-00 00:00:00','0','0'
diff -r -N -U 3 mod_menu/unit-tests/index.html mod_menuwithitemselection/unit-tests/index.html
--- mod_menu/unit-tests/index.html	1970-01-01 01:00:00.000000000 +0100
+++ mod_menuwithitemselection/unit-tests/index.html	2011-06-19 15:39:37.000000000 +0200
@@ -0,0 +1 @@
+<!DOCTYPE html><title></title>
diff -r -N -U 3 mod_menu/unit-tests/menu.csv mod_menuwithitemselection/unit-tests/menu.csv
--- mod_menu/unit-tests/menu.csv	1970-01-01 01:00:00.000000000 +0100
+++ mod_menuwithitemselection/unit-tests/menu.csv	2012-06-07 18:50:15.000000000 +0200
@@ -0,0 +1,144 @@
+'id','menutype','title','alias','note','path','link','type','published','parent_id','level','component_id','ordering','checked_out','checked_out_time','browserNav','access','img','template_style_id','params','lft','rgt','home','language','client_id'
+'1',,'Menu_Item_Root','root',,,,,'1','0','0','0','0','0','0000-00-00 00:00:00','0','0',,'0',,'0','283','0','*','0'
+'2','menu','com_banners','Banners',,'Banners','index.php?option=com_banners','component','0','1','1','4','0','0','0000-00-00 00:00:00','0','0','class:banners','0',,'13','22','0','*','1'
+'3','menu','com_banners','Banners',,'Banners/Banners','index.php?option=com_banners','component','0','2','2','4','0','0','0000-00-00 00:00:00','0','0','class:banners','0',,'14','15','0','*','1'
+'4','menu','com_banners_categories','Categories',,'Banners/Categories','index.php?option=com_categories&extension=com_banners','component','0','2','2','6','0','0','0000-00-00 00:00:00','0','0','class:banners-cat','0',,'16','17','0','*','1'
+'5','menu','com_banners_clients','Clients',,'Banners/Clients','index.php?option=com_banners&view=clients','component','0','2','2','4','0','0','0000-00-00 00:00:00','0','0','class:banners-clients','0',,'18','19','0','*','1'
+'6','menu','com_banners_tracks','Tracks',,'Banners/Tracks','index.php?option=com_banners&view=tracks','component','0','2','2','4','0','0','0000-00-00 00:00:00','0','0','class:banners-tracks','0',,'20','21','0','*','1'
+'7','menu','com_contact','Contacts',,'Contacts','index.php?option=com_contact','component','0','1','1','8','0','0','0000-00-00 00:00:00','0','0','class:contact','0',,'23','28','0','*','1'
+'8','menu','com_contact','Contacts',,'Contacts/Contacts','index.php?option=com_contact','component','0','7','2','8','0','0','0000-00-00 00:00:00','0','0','class:contact','0',,'24','25','0','*','1'
+'9','menu','com_contact_categories','Categories',,'Contacts/Categories','index.php?option=com_categories&extension=com_contact','component','0','7','2','6','0','0','0000-00-00 00:00:00','0','0','class:contact-cat','0',,'26','27','0','*','1'
+'10','menu','com_messages','Messaging',,'Messaging','index.php?option=com_messages','component','0','1','1','15','0','0','0000-00-00 00:00:00','0','0','class:messages','0',,'29','34','0','*','1'
+'11','menu','com_messages_add','New Private Message',,'Messaging/New Private Message','index.php?option=com_messages&task=message.add','component','0','10','2','15','0','0','0000-00-00 00:00:00','0','0','class:messages-add','0',,'30','31','0','*','1'
+'12','menu','com_messages_read','Read Private Message',,'Messaging/Read Private Message','index.php?option=com_messages','component','0','10','2','15','0','0','0000-00-00 00:00:00','0','0','class:messages-read','0',,'32','33','0','*','1'
+'13','menu','com_newsfeeds','News Feeds',,'News Feeds','index.php?option=com_newsfeeds','component','0','1','1','17','0','0','0000-00-00 00:00:00','0','0','class:newsfeeds','0',,'35','40','0','*','1'
+'14','menu','com_newsfeeds_feeds','Feeds',,'News Feeds/Feeds','index.php?option=com_newsfeeds','component','0','13','2','17','0','0','0000-00-00 00:00:00','0','0','class:newsfeeds','0',,'36','37','0','*','1'
+'15','menu','com_newsfeeds_categories','Categories',,'News Feeds/Categories','index.php?option=com_categories&extension=com_newsfeeds','component','0','13','2','6','0','0','0000-00-00 00:00:00','0','0','class:newsfeeds-cat','0',,'38','39','0','*','1'
+'16','menu','com_redirect','Redirect',,'Redirect','index.php?option=com_redirect','component','0','1','1','24','0','0','0000-00-00 00:00:00','0','0','class:redirect','0',,'53','54','0','*','1'
+'17','menu','com_search','Basic Search',,'Basic Search','index.php?option=com_search','component','0','1','1','19','0','0','0000-00-00 00:00:00','0','0','class:search','0',,'43','44','0','*','1'
+'18','menu','com_weblinks','Weblinks',,'Weblinks','index.php?option=com_weblinks','component','0','1','1','21','0','0','0000-00-00 00:00:00','0','0','class:weblinks','0',,'47','52','0','*','1'
+'19','menu','com_weblinks_links','Links',,'Weblinks/Links','index.php?option=com_weblinks','component','0','18','2','21','0','0','0000-00-00 00:00:00','0','0','class:weblinks','0',,'48','49','0','*','1'
+'20','menu','com_weblinks_categories','Categories',,'Weblinks/Categories','index.php?option=com_categories&extension=com_weblinks','component','0','18','2','6','0','0','0000-00-00 00:00:00','0','0','class:weblinks-cat','0',,'50','51','0','*','1'
+'21','menu','com_finder','Smart Search',,'Smart Search','index.php?option=com_finder','component','0','1','1','27','0','0','0000-00-00 00:00:00','0','0','class:finder','0',,'41','42','0','*','1'
+'22','menu','com_joomlaupdate','Joomla! Update',,'Joomla! Update','index.php?option=com_joomlaupdate','component','0','1','1','28','0','0','0000-00-00 00:00:00','0','0','class:joomlaupdate','0',,'41','42','0','*','1'
+'201','usermenu','Your Profile','your-profile',,'your-profile','index.php?option=com_users&view=profile','component','1','1','1','25','0','0','0000-00-00 00:00:00','0','2',,'0','{"menu-anchor_title":"","menu-anchor_css":"","menu_image":"","menu_text":1,"page_title":"","show_page_heading":0,"page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','237','238','0','*','0'
+'207','top','Joomla.org','joomlaorg',,'joomlaorg','http://joomla.org','url','1','1','1','0','0','0','0000-00-00 00:00:00','0','1',,'0','{"menu-anchor_title":"","menu-anchor_css":"","menu_image":""}','235','236','0','*','0'
+'227','aboutjoomla','Weblinks Categories','weblinks-categories',,'using-joomla/extensions/components/weblinks-component/weblinks-categories','index.php?option=com_weblinks&view=categories&id=18','component','1','265','5','21','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_base_description":"","categories_description":"","maxLevelcat":"-1","show_empty_categories_cat":"","show_subcat_desc_cat":"","show_cat_num_links_cat":"","show_category_title":"","show_description":"","show_description_image":"","maxLevel":"-1","show_empty_categories":"","show_subcat_desc":"","show_cat_num_links":"","show_pagination_limit":"","show_headings":"","show_link_description":"","show_link_hits":"","show_pagination":"","show_pagination_results":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","page_title":"","show_page_heading":0,"page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','89','90','0','*','0'
+'229','aboutjoomla','Single Contact','single-contact',,'using-joomla/extensions/components/contact-component/single-contact','index.php?option=com_contact&view=contact&id=1','component','1','270','5','8','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_category_crumb":"","presentation_style":"","show_contact_category":"","show_contact_list":"","show_name":"","show_position":"","show_email":"","show_street_address":"","show_suburb":"","show_state":"","show_postcode":"","show_country":"","show_telephone":"","show_mobile":"","show_fax":"","show_webpage":"","show_misc":"","show_image":"","allow_vcard":"","show_articles":"","show_links":"","linka_name":"","linkb_name":"","linkc_name":"","linkd_name":"","linke_name":"","show_email_form":"","show_email_copy":"","banned_email":"","banned_subject":"","banned_text":"","validate_session":"","custom_reply":"","redirect":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','79','80','0','*','0'
+'233','mainmenu','Login','login',,'login','index.php?option=com_users&view=login','component','1','1','1','25','0','0','0000-00-00 00:00:00','0','1',,'0','{"menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','11','12','0','*','0'
+'234','parks','Park Blog','park-blog',,'park-blog','index.php?option=com_content&view=category&layout=blog&id=27','component','1','1','1','22','0','0','0000-00-00 00:00:00','0','1',,'114','{"maxLevel":"","show_empty_categories":"","show_description":"1","show_description_image":"1","show_category_title":"","show_cat_num_articles":"","num_leading_articles":"1","num_intro_articles":"4","num_columns":"1","num_links":"4","multi_column_order":"","orderby_pri":"","orderby_sec":"","order_date":"","show_pagination":"2","show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_readmore":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","show_feed_link":"1","feed_summary":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','241','242','0','en-GB','0'
+'238','mainmenu','Sample Sites','sample-sites',,'sample-sites','index.php?option=com_content&view=article&id=38','component','1','1','1','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"0","link_category":"","show_parent_category":"0","link_parent_category":"","show_author":"0","link_author":"","show_create_date":"0","show_modify_date":"0","show_publish_date":"0","show_item_navigation":"0","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"0","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','265','270','0','*','0'
+'242','parks','Write a Blog Post','write-a-blog-post',,'write-a-blog-post','index.php?option=com_content&view=form&layout=edit','component','1','1','1','22','0','0','0000-00-00 00:00:00','0','3',,'114','{"menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','243','244','0','en-GB','0'
+'243','parks','Parks Home','parks-home',,'parks-home','index.php?option=com_content&view=article&id=6','component','1','1','1','22','0','0','0000-00-00 00:00:00','0','1',,'114','{"show_noauth":"","show_title":"0","link_titles":"","show_intro":"","show_category":"0","link_category":"0","show_parent_category":"","link_parent_category":"","show_author":"0","link_author":"","show_create_date":"0","show_modify_date":"0","show_publish_date":"0","show_item_navigation":"0","show_icons":"","show_print_icon":"0","show_email_icon":"0","show_hits":"0","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','239','240','0','en-GB','0'
+'244','parks','Image Gallery','image-gallery',,'image-gallery','index.php?option=com_content&view=categories&id=28','component','1','1','1','22','0','0','0000-00-00 00:00:00','0','1',,'114','{"show_base_description":"1","categories_description":"","maxLevelcat":"","show_empty_categories_cat":"","show_subcat_desc_cat":"","show_cat_num_articles_cat":"","drill_down_layout":"1","show_category_title":"","show_description":"1","show_description_image":"1","maxLevel":"-1","show_empty_categories":"","show_subcat_desc":"","show_cat_num_articles":"","num_leading_articles":"1","num_intro_articles":"4","num_columns":"2","num_links":"4","multi_column_order":"","orderby_pri":"","orderby_sec":"","order_date":"","show_pagination":"","show_pagination_results":"","show_pagination_limit":"","filter_field":"","show_headings":"","list_show_date":"","date_format":"","list_show_hits":"","list_show_author":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_readmore":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","show_noauth":"","show_feed_link":"","feed_summary":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","page_title":"","show_page_heading":0,"page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','245','250','0','en-GB','0'
+'249','aboutjoomla','Submit a Weblink','submit-a-weblink',,'using-joomla/extensions/components/weblinks-component/submit-a-weblink','index.php?option=com_weblinks&view=form&layout=edit','component','1','265','5','21','0','0','0000-00-00 00:00:00','0','3',,'0','{"menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','85','86','0','*','0'
+'251','aboutjoomla','Contact Categories','contact-categories',,'using-joomla/extensions/components/contact-component/contact-categories','index.php?option=com_contact&view=categories&id=16','component','1','270','5','8','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_base_description":"","categories_description":"","maxLevel":"-1","show_empty_categories":"","show_description":"","show_description_image":"","show_cat_num_articles":"","display_num":"","show_headings":"","filter_field":"","show_pagination":"","show_noauth":"","presentation_style":"sliders","show_name":"","show_position":"","show_email":"","show_street_address":"","show_suburb":"","show_state":"","show_postcode":"","show_country":"","show_telephone":"","show_mobile":"","show_fax":"","show_webpage":"","show_misc":"","show_image":"","allow_vcard":"","show_articles":"","show_links":"1","linka_name":"","linkb_name":"","linkc_name":"","linkd_name":"","linke_name":"","show_email_form":"","show_email_copy":"","banned_email":"","banned_subject":"","banned_text":"","validate_session":"","custom_reply":"","redirect":"","show_feed_link":"","feed_summary":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','75','76','0','*','0'
+'252','aboutjoomla','News Feed Categories','new-feed-categories',,'using-joomla/extensions/components/news-feeds-component/new-feed-categories','index.php?option=com_newsfeeds&view=categories&id=0','component','1','267','5','17','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_base_description":"1","categories_description":"Because this links to the root category the "uncategorised" category is displayed. ","maxLevel":"-1","show_empty_categories":"1","show_description":"1","show_description_image":"1","show_cat_num_articles":"1","display_num":"","show_headings":"","orderby_pri":"","orderby_sec":"","order_date":"","show_pagination":"","show_noauth":"","show_feed_image":"","show_feed_description":"","show_item_description":"","feed_character_count":"0","show_feed_link":"","feed_summary":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','93','94','0','*','0'
+'253','aboutjoomla','News Feed Category','news-feed-category',,'using-joomla/extensions/components/news-feeds-component/news-feed-category','index.php?option=com_newsfeeds&view=category&id=17','component','1','267','5','17','0','0','0000-00-00 00:00:00','0','1',,'0','{"maxLevel":"-1","show_empty_categories":"","show_description":"","show_description_image":"","show_cat_num_articles":"","display_num":"","show_headings":"","orderby_pri":"","orderby_sec":"","order_date":"","show_pagination":"","show_noauth":"","show_feed_image":"","show_feed_description":"","show_item_description":"","feed_character_count":"0","show_feed_link":"","feed_summary":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','97','98','0','*','0'
+'254','aboutjoomla','Single News Feed','single-news-feed',,'using-joomla/extensions/components/news-feeds-component/single-news-feed','index.php?option=com_newsfeeds&view=newsfeed&id=4','component','1','267','5','17','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_feed_image":"","show_feed_description":"","show_item_description":"","feed_character_count":"0","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','95','96','0','*','0'
+'255','aboutjoomla','Search','search',,'using-joomla/extensions/components/search-component/search','index.php?option=com_search&view=search','component','1','276','5','19','0','0','0000-00-00 00:00:00','0','1',,'0','{"search_areas":"1","show_date":"1","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','115','116','0','*','0'
+'256','aboutjoomla','Archived Articles','archived-articles',,'using-joomla/extensions/components/content-component/archived-articles','index.php?option=com_content&view=archive','component','1','266','5','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"orderby_sec":"","order_date":"","display_num":"","filter_field":"","show_category":"1","link_category":"1","show_title":"1","link_titles":"1","show_intro":"1","show_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_readmore":"","show_hits":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','69','70','0','*','0'
+'257','aboutjoomla','Single Article','single-article',,'using-joomla/extensions/components/content-component/single-article','index.php?option=com_content&view=article&id=6','component','1','266','5','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','59','60','0','*','0'
+'259','aboutjoomla','Article Category Blog','article-category-blog',,'using-joomla/extensions/components/content-component/article-category-blog','index.php?option=com_content&view=category&layout=blog&id=27','component','1','266','5','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"maxLevel":"","show_empty_categories":"","show_description":"0","show_description_image":"0","show_category_title":"","show_cat_num_articles":"","num_leading_articles":"1","num_intro_articles":"4","num_columns":"2","num_links":"4","multi_column_order":"","orderby_pri":"","orderby_sec":"","order_date":"","show_pagination":"2","show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_readmore":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","show_feed_link":"1","feed_summary":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','63','64','0','*','0'
+'260','aboutjoomla','Article Category List','article-category-list',,'using-joomla/extensions/components/content-component/article-category-list','index.php?option=com_content&view=category&id=19','component','1','266','5','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_category_title":"","show_description":"","show_description_image":"","maxLevel":"","show_empty_categories":"","show_no_articles":"","show_subcat_desc":"","show_cat_num_articles":"","page_subheading":"","show_pagination_limit":"","filter_field":"","show_headings":"","list_show_date":"","date_format":"","list_show_hits":"","list_show_author":"","orderby_pri":"","orderby_sec":"alpha","order_date":"","show_pagination":"","show_pagination_results":"","display_num":"10","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_vote":"","show_readmore":"","show_readmore_title":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","show_noauth":"","show_feed_link":"","feed_summary":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","menu_text":1,"page_title":"","show_page_heading":0,"page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','65','66','0','*','0'
+'262','aboutjoomla','Featured Articles','featured-articles',,'using-joomla/extensions/components/content-component/featured-articles','index.php?option=com_content&view=featured','component','1','266','5','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"maxLevel":"","show_empty_categories":"","show_description":"","show_description_image":"","show_cat_num_articles":"","num_leading_articles":"1","num_intro_articles":"4","num_columns":"2","num_links":"4","multi_column_order":"1","orderby_pri":"","orderby_sec":"front","order_date":"","show_pagination":"2","show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_readmore":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","show_feed_link":"1","feed_summary":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','67','68','0','*','0'
+'263','aboutjoomla','Submit Article','submit-article',,'using-joomla/extensions/components/content-component/submit-article','index.php?option=com_content&view=form&layout=edit','component','1','266','5','22','0','0','0000-00-00 00:00:00','0','3',,'0','{"menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','71','72','0','*','0'
+'265','aboutjoomla','Weblinks Component','weblinks-component',,'using-joomla/extensions/components/weblinks-component','index.php?option=com_content&view=article&id=54','component','1','268','4','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','84','91','0','*','0'
+'266','aboutjoomla','Content Component','content-component',,'using-joomla/extensions/components/content-component','index.php?option=com_content&view=article&id=10','component','1','268','4','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"article-allow_ratings":"","article-allow_comments":"","show_category":"","link_category":"","show_title":"","link_titles":"","show_intro":"","show_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','58','73','0','*','0'
+'267','aboutjoomla','News Feeds Component','news-feeds-component',,'using-joomla/extensions/components/news-feeds-component','index.php?option=com_content&view=article&id=60','component','1','268','4','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":1,"page_title":"Newsfeeds Categories View ","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','92','99','0','*','0'
+'268','aboutjoomla','Components','components',,'using-joomla/extensions/components','index.php?option=com_content&view=category&layout=blog&id=21','component','1','277','3','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_category_title":"","show_description":"1","show_description_image":"","maxLevel":"","show_empty_categories":"","show_subcat_desc":"","show_cat_num_articles":"","page_subheading":"","num_leading_articles":"0","num_intro_articles":"7","num_columns":"1","num_links":"0","multi_column_order":"","orderby_pri":"","orderby_sec":"order","order_date":"","show_pagination":"0","show_pagination_results":"","show_title":"","link_titles":"","show_intro":"","show_category":"0","link_category":"","show_parent_category":"0","link_parent_category":"","show_author":"0","link_author":"0","show_create_date":"0","show_modify_date":"0","show_publish_date":"0","show_item_navigation":"0","show_readmore":"","show_icons":"0","show_print_icon":"0","show_email_icon":"0","show_hits":"0","show_noauth":"","show_feed_link":"","feed_summary":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","page_title":"","show_page_heading":0,"page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','57','122','0','*','0'
+'270','aboutjoomla','Contact Component','contact-component',,'using-joomla/extensions/components/contact-component','index.php?option=com_content&view=article&id=9','component','1','268','4','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','74','83','0','*','0'
+'271','aboutjoomla','Users Component','users-component',,'using-joomla/extensions/components/users-component','index.php?option=com_content&view=article&id=52','component','1','268','4','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','100','113','0','*','0'
+'272','aboutjoomla','Article Categories','article-categories',,'using-joomla/extensions/components/content-component/article-categories','index.php?option=com_content&view=categories&id=14','component','1','266','5','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_base_description":"","categories_description":"","maxLevel":"-1","show_empty_categories":"","show_description":"","show_description_image":"","show_cat_num_articles":"","display_num":"","category_layout":"","show_headings":"","show_date":"","date_format":"","filter_field":"","num_leading_articles":"1","num_intro_articles":"4","num_columns":"2","num_links":"4","multi_column_order":"","orderby_pri":"","orderby_sec":"","order_date":"","show_pagination":"","show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_readmore":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","show_feed_link":"","feed_summary":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','61','62','0','*','0'
+'273','aboutjoomla','Administrator Components','administrator-components',,'using-joomla/extensions/components/administrator-components','index.php?option=com_content&view=article&id=1','component','1','268','4','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','120','121','0','*','0'
+'274','aboutjoomla','Weblinks Single Category','weblinks-single-category',,'using-joomla/extensions/components/weblinks-component/weblinks-single-category','index.php?option=com_weblinks&view=category&id=32','component','1','265','5','21','0','0','0000-00-00 00:00:00','0','1',,'0','{"maxLevel":"-1","show_empty_categories":"","show_description":"","show_description_image":"","show_cat_num_articles":"","display_num":"","show_headings":"","orderby_pri":"","show_pagination":"","show_noauth":"","show_feed_link":"1","feed_summary":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','87','88','0','*','0'
+'275','aboutjoomla','Contact Single Category','contact-single-category',,'using-joomla/extensions/components/contact-component/contact-single-category','index.php?option=com_contact&view=category&catid=26&id=36','component','1','270','5','8','0','0','0000-00-00 00:00:00','0','1',,'0','{"maxLevel":"-1","show_empty_categories":"","show_description":"","show_description_image":"","show_cat_num_articles":"","display_num":"20","show_headings":"","filter_field":"","show_pagination":"","show_noauth":"","presentation_style":"sliders","show_name":"","show_position":"","show_email":"","show_street_address":"","show_suburb":"","show_state":"","show_postcode":"","show_country":"","show_telephone":"","show_mobile":"","show_fax":"","show_webpage":"","show_misc":"","show_image":"","allow_vcard":"","show_articles":"","show_links":"1","linka_name":"","linkb_name":"","linkc_name":"","linkd_name":"","linke_name":"","show_email_form":"","show_email_copy":"","banned_email":"","banned_subject":"","banned_text":"","validate_session":"","custom_reply":"","redirect":"","show_feed_link":"1","feed_summary":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','77','78','0','*','0'
+'276','aboutjoomla','Search Components','search-component',,'using-joomla/extensions/components/search-component','index.php?option=com_content&view=article&id=39','component','1','268','4','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_vote":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","show_noauth":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","menu_text":1,"page_title":"","show_page_heading":0,"page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','114','119','0','*','0'
+'277','aboutjoomla','Using Extensions','extensions',,'using-joomla/extensions','index.php?option=com_content&view=categories&id=20','component','1','280','2','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_base_description":"1","categories_description":"","maxLevelcat":"1","show_empty_categories_cat":"1","show_subcat_desc_cat":"1","show_cat_num_articles_cat":"0","drill_down_layout":"0","show_category_title":"","show_description":"1","show_description_image":"1","maxLevel":"1","show_empty_categories":"1","show_subcat_desc":"","show_cat_num_articles":"","num_leading_articles":"1","num_intro_articles":"4","num_columns":"2","num_links":"4","multi_column_order":"","orderby_pri":"","orderby_sec":"","order_date":"","show_pagination":"","show_pagination_results":"","show_pagination_limit":"","filter_field":"","show_headings":"","list_show_date":"","date_format":"","list_show_hits":"","list_show_author":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_readmore":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","show_noauth":"","show_feed_link":"","feed_summary":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","page_title":"","show_page_heading":0,"page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','56','221','0','*','0'
+'278','aboutjoomla','The Joomla! Project','the-joomla-project',,'the-joomla-project','index.php?option=com_content&view=article&id=48','component','1','1','1','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_noauth":"","show_title":"1","link_titles":"","show_intro":"","show_category":"0","link_category":"","show_parent_category":"0","link_parent_category":"","show_author":"0","link_author":"","show_create_date":"0","show_modify_date":"0","show_publish_date":"0","show_item_navigation":"0","show_icons":"1","show_print_icon":"","show_email_icon":"","show_hits":"0","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','229','230','0','*','0'
+'279','aboutjoomla','The Joomla! Community','the-joomla-community',,'the-joomla-community','index.php?option=com_content&view=article&id=47','component','1','1','1','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_noauth":"","show_title":"","link_titles":"0","show_intro":"","show_category":"0","link_category":"","show_parent_category":"0","link_parent_category":"","show_author":"0","link_author":"","show_create_date":"0","show_modify_date":"0","show_publish_date":"0","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"0","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','231','232','0','*','0'
+'280','aboutjoomla','Using Joomla!','using-joomla',,'using-joomla','index.php?option=com_content&view=article&id=53','component','1','1','1','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_title":"1","link_titles":"0","show_intro":"1","show_category":"0","link_category":"","show_parent_category":"0","link_parent_category":"","show_author":"0","link_author":"","show_create_date":"0","show_modify_date":"0","show_publish_date":"0","show_item_navigation":"0","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"0","show_noauth":"0","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","page_title":"","show_page_heading":0,"page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','55','226','0','*','0'
+'281','aboutjoomla','Modules','modules',,'using-joomla/extensions/modules','index.php?option=com_content&view=category&id=22','component','1','277','3','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_category_title":"","show_description":"1","show_description_image":"1","maxLevel":"1","show_empty_categories":"1","show_no_articles":"0","show_subcat_desc":"1","show_cat_num_articles":"","page_subheading":"","show_pagination_limit":"","filter_field":"","show_headings":"","list_show_date":"","date_format":"","list_show_hits":"","list_show_author":"","show_pagination":"","show_pagination_results":"","show_title":"1","link_titles":"","show_intro":"","show_category":"0","link_category":"0","show_parent_category":"0","link_parent_category":"","show_author":"0","link_author":"0","show_create_date":"0","show_modify_date":"0","show_publish_date":"0","show_item_navigation":"0","show_vote":"","show_readmore":"0","show_icons":"0","show_print_icon":"0","show_email_icon":"0","show_hits":"0","show_noauth":"","show_feed_link":"","feed_summary":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","menu_text":1,"page_title":"","show_page_heading":0,"page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','123','182','0','*','0'
+'282','aboutjoomla','Templates','templates',,'using-joomla/extensions/templates','index.php?option=com_content&view=category&id=23','component','1','277','3','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_category_title":"","show_description":"1","show_description_image":"","maxLevel":"2","show_empty_categories":"1","show_no_articles":"0","show_subcat_desc":"1","show_cat_num_articles":"","page_subheading":"","show_pagination_limit":"0","filter_field":"hide","show_headings":"0","list_show_date":"0","date_format":"","list_show_hits":"0","list_show_author":"0","show_pagination":"0","show_pagination_results":"","show_title":"1","link_titles":"1","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_vote":"","show_readmore":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","show_noauth":"","show_feed_link":"","feed_summary":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","menu_text":1,"page_title":"Templates","show_page_heading":0,"page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','183','202','0','*','0'
+'283','aboutjoomla','Languages','languages',,'using-joomla/extensions/languages','index.php?option=com_content&view=category&layout=blog&id=24','component','1','277','3','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"maxLevel":"","show_empty_categories":"","show_description":"1","show_description_image":"1","show_category_title":"1","show_cat_num_articles":"","num_leading_articles":"1","num_intro_articles":"4","num_columns":"2","num_links":"4","multi_column_order":"","orderby_pri":"","orderby_sec":"","order_date":"","show_pagination":"","show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_readmore":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","show_feed_link":"","feed_summary":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','203','204','0','*','0'
+'284','aboutjoomla','Plugins','plugins',,'using-joomla/extensions/plugins','index.php?option=com_content&view=category&layout=blog&id=25','component','1','277','3','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"maxLevel":"","show_empty_categories":"","show_description":"1","show_description_image":"","show_category_title":"1","show_cat_num_articles":"","num_leading_articles":"0","num_intro_articles":"7","num_columns":"1","num_links":"0","multi_column_order":"","orderby_pri":"","orderby_sec":"order","order_date":"","show_pagination":"","show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"0","link_category":"0","show_parent_category":"0","link_parent_category":"0","show_author":"0","link_author":"","show_create_date":"0","show_modify_date":"0","show_publish_date":"0","show_item_navigation":"","show_readmore":"","show_icons":"0","show_print_icon":"0","show_email_icon":"0","show_hits":"0","show_feed_link":"","feed_summary":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','205','220','0','*','0'
+'285','aboutjoomla','Typography Atomic','typography-atomic',,'using-joomla/extensions/templates/atomic/typography-atomic','index.php?option=com_content&view=article&id=49','component','1','422','5','22','0','0','0000-00-00 00:00:00','0','1',,'3','{"show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','197','198','0','*','0'
+'290','mainmenu','Articles','articles',,'site-map/articles','index.php?option=com_content&view=categories&id=0','component','1','294','2','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"categories_description":"","maxLevel":"-1","show_empty_categories":"","show_description":"","show_description_image":"","show_cat_num_articles":"","display_num":"","category_layout":"","show_headings":"","show_date":"","date_format":"","filter_field":"","num_leading_articles":"1","num_intro_articles":"4","num_columns":"2","num_links":"4","multi_column_order":"","orderby_pri":"","orderby_sec":"","order_date":"","show_pagination":"","show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_readmore":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","article-allow_ratings":"","article-allow_comments":"","show_feed_link":"","feed_summary":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','4','5','0','*','0'
+'294','mainmenu','Site Map','site-map',,'site-map','index.php?option=com_content&view=article&id=42','component','1','1','1','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"0","link_category":"","show_parent_category":"0","link_parent_category":"","show_author":"0","link_author":"","show_create_date":"0","show_modify_date":"0","show_publish_date":"0","show_item_navigation":"0","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"0","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','3','10','0','*','0'
+'296','parks','Park Links','park-links',,'park-links','index.php?option=com_weblinks&view=category&id=31','component','1','1','1','21','0','0','0000-00-00 00:00:00','0','1',,'114','{"maxLevel":"-1","show_empty_categories":"","show_description":"1","show_description_image":"1","show_cat_num_articles":"","display_num":"","show_headings":"0","orderby_pri":"","show_pagination":"","show_noauth":"","show_feed_link":"1","feed_summary":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','251','252','0','en-GB','0'
+'300','aboutjoomla','Latest Users','latest-users',,'using-joomla/extensions/modules/user-modules/latest-users','index.php?option=com_content&view=article&id=66','component','1','412','5','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','147','148','0','*','0'
+'301','aboutjoomla','Who's Online','whos-online',,'using-joomla/extensions/modules/user-modules/whos-online','index.php?option=com_content&view=article&id=56','component','1','412','5','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','149','150','0','*','0'
+'302','aboutjoomla','Most Read','most-read',,'using-joomla/extensions/modules/content-modules/most-read','index.php?option=com_content&view=article&id=30','component','1','411','5','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','131','132','0','*','0'
+'303','aboutjoomla','Menu','menu',,'using-joomla/extensions/modules/navigation-modules/menu','index.php?option=com_content&view=article&id=29','component','1','415','5','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','125','126','0','*','0'
+'304','aboutjoomla','Statistics','statistics',,'using-joomla/extensions/modules/utility-modules/statistics','index.php?option=com_content&view=article&id=44','component','1','414','5','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','171','172','0','*','0'
+'305','aboutjoomla','Banner','banner',,'using-joomla/extensions/modules/display-modules/banner','index.php?option=com_content&view=article&id=7','component','1','413','5','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','157','158','0','*','0'
+'306','aboutjoomla','Search','search',,'using-joomla/extensions/modules/utility-modules/search','index.php?option=com_content&view=article&id=40','component','1','414','5','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','173','174','0','*','0'
+'307','aboutjoomla','Random Image','random-image',,'using-joomla/extensions/modules/display-modules/random-image','index.php?option=com_content&view=article&id=36','component','1','413','5','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','155','156','0','*','0'
+'309','aboutjoomla','News Flash','news-flash',,'using-joomla/extensions/modules/content-modules/news-flash','index.php?option=com_content&view=article&id=31','component','1','411','5','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','133','134','0','*','0'
+'310','aboutjoomla','Latest Articles','latest-articles',,'using-joomla/extensions/modules/content-modules/latest-articles','index.php?option=com_content&view=article&id=27','component','1','411','5','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','135','136','0','*','0'
+'311','aboutjoomla','Syndicate','syndicate',,'using-joomla/extensions/modules/utility-modules/syndicate','index.php?option=com_content&view=article&id=45','component','1','414','5','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','169','170','0','*','0'
+'312','aboutjoomla','Login','login',,'using-joomla/extensions/modules/user-modules/login','index.php?option=com_content&view=article&id=28','component','1','412','5','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','151','152','0','*','0'
+'313','aboutjoomla','Wrapper','wrapper',,'using-joomla/extensions/modules/utility-modules/wrapper','index.php?option=com_content&view=article&id=59','component','1','414','5','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','177','178','0','*','0'
+'316','aboutjoomla','Home Page Atomic','home-page-atomic',,'using-joomla/extensions/templates/atomic/home-page-atomic','index.php?option=com_content&view=featured','component','1','422','5','22','0','0','0000-00-00 00:00:00','0','1',,'3','{"maxLevel":"","show_empty_categories":"","show_description":"","show_description_image":"","show_cat_num_articles":"","num_leading_articles":"1","num_intro_articles":"3","num_columns":"3","num_links":"0","multi_column_order":"1","orderby_pri":"","orderby_sec":"front","order_date":"","show_pagination":"2","show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_readmore":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","show_feed_link":"1","feed_summary":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','199','200','0','*','0'
+'317','aboutjoomla','System','system',,'using-joomla/extensions/plugins/system','index.php?option=com_content&view=article&id=46','component','1','284','4','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','218','219','0','*','0'
+'318','aboutjoomla','Authentication','authentication',,'using-joomla/extensions/plugins/authentication','index.php?option=com_content&view=article&id=5','component','1','284','4','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','206','207','0','*','0'
+'319','aboutjoomla','Content','content',,'using-joomla/extensions/plugins/content','index.php?option=com_content&view=article&id=62','component','1','284','4','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','208','209','0','*','0'
+'320','aboutjoomla','Editors','editors',,'using-joomla/extensions/plugins/editors','index.php?option=com_content&view=article&id=14','component','1','284','4','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','210','211','0','*','0'
+'321','aboutjoomla','Editors Extended','editors-extended',,'using-joomla/extensions/plugins/editors-extended','index.php?option=com_content&view=article&id=15','component','1','284','4','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','212','213','0','*','0'
+'322','aboutjoomla','Search','search',,'using-joomla/extensions/plugins/search','index.php?option=com_content&view=article&id=41','component','1','284','4','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','214','215','0','*','0'
+'323','aboutjoomla','User','user',,'using-joomla/extensions/plugins/user','index.php?option=com_content&view=article&id=51','component','1','284','4','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','216','217','0','*','0'
+'324','aboutjoomla','Footer','footer',,'using-joomla/extensions/modules/display-modules/footer','index.php?option=com_content&view=article&id=19','component','1','413','5','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','161','162','0','*','0'
+'325','aboutjoomla','Archive','archive',,'using-joomla/extensions/modules/content-modules/archive','index.php?option=com_content&view=article&id=2','component','1','411','5','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','137','138','0','*','0'
+'326','aboutjoomla','Related Items','related-items',,'using-joomla/extensions/modules/content-modules/related-items','index.php?option=com_content&view=article&id=37','component','1','411','5','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','139','140','0','*','0'
+'399','parks','Animals','animals',,'image-gallery/animals','index.php?option=com_content&view=category&layout=blog&id=72','component','1','244','2','22','0','0','0000-00-00 00:00:00','0','1',,'114','{"maxLevel":"","show_empty_categories":"","show_description":"1","show_description_image":"0","show_category_title":"","show_cat_num_articles":"","num_leading_articles":"0","num_intro_articles":"6","num_columns":"2","num_links":"4","multi_column_order":"1","orderby_pri":"","orderby_sec":"","order_date":"","show_pagination":"2","show_noauth":"","show_title":"","link_titles":"","show_intro":"0","show_category":"1","link_category":"1","show_parent_category":"","link_parent_category":"","show_author":"0","link_author":"","show_create_date":"0","show_modify_date":"0","show_publish_date":"0","show_item_navigation":"1","show_readmore":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","show_feed_link":"1","feed_summary":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','246','247','0','en-GB','0'
+'400','parks','Scenery','scenery',,'image-gallery/scenery','index.php?option=com_content&view=category&layout=blog&id=73','component','1','244','2','22','0','0','0000-00-00 00:00:00','0','1',,'114','{"maxLevel":"","show_empty_categories":"","show_description":"0","show_description_image":"0","show_category_title":"","show_cat_num_articles":"","num_leading_articles":"0","num_intro_articles":"4","num_columns":"2","num_links":"4","multi_column_order":"1","orderby_pri":"","orderby_sec":"","order_date":"","show_pagination":"2","show_noauth":"","show_title":"","link_titles":"","show_intro":"0","show_category":"1","link_category":"","show_parent_category":"0","link_parent_category":"0","show_author":"0","link_author":"0","show_create_date":"0","show_modify_date":"0","show_publish_date":"0","show_item_navigation":"1","show_readmore":"1","show_icons":"0","show_print_icon":"0","show_email_icon":"0","show_hits":"0","show_feed_link":"1","feed_summary":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','248','249','0','en-GB','0'
+'402','aboutjoomla','Login Form','login-form',,'using-joomla/extensions/components/users-component/login-form','index.php?option=com_users&view=login','component','1','271','5','25','0','0','0000-00-00 00:00:00','0','1',,'0','{"login_redirect_url":"","logindescription_show":"1","login_description":"","login_image":"","logout_redirect_url":"","logoutdescription_show":"1","logout_description":"","logout_image":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','101','102','0','*','0'
+'403','aboutjoomla','User Profile','user-profile',,'using-joomla/extensions/components/users-component/user-profile','index.php?option=com_users&view=profile','component','1','271','5','25','0','0','0000-00-00 00:00:00','0','1',,'0','{"menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','103','104','0','*','0'
+'404','aboutjoomla','Edit User Profile','edit-user-profile',,'using-joomla/extensions/components/users-component/edit-user-profile','index.php?option=com_users&view=profile&layout=edit','component','1','271','5','25','0','0','0000-00-00 00:00:00','0','1',,'0','{"menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','105','106','0','*','0'
+'405','aboutjoomla','Registration Form','registration-form',,'using-joomla/extensions/components/users-component/registration-form','index.php?option=com_users&view=registration','component','1','271','5','25','0','0','0000-00-00 00:00:00','0','1',,'0','{"menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','107','108','0','*','0'
+'406','aboutjoomla','Username Reminder Request','username-reminder',,'using-joomla/extensions/components/users-component/username-reminder','index.php?option=com_users&view=remind','component','1','271','5','25','0','0','0000-00-00 00:00:00','0','1',,'0','{"menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','109','110','0','*','0'
+'409','aboutjoomla','Password Reset','password-reset',,'using-joomla/extensions/components/users-component/password-reset','index.php?option=com_users&view=reset','component','1','271','5','25','0','0','0000-00-00 00:00:00','0','1',,'0','{"menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','111','112','0','*','0'
+'410','aboutjoomla','Feed Display','feed-display',,'using-joomla/extensions/modules/display-modules/feed-display','index.php?option=com_content&view=article&id=16','component','1','413','5','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','159','160','0','*','0'
+'411','aboutjoomla','Content Modules','content-modules',,'using-joomla/extensions/modules/content-modules','index.php?option=com_content&view=category&id=64','component','1','281','4','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"maxLevel":"0","show_category_title":"1","page_subheading":"","show_empty_categories":"1","show_description":"1","show_description_image":"","show_cat_num_articles":"","display_num":"0","show_headings":"0","list_show_title":"1","list_show_date":"0","date_format":"","list_show_hits":"0","list_show_author":"0","filter_field":"hide","orderby_pri":"","orderby_sec":"order","order_date":"","show_pagination":"","show_pagination_limit":"0","show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"1","link_category":"1","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_readmore":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","show_feed_link":"","feed_summary":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','130','145','0','*','0'
+'412','aboutjoomla','User Modules','user-modules',,'using-joomla/extensions/modules/user-modules','index.php?option=com_content&view=category&id=65','component','1','281','4','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"maxLevel":"0","show_category_title":"1","page_subheading":"","show_empty_categories":"","show_description":"1","show_description_image":"","show_cat_num_articles":"","display_num":"0","show_headings":"0","list_show_title":"1","list_show_date":"","date_format":"","list_show_hits":"0","list_show_author":"0","filter_field":"hide","orderby_pri":"","orderby_sec":"order","order_date":"","show_pagination":"","show_pagination_limit":"0","show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"1","link_category":"1","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_readmore":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","show_feed_link":"","feed_summary":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','146','153','0','*','0'
+'413','aboutjoomla','Display Modules','display-modules',,'using-joomla/extensions/modules/display-modules','index.php?option=com_content&view=category&id=66','component','1','281','4','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"maxLevel":"0","show_category_title":"1","page_subheading":"","show_empty_categories":"","show_description":"1","show_description_image":"1","show_cat_num_articles":"","display_num":"0","show_headings":"0","list_show_title":"1","list_show_date":"","date_format":"","list_show_hits":"0","list_show_author":"0","filter_field":"hide","orderby_pri":"","orderby_sec":"order","order_date":"","show_pagination":"","show_pagination_limit":"0","show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"1","link_category":"1","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_readmore":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","show_feed_link":"","feed_summary":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','154','167','0','*','0'
+'414','aboutjoomla','Utility Modules','utility-modules',,'using-joomla/extensions/modules/utility-modules','index.php?option=com_content&view=category&id=67','component','1','281','4','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"maxLevel":"0","show_category_title":"1","page_subheading":"","show_empty_categories":"","show_description":"1","show_description_image":"1","show_cat_num_articles":"","display_num":"0","show_headings":"0","list_show_title":"0","list_show_date":"0","date_format":"","list_show_hits":"0","list_show_author":"0","filter_field":"","orderby_pri":"","orderby_sec":"order","order_date":"","show_pagination":"","show_pagination_limit":"0","show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"1","link_category":"1","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_readmore":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","show_feed_link":"","feed_summary":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','168','181','0','*','0'
+'415','aboutjoomla','Navigation Modules','navigation-modules',,'using-joomla/extensions/modules/navigation-modules','index.php?option=com_content&view=category&id=75','component','1','281','4','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"maxLevel":"","show_category_title":"","page_subheading":"","show_empty_categories":"","show_description":"","show_description_image":"","show_cat_num_articles":"","display_num":"","show_headings":"","list_show_title":"","list_show_date":"","date_format":"","list_show_hits":"","list_show_author":"","filter_field":"","orderby_pri":"","orderby_sec":"","order_date":"","show_pagination":"","show_pagination_limit":"","show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_readmore":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","show_feed_link":"","feed_summary":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','124','129','0','*','0'
+'416','aboutjoomla','Breadcrumbs','breadcrumbs',,'using-joomla/extensions/modules/navigation-modules/breadcrumbs','index.php?option=com_content&view=article&id=61','component','1','415','5','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_vote":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","show_noauth":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","menu_text":1,"page_title":"","show_page_heading":0,"page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','127','128','0','*','0'
+'417','aboutjoomla','Weblinks','weblinks',,'using-joomla/extensions/modules/display-modules/weblinks','index.php?option=com_content&view=article&id=55','component','1','413','5','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','163','164','0','*','0'
+'418','aboutjoomla','Custom HTML','custom-html',,'using-joomla/extensions/modules/display-modules/custom-html','index.php?option=com_content&view=article&id=12','component','1','413','5','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','165','166','0','*','0'
+'419','aboutjoomla','Beez 2','beez-2',,'using-joomla/extensions/templates/beez-2','index.php?option=com_content&view=category&layout=blog&id=69','component','1','282','4','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"maxLevel":"","show_empty_categories":"","show_description":"1","show_description_image":"","show_category_title":"","show_cat_num_articles":"","num_leading_articles":"1","num_intro_articles":"4","num_columns":"2","num_links":"4","multi_column_order":"","orderby_pri":"","orderby_sec":"","order_date":"","show_pagination":"","show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_readmore":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","show_feed_link":"","feed_summary":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','184','189','0','*','0'
+'422','aboutjoomla','Atomic','atomic',,'using-joomla/extensions/templates/atomic','index.php?option=com_content&view=category&layout=blog&id=68','component','1','282','4','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"maxLevel":"","show_empty_categories":"","show_description":"1","show_description_image":"","show_category_title":"","show_cat_num_articles":"","num_leading_articles":"2","num_intro_articles":"4","num_columns":"2","num_links":"4","multi_column_order":"","orderby_pri":"","orderby_sec":"","order_date":"","show_pagination":"","show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_readmore":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","show_feed_link":"","feed_summary":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','196','201','0','*','0'
+'423','aboutjoomla','Typography Beez 2','typography-beez-2',,'using-joomla/extensions/templates/beez-2/typography-beez-2','index.php?option=com_content&view=article&id=49','component','1','419','5','22','0','0','0000-00-00 00:00:00','0','1',,'4','{"show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','185','186','0','*','0'
+'424','aboutjoomla','Home Page Beez 2','home-page-beez-2',,'using-joomla/extensions/templates/beez-2/home-page-beez-2','index.php?option=com_content&view=featured','component','1','419','5','22','0','0','0000-00-00 00:00:00','0','1',,'4','{"maxLevel":"","show_empty_categories":"","show_description":"","show_description_image":"","show_cat_num_articles":"","num_leading_articles":"1","num_intro_articles":"3","num_columns":"3","num_links":"0","multi_column_order":"1","orderby_pri":"","orderby_sec":"front","order_date":"","show_pagination":"2","show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_readmore":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","show_feed_link":"1","feed_summary":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','187','188','0','*','0'
+'427','fruitshop','Fruit Encyclopedia','fruit-encyclopedia',,'fruit-encyclopedia','index.php?option=com_contact&view=categories&id=37','component','1','1','1','8','0','0','0000-00-00 00:00:00','0','1',,'6','{"show_base_description":"1","categories_description":"","maxLevelcat":"","show_empty_categories_cat":"","show_subcat_desc_cat":"","show_cat_items_cat":"","show_category_title":"","show_description":"1","show_description_image":"1","maxLevel":"-1","show_empty_categories":"1","show_subcat_desc":"","show_cat_items":"","show_pagination_limit":"","show_headings":"0","show_position_headings":"","show_email_headings":"0","show_telephone_headings":"0","show_mobile_headings":"0","show_fax_headings":"0","show_suburb_headings":"0","show_state_headings":"","show_country_headings":"","show_pagination":"","show_pagination_results":"","presentation_style":"","show_contact_category":"","show_contact_list":"","show_name":"","show_position":"","show_email":"","show_street_address":"","show_suburb":"","show_state":"","show_postcode":"","show_country":"","show_telephone":"","show_mobile":"","show_fax":"","show_webpage":"","show_misc":"","show_image":"","allow_vcard":"","show_articles":"","show_links":"1","linka_name":"","linkb_name":"","linkc_name":"","linkd_name":"","linke_name":"","show_email_form":"","show_email_copy":"","banned_email":"","banned_subject":"","banned_text":"","validate_session":"","custom_reply":"","redirect":"","show_feed_link":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","menu_text":1,"page_title":"","show_page_heading":0,"page_heading":"","pageclass_sfx":" categories-listalphabet","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','255','256','0','*','0'
+'429','fruitshop','Welcome','welcome','Fruit store front page','welcome','index.php?option=com_content&view=article&id=20','component','1','1','1','22','0','0','0000-00-00 00:00:00','0','1',,'6','{"show_noauth":"","show_title":"0","link_titles":"0","show_intro":"1","show_category":"0","link_category":"0","show_parent_category":"","link_parent_category":"","show_author":"0","link_author":"","show_create_date":"0","show_modify_date":"0","show_publish_date":"0","show_item_navigation":"0","show_icons":"0","show_print_icon":"0","show_email_icon":"0","show_hits":"0","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','253','254','0','*','0'
+'430','fruitshop','Contact Us','contact-us',,'contact-us','index.php?option=com_contact&view=category&catid=47&id=36','component','1','1','1','8','0','0','0000-00-00 00:00:00','0','1',,'6','{"maxLevel":"-1","show_empty_categories":"","show_description":"","show_description_image":"","show_cat_num_articles":"","display_num":"20","show_headings":"0","filter_field":"hide","show_pagination":"","show_noauth":"","presentation_style":"","show_name":"","show_position":"","show_email":"","show_street_address":"","show_suburb":"","show_state":"","show_postcode":"","show_country":"","show_telephone":"","show_mobile":"","show_fax":"","show_webpage":"","show_misc":"","show_image":"","allow_vcard":"","show_articles":"","show_links":"1","linka_name":"","linkb_name":"","linkc_name":"","linkd_name":"","linke_name":"","show_email_form":"","show_email_copy":"","banned_email":"","banned_subject":"","banned_text":"","validate_session":"","custom_reply":"","redirect":"","show_feed_link":"1","feed_summary":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','259','260','0','*','0'
+'431','fruitshop','Growers','growers',,'growers','index.php?option=com_content&view=category&layout=blog&id=30','component','1','1','1','22','0','0','0000-00-00 00:00:00','0','1',,'6','{"maxLevel":"0","show_empty_categories":"","show_description":"1","show_description_image":"","show_category_title":"1","show_cat_num_articles":"","num_leading_articles":"5","num_intro_articles":"0","num_columns":"1","num_links":"4","multi_column_order":"","orderby_pri":"","orderby_sec":"alpha","order_date":"","show_pagination":"","show_noauth":"","show_title":"1","link_titles":"1","show_intro":"1","show_category":"0","link_category":"","show_parent_category":"0","link_parent_category":"0","show_author":"0","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"0","show_item_navigation":"","show_readmore":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"0","show_feed_link":"","feed_summary":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','257','258','0','*','0'
+'432','fruitshop','Login ','shop-login',,'shop-login','index.php?option=com_users&view=login','component','1','1','1','25','0','0','0000-00-00 00:00:00','0','1',,'6','{"login_redirect_url":"","logindescription_show":"1","login_description":"","login_image":"","logout_redirect_url":"","logoutdescription_show":"1","logout_description":"","logout_image":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','261','262','0','*','0'
+'433','fruitshop','Directions','directions',,'directions','index.php?option=com_content&view=article&id=13','component','1','1','1','22','0','0','0000-00-00 00:00:00','0','1',,'6','{"show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','263','264','0','*','0'
+'435','mainmenu','Home','homepage',,'homepage','index.php?option=com_content&view=featured','component','1','1','1','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"featured_categories":[""],"num_leading_articles":"1","num_intro_articles":"3","num_columns":"3","num_links":"0","multi_column_order":"1","orderby_pri":"","orderby_sec":"front","order_date":"","show_pagination":"2","show_pagination_results":"","show_title":"1","link_titles":"","show_intro":"","show_category":"0","link_category":"0","show_parent_category":"0","link_parent_category":"0","show_author":"0","link_author":"0","show_create_date":"0","show_modify_date":"0","show_publish_date":"0","show_item_navigation":"0","show_vote":"","show_readmore":"1","show_readmore_title":"","show_icons":"0","show_print_icon":"0","show_email_icon":"0","show_hits":"0","show_noauth":"","show_feed_link":"1","feed_summary":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","menu_text":1,"page_title":"","show_page_heading":0,"page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','1','2','1','*','0'
+'436','aboutjoomla','Getting Help','getting-help',,'using-joomla/getting-help','index.php?option=com_content&view=article&id=21','component','1','280','2','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"0","link_category":"","show_parent_category":"0","link_parent_category":"","show_author":"0","link_author":"","show_create_date":"0","show_modify_date":"0","show_publish_date":"0","show_item_navigation":"0","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"0","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','224','225','0','*','0'
+'437','aboutjoomla','Getting Started','getting-started',,'getting-started','index.php?option=com_content&view=article&id=22','component','1','1','1','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_title":"1","link_titles":"0","show_intro":"","show_category":"0","link_category":"","show_parent_category":"0","link_parent_category":"","show_author":"0","link_author":"","show_create_date":"0","show_modify_date":"0","show_publish_date":"0","show_item_navigation":"0","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"0","show_noauth":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","page_title":"","show_page_heading":0,"page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','45','46','0','*','0'
+'438','mainmenu','Weblinks','weblinks',,'site-map/weblinks','index.php?option=com_weblinks&view=categories&id=0','component','1','294','2','21','0','0','0000-00-00 00:00:00','0','1',,'0','{"categories_description":"","maxLevel":"-1","show_empty_categories":"","show_description":"","show_description_image":"","show_cat_num_articles":"","display_num":"","show_headings":"","orderby_pri":"","show_pagination":"","show_noauth":"","article-allow_ratings":"","article-allow_comments":"","show_feed_link":"","feed_summary":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','6','7','0','*','0'
+'439','mainmenu','Contacts','contacts',,'site-map/contacts','index.php?option=com_contact&view=categories&id=0','component','1','294','2','8','0','0','0000-00-00 00:00:00','0','1',,'0','{"categories_description":"","maxLevel":"-1","show_empty_categories":"","show_description":"","show_description_image":"","show_cat_num_articles":"","display_num":"","show_headings":"","filter_field":"","show_pagination":"","show_noauth":"","show_name":"","show_position":"","show_email":"","show_street_address":"","show_suburb":"","show_state":"","show_postcode":"","show_country":"","show_telephone":"","show_mobile":"","show_fax":"","show_webpage":"","show_misc":"","show_image":"","allow_vcard":"","show_articles":"","show_links":"1","linka_name":"","linkb_name":"","linkc_name":"","linkd_name":"","linke_name":"","show_email_form":"","show_email_copy":"","banned_email":"","banned_subject":"","banned_text":"","validate_session":"","custom_reply":"","redirect":"","article-allow_ratings":"","article-allow_comments":"","show_feed_link":"","feed_summary":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','8','9','0','*','0'
+'443','aboutjoomla','Article Categories','article-categories-view',,'using-joomla/extensions/modules/content-modules/article-categories-view','index.php?option=com_content&view=article&id=3','component','1','411','5','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','141','142','0','*','0'
+'444','top','Sample Sites','sample-sites-2',,'sample-sites-2','index.php?Itemid=','alias','1','1','1','0','0','0','0000-00-00 00:00:00','0','1',,'0','{"aliasoptions":"238","menu-anchor_title":"","menu-anchor_css":"","menu_image":""}','233','234','0','*','0'
+'445','mainmenu','Parks','parks',,'sample-sites/parks','index.php?Itemid=','alias','1','238','2','0','0','0','0000-00-00 00:00:00','0','1',,'0','{"aliasoptions":"243","menu-anchor_title":"","menu-anchor_css":"","menu_image":""}','266','267','0','*','0'
+'446','mainmenu','Shop','shop',,'sample-sites/shop','index.php?Itemid=','alias','1','238','2','0','0','0','0000-00-00 00:00:00','0','1',,'0','{"aliasoptions":"429","menu-anchor_title":"","menu-anchor_css":"","menu_image":""}','268','269','0','*','0'
+'447','aboutjoomla','Language Switcher','language-switcher',,'using-joomla/extensions/modules/utility-modules/language-switcher','index.php?option=com_content&view=article&id=26','component','1','414','5','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','175','176','0','*','0'
+'448','mainmenu','Site Administrator','site-administrator',,'site-administrator','administrator','url','1','1','1','0','0','0','0000-00-00 00:00:00','1','1',,'0','{"menu-anchor_title":"","menu-anchor_css":"","menu_image":""}','271','272','0','*','0'
+'449','usermenu','Submit an Article','submit-an-article',,'submit-an-article','index.php?option=com_content&view=form&layout=edit','component','1','1','1','22','0','0','0000-00-00 00:00:00','0','3',,'0','{"menu-anchor_title":"","menu-anchor_css":"","menu_image":"","menu_text":1,"page_title":"","show_page_heading":0,"page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','273','274','0','*','0'
+'450','usermenu','Submit a Web Link','submit-a-web-link',,'submit-a-web-link','index.php?option=com_weblinks&view=form&layout=edit','component','1','1','1','21','0','0','0000-00-00 00:00:00','0','3',,'0','{"menu-anchor_title":"","menu-anchor_css":"","menu_image":"","menu_text":1,"page_title":"","show_page_heading":0,"page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','275','276','0','*','0'
+'452','aboutjoomla','Featured Contacts','featured-contacts',,'using-joomla/extensions/components/contact-component/featured-contacts','index.php?option=com_contact&view=featured&id=16','component','1','270','5','8','0','0','0000-00-00 00:00:00','0','1',,'0','{"maxLevel":"-1","show_empty_categories":"","show_description":"","show_description_image":"","show_cat_num_articles":"","display_num":"","show_headings":"","filter_field":"","show_pagination":"","show_noauth":"","presentation_style":"sliders","show_name":"","show_position":"","show_email":"","show_street_address":"","show_suburb":"","show_state":"","show_postcode":"","show_country":"","show_telephone":"","show_mobile":"","show_fax":"","show_webpage":"","show_misc":"","show_image":"","allow_vcard":"","show_articles":"","show_links":"1","linka_name":"","linkb_name":"","linkc_name":"","linkd_name":"","linke_name":"","show_email_form":"","show_email_copy":"","banned_email":"","banned_subject":"","banned_text":"","validate_session":"","custom_reply":"","redirect":"","show_feed_link":"","feed_summary":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":1,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','81','82','0','*','0'
+'453','aboutjoomla','Parameters','parameters',,'using-joomla/parameters','index.php?option=com_content&view=article&id=32','component','1','280','2','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_noauth":"1","show_title":"1","link_titles":"1","show_intro":"1","show_category":"1","link_category":"1","show_parent_category":"1","link_parent_category":"1","show_author":"1","link_author":"1","show_create_date":"1","show_modify_date":"1","show_publish_date":"1","show_item_navigation":"1","show_icons":"1","show_print_icon":"1","show_email_icon":"1","show_hits":"1","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','222','223','0','*','0'
+'455','mainmenu','Example Pages','example-pages',,'example-pages','index.php?Itemid=','alias','1','1','1','0','0','0','0000-00-00 00:00:00','0','1',,'0','{"aliasoptions":"268","menu-anchor_title":"","menu-anchor_css":"","menu_image":""}','277','278','0','*','0'
+'456','aboutjoomla','Beez5','beez5',,'using-joomla/extensions/templates/beez5','index.php?option=com_content&view=category&layout=blog&id=70','component','1','282','4','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"maxLevel":"","show_empty_categories":"","show_description":"1","show_description_image":"","show_category_title":"","show_cat_num_articles":"","num_leading_articles":"1","num_intro_articles":"4","num_columns":"2","num_links":"4","multi_column_order":"","orderby_pri":"","orderby_sec":"","order_date":"","show_pagination":"","show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_readmore":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","show_feed_link":"","feed_summary":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":1,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','190','195','0','*','0'
+'457','aboutjoomla','Typography Beez5','typography-beez-5',,'using-joomla/extensions/templates/beez5/typography-beez-5','index.php?option=com_content&view=article&id=49','component','1','456','5','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":1,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','191','192','0','*','0'
+'458','aboutjoomla','Home Page Beez5','home-page-beez5',,'using-joomla/extensions/templates/beez5/home-page-beez5','index.php?option=com_content&view=featured','component','1','456','5','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"maxLevel":"","show_empty_categories":"","show_description":"","show_description_image":"","show_cat_num_articles":"","num_leading_articles":"1","num_intro_articles":"3","num_columns":"3","num_links":"0","multi_column_order":"","orderby_pri":"","orderby_sec":"front","order_date":"","show_pagination":"","show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_readmore":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","show_feed_link":"","feed_summary":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":1,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','193','194','0','*','0'
+'459','aboutjoomla','Article Category','article-category',,'using-joomla/extensions/modules/content-modules/article-category','index.php?option=com_content&view=article&id=4','component','1','411','5','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","robots":"","rights":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":1,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","secure":0}','143','144','0','*','0'
+'462','fruitshop','Add a recipe','add-a-recipe',,'add-a-recipe','index.php?option=com_content&view=form&layout=edit','component','1','1','1','22','0','0','0000-00-00 00:00:00','0','4',,'0','{"menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":1,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','279','280','0','*','0'
+'463','fruitshop','Recipes','recipes',,'recipes','index.php?option=com_content&view=category&id=76','component','1','1','1','22','0','0','0000-00-00 00:00:00','0','1',,'6','{"maxLevel":"0","show_category_title":"1","page_subheading":"","show_empty_categories":"0","show_description":"1","show_description_image":"","show_cat_num_articles":"","display_num":"","show_headings":"","list_show_title":"","list_show_date":"","date_format":"","list_show_hits":"","list_show_author":"","filter_field":"","orderby_pri":"","orderby_sec":"","order_date":"","show_pagination":"","show_pagination_limit":"","show_noauth":"","show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_readmore":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","show_feed_link":"","feed_summary":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","show_page_heading":0,"page_title":"","page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','281','282','0','*','0'
+'464','top','Home','home',,'home','index.php?Itemid=','alias','1','1','1','0','0','0','0000-00-00 00:00:00','0','1',,'0','{"aliasoptions":"435","menu-anchor_title":"","menu-anchor_css":"","menu_image":""}','227','228','0','*','0'
+'466','aboutjoomla','Smart Search','smart-search',,'using-joomla/extensions/components/search-component/smart-search','index.php?option=com_finder&view=search&q=&f=','component','1','276','5','27','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_date_filters":"","show_advanced":"","expand_advanced":"","show_description":"","description_length":255,"show_url":"","show_pagination_limit":"","show_pagination":"","show_pagination_results":"","allow_empty_query":"0","search_order":"","show_feed":"0","show_feed_text":"0","show_feed_link":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","menu_text":1,"page_title":"","show_page_heading":0,"page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','117','118','0','*','0'
+'467','aboutjoomla','Smart Search','smart-search',,'using-joomla/extensions/modules/utility-modules/smart-search','index.php?option=com_content&view=article&id=70','component','1','414','5','22','0','0','0000-00-00 00:00:00','0','1',,'0','{"show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_vote":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_hits":"","show_noauth":"","menu-anchor_title":"","menu-anchor_css":"","menu_image":"","menu_text":1,"page_title":"","show_page_heading":0,"page_heading":"","pageclass_sfx":"","menu-meta_description":"","menu-meta_keywords":"","robots":"","secure":0}','179','180','0','*','0'
diff -r -N -U 3 mod_menu/unit-tests/menu_types.csv mod_menuwithitemselection/unit-tests/menu_types.csv
--- mod_menu/unit-tests/menu_types.csv	1970-01-01 01:00:00.000000000 +0100
+++ mod_menuwithitemselection/unit-tests/menu_types.csv	2012-06-07 18:52:02.000000000 +0200
@@ -0,0 +1,7 @@
+'id','menutype','title','description'
+'2','usermenu','User Menu','A Menu for logged-in Users'
+'3','top','Top','Links for major types of users'
+'4','aboutjoomla','About Joomla','All about Joomla!'
+'5','parks','Australian Parks','Main menu for a site about Australian  parks'
+'6','mainmenu','Main Menu','Simple Home Menu'
+'7','fruitshop','Fruit Shop','Menu for the sample shop site.'
diff -r -N -U 3 mod_menu/unit-tests/MenuWithItemSelectionTest.php mod_menuwithitemselection/unit-tests/MenuWithItemSelectionTest.php
--- mod_menu/unit-tests/MenuWithItemSelectionTest.php	1970-01-01 01:00:00.000000000 +0100
+++ mod_menuwithitemselection/unit-tests/MenuWithItemSelectionTest.php	2012-06-14 02:08:01.000000000 +0200
@@ -0,0 +1,1076 @@
+<?php
+/**
+ * @copyright	Copyright (C) 2012 Daniel Calviño Sánchez.
+ * @license		GNU General Public License version 2 or later; see LICENSE.txt
+ */
+
+require_once JPATH_BASE.'/tests/unit/JoomlaDatabaseTestCase.php';
+require_once 'PHPUnit/Extensions/Database/DataSet/CsvDataSet.php';
+
+class MenuWithItemSelectionTest extends JoomlaDatabaseTestCase {
+
+    private $menuItems;
+
+    protected function setUp() {
+        parent::setUp();
+
+        //Needed for JURI, which is needed by JRouter
+        $_SERVER['HTTP_HOST'] = 'localhost';
+
+        //Set a JSession stub, as creating a real JSession fails (see the
+        //comments on JSessionStub class)
+        JFactory::$session = new JSessionStub();
+
+        //Instantiate the JApplication before the tests
+        JFactory::getApplication('site', array('session' => false));
+
+        //Needed by mod_menuwithitemselection.php
+        jimport('joomla.application.module.helper');
+        //Needed by JRouter, which is used by modMenuHelper
+        jimport('joomla.environment.uri');
+
+        //Reload the menu items, as the items in memory could have been modified
+        //and the active item could have been set by the previous test.
+        jimport('joomla.application.menu');
+        $reflectionProperty = new ReflectionProperty('JMenu', 'instances');
+        $reflectionProperty->setAccessible(true);
+        $reflectionProperty->setValue(array());
+
+        $menu = JFactory::getApplication()->getMenu();
+        $this->menuItems = $menu->getItems(array(), array());
+    }
+
+    protected function getDataSet() {
+        $prefix = JFactory::$database->getPrefix();
+
+        $dataSet = new PHPUnit_Extensions_Database_DataSet_CsvDataSet(',', "'", '\\');
+        $dataSet->addTable($prefix.'extensions', JPATH_BASE . '/tests/unit/suite/modules/mod_menuwithitemselection/extensions.csv');
+        $dataSet->addTable($prefix.'menu', JPATH_BASE . '/tests/unit/suite/modules/mod_menuwithitemselection/menu.csv');
+        $dataSet->addTable($prefix.'menu_types', JPATH_BASE . '/tests/unit/suite/modules/mod_menuwithitemselection/menu_types.csv');
+        $dataSet->addTable($prefix.'template_styles', JPATH_BASE . '/tests/unit/suite/modules/mod_menuwithitemselection/template_styles.csv');
+        $dataSet->addTable($prefix.'usergroups', JPATH_BASE . '/tests/unit/suite/modules/mod_menuwithitemselection/usergroups.csv');
+        $dataSet->addTable($prefix.'viewlevels', JPATH_BASE . '/tests/unit/suite/modules/mod_menuwithitemselection/viewlevels.csv');
+        return $dataSet;
+    }
+
+    public function testBasicOptionsFirstLevelDoNotShowAllChildren() {
+        $params = new JRegistry;
+        $params->set('startLevel', 1);
+        $params->set('endLevel', 0);
+        $params->set('showAllChildren', 0);
+        $params->set('menutype', 'aboutjoomla');
+        $params->set('ignoreBasicOptions', 0);
+
+        $renderedModule = $this->renderModule($params);
+
+        $this->assertValidHtml($renderedModule);
+
+        $domDocument = $this->getDomDocument($renderedModule);
+
+        //Get items that should appear in the list
+        $items = array();
+        foreach ($this->menuItems as $item) {
+            if ($item->menutype == 'aboutjoomla' && $item->level == 1) {
+                $items[] = $item;
+            }
+        }
+
+        //Set parent_id of root items to null, as they have no parent in the
+        //HTML list
+        foreach ($items as $item) {
+            if ($item->parent_id == 1) {
+                $item->parent_id = null;
+            }
+        }
+
+        $this->assertHtmlList($domDocument->documentElement, $items);
+        $this->assertEquals(0, count($items), 'Items not found in HTML');
+    }
+
+    public function testBasicOptionsFirstLevelDoNotShowAllChildrenFirstLevelActive() {
+        $params = new JRegistry;
+        $params->set('startLevel', 1);
+        $params->set('endLevel', 0);
+        $params->set('showAllChildren', 0);
+        $params->set('menutype', 'aboutjoomla');
+        $params->set('ignoreBasicOptions', 0);
+
+        $activeItem = $this->getMenuItem('aboutjoomla', array('Using Joomla!'));
+        JFactory::getApplication()->getMenu()->setActive($activeItem->id);
+
+        $renderedModule = $this->renderModule($params);
+
+        $this->assertValidHtml($renderedModule);
+
+        $domDocument = $this->getDomDocument($renderedModule);
+
+        //Get items that should appear in the list
+        $items = array();
+        foreach ($this->menuItems as $item) {
+            if ($item->menutype == 'aboutjoomla' &&
+                ($item->level == 1 ||
+                ($item->level == 2 && $item->parent_id == $activeItem->id))) {
+                $items[] = $item;
+            }
+        }
+
+        //Set parent_id of root items to null, as they have no parent in the
+        //HTML list
+        foreach ($items as $item) {
+            if ($item->parent_id == 1) {
+                $item->parent_id = null;
+            }
+        }
+
+        $this->assertHtmlList($domDocument->documentElement, $items);
+        $this->assertEquals(0, count($items), 'Items not found in HTML');
+    }
+
+    public function testBasicOptionsFirstLevelDoNotShowAllChildrenSecondLevelActive() {
+        $params = new JRegistry;
+        $params->set('startLevel', 1);
+        $params->set('endLevel', 0);
+        $params->set('showAllChildren', 0);
+        $params->set('menutype', 'aboutjoomla');
+        $params->set('ignoreBasicOptions', 0);
+
+        $activeItem = $this->getMenuItem('aboutjoomla', array('Using Joomla!', 'Using Extensions'));
+        JFactory::getApplication()->getMenu()->setActive($activeItem->id);
+
+        $renderedModule = $this->renderModule($params);
+
+        $this->assertValidHtml($renderedModule);
+
+        $domDocument = $this->getDomDocument($renderedModule);
+
+        //Get items that should appear in the list
+        $items = array();
+        foreach ($this->menuItems as $item) {
+            if ($item->menutype == 'aboutjoomla' &&
+                ($item->level == 1 ||
+                ($item->level == 2 && $item->parent_id == $activeItem->parent_id) ||
+                ($item->level == 3 && $item->parent_id == $activeItem->id))) {
+                $items[] = $item;
+            }
+        }
+
+        //Set parent_id of root items to null, as they have no parent in the
+        //HTML list
+        foreach ($items as $item) {
+            if ($item->parent_id == 1) {
+                $item->parent_id = null;
+            }
+        }
+
+        $this->assertHtmlList($domDocument->documentElement, $items);
+        $this->assertEquals(0, count($items), 'Items not found in HTML');
+    }
+
+    public function testBasicOptionsSecondLevelDoNotShowAllChildren() {
+        $params = new JRegistry;
+        $params->set('startLevel', 2);
+        $params->set('endLevel', 0);
+        $params->set('showAllChildren', 0);
+        $params->set('menutype', 'aboutjoomla');
+        $params->set('ignoreBasicOptions', 0);
+
+        $renderedModule = $this->renderModule($params);
+
+        //There is no active menu item, so the module uses the default menu
+        //item, which is the Home menu item in the Main Menu. As the start level
+        //is deeper than 1 and there are no menu items in the About Joomla menu
+        //that are children of the Home menu item, nothing is shown in the
+        //module.
+        $this->assertEquals('', $renderedModule, 'No HTML rendered');
+    }
+
+    public function testBasicOptionsSecondLevelDoNotShowAllChildrenFirstLevelActive() {
+        $params = new JRegistry;
+        $params->set('startLevel', 2);
+        $params->set('endLevel', 0);
+        $params->set('showAllChildren', 0);
+        $params->set('menutype', 'aboutjoomla');
+        $params->set('ignoreBasicOptions', 0);
+
+        $activeItem = $this->getMenuItem('aboutjoomla', array('Using Joomla!'));
+        JFactory::getApplication()->getMenu()->setActive($activeItem->id);
+
+        $renderedModule = $this->renderModule($params);
+
+        $this->assertValidHtml($renderedModule);
+
+        $domDocument = $this->getDomDocument($renderedModule);
+
+        //Get items that should appear in the list
+        $items = array();
+        foreach ($this->menuItems as $item) {
+            if ($item->menutype == 'aboutjoomla' && $item->level == 2 && $item->parent_id == $activeItem->id) {
+                $items[] = $item;
+            }
+        }
+
+        //Set parent_id of level 2 items to null, as they appear as the root
+        //items in the HTML list and thus have no parent
+        foreach ($items as $item) {
+            if ($item->level == 2) {
+                $item->parent_id = null;
+            }
+        }
+
+        $this->assertHtmlList($domDocument->documentElement, $items);
+        $this->assertEquals(0, count($items), 'Items not found in HTML');
+    }
+
+    public function testBasicOptionsSecondLevelDoNotShowAllChildrenSecondLevelActive() {
+        $params = new JRegistry;
+        $params->set('startLevel', 2);
+        $params->set('endLevel', 0);
+        $params->set('showAllChildren', 0);
+        $params->set('menutype', 'aboutjoomla');
+        $params->set('ignoreBasicOptions', 0);
+
+        $activeItem = $this->getMenuItem('aboutjoomla', array('Using Joomla!', 'Using Extensions'));
+        JFactory::getApplication()->getMenu()->setActive($activeItem->id);
+
+        $renderedModule = $this->renderModule($params);
+
+        $this->assertValidHtml($renderedModule);
+
+        $domDocument = $this->getDomDocument($renderedModule);
+
+        //Get items that should appear in the list
+        $items = array();
+        foreach ($this->menuItems as $item) {
+            if ($item->menutype == 'aboutjoomla' &&
+                (($item->level == 2 && $item->parent_id == $activeItem->parent_id) ||
+                ($item->level == 3 && $item->parent_id == $activeItem->id))) {
+                $items[] = $item;
+            }
+        }
+
+        //Set parent_id of level 2 items to null, as they appear as the root
+        //items in the HTML list and thus have no parent
+        foreach ($items as $item) {
+            if ($item->level == 2) {
+                $item->parent_id = null;
+            }
+        }
+
+        $this->assertHtmlList($domDocument->documentElement, $items);
+        $this->assertEquals(0, count($items), 'Items not found in HTML');
+    }
+
+    public function testBasicOptionsShowAllChildren() {
+        $params = new JRegistry;
+        $params->set('startLevel', 1);
+        $params->set('endLevel', 0);
+        $params->set('showAllChildren', 1);
+        $params->set('menutype', 'aboutjoomla');
+        $params->set('ignoreBasicOptions', 0);
+
+        $renderedModule = $this->renderModule($params);
+
+        $this->assertValidHtml($renderedModule);
+
+        $domDocument = $this->getDomDocument($renderedModule);
+
+        //Get items that should appear in the list
+        $items = array();
+        foreach ($this->menuItems as $item) {
+            if ($item->menutype == 'aboutjoomla') {
+                $items[] = $item;
+            }
+        }
+
+        //Set parent_id of root items to null, as they have no parent in the
+        //HTML list
+        foreach ($items as $item) {
+            if ($item->parent_id == 1) {
+                $item->parent_id = null;
+            }
+        }
+
+        $this->assertHtmlList($domDocument->documentElement, $items);
+        $this->assertEquals(0, count($items), 'Items not found in HTML');
+    }
+
+    public function testBasicOptionsShowAllChildrenMissingFirstLevelItem() {
+        $params = new JRegistry;
+        $params->set('startLevel', 1);
+        $params->set('endLevel', 0);
+        $params->set('showAllChildren', 1);
+        $params->set('menutype', 'aboutjoomla');
+        $params->set('ignoreBasicOptions', 0);
+
+        //Change the access of an item with children so it is not shown to guest
+        //users, but its children items are.
+        $itemToHide = $this->getMenuItem('aboutjoomla', array('Using Joomla!'));
+        $itemToHide->access = 2;
+
+        $renderedModule = $this->renderModule($params);
+
+        $this->assertValidHtml($renderedModule);
+
+        $domDocument = $this->getDomDocument($renderedModule);
+
+        //Get items that should appear in the list
+        $items = array();
+        foreach ($this->menuItems as $item) {
+            if ($item->menutype == 'aboutjoomla' && $item != $itemToHide) {
+                $items[] = $item;
+            }
+        }
+
+        //Set parent_id of root items to null, as they have no parent in the
+        //HTML list
+        //Set parent_id of hidden item children to the previous item at its same
+        //level
+        $previousSiblingOfHiddenItem = $this->getMenuItem('aboutjoomla', array('Getting Started'));
+        foreach ($items as $item) {
+            if ($item->parent_id == 1) {
+                $item->parent_id = null;
+            } else if ($item->parent_id == $itemToHide->id) {
+                $item->parent_id = $previousSiblingOfHiddenItem->id;
+            }
+        }
+
+        $this->assertHtmlList($domDocument->documentElement, $items);
+        $this->assertEquals(0, count($items), 'Items not found in HTML');
+    }
+
+    public function testBasicOptionsShowAllChildrenMissingFirstLevelFirstItems() {
+        $params = new JRegistry;
+        $params->set('startLevel', 1);
+        $params->set('endLevel', 0);
+        $params->set('showAllChildren', 1);
+        $params->set('menutype', 'aboutjoomla');
+        $params->set('ignoreBasicOptions', 0);
+
+        //Change the access of the first level first items, so the first item to
+        //appear in the list is a second level item (the last item is a first
+        //level item, though).
+        $gettingStartedItem = $this->getMenuItem('aboutjoomla', array('Getting Started'));
+        $gettingStartedItem->access = 2;
+        $usingJoomlaItem = $this->getMenuItem('aboutjoomla', array('Using Joomla!'));
+        $usingJoomlaItem->access = 2;
+
+        $renderedModule = $this->renderModule($params);
+
+        $this->assertValidHtml($renderedModule);
+
+        $domDocument = $this->getDomDocument($renderedModule);
+
+        //Get items that should appear in the list
+        $items = array();
+        foreach ($this->menuItems as $item) {
+            if ($item->menutype == 'aboutjoomla' &&
+                $item != $gettingStartedItem && $item != $usingJoomlaItem) {
+                $items[] = $item;
+            }
+        }
+
+        //Set parent_id of root items to null, as they have no parent in the
+        //HTML list
+        //Set parent_id of hidden item children to null, as the parent has no
+        //previous sibling (it is the first item at its level)
+        foreach ($items as $item) {
+            if ($item->parent_id == 1) {
+                $item->parent_id = null;
+            } else if ($item->parent_id == $usingJoomlaItem->id) {
+                $item->parent_id = null;
+            }
+        }
+
+        $this->assertHtmlList($domDocument->documentElement, $items);
+        $this->assertEquals(0, count($items), 'Items not found in HTML');
+    }
+
+    public function testBasicOptionsShowAllChildrenMissingFirstLevelLastItems() {
+        $params = new JRegistry;
+        $params->set('startLevel', 1);
+        $params->set('endLevel', 0);
+        $params->set('showAllChildren', 1);
+        $params->set('menutype', 'aboutjoomla');
+        $params->set('ignoreBasicOptions', 0);
+
+        //Change the access of the first level last items, so the last item to
+        //appear in the list is a second level item (the first item is a first
+        //level item, though).
+        $theJoomlaProjectItem = $this->getMenuItem('aboutjoomla', array('The Joomla! Project'));
+        $theJoomlaProjectItem->access = 2;
+        $theJoomlaCommunityItem = $this->getMenuItem('aboutjoomla', array('The Joomla! Community'));
+        $theJoomlaCommunityItem->access = 2;
+
+        $renderedModule = $this->renderModule($params);
+
+        $this->assertValidHtml($renderedModule);
+
+        $domDocument = $this->getDomDocument($renderedModule);
+
+        //Get items that should appear in the list
+        $items = array();
+        foreach ($this->menuItems as $item) {
+            if ($item->menutype == 'aboutjoomla' &&
+                $item != $theJoomlaProjectItem && $item != $theJoomlaCommunityItem) {
+                $items[] = $item;
+            }
+        }
+
+        //Set parent_id of root items to null, as they have no parent in the
+        //HTML list
+        foreach ($items as $item) {
+            if ($item->parent_id == 1) {
+                $item->parent_id = null;
+            }
+        }
+
+        $this->assertHtmlList($domDocument->documentElement, $items);
+        $this->assertEquals(0, count($items), 'Items not found in HTML');
+    }
+
+    public function testBasicOptionsShowAllChildrenMissingSecondLevelItem() {
+        $params = new JRegistry;
+        $params->set('startLevel', 1);
+        $params->set('endLevel', 0);
+        $params->set('showAllChildren', 1);
+        $params->set('menutype', 'aboutjoomla');
+        $params->set('ignoreBasicOptions', 0);
+
+        //Change the access of an item with children so it is not shown to guest
+        //users, but its children items are.
+        $itemToHide = $this->getMenuItem('aboutjoomla', array('Using Joomla!', 'Using Extensions'));
+        $itemToHide->access = 2;
+
+        $renderedModule = $this->renderModule($params);
+
+        $this->assertValidHtml($renderedModule);
+
+        $domDocument = $this->getDomDocument($renderedModule);
+
+        //Get items that should appear in the list
+        $items = array();
+        foreach ($this->menuItems as $item) {
+            if ($item->menutype == 'aboutjoomla' && $item != $itemToHide) {
+                $items[] = $item;
+            }
+        }
+
+        //Set parent_id of root items to null, as they have no parent in the
+        //HTML list
+        //Set parent_id of hidden item children to null, as the parent has no
+        //previous sibling (it is the first item at its level)
+        foreach ($items as $item) {
+            if ($item->parent_id == 1) {
+                $item->parent_id = null;
+            } else if ($item->parent_id == $itemToHide->id) {
+                $item->parent_id = null;
+            }
+        }
+
+        $this->assertHtmlList($domDocument->documentElement, $items);
+        $this->assertEquals(0, count($items), 'Items not found in HTML');
+    }
+
+    public function testItemSelectionSingleMenuSingleRootItem() {
+        $params = new JRegistry;
+        $params->set('ignoreBasicOptions', 1);
+
+        //Get items that should appear in the list
+        $items = array();
+        $items[] = $this->getMenuItem('aboutjoomla', array('Using Joomla!'));
+
+        $itemIds = array();
+        foreach ($items as $item) {
+            $itemIds[] = $item->id;
+        }
+        $params->set('itemsToShow', $itemIds);
+
+        $renderedModule = $this->renderModule($params);
+
+        $this->assertValidHtml($renderedModule);
+
+        $domDocument = $this->getDomDocument($renderedModule);
+
+        //Set parent_id of item to null, as it has no parent in the HTML list
+        $items[0]->parent_id = null;
+
+        $this->assertHtmlList($domDocument->documentElement, $items);
+        $this->assertEquals(0, count($items), 'Items not found in HTML');
+    }
+
+    public function testItemSelectionSingleMenuSeveralRootItems() {
+        $params = new JRegistry;
+        $params->set('ignoreBasicOptions', 1);
+
+        //Get items that should appear in the list
+        $items = array();
+        $items[] = $this->getMenuItem('aboutjoomla', array('Getting Started'));
+        $items[] = $this->getMenuItem('aboutjoomla', array('Using Joomla!'));
+        $items[] = $this->getMenuItem('aboutjoomla', array('The Joomla! Community'));
+
+        $itemIds = array();
+        foreach ($items as $item) {
+            $itemIds[] = $item->id;
+        }
+        $params->set('itemsToShow', $itemIds);
+
+        $renderedModule = $this->renderModule($params);
+
+        $this->assertValidHtml($renderedModule);
+
+        $domDocument = $this->getDomDocument($renderedModule);
+
+        //Set parent_id of root items to null, as they have no parent in the
+        //HTML list
+        foreach ($items as $item) {
+            $item->parent_id = null;
+        }
+
+        $this->assertHtmlList($domDocument->documentElement, $items);
+        $this->assertEquals(0, count($items), 'Items not found in HTML');
+    }
+
+    public function testItemSelectionSingleMenuSingleGrandChildItem() {
+        $params = new JRegistry;
+        $params->set('ignoreBasicOptions', 1);
+
+        //Get items that should appear in the list
+        $items = array();
+        $items[] = $this->getMenuItem('aboutjoomla', array('Using Joomla!', 'Using Extensions', 'Templates'));
+
+        $itemIds = array();
+        foreach ($items as $item) {
+            $itemIds[] = $item->id;
+        }
+        $params->set('itemsToShow', $itemIds);
+
+        $renderedModule = $this->renderModule($params);
+
+        $this->assertValidHtml($renderedModule);
+
+        $domDocument = $this->getDomDocument($renderedModule);
+
+        //Set parent_id of item to null, as it has no parent in the HTML list
+        $items[0]->parent_id = null;
+
+        $this->assertHtmlList($domDocument->documentElement, $items);
+        $this->assertEquals(0, count($items), 'Items not found in HTML');
+    }
+
+    public function testItemSelectionSingleMenuSingleHierarchy() {
+        $params = new JRegistry;
+        $params->set('ignoreBasicOptions', 1);
+
+        //Get items that should appear in the list
+        $items = array();
+        $items[] = $this->getMenuItem('aboutjoomla', array('Using Joomla!'));
+        $items[] = $this->getMenuItem('aboutjoomla', array('Using Joomla!', 'Using Extensions'));
+        $items[] = $this->getMenuItem('aboutjoomla', array('Using Joomla!', 'Using Extensions', 'Components'));
+        $items[] = $this->getMenuItem('aboutjoomla', array('Using Joomla!', 'Using Extensions', 'Components', 'Content Component'));
+
+        $itemIds = array();
+        foreach ($items as $item) {
+            $itemIds[] = $item->id;
+        }
+        $params->set('itemsToShow', $itemIds);
+
+        $renderedModule = $this->renderModule($params);
+
+        $this->assertValidHtml($renderedModule);
+
+        $domDocument = $this->getDomDocument($renderedModule);
+
+        //Set parent_id of root item to null, as it has no parent in the HTML
+        //list
+        $items[0]->parent_id = null;
+
+        $this->assertHtmlList($domDocument->documentElement, $items);
+        $this->assertEquals(0, count($items), 'Items not found in HTML');
+    }
+
+    public function testItemSelectionSingleMenuSeveralHierarchies() {
+        $params = new JRegistry;
+        $params->set('ignoreBasicOptions', 1);
+
+        //Get items that should appear in the list
+        $items = array();
+        $items[] = $this->getMenuItem('aboutjoomla', array('Getting Started'));
+        $items[] = $this->getMenuItem('aboutjoomla', array('Using Joomla!'));
+        $items[] = $this->getMenuItem('aboutjoomla', array('Using Joomla!', 'Using Extensions'));
+        $items[] = $this->getMenuItem('aboutjoomla', array('Using Joomla!', 'Using Extensions', 'Components'));
+        $items[] = $this->getMenuItem('aboutjoomla', array('Using Joomla!', 'Using Extensions', 'Components', 'Content Component'));
+        $items[] = $this->getMenuItem('aboutjoomla', array('Using Joomla!', 'Using Extensions', 'Templates'));
+        $items[] = $this->getMenuItem('aboutjoomla', array('Using Joomla!', 'Using Extensions', 'Templates', 'Beez 2'));
+        $items[] = $this->getMenuItem('aboutjoomla', array('Using Joomla!', 'Using Extensions', 'Templates', 'Beez5'));
+        $items[] = $this->getMenuItem('aboutjoomla', array('Using Joomla!', 'Using Extensions', 'Templates', 'Atomic'));
+        $items[] = $this->getMenuItem('aboutjoomla', array('Using Joomla!', 'Using Extensions', 'Languages'));
+        $items[] = $this->getMenuItem('aboutjoomla', array('Using Joomla!', 'Parameters'));
+        $items[] = $this->getMenuItem('aboutjoomla', array('The Joomla! Community'));
+
+        $itemIds = array();
+        foreach ($items as $item) {
+            $itemIds[] = $item->id;
+        }
+        $params->set('itemsToShow', $itemIds);
+
+        $renderedModule = $this->renderModule($params);
+
+        $this->assertValidHtml($renderedModule);
+
+        $domDocument = $this->getDomDocument($renderedModule);
+
+        //Set parent_id of root items to null, as they have no parent in the
+        //HTML list
+        foreach ($items as $item) {
+            if ($item->parent_id == 1) {
+                $item->parent_id = null;
+            }
+        }
+
+        $this->assertHtmlList($domDocument->documentElement, $items);
+        $this->assertEquals(0, count($items), 'Items not found in HTML');
+    }
+
+    public function testItemSelectionSingleMenuSingleHierarchyWithMissingNodes() {
+        $params = new JRegistry;
+        $params->set('ignoreBasicOptions', 1);
+
+        //Get items that should appear in the list
+        $items = array();
+        $items[] = $this->getMenuItem('aboutjoomla', array('Using Joomla!'));
+        //Don't add Using Joomla! - Using Extensions node
+        $items[] = $this->getMenuItem('aboutjoomla', array('Using Joomla!', 'Using Extensions', 'Components'));
+        $items[] = $this->getMenuItem('aboutjoomla', array('Using Joomla!', 'Using Extensions', 'Components', 'Content Component'));
+
+        $itemIds = array();
+        foreach ($items as $item) {
+            $itemIds[] = $item->id;
+        }
+        $params->set('itemsToShow', $itemIds);
+
+        $renderedModule = $this->renderModule($params);
+
+        $this->assertValidHtml($renderedModule);
+
+        $domDocument = $this->getDomDocument($renderedModule);
+
+        //Set parent_id of root item to null, as it has no parent in the HTML
+        //list
+        //Set parent_id of hidden item children to null, as the parent has no
+        //previous sibling (it is the first item at its level)
+        $items[0]->parent_id = null;
+        $items[1]->parent_id = null;
+
+        $this->assertHtmlList($domDocument->documentElement, $items);
+        $this->assertEquals(0, count($items), 'Items not found in HTML');
+    }
+
+    public function testItemSelectionSingleMenuSeveralHierarchiesWithMissingNodes() {
+        $params = new JRegistry;
+        $params->set('ignoreBasicOptions', 1);
+
+        //Get items that should appear in the list
+        $items = array();
+        $items[] = $this->getMenuItem('aboutjoomla', array('Getting Started'));
+        $items[] = $this->getMenuItem('aboutjoomla', array('Using Joomla!'));
+        //Don't add Using Joomla! - Using Extensions node
+        $items[] = $this->getMenuItem('aboutjoomla', array('Using Joomla!', 'Using Extensions', 'Components'));
+        $items[] = $this->getMenuItem('aboutjoomla', array('Using Joomla!', 'Using Extensions', 'Components', 'Content Component'));
+        //Don't add Using Joomla! - Using Extensions - Templates node
+        $items[] = $this->getMenuItem('aboutjoomla', array('Using Joomla!', 'Using Extensions', 'Templates', 'Beez 2'));
+        //Don't add Using Joomla! - Using Extensions - Templates - Beez 5 node
+        $items[] = $this->getMenuItem('aboutjoomla', array('Using Joomla!', 'Using Extensions', 'Templates', 'Atomic'));
+        $items[] = $this->getMenuItem('aboutjoomla', array('Using Joomla!', 'Using Extensions', 'Languages'));
+        $items[] = $this->getMenuItem('aboutjoomla', array('Using Joomla!', 'Parameters'));
+        $items[] = $this->getMenuItem('aboutjoomla', array('The Joomla! Community'));
+
+        $itemIds = array();
+        foreach ($items as $item) {
+            $itemIds[] = $item->id;
+        }
+        $params->set('itemsToShow', $itemIds);
+
+        $renderedModule = $this->renderModule($params);
+
+        $this->assertValidHtml($renderedModule);
+
+        $domDocument = $this->getDomDocument($renderedModule);
+
+        //Set parent_id of root items to null, as they have no parent in the
+        //HTML list
+        //Set parent_id of hidden item children to the previous item at its same
+        //level, or null if the parent has no previous siblings
+        foreach ($items as $item) {
+            if ($item->parent_id == 1) {
+                $item->parent_id = null;
+            }
+        }
+        $items[2]->parent_id = null;
+        $items[4]->parent_id = $items[2]->id;
+        $items[5]->parent_id = $items[2]->id;
+        $items[6]->parent_id = null;
+
+        $this->assertHtmlList($domDocument->documentElement, $items);
+        $this->assertEquals(0, count($items), 'Items not found in HTML');
+    }
+
+    public function testItemSelectionSeveralMenusSingleRootItem() {
+        $params = new JRegistry;
+        $params->set('ignoreBasicOptions', 1);
+
+        //Get items that should appear in the list
+        $items = array();
+        $items[] = $this->getMenuItem('aboutjoomla', array('Using Joomla!'));
+        $items[] = $this->getMenuItem('fruitshop', array('Directions'));
+        $items[] = $this->getMenuItem('mainmenu', array('Home'));
+
+        $itemIds = array();
+        foreach ($items as $item) {
+            $itemIds[] = $item->id;
+        }
+        $params->set('itemsToShow', $itemIds);
+
+        $renderedModule = $this->renderModule($params);
+
+        $this->assertValidHtml($renderedModule);
+
+        $domDocument = $this->getDomDocument($renderedModule);
+
+        //Set parent_id of root items to null, as they have no parent in the
+        //HTML list
+        foreach ($items as $item) {
+            if ($item->parent_id == 1) {
+                $item->parent_id = null;
+            }
+        }
+
+        $this->assertHtmlList($domDocument->documentElement, $items);
+        $this->assertEquals(0, count($items), 'Items not found in HTML');
+    }
+
+    public function testItemSelectionSeveralMenusSeveralRootItems() {
+        $params = new JRegistry;
+        $params->set('ignoreBasicOptions', 1);
+
+        //Get items that should appear in the list
+        $items = array();
+        $items[] = $this->getMenuItem('aboutjoomla', array('Getting Started'));
+        $items[] = $this->getMenuItem('aboutjoomla', array('The Joomla! Community'));
+        $items[] = $this->getMenuItem('fruitshop', array('Welcome'));
+        $items[] = $this->getMenuItem('fruitshop', array('Directions'));
+        $items[] = $this->getMenuItem('fruitshop', array('Recipes'));
+        $items[] = $this->getMenuItem('mainmenu', array('Home'));
+        $items[] = $this->getMenuItem('mainmenu', array('Sample Sites'));
+        $items[] = $this->getMenuItem('parks', array('Park Blog'));
+        $items[] = $this->getMenuItem('parks', array('Image Gallery'));
+
+        $itemIds = array();
+        foreach ($items as $item) {
+            $itemIds[] = $item->id;
+        }
+        $params->set('itemsToShow', $itemIds);
+
+        $renderedModule = $this->renderModule($params);
+
+        $this->assertValidHtml($renderedModule);
+
+        $domDocument = $this->getDomDocument($renderedModule);
+
+        //Set parent_id of root items to null, as they have no parent in the
+        //HTML list
+        foreach ($items as $item) {
+            if ($item->parent_id == 1) {
+                $item->parent_id = null;
+            }
+        }
+
+        $this->assertHtmlList($domDocument->documentElement, $items);
+        $this->assertEquals(0, count($items), 'Items not found in HTML');
+    }
+
+    public function testItemSelectionSeveralMenusSeveralRootItemsCheckingOrder() {
+        $params = new JRegistry;
+        $params->set('ignoreBasicOptions', 1);
+
+        //Get items that should appear in the list
+        $items = array();
+        $items[] = $this->getMenuItem('aboutjoomla', array('Getting Started'));
+        $items[] = $this->getMenuItem('aboutjoomla', array('The Joomla! Community'));
+        $items[] = $this->getMenuItem('parks', array('Park Blog')); //'parks' title is 'Australian Parks'
+        $items[] = $this->getMenuItem('parks', array('Image Gallery')); //'parks' title is 'Australian Parks'
+        $items[] = $this->getMenuItem('fruitshop', array('Welcome'));
+        $items[] = $this->getMenuItem('fruitshop', array('Directions'));
+        $items[] = $this->getMenuItem('fruitshop', array('Recipes'));
+        $items[] = $this->getMenuItem('mainmenu', array('Home'));
+        $items[] = $this->getMenuItem('mainmenu', array('Sample Sites'));
+
+        $itemIds = array();
+        foreach ($items as $item) {
+            $itemIds[] = $item->id;
+        }
+        $params->set('itemsToShow', $itemIds);
+
+        $renderedModule = $this->renderModule($params);
+
+        $this->assertValidHtml($renderedModule);
+
+        $domDocument = $this->getDomDocument($renderedModule);
+
+        //If not ordered by menu name, default menu items order would have been:
+        //mainmenu - Home
+        //aboutjoomla - Getting Started
+        //aboutjoomla - The Joomla! Community
+        //parks - Park Blog
+        //parks - Image Gallery
+        //fruitshop - Welcome
+        //fruitshop - Directions
+        //mainmenu - Sample Sites
+        //fruitshop - Recipes
+        foreach ($domDocument->documentElement->childNodes as $itemElement) {
+            $linkElement = $itemElement->childNodes->item(0);
+            $this->assertEquals('a', $linkElement->tagName, 'Tag name of link');
+            $this->assertEquals(1, $linkElement->childNodes->length, 'Number of children of link');
+            $this->assertTrue($linkElement->childNodes->item(0) instanceof DOMText, 'Child of link is text');
+            $title = $linkElement->childNodes->item(0)->wholeText;
+
+            $menuItem = array_shift($items);
+            $this->assertEquals($menuItem->title, $title, 'Title of link');
+        }
+    }
+
+    public function testItemSelectionSeveralMenusSeveralHierarchiesWithMissingNodes() {
+        $params = new JRegistry;
+        $params->set('ignoreBasicOptions', 1);
+
+        //Get items that should appear in the list
+        $items = array();
+        $items[] = $this->getMenuItem('aboutjoomla', array('Getting Started'));
+        $items[] = $this->getMenuItem('aboutjoomla', array('Using Joomla!'));
+        //Don't add Using Joomla! - Using Extensions node
+        $items[] = $this->getMenuItem('aboutjoomla', array('Using Joomla!', 'Using Extensions', 'Components'));
+        $items[] = $this->getMenuItem('aboutjoomla', array('Using Joomla!', 'Using Extensions', 'Components', 'Content Component'));
+        //Don't add Using Joomla! - Using Extensions - Templates node
+        $items[] = $this->getMenuItem('aboutjoomla', array('Using Joomla!', 'Using Extensions', 'Templates', 'Beez 2'));
+        //Don't add Using Joomla! - Using Extensions - Templates - Beez 5 node
+        $items[] = $this->getMenuItem('aboutjoomla', array('Using Joomla!', 'Using Extensions', 'Templates', 'Atomic'));
+        $items[] = $this->getMenuItem('aboutjoomla', array('Using Joomla!', 'Using Extensions', 'Languages'));
+        $items[] = $this->getMenuItem('aboutjoomla', array('Using Joomla!', 'Parameters'));
+        $items[] = $this->getMenuItem('aboutjoomla', array('The Joomla! Community'));
+        $items[] = $this->getMenuItem('fruitshop', array('Directions'));
+        $items[] = $this->getMenuItem('mainmenu', array('Home'));
+        $items[] = $this->getMenuItem('mainmenu', array('Site Map'));
+        $items[] = $this->getMenuItem('mainmenu', array('Site Map', 'Weblinks'));
+        //Don't add Sample Sites node
+        $items[] = $this->getMenuItem('mainmenu', array('Sample Sites', 'Parks'));
+        $items[] = $this->getMenuItem('mainmenu', array('Sample Sites', 'Shop'));
+
+        $itemIds = array();
+        foreach ($items as $item) {
+            $itemIds[] = $item->id;
+        }
+        $params->set('itemsToShow', $itemIds);
+
+        $renderedModule = $this->renderModule($params);
+
+        $this->assertValidHtml($renderedModule);
+
+        $domDocument = $this->getDomDocument($renderedModule);
+
+        //Set parent_id of root items to null, as they have no parent in the
+        //HTML list
+        //Set parent_id of hidden item children to the previous item at its same
+        //level, or null if the parent has no previous siblings
+        foreach ($items as $item) {
+            if ($item->parent_id == 1) {
+                $item->parent_id = null;
+            }
+        }
+        $items[2]->parent_id = null;
+        $items[4]->parent_id = $items[2]->id;
+        $items[5]->parent_id = $items[2]->id;
+        $items[6]->parent_id = null;
+        $items[13]->parent_id = $items[11]->id;
+        $items[14]->parent_id = $items[11]->id;
+
+        $this->assertHtmlList($domDocument->documentElement, $items);
+        $this->assertEquals(0, count($items), 'Items not found in HTML');
+    }
+
+    public function testItemSelectionWithBasicOptionsSetSeveralMenusSeveralHierarchiesWithMissingNodes() {
+        $params = new JRegistry;
+        $params->set('startLevel', 2);
+        $params->set('endLevel', 3);
+        $params->set('showAllChildren', 0);
+        $params->set('menutype', 'usermenu');
+        $params->set('ignoreBasicOptions', 1);
+
+        //Get items that should appear in the list
+        $items = array();
+        $items[] = $this->getMenuItem('aboutjoomla', array('Getting Started'));
+        $items[] = $this->getMenuItem('aboutjoomla', array('Using Joomla!'));
+        //Don't add Using Joomla! - Using Extensions node
+        $items[] = $this->getMenuItem('aboutjoomla', array('Using Joomla!', 'Using Extensions', 'Components'));
+        $items[] = $this->getMenuItem('aboutjoomla', array('Using Joomla!', 'Using Extensions', 'Components', 'Content Component'));
+        //Don't add Using Joomla! - Using Extensions - Templates node
+        $items[] = $this->getMenuItem('aboutjoomla', array('Using Joomla!', 'Using Extensions', 'Templates', 'Beez 2'));
+        //Don't add Using Joomla! - Using Extensions - Templates - Beez 5 node
+        $items[] = $this->getMenuItem('aboutjoomla', array('Using Joomla!', 'Using Extensions', 'Templates', 'Atomic'));
+        $items[] = $this->getMenuItem('aboutjoomla', array('Using Joomla!', 'Using Extensions', 'Languages'));
+        $items[] = $this->getMenuItem('aboutjoomla', array('Using Joomla!', 'Parameters'));
+        $items[] = $this->getMenuItem('aboutjoomla', array('The Joomla! Community'));
+        $items[] = $this->getMenuItem('fruitshop', array('Directions'));
+        $items[] = $this->getMenuItem('mainmenu', array('Home'));
+        $items[] = $this->getMenuItem('mainmenu', array('Site Map'));
+        $items[] = $this->getMenuItem('mainmenu', array('Site Map', 'Weblinks'));
+        //Don't add Sample Sites node
+        $items[] = $this->getMenuItem('mainmenu', array('Sample Sites', 'Parks'));
+        $items[] = $this->getMenuItem('mainmenu', array('Sample Sites', 'Shop'));
+
+        $itemIds = array();
+        foreach ($items as $item) {
+            $itemIds[] = $item->id;
+        }
+        $params->set('itemsToShow', $itemIds);
+
+        $renderedModule = $this->renderModule($params);
+
+        $this->assertValidHtml($renderedModule);
+
+        $domDocument = $this->getDomDocument($renderedModule);
+
+        //Set parent_id of root items to null, as they have no parent in the
+        //HTML list
+        //Set parent_id of hidden item children to the previous item at its same
+        //level, or null if the parent has no previous siblings
+        foreach ($items as $item) {
+            if ($item->parent_id == 1) {
+                $item->parent_id = null;
+            }
+        }
+        $items[2]->parent_id = null;
+        $items[4]->parent_id = $items[2]->id;
+        $items[5]->parent_id = $items[2]->id;
+        $items[6]->parent_id = null;
+        $items[13]->parent_id = $items[11]->id;
+        $items[14]->parent_id = $items[11]->id;
+
+        $this->assertHtmlList($domDocument->documentElement, $items);
+        $this->assertEquals(0, count($items), 'Items not found in HTML');
+    }
+
+    private function getMenuItem($menu, $path, $parentId = 1) {
+        foreach ($this->menuItems as $item) {
+            if ($item->menutype == $menu && $item->title == $path[0] && $item->parent_id == $parentId) {
+                if (count($path) == 1) {
+                    return $item;
+                } else {
+                    $childPath = $path;
+                    array_shift($childPath);
+                    return $this->getMenuItem($menu, $childPath, $item->id);
+                }
+            }
+        }
+
+        return null;
+    }
+
+    private function renderModule($params) {
+        ob_start();
+        require JPATH_BASE.'/modules/mod_menuwithitemselection/mod_menuwithitemselection.php';
+        $result = ob_get_contents();
+        ob_end_clean();
+
+        return $result;
+    }
+
+    private function assertValidHtml($renderedModule) {
+        $htmlWrap = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"'
+            . ' "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'
+            . '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-gb" lang="en-gb">'
+            . '<head><title>Hello world</title></head>'
+            . '<body>'
+            . $renderedModule
+            . '</body></html>';
+
+        $tidy = tidy_parse_string($htmlWrap);
+        $this->assertEquals(0, tidy_error_count($tidy), "Tidy errors:\n".$tidy->errorBuffer);
+        $this->assertEquals(0, tidy_warning_count($tidy), "Tidy warnings:\n".$tidy->errorBuffer);
+    }
+
+    private function getDomDocument($renderedModule) {
+        $domDocument = new DOMDocument;
+        $domDocument->preserveWhiteSpace = FALSE;
+        $domDocument->loadXML($renderedModule);
+        $domDocument->formatOutput = TRUE;
+
+        return $domDocument;
+    }
+
+    private function assertHtmlList($element, &$items, $parentListItemId = null) {
+        $this->assertEquals('ul', $element->tagName, 'List tag');
+
+        foreach ($element->childNodes as $itemElement) {
+            $this->assertHtmlListItem($itemElement, $items, $parentListItemId);
+        }
+    }
+
+    private function assertHtmlListItem($element, &$items, $parentListItemId = null) {
+        $this->assertEquals('li', $element->tagName, 'List item tag');
+
+        if ($element->childNodes->length == 0 ||
+            ($element->childNodes->length == 1 && $element->childNodes->item(0)->tagName != 'a' &&
+                                                 $element->childNodes->item(0)->tagName != 'ul') ||
+            ($element->childNodes->length == 2 && ($element->childNodes->item(0)->tagName != 'a' ||
+                                                  $element->childNodes->item(1)->tagName != 'ul')) ||
+            $element->childNodes->length > 2) {
+            $this->assertTrue(false, 'Valid children');
+        }
+
+        if ($element->childNodes->length == 1 && $element->childNodes->item(0)->tagName == 'ul') {
+            $this->assertHtmlList($element->childNodes->item(0), $items, null);
+            return;
+        }
+
+        $this->assertEquals(1, $element->attributes->length, 'Number of attributes of list item');
+        $this->assertEquals('class', $element->attributes->item(0)->nodeName, 'Attribute "class" of list item is present');
+        $this->assertEquals(1, preg_match('#item-(\d+)#', $element->attributes->item(0)->nodeValue, $matches), 'Attribute "class" of list item matches "item-\d+"');
+        $id = $matches[1];
+
+        $linkElement = $element->childNodes->item(0);
+        $this->assertEquals(1, $linkElement->childNodes->length, 'Number of children of link');
+        $this->assertTrue($linkElement->childNodes->item(0) instanceof DOMText, 'Child of link is text');
+        $title = $linkElement->childNodes->item(0)->wholeText;
+
+        $index = $this->getMenuItemIndex($id, $title, $items);
+        $this->assertNotNull($index, 'Menu item ('.$id.', '.$title.') not found in items list');
+
+        $currentItem = $items[$index];
+        $this->assertEquals($parentListItemId, $currentItem->parent_id, 'Parent id of current item');
+
+        if ($element->childNodes->length == 2) {
+            $this->assertHtmlList($element->childNodes->item(1), $items, $id);
+        }
+
+        unset($items[$index]);
+    }
+
+    private function getMenuItemIndex($id, $title, $items) {
+        foreach ($items as $index => $item) {
+            if ($item->id == $id && $item->title == $title) {
+                return $index;
+            }
+        }
+
+        return null;
+    }
+}
+
+//When a JSession is created (for example, when creating the JApplication), it
+//calls to "session_start()". It fails with
+//"Cannot send session cookie - headers already sent by (output started at /usr/share/pear/PHPUnit/Util/Printer.php:174)"
+//As the session is not relevant to test the module, a JSession stub with an
+//empty "_start()" method (the one that called "session_start()" is used.
+class JSessionStub extends JSession {
+    protected function _start() {
+    }
+}
diff -r -N -U 3 mod_menu/unit-tests/template_styles.csv mod_menuwithitemselection/unit-tests/template_styles.csv
--- mod_menu/unit-tests/template_styles.csv	1970-01-01 01:00:00.000000000 +0100
+++ mod_menuwithitemselection/unit-tests/template_styles.csv	2012-06-07 18:57:10.000000000 +0200
@@ -0,0 +1,7 @@
+'id','template','client_id','home','title','params'
+'2','bluestork','1','1','Bluestork - Default','{"useRoundedCorners":"1","showSiteName":"0"}'
+'3','atomic','0','0','Atomic - Default','{}'
+'4','beez_20','0','1','Beez2 - Default','{"wrapperSmall":"53","wrapperLarge":"72","logo":"images\/joomla_black.gif","sitetitle":"Joomla!","sitedescription":"Open Source Content Management","navposition":"left","templatecolor":"personal","html5":"0"}'
+'5','hathor','1','0','Hathor - Default','{"showSiteName":"0","colourChoice":"","boldText":"0"}'
+'6','beez5','0','0','Beez5 - Default','{"wrapperSmall":"53","wrapperLarge":"72","logo":"images\/sampledata\/fruitshop\/fruits.gif","sitetitle":"Joomla!","sitedescription":"Open Source Content Management","navposition":"left","html5":"0"}'
+'114','beez_20','0','0','Beez2 - Parks Site','{"wrapperSmall":"53","wrapperLarge":"72","logo":"","sitetitle":"Australian Parks","sitedescription":"Parks Sample Site","navposition":"center","templatecolor":"nature"}'
diff -r -N -U 3 mod_menu/unit-tests/usergroups.csv mod_menuwithitemselection/unit-tests/usergroups.csv
--- mod_menu/unit-tests/usergroups.csv	1970-01-01 01:00:00.000000000 +0100
+++ mod_menuwithitemselection/unit-tests/usergroups.csv	2012-06-07 18:52:44.000000000 +0200
@@ -0,0 +1,11 @@
+'id','parent_id','lft','rgt','title'
+'1','0','1','20','Public'
+'2','1','6','17','Registered'
+'3','2','7','14','Author'
+'4','3','8','11','Editor'
+'5','4','9','10','Publisher'
+'6','1','2','5','Manager'
+'7','6','3','4','Administrator'
+'8','1','18','19','Super Users'
+'12','2','15','16','Customer Group (Example)'
+'10','3','12','13','Shop Suppliers (Example)'
diff -r -N -U 3 mod_menu/unit-tests/viewlevels.csv mod_menuwithitemselection/unit-tests/viewlevels.csv
--- mod_menu/unit-tests/viewlevels.csv	1970-01-01 01:00:00.000000000 +0100
+++ mod_menuwithitemselection/unit-tests/viewlevels.csv	2012-06-07 18:53:26.000000000 +0200
@@ -0,0 +1,5 @@
+'id','title','ordering','rules'
+'1','Public','0','[1]'
+'2','Registered','1','[6,2,8]'
+'3','Special','2','[6,3,8]'
+'4','Customer Access Level (Example)','3','[6,3,12]'
