$(function () {

    // $("[href]").each(function () {
    //     if (this.href.length > 10) {
    //         if (window.location.href.indexOf($(this).attr("href")) > 0) {
    //             $(this).toggleClass("active", true);
    //         }
    //     }
    // });

    //	console.log(window.innerWidth);

    if (window.location.href.indexOf('/themenwelt-') > 0) {
        window.__slider = {};
        window.__slider.last_img = "";
        window.__slider.scrolling = false;
        window.__slider.ltr = false;
        window.__slider.interval = setInterval(function () {
            var img = $(".ps21-image.active");
            if (img.length > 0) {
                if (typeof img.attr("data-file") != "undefined") {
                    if (window.__slider.last_img != img.attr("data-file")) {
                        window.__slider.last_img = img.attr("data-file");
                        window.__slider.ltr = true;

                        $(".ps21-image").not(img).css({"transiton": "none"});
                        $(".ps21-image").not(img).css({"background-position": "0px 0px"});

                        if (window.__slider.scrolling !== false) {
                            clearInterval(window.__slider.scrolling);
                        }

                        var process = function () {
                            if (img.attr("data-width") > 2000) {
                                img.toggleClass("isslider", true);

                                //		window.__slider.last_img = btoa(_href.replace('/l/','/original/')).replace("=","");
                                img.css({"background-image": "url('https://www.pro-event.net/" + (_href.replace('/l/', '/original/')) + "')"});

                                var view_width = img.parents(".produkt-slider-2021").width();

                                var slideto = (img.attr("data-width") - view_width) - 20;

                                img.css({"transiton": "50s all linear"});
                                img.css({"image-rendering": "revert", "background-position": "-" + slideto + "px 0px"});
                                //		img.css({"position":"absolute","top":"0px","left":"-"+slideto+"px"});

                                window.__slider.scrolling = setInterval(function () {
                                    console.log(window.__slider.ltr);

                                    window.__slider.ltr = !window.__slider.ltr;

                                    if (window.__slider.ltr) {
                                        img.css({"transiton": "50s all linear"});
                                        img.css({"background-position": "-" + slideto + "px 0px"});
                                        //				img.css({"position":"absolute","top":"0px","left":"-"+slideto+"px"});
                                    } else {
                                        img.css({"transiton": "50s all linear"});
                                        img.css({"background-position": "0px 0px"});
                                        //				img.css({"position":"absolute","top":"0px","left":"0px"});
                                    }
                                }, 50000);
                            }
                        };

                        var _href = atob(img.attr("data-file"));
                        if (typeof img.attr("data-width") == "undefined") {
                            var _img = new Image();
                            _img.onload = function () {
                                img.attr({"data-width": (this.width), "data-height": (this.height)});
                                if (this.width > 2000) {
                                    img.attr({"src": this.src});
                                }
                                setTimeout(function () {
                                    process();
                                }, 100);
                            };
                            _img.src = 'https://www.pro-event.net/' + _href.replace('/l/', '/original/');
                        } else {
                            setTimeout(function () {
                                process();
                            }, 100);
                        }
                    }
                }
            }
        }, 50);
    }

    if (window.innerWidth <= 780) {
        $.each($(".mw-description-table"), function () {
            $(this).parents(".mw-description-wrap").css({"max-height": "unset", "height": $(this).height() + "px"});

            var $hBef = $(this).parents("a").height();
            var $hAft = $(this).height();
            var $hDiff = 380 + ($hAft - $hBef);
            $(this).parents("a").css({"max-height": "unset", "height": $(this).height() + "px"});
            $(this).parents(".mietwelt_banner_bereich").css({"margin-bottom": $hDiff + "px"});
        });

        $.each($(".row.kategorie-ansicht .pbg-row"), function () {
            var $even = true;
            $.each($(this).find('a[title]'), function () {
                $even = !$even;
                $(this).css({"float": "left", "width": "50%"});
                if (!$even) {
                    $(this).css({"clear": "both"});
                }
            });
        });

        $.each($("#produktinfo .pbg-row"), function () {
            var $even = true;
            $.each($(this).find('a[title]'), function () {
                $even = !$even;
                $(this).css({"float": "left", "width": "50%"});
                if (!$even) {
                    $(this).css({"clear": "both"});
                }
            });
        });
    }


    function __initPhotoSwipe() {
        var script = document.createElement('script');
        var src = '/media/js/photoswipe/photoswipe.js?nc=<?=(rand(1000000,9999999))?>';
        script.setAttribute("src", src);
        document.getElementsByTagName('head')[0].appendChild(script);

        var script = document.createElement('script');
        var src = '/media/js/photoswipe/photoswipe-ui-default.min.js?nc=<?=(rand(1000000,9999999))?>';
        script.setAttribute("src", src);
        document.getElementsByTagName('head')[0].appendChild(script);

        window.img_list_left = [];
        $sort = 0;
        $.each($(".ps20-image"), function () {
            $sort++;
            var img = new Image();
            var $_img = {};
            $_img.sort = $sort;
            img.onload = function () {
                $_img.h = img.height;
                $_img.w = img.width;
                window.img_list_left.push($_img);
            };
            $_img.src = 'https://www.pro-event.net/' + atob($(this).attr("data-file"));
            img.src = $_img.src;
        });

        window.openPhotoSwipeLeft = function () {
            var pswpElement = document.querySelectorAll('.pswp')[0];

            // define options (if needed)
            var options = {
                // history & focus options are disabled on CodePen
                history: false,
                focus: false,
                index: parseInt($(".ps20-image.active").attr("data-position")) - 1,

                showAnimationDuration: 0,
                hideAnimationDuration: 0

            };

            var gallery = new PhotoSwipe(pswpElement, PhotoSwipeUI_Default, window.img_list_left, options);
            gallery.init();
        };

        window.img_list_right = [];
        $sort = 0;
        $.each($(".ps21-image"), function () {
            $sort++;
            var img = new Image();
            var $_img = {};
            $_img.sort = $sort;
            img.onload = function () {
                $_img.h = img.height;
                $_img.w = img.width;
                window.img_list_right.push($_img);
            };
            $_img.src = 'https://www.pro-event.net/' + atob($(this).attr("data-file"));
            img.src = $_img.src;
        });

        window.openPhotoSwipeRight = function () {
            var pswpElement = document.querySelectorAll('.pswp')[0];

            $sort = 0;

            // define options (if needed)
            var options = {
                // history & focus options are disabled on CodePen
                history: false,
                focus: false,
                index: parseInt($(".ps21-image.active").attr("data-position")) - 1,

                showAnimationDuration: 0,
                hideAnimationDuration: 0
            };

            var gallery = new PhotoSwipe(pswpElement, PhotoSwipeUI_Default, window.img_list_right, options);
            gallery.init();

        }

        function __initCustomSwipe() {
            var script = document.createElement('script');
            var src = '/js/customSwipe.js?nc=<?=(rand(1000000,9999999))?>';
            script.setAttribute("src", src);
            document.getElementsByTagName('head')[0].appendChild(script);
        }

        if (window.innerWidth < 760) {
            __initPhotoSwipe();
        } else {
            __initCustomSwipe();
        }
    }

    if ($(".produkt-slider-2021").length > 0) {
        (function () {

            var $_wrap = $(".produkt-slider-2021");
            var $_togglers = $_wrap.find(".ps21-toggler");
            var $_media = $_wrap.find(".ps21-image,.ps21-video");
            var $_prev = $_wrap.find(".ps21-prev");
            var $_next = $_wrap.find(".ps21-next");
            var $_active = 1;
            var $_length = $_media.length;

            if ($_length < 2) {
                $_prev.hide();
                $_next.hide();
                $_togglers.hide();
            }

            // vorerst grundsaetzlich ausblenden
            $_togglers.hide();

            var _ps21OnClick = function () {
                $_togglers.toggleClass("active", false);
                $_media.toggleClass("active", false);
                $_wrap.find('.ps21-toggler[data-position=' + ($_active) + ']').toggleClass("active", true);
                $_wrap.find('.ps21-image[data-position=' + ($_active) + ']').toggleClass("active", true);
                $_wrap.find('.ps21-video[data-position=' + ($_active) + ']').toggleClass("active", true);
            };

            // $_prev.click(function() { $_active = ($_active-1 < 1) ? $_length : ($_active-1); _ps21OnClick.call(); $(".ps21-bildposition").text( "" + ($(".ps21-image.active").attr("data-position")) + " / " + ($(".ps21-image").length) ); });
            // $_next.click(function() { $_active = ($_active+1 > $_length) ? 1 : ($_active+1); _ps21OnClick.call(); $(".ps21-bildposition").text( "" + ($(".ps21-image.active").attr("data-position")) + " / " + ($(".ps21-image").length) ); });
            // $_togglers.click(function() { $_active = parseInt($(this).attr("data-position")); _ps21OnClick.call(); });

            $_media.click(function () {
                if ($_media.hasClass("isslider")) {
                    console.log("x");
                    return false;
                }
                var _index = 0;
                if ($(".ps21-toggler.active").length > 0) {
                    _index = parseInt($(".ps21-toggler.active").attr("data-position")) - 1;
                }
                if (typeof window.openPhotoSwipeRight != "undefined") {
                    openPhotoSwipeRight();
                }
                //		var $_file = $('.ps20-image.active,.ps20-video.active').first().attr("data-file");
                //		window.open( 'https://www.pro-event.net/' + atob( $_file ), "PRODUCTFILE" );
            });

            /*
            $_media.unbind().click(function()
            {
                var $_file = $('.ps21-image.active,.ps21-video.active').first().attr("data-file");
                window.open( 'https://www.pro-event.net/' + atob( $_file ), "PRODUCTFILE" );
            });
*/

        }).call();
    }

    if ($(".produkt-slider-2020").length > 0) {
        (function () {

            var $_wrap = $(".produkt-slider-2020");
            var $_togglers = $_wrap.find(".ps20-toggler");
            var $_media = $_wrap.find(".ps20-image,.ps20-video");
            var $_prev = $_wrap.find(".ps20-prev");
            var $_next = $_wrap.find(".ps20-next");
            var $_active = 1;
            var $_length = $_media.length;

            if ($_length < 2) {
                $_prev.hide();
                $_next.hide();
                $_togglers.hide();
            }

            // vorerst grundsaetzlich ausblenden
            $_togglers.hide();

            var _ps20OnClick = function () {
                $_togglers.toggleClass("active", false);
                $_media.toggleClass("active", false);
                $_wrap.find('.ps20-toggler[data-position=' + ($_active) + ']').toggleClass("active", true);
                $_wrap.find('.ps20-image[data-position=' + ($_active) + ']').toggleClass("active", true);
                $_wrap.find('.ps20-video[data-position=' + ($_active) + ']').toggleClass("active", true);
            };

            $_prev.click(function () {
                $_active = ($_active - 1 < 1) ? $_length : ($_active - 1);
                _ps20OnClick.call();
                $(".ps20-bildposition").text("" + ($(".ps20-image.active").attr("data-position")) + " / " + ($(".ps20-image").length));
            });
            $_next.click(function () {
                $_active = ($_active + 1 > $_length) ? 1 : ($_active + 1);
                _ps20OnClick.call();
                $(".ps20-bildposition").text("" + ($(".ps20-image.active").attr("data-position")) + " / " + ($(".ps20-image").length));
            });
            $_togglers.click(function () {
                $_active = parseInt($(this).attr("data-position"));
                _ps20OnClick.call();
            });

            $_media.click(function () {
                var _index = 0;
                if ($(".ps20-toggler.active").length > 0) {
                    _index = parseInt($(".ps20-toggler.active").attr("data-position")) - 1;
                }
                if (typeof window.openPhotoSwipeLeft != "undefined") {
                    openPhotoSwipeLeft();
                }
                //		var $_file = $('.ps20-image.active,.ps20-video.active').first().attr("data-file");
                //		window.open( 'https://www.pro-event.net/' + atob( $_file ), "PRODUCTFILE" );
            });


        }).call();
    }

    if ($(".ps20-image").length > 1) {
        $(".ps20-bildposition").text("" + ($(".ps20-image.active").attr("data-position")) + " / " + ($(".ps20-image").length));
    }

    if ($(".ps21-image").length > 1) {
        $(".ps21-bildposition").text("" + ($(".ps21-image.active").attr("data-position")) + " / " + ($(".ps21-image").length));
    }

// openPhotoSwipe();

// document.getElementById('btn').onclick = openPhotoSwipe;


    $(".pass_old").unbind().on("click focus", function () {
        $(this).attr({"placeholder": "altes Passwort eingeben"});
        $(".pass_new").parents(".logingroup").toggleClass("d-none", false);
        $(".pass_new_repeat").parents(".logingroup").toggleClass("d-none", false);
    });

    $(".pass_new").unbind();
    $(".pass_new_repeat").unbind();

    $(".aclf-menu-wrapper.d-none").insertBefore($(".home-1-slider-area")).removeClass("d-none");

    $("#sdnewsletter").unbind().change(function () {
        var $toggle = $(this);
        var $active = $toggle.is(":checked");
        var $req = {"active": $active};
        $peCMD("newsletter_toggle", $req,
            {
                success: function ($rsp) {
                }
            });
    });

    $(".contactmenu21").unbind().click(function () {
        $(".contactmenu21").not($(this)).toggleClass("active", false);
        $(this).toggleClass("active", true);
    });

    $(".mietwelt_block").hover(function () {
        //	var $m = $(this).find(".mw-subs");
        //	$m.css({"background":"#cfc"});
        //	$m.css({"position":"absolute"});
    }, function () {
        //	var $m = $(this).find(".mw-subs");
        //	$m.css({"background":"unset"});
        //	$m.css({"position":"unset"});
    });

    $(".favloader").unbind().on("change", function () {
        var $load = $(this).val();
        if ($load > 0) {
            $data = {};
            $data.id = $load;
            $data.nc = $.now();

            $peCMD("favload", $data,
                {
                    "success": function ($rsp) {
                        // window.location = '/merkzettel.html?nc=' + ($.now());
                        window.location = '/mein-account.html?seite=merkzettel&nc=' + ($.now());
                    }
                });
        }
    });

    $(".favsaver").unbind().on("click", function () {
        var $name = $(".favsaver_name").val();
        var $fid = $(this).attr("data-fav-id");

        var $ask = (!(($fid === "0") || ($fid === "") || ($fid === 0) || (typeof $fid == "undefined")));

        if ($ask) {
            $ask = window.confirm("Zuvor geladenen Merkzettel überschreiben?");
        }

        $fid = ($ask) ? $fid : 0;

        var $save = $(this).val();

        $data = {};
        $data.id = $fid;
        $data.title = $name;
        $data.nc = $.now();
        $peCMD("favsave", $data,
            {
                "success": function ($rsp) {
                    if ($ask) {
                        alert("Merkzettel wurde aktualisiert.");
                    } else {
                        alert("Merkzettel wurde angelegt.");
                    }
                    // window.location = '/merkzettel.html?nc=' + ($.now());
                    window.location = '/mein-account.html?seite=merkzettel&nc=' + ($.now());
                }
            });
    });

    $(".pe21smb-fb").unbind().on("click", function () {
        window.open('https://de-de.facebook.com/proevent/?ref=page_internal', 'PEFB');
    });
    $(".pe21smb-ig").unbind().on("click", function () {
        window.open('https://www.instagram.com/proevent_gmbh', 'PEIG');
    });
    $(".pe21smb-pi").unbind().on("click", function () {
        window.open('https://www.pinterest.de/ProEventGmbh', 'PEPI');
    });
    $(".pe21smb-yt").unbind().on("click", function () {
        window.open('https://www.youtube.com/channel/UCQQedIA-7AOGdWZ4djf0t5Q', 'PEYT');
    });
    $(".pe21smb-li").unbind().on("click", function () {
        window.open('https://www.linkedin.com/company/69724061/', 'PELI');
    });
    $(".pe21smb-tw").unbind().on("click", function () {
        window.open('https://twitter.com/gmbh_event', 'PETW');
    });

//	$(".pe21smb-sh").unbind().on("click",function(){window.open('https://de-de.facebook.com/proevent/?ref=page_internal','PEFACEBOOK');});

    $(".mz-delete").unbind().on("click", function () {
        var $fid = $(this).attr("data-mz");
        var $conf = window.confirm("Soll der aktuell geladene Merkzettel wirklich unwiederruflich gelöscht werden?");

        if ($conf) {
            $data = {};
            $data.id = $fid;
            $data.nc = $.now();

            $peCMD("favdelete", $data,
                {
                    "success": function ($rsp) {
                        alert("Der Merkzettel ist jetzt nicht mehr gespeichert");
                        // window.location = '/merkzettel.html?nc=' + ($.now());
                        window.location = '/mein-account.html?seite=merkzettel&nc=' + ($.now());
                    }
                });
        }
    });

    $.each($("a.async-href"), function () {
        $(this).attr({"href": $(this).attr("data-href")});
        $(this).removeAttr("data-href");
    });

    $(".fav-item-block").unbind("click").on("click", function (e) {
        if (($(e.target).hasClass("fib-share")) || ($(e.target).parents(".fib-share").length > 0)) {
            // e.preventDefault();
            (function (e) {
                var $btn = ($(e.target).hasClass("fib-share")) ? $(e.target) : $(e.target).parents(".fib-share");
                // var _x = Math.floor($btn.offset().left);
                // var _y = Math.floor($btn.offset().top);
                // _x = _x - 174;
                // _y = _y + 20;
                // _x = (_x < 20) ? 20 : _x;
                // _y = (_y < 20) ? 20 : _y;

                // overlay
                // var $_sb_ov = $("<div/>").addClass("cs-social-share-overlay");
                // $("body").css({"overflow-y": "hidden"});
                // $("body").append($_sb_ov);
                //
                // $_sb_ov.click(function (e) {
                //     if ($(e.target).parents(".cs-social-share").length < 1) {
                //         $_sb_ov.remove();
                //     } else {
                //         setTimeout(function () {
                //                 $_sb_ov.remove();
                //             },
                //             500);
                //     }
                // });

                // var $_sb = $("<div/>").addClass("cs-social-share");
                // $_sb.css({"left": _x + "px", "top": _y + "px"});
                // $_sb_ov.append($_sb);

                var $_sb_url = $btn.attr("data-url");
                var $_sb_img = $btn.attr("data-img");
                var $_sb_title = $btn.attr("data-title");
                $btn.find('.bs-facebook').attr("href", "https://www.facebook.com/dialog/feed?app_id=168196888342547&display=popup&caption=" + encodeURIComponent("" + $_sb_title) + "&link=" + encodeURIComponent("" + $_sb_url) + "&redirect_uri=https://www.pro-event.net/merkzettel.html");
                $btn.find('.bs-twitter').attr("href", "https://twitter.com/share?url=" + ("" + $_sb_url) + "&text=" + ("" + $_sb_title));
                $btn.find('.bs-pinterest').attr("href", "https://pinterest.com/pin/create/bookmarklet/?media=" + ("" + $_sb_img) + "&is_video=false&url=" + ("" + $_sb_url) + "&description=" + ("" + $_sb_title));
                $btn.find('.bs-linkedin').attr("href", "https://www.linkedin.com/shareArticle?url=" + ("" + $_sb_url) + "&title=" + ("" + $_sb_title));
                $btn.find('.bs-reddit').attr("href", "https://reddit.com/submit?url=" + ("" + $_sb_url) + "&title=" + ("" + $_sb_title));
                $btn.find('.bs-mail').attr("href", "mailto:?subject=" + encodeURIComponent("" + $_sb_title) + "&body=Schau%20mal%20hier:%20%0A%0D" + encodeURIComponent("" + $_sb_url));
                $btn.find('.bs-wordpress').attr("href", "https://wordpress.com/press-this.php?u=" + ("" + $_sb_url) + "&t=" + ("" + $_sb_title) + "&s=" + ("" + $_sb_title) + "&i=" + ("" + $_sb_img));
                $btn.find('.bs-pocket').attr("href", "https://getpocket.com/save?url=" + ("" + $_sb_title) + "&title=" + ("" + $_sb_url));

                // // -----------------------------------------------------------------------------------
                //
                // var $_sb_btn = $("<a/>");
                // $_sb_btn.addClass("cs-social-share-btn");
                // $_sb_btn.attr({"target": "_blank"});
                // $_sb_btn.css({"background-color": "#3b5999"});
                // $_sb_btn.attr({"title": "Bei Facebook teilen"});
                // $_sb_btn.append($("<i/>").addClass("ci-facebook"));
                // $_sb_btn.attr({"href": "https://www.facebook.com/sharer/sharer.php?u=" + ("" + $_sb_url)});
                // $_sb_btn.attr({"href": "https://www.facebook.com/dialog/feed?app_id=168196888342547&display=popup&caption=" + encodeURIComponent("" + $_sb_title) + "&link=" + encodeURIComponent("" + $_sb_url) + "&redirect_uri=https://www.pro-event.net/merkzettel.html"});
                // https://www.facebook.com/dialog/feed?app_id=168196888342547&display=popup&caption=Schirmst%C3%A4nder%2034%20kg%20&link=https%3A%2F%2Fwww.pro-event.net%2Fartikel-1212-schirmstaender-34-kg.html&redirect_uri=https://www.pro-event.net/merkzettel.html
                //
                //
                //     $_sb.append($_sb_btn);
                //
                // // -----------------------------------------------------------------------------------
                //
                // var $_sb_btn = $("<a/>");
                // $_sb_btn.addClass("cs-social-share-btn");
                // $_sb_btn.attr({"target": "_blank"});
                // $_sb_btn.css({"background-color": "#55acee"});
                // $_sb_btn.attr({"title": "Bei Twitter teilen"});
                // $_sb_btn.append($("<i/>").addClass("fa fa-twitter"));
                // $_sb_btn.attr({"href": "https://twitter.com/share?url=" + ("" + $_sb_url) + "&text=" + ("" + $_sb_title)});
                // $_sb.append($_sb_btn);
                //
                // // -----------------------------------------------------------------------------------
                //
                // var $_sb_btn = $("<a/>");
                // $_sb_btn.addClass("cs-social-share-btn");
                // $_sb_btn.attr({"target": "_blank"});
                // $_sb_btn.css({"background-color": "#bd081c"});
                // $_sb_btn.attr({"title": "Bei Pinterest teilen"});
                // $_sb_btn.append($("<i/>").addClass("fa fa-pinterest-p"));
                // $_sb_btn.attr({"href": "https://pinterest.com/pin/create/bookmarklet/?media=" + ("" + $_sb_img) + "&is_video=false&url=" + ("" + $_sb_url) + "&description=" + ("" + $_sb_title)});
                // $_sb.append($_sb_btn);
                //
                // // -----------------------------------------------------------------------------------
                //
                // var $_sb_btn = $("<a/>");
                // $_sb_btn.addClass("cs-social-share-btn");
                // $_sb_btn.attr({"target": "_blank"});
                // $_sb_btn.css({"background-color": "#0077B5"});
                // $_sb_btn.attr({"title": "Bei LinkedIn teilen"});
                // $_sb_btn.append($("<i/>").addClass("fa fa-linkedin"));
                // $_sb_btn.attr({"href": "https://www.linkedin.com/shareArticle?url=" + ("" + $_sb_url) + "&title=" + ("" + $_sb_title)});
                // $_sb.append($_sb_btn);
                //
                // // -----------------------------------------------------------------------------------
                //
                // var $_sb_btn = $("<a/>");
                // $_sb_btn.addClass("cs-social-share-btn");
                // $_sb_btn.attr({"target": "_blank"});
                // $_sb_btn.css({"background-color": "#ff5700"});
                // $_sb_btn.attr({"title": "Bei Reddit teilen"});
                // $_sb_btn.append($("<i/>").addClass("fa fa-reddit-alien"));
                // $_sb_btn.attr({"href": "https://reddit.com/submit?url=" + ("" + $_sb_url) + "&title=" + ("" + $_sb_title)});
                // $_sb.append($_sb_btn);
                //
                // // -----------------------------------------------------------------------------------
                //
                // var $_sb_btn = $("<a/>");
                // $_sb_btn.addClass("cs-social-share-btn");
                // $_sb_btn.attr({"target": "_blank"});
                // $_sb_btn.css({"background-color": "purple"});
                // $_sb_btn.attr({"title": "Per E-Mail teilen"});
                // $_sb_btn.append($("<i/>").addClass("fa fa-envelope-o"));
                // $_sb_btn.attr({"href": "mailto:?subject=" + encodeURIComponent("" + $_sb_title) + "&body=Schau%20mal%20hier:%20%0A%0D" + encodeURIComponent("" + $_sb_url)});
                // $_sb.append($_sb_btn);
                //
                // // -----------------------------------------------------------------------------------
                //
                // var $_sb_btn = $("<a/>");
                // $_sb_btn.addClass("cs-social-share-btn");
                // $_sb_btn.attr({"target": "_blank"});
                // $_sb_btn.css({"background-color": "#003c56"});
                // $_sb_btn.attr({"title": "Bei WordPress teilen"});
                // $_sb_btn.append($("<i/>").addClass("fa fa-wordpress"));
                // $_sb_btn.attr({"href": "https://wordpress.com/press-this.php?u=" + ("" + $_sb_url) + "&t=" + ("" + $_sb_title) + "&s=" + ("" + $_sb_title) + "&i=" + ("" + $_sb_img)});
                // $_sb.append($_sb_btn);
                //
                // // -----------------------------------------------------------------------------------
                //
                // var $_sb_btn = $("<a/>");
                // $_sb_btn.addClass("cs-social-share-btn");
                // $_sb_btn.attr({"target": "_blank"});
                // $_sb_btn.css({"background-color": "#e0e0e0", "border": "1px solid #aaa"});
                // $_sb_btn.attr({"title": "Per E-Mail teilen"});
                // $_sb_btn.append($("<i/>").addClass("fa fa-get-pocket").css({"color": "#ef4056"}));
                // $_sb_btn.attr({"href": "https://getpocket.com/save?url=" + ("" + $_sb_title) + "&title=" + ("" + $_sb_url)});
                // $_sb.append($_sb_btn);

                /*
                        Share API Links
                        --------------------------------------------------------------------------------------------------------------------------------------------------
                    x	 Facebook    |   fa-facebook       |   #3b5999   |   https://www.facebook.com/sharer.php?u=[post-url]
                        --------------------------------------------------------------------------------------------------------------------------------------------------
                    x	 Twitter     |   fa-twitter        |   #55acee   |   https://twitter.com/share?url=[post-url]&text=[post-title]&via=[via]&hashtags=[hashtags]
                        --------------------------------------------------------------------------------------------------------------------------------------------------
                    x	 Pinterest   |   fa-pinterest-p    |   #bd081c   |   https://pinterest.com/pin/create/bookmarklet/?media=[post-img]&url=[post-url]&is_video=[is_video]&description=[post-title]
                        --------------------------------------------------------------------------------------------------------------------------------------------------
                    x	 LinkedIn    |   fa-linkedin       |   #0077B5   |   https://www.linkedin.com/shareArticle?url=[post-url]&title=[post-title]
                        --------------------------------------------------------------------------------------------------------------------------------------------------
                    x	 Reddit      |   fa-reddit-alien   |   #ff5700   |   https://reddit.com/submit?url=[post-url]&title=[post-title]
                        --------------------------------------------------------------------------------------------------------------------------------------------------
                    x	 E-Mail      |   fa-envelope-o     |   #202020   |   mailto:?subject=[post-title]&body=Check out this site: [post-url]
                        --------------------------------------------------------------------------------------------------------------------------------------------------
                    x	 WordPress   |   fa-wordpress      |   #003c56   |   https://wordpress.com/press-this.php?u=[post-url]&t=[post-title]&s=[post-desc]&i=[post-img]
                        --------------------------------------------------------------------------------------------------------------------------------------------------
                    x	 Pocket      |   fa-getpocket      |   #ef4056   |   https://getpocket.com/save?url=[post-url]&title=[post-title]
                        --------------------------------------------------------------------------------------------------------------------------------------------------
                */

                // console.log($_sb);

            }).call(this, e);
        }

        if (($(e.target).hasClass("fib-basket")) || ($(e.target).parents(".fib-basket").length > 0)) {

            e.preventDefault();
            var $pid = $(this).attr("data-pid");
            var $req = {};
            $req.hinzufuegen = $pid;
            $req.anzahl = 1;
            $req.nc = $.now();

            var $btn = $(this);
            $btn.find(".fib-working").toggleClass("d-none", false);

            $.ajax(
                {
                    data: $req,
                    type: "POST",
                    url: "/ajax.php",
                    cache: false,
                    success: function ($rsp) {
                        if (typeof $rsp.bsum != "undefined") {
                            var $_bsf = $("#basket_sum_positions");
                            var $_bs = parseInt($rsp.bsum);
                            $_bs = (isNaN($_bs)) ? 0 : $_bs;
                            $_bsf.toggleClass("d-none", ($_bs === 0));
                            $_bsf.text($_bs);
                        }
                        if (typeof $rsp.fsum != "undefined") {
                            var $_bsf = $("#favs_sum_positions");
                            var $_bs = parseInt($rsp.fsum);
                            $_bs = (isNaN($_bs)) ? 0 : $_bs;
                            $_bsf.toggleClass("d-none", ($_bs === 0));
                            $_bsf.text($_bs);
                        }

                        setTimeout(function () {
                            $btn.find(".fib-working").toggleClass("d-none", true);
                        }, 400);
                    }
                });
        }

        if (($(e.target).hasClass("fib-delete")) || ($(e.target).parents(".fib-delete").length > 0)) {

            e.preventDefault();
            var $pid = $(this).attr("data-pid");
            var $req = {};
            $req.faventfernen = $pid;
            $req.anzahl = 99999;
            $req.nc = $.now();

            var $btn = $(this);
            $btn.find(".fib-working").toggleClass("d-none", false);

            $.ajax(
                {
                    data: $req,
                    type: "POST",
                    url: "/ajax.php",
                    cache: false,
                    success: function ($rsp) {
                        // window.location.href='/merkzettel.html?nc='+($.now());
                        window.location.href = '/mein-account.html?seite=merkzettel&nc=' + ($.now());

                    }
                });
        }

    });

    $(".produkt-button-gross").each(function () {
        var $target = ($(this).parents("a").length > 0) ? $(this).parents("a") : $(this);

        $target.on("click", function (e) {
            if (($(e.target).hasClass("pbg-fav")) || ($(e.target).parents(".pbg-fav").length > 0)) {
                e.preventDefault();
                var $btn = $(this);
                $btn.find(".fib-working").toggleClass("d-none", true);
                var $fav = $(this).find(".pbg-fav");
                $fav.toggleClass("active");
                var $active = ($fav.hasClass("active"));
                var $pid = (typeof $(this).attr("data-pid") != "undefined") ? $(this).attr("data-pid") : $(this).find(".produkt-button-gross").attr("data-pid");
                var $req = {};
                if ($active) {
                    $req.favhinzufuegen = $pid;
                    $req.anzahl = 1;
                } else {
                    $req.faventfernen = $pid;
                    $req.anzahl = 99999;
                }
                $req.nc = $.now();

                $.ajax(
                    {
                        data: $req,
                        type: "POST",
                        url: "/ajax.php",
                        cache: false,
                        success: function ($rsp) {
                            if (typeof $rsp.bsum != "undefined") {
                                var $_bsf = $("#basket_sum_positions");
                                var $_bs = parseInt($rsp.bsum);
                                $_bs = (isNaN($_bs)) ? 0 : $_bs;
                                // $_bsf.toggleClass("d-none", ($_bs === 0));
                                $_bsf.text($_bs);
                            }
                            if (typeof $rsp.fsum != "undefined") {
                                var $_bsf = $("#favs_sum_positions");
                                var $_bs = parseInt($rsp.fsum);
                                $_bs = (isNaN($_bs)) ? 0 : $_bs;
                                $_bsf.toggleClass("d-none", ($_bs === 0));
                                $_bsf.text($_bs);

                            }
                        }
                    });
            }
            if (($(e.target).hasClass("pbg-basket")) || ($(e.target).parents(".pbg-basket").length > 0)) {
                e.preventDefault();
                var $bas = $(this).find(".pbg-basket");
                $bas.toggleClass("active");
                var $active = ($bas.hasClass("active"));
                var $pid = (typeof $(this).attr("data-pid") != "undefined") ? $(this).attr("data-pid") : $(this).find(".produkt-button-gross").attr("data-pid");
                var $dataAnzahl = $(this).attr("data-anzahl");
                var $req = {};
                if ($active) {
                    $req.hinzufuegen = $pid;
                    $req.anzahl = $dataAnzahl;
                } else {
                    $req.entfernen = $pid;
                    $req.anzahl = 99999;
                }
                $req.nc = $.now();
                $.ajax(
                    {
                        data: $req,
                        type: "POST",
                        url: "/ajax.php",
                        cache: false,
                        success: function ($rsp) {
                            if (typeof $rsp.bsum != "undefined") {
                                pref = (typeof pref == "undefined") ? '' : pref;
                                src = (typeof src == "undefined") ? './warenkorb.html' : src;
                                var $_bsf = $("#basket_sum_positions");
                                var $_bs = parseInt($rsp.bsum);
                                if ($_bs > 0) {
                                    $_bs = (isNaN($_bs)) ? 0 : $_bs;
                                    $("#basket-main-holder").empty();
                                    $('#basket-main-holder').load(src + ' #' + pref + 'basket-main', function () {
                                        $pe.basket.init();
                                    });
                                } else {
                                    $('#basket-div-holder').empty();
                                    $('#basket-main').load(src + ' #' + pref + 'leer-warenkorb', function () {
                                        $pe.basket.init();
                                    });
                                }
                                $("#preis-sum-holder").empty();
                                $('#preis-sum-holder').load(src + ' #' + pref + 'preis-sum', function () {
                                    $pe.basket.init();
                                });

                                $_bsf.text($_bs);
                                $_bsf.attr('preis-sum-attr', $_bs);
                                $("#preis-sum").text($rsp.psum);
                                $_bsf.toggleClass("d-none", ($_bs === 0));
                            }
                            if (typeof $rsp.fsum != "undefined") {
                                var $_bsf = $("#favs_sum_positions");
                                var $_bs = parseInt($rsp.fsum);
                                $_bs = (isNaN($_bs)) ? 0 : $_bs;
                                // $_bsf.toggleClass("d-none", ($_bs === 0));
                                $_bsf.text($_bs);
                            }
                        }
                    });

            }
        });

    });

    $("#newpassword").unbind().click(function (e) {
        e.preventDefault();
        var $sss = $('input#sss').val();
        var $mail = $('input.name').val();
        var $nail = $('input[name="nrepeat"]').val();
        var $capt = $('input.captcha').val();
        var $captA = $('input.captchaA').val();
        // console.log('capt: ' + $capt);
        // console.log('captA: ' + $captA);

        if ($mail == '') {
            alert("Fehler: Keine E-Mail-Adresse eingegeben");
        } else if ($capt == '') {
            alert("Fehler: Spam-Schutz-Code nicht eingegeben");
        } else if ($capt != $captA) {
            alert("Fehler: Die Sicherheitsfrage wurde falsch beantwortet");
        } else if ($mail != $nail) {
            alert("Fehler: Die eingegebenen E-Mail-Adressen stimmen nicht überein");
        } else if (!$('input[name="consent"]').is(":checked")) {
            alert("Fehler: Die Checkbox wurde nicht angehakt");
        } else {
            $req = {};
            $req.mail = $mail;
            $req.captcha = $capt;
            $req.nc = $.now();

            $peCMD("reset_password", $req,
                {
                    timeout: 6000,
                    success: function ($rsp) {
                        var _e = false;
                        var _m = false;
                        if (typeof $rsp.error != "undefined") {
                            _e = parseInt($rsp.error);
                            if (!isNaN(_e)) {
                                if (_e == 2) {
                                    _m = true;
                                    alert("Der Account wurde noch nicht aktiviert. Bestätigen Sie bitte erst Ihre Mail-Adresse mit dem Link, den wir Ihnen zugesendet haben, oder registrieren Sie sich mit derselben E-Mail-Adresse neu.");
                                } else if (_e == 3) {
                                    _m = true;
                                    alert("Der Account hat derzeit keine berechtigung zum einloggen. Bitte wenden Sie sich an den Support.");
                                }
                            }
                        }
                        var _s = (typeof $rsp.success != "undefined") ? parseInt($rsp.success) : 0;
                        _s = (isNaN(_s)) ? 0 : _s;
                        if (_s < 1) {
                            if (!_m) {
                                alert("Das Passwort kann derzeit nicht zurückgesetz werden. Vielleicht liegt ein Fehler in der Schreibweise der E-Mail-Adresse vor.");
                            }
                        } else {
                            alert("Das hat geklappt. Du solltest innerhalb der nächsten 2 bis maximal 30 Minuten einen Link zum Zurücksetzen des Passwortes per E-Mail bekommen. (Sieh bitte ggf. auch im Ordner Spamverdacht nach.)");
                        }
                    },
                    error: function (w, t, f) {
                        alert("Das Passwort kann derzeit nicht zurückgesetz werden. Prüfe bitte deine Internetverbindung.");
                    }
                });
        }
        return false;
    });


    if ($("#ordergostep3").length > 0) {
        setInterval(function () {
                $("#ordergostep3").toggleClass("inactive", $('input[type="checkbox"].akzeptieren').not($('input[type="checkbox"].akzeptieren:checked')).length > 0);
            },
            250);
    }

    $(".new-order-radios").unbind().click(function () {
        $(".new-order-radios").not($(this)).find('input')
            .attr('checked', false)
        $(this).find('input')
            .attr('checked', true)
        $(".indi-order-type")
            .toggleClass("bad", false)
            .toggleClass("good", true);

        var $req = {};
        $req.type = $(this).attr("data-type");
        $peCMD("session_ordertype_set", $req,
            {
                success: function ($rsp) {
                }
            });
    });

    $("#sdjobstatusmails").unbind().change(function () {
        var $toggle = $(this);
        var $active = $toggle.is(":checked");
        var $req = {"active": $active};
        $peCMD("jobstatus_toggle", $req,
            {
                success: function ($rsp) {
                }
            });
    });

    $(".invoice-address-adder").unbind().click(function () {
        var $btn = $(this);
        if (!$btn.hasClass("working")) {
            $btn.toggleClass("working", true);
            var $wrap = $btn.parent();
            //	$wrap.toggleClass("aclf-flip",true);
            setTimeout(function () {
                    window.location = '/mein-account.html?seite=stammdaten&b=re'; // block = rechnungen
                },
                1 /* 000 */);
        }
    });

    // $(".aclf-address-row")

    $(".delivery-address-adder").unbind().click(function () {
        var $btn = $(this);
        if (!$btn.hasClass("working")) {
            $btn.toggleClass("working", true);
            var $wrap = $btn.parent();
            //	$wrap.toggleClass("aclf-flip",true);
            // instant, async (threaded) (non site blocking)
            setTimeout(function () {
                    window.location = '/mein-account.html?seite=stammdaten&b=li'; // block = lieferungen
                },
                1 /* 000 */);
        }
    });

    $(".basket-edit-button").unbind().click(function () {
        var $btn = $(this);
        if (!$btn.hasClass("working")) {
            $btn.toggleClass("working", true);
            var $wrap = $btn.parent();
            //	$wrap.toggleClass("aclf-flip",true);
            // instant, async (threaded) (non site blocking)
            setTimeout(function () {
                    window.location = '/warenkorb.html'; // block = lieferungen
                },
                1 /* 000 */);
        }
    });

    $(".auftragsdaten-aendern-button").unbind().click(function () {
        var $btn = $(this);
        if (!$btn.hasClass("working")) {
            $btn.toggleClass("working", true);
            var $wrap = $btn.parent();
            //	$wrap.toggleClass("aclf-flip",true);
            // instant, async (threaded) (non site blocking)
            setTimeout(function () {
                    window.location = '/mein-account.html?seite=neuer-auftrag'; // block = lieferungen
                },
                1 /* 000 */);
        }
    });

    $(".acc21btn-delacc").unbind().click(function () {
        if (confirm("Möchtest Du Dein Benutzerkonto wirklich löschen?")) {
            var $req = {"nc": $.now()};
            $peCMD("account_delete", $req,
                {
                    success: function ($rsp) {
                        window.location = $(".tbb-logout a").attr("href");
                    }
                });
        }
    });

    $(".pass_old,.pass_new,.pass_new_repeat").on("blur", function () {
        setTimeout(function () {
            var $foc = false;
            $foc = ($foc) ? true : $(".pass_old").is(":focus");
            $foc = ($foc) ? true : $(".pass_new").is(":focus");
            $foc = ($foc) ? true : $(".pass_new_repeat").is(":focus");

            if (!$foc) {
                var $noc = true;
                if ($(".pass_old").val() != "") {
                    $noc = false;
                }
                if ($(".pass_new").val() != "") {
                    $noc = false;
                }
                if ($(".pass_new_repeat").val() != "") {
                    $noc = false;
                }

                if ($noc) {
                    $(".pass_old").attr({"placeholder": "Passwort ändern"});
                    $(".pass_new").parents(".logingroup").toggleClass("d-none", true);
                    $(".pass_new_repeat").parents(".logingroup").toggleClass("d-none", true);
                }
            }
        }, 100);
    });

    if ($(".validate").length > 0) {
        setInterval(function () {
                if ($(".validate .iban-row.has-error").length > 0) {
                    var $_ir = $(".iban-row");
                    if ($_ir.find("input").val() == "") {
                        // empty iban is not invalid, it's just empty.
                        $_ir.removeClass("has-error");
                        $_ir.find("input.error").removeClass("error");
                        $_ir.find("span.form-error").remove();
                    }
                }
            },
            100);

        $(".validate").submit(function (e) {
            if ("preventDefault" in e) {
                e.preventDefault();
            }
            return false;
        });

        $(".container a").click(function (e) {
            $(".validate").submit();

            if ($(".validate .iban-row.has-error").length > 0) {
                var $_ir = $(".iban-row");
                if ($_ir.find("input").val() == "") {
                    // empty iban is not invalid, it's just empty.
                    $_ir.removeClass("has-error");
                    $_ir.find("input.error").removeClass("error");
                    $_ir.find("span.form-error").remove();
                }
            }

            if ($(".validate .error").length > 0) {
                if ("preventDefault" in e) {
                    e.preventDefault();
                }
                alert("Korrigieren Sie bitte erst die Eingabefehler auf der aktuellen Seite.\nVielen Dank!");
                return false;
            }

        });
    }

    $(".invo2newjob").unbind("click").click(function () {
        var $wrap = $(this).parents(".kunde-graubox");
        var $_ovr = $("<div/>");
        $wrap.css({"overflow": "hidden"});
        $_ovr.css({"position": "absolute"});
        $_ovr.css({"left": "0"});
        $_ovr.css({"top": "0"});
        $_ovr.css({"width": "100%"});
        $_ovr.css({"height": "100%"});
        $_ovr.css({"background-image": "url(/img/wait.gif)"});
        $_ovr.css({"background-repeat": "no-repeat"});
        $_ovr.css({"background-position": "center center"});
        $_ovr.css({"background-size": "86px 22px"});
        $_ovr.css({"background-color": "#000000"});
        $_ovr.css({"opacity": "0.5"});
        $_ovr.css({"font-size": "18pt"});
        $_ovr.css({"font-weight": "bold"});
        $_ovr.css({"text-align": "center"});
        $_ovr.css({"color": "white"});
        $_ovr.css({"line-height": "70px"});
        $_ovr.text("Bitte warten...");
        $wrap.append($_ovr);

        // load order into basket
        $req = {};
        $req.oid = $wrap.attr("data-oid");

        window._xhrIsDone = false;

        $peCMD("ordertobasket", $req,
            {
                success: function ($rsp) {
                    window._xhrIsDone = true;
                }
            });

        window._xhrOnComplete = setInterval(function () {
            if (window._xhrIsDone) {
                window.location.href = '/mein-account.html?seite=neuer-auftrag';
                clearInterval(window._xhrOnComplete);
            }
        }, 1000);

    });

    window.repricing_buttons_bind = function () {
        $("#pricetable .bpp_btn").click(function () {
            var $preisliste_alt = $(".mobi-hidden .preistabelle-anzeige");
            var $_button = $(this);

            $(".preislisten_produkt_box.mobi-hidden .bpp_btn").unbind();

            $req = {};
            $req.setstandort = 1;
            $req.standort = $(this).attr("data-branch");

            $.ajax(
                {
                    url: './ajax.php',
                    type: 'POST',
                    cache: false,
                    data: $req,

                });
        });

        $(".preislisten_produkt_box.mobi-only .bpp_btn").click(function () {
            var $preisliste_alt = $(".mobi-only .preistabelle-anzeige");
            var $_button = $(this);

            $(".preislisten_produkt_box.mobi-only .bpp_btn").unbind();

            $req = {};
            $req.setstandort = 1;
            $req.standort = $(this).attr("data-branch");

            $.ajax(
                {
                    url: './ajax.php',
                    type: 'POST',
                    cache: false,
                    data: $req,
                    success: function (data) {
                        $.get(window.location.href, function (a) {
                            var $preisliste_neu = $(a).find(".mobi-only .preistabelle-anzeige");

                            if ($preisliste_neu.length > 0) {

                                $preisliste_alt.fadeOut(200);
                                $preisliste_neu.hide();
                                $preisliste_neu.insertBefore($preisliste_alt);
                                //	$preisliste_neu.toggleClass("row",true);
                                //	$preisliste_neu.toggleClass("preisleistungen_produkt");

                                $(".mobi-only .bpp_btn").toggleClass("active", false);

                                setTimeout(function () {
                                    $preisliste_neu.fadeIn(200);
                                    $_button.toggleClass("active", true);
                                    setTimeout(function () {
                                        $preisliste_alt.remove();
                                        setTimeout(function () {
                                            window.repricing_buttons_bind();
                                        }, 50);
                                    }, 300);
                                }, 200);

                            }
                        });
                    }
                });
        });
    };

    window.repricing_buttons_bind();

    $(document).on("mousedown touchstart", function (e) {
        if (($(e.target).attr("id") == "togglenotify") || ($(e.target).parent().attr("id") == "togglenotify")) {

            if ($(e.target).attr("id") != "togglenotifybox") {
                var $trg = $("#togglenotifybox");
                if ($trg.length > 0) {
                    $trg.attr({"id": "togglenotifyboxbye"}).fadeOut(250);
                    setTimeout(function () {
                        $trg.remove();
                    }, 500);
                } else {
                    var $btn = $("#togglenotify");
                    $btn.css({"position": "relative"});
                    var $trg = $("<div/>");
                    $trg.attr({"id": "togglenotifybox"});
                    $trg.css({
                        /*			"border":"1px solid #248",		*/
                        "border-radius": "3px",
                        "position": "absolute",
                        "min-height": "10px",
                        "width": "260px",
                        "right": "-30px",
                        "top": "50px"
                    });

                    var wh = window.location.href;

                    var $btn1 = $('<a/>').attr({"href": wh + "&action=wait1w"}).addClass("hrefbtn2019 green");
                    $btn1.html('... einer Woche <i class="fa fa-check check-active"></i>');
                    $trg.append($btn1);

                    var $btn2 = $('<a/>').attr({"href": wh + "&action=wait2w"}).addClass("hrefbtn2019 blue");
                    $btn2.html('... zwei Wochen <i class="fa fa-check"></i>');
                    $trg.append($btn2);

                    var $btn3 = $('<a/>').attr({"href": wh + "&action=wait1m"}).addClass("hrefbtn2019 blue");
                    $btn3.html('... einem Monat <i class="fa fa-check"></i>');
                    $trg.append($btn3);

                    var $btn4 = $('<a/>').attr({"href": wh + "&action=wait2m"}).addClass("hrefbtn2019 blue");
                    $btn4.html('... zwei Monaten <i class="fa fa-check"></i>');
                    $trg.append($btn4);

                    var $btn5 = $('<a/>').attr({"href": wh + "&action=waitoff"}).addClass("hrefbtn2019 red");
                    $btn5.html('Erinnerung ausschalten <i class="fa fa-check"></i>');
                    $trg.append($btn5);

                    $btn.append($trg);
                }

            }
        } else if (($(e.target).attr("id") != "togglenotifybox") && ($(e.target).parents('[id="togglenotifybox"]').length < 1)) {
            var $trg = $("#togglenotifybox");
            if ($trg.length > 0) {
                $trg.attr({"id": "togglenotifyboxbye"}).fadeOut(250);
                setTimeout(function () {
                    $trg.remove();
                }, 500);
            }
        }

    });


    if ($("#iframe").length > 0) {
        /*
        if (navigator.geolocation)
        {
            navigator.geolocation.getCurrentPosition(window.showPosition);
        }
        */
    }

    $("#invoice-zipcode").keyup(function () {
        var $zip = $(this).val();
        if ($zip.length == 5) {
            window.pe.tools.zip_to_city($zip, function () {
                if (typeof this.city !== "undefined") {
                    $("#invoice-city").val(this.city);
                    $("#invoice-city").change();
                    $("#invoice-city").keyup();
                }
            });
        } else {
            $("#invoice-city").val("");
            $("#invoice-city").change();
        }
    });

    function buildRequestStringData(form) {
        var select = form.find('select'),
            input = form.find('input'),
            requestString = '{';
        for (var i = 0; i < select.length; i++) {
            requestString += '"' + $(select[i]).attr('name') + '": "' + $(select[i]).val() + '",';
        }
        if (select.length > 0) {
            requestString = requestString.substring(0, requestString.length - 1);
        }
        for (var i = 0; i < input.length; i++) {
            if ($(input[i]).attr('type') !== 'checkbox') {
                requestString += '"' + $(input[i]).attr('name') + '":"' + $(input[i]).val() + '",';
            } else {
                if ($(input[i]).is(':checked')) {
                    requestString += '"' + $(input[i]).attr('name') + '":"' + $(input[i]).val() + '",';
                }
            }
        }
        if (input.length > 0) {
            requestString = requestString.substring(0, requestString.length - 1);
        }
        requestString += '}';
        return requestString;
    }

    $(".button_angebot_2018,.button_auftrag_2018,#ordergostep2,#ordergostep2-un,#schritt3").click(function (e) {
        if ($(this).hasClass('ordergostep2')) {
            $(".verbindlich-check").click();
        } else if ($(this).hasClass('ordergostep2-un')) {
            $(".unverbindlich-check").click();
        }
        e.preventDefault();
        console.log($(".indicator.bad:visible").length);
        if ($(".indicator.bad:visible").length > 0) {
            alert("Bitte erst alle Pflichtangaben erledigen. Vielen Dank");
        } else {
            $.ajax({
                url: './ajax.php',
                type: 'POST',
                cache: false,
                data: {
                    "gast": 1,
                    "data": {
                        "email": $('#guest-infos input[type="email"]').val(),
                        "invoice": JSON.parse(buildRequestStringData($('#guest-invoice-addr-block'))),
                        "delivery": JSON.parse(buildRequestStringData($('#guest-delivery-addr-block')))
                    }
                },
                success: function () {
                    window.location = './mein-account.html?seite=neuer-auftrag&step=2';
                }
            });
        }
        return false;
    });

    $("#ordergostep1").click(function (e) {
        if ($(".indicator.bad:visible").length > 0) {
            alert("Bitte erst alle Pflichtangaben erledigen. Vielen Dank");
        } else {
            e.preventDefault();
            window.location = './mein-account.html?seite=neuer-auftrag';
            return false;
        }
    });


    $("#delivery-zipcode").keyup(function () {
        var $zip = $(this).val();
        if ($zip.length == 5) {
            window.pe.tools.zip_to_city($zip, function () {
                if (typeof this.city !== "undefined") {
                    $("#delivery-city").val(this.city);
                    $("#delivery-city").change();
                    $("#delivery-city").keyup();
                }
            });
        } else {
            $("#delivery-city").val("");
            $("#delivery-city").change();
        }
    });

    $(".select-default-invoice-address .aclf-address-row").unbind().click(function () {
        var $address_block = $(this).find(".data-address-boxes");
        var $address_indicator = $(this).find(".indicator");
        $(".select-default-invoice-address .data-address-boxes").not($address_block.toggleClass("selected", true)).toggleClass("selected", false);
        $(".select-default-invoice-address .indicator").not($address_indicator.toggleClass("good", true).toggleClass("d-none", false)).toggleClass("good", false).toggleClass("d-none", true);
        $address_indicator.toggleClass("bad", false);

        $req = {};
        $req.addrid = $address_block.attr("data-id");

        $peCMD("invoice_address_setdefault", $req,
            {
                success: function ($rsp) {
                    // console.log( $rsp );
                }
            });
    });

    $(".select-default-delivery-address .aclf-address-row").unbind().click(function () {
        var $address_block = $(this).find(".data-address-boxes");
        var $address_indicator = $(this).find(".indicator");

        $(".select-default-delivery-address .data-address-boxes").not($address_block.toggleClass("selected", true)).toggleClass("selected", false);
        $(".select-default-delivery-address .indicator").not($address_indicator.toggleClass("good", true).toggleClass("d-none", false)).toggleClass("good", false).toggleClass("d-none", true);

        $req = {};
        $req.addrid = $address_block.attr("data-id");

        $peCMD("delivery_address_setdefault", $req,
            {
                success: function ($rsp) {
                    // console.log( $rsp );
                }
            });
    });

    $(".offer2bin").unbind().click(function () {
        var $btn = $(this);
        if ($btn.hasClass("working")) {
            return false;
        }

        $btn.toggleClass("working", true);

        $btn.find("i")
            .toggleClass("ci-close", false)
            .toggleClass("ci-loadingner", true)
            .toggleClass("ci-loading", true);

        $req = {};
        $req.oid = $btn.attr("data-oid");

        $peCMD("delete_offer", $req,
            {
                success: function ($rsp) {
                    var $nc = ((btoa($.now())).replace(/\=/g, ''));
                    $nc = $nc.slice($nc.length - 5);
                    $nc = $nc.toLowerCase();
                    // window.location.href = '/mein-account.html?seite=aktuelle-auftraege&c=' + $nc;
                    window.location.href = '/mein-account.html?seite=aktuelle-auftraege';
                }
            });

    });

    $(".button_angebot,.button_auftrag").click(function (e) {
        if (window.basketCanProceed) // (window.location.hash == "#dev")
        {

            try {
                var basket_netto_price = parseFloat($(".basket_netto_price").data("price"));

                if (basket_netto_price < 50) {
                    e.preventDefault();

                    var url = window.location.href.split(":");
                    var protocol = url[0];
                    var domain = url[1].split("/")[2];
                    window.location.href = protocol + '://' + domain + '/mindermengen.html';
                }
            } catch (e) {
                console.log(e);
            }
        } else {
            e.preventDefault();

            var emsg = "Bitte erst die Pflichtangaben abarbeiten";

            try {
                if (typeof $("select.mietzeitraum") != "undefined") {
                    if ($("select.mietzeitraum").length > 0) {
                        if ($("select.mietzeitraum").val() == null) {
                            emsg = emsg + "\n- Preisstaffel (Mietzeitraum) fehlt";
                        }
                    }
                }

                if (typeof $("select.standort") != "undefined") {
                    if ($("select.standort").length > 0) {
                        if ($("select.standort").val() == null) {
                            emsg = emsg + "\n- Ausgabestandort fehlt";
                        }
                    }
                }

                var basket_netto_price = parseFloat($(".basket_netto_price").data("price"));

                if (basket_netto_price <= 0) {
                    emsg = emsg + "\n- Warenkorb leer";
                }

            } catch (e) {
            }

            alert(emsg);
        }
    });
    setInterval(function () {
            $.each($("#add-rechnungsadresse input:not(:checkbox), #add-lieferadresse input, #invoice_address_box input:not(:checkbox), #delivery_address_box input"), function () {
                    var $_v = $(this).val();
                    var $iv = false;
                    var $in = $(this).parent().find(".indicator");
                    if ($in.length < 1) {
                        $in = $(this).parent().parent().find(".indicator");
                    }
                    if ($in.length < 1) {
                        $in = $(this).parent().parent().parent().find(".indicator");
                    }
                    var $rq = true;
                    if ($(this).hasClass("not-required")) {
                        $rq = false;
                    }
                    if (typeof $_v != "undefined") {
                        if ((!isNaN($_v)) && (!isNaN(parseInt($_v)))) {
                            if (parseInt($_v) > 0) {
                                $iv = true;
                            }
                        } else {
                            if ($_v != null) {
                                if (($_v != "") && ($_v.length > 2)) {
                                    console.log('1')
                                    $iv = true;
                                }
                            }
                        }
                    }
                    var _bad_delivery = false;
                    var ignore = false;
                    if (!$rq) {
                        $(this).css({'box-shadow': 'none'})
                        if ($in.hasClass("bad")) {
                            $in.removeClass("bad");
                        }
                        $in.css({"opacity": "0", "display": "none"});
                    } else {
                        if (($iv) && (!_bad_delivery)) {
                            $(this).css({"box-shadow": "0 0 3px 1px green"}).toggleClass("time_selection", true).toggleClass("ispositive", true);
                            if ($in.hasClass("bad")) {
                                $in.removeClass("bad");
                            }
                            if (!$in.hasClass("good")) {
                                $in.addClass("good");
                            }
                            $in.css({"opacity": "1", "display": "flex"});
                        } else {
                            if ($rq && !ignore) {
                                $(this).css({"box-shadow": "0 0 3px 1px red"}).toggleClass("time_selection", true).toggleClass("ispositive", false);
                                if ($in.hasClass("good")) {
                                    $in.removeClass("good");
                                }
                                if (!$in.hasClass("bad")) {
                                    $in.addClass("bad");
                                }
                                $in.css({"opacity": "1", "display": "flex"});
                            } else if (!ignore) {
                                if ($in.hasClass('indi_guest_mail')) {
                                    console.log($(this));
                                }
                                $(this).css({"box-shadow": "0 0 0 0 red"});
                                if ($in.hasClass("good")) {
                                    $in.removeClass("good");
                                }
                                if (!$in.hasClass("bad")) {
                                    $in.addClass("bad");
                                }
                                $in.css({"opacity": "0", "display": "none"});
                            }
                        }
                    }
                }
            )
            indi();
        },
        500);
    setInterval(function () {
            if ($(".warenkorbseite").length > 0) {
                $.each($(".warenkorbseite input:not(:radio),.warenkorbseite select, aside select"), function () {
                    // $.each($(".warenkorbseite input,.warenkorbseite select"), function () {
                    var $_v = $(this).val();
                    var $iv = false;
                    var $in = $(this).parent().find(".indicator");


                    if ($('.delivertimetoggle3').find('input').attr('checked') == 'checked') {
                            $('#deliverytimeselect2').removeClass('shadow-none');
                        } else {
                            $('#deliverytimeselect2').addClass('shadow-none');
                        }
                        if ($('.returntimetoggle3').find('input').attr('checked') == 'checked') {
                            $('#returntimeselect2').removeClass('shadow-none');
                        } else {
                            $('#returntimeselect2').addClass('shadow-none');
                        }

                        if ($in.length < 1) {
                            $in = $(this).parent().parent().find(".indicator");
                        }
                        if ($in.length < 1) {
                            $in = $(this).parent().parent().parent().find(".indicator");
                        }
                        var $rq = true;

                        if ($(this).hasClass("not-required")) {
                            $rq = false;
                        }
                        if ($(this).hasClass("validate-email")) {
                            var re = /\S+@\S+\.\S+/;
                            $iv = (re.test($_v)) ? true : $iv;
                        } else if (typeof $_v != "undefined") {
                            if ((!isNaN($_v)) && (!isNaN(parseInt($_v)))) {
                                if (parseInt($_v) > 0) {
                                    $iv = true;
                                }
                            } else {
                                if ($_v != null) {
                                    // console.log(this,$_v);
                                    if (($_v != "") && ($_v.length > 2)) {
                                        $iv = true;
                                    }
                                }
                            }
                        }
                        var _bad_delivery = false;

                        if ($(this).hasClass("setausgabeart")) {
                            if ($('input[name="guest"]').val() == '1') {
                                if ($(this).val() == "deliveryBack") {
                                    if (!$('#invo2delivery').is(':checked')) {
                                        if ($(".guest-delivery-addr-block indicator.bad").length > 0) {
                                            _bad_delivery = true;
                                        }
                                    } else {
                                        if ($('.guest-invoice-addr-block indicator.bad').length > 0) {
                                            _bad_delivery = true;
                                        }
                                    }
                                }
                            } else if ($(this).hasClass('setausgabeart-aside')) {
                                // console.log($(this))
                            } else {
                                if ($(this).val() == "deliveryBack") {
                                    $(".select-default-delivery-address,.select-default-delivery-address-header").toggleClass("d-none", false);
                                    if ($(".select-default-delivery-address .indicator.good:visible").length < 1) {
                                        // Es gibt nur genau eine Lieferadresse, also setzen wir diese für die Lieferung automatisch auf aktiv
                                        // um den Kunden nicht beim Bestellvorgang zu stören
                                        if ($(".select-default-delivery-address .aclf-address-row").length >= 1) {
                                            $(".select-default-delivery-address .aclf-address-row:first").click();
                                        } else {
                                            _bad_delivery = true;
                                            $(".select-default-delivery-address").css({
                                                "border": "1px dashed red",
                                                "border-radius": "5px",
                                                "background": "rgba(255,0,0,0.2)",
                                                "padding-bottom": "20px"
                                            });
                                            $(".select-default-delivery-address").find(".aclf-address-row .indicator:first").toggleClass("good", false).toggleClass("bad", true).toggleClass("d-none", false);
                                        }
                                    }
                                    if ($('.addr-invoice.selected').length < 1) {
                                        $(".select-default-invoice-address").find(".aclf-address-row .indicator:first").toggleClass("good", false).toggleClass("bad", true).toggleClass("d-none", false);
                                    }
                                } else {
                                    // if one invoice address is available, chose it
                                    // if ($(".select-default-invoice-address .aclf-address-row").length == 1) {
                                    //     $(".select-default-invoice-address .aclf-address-row:first").click();
                                    // }
                                    if ($(".select-default-invoice-address .aclf-address-row").length >= 1) {
                                        if ($('.addr-invoice.selected').length < 1) {

                                            $(".select-default-invoice-address .aclf-address-row:first").click();
                                            $(".select-default-invoice-address").find(".aclf-address-row .indicator:first").toggleClass("good", true).toggleClass("bad", false).toggleClass("d-none", false);
                                        }
                                    }
                                    // otherwise disable next step, because invoice address is mandatory
                                    else {
                                        _bad_delivery = true;
                                        $(".select-default-invoice-address").css({
                                            "border": "1px dashed red",
                                            "border-radius": "5px",
                                            "background": "rgba(255,0,0,0.2)",
                                            "padding-bottom": "20px"
                                        });
                                        $(".select-default-invoice-address").find(".aclf-address-row .indicator:first").toggleClass("good", false).toggleClass("bad", true).toggleClass("d-none", false);
                                    }
                                    $(".select-default-delivery-address,.select-default-delivery-address-header").toggleClass("d-none", true);
                                }
                            }
                            if (!_bad_delivery) {
                                $(".select-default-delivery-address").find(".aclf-address-row .indicator.bad").toggleClass("bad", false).toggleClass("d-none", true);
                            }
                        }
                        var ignore = false;
                        if ($(this).attr('id') == 'deliverytimeselect2') {
                            ignore = $('.delivertimetoggle3').find('.fa.fa-icon').hasClass('fa-circle-thin');
                            // ignore = $('.delivertimetoggle3').find('input').attr('checked') == undefined;
                        }
                        if ($(this).attr('id') == 'returntimeselect2') {
                            ignore = $('.returntimetoggle3').find('.fa.fa-icon').hasClass('fa-circle-thin');
                            // ignore = $('.returntimetoggle3').find('input').attr('checked') == undefined;
                        }
                        // $(this).parent().append('<p>$rq: required: '+$rq+'</p>');
                        // $(this).parent().append('<p>$_v: $(this).val(): '+$_v+'</p>');
                        // $(this).parent().append('<p>$iv: valid: '+$iv+'</p>');
                        // $(this).parent().append('<p>_bad_delivery: '+_bad_delivery+'</p>');
                        // $(this).parent().append('<p>********************************</p>');
                        if (!$rq) {
                            $(this).css({'box-shadow': 'none'})
                        } else {
                            if (($iv) && (!_bad_delivery)) {
                                if ($('#abhol-radio-1' || 'abhol-radio-2').attr('checked') == 'checked') {
                                    $('#deliverytimeselect2').css({"box-shadow": "none !important"});
                                }
                                if ($('#return-radio-1' || 'return-radio-2').attr('checked') == 'checked') {
                                    $('#returntimeselect2').css({"box-shadow": "none !important"});
                                }
                                $(this).css({"box-shadow": "0 0 3px 1px green"}).toggleClass("time_selection", true).toggleClass("ispositive", true);
                                if ($in.hasClass("bad")) {
                                    $in.removeClass("bad");
                                }
                                if (!$in.hasClass("good")) {
                                    $in.addClass("good");
                                }
                                $in.css({"opacity": "1", "display": "flex"});
                            } else {
                                if ($rq && !ignore) {
                                    if ($('#abhol-radio-1' || 'abhol-radio-2').attr('checked') == 'checked') {
                                        $('#deliverytimeselect2').css({"box-shadow": "none"});
                                    }
                                    if ($('#return-radio-1' || 'return-radio-2').attr('checked') == 'checked') {
                                        $('#returntimeselect2').css({"box-shadow": "none"});
                                    }
                                    $(this).css({"box-shadow": "0 0 3px 1px red"}).toggleClass("time_selection", true).toggleClass("ispositive", false);
                                    if ($in.hasClass("good")) {
                                        $in.removeClass("good");
                                    }
                                    if (!$in.hasClass("bad")) {
                                        $in.addClass("bad");
                                    }
                                    $in.css({"opacity": "1", "display": "flex"});
                                } else if (!ignore) {
                                    if ($in.hasClass('indi_guest_mail')) {
                                        console.log($(this));
                                    }

                                    if ($('#abhol-radio-1' || 'abhol-radio-2').attr('checked') == 'checked') {
                                        $('#deliverytimeselect2').css({"box-shadow": "none"});
                                    }
                                    if ($('#return-radio-1' || 'return-radio-2').attr('checked') == 'checked') {
                                        $('#returntimeselect2').css({"box-shadow": "none"});
                                    }
                                    $(this).css({"box-shadow": "0 0 0 0 red"});
                                    if ($in.hasClass("good")) {
                                        $in.removeClass("good");
                                    }
                                    if (!$in.hasClass("bad")) {
                                        $in.addClass("bad");
                                    }
                                    $in.css({"opacity": "0", "display": "none"});
                                }
                            }
                        }
                        var $block = $('.auswahl-ausgabe-zeit,.auswahl-rueckgabe-zeit');
                        $.each($block, function () {
                            var $blockRadio = ($(this).find("input:radio:visible:checked").length > 0);
                            var $blockIndicator = $(this).find(".blockIndicator");
                            if (!$blockRadio) {
                                $blockIndicator
                                    .toggleClass("bad", true)
                                    .toggleClass("d-none", false);
                            } else {
                                $blockIndicator
                                    .toggleClass("d-none", true);
                            }
                        });


                        var $timechecks = $(".delivertimetoggle,.returntimetoggle");

                        $.each($timechecks, function () {
                            // var $active = ($(this).find(".fa-circle").length > 0);
                            var $active = ($(this).find("input:radio:checked").length > 0);
                            var $indicator = $(this).find(".indicator");
                            // lieferzeitraum
                            if (!$active) {
                                $indicator
                                    .toggleClass("good", false)
                                    .toggleClass("bad", false)
                                    .toggleClass("d-none", true);
                            } else {
                                var $selection = $(this).find(".time_selection");
                                if ($selection.length > 0) {
                                    if ($selection.hasClass("ispositive")) {
                                        $indicator
                                            .toggleClass("good", true)
                                            .toggleClass("bad", false)
                                            .toggleClass("d-none", false);
                                    } else {
                                        $indicator
                                            .toggleClass("good", false)
                                            .toggleClass("bad", true)
                                            .toggleClass("d-none", false);
                                    }

                                } else {
                                    $indicator
                                        .toggleClass("good", true)
                                        .toggleClass("bad", false)
                                        .toggleClass("d-none", false);
                                }
                            }

                        });

                    }
                )
                ;

                $("#ordergostep2").toggleClass("inactive", ($(".indicator.bad:visible").length > 0));
                $("#ordergostep2-un").toggleClass("inactive", ($(".indicator.bad:visible").length > 0));
            }
            indi();
        },
        500);
    if ($(".warenkorbseite").length > 0) {
        // console.log('*************************************************************************************');
        // console.log('1608 - Siet änderung');
        $(document).on('change', '.warenkorbseite input,.warenkorbseite select', function () {
            setTimeout(updateWarenkorb, 10);
        })

        function updateWarenkorb() {
            pref = (typeof pref == "undefined") ? '' : pref;
            src = (typeof src == "undefined") ? './mein-account.html?seite=neuer-auftrag' : src;
            $("#neuer-warenkorb-holder").load(src + ' #' + pref + 'neuer-warenkorb', function () {
                $pe.basket.init();
            });
        }
    }
    $(".dev-dss").unbind().click(function () {
        $.ajax({
            url: './ajax.php',
            type: 'POST',
            cache: false,
            data: {"devdss": 1},
            success: function (data) {
                $(".dev-dss").animate({"left": "100px"}, 300, 'swing', function () {
                    $(".dev-dss").css({"left": "85px"});
                });
            }
        });
    });

    $(".dev-dsl").unbind().click(function () {
        $.ajax({
            url: './ajax.php',
            type: 'POST',
            cache: false,
            data: {"devdsl": 1},
            success: function (data) {
                $(".dev-dsl").animate({"left": "100px"}, 300, 'swing', function () {
                    $(".dev-dsl").css({"left": "85px"});
                });
            }
        });
    });
})
;

window._cjexp = function () {
    return false;
    if (typeof window._cjexpired == "undefined") {
        if (typeof window._cjexpiv == "undefined") {
            if (typeof window._cjid != "undefined") {
                window._cjexpiv = setInterval(function () {
                        $.ajax(
                            {
                                url: "/ajax.php",
                                type: "POST",
                                cache: false,
                                data: {"gcjid": 1},
                                timeout: (15 * 1000),
                                success: function (rsp) {
                                    if (typeof window._cjexpired == "undefined") {
                                        if (typeof rsp.cjid != "undefined") {
                                            if (parseInt(rsp.cjid) != parseInt(window._cjid)) {
                                                window._cjexpired = true;

                                                var $body = $("body");
                                                var $overlay = $("<div/>");
                                                $overlay.css({
                                                    "position": "fixed",
                                                    "left": "0",
                                                    "top": "0",
                                                    "right": "0",
                                                    "bottom": "0"
                                                });
                                                $overlay.css({
                                                    "background-color": "rgba(0,0,0,0.85)",
                                                    "z-index": "9999999"
                                                });
                                                //	$overlay.css({"background-image":"url(/media/icon/128/wait2.gif"});
                                                $overlay.css({"background-position": "center center"});
                                                $overlay.css({"background-repeat": "no-repeat"});

                                                var $ot = $("<table>");
                                                var $otb = $("<tbody>").appendTo($ot);
                                                var $otr = $("<tr>").appendTo($otb);
                                                var $otd = $("<td>").appendTo($otr);

                                                $overlay.append($ot);

                                                $ot.attr({
                                                    "cellpadding": "0",
                                                    "cellspacing": "0",
                                                    "border": "0",
                                                    "width": "100%",
                                                    "height": "100%"
                                                });
                                                $ot.css({"width": "100%", "height": "100%"});

                                                $otd.css({"text-align": "center", "vertical-align": "middle"});
                                                $otd.css({"font-family": "Arial,Helvetica,Open Sans,MS Sans Serif"});
                                                $otd.css({"font-size": "1em"});
                                                $otd.css({"color": "rgba(255,255,255,0.80)"});
                                                $otd.css({"text-shadow": "0 0 3px black,0 0 2px black,0 0 1px black"});
                                                $otd.css({"text-rendering": "geometricPrecision"});
                                                //		$otd.css({"-webkit-text-stroke":"1px black"});

                                                $otd.html('Sitzung abgelaufen<br><a href="/warenkorb.html">Seite neu laden</a>');

                                                $body.css({"overflow": "hidden"});
                                                $body.append($overlay);

                                                clearInterval(window._cjexpiv);
                                            }
                                        }
                                    }
                                }
                            });
                    },
                    15000);
            }
        }
    }
};

window.basketCanProceed = false;

window.basketProceedableInterval = false;
window.basketProceedable = function () {
    if ($(".indicator.good:visible").length > 0) {
        if ($(".indicator.bad:visible").length < 1) {
            window.basketCanProceed = true;
            return true;
        }
    }

    var $mz = $("select.mietzeitraum");
    var $so = $("select.standort");
    var $np = $("td.basket_netto_price");

    if ($np.length > 0) {
        $np = parseFloat($np.attr("data-price"));
    } else {
        $np = 0;
    }

    $(".button_angebot,.button_auftrag").fadeIn();

    if (($mz.length > 0) && ($so.length > 0)) {
        var $proceed = true;

        if (!$mz.val()) {
            $proceed = false;
        }
        if (!$so.val()) {
            $proceed = false;
        }
        if ($np <= 0) {
            $proceed = false;
        }

        if (!$proceed) {
            //	$(".button_angebot,.button_auftrag").hide();
            window.basketCanProceed = false;
        } else {
            //	$(".button_angebot,.button_auftrag").fadeIn();
            window.basketCanProceed = true;
        }
    }

    if (!window.basketProceedableInterval) {
        window.basketProceedableInterval = setInterval(window.basketProceedable, 200);
    }
};

$peCMD = function ($cmd, $data, $params) {
    if (typeof $data != typeof {}) {
        $data = {};
    }
    if (typeof $params != typeof {}) {
        $params = {};
    }
    if (typeof $params.data != typeof $data) {
        $params.data = $data;
    }

    if (Object.keys($data).length > 0) {
        $.each($data, function ($_dK, $_dC) {
            $params.data[$_dK] = $_dC;
        });
    }

    $params.data.nc = $.now();
    $params.data.cmd = $cmd;
    $params.url = "/ajax.php";
    $params.type = "POST";
    $params.cache = false;
    $params.caching = false;
    return $.ajax($params);
};

$(document).ready(function () {
    $(".show_more_similar").click(function (e) {
        e.preventDefault;
        $(".show_more_similar").hide();
        $(".similar_hidden").fadeIn();
        window.fixmenuheight.call();
    });

    window.basketProceedable();


    /* invoice addresses start */

    $("#newaddrinvoice").unbind().click(function () {
        if ($("#invoice_address_box .indicator.bad:visible").length > 0) {
            alert("Bitte erst alle Pflichtangaben erledigen. Vielen Dank");
        } else {
            var $btn = $(this);
            var $wrap = $btn.parents(".address-form");
            if (!$btn.hasClass("working")) {
                $btn.toggleClass("working", true);
                $btn.empty();
                $btn.css({"text-align": "center"});
                $btn.append($('<i/>').addClass("fa ci-loading ci-reload"));
                $btn.append($('<span/>').html("&nbsp; Speichern..."));
                $("input").attr({"readonly": "readonly", "disabled": "true"});
                $("select").attr({"readonly": "readonly", "disabled": "true"});
                $("textarea").attr({"readonly": "readonly", "disabled": "true"});

                $req = {};
                $req.nc = $.now();
                $req.firstname = $wrap.find('.lf21addr[name="firstname"]').val();
                $req.lastname = $wrap.find('.lf21addr[name="lastname"]').val();
                $req.company = $wrap.find('.lf21addr[name="company"]').val();
                $req.street = $wrap.find('.lf21addr[name="street"]').val();
                $req.zip = $wrap.find('.lf21addr[name="zip"]').val();
                $req.city = $wrap.find('.lf21addr[name="city"]').val();
                $req.phone = $wrap.find('.lf21addr[name="phone"]').val();
                $req.mobile = $wrap.find('.lf21addr[name="mobile"]').val();
                $req.iban = $wrap.find('.lf21addr[name="iban"]').val();

                $peCMD("invoice_address_new", $req,
                    {
                        cache: false,
                        success: function ($rsp) {
                            var $error = false;
                            if (typeof $rsp.error != "undefined") {
                                if (parseInt($rsp.error) > 0) {
                                    $error = true;
                                }
                            }
                            if (!$error) {
                                if ($("#invo2delivery").is(":checked")) {
                                    $req.nc = $.now();
                                    $peCMD("delivery_address_new", $req,
                                        {
                                            cache: false,
                                            success: function ($rsp) {
                                                var $error = false;
                                                if (typeof $rsp.error != "undefined") {
                                                    if (parseInt($rsp.error) > 0) {
                                                        $error = true;
                                                    }
                                                }
                                                if (!$error) {
                                                    setTimeout(function () {
                                                        window.location = window.location.href;
                                                    }, 1500);
                                                }
                                            }
                                        });
                                } else {
                                    setTimeout(function () {
                                        window.location = window.location.href;
                                    }, 1500);
                                }
                            } else {
                                setTimeout(function () {
                                    window.location = window.location.href;
                                }, 1500);
                            }
                        }
                    });

            }
        }
    });
    $(".addr-invoice").click(function () {
        var $av = $(this).val();
        $pe.basket.setausgabeart('self');

        var $btn = $(this);
        var $sss = $btn.closest('.address-h').siblings('.address-h');
        $sss.each(function () {
            // if (typeof special === "undefined") {
            $pe.basket.fixmini();
            // } else {
            //     $pe.basket.fixmini(special);
            // }
            $(this).find('.indicator').addClass('bad d-flex').removeClass('good d-none');
            $pe.basket.updateTimeFields();
            // if($( this ).find('.indicator')){
            //     $( this ).find('.indicator').addClass('bad, d-flex').removeClass('good d-none');
            // }
        });
        // for(var i = 0; i<$sss.length;i++){
        //     console.log($sss[i].find('.indicator'))
        // }
    })

    $(".addr-invoice .acc21btn-deladdress").unbind().click(function () {
        var $btn = $(this);
        var __errormsg = "Die Anschrift ist derzeit mit mindestens einem Job verbunden und kann nicht automatisch entfernt werden. Bitte wenden Sie sich an datenschutz@pro-event.net";
        if ($btn.hasClass("protected")) {
            // can not delete, already in use
            alert(__errormsg);
        } else if (!$btn.hasClass("working")) {
            $btn.toggleClass("working", true);
            $btn.find("i").toggleClass("ci-close", false);
            $btn.find("i").toggleClass("ci-reload", true);
            $btn.find("i").toggleClass("ci-loading", true);

            // local function
            var __peDeletionError = function () {
                // Little visual delay
                setTimeout(function () {
                    $btn.toggleClass("working", false);
                    $btn.find("i").toggleClass("ci-close", true);
                    $btn.find("i").toggleClass("ci-reload", false);
                    $btn.find("i").toggleClass("ci-loading", false);
                    setTimeout(function () {
                        alert(__errormsg);
                    }, 100);
                }, 500);
            };

            if (confirm("Soll die Adresse wirklich entfernt werden?")) {
                $peCMD("invoice_address_del", {"id": $btn.parent().attr("data-id")},
                    {
                        success: function ($rsp) {
                            var $error = false;
                            if (typeof $rsp.error != "undefined") {
                                if (parseInt($rsp.error) > 0) {
                                    $error = true;
                                    __peDeletionError();
                                }
                            }
                            if (!$error) {
                                $btn.closest('.address-h').parent().find('.address-h').children('.aclf-address-row').click();
                                console.log(window.location.href.indexOf("auftrag"));
                                if (window.location.href.indexOf("auftrag") > -1) {
                                    console.log($btn.closest('.address-h'));
                                    $btn.closest('.address-h').fadeOut();
                                    window.location = window.location.href;
                                } else {
                                    $btn.parent().fadeOut();
                                    window.location = window.location.href;
                                }
                            }
                        },
                        error: function (a, b, c) {
                            __peDeletionError();
                        }
                    });
            } else {
                $btn.removeClass("working");
                $btn.find("i").toggleClass("ci-close", true);
                $btn.find("i").toggleClass("ci-reload", false);
                $btn.find("i").toggleClass("ci-loading", false);
            }
        }
    });
    /* invoice addresses end */

    /* delivery addresses start */

    $("#newaddrdelivery").unbind().click(function () {
        if ($("#delivery_address_box .indicator.bad:visible").length > 0) {
            alert("Bitte erst alle Pflichtangaben erledigen. Vielen Dank");
        } else {
            var $btn = $(this);
            var $wrap = $btn.parents(".address-form");
            if (!$btn.hasClass("working")) {
                $btn.toggleClass("working", true);
                $btn.empty();
                $btn.css({"text-align": "center"});
                $btn.append($('<i/>').addClass("fa ci-loading ci-reload"));
                $btn.append($('<span/>').html("&nbsp; Speichern..."));
                $("input").attr({"readonly": "readonly", "disabled": "true"});
                $("select").attr({"readonly": "readonly", "disabled": "true"});
                $("textarea").attr({"readonly": "readonly", "disabled": "true"});

                $req = {};
                $req.firstname = $wrap.find('.lf21addr[name="firstname"]').val();
                $req.lastname = $wrap.find('.lf21addr[name="lastname"]').val();
                $req.company = $wrap.find('.lf21addr[name="company"]').val();
                $req.street = $wrap.find('.lf21addr[name="street"]').val();
                $req.zip = $wrap.find('.lf21addr[name="zip"]').val();
                $req.city = $wrap.find('.lf21addr[name="city"]').val();
                $req.phone = $wrap.find('.lf21addr[name="phone"]').val();
                $req.mobile = $wrap.find('.lf21addr[name="mobile"]').val();
                $req.iban = $wrap.find('.lf21addr[name="iban"]').val();

                $peCMD("delivery_address_new", $req,
                    {
                        success: function ($rsp) {
                            setTimeout(function () {
                                var $error = false;
                                if (typeof $rsp.error != "undefined") {
                                    if (parseInt($rsp.error) > 0) {
                                        $error = true;
                                    }
                                }
                                if (!$error) {
                                    // window.location = '/mein-account.html?_nc='+($.now());
                                    window.location = window.location.href;
                                }
                            }, 1500);
                        }
                    });
            }
        }
    });
    $(".addr-delivery .acc21btn-deladdress").unbind().click(function () {
        var $btn = $(this);


        var __errormsg = "Die Anschrift ist derzeit mit mindestens einem Job verbunden und kann nicht automatisch entfernt werden. Bitte wenden Sie sich an datenschutz@pro-event.net";

        if ($btn.hasClass("protected")) {
            // can not delete, already in use
            alert(__errormsg);
        } else if (!$btn.hasClass("working")) {
            $btn.toggleClass("working", true);
            $btn.find("i").toggleClass("ci-close", false);
            $btn.find("i").toggleClass("ci-reload", true);
            $btn.find("i").toggleClass("ci-loading", true);

            // local function
            var __peDeletionError = function () {
                // Little visual delay
                setTimeout(function () {
                    $btn.toggleClass("working", false);
                    $btn.find("i").toggleClass("ci-close", true);
                    $btn.find("i").toggleClass("ci-reload", false);
                    $btn.find("i").toggleClass("ci-loading", false);
                    setTimeout(function () {
                        alert(__errormsg);
                    }, 100);
                }, 500);
            };

            if (confirm("Soll die Adresse wirklich entfernt werden?")) {
                $peCMD("delivery_address_del", {"id": $btn.parent().attr("data-id")},
                    {
                        success: function ($rsp) {
                            var $error = false;
                            if (typeof $rsp.error != "undefined") {
                                if (parseInt($rsp.error) > 0) {
                                    $error = true;
                                    __peDeletionError();
                                }
                            }
                            if (!$error) {
                                $btn.closest('.address-h').parent().find('.address-h').children('.aclf-address-row').click();
                                console.log(window.location.href.indexOf("auftrag"));
                                if (window.location.href.indexOf("auftrag") > -1) {
                                    console.log($btn.closest('.address-h'));
                                    $btn.closest('.address-h').fadeOut();
                                    window.location = window.location.href;
                                } else {
                                    $btn.parent().fadeOut();
                                    window.location = window.location.href;
                                }
                            }
                        },
                        error: function (a, b, c) {
                            __peDeletionError();
                        }
                    });
            } else {
                $btn.removeClass("working");
                $btn.find("i").toggleClass("ci-close", true);
                $btn.find("i").toggleClass("ci-reload", false);
                $btn.find("i").toggleClass("ci-loading", false);
            }
        }
    });
    /* delivery addresses end */

});


window.showPosition = function (position) {
    var url = "https://maps.google.com/maps?f=q&amp;source=s_q&amp;hl=de&amp;geocode=&amp;q=from:%20" + position.coords.latitude + "%20" + position.coords.longitude + "%20to:%20Pro-Event+GmbH,+Neukirchen,+Deutschland&amp;sll=51.062113,7.948608&amp;sspn=3.30067,8.453979&amp;ie=UTF8&amp;hq=Pro-Event+GmbH,&amp;hnear=Neukirchen,+Wesel,+Nordrhein-Westfalen,+Deutschland&amp;cid=5825429767397949310&amp;ll=51.448123,6.559696&amp;spn=0.06419,0.150032&amp;z=13&amp;iwloc=A&amp;output=embed";
    var iframeName = "iframe";
    var $iframe = $('#' + iframeName);
    if ($iframe.length) {
        $new_iframe = $iframe.clone();
        $new_iframe.attr('src', url);
        $ift = $iframe.parent();
        $iframe.replaceWith($new_iframe);
        return false;
    }
    return true;
};

window.pe = {

    captcha:
        {
            init: function () {
                $("#captcha_reload").click(function () {
                    $("#captcha_image").attr({"src": "/captcha/securimage_show.php?nc=" + (Math.floor(Math.random() * 1000000000))});
                    $("#captcha_input").val("");
                });
            }
        },

    tools:
        {
            zip_to_city: function (zip, cb) {
                if (zip.length == 5) {
                    $.ajax({
                        url: '/ajax.php',
                        type: 'POST',
                        cache: false,
                        data: {"zip_info": zip},
                        success: function (data) {
                            cb.call(data);
                        }
                    });
                }
            }
        },

    fixbasket:
        {

            setto: function (pid, sum) {
                if (typeof pid === "undefined") {
                    return false;
                }
                if (typeof sum === "undefined") {
                    var sum = 1;
                }

                $.ajax({
                    url: '/ajax.php',
                    type: 'POST',
                    cache: false,
                    data: {
                        anpassen: pid,
                        anzahl: sum,
                        mode: "fix"
                    },

                    error: function () {
                        $(".failure").slideDown(1000, function () {
                            setTimeout(function () {
                                $(".failure").slideUp(1000);
                            }, 3000);
                        });
                    },

                    success: function (data) {
                        $.get(window.location.href, {}, function (rsp) {
                            $("#realbasket-view").replaceWith($(rsp).find("#realbasket-view"));
                            $pe.basket.setTriggers();
                        });
                    }
                });
            },

            delete: function (pid, sum) {
                if (typeof pid === "undefined") {
                    return false;
                }
                if (typeof sum === "undefined") {
                    var sum = 1;
                }

                $.ajax({
                    url: '/ajax.php',
                    type: 'POST',
                    cache: false,
                    data: {
                        entfernen: pid,
                        anzahl: sum,
                        mode: "fix"
                    },

                    error: function () {
                        $(".failure").slideDown(1000, function () {
                            setTimeout(function () {
                                $(".failure").slideUp(1000);
                            }, 3000);
                        });
                    },

                    success: function (data) {
                        $.get(window.location.href, {}, function (rsp) {
                            $("#realbasket-view").replaceWith($(rsp).find("#realbasket-view"));
                            $pe.basket.setTriggers();
                        });
                    }
                });
            },

            add: function (pid, sum) {
                if (typeof pid === "undefined") {
                    return false;
                }
                if (typeof sum === "undefined") {
                    var sum = 1;
                }

                $.ajax({
                    url: '/ajax.php',
                    type: 'POST',
                    cache: false,
                    data: {
                        hinzufuegen: pid,
                        anzahl: sum,
                        mode: "fix"
                    },

                    error: function () {
                        $(".failure").slideDown(1000, function () {
                            setTimeout(function () {
                                $(".failure").slideUp(1000);
                            }, 3000);
                        });
                    },

                    success: function (data) {
                        $.get(window.location.href, {}, function (rsp) {
                            $("#realbasket-view").replaceWith($(rsp).find("#realbasket-view"));
                            $pe.basket.setTriggers();
                        });
                    }
                });

            }

        },

    basket:
        {
            updatetimepickers: function () {
                // console.log('2247 - updatetimepickers');

                var $service = $(".setausgabeart").val();
                var $liefern = ($service == "deliveryBack");
                var $von = $("#ausgabedatum_feld").val();
                var $bis = $("#rueckgabedatum_wert").val();

                if ($(".select-order-options-basic").length > 0) {
                    $peCMD("get_time_settings", {"nc": $.now()},
                        {
                            "success": function ($rsp) {
                                // console.log('2258 - updatetimepickers - select-order-option-basic');
                                // console.log('2259 - updatetimepickers - $rsp: ' + $rsp);
                                if (typeof $rsp.settings != "undefined") {
                                    // console.log('2261 - updatetimepickers - $rsp.settings != "undefined"');
                                    var $ssd = $rsp.settings;
                                    var $tgs = $('.delivertimetoggle .fa');
                                    var $tg = $('.delivertimetoggle[data-id="' + ($ssd.timeblock) + '"] .fa:visible');
                                    $tgs.not($tg)
                                        .toggleClass("fa-circle", false)
                                        .toggleClass("fa-circle-thin", true);

                                    $tg.click();
                                    // console.log('2271 - $tg.click()');

                                    var $tgrs = $('.returntimetoggle .fa');
                                    var $tgr = $('.returntimetoggle[data-id="' + ($ssd.timeblock_return) + '"] .fa:visible');

                                    $tgrs.not($tg)
                                        .toggleClass("fa-circle", false)
                                        .toggleClass("fa-circle-thin", true);

                                    $tgr.click();
                                    // $("#deliverytimeselect2").val($ssd.timecustom);
                                    // $("#returntimeselect2").val($ssd.timecustom_return);
                                    if ($(".setausgabeart ").val() == 'deliveryBack') {
                                        $("#deliverytimeselect2").val(($ssd.timecustom == 9) ? 900 : ($ssd.timecustom == 930) ? 900 : $ssd.timecustom);
                                        $("#returntimeselect2").val(($ssd.timecustom_return == 9) ? 900 : ($ssd.timecustom_return == 930) ? 900 : $ssd.timecustom_return);
                                    } else {
                                        $("#deliverytimeselect2").val(($ssd.timecustom == 9) ? 930 : ($ssd.timecustom == 900) ? 930 : $ssd.timecustom);
                                        $("#returntimeselect2").val(($ssd.timecustom_return == 9) ? 930 : ($ssd.timecustom_return == 900) ? 930 : $ssd.timecustom_return);
                                    }

                                }
                            }
                        });

                }

                if ($liefern) {
                    $("#deliverytimelabel").html("Gew&uuml;nschter Lieferzeitraum");
                    $("#returntimelabel").html("Gew&uuml;nschter R&uuml;ckholungszeitraum");
                } else {
                    $("#deliverytimelabel").html("Gew&uuml;nschter Abholzeitraum");
                    $("#returntimelabel").html("Gew&uuml;nschter R&uuml;ckgabezeitraum");
                }

                $von = (("" + $von + ",").split(",")[0]).toLowerCase(); // wochentag des miet-beginns
                $bis = (("" + $bis + ",").split(",")[0]).toLowerCase(); // wochentag des miet-endes

                var $von_kurz = ($von == "sa");
                var $bis_kurz = ($bis == "sa");

                var $_dtp = $("#delivertimepicker");
                var $_dtp = $("#returntimepicker");

                var $standort = parseInt($("select.standort").val()); // standort
                var $_ds = $("#deliverytimeselect2"); // ausgabe-select
                var $_rs = $("#returntimeselect2"); // rueckgabe-select

                var $_dso = (typeof $_ds.attr("data-standort") == "undefined") ? 0 : parseInt($_ds.attr("data-standort"));
                var $_rso = (typeof $_rs.attr("data-standort") == "undefined") ? 0 : parseInt($_rs.attr("data-standort"));

                var $_dday = (typeof $_ds.attr("data-wochentag") == "undefined") ? "x" : ($_ds.attr("data-wochentag"));
                var $_rday = (typeof $_rs.attr("data-wochentag") == "undefined") ? "x" : ($_rs.attr("data-wochentag"));

                var $_dserv = (typeof $_ds.attr("data-service") == "undefined") ? "x" : ($_ds.attr("data-service"));
                var $_rserv = (typeof $_rs.attr("data-service") == "undefined") ? "x" : ($_rs.attr("data-service"));

                var $_d_render = false;
                var $_r_render = false;

                if ($_dso != $standort) {
                    $_d_render = true;
                }
                if ($von != $_dday) {
                    $_d_render = true;
                }
                if ($service != $_dserv) {
                    $_d_render = true;
                }

                if ($_rso != $standort) {
                    $_r_render = true;
                }
                if ($bis != $_rday) {
                    $_r_render = true;
                }
                if ($service != $_rserv) {
                    $_r_render = true;
                }

                window.__firstRenderTimers = ((typeof window.__firstRenderTimers == "undefined") ? false : window.__firstRenderTimers);
                var _fr = window.__firstRenderTimers;
                var $_d_render = ((!_fr) ? true : $_d_render);

                window.__firstRenderTimers = true;

                $(".delivertimetoggle1").toggleClass("d-none", (!$liefern));
                $(".delivertimetoggle2").toggleClass("d-none", (!$liefern));
                $(".returntimetoggle1").toggleClass("d-none", (!$liefern));
                $(".returntimetoggle2").toggleClass("d-none", (!$liefern));

                if ($liefern) {
                    // console.log('2371 - $(".delivertimetoggle3").click()');
                    //$(".delivertimetoggle3").click();
                    //$(".returntimetoggle3").click();
                }

                var $_hidedeliver = !(($standort == 1) && (!($("#ausgabedatum_feld").val() == "")));
                var $_hidereturn = !(($standort == 1) && (!($("#rueckgabedatum_wert").val() == "")));
                $(".auswahl-ausgabe-zeit").toggleClass("d-none", ($_hidedeliver));
                $(".auswahl-rueckgabe-zeit").toggleClass("d-none", ($_hidereturn));

                $(".auswahl-hinweis").toggleClass("d-none", !($_hidedeliver || $_hidereturn));

                if ($_d_render) {
                    $_ds.attr({"data-standort": $standort});
                    $_ds.attr({"data-wochentag": $von});
                    $_ds.attr({"data-service": $service});
                    if (($standort == 1) && (!($("#ausgabedatum_feld").val() == ""))) {
                        $_ds.empty();
                        if ($von == "sa") {
                            $_ds.append($("<option/>").attr({
                                "selected": "selected",
                                "value": "1000"
                            }).html("Samstags nur nach R&uuml;cksprache m&ouml;glich")).val("1000");
                        } else {
                            // tag unter der woche, da sonntag nicht auswählbar
                            $_ds.append($("<option/>").attr({
                                "selected": "selected",
                                "value": "0",
                                "disabled": true
                            }).html("kein Zeitraum ausgew&auml;hlt")).val("0");

                            if (!$liefern) {
                                // Selbstabholung
                                $_ds.append($("<option/>").attr({"value": "930"}).html("09:30 - 12:30 Uhr"));
                                $_ds.append($("<option/>").attr({
                                    "value": "1230",
                                    "disabled": true
                                }).html("12:30 - 14:00 Uhr (Pause)"));
                                $_ds.append($("<option/>").attr({"value": "1400"}).html("14:00 - 17:30 Uhr"));
                            } else {
                                // Lieferung
                                $_ds.append($("<option/>").attr({"value": "800"}).html("08:00 - 10:00 Uhr"));
                                $_ds.append($("<option/>").attr({"value": "1000"}).html("10:00 - 12:00 Uhr"));
                                $_ds.append($("<option/>").attr({"value": "1200"}).html("12:00 - 14:00 Uhr"));
                                $_ds.append($("<option/>").attr({"value": "1400"}).html("14:00 - 16:00 Uhr"));
                                $_ds.append($("<option/>").attr({"value": "1600"}).html("16:00 - 18:00 Uhr"));
                            }
                        }
                    }

                    if ($liefern) {
                        $('.delivery-aufpreis').show();
                    } else {
                        $('.delivery-aufpreis').hide();
                    }
                }

                if ($_r_render) {
                    $_rs.attr({"data-standort": $standort});
                    $_rs.attr({"data-wochentag": $bis});
                    $_rs.attr({"data-service": $service});

                    if (($standort == 1) && (!($("#rueckgabedatum_wert").val() == ""))) {
                        $_rs.empty();
                        if ($bis == "sa") {
                            $_rs.append($("<option/>").attr({
                                "selected": "selected",
                                "value": "1000"
                            }).html("Samstags nur nach R&uuml;cksprache m&ouml;glich")).val("1000");
                        } else {
                            // tag unter der woche, da sonntag nicht auswählbar
                            $_rs.append($("<option/>").attr({
                                "selected": "selected",
                                "value": "0",
                                "disabled": true
                            }).html("kein Zeitraum ausgew&auml;hlt")).val("0");

                            if (!$liefern) {
                                // Selbstabholung
                                $_rs.append($("<option/>").attr({"value": "930"}).html("09:30 - 12:30 Uhr"));
                                $_rs.append($("<option/>").attr({
                                    "value": "1230",
                                    "disabled": true
                                }).html("12:30 - 14:00 Uhr (Pause)"));
                                $_rs.append($("<option/>").attr({"value": "1400"}).html("14:00 - 17:30 Uhr"));
                            } else {
                                // Lieferung
                                $_rs.append($("<option/>").attr({"value": "800"}).html("08:00 - 10:00 Uhr"));
                                $_rs.append($("<option/>").attr({"value": "1000"}).html("10:00 - 12:00 Uhr"));
                                $_rs.append($("<option/>").attr({"value": "1200"}).html("12:00 - 14:00 Uhr"));
                                $_rs.append($("<option/>").attr({"value": "1400"}).html("14:00 - 16:00 Uhr"));
                                $_rs.append($("<option/>").attr({"value": "1600"}).html("16:00 - 18:00 Uhr"));
                            }
                        }
                    }

                    if ($liefern) {
                        $('.delivery-aufpreis').show();
                    } else {
                        $('.delivery-aufpreis').hide();
                    }

                }

            },

            init: function () {
                $("form.addtobasket").submit(function (e) {
                    var self = this;
                    e.preventDefault();

                    if ($(this).closest("form").hasClass("addequipment")) {
                        var $e = $(this).closest(".similar_product");
                        var $t = $(".pe-warenkorb:visible:first");

                        $(this).parent().parent().parent().find(".produkt-button-gross .basketadder-after").removeClass("d-none").find("d-none").removeClass("d-none");
                        $(this).addClass("d-none");

                        var $adding = $(this).closest(".similar_product");

                        var $target = $(".pe-icon.pe-warenkorb");

                        var $effect = $("<div />");
                        $effect.css({"position": "absolute", "z-index": "9999", "opacity": "1"});
                        $effect.css({"border": "2px solid green", "border-radius": "5px"});
                        $effect.css({"top": Math.floor($adding.offset().top - 1) + "px"});
                        $effect.css({"left": Math.floor($adding.offset().left - 1) + "px"});
                        $effect.css({"width": Math.floor($adding.width()) + "px"});
                        $effect.css({"height": Math.floor($adding.height()) + "px"});
                        $effect.css({"transition": "600ms all linear"});
                        $("body").append($effect);

                        $effect.css(
                            {
                                "top": Math.floor($target.offset().top - 1) + "px",
                                "left": Math.floor($target.offset().left - 1) + "px",
                                "width": Math.floor($target.width()) + "px",
                                "height": Math.floor($target.height()) + "px",
                                "opacity": "0.4"
                            });

                        setTimeout(function () {
                            $effect.css({"opacity": "0"});
                            setTimeout(function () {
                                $effect.remove();
                            }, 600);
                        }, 600);

                    } else if ($("#warenkorb_button_box").length < 1) {
                        $(this).parent().parent().parent().find(".produkt-button-gross .basketadder-after").removeClass("d-none").find("d-none").removeClass("d-none");
                        $(this).addClass("d-none");

                        var $adding = $(this).closest(".produkt-button-gross");

                        var $target = $(".pe-icon.pe-warenkorb");

                        var $effect = $("<div />");
                        $effect.css({"position": "absolute", "z-index": "9999", "opacity": "1"});
                        $effect.css({"border": "2px solid green", "border-radius": "5px"});
                        $effect.css({"top": Math.floor($adding.offset().top - 1) + "px"});
                        $effect.css({"left": Math.floor($adding.offset().left - 1) + "px"});
                        $effect.css({"width": Math.floor($adding.width()) + "px"});
                        $effect.css({"height": Math.floor($adding.height()) + "px"});
                        $effect.css({"transition": "600ms all linear"});
                        $("body").append($effect);

                        $effect.css(
                            {
                                "top": Math.floor($target.offset().top - 1) + "px",
                                "left": Math.floor($target.offset().left - 1) + "px",
                                "width": Math.floor($target.width()) + "px",
                                "height": Math.floor($target.height()) + "px",
                                "opacity": "0.4"
                            });

                        setTimeout(function () {
                            $effect.css({"opacity": "0"});
                            setTimeout(function () {
                                $effect.remove();
                            }, 600);
                        }, 600);
                    } else {
                        $("#warenkorb_button_box #wb_in_basket").removeClass("d-none");
                        $("#warenkorb_button_box .addtobasket").removeClass("d-none").addClass("d-none");
                    }
                    $("#product_sum_in_basket").text($(self).find("#anzahl").val());
                    $pe.basket.add($(self).find("#hinzufuegen").val(), $(self).find("#anzahl").val());
                });
                $("#warenkorb_button_box #wb_in_basket").click(function () {
                    $("#warenkorb_button_box .addtobasket").removeClass("d-none");
                    $("#warenkorb_button_box #wb_in_basket").removeClass("d-none").addClass("d-none");
                    $pe.basket.delete($("#warenkorb_button_box").find("#hinzufuegen").val(), 9999);
                });
                $pe.basket.setTriggers();
                setTimeout(function () {
                        // console.log('2583 - init - setTimeout');
                        $pe.basket.updatetimepickers();
                    },
                    100);
            },

            setTriggers: function () {
                $("div.basket-plus").unbind("click").click(function () {
                    $sss = Number($('.product-details input').val());
                    $('.product-details input').val($sss + 1)
                    $pe.basket.add($(this).unbind("click").attr("data-pid"), 1);
                });

                $("div.basket-minus").unbind("click").click(function () {
                    $sss = Number($('.product-details input').val());
                    $('.product-details input').val($sss - 1)
                    $pe.basket.delete($(this).attr("data-pid"), 1);
                });

                $("div.basket-delete").unbind("click").click(function () {
                    $pe.basket.delete($(this).attr("data-pid"), 9999999);
                });

                $("input.product-sum").unbind("change").change(function () {
                    $pe.basket.setto($(this).attr("data-pid"), $(this).val());
                });

                $("div.fixbasket-plus").unbind("click").click(function () {
                    $pe.fixbasket.add($(this).attr("data-pcid"), 1);
                });

                $("div.fixbasket-minus").unbind("click").click(function () {
                    $pe.fixbasket.delete($(this).attr("data-pcid"), 1);
                });

                $("div.fixbasket-cancel").unbind("click").click(function () {
                    $pe.fixbasket.setto($(this).attr("data-pcid"), 0);
                });

                $("div.fixbasket-cancelreverse").unbind("click").click(function () {
                    $pe.fixbasket.setto($(this).attr("data-pcid"), $(this).attr("data-reset"));
                });

                $("input.fixproduct-sum").unbind("change").change(function () {
                    $pe.fixbasket.setto($(this).attr("data-pcid"), $(this).val());
                });

                $(".btn-edcancel").unbind("click").on("click", function (e) {
                    if ($("button.btn-working").length < 1) {
                        $(this).toggleClass("btn-working", true);
                        $(".row-editor-save-cancel button").not($(this)).fadeOut(1000);
                        setTimeout(function () {
                            if (window.confirm("Möchten Sie wirklich alle Änderungen verwerfen? Auswirkung: Der Auftrag bleibt so wie er war, der Bearbeitungsmodus wird beendet und der Warenkorb wird zurückgesetzt.")) {
                                window.location.href = '/warenkorb.html?reset';
                            } else {
                                $(".row-editor-save-cancel button").toggleClass("btn-working", false).blur().show();
                                setTimeout(function () {
                                    window.alert("Daten verwerfen wurde abgebrochen.");
                                }, 500);
                            }
                        }, 1500);
                    } else {
                        $(this).blur();
                    }
                });

                $(".btn-edsave").unbind("click").on("click", function (e) {
                    if ($("button.btn-working").length < 1) {
                        $(this).toggleClass("btn-working", true);
                        $(".row-editor-save-cancel button").not($(this)).fadeOut(250);
                        setTimeout(function () {
                            if (window.confirm("Umsetzung aller Auftragsänderungen jetzt verbindlich beantragen?")) {
                                var $body = $("body");
                                var $overlay = $("<div/>");
                                $overlay.css({
                                    "position": "fixed",
                                    "left": "0",
                                    "top": "0",
                                    "right": "0",
                                    "bottom": "0"
                                });
                                $overlay.css({"background-color": "rgba(0,0,0,0.85)", "z-index": "9999999"});
                                $overlay.css({"background-image": "url(/media/icon/128/wait2.gif"});
                                $overlay.css({"background-position": "center center"});
                                $overlay.css({"background-repeat": "no-repeat"});

                                var $ot = $("<table>");
                                var $otb = $("<tbody>").appendTo($ot);
                                var $otr = $("<tr>").appendTo($otb);
                                var $otd = $("<td>").appendTo($otr);

                                $overlay.append($ot);

                                $ot.attr({
                                    "cellpadding": "0",
                                    "cellspacing": "0",
                                    "border": "0",
                                    "width": "100%",
                                    "height": "100%"
                                });
                                $ot.css({"width": "100%", "height": "100%"});

                                $otd.css({"text-align": "center", "vertical-align": "middle"});
                                $otd.css({"font-family": "Arial,Helvetica,Open Sans,MS Sans Serif"});
                                $otd.css({"font-size": "2em"});
                                $otd.css({"color": "rgba(255,255,255,0.80)"});
                                $otd.css({"text-shadow": "0 0 3px black,0 0 2px black,0 0 1px black"});
                                $otd.css({"text-rendering": "geometricPrecision"});
                                //		$otd.css({"-webkit-text-stroke":"1px black"});

                                $otd.html("&nbsp;&nbsp; Speichern ...");

                                $body.css({"overflow": "hidden"});
                                $body.append($overlay);

                                $req = {};
                                $req.updateorder = true;

                                $.ajax(
                                    {
                                        url: "/ajax.php",
                                        data: $req,
                                        type: "POST",
                                        cache: false,
                                        success: function ($rsp) {
                                            setTimeout(function () {
                                                    window._cjexpired = true;
                                                    $body.css({"overflow": "auto"});
                                                    $body.load("/warenkorb.html?gespeichert");
                                                    $overlay.remove();
                                                },
                                                1000);
                                        }
                                    });
                            } else {
                                $(".row-editor-save-cancel button").toggleClass("btn-working", false).blur().show();
                                setTimeout(function () {
                                    window.alert("Speicherung abgebrochen.");
                                }, 500);
                            }
                        }, 300);
                    } else {
                        $(this).blur();
                    }
                });

                $("select.mietzeitraum").unbind("change").change(function () {
                    var $mv = $(this).val();
                    console.log('mv: ' + $mv)
                    $pe.basket.setmietzeit($(this).val());
                    var $at = ($mv + "-").split("-")[1];
                    console.log('at: ' + $at);

                    // if ($("select.setausgabeart").length > 0) {
                    //     $("select.setausgabeart").val("deliveryBack");
                    //     $(".data_block_delivery").toggleClass("d-none", !($at == "1"));
                    //     $(".data_block_self").toggleClass("d-none", ($at == "1"));
                    //     $(".delivertimetoggle1").toggleClass("d-none", ($at == "1"));
                    //     $(".delivertimetoggle2").toggleClass("d-none", ($at == "1"));
                    //     $(".delivertimetoggle3").click();
                    //     $(".returntimetoggle1").toggleClass("d-none", ($at == "1"));
                    //     $(".returntimetoggle2").toggleClass("d-none", ($at == "1"));
                    //     $(".returntimetoggle3").click();
                    // }
                    if ($("select.setausgabeart").length > 0) {
                        if ($at == 1) {
                            $("select.setausgabeart").val("deliveryBack");
                        } else {
                            $("select.setausgabeart").val("self");
                        }
                        $(".data_block_delivery").toggleClass("d-none", !($at == "1"));
                        $(".data_block_self").toggleClass("d-none", ($at == "1"));
                        $(".delivertimetoggle1").toggleClass("d-none", !($at == "1"));
                        $(".delivertimetoggle2").toggleClass("d-none", !($at == "1"));
                        // $(".delivertimetoggle3").click();
                        $(".returntimetoggle1").toggleClass("d-none", !($at == "1"));
                        $(".returntimetoggle2").toggleClass("d-none", !($at == "1"));
                        // $(".returntimetoggle3").click();
                    }
                    if (window.location.href.indexOf("warenkorb") < 0) {
                        $date = $('#ausgabedatum_feld').val();
                        //$date.replace("-", ".");
                        //$date = '**, ' + $date;
                        window._____pdate = $date;
                        if (typeof window._____pdate != "undefined") {
                            $pe.basket.setPickupDate(window._____pdate);
                        }
                    }
                    $pe.basket.updatetimepickers();
                });
                $("#invo2delivery").unbind("change").change(function () {
                    if ($(this).prop("checked")) {
                        $('#guest-delivery-addr-block').hide();
                    } else {
                        $('#guest-delivery-addr-block').show();
                    }
                });

                $("select.setausgabeart").unbind("change").change(function () {
                    var $av = $(this).val();
                    $pe.basket.setausgabeart($av);
                    if ($av == "deliveryBack") {
                        $('#guest-delivery-addr').show();
                        if ($("#invo2delivery").prop("checked")) {
                            $('#guest-delivery-addr-block').hide();
                        } else {
                            $('#guest-delivery-addr-block').show();
                            $('#guest-delivery-addr-block').hide();
                        }
                    } else {
                        $('#guest-delivery-addr').hide();
                    }
                    if ($("select.mietzeitraum").length > 0) {
                        var $mv = $("select.mietzeitraum").val();
                        console.log('mv2: ' + $mv);
                        var $atp = ($mv + "-").split("-")[0];

                        $(".delivertimetoggle1").toggleClass("d-none", ($av == "self"));
                        $(".delivertimetoggle2").toggleClass("d-none", ($av == "self"));
                        $(".returntimetoggle1").toggleClass("d-none", ($av == "self"));
                        $(".returntimetoggle2").toggleClass("d-none", ($av == "self"));

                        if ($av == "self") {
                            $("select.mietzeitraum").val($atp + "-0");
                            $(".data_block_delivery").removeClass("d-none").addClass("d-none");
                            $(".data_block_self").removeClass("d-none");
                            // $(".delivertimetoggle3").click();
                            // $(".returntimetoggle3").click();
                        } else if ($av == "deliveryBack") {
                            console.log($atp)
                            $("select.mietzeitraum").val($atp + "-1");
                            $(".data_block_delivery").removeClass("d-none");
                            $(".data_block_self").removeClass("d-none").addClass("d-none");
                        }
                    }

                });

                $("select.setpayway").unbind("change").change(function () {
                    $pe.basket.setpayway($(this).val());
                });

                $("select.mietzeitraum_angebot").unbind("change").change(function () {
                    $pe.basket.setmietzeit($(this).val(), "angebot");
                });

                $("select.mietzeitraum_auftrag").unbind("change").change(function () {
                    $pe.basket.setmietzeit($(this).val(), "auftrag");
                });

                $("select.standort").unbind("change").change(function () {
                    $pe.basket.setstandort($(this).val());
                });

                // $("input#ausgabedatum_feld").datepicker({
                //     numberOfMonths: 1,
                //     changeMonth: true,
                //     changeYear: true,
                //     minDate: 0,
                //     showWeek: true,
                //     weekHeader: 'KW',
                //     dateFormat: 'D, dd.mm.yy',
                //     dayNames: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"],
                //     dayNamesMin: ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"],
                //     dayNamesShort: ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"],
                //     firstDay: 1,
                //     yearRange: "c-1:c+3",
                //     monthNames: ["Januar", "Februar", "M&auml;rz", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"],
                //     monthNamesShort: ["Jan", "Feb", "Mrz", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"],
                //     beforeShowDay: function (date) {
                //         var day = date.getDay();
                //         return [(day != 0), ''];
                //     },
                //     onSelect: function (dateText, inst) {
                //         console.log('d');
                //         var date = $(this).val();
                //         $pe.basket.setPickupDate(date);
                //     }
                // });
                $("textarea#anmerkungen_feld").on("keyup paste", function () {
                    $pe.basket.pushComments.call(this);
                    $.ajax({
                        url: './ajax.php',
                        type: 'POST',
                        cache: false,
                        data: {"comments": this.value},
                        success: {"comments": this.value}

                    });
                });
                // $("button.ui-datepicker-trigger").css({"display":"none"});
                $("#ausgabedatum_button").click(function () {
                    var now = new Date();

                    var day = ("0" + now.getDate()).slice(-2);
                    var month = ("0" + (now.getMonth() + 1)).slice(-2);
                    //
                    var $today = now.getFullYear() + "-" + (month) + "-" + (day);
                    $("input#ausgabedatum_feld").attr('min', $today);
                    // $("input#ausgabedatum_feld").datepicker("show");
                });
                $("#ausgabedatum_feld").change(function () {
                    //var now = new Date();
                    $date = $(this).val();
                    //$date.replace("-", ".");
                    //$date = '**, ' + $date;
                    $pe.basket.setPickupDate($date);
                })

                $("#addressboxInvoice input").keyup(function () {
                    $pe.basket.pushInvoice.call(this);
                });
                $("#addressboxInvoice select").change(function () {
                    $pe.basket.pushInvoice.call(this);
                });

                $("#addressboxDelivery input").keyup(function () {
                    $pe.basket.pushDelivery.call(this);
                });

                $(".logistictoggle").click(function () {
                    $pe.basket.logistictoggle.call(this);
                });

                $(".delivertimetoggle").not(".delivertimetoggle4").unbind("click").click(function () {
                    $pe.basket.delivertimetoggle.call(this);
                });

                $("#deliverytimeselect,#deliverytimeselect2").unbind("change").change(function () {
                    $pe.basket.deliverytimeselect.call(this);
                });

                $(".returntimetoggle").not(".returntimetoggle4").unbind("click").click(function () {
                    $pe.basket.returntimetoggle.call(this);
                });

                $("#returntimeselect,#returntimeselect2").unbind("change").change(function () {
                    $pe.basket.returntimeselect.call(this);
                });

                $(".final-check").click(function () {
                    $pe.basket.finalcheck.call(this);
                });

                $("#order-execute").click(function () {
                    $pe.basket.basketexecute.call(this, true);
                });

                $("#offer-execute").click(function () {
                    $pe.basket.basketexecute.call(this, false);
                });

                $("#ordergostep3").click(function (e) {
                    e.preventDefault();
                    if ($(this).hasClass("inactive")) {
                        alert("Bitte erst die Modalitäten bestätigen (durch Klick anhaken)");
                    } else {
                        $pe.basket.basketexecute.call(this, ($(this).attr("data-isreal") == "true"));
                    }
                    return false;
                });

                $("#menu_sort_toggle_a,#menu_sort_toggle_b").click(function (e) {
                    e.preventDefault();
                    $pe.basket.sortmenu.call(this);
                    return false;
                });

                $(".addtobasket-after .basketadder-after").hover(function () {
                    $(this).removeClass("mini-basket-button").removeClass("fa-cart").addClass("ci-close").css({"background-color": "maroon"});
                }, function () {
                    $(this).removeClass("ci-close").addClass("fa-cart").addClass("mini-basket-button").css({"background-color": "green"});
                }).click(function (e) {
                    e.preventDefault();

                    $(this).closest(".produkt-button-gross").find("form.addtobasket").removeClass("d-none");
                    $(this).closest(".produkt-button-gross").find(".basketadder-after").addClass("d-none");

                    var $removing = $(this).closest(".produkt-button-gross");

                    var $baskbtn = $(".pe-icon.pe-warenkorb");

                    var $effect = $("<div />");
                    $effect.css({"position": "absolute", "z-index": "9999", "opacity": "1"});
                    $effect.css({"border": "2px solid #369", "border-radius": "5px"});
                    $effect.css({"top": Math.floor($baskbtn.offset().top - 1) + "px"});
                    $effect.css({"left": Math.floor($baskbtn.offset().left - 1) + "px"});
                    $effect.css({"width": Math.floor($baskbtn.width()) + "px"});
                    $effect.css({"height": Math.floor($baskbtn.height()) + "px"});
                    $effect.css({"transition": "600ms all linear"});
                    $("body").append($effect);

                    $effect.css(
                        {
                            "top": Math.floor($removing.offset().top - 1) + "px",
                            "left": Math.floor($removing.offset().left - 1) + "px",
                            "width": Math.floor($removing.width()) + "px",
                            "height": Math.floor($removing.height()) + "px",
                            "opacity": "1"
                        });

                    $pe.basket.delete($(this).closest(".produkt-button-gross").find("#hinzufuegen").val(), 9999);

                    setTimeout(function () {
                        $effect.css({"opacity": "0"});
                        setTimeout(function () {
                            $effect.remove();
                        }, 800);
                    }, 1000);

                });

                $("#feedback_anliegen").change(function () {
                    $(".contact_selectfirst, .modal_button").not($("#contact_send")).removeClass("hide").css({"display": "inline-block"});
                });

                $("#contact_send").unbind().click(function () {
                    $pe.basket.sendfeedback.call(this);
                });

                $("#contact_cancel").unbind().click(function () {
                    alert("Bitte erst alle Pflichtfelder ausfüllen");
                });

                $pe.captcha.init();
            },

            sendfeedback: function () {
                var $option = $("#feedback_anliegen").val();
                var $name = encodeURIComponent($(".contact_selectfirst input:eq(0)").val());
                var $email = encodeURIComponent($(".contact_selectfirst input:eq(1)").val());
                var $phone = encodeURIComponent($(".contact_selectfirst input:eq(2)").val());
                var $captcha = encodeURIComponent($(".contact_selectfirst #captcha_input").val());
                var $message = encodeURIComponent($(".contact_selectfirst textarea:eq(0)").val());

                $.ajax(
                    {
                        type: "POST",
                        data: "feedback=1&option=" + $option + "&name=" + $name + "&email=" + $email + "&phone=" + $phone + "&captcha=" + $captcha + "&message=" + $message,
                        url: "/ajax.php",
                        cache: false,

                        success: function (data) {
                            var $fehler = "";
                            if (typeof data !== "undefined") {
                                if (typeof data.captcha_ok !== "undefined") {
                                    if (data.captcha_ok == "no") {
                                        $fehler = $fehler + "\nDer Sicherheitscode ist nicht korrekt";
                                        $("#captcha_reload").click();
                                    }
                                }
                                if (typeof data.email_ok !== "undefined") {
                                    if (data.email_ok == "no") {
                                        $fehler = $fehler + "\nDie E-Mail-Adresse scheint nicht zu stimmen";
                                    }
                                }
                                if (typeof data.phone_ok !== "undefined") {
                                    if (data.phone_ok == "no") {
                                        $fehler = $fehler + "\nDie Telefonnummer fehlt oder ist inkorrekt";
                                    }
                                }
                                if (typeof data.text_ok !== "undefined") {
                                    if (data.text_ok == "no") {
                                        $fehler = $fehler + "\nDie eingegebene Nachricht weist Probleme auf";
                                    }
                                }
                            }

                            if ($fehler == "") {
                                $("#kontaktformular").html("Vielen Dank f&uuml;r Ihre Nachricht!<br>Ihre Nachricht ist bei uns eingegangen und wird sp&auml;testens bis zum Ende des folgenden Werktages bearbeitet.<br><br><br>Vielen Dank<br>Ihr Team der Pro Event GmbH");
                            } else {
                                alert("Folgende Fehler sind aufgetreten:" + $fehler);
                            }
                        },

                        error: function () {
                            alert("Das Kontaktformular konnte aufgrund eines\nunerwarteten Fehlers leider nicht versendet werden.");
                        }

                    });
            },

            // submit order to database
            basketexecute: function (realorder) {
                // realorder: true = bestellung, false = angebot

                var $btn = $(this);
                if ($("#ordergostep3").length > 0) {
                    if ($btn.hasClass("inactive")) {
                        return false;
                    }
                } else {
                    if ($btn.attr("data-ready") != "yes") {
                        return false;
                    }
                }

                $.ajax({
                    url: '/ajax.php',
                    type: 'POST',
                    cache: false,
                    data: {"executeorder": 1, "isrealorder": ((realorder) ? 1 : 0)},
                    beforeSend: function() {
                        $btn.addClass('inactive');
                        $btn.parent().append('<input type="checkbox" name="faking-fake" value="0" class="d-none" />');

                        $btn.html('<i></i>');
                        $btn.find('i').addClass('fa fa-spinner fa-spin fa-fw fa-2x').css({
                            "width": "100%",
                            "text-align": "center"
                        });
                    },
                    success: function (data) {
                        //console.log(data);
                        //alert("Vielen Dank fuer Ihre Bestellung. Wir werden uns in Kuerze bei Ihnen melden.")
                        if (realorder) {
                            window.location.href = "/bestellt.html" + ((typeof data.oid !== "undefined") ? ("?oid=" + data.oid) : "") + ((typeof data.cid !== "undefined") ? ("&cid=" + data.cid) : "");
                        } else {
                            window.location.href = "/erstellt.html" + ((typeof data.oid !== "undefined") ? ("?oid=" + data.oid) : "") + ((typeof data.cid !== "undefined") ? ("&cid=" + data.cid) : "");
                        }
                    },
                    error: function (ts) {
                        alert('Leider ist etwas schiefgelaufen. Bitte laden Sie die Seite neu und versuchen Sie es erneut');
                    } // or console.log(ts.responseText)
                });

            },

            finalcheck: function () {
                var $toggle = $(this);
                var $state = $toggle.attr("data-accepted");
                $newstate = (($state == "no") ? "yes" : "no");

                switch ($newstate) {
                    case "yes":
                        $toggle
                            .attr({"data-accepted": $newstate})
                            .find(".fa-icon")
                            .removeClass("fa-square-o")
                            .removeClass("fa-check-square-o")
                            .addClass("fa-check-square-o");
                        break;
                    default:
                        $toggle
                            .attr({"data-accepted": $newstate})
                            .find(".fa-icon")
                            .removeClass("fa-square-o")
                            .removeClass("fa-check-square-o")
                            .addClass("fa-square-o");
                }

                var $allcheck = $(".final-check");
                var $fine = true;
                $.each($allcheck, function () {
                    if ($(this).attr("data-accepted") == "no") {
                        $fine = false;
                    }
                });

                if ($fine) {
                    $("#order-execute,#offer-execute").removeAttr("title").attr({"data-ready": "yes"}).css({
                        "opacity": "1",
                        "cursor": "pointer"
                    });
                } else {
                    $("#order-execute,#offer-execute").attr({
                        "title": "Best&auml;tigung erforderlich",
                        "data-ready": "no"
                    }).css({"opacity": "0.3", "cursor": "not-allowed"});
                }
            },

            logistictoggle: function () {
                var $toggle = parseInt($(this).attr("data-id"));
                switch ($toggle) {
                    case 3:
                        $(".service-customer").fadeOut(function () {
                            $(".service-pe").fadeIn();
                        });
                        $("#addressboxDelivery").fadeIn();

                        $(".logistictoggle1 .fa-icon").removeClass("fa-circle-thin").removeClass("fa-circle").addClass("fa-circle-thin");
                        $(".logistictoggle2 .fa-icon").removeClass("fa-circle-thin").removeClass("fa-circle").addClass("fa-circle-thin");
                        $(".logistictoggle3 .fa-icon").removeClass("fa-circle-thin").removeClass("fa-circle").addClass("fa-circle");
                        $(".logistictoggle1").find('input').attr('checked', false);
                        $(".logistictoggle2").find('input').attr('checked', false);
                        $(".logistictoggle3").find('input').attr('checked', true);
                        $("#deliverytimelabel").text("Lieferzeit");

                        if ($(".warenkorbseite").length < 1) {
                            $(".delivertimetoggle1").removeClass("d-none");
                            $(".delivertimetoggle2").removeClass("d-none");
                            $(".delivertimetoggle3").removeClass("d-none");
                            $(".delivertimetoggle4").removeClass("d-none").addClass("d-none");
                        }
                        break;
                    case 2:
                        $(".service-customer").fadeOut(function () {
                            $(".service-pe").fadeIn();
                        });
                        $("#addressboxDelivery").fadeOut();

                        $(".logistictoggle1 .fa-icon").removeClass("fa-circle-thin").removeClass("fa-circle").addClass("fa-circle-thin");
                        $(".logistictoggle2 .fa-icon").removeClass("fa-circle-thin").removeClass("fa-circle").addClass("fa-circle");
                        $(".logistictoggle3 .fa-icon").removeClass("fa-circle-thin").removeClass("fa-circle").addClass("fa-circle-thin");
                        $(".logistictoggle1").find('input').attr('checked', false);
                        $(".logistictoggle2").find('input').attr('checked', true);
                        $(".logistictoggle3").find('input').attr('checked', false);
                        $("#deliverytimelabel").text("Lieferzeit");

                        if ($(".warenkorbseite").length < 1) {
                            $(".delivertimetoggle1").removeClass("d-none");
                            $(".delivertimetoggle2").removeClass("d-none");
                            $(".delivertimetoggle3").removeClass("d-none");
                            $(".delivertimetoggle4").removeClass("d-none").addClass("d-none");
                        }
                        break;
                    default: /* case 1 */
                        $(".service-pe").fadeOut(function () {
                            $(".service-customer").fadeIn();
                        });
                        $("#addressboxDelivery").fadeOut();

                        $(".logistictoggle1 .fa-icon").removeClass("fa-circle-thin").removeClass("fa-circle").addClass("fa-circle");
                        $(".logistictoggle2 .fa-icon").removeClass("fa-circle-thin").removeClass("fa-circle").addClass("fa-circle-thin");
                        $(".logistictoggle3 .fa-icon").removeClass("fa-circle-thin").removeClass("fa-circle").addClass("fa-circle-thin");
                        $(".logistictoggle1").find('input').attr('checked', true);
                        $(".logistictoggle2").find('input').attr('checked', false);
                        $(".logistictoggle3").find('input').attr('checked', false);
                        $("#deliverytimelabel").text("Abholzeit");

                        if ($(".warenkorbseite").length < 1) {
                            $(".delivertimetoggle1").removeClass("d-none").addClass("d-none");
                            $(".delivertimetoggle2").removeClass("d-none").addClass("d-none");
                            $(".delivertimetoggle3").removeClass("d-none").addClass("d-none");
                            $(".delivertimetoggle4").removeClass("d-none");
                        }
                }

                $.ajax({
                    url: './ajax.php',
                    type: 'POST',
                    cache: false,
                    data: {"setdeliverytype": $toggle}
                });

            },

            delivertimetoggle: function () {
                var $toggle = parseInt($(this).attr("data-id"));
                switch ($toggle) {
                    case 4:
                        break;
                    case 3:
                        $(".delivertimepicker").fadeIn();

                        $(".delivertimetoggle1 .fa-icon").removeClass("fa-circle-thin").removeClass("fa-circle").addClass("fa-circle-thin");
                        $(".delivertimetoggle2 .fa-icon").removeClass("fa-circle-thin").removeClass("fa-circle").addClass("fa-circle-thin");
                        $(".delivertimetoggle3 .fa-icon").removeClass("fa-circle-thin").removeClass("fa-circle").addClass("fa-circle");
                        $(".delivertimetoggle1 input:radio").removeClass("fa-circle-thin").removeClass("fa-circle").addClass("fa-circle-thin");
                        $(".delivertimetoggle2 input:radio").removeClass("fa-circle-thin").removeClass("fa-circle").addClass("fa-circle-thin");
                        $(".delivertimetoggle3 input:radio").removeClass("fa-circle-thin").removeClass("fa-circle").addClass("fa-circle");
                        $(".delivertimetoggle1").find('input').attr('checked', false);
                        $(".delivertimetoggle2").find('input').attr('checked', false);
                        $(".delivertimetoggle3").find('input').attr('checked', true);
                        break;
                    case 2:
                        $(".delivertimepicker").fadeIn();

                        $(".delivertimetoggle1 .fa-icon").removeClass("fa-circle-thin").removeClass("fa-circle").addClass("fa-circle-thin");
                        $(".delivertimetoggle2 .fa-icon").removeClass("fa-circle-thin").removeClass("fa-circle").addClass("fa-circle");
                        $(".delivertimetoggle3 .fa-icon").removeClass("fa-circle-thin").removeClass("fa-circle").addClass("fa-circle-thin");
                        $(".delivertimetoggle1 input:radio").removeClass("fa-circle-thin").removeClass("fa-circle").addClass("fa-circle-thin");
                        $(".delivertimetoggle2 input:radio").removeClass("fa-circle-thin").removeClass("fa-circle").addClass("fa-circle");
                        $(".delivertimetoggle3 input:radio").removeClass("fa-circle-thin").removeClass("fa-circle").addClass("fa-circle-thin");
                        $(".delivertimetoggle1").find('input').attr('checked', false);
                        $(".delivertimetoggle2").find('input').attr('checked', true);
                        $(".delivertimetoggle3").find('input').attr('checked', false);
                        break;
                    default: /* case 1 */
                        $(".delivertimepicker").fadeIn();

                        $(".delivertimetoggle1 .fa-icon").removeClass("fa-circle-thin").removeClass("fa-circle").addClass("fa-circle");
                        $(".delivertimetoggle2 .fa-icon").removeClass("fa-circle-thin").removeClass("fa-circle").addClass("fa-circle-thin");
                        $(".delivertimetoggle3 .fa-icon").removeClass("fa-circle-thin").removeClass("fa-circle").addClass("fa-circle-thin");
                        $(".delivertimetoggle1 input:radio").removeClass("fa-circle-thin").removeClass("fa-circle").addClass("fa-circle");
                        $(".delivertimetoggle2 input:radio").removeClass("fa-circle-thin").removeClass("fa-circle").addClass("fa-circle-thin");
                        $(".delivertimetoggle3 input:radio").removeClass("fa-circle-thin").removeClass("fa-circle").addClass("fa-circle-thin");
                        $(".delivertimetoggle1").find('input').attr('checked', true);
                        $(".delivertimetoggle2").find('input').attr('checked', false);
                        $(".delivertimetoggle3").find('input').attr('checked', false);
                }

                $.ajax({
                    url: './ajax.php',
                    type: 'POST',
                    cache: false,
                    data: {"setdeliverytimeblock": $toggle},
                    success: function () {
                        // console.log('3236 - delivertimetoggle - toggle: ' + $toggle);
                        // console.log('++++++++++++++++++++++++++++++++++++++');
                    },
                    error: function () {
                    }
                });

            },

            returntimetoggle: function () {
                var $toggle = parseInt($(this).attr("data-id"));
                switch ($toggle) {
                    case 4:
                        break;
                    case 3:
                        $(".returntimepicker").fadeIn();

                        $(".returntimetoggle1 .fa-icon").removeClass("fa-circle-thin").removeClass("fa-circle").addClass("fa-circle-thin");
                        $(".returntimetoggle2 .fa-icon").removeClass("fa-circle-thin").removeClass("fa-circle").addClass("fa-circle-thin");
                        $(".returntimetoggle3 .fa-icon").removeClass("fa-circle-thin").removeClass("fa-circle").addClass("fa-circle");
                        $(".returntimetoggle1 input:radio").removeClass("fa-circle-thin").removeClass("fa-circle").addClass("fa-circle-thin");
                        $(".returntimetoggle2 input:radio").removeClass("fa-circle-thin").removeClass("fa-circle").addClass("fa-circle-thin");
                        $(".returntimetoggle3 input:radio").removeClass("fa-circle-thin").removeClass("fa-circle").addClass("fa-circle");
                        $(".returntimetoggle1").find('input').attr('checked', false);
                        $(".returntimetoggle2").find('input').attr('checked', false);
                        $(".returntimetoggle3").find('input').attr('checked', true);
                        break;
                    case 2:
                        $(".returntimepicker").fadeIn();

                        $(".returntimetoggle1 .fa-icon").removeClass("fa-circle-thin").removeClass("fa-circle").addClass("fa-circle-thin");
                        $(".returntimetoggle2 .fa-icon").removeClass("fa-circle-thin").removeClass("fa-circle").addClass("fa-circle");
                        $(".returntimetoggle3 .fa-icon").removeClass("fa-circle-thin").removeClass("fa-circle").addClass("fa-circle-thin");
                        $(".returntimetoggle1 input:radio").removeClass("fa-circle-thin").removeClass("fa-circle").addClass("fa-circle-thin");
                        $(".returntimetoggle2 input:radio").removeClass("fa-circle-thin").removeClass("fa-circle").addClass("fa-circle");
                        $(".returntimetoggle3 input:radio").removeClass("fa-circle-thin").removeClass("fa-circle").addClass("fa-circle-thin");
                        $(".returntimetoggle1").find('input').attr('checked', false);
                        $(".returntimetoggle2").find('input').attr('checked', true);
                        $(".returntimetoggle3").find('input').attr('checked', false);
                        break;
                    default: /* case 1 */
                        $(".returntimepicker").fadeIn();

                        $(".returntimetoggle1 .fa-icon").removeClass("fa-circle-thin").removeClass("fa-circle").addClass("fa-circle");
                        $(".returntimetoggle2 .fa-icon").removeClass("fa-circle-thin").removeClass("fa-circle").addClass("fa-circle-thin");
                        $(".returntimetoggle3 .fa-icon").removeClass("fa-circle-thin").removeClass("fa-circle").addClass("fa-circle-thin");
                        $(".returntimetoggle1 input:radio").removeClass("fa-circle-thin").removeClass("fa-circle").addClass("fa-circle");
                        $(".returntimetoggle2 input:radio").removeClass("fa-circle-thin").removeClass("fa-circle").addClass("fa-circle-thin");
                        $(".returntimetoggle3 input:radio").removeClass("fa-circle-thin").removeClass("fa-circle").addClass("fa-circle-thin");
                        $(".returntimetoggle1").find('input').attr('checked', true);
                        $(".returntimetoggle2").find('input').attr('checked', false);
                        $(".returntimetoggle3").find('input').attr('checked', false);
                }

                $.ajax({
                    url: './ajax.php',
                    type: 'POST',
                    cache: false,
                    data: {"setreturntimeblock": $toggle}
                });

            },

            deliverytimeselect: function () {
                var $tc = $(this).val();
                //console.log($tc);
                $.ajax({
                    url: './ajax.php',
                    type: 'POST',
                    cache: false,
                    data: {"settimecustom": $tc}
                });
            },

            returntimeselect: function () {
                var $tc = $(this).val();
                //console.log($tc);
                $.ajax({
                    url: './ajax.php',
                    type: 'POST',
                    cache: false,
                    data: {"settimecustom_return": $tc}
                });
            },

            pushInvoice: function () {
                var $id = $(this).attr("id");
                if ($id.indexOf("voice-") < 1) {
                    return false;
                }
                $id = $id.split("-")[1];

                $.ajax({
                    url: './ajax.php',
                    type: 'POST',
                    cache: false,
                    data: {"invoiceaddr": $id, "newval": $(this).val()}
                });

            },

            pushDelivery: function () {
                var $id = $(this).attr("id");
                if ($id.indexOf("livery-") < 1) {
                    return false;
                }
                $id = $id.split("-")[1];

                $.ajax({
                    url: './ajax.php',
                    type: 'POST',
                    cache: false,
                    data: {"deliveryaddr": $id, "newval": $(this).val()}
                });

            },

            pushComments: function () {
                window.commentsTyping = true;
                if (typeof window.commentsAutoPush == "undefined") {
                    window.commentsLastText = $(this);
                    window.commentsAutoPush = setInterval(function () {
                            var $current = $("textarea#anmerkungen_feld").val();

                            if ((window.commentsLastText == $current) && (window.commentsTyping)) {
                                // anti flood
                                // customer stopped typing for several seconds.
                                // push updates to server
                                window.commentsTyping = false;
                                $.ajax({
                                    url: './ajax.php',
                                    type: 'POST',
                                    cache: false,
                                    data: {"comments": window.commentsLastText},
                                    success: {"comments": window.commentsLastText}

                                });
                            }
                            window.commentsLastText = $current;
                        },
                        1500);
                }
            },

            setPickupDate: function (pdate) {
                // Sa, 30.10.2021
                // 2021-11-30
                window._____pdate = pdate;

                if ($("#ausgabedatum_label").length > 0) {
                    $("#ausgabedatum_label").html("Ausgabe");
                }

                $("#ausgabedatum_wert").html(pdate);

                var $mz = $('select[name="mietzeitraum"]');
                if ($mz.length > 0) {
                    var $mietzeit = $mz.val().toString();
                    //console.log('NNNNNNNN: ' + $mietzeit)
                } else {
                    var $mietzeit = $("#mietzeitraum_hidden").val().toString();
                }

                $mietzeit = ($mietzeit + "-").split("-")[0];

                const d = new Date(pdate);
                d.setDate(d.getDate() + Number($mietzeit));
                $selectedDay = d.getUTCFullYear() + '-' + ("0" + (d.getMonth() + 1)).slice(-2) + '-' + ("0" + d.getDate()).slice(-2);

                // if ($mietzeit == 1) // Tagespreis
                // {
                //     var $tmp_d = parseInt($mietstart[0]);
                //     var $tmp_m = parseInt($mietstart[1]);
                //     var $tmp_y = parseInt($mietstart[2]);
                //
                //     var $tmp_x = (new Date($tmp_y + "-" + $tmp_m + "-" + $tmp_d)).getDay();
                //     if ($tmp_x != 6) {
                //         // Ausgabetag kein Samstag, Mietzeit 1 Tag (Heute-Morgen) = 2.
                //         $mietdauer = 2;
                //     }
                // }
                //
                // if ($mietzeit == 2) // Sa-Mo
                // {
                //     var $tmp_d = parseInt($mietstart[0]);
                //     var $tmp_m = parseInt($mietstart[1]);
                //     var $tmp_y = parseInt($mietstart[2]);
                //
                //     var $tmp_x = (new Date($tmp_y + "-" + $tmp_m + "-" + $tmp_d)).getDay();
                //     if ($tmp_x != 6) {
                //         // Ausgabetag kein Samstag, Mietzeit 1 Tag (Heute-Morgen) = 2.
                //         $mietdauer = 2;
                //     }
                // }
                //
                // if ($mode == 1) {
                //     while (n == "So") {
                //         var $ende_d = parseInt($mietstart[0]) + ($mietdauer - 1);
                //         var $ende_m = parseInt($mietstart[1]);
                //         var $ende_y = parseInt($mietstart[2]);
                //
                //         while ($ende_d > $mls[$ende_m]) {
                //             $ende_d -= $mls[$ende_m];
                //             $ende_m++;
                //             if ($ende_m > 12) {
                //                 $ende_m -= 12;
                //                 $ende_y++;
                //             }
                //         }
                //
                //         if ($ende_d < 1) {
                //             $ende_m -= 1;
                //             if ($ende_m < 1) {
                //                 $ende_y -= 1;
                //                 $ende_m = 12;
                //             }
                //             $ende_d -= $mls[$ende_m];
                //         }
                //         var $usende = $ende_y + "-" + (("00" + $ende_m).slice(-2)) + "-" + (("00" + $ende_d).slice(-2));
                //         var $ende = (("00" + $ende_d).slice(-2)) + "." + (("00" + $ende_m).slice(-2)) + "." + $ende_y;
                //
                //         var d = new Date($usende);
                //         var n = weekday[d.getDay()];
                //
                //         var $ende = n + ", " + $ende;
                //         $mietdauer--;
                //     }
                //     $mietdauer++;
                // }

                if ($("#rueckgabedatum_label").length > 0) {
                    $("#rueckgabedatum_label").html("R&uuml;ckgabe");
                }

                if ($("#rueckgabedatum_wert").is("span")) {
                    $("#rueckgabedatum_wert").html($selectedDay);
                } else if ($("#rueckgabedatum_wert").is("input")) {
                    $("#rueckgabedatum_wert").val($selectedDay);
                }

                $pe.basket.setmietzeitraum(pdate, $selectedDay);
                $pe.basket.updatetimepickers();
            },

            fixmini: function (special, pref, src, pid) {
                if (typeof special === "undefined") {
                    pref = (typeof pref == "undefined") ? '' : pref;
                    src = (typeof src == "undefined") ? './warenkorb.html' : src;
                    var basketSum = $('#basket_sum_positions').text();
                    $("#preis-sum-holder").empty();
                    $("#preis-sum-holder").load(src + ' #' + pref + 'preis-sum', function () {
                        $pe.basket.init();
                    });
                    $("#basket_sum_positions").empty();
                    $("#basket_sum_positions").load(src + ' #' + pref + 'basket_sum', function () {
                        $pe.basket.init();
                    });
                    $('#' + pref + 'realbasket-loader').empty().append($("<div />").addClass("fa  fa-cog ci-loading fa-fw fa-2x").css({
                        "width": "100%",
                        "text-align": "center"
                    }));
                    $('#' + pref + 'realbasket-loader').load(src + ' #' + pref + 'realbasket', function () {
                        $pe.basket.init();
                    });
                    $("#" + pref + "basket-div-holder").empty().append($("<div />").addClass("fa  fa-cog ci-loading fa-fw fa-2x").css({
                        "width": "100%",
                        "text-align": "center"
                    }));
                    $("#" + pref + "basket-div-holder").load(src + ' #' + pref + 'basket-div', function () {
                        $pe.basket.init();
                    });
                    $('#' + pref + 'preis-update').empty().append($("<div />").addClass("fa  fa-cog ci-loading fa-fw fa-2x").css({
                        "width": "100%",
                        "text-align": "center"
                    }));
                    $('#' + pref + 'preis-update').load(src + ' #' + pref + 'preis-update-inner', function () {
                        $pe.basket.init();
                    });
                    $("#mini-warenkorb-sum-holder").empty();
                    $('#mini-warenkorb-sum-holder').load(src + ' #' + pref + 'mini-warenkorb-sum', function () {
                        $pe.basket.init();
                    });
                    $("#basket_sum_positions_w").load("./ #basket_sum_positions", function () {
                        var z = $(this).text();
                        if (typeof z == "undefined") {
                            z = 0;
                        }
                        z = parseInt(z);
                        if (isNaN(z)) {
                            z = 0;
                        }
                        if (z < 1) {
                            z = "leer";
                        }
                        z = "" + z;
                        $(".mbb_state").text(z);
                    });
                } else {
                    // http://www.pro-event.net/angebotsdaten.html
                    // http://www.pro-event.net/bestellen.html

                    if (typeof window._____pdate !== "undefined") {
                        $pe.basket.setPickupDate(window._____pdate);
                    }
                }
            },

            sortmenu: function () {
                var $button = $("#menu_sort_toggle_a span:first");
                if ($button.hasClass("btn-sort-off")) {
                    $('#menuleftcontainer').load('./?sort_az=1 #menuleft', function () {
                        $("#menu_sort_toggle_a span:first").removeClass("btn-sort-off").removeClass("btn-sort-on").addClass("btn-sort-on");
                        $("#menu_sort_toggle_b span:first").removeClass("btn-sort-event-off").removeClass("btn-sort-event-on").addClass("btn-sort-event-off");
                        if (typeof window.fixmenuheight !== undefined) {
                            window.fixmenuheight.call();
                        }

                        target = ((window.location.href) + '.net/').split('.net/')[0] + '.net/';
                        if (window.location.href != target) {
                            window.location.href = target;
                        } else {
                            $cat = $(".kategorie-ansicht");
                            if ($cat.length > 0) {
                                $load = (window.location.href + "?").split("?")[0];
                                $temp = $("<div />").load($load + ' .kategorie-ansicht:eq(0)', function () {
                                    $data = $temp.find(".kategorie-ansicht:eq(0)");
                                    if ($data.length > 0) {
                                        $cat.replaceWith($data);
                                    }
                                });
                            }
                        }

                    });
                } else {
                    $('#menuleftcontainer').load('./?sort_az=0 #menuleft', function () {
                        $("#menu_sort_toggle_a span:first").removeClass("btn-sort-off").removeClass("btn-sort-on").addClass("btn-sort-off");
                        $("#menu_sort_toggle_b span:first").removeClass("btn-sort-event-off").removeClass("btn-sort-event-on").addClass("btn-sort-event-on");
                        if (typeof window.fixmenuheight !== undefined) {
                            window.fixmenuheight.call();
                        }

                        $cat = $(".kategorie-ansicht:eq(0)");
                        if ($cat.length > 0) {
                            $load = (window.location.href + "?").split("?")[0];
                            $temp = $("<div />").load($load + ' .kategorie-ansicht:eq(0)', function () {
                                $data = $temp.find(".kategorie-ansicht:eq(0)");
                                if ($data.length > 0) {
                                    $cat.replaceWith($data);
                                }
                            });
                        }
                    });
                }
            },

            setmietzeitraum: function (start, ende, retry) {
                var outDay = (start + ",").split(",")[0].toLowerCase();
                var backDay = (ende + ",").split(",")[0].toLowerCase();
                $pe.basket.updateDayPicks(outDay, backDay);

                if (typeof retry === "undefined") {
                    var retry = 0;
                }
                if (typeof start === "undefined") {
                    return false;
                }
                retry++;
                $.ajax({
                    url: './ajax.php',
                    type: 'POST',
                    cache: false,
                    data: {
                        "setmietzeitraum": 1,
                        "ausgabe": start,
                        "ruecknahme": ende
                    },

                    success: function ($rsp) {
                        $pe.basket.updateTimeFields();
                    },

                    error: function (data) {
                        if (retry <= 5) {
                            $pe.basket.setmietzeitraum(start, ende, retry);
                        } else {
                            alert("Fehler:\nBeim Setzen des Mietzeitraumes ist ein Fehler aufgetreten.\nBitte pruefen Sie Ihre Internetverbindung.");
                        }
                    }
                });
                $pe.basket.updatetimepickers();
            },

            updateDayPicks: function (out, back) {
                var deliverySelf = ($('select[id="deliverytimeselect"]:visible').length > 0);
                var deliveryPE = ($('select[id="deliverytimeselect2"]:visible').length > 0);

                // console.log("self: "+((deliverySelf)?'y':'n')+" pe: "+((deliveryPE)?'y':'n'));
                $pe.basket.updatetimepickers();
            },

            setstandort: function ($standort) {
                $.ajax({
                    url: './ajax.php',
                    type: 'POST',
                    cache: false,
                    data: {
                        "setstandort": 1,
                        "standort": $standort
                    },
                    success: function (data) {
                        $pe.basket.fixmini();
                    }
                });
                $pe.basket.updatetimepickers();
            },

            setmietzeit: function (mietzeit, special) {
                if (typeof mietzeit === "undefined") {
                    return false;
                }
                $.ajax({
                    url: './ajax.php',
                    type: 'POST',
                    cache: false,
                    data: {
                        "setmietzeit": mietzeit,
                    },
                    success: function (data) {
                        if (typeof special === "undefined") {
                            $pe.basket.fixmini();
                        } else {
                            $pe.basket.fixmini(special);
                        }
                    }
                });
                $pe.basket.updatetimepickers();
            },

            setausgabeart: function (ausgabeart, special) {
                if (typeof ausgabeart === "undefined") {
                    return false;
                }
                $.ajax({
                    url: './ajax.php',
                    type: 'POST',
                    cache: false,
                    data: {
                        "setausgabeart": ausgabeart,
                    },

                    success: function (data) {
                        if (typeof special === "undefined") {
                            $pe.basket.fixmini();
                        } else {
                            $pe.basket.fixmini(special);
                        }

                        $pe.basket.updateTimeFields();
                    }
                });
            },

            updateTimeFields: function () {
                var $_d = $("<div/>");
                $_d.load(window.document.location.href, function () {
                    if ($(".data_block_self").length > 0) {
                        var $rw = $($_d).find(".data_block_self:first");
                        if ($rw.length > 0) {
                            $(".data_block_self:first").replaceWith($rw);
                            console.log("%cdata_block_self updated", "color:green;");
                        } else {
                            console.log("%cdata_block_self NOT updated", "color:red;", $_d);
                        }
                    }

                    if ($(".data_block_delivery").length > 0) {
                        var $rw = $($_d).find(".data_block_delivery:first");
                        if ($rw.length > 0) {
                            $(".data_block_delivery:first").replaceWith($rw);
                            console.log("%cdata_block_delivery updated", "color:green;");
                        } else {
                            console.log("%cdata_block_delivery NOT updated", "color:red;", $_d);
                        }
                    }
                    $(".delivertimetoggle").not(".delivertimetoggle4").unbind("click").click(function () {
                        // console.log('3766');
                        $pe.basket.delivertimetoggle.call(this);
                    });

                    $("#deliverytimeselect,#deliverytimeselect2").unbind("change").change(function () {
                        $pe.basket.deliverytimeselect.call(this);
                    });

                    $(".returntimetoggle").not(".returntimetoggle4").unbind("click").click(function () {
                        $pe.basket.returntimetoggle.call(this);
                    });

                    $("#returntimeselect,#returntimeselect2").unbind("change").change(function () {
                        $pe.basket.returntimeselect.call(this);
                    });

                });
                $pe.basket.updatetimepickers();
            },

            setpayway: function (payway, special) {
                if (typeof payway === "undefined") {
                    return false;
                }
                $.ajax({
                    url: './ajax.php',
                    type: 'POST',
                    cache: false,
                    data: {
                        "setpayway": payway,
                    },

                    success: function (data) {
                        if (typeof special === "undefined") {
                            $pe.basket.fixmini();
                        } else {
                            $pe.basket.fixmini(special);
                        }
                    }
                });
                $pe.basket.updatetimepickers();
            },

            setto: function (pid, sum) {
                if (typeof pid === "undefined") {
                    return false;
                }
                if (typeof sum === "undefined") {
                    var sum = 1;
                }

                $.ajax({
                    url: './ajax.php',
                    type: 'POST',
                    cache: false,
                    data: {
                        anpassen: pid,
                        anzahl: sum
                    },

                    error: function () {
                        $(".failure").slideDown(1000, function () {
                            setTimeout(function () {
                                $(".failure").slideUp(1000);
                            }, 3000);
                        });
                    },

                    success: function (data) {
                        if ($("#stage2-realbasket").length > 0) {
                            $.get(window.location.href, {}, function (rsp) {
                                $("#realbasket-view").replaceWith($(rsp).find("#realbasket-view"));
                                $pe.basket.setTriggers();
                            });
                        } else {
                            if (typeof data.success !== "undefined") {
                                if ((data.success == 1) || (data.success == "1") || (data.success == true)) {
                                    $(".success").slideDown(1000, function () {
                                        setTimeout(function () {
                                            $(".success").slideUp(1000);
                                        }, 3000);
                                    });
                                } else {
                                    $(".failure").slideDown(1000, function () {
                                        setTimeout(function () {
                                            $(".failure").slideUp(1000);
                                        }, 3000);
                                    });
                                }
                            }
                            $pe.basket.fixmini();
                        }
                    }
                });
                $pe.basket.updatetimepickers();
            },

            delete: function (pid, sum) {
                if (typeof pid === "undefined") {
                    return false;
                }
                if (typeof sum === "undefined") {
                    var sum = 1;
                }

                $.ajax({
                    url: './ajax.php',
                    type: 'POST',
                    cache: false,
                    data: {
                        entfernen: pid,
                        anzahl: sum
                    },

                    error: function () {
                        $(".failure").slideDown(1000, function () {
                            setTimeout(function () {
                                $(".failure").slideUp(1000);
                            }, 3000);
                        });
                    },

                    success: function (data) {
                        if ($("#stage2-realbasket").length > 0) {
                            $.get(window.location.href, {}, function (rsp) {
                                $("#realbasket-view").replaceWith($(rsp).find("#realbasket-view"));
                                $pe.basket.setTriggers();
                            });
                        } else {
                            if (typeof data.success !== "undefined") {
                                if ((data.success == 1) || (data.success == "1") || (data.success == true)) {
                                    $(".success-delete").slideDown(1000, function () {
                                        setTimeout(function () {
                                            $(".success-delete").slideUp(1000);
                                        }, 3000);
                                    });
                                } else {
                                    $(".failure").slieDown(1000, function () {
                                        setTimeout(function () {
                                            $(".failure").slideUp(1000);
                                        }, 3000);
                                    });
                                }
                            }
                            $pe.basket.fixmini();
                            pref = (typeof pref == "undefined") ? '' : pref;
                            $("." + pref + "produkt-button-gross[data-pid=" + pid + "]").find('.basket-btn-holder').empty().append($("<button />").addClass("basket-btn btn btn-primary btn-shadow btn-sm pbg-basket").attr("type", "button").append('+').append($("<i />").addClass("ci-cart fs-base ms-1")));
                        }
                    }
                });
            },

            add: function (pid, sum) {
                if (typeof pid === "undefined") {
                    return false;
                }
                if (typeof sum === "undefined") {
                    var sum = 1;
                }

                $.ajax({
                    url: './ajax.php',
                    type: 'POST',
                    cache: false,
                    data: {
                        hinzufuegen: pid,
                        anzahl: sum
                    },

                    error: function () {
                        $(".failure").slideDown(1000, function () {
                            setTimeout(function () {
                                $(".failure").slideUp(1000);
                            }, 3000);
                        });
                    },

                    success: function (data) {
                        if ($("#stage2-realbasket").length > 0) {
                            $.get(window.location.href, {}, function (rsp) {
                                $("#realbasket-view").replaceWith($(rsp).find("#realbasket-view"));
                                $pe.basket.setTriggers();
                            });
                        } else {
                            if (typeof data.success !== "undefined") {
                                if ((data.success == 1) || (data.success == "1") || (data.success == true)) {
                                    $(".success-add").slideDown(1000, function () {
                                        setTimeout(function () {
                                            $(".success-add").slideUp(1000);
                                        }, 3000);
                                    });
                                } else {
                                    $(".failure").slideDown(1000, function () {
                                        setTimeout(function () {
                                            $(".failure").slideUp(1000);
                                        }, 3000);
                                    });
                                }
                            }
                            $pe.basket.fixmini();
                        }
                    }
                });

            }


        }

};

$(function () {
    window.fixmenuheight = function () {
        if ($("body").width() > 970) {
            $("ul.level0.treeview").css({"height": ($(".home-1-slider-area").height() + 75) + "px"});
            $("ul.level0.treeview").css({"min-height": ($(".home-1-slider-area").height() + 75) + "px"});
            $("ul.level0.treeview").css({"max-height": ($(".home-1-slider-area").height() + 75) + "px"});
        } else {
            $("ul.level0.treeview").css({"height": "unset"});
            $("ul.level0.treeview").css({"min-height": "unset"});
            $("ul.level0.treeview").css({"max-height": "unset"});
        }
    };

    $(window).resize(function () {
        fixmenuheight();
    });
    fixmenuheight();
});

$pe = window.pe;

$(function () {
    // console.log('3999 - Die letzte Funktion');

    $pe.basket.init();

    if ($(".cjexpc_activator").length > 0) {
        void (_cjexp());
    }

});
// Mietwelt Navigation
$('.product-gallery-thumblist .carousel .carousel-inner .carousel-item:first').addClass('active');

$('.carousel .carousel-inner .carousel-item').each(function () {
    var next = $(this).next();
    if (!next.length) {
        next = $(this).siblings(':first');
    }
    var _this = $(this);
    var _test = false;

    var thumbnailNumber = function ($this) {
        if ($(document).width() > 499) {
            $this.children('a').removeClass('thumb-display-none');
            $this.children('a').removeClass('thumb-height');
            for ($j = 0; $j < 4; $j++) {
                if (!_test) {
                    next.children(':first-child').clone().appendTo($this);
                    for ($i = 1; $i < 2; $i++) {
                        next = next.next();
                        if (!next.length) {
                            next = $this.siblings(':first');
                        }
                        next.children(':first-child').clone().appendTo($this);
                    }
                    _test = true;
                }
            }
        } else {
            $this.children('a').not(':first').addClass('thumb-display-none');
            $this.children('a').addClass('thumb-height');
        }
    }
    $(window).on('resize', function () {
        thumbnailNumber(_this);
    });
    thumbnailNumber(_this);
});