/* 
 * javascript library that persists expandablePanel's
 * last state and restores it at future page's loads
 */

var Undefined;
var yDom = YAHOO.util.Dom;
var yCookie = YAHOO.util.Cookie;
var yEvent = YAHOO.util.Event;

function readPanelState(name, default_state) {
    if (default_state == Undefined) default_state = true;
    var savedState = yCookie.getSub('expandablePanelState', name);
    // console.log('savedState is: %s', savedState)
    if (savedState == null) return default_state;
    return savedState == "true";
}

function savePanelState(name, state) {
    yCookie.setSub('expandablePanelState', name, state, {
        expires: new Date(2100, 0, 0)
    });
}

function setupPanelState(panelName) {
    // look up panel element
    var ePanel = yDom.getElementsByClassName('yui-panel', 'div', panelName)[0];
    // set up click handler to trace panel's last state
    yDom.getElementsByClassName(
        'accordionToggleItem', 'a', panelName,
        function(el) {
            yEvent.addListener(el, 'click', function(trg) {
                var was_opened = yDom.hasClass(ePanel, 'selected');
                // console.log("saving '%s' panel's state to: %s", panelName, !was_opened);
                savePanelState(panelName, !was_opened);
            })
        }
    )
    // set panel's initial state according to it's last value stored in the cookie
    if (readPanelState(panelName)) {
        yDom.addClass(ePanel, 'selected');
    }
    else {
        yDom.removeClass(ePanel, 'selected');
    }
}

