<link href="https://steklomall.ru/bitrix/cache/css/s1/main/template_9ede261412ae8b870cf8b6041e4d12ec/template_9ede261412ae8b870cf8b6041e4d12ec.css?1548683023239392" type="text/css" data-template-style="true"
rel="stylesheet"/>
<script type="text/javascript" src="https://steklomall.ru//bitrix/cache/js/s1/main/kernel_main/kernel_main.js?1548682979288581"></script>
<script type="text/javascript" src="https://steklomall.ru//bitrix/cache/js/s1/main/page_f1074ed538653fabb342c4c0e4f1f3f5/page_f1074ed538653fabb342c4c0e4f1f3f5.js?15486981491183"></script>
<script type="text/javascript" src="https://steklomall.ru//bitrix/cache/js/s1/main/template_053ea486a9a3179bb2de9fb3c7190263/template_053ea486a9a3179bb2de9fb3c7190263.js?1548682979434270"></script>
<div class="container">
<div class="calculator">
<div class="calculator__content">
<div class="row">
<div class="col col_size_4 col_md_12">
<div class="block block_type_product-type" id="widget_calc_type">
<div class="block__inner">
<div class="h2 block__heading block__heading_lg">
Выбор изделия
</div>
<div class="block__content">
<form name="form-step1" action="" method="GET">
<div class="group group_size_sm">
<div class="radio">
<input type="radio" name="CALC_TYPE" id="product-type-108" value="shower" checked="checked">
<label for="product-type-108">
Душевая кабина </label>
</div>
</div>
<div class="group group_size_sm">
<div class="radio">
<input type="radio" name="CALC_TYPE" id="product-type-110" value="skinali">
<label for="product-type-110">
Скинали </label>
</div>
</div>
<div class="group group_size_sm">
<div class="radio">
<input type="radio" name="CALC_TYPE" id="product-type-109" value="doors">
<label for="product-type-109">
Двери </label>
</div>
</div>
</form>
</div>
</div>
</div>
<script>
$(function() {
var holder = $('.calculator'),
form = $('form[name="form-step1"]', holder);
form.on('submit', function (e) {
e.preventDefault();
holder.addClass('loading');
$.ajax({
url: form.prop('action'),
type: 'GET',
cache: false,
dataType: 'html',
data: form.serializeArray(),
success: function (html) {
holder.replaceWith(html);
}
});
});
$('input[name="CALC_TYPE"]', form).on('change', function (e) {
form.submit();
});
});
</script>
</div>
<div class="col col_size_4 col_md_12">
<div class="block block_type_glass-width" id="widget_thickness">
<div class="block__inner">
<div class="h2 block__heading block__heading_lg">
Толщина стекла
</div>
<div class="block__content">
<div class="group group_size_sm">
<div class="radio">
<input type="radio" name="THICKNESS" id="glass-width-128" value="128" checked="">
<label for="glass-width-128">
8 мм </label>
</div>
</div>
<div class="group group_size_sm">
<div class="radio">
<input type="radio" name="THICKNESS" id="glass-width-129" value="129">
<label for="glass-width-129">
10 мм </label>
</div>
</div>
</div>
<div class="block__footer">
От выбранной вами толщины будет зависеть не только цена, но и прочность изделия.
</div>
</div>
</div>
<script>
var ThicknessWidget = function (holder) {
this.holder = holder;
};
ThicknessWidget.prototype.getData = function() {
return {
success: true,
value: this.holder.find('input[name="THICKNESS"]:checked').val()
};
};
ThicknessWidget.prototype.getPriceList = function () {
return {"115_129":4140,"115_128":3408,"116_129":51,"116_128":400,"136_128":4536,"136_129":5600,"135_129":4368,"135_128":4368,"137_129":6500,"137_128":5136,"134_129":4140,"134_128":3408,"161_128":4836,"161_129":5800,"115_181":2000,"116_181":3850};
};
ThicknessWidget.prototype.getTextView = function () {
return $.trim(this.holder.find('.block__heading').text()) + ": " + $.trim(this.holder.find('input[type="radio"]:checked + label').text());
};
$(function() {
calc.registerWidget('thickness', new ThicknessWidget($('#widget_thickness')));
});
</script> </div>
<div class="col col_size_4 col_md_12">
<div class="block block_type_glass-type" id="widget_glass_type">
<div class="block__inner">
<div class="h2 block__heading block__heading_lg">
Тип стекла
</div>
<div class="block__content">
<div class="group group_size_sm block__info">
<div class="radio">
<input type="radio" name="GLASS_TYPE" id="glass-type-134" value="134" data-price="100">
<label for="glass-type-134">
Прозрачное </label>
</div>
</div>
<div class="group group_size_sm block__info">
<div class="radio">
<input type="radio" name="GLASS_TYPE" id="glass-type-135" value="135" data-price="500">
<label for="glass-type-135">
Матовое </label>
</div>
</div>
<div class="group group_size_sm block__info">
<div class="radio">
<input type="radio" name="GLASS_TYPE" id="glass-type-136" value="136" data-price="500">
<label for="glass-type-136">
Бронзовое </label>
</div>
</div>
<div class="group group_size_sm block__info">
<div class="radio">
<input type="radio" name="GLASS_TYPE" id="glass-type-137" value="137" data-price="500">
<label for="glass-type-137">
Оптивайт </label>
</div>
</div>
<div class="group group_size_sm block__info">
<div class="radio">
<input type="radio" name="GLASS_TYPE" id="glass-type-161" value="161" data-price="0">
<label for="glass-type-161">
Серое </label>
</div>
</div>
</div>
</div>
</div>
<script>
var GlassTypeWidget = function(holder) {
this.holder = holder;
};
GlassTypeWidget.prototype.getValue = function () {
return this.holder.find('input[name="GLASS_TYPE"]:checked').val();
};
GlassTypeWidget.prototype.getPrice = function () {
return parseInt(this.holder.find('input[name="GLASS_TYPE"]:checked').data('price'));
};
GlassTypeWidget.prototype.getData = function () {
var result = {
success: true,
value: this.getValue(),
price: this.getPrice()
};
return result;
};
GlassTypeWidget.prototype.getTextView = function () {
return $.trim(this.holder.find('.block__heading').text()) + ": " + $.trim(this.holder.find('input[type="radio"]:checked + label').text());
};
$(function() {
calc.registerWidget('glass_type', new GlassTypeWidget($('#widget_glass_type')));
});
</script> </div>
</div>
<div class="row">
<div class="col col_size_12">
<div class="block block_type_shower" data-profile-price="300" data-crossbar-price="1000" data-crossbar2-price="1800" data-recoil-price="4000" data-hinge-price="600">
<div class="block__inner">
<div class="h2 block__heading block__heading_md">
Тип кабины, размер
</div>
<div class="block__content">
<div class="row">
<div class="col col_size_8 col_md_6 col_sm_12">
<div class="block-thumb-selector">
<div class="row grid block-thumb-selector__items">
<div class="col col_size_3 col_md_4 grid-cell block-thumb-selector__item">
<div class="block-thumb-selector__inner" data-type="1">
<img src="/page-proofs/images/sh1.png" alt="" class="block-thumb-selector__image">
</div>
</div>
<div class="col col_size_3 col_md_4 grid-cell block-thumb-selector__item">
<div class="block-thumb-selector__inner block-thumb-selector__inner_active" data-type="2">
<img src="/page-proofs/images/sh2.png" alt="" class="block-thumb-selector__image">
</div>
</div>
<div class="col col_size_3 col_md_4 grid-cell block-thumb-selector__item">
<div class="block-thumb-selector__inner" data-type="3">
<img src="/page-proofs/images/sh3.png" alt="" class="block-thumb-selector__image">
</div>
</div>
<div class="col col_size_3 col_md_4 grid-cell block-thumb-selector__item">
<div class="block-thumb-selector__inner" data-type="4">
<img src="/page-proofs/images/sh4.png" alt="" class="block-thumb-selector__image">
</div>
</div>
<div class="col col_size_3 col_md_4 grid-cell block-thumb-selector__item">
<div class="block-thumb-selector__inner" data-type="5">
<img src="/page-proofs/images/sh5.png" alt="" class="block-thumb-selector__image">
</div>
</div>
<div class="col col_size_3 col_md_4 grid-cell block-thumb-selector__item">
<div class="block-thumb-selector__inner" data-type="6">
<img src="/page-proofs/images/sh6.png" alt="" class="block-thumb-selector__image">
</div>
</div>
<div class="col col_size_3 col_md_4 grid-cell block-thumb-selector__item">
<div class="block-thumb-selector__inner" data-type="7">
<img src="/page-proofs/images/sh7.png" alt="" class="block-thumb-selector__image">
</div>
</div>
<div class="col col_size_3 col_md_4 grid-cell block-thumb-selector__item">
<div class="block-thumb-selector__inner" data-type="8">
<img src="/page-proofs/images/sh8.png" alt="" class="block-thumb-selector__image">
</div>
</div>
</div>
</div>
</div>
<div class="col col_size_4 col_md_6 col_sm_12">
<div class="block__fields" data-type="1">
<div class="group group_size_lg block__description">
<b>Тип перегородки:</b>
<br>
<span class="blue">Название</span>
</div>
<div class="group group_size_xl">
<div class="block__caption">
Размер:
</div>
<div class="group group_size_lg">
<div class="hroup group_size_sm">
<label class="label">
Высота <span class="blue">h</span>
</label>
<input type="number" name="h" value="2000" class="control control_size_md">
<span class="blue">мм</span>
</div>
<div class="block__caption block__caption_size_sm">
До 1000 мм
</div>
<div class="hroup group_size_sm">
<label class="label">
Параметр <span class="blue">w</span>
</label>
<input type="number" name="w" max="1000" class="control control_size_md">
<span class="blue">мм</span>
</div>
</div>
<div class="group group_size_lg">
<div class="block__caption">
Наличие верхней штанги
</div>
<div class="row">
<div class="col col_size_6">
<div class="radio">
<input type="radio" name="add_1" value="Y">
<label>
Да
</label>
</div>
</div>
<div class="col col_size_6">
<div class="radio">
<input type="radio" name="add_1" value="N" checked="">
<label>
Нет
</label>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="block__fields" data-type="2" style="display: block;">
<div class="group group_size_lg block__description">
<b>Тип перегородки:</b>
<br>
<span class="blue">Название</span>
</div>
<div class="group group_size_xl">
<div class="block__caption">
Размер:
</div>
<div class="group group_size_lg">
<div class="hroup group_size_sm">
<label class="label">
Высота <span class="blue">h</span>
</label>
<input type="number" name="h" value="2000" class="control control_size_md">
<span class="blue">мм</span>
</div>
<div class="block__caption block__caption_size_sm">
До 1000 мм
</div>
<div class="hroup group_size_sm">
<label class="label">
Дверь <span class="blue">d</span>
</label>
<input type="number" name="d" max="1000" class="control control_size_md">
<span class="blue">мм</span>
</div>
</div>
</div>
</div>
<div class="block__fields" data-type="3">
<div class="group group_size_lg block__description">
<b>Тип перегородки:</b>
<br>
<span class="blue">Название</span>
</div>
<div class="group group_size_xl">
<div class="block__caption">
Размер:
</div>
<div class="group group_size_lg">
<div class="hroup group_size_sm">
<label class="label">
Высота <span class="blue">h</span>
</label>
<input type="number" name="h" max="1000" value="2000" class="control control_size_md">
<span class="blue">мм</span>
</div>
<div class="block__caption block__caption_size_sm">
До 1000 мм
</div>
<div class="hroup group_size_sm">
<label class="label">
Дверь <span class="blue">d</span>
</label>
<input type="number" name="d" max="1000" class="control control_size_md">
<span class="blue">мм</span>
</div>
<div class="hroup group_size_sm">
<label class="label">
Параметр <span class="blue">l</span>
</label>
<input type="number" name="l" max="1000" class="control control_size_md">
<span class="blue">мм</span>
</div>
<div class="group group_size_lg">
<div class="block__caption">
Наличие верхней штанги
</div>
<div class="row">
<div class="col col_size_6">
<div class="radio">
<input type="radio" name="add_3" value="Y">
<label>
Да
</label>
</div>
</div>
<div class="col col_size_6">
<div class="radio">
<input type="radio" name="add_3" value="N" checked="">
<label>
Нет
</label>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="block__fields" data-type="4">
<div class="group group_size_lg block__description">
<b>Тип перегородки:</b>
<br>
<span class="blue">Название</span>
</div>
<div class="group group_size_xl">
<div class="block__caption">
Размер:
</div>
<div class="group group_size_lg">
<div class="hroup group_size_sm">
<label class="label">
Высота <span class="blue">h</span>
</label>
<input type="number" name="h" value="2000" class="control control_size_md">
<span class="blue">мм</span>
</div>
<div class="block__caption block__caption_size_sm">
До 1000 мм
</div>
<div class="hroup group_size_sm">
<label class="label">
Параметр <span class="blue">l</span>
</label>
<input type="number" name="l" class="control control_size_md">
<span class="blue">мм</span>
</div>
<div class="hroup group_size_sm">
<label class="label">
Дверь <span class="blue">d</span>
</label>
<input type="number" name="d" class="control control_size_md">
<span class="blue">мм</span>
</div>
<div class="hroup group_size_sm">
<label class="label">
Параметр <span class="blue">w</span>
</label>
<input type="number" name="w" max="1000" class="control control_size_md">
<span class="blue">мм</span>
</div>
<div class="group group_size_lg">
<div class="block__caption">
Наличие верхней штанги
</div>
<div class="row">
<div class="col col_size_6">
<div class="radio">
<input type="radio" name="add_4" value="Y">
<label>
Да
</label>
</div>
</div>
<div class="col col_size_6">
<div class="radio">
<input type="radio" name="add_4" value="N" checked="">
<label>
Нет
</label>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="block__fields" data-type="5">
<div class="group group_size_lg block__description">
<b>Тип перегородки:</b>
<br>
<span class="blue">Название</span>
</div>
<div class="group group_size_xl">
<div class="block__caption">
Размер:
</div>
<div class="group group_size_lg">
<div class="hroup group_size_sm">
<label class="label">
Высота <span class="blue">h</span>
</label>
<input type="number" name="h" value="2000" class="control control_size_md">
<span class="blue">мм</span>
</div>
<div class="block__caption block__caption_size_sm">
До 1000 мм
</div>
<div class="hroup group_size_sm">
<label class="label">
Параметр <span class="blue">f</span>
</label>
<input type="number" name="f" class="control control_size_md">
<span class="blue">мм</span>
</div>
<div class="hroup group_size_sm">
<label class="label">
Параметр <span class="blue">l</span>
</label>
<input type="number" name="l" class="control control_size_md">
<span class="blue">мм</span>
</div>
<div class="hroup group_size_sm">
<label class="label">
Дверь <span class="blue">d2</span>
</label>
<input type="number" name="d2" max="1000" class="control control_size_md">
<span class="blue">мм</span>
</div>
<div class="hroup group_size_sm">
<label class="label">
Дверь <span class="blue">d</span>
</label>
<input type="number" name="d" max="1000" class="control control_size_md">
<span class="blue">мм</span>
</div>
</div>
<div class="group group_size_lg">
<div class="block__caption">
Наличие верхней штанги
</div>
<div class="row">
<div class="col col_size_6">
<div class="radio">
<input type="radio" name="add_5" value="Y">
<label>
Да
</label>
</div>
</div>
<div class="col col_size_6">
<div class="radio">
<input type="radio" name="add_5" value="N" checked="">
<label>
Нет
</label>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="block__fields" data-type="6">
<div class="group group_size_lg block__description">
<b>Тип перегородки:</b>
<br>
<span class="blue">Название</span>
</div>
<div class="group group_size_xl">
<div class="block__caption">
Размер:
</div>
<div class="group group_size_lg">
<div class="hroup group_size_sm">
<label class="label">
Высота <span class="blue">h</span>
</label>
<input type="number" name="h" value="2000" class="control control_size_md">
<span class="blue">мм</span>
</div>
<div class="block__caption block__caption_size_sm">
До 1000 мм
</div>
<div class="hroup group_size_sm">
<label class="label">
Параметр <span class="blue">w</span>
</label>
<input type="number" name="w" class="control control_size_md">
<span class="blue">мм</span>
</div>
<div class="hroup group_size_sm">
<label class="label">
Параметр <span class="blue">l</span>
</label>
<input type="number" name="l" class="control control_size_md">
<span class="blue">мм</span>
</div>
<div class="hroup group_size_sm">
<label class="label">
Дверь <span class="blue">d</span>
</label>
<input type="number" name="d" max="1000" class="control control_size_md">
<span class="blue">мм</span>
</div>
</div>
<div class="group group_size_lg">
<div class="block__caption">
Наличие верхней штанги
</div>
<div class="row">
<div class="col col_size_6">
<div class="radio">
<input type="radio" name="add_6" value="Y">
<label>
Да
</label>
</div>
</div>
<div class="col col_size_6">
<div class="radio">
<input type="radio" name="add_6" value="N" checked="">
<label>
Нет
</label>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="block__fields" data-type="7">
<div class="group group_size_lg block__description">
<b>Тип перегородки:</b>
<br>
<span class="blue">Название</span>
</div>
<div class="group group_size_xl">
<div class="block__caption">
Размер:
</div>
<div class="group group_size_lg">
<div class="hroup group_size_sm">
<label class="label">
Высота <span class="blue">h</span>
</label>
<input type="number" name="h" value="2000" class="control control_size_md">
<span class="blue">мм</span>
</div>
<div class="block__caption block__caption_size_sm">
До 1000 мм
</div>
<div class="hroup group_size_sm">
<label class="label">
Дверь <span class="blue">d</span>
</label>
<input type="number" name="d" class="control control_size_md">
<span class="blue">мм</span>
</div>
<div class="hroup group_size_sm">
<label class="label">
Параметр <span class="blue">l</span>
</label>
<input type="number" name="l" class="control control_size_md">
<span class="blue">мм</span>
</div>
<div class="hroup group_size_sm">
<label class="label">
Параметр <span class="blue">w</span>
</label>
<input type="number" name="w" max="1000" class="control control_size_md">
<span class="blue">мм</span>
</div>
</div>
</div>
</div>
<div class="block__fields" data-type="8">
<div class="group group_size_lg block__description">
<b>Тип перегородки:</b>
<br>
<span class="blue">Угловая душевая кабина</span>
</div>
<div class="group group_size_xl">
<div class="block__caption">
Размер:
</div>
<div class="group group_size_lg">
<div class="hroup group_size_sm">
<label class="label">
Высота <span class="blue">h</span>
</label>
<input type="number" name="h" value="2000" class="control control_size_md">
<span class="blue">мм</span>
</div>
<div class="block__caption block__caption_size_sm">
До 1000 мм
</div>
<div class="hroup group_size_sm">
<label class="label">
Параметр <span class="blue">f</span>
</label>
<input type="number" name="f" class="control control_size_md">
<span class="blue">мм</span>
</div>
<div class="hroup group_size_sm">
<label class="label">
Дверь <span class="blue">d2</span>
</label>
<input type="number" name="d2" class="control control_size_md">
<span class="blue">мм</span>
</div>
<div class="hroup group_size_sm">
<label class="label">
Дверь <span class="blue">d</span>
</label>
<input type="number" name="d" class="control control_size_md">
<span class="blue">мм</span>
</div>
<div class="hroup group_size_sm">
<label class="label">
Параметр <span class="blue">l</span>
</label>
<input type="number" name="l" class="control control_size_md">
<span class="blue">мм</span>
</div>
</div>
</div>
</div>
<a class="button block__btn button_step3" href="javascript:void(0);" style="display: none;">Продолжить</a>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
var ShowerSize = function (holder) {
this.holder = holder;
this.type = 2;
};
ShowerSize.prototype.setType = function (t) {
this.type = parseInt(t);
};
ShowerSize.prototype.checkNextButton = function () {
var data = this.getData();
if (data.success) {
this.holder.find('.button_step3').show();
}
else {
this.holder.find('.button_step3').hide();
}
$('.calculator').find('.step-3').hide();
calc.enabled(false);
};
ShowerSize.prototype.getSizes = function () {
var result = {
success: true,
sizes: {}
};
this.holder.find('input[type="number"]:visible').each(function () {
if ($(this).val() != '') {
result.sizes[$(this).prop('name')] = parseInt($(this).val());
}
else {
result.success = false;
}
});
return result;
};
ShowerSize.prototype.getDoorsLength = function () {
var sizes = this.getSizes().sizes,
sum = 0;
switch (this.type) {
case 7:
{
sum = sizes.d;
break;
}
case 8:
{
sum = sizes.d + sizes.d2;
break;
}
}
return sum * 1e-3;
};
ShowerSize.prototype.getData = function () {
var result = {
success: true,
sizes: {}
};
var sel = this.holder.find('.block__fields:visible');
if (sel.length == 0) {
result.success = false;
}
else {
result.type = sel.data('type');
}
result = $.extend(result, this.getSizes());
if (this.holder.find('.has-error').length > 0) {
result.success = false;
}
if (result.success) {
// Считаем цену текущего варианта!
var profilePrice = parseInt(this.holder.data('profile-price')),
crossbarPrice = parseInt(this.holder.data('crossbar-price')),
crossbar2Price = parseInt(this.holder.data('crossbar2-price')),
recoilPrice = parseInt(this.holder.data('recoil-price')),
hingePrice = parseInt(this.holder.data('hinge-price')),
sum = 0;
// Петли?
var dCnt = this.getDoorsCount();
if (dCnt > 0) {
console.log("Hinges = ", hingePrice * dCnt * 2);
sum += hingePrice * dCnt * 2;
}
// П-образный профиль
var pLength = this.getProfileLength();
console.log("Profile length = ", pLength, pLength * profilePrice);
sum += pLength * profilePrice;
// Штанга?
if (dCnt >= 0) { // Для петлевых дверей..
// Пользователь вообще захотел штангу?
if (sel.find('input[name^="add"]:checked:visible').val() == 'Y') {
console.log("crossBar = ", this.getCrossbarLength() * crossbarPrice);
sum += this.getCrossbarLength() * crossbarPrice;
}
}
else if (dCnt < 0) { // Для откатных дверей
console.log("crossBar = ", this.getCrossbarLength() * crossbar2Price);
sum += this.getCrossbarLength() * crossbar2Price;
// Суммируем стоимость откатного механизма..
console.log("recoil = ", this.getDoorsLength() * recoilPrice);
sum += this.getDoorsLength() * recoilPrice;
}
result.price = sum;
}
result['shower_type'] = this.holder.find('.block-thumb-selector__inner_active').data('type');
return result;
};
ShowerSize.prototype.getTextView = function () {
var data = this.getData();
var result = "Душевая кабина №" + data.shower_type + "\n";
result += "Размеры \n";
for (var key in data.sizes) {
result += key + " = " + data.sizes[key] + "\n";
}
return result;
};
ShowerSize.prototype.getSquare = function () {
var data = this.getData(),
result = 0;
if (data.success) {
switch (this.type) {
case 1:
{
result = data.sizes.w * data.sizes.h; // + data.sizes.l
break;
}
case 2:
{
result = data.sizes.d * data.sizes.h;
break;
}
case 3:
{
result = (data.sizes.d + data.sizes.l) * data.sizes.h;
break;
}
case 4:
case 6:
case 7:
{
result = (data.sizes.w + data.sizes.d + data.sizes.l) * data.sizes.h;
break;
}
case 5:
case 8:
{
result = (data.sizes.f + data.sizes.d2 + data.sizes.d + data.sizes.l) * data.sizes.h;
break;
}
}
}
return result * 1e-6;
};
ShowerSize.prototype.getDoorsCount = function () {
switch (this.type)
{
case 1:
{
return 0;
break;
}
case 2:
case 3:
case 4:
case 6:
{
return 1;
}
case 5:
{
return 2;
}
case 7:
{
return -1;
}
case 8:
{
return -2;
}
}
return 0;
};
ShowerSize.prototype.getProfileLength = function () {
var result = 0,
data = this.getSizes();
if (data.success) {
switch (this.type) {
case 1:
{
result = data.sizes.h + data.sizes.w;
break;
}
case 3:
{
result = data.sizes.h + data.sizes.l;
break;
}
case 4:
{
result = data.sizes.h*2 + data.sizes.w + data.sizes.l;
break;
}
case 5:
case 8:
{
result = data.sizes.h*2 + data.sizes.f + data.sizes.l;
break;
}
case 6:
case 7:
{
result = data.sizes.h*2 + data.sizes.w + data.sizes.l;
break;
}
}
}
return result * 1e-3;
};
ShowerSize.prototype.getCrossbarLength = function () {
var result = 0,
data = this.getSizes();
switch (this.type) {
case 1:
{
result = data.sizes.w;
break;
}
case 3:
{
result = data.sizes.d + data.sizes.l;
break;
}
case 4:
case 6:
case 7:
{
result = data.sizes.w + data.sizes.d + data.sizes.l;
break;
}
case 5:
case 8:
{
result = data.sizes.l + data.sizes.d + data.sizes.d2 + data.sizes.f;
break;
}
}
return result * 1e-3;
};
$(function()
{
var block = $('.block_type_shower'),
items = block.find('.block-thumb-selector__inner'),
fields = block.find('.block__fields');
items.on('click', function()
{
items.removeClass('block-thumb-selector__inner_active');
$(this).addClass('block-thumb-selector__inner_active');
fields.hide();
fields.filter('[data-type="' + $(this).data('type') + '"]').show();
if ($(this).data('type') == 1) {
calc.widgets.handle_type.setHandlesVisibility(false);
}
else {
calc.widgets.handle_type.setHandlesVisibility(true);
}
calc.widgets.shower_size.setType($(this).data('type'));
calc.widgets.shower_size.checkNextButton();
});
block.find('input[type="number"]').each(function() {
$(this).on('focusout', function () {
var vInt = parseInt($(this).val());
if ($(this).val() == '') {
$(this).parent().addClass('has-error');
}
else if (vInt < parseInt($(this).prop('min'))) {
$(this).parent().addClass('has-error');
}
else if (vInt > parseInt($(this).prop('max'))) {
$(this).parent().addClass('has-error');
}
else {
$(this).parent().removeClass('has-error');
}
calc.widgets.shower_size.checkNextButton();
});
});
calc.registerWidget('shower_size', new ShowerSize(block));
// Тут мы прячем все виджеты после этого..
$('.calculator').find('.step-3').hide();
// Кнопка будет видна только когда все размеры будут указаны..
block.find('.button_step3').hide();
block.find('.button_step3').on('click', function () {
$('.calculator').find('.step-3').show();
calc.enabled(true);
calculate();
});
$('.calculator').on('change', ':input', function (e) {
calculate();
});
});
</script> </div>
</div>
<div class="row">
<div class="col col_size_4 col_md_12">
<div class="block block_type_glass-type step-3" id="widget_print_type" style="display: none;">
<div class="block__inner">
<div class="h2 block__heading block__heading_lg">
Вид печати
</div>
<div class="block__content">
<div class="group group_size_sm block__info">
<div class="radio">
<input type="radio" name="PRINT_TYPE" id="print-type-117" value="117" data-price="2000">
<label for="print-type-117">
Фотопечать </label>
</div>
<div class="info">
<div class="info__toggle"></div>
<div class="info__content">Цветное изображение на поверхности стекла. Широко используется в оформлении дизайна интерьера и расширяет спектр применяемых стилевых решений. </div>
</div>
</div>
<div class="group group_size_sm block__info">
<div class="radio">
<input type="radio" name="PRINT_TYPE" id="print-type-160" value="160" data-price="3000">
<label for="print-type-160">
С рисунком </label>
</div>
<div class="info">
<div class="info__toggle"></div>
<div class="info__content">123</div>
</div>
</div>
<div class="group group_size_sm block__info">
<div class="radio">
<input type="radio" name="PRINT_TYPE" id="print-type-139" value="139" data-price="1500">
<label for="print-type-139">
Крашеное Ral </label>
</div>
<div class="info">
<div class="info__toggle"></div>
<div class="info__content">Покраска стекла в любой цвет по шкале RAL может быть выполнена несколькими способами: нанесение на стекло через краскопульт предварительно отколерованных эмалевых красок или нанесение на стекло цветного изображение посредством фотопечати. </div>
</div>
</div>
<div class="group group_size_sm block__info">
<div class="radio">
<input type="radio" name="PRINT_TYPE" id="print-type-119" value="119" data-price="0" checked="">
<label for="print-type-119">
Без печати </label>
</div>
</div>
<p>Рисунок на стекло может наносить несколькими способами. Или посредством нанесения на стекло пескоструйной обработки или посредством химического матирования. Цена за квадратный метр может меняться от способа нанесения рисунка и сложности наносимого рисунка</p>
</div>
</div>
</div>
<script>
var PrintTypeWidget = function(holder) {
this.holder = holder;
};
PrintTypeWidget.prototype.getValue = function () {
return this.holder.find('input[name="PRINT_TYPE"]:checked').val();
};
PrintTypeWidget.prototype.getPrice = function () {
return parseInt(this.holder.find('input[name="PRINT_TYPE"]:checked').data('price'));
};
PrintTypeWidget.prototype.getTextView = function () {
return $.trim(this.holder.find('.block__heading').text()) + ": " + $.trim(this.holder.find('input[type="radio"]:checked + label').text());
};
$(function() {
calc.registerWidget('print_type', new PrintTypeWidget($('#widget_print_type')));
});
</script> </div>
<div class="col col_size_4 col_md_12">
<div class="block block_type_handle-type step-3 block_accent" style="display: none;">
<div class="block__inner">
<div class="h2 block__heading block__heading_lg">
Тип ручки
</div>
<div class="block__content">
<div class="block-thumb-selector">
<div class="row grid block-thumb-selector__items">
<div class="col col_size_3 grid-cell block-thumb-selector__item">
<div class="block-thumb-selector__inner" data-id="184" data-price="0" data-multiplier="0" data-name="Без ручки">
<img src="/upload/iblock/f97/f97166a5d5395cb668d77653a976e642.png" alt="Ручка" class="block-thumb-selector__image">
</div>
</div>
<div class="col col_size_3 grid-cell block-thumb-selector__item">
<div class="block-thumb-selector__inner" data-id="140" data-price="1650" data-multiplier="3" data-name="Ручка-скоба">
<img src="/upload/iblock/65a/65a9f1e67b54bd19cb88688d49159ddd.jpg" alt="Ручка" class="block-thumb-selector__image">
</div>
</div>
<div class="col col_size_3 grid-cell block-thumb-selector__item">
<div class="block-thumb-selector__inner" data-id="141" data-price="2483" data-multiplier="3" data-name="Ручка-скоба 2">
<img src="/upload/iblock/00a/00af05e4222463e8090c1a0583c1e9a5.jpg" alt="Ручка" class="block-thumb-selector__image">
</div>
</div>
<div class="col col_size_3 grid-cell block-thumb-selector__item">
<div class="block-thumb-selector__inner" data-id="142" data-price="1828" data-multiplier="3" data-name="Ручка скоба 3">
<img src="/upload/iblock/306/306edca41741e5b5d14177ce02e08fd4.jpg" alt="Ручка" class="block-thumb-selector__image">
</div>
</div>
<div class="col col_size_3 grid-cell block-thumb-selector__item">
<div class="block-thumb-selector__inner" data-id="173" data-price="1992" data-multiplier="3" data-name="Кноб 6">
<img src="/upload/iblock/5a7/5a7d2b8e237027699e0674d4b355ac71.jpg" alt="Ручка" class="block-thumb-selector__image">
</div>
</div>
<div class="col col_size_3 grid-cell block-thumb-selector__item">
<div class="block-thumb-selector__inner" data-id="180" data-price="1014" data-multiplier="3" data-name="Кнбо 12">
<img src="/upload/iblock/244/2443d9829f65f9cf855e9d3feaf09158.jpg" alt="Ручка" class="block-thumb-selector__image">
</div>
</div>
<div class="col col_size_3 grid-cell block-thumb-selector__item">
<div class="block-thumb-selector__inner" data-id="179" data-price="1014" data-multiplier="3" data-name="Кноб 11">
<img src="/upload/iblock/fef/feffabb3b5595e8a2adde0c2b4035a92.jpg" alt="Ручка" class="block-thumb-selector__image">
</div>
</div>
<div class="col col_size_3 grid-cell block-thumb-selector__item">
<div class="block-thumb-selector__inner" data-id="178" data-price="1014" data-multiplier="3" data-name="Кноб 10">
<img src="/upload/iblock/fa8/fa8d656f90b3d3be21b7406b685952eb.jpg" alt="Ручка" class="block-thumb-selector__image">
</div>
</div>
<div class="col col_size_3 grid-cell block-thumb-selector__item">
<div class="block-thumb-selector__inner" data-id="177" data-price="1014" data-multiplier="3" data-name="Кноб 8">
<img src="/upload/iblock/047/047b145f42877e3c2f3649075fc80ce2.jpg" alt="Ручка" class="block-thumb-selector__image">
</div>
</div>
<div class="col col_size_3 grid-cell block-thumb-selector__item">
<div class="block-thumb-selector__inner" data-id="176" data-price="1014" data-multiplier="3" data-name="Кноб 9">
<img src="/upload/iblock/296/296d6f419bda5f550af3fb2003035b7c.jpg" alt="Ручка" class="block-thumb-selector__image">
</div>
</div>
<div class="col col_size_3 grid-cell block-thumb-selector__item">
<div class="block-thumb-selector__inner" data-id="175" data-price="1014" data-multiplier="3" data-name="Кноб 8">
<img src="/upload/iblock/3ae/3aec9b7836726d4429fd4c310e955ba5.jpg" alt="Ручка" class="block-thumb-selector__image">
</div>
</div>
<div class="col col_size_3 grid-cell block-thumb-selector__item">
<div class="block-thumb-selector__inner" data-id="174" data-price="1014" data-multiplier="3" data-name="Кноб 7">
<img src="/upload/iblock/61c/61c2612d6160241515672e7d2f71233a.jpg" alt="Ручка" class="block-thumb-selector__image">
</div>
</div>
<div class="col col_size_3 grid-cell block-thumb-selector__item">
<div class="block-thumb-selector__inner" data-id="164" data-price="6841" data-multiplier="3" data-name="Нажимная без замка">
<img src="/upload/iblock/c4f/c4f65035c8602df688a87ea27eefafef.jpg" alt="Ручка" class="block-thumb-selector__image">
</div>
</div>
<div class="col col_size_3 grid-cell block-thumb-selector__item">
<div class="block-thumb-selector__inner" data-id="172" data-price="1765" data-multiplier="3" data-name="Кноб 5">
<img src="/upload/iblock/dc4/dc4414ad54b978b5f48812af0deb8c82.jpg" alt="Ручка" class="block-thumb-selector__image">
</div>
</div>
<div class="col col_size_3 grid-cell block-thumb-selector__item">
<div class="block-thumb-selector__inner" data-id="171" data-price="1014" data-multiplier="3" data-name="Кноб 4">
<img src="/upload/iblock/7b2/7b25743763d8d2988f15e73524c8659c.jpg" alt="Ручка" class="block-thumb-selector__image">
</div>
</div>
<div class="col col_size_3 grid-cell block-thumb-selector__item">
<div class="block-thumb-selector__inner" data-id="170" data-price="2008" data-multiplier="3" data-name="Кноб 3">
<img src="/upload/iblock/080/0803aa28a252c5fd91b45748830e0754.jpg" alt="Ручка" class="block-thumb-selector__image">
</div>
</div>
<div class="col col_size_3 grid-cell block-thumb-selector__item">
<div class="block-thumb-selector__inner" data-id="169" data-price="3088" data-multiplier="3" data-name="Кноб ">
<img src="/upload/iblock/2a2/2a27567e21e91451765ea77455f63d08.jpg" alt="Ручка" class="block-thumb-selector__image">
</div>
</div>
<div class="col col_size_3 grid-cell block-thumb-selector__item">
<div class="block-thumb-selector__inner" data-id="168" data-price="2534" data-multiplier="3" data-name="Скоба 6">
<img src="/upload/iblock/e12/e127c1a23f398b92b1df009c35b8ab66.jpg" alt="Ручка" class="block-thumb-selector__image">
</div>
</div>
<div class="col col_size_3 grid-cell block-thumb-selector__item">
<div class="block-thumb-selector__inner" data-id="167" data-price="5648" data-multiplier="3" data-name="Скоба 5">
<img src="/upload/iblock/8c7/8c7ea2145060018343742e694584f2fa.jpg" alt="Ручка" class="block-thumb-selector__image">
</div>
</div>
<div class="col col_size_3 grid-cell block-thumb-selector__item">
<div class="block-thumb-selector__inner" data-id="166" data-price="1709" data-multiplier="3" data-name="Скоба 4">
<img src="/upload/iblock/11c/11c83492f151c53bc34f88d5b1de4eab.jpg" alt="Ручка" class="block-thumb-selector__image">
</div>
</div>
<div class="col col_size_3 grid-cell block-thumb-selector__item">
<div class="block-thumb-selector__inner" data-id="165" data-price="7061" data-multiplier="3" data-name="Ручка нажимная с замком">
<img src="/upload/iblock/353/353ab5e6f6297a65bec8a7955242f050.jpg" alt="Ручка" class="block-thumb-selector__image">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
var HandleTypeWidget = function (holder) {
this.holder = holder;
};
HandleTypeWidget.prototype.getData = function () {
var result = {
success: true
};
result.id = this.holder.find('.block-thumb-selector__inner_active').data('id');
if (result.id) {
result.price = parseInt(this.holder.find('.block-thumb-selector__inner_active').data('price'));
result.multiplier = parseFloat(this.holder.find('.block-thumb-selector__inner_active').data('multiplier'));
result.name = this.holder.find('.block-thumb-selector__inner_active').data('name');
}
else {
result.success = false;
}
return result;
};
HandleTypeWidget.prototype.getTextView = function () {
var data = this.getData();
return "Ручка: " + data.name;
};
HandleTypeWidget.prototype.setHandlesVisibility = function (flag) {
if (flag === true) {
this.holder.find('.block-thumb-selector__item').show();
}
else {
this.holder.find('.block-thumb-selector__item:gt(0)').hide();
this.holder.find('.block-thumb-selector__inner:first').click();
}
};
$(function()
{
var block = $('.block_type_handle-type'),
items = block.find('.block-thumb-selector__inner');
items.on('click', function()
{
items.removeClass('block-thumb-selector__inner_active');
$(this).addClass('block-thumb-selector__inner_active');
calculate();
});
calc.registerWidget('handle_type', new HandleTypeWidget(block));
});
</script> </div>
<div class="col col_size_4 col_md_12">
<div class="block block_type_handle-color step-3" style="display: none;">
<div class="block__inner">
<div class="h2 block__heading block__heading_lg">
Цвет ручки
</div>
<div class="block__content">
<div class="row">
<div class="group group_size_sm col col_size_6">
<div class="radio">
<input type="radio" name="handle-color" id="handle-color-143" value="143" data-price="100">
<label for="handle-color-143">
Матовая нержавеющая сталь </label>
</div>
</div>
<div class="group group_size_sm col col_size_6">
<div class="radio">
<input type="radio" name="handle-color" id="handle-color-144" value="144" data-price="200">
<label for="handle-color-144">
Другой цвет </label>
</div>
</div>
</div>
</div>
<div class="block__footer">
</div>
</div>
</div>
<script type="text/javascript">
var HandleColorWidget = function (holder) {
this.holder = holder;
};
HandleColorWidget.prototype.getData = function () {
var result = {
success: true
};
var colorSel = this.holder.find('input[name="handle-color"]:checked'),
color = colorSel.val(),
colorPrice = colorSel.data('price');
if (!color) {
result.success = false;
}
result.color = color;
result.price = colorPrice;
var sel = this.holder.find('.block-color-selector');
if (sel.length > 0) {
result.customColorName = this.holder.find('.block-color-selector__inner_active').data('name');
}
return result;
};
HandleColorWidget.prototype.getTextView = function () {
var data = this.getData();
var result = $.trim(this.holder.find('.block__heading').text()) + ": " + $.trim(this.holder.find('input[type="radio"]:checked + label').text());
if (data.customColorName) {
result += ", выбранный цвет: " + data.customColorName;
}
return result;
};
$(function()
{
var block = $('.block_type_handle-color'),
items = block.find('.block-color-selector__inner');
block.find('input[name="handle-color"]').change(function()
{
var field = block.find('.block__footer');
if ($(this).prop('checked')) {
$('.block-color-selector').hide();
$('.block-color-selector.block-color-' + $(this).val()).show();
}
});
block.find('input[name="handle-color"]:first').prop('checked', true).change();
items.on('click', function()
{
items.removeClass('block-color-selector__inner_active');
$(this).addClass('block-color-selector__inner_active');
});
calc.registerWidget('handle_color', new HandleColorWidget(block));
});
</script>
</div>
</div>
<div class="row">
<div class="col col_size_4 col_md_12">
<div class="block block_type_delivery step-3" id="widget_delivery" data-price-fix="1930" data-price-km="60" style="display: none;">
<div class="block__inner">
<div class="h2 block__heading">
Доставка
</div>
<div class="block__content">
<div class="block__rows">
<div class="group group_size_sm">
<div class="radio">
<input type="radio" name="delivery" id="delivery-y" value="Y">
<label for="delivery-y">
Да
</label>
</div>
</div>
<div class="group group_size_sm">
<div class="radio">
<input type="radio" name="delivery" id="delivery-n" value="N" checked="checked">
<label for="delivery-n">
Нет
</label>
</div>
</div>
<div class="block__field" style="display: none;">
<div class="group group_size_sm">
<label class="label">
Расстояние от МКАД
</label>
<input type="text" class="control control_size_md" name="distance">
<span class="blue">км</span>
</div>
<div class="group group_size_sm">
по Москве – 1930 руб.<br>
за пределами МКАД – 60 р. за 1 км
</div>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
var DeliveryWidget = function (holder) {
this.holder = holder;
};
DeliveryWidget.prototype.getData = function () {
var result = {
success: true,
enabled: $('#delivery-y').is(':checked')
};
if (result.enabled) {
result.distance = parseInt(this.holder.find('input[name="distance"]').val());
if (result.distance > 0 && !isNaN(result.distance)) {
}
else {
result.distance = 0;
}
result.price = parseInt(this.holder.data('price-fix')) + (parseInt(this.holder.data('price-km')) * result.distance);
}
return result;
};
DeliveryWidget.prototype.getTextView = function () {
var data = this.getData(),
result = "";
if (data.enabled) {
result = "Доставка: да, расстояние: " + data.distance;
}
else {
result = "Доставка: нет";
}
return result;
};
$(function()
{
var block = $('.block_type_delivery');
block.find('input[type="radio"]').change(function()
{
var field = $(this).closest('.block__rows').find('.block__field');
if ($(this).prop('checked') && $(this).val() == 'Y')
{
field.show();
if (calc.widgets.mount != void(0)) {
calc.widgets.mount.hideDistanceBlock();
}
// if (calc.widgets.metering != void(0)) {
// calc.widgets.metering.hideDistanceBlock();
// }
}
else
{
field.hide();
if (calc.widgets.mount != void(0)) {
calc.widgets.mount.showDistanceBlock();
}
if (calc.widgets.metering != void(0)) {
calc.widgets.metering.showDistanceBlock();
}
}
});
block.find('input[type="radio"]:checked').trigger('change');
calc.registerWidget('delivery', new DeliveryWidget($('#widget_delivery')));
});
</script> </div>
<div class="col col_size_4 col_md_12">
<div class="block block_type_mounting step-3" id="widget_mount" data-price-msk-meter="2000" data-price-msk-min="3000" data-price-region-meter="1000" data-price-region-min="4000" data-price-fix="1930" data-price-km="60" style="display: none;">
<div class="block__inner">
<div class="h2 block__heading">
Монтаж
</div>
<div class="block__content">
<div class="group group_size_sm">
<div class="radio">
<input type="radio" name="mounting" id="mounting-1" value="1">
<label for="mounting-1">
В Москве
</label>
</div>
</div>
<div class="group group_size_sm">
<div class="radio">
<input type="radio" name="mounting" id="mounting-2" value="2">
<label for="mounting-2">
За пределами МКАД
</label>
</div>
</div>
<div class="group group_size_sm">
<div class="radio">
<input type="radio" name="mounting" id="mounting-3" value="3" checked="checked">
<label for="mounting-3">
Я сам поставлю
</label>
</div>
</div>
<div class="block__field" id="mount_distance" style="display: none;">
<div class="group group_size_sm">
<label class="label">
Расстояние от МКАД
</label>
<input type="text" class="control control_size_md" name="distance">
<span class="blue">км</span>
</div>
</div>
</div>
</div>
</div>
<script>
var MountWidget = function (holder) {
this.holder = holder;
};
MountWidget.prototype.getData = function () {
var result = {
type: this.holder.find('input[name="mounting"]:checked').val(),
distance: this.getDistance()
};
return result;
};
MountWidget.prototype.showDistanceBlock = function () {
var data = this.getData();
if (data.type == 2) {
$('#mount_distance').show();
}
};
MountWidget.prototype.getDistance = function () {
var type = this.holder.find('input[name="mounting"]:checked').val(),
distance = 0;
if (type == 2) {
if (calc.widgets.delivery != void(0)) {
var deliveryData = calc.widgets.delivery.getData();
if (!deliveryData.enabled) {
distance = parseInt(this.holder.find('input[name="distance"]').val());
}
else {
distance = deliveryData.distance;
}
}
else {
throw new Error("No delivery widget");
}
}
if (isNaN(distance)) {
distance = 0;
}
return distance;
};
MountWidget.prototype.hideDistanceBlock = function () {
$('#mount_distance').hide();
};
MountWidget.prototype.getPrice = function () {
var sum = 0;
if (calc.widgets.shower_size != void(0)) {
var square = calc.widgets.shower_size.getSquare(),
myData = this.getData();
sum = square * 1300;
if (parseInt(myData.type) == 2 && !calc.widgets.delivery.getData().enabled) {
var distance = this.getDistance(),
priceKm = parseInt(this.holder.data('price-km'));
sum += (distance * priceKm);
}
if (sum < 6000) {
sum = 6000;
}
}
if (myData.type == 3) {
sum = 0;
}
return sum;
};
MountWidget.prototype.getTextView = function () {
var data = this.getData();
if (data.type == 1) {
return "Монтаж: МСК";
}
if (data.type == 2) {
return "Монтаж: выезд за МКАД, расстояние: " + this.getDistance();
}
else {
return "Монтаж: сам";
}
};
$(function () {
var holder = $('#widget_mount');
calc.registerWidget('mount', new MountWidget(holder));
holder.find('input[name="mounting"]').each(function() {
$(this).on('change', function () {
if ($(this).val() == 2) {
if (calc.widgets.delivery != void(0)) {
var deliveryData = calc.widgets.delivery.getData();
if (!deliveryData.enabled) {
calc.widgets.mount.showDistanceBlock();
}
else {
calc.widgets.mount.hideDistanceBlock();
}
}
else {
calc.widgets.mount.hideDistanceBlock();
}
}
else {
calc.widgets.mount.hideDistanceBlock();
}
});
});
});
</script> </div>
<div class="col col_size_4 col_md_12">
<div class="block block_type_price step-3" style="display: none;">
<div class="block__inner">
<div class="h2 block__heading">
Стоимость заказа
</div>
<div class="block__content">
<div class="block__price"></div>
<a href="javascript:void(0);" class="button" onclick="if (calc.enabled()) $.mw.open('calc_request');">
Заказать
</a>
<div>
*Цена является ориентировочной и после обсуждения с менеджером может быть скорректирована
</div>
</div>
</div>
</div>
<script>
var ResultWidget = function (holder) {
this.holder = holder;
};
ResultWidget.prototype.number_format = function ( number, decimals, dec_point, thousands_sep ) { // Format a number with grouped thousands
// + original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
// + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
// + bugfix by: Michael White (http://crestidg.com)
var i, j, kw, kd, km;
// input sanitation & defaults
if( isNaN(decimals = Math.abs(decimals)) ){
decimals = 2;
}
if( dec_point == undefined ){
dec_point = ",";
}
if( thousands_sep == undefined ){
thousands_sep = ".";
}
i = parseInt(number = (+number || 0).toFixed(decimals)) + "";
if( (j = i.length) > 3 ){
j = j % 3;
} else{
j = 0;
}
km = (j ? i.substr(0, j) + thousands_sep : "");
kw = i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + thousands_sep);
//kd = (decimals ? dec_point + Math.abs(number - i).toFixed(decimals).slice(2) : "");
kd = (decimals ? dec_point + Math.abs(number - i).toFixed(decimals).replace(/-/, 0).slice(2) : "");
return km + kw + kd;
};
ResultWidget.prototype.setPrice = function (p) {
this.holder.find('.block__price').text('≈ ' + this.number_format(p, 0, ',', ' ') + ' руб*');
};
ResultWidget.prototype.getTextView = function () {
return "Стоимость: " + this.holder.find('.block__price').text();
};
$(function() {
calc.registerWidget('result', new ResultWidget($('.block_type_price')));
});
</script> </div>
</div>
</div>
</div>
<script>
var calc = new Calculator("Душ"),
calculate = function () {
var sum = {},
doorCount = Math.abs(calc.widgets.shower_size.getDoorsCount());
for (var key in calc.widgets) {
calc.highlight(calc.widgets[key], false);
}
// тип + толщина..
if (calc.widgets.glass_type != void(0) && calc.widgets.thickness != void(0)) {
var typeData = calc.widgets.glass_type.getData(),
thicknessData = calc.widgets.thickness.getData(),
priceList = calc.widgets.thickness.getPriceList(),
key = "",
ok = true;
if (typeData.value != void(0)) {
key += typeData.value + "_";
if (thicknessData.value != void(0)) {
key += thicknessData.value;
}
else {
ok = false;
calc.highlight(calc.widgets.thickness, true);
}
}
else {
ok = false;
calc.highlight(calc.widgets.glass_type, true);
}
if (!ok) {
return;
}
sum['glass'] = priceList[key];
}
// Если нашли стоимость стекла..
if (sum.hasOwnProperty('glass')) {
if (calc.widgets.shower_size != void(0)) {
var square = calc.widgets.shower_size.getSquare();
sum['glass_full'] = Math.floor(sum['glass'] * square);
sum['glass'] = 0;
// Вид печати
sum['print_type'] = calc.widgets['print_type'].getPrice() * square;
}
}
// Тип ручки
if (calc.widgets.handle_type != void(0)) {
data = calc.widgets.handle_type.getData();
if (data.id != void(0)) {
sum['handle_type'] = data.price * doorCount;
}
else {
calc.highlight(calc.widgets.handle_type, true);
return;
}
}
// Цвет ручки..
if (calc.widgets.handle_color != void(0)) {
data = calc.widgets.handle_color.getData();
if (data.color != void(0)) {
// Для "другого" цвета умножаем стоимость ручки на мультипликатор..
if (data.color == "144") {
data = calc.widgets.handle_type.getData();
sum['handle_type'] = sum['handle_type'] * data.multiplier;
}
}
}
// Доставка
if (calc.widgets.delivery != void(0)) {
var data = calc.widgets.delivery.getData();
if (data.enabled) {
sum['delivery'] = data.price;
}
else {
sum['delivery'] = 0;
}
}
// Монтаж
if (calc.widgets.mount != void(0)) {
sum['mount'] = calc.widgets.mount.getPrice();
}
sum['shower'] = calc.widgets.shower_size.getData().price;
console.log(sum);
if (calc.enabled()) {
var s = 0;
for (var key in sum) {
if (!isNaN(sum[key])) {
s += sum[key];
}
else {
console.warn("One of items (" + key + ") is NaN!");
}
}
calc.widgets.result.setPrice(s);
}
return sum;
};
$(function() {
$('.calculator')
.on('mouseenter', '.info__toggle', function()
{
var holder = $(this).closest('.info'),
element = holder.find('.info__content');
element.show().position({
of: holder,
my: 'left top',
at: 'left bottom',
collision: 'flip flip'
});
})
.on('mouseleave', '.info__toggle', function()
{
$(this).closest('.info').find('.info__content').hide();
});
$('.calculator').on('change', ':input', function (e) {
calculate();
});
});
$('#glass-type-134').prop('checked', true);
</script>
</div>