Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
(function () {\r\n this.ZaloraCouponModule = function (campId, options) {\r\n\r\n ..
Decoded Output download
<? (function () {
this.ZaloraCouponModule = function (campId, options) {
this.campId = campId;
// Default module properties defined
this.defaults = {
apiValue: \'INSIDER-Welcome\',
amount: \'$ 15\',
platform: \'web\',
couponCode: null,
nanoBar: false,
nanoBarBg: \'//image.sociaplus.com/zalorasingapore/c6/6U5B6UXJDZ.jpg\',
overlay: true,
closeButton: true,
activePage: 1,
buttonLinks: {
\'women\': \'//www.zalora.sg/women?utm_source=insider&utm_medium=banner&utm_campaign=email_womendirection\',
\'men\': \'//www.zalora.sg/men?utm_source=insider&utm_medium=banner&utm_campaign=email_mendirection\'
},
backgroundImages: {
\'first\': \'//image.sociaplus.com/zalorasingapore/c6/ZJ78TI783F.jpg\',
\'second\': \'//image.sociaplus.com/zalorasingapore/c6/UEV9LP7C8V.jpg\',
\'third\': \'//image.sociaplus.com/zalorasingapore/c6/9A62B8VNVY.jpg\'
}
};
//Merge default properties with custom properties.
this.options = sQuery.extend({}, this.defaults, options);
};
//Build up modal
function buildModal() {
var overlayHTML = \'\';
var closeButtonHTML = \'\';
var couponCode = sQuery.cookie(this.options.platform + \'-coupon\');
var endTime = sQuery.cookie(\'ins-nano-end\');
// If nano bar activated on modal, create nano bar.
if (this.options.nanoBar && couponCode !== null && endTime !== null) {
buildNanoBar(this.options.nanoBarBg, couponCode, endTime);
return;
}
// If overlay activated, create overlay.
if (this.options.overlay) {
overlayHTML = \'<div class=\"ins-coupon-modal-overlay\"></div>\';
}
//If Close button activated, add it.
if (this.options.closeButton) {
closeButtonHTML = \'<div class=\"ins-coupon-modal-close sp-custom-\' + this.campId + \'-10 \"><img src=\"https://cdn.evergage.com/evergage-content/zalora/close-button.png\" style=\"width: 30px;\" class=\"\"></div>\';
}
var firstPageHTML = \'<div class=\"coupon-page-one ins-page passive\" style=\"background: url(\' + this.options.backgroundImages.first + \') 50% 50%\" data-page-id=\"1\"><div class=\"ins-button-container\"><div class=\"ins-button-confirm sp-custom-\' + this.campId + \'-1\" id=\"first-page-confirm\"></div><div class=\"ins-button-decline sp-custom-\' + this.campId + \'-2\" id=\"first-page-decline\"></div></div></div>\';
var secondPageHTML = \'<div class=\"coupon-page-two ins-page passive\" style=\"background: url(\' + this.options.backgroundImages.second + \') 50% 50%\" data-page-id=\"2\"><div class=\"ins-gender-selection-container\"><div class=\"ins-women-container\"><input type=\"radio\" value=\"Women\" name=\"gender\" checked=\"checked\" class=\"sp-custom-\' + this.campId + \'-3\" /></div><div class=\"ins-men-container\"><input class=\"sp-custom-\' + this.campId + \'-4\" type=\"radio\" value=\"Men\" name=\"gender\"/></div></div><div class=\"ins-email-container\"><input type=\"text\" id=\"ins-coupon-email\" name=\"ins-coupon-email\" placeholder=\"Enter your email to receive your gift\"/></div><div class=\"ins-button-container\"><div class=\"ins-button-confirm sp-custom-\' + this.campId + \'-5\" id=\"second-page-confirm\"></div></div></div>\';
var thirdPageHTML = \'<div class=\"coupon-page-three ins-page passive\" style=\"background: url(\' + this.options.backgroundImages.third + \') 50% 50%\" data-page-id=\"3\"><div id=\"ins-coupon-code\"></div><div class=\"ins-button-container\"><a href=\"\' + this.options.buttonLinks.women + \'\" class=\"ins-button-shop-women sp-custom-\' + this.campId + \'-6\"></a><a href=\"\' + this.options.buttonLinks.men + \'\" class=\"ins-button-shop-men sp-custom-\' + this.campId + \'-7\"></a></div></div>\';
sQuery(\'body\').append(\'<div id=\"ins-coupon-modal\"><div class=\"ins-page-container\">\' + (firstPageHTML + secondPageHTML + thirdPageHTML + closeButtonHTML) + \'</div></div>\' + overlayHTML);
if (this.options.activePage) {
sQuery(\'.ins-page\').removeClass(\'active\');
sQuery(\'.ins-page\').addClass(\'passive\');
sQuery(\'[data-page-id=\' + this.options.activePage + \']\').removeClass(\'passive\').addClass(\'active\');
}
}
/**
* nanoBar building here.
* @param coupon
* @param endTime
*/
function buildNanoBar(bg, coupon, endTime) {
var ctd = spApi.widgets.countdown(parseInt(endTime), spApi.getTime());
sQuery(\'header.body__header\').prepend(\'<div id=\"ins-nanobar\"><div class=\"ins-bar-container\" style=\"background-image: url(\'+bg+\')\"><div class=\"ins-nano-bar-coupon\">\' + coupon + \'</div><div class=\"ins-nano-bar-cd\"></div></div></div>\');
var countdownText;
// Countdown on nanobar
var i = setInterval(function () {
ctd = spApi.widgets.countdown(parseInt(endTime), spApi.getTime());
// Check if its end.
if (ctd.days == \"00\" && ctd.hours == \"00\" && ctd.minutes == \"00\") {
sQuery(\'.ins-nano-bar-cd\').text(\"0 Day\");
clearInterval(i);
sQuery(\'#ins-nanobar\').remove();
return false;
}
countdownText = Number(ctd.days) + 1;
if (countdownText > 1) {
countdownText += \' Days\';
} else {
countdownText += \' Day\';
}
sQuery(\'.ins-nano-bar-cd\').text(countdownText);
}, 1000);
}
/**
* All events defined & triggered here.
*/
function initializeEvents() {
var that = this;
//First page confirmation event.
sQuery(\'#first-page-confirm\').on(\'click\', function () {
that.next();
});
//First page declive event.
sQuery(\'#first-page-decline\').on(\'click\', function () {
that.close();
});
// second page confirmation events.
sQuery(\'#second-page-confirm\').on(\'click\', function () {
var userGender = sQuery(\'.ins-gender-selection-container input[type=radio]:checked\').val();
var email = sQuery(\'#ins-coupon-email\').val();
// If mail validation fails, then do nothing.
if (!validateEmail(email)) {
sQuery(\'#ins-coupon-email\').addClass(\'error\');
sQuery(\'#ins-coupon-email\').attr(\"placeholder\", \"Please enter valid email address.\").val(\'\');
return;
}
// If gender and email selected, proceed.
if (userGender && email) {
var dataObject = {gender: userGender, email: email};
storeCustomLog.apply(this, [dataObject]);
getCouponCode.apply(this, [dataObject, function (coupon) {
if (!coupon) {
sQuery(\'#ins-coupon-email\').addClass(\'error\');
sQuery(\'#ins-coupon-email\').attr(\'placeholder\', \'You are already subscribed.\').val(\'\');
} else {
sQuery(\'#ins-coupon-code\').text(coupon);
sQuery.cookie(that.options.platform + \'-coupon\', coupon, {
path: \'/\',
expires: 7,
domain: partner_site.host
});
that.next();
sQuery.cookie(\'subscribe_to_NL\', 2, {path: \'/\', expires: 3650, domain: partner_site.host});
var dataObjectReward = {gender: userGender, email: email, couponCode: coupon};
storeCustomLog.apply(this, [dataObjectReward]);
//Active nanobar on subscription.
if (that.options.nanoBar) {
sQuery.cookie(\'ins-nano-end\', (spApi.getTime() + (7 * 24 * 60 * 60) - 3600), {
path: \'/\',
expires: 7,
domain: partner_site.host
});
buildNanoBar.apply(this, [that.options.nanoBarBg, coupon, (spApi.getTime() + (7 * 24 * 60 * 60) - 3600)]);
}
pushToDataLayer.call(this);
}
}, that.apiValue]);
}
});
sQuery(\'#ins-coupon-email\').on(\'input\', function () {
var email = sQuery(this).val();
if (!validateEmail(email)) {
sQuery(this).removeClass(\'success-ins\').addClass(\'error\');
} else {
sQuery(this).removeClass(\'error\').addClass(\'success-ins\');
}
});
sQuery(\'.ins-coupon-modal-close, .ins-coupon-modal-overlay\').on(\'click\', function () {
that.close();
});
}
function validateEmail(email) {
var re = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
return re.test(email);
}
function storeCustomLog(params) {
var campId = this.campId;
spApi.customizationLog({
campId: campId,
logName: \"User Information - Coupon Module\",
otherData: {
userInfo: JSON.stringify(params)
}
});
}
function pushToDataLayer() {
if (typeof dataLayer != \'undefined\') {
dataLayer.push(
{\'event\': \'NLSubscription\'}
);
}
}
/**
* Get coupon Code from partners API, and return data to callback.
* @param params
* @param callback
* @param apiValue
*/
function getCouponCode(params, callback, apiValue) {
var uniqueApiKey = \'76d80224611fc919a5d54f0ff9fba446\';
sQuery.ajax({
url: \'//www.zalora.sg/newsletter/thirdpartysignup/?key=\' + uniqueApiKey + \'&gender=\' + params.gender + \'&email=\' + params.email + \'&source=\' + apiValue,
type: \'get\',
success: function (r) {
var res = JSON.parse(r);
if (res.code !== null && res.subscriptionResult == 1) {
callback(res.code);
} else {
callback(false);
}
}
});
}
/**
* For going next page.
*/
ZaloraCouponModule.prototype.next = function () {
var activePageId = sQuery(\'#ins-coupon-modal .active\').attr(\'data-page-id\');
// If its last page, than do nothing.
if (activePageId == sQuery(\'.ins-page\').length) return;
sQuery(\'[data-page-id=\' + activePageId + \']\').removeClass(\'active\').addClass(\'passive\');
var nextPageId = Number(activePageId) + 1;
sQuery(\'[data-page-id=\' + nextPageId + \']\').removeClass(\'passive\').addClass(\'active\');
};
// For closing campaign.
ZaloraCouponModule.prototype.close = function () {
sQuery(\'#ins-coupon-modal, .ins-coupon-modal-overlay\').remove();
};
/**
* Init campaign and events.
*/
ZaloraCouponModule.prototype.init = function () {
buildModal.call(this);
initializeEvents.call(this);
};
}()); ?>
Did this file decode correctly?
Original Code
(function () {\r\n this.ZaloraCouponModule = function (campId, options) {\r\n\r\n this.campId = campId;\r\n\r\n // Default module properties defined\r\n this.defaults = {\r\n apiValue: \'INSIDER-Welcome\',\r\n amount: \'$ 15\',\r\n platform: \'web\',\r\n couponCode: null,\r\n nanoBar: false,\r\n nanoBarBg: \'//image.sociaplus.com/zalorasingapore/c6/6U5B6UXJDZ.jpg\',\r\n overlay: true,\r\n closeButton: true,\r\n activePage: 1,\r\n buttonLinks: {\r\n \'women\': \'//www.zalora.sg/women?utm_source=insider&utm_medium=banner&utm_campaign=email_womendirection\',\r\n \'men\': \'//www.zalora.sg/men?utm_source=insider&utm_medium=banner&utm_campaign=email_mendirection\'\r\n },\r\n backgroundImages: {\r\n \'first\': \'//image.sociaplus.com/zalorasingapore/c6/ZJ78TI783F.jpg\',\r\n \'second\': \'//image.sociaplus.com/zalorasingapore/c6/UEV9LP7C8V.jpg\',\r\n \'third\': \'//image.sociaplus.com/zalorasingapore/c6/9A62B8VNVY.jpg\'\r\n }\r\n };\r\n\r\n //Merge default properties with custom properties.\r\n this.options = sQuery.extend({}, this.defaults, options);\r\n\r\n };\r\n\r\n //Build up modal\r\n function buildModal() {\r\n var overlayHTML = \'\';\r\n var closeButtonHTML = \'\';\r\n\r\n var couponCode = sQuery.cookie(this.options.platform + \'-coupon\');\r\n var endTime = sQuery.cookie(\'ins-nano-end\');\r\n\r\n // If nano bar activated on modal, create nano bar.\r\n if (this.options.nanoBar && couponCode !== null && endTime !== null) {\r\n buildNanoBar(this.options.nanoBarBg, couponCode, endTime);\r\n return;\r\n }\r\n\r\n // If overlay activated, create overlay.\r\n if (this.options.overlay) {\r\n overlayHTML = \'<div class=\"ins-coupon-modal-overlay\"></div>\';\r\n }\r\n\r\n //If Close button activated, add it.\r\n if (this.options.closeButton) {\r\n closeButtonHTML = \'<div class=\"ins-coupon-modal-close sp-custom-\' + this.campId + \'-10 \"><img src=\"https://cdn.evergage.com/evergage-content/zalora/close-button.png\" style=\"width: 30px;\" class=\"\"></div>\';\r\n }\r\n\r\n var firstPageHTML = \'<div class=\"coupon-page-one ins-page passive\" style=\"background: url(\' + this.options.backgroundImages.first + \') 50% 50%\" data-page-id=\"1\"><div class=\"ins-button-container\"><div class=\"ins-button-confirm sp-custom-\' + this.campId + \'-1\" id=\"first-page-confirm\"></div><div class=\"ins-button-decline sp-custom-\' + this.campId + \'-2\" id=\"first-page-decline\"></div></div></div>\';\r\n\r\n var secondPageHTML = \'<div class=\"coupon-page-two ins-page passive\" style=\"background: url(\' + this.options.backgroundImages.second + \') 50% 50%\" data-page-id=\"2\"><div class=\"ins-gender-selection-container\"><div class=\"ins-women-container\"><input type=\"radio\" value=\"Women\" name=\"gender\" checked=\"checked\" class=\"sp-custom-\' + this.campId + \'-3\" /></div><div class=\"ins-men-container\"><input class=\"sp-custom-\' + this.campId + \'-4\" type=\"radio\" value=\"Men\" name=\"gender\"/></div></div><div class=\"ins-email-container\"><input type=\"text\" id=\"ins-coupon-email\" name=\"ins-coupon-email\" placeholder=\"Enter your email to receive your gift\"/></div><div class=\"ins-button-container\"><div class=\"ins-button-confirm sp-custom-\' + this.campId + \'-5\" id=\"second-page-confirm\"></div></div></div>\';\r\n\r\n var thirdPageHTML = \'<div class=\"coupon-page-three ins-page passive\" style=\"background: url(\' + this.options.backgroundImages.third + \') 50% 50%\" data-page-id=\"3\"><div id=\"ins-coupon-code\"></div><div class=\"ins-button-container\"><a href=\"\' + this.options.buttonLinks.women + \'\" class=\"ins-button-shop-women sp-custom-\' + this.campId + \'-6\"></a><a href=\"\' + this.options.buttonLinks.men + \'\" class=\"ins-button-shop-men sp-custom-\' + this.campId + \'-7\"></a></div></div>\';\r\n\r\n sQuery(\'body\').append(\'<div id=\"ins-coupon-modal\"><div class=\"ins-page-container\">\' + (firstPageHTML + secondPageHTML + thirdPageHTML + closeButtonHTML) + \'</div></div>\' + overlayHTML);\r\n\r\n if (this.options.activePage) {\r\n\r\n sQuery(\'.ins-page\').removeClass(\'active\');\r\n sQuery(\'.ins-page\').addClass(\'passive\');\r\n\r\n sQuery(\'[data-page-id=\' + this.options.activePage + \']\').removeClass(\'passive\').addClass(\'active\');\r\n\r\n }\r\n\r\n }\r\n\r\n /**\r\n * nanoBar building here.\r\n * @param coupon\r\n * @param endTime\r\n */\r\n function buildNanoBar(bg, coupon, endTime) {\r\n var ctd = spApi.widgets.countdown(parseInt(endTime), spApi.getTime());\r\n\r\n sQuery(\'header.body__header\').prepend(\'<div id=\"ins-nanobar\"><div class=\"ins-bar-container\" style=\"background-image: url(\'+bg+\')\"><div class=\"ins-nano-bar-coupon\">\' + coupon + \'</div><div class=\"ins-nano-bar-cd\"></div></div></div>\');\r\n\r\n var countdownText;\r\n // Countdown on nanobar\r\n var i = setInterval(function () {\r\n ctd = spApi.widgets.countdown(parseInt(endTime), spApi.getTime());\r\n // Check if its end.\r\n if (ctd.days == \"00\" && ctd.hours == \"00\" && ctd.minutes == \"00\") {\r\n sQuery(\'.ins-nano-bar-cd\').text(\"0 Day\");\r\n clearInterval(i);\r\n sQuery(\'#ins-nanobar\').remove();\r\n return false;\r\n }\r\n\r\n countdownText = Number(ctd.days) + 1;\r\n\r\n if (countdownText > 1) {\r\n countdownText += \' Days\';\r\n } else {\r\n countdownText += \' Day\';\r\n }\r\n\r\n sQuery(\'.ins-nano-bar-cd\').text(countdownText);\r\n }, 1000);\r\n\r\n }\r\n\r\n /**\r\n * All events defined & triggered here.\r\n */\r\n function initializeEvents() {\r\n var that = this;\r\n //First page confirmation event.\r\n sQuery(\'#first-page-confirm\').on(\'click\', function () {\r\n that.next();\r\n });\r\n\r\n //First page declive event.\r\n sQuery(\'#first-page-decline\').on(\'click\', function () {\r\n that.close();\r\n });\r\n\r\n // second page confirmation events.\r\n sQuery(\'#second-page-confirm\').on(\'click\', function () {\r\n var userGender = sQuery(\'.ins-gender-selection-container input[type=radio]:checked\').val();\r\n var email = sQuery(\'#ins-coupon-email\').val();\r\n // If mail validation fails, then do nothing.\r\n if (!validateEmail(email)) {\r\n sQuery(\'#ins-coupon-email\').addClass(\'error\');\r\n sQuery(\'#ins-coupon-email\').attr(\"placeholder\", \"Please enter valid email address.\").val(\'\');\r\n return;\r\n }\r\n\r\n // If gender and email selected, proceed.\r\n if (userGender && email) {\r\n var dataObject = {gender: userGender, email: email};\r\n storeCustomLog.apply(this, [dataObject]);\r\n getCouponCode.apply(this, [dataObject, function (coupon) {\r\n if (!coupon) {\r\n sQuery(\'#ins-coupon-email\').addClass(\'error\');\r\n sQuery(\'#ins-coupon-email\').attr(\'placeholder\', \'You are already subscribed.\').val(\'\');\r\n } else {\r\n sQuery(\'#ins-coupon-code\').text(coupon);\r\n sQuery.cookie(that.options.platform + \'-coupon\', coupon, {\r\n path: \'/\',\r\n expires: 7,\r\n domain: partner_site.host\r\n });\r\n that.next();\r\n sQuery.cookie(\'subscribe_to_NL\', 2, {path: \'/\', expires: 3650, domain: partner_site.host});\r\n\r\n var dataObjectReward = {gender: userGender, email: email, couponCode: coupon};\r\n storeCustomLog.apply(this, [dataObjectReward]);\r\n\r\n //Active nanobar on subscription.\r\n if (that.options.nanoBar) {\r\n sQuery.cookie(\'ins-nano-end\', (spApi.getTime() + (7 * 24 * 60 * 60) - 3600), {\r\n path: \'/\',\r\n expires: 7,\r\n domain: partner_site.host\r\n });\r\n buildNanoBar.apply(this, [that.options.nanoBarBg, coupon, (spApi.getTime() + (7 * 24 * 60 * 60) - 3600)]);\r\n }\r\n\r\n pushToDataLayer.call(this);\r\n }\r\n }, that.apiValue]);\r\n }\r\n });\r\n\r\n sQuery(\'#ins-coupon-email\').on(\'input\', function () {\r\n var email = sQuery(this).val();\r\n if (!validateEmail(email)) {\r\n sQuery(this).removeClass(\'success-ins\').addClass(\'error\');\r\n } else {\r\n sQuery(this).removeClass(\'error\').addClass(\'success-ins\');\r\n }\r\n });\r\n\r\n sQuery(\'.ins-coupon-modal-close, .ins-coupon-modal-overlay\').on(\'click\', function () {\r\n that.close();\r\n });\r\n\r\n }\r\n\r\n function validateEmail(email) {\r\n var re = /^([\\w-]+(?:\\.[\\w-]+)*)@((?:[\\w-]+\\.)*\\w[\\w-]{0,66})\\.([a-z]{2,6}(?:\\.[a-z]{2})?)$/i;\r\n return re.test(email);\r\n }\r\n\r\n function storeCustomLog(params) {\r\n\r\n var campId = this.campId;\r\n spApi.customizationLog({\r\n campId: campId,\r\n logName: \"User Information - Coupon Module\",\r\n otherData: {\r\n userInfo: JSON.stringify(params)\r\n }\r\n });\r\n\r\n }\r\n\r\n function pushToDataLayer() {\r\n if (typeof dataLayer != \'undefined\') {\r\n dataLayer.push(\r\n {\'event\': \'NLSubscription\'}\r\n );\r\n }\r\n }\r\n\r\n /**\r\n * Get coupon Code from partners API, and return data to callback.\r\n * @param params\r\n * @param callback\r\n * @param apiValue\r\n */\r\n function getCouponCode(params, callback, apiValue) {\r\n var uniqueApiKey = \'76d80224611fc919a5d54f0ff9fba446\';\r\n sQuery.ajax({\r\n url: \'//www.zalora.sg/newsletter/thirdpartysignup/?key=\' + uniqueApiKey + \'&gender=\' + params.gender + \'&email=\' + params.email + \'&source=\' + apiValue,\r\n type: \'get\',\r\n success: function (r) {\r\n var res = JSON.parse(r);\r\n if (res.code !== null && res.subscriptionResult == 1) {\r\n callback(res.code);\r\n } else {\r\n callback(false);\r\n }\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * For going next page.\r\n */\r\n ZaloraCouponModule.prototype.next = function () {\r\n\r\n var activePageId = sQuery(\'#ins-coupon-modal .active\').attr(\'data-page-id\');\r\n // If its last page, than do nothing.\r\n if (activePageId == sQuery(\'.ins-page\').length) return;\r\n\r\n sQuery(\'[data-page-id=\' + activePageId + \']\').removeClass(\'active\').addClass(\'passive\');\r\n var nextPageId = Number(activePageId) + 1;\r\n sQuery(\'[data-page-id=\' + nextPageId + \']\').removeClass(\'passive\').addClass(\'active\');\r\n\r\n };\r\n\r\n // For closing campaign.\r\n ZaloraCouponModule.prototype.close = function () {\r\n sQuery(\'#ins-coupon-modal, .ins-coupon-modal-overlay\').remove();\r\n };\r\n\r\n /**\r\n * Init campaign and events.\r\n */\r\n ZaloraCouponModule.prototype.init = function () {\r\n buildModal.call(this);\r\n initializeEvents.call(this);\r\n };\r\n\r\n}());
Function Calls
| None |
Stats
| MD5 | 067f6d83e18d0047b67d5c0a17fe32e7 |
| Eval Count | 0 |
| Decode Time | 84 ms |