﻿//
function OpenContentPane(paneIndex, eventElement, accordionID) {

    // Expand the element on mouse over.
    var behavior = $get(accordionID).AccordionBehavior;
    behavior.set_SelectedIndex(paneIndex);

    var AccordionName = accordionID + "_AccordionExtender"
    var accordion = $find(AccordionName);

    var paneIndexInt = parseInt(paneIndex);

    // Make the header invisible and display the content.
    accordion.get_Pane(paneIndexInt).header.style.display = "none";
    accordion.get_Pane(paneIndexInt).content.style.display = "block";    

    // Make all the other headers visible and contents invisible.
    for (var i = 0; i < accordion._panes.length; i++) {
        if (i != paneIndexInt) {
            accordion.get_Pane(i).header.style.display = "block";
            accordion.get_Pane(i).content.style.display = "none";
        }
    }

    // Stop the click event from propagating.
    IgnoreClickEvent(eventElement);

}

//
function OpenHeaderPane(paneIndex, eventElement, accordionID) {

    // Expand the element on mouse over.
    var behavior = $get(accordionID).AccordionBehavior;
    behavior.set_SelectedIndex(paneIndex);

    var AccordionName = accordionID + "_AccordionExtender"
    var accordion = $find(AccordionName);      

    var paneIndexInt = parseInt(paneIndex);

    // Make all headers visible and contents invisible.
    for (var i = 0; i < accordion._panes.length; i++) {
        accordion.get_Pane(i).header.style.display = "block";
        accordion.get_Pane(i).content.style.display = "none";    
    }

    // Stop the click event from propagating.
    IgnoreClickEvent(eventElement);

}

//
function ExpandCollapseAccordion(accordionID, display) {
    var behavior = $get(accordionID).AccordionBehavior;
    behavior.set_SelectedIndex(-1);
    var AccordionName = accordionID + "_AccordionExtender"
    var accordion = $find(AccordionName);
    for (var i = 0; i < accordion._panes.length; i++) {
        var pane = accordion._panes[i];
        var animation = accordion._getAnimation(pane);
        animation._opening = display;
        var open = null;
        var close = null;
        // Stop pending animations.
        if (animation.get_isPlaying()) {
            animation.stop();
        }
        // Get the pane ready to be animated
        accordion._startPaneChange(pane, animation._opening);
        // Set up the fade effect if we are using it.
        if (accordion._fadeTransitions) {
            animation._fade.set_effect(animation._opening ? AjaxControlToolkit.Animation.FadeEffect.FadeIn :
            AjaxControlToolkit.Animation.FadeEffect.FadeOut);
        }
        // Set the length animation and the target.
        if (accordion._autoSize === AjaxControlToolkit.AutoSize.Fill) {
            animation.set_target(pane.content._original);
            animation._length.set_startValue($common.getContentSize(pane.content_original).height);
            animation._length.set_endValue(animation._opening ? accordion._getRemainingHeight(true) : 0);
        }
        else {
            animation.set_target(pane.content);
            animation._length.set_startValue(pane.content.offsetHeight);
            animation._length.set_endValue(animation._opening ? accordion._getRemainingHeight(false) : 0);
        }
        if (display) {
            animation._opening = true;
            open = animation;
            if (open) {
                open.play();
            }
            // Open the accordion header.
            accordion.get_Pane(i).header.style.display = "none";
        }
        else {
            animation._opening = false;
            close = animation;
            if (close) {
                close.play();
            }
            // Close the accordion header.
            accordion.get_Pane(i).header.style.display = "";
        }        
    }
        
}

//
function IgnoreClickEvent(eventElement) {    
    // Stop the click event from propagating.
    eventElement = eventElement == null ? window.event : eventElement;
    eventElement.cancelBubble = true;
    if (eventElement.stopPropagation) eventElement.stopPropagation();
}
