var CM_ACCOUNT_ID="net-a-porter";var CM_SERVER="engine.uk.cognitivematch.com";var CM_REQUEST_HTML_PATH="/cm_request.html";var CM_ENABLE_FIREBUG_LOGGING=false;var CM_RESPONSE_CHECK_PERIOD_MS=10;var CM_RESPONSE_TIMEOUT_MS=3500;var CM_EVENT_DELIM="|";function MatchingEngine(){this.areas=new Array()}MatchingEngine.prototype.setRequestPath=function(pathName){if(arguments.length==0){return}var newpath=arguments[0];if(newpath.charAt(newpath.length-1)=="/"){newpath=newpath.substring(0,newpath.length-1)}CM_REQUEST_HTML_PATH=newpath+CM_REQUEST_HTML_PATH};MatchingEngine.prototype.setup=function(areaNamesList,externalParameters){if(cm_get_ie_ver()==5){return}this.areaNames=areaNamesList.split(",");this.serverTimeout=false;this.timestamp=new Date().getTime();for(var i=0;i<this.areaNames.length;i++){var area=new Object();var thisAreaName=this.areaNames[i];area.name=thisAreaName;area.content=null;area.displayed=false;this.areas[thisAreaName]=area}var cm_request_qs=cm_make_load_areas_qs(this.areaNames);var url="http://"+cm_get_window_location()+CM_REQUEST_HTML_PATH+"?"+cm_request_qs;if(cm_defined(externalParameters)){url=url+"&"+CM_QS_EXTERNAL_PARAMETERS+"="+cm_encode(externalParameters)}var iframeSrc='<iframe id="cm_server_request" style="display:none" src="'+url+'"></iframe>';document.write(iframeSrc);setTimeout("MatchingEngine._responseChecker()",CM_RESPONSE_CHECK_PERIOD_MS)};MatchingEngine.prototype.display=function(areaName){if(cm_get_ie_ver()==5){this._displayAreaDefault(areaName);return}var area=this.areas[areaName];if(cm_defined(area)){document.write('<span id="cm_'+areaName+'">');if(area.content!=null){cm_log("display:responseReceived = true "+areaName);document.write(area.content);area.displayed=true}document.write("</span>")}};MatchingEngine.prototype.logEvent=function(eventType){if(isPageSSL()){return}if(arguments.length==0){return}var eventType=arguments[0];var eventQsParam=eventType;for(var i=1;i<arguments.length;i++){eventQsParam=eventQsParam+CM_EVENT_DELIM+arguments[i]}var qs="event="+cm_encode(eventQsParam)+"&="+cm_common_qs_params();if(cm_defined(document.referrer)){qs=qs+"&"+CM_QS_REFERRER+"="+cm_encode(document.referrer)}if(cm_defined(window.history)){qs=qs+"&"+CM_QS_WINDOW_HISTORY_LENGTH+"="+window.history.length}var logImage=new Image();logImage.src="http://"+CM_SERVER+CM_URI_VISITOR_EVENT_V1_PATH+"?"+qs};MatchingEngine.prototype.logPageView=function(){if(isPageSSL()){return}var qs=cm_common_qs_params();if(cm_defined(document.referrer)){qs=qs+"&"+CM_QS_REFERRER+"="+cm_encode(document.referrer)}if(cm_defined(window.history)){qs=qs+"&"+CM_QS_WINDOW_HISTORY_LENGTH+"="+window.history.length}var logImage=new Image();logImage.src="http://"+CM_SERVER+CM_URI_PAGE_VIEW_PATH+"?"+qs};MatchingEngine.prototype._displayAll=function(){var allDisplayed=true;var j=0;for(;j<this.areaNames.length;j++){var area=this.areas[this.areaNames[j]];cm_log("area "+area);if(!area.displayed){if(area.content!=null){var el=document.getElementById("cm_"+area.name);cm_log("cm_"+area.name+" = "+el);if(el!=null){el.innerHTML=area.content;area.displayed=true}else{area.displayed=false;allDisplayed=false}}else{area.displayed=false;allDisplayed=false}}else{cm_log("capsule.displayed capsule="+area.name)}}return allDisplayed};MatchingEngine.prototype._responseChecker=function(){if(this.serverTimeout){return}var allCapsulesDisplayed=this._displayAll();var elapsed=new Date().getTime()-this.timestamp;var timeout=elapsed>=CM_RESPONSE_TIMEOUT_MS;cm_log("elapsed "+elapsed);if(!allCapsulesDisplayed&&!timeout){setTimeout("MatchingEngine._responseChecker()",CM_RESPONSE_CHECK_PERIOD_MS)}else{if(!allCapsulesDisplayed&&timeout){cm_log("timeout allDisplayed="+allCapsulesDisplayed);this._handleTimeout()}}};MatchingEngine.prototype._handleTimeout=function(){cm_log("timeout");this.serverTimeout=true;for(var i=0;i<this.areaNames.length;i++){var areaName=this.areaNames[i];this.areas[areaName].displayed=this._displayAreaDefault(areaName)}};MatchingEngine.prototype._displayAreaDefault=function(areaName){var defaultTag=document.getElementById(areaName+"_default");if(defaultTag!=null){var el=document.getElementById("cm_"+areaName);if(el!=null){el.innerHTML=defaultTag.innerHTML;return true}}return false};MatchingEngine.prototype._callback=function(areaName,areaContent){cm_log("_callback areaName="+areaName);var area=this.areas[areaName];if(cm_defined(area)){area.content=areaContent}};MatchingEngine.prototype._callback_display_default=function(areaName){cm_log("_callback_display_default areaName="+areaName);if(areaName!=CM_AREA_NAME_WILDCARD){this._displayAreaDefault(areaName)}else{for(var i=0;i<this.areaNames.length;i++){this._displayAreaDefault(this.areaNames[i])}}};var CM_QS_ACCOUNT_ID_PARAM="acctid";var CM_QS_CAPSULE_NAME_PARAM="capnm";var CM_QS_TIME_PARAM="t";var CM_QS_TIME_ZONE_PARAM="tzo";var CM_QS_IMPRESSION_ID="impid";var CM_QS_NAVIGATOR_PLUGINS="nplg";var CM_QS_WINDOW_HISTORY_LENGTH="hstl";var CM_QS_WINDOW_SCREEN_HEIGHT="scrh";var CM_QS_WINDOW_SCREEN_WIDTH="scrw";var CM_QS_WINDOW_PIXEL_DEPTH="scrd";var CM_QS_EXTERNAL_PARAMETERS="ep";var CM_QS_REFERRER="ref";var CM_QS_ERROR="err";var CM_URI_CLICK_LOG_PATH="/v1/click";var CM_URI_REQUEST_LOG_PATH="/v1/request";var CM_URI_PAGE_VIEW_PATH="/v1/page-view";var CM_URI_VISITOR_EVENT_V1_PATH="/v1/visitor-event";var CM_URI_LOG_URL_REQUEST="/v1/log-url-request";var CM_COOKIE_NAME_CAPSULE_CLICK="click";var CM_AREA_NAME_WILDCARD="*";function cm_make_load_areas_qs(areaNames){var qs=cm_common_qs_params();for(var i=0;i<areaNames.length;i++){qs=qs+"&=[&"+CM_QS_CAPSULE_NAME_PARAM+"="+cm_encode(areaNames[i])+"&=]"}qs=qs+cm_make_production_mode_global_qs_params();return qs}function cm_common_qs_params(){return CM_QS_ACCOUNT_ID_PARAM+"="+cm_encode(CM_ACCOUNT_ID)+"&"+cm_make_time_qs()}function cm_make_production_mode_global_qs_params(){var qs="";if(cm_defined(navigator.plugins)){qs=qs+"&"+CM_QS_NAVIGATOR_PLUGINS+"="+navigator.plugins.length}if(cm_defined(window.history)){qs=qs+"&"+CM_QS_WINDOW_HISTORY_LENGTH+"="+window.history.length}if(cm_defined(window.screen.height)){qs=qs+"&"+CM_QS_WINDOW_SCREEN_HEIGHT+"="+window.screen.height}if(cm_defined(window.screen.width)){qs=qs+"&"+CM_QS_WINDOW_SCREEN_WIDTH+"="+window.screen.width}if(cm_defined(window.screen.pixelDepth)){qs=qs+"&"+CM_QS_WINDOW_PIXEL_DEPTH+"="+window.screen.pixelDepth}if(cm_defined(document.referrer)){qs=qs+"&"+CM_QS_REFERRER+"="+cm_encode(document.referrer)}return qs}function cm_make_time_qs(){var date=new Date();return CM_QS_TIME_PARAM+"="+date.getTime()+"&"+CM_QS_TIME_ZONE_PARAM+"="+date.getTimezoneOffset()}function cm_log_click(capsuleName,impressionId){var qs=cm_common_qs_params();qs=qs+"&"+CM_QS_CAPSULE_NAME_PARAM+"="+cm_encode(capsuleName);qs=qs+"&"+CM_QS_IMPRESSION_ID+"="+cm_encode(impressionId);var url="http://"+CM_SERVER+CM_URI_CLICK_LOG_PATH+"?"+qs;if(!cm_is_safari()&&!cm_is_chrome()){cm_image_log_click(url)}else{if(cm_is_safari()||cm_is_chrome()){cm_ajax_log_request(url)}else{cm_image_log_click(url)}}return true}function cm_ajax_log_request(url){req=cm_new_xmlhttprequest();if(req){req.open("GET",url,false);req.send("");return true}else{return false}}function cm_new_xmlhttprequest(){var req=false;if(window.XMLHttpRequest&&!(window.ActiveXObject)){try{req=new XMLHttpRequest()}catch(e){req=false}}else{if(window.ActiveXObject){try{req=new ActiveXObject("Msxml2.XMLHTTP")}catch(e){try{req=new ActiveXObject("Microsoft.XMLHTTP")}catch(e){req=false}}}}return req}function cm_image_log_click(url){cm_log("cm_image_log_click url="+url);var logImage=new Image();logImage.src=url;cm_ie_friendly_delay();return true}function cm_ie_friendly_delay(){var x=0;var now=new Date().getTime();var delay=now+150;while(new Date().getTime()<delay){var e=document.getElementById(new Date().getTime());if(e!=null){x=x+1}}return x>0}function cm_log_click_check(){var cookie=cm_read_cookie(CM_COOKIE_NAME_CAPSULE_CLICK);if(cookie!=null){var logImage=new Image();logImage.src="http://"+CM_SERVER+CM_URI_CLICK_LOG_PATH+"?"+cookie;cm_delete_cookie(CM_COOKIE_NAME_CAPSULE_CLICK)}}function cm_is_safari(){var ua=navigator.userAgent.toLowerCase();if(ua.indexOf("safari/")!=-1&&ua.indexOf("chrome")==-1){return true}else{return false}}function cm_is_chrome(){var ua=navigator.userAgent.toLowerCase();return ua.indexOf("chrome")!=-1}function cm_defined(name){return typeof(name)!="undefined"}function cm_log(m){if(CM_ENABLE_FIREBUG_LOGGING){console.log(m)}}function cm_encode(p){return encodeURIComponent(p)}function cm_get_window_location(){var hostname=window.location.hostname;if(cm_defined(window.location.port)&window.location.port!=""){hostname=hostname+":"+window.location.port}return hostname}function cm_set_cookie(name,value,seconds){var expires;if(seconds){var date=new Date();date.setTime(date.getTime()+(seconds*1000));expires="; expires="+date.toGMTString()}else{expires=""}document.cookie=name+"="+value+expires+"; path=/"}function cm_read_cookie(name){var nameEQ=name+"=";var ca=document.cookie.split(";");for(var i=0;i<ca.length;i++){var c=ca[i];while(c.charAt(0)==" "){c=c.substring(1,c.length)}if(c.indexOf(nameEQ)==0){return c.substring(nameEQ.length,c.length)}}return null}function cm_delete_cookie(name){cm_set_cookie(name,"",-1)}function cm_get_ie_ver(){var rv=-1;if(navigator.appName=="Microsoft Internet Explorer"){var ua=navigator.userAgent;var re=new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})");if(re.exec(ua)!=null){rv=parseFloat(RegExp.$1)}}return rv}function isPageSSL(){if(document.location.protocol=="https:"){return true}return false}var MatchingEngine=new MatchingEngine();
