PageSourceSearch

https://www.photoever.extremaalbum.com/.core/.js/functions.js?rand=123593291

js extremaalbum.com collected 2026-10-05 01:02:15 UTC 59,452 bytes, 2,191 lines download raw bytes

1(function($)
2{
3
4    /* --   WYŚWIETLENIE OBIEKTU   -- */
5
6    // --   V.2
7
8    $.fn.SHOWW = function(f)
9    {
10        this.removeClass("off");
11        this.width();
12        this.removeClass("hide");
13        if (typeof f !== "undefined") {
14            var t = parseInt(this.data("t"));
15            var d = parseFloat(this.css("transition-duration")) * 1000;
16            if (typeof t !== "undefined") d = t;
17            setTimeout(function() {
18                f();
19            }, d);
20        }
21        return this;
22    };
23
24    // --   V.1
25
26    $.fn.SHOW = function(t = 0, f)
27    {
28        this.removeClass("off");
29        this.width();
30        this.removeClass("hide");
31        if (typeof f !== "undefined") {
32            setTimeout(function() {
33                f();
34            }, t);
35        }
36        return this;
37    };
38
39
40
41
42
43    /* --   UKRYCIE OBIEKTU   -- */
44
45    // --   V.2
46
47    $.fn.HIDEE = function(f)
48    {
49        var obj = this;
50        var d = parseFloat(obj.css("transition-duration")) * 1000;
51        obj.addClass("hide");
52        setTimeout(function() {
53            obj.addClass("off");
54            if (typeof f !== "undefined") {
55                f();
56            }
57        }, d);
58        return obj;
59    };
60
61    // --   V.1
62
63    $.fn.HIDE = function(t = 0, f)
64    {
65        var obj = this;
66        obj.addClass("hide");
67        setTimeout(function() {
68            obj.addClass("off");
69            if (typeof f !== "undefined") {
70                f();
71            }
72        }, t);
73        return obj;
74    };
75
76
77
78
79
80    /* --   ZAZNACZENIE CHECKBOXA ".N-CHECKBOX"   -- */
81    // --   PUNKTEM ODNIESIEINA JEST "INPUT"
82
83    $.fn.CHECK = function()
84    {
85        this.VAL(1);
86        this.parent(".n-checkbox").addClass("checked");
87        return this;
88    };
89
90    /* --   ODZNACZENIE CHECKBOXA ".N-CHECKBOX"   -- */
91
92    $.fn.UNCHECK = function()
93    {
94        this.VAL(0);
95        this.parent(".n-checkbox").removeClass("checked");
96        return this;
97    };
98
99
100
101
102
103    /* --   USTAWIENIE WARTOŚCI INPUTÓW   -- */
104
105    $.fn.VAL = function(value)
106    {
107        this.val(value).attr("value", value);
108        return this;
109    };
110
111
112
113
114
115    /* --   USTAWIENIE WARTOŚCI ATRYBUTÓW   -- */
116
117    $.fn.DATA = function(attr, value)
118    {
119        this.data(attr, value).attr("data-" + attr, value);
120        return this;
121    };
122
123
124
125
126
127    /*
128     *   FUNKCJA: $.ACTIVATE_DROPZONE()
129     *   ---------------------------------
130     *   AKTYWACJA POLA DROPZONE DO PRZESYŁANIA PLIKÓW
131     */
132
133 /* $.fn.ACTIVATE_DROPZONE = function()
134    {
135        if (this.length)
136        {
137            var dropzone_id = this.attr("id");
138            var dropzone_obj = $("#" + dropzone_id);
139            var temporary_dir = $("#temporary_dir").val();
140            var server_type = $("#server_type").val();
141            var ftp_input = dropzone_obj.data("ftp-input");
142            var upload_dir = dropzone_obj.data("upload-dir");
143            var step = dropzone_obj.parents(".personalization-step");
144            var block = step.parents(".personalization-block");
145            var container = step.find(".container");
146
147            dropzones[dropzone_id] = true;
148            dropzone_obj.dropzone(
149            {
150                  paramName: "file",
151            thumbnailMethod: "contain",
152             thumbnailWidth: 200,
153            thumbnailHeight: null,
154              acceptedFiles: null,
155                   maxFiles: null,
156                        url: ".core/.php/upload.php",
157                     params:
158                {
159                    temporary_dir: temporary_dir,
160                       upload_dir: upload_dir,
161                      server_type: server_type
162                },
163                init: function()
164                {
165                    this.on("drop", function()
166                    {
167
168                    });
169
170                    this.on("addedfile", function()
171                    {
172                        dropzone_obj.find(".icon-send").addClass("hide");
173                        dropzone_obj.find(".icon-sended").addClass("hide");
174                        dropzone_obj.find(".icon-sending").removeClass("hide");
175                        dropzone_obj.find(".start_info").HIDE(200);
176                        dropzone_obj.find(".sending-info").SHOW();
177                    });
178
179                    this.on("uploadprogress", function(file, progress, bytesSent)
180                    {
181                        dropzone_obj.find(".sending-progress").find("p").css({"width": parseInt(progress) + "%"});
182                    });
183
184                    this.on("complete", function()
185                    {
186
187                    });
188
189                    this.on("queuecomplete", function()
190                    {
191                        setTimeout(function()
192                        {
193                            dropzone_obj.find(".sending-progress").find("p").css({"width": 0});
194                            dropzone_obj.find(".sended-actions").SHOW();
195                            dropzone_obj.find(".dz-preview").HIDE();
196
197                            if (typeof ftp_input !== "undefined") {
198                                $("#" + ftp_input).VAL(1);
199                            }
200                        }, 300);
201                    });
202
203                    this.on("success", function(file, response)
204                    {
205                        CREATE_DELETE_BUTTONS(dropzone_id);
206                        dropzone_obj.find(".icon-sending").addClass("hide");
207                        dropzone_obj.find(".icon-sended").removeClass("hide");
208                        dropzone_obj.find(".sending-info").HIDE(200);
209                        step.find(".sended-filename").html('<b>' + file['name'] + '</b>');
210                        step.addClass("compress");
211                        container.DATA("value", file['name']);
212                        UPDATE_PERSONALIZATION_PARAMETERS(block);
213                    });
214                }
215            });
216        }
217    } */
218
219
220
221
222
223
224
225
226
227
228
229
230    /*
231     *   FUNKCJA: $.ACTIVATE_DROPZONE_V3()
232     *   ------------------------------------
233     *   AKTYWACJA POLA DROPZONE DO PRZESYŁANIA PLIKÓW
234     *   Z PROJEKTEM KLIENTA W FORMULARZU ZAMÓWIEŃ
235     */
236
237    $.fn.ACTIVATE_DROPZONE_V3 = function()
238    {
239        var dropzone_thumbs = {};
240        var dropzone_loader = $("#dropzone-loader");
241        var progress_radial = dropzone_loader.find(".progress-radial-container");
242        var sending_stats = dropzone_loader.find(".sending-stats");
243
244        if (this.length) {
245            var dropzone_id = this.attr("id");
246            var dropzone_obj = $("#" + dropzone_id);
247            var server_type = "localhost";
248            var size = dropzone_obj.data("size");
249            var upload_dir = dropzone_obj.data("upload-dir");
250            var sended_files_names = [];
251            var timeController;
252            var timeStarted;
253            var timeElapsed;
254            var uploadSpeed;
255            var sended_bytes = {};
256            var sending_files_amount = 0;
257            var total_bytes = 0;
258            var total_bytes_sent = 0;
259
260            dropzones[dropzone_id] = true;
261            dropzone_obj.dropzone({
262                paramName: "file",
263                thumbnailMethod: "contain",
264                thumbnailWidth: 200,
265                thumbnailHeight: null,
266                acceptedFiles: ".jpeg,.jpg,.psd,.zip,.cdr,.ai,.pdf,.ttf,.otf,.rar,.tif,.tiff,.svg,.png,.eps",
267                maxFiles: null,
268                url: ".core/.php/upload.php",
269                params: {
270                    server_type: server_type,
271                    size: size,
272                    upload_dir: upload_dir
273                },
274                init: function() {
275                    this.on("drop", function() {
276                        console.log("DROPZONE: DROP");
277                    });
278
279                    this.on("processingmultiple", function() {
280                        console.log("DROPZONE: PROCESSINGMULTIPLE");
281                    });
282
283                    this.on("addedfiles", function() {
284                        console.log("DROPZONE: ADDEDFILES");
285
286                        progress_radial.removeClass("hide");
287                        timeStarted = new Date();
288                        timeController = setInterval(function() {
289                            timeElapsed = (new Date()) - timeStarted;
290                            uploadSpeed = total_bytes_sent / (timeElapsed / 1000);
291                            $("#upload_speed").html(CONVERT_BYTES(uploadSpeed) + "/s");
292                            $("#time_elapsed").html(parseInt((total_bytes - total_bytes_sent) / uploadSpeed) + " s");
293                        }, 1000);
294
295                        dropzone_loader.SHOW();
296                        $("#top-layer-mask").SHOW();
297                        $("#send-in-background").removeClass("off");
298                    });
299
300                    this.on("addedfile", function(file) {
301                        console.log("DROPZONE: ADDEDFILE");
302
303                        var lang = $("#lang").val();
304
305                        var variants_arr_1 = {};
306                        var variants_arr_2 = {};
307
308                        variants_arr_1['pl'] = ["plik", "plików", "pliki"];
309                        variants_arr_1['en'] = ["file", "files", "files"];
310                        variants_arr_1['nl'] = ["bestand", "bestanden", "bestanden"];
311                        variants_arr_1['de'] = ["datei", "dateien", "dateien"];
312                        variants_arr_1['sv'] = ["fil", "filer", "filer"];
313
314                        variants_arr_2['pl'] = ["pliku", "plików", "plików"];
315                        variants_arr_2['en'] = ["file", "files", "files"];
316                        variants_arr_2['nl'] = ["bestand", "bestanden", "bestanden"];
317                        variants_arr_2['de'] = ["datei", "dateien", "dateien"];
318                        variants_arr_2['sv'] = ["fil", "filer", "filer"];
319
320                        sending_files_amount++;
321                        total_bytes = total_bytes + file.size;
322                        dropzone_thumbs[file.name] = $('<div class="file off"><p class="filename mhl"></p><p class="size mhl fr"></p></div>');
323
324                        $("#uploaded_files_amount").html(sending_files_amount);
325                        $("#sending_files_amount").html(sending_files_amount);
326
327                        $("#uploaded_variant").html(FIND_VARIANT(sending_files_amount, variants_arr_1[lang]));
328                        $("#sending_variant").html(FIND_VARIANT(sending_files_amount, variants_arr_2[lang]));
329                        $("#total_bytes").html(CONVERT_BYTES(total_bytes));
330
331                        // --   DODAWANIE ELEMENTU DO KONTENERA
332
333                        $("#uploaded_files_list").removeClass('off').find(".files").append(dropzone_thumbs[file.name]);
334                        sending_stats.removeClass("hide");
335                        sended_files_names.push(file.name);
336                    });
337
338                    this.on("processing", function(file) {
339                        console.log("DROPZONE: PROCESSING");
340                        console.log(file);
341                    });
342
343                    // --   UPLOADPROGRESS - SINGLE FILE
344
345                    this.on("uploadprogress", function(file, percent, bytes) {
346                        console.log("DROPZONE: UPLOADPROGRESS");
347
348                        sended_bytes[file.name] = bytes;
349                        total_bytes_sent = 0;
350
351                        $.each(sended_bytes, function(filename, bytes) {
352                            total_bytes_sent = total_bytes_sent + bytes;
353                        });
354
355                        $("#total_bytes_sent").html(CONVERT_BYTES(total_bytes_sent));
356                        percent = (total_bytes_sent / total_bytes) * 100;
357                        UPDATE_UPLOAD_PROGRESS(percent);
358                    });
359
360                    // --   COMPLETE - SINGLE FILE
361
362                    this.on("complete", function() {
363                        console.log("DROPZONE: COMPLETE");
364                    });
365
366                    // --   SUCCESS - SINGLE FILE
367
368                    this.on("success", function(file, response) {
369                        console.log("DROPZONE: SUCCESS");
370
371                        response = JSON.parse(response);
372                        dropzone_thumbs[file.name].removeClass("off");
373                        dropzone_thumbs[file.name].find(".filename").html(response['full_filename']);
374                        dropzone_thumbs[file.name].find(".size").html(CONVERT_BYTES(response['size']) + ' <span>/ ' + response['date'] + '</span>');
375
376                        V2_FIX_H();
377
378                        // --   UPDATE LICZNIKA WYSŁANYCH PLIKÓW W KOSZYKU
379
380                        var files_counter = dropzone_obj.parents(".product").find(".uploaded-files-amount");
381                        COUNT_UPLOADED_FILES(upload_dir, files_counter);
382                    });
383
384                    // --   QUEUECOMPLETE - ALL FILES
385
386                    this.on("queuecomplete", function() {
387                        console.log("DROPZONE: QUEUECOMPLETE");
388
389                        // --   UPDATE ILOŚCI ODBITEK DO ILOŚCI PRZESŁANYCH PLIKÓW
390
391                        if ($("#prints_amount").length) {
392                            var product = $("#product").val();
393
394                            if (product !== "box_prints") {
395                                $("#prints_amount").VAL(sending_files_amount);
396                                COUNT_PRICE();
397                            }
398                        }
399
400                        clearInterval(timeController);
401                        progress_radial.addClass("upload-successful");
402                        UPDATE_UPLOAD_PROGRESS(0);
403                        sended_bytes = {};
404                        sending_files_amount = 0;
405                        total_bytes = 0;
406                        total_bytes_sent = 0;
407                        $("#send-in-background").addClass("off");
408                        $(".to-cart").removeClass("disabled");
409
410                        CHECK_DISK_SPACE("orders");
411
412                        // --   WYSYŁANIE MAILA DO LABU Z IFORMACJĄ O TYM,
413                        // --   ŻE KLIENT DOSŁAŁ JAKIEŚ PLIKI
414
415                        var get_id = $("#get_id").val();
416
417                        if (get_id === "orders_history") {
418                            var product_id = $("#" + dropzone_id).parents(".product").data("product-id");
419                            var order_id = $("#" + dropzone_id).parents(".order").data("order-id");
420
421                            SENDED_FILES_EMAIL_NOTIFICATION(order_id, product_id, sended_files_names);
422                        }
423                    });
424
425                    // --   ERROR
426
427                    this.on("error", function(file, message, xhr) {
428                        console.log("DROPZONE: ERROR");
429                        console.log("FILE: " + file);
430                        console.log("MESSAGE: " + message);
431                        console.log("XHR: " + xhr);
432                    });
433                }
434            });
435        }
436    }
437
438}(jQuery));
439
440
441
442
443
444
445
446
447
448
449/*
450 *   CONSOLE.DEBUG
451 *   ----------------
452 *   WIZUALNE USUWANIE Z KONSOLI OBIEKTÓW __PROTO__
453 */
454
455console.debug = function()
456{
457    function clear(o) {
458        var obj = JSON.parse(JSON.stringify(o));
459        if (obj && typeof obj === 'object') {
460            obj.__proto__ = null;
461            for (var j in obj) {
462                obj[j] = clear(obj[j]);
463            }
464        }
465        return obj;
466    }
467    for (var i = 0, args = Array.prototype.slice.call(arguments, 0); i < args.length; i++) {
468        args[i] = clear(args[i]);
469    }
470    console.log.apply(console, args);
471};
472
473
474
475
476
477
478
479
480
481
482/*
483 *   FUNKCJA: CHECK_DISK_SPACE()
484 *   ------------------------------
485 *   CZUJKA SPRAWDZAJĄCA ZAJĘTOŚĆ DYSKU
486 */
487
488function CHECK_DISK_SPACE(dir)
489{
490    $.ajax({
491        type: "POST",
492         url: ".core/.php/ajax.php?action=check_disk_space",
493        data: {
494            dir: dir
495        },
496        success: function() {}
497    });
498}
499
500
501
502
503
504
505
506
507
508
509/*
510 *   FUNKCJA: SENDED_FILES_EMAIL_NOTIFICATION()
511 *   ---------------------------------------------
512 *   WYSYŁANIE MAILA DO LABU Z INFORMACJĄ, ŻE KLIENT
513 *   DOSŁAŁ NOWE PLIKI DO ZAMÓWIENIA
514 */
515
516function SENDED_FILES_EMAIL_NOTIFICATION(order_id, product_id, dropzone_sended_files)
517{
518    $.ajax({
519        type: "POST",
520        url: ".core/.php/ajax.php?action=sended_files_email_notification",
521        data: {
522            order_id: order_id,
523            product_id: product_id,
524            dropzone_sended_files: dropzone_sended_files
525        },
526        success: function() {}
527    });
528}
529
530
531
532
533
534
535
536
537
538
539/*
540 *   FUNKCJA: COUNT_UPLOADED_FILES()
541 *   ----------------------------------
542 *   PRZELICZANIE ILOŚCI WYSŁANYCH PLIKÓW DO ZAMÓWIENIA
543 */
544
545function COUNT_UPLOADED_FILES(dir, target)
546{
547    $.ajax({
548        type: "POST",
549         url: ".core/.php/ajax.php?action=count_uploaded_files",
550        data: {
551            dir: dir
552        },
553        success: function(data) {
554            if (parseInt(data) === 0) {
555                target.html(data).addClass("no-files hollow");
556
557                // --   UKRYWANIE LISTY PLIKÓW W SZCZEGÓŁACH PRODUKTU
558
559                $("#product-details").find(".buttons-files, .files-list").addClass("off");
560                $("#product-details").find(".no-file-uploaded").removeClass("off");
561            } else {
562                target.html(data).removeClass("no-files hollow");
563            }
564        }
565    });
566}
567
568
569
570
571
572
573
574
575
576
577/*
578 *   FUNKCJA: UPDATE_UPLOAD_PROGRESS()
579 *   ------------------------------------
580 *   LOADER PRZYSYŁANIA PLIKÓW W STYLU WETRANSFER
581 */
582
583function UPDATE_UPLOAD_PROGRESS(percent)
584{
585    var val = parseInt(percent) / 100;
586    var percent_rounded = parseInt(percent);
587    var progress_bar = $("#dropzone-loader").find(".progress-radial-container").find(".progress-bar");
588    var progress_percent = $("#dropzone-loader").find(".progress-radial-container").find(".progress-percent");
589    var r = progress_bar.attr("r");
590    var c = 2 * Math.PI * r;
591    var progress = c * (1 - val);
592
593    progress_bar.css({strokeDashoffset: progress});
594    progress_percent.html(percent_rounded + "<i>%</i>");
595}
596
597
598
599
600
601
602
603
604
605
606/*
607 *   FUNKCJA: CONVERT_BYTES()
608 *   ---------------------------
609 *   KONWERSJA BAJTÓW AN MB, KB ITP.
610 */
611
612function CONVERT_BYTES(bytes, decimals = 2)
613{
614    if (!+bytes) return '0 Bytes';
615
616    const k = 1024;
617    const dm = decimals < 0 ? 0 : decimals;
618    const sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
619    const i = Math.floor(Math.log(bytes) / Math.log(k));
620    return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`;
621}
622
623
624
625
626
627
628
629
630
631
632/*
633 *   FUNKCJA: PARSE_TO_PARAM()
634 *   ----------------------------
635 *   ZAMIANA PODANEJ FRAZY NA FORMAT PARAMETRU
636 *   (MAŁE LITERY, BEZ ZNAKÓW SPECJALNYCH, SPACJI ITP.)
637 *   UŻUCIE PRZEZ AJAXA FUNKCJI Z PHP
638 */
639
640function PARSE_TO_PARAM(phrase)
641{
642    var replace_from = " ĄÀÁÂÃÄąàáâãäĆĈĊČćĉċčĒĔĖĘĚēĕėęěĹĻĽŁĺļľłŃŅŇŊńņňŋÓŌŎŐóōŏőŚŜŞŠśŝşšŨŪŬŮŰŲũūŭůűųŹŻŽźżž!@#$%^&*()_+.,";
643    var replace_to = "_aaaaaaaaaaaacccccccceeeeeeeeeellllllllnnnnnnnnoooooooossssssssuuuuuuuuuuuuzzzzzz______________";
644    var return_phrase = STRTR(phrase, replace_from, replace_to);
645    return return_phrase.toLowerCase();
646}
647
648
649
650
651
652
653
654
655
656
657// --   ILOŚĆ ZDJĘĆ
658
659function CHECK_PRINTS_AMOUNT()
660{
661    var prints_amount = $("#prints_amount").val();
662    if (typeof prints_amount !== "undefined") {
663        if (parseInt(prints_amount) === 0) {
664            $(".dependent_on-prints_amount").addClass("off");
665            $(".dependent_on-prints_amount-reverse").removeClass("off");
666        }
667        else {
668            $(".dependent_on-prints_amount").removeClass("off");
669            $(".dependent_on-prints_amount-reverse").addClass("off");
670        }
671
672        var step_obj_id = current_parameter_obj.data("step-id");
673        var step_obj = $("#step-" + step_obj_id);
674        V2_UPDATE_PARAMETERS_LIST_MASK(step_obj);
675    }
676}
677
678// --   ILOŚĆ PASSE-PARTOUT
679
680function CHECK_PASSEPARTOUT_AMOUNT()
681{
682    var passepartout_amount = $("#passepartout_amount").val();
683    if (typeof passepartout_amount !== "undefined") {
684        if (parseInt(passepartout_amount) === 0) {
685            $(".dependent_on-passepartout_amount").addClass("off");
686            $(".dependent_on-passepartout_amount-reverse").removeClass("off");
687        }
688        else {
689            $(".dependent_on-passepartout_amount").removeClass("off");
690            $(".dependent_on-passepartout_amount-reverse").addClass("off");
691        }
692
693        var step_obj_id = current_parameter_obj.data("step-id");
694        var step_obj = $("#step-" + step_obj_id);
695        V2_UPDATE_PARAMETERS_LIST_MASK(step_obj);
696    }
697}
698
699
700
701
702
703
704
705
706
707
708/*
709 *   FUNKCJA: LOAD_PERSONALIZATION_QUALITY_TABLE_FOR_COLOR()
710 *   ----------------------------------------------------------
711 *   ŁADOWANIE TABELI JAKOŚCI PERSONALIZACJI DLA WYBRANEGO KOLORU PO
711KRYCIA
712 */
713
714function LOAD_PERSONALIZATION_QUALITY_TABLE_FOR_COLOR(color_obj)
715{
716    var table_content = $("#personalization-table-quality-content").html();
717    var quality_table = color_obj.find(".thumb-options-v2");
718    var color_id = color_obj.data("form-value");
719    var qualities = PRODUCT_FULL_JSON_FORM['COLORS_PERSONALIZATION'][color_id];
720    if (!quality_table.length) {
721        color_obj.find(".thumb-content").append(table_content);
722        color_obj.find(".thumb-options-v2").width();
723        quality_table = color_obj.find(".thumb-options-v2");
724        quality_table.find(".quality-circle").addClass("off");
725        quality_table.find(".quality-line").removeClass("off");
726        quality_table.find(".quality-line, .quality-title").each(function() {
727            var q = $(this);
728            var parameter_id = parseInt(q.data("parameter-id"));
729            if (typeof qualities[parameter_id] === "undefined") {
730                qualities[parameter_id] = 0;
731            }
732            q.find(".q" + qualities[parameter_id]).removeClass("off");
733        });
734        color_obj.find(".thumb-options-v2").removeClass("appended");
735    }
736}
737
738
739
740
741
742
743
744
745
746
747/*
748 *   FUNKCJA: UPDATE_TABS_HOVERS()
749 *   --------------------------------
750 *   UPDATE TREŚCI HOVERÓW W KROKACH FORMULARZA
751 */
752
753function UPDATE_TABS_HOVERS()
754{
755    $("#product_steps").find(".step").each(function()
756    {
757        var step = $(this);
758        var step_title = step.find("b:not(.off)").text();
759        step.DATA("hover", step_title);
760    });
761
762    $(".filter-tabs .highlight-tab").each(function()
763    {
764        var tab = $(this);
765        var tab_title = tab.find("b:not(.off)").text();
766        tab.DATA("hover", tab_title);
767    });
768}
769
770
771
772
773
774
775
776
777
778
779/*
780 *   FUNKCJA: SHOW_VALIDATE_ALERT()
781 *   ---------------------------------
782 *   INFO Z WALIDACJĄ DO FORMULARZY
783 */
784
785function SHOW_VALIDATE_ALERT(input_id, attr, fn_success)
786{
787    var input_obj = $("#" + input_id);
788    var x = parseInt(input_obj.offset().left);
789    var y = parseInt(input_obj.offset().top);
790    var w = parseInt(input_obj.outerWidth());
791    var h = parseInt(input_obj.outerHeight());
792    var validate_info = $("#validate-info");
793    var alert = validate_info.find("." + attr).html();
794    var main_margin_top = parseInt($("main").css("margin-top"));
795
796    validate_info.find(".alert").html(alert);
797
798    var alert_w = parseInt(validate_info.outerWidth());
799    var move_by = (w - alert_w) / 2;
800
801    validate_info.css({"left": (x + move_by) + "px", "top": ((y - main_margin_top) + h + 8) + "px"}).removeClass("hide");
802    input_obj.addClass("fill");
803    input_obj.focus();
804
805    $("html, body").animate({scrollTop: (y - 180)}, 250, function()
806    {
807        $("#" + input_id).addClass("fill").focus();
808    });
809
810    if (!lock_hide)
811    {
812        $(window).bind("keyup", function(){ $("#validate-info").addClass("hide"); });
813        $(window).bind("mouseup", function(){ $("#validate-info").addClass("hide"); });
814    }
815
816    if (typeof loader !== 'undefined')
817    {
818        loader.addClass("hide");
819    }
820
821    if (typeof fn_success !== "undefined")
822    {
823        fn_success();
824    }
825}
826
827
828
829
830
831
832
833
834
835
836/*
837 *   FUNKCJA: VALIDATE_EMAIL()
838 *   ----------------------------
839 *   WALIDACJA POPRAWNOŚCI ADRESU E-MAIL
840 */
841
842function VALIDATE_EMAIL(email)
843{
844    var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
845    return re.test(String(email).toLowerCase());
846}
847
848
849
850
851
852
853
854
855
856
857/*
858 *   FUNKCJA: SELECT_TAB()
859 *   ------------------------
860 *   ZAZNACZENIE WYBRANEJ ZAKŁADKI
861 */
862
863function SELECT_TAB(tab)
864{
865    var tabs = tab.parent(".tabs");
866    var content = tab.data("content");
867    var content_obj = $("." + content);
868    var id = tab.attr("id");
869    var default_tab = $("#" + id + "-steps").find(".default");
870
871    tabs.find(".tab").removeClass("active");
872    tab.addClass("active");
873
874    var active_content_obj = tabs.next(".tabs-content").find(".tab-content.active");
875
876    if (active_content_obj.length) {
877        active_content_obj.removeClass("active").HIDE(0, function() {
878            content_obj.addClass("active").SHOW(0, function() {
879                default_tab.trigger("click");
880                default_tab.removeClass("default");
881            });
882        });
883    } else {
884        content_obj.addClass("active").SHOW(0, function() {
885            default_tab.trigger("click");
886            default_tab.removeClass("default");
887        });
888    }
889}
890
891
892
893
894
895
896
897
898
899
900/*
901 *   FUNKCJA: SELECT_FILTER_TAB()
902 *   -------------------------------
903 *   ZAZNACZENIE WYBRANEJ ZAKŁADKI
904 */
905
906function SELECT_FILTER_TAB(tab, fn)
907{
908    var tabs = tab.parents(".filter-tabs");
909    var block = tab.parents(".form_block");
910    var component = tab.parents(".component");
911    var filter = tab.data("filter");
912    var description = tab.data("description");
913    var type = tabs.data("type");
914
915    block.find('.collection-description').html(description);
916    block.find('.description').html(description);
917
918    if (type !== "switch") {
919        block.find('.thumb').addClass("off");
920        block.find('.thumbs-group').addClass("off");
921    }
922
923    block.find('.' + filter).removeClass("off back-off");
924    block.find('.' + filter + ".details").trigger("click");
925
926    if (filter === "all") {
927        $('.filter-content').removeClass("off");
928    }
929    else {
930        $('.filter-content').addClass("off");
931        $('.flex-card.' + filter).removeClass("off");
932    }
933
934    if (typeof component !== "undefined") {
935        component.find('.thumb').addClass("off");
936        component.find('.thumbs-group').addClass("off");
937        component.find('.' + filter).removeClass("off");
938    }
939
940    if (filter === "all") {
941        tab.parent(".filter-tabs").find("li").each(function() {
942            var filter = $(this).data("filter");
943            var off = $(this).hasClass("off");
944
945            if (!off && filter !== "all") {
946                $(".thumbs-group." + filter).removeClass("off").find(".thumb").removeClass("off");
947            }
948        });
949    }
950
951    tab.parent(".filter-tabs").find("li").removeClass("active");
952    tab.addClass("active");
953
954    UPDATE_TAB_HIGHLIGHT(tab);
955    V2_FIX_H();
956
957    if (typeof fn !== "undefined") {
958        fn();
959    }
960
961
962
963    // --   REAGOWANIE WSKAZANEGO OBIEKTU W "DATA-TARGET"
964    // --   NA PRZEŁĄCZANIE ZAKŁADEK
965
966    var target = tabs.data("target");
967    var all_filters = tabs.data("all-filters");
968
969    if (typeof target !== "undefined") {
970        if (typeof all_filters === "undefined") {
971            all_filters = "";
972            tabs.find(".highlight-tab").each(function() {
973                var f = $(this).data("filter");
974                all_filters += f + " ";
975            });
976            tabs.DATA("all-filters", all_filters);
977        }
978
979        $(target).removeClass(all_filters).addClass(filter);
980    }
981}
982
983
984
985
986
987
988
989
990
991
992/*
993 *   FUNKCJA: SET_SESSION_VAR()
994 *   -----------------------------
995 *   DEFINIOWANIE ZMIENNEJ SESYJNEJ PRZEZ AJAXA
996 */
997
998function SET_SESSION_VAR(var_name, value, fn)
999{
1000    $.post(".core/.php/ajax.php?action=set_session_var", {"var_name": var_name, "value": value}, function() {
1001        if (typeof fn !== "undefined") {
1002            fn();
1003        }
1004    });
1005}
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016/*
1017 *   FUNKCJA: CREATE_DELETE_BUTTONS()
1018 *   -----------------------------------
1019 *   UTWORZENIE PRZYCISKU USUWAJĄCEGO
1020 *   PRZESŁANY PLIK PRZEZ POLE DROPZONE
1021 */
1022
1023function CREATE_DELETE_BUTTONS(dropzone_id)
1024{
1025    $("#send_" + dropzone_id).find(".dz-preview").each(function()
1026    {
1027        var is_delete_button = $(this).find(".delete_file").length;
1028
1029        if (!is_delete_button)
1030        {
1031            var filename = $(this).find(".dz-image").find("img").attr("alt");
1032            $(this).append('<p class="delete_file" data-filename="' + filename + '">×</p>');
1033        }
1034    });
1035}
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046/*
1047 *   FUNKCJA: COUNT_SENDED_FILES()
1048 *   --------------------------------
1049 *   PRZELICZANIE ILOŚCI WYSŁANYCH PLIKÓW
1050 */
1051
1052function COUNT_SENDED_FILES(dropzone_id)
1053{
1054    var all_sended = 0;
1055
1056    if (dropzone_id === "all")
1057    {
1058        $(".dz-preview").each(function()
1059        {
1060            all_sended++;
1061        });
1062
1063        // $("#ftp_is_any_files").val(all_sended).attr("value", all_sended);
1064    }
1065    else
1066    {
1067        $("#send_" + dropzone_id).find(".dz-preview").each(function()
1068        {
1069            all_sended++;
1070        });
1071
1072        $("#ftp_" + dropzone_id).val(all_sended).attr("value", all_sended);
1073    }
1074}
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085/*
1086 *   FUNKCJA: PUSH_TO_ESC_HISTORY()
1087 *   ------------------------------
1088 *   DODAWANIE ELEMENTU DO HISTORII
1089 *   ZAMYKANIA KLAWISZEM ESC
1090 */
1091
1092function PUSH_TO_ESC_HISTORY(id)
1093{
1094    esc_history.push(id);
1095}
1096
1097/*
1098 *   FUNKCJA: SPLICE_FROM_ESC_HISTORY()
1099 *   ----------------------------------
1100 *   USUWANIE ELEMENTU Z HISTORII
1101 *   ZAMYKANIA KLAWISZEM ESC
1102 */
1103
1104function SPLICE_FROM_ESC_HISTORY(id)
1105{
1106    esc_history.splice(esc_history.indexOf(id), 1);
1107}
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118/*
1119 *   FUNKCJA: EXPLODE_TO_ASOC()
1120 *   --------------------------
1121 *   ROZBICIE CIĄGU ZNAKÓW DO
1122 *   TABLICY ASOCJACYJNEJ
1123 */
1124
1125function EXPLODE_TO_ASOC(string, first_separator, second_separator)
1126{
1127    var arr1 = [];
1128    var arr2 = [];
1129
1130    string = string.split(first_separator);
1131
1132    for (var z = 0; z < string.length; z++)
1133    {
1134        arr1 = string[z].split(second_separator);
1135        arr2[TRIM(arr1[0])] = TRIM(arr1[1]);
1136    }
1137
1138    return arr2;
1139}
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150/*
1151 *   NIE UŻYWANA - WYŁĄCZONA
1152 *   =======================
1153 *   FUNKCJA: IS_NUMERIC()
1154 *   ---------------------
1155 *   SPRAWDZANIE CZY PODANY
1156 *   CIĄG ZNAKÓW JEST LICZBĄ
1157 */
1158
1159/* function IS_NUMERIC(strString)
1160{
1161    if (strString)
1162    {
1163        var strValidChars = "0123456789.-";
1164        var strChar;
1165        var blnResult = true;
1166
1167        if (strString.length === 0)
1168        {
1169            return false;
1170        }
1171
1172        for (var i = 0; i < strString.length && blnResult === true; i++)
1173        {
1174            strChar = strString.charAt(i);
1175
1176            if (strValidChars.indexOf(strChar) === -1)
1177            {
1178                blnResult = false;
1179            }
1180        }
1181
1182        return blnResult;
1183    }
1184} */
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195/*
1196 *   FUNKCJA: COUNT_PRODUCT_PRICE()
1197 *   ------------------------------
1198 *   PRZELICZANIE CENY WSKAZANEGO
1199 *   PRODUKTU Z KOSZYKA
1200 */
1201
1202function COUNT_PRODUCT_PRICE(product_form_link, product_id)
1203{
1204    var currency = $("#currency").val();
1205
1206    $.ajax(
1207    {
1208           type: "POST",
1209            url: ".core/.sitemap.pages/" + product_form_link + "/_ajax.php?action=count_price",
1210           data:
1211           {
1212               product_id: product_id
1213           },
1214        success: function(data)
1215        {
1216            data = data.split("|");
1217
1218            inp_price = data[0];
1219            inp_price_no_discounts = data[1];
1220
1221            $("#record" + product_id).find(".price").find("span").html(data[0] + " " + currency);
1222        }
1223    });
1224}
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235/*
1236 *   FUNKCJA: CALCULATE_PRICE()
1237 *   --------------------------
1238 *   PRZELICZANIE CENY NA AKTUALNĄ
1239 *   WALUTĘ SERWISU I ODLICZENIE BONUSÓW
1240 */
1241
1242/* function CALCULATE_PRICE(price, discounts, tax)
1243{
1244    if (price > 0)
1245    {
1246        var currency_ratio = parseFloat($("#currency_ratio").val());
1247        var currency_multiplier = $("#currency_multiplier").val();
1248        var user_vat = parseInt($("#user_vat").val());
1249        var user_discount = parseInt($("#user_discount").val());
1250        var user_level = parseInt($("#user_level").val());
1251        var user_retail_vat = parseInt($("#user_retail_vat").val());
1252
1253        var coupon_value = parseInt($("#new_coupon_value").val());
1254        var value_type = parseInt($("#new_value_type").val());
1255
1256        var discount_percent = 0;
1257        var vat = 0;
1258
1259
1260
1261        // --   DODANIE VATU
1262
1263        if (tax === "netto")
1264        {
1265            // --   DLA DETALISTÓW
1266
1267            if (user_level === 0)
1268            {
1269                vat = (price * user_retail_vat) / 100;
1270            }
1271
1272            // --   DLA KONTRAHENTÓW
1273
1274            if (user_level !== 0)
1275            {
1276                vat = (price * user_vat) / 100;
1277            }
1278
1279            price += vat;
1280        }
1281
1282
1283
1284        // --   PRZELICZANIE WALUTY
1285
1286        if (currency_ratio !== 0.0)
1287        {
1288            if (currency_multiplier === "dz") price = price / currency_ratio;
1289            if (currency_multiplier === "mn") price = price * currency_ratio;
1290        }
1291
1292
1293
1294        // --   ODLICZANIE RABATÓW
1295
1296        if (discounts)
1297        {
1298            // --   RABAT KLIENTA
1299
1300            if (user_discount !== 0)
1301            {
1302                discount_percent = (price * user_discount) / 100;
1303            }
1304
1305
1306
1307            // --   PROCENTOWY RABAT KODU PROMOCYJNEGO
1308
1309            if (coupon_value !== 0 && value_type === 1)
1310            {
1311                discount_percent = (price * coupon_value) / 100;
1312            }
1313
1314            price -= discount_percent;
1315        }
1316
1317        return parseFloat(price);
1318    }
1319    else
1320    {
1321        return 0.00;
1322    }
1323} */
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334/*
1335 *   FUNKCJA: UPDATE_SUMMARY_DISCOUNTS()
1336 *   -----------------------------------
1337 *   INFO O RABATACH W PODSUMOWANIU
1338 */
1339
1340function UPDATE_SUMMARY_DISCOUNTS()
1341{
1342    var user_discount = parseInt($("#user_discount").val());
1343    var coupon_value = parseInt($("#new_coupon_value").val());
1344    var value_type = parseInt($("#new_value_type").val());
1345    var is_discount = false;
1346    var discount_value = 0;
1347
1348    // --   RESETOWANIE PÓL Z RABATAMI
1349
1350    $(".discount_available").removeClass("discount_color");
1351    $(".discount_info").removeClass("show").html("-0%");
1352    $(".no_discount_info").removeClass("show");
1353    $("#user_discount_info").removeClass("show").find(".discount_info").html("0%");
1354    $("#coupon_discount_info").removeClass("show").find(".discount_info").html("0%");
1355
1356    // --   RABAT KLIENTA
1357
1358    if (user_discount !== 0)
1359    {
1360        $("#user_discount_info").addClass("show");
1361
1362        is_discount = true;
1363        discount_value = user_discount;
1364    }
1365
1366    // --   PROCENTOWY RABAT KODU PROMOCYJNEGO
1367
1368    if (coupon_value !== 0 && value_type === 1)
1369    {
1370        $("#user_discount_info").removeClass("show");
1371        $("#coupon_discount_info").addClass("show");
1372
1373        is_discount = true;
1374        discount_value = coupon_value;
1375    }
1376
1377    // --   DODANIE KOLORU ZIELONEGO JEŚLI SĄ RABATY
1378
1379    if (is_discount)
1380    {
1381        $(".no_discount_info").addClass("show");
1382        $(".discount_available").each(function()
1383        {
1384            var id = $(this).attr("id");
1385            var data_price = $(this).data("price");
1386            var html = $(this).next(".discount_info").html();
1387
1388            if (data_price !== 0.00)
1389            {
1390                html = html.replace("0", discount_value);
1391
1392                $(this).addClass("discount_color");
1393                $(this).next(".discount_info").addClass("show").html(html);
1394            }
1395        });
1396    }
1397}
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408/*
1409 *   FUNKCJA: UPDATE_SUMMARY_UPLOADED_FILES()
1410 *   ----------------------------------------
1411 *   INFO O PRZESŁANYCH PLIKACH W PODSUMOWANIU
1412 */
1413
1414/* function UPDATE_SUMMARY_UPLOADED_FILES()
1415{
1416    var cover_project = parseInt($("#ftp_cover_project").val());
1417    var cut_out_project = parseInt($("#ftp_cut_out_project").val());
1418    var case_uv_print_project = parseInt($("#ftp_case_uv_print_project").val());
1419    var case_engraver_font = parseInt($("#ftp_case_engraver_font").val());
1420    var pendrive_uv_print_project = parseInt($("#ftp_pendrive_uv_print_project").val());
1421    var pendrive_engraver_font = parseInt($("#ftp_pendrive_engraver_font").val());
1422
1423    if (cover_project === 1) $("#ftp_cover_project_summary").removeClass("off");
1424    if (cut_out_project === 1) $("#ftp_cut_out_project_summary").removeClass("off");
1425    if (case_uv_print_project === 1) $("#ftp_case_uv_print_project_summary").removeClass("off");
1426    if (case_engraver_font === 1) $("#ftp_case_engraver_font_summary").removeClass("off");
1427    if (pendrive_uv_print_project === 1) $("#ftp_pendrive_uv_print_project_summary").removeClass("off");
1428    if (pendrive_engraver_font === 1) $("#ftp_pendrive_engraver_font_summary").removeClass("off");
1429} */
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440/*
1441 *   ROUND_PRICE()
1442 *   -------------
1443 *   ZAOKRĄGLANIE CENY
1444 */
1445
1446function ROUND_PRICE(price)
1447{
1448	var str = String(price);
1449	var arr = str.split(".");
1450	var str1 = arr[0];
1451    var str2 = "";
1452
1453	if (arr[1]) {
1454		if (arr[1].length > 1) {
1455			str2 = arr[1].slice(0, 2);
1456		}
1457		else {
1458			str2 = arr[1] + "0";
1459		}
1460	}
1461	else {
1462		str2 = "00";
1463	}
1464
1465	return str1 + "." + str2;
1466}
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477/*
1478 *   FUNKCJA: SELECT_THUMB()
1479 *   --------------------------
1480 *   ZAZNACZENIE WYBRANEGO PARAMETRU FORMULARZA
1481 *   I ODCZYT JEGO ATRYBUTÓW "DATA"
1482 */
1483
1484function SELECT_THUMB(thumb, fn)
1485{
1486    var container = thumb.parents(".container");
1487    var multiple_selection = container.hasClass("multiple-selection");
1488
1489
1490
1491    // --   ZAZNACZENIE I WYBÓR PARAMETRU
1492
1493    if (multiple_selection) {
1494        container.find(".thumb").removeClass("selected options");
1495        thumb.addClass("selected");
1496    }
1497    else {
1498        container.find(".thumb").removeClass("added selected options");
1499        thumb.addClass("added selected");
1500
1501        // --   AUTOWYBÓR PIERWSZEJ WARTOŚCI CECHY, JEŚCI ŻADNA NIE JEST WYBRANA
1502
1503        thumb.find(".option").each(function()
1504        {
1505            var all_selected = $(this).find(".tabs-select").find("li.selected").length;
1506
1507            if (all_selected === 0) {
1508                var input = $(this).find(".tabs-select").data("input");
1509                var first = $(this).find(".tabs-select").find("li:first");
1510                var value = first.data("value");
1511                first.addClass("selected");
1512                $("#" + input).VAL(value);
1513            }
1514        });
1515    }
1516
1517
1518
1519    // --   FOCUS NA INPUTACH WEWNĄTRZ PARAMETRU
1520
1521    var find_input = thumb.find("input:first").attr("id");
1522    if (typeof find_input !== "undefined") {
1523        document.getElementById(find_input).focus({preventScroll: true});
1524    }
1525
1526
1527
1528    // --   ODCZYT ZAZNACZONYCH DODATKOWYCH OPCJI PARAMETRU Z PÓL "TABS-SELECT"
1529    // --   I UPDATE WARTOŚCI PÓL INPUT FORMULARZA
1530
1531    thumb.find(".tabs-select").each(function()
1532    {
1533        var tab_input = $(this).data("input");
1534        var tab_value = $(this).find(".selected").data("value");
1535
1536        if (typeof tab_input !== 'undefined' && typeof tab_value !== "undefined")
1537        {
1538            $("#" + tab_input).VAL(tab_value);
1539        }
1540    });
1541
1542
1543
1544    // --   ODCZYTANIE KILKU WARTOŚCI PARAMETRU Z JEDNEGO ATRYBUTU
1545    // --   WARTOŚCI I NAZWY INPUTÓW, ROZDZIELONE PRZECINKAMI
1546    // --   ODCZYT Z ATRYBUTÓW: "DATA-FORM-INPUTS" I "DATA-FORM-VALUES"
1547
1548    var inputs = container.data("form-inputs");
1549    var values = thumb.data("form-values");
1550
1551    if (typeof inputs !== 'undefined' && typeof values !== "undefined")
1552    {
1553        inputs = inputs.split(",");
1554        values = values.split(",");
1555
1556        for (var x = 0; x < inputs.length; x++)
1557        {
1558            $("#" + inputs[x]).VAL(values[x]);
1559        }
1560    }
1561
1562
1563
1564    // --   ODCZYT ZE SKRÓCONYCH ATRYBUTÓW: "DATA-INPUTS" I "DATA-VALUES"
1565
1566    inputs = container.data("inputs");
1567    values = thumb.data("values");
1568
1569    if (typeof inputs !== 'undefined' && typeof values !== "undefined")
1570    {
1571        inputs = inputs.split(",");
1572        values = values.split(",");
1573
1574        for (var x = 0; x < inputs.length; x++)
1575        {
1576            $("#" + inputs[x]).VAL(values[x]);
1577        }
1578    }
1579
1580
1581
1582    // --   POJEDYŃCZA WARTOŚĆ PODSTAWOWA
1583    // --   ODCZYT Z ATRYBUTÓW SKRÓCONYCH: "DATA-INPUT" I "DATA-VALUE"
1584
1585    var input_short = container.data("input");
1586    var value_short = thumb.data("value");
1587
1588    if (typeof input_short !== 'undefined' && input_short !== '...')
1589    {
1590        $("#" + input_short).VAL(value_short);
1591
1592        // --   DOSTĘPNOŚĆ INNYCH PARAMETRÓW SPRAWDZANA NA PODSTAWIE KLAS
1593        // --   NAZWA KLAS BUDOWANA NA BAZIE NAZWY INPUTA
1594        // --   "INPUT_SHORT-OPTION" - WSZYSTKIE
1595        // --   "INPUT_SHORT-VALUE_SHORT" - DOSTĘPNE DLA WYBRANEJ WARTOŚCI
1596
1597        $("." + input_short + "-option").addClass("off");
1598        $("." + input_short + "-option.all").removeClass("off");
1599        $("." + input_short + "-" + value_short).removeClass("off");
1600    }
1601
1602
1603
1604    // --   POJEDYŃCZA WARTOŚĆ PODSTAWOWA
1605    // --   ODCZYT Z ATRYBUTÓW: "DATA-FORM-INPUT" I "DATA-FORM-VALUE"
1606
1607    var input = container.data("form-input");
1608    var value = thumb.data("form-value");
1609
1610    if (typeof input !== 'undefined' && input !== '...')
1611    {
1612        $("#" + input).VAL(value);
1613    }
1614
1615
1616
1617    // --   POJEDYŃCZA WARTOŚĆ DODATKOWA
1618    // --   ODCZYT Z ATRYBUTÓW: "DATA-ADDITIONAL-FORM-INPUT" I "DATA-ADDITIONAL-FORM-VALUE"
1619
1620    var additional_input = container.data("additional-form-input");
1621    var additional_value = thumb.data("additional-form-value");
1622
1623    if (typeof additional_input !== 'undefined')
1624    {
1625        $("#" + additional_input).VAL(additional_value);
1626    }
1627
1628
1629
1630    // --   NAZWA WYBRANEGO PARAMETRU
1631    // --   SPRAWDZANIE KLAS: TITLE, SYMBOL I LABEL
1632
1633    var title = thumb.find(".thumb_title").text();
1634    var label = thumb.find(".label").text();
1635    var symbol = thumb.find(".symbol").text();
1636
1637    if (typeof symbol !== 'undefined' && symbol !== "")
1638    {
1639        title = symbol;
1640    }
1641    else
1642    {
1643        if (typeof label !== 'undefined' && label !== "")
1644        {
1645            title = label;
1646        }
1647    }
1648
1649
1650
1651    // --   OPIS WYBRANEGO PARAMETRU
1652
1653    var description = thumb.data("description");
1654    var form_block = thumb.parents(".form_block");
1655
1656    if (typeof description !== 'undefined')
1657    {
1658        form_block.find(".description").html('<h5>' + title + '</h5>' + description);
1659    }
1660
1661
1662
1663    // --   FUNKCJA WYWOŁYWANA PO ZAKOŃCZENIU WSZYSTKICH OPERACJI
1664
1665    if (typeof fn !== "undefined") {
1666        fn();
1667    }
1668}
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679/*
1680 *   FUNKCJA: UPDATE_HIGHLIGHT()
1681 *   ------------------------------
1682 *   UPDATE POZYCJI I SZEROKOŚCI PODŚWIETLENIA
1683 *   POD ZAKŁADKAMI ".HIGHLIGHT-TAB"
1684 */
1685
1686function UPDATE_TAB_HIGHLIGHT(active_tab)
1687{
1688    if (typeof active_tab !== "undefined" && active_tab.length)
1689    {
1690        // --   SPRAWDZANIE CZY ZAKŁADKI SĄ WIDOCZNE
1691
1692        var is_tabs_off = active_tab.parents(".step_container").hasClass("off");
1693
1694        if (!is_tabs_off)
1695        {
1696            var highlight = active_tab.parents(".highlight-tabs").find(".highlight");
1697            var w = parseInt(active_tab.outerWidth());
1698            var x = parseInt(active_tab.position().left);
1699            var step_id = active_tab.attr("id");
1700            var summary_step = active_tab.hasClass("summary_step");
1701
1702            if (highlight.length)
1703            {
1704                if (summary_step)
1705                {
1706                    highlight.addClass("summary_step");
1707                }
1708                else
1709                {
1710                    highlight.removeClass("summary_step");
1711                }
1712
1713                highlight.css({"transform": "translate(" + x + "px, 0)", "width": Math.floor(w) + "px", "opacity": 1}).SHOW(10, function()
1714                {
1715                    highlight.removeClass("trans-off");
1716
1717                    // --   SZUKANIE ZAKŁADEK NIŻSZEGO POZIOMU
1718
1719                    if (typeof step_id !== "undefined")
1720                    {
1721                        var lower_steps = $("#" + step_id + "-steps");
1722
1723                        if (lower_steps.length)
1724                        {
1725                            var search_lower_active_tab = $("#" + step_id + "-steps").find(".highlight-tab.active");
1726
1727                            if (typeof search_lower_active_tab !== "undefined" && search_lower_active_tab.length)
1728                            {
1729                                UPDATE_TAB_HIGHLIGHT(search_lower_active_tab);
1730                            }
1731                        }
1732                    }
1733                });
1734            }
1735        }
1736    }
1737}
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748/*
1749 *   FUNKCJA: CHECK_LAST_PARAMETER_STEP()
1750 *   ---------------------------------------
1751 *   SPRAWDZANIE KTÓRY KROK JEST OSTATNI I WŁĄCZENIE
1752 *   W NIM PRZYCISKU DO KIERUJĄCEGO DO PODSUMOWANIA
1753 */
1754
1755function CHECK_LAST_PARAMETER_STEP()
1756{
1757    var all_parameters_step = $("#parameters-list").find("ul").find(".L2");
1758    var last_parameter_step = $("#parameters-list").find("ul").find(".L2:not(.off):last");
1759    var parameter_id = last_parameter_step.data("parameter-id");
1760    var parameter_container = $("#parameter-container-" + parameter_id);
1761    all_parameters_step.removeClass("hide-arrow");
1762    last_parameter_step.addClass("hide-arrow");
1763    parameter_container.find(".next-step-v2").HIDE();
1764    parameter_container.find(".goto-step-product-summary").SHOW();
1765}
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776/*
1777 *   FUNKCJA: V2_UPDATE_PARAMETERS_LIST_MASK()
1778 *   --------------------------------------------
1779 *   UPDATE WIDOCZNYCH PARAMETRÓW PRODUKTU W ZALEŻNOŚCI
1780 *   OD WYBRANEGO KROKU FORMULARZA
1781 */
1782
1783function V2_UPDATE_PARAMETERS_LIST_MASK(step_obj)
1784{
1785    // --   OBLICZANIE SZEROKOŚCI DLA MASKI
1786
1787    var step_id = step_obj.data("step-id");
1788    var mask = $("#parameters-list").find(".mask");
1789    var parameters_list = $("#parameters-list").find("ul");
1790    var mask_w = 0;
1791    parameters_list.find(".step-" + step_id).each(function() {
1792        var parameter = $(this);
1793        var w = parameter.outerWidth();
1794        mask_w += w;
1795        parameter.removeClass("hide");
1796     // parameter.removeClass("hide hide-arrow");
1797    });
1798    mask.css({"width": mask_w + "px"});
1799    setTimeout(function() {
1800        mask.removeClass("trans-off");
1801    }, 300);
1802
1803    // --   OBLICZANIE PRZESUNIĘCIA W LEWO LISTY PARAMETRÓW
1804
1805    var first = $("#parameters-list").find("ul").find(".step-" + step_id + ":first");
1806    var last = $("#parameters-list").find("ul").find(".step-" + step_id + ":not(.off):not(.hide):last");
1807    var x = 0;
1808    first.prevAll("li:not(.highlight)").each(function() {
1809        var parameter = $(this);
1810        var w = parameter.outerWidth();
1811        x += w;
1812        parameter.addClass("hide");
1813    });
1814 // last.addClass("hide-arrow");
1815    last.nextAll("li:not(.highlight)").each(function() {
1816        var step = $(this);
1817        step.addClass("hide");
1818    });
1819    parameters_list.css({"transform": "translate(-" + x + "px, 0)"});
1820    CHECK_LAST_PARAMETER_STEP();
1821}
1822
1823
1824
1825
1826
1827/* --   V2_UPDATE_LIST_HIGHLIGHT   -- */
1828
1829function V2_UPDATE_LIST_HIGHLIGHT(obj)
1830{
1831    if (typeof obj !== "undefined" && obj.length)
1832    {
1833        var highlight = obj.parent().find(".highlight");
1834        var w = parseInt(obj.outerWidth());
1835        var x = parseInt(obj.position().left);
1836        if (highlight.length)
1837        {
1838            highlight.css({"transform": "translate(" + x + "px, 0)", "width": Math.floor(w) + "px", "opacity": 1}).removeClass("trans-off").SHOW(0);
1839        }
1840    }
1841}
1842
1843
1844
1845
1846
1847/* --   PRZEJŚCIE DO WSKAZANEGO KROKU   -- */
1848
1849function V2_GOTO_STEP(step_obj, fn)
1850{
1851    var step_id = step_obj.data("step-id");
1852    var step_title = step_obj.find("b").text();
1853    var first_parameter = $(".L2.step-" + step_id + ":first");
1854    var first_parameter_id = first_parameter.data("parameter-id");
1855    var first_parameter_container_obj = $("#parameter-container-" + first_parameter_id);
1856    var first_parameter_active_tab = first_parameter_container_obj.find(".filter-tabs").find(".active");
1857    var is_active_parameters = $(".L2.step-" + step_id + ".force-active").length;
1858
1859    step_obj.DATA("hover", step_title);
1860    step_obj.addClass("force-active");
1861    step_obj.nextAll().removeClass("force-active");
1862    step_obj.prevAll().removeClass("force-active");
1863
1864    V2_UPDATE_LIST_HIGHLIGHT(step_obj);
1865    V2_UPDATE_PARAMETERS_LIST_MASK(step_obj);
1866
1867    if (is_active_parameters === 0)
1868    {
1869        V2_GOTO_PARAMETER(first_parameter);
1870    }
1871
1872    setTimeout(function()
1873    {
1874        V2_UPDATE_LIST_HIGHLIGHT(first_parameter_active_tab);
1875    }, 600);
1876
1877    if (typeof fn !== "undefined")
1878    {
1879        fn();
1880    }
1881}
1882
1883
1884
1885
1886
1887/* --   ZAZNACZENIE WSKAZANEGO KROKU   -- */
1888
1889function V2_SELECT_STEP(step_obj, fn)
1890{
1891    var step_title = step_obj.find("b:not(.off)").text();
1892
1893    step_obj.DATA("hover", step_title);
1894    step_obj.addClass("force-active");
1895    step_obj.nextAll().removeClass("force-active");
1896    step_obj.prevAll().removeClass("force-active");
1897
1898    V2_UPDATE_LIST_HIGHLIGHT(step_obj);
1899    V2_UPDATE_PARAMETERS_LIST_MASK(step_obj);
1900
1901    if (typeof fn !== "undefined")
1902    {
1903        fn();
1904    }
1905}
1906
1907
1908
1909
1910
1911/* --   PRZEJŚCIE DO WSKAZANEGO PARAMETRU   -- */
1912
1913function V2_GOTO_PARAMETER(parameter_obj, fn)
1914{
1915    // $("html, body").stop().animate({scrollTop: 0}, 250, 'swing', function()
1916    // {
1917        var step_id = parameter_obj.data("step-id");
1918        var step_obj = $("#step-" + step_id);
1919        var parameter_id = parameter_obj.data("parameter-id");
1920        var parameter_title = parameter_obj.find("b:not(.off)").text();
1921        var parameter_container_obj = $("#parameter-container-" + parameter_id);
1922        var parameter_container_mask_obj = parameter_container_obj.parent();
1923
1924        // --   SPRAWDZANIE CZY KTÓRYŚ PARAMETR JEST JUŻ WYBRANY
1925
1926        if (typeof current_parameter_obj !== "undefined")
1927        {
1928            // --   SPRAWDZANIE CZY WYBRANY PARAMETR ZNAJDUJE SIĘ
1929            // --   PO LEWEJ CZY PO PRAWEJ STRONIE OD BIEŻĄCEGO
1930            // --   ŻEBY USTALIĆ, W KTÓRĄ STRONĘ WIZUALNIE GO PRZESUNĄĆ
1931
1932            if (current_parameter_obj.prevAll("#parameter-" + parameter_id).length === 1) current_parameter_container_obj.addClass("push-right").HIDE(400);
1933            if (current_parameter_obj.nextAll("#parameter-" + parameter_id).length === 1) current_parameter_container_obj.addClass("push-left").HIDE(400);
1934        }
1935
1936        // --   ZMIANA BIEŻĄCEGO PARAMETRU NA WYBRANY
1937
1938        parameter_obj.DATA("hover", parameter_title);
1939        parameter_obj.addClass("force-active");
1940        parameter_obj.nextAll().removeClass("force-active");
1941        parameter_obj.prevAll().removeClass("force-active");
1942        parameter_container_obj.SHOW(0, function()
1943        {
1944            var h = parameter_container_obj.outerHeight();
1945            parameter_container_obj.removeClass("push-left push-right");
1946            parameter_container_mask_obj.css({"height": h + "px"});
1947        });
1948
1949        current_parameter_obj = parameter_obj;
1950        current_parameter_container_obj = parameter_container_obj;
1951        current_parameter_container_obj.nextAll(".parameter-container").removeClass("push-left").addClass("push-right");
1952        current_parameter_container_obj.prevAll(".parameter-container").removeClass("push-right").addClass("push-left");
1953
1954        V2_SELECT_STEP(step_obj);
1955        V2_UPDATE_LIST_HIGHLIGHT(parameter_obj);
1956
1957        // --   WYŚWIETLENIE BUTONA DO PODSUMOWANIA
1958        // --   JEŚLI WYBRANY PARAMETR JEST OSTATNI
1959
1960        if (parameter_obj.nextAll().length === 0)
1961        {
1962            parameter_container_obj.find(".next-step-v2").HIDE();
1963            parameter_container_obj.find(".goto-step-product-summary").SHOW();
1964        }
1965
1966        var active_filter_tab = parameter_container_obj.find(".filter-tabs").find(".active");
1967
1968        V2_UPDATE_LIST_HIGHLIGHT(active_filter_tab);
1969        V2_FIX_H();
1970
1971        if (typeof fn !== "undefined") {
1972            fn();
1973        }
1974
1975        $("html, body").stop().animate({scrollTop: 0}, 250, 'swing');
1976    // });
1977}
1978
1979
1980
1981
1982
1983/* --   KOREKTA WYSOKOŚCI KONTENERA Z KROKIEM   -- */
1984
1985function V2_FIX_H()
1986{
1987    if (typeof current_parameter_container_obj !== "undefined") {
1988        var h = current_parameter_container_obj.outerHeight();
1989
1990        if (current_parameter_container_obj.parent().length) {
1991            current_parameter_container_obj.parent().css({"height": h + "px"});
1992        }
1993
1994        if (current_parameter_container_obj.parent().parent().length) {
1995            current_parameter_container_obj.parent().parent().css({"height": h + "px"});
1996        }
1997    }
1998}
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019/*
2020 *   FUNKCJA: FLOATING_CONSOLE()
2021 *   ------------------------------
2022 *   KONSOLA PO LEWEJ: TREŚĆ, AKCJA I KIERUNEK
2023 *   AKCJE: ADD (DODANIE) CLEAR (WYCZYSZCZENIE KONSOLI)
2024 *   KIERUNEK: BEFORE (OD GÓRY) AFTER (OD DOŁU)
2025 */
2026
2027function FLOATING_CONSOLE(console_content, container, action, direction)
2028{
2029    var web_console = $("#web_console").val();
2030
2031    if (web_console === "on")
2032    {
2033        var floating_console = $("#floating-console").find("div");
2034        var p = $('<p>' + console_content + '</p>');
2035
2036        if (typeof action === "undefined" || action === "") action = "add";
2037        if (typeof direction === "undefined" || direction === "") direction = "after";
2038        if (typeof container !== "undefined")
2039        {
2040            var container_obj = $("#" + container);
2041
2042            if (!container_obj.length)
2043            {
2044                if (direction === "before") floating_console.prepe
2044nd('<p id="' + container + '">' + console_content + '</p>');
2045                if (direction === "after") floating_console.append('<p id="' + container + '">' + console_content + '</p>');
2046            }
2047            else
2048            {
2049                container_obj.html(console_content);
2050            }
2051        }
2052        else
2053        {
2054            if (action === "clear") floating_console.html(p);
2055            if (action === "add")
2056            {
2057                if (direction === "before") floating_console.prepend(p);
2058                if (direction === "after") floating_console.append(p);
2059            }
2060        }
2061
2062        var console_h = $("#floating-console").find("div").outerHeight();
2063        $("#floating-console").scrollTop(console_h);
2064    }
2065}
2066
2067
2068
2069
2070
2071/*
2072 *   FUNKCJA: GET_PERSONALIZATION_VARS()
2073 *   --------------------------------------
2074 *   ODCZYT ZMIENNYCH ZWIĄZANYCH Z FORMULARZEM
2075 *   NA PERSONALIZACJĘ
2076 */
2077
2078function GET_PERSONALIZATION_VARS()
2079{
2080    var web_console = $("#web_console").val();
2081    var get_id = $("#get_id").val();
2082    if (web_console === "on" && get_id === "order") {
2083        var colors = {};
2084        var field_symbol = "";
2085        colors["true"] = "#0a0";
2086        colors["false"] = "#a00";
2087        if (typeof current_personalization_field !== "undefined" && current_personalization_field != null) {
2088            field_symbol = current_personalization_field.data("field-symbol");
2089        }
2090        $("#var-current_model_view_mode").html(current_model_view_mode);
2091        $("#var-mouseon_del_personalization").html(mouseon_del_personalization.toString()).css("color", colors[mouseon_del_personalization.toString()]);
2092        $("#var-mouseon_change_personalization_value").html(mouseon_change_personalization_value.toString()).css("color", colors[mouseon_change_personalization_value.toString()]);
2093        $("#var-hide_del_personalization_delay").html(hide_del_personalization_delay);
2094        $("#var-personalization_details").html(personalization_details.toString()).css("color", colors[personalization_details.toString()]);
2095        $("#var-current_personalization_field").html(field_symbol);
2096        $("#var-current_personalization_target").html(current_personalization_target);
2097    }
2098}
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109/*
2110 *   NOTICE
2111 *   ---------
2112 *   WYŚWIETLANIE PODPOWIEDZI Z WYGASZENIEM
2113 */
2114
2115function SHOW_NOTICE(id)
2116{
2117    if (parseInt($.cookie("preset-notice")) !== 1 && !was_preset_notice) {
2118        var x = $("#preset-save-panel-icon").offset().left;
2119        $("#" + id).css({"left": x + "px"})
2120        $("#notice-mask").SHOW();
2121    }
2122}
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133/*
2134 *   FUNKCJA: FIND_VARIANT()
2135 *   --------------------------
2136 *   ODMIANA RZECZOWNIKÓW PRZEZ LICZBY I PŁEĆ
2137 */
2138
2139function FIND_VARIANT(amount, variant_arr)
2140{
2141    var variant = "";
2142    var a;
2143
2144    amount = parseInt(amount);
2145
2146    if (amount > 21) {
2147        a = parseInt((amount.toString()).slice(-1));
2148        if (a === 0 || a === 1) variant = variant_arr[1];
2149        if (a === 2 || a === 3 || a === 4) variant = variant_arr[2];
2150        if (a >= 5 && a <= 9) variant = variant_arr[1];
2151    }
2152    else {
2153        a = amount;
2154        if (a === 1) variant = variant_arr[0];
2155        if (a === 2 || a === 3 || a === 4) variant = variant_arr[2];
2156        if (a >= 5 && a <= 21) variant = variant_arr[1];
2157    }
2158
2159    return variant;
2160}
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171/*
2172 *   FUNKCJA: T()
2173 *   ---------------
2174 *   POBIERANIE AJAXEM TŁUMACZENIA
2175 *   DO FRAZ W JS
2176 */
2177
2178function T(phrase, callback) {
2179    $.ajax({
2180        type: "POST",
2181         url: ".core/.php/ajax.php?action=get_translation",
2182        data: {
2183            phrase: phrase
2184        },
2185        success: function(translation) {
2186            callback(translation);
2187        }
2188    });
2189}
2190
2191

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.