﻿function KiwamiAccordion(containerid, options) {
    this.options = Object.extend({
        activatefn: null
    }, options || {});
    var container = $(containerid);
    container.style.overflow = 'hidden';
    var containerHeight = container.getDimensions().height;
    var tabs = $$('#' + containerid + ' .' + 'toggle');
    var tabsHeight = 0;
    for(i=0; i<tabs.length; i++) {
        var tab = tabs[i];
        var content = this.getNextSiblingElement(tab);
        content.style.height = 0;
        content.style.overflow = 'scroll';
        Event.observe(tab, 'click', this.activate.bind(this, tab), false);
        tabsHeight += tab.getDimensions().height;
    }
    this.contentHeight = containerHeight - tabsHeight - 2;
}

KiwamiAccordion.prototype.activate = function(tab) {
    if (this.acctivedTab && this.acctivedTab != tab) this.getNextSiblingElement(this.acctivedTab).style.height = 0;
    this.getNextSiblingElement(tab).style.height = this.contentHeight + 'px';
    this.acctivedTab = tab;
    if (this.options.activatefn) this.options.activatefn(tab);
}

KiwamiAccordion.prototype.getNextSiblingElement = function(element) {
    while (sibling = element.nextSibling) {
        if (sibling.nodeType == 1) break;
        element = sibling;
    }
    return sibling;
}