function CTransSlider(a_oTransManager)
{ var m_oTransManager = a_oTransManager; this.m_oTransManager = m_oTransManager; var m_arrElements = new Array(); this.m_arrElements = m_arrElements; var m_oTransAccel = new CTransAccel(0,1000); var m_iSlideLeftID = -1; var m_iSlideLeftInterval = 10; var m_iSlideRightID = -1; var m_iSlideRightInterval = 10; var m_iSlideSlideToID = -1; var m_iSlideSlideToInterval = 10; for(var i = 1; i < arguments.length; i++)
{ var oe = ei(arguments[i]); if(oe)
{ m_arrElements.push(oe);}
}
function addElements()
{ for(var i = 0; i < arguments.length; i++)
{ addElement(arguments[i]);}
}
this.addElements = addElements; function addElement(a_oe)
{ if(!a_oe) return; if(!a_oe.style) return; m_arrElements.push(a_oe);}
this.addElement = addElement; function slideTo(a_iNewStyleLeft)
{ if(null == a_iNewStyleLeft) return; stop(); var iMaxDistance = 0; for(var i = 0; i < m_arrElements.length; i++)
{ m_arrElements[i].startSlideTo = (m_arrElements[i].style.left)? parseInt(m_arrElements[i].style.left) : 0; m_arrElements[i].finalSlideTo = a_iNewStyleLeft; iMaxDistance = Math.max( Math.abs(a_iNewStyleLeft - m_arrElements[i].startSlideTo), iMaxDistance );}
if(iMaxDistance > 0)
{ m_oTransAccel.run( iMaxDistance ); m_iSlideSlideToID = setTimeout(_slideSlideTo,m_iSlideSlideToInterval);}
else if(m_oTransManager)
{ m_oTransManager.continueSequence();}
}
this.slideTo = slideTo; function slideLeft()
{ stop(); var iMaxDistance = 0; for(var i = 0; i < m_arrElements.length; i++)
{ m_arrElements[i].startLeft = (m_arrElements[i].style.left)? parseInt(m_arrElements[i].style.left) : 0; m_arrElements[i].finalLeft = m_arrElements[i].startLeft - parseInt(m_arrElements[i].style.width); iMaxDistance = Math.max( parseInt(m_arrElements[i].style.width), iMaxDistance);}
if(iMaxDistance > 0)
{ m_oTransAccel.run(iMaxDistance); m_iSlideLeftID = setTimeout(_slideLeft,m_iSlideLeftInterval);}
else if(m_oTransManager)
{ m_oTransManager.continueSequence();}
}
this.slideLeft = slideLeft; function slideRight()
{ stop(); var iMaxDistance = 0; for(var i = 0; i < m_arrElements.length; i++)
{ m_arrElements[i].startRight = (m_arrElements[i].style.left)? parseInt(m_arrElements[i].style.left) : 0; m_arrElements[i].finalRight = m_arrElements[i].startRight-0 + parseInt(m_arrElements[i].style.width); iMaxDistance = Math.max( parseInt(m_arrElements[i].style.width), iMaxDistance);}
if(iMaxDistance)
{ m_oTransAccel.run(iMaxDistance); m_iSlideRightID = setTimeout(_slideRight,m_iSlideRightInterval);}
else if(m_oTransManager)
{ m_oTransManager.continueSequence();}
}
this.slideRight = slideRight; function _slideLeft()
{ if(m_oTransAccel.isDone())
{ stop(); for(var i = 0; i < m_arrElements.length; i++)
{ m_arrElements[i].style.left = m_arrElements[i].finalLeft;}
if(m_oTransManager)
{ m_oTransManager.continueSequence();}
return;}
var iDistanceTraveled = m_oTransAccel.getDistanceTraveled(); for(var i = 0; i < m_arrElements.length; i++)
{ if( m_arrElements[i].finalLeft < (m_arrElements[i].startLeft - iDistanceTraveled) )
{ m_arrElements[i].style.left = m_arrElements[i].startLeft - iDistanceTraveled;}
}
m_iSlideLeftID = setTimeout(_slideLeft,m_iSlideLeftInterval);}
function _slideRight()
{ if(m_oTransAccel.isDone())
{ stop(); for(var i = 0; i < m_arrElements.length; i++)
{ m_arrElements[i].style.left = m_arrElements[i].finalRight;}
if(m_oTransManager)
{ m_oTransManager.continueSequence();}
return;}
var iDistanceTraveled = m_oTransAccel.getDistanceTraveled(); for(var i = 0; i < m_arrElements.length; i++)
{ if( (m_arrElements[i].startRight-0 + iDistanceTraveled) < m_arrElements[i].finalRight)
{ m_arrElements[i].style.left = m_arrElements[i].startRight-0 + iDistanceTraveled;}
}
m_iSlideRightID = setTimeout(_slideRight,m_iSlideRightInterval);}
function _slideSlideTo()
{ if(m_oTransAccel.isDone())
{ stop(); for(var i = 0; i < m_arrElements.length; i++)
{ m_arrElements[i].style.left = m_arrElements[i].finalSlideTo;}
if(m_oTransManager)
{ m_oTransManager.continueSequence();}
return;}
var iDistanceTraveled = m_oTransAccel.getDistanceTraveled(); for(var i = 0; i < m_arrElements.length; i++)
{ if(m_arrElements[i].startSlideTo > m_arrElements[i].finalSlideTo)
{ m_arrElements[i].style.left = m_arrElements[i].startSlideTo - iDistanceTraveled;}
else
{ m_arrElements[i].style.left = m_arrElements[i].startSlideTo-0 + iDistanceTraveled;}
}
m_iSlideSlideToID = setTimeout(_slideSlideTo,m_iSlideSlideToInterval);}
function stop()
{ if(-1 != m_iSlideLeftID)
{ clearTimeout(m_iSlideLeftID); m_iSlideLeftID = -1;}
if(-1 != m_iSlideRightID)
{ clearTimeout(m_iSlideRightID); m_iSlideRightID = -1;}
if(-1 != m_iSlideSlideToID)
{ clearTimeout(m_iSlideSlideToID); m_iSlideSlideToID = -1;}
}
}
