"use strict";
//hidding menu elements that do not fit in menu width
//processing center logo
function menuHideExtraElements() {
//cleaneng changed elements
jQuery('.sf-more-li, .sf-logo-li').remove();
var $menuWraper = jQuery('.mainmenu_wrapper');
$menuWraper.attr('style', '');
var windowWidth = jQuery('body').innerWidth();
if (windowWidth > 991) {
//grab all main menu first level items
var $menuLis = $menuWraper.find('.sf-menu > li');
$menuLis.removeClass('sf-md-hidden');
var $headerLogoCenter = jQuery('.header_logo_center');
var logoWidth = 0;
var summaryLiWidth = 0;
if ( $headerLogoCenter.length ) {
var $logo = $headerLogoCenter.find('.logo')
logoWidth = $logo.outerWidth(true);
}
// var wrapperWidth = jQuery('.sf-menu').width();
var wrapperWidth = $menuWraper.outerWidth(true);
$menuLis.each(function(index) {
var elementWidth = jQuery(this).outerWidth();
summaryLiWidth += elementWidth;
if(summaryLiWidth >= (wrapperWidth-logoWidth)) {
var $newLi = jQuery('
Search cannot be done. You need PHP server to search.
');
})
});
//MailChimp subscribe form processing
jQuery('.signup').on('submit', function( e ) {
e.preventDefault();
var $form = jQuery(this);
// update user interface
$form.find('.response').html('Adding email address...');
// Prepare query string and send AJAX request
jQuery.ajax({
url: 'mailchimp/store-address.php',
data: 'ajax=true&email=' + escape($form.find('.mailchimp_email').val()),
success: function(msg) {
$form.find('.response').html(msg);
}
});
});
//twitter
if (jQuery().tweet) {
jQuery('.twitter').tweet({
modpath: "./twitter/",
count: 2,
avatar_size: 48,
loading_text: 'loading twitter feed...',
join_text: 'auto',
username: 'ThemeForest',
template: "{avatar}"
});
}
//adding CSS classes for elements that needs different styles depending on they widht width
//see 'plugins.js' file
jQuery('#mainteasers .col-lg-4').addWidthClass({
breakpoints: [500, 600]
});
//background image teaser
jQuery(".bg_teaser").each(function(){
var $teaser = jQuery(this);
var imagePath = $teaser.find("img").first().attr("src");
$teaser.css("background-image", "url(" + imagePath + ")");
if (!$teaser.find('.bg_overlay').length) {
$teaser.prepend(''
});
}
}
Spectra.init();
// color for placeholder of select elements
jQuery(".choice").on('change', function () {
var selectInp = jQuery(this);
if (selectInp.val() === "") {
selectInp.addClass("empty");
} else {
selectInp.removeClass("empty");
}
});
jQuery(".choice").change();
}//eof documentReadyInit
//function that initiating template plugins on window.load event
function windowLoadInit() {
//chart
pieChart();
//flexslider
if (jQuery().flexslider) {
var $introSlider = jQuery(".intro_section .flexslider");
$introSlider.each(function(index){
var $currentSlider = jQuery(this);
$currentSlider.flexslider({
animation: "fade",
pauseOnHover: true,
useCSS: true,
controlNav: false,
directionNav: true,
prevText: "",
nextText: "",
smoothHeight: false,
slideshowSpeed:10000,
animationSpeed:1200,
start: function( slider ) {
slider.find('.slide_description').children().css({'visibility': 'hidden'});
slider.find('.flex-active-slide .slide_description').children().each(function(index){
var self = jQuery(this);
var animationClass = !self.data('animation') ? 'fadeInRight' : self.data('animation');
setTimeout(function(){
self.addClass("animated "+animationClass);
}, index*200);
});
},
after :function( slider ){
slider.find('.flex-active-slide .slide_description').children().each(function(index){
var self = jQuery(this);
var animationClass = !self.data('animation') ? 'fadeInRight' : self.data('animation');
setTimeout(function(){
self.addClass("animated "+animationClass);
}, index*200);
});
},
end :function( slider ){
slider.find('.slide_description').children().each(function() {
var self = jQuery(this);
var animationClass = !self.data('animation') ? 'fadeInRight' : self.data('animation');
self.removeClass('animated ' + animationClass).css({'visibility': 'hidden'});
// jQuery(this).attr('class', '');
});
},
})
//wrapping nav with container
.find('.flex-control-nav')
.wrap('
')
}); //intro_section flex slider
jQuery(".flexslider").each(function(index){
var $currentSlider = jQuery(this);
//exit if intro slider already activated
if ($currentSlider.find('.flex-active-slide').length) {
return;
}
$currentSlider.flexslider({
animation: "fade",
useCSS: true,
controlNav: true,
directionNav: false,
prevText: "",
nextText: "",
smoothHeight: false,
slideshowSpeed:5000,
animationSpeed:800,
})
});
}
////////////////////
//header processing/
////////////////////
//stick header to top
//wrap header with div for smooth sticking
var $header = jQuery('.page_header').first();
if ($header.length) {
//hiding main menu 1st levele elements that do not fit width
menuHideExtraElements();
//mega menu
initMegaMenu();
var headerHeight = $header.outerHeight();
$header.wrap('').parent().css({height: headerHeight}); //wrap header for smooth stick and unstick
//get offset
var headerOffset = 0;
//check for sticked template headers
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') ) {
$header.parent().removeClass('affix-wrapper affix-bottom-wrapper').addClass('affix-top-wrapper');
} else if ( $header.hasClass('affix') ) {
$header.parent().removeClass('affix-top-wrapper affix-bottom-wrapper').addClass('affix-wrapper');
} else if ( $header.hasClass('affix-bottom') ) {
$header.parent().removeClass('affix-wrapper affix-top-wrapper').addClass('affix-bottom-wrapper');
} else {
$header.parent().removeClass('affix-wrapper affix-top-wrapper affix-bottom-wrapper');
}
menuHideExtraElements();
initMegaMenu();
});
//if header has different height on afixed and affixed-top positions - correcting wrapper height
jQuery($header).on('affixed-top.bs.affix', function () {
$header.parent().css({height: $header.outerHeight()});
});
jQuery($header).affix({
offset: {
top: headerOffset,
bottom: 0
}
});
}
//aside affix
affixSidebarInit();
jQuery('body').scrollspy('refresh');
//animation to elements on scroll
if (jQuery().appear) {
jQuery('.to_animate').appear();
jQuery('.to_animate').filter(':appeared').each(function(index){
var self = jQuery(this);
var animationClass = !self.data('animation') ? 'fadeInUp' : self.data('animation');
var animationDelay = !self.data('delay') ? 210 : self.data('delay');
setTimeout(function(){
self.addClass("animated " + animationClass);
}, index * animationDelay);
});
jQuery('body').on('appear', '.to_animate', function(e, $affected ) {
jQuery($affected).each(function(index){
var self = jQuery(this);
var animationClass = !self.data('animation') ? 'fadeInUp' : self.data('animation');
var animationDelay = !self.data('delay') ? 210 : self.data('delay');
setTimeout(function(){
self.addClass("animated " + animationClass);
}, index * animationDelay);
});
});
//counters init on scroll
jQuery('.counter').appear();
jQuery('.counter').filter(':appeared').each(function(index){
if (jQuery(this).hasClass('counted')) {
return;
} else {
jQuery(this).countTo().addClass('counted');
}
});
jQuery('body').on('appear', '.counter', function(e, $affected ) {
jQuery($affected).each(function(index){
if (jQuery(this).hasClass('counted')) {
return;
} else {
jQuery(this).countTo().addClass('counted');
}
});
});
//bootstrap animated progressbar
if (jQuery().progressbar) {
jQuery('.progress .progress-bar').appear();
jQuery('.progress .progress-bar').filter(':appeared').each(function(index){
jQuery(this).progressbar({
transition_delay: 300
});
});
jQuery('body').on('appear', '.progress .progress-bar', function(e, $affected ) {
jQuery($affected).each(function(index){
jQuery(this).progressbar({
transition_delay: 300
});
});
});
//animate progress bar inside bootstrap tab
jQuery('a[data-toggle="tab"]').on('shown.bs.tab', function(e) {
jQuery(jQuery(e.target).attr('href')).find('.progress .progress-bar').progressbar({
transition_delay: 300
});
});
}
} //appear check
//flickr
// use http://idgettr.com/ to find your ID
if (jQuery().jflickrfeed) {
var $flickr = jQuery("#flickr, .flickr_ul");
if ( $flickr.length ) {
if ( ! ( $flickr.hasClass('flickr_loaded') ) ) {
$flickr.jflickrfeed({
flickrbase: "http://api.flickr.com/services/feeds/",
limit: 8,
qstrings: {
id: "131791558@N04"
},
itemTemplate: '

'
}, function(data) {
$flickr.find('a').prettyPhoto({
hook: 'data-gal',
theme: 'facebook'
});
}).addClass('flickr_loaded');
}
}
}
//video images preview - from WP
jQuery('.embed-placeholder').each(function(){
jQuery(this).on('click', function(e) {
e.preventDefault();
var $thisLink = jQuery(this);
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('
');
}
});
});
// init Isotope
jQuery('.isotope_container').each(function(index) {
var $container = jQuery(this);
var layoutMode = ($container.hasClass('masonry-layout')) ? 'masonry' : 'fitRows';
$container.isotope({
percentPosition: true,
layoutMode: layoutMode,
masonry: {}
});
var $filters = jQuery(this).attr('data-filters') ? jQuery(jQuery(this).attr('data-filters')) : $container.prev().find('.filters');
// bind filter click
if ($filters.length) {
$filters.on( 'click', 'a', function( e ) {
e.preventDefault();
var filterValue = jQuery( this ).attr('data-filter');
$container.isotope({ filter: filterValue });
jQuery(this).siblings().removeClass('selected active');
jQuery(this).addClass('selected active');
});
}
});
if (jQuery('.isotope_container').length) {
jQuery(window).on('resize', function () {
setTimeout(function () {
jQuery(window).trigger('resize');
}, 300);
});
}
//Unyson or other messages modal
var $messagesModal = jQuery('#messages_modal');
if ($messagesModal.find('ul').length) {
$messagesModal.modal('show');
}
//page preloader
jQuery(".preloaderimg").fadeOut();
jQuery(".preloader").delay(200).fadeOut("slow").delay(200, function(){
jQuery(this).remove();
});
}//eof windowLoadInit
jQuery(document).ready( function() {
documentReadyInit();
}); //end of "document ready" event
jQuery(window).on('load', function(){
windowLoadInit();
//Google Map script
var $googleMaps = jQuery('#map, .page_map');
if ( $googleMaps.length ) {
$googleMaps.each(function() {
var $map = jQuery(this);
var lat;
var lng;
var map;
//map styles. You can grab different styles on https://snazzymaps.com/
var styles = [{"featureType":"administrative","elementType":"labels.text.fill","stylers":[{"color":"#444444"}]},{"featureType":"landscape","elementType":"all","stylers":[{"color":"#f2f2f2"}]},{"featureType":"poi","elementType":"all","stylers":[{"visibility":"off"}]},{"featureType":"road","elementType":"all","stylers":[{"saturation":-100},{"lightness":45}]},{"featureType":"road.highway","elementType":"all","stylers":[{"visibility":"simplified"}]},{"featureType":"road.arterial","elementType":"labels.icon","stylers":[{"visibility":"off"}]},{"featureType":"transit","elementType":"all","stylers":[{"visibility":"off"}]},{"featureType":"water","elementType":"all","stylers":[{"color":"#46bcec"},{"visibility":"on"}]}];
//map settings
var address = $map.data('address') ? $map.data('address') : 'london, baker street, 221b';
var markerDescription = $map.find('.map_marker_description').prop('outerHTML');
//if you do not provide map title inside #map (.page_map) section inside H3 tag - default titile (Map Title) goes here:
var markerTitle = $map.find('h3').first().text() ? $map.find('h3').first().text() : 'Map Title';
var markerIconSrc = $map.find('.map_marker_icon').first().attr('src');
//type your address after "address="
jQuery.getJSON('http://maps.googleapis.com/maps/api/geocode/json?address=' + address, function(data) {
lat = data.results[0].geometry.location.lat;
lng = data.results[0].geometry.location.lng;
}).complete(function(){
var center = new google.maps.LatLng(lat, lng);
var settings = {
mapTypeId: google.maps.MapTypeId.ROADMAP,
zoom: 16,
draggable: false,
scrollwheel: false,
center: center,
styles: styles
};
map = new google.maps.Map($map[0], settings);
var marker = new google.maps.Marker({
position: center,
title: markerTitle,
map: map,
icon: markerIconSrc,
});
var infowindow = new google.maps.InfoWindow({
content: markerDescription
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map,marker);
});
});
}); //each
}//google map length
}); //end of "window load" event
jQuery(window).on('resize', function(){
jQuery('body').scrollspy('refresh');
//header processing
menuHideExtraElements();
initMegaMenu();
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;
}
jQuery(".page_header_wrapper").css({height: $header.first().outerHeight()}); //editing header wrapper height for smooth stick and unstick
});
jQuery(window).scroll(function() {
//circle progress bar
pieChart();
});