function f_clientWidth() {
        return f_filterResults (
                window.innerWidth ? window.innerWidth : 0,
              document.documentElement ? document.documentElement.clientWidth : 0,
                document.body ? document.body.clientWidth : 0
        );
}
function f_clientHeight() {
        res = f_filterResults (
            window.innerHeight ? window.innerHeight : 0,
            document.documentElement ? document.documentElement.clientHeight : 0,
            document.body ? document.body.clientHeight : 0
        );
        return res;
}
function f_scrollLeft() {
        return f_filterResults (
                window.pageXOffset ? window.pageXOffset : 0,
                document.documentElement ? document.documentElement.scrollLeft : 0,
                document.body ? document.body.scrollLeft : 0
        );
}
function f_scrollLeftIE() {
    return document.documentElement ? document.documentElement.scrollLeft : document.body.scrollLeft;
}
function f_scrollTopIE() {
    return document.documentElement ? document.documentElement.scrollTop : document.body.scrollTop;
}
function f_scrollTop() {
        return f_filterResults (
                window.pageYOffset ? window.pageYOffset : 0,
                document.documentElement ? document.documentElement.scrollTop : 0,
                document.body ? document.body.scrollTop : 0
     );
}
function f_scrollHeight() {
        return f_filterResults (
                window.pageYOffset ? window.pageYOffset : 0,
                document.documentElement ? document.documentElement.scrollHeight : 0,
                document.body ? document.body.scrollHeight : 0
     );
}
function f_maxClientHeight(){
    var max = 0;
    var h1 = window.innerHeight ? window.innerHeight : 0;
    var h2 = document.documentElement ? document.documentElement.clientHeight : 0;
    var h3 = document.body ? document.body.clientHeight : 0;
    max =  f_filterResults(h1, h2, h3);
    return max;
}
function f_filterResults(n_win, n_docel, n_body) {
    var n_result = n_win ? n_win : 0;
    if (n_docel && (!n_result || (n_result > n_docel))) n_result = n_docel;
    return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}

function f_scrollHeightForWin(win) {
        return f_filterResults (
                win.pageYOffset ? win.pageYOffset : 0,
                win.document.documentElement ? win.document.documentElement.scrollHeight : 0,
                win.document.body ? win.document.body.scrollHeight : 0
     );
}
function f_centeredLeft(width){
    return (f_clientWidth() - width)/2;
}
function f_centeredTop(height){
    return (f_scrollTop() + (f_clientHeight() - height)/2);
}