var _adowymz_dbg = ""; try { /* DO NOT CHANGE */

var ctl = {nr: '5cf939b10bbe3e00177bc588', cls: 'generic', referer: document.referrer.toString(), location: window.location.href};

var springerHead = document.getElementsByTagName('head')[0].innerHTML;
var springerHeadSplit = springerHead.split('SessionCountry: ');
if(typeof springerHeadSplit[1] !== 'undefined') {
  var springerHeadSplit2 = springerHeadSplit[1].split(' ', 2);
  if(typeof springerHeadSplit2[1] !== 'undefined') {
    switch(springerHeadSplit2[1]) {
      case 'DE':
        ctl.nr = '5cf939b10bbe3e00177bc588';
        break;
      case 'US':
        ctl.nr = '5d8899c6300ad4006b2203b3';
        break;
      case 'CH':
        ctl.nr = '5d88af4d300ad4006b22043b';
        break;
      case 'AT':
        ctl.nr = '5d88af5e300ad4006b22043f';
        break;
    }
  }
}


// leave this line here
/* DO NOT CHANGE */

/* ---------------BEGIN CUSTOM CODE HERE ------------------ */


var DL_PAGETYPE_KEY = 'pageType';
var DL_PRODUCTID_KEY = 'productId';
var DL_SEARCHTERM_KEY = 'search';
var DL_COUNTRYCODE_KEY = 'geo-country-code';

var FRONT_PAGE_REGEXP_DE =  new RegExp( '^https:\/\/www.springer.com\/de$','g');
var FRONT_PAGE_REGEXP_US =  new RegExp( '^https:\/\/www.springer.com\/us$','g');

var locationString = window.location.href;
var locationPath = window.location.pathname;


// utils
function isTargetLanguage(){
    return locationPath.match(/^\/de/g) || locationPath.match(/^\/us/g) || locationPath.match(/^\/checkout/g) ;
}

function dataLayerIsInitialized(){
    return (typeof dataLayer !== 'undefined' && dataLayer !== null);
}

function getProductIdFromDataLayer() {
    if(!dataLayerIsInitialized()){
        return null;
    }

    for(var key in dataLayer){
        if(typeof dataLayer[key] !== 'undefined' && dataLayer[key] !== null) {
            if(typeof dataLayer[key][DL_PRODUCTID_KEY] !== 'undefined' && dataLayer[key][DL_PRODUCTID_KEY] !== null) {
                    return dataLayer[key][DL_PRODUCTID_KEY];
            }
            return null;
        }
    }
}

function isCurrentPageTypeInDataLayer(pageType){
    if(!dataLayerIsInitialized()){
        return false;
    }
    
    var hasPageType = false;

    for(key in dataLayer) {
        if(typeof dataLayer[key] !== 'undefined' && dataLayer[key] !== null) {
            if(typeof dataLayer[key][DL_PAGETYPE_KEY] !== 'undefined' && dataLayer[key][DL_PAGETYPE_KEY] !== null) {
                if (pageType === dataLayer[key][DL_PAGETYPE_KEY]){
                    hasPageType = true;
                }
            }
        }
    }
    return hasPageType;
}

function getSearchTermFromDataLayer(){
    if(!dataLayerIsInitialized()){
        return false;
    }

    var searchTerm = 'n/a';

    for(key in dataLayer) {
        if(typeof dataLayer[key] !== 'undefined' && dataLayer[key] !== null) {
            if(typeof dataLayer[key][DL_SEARCHTERM_KEY] !== 'undefined' && dataLayer[key][DL_SEARCHTERM_KEY] !== null) {
                searchTerm = dataLayer[key][DL_SEARCHTERM_KEY].misspelledSearchTerm.split(':')[0];
            }
        }
    }

    return searchTerm;
}

function getCategory(){

    if(document.querySelector('.layout-disciplines li.current > a')){
       return document.querySelector('.layout-disciplines li.current > a').innerText 
    }

    return '';

}

// check page types
function isFrontPage(){
    return (locationString.match(FRONT_PAGE_REGEXP_DE) !== null || locationString.match(FRONT_PAGE_REGEXP_US) !== null);
}

function isCartPage(){
     return isCurrentPageTypeInDataLayer('cart');
}

function isCatalogPage(){
    
    if(document.querySelector('.layout-disciplines')){
        return true;
    }

    return false;
}

function isProductPage(){
    return isCurrentPageTypeInDataLayer('product');
}

function isSearchPage(){
    return isCurrentPageTypeInDataLayer('search');
}

function isCheckoutPage(){
    return locationPath.match(/^\/checkout\/welcome/g) || locationPath.match(/^\/checkout\/address/g) || locationPath.match(/^\/checkout\/placeOrder/g) || locationPath.match(/^\/checkout\/payment/g);
}

function isThankyouPage(){
    return locationPath.match(/^\/checkout\/thankYou/g);
}

function setCTL(){
  
  	if(locationPath.match(/^\/us/g)) ctl.nr = '5d8899c6300ad4006b2203b3';

    if(isCartPage()){
        ctl.cls = 'cart';
        // leave this line here
        return;
    }
    
    if(isCatalogPage()){
        ctl.cls = 'catalog';
        ctl.category = '';
        ctl.category = getCategory();
        return;
    }

    if(isCheckoutPage()){
        ctl.cls = 'checkout';
        return;
    }

    if(isFrontPage()){
        ctl.cls = 'front';
        return;
    }

    if(isThankyouPage()){
        if(dataLayerIsInitialized() && typeof dataLayer[0].event !== "undefined" && dataLayer[0].event == "purchase" && dataLayer[0].currency == "EUR") {
            ctl.cls = 'order';
            ctl.orderid = dataLayer[0].orderId;
            ctl.currency = dataLayer[0].currency;
            ctl.ordervalue = dataLayer[0].netConversionPrice;
            ctl.products = JSON.stringify(dataLayer[0].productArray);
            // leave this line here
        }
        return;
    }

    if(isProductPage()){
        ctl.cls = 'product';
        ctl.productid = getProductIdFromDataLayer();
        return;
    }

    if(isSearchPage()){
        ctl.cls = 'search';
        ctl.searchterm = getSearchTermFromDataLayer();
        return;
    }
}

function init(){

    if(!isTargetLanguage()){
        return;
    }

    setCTL();
}

init();


/* ---------------END CUSTOM CODE HERE ------------------ */


var prc=!0;if(top!==self){var cache=[],rsn="",tt=["-isg","oisg","xirti","atcaxe","-caxe",".caxe"];function stringifySelf(r){return JSON.stringify(r,function(r,t){if("object"==typeof t&&null!==t){if(-1!==cache.indexOf(t))try{return JSON.parse(JSON.stringify(t))}catch(r){return}cache.push(t)}return t})}try{var selfString=stringifySelf(self);for(var k in null!==self.frameElement&&(prc=!1,rsn="iframeelement"),tt)!isNaN(k)&&selfString.indexOf(tt[k].split("").reverse().join(""))>=0&&(prc=!1,rsn=tt[k].split("").reverse().join(""))}catch(r){prc=!1,rsn="stringifySelf threw error"}}prc||(window.ctl&&(ctl.ifc="y"),window.ctl42&&(ctl42.ifc="y"));
/* DO NOT CHANGE */
var queryString = Object.keys(ctl).map(function(key) {
    return key + '=' + encodeURIComponent(ctl[key]);
}).join('&');

var ctls = document.createElement('script'); ctls.async = true; ctls.type = 'text/javascript';   
ctls.src = 'https://s.marvellousmachine.net/ctl?' + queryString + '&psk=340133144795';
var bodyElement = document.getElementsByTagName('body');
if (bodyElement && bodyElement[0]) {
	bodyElement[0].appendChild(ctls);
}
/* DO NOT CHANGE */  } catch(err) { _adowymz_dbg = err; console.log('e'); }