The problem is with the tree logo!!! Here is what happens:
You did not specify width and height on the image. When you do that, the browser assumes a height of 0px on document.ready 1. On document.ready, your script calculates the height of the header to be 60px and sets a min-height on section right away.
When the image loads, the height of header changes to 101px; at this point, the content (header, section, footer) grows by 41px hence the scrollbar.
1 The results could be different if the image is loaded from cache.
You have two three options:
1: specify image dimensions in HTML source:
<img alt="Tree Logo" id="main-logo" src="logo.png" width="83" height="101"/>
Demo here, seems to work.
2: calculate heights on window.load instead of document.ready.
3. Better, use a CSS sticky footer (unless I misunderstood what you're trying to do).