(function($) {
"use strict";
jQuery(document).ready(function($){
//Anomation at load -----------------
Pace.on('done', function(event) {
});//Pace
//Scroll to top
$(".ql_scroll_top").click(function() {
$("html, body").animate({ scrollTop: 0 }, "slow");
return false;
});
/*Woocommerce Cart
------------------------------------------------*/
//Add to cart animation
$("body").on('click', '.product .add_to_cart_button:not(.product_type_variable)', function(event) {
event.preventDefault();
//Doesn't animate on mobile
if ($(window).width() > 480) {
var ql_isbig = false;
if ($(".ql_products_big").length > 0) {
var $imageToMove = $(this).parents(".product").find(".product_thumbnail_wrap").children("img");
ql_isbig = true;
}else{
var $imageToMove = $(this).parents(".product_thumbnail_wrap").children("img");
}
//if has a second iamge then select that one.
if ($imageToMove.length > 1 && ql_isbig == false) {
$imageToMove = $imageToMove.eq(1);
}else{
$imageToMove = $imageToMove.eq(0);
}
var $parentImage = $imageToMove.parent();
var test = $imageToMove.offset();
var test_width = $imageToMove.width();
//Clon the image to apply changes to that.
var $clonedImage = $imageToMove.clone();
$clonedImage.appendTo("body");
//Position the image in the right place
$clonedImage.css({
position: 'absolute',
top: test.top,
left: test.left
});
$clonedImage.width(test_width);
//get the cart position
var cart_pos = $(".ql_cart-btn i").offset();
//Start animation
$clonedImage.addClass('ql_item_moving');
$("body").addClass('ql_adding_tocart');
setTimeout(function(){ $("body").removeClass('ql_adding_tocart'); $clonedImage.remove(); }, 2500);
$clonedImage.css({
top: cart_pos.top - 40,
left: cart_pos.left
});
$clonedImage.width(25);
};
});//on click add to cart
/*
// WooCommerce Carousel
//===========================================================
*/
//Carousel for Single WooCommerce images
var ql_owl_woo = $('.ql_main_images');
ql_owl_woo.owlCarousel({
center: true,
items: 1,
loop: false,
margin:10
});
var $ql_woo_thumbnails = $(".ql_thumbnail_column a");
//Change thumbnails state on slider change
ql_owl_woo.on('changed.owl.carousel', function(event) {
var item = event.item.index;
$ql_woo_thumbnails.removeClass("current");
$ql_woo_thumbnails.eq(item).addClass("current");
})
//WooCommerce thumbnails
$ql_woo_thumbnails.on('click', function(event) {
event.preventDefault();
});
$ql_woo_thumbnails.hover(function() {
$ql_woo_thumbnails.removeClass("current");
$(this).addClass("current");
ql_owl_woo.trigger('to.owl.carousel', $(this).index());
});
//Prev and Next buttons
$(".ql_main_images_btn.ql_next").on('click', function(event) {
event.preventDefault();
ql_owl_woo.trigger('next.owl.carousel');
});
$(".ql_main_images_btn.ql_prev").on('click', function(event) {
event.preventDefault();
ql_owl_woo.trigger('prev.owl.carousel');
});
//PhotoSwipe for WooCommerce Images
initPhotoSwipe('.ql_main_images', 'img', ql_owl_woo);
/*
//===========================================================
*/
/*
// WooCommerce Custom Variations
//===========================================================
*/
$(".variations").after('
');
//Create custom variations
$(".variations tr").each(function(index, el) {
var $select = $(this).find("select");
var ul = $("");
var div_variation = $('');
var select_id = $select.attr('id');
ul.attr('id', 'ql_' + select_id);
ul.attr('class', 'ql_select_id');
//If the variation is color
if (select_id.indexOf("color") > -1) {
ul.addClass("ql_color_variation");
};
$select.find('option').each(function(index_option, el_option) {
var current_value = $(this).attr('value');
if (current_value != '') {
var li = $("");
var a = $("");
a.attr('data-value', current_value);
a.text($(this).text());
//If the variation is color
if (select_id.indexOf("color") > -1) {
a.prepend($('').css('background-color', current_value).addClass("ql_" + current_value));
};
li.append(a);
ul.append(li);
};
});
div_variation.append($("").text($(el).find(".label").text()));
div_variation.append(ul);
$(".ql_custom_variations").append(div_variation);
});
$('body').on('click', ".ql_custom_variation ul li a", function(event) {
event.preventDefault();
var option_val = $(this).attr('data-value');
var slect_id = $(this).parents(".ql_select_id").attr('id');;
slect_id = slect_id.replace("ql_", "");
$("#"+slect_id).val(option_val);
$("#"+slect_id).change();
$(this).parents(".ql_select_id").find("a").removeClass("current");
$(this).addClass("current");
});
/*
//===========================================================
*/
$(".collapse").collapse({
toggle: false,
parent: ".panel-group"
})
//Accordion Icons (+ & -) Bootstrap-------------->
$("body").on('hidden.bs.collapse', '.accordion .collapse', function(event) {
var $a_i = $(this).prev().find(".accordion-toggle").children("i");
$a_i.removeClass("fa-minus").addClass("fa-plus");
});
$("body").on('show.bs.collapse', '.accordion .collapse', function(event) {
var $a_i = $(this).prev().find(".accordion-toggle").children("i");
$a_i.removeClass("fa-plus").addClass("fa-minus");
});
//End Accordion Icons (+ & -) Bootstrap--------------<
$('.dropdown-toggle').dropdown();
//Tabs for Bootstrap-------------->
$("body").on('click', '.ql_tabs a', function(e) {
e.preventDefault();
$(this).tab('show');
});
//Nav Menu for Bootstrap-------------->
// $(".jqueryslidemenu ul.nav > li .children, .jqueryslidemenu ul.nav > li .sub-menu").each(function(index) {
// $(this).parent("li").addClass("dropdown");
// $(this).prev("a").addClass("dropdown-toggle").attr('data-toggle', 'dropdown').append('');
// $(this).addClass("dropdown-menu");
// });
//Nav Menu for Bootstrap-------------->
//Tooltips
$("*[rel^='tooltip']").tooltip();
$('*[data-toggle="tooltip"]').tooltip();
//Quick Contact Form styling
$(".quick_contact input").click(function(){
$(this).parent().removeClass('has-error');
});
//Sidebar Menu Function
$('#sidebar .widget ul:not(.product-categories) li ul').parent().addClass('hasChildren').append("");
var children;
$("#sidebar .widget ul:not(.product-categories) li").hoverIntent(
function () {
children = $(this).children("ul");
if($(children).length > 0){ $(children).stop(true, true).slideDown('fast'); }
},
function () {
$(this).children('ul').stop(true, true).slideUp(500);
}
);
//Footer Menu Function
$('footer .widget ul:not(.product-categories) li ul').parent().addClass('hasChildren').append("");
var children;
$("footer .widget ul:not(.product-categories) li").hoverIntent(
function () {
children = $(this).children("ul");
if($(children).length > 0){ $(children).stop(true, true).slideDown('fast'); }
},
function () {
$(this).children('ul').stop(true, true).slideUp(500);
}
);
$(".wpcf7 input").on('focus', function(event) {
$(this).removeClass("wpcf7-not-valid");
});
//Nav Menu for Bootstrap-------------->
$(".jqueryslidemenu > ul > li .children").each(function(index) {
$(this).parent("li").addClass("dropdown");
$(this).prev("a").addClass("dropdown-toggle").attr('data-toggle', 'dropdown').append('');
$(this).addClass("dropdown-menu");
});
//Nav Menu for Bootstrap-------------->
});//Dom ready
})(jQuery);
function stringToBoolean(string){
switch(string.toLowerCase()){
case "true": case "yes": case "1": return true;
case "false": case "no": case "0": case null: return false;
default: return Boolean(string);
}
}
function scrollToElement(selector, time, verticalOffset) {
time = typeof(time) != 'undefined' ? time : 1000;
verticalOffset = typeof(verticalOffset) != 'undefined' ? verticalOffset : 0;
element = jQuery(selector);
offset = element.offset();
offsetTop = offset.top + verticalOffset;
jQuery('html, body').animate({
scrollTop: offsetTop
}, time);
}
//Debounce Function
function debounce(func, wait, immediate) {
var timeout;
return function() {
var context = this, args = arguments;
var later = function() {
timeout = null;
if (!immediate) func.apply(context, args);
};
var callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, wait);
if (callNow) func.apply(context, args);
};
};