﻿function AutoExpand(val, maxInsetTop, maxInsetHeight) {
    divPageContentsHeight = document.getElementById('divPageContents').offsetHeight;
    contentboxTop = document.getElementById('contentbox').offsetTop;
    var contentboxHeight = document.getElementById('contentbox').offsetHeight;
    var contentBackgroundTop = document.getElementById('contentBackground').offsetTop;
    var topHeight = document.getElementById('topdiv').offsetHeight;

    try {
        if (document.getElementById('divPageContentsFooter').offsetHeight > 0) {
            divPageContentsHeight += document.getElementById('divPageContentsFooter').offsetHeight;
        }
    }
    catch (e) {
        // alert(e);
    }
    try {
        if (document.getElementById('pnlForm').offsetHeight > 0) {
            divPageContentsHeight += document.getElementById('pnlForm').offsetHeight;
        }
    }
    catch (e) {
        //alert(e);
    }
    if ((divPageContentsHeight + contentboxTop) < (maxInsetTop + maxInsetHeight)) {
        divPageContentsHeight = divPageContentsHeight + (maxInsetTop + maxInsetHeight) - (divPageContentsHeight + contentboxTop);
    }

    divPageContentsHeight = divPageContentsHeight + 20;
    if (divPageContentsHeight <= contentboxHeight) {
        divPageContentsHeight = contentboxHeight;
    }

    if (contentboxTop > (contentBackgroundTop + topHeight)) {
        divPageContentsHeight = divPageContentsHeight + contentboxTop - (contentBackgroundTop + topHeight);
    }
    else if (contentboxTop < (contentBackgroundTop + topHeight)) {
        divPageContentsHeight = divPageContentsHeight - (contentBackgroundTop + topHeight - contentboxTop);
    }

    var padding = GetPaddingForBottomControls();

    //divPageContentsHeight = divPageContentsHeight + 10;

    document.getElementById('contentbox').style.height = 'auto'; //divPageContentsHeight + 'px'; //

    var middledivHeight = divPageContentsHeight;

    document.getElementById('middlediv').style.height = middledivHeight + 'px';

    CalculateDivHeights(val, padding, contentboxTop);
}

function GetPaddingForBottomControls() {

    var padding = 0;
    try {

        var contentBackGroundoffsetTop = document.getElementById('contentBackground').offsetTop;
        var topdivOffsetHeight = document.getElementById('topdiv').offsetHeight;
        var BottomdivOffsetHeight = document.getElementById('bottomdiv').offsetHeight;
        var contentoffsetTop = document.getElementById('contentbox').offsetTop;
        if (contentoffsetTop < (contentBackGroundoffsetTop + topdivOffsetHeight)) {
            padding = (contentBackGroundoffsetTop + topdivOffsetHeight) + BottomdivOffsetHeight - contentoffsetTop;
            if (padding < 0)
                padding = 0;
        }
        else if (contentoffsetTop > (contentBackGroundoffsetTop + topdivOffsetHeight))
            padding = (contentBackGroundoffsetTop + topdivOffsetHeight) - contentoffsetTop;

    }
    catch (ex) {
        padding = 0;
    }
    return padding;
}


function CalculateDivHeights(val, padding, contentboxTop) {
    var mytool_array = val.split("--");
    padding = padding + 20;
    for (i = 0; i < mytool_array.length - 1; i++) {
        var mytooltemp_array = mytool_array[i].split(',');
        try {
            var calculatedTop = 0;
            var actualTop = document.getElementById(mytooltemp_array[0]).offsetTop;
            var BottomdivOffsetHeight = document.getElementById('bottomdiv').offsetHeight;
            if (mytooltemp_array[0] != "footer" && mytooltemp_array[0] != "")
                calculatedTop = document.getElementById('middlediv').offsetHeight + contentboxTop + BottomdivOffsetHeight + padding;
            else if (mytooltemp_array[0] == "footer")
                calculatedTop = document.getElementById('middlediv').offsetHeight + contentboxTop + BottomdivOffsetHeight + padding + 35;

            if (mytooltemp_array[0].search("pnlInset") != -1) {
                calculatedTop = document.getElementById('middlediv').offsetHeight + contentboxTop + parseInt(mytooltemp_array[1]) + parseInt(mytooltemp_array[2]);
            }
            else if (mytooltemp_array[0].search("inset_") != -1)
                calculatedTop = document.getElementById('middlediv').offsetHeight + contentboxTop + parseInt(mytooltemp_array[1]) + parseInt(mytooltemp_array[2]);
            else
                calculatedTop = calculatedTop + parseInt(mytooltemp_array[2]) + parseInt(mytooltemp_array[3]);
            if (parseInt(calculatedTop) > parseInt(actualTop)) {
                document.getElementById(mytooltemp_array[0]).style.top = calculatedTop + 'px';
            }
        }
        catch (e) {
        }
    }
}