All pastes #2123350 Raw Edit

Microsoft Survey

public javascript v1 · immutable
#2123350 ·published 2012-03-01 22:33 UTC
rendered paste body
if(typeof(COMSCORE)=="undefined"){var COMSCORE={};}if(typeof COMSCORE.SiteRecruit=="undefined"){COMSCORE.SiteRecruit={version:"4.6.3",debug:false,CONSTANTS:{COOKIE_TYPE:{ALREADY_ASKED:1,DD_IN_PROGRESS:2},STATE_NAME:{IDLE:"IDLE",DDINPROGRESS:"DDINPROGRESS"}}};COMSCORE.SiteRecruit.Utils=(function(){return{clone:function(obj){if(typeof(obj)!="object"){return obj;}if(obj==null){return obj;}var newObj={};for(var i in obj){newObj[i]=COMSCORE.SiteRecruit.Utils.clone(obj[i]);}return newObj;},loadScript:function(url,loadFresh){if(loadFresh){url=_sr.Utils.appendQueryParams(url,(new Date()).getTime());}var s=document.createElement("script");s.src=url;document.body.appendChild(s);},JSONDeserialize:function(str){try{if(str===""){str='""';}eval("var p="+str+";");return p;}catch(e){return null;}},JSONSerialize:function(obj){try{var t=typeof(obj);if(t!="object"||obj===null){if(t=="string"){obj='"'+obj+'"';}return String(obj);}else{var n,v,json=[],arr=(obj&&obj.constructor==Array);for(n in obj){v=obj[n];t=typeof(v);if(t!="function"){if(t=="string"){v='"'+v+'"';}else{if(t=="object"&&v!==null){v=this.JSONSerialize(v);}}json.push((arr?"":'"'+n+'":')+String(v));}}return(arr?"[":"{")+String(json)+(arr?"]":"}");}}catch(e){return"";}}};})();COMSCORE.SiteRecruit.Utils.UserPersistence={CONSTANTS:{STATE_NAME:{IDLE:"IDLE",DDINPROGRESS:"DDINPROGRESS"}},getCookieName:function(){var A;if(COMSCORE.SiteRecruit.Broker&&COMSCORE.SiteRecruit.Broker.config){A=COMSCORE.SiteRecruit.Broker.config.cookie;if(A.name){return A.name;}}return"";},getDefaultCookieOptions:function(){var A={path:"/",domain:""};return A;},getVendorId:function(){var A=1;return A;},createCookie:function(B,A,D){A=escape(A);if(D.duration&&D.duration<0){var C=new Date();C.setTime(C.getTime()+D.duration*24*60*60*1000);A+="; expires="+C.toGMTString();}else{var C=new Date();C.setTime(C.getTime()+10*365*24*60*60*1000);A+="; expires="+C.toGMTString();}if(D.path){A+="; path="+D.path;}else{}if(D.domain){A+="; domain="+D.domain;}if(D.secure){A+="; secure";}document.cookie=B+"="+A;return true;},getCookieValue:function(B){var A=document.cookie.match("(?:^|;)\\s*"+B+"=([^;]*)");return A?unescape(A[1]):false;},removeCookie:function(A,B){B=B||{};B.duration=-999;this.createCookie(A,"",B);},createUserObj:function(D){var C=new Date();var G=D.pid;var F=D.url;var E=this.CONSTANTS.STATE_NAME.IDLE;if(D.statename){E=D.statename;}var A=C.getTime();if(D.timestamp){A=D.timestamp;}var H=this.getCookieName();if(D.cookiename){H=D.cookiename;}if(!D.cookieoptions){D.cookieoptions=this.getDefaultCookieOptions();}var B={};B.version="4.6";B.state={};B.state.name=E;B.state.url=F;B.state.timestamp=A;B.lastinvited=A;B.userid=C.getTime().toString()+Math.floor(Math.random()*1e+16).toString();B.vendorid=this.getVendorId();B.surveys=new Array();B.surveys.push(G);var I=COMSCORE.SiteRecruit.Utils.JSONSerialize(B);this.createCookie(H,I,D.cookieoptions);return B;},setUserObj:function(E){var H=E.pid;var G=E.url;var D=new Date();var F=this.CONSTANTS.STATE_NAME.IDLE;if(E.statename){F=E.statename;}var A=D.getTime();if(E.timestamp){A=E.timestamp;}var I=this.getCookieName();if(E.cookiename){I=E.cookiename;}if(!E.cookieoptions){E.cookieoptions=this.getDefaultCookieOptions();}var C=this.getUserObj(E);if(!C){this.createUserObj(E);}else{var D=new Date();C.lastinvited=A;if(H){var B=false;for(i=0;i<C.surveys.length;i++){if(C.surveys[i]&&C.surveys[i].toLowerCase()==H.toLowerCase()){B=true;}}if(B==false){C.surveys.push(H);}for(i=0;i<C.surveys.length;i++){if(C.surveys[i]==null){C.surveys.splice(i,1);}}}if(F){C.state.name=F;C.state.url=G;C.state.timestamp=A;}var J=COMSCORE.SiteRecruit.Utils.JSONSerialize(C);this.createCookie(I,J,E.cookieoptions);}return C;},getUserObj:function(A){var B=this.getCookieName();if(A.cookiename){B=A.cookiename;}var C=this.getCookieValue(B);if(C&&C!=""){var D=COMSCORE.SiteRecruit.Utils.JSONDeserialize(C);if(D&&D.version&&D.version=="4.6"){return D;}}return null;}};COMSCORE.SiteRecruit.DDChecker=(function(){var A=1000,I;var C=(new Date()).getTime();var D,F,G,J;var B=[];var H=COMSCORE.SiteRecruit;var E=H.Utils;return{isDDInProgress:function(){var M=false;var K={};K.cookiename=J.name;var L=E.UserPersistence.getUserObj(K);if(L){if(L.state.name==H.CONSTANTS.STATE_NAME.DDINPROGRESS){M=true;}}return M;},getDataFromDDKeepAlive:function(){var M={url:"",time:""};var K={};K.cookiename=J.name;var L=E.UserPersistence.getUserObj(K);if(L){if(L.state&&L.state.url&&L.state.timestamp){M.url=L.state.url;M.time=L.state.timestamp;}}return M;},isWithinBrowsableArea:function(L){if(D){var K=new RegExp(D,"i");return L.url.search(K)!=-1;}else{return true;}},isGracePeriodExpired:function(){if(typeof(C)=="undefined"){return true;}var L=(new Date()).getTime();var K=L-C;return(K>F*1000);},isValidData:function(K){if(this.isWithinBrowsableArea(K)){return this.isGracePeriodExpired(K);}return false;},isClickStreamAlreadyLogged:function(L){for(var K=B.length-1;K>=0;K--){if(L.url===B[K].url){return true;}}return false;},logClickStream:function(K){if(!this.isClickStreamAlreadyLogged(K)){B.push(K);}},getDataFromOpener:function(){var L;try{L={url:opener.location.toString(),time:(new Date()).getTime()};}catch(K){}return L;},start:function(N,O,M,L){D=N;F=O;G=M;J=L;var K=this;I=setInterval(function(){if(K.isDDInProgress()){var P=true;var Q=K.getDataFromOpener();if(!Q){P=false;Q=K.getDataFromDDKeepAlive();}if(Q){if(G){K.logClickStream(Q);}if(K.isWithinBrowsableArea(Q)){C=Q.time;if(!P&&K.isGracePeriodExpired()){K.stop();}else{}}else{if(K.isGracePeriodExpired()){K.stop();}}}else{K.stop();}}else{K.stop();}},A);},storeClickStream:function(){if(B.length){var N="",O="",M=0,K=B.length;for(;M<K;M++){N=N.concat(B[M].url,";");O=O.concat(B[M].time,";");}var L=COMSCORE.SiteRecruit.Tracker.surveyData;L["locationList"]=N;L["timeList"]=O;}},stop:function(){clearInterval(I);this.storeClickStream();COMSCORE.SiteRecruit.Tracker.finishTracking();}};})();COMSCORE.isDDInProgress=COMSCORE.SiteRecruit.DDChecker.isDDInProgress;COMSCORE.SiteRecruit.Tracker=(function(){var _sr=COMSCORE.SiteRecruit;var _utils=COMSCORE.SiteRecruit.Utils;function _isVersionMatch(){try{return opener.COMSCORE.SiteRecruit.version===_sr.version;}catch(e){}return true;}return{initialize:function(){if(_isVersionMatch()){this.getConfiguration();}},getCurrentExecutingPath:function(){var url=document.location.href.split("?")[0];var path=url.substring(0,url.lastIndexOf("/")+1);return path;},getDomain:function(url){if(/\/\/(.+?)\//.test(url)){var host=RegExp.$1;var parts=host.split(".");if(parts.length>=3){var dname = parts.length - 2;parts=parts.slice(dname);return parts.join(".");}return host;}return url;},isValidHost: function(url){if (/^http(s)?:\/\/(www|js|i|i3)\.microsoft\.com\/library\/svy\/((office\/production|windows|sto(\/https)?)\/)?trackerconfig_.*\.js$/i.test(url)) {return true;} return false;},getTracker: function(url){if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){try {var recloc = opener.location.href.toLowerCase().split('?')[0];var rpath = recloc.substring(0, recloc.lastIndexOf('/') + 1);var rdomain = this.getDomain(rpath);var trackloc = document.location.toString().toLowerCase().split('?')[0];var tpath = trackloc.substring(0, trackloc.lastIndexOf('/') + 1);var tdomain = this.getDomain(tpath);if (rdomain == tdomain) {trackerPathDomain = rdomain;return trackerPathDomain;}else{return url;}}catch(err){return false;}}},getConfiguration:function(){this.surveyData=this.getQueryStringParams(document.location.toString());var s=this.surveyData;currentPath=this.getCurrentExecutingPath();currentPathDomain=this.getDomain(currentPath);trackerPathDomain=this.getDomain(s.trackerPageConfigUrl);if(currentPathDomain!=trackerPathDomain ||!this.isValidHost(s.trackerPageConfigUrl)){s.trackerPageConfigUrl="";}this.surveyUrl=s.surveyUrl;this.projectId=s.projectId;this.cookieConfig={name:s.cookieName,path:s.cookiePath,domain:s.cookieDomain,duration:s.cookieDuration,date:s.cookieDate,trackerPageConfigUrl:s.trackerPageConfigUrl};delete s.cookieName;delete s.cookiePath;delete s.cookieDomain;delete s.cookieDuration;delete s.cookieDate;delete s.surveyUrl;_utils.loadScript(this.cookieConfig.trackerPageConfigUrl);},getQueryStringParams:function(url){var params={};if(!url){return params;}var pairs=url.replace(/^[^\?]+\??/,"").split(/[;&]/);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(/\+/g," ");params[key]=val;}return params;},injectContent:function(){var c=document.getElementById("content");c.innerHTML=this.config.content;var script=document.getElementById("customScript");if(script!=null){eval(script.innerHTML);}document.title=this.config.title;},start:function(){this.injectContent();if(this.config.isAutoFocus){window.focus();}else{try{window.blur();}catch(e){}}_sr.DDChecker.start(this.config.match,this.config.gracePeriod,this.config.isCaptureTrail,this.cookieConfig);},injectForm:function(){if(!/^http(s)?:\/\/survey2\.(surveysite|securestudies|voicefive|opinionsquare)\.com\/(wi|wix)\/p[0-9]+\.aspx/i.test(this.surveyUrl)){return;}this.form=document.createElement("form");this.form.method="POST";this.form.action=this.surveyUrl;for(var i in this.surveyData){var h=document.createElement("input");h.type="hidden";h.name=i.toString();h.value=unescape(this.surveyData[i].toString());this.form.appendChild(h);}document.body.appendChild(this.form);},finishTracking:function(){this.injectForm();var params={};params.cookiename=this.cookieConfig.name;params.cookieoptions=this.cookieConfig;params.statename=_sr.CONSTANTS.STATE_NAME.IDLE;params.pid=this.projectId;_utils.UserPersistence.setUserObj(params);this.submitForm();},submitForm:function(){var that=this;if(that.form){setTimeout(function(){that.form.submit();},5);}}};}());}