<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=0">

    <title>Pioneer DJ - Brandbox 2020</title>

    <link rel="shortcut icon" href="https://www.pioneerdj.com/favicon.ico" type="image/ico">
    <link href="../../styles/2020.css" rel="stylesheet">

    <script type="text/javascript">
        function checkForSpecialCharacters(formData, toCheck) {
            var errors = {};
            toCheck.forEach(function(item) {
                if (formData != null && !formData[item].match(new RegExp('^((?![\<,\>,\&,\"]).)*$'))) {
                    errors[item] = 'This character can not be used.';
                }
            });
            return errors;
        }
        window.__gigyaConf = {
            validation: {
                'gigya-register-screen': function(formData, eventType, callback) {
                    return checkForSpecialCharacters(formData, ['profile.firstName', 'profile.lastName']);
                },
                'gigya-update-profile-screen': function(formData, eventType, callback) {
                    var errors = checkForSpecialCharacters(formData, ['profile.nickname', 'profile.firstName', 'profile.lastName', 'profile.city', 'profile.zip']);
                    if (formData != null && formData['profile.nickname'].length == 0 && !enableEmptyNickname)
                        errors['profile.nickname'] = "You can not leave this field blank.";
                    return errors;
                }
            },
            enableSSOToken: true,
            bypassCookiePolicy: 'always'
        };
        window.__functionsToExecute = [];
    </script>

    <script type="text/javascript" src="https://cdns.gigya.com/JS/socialize.js?apikey=3_uMFBTSRvPDal63Zq8JezwafdwGOEG0zCW442Ku4Xk2lEG1mxHXrUaGOGsaDLAoEF&lang=en">
        {
            enabledProviders: 'facebook,twitter,linkedin,yahoo'
        }
    </script>
    <link href="https://pioneerdj.com/Bundles/GigyaStyle/?v=KhjMIjdDaPAl8RkrAvfFxtOKzK7ZBvw_6qzzem-S6Oo1" rel="stylesheet" />
    <script type="text/javascript" src="https://cdn.gigya-ext.com/screenset-validation.min.js"></script>
    <script src="https://pioneerdj.com/Bundles/GigyaConnector/?v=det8w82lPoffB4JoTTPoe7G1G7MqeCKh8-PVuZ9qFeg1"></script>
</head>

<body>

    <script>
        dataLayer = [];
    </script>
    <!-- Google Tag Manager -->
    <noscript><iframe src="https://pioneerdj.com//www.googletagmanager.com/ns.html?id=GTM-PSC5SC" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
    <script>
        (function(w, d, s, l, i) {
            w[l] = w[l] || [];
            w[l].push({
                'gtm.start': new Date().getTime(),
                event: 'gtm.js'
            });
            var f = d.getElementsByTagName(s)[0],
                j = d.createElement(s),
                dl = l != 'dataLayer' ? '&l=' + l : '';
            j.async = true;
            j.src = '//www.googletagmanager.com/gtm.js?id=' + i + dl;
            f.parentNode.insertBefore(j, f);
        })(window, document, 'script', 'dataLayer', 'GTM-PSC5SC');
    </script>
    <!-- End Google Tag Manager -->

    <style>
        .page {
            height: 50vh;
        }
    </style>

    <div id="the-bucket">

        <div id="top"></div>

        <section style="padding-top: 5vh; padding-bottom: 5vh;">
            <p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Magnam asperiores repellendus quasi exercitationem odio perferendis illum doloribus hic, quae, voluptate praesentium tempora beatae unde ipsa consequuntur soluta perspiciatis commodi nobis. Numquam, soluta placeat! Omnis nulla corrupti ipsum necessitatibus architecto quia sunt nihil, voluptas, excepturi explicabo dolores quasi quidem dolorem, pariatur tempora voluptates? Ullam ea veritatis, placeat, distinctio ut dicta reprehenderit obcaecati facilis odio laudantium nobis exercitationem tempora nesciunt omnis quam repellat doloremque debitis quod totam eaque laborum quisquam odit. Doloremque similique laudantium et sint totam sit a, aspernatur earum labore quia, ab dignissimos voluptate perspiciatis, accusantium repellat optio natus officia illum molestiae saepe nobis quibusdam. Soluta rem illum blanditiis provident corporis et, laboriosam praesentium magnam suscipit necessitatibus, adipisci deleniti nemo aliquam, reprehenderit eius doloremque ex ratione. Id dolorem aut repellendus blanditiis suscipit quibusdam eos, necessitatibus obcaecati animi magnam inventore amet corrupti cupiditate, porro eaque doloribus quam optio aspernatur autem modi numquam earum. Libero corporis, ea inventore sit optio tempora quisquam assumenda, accusamus ut ipsum vero amet pariatur suscipit? Inventore officiis consequatur magnam sint odit, nihil consectetur nesciunt sapiente a praesentium illum, vero quam voluptatem facilis ipsa culpa ratione veniam ad quos, fuga optio. Ullam, voluptatum beatae reiciendis placeat doloremque illum.</p>
        </section>

        <section style="padding-top: 5vh; padding-bottom: 5vh;">
            <p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Magnam asperiores repellendus quasi exercitationem odio perferendis illum doloribus hic, quae, voluptate praesentium tempora beatae unde ipsa consequuntur soluta perspiciatis commodi nobis. Numquam, soluta placeat! Omnis nulla corrupti ipsum necessitatibus architecto quia sunt nihil, voluptas, excepturi explicabo dolores quasi quidem dolorem, pariatur tempora voluptates? Ullam ea veritatis, placeat, distinctio ut dicta reprehenderit obcaecati facilis odio laudantium nobis exercitationem tempora nesciunt omnis quam repellat doloremque debitis quod totam eaque laborum quisquam odit. Doloremque similique laudantium et sint totam sit a, aspernatur earum labore quia, ab dignissimos voluptate perspiciatis, accusantium repellat optio natus officia illum molestiae saepe nobis quibusdam. Soluta rem illum blanditiis provident corporis et, laboriosam praesentium magnam suscipit necessitatibus, adipisci deleniti nemo aliquam, reprehenderit eius doloremque ex ratione. Id dolorem aut repellendus blanditiis suscipit quibusdam eos, necessitatibus obcaecati animi magnam inventore amet corrupti cupiditate, porro eaque doloribus quam optio aspernatur autem modi numquam earum. Libero corporis, ea inventore sit optio tempora quisquam assumenda, accusamus ut ipsum vero amet pariatur suscipit? Inventore officiis consequatur magnam sint odit, nihil consectetur nesciunt sapiente a praesentium illum, vero quam voluptatem facilis ipsa culpa ratione veniam ad quos, fuga optio. Ullam, voluptatum beatae reiciendis placeat doloremque illum.</p>
        </section>

        <section style="padding-top: 5vh; padding-bottom: 5vh;">
            <p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Magnam asperiores repellendus quasi exercitationem odio perferendis illum doloribus hic, quae, voluptate praesentium tempora beatae unde ipsa consequuntur soluta perspiciatis commodi nobis. Numquam, soluta placeat! Omnis nulla corrupti ipsum necessitatibus architecto quia sunt nihil, voluptas, excepturi explicabo dolores quasi quidem dolorem, pariatur tempora voluptates? Ullam ea veritatis, placeat, distinctio ut dicta reprehenderit obcaecati facilis odio laudantium nobis exercitationem tempora nesciunt omnis quam repellat doloremque debitis quod totam eaque laborum quisquam odit. Doloremque similique laudantium et sint totam sit a, aspernatur earum labore quia, ab dignissimos voluptate perspiciatis, accusantium repellat optio natus officia illum molestiae saepe nobis quibusdam. Soluta rem illum blanditiis provident corporis et, laboriosam praesentium magnam suscipit necessitatibus, adipisci deleniti nemo aliquam, reprehenderit eius doloremque ex ratione. Id dolorem aut repellendus blanditiis suscipit quibusdam eos, necessitatibus obcaecati animi magnam inventore amet corrupti cupiditate, porro eaque doloribus quam optio aspernatur autem modi numquam earum. Libero corporis, ea inventore sit optio tempora quisquam assumenda, accusamus ut ipsum vero amet pariatur suscipit? Inventore officiis consequatur magnam sint odit, nihil consectetur nesciunt sapiente a praesentium illum, vero quam voluptatem facilis ipsa culpa ratione veniam ad quos, fuga optio. Ullam, voluptatum beatae reiciendis placeat doloremque illum.</p>
        </section>

        <section style="padding-top: 5vh; padding-bottom: 5vh;">
            <p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Magnam asperiores repellendus quasi exercitationem odio perferendis illum doloribus hic, quae, voluptate praesentium tempora beatae unde ipsa consequuntur soluta perspiciatis commodi nobis. Numquam, soluta placeat! Omnis nulla corrupti ipsum necessitatibus architecto quia sunt nihil, voluptas, excepturi explicabo dolores quasi quidem dolorem, pariatur tempora voluptates? Ullam ea veritatis, placeat, distinctio ut dicta reprehenderit obcaecati facilis odio laudantium nobis exercitationem tempora nesciunt omnis quam repellat doloremque debitis quod totam eaque laborum quisquam odit. Doloremque similique laudantium et sint totam sit a, aspernatur earum labore quia, ab dignissimos voluptate perspiciatis, accusantium repellat optio natus officia illum molestiae saepe nobis quibusdam. Soluta rem illum blanditiis provident corporis et, laboriosam praesentium magnam suscipit necessitatibus, adipisci deleniti nemo aliquam, reprehenderit eius doloremque ex ratione. Id dolorem aut repellendus blanditiis suscipit quibusdam eos, necessitatibus obcaecati animi magnam inventore amet corrupti cupiditate, porro eaque doloribus quam optio aspernatur autem modi numquam earum. Libero corporis, ea inventore sit optio tempora quisquam assumenda, accusamus ut ipsum vero amet pariatur suscipit? Inventore officiis consequatur magnam sint odit, nihil consectetur nesciunt sapiente a praesentium illum, vero quam voluptatem facilis ipsa culpa ratione veniam ad quos, fuga optio. Ullam, voluptatum beatae reiciendis placeat doloremque illum.</p>
        </section>

        <section id="specifications" class="page">
            <h1 class="heading heading--1">SPECIFICATIONS</h1>
        </section>

        <section style="padding-top: 5vh; padding-bottom: 5vh;">
            <p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Magnam asperiores repellendus quasi exercitationem odio perferendis illum doloribus hic, quae, voluptate praesentium tempora beatae unde ipsa consequuntur soluta perspiciatis commodi nobis. Numquam, soluta placeat! Omnis nulla corrupti ipsum necessitatibus architecto quia sunt nihil, voluptas, excepturi explicabo dolores quasi quidem dolorem, pariatur tempora voluptates? Ullam ea veritatis, placeat, distinctio ut dicta reprehenderit obcaecati facilis odio laudantium nobis exercitationem tempora nesciunt omnis quam repellat doloremque debitis quod totam eaque laborum quisquam odit. Doloremque similique laudantium et sint totam sit a, aspernatur earum labore quia, ab dignissimos voluptate perspiciatis, accusantium repellat optio natus officia illum molestiae saepe nobis quibusdam. Soluta rem illum blanditiis provident corporis et, laboriosam praesentium magnam suscipit necessitatibus, adipisci deleniti nemo aliquam, reprehenderit eius doloremque ex ratione. Id dolorem aut repellendus blanditiis suscipit quibusdam eos, necessitatibus obcaecati animi magnam inventore amet corrupti cupiditate, porro eaque doloribus quam optio aspernatur autem modi numquam earum. Libero corporis, ea inventore sit optio tempora quisquam assumenda, accusamus ut ipsum vero amet pariatur suscipit? Inventore officiis consequatur magnam sint odit, nihil consectetur nesciunt sapiente a praesentium illum, vero quam voluptatem facilis ipsa culpa ratione veniam ad quos, fuga optio. Ullam, voluptatum beatae reiciendis placeat doloremque illum.</p>
        </section>

        <section id="combine-with" class="page">
            <h1 class="heading heading--1">COMBINE WITH</h1>
        </section>
    </div>

    </div>
    </div>

    <div style="display: none;">
        <div id="search__wrap">
            <div id="search-field">
                <div class="outer">
                    <div class="container">
                        <div class="input-wrap">
                            <input type="text" class="input__search" data-no-results="Oops nothing can be found" data-nothing-entered="Please enter a search query" />
                            <a href="#" class="trigger_clear-text btn__clear-text"><span class="ico-element icon-clear-cross"></span>Clear entry</a>
                        </div>
                        <div class="button-wrap">
                            <a href="#" class="btn__search trigger__close-overlayer">
                                <i class="icon-cross"><span class="sr-only">Close</span></i>
                            </a>
                        </div>
                    </div>
                </div>
            </div>
            <span class="loading-icon-search"></span>
            <div id="result-wrap">
                <div class="outer outer-search-content">
                    <div class="container">
                        <div class="boxed-content">
                            <h3>Top results</h3>
                            <ul>
                                <!-- POPULATED WITH JAVASCRIPT -->
                            </ul>
                            <p class="button-wrap">
                                <a href="#" id="view__all" class="btn btn-border trigger__searchpage disabled" data-search-page="https://pioneerdj.com/en/search-results/?q=">
                                    <span class="text">See all results</span>
                                </a>
                            </p>
                            <p>Didn’t find what you’re looking for? Maybe use fewer words or a more general search term.<br />If you
                                still have no luck you can contact our <a href="https://pioneerdj.com/en/support/contact">customer
                                    service</a>.</p>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <script src="https://pioneerdj.com/Scripts/jquery-1.11.3.js?bundleVirtualPath=%7e%2fBundles%2fEcommerceJsFooter%2f"></script>
    <script src="https://pioneerdj.com/Scripts/uCommerce/uCommerce.jQuery.js?bundleVirtualPath=%7e%2fBundles%2fEcommerceJsFooter%2f"></script>
    <script src="https://pioneerdj.com/Scripts/uCommerce/uCommerce.ServiceStack.js?bundleVirtualPath=%7e%2fBundles%2fEcommerceJsFooter%2f"></script>
    <script src="https://pioneerdj.com/Scripts/uCommerce/pdj.uc.custom.js?bundleVirtualPath=%7e%2fBundles%2fEcommerceJsFooter%2f"></script>
    <script src="https://pioneerdj.com/Scripts/Custom/checkout.js?bundleVirtualPath=%7e%2fBundles%2fEcommerceJsFooter%2f"></script>
    <script src="https://pioneerdj.com/Scripts/Custom/theSticker.js?bundleVirtualPath=%7e%2fBundles%2fEcommerceJsFooter%2f"></script>

    <script src="../../scripts/main.js"></script>

    <script type="text/javascript">
        // polyfill for startsWith method
        if (!String.prototype.startsWith) {
            String.prototype.startsWith = function(searchString, position) {
                return this.substr(position || 0, searchString.length) === searchString;
            };
        }

        function getQueryStringValueByName(name, url) {
            if (!url) {
                url = window.location.href;
            }
            name = name.replace(/[\[\]]/g, "\\$&");
            var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
                results = regex.exec(url);
            if (!results) return null;
            if (!results[2]) return '';
            return decodeURIComponent(results[2].replace(/\+/g, " "));
        }
        //mark menu item as active
        jQuery(".gigyaMenu ul li a").bind('click', function() {
            jQuery(".gigyaMenu ul li a").removeClass("active");
            jQuery(this).addClass("active");
        });
        var jwtToken;

        function sendZendeskToken(data) {
            jQuery.ajax({
                type: "POST",
                url: "/ForumConnector/zenssologin.aspx",
                async: false,
                data: data.user,
                dataType: "jsonp",
                complete: function(res) {
                    jwtToken = JSON.parse(res.responseText);
                }
            });
        }

        function onLogout(response) {
            function loaded() {
                jQuery.ajax({
                    url: "/en/" + "api/Account/Logout",
                    async: false,
                    success: function(data) {
                        if (data.Success) {
                            var logoutContainer = jQuery("#LogoutContainer");
                            var loginRegister = jQuery("#LoginRegister");
                            if (logoutContainer != undefined) {
                                logoutContainer.hide();
                            }
                            if (loginRegister != undefined) {
                                loginRegister.show();
                            }
                            location.reload();
                        } else {
                            alert(data.Message); //TODO: other way to inform about the error
                        }
                    },
                    error: function() {
                        alert("Error during logout!"); //TODO: other way to inform about the error
                    }
                });
            }
            if (response.errorCode == 0) {
                var iframe = document.createElement("iframe");
                iframe.setAttribute("src", "https://forums.pioneerdj.com" + "/access/logout/");
                iframe.style.width = 0;
                iframe.style.height = 0;
                if (iframe.addEventListener) {
                    iframe.addEventListener("load", loaded, false);
                } else {
                    iframe.attachEvent("onload", loaded);
                }
                document.body.appendChild(iframe);
                setTimeout(loaded, 850); //neccessary for firefox - in case iframe throws an error, firefox won't fire onload event
            }
        }

        function onLoginSocialize(response) {
            sendZendeskToken(response);
        }

        function loginToZendesk() {
            function loaded() {
                gigya.setSSOToken({
                    redirectURL: typeof(returnTo) === 'undefined' ? window.location.href : returnTo
                });
                window.location.reload();
            }
            var iframe = document.createElement("iframe");
            iframe.setAttribute("src", "https://pioneerdj.zendesk.com" + "/access/jwt" + "?jwt=" + jwtToken.token);
            iframe.style.width = 0;
            iframe.style.height = 0;
            document.body.appendChild(iframe);
            iframe.onload = loaded;
            iframe.onerror = loaded;
        }

        function onLogin(response) {
            if (response != undefined && response.UID != undefined) {
                // 206005 - autologin finalization triggered with email verification link
                if (getQueryStringValueByName('errorCode') == '206005') {
                    gigya.accounts.getAccountInfo({
                        callback: onEmailVerified,
                        include: 'emails,data'
                    });
                }
                var queue = function() {
                    typeof jwtToken !== "undefined" ?
                        loginToZendesk() :
                        setTimeout(function() {
                            queue();
                        }, 100);
                };
                queue();
            }
        }

        function onEmailVerified(response) {
            if (response != undefined && response.errorCode == 0) {
                var verifiedEmails = response.emails.verified;
                if (verifiedEmails.length > 1) {
                    // deactivate all account emails except for the new one that just got verified
                    var previousEmails = verifiedEmails.slice(0, verifiedEmails.length - 1).join(", ");
                    var storedEmails = response.data.previousEmailAddresses;
                    if (storedEmails != undefined) {
                        storedEmails = storedEmails + ", " + previousEmails;
                    } else {
                        storedEmails = previousEmails;
                    }
                    gigya.accounts.setAccountInfo({
                        removeLoginEmails: previousEmails,
                        data: {
                            previousEmailAddresses: storedEmails
                        }
                    });
                }
            }
        }

        function onProfileUpdate(response) {
            if (response.response.errorCode === 0) {
                if (response != undefined && response.profile != undefined) {
                    if (response.profile.photoURL != undefined) {
                        jQuery(".visual-wrap .in").css("background-image", "url('" + response.profile.photoURL + "')");
                    }
                    jQuery(".item-profile a .content-wrap .name").text(response.profile.firstName);
                    jQuery(".profile-box .content-wrap").html(response.profile.firstName + '<br/>');
                }
                showMessage("Your changes have been saved.");
            }
        }

        function onPasswordChange(response) {
            if (response.response.errorCode === 0) {
                selectMenuItem();
                showMessage("Your password has been changed.");
                navigateEditMyProfile();
            }
        }

        function onProfileFieldChange(response) {
            if (response != undefined) {
                jQuery('input[name="profile.email"]').bind('change', function() {
                    showMessage("Click ‘Save changes’ to change your email address. You’ll receive an email to verify your new email address.");
                });
            }
        }

        function selectMenuItem() {
            jQuery(".errorSection").hide();
            jQuery(".gigyaMenu ul li a").removeClass("active");
            jQuery(".gigyaMenu ul li a").first().addClass("active");
        }

        function showMessage(message) {
            jQuery(".errorSection").html("").hide();
            document.getElementById("messageSection").style.display = "block";
            document.getElementById("messageSection").innerHTML = message;
            window.scrollTo(0, 0);
        }

        function showLicenses() {
            showLoadingScreen();
            redirectIfLoggedOut();
            gigya.socialize.getUserInfo({
                callback: generateUserLicences
            });
        }

        function generateUserLicences(response) {
            var gigyaPageTarget = jQuery("#gigya-page-target");
            if (response.errorCode == 0) {
                var user = response['user'];
                var uid = user['UID'];
                jQuery.get('/api/sitecore/PioneerDjAccount/GetLicences', {
                    userId: uid
                }, function(data) {
                    hideLoadingScreen();
                    if (isLicencesScreenDisplayed() === true) {
                        gigyaPageTarget.html(data);
                        var cell = jQuery(".licences-container .licence .item .key");
                        if (typeof cell !== 'undefined') {
                            cell.matchHeight();
                        }
                    }
                });
            } else {
                gigyaPageTarget.html('No licences could be found.');
            }
        }

        function isLicencesScreenDisplayed() {
            return jQuery("#license_btn").hasClass("active");
        }

        function navigateChangePassword() {
            parent.location.hash = 'password';
            gigya.accounts.showScreenSet({
                screenSet: 'pioneerdj.com-ProfileUpdate',
                containerID: 'gigya-page-target',
                startScreen: 'gigya-change-password-screen',
                lang: 'en',
                onAfterSubmit: changePasswordHandler,
                onBeforeScreenLoad: redirectIfLoggedOut,
                onError: errorEventHandler
            });
        }

        function navigateEditMyProfile() {
            parent.location.hash = 'editprofile';
            gigya.accounts.showScreenSet({
                screenSet: 'pioneerdj.com-ProfileUpdate',
                lang: 'en',
                containerID: 'gigya-page-target',
                onError: errorEventHandler,
                onAfterSubmit: updateProfileHandler,
                onBeforeScreenLoad: redirectIfLoggedOut,
                onAfterScreenLoad: changeProfileFieldHandler
            });
        }

        function redirectIfLoggedOut() {
            gigya.accounts.getAccountInfo({
                callback: function(response) {
                    if (response.errorCode != 0) {
                        window.location.href = '/';
                    }
                }
            });
        }

        function createOneNewsletterOption(response) {
            if (response != undefined) {
                var pdjCheckbox = jQuery("[name='data.PDJ_newsletter'][data-screenset-roles='instance']");
                var kuvoCheckbox = jQuery("[name='data.KUVO_newsletter'][data-screenset-roles='instance']");
                var mainCheckbox = '<div class="gigya-composite-control gigya-composite-control-checkbox"' +
                    ' style="display: block; margin-top:15px;"><input id="maincheckbox" type="checkbox">' +
                    '<label class="gigya-label" for="maincheckbox"><span class="gigya-label-text gigya-checkbox-text">' +
                    "Please keep me informed about Pioneer DJ products, services, features, including newsletters, promotions, events, tips and surveys." +
                    '</span></label></div>';
                kuvoCheckbox.parent().after(mainCheckbox);
                jQuery("#registerContainer").on('change', '#maincheckbox', function() {
                    pdjCheckbox.prop("checked", this.checked);
                    kuvoCheckbox.prop("checked", this.checked);
                });
                pdjCheckbox.parent().hide();
                kuvoCheckbox.parent().hide();
            }
        }
        // My Products functions
        function handleMyProductsError(data) {
            if (typeof data.responseJSON != 'undefined') {
                errorEventHandler({
                    errorMessage: data.responseJSON.error,
                    response: {
                        info: {
                            screen: "gigya-my-products-screen"
                        }
                    }
                });
            } else {
                errorEventHandler({
                    errorMessage: getErrorMessage(data),
                    response: {
                        info: {
                            screen: "gigya-my-products-screen"
                        }
                    }
                });
            }
        }

        function getErrorMessage(data) {
            if (data.status == 401 || data.status == 403) {
                return "Unauthorized user";
            }
            return "Unexpected error occurred";
        }

        function getAuthHeaders(response) {
            var authHeaders = {
                "PDJ-UID": response.user.UID,
                "PDJ-Timestamp": response.user.signatureTimestamp,
                "PDJ-UIDSignature": response.user.UIDSignature
            }
            return authHeaders;
        }

        function navigateMyProducts(msg) {
            showLoadingScreen();
            redirectIfLoggedOut();
            gigya.socialize.getUserInfo({
                callback: getMyProducts,
                context: msg
            });
        }

        function isMyProductsScreenDisplayed() {
            return jQuery("#my-products-tab").hasClass("active");
        }

        function getMyProducts(response) {
            var gigyaPageTarget = jQuery("#gigya-page-target");
            if (response.errorCode == 0) {
                jQuery.ajax({
                    type: 'GET',
                    url: '/api/sitecore/ProductRegistration/Get',
                    headers: getAuthHeaders(response),
                    cache: false,
                    success: function(data) {
                        if (isMyProductsScreenDisplayed() === true) {
                            gigyaPageTarget.html(data);
                            jQuery('a.btn-link[href="#"]').each(function(i, o) {
                                jQuery(o).addClass('hidden');
                            });
                            initCompleter();
                        }
                        if (response.context) {
                            var msg = response.context;
                            jQuery('#validation-success')
                                .removeClass('hidden');
                            jQuery('#validation-success')
                                .html(msg);
                        }
                        window.scrollTo(0, 0);
                        var $purchaseDateInput = jQuery("#input-purchase-date");
                        $purchaseDateInput.attr('readonly', 'readonly');
                        $purchaseDateInput.datepicker({
                            changeMonth: true,
                            changeYear: true,
                            constrainInput: true,
                            dateFormat: "dd/mm/yy",
                            maxDate: "31/07/2020"
                        });
                    },
                    error: function(data) {
                        errorEventHandler({
                            errorMessage: data.responseJSON.error
                        });
                    },
                    complete: function() {
                        hideLoadingScreen();
                    }
                });
            }
        }

        function showLoadingScreen() {
            jQuery("#gigya-page-target").children().hide();
            jQuery("#loading-message").show();
        }

        function hideLoadingScreen() {
            jQuery("#gigya-page-target").children().show();
            jQuery("#loading-message").hide();
        }
    </script>
    <script>
        for (var index = 0; index < window.__functionsToExecute.length; ++index) {
            window.__functionsToExecute[index]();
        }
        window.__functionsToExecute = [];
    </script>
</body>

</html>
{{render '@head-2020' }}

<style>
  .page { height: 50vh; }
</style>

<div id="the-bucket">

  <div id="top"></div>

  <section style="padding-top: 5vh; padding-bottom: 5vh;">
    <p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Magnam asperiores repellendus quasi exercitationem odio perferendis illum doloribus hic, quae, voluptate praesentium tempora beatae unde ipsa consequuntur soluta perspiciatis commodi nobis. Numquam, soluta placeat! Omnis nulla corrupti ipsum necessitatibus architecto quia sunt nihil, voluptas, excepturi explicabo dolores quasi quidem dolorem, pariatur tempora voluptates? Ullam ea veritatis, placeat, distinctio ut dicta reprehenderit obcaecati facilis odio laudantium nobis exercitationem tempora nesciunt omnis quam repellat doloremque debitis quod totam eaque laborum quisquam odit. Doloremque similique laudantium et sint totam sit a, aspernatur earum labore quia, ab dignissimos voluptate perspiciatis, accusantium repellat optio natus officia illum molestiae saepe nobis quibusdam. Soluta rem illum blanditiis provident corporis et, laboriosam praesentium magnam suscipit necessitatibus, adipisci deleniti nemo aliquam, reprehenderit eius doloremque ex ratione. Id dolorem aut repellendus blanditiis suscipit quibusdam eos, necessitatibus obcaecati animi magnam inventore amet corrupti cupiditate, porro eaque doloribus quam optio aspernatur autem modi numquam earum. Libero corporis, ea inventore sit optio tempora quisquam assumenda, accusamus ut ipsum vero amet pariatur suscipit? Inventore officiis consequatur magnam sint odit, nihil consectetur nesciunt sapiente a praesentium illum, vero quam voluptatem facilis ipsa culpa ratione veniam ad quos, fuga optio. Ullam, voluptatum beatae reiciendis placeat doloremque illum.</p>
  </section>

  {{{ yield }}}

  <section style="padding-top: 5vh; padding-bottom: 5vh;">
    <p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Magnam asperiores repellendus quasi exercitationem odio perferendis illum doloribus hic, quae, voluptate praesentium tempora beatae unde ipsa consequuntur soluta perspiciatis commodi nobis. Numquam, soluta placeat! Omnis nulla corrupti ipsum necessitatibus architecto quia sunt nihil, voluptas, excepturi explicabo dolores quasi quidem dolorem, pariatur tempora voluptates? Ullam ea veritatis, placeat, distinctio ut dicta reprehenderit obcaecati facilis odio laudantium nobis exercitationem tempora nesciunt omnis quam repellat doloremque debitis quod totam eaque laborum quisquam odit. Doloremque similique laudantium et sint totam sit a, aspernatur earum labore quia, ab dignissimos voluptate perspiciatis, accusantium repellat optio natus officia illum molestiae saepe nobis quibusdam. Soluta rem illum blanditiis provident corporis et, laboriosam praesentium magnam suscipit necessitatibus, adipisci deleniti nemo aliquam, reprehenderit eius doloremque ex ratione. Id dolorem aut repellendus blanditiis suscipit quibusdam eos, necessitatibus obcaecati animi magnam inventore amet corrupti cupiditate, porro eaque doloribus quam optio aspernatur autem modi numquam earum. Libero corporis, ea inventore sit optio tempora quisquam assumenda, accusamus ut ipsum vero amet pariatur suscipit? Inventore officiis consequatur magnam sint odit, nihil consectetur nesciunt sapiente a praesentium illum, vero quam voluptatem facilis ipsa culpa ratione veniam ad quos, fuga optio. Ullam, voluptatum beatae reiciendis placeat doloremque illum.</p>
  </section>

  <section style="padding-top: 5vh; padding-bottom: 5vh;">
    <p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Magnam asperiores repellendus quasi exercitationem odio perferendis illum doloribus hic, quae, voluptate praesentium tempora beatae unde ipsa consequuntur soluta perspiciatis commodi nobis. Numquam, soluta placeat! Omnis nulla corrupti ipsum necessitatibus architecto quia sunt nihil, voluptas, excepturi explicabo dolores quasi quidem dolorem, pariatur tempora voluptates? Ullam ea veritatis, placeat, distinctio ut dicta reprehenderit obcaecati facilis odio laudantium nobis exercitationem tempora nesciunt omnis quam repellat doloremque debitis quod totam eaque laborum quisquam odit. Doloremque similique laudantium et sint totam sit a, aspernatur earum labore quia, ab dignissimos voluptate perspiciatis, accusantium repellat optio natus officia illum molestiae saepe nobis quibusdam. Soluta rem illum blanditiis provident corporis et, laboriosam praesentium magnam suscipit necessitatibus, adipisci deleniti nemo aliquam, reprehenderit eius doloremque ex ratione. Id dolorem aut repellendus blanditiis suscipit quibusdam eos, necessitatibus obcaecati animi magnam inventore amet corrupti cupiditate, porro eaque doloribus quam optio aspernatur autem modi numquam earum. Libero corporis, ea inventore sit optio tempora quisquam assumenda, accusamus ut ipsum vero amet pariatur suscipit? Inventore officiis consequatur magnam sint odit, nihil consectetur nesciunt sapiente a praesentium illum, vero quam voluptatem facilis ipsa culpa ratione veniam ad quos, fuga optio. Ullam, voluptatum beatae reiciendis placeat doloremque illum.</p>
  </section>

  <section style="padding-top: 5vh; padding-bottom: 5vh;">
    <p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Magnam asperiores repellendus quasi exercitationem odio perferendis illum doloribus hic, quae, voluptate praesentium tempora beatae unde ipsa consequuntur soluta perspiciatis commodi nobis. Numquam, soluta placeat! Omnis nulla corrupti ipsum necessitatibus architecto quia sunt nihil, voluptas, excepturi explicabo dolores quasi quidem dolorem, pariatur tempora voluptates? Ullam ea veritatis, placeat, distinctio ut dicta reprehenderit obcaecati facilis odio laudantium nobis exercitationem tempora nesciunt omnis quam repellat doloremque debitis quod totam eaque laborum quisquam odit. Doloremque similique laudantium et sint totam sit a, aspernatur earum labore quia, ab dignissimos voluptate perspiciatis, accusantium repellat optio natus officia illum molestiae saepe nobis quibusdam. Soluta rem illum blanditiis provident corporis et, laboriosam praesentium magnam suscipit necessitatibus, adipisci deleniti nemo aliquam, reprehenderit eius doloremque ex ratione. Id dolorem aut repellendus blanditiis suscipit quibusdam eos, necessitatibus obcaecati animi magnam inventore amet corrupti cupiditate, porro eaque doloribus quam optio aspernatur autem modi numquam earum. Libero corporis, ea inventore sit optio tempora quisquam assumenda, accusamus ut ipsum vero amet pariatur suscipit? Inventore officiis consequatur magnam sint odit, nihil consectetur nesciunt sapiente a praesentium illum, vero quam voluptatem facilis ipsa culpa ratione veniam ad quos, fuga optio. Ullam, voluptatum beatae reiciendis placeat doloremque illum.</p>
  </section>

  <section id="specifications" class="page">
    <h1 class="heading heading--1">SPECIFICATIONS</h1>
  </section>

  <section style="padding-top: 5vh; padding-bottom: 5vh;">
    <p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Magnam asperiores repellendus quasi exercitationem odio perferendis illum doloribus hic, quae, voluptate praesentium tempora beatae unde ipsa consequuntur soluta perspiciatis commodi nobis. Numquam, soluta placeat! Omnis nulla corrupti ipsum necessitatibus architecto quia sunt nihil, voluptas, excepturi explicabo dolores quasi quidem dolorem, pariatur tempora voluptates? Ullam ea veritatis, placeat, distinctio ut dicta reprehenderit obcaecati facilis odio laudantium nobis exercitationem tempora nesciunt omnis quam repellat doloremque debitis quod totam eaque laborum quisquam odit. Doloremque similique laudantium et sint totam sit a, aspernatur earum labore quia, ab dignissimos voluptate perspiciatis, accusantium repellat optio natus officia illum molestiae saepe nobis quibusdam. Soluta rem illum blanditiis provident corporis et, laboriosam praesentium magnam suscipit necessitatibus, adipisci deleniti nemo aliquam, reprehenderit eius doloremque ex ratione. Id dolorem aut repellendus blanditiis suscipit quibusdam eos, necessitatibus obcaecati animi magnam inventore amet corrupti cupiditate, porro eaque doloribus quam optio aspernatur autem modi numquam earum. Libero corporis, ea inventore sit optio tempora quisquam assumenda, accusamus ut ipsum vero amet pariatur suscipit? Inventore officiis consequatur magnam sint odit, nihil consectetur nesciunt sapiente a praesentium illum, vero quam voluptatem facilis ipsa culpa ratione veniam ad quos, fuga optio. Ullam, voluptatum beatae reiciendis placeat doloremque illum.</p>
  </section>

  <section id="combine-with" class="page">
    <h1 class="heading heading--1">COMBINE WITH</h1>
  </section>
</div>

{{render '@foot-2020' }}
/* No context defined. */

No notes defined.