// Copyright (c) 2004 Mental Models, Inc. All rights reserved.

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;
}

homeMenuList = new Array();
homeTId=null;
var waitTimeBeforeOpen = 400;
var homeDelayedMenuId = '';
var homeDelayedId = 0;

function HomeMenuList ( x, y ) {
  this.list = new Array();
  this.addHomeMenuItem = addHomeMenuItem;
  this.x = x;
  this.y = y;
  this.menuId = null;
  this.over = false;
}

function addHomeMenuItem ( menu ) {
  this.list[this.list.length] = menu;
}

function HomeMenuItem ( text, url ) {
  this.text = text;
  this.url = url;
}

function onHomeMenuMouseOver(menuItem) { 
  homeMenuList[menuItem].over = true;
}

function onHomeMenuMouseOut(menuItem) 
{
  homeMenuList[menuItem].over = false;
  setHomeHideTimeOut(waitTimeBeforeOpen)
}

function setHomeHideTimeOut(waitTime)
{
    if ( homeTId != null )
    {
        clearTimeout(homeTId);
    }
    homeTId = setTimeout ("hideIfNotMouseOverHome();",waitTime);
}

function hideAllHome ( ) {
  for(index=0;index<homeMenuList.length;index++)
  {
     
     var layer;
     var HLayer;
     if (!ie && document.layers ) {
       layer = document.layers["HomeLayer"+index];
     }
     if (ie) {
       layer = document.all["HomeLayer"+index].style;
     } else {
       layer = document.getElementById("HomeLayer"+index).style;
     }
    
     layer.visibility = "hidden";

  }
}

function hideIfNotMouseOverHome()
{
    clearTimeout(homeTId);
    homeTId=null;
    
    if ( testIfMouseOverHome() == false )
    {
        hideAllHome();
    }
}

function testIfMouseOverHome()
{
    mouseOver=false;
    for(index=0;index<homeMenuList.length;index++)
    {
      if ( homeMenuList[index].over == true ) {
        mouseOver = true;
        break;
      }
    }
    return mouseOver;
}

function showDelayedMenuHome ( menu ) {
  if ( homeDelayedMenuId.indexOf(menu) != -1 && menu.length == homeDelayedMenuId.length )
  {
    return;
  }

  if ( homeDelayedId ) {
    clearTimeout(homeDelayedId);
    homeDelayedId = 0;
  }
      
  hideAllHome();
      
  setTimeout ("showHomeMenuFromDelay('"+menu+"');",waitTimeBeforeOpen);
 }
 
 function showHomeMenuFromDelay ( menu ) 
 {
 
  hideAllHome();

   homeDelayedId = 0;
   
   var layer;
   var HLayer;
   if (!ie && document.layers ) {
      layer = document.layers["HomeLayer"+menu];
   }
   if (ie) {
     layer = document.all["HomeLayer"+menu].style;
   } else {
     layer = document.getElementById("HomeLayer"+menu).style;
   }
    
   
   layer.visibility = "visible";
   
   homeDelayedMenuId = '';
 }

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 createAllHomeMenuHtml(){
  var html = "";

  for(index=0;index<homeMenuList.length;index++)
  {
     homeMenuList[index].menuId = index;
     html += "<DIV ID='HomeLayer"+index+"' onmouseover='onHomeMenuMouseOver("+index+");' onmouseout='onHomeMenuMouseOut("+index+");' CLASS='FloatMenuBlock' STYLE='z-index:+999;position:absolute;left:"+homeMenuList[index].x+";top:"+homeMenuList[index].y+";visibility:hidden;'><TABLE>";
     for ( i = 0; i < homeMenuList[index].list.length; i++ ) {
       html += "<TR><TD CLASS='FloatMenuCell'>";
       html += homeMenuList[index].list[i].text + " <A HREF=\""+homeMenuList[index].list[i].url+"\" CLASS='FloatLink2'>More</A>";
       html += "</TD></TR>";
     }
     html += "</TABLE></DIV>"; 
  }
  document.writeln(html);
}

function removeHomeMenuItems ( ) {
  homeMenuList = new Array();
}

var menu = new HomeMenuList ( 242, 167 );
homeMenuList[homeMenuList.length] = menu;
menu.addHomeMenuItem ( new HomeMenuItem ( '<B>Hyperion Planning</B><BR>Providing specialized experience for faster implementation and optimum performance<BR>of Hyperion Planning systems.', './html/hyperion.html' ) );
menu = new HomeMenuList ( 242, 199 );
homeMenuList[homeMenuList.length] = menu;
menu.addHomeMenuItem ( new HomeMenuItem ( '<B>Custom Essbase Budgeting</B><BR>Building budgeting applications to meet unique needs.', './html/essbase.html' ) );
menu = new HomeMenuList ( 242, 231 );
homeMenuList[homeMenuList.length] = menu;
menu.addHomeMenuItem ( new HomeMenuItem ( '<B>Sales Analysis</B><BR>Developing customized applications to track sales figures and trends.', './html/essbase.html' ) );
menu = new HomeMenuList ( 242,263 );
homeMenuList[homeMenuList.length] = menu;
menu.addHomeMenuItem ( new HomeMenuItem ( '<B>Web-Enabled Interfaces</B><BR>Creating customizable spreadsheet front ends with little or no coding.', './html/activeOLAP.html', '', '', true ) );
menu = new HomeMenuList ( 242,295 );
homeMenuList[homeMenuList.length] = menu;
menu.addHomeMenuItem ( new HomeMenuItem ( '<B>Scorecard</B><BR>Developing custom applications to monitor special alerts and conditions.', './html/essbase.html') );



