// shadow.js
//------------------------------------------------------------
// Description:
//    Shadow.js is a collection of functions for displaying 
//    a shadow effect around an html object
// Functions:
//    ShowRectangularDynamicDropShadow(elem, color, size)
//    HideRectangularDynamicDropShadow(elem)
//    MakeRectangularStaticDropShadow(elem, color, size)
//------------------------------------------------------------


var global = window.document
global.fo_currentMenu = null
global.fo_shadows = new Array


//------------------------------------------------------------
// ShowRectangularDynamicDropShadow
//------------------------------------------------------------
function ShowRectangularDynamicDropShadow(elem, color, size) {
  if (global.fo_currentMenu == null) {
    global.fo_currentMenu = elem;
    var i;
    for (i=size; i>0; i--) {
      var rect = document.createElement('div');
      var rs = rect.style
      rs.position = 'absolute';
      rs.left = (elem.style.posLeft + i) + 'px';
      rs.top = (elem.style.posTop + i) + 'px';
      rs.width = elem.offsetWidth + 'px';
      rs.height = elem.offsetHeight + 'px';
      rs.zIndex = elem.style.zIndex - i;
      rs.backgroundColor = color;
      var opacity = 1 - i / (i + 1);
      rs.filter = 'alpha(opacity=' + (100 * opacity) + ')';
      elem.insertAdjacentElement('afterEnd', rect);
      global.fo_shadows[global.fo_shadows.length] = rect;
    }
  }
}

//------------------------------------------------------------
// HideRectangularDynamicDropShadow
//------------------------------------------------------------
function HideRectangularDynamicDropShadow(elem) {
  if (global.fo_currentMenu) {
    var i
    for (i=0; i<global.fo_shadows.length; i++)
      global.fo_shadows[i].removeNode(true);
    global.fo_shadows = new Array();
    global.fo_currentMenu = null;
  }
}

//------------------------------------------------------------
// MakeRectangularStaticDropShadow
//------------------------------------------------------------
function MakeRectangularStaticDropShadow(elem, color, size) {
  var i;
  for (i=size; i>0; i--) {
    var srect = document.createElement('div');
    var srs = srect.style
    srs.position = 'absolute';
    srs.left = (elem.offsetLeft + i) + 'px';
    srs.top = (elem.offsetTop + i) + 'px';
    srs.width = elem.offsetWidth + 'px';
    srs.height = elem.offsetHeight + 'px';
    srs.zIndex = elem.style.zIndex - i;
    srs.backgroundColor = color;
    var opacity = 1 - i / (i + 1);
    srs.filter = 'alpha(opacity=' + (100 * opacity) + ')';
    elem.insertAdjacentElement('afterEnd', srect);
  }
}

//------------------------------------------------------------
// MakeRectangularStaticDropShadow2
//------------------------------------------------------------
function MakeRectangularStaticDropShadow2(elem, color, size) {
  if (window.navigator.appName.indexOf("Netscape") != -1 && 
parseInt(window.navigator.appVersion) < 5)
    return ('');
  else {
    var i;
    var strOut = '';
    for (i=size; i>0; i--) {
      var zIndx = elem.style.zIndex - i
      var opacity = 1 - i / (i + 1);
      strOut += '<div style="position:absolute; left:' 
             + (elem.offsetLeft + i) + 'px; top:'
             + (elem.offsetTop + i) + 'px; width:'
             + elem.offsetWidth + 'px; height:'
             + elem.offsetHeight + 'px; z-index:'
             + zIndx + '; background:' + color
             + 'filter:alpha(opacity=' + (100 * opacity) + ')"></div>';
    }
    return (strOut);
  }
}