try{var cX=window.cX=window.cX||{};cX.callQueue=cX.callQueue||[];cX.CCE=cX.CCE||{};cX.CCE.callQueue=cX.CCE.callQueue||[];if(!cX.CCE.library){cX.CCE.library={version:"2.44",ccePushUrl:"https://comcluster.cxense.com/cce/push?callback={{callback}}",prefix:null,persistedQueryId:null,testGroup:-1,testVariant:null,previewTestId:null,previewCampaign:null,previewDiv:null,previewId:null,offerProductId:null,startTime:new Date,visibilityField:"timeHalf",trackTime:.5,noCache:false,activeSnapPoint:null,snapPoints:[],activeWidgets:[],"__cx-toolkit__":{isShown:false,data:[]},utmParams:[],sendPageViewEvent:function(prefix,persistedQueryId,args,callback){this.init(null,prefix,persistedQueryId,this.visibilityField,function(){cX.sendPageViewEvent(args,callback)})},init:function(scriptPattern,prefix,persistedQueryId,visibilityField,callback){this.prefix=prefix;this.persistedQueryId=persistedQueryId;var params={};if(scriptPattern){var scripts=document.getElementsByTagName("script");var script=null;for(var i=0;!script&&i-1){script=scripts[i]}}if(script&&script.src&&script.src.indexOf("#")>-1){var searchPart=script.src.replace(/.*#/,"");params=cX.decodeUrlEncodedNameValuePairs(searchPart)}}var args=cX.parseUrlArgs();cX.Object.forEach(args,cX.createDelegate(this,function(value,key){if(value!==undefined&&key.match(/utm_(source|medium|content|campaign|term)/i)){this.utmParams.push({key:key,value:value})}}));this.testVariant=args.testVariant||params.testVariant||params.ver;this.previewTestId=args.testId||params.testId;this.previewCampaign=args.previewCampaign||params.previewCampaign;this.previewDiv=args.previewDiv||params.previewDiv||"current";this.previewId=args.previewId||params.previewId;this.offerProductId=args.cx_productId||params.cx_productId;this.noCache=args.cx_nocache==="1"||params.cx_nocache==="1";if(this.testGroup===-1){this.testGroup=this.getTestGroup()}if(this.prefix&&this.persistedQueryId){cX.setEventAttributes({origin:this.prefix+"-web",persistedQueryId:this.persistedQueryId})}cX.setCustomParameters({ver:this.version,testGroup:this.testGroup});if(visibilityField&&visibilityField.length){this.visibilityField=visibilityField}if(this.startTime){var delay=(new Date-this.startTime)/1e3;if(delay>2){cX.setCustomParameters({loadDelay:delay.toFixed(1)})}this.startTime=null}if(location.protocol==="http:"){cX.setCustomParameters({insecure:"y"})}this._insertPreview();var showTools=this._parseSavedParameter("showTools",args,params);if(showTools){var useLocal=this._parseSavedParameter("useLocalToolkit",args,params);this._showTools(useLocal)}if(callback){callback()}},_parseSavedParameter:function(paramName,args,params){try{var storageKey="_cX_"+paramName;var isParameterChanged=args[paramName]!==undefined||params[paramName]!==undefined;var isParameterSet=args[paramName]==="1"||params[paramName]==="1";if(cX.hasLocalStorage()){if(isParameterChanged){localStorage.setItem(storageKey,isParameterSet?"1":"0")}else{isParameterSet=localStorage.getItem(storageKey)==="1"}}return isParameterSet}catch(e){}},setVisibilityField:function(visibilityField){this.visibilityField=visibilityField},setSnapPoints:function(viewPorts){this.snapPoints=viewPorts;this.activeSnapPoint=this._getSnapPoint();var t;window.addEventListener("resize",cX.createDelegate(this,function(){clearTimeout(t);t=setTimeout(cX.createDelegate(this,function(){this._renderResizedWidgets()}),200)}),false)},_getSnapPoint:function(){var v=this.snapPoints;if(!v.length){return""}var width=cX.getWindowSize().width;for(var i=0;i=v[i].min){return v[i].name}}return v[v.length-1].name},_renderResizedWidgets:function(){var newSnap=this._getSnapPoint();if(newSnap!==this.activeSnapPoint){this.activeSnapPoint=newSnap;for(var i=0;i=this.trackTime}),callback:cX.createDelegate(this,function(state){this._reportWidgetVisible(testId,testVariant,items)})}})}},_instrumentClickLinks:function(widgetParams,testId,testVariant,items){var divId=widgetParams&&widgetParams.targetElementId;var ctrlLinksCss=widgetParams&&widgetParams.ctrlLinksCss||"a";var ctrlSpaAttr=widgetParams&&widgetParams.ctrlSpaAttr;var element=document.getElementById(divId);if(!element){return}var links=[].slice.call(element.querySelectorAll(ctrlLinksCss)).filter(cX.createDelegate(this,function(elem){return this._getElemLink(elem,ctrlSpaAttr)}));for(var i=0;i=0?"&":"?")+key+"="+value}})}var fragmentPos=clickUrl.indexOf("#");if(fragmentPos>=0){clickUrl=clickUrl.substring(0,fragmentPos)+redirectQuery+clickUrl.substring(fragmentPos)}else{clickUrl=clickUrl+redirectQuery}return cX.clickTracker(clickUrl)}},getDivId:function(className){if(className&&className.length){var testCandidates=document.getElementsByClassName(className);if(testCandidates&&testCandidates.length===1){var div=testCandidates[0];if(!(div.id&&div.id.length)){div.id=className+"-01"}return div.id}}return null},_processResult:function(widgetParams,items){if(items&&items.length){var item=items[0];if(!this._isEmptyType(item.type)){var testId=item.testId||"0";var testVariant=item.type==="ctrl"?"ctrl":"cx_"+(item.campaign||0);if(item.type==="ctrl"){this._instrumentClickLinks(widgetParams,testId,testVariant,items)}this.trackVisibility(widgetParams&&widgetParams.targetElementId,testId,testVariant,items)}}},processCxResult:function(testId,divId){var element=document.getElementById(divId);if(!element){return}var cxDivId=null;if(element.previousElementSibling){cxDivId=element.previousElementSibling.id;if(element.className==="template"){element.parentNode.removeChild(element)}}this.trackVisibility(cxDivId||divId,testId,"cx")},_isEmptyType:function(type){return["noImpact","noVisual","free","abTest","piano"].indexOf(type)>=0},_isIgnoredResponse:function(data){if(data&&data.response&&data.response.items&&data.response.items.length){return this._isEmptyType(data.response.items[0].type)}return true},displayResult:function(divId,data,context){if(!divId){return}if(data.response.items&&data.response.items.length){if(data.response.items[0].type==="ctrl"){return}}var template=data.response.template;var rawStyle=data.response.style;var rawCode=data.response.head;if(rawStyle&&rawStyle.length){var style=document.createElement("style");style.type="text/css";if(style.styleSheet){style.styleSheet.cssText=rawStyle}else{style.appendChild(document.createTextNode(rawStyle))}document.getElementsByTagName("head")[0].appendChild(style)}if(rawCode&&rawCode.length){var codeObj=document.createElement("script");codeObj.type="text/javascript";codeObj.text=rawCode;document.getElementsByTagName("head")[0].appendChild(codeObj)}if(this.snapPoints.length){if(!context){context={}}context.activeSnapPoint=this._getSnapPoint();this.activeWidgets.push({targetId:divId,data:data,context:context,templateContent:template})}cX.library._renderTemplate(template,divId,data,context)},runCxVersion:function(testId,divId,widgetParams,context,callback){if(widgetParams.renderTemplateUrl){widgetParams.insertBeforeElementId=divId;widgetParams.testId=testId;widgetParams.testVariant="cx";widgetParams.onImpressionResult=cX.createDelegate(this,function(){this.processCxResult(testId,divId,context);if(callback){callback()}})}else{if(!widgetParams.renderFunction){widgetParams.renderFunction=cX.createDelegate(this,function(data,context){if(testId){this.updateRecsClickUrls(testId,"cx",data.response.items)}this.displayResult(divId,data);this.processCxResult(testId,divId);if(callback){callback(data,context)}})}else{var origRenderFunc=widgetParams.renderFunction;widgetParams.renderFunction=cX.createDelegate(this,function(data,context){this.updateRecsClickUrls(testId,"cx",data.response.items);this.processCxResult(testId,divId);origRenderFunc(data,context);if(callback){callback(data,context)}})}}context=this._applyContext(context,widgetParams);cX.insertWidget(widgetParams,context)},displayWidget:function(divId,widgetParams,context,callback){this.runCxVersion(null,divId,widgetParams,context,callback)},runCtrlVersion:function(testId,divId,callback){this.instrumentClickLinks(divId,testId,"ctrl");this.trackVisibility(divId,testId,"ctrl");if(callback){setTimeout(callback,1)}},runTest:function(testId,divId,testSize,widgetParams,context,callback){if(this.testVariant==="cx"){this.runCxVersion(testId,divId,widgetParams,context,callback)}else if(this.testVariant==="ctrl"){this.runCtrlVersion(testId,divId,callback)}else if(this.testGroup>-1&&testSize>0){if(this.testGroup100*(1-testSize)){this.runCtrlVersion(testId,divId,callback)}}else if(callback){setTimeout(callback,1)}},_renderFunction:function(data,context,widgetParams,callback){if(!this._isIgnoredResponse(data)){this._updateClickUrls(data.response.items);this.displayResult(widgetParams&&widgetParams.targetElementId,data);this._processResult(widgetParams,data.response.items)}else{var item=data.response.items&&data.response.items.length>0&&data.response.items[0];if(item&&item.aid&&item.type==="piano"){cX.loadScript("https://sandbox.tinypass.com/xbuilder/experience/load?aid="+item.aid)}else if(item&&item.type==="abTest"){this.run({targetElementId:widgetParams&&widgetParams.targetElementId,widgetId:item.widgetId},null,function(abModuleData,context){callback(abModuleData,context,data)});return}}this._executeCallback(callback,data,context)},render:function(targetDiv,data,context,callback){this._renderFunction(data,context,{targetElementId:targetDiv},callback)},_executeCallback:function(callback,data,context){if(callback){if(typeof callback==="function"){callback(data,context)}else if(typeof callback==="string"){if(window[callback]&&typeof window[callback]==="function"){window[callback](data,context)}else{var functionName="cx_"+cX.getRandomString();var codeObj=document.createElement("script");codeObj.type="text/javascript";codeObj.text="function "+functionName+"(data,context) {("+callback+")(data,context);}";document.getElementsByTagName("head")[0].appendChild(codeObj);if(window[functionName]&&typeof window[functionName]==="function"){window[functionName](data,context)}}}}},run:function(widgetParams,context,callback){if(!widgetParams.widgetId){throw"Please provide 'widgetId'"}var cb=callback;if(this["__cx-toolkit__"].isShown){this["__cx-toolkit__"].data.push({widget:widgetParams.widgetId,params:widgetParams,responseData:null,responseContext:null,requestContext:context,isRendered:false});cb=cX.createDelegate(this,function(data,context){var requests=this["__cx-toolkit__"].data;for(var i=0;i0){var currWidget=widgets.shift();if(!currWidget.widgetContext){currWidget.widgetContext={}}if(!currWidget.widgetContext.context){currWidget.widgetContext.context={}}currWidget.widgetContext.context.neighborRemovalKeys=duplicateRemovalKeys;currWidget.widgetContext.context.neighbors=alreadyDisplayed;if(widgets.length>0){this.run(currWidget.widgetParams,currWidget.widgetContext,cX.createDelegate(this,function(data,context){if(data&&data.response&&data.response.items&&data.response.items.length){for(var i=0;i