quello che ti serve e' solo sapere quanti pixel sono scrollati e quanto e' alta la viewport
per lasciare piu' o meno tutto come hai fatto tu:
codice:
$(document).ready(function(){
function setMenuPosition(){
var fromTop=$(window).scrollTop()
var viewPortH=$(window).height()
if(fromTop>viewPortH) $('#menu').css('top','auto').removeClass('abs').addClass('fixx');
else $('#menu').removeClass('fixx').addClass('abs').css('top',viewPortH-40);
}
$(window).bind('scroll resize load', setMenuPosition);
});
ciao