HL Menu - Get Adjusted Column Length

by ethan_selzer

HTML

<h3>Requirements</h3>
<ol>
    <li>4 columns constant</li>
    <li>Column length is a minimum value - only compute overflow conditions</li>
    <li>Always start a new column for upcoming events</li>
</ol>
<h3>Questions</h3>
<ol>
    <li>Should the menu be the same size for each tab?</li>
    <li>Is 4 columns a constant or a max value?
</ol>

CSS

@import url('http://twitter.github.com/bootstrap/assets/css/bootstrap.css');

body{margin: 10px;}
ol{list-style-type:decimal;}

JavaScript

function getAdjustedColumnLength( columnLength, eventCount, upcomingEventCount ){
    var eventCountPlusLabel = eventCount + 1;
    var upcomingEventCountPlusLabel = upcomingEventCount + 1;
    var eventColumnCount = Math.ceil( eventCountPlusLabel / columnLength );
    var upcomingEventColumnCount = Math.ceil( upcomingEventCountPlusLabel / columnLength );
    var combinedColumnCount = eventColumnCount + upcomingEventColumnCount;
    if( combinedColumnCount > 4 ){
        getAdjustedColumnLength( ++columnLength, eventCount, upcomingEventCount );
    }
    return columnLength;
}

console.log( getAdjustedColumnLength( 16, 37, 22 ) );