<!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 -->
<div id="the-bucket">
<div>
</div>
</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' }}
<div id="the-bucket">
<div>
{{{ yield }}}
</div>
</div>
{{render '@foot-2020' }}
/* No context defined. */
No notes defined.