function CTransBrightness(a_rgbStart, a_rgbEnd,a_szElementID,a_oTransManager) {
  var m_rgbStart = a_rgbStart;
  this.m_rgbStart = m_rgbStart;
  var m_rgbEnd = a_rgbEnd;
  this.m_rgbEnd = m_rgbEnd;
  var m_oTransManager = a_oTransManager;
  this.m_oTransManager = m_oTransManager;
  var m_szElementID = a_szElementID;
  this.m_szElementID = m_szElementID;
  var m_oElement = ei(m_szElementID);
  this.m_oElement = m_oElement;
  var m_orgbStart = new RGB(m_rgbStart);
  var m_orgbEnd = new RGB(m_rgbEnd);
  var m_iLightenInterval = 10;
  var m_iLightenIntervalID = -1;
  var m_iDarkenInterval = 10;
  var m_iDarkenIntervalID = -1;
  var m_iDelta = 1;
if(m_oElement) {
if('' == m_oElement.style.backgroundColor) {
  m_oElement.style.backgroundColor = m_orgbStart.toString();
}
}
function setElementById(a_szElementID) {
  if(!a_szElementID) return false;
  var oe = ei(a_szElementID);
if(oe) {
  m_szElementID = a_szElementID;
  m_oElement = oe;
  return true;
}
  return false;}
  this.setElementById = setElementById;
function startDarkenThis(a_oElement) {
  if(!a_oElement) return;
  m_oElement = a_oElement;
  m_szElementID = m_oElement.id;
  startDarken();
}
  this.startDarkenThis = startDarkenThis;
function startDarken() {
  stop();
  m_iDarkenIntervalID = setTimeout(darken,m_iDarkenInterval);
}
  this.startDarken = startDarken;
function startLightenThis(a_oElement) {
  if(!a_oElement) return;
  m_oElement = a_oElement;
  m_szElementID = m_oElement.id;
  startLighten();
}
  this.startLightenThis = startLightenThis;
function startLighten() {
  stop();
  m_iLightenIntervalID = setTimeout(lighten,m_iLightenInterval);
}
  this.startLighten = startLighten;
function stop() {
if(-1 != m_iLightenIntervalID) {
  clearInterval(m_iLightenIntervalID);
  m_iLightenIntervalID = -1;
}
if(-1 != m_iDarkenIntervalID) {
  clearInterval(m_iDarkenIntervalID);
  m_iDarkenIntervalID = -1;
}
}
function darken() {
  if(!m_oElement) return;
  var oCurrentBackground = new RGB(m_oElement.style.backgroundColor);
  oCurrentBackground.darkenBy(m_iDelta);
if(oCurrentBackground.isDarker(m_orgbEnd.toString() ) ) {
  m_oElement.style.backgroundColor = oCurrentBackground.toString();
  m_iDarkenIntervalID = setTimeout(darken,m_iDarkenInterval);
}
else {
  m_oElement.style.backgroundColor = m_orgbEnd.toString();
  stop();
if(m_oTransManager) {
  m_oTransManager.continueSequence();
}
}
}
function lighten() {
  if(!m_oElement) return;
  var oCurrentBackground = new RGB(m_oElement.style.backgroundColor);
  oCurrentBackground.lightenBy(m_iDelta);
if(oCurrentBackground.isLighter(m_orgbStart.toString() ) ) {
  m_oElement.style.backgroundColor = oCurrentBackground.toString();
  m_iLightenIntervalID = setTimeout(lighten,m_iLightenInterval);
}
else {
  m_oElement.style.backgroundColor = m_orgbStart.toString();
  stop();
if(m_oTransManager) {
  m_oTransManager.continueSequence();
}
}
}
}
