Advertisement
jegtheme

main.js

Jul 29th, 2015
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 13.80 KB | None | 0 0
  1. (function ($, window) {
  2.     "use strict";
  3.  
  4.     function do_search_open(){
  5.         var searchicon = 'fa-search';
  6.         var timesicon = 'fa-times';
  7.  
  8.         $(".nav-search i").bind('click', function(e){
  9.             if(e.target == this) {
  10.                 var parent = $(this).parent();
  11.                 var currentstate = $(this).hasClass(searchicon);
  12.  
  13.                 if(currentstate) {
  14.                     $(this).removeClass(searchicon).addClass(timesicon);
  15.                     $(parent).find('.searchbox').stop().fadeIn("fast");
  16.                 } else {
  17.                     $(this).removeClass(timesicon).addClass(searchicon);
  18.                     $(parent).find('.searchbox').stop().fadeOut("fast");
  19.                 }
  20.             }
  21.         });
  22.     }
  23.  
  24.     function do_hover_menu () {
  25.         var selectormenu = $(".navigation li.menu-item-has-children");
  26.         $(selectormenu).unbind('click');
  27.  
  28.         $(selectormenu).unbind("mouseenter mouseleave")
  29.             .removeProp('hoverIntent_t')
  30.             .removeProp('hoverIntent_s');
  31.  
  32.  
  33.         $(selectormenu).hoverIntent({
  34.             over: function () {
  35.                 $(this).find('> .sub-menu').fadeIn("fast");
  36.             },
  37.             out: function () {
  38.                 $(this).find('> .sub-menu').fadeOut("fast");
  39.             },
  40.             timeout: 300
  41.         });
  42.     }
  43.  
  44.     function do_article_gallery() {
  45.         $("article .flexslider").flexslider({
  46.             animation: "slide",
  47.             slideshow: false
  48.         });
  49.     }
  50.  
  51.     /****************************
  52.      * type video
  53.      ***************************/
  54.  
  55.     $.youtube_parser = function (url) {
  56.         var regExp = /^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#\&\?]*).*/;
  57.        var match = url.match(regExp);
  58.  
  59.         if (match && match[7].length === 11) {
  60.             return match[7];
  61.         }
  62.         /*jshint latedef: true */
  63.         window.alert("Url Incorrect");
  64.     };
  65.  
  66.     $.vimeo_parser = function (url) {
  67.         var regExp = /http:\/\/(www\.)?vimeo.com\/(\d+)($|\/)/;
  68.         var match = url.match(regExp);
  69.  
  70.         if (match) {
  71.             return match[2];
  72.         }
  73.  
  74.         // check if using https
  75.         regExp = /https:\/\/(www\.)?vimeo.com\/(\d+)($|\/)/;
  76.         match = url.match(regExp);
  77.  
  78.         if (match) {
  79.             return match[2];
  80.         }
  81.  
  82.         /*jshint latedef: true */
  83.         window.alert("not a vimeo url");
  84.     };
  85.  
  86.     $.type_video_youtube = function (ele, autoplay, repeat) {
  87.         var youtube_id = $.youtube_parser($(ele).attr('data-src'));
  88.         var additionalstring = '';
  89.         var iframe = '';
  90.         if(repeat) {
  91.             additionalstring += ( autoplay === true ) ? "autoplay=1&" : "";
  92.             additionalstring += (repeat === true ) ? "loop=1&playlist=" + youtube_id : "";
  93.             iframe = '<iframe width="700" height="500" src="http://www.youtube.com/v/' + youtube_id + '?version=3&' + additionalstring + 'showinfo=0&theme=light&autohide=1&rel=0&wmode=opaque" frameborder="0" allowfullscreen></iframe>';
  94.         } else {
  95.             additionalstring += ( autoplay === true ) ? "autoplay=1&" : "";
  96.             iframe = '<iframe width="700" height="500" src="http://www.youtube.com/embed/' + youtube_id + '?' + additionalstring + 'showinfo=0&theme=light&autohide=1&rel=0&wmode=opaque" frameborder="0" allowfullscreen></iframe>';
  97.         }
  98.         $('.video-container', ele).append(iframe);
  99.     };
  100.  
  101.     $.type_video_vimeo = function (ele, autoplay, repeat) {
  102.         var vimeo_id = $.vimeo_parser($(ele).attr('data-src'));
  103.         var additionalstring = '';
  104.         additionalstring += ( autoplay === true ) ? "autoplay=1&" : "";
  105.         additionalstring += (repeat === true ) ? "loop=1&" : "";
  106.         var iframe = '<iframe src="http://player.vimeo.com/video/' + vimeo_id + '?' + additionalstring + 'title=0&byline=0&portrait=0" width="700" height="500" frameborder="0"></iframe>';
  107.         $('.video-container', ele).append(iframe);
  108.     };
  109.  
  110.     $.type_soundcloud = function (ele) {
  111.         var soundcloudurl = $(ele).attr('data-src');
  112.         var iframe = '<iframe src="https://w.soundcloud.com/player/?url=' + encodeURIComponent(soundcloudurl) + '" width="700" height="500" frameborder="0"></iframe>';
  113.         $('.music-container', ele).append(iframe);
  114.     };
  115.  
  116.     $.type_audio = function(ele){
  117.         var musicmp3 = '';
  118.         var musicogg = '';
  119.  
  120.         if ($(ele).data('mp3') !== '') {
  121.             musicmp3 = "<source type='audio/mpeg' src='" + $(ele).data('mp3') + "' />";
  122.         }
  123.  
  124.         if ($(ele).data('ogg') !== '') {
  125.             musicogg = "<source type='audio/ogg' src='" + $(ele).data('ogg') + "' />";
  126.         }
  127.  
  128.         var audio =
  129.             "<audio preload='none' style='width: 100%; visibility: hidden;' controls='controls'>" +
  130.             musicmp3 + musicogg +
  131.             "</audio>";
  132.  
  133.         $(ele).append(audio);
  134.  
  135.  
  136.         var settings = {};
  137.  
  138.         if ( typeof _wpmejsSettings !== 'undefined' ) {
  139.             settings = _wpmejsSettings;
  140.         }
  141.  
  142.         settings.success = function (mejs) {
  143.             var autoplay, loop;
  144.  
  145.             if ( 'flash' === mejs.pluginType ) {
  146.                 autoplay = mejs.attributes.autoplay && 'false' !== mejs.attributes.autoplay;
  147.                 loop = mejs.attributes.loop && 'false' !== mejs.attributes.loop;
  148.  
  149.                 autoplay && mejs.addEventListener( 'canplay', function () {
  150.                     mejs.play();
  151.                 }, false );
  152.  
  153.                 loop && mejs.addEventListener( 'ended', function () {
  154.                     mejs.play();
  155.                 }, false );
  156.             }
  157.         };
  158.  
  159.         $(ele).find('audio').mediaelementplayer( settings );
  160.     };
  161.  
  162.     $.type_video_html5 = function (ele, autoplay, options, container) {
  163.         var cover = $(ele).data('cover');
  164.  
  165.         options.pauseOtherPlayers = false;
  166.  
  167.         var videomp4 = '';
  168.         var videowebm = '';
  169.         var videoogg = '';
  170.  
  171.         var themesurl = '';
  172.  
  173.         if ($(ele).data('mp4') !== '') {
  174.             videomp4 = "<source type='video/mp4' src='" + $(ele).data('mp4') + "' />";
  175.         }
  176.  
  177.         if ($(ele).data('webm') !== '') {
  178.             videowebm = "<source type='video/webm' src='" + $(ele).data('webm') + "' />";
  179.         }
  180.  
  181.         if ($(ele).data('ogg') !== '') {
  182.             videoogg = "<source type='video/ogg' src='" + $(ele).data('ogg') + "' />";
  183.         }
  184.  
  185.         var preload = autoplay ? "preload='auto'" : "preload='none'";
  186.         var object = "<object width='100%' height='100%' type='application/x-shockwave-flash' data='" + themesurl + "/public/mediaelementjs/flashmediaelement.swf'>" +
  187.             "<param name='movie' value='" + themesurl + "/public/mediaelementjs/flashmediaelement.swf' />" +
  188.             "<param name='flashvars' value='controls=true&file=" + $(ele).data('mp4') + "' />" +
  189.             "<img src='" + cover + "' alt='No video playback capabilities' title='No video playback capabilities' />" +
  190.             "</object>";
  191.         var iframe = "<video id='player' style='width:100%;height:100%;' width='100%' height='100%' poster='" + cover + "' controls='controls' " + preload + ">" +
  192.             videomp4 + videowebm + videoogg + object +
  193.             "</video>";
  194.  
  195.         $(container, ele).append(iframe);
  196.         if (autoplay) {
  197.             options.success = function (mediaElement) {
  198.                 if (mediaElement.pluginType === 'flash') {
  199.                     mediaElement.addEventListener('canplay', function () {
  200.                         mediaElement.play();
  201.                     }, false);
  202.                 } else {
  203.                     mediaElement.play();
  204.                 }
  205.             };
  206.         }
  207.  
  208.         $(ele).find('video').mediaelementplayer(options);
  209.     };
  210.  
  211.     function do_media_render(){
  212.         // youtube
  213.         if ($("[data-type='youtube']").length) {
  214.             $("[data-type='youtube']").each(function () {
  215.                 var autoplay = $(this).data('autoplay');
  216.                 var repeat = $(this).data('repeat');
  217.                 $.type_video_youtube($(this), autoplay, repeat);
  218.             });
  219.         }
  220.  
  221.         // vimeo
  222.         if ($("[data-type='vimeo']").length) {
  223.             $("[data-type='vimeo']").each(function () {
  224.                 var autoplay = $(this).data('autoplay');
  225.                 var repeat = $(this).data('repeat');
  226.                 $.type_video_vimeo($(this), autoplay, repeat);
  227.             });
  228.         }
  229.  
  230.         // sound cloud
  231.         if ($("[data-type='soundcloud']").length) {
  232.             $("[data-type='soundcloud']").each(function () {
  233.                 $.type_soundcloud($(this));
  234.             });
  235.         }
  236.  
  237.         // audio
  238.         if ($("[data-type='audio']").length) {
  239.             $("[data-type='audio']").each(function () {
  240.                 $.type_audio($(this));
  241.             });
  242.         }
  243.  
  244.         // html 5 video
  245.         if($("video").length) {
  246.             $('video').mediaelementplayer();
  247.         }
  248.     }
  249.  
  250.     function do_facebook_widget(){
  251.         if($(".blog-fb-likebox").length){
  252.  
  253.             window.fbAsyncInit = function() {
  254.                 FB.init({
  255.                     xfbml      : true,
  256.                     version    : 'v2.0'
  257.                 });
  258.             };
  259.  
  260.             (function(d, s, id){
  261.                 var js, fjs = d.getElementsByTagName(s)[0];
  262.                 if (d.getElementById(id)) {return;}
  263.                 js = d.createElement(s); js.id = id;
  264.                 js.src = "//connect.facebook.net/en_US/sdk.js";
  265.                 fjs.parentNode.insertBefore(js, fjs);
  266.             }(document, 'script', 'facebook-jssdk'));
  267.         }
  268.     }
  269.  
  270.     function do_scroll_top() {
  271.         $(".gototop").bind('click', function(){
  272.             $('html, body').animate({
  273.                 scrollTop: 0
  274.             }, 1000);
  275.         });
  276.     }
  277.  
  278.     function do_mobile_menu(){
  279.         $(".mobile-navigation").bind('click', function(){
  280.             var $navigator = $(this);
  281.             var $mobilemenu = $(".mobile-menu");
  282.  
  283.             if($navigator.hasClass('collapse')) {
  284.                 $navigator.removeClass('collapse');
  285.                 $mobilemenu.slideUp('fast');
  286.             } else {
  287.                 $navigator.addClass('collapse');
  288.                 $mobilemenu.slideDown('fast');
  289.             }
  290.         });
  291.  
  292.         $(".mobile-menu li.menu-item-has-children > a").bind('click', function(e){
  293.             e.preventDefault();
  294.  
  295.  
  296.             if( e.target === this ){
  297.                 var $navigator = $(this).parent();
  298.                 var $childmenu = $navigator.find('> .sub-menu');
  299.  
  300.                 if($navigator.hasClass('collapse')) {
  301.                     $navigator.removeClass('collapse');
  302.                     $childmenu.slideUp('fast');
  303.                 } else {
  304.                     $navigator.addClass('collapse');
  305.                     $childmenu.slideDown('fast');
  306.                 }
  307.             }
  308.         });
  309.     }
  310.  
  311.     function do_related_effect(){
  312.  
  313.         var $related = $(".related");
  314.         var $relatedflag = $(".related-flag");
  315.         var effect = 'auto';
  316.  
  317.         if($related.length) {
  318.             $related.hover(function(){
  319.                 effect = 'normal';
  320.                 $related.addClass('open');
  321.             }, function(){
  322.                 $related.removeClass('open');
  323.             });
  324.  
  325.             $relatedflag.waypoint(function (direction) {
  326.                 if(effect == 'auto') {
  327.                     if(direction == 'up'){
  328.                         $related.removeClass('open');
  329.                     } else {
  330.                         $related.addClass('open');
  331.                     }
  332.                 }
  333.  
  334.             }, {
  335.                 offset: '100%',
  336.                 context: window
  337.             });
  338.         }
  339.     }
  340.  
  341.     function do_sidebar_follow() {
  342.         $(".sidebar-container").jFollowSidebar({
  343.             listen_height : ["#wrapper"],
  344.             container : ".post-container",
  345.             stop: 1024
  346.         });
  347.     }
  348.  
  349.     function do_share_click() {
  350.  
  351.         $(".sharing > div > a").each(function(){
  352.             $(this).bind('click', function(e){
  353.                 e.preventDefault();
  354.                 var url = '';
  355.                 if($(this).data('href')) {
  356.                     url = $(this).data('href');
  357.                 } else {
  358.                     url = $(this).attr('href');
  359.                 }
  360.                 var social = $(this).data('shareto');
  361.                 window.open(url, joption.shareto + social , "height=300,width=600");
  362.             });
  363.         });
  364.     }
  365.  
  366.     function do_sticky_menu() {
  367.         if(joption.sticky) {
  368.             var topposition = 0;
  369.             var helperheight = 0;
  370.             var scrolltop = 0;
  371.             var calculate_top = function(){
  372.                 topposition = $("#heading .nav-helper").offset().top;
  373.                 helperheight = $("#heading .nav-container ").height();
  374.             };
  375.  
  376.             var sticky_menu = function() {
  377.                 scrolltop = $(window).scrollTop();
  378.                 if(scrolltop > topposition) {
  379.                     $("#heading").addClass('sticky');
  380.                     $("#heading .nav-helper").css('height', helperheight);
  381.                 } else {
  382.                     $("#heading").removeClass('sticky');
  383.                     $("#heading .nav-helper").css('height', 0);
  384.                 }
  385.             };
  386.  
  387.             calculate_top();
  388.             $(window).bind('load resize', calculate_top);
  389.             $(window).bind('scroll', sticky_menu);
  390.         }
  391.     }
  392.  
  393.     function do_ready() {
  394.         do_search_open();
  395.         do_hover_menu();
  396.         do_article_gallery();
  397.         do_media_render();
  398.         do_facebook_widget();
  399.         do_scroll_top();
  400.         do_mobile_menu();
  401.         do_related_effect();
  402.         // do_sidebar_follow();
  403.         do_share_click();
  404.         do_sticky_menu();
  405.     }
  406.  
  407.     $(document).ready(do_ready);
  408. })(jQuery, window);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement