/** ********************************************** ** @Author Dorin Grigoras @Website www.stepofweb.com @Last Update Friday, August 21, 2015 NOTE! Do not change anything here if you want to be able to update in the future! Please use your custom script (eg. custom.js). TABLE CONTENTS ------------------------------- INLINE SCRIPTS ------------------------------- COUNT TO https://github.com/mhuggins/jquery-countTo BROWSER DETECT Appear https://github.com/bas2k/jquery.appear/ Parallax http://www.ianlunn.co.uk/plugins/jquery-parallax/ jQuery Easing v1.3 http://gsgd.co.uk/sandbox/jquery/easing/ WOW - v1.0.3 http://mynameismatthieu.com/WOW/ Modernizr 2.7.1 http://modernizr.com/download/#-csstransforms3d-csstransitions-video-touch-shiv-cssclasses-addtest-prefixed-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-load *************************************************** **/ window.width = jQuery(window).width(); /* Init */ jQuery(window).ready(function () { jQuery.browserDetect(); // Load Bootstrap JS loadScript(plugin_path + 'bootstrap/js/bootstrap.min.js', function() { Init(false); }); /* --- */ if(jQuery("html").hasClass("chrome") && jQuery("body").hasClass("smoothscroll")) { loadScript(plugin_path + 'smoothscroll.js', function() { jQuery.smoothScroll(); }); } /* --- */ }); /** Init Ajax Reinit: Init(true); **************************************************************** **/ function Init(is_ajax) { // First Load Only if(is_ajax != true) { _afterResize(); _slider_full(); _topNav(); _sideNav(); _stickyFooter(); _infiniteScroll(); } // Reinit on Ajax _owl_carousel(); _flexslider(); _popover(); _lightbox(); _mixitup(); _animate(); _onepageNav(); _scrollTo(false, 0); _parallax(); _video(); _youtubeBG(); _toggle(); _placeholder(); _wrotate(); _lazyload(); _misc(); _countDown(); _masonryGallery(); _toastr(false,false,false,false); _charts(); _select2(); _form(); _pickers(); _editors(); _pajinate(); _zoom(); _autosuggest(); _stepper(); _slimScroll(); _modalAutoLoad(); _bgimage(); _widget_flickr(); _widget_twitter(); _widget_facebook(); _widget_dribbble(); _widget_media(); /** Bootstrap Tooltip **/ jQuery("a[data-toggle=tooltip], button[data-toggle=tooltip], span[data-toggle=tooltip]").tooltip(); } /** Preloader **************************************************************** **/ if(jQuery('#preloader').length > 0) { jQuery(window).load(function() { jQuery('#preloader').fadeOut(1000, function() { jQuery('#preloader').remove(); }); // setTimeout(function() {}, 1000); }); } /** After Resize **************************************************************** **/ function _afterResize() { /* IMPORTAT! We need .load() to avoid conflicts */ jQuery(window).load(function() { "use strict"; // On Resize jQuery(window).resize(function() { if(window.afterResizeApp) { clearTimeout(window.afterResizeApp); } window.afterResizeApp = setTimeout(function() { /** After Resize Code ................. **/ _slider_full(); window.width = jQuery(window).width(); // Resize Flex Slider if exists! if(jQuery('.flexslider').length > 0) { jQuery('.flexslider').resize(); } }, 300); }); }); } /** Load Script USAGE var pageInit = function() {} loadScript(plugin_path + "script.js", function); Load multiple scripts and call a final function loadScript(plugin_path + "script1.js", function(){ loadScript(plugin_path + "script2.js", function(){ loadScript(plugin_path + "script3.js", function(){ loadScript(plugin_path + "script4.js", function); }); }); }); **************************************************************** **/ var _arr = {}; function loadScript(scriptName, callback) { if (!_arr[scriptName]) { _arr[scriptName] = true; var body = document.getElementsByTagName('body')[0]; var script = document.createElement('script'); script.type = 'text/javascript'; script.src = scriptName; // then bind the event to the callback function // there are several events for cross browser compatibility // script.onreadystatechange = callback; script.onload = callback; // fire the loading body.appendChild(script); } else if (callback) { callback(); } }; /** 00. Slider Full Height **************************************************************** **/ function _slider_full() { _headerHeight = 0; if(jQuery("#header").hasClass('transparent') || jQuery("#header").hasClass('translucent')) { _headerHeight = 0; } else { _headerHeight = jQuery("#header").outerHeight(); if(jQuery("#topBar").length > 0) { _headerHeight = _headerHeight + jQuery("#topBar").outerHeight(); } } _screenHeight = jQuery(window).height() - _headerHeight; jQuery("#slider.fullheight").height(_screenHeight); } /** 01. Top Nav **************************************************************** **/ function _topNav() { window.scrollTop = 0; var _header_el = jQuery("#header"); jQuery(window).scroll(function() { _toTop(); }); /* Scroll To Top */ function _toTop() { _scrollTop = jQuery(document).scrollTop(); if(_scrollTop > 100) { if(jQuery("#toTop").is(":hidden")) { jQuery("#toTop").show(); } } else { if(jQuery("#toTop").is(":visible")) { jQuery("#toTop").hide(); } } } // Mobile Submenu var addActiveClass = false; jQuery("#topMain a.dropdown-toggle").bind("click", function(e) { if(jQuery(this).attr('href') == "#") { e.preventDefault(); } addActiveClass = jQuery(this).parent().hasClass("resp-active"); jQuery("#topMain").find(".resp-active").removeClass("resp-active"); if(!addActiveClass) { jQuery(this).parents("li").addClass("resp-active"); } return; }); // Srearch jQuery('li.search i.fa').click(function () { if(jQuery('#header .search-box').is(":visible")) { jQuery('#header .search-box').fadeOut(300); } else { jQuery('.search-box').fadeIn(300); jQuery('#header .search-box form input').focus(); // hide quick cart if visible if (jQuery('#header li.quick-cart div.quick-cart-box').is(":visible")) { jQuery('#header li.quick-cart div.quick-cart-box').fadeOut(300); } } }); // close search box on body click if(jQuery('#header li.search i.fa').size() != 0) { jQuery('#header .search-box, #header li.search i.fa').on('click', function(e){ e.stopPropagation(); }); jQuery('body').on('click', function() { if(jQuery('#header li.search .search-box').is(":visible")) { jQuery('#header .search-box').fadeOut(300); } }); } jQuery(document).bind("click", function() { if(jQuery('#header li.search .search-box').is(":visible")) { jQuery('#header .search-box').fadeOut(300); } }); // Close Fullscreen Search jQuery("#closeSearch").bind("click", function(e) { e.preventDefault(); jQuery('#header .search-box').fadeOut(300); }); // Page Menu [mobile] jQuery("button#page-menu-mobile").bind("click", function() { jQuery(this).next('ul').slideToggle(150); }); // Quick Cart jQuery('li.quick-cart>a').click(function (e) { e.preventDefault(); var _quick_cart_box = jQuery('li.quick-cart div.quick-cart-box'); if(_quick_cart_box.is(":visible")) { _quick_cart_box.fadeOut(300); } else { _quick_cart_box.fadeIn(300); // close search if visible if(jQuery('li.search .search-box').is(":visible")) { jQuery('.search-box').fadeOut(300); } } }); // close quick cart on body click if(jQuery('li.quick-cart>a').size() != 0) { jQuery('li.quick-cart').on('click', function(e){ e.stopPropagation(); }); jQuery('body').on('click', function() { if (jQuery('li.quick-cart div.quick-cart-box').is(":visible")) { jQuery('li.quick-cart div.quick-cart-box').fadeOut(300); } }); } // Page Menu [scrollTo] jQuery("#page-menu ul.menu-scrollTo>li").bind("click", function(e) { // calculate padding-top for scroll offset var _href = jQuery('a', this).attr('href'); if(!jQuery('a', this).hasClass('external')) { e.preventDefault(); jQuery("#page-menu ul.menu-scrollTo>li").removeClass('active'); jQuery(this).addClass('active'); if(jQuery(_href).length > 0) { _padding_top = 0; if(jQuery("#header").hasClass('sticky')) { _padding_top = jQuery(_href).css('padding-top'); _padding_top = _padding_top.replace('px', ''); } jQuery('html,body').animate({scrollTop: jQuery(_href).offset().top - _padding_top}, 50, "linear"); } } }); // BOTTOM NAV if(_header_el.hasClass('bottom')) { // Add dropup class _header_el.addClass('dropup'); window.homeHeight = jQuery(window).outerHeight() - 55; // sticky header if(_header_el.hasClass('sticky')) { window.isOnTop = true; // if scroll is > 60%, remove class dropup jQuery(window).scroll(function() { if(jQuery(document).scrollTop() > window.homeHeight / 2) { _header_el.removeClass('dropup'); } else { _header_el.addClass('dropup'); } }); // Add fixed|not fixed & dropup|no dropup jQuery(window).scroll(function() { if(jQuery(document).scrollTop() > window.homeHeight) { if(window.isOnTop === true) { jQuery('#header').addClass('fixed'); _header_el.removeClass('dropup'); window.isOnTop = false; } } else { if(window.isOnTop === false) { jQuery('#header').removeClass('fixed'); _header_el.addClass('dropup'); window.isOnTop = true; } } }); // get window height on resize jQuery(window).resize(function() { window.homeHeight = jQuery(window).outerHeight(); }); } } else // STICKY if(_header_el.hasClass('sticky')) { jQuery(window).scroll(function() { //if(window.width > 768) { var _scrollTop = jQuery(document).scrollTop(); _topBar_H = jQuery("#topBar").outerHeight() || 0; if(_scrollTop > _topBar_H) { _header_el.addClass('fixed'); _header_H = _header_el.outerHeight() || 0; if(!_header_el.hasClass('transparent') && !_header_el.hasClass('translucent')) { jQuery('body').css({"padding-top":_header_H+"px"}); } } else { if(!_header_el.hasClass('transparent') && !_header_el.hasClass('translucent')) { jQuery('body').css({"padding-top":"0px"}); } _header_el.removeClass('fixed'); } //} }); } else if(_header_el.hasClass('static')) { _header_H = _header_el.outerHeight() + "px"; jQuery('body').css({"padding-top":_header_H}); } // Slide Top jQuery("#slidetop a.slidetop-toggle").bind("click", function() { jQuery("#slidetop .container").slideToggle(150, function() { if(jQuery("#slidetop .container").is(":hidden")) { jQuery("#slidetop").removeClass('active'); } else { jQuery("#slidetop").addClass('active'); } }); }); // 'esc' key jQuery(document).keyup(function(e) { if(e.keyCode == 27) { if(jQuery("#slidetop").hasClass("active")) { jQuery("#slidetop .container").slideToggle(150, function() { jQuery("#slidetop").removeClass('active'); }); } } }); // Slide Panel jQuery("a#sidepanel_btn").bind("click", function(e) { e.preventDefault(); _pos = "right"; if(jQuery("#sidepanel").hasClass('sidepanel-inverse')) { _pos = "left"; } if(jQuery("#sidepanel").is(":hidden")) { jQuery("body").append(''); if(_pos == "left") { jQuery("#sidepanel").stop().show().animate({"left":"0px"}, 150); } else { jQuery("#sidepanel").stop().show().animate({"right":"0px"}, 150); } } else { jQuery("#sidepanel_overlay").remove(); if(_pos == "left") { jQuery("#sidepanel").stop().animate({"left":"-300px"}, 300); } else { jQuery("#sidepanel").stop().animate({"right":"-300px"}, 300); } setTimeout(function() { jQuery("#sidepanel").hide(); }, 500); } _sidepanel_overlay(); }); // button close jQuery("#sidepanel_close").bind("click", function(e) { e.preventDefault(); jQuery("a#sidepanel_btn").trigger('click'); }); // overlay click function _sidepanel_overlay() { jQuery("#sidepanel_overlay").unbind(); jQuery("#sidepanel_overlay").bind("click", function() { jQuery("a#sidepanel_btn").trigger('click'); }); } // 'esc' key jQuery(document).keyup(function(e) { if(e.keyCode == 27) { if(jQuery("#sidepanel").is(":visible")) { jQuery("a#sidepanel_btn").trigger('click'); } } }); /** OVERLAY MENU *************************** **/ if(jQuery("#menu_overlay_open").length > 0) { var is_ie9 = jQuery('html').hasClass('ie9') ? true : false; if(is_ie9 == true) { jQuery("#topMain").hide(); } // open jQuery("#menu_overlay_open").bind("click", function(e) { e.preventDefault(); jQuery('body').addClass('show-menu'); if(is_ie9 == true) { jQuery("#topMain").show(); } }); // close jQuery("#menu_overlay_close").bind("click", function(e) { e.preventDefault(); if(jQuery('body').hasClass('show-menu')) { jQuery('body').removeClass('show-menu'); } if(is_ie9 == true) { jQuery("#topMain").hide(); } }); // 'esc' key jQuery(document).keyup(function(e) { if(e.keyCode == 27) { if(jQuery('body').hasClass('show-menu')) { jQuery('body').removeClass('show-menu'); } if(is_ie9 == true) { jQuery("#topMain").hide(); } } }); } /** VERTICAL MENU SHOW|HIDE *************************** **/ // RTL supported! if(jQuery("#sidebar_vertical_btn").length > 0) { if(jQuery("body").hasClass('menu-vertical-hide')) { // Determine the position (left or right?) _paddingStatusL = jQuery("#mainMenu.sidebar-vertical").css('left'); _paddingStatusR = jQuery("#mainMenu.sidebar-vertical").css('right'); if(parseInt(_paddingStatusL) < 0) { var _pos = "left"; } else if(parseInt(_paddingStatusR) < 0) { var _pos = "right"; } else { var _pos = "left"; } // Show|Hide Vertical Menu jQuery("#sidebar_vertical_btn").bind("click", function(e) { _paddingStatus = jQuery("#mainMenu.sidebar-vertical").css(_pos); if(parseInt(_paddingStatus) < 0) { if(_pos == "right") { jQuery("#mainMenu.sidebar-vertical").stop().animate({"right":"0px"}, 200); } else { jQuery("#mainMenu.sidebar-vertical").stop().animate({"left":"0px"}, 200); } } else { if(_pos == "right") { jQuery("#mainMenu.sidebar-vertical").stop().animate({"right":"-263px"}, 200); } else { jQuery("#mainMenu.sidebar-vertical").stop().animate({"left":"-263px"}, 200); } } }); // Hide on scroll jQuery(window).scroll(function() { _paddingStatus = parseInt(jQuery("#mainMenu.sidebar-vertical").css(_pos)); if(_paddingStatus >= 0) { if(_pos == "right") { jQuery("#mainMenu.sidebar-vertical").stop().animate({"right":"-263px"}, 200); } else { jQuery("#mainMenu.sidebar-vertical").stop().animate({"left":"-263px"}, 200); } } }); } } // quick cart & search for mobile - top calculate // Quick Cart & top Search Fix (if #topBar exists). if(jQuery("#topBar").length > 0) { jQuery("#topNav ul").addClass('has-topBar'); } // Hide Cart & Search on Scroll jQuery(window).scroll(function() { if(window.width < 769) { // hide quick cart if visible if (jQuery('#header li.quick-cart div.quick-cart-box').is(":visible")) { jQuery('#header li.quick-cart div.quick-cart-box').fadeOut(0); } // hide search if visible if(jQuery('#header li.search .search-box').is(":visible")) { jQuery('#header .search-box').fadeOut(0); } } }); } /** 02. Side Nav **************************************************************** **/ function _sideNav() { /* Mobile Button */ jQuery("div.side-nav").each(function() { var _t = jQuery('ul', this); jQuery('button', this).bind("click", function() { _t.slideToggle(300); }); }); /* Submenus */ jQuery("div.side-nav>ul>li>a.dropdown-toggle").bind("click", function(e) { e.preventDefault(); jQuery(this).next('ul').slideToggle(200); jQuery(this).closest('li').toggleClass('active'); }); } /** 02. Animate EXAMPLE USAGE **************************************************************** **/ function _animate() { if(jQuery("body").hasClass('enable-animation')) { var wow = new WOW({ boxClass: 'wow', animateClass: 'animated', offset: 90, mobile: false, live: true }); wow.init(); } // Count To jQuery(".countTo").appear(function(){ var _t = jQuery(this), _from = _t.attr('data-from') || 0, _speed = _t.attr('data-speed') || 1300, _refreshInterval = _t.attr('data-refreshInterval') || 60; _t.countTo({ from: parseInt(_from), to: _t.html(), speed: parseInt(_speed), refreshInterval: parseInt(_refreshInterval), }); }); } /** Onepage Nav **************************************************************** **/ function _onepageNav() { var _container = jQuery("#topMain.nav-onepage"); if(_container.length > 0) { loadScript(plugin_path + 'jquery.nav.min.js', function() { jQuery(_container).onePageNav({ currentClass: 'active', changeHash: false, scrollSpeed: 750, scrollThreshold: 0.5, filter: ':not(.external)', easing: 'easeInOutExpo' }); }); } } /** 03. OWL Carousel **************************************************************** **/ function _owl_carousel() { var _container = jQuery("div.owl-carousel"); if(_container.length > 0) { loadScript(plugin_path + 'owl-carousel/owl.carousel.min.js', function() { _container.each(function() { var slider = jQuery(this); var options = slider.attr('data-plugin-options'); // Progress Bar var $opt = eval('(' + options + ')'); // convert text to json if($opt.progressBar == 'true') { var afterInit = progressBar; } else { var afterInit = false; } var defaults = { items: 5, itemsCustom: false, itemsDesktop: [1199,4], itemsDesktopSmall: [980,3], itemsTablet: [768,2], itemsTabletSmall: false, itemsMobile: [479,1], singleItem: true, itemsScaleUp: false, slideSpeed: 200, paginationSpeed: 800, rewindSpeed: 1000, autoPlay: false, stopOnHover: false, navigation: false, navigationText: [ '', '' ], rewindNav: true, scrollPerPage: false, pagination: true, paginationNumbers: false, responsive: true, responsiveRefreshRate: 200, responsiveBaseWidth: window, baseClass: "owl-carousel", theme: "owl-theme", lazyLoad: false, lazyFollow: true, lazyEffect: "fade", autoHeight: false, jsonPath: false, jsonSuccess: false, dragBeforeAnimFinish: true, mouseDrag: true, touchDrag: true, transitionStyle: false, addClassActive: false, beforeUpdate: false, afterUpdate: false, beforeInit: false, afterInit: afterInit, beforeMove: false, afterMove: (afterInit == false) ? false : moved, afterAction: false, startDragging: false, afterLazyLoad: false } var config = jQuery.extend({}, defaults, options, slider.data("plugin-options")); slider.owlCarousel(config).addClass("owl-carousel-init"); // Progress Bar var elem = jQuery(this); //Init progressBar where elem is $("#owl-demo") function progressBar(elem){ $elem = elem; //build progress bar elements buildProgressBar(); //start counting start(); } //create div#progressBar and div#bar then prepend to $("#owl-demo") function buildProgressBar(){ $progressBar = jQuery("
",{ id:"progressBar" }); $bar = jQuery("
",{ id:"bar" }); $progressBar.append($bar).prependTo($elem); } function start() { //reset timer percentTime = 0; isPause = false; //run interval every 0.01 second tick = setInterval(interval, 10); }; var time = 7; // time in seconds function interval() { if(isPause === false){ percentTime += 1 / time; $bar.css({ width: percentTime+"%" }); //if percentTime is equal or greater than 100 if(percentTime >= 100){ //slide to next item $elem.trigger('owl.next') } } } //pause while dragging function pauseOnDragging(){ isPause = true; } //moved callback function moved(){ //clear interval clearTimeout(tick); //start again start(); } }); }); } } /** 04. Flexslider **************************************************************** **/ function _flexslider() { var _container = jQuery(".flexslider"); if(_container.length > 0) { loadScript(plugin_path + 'slider.flexslider/jquery.flexslider-min.js', function() { if(jQuery().flexslider) { var _controlNav = _container.attr('data-controlNav'), _slideshowSpeed = _container.attr('data-slideshowSpeed') || 7000, _pauseOnHover = _container.attr('data-pauseOnHover') || false; if(_pauseOnHover == "true") { _pauseOnHover = true; } else{ _pauseOnHover = false; } if(_controlNav == 'thumbnails') { _controlNav = 'thumbnails'; } else if(_controlNav == 'true') { _controlNav = true; } else if(_controlNav == 'false') { _controlNav = false; } else { _controlNav = true; } if(_controlNav == 'thumbnails' || _controlNav == false) { _directionNav = false; } else { _directionNav = true; } jQuery(_container).flexslider({ animation : "slide", controlNav : _controlNav, slideshowSpeed : parseInt(_slideshowSpeed) || 7000, directionNav : _directionNav, pauseOnHover : _pauseOnHover, start: function(slider){ jQuery('.flex-prev').html(''); jQuery('.flex-next').html(''); } }); // Resize Flex Slider if exists! _container.resize(); } }); } } /** 04. Popover **************************************************************** **/ function _popover() { jQuery("a[data-toggle=popover]").bind("click", function(e) { jQuery('.popover-title .close').remove(); e.preventDefault(); }); var isVisible = false, clickedAway = false; jQuery("a[data-toggle=popover], button[data-toggle=popover]").popover({ html: true, trigger: 'manual' }).click(function(e) { jQuery(this).popover('show'); clickedAway = false; isVisible = true; e.preventDefault(); }); jQuery(document).click(function(e) { if(isVisible & clickedAway) { jQuery("a[data-toggle=popover], button[data-toggle=popover]").popover('hide'); isVisible = clickedAway = false; } else { clickedAway = true; } }); jQuery("a[data-toggle=popover], button[data-toggle=popover]").popover({ html: true, trigger: 'manual' }).click(function(e) { $(this).popover('show'); $('.popover-title').append(''); $('.close').click(function(e){ jQuery("a[data-toggle=popover], button[data-toggle=popover]").popover('hide'); }); e.preventDefault(); }); // jQuery("a[data-toggle=popover], button[data-toggle=popover]").popover(); } /** 05. LightBox **************************************************************** **/ function _lightbox() { var _el = jQuery(".lightbox"); if(_el.length > 0) { loadScript(plugin_path + 'magnific-popup/jquery.magnific-popup.min.js', function() { if(typeof(jQuery.magnificPopup) == "undefined") { return false; } jQuery.extend(true, jQuery.magnificPopup.defaults, { tClose: 'Close', tLoading: 'Loading...', gallery: { tPrev: 'Previous', tNext: 'Next', tCounter: '%curr% / %total%' }, image: { tError: 'Image not loaded!' }, ajax: { tError: 'Content not loaded!' } }); _el.each(function() { var _t = jQuery(this), options = _t.attr('data-plugin-options'), config = {}, defaults = { type: 'image', fixedContentPos: false, fixedBgPos: false, mainClass: 'mfp-no-margins mfp-with-zoom', closeOnContentClick: true, closeOnBgClick: true, image: { verticalFit: true }, zoom: { enabled: false, duration: 300 }, gallery: { enabled: false, navigateByImgClick: true, preload: [0,1], arrowMarkup: '', tPrev: 'Previous', tNext: 'Next', tCounter: '%curr% / %total%' }, }; if(_t.data("plugin-options")) { config = jQuery.extend({}, defaults, options, _t.data("plugin-options")); } jQuery(this).magnificPopup(config); }); }); } } /** 06. ScrollTo **************************************************************** **/ function _scrollTo(to, offset) { if(to == false) { jQuery("a.scrollTo").bind("click", function(e) { e.preventDefault(); var href = jQuery(this).attr('href'), _offset = jQuery(this).attr('data-offset') || 0; if(href != '#' && href != '#top') { jQuery('html,body').animate({scrollTop: jQuery(href).offset().top - parseInt(_offset)}, 800, 'easeInOutExpo'); } if(href == '#top') { jQuery('html,body').animate({scrollTop: 0}, 800, 'easeInOutExpo'); } }); jQuery("#toTop").bind("click", function(e) { e.preventDefault(); jQuery('html,body').animate({scrollTop: 0}, 800, 'easeInOutExpo'); }); } else { // USAGE: _scrollTo("#footer", 150); jQuery('html,body').animate({scrollTop: jQuery(to).offset().top - offset}, 800, 'easeInOutExpo'); } } /** 07. Parallax **************************************************************** **/ function _parallax() { if(jQuery().parallax) { // jQuery(".parallax-1").css("background-attachment", "fixed"); jQuery(".parallax-1").parallax("50%", "0.1"); // jQuery(".parallax-2").css("background-attachment", "fixed"); jQuery(".parallax-2").parallax("50%", "0.2"); // jQuery(".parallax-3").css("background-attachment", "fixed"); jQuery(".parallax-3").parallax("50%", "0.3"); // jQuery(".parallax-4").css("background-attachment", "fixed"); jQuery(".parallax-4").parallax("50%", "0.4"); } /** Slider Parallax Do not use overlay - will be very slow! **************************** **/ var _slider = jQuery('#slider'); if(_slider.length > 0) { if(_slider.hasClass('parallax-slider')) { var block_intro_top = _slider.offset().top; jQuery(window).scroll(function() { var _currentTop = jQuery(document).scrollTop(); if(_currentTop < 768) { var _sliderH = jQuery('#slider').height(); jQuery('#slider>div').css('top', (_currentTop*0.5)); jQuery('#slider>div').css('opacity', (1 - _currentTop/_sliderH*1)); } }); } } } /** 07. Video **************************************************************** **/ function _video() { if(jQuery("section.section-video").length > 0) { var _t = jQuery("section.section-video .section-container-video>video"); _w = jQuery(window).width(); _t.width(_w); } } /** 07. Youtube Backround **************************************************************** **/ function _youtubeBG() { var _container = jQuery('#YTPlayer'); if(_container.length > 0) { loadScript(plugin_path + 'jquery.mb.YTPlayer.min.js', function() { if(jQuery().mb_YTPlayer) { var disableMobile = false; if( /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent) ) { // disableMobile = true; } if(disableMobile === false) { jQuery(".player").mb_YTPlayer(); jQuery("#video-volume").bind("click", function(e) { e.preventDefault(); jQuery('#YTPlayer').toggleVolume(); }); // audio control jQuery("#video-volume").bind("click", function() { if(jQuery('i.fa', this).hasClass('fa-volume-down')) { jQuery('i.fa', this).removeClass('fa-volume-down'); jQuery('i.fa', this).removeClass('fa-volume-up'); jQuery('i.fa', this).addClass('fa-volume-up'); } else { jQuery('i.fa', this).removeClass('fa-volume-up'); jQuery('i.fa', this).removeClass('fa-volume-v'); jQuery('i.fa', this).addClass('fa-volume-down'); } }); } else { jQuery(".player , #video-volume").hide(); } } }); } } /** 08. Mixitup Filter **************************************************************** **/ function _mixitup() { var _container = jQuery('.mix-grid'); if(_container.length > 0) { loadScript(plugin_path + 'mixitup/jquery.mixitup.min.js', function() { if(jQuery().mixitup) { _container.mixitup(); jQuery("ul.mix-filter a").bind("click", function(e) { e.preventDefault(); }); } }); } } /** 09. Toggle **************************************************************** **/ function _toggle() { var $_t = this, previewParClosedHeight = 25; jQuery("div.toggle.active > p").addClass("preview-active"); jQuery("div.toggle.active > div.toggle-content").slideDown(400); jQuery("div.toggle > label").click(function(e) { var parentSection = jQuery(this).parent(), parentWrapper = jQuery(this).parents("div.toggle"), previewPar = false, isAccordion = parentWrapper.hasClass("toggle-accordion"); if(isAccordion && typeof(e.originalEvent) != "undefined") { parentWrapper.find("div.toggle.active > label").trigger("click"); } parentSection.toggleClass("active"); if(parentSection.find("> p").get(0)) { previewPar = parentSection.find("> p"); var previewParCurrentHeight = previewPar.css("height"); var previewParAnimateHeight = previewPar.css("height"); previewPar.css("height", "auto"); previewPar.css("height", previewParCurrentHeight); } var toggleContent = parentSection.find("> div.toggle-content"); if(parentSection.hasClass("active")) { jQuery(previewPar).animate({height: previewParAnimateHeight}, 350, function() {jQuery(this).addClass("preview-active");}); toggleContent.slideDown(350); } else { jQuery(previewPar).animate({height: previewParClosedHeight}, 350, function() {jQuery(this).removeClass("preview-active");}); toggleContent.slideUp(350); } }); } /** 11. Placeholder **************************************************************** **/ function _placeholder() { //check for IE if(navigator.appVersion.indexOf("MSIE")!=-1) { jQuery('[placeholder]').focus(function() { var input = jQuery(this); if (input.val() == input.attr('placeholder')) { input.val(''); input.removeClass('placeholder'); } }).blur(function() { var input = jQuery(this); if (input.val() == '' || input.val() == input.attr('placeholder')) { input.addClass('placeholder'); input.val(input.attr('placeholder')); } }).blur(); } } /** 12. Word Rotate **************************************************************** **/ function _wrotate() { jQuery(".word-rotator").each(function() { var _t = jQuery(this), _items = _t.find(".items"), items = _items.find("> span"), firstItem = items.eq(0), firstItemClone = firstItem.clone(), _iHeight = jQuery(this).height(), _cItem = 1, _cTop = 0, _delay = jQuery(this).attr('data-delay') || 2000; _items.append(firstItemClone); _t.height(_iHeight).addClass("active"); setInterval(function() { _cTop = (_cItem * _iHeight); _items.animate({top: - (_cTop) + "px"}, 300, "easeOutQuad", function(){ _cItem++; if(_cItem > items.length) { _items.css("top", 0); _cItem = 1; } }); }, _delay); }); var _container = jQuery('span.rotate'); if(_container.length > 0) { loadScript(plugin_path + 'text-rotator/jquery.simple-text-rotator.min.js', function() { _container.each(function() { var _t = jQuery(this), _animation = _t.attr('data-animation') || 'fade', // fade|flip|flipCube|flipUp|spin _speed = _t.attr('data-speed') || 2000; _t.textrotator({ animation: _animation, speed: parseInt(_speed) }); }); }); } } /** 08. Lazy Load **************************************************************** **/ function _lazyload() { var _container = jQuery('img.lazy'); if(_container.length > 0) { loadScript(plugin_path + 'lazyload/jquery.lazyload.min.js', function() { if(jQuery().lazyload) { _container.each(function () { var _t = jQuery(this), _effect = _t.attr('data-effect') || 'fadeIn'; _t.lazyload({ effect : _effect }); }); } }); } } /** 13. Misc **************************************************************** **/ function _misc() { /** Portfolio Bugfix *********************** **/ if(jQuery("#portfolio").length > 0) { jQuery("#portfolio .item-box .owl-carousel").each(function() { // Fix if has owl-carousel slider! jQuery(this).parent().parent().find('.item-box-desc').css({"padding-top":"29px"}); }); } /** Masonry *********************** **/ if(jQuery().masonry) { jQuery(".masonry").masonry(); } /** Isotope Portfolio *********************** **/ var portfolio_isotope_container = jQuery("#portfolio.portfolio-isotope"); if(portfolio_isotope_container.length > 0) { loadScript(plugin_path + 'isotope/isotope.pkgd.min.js', function() { // Isotope Portfolio if(jQuery().isotope) { var _container = jQuery('#portfolio'); // Calculate Item Width on Fullwidth portfolio if(_container.hasClass('portfolio-isotope-2')) { _cols = 2; } else if(_container.hasClass('portfolio-isotope-3')) { _cols = 3; } else if(_container.hasClass('portfolio-isotope-4')) { _cols = 4; } else if(_container.hasClass('portfolio-isotope-5')) { _cols = 5; } else if(_container.hasClass('portfolio-isotope-6')) { _cols = 6; } else { _cols = 4; } function _recalcW() { _dw = jQuery(document).width(); if(_container.hasClass('fullwidth')) { // Fullwidth // _w = jQuery(document).width(); // NOT USED - problems on aside header _w = _container.width(); _wItem = (_w/_cols); if(_dw < 760) { _wItem = (_w/2); } if(_dw < 480) { _wItem = jQuery("#portfolio").width(); } // Apply item width jQuery("#portfolio>.portfolio-item").css({"width":_wItem}); } else { // Non Fullwidth _mR = parseInt(jQuery("#portfolio>.portfolio-item").css('margin-right')); _w = jQuery("#portfolio").closest('.container').width(); _wItem = _w / _cols - _mR; if(_dw < 760) { _wItem = (_w/2 - _mR); } if(_dw < 480) { _wItem = _w; } // Apply item & container width jQuery("#portfolio.portfolio-isotope").css({"width":_w}); jQuery("#portfolio>.portfolio-item").css({"width":_wItem}); } // Resize Flex Slider if exists! if(jQuery('.flexslider').length > 0) { jQuery('.flexslider').resize(); } } _recalcW(); jQuery(window).load(function(){ var _t = setTimeout(function(){ _container.isotope({ masonry: {}, filter: '*', animationOptions: { duration: 750, easing: 'linear', queue: false } }); jQuery('#portfolio_filter>li>a').bind("click", function(e){ e.preventDefault(); jQuery('#portfolio_filter>li.active').removeClass('active'); jQuery(this).parent('li').addClass('active'); var selector = jQuery(this).attr('data-filter'); _container.isotope({ filter: selector, animationOptions: { duration: 750, easing: 'linear', queue: false } }); }); }, 50 ); setTimeout(function() { _container.isotope('layout'); }, 300); }); // On Resize jQuery(window).resize(function() { if(window.afterResizeApp2) { clearTimeout(window.afterResizeApp2); } window.afterResizeApp2 = setTimeout(function() { _recalcW(); setTimeout(function() { _container.isotope('layout'); }, 300); }, 300); }); } }); } /** end isotope **/ /** Isotope Blog *********************** **/ var blog_isotope_container = jQuery("#blog.blog-isotope"); if(blog_isotope_container.length > 0) { loadScript(plugin_path + 'isotope/isotope.pkgd.min.js', function() { // Isotope blog if(jQuery().isotope) { var _container = jQuery('#blog'); // Calculate Item Width on Fullwidth Blog if(_container.hasClass('blog-isotope-2')) { _cols = 2; } else if(_container.hasClass('blog-isotope-3')) { _cols = 3; } else if(_container.hasClass('blog-isotope-4')) { _cols = 4; } else { _cols = 4; } function _recalcW() { _dw = jQuery(document).width(); if(_container.hasClass('fullwidth')) { // Fullwidth _w = jQuery(document).width(); _wItem = (_w/_cols); if(_dw < 760) { _wItem = (_w/2); } if(_dw < 480) { _wItem = jQuery("#blog").width(); } // Apply item width jQuery("#blog>.blog-post-item").css({"width":_wItem}); } else { // Non Fullwidth _mR = parseInt(jQuery("#blog>.blog-post-item").css('margin-right')); _w = jQuery("#blog").closest('.container').width(); _wItem = _w / _cols - _mR; if(_dw < 760) { _wItem = (_w/2 - _mR); } if(_dw < 480) { _wItem = _w; } // Apply item & container width jQuery("#blog.blog-isotope").css({"width":_w}); jQuery("#blog>.blog-post-item").css({"width":_wItem}); } // Resize Flex Slider if exists! if(jQuery('.flexslider').length > 0) { jQuery('.flexslider').resize(); } } _recalcW(); jQuery(window).load(function(){ var _t = setTimeout(function(){ _container.isotope({ masonry: {}, filter: '*', animationOptions: { duration: 750, easing: 'linear', queue: false } }); jQuery('#blog_filter>li>a').bind("click", function(e){ e.preventDefault(); jQuery('#blog_filter>li.active').removeClass('active'); jQuery(this).parent('li').addClass('active'); var selector = jQuery(this).attr('data-filter'); _container.isotope({ filter: selector, animationOptions: { duration: 750, easing: 'linear', queue: false } }); }); }, 50 ); setTimeout(function() { _container.isotope('layout'); }, 300); }); // On Resize jQuery(window).resize(function() { if(window.afterResizeApp2) { clearTimeout(window.afterResizeApp2); } window.afterResizeApp2 = setTimeout(function() { _recalcW(); setTimeout(function() { _container.isotope('layout'); }, 300); }, 300); }); } }); } /** end isotope **/ /** Flip Boxes *********************** **/ if(jQuery('.box-flip').length > 0) { jQuery('.box-flip').each(function() { _height1 = jQuery('.box1',this).outerHeight(); _height2 = jQuery('.box2',this).outerHeight(); if(_height1 >= _height2) { _height = _height1; } else { _height = _height2; } jQuery(this).css({"min-height":_height+"px"}); jQuery('.box1',this).css({"min-height":_height+"px"}); jQuery('.box2',this).css({"min-height":_height+"px"}); }); $('.box-flip').mouseenter(function() { jQuery(this).addClass('flip'); }).mouseleave(function(){ jQuery(this).removeClass('flip'); }); } /** Sticky Side (social icons) *********************** **/ if(jQuery("div.sticky-side").length > 0) { var _t = jQuery("div.sticky-side"); _h = _t.height() / 2; _t.css({"margin-top":"-"+_h+"px"}); } /** Increase / Decrease No. Example: shop-single-left.html *********************** **/ jQuery(".incr").bind("click", function(e) { e.preventDefault(); var _for = jQuery(this).attr('data-for'), _max = parseInt(jQuery(this).attr('data-max')), _curVal = parseInt(jQuery("#" + _for).val()); if(_curVal < _max) { jQuery("#" + _for).val(_curVal + 1); } }); jQuery(".decr").bind("click", function(e) { e.preventDefault(); var _for = jQuery(this).attr('data-for'), _min = parseInt(jQuery(this).attr('data-min')), _curVal = parseInt(jQuery("#" + _for).val()); if(_curVal > _min) { jQuery("#" + _for).val(_curVal - 1); } }); /** Default Button Toggle *********************** **/ jQuery("a.toggle-default").bind("click", function(e) { e.preventDefault(); var _href = jQuery(this).attr('href'); if(jQuery(_href).is(":hidden")) { jQuery(_href).slideToggle(200); jQuery('i.fa', this).removeClass('fa-plus-square').addClass('fa-minus-square'); } else { jQuery(_href).slideToggle(200); jQuery('i.fa', this).removeClass('fa-minus-square').addClass('fa-plus-square'); } }); /** Custom File Upload *********************** **/ var file_container = jQuery("input[type=file]"); if(file_container.length > 0) { loadScript(plugin_path + 'custom.fle_upload.js'); } /** Textarea Words Limit *********************** **/ jQuery("textarea.word-count").on('keyup', function() { var _t = jQuery(this), words = this.value.match(/\S+/g).length, _limit = _t.attr('data-maxlength') || 200; if (words > parseInt(_limit)) { // Split the string on first 200 words and rejoin on spaces var trimmed = _t.val().split(/\s+/, 200).join(" "); // Add a space at the end to keep new typing making new words _t.val(trimmed + " "); } else { var _data_info = _t.attr('data-info'); if(_data_info == '' || _data_info == undefined) { var _infoContainer = _t.next('div'); jQuery('span', _infoContainer).text(words + '/' + _limit); } else { jQuery('#' +_data_info).text(words + '/' + _limit); } } }); } /** Sticky Footer **************************************************************** **/ function _stickyFooter() { if(jQuery("#footer").hasClass('sticky')) { var footerHeight = 0, footerTop = 0, _footer = jQuery("#footer.sticky"); positionFooter(); function positionFooter() { footerHeight = _footer.height(); footerTop = (jQuery(window).scrollTop()+jQuery(window).height()-footerHeight)+"px"; if((jQuery(document.body).height()+footerHeight) > jQuery(window).height()) { _footer.css({ position: "absolute" }).stop().animate({ top: footerTop },0); } else { _footer.css({position: "static"}); } } jQuery(window).scroll(positionFooter).resize(positionFooter); } } /** Countdown **************************************************************** **/ function _countDown() { var _container = jQuery(".countdown"), _container2 = jQuery(".countdown-download"); if(_container.length > 0 || _container2.length > 0) { loadScript(plugin_path + 'countdown/jquery.countdown.pack.min.js', function() { /** On Page Load **/ _container.each(function() { var _t = jQuery(this), _date = _t.attr('data-from'), _labels = _t.attr('data-labels'); if(_labels) { _labels = _labels.split(","); } if(_date) { var _d = new Date(_date); jQuery(this).countdown({ until: new Date(_d), labels: _labels || ["Years","Months","Weeks","Days","Hours","Minutes","Seconds"] }); } }); /** Download **/ _container2.bind("click", function(e){ e.preventDefault(); var _t = jQuery(this), cd_container = _t.attr('data-for'), _countdown = jQuery("#"+cd_container+' span.download-wait>.countdown'), _seconds = parseInt(_t.attr('data-seconds')), _dataURL = _t.attr('href'); _t.fadeOut(250, function(){ jQuery("#"+cd_container).fadeIn(250, function() { var currentDate = new Date(); currentDate.setSeconds(currentDate.getSeconds() + _seconds); _countdown.countdown({ until: currentDate, format: 'S', expiryUrl: _dataURL, onExpiry: function(){ jQuery("#"+cd_container+' span.download-message').removeClass('hide'); jQuery("#"+cd_container+' span.download-wait').addClass('hide'); } }); }); }); return false; }); }); } } /** Masonry Gallery **************************************************************** **/ function _masonryGallery() { if(jQuery(".masonry-gallery").length > 0) { jQuery(".masonry-gallery").each(function() { var _container = jQuery(this), columns = 4; if(_container.hasClass('columns-2')) columns = 2; else if(_container.hasClass('columns-3')) columns = 3; else if(_container.hasClass('columns-4')) columns = 4; else if(_container.hasClass('columns-5')) columns = 5; else if(_container.hasClass('columns-6')) columns = 6; var _firstElemWidth = _container.find('a:eq(0)').outerWidth(), _bigImageNo = _container.attr('data-img-big'), _containerWidth = _container.width(); // Fix margins & Width var postWidth = (_containerWidth/columns); postWidth = Math.floor(postWidth); if((postWidth * columns) >= _containerWidth) { _container.css({ 'margin-right': '-1px' }); } if(columns < 6) { _container.children('a').css({"width":postWidth+"px"}); } // Set Big Image if(parseInt(_bigImageNo) > 0) { _bigImageNo = Number(_bigImageNo) - 1; _container.find('a:eq('+_bigImageNo+')').css({ width: _firstElemWidth*2 + 'px'}); loadScript(plugin_path + 'isotope/isotope.pkgd.min.js', function() { setTimeout( function() { _container.isotope({ masonry: { columnWidth: _firstElemWidth } }); _container.isotope('layout'); }, 1000); }); } }); } } /** Toastr TYPE: primary info error sucess warning POSITION top-right top-left top-center top-full-width bottom-right bottom-left bottom-center bottom-full-width USAGE: _toastr("My Message here","top-right","error",false); NOTE: _onclick = url to redirect (example: http://www.stepofweb.com) **************************************************************** **/ function _toastr(_message,_position,_notifyType,_onclick) { var _btn = jQuery(".toastr-notify"); if(_btn.length > 0 || _message != false) { loadScript(plugin_path + 'toastr/toastr.js', function() { // toastr.clear(); /** BUTTON CLICK ********************* **/ _btn.bind("click", function(e) { e.preventDefault(); var _message = jQuery(this).attr('data-message'), _notifyType = jQuery(this).attr('data-notifyType') || "default", _position = jQuery(this).attr('data-position') || "top-right", _progressBar = jQuery(this).attr('data-progressBar') == "true" ? true : false, _closeButton = jQuery(this).attr('data-closeButton') == "true" ? true : false, _debug = jQuery(this).attr('data-debug') == "true" ? true : false, _newestOnTop = jQuery(this).attr('data-newestOnTop') == "true" ? true : false, _preventDuplicates = jQuery(this).attr('data-preventDuplicates') == "true" ? true : false, _showDuration = jQuery(this).attr('data-showDuration') || "300", _hideDuration = jQuery(this).attr('data-hideDuration') || "1000", _timeOut = jQuery(this).attr('data-timeOut') || "5000", _extendedTimeOut = jQuery(this).attr('data-extendedTimeOut') || "1000", _showEasing = jQuery(this).attr('data-showEasing') || "swing", _hideEasing = jQuery(this).attr('data-hideEasing') || "linear", _showMethod = jQuery(this).attr('data-showMethod') || "fadeIn", _hideMethod = jQuery(this).attr('data-hideMethod') || "fadeOut"; toastr.options = { "closeButton": _closeButton, "debug": _debug, "newestOnTop": _newestOnTop, "progressBar": _progressBar, "positionClass": "toast-" + _position, "preventDuplicates": _preventDuplicates, "onclick": null, "showDuration": _showDuration, "hideDuration": _hideDuration, "timeOut": _timeOut, "extendedTimeOut": _extendedTimeOut, "showEasing": _showEasing, "hideEasing": _hideEasing, "showMethod": _showMethod, "hideMethod": _hideMethod } toastr[_notifyType](_message); }); /** JAVSCRIPT / ON LOAD ************************* **/ if(_message != false) { if(_onclick != false) { onclick = function() { window.location = _onclick; } } else { onclick = null } toastr.options = { "closeButton": true, "debug": false, "newestOnTop": false, "progressBar": true, "positionClass": "toast-" + _position, "preventDuplicates": false, "onclick": onclick, "showDuration": "300", "hideDuration": "1000", "timeOut": "5000", "extendedTimeOut": "1000", "showEasing": "swing", "hideEasing": "linear", "showMethod": "fadeIn", "hideMethod": "fadeOut" } setTimeout(function(){ toastr[_notifyType](_message); }, 1500); // delay 1.5s } }); } } /** Chart **************************************************************** **/ function _charts() { /** Easy Pie Chart ************************* **/ var _container = jQuery(".piechart"); if(_container.length > 0) { loadScript(plugin_path + 'chart.easypiechart/dist/jquery.easypiechart.min.js', function() { jQuery(".piechart").each(function() { var _t = jQuery(this), _size = _t.attr('data-size') || 150, _animate = _t.attr('data-animate') || "3000"; _t.easyPieChart({ size: _size, animate: _animate, scaleColor: false, trackColor: _t.attr('data-trackcolor') || 'rgba(0,0,0,0.04)', lineWidth: _t.attr('data-width') || '2', lineCap: 'square', barColor: _t.attr('data-color') || '#0093BF' }); $("span", this).attr('style', "line-height:"+$(this).height()+"px;"); $("i", this).attr('style', "line-height:"+$(this).height()+"px;"); }); }); }; }; /** Select2 **************************************************************** **/ function _select2() { var _container = jQuery('select.select2'); if(_container.length > 0) { loadScript(plugin_path + 'select2/js/select2.full.min.js', function() { if(jQuery().select2) { jQuery('select.select2').select2(); } }); } } /** Form [form plugin + validation plugin] **************************************************************** **/ function _form() { /** Form Validate LOAD PLUGIN ONLY! ************************ **/ if(jQuery('form.validate-plugin').length > 0) { loadScript(plugin_path + 'form.validate/jquery.form.min.js', function() { loadScript(plugin_path + 'form.validate/jquery.validation.min.js'); }); } /** Form Validate ************************ **/ if(jQuery('form.validate').length > 0) { loadScript(plugin_path + 'form.validate/jquery.form.min.js', function() { loadScript(plugin_path + 'form.validate/jquery.validation.min.js', function() { if(jQuery().validate) { jQuery('form.validate').each(function() { var _t = jQuery(this), _Smessage = _t.attr('data-success') || "Successfully! Thank you!", _Cmessage = _t.attr('data-captcha') || "Invalid Captcha!", _Tposition = _t.attr('data-toastr-position') || "top-right", _Ttype = _t.attr('data-toastr-type') || "success"; _Turl = _t.attr('data-toastr-url') || false; // Append 'is_ajax' hidden input field! _t.append(''); _t.validate({ submitHandler: function(form) { // Show spin icon jQuery(form).find('.input-group-addon').find('.fa-envelope').removeClass('fa-envelope').addClass('fa-refresh fa-spin'); jQuery(form).ajaxSubmit({ target: jQuery(form).find('.validate-result').length > 0 ? jQuery(form).find('.validate-result') : '', error: function(data) { _toastr("Sent Failed!",_Tposition,"error",false); }, success: function(data) { var data = data.trim(); // SMTP ERROR if(data == '_failed_') { _toastr("SMTP ERROR! Please, check your config file!",_Tposition,"error",false); } // CAPTCHA ERROR else if(data == '_captcha_') { _toastr("Invalid Captcha!",_Tposition,"error",false); // SUCCESS } else { // Remove spin icon jQuery(form).find('.input-group-addon').find('.fa-refresh').removeClass('fa-refresh fa-spin').addClass('fa-envelope'); // Clear the form jQuery(form).find('input.form-control').val(''); // Toastr Message _toastr(_Smessage,_Tposition,_Ttype,_Turl); } } }); } }); }); } }); }); } /** Masked Input ************************ **/ var _container = jQuery('input.masked'); if(_container.length > 0) { loadScript(plugin_path + 'form.masked/jquery.maskedinput.js', function() { _container.each(function() { var _t = jQuery(this); _format = _t.attr('data-format') || '(999) 999-999999', _placeholder = _t.attr('data-placeholder') || 'X'; jQuery.mask.definitions['f'] = "[A-Fa-f0-9]"; _t.mask(_format, {placeholder:_placeholder}); }); }); } } /** Pickers **************************************************************** **/ function _pickers() { /** Date Picker ******************* **/ var _container_1 = jQuery('.datepicker'); if(_container_1.length > 0) { loadScript(plugin_path + 'bootstrap.datepicker/js/bootstrap-datepicker.min.js', function() { if(jQuery().datepicker) { _container_1.each(function() { var _t = jQuery(this), _lang = _t.attr('data-lang') || 'en'; if(_lang != 'en' && _lang != '') { // load language file loadScript(plugin_path + 'bootstrap.datepicker/locales/bootstrap-datepicker.'+_lang+'.min.js'); } jQuery(this).datepicker({ format: _t.attr('data-format') || 'yyyy-mm-dd', language: _lang, rtl: _t.attr('data-RTL') == "true" ? true : false, changeMonth: _t.attr('data-changeMonth') == "false" ? false : true, todayBtn: _t.attr('data-todayBtn') == "false" ? false : "linked", calendarWeeks: _t.attr('data-calendarWeeks') == "false" ? false : true, autoclose: _t.attr('data-autoclose') == "false" ? false : true, todayHighlight: _t.attr('data-todayHighlight') == "false" ? false : true, onRender: function(date) { // return date.valueOf() < nowDate.valueOf() ? 'disabled' : ''; } }).on('changeDate', function(ev) { // AJAX POST - OPTIONAL }).data('datepicker'); }); } }); } /** Range Picker ******************* **/ var _container_2 = jQuery('.rangepicker'); if(_container_2.length > 0) { loadScript(plugin_path + 'bootstrap.daterangepicker/moment.min.js', function() { loadScript(plugin_path + 'bootstrap.daterangepicker/daterangepicker.js', function() { if(jQuery().datepicker) { _container_2.each(function() { var _t = jQuery(this), _format = _t.attr('data-format').toUpperCase() || 'YYYY-MM-DD'; _t.daterangepicker( { format: _format, startDate: _t.attr('data-from'), endDate: _t.attr('data-to'), ranges: { 'Today': [moment(), moment()], 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')], 'Last 7 Days': [moment().subtract(6, 'days'), moment()], 'Last 30 Days': [moment().subtract(29, 'days'), moment()], 'This Month': [moment().startOf('month'), moment().endOf('month')], 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')] } }, function(start, end, label) { // alert("A new date range was chosen: " + start.format('YYYY-MM-DD') + ' to ' + end.format('YYYY-MM-DD')); }); }); } }); }); } /** Time Picker ******************* **/ var _container_3 = jQuery('.timepicker'); if(_container_3.length > 0) { loadScript(plugin_path + 'timepicki/timepicki.min.js', function() { if(jQuery().timepicki) { _container_3.timepicki(); } }); } /** Color Picker ******************* **/ var _container_4 = jQuery('.colorpicker'); if(_container_4.length > 0) { loadScript(plugin_path + 'spectrum/spectrum.min.js', function() { if(jQuery().spectrum) { _container_4.each(function() { var _t = jQuery(this), _preferredFormat = _t.attr('data-format') || "hex", // hex, hex3, hsl, rgb, name _palletteOnly = _t.attr('data-palletteOnly') || "false", _fullPicker = _t.attr('data-fullpicker') || "false", _allowEmpty = _t.attr('data-allowEmpty') || false; _flat = _t.attr('data-flat') || false; if(_palletteOnly == "true" || _fullPicker == "true") { var _palette = [ ["#000","#444","#666","#999","#ccc","#eee","#f3f3f3","#fff"], ["#f00","#f90","#ff0","#0f0","#0ff","#00f","#90f","#f0f"], ["#f4cccc","#fce5cd","#fff2cc","#d9ead3","#d0e0e3","#cfe2f3","#d9d2e9","#ead1dc"], ["#ea9999","#f9cb9c","#ffe599","#b6d7a8","#a2c4c9","#9fc5e8","#b4a7d6","#d5a6bd"], ["#e06666","#f6b26b","#ffd966","#93c47d","#76a5af","#6fa8dc","#8e7cc3","#c27ba0"], ["#c00","#e69138","#f1c232","#6aa84f","#45818e","#3d85c6","#674ea7","#a64d79"], ["#900","#b45f06","#bf9000","#38761d","#134f5c","#0b5394","#351c75","#741b47"], ["#600","#783f04","#7f6000","#274e13","#0c343d","#073763","#20124d","#4c1130"] ]; } else { _palette = null; } if(_t.attr('data-defaultColor')) { _color = _t.attr('data-defaultColor'); } else { _color = "#ff0000"; } if(!_t.attr('data-defaultColor') && _allowEmpty == "true") { _color = null; } _t.spectrum({ showPaletteOnly: _palletteOnly == "true" ? true : false, togglePaletteOnly: _palletteOnly == "true" ? true : false, flat: _flat == "true" ? true : false, showInitial: _allowEmpty == "true" ? true : false, showInput: _allowEmpty == "true" ? true : false, allowEmpty: _allowEmpty == "true" ? true : false, chooseText: _t.attr('data-chooseText') || "Coose", cancelText: _t.attr('data-cancelText') || "Cancel", color: _color, showInput: true, showPalette: true, preferredFormat: _preferredFormat, showAlpha: _preferredFormat == "rgb" ? true : false, palette: _palette }); }); } }); } } /** Editors **************************************************************** **/ function _editors() { /** Summernote HTML Editor ***************************** **/ var _container_1 = jQuery('textarea.summernote'); if(_container_1.length > 0) { loadScript(plugin_path + 'editor.summernote/summernote.min.js', function() { if(jQuery().summernote) { _container_1.each(function() { var _lang = jQuery(this).attr('data-lang') || 'en-US'; if(_lang != 'en-US') { // Language! alert(_lang); loadScript(plugin_path + 'editor.summernote/lang/summernote-'+_lang+'.js'); } jQuery(this).summernote({ height: jQuery(this).attr('data-height') || 200, lang: jQuery(this).attr('data-lang') || 'en-US', // default: 'en-US' toolbar: [ /* [groupname, [button list]] */ ['style', ['style']], ['fontsize', ['fontsize']], ['style', ['bold', 'italic', 'underline','strikethrough', 'clear']], ['color', ['color']], ['para', ['ul', 'ol', 'paragraph']], ['table', ['table']], ['media', ['link', 'picture', 'video']], ['misc', ['codeview', 'fullscreen', 'help']] ] }); }); } }); } /** Markdown HTML Editor ***************************** **/ var _container_2 = jQuery('textarea.markdown'); if(_container_2.length > 0) { loadScript(plugin_path + 'editor.markdown/js/bootstrap-markdown.min.js', function() { if(jQuery().markdown) { _container_2.each(function() { var _t = jQuery(this); var _lang = _t.attr('data-lang') || 'en'; if(_lang != 'en') { // Language! loadScript(plugin_path + 'editor.markdown/locale/bootstrap-markdown.'+_lang+'.js'); } jQuery(this).markdown({ autofocus: _t.attr('data-autofocus') == "true" ? true : false, savable: _t.attr('data-savable') == "true" ? true : false, height: _t.attr('data-height') || 'inherit', language: _lang == 'en' ? null : _lang }); }); } }); } } /** Pajinate [jQuery Pagination] USAGE
item1
item2
item3
.....
**************************************************************** **/ function _pajinate() { var _container = jQuery('div.pajinate'); if(_container.length > 0) { loadScript(plugin_path + 'pajinate/jquery.pajinate.bootstrap.min.js', function() { if(jQuery().pajinate) { _container.each(function() { var _t = jQuery(this), _perPage = _t.attr('data-pajinante-items-per-page') || 8; _numLinks = _t.attr('data-pajinante-num-links') || 5; _t.pajinate({ items_per_page : parseInt(_perPage), num_page_links_to_display : parseInt(_numLinks), item_container_id : _t.attr('data-pajinate-container') || '.pajinate-container', nav_panel_id : '.pajinate-nav ul', show_first_last : false, wrap_around : true, abort_on_small_lists : true, start_page : 0, nav_label_prev : '«', nav_label_next : '»' }); }); } }); } } /** Infininte Scroll **************************************************************** **/ function _infiniteScroll() { var _container = jQuery(".infinite-scroll"); if(_container.length > 0) { loadScript(plugin_path + 'infinite-scroll/jquery.infinitescroll.min.js', function() { _navSelector = _container.attr('data-nextSelector') || "#inf-load-nex", _itemSelector = _container.attr('data-itemSelector') || ".item", _nextSelector = _navSelector + " a"; _container.infinitescroll({ loading: { finishedMsg : '', msgText : '', img : "data:image/gif;base64,R0lGODlhGAAYAPUAABQSFCwuLBwaHAwKDKyurGxqbNze3CwqLCQmJLS2tOzu7OTi5JyenBweHBQWFJyanPz+/HRydLSytFxeXPz6/ExOTKSmpFRSVHR2dAwODAQCBOzq7PTy9ISChPT29IyKjIyOjISGhOTm5GRiZJSWlJSSlFRWVMTCxNza3ExKTNTS1KyqrHx6fGRmZKSipMzOzMTGxDQyNDw+PAQGBDQ2NERCRFxaXMzKzGxubDw6PCQiJLy+vERGRLy6vHx+fNTW1CH/C05FVFNDQVBFMi4wAwEAAAAh+QQJBQAAACwAAAAAGAAYAEAGqECAcAhoRAiojQJFiAiI0Kh0qOsZOhqhDMK9ZadgAI0WBmhAXAhFVm5HbZR0aTYdsFpSkwqjo5sRLAtpIjxuUzZpECmGjI1QA4JcKH5lGVICDHFpGyoqGx4uDWENFh4iKjcbiR4MT1ItLJSPJWkUNo9uAyhpBpaOGjdpOY7ExcYaIQs9OsUpibfENZoQIF9gY1EpqlwiLAh+M4AqJmUCOBJJGz8EOKJRQQAh+QQJBQABACwAAAAAGAAYAAAGp8CAcBhoRBILDgdFKAiI0KHAB5rUZBUWDALxMJ5R4SCmiWpoJ67iEm4TZx0upOCuB1jyir2tuXE3DnthE3IlglENchwDh0QDG3ITjUQ7ciGTQxFybJgBGkcYGhoYPaGdARdyOKchcjunhH8znQAccmCYJZGnDpAQN2WdFXI+pwEFch2znRe+MDTBbzGMbQIPHlwwLBcyNSMgLIF2Ai0WKAocBhI4uERBACH5BAkFACwALAAAAAAYABgAAAaoQJZwyNIEJiAJCpWICIjQKFGD6Gw8D4d0C3UQIJsKd1wsQSgFMldjgUAu6q1jA27EpRg34x5FUCAeT3xDAx5uBQAMJyZ8GRxuFiRuFAF3B24QKguYE3cpmAubbil3I5gGKpgIdwF/EA9tgAN8JicMGQVuHLODQgKGEKu9QgxuGMNCDQpgAMgsF38rGs4Ffx/TyBUiECtayAIPHgohAdi9DRFKTCAj5VJBACH5BAkFAAAALAAAAAAYABgAAAa0QIBwSAQMaphHoVFsOoezlsEleFqJDsnmcu1qLJBW9zpQUSpjqwyycQgPBAIiLYRBGIDMAgJRaegREB4CE3wQFAN0NHwRYHwwdAANfBIqhlx0AXwGCnx+kQV8Cp0QBZEaL3wbBnwBkReGKgl8TGkadnwugRA0dBkUhhMNHhARdBqWEAsZAAwQkHQIEgQHQgIbFDKRTRUUL4nbRC0QFjPhRBcbEm7nQg0uBi3g7Q0RDxEyzFdBACH5BAkFAAgALAAAAAAYABgAAAaxQIRwSCwKHMWkssgLCZbQYmNnUgpMh6gQoIoUZQqIh6ZFHDjV7QLCLpURIcUTAWKzvWUBhYFwcOwnA28IOx4CBXY3AIMIJRAFEmwoSIwYEAQGbDWMQiwQBh4QKpxCjhyhbqQqEByZLKQ1bAaRr4wOKGwSiKlvADd2BQIeJ4MDJ3YcSA8UlFqWdiBCAgohbyR2C4tCJhwBZTQUEAo5RQUqzVAHJuhDJjsNpFIhKfFG7FFBACH5BAkFAAAALAAAAQAYABYAAAa3QIBQmEnlNMOkcgmoGSCQEJNIY048UIhhKqS1lClKFtLjClmmoWAzvunMgJmqIWRkDTYkHIBxARpiECUDe0MIHg0RUCV6hQAaGxESEAszjkkvEk8sl0kqKgoQCJ1CGiIKChuNlwcQCigvpGcQKBKxpAMLEBI4IpaXGiVQODoeb44DwhAUAgAuGIUaEyhZDEINKr9cCDdjG81CJpxmO2MUPEojVVy6UBQ2TDGEUyFQCzKyjzk880NBACH5BAkFAAEALAAAAAAYABgAAAazwIBwGABMOhcNcckUOkoKiJTVrAYqG6k2YWXiKFptpEs0gbWbXmFmHQwbWcjNJlCSYwIhQ9qxk4UaVAIeEB1/TCANBRAnfodCExEEEDSPSzUJKCeWSzQGHBicRBUcHimiQywKC5WoGjAoCTKoATQUBBETqDMnEAUNH6ghEBQOAT6OZBo+UgxCAjF/Mw0TN1IKeUJuVTMFPSJhEBePGOHEBZYJ4SI8nCxaHB/GnBoXISYATUEAIfkECQUAKgAsAAAAABgAGAAABqpAlXCoErQsr4WBlCE6nQ2XB0Ktup5Yk6LKhZywzgKlyplSKRfwsELdYA6DDCI1OaiFgg2EALirHxAfGn5gDR4rg4RPGhEbDopYAQkdkFgjBnaVTiEoiZpDCQmfRBooIKNDBwYjqEIdCQGtDgoFnpoaEh4NqBogEA+oDisQjn4xExUIAAMILCIQFBV+JmNUHh7VEAWEMF1VCmmELt4UDAKQGSUoCy8WI+dPQQAh+QQJBQAJACwAAAAAGAAYAAAGrMCEcJhoRCQoxUblmmSI0KGA4YFYr9bFIUqsbLBgK4ErLFAosEiuESi8sBKyifKqRTWXk+el4zYULgNkQhkaZBYShoOLOigAi5ARE5CQDzOUixGYi3abXANPnlE5olyapUQzD6hELaesDgYNrAkzEi5kMwOKnxYbs1EIKh4wF5dQNSoQF2QSWC8FATo0GDcUHi2DBGFgGymLBwvcEBQPDpQZNi4qGxsoEjgCXEEAIfkEBQUACAAsAAAAABgAGAAABqZAhHCIEBQIBg/HICk4iNCh4OGBWK9WTgkQHZoUlFMJwyKpsJCFrBvhhJ7QGgqrgA9tr0BX6HhhTUQNO3Z7ADBWFAdEIQJ7UAMRJTREAjyOl0MNmJucnZ6foKGio6SdmqQphDljA5wCIUQBVRAwXJcAO6dCJlg3tl0BPxdQAgpYKDVRAh8cOF05C2g/JSw+JTAeCsOFJRxoVx4PjZgORygcHCgETl1BADs=", speed : 'normal' }, nextSelector : _nextSelector, navSelector : _navSelector, itemSelector : _itemSelector, behavior : '', state: { isDone : false } }, function(newElements) { Init(true); if(jQuery().isotope) { _container.isotope('appended', jQuery(newElements)); setTimeout( function(){ _container.isotope('layout'); }, 2000); } }); }); } } /** Image Zoom **************************************************************** **/ function _zoom() { var _container = jQuery('figure.zoom'); if(_container.length > 0) { loadScript(plugin_path + 'image.zoom/jquery.zoom.min.js', function() { if(jQuery().zoom) { _container.each(function() { var _t = jQuery(this), _mode = _t.attr('data-mode'), _id = _t.attr('id'); if(_mode == 'grab') { _t.zoom({ on:'grab' }); } else if(_mode == 'click') { _t.zoom({ on:'click' }); } else if(_mode == 'toggle') { _t.zoom({ on:'toggle' }); } else { _t.zoom(); } // Thumbnails if(_id) { jQuery('.zoom-more[data-for='+_id+'] a').bind("click", function(e) { e.preventDefault(); var _href = jQuery(this).attr('href'); if(_href != "#") { jQuery('.zoom-more[data-for='+_id+'] a').removeClass('active'); jQuery(this).addClass('active'); jQuery('figure#'+_id + '>.lightbox').attr('href', _href); jQuery('figure#'+_id + '>img').fadeOut(0, function() { jQuery('figure#'+_id + '>img').attr('src', _href); }).fadeIn(500); } }); } }); } }); } } /** Autosuggest http://twitter.github.io/typeahead.js/ **************************************************************** **/ function _autosuggest() { _container = jQuery('div.autosuggest'); if(_container.length > 0) { loadScript(plugin_path + 'typeahead.bundle.js', function() { if(jQuery().typeahead) { _container.each(function() { var _t = jQuery(this), _minLength = _t.attr('data-minLength') || 1, _qryURL = _t.attr('data-queryURL'), _limit = _t.attr('data-limit') || 10, _autoload = _t.attr('data-autoload'); if(_autoload == "false") { return false; } /** **/ /* Bloodhound (Suggestion Engine) */ var _typeahead = new Bloodhound({ datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'), queryTokenizer: Bloodhound.tokenizers.whitespace, limit: _limit, remote: { url: _qryURL + '%QUERY', }, }); jQuery('.typeahead', _t).typeahead({ limit: _limit, hint: _t.attr('data-hint') == "false" ? false : true, highlight: _t.attr('data-highlight') == "false" ? false : true, minLength: parseInt(_minLength), cache: false, }, { name: '_typeahead', source: _typeahead }); /** **/ }); } }); } } /** Form Stepper **************************************************************** **/ function _stepper() { var _container = jQuery('input.stepper'); if(_container.length > 0) { loadScript(plugin_path + 'form.stepper/jquery.stepper.min.js', function() { if(jQuery().stepper) { jQuery(_container).each(function() { var _t = jQuery(this), _min = _t.attr('min') || null, _max = _t.attr('max') || null; _t.stepper({ limit: [_min,_max], floatPrecission: _t.attr('data-floatPrecission') || 2, wheel_step: _t.attr('data-wheelstep') || 0.1, arrow_step: _t.attr('data-arrowstep') || 0.2, allowWheel: _t.attr('data-mousescrool') == "false" ? false : true, UI: _t.attr('data-UI') == "false" ? false : true, // -- type: _t.attr('data-type') || "float", preventWheelAcceleration: _t.attr('data-preventWheelAcceleration') == "false" ? false : true, incrementButton: _t.attr('data-incrementButton') || "▴", decrementButton: _t.attr('data-decrementButton') || "▾", onStep: null, onWheel: null, onArrow: null, onButton: null, onKeyUp: null }); }); } }); } } /** Slimscroll **************************************************************** **/ function _slimScroll() { var _container = jQuery('.slimscroll'); if(_container.length > 0) { loadScript(plugin_path + 'slimscroll/jquery.slimscroll.min.js', function() { if(jQuery().slimScroll) { jQuery('.slimscroll').each(function () { var height; if (jQuery(this).attr("data-height")) { height = jQuery(this).attr("data-height"); } else { height = jQuery(this).height(); } jQuery(this).slimScroll({ size: jQuery(this).attr("data-size") || '5px', opacity: jQuery(this).attr("data-opacity") || .6, position: jQuery(this).attr("data-position") || 'right', allowPageScroll: false, // not working disableFadeOut: false, railVisible: true, railColor: jQuery(this).attr("data-railColor") || '#222', railOpacity: jQuery(this).attr("data-railOpacity") || 0.05, alwaysVisible: (jQuery(this).attr("data-alwaysVisible") != "false" ? true : false), railVisible: (jQuery(this).attr("data-railVisible") != "false" ? true : false), color: jQuery(this).attr("data-color") || '#333', wrapperClass: jQuery(this).attr("data-wrapper-class") || 'slimScrollDiv', railColor: jQuery(this).attr("data-railColor") || '#eaeaea', height: height }); // Disable body scroll on slimscroll hover if(jQuery(this).attr('disable-body-scroll') == 'true') { jQuery(this).bind('mousewheel DOMMouseScroll', function(e) { var scrollTo = null; if (e.type == 'mousewheel') { scrollTo = (e.originalEvent.wheelDelta * -1); } else if (e.type == 'DOMMouseScroll') { scrollTo = 40 * e.originalEvent.detail; } if (scrollTo) { e.preventDefault(); jQuery(this).scrollTop(scrollTo + jQuery(this).scrollTop()); } }); } }); } }); } } /** Modal Autoload USAGE: **************************************************************** **/ function _modalAutoLoad() { if(jQuery("div.modal").length > 0) { jQuery("div.modal").each(function() { var _t = jQuery(this), _id = _t.attr('id'), _autostart = _t.attr('data-autoload') || false; // reset allow // localStorage.removeItem(_id); if(_id != '') { // rewrite if set to hidden by the user if(localStorage.getItem(_id) == 'hidden') { _autostart = 'false'; } } if(_autostart == 'true') { jQuery(window).load(function() { // required on load! var _delay = _t.attr('data-autoload-delay') || 1000; // delay when modal apprear setTimeout( function() { _t.modal('toggle'); }, parseInt(_delay)); }); } // LOCAL STORAGE - DO NOT HIDE ON NEXT PAGE LOAD! jQuery("input.loadModalHide", this).bind("click", function() { var _tt = jQuery(this); if(_tt.is(":checked")) { localStorage.setItem(_id, 'hidden'); console.log('[Modal Autoload #'+_id+'] Added to localStorage'); } else { localStorage.removeItem(_id); console.log('[Modal Autoload #'+_id+'] Removed from localStorage'); } }); }); } } /** 10. Background Image class="boxed" should be added to body. Add to body - example: data-background="assets/images/boxed_background/1.jpg" **************************************************************** **/ function _bgimage() { var data_background = jQuery('body').attr('data-background') || ''; if(data_background != '') { loadScript(plugin_path + 'jquery.backstretch.min.js', function() { if(data_background) { jQuery.backstretch(data_background); jQuery('body').addClass('transparent'); // remove backround color of boxed class } }); } } /** Flickr Widget **************************************************************** **/ function _widget_flickr() { var _container = jQuery('.widget-flickr'); if(_container.length > 0) { loadScript(plugin_path + 'widget.jflickr/jflickrfeed.min.js', function() { if(jQuery().jflickrfeed) { if(jQuery('.widget-flickr')) { /** **/ _container.each(function() { var _t = jQuery(this), _id = _t.attr('data-id'), _limit = _t.attr('data-limit') || 14; _t.jflickrfeed({ limit: parseInt(_limit), qstrings: { id: _id }, itemTemplate: '
  • '+ '' + '{{title}}' + '' + '
  • ' }, function(data) { _lightbox(); }); }); /** **/ } } }); } } /** Twitter Widget **************************************************************** **/ function _widget_twitter() { var _container = jQuery(".widget-twitter"); if(_container.length > 0) { loadScript(plugin_path + 'widget.twittie/twittie.min.js', function() { if(jQuery().twittie) { // jQuery('.example1 .tweet').twittie({ // dateFormat: '%b. %d, %Y', // template: '{{tweet}}
    {{date}}
    ', // count: 1, // loadingText: 'Loading!' // }); _container.each(function() { var _t = jQuery(this), _php = _t.attr('data-php'), // PHP Script Path _usr = _t.attr('data-username'), // Twitter Username _lmt = _t.attr('data-limit') || 3, // Tweets Limit _url = _php + "?username=" + _usr + "&limit=" + _lmt; jQuery.getJSON(_url, function(tweets){ _t.html(format_twitter(tweets)); }); }); } }); } } function format_twitter(twitt) { var statusHTML = []; for(var i=0; i]*[^.,;'">\:\s\<\>\)\]\!])/g, function(url) { return ''+url+''; }).replace(/\B@([_a-z0-9]+)/ig, function(reply) { return reply.charAt(0)+''+reply.substring(1)+''; }); statusHTML.push('
  • '+status+''+relative_time(twitt[i].created_at)+'
  • '); } return statusHTML.join(''); } function relative_time(time_value) { var values = time_value.split(" "), parsed_date = Date.parse(time_value), relative_to = (arguments.length > 1) ? arguments[1] : new Date(), delta = parseInt((relative_to.getTime() - parsed_date) / 1000); time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3]; delta = delta + (relative_to.getTimezoneOffset() * 60); if (delta < 60) { return 'less than a minute ago'; } else if(delta < 120) { return 'about a minute ago'; } else if(delta < (60*60)) { return (parseInt(delta / 60)).toString() + ' minutes ago'; } else if(delta < (120*60)) { return 'about an hour ago'; } else if(delta < (24*60*60)) { return 'about ' + (parseInt(delta / 3600)).toString() + ' hours ago'; } else if(delta < (48*60*60)) { return '1 day ago'; } else { return (parseInt(delta / 86400)).toString() + ' days ago'; } } /** Facebook Widget
    **************************************************************** **/ function _widget_facebook() { /** Like & Share Button ************************ **/ var _container_1 = jQuery('div.fb-like'); var _container_2 = jQuery('div.fb-share-button'); if(_container_1.length > 0 || _container_2.length > 0) { jQuery('body').append('
    '); (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.3"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk')); } } /** Dribbble Widget **************************************************************** **/ function _widget_dribbble() { var _container = jQuery(".widget-dribbble"); if(_container.length > 0) { loadScript(plugin_path + 'widget.dribbble/jribbble.min.js', function() { var _token = _container.attr('data-token') || 'f688ac519289f19ce5cebc1383c15ad5c02bd58205cd83c86cbb0ce09170c1b4', // demo default _target = _container.attr('data-target') || '_blank', _shots = _container.attr('data-shots') || 2046896; // demo default jQuery.jribbble.setToken(_token); jQuery.jribbble.shots(_shots).rebounds().then(function(res) { var html = []; res.forEach(function(shot) { html.push('
  • '); html.push(''); html.push('image'); html.push('
  • '); }); _container.html(html.join('')); }); }); } } /** Media Widget [mediaelement plugin] **************************************************************** **/ function _widget_media() { var _container = jQuery(".widget-media"); if(_container.length > 0) { loadScript(plugin_path + 'widget.mediaelementbuild/mediaelement-and-player.min.js', function() { }); } } /** **************************************************************************************************************** **/ /** **************************************************************************************************************** **/ /** **************************************************************************************************************** **/ /** **************************************************************************************************************** **/ // scroll function wheel(e) { e.preventDefault(); } function disable_scroll() { if (window.addEventListener) { window.addEventListener('DOMMouseScroll', wheel, false); } window.onmousewheel = document.onmousewheel = wheel; } function enable_scroll() { if (window.removeEventListener) { window.removeEventListener('DOMMouseScroll', wheel, false); } window.onmousewheel = document.onmousewheel = document.onkeydown = null; } // overlay function enable_overlay() { jQuery("span.global-overlay").remove(); // remove first! jQuery('body').append(''); } function disable_overlay() { jQuery("span.global-overlay").remove(); } /** COUNT TO https://github.com/mhuggins/jquery-countTo **************************************************************** **/ (function ($) { $.fn.countTo = function (options) { options = options || {}; return jQuery(this).each(function () { // set options for current element var settings = jQuery.extend({}, $.fn.countTo.defaults, { from: jQuery(this).data('from'), to: jQuery(this).data('to'), speed: jQuery(this).data('speed'), refreshInterval: jQuery(this).data('refresh-interval'), decimals: jQuery(this).data('decimals') }, options); // how many times to update the value, and how much to increment the value on each update var loops = Math.ceil(settings.speed / settings.refreshInterval), increment = (settings.to - settings.from) / loops; // references & variables that will change with each update var self = this, $self = jQuery(this), loopCount = 0, value = settings.from, data = $self.data('countTo') || {}; $self.data('countTo', data); // if an existing interval can be found, clear it first if (data.interval) { clearInterval(data.interval); } data.interval = setInterval(updateTimer, settings.refreshInterval); // __construct the element with the starting value render(value); function updateTimer() { value += increment; loopCount++; render(value); if (typeof(settings.onUpdate) == 'function') { settings.onUpdate.call(self, value); } if (loopCount >= loops) { // remove the interval $self.removeData('countTo'); clearInterval(data.interval); value = settings.to; if (typeof(settings.onComplete) == 'function') { settings.onComplete.call(self, value); } } } function render(value) { var formattedValue = settings.formatter.call(self, value, settings); $self.html(formattedValue); } }); }; $.fn.countTo.defaults = { from: 0, // the number the element should start at to: 0, // the number the element should end at speed: 1000, // how long it should take to count between the target numbers refreshInterval: 100, // how often the element should be updated decimals: 0, // the number of decimal places to show formatter: formatter, // handler for formatting the value before rendering onUpdate: null, // callback method for every time the element is updated onComplete: null // callback method for when the element finishes updating }; function formatter(value, settings) { return value.toFixed(settings.decimals); } }(jQuery)); /** BROWSER DETECT Add browser to html class **************************************************************** **/ (function($) { $.extend({ browserDetect: function() { var u = navigator.userAgent, ua = u.toLowerCase(), is = function (t) { return ua.indexOf(t) > -1; }, g = 'gecko', w = 'webkit', s = 'safari', o = 'opera', h = document.documentElement, b = [(!(/opera|webtv/i.test(ua)) && /msie\s(\d)/.test(ua)) ? ('ie ie' + parseFloat(navigator.appVersion.split("MSIE")[1])) : is('firefox/2') ? g + ' ff2' : is('firefox/3.5') ? g + ' ff3 ff3_5' : is('firefox/3') ? g + ' ff3' : is('gecko/') ? g : is('opera') ? o + (/version\/(\d+)/.test(ua) ? ' ' + o + RegExp.jQuery1 : (/opera(\s|\/)(\d+)/.test(ua) ? ' ' + o + RegExp.jQuery2 : '')) : is('konqueror') ? 'konqueror' : is('chrome') ? w + ' chrome' : is('iron') ? w + ' iron' : is('applewebkit/') ? w + ' ' + s + (/version\/(\d+)/.test(ua) ? ' ' + s + RegExp.jQuery1 : '') : is('mozilla/') ? g : '', is('j2me') ? 'mobile' : is('iphone') ? 'iphone' : is('ipod') ? 'ipod' : is('mac') ? 'mac' : is('darwin') ? 'mac' : is('webtv') ? 'webtv' : is('win') ? 'win' : is('freebsd') ? 'freebsd' : (is('x11') || is('linux')) ? 'linux' : '', 'js']; c = b.join(' '); h.className += ' ' + c; var isIE11 = !(window.ActiveXObject) && "ActiveXObject" in window; if(isIE11) { jQuery('html').removeClass('gecko').addClass('ie ie11'); return; } } }); })(jQuery); /** Appear https://github.com/bas2k/jquery.appear/ **************************************************************** **/ (function(a){a.fn.appear=function(d,b){var c=a.extend({data:undefined,one:true,accX:0,accY:0},b);return this.each(function(){var g=a(this);g.appeared=false;if(!d){g.trigger("appear",c.data);return}var f=a(window);var e=function(){if(!g.is(":visible")){g.appeared=false;return}var r=f.scrollLeft();var q=f.scrollTop();var l=g.offset();var s=l.left;var p=l.top;var i=c.accX;var t=c.accY;var k=g.height();var j=f.height();var n=g.width();var m=f.width();if(p+k+t>=q&&p<=q+j+t&&s+n+i>=r&&s<=r+m+i){if(!g.appeared){g.trigger("appear",c.data)}}else{g.appeared=false}};var h=function(){g.appeared=true;if(c.one){f.unbind("scroll",e);var j=a.inArray(e,a.fn.appear.checks);if(j>=0){a.fn.appear.checks.splice(j,1)}}d.apply(this,arguments)};if(c.one){g.one("appear",c.data,h)}else{g.bind("appear",c.data,h)}f.scroll(e);a.fn.appear.checks.push(e);(e)()})};a.extend(a.fn.appear,{checks:[],timeout:null,checkAll:function(){var b=a.fn.appear.checks.length;if(b>0){while(b--){(a.fn.appear.checks[b])()}}},run:function(){if(a.fn.appear.timeout){clearTimeout(a.fn.appear.timeout)}a.fn.appear.timeout=setTimeout(a.fn.appear.checkAll,20)}});a.each(["append","prepend","after","before","attr","removeAttr","addClass","removeClass","toggleClass","remove","css","show","hide"],function(c,d){var b=a.fn[d];if(b){a.fn[d]=function(){var e=b.apply(this,arguments);a.fn.appear.run();return e}}})})(jQuery); /** Parallax http://www.ianlunn.co.uk/plugins/jquery-parallax/ **************************************************************** **/ (function(a){var b=a(window);var c=b.height();b.resize(function(){c=b.height()});a.fn.parallax=function(e,d,g){var i=a(this);var j;var h;var f=0;function k(){i.each(function(){h=i.offset().top});if(g){j=function(m){return m.outerHeight(true)}}else{j=function(m){return m.height()}}if(arguments.length<1||e===null){e="50%"}if(arguments.length<2||d===null){d=0.5}if(arguments.length<3||g===null){g=true}var l=b.scrollTop();i.each(function(){var n=a(this);var o=n.offset().top;var m=j(n);if(o+ml+c){return}i.css("backgroundPosition",e+" "+Math.round((h-l)*d)+"px")})}b.bind("scroll",k).resize(k);k()}})(jQuery); /** jQuery Easing v1.3 http://gsgd.co.uk/sandbox/jquery/easing/ **************************************************************** **/ jQuery.easing.jswing=jQuery.easing.swing;jQuery.extend(jQuery.easing,{def:"easeOutQuad",swing:function(e,f,a,h,g){return jQuery.easing[jQuery.easing.def](e,f,a,h,g)},easeInQuad:function(e,f,a,h,g){return h*(f/=g)*f+a},easeOutQuad:function(e,f,a,h,g){return -h*(f/=g)*(f-2)+a},easeInOutQuad:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f+a}return -h/2*((--f)*(f-2)-1)+a},easeInCubic:function(e,f,a,h,g){return h*(f/=g)*f*f+a},easeOutCubic:function(e,f,a,h,g){return h*((f=f/g-1)*f*f+1)+a},easeInOutCubic:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f+a}return h/2*((f-=2)*f*f+2)+a},easeInQuart:function(e,f,a,h,g){return h*(f/=g)*f*f*f+a},easeOutQuart:function(e,f,a,h,g){return -h*((f=f/g-1)*f*f*f-1)+a},easeInOutQuart:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f*f+a}return -h/2*((f-=2)*f*f*f-2)+a},easeInQuint:function(e,f,a,h,g){return h*(f/=g)*f*f*f*f+a},easeOutQuint:function(e,f,a,h,g){return h*((f=f/g-1)*f*f*f*f+1)+a},easeInOutQuint:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f*f*f+a}return h/2*((f-=2)*f*f*f*f+2)+a},easeInSine:function(e,f,a,h,g){return -h*Math.cos(f/g*(Math.PI/2))+h+a},easeOutSine:function(e,f,a,h,g){return h*Math.sin(f/g*(Math.PI/2))+a},easeInOutSine:function(e,f,a,h,g){return -h/2*(Math.cos(Math.PI*f/g)-1)+a},easeInExpo:function(e,f,a,h,g){return(f==0)?a:h*Math.pow(2,10*(f/g-1))+a},easeOutExpo:function(e,f,a,h,g){return(f==g)?a+h:h*(-Math.pow(2,-10*f/g)+1)+a},easeInOutExpo:function(e,f,a,h,g){if(f==0){return a}if(f==g){return a+h}if((f/=g/2)<1){return h/2*Math.pow(2,10*(f-1))+a}return h/2*(-Math.pow(2,-10*--f)+2)+a},easeInCirc:function(e,f,a,h,g){return -h*(Math.sqrt(1-(f/=g)*f)-1)+a},easeOutCirc:function(e,f,a,h,g){return h*Math.sqrt(1-(f=f/g-1)*f)+a},easeInOutCirc:function(e,f,a,h,g){if((f/=g/2)<1){return -h/2*(Math.sqrt(1-f*f)-1)+a}return h/2*(Math.sqrt(1-(f-=2)*f)+1)+a},easeInElastic:function(f,h,e,l,k){var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k)==1){return e+l}if(!j){j=k*0.3}if(gb;b++)if(b in this&&this[b]===a)return b;return-1};b=function(){function a(){}return a.prototype.extend=function(a,b){var c,d;for(c in b)d=b[c],null==a[c]&&(a[c]=d);return a},a.prototype.isMobile=function(a){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(a)},a.prototype.addEvent=function(a,b,c){return null!=a.addEventListener?a.addEventListener(b,c,!1):null!=a.attachEvent?a.attachEvent("on"+b,c):a[b]=c},a.prototype.removeEvent=function(a,b,c){return null!=a.removeEventListener?a.removeEventListener(b,c,!1):null!=a.detachEvent?a.detachEvent("on"+b,c):delete a[b]},a.prototype.innerHeight=function(){return"innerHeight"in window?window.innerHeight:document.documentElement.clientHeight},a}(),c=this.WeakMap||this.MozWeakMap||(c=function(){function a(){this.keys=[],this.values=[]}return a.prototype.get=function(a){var b,c,d,e,f;for(f=this.keys,b=d=0,e=f.length;e>d;b=++d)if(c=f[b],c===a)return this.values[b]},a.prototype.set=function(a,b){var c,d,e,f,g;for(g=this.keys,c=e=0,f=g.length;f>e;c=++e)if(d=g[c],d===a)return void(this.values[c]=b);return this.keys.push(a),this.values.push(b)},a}()),a=this.MutationObserver||this.WebkitMutationObserver||this.MozMutationObserver||(a=function(){function a(){"undefined"!=typeof console&&null!==console&&console.warn("MutationObserver is not supported by your browser."),"undefined"!=typeof console&&null!==console&&console.warn("WOW.js cannot detect dom mutations, please call .sync() after loading new content.")}return a.notSupported=!0,a.prototype.observe=function(){},a}()),d=this.getComputedStyle||function(a){return this.getPropertyValue=function(b){var c;return"float"===b&&(b="styleFloat"),e.test(b)&&b.replace(e,function(a,b){return b.toUpperCase()}),(null!=(c=a.currentStyle)?c[b]:void 0)||null},this},e=/(\-([a-z]){1})/g,this.WOW=function(){function e(a){null==a&&(a={}),this.scrollCallback=f(this.scrollCallback,this),this.scrollHandler=f(this.scrollHandler,this),this.start=f(this.start,this),this.scrolled=!0,this.config=this.util().extend(a,this.defaults),this.animationNameCache=new c}return e.prototype.defaults={boxClass:"wow",animateClass:"animated",offset:0,mobile:!0,live:!0,callback:null},e.prototype.init=function(){var a;return this.element=window.document.documentElement,"interactive"===(a=document.readyState)||"complete"===a?this.start():this.util().addEvent(document,"DOMContentLoaded",this.start),this.finished=[]},e.prototype.start=function(){var b,c,d,e;if(this.stopped=!1,this.boxes=function(){var a,c,d,e;for(d=this.element.querySelectorAll("."+this.config.boxClass),e=[],a=0,c=d.length;c>a;a++)b=d[a],e.push(b);return e}.call(this),this.all=function(){var a,c,d,e;for(d=this.boxes,e=[],a=0,c=d.length;c>a;a++)b=d[a],e.push(b);return e}.call(this),this.boxes.length)if(this.disabled())this.resetStyle();else for(e=this.boxes,c=0,d=e.length;d>c;c++)b=e[c],this.applyStyle(b,!0);return this.disabled()||(this.util().addEvent(window,"scroll",this.scrollHandler),this.util().addEvent(window,"resize",this.scrollHandler),this.interval=setInterval(this.scrollCallback,50)),this.config.live?new a(function(a){return function(b){var c,d,e,f,g;for(g=[],e=0,f=b.length;f>e;e++)d=b[e],g.push(function(){var a,b,e,f;for(e=d.addedNodes||[],f=[],a=0,b=e.length;b>a;a++)c=e[a],f.push(this.doSync(c));return f}.call(a));return g}}(this)).observe(document.body,{childList:!0,subtree:!0}):void 0},e.prototype.stop=function(){return this.stopped=!0,this.util().removeEvent(window,"scroll",this.scrollHandler),this.util().removeEvent(window,"resize",this.scrollHandler),null!=this.interval?clearInterval(this.interval):void 0},e.prototype.sync=function(){return a.notSupported?this.doSync(this.element):void 0},e.prototype.doSync=function(a){var b,c,d,e,f;if(null==a&&(a=this.element),1===a.nodeType){for(a=a.parentNode||a,e=a.querySelectorAll("."+this.config.boxClass),f=[],c=0,d=e.length;d>c;c++)b=e[c],g.call(this.all,b)<0?(this.boxes.push(b),this.all.push(b),this.stopped||this.disabled()?this.resetStyle():this.applyStyle(b,!0),f.push(this.scrolled=!0)):f.push(void 0);return f}},e.prototype.show=function(a){return this.applyStyle(a),a.className=""+a.className+" "+this.config.animateClass,null!=this.config.callback?this.config.callback(a):void 0},e.prototype.applyStyle=function(a,b){var c,d,e;return d=a.getAttribute("data-wow-duration"),c=a.getAttribute("data-wow-delay"),e=a.getAttribute("data-wow-iteration"),this.animate(function(f){return function(){return f.customStyle(a,b,d,c,e)}}(this))},e.prototype.animate=function(){return"requestAnimationFrame"in window?function(a){return window.requestAnimationFrame(a)}:function(a){return a()}}(),e.prototype.resetStyle=function(){var a,b,c,d,e;for(d=this.boxes,e=[],b=0,c=d.length;c>b;b++)a=d[b],e.push(a.style.visibility="visible");return e},e.prototype.customStyle=function(a,b,c,d,e){return b&&this.cacheAnimationName(a),a.style.visibility=b?"hidden":"visible",c&&this.vendorSet(a.style,{animationDuration:c}),d&&this.vendorSet(a.style,{animationDelay:d}),e&&this.vendorSet(a.style,{animationIterationCount:e}),this.vendorSet(a.style,{animationName:b?"none":this.cachedAnimationName(a)}),a},e.prototype.vendors=["moz","webkit"],e.prototype.vendorSet=function(a,b){var c,d,e,f;f=[];for(c in b)d=b[c],a[""+c]=d,f.push(function(){var b,f,g,h;for(g=this.vendors,h=[],b=0,f=g.length;f>b;b++)e=g[b],h.push(a[""+e+c.charAt(0).toUpperCase()+c.substr(1)]=d);return h}.call(this));return f},e.prototype.vendorCSS=function(a,b){var c,e,f,g,h,i;for(e=d(a),c=e.getPropertyCSSValue(b),i=this.vendors,g=0,h=i.length;h>g;g++)f=i[g],c=c||e.getPropertyCSSValue("-"+f+"-"+b);return c},e.prototype.animationName=function(a){var b;try{b=this.vendorCSS(a,"animation-name").cssText}catch(c){b=d(a).getPropertyValue("animation-name")}return"none"===b?"":b},e.prototype.cacheAnimationName=function(a){return this.animationNameCache.set(a,this.animationName(a))},e.prototype.cachedAnimationName=function(a){return this.animationNameCache.get(a)},e.prototype.scrollHandler=function(){return this.scrolled=!0},e.prototype.scrollCallback=function(){var a;return!this.scrolled||(this.scrolled=!1,this.boxes=function(){var b,c,d,e;for(d=this.boxes,e=[],b=0,c=d.length;c>b;b++)a=d[b],a&&(this.isVisible(a)?this.show(a):e.push(a));return e}.call(this),this.boxes.length||this.config.live)?void 0:this.stop()},e.prototype.offsetTop=function(a){for(var b;void 0===a.offsetTop;)a=a.parentNode;for(b=a.offsetTop;a=a.offsetParent;)b+=a.offsetTop;return b},e.prototype.isVisible=function(a){var b,c,d,e,f;return c=a.getAttribute("data-wow-offset")||this.config.offset,f=window.pageYOffset,e=f+Math.min(this.element.clientHeight,this.util().innerHeight())-c,d=this.offsetTop(a),b=d+a.clientHeight,e>=d&&b>=f},e.prototype.util=function(){return null!=this._util?this._util:this._util=new b},e.prototype.disabled=function(){return!this.config.mobile&&this.util().isMobile(navigator.userAgent)},e}()}).call(this); /** Modernizr 2.7.1 http://modernizr.com/download/#-csstransforms3d-csstransitions-video-touch-shiv-cssclasses-addtest-prefixed-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-load **************************************************************** **/ ;window.Modernizr=function(a,b,c){function A(a){j.cssText=a}function B(a,b){return A(m.join(a+";")+(b||""))}function C(a,b){return typeof a===b}function D(a,b){return!!~(""+a).indexOf(b)}function E(a,b){for(var d in a){var e=a[d];if(!D(e,"-")&&j[e]!==c)return b=="pfx"?e:!0}return!1}function F(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:C(f,"function")?f.bind(d||b):f}return!1}function G(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+o.join(d+" ")+d).split(" ");return C(b,"string")||C(b,"undefined")?E(e,b):(e=(a+" "+p.join(d+" ")+d).split(" "),F(e,b,c))}var d="2.7.1",e={},f=!0,g=b.documentElement,h="modernizr",i=b.createElement(h),j=i.style,k,l={}.toString,m=" -webkit- -moz- -o- -ms- ".split(" "),n="Webkit Moz O ms",o=n.split(" "),p=n.toLowerCase().split(" "),q={},r={},s={},t=[],u=t.slice,v,w=function(a,c,d,e){var f,i,j,k,l=b.createElement("div"),m=b.body,n=m||b.createElement("body");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:h+(d+1),l.appendChild(j);return f=["­",'"].join(""),l.id=h,(m?l:n).innerHTML+=f,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=g.style.overflow,g.style.overflow="hidden",g.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),g.style.overflow=k),!!i},x=function(){function d(d,e){e=e||b.createElement(a[d]||"div"),d="on"+d;var f=d in e;return f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=C(e[d],"function"),C(e[d],"undefined")||(e[d]=c),e.removeAttribute(d))),e=null,f}var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),y={}.hasOwnProperty,z;!C(y,"undefined")&&!C(y.call,"undefined")?z=function(a,b){return y.call(a,b)}:z=function(a,b){return b in a&&C(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=u.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(u.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(u.call(arguments)))};return e}),q.touch=function(){var c;return"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:w(["@media (",m.join("touch-enabled),("),h,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=a.offsetTop===9}),c},q.csstransforms3d=function(){var a=!!G("perspective");return a&&"webkitPerspective"in g.style&&w("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(b,c){a=b.offsetLeft===9&&b.offsetHeight===3}),a},q.csstransitions=function(){return G("transition")},q.video=function(){var a=b.createElement("video"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),c.h264=a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,"")}catch(d){}return c};for(var H in q)z(q,H)&&(v=H.toLowerCase(),e[v]=q[H](),t.push((e[v]?"":"no-")+v));return e.addTest=function(a,b){if(typeof a=="object")for(var d in a)z(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},A(""),i=k=null,function(a,b){function l(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function m(){var a=s.elements;return typeof a=="string"?a.split(" "):a}function n(a){var b=j[a[h]];return b||(b={},i++,a[h]=i,j[i]=b),b}function o(a,c,d){c||(c=b);if(k)return c.createElement(a);d||(d=n(c));var g;return d.cache[a]?g=d.cache[a].cloneNode():f.test(a)?g=(d.cache[a]=d.createElem(a)).cloneNode():g=d.createElem(a),g.canHaveChildren&&!e.test(a)&&!g.tagUrn?d.frag.appendChild(g):g}function p(a,c){a||(a=b);if(k)return a.createDocumentFragment();c=c||n(a);var d=c.frag.cloneNode(),e=0,f=m(),g=f.length;for(;e",g="hidden"in a,k=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){g=!0,k=!0}})();var s={elements:d.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:c,shivCSS:d.shivCSS!==!1,supportsUnknownElements:k,shivMethods:d.shivMethods!==!1,type:"default",shivDocument:r,createElement:o,createDocumentFragment:p};a.html5=s,r(b)}(this,b),e._version=d,e._prefixes=m,e._domPrefixes=p,e._cssomPrefixes=o,e.hasEvent=x,e.testProp=function(a){return E([a])},e.testAllProps=G,e.testStyles=w,e.prefixed=function(a,b,c){return b?G(a,b,c):G(a,"pfx")},g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+t.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return"[object Function]"==o.call(a)}function e(a){return"string"==typeof a}function f(){}function g(a){return!a||"loaded"==a||"complete"==a||"uninitialized"==a}function h(){var a=p.shift();q=1,a?a.t?m(function(){("c"==a.t?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){"img"!=a&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l=b.createElement(a),o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};1===y[c]&&(r=1,y[c]=[]),"object"==a?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),"img"!=a&&(r||2===y[c]?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i("c"==b?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),1==p.length&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&"[object Opera]"==o.call(a.opera),l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return"[object Array]"==o.call(a)},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f