﻿var gridabsheight = 0
function correcttoPosition(newrowcounter) {

    for (var j = 0; j < g_rows[newrowcounter].length; j++) {

    }
}


function gridSetNewHeight(absheight, gitem) {
    var newheight
    var top = parseInt(document.getElementById(gitem.id).style.top.toLowerCase().replace("px", ""))
    newheight = absheight - parseInt(top) - parseInt(gitem.heightoffset) + gitem.height
    if (newheight > 0) {
        //debugger
        document.getElementById(gitem.id).style.height = newheight + "px"
    }
    else {
        document.getElementById(gitem.id).style.height = gitem.height + "px"

    }

}

function gridGetClientheight(gitem) {
    var re = new Object
    re.offsetheight = parseInt(document.getElementById(gitem.id).offsetHeight)
    if (re.offsetheight < gitem.heightoffset) {
        re.offsetheight = parseInt(gitem.heightoffset)
    }
    re.absheight = parseInt(document.getElementById(gitem.id).style.top.toLowerCase().replace("px", "")) + parseInt(re.offsetheight)
    return re
}

function gridgetrowendpos(rowpos, nextrowposindex) {
    var tempmaxendpos = 0
    var absheight = 0
    var clientvalues
    var newheight
    for (var i = 0; i < g_rows.length; i++) {

        //Maximale Endpunkte ermitteln
        for (var j = 0; j < g_rows[i].length; j++) {
            if (g_rows[i][j].rowendpos == rowpos) {
                if (rowpos == 3) {

                }
                clientvalues = gridGetClientheight(g_rows[i][j])
                if (clientvalues.offsetheight > tempmaxendpos || clientvalues.absheight > absheight) {
                    tempmaxendpos = clientvalues.offsetheight
                    absheight = clientvalues.absheight

                }
                else {
                    if (tempmaxendpos == 0) {
                        tempmaxendpos = clientvalues.offsetheight
                        absheight = clientvalues.absheight
                    }
                }
                if (absheight > gridabsheight) {
                    gridabsheight = absheight
                }

            }
        }


    }
    for (var i = 0; i < g_rows.length; i++) {
        //Maximale Endpunkte setzen
        for (var j = 0; j < g_rows[i].length; j++) {
            if (g_rows[i][j].rowendpos == rowpos) {
                gridSetNewHeight(absheight, g_rows[i][j])
            }
        }
    }

    if (nextrowposindex > gridallRows.length - 1) {
        return
    }

    //TOP - Position für nächste Zeile Korrigieren
    for (var i = 0; i < g_rows.length; i++) {
        for (var j = 0; j < g_rows[i].length; j++) {
            if (g_rows[i][j].rowpos == gridallRows[nextrowposindex]) {
                document.getElementById(g_rows[i][j].id).style.top = parseInt(parseInt(absheight) + parseInt(gridrowspaceheight)) + "px"
            }
        }
    }
}

function gridcorrectheight() {

    gridabsheight = 0
    for (var i = 0; i < gridallRows.length; i++) {
        gridgetrowendpos(gridallRows[i], i + 1)
    }

    document.getElementById(griddivcontainerid).style.height = parseInt(gridabsheight) + 0 + "px"
}
