if(typeof WYMeditor==="undefined"){WYMeditor={}}!function(){if(typeof window.console==="undefined"&&typeof console==="undefined"){var names=["log","debug","info","warn","error","assert","dir","dirxml","group","groupEnd","time","timeEnd","count","trace","profile","profileEnd"],noOp=function(){},i;WYMeditor.console={};for(i=0;i"+"
"+WYMeditor.TOOLS+"
"+"
"+"
"+WYMeditor.CONTAINERS+WYMeditor.CLASSES+"
"+"
"+WYMeditor.HTML+WYMeditor.IFRAME+WYMeditor.STATUS+"
"+"
"+WYMeditor.LOGO+"
"+"",logoHtml:String()+'WYMeditor',iframeHtml:String()+'
'+'"+"
",editorStyles:[],toolsHtml:String()+'
'+"

{Tools}

"+""+"
",toolsItemHtml:String()+'
  • '+''+WYMeditor.TOOL_TITLE+""+"
  • ",toolsItems:[{name:"Bold",title:"Strong",css:"wym_tools_strong"},{name:"Italic",title:"Emphasis",css:"wym_tools_emphasis"},{name:"Superscript",title:"Superscript",css:"wym_tools_superscript"},{name:"Subscript",title:"Subscript",css:"wym_tools_subscript"},{name:"InsertOrderedList",title:"Ordered_List",css:"wym_tools_ordered_list"},{name:"InsertUnorderedList",title:"Unordered_List",css:"wym_tools_unordered_list"},{name:"Indent",title:"Indent",css:"wym_tools_indent"},{name:"Outdent",title:"Outdent",css:"wym_tools_outdent"},{name:"Undo",title:"Undo",css:"wym_tools_undo"},{name:"Redo",title:"Redo",css:"wym_tools_redo"},{name:"CreateLink",title:"Link",css:"wym_tools_link"},{name:"Unlink",title:"Unlink",css:"wym_tools_unlink"},{name:"InsertImage",title:"Image",css:"wym_tools_image"},{name:"InsertTable",title:"Table",css:"wym_tools_table"},{name:"Paste",title:"Paste_From_Word",css:"wym_tools_paste"},{name:"ToggleHtml",title:"HTML",css:"wym_tools_html"},{name:"Preview",title:"Preview",css:"wym_tools_preview"}],containersHtml:String()+'
    '+"

    {Containers}

    "+""+"
    ",containersItemHtml:String()+'
  • '+''+WYMeditor.CONTAINER_TITLE+""+"
  • ",containersItems:[{name:"P",title:"Paragraph",css:"wym_containers_p"},{name:"H1",title:"Heading_1",css:"wym_containers_h1"},{name:"H2",title:"Heading_2",css:"wym_containers_h2"},{name:"H3",title:"Heading_3",css:"wym_containers_h3"},{name:"H4",title:"Heading_4",css:"wym_containers_h4"},{name:"H5",title:"Heading_5",css:"wym_containers_h5"},{name:"H6",title:"Heading_6",css:"wym_containers_h6"},{name:"PRE",title:"Preformatted",css:"wym_containers_pre"},{name:"BLOCKQUOTE",title:"Blockquote",css:"wym_containers_blockquote"},{name:"TH",title:"Table_Header",css:"wym_containers_th"}],classesHtml:String()+'
    '+"

    {Classes}

    "+""+"
    ",classesItemHtml:String()+'
  • '+''+WYMeditor.CLASS_TITLE+""+"
  • ",classesItems:[],statusHtml:String()+'
    '+"

    {Status}

    "+"
    ",htmlHtml:String()+'
    '+"

    {Source_Code}

    "+''+"
    ",boxSelector:".wym_box",toolsSelector:".wym_tools",toolsListSelector:" ul",containersSelector:".wym_containers",classesSelector:".wym_classes",htmlSelector:".wym_html",iframeSelector:".wym_iframe iframe",iframeBodySelector:".wym_iframe",statusSelector:".wym_status",toolSelector:".wym_tools a",containerSelector:".wym_containers a",classSelector:".wym_classes a",htmlValSelector:".wym_html_val",hrefSelector:".wym_href",srcSelector:".wym_src",titleSelector:".wym_title",relSelector:".wym_rel",altSelector:".wym_alt",textSelector:".wym_text",rowsSelector:".wym_rows",colsSelector:".wym_cols",captionSelector:".wym_caption",summarySelector:".wym_summary",submitSelector:"form",cancelSelector:".wym_cancel",previewSelector:"",dialogTypeSelector:".wym_dialog_type",dialogLinkSelector:".wym_dialog_link",dialogImageSelector:".wym_dialog_image",dialogTableSelector:".wym_dialog_table",dialogPasteSelector:".wym_dialog_paste",dialogPreviewSelector:".wym_dialog_preview",updateSelector:".wymupdate",updateEvent:"click",dialogFeatures:"menubar=no,titlebar=no,toolbar=no,resizable=no"+",width=560,height=300,top=0,left=0",dialogFeaturesPreview:"menubar=no,titlebar=no,toolbar=no,resizable=no"+",scrollbars=yes,width=560,height=300,top=0,left=0",dialogHtml:String()+''+''+""+''+""+WYMeditor.DIALOG_TITLE+""+''+''+""+WYMeditor.DIALOG_BODY+"",dialogLinkHtml:String()+''+"
    "+"
    "+''+"{Link}"+'
    '+""+''+"
    "+'
    '+""+''+"
    "+'
    '+""+''+"
    "+'
    '+''+''+"
    "+"
    "+"
    "+"",dialogImageHtml:String()+''+"
    "+"
    "+''+"{Image}"+'
    '+""+''+"
    "+'
    '+""+''+"
    "+'
    '+""+''+"
    "+'
    '+''+''+"
    "+"
    "+"
    "+"",dialogTableHtml:String()+''+"
    "+"
    "+''+"{Table}"+'
    '+""+''+"
    "+'
    '+""+''+"
    "+'
    '+""+''+"
    "+'
    '+""+''+"
    "+'
    '+''+''+"
    "+"
    "+"
    "+"",dialogPasteHtml:String()+''+"
    "+''+"
    "+"{Paste_From_Word}"+'
    '+''+"
    "+'
    '+''+''+"
    "+"
    "+"
    "+"",dialogPreviewHtml:String()+'',dialogStyles:[],stringDelimiterLeft:"{",stringDelimiterRight:"}",preInit:null,preBind:null,postInit:null,preInitDialog:null,postInitDialog:null},options);return this.each(function(){var _editor=new WYMeditor.editor(jQuery(this),options)})};jQuery.extend({wymeditors:function(i){return WYMeditor.INSTANCES[i]}});WYMeditor.computeWymPath=function(){var script=jQuery(jQuery.grep(jQuery("script"),function(s){if(!s.src){return null}return s.src.match(/jquery\.wymeditor(\.pack|\.min|\.packed)?\.js(\?.*)?$/)||s.src.match(/\/core\.js(\?.*)?$/)}));if(script.length>0){return script.attr("src")}WYMeditor.console.warn("Error determining wymPath. No base WYMeditor file located.");WYMeditor.console.warn("Assuming wymPath to be the current URL");WYMeditor.console.warn("Please pass a correct wymPath option");return""};WYMeditor.computeBasePath=function(wymPath){var lastSlashIndex=wymPath.lastIndexOf("/");return wymPath.substr(0,lastSlashIndex+1)};WYMeditor.computeJqueryPath=function(){return jQuery(jQuery.grep(jQuery("script"),function(s){return s.src&&s.src.match(/jquery(-(.*)){0,1}(\.pack|\.min|\.packed)?\.js(\?.*)?$/)})).attr("src")};WYMeditor.INIT_DIALOG=function(index){var wym=window.opener.WYMeditor.INSTANCES[index],doc=window.document,selected=wym.selected(),dialogType=jQuery(wym._options.dialogTypeSelector).val(),sStamp=wym.uniqueStamp(),styles,aCss,tableOnClick;if(dialogType===WYMeditor.DIALOG_LINK){if(selected&&selected.tagName&&selected.tagName.toLowerCase!==WYMeditor.A){selected=jQuery(selected).parentsOrSelf(WYMeditor.A)}if(!selected&&wym._selected_image){selected=jQuery(wym._selected_image).parentsOrSelf(WYMeditor.A)}}if(jQuery.isFunction(wym._options.preInitDialog)){wym._options.preInitDialog(wym,window)}styles=doc.styleSheets[0];aCss=eval(wym._options.dialogStyles);wym.addCssRules(doc,aCss);if(selected){jQuery(wym._options.hrefSelector).val(jQuery(selected).attr(WYMeditor.HREF));jQuery(wym._options.srcSelector).val(jQuery(selected).attr(WYMeditor.SRC));jQuery(wym._options.titleSelector).val(jQuery(selected).attr(WYMeditor.TITLE));jQuery(wym._options.relSelector).val(jQuery(selected).attr(WYMeditor.REL));jQuery(wym._options.altSelector).val(jQuery(selected).attr(WYMeditor.ALT))}if(wym._selected_image){jQuery(wym._options.dialogImageSelector+" "+wym._options.srcSelector).val(jQuery(wym._selected_image).attr(WYMeditor.SRC));jQuery(wym._options.dialogImageSelector+" "+wym._options.titleSelector).val(jQuery(wym._selected_image).attr(WYMeditor.TITLE));jQuery(wym._options.dialogImageSelector+" "+wym._options.altSelector).val(jQuery(wym._selected_image).attr(WYMeditor.ALT))}jQuery(wym._options.dialogLinkSelector+" "+wym._options.submitSelector).submit(function(){var sUrl=jQuery(wym._options.hrefSelector).val(),link;if(sUrl.length>0){if(selected[0]&&selected[0].tagName.toLowerCase()===WYMeditor.A){link=selected}else{wym._exec(WYMeditor.CREATE_LINK,sStamp);link=jQuery("a[href="+sStamp+"]",wym._doc.body)}link.attr(WYMeditor.HREF,sUrl);link.attr(WYMeditor.TITLE,jQuery(wym._options.titleSelector).val());link.attr(WYMeditor.REL,jQuery(wym._options.relSelector).val())}window.close()});jQuery(wym._options.dialogImageSelector+" "+wym._options.submitSelector).submit(function(){var sUrl=jQuery(wym._options.srcSelector).val(),$img;if(sUrl.length>0){wym._exec(WYMeditor.INSERT_IMAGE,sStamp);$img=jQuery("img[src$="+sStamp+"]",wym._doc.body);$img.attr(WYMeditor.SRC,sUrl);$img.attr(WYMeditor.TITLE,jQuery(wym._options.titleSelector).val());$img.attr(WYMeditor.ALT,jQuery(wym._options.altSelector).val())}window.close()});tableOnClick=WYMeditor.MAKE_TABLE_ONCLICK(wym);jQuery(wym._options.dialogTableSelector+" "+wym._options.submitSelector).submit(tableOnClick);jQuery(wym._options.dialogPasteSelector+" "+wym._options.submitSelector).submit(function(){var sText=jQuery(wym._options.textSelector).val();wym.paste(sText);window.close()});jQuery(wym._options.dialogPreviewSelector+" "+wym._options.previewSelector).html(wym.xhtml());jQuery(wym._options.cancelSelector).mousedown(function(){window.close()});if(jQuery.isFunction(wym._options.postInitDialog)){wym._options.postInitDialog(wym,window)}};WYMeditor.MAKE_TABLE_ONCLICK=function(wym){var tableOnClick=function(){var numRows=jQuery(wym._options.rowsSelector).val(),numColumns=jQuery(wym._options.colsSelector).val(),caption=jQuery(wym._options.captionSelector).val(),summary=jQuery(wym._options.summarySelector).val(),table=wym.insertTable(numRows,numColumns,caption,summary);window.close()};return tableOnClick};jQuery.fn.isPhantomNode=function(){if(this[0].nodeType===3){return!/[^\t\n\r ]/.test(this[0].data)}return false};jQuery.fn.nextContentsUntil=function(selector,filter){var matched=[],$matched,cur=this.get(0);selector=selector?selector:"";filter=filter?filter:"";if(!cur){return jQuery()}cur=cur.nextSibling;while(cur){if(!jQuery(cur).is(selector)){matched.push(cur);cur=cur.nextSibling}else{break}}$matched=jQuery(matched);if(filter){return $matched.filter(filter)}return $matched};jQuery.fn.nextAllContents=function(){return jQuery(this).nextContentsUntil("","")};jQuery.fn.prevContentsUntil=function(selector,filter){var matched=[],$matched,cur=this.get(0);selector=selector?selector:"";filter=filter?filter:"";if(!cur){return jQuery()}cur=cur.previousSibling;while(cur){if(!jQuery(cur).is(selector)){matched.push(cur);cur=cur.previousSibling}else{break}}$matched=jQuery(matched);if(filter){return $matched.filter(filter)}return $matched};jQuery.fn.prevAllContents=function(){return jQuery(this).prevContentsUntil("","")};WYMeditor.isPhantomNode=function(n){if(n.nodeType===3){return!/[^\t\n\r ]/.test(n.data)}return false};WYMeditor.isPhantomString=function(str){return!/[^\t\n\r ]/.test(str)};jQuery.fn.parentsOrSelf=function(jqexpr){var n=this;if(n[0].nodeType===3){n=n.parents().slice(0,1)}if(n.filter(jqexpr).size()===1){return n}else{return n.parents(jqexpr).slice(0,1)}};WYMeditor.changeNodeType=function(node,newTag){var newNode,i,attributes=node.attributes;jQuery(node).wrapInner("<"+newTag+">");newNode=jQuery(node).children().get(0);for(i=0;i["+node.childNodes.length+"]"}else{return node.nodeName}}function NodeIterator(root){this.root=root;this._next=root}NodeIterator.prototype={_current:null,hasNext:function(){return!!this._next},next:function(){var n=this._current=this._next;var child,next;if(this._current){child=n.firstChild;if(child){this._next=child}else{next=null;while(n!==this.root&&!(next=n.nextSibling)){n=n.parentNode}this._next=next}}return this._current},detach:function(){this._current=this._next=this.root=null}};function createIterator(root){return new NodeIterator(root)}function DomPosition(node,offset){this.node=node;this.offset=offset}DomPosition.prototype={equals:function(pos){return this.node===pos.node&this.offset==pos.offset},inspect:function(){return"[DomPosition("+inspectNode(this.node)+":"+this.offset+")]"}};function DOMException(codeName){this.code=this[codeName];this.codeName=codeName;this.message="DOMException: "+this.codeName}DOMException.prototype={INDEX_SIZE_ERR:1,HIERARCHY_REQUEST_ERR:3,WRONG_DOCUMENT_ERR:4,NO_MODIFICATION_ALLOWED_ERR:7,NOT_FOUND_ERR:8,NOT_SUPPORTED_ERR:9,INVALID_STATE_ERR:11};DOMException.prototype.toString=function(){return this.message};api.dom={arrayContains:arrayContains,isHtmlNamespace:isHtmlNamespace,parentElement:parentElement,getNodeIndex:getNodeIndex,getNodeLength:getNodeLength,getCommonAncestor:getCommonAncestor,isAncestorOf:isAncestorOf,getClosestAncestorIn:getClosestAncestorIn,isCharacterDataNode:isCharacterDataNode,insertAfter:insertAfter,splitDataNode:splitDataNode,getDocument:getDocument,getWindow:getWindow,getIframeWindow:getIframeWindow,getIframeDocument:getIframeDocument,getBody:getBody,getRootContainer:getRootContainer,comparePoints:comparePoints,inspectNode:inspectNode,fragmentFromNodeChildren:fragmentFromNodeChildren,createIterator:createIterator,DomPosition:DomPosition}; api.DOMException=DOMException});rangy.createModule("DomRange",function(api,module){api.requireModules(["DomUtil"]);var dom=api.dom;var DomPosition=dom.DomPosition;var DOMException=api.DOMException;function isNonTextPartiallySelected(node,range){return node.nodeType!=3&&(dom.isAncestorOf(node,range.startContainer,true)||dom.isAncestorOf(node,range.endContainer,true))}function getRangeDocument(range){return dom.getDocument(range.startContainer)}function dispatchEvent(range,type,args){var listeners=range._listeners[type];if(listeners){for(var i=0,len=listeners.length;i=n.childNodes.length){n.appendChild(node)}else{n.insertBefore(node,n.childNodes[o])}return firstNodeInserted}function cloneSubtree(iterator){var partiallySelected;for(var node,frag=getRangeDocument(iterator.range).createDocumentFragment(),subIterator;node=iterator.next();){partiallySelected=iterator.isPartiallySelectedSubtree();node=node.cloneNode(!partiallySelected);if(partiallySelected){subIterator=iterator.getSubtreeIterator();node.appendChild(cloneSubtree(subIterator));subIterator.detach(true)}if(node.nodeType==10){throw new DOMException("HIERARCHY_REQUEST_ERR")}frag.appendChild(node)}return frag}function iterateSubtree(rangeIterator,func,iteratorState){var it,n;iteratorState=iteratorState||{stop:false};for(var node,subRangeIterator;node=rangeIterator.next();){if(rangeIterator.isPartiallySelectedSubtree()){if(func(node)===false){iteratorState.stop=true;return}else{subRangeIterator=rangeIterator.getSubtreeIterator();iterateSubtree(subRangeIterator,func,iteratorState);subRangeIterator.detach(true);if(iteratorState.stop){return}}}else{it=dom.createIterator(node);while(n=it.next()){if(func(n)===false){iteratorState.stop=true;return}}}}}function deleteSubtree(iterator){var subIterator;while(iterator.next()){if(iterator.isPartiallySelectedSubtree()){subIterator=iterator.getSubtreeIterator();deleteSubtree(subIterator);subIterator.detach(true)}else{iterator.remove()}}}function extractSubtree(iterator){for(var node,frag=getRangeDocument(iterator.range).createDocumentFragment(),subIterator;node=iterator.next();){if(iterator.isPartiallySelectedSubtree()){node=node.cloneNode(false);subIterator=iterator.getSubtreeIterator();node.appendChild(extractSubtree(subIterator));subIterator.detach(true)}else{iterator.remove()}if(node.nodeType==10){throw new DOMException("HIERARCHY_REQUEST_ERR")}frag.appendChild(node)}return frag}function getNodesInRange(range,nodeTypes,filter){var filterNodeTypes=!!(nodeTypes&&nodeTypes.length),regex;var filterExists=!!filter;if(filterNodeTypes){regex=new RegExp("^("+nodeTypes.join("|")+")$")}var nodes=[];iterateSubtree(new RangeIterator(range,false),function(node){if((!filterNodeTypes||regex.test(node.nodeType))&&(!filterExists||filter(node))){nodes.push(node)}});return nodes}function inspect(range){var name=typeof range.getName=="undefined"?"Range":range.getName();return"["+name+"("+dom.inspectNode(range.startContainer)+":"+range.startOffset+", "+dom.inspectNode(range.endContainer)+":"+range.endOffset+")]"}function RangeIterator(range,clonePartiallySelectedTextNodes){this.range=range;this.clonePartiallySelectedTextNodes=clonePartiallySelectedTextNodes;if(!range.collapsed){this.sc=range.startContainer;this.so=range.startOffset;this.ec=range.endContainer;this.eo=range.endOffset;var root=range.commonAncestorContainer;if(this.sc===this.ec&&dom.isCharacterDataNode(this.sc)){this.isSingleCharacterDataNode=true;this._first=this._last=this._next=this.sc}else{this._first=this._next=this.sc===root&&!dom.isCharacterDataNode(this.sc)?this.sc.childNodes[this.so]:dom.getClosestAncestorIn(this.sc,root,true);this._last=this.ec===root&&!dom.isCharacterDataNode(this.ec)?this.ec.childNodes[this.eo-1]:dom.getClosestAncestorIn(this.ec,root,true)}}}RangeIterator.prototype={_current:null,_next:null,_first:null,_last:null,isSingleCharacterDataNode:false,reset:function(){this._current=null;this._next=this._first},hasNext:function(){return!!this._next},next:function(){var current=this._current=this._next;if(current){this._next=current!==this._last?current.nextSibling:null;if(dom.isCharacterDataNode(current)&&this.clonePartiallySelectedTextNodes){if(current===this.ec){(current=current.cloneNode(true)).deleteData(this.eo,current.length-this.eo)}if(this._current===this.sc){(current=current.cloneNode(true)).deleteData(0,this.so)}}}return current},remove:function(){var current=this._current,start,end;if(dom.isCharacterDataNode(current)&&(current===this.sc||current===this.ec)){start=current===this.sc?this.so:0;end=current===this.ec?this.eo:current.length;if(start!=end){current.deleteData(start,end-start)}}else{if(current.parentNode){current.parentNode.removeChild(current)}else{}}},isPartiallySelectedSubtree:function(){var current=this._current;return isNonTextPartiallySelected(current,this.range)},getSubtreeIterator:function(){var subRange;if(this.isSingleCharacterDataNode){subRange=this.range.cloneRange();subRange.collapse()}else{subRange=new Range(getRangeDocument(this.range));var current=this._current;var startContainer=current,startOffset=0,endContainer=current,endOffset=dom.getNodeLength(current);if(dom.isAncestorOf(current,this.sc,true)){startContainer=this.sc;startOffset=this.so}if(dom.isAncestorOf(current,this.ec,true)){endContainer=this.ec;endOffset=this.eo}updateBoundaries(subRange,startContainer,startOffset,endContainer,endOffset)}return new RangeIterator(subRange,this.clonePartiallySelectedTextNodes)},detach:function(detachRange){if(detachRange){this.range.detach()}this.range=this._current=this._next=this._first=this._last=this.sc=this.so=this.ec=this.eo=null}};function RangeException(codeName){this.code=this[codeName];this.codeName=codeName;this.message="RangeException: "+this.codeName}RangeException.prototype={BAD_BOUNDARYPOINTS_ERR:1,INVALID_NODE_TYPE_ERR:2};RangeException.prototype.toString=function(){return this.message};function RangeNodeIterator(range,nodeTypes,filter){this.nodes=getNodesInRange(range,nodeTypes,filter);this._next=this.nodes[0];this._position=0}RangeNodeIterator.prototype={_current:null,hasNext:function(){return!!this._next},next:function(){this._current=this._next;this._next=this.nodes[++this._position];return this._current},detach:function(){this._current=this._next=this.nodes=null}};var beforeAfterNodeTypes=[1,3,4,5,7,8,10];var rootContainerNodeTypes=[2,9,11];var readonlyNodeTypes=[5,6,10,12];var insertableNodeTypes=[1,3,4,5,7,8,10,11];var surroundNodeTypes=[1,3,4,5,7,8];function createAncestorFinder(nodeTypes){return function(node,selfIsAncestor){var t,n=selfIsAncestor?node:node.parentNode;while(n){t=n.nodeType;if(dom.arrayContains(nodeTypes,t)){return n}n=n.parentNode}return null}}var getRootContainer=dom.getRootContainer;var getDocumentOrFragmentContainer=createAncestorFinder([9,11]);var getReadonlyAncestor=createAncestorFinder(readonlyNodeTypes);var getDocTypeNotationEntityAncestor=createAncestorFinder([6,10,12]);function assertNoDocTypeNotationEntityAncestor(node,allowSelf){if(getDocTypeNotationEntityAncestor(node,allowSelf)){throw new RangeException("INVALID_NODE_TYPE_ERR")}}function assertNotDetached(range){if(!range.startContainer){throw new DOMException("INVALID_STATE_ERR")}}function assertValidNodeType(node,invalidTypes){if(!dom.arrayContains(invalidTypes,node.nodeType)){throw new RangeException("INVALID_NODE_TYPE_ERR")}}function assertValidOffset(node,offset){if(offset<0||offset>(dom.isCharacterDataNode(node)?node.length:node.childNodes.length)){throw new DOMException("INDEX_SIZE_ERR")}}function assertSameDocumentOrFragment(node1,node2){if(getDocumentOrFragmentContainer(node1,true)!==getDocumentOrFragmentContainer(node2,true)){throw new DOMException("WRONG_DOCUMENT_ERR")}}function assertNodeNotReadOnly(node){if(getReadonlyAncestor(node,true)){throw new DOMException("NO_MODIFICATION_ALLOWED_ERR")}}function assertNode(node,codeName){if(!node){throw new DOMException(codeName)}}function isOrphan(node){return!dom.arrayContains(rootContainerNodeTypes,node.nodeType)&&!getDocumentOrFragmentContainer(node,true)}function isValidOffset(node,offset){return offset<=(dom.isCharacterDataNode(node)?node.length:node.childNodes.length)}function assertRangeValid(range){assertNotDetached(range);if(isOrphan(range.startContainer)||isOrphan(range.endContainer)||!isValidOffset(range.startContainer,range.startOffset)||!isValidOffset(range.endContainer,range.endOffset)){throw new Error("Range error: Range is no longer valid after DOM mutation ("+range.inspect()+")")}}var styleEl=document.createElement("style");var htmlParsingConforms=false;try{styleEl.innerHTML="x";htmlParsingConforms=styleEl.firstChild.nodeType==3}catch(e){}api.features.htmlParsingConforms=htmlParsingConforms;var createContextualFragment=htmlParsingConforms?function(fragmentStr){var node=this.startContainer;var doc=dom.getDocument(node);if(!node){throw new DOMException("INVALID_STATE_ERR")}var el=null;if(node.nodeType==1){el=node}else if(dom.isCharacterDataNode(node)){el=dom.parentElement(node)}if(el===null||el.nodeName=="HTML"&&dom.isHtmlNamespace(dom.getDocument(el).documentElement)&&dom.isHtmlNamespace(el)){el=doc.createElement("body")}else{el=el.cloneNode(false)}el.innerHTML=fragmentStr;return dom.fragmentFromNodeChildren(el)}:function(fragmentStr){assertNotDetached(this);var doc=getRangeDocument(this);var el=doc.createElement("body");el.innerHTML=fragmentStr;return dom.fragmentFromNodeChildren(el)};var rangeProperties=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"];var s2s=0,s2e=1,e2e=2,e2s=3;var n_b=0,n_a=1,n_b_a=2,n_i=3;function RangePrototype(){}RangePrototype.prototype={attachListener:function(type,listener){this._listeners[type].push(listener)},compareBoundaryPoints:function(how,range){assertRangeValid(this);assertSameDocumentOrFragment(this.startContainer,range.startContainer);var nodeA,offsetA,nodeB,offsetB;var prefixA=how==e2s||how==s2s?"start":"end";var prefixB=how==s2e||how==s2s?"start":"end";nodeA=this[prefixA+"Container"];offsetA=this[prefixA+"Offset"];nodeB=range[prefixB+"Container"];offsetB=range[prefixB+"Offset"];return dom.comparePoints(nodeA,offsetA,nodeB,offsetB)},insertNode:function(node){assertRangeValid(this);assertValidNodeType(node,insertableNodeTypes);assertNodeNotReadOnly(this.startContainer);if(dom.isAncestorOf(node,this.startContainer,true)){throw new DOMException("HIERARCHY_REQUEST_ERR")}var firstNodeInserted=insertNodeAtPosition(node,this.startContainer,this.startOffset);this.setStartBefore(firstNodeInserted)},cloneContents:function(){assertRangeValid(this);var clone,frag;if(this.collapsed){return getRangeDocument(this).createDocumentFragment()}else{if(this.startContainer===this.endContainer&&dom.isCharacterDataNode(this.startContainer)){clone=this.startContainer.cloneNode(true);clone.data=clone.data.slice(this.startOffset,this.endOffset);frag=getRangeDocument(this).createDocumentFragment();frag.appendChild(clone);return frag}else{var iterator=new RangeIterator(this,true);clone=cloneSubtree(iterator);iterator.detach()}return clone}},canSurroundContents:function(){assertRangeValid(this);assertNodeNotReadOnly(this.startContainer);assertNodeNotReadOnly(this.endContainer);var iterator=new RangeIterator(this,true);var boundariesInvalid=iterator._first&&isNonTextPartiallySelected(iterator._first,this)||iterator._last&&isNonTextPartiallySelected(iterator._last,this);iterator.detach();return!boundariesInvalid},surroundContents:function(node){assertValidNodeType(node,surroundNodeTypes);if(!this.canSurroundContents()){throw new RangeException("BAD_BOUNDARYPOINTS_ERR")}var content=this.extractContents();if(node.hasChildNodes()){while(node.lastChild){node.removeChild(node.lastChild)}}insertNodeAtPosition(node,this.startContainer,this.startOffset);node.appendChild(content);this.selectNode(node)},cloneRange:function(){assertRangeValid(this);var range=new Range(getRangeDocument(this));var i=rangeProperties.length,prop;while(i--){prop=rangeProperties[i];range[prop]=this[prop]}return range},toString:function(){assertRangeValid(this);var sc=this.startContainer;if(sc===this.endContainer&&dom.isCharacterDataNode(sc)){return sc.nodeType==3||sc.nodeType==4?sc.data.slice(this.startOffset,this.endOffset):""}else{var textBits=[],iterator=new RangeIterator(this,true);iterateSubtree(iterator,function(node){if(node.nodeType==3||node.nodeType==4){textBits.push(node.data)}});iterator.detach();return textBits.join("")}},compareNode:function(node){assertRangeValid(this);var parent=node.parentNode;var nodeIndex=dom.getNodeIndex(node);if(!parent){throw new DOMException("NOT_FOUND_ERR")}var startComparison=this.comparePoint(parent,nodeIndex),endComparison=this.comparePoint(parent,nodeIndex+1);if(startComparison<0){return endComparison>0?n_b_a:n_b}else{return endComparison>0?n_a:n_i}},comparePoint:function(node,offset){assertRangeValid(this);assertNode(node,"HIERARCHY_REQUEST_ERR");assertSameDocumentOrFragment(node,this.startContainer);if(dom.comparePoints(node,offset,this.startContainer,this.startOffset)<0){return-1}else if(dom.comparePoints(node,offset,this.endContainer,this.endOffset)>0){return 1}return 0},createContextualFragment:createContextualFragment,toHtml:function(){assertRangeValid(this);var container=getRangeDocument(this).createElement("div");container.appendChild(this.cloneContents());return container.innerHTML},intersectsNode:function(node,touchingIsIntersecting){assertRangeValid(this);assertNode(node,"NOT_FOUND_ERR");if(dom.getDocument(node)!==getRangeDocument(this)){return false}var parent=node.parentNode,offset=dom.getNodeIndex(node);assertNode(parent,"NOT_FOUND_ERR");var startComparison=dom.comparePoints(parent,offset,this.endContainer,this.endOffset),endComparison=dom.comparePoints(parent,offset+1,this.startContainer,this.startOffset);return touchingIsIntersecting?startComparison<=0&&endComparison>=0:startComparison<0&&endComparison>0},isPointInRange:function(node,offset){assertRangeValid(this);assertNode(node,"HIERARCHY_REQUEST_ERR");assertSameDocumentOrFragment(node,this.startContainer);return dom.comparePoints(node,offset,this.startContainer,this.startOffset)>=0&&dom.comparePoints(node,offset,this.endContainer,this.endOffset)<=0},intersectsRange:function(range,touchingIsIntersecting){assertRangeValid(this);if(getRangeDocument(range)!=getRangeDocument(this)){throw new DOMException("WRONG_DOCUMENT_ERR")}var startComparison=dom.comparePoints(this.startContainer,this.startOffset,range.endContainer,range.endOffset),endComparison=dom.comparePoints(this.endContainer,this.endOffset,range.startContainer,range.startOffset);return touchingIsIntersecting?startComparison<=0&&endComparison>=0:startComparison<0&&endComparison>0},intersection:function(range){if(this.intersectsRange(range)){var startComparison=dom.comparePoints(this.startContainer,this.startOffset,range.startContainer,range.startOffset),endComparison=dom.comparePoints(this.endContainer,this.endOffset,range.endContainer,range.endOffset);var intersectionRange=this.cloneRange();if(startComparison==-1){intersectionRange.setStart(range.startContainer,range.startOffset)}if(endComparison==1){intersectionRange.setEnd(range.endContainer,range.endOffset)}return intersectionRange}return null},union:function(range){if(this.intersectsRange(range,true)){var unionRange=this.cloneRange();if(dom.comparePoints(range.startContainer,range.startOffset,this.startContainer,this.startOffset)==-1){unionRange.setStart(range.startContainer,range.startOffset)}if(dom.comparePoints(range.endContainer,range.endOffset,this.endContainer,this.endOffset)==1){unionRange.setEnd(range.endContainer,range.endOffset)}return unionRange}else{throw new RangeException("Ranges do not intersect")}},containsNode:function(node,allowPartial){if(allowPartial){return this.intersectsNode(node,false)}else{return this.compareNode(node)==n_i}},containsNodeContents:function(node){return this.comparePoint(node,0)>=0&&this.comparePoint(node,dom.getNodeLength(node))<=0},containsRange:function(range){return this.intersection(range).equals(range)},containsNodeText:function(node){var nodeRange=this.cloneRange();nodeRange.selectNode(node);var textNodes=nodeRange.getNodes([3]);if(textNodes.length>0){nodeRange.setStart(textNodes[0],0);var lastTextNode=textNodes.pop();nodeRange.setEnd(lastTextNode,lastTextNode.length);var contains=this.containsRange(nodeRange);nodeRange.detach();return contains}else{return this.containsNodeContents(node)}},createNodeIterator:function(nodeTypes,filter){assertRangeValid(this);return new RangeNodeIterator(this,nodeTypes,filter)},getNodes:function(nodeTypes,filter){assertRangeValid(this);return getNodesInRange(this,nodeTypes,filter)},getDocument:function(){return getRangeDocument(this)},collapseBefore:function(node){assertNotDetached(this);this.setEndBefore(node);this.collapse(false)},collapseAfter:function(node){assertNotDetached(this);this.setStartAfter(node);this.collapse(true)},getName:function(){return"DomRange"},equals:function(range){return Range.rangesEqual(this,range)},inspect:function(){return inspect(this)}};function copyComparisonConstantsToObject(obj){obj.START_TO_START=s2s;obj.START_TO_END=s2e;obj.END_TO_END=e2e;obj.END_TO_START=e2s;obj.NODE_BEFORE=n_b;obj.NODE_AFTER=n_a;obj.NODE_BEFORE_AND_AFTER=n_b_a;obj.NODE_INSIDE=n_i}function copyComparisonConstants(constructor){copyComparisonConstantsToObject(constructor);copyComparisonConstantsToObject(constructor.prototype)}function createRangeContentRemover(remover,boundaryUpdater){return function(){assertRangeValid(this);var sc=this.startContainer,so=this.startOffset,root=this.commonAncestorContainer;var iterator=new RangeIterator(this,true);var node,boundary;if(sc!==root){node=dom.getClosestAncestorIn(sc,root,true);boundary=getBoundaryAfterNode(node);sc=boundary.node;so=boundary.offset}iterateSubtree(iterator,assertNodeNotReadOnly);iterator.reset();var returnValue=remover(iterator);iterator.detach();boundaryUpdater(this,sc,so,sc,so);return returnValue}}function createPrototypeRange(constructor,boundaryUpdater,detacher){function createBeforeAfterNodeSetter(isBefore,isStart){return function(node){assertNotDetached(this);assertValidNodeType(node,beforeAfterNodeTypes);assertValidNodeType(getRootContainer(node),rootContainerNodeTypes);var boundary=(isBefore?getBoundaryBeforeNode:getBoundaryAfterNode)(node);(isStart?setRangeStart:setRangeEnd)(this,boundary.node,boundary.offset)}}function setRangeStart(range,node,offset){var ec=range.endContainer,eo=range.endOffset;if(node!==range.startContainer||offset!==range.startOffset){if(getRootContainer(node)!=getRootContainer(ec)||dom.comparePoints(node,offset,ec,eo)==1){ec=node;eo=offset}boundaryUpdater(range,node,offset,ec,eo)}}function setRangeEnd(range,node,offset){var sc=range.startContainer,so=range.startOffset;if(node!==range.endContainer||offset!==range.endOffset){if(getRootContainer(node)!=getRootContainer(sc)||dom.comparePoints(node,offset,sc,so)==-1){sc=node;so=offset}boundaryUpdater(range,sc,so,node,offset)}}function setRangeStartAndEnd(range,node,offset){if(node!==range.startContainer||offset!==range.startOffset||node!==range.endContainer||offset!==range.endOffset){boundaryUpdater(range,node,offset,node,offset)}}constructor.prototype=new RangePrototype;api.util.extend(constructor.prototype,{setStart:function(node,offset){assertNotDetached(this);assertNoDocTypeNotationEntityAncestor(node,true);assertValidOffset(node,offset);setRangeStart(this,node,offset)},setEnd:function(node,offset){assertNotDetached(this);assertNoDocTypeNotationEntityAncestor(node,true);assertValidOffset(node,offset);setRangeEnd(this,node,offset)},setStartBefore:createBeforeAfterNodeSetter(true,true),setStartAfter:createBeforeAfterNodeSetter(false,true),setEndBefore:createBeforeAfterNodeSetter(true,false),setEndAfter:createBeforeAfterNodeSetter(false,false),collapse:function(isStart){assertRangeValid(this);if(isStart){boundaryUpdater(this,this.startContainer,this.startOffset,this.startContainer,this.startOffset)}else{boundaryUpdater(this,this.endContainer,this.endOffset,this.endContainer,this.endOffset)}},selectNodeContents:function(node){assertNotDetached(this);assertNoDocTypeNotationEntityAncestor(node,true);boundaryUpdater(this,node,0,node,dom.getNodeLength(node))},selectNode:function(node){assertNotDetached(this);assertNoDocTypeNotationEntityAncestor(node,false);assertValidNodeType(node,beforeAfterNodeTypes);var start=getBoundaryBeforeNode(node),end=getBoundaryAfterNode(node);boundaryUpdater(this,start.node,start.offset,end.node,end.offset)},extractContents:createRangeContentRemover(extractSubtree,boundaryUpdater),deleteContents:createRangeContentRemover(deleteSubtree,boundaryUpdater),canSurroundContents:function(){assertRangeValid(this);assertNodeNotReadOnly(this.startContainer);assertNodeNotReadOnly(this.endContainer);var iterator=new RangeIterator(this,true);var boundariesInvalid=iterator._first&&isNonTextPartiallySelected(iterator._first,this)||iterator._last&&isNonTextPartiallySelected(iterator._last,this);iterator.detach();return!boundariesInvalid},detach:function(){detacher(this)},splitBoundaries:function(){assertRangeValid(this);var sc=this.startContainer,so=this.startOffset,ec=this.endContainer,eo=this.endOffset;var startEndSame=sc===ec;if(dom.isCharacterDataNode(ec)&&eo>0&&eo0&&so=dom.getNodeIndex(sc)){eo++}so=0}boundaryUpdater(this,sc,so,ec,eo)},normalizeBoundaries:function(){assertRangeValid(this);var sc=this.startContainer,so=this.startOffset,ec=this.endContainer,eo=this.endOffset;var mergeForward=function(node){var sibling=node.nextSibling;if(sibling&&sibling.nodeType==node.nodeType){ec=node;eo=node.length;node.appendData(sibling.data);sibling.parentNode.removeChild(sibling)}};var mergeBackward=function(node){var sibling=node.previousSibling;if(sibling&&sibling.nodeType==node.nodeType){sc=node;var nodeLength=node.length;so=sibling.length;node.insertData(0,sibling.data);sibling.parentNode.removeChild(sibling);if(sc==ec){eo+=so;ec=sc}else if(ec==node.parentNode){var nodeIndex=dom.getNodeIndex(node);if(eo==nodeIndex){ec=node;eo=nodeLength}else if(eo>nodeIndex){eo--}}}};var normalizeStart=true;if(dom.isCharacterDataNode(ec)){if(ec.length==eo){mergeForward(ec)}}else{if(eo>0){var endNode=ec.childNodes[eo-1];if(endNode&&dom.isCharacterDataNode(endNode)){mergeForward(endNode)}}normalizeStart=!this.collapsed}if(normalizeStart){if(dom.isCharacterDataNode(sc)){if(so==0){mergeBackward(sc)}}else{if(so0&&workingNode.previousSibling);boundaryNode=workingNode.nextSibling;if(comparison==-1&&boundaryNode&&dom.isCharacterDataNode(boundaryNode)){workingRange.setEndPoint(isStart?"EndToStart":"EndToEnd",textRange);var offset;if(/[\r\n]/.test(boundaryNode.data)){var tempRange=workingRange.duplicate();var rangeLength=tempRange.text.replace(/\r\n/g,"\r").length;offset=tempRange.moveStart("character",rangeLength);while((comparison=tempRange.compareEndPoints("StartToEnd",tempRange))==-1){offset++;tempRange.moveStart("character",1)}}else{offset=workingRange.text.length}boundaryPosition=new DomPosition(boundaryNode,offset)}else{previousNode=(isCollapsed||!isStart)&&workingNode.previousSibling;nextNode=(isCollapsed||isStart)&&workingNode.nextSibling;if(nextNode&&dom.isCharacterDataNode(nextNode)){boundaryPosition=new DomPosition(nextNode,0)}else if(previousNode&&dom.isCharacterDataNode(previousNode)){boundaryPosition=new DomPosition(previousNode,previousNode.length)}else{boundaryPosition=new DomPosition(containerElement,dom.getNodeIndex(workingNode))}}workingNode.parentNode.removeChild(workingNode);return boundaryPosition}function createBoundaryTextRange(boundaryPosition,isStart){var boundaryNode,boundaryParent,boundaryOffset=boundaryPosition.offset;var doc=dom.getDocument(boundaryPosition.node);var workingNode,childNodes,workingRange=doc.body.createTextRange();var nodeIsDataNode=dom.isCharacterDataNode(boundaryPosition.node);if(nodeIsDataNode){boundaryNode=boundaryPosition.node;boundaryParent=boundaryNode.parentNode}else{childNodes=boundaryPosition.node.childNodes;boundaryNode=boundaryOffset12");iframeDoc.close();var sel=dom.getIframeWindow(iframe).getSelection();var docEl=iframeDoc.documentElement;var iframeBody=docEl.lastChild,textNode=iframeBody.firstChild;var r1=iframeDoc.createRange();r1.setStart(textNode,1);r1.collapse(true);sel.addRange(r1);collapsedNonEditableSelectionsSupported=sel.rangeCount==1;sel.removeAllRanges();var r2=r1.cloneRange();r1.setStart(textNode,0);r2.setEnd(textNode,2);sel.addRange(r1);sel.addRange(r2);selectionSupportsMultipleRanges=sel.rangeCount==2;r1.detach();r2.detach();body.removeChild(iframe)}()}api.features.selectionSupportsMultipleRanges=selectionSupportsMultipleRanges;api.features.collapsedNonEditableSelectionsSupported=collapsedNonEditableSelectionsSupported;var implementsControlRange=false,testControlRange;if(body&&util.isHostMethod(body,"createControlRange")){testControlRange=body.createControlRange();if(util.areHostProperties(testControlRange,["item","add"])){implementsControlRange=true}}api.features.implementsControlRange=implementsControlRange;if(selectionHasAnchorAndFocus){selectionIsCollapsed=function(sel){return sel.anchorNode===sel.focusNode&&sel.anchorOffset===sel.focusOffset}}else{selectionIsCollapsed=function(sel){return sel.rangeCount?sel.getRangeAt(sel.rangeCount-1).collapsed:false}}function updateAnchorAndFocusFromRange(sel,range,backwards){var anchorPrefix=backwards?"end":"start",focusPrefix=backwards?"start":"end";sel.anchorNode=range[anchorPrefix+"Container"];sel.anchorOffset=range[anchorPrefix+"Offset"];sel.focusNode=range[focusPrefix+"Container"];sel.focusOffset=range[focusPrefix+"Offset"]}function updateAnchorAndFocusFromNativeSelection(sel){var nativeSel=sel.nativeSelection;sel.anchorNode=nativeSel.anchorNode;sel.anchorOffset=nativeSel.anchorOffset;sel.focusNode=nativeSel.focusNode;sel.focusOffset=nativeSel.focusOffset}function updateEmptySelection(sel){sel.anchorNode=sel.focusNode=null;sel.anchorOffset=sel.focusOffset=0;sel.rangeCount=0;sel.isCollapsed=true;sel._ranges.length=0}function getNativeRange(range){var nativeRange;if(range instanceof DomRange){nativeRange=range._selectionNativeRange;if(!nativeRange){nativeRange=api.createNativeRange(dom.getDocument(range.startContainer));nativeRange.setEnd(range.endContainer,range.endOffset);nativeRange.setStart(range.startContainer,range.startOffset);range._selectionNativeRange=nativeRange;range.attachListener("detach",function(){this._selectionNativeRange=null})}}else if(range instanceof WrappedRange){nativeRange=range.nativeRange}else if(api.features.implementsDomRange&&range instanceof dom.getWindow(range.startContainer).Range){nativeRange=range}return nativeRange}function rangeContainsSingleElement(rangeNodes){if(!rangeNodes.length||rangeNodes[0].nodeType!=1){return false}for(var i=1,len=rangeNodes.length;i1){createControlSelection(this,ranges)}else{this.removeAllRanges();for(var i=0,len=ranges.length;i1){createControlSelection(this,ranges)}else if(rangeCount){this.addRange(ranges[0])}}}else{module.fail("No means of selecting a Range or TextRange was found");return false}selProto.getRangeAt=function(index){if(index<0||index>=this.rangeCount){throw new DOMException("INDEX_SIZE_ERR")}else{return this._ranges[index]}};var refreshSelection;if(useDocumentSelection){refreshSelection=function(sel){var range;if(api.isSelectionValid(sel.win)){range=sel.docSelection.createRange()}else{range=dom.getBody(sel.win.document).createTextRange();range.collapse(true)}if(sel.docSelection.type==CONTROL){updateControlSelection(sel)}else if(isTextRange(range)){updateFromTextRange(sel,range)}else{updateEmptySelection(sel)}}}else if(util.isHostMethod(testSelection,"getRangeAt")&&typeof testSelection.rangeCount=="number"){refreshSelection=function(sel){if(implementsControlRange&&implementsDocSelection&&sel.docSelection.type==CONTROL){updateControlSelection(sel)}else{sel._ranges.length=sel.rangeCount=sel.nativeSelection.rangeCount;if(sel.rangeCount){for(var i=0,len=sel.rangeCount;i=0;--i){range=ranges[i];if(range.collapsed){range.collapseBefore(gEBI(rangeInfos[i].markerId,doc))}else{range.setEndBefore(gEBI(rangeInfos[i].endMarkerId,doc));range.setStartAfter(gEBI(rangeInfos[i].startMarkerId,doc))}}sel.setRanges(ranges);return{win:win,doc:doc,rangeInfos:rangeInfos,restored:false}}function restoreSelection(savedSelection,preserveDirection){if(!savedSelection.restored){var rangeInfos=savedSelection.rangeInfos;var sel=api.getSelection(savedSelection.win);var ranges=[];for(var len=rangeInfos.length,i=len-1,rangeInfo,range;i>=0;--i){rangeInfo=rangeInfos[i];range=api.createRange(savedSelection.doc);if(rangeInfo.collapsed){var markerEl=gEBI(rangeInfo.markerId,savedSelection.doc);if(markerEl){markerEl.style.display="inline";var previousNode=markerEl.previousSibling;if(previousNode&&previousNode.nodeType==3){markerEl.parentNode.removeChild(markerEl);range.collapseToPoint(previousNode,previousNode.length)}else{range.collapseBefore(markerEl);markerEl.parentNode.removeChild(markerEl)}}else{module.warn("Marker element has been removed. Cannot restore selection.")}}else{setRangeBoundary(savedSelection.doc,range,rangeInfo.startMarkerId,true);setRangeBoundary(savedSelection.doc,range,rangeInfo.endMarkerId,false)}if(len==1){range.normalizeBoundaries()}ranges[i]=range}if(len==1&&preserveDirection&&api.features.selectionHasExtend&&rangeInfos[0].backwards){sel.removeAllRanges();sel.addRange(ranges[0],true)}else{sel.setRanges(ranges)}savedSelection.restored=true}}function removeMarkerElement(doc,markerId){var markerEl=gEBI(markerId,doc);if(markerEl){markerEl.parentNode.removeChild(markerEl)}}function removeMarkers(savedSelection){var rangeInfos=savedSelection.rangeInfos;for(var i=0,len=rangeInfos.length,rangeInfo;i0){firstNode=nodes.item(0)}for(x=0;x-1};WYMeditor.editor.prototype.keyCanCreateBlockElement=function(keyCode){return jQuery.inArray(keyCode,WYMeditor.POTENTIAL_BLOCK_ELEMENT_CREATION_KEYS)>-1};WYMeditor.editor.prototype.toggleClass=function(sClass,jqexpr){var container=null;if(this._selected_image){container=this._selected_image}else{container=jQuery(this.selected())}container=jQuery(container).parentsOrSelf(jqexpr);jQuery(container).toggleClass(sClass);if(!jQuery(container).attr(WYMeditor.CLASS)){jQuery(container).removeAttr(this._class)}};WYMeditor.editor.prototype.findUp=function(node,filter){if(typeof node==="undefined"||node===null){return null}if(node.nodeName==="#text"){node=node.parentNode}var tagname=node.tagName.toLowerCase(),bFound,i;if(typeof filter===WYMeditor.STRING){while(tagname!==filter&&tagname!==WYMeditor.BODY){node=node.parentNode;tagname=node.tagName.toLowerCase()}}else{bFound=false;while(!bFound&&tagname!==WYMeditor.BODY){for(i=0;i"}else{placeholderNode="
    "}if(children.length>0){$firstChild=jQuery(children[0]);$lastChild=jQuery(children[children.length-1]);if($firstChild.is(blockingSelector)){$firstChild.before(placeholderNode)}if($lastChild.is(blockingSelector)&&!(jQuery.browser.msie&&jQuery.browser.version<"7.0")){$lastChild.after(placeholderNode)}}blockSepSelector=this._getBlockSepSelector();$body.find(blockSepSelector).before(placeholderNode);blockInListSepSelector=this._getBlockInListSepSelector();$blockInList=$body.find(blockInListSepSelector);$blockInList.each(function(){var $block=jQuery(this);if(!$block.next(blockingSelector).length&&!$block.next(WYMeditor.BR).length){$block.after(placeholderNode)}})};WYMeditor.editor.prototype._getBlockSepSelector=function(){if(typeof this._blockSpacersSel!=="undefined"){return this._blockSpacersSel}var wym=this,blockCombo=[],containersBlockingNav=WYMeditor.DocumentStructureManager.CONTAINERS_BLOCKING_NAVIGATION,containersNotBlockingNav;containersNotBlockingNav=jQuery.grep(wym.documentStructureManager.structureRules.validRootContainers,function(item){return jQuery.inArray(item,containersBlockingNav)===-1});jQuery.each(containersBlockingNav,function(indexO,elementO){jQuery.each(containersBlockingNav,function(indexI,elementI){blockCombo.push(elementO+" + "+elementI)})});jQuery.each(containersBlockingNav,function(indexO,elementO){jQuery.each(containersNotBlockingNav,function(indexI,elementI){blockCombo.push(elementO+" + "+elementI);blockCombo.push(elementI+" + "+elementO)})});this._blockSpacersSel=blockCombo.join(", ");return this._blockSpacersSel};WYMeditor.editor.prototype._getBlockInListSepSelector=function(){if(typeof this._blockInListSpacersSel!=="undefined"){return this._blockInListSpacersSel}var blockCombo=[];jQuery.each(WYMeditor.LIST_TYPE_ELEMENTS,function(indexO,elementO){jQuery.each(WYMeditor.BLOCKING_ELEMENTS,function(indexI,elementI){blockCombo.push(elementO+" "+elementI)})});this._blockInListSpacersSel=blockCombo.join(", ");return this._blockInListSpacersSel};WYMeditor.editor.prototype.fixDoubleBr=function(){var $body=jQuery(this._doc).find("body.wym_iframe"),$last_br,blockingSelector=WYMeditor.BLOCKING_ELEMENTS.join(", ");$body.children("br + br").filter(":not(pre br)").remove();$body.find("p + br").next("p").prev("br").remove();$last_br=$body.find("p + br").slice(-1);if($last_br.length>0){if($last_br.next().length===0){$last_br.remove()}}};WYMeditor.editor.prototype.dialog=function(dialogType,dialogFeatures,bodyHtml){var features=dialogFeatures||this._wym._options.dialogFeatures,wDialog=window.open("","dialog",features),sBodyHtml,h=WYMeditor.Helper,dialogHtml,doc;if(wDialog){sBodyHtml="";switch(dialogType){case WYMeditor.DIALOG_LINK:sBodyHtml=this._options.dialogLinkHtml;break;case WYMeditor.DIALOG_IMAGE:sBodyHtml=this._options.dialogImageHtml;break;case WYMeditor.DIALOG_TABLE:sBodyHtml=this._options.dialogTableHtml;break;case WYMeditor.DIALOG_PASTE:sBodyHtml=this._options.dialogPasteHtml;break;case WYMeditor.PREVIEW:sBodyHtml=this._options.dialogPreviewHtml;break;default:sBodyHtml=bodyHtml;break}dialogHtml=this._options.dialogHtml;dialogHtml=h.replaceAll(dialogHtml,WYMeditor.BASE_PATH,this._options.basePath);dialogHtml=h.replaceAll(dialogHtml,WYMeditor.DIRECTION,this._options.direction);dialogHtml=h.replaceAll(dialogHtml,WYMeditor.CSS_PATH,this._options.skinPath+WYMeditor.SKINS_DEFAULT_CSS);dialogHtml=h.replaceAll(dialogHtml,WYMeditor.WYM_PATH,this._options.wymPath);dialogHtml=h.replaceAll(dialogHtml,WYMeditor.JQUERY_PATH,this._options.jQueryPath);dialogHtml=h.replaceAll(dialogHtml,WYMeditor.DIALOG_TITLE,this.encloseString(dialogType));dialogHtml=h.replaceAll(dialogHtml,WYMeditor.DIALOG_BODY,sBodyHtml);dialogHtml=h.replaceAll(dialogHtml,WYMeditor.INDEX,this._index);dialogHtml=this.replaceStrings(dialogHtml);doc=wDialog.document;doc.write(dialogHtml);doc.close()}};WYMeditor.editor.prototype.toggleHtml=function(){jQuery(this._box).find(this._options.htmlSelector).toggle()};WYMeditor.editor.prototype.uniqueStamp=function(){var now=new Date;return"wym-"+now.getTime()};WYMeditor.editor.prototype._handleMultilineBlockContainerPaste=function(wym,$container,range,paragraphStrings){var i,blockSplitter,leftSide,rightSide,rangeNodeComparison,$splitRightParagraph,firstParagraphString,firstParagraphHtml,blockParent,blockParentType;$insertAfter=jQuery(blockParent);blockSplitter="p";if($container.is("li")){blockSplitter="li"}range.splitBoundaries();blockParent=wym.findUp(range.startContainer,["p","h1","h2","h3","h4","h5","h6","li"]);blockParentType=blockParent.tagName;leftSide=[];rightSide=[];jQuery(blockParent).contents().each(function(index,element){rangeNodeComparison=range.compareNode(element);if(rangeNodeComparison===range.NODE_BEFORE||rangeNodeComparison===range.NODE_BEFORE_AND_AFTER&&range.startOffset===range.startContainer.length){leftSide.push(element)}else{rightSide.push(element)}});for(i=0;i0){jQuery(blockParent).prepend(leftSide)}if(rightSide.length>0){$splitRightParagraph=jQuery("<"+blockParentType+">"+"",wym._doc);$splitRightParagraph.insertAfter(jQuery(blockParent));$splitRightParagraph.append(rightSide)}firstParagraphString=paragraphStrings.splice(0,1)[0];firstParagraphHtml=firstParagraphString.split(WYMeditor.NEWLINE).join("
    ");jQuery(blockParent).html(jQuery(blockParent).html()+firstParagraphHtml);$insertAfter=jQuery(blockParent);for(i=0;i"+paragraphStrings[i].split(WYMeditor.NEWLINE).join("
    ")+"";$insertAfter=jQuery(html,wym._doc).insertAfter($insertAfter)}};WYMeditor.editor.prototype.paste=function(str){var container=this.selected(),$container,html="",paragraphs,focusNode,i,l,isSingleLine=false,sel,textNode,wym,range,insertionNodes;wym=this;sel=rangy.getIframeSelection(wym._iframe);range=sel.getRangeAt(0);$container=jQuery(container);range.collapse(true);paragraphStrings=str.split(new RegExp(WYMeditor.NEWLINE+"{2,}","g"));if(paragraphStrings.length===1){isSingleLine=true}if(typeof container==="undefined"||container&&container.tagName.toLowerCase()===WYMeditor.BODY){if(isSingleLine){paragraphs=jQuery("

    "+paragraphStrings[0]+"

    ",this._doc).appendTo(this._doc.body)}else{blockSplitter="p";for(i=paragraphStrings.length-1;i>=0;i-=1){html="<"+blockSplitter+">"+paragraphStrings[i].split(WYMeditor.NEWLINE).join("
    ")+"";insertionNodes=jQuery(html,wym._doc);for(j=insertionNodes.length-1;j>=0;j--){range.insertNode(insertionNodes[j])}}}}else{if(isSingleLine||$container.is("pre")){textNode=this._doc.createTextNode(str);range.insertNode(textNode)}else if($container.is("p,h1,h2,h3,h4,h5,h6,li")){wym._handleMultilineBlockContainerPaste(wym,$container,range,paragraphStrings)}else{textNodesToInsert=str.split(WYMeditor.NEWLINE);for(i=textNodesToInsert.length-1;i>=0;i-=1){textNode=this._doc.createTextNode(textNodesToInsert[i]);range.insertNode(textNode);if(i>0){range.insertNode(jQuery("
    ",wym._doc).get(0))}}}}};WYMeditor.editor.prototype.insert=function(html){var selection=this._iframe.contentWindow.getSelection(),range,node;if(selection.focusNode!==null){range=selection.getRangeAt(0);node=range.createContextualFragment(html);range.deleteContents();range.insertNode(node)}else{this.paste(html)}};WYMeditor.editor.prototype.wrap=function(left,right){this.insert(left+this._iframe.contentWindow.getSelection().toString()+right)};WYMeditor.editor.prototype.unwrap=function(){this.insert(this._iframe.contentWindow.getSelection().toString())};WYMeditor.editor.prototype.setFocusToNode=function(node,toStart){var range=rangy.createRange(this._doc),selection=rangy.getIframeSelection(this._iframe);toStart=toStart||false;range.selectNodeContents(node);range.collapse(toStart);selection.setSingleRange(range)};WYMeditor.editor.prototype.addCssRules=function(doc,aCss){var styles=doc.styleSheets[0],i,oCss;if(styles){for(i=0;i';$liToIndent.before(spacerHtml);$prevLi=$liToIndent.prev()}$prevSublist=$prevLi.contents().last().filter("ol,ul");if($prevSublist.length>0){$prevSublist.append($liToIndent);$sublistContents.detach();$prevLi.append($sublistContents);$firstSublist=$sublistContents.first();wym.joinAdjacentLists($prevSublist.get(0),$firstSublist.get(0))}else{if($sublistContents.length>0){$sublistContents.detach();$prevLi.append($sublistContents);$prevSublist=$sublistContents.first()}else{containerHtml="<"+listType+">";$prevLi.append(containerHtml);$prevSublist=$prevLi.contents().last()}$prevSublist.prepend($liToIndent)}if($liToIndent.next().is(".spacer_li")){$spacer=$liToIndent.next(".spacer_li");$spacerContents=$spacer.contents();$spacerContents.detach();$liToIndent.append($spacerContents);$spacer.remove()}};WYMeditor.editor.prototype._outdentSingleItem=function(listItem){var wym=this,$liToOutdent,listType,spacerListHtml,splitContent,$itemContents,$sublistContents,$parentLi,$parentList,$subsequentSiblingContent,$subsequentParentListSiblingContent,$sublist;$liToOutdent=jQuery(listItem);listType=$liToOutdent.parent()[0].tagName.toLowerCase();if(!$liToOutdent.parent().parent().is("ol,ul,li")){return}if(!$liToOutdent.parent().parent().is("li")){WYMeditor.console.log("Attempting to fix invalid list nesting before outdenting.");wym.correctInvalidListNesting(listItem)}splitContent=wym.splitListItemContents($liToOutdent);$sublistContents=jQuery(splitContent.sublistContents);$itemContents=jQuery(splitContent.itemContents);$parentLi=$liToOutdent.parent().parent("li");if($parentLi.length===0){WYMeditor.console.error("Invalid list. No parentLi found, so aborting outdent");return}$parentList=$liToOutdent.parent();$subsequentSiblingContent=$liToOutdent.nextAllContents();$subsequentParentListSiblingContent=$parentList.nextAllContents();$liToOutdent.detach();$parentLi.after($liToOutdent);if($sublistContents.length>0){spacerListHtml="<"+listType+">"+'
  • '+"";$liToOutdent.append(spacerListHtml);$sublist=$liToOutdent.children().last();$sublistContents.detach();$sublist.children("li").append($sublistContents)}if($subsequentSiblingContent.length>0){if(typeof $sublist==="undefined"){spacerListHtml="<"+listType+">";$liToOutdent.append(spacerListHtml);$sublist=$liToOutdent.children().last()}$subsequentSiblingContent.detach();$sublist.append($subsequentSiblingContent)}if($subsequentParentListSiblingContent.length>0){$subsequentParentListSiblingContent.detach();if($liToOutdent.contents().length>0&&$liToOutdent.contents().last()[0].nodeType===WYMeditor.NODE.TEXT&&$subsequentParentListSiblingContent[0].nodeType===WYMeditor.NODE.TEXT){$liToOutdent.append("
    ")}$liToOutdent.append($subsequentParentListSiblingContent)}if($parentList.contents().length===0){$parentList.remove()}if($parentLi.contents().length===0){$parentLi.remove()}};WYMeditor.editor.prototype.correctInvalidListNesting=function(listItem,alreadyCorrected){var currentNode=listItem,parentNode,tagName;if(typeof alreadyCorrected==="undefined"){alreadyCorrected=false}if(!currentNode){return alreadyCorrected}while(currentNode.parentNode){parentNode=currentNode.parentNode;if(parentNode.nodeType!==WYMeditor.NODE.ELEMENT){break}tagName=parentNode.tagName.toLowerCase();if(tagName!=="ol"&&tagName!=="ul"&&tagName!=="li"){break}currentNode=parentNode}if(jQuery(currentNode).is("li")){WYMeditor.console.log("Correcting orphaned root li before correcting invalid list nesting.");this._correctOrphanedListItem(currentNode);return this.correctInvalidListNesting(currentNode,true)}if(!jQuery(currentNode).is("ol,ul")){WYMeditor.console.error("Can't correct invalid list nesting. No root list found");return alreadyCorrected}return this._correctInvalidListNesting(currentNode,alreadyCorrected)};WYMeditor.editor.prototype._correctOrphanedListItem=function(listNode){var prevAdjacentLis,nextAdjacentLis,$adjacentLis=jQuery(),prevList,prevNode;prevAdjacentLis=jQuery(listNode).prevContentsUntil(":not(li)");nextAdjacentLis=jQuery(listNode).nextContentsUntil(":not(li)");$adjacentLis=$adjacentLis.add(prevAdjacentLis);$adjacentLis=$adjacentLis.add(listNode);$adjacentLis=$adjacentLis.add(nextAdjacentLis);prevNode=$adjacentLis[0].previousSibling;if(prevNode&&jQuery(prevNode).is("ol,ul")){prevList=prevNode}else{$adjacentLis.before("
      ");prevList=$adjacentLis.prev()[0]}jQuery(prevList).append($adjacentLis)};WYMeditor.editor.prototype._correctInvalidListNesting=function(listNode,alreadyCorrected){var rootNode=listNode,currentNode=listNode,wasCorrected=false,previousSibling,previousLi,$currentNode,tagName,ancestorNode,nodesToMove,targetLi,lastContentNode,spacerHtml='
    1. ';if(typeof alreadyCorrected!=="undefined"){wasCorrected=alreadyCorrected}while(currentNode){if(currentNode._wym_visited){currentNode._wym_visited=false;if(currentNode===rootNode){break}if(currentNode.previousSibling){currentNode=currentNode.previousSibling}else{currentNode=currentNode.parentNode}}else{if(currentNode!==rootNode&&!jQuery(currentNode).is("li")){ancestorNode=currentNode;while(ancestorNode.parentNode){ancestorNode=ancestorNode.parentNode;if(jQuery(ancestorNode).is("li")){break}if(ancestorNode.nodeType!==WYMeditor.NODE.ELEMENT){break}tagName=ancestorNode.tagName.toLowerCase();if(tagName==="ol"||tagName==="ul"){WYMeditor.console.log("Fixing orphaned list content");wasCorrected=true;nodesToMove=[currentNode];previousSibling=currentNode;targetLi=null;while(previousSibling.previousSibling){previousSibling=previousSibling.previousSibling;if(jQuery(previousSibling).is("li")){targetLi=previousSibling;break}nodesToMove.push(previousSibling)}nodesToMove.reverse();if(!targetLi&&nodesToMove.length===1){if(jQuery(currentNode.nextSibling).is("li")){targetLi=currentNode.nextSibling}}if(!targetLi){jQuery(nodesToMove[0]).before(spacerHtml);targetLi=jQuery(nodesToMove[0]).prev()[0]}lastContentNode=jQuery(targetLi).contents().last();if(lastContentNode.length===1&&lastContentNode[0].nodeType===WYMeditor.NODE.TEXT){if(nodesToMove[0].nodeType===WYMeditor.NODE.TEXT){jQuery(targetLi).append("
      ")}}jQuery(targetLi).append(jQuery(nodesToMove));break}}}if(currentNode.lastChild){currentNode._wym_visited=true;currentNode=currentNode.lastChild}else if(currentNode.previousSibling){currentNode=currentNode.previousSibling}else{currentNode=currentNode.parentNode}}}return wasCorrected};WYMeditor.editor.prototype.getCommonParentList=function(listItems){var firstLi,parentList,rootList;listItems=jQuery(listItems).filter("li");if(listItems.length===0){return null}firstLi=listItems[0];parentList=jQuery(firstLi).parent("ol,ul");if(parentList.length===0){return null}rootList=parentList[0];jQuery(listItems).each(function(index,elmnt){parentList=jQuery(elmnt).parent("ol,ul");if(parentList.length===0||parentList[0]!==rootList){return null}});return rootList};WYMeditor.editor.prototype._getSelectedListItems=function(sel){var wym=this,i,range,selectedLi,nodes=[],liNodes=[],containsNodeTextFilter,parentsToAdd,node,$node,$maybeParentLi;containsNodeTextFilter=function(testNode){var fullyContainsNodeText;if(rangy.dom.isCharacterDataNode(testNode)){return testNode}try{fullyContainsNodeText=range.containsNodeText(testNode)}catch(e){return true}if(fullyContainsNodeText===true){return true}};for(i=0;i
    2. ";if(this.findUp(blockElement,WYMeditor.MAIN_CONTAINERS)===blockElement){$blockElement.wrapInner(newListHtml);$newList=$blockElement.children();$newList.unwrap();return $newList.get(0)}$blockElement.wrapInner(newListHtml);$newList=$blockElement.children();return $newList.get(0)};WYMeditor.editor.prototype.insertTable=function(rows,columns,caption,summary){if(rows<=0||columns<=0){return}var table=this._doc.createElement(WYMeditor.TABLE),newRow=null,newCol=null,newCaption,x,y,container,selectedNode;newCaption=table.createCaption();newCaption.innerHTML=caption;for(x=0;x-1){selectedNode=this.selection().focusNode;if(jQuery.inArray(selectedNode.nodeName.toLowerCase(),WYMeditor.SELECTABLE_TABLE_ELEMENTS)>-1||jQuery.inArray(selectedNode.parentNode.nodeName.toLowerCase(),WYMeditor.SELECTABLE_TABLE_ELEMENTS)>-1){while(selectedNode.nodeName.toLowerCase()!==WYMeditor.TABLE){selectedNode=selectedNode.parentNode}}if(selectedNode.nodeName.toLowerCase()===WYMeditor.LI){jQuery(selectedNode).append(table)}else{jQuery(selectedNode).after(table)}}else{jQuery(container).after(table)}this.afterInsertTable(table);this.fixBodyHtml();return table};WYMeditor.editor.prototype.afterInsertTable=function(table){};WYMeditor.editor.prototype.configureEditorUsingRawCss=function(){var CssParser=new WYMeditor.WymCssParser;if(this._options.stylesheet){CssParser.parse(jQuery.ajax({url:this._options.stylesheet,async:false}).responseText)}else{CssParser.parse(this._options.styles,false)}if(this._options.classesItems.length===0){this._options.classesItems=CssParser.css_settings.classesItems}if(this._options.editorStyles.length===0){this._options.editorStyles=CssParser.css_settings.editorStyles}if(this._options.dialogStyles.length===0){this._options.dialogStyles=CssParser.css_settings.dialogStyles}};WYMeditor.editor.prototype.listen=function(){var wym=this;jQuery(this._doc.body).bind("mousedown",function(e){wym.mousedown(e)})};WYMeditor.editor.prototype.mousedown=function(evt){this._selected_image=null;if(evt.target.tagName.toLowerCase()===WYMeditor.IMG){this._selected_image=evt.target}};WYMeditor.loadCss=function(href){var link=document.createElement("link"),head;link.rel="stylesheet";link.href=href;head=jQuery("head").get(0);head.appendChild(link)};WYMeditor.editor.prototype.loadSkin=function(){if(this._options.loadSkin&&!WYMeditor.SKINS[this._options.skin]){var found=false,rExp=new RegExp(this._options.skin+"/"+WYMeditor.SKINS_DEFAULT_CSS+"$");jQuery("link").each(function(){if(this.href.match(rExp)){found=true}});if(!found){WYMeditor.loadCss(this._options.skinPath+WYMeditor.SKINS_DEFAULT_CSS)}}jQuery(this._box).addClass("wym_skin_"+this._options.skin);if(this._options.initSkin&&!WYMeditor.SKINS[this._options.skin]){eval(jQuery.ajax({url:this._options.skinPath+WYMeditor.SKINS_DEFAULT_JS,async:false}).responseText)}if(WYMeditor.SKINS[this._options.skin]&&WYMeditor.SKINS[this._options.skin].init){WYMeditor.SKINS[this._options.skin].init(this)}};WYMeditor.DocumentStructureManager=function(wym,defaultRootContainer){this._wym=wym;this.structureRules=WYMeditor.DocumentStructureManager.DEFAULTS;this.setDefaultRootContainer(defaultRootContainer)};jQuery.extend(WYMeditor.DocumentStructureManager,{VALID_DEFAULT_ROOT_CONTAINERS:["p","div"],DEFAULT_ROOT_CONTAINER_TITLES:{p:"Paragraph",div:"Division"},CONTAINERS_BLOCKING_NAVIGATION:["table","blockquote","pre"],DEFAULTS:{defaultRootContainer:"p",notValidRootContainers:["div"],validRootContainers:["p","div","h1","h2","h3","h4","h5","h6","pre","blockquote","table","ol","ul"],convertIfRootContainers:["div"],validListConversionTargetContainers:["p","div","h1","h2","h3","h4","h5","h6","pre","blockquote","td","th"],wrapContentsInList:["td","th"]}}); WYMeditor.DocumentStructureManager.prototype.setDefaultRootContainer=function(defaultRootContainer){var validContainers,index;if(this.structureRules.defaultRootContainer===defaultRootContainer){return}validContainers=WYMeditor.DocumentStructureManager.VALID_DEFAULT_ROOT_CONTAINERS;index=jQuery.inArray(defaultRootContainer,validContainers);if(index===-1){throw new Error("a defaultRootContainer of '"+defaultRootContainer+"' is not supported")}this.structureRules.defaultRootContainer=defaultRootContainer;this.structureRules.notValidRootContainers=WYMeditor.DocumentStructureManager.VALID_DEFAULT_ROOT_CONTAINERS;this.structureRules.notValidRootContainers.splice(index,1);this.adjustDefaultRootContainerUI()};WYMeditor.DocumentStructureManager.prototype.adjustDefaultRootContainerUI=function(){var wym=this._wym,defaultRootContainer=this.structureRules.defaultRootContainer,$containerItems,$containerLink,$newContainerItem,containerName,newContainerLinkNeeded,newContainerLinkHtml,i;$containerItems=jQuery(wym._box).find(wym._options.containersSelector).find("li");newContainerLinkNeeded=true;for(i=0;i<$containerItems.length;++i){$containerLink=$containerItems.eq(i).find("a");containerName=$containerLink.attr("name").toLowerCase();if(jQuery.inArray(containerName,this.structureRules.notValidRootContainers)>-1){$containerItems.eq(i).remove()}if(containerName===defaultRootContainer){newContainerLinkNeeded=false}}if(newContainerLinkNeeded){newContainerLinkHtml=wym._options.containersItemHtml;newContainerLinkHtml=WYMeditor.Helper.replaceAll(newContainerLinkHtml,WYMeditor.CONTAINER_NAME,defaultRootContainer.toUpperCase());newContainerLinkHtml=WYMeditor.Helper.replaceAll(newContainerLinkHtml,WYMeditor.CONTAINER_TITLE,WYMeditor.DocumentStructureManager.DEFAULT_ROOT_CONTAINER_TITLES[defaultRootContainer]);newContainerLinkHtml=WYMeditor.Helper.replaceAll(newContainerLinkHtml,WYMeditor.CONTAINER_CLASS,"wym_containers_"+defaultRootContainer);$newContainerItem=jQuery(newContainerLinkHtml);$containerItems=jQuery(wym._box).find(wym._options.containersSelector).find("li");$containerItems.eq(0).before($newContainerItem);$newContainerItem.find("a").click(function(){wym.container(jQuery(this).attr(WYMeditor.NAME));return false})}};WYMeditor.WymClassExplorer=function(wym){this._wym=wym;this._class="className"};WYMeditor.WymClassExplorer.prototype.initIframe=function(iframe){this._iframe=iframe;this._doc=iframe.contentWindow.document;var styles=this._doc.styleSheets[0];var aCss=eval(this._options.editorStyles);this.addCssRules(this._doc,aCss);this._doc.title=this._wym._index;jQuery("html",this._doc).attr("dir",this._options.direction);jQuery(this._doc.body).html(this._wym._options.html);var wym=this;this._doc.body.onfocus=function(){wym._doc.designMode="on";wym._doc=iframe.contentWindow.document};this._doc.onbeforedeactivate=function(){wym.saveCaret()};jQuery(this._doc).bind("keyup",wym.keyup);var ieVersion=parseInt(jQuery.browser.version,10);if(ieVersion>=8&&ieVersion<9){jQuery(this._doc).bind("keydown",function(){wym.fixBluescreenOfDeath()})}this._doc.onkeyup=function(){wym.saveCaret()};this._doc.onclick=function(){wym.saveCaret()};this._doc.body.onbeforepaste=function(){wym._iframe.contentWindow.event.returnValue=false};this._doc.body.onpaste=function(){wym._iframe.contentWindow.event.returnValue=false;wym.paste(window.clipboardData.getData("Text"))};if(this._initialized){if(jQuery.isFunction(this._options.preBind)){this._options.preBind(this)}this._wym.bindEvents();if(jQuery.isFunction(this._options.postInit)){this._options.postInit(this)}this.listen()}this._initialized=true;this._doc.designMode="on";try{this._doc=iframe.contentWindow.document}catch(e){}};!function(editorLoadSkin){WYMeditor.WymClassExplorer.prototype.loadSkin=function(){jQuery(this._box).find(this._options.containerSelector).attr("unselectable","on");editorLoadSkin.call(this)}}(WYMeditor.editor.prototype.loadSkin);WYMeditor.WymClassExplorer.prototype.fixBluescreenOfDeath=function(){var position=jQuery(this._doc).find("p").eq(0).position();if(position!==null&&typeof position!=="undefined"&&position.left<0){jQuery(this._box).append('
      ');jQuery(this._box).find("#wym-bluescreen-bug-fix").remove()}};WYMeditor.WymClassExplorer.prototype._exec=function(cmd,param){if(param){this._doc.execCommand(cmd,false,param)}else{this._doc.execCommand(cmd)}};WYMeditor.WymClassExplorer.prototype.saveCaret=function(){this._doc.caretPos=this._doc.selection.createRange()};WYMeditor.WymClassExplorer.prototype.addCssRule=function(styles,oCss){var selectors=oCss.name.split(","),i;for(i=0;i");selection=rangy.getIframeSelection(wym._iframe);range=rangy.createRange(wym._doc);range.selectNodeContents($wrappedNode[0]);range.collapse();selection.setSingleRange(range)};WYMeditor.WymClassExplorer.prototype.unwrap=function(){var range=this._doc.selection.createRange();if(jQuery(range.parentElement()).parents().is(this._options.iframeBodySelector)){try{var text=range.text;this._exec("Cut");range.pasteHTML(text)}catch(e){}}};WYMeditor.WymClassExplorer.prototype.keyup=function(evt){var wym=WYMeditor.INSTANCES[this.title],container,defaultRootContainer,notValidRootContainers,name,parentName,forbiddenMainContainer=false;notValidRootContainers=wym.documentStructureManager.structureRules.notValidRootContainers;defaultRootContainer=wym.documentStructureManager.structureRules.defaultRootContainer;this._selected_image=null;if(!wym.keyCanCreateBlockElement(evt.which)&&evt.which!==WYMeditor.KEY.CTRL&&evt.which!==WYMeditor.KEY.COMMAND&&!evt.metaKey&&!evt.ctrlKey){container=wym.selected();selectedNode=wym.selection().focusNode;if(container!==null){name=container.tagName.toLowerCase()}if(container.parentNode){parentName=container.parentNode.tagName.toLowerCase()}if(wym.isForbiddenMainContainer(name)){name=parentName;forbiddenMainContainer=true}if(name===WYMeditor.BODY&&selectedNode.nodeName==="#text"){if(forbiddenMainContainer){selectedNode=selectedNode.parentNode}wym.wrapWithContainer(selectedNode,defaultRootContainer);wym.fixBodyHtml()}if(jQuery.inArray(name,notValidRootContainers)>-1&&parentName===WYMeditor.BODY){wym.switchTo(container,defaultRootContainer);wym.fixBodyHtml()}}if(wym.keyCanCreateBlockElement(evt.which)){container=wym.selected();name=container.tagName.toLowerCase();if(container.parentNode){parentName=container.parentNode.tagName.toLowerCase()}if(jQuery.inArray(name,notValidRootContainers)>-1&&parentName===WYMeditor.BODY){wym.switchTo(container,defaultRootContainer)}wym.fixBodyHtml()}};WYMeditor.WymClassMozilla=function(wym){this._wym=wym;this._class="class"};WYMeditor.WymClassMozilla.CELL_PLACEHOLDER='
      ';WYMeditor.WymClassMozilla.NEEDS_CELL_FIX=parseInt(jQuery.browser.version,10)===1&&jQuery.browser.version>="1.9.1"&&jQuery.browser.version<"2.0";WYMeditor.WymClassMozilla.prototype.initIframe=function(iframe){var wym=this,styles,aCss;this._iframe=iframe;this._doc=iframe.contentDocument;styles=this._doc.styleSheets[0];aCss=eval(this._options.editorStyles);this.addCssRules(this._doc,aCss);this._doc.title=this._wym._index;jQuery("html",this._doc).attr("dir",this._options.direction);this._html(this._wym._options.html);this.enableDesignMode();if(jQuery.isFunction(this._options.preBind)){this._options.preBind(this)}this._wym.bindEvents();jQuery(this._doc).bind("keydown",this.keydown);jQuery(this._doc).bind("keyup",this.keyup);jQuery(this._doc).bind("click",this.click);jQuery(this._doc).bind("focus",function(){wym.enableDesignMode.call(wym)});if(jQuery.isFunction(this._options.postInit)){this._options.postInit(this)}this.listen()};WYMeditor.WymClassMozilla.prototype._html=function(html){if(typeof html==="string"){try{this._doc.designMode="off"}catch(e){}html=html.replace(/]*)>/gi,"");html=html.replace(/<\/em>/gi,"");html=html.replace(/]*)>/gi,"");html=html.replace(/<\/strong>/gi,"");jQuery(this._doc.body).html(html);this._wym.fixBodyHtml();this.enableDesignMode()}else{return jQuery(this._doc.body).html()}return false};WYMeditor.WymClassMozilla.prototype._exec=function(cmd,param){if(!this.selected()){return false}if(param){this._doc.execCommand(cmd,"",param)}else{this._doc.execCommand(cmd,"",null)}var container=this.selected();if(container&&container.tagName.toLowerCase()===WYMeditor.BODY){this._exec(WYMeditor.FORMAT_BLOCK,WYMeditor.P);this.fixBodyHtml()}return true};WYMeditor.WymClassMozilla.prototype.addCssRule=function(styles,oCss){styles.insertRule(oCss.name+" {"+oCss.css+"}",styles.cssRules.length)};WYMeditor.WymClassMozilla.prototype.keydown=function(evt){var wym=WYMeditor.INSTANCES[this.title];if(evt.ctrlKey){if(evt.which===66){wym._exec(WYMeditor.BOLD);return false}if(evt.which===73){wym._exec(WYMeditor.ITALIC);return false}}return true};WYMeditor.WymClassMozilla.prototype.keyup=function(evt){var wym=WYMeditor.INSTANCES[this.title],container,defaultRootContainer,notValidRootContainers,name,parentName;notValidRootContainers=wym.documentStructureManager.structureRules.notValidRootContainers;defaultRootContainer=wym.documentStructureManager.structureRules.defaultRootContainer;wym._selected_image=null;container=null;if(!wym.keyCanCreateBlockElement(evt.which)&&evt.which!==WYMeditor.KEY.CTRL&&evt.which!==WYMeditor.KEY.COMMAND&&!evt.metaKey&&!evt.ctrlKey){container=wym.selected();name=container.tagName.toLowerCase();if(container.parentNode){parentName=container.parentNode.tagName.toLowerCase()}if(wym.isForbiddenMainContainer(name)){name=parentName}if(name===WYMeditor.BODY||jQuery.inArray(name,notValidRootContainers)>-1&&parentName===WYMeditor.BODY){wym._exec(WYMeditor.FORMAT_BLOCK,defaultRootContainer);wym.fixBodyHtml()}}if(wym.keyCanCreateBlockElement(evt.which)){container=wym.selected();name=container.tagName.toLowerCase();if(container.parentNode){parentName=container.parentNode.tagName.toLowerCase()}if(jQuery.inArray(name,notValidRootContainers)>-1&&parentName===WYMeditor.BODY){wym._exec(WYMeditor.FORMAT_BLOCK,defaultRootContainer)}wym.fixBodyHtml()}};WYMeditor.WymClassMozilla.prototype.click=function(evt){var wym=WYMeditor.INSTANCES[this.title],container=wym.selected(),sel;if(WYMeditor.WymClassMozilla.NEEDS_CELL_FIX===true){if(container&&container.tagName.toLowerCase()===WYMeditor.TR){jQuery(WYMeditor.TD,wym._doc.body).append(WYMeditor.WymClassMozilla.CELL_PLACEHOLDER)}}if(container&&container.tagName.toLowerCase()===WYMeditor.BODY){sel=wym._iframe.contentWindow.getSelection();if(sel.isCollapsed===true){wym._exec(WYMeditor.FORMAT_BLOCK,WYMeditor.P)}}};WYMeditor.WymClassMozilla.prototype.enableDesignMode=function(){if(this._doc.designMode==="off"){try{this._doc.designMode="on";this._doc.execCommand("styleWithCSS","",false);this._doc.execCommand("enableObjectResizing",false,true)}catch(e){}}};WYMeditor.WymClassMozilla.prototype.afterInsertTable=function(table){if(WYMeditor.WymClassMozilla.NEEDS_CELL_FIX===true){jQuery(table).find("td").each(function(index,element){jQuery(element).append(WYMeditor.WymClassMozilla.CELL_PLACEHOLDER)})}};WYMeditor.WymClassOpera=function(wym){this._wym=wym;this._class="class"};WYMeditor.WymClassOpera.prototype.initIframe=function(iframe){this._iframe=iframe;this._doc=iframe.contentWindow.document;var styles=this._doc.styleSheets[0];var aCss=eval(this._options.editorStyles);this.addCssRules(this._doc,aCss);this._doc.title=this._wym._index;jQuery("html",this._doc).attr("dir",this._options.direction);this._doc.designMode="on";this._html(this._wym._options.html);if(jQuery.isFunction(this._options.preBind)){this._options.preBind(this)}this._wym.bindEvents();jQuery(this._doc).bind("keydown",this.keydown);jQuery(this._doc).bind("keyup",this.keyup);if(jQuery.isFunction(this._options.postInit)){this._options.postInit(this)}this.listen()};WYMeditor.WymClassOpera.prototype._exec=function(cmd,param){if(param){this._doc.execCommand(cmd,false,param)}else{this._doc.execCommand(cmd)}};WYMeditor.WymClassOpera.prototype.selected=function(){var sel=this._iframe.contentWindow.getSelection();var node=sel.focusNode;if(node){if(node.nodeName==="#text"){return node.parentNode}else{return node}}else{return null}};WYMeditor.WymClassOpera.prototype.addCssRule=function(styles,oCss){styles.insertRule(oCss.name+" {"+oCss.css+"}",styles.cssRules.length)};WYMeditor.WymClassOpera.prototype.keydown=function(evt){var wym=WYMeditor.INSTANCES[this.title];var sel=wym._iframe.contentWindow.getSelection();startNode=sel.getRangeAt(0).startContainer;if(!jQuery(startNode).parentsOrSelf(WYMeditor.MAIN_CONTAINERS.join(","))[0]&&!jQuery(startNode).parentsOrSelf("li")&&!keyCanCreateBlockElement(evt.which)){wym._exec(WYMeditor.FORMAT_BLOCK,WYMeditor.P)}};WYMeditor.WymClassOpera.prototype.keyup=function(evt){var wym=WYMeditor.INSTANCES[this.title];wym._selected_image=null};WYMeditor.WymClassSafari=function(wym){this._wym=wym;this._class="class"};WYMeditor.WymClassSafari.prototype.initIframe=function(iframe){var wym=this,styles,aCss;this._iframe=iframe;this._doc=iframe.contentDocument;styles=this._doc.styleSheets[0];aCss=eval(this._options.editorStyles);this.addCssRules(this._doc,aCss);this._doc.title=this._wym._index;jQuery("html",this._doc).attr("dir",this._options.direction);this._doc.designMode="on";this._html(this._wym._options.html);if(jQuery.isFunction(this._options.preBind)){this._options.preBind(this)}this._wym.bindEvents();jQuery(this._doc).bind("keydown",this.keydown);jQuery(this._doc).bind("keyup",this.keyup);if(jQuery.isFunction(this._options.postInit)){this._options.postInit(this)}this.listen()};WYMeditor.WymClassSafari.prototype._exec=function(cmd,param){if(!this.selected()){return false}var container,$container,tagName;if(param){this._doc.execCommand(cmd,"",param)}else{this._doc.execCommand(cmd,"",null)}container=this.selected();if(container){$container=jQuery(container);tagName=container.tagName.toLowerCase();if(tagName===WYMeditor.BODY){this._exec(WYMeditor.FORMAT_BLOCK,this.documentStructureManager.structureRules.defaultRootContainer);this.fixBodyHtml()}if(cmd===WYMeditor.FORMAT_BLOCK&&$container.siblings("body.wym_iframe").length){$container.siblings("body.wym_iframe").append(container)}if(tagName==="span"&&(!$container.attr("class")||$container.attr("class").toLowerCase()==="apple-style-span")&&$container.attr("style")==="font-weight: normal;"){$container.contents().unwrap()}}return true};WYMeditor.WymClassSafari.prototype.addCssRule=function(styles,oCss){styles.insertRule(oCss.name+" {"+oCss.css+"}",styles.cssRules.length)};WYMeditor.WymClassSafari.prototype.keydown=function(e){var wym=WYMeditor.INSTANCES[this.title];if(e.ctrlKey){if(e.which===WYMeditor.KEY.B){wym._exec(WYMeditor.BOLD);e.preventDefault()}if(e.which===WYMeditor.KEY.I){wym._exec(WYMeditor.ITALIC);e.preventDefault()}}else if(e.shiftKey&&e.which===WYMeditor.KEY.ENTER){wym._exec("InsertLineBreak");e.preventDefault()}};WYMeditor.WymClassSafari.prototype.keyup=function(evt){var wym=WYMeditor.INSTANCES[this.title],container,defaultRootContainer,notValidRootContainers,name,parentName;notValidRootContainers=wym.documentStructureManager.structureRules.notValidRootContainers;defaultRootContainer=wym.documentStructureManager.structureRules.defaultRootContainer;wym._selected_image=null;if(jQuery.browser.version<534.1){if(evt.which===WYMeditor.KEY.ENTER&&evt.shiftKey){wym._exec("InsertLineBreak")}}if(!wym.keyCanCreateBlockElement(evt.which)&&evt.which!==WYMeditor.KEY.CTRL&&evt.which!==WYMeditor.KEY.COMMAND&&!evt.metaKey&&!evt.ctrlKey){container=wym.selected();name=container.tagName.toLowerCase();if(container.parentNode){parentName=container.parentNode.tagName.toLowerCase()}if(wym.isForbiddenMainContainer(name)){name=parentName}if(name===WYMeditor.BODY||jQuery.inArray(name,notValidRootContainers)>-1&&parentName===WYMeditor.BODY){wym._exec(WYMeditor.FORMAT_BLOCK,defaultRootContainer);wym.fixBodyHtml()}}if(wym.keyCanCreateBlockElement(evt.which)){container=wym.selected();name=container.tagName.toLowerCase();if(container.parentNode){parentName=container.parentNode.tagName.toLowerCase()}if(jQuery.inArray(name,notValidRootContainers)>-1&&parentName===WYMeditor.BODY){wym._exec(WYMeditor.FORMAT_BLOCK,defaultRootContainer)}wym.fixBodyHtml()}};WYMeditor.XmlHelper=function(){this._entitiesDiv=document.createElement("div");return this};WYMeditor.XmlHelper.prototype.tag=function(name,options,open){options=options||false;open=open||false;return"<"+name+(options?this.tagOptions(options):"")+(open?">":" />")};WYMeditor.XmlHelper.prototype.contentTag=function(name,content,options){options=options||false;return"<"+name+(options?this.tagOptions(options):"")+">"+content+""};WYMeditor.XmlHelper.prototype.cdataSection=function(content){return""};WYMeditor.XmlHelper.prototype.escapeOnce=function(xml){return this._fixDoubleEscape(this.escapeEntities(xml))};WYMeditor.XmlHelper.prototype._fixDoubleEscape=function(escaped){return escaped.replace(/&([a-z]+|(#\d+));/gi,"&$1;")};WYMeditor.XmlHelper.prototype.tagOptions=function(options){var xml=this;xml._formated_options="";for(var key in options){var formated_options="";var value=options[key];if(typeof value!="function"&&value.length>0){if(parseInt(key,10)==key&&typeof value=="object"){key=value.shift();value=value.pop()}if(key!==""&&value!==""){xml._formated_options+=" "+key+'="'+xml.escapeOnce(value)+'"'}}}return xml._formated_options};WYMeditor.XmlHelper.prototype.escapeEntities=function(string,escape_quotes){this._entitiesDiv.innerHTML=string;this._entitiesDiv.textContent=string;var result=this._entitiesDiv.innerHTML;if(typeof escape_quotes=="undefined"){if(escape_quotes!==false)result=result.replace('"',""");if(escape_quotes===true)result=result.replace('"',"'")}return result};WYMeditor.XmlHelper.prototype.parseAttributes=function(tag_attributes){var result=[];var matches=tag_attributes.split(/((=\s*")(")("))|((=\s*\')(\')(\'))|((=\s*[^>\s]*))/g);if(matches.toString()!=tag_attributes){for(var k in matches){var v=matches[k];if(typeof v!="function"&&v.length!==0){var re=new RegExp("(\\w+)\\s*"+v);var match=tag_attributes.match(re);if(match){var value=v.replace(/^[\s=]+/,"");var delimiter=value.charAt(0);delimiter=delimiter=='"'?'"':delimiter=="'"?"'":"";if(delimiter!==""){value=delimiter=='"'?value.replace(/^"|"+$/g,""):value.replace(/^'|'+$/g,"")}tag_attributes=tag_attributes.replace(match[0],"");result.push([match[1],value])}}}}return result};WYMeditor.XhtmlValidator={_attributes:{core:{except:["base","head","html","meta","param","script","style","title"],attributes:["class","id","style","title","accesskey","tabindex","/^data-.*/"]},language:{except:["base","br","hr","iframe","param","script"],attributes:{dir:["ltr","rtl"],0:"lang",1:"xml:lang"}},keyboard:{attributes:{accesskey:/^(\w){1}$/,tabindex:/^(\d)+$/}}},_events:{window:{only:["body"],attributes:["onload","onunload"]},form:{only:["form","input","textarea","select","a","label","button"],attributes:["onchange","onsubmit","onreset","onselect","onblur","onfocus"]},keyboard:{except:["base","bdo","br","frame","frameset","head","html","iframe","meta","param","script","style","title"],attributes:["onkeydown","onkeypress","onkeyup"]},mouse:{except:["base","bdo","br","head","html","meta","param","script","style","title"],attributes:["onclick","ondblclick","onmousedown","onmousemove","onmouseover","onmouseout","onmouseup"]}},_tags:{a:{attributes:{0:"charset",1:"coords",2:"href",3:"hreflang",4:"name",5:"rel",6:"rev",shape:/^(rect|rectangle|circ|circle|poly|polygon)$/,7:"type"}},0:"abbr",1:"acronym",2:"address",area:{attributes:{0:"alt",1:"coords",2:"href",nohref:/^(true|false)$/,shape:/^(rect|rectangle|circ|circle|poly|polygon)$/},required:["alt"]},3:"b",base:{attributes:["href"],required:["href"]},bdo:{attributes:{dir:/^(ltr|rtl)$/},required:["dir"]},4:"big",blockquote:{attributes:["cite"]},5:"body",6:"br",button:{attributes:{disabled:/^(disabled)$/,type:/^(button|reset|submit)$/,0:"value"},inside:"form"},7:"caption",8:"cite",9:"code",col:{attributes:{align:/^(right|left|center|justify)$/,0:"char",1:"charoff",span:/^(\d)+$/,valign:/^(top|middle|bottom|baseline)$/,2:"width"},inside:"colgroup"},colgroup:{attributes:{align:/^(right|left|center|justify)$/,0:"char",1:"charoff",span:/^(\d)+$/,valign:/^(top|middle|bottom|baseline)$/,2:"width"}},10:"dd",del:{attributes:{0:"cite",datetime:/^([0-9]){8}/}},11:"div",12:"dfn",13:"dl",14:"dt",15:"em",fieldset:{inside:"form"},form:{attributes:{0:"action",1:"accept",2:"accept-charset",3:"enctype",method:/^(get|post)$/},required:["action"]},head:{attributes:["profile"]},16:"h1",17:"h2",18:"h3",19:"h4",20:"h5",21:"h6",22:"hr",html:{attributes:["xmlns"]},23:"i",img:{attributes:["alt","src","height","ismap","longdesc","usemap","width"],required:["alt","src"]},input:{attributes:{0:"accept",1:"alt",checked:/^(checked)$/,disabled:/^(disabled)$/,maxlength:/^(\d)+$/,2:"name",readonly:/^(readonly)$/,size:/^(\d)+$/,3:"src",type:/^(button|checkbox|file|hidden|image|password|radio|reset|submit|text)$/,4:"value"},inside:"form"},ins:{attributes:{0:"cite",datetime:/^([0-9]){8}/}},24:"kbd",label:{attributes:["for"],inside:"form"},25:"legend",26:"li",link:{attributes:{0:"charset",1:"href",2:"hreflang",media:/^(all|braille|print|projection|screen|speech|,|;| )+$/i,rel:/^(alternate|appendix|bookmark|chapter|contents|copyright|glossary|help|home|index|next|prev|section|start|stylesheet|subsection| |shortcut|icon)+$/i,rev:/^(alternate|appendix|bookmark|chapter|contents|copyright|glossary|help|home|index|next|prev|section|start|stylesheet|subsection| |shortcut|icon)+$/i,3:"type"},inside:"head"},map:{attributes:["id","name"],required:["id"]},meta:{attributes:{0:"content","http-equiv":/^(content\-type|expires|refresh|set\-cookie)$/i,1:"name",2:"scheme"},required:["content"]},27:"noscript",object:{attributes:["archive","classid","codebase","codetype","data","declare","height","name","standby","type","usemap","width"]},28:"ol",optgroup:{attributes:{0:"label",disabled:/^(disabled)$/},required:["label"]},option:{attributes:{0:"label",disabled:/^(disabled)$/,selected:/^(selected)$/,1:"value"},inside:"select"},29:"p",param:{attributes:{0:"type",valuetype:/^(data|ref|object)$/,1:"valuetype",2:"value"},required:["name"]},30:"pre",q:{attributes:["cite"]},31:"samp",script:{attributes:{type:/^(text\/ecmascript|text\/javascript|text\/jscript|text\/vbscript|text\/vbs|text\/xml)$/,0:"charset",defer:/^(defer)$/,1:"src"},required:["type"]},select:{attributes:{disabled:/^(disabled)$/,multiple:/^(multiple)$/,0:"name",1:"size"},inside:"form"},32:"small",33:"span",34:"strong",style:{attributes:{0:"type",media:/^(screen|tty|tv|projection|handheld|print|braille|aural|all)$/},required:["type"]},35:"sub",36:"sup",table:{attributes:{0:"border",1:"cellpadding",2:"cellspacing",frame:/^(void|above|below|hsides|lhs|rhs|vsides|box|border)$/,rules:/^(none|groups|rows|cols|all)$/,3:"summary",4:"width"}},tbody:{attributes:{align:/^(right|left|center|justify)$/,0:"char",1:"charoff",valign:/^(top|middle|bottom|baseline)$/}},td:{attributes:{0:"abbr",align:/^(left|right|center|justify|char)$/,1:"axis",2:"char",3:"charoff",colspan:/^(\d)+$/,4:"headers",rowspan:/^(\d)+$/,scope:/^(col|colgroup|row|rowgroup)$/,valign:/^(top|middle|bottom|baseline)$/}},textarea:{attributes:["cols","rows","disabled","name","readonly"],required:["cols","rows"],inside:"form"},tfoot:{attributes:{align:/^(right|left|center|justify)$/,0:"char",1:"charoff",valign:/^(top|middle|bottom)$/,2:"baseline"}},th:{attributes:{0:"abbr",align:/^(left|right|center|justify|char)$/,1:"axis",2:"char",3:"charoff",colspan:/^(\d)+$/,4:"headers",rowspan:/^(\d)+$/,scope:/^(col|colgroup|row|rowgroup)$/,valign:/^(top|middle|bottom|baseline)$/}},thead:{attributes:{align:/^(right|left|center|justify)$/,0:"char",1:"charoff",valign:/^(top|middle|bottom|baseline)$/}},37:"title",tr:{attributes:{align:/^(right|left|center|justify|char)$/,0:"char",1:"charoff",valign:/^(top|middle|bottom|baseline)$/}},38:"tt",39:"ul",40:"var"},skiped_attributes:[],skiped_attribute_values:[],getValidTagAttributes:function(tag,attributes){var valid_attributes={};var possible_attributes=this.getPossibleTagAttributes(tag);for(var attribute in attributes){var value=attributes[attribute];attribute=attribute.toLowerCase();var h=WYMeditor.Helper;if(!h.contains(this.skiped_attributes,attribute)&&!h.contains(this.skiped_attribute_values,value)){if(typeof value!="function"&&h.contains(possible_attributes,attribute)){if(this.doesAttributeNeedsValidation(tag,attribute)){if(this.validateAttribute(tag,attribute,value)){valid_attributes[attribute]=value}}else{valid_attributes[attribute]=value}}else{jQuery.each(possible_attributes,function(){if(this.match(/\/(.*)\//)){regex=new RegExp(this.match(/\/(.*)\//)[1]);if(regex.test(attribute)){valid_attributes[attribute]=value}}})}}}return valid_attributes},getUniqueAttributesAndEventsForTag:function(tag){var result=[];if(this._tags[tag]&&this._tags[tag].attributes){for(var k in this._tags[tag].attributes){result.push(parseInt(k,10)==k?this._tags[tag].attributes[k]:k)}}return result},getDefaultAttributesAndEventsForTags:function(){var result=[];for(var key in this._events){result.push(this._events[key])}for(key in this._attributes){result.push(this._attributes[key])}return result},isValidTag:function(tag){if(this._tags[tag]){return true}for(var key in this._tags){if(this._tags[key]==tag){return true}}return false},getDefaultAttributesAndEventsForTag:function(tag){var default_attributes=[];if(this.isValidTag(tag)){var default_attributes_and_events=this.getDefaultAttributesAndEventsForTags();for(var key in default_attributes_and_events){var defaults=default_attributes_and_events[key];if(typeof defaults=="object"){var h=WYMeditor.Helper;if(defaults["except"]&&h.contains(defaults["except"],tag)||defaults["only"]&&!h.contains(defaults["only"],tag)){continue}var tag_defaults=defaults["attributes"]?defaults["attributes"]:defaults["events"];for(var k in tag_defaults){default_attributes.push(typeof tag_defaults[k]!="string"?k:tag_defaults[k])}}}}return default_attributes},doesAttributeNeedsValidation:function(tag,attribute){return this._tags[tag]&&(this._tags[tag]["attributes"]&&this._tags[tag]["attributes"][attribute]||this._tags[tag]["required"]&&WYMeditor.Helper.contains(this._tags[tag]["required"],attribute))},validateAttribute:function(tag,attribute,value){if(this._tags[tag]&&this._tags[tag]["attributes"]&&this._tags[tag]["attributes"][attribute]&&value.length>0&&!value.match(this._tags[tag]["attributes"][attribute])||this._tags[tag]&&this._tags[tag]["required"]&&WYMeditor.Helper.contains(this._tags[tag]["required"],attribute)&&value.length===0){return false}return typeof this._tags[tag]!="undefined"},getPossibleTagAttributes:function(tag){if(!this._possible_tag_attributes){this._possible_tag_attributes={}}if(!this._possible_tag_attributes[tag]){this._possible_tag_attributes[tag]=this.getUniqueAttributesAndEventsForTag(tag).concat(this.getDefaultAttributesAndEventsForTag(tag))}return this._possible_tag_attributes[tag]}};WYMeditor.ParallelRegex=function(case_sensitive){this._case=case_sensitive;this._patterns=[];this._labels=[];this._regex=null;return this};WYMeditor.ParallelRegex.prototype.addPattern=function(pattern,label){label=label||true;var count=this._patterns.length;this._patterns[count]=pattern;this._labels[count]=label;this._regex=null};WYMeditor.ParallelRegex.prototype.match=function(subject){if(this._patterns.length===0){return[false,""]}var matches=subject.match(this._getCompoundedRegex());if(!matches){return[false,""]}var match=matches[0];for(var i=1;i","Comment")};WYMeditor.XhtmlLexer.prototype.addScriptTokens=function(scope){this.addEntryPattern("","Script")};WYMeditor.XhtmlLexer.prototype.addCssTokens=function(scope){this.addEntryPattern("","Css")};WYMeditor.XhtmlLexer.prototype.addTagTokens=function(scope){this.addSpecialPattern("<\\s*[a-z0-9:-]+\\s*/>",scope,"SelfClosingTag");this.addSpecialPattern("<\\s*[a-z0-9:-]+\\s*>",scope,"OpeningTag");this.addEntryPattern("<[a-z0-9:-]+"+"[\\/ \\>]+",scope,"OpeningTag");this.addInTagDeclarationTokens("OpeningTag");this.addSpecialPattern("",scope,"ClosingTag")};WYMeditor.XhtmlLexer.prototype.addInTagDeclarationTokens=function(scope){this.addSpecialPattern("\\s+",scope,"Ignore");this.addAttributeTokens(scope);this.addExitPattern("/>",scope);this.addExitPattern(">",scope)};WYMeditor.XhtmlLexer.prototype.addAttributeTokens=function(scope){this.addSpecialPattern("\\s*[a-z-_0-9]*:?[a-z-_0-9]+\\s*(?==)\\s*",scope,"TagAttributes");this.addEntryPattern('=\\s*"',scope,"DoubleQuotedAttribute");this.addPattern('\\\\"',"DoubleQuotedAttribute");this.addExitPattern('"',"DoubleQuotedAttribute");this.addEntryPattern("=\\s*'",scope,"SingleQuotedAttribute");this.addPattern("\\\\'","SingleQuotedAttribute");this.addExitPattern("'","SingleQuotedAttribute");this.addSpecialPattern("=\\s*[^>\\s]*",scope,"UnquotedAttribute")};WYMeditor.XhtmlParser=function(Listener,mode){mode=mode||"Text";this._Lexer=new WYMeditor.XhtmlLexer(this);this._Listener=Listener;this._mode=mode;this._matches=[];this._last_match="";this._current_match="";return this};WYMeditor.XhtmlParser.prototype.parse=function(raw){this._Lexer.parse(this.beforeParsing(raw));return this.afterParsing(this._Listener.getResult())};WYMeditor.XhtmlParser.prototype.beforeParsing=function(raw){if(raw.match(/class="MsoNormal"/)||raw.match(/ns = "urn:schemas-microsoft-com/)){this._Listener.avoidStylingTagsAndAttributes()}return this._Listener.beforeParsing(raw)};WYMeditor.XhtmlParser.prototype.afterParsing=function(parsed){if(this._Listener._avoiding_tags_implicitly){this._Listener.allowStylingTagsAndAttributes()}return this._Listener.afterParsing(parsed)};WYMeditor.XhtmlParser.prototype.Ignore=function(match,state){return true};WYMeditor.XhtmlParser.prototype.Text=function(text){this._Listener.addContent(text);return true};WYMeditor.XhtmlParser.prototype.Comment=function(match,status){return this._addNonTagBlock(match,status,"addComment")};WYMeditor.XhtmlParser.prototype.Script=function(match,status){return this._addNonTagBlock(match,status,"addScript")};WYMeditor.XhtmlParser.prototype.Css=function(match,status){return this._addNonTagBlock(match,status,"addCss")};WYMeditor.XhtmlParser.prototype._addNonTagBlock=function(match,state,type){switch(state){case WYMeditor.LEXER_ENTER:this._non_tag=match;break;case WYMeditor.LEXER_UNMATCHED:this._non_tag+=match;break;case WYMeditor.LEXER_EXIT:switch(type){case"addComment":this._Listener.addComment(this._non_tag+match);break;case"addScript":this._Listener.addScript(this._non_tag+match);break;case"addCss":this._Listener.addCss(this._non_tag+match);break;default:break}break;default:break}return true};WYMeditor.XhtmlParser.prototype.SelfClosingTag=function(match,state){var result=this.OpeningTag(match,state);var tag=this.normalizeTag(match);return this.ClosingTag(match,state)};WYMeditor.XhtmlParser.prototype.OpeningTag=function(match,state){switch(state){case WYMeditor.LEXER_ENTER:this._tag=this.normalizeTag(match);this._tag_attributes={};break;case WYMeditor.LEXER_SPECIAL:this._callOpenTagListener(this.normalizeTag(match));break;case WYMeditor.LEXER_EXIT:this._callOpenTagListener(this._tag,this._tag_attributes);break;default:break}return true};WYMeditor.XhtmlParser.prototype.ClosingTag=function(match,state){this._callCloseTagListener(this.normalizeTag(match));return true};WYMeditor.XhtmlParser.prototype._callOpenTagListener=function(tag,attributes){attributes=attributes||{};this.autoCloseUnclosedBeforeNewOpening(tag);if(this._Listener.isBlockTag(tag)){this._Listener._tag_stack.push(tag);this._Listener.fixNestingBeforeOpeningBlockTag(tag,attributes);this._Listener.openBlockTag(tag,attributes);this._increaseOpenTagCounter(tag)}else if(this._Listener.isInlineTag(tag)){this._Listener.inlineTag(tag,attributes)}else{this._Listener.openUnknownTag(tag,attributes);this._increaseOpenTagCounter(tag)}this._Listener.last_tag=tag;this._Listener.last_tag_opened=true;this._Listener.last_tag_attributes=attributes};WYMeditor.XhtmlParser.prototype._callCloseTagListener=function(tag){if(this._decreaseOpenTagCounter(tag)){this.autoCloseUnclosedBeforeTagClosing(tag);if(this._Listener.isBlockTag(tag)){var expected_tag=this._Listener._tag_stack.pop();if(expected_tag===false){return}else if(expected_tag!=tag){tag=expected_tag}this._Listener.closeBlockTag(tag)}}else{if(!this._Listener.isInlineTag(tag)){this._Listener.closeUnopenedTag(tag)}}this._Listener.last_tag=tag;this._Listener.last_tag_opened=false};WYMeditor.XhtmlParser.prototype._increaseOpenTagCounter=function(tag){this._Listener._open_tags[tag]=this._Listener._open_tags[tag]||0;this._Listener._open_tags[tag]++};WYMeditor.XhtmlParser.prototype._decreaseOpenTagCounter=function(tag){if(this._Listener._open_tags[tag]){this._Listener._open_tags[tag]--;if(this._Listener._open_tags[tag]===0){this._Listener._open_tags[tag]=undefined}return true}return false};WYMeditor.XhtmlParser.prototype.autoCloseUnclosedBeforeNewOpening=function(new_tag){this._autoCloseUnclosed(new_tag,false)};WYMeditor.XhtmlParser.prototype.autoCloseUnclosedBeforeTagClosing=function(tag){this._autoCloseUnclosed(tag,true)};WYMeditor.XhtmlParser.prototype._autoCloseUnclosed=function(new_tag,closing){closing=closing||false;if(this._Listener._open_tags){for(var tag in this._Listener._open_tags){var counter=this._Listener._open_tags[tag];if(counter>0&&this._Listener.shouldCloseTagAutomatically(tag,new_tag,closing)){this._callCloseTagListener(tag,true)}}}};WYMeditor.XhtmlParser.prototype.getTagReplacements=function(){return this._Listener.getTagReplacements()};WYMeditor.XhtmlParser.prototype.normalizeTag=function(tag){tag=tag.replace(/^([\s<\/>]*)|([\s<\/>]*)$/gm,"").toLowerCase();var tags=this._Listener.getTagReplacements();if(tags[tag]){return tags[tag]}return tag};WYMeditor.XhtmlParser.prototype.TagAttributes=function(match,state){if(WYMeditor.LEXER_SPECIAL==state){this._current_attribute=match}return true};WYMeditor.XhtmlParser.prototype.DoubleQuotedAttribute=function(match,state){if(WYMeditor.LEXER_UNMATCHED==state){this._tag_attributes[this._current_attribute]=match}return true};WYMeditor.XhtmlParser.prototype.SingleQuotedAttribute=function(match,state){if(WYMeditor.LEXER_UNMATCHED==state){this._tag_attributes[this._current_attribute]=match}return true};WYMeditor.XhtmlParser.prototype.UnquotedAttribute=function(match,state){this._tag_attributes[this._current_attribute]=match.replace(/^=/,"");return true};WYMeditor.XhtmlSaxListener=function(){this.output="";this.helper=new WYMeditor.XmlHelper;this._open_tags={};this.validator=WYMeditor.XhtmlValidator;this._tag_stack=[];this.avoided_tags=[];this._insert_before_closing=[];this._insert_after_closing=[];this._last_node_was_text=false;this._insideTagToRemove=false;this._lastTagRemoved=false;this._extraLIClosingTags=0;this._removedTagStackIndex=0;this.entities={" ":" ","¡":"¡","¢":"¢","£":"£","¤":"¤","¥":"¥","¦":"¦","§":"§","¨":"¨","©":"©","ª":"ª","«":"«","¬":"¬","­":"­","®":"®","¯":"¯","°":"°","±":"±","²":"²","³":"³","´":"´","µ":"µ","¶":"¶","·":"·","¸":"¸","¹":"¹","º":"º","»":"»","¼":"¼","½":"½","¾":"¾","¿":"¿","À":"À","Á":"Á","Â":"Â","Ã":"Ã","Ä":"Ä","Å":"Å","Æ":"Æ","Ç":"Ç","È":"È","É":"É","Ê":"Ê","Ë":"Ë","Ì":"Ì","Í":"Í","Î":"Î","Ï":"Ï","Ð":"Ð","Ñ":"Ñ","Ò":"Ò","Ó":"Ó","Ô":"Ô","Õ":"Õ","Ö":"Ö","×":"×","Ø":"Ø","Ù":"Ù","Ú":"Ú","Û":"Û","Ü":"Ü","Ý":"Ý","Þ":"Þ","ß":"ß","à":"à","á":"á","â":"â","ã":"ã","ä":"ä","å":"å","æ":"æ","ç":"ç","è":"è","é":"é","ê":"ê","ë":"ë","ì":"ì","í":"í","î":"î","ï":"ï","ð":"ð","ñ":"ñ","ò":"ò","ó":"ó","ô":"ô","õ":"õ","ö":"ö","÷":"÷","ø":"ø","ù":"ù","ú":"ú","û":"û","ü":"ü","ý":"ý","þ":"þ","ÿ":"ÿ","Œ":"Œ","œ":"œ","Š":"Š","š":"š","Ÿ":"Ÿ","ƒ":"ƒ","ˆ":"ˆ","˜":"˜","Α":"Α","Β":"Β","Γ":"Γ","Δ":"Δ","Ε":"Ε","Ζ":"Ζ","Η":"Η","Θ":"Θ","Ι":"Ι","Κ":"Κ","Λ":"Λ","Μ":"Μ","Ν":"Ν","Ξ":"Ξ","Ο":"Ο","Π":"Π","Ρ":"Ρ","Σ":"Σ","Τ":"Τ","Υ":"Υ","Φ":"Φ","Χ":"Χ","Ψ":"Ψ","Ω":"Ω","α":"α","β":"β","γ":"γ","δ":"δ","ε":"ε","ζ":"ζ","η":"η","θ":"θ","ι":"ι","κ":"κ","λ":"λ","μ":"μ","ν":"ν","ξ":"ξ","ο":"ο","π":"π","ρ":"ρ","ς":"ς","σ":"σ","τ":"τ","υ":"υ","φ":"φ","χ":"χ","ψ":"ψ","ω":"ω","ϑ":"ϑ","ϒ":"ϒ","ϖ":"ϖ"," ":" "," ":" "," ":" ","‌":"‌","‍":"‍","‎":"‎","‏":"‏","–":"–","—":"—","‘":"‘","’":"’","‚":"‚","“":"“","”":"”","„":"„","†":"†","‡":"‡","•":"•","…":"…","‰":"‰","′":"′","″":"″","‹":"‹","›":"›","‾":"‾","⁄":"⁄","€":"€","ℑ":"ℑ","℘":"℘","ℜ":"ℜ","™":"™","ℵ":"ℵ","←":"←","↑":"↑","→":"→","↓":"↓","↔":"↔","↵":"↵","⇐":"⇐","⇑":"⇑","⇒":"⇒","⇓":"⇓","⇔":"⇔","∀":"∀","∂":"∂","∃":"∃","∅":"∅","∇":"∇","∈":"∈","∉":"∉","∋":"∋","∏":"∏","∑":"∑","−":"−","∗":"∗","√":"√","∝":"∝","∞":"∞","∠":"∠","∧":"∧","∨":"∨","∩":"∩","∪":"∪","∫":"∫","∴":"∴","∼":"∼","≅":"≅","≈":"≈","≠":"≠","≡":"≡","≤":"≤","≥":"≥","⊂":"⊂","⊃":"⊃","⊄":"⊄","⊆":"⊆","⊇":"⊇","⊕":"⊕","⊗":"⊗","⊥":"⊥","⋅":"⋅","⌈":"⌈","⌉":"⌉","⌊":"⌊","⌋":"⌋","⟨":"〈","⟩":"〉","◊":"◊","♠":"♠","♣":"♣","♥":"♥","♦":"♦"};this.block_tags=["a","abbr","acronym","address","area","b","base","bdo","big","blockquote","body","button","caption","cite","code","colgroup","dd","del","div","dfn","dl","dt","em","fieldset","form","head","h1","h2","h3","h4","h5","h6","html","i","iframe","ins","kbd","label","legend","li","map","noscript","object","ol","optgroup","option","p","param","pre","q","samp","script","select","small","span","strong","style","sub","sup","table","tbody","td","textarea","tfoot","th","thead","title","tr","tt","ul","var","extends"];this.inline_tags=["br","col","hr","img","input"];return this};WYMeditor.XhtmlSaxListener.prototype.shouldCloseTagAutomatically=function(tag,now_on_tag,closing){closing=closing||false;if(tag=="td"){if(closing&&now_on_tag=="tr"||!closing&&now_on_tag=="td"){return true}}else if(tag=="option"){if(closing&&now_on_tag=="select"||!closing&&now_on_tag=="option"){return true}}return false};WYMeditor.XhtmlSaxListener.prototype.beforeParsing=function(raw){this.output="";this._insert_before_closing=[];this._insert_after_closing=[];this._open_tags={};this._tag_stack=[];this._last_node_was_text=false;this._lastTagRemoved=false;this.last_tag=null;return raw};WYMeditor.XhtmlSaxListener.prototype.afterParsing=function(xhtml){xhtml=this.replaceNamedEntities(xhtml);xhtml=this.joinRepeatedEntities(xhtml);xhtml=this.removeEmptyTags(xhtml);xhtml=this.removeBrInPre(xhtml);return xhtml};WYMeditor.XhtmlSaxListener.prototype.replaceNamedEntities=function(xhtml){for(var entity in this.entities){xhtml=xhtml.replace(new RegExp(entity,"g"),this.entities[entity])}return xhtml};WYMeditor.XhtmlSaxListener.prototype.joinRepeatedEntities=function(xhtml){var tags="em|strong|sub|sup|acronym|pre|del|address";return xhtml.replace(new RegExp("<\\1>",""),"").replace(new RegExp("(s*<("+tags+")>s*){2}(.*)(s*s*){2}",""),"<$2>$3<$2>")};WYMeditor.XhtmlSaxListener.prototype.removeEmptyTags=function(xhtml){return xhtml.replace(new RegExp("<("+this.block_tags.join("|").replace(/\|td/,"").replace(/\|th/,"")+")>(
      | | |\\s)*","g"),"")};WYMeditor.XhtmlSaxListener.prototype.removeBrInPre=function(xhtml){var matches=xhtml.match(new RegExp("]*>(.*?)","gmi"));if(matches){for(var i=0;i","g"),String.fromCharCode(13,10)))}}return xhtml};WYMeditor.XhtmlSaxListener.prototype.getResult=function(){return this.output};WYMeditor.XhtmlSaxListener.prototype.getTagReplacements=function(){return{b:"strong",i:"em"}};WYMeditor.XhtmlSaxListener.prototype.getTagForStyle=function(style){if(/sub/.test(style)){return"sub"}else if(/super/.test(style)){return"sup"}else if(/bold/.test(style)){return"strong"}else if(/italic/.test(style)){return"em"}return false};WYMeditor.XhtmlSaxListener.prototype.addContent=function(text){if(this.last_tag&&this.last_tag=="li"){text=text.replace(/(\r|\n|\r\n)+$/g,"");text=text.replace(/(\r|\n|\r\n)+/g," ")}if(text.replace(/^\s+|\s+$/g,"").length>0){this._last_node_was_text=true}if(!this._insideTagToRemove){this.output+=text}};WYMeditor.XhtmlSaxListener.prototype.addComment=function(text){if(this.remove_comments||this._insideTagToRemove){return}this.output+=text};WYMeditor.XhtmlSaxListener.prototype.addScript=function(text){if(this.remove_scripts||this._insideTagToRemove){return}this.output+=text};WYMeditor.XhtmlSaxListener.prototype.addCss=function(text){if(this.remove_embeded_styles||this._insideTagToRemove){return}this.output+=text};WYMeditor.XhtmlSaxListener.prototype.openBlockTag=function(tag,attributes){this._last_node_was_text=false;if(this._insideTagToRemove){return}if(this._shouldRemoveTag(tag,attributes)){this._insideTagToRemove=true;this._removedTagStackIndex=this._tag_stack.length-1;return}attributes=this.validator.getValidTagAttributes(tag,attributes);attributes=this.removeUnwantedClasses(attributes);if(tag==="span"&&attributes.style){var new_tag=this.getTagForStyle(attributes.style);if(new_tag){tag=new_tag;this._tag_stack.pop();this._tag_stack.push(tag);attributes.style=""}}this.output+=this.helper.tag(tag,attributes,true);this._lastTagRemoved=false};WYMeditor.XhtmlSaxListener.prototype.inlineTag=function(tag,attributes){this._last_node_was_text=false;if(this._insideTagToRemove||this._shouldRemoveTag(tag,attributes)){return}attributes=this.validator.getValidTagAttributes(tag,attributes);attributes=this.removeUnwantedClasses(attributes);this.output+=this.helper.tag(tag,attributes);this._lastTagRemoved=false};WYMeditor.XhtmlSaxListener.prototype.openUnknownTag=function(tag,attributes){};WYMeditor.XhtmlSaxListener.prototype.closeBlockTag=function(tag){this._last_node_was_text=false;if(this._insideTagToRemove){if(this._tag_stack.length===this._removedTagStackIndex){this._insideTagToRemove=false}this._lastTagRemoved=true;return}this.output=this.output.replace(/
      $/,"")+this._getClosingTagContent("before",tag)+""+this._getClosingTagContent("after",tag)};WYMeditor.XhtmlSaxListener.prototype.closeUnknownTag=function(tag){};WYMeditor.XhtmlSaxListener.prototype.closeUnopenedTag=function(tag){this._last_node_was_text=false;if(this._insideTagToRemove){return}if(tag==="li"&&this._extraLIClosingTags){this._extraLIClosingTags--}else{this.output+=""}};WYMeditor.XhtmlSaxListener.prototype.avoidStylingTagsAndAttributes=function(){this.avoided_tags=["div","span"];this.validator.skiped_attributes=["style"];this.validator.skiped_attribute_values=["MsoNormal","main1"];this._avoiding_tags_implicitly=true};WYMeditor.XhtmlSaxListener.prototype.allowStylingTagsAndAttributes=function(){this.avoided_tags=[];this.validator.skiped_attributes=[];this.validator.skiped_attribute_values=[];this._avoiding_tags_implicitly=false};WYMeditor.XhtmlSaxListener.prototype.isBlockTag=function(tag){return!WYMeditor.Helper.contains(this.avoided_tags,tag)&&WYMeditor.Helper.contains(this.block_tags,tag)};WYMeditor.XhtmlSaxListener.prototype.isInlineTag=function(tag){return!WYMeditor.Helper.contains(this.avoided_tags,tag)&&WYMeditor.Helper.contains(this.inline_tags,tag)};WYMeditor.XhtmlSaxListener.prototype.insertContentAfterClosingTag=function(tag,content){this._insertContentWhenClosingTag("after",tag,content)};WYMeditor.XhtmlSaxListener.prototype.insertContentBeforeClosingTag=function(tag,content){this._insertContentWhenClosingTag("before",tag,content)};WYMeditor.XhtmlSaxListener.prototype.removeUnwantedClasses=function(attributes){var pattern,i;if(!attributes["class"]){return attributes}for(i=0;i\s*$/,"");this.insertContentAfterClosingTag(tag,"")}}else if((tag=="ul"||tag=="ol")&&this.last_tag&&this.last_tag_opened&&(this.last_tag=="ul"||this.last_tag=="ol")){if(!this._shouldRemoveTag(tag,attributes)){this.output+=this.helper.tag("li",{},true);this.insertContentAfterClosingTag(tag,"")}this._last_node_was_text=false}else if(tag=="li"){if(this._tag_stack.length>=2){var closestOpenTag=this._tag_stack[this._tag_stack.length-2];if(closestOpenTag=="li"&&!this._shouldRemoveTag(tag,attributes)){this._open_tags.li-=1;if(this._open_tags.li===0){this._open_tags.li=undefined}this._tag_stack.splice(this._tag_stack.length-2,1);this._last_node_was_text=false;if(!this._insideTagToRemove){this.output+=""}else if(this._tag_stack.length-1===this._removedTagStackIndex){this._insideTagToRemove=false;this._lastTagRemoved=true;this._extraLIClosingTags++}}}}};WYMeditor.XhtmlSaxListener.prototype._insertContentWhenClosingTag=function(position,tag,content){if(!this["_insert_"+position+"_closing"]){this["_insert_"+position+"_closing"]=[]}if(!this["_insert_"+position+"_closing"][tag]){this["_insert_"+position+"_closing"][tag]=[]}this["_insert_"+position+"_closing"][tag].push(content)};WYMeditor.XhtmlSaxListener.prototype._getClosingTagContent=function(position,tag){if(this["_insert_"+position+"_closing"]&&this["_insert_"+position+"_closing"][tag]&&this["_insert_"+position+"_closing"][tag].length>0){return this["_insert_"+position+"_closing"][tag].pop()}return""};WYMeditor.XhtmlSaxListener.prototype._shouldRemoveTag=function(tag,attributes){var classes;if(!attributes["class"]){return false}classes=attributes["class"].split(" ");if(jQuery.inArray(WYMeditor.EDITOR_ONLY_CLASS,classes)>-1){return true}return false};WYMeditor.WymCssLexer=function(parser,only_wym_blocks){only_wym_blocks=typeof only_wym_blocks=="undefined"?true:only_wym_blocks;jQuery.extend(this,new WYMeditor.Lexer(parser,only_wym_blocks?"Ignore":"WymCss"));this.mapHandler("WymCss","Ignore");if(only_wym_blocks===true){this.addEntryPattern("/\\*[<\\s]*WYMeditor[>\\s]*\\*/","Ignore","WymCss");this.addExitPattern("/\\*[\\s]*\\*/","WymCss")}this.addSpecialPattern("[\\sa-z1-6]*\\.[a-z-_0-9]+","WymCss","WymCssStyleDeclaration");this.addEntryPattern("/\\*","WymCss","WymCssComment");this.addExitPattern("\\*/","WymCssComment");this.addEntryPattern("{","WymCss","WymCssStyle");this.addExitPattern("}","WymCssStyle");this.addEntryPattern("/\\*","WymCssStyle","WymCssFeedbackStyle");this.addExitPattern("\\*/","WymCssFeedbackStyle");return this};WYMeditor.WymCssParser=function(){this._in_style=false;this._has_title=false;this.only_wym_blocks=true;this.css_settings={classesItems:[],editorStyles:[],dialogStyles:[]};return this};WYMeditor.WymCssParser.prototype.parse=function(raw,only_wym_blocks){only_wym_blocks=typeof only_wym_blocks=="undefined"?this.only_wym_blocks:only_wym_blocks;this._Lexer=new WYMeditor.WymCssLexer(this,only_wym_blocks);this._Lexer.parse(raw)};WYMeditor.WymCssParser.prototype.Ignore=function(match,state){return true};WYMeditor.WymCssParser.prototype.WymCssComment=function(text,status){if(text.match(/end[a-z0-9\s]*wym[a-z0-9\s]*/im)){return false}if(status==WYMeditor.LEXER_UNMATCHED){if(!this._in_style){this._has_title=true;this._current_item={title:WYMeditor.Helper.trim(text)}}else{if(this._current_item[this._current_element]){if(!this._current_item[this._current_element].expressions){this._current_item[this._current_element].expressions=[text]}else{this._current_item[this._current_element].expressions.push(text)}}}this._in_style=true}return true};WYMeditor.WymCssParser.prototype.WymCssStyle=function(match,status){if(status==WYMeditor.LEXER_UNMATCHED){match=WYMeditor.Helper.trim(match);if(match!==""){this._current_item[this._current_element].style=match}}else if(status==WYMeditor.LEXER_EXIT){this._in_style=false;this._has_title=false;this.addStyleSetting(this._current_item)}return true};WYMeditor.WymCssParser.prototype.WymCssFeedbackStyle=function(match,status){if(status==WYMeditor.LEXER_UNMATCHED){this._current_item[this._current_element].feedback_style=match.replace(/^([\s\/\*]*)|([\s\/\*]*)$/gm,"")}return true};WYMeditor.WymCssParser.prototype.WymCssStyleDeclaration=function(match){match=match.replace(/^([\s\.]*)|([\s\.*]*)$/gm,"");var tag="";if(match.indexOf(".")>0){var parts=match.split(".");this._current_element=parts[1];tag=parts[0]}else{this._current_element=match}if(!this._has_title){this._current_item={title:(!tag?"":tag.toUpperCase()+": ")+this._current_element};this._has_title=true}if(!this._current_item[this._current_element]){this._current_item[this._current_element]={name:this._current_element}}if(tag){if(!this._current_item[this._current_element].tags){this._current_item[this._current_element].tags=[tag]}else{this._current_item[this._current_element].tags.push(tag)}}return true};WYMeditor.WymCssParser.prototype.addStyleSetting=function(style_details){for(var name in style_details){var details=style_details[name];if(typeof details=="object"&&name!="title"){this.css_settings.classesItems.push({name:WYMeditor.Helper.trim(details.name),title:style_details.title,expr:WYMeditor.Helper.trim((details.expressions||details.tags).join(", "))});if(details.feedback_style){this.css_settings.editorStyles.push({name:"."+WYMeditor.Helper.trim(details.name),css:details.feedback_style})}if(details.style){this.css_settings.dialogStyles.push({name:"."+WYMeditor.Helper.trim(details.name),css:details.style})}}}};