Skip to content

Instantly share code, notes, and snippets.

@beratdogan
Created June 29, 2014 23:08
Show Gist options
  • Save beratdogan/be8678a6ed89b8525893 to your computer and use it in GitHub Desktop.
Save beratdogan/be8678a6ed89b8525893 to your computer and use it in GitHub Desktop.
Compiled and minified spf.js file. Can be found more details here: https://github.com/youtube/spfjs
/*
SPF
(c) 2012-2014 Google, Inc.
License: MIT
*/
(function(){function l(a,b,c){var d=Array.prototype.slice.call(arguments,2);return function(){var c=d.slice();c.push.apply(c,arguments);return a.apply(b,c)}}function aa(a,b){if(a){var c=Array.prototype.slice.call(arguments,1);try{return a.apply(null,c)}catch(d){return d}}}function m(a,b){if(document.createEvent){var c=document.createEvent("CustomEvent");c.initCustomEvent("spf"+a,!0,!0,b);return document.dispatchEvent(c)}return!0}function n(){return(new Date).getTime()};function p(a,b){return q[a]=b}var q=window._spf_state||{};window._spf_state=q;var ba={"animation-class":"spf-animate","animation-duration":425,"cache-lifetime":6E5,"cache-max":50,"cache-unified":!1,"link-class":"spf-link","nolink-class":"spf-nolink","navigate-limit":20,"navigate-lifetime":864E5,"prefetch-on-mousedown":!1,"process-async":!1,"request-timeout":0,"url-identifier":"?spf=__type__"};function r(a){return ca()[a]}function ca(a){return!a&&"config"in q?q.config:p("config",a||{})};function ea(a){var b=s();a in b&&delete b[a]}function fa(){var a=s(),b;for(b in a)ga(a[b])||delete a[b]}function ga(a){if(!(a&&"data"in a))return!1;var b=a.life,b=isNaN(b)?Infinity:b,c=n()-a.time,d=parseInt(r("cache-max"),10),d=isNaN(d)?Infinity:d;a=(parseInt(q["cache-counter"],10)||0)-a.count;return c<b&&a<d}function s(){return"cache-storage"in q?q["cache-storage"]:p("cache-storage",{})};function ha(a,b,c,d){var e=window.history.state;d&&e&&(b=b||e);ia(!0,a,b,c)}function ia(a,b,c,d){if(b||c){b=b||window.location.href;c=c||{};var e=n();p("history-timestamp",e);c["spf-timestamp"]=e;if(a)ja(c,b);else if("function"==typeof ka)ka.call(window.history,c,"",b);else throw Error("history.pushState is not a function.");p("history-url",b);d&&(a=q["history-callback"])&&a(b,c)}}
function la(a){var b=window.location.href;if(a.state){a=a.state;var c=a["spf-timestamp"];b==q["history-url"]?(p("history-timestamp",c),ja(a,b)):(a["spf-back"]=c<parseInt(q["history-timestamp"],10),a["spf-current"]=q["history-url"],p("history-timestamp",c),p("history-url",b),(c=q["history-callback"])&&c(b,a))}}function ja(a,b){if("function"==typeof ma)ma.call(window.history,a,"",b);else throw Error("history.replaceState is not a function");}
var ka="undefined"!=typeof History?History.prototype.pushState:null,ma="undefined"!=typeof History?History.prototype.replaceState:null;function na(a,b,c,d){var e=d||{},f=!1,g=0,k,h=new XMLHttpRequest;h.open(a,b,!0);h.timing={};var v=h.abort;h.abort=function(){clearTimeout(k);h.onreadystatechange=null;v.call(h)};h.onreadystatechange=function(){var a=h.timing;if(h.readyState==oa){a.responseStart=a.responseStart||n();f=-1<(h.getResponseHeader("Transfer-Encoding")||"").toLowerCase().indexOf("chunked");if(!f){var a=h.getResponseHeader("X-Firefox-Spdy"),b=window.chrome&&chrome.loadTimes&&chrome.loadTimes(),b=b&&b.wasFetchedViaSpdy;f=!(!a&&
!b)}e.t&&e.t(h)}else h.readyState==pa?f&&e.l&&(a=h.responseText.substring(g),g=h.responseText.length,e.l(h,a)):h.readyState==qa&&(a.responseEnd=a.responseEnd||n(),f&&e.l&&h.responseText.length>g&&(a=h.responseText.substring(g),g=h.responseText.length,e.l(h,a)),clearTimeout(k),e.s&&e.s(h))};a="POST"==a;if(e.headers)for(var da in e.headers)h.setRequestHeader(da,e.headers[da]),"content-type"==da.toLowerCase()&&(a=!1);a&&h.setRequestHeader("Content-Type","application/x-www-form-urlencoded");0<e.A&&(k=
setTimeout(function(){h.abort();e.u&&e.u(h)},e.A));h.timing.fetchStart=n();h.send(c);return h}var oa=2,pa=3,qa=4;function ra(a){return a.classList?a.classList:a.className&&a.className.match(/\S+/g)||[]}function t(a,b){if(a.classList)return a.classList.contains(b);for(var c=ra(a),d=0,e=c.length;d<e;d++)if(c[d]==b)return!0;return!1}function sa(a,b){a.classList?a.classList.add(b):t(a,b)||(a.className+=" "+b)}function ta(a,b){if(a.classList)a.classList.remove(b);else{for(var c=ra(a),d=[],e=0,f=c.length;e<f;e++)c[e]!=b&&d.push(c[e]);a.className=d.join(" ")}};function ua(a){var b,c=a.parentNode;if(c&&11!=c.nodeType)if(a.removeNode)a.removeNode(!1);else{for(;b=a.firstChild;)c.insertBefore(b,a);c.removeChild(a)}}function va(a,b,c){for(;a;){if(b(a))return a;if(c&&a==c)break;a=a.parentNode}return null}function wa(a,b){var c=a||"",d=document,e=d.createElement("iframe");e.id=c;e.src='javascript:""';e.style.display="none";b&&(e.onload=l(b,null,e));d.body.appendChild(e);return e};function u(a,b){if(a.forEach)a.forEach(b,void 0);else for(var c=0,d=a.length;c<d;c++)c in a&&b.call(void 0,a[c],c,a)}function w(a,b){if(a.every)return a.every(b,void 0);for(var c=0,d=a.length;c<d;c++)if(c in a&&!b.call(void 0,a[c],c,a))return!1;return!0}function xa(a,b){if(a.map)return a.map(b,void 0);var c=[];c.length=a.length;u(a,function(a,e,f){c[e]=b.call(void 0,a,e,f)});return c}function x(a){return"[object Array]"==Object.prototype.toString.call(a)?a:[a]};function ya(a,b){a&&b&&(a in y||(y[a]=[]),y[a].push(b))}function za(a,b){a in y&&b&&w(y[a],function(a,d,e){return a==b?(e[d]=null,!1):!0})}function Aa(a){a in y&&u(y[a],function(a,c,d){d[c]=null;a&&a()})}var y={};"ps-s"in q||p("ps-s",{});y=q["ps-s"];function z(a,b,c){c=c||0;return a.lastIndexOf(b,c)==c}function A(a){return"[object String]"==Object.prototype.toString.call(a)}var B=String.prototype.trim?function(a){return a.trim()}:function(a){return a.replace(/^\s+|\s+$/g,"")};function Ba(a){a=a.split("#");return[a[0],a.slice(1).join("#")]};function C(a){var b=document.createElement("a");b.href=a;return Ba(b.href)[0]}function Ca(a){var b=document.createElement("a");b.href=a;return(a=b.pathname)&&"/"==a[0]?a:"/"+a};function D(a,b,c){var d=E[a];return a&&b?(d||(d=E[a]={items:[],k:0,n:1}),d.items.push({D:b,C:c||0})):d&&d.items.length||0}function F(a,b){var c=E[a];if(c){var d=0<c.k;0<c.n&&(b||!d)&&Da(a,b)}}function G(a){(a=E[a])&&a.n--}function H(a,b){var c=E[a];c&&(c.n++,F(a,b))}function Ea(a){var b=E[a];b&&(clearTimeout(b.k),delete E[a])}function Fa(a){var b=(parseInt(q.uid,10)||0)+1;return a["spf-key"]||(a["spf-key"]=""+p("uid",b))}
function Da(a,b){var c=E[a];if(c&&(clearTimeout(c.k),c.k=0,0<c.n)){var d=c.items.shift();if(d){var e=l(Da,null,a,b),e=l(function(a,b){a();b()},null,d.D,e);b?e():c.k=setTimeout(e,d.C)}}}var E={};function Ga(a,b,c,d){function e(){I[b]&&(I[b]=Ha);c&&setTimeout(c,0);return null}var f=a==J;b=K(a,b);I[b]=Ia;if(!b)return e();d=d||document;var g=d.createElement(f?"script":"link"),k=L(b);g.className=a+"-"+k;"onload"in g?g.onerror=g.onload=e:g.onreadystatechange=function(){/^c|loade/.test(g.readyState)&&e()};a=d.getElementsByTagName("head")[0];f?(g.async=!0,g.src=b,a.insertBefore(g,a.firstChild)):(g.rel="stylesheet",g.href=b,a.appendChild(g));return g}
function Ja(a,b){b=K(a,b);var c=L(b),c=document.querySelectorAll?document.querySelectorAll("."+(a+"-"+c)):[];u(c,function(a){a.parentNode&&a.parentNode.removeChild(a)});delete I[b]}function Ka(a){var b=a==J,c=[];u(document.querySelectorAll?document.querySelectorAll(b?"script[src]":'link[rel~="stylesheet"]'):[],function(d){var e=b?d.src:d.href,e=K(a,e);I[e]||(I[e]=Ha,e=L(e),sa(d,a+"-"+e),c.push(d))});return c}
function La(a,b){if(b&&(b=K(a,b),!I[b])){var c=L(b),d=a+"-"+c,e=a+"-prefetch",c=document.getElementById(e);if(!c)c=wa(e,function(a){a.title=e;F(e,!0)});else if(c.contentWindow.document.getElementById(d))return;d=l(Ma,null,c,a,b,d);c.title?d():D(e,d)}}function Ma(a,b,c,d){a=a.contentWindow.document;b==J?(b=a.createElement("object"),Na?a.createElement("script").src=c:b.data=c,b.id=d,a.body.appendChild(b)):(b=Ga(b,c,null,a),b.id=d)}
function K(a,b){var c="rsrc-p-"+a;if(b){var d=b.indexOf("//");if(0>d){c=q[c]||"";if(A(c))b=c+b;else for(var e in c)b=b.replace(e,c[e]);b=0>b.indexOf("."+a)?b+"."+a:b;b=C(b)}else 0==d&&(b=C(b))}return b}function Oa(a,b){b=K(a,b);return!!I[b]}function Pa(a,b){b=K(a,b);return I[b]==Ha}function L(a){return a?a.replace(/[^\w]/g,""):""}function M(a,b,c){var d=a+"-"+b;N[d]=[];u(c,function(b){b=K(a,b);N[d].push(b)})}function O(a,b){delete N[a+"-"+b]}
var I={},N={},Na=-1!=navigator.userAgent.indexOf(" Trident/"),Ia=1,Ha=2,J="js";"rsrc-s"in q||p("rsrc-s",{});I=q["rsrc-s"];"rsrc-u"in q||p("rsrc-u",{});N=q["rsrc-u"];function Qa(a,b,c){a=x(a);var d=A(b),e=d?b:"",f=d?c:b;b=f;if(e){c=w(a,Ra);var g=N["css-"+e];!c&&g&&(m("cssbeforeunload",{name:e,urls:g}),O("css",e),b=function(){Sa(e,g);f&&f()})}c=e||"^"+a.sort().join("^");M("css",c,a);ya("css-"+c,b);u(a,function(a){Oa("css",a)?Ta():(a=Ua(a,Ta),e&&a.setAttribute("name",e))})}function Sa(a,b){b.length&&(m("cssunload",{name:a,urls:b}),u(b,function(a){Ja("css",a)}))}function Va(){var a=Ka("css");u(a,function(a){var c=a.getAttribute("name");c&&M("css",c,[a.href])})}
function Ua(a,b){return Ga("css",a,b)}function Ta(){for(var a in y)0==a.indexOf("css-")&&w(a.substring(4).split("|"),Wa)&&Aa(a)}function Xa(a){a=x(a);u(a,function(a){La("css",a)})}function Ra(a){return Pa("css",a)}function Wa(a){var b=N["css-"+a];return!a||!!b&&w(b,Ra)};function P(a,b,c){a=x(a);var d=A(b),e=d?b:"",f=d?c:b;b=f;if(e){c=w(a,Ya);var g=N[J+"-"+e];!c&&g&&(m("jsbeforeunload",{name:e,urls:g}),O(J,e),b=function(){Za(e,g);f&&f()})}c=e||"^"+a.sort().join("^");M(J,c,a);c=Q(c);ya(c,b);u(a,function(a){Oa(J,a)?$a():(a=ab(a,$a),e&&a.setAttribute("name",e))})}function bb(a){var b=N[J+"-"+a]||[];O(J,a);Za(a,b)}function Za(a,b){b.length&&(m("jsunload",{name:a,urls:b}),u(b,function(a){Ja(J,a)}))}
function cb(){var a=Ka(J);u(a,function(a){var c=a.getAttribute("name");c&&M(J,c,[a.src])})}function ab(a,b){return Ga(J,a,b)}function db(a,b,c){a=x(a);var d=[];u(a,function(a){a&&!N[J+"-"+a]&&d.push(a)});var e=!d.length;if(b){var f=w(a,eb);e&&f?b():(a=Q(a.sort().join("|")),ya(a,b))}c&&!e&&c(d)}function fb(a,b){a=x(a);u(a,function(a){a&&gb(a,R[a]||a)&&hb(a)});db(a,b,ib)}function ib(a){u(a,function(a){function c(){P(e,a)}var d=S[a],e=R[a]||a;d?fb(d,c):c()})}
function hb(a){a=x(a);u(a,function(a){var c=[],d;for(d in S){var e=S[d],e=x(e);u(e,function(e){e==a&&c.push(d)})}u(c,function(a){hb(a)});bb(a)})}function $a(){var a=Q(""),b;for(b in y)0==b.indexOf(a)&&w(b.substring(a.length).split("|"),eb)&&Aa(b)}function jb(a){a=x(a);u(a,function(a){La(J,a)})}
function kb(a,b){if(a=B(a))if(window.execScript)window.execScript(a);else if(z(a,"use strict",1)){var c=document.createElement("script");c.text=a;var d=document.getElementsByTagName("head")[0]||document.body;d.appendChild(c);d.removeChild(c)}else(0,eval)(a);b&&b()}function Q(a){return J+"-"+a}function Ya(a){return Pa(J,a)}function eb(a){var b=N[J+"-"+a];return!a||!!b&&w(b,Ya)}function gb(a,b){var c=N[J+"-"+a];return c?(b=x(b),!w(c,function(a,e){return c[e]==K(J,b[e])})):!1}var S={};
"js-d"in q||p("js-d",{});var S=q["js-d"],R={};"js-u"in q||p("js-u",{});R=q["js-u"];function lb(a,b,c){if(b){b=[];var d,e=0;c&&(a+="\r\n");var f=a.indexOf(mb,e);for(-1<f&&(e=f+mb.length);-1<(f=a.indexOf(nb,e));)d=B(a.substring(e,f)),e=f+nb.length,d&&b.push(JSON.parse(d));f=a.indexOf(ob,e);-1<f&&(d=B(a.substring(e,f)),e=f+ob.length,d&&b.push(JSON.parse(d)));d="";if(a.length>e){d=a.substring(e);if(a=c)a=d.length-2,a=0<=a&&d.indexOf("\r\n",a)==a;a&&(d=d.substring(0,d.length-2))}return{j:b,a:d}}b=JSON.parse(a);b="number"==typeof b.length?b:[b];return{j:b,a:""}}
function T(a,b,c,d,e){var f="process "+C(a),g=!r("process-async"),k;k=0;b.timing||(b.timing={});b.title&&(document.title=b.title);d&&b.url&&C(b.url)!=C(window.location.href)&&ha(b.url+window.location.hash,null,!1,!0);if(b.head||b.css)k=l(function(a,b){var c=pb(a);if(!(0>=c.c.length))for(var d=0,e=c.c.length;d<e;d++){var f=c.c[d];if(f.url)Qa(f.url,f.name);else if(f.text&&(f=f.text,f=B(f))){var g=document.createElement("style");(document.getElementsByTagName("head")[0]||document.body).appendChild(g);
"styleSheet"in g?g.styleSheet.cssText=f:g.appendChild(document.createTextNode(f))}}b.spfProcessCss=n()},null,b.head||b.css,b.timing),k=D(f,k);b.attr&&(k=l(function(a,b){for(var c in a){var d=document.getElementById(c);if(d){var e=a[c],f=void 0;for(f in e){var g=e[f];"class"==f?d.className=g:"style"==f?d.style.cssText=g:d.setAttribute(f,g)}}}b.spfProcessAttr=n()},null,b.attr,b.timing),k=D(f,k));d=b.html||{};var h=k,v;for(v in d)k=l(function(a,b){var c=document.getElementById(a);if(c){var d=U(b),h=
r("animation-class");if(qb&&t(c,h)){G(f);var k=Fa(c);F(k,!0);d={q:d,reverse:!!e,f:null,i:null,h:c,B:h+"-old",F:h+"-new",w:e?h+"-reverse-start":h+"-forward-start",p:e?h+"-reverse-end":h+"-forward-end"};c=l(function(a){sa(a.h,a.w);a.f=document.createElement("div");a.f.className=a.B;var b=a.h,c=a.f;if(c){for(var d;d=b.firstChild;)c.appendChild(d);b.appendChild(c)}a.i=document.createElement("div");a.i.className=a.F;a.i.innerHTML=a.q.d;a.reverse?(b=a.f,b.parentNode.insertBefore(a.i,b)):(b=a.f,b.parentNode.insertBefore(a.i,
b.nextSibling))},null,d);D(k,c,0);c=l(function(a){ta(a.h,a.w);sa(a.h,a.p)},null,d);D(k,c,0);c=l(function(a){a.h.removeChild(a.f);ta(a.h,a.p);ua(a.i);G(k);rb(a.q,function(){H(k)})},null,d);D(k,c,parseInt(r("animation-duration"),10));c=l(function(a,b){H(b)},null,d,f);D(k,c);F(k)}else c.innerHTML=d.d,G(f),rb(d,function(){H(f,g)})}},null,v,d[v],b.timing),k=D(f,k);v=k-h;b.foot||b.js?(k=l(function(a,b,c){c&&(b.spfProcessHtml=n());G(f);rb(U(a),function(){b.spfProcessJs=n();H(f,g)})},null,b.foot||b.js,b.timing,
v),k=D(f,k)):v&&(k=l(function(a){a.spfProcessHtml=n()},null,b.timing),k=D(f,k));c&&(k=D(f,l(c,null,a,b)));F(f,g)}function sb(a,b,c){var d="preprocess "+C(a),e;if(b.head||b.css)e=l(function(a){tb(pb(a))},null,b.head||b.css),D(d,e);var f=b.body||b.html||{},g;for(g in f)f[g]&&(e=l(function(a,b){ub(U(b))},null,g,f[g]),D(d,e));if(b.foot||b.js)e=l(function(a){ub(U(a))},null,b.foot||b.js),D(d,e);c&&D(d,l(c,null,a,b));F(d)}
function U(a){var b=new vb;if(!a)return b;if(!A(a))return a.scripts&&u(a.scripts,function(a){b.scripts.push({url:a.url||"",text:a.text||"",name:a.name||"",async:a.async||!1})}),b.d=a.html||"",b;a=a.replace(wb,function(a,d,e){a=(a=d.match(xb))?a[1]:"";var f=d.match(yb),f=f?f[1]:"";d=zb.test(d);b.scripts.push({url:a,text:e,name:f,async:d});return""});b.d=a;return b}
function rb(a,b){if(0>=a.scripts.length)b&&b();else{var c=-1,d=function(){c++;if(c<a.scripts.length){var e=a.scripts[c];e.url?e.async?(P(e.url,e.name),d()):P(e.url,e.name,d):e.text?kb(e.text,d):d()}else b&&b()};d()}}function ub(a){0>=a.scripts.length||(a=xa(a.scripts,function(a){return a.url}),jb(a))}
function pb(a){var b=new Ab;if(!a)return b;if(!A(a))return a.styles&&u(a.styles,function(a){b.c.push({url:a.url||"",text:a.text||"",name:a.name||""})}),b.d=a.html||"",b;a=a.replace(Bb,function(a,d){if(-1!=d.indexOf('rel="stylesheet"')){var e=d.match(Cb),e=e?e[1]:"",f=d.match(yb),f=f?f[1]:"";b.c.push({url:e,text:"",name:f});return""}return a});a=a.replace(Db,function(a,d,e){b.c.push({url:"",text:e,name:""});return""});b.d=a;return b}
function tb(a){0>=a.c.length||(a=xa(a.c,function(a){return a.url}),Xa(a))}function Ab(){this.d="";this.c=[]}function vb(){this.d="";this.scripts=[]}
var qb=function(){var a=document.createElement("div");if("transition"in a.style)return!0;for(var b=["webkit","Moz","Ms","O","Khtml"],c=0,d=b.length;c<d;c++)if(b[c]+"Transition"in a.style)return!0;return!1}(),wb=/\x3cscript([\s\S]*?)\x3e([\s\S]*?)\x3c\/script\x3e/ig,Db=/\x3cstyle([\s\S]*?)\x3e([\s\S]*?)\x3c\/style\x3e/ig,Bb=/\x3clink([\s\S]*?)\x3e/ig,Cb=/href="([\S]+)"/,xb=/src="([\S]+)"/,yb=/name="([\S]+)"/,zb=/(?:\s|^)async(?:\s|=|$)/i,mb="[\r\n",nb=",\r\n",ob="]\r\n";function Eb(a,b){var c=b||{};c.method=((c.method||"GET")+"").toUpperCase();c.type=c.type||"request";var d=a,e=c.type,f=r("url-identifier")||"";if(f){var e=e||"",g="";-1!=d.indexOf("#")&&(g=Ba(d),d=g[0],g="#"+g[1]);f=f.replace("__type__",e);d=z(f,"?")&&-1!=d.indexOf("?")?d+f.replace("?","&"):d+f;d+=g}d=C(d);f={};f.startTime=n();f.fetchStart=f.startTime;a:{var g=Fb(a,c.e,null,c.type,!1),k=c.e,e=[];k&&(e.push(g+" previous "+k),e.push(g+" previous "+Ca(k)));e.push(g);g=0;for(k=e.length;g<k;g++){var h;
b:{h=e[g];var v=s();if(h in v){v=v[h];if(ga(v)){h=v.data;break b}ea(h)}h=void 0}if(h){e={key:e[g],response:h};break a}}e=null}if(e)return c=l(Gb,null,a,c,f,e.key,e.response),setTimeout(c,0),null;e={};void 0!=c.v&&(e["X-SPF-Referer"]=c.v);c.e&&(e["X-SPF-Previous"]=c.e);h={r:!1,a:"",complete:[]};g=l(Hb,null,a,h);k=l(Ib,null,a,c,h);f=l(Jb,null,a,c,f,h);f={headers:e,A:r("request-timeout"),t:g,l:k,s:f,u:f};return"POST"==c.method?na("POST",d,c.o,f):na("GET",d,null,f)}
function Gb(a,b,c,d,e){var f=!1;c.responseStart=c.responseEnd=n();b.type&&z(b.type,"navigate")&&(c.navigationStart=c.startTime,c.spfPrefetchType="cache",r("cache-unified")||(ea(d),f=!0));if(b.b&&"multipart"==e.type){d=e.parts;for(var g=0;g<d.length;g++)b.b(a,d[g])}Kb(a,b,c,e,f)}function Hb(a,b,c){a=-1!=(c.getResponseHeader("X-SPF-Response-Type")||"").toLowerCase().indexOf("multipart");b.r=a}
function Ib(a,b,c,d,e,f){if(c.r){e=c.a+e;var g;try{g=lb(e,!0,f)}catch(k){d.abort();b.g&&b.g(a,k);return}if(b.b)for(d=0;d<g.j.length;d++)b.b(a,g.j[d]);c.complete=c.complete.concat(g.j);c.a=g.a}}
function Jb(a,b,c,d,e){if(e.timing)for(var f in e.timing)c[f]=e.timing[f];"navigate"==b.type&&(c.navigationStart=c.startTime);d.complete.length&&(d.a=B(d.a),d.a&&Ib(a,b,d,e,"",!0));var g;try{g=lb(e.responseText).j}catch(k){b.g&&b.g(a,k);return}if(b.b&&1<g.length)for(d=d.complete.length;d<g.length;d++)b.b(a,g[d]);if(1<g.length){var h;d=0;for(e=g.length;d<e;d++)f=g[d],f.cacheType&&(h=f.cacheType);g={parts:g,type:"multipart"};h&&(g.cacheType=h)}else g=1==g.length?g[0]:{};Kb(a,b,c,g,!0)}
function Kb(a,b,c,d,e){if(e&&"POST"!=b.method&&(e=Fb(a,b.e,d.cacheType,b.type,!0))){var f=r("cache-lifetime"),f=parseInt(f,10),g=parseInt(r("cache-max"),10);if(!(0>=f||0>=g)){var g=s(),k=(parseInt(q["cache-counter"],10)||0)+1;p("cache-counter",k);g[e]={data:d,life:f,time:n(),count:k};setTimeout(fa,1E3)}}d.timing=c;b.m&&b.m(a,d)}
function Fb(a,b,c,d,e){a=C(a);var f;r("cache-unified")?f=a:"navigate-back"==d||"navigate-forward"==d?f="history "+a:"navigate"==d?f=(e?"history ":"prefetch ")+a:"prefetch"==d&&(f=e?"prefetch "+a:"");b&&"url"==c?f+=" previous "+b:b&&"path"==c&&(f+=" previous "+Ca(b));return f||""};function Lb(a){return va(a,function(a){return t(a,r("link-class"))})}function Mb(a){return va(a,function(a){return t(a,r("nolink-class"))})}function Nb(a,b){return va(a,function(a){return a.href&&"img"!=a.tagName.toLowerCase()},b)}function Ob(a){if(a.metaKey||a.altKey||a.ctrlKey||a.shiftKey||0<a.button)return null;var b=Lb(a.target);return!b||r("nolink-class")&&Mb(a.target)?null:(a=Nb(a.target,b))?a.href:null}
function Pb(){if(!q["nav-init"])return!1;var a=(parseInt(q["nav-counter"],10)||0)+1,b=parseInt(r("navigate-limit"),10),b=isNaN(b)?Infinity:b;if(a>b)return!1;a=n()-(parseInt(q["nav-time"],10)-1);b=parseInt(r("navigate-lifetime"),10);b=isNaN(b)?Infinity:b;return a>b?!1:!0}function Qb(a){if(!a.defaultPrevented){var b=Ob(a);null!==b&&(b&&b!=window.location.href?Pb()&&(Rb(b),a.preventDefault()):a.preventDefault())}}
function Sb(a){var b=Ob(a);b&&b!=window.location.href&&setTimeout(function(){Tb(b,void 0)},0)}function Ub(a,b){var c=!(!b||!b["spf-back"]),d=b&&b["spf-referer"],e=b&&b["spf-current"];Pb()?Rb(a,null,e,d,!0,c):V(a)}
function Rb(a,b,c,d,e,f){b=b||{};p("nav-counter",(parseInt(q["nav-counter"],10)||0)+1);p("nav-time",n());d=void 0==d?window.location.href:d;p("nav-referer",d);c=e?c:window.location.href;W();Vb(a);var g=C(a),k="preprocess "+C(g),h;for(h in E)k!=h&&z(h,"preprocess")&&Ea(h);h=Wb()[g];p("nav-request",h);p("nav-promote",null);p("nav-promote-time",null);h&&4!=h.readyState?(c=!!e,f="preprocess "+C(a),e="promote "+C(a),p("nav-promote",a),p("nav-promote-time",n()),Ea(f),F(e,!0),c||(b=l(X,null,b),Xb(a,d,b))):
(e=!!e,h=!!f,f=l(X,null,b),g=l(Yb,null,b,h),k=l(Zb,null,b,h,""),b=Eb(a,{method:b.method,b:g,g:f,m:k,o:b.postData,type:"navigate"+(e?h?"-back":"-forward":""),e:c,v:d}),p("nav-request",b),e||Xb(a,d,f));m($b,{url:a})||V(a)}function Xb(a,b,c){try{ia(!1,a,{"spf-referer":b},void 0)}catch(d){W(),c(a,d)}}function X(a,b,c){p("nav-request",null);a=!Y(a.onError,{url:b,err:c});a||(a=!ac(b,c))||V(b)}function ac(a,b){return m(bc,{url:a,err:b})}
function Yb(a,b,c,d){if(m(cc,{url:c,part:d}))if(d.redirect)dc(a,d.redirect);else try{T(c,d,function(){var b=!Y(a.onPart,{url:c,part:d});b?V(c):(b=!m(ec,{url:c,part:d}))&&V(c)},!0,b)}catch(e){X(a,c,e)}else V(c)}
function Zb(a,b,c,d,e){p("nav-request",null);q["nav-promote"]==c&&(c=e.timing||{},c.navigationStart=q["nav-promote-time"],c.spfPrefetchType="promote");if(m(fc,{url:d,response:e}))if(e.redirect)dc(a,e.redirect);else{c="multipart"==e.type?{}:e;try{T(d,c,function(){Y(a.onSuccess,{url:d,response:e})&&m(gc,{url:d,response:e})},!0,b)}catch(f){X(a,d,f)}}else V(d)}function dc(a,b){try{b+=window.location.hash,ha(b,null,!0,!0)}catch(c){W(),X(a,b,c)}}
function W(){var a=q["nav-request"];a&&(a.abort(),p("nav-request",null))}function Y(a,b){"string"==typeof a&&(a=r(a));var c=Array.prototype.slice.call(arguments);c[0]=a;return!1!==aa.apply(null,c)}function V(a){W();Vb();window.location.href=a}function hc(a,b,c){b=b||{};var d=c||a;c=l(ic,null,!1,b,d);var e=l(jc,null,!1,b,d),d=l(kc,null,!1,b,d);Eb(a,{method:b.method,b:e,g:c,m:d,o:b.postData,type:"load"})}
function Tb(a,b,c){b=b||{};var d=c||a;c=window.location.href;var e=l(ic,null,!0,b,d),f=l(jc,null,!0,b,d),d=l(kc,null,!0,b,d);b=Eb(a,{method:b.method,b:f,g:e,m:d,o:b.postData,type:"prefetch",e:c});a=C(a);Wb()[a]=b}function ic(a,b,c,d,e){Y(b.onError,{url:d,err:e});a&&(lc(d),q["nav-promote"]==c&&X(b,d,e))}
function jc(a,b,c,d,e){if(e.redirect)mc(a,b,c,e.redirect);else{if(a){var f=l(Yb,null,b,!1,d,e),g="promote "+C(c);D(g,f);if(q["nav-promote"]==c){F(g,!0);return}}(a?sb:T)(d,e,function(){Y(b.onPart,{url:d,part:e})})}}function kc(a,b,c,d,e){if(e.redirect)mc(a,b,c,e.redirect);else{var f="promote "+C(c);if(a){lc(d);if(q["nav-promote"]==c){a=l(Zb,null,b,!1,c,d,e);D(f,a);F(f,!0);return}Ea(f)}(a?sb:T)(d,"multipart"==e.type?{}:e,function(){Y(b.onSuccess,{url:d,response:e})})}}
function mc(a,b,c,d){(a?Tb:hc)(d,{onSuccess:b.onSuccess,onPart:b.onPart,onError:b.onError},c)}function lc(a){a=C(a);var b=Wb(),c=b[a];c&&c.abort();delete b[a]}function Vb(a){var b=Wb();a=a&&C(a);for(var c in b)a!=c&&lc(c)}function Wb(){return"nav-prefetches"in q?q["nav-prefetches"]:p("nav-prefetches",{})}var bc="error",$b="requested",cc="partreceived",ec="partprocessed",fc="received",gc="processed";function Z(){cb();Va();"complete"==document.readyState&&(document.removeEventListener?document.removeEventListener("DOMContentLoaded",Z,!1):document.detachEvent&&document.detachEvent("onreadystatechange",Z))}document.addEventListener?document.addEventListener("DOMContentLoaded",Z,!1):document.attachEvent&&document.attachEvent("onreadystatechange",Z);Z();
var nc={init:function(a){var b=!("undefined"==typeof History||!History.prototype.pushState);a=a||{};for(var c in ba){var d=c,e=c in a?a[c]:ba[c];ca()[d]=e}if(b){c=ac;if(!q["history-init"]&&window.addEventListener){a=window.location.href;window.addEventListener("popstate",la,!1);p("history-init",!0);p("history-callback",Ub);p("history-error-callback",c);p("history-listener",la);p("history-url",a);p("history-timestamp",n());d={"spf-referer":document.referrer};try{ha(a,d)}catch(f){c&&c(a,f)}}!q["nav-init"]&&
document.addEventListener&&(document.addEventListener("click",Qb,!1),!r("prefetch-on-mousedown")||"ontouchstart"in window||0<window.navigator.maxTouchPoints||0<window.navigator.msMaxTouchPoints||(document.addEventListener("mousedown",Sb,!1),p("prefetch-listener",Sb)),p("nav-init",!0),p("nav-counter",0),p("nav-time",n()),p("nav-listener",Qb))}return b},dispose:function(){"undefined"!=typeof History&&History.prototype.pushState&&(W(),q["nav-init"]&&(document.removeEventListener&&(document.removeEventListener("click",
q["nav-listener"],!1),r("prefetch-on-mousedown")&&document.removeEventListener("mousedown",q["prefetch-listener"],!1)),p("nav-init",!1),p("nav-counter",null),p("nav-time",null),p("nav-listener",null)),q["history-init"]&&(window.removeEventListener&&window.removeEventListener("popstate",q["history-listener"],!1),p("history-init",!1),p("history-callback",null),p("history-error-callback",null),p("history-listener",null),p("history-url",null),p("history-timestamp",0)));ca({})},navigate:function(a,b){a&&
a!=window.location.href&&(Pb()?Rb(a,b):V(a))},load:function(a,b){hc(a,b)},process:T,prefetch:function(a,b){Tb(a,b)}},oc={script:{load:P,get:ab,ready:db,done:function(a){M(J,a,[]);$a()},require:fb,declare:function(a,b){if(a){for(var c in a)S[c]=a[c];if(b)for(c in b)R[c]=b[c]}},path:function(a){p("rsrc-p-"+J,a)},unload:bb,ignore:function(a,b){a=x(a);var c=Q(a.sort().join("|"));za(c,b)},unrequire:hb,prefetch:jb},style:{load:Qa,get:Ua,unload:function(a){var b=N["css-"+a]||[];O("css",a);Sa(a,b)},path:function(a){p("rsrc-p-css",
a)},prefetch:Xa}};window.spf=window.spf||{};for(var pc in nc)window.spf[pc]=nc[pc];for(var $ in oc)for(var qc in oc[$])window.spf[$]=window.spf[$]||{},window.spf[$][qc]=oc[$][qc];m("ready");})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment