
function inViewport (elem, offset) {
    var bounding = elem.getBoundingClientRect();
    return (
        bounding.top >= 0 &&
        bounding.left >= 0 &&
        bounding.bottom-offset <= (window.innerHeight || document.documentElement.clientHeight) &&
        bounding.right <= (window.innerWidth || document.documentElement.clientWidth)
    );
}
function checkIfElementsOnScreen(elements, offset){
    for(var i = 0; i < elements.length; i++){
        if(inViewport(elements[i], offset)){
            if(elements[i].getAttribute('data-src-lazy')){
                elements[i].src = elements[i].getAttribute('data-src-lazy');
                elements[i].removeAttribute('data-src-lazy');
            }
        }
    }
}
window.addEventListener('load', function(){
    var myElements = document.querySelectorAll("img[data-src-lazy]");
    var offset;
    if(window['lazyImageOffset']){
        offset = window['lazyImageOffset'];
    }else{
        offset = 0;
    }
    checkIfElementsOnScreen(myElements, offset);
    window.onscroll = function() {
        checkIfElementsOnScreen(myElements, offset);
    };
});
