Для корректной работы скрипта необходимо
создать пять служебных страниц, которые будут скрыты от индексации и прямого доступа.
1. Создаем первую страницу с названием «
Оформление заказа», в SEO-настройках в поле «адрес (ЦПУ)» вписываем
basket.
Внимание! Если вы впишите другое значение, это приведет к неправильной работе скрипта!
На созданной странице размещаем виджет «
Свой код», затем форму обратной связи и после нее еще один виджет «
Свой код». В форме обратной связи отключаем все пооля кроме «
Сообщение».
В первый виджет «Свой код» вставляем следующий код:
<div class="basket-page">
<h2 class="mc-title">Оформление заказа</h2>
<ul class="nav-tabs">
<li class="t-goods-i active" data-item="tab1"><span>Товары</span></li>
<li class="t-delivery-i" data-item="tab2"><span>Доставка</span></li>
<li class="t-pay-i" data-item="tab3"><span>Оплата</span></li>
<li class="t-contact-i" data-item="tab4"><span>Контакты</span></li>
</ul>
<div class="tabs">
<div class="tab" id="tab1"><div class="tab-wrap">
<h3>Шаг 1 из 4: мои товары</h3>
<div class="goodsWrap">
<div class="ucGoodsAll"></div>
</div>
<!-- Правая колонка -->
<div class="ucTotalRightWrap"> <div class="ucTotalRight">
<h3>Информация о заказе</h3>
<div class="orderError"></div>
<div class="insertRight"></div>
<div class="promoCode">
<p>Есть промокод? Введите его:</p>
<div class="promoSuccess"></div>
<div class="promoError"></div>
<input type="text" placeholder="Введите промокод" class="pcInput">
<input type="submit" value="Использовать" onclick="promoCode($(this));">
</div>
</div> </div>
<!-- Правая колонка -->
</div> <!-- / #tab-wrap -->
<div class="nav-panel">
<span class="nextTab" onclick="$('.t-delivery-i').click()">Далее</span>
</div>
</div> <!-- / #tab1 -->
<div class="tab" id="tab2"><div class="tab-wrap">
<h3>Шаг 2 из 4: выбор способа доставки</h3>
<div class="deliveryWrap"> <div class="deliveryItems">
<table>
<tr id="delivery-block-1" class="deliveryBlock">
<th class="dRadio"><input type="radio" name="delivery" value="1" class="delivery-item" id="del-type-1" onclick="shDel('self',0,'Забрать самостоятельно','del-type-1')"></th>
<td class="dIcon"><img src="/uploads/s/w/5/x/w5x31j9njgve/img/full_UXWFCzUt.png"></td>
<td class="dDesc"><label class="label" for="del-type-1">Забрать самостоятельно</label>При выборе такого варианта получения товара покупатель и продавец (или его представитель) встречаются в заранее обусловленном месте. Время получения товара с 10:00 до 18:00. Заказ можно оплатить по безналичному расчету или наличными при встрече. <br>Стоимость доставки — БЕСПЛАТНО!</td>
</tr>
<tr id="delivery-block-2" class="deliveryBlock">
<th class="dRadio"><input type="radio" name="delivery" value="2" class="delivery-item" id="del-type-2" onclick="shDel('courier',200,'Доставка курьером','del-type-2')"></th>
<td class="dIcon"><img src="/uploads/s/w/5/x/w5x31j9njgve/img/full_gtObAX4P.png"></td>
<td class="dDesc"><label class="label" for="del-type-2">Доставка курьером</label> Доставка заказов курьером осуществляется только по Ростову-на-Дону не позднее следующего дня с момента оформления заказа. Товар будет доставлен после предварительного звонка по телефону для согласования времени доставки. <br>Стоимость доставки — 200 руб.</td>
</tr>
<tr id="delivery-block-3" class="deliveryBlock">
<th class="dRadio"><input type="radio" name="delivery" value="3" class="delivery-item" id="del-type-3" onclick="shDel('courier',400,'Доставка почтой','del-type-3')"></th>
<td class="dIcon"><img src="/uploads/s/w/5/x/w5x31j9njgve/img/full_9rZ5J2BQ.png"></td>
<td class="dDesc"><label class="label" for="del-type-3">Доставка почтой</label> Доставка заказа осуществляется Почтой России по всей стране, отправка происходит на следующий день после оплаты заказа. <br>Стоимость доставки — 400 руб.</td>
</tr>
</table>
</div> </div>
<!-- Правая колонка -->
<div class="ucTotalRightWrap"> <div class="ucTotalRight">
<h3>Информация о заказе</h3>
<div class="orderError"></div>
<div class="insertRight"></div>
<div class="promoCode noPaddingTop">
<div class="promoSuccess"></div>
</div>
</div> </div>
<!-- Правая колонка -->
</div> <!-- / #tab-wrap -->
<div class="nav-panel">
<span class="prevTab" onclick="$('.t-goods-i').click()">Назад</span>
<span class="nextTab" onclick="$('.t-pay-i').click()">Далее</span>
</div>
</div> <!-- / #tab2 -->
<div class="tab" id="tab3"><div class="tab-wrap">
<h3>Шаг 3 из 4: выбор способа оплаты</h3>
<div class="payWrap"> <div class="payItems">
<table>
<tr id="pay-block-0" class="payBlock">
<th class="dRadio"><input type="radio" name="pay" value="0" class="pay-item" id="pay-type-0" onclick="shPay('cash','Наличными при получении','pay-type-0')"></th>
<td class="dIcon"><img src="/uploads/s/w/5/x/w5x31j9njgve/img/full_ZwgRB0Gj.png"></td>
<td class="dDesc"><label class="label" for="pay-type-0">Наличными при получении</label> Вы можете оплатить свой заказ при получении товара в одном из пунктов выдачи.</td>
</tr>
<tr id="pay-block-1" class="payBlock">
<th class="dRadio"><input type="radio" name="pay" value="1" class="pay-item" id="pay-type-1" onclick="shPay('unitpay','UnitPay','pay-type-1')"></th>
<td class="dIcon"><img src="/uploads/s/w/5/x/w5x31j9njgve/img/full_fFaQt4eQ.png"></td>
<td class="dDesc"><label class="label" for="pay-type-1">UnitPay</label> Оплата заказа с помощью электронных денег WebMoney, Яндекс.Деньги, Qiwi, PayPal, смс-сообщений, через денежные/банковские переводы, через терминалы оплаты и конечно банковске карты VISA, MasterCard</td>
</tr>
<!-- <tr id="pay-block-2" class="payBlock">
<th class="dRadio"><input type="radio" name="pay" value="2" class="pay-item" id="pay-type-2" onclick="shPay('free-kassa','UnitPay','pay-type-2')"></th>
<td class="dIcon"><img src="/uploads/s/w/5/x/w5x31j9njgve/img/full_QRbgaX6q.png"></td>
<td class="dDesc"><label class="label" for="pay-type-2">FREE-KASSA</label> Оплата заказа с помощью смс-сообщений, через денежные/банковские переводы, через терминалы оплаты и конечно банковске карты VISA, MasterCard</td>
</tr> -->
<tr id="pay-block-3" class="payBlock">
<th class="dRadio"><input type="radio" name="pay" value="3" class="pay-item" id="pay-type-3" onclick="shPay('yamoney','Яндекс.Деньги','pay-type-3')"></th>
<td class="dIcon"><img src="/uploads/s/w/5/x/w5x31j9njgve/img/full_u5R6QOs4.png"></td>
<td class="dDesc"><label class="label" for="pay-type-3">Яндекс.Деньги</label> Оплата заказа при помощи электронной валюты Яндекс.Деньги, а также при помощи банковских карт и SMS-платежей.</td>
</tr>
<tr id="pay-block-4" class="payBlock">
<th class="dRadio"><input type="radio" name="pay" value="4" class="pay-item" id="pay-type-4" onclick="shPay('wm','WebMoney','pay-type-4')"></th>
<td class="dIcon"><img src="/uploads/s/w/5/x/w5x31j9njgve/img/full_rnREdMMR.png"></td>
<td class="dDesc"><label class="label" for="pay-type-4">WebMoney</label> Оплата заказа при помощи электронной валюты WebMoney, а также при помощи банковских карт VISA, MasterCard и другие способы оплаты.</td>
</tr>
</table>
</div> </div>
<!-- Правая колонка -->
<div class="ucTotalRightWrap"> <div class="ucTotalRight">
<h3>Информация о заказе</h3>
<div class="orderError"></div>
<div class="insertRight"></div>
<div class="promoCode noPaddingTop">
<div class="promoSuccess"></div>
</div>
</div> </div>
<!-- Правая колонка -->
</div> <!-- / #tab-wrap -->
<div class="nav-panel">
<span class="prevTab" onclick="$('.t-delivery-i').click()">Назад</span>
<span class="nextTab" onclick="$('.t-contact-i').click()">Далее</span>
</div>
</div> <!-- / #tab3 -->
<div class="tab" id="tab4"><div class="tab-wrap">
<h3>Шаг 4 из 4: контактные данные</h3>
<div class="contactWrap"> <div class="contactItems">
<div class="inp-line">
<p>ФИО</p>
<input type="text" class="uName"> <span class="ul-widget-feedBack-form-control-feedback icon-content-special-required"></span>
</div>
<div class="inp-line">
<p>Ваш e-mail</p>
<input type="email" class="uMail"> <span class="ul-widget-feedBack-form-control-feedback icon-content-special-required"></span>
</div>
<div class="inp-line">
<p>Номер телефона</p>
<input type="text" autocomplete="off" class="uPhone"> <span class="ul-widget-feedBack-form-control-feedback icon-content-special-required"></span>
</div>
<div class="inp-line adres">
<p>Адрес доставки</p>
<textarea class="uAdress"> </textarea> <span class="ul-widget-feedBack-form-control-feedback icon-content-special-required"></span>
</div>
<div class="inp-line noImportant">
<p>Комментарий к заказу</p>
<textarea class="uComment"> </textarea> <span class="ul-widget-feedBack-form-control-feedback icon-content-special-required"></span>
</div>
</div> </div>
<!-- Правая колонка -->
<div class="ucTotalRightWrap"> <div class="ucTotalRight">
<h3>Информация о заказе</h3>
<div class="orderError"></div>
<div class="insertRight"></div>
<div class="promoCode noPaddingTop">
<div class="promoSuccess"></div>
</div>
</div> </div>
<!-- Правая колонка -->
</div> <!-- / #tab-wrap -->
<div class="nav-panel">
<span class="prevTab" onclick="$('.t-pay-i').click()">Назад</span>
<span class="nextTab payStart" onclick="checkOut()">Оформить заказ</span>
</div>
</div> <!-- / #tab4 -->
</div>
</div>
<script>
$(document).ready(function() {
$('.nav-tabs li').on('click', function() {
$('.nav-tabs li').removeClass('active');
$(this).addClass('active');
$('.tab').hide();
$('#' + $(this).attr('data-item') ).fadeIn(500);
});
});
</script>
<style>
.basket-page {display:none;float:left;width:100%;overflow:hidden;}
.mc-title {margin: 0;float:left;width:100%;}
.nav-tabs {padding:0;margin:0;width:100%;float:left;}
.nav-tabs li {background:#132026;text-align:center;width:25%;color:#DAE1E6;transition: all 0.3s;display:inline-block;font-size: 14px !important;float:left;line-height:40px;cursor:pointer;}
.nav-tabs li:before, .prevTab:before, .payStart:before {font: normal normal normal 16px/1 FontAwesome;display:inline-block;margin-right:10px;}
.nextTab:after {font: normal normal normal 16px/1 FontAwesome;display:inline-block;margin-left:10px;}
.nav-tabs li:first-child {border-radius: 4px 0 0 0;}
.nav-tabs li:last-child {border-radius: 0 4px 0 0;}
.nav-tabs li:hover {background: #23363e;transition: all 0.3s;}
.nav-tabs li.active {background:#4caf50;color:#e8fbe9;cursor: default}
.nav-tabs li.active:hover {background: #6ec071;}
.nav-tabs li:first-child:before {content: "\f07a" !important;}
.nav-tabs li:nth-child(2):before {content: "\f0d1" !important;}
.nav-tabs li:nth-child(3):before {content: "\f283" !important;}
.nav-tabs li:nth-child(4):before {content: "\f007" !important;}
.tabs {float:left;width:100%;background: #f5f5f5;color:#333333;border-radius:0 0 4px 4px;}
.tab-wrap {padding:20px;float:left;width:100%;}
.tab-wrap h3 {float:left;width:100%;margin: 0 0 20px 0;font-size:24px !important;}
.tab {display:none;width:100%;float:left;}
.tab:first-child {display:block;}
#tab1 .tab-wrap {padding-bottom:10px;}
.nav-panel {background: #DBE2E8;float:left;width:100%;border-radius: 0 0 4px 4px;padding: 10px;}
.nextTab, .prevTab {display: inline-block;line-height: 38px;padding: 0 20px;cursor:pointer;}
.nextTab {float:right;transition: all .3s;border-radius: 4px;background: #4caf50;color: #e8fbe9;}
.nextTab:hover {transition: all .3s;background: #6ec071;color: #fff;}
.nextTab:after {content: "\f105";}
.prevTab {float:left;transition: all .3s;border-radius: 4px;background: #132026;color: #DAE1E6;}
.prevTab:hover {transition: all .3s;background: #23363e;}
.prevTab:before {content: "\f104";}
.payStart:after {display:none !important;}
.payStart:before {content: "\f07a"}
.g-item {float:left;margin: 0 0 10px 0;border-radius:4px;overflow:hidden;background:#fff;width:100%;}
.cl-wrap .g-item:last-child {margin:0;}
.g-img {float: left;width: 100px;padding: 10px;}
.g-img div {width:79px;height:79px;border-radius:4px;float:left;}
#main .g-body {float: left;padding: 6px 6px 0 0;margin:15px 0 0 5px;max-width:170px;}
li.gi-title {font-size:18px !important;}
.g-body li {line-height:30px;list-style:none;width:100%;text-overflow: ellipsis;overflow: hidden;white-space: nowrap;}
.rTotal li {font-size: 16px !important;line-height:26px;}
.rTotal li span {float:right;}
.rTotal h3 {margin:0;}
#main .g-body li:before, #main .rTotal li:before, #main .orderError li:before {display:none !important;}
.gi-price span {font-weight:bold;color: #6ec071;}
.gi-tools {float: right;width: 33px;text-align: center;line-height:30px;}
.gi-up, .gi-down, .gi-del {background: #DBE2E8;transition: all .3s;cursor:pointer;line-height:33px;width:33px;}
.gi-up:hover, .gi-down:hover, .gi-del:hover {background:rgba(112, 148, 167, 0.5);transition: all .3s;}
.goodsWrap, .deliveryWrap, .payWrap, .contactWrap {float:left;width:100%;min-height:10px;}
.ucGoodsAll, .deliveryItems, .payItems, .contactItems {margin-right:300px;}
.ucTotalRightWrap {float:left;width:300px;margin: 0 0 0 -300px;padding:0 0 0 20px;}
.ucTotalRight {background:#fff;border-radius:4px;float:left;width:100%;}
#main .ucTotalRight h3 {line-height:40px;background: #23363e;color: #DAE1E6;font-size:16px !important;border-radius: 4px 4px 0 0;margin:0;text-align:center;padding: 0 !important;}
#main .rTotal {padding: 10px;float:left;width:100%;}
.promoCode {padding: 10px;float:left;width:100%;display:none;}
#main .promoCode p {padding: 0 !important;}
.promoCode input[type="text"], .inp-line input {border-radius:4px;border:2px solid #DBE2E8; line-height:36px;padding: 0 10px;outline:none;margin: 0 0 10px 0;width:100%;transition: all .3s;}
.promoCode input[type="text"]:focus, .inp-line input:focus, .inp-line textarea:focus {border-color: #8DA8B8;transition: all .3s;}
.inp-line textarea {border-radius:4px;border:2px solid #DBE2E8; padding: 10px;outline:none;margin: 0 0 10px 0;width:100%;transition: all .3s;resize: none;min-height:100px;}
.promoCode input[type="submit"] {display: inline-block;width:100%;line-height: 38px;transition: all .3s;border-radius: 4px;background: #4caf50;color: #e8fbe9;width:100%;outline:none;border:none;}
.promoCode input[type="submit"]:hover {transition: all .3s;background: #6ec071;color: #fff;}
.sItogo {color: #6ec071;}
.deliveryBlock, .payBlock {padding:10px;background:#fff;border:2px solid #DBE2E8;border-radius:4px;float:left;width:100%;margin: 0 0 10px 0;cursor:pointer;transition: all .3s;}
.deliveryBlock:hover {border-color:#8DA8B8;transition: all .3s;}
.deliveryBlock.dActive:hover {background:#DBE2E8;transition: all .3s;}
.payBlock:hover {border-color:#FFCC00;}
.payBlock.pActive:hover {border-color:#FFCC00;background:#ffe066;}
.dRadio {display:none;}
.dRadio, .dIcon {padding:0 10px;}
.dIcon img {width:60px;}
.dDesc {padding: 0 0 0 10px;}
.label {cursor:pointer;width:100%;float:left;font-size:16px;font-weight:bold;margin: 0 0 10px 0;}
.deliveryBlock.dActive {border-color:#8DA8B8;background:#DBE2E8;}
.payBlock.pActive {border-color:#FFCC00;background:#ffe066;}
.payBlock .dIcon img {border-radius:50%;}
.inp-line {width;100%;margin: 0 0 10px 0;position:relative;}
#main .inp-line p {color:#333;font-weight:700;margin: 0 0 5px 0;padding:0 !important;}
#body .inp-line > span {color: #8da8b8;position: absolute;right: 5px;top: 28px;font-size: 10px;}
#body .noImportant > span {display:none;}
.promoError {padding: 10px;border-radius:4px;font-size:12px;background: rgba(244, 67, 54, 0.71);color:#0f0f0f;float:left;width:100%;margin: 0 0 10px 0;display:none;}
.promoSuccess {font-size:12px;color:#F44336;text-align:center;float:left;width:100%;margin: 0 0 10px 0;display:none;}
.promoSuccess span {cursor:pointer;}
.promoCode.noPaddingTop {padding: 0 10px;}
.orderError {padding: 10px;font-size:12px;background: rgba(244, 67, 54, 0.71);color:#0f0f0f;float:left;width:100%;display:none;}
#main .orderError p {padding: 0!important;margin: 0px !important;}
.orderError ul {margin: 10px 0 !important;}
#main #ul-id-2-4 {display:none !important;}
.pSelf, .ePay, .adres, .tap2 {display:none;}
.inp-line input.validNo, .inp-line textarea.validNo {border-color:#f77970;transition: all .3s;}
.orderOutW {display:none;width:100%;z-index:999;position:fixed;top:35%;left:50%;margin-left:-300px;max-width:600px;border-radius:4px;padding: 30px;text-align:center;background:#fff;}
.cssload-container{
display: block;
margin:49px auto;
width:97px;
}
.cssload-loading i{
width: 49px;
height: 49px;
display: inline-block;
background: rgb(76,175,79);
border-radius: 50%;
}
.cssload-loading i:nth-child(1){
animation:cssload-loading-ani1 1.15s ease-in-out infinite;
-o-animation:cssload-loading-ani1 1.15s ease-in-out infinite;
-ms-animation:cssload-loading-ani1 1.15s ease-in-out infinite;
-webkit-animation:cssload-loading-ani1 1.15s ease-in-out infinite;
-moz-animation:cssload-loading-ani1 1.15s ease-in-out infinite;
}
.cssload-loading i:nth-child(2){
background: rgb(35,54,62);
margin-left: -10px;
animation:cssload-loading-ani1 1.15s ease-in-out 0.58s infinite;
-o-animation:cssload-loading-ani1 1.15s ease-in-out 0.58s infinite;
-ms-animation:cssload-loading-ani1 1.15s ease-in-out 0.58s infinite;
-webkit-animation:cssload-loading-ani1 1.15s ease-in-out 0.58s infinite;
-moz-animation:cssload-loading-ani1 1.15s ease-in-out 0.58s infinite;
}
@keyframes cssload-loading-ani1{
70%{
transform:scale(0.5);
}
}
@-o-keyframes cssload-loading-ani1{
70%{
-o-transform:scale(0.5);
}
}
@-ms-keyframes cssload-loading-ani1{
70%{
-ms-transform:scale(0.5);
}
}
@-webkit-keyframes cssload-loading-ani1{
70%{
-webkit-transform:scale(0.5);
}
}
@-moz-keyframes cssload-loading-ani1{
70%{
-moz-transform:scale(0.5);
}
}
.shadow {display:none;width: 100%;height: 100%;position: fixed;top: 0px;left: 0px;z-index:299;}
.grey-back {
position: absolute;width:100%;height:100%;background-color: rgba(35,45,50,1);opacity: 0.7;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";
filter: alpha(opacity=60);-moz-opacity: 0.6;-khtml-opacity: 0.6;z-index:3;}
@media (max-width: 992px) {
.ucTotalRightWrap {width:100%;margin:0;padding:0;}
.ucGoodsAll {margin:0;}
.goodsWrap, .deliveryItems, .payItems, .contactItems {margin: 0 0 10px 0;}
#body .mc-title {font-size:22px;padding: 0 0 20px 0;}
#body .tab-wrap h3 {font-size:20px !important;}
.orderOutW {max-width:500px;margin-left:-250px;}
}
@media (max-width: 768px) {
.nav-tabs li:before {margin-right:0 !important;font-size:20px;}
.nav-tabs li span {display:none;}
.g-img {width: 60px;padding: 6px;}
.g-img div {width:48px;height:48px;}
#main .g-body {padding: 6px 6px 0 0;margin:0;}
#body li.gi-title {font-size:14px !important;}
.g-body {max-width:200px}
.g-body li {line-height:24px;}
.gi-tools {width: 20px;line-height:20px;}
.gi-up, .gi-down, .gi-del {line-height:20px;width:20px;}
.orderOutW {max-width:300px;margin-left:-150px;}
}
</style>
Во второй виджет вставляем этот код:
<script>
$(document).ready(function(){
if ( localStorage.sProduct != null ) { $('.basket-page').show(); ukStartCart();} else {location.href = "/"}// проверка на наличие товаров в хранилище
if ( localStorage.sDelivery != null ) {var sdBoxEnd = JSON.parse(localStorage["sDelivery"]); // sdBoxEnd - получаем массив из хранилища
shDel(sdBoxEnd[0], sdBoxEnd[1], sdBoxEnd[2],sdBoxEnd[3]);
} // доставка
if ( localStorage.sPay != null ) {var spBoxEnd = JSON.parse(localStorage["sPay"]); // spBoxEnd - получаем массив из хранилища
shPay(spBoxEnd[0], spBoxEnd[1], spBoxEnd[2]);
} // оплата
//$('.feedBack textarea[name="message"], .feedBack input[name="theme"]').parent().hide();
$(".uPhone").mask("+7(999) 999-99-99").attr('autocomplete','off');
if ( pCode[0] == true) { $('.promoCode').fadeIn(100);} // проверка на ктивность промокода
//$('tr.deliveryBlock').find('.dRadio input:radio:checked').parent().parent().addClass('dActive');
//$('tr.deliveryBlock input[type="radio"]').iCheck( {radioClass: 'iradio_flat'} ); // стилизация RADIO - iradio_flat
}); // DOM готов
$('.nextTab, .prevTab').on('click', function() {
$('html, body').animate({ scrollTop: $('.basket-page').offset().top}, 500);
});
$('.deliveryBlock').on('click', function() {
$('.deliveryBlock').removeClass('dActive');
$(this).addClass('dActive');
$(this).find('input').click();
});
$('.payBlock').on('click', function() {
$('.payBlock').removeClass('pActive');
$(this).addClass('pActive');
$(this).find('input').click();
});
function promoCode(id) {
var pInput = id.parent().find('.pcInput').val();
if ( pInput != '') {
if ( localStorage.sPromocode == null && pInput == pCode[3] ) {
localStorage["sPromocode"] = $('.pcInput').val();
ukStartCart('pc');
}
else {
if ( localStorage.sPromocode != null ) {
$('.promoError').html('Для этого заказа уже используется промокод <b>'+$('.pcInput').val()+'</b>.').fadeIn(500);
$('html, body').animate({ scrollTop: $('.promoError').offset().top - 20}, 500);
}
else {$('.promoError').html('<center>Промокод <b>'+$('.pcInput').val()+'</b> не действителен</center>').fadeIn(500);
$('html, body').animate({ scrollTop: $('.promoError').offset().top - 20}, 500);
}
} // локал полон, но в поле не тот промокод
} else{$('.promoError').html('<center>Вы не ввели промокод</center>').fadeIn(500);
$('html, body').animate({ scrollTop: $('.promoError').offset().top - 20}, 500);
}// поле промокода пустое
}// конец функции
function ukStartCart(fType) {
/// RedrawRight
var reDelivery ='';
var reTotal = '';
var reSale = '';
var uksumTotaltemp=0;
var reDeliveryTemp =0;
/// RedrawRight
/// RedrawPay
var payReTotal;
var payReSale;
/// RedrawPay
var StartBox = JSON.parse(localStorage["sProduct"]); // StartBox - получаем массив из хранилища
var ukStart = '';
var ukNumTotal = 0;
var uksumTotal = 0;
for ( scu=0;scu<StartBox.length;scu++ ) {
// номер //название // цена //количество //сумма
ukStart += '<div class="g-item"><div class="g-img"><div style="background: url(' + StartBox[scu][4] + ') no-repeat;background-size: cover;"></div> </div><ul class="g-body"><li class="gi-title">' + StartBox[scu][2] + '</li><li class="gi-price"><span>' + StartBox[scu][1] + cur + '</span> x ' + StartBox[scu][3] + '</li></ul> <div class="gi-tools"> <div class="gi-up" onclick="plusGood(\'' + StartBox[scu][0] + '\')"><i class="fa fa-angle-up"></i></div> <div class="gi-del" onclick="delGood(\'' + StartBox[scu][0] + '\')"><i class="fa fa-trash-o"></i></div> <div class="gi-down" onclick="minusGood(\'' + StartBox[scu][0] + '\')"><i class="fa fa-angle-down"></i></div> </div></div>';
ukNumTotal += StartBox[scu][3];
uksumTotal += StartBox[scu][3]*1*StartBox[scu][1];
}// собираем таблицу
uksumTotaltemp = uksumTotal;
if ( localStorage.sDelivery != null ) {var sdBoxEnd = JSON.parse(localStorage["sDelivery"]); // sdBoxEnd - получаем массив из хранилища
reDeliveryTemp = sdBoxEnd[1];
uksumTotaltemp = uksumTotal + reDeliveryTemp;
reDelivery = '<li><b>Доставка:</b><span>' + reDeliveryTemp + cur + '</span></li>';
} // учет доставки в стоимости
if (StartBox.length > 0) {
$('.ucGoodsAll').html(ukStart);
$('.promoError').fadeOut(500);
reTotal = '<li><b class="sItogo">К оплате: </b><span>' + uksumTotaltemp + cur + '</span></li>';
payReTotal = uksumTotaltemp;
payReSale = 0;
if ( pCode[0] == true && localStorage.sPromocode != null && localStorage["sPromocode"] == pCode[3]) { // промокод активен и применен
if ( pCode[1] == 0) { // численный промокод
if ( (uksumTotal) > pCode[2]) {
reTotal = '<li><b class="sItogo">К оплате: </b><span>' + (uksumTotaltemp-pCode[2]) + cur + '</span></li>';
reSale = '<li><b>Скидка: </b><span>' + pCode[2] + cur +'</span></li>';
payReTotal = uksumTotaltemp-pCode[2];
payReSale = pCode[2];
$('.promoSuccess').html('<span onclick="localStorage.removeItem(\'sPromocode\');ukStartCart();$(\'.promoSuccess\').fadeOut(500);"><i class="fa fa-window-close" aria-hidden="true"></i> Промокод <b>' + pCode[3] + '</b> применен</span>').fadeIn(500);
//console.log(localStorage["sPromocode"]);
}
else{
reTotal = '<li><b class="sItogo">К оплате: </b><span>' + uksumTotaltemp + cur + '</span></li>';
reSale = '';
payReTotal = uksumTotaltemp;
payReSale = 0;
$('.promoSuccess').hide();
if ( fType == 'pc') {
$('.promoError').html('Промокод <b>'+$('.pcInput').val()+'</b> не может быть применен. Сумма скидки превышает сумму по товарным позициям. На доставку промокод не распространяется, добавьте товаров на сумму более ' + pCode[2]+cur).fadeIn(500);
}
else
{
$('.promoError').html('Сумма скидки превышает сумму по товарным позициям. Промокод <b>'+pCode[3]+'</b> был отменен. На доставку промокод не распространяется, добавьте товаров на сумму более ' + pCode[2]+cur).fadeIn(500);
}
$('html, body').animate({ scrollTop: $('.promoError').offset().top-20}, 500);
//alert('Сумма по промокоду выше итоговой');
localStorage.removeItem("sPromocode");
// Окно с предупреждением
}
} // численный промокод
if ( pCode[1] == 1) { // процентный промокод
reTotal = '<li><b class="sItogo">К оплате: </b><span>' + (uksumTotal-uksumTotal*pCode[2]+reDeliveryTemp).toFixed(2) + cur + '</span></li>'
reSale = '<li><b>Скидка: </b><span>' + (uksumTotal*pCode[2]).toFixed(2) + cur +'</span></li>';
payReTotal = (uksumTotal-uksumTotal*pCode[2]+reDeliveryTemp).toFixed(2);
payReSale = (uksumTotal*pCode[2]).toFixed(2);
$('.promoSuccess').html('<span onclick="localStorage.removeItem(\'sPromocode\');ukStartCart();$(\'.promoSuccess\').fadeOut(500);"><i class="fa fa-window-close" aria-hidden="true"></i> Промокод <b>' + pCode[3] + '</b> применен</span>').fadeIn(500);
}// процентный промокод
// localStorage.removeItem("sPromocode");
} // промокод активен и применен
$('.insertRight').html('<ul class="rTotal"><li><b>Товаров:</b><span>' + ukNumTotal + ' шт.</span></li><li><b>На сумму: </b><span>' + uksumTotal + cur + '</span></li>'+reDelivery+reSale+reTotal+'</ul>');
if ( localStorage.sPay != null ) {
var rePayTemp = JSON.parse(localStorage["sPay"]);
var rePay = [rePayTemp[0], rePayTemp[1], rePayTemp[2], payReSale, payReTotal]; // новый платежный массив
localStorage["sPay"] = JSON.stringify(rePay); // Пуш массива в хранилище
// alert(JSON.parse(localStorage["sPay"]));
} //
}
else {
$('.boxShadow').fadeIn(100);
alert('Все товары удалены');
localStorage.removeItem("sProduct");
localStorage.removeItem("sDelivery");
localStorage.removeItem("sPay");
localStorage.removeItem("sPromocode");
setTimeout(function() {
location.href= '/'
},2500);
}
}// конец функции ukStartCart()
function delGood(id) {
var ucD;
var DelGoodBox = JSON.parse(localStorage["sProduct"]); // DelGoodBox - получаем массив из хранилища
for (ucD=0; ucD < DelGoodBox.length;ucD++) {
if ( DelGoodBox[ucD][0] == id ) { DelGoodBox.splice(ucD,1); break;}
}
localStorage["sProduct"] = JSON.stringify(DelGoodBox); // Пуш массива в хранилище
ukStartCart();
}
function plusGood(id) {
var ucP;
var plusGood = JSON.parse(localStorage["sProduct"]); // plusGood - получаем массив из хранилища
for (ucP=0; ucP < plusGood.length;ucP++) {
if ( plusGood[ucP][0] == id ) { plusGood[ucP][3] = plusGood[ucP][3]*1+1; break;}
}
localStorage["sProduct"] = JSON.stringify(plusGood); // Пуш массива в хранилище
ukStartCart();
}
function minusGood(id) {
var ucM;
var minusGood = JSON.parse(localStorage["sProduct"]); // plusGood - получаем массив из хранилища
for (ucM=0; ucM < minusGood.length;ucM++) {
if ( minusGood[ucM][0] == id ) { if ( minusGood[ucM][3]*1 > 1) {minusGood[ucM][3] = minusGood[ucM][3]*1-1; break;} }
}
localStorage["sProduct"] = JSON.stringify(minusGood); // Пуш массива в хранилище
ukStartCart();
}
function shDel(typeDel, mark, dName, did) { // способы доставки
if ( typeDel == 'courier') { $('.adres').fadeIn(500); }
if ( typeDel == 'self') { $('.adres').fadeOut(500); }
var shD;
var shTpD=0;
var shBox = JSON.parse(localStorage["sProduct"]); // plusGood - получаем массив из хранилища
for (shD=0; shD < shBox.length;shD++) {
shTpD += shBox[shD][3]*1*shBox[shD][1];
}
$('#'+did).attr('checked','checked');
$('#'+did).parent().parent().addClass('dActive');
$('.delCoast').html(mark + ' руб.');
$('.totalCoast').html( (shTpD+mark) + ' руб.');
if ( $('.coastEnd').is(':hidden') ) {$('.coastEnd').fadeIn(500);}
var sdBox = [typeDel,mark,dName, did];
localStorage["sDelivery"] = JSON.stringify(sdBox); // Пуш массива в хранилище
ukStartCart();
}
function shPay(typePay, pName, pid) { // способы оплаты
var shP;
var shTpP=0;
var shBoxP = JSON.parse(localStorage["sProduct"]); // plusGood - получаем массив из хранилища
for (shP=0; shP < shBoxP.length;shP++) {
shTpP += shBoxP[shP][3]*1*shBoxP[shP][1];
}
var deliverySum=0;
if (localStorage.sDelivery != null) { var tempPD = JSON.parse(localStorage["sDelivery"]); deliverySum = tempPD[1];}
else {deliverySum = 0;}
shTpP = shTpP + deliverySum;
$('#'+pid).attr('checked','checked');
$('#'+pid).parent().parent().addClass('pActive');
var spBox = [typePay, pName, pid, shTpP];
localStorage["sPay"] = JSON.stringify(spBox); // Пуш массива в хранилище
//alert( JSON.parse(localStorage["sPay"]) );
}
////////////////////////////// --- VALIDATOR --- /////////////////////////
var vName = false;
var vMail = false;
var vPhone = false;
var vAdress = false;
$(".uName").keyup(function(){
if ( $(this).val().length < 2 ) { $(this).addClass('validNo'); vName = false;}
else { $(this).removeClass('validNo'); vName = true;}
});
$('.uMail').keyup(function(){
var email = $(this).val();
if(isValidEmailAddress(email)) { $(this).removeClass('validNo'); vMail = true;}
else { $(this).addClass('validNo'); vMail = false;}
});
function isValidEmailAddress(emailAddress) {
var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
return pattern.test(emailAddress);
}
$(".uPhone").on('keyup', function(){
if ( $(this).val().replace(/[^.\d]+/g,'').length < 11 ) { $(this).addClass('validNo'); vPhone = false;}
else { $(this).removeClass('validNo'); vPhone = true;}
});
$(".uAdress").keyup(function(){
if ( $(this).val().length < 10 ) { $(this).addClass('validNo'); vAdress = false;}
else { $(this).removeClass('validNo'); vAdress = true;}
});
var ov = {
orderValid: function() {
var eTemp ='';
if (localStorage.sDelivery == null) { eTemp += '<li>• выбрать способ доставки</li>';}
if (localStorage.sPay == null) {eTemp += '<li>• выбрать способ оплаты</li>';}
var delTempV;
if ( localStorage.sDelivery != null ) {delTempV = JSON.parse(localStorage["sDelivery"]);} else {delTempV = 'self';}
if ( delTempV[0] == 'self' || delTempV == 'self') {
if ( vName == false || vMail == false || vPhone == false ) { eTemp += '<li>• заполнить контактные данные</li>'; }
}
else {
if ( vName == false || vMail == false || vPhone == false || vAdress == false ) { eTemp += '<li>• заполнить контактные данные</li>';}
}
if (eTemp.length > 0) { $('.orderError').html('<p><b>Заказ не оформлен!</b><br> Выполните следующие действия:</p> <ul>' + eTemp + '</ul>').fadeIn(500); return false;}
else { $('.orderError').fadeOut(500); return true;}
} // orderValid:
} /// var ov
function checkOut() {
ukStartCart();
ov.orderValid();
if (ov.orderValid() == true) {
///////// --- номер заказа --- ///////
Data = new Date();
var upOrder = Data.getFullYear() + '.' + Data.getMonth() + '.' + Data.getDate() + '_' + Data.getHours() + ':' + Data.getMinutes();
///////// --- номер заказа --- ///////
var upBox = JSON.parse(localStorage["sProduct"]); // upBox - получаем массив из хранилища
var upDeliv = JSON.parse(localStorage["sDelivery"]); // upDeliv - получаем массив из хранилища
var upPay = JSON.parse(localStorage["sPay"]);
//alert(upPay);
if ( upPay[3] != 0) { var rePromo = '\n Скидка: ' + upPay[3] + cur;} else {var rePromo= '';}
var upSum = 0;var upC;var listZ = '';var ordGoodsNum = 0;
for (upC=0; upC < upBox.length;upC++) {
upSum += upBox[upC][3]*1*upBox[upC][1];
listZ += '['+(upC+1)+'] ' + upBox[upC][2] + ' — ' + upBox[upC][1]+' x '+upBox[upC][3]+' = '+upBox[upC][3]*1*upBox[upC][1]+cur+'\n' ;
ordGoodsNum += upBox[upC][3];
}
if ( $('.uComment').val() != '') {var uComment = '\n\n Комментарий к заказу: ' + $('.uComment').val();} else {var uComment = '';}
$(document).ready(function(){
$('.shadow').fadeIn(650);
$('.orderOutW').fadeIn(500);
});
$('#ul-id-2-4 .feedBack textarea[name="message"]').val('Оформлен заказ #' + upOrder + '(' + parseInt(new Date().getTime()/1000) + ')' +
'\n\n ФИО: ' + $('.uName').val() +
'\n E-mail: ' + $('.uMail').val() +
'\n Телефон : ' + $('.uPhone').val() +
'\n\n Товары: \n' + listZ +
'\n\n Товаров: ' + ordGoodsNum + ' шт. \n На сумму: ' + upSum+cur +
rePromo +
'\n Доставка: ' + upDeliv[1]+cur+
'\n Адрес доставки: ' + $('.uAdress').val() +
'\n К оплате: ' + upPay[4]+cur+
'\n\n Способ доставки: ' + upDeliv[2] +
'\n Способ оплаты: ' + upPay[1] + uComment);
$('#ul-id-2-4 .ul-w-feedBack-submit').click(); // Отправка заказа на почту
setTimeout(function() {
$('.tap1').slideToggle(400);
$('.tap2').slideToggle(400);
if ( upPay[0] == 'cash') {
$('.pSelf').show();
}
if ( upPay[0] == 'unitpay') {
$('.ePay').show();
$('.ePay a.payGoBtn').attr('href','https://unitpay.ru/pay/' +unitID+ '/card?sum=' + upPay[4] + '&account=Заказ ' +parseInt(new Date().getTime()/1000)+ '&desc=' + upOrder + '¤cy=' + curUnitpay);
}
if ( upPay[0] != 'unitpay' && upPay[0] != 'cash') {
$('.ePay').show();
var ePay = [upPay[0], upPay[4], upOrder, parseInt(new Date().getTime()/1000)];
localStorage["ePay"] = JSON.stringify(ePay);
}
localStorage.removeItem("sProduct"); // удаление содержимого корзины
localStorage.removeItem("sDelivery"); // удаление способа доставки
localStorage.removeItem("sPay"); // удаление способа оплаты
localStorage.removeItem("sPromocode"); // удаление промокода
}, 4000);
} // пройдена валидация
} // конец функции
</script>
2. Создаем вторую страницу с названием «
Оплата заказа», в SEO-настройках в поле «
адрес (ЧПУ)» вписываем
pay.
Внимание! Если вы впишите другое значение, это приведет к неправильной работе скрипта!
На созданной странице размещаем виджет «
Свой код» вставляем следующий код:
<div class="payPanel">
<h4>Оплата заказа</h4>
<div class="payHtml"></div>
</div>
<style>
.payPanel {display:none;text-align:center;float:left;width:100%;padding: 40px 20px;background:#fff;border-radius:4px;}
#main .payPanel h4 {color:#0f0f0f !important;}
.button1 {display: inline-block;width:200px;line-height: 38px;transition: all .3s;border-radius: 4px;background: #4caf50;color: #e8fbe9;margin: 20px auto 0 auto;outline:none;border:none;}
.button1:hover {transition: all .3s;background: #6ec071;color: #fff;}
</style>
<script>
function ePay() {
var eTransfer = JSON.parse(localStorage["ePay"]);
//alert(eTransfer);
if ( eTransfer[0] == 'wm' ) {
var upOrder = 'Заказ №' + eTransfer[3]; // номер заказа
var urlSuccess = 'http://' + location.hostname + '/success?' + eTransfer[3];
var urlFail = 'http://' + location.hostname + '/fail';
//$('.payPanel').show();
//$('.payHtml').html('<iframe src="http://www.free-kassa.ru/merchant/forms.php?gen_form=1&writer=seller&targets=234234234234&default-sum=100&button-text=Оплатить&hint= &encoding=UTF8&o=234234234234&oa=100&type=big&cur=RUR&m=42158&form_id=&id=26838" width="650" height="700" frameBorder="0" ></iframe>');
$('.payPanel').show();
$('.payHtml').html('<form action="https://merchant.webmoney.ru/lmi/payment.asp" method="POST" accept-charset="windows-1251"><input type="hidden" name="LMI_PAYMENT_AMOUNT" value="' + eTransfer[1] + '"><input type="hidden" name="LMI_PAYMENT_DESC" value="' + upOrder + '"><input type="hidden" name="LMI_PAYEE_PURSE" value="' + upPurseWM + '"><input type="hidden" name="LMI_SUCCESS_URL" value="' + urlSuccess + '"><input type="hidden" name="LMI_SUCCESS_METHOD" value="2"><input type="hidden" name="LMI_FAIL_URL" value="' + urlFail + '"><input type="hidden" name="LMI_FAIL_METHOD" value="2"><div align="center"><input type="submit" class="button1" value="Оплатить"></div></form>');
}
////////////////////////// --- Ya.Money --- //////////////////////////////
if ( eTransfer[0] == 'yamoney' ) {
var upOrder = 'Заказ №' + eTransfer[3]; // номер заказа
var successURL = 'http://' + location.hostname + '/success?' + eTransfer[3];
//$('.payPanel').html('<iframe frameborder="0" allowtransparency="true" scrolling="no" src="https://money.yandex.ru/quickpay/shop-widget?account=' + upPurse + '&quickpay=shop&payment-type-choice=on&mobile-payment-type-choice=on&writer=seller&targets=' + upOrder + '&targets-hint=&default-sum=' + eTransfer[1] + '&button-text=01&successURL=' + successURL + '" width="450" height="198"></iframe>');
$('.payPanel').show();
$('.payHtml').html('<iframe frameborder="0" allowtransparency="true" scrolling="no" src="https://money.yandex.ru/quickpay/shop-widget?account=' + upPurseYD + '&quickpay=shop&payment-type-choice=on&mobile-payment-type-choice=on&writer=seller&targets=' + upOrder + '&targets-hint=&default-sum=' + eTransfer[1] + '&button-text=01&successURL=' + successURL + '" width="450" height="198"></iframe>');
}
////////////////////////// --- Ya.Money --- //////////////////////////////
}
if ( localStorage.ePay != null ) {
ePay();
}
else
{location.href= '/' ;}
</script>
3. Создаем третью страницу с названием «
Успешная оплата», в SEO-настройках в поле «
адрес (ЧПУ)» вписываем
success.
Внимание! Если вы впишите другое значение, это приведет к неправильной работе скрипта!
На созданной странице размещаем виджет «
Свой код» вставляем следующий код:
<div class="successPay">
<h4>Заказ оплачен!</h4>
<p>Ваш заказ успешно оплачен. Благодарим за покупки в нашем магазине! Приходите к нам еще :)</p>
</div>
<style>
.successPay {display:none;text-align:center;float:left;width:100%;padding: 40px 20px;background:#fff;border-radius:4px;}
#main .successPay h4 {color: #0f0f0f !important;margin: 0 0 10px 0;}
#main .successPay p {color: #0f0f0f !important;}
</style>
<script>
if ( localStorage["ePay"] != null) {var eTransfer = JSON.parse(localStorage["ePay"]);}
var ssURL = location.href.split('?');
if ( localStorage["ePay"] != null && eTransfer[3] == ssURL[1]) {
$('.successPay').show();
//alert('успешная оплата');
localStorage.removeItem("ePay"); // удаление содержимого
}
if ( localStorage["ePay"] != null && eTransfer[0] == 'unitpay') {
$('.successPay').show();
//alert('успешная оплата');
localStorage.removeItem("ePay"); // удаление содержимого
}
else {
// location.href= '/';
}
</script>
4. Создаем четвертую страницу с названием «
Ошибка платежа», в SEO-настройках в поле «
адрес (ЧПУ)» вписываем
fail.
Внимание! Если вы впишите другое значение, это приведет к неправильной работе скрипта!
На созданной странице размещаем виджет «
Свой код» вставляем следующий код:
<div class="successPay">
<h4>Заказ НЕ оплачен!</h4>
<p>Вероятно, при попытке оплаты произошла ошибка... попробуйте еще раз.</p>
</div>
<style>
.successPay {text-align:center;float:left;width:100%;padding: 40px 20px;background:#fff;border-radius:4px;}
#main .successPay h4 {color: #0f0f0f !important;margin: 0 0 10px 0;}
#main .successPay p {color: #0f0f0f !important;}
</style>
5. Создаем пятую страницу с названием «
Генератор», в SEO-настройках в поле «
адрес (ЧПУ)» вписываем
generate. Создание этой страницы не обязательно, если для построения каталога товаров будет использоваться только виджет «
Карточка».
На созданной странице размещаем виджет «
Свой код» вставляем следующий код:
<div class="basket-page">
<h2 class="mc-title">Генерация ссылки</h2>
<ul class="nav-tabs">
<li class="t-goods-i active" data-item="tab1"><span>«Кнопка»</span></li>
<li class="t-delivery-i" data-item="tab2"><span>«Прайс»</span></li>
</ul>
<div class="tabs">
<div class="tab" id="tab1"><div class="tab-wrap">
<h3>Генерация для виджета «Кнопка»</h3>
<div class="g-line">
<p>Название товара</p>
<input type="text" class="goodTitle"><span class="ul-widget-feedBack-form-control-feedback icon-content-special-required"></span>
</div>
<div class="g-line" >
<p>Изображение товара</p>
<input type="text" class="goodImg"><span class="ul-widget-feedBack-form-control-feedback icon-content-special-required"></span>
</div>
<div class="g-line">
<p>Цена товара</p>
<input type="text" class="goodCoast"><span class="ul-widget-feedBack-form-control-feedback icon-content-special-required"></span>
</div>
<div class="g-line noVis">
<p>Ссылка для вставки</p>
<textarea class="url-btn"></textarea>
</div>
<div class="g-line">
<input type="submit" value="Получить ссылку" onclick="getLink('btn')">
</div>
</div> <!-- / #tab-wrap -->
</div> <!-- / #tab1 -->
<div class="tab" id="tab2"><div class="tab-wrap">
<h3>Генерация для виджета «Прайс»</h3>
<p>Ввиду особенностей этого виджета, идентификатор товара необходимо указывать вручную. Он не должен повторяться с другими сгенерированными товарами, если вы хотите, чтобы все работало корректно.</p>
<div class="g-line">
<p>Название товара</p>
<input type="text" class="goodTitlePrice"><span class="ul-widget-feedBack-form-control-feedback icon-content-special-required"></span>
</div>
<div class="g-line" >
<p>Изображение товара</p>
<input type="text" class="goodImgPrice"><span class="ul-widget-feedBack-form-control-feedback icon-content-special-required"></span>
</div>
<div class="g-line">
<p>Цена товара</p>
<input type="text" class="goodCoastPrice"><span class="ul-widget-feedBack-form-control-feedback icon-content-special-required"></span>
</div>
<div class="g-line">
<p>ID товара</p>
<input type="text" class="goodIdPrice"><span class="ul-widget-feedBack-form-control-feedback icon-content-special-required"></span>
</div>
<div class="g-line noVisP">
<p>Ссылка для вставки</p>
<textarea class="url-btnPrice"></textarea>
</div>
<div class="g-line">
<input type="submit" value="Получить ссылку" onclick="getLink('price')">
</div>
</div> <!-- / #tab-wrap -->
</div> <!-- / #tab2 -->
</div>
</div>
<script>
$(document).ready(function() {
$('.nav-tabs li').on('click', function() {
$('.nav-tabs li').removeClass('active');
$(this).addClass('active');
$('.tab').hide();
$('#' + $(this).attr('data-item') ).fadeIn(500);
});
});
var Base64 = {
_keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
//метод для кодировки в base64 на javascript
encode : function (input) {
var output = "";
var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
var i = 0
input = Base64._utf8_encode(input);
while (i < input.length) {
chr1 = input.charCodeAt(i++);
chr2 = input.charCodeAt(i++);
chr3 = input.charCodeAt(i++);
enc1 = chr1 >> 2;
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
enc4 = chr3 & 63;
if( isNaN(chr2) ) {
enc3 = enc4 = 64;
}else if( isNaN(chr3) ){
enc4 = 64;
}
output = output +
this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) +
this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);
}
return output;
},
//метод для раскодировки из base64
decode : function (input) {
var output = "";
var chr1, chr2, chr3;
var enc1, enc2, enc3, enc4;
var i = 0;
input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
while (i < input.length) {
enc1 = this._keyStr.indexOf(input.charAt(i++));
enc2 = this._keyStr.indexOf(input.charAt(i++));
enc3 = this._keyStr.indexOf(input.charAt(i++));
enc4 = this._keyStr.indexOf(input.charAt(i++));
chr1 = (enc1 << 2) | (enc2 >> 4);
chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
chr3 = ((enc3 & 3) << 6) | enc4;
output = output + String.fromCharCode(chr1);
if( enc3 != 64 ){
output = output + String.fromCharCode(chr2);
}
if( enc4 != 64 ) {
output = output + String.fromCharCode(chr3);
}
}
output = Base64._utf8_decode(output);
return output;
},
// метод для кодировки в utf8
_utf8_encode : function (string) {
string = string.replace(/\r\n/g,"\n");
var utftext = "";
for (var n = 0; n < string.length; n++) {
var c = string.charCodeAt(n);
if( c < 128 ){
utftext += String.fromCharCode(c);
}else if( (c > 127) && (c < 2048) ){
utftext += String.fromCharCode((c >> 6) | 192);
utftext += String.fromCharCode((c & 63) | 128);
}else {
utftext += String.fromCharCode((c >> 12) | 224);
utftext += String.fromCharCode(((c >> 6) & 63) | 128);
utftext += String.fromCharCode((c & 63) | 128);
}
}
return utftext;
},
//метод для раскодировки из urf8
_utf8_decode : function (utftext) {
var string = "";
var i = 0;
var c = c1 = c2 = 0;
while( i < utftext.length ){
c = utftext.charCodeAt(i);
if (c < 128) {
string += String.fromCharCode(c);
i++;
}else if( (c > 191) && (c < 224) ) {
c2 = utftext.charCodeAt(i+1);
string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
i += 2;
}else {
c2 = utftext.charCodeAt(i+1);
c3 = utftext.charCodeAt(i+2);
string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
i += 3;
}
}
return string;
}
}
function getLink(id) {
if ( id == 'btn') {
$('.url-btn').val( window.location.protocol + location.hostname + '/?cart-on&=' + Base64.encode($('.goodTitle').val() ) + '&=' + $('.goodImg').val() + '&=' + $('.goodCoast').val() );
$('.noVis').show();
}
if ( id == 'price') {
$('.url-btnPrice').val( window.location.protocol + location.hostname + '/?cart-on&=' + Base64.encode($('.goodTitlePrice').val() ) + '&=' + $('.goodImgPrice').val() + '&=' + $('.goodCoastPrice').val() + '&=' + $('.goodIdPrice').val() );
$('.noVisP').show(); }
}
</script>
<style>
.basket-page {float:left;width:100%;overflow:hidden;}
.mc-title {margin: 0;float:left;width:100%;}
.nav-tabs {padding:0;margin:0;width:100%;float:left;}
.nav-tabs li {background:#132026;text-align:center;width:50%;color:#DAE1E6;transition: all 0.3s;display:inline-block;font-size: 14px !important;float:left;line-height:40px;cursor:pointer;}
.nav-tabs li:before, .prevTab:before, .payStart:before {font: normal normal normal 16px/1 FontAwesome;display:inline-block;margin-right:10px;}
.nextTab:after {font: normal normal normal 16px/1 FontAwesome;display:inline-block;margin-left:10px;}
.nav-tabs li:first-child {border-radius: 4px 0 0 0;}
.nav-tabs li:last-child {border-radius: 0 4px 0 0;}
.nav-tabs li:hover {background: #23363e;transition: all 0.3s;}
.nav-tabs li.active {background:#4caf50;color:#e8fbe9;cursor: default}
.nav-tabs li.active:hover {background: #6ec071;}
.nav-tabs li:first-child:before {content: "\f0c8" !important;}
.nav-tabs li:nth-child(2):before {content: "\f00b" !important;}
.tabs {float:left;width:100%;background: #f5f5f5;color:#333333;border-radius:0 0 4px 4px;}
.tab-wrap {padding:20px;float:left;width:100%;}
.tab-wrap h3 {float:left;width:100%;margin: 0 0 20px 0;font-size:24px !important;}
.tab {display:none;width:100%;float:left;}
.tab:first-child {display:block;}
#tab1 .tab-wrap {padding-bottom:10px;}
.g-line {width:100%;margin: 0 0 10px 0;position:relative;float:left;}
#main .g-line p {color:#333;font-weight:700;margin: 0 0 5px 0;padding:0 !important;}
#body .g-line > span {color: #8da8b8;position: absolute;right: 5px;top: 28px;font-size: 10px;}
.g-line input {border-radius:4px;border:2px solid #DBE2E8; line-height:36px;padding: 0 10px;outline:none;margin: 0 0 10px 0;width:100%;transition: all .3s;}
.g-line textarea {border-radius:4px;border:2px solid #DBE2E8; padding: 10px;outline:none;margin: 0 0 10px 0;width:100%;transition: all .3s;}
.g-line input:focus, .g-line textarea:focus {border-color: #8DA8B8;transition: all .3s;}
.g-line input[type="submit"] {display: inline-block;width:100%;line-height: 38px;transition: all .3s;border-radius: 4px;background: #4caf50;color: #e8fbe9;width:100%;outline:none;border:none;}
.g-line input[type="submit"]:hover {transition: all .3s;background: #6ec071;color: #fff;}
.noVisP, .noVis {display:none;}
</style>