window.DigitalFeedback['https://digitalfeedback.euro.confirmit.com/api/digitalfeedback/loader/prod/scenario?programKey=bIBWJz&scenarioId=12409&programVersion=184'] = function (api) {
(function(){
    var ctx = api();
    function getVal(x) { if (x instanceof Function) { return x(); } return x; }
 
    function userfunc4716(ctx, MyInvite, MyContainer, MySurvey, cookieExpiration, cookieExpiration_closeclick, SlideOut, includePages, showConsoleLog) {
var showLog = showConsoleLog == 1 ? true : false; 					// show console log
var DFProgramID  = "2303/4716";										// source data information
var DFProgramVersion = "v1.11";										// script information
var logString = "Persistant Feedback : " + DFProgramVersion + " "; 	// prefix console log entries
var cookieName = MySurvey + "_search_shown"; 						// cookie name to track when to show the invite next time

// Global data object for user data storage
var dObj = {};

// Check for Cookie Drop
if(ConfirmitHelper.getCookie(cookieName)){
	ConfirmitHelper.ConfirmitLog(showLog,logString + MySurvey + " survey cookie present, exiting as within cookie expiration");
	return;
}
// Only run for Desktop uses
if (ConfirmitHelper.getDeviceType() == 'Desktop') {
  ConfirmitHelper.ConfirmitLog(showLog, logString + "Desktop Detected, Continuing");
} else {
  ConfirmitHelper.ConfirmitLog(showLog, logString + "Non Desktop Detected, Exiting");
  return;
}


// 31/03/2026
// Added limiter 
/*
20/100 = only show to 20% of respondents
60/100 = only show to 60% of respondents
90/100 = only show to 90% of respondents	
*/


ConfirmitHelper.ConfirmitLog(showLog, logString + "Rate Limiter: Checking");
if (document.location.host === 'us.rs-online.com') {

	ConfirmitHelper.ConfirmitLog(showLog, logString + "Rate Limiter: Checking USA");
	if (Math.random() < 75 / 100) {
		ConfirmitHelper.ConfirmitLog(showLog, logString + "Rate Limiter: Pass");
	} else {
		ConfirmitHelper.ConfirmitLog(showLog, logString + "Rate Limiter: Fail Exiting...");
		return;
	}

}else {

	ConfirmitHelper.ConfirmitLog(showLog, logString + "Rate Limiter: Checking NON USA");
	if (Math.random() < 75 / 100) {
		ConfirmitHelper.ConfirmitLog(showLog, logString + "Rate Limiter: Pass");
	} else {
		ConfirmitHelper.ConfirmitLog(showLog, logString + "Rate Limiter: Fail Exiting...");
		return;
	}

}



// Only run on the following domains
if (document.location.host === 'my.rs-online.com' || document.location.host === 'it.rs-online.com' || document.location.host === 'de.rs-online.com' || document.location.host === 'at.rs-online.com' || document.location.host === 'ch.rs-online.com' || document.location.host === 'jp.rs-online.com' || document.location.host === 'au.rs-online.com' || document.location.host === 'nz.rs-online.com' || document.location.host === 'th.rs-online.com' || document.location.host === 'ph.rs-online.com' || document.location.host === 'sg.rs-online.com' || document.location.host === 'us.rs-online.com' || document.location.host === 'demo.forsta.com' || document.location.host === 'st1-f1.rs-online.com' || document.location.host === 'fr.rs-online.com' || document.location.host === 'st1-uk.rs-online.com' || document.location.host === 'uk.rs-online.com'){
  	ConfirmitHelper.ConfirmitLog(showLog,logString + "Correct domain, continuing");
	ConfirmitHelper.ConfirmitLog(showLog,logString + "Showing Invite in: " + SlideOut + " seconds");
}else{
	ConfirmitHelper.ConfirmitLog(showLog,logString + "Incorrect domain, exiting");
  	return;
}

// Only run on the following pages
var pageCodes = Object.getOwnPropertyNames(includePages);
var pageIncluded = false;
for (var i = 0; i < pageCodes.length; i++){
  
	var pageURL = includePages[pageCodes[i]];
  	var pattern = new RegExp (pageURL);
	var isPage = pattern.test(document.location.href);
	
	ConfirmitHelper.ConfirmitLog(showLog,logString + "Checking: "  + pageURL +  " vs " + document.location.href);
	
	if (isPage){
      pageIncluded = true;
	  i=pageCodes.length; // break the loop
	}
}

if(pageIncluded == false){
	ConfirmitHelper.ConfirmitLog(showLog,logString + "Not on includePages list, exiting");
	return
}else{
    ConfirmitHelper.ConfirmitLog(showLog,"**********************************");
    ConfirmitHelper.ConfirmitLog(showLog,logString + "URL: " + pageURL);
	ConfirmitHelper.ConfirmitLog(showLog,logString + "Page match, continuing");
  	ConfirmitHelper.ConfirmitLog(showLog,"**********************************");
}

    // Load invite off the side of the page
	var ctx = api();
	ctx.invite(MyInvite);
	ctx.show();

	ConfirmitHelperX = {
	
      'toggle' : function() {
        var element1 = document.getElementById("slideout");
        var element2 = document.getElementById("slideout_inner");
        if (element1.className === "slideouttog1") {
          element1.className = "slideouttog2";
          element2.className = "slideout_innertog2";
        } else {
          element1.className = "slideouttog1";
          element2.className = "slideout_innertog1";
        }
      }
    }

	var cffbttriggered = false;

	ConfirmitHelperX.openPop = function(dObj){
		if( !cffbttriggered ){

			const target = '.myinlinecontainer';

			var ctx = api()
                ctx.container(MyContainer,{target})
				ctx.survey(MySurvey)
				ctx.data(dObj)
          		ctx.show();
  
          cffbttriggered = true;

          	// Event for when the invite is shown on screen
	    	ConfirmitHelper.ConfirmitLog(showLog,logString + ": Triggering Invite (On timer)");
			ConfirmitHelper.setCookie(cookieName, "1", {path : '/', expiry : parseInt(cookieExpiration) * 86400, secure:true, samesite: 'None'});
			ConfirmitHelper.ConfirmitLog(showLog,logString + ": Cookie Dropped - " + cookieName + " Time Delay (Days): " + cookieExpiration);

          ctx.events.completeSurvey.on(function() { 
				document.getElementById('slideout').style.display = "none";
				ConfirmitHelper.ConfirmitLog(showLog,logString + "Survey Completed: closing invite");
			});
		}
    // Toggle the invite to show
	ConfirmitHelperX.toggle();
    }
	
	// Event when the "close" button is clicked on the invite
    ctx.events.closeInvite.on(function() { 
		ConfirmitHelper.ConfirmitLog(showLog,logString + "Invite Closed (X button clicked)");
		ConfirmitHelper.setCookie(cookieName, "1", {path : '/', expiry : parseInt(cookieExpiration_closeclick) * 86400, secure:true, samesite: 'None'});
		ConfirmitHelper.ConfirmitLog(showLog,logString + ": Cookie Dropped - " + cookieName + " Time Delay (Days): " + cookieExpiration_closeclick);
    });


	// Initial Page loading event
    setTimeout(function(){
		var element1 = document.getElementById("slideout");
		// If not slide out already
        if (element1.className === "slideouttog1") {
          ConfirmitHelper.ConfirmitLog(showLog,logString + ": Invite Shown");
          setData(dObj);
		  ConfirmitHelperX.openPop(dObj);
        }else{
			ConfirmitHelper.ConfirmitLog(showLog,logString + ": Invite already open, skipping");
		}
     }, SlideOut * 1000);// Slide the invite automatically after x seconds
  
	// Keep track of page counts in the session
  	var pageCount = +sessionStorage.getItem('visited_page_count');
	sessionStorage.setItem('visited_page_count', ++pageCount);

	// Function to populate the data package
	function setData(){
			//Get language from website
          	var FLang = getLang();

			dObj.DFSiteLanguage = FLang[0];
			dObj.l = FLang[1];
          	dObj.DFID = DFProgramID;
  			dObj.DFVersion = DFProgramVersion;
           	dObj.DFSource = "Web_Search";

			dObj.DFPageRef = document.referrer;
       		dObj.DFPageURL = document.location.href.toLowerCase();
			dObj.DFHost = document.location.host;

       		dObj.DFuws_visitor_id = sessionStorage.getItem("uws_visitor_id");
       		dObj.DFpathname = location.pathname;
       		dObj.DFpageCount = pageCount;
          
       		dObj.DFScreenWidth = window.screen.width;
       		dObj.DFScreenHeight = window.screen.height;
       		dObj.DFScreenisExtended = window.screen.isExtended
       		dObj.DFScreenOrientation = window.screen.orientation.type        
       		dObj.DFScreenViewportWidth = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0)             		
       		dObj.DFScreenViewportHeight = Math.max(document.documentElement.clientHeight || 0, window.innerHeight || 0)             		     
			dObj.DFdpr = window.devicePixelRatio
			dObj.DFuws_prop_Entry_Page = ConfirmitHelper.getCookie("uws_prop_Entry_Page")          
			dObj.DFuws_visited_pages = sessionStorage.getItem("uws_visited_pages");         
      			
			// Log out the data package for debug
  			ConfirmitHelper.ConfirmitLog(showLog,logString + "Data: " + JSON.stringify(dObj));
      }
}



    userfunc4716(ctx, "Search: Invite (left side)", "Search: Container", "p152489944302", 30, 30, 40, {"Search landing page":"\\?searchTerm=","other search pages":"&searchTerm","Testing Page":"forsta","Americas search page":"\\?q"}, 1)
})();
};