 (function () {
  
window.PianoESPConfig = {
        hashId: "99E2527E-05C2-46BA-905D-121AA1E133F9"
    }


   console.log("integration");
  tp = window["tp"] || [];

  window.addEventListener('message', function(e) {
if(e.data == "showOffer"){
tp.offer.show({offerId:'OFJ92QK84HPH'});
}});
  
    /* Checkout related */
    /**
     * Event properties
     *
     * chargeAmount - amount of purchase
     * chargeCurrency
     * uid
     * email
     * expires
     * rid
     * startedAt
     * termConversionId
     * termId
     * promotionId
     * token_list
     * cookie_domain
     * user_token
     *
     */
    var logIn = document.getElementById('logIn');
    var signIn = document.getElementById('signIn');
    var myAccount = document.getElementById('myAccount');
    var logout = document.getElementById('logout');

    var logInMob = document.getElementById('logInMob');
    var signInMob = document.getElementById('signInMob');
    var myAccountMob = document.getElementById('myAccountMob');
    var logoutMob = document.getElementById('logoutMob');

    var allButtons = document.getElementsByClassName('piano-control');
    function hideAll(){
        for(i=0; i<allButtons.length; i++){
            allButtons[i].classList.add('hidden')
        }
    }
    function onCheckoutComplete(data) {
    }

    function onCheckoutExternalEvent() {
    }

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

    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() {
      hideAll();
      myAccount.classList.remove('hidden');
      logout.classList.remove('hidden');
      myAccountMob.classList.remove('hidden');
      logoutMob.classList.remove('hidden');
    }

    /* Callback executed after an experience executed successfully */
    function onExperienceExecute(event) {
    }

    /* 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();
    }
	function onLogoutSuccess(e){
        hideAll();
        signIn.classList.remove('hidden');
        signInMob.classList.remove('hidden');
        logIn.classList.remove('hidden');
        logInMob.classList.remove('hidden');
    } 
  
    tp.push(["setAid", 'AsmTHs1ipu']);
  	tp.push(["setCxenseSiteId", "3608889934911302653"]);
    tp.push(["setEndpoint", 'https://buy.tinypass.com/api/v3']);
    tp.push(["setUseTinypassAccounts", false ]);
    tp.push(["setUsePianoIdUserProvider", true ]);

    /* 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]);

    /* Blox tag pushes */
    let piano_tag = localStorage.getItem('piano_paywall');
  	tp.push(["setTags",[piano_tag]]);
  
  /* logoutsuccess handler */
	tp.push(["addHandler", "logout", onLogoutSuccess ])
    tp.push([ "setEspEndpoint", "https://api-esp.piano.io" ]);
    tp.push(["addHandler","registrationSuccess", function(data) {
    console.log("registrationSuccess fired", data);
    var email = tp.pianoId.getUser() ? tp.pianoId.getUser().email: data.user.email;
    var API_URL      = "https://api-esp.piano.io";
    var SITE_ID      = 1039;
    var MAILING_LIST = [11833];
    var url          = API_URL + "/tracker/lucid/sub/" + SITE_ID;
    var body         = { email: email, sqids: MAILING_LIST };
    console.log("About to POST to", url, body);
    var xhr = new XMLHttpRequest();
    xhr.open("POST", url, true);
    xhr.setRequestHeader("Content-Type", "application/json");
    xhr.onload = function() {
      console.log("ESP responded", xhr.status, xhr.responseText);
    };
    xhr.onerror = function() {
      console.error("Network error sending to ESP");
    };
    xhr.send(JSON.stringify(body));
  }
]);
  
  
    tp.push(["init", function () { 
      // Password can be reset only if user is anonymous
    if (!tp.user.isUserValid()) {
        // If URL has reset_token parameter
        var tokenMatch = location.search.match(/reset_token=([A-Za-z0-9]+)/);
        if (tokenMatch) {
            // Get value of the token
            var token = tokenMatch[1];
            // Present password reset form with the found token
            tp.pianoId.show({
                'resetPasswordToken': token, loggedIn: function () {
                    // Once user logs in - refresh the page
                    location.reload();
                }
            });
        }
    }
        tp.experience.init();
        if (window.tp.user.isUserValid()){
          onLoginSuccess();  
        } 
    }]);
})();


    // 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)})("https://cdn.tinypass.com/api/tinypass.min.js");
    // |END   INCLUDE TINYPASS JS|
