On gists
                Ideasese - to discover
                    
                        
                        •
                        
                    
                    
                    
                    someinit.js
                        Raw
                        #
                    
                        /* Optional script description */
$().ready(function() {
    appFront.init();
});
// Popup youtube video
$(document).ready(function () {
 $('.popup-youtube, .popup-vimeo, .popup-gmaps').magnificPopup({
  disableOn: 700,
  type: 'iframe',
  mainClass: 'mfp-fade',
  removalDelay: 160,
  preloader: false,
  fixedContentPos: false
 });
});
/**
 * Define JS object namespace
 */
var appFront = (function() {
 return {
     /**
     *
     */
     init: function() {
         this.bindScrollTo();
         this.navScroll();
         this.modalInit();
         this.mobileMenu();
         this.mobileMenuClick();
     },
     /**
     *
     */
     bindScrollTo: function() {
         // Scroll to
         $(".scroll-to").click(function(evn){
             evn.preventDefault();
             var ww = window.innerWidth;
             var offset = 0;
             if ($(this).data("offset")) {
                 offset = $(this).data("offset");
             } else {
                 offset = 0;
             }
    if (ww > 1024) {
              offset += $(".nav").height() - 20;
             }
             if ($(this).data("href")) {
                 var href = $(this).data("href");
                 $('html,body').scrollTo(href, href, offset);
             } else {
                 $('html,body').scrollTo(this.hash, this.hash, offset);
             }
         });
     },
     /**
      *
      */
     navScroll: function() {
   var prevScrollpos = window.pageYOffset;
   var ww = window.innerWidth;
   if (ww > 1024) {
    checkNavPosition();
    window.onscroll = function() {
      checkNavPosition();
    }
   }
   function checkNavPosition() {
    var currentScrollPos = window.pageYOffset;
    var nav = $(".nav");
    var headerH = $(".header").height();
    if (prevScrollpos > (headerH - 120)) {
     nav.addClass("nav--fixed");
     nav.removeClass("nav--hide");
    } else if (prevScrollpos > 200) {
     nav.addClass("nav--hide");
     nav.removeClass("nav--fixed");
    } else {
     nav.removeClass("nav--hide");
     nav.removeClass("nav--fixed");
    }
    //console.log(prevScrollpos);
    //console.log("headerH: " + headerH);
    // DeBounce MAC
    if (prevScrollpos <= 200) {
     nav.removeClass("nav--hide");
     nav.removeClass("nav--fixed");
    }
    prevScrollpos = currentScrollPos;
   }
  },
  /**
      *
      */
  mobileMenu: function() {
   $('.nav__mobile').on("click tap", function() {
    $('.nav').toggleClass('nav--show');
   })
  },
  /**
      *
      */
  mobileMenuClick: function() {
   var ww = window.innerWidth;
   if (ww <= 1024) {
    $('.nav__link').on("click tap", function() {
     $('.nav').toggleClass('nav--show');
    })
   }
  },
  /**
      *
      */
  modalInit: function() {
   $('.button').click(function () {
    var $btn = $(this);
    var id = $btn.data('id');
    $(id).addClass('active');
    $(id).find('.modal').addClass('active');
   });
   $('.close-modal').click(function () {
    var $this = $(this);
    $this.parent().removeClass('active');
    $this.parent().parent().removeClass('active');
   });
   $('.modal-overlay').click(function (e) {    
    //console.log(e.target);
    var modal = $(this);
    if (e.target === this) {     
     modal.removeClass('active');
     modal.children().removeClass('active');
    }    
   });
  }
 }
})();