HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers93/fitale.nl/wwwroot/js/main.js
/**
 * Created by Pascal on 30/09/15.
 */
$(function () {
    resizer();

    $(window).resize(function () {
        resizer();
    });

    $(window).scroll(function () {
        scroller();
    });

    jQuery.each(jQuery('textarea[data-autoresize]'), function() {  //autosize TextArea
        var offset = this.offsetHeight - this.clientHeight;

        var resizeTextarea = function(el) {
            jQuery(el).css('height', 'auto').css('height', el.scrollHeight + offset);
        };
        jQuery(this).on('keyup input', function() { resizeTextarea(this); }).removeAttr('data-autoresize');
    });

    $('header .menu-icon').click(function(){
        $('header nav').toggleClass('active');
        $('header .link').toggleClass('show');
    });

    $('.internalLink').click(function(){
        animateScroll($(this), 120);
    });

    //make star canvas
    if($('canvas').length > 0) $('canvas').constellation();

    $("img").one("load", function() {
        resizer();
    }).each(function() {
        if(this.complete) $(this).load();
    });
});

function resizer() {

    var icon = $('header .menu-icon');

    $('header').height(icon.width());
    icon.height(icon.width());
    $('.vision-row .button').height($('.vision-row .button').width());

    $('.vision-row .business').css({
        'padding-top': (icon.height() + 10),
        'padding-bottom': (200 - (icon.height() + 10)),
        'height' : ($('.vision-row .vision').height())
    });
    var fullWidth = $('header nav').width();
    var menuWidth = $('header nav .menu').width();
    var sideWidth = ((fullWidth - menuWidth)/2);

    $('header nav .background').width((fullWidth + sideWidth - icon.width())).css('left', ((sideWidth+icon.width())+'px'));

    $('.services-row').css('margin-bottom', ('-'+(($('.services-row').height() - $('.services-row .background').height())/2)+'px'));

    $('.vision-row .vision').css('margin-top', '-'+(icon.height()/2)+'px');
    $('.vision-row .background').height(($('.vision-row .business').height()+200)*1.5);

    //redraw stars canvas
    if($('.vision-row canvas').length > 0) $('.vision-row canvas').constellation().css('top', icon.height());
}

function scroller() {
    if ($(this).scrollTop() >= 100) { // this refers to window
        $('header').addClass('scrolled');
    }
    else{
        $('header').removeClass('scrolled');
    }

    if(isElementPartInViewport($('#vision'))) {
        $('.main nav .menu .internalLink, .mobile .mb_content nav ul li').removeClass('active');
        $('.main nav .menu .internalLink[data-link=vision], .mobile .mb_content nav ul .internalLink[data-link=vision]').addClass('active');
    }

    if(isElementFullInViewport($('#mkb'))) {
        $('.main nav .menu .internalLink, .mobile .mb_content nav ul li').removeClass('active');
        $('.main nav .menu .internalLink[data-link=mkb], .mobile .mb_content nav ul .internalLink[data-link=mkb]').addClass('active');
    }

    if(isElementFullInViewport($('#licentie'))) {
        $('.main nav .menu .internalLink, .mobile .mb_content nav ul li').removeClass('active');
        $('.main nav .menu .internalLink[data-link=license], .mobile .mb_content nav ul .internalLink[data-link=license]').addClass('active');
    }

    if(isElementFullInViewport($('#services'))) {
        $('.main nav .menu .internalLink, .mobile .mb_content nav ul li').removeClass('active');
        $('.main nav .menu .internalLink[data-link=services], .mobile .mb_content nav ul .internalLink[data-link=services]').addClass('active');
    }

    if(isElementPartInViewport($('#news'))) {
        $('.main nav .menu .internalLink, .mobile .mb_content nav ul li').removeClass('active');
        $('.main nav .menu .internalLink[data-link=news], .mobile .mb_content nav ul .internalLink[data-link=news]').addClass('active');
    }

    if(isElementFullInViewport($('#methods'))) {
        $('.main nav .menu .internalLink, .mobile .mb_content nav ul li').removeClass('active');
        $('.main nav .menu .internalLink[data-link=methods], .mobile .mb_content nav ul .internalLink[data-link=methods]').addClass('active');
    }

    if(isElementFullInViewport($('#references-overview'))) {
        $('.main nav .menu .internalLink, .mobile .mb_content nav ul li').removeClass('active');
        $('.main nav .menu .internalLink[data-link=references], .mobile .mb_content nav ul .internalLink[data-link=references]').addClass('active');
    }

    if(isElementFullInViewport($('#contact'))) {
        $('.main nav .menu .internalLink, .mobile .mb_content nav ul li').removeClass('active');
        $('.main nav .menu .internalLink[data-link=contact], .mobile .mb_content nav ul .internalLink[data-link=contact]').addClass('active');
    }

}

function isElementFullInViewport(el) {
    //special bonus for those using jQuery
    if(el.length > 0){
        if (typeof jQuery === "function" && el instanceof jQuery) {
            el = el[0];
        }

        var rect = el.getBoundingClientRect();

        return (
            rect.top >= 0 &&
            rect.bottom <= (window.innerHeight || $(window).height())
        );
    }
}

function isElementPartInViewport(el)
{
    if(el.length > 0) {
        //special bonus for those using jQuery
        if (typeof jQuery !== 'undefined' && el instanceof jQuery) el = el[0];

        var rect = el.getBoundingClientRect();
        // DOMRect { x: 8, y: 8, width: 100, height: 100, top: 8, right: 108, bottom: 108, left: 8 }
        var windowHeight = (window.innerHeight || document.documentElement.clientHeight);
        var windowWidth = (window.innerWidth || document.documentElement.clientWidth);

        var vertInView = (rect.top <= windowHeight) && ((rect.top + rect.height) >= 0);
        var horInView = (rect.left <= windowWidth) && ((rect.left + rect.width) >= 0);

        return (vertInView && horInView);
    }
}

function isElementPartExtraInViewport(el, margin)
{
    if(el.length > 0) {
        //special bonus for those using jQuery
        if (typeof jQuery !== 'undefined' && el instanceof jQuery) el = el[0];

        var rect = el.getBoundingClientRect();
        // DOMRect { x: 8, y: 8, width: 100, height: 100, top: 8, right: 108, bottom: 108, left: 8 }
        var windowHeight = (window.innerHeight || document.documentElement.clientHeight);
        var windowWidth = (window.innerWidth || document.documentElement.clientWidth);

        var vertInView = (rect.top <= (windowHeight - margin)) && ((rect.top + rect.height) >= 0);
        var horInView = (rect.left <= windowWidth) && ((rect.left + rect.width) >= 0);

        return (vertInView && horInView);
    }
}

function tabletOrMobile() {
    if(window.navigator.userAgent.match(/Mobile/i)
        || window.navigator.userAgent.match(/iPhone/i)
        || window.navigator.userAgent.match(/iPod/i)
        || window.navigator.userAgent.match(/IEMobile/i)
        || window.navigator.userAgent.match(/Windows Phone/i)
        || window.navigator.userAgent.match(/Android/i)
        || window.navigator.userAgent.match(/BlackBerry/i)
        || window.navigator.userAgent.match(/webOS/i)) {
        return true;
        //alert('True - Mobile - ' + navigator.userAgent);
    } else {
        //alert('False - Mobile - ' + navigator.userAgent);
        //return false;
    }
    if(window.navigator.userAgent.match(/Tablet/i)
        || window.navigator.userAgent.match(/iPad/i)
        || window.navigator.userAgent.match(/Nexus 7/i)
        || window.navigator.userAgent.match(/Nexus 10/i)
        || window.navigator.userAgent.match(/KFAPWI/i)) {
        return true;
        //alert('True - Tablet - ' + navigator.userAgent);
    }
    if($('body').width() <= 500){
        return true;
    }
    else {
        //alert('False - Tablet - ' + navigator.userAgent);
        //return false;
    }
}

function animateScroll(e, offset, time){
    offset = typeof offset !== 'undefined' ? offset : 60;
    time = typeof time !== 'undefined' ? time : 600;

    var scrollTo = e.data('link');

    $('html,body').animate({
        scrollTop: $('#'+scrollTo).offset().top - offset
    }, time);
}