/* Asynchronously write javascript, even with document.write., v1.2.0 https://krux.github.io/postscribe Copyright (c) 2014 Derek Brans, MIT license https://github.com/krux/postscribe/blob/master/LICENSE */!function(){function a(a,h){a=a||"",h=h||{};for(var i in b)b.hasOwnProperty(i)&&(h.autoFix&&(h["fix_"+i]=!0),h.fix=h.fix||h["fix_"+i]);var j=[],k=function(b){a+=b},l=function(b){a=b+a},m={comment:/^");return b>=0?{content:a.substr(4,b),length:b+3}:void 0},endTag:function(){var b=a.match(d);return b?{tagName:b[1],length:b[0].length}:void 0},atomicTag:function(){var b=n.startTag();if(b){var c=a.slice(b.length);if(c.match(new RegExp("\\s*"+b.tagName+"\\s*>","i"))){var d=c.match(new RegExp("([\\s\\S]*?)\\s*"+b.tagName+"\\s*>","i"));if(d)return{tagName:b.tagName,attrs:b.attrs,content:d[1],length:d[0].length+b.length}}}},startTag:function(){var b=a.match(c);if(b){var d={};return b[2].replace(e,function(a,b){var c=arguments[2]||arguments[3]||arguments[4]||f.test(b)&&b||null;d[b]=c}),{tagName:b[1],attrs:d,unary:!!b[3],length:b[0].length}}},chars:function(){var b=a.indexOf("<");return{length:b>=0?b:a.length}}},o=function(){for(var b in m)if(m[b].test(a)){g&&console.log("suspected "+b);var c=n[b]();return c?(g&&console.log("parsed "+b,c),c.type=c.type||b,c.text=a.substr(0,c.length),a=a.slice(c.length),c):null}},p=function(a){for(var b;b=o();)if(a[b.type]&&a[b.type](b)===!1)return},q=function(){var b=a;return a="",b},r=function(){return a};return h.fix&&!function(){var b=/^(AREA|BASE|BASEFONT|BR|COL|FRAME|HR|IMG|INPUT|ISINDEX|LINK|META|PARAM|EMBED)$/i,c=/^(COLGROUP|DD|DT|LI|OPTIONS|P|TD|TFOOT|TH|THEAD|TR)$/i,d=[];d.last=function(){return this[this.length-1]},d.lastTagNameEq=function(a){var b=this.last();return b&&b.tagName&&b.tagName.toUpperCase()===a.toUpperCase()},d.containsTagName=function(a){for(var b,c=0;b=this[c];c++)if(b.tagName===a)return!0;return!1};var e=function(a){return a&&"startTag"===a.type&&(a.unary=b.test(a.tagName)||a.unary),a},f=o,g=function(){var b=a,c=e(f());return a=b,c},i=function(){var a=d.pop();l(""+a.tagName+">")},j={startTag:function(a){var b=a.tagName;"TR"===b.toUpperCase()&&d.lastTagNameEq("TABLE")?(l("
"),m()):h.fix_selfClose&&c.test(b)&&d.containsTagName(b)?d.lastTagNameEq(b)?i():(l(""+a.tagName+">"),m()):a.unary||d.push(a)},endTag:function(a){var b=d.last();b?h.fix_tagSoup&&!d.lastTagNameEq(a.tagName)?i():d.pop():h.fix_tagSoup&&k()}},k=function(){f(),m()},m=function(){var a=g();a&&j[a.type]&&j[a.type](a)};o=function(){return m(),e(f())}}(),{append:k,readToken:o,readTokens:p,clear:q,rest:r,stack:j}}var b=function(){var a,b={},c=this.document.createElement("div");return a="",c.innerHTML=a,b.tagSoup=c.innerHTML!==a,c.innerHTML="
",b.selfClose=2===c.childNodes.length,b}(),c=/^<([\-A-Za-z0-9_]+)((?:\s+[\w\-]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)>/,d=/^<\/([\-A-Za-z0-9_]+)[^>]*>/,e=/([\-A-Za-z0-9_]+)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|([^>\s]+)))?/g,f=/^(checked|compact|declare|defer|disabled|ismap|multiple|nohref|noresize|noshade|nowrap|readonly|selected)$/i,g=!1;a.supports=b,a.tokenToString=function(a){var b={comment:function(a){return"<--"+a.content+"-->"},endTag:function(a){return""+a.tagName+">"},atomicTag:function(a){return console.log(a),b.startTag(a)+a.content+b.endTag(a)},startTag:function(a){var b="<"+a.tagName;for(var c in a.attrs){var d=a.attrs[c];b+=" "+c+'="'+(d?d.replace(/(^|[^\\])"/g,'$1\\"'):"")+'"'}return b+(a.unary?"/>":">")},chars:function(a){return a.text}};return b[a.type](a)},a.escapeAttributes=function(a){var b={};for(var c in a){var d=a[c];b[c]=d&&d.replace(/(^|[^\\])"/g,'$1\\"')}return b};for(var h in b)a.browserHasFlaw=a.browserHasFlaw||!b[h]&&h;this.htmlParser=a}(),function(){function a(){}function b(a){return"function"==typeof a}function c(a,b,c){var d,e=a&&a.length||0;for(d=0;e>d;d++)b.call(c,a[d],d)}function d(a,b,c){var d;for(d in a)a.hasOwnProperty(d)&&b.call(c,d,a[d])}function e(a,b){return d(b,function(b,c){a[b]=c}),a}function f(a,b){return a=a||{},d(b,function(b,c){null==a[b]&&(a[b]=c)}),a}function g(a){try{return k.call(a)}catch(b){var d=[];return c(a,function(a){d.push(a)}),d}}function h(a){return/^script$/i.test(a.tagName)}var i=this;if(!i.postscribe){var j=!1,k=Array.prototype.slice,l=function(){function a(a,b,c){var d=k+b;if(2===arguments.length){var e=a.getAttribute(d);return null==e?e:String(e)}null!=c&&""!==c?a.setAttribute(d,c):a.removeAttribute(d)}function f(b,c){var d=b.ownerDocument;e(this,{root:b,options:c,win:d.defaultView||d.parentWindow,doc:d,parser:i.htmlParser("",{autoFix:!0}),actuals:[b],proxyHistory:"",proxyRoot:d.createElement(b.nodeName),scriptStack:[],writeQueue:[]}),a(this.proxyRoot,"proxyof",0)}var k="data-ps-";return f.prototype.write=function(){[].push.apply(this.writeQueue,arguments);for(var a;!this.deferredRemote&&this.writeQueue.length;)a=this.writeQueue.shift(),b(a)?this.callFunction(a):this.writeImpl(a)},f.prototype.callFunction=function(a){var b={type:"function",value:a.name||a.toString()};this.onScriptStart(b),a.call(this.win,this.doc),this.onScriptDone(b)},f.prototype.writeImpl=function(a){this.parser.append(a);for(var b,c=[];(b=this.parser.readToken())&&!h(b);)c.push(b);this.writeStaticTokens(c),b&&this.handleScriptToken(b)},f.prototype.writeStaticTokens=function(a){var b=this.buildChunk(a);if(b.actual)return b.html=this.proxyHistory+b.actual,this.proxyHistory+=b.proxy,this.proxyRoot.innerHTML=b.html,j&&(b.proxyInnerHTML=this.proxyRoot.innerHTML),this.walkChunk(),j&&(b.actualInnerHTML=this.root.innerHTML),b},f.prototype.buildChunk=function(a){var b=this.actuals.length,d=[],e=[],f=[];return c(a,function(a){if(d.push(a.text),a.attrs){if(!/^noscript$/i.test(a.tagName)){var c=b++;e.push(a.text.replace(/(\/?>)/," "+k+"id="+c+" $1")),"ps-script"!==a.attrs.id&&f.push("atomicTag"===a.type?"":"<"+a.tagName+" "+k+"proxyof="+c+(a.unary?" />":">"))}}else e.push(a.text),f.push("endTag"===a.type?a.text:"")}),{tokens:a,raw:d.join(""),actual:e.join(""),proxy:f.join("")}},f.prototype.walkChunk=function(){for(var b,c=[this.proxyRoot];null!=(b=c.shift());){var d=1===b.nodeType,e=d&&a(b,"proxyof");if(!e){d&&(this.actuals[a(b,"id")]=b,a(b,"id",null));var f=b.parentNode&&a(b.parentNode,"proxyof");f&&this.actuals[f].appendChild(b)}c.unshift.apply(c,g(b.childNodes))}},f.prototype.handleScriptToken=function(a){var b=this.parser.clear();b&&this.writeQueue.unshift(b),a.src=a.attrs.src||a.attrs.SRC,a.src&&this.scriptStack.length?this.deferredRemote=a:this.onScriptStart(a);var c=this;this.writeScriptToken(a,function(){c.onScriptDone(a)})},f.prototype.onScriptStart=function(a){a.outerWrites=this.writeQueue,this.writeQueue=[],this.scriptStack.unshift(a)},f.prototype.onScriptDone=function(a){return a!==this.scriptStack[0]?void this.options.error({message:"Bad script nesting or script finished twice"}):(this.scriptStack.shift(),this.write.apply(this,a.outerWrites),void(!this.scriptStack.length&&this.deferredRemote&&(this.onScriptStart(this.deferredRemote),this.deferredRemote=null)))},f.prototype.writeScriptToken=function(a,b){var c=this.buildScript(a),d=this.shouldRelease(c),e=this.options.afterAsync;a.src&&(c.src=a.src,this.scriptLoadHandler(c,d?e:function(){b(),e()}));try{this.insertScript(c),(!a.src||d)&&b()}catch(f){this.options.error(f),b()}},f.prototype.buildScript=function(a){var b=this.doc.createElement(a.tagName);return d(a.attrs,function(a,c){b.setAttribute(a,c)}),a.content&&(b.text=a.content),b},f.prototype.insertScript=function(a){this.writeImpl('');var b=this.doc.getElementById("ps-script");b.parentNode.replaceChild(a,b)},f.prototype.scriptLoadHandler=function(a,b){function c(){a=a.onload=a.onreadystatechange=a.onerror=null,b()}var d=this.options.error;e(a,{onload:function(){c()},onreadystatechange:function(){/^(loaded|complete)$/.test(a.readyState)&&c()},onerror:function(){d({message:"remote script failed "+a.src}),c()}})},f.prototype.shouldRelease=function(a){var b=/^script$/i.test(a.nodeName);return!b||!!(this.options.releaseAsync&&a.src&&a.hasAttribute("async"))},f}(),m=function(){function c(){var a=k.shift();a&&(a.stream=d.apply(null,a))}function d(b,d,f){function i(a){a=f.beforeWrite(a),m.write(a),f.afterWrite(a)}m=new l(b,f),m.id=j++,m.name=f.name||m.id,h.streams[m.name]=m;var k=b.ownerDocument,n={write:k.write,writeln:k.writeln};e(k,{write:function(){return i(g(arguments).join(""))},writeln:function(){return i(g(arguments).join("")+"\n")}});var o=m.win.onerror||a;return m.win.onerror=function(a,b,c){f.error({msg:a+" - "+b+":"+c}),o.apply(m.win,arguments)},m.write(d,function(){e(k,n),m.win.onerror=o,f.done(),m=null,c()}),m}function h(d,e,g){b(g)&&(g={done:g}),g=f(g,{releaseAsync:!1,afterAsync:a,done:a,error:function(a){throw a},beforeWrite:function(a){return a},afterWrite:a}),d=/^#/.test(d)?i.document.getElementById(d.substr(1)):d.jquery?d[0]:d;var h=[d,e,g];return d.postscribe={cancel:function(){h.stream?h.stream.abort():h[1]=a}},k.push(h),m||c(),d.postscribe}var j=0,k=[],m=null;return e(h,{streams:{},queue:k,WriteStream:l})}();i.postscribe=m}}();