if(typeof Prototype=="undefined"){throw ("Txt2img requires the Prototype JavaScript library")}var Txt2ImgConfig=Class.create({initialize:function(A,C,B){this.generatorUrl=A;this.pixelImage=new Image();this.pixelImage.src=C;this.selectors=B;this.createHoverRules();document.observe("dom:loaded",this.insertImages.bind(this));if(window.riotEditCallbacks){addRiotEditCallback(this.insertImages.bind(this))}},createHoverRules:function(){var A=function(D,E){if(E.selectorText){E.selectorText.split(",").each(function(H){if(H.include(":hover")){if(E.style.color){var F=H.replace(/:hover/," .txt2imgHover");var G="color: "+E.style.color;if(D.insertRule){D.insertRule(F+" {"+G+"}",D.cssRules.length)}else{if(D.addRule){D.addRule(F,G)}}}}})}else{if(E.cssRules){var B=$A(E.cssRules);for(var C=0;C<B.length;C++){A(D,B[C])}}}};$A(document.styleSheets).each(function(D){var B=$A(D.rules||D.cssRules);for(var C=0;C<B.length;C++){A(D,B[C])}})},insertImages:function(){new CssMatcher(this.selectors,this.processElement.bind(this)).match(document.body)},processElement:function(A,B){if(A.className=="print-text"){return }if(!A.txt2img){A.txt2img=new Txt2ImgReplacement(this,A,B)}A.txt2img.replace()}});var Txt2ImgReplacement=Class.create({initialize:function(A,B,C){this.config=A;this.el=$(B);this.sel=C;B.onedit=this.updateText.bind(this)},useFilter:document.all&&typeof document.addEventListener!="function",replace:function(){if(!this.el.down("img.replacement")){this.updateText()}},updateText:function(A){if(!A){A=this.el.innerHTML.strip().gsub(/<br\/?>/i,"\n").stripTags()}this.text=A;this.update()},updateSelector:function(){this.sel=this.config.selectors.find(this.el.match.bind(this.el));this.update()},update:function(){if(this.text.length>0){var C=this.el.getStyle("text-transform")||"";var F=0;var G=this.el.getStyle("display");if(G=="block"||G=="inline-block"){F=this.el.offsetWidth-parseInt(this.el.getStyle("padding-left"))-parseInt(this.el.getStyle("padding-right"))}var B=this.el.getStyle("color");var D=this.getHoverColor();var E=null;if(D!=B){E=new Image();E.src=this.getImageUrl(C,F,D,true)}var A=new Image();A.onload=this.insertImage.bind(this,A,E);A.src=this.getImageUrl(C,F,B)}},getHoverColor:function(){var B=document.createElement("span");B.className="txt2imgHover";this.el.appendChild(B);var A=Element.getStyle(B,"color");Element.remove(B);return A},getImageUrl:function(C,E,A,D){var B=this.config.generatorUrl;B+=B.include("?")?"&":"?";B+="text="+this.encode(this.text)+"&transform="+C+"&width="+E+"&selector="+this.encode(this.sel)+"&color="+this.encode(A);if(D){B+="&hover=true"}return B},encode:function(A){return escape(encodeURIComponent(A).replace(/%/g,"@")).replace(/%/g,"@")},setImageSrc:function(A,B){if(this.useFilter){A.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+B+"', sizingMethod='scale')"}else{A.src=B}},insertImage:function(E,D){var C;C=document.createElement("img");C.style.verticalAlign="top";C.style.border="none";if(this.useFilter){C.src=this.config.pixelImage.src;C.style.width=E.width+"px";C.style.height=E.height+"px"}this.setImageSrc(C,E.src);C.className="replacement";var A=this.el.up("a")||this.el;if(A._txt2ImgOver){A.stopObserving("mouseover",A._txt2ImgOver)}if(A._txt2ImgOut){A.stopObserving("mouseout",A._txt2ImgOut)}if(D){A._txt2ImgOver=this.setImageSrc.bind(this,C,D.src);A._txt2ImgOut=this.setImageSrc.bind(this,C,E.src);A.observe("mouseover",A._txt2ImgOver);A.observe("mouseout",A._txt2ImgOut);A.addClassName("txt2img")}var B=document.createElement("span");B.className="print-text";B.innerHTML=this.text;this.el.update();this.el.appendChild(C);this.el.appendChild(B);this.el.addClassName("txt2img");this.el.style.visibility="visible"}});var ElementMatcher=Class.create({initialize:function(B){var A=/([^.#]*)#?([^.]*)\.?(.*)/.exec(B);this.tagName=A[1]!=""?A[1].toUpperCase():null;this.id=A[2]!=""?A[2]:null;this.className=A[3]!=""?A[3]:null;this.classNameRegExp=new RegExp("(^|\\s)"+this.className+"(\\s|$)")},match:function(A){if(this.tagName&&this.tagName!=A.tagName){return false}if(this.id&&this.id!=A.id){return false}if(this.className&&!this.checkClassName(A)){return false}return true},checkClassName:function(A){var B=A.className;if(B.length==0){return false}return B==this.className||B.match(this.classNameRegExp)},inspect:function(){return this.tagName+"#"+this.id+"."+this.className}});var CssSelector=Class.create({initialize:function(C){this.text=C;this.matchers=[];var A=C.split(/\s+/);for(var B=0;B<A.length;B++){this.matchers.push(new ElementMatcher(A[B]))}this.level=0;this.matcher=this.matchers[0];this.prev=[]},match:function(A){if(this.matcher.match(A)){if(this.el){this.prev.push(this.el)}this.el=A;this.matcher=this.matchers[++this.level];return this.level==this.matchers.length}return false},leave:function(A){if(A==this.el){this.el=this.prev.pop();this.matcher=this.matchers[--this.level]}}});var CssMatcher=Class.create({initialize:function(A,B){this.sel=A.collect(function(C){return new CssSelector(C)});this.handler=B;this.callback=this.processElement.bind(this);this.counter=0},match:function(A){this.rootEl=A;this.el=A;this.stack=[];this.processElement()},nextElement:function(A){while(A&&(A.nodeType!=1||A.nodeName=="SCRIPT"||A.nodeName=="NOSCRIPT"||A.nodeName=="OBJECT"||A.nodeName=="TEXTAREA"||A.nodeName=="IFRAME")){A=A.nextSibling}return A},processElement:function(){this.counter++;var B=false;for(var C=0;C<this.sel.length;C++){if(this.sel[C].match(this.el)){this.handler(this.el,this.sel[C].text);B=true;break}}var A=this.nextElement(this.el.firstChild);if(!B&&A){this.el=A;this.stack.push(A)}else{this.stack.pop();for(var C=0;C<this.sel.length;C++){this.sel[C].leave(this.el)}A=this.nextElement(this.el.nextSibling);if(A){this.el=A;this.stack.push(A)}else{while(!A&&this.stack.length>0){var D=this.stack.pop();for(var C=0;C<this.sel.length;C++){this.sel[C].leave(D)}A=this.nextElement(D.nextSibling)}if(A){this.el=A;this.stack.push(A)}else{return }}}if(this.el){if(this.counter%50==0){setTimeout(this.callback,1)}else{this.processElement()}}}});var txt2img=new Txt2ImgConfig("/riot-utils/txt2img.png?locale=de","/riot-utils/txt2img.gif",["h1","h2","#extra h3","#navigation li a",".pager span"])