function CExpandableFAQ(a_szQuestionContainerClassName, a_szQuestionBufferClassName, a_szQuestionClassName, a_szAnswerContainerClassName , a_szAnswerBufferClassName , a_szAnswerClassName) { var m_szQuestionContainerClassName = a_szQuestionContainerClassName; this.m_szQuestionContainerClassName = m_szQuestionContainerClassName; var m_szQuestionBufferClassName = a_szQuestionBufferClassName; this.m_szQuestionBufferClassName = m_szQuestionBufferClassName; var m_szQuestionClassName = a_szQuestionClassName; this.m_szQuestionClassName = m_szQuestionClassName; var m_szAnswerContainerClassName = a_szAnswerContainerClassName; this.m_szAnswerContainerClassName = m_szAnswerContainerClassName; var m_szAnswerBufferClassName = a_szAnswerBufferClassName; this.m_szAnswerBufferClassName = m_szAnswerBufferClassName; var m_szAnswerClassName = a_szAnswerClassName; this.m_szAnswerClassName = m_szAnswerClassName; var m_oQuestionContainerCollection = null; var m_oQuestionBufferCollection = null;
var m_oAnswerContainerCollection = null; var m_oQuestionCollection = null; var m_oAnswerCollection = null; var m_oAnswerBufferCollection = null; var m_iHeightBuffer = 6; var m_oExpandedQuestion = null; var m_oQuestionToExpand = null; var m_oAccel = new CTransAccel(0); var m_oShrinkee = null; var m_iShrinkSpeed = 2000; var m_iShrinkInterval = 10; var m_iShrinkID = -1; var m_oGrowee = null; var m_iGrowSpeed = 2000; var m_iGrowInterval = 10; var m_iGrowID = -1; var m_cRoundedCorners = new CRoundedCorners(); if(m_szQuestionContainerClassName && m_szQuestionClassName && m_szAnswerContainerClassName && m_szAnswerClassName) { m_oQuestionContainerCollection = etc("div", m_szQuestionContainerClassName); m_oAnswerContainerCollection = etc("div", m_szAnswerContainerClassName); m_oQuestionBufferCollection = etc("div", m_szQuestionBufferClassName); m_oAnswerBufferCollection = etc("div", m_szAnswerBufferClassName); m_oQuestionCollection = etc("div", m_szQuestionClassName);
m_oAnswerCollection = etc("div", m_szAnswerClassName); if(__isValid(m_oQuestionContainerCollection, m_oQuestionBufferCollection, m_oQuestionCollection, m_oAnswerContainerCollection, m_oAnswerBufferCollection, m_oAnswerCollection )) { } if(m_oQuestionCollection && (m_oQuestionCollection.length > 0) && m_oAnswerCollection && m_oQuestionContainerCollection && m_oAnswerContainerCollection ) { if( (m_oQuestionCollection.length == m_oQuestionContainerCollection.length) && (m_oAnswerCollection.length == m_oAnswerContainerCollection.length ) && (m_oQuestionCollection.length == m_oAnswerCollection.length) ) { for(var i = 0; i < m_oQuestionCollection.length; i++) { m_oQuestionCollection[i].onclick = itemClick; m_oQuestionCollection[i].oAnswerContainer = m_oAnswerContainerCollection[i]; m_oQuestionCollection[i].oAnswerBuffer = m_oAnswerBufferCollection[i]; } var rgbQuestionBackgroundColor = m_oQuestionBufferCollection[0].style.backgroundColor;
var rgbAnswerBackgroundColor = m_oAnswerBufferCollection[0].style.backgroundColor; var rgbColor = '#ffffff'; if(!ie) { m_cRoundedCorners.roundTopBottom("div." + m_szQuestionBufferClassName, rgbColor, rgbQuestionBackgroundColor); m_cRoundedCorners.roundTopBottom("div." + m_szAnswerBufferClassName , rgbColor, rgbAnswerBackgroundColor); } } } } function itemClick(a_e) { var oe = getElementFromEvent(a_e); if(!oe) return; if(!oe.oAnswerContainer) return; if(!oe.oAnswerBuffer) return; if(m_oExpandedQuestion) { if(oe.innerHTML == m_oExpandedQuestion.innerHTML) { m_oQuestionToExpand = null; m_oExpandedQuestion = null; shrink(oe); } else { m_oQuestionToExpand = oe; shrink(m_oExpandedQuestion); } } else { grow(oe); } } function stop() { if(-1 != m_iShrinkID) { clearTimeout(m_iShrinkID); m_iShrinkID = -1; } if(-1 != m_iGrowID) { clearTimeout(m_iGrowID); m_iGrowID = -1; } } function shrink(a_oe) { if(!a_oe) return; stop(); m_oShrinkee = a_oe; m_oAccel.run(m_oShrinkee.oAnswerBuffer.offsetHeight, m_iShrinkSpeed);
m_iShrinkID = setTimeout(__shrink,m_iShrinkInterval) } function __shrink() { if(!m_oShrinkee) return; var iDistance = m_oAccel.getDistanceTraveled(); var iHeight = m_oShrinkee.oAnswerContainer.offsetHeight - iDistance; if(iHeight <= 1) { stop(); m_oShrinkee.oAnswerContainer.style.height = 1; m_oShrinkee = null; if(m_oQuestionToExpand) { grow(m_oQuestionToExpand); } } else { m_oShrinkee.oAnswerContainer.style.height = iHeight; m_iShrinkID = setTimeout(__shrink,m_iShrinkInterval) } } function grow(a_oe) { if(!a_oe) return; stop(); m_oGrowee = a_oe; m_oAccel.run(m_oGrowee.oAnswerBuffer.offsetHeight-0, m_iGrowSpeed); m_iGrowID = setTimeout(__grow,m_iGrowInterval) } function __grow() { if(!m_oGrowee) return; var iDistance = m_oAccel.getDistanceTraveled(); var iHeight = m_oGrowee.oAnswerContainer.offsetHeight-0 + iDistance; if(iHeight >= m_oGrowee.oAnswerBuffer.offsetHeight) { stop(); m_oGrowee.oAnswerContainer.style.height = m_oGrowee.oAnswerBuffer.offsetHeight-0 + m_iHeightBuffer; m_oExpandedQuestion = m_oGrowee;
m_oGrowee = null; } else { m_oGrowee.oAnswerContainer.style.height = iHeight-0 + m_iHeightBuffer; m_iGrowID = setTimeout(__grow,m_iGrowInterval) } } function __isValid() { if(0 == arguments.length) { return null; } for(var i = 0; i   < arguments.length; i++) { if(__isNull(arguments[i]) || __isEmpty(arguments[i]) ) { return false; } } return true; } function __isNull() { for(var i = 0; i < arguments.length; i++) { if(null == arguments[i]) { return true; } } return false; } function __isEmpty() { for(var i = 0; i < arguments.length; i++) { if(arguments[i].length) { if(0 == arguments[i].length) { return true; } } else { return null; } } return false; } }
