/* ** nopCommerce custom accordion */ var Accordion = { checkAllow: false, disallowAccessToNextSections: false, sections: new Array(), currentSection: false, headers: new Array(), init: function (elem, clickableEntity, checkAllow) { this.checkAllow = checkAllow || false; this.disallowAccessToNextSections = false; this.sections = $('#' + elem + ' .tab-section'); this.currentSectionId = false; var headers = $('#' + elem + ' .tab-section ' + clickableEntity); headers.on('click', function () { Accordion.headerClicked($(this)); }); }, headerClicked: function (section) { Accordion.openSection(section.parent('.tab-section')); }, openSection: function (section) { var section = $(section); if (this.checkAllow && !section.hasClass('allow')) { return; } if (section.attr('id') != this.currentSectionId) { var previousSectionId = this.currentSectionId; this.closeExistingSection(); this.currentSectionId = section.attr('id'); $('#' + this.currentSectionId).addClass('active'); var contents = section.children('.a-item'); $(contents[0]).show(); location.hash = section.attr('id'); $(document).trigger({ type: "accordion_section_opened", previousSectionId: previousSectionId, currentSectionId: this.currentSectionId }); if (this.disallowAccessToNextSections) { var pastCurrentSection = false; for (var i = 0; i < this.sections.length; i++) { if (pastCurrentSection) { $(this.sections[i]).removeClass('allow'); } if ($(this.sections[i]).attr('id') == section.attr('id')) { pastCurrentSection = true; } } } } }, closeSection: function (section) { var section = $(section); section.removeClass('active'); var contents = section.children('.a-item'); $(contents[0]).hide(); $(document).trigger({ type: "accordion_section_closed", sectionId: section.attr('id') }); }, hideSection: function (section) { var section = $(section); section.hide(); $(document).trigger({ type: "accordion_section_hidden", sectionId: section.attr('id') }); }, showSection: function (section) { var section = $(section); section.show(); location.hash = section.attr('id'); $(document).trigger({ type: "accordion_section_shown", sectionId: section.attr('id') }); }, openNextSection: function (setAllow) { for (section in this.sections) { var nextIndex = parseInt(section) + 1; if (this.sections[section].id == this.currentSectionId && this.sections[nextIndex]) { if (setAllow) { $(this.sections[nextIndex]).addClass('allow'); } this.openSection(this.sections[nextIndex]); return; } } }, openPrevSection: function (setAllow, onlyAllowed) { var prevIndex = 0; for (section in this.sections) { if (onlyAllowed) { //ensure that the section is allowed var tmp = parseInt(section) - 1; if (!isNaN(tmp) && $(this.sections[tmp]).hasClass('allow')) { prevIndex = tmp; } } else { prevIndex = parseInt(section) - 1; } if (this.sections[section].id == this.currentSectionId && this.sections[prevIndex]) { if (setAllow) { $(this.sections[prevIndex]).addClass('allow'); } this.openSection(this.sections[prevIndex]); return; } } }, closeExistingSection: function () { if (this.currentSectionId) { this.closeSection($('#' + this.currentSectionId)); } } };