
//See healthecare.framework.nav.MenuConstants.java
var MENU_ITEM_TEXT_INDEX       = 0;
var MENU_ITEM_HREF_INDEX       = 1; // either HRef or PageId is returned
var MENU_ITEM_PAGE_ID_INDEX    = 1;
var MENU_ITEM_STATE_INDEX      = 2;
var MENU_ITEM_TEXT_IMAGE_INDEX = 3; //image that can either replace menu text, or be appended to menu text; key is same vertical spacing.

var MENU_STATE_ENABLED  = 0;
var MENU_STATE_SELECTED = 1;
var MENU_STATE_DISABLED = 2;

function constructSubMenuItem(item, isRoot)
{
   var html="";
   var currentItem =  getMenuTextOnly(item [ MENU_ITEM_TEXT_INDEX  ]);
   var href        =                  item [ MENU_ITEM_HREF_INDEX  ] ;
   var isSelected  =                ( item [ MENU_ITEM_STATE_INDEX ] == MENU_STATE_SELECTED );
   var selClassPostfix = (isSelected) ? "Select" : "Normal" ;
   var classRoot = (isRoot) ? "RootWhite" : "" ;

   selClassPostfix += classRoot;


   if (isNetscape4)
   {
      html +="<tr><td colspan=\"2\" class=\"sideMenuBorder\"><img src=\"../images/spacer.gif\" width=\"1\" height=\"1\"></td></tr>\n"
           +"    <tr><td colspan=\"2\" class=\"sideMenu" + selClassPostfix +"\">\n"
           +"      <table cellpadding=\"0\" cellspacing=\"4\" border=\"0\"><tr><td class=\"sideMenu" + selClassPostfix +"\">"
           +"      <A href='" + href + "'>" + currentItem + "</a>\n"
           +"      </td></tr></table>"
           +"    </td></tr>";
   }
   else
   {
      var handStyle = (isIE) ? "hand" : "pointer";
      var hover="";
      if (!isSelected)
      {
         hover = " onmouseover=\"this.className='sideMenu" + selClassPostfix + "Hover'\" onmouseout=\"this.className='sideMenu" + selClassPostfix + "'\"";
      }
      var padding = (isRoot) ? 5 : 10 ;

      html +="<tr><td colspan=\"2\" class=\"sideMenuBorder\"><img src=\"../images/spacer.gif\" width=\"1\" height=\"1\"></td></tr>\n"
           +"    <tr><td colspan=\"2\" class=\"sideMenu" + selClassPostfix +"\" style=\"padding:5px; padding-left:" + padding + "px; cursor:" + handStyle + ";\" onclick='" + href + "'" + hover + "><a class=\"sideMenu" + selClassPostfix +"\" href=" + href + ">" + currentItem + "</a>\n";
           +"    </td></tr>";
   }

   return html;
}




function rootMenu(isActive, items)
{
   var count = items.length;
   var currentItem;

   for (var i=0; i < count; i++)
   {
      if ( items[ i ][ MENU_ITEM_STATE_INDEX ] == MENU_STATE_SELECTED )
      {
         currentItem = items[i];
         break;
      }
   }

   if (!isActive) currentItem [ MENU_ITEM_STATE_INDEX ] = MENU_STATE_ENABLED;
   return constructSubMenuItem(currentItem, true);
}

function mainMenu(items)
{
   var currentItem;
   var html = "";
   var itemCount = items.length;
   var selClass;
   var isSelected;

   for( var i=0; i < itemCount; i++ )
   {
      currentItem =  getMenuTextOnly(items[ i ][ MENU_ITEM_TEXT_INDEX  ]);
      href        =                  items[ i ][ MENU_ITEM_HREF_INDEX  ] ;
      isSelected  =                ( items[ i ][ MENU_ITEM_STATE_INDEX ] == MENU_STATE_SELECTED );

      selClass = (isSelected) ? "Select" : "" ;

      if (isNetscape4)
      {
         html += "<td nowrap class=\"topMenu" + selClass + "\">&nbsp;&nbsp;<A href='" + href + "'>" + currentItem
              +"</a>&nbsp;&nbsp;</td>\n";
      }
      else
      {
         var hover ="";
         if (!isSelected)
         {
            hover = " onmouseover=\"this.className='topMenu" + selClass + "Hover'\" onmouseout=\"this.className='topMenu" + selClass + "'\"";
         }

         var handStyle = (isIE) ? "hand" : "pointer";

         html += "<td nowrap class=\"topMenu" + selClass + "\"" + hover + " style=\"cursor:" + handStyle + ";\" onclick='" + href + "'>&nbsp;&nbsp;<span><a href=" + href + ">" + currentItem
              +  "</a></span>&nbsp;&nbsp;</td>\n";
      }

      html += "<td class=\"menuBorder\">|</td> \n";
   }
   
   return html;
}


function subMenu(items)
{
   var html = "";
   var itemCount = items.length;

   for( var i=0; i < itemCount; i++ )
   {
  
      var currentItem = items[i];
      html += constructSubMenuItem(currentItem, false);
   }

   return html;
}

function subMainMenu(isActive, items, subitems)
{
   var html = "";
   var itemCount = items.length;

   for( var i=0; i < itemCount; i++ )
   {
      
      var currentItem = items[i];
      var selectedItem  = ( currentItem [ MENU_ITEM_STATE_INDEX ] == MENU_STATE_SELECTED );
      //alert("Is item selected?:" + selectedItem);
      if (!isActive) currentItem [ MENU_ITEM_STATE_INDEX ] = MENU_STATE_ENABLED;
      //alert("Is item selected?:" + currentItem);
      html += constructSubMenuItem(currentItem, true);
      if (selectedItem) {
      	//alert("inside selected");
         html += subMenu(subitems);	
      }
   }
   
   return html;
}

function subMainMenuRoot(items)
{
   var html = "";
   var itemCount = items.length;

   for( var i=0; i < itemCount; i++ )
   {
      var currentItem = items[i];
      html += constructSubMenuItem(currentItem, true);
    
   }
   
   return html;
}

function iconMenu(items)
{
   var html = "";
   var itemCount = items.length;
   var menuHref;
   var menuText;
   var menuIcon;

   if (itemCount==0) return "";

   for (var i=0; i < itemCount; i++)
   {
      menuText = getMenuTextOnly(items[ i ][ MENU_ITEM_TEXT_INDEX       ]);
      menuHref =                 items[ i ][ MENU_ITEM_HREF_INDEX       ] ;
      menuIcon =                 items[ i ][ MENU_ITEM_TEXT_IMAGE_INDEX ] ;
      html += "| &nbsp;<a href="+menuHref+" class='topNav'>"+menuText+"<img src='"+menuIcon+"' vspace='0' hspace='2' border='0' width='9' height='10'></a>&nbsp; ";
   }
   return html + "|";
}

function inlineMenu( menu )
{
   var menuText;
   var menuHref;
   var html      = "";
   var itemCount = menu.length;

   for( var i=0; i < itemCount; i++ )
   {
      menuText   = getMenuTextOnly(menu[ i ][ MENU_ITEM_TEXT_INDEX    ]);
      menuHref =                   menu[ i ][ MENU_ITEM_PAGE_ID_INDEX ] ;

      html+= "<A href="+menuHref+" class='inlineMenu'>"+menuText+"</a> &nbsp;";
   }
   return html;
}


function relatedInfoMenu(items)
{
   var prompt;
   var href;
   var html = "";
   var itemCount = items.length;

   for( var i=0; i < itemCount; i++ )
   {
      prompt = getMenuTextOnly(items[ i ][ MENU_ITEM_TEXT_INDEX  ]);
      href   =                 items[ i ][ MENU_ITEM_HREF_INDEX  ] ;

      html += "<br><img src='/healthecare/images/spacer.gif' width='1' height='5'>";
      html += "<br><a href='" +href+ "' class='relatedInfo'>" +prompt+ "</a>";
   }
   return html;
}

//Replaces with spaces, (all) pipes used by menu system to denote word wrap positions.
function getMenuTextOnly( text )
{
   return text.replace( /\|/g, " " );
}


// Converts all tab menu text "|" into "<br>"s.
function tabTextWrap( text )
{
   return text.replace( /\|/g, "<br>" );
}

//Returns an expanded menu tree in html; created to support CasaView.
function menuTreeToExpandedFlatMenu( tree )
{
   var menuText ;
   var menuHref ;
   var menuState;
   var isPrimaryTab;
   var items;
   var itemCount;
   var style;

   var menuDepth = tree.length;
   var image     = "/healthecare/ui/casaviews/images/tabcorner_top.gif" ;
   var html      = "";

   for( var depth=0; depth < menuDepth; depth++ )
   {
      isPrimaryTab = true;

      items     = tree[ depth ];
      itemCount = items.length

      for( var i=0; i < itemCount; i++ )
      {
         menuText  = getMenuTextOnly(items[ i ][ MENU_ITEM_TEXT_INDEX  ]);
         menuHref  =                 items[ i ][ MENU_ITEM_HREF_INDEX  ] ;
         menuState =                 items[ i ][ MENU_ITEM_STATE_INDEX ] ;

         html +=  "<tr><td width=\"5\" valign=\"top\">" ;

         if( isPrimaryTab )
         {
           html += "<img src=\"" + image + "\">";
           style = "primaryTab";
         }

         html += "</td>";
         html += "<td class=\"" + style + "\">";

         if (menuState == MENU_STATE_SELECTED)
         {
             html +=  "<span class=\"tabLinkSelected\">" +  menuText +"</span>";
         }
         else if (menuState == MENU_STATE_ENABLED)
         {
             html +=  "<a href='" + menuHref + "' class=\"tabLinkActive\">" + menuText + "</a>";
         }
         else
         {
             html +=  "<span class=\"tabLinkInactive\">" + menuText + "</span>";
         }

         html += "</td>" ;
         html += "</tr>" ;
         html += "\n";

         //reset tab image stuff.
         isPrimaryTab = false;
         image        = "/healthecare/ui/casaviews/images/tabcorner_reg.gif";
         style        = "secondaryTab";
      }
   }
   return html;
}


//Returns an HTML <select>...<option> string; created to support CasaView.
function menuToHtmlOptions( menu )
{
   var menuText;
   var menuPageId;
   var isEnabled;

   var html      = "";
   var itemCount = menu.length;

   for( var i=0; i < itemCount; i++ )
   {
      menuText   = getMenuTextOnly(menu[ i ][ MENU_ITEM_TEXT_INDEX    ]);
      menuPageId =                 menu[ i ][ MENU_ITEM_PAGE_ID_INDEX ] ;
      isEnabled  =                (menu[ i ][ MENU_ITEM_STATE_INDEX   ] == MENU_STATE_ENABLED) ;

      if( isEnabled )
      {
         html+= "\n <option value=\""+ menuPageId +"\">"+ menuText +"</option>" ;
      }
   }
   return html;
}



