//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);
});
}