﻿function startExpander(rootContainerId, itemContainerClass, detailsContainerClass, options) {
    settings = jQuery.extend({ buttonText: "Details" }, options);  // You can optionally change these values
    var openings = $(rootContainerId);
    document.itemContainerClass = itemContainerClass;
    document.detailsContainerClass = detailsContainerClass;    
    document.buttonText = settings.buttonText;
    if (openings) {
        var detailButtons = $(".showDetails");
        for (var i = 0; i < detailButtons.length; i++) {
            detailButtons[i].onclick = changeViewState;
        }
    }
}
function changeViewState() {
    findContainerElement(this);
}
function findContainerElement(element) {
    var tempContainer = element.parentNode;
    var itemContainer;
    var itemContainerClass = document.itemContainerClass.replace(".", "");    
    if (tempContainer.className == null || tempContainer.className != itemContainerClass) {
        while (tempContainer.parentNode != null) {

            if (tempContainer.className == itemContainerClass) {
                itemContainer = tempContainer;
                break;
            }
            tempContainer = tempContainer.parentNode;
        }
        if (itemContainer == null)
            return false;
    }
    else
        itemContainer = tempContainer;
    
    var details = $(itemContainer).children(document.detailsContainerClass);
    for (i = 0; i < details.length; i++) {
        if (details[i].style.display == "block") {
            details[i].style.display = "none";
            element.innerHTML = "Show " + document.buttonText;
        }
        else {
            details[i].style.display = "block";
            element.innerHTML = "Hide " + document.buttonText;

        }
    }


}