| Current Path : /home/zqegovsj/www/us3.supplierlist.com/en/fonts/js/ |
| Current File : /home/zqegovsj/www/us3.supplierlist.com/en/fonts/js/main.js |
"use strict";
//Wrapping all JavaScript code into a IIFE function for prevent global variables creation
(function(){
var $body = jQuery('body');
var $window = jQuery(window);
//helper functions to init elements only when they appears in viewport (jQUery.appear plugin)
function initAnimateElement(self, index) {
var animationClass = !self.data('animation') ? 'fadeInUp' : self.data('animation');
var animationDelay = !self.data('delay') ? 150 : self.data('delay');
setTimeout(function(){
self.addClass("animated " + animationClass);
}, index * animationDelay);
}
function initCounter(self) {
if (self.hasClass('counted')) {
return;
} else {
self.countTo().addClass('counted');
}
}
function initProgressbar(el) {
el.progressbar({
transition_delay: 300
});
}
function initChart(el) {
var data = el.data();
var size = data.size ? data.size : 270;
var line = data.line ? data.line : 20;
var bgcolor = data.bgcolor ? data.bgcolor : '#ffffff';
var trackcolor = data.trackcolor ? data.trackcolor : '#c14240';
var speed = data.speed ? data.speed : 3000;
el.easyPieChart({
barColor: trackcolor,
trackColor: bgcolor,
scaleColor: false,
scaleLength: false,
lineCap: 'butt',
lineWidth: line,
size: size,
rotate: 0,
animate: speed,
onStep: function(from, to, percent) {
jQuery(this.el).find('.percent').text(Math.round(percent));
}
});
}
//function that initiating template plugins on window.load event
function windowLoadInit() {
////////////
//mainmenu//
////////////
if (jQuery().scrollbar) {
jQuery('[class*="scrollbar-"]').scrollbar();
}
// toggle sub-menus visibility on menu-click
jQuery('ul.menu-click').find('li').each(function(){
var $thisLi = jQuery(this);
//toggle submenu only for menu items with submenu
if ($thisLi.find('ul').length) {
$thisLi
.append('<span class="activate_submenu"></span>')
//adding anchor
.find('.activate_submenu, > a')
.on('click', function(e) {
var $thisSpanOrA = jQuery(this);
//if this is a link and it is already opened - going to link
if (($thisSpanOrA.attr('href') === '#') || !($thisSpanOrA.parent().hasClass('active-submenu'))) {
e.preventDefault();
}
if ($thisSpanOrA.parent().hasClass('active-submenu')) {
$thisSpanOrA.parent().removeClass('active-submenu');
return;
}
$thisLi.addClass('active-submenu').siblings().removeClass('active-submenu');
});
} //eof sumbenu check
});
//side header processing
var $sideHeader = jQuery('.page_header_side');
if ($sideHeader.length) {
jQuery('.toggle_menu_side').on('click', function(){
var $thisToggler = jQuery(this);
if ($thisToggler.hasClass('header-slide')) {
$sideHeader.toggleClass('active-slide-side-header');
} else {
if($thisToggler.parent().hasClass('header_side_right')) {
$body.toggleClass('active-side-header slide-right');
} else {
$body.toggleClass('active-side-header');
}
}
});
//hidding side header on click outside header
$body.on('click', function( e ) {
if ( !(jQuery(e.target).closest('.page_header_side').length) && !($sideHeader.hasClass('page_header_side_sticked')) ) {
$sideHeader.removeClass('active-slide-side-header');
$body.removeClass('active-side-header slide-right');
}
});
if ($sideHeader.hasClass('page_header_side_sticked') && ($window.width()) < 600 ) {
jQuery('.toggle_menu_side').trigger('click');
}
} //sideHeader check
//background image teaser and secitons with half image bg
//put this before prettyPhoto init because image may be wrapped in prettyPhoto link
jQuery(".bg_teaser, .image_cover").each(function(){
var $teaser = jQuery(this);
var $image = $teaser.find("img").first();
if (!$image.length) {
$image = $teaser.parent().find("img").first();
}
if (!$image.length) {
return;
}
var imagePath = $image.attr("src");
$teaser.css("background-image", "url(" + imagePath + ")");
var $imageParent = $image.parent();
//if image inside link - adding this link, removing gallery to preserve duplicating gallery items
if ($imageParent.is('a')) {
$teaser.prepend($image.parent().clone().html(''));
$imageParent.attr('data-gal', '');
}
});
//toTop
if (jQuery().UItoTop) {
jQuery().UItoTop({ easingType: 'easeInOutQuart' });
}
////////////////////////////////////////
//init Bootstrap JS components//
////////////////////////////////////////
//bootstrap carousel
if (jQuery().carousel) {
jQuery('.carousel').carousel();
}
//bootstrap tab - show first tab
jQuery('.nav-tabs').each(function() {
jQuery(this).find('a').first().tab('show');
});
jQuery('.tab-content').each(function() {
jQuery(this).find('.tab-pane').first().addClass('fade in');
});
//bootstrap collapse - show first tab
jQuery('.panel-group').each(function() {
jQuery(this).find('a').first().filter('.collapsed').trigger('click');
});
//tooltip
if (jQuery().tooltip) {
jQuery('[data-toggle="tooltip"]').tooltip();
}
/////////////////////////////////////////////////
//PHP widgets - contact form, search, MailChimp//
/////////////////////////////////////////////////
//search modal
jQuery(".search_modal_button").on('click', function(e){
e.preventDefault();
jQuery('#search_modal').modal('show').find('input').first().focus();
});
//search form processing
jQuery('form.searchform').on('submit', function( e ){
e.preventDefault();
var $form = jQuery(this);
var $searchModal = jQuery('#search_modal');
$searchModal.find('div.searchform-respond').remove();
//checking on empty values
jQuery($form).find('[type="text"]').each(function(index) {
var $thisField = jQuery(this);
if (!$thisField.val().length) {
$thisField
.addClass('invalid')
.on('focus', function(){
$thisField.removeClass('invalid')
});
}
});
//if one of form fields is empty - exit
if ($form.find('[type="text"]').hasClass('invalid')) {
return;
}
$searchModal.modal('show');
//sending form data to PHP server if fields are not empty
var request = $form.serialize();
var ajax = jQuery.post( "search.php", request )
.done(function( data ) {
$searchModal.append('<div class="searchform-respond">'+data+'</div>');
})
.fail(function( data ) {
$searchModal.append('<div class="searchform-respond">Search cannot be done. You need PHP server to search.</div>');
})
});
////////////////////
//header processing/
////////////////////
//stick header to top
//wrap header with div for smooth sticking
var $header = jQuery('.page_header').first();
var boxed = $header.closest('.boxed').length;
if ($header.length) {
//wrap header for smooth stick and unstick
var headerHeight = $header.outerHeight();
$header.wrap('<div class="page_header_wrapper"></div>');
var $headerWrapper = $header.parent();
if (!boxed) {
$headerWrapper.css({height: headerHeight});
}
//headerWrapper background
if( $header.hasClass('header_white') ) {
$headerWrapper.addClass('header_white');
} else if ( $header.hasClass('header_darkgrey') ) {
$headerWrapper.addClass('header_darkgrey');
if ( $header.hasClass('bs') ) {
$headerWrapper.addClass('bs');
}
} else if ( $header.hasClass('header_gradient') ) {
$headerWrapper.addClass('header_gradient');
}
//get offset
var headerOffset = 0;
//check for sticked template headers
if (!boxed && !($headerWrapper.css('position') === 'fixed')) {
headerOffset = $header.offset().top;
}
//for boxed layout - show or hide main menu elements if width has been changed on affix
jQuery($header).on('affixed-top.bs.affix affixed.bs.affix affixed-bottom.bs.affix', function ( e ) {
if( $header.hasClass('affix-top') ) {
$headerWrapper.removeClass('affix-wrapper affix-bottom-wrapper').addClass('affix-top-wrapper');
} else if ( $header.hasClass('affix') ) {
$headerWrapper.removeClass('affix-top-wrapper affix-bottom-wrapper').addClass('affix-wrapper');
} else if ( $header.hasClass('affix-bottom') ) {
$headerWrapper.removeClass('affix-wrapper affix-top-wrapper').addClass('affix-bottom-wrapper');
} else {
$headerWrapper.removeClass('affix-wrapper affix-top-wrapper affix-bottom-wrapper');
}
});
//if header has different height on afixed and affixed-top positions - correcting wrapper height
jQuery($header).on('affixed-top.bs.affix', function () {
// $headerWrapper.css({height: $header.outerHeight()});
});
jQuery($header).affix({
offset: {
top: headerOffset,
bottom: 0
}
});
}
////////////////
//owl carousel//
////////////////
if (jQuery().owlCarousel) {
jQuery('.owl-carousel').each(function() {
var $carousel = jQuery(this);
var data = $carousel.data();
var loop = data.loop ? data.loop : false;
var margin = (data.margin || data.margin === 0) ? data.margin : 30;
var nav = data.nav ? data.nav : false;
var dots = data.dots ? data.dots : false;
var themeClass = data.themeclass ? data.themeclass : 'owl-theme';
var center = data.center ? data.center : false;
var items = data.items ? data.items : 4;
var autoplay = data.autoplay ? data.autoplay : false;
var responsiveXs = data.responsiveXs ? data.responsiveXs : 1;
var responsiveSm = data.responsiveSm ? data.responsiveSm : 2;
var responsiveMd = data.responsiveMd ? data.responsiveMd : 3;
var responsiveLg = data.responsiveLg ? data.responsiveLg : 4;
var responsiveXl = data.responsiveXl ? data.responsiveXl : 4;
var filters = data.filters ? data.filters : false;
if (filters) {
$carousel.clone().appendTo($carousel.parent()).addClass( filters.substring(1) + '-carousel-original' );
jQuery(filters).on('click', 'a', function( e ) {
//processing filter link
e.preventDefault();
var $thisA = jQuery(this);
if ($thisA.hasClass('selected')) {
return;
}
var filterValue = $thisA.attr('data-filter');
$thisA.siblings().removeClass('selected active');
$thisA.addClass('selected active');
//removing old items
$carousel.find('.owl-item').length;
for (var i = $carousel.find('.owl-item').length - 1; i >= 0; i--) {
$carousel.trigger('remove.owl.carousel', [1]);
};
//adding new items
var $filteredItems = jQuery($carousel.next().find(' > ' +filterValue).clone());
$filteredItems.each(function() {
$carousel.trigger('add.owl.carousel', jQuery(this));
});
$carousel.trigger('refresh.owl.carousel');
});
} //filters
$carousel.owlCarousel({
loop: loop,
margin: margin,
nav: nav,
autoplay: autoplay,
dots: dots,
themeClass: themeClass,
center: center,
items: items,
responsive: {
0:{
items: responsiveXs
},
767:{
items: responsiveSm
},
992:{
items: responsiveMd
},
1200:{
items: responsiveLg
},
1400:{
items: responsiveXl
}
},
})
.addClass(themeClass);
if(center) {
$carousel.addClass('owl-center');
}
$window.on('resize', function() {
$carousel.trigger('refresh.owl.carousel');
});
});
} //eof owl-carousel
//appear plugin is used to elements animation, counter, pieChart, bootstrap progressbar
if (jQuery().appear) {
//animation to elements on scroll
jQuery('.to_animate').appear();
jQuery('.to_animate').filter(':appeared').each(function(index){
initAnimateElement(jQuery(this), index);
});
$body.on('appear', '.to_animate', function(e, $affected ) {
jQuery($affected).each(function(index){
initAnimateElement(jQuery(this), index);
});
});
//counters init on scroll
if (jQuery().countTo) {
jQuery('.counter').appear();
jQuery('.counter').filter(':appeared').each(function(){
initCounter(jQuery(this));
});
$body.on('appear', '.counter', function(e, $affected ) {
jQuery($affected).each(function(){
initCounter(jQuery(this));
});
});
}
//bootstrap animated progressbar
if (jQuery().progressbar) {
jQuery('.progress .progress-bar').appear();
jQuery('.progress .progress-bar').filter(':appeared').each(function(){
initProgressbar(jQuery(this));
});
$body.on('appear', '.progress .progress-bar', function(e, $affected ) {
jQuery($affected).each(function(){
initProgressbar(jQuery(this));
});
});
//animate progress bar inside bootstrap tab
jQuery('a[data-toggle="tab"]').on('shown.bs.tab', function(e) {
initProgressbar(jQuery(jQuery(e.target).attr('href')).find('.progress .progress-bar'));
});
//animate progress bar inside bootstrap dropdown
jQuery('.dropdown').on('shown.bs.dropdown', function(e) {
initProgressbar(jQuery(this).find('.progress .progress-bar'));
});
}
//circle progress bar
if (jQuery().easyPieChart) {
jQuery('.chart').appear();
jQuery('.chart').filter(':appeared').each(function(){
initChart(jQuery(this));
});
$body.on('appear', '.chart', function(e, $affected ) {
jQuery($affected).each(function(){
initChart(jQuery(this));
});
});
}
} //appear check
//video images preview - from WP
jQuery('.embed-placeholder').each(function(){
jQuery(this).on('click', function(e) {
var $thisLink = jQuery(this);
// if prettyPhoto popup with YouTube - return
if ($thisLink.attr('data-gal')) {
return;
}
e.preventDefault();
if ($thisLink.attr('href') === '' || $thisLink.attr('href') === '#') {
$thisLink.replaceWith($thisLink.data('iframe').replace(/&/g, '&').replace(/$lt;/g, '<').replace(/>/g, '>').replace(/$quot;/g, '"')).trigger('click');
} else {
$thisLink.replaceWith('<iframe class="embed-responsive-item" src="'+ $thisLink.attr('href') + '?rel=0&autoplay=1'+ '"></iframe>');
}
});
});
//Unyson or other messages modal
var $messagesModal = jQuery('#messages_modal');
if ($messagesModal.find('ul').length) {
$messagesModal.modal('show');
}
//page preloader
jQuery(".preloader").fadeOut(350);
}//eof windowLoadInit
$window.on('load', function(){
windowLoadInit();
}); //end of "window load" event
$window.on('resize', function(){
var $header = jQuery('.page_header').first();
//checking document scrolling position
if ($header.length && !jQuery(document).scrollTop() && $header.first().data('bs.affix')) {
$header.first().data('bs.affix').options.offset.top = $header.offset().top;
}
if (!$header.closest('.boxed').length) {
jQuery(".page_header_wrapper").css({height: $header.first().outerHeight()}); //editing header wrapper height for smooth stick and unstick
}
});
//end of IIFE function
})();