var commentLivePreview={livePreviewClass:"livepreview",allowedTags:subtextAllowedHtmlTags,allowedTagsRegExp:null,previewElement:null,paraRegExp:new RegExp("(.*)\n\n([^#*\n\n].*)","g"),lineBreakRegExp:new RegExp("(.*)\n([^#*\n].*)","g"),updatingPreview:false,init:function(){if(!document.getElementsByTagName){return }var E=document.getElementsByTagName("div");commentLivePreview.previewElement=commentLivePreview.getPreviewDisplayElement(E);if(!commentLivePreview.previewElement){return }var A=document.getElementsByTagName("textarea");var C="";for(var D=0;D<commentLivePreview.allowedTags.length;D++){C+=commentLivePreview.allowedTags[D]+"|"}if(C.length>0){C=C.substring(0,C.length-1)}commentLivePreview.allowedTagsRegExp=new RegExp("&lt;(/?("+C+")(\\s+.*?)?)&gt;","g");var B;for(D=0;D<A.length;D++){B=A[D];if(commentLivePreview.getClassName(B).indexOf(commentLivePreview.livePreviewClass)>=0){B.onkeyup=function(){if(!commentLivePreview.updatingPreview){commentLivePreview.updatingPreview=true;window.setTimeout("commentLivePreview.reloadPreview('"+this.id+"')",20)}return false};commentLivePreview.reloadPreview(B.id)}}},getPreviewDisplayElement:function(C){var B;for(var A=0;A<C.length;A++){B=C[A];if(commentLivePreview.getClassName(B).indexOf(commentLivePreview.livePreviewClass)>=0){return B}}},getClassName:function(A){if(A.getAttribute&&A.getAttribute("class")){return A.getAttribute("class")}else{if(A.className){return A.className}}return""},reloadPreview:function(D){var A=document.getElementById(D);var B=A.value;if(B.length>0){B=commentLivePreview.htmlUnencode(B);B=B.replace(commentLivePreview.paraRegExp,"<p>$1</p><p>$2</p>");B=B.replace(commentLivePreview.lineBreakRegExp,"$1<br />$2");B=B.replace(commentLivePreview.allowedTagsRegExp,"<$1>")}try{commentLivePreview.previewElement.innerHTML=B}catch(C){alert("Sorry, but inserting a block element within is not allowed here.")}commentLivePreview.updatingPreview=false},htmlUnencode:function(A){return A.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")},addEvent:function(D,C,E){var B;for(var A=0;A<C.length;A++){B=C[A];if(D.attachEvent){D["e"+B+E]=E;D[B+E]=function(){D["e"+B+E](window.event)};D.attachEvent("on"+B,D[B+E])}else{D.addEventListener(B,E,false)}}}};commentLivePreview.addEvent(window,["load"],commentLivePreview.init)