//include basket logic 'use strict'; var url = '/' + b2c.locale.language + '/ajax/checkout/basket.do'; var maxDescriptionChars = 50; var maxDescriptionPixels = 200; $(function() { // ------------------------------------------------------------------------ // Gesamten Text anzeigen $(document).on('click', '.fullText', function(){ var textElem = $(this).parent(); $(textElem).html($(textElem).data('fullText')); }); // ------------------------------------------------------------------------ // Warenkorbmengen anpasssen $(document).on('change', '.basket_quantity', function(){ refreshBasket($(this)); }); $(document).on('click', '.basket_refresh', function(){ refreshBasket($(this).parent().children(".basket_quantity")); }); // ------------------------------------------------------------------------ // Artikel / Position löschen $(document).on('click', '.basket_delete, .delete', function(){ del($(this).data('pos')); }); // ------------------------------------------------------------------------ // Coupon hinzufügen $(document).on('click', '#btnAddCoupon', addCoupon); $(document).on('keyup', '#coupon', function(e){ if (e.keyCode == 13) addCoupon(); }); // ------------------------------------------------------------------------ // Service-Card $(document).on('click', '#btnServiceCard', function(){ var serviceCardLink = $('#serviceCardLink'); if (serviceCardLink) window.location.href = serviceCardLink.attr('href'); else window.location.href = '/' + b2c.locale.language + '/shop/herkunft.html?origin=' + $(this).data('origin')+ '&target=' + $(this).data('target'); }); // ------------------------------------------------------------------------ // Detail-Popup $(document).on('click', 'a.more-detail', function(){ var itemNo = $(this).data('itemno'); // prüfen welche Detailseite angezeigt werden soll if ($(this).data('tire')) { popup('http://' + document.location.hostname + '/' + b2c.locale.language + '/shop/pop_reifendetails.html?artikelnr=' + itemNo + '&popup=1', 'Reifenpopup', 770, 630, 'toolbar=no,status=no,menubar=no,resizable=yes,scrollbars=1', true, true) } else if ($(this).data('service')) { popup('http://' + document.location.hostname + '/' + b2c.locale.language + '/shop/pop_showDienstleistungDetails.html?artikelnr=' + itemNo + '&popup=1', 'Servicepopup', 770, 630, 'toolbar=no,status=no,menubar=no,resizable=yes,scrollbars=1', true, true) } else if ($(this).data('accessory')) { popup('http://' + document.location.hostname + '/' + b2c.locale.language + '/shop/pop_showZubehoerDetails.html?artikelnr=' + itemNo + '&popup=1', 'Zubeh\u00F6rpopup', 770, 630, 'toolbar=no,status=no,menubar=no,resizable=yes,scrollbars=1', true, true) } }); // ------------------------------------------------------------------------ // JF-Network Konfigurator (Reifen wählen) $(document).on('click', 'a.cokis_tire_button', function(){ var params = { todo: 'loadData', posNr: $(this).data('pos'), }; // Sessionfahrzeug anpassen $.post('model/setData.do', params, function() { window.location.href = '/' + b2c.locale.language + '/shop/configurator.html?cf=lts'; }); }); adjustServiceArea(); }); // ------------------------------------------------------------------------ // Beschreibungen kürzen, wenn sie nicht bereits gekürzt wurde function truncateText(textElem, maxChars, pxWidth) { if ($.trim($(textElem).html()).length > maxChars && $.trim($(textElem).html()).indexOf('') === -1) { // Den gesamten Text merken und Text kürzen $(textElem).data('fullText', textElem.html()); $(textElem).truncate({width: pxWidth, side: 'right'}); // Link zum Anzeigen des Gesamttextes hinzufügen $(textElem).append('mehr'); } } // ------------------------------------------------------------------------ // Warenkorbmengen anpasssen function refreshBasket(element) { $('#errorText').hide(); if (element.hasClass('disabled')) return; $('.basket_quantity').addClass('disabled').prop('disabled', true); var amount = $.trim(element.val()); if (amount.length == 0 || amount < 0) { alert( 'Die Menge darf nicht kleiner als 0 sein.' ); $('.basket_quantity').removeClass('disabled').prop('disabled', false); return; } // Google Analytics Tracking-Data if (typeof dataLayer === 'object' && $('#isTracking_basket').val() == 'true' && amount == 0) { dataLayer.push({ 'event': 'removeFromCart', 'ecommerce': { 'remove': { 'products': [{ 'name': element.data('name'), // Artikelname 'id': element.data('id'), // Artikelnummer 'price': element.data('price'), 'brand': element.data('manufacturer'), 'category': element.data('type'), 'variant': '', 'quantity': element.data('quantity') }] } } }); } var data = { todo : 'setItemQuantity', quantity : amount, posNo : element.data('pos'), isLeft : element.data('left'), show_refresh : $('#showRefresh').val(), show_basket_detail : $('#showDetail').val(), basket_headline : $('#showHeadline').val(), is_basket_overview : $('#isBasketOverview').val(), show_basket_total : $('#showBasketTotal').val(), show_service_card : $('#showServiceCard').val(), service_card_target : $('#serviceCardTarget').val(), enter_coupon : $('#showCouponField').val(), show_cokis_buttons : $('#showCokisButton').val(), show_delivery_delete : $('#showDeliveryDeleteButtons').val() }; // Ajax-Call zum Ändern der Warenkorbmengen b2c.sendRequest(url, 'POST', data, function(html) { if (!!html && $.trim(html) != 'null') { if ($('#content').size() > 0) $('#content').html(html); else if ($('#basketContent').size() > 0) $('#basketContent').html(html); if (typeof adjustDeliveryServiceArea !== 'undefined' && $.isFunction(adjustDeliveryServiceArea)) adjustDeliveryServiceArea(); else adjustServiceArea(); $('.basket_quantity').removeClass('disabled').prop('disabled', false); } else { window.location.replace('/' + b2c.locale.language + '/shop/start.html'); } }, undefined, 'html'); } function del(pos) { if (typeof dataLayer === 'object' && $('#isTracking_basket').val() == 'true' && pos !== 'gutschein') { dataLayer.push({ 'event': 'removeFromCart', 'ecommerce': { 'remove': { 'products': [{ 'name': $(this).data('name'), // Artikelname 'id': $(this).data('id'), // Artikelnummer 'price': $(this).data('price'), 'brand': $(this).data('manufacturer'), 'category': $(this).data('type'), 'variant': '', 'quantity': $(this).data('quantity') }] } } }); } var data = { todo : 'delfromwk', posnr : pos, show_refresh : $('#showRefresh').val(), show_basket_detail : $('#showDetail').val(), basket_headline : $('#showHeadline').val(), is_basket_overview : $('#isBasketOverview').val(), show_basket_total : $('#showBasketTotal').val(), show_service_card : $('#showServiceCard').val(), service_card_target : $('#serviceCardTarget').val(), enter_coupon : $('#showCouponField').val(), show_cokis_buttons : $('#showCokisButton').val(), show_delivery_delete : $('#showDeliveryDeleteButtons').val() }; // Ajax-Call zum Ändern der Warenkorbmengen b2c.sendRequest(url, 'POST', data, function(html) { if (!!html && $.trim(html) != 'null') { $('#basketContent').html(html); adjustServiceArea(); } else { location.reload(); } }, undefined, 'html'); $(window).on('beforeunload', function() { $(window).scrollTop(0); }); } function addCoupon() { $('#errorText').hide(); var coupon = $('#coupon'); var couponText = $.trim($('#coupon').val()); if (!couponText) { $('#errorText').html('Es wurde kein Gutschein-Code angegeben'); $('#errorText').show(); $('body,html').animate({ scrollTop: 0 }, 500); return; } var data = { todo : 'addgutschein', txtCouponCode : couponText, show_refresh : $('#showRefresh').val(), show_basket_detail : $('#showDetail').val(), basket_headline : $('#showHeadline').val(), is_basket_overview : $('#isBasketOverview').val(), show_basket_total : $('#showBasketTotal').val(), show_service_card : $('#showServiceCard').val(), service_card_target : $('#serviceCardTarget').val(), enter_coupon : $('#showCouponField').val(), show_cokis_buttons : $('#showCokisButton').val(), show_delivery_delete : $('#showDeliveryDeleteButtons').val() }; // Ajax-Call zum Hinzufügen von einem Coupon b2c.sendRequest(url, 'POST', data, function(json) { if ($.trim(json.error).length > 0) { alert($.trim(json.error)); } else if (json.success) { // Warenkorb und Übersichtsseite werden immer neu geladen! location.reload(); } }, undefined, 'json'); } // ------------------------------------------------------------------------ // Adjust Servicearea function adjustServiceArea() { // Beschreibungstexte im Warenkorb kürzen $.each($('h4.more'), function(){ truncateText($(this), maxDescriptionChars, maxDescriptionPixels); }); }