(function(d){d.fn.htmlClean=function(y){return this.each(function(){var z=d(this);if(this.value){this.value=d.htmlClean(this.value,y)}else{this.innerHTML=d.htmlClean(this.innerHTML,y)}})};d.htmlClean=function(C,M){M=jQuery.extend(d.htmlClean.defaults,M);var F=/<(\/)?(\w+:)?([\w]+)([^>]*)>/gi;var I=/(\w+)=(".*?"|'.*?'|[^\s>]*?)/gi;var E;var G=new r();var H=[G];var y=G;if(M.bodyOnly){if(E=/<body[^>]*>((\n|.)*)<\/body>/i.exec(C)){C=E[1]}}while(E=F.exec(C)){var L=new g(E[3],E[1],E[4]);var J=RegExp.leftContext.substring(D);if(J.length>0){var A=y.children[y.children.length-1];if(y.children.length>0&&n(A=y.children[y.children.length-1])){y.children[y.children.length-1]=A.concat(J)}else{y.children.push(J)}}var D=F.lastIndex;if(L.isClosing){if(h(H,[L.name])){H.pop();y=H[H.length-1]}}else{var B=new r(L);if(!L.toIgnore){if(L.allowedAttributes!=null){var z;while(z=I.exec(L.rawAttributes)){if(L.allowedAttributes.length==0||d.inArray(z[1],L.allowedAttributes)>-1){B.attributes.push(new a(z[1],z[2]))}}}var K=true;if(!y.isRoot){if(y.tag.isInline&&!L.isInline){K=false}else{if(y.tag.disallowNest&&L.disallowNest&&!L.requiredParent){K=false}else{if(L.requiredParent){if(K=h(H,L.requiredParent)){y=H[H.length-1]}}}}}if(K){y.children.push(B);if(!L.isSelfClosing&&!L.isNonClosing){H.push(B);y=B}}}}}return x(G,M).join("")};d.htmlClean.defaults={bodyOnly:true,removeAttrs:["class"]};function x(C,A){var z=[];var D=C.attributes.length==0;for(var B=0;B<m.length;B++){if(m[B][0]==C.tag.name){if(m[B].length==1||m[B][1].test(C.tag.rawAttributes)){C.tag.name=u[B]}}}if(!C.isRoot){z.push("<");z.push(C.tag.name);d.each(C.attributes,function(){if(d.inArray(this.name,A.removeAttrs)==-1){z.push(" ");z.push(this.name);z.push("=");z.push(this.value)}})}if(C.tag.isSelfClosing){z.push(" />");D=false}else{if(C.tag.isNonClosing){D=false}else{if(!C.isRoot){z.push(">")}var y=[];for(var B=0;B<C.children.length;B++){var F=C.children[B];var E=d.htmlClean.trim(c(F.toString()));if(q(F)){if(B>0&&E.length>0&&(w(F)||f(C.children[B-1]))){y.push(" ")}}if(n(F)){if(E.length>0){y.push(E)}}else{if(B!=C.children.length-1||F.tag.name!="br"){y=y.concat(x(F,A))}}}if(y.length>0){z=z.concat(y);D=false}if(!C.isRoot){z.push("</");z.push(C.tag.name);z.push(">")}}}if(!C.tag.allowEmpty&&D){return[]}return z}function h(y,A,z){z=z||1;if(d.inArray(y[y.length-z].tag.name,A)>-1){return true}else{if(y.length-(z+1)>0&&h(y,A,z+1)){y.pop();return true}}return false}function r(y){if(y){this.tag=y;this.isRoot=false}else{this.tag=new g("root");this.isRoot=true}this.attributes=[];this.children=[];this.toString=function(){return this.children.join("")};return this}function a(y,z){this.name=y;this.value=z;return this}function g(y,A,z){this.name=y.toLowerCase();this.isSelfClosing=d.inArray(this.name,j)>-1;this.isNonClosing=d.inArray(this.name,s)>-1;this.isClosing=(A!=undefined&&A.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,i)>-1;this.rawAttributes=z;this.allowedAttributes=k[d.inArray(this.name,k)+1];return this}function w(y){while(o(y)&&y.children.length>0){y=y.children[0]}return n(y)&&y.length>0&&d.htmlClean.isWhitespace(y.charAt(0))}function f(y){while(o(y)&&y.children.length>0){y=y.children[y.children.length-1]}return n(y)&&y.length>0&&d.htmlClean.isWhitespace(y.charAt(y.length-1))}function n(y){return y.constructor==String}function q(y){return n(y)||y.tag.isInline}function o(y){return y.constructor==r}function c(y){return y.replace(/&nbsp;|\n/g," ").replace(/\s\s+/g," ")}d.htmlClean.trim=function(y){return d.htmlClean.trimStart(d.htmlClean.trimEnd(y))};d.htmlClean.trimStart=function(y){return y.substring(d.htmlClean.trimStartIndex(y))};d.htmlClean.trimStartIndex=function(y){for(var z=0;z<y.length-1&&d.htmlClean.isWhitespace(y.charAt(z));z++){}return z};d.htmlClean.trimEnd=function(y){return y.substring(0,d.htmlClean.trimEndIndex(y))};d.htmlClean.trimEndIndex=function(z){for(var y=z.length-1;y>=0&&d.htmlClean.isWhitespace(z.charAt(y));y--){}return y+1};d.htmlClean.isWhitespace=function(y){return d.inArray(y,v)!=-1};var i=["basefont","center","dir","font","frame","frameset","iframe","isindex","menu","noframes","s","strike","u"];var m=[["b"],["big"],["span",/weight:\s*bold/i],["i"],["span",/style:\s*italic/i],["span",/-align:\s*super/i],["span",/-align:\s*sub/i]];var u=["strong","strong","strong","em","em","sup","sub"];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 l=["script","style","pre","code"];var j=["br","hr","img","link","meta"];var s=["!doctype","?xml"];var k=[["align","class"],"?xml",[],"!doctype",[],"a",["accesskey","class","href","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","height","src","width"],"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 v=["�"," ","\t","\n","\r","\f"]})(jQuery);