(function(){UEDITOR_CONFIG=window.UEDITOR_CONFIG||{};var baidu=window.baidu||{};window.baidu=baidu;window.UE=baidu.editor={};UE.plugins={};UE.commands={};UE.instants={};UE.I18N={};UE.version="1.2.5.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.ie9Compat=document.documentMode==9;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,opera=browser.opera;var utils=UE.utils={each:function(obj,iterator,context){if(obj==null){return;}if(obj.length===+obj.length){for(var i=0,l=obj.length;i=start&&v===item){index=i;return false;}});return index;},removeItem:function(array,item){for(var i=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(){var tmpList=[];function getItem(doc,obj){try{for(var i=0,ci;ci=tmpList[i++];){if(ci.doc===doc&&ci.url==(obj.src||obj.href)){return ci;}}}catch(e){return null;}}return function(doc,obj,fn){var item=getItem(doc,obj);if(item){if(item.ready){fn&&fn();}else{item.funs.push(fn);}return;}tmpList.push({doc:doc,url:obj.src||obj.href,funs:[fn]});if(!doc.body){var html=[];for(var p in obj){if(p=="tag"){continue;}html.push(p+'="'+obj[p]+'"');}doc.write("<"+obj.tag+" "+html.join(" ")+" >");return;}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)){item=getItem(doc,obj);if(item.funs.length>0){item.ready=1;for(var fi;fi=item.funs.pop();){fi();}}element.onload=element.onreadystatechange=null;}};element.onerror=function(){throw Error("The load "+(obj.href||obj.src)+" fails,check the url settings of file editor_config.js ");};doc.getElementsByTagName("head")[0].appendChild(element);};}(),isEmptyObject:function(obj){if(obj==null){return true;}if(this.isArray(obj)||this.isString(obj)){return obj.length===0;}for(var key in obj){if(obj.hasOwnProperty(key)){return false;}}return true;},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+";;":";";});},clone:function(source,target){var tmp;target=target||{};for(var i in source){if(source.hasOwnProperty(i)){tmp=source[i];if(typeof tmp=="object"){target[i]=utils.isArray(tmp)?[]:{};utils.clone(source[i],target[i]);}else{target[i]=tmp;}}}return target;},transUnitToPx:function(val){if(!/(pt|cm)/.test(val)){return val;}var unit;val.replace(/([\d.]+)(\w+)/,function(str,v,u){val=v;unit=u;});switch(unit){case"cm":val=parseFloat(val)*25;break;case"pt":val=Math.round(parseFloat(val)*96/72);}return val+(val?"px":"");},domReady:function(){var fnArr=[];function doReady(doc){doc.isReady=true;for(var ci;ci=fnArr.pop();ci()){}}return function(onready,win){win=win||window;var doc=win.document;onready&&fnArr.push(onready);if(doc.readyState==="complete"){doReady(doc);}else{doc.isReady&&doReady(doc);if(browser.ie){(function(){if(doc.isReady){return;}try{doc.documentElement.doScroll("left");}catch(error){setTimeout(arguments.callee,0);return;}doReady(doc);})();win.attachEvent("onload",function(){doReady(doc);});}else{doc.addEventListener("DOMContentLoaded",function(){doc.removeEventListener("DOMContentLoaded",arguments.callee,false);doReady(doc);},false);win.addEventListener("load",function(){doReady(doc);},false);}}};}(),cssRule:browser.ie?function(key,style,doc){var indexList,index;doc=doc||document;if(doc.indexList){indexList=doc.indexList;}else{indexList=doc.indexList={};}var sheetStyle;if(!indexList[key]){if(style===undefined){return"";}sheetStyle=doc.createStyleSheet("",index=doc.styleSheets.length);indexList[key]=index;}else{sheetStyle=doc.styleSheets[indexList[key]];}if(style===undefined){return sheetStyle.cssText;}sheetStyle.cssText=style||"";}:function(key,style,doc){doc=doc||document;var head=doc.getElementsByTagName("head")[0],node;if(!(node=doc.getElementById(key))){if(style===undefined){return"";}node=doc.createElement("style");node.id=key;head.appendChild(node);}if(style===undefined){return node.innerHTML;}if(style!==""){node.innerHTML=style;}else{head.removeChild(node);}}};utils.each(["String","Function","Array","Number","RegExp"],function(v){UE.utils["is"+v]=function(obj){return Object.prototype.toString.apply(obj)=="[object "+v+"]";};});var EventBase=UE.EventBase=function(){};EventBase.prototype={addListener:function(types,listener){types=utils.trim(types).split(" ");for(var i=0,ti;ti=types[i++];){getListener(this,ti,true).push(listener);}},removeListener:function(types,listener){types=utils.trim(types).split(" ");for(var i=0,ti;ti=types[i++];){utils.removeItem(getListener(this,ti)||[],listener);}},fireEvent:function(types){types=utils.trim(types).split(" ");for(var i=0,ti;ti=types[i++];){var listeners=getListener(this,ti),r,t,k;if(listeners){k=listeners.length;while(k--){if(!listeners[k]){continue;}t=listeners[k].apply(this,arguments);if(t===true){return t;}if(t!==undefined){r=t;}}}if(t=this["on"+ti.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;}},mergeSibling:function(node,ignorePre,ignoreNext){function merge(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);}}!ignorePre&&merge("previousSibling","firstChild",node);!ignoreNext&&merge("nextSibling","lastChild",node);},unSelectable:ie||browser.opera?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");}}}:function(node){node.style.MozUserSelect=node.style.webkitUserSelect=node.style.KhtmlUserSelect="none";},removeAttributes:function(node,attrNames){attrNames=utils.isArray(attrNames)?attrNames:utils.trim(attrNames).replace(/[ ]{2,}/g," ").split(" ");for(var i=0,ci;ci=attrNames[i++];){ci=attrFix[ci]||ci;switch(ci){case"className":node[ci]="";break;case"style":node.style.cssText="";!browser.ie&&node.removeAttributeNode(node.getAttributeNode("style"));}node.removeAttribute(ci);}},createElement:function(doc,tag,attrs){return domUtils.setAttributes(doc.createElement(tag),attrs);},setAttributes:function(node,attrs){for(var attr in attrs){if(attrs.hasOwnProperty(attr)){var value=attrs[attr];switch(attr){case"class":node.className=value;break;case"style":node.style.cssText=node.style.cssText+";"+value;break;case"innerHTML":node[attr]=value;break;case"value":node.value=value;break;default:node.setAttribute(attrFix[attr]||attr,value);}}}return node;},getComputedStyle:function(element,styleName){var pros="width height top left";if(pros.indexOf(styleName)>-1){return element["offset"+styleName.replace(/^\w/,function(s){return s.toUpperCase();})]+"px";}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"";}return utils.transUnitToPx(utils.fixColor(styleName,value));},removeClasses:function(elm,classNames){classNames=utils.isArray(classNames)?classNames:utils.trim(classNames).replace(/[ ]{2,}/g," ").split(" ");for(var i=0,ci,cls=elm.className;ci=classNames[i++];){cls=cls.replace(new RegExp("\\b"+ci+"\\b"),"");}cls=utils.trim(cls).replace(/[ ]{2,}/g," ");if(cls){elm.className=cls;}else{domUtils.removeAttributes(elm,["class"]);}},addClass:function(elm,classNames){if(!elm){return;}classNames=utils.trim(classNames).replace(/[ ]{2,}/g," ").split(" ");for(var i=0,ci,cls=elm.className;ci=classNames[i++];){if(!new RegExp("\\b"+ci+"\\b").test(cls)){elm.className+=" "+ci;}}},hasClass:function(element,className){if(utils.isRegExp(className)){return className.test(element.className);}className=utils.trim(className).replace(/[ ]{2,}/g," ").split(" ");for(var i=0,ci,cls=element.className;ci=className[i++];){if(!new RegExp("\\b"+ci+"\\b","i").test(cls)){return false;}}return i-1==className.length;},preventDefault:function(evt){evt.preventDefault?evt.preventDefault():(evt.returnValue=false);},removeStyle:function(element,name){if(browser.ie&&browser.version>8){element.style.cssText=element.style.cssText.replace(new RegExp(name+"s*:s*[^;]+;?"),"");}else{if(element.style.removeProperty){element.style.removeProperty(name);}else{element.style.removeAttribute(utils.cssStyleToDomStyle(name));}}if(!element.style.cssText){domUtils.removeAttributes(element,["style"]);}},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_custom_node_");},isTagNode:function(node,tagName){return node.nodeType==1&&new RegExp(node.tagName,"i").test(tagName);},filterNodeList:function(nodelist,filter,forAll){var results=[];if(!utils.isFunction(filter)){var str=filter;filter=function(n){return utils.indexOf(utils.isArray(str)?str:str.split(" "),n.tagName.toLowerCase())!=-1;};}utils.each(nodelist,function(n){filter(n)&&results.push(n);});return results.length==0?null:results.length==1||!forAll?results[0]:results;},isInNodeEndBoundary:function(rng,node){var start=rng.startContainer;if(start.nodeType==3&&rng.startOffset!=start.nodeValue.length){return 0;}if(start.nodeType==1&&rng.startOffset!=start.childNodes.length){return 0;}while(start!==node){if(start.nextSibling){return 0;}start=start.parentNode;}return 1;},isBoundaryNode:function(node,dir){var tmp;while(!domUtils.isBody(node)){tmp=node;node=node.parentNode;if(tmp!==node[dir]){return false;}}return true;}};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 selectOneNode(rng){return !rng.collapsed&&rng.startContainer.nodeType==1&&rng.startContainer===rng.endContainer&&rng.endOffset-rng.startOffset==1;}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)&&(browser.safari?!(domUtils.getPosition(tmpNode,excludeNode)&domUtils.POSITION_CONTAINS):!tmpNode.contains(excludeNode))){fillData=tmpNode.parentNode;domUtils.remove(tmpNode);tmpNode=fillData;}}else{fillData.nodeValue=fillData.nodeValue.replace(fillCharReg,"");}}}catch(e){}}function mergeSibling(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(){var txt;if(!this.collapsed){execContentsAction(this,1);}if(browser.webkit){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);},setEndBefore:function(node){return this.setEnd(node.parentNode,domUtils.getNodeIndex(node));},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);},selectNode:function(node){return this.setStartBefore(node).setEndAfter(node);},selectNodeContents:function(node){return this.setStart(node,0).setEndAtLast(node);},cloneRange:function(){var me=this;return new Range(me.document).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;function check(node){return node.nodeType==1&&!domUtils.isBookmarkNode(node)&&!dtd.$empty[node.tagName]&&!dtd.$nonChild[node.tagName];}while(me.startContainer.nodeType==1&&(child=me.startContainer.childNodes[me.startOffset])&&check(child)){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])&&check(child)){me.setEnd(child,child.childNodes.length);}}return me;},getCommonAncestor:function(includeSelf,ignoreTextNode){var me=this,start=me.startContainer,end=me.endContainer;if(start===end){if(includeSelf&&selectOneNode(this)){start=start.childNodes[me.startOffset];if(start.nodeType==1){return start;}}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{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,noFillData){return this.collapse(!toEnd).select(noFillData);},createBookmark:function(serialize,same){var endNode,startNode=this.document.createElement("span");startNode.style.cssText="display:none;line-height:0px;";startNode.appendChild(this.document.createTextNode("\u200D"));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().insertNode(endNode).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.mergeSibling(elm);domUtils.clearEmptySibling(elm);}domUtils.mergeChild(elm,attrs);current=domUtils.getNextDomNode(elm,false,filterFn);domUtils.mergeToParent(elm);if(node===end){break;}}else{current=domUtils.getNextDomNode(current,true,filterFn);}}return this.moveToBookmark(bookmark);},removeInlineStyle:function(tagNames){if(this.collapsed){return this;}tagNames=utils.isArray(tagNames)?tagNames:[tagNames];this.shrinkBoundary().adjustmentBoundary();var start=this.startContainer,end=this.endContainer;while(1){if(start.nodeType==1){if(utils.indexOf(tagNames,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(tagNames,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(tagNames,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(selectOneNode(range)){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(noFillData,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(!noFillData&&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;mergeSibling(tmp,"previousSibling");mergeSibling(start,"nextSibling");nativeRange.moveStart("character",-1);nativeRange.collapse(true);}}this.moveToBookmark(bookmark);tmp&&domUtils.remove(tmp);try{nativeRange.select();}catch(e){}return this;}:function(notInsertFillData){function checkOffset(rng){function check(node,offset,dir){if(node.nodeType==3&&node.nodeValue.length0){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){try{transformIERangeToRange(nativeRange,range);}catch(e){optimze(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"";},clearRange:function(){this.getNative()[browser.ie?"empty":"removeAllRanges"]();}};})();(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.createElement(document,"textarea",{"name":editor.options.textarea,"id":"ueditor_textarea_"+editor.options.textarea,"style":"display:none"}));editor.textarea=textarea;}textarea.value=editor.hasContents()?(editor.options.allHtmlEnabled?editor.getAllHtml():editor.getContent(null,null,true)):"";}var Editor=UE.Editor=function(options){var me=this;me.uid=uid++;EventBase.call(me);me.commands={};me.options=utils.extend(utils.clone(options||{}),UEDITOR_CONFIG,true);me.shortcutkeys={};me.setOpt({isShow:true,initialContent:"欢迎使用ueditor!",autoClearinitialContent:false,iframeCssUrl:me.options.UEDITOR_HOME_URL+"themes/iframe.css",textarea:"editorValue",focus:false,initialFrameWidth:1000,initialFrameHeight:me.options.minFrameHeight||320,minFrameWidth:800,minFrameHeight:220,autoClearEmptyNode:true,fullscreen:false,readonly:false,zIndex:999,imagePopup:true,enterTag:"p",pageBreakTag:"_baidu_page_break_tag_",customDomain:false,lang:"zh-cn",langPath:me.options.UEDITOR_HOME_URL+"lang/",theme:"default",themePath:me.options.UEDITOR_HOME_URL+"themes/",allHtmlEnabled:false,scaleEnabled:false,tableNativeEditInFF:false});utils.loadFile(document,{src:me.options.langPath+me.options.lang+"/"+me.options.lang+".js",tag:"script",type:"text/javascript",defer:"defer"},function(){for(var pi in UE.plugins){UE.plugins[pi].call(me);}me.langIsReady=true;me.fireEvent("langReady");});UE.instants["ueditorInstant"+me.uid]=me;};Editor.prototype={ready:function(fn){var me=this;if(fn){me.isReady?fn.apply(me):me.addListener("ready",fn);}},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");var container=me.container.parentNode;var textarea=me.textarea;if(!textarea){textarea=document.createElement("textarea");container.parentNode.insertBefore(textarea,container);}else{textarea.style.display="";}textarea.style.width=container.offsetWidth+"px";textarea.style.height=container.offsetHeight+"px";textarea.value=me.getContent();textarea.id=me.key;container.innerHTML="";domUtils.remove(container);var key=me.key;for(var p in me){if(me.hasOwnProperty(p)){delete this[p];}}UE.delEditor(key);},render:function(container){var me=this,options=me.options;if(utils.isString(container)){container=document.getElementById(container);}if(container){var useBodyAsViewport=ie&&browser.version<9,html=(ie&&browser.version<9?"":"")+""+(options.iframeCssUrl?"":"")+"";if(options.customDomain&&document.domain!=location.hostname){html+="