function getWindow(doc) {
return doc.parentWindow || doc.defaultView;
}
function getDocumentScroll(doc) {
doc = doc || document;
var win = getWindow(doc);
return [
win.pageXOffset || doc.documentElement.scrollLeft || doc.body.scrollLeft || 0,
win.pageYOffset || doc.documentElement.scrollTop || doc.body.scrollTop || 0
];
}
function getViewportSize(doc) {
doc = doc || document;
var elem = getRootElement(doc);
return [elem.clientWidth, elem.clientHeight];
}