var flyingSpeed = 25; var url_addProductToBasket = 'https://sportprivate.ru/index.php?module=catalog&add_to_cart'; var url_removeProductFromBasket = 'https://sportprivate.ru/index.php?module=catalog&remove_from_cart'; var txt_totalPrice = 'Всего: '; var shopping_cart_div = false; var flyingDiv = false; var currentProductDiv = false; var shopping_cart_x = false; var shopping_cart_y = false; var slide_xFactor = false; var slide_yFactor = false; var diffX = false; var diffY = false; var currentXPos = false; var currentYPos = false; var ajaxObjects = new Array(); var count_of_orders = 0; function shoppingCart_getTopPos(inputObj) { var returnValue = inputObj.offsetTop; while((inputObj = inputObj.offsetParent) != null){ if(inputObj.tagName != 'HTML')returnValue += inputObj.offsetTop; } return returnValue; } function shoppingCart_getLeftPos(inputObj) { var returnValue = inputObj.offsetLeft; while((inputObj = inputObj.offsetParent) != null){ if(inputObj.tagName != 'HTML')returnValue += inputObj.offsetLeft; } return returnValue; } var count_set = 0; function addToBasket(productId, goToURL){ if(!goToURL){ goToURL = false; } if(document.getElementById('product_count') !== null){ count = parseFloat(document.getElementById('product_count').value); } else { count = 1; } if(count>=1){ count_set = count; if(!shopping_cart_div)shopping_cart_div = document.getElementById('shopping_cart'); if(!flyingDiv){ flyingDiv = document.createElement('DIV'); flyingDiv.style.position = 'absolute'; document.body.appendChild(flyingDiv); } shopping_cart_x = shoppingCart_getLeftPos(shopping_cart_div); shopping_cart_y = shoppingCart_getTopPos(shopping_cart_div); currentProductDiv = document.getElementById('slidingProduct' + productId); currentXPos = shoppingCart_getLeftPos(currentProductDiv); currentYPos = shoppingCart_getTopPos(currentProductDiv); diffX = shopping_cart_x - currentXPos; diffY = shopping_cart_y - currentYPos; var shoppingContentCopy = currentProductDiv.cloneNode(true); shoppingContentCopy.id = ''; flyingDiv.innerHTML = ''; flyingDiv.style.left = currentXPos + 'px'; flyingDiv.style.top = currentYPos + 'px'; flyingDiv.appendChild(shoppingContentCopy); flyingDiv.style.display = 'block'; flyingDiv.style.width = currentProductDiv.offsetWidth + 'px'; item_title = document.getElementById('item_title').innerHTML; item_price = document.getElementById('item_price').content; //alert(productId+"-"+item_title+"-"+item_price+"-"+count); // электронная коммерция, добавление в корзину ga('ec:addProduct', { 'id': productId, 'name': item_title, 'price': item_price, 'quantity': count }); ga('ec:setAction', 'add'); ga('send', 'event', 'UX', 'click', 'add to cart'); // Отправка данных ga('send', 'pageview', '/virtual/addToBasket'); // гугла аналитикс, виртуальная страница yaCounter21788998.reachGoal('addToBasket'); //яндек метрика flyToBasket(productId, count, goToURL); } else { alert('Количество товара необходимо указывать целым числом.'); } } function flyToBasket(productId, count, goToURL) { var maxDiff = Math.max(Math.abs(diffX),Math.abs(diffY)); var moveX = (diffX / maxDiff) * flyingSpeed;; var moveY = (diffY / maxDiff) * flyingSpeed; currentXPos = currentXPos + moveX; currentYPos = currentYPos + moveY; flyingDiv.style.left = Math.round(currentXPos) + 'px'; flyingDiv.style.top = Math.round(currentYPos) + 'px'; if (typeof(count) == "undefined") count = 1; if(moveX>0 && currentXPos > shopping_cart_x){ flyingDiv.style.display = 'none'; } if(moveX<0 && currentXPos < shopping_cart_x){ flyingDiv.style.display = 'none'; } if(flyingDiv.style.display == 'block')setTimeout('flyToBasket("' + productId + '", '+count+', '+goToURL+')',10); else ajaxAddProduct(productId, count, '', goToURL); } function showAjaxBasketContent(ajaxIndex) { // Getting a reference to the shopping cart items table var itemBox = document.getElementById('shopping_cart_items'); var productItems = ajaxObjects[ajaxIndex].response.split('|||'); // Breaking response from Ajax into tokens if(document.getElementById('shopping_cart_items_product' + productItems[0])) { $quantity = jQuery('#shopping_cart_items_product'+productItems[0]).find('.cart_quantity span'); $price = jQuery('#shopping_cart_items_product'+productItems[0]).find('.cart_price span'); price_val = parseInt($price.html()); price_val += parseInt(productItems[3]); $price.html(price_val); quantity_val = parseInt($quantity.html()); quantity_val += parseInt(productItems[2]); $quantity.html(quantity_val); } else { count_of_orders++; var tr = itemBox.insertRow(-1); tr.id = 'shopping_cart_items_product' + productItems[0]; var ins_body = ""; var td = tr.insertCell(-1); td.style.paddingBottom = '4px'; ins_body += "
"; ins_body += "Х"; ins_body += "
"; ins_body += ""+productItems[1]+"
"; ins_body += "
Общая цена: "+productItems[3]+"
"; ins_body += "
Количество: "+productItems[2]+"
"; ins_body += "
"; // ins_body += "
"; // ins_body += ""; // ins_body += "Заказать"; // ins_body += "
"; td.innerHTML = ins_body; if(count_of_orders>0) { document.getElementById("prt").style.display = 'block'; document.getElementById("shopping_cart").style.display = 'block'; if($('no_articles')) { $('no_articles').style.display = 'none'; } } else { document.getElementById("prt").style.display = 'none'; document.getElementById("shopping_cart").style.display = 'none'; if($('no_articles')) { $('no_articles').style.display = 'block'; } } if(count_of_orders>0) { document.getElementById("order_all_btn").style.display = 'block'; } else { document.getElementById("order_all_btn").style.display = 'none'; } totalsum('.cart_price', '#priceTotal'); } ajaxObjects[ajaxIndex] = false; } function removeProductFromBasket(productId) { var productRow = document.getElementById('shopping_cart_items_product' + productId); count_of_orders--; if(count_of_orders>0) { $('no_articles').style.display = 'none'; document.getElementById("prt").style.display = 'block'; } else { if(count_of_orders<1) { $('no_articles').style.display = 'block'; document.getElementById("prt").style.display = 'none'; document.getElementById("order_all_btn").style.display = 'none'; document.getElementById("shopping_cart").style.display = 'none'; } } var numberOfItemCell = productRow.cells[0]; productRow.parentNode.removeChild(productRow); ajaxRemoveProduct(productId); totalsum('.cart_price', '#priceTotal'); } function ajaxValidateRemovedProduct(ajaxIndex) { if(ajaxObjects[ajaxIndex].response != 'OK')alert('Error while removing product from the database '+ajaxObjects[ajaxIndex].response+''); } function ajaxRemoveProduct(productId) { var ajaxIndex = ajaxObjects.length; ajaxObjects[ajaxIndex] = new sack(); ajaxObjects[ajaxIndex].requestFile = url_removeProductFromBasket; // Saving product in this file ajaxObjects[ajaxIndex].setVar('productIdToRemove', productId); ajaxObjects[ajaxIndex].onCompletion = function(){ ajaxValidateRemovedProduct(ajaxIndex); }; // Specify function that will be executed after file has been found ajaxObjects[ajaxIndex].runAJAX(); // Execute AJAX function } function ajaxAddProduct(productId, count, append, goToURL) { if(typeof(append) == 'undefined') append = false; if(count) { count_set = count; } if(count_set >= 1) { document.getElementById("cart_box").style.display=""; var ajaxIndex = ajaxObjects.length; ajaxObjects[ajaxIndex] = new sack(); ajaxObjects[ajaxIndex].requestFile = url_addProductToBasket; // Saving product in this file ajaxObjects[ajaxIndex].setVar('productId', productId); ajaxObjects[ajaxIndex].setVar('count', count_set); ajaxObjects[ajaxIndex].setVar('append', append); ajaxObjects[ajaxIndex].onCompletion = function(){showAjaxBasketContent(ajaxIndex);}; // Specify function that will be executed after file has been found ajaxObjects[ajaxIndex].runAJAX(); // Execute AJAX function if (goToURL == 1){ //window.location.href = "https://sportprivate.ru/index.php?module=catalog&order="+productId; setTimeout(function() { window.location.href = "https://sportprivate.ru/index.php?module=catalog&order="+productId }, 2000); } } else { alert('Количество товара необходимо указывать положительным, целым числом.'); } }