File: //home/arjun/projects/buyercall_new/buyercall/buyercall/assets/scripts/frontend_app.js
/*
* Document : Frontapp.js
* Author : pixelcave
* Description: Custom scripts and plugin initializations
*/
var Frontapp = function() {
/* Initialization UI Code */
var uiInit = function() {
// Handle UI
handleHeader();
handleMenu();
scrollToTop();
// Add the correct copyright year at the footer
var yearCopy = $('#year-copy'), d = new Date();
if (d.getFullYear() === 2015) { yearCopy.html('2015'); } else { yearCopy.html('2015-' + d.getFullYear().toString().substr(2,2)); }
// Initialize tabs
$('[data-toggle="tabs"] a, .enable-tabs a').click(function(e){ e.preventDefault(); $(this).tab('show'); });
// Initialize Tooltips
$('[data-toggle="tooltip"], .enable-tooltip').tooltip({container: 'body', animation: false});
// Initialize Popovers
$('[data-toggle="popover"], .enable-popover').popover({container: 'body', animation: true});
// Initialize Placeholder
$('input, textarea').placeholder();
// Toggle animation class when an element appears with Jquery Appear plugin
$('[data-toggle="animation-appear"]').each(function(){
var $this = $(this);
var $animClass = $this.data('animation-class');
var $elemOff = $this.data('element-offset');
$this.appear(function() {
$this.removeClass('visibility-none').addClass($animClass);
},{accY: $elemOff});
});
// With CountTo (+ help of Jquery Appear plugin), Check out examples and documentation at https://github.com/mhuggins/jquery-countTo
$('[data-toggle="countTo"]').each(function(){
var $this = $(this);
$this.appear(function() {
$this.countTo({
speed: 2000,
refreshInterval: 20,
onComplete: function() {
if($this.data('after')) {
$this.html($this.html() + $this.data('after'));
}
}
});
});
});
};
/* Handles Header */
var handleHeader = function(){
var header = $('header');
$(window).scroll(function() {
// If the user scrolled a bit (150 pixels) alter the header class to change it
if ($(this).scrollTop() > header.outerHeight()) {
header.addClass('header-scroll');
} else {
header.removeClass('header-scroll');
}
});
};
/* Handles Main Menu */
var handleMenu = function(){
var sideNav = $('.site-nav');
$('.site-menu-toggle').on('click', function(){
sideNav.toggleClass('site-nav-visible');
$(this).blur();
});
sideNav.on('mouseleave', function(){
$(this).removeClass('site-nav-visible');
});
};
/* Scroll to top functionality */
var scrollToTop = function() {
// Get link
var link = $('#to-top');
var windowW = window.innerWidth
|| document.documentElement.clientWidth
|| document.body.clientWidth;
$(window).scroll(function() {
// If the user scrolled a bit (150 pixels) show the link in large resolutions
if (($(this).scrollTop() > 150) && (windowW > 991)) {
link.fadeIn(100);
} else {
link.fadeOut(100);
}
});
// On click get to top
link.click(function() {
$('html, body').animate({scrollTop: 0}, 400);
return false;
});
};
return {
init: function() {
uiInit(); // Initialize UI Code
}
};
}();
module.exports = Frontapp;
// Expose 'Frontend app' to the scripts on the page
var global = Function('return this;')();
global.Frontapp = Frontapp;