/**
* CSShiarchMenu v0.4
*	written by: me[AT]daantje[DOT]nl
*	last update: Wed Jul  6 22:09:20 CEST 2005
*
*	Documentation:
*		Build this small script cause all the gpl-ed scripts I found where too big
*		and had too many options I never going to use, or the config for the menu
*		was not easy to set with a PHP routine.
*
*	License:
*		Use this script any way you like...
*/

//declare
var submenu = new Array();
var tmr = new Array();
var adj = new Array();
var last_zIndex = 10000;
var lastOverId = '';


// EXAMPLE CONFIG
var menuWidth 		= 200;			//width of submenu in pixels
var alignSubmenu 	= 'right';		//bottom or right side of the main button.
var useLastItemCSS	= false;			//generate last menu item too
									//if false, it will behave as a normal item
									//and the css menuItemLast class will not be used
var adjustFirst		= false;		//overlap the first submenu too?
var adjustTop		= 0;			//move the submenu's some pixels. Positive number (10) for down, negative (-10) for up.
var adjustLeft		= 0;			//move the submenu's some pixels. Positive number (10) for right, negative (-10) for left.

//----------------------------------------------------------------------------------------
//A configuration note:
// 		I tested the targets _top, _blank and _self, but not the tageting to a frame...
//----------------------------------------------------------------------------------------

//fisrt submenu tree
submenu['menu1'] = new Array();
submenu['menu1'][0] = menuItem('Media Bio','index.php?c=media_bio');
submenu['menu1'][1] = menuItem('Professional/Educational Bio','index.php?c=edu_bio');

	/* 1 level deeper menu */
	//submenu['menu1_1'] = new Array();
	//submenu['menu1_1'][0] = menuItem('google','http://www.google.nl');
	//submenu['menu1_1'][1] = menuItem('/.','http://www.slashdot.org');
	//submenu['menu1_1'][2] = menuItem('koel');
	
		/* 2 level deeper menu */
		//submenu['menu1_1_2'] = new Array();
		//submenu['menu1_1_2'][0] = menuItem('check test','http://www.google.nl','_blank');
		//submenu['menu1_1_2'][1] = menuItem('test again','http://www.slashdot.org','_blank');
//submenu['menu1'][5] = menuItem('This should be the last one');

//second submenu tree
submenu['menu2'] = new Array();
//submenu['menu2'][0] = menuItem('Lifestyle Programs','http://www.daantje.nl','_self');
submenu['menu2'][0] = menuItem('KEYT Weekly Segment','index.php?c=kcet_box');
submenu['menu2'][1] = menuItem('On Air Now/Local & National','index.php?c=on_air_now');
submenu['menu2'][2] = menuItem('Full Media Appearance Highlights','index.php?c=pub_app');
submenu['menu2'][3] = menuItem('Past Media','index.php?c=past_media');
submenu['menu2'][4] = menuItem('Full Media Appearances','index.php?c=media_app');

//third submenu tree
submenu['menu3'] = new Array();
submenu['menu3'][0] = menuItem('HealthGal Column Archives','index.php?c=column_archives');

//forth submenu tree
submenu['menu4'] = new Array();
submenu['menu4'][0] = menuItem('PR Articles','index.php?c=pr');

//fifth submenu tree
submenu['menu5'] = new Array();
submenu['menu5'][0] = menuItem('Medical Journalism 2005','video/Medical-Lifestyle-Corre6.wmv');
submenu['menu5'][1] = menuItem('Best of Amy 2005','video/Best-of-Amy-2005.wmv');
submenu['menu5'][2] = menuItem('Archived Videos','index.php?c=video');

//sixth submenu tree - services
submenu['menu6'] = new Array();
submenu['menu6'][0] = menuItem('Family Lifestyle Counseling','index.php?c=family_lifestyle');
submenu['menu6'][1] = menuItem('Personal Training','index.php?c=personal_training');
submenu['menu6'][2] = menuItem('Nutritional Counseling','index.php?c=nutritional_counseling');
submenu['menu6'][3] = menuItem('Corporate Wellness','index.php?c=corporate_wellness');
submenu['menu6'][4] = menuItem('Lectures','index.php?c=lectures_presentations');

//seventh submenu tree - articles
submenu['menu7'] = new Array();
submenu['menu7'][0] = menuItem('Health & Well being &raquo;','#');

		/* 1 level deeper menu */
		submenu['menu7_0'] = new Array();
		submenu['menu7_0'][0] = menuItem('Anti-aging & Longevity','index.php?c=article_sub&sub_name=Anti-aging_and_Longevity');
		submenu['menu7_0'][1] = menuItem('Disease States','index.php?c=article_sub&sub_name=Disease_States');		
		submenu['menu7_0'][2] = menuItem('Medical Health','index.php?c=article_sub&sub_name=Medical_Health');
		submenu['menu7_0'][3] = menuItem('General Health','index.php?c=article_sub&sub_name=General_Health');
		submenu['menu7_0'][4] = menuItem('Health Tips of the Week','index.php?c=health_tips_of_week');
		submenu['menu7_0'][5] = menuItem('Useful Health Tips','index.php?c=10rules');

submenu['menu7'][1] = menuItem('Diet & Exercise &raquo;','#');

		/* 1 level deeper menu */
		submenu['menu7_1'] = new Array();
		submenu['menu7_1'][0] = menuItem('Diets','index.php?c=article_sub&sub_name=Diets');
		submenu['menu7_1'][1] = menuItem('Fitness','index.php?c=article_sub&sub_name=Fitness');
		submenu['menu7_1'][2] = menuItem('Holiday Health','index.php?c=article_sub&sub_name=Holiday_Health');
		submenu['menu7_1'][3] = menuItem('Lifestyle Issues/Lifestyle Change','index.php?c=article_sub&sub_name=Lifestyle_Issues');		
		submenu['menu7_1'][4] = menuItem('Nutritional Health','index.php?c=article_sub&sub_name=Nutritional_Health');
		submenu['menu7_1'][5] = menuItem('Diet and Diet Book Reviews','index.php?c=article_sub&sub_name=Diet_and_Diet_Book_Reviews');
		submenu['menu7_1'][6] = menuItem('Eat Right For Your Stage in Life','index.php?c=article&art_name=eatright.php');

submenu['menu7'][2] = menuItem('Outer Beauty &raquo;','#');

		/* 1 level deeper menu */
		submenu['menu7_2'] = new Array();
		submenu['menu7_2'][0] = menuItem('Skincare','index.php?c=article_sub&sub_name=Skincare');
		submenu['menu7_2'][1] = menuItem('Sun Safety/Sun Care/Skin Cancer Prevention','index.php?c=article_sub&sub_name=Sun_Safety');
		submenu['menu7_2'][2] = menuItem('Cosmetics','index.php?c=article_sub&sub_name=Cosmetics');

submenu['menu7'][3] = menuItem('Sex & Pregnancy & Family <br>Health &raquo;','#');

		/* 1 level deeper menu */
		submenu['menu7_3'] = new Array();
		submenu['menu7_3'][0] = menuItem('Sexual Health','index.php?c=article_sub&sub_name=Sexual_Health');
		submenu['menu7_3'][1] = menuItem('Pre & Post Natal','index.php?c=article_sub&sub_name=Pre_and_Post_Natal');
		submenu['menu7_3'][2] = menuItem('Maternal Health','#');

submenu['menu7'][4] = menuItem('Internet Health &raquo;','#');
		/* 1 level deeper menu */
		submenu['menu7_4'] = new Array();
		submenu['menu7_4'][0] = menuItem('Internet Pharmacy Revolution','index.php?c=article&art_name=internet_pharmacy_rev.php');
		submenu['menu7_4'][1] = menuItem('Seeking Medical Advice Online','index.php?c=article&art_name=onlinemedical.php');

submenu['menu7'][5] = menuItem('Travel Health &raquo;','#');
		/* 1 level deeper menu */
		submenu['menu7_5'] = new Array();
		submenu['menu7_5'][0] = menuItem('Healthy Traveler','index.php?c=article&art_name=The_Healthy_Traveler.php');
		submenu['menu7_5'][1] = menuItem('Safety While Traveling','index.php?c=article&art_name=safety_while_traveling.php');
		submenu['menu7_5'][2] = menuItem('Travel Annoyances Travel Dangers','index.php?c=article&art_name=travel_dangers.php');

submenu['menu7'][6] = menuItem('New Products & New Trends &raquo;','#');

		/* 1 level deeper menu */
		submenu['menu7_6'] = new Array();
		submenu['menu7_6'][0] = menuItem('Medical','index.php?c=article_sub&sub_name=Medical');
		submenu['menu7_6'][1] = menuItem('Food &raquo;','#');
			/* 2 level deeper menu */
			submenu['menu7_6_1'] = new Array();
			submenu['menu7_6_1'][0] = menuItem('Foods That Foster Peace','index.php?c=article&art_name=food_fosters_peace.php');
		
		submenu['menu7_6'][2] = menuItem('Fitness','index.php?c=article_sub&sub_name=New_Products_and_Trends_Fitness');

submenu['menu7'][7] = menuItem('For A Cause &raquo;','#');
		/* 1 level deeper menu */
		submenu['menu7_7'] = new Array();
		submenu['menu7_7'][0] = menuItem('Shopping List Breast Cancer','index.php?c=article&art_name=shop_for_cure.php');

submenu['menu7'][8] = menuItem('End of Life Issues &raquo;','#');
		/* 1 level deeper menu */
		submenu['menu7_8'] = new Array();
		submenu['menu7_8'][0] = menuItem('The Right to Life/The Right to Die','index.php?c=article&art_name=right_to_life.php');
		

//eighth submenu tree - articles
submenu['menu8'] = new Array();
//submenu['menu8'][0] = menuItem('PR','index.php?c=pr_contact');
submenu['menu8'][0] = menuItem('Manager','index.php?c=manager_contact');


//ninth submenu tree - ARTICLE OF THE WEEK
submenu['menu9'] = new Array();
submenu['menu9'][0] = menuItem('Eat Right For Your Stage in Life','index.php?c=article&art_name=eatright.php');


// tenth submenu tree
submenu['menu10'] = new Array();
submenu['menu10'][0] = menuItem('Amy on Voice America','index.php?c=voa');
submenu['menu10'][1] = menuItem('Amy on Graham Besinger Show','index.php?c=graham_show');

// END OF EXAMPLE CONFIG


//build or unhide submenu div...
function buildSubmenu(obj){
	lastOverId = obj.id;

	//get common part of div id
	menuPath = obj.id.split('_');

	//unset mousout of parent menus and make sure they are visible...
	x = "div";
	for(i=0;i<menuPath.length;i++){
		x+= '_' + menuPath[i];
		if(document.getElementById(x)){
			if(tmr[x])
				window.clearTimeout(tmr[x]);
			document.getElementById(x).style.visibility = 'visible';
		}
	}

	//check if we have a submenu of the obj...
	if(submenu[obj.id]){
		//check if allready build...
		c = document.getElementById('div_' + obj.id);
		if(c){
			//unhide...
			c.style.visibility = 'visible';
			c.style.zIndex = last_zIndex++;
		}else{
			//calc position of mouseover
			d = obj;
			if(d){
				L_pos = d.offsetLeft + d.offsetWidth - 1;
				T_pos = d.offsetTop;
				while(d.offsetParent){
					d = d.offsetParent;
					L_pos+= d.offsetLeft;
					T_pos+= d.offsetTop;
				}
			}

			//patch first submenu to go right below the main buttons...
			if(obj.className.indexOf('menuItem') < 0 && alignSubmenu == 'bottom'){
				L_pos-= obj.offsetWidth;
				T_pos+= obj.offsetHeight;
			}

			//move the submenu (overlap?)
			if((adjustTop || adjustLeft) && (adjustFirst || (!adjustFirst && obj.className.indexOf('menuItem') >= 0))){
				L_pos+= adjustLeft;
				T_pos+= adjustTop;
			}

			//build new div
			subObj = document.createElement('div');
			subObj.id = 'div_' + obj.id;
			subObj.className = 'submenu';
			subObj.style.position = 'absolute';
			subObj.style.zIndex = last_zIndex++;
			subObj.style.width = menuWidth;
			subObj.style.top = T_pos + "px";
			subObj.style.left = L_pos + "px";

			//write div to the body...
			document.getElementsByTagName('body')[0].appendChild(subObj);

			//build html for submenu
			content = "";
			m = submenu[obj.id];
			for(i=0;i<m.length;i++){

				//determin target for onclick...
				//	(sorry, I should rewrite this routine...)
				if(!m[i][2] || m[i][2] == '_self')
					act = "self.location.href='" + m[i][1] + "';";
				else if(m[i][2] == '_top')
					act = "top.location.href='" + m[i][1] + "';";
				else if(m[i][2] == '_blank')
                    act = "window.open('" + m[i][1] + "');";
				else
					act = "window.frames['"+m[i][2]+"'].location.href='" + m[i][1] + "';";

				//make item
				content+= "<div onmouseout=\"hideSubmenu(this)\" onmouseover=\"buildSubmenu(this)\" "+ (m[i][1] ? "onclick=\""+ act + "\" " : "") +"class=menuItem" + (i==0 ? 'First' : (i==(m.length -1) && useLastItemCSS ? 'Last' : '')) + " id=\"" + obj.id + "_" + i +"\">" + m[i][0] + "</div>";
				adj[i] = obj.id + "_" + i;
			}

			//insert new menu
			subObj.innerHTML = content;

			//make all just made div's the same width...
			for(i=0;i<adj.length;i++)
				document.getElementById(adj[i]).style.width = subObj.style.width;
		}
	}
}

//hide a submebu div
function hideSubmenu(obj){
	//get common part of div id
	closePath = obj.id.split('_');

	//hide path
	x = "div";
	for(i=0;i<closePath.length;i++){
		x+= '_' + closePath[i];
		if(document.getElementById(x))
			tmr[x] = window.setTimeout("document.getElementById('"+x+"').style.visibility = 'hidden';",500);
		//The timeout above is needed for MSIE browsers... Or else the menu's will disapear on EVERY mousout!!!
		//Please get a normal browser like Firefox, Mozilla or Opera!!
	}
}

//add an menu item to the config array (called in the config lines)
function menuItem(txt,url,tar){
	return new Array(txt,url,tar);
}

//*** Patch for firefox bug with focus on mouseover...
//		This function should be called onMouseOver of every iFrame that's under the menu structure.
function iFramePatch(){
	if(!document.all && lastOverId)
		hideSubmenu(document.getElementById(lastOverId));
}

//*** Now a patch for MSIE lag of CSS2 compliance!!
if(navigator.userAgent.indexOf('MSIE')>=0 && navigator.userAgent.indexOf('Opera')==-1){
	document.onmouseover = function(){
		obj = event.srcElement;
		if(obj.className == 'menuItemFirst' || obj.className == 'menuItem' || obj.className == 'menuItemLast')
			obj.className+='Over';
	}
	document.onmouseout = function(){
		obj = event.srcElement;
		if(obj.className == 'menuItemFirstOver' || obj.className == 'menuItemOver' || obj.className == 'menuItemLastOver')
			obj.className = obj.className.substring(0,(obj.className.length - 4));
	}
}

//*** Patch for wrong position after resize... Just reload to reset, not nice, fix later!
window.onresize = function(){
	self.location.href = self.location.href;
}