/** * @Website: apollotheme.com - prestashop template provider * @author Apollotheme * @copyright Apollotheme * @description: */ /** * Start block functions common for front-end */ (function ($) { $.LeoCustomAjax = function () { this.leoData = 'leoajax=1'; }; $.LeoCustomAjax.prototype = { processAjax: function () { var myElement = this; if (leoOption.category_qty && $(".leo-qty").length) myElement.getCategoryList(); else if ($(".leo-qty").length) $(".leo-qty").remove(); if (leoOption.product_list_image && $(".leo-more-info").length) myElement.getProductListImage(); else if ($(".leo-more-info").length) $(".leo-more-info").remove(); if (leoOption.product_one_img && $(".product-additional").length) myElement.getProductOneImage(); else if ($(".product-additional").length) $(".product-additional").remove(); if (leoOption.product_one_img && $(".product-attribute-additional").length) myElement.getProductAttributeOneImage(); else if ($(".product-attribute-additional").length) $(".product-attribute-additional").remove(); if (leoOption.product_one_img && $(".product-all-additional").length) myElement.getProductAllOneImage(); else if ($(".product-all-additional").length) $(".product-all-additional").remove(); if (leoOption.productCdown && $(".leo-more-cdown").length) myElement.getProductCdownInfo(); else if ($(".leo-more-cdown").length) $(".leo-more-cdown").remove(); if (leoOption.productCdown && $(".leo-more-color").length) myElement.getProductColorInfo(); else if ($(".leo-more-color").length) $(".leo-more-color").remove(); if($(".product-item-size").length) myElement.getSizeContent(); if($(".product-item-attribute").length) myElement.getAttributeContent(); if($(".product-item-manufacture").length) myElement.getManufactureName(); if($(".leo-ajax-tabs").length) myElement.getTabContent(); //find class ap-count-wishlist-compare if($('.ap-total-wishlist').length || $('.ap-total-compare').length) { myElement.getCountWishlistCompare(); } if (myElement.leoData != "leoajax=1") { $.ajax({ type: 'POST', headers: {"cache-control": "no-cache"}, url: prestashop.urls.base_url + 'modules/appagebuilder/apajax.php' + '?rand=' + new Date().getTime(), async: true, cache: false, dataType: "json", data: myElement.leoData, success: function (jsonData) { if (jsonData) { if (jsonData.cat) { for (i = 0; i < jsonData.cat.length; i++) { var str = jsonData.cat[i].total; var label = $(".leo-qty.leo-cat-" + jsonData.cat[i].id_category).data("str"); if(typeof label != "undefined") { str += "" + label + ""; } $(".leo-qty.leo-cat-" + jsonData.cat[i].id_category).html(str); $(".leo-qty.leo-cat-" + jsonData.cat[i].id_category).show(); } $('.leo-qty').each(function(){ if($(this).html() == '') { $(this).html('0'); $(this).show(); } }) } if (jsonData.product_list_image) { var listProduct = new Array(); for (i = 0; i < jsonData.product_list_image.length; i++) { listProduct[jsonData.product_list_image[i].id] = jsonData.product_list_image[i].content; } $(".leo-more-info").each(function () { $(this).html(listProduct[$(this).data("idproduct")]); }); addEffectProducts(); } if (jsonData.pro_cdown) { var listProduct = new Array(); for (i = 0; i < jsonData.pro_cdown.length; i++) { listProduct[jsonData.pro_cdown[i].id] = jsonData.pro_cdown[i].content; } $(".leo-more-cdown").each(function () { $(this).html(listProduct[$(this).data("idproduct")]); }); } if (jsonData.pro_color) { var listProduct = new Array(); for (i = 0; i < jsonData.pro_color.length; i++) { listProduct[jsonData.pro_color[i].id] = jsonData.pro_color[i].content; } $(".leo-more-color").each(function () { $(this).html(listProduct[$(this).data("idproduct")]); }); } if (jsonData.product_one_img) { var listProductImg = new Array(); var listProductName = new Array(); for (i = 0; i < jsonData.product_one_img.length; i++) { listProductImg[jsonData.product_one_img[i].id] = jsonData.product_one_img[i].content; listProductName[jsonData.product_one_img[i].id] = jsonData.product_one_img[i].name; } iw = 360; ih = 360; if (typeof leoOption.homeWidth !== 'undefined') { iw = leoOption.homeWidth; ih = leoOption.homeheight; }else{ iw = $('.product_img_link .img-fluid').first().attr('width'); ih = $('.product_img_link .img-fluid').first().attr('height'); } $(".product-additional").each(function () { if (listProductImg[$(this).data("idproduct")]) { var str_image = listProductImg[$(this).data("idproduct")]; if ($(this).data("image-type")) { src_image = str_image.replace('home_default',$(this).data("image-type")); }else{ src_image = str_image.replace('home_default', 'home_default'); } var name_image = listProductName[$(this).data("idproduct")]; $(this).html(''+name_image+''); } }); //addEffOneImg(); } if (jsonData.product_attribute_one_img) { var listProductImg = new Array(); var listProductName = new Array(); for (i = 0; i < jsonData.product_attribute_one_img.length; i++) { listProductImg[jsonData.product_attribute_one_img[i].id] = jsonData.product_attribute_one_img[i].content; listProductName[jsonData.product_attribute_one_img[i].id] = jsonData.product_attribute_one_img[i].name; } iw = 360; ih = 360; if (typeof leoOption.homeWidth !== 'undefined') { iw = leoOption.homeWidth; ih = leoOption.homeheight; }else{ iw = $('.product_img_link .img-fluid').first().attr('width'); ih = $('.product_img_link .img-fluid').first().attr('height'); } $(".product-attribute-additional").each(function () { if (listProductImg[$(this).closest('.js-product-miniature').data("id-product")]) { var str_image = listProductImg[$(this).closest('.js-product-miniature').data("id-product")]; if ($(this).data("image-type")) { src_image = str_image.replace('home_default',$(this).data("image-type")); }else{ src_image = str_image.replace('home_default', 'home_default'); } var name_image = listProductName[$(this).closest('.js-product-miniature').data("id-product")]; $(this).html(''+name_image+''); } }); //addEffOneImg(); } if (jsonData.product_attribute) { if (typeof jsonData.product_attribute.attribute !== 'undefined') { $.each( jsonData.product_attribute.attribute, function( key, value ) { $('.product-attribute-'+key).html(value); $('.product-attribute-'+key).removeClass('product-item-attribute'); }); } if (typeof jsonData.product_attribute.size !== 'undefined') { $.each( jsonData.product_attribute.size, function( key, value ) { $('.product-size-'+key).html(value); $('.product-size-'+key).removeClass('product-item-size'); }); } } if (jsonData.product_manufacture) { $.each( jsonData.product_manufacture, function( key, value ) { $('.product-manufacture-'+key).html(value); $('.product-manufacture-'+key).removeClass('product-item-manufacture'); }); } if (jsonData.product_all_one_img) { var listProductImg = new Array(); var listProductName = new Array(); for (i = 0; i < jsonData.product_all_one_img.length; i++) { listProductImg[jsonData.product_all_one_img[i].id] = jsonData.product_all_one_img[i].content; listProductName[jsonData.product_all_one_img[i].id] = jsonData.product_all_one_img[i].name; } iw = 360; ih = 360; if (typeof leoOption.homeWidth !== 'undefined') { iw = leoOption.homeWidth; ih = leoOption.homeheight; }else{ iw = $('.product_img_link .img-fluid').first().attr('width'); ih = $('.product_img_link .img-fluid').first().attr('height'); } $(".product-all-additional").each(function () { if (listProductImg[$(this).closest('.js-product-miniature').data("id-product")]) { var str_image = listProductImg[$(this).closest('.js-product-miniature').data("id-product")]; if ($(this).data("image-type")) { src_image = str_image.replace('home_default',$(this).data("image-type")); }else{ src_image = str_image.replace('home_default', 'home_default'); } var name_image = listProductName[$(this).closest('.js-product-miniature').data("id-product")]; $(this).html(''+name_image+''); } }); //addEffOneImg(); } //wishlist if (jsonData.wishlist_products) { $('.ap-total-wishlist').data('wishlist-total',jsonData.wishlist_products); $('.ap-total-wishlist').text(jsonData.wishlist_products); } else { $('.ap-total-wishlist').data('wishlist-total',0); $('.ap-total-wishlist').text('0'); } //compare if (jsonData.compared_products) { $('.ap-total-compare').data('compare-total',jsonData.compared_products); $('.ap-total-compare').text(jsonData.compared_products); } else { $('.ap-total-compare').data('compare-total',0); $('.ap-total-compare').text(0); } if (jsonData.ajaxTab) { callshowmore = callajaxcontent = 0; $(".leo-ajax-tabs").addClass('loaded'); $.each( jsonData.ajaxTab, function( key, value ) { $("#"+key).html(value); if(value.indexOf('ApProductList') >= 0){ callshowmore = 1; } if(value.indexOf('product_list') >= 0){ callajaxcontent = 1; } }); if(callshowmore){ apshowmore(); } if(callajaxcontent){ if (typeof $.LeoCustomAjax !== "undefined" && $.isFunction($.LeoCustomAjax)) { var leoCustomAjax = new $.LeoCustomAjax(); leoCustomAjax.processAjax(); } //DONGND:: class function of leofeature callLeoFeature(); //DONGND:: re call run animation activeAnimation(); } } } }, error: function () { } }); } }, //check get number product of wishlist compare getCountWishlistCompare: function() { this.leoData += '&wishlist_compare=1'; }, getCategoryList: function () { //get category id var leoCatList = ""; $(".leo-qty").each(function () { if($(this).data("id")){ if (leoCatList) leoCatList += "," + $(this).data("id"); else leoCatList = $(this).data("id"); }else{ if (leoCatList) leoCatList += "," + $(this).attr("id"); else leoCatList = $(this).attr("id"); } }); if (leoCatList) { leoCatList = leoCatList.replace(/leo-cat-/g, ""); this.leoData += '&cat_list=' + leoCatList; } return false; }, getProductListImage: function () { var leoProInfo = ""; $(".leo-more-info").each(function () { if (!leoProInfo) leoProInfo += $(this).data("idproduct"); else leoProInfo += "," + $(this).data("idproduct"); }); if (leoProInfo) { this.leoData += '&product_list_image=' + leoProInfo; } return false; }, getProductCdownInfo: function () { var leoProCdown = ""; $(".leo-more-cdown").each(function () { if (!leoProCdown) leoProCdown += $(this).data("idproduct"); else leoProCdown += "," + $(this).data("idproduct"); }); if (leoProCdown) { this.leoData += '&pro_cdown=' + leoProCdown; } return false; }, getProductColorInfo: function () { var leoProColor = ""; $(".leo-more-color").each(function () { if (!leoProColor) leoProColor += $(this).data("idproduct"); else leoProColor += "," + $(this).data("idproduct"); }); if (leoProColor) { this.leoData += '&pro_color=' + leoProColor; } return false; }, getTabContent: function () { var tabshortcode = ""; var tabshortcodekey = ""; $(".leo-ajax-tabs").each(function () { if(!$(this).hasClass('loaded')){ if (!tabshortcode) tabshortcode += $(this).data("shortcode"); else tabshortcode += "@|@" + $(this).data("shortcode"); if (!tabshortcodekey) tabshortcodekey += $(this).attr("id"); else tabshortcodekey += "@|@" + $(this).attr("id"); if(!$(this).find('slick-loading').length){ $(this).html('
'); } } }); if (tabshortcode) { this.leoData += '&tabshortcode=' + tabshortcode; } if (tabshortcode) { this.leoData += '&tabshortcodekey=' + tabshortcodekey; //get category if (tabshortcode && $('input:radio[name=ajaxtabcate]').length && $('input:radio[name=ajaxtabcate]:checked').val()) { this.leoData += '&ajaxtabcate=' + $('input:radio[name=ajaxtabcate]:checked').val(); } } return false; }, getSizeContent: function () { //tranditional image var leoAdditional = ""; $(".product-item-size").each(function () { if (!leoAdditional) leoAdditional += $(this).data("idproduct"); else leoAdditional += "," + $(this).data("idproduct"); }); if (leoAdditional) { this.leoData += '&product_size=' + leoAdditional; } return false; }, getAttributeContent: function () { //tranditional image var leoAdditional = ""; $(".product-item-attribute").each(function () { if (!leoAdditional) leoAdditional += $(this).data("idproduct"); else leoAdditional += "," + $(this).data("idproduct"); }); if (leoAdditional) { this.leoData += '&product_attribute=' + leoAdditional; } return false; }, getManufactureName: function () { //tranditional image var leoAdditional = ""; var testArray = []; $(".product-item-manufacture").each(function () { if (!leoAdditional){ leoAdditional += $(this).data("idmanufacturer"); testArray.push($(this).data("idmanufacturer")); } else{ if(testArray.indexOf($(this).data("idmanufacturer")) < 0){ leoAdditional += "," + $(this).data("idmanufacturer"); testArray.push($(this).data("idmanufacturer")); } } }); if (leoAdditional) { this.leoData += '&product_manufacture=' + leoAdditional; } return false; }, getProductOneImage: function () { //tranditional image var leoAdditional = ""; $(".product-additional").each(function () { if (!leoAdditional) leoAdditional += $(this).data("idproduct"); else leoAdditional += "," + $(this).data("idproduct"); }); if (leoAdditional) { this.leoData += '&product_one_img=' + leoAdditional; } return false; }, getProductAttributeOneImage: function () { //tranditional image var leoAdditionalattribute = "0-0"; $(".product-attribute-additional").each(function () { leoAdditionalattribute += "," + $(this).closest('.js-product-miniature').data("id-product") + '-' + $(this).closest('.js-product-miniature').data("id-product-attribute"); }); if (leoAdditionalattribute && leoAdditionalattribute != '0-0') { this.leoData += '&product_attribute_one_img=' + leoAdditionalattribute; } return false; }, getProductAllOneImage: function () { //tranditional image var leoAdditional = "0"; var image_product = "0"; $(".product-all-additional").each(function () { leoAdditional += "," + $(this).closest('.js-product-miniature').data("id-product"); image_product += "," + $(this).data("id-image"); }); if (leoAdditional) { this.leoData += '&product_all_one_img=' + leoAdditional + '&image_product=' + image_product;; } return false; }, }; }(jQuery)); function addJSProduct(currentProduct) { // http://demos.flesler.com/jquery/serialScroll/ // if (typeof serialScroll == 'function') { $('.thumbs_list_' + currentProduct).serialScroll({ items: 'li:visible', prev: '.view_scroll_left_' + currentProduct, next: '.view_scroll_right_' + currentProduct, axis: 'y', offset: 0, start: 0, stop: true, duration: 700, step: 1, lazy: true, lock: false, force: false, cycle: false, onBefore: function( e, elem, $pane, $items, pos ){ //DONGND:: update status for button if( pos == 0 ) { $('.view_scroll_left_' + currentProduct).addClass('disable'); } else if( pos == $items.length -1 ) { $('.view_scroll_right_' + currentProduct).addClass('disable'); } else { $('.view_scroll_left_' + currentProduct).removeClass('disable'); $('.view_scroll_right_' + currentProduct).removeClass('disable'); } }, }); $('.thumbs_list_' + currentProduct).trigger('goto', 1);// SerialScroll Bug on goto 0 ? $('.thumbs_list_' + currentProduct).trigger('goto', 0); // } } function addEffectProducts(){ if(typeof(leoOption) != 'undefined' && leoOption.product_list_image){ $(".leo-more-info").each(function() { addJSProduct($(this).data("idproduct")); }); addEffectProduct(); } } function addEffectProduct() { var speed = 800; var effect = "easeInOutQuad"; //$(".products_block .carousel-inner .ajax_block_product:first-child").mouseenter(function() { //$(".products_block .carousel-inner").css("overflow", "inherit"); //}); //$(".carousel-inner").mouseleave(function() { //$(".carousel-inner").css("overflow", "hidden"); //}); $(".leo-more-info").each(function() { var leo_preview = this; $(leo_preview).find(".leo-hover-image").each(function() { $(this).mouseover(function() { var big_image = $(this).attr("rel"); var imgElement = $(leo_preview).parent().find(".product-thumbnail img").first(); if (!imgElement.length) { imgElement = $(leo_preview).parent().find(".product_image img").first(); } if (imgElement.length) { $(imgElement).stop().animate({opacity: 0}, {duration: speed, easing: effect}); $(imgElement).first().attr("src", big_image); $(imgElement).first().attr("data-rel", big_image); $(imgElement).stop().animate({opacity: 1}, {duration: speed, easing: effect}); } //DONGND:: change class when hover another image if (!$(this).hasClass('shown')) { $(leo_preview).find('.shown').removeClass('shown'); $(this).parent().addClass('shown'); } }); }); $('.thickbox-ajax-'+$(this).data("idproduct")).fancybox({ helpers: { overlay: { locked: false } }, 'hideOnContentClick': true, 'transitionIn' : 'elastic', 'transitionOut' : 'elastic' }); }); } function addEffOneImg() { var speed = 800; var effect = "easeInOutQuad"; $(".product-additional").each(function() { if ($(this).find("img").length) { var leo_hover_image = $(this).parent().find("img").first(); var leo_preview = $(this); $(this).parent().mouseenter(function() { $(this).find("img").first().stop().animate({opacity: 0}, {duration: speed, easing: effect}); $(leo_preview).stop().animate({opacity: 1}, {duration: speed, easing: effect}); }); $(this).parent().mouseleave(function() { $(this).find("img").first().stop().animate({opacity: 1}, {duration: speed, easing: effect}); $(leo_preview).stop().animate({opacity: 0}, {duration: speed, easing: effect}); }); } }); } function log(message) { console.log(message); } //DONGND:: action animation function activeAnimation() { $(".has-animation").each(function() { onScrollInit($(this)); }); } function onScrollInit(items) { items.each(function() { var osElement = $(this); var animation = $(osElement).data("animation"); var osAnimationDelay = $(osElement).data("animation-delay"); var osAnimationDuration = $(osElement).data("animation-duration"); var osAnimationIterationCount = $(osElement).data("animation-iteration-count"); var osAnimationInfinite = $(osElement).data("animation-infinite"); if (osAnimationInfinite == 1) { var loop_animation = 'infinite'; } else { var loop_animation = osAnimationIterationCount; } osElement.css({ "-webkit-animation-delay": osAnimationDelay, "-moz-animation-delay": osAnimationDelay, "animation-delay": osAnimationDelay, "-webkit-animation-duration": osAnimationDuration, "-moz-animation-duration": osAnimationDuration, "animation-duration": osAnimationDuration, "-webkit-animation-iteration-count": loop_animation, "-moz-animation-iteration-count": loop_animation, "animation-iteration-count": loop_animation, }); osElement.waypoint(function() { if (osElement.hasClass('has-animation')) { osElement.addClass('animated '+ animation).one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function(){ $(this).removeClass('has-animation animated ' +animation); }); } this.destroy(); }, { triggerOnce: true, offset: '100%' }); }); } /** * End block functions common for front-end */ /** * End block for module ap_gmap */ function synSize(name) { var obj = $("#" + name); var div = $(obj).closest(".gmap-cover"); var gmap = $(div).find(".gmap"); $(obj).height($(gmap).height()); //console.log($(gmap).height()); } function apshowmore(){ /** * Start block for module ap_product_list */ $(".btn-show-more").click(function() { var page = parseInt($(this).data('page')); var use_animation = parseInt($(this).data('use-animation')); var btn = $(this); var config = $(this).closest(".ApProductList").find(".apconfig").val(); // FIX 1.7 btn.data('reset-text', btn.html() ); btn.html( btn.data('loading-text') ); $.ajax({ headers: {"cache-control": "no-cache"}, url: prestashop.urls.base_url + 'modules/appagebuilder/apajax.php', async: true, cache: false, dataType: "Json", data: {"config": config, "p": page, "use_animation": use_animation}, success: function(response) { var boxCover = $(btn).closest(".box-show-more"); if(!response.is_more) { $(boxCover).removeClass("open").fadeOut(); } if(response.html) { $(boxCover).prev().append(response.html); } $(btn).data("page", (page + 1)); if (typeof $.LeoCustomAjax !== "undefined" && $.isFunction($.LeoCustomAjax)) { var leoCustomAjax = new $.LeoCustomAjax(); leoCustomAjax.processAjax(); } //DONGND:: class function of leofeature callLeoFeature(); //DONGND:: re call run animation activeAnimation(); } }).always(function () { // FIX 1.7 btn.html( btn.data('reset-text') ); }); }); /** * End block for module ap_product_list */ /** * Start block for module ap_image */ /** * End block for module ap_image */ } (function ($) { window.addRule = function (selector, styles, sheet) { styles = (function (styles) { if (typeof styles === "string") return styles; var clone = ""; for (var prop in styles) { if (styles.hasOwnProperty(prop)) { var val = styles[prop]; prop = prop.replace(/([A-Z])/g, "-$1").toLowerCase(); // convert to dash-case clone += prop + ":" + (prop === "content" ? '"' + val + '"' : val) + "; "; } } return clone; }(styles)); try { sheet = sheet || document.styleSheets[document.styleSheets.length - 1]; if (sheet.insertRule) { // if(!(navigator.userAgent.toLowerCase().indexOf('firefox') > -1)) // FIX work on firefox // { if(sheet.cssRules!==null && sheet.cssRules.length!== 0) sheet.insertRule(selector + " {" + styles + "}", sheet.cssRules.length); // } } else if (sheet.addRule) sheet.addRule(selector, styles); } catch(err) { // way 2 : https://stackoverflow.com/questions/28930846/how-to-use-cssstylesheet-insertrule-properly var style = (function() { var style = document.createElement("style"); style.appendChild(document.createTextNode("")); document.head.appendChild(style); return style; })(); style.sheet.insertRule(selector + " {" + styles + "}", 0); } // window.console.log(sheet); // window.console.log(selector); // window.console.log(styles); return this; }; if ($) $.fn.addRule = function (styles, sheet) { addRule(this.selector, styles, sheet); return this; }; }(this.jQuery || this.Zepto)); function apPopupForm(){ if($.cookie('apnewletter')) return; $.fancybox({ 'content' : $(".ap-popup").html(), 'wrapCSS' : 'ap-popup-clone', afterClose: function (event, ui) { }, beforeShow: function (event, ui) { this.inner.append("
"); $("body").find("#turnoff-popup-bt").trigger('click'); $.cookie('apnewletter', '1'); $('.turnoff-popup').addClass('active'); $('.turnoff-popup').click(function(){ if (!$(this).hasClass('active')) { $.cookie('apnewletter', '1'); $(this).addClass('active'); } else { $.cookie('apnewletter', null); $(this).removeClass('active'); } }) } }); } //set background and parallax $(document).ready(function(){ //ap product list show more if($(".btn-show-more").length) apshowmore(); //DONGND:: call active anmation activeAnimation(); if($(".ajaxtabcate").length){ $('input:radio[name=ajaxtabcate]').click(function() { $(".leo-ajax-tabs").each(function(){ //if have product if($(this).find(".product-image").length || $(this).find(".product-title").length){ $(this).removeClass('loaded'); if (typeof $.LeoCustomAjax !== "undefined" && $.isFunction($.LeoCustomAjax)) { var leoCustomAjax = new $.LeoCustomAjax(); leoCustomAjax.processAjax(); } } }); }); } if($(".tabs-dropdown-menu").length){ $(".tabs-dropdown-menu").each(function(){ wraper = $(this).parent(); tabdrop = $(this); if($(this).hasClass("selecttext")){ nav_active = $(wraper).find(".nav-link").first(); $(this).find('button').html($(nav_active).find("span").html()); } $(this).find('.dropdown-item').first().addClass('active'); $(wraper).find('.nav-link').click(function(){ if($(this).hasClass('active')){ return; } $(tabdrop).find('.dropdown-item').removeClass('active'); cclass = $(this).attr('class'); var strArray = cclass.split(" "); formClass = ""; for(var i = 0; i < strArray.length; i++){ if(strArray[i].indexOf('form') >=0 ){ formClass = strArray[i]; break; } } $(wraper).find('.dropdown-item.'+formClass).addClass('active'); }); $(tabdrop).find('.dropdown-item').click(function(){ $(wraper).find('.nav-link').removeClass('active'); cclass = $(this).attr('class'); var strArray = cclass.split(" "); formClass = ""; for(var i = 0; i < strArray.length; i++){ if(strArray[i].indexOf('form') >=0 ){ formClass = strArray[i]; break; } } $(wraper).find('.nav-link.'+formClass).trigger('click'); }); }); } //show popup if($('.ap-popup').length){ if($('.ap-popup').hasClass('index-only') && $('body').attr('id') == 'index') apPopupForm(); else apPopupForm(); } $(".has-bg.bg-fullwidth").each(function(){ id = "#"+$(this).attr("id"); bg = ""; if ($(this).data("src") !== undefined) bg = "url("+$(this).data("src")+")"; bg += $(this).data("bg_data"); $(id + ":before").addRule({ background: bg }); }); //stela if (typeof stellar !== 'undefined' && stellar) $.stellar({horizontalScrolling:false}); //mouse currentPosX = []; currentPosY = []; $("div[data-mouse-parallax-strength]").each(function(){ currentPos = $(this).css("background-position"); if (typeof currentPos == "string") { currentPosArray = currentPos.split(" "); }else { currentPosArray = [$(this).css("background-position-x"),$(this).css("background-position-y")]; } currentPosX[$(this).data("mouse-parallax-rid")] = parseFloat(currentPosArray[0]); currentPosY[$(this).data("mouse-parallax-rid")] = parseFloat(currentPosArray[1]); $(this).mousemove(function(e){ newPosX = currentPosX[$(this).data("mouse-parallax-rid")]; newPosY = currentPosY[$(this).data("mouse-parallax-rid")]; if($(this).data("mouse-parallax-axis") != "axis-y"){ mparallaxPageX = e.pageX - $(this).offset().left; if($(this).hasClass("full-bg-screen")) { mparallaxPageX = mparallaxPageX - 1000; } newPosX = (mparallaxPageX * $(this).data("mouse-parallax-strength") * -1) + newPosX; } if($(this).data("mouse-parallax-axis") !="axis-x"){ mparallaxPageY = e.pageY - $(this).offset().top; newPosY = mparallaxPageY * $(this).data("mouse-parallax-strength") * -1; } $(this).css("background-position",newPosX+"px "+newPosY+"px"); }); }); var ytIframeId; var ytVideoId; function onYouTubeIframeAPIReady() { $("div.iframe-youtube-api-tag").each(function(){ ytIframeId = $(this).attr("id"); ytVideoId = $(this).data("youtube-video-id"); new YT.Player(ytIframeId, { videoId: ytVideoId, width: "100%", height: "100%", playerVars :{autoplay:1,controls:0,disablekb:1,fs:0,cc_load_policy:0, iv_load_policy:3,modestbranding:0,rel:0,showinfo:0,start:0}, events: { "onReady": function(event){ event.target.mute(); setInterval( function(){event.target.seekTo(0);}, (event.target.getDuration() - 1) * 1000 ); } } }); }); } onYouTubeIframeAPIReady(); if (typeof MediaElementPlayer !== 'undefined') { //add function for html5 youtube video var player1 = new MediaElementPlayer('#special-youtube-video1'); var player2 = new MediaElementPlayer('#special-youtube-video2'); if(player1) { var auto_find = setInterval(function(){ if($('#video-1 .mejs-overlay-play').html()) { $('#video-1 .mejs-overlay-play>.mejs-overlay-button').before('
'+$('#special-youtube-video1').data('name')+'
'); $('#video-1 .mejs-overlay-play').append('
Watch video and subscribe us
'); clearInterval(auto_find); } }, 500); } if(player2) { var auto_find1 = setInterval(function(){ if($('#video-2 .mejs-overlay-play').html()) { $('#video-2 .mejs-overlay-play>.mejs-overlay-button').before('
'+$('#special-youtube-video2').data('name')+'
'); $('#video-2 .mejs-overlay-play').append('
Watch video and subscribe us
'); clearInterval(auto_find1); } }, 500); } } //js for select header, footer, content in demo current_url = window.location.href; $('.apconfig').each(function(){ var enableJS = $(this).data('enablejs'); if(enableJS == false){ return; } var leochange = '&leopanelchange'; var current_url = $(this).data('url'); if( !current_url ){ current_url = window.location.href; current_url = current_url.replace(leochange, ""); } var param = $(this).data('type'); var value = $(this).data('id'); var re = new RegExp("([?|&])" + param + "=.*?(&|$)","i"); if (current_url.match(re)) $(this).attr('href', current_url.replace(re,'$1' + param + "=" + value + '$2') + leochange); else{ if(current_url.indexOf('?') == -1) $(this).attr('href', current_url + '?' + param + "=" + value + leochange); else $(this).attr('href', current_url + '&' + param + "=" + value + leochange); } }); //DONGND:: fix owl carousel in tab load delay when resize. $(window).resize(function(){ if($('.tab-pane .owl-carousel').length) { $('.tab-pane .owl-carousel').each(function(index, element){ if(!$(element).parents('.tab-pane').hasClass('active') && typeof ($(element).data('owlCarousel')) !== "undefined") { var w_owl_active_tab = $(element).parents('.tab-pane').siblings('.active').find('.owl-carousel').width(); $(element).width(w_owl_active_tab); $(element).data('owlCarousel').updateVars(); $(element).width('100%'); } }); } }) //DONGND:: loading owl carousel fake item var check_window_w = parseInt($(window).width()); if (check_window_w >= 992 && check_window_w < 1200) { addClassLoading('lg'); } else if (check_window_w >= 768 && check_window_w < 992) { addClassLoading('md'); } else if (check_window_w >= 576 && check_window_w < 768) { addClassLoading('sm'); } else if (check_window_w < 576) { addClassLoading('m'); } else { addClassLoading('xl'); } // swiper in mobile if($('.list-images-mobile').length && $('.list-images-mobile').children().length > 1) { $('.list-images-mobile').slick({ slidesToShow: 1, slidesToScroll: 1, arrows: true, dots: true, infinite: false, }); } if($('.product-list-images-mobile').length) { if ($('body').hasClass('lang-rtl')) { $('.product-list-images-mobile').each(function(){ if ($(this).children().length > 1) { $(this).slick({ slidesToShow: 1, slidesToScroll: 1, arrows: true, dots: true, infinite: false, rtl: true }); } }); } else{ $('.product-list-images-mobile').each(function(){ if ($(this).children().length > 1) { $(this).slick({ slidesToShow: 1, slidesToScroll: 1, arrows: true, dots: true, infinite: false, }); } }); } //turn off swipe mode of owl-carousel when slide active on mobile $( document ).ajaxComplete(function( event, xhr, settings ) { if (settings.url.indexOf('apajax') > 0) { $('.product-list-images-mobile').each(function(){ if($('.product-list-images-mobile').hasClass('slick-slider')){ function offSlideCarousel(selector){ selector.parents('.owl-item').on("touchstart mousedown", function(e) { // Prevent carousel swipe e.stopPropagation(); }); } if (window.addEventListener) { window.addEventListener("load", offSlideCarousel($(this)), false); } else if (window.attachEvent){ window.attachEvent("onload", offSlideCarousel($(this))); } else { window.onload = offSlideCarousel($(this)); } } }); } //fix swipe after ajax in category if (settings.url.indexOf('from-xhr') > 0) { if ($('body').hasClass('lang-rtl')) { $('.product-list-images-mobile').each(function(){ if ($(this).children().length > 1) { $(this).slick({ slidesToShow: 1, slidesToScroll: 1, arrows: true, dots: true, infinite: false, rtl: true }); } }); } else{ $('.product-list-images-mobile').each(function(){ if ($(this).children().length > 1) { $(this).slick({ slidesToShow: 1, slidesToScroll: 1, arrows: true, dots: true, infinite: false, }); } }); } } }); } if($("body").attr("id") == "product") { $( document ).ajaxComplete(function( event, xhr, settings ) { if (settings.url.indexOf('controller=product') > 0) { if($('.list-images-mobile').length && $('.list-images-mobile').children().length > 1) { $('.list-images-mobile').slick({ slidesToShow: 1, slidesToScroll: 1, arrows: true, dots: true, }); } } }); } }); //DONGND:: add class loading by width of window function addClassLoading($type) { $('.timeline-wrapper').each(function(){ if ($(this).data($type) <= $(this).data('item')) { var num_remove_item = $(this).data('item') - $(this).data($type); if ($(this).data($type) < $(this).data('item')) { var num_remove_item = $(this).data('item') - $(this).data($type); $(this).find('.timeline-parent').slice(-num_remove_item).remove(); } if (12%$(this).data($type) == 0) { if ($type == 'm') { $(this).find('.timeline-parent').addClass('col-xs-'+12/$(this).data($type)); } else { $(this).find('.timeline-parent').addClass('col-'+$type+'-'+12/$(this).data($type)); } } else { $(this).find('.timeline-parent').css({'width': 100/$(this).data($type)+'%', 'float': 'left'}) } $('.timeline-wrapper').removeClass('prepare'); } }) } //DONGND:: call function from leofeature function callLeoFeature() { if(typeof (leoBtCart) != 'undefined') { leoBtCart(); } if(typeof (leoSelectAttr) != 'undefined') { leoSelectAttr(); } if(typeof (LeoWishlistButtonAction) != 'undefined') { LeoWishlistButtonAction(); } if(typeof (LeoCompareButtonAction) != 'undefined') { LeoCompareButtonAction(); } if(typeof (actionQuickViewLoading) != 'undefined') { actionQuickViewLoading(); } } function SetOwlCarouselFirstLast(el){ el.find(".owl-item").removeClass("first"); el.find(".owl-item.active").first().addClass("first"); el.find(".owl-item").removeClass("last"); el.find(".owl-item.active").last().addClass("last"); } /** * List functions will run when document.ready() */ $(document).ready(function() { if(typeof (ap_list_functions) != 'undefined') { $.each(ap_list_functions, function(i, val) { val(); ap_list_functions[i] = null; }); } //call function when ajax filter complete if ($("body").attr("id") == "category" && $('#search_filters').length) { $('.facet-label').on('click',function(){ $( document ).ajaxComplete(function( event, xhr, settings ) { //click on filter call function if(typeof xhr != "undefined" && typeof xhr.responseJSON != "undefined" && typeof xhr.responseJSON.products != "undefined"){ if(typeof (ap_list_functions) != 'undefined') { $.each(ap_list_functions, function(i, val) { if(typeof val != "undefined" && val != null){ val(); ap_list_functions[i] = null; } }); } } }); }); } }); /** * List functions will run when window.load() */ $(window).load(function(){ if(typeof (ap_list_functions_loaded) != 'undefined') { for (var i = 0; i < ap_list_functions_loaded.length; i++) { ap_list_functions_loaded[i](); } } }) $(document).ready(function() { if ($('#sitemap').length > 0) { $('#sitemap .sitemap').prepend(leo_site_map); } if($('.lazy').length) { $(function() { $('.lazy').lazy({effect: 'fadeIn'}); }); $( document ).ajaxComplete(function() { if($('.lazy').length) { $('.lazy').lazy({effect: 'fadeIn'}); } }); } // REPLACE URL IN BLOCKLANGUAGES if(typeof approfile_multilang_url != "undefined") { $.each(approfile_multilang_url, function(index, profile){ var url_search = prestashop.urls.base_url + profile.iso_code; var url_change = prestashop.urls.base_url + profile.iso_code + '/' + profile.friendly_url + '.html'; //console.log(url_change); //DONGND:: update for module blockgrouptop and default if ($('#leo_block_top').length) { var parent_o = $('#leo_block_top .language-selector'); } else { var parent_o = $('.language-selector-wrapper'); } parent_o.find('li a').each(function(){ var lang_href = $(this).attr('href'); if(lang_href.indexOf(url_search) > -1 ) { //window.console.log('--' + url_change); $(this).attr('href', url_change); //window.console.log(url_change); } }); }); } //DONGND:: update for module blockgrouptop and default if ($('#leo_block_top').length) { var parent_o_currency = $('#leo_block_top .currency-selector'); } else { var parent_o_currency = $('.currency-selector'); } // REPLACE URL IN BLOCKLANGUAGES parent_o_currency.find('li a').each(function(){ var url_link = $(this).attr('href'); var id_currency = getParamFromURL("id_currency", url_link); var SubmitCurrency = getParamFromURL("SubmitCurrency", url_link); var current_url = window.location.href; //DONGND:: fix for only product page, url has # if (prestashop.page.page_name == 'product') { var current_url = prestashop.urls.current_url; } var current_url = removeParamFromURL('SubmitCurrency',current_url); var current_url = removeParamFromURL('id_currency',current_url); if(current_url.indexOf('?') == -1){ var new_url = current_url + '?SubmitCurrency=' + SubmitCurrency + "&id_currency=" +id_currency; $(this).attr('href', new_url); } else{ var new_url = current_url + '&SubmitCurrency=' + SubmitCurrency + "&id_currency=" +id_currency; $(this).attr('href', new_url); } }); prestashop.on('updateProductList', function() { // FIX BUG : FILTER PRODUCT NOT SHOW MORE IMAGE if (typeof $.LeoCustomAjax !== "undefined" && $.isFunction($.LeoCustomAjax)) { var leoCustomAjax = new $.LeoCustomAjax(); leoCustomAjax.processAjax(); } }); // auto get link product and add to demo link on megamenu to show multi product detail if ($('.demo-product-detail[data-menu-type=url] a').length && prestashop.page.page_name != 'product') { $.ajax({ type: 'POST', headers: {"cache-control": "no-cache"}, url: prestashop.urls.base_url + 'modules/appagebuilder/apajax.php' + '?rand=' + new Date().getTime(), async: true, cache: false, dataType: "json", data: {"action": "get-product-link"}, success: function (jsonData) { if (jsonData) { $('.demo-product-detail[data-menu-type=url] a').each(function(){ var original_url = $(this).attr('href'); var layout_key = original_url.substring(original_url.indexOf('?layout=')); var new_url = jsonData.replace('.html', '.html'+layout_key); $(this).attr('href',new_url).addClass('updated'); }); if($('.lazy').length) { if (lazyLoadInstance) { lazyLoadInstance.update(); } } } }, error: function () { } }); } }); function removeParamFromURL(key, sourceURL) { var rtn = sourceURL.split("?")[0], param, params_arr = [], queryString = (sourceURL.indexOf("?") !== -1) ? sourceURL.split("?")[1] : ""; if (queryString !== "") { params_arr = queryString.split("&"); for (var i = params_arr.length - 1; i >= 0; i -= 1) { param = params_arr[i].split("=")[0]; if (param === key) { params_arr.splice(i, 1); } } if(params_arr.length > 0){ rtn = rtn + "?" + params_arr.join("&"); } } return rtn; } function getParamFromURL(key, sourceURL) { var rtn = sourceURL.split("?")[0], param, params_arr = [], queryString = (sourceURL.indexOf("?") !== -1) ? sourceURL.split("?")[1] : ""; if (queryString !== "") { params_arr = queryString.split("&"); for (var i = params_arr.length - 1; i >= 0; i -= 1) { param = params_arr[i].split("=")[0]; if (param === key) { return params_arr[i].split("=")[1]; } } } return false; }