Subversion-Projekte lars-tiefland.faltradxxs.de

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
2 lars 1
//$Id: add_item_to_basket.js 7412 2021-11-24 12:43:52Z erling $
2
$(function(){
3
 
4
    $('.add_konfigitem_to_basket').click(add_konfigitem_to_basket);
5
    $('.add_to_basket').click(add_item_to_basket);
6
    $('.addon_to_basket').click(addon_item_to_basket);
7
    $('.addon_basket').click(addon_to_basket);
8
    $('.add_zusatz').click(add_zusatz);
9
    $('.basket_add_zusatz').click(basket_add_zusatz);
10
    $('.add_to_basket_single').click(add_single_to_basket);
11
 
12
    $("div.basket_text").on("click", "div.add_item_from_subdir", add_item_from_subdir);
13
    $("div.basketImg").on("click", "img.add_item_from_subdir", add_item_from_subdir);
14
    $("div.basketReload").on("click", "img.add_item_from_subdir", add_item_from_subdir);
15
    $(".itemTable_container").on("click", "div.add_item_from_subdir", add_item_from_subdir);
16
 
17
    $("#letzteBestellungen").on("click", "div.add_item_from_subdir", add_item_from_subdir);
18
 
19
    $("#favoriten").on("click", "img.add_item_from_subdir", add_item_from_subdir);
20
    //$("#favoriten").on("click", "div.add_item_from_subdir", add_item_from_subdir);
21
 
22
 
23
    $('#accordionBasket #favoriten div.add_item_from_subdir').click(add_item_from_subdir);
24
    $('#tabsBasket #favoriten div.add_item_from_subdir').click(add_item_from_subdir);
25
 
26
 
27
    $('#addPraesentkorb').click(addPraesentkorb);
28
    $('#choosePraesentkorb').click(choosePraesentkorb);
29
 
30
    let w=$(window).width();
31
    let dialogWidth = "90%";
32
 
33
    if(w>1000) {
34
        dialogWidth = 850;
35
 
36
    }
37
    $('#add_basket_msg').dialog({
38
            dialogClass: 'bestelldialog',
39
            modal:true,
40
            autoOpen:false,
41
            resizable:false,
42
            width: dialogWidth, // overcomes width:'auto' and maxWidth bug
43
            maxWidth: 800,
44
            maxHeight: 600,
45
            position:{
46
                my: "center",
47
                at: "center",
48
                of: window
49
            },
50
            buttons:{
51
                'weiter einkaufen':function(){
52
                    $(this).dialog("close");
53
                    //document.location.reload();
54
                },
55
                'zur Kasse':function(){
56
                    $(this).dialog("close");
57
                    document.location.href=buy_link_base+"/basket.html";
58
                }
59
            }
60
    });
61
 
62
    // ME: das Mengeneingabefeld prüfen und unerlaubte Eingaben verhindern
63
    $('.mengeninput').keyup(checkMindestMenge);
64
 
65
    function checkMindestMenge(e) {
66
        if(e.which!=8) {
67
            let mindestMenge = parseInt( $('#mindestMenge').val() );
68
            let menge = $(this).val();
69
            let defaultMenge = 1;
70
            // im Warenkorb muss es auch funktionieren..
71
 
72
            if(!mindestMenge) {
73
                let basketItemID = $(this).attr('id');
74
                mindestMenge = parseInt ( $('#mindestMenge_'+basketItemID).val() );
75
                let onBasketPage = 1;
76
            }
77
            if(mindestMenge > 0) {
78
                defaultMenge = mindestMenge;
79
            }
80
 
81
            menge = menge.replace('.',"");
82
 
83
            if(menge<=0) {
84
                menge=defaultMenge;
85
            }
86
 
87
            if(isNaN(menge)==true) {
88
                menge=defaultMenge;
89
            }
90
            if(mindestMenge > 0) {
91
                if(menge < defaultMenge) {
92
                    menge = defaultMenge;
93
                }
94
            }
95
 
96
            $(this).val(menge);
97
        }
98
    }    // bei onfocus das Feld leeren
99
    $('.mengeninput').focus(function(){
100
        //$(this).val('');
101
    });
102
 
103
    // ME: beim Enter drücken muss der Warenkorbbutton getriggert werden.
104
    $('.mengeninput').keypress(function(e){
105
        if(e.which === 13) {
106
            $('.add_to_basket').trigger('click');
107
            // auch auf den Übersichtsseiten
108
            let id = $(this).attr('id');
109
            if(id) {
110
                id = id.split("_");
111
                $('#item_'+id[1]).trigger('click');
112
            }
113
        }
114
    });
115
 
116
});
117
 
118
function addPraesentkorb(e)
119
{
120
    e.preventDefault();
121
    let pId=$(this).attr("data-pkId");
122
    $.get("/addItemToBasket?item="+pId,function(){
123
        location.href="/basket.html";
124
    })
125
}
126
function choosePraesentkorb(e)
127
{
128
    e.preventDefault();
129
    let pId=$('#pkId').val();
130
    $.get("/addItemToBasket?item="+pId,function(){
131
        location.href="/basket.html";
132
    })
133
}
134
 
135
function add_konfigitem_to_basket(event) {
136
 
137
    event.preventDefault();
138
    let items = $('#basket').serialize();
139
 
140
    let addons = $('#addons').serialize();
141
 
142
    $('.warenkorb').load('/addItemToBasket?'+addons,items, function(data){
143
        $('#add_basket_msg').dialog("open");
144
        let iPreis = $('#itemPreis').html();
145
        if(iPreis){
146
          $('#add_basket_msg').find('#dialog_preis').html(iPreis);
147
        }
148
 
149
    });
150
}
151
 
152
function add_single_to_basket(event) {
153
 
154
    event.stopImmediatePropagation();
155
    event.preventDefault();
156
 
157
    let itemArr = $('#basket').serialize();
158
 
159
    $('#menge_bestand_msg').hide();
160
 
161
    if(typeof buy_more_as_on_stock == null || typeof buy_more_as_on_stock == undefined)
162
    {
163
        let buy_more_as_on_stock=0;
164
    }
165
 
166
    if( checkVerfuegbarenBestand ) {
167
        $.ajax({
168
            type: "POST",
169
            url: "/module/checkWarenkorbItemBestand.php",
170
            data: itemArr,
171
            async: false,
172
            success: function(data) {
173
 
174
                if( data != "" && buy_more_as_on_stock !=1 ){
175
                    alert(data)
176
                }else{
177
                    $('#add_basket_msg').dialog("open");
178
                    if(data!="" && buy_more_as_on_stock==1)
179
                    {
180
                        $('#menge_bestand_msg').css('display','block');
181
                    }
182
                    if (typeof(fbtag) != "undefined" && typeof(fbq) != "undefined") {
183
                        fbq("track","AddToCart");
184
                    }
185
                    $('.warenkorb').load('/addItemToBasket', itemArr, function(data){});
186
                }
187
            }
188
        })
189
    }else{
190
        if (typeof(fbtag) != "undefined" && typeof(fbq) != "undefined") {
191
            fbq("track","AddToCart");
192
        }
193
        $('.warenkorb').load('/addItemToBasket', itemArr, function(data){
194
            location.href="/paypal/SetExpressCheckout.php";
195
        });
196
    }
197
}
198
 
199
function add_item_to_basket(event,optDlg=1) {
200
 
201
    event.stopImmediatePropagation();
202
    event.preventDefault();
203
 
204
    // options selected?
205
    if(optDlg===1) {
206
        let err = 0;
207
        let cDlg;
208
        $('.options option').each(function() {
209
            if($(this).is(":selected")) {
210
                if($(this).val()==="-1") {
211
                    err++;
212
                }
213
            }
214
            return err;
215
        });
216
        if(err>0) {
217
            cDlg = confirm("Es sind nicht alle Optionen ausgewählt worden. Sind sicher, dass Sie fortfahren möchten?");
218
        }
219
        if(cDlg===false) {
220
            return false;
221
        }
222
    }
223
 
224
 
225
 
226
    $('.products_checkbox').each(function(index,elem){
227
        if($(elem).prop("checked")==true)
228
        {
229
            let item=$(elem).attr("id").split("_");
230
            item=item[1];
231
            console.log(item)
232
            let url = '/addItemToBasket?basket=true&item='+item+'&Menge=1';
233
            console.log(url);
234
            $('.warenkorb').load(url, function(data){});
235
        }
236
    })
237
    let itemArr = $('#basket').serialize();
238
 
239
    $('#menge_bestand_msg').hide();
240
 
241
    if(typeof buy_more_as_on_stock == null || typeof buy_more_as_on_stock === undefined)
242
    {
243
        let buy_more_as_on_stock=0;
244
    }
245
 
246
    if( checkVerfuegbarenBestand ) {
247
        $.ajax({
248
            type: "POST",
249
            url: "/module/checkWarenkorbItemBestand.php",
250
            data: itemArr,
251
            async: false,
252
            success: function(data) {
253
 
254
                if( data != "" && buy_more_as_on_stock !=1 ){
255
                    alert(data)
256
                }else{
257
                    $('#add_basket_msg').dialog("open");
258
                    if(data!="" && buy_more_as_on_stock==1)
259
                    {
260
                        $('#menge_bestand_msg').css('display','block');
261
                    }
262
                    if (typeof(fbtag) != "undefined" && typeof(fbq) != "undefined") {
263
                        fbq("track","AddToCart");
264
                    }
265
                    console.log(itemArr)
266
                    $('.warenkorb').load('/addItemToBasket', itemArr, function(data){});
267
                }
268
            }
269
        })
270
    }else{
271
        if (typeof(fbtag) != "undefined" && typeof(fbq) != "undefined") {
272
            fbq("track","AddToCart");
273
        }
274
        $('#add_basket_msg').dialog("open");
275
        console.log(itemArr)
276
        $('.warenkorb').load('/addItemToBasket', itemArr, function(data){});
277
    }
278
}
279
 
280
 
281
function addon_item_to_basket(event)
282
{
283
    event.stopImmediatePropagation();
284
    event.preventDefault();
285
    let a_id = this.id;
286
    a_id = a_id.split("_");
287
    a_id = a_id[1];
288
    let form_id="basket_"+a_id;
289
    $('#add_basket_msg').dialog("open");
290
    $('.warenkorb').load('//addItemToBasket', $('#'+form_id).serialize(), function(data){
291
    });
292
}
293
function addon_to_basket(event)
294
{
295
    event.preventDefault();
296
    let a_id = $(this).attr("id");
297
    a_id = a_id.split("_");
298
    a_id = a_id[1];
299
    let form_id="basket_"+a_id;
300
 
301
    $('.hd_warenkorb').load('/addItemToBasket', $('#'+form_id).serialize(), function(data){
302
        document.location.href=buy_link_base+"/basket.html";
303
    });
304
}
305
 
306
function add_item_from_subdir(event) {
307
 
308
    $(".ui-dialog-content").dialog("close");
309
    let item_id = $(this).attr("id");
310
 
311
    item_id=item_id.split("_");
312
    item_id = item_id[1];
313
    let menge = 1;
314
 
315
    if($('#Menge_'+item_id).val())
316
    {
317
        menge = $('#Menge_'+item_id).val();
318
    }
319
 
320
    let auspraegungStr="";
321
 
322
    if($('#auspraegungStr_'+item_id).val())
323
    {
324
        auspraegungStr=$('#auspraegungStr_'+item_id).val();
325
    }
326
 
327
    let url = '/addItemToBasket?basket=true&item='+item_id+'&Menge='+menge+'&buy=false';
328
 
329
    if(auspraegungStr)
330
    {
331
        url+="&auspraegungStr="+encodeURI(auspraegungStr);
332
    }
333
 
334
    if( $(".mengeninput_"+item_id).val() > 0 && $(".mengeninput_"+item_id).val() != "undefined" ){
335
        menge = $(".mengeninput_"+item_id).val();
336
 
337
    }
338
 
339
    // checkVerfuegbarenBestand in page.tpl definiert
340
    if( checkVerfuegbarenBestand ) {
341
        if(typeof buy_more_as_on_stock == null)
342
        {
343
            buy_more_as_on_stock=0;
344
        }
345
        let item = [];
346
        item.push({ name: "item", value: item_id });
347
        item.push({ name: "Menge", value: menge });
348
 
349
        $.ajax({
350
            type: "POST",
351
            url: "/module/checkWarenkorbItemBestand.php",
352
            data: item,
353
            async: false,
354
            success: function(data) {
355
 
356
                if( data != "" && buy_more_as_on_stock !=1 ){
357
                    alert(data)
358
                }else{
359
                    $('#add_basket_msg').dialog("open");
360
                    if(data!=="" && buy_more_as_on_stock==1)
361
                    {
362
                        $('#menge_bestand_msg').css('display','block');
363
                    }
364
                    if (typeof(fbtag) != "undefined" && typeof(fbq) != "undefined") {
365
                        fbq("track","AddToCart");
366
                    }
367
                    $('.warenkorb').load(url,function(data){});
368
                }
369
            }
370
        })
371
    }else{
372
        if (typeof(fbtag) != "undefined" && typeof(fbq) != "undefined") {
373
            fbq("track","AddToCart");
374
        }
375
        $('#add_basket_msg').dialog("open");
376
        $('.warenkorb').load(url,$('#basket_'+item_id).serialize(),function(data){});
377
    }
378
}
379
 
380
function add_item_from_fastOrder( data ){
381
    if (typeof(fbtag) != "undefined" && typeof(fbq) != "undefined") {
382
        fbq("track","AddToCart");
383
    }
384
 
385
    $('#add_basket_msg').dialog("open");
386
    $.ajax({
387
        type: "POST",
388
        url : '/addItemToBasket?basket=true&buy=false&mode=fastOrder',
389
        data: data
390
    }).done(function(html){
391
        $('.warenkorb').html(html);
392
    });
393
}
394
 
395
 
396
function basket_add_zusatz(event)
397
{
398
    event.preventDefault();
399
    $( "#loading" ).dialog( "open" );
400
    let z_id = this.id;
401
    z_id = z_id.split("_");
402
    let b_id = z_id[1];
403
    let m_id = z_id[4];
404
    z_id = z_id[3];
405
    let url='/addItemToBasket?basket=true&b_id='+b_id+'&zusatz='+z_id+'&Menge=1&buy=false';
406
    //alert(url);
407
    $('.hd_warenkorb').load(url,function(data){
408
        document.location.href=buy_link_base+"/basket.html";
409
    });
410
}
411
function add_zusatz(event)
412
{
413
    event.preventDefault();
414
    let z_id = this.id;
415
    z_id = z_id.split("_");
416
    let m_id = z_id[2];
417
    z_id = z_id[1];
418
    //alert(m_id);
419
    let url='/addItemToBasket?basket=true&zusatz='+z_id+'&Menge=1&buy=false';
420
    $('.hd_warenkorb').load(url,function(data){
421
        $('.hd_warenkorb').load("/module/updateBasket.php");
422
    });
423
}
424
 
425
    function changeMenge()
426
    {
427
 
428
        let idArr = $(this).attr('id');
429
        idArr = idArr.split("_");
430
        let action = idArr[0];
431
        let id = idArr[1];
432
        let currentMenge = $('.mengeninput_'+id).val();
433
 
434
        if(currentMenge==="" || currentMenge < 1) {
435
            currentMenge = 1;
436
            $('.mengeninput_'+id).val(currentMenge);
437
        }
438
 
439
        switch(action) {
440
            case "plus":
441
                currentMenge++;
442
            break;
443
            case "minus":
444
                currentMenge--;
445
            break;
446
            default:
447
            break;
448
        }
449
        if(currentMenge < 1) {
450
            currentMenge = 1;
451
        }
452
 
453
        $('.mengeninput_'+id).val(currentMenge);
454
 
455
        if($(this).parent().children().attr('name')=="basketItemID") {
456
            let basketItemId = $(this).parent().children().val();
457
            if(basketItemId) {
458
                //changeTarget(basketItemId);
459
		let url = "/editItem/"+basketItemId+"/"+currentMenge;
460
                $.get(url,function(){
461
                    //$('#versandoptionen').load("/update_versand.php?param=single&Land=" + $('#versand_laenderauswahl').val() );
462
                })
463
            }
464
        }
465
 
466
 
467
 
468
    }
469
 
470
// mengen update ueber plus/minus tasten
471
$(document).ready(function(){
472
    // mengen update im BasketInfoLayer
473
    $('.basketinfochange_menge').click(function(){
474
        let idArr = $(this).attr('id');
475
        idArr = idArr.split("_");
476
        let action = idArr[0];
477
        let id = idArr[1];
478
        let currentMenge = $('.basketinfomengeninput_'+id).val();
479
 
480
        if(currentMenge=="" || currentMenge < 1) {
481
            currentMenge = 1;
482
            $('.basketinfomengeninput_'+id).val(currentMenge);
483
        }
484
 
485
        switch(action) {
486
            case "basketinfoplus":
487
                currentMenge++;
488
            break;
489
            case "basketinfominus":
490
                currentMenge--;
491
            break;
492
 
493
            default:
494
            break;
495
        }
496
        if(currentMenge < 1) {
497
            currentMenge = 1;
498
        }
499
        // todo: die BasketSession updaten
500
 
501
        // inputFeld updaten
502
        $('.basketinfomengeninput_'+id).val(currentMenge);
503
 
504
    });
505
 
506
 
507
    // plus/minus Tasten beim Mengeneingabefeld
508
    $('.change_menge').click(changeMenge);
509
 
510
});