JAVASCRIPT 19
Nain.js Guest on 5th September 2020 12:37:55 PM
  1. 'use strict';
  2. var isTouchDevice = navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry|Windows Phone)/);
  3.  
  4. $(window).on('load', function () {
  5.   // PRELOADER
  6.   var $preloader = $('.page-preloader'),
  7.   $spinner   = $preloader.find('.spinner');
  8.   $spinner.fadeIn();
  9.   $spinner.fadeOut();
  10.   $preloader.delay(300).fadeOut('slow');
  11.  
  12.   if (!isTouchDevice) {
  13.     $(".intro").mCustomScrollbar({
  14.         scrollInertia: 1000
  15.     });
  16.   }
  17.  
  18. });
  19.  
  20. $(document).ready(function () {
  21.  
  22.  
  23.   if (isTouchDevice) {
  24.     if ($('.video-bg').length) {
  25.       $('.video-bg video').css('display', 'none')
  26.     };
  27.   } else if(!isTouchDevice) {
  28.     $('body').addClass('no-touch')
  29.   }
  30.   function removeScrollSection(elem) {
  31.     elem.each(function(){
  32.       if ($(this).find('.'+scrollClassSection).length>0) {
  33.         $('.'+scrollClassSection).children().unwrap();
  34.       };
  35.     })
  36.   }
  37.   function scrollSection(elem) {
  38.     var t = 0;
  39.     var scrollHeight = $(window).height() - parseInt(elem.css('padding-bottom'), 10) - parseInt(elem.css('padding-top'), 10);
  40.     elem.each(function() {
  41.       $(this).children().each(function(){
  42.         t+=$(this)[0].scrollHeight;
  43.       })
  44.       if (t > scrollHeight) {
  45.         if ($(this).find('.'+scrollClassSection).length<=0 && $(window).width()>=768) {
  46.           if (isTouchDevice) {
  47.             $(this).children().wrapAll( "<div class='"+scrollClassSection+"'></div>" );
  48.             $(this).find('.'+scrollClassSection).css({
  49.               height: '100%',
  50.               "overflow-y": 'auto',
  51.               "-webkit-overflow-scrolling": "touch"
  52.             })
  53.           } else if (!isTouchDevice) {
  54.             $(this).mCustomScrollbar({
  55.               axis      :"y",
  56.               scrollInertia : 150
  57.             });
  58.             $(this).find('.mCSB_inside>.mCSB_container').css({
  59.               marginRight: '0px'
  60.             })
  61.           }
  62.         }
  63.       }
  64.       if ($(window).width()<768) {
  65.         if ($(this).find('.'+scrollClassSection).length>0) {
  66.           removeScrollSection(elem);
  67.         }
  68.         else if ($(this).find('.mCustomScrollBox')){
  69.           $(this).mCustomScrollbar('destroy');
  70.         }
  71.       } else if(isTouchDevice) {
  72.         $(this).find('.'+scrollClassSection).css({
  73.           height: $(this).height(),
  74.         })
  75.         if ($('.fullpage').length) {
  76.           $.fn.fullpage.setAllowScrolling(false);
  77.           $.fn.fullpage.setKeyboardScrolling(false);
  78.           $.fn.fullpage.setAutoScrolling(true);
  79.         };
  80.       }
  81.       t=0
  82.     })
  83.   }
  84.  
  85.   // add class for menu item hover for !isTouchDevice
  86.   if (!isTouchDevice) {
  87.     $('nav').addClass('cl-effect-5')
  88.   };
  89.  
  90.   blurBg();
  91.   customSelect();
  92.   countDown();
  93.   navMenu();
  94.   contactForm ();
  95.   notifyMe();
  96.   backgroundSlider();
  97.   retina();
  98.  
  99.   if (isTouchDevice) {
  100.     preventFigureLinkClick();
  101.   };
  102.  
  103.   /* ADD SPAN FOR BORDER BLOCK */
  104.   $('.border-block').append('<span></span>');
  105.   /* END ADD SPAN FOR BORDER BLOCK */
  106.  
  107.   //animation for notify
  108.   $('form.notify').addClass('form-close');
  109.   $('form.notify label').addClass('show-link');
  110.   $('form.notify input, form.notify button').addClass('hide-link');
  111.  
  112.   $('body').on('click', function(e) {
  113.     if ( $(e.target).is('form.notify')
  114.       || $(e.target).is('form.notify label')
  115.       || $(e.target).is('form.notify input') ) {
  116.         if ($('form.notify').hasClass('form-close')) {
  117.           $('form.notify label').removeClass('show-link');
  118.           $('form.notify').removeClass('form-close');
  119.           $('form.notify').addClass('form-open');
  120.         };
  121.  
  122.         $('form.notify input, form.notify button').removeClass('hide-link');
  123.         $('form.notify input, form.notify button').addClass('show-link');
  124.         $('form.notify label').addClass('hide-link');
  125.     } else if($(e.target).is('form.notify button')
  126.       || $(e.target).is('form.notify button>span')) {
  127.         return true;
  128.       } else {
  129.           if ($('form.notify').hasClass('form-open')) {
  130.             $('form.notify').removeClass('form-open');
  131.             $('form.notify').addClass('form-close');
  132.             $('form.notify').trigger('reset');
  133.             $('form.notify').removeClass('wrong');
  134.             $('form.notify').removeClass('right');
  135.           };
  136.           $('form.notify input, form.notify button').removeClass('show-link');
  137.           $('form.notify input, form.notify button').addClass('hide-link');
  138.           $('form.notify label').removeClass('hide-link');
  139.           $('form.notify label').addClass('show-link');
  140.         }
  141.       })
  142.  
  143.   //animation for share button
  144.   $('.share .social').addClass('hide-link');
  145.   $('.share>.share-button>img').on( 'click', function(){
  146.     $('.share .social').removeClass('hide-link');
  147.     $('.share .social').addClass('show-link');
  148.     $('.share>.share-button').removeClass('show-link');
  149.     $('.share>.share-button').addClass('hide-link');
  150.     return false;
  151.   });
  152.  
  153.   $('body').on( 'click', function() {
  154.     $('.share .social').removeClass('show-link');
  155.     $('.share .social').addClass('hide-link');
  156.     $('.share>.share-button').removeClass('hide-link');
  157.     $('.share>.share-button').addClass('show-link');
  158.   });
  159.  
  160.   //add array of menu
  161.   var arrayMenuAnchor = []
  162.  
  163.   $('.section-menu').find('li').each(function() {
  164.     arrayMenuAnchor.push($(this).data('menuanchor'));
  165.   })
  166.  
  167.   var scrollClassSection = 'scrollSection';
  168.   var duration = 300;
  169.   var sectionDelay = 0;
  170.   var globalDelay = 0;
  171.   var fullPageDesctop;
  172.  
  173.   //function for fullPage plugin
  174.   if($('.fullpage').length) {
  175.       $('.fullpage').fullpage({
  176.         menu: '.section-menu',
  177.         anchors:arrayMenuAnchor,
  178.         /*scrollingSpeed: 300,*/
  179.         navigation: false,
  180.         scrollOverflow: false,
  181.         css3: false,
  182.         verticalCentered: false,
  183.         sectionSelector: 'section',
  184.         responsive: 768,
  185.         afterLoad: function(anchorLink, index){
  186.  
  187.           sectionDelay = 300;
  188.  
  189.           $(this).find('[data-animation-delay]').each(function() {
  190.             sectionDelay = Math.max(sectionDelay, $(this).attr('data-animation-delay'))
  191.             globalDelay = duration+sectionDelay;
  192.           })
  193.  
  194.  
  195.           if ($(window).width()>=768) {
  196.             setTimeout(function(){
  197.               $('section.active')
  198.               .css({
  199.                 visibility: 'visible'
  200.               })
  201.               .animate({
  202.                 opacity: 1
  203.               }, 300);
  204.  
  205.               animateStart();
  206.  
  207.             }, globalDelay+200)
  208.           }
  209.         },
  210.  
  211.         onLeave: function(index, nextIndex, direction){
  212.           if ($(window).width()>=768) {
  213.             setTimeout(function(){
  214.               animateFinish();
  215.             }, 0)
  216.  
  217.  
  218.             $(this).find('[data-out-animation-delay]').each(function() {
  219.               sectionDelay = Math.max(sectionDelay, $(this).attr('data-out-animation-delay'))
  220.               globalDelay = duration+sectionDelay;
  221.             });
  222.  
  223.             setTimeout(function(){
  224.               $('section').each(function(){
  225.                  if (!$(this).hasClass('active')) {
  226.                   $(this)
  227.                   .animate({
  228.                     opacity: 0
  229.                   }, 300)
  230.                   .delay(350)
  231.                   .css({
  232.                     visibility: 'hidden'
  233.                   });
  234.                 };
  235.               })
  236.             }, globalDelay+200)
  237.  
  238.             $('main').css({
  239.               "-webkit-transition": "top 0ms ease "+globalDelay+"ms",
  240.               "-o-transition": "top 0ms ease "+globalDelay+"ms",
  241.               "transition": "top 0ms ease "+globalDelay+"ms"
  242.             });
  243.           };
  244.         },
  245.  
  246.         afterRender: function() {
  247.           if ($(window).width()>=768) {
  248.             $('section.active [data-animation]').each(function() {
  249.               $(this).addClass('animated');
  250.             });
  251.  
  252.             fullPageDesctop = true;
  253.  
  254.             var footer = $('footer')[0].innerHTML;
  255.             $('footer').css({
  256.               opacity: 0
  257.             });
  258.  
  259.             $( "section" ).append(footer);
  260.             $('.section-content').append('<div class="border-top"></div>');
  261.             $('.section-content').append('<div class="border-bottom"></div>');
  262.  
  263.             borderWr();
  264.  
  265.             $('section').each(function(){
  266.  
  267.               /*$(this).css({
  268.                 height: '100%'
  269.               })*/
  270.               var HSC = function(elem) {
  271.                 if (elem.find('.share').length>0) {
  272.                   return 36;
  273.                 } else {
  274.                   return 0;
  275.                 }
  276.               }
  277.  
  278.               $(this).find('.section-content-wrapper')
  279.                 .css({
  280.                 paddingTop: '50px',
  281.                 paddingBottom: '50px',
  282.                 overflow: 'hidden',
  283.                 display: 'table',
  284.                 height: $(window).height()-120-120-HSC($(this)),
  285.               });
  286.             })
  287.           } else {
  288.             $('[data-animation]').each(function() {
  289.               $(this).removeClass($(this).data('animation'));
  290.             });
  291.  
  292.             fullPageDesctop = false;
  293.  
  294.             $('section').each(function() {
  295.               $(this).css({
  296.                 height: 'auto'
  297.               })
  298.             })
  299.  
  300.             $('.section-content-wrapper').each(function(){
  301.               $(this).css({
  302.                 paddingTop: '0px',
  303.                 paddingBottom: '0px',
  304.                 marginBottom: '0px',
  305.                 height: 'auto'
  306.               })
  307.             })
  308.           }
  309.  
  310.           setTimeout(function(){
  311.             scrollSection($('section'));
  312.           },300)
  313.         },
  314.  
  315.         afterResize: function() {
  316.           $('section').each(function(){
  317.  
  318.             /*$(this).css({
  319.               height:'100%'
  320.             })*/
  321.           })
  322.           if ($(window).width()>=768) {
  323.             setTimeout(function(){
  324.               $('body').css('height', '')
  325.             }, 400)
  326.  
  327.             $('[data-animation]').each(function() {
  328.               $(this).addClass('animated');
  329.             });
  330.  
  331.             if (fullPageDesctop == false) {
  332.  
  333.               fullPageDesctop = true;
  334.  
  335.               $('section')
  336.               .css({
  337.                 visibility: 'hidden'
  338.               })
  339.               .animate({
  340.                 opacity: 0
  341.               }, 1);
  342.  
  343.               $('section.active')
  344.               .css({
  345.                 visibility: 'visible'
  346.               })
  347.               .animate({
  348.                 opacity: 1
  349.               }, 300);
  350.  
  351.               $('.section-content').append('<div class="border-top"></div>');
  352.               $('.section-content').append('<div class="border-bottom"></div>');
  353.  
  354.               borderWr();
  355.  
  356.               var footer = $('footer')[0].innerHTML;
  357.               $( "section" ).append(footer);
  358.  
  359.               $('footer').animate({
  360.                 opacity: 0
  361.               }, 1);
  362.  
  363.               animateFinish();
  364.               animateStart();
  365.             }
  366.  
  367.             $('section').each(function(){
  368.               var HSC = function(elem) {
  369.                 if (elem.find('.share').length>0) {
  370.                   return 33;
  371.                 } else {
  372.                   return 0;
  373.                 }
  374.               }
  375.  
  376.               $(this).find('.section-content-wrapper')
  377.                 .css({
  378.                   paddingTop: '50px',
  379.                   paddingBottom: '50px',
  380.                   overflow: 'hidden',
  381.                   display: 'table',
  382.                   height: $(window).height()-120-120-HSC($(this)),
  383.                 });
  384.               })
  385.           } else if ($(window).width()<768) {
  386.             $('[data-animation]').each(function() {
  387.               $(this).removeClass('animated');
  388.             })
  389.  
  390.             $('section').each(function() {
  391.               $(this).css({
  392.                 height: 'auto'
  393.               })
  394.             })
  395.  
  396.             $('.section-content-wrapper').css({
  397.               paddingTop: '0px',
  398.               paddingBottom: '0px',
  399.               marginBottom: '0px',
  400.               height: 'auto'
  401.             })
  402.  
  403.             $('section, footer').animate({
  404.               opacity: 1
  405.             }, 1);
  406.             $('section').css({
  407.               visibility: 'visible'
  408.             })
  409.  
  410.             if (fullPageDesctop == true) {
  411.  
  412.               fullPageDesctop = false;
  413.  
  414.               $('.border-top, .border-bottom').remove();
  415.               $( "section .copyright" ).remove();
  416.             };
  417.           }
  418.  
  419.           setTimeout(function() {
  420.             scrollSection($('section'))
  421.           }, 300)
  422.         }
  423.       });
  424.   } else {
  425.  
  426.     borderWr();
  427.  
  428.     var link = $('nav .section-menu > li > a');
  429.  
  430.     link.on('click', function(e) {
  431.       var headerHeight = $('header').height()+parseInt($('header').css('padding-top'), 10)+parseInt($('header').css('padding-bottom'), 10);
  432.       var target = $(this).attr('href');
  433.       target = target.replace('#','');
  434.       var destination = $('section[data-anchor="'+target+'"]');
  435.  
  436.       if (target.length) {
  437.         $('body, html').animate({
  438.           scrollTop: destination.offset().top - (headerHeight - parseInt($('section').css('padding-top'), 10))
  439.         }, 400);
  440.       }
  441.  
  442.       e.preventDefault();
  443.  
  444.     });
  445.   }
  446.  
  447.   $('.preview-team-portfolio>a').on( 'click', function() {
  448.  
  449.     if (!isTouchDevice) {
  450.       setTimeout(function() {
  451.         $(".team-portfolio-list").smoothDivScroll({
  452.           mousewheelScrolling: false,
  453.           hotSpotScrollingInterval: 15,
  454.           hotSpotScrollingStep: 6,
  455.           autoScrollingMode: "onStart",
  456.           touchScrolling: true,
  457.         });
  458.       },350)
  459.     }
  460.   })
  461.  
  462.   if (isTouchDevice) {
  463.     $( ".team-portfolio-list .item" ).wrapAll( "<div class='about-us-item-wrapper'></div>" );
  464.     $(".about-us-item-wrapper").css({
  465.       "overflow-y": 'auto',
  466.       "-webkit-overflow-scrolling": "touch"
  467.     })
  468.   }
  469.  
  470.   //remove scroll of section for modal
  471.   $('.modal').each(function() {
  472.     $(this).on('show.bs.modal', function () {
  473.       /*$('header, main, footer').animate({
  474.         opacity: 0
  475.       }, 150)*/
  476.     setTimeout(function(){
  477.         $('header, main, footer').css('opacity', '0')
  478.       }, 300)
  479.  
  480.     setTimeout(function(){
  481.           $('body').css('overflow', 'hidden')
  482.         }, 200)
  483.  
  484.       if ($('main').hasClass('fullpage')) {
  485.  
  486.         $.fn.fullpage.setAllowScrolling(false);
  487.         $.fn.fullpage.setKeyboardScrolling(false);
  488.  
  489.       };
  490.     });
  491.   })
  492.  
  493.   $('.modal').each(function() {
  494.     $(this).on('hide.bs.modal', function () {
  495.  
  496.         $('body').css({
  497.           overflow: 'visible',
  498.         })
  499.  
  500.       /* back to start of smoothdivscroll after close modal */
  501.       setTimeout(function(){
  502.         $('.scrollWrapper').scrollLeft(0)
  503.       }, 150)
  504.  
  505.       setTimeout(function(){
  506.         $('header, main, footer').css('opacity', '1')
  507.       }, 300)
  508.  
  509.       if ($('main').hasClass('fullpage')) {
  510.  
  511.         setTimeout(function(){
  512.           $('body').css('height', '100%')
  513.         }, 550)
  514.  
  515.         if (!isTouchDevice) {
  516.  
  517.           $.fn.fullpage.setAllowScrolling(true);
  518.           $.fn.fullpage.setKeyboardScrolling(true);
  519.  
  520.         } else {
  521.  
  522.           $.fn.fullpage.setAllowScrolling(false);
  523.           $.fn.fullpage.setKeyboardScrolling(false);
  524.  
  525.         }
  526.       };
  527.     });
  528.   })
  529.  
  530.   $('.team-portfolio-list .item').find('img').slice(-maxPortfolioItems()).each(function(){
  531.     var imgSrc = $(this)[0].src;
  532.     imgSrc = imgSrc.replace('@2x','');
  533.     $(".preview-team-portfolio a").append('<img src="'+imgSrc+'">')
  534.   });
  535.  
  536.   $('.bt-nav').on( 'click', function() {
  537.     if ($('.nav').hasClass('nav-close')) {
  538.       $('.nav').removeClass('nav-close');
  539.       $('.nav').addClass('nav-open');
  540.       $('.brand').removeClass('fadeInLeft');
  541.       $('.brand').addClass('fadeOutLeft');
  542.       $('.section-menu').removeClass('fadeOutRight');
  543.       $('.section-menu').addClass('fadeInRight');
  544.     } else {
  545.       $('.nav').removeClass('nav-open');
  546.       $('.nav').addClass('nav-close');
  547.       $('.brand').removeClass('fadeOutLeft');
  548.       $('.brand').addClass('fadeInLeft');
  549.       $('.section-menu').removeClass('fadeInRight');
  550.       $('.section-menu').addClass('fadeOutRight');
  551.     }
  552.   })
  553.  
  554.   if($('#map-canvas').length) {
  555.     var map;
  556.     var image = 'lib/img/maker.svg';
  557.     var myLatlng = new google.maps.LatLng(-12.0551767,-77.0344515);
  558.     var marker = new google.maps.Marker({
  559.       position: myLatlng,
  560.       icon: image
  561.     });
  562.  
  563.     google.maps.event.addDomListener(window, 'load', initialize);
  564.     google.maps.event.addDomListener(window, "resize", function(){
  565.       resizingMap();
  566.     });
  567.   }
  568.  
  569.   function initialize() {
  570.     var mapOptions = {
  571.       zoom: 16,
  572.       center: myLatlng,
  573.       draggable: false,
  574.       scrollwheel: false,
  575.       disableDefaultUI: true,
  576.       mapTypeId:google.maps.MapTypeId.ROADMAP
  577.     }
  578.  
  579.     map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
  580.     marker.setMap(map);
  581.     google.maps.event.addListener(marker, 'click', function() {
  582.     });
  583.   }
  584.  
  585.   $('#map-address').on('show.bs.modal', function () {
  586.    //Must wait until the render of the modal appear, thats why we use the resizeMap and NOT resizingMap!! ;-)
  587.      resizeMap();
  588.   });
  589.  
  590.   function resizeMap() {
  591.     if(typeof map =="undefined") return;
  592.     setTimeout( function(){
  593.       resizingMap();} , 400);
  594.   }
  595.  
  596.   function resizingMap() {
  597.     if(typeof map =="undefined") return;
  598.     var center = map.getCenter();
  599.     google.maps.event.trigger(map, "resize");
  600.     map.setCenter(myLatlng);
  601.   }
  602.  
  603.   /****** SERVICES *******/
  604.   var cssSmall = {
  605.     width: 67,
  606.   };
  607.   var cssMedium = {
  608.     width: 130,
  609.   };
  610.   var cssLarge = {
  611.     width: 360,
  612.   };
  613.   var aniConf = {
  614.     queue: false,
  615.     duration: 500,
  616.   };
  617.  
  618.   if ($('body').width()>=768) {
  619.      $('.feature-slide')
  620.        .children().css(cssSmall)
  621.        .eq(3).css(cssLarge);
  622.   } else {
  623.      $('.feature-slide')
  624.       .children().css(cssSmall)
  625.       .eq(3).css(cssMedium);
  626.   }
  627.  
  628.   if ($('.feature-slide').length) {
  629.     $('.feature-slide').carouFredSel({
  630.       width: '100%',
  631.       height:'auto',
  632.       top: 0,
  633.       items: 7,
  634.       auto: false,
  635.       padding: 10,
  636.       swipe: {
  637.         onTouch : true,
  638.         onMouse : true
  639.       },
  640.  
  641.       onCreate: function( data ) {
  642.         $(this).find('.item').eq(3).addClass('active');
  643.       },
  644.  
  645.       scroll: {
  646.         items: 1,
  647.         duration: aniConf.duration,
  648.  
  649.         onBefore: function( data ) {
  650.           data.items.old.removeClass('active');
  651.           $('.feature-item-description').animate({
  652.             opacity: 0
  653.           }, 300)
  654.  
  655.           //  0 [ 1 ] 2  3  4  5  6  7
  656.           data.items.visible.eq(0).animate(cssSmall, aniConf);
  657.           data.items.visible.eq(1).animate(cssSmall, aniConf);
  658.           data.items.visible.eq(2).animate(cssSmall, aniConf);
  659.           if ($('body').width()>=768) {
  660.             data.items.visible.eq(3).animate(cssLarge, aniConf);
  661.           } else {
  662.             data.items.visible.eq(3).animate(cssMedium, aniConf);
  663.           }
  664.           data.items.visible.eq(4).animate(cssSmall, aniConf);
  665.           data.items.visible.eq(5).animate(cssSmall, aniConf);
  666.           data.items.visible.eq(6).animate(cssSmall, aniConf);
  667.           data.items.visible.eq(7).animate(cssSmall, aniConf);
  668.         },
  669.  
  670.         onAfter: function( data ) {
  671.           data.items.visible.eq(3).addClass('active')
  672.           $('.feature-item-description').delay(150).animate({
  673.             opacity: 1
  674.           }, 300)
  675.  
  676.           setTimeout(changeText, 1, $('.wrapper-feature-slide'), $(this).find('.active'))
  677.         }
  678.       }
  679.     });
  680.   };
  681.  
  682.   /*setTimeout(function(){
  683.     $('.feature-slide').trigger('slideTo', [0, 5]);
  684.   }, 200)*/
  685.  
  686.   function triggerMove(containerElement, elem) {
  687.     containerElement.trigger( 'slideTo', [elem, 5] );
  688.   }
  689.  
  690.   function changeText(container, elem) {
  691.     container.find('.feature-item-description').html(elem.find('figcaption').html())
  692.   }
  693.  
  694.   var serviceItemText = $('.wrapper-feature-slide .item.active').find('figcaption').html();
  695.   $('.wrapper-feature-slide').find('.feature-item-description').html(serviceItemText)
  696.  
  697.   $('.feature-slide').children().on( 'click', function() {
  698.     setTimeout(triggerMove, 300, $('.feature-slide'), $(this))
  699.   });
  700.   $('.feature-slide').children().on( 'touchstart', function() {
  701.     setTimeout(triggerMove, 300, $('.feature-slide'), $(this))
  702.   });
  703.  
  704.   if ($('body.underconstruction').length) {
  705.     var headerHeight = $('header').height() + parseInt($('header').css('margin-bottom'), 10) + parseInt($('header').css('margin-top'), 10);
  706.     var footerHeight = $('footer').height() + parseInt($('footer').css('padding-bottom'), 10) + parseInt($('footer').css('padding-top'), 10);
  707.     var secUnderHeig = $(window).height() - headerHeight;
  708.  
  709.  
  710.       setTimeout(function() {
  711.         $('section').mCustomScrollbar({
  712.           setHeight: secUnderHeig,
  713.           axis      :"y",
  714.           scrollInertia : 150
  715.         })
  716.         .find('.mCSB_inside>.mCSB_container').css({
  717.           marginRight: '0px'
  718.         });
  719.         if (isTouchDevice) {
  720.           $('section')
  721.           .mCustomScrollbar('destroy')
  722.           .css({
  723.             "overflow-y": 'auto',
  724.             "-webkit-overflow-scrolling": "touch"
  725.           })
  726.         };
  727.       }, 300);
  728.  
  729.  
  730.     $('.section-content').append('<div class="border-top"></div>');
  731.     $('.section-content').append('<div class="border-bottom"></div>');
  732.  
  733.     borderWr();
  734.  
  735.     $('section').find('.section-content-wrapper')
  736.       .css({
  737.         paddingTop: '85px',
  738.         paddingBottom: '85px',
  739.         overflow: 'hidden',
  740.         display: 'table',
  741.         height: $(window).height()-headerHeight-footerHeight,
  742.       });
  743.  
  744.     $('section').find('[data-animation]').each(function(){
  745.  
  746.       var $this     = $(this),
  747.       animation = 'fadeIn',
  748.       delay     = 1;
  749.  
  750.       if ($this.data('animation')){
  751.         animation = $this.data('animation');
  752.       }
  753.  
  754.       if ($this.data('animationDelay')){
  755.         delay = $this.data('animationDelay');
  756.       }
  757.  
  758.       if (!$this.closest('section').hasClass('active')){
  759.         $this.css('animation-delay', delay + 'ms').addClass('animated').addClass(animation);
  760.       }
  761.     });
  762.   };
  763.  
  764.   $('.form-control').on('focus', function(){
  765.     if(navigator.userAgent.match(/(Android)/) && $('.fullpage').length && $('body').width()>=768) {
  766.       $('body').css({
  767.         position: 'relative',
  768.       });
  769.  
  770.       $('body, html').css('overflow', 'hidden');
  771.       $('body, html').css('height', '100%');
  772.  
  773.     }
  774.   })
  775.   .blur(function(){
  776.     if(navigator.userAgent.match(/(Android)/) && $('.fullpage').length && $('body').width()>=768) {
  777.     //$('body, html').removeAttr('style');
  778.       setTimeout(function(){
  779.         $('body, html').css('overflow', '');
  780.         $('body, html').css('position', '');
  781.         $('body, html').css('height', '');
  782.       }, 1000)
  783.     }
  784.   });
  785.  
  786.   $(window).resize(function() {
  787.  
  788.     navMenu();
  789.  
  790.     if ($('body.underconstruction').length) {
  791.       var headerHeight = $('header').height() + parseInt($('header').css('margin-bottom'), 10) + parseInt($('header').css('margin-top'), 10);
  792.       var footerHeight = $('footer').height() + parseInt($('footer').css('padding-bottom'), 10) + parseInt($('footer').css('padding-top'), 10);
  793.       var secUnderHeig = $(window).height() - headerHeight;
  794.  
  795.       $('section').css('height', secUnderHeig)
  796.  
  797.       $('section').find('.section-content-wrapper')
  798.       .css({
  799.         height: $(window).height()-headerHeight-footerHeight,
  800.       });
  801.     }
  802.  
  803.      /*$('.modal').each(function() {
  804.         setTimeout(function(){
  805.           $('body').css('overflow', 'hidden')
  806.           $('footer').css('opacity', '0')
  807.         }, 200)
  808.       })*/
  809.  
  810.     /*$('.modal').each(function() {
  811.       $(this).modal('hide');
  812.     })*/
  813.  
  814.  
  815.     $(".preview-team-portfolio a").html('');
  816.  
  817.     $('.team-portfolio-list .item').find('img').slice(-maxPortfolioItems()).each(function(){
  818.       var imgSrc = $(this)[0].src;
  819.       imgSrc = imgSrc.replace('@2x','');
  820.       $(".preview-team-portfolio a").append('<img src="'+imgSrc+'">')
  821.     })
  822.  
  823.  
  824.  
  825.     if ($('body').width()>=768) {
  826.       setTimeout(function(){
  827.           $('.feature-slide').trigger('slideTo', [$(this).find('.active'), 6]);
  828.         }, 300)
  829.       $('.feature-slide')
  830.         .children().css(cssSmall)
  831.         .eq(3).css(cssLarge);
  832.  
  833.     } else {
  834.       setTimeout(function(){
  835.           $('.feature-slide').trigger('slideTo', [$(this).find('.active'), 6]);
  836.         }, 300)
  837.       $('.feature-slide')
  838.         .children().css(cssSmall)
  839.         .eq(3).css(cssMedium);
  840.       }
  841.     });
  842. });
  843. //Slider Background
  844. function backgroundSlider() {
  845.   var slider = $('.slider-bg');
  846.  
  847.   if (slider.length) {
  848.     var autoplayTimeout = 4500,
  849.         animateIn       = 'fadeIn',
  850.         animateOut      = 'fadeOut';
  851.  
  852.     if (slider.data('animateIn')) {
  853.       animateIn = slider.data('animateIn');
  854.     }
  855.  
  856.     if (slider.data('animateOut')) {
  857.       animateOut = slider.data('animateOut');
  858.     }
  859.  
  860.     if (slider.data('timeout')) {
  861.       autoplayTimeout = slider.data('timeout');
  862.     }
  863.  
  864.     slider.owlCarousel({
  865.       animateIn       : animateIn,
  866.       animateOut      : animateOut,
  867.       items           : 1,
  868.       loop            : true,
  869.       autoplay        : true,
  870.       autoplayTimeout : autoplayTimeout
  871.     });
  872.   }
  873. }
  874. //Contact Form
  875. function contactForm () {
  876.   $('.contact-form').submit(function(e){
  877.     var form = $(this);
  878.  
  879.     e.preventDefault();
  880.  
  881.     form.find('input').each(function(){
  882.       if ($(this).val() == '') {
  883.         $(this).addClass('empty-value')
  884.       };
  885.       $(this).on('keypress', function(){
  886.         $(this).removeClass('empty-value')
  887.       });
  888.     })
  889.  
  890.     form.find('textarea').each(function(){
  891.       if ($(this).val() == '') {
  892.         $(this).addClass('empty-value')
  893.       };
  894.       $(this).on('keypress', function(){
  895.         $(this).removeClass('empty-value')
  896.       });
  897.     })
  898.  
  899.     $.ajax({
  900.       type: 'POST',
  901.       url : 'lib/php/contact.php',
  902.       data: form.serialize(),
  903.       success: function(data){
  904.                  
  905.         if ($(data).is('.send-true')){
  906.           setTimeout(function(){
  907.             form.trigger('reset');
  908.             form.find('.form-message').fadeOut().delay(500).queue(function(){
  909.               form.find('.form-message').html('').dequeue();
  910.             });
  911.           }, 2000);
  912.         } else if( $(data).is('.wrong-email') ){
  913.           form.addClass('wrong-email');
  914.         }
  915.       }
  916.     });
  917.   });
  918.   $('form.contact-form input.email').on('keypress', function(){
  919.     $('form.contact-form').removeClass('wrong-email')
  920.   });
  921. }
  922. //Notify Me
  923. function notifyMe() {
  924.  
  925.   $('.notify').submit(function(e){
  926.     var form           = $(this),
  927.         message        = form,
  928.         messageSuccess = 'Your email is sended',
  929.         messageInvalid = 'Please enter a valid email address',
  930.         messageSigned  = 'This email is already signed',
  931.         messageErrore  = 'Error request';
  932.  
  933.     e.preventDefault();
  934.  
  935.     form.find('input').on('keypress', function(){
  936.       $('form.notify').removeClass('wrong')
  937.     });
  938.  
  939.     form.find('button').on('click', function(e){
  940.       if (form.hasClass('wrong')) {
  941.           form.removeClass('wrong');
  942.           form.trigger('reset');
  943.  
  944.           e.preventDefault();
  945.         };
  946.       });
  947.  
  948.     $.ajax({
  949.       url     : 'lib/php/notify-me.php',
  950.       type    : 'POST',
  951.       data    : form.serialize(),
  952.       success : function(data){
  953.  
  954.         message.removeClass('wrong').removeClass('right');
  955.  
  956.         switch(data) {
  957.           case 0:
  958.             message.addClass('right');
  959.             message.find('input').val('OK!');
  960.  
  961.             break;
  962.           case 1:
  963.             message.addClass('wrong');
  964.  
  965.             break;
  966.           case 2:
  967.             message.addClass('wrong');
  968.  
  969.             setTimeout(function(){
  970.               form.trigger('reset');
  971.               message.removeClass('wrong').removeClass('right');
  972.             }, 2000);
  973.  
  974.             break;
  975.           default:
  976.  
  977.           message.addClass('wrong');
  978.           setTimeout(function(){
  979.             form.trigger('reset');
  980.             message.removeClass('wrong').removeClass('right');
  981.           }, 2000);
  982.         }
  983.       }
  984.     });
  985.   });
  986. }
  987. //Count Down
  988. function countDown() {
  989.   if (($('.countdown').length) && ($.fn.countdown)) {
  990.     var countdown = $('.countdown');
  991.  
  992.     countdown.each(function (){
  993.       var $this   = $(this),
  994.           austDay = new Date(2016, 1-1, 1);
  995.  
  996.       if ($this.data('date')){
  997.         var date = $this.data('date').split(' ');
  998.  
  999.         austDay = new Date(parseFloat(date[0]), parseFloat(date[1]) - 1, parseFloat(date[2]));
  1000.       }
  1001.  
  1002.       $this.countdown({
  1003.         until       : austDay,
  1004.         format      : 'DHMS',
  1005.         significant : 1,
  1006.         description : ' left',
  1007.         padZeroes: true
  1008.       });
  1009.     });
  1010.   }
  1011. }
  1012. function navMenu() {
  1013.   $('.brand').removeClass('fadeOutLeft');
  1014.   $('.brand').addClass('fadeInLeft');
  1015.   if ($(window).width()>=768) {
  1016.     $('.nav').removeClass('nav-close');
  1017.     $('.nav').addClass('nav-open');
  1018.     $('.section-menu').removeClass('fadeOutRight');
  1019.     $('.section-menu').addClass('fadeInRight');
  1020.   }
  1021.    else if ($(window).width()<768) {
  1022.     $('.nav').removeClass('nav-open');
  1023.     $('.nav').addClass('nav-close');
  1024.     $('.section-menu').removeClass('fadeInRight');
  1025.     $('.section-menu').addClass('fadeOutRight');
  1026.   }
  1027. }
  1028. function blurBg() {
  1029.   if ($('.blur-bg').length) {
  1030.     $('.blur-bg').blurjs({
  1031.       source: '.bg-image',
  1032.       radius: 10,
  1033.     });
  1034.   };
  1035. }
  1036. function customSelect() {
  1037.   $('select').each(function() {
  1038.     $(this).styler();
  1039.   })
  1040. }
  1041. function preventFigureLinkClick() {
  1042.  
  1043.   $(".preview-team-portfolio a, .team-portfolio-list .item").on( 'click', function(e){
  1044.     if(!$(this).hasClass('selected')){
  1045.       e.stopPropagation();
  1046.       e.preventDefault();
  1047.     }
  1048.     else {
  1049.       $(this).removeClass('selected')
  1050.     }
  1051.     $('.preview-team-portfolio a, .team-portfolio-list .item').removeClass('selected');
  1052.     $(this).addClass('selected')
  1053.   })
  1054. }
  1055. function borderWr() {
  1056.   var borderTop = '<svg class="top-left-border" width="25" height="25" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg">\
  1057.                     <g>\
  1058.                       <title>Layer 1</title>\
  1059.                         <rect stroke-dasharray="null" stroke-width="0" stroke="#000000" id="svg_11" height="5" width="5" y="0" x="0"/>\
  1060.                         <rect stroke-dasharray="null" stroke-width="0" stroke="#000000" id="svg_12" height="5" width="5" y="20" x="0"/>\
  1061.                         <rect stroke-dasharray="null" stroke-width="0" stroke="#000000" id="svg_13" height="5" width="5" y="0" x="20"/>\
  1062.                     </g>\
  1063.                  </svg>';
  1064.       borderTop += '<svg class="top-right-border" width="25" height="25" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg">\
  1065.                      <g>\
  1066.                        <title>Layer 1</title>\
  1067.                          <rect stroke-dasharray="null" stroke-width="0" stroke="#000000" id="svg_11" height="5" width="5" y="0" x="0"/>\
  1068.                          <rect stroke-dasharray="null" stroke-width="0" stroke="#000000" id="svg_12" height="5" width="5" y="20" x="0"/>\
  1069.                          <rect stroke-dasharray="null" stroke-width="0" stroke="#000000" id="svg_13" height="5" width="5" y="0" x="20"/>\
  1070.                      </g>\
  1071.                    </svg>';
  1072.   var borderBottom = '<svg class="bottom-left-border" width="25" height="25" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg">\
  1073.                        <g>\
  1074.                          <title>Layer 1</title>\
  1075.                            <rect stroke-dasharray="null" stroke-width="0" stroke="#000000" id="svg_11" height="5" width="5" y="0" x="0"/>\
  1076.                            <rect stroke-dasharray="null" stroke-width="0" stroke="#000000" id="svg_12" height="5" width="5" y="20" x="0"/>\
  1077.                            <rect stroke-dasharray="null" stroke-width="0" stroke="#000000" id="svg_13" height="5" width="5" y="0" x="20"/>\
  1078.                        </g>\
  1079.                      </svg>';
  1080.       borderBottom += '<svg class="bottom-right-border" width="25" height="25" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg">\
  1081.                        <g>\
  1082.                          <title>Layer 1</title>\
  1083.                            <rect stroke-dasharray="null" stroke-width="0" stroke="#000000" id="svg_11" height="5" width="5" y="0" x="0"/>\
  1084.                            <rect stroke-dasharray="null" stroke-width="0" stroke="#000000" id="svg_12" height="5" width="5" y="20" x="0"/>\
  1085.                            <rect stroke-dasharray="null" stroke-width="0" stroke="#000000" id="svg_13" height="5" width="5" y="0" x="20"/>\
  1086.                        </g>\
  1087.                      </svg>';
  1088.   $('.border-top').append(borderTop);
  1089.   $('.border-bottom').append(borderBottom);
  1090. }
  1091. function maxPortfolioItems() {
  1092.   if ($('body').width()>1170) {
  1093.     return 5;
  1094.   } else if ($('body').width()>992) {
  1095.     return 4;
  1096.   } else if ($('body').width()>485) {
  1097.     return 3;
  1098.   } else {
  1099.     return 3;
  1100.   }
  1101. };
  1102. //Animate Start
  1103. function animateStart(){
  1104.   $('section.active').find('[data-animation]').each(function(){
  1105.  
  1106.     var $this     = $(this),
  1107.     animation = 'fadeIn',
  1108.     delay     = 1;
  1109.  
  1110.     if ($this.data('animation')){
  1111.       animation = $this.data('animation');
  1112.     }
  1113.  
  1114.     if ($this.data('animationDelay')){
  1115.       delay = $this.data('animationDelay');
  1116.     }
  1117.  
  1118.     if ($this.closest('section').hasClass('active')){
  1119.       $this.css('animation-delay', delay + 'ms').addClass('animated').addClass(animation);
  1120.     }
  1121.   });
  1122. }
  1123. //Animate Finish
  1124. function animateFinish(){
  1125.   var activeSection = $('section.active'),
  1126.       duration      = 1;
  1127.  
  1128.   $('[data-out-animation]').each(function(){
  1129.     var $this        = $(this),
  1130.         animation    = 'fadeIn',
  1131.         outAnimation = 'fadeOut',
  1132.         delay        = 1,
  1133.         outDelay     = 1;
  1134.  
  1135.     if ($this.data('animation')){
  1136.       animation = $this.data('animation');
  1137.     }
  1138.  
  1139.     if ($this.data('outAnimation')){
  1140.       outAnimation = $this.data('outAnimation');
  1141.     }
  1142.  
  1143.     if ($this.data('animationDelay')){
  1144.       delay = $this.data('animationDelay');
  1145.     }
  1146.  
  1147.     if ($this.data('outAnimationDelay')){
  1148.       outDelay = $this.data('outAnimationDelay');
  1149.     }
  1150.  
  1151.     $this.css('animation-delay', delay + 'ms');
  1152.  
  1153.  
  1154.  
  1155.     if (!$this.closest('section').hasClass('active')){
  1156.  
  1157.       if (outDelay >= duration) {
  1158.         duration = outDelay;
  1159.       }
  1160.  
  1161.       $this.removeClass(animation).addClass(outAnimation);
  1162.  
  1163.       if ($this.data('outAnimationDelay')){
  1164.         $this.css('animation-delay', outDelay + 'ms');
  1165.       } else {
  1166.         $this.css('animation-delay', '1ms');
  1167.       }
  1168.     } else {
  1169.       $this.removeClass(animation).removeClass(outAnimation).removeAttr('style', 'animation-delay');
  1170.     }
  1171.   });
  1172. }
  1173. function retina(){
  1174.  
  1175.    if( 'devicePixelRatio' in window && window.devicePixelRatio == 2 ){
  1176.  
  1177.     var imgToReplace = $('img.replace-2x').get();
  1178.  
  1179.     for (var i=0,l=imgToReplace.length; i<l; i++) {
  1180.      var src = imgToReplace[i].src;
  1181.      src = src.replace(/\.(png|jpg|gif)+$/i, '@2x.$1');
  1182.      imgToReplace[i].src = src;
  1183.      $(imgToReplace[i]).load(function(){
  1184.       $(this).addClass('loaded');
  1185.      });
  1186.     };
  1187.  
  1188.     var imgToReplaceM = $('a.replace-2x').get();
  1189.  
  1190.     for (var i=0,l=imgToReplaceM.length; i<l; i++) {
  1191.      var src = imgToReplaceM[i].href;
  1192.      src = src.replace(/\.(png|jpg|gif)+$/i, '@2x.$1');
  1193.      imgToReplaceM[i].href = src;
  1194.      $(imgToReplaceM[i]).addClass('loaded');
  1195.     };
  1196.  
  1197.     $('img').each(function(){
  1198.      var item = $(this);
  1199.      var retinaSrc = $(this).attr('data-retina-src');
  1200.  
  1201.      if(retinaSrc !== undefined) {
  1202.       item.attr('src', retinaSrc );
  1203.      }
  1204.     });
  1205.  
  1206.    }
  1207.   }

Paste is for source code and general debugging text.

Login or Register to edit, delete and keep track of your pastes and more.

Raw Paste

Login or Register to edit or fork this paste. It's free.