関数の外で $(window).height() を呼び出すと (スクリプトの最初など)、正しい高さが得られます。しかし、関数内で呼び出すと、たとえば
$(window).resize(function (){
window_height = $(window).height();
});
常に同じ、正しくない結果 (2100) が返されます。これは、他の関数で行われます (この関数だけではありません)。これを Chrome でテストしています (他のブラウザで問題が発生するかどうかはわかりません)。