',
});
}
// Функции для страницы подбора размера кольца
const uAgent = navigator.userAgent || '';
const br = {
version : (uAgent.match( /.+(?:me|ox|on|rv|it|era|ie)[\/: ]([\d.]+)/ ) || [0,'0'])[1],
opera : /opera/i.test(uAgent),
msie : (/msie/i.test(uAgent) && !/opera/i.test(uAgent)),
msie6 : (/msie 6/i.test(uAgent) && !/opera/i.test(uAgent)),
msie7 : (/msie 7/i.test(uAgent) && !/opera/i.test(uAgent)),
msie8 : (/msie 8/i.test(uAgent) && !/opera/i.test(uAgent)),
msie9 : (/msie 9/i.test(uAgent) && !/opera/i.test(uAgent)),
msie10 : (/msie 10/i.test(uAgent) && !/opera/i.test(uAgent)),
mozilla : /firefox/i.test(uAgent),
chrome : /chrome/i.test(uAgent),
safari : (!(/chrome/i.test(uAgent)) && /webkit|safari|khtml/i.test(uAgent)),
iphone : /iphone/i.test(uAgent),
ipod : /ipod/i.test(uAgent),
iphone4 : /iphone.*OS 4/i.test(uAgent),
ipod4 : /ipod.*OS 4/i.test(uAgent),
ipad : /ipad/i.test(uAgent),
ios : /ipad|ipod|iphone/i.test(uAgent),
android : /android/i.test(uAgent),
bada : /bada/i.test(uAgent),
mobile : /iphone|ipod|ipad|opera mini|opera mobi|iemobile/i.test(uAgent),
msie_mobile : /iemobile/i.test(uAgent),
safari_mobile : /iphone|ipod|ipad/i.test(uAgent),
opera_mobile : /opera mini|opera mobi/i.test(uAgent),
opera_mini : /opera mini/i.test(uAgent),
mac : /mac/i.test(uAgent),
webkit : /webkit/i.test(uAgent),
android_version: parseFloat(uAgent.slice(uAgent.indexOf("Android")+8)) || 0
};
let deviceType = "";
let ringMarg = "";
let oneMm = 0.3779527559
if ((br.android || (br.android_version>0)) && window.screen.width < 1000) {
oneMm = 0.58;
deviceType = "a";
} else if((br.safari || br.safari_mobile || br.ios || br.ipad || br.iphone || br.iphone4 || br.mac) && window.screen.width < 1000) {
oneMm = 0.6373;
deviceType = "i";
}
console.log(br.android, (br.android_version>0), br.safari, br.safari_mobile, br.ios, br.ipad, br.iphone, br.iphone4, br.mac)
function getMmSizeInPixel(rangeVal) {
let dif = Number(rangeVal) - Number($('.range-ring').attr('min'))
dif = dif*0.5+Number($('.range-ring').attr('min'))
let ppi = getPPI()
let totalWidth = window.screen.width; // Полная ширина
let totalHeight = window.screen.height; // Полная высота
$('.ring-image__item').css('width',dif*10*oneMm)
$('.ring-image__item').css('height',dif*10*oneMm)
$('.ring-image__size').text(dif+' мм.')
}
const getPPI = function(){
var DOM_body = document.getElementsByTagName('body')[0];
var DOM_div = document.createElement('div');
DOM_div.style = 'width: 1in; visibility:hidden;';
DOM_body.appendChild(DOM_div);
var w = document.defaultView.getComputedStyle(DOM_div, null).getPropertyValue('width');
DOM_body.removeChild(DOM_div);
return parseInt(w);
}
const sizeInPixelCounterAction = {
plus: () => {
$('.range-ring').val( Number($('.range-ring').val())+1 )
},
minus: () => {
$('.range-ring').val( Number($('.range-ring').val())-1 )
}
}
getMmSizeInPixel($('.range-ring').val())
$('.range-ring').on('input', function(){
getMmSizeInPixel($('.range-ring').val())
})
$('.range-ring-minus').click(()=>{
sizeInPixelCounterAction.minus()
getMmSizeInPixel($('.range-ring').val())
})
$('.range-ring-plus').click(()=>{
sizeInPixelCounterAction.plus()
getMmSizeInPixel($('.range-ring').val())
})
});
/*!***************************************************
* yatranslate.js v1.0.0
* author: Vitalii P.
*****************************************************/
const yatranslate = {
/* Original language */
lang: "ru",
/* The language we translate into on the first visit */
/* Язык, на который переводим при первом посещении */
langFirstVisit: 'kk',
};
document.addEventListener('DOMContentLoaded', function () {
// Start
yaTranslateInit();
})
function yaTranslateInit() {
if (yatranslate.langFirstVisit && !localStorage.getItem('yt-widget')) {
/* Если установлен язык перевода для первого посещения и в localStorage нет yt-widget */
/* If the translation language is installed for the first visit and in localStorage no yt-widget */
yaTranslateSetLang(yatranslate.langFirstVisit);
}
// Подключаем виджет yandex translate
// Connecting the yandex translate widget
let script = document.createElement('script');
script.src = `https://translate.yandex.net/website-widget/v1/widget.js?widgetId=ytWidget&pageLang=${yatranslate.lang}&widgetTheme=light&autoMode=false`;
document.getElementsByTagName('head')[0].appendChild(script);
// Получаем и записываем язык на который переводим
// We get and write down the language into which we translate
let code = yaTranslateGetCode();
// Показываем текущий язык в меню
// Show the current language in the menu
yaTranslateHtmlHandler(code);
// Вешаем событие клик на флаги
// We hang the event click on the flags
yaTranslateEventHandler('click', '[data-ya-lang]', function (el) {
yaTranslateSetLang(el.getAttribute('data-ya-lang'));
localStorage.setItem('manual_lang', 'y');
// Перезагружаем страницу
// Reloading the page
window.location.reload();
})
}
function yaTranslateSetLang(lang) {
// Записываем выбранный язык в localStorage объект yt-widget
// Writing the selected language to localStorage
localStorage.setItem('yt-widget', JSON.stringify({
"lang": lang,
"active": true
}));
}
function yaTranslateGetCode() {
// Возвращаем язык на который переводим
// Returning the language to which we are translating
return (localStorage["yt-widget"] != undefined && JSON.parse(localStorage["yt-widget"]).lang != undefined) ? JSON.parse(localStorage["yt-widget"]).lang : yatranslate.lang;
}
function yaTranslateHtmlHandler(code) {
// Получаем язык на который переводим и производим необходимые манипуляции с DOM
// We get the language to which we translate and produce the necessary manipulations with DOM
// document.querySelector('[data-lang-active]').innerHTML = ;
// document.querySelector(`[data-ya-lang="${code}"]`).remove();
document.querySelector(`[data-ya-lang="${code}"]`).classList.add("is-act");
}
function yaTranslateEventHandler(event, selector, handler) {
document.addEventListener(event, function (e) {
let el = e.target.closest(selector);
if (el) handler(el);
});
}
/* GIFT HELPERS */
$(document).ready(function() {
window.ghelper_AlreadyInAndCartItem = function(params, data) {
$.each(params.orderProducts, function(i, item) {
if (item.comment == data.label) {
data.already_in = parseInt(item.quantity);
}
if (item.id == data.variant_id) {
let cItem = {
sale_price: item.sale_price,
product: {
id: item.product_id,
title: item.title,
url: item.product_url,
first_image: item.first_image,
},
stock_item_id: item.stock_item_id,
variant_quantity: item.variant_quantity,
quantity: item.quantity
};
$('.popup-cart__item[data-variant-id="'+ data.variant_id +'"]').remove();
// console.log('cItem', cItem);
window.htmlElementOfCart(cItem, '', data.variant_id, true);
}
});
return data;
}
window.ghelper_cartTotalPriceByPropPermalinkAndProp = function(params, propPermalink, charTitle) {
let total = 0;
$.each(params.orderProducts, function(i, item) {
if (item.product && item.product.properties && (typeof item.product.properties !== 'undefined')) {
$.each(item.product.properties, function(ii, prop) {
if (prop.permalink && prop.permalink == propPermalink) {
if (prop.characteristics[0].permalink == charTitle) {
total += item.full_total_price;
}
}
});
}
});
return total;
}
window.ghelper_cartQuantityByPropPermalinkAndProp = function(params, propPermalink, charTitle) {
let count = 0;
$.each(params.orderProducts, function(i, item) {
if (item.product && item.product.properties && (typeof item.product.properties !== 'undefined')) {
$.each(item.product.properties, function(ii, prop) {
if (prop.permalink && prop.permalink == propPermalink) {
if (prop.characteristics[0].permalink == charTitle) {
count += item.quantity;
}
}
});
}
});
return count;
}
window.ghelper_checkCartAndOrder = function(data) {
if (window.location.href.indexOf('/cart_items') > -1 || window.location.href.indexOf('/new_order') > -1) {
if (data.action_completed) {
setTimeout(() => {
window.location.reload();
}, 1500);
}
if (data.already_in == false && data.should_be == false) {
if ($('.co-basket_item-description:contains("'+ data.gift_title_search +'")').length) {
let gift_item = $('.co-basket_item-description:contains("'+ data.gift_title_search +'")').parents('.co-basket_item');
gift_item.remove();
}
}
} else {
if (data.action_completed) {
setTimeout(() => {
Cart.forceUpdate();
}, 2500);
}
}
}
window.ghelper_noCoupon = function(params) {
if (params.eventData.coupon && params.eventData.coupon.valid) {
Cart.setCoupon({
coupon: ' '
});
$('.popup-cart__itogo').addClass('popup-cart__itogo_no-coupon');
$('.popup-cart__coupon-info').addClass('popup-cart__coupon-info_no-coupon');
$('.coupon-cart-btns').removeClass('hide-btns');
}
$('.coupon-cart-btns').addClass('_hide');
$('label[for="order_use_bonus_points"]').addClass('_hide');
$('.bonus_points').addClass('_hide');
}
window.ghelper_delAddGift = function(params, data, no_coupon) {
// если подарок уже в корзине
if (data.already_in) {
// но подарка не должно быть в корзине, удаляем подарок
if (!data.should_be) {
if (!window.del_gift) {
window.del_gift = {
items: []
};
}
window.del_gift.items.push(data.variant_id);
setTimeout(() => {
data.action_completed = true;
$('.popup-cart__item[data-variant-id="'+ data.variant_id +'"]').remove();
}, 500);
} else {
// если в корзине подарок есть, но кол-во не соответ. нужному
if (data.already_in != data.quantity && data.quantity > 0) {
if (!window.set_gift) {
window.set_gift = {
items: {},
comments: {}
};
}
window.set_gift.items[data.variant_id] = data.quantity;
window.set_gift.comments[data.variant_id] = data.label;
setTimeout(() => {
data.action_completed = true;
$('[name="cart[quantity]['+ data.variant_id +']"]').val(data.quantity);
}, 500);
}
}
if (no_coupon == 'no_coupon') {
// запрещаем промокод
window.ghelper_noCoupon(params);
}
// если подарка еще нет в корзине
} else {
// добавляем товар в корзину
if (data.quantity) {
if (!window.add_gift) {
window.add_gift = {
items: {},
comments: {}
};
}
window.add_gift.items[data.variant_id] = data.quantity;
window.add_gift.comments[data.variant_id] = data.label;
setTimeout(() => {
data.action_completed = true;
}, 500);
}
// позволяем применить промокод и писать бонусы ??
$('.coupon-cart-btns').removeClass('_hide');
$('label[for="order_use_bonus_points"]').removeClass('_hide');
$('.bonus_points').removeClass('_hide');
}
}
});
/* GIFTS */
$(document).ready(function() {
EventBus.subscribe('update_items:insales:cart', function(eventData) {
let orderProducts = eventData.order_lines;
let cartTotalPrice = eventData.total_price;
let cartItemsPrice = eventData.items_price;
$.each(orderProducts, function(i, item) {
// Подарочный электронный сертификат пропускаем, не учитываем
if (item.product_id == 379582371) {
cartTotalPrice -= item.full_total_price;
cartItemsPrice -= item.total_price;
}
});
let today = new Date();
let dd = String(today.getDate()).padStart(2, '0');
let mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0!
let yyyy = today.getFullYear();
let hh = today.getHours();
hh = ("0" + hh).slice(-2);
let min = today.getMinutes();
min = ("0" + min).slice(-2);
today = yyyy +''+ mm +''+ dd +''+ hh +''+ min;
let today_int = parseInt(today);
let params = {
eventData: eventData,
orderProducts: orderProducts,
cartTotalPrice: cartTotalPrice,
cartItemsPrice: cartItemsPrice,
today_int: today_int
};
window.del_gift = false;
window.set_gift = false;
window.add_gift = false;
// list gifts
setTimeout(() => {
if (window.del_gift)
Cart.delete(window.del_gift);
if (window.set_gift)
Cart.set(window.set_gift);
if (window.add_gift)
Cart.add(window.add_gift);
}, 500);
});
});
Мы используем файлы cookie и аналитические сервисы (Яндекс.Метрика, top.mail.ru) для улучшения работы сайта и предоставления персонализированных услуг. Продолжая пользоваться сайтом, вы соглашаетесь с их использованием. Подробнее – в Политике конфиденциальности