0byt3m1n1
Path:
/
data
/
applications
/
aps
/
magento
/
1.1.3-2
/
standard
/
htdocs
/
js
/
varien
/
[
Home
]
File: accordion.js
/** * Magento * * NOTICE OF LICENSE * * This source file is subject to the Open Software License (OSL 3.0) * that is bundled with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://opensource.org/licenses/osl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to license@magentocommerce.com so we can send you a copy immediately. * * @copyright Copyright (c) 2008 Irubin Consulting Inc. DBA Varien (http://www.varien.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ Accordion = Class.create(); Accordion.prototype = { initialize: function(elem, clickableEntity, checkAllow) { this.container = $(elem); this.checkAllow = checkAllow || false; this.disallowAccessToNextSections = false; this.sections = $$('#' + elem + ' .section'); this.currentSection = false; var headers = $$('#' + elem + ' .section ' + clickableEntity); headers.each(function(header) { Event.observe(header,'click',this.sectionClicked.bindAsEventListener(this)); }.bind(this)); }, sectionClicked: function(event) { this.openSection($(Event.element(event)).up('.section')); Event.stop(event); }, openSection: function(section) { var section = $(section); // Check allow if (this.checkAllow && !Element.hasClassName(section, 'allow')){ return; } if(section.id != this.currentSection) { this.closeExistingSection(); this.currentSection = section.id; $(this.currentSection).addClassName('active'); var contents = document.getElementsByClassName('a-item',section); contents[0].show(); //Effect.SlideDown(contents[0], {duration:.2}); if (this.disallowAccessToNextSections) { var pastCurrentSection = false; for (var i=0; i<this.sections.length; i++) { if (pastCurrentSection) { Element.removeClassName(this.sections[i], 'allow') } if (this.sections[i].id==section.id) { pastCurrentSection = true; } } } } }, closeSection: function(section) { $(section).removeClassName('active'); var contents = document.getElementsByClassName('a-item',section); contents[0].hide(); //Effect.SlideUp(contents[0]); }, openNextSection: function(setAllow){ for (section in this.sections) { var nextIndex = parseInt(section)+1; if (this.sections[section].id == this.currentSection && this.sections[nextIndex]){ if (setAllow) { Element.addClassName(this.sections[nextIndex], 'allow') } this.openSection(this.sections[nextIndex]); return; } } }, openPrevSection: function(setAllow){ for (section in this.sections) { var prevIndex = parseInt(section)-1; if (this.sections[section].id == this.currentSection && this.sections[prevIndex]){ if (setAllow) { Element.addClassName(this.sections[prevIndex], 'allow') } this.openSection(this.sections[prevIndex]); return; } } }, closeExistingSection: function() { if(this.currentSection) { this.closeSection(this.currentSection); } } }