
 




	
	
	

		
		

baynote_globals.TagsURLPrefix="/baynote/tags3/";baynote_globals.CustomScript="customScript";baynote_globals.GuideSet="GuideSet";baynote_globals.ScriptWebapp="r";baynote_globals.ScriptResourceId="Custom";baynote_globals.guideContainerId="baynote_guides";baynote_globals.DefaultCookieAge=10*365*24*60*60*1000;baynote_globals.WindowNameDelimBegin="bAyNoTe>-";baynote_globals.WindowNameDelimEnd="-<EtOnYaB";baynote_globals.ExternalUserIdCookieName="bn_ext_u";baynote_globals.onBeforeTagShow=new Array();baynote_globals.onTagShow=new Array();bnConstants=new Object();bnConstants.ANONYMOUS_USER_ID="ANONYMOUS";bnConstants.UNASSIGNED_USER_ID="UNASSIGNED";bnConstants.DEMO_USER_ID="DEMO";bnConstants.BN_PARAM_PREFIX="bn_";bnConstants.META_PAGE_STATUS="baynote_page_status";bnConstants.META_PAGE_TITLE="baynote_title";bnConstants.META_PAGE_SUBTITLE="baynote_subtitle";bnConstants.POLICY_RESOURCE_ID=baynote_globals.PolicyResourceID;bnConstants.OBSERVER_TAG="baynoteObserver";bnConstants.OBSERVER_RESOURCE_ID=bnConstants.OBSERVER_TAG;bnConstants.GUIDE_TAG="guide";bnConstants.GUIDE_RESOURCE_PREFIX=bnConstants.GUIDE_TAG;bnConstants.SOCIAL_TAG="baynoteSocial";bnConstants.SOCIAL_RESOURCE_ID=bnConstants.SOCIAL_TAG;bnConstants.AJAX_TAG="ajax";bnConstants.MAX_INT=2147483647;bnConstants.JSON_CHARS={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'};bnConstants.NETWORK_ID_RADIX=64;bnConstants.MAX_URL_LENGTH=2000;StringBuffer=function(){this.buffer=[];}
StringBuffer.prototype.append=function append(string){this.buffer.push(string);return this;};StringBuffer.prototype.toString=function toString(){return this.buffer.join("");};BNTag.prototype.injectNoload=function(comment,ph){if(!ph){ph=document.getElementById(this.placeHolderId);}
if(!ph)return;if(this.noload)ph.innerHTML=this.noload;else if(comment)ph.innerHTML='<div comment="'+comment+'"/>';};BNTag.prototype.getTotalPurchases=function(){if(typeof(bnOrderId)!="undefined"&&bnCommon.isNotEmpty(bnOrderId))
this.attrs.purchaseId=bnOrderId;if(typeof(bnOrderTotal)!="undefined"&&bnCommon.isNotEmpty(bnOrderTotal))
this.attrs.totalPurchases=parseFloat(bnOrderTotal);if(typeof(bnOrderDetails)!="undefined"&&bnCommon.isNotEmpty(bnOrderDetails))
this.attrs.purchaseDetails=bnOrderDetails;};BNCommon=function(){};BNCommon.prototype.stringToBoolean=function(str){if(!str)return false;str=str.toLowerCase();if(str==""||str=="false"||str=="f"||str=="0"||str=="no"||str=="n")return false;return true;};BNCommon.prototype.copyObj=function(obj,props){var newObj=new Object();for(var prop in obj){var child=obj[prop];if(typeof(child)=="undefined"||typeof(child)=="function")continue;if(child!=null)newObj[prop]=child;}
return newObj;};BNCommon.prototype.copyProperties=function(src,dst,props){for(var i=0;i<props.length;++i){var name=props[i];var value=src[name];if(typeof(value)=="undefined"||value==null)continue;dst[name]=value;}};BNCommon.prototype.dumpObj=function(obj,name,indent,depth,asHTML){if(asHTML){var ind="&nbsp;&nbsp;";var ret="<br>";}else{var ind="\t";var ret="\n";}
var MAX_DUMP_DEPTH=10;if(depth>MAX_DUMP_DEPTH){return indent+name+": -Maximum Depth Reached-"+ret;}
if(typeof obj=="object"){var child=null;var output=name?(indent+name+ret):"";indent+=ind;var numFunctions=0;for(var item in obj){try{child=obj[item];}catch(e){child="-Unable to Evaluate-";}
if(child==null)output+=indent+item+": <null>"+ret;else if(typeof child=="function")++numFunctions;else if(typeof child=="object")output+=this.dumpObj(child,item,indent,depth+1,asHTML);else output+=indent+item+": "+child+ret;}
if(numFunctions>0)output+=indent+"<"+numFunctions+" function(s)>"+ret;return output;}else return obj;};BNCommon.prototype.dump=function(obj){return this.dumpObj(obj,"","  ",5,false);};BNCommon.prototype.dumpHTML=function(obj){return this.dumpObj(obj,"","  ",5,true);};BNCommon.prototype.getURLParams=function(url){if(!url)var url=window.location.href;var urlParams=new Object();var tmp=url.split("?");if(tmp.length>1&&tmp[1]!=""){tmp=tmp[1];tmp=tmp.split("#");tmp=tmp[0];var params=tmp.split("&");var nameValuePair;for(var i=0;i<params.length;i++){nameValuePair=params[i].split("=");urlParams[nameValuePair[0]]=nameValuePair[1];}}
return urlParams;};BNCommon.prototype.addURLParam=function(url,paramName,value){if(!url)return url;var urlLength=url.length;var newUrl=new StringBuffer();var insertedChar;var baseUrl=url;var baseUrlLength=urlLength;var anchor=null;var anchorIndex=url.indexOf('#');if(anchorIndex>=0){baseUrl=url.substring(0,anchorIndex);if(baseUrl=="")return url;baseUrlLength=baseUrl.length;anchor=url.substring(anchorIndex,urlLength);}
var lastChar=baseUrl.charAt(baseUrlLength-1);if(lastChar=='?'||lastChar=='&'){insertedChar=null;}else if(baseUrl.indexOf('?')>=0){insertedChar='&';}else{insertedChar='?';}
newUrl.append(baseUrl);if(insertedChar)newUrl.append(insertedChar);newUrl.append(paramName);newUrl.append('=');newUrl.append(value);if(anchor)newUrl.append(anchor);return newUrl.toString();};BNCommon.prototype.addURLMetaKeys=function(url,metaKeyList){if(!metaKeyList)return url;var newUrl=url;var metaKeys=metaKeyList.split(",");for(var i=0;i<metaKeys.length;i++){var key=metaKeys[i];var metas=document.getElementsByName(key);for(var j=0;j<metas.length;j++){if(metas[j].tagName.toUpperCase()=="META"){newUrl=bnCommon.addURLParam(newUrl,"bn_"+key,encodeURIComponent(metas[j].content));break;}}}
return newUrl;};BNCommon.prototype.getCookieValue=function(cookieName){return bnSystem.getCookieValue(cookieName);};BNCommon.prototype.setCookie=function(cookieName,cookieValue,cookiePath,cookieExpires){return bnSystem.setCookie(cookieName,cookieValue,cookiePath,cookieExpires);};BNCommon.prototype.removeCookie=function(cookieName){return bnSystem.removeCookie(cookieName);};BNCommon.prototype.normalizeUrl=function(tag,url){if(typeof(tag.bnProxyPrefix)!="undefined"&&tag.bnProxyPrefix&&url.indexOf(tag.bnProxyPrefix)==0&&url.length>tag.bnProxyPrefix.length){return url.substring(tag.bnProxyPrefix.length,url.length);}
return url;};BNCommon.prototype.arrayToJSON=function(arr){var a=['['],b,i,l=arr.length,v;function p(s){if(b){a.push(',');}
a.push(s);b=true;}
for(i=0;i<l;i+=1){v=arr[i];switch(typeof v){case'undefined':case'function':case'unknown':break;default:var json=bnCommon.valueToJSON(v);if(json)p(json);}}
a.push(']');return a.join('');};BNCommon.prototype.booleanToJSON=function(bool){return String(bool);};BNCommon.prototype.numberToJSON=function(num){return isFinite(num)?String(num):"null";};BNCommon.prototype.objectToJSON=function(obj){var a=['{'],b,i,v;function p(s){if(b){a.push(',');}
a.push(bnCommon.valueToJSON(i),':',s);b=true;}
for(i in obj){if(obj.hasOwnProperty(i)){var json=bnCommon.valueToJSON(obj[i]);if(json)p(json);else p("null");}}
a.push('}');return a.join('');};BNCommon.prototype.stringToJSON=function(str){var specialRE=new RegExp("[\\\"\\\\\\x00-\\x1f]","g");if(specialRE.test(str)){return'"'+str.replace(specialRE,function(b){var c=bnConstants.JSON_CHARS[b];if(c)return c;c=b.charCodeAt();return'\\u00'+Math.floor(c/16).toString(16)+(c%16).toString(16);})+'"';}
return'"'+str+'"';};BNCommon.prototype.valueToJSON=function(val){switch(typeof val){case'number':return this.numberToJSON(val);case'string':return this.stringToJSON(val);case'boolean':return this.booleanToJSON(val);case'object':if(val==null){return"null";}else if(val instanceof Array){return this.arrayToJSON(val);}else{return this.objectToJSON(val);}
case'unknown':case'function':case'undefined':break;default:alert("Unrecognized type: "+typeof val);}
return undefined;};BNCommon.prototype.parseJSON=(function(){"use strict";var at,ch,escapee={'"':'"','\\':'\\','/':'/',b:'\b',f:'\f',n:'\n',r:'\r',t:'\t'},text,error=function(m){throw{name:'SyntaxError',message:m,at:at,text:text};},next=function(c){if(c&&c!==ch){error("Expected '"+c+"' instead of '"+ch+"'");}
ch=text.charAt(at);at+=1;return ch;},number=function(){var number,string='';if(ch==='-'){string='-';next('-');}
while(ch>='0'&&ch<='9'){string+=ch;next();}
if(ch==='.'){string+='.';while(next()&&ch>='0'&&ch<='9'){string+=ch;}}
if(ch==='e'||ch==='E'){string+=ch;next();if(ch==='-'||ch==='+'){string+=ch;next();}
while(ch>='0'&&ch<='9'){string+=ch;next();}}
number=+string;if(!isFinite(number)){error("Bad number");}else{return number;}},string=function(){var hex,i,string='',uffff;if(ch==='"'){while(next()){if(ch==='"'){next();return string;}else if(ch==='\\'){next();if(ch==='u'){uffff=0;for(i=0;i<4;i+=1){hex=parseInt(next(),16);if(!isFinite(hex)){break;}
uffff=uffff*16+hex;}
string+=String.fromCharCode(uffff);}else if(typeof escapee[ch]==='string'){string+=escapee[ch];}else{break;}}else{string+=ch;}}}
error("Bad string");},white=function(){while(ch&&ch<=' '){next();}},word=function(){switch(ch){case't':next('t');next('r');next('u');next('e');return true;case'f':next('f');next('a');next('l');next('s');next('e');return false;case'n':next('n');next('u');next('l');next('l');return null;}
error("Unexpected '"+ch+"'");},value,array=function(){var array=[];if(ch==='['){next('[');white();if(ch===']'){next(']');return array;}
while(ch){array.push(value());white();if(ch===']'){next(']');return array;}
next(',');white();}}
error("Bad array");},object=function(){var key,object={};if(ch==='{'){next('{');white();if(ch==='}'){next('}');return object;}
while(ch){key=string();white();next(':');if(Object.hasOwnProperty.call(object,key)){error('Duplicate key "'+key+'"');}
object[key]=value();white();if(ch==='}'){next('}');return object;}
next(',');white();}}
error("Bad object");};value=function(){white();switch(ch){case'{':return object();case'[':return array();case'"':return string();case'-':return number();default:return ch>='0'&&ch<='9'?number():word();}};return function(source,reviver){var result;text=source;at=0;ch=' ';result=value();white();if(ch){error("Syntax error");}
return typeof reviver==='function'?(function walk(holder,key){var k,v,value=holder[key];if(value&&typeof value==='object'){for(k in value){if(Object.prototype.hasOwnProperty.call(value,k)){v=walk(value,k);if(v!==undefined){value[k]=v;}else{delete value[k];}}}}
return reviver.call(holder,key,value);}({'':result},'')):result;};}());BNCommon.prototype.trim=function(str){if(!str)return str;while(str.charAt(0)==" "||str.charAt(0)=="\n"||str.charAt(0)=="\t")
str=str.substring(1);while(str.charAt(str.length-1)==" "||str.charAt(str.length-1)=="\n"||str.charAt(str.length-1)=="\t")
str=str.substring(0,str.length-1);return str;};BNCommon.prototype.stripExtraQuotes=function(s){var t=s.length;if(s.charAt(0)=='"'){s=s.substring(1,t--);}
if(s.charAt(--t)=='"'){s=s.substring(0,t);}
return s;};BNCommon.prototype.getInnerText=function(obj){if(obj.innerText)return obj.innerText;else{var text="";switch(obj.nodeType){case 1:for(var i=0;i<obj.childNodes.length;i++)
text+=this.getInnerText(obj.childNodes.item(i));break;case 3:text+=obj.nodeValue;break;}
return this.trim(text);}};BNCommon.prototype.hasAnyProperty=function(obj){if(obj&&(typeof(obj)!="undefined")){for(var attrName in obj){if(obj.hasOwnProperty(attrName)){var t=typeof obj[attrName];if(t!='function'&&t!='undefined'){return true;}}}}
return false;};BNCommon.prototype.containsKey=function(obj,key){if(typeof(obj["hasOwnProperty"])=="function"){return obj.hasOwnProperty(key);}
else
{return!(typeof(obj[key])=="undefined"||typeof(obj[key])=="function");}};BNCommon.prototype.getURL=function(fullUrl,urlParams,bnParams){if(!urlParams)urlParams=new Object();if(!bnParams)bnParams=new Object();var params=bnCommon.getURLParams(fullUrl);for(var paramName in params){if(typeof(params[paramName])=="function")continue;if(paramName.indexOf(bnConstants.BN_PARAM_PREFIX)==0){bnParams[paramName]=params[paramName];}else{urlParams[paramName]=params[paramName];}}
var url=fullUrl.split("?")[0];var isFirst=true;for(var paramName in urlParams){if(typeof(params[paramName])=="function")continue;if(isFirst)url+="?";else url+="&";isFirst=false;url+=paramName+"=";var value=params[paramName];if(value)url+=value;}
return url;};BNCommon.prototype.isGuideContainerPresent=function(){var present=false;var eids=bnPolicy.getGuideElementIds();for(var i=0;i<eids.length;i++){if(document.getElementById(eids[i])!=null){present=true;break;}}
return present;};BNCommon.prototype.getAllGuideContainersPresent=function(){var containers=new Array();var eids=bnPolicy.getGuideElementIds();for(var i=0;i<eids.length;i++){if(document.getElementById(eids[i])!=null){containers.push(eids[i]);}}
return containers;};BNCommon.prototype.isNotEmpty=function(name){return(name!=null)&&(name!="");};BNCommon.prototype.lookupMeta=function(name){return this.lookupMetaAttrib(name,'name');};BNCommon.prototype.lookupMetaAttrib=function(metaName,attrib){var metas=document.getElementsByTagName("meta");if(!metas)return null;for(var i in metas){if(metas[i]&&metas[i][attrib]&&metas[i][attrib].toLowerCase()==metaName.toLowerCase()){return metas[i].content;}}
return null;};BNCommon.prototype.completePreload=function(params){if(!params||!params.server||!params.customerId||!params.code){bnLog.log("ERROR: completePreload called with insufficient arguments - needs server, customerId, code");return;}
if(typeof baynoteGetTagServer=='function'){params.server=baynoteGetTagServer();baynote_tag.server=baynoteGetTagServer();}
if(typeof baynoteGetCustomerId=='function'){params.customerId=baynoteGetCustomerId();baynote_tag.customerId=baynoteGetCustomerId();}
if(typeof baynoteGetCustomerCode=='function'){params.code=baynoteGetCustomerCode();baynote_tag.code=baynoteGetCustomerCode();}
if(!bnPolicy.get()){bnResourceManager.waitForResource(bnConstants.POLICY_RESOURCE_ID,function(){bnCommon.completePreload(params);});if(params.policyFormat){bnPolicy.load(params.server,params.customerId,params.code,bnUser.getUserId(),params.policyFormat);}else{bnPolicy.load(params.server,params.customerId,params.code,bnUser.getUserId());}
return;}
var loadCustom=true;var loadObs=true;var loadGuide=true;var loadAjax=false;if(typeof(params.preload)=="object"&&params.preload.length!=undefined){loadCustom=false;loadObs=false;loadGuide=false;loadAjax=false;for(var i=0;i<params.preload.length;i++){switch(params.preload[i]){case'custom':loadCustom=true;break;case'observer':loadObs=true;break;case'recommendation':loadGuide=true;break;case'ajax':loadAjax=true;break;}}}
if(loadCustom&&bnPolicy.customScriptPresent){if(!bnResourceManager.getResource(baynote_globals.ScriptResourceId)){bnResourceManager.waitForResource(baynote_globals.ScriptResourceId,function(){bnCommon.completePreload(params);});bnResourceManager.loadResource(baynote_globals.ScriptResourceId,bnPolicy.getCustomScriptAddress(params));return;}}
var observerResId=bnTagManager.getHandlerResourceId(bnConstants.OBSERVER_TAG);if(loadObs&&!bnResourceManager.getResource(observerResId)){bnResourceManager.waitForResource(observerResId,function(){bnCommon.completePreload(params);});bnResourceManager.loadResource(observerResId,bnTagManager.getHdlrResAddress(bnConstants.OBSERVER_TAG,params.server));return;}
var guideResId=bnTagManager.getHandlerResourceId(bnConstants.GUIDE_TAG);if(loadGuide&&!bnResourceManager.getResource(guideResId)){bnResourceManager.waitForResource(guideResId,function(){bnCommon.completePreload(params);});bnResourceManager.loadResource(guideResId,bnTagManager.getHdlrResAddress(bnConstants.GUIDE_TAG,params.server));return;}
var ajaxResId=bnTagManager.getHandlerResourceId(bnConstants.AJAX_TAG);if(loadAjax&&!bnResourceManager.getResource(ajaxResId)){bnResourceManager.waitForResource(ajaxResId,function(){bnCommon.completePreload(params);});bnResourceManager.loadResource(ajaxResId,bnTagManager.getHdlrResAddress(bnConstants.AJAX_TAG,params.server));return;}};BNCommon.prototype.prepareTag=function(tagName,tag,params){if(tag&&params&&typeof params=='object'){for(var p in params){tag[p]=params[p];}}
switch(tagName){case'observer':tag.type=bnConstants.OBSERVER_TAG;break;case'recommendation':tag.type=bnConstants.GUIDE_TAG;break;case'ajax':tag.type=bnConstants.AJAX_TAG;break;}
return tag;};BNCommon.prototype.getResourceName=function(handlerName){switch(handlerName){case'observer':var type=bnTagManager.getHandlerResourceId(bnConstants.OBSERVER_TAG);break;case'recommendation':var type=bnTagManager.getHandlerResourceId(bnConstants.GUIDE_TAG);break;case'ajax':var type=bnTagManager.getHandlerResourceId(bnConstants.AJAX_TAG);break;case'custom':var type=baynote_globals.ScriptResourceId;break;default:return;}
return type;};BNCommon.prototype.getLoadedHandler=function(handlerName){switch(handlerName){case'observer':var type=bnConstants.OBSERVER_TAG;break;case'recommendation':var type=bnConstants.GUIDE_TAG;break;case'ajax':var type=bnConstants.AJAX_TAG;break;case'custom':return bnResourceManager.getResource(baynote_globals.ScriptResourceId);}
return bnTagManager.getHandlerByType(type);};BNCommon.prototype.waitAndExecute=function(handlerName,handlerparams){var resName=this.getResourceName(handlerName);var resId=bnResourceManager.getResource(resName);if(typeof resId!='undefined'){var theHandler=this.getLoadedHandler(handlerName);if(theHandler){if(typeof theHandler=='object'){this.prepareTag(handlerName,baynote_tag,handlerparams);window["bn_tags"][baynote_tag.id]=baynote_tag;bnTagManager.show(baynote_tag.id);baynote_tag=new BNTag(baynote_tag);}}}else{bnResourceManager.waitForResource(resName,function(){bnCommon.waitAndExecute(handlerName,handlerparams);});}};BNCommon.prototype.waitAndExecuteAll=function(handlerparams){var knownHandlers=['observer','recommendation'];for(var i=0;i<knownHandlers.length;i++){this.waitAndExecute(knownHandlers[i],handlerparams);}};BNCommon.prototype.finishCall=function(handlerName,method,methodArgs,scopeObj){var resName=this.getResourceName(handlerName);var resId=bnResourceManager.getResource(resName);if(typeof resId!='undefined'){var bnObject=window;if(scopeObj){bnObject=window[scopeObj];}
if(bnObject&&typeof bnObject=='object'){var methodObj=bnObject[method];if(typeof methodObj=='function'){methodObj.apply(bnObject,methodArgs);}}}else{this.completePreload({server:baynote_tag.server,customerId:baynote_tag.customerId,code:baynote_tag.code,preload:[handlerName]});bnResourceManager.waitForResource(resName,function(){bnCommon.finishCall(handlerName,method,methodArgs,scopeObj);});return;}};BNCommon.prototype.isArray=function(obj){return this.checkType(obj,'Array');};BNCommon.prototype.isNumber=function(obj){return this.checkType(obj,'Number');};BNCommon.prototype.isObject=function(obj){return this.checkType(obj,'Object');};BNCommon.prototype.isString=function(obj){return this.checkType(obj,'String');};BNCommon.prototype.isEmptyType=function(obj){return((typeof obj==='undefined')||(obj===null));};BNCommon.prototype.checkType=function(obj,type){return((!bnCommon.isEmptyType(obj))&&(obj.constructor.toString().indexOf(type)!=-1));};bnCommon=new BNCommon();BNReferrer=function(url){this.url=url;};BNPageInfo=function(){this.fullUrl=window.location.href.split("#")[0];this.urlParams=new Object();this.bnParams=new Object();this.url=bnCommon.getURL(this.fullUrl,this.urlParams,this.bnParams);if(!window.name){var date=new Date();window.name=date.getTime();}
this.checkWindowAttributes();var that=this;var processPageDetailsProxyFn=function(){that.processPageDetails();};bnResourceManager.waitForResource(bnConstants.POLICY_RESOURCE_ID,processPageDetailsProxyFn);};BNPageInfo.prototype.checkWindowAttributes=function(){if(!document.body)
{setTimeout("bnPageInfo.checkWindowAttributes()",200);return;}
this.windowWidth=document.body.scrollWidth;this.windowHeight=document.body.scrollHeight;if(bnIsIE)this.windowHeight=document.body.offsetHeight;};BNPageInfo.prototype.processPageDetails=function(){bnLog.log("INFO: bnPageInfo.processPageDetails is called.");this.checkReferrer();this.checkTitle();this.checkIf404();this.checkWordCount();this.checkLinkCount();};BNPageInfo.prototype.checkReferrer=function(){var referrer;var bn_referdata=bnCommon.getCookieValue("bn_referdata");if(bn_referdata){var parts=bn_referdata.split("|");if(url==parts[1])
referrer=parts[0];bnCommon.removeCookie("bn_referdata");}else referrer=document.referrer;if(!referrer)this.referrer=null;else this.referrer=new BNReferrer(referrer);};BNPageInfo.prototype.checkTitle=function(){var title=null;var metas=document.getElementsByName(bnConstants.META_PAGE_SUBTITLE);if(metas&&metas.length==1)title=metas[0].content;if(!title){var metas=document.getElementsByName(bnConstants.META_PAGE_TITLE);if(metas&&metas.length>0)title=metas[0].content;if(!title)title=document.title;}
this.title=title?title:"";};BNPageInfo.prototype.checkIf404=function(){this.iAm404=false;var metas=document.getElementsByName(bnConstants.META_PAGE_STATUS);if(metas&&metas.length>0){var status=parseInt(metas[0].content);if(status==404)this.iAm404=true;}};BNPageInfo.prototype.checkWordCount=function(){if(typeof(baynote_globals)!="undefined"&&baynote_globals.skipWordCount){this.wordCount=-1;return;}
if(!document.body){this.wordCount=-1;this.linkCount=-1;setTimeout("bnPageInfo.checkWordCount()",200);return;}
this.wordCount=null;var bodyTags=document.getElementsByTagName("body");if(bodyTags.length==0)return;var bodyText=bnCommon.getInnerText(bodyTags[0]);var wordCountRE=new RegExp("\\S+","g");var words=bodyText.match(wordCountRE);if(!words)this.wordCount=0;else this.wordCount=words.length;};BNPageInfo.prototype.checkLinkCount=function(){if(typeof(baynote_globals)!="undefined"&&baynote_globals.skipLinkCount){this.linkCount=-1;return;}
this.linkCount=null;var linkTags=document.getElementsByTagName("a");if(!linkTags)this.linkCount=0;else this.linkCount=linkTags.length;};BNPageInfo.prototype.getWindowName=function(){return window.name;};BNPageInfo.prototype.getWordCount=function(){return this.wordCount;};BNPageInfo.prototype.getLinkCount=function(){return this.linkCount;};BNPageInfo.prototype.getTitle=function(){return this.title;};BNPageInfo.prototype.is404=function(){return this.iAm404;};BNPageInfo.prototype.cookiesAreEnabled=function(){if(typeof(baynote_globals)!="undefined"&&baynote_globals.cookiesDisabled)return false;else return true;};BNPageInfo.prototype.getURL=function(){return this.url;};BNPageInfo.prototype.getFullURL=function(){return this.fullUrl;};BNPageInfo.prototype.getURLParams=function(){return this.urlParams;};BNPageInfo.prototype.getURLParam=function(paramName){return this.urlParams[paramName];};BNPageInfo.prototype.getBNParams=function(){return this.bnParams;};BNPageInfo.prototype.getBNParam=function(paramName){return this.bnParams[paramName];};BNPageInfo.prototype.getReferrerURL=function(){if(!this.referrer)return null;return this.referrer.url;};BNPageInfo.prototype.isBinary=function(url){if(!url)return false;if(url.match(/^[^?]*\.(pdf|doc|xls|ppt)(\?.*)?$/i))return true;if(url.match(/^.*\/m?getfile\?.*$/i))return true;return false;};bnPageInfo=new BNPageInfo();BNUser=function(){this.userId=null;this.extUserId=null;var extUserId=bnCommon.getCookieValue(baynote_globals.ExternalUserIdCookieName);var userFromURL=this.getUserFromURL();if(userFromURL){this.setUserId(userFromURL);return;}
var oldUserId=bnCommon.getCookieValue("_baynote_anon_user");if(oldUserId){this.setUserId(oldUserId);bnCommon.removeCookie("_baynote_anon_user");return;}
var userId;if(baynote_globals.UseWindowName){userId=this.readUserCookieFromWindowName();}
if(!userId){userId=bnCommon.getCookieValue("bn_u");if(baynote_globals.UseWindowName&&userId){this.writeUserCookieToWindowName(userId);}}
if(userId){this.setUserId(userId,true);return;}
this.setUserId(bnConstants.UNASSIGNED_USER_ID);userId=bnCommon.getCookieValue("bn_u");if(!userId)this.setUserId(bnConstants.ANONYMOUS_USER_ID,true);};BNUser.prototype.getUserFromURL=function(){var userParam=bnPageInfo.getBNParam("bn_u");var user=null;if(userParam!=null){if(userParam=="")user=bnConstants.UNASSIGNED_USER_ID;else user=userParam;}
return user;};BNUser.prototype.getUserId=function(tag){if(tag&&tag.userId)return tag.userId;return this.userId;};BNUser.prototype.getExtUserId=function(){return this.extUserId;};BNUser.prototype.setUserId=function(userId,skipWrite){if(bnPageInfo.cookiesAreEnabled()&&!skipWrite){if(baynote_globals.UseWindowName){this.writeUserCookieToWindowName(userId);}
this.writeUserCookie(userId);}
this.userId=userId;};BNUser.prototype.setExtUserId=function(extUserId){if(bnPageInfo.cookiesAreEnabled()){this.writeExtUserCookie(extUserId);}
this.extUserId=extUserId;};BNUser.prototype.resetExtUserId=function(){if(bnPageInfo.cookiesAreEnabled()){bnCommon.removeCookie(baynote_globals.ExternalUserIdCookieName);}
this.extUserId=null;};BNUser.prototype.readUserCookieFromWindowName=function(){var cky;var re=new RegExp(baynote_globals.WindowNameDelimBegin+"({.*})"+
baynote_globals.WindowNameDelimEnd);var m=re.exec(window.name);var custCodeKey=baynote_tag.customerId+'_'+baynote_tag.code;if(m!=null){var mapStr=RegExp.$1;var ckObj=bnCommon.parseJSON(mapStr);var currCkMap=ckObj[custCodeKey];if(currCkMap){cky=currCkMap["bn_u"];}}
return cky;};BNUser.prototype.writeUserCookieToWindowName=function(userId){var re=new RegExp(baynote_globals.WindowNameDelimBegin+"({.*})"+
baynote_globals.WindowNameDelimEnd);var m=re.exec(window.name);var custCodeKey=baynote_tag.customerId+'_'+baynote_tag.code;var ckObj,remaining="";if(m!=null){var mapStr=RegExp.$1;ckObj=bnCommon.parseJSON(mapStr);var currCkMap=ckObj[custCodeKey]||{};currCkMap["bn_u"]=userId;ckObj[custCodeKey]=currCkMap;remaining=window.name.replace(re,'');}else{ckObj={};ckObj[custCodeKey]={"bn_u":userId};remaining=window.name;}
var newCookieStr=baynote_globals.WindowNameDelimBegin
+bnCommon.objectToJSON(ckObj)
+baynote_globals.WindowNameDelimEnd;window.name=newCookieStr+remaining;};BNUser.prototype.reWriteUserCookie=function(){this.writeUserCookie(this.userId);};BNUser.prototype.writeUserCookie=function(userId){this.writeCookie("bn_u",userId);};BNUser.prototype.writeExtUserCookie=function(userId){this.writeCookie(baynote_globals.ExternalUserIdCookieName,userId);};BNUser.prototype.writeCookie=function(name,val){var cookieExpires=this.getDefaultCookieExpiry();bnCommon.setCookie(name,val,"/",cookieExpires);};BNUser.prototype.getDefaultCookieExpiry=function(){var age=baynote_globals.DefaultCookieAge;if(typeof bnPolicy!='undefined'){age=parseFloat(bnPolicy.userCookieAge)*1;}
var currTimestamp=new Date();var currTime=currTimestamp.getTime();currTimestamp.setTime(currTime+age);return currTimestamp.toGMTString();};bnUser=new BNUser();BNPolicy=function(){this.data=null;this.overrides=null;this.userId=null;this.disableAll=bnPageInfo.getBNParam("bn_disable");this.customScriptPresent=false;this.elementIds=null;this.userCookieAge=null;};BNPolicy.prototype.get=function(pId,param){if(!pId)return this.data;if(!this.data)return null;if(!param)return this.data[pId];if(!this.data[pId])return null;return this.data[pId][param];};BNPolicy.prototype.getCondition=function(tag){var origCondition=this.get("inf","cd");if(tag&&tag.conditionName){return origCondition.replace(/^([0-9]+)[.]([A-Z]+)(.*)/,"$1."+tag.conditionName+"$3");}
return origCondition;};BNPolicy.prototype.getOverride=function(pId){if(!pId)return this.overrides;if(!this.overrides)return null;return this.overrides[pId];};BNPolicy.prototype.allowTag=function(tag){if(this.disableAll)return false;var pTag=this.get(tag.type);if(!pTag)return true;if(typeof(pTag.ok)=="undefined")return true;if(!pTag.ok){if(typeof(pTag.load)=="undefined")return false;else return pTag.load;}
return pTag.ok;};BNPolicy.prototype.showTag=function(tag){if(this.disableAll)return false;var pTag=this.get(tag.type);if(!pTag)return true;if(typeof(pTag.ok)=="undefined")return true;return pTag.ok;};BNPolicy.prototype.isNew=function(){return this.isNewPolicy;};BNPolicy.prototype.getGuideElementIds=function(){return this.elementIds;};BNPolicy.prototype.load=function(server,custName,custCode,userId,policyFormat){this.userId=userId;var needUserPolicy=true;bnResourceManager.loadResource(bnConstants.POLICY_RESOURCE_ID,this.getPolicyResourceAddress(server,custName,custCode,userId,needUserPolicy,policyFormat));};BNPolicy.prototype.useExternalId=function(externalId,remove){var needUserPolicy=true;var s=baynote_tag.server;var cn=baynote_tag.customerId;var cc=baynote_tag.code;var u=bnUser.getUserId();var extId=remove?null:externalId;bnResourceManager.removeResource(bnConstants.POLICY_RESOURCE_ID);bnResourceManager.loadResource(bnConstants.POLICY_RESOURCE_ID,this.getPolicyAddressForExtUserId(s,cn,cc,u,needUserPolicy,extId));};BNPolicy.prototype.initJsonPolicy=function(jsonPolicy){var policiesObj=bnCommon.parseJSON(jsonPolicy);if(policiesObj){var basePolicy=policiesObj.basePolicyJSON;var userPolicy=policiesObj.userPolicyJSON;this.registerPolicyObjects(basePolicy,userPolicy);}else{this.registerPolicyObjects(new Object(),null);}}
BNPolicy.prototype.registerPolicy=function(basePolicyJsonStr,userPolicyJsonStr){var basePolicy=bnCommon.parseJSON(basePolicyJsonStr);var userPolicy=bnCommon.parseJSON(userPolicyJsonStr);this.registerPolicyObjects(basePolicy,userPolicy);}
BNPolicy.prototype.registerPolicyObjects=function(basePolicy,userPolicy){this.data=(basePolicy)?basePolicy:new Object();if(userPolicy){for(var category in userPolicy){if(typeof(userPolicy[category])=="function")continue;for(var paramName in userPolicy[category]){if(typeof(userPolicy[category][paramName])=="function")continue;this.setPolicyData(this.data,category,paramName,userPolicy[category][paramName]);}}}
this.overrides=this.computeOverrides();this.applyOverrides(this.overrides);this.userCookieAge=this.get(bnConstants.OBSERVER_TAG,"uca");this.applyDirectives();this.customScriptPresent=this.get(baynote_globals.CustomScript,"hn")!=null;this.elementIds=this.get(baynote_globals.GuideSet,"eids");bnResourceManager.registerResource(bnConstants.POLICY_RESOURCE_ID);}
BNPolicy.prototype.getPolicyResourceAddress=function(server,custName,custCode,userId,needUserPolicy,policyFormat){var subDomain=(typeof(baynote_globals)!="undefined"&&baynote_globals.cookieSubDomain)?baynote_globals.cookieSubDomain:"";var dataFormat=(policyFormat)?policyFormat:"script";return(server+baynote_globals.TagsURLPrefix+"policy?customerId="+custName+"&code="+custCode
+"&subdomain="+subDomain+"&userId="+userId+"&userPolicyRequested="+needUserPolicy
+"&dataFormat="+dataFormat);};BNPolicy.prototype.getPolicyAddressForExtUserId=function(server,custName,custCode,userId,needUserPolicy,extUId){var subDomain="";if(typeof(baynote_globals)!="undefined"&&baynote_globals.cookieSubDomain)
subDomain=baynote_globals.cookieSubDomain;if(extUId){return(server+baynote_globals.TagsURLPrefix+"policy?customerId="
+custName+"&code="+custCode+"&subdomain="+subDomain
+"&userId="+userId
+"&extUserId="+extUId
+"&ts="+(new Date().getTime())
+"&userPolicyRequested="+needUserPolicy);}
return(server+baynote_globals.TagsURLPrefix+"policy?customerId="
+custName+"&code="+custCode+"&subdomain="+subDomain
+"&userId="+bnConstants.UNASSIGNED_USER_ID
+"&ts="+(new Date().getTime())
+"&userPolicyRequested="+needUserPolicy);};BNPolicy.prototype.importData=function(jsonStr){var data=bnCommon.parseJSON(jsonStr);if(!data)data=new Object();return data;};BNPolicy.prototype.applyOverrides=function(overrideData){if(!overrideData)return;for(var cat in overrideData){if(typeof(overrideData[cat])=="function")continue;for(var key in overrideData[cat]){if(typeof(overrideData[cat][key])=="function")continue;this.setPolicyData(this.data,cat,key,overrideData[cat][key]);}}
var testServer=bnSystem.getTestServer();if(testServer){this.setPolicyData(overrideData,"inf","server",testServer);}};BNPolicy.prototype.computeTagOverrides=function(){var tagOverrides=new Object();var bn_ov=typeof(baynote_globals)!="undefined"?baynote_globals.bn_ov:null;if(bn_ov){var categories=bn_ov.split(";");for(var i=0;i<categories.length;i++){var c=categories[i].split(":");var cName=c[0];var cValue=c[1];tagOverrides[cName]=new Object();var params=cValue.split(",");for(var j=0;j<params.length;j++){var p=params[j].split("~");var pStripped=bnCommon.stripExtraQuotes(p[1]);this.setPolicyData(tagOverrides,cName,p[0],pStripped);}}}
return tagOverrides;};BNPolicy.prototype.computeOverrides=function(){var overrides=new Object();var tagOverrides=this.computeTagOverrides();bn_ov=bnPageInfo.getBNParam("bn_ov");if(bn_ov){var categories=bn_ov.split(";");var haveValidOv=false;for(var i=0;i<categories.length;i++){var c=categories[i].split(":");var cName=c[0];var cValue=c[1];if(baynote_globals.CustomScript==cName)continue;haveValidOv=true;if(!overrides[cName])overrides[cName]=new Object();var params=cValue.split(",");for(var j=0;j<params.length;j++){var p=params[j].split("~");var pStripped=bnCommon.stripExtraQuotes(decodeURIComponent(p[1]));this.setPolicyData(overrides,cName,p[0],pStripped);}}
if(haveValidOv){this.writeOverrideCookie(bnCommon.valueToJSON(overrides));}}else if(bn_ov==""){this.writeOverrideCookie("{}");}else{var cookieValue=this.readOverrideCookie();if(cookieValue)overrides=this.importData(cookieValue);else overrides=new Object();}
if(overrides){for(var cat in overrides){if(typeof(overrides[cat])=="function")continue;for(var key in overrides[cat]){if(typeof(overrides[cat][key])=="function")continue;this.setPolicyData(tagOverrides,cat,key,overrides[cat][key]);}}}
if(this.isSUCookieSet()){this.setSpecialUser();}else if(this.matchSUUrl()){this.setSpecialUser();this.setSUCookie();}
return tagOverrides;};BNPolicy.prototype.matchSUUrl=function(){oTag=this.get(bnConstants.OBSERVER_TAG);if(!oTag||(typeof(oTag.sup)=="undefined"))return false;if(bnPageInfo.getURLParam(oTag.sup))return true;return false;};BNPolicy.prototype.setSpecialUser=function(){this.setPolicyData(this.data,bnConstants.OBSERVER_TAG,"specialUser",true);};BNPolicy.prototype.isSpecialUser=function(){var oTag=this.get(bnConstants.OBSERVER_TAG);if(!oTag||(typeof(oTag.specialUser)=="undefined"))return false;return oTag.specialUser;};BNPolicy.prototype.setSUCookie=function(){var myDate=new Date();oTag=this.get(bnConstants.OBSERVER_TAG);if(!oTag||(typeof(oTag.sue)=="undefined"))expires=48
else expires=oTag.sue;myDate.setTime(myDate.getTime()+expires*1000*60*60);bnCommon.setCookie("bn_su","true","/",myDate.toGMTString());};BNPolicy.prototype.isSUCookieSet=function(){if(bnCommon.getCookieValue("bn_su")=="true")return true;return false;};BNPolicy.prototype.removePolicyData=function(policyData,cat,key){if(policyData&&policyData[cat])delete policyData[cat][key];};BNPolicy.prototype.setPolicyData=function(policyData,cat,key,value){if(!policyData[cat])policyData[cat]=new Object();policyData[cat][key]=value;};BNPolicy.prototype.readOverrideCookie=function(){return bnCommon.getCookieValue("bn_ov");};BNPolicy.prototype.writeOverrideCookie=function(jsonStr){if(!jsonStr||jsonStr=="{}")bnCommon.removeCookie("bn_ov");else bnCommon.setCookie("bn_ov",jsonStr,"/","NEVER");};BNPolicy.prototype.getCustomScriptAddress=function(tag){var basename=this.get(baynote_globals.CustomScript,"hn");if(basename!=null){if(basename.substring(0,4)=='http'){return basename;}else{return tag.server+'/'+baynote_globals.ScriptWebapp
+'/'+tag.customerId+'-'+tag.code+'/'+basename;}}
return null;};BNPolicy.prototype.applyDirectives=function(){var directives=this.get("dir");if(!directives)return;if(directives.au)bnUser.setUserId(this.get("inf","u"));if(directives.au){if(this.get("inf","extUid")){bnUser.setExtUserId(this.get("inf","extUid"));}else{bnUser.resetExtUserId();}}};bnPolicy=new BNPolicy();BNTagManager=function(){this.tags=new Array();this.tagHandlers=new Object();};BNTagManager.prototype.getHandlerForTag=function(tId){var tag=this.getTag(tId);return this.tagHandlers[tag.type];};BNTagManager.prototype.getHandlerByType=function(type){return this.tagHandlers[type];};BNTagManager.prototype.registerTagHandler=function(tType,handlerObj){this.tagHandlers[tType]=handlerObj;bnResourceManager.registerResource(this.getHandlerResourceId(tType));};BNTagManager.prototype.loadHandler=function(tId){var tag=this.getTag(tId);bnResourceManager.loadResource(this.getHandlerResourceId(tag.type),this.getHandlerResourceAddress(tag));};BNTagManager.prototype.getHandlerResourceId=function(tType){return(tType+"_handler");};BNTagManager.prototype.getHandlerResourceAddress=function(tag){var handlerName=tag.getParam("handler",bnPolicy.get(tag.type,"hn"));return this.getHdlrResAddress(tag.type,tag.server,handlerName);};BNTagManager.prototype.getHdlrResAddress=function(type,server,handlerName){if(!handlerName){handlerName=bnPolicy.get(type,"hn");}
if(!handlerName)handlerName="handler.js";var handlerPath=bnPolicy.get("handler",type);if(handlerPath)return handlerPath;return(server+baynote_globals.TagsURLPrefix+type+"/"+handlerName);};BNTagManager.prototype.getTag=function(tId){return window["bn_tags"][tId];};BNTagManager.prototype.getTags=function(type){var tags=window["bn_tags"];var matchingTags=new Array();for(var i=0;i<tags.length;i++){if(tags[i].type==type)matchingTags.push(tags[i]);}
return matchingTags;};BNTagManager.prototype.show=function(tId){with(this){var tag=getTag(tId);if(!tag)return;if(tag.cookie_domain&&typeof(baynote_globals)!="undefined"&&baynote_globals&&!baynote_globals.cookieDomain)
baynote_globals.cookieDomain=tag.cookie_domain;var showProxyFn=function(){bnTagManager.show(tId);};if(!bnPolicy.get()){if(typeof preLoadObj!=='undefined'&&preLoadObj&&preLoadObj.policyFormat=='POLICY_JSONP'){bnResourceManager.waitForResource(bnConstants.POLICY_RESOURCE_ID,showProxyFn);bnPolicy.load(tag.server,tag.customerId,tag.code,bnUser.getUserId(tag),'POLICY_JSONP');}else{bnResourceManager.waitForResource(bnConstants.POLICY_RESOURCE_ID,showProxyFn);bnPolicy.load(tag.server,tag.customerId,tag.code,bnUser.getUserId(tag));}
return;}
if(!bnPolicy.allowTag(tag)){tag.injectNoload("tag was rejected by policy");return;}
if(bnPolicy.customScriptPresent&&!bnResourceManager.getResource(baynote_globals.ScriptResourceId)){bnResourceManager.waitForResource(baynote_globals.ScriptResourceId,showProxyFn);bnResourceManager.loadResource(baynote_globals.ScriptResourceId,bnPolicy.getCustomScriptAddress(tag));return;}
if(typeof(baynote_onBeforeTagShow)=="function"){if(!baynote_onBeforeTagShow(tag))return;}
for(var i=0;i<baynote_globals.onBeforeTagShow.length;i++){if(typeof(baynote_globals.onBeforeTagShow[i])=="function"){if(!baynote_globals.onBeforeTagShow[i](tag))return;}}
tag.getTotalPurchases();var tHandler=getHandlerForTag(tId);if(tHandler){tHandler.show(tag);}else{bnResourceManager.waitForResource(getHandlerResourceId(tag.type),showProxyFn);loadHandler(tId);}}};BNTagManager.prototype.invokeCallBack=function(resId,tag){bnResourceManager.waitForResource(resId,function(){if(typeof(baynote_onTagShow)=="function"){baynote_onTagShow(tag);}
for(var i=0;i<baynote_globals.onTagShow.length;i++){if(typeof(baynote_globals.onTagShow[i])=="function"){baynote_globals.onTagShow[i](tag);}}});};if(typeof(bnTagManager)=="undefined"){bnTagManager=new BNTagManager();};BNEvent=function(){};BNEvent.prototype.addHandler=function(target,type,handler){if(target.addEventListener)target.addEventListener(type,handler,false);else if(target.attachEvent)target.attachEvent("on"+type,handler);else target["on"+type]=handler;};BNEvent.prototype.removeHandler=function(target,type,handler){if(target.removeEventListener)target.removeEventListener(type,handler,false);else if(target.detachEvent)target.detachEvent("on"+type,handler);else target["on"+type]=null;};BNEvent.prototype.getEvent=function(){if(!window.event)return bnEvent.getEvent.caller.arguments[0];var event=window.event;if(!bnIsIE)return event;event.charCode=(event.type=="keypress")?event.keyCode:0;event.eventPhase=2;event.isChar=(event.charCode>0);event.pageX=event.clientX+document.body.scrollLeft;event.pageY=event.clientY+document.body.scrollTop;event.target=event.srcElement;event.time=(new Date).getTime();if(event.type=="mouseout")event.relatedTarget=event.toElement;else if(event.type=="mouseover")event.relatedTarget=event.fromElement;event.preventDefault=function(){this.returnValue=false;}
event.stopPropagation=function(){this.cancelBubble=true;}
return event;};bnEvent=new BNEvent();BNTrail=function(){this.data=new Array();this.initialized=false;};BNTrail.prototype.initialize=function(maxLength){this.maxLength=maxLength;this.load();this.initialized=true;};BNTrail.prototype.getUrls=function(maxLength){if(!this.initialized)this.initialize(maxLength);return this.data;};BNTrail.prototype.addUrl=function(url,maxLength,sessionOnly){if(!this.initialized)this.initialize(maxLength);var index=this.getIndex(url);if(index!=-1&&this.data.length>0){if(index==(this.data.length-1))return;if(index!=-1)this.data.splice(index,1);}
if(typeof baynote_globals.canAddTrailUrl==='function'){if(!baynote_globals.canAddTrailUrl(url)){return;}}
this.data.push(url);this.crop();this.save(sessionOnly);};BNTrail.prototype.crop=function(){if(this.data.length>this.maxLength){var numSplice=this.data.length-this.maxLength;this.data.splice(0,numSplice);}};BNTrail.prototype.getIndex=function(url){for(i=0;i<this.data.length;i++){if(this.data[i]==url)return i;}
return-1;};BNTrail.prototype.save=function(sessionOnly){if(this.data.length<=0)return;var cookieExpires=sessionOnly?"SESSION":"NEVER";var cookieValue=bnCommon.arrayToJSON(this.data);bnSystem.setCookie("bnTrail",cookieValue,"/",cookieExpires,"","");};BNTrail.prototype.load=function(){var cookieValue=bnSystem.getCookieValue("bnTrail","");if(cookieValue==null||cookieValue=="")return;this.data=bnCommon.parseJSON(cookieValue);this.crop();};bnTrail=new BNTrail();BNLogger=function(config){var loggingUrl,logLevel;this.localLogQueue=[];this.localLogCtr=0;if(!bnCommon.isObject(config)){this.localLog('the given config object is not an object');config={loggingUrl:BNLogger.STUB_URL,logLevel:this.normalizeLogLevelName('error')}}
loggingUrl=config.loggingUrl;if(!bnCommon.isString(loggingUrl)){this.localLog('BNLogger constructor(): Given logging url not a String');this.url=BNLogger.STUB_URL;}else{this.url=loggingUrl;}
logLevel=this.normalizeLogLevelName(config.logLevel);if((bnCommon.isEmptyType(logLevel))||(!bnCommon.isNumber(BNLogger.LOG_LEVELS[logLevel]))){this.localLog('BNLogger constructor(): Given logLevel is not recognized');this.logLevel=this.normalizeLogLevelName("error");}else{this.logLevel=logLevel;}
this.customer=baynote_tag.customerId;this.code=baynote_tag.code;this.user=bnUser.userId;this.rId=0;this.logQueue=[];};BNLogger.SUBSYSTEMS={IMPRESSIONS:'impressions',THOR_RECS:'thor_recs'};BNLogger.LOG_LEVELS={ALL:0,DEBUG:1,INFO:2,WARN:3,ERROR:4};BNLogger.MESSAGE_FORMAT_VERSION='1';BNLogger.STUB_URL='bnlogger_stub_url';BNLogger.MAX_LOCAL_LOG_SIZE=10;BNLogger.prototype.getCustomerCode=function(){return this.code;};BNLogger.prototype.getCustomerName=function(){return this.customer;};BNLogger.prototype.getLoggingUrl=function(){return this.url;};BNLogger.prototype.getLogLevel=function(){return this.logLevel;};BNLogger.prototype.getLogQueue=function(){return this.logQueue;};BNLogger.prototype.getLocalLogQueue=function(){return this.localLogQueue;};BNLogger.prototype.getUserId=function(){return this.user;};BNLogger.prototype.normalizeLogLevelName=function(logLevel){if(!bnCommon.isString(logLevel)){this.localLog("BNLogger.normalizeLogLevelName(): The given logLevel is not a String");return'';}
return(logLevel.toUpperCase());};BNLogger.prototype.localLog=function(message){var logCtr=this.localLogCtr;if(typeof message==='string'){this.localLogQueue[logCtr%BNLogger.MAX_LOCAL_LOG_SIZE]=''+logCtr+'> '+message;this.localLogCtr+=1;}};BNLogger.prototype.log=function(logLevel,subSystem,message){if(!bnCommon.isString(logLevel)){this.localLog('BNLogger.log(): Given message log level is not a string');return;}else if(!bnCommon.isString(subSystem)){this.localLog('BNLogger.log(): Given message subsystem is not a string');return;}else if(!bnCommon.isString(message)){this.localLog('BNLogger.log(): Given message is not a string');return;}
if(!this.logLevelIsSufficientForLogging(logLevel))return;this.getLogQueue().push({logl:logLevel,msg:message,ss:subSystem,t:new Date().getTime()});};BNLogger.prototype.debug=function(subSystem,message){this.log("DEBUG",subSystem,message);};BNLogger.prototype.info=function(subSystem,message){this.log("INFO",subSystem,message);};BNLogger.prototype.warn=function(subSystem,message){this.log("WARN",subSystem,message);};BNLogger.prototype.error=function(subSystem,message){this.log("ERROR",subSystem,message);};BNLogger.prototype.logLevelIsSufficientForLogging=function(logLevel){if(!bnCommon.isString(logLevel)){this.localLog('BNLogger.logLevelIsSufficientForLogging(): Given log level not a String');return false;}
logLevel=this.normalizeLogLevelName(logLevel);if(!bnCommon.isNumber(BNLogger.LOG_LEVELS[logLevel])){this.localLog('BNLogger.logLevelIsSufficientForLogging(): Given log level unrecognized');return false;}
return(BNLogger.LOG_LEVELS[logLevel]>=BNLogger.LOG_LEVELS[this.getLogLevel()]);};BNLogger.prototype.send=function(){var newIdNum,log,baseUrl,url,logJSON,logQueue;baseUrl=this.getLoggingUrl();logQueue=this.getLogQueue();if((baseUrl===BNLogger.STUB_URL)||(logQueue.length===0)){return;}
newIdNum=this.rId++;logJSON={uid:this.getUserId(),d:bnPageInfo.getURL(),msgs:logQueue};log=encodeURIComponent(bnCommon.valueToJSON(logJSON));url=baseUrl+'?customerId='+this.getCustomerName()+'&code='+this.getCustomerCode()+'&logId='+newIdNum+'&len='+log.length+'&log='+log+'&v='+
BNLogger.MESSAGE_FORMAT_VERSION;this.injectMessages(url);this.logQueue=[];};BNLogger.prototype.injectMessages=function(url){var img,ph;if(typeof url!=='string'){this.localLog('BNLogger.injectMessages(): Given url is not a string');}
img=document.createElement("IMG");ph=document.getElementsByTagName('body')[0];img.src=url;img.style.display="none";setTimeout(function(){if(ph!=null)ph.appendChild(img);},5);};var bnLogger;bnResourceManager.waitForResource(bnConstants.POLICY_RESOURCE_ID,function(){bnLogger=new BNLogger({loggingUrl:bnPolicy.get('logging','url'),logLevel:bnPolicy.get('logging','logLevel')});});BNThor=(function(){var ERROR_MSG_CODES={UNEXPECTED:"rec.unexpected",NO_WEB_IDS_FOUND:"rec.nowebids",INVALID_REC_RESPONSE:"rec.response.invalid",REC_RESPONSE_PARSE_FAIL:"rec.response.parsefail",AJAX_FAILURE:"rec.ajax.fail",INIT_NOT_PERFORMED:"init.notperformed",INIT_MISSING_REQUIRED_VALS:"init.missingrequiredvals",INIT_MISSING_REQUIRED_LIB:"init.missingrequiredlib"};var customerName="",customerCode="",contextUrl="",isInitialized=false,initError=null,recServerUrlPrefix="",thor_inject=false,logger=null;var Widget=function(name,algo,recJsonObj){this.name=name;this.algo=algo;this.recData=recJsonObj;};var RenderingContext=function(config){this.requestFullUrl=config.requestFullUrl||"";this.widgets=config.widgets||[];};RenderingContext.prototype.addWidget=function(widget){this.widgets.push(widget);};var InitError=function(detailsData){this.detailsData=detailsData||{code:ERROR_MSG_CODES_UNEXPECTED,msg:"no details available"};};InitError.prototype.toString=function(){return basicErrorDetailsToString(this.detailsData);};var ContextRetrievalError=function(detailsData){this.detailsData=detailsData||{code:ERROR_MSG_CODES_UNEXPECTED,msg:"no details available"};}
ContextRetrievalError.prototype.toString=function(){return basicErrorDetailsToString(this.detailsData);};var RecResponseStructureError=function(detailsData){this.detailsData=detailsData||{code:ERROR_MSG_CODES_UNEXPECTED,msg:"no details available"};};RecResponseStructureError.prototype.toString=function(){return basicErrorDetailsToString(this.detailsData);};var basicErrorDetailsToString=function(detailsData){return"["+detailsData.code+":"+detailsData.msg+"]";};var isBNThorError=function(error){return(error instanceof InitError||error instanceof ContextRetrievalError||error instanceof RecResponseStructureError);}
var validateRecResponseStructure=function(recResponse){};var enactSecurityCountermeasures=function(rawRecResponse){return rawRecResponse;};var findWebIds=function(){var webIds=[];jQuery('div[id^=bn_]').each(function(idx,bnDiv){webIds.push(bnDiv.id.split('bn_').pop());});return webIds;}
var getRecServerFullUrl=function(webIds){var requestParams="";jQuery.each(webIds,function(idx,webId){requestParams+=(idx===0)?"?":"&";requestParams+="widget="+webId;});requestParams+=((requestParams==="")?"?":"&")+"attrs=ThumbUrl";requestParams+="&attrs=Title";requestParams+="&attrs=Price";requestParams+="&attrs=Gender";requestParams+="&attrs=LargeImgUrl";requestParams+="&attrs=Description";requestParams+="&attrs=parentCat";requestParams+="&attrs=childPath";requestParams+="&attrs=ProductCode";return recServerUrlPrefix+"/"+customerName+"/"+customerCode+requestParams;};var retrieveRecResults=function(recServerFullUrl,successFn,errorFn){logger.info(BNLogger.SUBSYSTEMS.THOR_RECS,"Rec retrieval requested for url: "+recServerFullUrl);$.ajax(recServerFullUrl).done(function(recResponse){var recResponseObj;if(typeof recResponse==='object'){recResponseObj=recResponse;}else if(typeof recResponse==='string'){try{recResponseObj=$.parseJSON(recResponse);}catch(e){errorFn(new ContextRetrievalError({code:ERROR_MSG_CODES.REC_RESPONSE_PARSE_FAIL,msg:"Rec server response could not be parsed.",parseError:e}));return;}}else{errorFn(new ContextRetrievalError({code:ERROR_MSG_CODES.INVALID_REC_RESPONSE,msg:"Rec server response is not a json object or string",recResponse:recResponse}));return;}
successFn(recResponseObj,successFn);}).fail(function(jqXHR,textStatus){errorFn(new ContextRetrievalError({code:ERROR_MSG_CODES.AJAX_FAILURE,msg:"Rec server did not complete AJAX request.",jqXHR:jqXHR,textStatus:textStatus}));});};var makeWidgetListFromServerResponse=function(recResponseObj){return[];}
var RenderingContextChain=function(chainConfig){this.callbacks=chainConfig.callbacks||[];this.context=chainConfig.context||new RenderingContext();this.successPostProcessor=chainConfig.successPostProcessor||function(){};this.errorProcessor=chainConfig.errorProcessor||function(){};};RenderingContextChain.prototype.getContext=function(){return this.context;};RenderingContextChain.prototype.next=function(){var nextFn=this.callbacks.shift();if(!nextFn){this.successPostProcessor(this.context);return;}
nextFn(this);};RenderingContextChain.prototype.error=function(error){this.errorProcessor(error);};var initConfigDefinition={contextUrl:{"type":"string","required":true},customerCode:{"type":"string","required":true},customerName:{"type":"string","required":true},recServerUrlPrefix:{"type":"string","required":true},thor_inject:{"type":"boolean","required":false,"default":false}};var doInit=function(initConfig){isInitalized=false;initError=null;logger=initConfig.logger;if(typeof jQuery==='undefined'){initError=new InitError({code:ERROR_MSG_CODES.INIT_MISSING_REQUIRED_LIB,msg:"jQuery was not found on current page",missingLib:"jQuery"});throw initError;}
var finalValues={};var missingRequiredVals=[];jQuery.each(initConfigDefinition,function(key,definition){if(definition.required==true){if(definition["instanceof"]){if(initConfig[key]instanceof definition["instanceof"]){finalValues[key]=initConfig[key];}else{missingRequiredVals.push(key);}}else if(definition["type"]){if(typeof initConfig[key]===definition["type"]){finalValues[key]=initConfig[key];}else{missingRequiredVals.push(key);}}}else{finalValues[key]=(typeof initConfig[key]!=='undefined')?initConfig[key]:definition["default"];}});if(missingRequiredVals.length>0){initError=new InitError({code:ERROR_MSG_CODES.INIT_MISSING_REQUIRED_VALS,msg:"Missing required values: "+missingRequiredVals.join(),missingVals:missingRequiredVals});throw initError;}
contextUrl=finalValues.contextUrl;customerCode=finalValues.customerCode;customerName=finalValues.customerName;recServerUrlPrefix=finalValues.recServerUrlPrefix;thor_inject=finalValues.thor_inject;isInitialized=true;};var doRetrieveRenderingContext=function(successFn){if(!isInitialized){if(!(initError instanceof InitError)){initError=new InitError({code:ERROR_MSG_CODES.INIT_NOT_PERFORMED,msg:"Initialization has not been performed."});}
logger.error(BNLogger.SUBSYSTEMS.THOR_RECS,"Rec retrieval failed. Error obj: "+initError.toString());throw initError;}
var addRecServerFullUrlLinkFn=function(chain){var webIds=findWebIds();if(!webIds||!webIds.length){chain.error(new ContextRetrievalError({code:ERROR_MSG_CODES.NO_WEB_IDS_FOUND,msg:"There were no baynote web ids found on the page."}));return;}
chain.getContext().requestFullUrl=getRecServerFullUrl(webIds);chain.next();}
var recRetrieveLinkFn=function(chain){retrieveRecResults(chain.getContext().requestFullUrl,function(recResponse){chain.getContext().rawResponse=recResponse;chain.next();},function(error){chain.error(error);});};var recResponseStructureValidateLinkFn=function(chain){try{validateRecResponseStructure(chain.getContext().rawResponse);}catch(e){chain.error(e);return;}
chain.next();};var securityCounterMeasuresLinkFn=function(chain){var safeRecResponse;try{safeRecResponse=enactSecurityCountermeasures(chain.getContext().rawResponse);}catch(e){chain.error(e);return;}
chain.getContext().safeResponse=safeRecResponse;chain.next();};var separateWidgetsLinkFn=function(chain){var context=chain.getContext();chain.next();};var renderingContextSuccessPostProcessor=function(renderingContext){logger.info(BNLogger.SUBSYSTEMS.THOR_RECS,"Successful rendering context retrieval.");logger.debug(BNLogger.SUBSYSTEMS.THOR_RECS,"Rendering context retrieved: "+renderingContext.toString());successFn(renderingContext);};var renderingContextErrorProcessor=function(error){logger.error(BNLogger.SUBSYSTEMS.THOR_RECS,"Rec retrieval failed. Error obj: "+error.toString());throw error;};var contextChain=new RenderingContextChain({context:new RenderingContext({}),callbacks:[addRecServerFullUrlLinkFn,recRetrieveLinkFn,recResponseStructureValidateLinkFn,securityCounterMeasuresLinkFn,separateWidgetsLinkFn],successPostProcessor:renderingContextSuccessPostProcessor,errorProcessor:renderingContextErrorProcessor});contextChain.next();};var moduleLoggerExists=function(){return(logger!=null&&typeof logger!=="undefined"&&logger instanceof BNLogger)?true:false;};var getFinalError=function(error){var finalError;if(!isBNThorError(error)){finalError=new ContextRetrievalError({code:ERROR_MSG_CODES.UNEXPECTED,msg:"An unexpected error happened.",originalError:error});if(moduleLoggerExists()){logger.error(BNLogger.SUBSYSTEMS.THOR_RECS,"Unknown failure. Error obj: "+finalError.toString());}}else{finalError=error;}
return finalError;}
var init=function(initConfig){var finalError;try{doInit(initConfig);}catch(e){throw getFinalError(e);}};var retrieveRenderingContext=function(successFn,errorFn){var finalError;try{doRetrieveRenderingContext(successFn);}catch(e){finalError=getFinalError(e);errorFn(finalError);}finally{if(moduleLoggerExists()){logger.send();}}};return{"init":init,"retrieveRenderingContext":retrieveRenderingContext};}());bnResourceManager.waitForResource(bnConstants.POLICY_RESOURCE_ID,function(){var thor_inject=bnPolicy.get("guide","thor_inject");try{BNThor.init({contextUrl:bnPageInfo.getURL(),customerName:baynote_tag.customerId,customerCode:baynote_tag.code,recServerUrlPrefix:bnPolicy.get("guide","thor_rec_url_pfx"),thor_inject:thor_inject,logger:bnLogger});}catch(e){if(thor_inject===true){bnLogger.error(BNLogger.SUBSYSTEMS.THOR_RECS,"Initialization of the BNThor module failed. Error obj: "+e.toString());bnLogger.send();}}});if(bnResourceManager.removeResource===undefined){BNResourceManager.prototype.removeResource=bnResourceManager.removeResource=function(rId){this.resources[rId]=null;delete(this.resources[rId]);}};BaynoteAPI.getWindowName=function(){return bnPageInfo.getWindowName();};BaynoteAPI.getWordCount=function(){return bnPageInfo.getWordCount();};BaynoteAPI.getLinkCount=function(){return bnPageInfo.getLinkCount();};BaynoteAPI.getTitle=function(){return bnPageInfo.getTitle();};BaynoteAPI.is404=function(){return bnPageInfo.is404();};BaynoteAPI.cookiesAreEnabled=function(){return bnPageInfo.cookiesAreEnabled();};BaynoteAPI.getURL=function(){return bnPageInfo.getURL();};BaynoteAPI.getFullURL=function(){return bnPageInfo.getFullURL();};BaynoteAPI.getURLParams=function(){return bnPageInfo.getURLParams();};BaynoteAPI.getURLParam=function(paramName){return bnPageInfo.getURLParam(paramName);};BaynoteAPI.getBNParams=function(){return bnPageInfo.getBNParams();};BaynoteAPI.getBNParam=function(paramName){return bnPageInfo.getBNParam(paramName);};BaynoteAPI.getReferrerURL=function(){return bnPageInfo.getReferrerURL();};BaynoteAPI.isBinary=function(url){return bnPageInfo.isBinary(url);};BaynoteAPI.getWindowHeight=function(){return bnPageInfo.windowHeight;};BaynoteAPI.getWindowWidth=function(){return bnPageInfo.windowWidth;};BaynoteAPI.stringToBoolean=function(str){return bnCommon.stringToBoolean(str);};BaynoteAPI.copyObj=function(obj,props){return bnCommon.copyObj(obj,props);};BaynoteAPI.copyProperties=function(src,dst,props){return bnCommon.copyProperties(src,dst,props);};BaynoteAPI.dumpObj=function(obj,name,indent,depth,asHTML){return bnCommon.dumpObj(obj,name,indent,depth,asHTML);};BaynoteAPI.dump=function(obj){return bnCommon.dump(obj);};BaynoteAPI.dumpHTML=function(obj){return bnCommon.dumpHTML(obj);};BaynoteAPI.getURLParams=function(url){return bnCommon.getURLParams(url);};BaynoteAPI.addURLParam=function(url,paramName,value){return bnCommon.addURLParam(url,paramName,value);};BaynoteAPI.addURLMetaKeys=function(url,metaKeyList){return bnCommon.addURLMetaKeys(url,metaKeyList);};BaynoteAPI.getCookieValue=function(cookieName){return bnCommon.getCookieValue(cookieName);};BaynoteAPI.setCookie=function(cookieName,cookieValue,cookiePath,cookieExpires,cookieDomain,cookieSubDomain){return bnSystem.setCookie(cookieName,cookieValue,cookiePath,cookieExpires,cookieDomain,cookieSubDomain);};BaynoteAPI.removeCookie=function(cookieName){return bnCommon.removeCookie(cookieName);};BaynoteAPI.normalizeUrl=function(tag,url){return bnCommon.normalizeUrl(tag,url);};BaynoteAPI.arrayToJSON=function(arr){return bnCommon.arrayToJSON(arr);};BaynoteAPI.booleanToJSON=function(bool){return bnCommon.booleanToJSON(bool);};BaynoteAPI.numberToJSON=function(num){return bnCommon.numberToJSON(num);};BaynoteAPI.objectToJSON=function(obj){return bnCommon.objectToJSON(obj);};BaynoteAPI.stringToJSON=function(str){return bnCommon.stringToJSON(str);};BaynoteAPI.valueToJSON=function(val){return bnCommon.valueToJSON(val);};BaynoteAPI.parseJSON=function(str){return bnCommon.parseJSON(str);};BaynoteAPI.trim=function(str){return bnCommon.trim(str);};BaynoteAPI.getInnerText=function(obj){return bnCommon.getInnerText(obj);};BaynoteAPI.hasAnyProperty=function(obj){return bnCommon.hasAnyProperty(obj);};BaynoteAPI.getURL=function(fullUrl,urlParams,bnParams){return bnCommon.getURL(fullUrl,urlParams,bnParams);};BaynoteAPI.isGuideContainerPresent=function(){return bnCommon.isGuideContainerPresent();};BaynoteAPI.isNotEmpty=function(name){return bnCommon.isNotEmpty(name);};BaynoteAPI.lookupMeta=function(name){return bnCommon.lookupMeta(name);};BaynoteAPI.lookupMetaAttrib=function(name,attrib){return bnCommon.lookupMetaAttrib(name,attrib);};BaynoteAPI.isCustomScriptPresent=function(){return bnPolicy.customScriptPresent;};BaynoteAPI.policyOverrides=function(){return bnPolicy.overrides;};BaynoteAPI.userId=function(){return bnPolicy.userId;};BaynoteAPI.getPolicy=function(cat,key){return bnPolicy.get(cat,key);};BaynoteAPI.getCondition=function(tag){return bnPolicy.getCondition(tag);};BaynoteAPI.isSpecialUser=function(){return bnPolicy.isSpecialUser();};BaynoteAPI.getGuideElementIds=function(){return bnPolicy.getGuideElementIds();};BaynoteAPI.getAjaxTag=function(){return bnAjaxHandler;};BaynoteAPI.getTotalPurchases=function(){return baynote_tag.getTotalPurchases();};BaynoteAPI.sendVisitEvent=function(param){if(typeof param!='undefined'){param.action="visit";BaynoteAPI.call("observer","actionOccurred",[param],"bnObserver");}};BaynoteAPI.sendExitEvent=function(param){if(typeof param!='undefined'){param.action="exit";BaynoteAPI.call("observer","actionOccurred",[param],"bnObserver");}};BaynoteAPI.sendPageEvent=function(param){if(typeof param!='undefined'){param.action="page";if(bnObserver&&bnObserver.name=="defaultHandler"){bnObserver.pageAction(param);}else{BaynoteAPI.call("observer","actionOccurred",[param],"bnObserver");}}};BaynoteAPI.setUserId=function(userId,skipWrite){bnUser.setUserId(userId,skipWrite);};BaynoteAPI.writeUserCookieToWindowName=function(userId){bnUser.writeUserCookieToWindowName(userId);};BaynoteAPI.readUserCookieFromWindowName=function(){return bnUser.readUserCookieFromWindowName();};BaynoteAPI.canItFit=function(msg){return bnMessenger.canItFit(msg);};BaynoteAPI.sendRecImpression=function(flag){if(!bnObserver)return;bnObserver.sendRecImpression=flag;};BaynoteAPI.cancelLinger=function(){if(!bnObserver)return;bnObserver.cancelLinger();};BaynoteAPI.clearObserverAttributes=function(attrsList){if(!bnObserver)return;bnObserver.clearObserverAttributes(attrsList);};BaynoteAPI.implicitQueryOccured=function(query,profileUrl,isSpecial){if(!bnObserver)return;bnObserver.isSpecial=isSpecial;bnObserver.queryExitOccurred(query,profileUrl);if(isSpecial)
bnObserver.isSpecial=false;};BaynoteAPI.isArray=function(obj){return bnCommon.isArray(obj);};BaynoteAPI.checkType=function(obj,type){return bnCommon.checkType(obj,type);};BaynoteAPI.useExternalId=function(externalId){var remove=false;bnPolicy.useExternalId(externalId,remove);};BaynoteAPI.detachExternalId=function(externalId){var remove=true;bnPolicy.useExternalId(externalId,remove);};BaynoteAPI.getTrailURLs=function(){if(bnTrail)return bnTrail.data;return null;};BaynoteAPI.persistTrailURLs=function(){if(bnTrail){bnTrail.save(bnPolicy.get("trail","so"));return true;}
return false;};bnResourceManager.registerResource(baynote_tag.getCommonResourceId());
		
			
			

function BNMessenger(){this.server=null;this.messageNum=0;this.msgLimit=50000;this.eventDetailsLimit=49500;this.initialized=false;this.debug=false;}
BNMessenger.prototype.initialize=function(serverAddr,handlerAddr,customer,code,key,debug){this.server=serverAddr;this.customer=customer;this.code=code;this.key=key;this.handler=handlerAddr;if(this.handler.charAt(0)!="/")this.handler="/"+this.handler;this.debug=debug;this.initialized=true;}
BNMessenger.prototype.sendMessage=function(msg){var debugArg=(this.debug)?"&debug=true":"";var msgPrefix=this.server+"/baynote"+this.handler+"?customerId="+this.customer+"&code="+this.code;if(this.key)msgPrefix+="&key="+this.key;msgPrefix+="&msgId="+this.messageNum+debugArg+"&fmt=1&len="+msg.length+"&msg=";var fullMsg=msgPrefix+encodeURIComponent(msg);var spaceLeft=this.msgLimit-fullMsg.length;if(spaceLeft>=0){this.resultResourceId="Message"+this.messageNum;bnResourceManager.loadResource(this.resultResourceId,fullMsg,"img");this.messageNum++;bnTagManager.invokeCallBack(this.resultResourceId,this.myTag);}
return spaceLeft;}
BNMessenger.prototype.canItFit=function(msg){var msgStr=bnCommon.valueToJSON(msg);var msgStrTobeSent=encodeURIComponent(msgStr);return this.eventDetailsLimit-msgStrTobeSent.length>=0;}
var bnMessenger=new BNMessenger();function BNBehavior(){this.numSamples=0;this.numMouseMoves=0;this.numScrolls=0;this.lastMousePos=new Object();this.lastMousePos.x=this.lastMousePos.y=0;this.curMousePos=new Object();this.curMousePos.x=this.curMousePos.y=0;this.lastScroll=new Object();this.lastScroll.x=this.lastScroll.y=0;this.curScroll=new Object();this.curScroll.x=this.curScroll.y=0;this.maxScrollPercent=0;}
BNBehavior.prototype.activityCheck=function(){this.numSamples++;if((this.lastMousePos.x&&this.lastMousePos.x!=this.curMousePos.x)||(this.lastMousePos.y&&this.lastMousePos.y!=this.curMousePos.y)){this.numMouseMoves++;}
this.lastMousePos.x=this.curMousePos.x;this.lastMousePos.y=this.curMousePos.y;this.curScroll.y=(bnIsIE)?document.body.scrollTop:window.pageYOffset;if(this.lastScroll.y&&this.lastScroll.y!=this.curScroll.y)this.numScrolls++;this.lastScroll.y=this.curScroll.y;var curScrollPercent=this.getScrollScope();if(curScrollPercent>this.maxScrollPercent){this.maxScrollPercent=curScrollPercent;}
setTimeout("bnBehavior.activityCheck()",500);}
BNBehavior.prototype.getScrollTop=function(){if(document.documentElement&&document.documentElement.scrollTop)
return document.documentElement.scrollTop;if(document.body)
return document.body.scrollTop;return window.pageYOffset;}
BNBehavior.prototype.getScrollHeight=function(){if(document.documentElement&&document.documentElement.scrollHeight)
return Math.max(document.documentElement.offsetHeight,document.documentElement.scrollHeight,document.body.scrollHeight);return document.body.scrollHeight;}
BNBehavior.prototype.getClientHeight=function(){if(typeof(window.innerWidth)=='number')
return window.innerHeight;if(document.documentElement&&(document.documentElement.clientWidth||document.documentElement.clientHeight))
return document.documentElement.clientHeight;if(document.body&&(document.body.clientWidth||document.body.clientHeight))
return document.body.clientHeight;}
BNBehavior.prototype.getScrollScope=function(){return Math.round((this.getScrollTop()+this.getClientHeight())*100/this.getScrollHeight());}
BNBehavior.prototype.mouseHandler=function(e){this.curMousePos.x=e.pageX;this.curMousePos.y=e.pageY;}
var bnBehavior=new BNBehavior();function BNObserver(){this.lingerCancelled=false;this.sendRecImpression=false;this.name="defaultHandler";this.myType="baynoteObserver";this.myTag=null;this.startTime=new Date().getTime();this.networkInfo=null;this.pageEvent=true;this.sendVisitEvent=true;this.sendExitEvent=true;}
BNObserver.prototype.createSearchBox=function(){var actionUrl=this.myTag.server+"/search/query2";var searchButtonHTML;var searchButtonImg=this.myTag.getParam("searchButtonImg",null);if(searchButtonImg){searchButtonHTML='<input type="image" alt="Search" id="bn_search_button" src="'+searchButtonImg+'">';searchImgParam='<input type="hidden" name="sbi" value='+searchButtonImg+'>';}else{searchButtonHTML='<input type="submit" value="Search" id="bn_search_button" class="bn_sb_button">';searchImgParam='';}
var key=this.myTag.key?this.myTag.key:"";var searchboxHtml='<table width="100%" class="bn_sb_table"><tr>'
+'<td width="33%"></td>'
+'<td width="34%" align="center" class="bn_sb_cell">'
+'<form action="'+actionUrl+'" style="margin: 0" id="bn_search_form" class="bn_sb_form">'
+'<input type="hidden" name="cn" value="'+this.myTag.customerId+'">'
+'<input type="hidden" name="cc" value="'+this.myTag.code+'">'
+'<input type="hidden" name="key" value="'+key+'">'
+'<input type="hidden" name="u" value="'+bnUser.getUserId(this.myTag)+'">'
+'<input type="hidden" name="e" value="1">'
+searchImgParam+'<input type="text"   name="q" size="15" maxlength="255" id="bn_search_query" class="bn_sb_query">'
+searchButtonHTML+'</form>'
+'</td>'
+'<td width="33%"></td>'
+'</tr></table>';var searchboxDiv=document.createElement("div");searchboxDiv.innerHTML=searchboxHtml;return searchboxDiv;}
BNObserver.prototype.shouldSendEvent=function(){if(this.soEnabled)return true;if(this.stEnabled&&this.isSpecial)return true;if(this.isSpecialUser)return true;return false;}
BNObserver.prototype.sendEvent=function(evJSON,force){if(!this.shouldSendEvent()&&(typeof(force)=="undefined"||!force))return;if(!bnMessenger.initialized){setTimeout("bnObserver.sendEvent('"+evJSON+"')",100);return;}
var result=bnMessenger.sendMessage(evJSON);while(result<0){var newEv=bnCommon.parseJSON(evJSON);if(newEv.de){delete newEv.de;evJSON=bnCommon.valueToJSON(newEv);result=bnMessenger.sendMessage(evJSON);}else if(newEv.at&&newEv.at.rt){delete newEv.at.rt;evJSON=bnCommon.valueToJSON(newEv);result=bnMessenger.sendMessage(evJSON);}else{if(typeof baynote_globals.messageDropped=='function'){baynote_globals.messageDropped({result:result,msg:evJSON});}
result=0;}}}
BNObserver.prototype.makeEvent=function(action){var ev=new Object();ev.a=action;if(typeof(bnPolicy.getCondition)!="undefined"){ev.c=bnPolicy.getCondition(this.myTag);}else{ev.c=bnPolicy.get("inf","cd");}
ev.d=this.url;if(this.myTag.iFrame){ev.r=parent.document.referrer;ev.p=parent.location.href.split("#")[0];ev.p=bnCommon.getURL(ev.p);}else{ev.r=document.referrer;}
if(this.myTag.referrer){ev.r=this.myTag.referrer;}
ev.t=new Date().getTime();ev.u=bnUser.getUserId(this.myTag);if(bnCommon.hasAnyProperty(this.myTag.attrs))ev.at=this.myTag.attrs;this.checkForSpecialTarget(ev);if(!this.soEnabled&&this.stEnabled&&this.isSpecial){ev.at=ev.at||{};ev.at.st="true";}
if(this.isSpecialUser){ev.at=ev.at||{};ev.at.su="true";}
if(typeof(this.networkInfo)!="undefined"&&this.networkInfo&&!this.networkInfo.userIds.isEmpty()){ev.at.networkUserIds=this.networkInfo.userIds.toString();if(!this.networkInfo.groupIds.isEmpty()){ev.at.networkGroupIds=this.networkInfo.groupIds.toString();}}
if(action=='c'||action=='C'){if(baynote_globals.RecImpressionList&&baynote_globals.RecImpressionList.length>0&&this.sendRecImpression){ev.at=ev.at||{};ev.at.rt=baynote_globals.RecImpressionList;}}
var extUid=bnUser.getExtUserId();if(extUid){ev.at=ev.at||{};ev.at.extUid=extUid;}
if(typeof baynote_globals.verifyEvent==='function'){baynote_globals.verifyEvent(ev);}
return ev;}
BNObserver.prototype.makeDetails=function(){var de=new Object();if(bnPolicy.get("baynoteObserver","cds")){var summary=this.myTag.getParam("summary",null);if(summary&&summary.length>0)de.su=summary;}
if(bnPolicy.get("baynoteObserver","cdt")){var title=this.myTag.getParam("title",bnPageInfo.getTitle());if(title&&title.length>0)de.ti=title;}
de.nw=bnPageInfo.getWordCount();de.nl=bnPageInfo.getLinkCount();return de;}
BNObserver.prototype.makeBehavior=function(){var bi=null;if(typeof(bnBehavior)=="object"){bi=new Object();bi.ps=bnBehavior.maxScrollPercent;bi.ma=bnBehavior.numMouseMoves;bi.sa=bnBehavior.numScrolls;}
return bi;}
BNObserver.prototype.networkLogin=function(networkInfo){this.networkInfo=networkInfo;}
BNObserver.prototype.networkLogout=function(networkInfo){this.networkInfo=networkInfo;}
BNObserver.prototype.cancelLinger=function(){this.lingerCancelled=true;}
BNObserver.prototype.clickOccurred=function(clicked){var exitInfo=new Object();var result=false;if(typeof(this.myTag.exitConfirmation)=="function"){result=this.myTag.exitConfirmation(clicked,exitInfo);}else{result=this.defaultExitConfirmation(clicked,exitInfo);}
if(result)this.exitOccurred(exitInfo);}
BNObserver.prototype.defaultExitConfirmation=function(clicked,exitInfo){var target=clicked;while(target){if(target.tagName=="A")break;target=target.parentNode;}
if(!target)return false;exitInfo.dest=target.href;var gt=target.getAttribute("baynote_guide");if(typeof(gt)!="undefined"&&gt)exitInfo.baynote_guide=gt;var gr=target.getAttribute("baynote_req");if(typeof(gr)!="undefined"&&gr)exitInfo.baynote_req=gr;var bn=target.getAttribute("baynote_bnrank");if(typeof(bn)!="undefined"&&bn)exitInfo.baynote_bnrank=bn;var ir=target.getAttribute("baynote_irrank");if(typeof(ir)!="undefined"&&ir)exitInfo.baynote_irrank=ir;var lt=bnCommon.getInnerText(target);if(!lt&&bnPolicy.get("baynoteObserver","alt")&&clicked&&clicked.tagName=="IMG"){lt=clicked.getAttribute("ALT");var src=clicked.getAttribute("SRC");if(lt&&(src.indexOf(lt)==(src.length-lt.length))){lt=null;}}
if(lt)exitInfo.link=lt;var attrs=this.myTag.attrs;if(typeof(attrs)=="object"&&bnCommon.hasAnyProperty(attrs)){exitInfo.attrs=bnCommon.copyObj(attrs);}
return true;}
BNObserver.prototype.exitOccurred=function(exitInfo){if(!this.sendExitEvent){bnLog.log('WARN: Exit Observervation is turned off');return;}
var ev=this.makeEvent("c");var dd=exitInfo.dest;if(typeof(dd)!="undefined"&&dd)ev.dd=dd;else ev.dd="bn_ignore=t";var lt=exitInfo.link;if(typeof(lt)!="undefined"&&lt)ev.l=lt;var ea=exitInfo.attrs;if(typeof(ea)=="object"){ev.at=ea;}
var gt=exitInfo.baynote_guide;if(typeof(gt)!="undefined"&&gt)ev.gt=gt;var gr=exitInfo.baynote_req;if(typeof(gr)!="undefined"&&gr)ev.gr=gr;var bn=exitInfo.baynote_bnrank;if(typeof(bn)!="undefined"&&bn){ev.rb=bn;if(!this.soEnabled&&this.stEnabled){this.isSpecial=true;if(!ev.at)ev.at=new Object();ev.at.st="true";}
if(this.isSpecialUser){if(!ev.at)ev.at=new Object();ev.at.su="true";}}
var ir=exitInfo.baynote_irrank;if(typeof(ir)!="undefined"&&ir)ev.ri=ir;var gat=exitInfo.baynote_guide_target;if(typeof(gat)!="undefined"&&gat)ev.gat=gat;var iq=exitInfo.implicitQuery;if(typeof(iq)!="undefined"&&iq){if(!ev.at)ev.at=new Object();ev.at.implicitQuery=iq;}
if(!this.myTag.iFrame){var details=this.makeDetails();if(details!=null)ev.de=details;}
if(bnPolicy.get("baynoteObserver","ub")){var bi=this.makeBehavior();if(bi!=null)ev.bi=bi;}
if(!this.shouldSendEvent())return;var u=bnCommon.getCookieValue("bn_u");var sEvt=bnCommon.valueToJSON(ev);var fCookie=false;if(bnPolicy.get("baynoteObserver","ec")&&(typeof(u)!="undefined"&&u)&&bnPageInfo.cookiesAreEnabled){var msgStrTobeSet=encodeURIComponent(sEvt);var lenDiff=bnMessenger.eventDetailsLimit-msgStrTobeSet.length;if(lenDiff>=0){bnCommon.setCookie("bn_ec",sEvt,"/","SESSION");fCookie=true;}else{if(typeof baynote_globals.messageDropped=='function'){baynote_globals.messageDropped({result:lenDiff,msg:sEvt});}}}
if(!fCookie||(bnPolicy.get("baynoteObserver","eec"))){this.sendEvent(sEvt);this.exitPause();}}
BNObserver.prototype.lingerOccurred=function(ds){if(!this.shouldFireLinger())return;var ev=this.makeEvent("l");ev.du=ds;if(bnPolicy.get("baynoteObserver","sdl")){var details=this.makeDetails();if(details!=null)ev.de=details;}
this.sendEvent(bnCommon.valueToJSON(ev));if(bnTrail&&bnPolicy.get("trail","ok")){bnTrail.addUrl(this.url,bnPolicy.get("trail","tl"),bnPolicy.get("trail","so"));}}
BNObserver.prototype.visitOccurred=function(){if(bnPolicy.get("baynoteObserver","ec")){var sEvt=bnCommon.getCookieValue("bn_ec");if(typeof(sEvt)!="undefined"&&sEvt&&sEvt.length>0){this.sendEvent(sEvt,true);}}
bnCommon.removeCookie("bn_ec");if(!this.shouldFireVisit())return;var ev=this.makeEvent("v");this.sendEvent(bnCommon.valueToJSON(ev));}
BNObserver.prototype.impressionOccurred=function(){var IMPR_VERSION="1";bnLogger.info(BNLogger.SUBSYSTEMS.IMPRESSIONS,'impressions handler logic started');var polGuideAttr="ign",polGuideTypeAttr="igt",polHrefAttr="ih";var i,currTag,currGuide;var guideAttr=bnPolicy.get(this.myType,polGuideAttr)||'baynote_req',guideTypeAttr=bnPolicy.get(this.myType,polGuideTypeAttr)||'baynote_guide',href=bnPolicy.get(this.myType,polHrefAttr)||'href',rank='baynote_bnrank';var aTags=document.getElementsByTagName('a');var bnTags=[],aTagsLen=aTags.length;for(i=0;i<aTagsLen;i++){currTag=aTags[i];if(currTag.getAttribute(guideAttr)){bnTags.push(currTag);}}
var bnTagsLen=bnTags.length;if(bnTagsLen===0){bnLogger.info(BNLogger.SUBSYSTEMS.IMPRESSIONS,'there were no baynote guide tags found on the page');bnLogger.info(BNLogger.SUBSYSTEMS.IMPRESSIONS,'impressions handler logic finished');bnLogger.send();return;}
var dupTagMap={},guideTags={},currHref,currRank;for(i=0;i<bnTagsLen;i++){currTag=bnTags[i];currHref=currTag.getAttribute(href);currGuide=currTag.getAttribute(guideAttr);currRank=currTag.getAttribute(rank);if(!dupTagMap[currGuide]){dupTagMap[currGuide]={};guideTags[currGuide]=[];}
if(!currHref||dupTagMap[currGuide][currHref]){continue;}
guideTags[currGuide].push(currTag);dupTagMap[currGuide][currHref]=true;}
var guideSorter=function(tag1,tag2){var rank1=tag1.getAttribute(rank),rank2=tag2.getAttribute(rank),retVal=0;if(rank1&&rank2){retVal=rank1-rank2;}else if(rank1){retVal=-1;}else if(rank2){retVal=1;}
return retVal;};var getUrlsMinLength=function(urls){var MAX_URL_LEN=2000,minLen=MAX_URL_LEN,currUrl,urlIdx,urlCount;if(!bnCommon.isArray(urls)){return-1;}
for(urlIdx=0,urlCount=urls.length;urlIdx<urlCount;urlIdx+=1){currUrl=urls[urlIdx];if(typeof(currUrl)!=='string'){return-1;}else if(currUrl.length<minLen){minLen=currUrl.length;}}
return(minLen===MAX_URL_LEN)?-1:minLen;};var allCharsAtIndexTheSame=function(idx,urls){var charAtIdx=urls[0].charAt(idx),urlIdx,urlCount;for(urlIdx=0,urlCount=urls.length;urlIdx<urlCount;urlIdx+=1){if(urls[urlIdx].charAt(idx)!==charAtIdx){return false;}}
return true;};var getPrefixAndSuffixes=function(urls){var prefix='',prefixLen,currUrl,urlIdx,urlCount,minLen=getUrlsMinLength(urls);if(minLen>1){prefixLen=-1;for(urlIdx=0;urlIdx<minLen;urlIdx+=1){if(!allCharsAtIndexTheSame(urlIdx,urls)){prefixLen=urlIdx;break;}}
if(prefixLen>0){prefix=urls[0].substring(0,prefixLen);for(urlIdx=0,urlCount=urls.length;urlIdx<urlCount;urlIdx+=1){currUrl=urls[urlIdx];urls[urlIdx]=currUrl.substring(prefixLen);}}}
return{'prefix':prefix,'urls':urls};};var guideTypeMgr=(function(){var idxMap={},guideTypes=[],currIdx=0;var getArray=function(){return guideTypes;};var getIdx=function(guideType){if(typeof guideType!=='string'){return-1;}
if(typeof(idxMap[guideType])==='undefined'){idxMap[guideType]=currIdx;guideTypes.push(guideType);currIdx+=1;}
return idxMap[guideType];};var reset=function(){idxMap={};guideTypes=[];currIdx=0;};return{getIdx:getIdx,getArray:getArray,reset:reset};}());var currGuideRecs,currGuideLen,currGuideUrls,currGuidePrefixUrls,currGuidePrefix='',cantFitErrorSuffix=' cannot fit into a single event';var currEvent=this.makeEvent("i"),currEventHasGuides=false,currGuideIdx=0;currEvent.v=IMPR_VERSION;currEvent.guides=[];for(var guide in guideTags){if(guideTags.hasOwnProperty(guide)){currGuide=guideTags[guide];currGuideLen=currGuide.length;if(currGuideLen===0){continue;}
currGuide.sort(guideSorter);currGuideUrls=[];for(i=0;i<currGuideLen;i+=1){currGuideUrls.push(currGuide[i].getAttribute(href));}
currGuidePrefixUrls=getPrefixAndSuffixes(currGuideUrls);currGuidePrefix=currGuidePrefixUrls['prefix'];currGuideUrls=currGuidePrefixUrls['urls'];currGuideRecs=[];for(i=0;i<currGuideLen;i+=1){currGuideRecs.push({gt:guideTypeMgr.getIdx(currGuide[i].getAttribute(guideTypeAttr)),url:(currGuideUrls[i])?currGuideUrls[i]:''});}
currEvent['guides'][currGuideIdx]={gts:guideTypeMgr.getArray(),name:guide,recs:currGuideRecs};if(currGuidePrefix!==''){currEvent['guides'][currGuideIdx]['prefix']=currGuidePrefix;}
if(bnMessenger.canItFit(currEvent)){currEventHasGuides=true;currGuideIdx+=1;currGuidePrefix='';guideTypeMgr.reset();}else{delete currEvent['guides'][currGuideIdx];if(currEventHasGuides){this.sendEvent(bnCommon.valueToJSON(currEvent));currEvent=this.makeEvent("i");currEvent.v=IMPR_VERSION;currEvent.guides=[];currEventHasGuides=false;currGuideIdx=0;currEvent['guides'][currGuideIdx]={name:guide,gts:guideTypeMgr.getArray(),recs:currGuideRecs};if(currGuidePrefix!==''){currEvent['guides'][currGuideIdx]['prefix']=currGuidePrefix;}
currGuidePrefix='';guideTypeMgr.reset();if(bnMessenger.canItFit(currEvent)){currEventHasGuides=true;}else{this.sendImpressionErrorEvent('Guide '+guide+cantFitErrorSuffix);}}else{this.sendImpressionErrorEvent('Guide '+guide+cantFitErrorSuffix);}}}}
if(currEventHasGuides){this.sendEvent(bnCommon.valueToJSON(currEvent));}
bnLogger.info(BNLogger.SUBSYSTEMS.IMPRESSIONS,'impressions handler logic finished');bnLogger.send();};BNObserver.prototype.sendImpressionErrorEvent=function(errorMsg){var msg=errorMsg||'an error occurred while collecting impressions';var event=this.makeEvent("i");event.error=msg;this.sendEvent(bnCommon.valueToJSON(event));};BNObserver.prototype.shouldFireLinger=function(){return!(this.lingerCancelled||this.myTag.iFrame);}
BNObserver.prototype.shouldFireVisit=function(){if(!this.sendVisitEvent){bnLog.log('WARN: Visit Observervation is turned off');return false;}
if(this.myTag.iFrame)return false;if(bnPolicy.get("baynoteObserver","sv"))return true;if(this.myTag.getParam("fireVisit"))return true;if(!this.myTag.attrs)return false;if(this.myTag.attrs.totalPurchases)return true;if(this.myTag.attrs.query)return true;if(this.myTag.attrs.pageStatus)return true;return false;}
BNObserver.prototype.openMedia=function(mediaURL,linkText){this.cancelLinger();var ev=this.makeEvent("c");ev.dd=mediaURL;if(linkText)ev.l=linkText;this.sendEvent(bnCommon.valueToJSON(ev));}
BNObserver.prototype.closeMedia=function(mediaURL){var ev=this.makeEvent("c");ev.r=ev.d;ev.dd=ev.d;ev.d=mediaURL;this.sendEvent(bnCommon.valueToJSON(ev));}
BNObserver.prototype.queryExitOccurred=function(query,dest){var ev=this.makeEvent("c");ev.dd=dest;var details=this.makeDetails();if(details!=null)ev.de=details;if(!ev.at)ev.at=new Object();ev.at.implicitQuery=query;this.sendEvent(bnCommon.valueToJSON(ev));this.exitPause();}
BNObserver.prototype.exitPause=function(){var delayMS=bnPolicy.get(this.myType,"ep");if(delayMS==null||delayMS<=0)return;var maxIter=bnPolicy.get(this.myType,"epmi");if(maxIter==null)maxIter=1000000;var startTime=new Date().getTime();var nowTime=new Date().getTime();var iterations=0;while(nowTime-startTime<delayMS){nowTime=new Date().getTime();++iterations;if(iterations>maxIter)break;}}
BNObserver.prototype.actionOccurred=function(obj){}
BNObserver.prototype.instrumentLinks=function(){bnEvent.addHandler(document.body,"click",function(){var evt=bnEvent.getEvent();if(evt.target)bnObserver.clickOccurred(evt.target);});bnLog.log("onclick handler installed");}
BNObserver.prototype.instrumentBehavior=function(){if(typeof(bnBehavior)=="object"&&bnBehavior!=null){bnEvent.addHandler(document,"mousemove",function(){var evt=bnEvent.getEvent();bnBehavior.mouseHandler(evt);});setTimeout("bnBehavior.activityCheck()",500);}}
BNObserver.prototype.captureValue=function(cap){var result;if(cap.st=="dp"){if(cap.sn.indexOf(bnConstants.BN_PARAM_PREFIX)==0)result=bnPageInfo.getBNParam(cap.sn);else result=bnPageInfo.getURLParam(cap.sn);}else if(cap.st=="mt"){var metas=document.getElementsByName(cap.sn);if(metas){for(var i=0;i<metas.length;++i){if(metas[i].tagName.toUpperCase()=="META"){result=metas[i].content;break;}}}}else if(cap.st=="tp"){result=this.myTag.getParam(cap.sn);}else if(this.debug){alert("Invalid capture source type "+cap.st);}
return result;}
BNObserver.prototype.storeCapturedValue=function(cap,value){if(cap.dt=="ea"){if(!this.myTag.attrs)
this.myTag.attrs={};else if(this.myTag.attrs[cap.dn]&&this.myTag.attrs[cap.dn].length>0)
return;this.myTag.attrs[cap.dn]=value;}else if(cap.dt=="da"){if(!this.myTag.docAttrs)
this.myTag.docAttrs={};else if(this.myTag.docAttrs[cap.dn]&&this.myTag.docAttrs[cap.dn].length>0)
return;this.myTag.docAttrs[cap.dn]=value;}else if(this.debug){alert("Invalid capture destination type "+cap.dt);}}
BNObserver.prototype.show=function(obsTag){this.lingerCancelled=false;this.myTag=obsTag;this.debug=bnPolicy.get(this.myType,"debug");this.soEnabled=bnPolicy.get(this.myType,"so");this.stEnabled=bnPolicy.get(this.myType,"st");if(this.myTag.searchbox){var ph=document.getElementById(this.myTag.placeHolderId);if(bnPolicy.get("search","ok")){ph.appendChild(this.createSearchBox());}else if(this.myTag.noload){ph.innerHTML=this.myTag.noload;}}
var obsHandler="/tags3/baynoteObserver/listener2";bnMessenger.initialize(this.myTag.server,obsHandler,this.myTag.customerId,this.myTag.code,this.myTag.key,this.debug);this.url=this.myTag.getParam("url",bnPageInfo.getURL());this.url=bnCommon.addURLMetaKeys(this.url,this.myTag.metaKeys);var oldPS=this.myTag.getParam("page_status");if(!oldPS&&bnPageInfo.is404())oldPS=404;var oldTP=this.myTag.getParam("totalPurchases");var oldQ=this.myTag.getParam("query");if(oldTP||oldQ||oldPS){if(!this.myTag.attrs)this.myTag.attrs=new Object();if(!this.myTag.attrs.totalPurchases&&oldTP)this.myTag.attrs.totalPurchases=oldTP;if(!this.myTag.attrs.query&&oldQ)this.myTag.attrs.query=oldQ;if(!this.myTag.attrs.pageStatus&&oldPS)this.myTag.attrs.pageStatus=oldPS;}
var caps=bnPolicy.get(this.myType,"cap");if(caps!=null&&caps instanceof Array){for(var i=0;i<caps.length;++i){var cap=caps[i];var value=this.captureValue(cap);if(value&&value.length>=1){this.storeCapturedValue(cap,value);}}}
if(bnCommon.hasAnyProperty(this.myTag.docAttrs)){if(!this.myTag.attrs)this.myTag.attrs=new Object();this.myTag.attrs.docAttrs=bnCommon.objectToJSON(this.myTag.docAttrs);}
this.isSpecial=!!((typeof(this.myTag.specialTarget)!="undefined"&&this.myTag.specialTarget)||(this.myTag.attrs&&this.myTag.attrs.totalPurchases));this.isSpecialUser=false;if(typeof(bnPolicy.isSpecialUser)=="function")
this.isSpecialUser=bnPolicy.isSpecialUser();if(this.isSpecialUser)
this.isSpecial=true;this.visitOccurred();var dwellTime=bnPolicy.get(this.myType,"dt");var dlThreshold=bnPolicy.get(this.myType,"ddt");if(this.myTag.attrs&&this.myTag.attrs.expectedDuration&&typeof(dlThreshold)!='undefined'&&dlThreshold>0){dwellTime=this.myTag.attrs.expectedDuration*dlThreshold;}
var dwellMSec=dwellTime*1000;setTimeout("bnObserver.lingerOccurred("+dwellTime+")",dwellMSec);var imprOptIn=bnPolicy.get(this.myType,"ioi");var imprTimer=bnPolicy.get(this.myType,"it")||2;var imprMSec=imprTimer*1000;var thorInjectPolicyVal=bnPolicy.get("guide","thor_inject");var usesThorInject=thorInjectPolicyVal===true||thorInjectPolicyVal==="true";if(usesThorInject){bnLogger.info(BNLogger.SUBSYSTEMS.IMPRESSIONS,"Auto-impressions logic will not be executed, due to the customer being "+"'Thor Injection' customer. Impressions will be fired manually in custom script");}
if(imprOptIn&&!usesThorInject){setTimeout("bnObserver.impressionOccurred()",imprMSec);}
this.instrumentLinks();if(bnPolicy.get("baynoteObserver","ub")){this.instrumentBehavior();}
if(bnPolicy.get("baynoteObserver","bpe"))this.pageEvent=false;bnResourceManager.registerAndAddResource(this.myType,bnObserver);return true;}
BNObserver.prototype.pageAction=function(param){if(typeof param=='undefined')return;if(this.debug)bnLog.log("pageAction invoked with param:\n"+bnCommon.dump(param));var attrs=param.attrs;if(typeof(attrs)=="undefined"||!attrs){if(this.debug)bnLog.log("No attribute 'attrs' was specified");return;}
var evType=attrs.evType;if(typeof(evType)=="undefined"||!evType){if(this.debug)bnLog.log("No event type 'evType' was specified in 'attrs'");return;}
var evTarget=attrs.evTarget;if(typeof(evTarget)=="undefined"||!evTarget){if(this.debug)bnLog.log("No event target 'evTarget' was specified in 'attrs'");return;}
var doc=param.d;if(typeof(doc)=="undefined"||!doc){if(this.debug)bnLog.log("No document was specified");return;}
var ev=this.makeEvent("p");this.checkIsSpecial(param);this.setEventAttrs(ev,param);ev.d=doc;this.firePageEvent(ev);}
BNObserver.prototype.firePageEvent=function(ev){if(this.pageEvent){this.sendEvent(bnCommon.valueToJSON(ev));}}
BNObserver.prototype.checkIsSpecial=function(param){var specialTarget=param.specialTarget;if(typeof(specialTarget)!="undefined"&&specialTarget){this.isSpecial=true;delete param.specialTarget;}else{this.isSpecial=false;}}
BNObserver.prototype.setEventAttrs=function(ev,param){if(param==null||!bnCommon.hasAnyProperty(param.attrs))return;if(!ev.at)ev.at={};for(var prop in param.attrs){var child=param.attrs[prop];if(typeof(child)!="undefined"&&typeof(child)!="function"&&child!=null){ev.at[prop]=child;}}}
BNObserver.prototype.clearObserverAttributes=function(attrList){if(!this.myTag||!this.myTag.attrs)return;for(var i in attrList){var theEvtAttr=attrList[i];if(typeof this.myTag.attrs[theEvtAttr]!='undefined'){delete this.myTag.attrs[theEvtAttr];}}};BNObserver.prototype.checkForSpecialTarget=function(ev){this.setSpecialTarget(baynote_globals.ReferrerPatterns,ev.r);this.setSpecialTarget(baynote_globals.DocumentPatterns,ev.d);this.setSpecialTarget(baynote_globals.DocDestinationPatterns,ev.dd);};BNObserver.prototype.setSpecialTarget=function(arrayOfPatterns,url){if(!url||!bnCommon.isNotEmpty(url)||!arrayOfPatterns||!bnCommon.isArray(arrayOfPatterns)){return;}
for(var i in arrayOfPatterns){var rxPattern=arrayOfPatterns[i];if(bnCommon.checkType(rxPattern,'RegExp')&&rxPattern.test(url)){this.isSpecial=true;return;}}};var bnObserver=new BNObserver();BaynoteAPI.enableVisitEvent=function(flag){bnObserver.sendVisitEvent=flag;};BaynoteAPI.enableLingerEvent=function(flag){bnObserver.lingerCancelled=!flag;};BaynoteAPI.enableExitEvent=function(flag){bnObserver.sendExitEvent=flag;};bnTagManager.registerTagHandler(bnObserver.myType,bnObserver);
			
		

function BNGuideLiteHandler(){this.myType="guide";this.myTag=null;this.guide=null;this.socialGuide=null;this.socialShow=false;this.socialLoggedIn=false;this.networkInfo=null;}
bnConstants.GUIDE_RESULTS_RESOURCE_PREFIX="GLResults";bnConstants.GUIDE_SOCIAL_SHOW_LOGIN="showLogin";bnConstants.GUIDE_SOCIAL_HIDE_LOGIN="hideLogin";bnConstants.GUIDE_SOCIAL_SHOW_GUIDE="showGuide";BNGuideLiteHandler.prototype.gotoPage=function(tagId,guideRank,gotoURL){with(this){if(typeof(bnTrailMgr)!="undefined"&&bnTrailMgr){var guideType=bnTagManager.getTag(tagId).guide;bnTrailMgr.guideResultClick(guideType,guideRank,gotoURL);}if(gotoURL){if(bnIsIE){window.event.returnValue=false;}
window.location.href=gotoURL;}}};BNGuideLiteHandler.prototype.getResultsHandlerAddress=function(guideTag){var resultsFormat=guideTag.getParam("format",bnPolicy.get(this.myType,"fmt"));if(!resultsFormat){resultsFormat="results-xsl";}
var srcPreamble=guideTag.server+baynote_globals.TagsURLPrefix+this.myType+"/"+
resultsFormat+"/"+guideTag.customerId+"-"+guideTag.code;var guideScriptSrc="";guideScriptSrc+=srcPreamble;guideScriptSrc+="?userId="+bnUser.getUserId(guideTag);guideScriptSrc+="&customerId="+guideTag.customerId;guideScriptSrc+="&code="+guideTag.code;if(guideTag.key){guideScriptSrc+="&key="+guideTag.key;}
guideScriptSrc+="&id="+guideTag.id;if(this.socialShow&&this.socialGuide){guideScriptSrc+="&guide="+encodeURIComponent(this.socialGuide);}
if(guideTag.listSize){guideScriptSrc+="&resultsPerPage="+guideTag.listSize;}
if(guideTag.startingDocNum){guideScriptSrc+="&startingDocNum="+guideTag.startingDocNum;}
var query=bnPageInfo.getBNParams()["bn_q"];if(!query)query=guideTag.query;if(query){guideScriptSrc+="&query="+encodeURIComponent(query);guideTag.query=query;}else{guideTag.referrer=bnPageInfo.getReferrerURL();}
if(guideTag.referrer){guideScriptSrc+="&referrer="+encodeURIComponent(guideTag.referrer);}
guideTag.isFallback=false;if(guideTag.fallback){guideScriptSrc+="&fallback="+encodeURIComponent(guideTag.fallback);}
var pageURL=guideTag.getParam("url",bnPageInfo.getURL());var listUrls=guideTag.getParam("listUrls",null);if(listUrls&&listUrls.length>0){for(var ixUrl=0;ixUrl<listUrls.length;ixUrl++){guideScriptSrc+="&url="+encodeURIComponent(listUrls[ixUrl]);}}else if(bnTrail&&bnPolicy.get("trail","ok")){guideScriptSrc+="&url="+encodeURIComponent(pageURL);listUrls=bnTrail.getUrls(bnPolicy.get("trail","tl"));if(listUrls.length>0){for(var ixTrail=listUrls.length-1;ixTrail>=0;ixTrail--){if(listUrls[ixTrail]!=pageURL){guideScriptSrc+="&url="+encodeURIComponent(listUrls[ixTrail]);}}}}else{pageURL=bnCommon.addURLMetaKeys(pageURL,guideTag.metaKeys);guideScriptSrc+="&url="+encodeURIComponent(pageURL);}
guideScriptSrc+="&appendParams="+encodeURIComponent(guideTag.getParam("appendParams",""));guideScriptSrc+="&rankParam="+encodeURIComponent(guideTag.getParam("rankParam",""));if(guideTag.urlFilter)guideScriptSrc+="&urlFilter="+encodeURIComponent(guideTag.urlFilter);if(guideTag.attrFilter)guideScriptSrc+="&attrFilter="+encodeURIComponent(guideTag.attrFilter);if(guideTag.ctxAttrList)guideScriptSrc+="&ctxAttrList="+encodeURIComponent(guideTag.ctxAttrList);if(guideTag.attrSort)guideScriptSrc+="&attrSort="+encodeURIComponent(guideTag.attrSort);if(guideTag.sortSize)guideScriptSrc+="&sortSize="+guideTag.sortSize;if(guideTag.days)guideScriptSrc+="&days="+guideTag.days;if(guideTag.oe)guideScriptSrc+="&oe="+guideTag.oe;if(bnCommon.hasAnyProperty(guideTag.attrs)){guideScriptSrc+="&contextAttrs="+bnCommon.objectToJSON(guideTag.attrs);}
var cond=bnPolicy.get("inf","cd");if(cond)guideScriptSrc+="&condition="+encodeURIComponent(cond);if(this.socialGuide){guideScriptSrc+="&social=";if(this.socialShow){if(this.socialLoggedIn){guideScriptSrc+=bnConstants.GUIDE_SOCIAL_SHOW_GUIDE;}else{guideScriptSrc+=bnConstants.GUIDE_SOCIAL_SHOW_LOGIN;}}else{guideScriptSrc+=bnConstants.GUIDE_SOCIAL_HIDE_LOGIN;}}
if(this.socialShow&&this.networkInfo){networkInfo=this.networkInfo;var limit,value;if(networkInfo.groupIds&&!networkInfo.groupIds.isEmpty()){limit=bnConstants.MAX_URL_LENGTH-guideScriptSrc.length-10-4;if(limit<0)limit=0;value=networkInfo.groupIds.toString(limit);if(value&&value!=""){guideScriptSrc+="&groupIds="+value;}}
if(networkInfo.friendIds&&!networkInfo.friendIds.isEmpty()){limit=bnConstants.MAX_URL_LENGTH-guideScriptSrc.length-11-4;if(limit<0)limit=0;value=networkInfo.friendIds.toString(limit);if(value&&value!=""){guideScriptSrc+="&friendIds="+value;}}}
var eids=bnCommon.getAllGuideContainersPresent();if(eids.length>0){var eidstr='';for(var i=0;i<eids.length;i++){eidstr+=eids[i];if(i!=(eids.length-1)){eidstr+=',';}}
guideScriptSrc+="&elementIds="+eidstr;}
if(guideTag.extraParams&&typeof guideTag.extraParams=='object'){for(var attr in guideTag.extraParams){guideScriptSrc+='&'+attr+'='+encodeURIComponent(guideTag.extraParams[attr]);}}
guideScriptSrc+="&v=1";return guideScriptSrc;};BNGuideLiteHandler.prototype.show=function(guideTag){var thorInjectPolicyVal=bnPolicy.get("guide","thor_inject");var usesThorInject=thorInjectPolicyVal===true||thorInjectPolicyVal==="true";if(usesThorInject){return;}
if(!bnCommon.isGuideContainerPresent()){return;}
this.myTag=guideTag;this.guide=this.myTag.guide;this.socialGuide=this.myTag.socialGuide;this.id=guideTag.id;this.resultResourceId=bnConstants.GUIDE_RESULTS_RESOURCE_PREFIX+guideTag.id;if(typeof(guideTag.socialShow)!="undefined"){this.socialShow=guideTag.socialShow;}
listTags=bnTagManager.getTags(bnConstants.SOCIAL_TAG);if(listTags.length>0){guide=this;bnResourceManager.waitForResource(bnConstants.SOCIAL_RESOURCE_ID,function(){guide.showComplete();});}else{this.showComplete();bnTagManager.invokeCallBack(this.resultResourceId,this.myTag);}};BNGuideLiteHandler.prototype.showComplete=function(){if(typeof(bnSocial)!="undefined"&&bnSocial&&bnSocial.isLoggedIn("facebook")){this.socialLoggedIn=true;}
this.loadResults();bnResourceManager.registerAndAddResource(this.myType+this.myTag.id,this);};BNGuideLiteHandler.prototype.loadResults=function(){var thatId=this.id;var resultsAreInProxyFn=function(){bnGuideLiteHandler.resultsAreIn(bnTagManager.getTag(thatId));};bnResourceManager.waitForResource(this.resultResourceId,resultsAreInProxyFn,this.getResultsHandlerAddress(this.myTag));};BNGuideLiteHandler.prototype.injectWelcomeText=function(guideTag){var welcome;var welcomeElem=document.getElementById("bn_guidewelcome"+guideTag.id);if(!welcomeElem)return;if(welcomeElem.innerHTML)return;welcome=(guideTag.isFallback)?guideTag.fallbackWelcome:guideTag.welcome;if(welcome&&welcome.indexOf("BN_QUERY")!=-1){if(guideTag.query){welcome=welcome.replace("BN_QUERY",guideTag.query);}else{welcome=guideTag.fallbackWelcome;}}
if(welcome){welcomeElem.innerHTML=welcome;}};BNGuideLiteHandler.prototype.resultsAreIn=function(guideTag){if(!guideTag||!guideTag.results)return;var ph;if(typeof guideTag.results=='string'){if(bnCommon.isNotEmpty(guideTag.divId)){ph=document.getElementById(guideTag.divId);if(!bnCommon.isNotEmpty(ph)){ph=document.getElementById(guideTag.placeHolderId);}}else{ph=document.getElementById(guideTag.placeHolderId);}
if(ph){this.resultIsIn(guideTag,ph,guideTag.results);}}else{var resultArray=guideTag.results;baynote_globals.RecImpressionMap=baynote_globals.RecImpressionMap||{};baynote_globals.RecImpressionList=baynote_globals.RecImpressionList||[];for(var idx in resultArray){var divName=resultArray[idx].ei;var recImp=resultArray[idx].ri;var result=resultArray[idx].r;if(typeof(result)=='string'){ph=document.getElementById(divName);if(ph){this.resultIsIn(guideTag,ph,result);baynote_globals.RecImpressionMap.divName=recImp;baynote_globals.RecImpressionList.push(recImp);}}}}};BNGuideLiteHandler.prototype.resultIsIn=function(guideTag,ph,resultStr){if(resultStr){if(typeof(bnPolicy.showTag)=='function'&&!bnPolicy.showTag(guideTag)){ph.style.display="none";}
if(guideTag.css){for(className in guideTag.css){if(typeof(guideTag.css[className])!='function'){resultStr=resultStr.replace("class='"+className+"'","class='"+className+"' style='"+guideTag.css[className]+"'");}}}
ph.innerHTML=resultStr;this.injectWelcomeText(guideTag);var listStyleUpdate=ph.getElementsByTagName("style");this.updateHead("style",listStyleUpdate);}else if(resultStr==""){guideTag.injectNoload("no results",ph);}else{guideTag.injectNoload("error: invalid argument in resultIsIn",ph);}};BNGuideLiteHandler.prototype.updateHead=function(tagName,listElemUpdate){var listFinalUpdate=new Array();var mapElemUpdate=new Object();var idPrefix=this.myType+this.id+"-"+tagName+"-";var i,elemUpdate;var autoElemNum=0;for(i=0;i<listElemUpdate.length;i++){elemUpdate=listElemUpdate.item(i);var idBase=null;if((typeof(elemUpdate.id)=="string")&&(elemUpdate.id)){idBase=elemUpdate.id;}else{idBase="auto"+autoElemNum++;}
var idUpdate=idPrefix+idBase;elemUpdate.parentNode.removeChild(elemUpdate);elemUpdate.id=idUpdate;mapElemUpdate[idUpdate]=elemUpdate;}
var elemHead=document.getElementsByTagName("head")[0];var listElemOld=elemHead.getElementsByTagName(tagName);for(i=0;i<listElemOld.length;i++){var elemOld=listElemOld.item(i);var idElem=elemOld.id;if(typeof(idElem)=="string"&&idElem&&idElem.indexOf(idPrefix)==0){elemUpdate=mapElemUpdate[idElem];if(elemUpdate){elemHead.replaceChild(elemUpdate,elemOld);mapElemUpdate[idElem]=null;delete(mapElemUpdate[idElem]);listFinalUpdate.push(elemUpdate);}else{elemHead.removeChild(elemOld);}}}
for(var idStyle in mapElemUpdate){if(bnCommon.containsKey(mapElemUpdate,idStyle)){elemUpdate=mapElemUpdate[idStyle];elemHead.appendChild(elemUpdate);listFinalUpdate.push(elemUpdate);}}
return listFinalUpdate;};BNGuideLiteHandler.prototype.evalGlobal=function(strScript){};BNGuideLiteHandler.prototype.sessionReady=function(networkInfo){this.socialLoggedIn=true;this.networkInfo=networkInfo;};BNGuideLiteHandler.prototype.networkLogin=function(networkInfo){this.socialLoggedIn=true;this.networkInfo=networkInfo;if(this.socialShow)
this.reloadGuide();};BNGuideLiteHandler.prototype.networkLogout=function(networkInfo){this.socialLoggedIn=false;this.networkInfo=networkInfo;if(this.socialShow)
this.reloadGuide();};BNGuideLiteHandler.prototype.loadGeneralGuide=function(){this.socialShow=false;this.reloadGuide();};BNGuideLiteHandler.prototype.loadSocialGuide=function(args){this.socialShow=true;if(!this.socialLoggedIn&&args.cbNotLoggedIn){args.cbNotLoggedIn();}else{this.reloadGuide();}};BNGuideLiteHandler.prototype.reloadGuide=function(){bnResourceManager.removeResource(this.resultResourceId);this.loadResults();};BNGuideLiteHandler.prototype.setSocialShow=function(show){this.socialShow=show;};var bnGuideLiteHandler=new BNGuideLiteHandler();bnTagManager.registerTagHandler(bnGuideLiteHandler.myType,bnGuideLiteHandler);

bnConstants.AJAX_RESOURCE_PREFIX='Ajax_';bnConstants.AJAX_URL='/.ajax';function BNAjaxHandler(){this.myType="ajax";this.myTag=null;this.myRegistry=null;this.lastReqId=0;}
BNAjaxHandler.prototype.getHandlerAddress=function(rtObj){var bnURL=this.myTag.server;bnURL+=rtObj.bnURL;var l=rtObj.bnURL.length;if(l>0){if(rtObj.bnURL.substr(l-6)!=bnConstants.AJAX_URL){bnURL+=bnConstants.AJAX_URL;}}
bnURL+="?reqID="+this.ajaxResourceId;bnURL+="&userId="+bnUser.getUserId(this.myTag);bnURL+="&customerId="+this.myTag.customerId;bnURL+="&code="+this.myTag.code;var referrer=bnPageInfo.getReferrerURL();if(referrer)bnURL+="&referrer="+encodeURIComponent(referrer);var cond=bnPolicy.get("inf","cd");if(cond)bnURL+="&condition="+encodeURIComponent(cond);for(var attr in rtObj.params){bnURL+="&"+attr+"="+encodeURIComponent(rtObj.params[attr]);}
bnURL+="&v=1";return bnURL;}
BNAjaxHandler.prototype.show=function(theTag){this.myTag=theTag;this.myRegistry=new Object();this.initialized=true;}
BNAjaxHandler.prototype.send=function(rtObj){if(!this.initialized){bnLog.log("WARN: ajax handler is not initialized - call execute on it");return;}
this.lastReqId++;this.ajaxResourceId=bnConstants.AJAX_RESOURCE_PREFIX+this.lastReqId;this.myRegistry[this.ajaxResourceId]=rtObj;var thisAjaxResourceId=this.ajaxResourceId;var resultsAreInProxyFn=function(){bnAjaxHandler.resultsAreIn(thisAjaxResourceId);};bnResourceManager.waitForResource(this.ajaxResourceId,resultsAreInProxyFn,this.getHandlerAddress(rtObj));bnTagManager.invokeCallBack(this.ajaxResourceId,this.myTag);}
BNAjaxHandler.prototype.resultsAreIn=function(reqId){var rtObj=this.getRTObject(reqId);if(!rtObj){bnLog.log('AJAX RESULTS HANDLER - empty runtime object');return;}
if(rtObj.isSuccess){rtObj.onSuccess(rtObj.responseText);}else{rtObj.onFailure(rtObj.responseText);}}
BNAjaxHandler.prototype.getRTObject=function(reqId){return this.myRegistry[reqId];}
var bnAjaxHandler=new BNAjaxHandler();bnTagManager.registerTagHandler(bnAjaxHandler.myType,bnAjaxHandler);
	

