﻿
var currentItemClientID = null;
var speedVar = 5;

var inToggleMode = false;

function OpenAccordionItem(clientID_) {
    if (inToggleMode == false) {
        if (currentItemClientID == clientID_) {
            currentItemClientID = null;
        } else {
            currentItemClientID = clientID_;
            ExpandItem(clientID_);
        }
    }
    else {
        var item = document.getElementById(clientID_);
        var height = parseInt(item.style.height.replace('px', ''));
        var targetHeight = item.trueheight

        if (height == targetHeight) {
            CloseItem(clientID_);
        } else {
            ExpandItem(clientID_);
        }
    }
}

function ExpandItem(clientID_) {

    var item = document.getElementById(clientID_);
    item.style.borderWidth = '1px';
    
    if (currentItemClientID == clientID_ || inToggleMode) {
        var height = parseInt(item.style.height.replace('px', ''));
        var targetHeight = item.trueheight

        if (height < targetHeight) {
            var speed = parseInt(((targetHeight - height) / speedVar) + 2);
            height = height + speed;
            item.style.height = height + 'px';
        }
        else {
            item.style.height = targetHeight + 'px';
            if (inToggleMode) {
                return;
            }
        }
        setTimeout(function() { ExpandItem(clientID_) }, 5);
    }
    else {
        setTimeout(function() { CloseItem(clientID_) }, 5); 
    }
}

function CloseItem(clientID_) {
    if (clientID_ != currentItemClientID || inToggleMode) {
        var item = document.getElementById(clientID_);
        var height = parseInt(item.style.height.replace('px', ''));
        if (height > 0) {
            height = height - parseInt((height / speedVar) + 2);
            if (height < 1) {
                height = 0;
                item.style.borderWidth = '0px';
            }
            item.style.height = height + 'px';
            setTimeout(function() { CloseItem(clientID_) }, 5);
        }
    }
}

function CloseAllItems() {
    var divs = document.getElementsByTagName('div');
    for (var x = 0; x < divs.length; ++x) {
        var item = divs[x];
        if (item.className == 'Accordion-Body') {
            SetUpItem(item);
        }
    }
}


function SetUpItemByID(itemID) {
    SetUpItem(document.getElementById(itemID));
}

function SetUpItem(item) {
    item.trueheight = item.scrollHeight;
    item.style.overflow = "hidden";
    item.style.height = '0px';
    item.style.borderWidth = '0px';
}

function ResizeForImage(clientID_, imageID_) {
    var item = document.getElementById(clientID_);
    var img = document.getElementById(imageID_);
    var curHeight = parseInt(item.trueheight);
    var newHeight = parseInt(img.offsetHeight + 12);

    if (newHeight > curHeight) {
        item.trueheight = newHeight;
    }
}
