(function(D){D.fn.htmlClean=function(X){return this.each(function(){var Y=D(this);if(this.value){this.value=D.htmlClean(this.value,X)}else{this.innerHTML=D.htmlClean(this.innerHTML,X)}})};D.htmlClean=function(b,m){m=D.extend({},D.htmlClean.defaults,m);var e=/<(\/)?(\w+:)?([\w]+)([^>]*)>/gi;var h=/(\w+)=(".*?"|'.*?'|[^\s>]*?)/gi;var d;var f=new R();var g=[f];var X=f;if(m.bodyOnly){if(d=/<body[^>]*>((\n|.)*)<\/body>/i.exec(b)){b=d[1]}}while(d=e.exec(b)){var l=new H(d[3],d[1],d[4]);var j=RegExp.leftContext.substring(c);if(j.length>0){var Z=X.children[X.children.length-1];if(X.children.length>0&&N(Z=X.children[X.children.length-1])){X.children[X.children.length-1]=Z.concat(j)}else{X.children.push(j)}}var c=e.lastIndex;if(l.isClosing){if(I(g,[l.name])){g.pop();X=g[g.length-1]}}else{var a=new R(l);if(!l.toIgnore){if(l.allowedAttributes!=null){var Y;while(Y=h.exec(l.rawAttributes)){if(l.allowedAttributes.length==0||D.inArray(Y[1],l.allowedAttributes)>-1){a.attributes.push(new A(Y[1],Y[2]))}}}var k=true;if(!X.isRoot){if(X.tag.isInline&&!l.isInline){k=false}else{if(X.tag.disallowNest&&l.disallowNest&&!l.requiredParent){k=false}else{if(l.requiredParent){if(k=I(g,l.requiredParent)){X=g[g.length-1]}}}}}if(k){X.children.push(a);if(!l.isSelfClosing&&!l.isNonClosing){g.push(a);X=a}}}}}return W(f,m).join("")};D.htmlClean.defaults={bodyOnly:true,removeAttrs:[],allowedClasses:[],format:false,formatIndent:0,replace:[[["b","big",/span.*?weight:\s*bold/i],"strong"],[["i",/span.*?style:\s*italic/i],"em"],[[/span.*?-align:\s*super/i],"sup"],[[/span.*?-align:\s*sub/i],"sub"]]};function G(a,Z,Y,X){if(!a.tag.isInline&&Y.length>0){Y.push("\n");for(i=0;i<X;i++){Y.push("\t")}}}function W(c,j){var Y=[],e=c.attributes.length==0,Z;var d=this.name.concat(c.tag.rawAttributes==undefined?"":c.tag.rawAttributes);for(var f=0;f<j.replace.length;f++){for(var k=0;k<j.replace[f][0].length;k++){var h=typeof (j.replace[f][0][k])=="string";if((h&&j.replace[f][0][k]==c.tag.name)||(!h&&j.replace[f][0][k].test(d))){c.tag.name=j.replace[f][1];f=j.replace.length;break}}}if(!c.isRoot){Y.push("<");Y.push(c.tag.name);D.each(c.attributes,function(){if(D.inArray(this.name,j.removeAttrs)==-1){var l=RegExp(/^(['"]?)(.*?)['"]?$/).exec(this.value);var n=l[2];var o=l[1];if(this.name=="class"){n=D.grep(n.split(" "),function(m){return D.inArray(m,j.allowedClasses)>-1}).join(" ");o='"'}if(n!=null&&n.length>0){Y.push(" ");Y.push(this.name);Y.push("=");Y.push(o);Y.push(n);Y.push(o)}}})}if(c.tag.isSelfClosing){Y.push(" />");e=false}else{if(c.tag.isNonClosing){e=false}else{if(!c.isRoot){Y.push(">")}var Z=j.formatIndent++;var b=[];for(var a=0;a<c.children.length;a++){var X=c.children[a];var g=D.htmlClean.trim(C(N(X)?X:X.childrenToString()));if(Q(X)){if(a>0&&g.length>0&&(V(X)||F(c.children[a-1]))){b.push(" ")}}if(N(X)){if(g.length>0){b.push(g)}}else{if(a!=c.children.length-1||X.tag.name!="br"){if(j.format){G(X,j,b,Z)}b=b.concat(W(X,j))}}}j.formatIndent--;if(b.length>0){if(j.format&&b[0]!="\n"){G(c,j,Y,Z)}Y=Y.concat(b);e=false}if(!c.isRoot){if(j.format){G(c,j,Y,Z-1)}Y.push("</");Y.push(c.tag.name);Y.push(">")}}}if(!c.tag.allowEmpty&&e){return[]}return Y}function I(X,Z,Y){Y=Y||1;if(D.inArray(X[X.length-Y].tag.name,Z)>-1){return true}else{if(X.length-(Y+1)>0&&I(X,Z,Y+1)){X.pop();return true}}return false}function R(X){if(X){this.tag=X;this.isRoot=false}else{this.tag=new H("root");this.isRoot=true}this.attributes=[];this.children=[];this.childrenToString=function(){return this.children.join("")};return this}function A(X,Y){this.name=X;this.value=Y;return this}function H(X,Z,Y){this.name=X.toLowerCase();this.isSelfClosing=D.inArray(this.name,K)>-1;this.isNonClosing=D.inArray(this.name,S)>-1;this.isClosing=(Z!=undefined&&Z.length>0);this.isInline=D.inArray(this.name,T)>-1;this.disallowNest=D.inArray(this.name,P)>-1;this.requiredParent=E[D.inArray(this.name,E)+1];this.allowEmpty=D.inArray(this.name,B)>-1;this.toIgnore=D.inArray(this.name,J)>-1;this.rawAttributes=Y;this.allowedAttributes=L[D.inArray(this.name,L)+1];return this}function V(X){while(O(X)&&X.children.length>0){X=X.children[0]}return N(X)&&X.length>0&&D.htmlClean.isWhitespace(X.charAt(0))}function F(X){while(O(X)&&X.children.length>0){X=X.children[X.children.length-1]}return N(X)&&X.length>0&&D.htmlClean.isWhitespace(X.charAt(X.length-1))}function N(X){return X.constructor==String}function Q(X){return N(X)||X.tag.isInline}function O(X){return X.constructor==R}function C(X){return X.replace(/&nbsp;|\n/g," ").replace(/\s\s+/g," ")}D.htmlClean.trim=function(X){return D.htmlClean.trimStart(D.htmlClean.trimEnd(X))};D.htmlClean.trimStart=function(X){return X.substring(D.htmlClean.trimStartIndex(X))};D.htmlClean.trimStartIndex=function(X){for(var Y=0;Y<X.length-1&&D.htmlClean.isWhitespace(X.charAt(Y));Y++){}return Y};D.htmlClean.trimEnd=function(X){return X.substring(0,D.htmlClean.trimEndIndex(X))};D.htmlClean.trimEndIndex=function(Y){for(var X=Y.length-1;X>=0&&D.htmlClean.isWhitespace(Y.charAt(X));X--){}return X+1};D.htmlClean.isWhitespace=function(X){return D.inArray(X,U)!=-1};var J=["basefont","center","dir","font","frame","frameset","iframe","isindex","menu","noframes","s","strike","u"];var T=["a","abbr","acronym","address","b","big","br","button","caption","cite","code","del","em","font","hr","i","input","img","ins","label","legend","map","q","samp","select","small","span","strong","sub","sup","tt","var"];var P=["h1","h2","h3","h4","h5","h6","p","th","td"];var B=["th","td"];var E=[null,"li",["ul","ol"],"dt",["dl"],"dd",["dl"],"td",["tr"],"th",["tr"],"tr",["table","thead","tbody","tfoot"],"thead",["table"],"tbody",["table"],"tfoot",["table"]];var M=["script","style","pre","code"];var K=["br","hr","img","link","meta"];var S=["!doctype","?xml"];var L=[["class"],"?xml",[],"!doctype",[],"a",["accesskey","class","href","target","name","title","rel","rev","type","tabindex"],"abbr",["class","title"],"acronym",["class","title"],"blockquote",["cite","class"],"button",["class","disabled","name","type","value"],"del",["cite","class","datetime"],"form",["accept","action","class","enctype","method","name"],"input",["accept","accesskey","alt","checked","class","disabled","ismap","maxlength","name","size","readonly","src","tabindex","type","usemap","value"],"img",["alt","class","src"],"ins",["cite","class","datetime"],"label",["accesskey","class","for"],"legend",["accesskey","class"],"link",["href","rel","type"],"meta",["content","http-equiv","name","scheme"],"map",["name"],"optgroup",["class","disabled","label"],"option",["class","disabled","label","selected","value"],"q",["class","cite"],"script",["src","type"],"select",["class","disabled","multiple","name","size","tabindex"],"style",["type"],"table",["class","summary"],"textarea",["accesskey","class","cols","disabled","name","readonly","rows","tabindex"]];var U=[" "," ","\t","\n","\r","\f"]})(jQuery);