// Copyright (c) 2004 Mental Models, Inc. All rights reserved.

var supportableBrowser = true;

ie = ( document.all ) ? 1 : 0;
var isMinNS4 = (navigator.appName.indexOf("Netscape") >= 0 && parseFloat(navigator.appVersion) >= 4) ? 1 : 0;
var isMinNS6 = (isMinNS4 && navigator.userAgent.indexOf("Gecko")>=0) ? 1 : 0;
var isMinIE4 = (document.all) ? 1 : 0;
var isMinIE5 = (isMinIE4 && navigator.appVersion.indexOf("5.")) >= 0 ? 1 : 0;
var isDOM = (document.getElementById) ? 1 : 0;
var detect = navigator.userAgent.toLowerCase();
var mac = false;
var netMac = false;
if ( ( detect.indexOf("mac") + 1 ) ) {
  if ( ie )
    mac = true;
  else netMac = true;
}

menuList = new Array();
var MainHtml = "";
var selectedMenuHtml = "";
TId=null;
var activeMenu = "";
var waitTimeForMainMenu = 1000;
var waitTimeForSubMenu = 500;
var waitTimeBeforeOpen = 400;
var delayedMenuId = '';
var delayedId = 0;

function checkSupportedBrowser ( ) {
  var agt=navigator.userAgent.toLowerCase(); 
  major = parseInt(navigator.appVersion); 

  nav  = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1) 
                  && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1) 
                  && (agt.indexOf('webtv')==-1)); 
  nav6up = (nav && (major >= 5));
  ie   = (agt.indexOf("msie") != -1); 
  if ((verOffset=agt.indexOf("msie"))!=-1) {
   fullVersion = parseFloat(agt.substring(verOffset+5,agt.length));
   major = parseInt(''+fullVersion);
  }

  ie5up  = (this.ie  && (major >= 5)); 

  if ( ( nav && nav6up ) || ( ie && ie5up ) ) {
    supportableBrowser = true;
   } else {
    supportableBrowser = false;
    location.href="UnsupportedBrowser.jsp";
   }
}

checkSupportedBrowser ( );

function MenuList ( x, y ) {
  this.list = new Array();
  this.addMenuItem = addMenuItem;
  this.x = x;
  this.y = y;
  this.menuId = null;
  this.over = false;
}

function addMenuItem ( menu ) {
  this.list[this.list.length] = menu;
}

function MenuItem ( text, url ) {
  this.text = text;
  this.url = url;
}

function onMenuMouseOver(menuItem) { 
  menuList[menuItem].over = true;
}

function onMenuMouseOut(menuItem) 
{
  menuList[menuItem].over = false;
  setHideTimeOut(waitTimeBeforeOpen)
}

function setHideTimeOut(waitTime)
{
    if ( TId != null )
    {
        clearTimeout(TId);
    }
    TId = setTimeout ("hideIfNotMouseOver();",waitTime);
}

function hideAll ( ) {
  for(index=0;index<menuList.length;index++)
  {
     
     var layer;
     var HLayer;
     if (!ie && document.layers ) {
       layer = document.layers["Layer"+index];
     }
     if (ie) {
       layer = document.all["Layer"+index].style;
     } else {
       layer = document.getElementById("Layer"+index).style;
     }
    
     layer.visibility = "hidden";

  }
}

function hideIfNotMouseOver()
{
    clearTimeout(TId);
    TId=null;
    
    if ( testIfMouseOver() == false )
    {
        hideAll();
    }
}

function testIfMouseOver()
{
    mouseOver=false;
    for(index=0;index<menuList.length;index++)
    {
      if ( menuList[index].over == true ) {
        mouseOver = true;
        break;
      }
    }
    return mouseOver;
}

function showDelayedMenu ( menu ) {
  if ( delayedMenuId.indexOf(menu) != -1 && menu.length == delayedMenuId.length )
  {
    return;
  }

  if ( delayedId ) {
    clearTimeout(delayedId);
    delayedId = 0;
  }
      
  hideAll();
      
  setTimeout ("showMenuFromDelay('"+menu+"');",waitTimeBeforeOpen);
 }
 
 function showMenuFromDelay ( menu ) 
 {
 
  hideAll();

   delayedId = 0;
   
   var layer;
   var HLayer;
   if (!ie && document.layers ) {
      layer = document.layers["Layer"+menu];
   }
   if (ie) {
     layer = document.all["Layer"+menu].style;
   } else {
     layer = document.getElementById("Layer"+menu).style;
   }
    
   
   layer.visibility = "visible";
   
   delayedMenuId = '';
 }

function findLayer(name, doc) {

  var i, layer;

  for (i = 0; i < doc.layers.length; i++) {
    layer = doc.layers[i];
    if (layer.name == name)
      return layer;
    if (layer.document.layers.length > 0) {
      layer = findLayer(name, layer.document);
      if (layer != null)
        return layer;
    }
  }

  return null;
}

function getLayer(name) {
  if (isDOM)
    return document.getElementById(name);
  if (isMinNS4)
    return findLayer(name, document);
  if (isMinIE4)
    return eval('document.all.' + name);
  return null;
}

function getHeight(layerName) {
  var obj = document.getElementById(layerName);

  var objHeight = obj.offsetHeight;
 
  return ( obj.offsetHeight );
}

function getBottomY(layerName) {

  var obj = document.getElementById(layerName);

  // Find the element's offsetTop and offsetLeft relative to the BODY tag.
  var objTop    = obj.offsetTop;
  var objHeight = obj.offsetHeight;
  var objParent = obj.offsetParent;

  while( ( objParent ) && objParent.tagName.toUpperCase() != "BODY" && objParent.tagName.toUpperCase() != "HTML"  )
  {

    objTop   += objParent.offsetTop;
    objParent = objParent.offsetParent;
  }  

  return ( objTop + objHeight );
}

function getWidth(name) {
  var layer = getLayer(name);
  if (isDOM && !isMinNS6){
    if (layer.style.width != "")
  {
    return (layer.style.width);
    }
    else if (layer.style.width == "")
    {
      return(parseInt(layer.offsetWidth));
    }
  }
 
  if (isDOM){
    if (layer.style.width != "")
    {
      return(parseInt(layer.style.width));
    }
    else if (layer.style.width == "")
    {
    //return (layer.offsetWidth);
    return (parseInt(document.defaultView.getComputedStyle(layer, '').getPropertyValue("width")));
    }
    else {
      return(layer.clientWidth);
     }
  }
  if (isMinIE4) {
    if (layer.style.pixelWidth)
      return(layer.style.pixelWidth);
    else
      return(layer.clientWidth);
  }
  if (isMinNS4) {
    if (layer.width)
      return(layer.width);
    else
      return(layer.clip.right - layer.clip.left);
  }

  return(-1);
}

function createAllMenuHtml(){
  var html = "";

  for(index=0;index<menuList.length;index++)
  {
     menuList[index].menuId = index;
     html += "<DIV ID='Layer"+index+"' onmouseover='onMenuMouseOver("+index+");' onmouseout='onMenuMouseOut("+index+");' CLASS='FloatMenuBlock' STYLE='z-index:+999;position:absolute;left:"+menuList[index].x+";top:"+menuList[index].y+";visibility:hidden;'><TABLE>";
     for ( i = 0; i < menuList[index].list.length; i++ ) {
       html += "<TR><TD CLASS='FloatMenuCell'>";
       html += "<A HREF=\""+menuList[index].list[i].url+"\" CLASS='FloatLink' TITLE=\""+menuList[index].list[i].text+"\">"+menuList[index].list[i].text+"</A>";
       html += "</TD></TR>";
     }
     html += "</TABLE></DIV>"; 
  }
  document.writeln(html);
}

function removeMenuItems ( ) {
  menuList = new Array();
}

var menu = new MenuList ( 241, 47 );
menuList[menuList.length] = menu;
menu.addMenuItem ( new MenuItem ( 'Reaching Your Project Goals', './project_goals.html' ) );
menu.addMenuItem ( new MenuItem ( 'Our Project Management Process', './management_process.html' ) );
menu.addMenuItem ( new MenuItem ( 'Our Technical Toolbox', './technical_toolbox.html' ) );
menu = new MenuList ( 322, 47 );
menuList[menuList.length] = menu;
menu.addMenuItem ( new MenuItem ( 'Dodeca', './activeOLAP.html' ) );
menu.addMenuItem ( new MenuItem ( 'Hyperion Planning', './hyperion.html' ) );
menu.addMenuItem ( new MenuItem ( 'Essbase Consulting', './essbase.html' ) );
menu = new MenuList ( 382, 47 );
menuList[menuList.length] = menu;
menu.addMenuItem ( new MenuItem ( 'Reducing Financial Forecast Cycle Times', './reduce-financial.html' ) );
menu.addMenuItem ( new MenuItem ( 'Automating Daily Sales Reporting', './sales_reporting.html' ) );
menu.addMenuItem ( new MenuItem ( 'Improving Decision-Making to Raise Profitability', './improving_decision.html' ) );
menu = new MenuList ( 439,47 );
menuList[menuList.length] = menu;
menu.addMenuItem ( new MenuItem ( 'Meet the Team', './meet_the_team.html', '', '', true ) );
menu.addMenuItem ( new MenuItem ( 'Industry Experience and Certifications/Training', './experience_training.html' ) );
menu = new MenuList ( 500,47 );
menuList[menuList.length] = menu;
menu.addMenuItem ( new MenuItem ( 'Links to Partner Companies', './partners.html') );
menu = new MenuList ( 603,47 );
menuList[menuList.length] = menu;
menu.addMenuItem ( new MenuItem ( 'Contact Us', './contact-us.html' ) );


