(function(){UEDITOR_CONFIG=window.UEDITOR_CONFIG||{};var baidu=window.baidu||{};window.baidu=baidu;window.UE=baidu.editor={};UE.plugins={};UE.commands={};UE.version="1.2.2.0";var dom=UE.dom={};var browser=UE.browser=function(){var agent=navigator.userAgent.toLowerCase(),opera=window.opera,browser={ie:!!window.ActiveXObject,opera:(!!opera&&opera.version),webkit:(agent.indexOf(" applewebkit/")>-1),mac:(agent.indexOf("macintosh")>-1),quirks:(document.compatMode=="BackCompat")};browser.gecko=(navigator.product=="Gecko"&&!browser.webkit&&!browser.opera);var version=0;if(browser.ie){version=parseFloat(agent.match(/msie (\d+)/)[1]);browser.ie8=!!document.documentMode;browser.ie8Compat=document.documentMode==8;browser.ie7Compat=((version==7&&!document.documentMode)||document.documentMode==7);browser.ie6Compat=(version<7||browser.quirks);}if(browser.gecko){var geckoRelease=agent.match(/rv:([\d\.]+)/);if(geckoRelease){geckoRelease=geckoRelease[1].split(".");version=geckoRelease[0]*10000+(geckoRelease[1]||0)*100+(geckoRelease[2]||0)*1;}}if(/chrome\/(\d+\.\d)/i.test(agent)){browser.chrome=+RegExp["\x241"];}if(/(\d+\.\d)?(?:\.\d)?\s+safari\/?(\d+\.\d+)?/i.test(agent)&&!/chrome/i.test(agent)){browser.safari=+(RegExp["\x241"]||RegExp["\x242"]);}if(browser.opera){version=parseFloat(opera.version());}if(browser.webkit){version=parseFloat(agent.match(/ applewebkit\/(\d+)/)[1]);}browser.version=version;browser.isCompatible=!browser.mobile&&((browser.ie&&version>=6)||(browser.gecko&&version>=10801)||(browser.opera&&version>=9.5)||(browser.air&&version>=1)||(browser.webkit&&version>=522)||false);return browser;}();var ie=browser.ie,webkit=browser.webkit,gecko=browser.gecko;var utils=UE.utils={makeInstance:function(obj){var noop=new Function();noop.prototype=obj;obj=new noop;noop.prototype=null;return obj;},extend:function(t,s,b){if(s){for(var k in s){if(!b||!t.hasOwnProperty(k)){t[k]=s[k];}}}return t;},isArray:function(array){return Object.prototype.toString.apply(array)==="[object Array]";},isString:function(str){return typeof str=="string"||str.constructor==String;},inherits:function(subClass,superClass){var oldP=subClass.prototype,newP=utils.makeInstance(superClass.prototype);utils.extend(newP,oldP,true);subClass.prototype=newP;return(newP.constructor=subClass);},bind:function(fn,this_){return function(){return fn.apply(this_,arguments);};},defer:function(fn,delay,exclusion){var timerID;return function(){if(exclusion){clearTimeout(timerID);}timerID=setTimeout(fn,delay);};},indexOf:function(array,item,at){for(var i=at||0,l=array.length;i]/g,function(m){return{"<":"<","&":"&",'"':""",">":">"}[m];}):"";},html:function(str){return str?str.replace(/&((g|l|quo)t|amp);/g,function(m){return{"<":"<","&":"&",""":'"',">":">"}[m];}):"";},cssStyleToDomStyle:function(){var test=document.createElement("div").style,cache={"float":test.cssFloat!=undefined?"cssFloat":test.styleFloat!=undefined?"styleFloat":"float"};return function(cssName){return cache[cssName]||(cache[cssName]=cssName.toLowerCase().replace(/-./g,function(match){return match.charAt(1).toUpperCase();}));};}(),loadFile:function(doc,obj,fun){if(obj.id&&doc.getElementById(obj.id)){return;}var element=doc.createElement(obj.tag);delete obj.tag;for(var p in obj){element.setAttribute(p,obj[p]);}element.onload=element.onreadystatechange=function(){if(!this.readyState||/loaded|complete/.test(this.readyState)){fun&&fun();element.onload=element.onreadystatechange=null;}};doc.getElementsByTagName("head")[0].appendChild(element);},isEmptyObject:function(obj){for(var p in obj){return false;}return true;},isFunction:function(source){return"[object Function]"==Object.prototype.toString.call(source);},fixColor:function(name,value){if(/color/i.test(name)&&/rgba?/.test(value)){var array=value.split(",");if(array.length>3){return"";}value="#";for(var i=0,color;color=array[i++];){color=parseInt(color.replace(/[^\d]/gi,""),10).toString(16);value+=color.length==1?"0"+color:color;}value=value.toUpperCase();}return value;},optCss:function(val){var padding,margin,border;val=val.replace(/(padding|margin|border)\-([^:]+):([^;]+);?/gi,function(str,key,name,val){if(val.split(" ").length==1){switch(key){case"padding":!padding&&(padding={});padding[name]=val;return"";case"margin":!margin&&(margin={});margin[name]=val;return"";case"border":return val=="initial"?"":str;}}return str;});function opt(obj,name){if(!obj){return"";}var t=obj.top,b=obj.bottom,l=obj.left,r=obj.right,val="";if(!t||!l||!b||!r){for(var p in obj){val+=";"+name+"-"+p+":"+obj[p]+";";}}else{val+=";"+name+":"+(t==b&&b==l&&l==r?t:t==b&&l==r?(t+" "+l):l==r?(t+" "+l+" "+b):(t+" "+r+" "+b+" "+l))+";";}return val;}val+=opt(padding,"padding")+opt(margin,"margin");return val.replace(/^[ \n\r\t;]*|[ \n\r\t]*$/,"").replace(/;([ \n\r\t]+)|\1;/g,";").replace(/(&((l|g)t|quot|#39))?;{2,}/g,function(a,b){return b?b+";;":";";});},domReady:function(){var isReady=false,fnArr=[];function doReady(){isReady=true;for(var ci;ci=fnArr.pop();){ci();}}return function(onready){if(document.readyState==="complete"){return setTimeout(onready,1);}onready&&fnArr.push(onready);isReady&&doReady();if(browser.ie){(function(){if(isReady){return;}try{document.documentElement.doScroll("left");}catch(error){setTimeout(arguments.callee,0);return;}doReady();})();window.attachEvent("onload",doReady);}else{document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);doReady();},false);window.addEventListener("load",doReady,false);}};}()};utils.domReady();var EventBase=UE.EventBase=function(){};EventBase.prototype={addListener:function(type,listener){getListener(this,type,true).push(listener);},removeListener:function(type,listener){var listeners=getListener(this,type);listeners&&utils.removeItem(listeners,listener);},fireEvent:function(type){var listeners=getListener(this,type),r,t,k;if(listeners){k=listeners.length;while(k--){t=listeners[k].apply(this,arguments);if(t!==undefined){r=t;}}}if(t=this["on"+type.toLowerCase()]){r=t.apply(this,arguments);}return r;}};function getListener(obj,type,force){var allListeners;type=type.toLowerCase();return((allListeners=(obj.__allListeners||force&&(obj.__allListeners={})))&&(allListeners[type]||force&&(allListeners[type]=[])));}var dtd=dom.dtd=(function(){function _(s){for(var k in s){s[k.toUpperCase()]=s[k];}return s;}function X(t){var a=arguments;for(var i=1;i1||parent!==node.parentNode){node.style.cssText=parent.style.cssText+";"+node.style.cssText;parent=parent.parentNode;continue;}else{parent.style.cssText+=";"+node.style.cssText;if(parent.tagName=="A"){parent.style.textDecoration="underline";}}}if(parent.tagName!="A"){parent===node.parentNode&&domUtils.remove(node,true);break;}}parent=parent.parentNode;}},mergSibling:function(node,ingorePre,ingoreNext){function merg(rtl,start,node){var next;if((next=node[rtl])&&!domUtils.isBookmarkNode(next)&&next.nodeType==1&&domUtils.isSameElement(node,next)){while(next.firstChild){if(start=="firstChild"){node.insertBefore(next.lastChild,node.firstChild);}else{node.appendChild(next.firstChild);}}domUtils.remove(next);}}!ingorePre&&merg("previousSibling","firstChild",node);!ingoreNext&&merg("nextSibling","lastChild",node);},unselectable:gecko?function(node){node.style.MozUserSelect="none";}:webkit?function(node){node.style.KhtmlUserSelect="none";}:function(node){node.onselectstart=function(){return false;};node.onclick=node.onkeyup=node.onkeydown=function(){return false;};node.unselectable="on";node.setAttribute("unselectable","on");for(var i=0,ci;ci=node.all[i++];){switch(ci.tagName.toLowerCase()){case"iframe":case"textarea":case"input":case"select":break;default:ci.unselectable="on";node.setAttribute("unselectable","on");}}},removeAttributes:function(elm,attrNames){for(var i=0,ci;ci=attrNames[i++];){ci=attrFix[ci]||ci;switch(ci){case"className":elm[ci]="";break;case"style":elm.style.cssText="";!browser.ie&&elm.removeAttributeNode(elm.getAttributeNode("style"));}elm.removeAttribute(ci);}},creElm:function(doc,tag,attrs){return this.setAttributes(doc.createElement(tag),attrs);},setAttributes:function(node,attrs){for(var name in attrs){var value=attrs[name];switch(name){case"class":node.className=value;break;case"style":node.style.cssText=node.style.cssText+";"+value;break;case"innerHTML":node[name]=value;break;case"value":node.value=value;break;default:node.setAttribute(attrFix[name]||name,value);}}return node;},getComputedStyle:function(element,styleName){function fixUnit(key,val){if(key=="font-size"&&/pt$/.test(val)){val=Math.round(parseFloat(val)/0.75)+"px";}return val;}if(element.nodeType==3){element=element.parentNode;}if(browser.ie&&browser.version<9&&styleName=="font-size"&&!element.style.fontSize&&!dtd.$empty[element.tagName]&&!dtd.$nonChild[element.tagName]){var span=element.ownerDocument.createElement("span");span.style.cssText="padding:0;border:0;font-family:simsun;";span.innerHTML=".";element.appendChild(span);var result=span.offsetHeight;element.removeChild(span);span=null;return result+"px";}try{var value=domUtils.getStyle(element,styleName)||(window.getComputedStyle?domUtils.getWindow(element).getComputedStyle(element,"").getPropertyValue(styleName):(element.currentStyle||element.style)[utils.cssStyleToDomStyle(styleName)]);}catch(e){return null;}return fixUnit(styleName,utils.fixColor(styleName,value));},removeClasses:function(element,classNames){element.className=(" "+element.className+" ").replace(new RegExp("(?:\\s+(?:"+classNames.join("|")+"))+\\s+","g")," ");},removeStyle:function(node,name){node.style[utils.cssStyleToDomStyle(name)]="";if(!node.style.cssText){domUtils.removeAttributes(node,["style"]);}},hasClass:function(element,className){return(" "+element.className+" ").indexOf(" "+className+" ")>-1;},preventDefault:function(evt){evt.preventDefault?evt.preventDefault():(evt.returnValue=false);},getStyle:function(element,name){var value=element.style[utils.cssStyleToDomStyle(name)];return utils.fixColor(name,value);},setStyle:function(element,name,value){element.style[utils.cssStyleToDomStyle(name)]=value;},setStyles:function(element,styles){for(var name in styles){if(styles.hasOwnProperty(name)){domUtils.setStyle(element,name,styles[name]);}}},removeDirtyAttr:function(node){for(var i=0,ci,nodes=node.getElementsByTagName("*");ci=nodes[i++];){ci.removeAttribute("_moz_dirty");}node.removeAttribute("_moz_dirty");},getChildCount:function(node,fn){var count=0,first=node.firstChild;fn=fn||function(){return 1;};while(first){if(fn(first)){count++;}first=first.nextSibling;}return count;},isEmptyNode:function(node){return !node.firstChild||domUtils.getChildCount(node,function(node){return !domUtils.isBr(node)&&!domUtils.isBookmarkNode(node)&&!domUtils.isWhitespace(node);})==0;},clearSelectedArr:function(nodes){var node;while(node=nodes.pop()){domUtils.removeAttributes(node,["class"]);}},scrollToView:function(node,win,offsetTop){var getViewPaneSize=function(){var doc=win.document,mode=doc.compatMode=="CSS1Compat";return{width:(mode?doc.documentElement.clientWidth:doc.body.clientWidth)||0,height:(mode?doc.documentElement.clientHeight:doc.body.clientHeight)||0};},getScrollPosition=function(win){if("pageXOffset" in win){return{x:win.pageXOffset||0,y:win.pageYOffset||0};}else{var doc=win.document;return{x:doc.documentElement.scrollLeft||doc.body.scrollLeft||0,y:doc.documentElement.scrollTop||doc.body.scrollTop||0};}};var winHeight=getViewPaneSize().height,offset=winHeight*-1+offsetTop;offset+=(node.offsetHeight||0);var elementPosition=domUtils.getXY(node);offset+=elementPosition.y;var currentScroll=getScrollPosition(win).y;if(offset>currentScroll||offset0){return 0;}for(var n in dtd.$isNotEmpty){if(node.getElementsByTagName(n).length){return 0;}}return 1;},setViewportOffset:function(element,offset){var left=parseInt(element.style.left)|0;var top=parseInt(element.style.top)|0;var rect=element.getBoundingClientRect();var offsetLeft=offset.left-rect.left;var offsetTop=offset.top-rect.top;if(offsetLeft){element.style.left=left+offsetLeft+"px";}if(offsetTop){element.style.top=top+offsetTop+"px";}},fillNode:function(doc,node){var tmpNode=browser.ie?doc.createTextNode(domUtils.fillChar):doc.createElement("br");node.innerHTML="";node.appendChild(tmpNode);},moveChild:function(src,tag,dir){while(src.firstChild){if(dir&&tag.firstChild){tag.insertBefore(src.lastChild,tag.firstChild);}else{tag.appendChild(src.firstChild);}}},hasNoAttributes:function(node){return browser.ie?/^<\w+\s*?>/.test(node.outerHTML):node.attributes.length==0;},isCustomeNode:function(node){return node.nodeType==1&&node.getAttribute("_ue_div_script");}};var fillCharReg=new RegExp(domUtils.fillChar,"g");(function(){var guid=0,fillChar=domUtils.fillChar,fillData;function updateCollapse(range){range.collapsed=range.startContainer&&range.endContainer&&range.startContainer===range.endContainer&&range.startOffset==range.endOffset;}function setEndPoint(toStart,node,offset,range){if(node.nodeType==1&&(dtd.$empty[node.tagName]||dtd.$nonChild[node.tagName])){offset=domUtils.getNodeIndex(node)+(toStart?0:1);node=node.parentNode;}if(toStart){range.startContainer=node;range.startOffset=offset;if(!range.endContainer){range.collapse(true);}}else{range.endContainer=node;range.endOffset=offset;if(!range.startContainer){range.collapse(false);}}updateCollapse(range);return range;}function execContentsAction(range,action){var start=range.startContainer,end=range.endContainer,startOffset=range.startOffset,endOffset=range.endOffset,doc=range.document,frag=doc.createDocumentFragment(),tmpStart,tmpEnd;if(start.nodeType==1){start=start.childNodes[startOffset]||(tmpStart=start.appendChild(doc.createTextNode("")));}if(end.nodeType==1){end=end.childNodes[endOffset]||(tmpEnd=end.appendChild(doc.createTextNode("")));}if(start===end&&start.nodeType==3){frag.appendChild(doc.createTextNode(start.substringData(startOffset,endOffset-startOffset)));if(action){start.deleteData(startOffset,endOffset-startOffset);range.collapse(true);}return frag;}var current,currentLevel,clone=frag,startParents=domUtils.findParents(start,true),endParents=domUtils.findParents(end,true);for(var i=0;startParents[i]==endParents[i];i++){}for(var j=i,si;si=startParents[j];j++){current=si.nextSibling;if(si==start){if(!tmpStart){if(range.startContainer.nodeType==3){clone.appendChild(doc.createTextNode(start.nodeValue.slice(startOffset)));if(action){start.deleteData(startOffset,start.nodeValue.length-startOffset);}}else{clone.appendChild(!action?start.cloneNode(true):start);}}}else{currentLevel=si.cloneNode(false);clone.appendChild(currentLevel);}while(current){if(current===end||current===endParents[j]){break;}si=current.nextSibling;clone.appendChild(!action?current.cloneNode(true):current);current=si;}clone=currentLevel;}clone=frag;if(!startParents[i]){clone.appendChild(startParents[i-1].cloneNode(false));clone=clone.firstChild;}for(var j=i,ei;ei=endParents[j];j++){current=ei.previousSibling;if(ei==end){if(!tmpEnd&&range.endContainer.nodeType==3){clone.appendChild(doc.createTextNode(end.substringData(0,endOffset)));if(action){end.deleteData(0,endOffset);}}}else{currentLevel=ei.cloneNode(false);clone.appendChild(currentLevel);}if(j!=i||!startParents[i]){while(current){if(current===start){break;}ei=current.previousSibling;clone.insertBefore(!action?current.cloneNode(true):current,clone.firstChild);current=ei;}}clone=currentLevel;}if(action){range.setStartBefore(!endParents[i]?endParents[i-1]:!startParents[i]?startParents[i-1]:endParents[i]).collapse(true);}tmpStart&&domUtils.remove(tmpStart);tmpEnd&&domUtils.remove(tmpEnd);return frag;}var Range=dom.Range=function(document){var me=this;me.startContainer=me.startOffset=me.endContainer=me.endOffset=null;me.document=document;me.collapsed=true;};function removeFillData(doc,excludeNode){try{if(fillData&&domUtils.inDoc(fillData,doc)){if(!fillData.nodeValue.replace(fillCharReg,"").length){var tmpNode=fillData.parentNode;domUtils.remove(fillData);while(tmpNode&&domUtils.isEmptyInlineElement(tmpNode)&&!tmpNode.contains(excludeNode)){fillData=tmpNode.parentNode;domUtils.remove(tmpNode);tmpNode=fillData;}}else{fillData.nodeValue=fillData.nodeValue.replace(fillCharReg,"");}}}catch(e){}}function mergSibling(node,dir){var tmpNode;node=node[dir];while(node&&domUtils.isFillChar(node)){tmpNode=node[dir];domUtils.remove(node);node=tmpNode;}}Range.prototype={cloneContents:function(){return this.collapsed?null:execContentsAction(this,0);},deleteContents:function(){if(!this.collapsed){execContentsAction(this,1);}if(browser.webkit){var txt=this.startContainer;if(txt.nodeType==3&&!txt.nodeValue.length){this.setStartBefore(txt).collapse(true);domUtils.remove(txt);}}return this;},extractContents:function(){return this.collapsed?null:execContentsAction(this,2);},setStart:function(node,offset){return setEndPoint(true,node,offset,this);},setEnd:function(node,offset){return setEndPoint(false,node,offset,this);},setStartAfter:function(node){return this.setStart(node.parentNode,domUtils.getNodeIndex(node)+1);},setStartBefore:function(node){return this.setStart(node.parentNode,domUtils.getNodeIndex(node));},setEndAfter:function(node){return this.setEnd(node.parentNode,domUtils.getNodeIndex(node)+1);},setStartAtFirst:function(node){return this.setStart(node,0);},setStartAtLast:function(node){return this.setStart(node,node.nodeType==3?node.nodeValue.length:node.childNodes.length);},setEndAtFirst:function(node){return this.setEnd(node,0);},setEndAtLast:function(node){return this.setEnd(node,node.nodeType==3?node.nodeValue.length:node.childNodes.length);},setEndBefore:function(node){return this.setEnd(node.parentNode,domUtils.getNodeIndex(node));},selectNode:function(node){return this.setStartBefore(node).setEndAfter(node);},selectNodeContents:function(node){return this.setStart(node,0).setEnd(node,node.nodeType==3?node.nodeValue.length:node.childNodes.length);},cloneRange:function(){var me=this,range=new Range(me.document);return range.setStart(me.startContainer,me.startOffset).setEnd(me.endContainer,me.endOffset);},collapse:function(toStart){var me=this;if(toStart){me.endContainer=me.startContainer;me.endOffset=me.startOffset;}else{me.startContainer=me.endContainer;me.startOffset=me.endOffset;}me.collapsed=true;return me;},shrinkBoundary:function(ignoreEnd){var me=this,child,collapsed=me.collapsed;while(me.startContainer.nodeType==1&&(child=me.startContainer.childNodes[me.startOffset])&&child.nodeType==1&&!domUtils.isBookmarkNode(child)&&!dtd.$empty[child.tagName]&&!dtd.$nonChild[child.tagName]){me.setStart(child,0);}if(collapsed){return me.collapse(true);}if(!ignoreEnd){while(me.endContainer.nodeType==1&&me.endOffset>0&&(child=me.endContainer.childNodes[me.endOffset-1])&&child.nodeType==1&&!domUtils.isBookmarkNode(child)&&!dtd.$empty[child.tagName]&&!dtd.$nonChild[child.tagName]){me.setEnd(child,child.childNodes.length);}}return me;},getCommonAncestor:function(includeSelf,ignoreTextNode){var start=this.startContainer,end=this.endContainer;if(start===end){if(includeSelf&&start.nodeType==1&&this.startOffset==this.endOffset-1){return start.childNodes[this.startOffset];}return ignoreTextNode&&start.nodeType==3?start.parentNode:start;}return domUtils.getCommonAncestor(start,end);},trimBoundary:function(ignoreEnd){this.txtToElmBoundary();var start=this.startContainer,offset=this.startOffset,collapsed=this.collapsed,end=this.endContainer;if(start.nodeType==3){if(offset==0){this.setStartBefore(start);}else{if(offset>=start.nodeValue.length){this.setStartAfter(start);}else{var textNode=domUtils.split(start,offset);if(start===end){this.setEnd(textNode,this.endOffset-offset);}else{if(start.parentNode===end){this.endOffset+=1;}}this.setStartBefore(textNode);}}if(collapsed){return this.collapse(true);}}if(!ignoreEnd){offset=this.endOffset;end=this.endContainer;if(end.nodeType==3){if(offset==0){this.setEndBefore(end);}else{if(offset>=end.nodeValue.length){this.setEndAfter(end);}else{domUtils.split(end,offset);this.setEndAfter(end);}}}}return this;},txtToElmBoundary:function(){function adjust(r,c){var container=r[c+"Container"],offset=r[c+"Offset"];if(container.nodeType==3){if(!offset){r["set"+c.replace(/(\w)/,function(a){return a.toUpperCase();})+"Before"](container);}else{if(offset>=container.nodeValue.length){r["set"+c.replace(/(\w)/,function(a){return a.toUpperCase();})+"After"](container);}}}}if(!this.collapsed){adjust(this,"start");adjust(this,"end");}return this;},insertNode:function(node){var first=node,length=1;if(node.nodeType==11){first=node.firstChild;length=node.childNodes.length;}this.trimBoundary(true);var start=this.startContainer,offset=this.startOffset;var nextNode=start.childNodes[offset];if(nextNode){start.insertBefore(node,nextNode);}else{start.appendChild(node);}if(first.parentNode===this.endContainer){this.endOffset=this.endOffset+length;}return this.setStartBefore(first);},setCursor:function(toEnd,notFillData){return this.collapse(toEnd?false:true).select(notFillData);},createBookmark:function(serialize,same){var endNode,startNode=this.document.createElement("span");startNode.style.cssText="display:none;line-height:0px;";startNode.appendChild(this.document.createTextNode("\uFEFF"));startNode.id="_baidu_bookmark_start_"+(same?"":guid++);if(!this.collapsed){endNode=startNode.cloneNode(true);endNode.id="_baidu_bookmark_end_"+(same?"":guid++);}this.insertNode(startNode);if(endNode){this.collapse(false).insertNode(endNode);this.setEndBefore(endNode);}this.setStartAfter(startNode);return{start:serialize?startNode.id:startNode,end:endNode?serialize?endNode.id:endNode:null,id:serialize};},moveToBookmark:function(bookmark){var start=bookmark.id?this.document.getElementById(bookmark.start):bookmark.start,end=bookmark.end&&bookmark.id?this.document.getElementById(bookmark.end):bookmark.end;this.setStartBefore(start);domUtils.remove(start);if(end){this.setEndBefore(end);domUtils.remove(end);}else{this.collapse(true);}return this;},enlarge:function(toBlock,stopFn){var isBody=domUtils.isBody,pre,node,tmp=this.document.createTextNode("");if(toBlock){node=this.startContainer;if(node.nodeType==1){if(node.childNodes[this.startOffset]){pre=node=node.childNodes[this.startOffset];}else{node.appendChild(tmp);pre=node=tmp;}}else{pre=node;}while(1){if(domUtils.isBlockElm(node)){node=pre;while((pre=node.previousSibling)&&!domUtils.isBlockElm(pre)){node=pre;}this.setStartBefore(node);break;}pre=node;node=node.parentNode;}node=this.endContainer;if(node.nodeType==1){if(pre=node.childNodes[this.endOffset]){node.insertBefore(tmp,pre);}else{node.appendChild(tmp);}pre=node=tmp;}else{pre=node;}while(1){if(domUtils.isBlockElm(node)){node=pre;while((pre=node.nextSibling)&&!domUtils.isBlockElm(pre)){node=pre;}this.setEndAfter(node);break;}pre=node;node=node.parentNode;}if(tmp.parentNode===this.endContainer){this.endOffset--;}domUtils.remove(tmp);}if(!this.collapsed){while(this.startOffset==0){if(stopFn&&stopFn(this.startContainer)){break;}if(isBody(this.startContainer)){break;}this.setStartBefore(this.startContainer);}while(this.endOffset==(this.endContainer.nodeType==1?this.endContainer.childNodes.length:this.endContainer.nodeValue.length)){if(stopFn&&stopFn(this.endContainer)){break;}if(isBody(this.endContainer)){break;}this.setEndAfter(this.endContainer);}}return this;},adjustmentBoundary:function(){if(!this.collapsed){while(!domUtils.isBody(this.startContainer)&&this.startOffset==this.startContainer[this.startContainer.nodeType==3?"nodeValue":"childNodes"].length){this.setStartAfter(this.startContainer);}while(!domUtils.isBody(this.endContainer)&&!this.endOffset){this.setEndBefore(this.endContainer);}}return this;},applyInlineStyle:function(tagName,attrs,list){if(this.collapsed){return this;}this.trimBoundary().enlarge(false,function(node){return node.nodeType==1&&domUtils.isBlockElm(node);}).adjustmentBoundary();var bookmark=this.createBookmark(),end=bookmark.end,filterFn=function(node){return node.nodeType==1?node.tagName.toLowerCase()!="br":!domUtils.isWhitespace(node);},current=domUtils.getNextDomNode(bookmark.start,false,filterFn),node,pre,range=this.cloneRange();while(current&&(domUtils.getPosition(current,end)&domUtils.POSITION_PRECEDING)){if(current.nodeType==3||dtd[tagName][current.tagName]){range.setStartBefore(current);node=current;while(node&&(node.nodeType==3||dtd[tagName][node.tagName])&&node!==end){pre=node;node=domUtils.getNextDomNode(node,node.nodeType==1,null,function(parent){return dtd[tagName][parent.tagName];});}var frag=range.setEndAfter(pre).extractContents(),elm;if(list&&list.length>0){var level,top;top=level=list[0].cloneNode(false);for(var i=1,ci;ci=list[i++];){level.appendChild(ci.cloneNode(false));level=level.firstChild;}elm=level;}else{elm=range.document.createElement(tagName);}if(attrs){domUtils.setAttributes(elm,attrs);}elm.appendChild(frag);range.insertNode(list?top:elm);var aNode;if(tagName=="span"&&attrs.style&&/text\-decoration/.test(attrs.style)&&(aNode=domUtils.findParentByTagName(elm,"a",true))){domUtils.setAttributes(aNode,attrs);domUtils.remove(elm,true);elm=aNode;}else{domUtils.mergSibling(elm);domUtils.clearEmptySibling(elm);}domUtils.mergChild(elm,tagName,attrs);current=domUtils.getNextDomNode(elm,false,filterFn);domUtils.mergToParent(elm);if(node===end){break;}}else{current=domUtils.getNextDomNode(current,true,filterFn);}}return this.moveToBookmark(bookmark);},removeInlineStyle:function(tagName){if(this.collapsed){return this;}tagName=utils.isArray(tagName)?tagName:[tagName];this.shrinkBoundary().adjustmentBoundary();var start=this.startContainer,end=this.endContainer;while(1){if(start.nodeType==1){if(utils.indexOf(tagName,start.tagName.toLowerCase())>-1){break;}if(start.tagName.toLowerCase()=="body"){start=null;break;}}start=start.parentNode;}while(1){if(end.nodeType==1){if(utils.indexOf(tagName,end.tagName.toLowerCase())>-1){break;}if(end.tagName.toLowerCase()=="body"){end=null;break;}}end=end.parentNode;}var bookmark=this.createBookmark(),frag,tmpRange;if(start){tmpRange=this.cloneRange().setEndBefore(bookmark.start).setStartBefore(start);frag=tmpRange.extractContents();tmpRange.insertNode(frag);domUtils.clearEmptySibling(start,true);start.parentNode.insertBefore(bookmark.start,start);}if(end){tmpRange=this.cloneRange().setStartAfter(bookmark.end).setEndAfter(end);frag=tmpRange.extractContents();tmpRange.insertNode(frag);domUtils.clearEmptySibling(end,false,true);end.parentNode.insertBefore(bookmark.end,end.nextSibling);}var current=domUtils.getNextDomNode(bookmark.start,false,function(node){return node.nodeType==1;}),next;while(current&¤t!==bookmark.end){next=domUtils.getNextDomNode(current,true,function(node){return node.nodeType==1;});if(utils.indexOf(tagName,current.tagName.toLowerCase())>-1){domUtils.remove(current,true);}current=next;}return this.moveToBookmark(bookmark);},getClosedNode:function(){var node;if(!this.collapsed){var range=this.cloneRange().adjustmentBoundary().shrinkBoundary();if(range.startContainer.nodeType==1&&range.startContainer===range.endContainer&&range.endOffset-range.startOffset==1){var child=range.startContainer.childNodes[range.startOffset];if(child&&child.nodeType==1&&(dtd.$empty[child.tagName]||dtd.$nonChild[child.tagName])){node=child;}}}return node;},select:browser.ie?function(notInsertFillData,textRange){var nativeRange;if(!this.collapsed){this.shrinkBoundary();}var node=this.getClosedNode();if(node&&!textRange){try{nativeRange=this.document.body.createControlRange();nativeRange.addElement(node);nativeRange.select();}catch(e){}return this;}var bookmark=this.createBookmark(),start=bookmark.start,end;nativeRange=this.document.body.createTextRange();nativeRange.moveToElementText(start);nativeRange.moveStart("character",1);if(!this.collapsed){var nativeRangeEnd=this.document.body.createTextRange();end=bookmark.end;nativeRangeEnd.moveToElementText(end);nativeRange.setEndPoint("EndToEnd",nativeRangeEnd);}else{if(!notInsertFillData&&this.startContainer.nodeType!=3){var tmpText=this.document.createTextNode(fillChar),tmp=this.document.createElement("span");tmp.appendChild(this.document.createTextNode(fillChar));start.parentNode.insertBefore(tmp,start);start.parentNode.insertBefore(tmpText,start);removeFillData(this.document,tmpText);fillData=tmpText;mergSibling(tmp,"previousSibling");mergSibling(start,"nextSibling");nativeRange.moveStart("character",-1);nativeRange.collapse(true);}}this.moveToBookmark(bookmark);tmp&&domUtils.remove(tmp);nativeRange.select();return this;}:function(notInsertFillData){var win=domUtils.getWindow(this.document),sel=win.getSelection(),txtNode;browser.gecko?this.document.body.focus():win.focus();if(sel){sel.removeAllRanges();if(this.collapsed&&!notInsertFillData){txtNode=this.document.createTextNode(fillChar);this.insertNode(txtNode);removeFillData(this.document,txtNode);mergSibling(txtNode,"previousSibling");mergSibling(txtNode,"nextSibling");fillData=txtNode;this.setStart(txtNode,browser.webkit?1:0).collapse(true);}var nativeRange=this.document.createRange();nativeRange.setStart(this.startContainer,this.startOffset);nativeRange.setEnd(this.endContainer,this.endOffset);sel.addRange(nativeRange);}return this;},scrollToView:function(win,offset){win=win?window:domUtils.getWindow(this.document);var span=this.document.createElement("span");span.innerHTML=" ";var tmpRange=this.cloneRange();tmpRange.insertNode(span);domUtils.scrollToView(span,win,offset);domUtils.remove(span);return this;}};})();(function(){function getBoundaryInformation(range,start){var getIndex=domUtils.getNodeIndex;range=range.duplicate();range.collapse(start);var parent=range.parentElement();if(!parent.hasChildNodes()){return{container:parent,offset:0};}var siblings=parent.children,child,testRange=range.duplicate(),startIndex=0,endIndex=siblings.length-1,index=-1,distance;while(startIndex<=endIndex){index=Math.floor((startIndex+endIndex)/2);child=siblings[index];testRange.moveToElementText(child);var position=testRange.compareEndPoints("StartToStart",range);if(position>0){endIndex=index-1;}else{if(position<0){startIndex=index+1;}else{return{container:parent,offset:getIndex(child)};}}}if(index==-1){testRange.moveToElementText(parent);testRange.setEndPoint("StartToStart",range);distance=testRange.text.replace(/(\r\n|\r)/g,"\n").length;siblings=parent.childNodes;if(!distance){child=siblings[siblings.length-1];return{container:child,offset:child.nodeValue.length};}var i=siblings.length;while(distance>0){distance-=siblings[--i].nodeValue.length;}return{container:siblings[i],offset:-distance};}testRange.collapse(position>0);testRange.setEndPoint(position>0?"StartToStart":"EndToStart",range);distance=testRange.text.replace(/(\r\n|\r)/g,"\n").length;if(!distance){return dtd.$empty[child.tagName]||dtd.$nonChild[child.tagName]?{container:parent,offset:getIndex(child)+(position>0?0:1)}:{container:child,offset:position>0?0:child.childNodes.length};}while(distance>0){try{var pre=child;child=child[position>0?"previousSibling":"nextSibling"];distance-=child.nodeValue.length;}catch(e){return{container:parent,offset:getIndex(pre)};}}return{container:child,offset:position>0?-distance:child.nodeValue.length+distance};}function transformIERangeToRange(ieRange,range){if(ieRange.item){range.selectNode(ieRange.item(0));}else{var bi=getBoundaryInformation(ieRange,true);range.setStart(bi.container,bi.offset);if(ieRange.compareEndPoints("StartToEnd",ieRange)!=0){bi=getBoundaryInformation(ieRange,false);range.setEnd(bi.container,bi.offset);}}return range;}function _getIERange(sel){var ieRange;try{ieRange=sel.getNative().createRange();}catch(e){return null;}var el=ieRange.item?ieRange.item(0):ieRange.parentElement();if((el.ownerDocument||el)===sel.document){return ieRange;}return null;}var Selection=dom.Selection=function(doc){var me=this,iframe;me.document=doc;if(ie){iframe=domUtils.getWindow(doc).frameElement;domUtils.on(iframe,"beforedeactivate",function(){me._bakIERange=me.getIERange();});domUtils.on(iframe,"activate",function(){try{if(!_getIERange(me)&&me._bakIERange){me._bakIERange.select();}}catch(ex){}me._bakIERange=null;});}iframe=doc=null;};Selection.prototype={getNative:function(){var doc=this.document;try{return !doc?null:ie?doc.selection:domUtils.getWindow(doc).getSelection();}catch(e){return null;}},getIERange:function(){var ieRange=_getIERange(this);if(!ieRange){if(this._bakIERange){return this._bakIERange;}}return ieRange;},cache:function(){this.clear();this._cachedRange=this.getRange();this._cachedStartElement=this.getStart();this._cachedStartElementPath=this.getStartElementPath();},getStartElementPath:function(){if(this._cachedStartElementPath){return this._cachedStartElementPath;}var start=this.getStart();if(start){return domUtils.findParents(start,true,null,true);}return[];},clear:function(){this._cachedStartElementPath=this._cachedRange=this._cachedStartElement=null;},isFocus:function(){try{return browser.ie&&_getIERange(this)||!browser.ie&&this.getNative().rangeCount?true:false;}catch(e){return false;}},getRange:function(){var me=this;function optimze(range){var child=me.document.body.firstChild,collapsed=range.collapsed;while(child&&child.firstChild){range.setStart(child,0);child=child.firstChild;}if(!range.startContainer){range.setStart(me.document.body,0);}if(collapsed){range.collapse(true);}}if(me._cachedRange!=null){return this._cachedRange;}var range=new baidu.editor.dom.Range(me.document);if(ie){var nativeRange=me.getIERange();if(nativeRange){transformIERangeToRange(nativeRange,range);}else{optimze(range);}}else{var sel=me.getNative();if(sel&&sel.rangeCount){var firstRange=sel.getRangeAt(0);var lastRange=sel.getRangeAt(sel.rangeCount-1);range.setStart(firstRange.startContainer,firstRange.startOffset).setEnd(lastRange.endContainer,lastRange.endOffset);if(range.collapsed&&domUtils.isBody(range.startContainer)&&!range.startOffset){optimze(range);}}else{if(this._bakRange&&domUtils.inDoc(this._bakRange.startContainer,this.document)){return this._bakRange;}optimze(range);}}return this._bakRange=range;},getStart:function(){if(this._cachedStartElement){return this._cachedStartElement;}var range=ie?this.getIERange():this.getRange(),tmpRange,start,tmp,parent;if(ie){if(!range){return this.document.body.firstChild;}if(range.item){return range.item(0);}tmpRange=range.duplicate();tmpRange.text.length>0&&tmpRange.moveStart("character",1);tmpRange.collapse(1);start=tmpRange.parentElement();parent=tmp=range.parentElement();while(tmp=tmp.parentNode){if(tmp==start){start=parent;break;}}}else{range.shrinkBoundary();start=range.startContainer;if(start.nodeType==1&&start.hasChildNodes()){start=start.childNodes[Math.min(start.childNodes.length-1,range.startOffset)];}if(start.nodeType==3){return start.parentNode;}}return start;},getText:function(){var nativeSel,nativeRange;if(this.isFocus()&&(nativeSel=this.getNative())){nativeRange=browser.ie?nativeSel.createRange():nativeSel.getRangeAt(0);return browser.ie?nativeRange.text:nativeRange.toString();}return"";}};})();(function(){var uid=0,_selectionChangeTimer;function replaceSrc(div){var imgs=div.getElementsByTagName("img"),orgSrc;for(var i=0,img;img=imgs[i++];){if(orgSrc=img.getAttribute("orgSrc")){img.src=orgSrc;img.removeAttribute("orgSrc");}}var as=div.getElementsByTagName("a");for(var i=0,ai;ai=as[i++];i++){if(ai.getAttribute("data_ue_src")){ai.setAttribute("href",ai.getAttribute("data_ue_src"));}}}function setValue(form,editor){var textarea;if(editor.textarea){if(utils.isString(editor.textarea)){for(var i=0,ti,tis=domUtils.getElementsByTagName(form,"textarea");ti=tis[i++];){if(ti.id=="ueditor_textarea_"+editor.options.textarea){textarea=ti;break;}}}else{textarea=editor.textarea;}}if(!textarea){form.appendChild(textarea=domUtils.creElm(document,"textarea",{"name":editor.options.textarea,"id":"ueditor_textarea_"+editor.options.textarea,"style":"display:none"}));}textarea.value=editor.getContent();}var Editor=UE.Editor=function(options){var me=this;me.uid=uid++;EventBase.call(me);me.commands={};me.options=utils.extend(options||{},UEDITOR_CONFIG,true);me.setOpt({isShow:true,initialContent:"欢迎使用ueditor!",autoClearinitialContent:false,iframeCssUrl:me.options.UEDITOR_HOME_URL+"/themes/default/iframe.css",textarea:"editorValue",focus:false,minFrameHeight:320,autoClearEmptyNode:true,fullscreen:false,readonly:false,zIndex:999,imagePopup:true,enterTag:"p",pageBreakTag:"_baidu_page_break_tag_"});for(var pi in UE.plugins){UE.plugins[pi].call(me);}};Editor.prototype={setOpt:function(key,val){var obj={};if(utils.isString(key)){obj[key]=val;}else{obj=key;}utils.extend(this.options,obj,true);},destroy:function(){var me=this;me.fireEvent("destroy");me.container.innerHTML="";domUtils.remove(me.container);for(var p in me){delete this[p];}},render:function(container){if(container.constructor===String){container=document.getElementById(container);}if(container){container.innerHTML='';container.style.overflow="hidden";this._setup(container.firstChild.contentWindow.document);}},_setup:function(doc){var me=this,options=me.options;!browser.webkit&&doc.open();var useBodyAsViewport=ie&&browser.version<9;doc.write((ie&&browser.version<9?"":"")+'"+(options.iframeCssUrl?'':"")+'");!browser.webkit&&doc.close();if(ie){doc.body.disabled=true;doc.body.contentEditable=true;doc.body.disabled=false;}else{doc.body.contentEditable=true;doc.body.spellcheck=false;}me.document=doc;me.window=doc.defaultView||doc.parentWindow;me.iframe=me.window.frameElement;me.body=doc.body;me.setHeight(options.minFrameHeight);me.selection=new dom.Selection(doc);if(browser.gecko){this.selection.getNative().removeAllRanges();}this._initEvents();if(options.initialContent){if(options.autoClearinitialContent){var oldExecCommand=me.execCommand;me.execCommand=function(){me.fireEvent("firstBeforeExecCommand");oldExecCommand.apply(me,arguments);};this.setDefaultContent(options.initialContent);}else{this.setContent(options.initialContent,true);}}for(var form=this.iframe.parentNode;!domUtils.isBody(form);form=form.parentNode){if(form.tagName=="FORM"){domUtils.on(form,"submit",function(){setValue(this,me);});break;}}if(domUtils.isEmptyNode(me.body)){me.body.innerHTML="

"+(browser.ie?"":"
")+"

";}if(options.focus){setTimeout(function(){me.focus();!me.options.autoClearinitialContent&&me._selectionChange();});}if(!me.container){me.container=this.iframe.parentNode;}if(options.fullscreen&&me.ui){me.ui.setFullScreen(true);}me.fireEvent("ready");if(!browser.ie){domUtils.on(me.window,"blur",function(){me._bakRange=me.selection.getRange();me.selection.getNative().removeAllRanges();});}if(browser.gecko&&browser.version<=10902){me.body.contentEditable=false;setTimeout(function(){me.body.contentEditable=true;},100);setInterval(function(){me.body.style.height=me.iframe.offsetHeight-20+"px";},100);}!options.isShow&&me.setHide();options.readonly&&me.setDisabled();},sync:function(formId){var me=this,form=formId?document.getElementById(formId):domUtils.findParent(me.iframe.parentNode,function(node){return node.tagName=="FORM";},true);form&&setValue(form,me);},setHeight:function(height){if(height!==parseInt(this.iframe.parentNode.style.height)){this.iframe.parentNode.style.height=height+"px";}this.document.body.style.height=height-20+"px";},getContent:function(cmd,fn){if(cmd&&utils.isFunction(cmd)){fn=cmd;cmd="";}if(fn?!fn():!this.hasContents()){return"";}this.fireEvent("beforegetcontent",cmd);var reg=new RegExp(domUtils.fillChar,"g"),html=this.body.innerHTML.replace(reg,"").replace(/>[\t\r\n]*?<");this.fireEvent("aftergetcontent",cmd);if(this.serialize){var node=this.serialize.parseHTML(html);node=this.serialize.transformOutput(node);html=this.serialize.toHTML(node);}return html.replace(/( )+/g,function(s){for(var i=0,str=[],l=s.split(";").length-1;i]*>(| )<\/\1>/gi,"\n").replace(//gi,"\n").replace(/<[^>/]+>/g,"").replace(/(\n)?<\/([^>]+)>/g,function(a,b,c){return dtd.$block[c]?"\n":b?b:"";});return html.replace(reg,"").replace(/\u00a0/g," ").replace(/ /g," ");},getContentTxt:function(){var reg=new RegExp(domUtils.fillChar,"g");return this.body[browser.ie?"innerText":"textContent"].replace(reg,"").replace(/\u00a0/g," ");},setContent:function(html,notFireSelectionchange){var me=this,inline=utils.extend({a:1,A:1},dtd.$inline,true),lastTagName;html=html.replace(/^[ \t\r\n]*?[ \t\r\n]*?$/,">").replace(/>[\t\r\n]*?<").replace(/[\s\/]?(\w+)?>[ \t\r\n]*?<\/?(\w+)/gi,function(a,b,c){if(b){lastTagName=c;}else{b=lastTagName;}return !inline[b]&&!inline[c]?a.replace(/>[ \t\r\n]*?<"):a;});me.fireEvent("beforesetcontent");var serialize=this.serialize;if(serialize){var node=serialize.parseHTML(html);node=serialize.transformInput(node);node=serialize.filter(node);html=serialize.toHTML(node);}this.body.innerHTML=html.replace(new RegExp("[\r"+domUtils.fillChar+"]*","g"),"");if(browser.ie&&browser.version<7){replaceSrc(this.document.body);}if(me.options.enterTag=="p"){var child=this.body.firstChild,tmpNode;if(!child||child.nodeType==1&&(dtd.$cdata[child.tagName]||domUtils.isCustomeNode(child))&&child===this.body.lastChild){this.body.innerHTML="

"+(browser.ie?"":"
")+"

"+this.body.innerHTML;}else{var p=me.document.createElement("p");while(child){while(child&&(child.nodeType==3||child.nodeType==1&&dtd.p[child.tagName]&&!dtd.$cdata[child.tagName])){tmpNode=child.nextSibling;p.appendChild(child);child=tmpNode;}if(p.firstChild){if(!child){me.body.appendChild(p);break;}else{me.body.insertBefore(p,child);p=me.document.createElement("p");}}child=child.nextSibling;}}}me.adjustTable&&me.adjustTable(me.body);me.fireEvent("aftersetcontent");me.fireEvent("contentchange");!notFireSelectionchange&&me._selectionChange();me._bakRange=me._bakIERange=null;if(browser.gecko){me.selection.getNative().removeAllRanges();}},focus:function(){try{this.selection.getRange().select(true);}catch(e){}},_initEvents:function(){var me=this,doc=me.document,win=me.window;me._proxyDomEvent=utils.bind(me._proxyDomEvent,me);domUtils.on(doc,["click","contextmenu","mousedown","keydown","keyup","keypress","mouseup","mouseover","mouseout","selectstart"],me._proxyDomEvent);domUtils.on(win,["focus","blur"],me._proxyDomEvent);domUtils.on(doc,["mouseup","keydown"],function(evt){if(evt.type=="keydown"&&(evt.ctrlKey||evt.metaKey||evt.shiftKey||evt.altKey)){return;}if(evt.button==2){return;}me._selectionChange(250,evt);});var innerDrag=0,source=browser.ie?me.body:me.document,dragoverHandler;domUtils.on(source,"dragstart",function(){innerDrag=1;});domUtils.on(source,browser.webkit?"dragover":"drop",function(){return browser.webkit?function(){clearTimeout(dragoverHandler);dragoverHandler=setTimeout(function(){if(!innerDrag){var sel=me.selection,range=sel.getRange();if(range){var common=range.getCommonAncestor();if(common&&me.serialize){var f=me.serialize,node=f.filter(f.transformInput(f.parseHTML(f.word(common.innerHTML))));common.innerHTML=f.toHTML(node);}}}innerDrag=0;},200);}:function(e){if(!innerDrag){e.preventDefault?e.preventDefault():(e.returnValue=false);}innerDrag=0;};}());},_proxyDomEvent:function(evt){return this.fireEvent(evt.type.replace(/^on/,""),evt);},_selectionChange:function(delay,evt){var me=this;if(!me.selection.isFocus()){return;}var hackForMouseUp=false;var mouseX,mouseY;if(browser.ie&&browser.version<9&&evt&&evt.type=="mouseup"){var range=this.selection.getRange();if(!range.collapsed){hackForMouseUp=true;mouseX=evt.clientX;mouseY=evt.clientY;}}clearTimeout(_selectionChangeTimer);_selectionChangeTimer=setTimeout(function(){if(!me.selection.getNative()){return;}var ieRange;if(hackForMouseUp&&me.selection.getNative().type=="None"){ieRange=me.document.body.createTextRange();try{ieRange.moveToPoint(mouseX,mouseY);}catch(ex){ieRange=null;}}var bakGetIERange;if(ieRange){bakGetIERange=me.selection.getIERange;me.selection.getIERange=function(){return ieRange;};}me.selection.cache();if(bakGetIERange){me.selection.getIERange=bakGetIERange;}if(me.selection._cachedRange&&me.selection._cachedStartElement){me.fireEvent("beforeselectionchange");me.fireEvent("selectionchange",!!evt);me.fireEvent("afterselectionchange");me.selection.clear();}},delay||50);},_callCmdFn:function(fnName,args){var cmdName=args[0].toLowerCase(),cmd,cmdFn;cmd=this.commands[cmdName]||UE.commands[cmdName];cmdFn=cmd&&cmd[fnName];if((!cmd||!cmdFn)&&fnName=="queryCommandState"){return 0;}else{if(cmdFn){return cmdFn.apply(this,args);}}},execCommand:function(cmdName){cmdName=cmdName.toLowerCase();var me=this,result,cmd=me.commands[cmdName]||UE.commands[cmdName];if(!cmd||!cmd.execCommand){return;}if(!cmd.notNeedUndo&&!me.__hasEnterExecCommand){me.__hasEnterExecCommand=true;if(me.queryCommandState(cmdName)!=-1){me.fireEvent("beforeexeccommand",cmdName);result=this._callCmdFn("execCommand",arguments);me.fireEvent("afterexeccommand",cmdName);}me.__hasEnterExecCommand=false;}else{result=this._callCmdFn("execCommand",arguments);}me._selectionChange();return result;},queryCommandState:function(cmdName){return this._callCmdFn("queryCommandState",arguments);},queryCommandValue:function(cmdName){return this._callCmdFn("queryCommandValue",arguments);},hasContents:function(tags){if(tags){for(var i=0,ci;ci=tags[i++];){if(this.document.getElementsByTagName(ci).length>0){return true;}}}if(!domUtils.isEmptyBlock(this.body)){return true;}tags=["div"];for(i=0;ci=tags[i++];){var nodes=domUtils.getElementsByTagName(this.document,ci);for(var n=0,cn;cn=nodes[n++];){if(domUtils.isCustomeNode(cn)){return true;}}}return false;},reset:function(){this.fireEvent("reset");},setEnabled:function(){var me=this,range;if(me.body.contentEditable=="false"){me.body.contentEditable=true;range=me.selection.getRange();try{range.moveToBookmark(me.lastBk);delete me.lastBk;}catch(e){range.setStartAtFirst(me.body).collapse(true);}range.select(true);if(me.bkqueryCommandState){me.queryCommandState=me.bkqueryCommandState;delete me.bkqueryCommandState;}me.fireEvent("selectionchange");}},setDisabled:function(exclude){var me=this;exclude=exclude?utils.isArray(exclude)?exclude:[exclude]:[];if(me.body.contentEditable=="true"){if(!me.lastBk){me.lastBk=me.selection.getRange().createBookmark(true);}me.body.contentEditable=false;me.bkqueryCommandState=me.queryCommandState;me.queryCommandState=function(type){if(utils.indexOf(exclude,type)!=-1){return me.bkqueryCommandState.apply(me,arguments);}return -1;};me.fireEvent("selectionchange");}},setDefaultContent:function(){function clear(){var me=this;if(me.document.getElementById("initContent")){me.document.body.innerHTML="

"+(ie?"":"
")+"

";var range=me.selection.getRange();me.removeListener("firstBeforeExecCommand",clear);me.removeListener("focus",clear);setTimeout(function(){range.setStart(me.document.body.firstChild,0).collapse(true).select(true);me._selectionChange();});}}return function(cont){var me=this;me.document.body.innerHTML='

'+cont+"

";if(browser.ie&&browser.version<7){replaceSrc(me.document.body);}me.addListener("firstBeforeExecCommand",clear);me.addListener("focus",clear);};}(),setShow:function(){var me=this,range=me.selection.getRange();if(me.container.style.display=="none"){try{range.moveToBookmark(me.lastBk);delete me.lastBk;}catch(e){range.setStartAtFirst(me.body).collapse(true);}range.select(true);me.container.style.display="";}},setHide:function(){var me=this;if(!me.lastBk){me.lastBk=me.selection.getRange().createBookmark(true);}me.container.style.display="none";}};utils.inherits(Editor,EventBase);})();UE.ajax=function(){return{request:function(url,ajaxOptions){var ajaxRequest=creatAjaxRequest(),timeIsOut=false,defaultAjaxOptions={method:"POST",timeout:5000,async:true,data:{},onsuccess:function(){},onerror:function(){}};if(typeof url==="object"){ajaxOptions=url;url=ajaxOptions.url;}if(!ajaxRequest||!url){return;}var ajaxOpts=ajaxOptions?utils.extend(defaultAjaxOptions,ajaxOptions):defaultAjaxOptions;var submitStr=json2str(ajaxOpts);if(!utils.isEmptyObject(ajaxOpts.data)){submitStr+=(submitStr?"&":"")+json2str(ajaxOpts.data);}var timerID=setTimeout(function(){if(ajaxRequest.readyState!=4){timeIsOut=true;ajaxRequest.abort();clearTimeout(timerID);}},ajaxOpts.timeout);var method=ajaxOpts.method.toUpperCase();var str=url+(url.indexOf("?")==-1?"?":"&")+(method=="POST"?"":submitStr+"&noCache="+ +new Date);ajaxRequest.open(method,str,ajaxOpts.async);ajaxRequest.onreadystatechange=function(){if(ajaxRequest.readyState==4){if(!timeIsOut&&ajaxRequest.status==200){ajaxOpts.onsuccess(ajaxRequest);}else{ajaxOpts.onerror(ajaxRequest);}}};if(method=="POST"){ajaxRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");ajaxRequest.send(submitStr);}else{ajaxRequest.send(null);}}};function json2str(json){var strArr=[];for(var i in json){if(i=="method"||i=="timeout"||i=="async"){continue;}if(!((typeof json[i]).toLowerCase()=="function"||(typeof json[i]).toLowerCase()=="object")){strArr.push(encodeURIComponent(i)+"="+encodeURIComponent(json[i]));}}return strArr.join("&");}function creatAjaxRequest(){var xmlHttp=null;if(window.XMLHttpRequest){xmlHttp=new XMLHttpRequest();}else{try{xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");}catch(e){try{xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");}catch(e){}}}return xmlHttp;}}();UE.commands["inserthtml"]={execCommand:function(command,html,notSerialize){var me=this,range,div,tds=me.currentSelectedArr;range=me.selection.getRange();div=range.document.createElement("div");div.style.display="inline";var serialize=me.serialize;if(!notSerialize&&serialize){var node=serialize.parseHTML(html);node=serialize.transformInput(node);node=serialize.filter(node);html=serialize.toHTML(node);}div.innerHTML=utils.trim(html);try{me.adjustTable&&me.adjustTable(div);}catch(e){}if(tds&&tds.length){for(var i=0,ti;ti=tds[i++];){ti.className="";}tds[0].innerHTML="";range.setStart(tds[0],0).collapse(true);me.currentSelectedArr=[];}if(!range.collapsed){range.deleteContents();if(range.startContainer.nodeType==1){var child=range.startContainer.childNodes[range.startOffset],pre;if(child&&domUtils.isBlockElm(child)&&(pre=child.previousSibling)&&domUtils.isBlockElm(pre)){range.setEnd(pre,pre.childNodes.length).collapse();while(child.firstChild){pre.appendChild(child.firstChild);}domUtils.remove(child);}}}var child,parent,pre,tmp,hadBreak=0;while(child=div.firstChild){range.insertNode(child);if(!hadBreak&&child.nodeType==domUtils.NODE_ELEMENT&&domUtils.isBlockElm(child)){parent=domUtils.findParent(child,function(node){return domUtils.isBlockElm(node);});if(parent&&parent.tagName.toLowerCase()!="body"&&!(dtd[parent.tagName][child.nodeName]&&child.parentNode===parent)){if(!dtd[parent.tagName][child.nodeName]){pre=parent;}else{tmp=child.parentNode;while(tmp!==parent){pre=tmp;tmp=tmp.parentNode;}}domUtils.breakParent(child,pre||tmp);var pre=child.previousSibling;domUtils.trimWhiteTextNode(pre);if(!pre.childNodes.length){domUtils.remove(pre);}if(!browser.ie&&(next=child.nextSibling)&&domUtils.isBlockElm(next)&&next.lastChild&&!domUtils.isBr(next.lastChild)){next.appendChild(me.document.createElement("br"));}hadBreak=1;}}var next=child.nextSibling;if(!div.firstChild&&next&&domUtils.isBlockElm(next)){range.setStart(next,0).collapse(true);break;}range.setEndAfter(child).collapse();}child=range.startContainer;if(domUtils.isBlockElm(child)&&domUtils.isEmptyNode(child)){child.innerHTML=browser.ie?"":"
";}range.select(true);setTimeout(function(){range=me.selection.getRange();range.scrollToView(me.autoHeightEnabled,me.autoHeightEnabled?domUtils.getXY(me.iframe).y:0);},200);}};UE.plugins["autotypeset"]=function(){this.setOpt({"autotypeset":{mergeEmptyline:true,removeClass:true,removeEmptyline:false,textAlign:"left",imageBlockLine:"center",pasteFilter:false,clearFontSize:false,clearFontFamily:false,removeEmptyNode:false,removeTagNames:utils.extend({div:1},dtd.$removeEmpty),indent:false,indentValue:"2em"}});var me=this,opt=me.options.autotypeset,remainClass={"selectTdClass":1,"pagebreak":1,"anchorclass":1},remainTag={"li":1},tags={div:1,p:1,blockquote:1,center:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1},highlightCont;if(!opt){return;}function isLine(node,notEmpty){if(node&&node.parentNode&&tags[node.tagName.toLowerCase()]){if(highlightCont&&highlightCont.contains(node)||node.getAttribute("pagebreak")){return 0;}return notEmpty?!domUtils.isEmptyBlock(node):domUtils.isEmptyBlock(node);}}function removeNotAttributeSpan(node){if(!node.style.cssText){domUtils.removeAttributes(node,["style"]);if(node.tagName.toLowerCase()=="span"&&domUtils.hasNoAttributes(node)){domUtils.remove(node,true);}}}function autotype(type,html){var cont;if(html){if(!opt.pasteFilter){return;}cont=me.document.createElement("div");cont.innerHTML=html.html;}else{cont=me.document.body;}var nodes=domUtils.getElementsByTagName(cont,"*");for(var i=0,ci;ci=nodes[i++];){if(!highlightCont&&ci.tagName=="DIV"&&ci.getAttribute("highlighter")){highlightCont=ci;}if(opt.clearFontSize&&ci.style.fontSize){ci.style.fontSize="";removeNotAttributeSpan(ci);}if(opt.clearFontFamily&&ci.style.fontFamily){ci.style.fontFamily="";removeNotAttributeSpan(ci);}if(isLine(ci)){if(opt.mergeEmptyline){var next=ci.nextSibling,tmpNode;while(isLine(next)){tmpNode=next;next=tmpNode.nextSibling;domUtils.remove(tmpNode);}}if(opt.removeEmptyline&&domUtils.inDoc(ci,cont)&&!remainTag[ci.parentNode.tagName.toLowerCase()]){domUtils.remove(ci);continue;}}if(isLine(ci,true)){if(opt.indent){ci.style.textIndent=opt.indentValue;}if(opt.textAlign){ci.style.textAlign=opt.textAlign;}}if(opt.removeClass&&ci.className&&!remainClass[ci.className.toLowerCase()]){if(highlightCont&&highlightCont.contains(ci)){continue;}domUtils.removeAttributes(ci,["class"]);}if(opt.imageBlockLine&&ci.tagName.toLowerCase()=="img"&&!ci.getAttribute("emotion")){if(html){var img=ci;switch(opt.imageBlockLine){case"left":case"right":case"none":var pN=img.parentNode,tmpNode,pre,next;while(dtd.$inline[pN.tagName]||pN.tagName=="A"){pN=pN.parentNode;}tmpNode=pN;if(tmpNode.tagName=="P"&&domUtils.getStyle(tmpNode,"text-align")=="center"){if(!domUtils.isBody(tmpNode)&&domUtils.getChildCount(tmpNode,function(node){return !domUtils.isBr(node)&&!domUtils.isWhitespace(node);})==1){pre=tmpNode.previousSibling;next=tmpNode.nextSibling;if(pre&&next&&pre.nodeType==1&&next.nodeType==1&&pre.tagName==next.tagName&&domUtils.isBlockElm(pre)){pre.appendChild(tmpNode.firstChild);while(next.firstChild){pre.appendChild(next.firstChild);}domUtils.remove(tmpNode);domUtils.remove(next);}else{domUtils.setStyle(tmpNode,"text-align","");}}}domUtils.setStyle(img,"float",opt.imageBlockLine);break;case"center":if(me.queryCommandValue("imagefloat")!="center"){pN=img.parentNode;domUtils.setStyle(img,"float","none");tmpNode=img;while(pN&&domUtils.getChildCount(pN,function(node){return !domUtils.isBr(node)&&!domUtils.isWhitespace(node);})==1&&(dtd.$inline[pN.tagName]||pN.tagName=="A")){tmpNode=pN;pN=pN.parentNode;}var pNode=me.document.createElement("p");domUtils.setAttributes(pNode,{style:"text-align:center"});tmpNode.parentNode.insertBefore(pNode,tmpNode);pNode.appendChild(tmpNode);domUtils.setStyle(tmpNode,"float","");}}}else{var range=me.selection.getRange();range.selectNode(ci).select();me.execCommand("imagefloat",opt.imageBlockLine);}}if(opt.removeEmptyNode){if(opt.removeTagNames[ci.tagName.toLowerCase()]&&domUtils.hasNoAttributes(ci)&&domUtils.isEmptyBlock(ci)){domUtils.remove(ci);}}}if(html){html.html=cont.innerHTML;}}if(opt.pasteFilter){me.addListener("beforepaste",autotype);}me.commands["autotypeset"]={execCommand:function(){me.removeListener("beforepaste",autotype);if(opt.pasteFilter){me.addListener("beforepaste",autotype);}autotype();}};};UE.commands["autosubmit"]={execCommand:function(){var me=this,form=domUtils.findParentByTagName(me.iframe,"form",false);if(form){if(me.fireEvent("beforesubmit")===false){return;}me.sync();form.submit();}}};UE.commands["imagefloat"]={execCommand:function(cmd,align){var me=this,range=me.selection.getRange();if(!range.collapsed){var img=range.getClosedNode();if(img&&img.tagName=="IMG"){switch(align){case"left":case"right":case"none":var pN=img.parentNode,tmpNode,pre,next;while(dtd.$inline[pN.tagName]||pN.tagName=="A"){pN=pN.parentNode;}tmpNode=pN;if(tmpNode.tagName=="P"&&domUtils.getStyle(tmpNode,"text-align")=="center"){if(!domUtils.isBody(tmpNode)&&domUtils.getChildCount(tmpNode,function(node){return !domUtils.isBr(node)&&!domUtils.isWhitespace(node);})==1){pre=tmpNode.previousSibling;next=tmpNode.nextSibling;if(pre&&next&&pre.nodeType==1&&next.nodeType==1&&pre.tagName==next.tagName&&domUtils.isBlockElm(pre)){pre.appendChild(tmpNode.firstChild);while(next.firstChild){pre.appendChild(next.firstChild);}domUtils.remove(tmpNode);domUtils.remove(next);}else{domUtils.setStyle(tmpNode,"text-align","");}}range.selectNode(img).select();}domUtils.setStyle(img,"float",align);break;case"center":if(me.queryCommandValue("imagefloat")!="center"){pN=img.parentNode;domUtils.setStyle(img,"float","none");tmpNode=img;while(pN&&domUtils.getChildCount(pN,function(node){return !domUtils.isBr(node)&&!domUtils.isWhitespace(node);})==1&&(dtd.$inline[pN.tagName]||pN.tagName=="A")){tmpNode=pN;pN=pN.parentNode;}range.setStartBefore(tmpNode).setCursor(false);pN=me.document.createElement("div");pN.appendChild(tmpNode);domUtils.setStyle(tmpNode,"float","");me.execCommand("insertHtml",'

'+pN.innerHTML+"

");tmpNode=me.document.getElementById("_img_parent_tmp");tmpNode.removeAttribute("id");tmpNode=tmpNode.firstChild;range.selectNode(tmpNode).select();next=tmpNode.parentNode.nextSibling;if(next&&domUtils.isEmptyNode(next)){domUtils.remove(next);}}break;}}}},queryCommandValue:function(){var range=this.selection.getRange(),startNode,floatStyle;if(range.collapsed){return"none";}startNode=range.getClosedNode();if(startNode&&startNode.nodeType==1&&startNode.tagName=="IMG"){floatStyle=domUtils.getComputedStyle(startNode,"float");if(floatStyle=="none"){floatStyle=domUtils.getComputedStyle(startNode.parentNode,"text-align")=="center"?"center":floatStyle;}return{left:1,right:1,center:1}[floatStyle]?floatStyle:"none";}return"none";},queryCommandState:function(){if(this.highlight){return -1;}var range=this.selection.getRange(),startNode;if(range.collapsed){return -1;}startNode=range.getClosedNode();if(startNode&&startNode.nodeType==1&&startNode.tagName=="IMG"){return 0;}return -1;}};UE.commands["insertimage"]={execCommand:function(cmd,opt){opt=utils.isArray(opt)?opt:[opt];if(!opt.length){return;}var me=this,range=me.selection.getRange(),img=range.getClosedNode();if(img&&/img/i.test(img.tagName)&&img.className!="edui-faked-video"&&!img.getAttribute("word_img")){var first=opt.shift();var floatStyle=first["floatStyle"];delete first["floatStyle"];domUtils.setAttributes(img,first);me.execCommand("imagefloat",floatStyle);if(opt.length>0){range.setStartAfter(img).setCursor(false,true);me.execCommand("insertimage",opt);}}else{var html=[],str="",ci;ci=opt[0];if(opt.length==1){str='';if(ci["floatStyle"]=="center"){str='

'+str+"

";}html.push(str);}else{for(var i=0;ci=opt[i++];){str="

";html.push(str);}}me.execCommand("insertHtml",html.join(""));}},queryCommandState:function(){return this.highlight?-1:0;}};(function(){var block=domUtils.isBlockElm,defaultValue={left:1,right:1,center:1,justify:1},doJustify=function(range,style){var bookmark=range.createBookmark(),filterFn=function(node){return node.nodeType==1?node.tagName.toLowerCase()!="br"&&!domUtils.isBookmarkNode(node):!domUtils.isWhitespace(node);};range.enlarge(true);var bookmark2=range.createBookmark(),current=domUtils.getNextDomNode(bookmark2.start,false,filterFn),tmpRange=range.cloneRange(),tmpNode;while(current&&!(domUtils.getPosition(current,bookmark2.end)&domUtils.POSITION_FOLLOWING)){if(current.nodeType==3||!block(current)){tmpRange.setStartBefore(current);while(current&¤t!==bookmark2.end&&!block(current)){tmpNode=current;current=domUtils.getNextDomNode(current,false,null,function(node){return !block(node);});}tmpRange.setEndAfter(tmpNode);var common=tmpRange.getCommonAncestor();if(!domUtils.isBody(common)&&block(common)){domUtils.setStyles(common,utils.isString(style)?{"text-align":style}:style);current=common;}else{var p=range.document.createElement("p");domUtils.setStyles(p,utils.isString(style)?{"text-align":style}:style);var frag=tmpRange.extractContents();p.appendChild(frag);tmpRange.insertNode(p);current=p;}current=domUtils.getNextDomNode(current,false,filterFn);}else{current=domUtils.getNextDomNode(current,true,filterFn);}}return range.moveToBookmark(bookmark2).moveToBookmark(bookmark);};UE.commands["justify"]={execCommand:function(cmdName,align){var range=this.selection.getRange(),txt;if(this.currentSelectedArr&&this.currentSelectedArr.length>0){for(var i=0,ti;ti=this.currentSelectedArr[i++];){if(domUtils.isEmptyNode(ti)){txt=this.document.createTextNode("p");range.setStart(ti,0).collapse(true).insertNode(txt).selectNode(txt);}else{range.selectNodeContents(ti);}doJustify(range,align);txt&&domUtils.remove(txt);}range.selectNode(this.currentSelectedArr[0]).select();}else{if(range.collapsed){txt=this.document.createTextNode("p");range.insertNode(txt);}doJustify(range,align);if(txt){range.setStartBefore(txt).collapse(true);domUtils.remove(txt);}range.select();}return true;},queryCommandValue:function(){var startNode=this.selection.getStart(),value=domUtils.getComputedStyle(startNode,"text-align");return defaultValue[value]?value:"left";},queryCommandState:function(){return this.highlight?-1:0;}};})();UE.plugins["font"]=function(){var me=this,fonts={"forecolor":"color","backcolor":"background-color","fontsize":"font-size","fontfamily":"font-family","underline":"text-decoration","strikethrough":"text-decoration"};me.setOpt({"fontfamily":[["宋体",["宋体","SimSun"]],["楷体",["楷体","楷体_GB2312","SimKai"]],["黑体",["黑体","SimHei"]],["隶书",["隶书","SimLi"]],["andale mono",["andale mono"]],["arial",["arial","helvetica","sans-serif"]],["arial black",["arial black","avant garde"]],["comic sans ms",["comic sans ms"]],["impact",["impact","chicago"]],["times new roman",["times new roman"]]],"fontsize":[10,11,12,14,16,18,20,24,36]});for(var p in fonts){(function(cmd,style){UE.commands[cmd]={execCommand:function(cmdName,value){value=value||(this.queryCommandState(cmdName)?"none":cmdName=="underline"?"underline":"line-through");var me=this,range=this.selection.getRange(),text;if(value=="default"){if(range.collapsed){text=me.document.createTextNode("font");range.insertNode(text).select();}me.execCommand("removeFormat","span,a",style);if(text){range.setStartBefore(text).setCursor();domUtils.remove(text);}}else{if(me.currentSelectedArr&&me.currentSelectedArr.length>0){for(var i=0,ci;ci=me.currentSelectedArr[i++];){range.selectNodeContents(ci);range.applyInlineStyle("span",{"style":style+":"+value});}range.selectNodeContents(this.currentSelectedArr[0]).select();}else{if(!range.collapsed){if((cmd=="underline"||cmd=="strikethrough")&&me.queryCommandValue(cmd)){me.execCommand("removeFormat","span,a",style);}range=me.selection.getRange();range.applyInlineStyle("span",{"style":style+":"+value}).select();}else{var span=domUtils.findParentByTagName(range.startContainer,"span",true);text=me.document.createTextNode("font");if(span&&!span.children.length&&!span[browser.ie?"innerText":"textContent"].replace(fillCharReg,"").length){range.insertNode(text);if(cmd=="underline"||cmd=="strikethrough"){range.selectNode(text).select();me.execCommand("removeFormat","span,a",style,null);span=domUtils.findParentByTagName(text,"span",true);range.setStartBefore(text);}span.style.cssText=span.style.cssText+";"+style+":"+value;range.collapse(true).select();}else{range.insertNode(text);range.selectNode(text).select();span=range.document.createElement("span");if(cmd=="underline"||cmd=="strikethrough"){if(domUtils.findParentByTagName(text,"a",true)){range.setStartBefore(text).setCursor();domUtils.remove(text);return;}me.execCommand("removeFormat","span,a",style);}span.style.cssText=style+":"+value;text.parentNode.insertBefore(span,text);if(!browser.ie||browser.ie&&browser.version==9){var spanParent=span.parentNode;while(!domUtils.isBlockElm(spanParent)){if(spanParent.tagName=="SPAN"){span.style.cssText=spanParent.style.cssText+span.style.cssText;}spanParent=spanParent.parentNode;}}range.setStart(span,0).setCursor();}domUtils.remove(text);}}}return true;},queryCommandValue:function(cmdName){var startNode=this.selection.getStart();if(cmdName=="underline"||cmdName=="strikethrough"){var tmpNode=startNode,value;while(tmpNode&&!domUtils.isBlockElm(tmpNode)&&!domUtils.isBody(tmpNode)){if(tmpNode.nodeType==1){value=domUtils.getComputedStyle(tmpNode,style);if(value!="none"){return value;}}tmpNode=tmpNode.parentNode;}return"none";}return domUtils.getComputedStyle(startNode,style);},queryCommandState:function(cmdName){if(this.highlight){return -1;}if(!(cmdName=="underline"||cmdName=="strikethrough")){return 0;}return this.queryCommandValue(cmdName)==(cmdName=="underline"?"underline":"line-through");}};})(p,fonts[p]);}};(function(){function optimize(range){var start=range.startContainer,end=range.endContainer;if(start=domUtils.findParentByTagName(start,"a",true)){range.setStartBefore(start);}if(end=domUtils.findParentByTagName(end,"a",true)){range.setEndAfter(end);}}UE.commands["unlink"]={execCommand:function(){var as,range=new dom.Range(this.document),tds=this.currentSelectedArr,bookmark;if(tds&&tds.length>0){for(var i=0,ti;ti=tds[i++];){as=domUtils.getElementsByTagName(ti,"a");for(var j=0,aj;aj=as[j++];){domUtils.remove(aj,true);}}if(domUtils.isEmptyNode(tds[0])){range.setStart(tds[0],0).setCursor();}else{range.selectNodeContents(tds[0]).select();}}else{range=this.selection.getRange();if(range.collapsed&&!domUtils.findParentByTagName(range.startContainer,"a",true)){return;}bookmark=range.createBookmark();optimize(range);range.removeInlineStyle("a").moveToBookmark(bookmark).select();}},queryCommandState:function(){return !this.highlight&&this.queryCommandValue("link")?0:-1;}};function doLink(range,opt){optimize(range=range.adjustmentBoundary());var start=range.startContainer;if(start.nodeType==1){start=start.childNodes[range.startOffset];if(start&&start.nodeType==1&&start.tagName=="A"&&/^(?:https?|ftp|file)\s*:\s*\/\//.test(start[browser.ie?"innerText":"textContent"])){start[browser.ie?"innerText":"textContent"]=utils.html(opt.textValue||opt.href);}}range.removeInlineStyle("a");if(range.collapsed){var a=range.document.createElement("a"),text="";if(opt.textValue){text=utils.html(opt.textValue);delete opt.textValue;}else{text=utils.html(opt.href);}domUtils.setAttributes(a,opt);range.insertNode(a);a[browser.ie?"innerText":"textContent"]=text;range.selectNode(a);}else{range.applyInlineStyle("a",opt);}}UE.commands["link"]={queryCommandState:function(){return this.highlight?-1:0;},execCommand:function(cmdName,opt){var range=new dom.Range(this.document),tds=this.currentSelectedArr;opt.data_ue_src&&(opt.data_ue_src=utils.unhtml(opt.data_ue_src));opt.href&&(opt.href=utils.unhtml(opt.href));opt.textValue&&(opt.textValue=utils.unhtml(opt.textValue));if(tds&&tds.length){for(var i=0,ti;ti=tds[i++];){if(domUtils.isEmptyNode(ti)){ti[browser.ie?"innerText":"textContent"]=utils.html(opt.textValue||opt.href);}doLink(range.selectNodeContents(ti),opt);}range.selectNodeContents(tds[0]).select();}else{doLink(range=this.selection.getRange(),opt);range.collapse().select(true);}},queryCommandValue:function(){var range=new dom.Range(this.document),tds=this.currentSelectedArr,as,node;if(tds&&tds.length){for(var i=0,ti;ti=tds[i++];){as=ti.getElementsByTagName("a");if(as[0]){return as[0];}}}else{range=this.selection.getRange();if(range.collapsed){node=this.selection.getStart();if(node&&(node=domUtils.findParentByTagName(node,"a",true))){return node;}}else{range.shrinkBoundary();var start=range.startContainer.nodeType==3||!range.startContainer.childNodes[range.startOffset]?range.startContainer:range.startContainer.childNodes[range.startOffset],end=range.endContainer.nodeType==3||range.endOffset==0?range.endContainer:range.endContainer.childNodes[range.endOffset-1],common=range.getCommonAncestor();node=domUtils.findParentByTagName(common,"a",true);if(!node&&common.nodeType==1){var as=common.getElementsByTagName("a"),ps,pe;for(var i=0,ci;ci=as[i++];){ps=domUtils.getPosition(ci,start),pe=domUtils.getPosition(ci,end);if((ps&domUtils.POSITION_FOLLOWING||ps&domUtils.POSITION_CONTAINS)&&(pe&domUtils.POSITION_PRECEDING||pe&domUtils.POSITION_CONTAINS)){node=ci;break;}}}return node;}}}};})();UE.commands["gmap"]=UE.commands["map"]={queryCommandState:function(){return this.highlight?-1:0;}};UE.plugins["insertframe"]=function(){var me=this;function deleteIframe(){me._iframe&&delete me._iframe;}me.addListener("selectionchange",function(){deleteIframe();});me.commands["insertframe"]={queryCommandState:function(){return this.highlight?-1:0;}};};UE.plugins["removeformat"]=function(){var me=this;me.setOpt({"removeFormatTags":"b,big,code,del,dfn,em,font,i,ins,kbd,q,samp,small,span,strike,strong,sub,sup,tt,u,var","removeFormatAttributes":"class,style,lang,width,height,align,hspace,valign"});me.commands["removeformat"]={execCommand:function(cmdName,tags,style,attrs,notIncludeA){var tagReg=new RegExp("^(?:"+(tags||this.options.removeFormatTags).replace(/,/g,"|")+")$","i"),removeFormatAttributes=style?[]:(attrs||this.options.removeFormatAttributes).split(","),range=new dom.Range(this.document),bookmark,node,parent,filter=function(node){return node.nodeType==1;};function isRedundantSpan(node){if(node.nodeType==3||node.tagName.toLowerCase()!="span"){return 0;}if(browser.ie){var attrs=node.attributes;if(attrs.length){for(var i=0,l=attrs.length;i"+(me.document.getElementById("editorinitialstyle")&&me.document.getElementById("editorinitialstyle").innerHTML)+"",cont=me.getContent();if(browser.ie){cont=cont.replace(/<\s*br\s*\/?\s*>/gi,"

");}d.open();d.write(""+style+''+(css?'':"")+(css&&js?'