function FDCPClient() { this.cpHost = "cache-01.cleanprint.net"; this.divid="2583"; this.refid="2361"; this.rt = "i"; this.cpstatus = false; this.ptstatus = "y"; this.printSpecId = 0; this.fdDebug = false; this.cpc = null; this.blkwidth=0; this.xpathLib = ""; this.shost = "formatdynamics.com"; this.hosted = "customer"; this.blockThreshold = 500; this.trackerHost = "cleanprint.net"; this.modes = {unset:0, printLink:1, filePrint:2, printerFriendlyViewer:3}; this.mode = 0;//modes.unset this.resetMode = function(){this.mode = this.modes.unset;}; this.cookie_flags = "pv"; this.category = "UNKNOWN"; this.site = "UNKNOWN"; // moved from the printtracker FormatDynamicsPT object this.pthosts = "formatdynamics.com,cleanprint.net,formatdyn.hs.llnwd.net"; this.autoRefreshCSS = "true"; this.autoRefreshTime = "30000"; // quantcast tracking: n => turn off qc tracking, anything else leaves it on this.enableQC = "y"; // templatetest var to pull templates from a directory this.templateTest = true; // 's' for standalone and 'c' for combined. A standalone install turns off registration for // PrintTracker events this.insType = "c"; this.colre = new RegExp(":", "g"); this.comre = new RegExp(",", "g"); this.isPtCss=function(content) { var phosts = this.pthosts.split(','); for(var i = 0; i < phosts.length; i++) { if(content.indexOf(phosts[i]) != -1) return true; } return false; } // templatetest var to pull templates from a directory this.templateTest = false; // 's' for standalone and 'c' for combined. A standalone install turns off registration for // PrintTracker events this.insType = "c"; this.escCom = function(st) { st = new st.constructor(st); st = st.replace(this.colre, "::"); st = st.replace(this.comre, ":,"); return st; } this.getSegment=function () { try{ if(typeof finalResult == 'string') { var seg = finalResult.match(/^.*category=([^;?]*)(?:;|\?|$).*$/); if(seg[1] != undefined) return seg[1]; }}catch(e){}return "Other" } this.getCPViewerId=function(){ } this.getPFF = function() { try{ if(fdcp.clt.mode==fdcp.clt.modes.printerFriendlyViewer) return "1"; if (window.location.pathname.indexOf('printexaminerarticles') >= 0) return "1";}catch(e){}return "0"; } this.getVR = function() { var advars = {};var adcp = finalResult.split(";");for(i = 0; i < adcp.length; i++){ var kv = adcp[i].split('='); if(kv.length == 2) { if(kv[0] == 'edition') advars['ex_edition'] = kv[1]; else if(kv[0] == 'section') advars['ex_section'] = kv[1]; else if(kv[0] == 'exid') advars['ex_exid'] = kv[1]; else if(kv[0] == 'adtest') advars['ex_adtest'] = kv[1]; else if(kv[0] == 'category') advars['ex_category'] = kv[1]; else if(kv[0] == 'tile') advars['ex_tile'] = kv[1]; }}var examiner_cs = "";var examiner_s = "";var d = document.getElementsByTagName("script");for(var i = 0; i 0){ var csrep = new Array(); csrep = d[i].innerHTML.split(","); for(var j = 0 ; j < csrep.length; j++){ examiner_cs += csrep[j].substr(csrep[j].indexOf(":")+1,csrep[j].length) ; examiner_cs = examiner_cs.replace("});" , ""); examiner_cs = examiner_cs.replace("\"\"" , "empty"); if(j < csrep.length-1){ examiner_cs += ","; } }}}examiner_s += "pageName:" + s.pageName + ",";examiner_s += "server:" + s.server + ",";examiner_s += "channel:" + s.channel + ",";examiner_s += "pageType:" + s.pageType + ",";examiner_s += "prop1:" + s.prop1 + ",";examiner_s += "prop2:" + s.prop2 + ",";examiner_s += "prop3:" + s.prop3 + ",";examiner_s += "prop4:" + s.prop4 + ",";examiner_s += "prop5:" + s.prop5 + ",";examiner_s += "prop6:" + s.prop6 + ",";examiner_s += "prop7:" + s.prop7 + ",";examiner_s += "prop8:" + s.prop8 + ",";examiner_s += "prop9:" + s.prop9 + ",";examiner_s += "prop10:" + s.prop10 + ",";examiner_s += "prop11:" + s.prop11 + ",";examiner_s += "prop12:" + s.prop12 + ",";examiner_s += "prop13:" + s.prop13 + ",";examiner_s += "campaign:" + s.campaign + ",";examiner_s += "state:" + s.state + ",";examiner_s += "zip:" + s.zip + ",";examiner_s += "events:" + s.events + ",";examiner_s += "products:" + s.products + ",";examiner_s += "purchaseID:" + s.purchaseID + ",";examiner_s += "eVar1:" + s.eVar1 + ",";examiner_s += "eVar2:" + s.eVar2 + ",";examiner_s += "eVar3:" + s.eVar3 + ",";examiner_s += "eVar4:" + s.eVar4 + ",";examiner_s += "eVar5:" + s.eVar5 + ",";examiner_s += "eVar6:" + s.eVar6 + ",";examiner_s += "hier1:" + s.hier1;advars['examiner_cs'] = examiner_cs;advars['examiner_s'] = examiner_s;return advars; } this.onPrint = function(cpdata) { } this.getBlockThreshold = function() { return this.getCfg('blockThreshold', this.blockThreshold); } this.getCfg=function(ckey, cdef) { if(this.cpc != null && typeof this.cpc[ckey] != 'undefined') return this.cpc[ckey]; return cdef; } this.getTHost=function() { if(this.shost.length > 0 && document.location.protocol == "https:") return this.shost; else return this.cpHost; } this.getTrackerHost=function() { return this.trackerHost; } this.getcpStat=function() { return this.getCfg('cpStatus', this.cpstatus); } this.getptStat=function() { return this.getCfg('ptStatus', this.ptstatus); } this.getDiv=function() { return this.getCfg('divisionId', this.divid); } this.getTmpl=function() { return this.getCfg('templateId', null); } this.getRfmt = function() { return this.getCfg('templateId', this.refid); } this.getTPath = function() { return this.getCfg('tPath', null); } this.getLPath = function() { return this.getCfg('lPath', null); } this.getTO = function() { return this.getCfg('timeout', 10000); } this.getTemplateTest = function() { return this.getCfg('templateTest', this.templateTest); } this.getXpathLib = function() { return this.getCfg('xpathLib', this.xpathLib); } this.getAutoRefreshCSS = function() { return this.getCfg('autoRefreshCSS', this.autoRefreshCSS); } this.getAutoRefreshTime = function() { return this.getCfg('autoRefreshTime', this.autoRefreshTime); } this.getPtHosts = function() { return this.getCfg('pthosts', this.pthosts); } this.getFDDebug = function() { return this.getCfg('fdDebug', this.fdDebug); } this.getRType= function() { return this.rt; } this.getIframeUrls=function(){ } this.onCpLoad = function(){ } this.cpServletPath=document.location.protocol + "//" + this.getTHost() + "/cp/psj"; this.getCalculatedPrintSpecId = function(){ if (navigator.appName == "Microsoft Internet Explorer" && url.indexOf("test=true") < 0) { var ua = navigator.userAgent; var re = new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})"); var res = re.exec(ua); if (res != null) rv = parseFloat(res[1]); if(rv >=8.0) return false;}return "355"; } this.onBeforeContentSerialization = function(){ } this.onAfterContentSerialization = function(){ } this.onPrintSpecLoad = function(){ } this.onBeforeCleanPrint = function(data){ return data; } this.calculateCacheKey = function(){ return cacheKey; } this.onAfterCleanPrint = function(){ // standard behavior if(this.enableQC == 'y') this.appendQC(); // customizations /* if(typeof s == 'object') { s.pageName="Examiner Article Print"; if(typeof s.t == 'function') s.t(); } var i = new Image(); i.src = "http://pixel.quantserve.com/pixel/p-631HUI1Pqfxis.gif"; if(typeof COMSCORE == 'object' && typeof COMSCORE.beacon == 'function') COMSCORE.beacon({ c1:2, c2:6036472, c3:"", c4:"", c5:"", c6:"", c15:"" });*/ } this.appendQC = function() { } } function FormatDynamicsPT(client) { this.clnt = client; this.pcol = document.location.protocol + "//"; this.cstr = client.getTrackerHost() + "/pt/t/"; this.div = "d="+this.clnt.getDiv(); this.ua = "&a=" + escape(navigator.appName + " " + navigator.userAgent); this.seg = "&s="+escape(this.clnt.getSegment()); this.ustr = "&u="+escape(window.location.href); this.pf = "&p="+this.clnt.getPFF(); this.version = "&q=1.1"; this.rtype = "&rt="+this.clnt.getRType(); this.qstr = this.div+this.ua+this.seg+this.ustr+this.pf+this.version; this.pthosts = this.clnt.getPtHosts(); this.autoRefreshCSS = this.clnt.getAutoRefreshCSS(); this.autoRefreshTime = this.clnt.getAutoRefreshTime(); this.cssRefreshInterval = null; this.rcount = 0; this.ptssfound = false; this.getTURL = function() { return this.pcol + this.cstr + (new Date()).getTime() + '?' + this.qstr; } this.isPtCss=function(content) { var phosts = this.pthosts.split(','); for(var i = 0; i < phosts.length; i++) { if(content.indexOf(phosts[i]) != -1) return true; } return false; } this.changePrintStyleSheet=function() { this.rcount++; // Change fdprint stylesheet if found for(i=0;i 0) { h = hs[0]; var script = document.createElement("script"); script.type = 'text/javascript'; script.src = this.getTURL() + '&rnd=' + Math.random(); } } else { var fdloader = new Image(); fdloader.src = this.getTURL(); } } this.initIE = function() { try { if (navigator.appName.indexOf("Microsoft")!=-1 && parseInt(navigator.appVersion)>=4 && navigator.userAgent.indexOf("Windows") != -1) window.attachEvent("onbeforeprint", function() { formatDynamicsPT.getFDImage(); } ); } catch(e) {} } this.initX = function() { try { if(navigator.appName.indexOf("Konqueror") != -1) { formatDynamicsPT.changePrintStyleSheet(); } else if (navigator.appName.indexOf("Microsoft") == -1) { formatDynamicsPT.changePrintStyleSheet(); formatDynamicsPT.cssRefreshInterval = setInterval("formatDynamicsPT.refreshCSS()", formatDynamicsPT.autoRefreshTime); } } catch(e) {} } this.initAll = function() { try { this.initIE(); this.initX(); } catch(e) {} } this.refreshCSS = function() { if (formatDynamicsPT.autoRefreshCSS == "true") formatDynamicsPT.changePrintStyleSheet(); else clearInterval(formatDynamicsPT.cssRefreshInterval); } } var FDCPLoader = { count: 0, tint: 500, tmax: 10000, tagg: 0, incyc: false, loaded: false, divId: 0, printSpecId: 0, cpDef:{}, FDCPClient:new FDCPClient(), printPreviewWindow: null, printPreviewWindowOpen: false, tester: false, slre: new RegExp("[^/]*$"), getCfg: function(ckey, cdef) { if(this.cpc != null && typeof this.cpc[ckey] != 'undefined') return this.cpc[ckey]; return cdef; }, loadcp: function() { if(typeof FDCPLoader.FDCPClient.onPrintSpecLoad != "undefined"){ FDCPLoader.FDCPClient.onPrintSpecLoad(); } this.cpc = FDCPLoader.FDCPClient.cpc; if(this.cpc.cpStatus == 'n'){ FDCPLoader.tagg = FDCPLoader.tmax + 1; return; } var jsloc = this.getCfg('codeBase', null); var e = document.createElement('script'); e.src = this.validatePath(jsloc , "cp.js"); e.type = 'text/javascript'; document.getElementsByTagName("head")[0].appendChild(e); this.loadXPathLib(); }, loadFFjs: function() { if(FDCPLoader.FDCPClient.cpc.cpStatus == 'n'){ FDCPLoader.tagg = FDCPLoader.tmax + 1; return; } var jsloc = this.getCfg('codeBase', null); jsloc = this.removeFileFromPath(jsloc, "cp.js"); var e = document.createElement('script'); e.src = this.validatePath(jsloc , "FDFF.js"); e.type = 'text/javascript'; document.getElementsByTagName("head")[0].appendChild(e); setTimeout(function(thisObj) { thisObj.checkFFjs(false); },2000,this); }, checkFFjs: function(expire) { if (expire) return false; if (typeof FDFF == 'undefined') setTimeout(function(thisObj) { thisObj.checkFFjs(true); },2000,this); else FDFF.load(); }, loadXPathLib: function() { if (navigator.appName == "Microsoft Internet Explorer") { var xpathUrl = null; if (typeof this.FDCPClient.xpathLib == "undefined" || this.FDCPClient.xpathLib == null || this.FDCPClient.xpathLib == "") { xpathUrl = this.getCfg('xpathLib', null); if (xpathUrl == null){ xpathUrl = this.getCfg('codeBase', null); xpathUrl = this.removeFileFromPath(xpathUrl, "cp.js"); } } else xpathUrl = this.FDCPClient.xpathLib; var e = document.createElement('script'); e.src = this.validatePath(xpathUrl , "xpath.js"); e.type = 'text/javascript'; document.getElementsByTagName("head")[0].appendChild(e); } else{ if (navigator.userAgent.indexOf("Firefox") != -1){ //FDCPLoader.loadFFjs(); } } }, removeFileFromPath: function(path, file){ if (path.indexOf(file) > 1) { var lastSlashIndex = path.search(this.slre); return path.substr(0, lastSlashIndex); } else { return path; } }, getPDScriptUrl: function(){ var snodes = document.getElementsByName('cleanprintloader'); var url = ""; if(snodes.length > 0) { url = snodes[0].src; } else { snodes = document.getElementsByTagName('SCRIPT'); for(var i = 0; i < snodes.length; i++) { if(snodes[i].name == 'cleanprintloader') { url = snodes[i].src; break; } } } return url; }, loadPrintSpec: function(){ try { formatDynamicsPT = new FormatDynamicsPT(new FDCPClient()); formatDynamicsPT.initX(); var psfailed = false; if(!this.loaded) { this.loaded = true; var pdSrc = this.getPDScriptUrl(); if (this.FDCPClient.hosted == "fd" && pdSrc.length > 0) this.divId = this.getDivisionId(pdSrc); else this.divId = this.FDCPClient.divid; this.printSpecId = this.getPrintSpecId(pdSrc); var url = this.FDCPClient.cpServletPath; url += "?useCache=false"; url += "&divId=" + this.divId; var psid = null; if(typeof this.FDCPClient.getCalculatedPrintSpecId != "undefined" && this.tester == false) { try { psid = this.FDCPClient.getCalculatedPrintSpecId(); if(psid == false){ psfailed = true; } } catch(err) { psfailed = true; } } if(psfailed) { formatDynamicsPT.initIE(); } else { url += "&printSpecId=" + ((typeof psid == 'undefined' || psid == null) ? this.printSpecId : psid); var cpDefScript = document.createElement('script'); cpDefScript.src = url; cpDefScript.type = 'text/javascript'; document.getElementsByTagName("head")[0].appendChild(cpDefScript); } } } catch(e) {} }, validatePath: function(path , jsFile){ if (path.indexOf(jsFile) > 1) return path; else { if (path.charAt(path.length -1) == "/") return path + jsFile; else return path + "/" + jsFile; } }, getPrintSpecId: function(pdSrc) { var pdre = new RegExp("^[^?]+\\??"); var queryString = pdSrc.replace(pdre,''); var params = this.parseQuery( queryString ); return params['ps']; }, getDivisionId: function(pdSrc) { var tmpUrl = pdSrc.replace(this.slre, ""); var lastSlashIndex = tmpUrl.search(this.slre); var divId = tmpUrl.substr(0, lastSlashIndex -1); lastSlashIndex = divId.search(this.slre); divId = divId.substr(lastSlashIndex, divId.length); return divId; }, parseQuery: function( query ) { var Params = new Object (); if ( ! query ) return Params; // return empty object var pre = new RegExp("[;&]"); var plusre = new RegExp("\\+", "g"); var Pairs = query.split(pre); for ( var i = 0; i < Pairs.length; i++ ) { var KeyVal = Pairs[i].split('='); if ( ! KeyVal || KeyVal.length != 2 ) continue; var key = unescape( KeyVal[0] ); var val = unescape( KeyVal[1] ); val = val.replace(plusre, ' '); Params[key] = val; } return Params; }, cpJsLoaded:false, xpathJsLoaded:navigator.appName != "Microsoft Internet Explorer", registerModuleLoaded: function(moduleName){ if(moduleName == "cp.js"){ this.cpJsLoaded = true; } else if(moduleName == "xpath.js"){ this.xpathJsLoaded = true; } if(this.xpathJsLoaded && this.cpJsLoaded){ fdcp.replacePrintLinks(); } }, fdPrintWrapper: function(theContext){ theContext = typeof theContext == "undefined" ? window : theContext; theContext.print(); }, ptFailover: function() { formatDynamicsPT = new FormatDynamicsPT(new FDCPClient()); formatDynamicsPT.initAll(); } } function FDCPUrl(pfLink, isViewer) { try { isViewer = typeof isViewer == "undefined" ? false : isViewer; if(isViewer && (typeof pfLink == "undefined" || pfLink == null || pfLink == '')){ return false; } if(typeof fdcp == 'undefined') { if(FDCPLoader.incyc == false) FDCPLoader.incyc = true; if(FDCPLoader.tagg > FDCPLoader.tmax) { FDCPLoader.incyc = false; FDCPLoader.fdPrintWrapper(); return false; } FDCPLoader.tagg += FDCPLoader.tint; setTimeout("FDCPUrl(" + pfLink + ", " + isViewer + ")", FDCPLoader.tint); return false; } else FDCPLoader.incyc = false; if(isViewer){ var continueCp = fdcp.browserDetect.browser == "Firefox" || fdcp.browserDetect.browser == "Explorer" || (fdcp.browserDetect.browser == "Safari" && fdcp.browserDetect.OS == "Mac"); if(!continueCp){ window.open(pfLink, "pf", ""); return false; } } fdcp.clt.mode = isViewer ? fdcp.clt.modes.printerFriendlyViewer : fdcp.clt.modes.printLink; fdcp.linkPrintHandler(pfLink); if(navigator.appName != "Microsoft Internet Explorer") { fdcp.clt.resetMode(); } return false; } catch(e) {} } // a simple ajax object getter function fdGetAjaxObj() { if(window.XMLHttpRequest){ return new XMLHttpRequest(); //Not IE }else if(window.ActiveXObject){ return new ActiveXObject("Microsoft.XMLHTTP"); //IE }else{ return null; } } if (window.addEventListener) { window.addEventListener("load", function() { FDCPLoader.loadPrintSpec(); }, true); } else if (window.attachEvent) { window.attachEvent("onload", function() { FDCPLoader.loadPrintSpec(); }); }