var XBBCODE=function(){"use strict"
function e(){s=[]
var e,t,n
for(e in i)if(i.hasOwnProperty(e)){for("*"===e?s.push("\\"+e):(s.push(e),i[e].noParse&&k.push(e)),i[e].validChildLookup={},i[e].validParentLookup={},i[e].restrictParentsTo=i[e].restrictParentsTo||[],i[e].restrictChildrenTo=i[e].restrictChildrenTo||[],n=i[e].restrictChildrenTo.length,t=0;n>t;t++)i[e].validChildLookup[i[e].restrictChildrenTo[t]]=!0
for(n=i[e].restrictParentsTo.length,t=0;n>t;t++)i[e].validParentLookup[i[e].restrictParentsTo[t]]=!0}c=RegExp("<bbcl=([0-9]+) ("+s.join("|")+")([ =][^>]*?)?>((?:.|[\\r\\n])*?)<bbcl=\\1 /\\2>","gi"),u=RegExp("\\[("+s.join("|")+")([ =][^\\]]*?)?\\]([^\\[]*?)\\[/\\1\\]","gi"),g=RegExp("\\[("+k.join("|")+")([ =][^\\]]*?)?\\]([\\s\\S]*?)\\[/\\1\\]","gi"),function(){for(var e=[],t=0;t<s.length;t++)"\\*"!==s[t]&&e.push("/"+s[t])
p=RegExp("(\\[)((?:"+s.join("|")+")(?:[ =][^\\]]*?)?)(\\])","gi"),d=RegExp("(\\[)("+e.join("|")+")(\\])","gi")}()}function t(e,n,r,o,a,l,u){u=u||[],r++
var g,p,d,f,b=RegExp("(<bbcl="+r+" )("+s.join("|")+")([ =>])","gi"),h=RegExp("(<bbcl="+r+" )("+s.join("|")+")([ =>])","i"),T=l.match(b)||[],x=i[e]||{}
for(b.lastIndex=0,T||(l=""),d=0;d<T.length;d++)h.lastIndex=0,f=T[d].match(h)[2].toLowerCase(),x&&x.restrictChildrenTo&&x.restrictChildrenTo.length>0&&(x.validChildLookup[f]||(p='The tag "'+f+'" is not allowed as a child of the tag "'+e+'".',u.push(p))),g=i[f]||{},g.restrictParentsTo.length>0&&(g.validParentLookup[e]||(p='The tag "'+e+'" is not allowed as a parent of the tag "'+f+'".',u.push(p)))
return l=l.replace(c,function(e,n,r,o,a){return u=t(r.toLowerCase(),e,n,r,o,a,u),e}),u}function n(e){return e=e.replace(/\<([^\>][^\>]*?)\>/gi,function(e,t){var n=t.match(/^bbcl=([0-9]+) /)
return null===n?"<bbcl=0 "+t+">":"<"+t.replace(/^(bbcl=)([0-9]+)/,function(e,t,n){return t+(parseInt(n,10)+1)})+">"})}function r(e){return e.replace(/<bbcl=[0-9]+ \/\*>/gi,"").replace(/<bbcl=[0-9]+ /gi,"[").replace(/>/gi,"]")}function o(e){var t=e.text
return t=t.replace(c,y)}function a(e){for(e=e.replace(/\[(?!\*[ =\]]|list([ =][^\]]*)?\]|\/list[\]])/gi,"<"),e=e.replace(/\[(?=list([ =][^\]]*)?\]|\/list[\]])/gi,">");e!==(e=e.replace(/>list([ =][^\]]*)?\]([^>]*?)(>\/list])/gi,function(e,t,n){for(var r=e;r!==(r=r.replace(/\[\*\]([^\[]*?)(\[\*\]|>\/list])/i,function(e,t,n){return n=">/list]"===n.toLowerCase()?"</*]</list]":"</*][*]","<*]"+t+n})););return r=r.replace(/>/g,"<")})););return e=e.replace(/</g,"[")}function l(e){for(;e!==(e=e.replace(u,function(e,t,r,o){return e=e.replace(/\[/g,"<"),e=e.replace(/\]/g,">"),n(e)})););return e}var i,s,c,u,g,p,d,f={},b=/^((?:https?:\/\/)(?:[^\s]+))$/,h=/^(?:aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen)$/,T=/^#?[a-fA-F0-9]{6}$/,x=/[^\s@]+@[^\s@]+\.[^\s@]+/,m=/^([a-z][a-z0-9_]+|"[a-z][a-z0-9_\s]+")$/i,k=[]
i={b:{openTag:function(e,t){return'<span class="xbbcode-b">'},closeTag:function(e,t){return"</span>"}},bbcode:{openTag:function(e,t){return""},closeTag:function(e,t){return""}},center:{openTag:function(e,t){return'<span class="xbbcode-center">'},closeTag:function(e,t){return"</span>"}},code:{openTag:function(e,t){return'<span class="xbbcode-code">'},closeTag:function(e,t){return"</span>"},noParse:!0},color:{openTag:function(e,t){e=e||""
var n=e.substr(1).toLowerCase()||"black"
return h.lastIndex=0,T.lastIndex=0,h.test(n)||(T.test(n)?"#"!==n.substr(0,1)&&(n="#"+n):n="black"),'<span style="color:'+n+'">'},closeTag:function(e,t){return"</span>"}},email:{openTag:function(e,t){var n
return n=e?e.substr(1):t.replace(/<.*?>/g,""),x.lastIndex=0,x.test(n)?'<a href="mailto:'+n+'">':"<a>"},closeTag:function(e,t){return"</a>"}},face:{openTag:function(e,t){e=e||""
var n=e.substr(1)||"inherit"
return m.lastIndex=0,m.test(n)||(n="inherit"),'<span style="font-family:'+n+'">'},closeTag:function(e,t){return"</span>"}},font:{openTag:function(e,t){e=e||""
var n=e.substr(1)||"inherit"
return m.lastIndex=0,m.test(n)||(n="inherit"),'<span style="font-family:'+n+'">'},closeTag:function(e,t){return"</span>"}},i:{openTag:function(e,t){return'<span class="xbbcode-i">'},closeTag:function(e,t){return"</span>"}},img:{openTag:function(e,t){var n=t
return b.lastIndex=0,b.test(n)||(n=""),'<img src="'+n+'" alt="">'},closeTag:function(e,t){return""},displayContent:!1},justify:{openTag:function(e,t){return'<span class="xbbcode-justify">'},closeTag:function(e,t){return"</span>"}},large:{openTag:function(e,t){e=e||""
var n=e.substr(1)||"inherit"
return h.lastIndex=0,T.lastIndex=0,h.test(n)||(T.test(n)?"#"!==n.substr(0,1)&&(n="#"+n):n="inherit"),'<span class="xbbcode-size-36" style="color:'+n+'">'},closeTag:function(e,t){return"</span>"}},left:{openTag:function(e,t){return'<span class="xbbcode-left">'},closeTag:function(e,t){return"</span>"}},li:{openTag:function(e,t){return"<li>"},closeTag:function(e,t){return"</li>"},restrictParentsTo:["list","ul","ol"]},list:{openTag:function(e,t){return"<ul>"},closeTag:function(e,t){return"</ul>"},restrictChildrenTo:["*","li"]},noparse:{openTag:function(e,t){return""},closeTag:function(e,t){return""},noParse:!0},ol:{openTag:function(e,t){return"<ol>"},closeTag:function(e,t){return"</ol>"},restrictChildrenTo:["*","li"]},php:{openTag:function(e,t){return'<span class="xbbcode-code">'},closeTag:function(e,t){return"</span>"},noParse:!0},quote:{openTag:function(e,t){return'<blockquote class="xbbcode-blockquote">'},closeTag:function(e,t){return"</blockquote>"}},right:{openTag:function(e,t){return'<span class="xbbcode-right">'},closeTag:function(e,t){return"</span>"}},s:{openTag:function(e,t){return'<span class="xbbcode-s">'},closeTag:function(e,t){return"</span>"}},size:{openTag:function(e,t){e=e||""
var n=parseInt(e.substr(1),10)||0
return(4>n||n>40)&&(n=14),'<span class="xbbcode-size-'+n+'">'},closeTag:function(e,t){return"</span>"}},small:{openTag:function(e,t){e=e||""
var n=e.substr(1)||"inherit"
return h.lastIndex=0,T.lastIndex=0,h.test(n)||(T.test(n)?"#"!==n.substr(0,1)&&(n="#"+n):n="inherit"),'<span class="xbbcode-size-10" style="color:'+n+'">'},closeTag:function(e,t){return"</span>"}},sub:{openTag:function(e,t){return"<sub>"},closeTag:function(e,t){return"</sub>"}},sup:{openTag:function(e,t){return"<sup>"},closeTag:function(e,t){return"</sup>"}},table:{openTag:function(e,t){return'<table class="xbbcode-table">'},closeTag:function(e,t){return"</table>"},restrictChildrenTo:["tbody","thead","tfoot","tr"]},tbody:{openTag:function(e,t){return"<tbody>"},closeTag:function(e,t){return"</tbody>"},restrictChildrenTo:["tr"],restrictParentsTo:["table"]},tfoot:{openTag:function(e,t){return"<tfoot>"},closeTag:function(e,t){return"</tfoot>"},restrictChildrenTo:["tr"],restrictParentsTo:["table"]},thead:{openTag:function(e,t){return'<thead class="xbbcode-thead">'},closeTag:function(e,t){return"</thead>"},restrictChildrenTo:["tr"],restrictParentsTo:["table"]},td:{openTag:function(e,t){return'<td class="xbbcode-td">'},closeTag:function(e,t){return"</td>"},restrictParentsTo:["tr"]},th:{openTag:function(e,t){return'<th class="xbbcode-th">'},closeTag:function(e,t){return"</th>"},restrictParentsTo:["tr"]},tr:{openTag:function(e,t){return'<tr class="xbbcode-tr">'},closeTag:function(e,t){return"</tr>"},restrictChildrenTo:["td","th"],restrictParentsTo:["table","tbody","tfoot","thead"]},u:{openTag:function(e,t){return'<span class="xbbcode-u">'},closeTag:function(e,t){return"</span>"}},ul:{openTag:function(e,t){return"<ul>"},closeTag:function(e,t){return"</ul>"},restrictChildrenTo:["*","li"]},url:{openTag:function(e,t){var n
return n=e?e.substr(1):t.replace(/<.*?>/g,""),b.lastIndex=0,b.test(n)||(n="#"),'<a target="_blank" href="'+n+'">'},closeTag:function(e,t){return"</a>"}},"*":{openTag:function(e,t){return"<li>"},closeTag:function(e,t){return"</li>"},restrictParentsTo:["list","ul","ol"]}},e()
var y=function(e,t,n,o,a){n=n.toLowerCase()
var l=i[n].noParse?r(a):a.replace(c,y),s=i[n].openTag(o,l),u=i[n].closeTag(o,l)
return i[n].displayContent===!1&&(l=""),s+l+u}
return f.tags=function(){return i},f.addTags=function(t){var n
for(n in t)i[n]=t[n]
e()},f.process=function(e){var n={html:"",error:!1},r=[]
for(e.text=e.text.replace(/</g,"<"),e.text=e.text.replace(/>/g,">"),e.text=e.text.replace(p,function(e,t,n,r){return"<"+n+">"}),e.text=e.text.replace(d,function(e,t,n,r){return"<"+n+">"}),e.text=e.text.replace(/\[/g,"["),e.text=e.text.replace(/\]/g,"]"),e.text=e.text.replace(/</g,"["),e.text=e.text.replace(/>/g,"]");e.text!==(e.text=e.text.replace(g,function(e,t,n,r){return r=r.replace(/\[/g,"["),r=r.replace(/\]/g,"]"),n=n||"",r=r||"","["+t+n+"]"+r+"[/"+t+"]"})););return e.text=a(e.text),e.text=l(e.text),r=t("bbcode",e.text,-1,"","",e.text),n.html=o(e),(-1!==n.html.indexOf("[")||-1!==n.html.indexOf("]"))&&r.push("Some tags appear to be misaligned."),e.removeMisalignedTags&&(n.html=n.html.replace(/\[.*?\]/g,"")),e.addInLineBreaks&&(n.html='<div style="white-space:pre-wrap;">'+n.html+"</div>"),e.escapeHtml||(n.html=n.html.replace("[","["),n.html=n.html.replace("]","]")),n.error=0!==r.length,n.errorQueue=r,n},f}()
function myParser(t) {
return t
//.replace(/[^="'\[\]]((?:https?:\/\/)(?:[^\s]+))/gim, '[url=$1]$1[/url]')
//.replace(/(?:(?=[="'\[\]])([="'\[\]]http)|(https?:\/\/[^\s]+))/gim, function($0,$1,$2){if($1){return $1};if($2){return '[url='+$2+']'+$2+'[/url]'}})
.replace(/(.?)((?:https?:\/\/)(?:[^\s]+))/gim,function(t,r,f){var c=!/["'=\[\]]/.test(r);return r+(c?"[url="+f+"]"+f+"[/url]":f)})
//.replace(/(https?:\/\/)(([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w\.-]*)*)/gi, '<a target="_blank" href="http://$2">http://$2</a>')
/*
.replace(/(\S*ху(й|ец)\S*)/gi,'[s]$1[/s]')
.replace(/(\S*хуя\S*)/gi,'[s]$1[/s]')
.replace(/(\S*ху(е|ё|йо|ио)\S*)/gi,'[s]$1[/s]')
.replace(/(\S*пизд\S*)/gi,'[s]$1[/s]')
.replace(/(\S*еб(а|о|л|у)\S*)/gi,'[s]$1[/s]')
.replace(/(\S*шлю\S*)/gi,'[s]$1[/s]')
.replace(/(\S*пид(а|о)?р\S*)/gi,'[s]$1[/s]')
.replace(/(\S*бля((д|т)ь?)?\S*)/gi,'[s]$1[/s]')
*/
}