/*
                                                                                
	OPENSHARE MENU written by Adam Wright 2004 -	all rights reserved             
	--------------------------------------------------------------------------   
	                                                                             
	Instructions:                                                                
	                                                                             
	1) Insert the following code in the .tpl where you want the menu to appear   
	                                                                             
		<script language="Javascript">                                            
			var folderID = "##WF_DirID##";                                         
		</script>                                                                 
		<script language="Javascript" src="/MENU_include1.js"></script>           
		<script language="Javascript" src="/MENU_include2.js"></script>           
                                                                                
	2) Both MENU_include files need to be in the root of the site                
	   (MENU_include2.js is compiled by openshare)                               
		                                                                          
	3) Define HTML for each "Level" under DEFINE STYLES                          
	   - unselectedHTML defines the HTML surrounding a normal menu item          
		- slctSingleHTML defines the HTML surrounding a selected menu item which  
		  does NOT have sub menu items                                            
		- slctParentHTML defines the HTML surrounding a selected menu item which  
		  DOES have sub menu items                                                
		                                                                          
		  <mTEXT> tag is the placeholder for the menu text                        
		  <mHREF> tag is the placeholder for the menu url                         
		                                                                          
		- levelStyleHTML defines the HTML surrounding each entire level block of  
		  menu items                                                              
		                                                                          
		  <MENU>  tag is the placeholder for the level                            
	                                                                             
*/




	// *** DECLARE VARIABLES

		var Mitem          = new Array();
		var unselectedHTML = new Array();
		var slctSingleHTML = new Array();
		var slctParentHTML = new Array();
		var levelStyleHTML = new Array();
		var strHTML        = "";
		var folderID




	// *** DEFINE STYLES
		
		unselectedHTML[1] = "<tr><td width='30'><img src='/gfx/blank.gif' width='1' height='21'></td><td width='93'><a href='<mHREF>' class='atop'><mTEXT></a></td><td width='30'>&nbsp;</td></tr>";
		slctSingleHTML[1] = "<tr><td><img src='/gfx/menu_selected_left2.gif' width='30' height='21'></td><td background='/gfx/menu_selected_middle2a.gif'><a href='<mHREF>' class='atop'><b><mTEXT></b></a></td><td><img src='/gfx/menu_selected_right2.gif' width='30' height='21'></td></tr><tr bgcolor='#006666'><td colspan='3'><img src='/gfx/blank.gif' width='1' height='1'></td></tr>";
		slctParentHTML[1] = "<tr><td><img src='/gfx/menu_selected_left2.gif' width='30' height='21'></td><td background='/gfx/menu_selected_middle2a.gif'><a href='<mHREF>' class='atop'><b><mTEXT></b></a></td><td><img src='/gfx/menu_selected_right2.gif' width='30' height='21'></td></tr>";
		levelStyleHTML[1] = "<MENU>"
		
		unselectedHTML[2] = "<tr bgcolor='#FFFFFF'><td colspan='3'><img src='/gfx/blank.gif' width='1' height='6'></td></tr><tr bgcolor='#FFFFFF'><td><img src='/gfx/blank.gif' width='1' height='1'></td><td><p><a class='asub' href='<mHREF>'><font style='font-family: verdana, helvetica, sans-serif; font-size:11px;'><mTEXT></font></a></p></td><td>&nbsp;</td></tr>";
		slctSingleHTML[2] = "<tr bgcolor='#FFFFFF'><td colspan='3'><img src='/gfx/blank.gif' width='1' height='6'></td></tr><tr bgcolor='#FFFFFF'><td><img src='/gfx/blank.gif' width='1' height='1'></td><td><p><a class='asub' href='<mHREF>'><b><mTEXT></b></a></p></td><td>&nbsp;</td></tr>";
		slctParentHTML[2] = "<tr bgcolor='#FFFFFF'><td colspan='3'><img src='/gfx/blank.gif' width='1' height='6'></td></tr><tr bgcolor='#FFFFFF'><td><img src='/gfx/blank.gif' width='1' height='1'></td><td><p><a class='asub' href='<mHREF>'><b><mTEXT></b></a></p></td><td>&nbsp;</td></tr>";
		levelStyleHTML[2] = "<MENU><tr bgcolor='#FFFFFF'><td colspan='3'><img src='/gfx/blank.gif' width='1' height='6'></td></tr><tr bgcolor='#006666'><td colspan='3'><img src='/gfx/blank.gif' width='1' height='1'></td></tr><tr><td colspan='3'><img src='/gfx/blank.gif' width='1' height='9'></td></tr>"
		
		unselectedHTML[3] = "<tr bgcolor='#FFFFFF'><td colspan='3'><img src='/gfx/blank.gif' width='1' height='3'></td></tr><tr bgcolor='#FFFFFF'><td><img src='/gfx/blank.gif' width='1' height='1'></td><td><a class='asubsub' href='<mHREF>'><font style='font-family: verdana, helvetica, sans-serif; font-size:11px;'><mTEXT></font></a></td><td>&nbsp;</td></tr>";
		slctSingleHTML[3] = "<tr bgcolor='#FFFFFF'><td colspan='3'><img src='/gfx/blank.gif' width='1' height='3'></td></tr><tr bgcolor='#FFFFFF'><td><img src='/gfx/blank.gif' width='1' height='1'></td><td><a class='asubsub' href='<mHREF>'><font style='font-family: verdana, helvetica, sans-serif; font-size:11px;'><b><mTEXT></b></font></a></td><td>&nbsp;</td></tr>";
		slctParentHTML[3] = "<tr bgcolor='#FFFFFF'><td colspan='3'><img src='/gfx/blank.gif' width='1' height='3'></td></tr><tr bgcolor='#FFFFFF'><td><img src='/gfx/blank.gif' width='1' height='1'></td><td><a class='asubsub' href='<mHREF>'><font style='font-family: verdana, helvetica, sans-serif; font-size:11px;'><b><mTEXT></b></font></a></td><td>&nbsp;</td></tr>";
		levelStyleHTML[3] = "<MENU><tr bgcolor='#FFFFFF'><td colspan='3'><img src='/gfx/blank.gif' width='1' height='12'></td></tr>"
		
		unselectedHTML[4] = "<a href='<mHREF><font style='font-family: verdana, helvetica, sans-serif; font-size:11px;'><mTEXT></font></a><br>";
		slctSingleHTML[4] = "<a href='<mHREF><font style='font-family: verdana, helvetica, sans-serif; font-size:11px; color:ff0000''><mTEXT></font></a><br>";
		slctParentHTML[4] = "<a href='<mHREF><font style='font-family: verdana, helvetica, sans-serif; font-size:11px; color:ff0000''><mTEXT></font></a><br>";
		levelStyleHTML[4] = "<MENU>"
		
		unselectedHTML[5] = "<a href='<mHREF><font style='font-family: verdana, helvetica, sans-serif; font-size:11px;'><mTEXT></font></a><br>";
		slctSingleHTML[5] = "<a href='<mHREF><font style='font-family: verdana, helvetica, sans-serif; font-size:11px; color:ff0000''><mTEXT></font></a><br>";
		slctParentHTML[5] = "<a href='<mHREF><font style='font-family: verdana, helvetica, sans-serif; font-size:11px; color:ff0000''><mTEXT></font></a><br>";
		levelStyleHTML[5] = "<MENU>"




	// *** MENU FUNCTIONS

		function MENU_item(_text,_href,_level,_osid,_priority) 
		{

			this.text     = _text;
			this.href     = _href;
			this.level    = _level;
			this.osid     = _osid;
			this.priority = _priority;
			this.draw     = 0;
			this.expanded = 0;
		}


		function MENU_init()
		{
		// set priority 77 for family sets
			var parent77 = 0;
			for(i=0; i<Mitem.length;i++)
			{
				if (Mitem[i].priority=="77")
				{
					parent77 = i;
				}
				else if (parent77>0)
				{
					if (Mitem[i].level > Mitem[parent77].level)
					{
						Mitem[i].priority = "77";
					}
					else if (Mitem[i].level <= Mitem[parent77].level)
					{
						parent77 = 0;
					}
				}
			}
		// search for current folder
			if (folderID > 1 && folderID!=365)
			{
				for (i=0;i<Mitem.length;i++)
				{
					if (Mitem[i].osid == folderID)
					{
						if (i<Mitem.length-1)
						{
							if (Mitem[i+1].level>Mitem[i].level)
							{
								Mitem[i].expanded = 1;
							}
						}
						expandItm = i;
						expandItmLvl = Mitem[i].level;
					}
				}
		// search back from current folder for visible items
				expandLvl = expandItmLvl;
				for (i=expandItm;i>-1;i--)
				{
					if (Mitem[i].level <= expandLvl)
					{
						if (Mitem[i].priority!="77") Mitem[i].draw = 1;
						if (Mitem[i].level < expandLvl)
						{
							Mitem[i].expanded = 1;
							expandLvl = Mitem[i].level;
						}
					}
				}
			}
		// search forward from current folder for visible items
			if (folderID == 1 || folderID == 365) // cater for home page not being in the menu structure
			{
				i            = 0;
				expandItm    = -1;
				expandItmLvl = 0;
			}
			if (i<Mitem.length-1)
			{
				expandLvl = expandItmLvl+1;
				for (i=expandItm+1;i<Mitem.length;i++)
				{
					if (Mitem[i].level <= expandLvl)
					{
						if (Mitem[i].priority!="77") Mitem[i].draw = 1;
						if (Mitem[i].level < expandLvl)
						{
							expandLvl = Mitem[i].level;
						}
					}
				}
			}
		// assign level styles
			expandLvl  = 0;
			arrHeaders = new Array();
			arrFooters = new Array();
			for (i=0;i<Mitem.length;i++)
			{
				if (Mitem[i].draw) 
				{
					// assign headers
					if (Mitem[i].level > expandLvl)
					{
						arrHeaders[Mitem[i].level] = i;
					}
					// assign footers
					arrFooters[Mitem[i].level] = i;
					expandLvl = Mitem[i].level;
				}
			}
			// reassign footers
			for (i=1;i<arrFooters.length;i++)
			{
				if (Mitem[arrFooters[i]].expanded)
				{
					arrFooters[i] = arrFooters[i+1];
				}
			}
		// draw menu
			expandLvl = 0;
			for (i=0;i<Mitem.length;i++)
			{
				if (Mitem[i].draw) 
				{
					strTempHTML = "";					
					expandLvl   = Mitem[i].level;
					arrLevlHTML = levelStyleHTML[Mitem[i].level].split("<MENU>");
					if (arrHeaders[Mitem[i].level] = i) strTempHTML = arrLevlHTML[0];
					if (i==expandItm || Mitem[i].expanded)
					{
						if (Mitem[i].expanded)
						{
							strTempHTML += slctParentHTML[Mitem[i].level];
						}
						else
						{
							strTempHTML += slctSingleHTML[Mitem[i].level];
						}
					}
					else
					{
						strTempHTML += unselectedHTML[Mitem[i].level];
					}
					arrTempHTML = strTempHTML.split("<mTEXT>");
					strTempHTML = arrTempHTML[0];
					for (j=1;j<arrTempHTML.length;j++)
					{
						strTempHTML += Mitem[i].text + arrTempHTML[j];
					}
					arrTempHTML = strTempHTML.split("<mHREF>");
					strTempHTML = arrTempHTML[0];
					for (j=1;j<arrTempHTML.length;j++)
					{
						strTempHTML += Mitem[i].href + arrTempHTML[j];
					}
					for (j=arrFooters.length-1;j>0;j--)
					{
						arrLevlHTML = levelStyleHTML[j].split("<MENU>");
						if (arrFooters[j] == i) strTempHTML += arrLevlHTML[1];
					}
					strHTML += strTempHTML;
				}
			}
			document.write(strHTML);
		}
