/*
Usage: 
new ScrollWatcher({
    selector: '.header--scroll',
    classes: 'header--scroll-in-view',
    scrollOffset: 0,
})
*/

export default class {
    constructor(
        config = {
            selector: '',
            classes: 'not-top',
            scrollOffset: 0,
        }
    ) {
        this.selector = config.selector
        this.classes = config.classes
        this.scrollOffset = config.scrollOffset

        this.bindEvents()
    }

    bindEvents() {
        const self = this
        const selectors = document.querySelectorAll(self.selector)

        if (selectors) {
            selectors.forEach(selector => {
                window.addEventListener(
                    'scroll',
                    function() {
                        if (this.scrollY > self.scrollOffset) {
                            selector.classList.add(self.classes)
                        } else {
                            selector.classList.remove(self.classes)
                        }
                    },
                    false
                )
            })
        }
    }
}