function CTransAccelSoundHeight(a_oTransManager,a_oSoundManager,a_iThreshHold,a_szPrimaryID,a_szSecondaryID)
{ var m_oTransManager = a_oTransManager; this.m_oTransManager = m_oTransManager; var m_oSoundManager = a_oSoundManager; this.m_oSoundManager = m_oSoundManager; var m_oPrimaryItem = new Object; m_oPrimaryItem.id = a_szPrimaryID; m_oPrimaryItem.oElement = ei(a_szPrimaryID); m_oPrimaryItem.iOriginalOffsetHeight = (m_oPrimaryItem.oElement)?m_oPrimaryItem.oElement.offsetHeight:null; this.m_oPrimaryItem = m_oPrimaryItem; var m_oSecondaryItem = new Object; m_oSecondaryItem.id = a_szSecondaryID; m_oSecondaryItem.oElement = ei(a_szSecondaryID); m_oSecondaryItem.iOriginalOffsetHeight = (m_oSecondaryItem.oElement)?m_oSecondaryItem.oElement.offsetHeight:null; this.m_oSecondaryItem = m_oSecondaryItem; var m_iThreshHold = a_iThreshHold; this.m_iThreshHold = m_iThreshHold; var m_oTransAccel = new CTransAccel(m_oPrimaryItem.iOriginalOffsetHeight - m_iThreshHold); var m_iShrinkPrimaryID = -1; var m_iShrinkInterval = 10; var m_iGrowPrimaryID = -1; var m_iGrowInterval = 10; var m_iSpeed = 10; var m_iTotalHeight = parseInt((m_oPrimaryItem.oElement)?m_oPrimaryItem.oElement.offsetHeight:0) + parseInt((m_oSecondaryItem.oElement)?m_oSecondaryItem.oElement.offsetHeight:0); function startShrinkPrimary()
{ if(!m_oPrimaryItem.oElement) return; if(!m_oSecondaryItem.oElement) return; if(m_oPrimaryItem.oElement.offsetHeight <= m_iThreshHold)
{ if(m_oTransManager)
{ m_oTransManager.continueSequence();}
return;}
stop(); m_oTransAccel.iPrimaryStart = m_oPrimaryItem.oElement.offsetHeight; m_oTransAccel.iSecondaryStart = m_oSecondaryItem.oElement.offsetHeight; if(m_oSoundManager)
{ m_oSoundManager.playEvent('primaryShrink',false);}
m_oTransAccel.run(m_oPrimaryItem.oElement.offsetHeight - m_iThreshHold); m_iShrinkPrimaryID = setInterval(shrinkPrimary,m_iShrinkInterval);}
this.startShrinkPrimary = startShrinkPrimary; function startGrowPrimary()
{ if(!m_oPrimaryItem.oElement) return; if(!m_oSecondaryItem.oElement) return; if(m_oPrimaryItem.oElement.offsetHeight >= m_oPrimaryItem.iOriginalOffsetHeight)
{ if(m_oTransManager)
{ m_oTransManager.continueSequence();}
return;}
stop(); m_oTransAccel.iPrimaryStart = m_oPrimaryItem.oElement.offsetHeight; m_oTransAccel.iSecondaryStart = m_oSecondaryItem.oElement.offsetHeight; if(m_oSoundManager)
{ m_oSoundManager.playEvent('primaryGrow',false);}
m_oTransAccel.run(m_oPrimaryItem.iOriginalOffsetHeight - m_oPrimaryItem.oElement.offsetHeight); m_iGrowPrimaryID = setInterval(growPrimary,m_iGrowInterval);}
this.startGrowPrimary = startGrowPrimary; function growPrimary()
{ var iDistanceTraveled = m_oTransAccel.getDistanceTraveled(); if(m_oTransAccel.isDone())
{ stop(); m_oPrimaryItem.oElement.style.height = m_oPrimaryItem.iOriginalOffsetHeight; m_oSecondaryItem.oElement.style.height = m_oSecondaryItem.iOriginalOffsetHeight; if(m_oTransManager)
{ m_oTransManager.continueSequence();}
return;}
m_oPrimaryItem.oElement.style.height = iDistanceTraveled-0 + m_oTransAccel.iPrimaryStart; m_oSecondaryItem.oElement.style.height = m_oTransAccel.iSecondaryStart - iDistanceTraveled;}
function shrinkPrimary()
{ var iDistanceTraveled = m_oTransAccel.getDistanceTraveled(); if(m_oTransAccel.isDone())
{ stop(); m_oPrimaryItem.oElement.style.height = m_iThreshHold; m_oSecondaryItem.oElement.style.height = m_iTotalHeight - m_iThreshHold; if(m_oTransManager)
{ m_oTransManager.continueSequence();}
return;}
m_oPrimaryItem.oElement.style.height = m_oTransAccel.iPrimaryStart - iDistanceTraveled; m_oSecondaryItem.oElement.style.height = iDistanceTraveled-0 + m_oTransAccel.iSecondaryStart;}
function stop()
{ if(-1 != m_iShrinkPrimaryID)
{ clearInterval(m_iShrinkPrimaryID); m_iShrinkPrimaryID = -1;}
if(-1 != m_iGrowPrimaryID)
{ clearInterval(m_iGrowPrimaryID); m_iGrowPrimaryID = -1;}
}
}
