scroll* по логике должен дать размер документа, а не размер окна.
function getRootElement(doc) {
doc = doc || document;
return doc.compatMode == 'CSS1Compat' ? doc.documentElement : doc.body;
}
function getViewportSize(doc) {
doc = doc || document;
var elem = getRootElement(doc);
return [elem.clientWidth, elem.clientHeight];
}