
	(function () {
		//ESP Integration Code
		window.PianoESPConfig = {
			id: 86
		}

		tp = window["tp"] || [];
		window.tpLoaded = true;
		tp.push(["setCxenseSiteId", '1129572444318057561']);
		/* Checkout related */
		/**
		 * Event properties
		 *
		 * chargeAmount - amount of purchase
		 * chargeCurrency
		 * uid
		 * email
		 * expires
		 * rid
		 * startedAt
		 * termConversionId
		 * termId
		 * promotionId
		 * token_list
		 * cookie_domain
		 * user_token
		 *
		 */
		function onCheckoutComplete(data) {
		}

		function sendSurveyEvent(event) {
			try {
				if (typeof event.params.result != 'undefined') {
					var result = JSON.parse(event.params.result);
					if (result) {
						cX.setEventAttributes({ origin: "nks-web", persistedQueryId: 'b40968cd5ad81ebaaa800ef427172c260ccac6a5' });
						cX.sendEvent("survey", result);
					}
				}
			}
			catch (e) { console.log(e); }
		}

		function onCheckoutExternalEvent(event) {
			switch (event.eventName) {
				case 'survey':
					sendSurveyEvent(event);
			}
		}

		function onCheckoutClose(event) {
			/* Default behavior is to refresh the page on successful checkout */
			if (event && (event.state == "checkoutCompleted" || event.state == "alreadyHasAccess")) {
				setTimeout("location.reload()", 500);
			}
		}

		function onCheckoutCancel() {
		}

		function onCheckoutError() {
		}

		function onCheckoutSubmitPayment() {
		}

		/* Meter callback */
		function onMeterExpired() {
		}

		/* Meter callback */
		function onMeterActive() {
		}

		/* Callback executed when a user must login */
		function onLoginRequired() {
			// this is a reference implementation only
			// your own custom login/registration implementation would
			// need to return the tinypass-compatible userRef inside the callback

			// mysite.showLoginRegistration(function (tinypassUserRef)
			// tp.push(["setUserRef", tinypassUserRef]); // tp.offer.startCheckout(params); // }
			// this will prevent the tinypass error screen from displaying

			return false;
		}

		/* Callback executed after a tinypassAccounts login */
		function onLoginSuccess(data) {
			if (data && window.cX && cX.library) {
				var cp = { id_event: (data.registration ? "registration" : "login") };
				var args = window.cxj_dmp_params || {};
				if (data.params && data.params.sub && window.cx_args && window.cx_args.prefix) {
					args.identities = [{ type: cx_args.prefix, id: data.params.sub }];
				}
				cX.sendEvent("pianoid", cp, args);
			}
			if (!data.registration && !data.params.email_confirmation_required && data.source !== 'OFFER') {
				setTimeout("location.reload()", 500);
			}
		}

		/* Callback executed after an experience executed successfully */
		function onExperienceExecute(event) {
			if (window.localStorage && event && event.user && event.user.uid && event.user.uid != "anon") {
				localStorage.setItem("piano-uid", event.user.uid);
			}
		}

		/* Callback executed if experience execution has been failed */
		function onExperienceExecutionFailed(event) {
		}

		/* Callback executed if external checkout has been completed successfully */
		function onExternalCheckoutComplete(event) {
			/* Default behavior is to refresh the page on successful checkout */
			location.reload();
		}

		tp.push(["setAid", 'ahiAFig7pj']);
		tp.push(["setEndpoint", 'https://buy-ap.piano.io/api/v3']);
		tp.push(["setUseTinypassAccounts", false]);
		tp.push(["setUsePianoIdUserProvider", true]);
		tp.push(["setPianoIdUrl", 'https://id-ap.piano.io']);
		tp.push(["setEspEndpoint", 'https://api-esp-ap.piano.io']);

		/* checkout related events */
		tp.push(["addHandler", "checkoutComplete", onCheckoutComplete]);
		tp.push(["addHandler", "checkoutClose", onCheckoutClose]);
		tp.push(["addHandler", "checkoutCustomEvent", onCheckoutExternalEvent]);
		tp.push(["addHandler", "checkoutCancel", onCheckoutCancel]);
		tp.push(["addHandler", "checkoutError", onCheckoutError]);
		tp.push(["addHandler", "checkoutSubmitPayment", onCheckoutSubmitPayment]);

		/* user login events */
		tp.push(["addHandler", "loginRequired", onLoginRequired]);
		tp.push(["addHandler", "loginSuccess", onLoginSuccess]);

		/* meter related */
		tp.push(["addHandler", "meterExpired", onMeterExpired]);
		tp.push(["addHandler", "meterActive", onMeterActive]);

		tp.push(["addHandler", "experienceExecute", onExperienceExecute]);
		tp.push(["addHandler", "experienceExecutionFailed", onExperienceExecutionFailed]);

		/* external checkout related events */
		tp.push(["addHandler", "externalCheckoutComplete", onExternalCheckoutComplete]);

		/* registr news letter */
		tp.push(["addHandler", "registrationSuccess", function (data) {
			tp.pianoId.loadExtendedUser({
				extendedUserLoaded: function (data) {
					for (var i in data.custom_field_values) {
						var fieldName = data.custom_field_values[i].field_name;
						var fieldValue = data.custom_field_values[i].value;
						if (fieldName == "receiveNewsletter" && fieldValue == "true") {
							var email = tp.pianoId.getUser()
								? tp.pianoId.getUser().email
								: data.user.email;
							var API_URL = "//api-esp-ap.piano.io";
							var SITE_ID = "66";
							var MAILING_LISTS = ["2508", "6357"];
							var body = { email: email, sqids: MAILING_LISTS };
							var xhr = new XMLHttpRequest();
							xhr.open("POST", API_URL + "/tracker/lucid/sub/" + SITE_ID, true);
							xhr.setRequestHeader("Content-type", "application/json");
							xhr.send(JSON.stringify(body));
						}
					}
				}, formName: 'RegistrationFields'
			});
		}]);

		/* set cookie domain */
		if (document.location.host !== 'portal.stg.trico-cms.com') {
			tp.push(['setCookieDomain', 'www.nikkansports.com']);
		}

		/* survey-send-event */
		/* double-opt-in reload */
		window.addEventListener("message", function (event) {
			if (event.data) {
				try {
					var data = JSON.parse(event.data);
					if (data.event === "cfFormSubmission") {
						// カスタムフォーム入力完了
						cX.sendEvent('survey', { experienceId: 'cfFormSubmission' });
					} else if (data.event === "checkoutStateChange") {
						if (data.params.stateName === "state2") {
							// 決済情報入力モーダル掲出
							cX.sendEvent('survey', { experienceId: 'checkoutStateChange_state2' });
						} else if (data.params.stateName === "confirmation") {
							// 決済情報確認モーダル掲出
							cX.sendEvent('survey', { experienceId: 'checkoutStateChange_confirmation' });
						}
					}
					else if (data.event === "successDOI") {
						//ダブルオプトイン完了
						setTimeout("location.reload()", 500);
					}
				} catch (error) {
					//                console.log('error');
					return;
				}
			}
		});

		tp.push(["init", function () {
			tp.experience.init();
			tp.pianoId.updateLang('ja_JP');
		}]);
	})();


	// do not change this section
	// |BEGIN INCLUDE TINYPASS JS|
	(function (src) { var a = document.createElement("script"); a.type = "text/javascript"; a.async = true; a.src = src; var b = document.getElementsByTagName("script")[0]; b.parentNode.insertBefore(a, b) })("//code.piano.io/api/tinypass.min.js");
	// |END   INCLUDE TINYPASS JS|

