$.ajaxSetup({
cache: true
});
//carregamento assíncrono CSS.
(function ($) {
$.getStylesheet = function (href) {
var $d = $.Deferred();
var $link = $('', {
rel: 'stylesheet',
type: 'text/css',
href: href
}).appendTo('head');
$d.resolve($link);
return $d.promise();
};
})(jQuery);
//carregamento assíncrono das dependências.
$.when(
/*---- get CSS ----*/
$.getStylesheet("https://cdn.jsdelivr.net/npm/sweetalert2@11.7.29/dist/sweetalert2.min.css"), //Sweetalert 2.
/*---- get JS ----*/
$.getScript("https://cdnjs.cloudflare.com/ajax/libs/jquery-watch/1.21.0/jquery-watch.min.js"), //jQuery Watch.
$.getScript("https://cdn.jsdelivr.net/npm/mobile-detect@1.4.5/mobile-detect.min.js"), //Mobile Detect.
$.getScript("https://cdn.jsdelivr.net/npm/js-cookie@3.0.5/dist/js.cookie.min.js"), //Js cookie.
$.getScript("https://cdn.jsdelivr.net/npm/sweetalert2@11.7.29/dist/sweetalert2.all.min.js"), //Sweetalert 2.
$.Deferred(function (deferred) {
$(deferred.resolve);
})
).done(function () {
//scripts carregados, inserir seus códigos abaixo.
console.log("#### script-ic load! ####");
//##############################
/*---- função watch geral ----*/
var watchMain = $("*").watch({
id: "watch",
properties: "prop_innerHTML, attr_class",
watchChildren: true,
callback: function (data, i) {
//importante! [instruções executadas uma única vez], quando houver uma alteração html detectada pelo Observer Event.
if(data.id){
watchMain.unwatch(data.id); //importante! para destruir o objeto.
data.id = false; //importante! para evitar repetições.
//---- inserir scripts abaixo ----
var mobileDetect = new MobileDetect(window.navigator.userAgent);
//política de privacidade.
(function(){
var policyCookies = "policyCookies";
if(!Cookies.get(policyCookies)){
const Toast = Swal.mixin({
toast: true,
position: mobileDetect.phone()? 'bottom' : 'bottom',
showConfirmButton: true,
confirmButtonText: 'continuar'
});
Toast.fire({
icon: mobileDetect.phone() ? "" : 'info',
title: '',
html: 'Usamos cookies para uma experiência melhor de navegação. Ao continuar navegando, você concorda com a nossa Política de Privacidade ',
width: "auto",
customClass: {
container: mobileDetect.phone() ? "w-100" : "auto",
popup: mobileDetect.phone() ? "small" : 'container d-flex align-items-center justify-content-center small',
title: "d-none",
actions: mobileDetect.phone() ? "d-table mx-auto" : "",
confirmButton: "bg-warning px-5 px-lg-3",
htmlContainer: mobileDetect.phone() ? "text-center small" : "small"
}
}).then((result) => {
if(result.isConfirmed){
Swal.fire({
toast: true,
position: mobileDetect.phone()? 'bottom' : 'bottom',
showConfirmButton: false,
icon: 'success',
title: ' ',
html: 'Confirmado!',
timer: 1000,
timerProgressBar: true
});
Cookies.set(policyCookies, "true", {expires: 30});
}
});
}
})();
}
//!importante! [instruções executadas indeterminadas vezes], quando houver uma alteração html detectada pelo Observer Event.
//---- inserir scripts abaixo ----
//verificar quantos itens tem no carrinho.
(function(){
$(".cart-sumary").click(function(){
window.headerCartBtn = false;
});
if($(".shopping-cart-content .item").length > 2 && !window.headerCartBtn){
var obj = $(".shopping-cart-content:first .text-end > a").clone().prependTo(".shopping-cart-content");
$(obj).addClass("sticky-top");
window.headerCartBtn = true;
}
})();
//capturar valores do frete.
(function(){
var isLog = false;
$(".f2-shipping-estimate-action").removeAttr("disabled");
if(!$(".shipping-estimate > .estimation").is(":visible")){
$(".price-total-frete").hide();
$(".price-unit-frete").hide();
return false;
}else{
//get cep.
var cep = $("input[name=zipCode]").val();
if(cep.length >= 9){
//set cep cookie.
setFreteCookie(cep);
}
}
var lines = $(".shipping-estimate > .estimation:first").text().split('\n');
if(lines){
var freteValor = "";
//encontrar o primeiro valor de frete.
$(lines).each(function(key){
var value = $.trim(this);
if(value !== ""){
if(value = value.match(/\d/g)){
freteValor = parseFloat(value.join('')) / 100;
return false;
}
}
});
//atualizar o total com frete na página do produto.
if($(".price-total-frete").length > 0){
$(".price-total-frete").css("display", "").show();
if(isLog) console.log("freteValor: " + freteValor);
if(isLog) console.log("priceTotal: " + priceTotal);
$(".price-total-frete-num").html((freteValor + priceTotal).toLocaleString("pt-BR", { style: "decimal", minimumFractionDigits: 2, maximumFractionDigits: 2 }));
}
//atualizar o preço da unidade com frete na página do produto.
if($(".price-unit-frete").length > 0){
$(".price-unit-frete").css("display", "").show();
priceUnitFrete = (freteValor + priceTotal) / qtdeTotal;
if(isLog) console.log("priceUnitFrete: " + priceUnitFrete);
$(".price-unit-frete-num").html(priceUnitFrete.toLocaleString("pt-BR", { style: "decimal", minimumFractionDigits: 2, maximumFractionDigits: 2 }));
}
}
})();
}
});
});
$(document).ready(function(){
console.log("### Script - iC ###");
var mobileDetect = new MobileDetect(window.navigator.userAgent);
//ajustes no formulário de cadastro.
(function(){
isLog = true;
if(!location.pathname === "/customer/create"){
return false;
}
//remover CPF do formulário de cadastro.
$("#customer_type > option[value=cpf]").remove();
//$("#customer_firstname, #customer_cpf_cpf, #customer_gender, #customer_dateOfBirth_presentation").removeAttr("required").hide();
$(".cpf").hide();
$(".cpf input, .cpf select").removeAttr("required").hide();
//trigger no campo tipo.
$("#customer_type").trigger("blur");
//remover "selecione" do campo perfil do formulário de cadastro.
$("#customer_customerType > option[value='']").remove();
//selecionar a primeira opção.
$("#customer_customerType > option[value='1']").attr("selected");
//máscara no campo de telefone.
if($("#customer_primaryPhone").length > 0){
IMask(document.getElementById('customer_primaryPhone'), {
mask: [
{
mask: '(00) 0000-0000' //máscara fixo.
},
{
mask: '(00) 00000-0000' //máscara celular.
}
]
});
}
//checagem checkbox isento.
$("input#check").on("change", function(e){
if($(this).is(":checked")){
$("#customer_cnpj_stateRegistration").val("ISENTO");
console.log("checked");
}else{
$("#customer_cnpj_stateRegistration").val("");
}
});
})();
//funções de cep do cliente.
(function(){
//máscara para o CEP.
if($("#customerCep").length > 0){
IMask(document.getElementById('customerCep'), {
mask: '00000-000',
//lazy: false,
//placeholderChar: ""
});
}
if(!$.cookie('customerCep') && !$.cookie('customerCepShow')){
//show modal.
showFreteModal();
}
$("#cepLocation button:first").click(function(){
//show modal.
showFreteModal();
});
function showFreteModal(){
//show modal.
freteModal = Fancybox.show([{ src: "#modalCep", type: "inline" }]);
//set cookie show modal.
$.cookie('customerCepShow', true, { expires: 45, path: "/" });
}
//set input.
if($.cookie('customerCep')){
$(".input-customer-cep").val($.cookie('customerCep'));
$("#cepLocation").removeClass("d-none");
$("#cepLocation .cepLocation").html($.cookie('customerCep'));
//set input no carrinho de compras.
$("input[name=zipCode]").val($.cookie('customerCep'));
}
//check submit cep from modal.
$("form[name=formCustomerCep]").on("submit", function(e){
e.preventDefault();
var cep = $(".input-customer-cep").val();
if(cep !== ""){
//set cep cookie.
setFreteCookie(cep);
freteCalculate();
}
Fancybox.close();
});
//trigger calculate cep página do produto.
if($.cookie('customerCep')){
$(".product-information #zipCode").val($.cookie('customerCep'));
$(".product-information #calculate").trigger("click", function(){
return true;
});
}
})();
//cabeçalho.
(function(){
var bannerVisible = false;
$(window).scroll(function(){
if(mobileDetect.phone()){
var scrollTop = $(window).scrollTop();
if(scrollTop === 0){
bannerVisible = true;
}else{
bannerVisible = false;
}
toggleBannerVisibility();
}else{
if($(this).scrollTop() > 0){
$(".header-top-row").hide();
$(".header-middle-row").hide();
$(".header-middle-fixed-row").show().animate({ top: '-100px' }, 500);
}else{
$(".header-middle-fixed-row").hide();
$(".header-top-row").show();
$(".header-middle-row").show();
}
}
});
function toggleBannerVisibility(){
var headerMobile = $(".header-middle-row");
var bannerFilete = $(".header-top-row");
if(bannerVisible){
bannerFilete.show();
headerMobile.css("position", "relative");
}else{
bannerFilete.hide();
headerMobile.css("position", "fixed");
headerMobile.css("z-index", "999");
}
}
})();
//menu.
(function(){
$("#menu-lg .nav .dropdown.nav-item").on('mouseenter', function() {
$(this).addClass('open');
});
//ocultar submenu.
$('#menu-lg .nav .dropdown.nav-item').on('mouseleave', function() {
$(this).removeClass('open');
});
/*
//ativar submenu.
$('.d-lg-block .nav .dropdown.nav-item').on('mouseenter', function() {
$(this).addClass('open');
});
//ocultar submenu.
$('.d-lg-block .nav .dropdown.nav-item').on('mouseleave', function() {
$(this).removeClass('open');
});
*/
// make it as accordion for smaller screens
if (window.innerWidth < 992) {
// close all inner dropdowns when parent is closed
document.querySelectorAll('.navbar .dropdown').forEach(function(everydropdown){
everydropdown.addEventListener('hidden.bs.dropdown', function () {
// after dropdown is hidden, then find all submenus
this.querySelectorAll('.submenu').forEach(function(everysubmenu){
// hide every submenu as well
everysubmenu.style.display = 'none';
});
});
});
document.querySelectorAll('.dropdown-menu a').forEach(function(element){
element.addEventListener('click', function (e) {
let nextEl = this.nextElementSibling;
if(nextEl && nextEl.classList.contains('submenu')) {
// prevent opening link if link needs to open dropdown
e.preventDefault();
if(nextEl.style.display == 'block'){
nextEl.style.display = 'none';
} else {
nextEl.style.display = 'block';
}
}
});
});
}
})();
//swiper top condições;
(function(){
const swiper = new Swiper('.swiper-conditions', {
// Optional parameters
slidesPerView: 1,
centeredSlides: true,
direction: 'horizontal',
autoHeight: true,
loop: true,
autoplay:{
delay: 3500
}
});
})();
//swiper banner home;
(function(){
const swiper = new Swiper('.swiper-banner-home', {
// Optional parameters
slidesPerView: 1,
centeredSlides: true,
direction: 'horizontal',
autoHeight: true,
loop: true,
autoplay:{
delay: 4500
}
});
})();
//buscador
(function(){
var speed = 500;
$("#btn-search-edireto").on("click", function(){
$("#btn-search-edireto").hide();
$("#btn-close-edireto").show();
searchOpen();
});
$("#btn-close-edireto").on("click", function(){
$("#btn-search-edireto").show();
$("#btn-close-edireto").hide();
searchClose();
});
function searchOpen(){
$(".header-middle-row .header-row > div:first").animate({
width: "0px"
}, speed);
$(".header-middle-row .header-row > div:nth-child(2)").removeClass("col-4").addClass("col-2");
$(".header-middle-row .header-row > div:nth-child(3)").removeClass("col-lg-4").addClass("col-lg");
$(".header-middle-row .top-search-form").addClass("d-block").removeClass("d-none").animate({
width: '100%'
},
{
duration: speed,
complete: function(){
$(".header-middle-row .top-search-form").css({ "overflow": "visible"});
}
});
$(".header-middle-row .top-search-form form input").focus();
}
function searchClose(){
$(".header-middle-row .header-row > div:first").animate({
width: "auto"
}, speed);
$(".header-middle-row .header-row > div:nth-child(2)").removeClass("col-2").addClass("col-4");
$(".header-middle-row .header-row > div:nth-child(3)").removeClass("col-lg").addClass("col-lg-4");
$(".header-middle-row .top-search-form").addClass("d-none").removeClass("d-block").animate({
width: '0%'
},
{
duration: speed,
});
}
})();
/*
//Buscador
(function(){
var speed = 500;
$(".btn-search").on("click", function(e){
e.preventDefault();
console.log( "ready!" );
if(!$(".top-search-form").is(":visible")){
searchOpen();
}else{
//$(".top-search-form form").submit();
searchClose();
}
});
$(".top-search-form").on("blur", function(){
setTimeout(function(){
searchClose();
}, 200000);
});
function searchOpen(){
//exibir buscador.
$(".header-row > div:first").animate({
width: "0px"
}, speed);
$(".header-row > div:nth-child(2)").removeClass("col-4").addClass("col-2");
$(".header-row > div:nth-child(3)").removeClass("col-lg-4").addClass("col-lg");
$(".top-search-form").addClass("d-block").animate({
width: '100%'
},
{
duration: speed,
complete: function(){
$(".top-search-form").css({ "overflow": "visible"});
}
});
$(".top-search-form form input").focus();
searchClose();
}
function searchClose(){
if($(".top-search-form").is(":visible")){
$(".btn-search").hide();
$(".btn-close").show();
$(".btn-close").on("click", function(){
$(".btn-search").show();
$(".btn-close").hide();
$(".header-row > div:first").animate({
width: "auto"
}, speed);
$(".header-row > div:nth-child(2)").removeClass("col-2").addClass("col-4");
$(".header-row > div:nth-child(3)").removeClass("col-lg").addClass("col-lg-4");
$(".top-search-form").addClass("d-none").animate({
width: '0'
},
{
duration: speed,
complete: function(){
$(".top-search-form").css({ "overflow": "hidden"});
}
});
});
}
}
})();
*/
//carrossel de filtros mobile v2 - swiper.
(function(){
const swiper = new Swiper (".swiperBussines, .swiperPackage",{
preloadImages: false,
lazy: true,
grabCursor: true,
centeredSlides: false,
centeredSlidesBounds: true,
loop: false,
rewind: true,
freeMode: false,
navigation:{
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev',
},
pagination: {
el: '.swiper-pagination',
type: "bullets"
},
breakpoints:{
'@0.50': {
slidesPerView: 2,
spaceBetween: 10,
centeredSlides: false,
centeredSlidesBounds: true,
freeMode: true,
},
'@0.75': {
slidesPerView: 3,
spaceBetween: 20,
centeredSlides: false,
centeredSlidesBounds: true,
freeMode: true,
},
'@1.00': {
slidesPerView: 3,
spaceBetween: 20,
centeredSlides: false,
centeredSlidesBounds: true
},
'@1.50': {
slidesPerView: 5,
spaceBetween: 0,
centeredSlides: false,
centeredSlidesBounds: true,
}
},
on:{
beforeInit: function(swiper){
$(swiper.el).css("display", "block");
},
init: function(){
if(mobileDetect.phone && this.slides.length <= this.params.slidesPerView){
this.navigation.destroy();
}
}
}
});
})();
// carrossel produtos 01.
(function(){
const swiper = new Swiper (".swiperProducts",{
preloadImages: false,
lazy: true,
grabCursor: true,
centeredSlides: false,
centeredSlidesBounds: true,
loop: false,
rewind: true,
freeMode: false,
uniqueNavElements: true,
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev',
},
pagination: {
el: '.swiper-pagination',
type: "bullets"
},
breakpoints:{
300: {
slidesPerView: 2,
centeredSlides: false,
centeredSlidesBounds: true,
freeMode: true,
},
700: {
slidesPerView: 3,
centeredSlides: false,
centeredSlidesBounds: true,
freeMode: true,
},
1400: {
slidesPerView: 4,
centeredSlides: false,
centeredSlidesBounds: true,
}
},
on:{
beforeInit: function(swiper){
$(swiper.el).css("display", "block");
},
init: function(){
if(mobileDetect.phone && this.slides.length <= this.params.slidesPerView){
this.navigation.destroy();
}
}
}
});
})();
//botões quantidade produto.
(function(){
var qtdeMin = $("#quantity").data("minimum-quantity") ? $("#quantity").data("minimum-quantity") : 1;
var qtdeMax = $("#quantity").data("maximum-quantity") ? $("#quantity").data("maximum-quantity") : 1;
$(".quantity-down").click(function(){
var quantity = parseFloat($("#quantity").val()) - 1;
if(quantity >= qtdeMin && quantity <= qtdeMax){
$("#quantity").val(quantity);
//freteCalculate();
}else{
alert("Quantidade mínima permitida: " + qtdeMin);
}
});
$(".quantity-up").click(function(){
var quantity = parseFloat($("#quantity").val()) + 1;
if(quantity >= qtdeMin && quantity <= qtdeMax){
$("#quantity").val(quantity);
//freteCalculate();
}else{
alert("Quantidade máxima permitida: " + qtdeMax);
}
});
})();
//Cálcular e exibir o preço total.
(function(){
//calcular preço no load da página.
priceCalculate();
$("#quantity, .quantity-down, .quantity-up").on("change, click", function(){
freteHide(); //ocultar o preço com frete.
priceCalculate(); //recalcular.
});
})();
//calcular o preço na página do produto.
function priceCalculate(){
if(location.pathname === "/checkout/") return false;
var isLog = true;
if(isLog) console.log("priceCalculate();");
var quantity = parseFloat($("#quantity").val());
//verificar se existe desconto progressivo.
var finalValue = null;
if(typeof promotionProgressive !== "undefined" && Array.isArray(promotionProgressive)){
$(promotionProgressive).each(function(){
if(quantity >= this.start && quantity <= this.end){
finalValue = this.finalValue;
if(isLog) console.log("finalValue: " + finalValue);
return true;
}
});
}
if(finalValue){
//preço com desconto progressivo.
priceTotal = quantity * finalValue;
//preço unitário com desconto progressivo.
//var priceUnit = {{ (promotion ? promotion.finalPrice : price) / qtdePorCaixa }};
priceUnit = finalValue / qtdePorCaixa;
}else{
//preço conforme DE ou POR.
priceTotal = quantity * productPrice;
//preço unitário onforme DE ou POR..
priceUnit = productPrice / qtdePorCaixa;
}
$(".price-total-num").html(priceTotal.toLocaleString("pt-BR", { style: "decimal", minimumFractionDigits: 2, maximumFractionDigits: 2 }));
$(".price-unit-num").html(priceUnit.toLocaleString("pt-BR", { style: "decimal", minimumFractionDigits: 2, maximumFractionDigits: 2 }));
return priceTotal;
}
//Cálcular e exibir a quantidade total.
(function(){
$("#quantity, .quantity-down, .quantity-up").on("change, click", function(){
var quantity = parseInt($("#quantity").val());
qtdeTotal = quantity * qtdePorCaixa;
$(".qtde-total").html(qtdeTotal.toLocaleString("pt-BR", { style: "decimal", minimumFractionDigits: 0 }));
});
})();
//reescrevar modal retirada em loja
(function(){
$('.f2-shipping-estimate-action-new').on('click', function (e) {
e.preventDefault();
//console.log("CEP: " + cepEncontrado)
var cepFormatado = cepEncontrado.slice(0, -3) + '-' + cepEncontrado.slice(-3);
//console.log(cepFormatado);
var postcode = $('.f2-shipping-estimate-postcode').val();
var quantity = $('.f2-shipping-estimate-quantity').val();
var container = $('.f2-shipping-estimate-container');
var variantId = $('.f2-shipping-estimate-variant-id').val();
quantity = quantity == undefined ? 1 : quantity;
if (variantId == undefined) {
alert('Informe o produto');
return;
}
if (postcode == undefined) {
alert('Informe o CEP');
return;
}
$.ajax(
{
url: '/shipping-method/list-by-variant',
type: 'GET',
data: {
zipCode: postcode,
quantity: quantity,
variantId: variantId,
responseType: 'html'
},
beforeSend: function (data) {
container.html(' Calculando frete...
');
},
success: function (data) {
container.html(processarResposta(data, "CEP: " + cepFormatado + " - " + enderecoCompleto));
},
error: function (data) {
console.log('ERROR');
console.log(data);
}
}
);
});
})();
function processarResposta(resposta, endereco) {
// Expressão regular para encontrar a parte "A partir de x dias"
var regexParte = /(A partir de\s*)(\d+\s*dia(s)?)/;
// Encontra a parte "A partir de x dias" na resposta
var matchParte = resposta.match(regexParte);
var parteEncontrada = matchParte ? matchParte[0] : '';
if(resposta.includes("Retirar na loja")) {
// Se estiver presente, adiciona o endereço completo
resposta = resposta.replace(parteEncontrada, parteEncontrada + ` - ${endereco}`);
}
// Substitui a parte encontrada pelo mesmo texto seguido pelo endereço
//resposta = resposta.replace(parteEncontrada, parteEncontrada + ` - ${endereco}`);
return resposta;
}
//modal avaliações.
(function(){
if($("body section div").hasClass("ic-product-details") >= 0){
$(".comments-btn a").click(function(){
$(".modal-comments").show();
$(".modal-comments #close-modal").click(function(){
$(".modal-comments").hide();
});
});
}
})();
//modal complementares.
(function(){
$.getJSON("/checkout/current-cart", function(cart){
var items = [];
if(cart.items){
items = $.merge(items, cart.items);
}
if(cart.sales){
for(let i = 0; i < cart.sales.length; i++){
items = $.merge(items, cart.sales[i].items);
}
}
//Pega os dados do produto atual da página
const data = JSON.parse($("#produto-data").text());
const product = data.items[0];
//Usa o ID ou o código de referência do produto para comparação
const productRefCode = product.id || product.referenceCode;
// Verifica se o produto já está no carrinho
const productCart = items.some(function(item) {
return item.variant && item.variant.referenceCode === productRefCode;
});
//produto já adicionado no carrinho, retorna o alert da Flexy.
if(productCart) {
return;
}
var btnBuyProduct = $(".product-information .btn-buy-edireto");
if(typeof tipoComplementar !== "undefined" && tipoComplementar){
btnBuyProduct.click(function(){
//show modal.
complementarModal = Fancybox.show([{ src: "#modalComplementar", type: "inline" }]);
itemsCart();
});
console.log("➕ Produto complementar - exibindo modal de complementares.");
}else{
btnBuyProduct.click(function(){
Swal.fire({
icon: 'success',
html: 'O que deseja agora?',
showConfirmButton: true,
confirmButtonText: 'IR PARA O CARRINHO',
showCancelButton: true,
cancelButtonText: 'CONTINUAR COMPRANDO',
reverseButtons: true,
buttonsStyling: false,
customClass: {
confirmButton: 'btn border border-dark rounded btn-light-gray mt-3 mt-lg-0 mx-2',
cancelButton: 'btn border border-dark rounded btn-orange mt-3 mt-lg-0 mx-2'
},
allowOutsideClick: false,
timer: 0,
timerProgressBar: false,
heightAuto: false,
width: '40em'
}).then((result) => {
if(result.isConfirmed){
window.location = "/cart/";
};
itemsCart();
});
});
console.log("➕ Produto normal - exibindo modal normal.");
}
});
/*
return false;
if(typeof tipoComplementar === 'undefined') return false;
if(tipoComplementar){
$(".product-information .btn-buy-edireto").click(function(){
//show modal.
complementarModal = Fancybox.show([{ src: "#modalComplementar", type: "inline" }]);
});
}
*/
})();
//carrossel página de produto.
(function(){
if(location.pathname === "/checkout/") return false;
if($("body section div").hasClass("ic-product-details") >= 0){
const container = document.getElementById("fancyCarousel");
const options = {
Dots: mobileDetect.phone() ? true : false,
Thumbs: {
type: "classic"
},
adaptiveHeight: true,
};
new Carousel(container, options, { Thumbs });
Fancybox.bind('[data-fancybox="gallery"]', {
src: "https://www.youtube.com/" + urlVideoProduct,
type: "iframe"
});
}
})();
function embedResponsiveV5(selector){
//função embedResponsive para Bootstrap 5.
if(!selector){
selector = 'iframe[data-src*="youtube.com"], iframe[src*="youtube.com"], iframe[data-src*="google.com/maps"], iframe[src*="google.com/maps"]';
}
$(selector).each(function(){
if(!$(this).data("ic") && !$(this).hasClass("embed-responsive-item") && !$(this).parent().hasClass("ratio")){
$(this).attr("data-ic", true);
$(this).addClass("lazy");
$(this).removeAttr("height width");
//ratio-1x1.
var clone = $(this).clone().insertBefore($(this));
$(clone).wrap('