/*
for solarsource.net joomla template
move 3rd level sub-menu into div#site-col-beta when window.onload

ASSUMPTION: there are only a max of 3 levels, not 4, not more

===
REQUIRE:
/_js/dom/abbr.js
*/
function MenuCustomization(siteSideMenuId, boolLeafChildFosteredByGrandParent) {

if (siteSideMenuId!=null) {
	var SITE_SIDE_MENU_ID = siteSideMenuId;
} else {
	var SITE_SIDE_MENU_ID = 'site-side-menu';
}
var DEST_DOM_ID = 'third-level-sub-menu-con'; // dom id of the destination container the submenu will move into
// var MENU_TITLE_SUFFIX = ' Menu:';
var MENU_TITLE_SUFFIX = '';
var boolLeafChildFosteredByGrandParent = (boolLeafChildFosteredByGrandParent==true)?true:false;

		// SEE template index (/templates/jw_vividdesign/index.php) for such id and position
var ACTIVE_MENU_ID = 'active_menu';

this.run = function() {
//[DEBUG]	alert('running');
	// get side menu, top container dom
	var domMenu = ge(SITE_SIDE_MENU_ID);
	if (!domMenu) return;

	// get destination dom
	var domDest = ge(DEST_DOM_ID);
	if (!domDest) return;

//[DEBUG]	alert('getting 2nd level submenu');
	/*
		[START] get 3rd level submenu
	*/
		// get the 3rd level submenu which is "active", i.e., being visited and turned "on"

	var arrLeafSubMenu = gtc(domMenu, 'ul', 'menu-level-3');
	var domLeafSubMenu;
	for (var ii=0;ii<arrLeafSubMenu.length;ii++) {
		var domSubMenu = arrLeafSubMenu[ii];
		// check if this submenu contains an active a tag
		var arrActiveATag = gti(domSubMenu, 'a', new RegExp(ACTIVE_MENU_ID));
		// if so, this is the active menu
		if (arrActiveATag[0]) {
			domLeafSubMenu = domSubMenu;
			break;
		}
		if (!boolLeafChildFosteredByGrandParent) {
			// OR IF THIS <UL>'s PARENT <LI>'s FIRST <A> is id=active_menu
			var domParentLI = domSubMenu.parentNode;
			var arrParentLIsA = gt(domParentLI, 'a');
			var domParentLIsA = arrParentLIsA[0];
			if (domParentLIsA.id.toLowerCase() == ACTIVE_MENU_ID.toLowerCase()) {
				domLeafSubMenu = domSubMenu;
				break;
			}
		} else {
			// OR (after no parent of this sub-menu-level-3 claim this child) IF THIS <UL>'s GRANDPARENT <LI>'s FIRST <A> is id=active_menu
			var domGrandParentLI = domSubMenu.parentNode.parentNode.parentNode;
			var arrGrandParentLIsA = gt(domGrandParentLI, 'a');
			var domGrandParentLIsA = arrGrandParentLIsA[0];
			if (domGrandParentLIsA.id.toLowerCase() == ACTIVE_MENU_ID.toLowerCase()) {
				domLeafSubMenu = domSubMenu;
				break;
			}
		}
	}
	var domSubMenu3 = domLeafSubMenu;

	/*
		[END]
	*/
	if (!domSubMenu3) return;


	// get menu name (must do it before moving to another parent)
	var domSubMenu3ParentLI = domSubMenu3.parentNode;
	if (boolLeafChildFosteredByGrandParent) {
		domSubMenu3ParentLI = domSubMenu3.parentNode.parentNode.parentNode;
	}
	var arrSubMenu3ParentA = gt(domSubMenu3ParentLI, 'a');
	var domSubMenu3ParentA = arrSubMenu3ParentA[0];


//[DEBUG]	alert('move');
	// move submenu to destination
	domDest.appendChild(domSubMenu3);
	
//[DEBUG]	alert('display');
	// set display
	var strDisplay = 'block';
	domSubMenu3.style.display = strDisplay;
	domDest.style.display = strDisplay;
	domDest.parentNode.style.display = strDisplay;

	// get menu header h3, WHICH IS THE sibiling of the submenu's parent, i.e, uncle of submenu
	var domDestParent = domDest.parentNode;
	var domDestHeaderH3 = domDestParent.previousSibling;
	if (!domDestHeaderH3 || domDestHeaderH3.tagName != 'H3') return;
	
//[DEBUG]	alert('write name');
	// write parent menu item name
	var strParentItemName = domSubMenu3ParentA.innerHTML;
	domDestHeaderH3.innerHTML = strParentItemName + MENU_TITLE_SUFFIX;
	domDestHeaderH3.style.display = strDisplay;

}	

}