﻿.generateResponsiveGridHeights() {
    //Alles über 1400px - je nachdem wie es einstellt wurde.
    @media (min-height: @screenHeightMax) {
        #@{gridIdList} {
            height: @heightAfterMaxCalculateHeight;
        }
    }
    //Schleife die sich von 1400 bis 500 pixel in 25px schritten widerholt.
    .responsiveGrid (@index) when (@index >= 0) {
        @minHeight: (@screenHeight+(25*@index)); //errechnet den min-height wert des @media
        @maxHeight: (@minHeight + 24); //errechnet den max-height wert des @media

        @boolMaxCalculateHeight: boolean(@minHeight > @maxCalculateHeight); //ist true wenn der min-height den eingestellten maxCalculate übersteigt
        @boolMinCalculateHeight: boolean(@minHeight < @minCalculateHeight); //ist true wenn der min-height den eingestellten minCalculate unterschreitet

        @heightMath: if(@boolMaxCalculateHeight, @heightAfterMaxCalculateHeight, if(@boolMinCalculateHeight, @heightBeforeMinCalculateHeight,@height+50+(@index*25))); //wenn keiner der werte über oder unterschritten wurde, setze den berechneten height wert. ansonsten setze den eignestellten min/max calculate-wert.
        //media mit den berechneten height werten.
        @media (min-height: @minHeight) and (max-height: @maxHeight) {
            #@{gridIdList} {
                height: @heightMath;
            }
        }
        // nächster schleifen durchgang
        .responsiveGrid(@index - 1);
    }
    // beendet die Schleife wenn der Index 0 ist
    .responsiveGrid (0) {
    }
    // ruft die Schleife das erste mal mit dem höchsten wert auf (errechneter loop)
    .responsiveGrid (@loop);
    //hoehe für 500px und darunter
    @media (max-height: @screenHeight) {
        #@{gridIdList} {
            height: @height;
        }
    }
}
