File Manager

Current Path : /webspace/www.nougat-bb.be/html/wp-content/themes/zerif-lite/js/
Upload File :
Current File : /webspace/www.nougat-bb.be/html/wp-content/themes/zerif-lite/js/smoothscroll.js

// SmoothScroll v0.9.9

// Licensed under the terms of the MIT license.



// People involved

// - Balazs Galambosi: maintainer (CHANGELOG.txt)

// - Patrick Brunner (patrickb1991@gmail.com)

// - Michael Herf: ssc_pulse Algorithm



function ssc_init() {

    if (!document.body) return;

    var e = document.body;

    var t = document.documentElement;

    var n = window.innerHeight;

    var r = e.scrollHeight;

    ssc_root = document.compatMode.indexOf("CSS") >= 0 ? t : e;

    ssc_activeElement = e;

    ssc_initdone = true;

    if (top != self) {

        ssc_frame = true

    } else if (r > n && (e.offsetHeight <= n || t.offsetHeight <= n)) {

        ssc_root.style.height = "auto";

        if (ssc_root.offsetHeight <= n) {

            var i = document.createElement("div");

            i.style.clear = "both";

            e.appendChild(i)

        }

    }

    if (!ssc_fixedback) {

        e.style.backgroundAttachment = "scroll";

        t.style.backgroundAttachment = "scroll"

    }

    if (ssc_keyboardsupport) {

        ssc_addEvent("keydown", ssc_keydown)

    }

}



function ssc_scrollArray(e, t, n, r) {

    r || (r = 1e3);

    ssc_directionCheck(t, n);

    ssc_que.push({

        x: t,

        y: n,

        lastX: t < 0 ? .99 : -.99,

        lastY: n < 0 ? .99 : -.99,

        start: +(new Date)

    });

    if (ssc_pending) {

        return

    }

    var i = function () {

        var s = +(new Date);

        var o = 0;

        var u = 0;

        for (var a = 0; a < ssc_que.length; a++) {

            var f = ssc_que[a];

            var l = s - f.start;

            var c = l >= ssc_animtime;

            var h = c ? 1 : l / ssc_animtime;

            if (ssc_pulseAlgorithm) {

                h = ssc_pulse(h)

            }

            var p = f.x * h - f.lastX >> 0;

            var d = f.y * h - f.lastY >> 0;

            o += p;

            u += d;

            f.lastX += p;

            f.lastY += d;

            if (c) {

                ssc_que.splice(a, 1);

                a--

            }

        }

        if (t) {

            var v = e.scrollLeft;

            e.scrollLeft += o;

            if (o && e.scrollLeft === v) {

                t = 0

            }

        }

        if (n) {

            var m = e.scrollTop;

            e.scrollTop += u;

            if (u && e.scrollTop === m) {

                n = 0

            }

        }

        if (!t && !n) {

            ssc_que = []

        }

        if (ssc_que.length) {

            setTimeout(i, r / ssc_framerate + 1)

        } else {

            ssc_pending = false

        }

    };

    setTimeout(i, 0);

    ssc_pending = true

}



function ssc_wheel(e) {

    if (!ssc_initdone) {

        ssc_init()

    }

    var t = e.target;

    var n = ssc_overflowingAncestor(t);

    if (!n || e.defaultPrevented || ssc_isNodeName(ssc_activeElement, "embed") || ssc_isNodeName(t, "embed") && /\.pdf/i.test(t.src)) {

        return true

    }

    var r = e.wheelDeltaX || 0;

    var i = e.wheelDeltaY || 0;

    if (!r && !i) {

        i = e.wheelDelta || 0

    }

    if (Math.abs(r) > 1.2) {

        r *= ssc_stepsize / 120

    }

    if (Math.abs(i) > 1.2) {

        i *= ssc_stepsize / 120

    }

    ssc_scrollArray(n, -r, -i);

    e.preventDefault()

}



function ssc_keydown(e) {

    var t = e.target;

    var n = e.ctrlKey || e.altKey || e.metaKey;

    if (/input|textarea|embed/i.test(t.nodeName) || t.isContentEditable || e.defaultPrevented || n) {

        return true

    }

    if (ssc_isNodeName(t, "button") && e.keyCode === ssc_key.spacebar) {

        return true

    }

    var r, i = 0,

        s = 0;

    var o = ssc_overflowingAncestor(ssc_activeElement);

    var u = o.clientHeight;

    if (o == document.body) {

        u = window.innerHeight

    }

    switch (e.keyCode) {

    case ssc_key.up:

        s = -ssc_arrowscroll;

        break;

    case ssc_key.down:

        s = ssc_arrowscroll;

        break;

    case ssc_key.spacebar:

        r = e.shiftKey ? 1 : -1;

        s = -r * u * .9;

        break;

    case ssc_key.pageup:

        s = -u * .9;

        break;

    case ssc_key.pagedown:

        s = u * .9;

        break;

    case ssc_key.home:

        s = -o.scrollTop;

        break;

    case ssc_key.end:

        var a = o.scrollHeight - o.scrollTop - u;

        s = a > 0 ? a + 10 : 0;

        break;

    case ssc_key.left:

        i = -ssc_arrowscroll;

        break;

    case ssc_key.right:

        i = ssc_arrowscroll;

        break;

    default:

        return true

    }

    ssc_scrollArray(o, i, s);

    e.preventDefault()

}



function ssc_mousedown(e) {

    ssc_activeElement = e.target

}



function ssc_setCache(e, t) {

    for (var n = e.length; n--;) ssc_cache[ssc_uniqueID(e[n])] = t;

    return t

}



function ssc_overflowingAncestor(e) {

    var t = [];

    var n = ssc_root.scrollHeight;

    do {

        var r = ssc_cache[ssc_uniqueID(e)];

        if (r) {

            return ssc_setCache(t, r)

        }

        t.push(e);

        if (n === e.scrollHeight) {

            if (!ssc_frame || ssc_root.clientHeight + 10 < n) {

                return ssc_setCache(t, document.body)

            }

        } else if (e.clientHeight + 10 < e.scrollHeight) {

            overflow = getComputedStyle(e, "").getPropertyValue("overflow");

            if (overflow === "scroll" || overflow === "auto") {

                return ssc_setCache(t, e)

            }

        }

    } while (e = e.parentNode)

}



function ssc_addEvent(e, t, n) {

    window.addEventListener(e, t, n || false)

}



function ssc_removeEvent(e, t, n) {

    window.removeEventListener(e, t, n || false)

}



function ssc_isNodeName(e, t) {

    return e.nodeName.toLowerCase() === t.toLowerCase()

}



function ssc_directionCheck(e, t) {

    e = e > 0 ? 1 : -1;

    t = t > 0 ? 1 : -1;

    if (ssc_direction.x !== e || ssc_direction.y !== t) {

        ssc_direction.x = e;

        ssc_direction.y = t;

        ssc_que = []

    }

}



function ssc_pulse_(e) {

    var t, n, r;

    e = e * ssc_pulseScale;

    if (e < 1) {

        t = e - (1 - Math.exp(-e))

    } else {

        n = Math.exp(-1);

        e -= 1;

        r = 1 - Math.exp(-e);

        t = n + r * (1 - n)

    }

    return t * ssc_pulseNormalize

}



function ssc_pulse(e) {

    if (e >= 1) return 1;

    if (e <= 0) return 0;

    if (ssc_pulseNormalize == 1) {

        ssc_pulseNormalize /= ssc_pulse_(1)

    }

    return ssc_pulse_(e)

}



var ssc_framerate = 150;

var ssc_animtime = 500;

var ssc_stepsize = 150;

var ssc_pulseAlgorithm = true;

var ssc_pulseScale = 6;

var ssc_pulseNormalize = 1;

var ssc_keyboardsupport = true;

var ssc_arrowscroll = 50;

var ssc_frame = false;

var ssc_direction = {

    x: 0,

    y: 0

};



var ssc_initdone = false;

var ssc_fixedback = true;

var ssc_root = document.documentElement;

var ssc_activeElement;

var ssc_key = {

    left: 37,

    up: 38,

    right: 39,

    down: 40,

    spacebar: 32,

    pageup: 33,

    pagedown: 34,

    end: 35,

    home: 36

};



var ssc_que = [];

var ssc_pending = false;

var ssc_cache = {};



setInterval(function () {

    ssc_cache = {}

}, 10 * 1e3);



var ssc_uniqueID = function () {

    var e = 0;

    return function (t) {

        return t.ssc_uniqueID || (t.ssc_uniqueID = e++)

    }

}();



var ischrome = /chrome/.test(navigator.userAgent.toLowerCase());



if (ischrome) {

    ssc_addEvent("mousedown", ssc_mousedown);

    ssc_addEvent("mousewheel", ssc_wheel);

    ssc_addEvent("load", ssc_init)

}

File Manager Version 1.0, Coded By Lucas
Email: hehe@yahoo.com