/**************************************
COPYRIGHT 2009  Dennis Robertson. All Rights Reserved.
email: id@domain; (for 'id' use: webmaster  and for 'domain' use: denrocs.ml1.net)

CSS

Depends on:
  dom.js
  ie.js
***************************************/


/**************************************/
// change element opacity
// (from brainerror.net)
function zdr_css_changeOpacity (element, opacity) {
  var el;
  if (typeof(element) == 'string')
    el = document.getElementById(element);
  else  el = element;
  el.style.opacity = opacity;
  var elStyle = document.getStyle(el);
  if (elStyle.filter != undefined)  // IE7, also works with IE8
    el.style.filter = "alpha(opacity=" + (opacity * 100) + ")";
  else if (elStyle.MozOpacity != undefined)
    el.style.MozOpacity = opacity;
  }

/**************************************/
function zdr_css_adjustOpacity (element, opacityStart, opacityEnd, adjTime, remove) {
  var el;
  var opacityAdj = 2;  // default opacity (percentage) adjustment
  if (typeof(element) == 'string')
    el = document.getElementById(element);
  else  el = element;
  opacityStart *= 100;
  opacityEnd *= 100;
  if (remove == undefined)  remove = false;
  var opacityDiff = Math.abs(opacityStart - opacityEnd);
  var steps = opacityDiff / opacityAdj;
  var stepTime = Math.round(adjTime / steps);
  if (stepTime < 100) {
    stepTime = 100;
    steps = adjTime / stepTime;
    opacityAdj = Math.ceil(opacityDiff / steps);
    }
  adjTime = stepTime;
  var opacity = opacityStart;
  zdr_css_changeOpacity(el, opacity / 100);
  if (opacityStart < opacityEnd) {
    for (opacity += opacityAdj; opacity <= opacityEnd; opacity += opacityAdj) {
      window.setTimeout(zdr_css_changeOpacity, adjTime, el, opacity / 100);
      adjTime += stepTime;
      }
    }
  else if (opacityStart > opacityEnd) {
    for (opacity -= opacityAdj; opacity >= opacityEnd; opacity -= opacityAdj) {
      window.setTimeout(zdr_css_changeOpacity, adjTime, el, opacity / 100);
      adjTime += stepTime;
      }
    }
  if (opacity != opacityEnd) {
    window.setTimeout(zdr_css_changeOpacity, adjTime, el, opacityEnd / 100);
    adjTime += stepTime;
    }
  if (remove) {
    window.setTimeout(function () {
      el.parentNode.removeChild(el);
      }, adjTime);
    }
  }  // zdr_css_adjustOpacity
