(function(window,undefined){if(window.KindEditor){return}if(!window.console){window.console={}}if(!console.log){console.log=function(){}}var _VERSION="4.1.7 (2013-04-21)",_ua=navigator.userAgent.toLowerCase(),_IE=_ua.indexOf("msie")>-1&&_ua.indexOf("opera")==-1,_GECKO=_ua.indexOf("gecko")>-1&&_ua.indexOf("khtml")==-1,_WEBKIT=_ua.indexOf("applewebkit")>-1,_OPERA=_ua.indexOf("opera")>-1,_MOBILE=_ua.indexOf("mobile")>-1,_IOS=/ipad|iphone|ipod/.test(_ua),_QUIRKS=document.compatMode!="CSS1Compat",_matches=/(?:msie|firefox|webkit|opera)[\/:\s](\d+)/.exec(_ua),_V=_matches?_matches[1]:"0",_TIME=new Date().getTime();function _isArray(val){if(!val){return false}return Object.prototype.toString.call(val)==="[object Array]"}function _isFunction(val){if(!val){return false}return Object.prototype.toString.call(val)==="[object Function]"}function _inArray(val,arr){for(var i=0,len=arr.length;i=0}function _addUnit(val,unit){unit=unit||"px";return val&&/^\d+$/.test(val)?val+unit:val}function _removeUnit(val){var match;return val&&(match=/(\d+)/.exec(val))?parseInt(match[1],10):0}function _escape(val){return val.replace(/&/g,"&").replace(//g,">").replace(/"/g,""")}function _unescape(val){return val.replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/&/g,"&")}function _toCamel(str){var arr=str.split("-");str="";_each(arr,function(key,val){str+=(key>0)?val.charAt(0).toUpperCase()+val.substr(1):val});return str}function _toHex(val){function hex(d){var s=parseInt(d,10).toString(16).toUpperCase();return s.length>1?s:"0"+s}return val.replace(/rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/ig,function($0,$1,$2,$3){return"#"+hex($1)+hex($2)+hex($3)})}function _toMap(val,delimiter){delimiter=delimiter===undefined?",":delimiter;var map={},arr=_isArray(val)?val:val.split(delimiter),match;_each(arr,function(key,val){if((match=/^(\d+)\.\.(\d+)$/.exec(val))){for(var i=parseInt(match[1],10);i<=parseInt(match[2],10);i++){map[i.toString()]=true}}else{map[val]=true}});return map}function _toArray(obj,offset){return Array.prototype.slice.call(obj,offset||0)}function _undef(val,defaultVal){return val===undefined?defaultVal:val}function _invalidUrl(url){return !url||/[<>"]/.test(url)}function _addParam(url,param){return url.indexOf("?")>=0?url+"&"+param:url+"?"+param}function _extend(child,parent,proto){if(!proto){proto=parent;parent=null}var childProto;if(parent){var fn=function(){};fn.prototype=parent.prototype;childProto=new fn();_each(proto,function(key,val){childProto[key]=val})}else{childProto=proto}childProto.constructor=child;child.prototype=childProto;child.parent=parent?parent.prototype:null}function _json(text){var match;if((match=/\{[\s\S]*\}|\[[\s\S]*\]/.exec(text))){text=match[0]}var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;cx.lastIndex=0;if(cx.test(text)){text=text.replace(cx,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})}if(/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,""))){return eval("("+text+")")}throw"JSON parse error"}var _round=Math.round;var K={DEBUG:false,VERSION:_VERSION,IE:_IE,GECKO:_GECKO,WEBKIT:_WEBKIT,OPERA:_OPERA,V:_V,TIME:_TIME,each:_each,isArray:_isArray,isFunction:_isFunction,inArray:_inArray,inString:_inString,trim:_trim,addUnit:_addUnit,removeUnit:_removeUnit,escape:_escape,unescape:_unescape,toCamel:_toCamel,toHex:_toHex,toMap:_toMap,toArray:_toArray,undef:_undef,invalidUrl:_invalidUrl,addParam:_addParam,extend:_extend,json:_json};var _INLINE_TAG_MAP=_toMap("a,abbr,acronym,b,basefont,bdo,big,br,button,cite,code,del,dfn,em,font,i,img,input,ins,kbd,label,map,q,s,samp,select,small,span,strike,strong,sub,sup,textarea,tt,u,var"),_BLOCK_TAG_MAP=_toMap("address,applet,blockquote,body,center,dd,dir,div,dl,dt,fieldset,form,frameset,h1,h2,h3,h4,h5,h6,head,hr,html,iframe,ins,isindex,li,map,menu,meta,noframes,noscript,object,ol,p,pre,script,style,table,tbody,td,tfoot,th,thead,title,tr,ul"),_SINGLE_TAG_MAP=_toMap("area,base,basefont,br,col,frame,hr,img,input,isindex,link,meta,param,embed"),_STYLE_TAG_MAP=_toMap("b,basefont,big,del,em,font,i,s,small,span,strike,strong,sub,sup,u"),_CONTROL_TAG_MAP=_toMap("img,table,input,textarea,button"),_PRE_TAG_MAP=_toMap("pre,style,script"),_NOSPLIT_TAG_MAP=_toMap("html,head,body,td,tr,table,ol,ul,li"),_AUTOCLOSE_TAG_MAP=_toMap("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr"),_FILL_ATTR_MAP=_toMap("checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected"),_VALUE_TAG_MAP=_toMap("input,button,textarea,select");function _getBasePath(){var els=document.getElementsByTagName("script"),src;for(var i=0,len=els.length;i
'};var _useCapture=false;var _INPUT_KEY_MAP=_toMap("8,9,13,32,46,48..57,59,61,65..90,106,109..111,188,190..192,219..222");var _CURSORMOVE_KEY_MAP=_toMap("33..40");var _CHANGE_KEY_MAP={};_each(_INPUT_KEY_MAP,function(key,val){_CHANGE_KEY_MAP[key]=val});_each(_CURSORMOVE_KEY_MAP,function(key,val){_CHANGE_KEY_MAP[key]=val});function _bindEvent(el,type,fn){if(el.addEventListener){el.addEventListener(type,fn,_useCapture)}else{if(el.attachEvent){el.attachEvent("on"+type,fn)}}}function _unbindEvent(el,type,fn){if(el.removeEventListener){el.removeEventListener(type,fn,_useCapture)}else{if(el.detachEvent){el.detachEvent("on"+type,fn)}}}var _EVENT_PROPS=("altKey,attrChange,attrName,bubbles,button,cancelable,charCode,clientX,clientY,ctrlKey,currentTarget,data,detail,eventPhase,fromElement,handler,keyCode,metaKey,newValue,offsetX,offsetY,originalTarget,pageX,pageY,prevValue,relatedNode,relatedTarget,screenX,screenY,shiftKey,srcElement,target,toElement,view,wheelDelta,which").split(",");function KEvent(el,event){this.init(el,event)}_extend(KEvent,{init:function(el,event){var self=this,doc=el.ownerDocument||el.document||el;self.event=event;_each(_EVENT_PROPS,function(key,val){self[val]=event[val]});if(!self.target){self.target=self.srcElement||doc}if(self.target.nodeType===3){self.target=self.target.parentNode}if(!self.relatedTarget&&self.fromElement){self.relatedTarget=self.fromElement===self.target?self.toElement:self.fromElement}if(self.pageX==null&&self.clientX!=null){var d=doc.documentElement,body=doc.body;self.pageX=self.clientX+(d&&d.scrollLeft||body&&body.scrollLeft||0)-(d&&d.clientLeft||body&&body.clientLeft||0);self.pageY=self.clientY+(d&&d.scrollTop||body&&body.scrollTop||0)-(d&&d.clientTop||body&&body.clientTop||0)}if(!self.which&&((self.charCode||self.charCode===0)?self.charCode:self.keyCode)){self.which=self.charCode||self.keyCode}if(!self.metaKey&&self.ctrlKey){self.metaKey=self.ctrlKey}if(!self.which&&self.button!==undefined){self.which=(self.button&1?1:(self.button&2?3:(self.button&4?2:0)))}switch(self.which){case 186:self.which=59;break;case 187:case 107:case 43:self.which=61;break;case 189:case 45:self.which=109;break;case 42:self.which=106;break;case 47:self.which=111;break;case 78:self.which=110;break}if(self.which>=96&&self.which<=105){self.which-=48}},preventDefault:function(){var ev=this.event;if(ev.preventDefault){ev.preventDefault()}ev.returnValue=false},stopPropagation:function(){var ev=this.event;if(ev.stopPropagation){ev.stopPropagation()}ev.cancelBubble=true},stop:function(){this.preventDefault();this.stopPropagation()}});var _eventExpendo="kindeditor_"+_TIME,_eventId=0,_eventData={};function _getId(el){return el[_eventExpendo]||null}function _setId(el){el[_eventExpendo]=++_eventId;return _eventId}function _removeId(el){try{delete el[_eventExpendo]}catch(e){if(el.removeAttribute){el.removeAttribute(_eventExpendo)}}}function _bind(el,type,fn){if(type.indexOf(",")>=0){_each(type.split(","),function(){_bind(el,this,fn)});return}var id=_getId(el);if(!id){id=_setId(el)}if(_eventData[id]===undefined){_eventData[id]={}}var events=_eventData[id][type];if(events&&events.length>0){_unbindEvent(el,type,events[0])}else{_eventData[id][type]=[];_eventData[id].el=el}events=_eventData[id][type];if(events.length===0){events[0]=function(e){var kevent=e?new KEvent(el,e):undefined;_each(events,function(i,event){if(i>0&&event){event.call(el,kevent)}})}}if(_inArray(fn,events)<0){events.push(fn)}_bindEvent(el,type,events[0])}function _unbind(el,type,fn){if(type&&type.indexOf(",")>=0){_each(type.split(","),function(){_unbind(el,this,fn)});return}var id=_getId(el);if(!id){return}if(type===undefined){if(id in _eventData){_each(_eventData[id],function(key,events){if(key!="el"&&events.length>0){_unbindEvent(el,key,events[0])}});delete _eventData[id];_removeId(el)}return}if(!_eventData[id]){return}var events=_eventData[id][type];if(events&&events.length>0){if(fn===undefined){_unbindEvent(el,type,events[0]);delete _eventData[id][type]}else{_each(events,function(i,event){if(i>0&&event===fn){events.splice(i,1)}});if(events.length==1){_unbindEvent(el,type,events[0]);delete _eventData[id][type]}}var count=0;_each(_eventData[id],function(){count++});if(count<2){delete _eventData[id];_removeId(el)}}}function _fire(el,type){if(type.indexOf(",")>=0){_each(type.split(","),function(){_fire(el,this)});return}var id=_getId(el);if(!id){return}var events=_eventData[id][type];if(_eventData[id]&&events&&events.length>0){events[0]()}}function _ctrl(el,key,fn){var self=this;key=/^\d{2,}$/.test(key)?key:key.toUpperCase().charCodeAt(0);_bind(el,"keydown",function(e){if(e.ctrlKey&&e.which==key&&!e.shiftKey&&!e.altKey){fn.call(el);e.stop()}})}function _ready(fn){var loaded=false;function readyFunc(){if(!loaded){loaded=true;fn(KindEditor)}}function ieReadyFunc(){if(!loaded){try{document.documentElement.doScroll("left")}catch(e){setTimeout(ieReadyFunc,100);return}readyFunc()}}function ieReadyStateFunc(){if(document.readyState==="complete"){readyFunc()}}if(document.addEventListener){_bind(document,"DOMContentLoaded",readyFunc)}else{if(document.attachEvent){_bind(document,"readystatechange",ieReadyStateFunc);var toplevel=false;try{toplevel=window.frameElement==null}catch(e){}if(document.documentElement.doScroll&&toplevel){ieReadyFunc()}}}_bind(window,"load",readyFunc)}if(_IE){window.attachEvent("onunload",function(){_each(_eventData,function(key,events){if(events.el){_unbind(events.el)}})})}K.ctrl=_ctrl;K.ready=_ready;function _getCssList(css){var list={},reg=/\s*([\w\-]+)\s*:([^;]*)(;|$)/g,match;while((match=reg.exec(css))){var key=_trim(match[1].toLowerCase()),val=_trim(_toHex(match[2]));list[key]=val}return list}function _getAttrList(tag){var list={},reg=/\s+(?:([\w\-:]+)|(?:([\w\-:]+)=([^\s"'<>]+))|(?:([\w\-:"]+)="([^"]*)")|(?:([\w\-:"]+)='([^']*)'))(?=(?:\s|\/|>)+)/g,match;while((match=reg.exec(tag))){var key=(match[1]||match[2]||match[4]||match[6]).toLowerCase(),val=(match[2]?match[3]:(match[4]?match[5]:match[7]))||"";list[key]=val}return list}function _addClassToTag(tag,className){if(/\s+class\s*=/.test(tag)){tag=tag.replace(/(\s+class=["']?)([^"']*)(["']?[\s>])/,function($0,$1,$2,$3){if((" "+$2+" ").indexOf(" "+className+" ")<0){return $2===""?$1+className+$3:$1+$2+" "+className+$3}else{return $0}})}else{tag=tag.substr(0,tag.length-1)+' class="'+className+'">'}return tag}function _formatCss(css){var str="";_each(_getCssList(css),function(key,val){str+=key+":"+val+";"});return str}function _formatUrl(url,mode,host,pathname){mode=_undef(mode,"").toLowerCase();if(url.substr(0,5)!="data:"){url=url.replace(/([^:])\/\//g,"$1/")}if(_inArray(mode,["absolute","relative","domain"])<0){return url}host=host||location.protocol+"//"+location.host;if(pathname===undefined){var m=location.pathname.match(/^(\/.*)\//);pathname=m?m[1]:""}var match;if((match=/^(\w+:\/\/[^\/]*)/.exec(url))){if(match[1]!==host){return url}}else{if(/^\w+:/.test(url)){return url}}function getRealPath(path){var parts=path.split("/"),paths=[];for(var i=0,len=parts.length;i0){paths.pop()}}else{if(part!==""&&part!="."){paths.push(part)}}}return"/"+paths.join("/")}if(/^\//.test(url)){url=host+getRealPath(url.substr(1))}else{if(!/^\w+:\/\//.test(url)){url=host+getRealPath(pathname+"/"+url)}}function getRelativePath(path,depth){if(url.substr(0,path.length)===path){var arr=[];for(var i=0;i0){prefix+="/"+arr.join("/")}if(pathname=="/"){prefix+="/"}return prefix+url.substr(path.length)}else{if((match=/^(.*)\//.exec(path))){return getRelativePath(match[1],++depth)}}}if(mode==="relative"){url=getRelativePath(host+pathname,0).substr(2)}else{if(mode==="absolute"){if(url.substr(0,host.length)===host){url=url.substr(host.length)}}}return url}function _formatHtml(html,htmlTags,urlType,wellFormatted,indentChar){urlType=urlType||"";wellFormatted=_undef(wellFormatted,false);indentChar=_undef(indentChar,"\t");var fontSizeList="xx-small,x-small,small,medium,large,x-large,xx-large".split(",");html=html.replace(/(<(?:pre|pre\s[^>]*)>)([\s\S]*?)(<\/pre>)/ig,function($0,$1,$2,$3){return $1+$2.replace(/<(?:br|br\s[^>]*)>/ig,"\n")+$3});html=html.replace(/<(?:br|br\s[^>]*)\s*\/?>\s*<\/p>/ig,"

");html=html.replace(/(<(?:p|p\s[^>]*)>)\s*(<\/p>)/ig,"$1
$2");html=html.replace(/\u200B/g,"");html=html.replace(/\u00A9/g,"©");var htmlTagMap={};if(htmlTags){_each(htmlTags,function(key,val){var arr=key.split(",");for(var i=0,len=arr.length;i]*)>)([\s\S]*?)(<\/script>)/ig,"")}if(!htmlTagMap.style){html=html.replace(/(<(?:style|style\s[^>]*)>)([\s\S]*?)(<\/style>)/ig,"")}}var re=/([ \t\n\r]*)<(\/)?([\w\-:]+)((?:\s+|(?:\s+[\w\-:]+)|(?:\s+[\w\-:]+=[^\s"'<>]+)|(?:\s+[\w\-:"]+="[^"]*")|(?:\s+[\w\-:"]+='[^']*'))*)(\/)?>([ \t\n\r]*)/g;var tagStack=[];html=html.replace(re,function($0,$1,$2,$3,$4,$5,$6){var full=$0,startNewline=$1||"",startSlash=$2||"",tagName=$3.toLowerCase(),attr=$4||"",endSlash=$5?" "+$5:"",endNewline=$6||"";if(htmlTags&&!htmlTagMap[tagName]){return""}if(endSlash===""&&_SINGLE_TAG_MAP[tagName]){endSlash=" /"}if(_INLINE_TAG_MAP[tagName]){if(startNewline){startNewline=" "}if(endNewline){endNewline=" "}}if(_PRE_TAG_MAP[tagName]){if(startSlash){endNewline="\n"}else{startNewline="\n"}}if(wellFormatted&&tagName=="br"){endNewline="\n"}if(_BLOCK_TAG_MAP[tagName]&&!_PRE_TAG_MAP[tagName]){if(wellFormatted){if(startSlash&&tagStack.length>0&&tagStack[tagStack.length-1]===tagName){tagStack.pop()}else{tagStack.push(tagName)}startNewline="\n";endNewline="\n";for(var i=0,len=startSlash?tagStack.length:tagStack.length-1;i=0){attrMap[key]=_formatUrl(val,urlType)}if(htmlTags&&key!=="style"&&!htmlTagMap[tagName]["*"]&&!htmlTagMap[tagName][key]||tagName==="body"&&key==="contenteditable"||/^kindeditor_\d+$/.test(key)){delete attrMap[key]}if(key==="style"&&val!==""){var styleMap=_getCssList(val);_each(styleMap,function(k,v){if(htmlTags&&!htmlTagMap[tagName].style&&!htmlTagMap[tagName]["."+k]){delete styleMap[k]}});var style="";_each(styleMap,function(k,v){style+=k+":"+v+";"});attrMap.style=style}});attr="";_each(attrMap,function(key,val){if(key==="style"&&val===""){return}val=val.replace(/"/g,""");attr+=" "+key+'="'+val+'"'})}if(tagName==="font"){tagName="span"}return startNewline+"<"+startSlash+tagName+attr+endSlash+">"+endNewline});html=html.replace(/(<(?:pre|pre\s[^>]*)>)([\s\S]*?)(<\/pre>)/ig,function($0,$1,$2,$3){return $1+$2.replace(/\n/g,'\n')+$3});html=html.replace(/\n\s*\n/g,"\n");html=html.replace(/\n/g,"\n");return _trim(html)}function _clearMsWord(html,htmlTags){html=html.replace(//ig,"").replace(//ig,"").replace(/]*>[\s\S]*?<\/style>/ig,"").replace(/]*>[\s\S]*?<\/script>/ig,"").replace(/]+>[\s\S]*?<\/w:[^>]+>/ig,"").replace(/]+>[\s\S]*?<\/o:[^>]+>/ig,"").replace(/[\s\S]*?<\/xml>/ig,"").replace(/<(?:table|td)[^>]*>/ig,function(full){return full.replace(/border-bottom:([#\w\s]+)/ig,"border:$1")});return _formatHtml(html,htmlTags)}function _mediaType(src){if(/\.(rm|rmvb)(\?|$)/i.test(src)){return"audio/x-pn-realaudio-plugin"}if(/\.(swf|flv)(\?|$)/i.test(src)){return"application/x-shockwave-flash"}return"video/x-ms-asf-plugin"}function _mediaClass(type){if(/realaudio/i.test(type)){return"ke-rm"}if(/flash/i.test(type)){return"ke-flash"}return"ke-media"}function _mediaAttrs(srcTag){return _getAttrList(unescape(srcTag))}function _mediaEmbed(attrs){var html="0){style+="width:"+width+"px;"}if(height>0){style+="height:"+height+"px;"}var html='';return html}function _tmpl(str,data){var fn=new Function("obj","var p=[],print=function(){p.push.apply(p,arguments);};with(obj){p.push('"+str.replace(/[\r\t\n]/g," ").split("<%").join("\t").replace(/((^|%>)[^\t]*)'/g,"$1\r").replace(/\t=(.*?)%>/g,"',$1,'").split("\t").join("');").split("%>").join("p.push('").split("\r").join("\\'")+"');}return p.join('');");return data?fn(data):fn}K.formatUrl=_formatUrl;K.formatHtml=_formatHtml;K.getCssList=_getCssList;K.getAttrList=_getAttrList;K.mediaType=_mediaType;K.mediaAttrs=_mediaAttrs;K.mediaEmbed=_mediaEmbed;K.mediaImg=_mediaImg;K.clearMsWord=_clearMsWord;K.tmpl=_tmpl;function _contains(nodeA,nodeB){if(nodeA.nodeType==9&&nodeB.nodeType!=9){return true}while((nodeB=nodeB.parentNode)){if(nodeB==nodeA){return true}}return false}var _getSetAttrDiv=document.createElement("div");_getSetAttrDiv.setAttribute("className","t");var _GET_SET_ATTRIBUTE=_getSetAttrDiv.className!=="t";function _getAttr(el,key){key=key.toLowerCase();var val=null;if(!_GET_SET_ATTRIBUTE&&el.nodeName.toLowerCase()!="script"){var div=el.ownerDocument.createElement("div");div.appendChild(el.cloneNode(false));var list=_getAttrList(_unescape(div.innerHTML));if(key in list){val=list[key]}}else{try{val=el.getAttribute(key,2)}catch(e){val=el.getAttribute(key,1)}}if(key==="style"&&val!==null){val=_formatCss(val)}return val}function _queryAll(expr,root){var exprList=expr.split(",");if(exprList.length>1){var mergedResults=[];_each(exprList,function(){_each(_queryAll(this,root),function(){if(_inArray(this,mergedResults)<0){mergedResults.push(this)}})});return mergedResults}root=root||document;function escape(str){if(typeof str!="string"){return str}return str.replace(/([^\w\-])/g,"\\$1")}function stripslashes(str){return str.replace(/\\/g,"")}function cmpTag(tagA,tagB){return tagA==="*"||tagA.toLowerCase()===escape(tagB.toLowerCase())}function byId(id,tag,root){var arr=[],doc=root.ownerDocument||root,el=doc.getElementById(stripslashes(id));if(el){if(cmpTag(tag,el.nodeName)&&_contains(root,el)){arr.push(el)}}return arr}function byClass(className,tag,root){var doc=root.ownerDocument||root,arr=[],els,i,len,el;if(root.getElementsByClassName){els=root.getElementsByClassName(stripslashes(className));for(i=0,len=els.length;i-1){arr.push(el)}}}}}return arr}function byName(name,tag,root){var arr=[],doc=root.ownerDocument||root,els=doc.getElementsByName(stripslashes(name)),el;for(var i=0,len=els.length;i])+)/.exec(expr);var tag=matches?matches[1]:"*";if((matches=/#((?:[\w\-]|\\.)+)$/.exec(expr))){arr=byId(matches[1],tag,root)}else{if((matches=/\.((?:[\w\-]|\\.)+)$/.exec(expr))){arr=byClass(matches[1],tag,root)}else{if((matches=/\[((?:[\w\-]|\\.)+)\]/.exec(expr))){arr=byAttr(matches[1].toLowerCase(),null,tag,root)}else{if((matches=/\[((?:[\w\-]|\\.)+)\s*=\s*['"]?((?:\\.|[^'"]+)+)['"]?\]/.exec(expr))){var key=matches[1].toLowerCase(),val=matches[2];if(key==="id"){arr=byId(val,tag,root)}else{if(key==="class"){arr=byClass(val,tag,root)}else{if(key==="name"){arr=byName(val,tag,root)}else{arr=byAttr(key,val,tag,root)}}}}else{var els=root.getElementsByTagName(tag),el;for(var i=0,len=els.length;i])+|[\s>])/g;while((arr=re.exec(expr))){if(arr[1]!==" "){parts.push(arr[1])}}var results=[];if(parts.length==1){return select(parts[0],root)}var isChild=false,part,els,subResults,val,v,i,j,k,length,len,l;for(i=0,lenth=parts.length;i"){isChild=true;continue}if(i>0){els=[];for(j=0,len=results.length;j0?arr[0]:null}K.query=_query;K.queryAll=_queryAll;function _get(val){return K(val)[0]}function _getDoc(node){if(!node){return document}return node.ownerDocument||node.document||node}function _getWin(node){if(!node){return window}var doc=_getDoc(node);return doc.parentWindow||doc.defaultView}function _setHtml(el,html){if(el.nodeType!=1){return}var doc=_getDoc(el);try{el.innerHTML=''+html;var temp=doc.getElementById("__kindeditor_temp_tag__");temp.parentNode.removeChild(temp)}catch(e){K(el).empty();K("@"+html,doc).each(function(){el.appendChild(this)})}}function _hasClass(el,cls){return _inString(cls,el.className," ")}function _setAttr(el,key,val){if(_IE&&_V<8&&key.toLowerCase()=="class"){key="className"}el.setAttribute(key,""+val)}function _removeAttr(el,key){if(_IE&&_V<8&&key.toLowerCase()=="class"){key="className"}_setAttr(el,key,"");el.removeAttribute(key)}function _getNodeName(node){if(!node||!node.nodeName){return""}return node.nodeName.toLowerCase()}function _computedCss(el,key){var self=this,win=_getWin(el),camelKey=_toCamel(key),val="";if(win.getComputedStyle){var style=win.getComputedStyle(el,null);val=style[camelKey]||style.getPropertyValue(key)||el.style[camelKey]}else{if(el.currentStyle){val=el.currentStyle[camelKey]||el.style[camelKey]}}return val}function _hasVal(node){return !!_VALUE_TAG_MAP[_getNodeName(node)]}function _docElement(doc){doc=doc||document;return _QUIRKS?doc.body:doc.documentElement}function _docHeight(doc){var el=_docElement(doc);return Math.max(el.scrollHeight,el.clientHeight)}function _docWidth(doc){var el=_docElement(doc);return Math.max(el.scrollWidth,el.clientWidth)}function _getScrollPos(doc){doc=doc||document;var x,y;if(_IE||_OPERA){x=_docElement(doc).scrollLeft;y=_docElement(doc).scrollTop}else{x=_getWin(doc).scrollX;y=_getWin(doc).scrollY}return{x:x,y:y}}function KNode(node){this.init(node)}_extend(KNode,{init:function(node){var self=this;node=_isArray(node)?node:[node];var length=0;for(var i=0,len=node.length;i0?self[0].nodeType:null;self.win=_getWin(self[0])},each:function(fn){var self=this;for(var i=0;i0?list.eq(0):null},last:function(){var list=this.children();return list.length>0?list.eq(list.length-1):null},index:function(){if(this.length<1){return -1}var i=-1,sibling=this[0];while(sibling){i++;sibling=sibling.previousSibling}return i},prev:function(){if(this.length<1){return null}var node=this[0].previousSibling;return node?new KNode(node):null},next:function(){if(this.length<1){return null}var node=this[0].nextSibling;return node?new KNode(node):null},scan:function(fn,order){if(this.length<1){return}order=(order===undefined)?true:order;function walk(node){var n=order?node.firstChild:node.lastChild;while(n){var next=order?n.nextSibling:n.previousSibling;if(fn(n)===false){return false}if(walk(n)===false){return false}n=next}}walk(this[0]);return this}});_each(("blur,focus,focusin,focusout,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error,contextmenu").split(","),function(i,type){KNode.prototype[type]=function(fn){return fn?this.bind(type,fn):this.fire(type)}});var _K=K;K=function(expr,root){if(expr===undefined||expr===null){return}function newNode(node){if(!node[0]){node=[]}return new KNode(node)}if(typeof expr==="string"){if(root){root=_get(root)}var length=expr.length;if(expr.charAt(0)==="@"){expr=expr.substr(1)}if(expr.length!==length||/<.+>/.test(expr)){var doc=root?root.ownerDocument||root:document,div=doc.createElement("div"),list=[];div.innerHTML=''+expr;for(var i=0,len=div.childNodes.length;i0){centerNode=cloneNode.splitText(startOffset)}else{centerNode=cloneNode}if(endOffset0){center=node.splitText(startOffset);range.setStart(node,startOffset)}if(endOffset=0&&incStart<=0){incStart=testRange.compareBoundaryPoints(_START_TO_START,range)}if(incStart>=0&&incEnd<=0){incEnd=testRange.compareBoundaryPoints(_END_TO_END,range)}if(incEnd>=0&&end<=0){end=testRange.compareBoundaryPoints(_END_TO_START,range)}if(end>=0){return false}nextNode=node.nextSibling;if(start>0){if(node.nodeType==1){if(incStart>=0&&incEnd<=0){if(isCopy){frag.appendChild(node.cloneNode(true))}if(isDelete){nodeList.push(node)}}else{var childFlag;if(isCopy){childFlag=node.cloneNode(false);frag.appendChild(childFlag)}if(extractNodes(node,childFlag)===false){return false}}}else{if(node.nodeType==3){var textNode;if(node==copyRange.startContainer){textNode=splitTextNode(node,copyRange.startOffset,node.nodeValue.length)}else{if(node==copyRange.endContainer){textNode=splitTextNode(node,0,copyRange.endOffset)}else{textNode=splitTextNode(node,0,node.nodeValue.length)}}if(isCopy){try{frag.appendChild(textNode)}catch(e){}}}}}node=nextNode}}extractNodes(ancestor,frag);if(isDelete){range.up().collapse(true)}for(var i=0,len=nodeList.length;i0){startPos+=nodeRange.text.replace(/\r\n|\n|\r/g,"").length}else{startPos=0}if(dummy){K(dummy).remove()}}else{if(node.nodeType==3){testRange.moveStart("character",node.nodeValue.length);startPos+=node.nodeValue.length}}if(cmp<0){startNode=node}}if(cmp<0&&startNode.nodeType==1){return{node:parent,offset:K(parent.lastChild).index()+1}}if(cmp>0){while(startNode.nextSibling&&startNode.nodeType==1){startNode=startNode.nextSibling}}testRange=rng.duplicate();_moveToElementText(testRange,parent);testRange.setEndPoint("StartToEnd",pointRange);startPos-=testRange.text.replace(/\r\n|\n|\r/g,"").length;if(cmp>0&&startNode.nodeType==3){var prevNode=startNode.previousSibling;while(prevNode&&prevNode.nodeType==3){startPos-=prevNode.nodeValue.length;prevNode=prevNode.previousSibling}}return{node:startNode,offset:startPos}}function _getEndRange(node,offset){var doc=node.ownerDocument||node,range=doc.body.createTextRange();if(doc==node){range.collapse(true);return range}if(node.nodeType==1&&node.childNodes.length>0){var children=node.childNodes,isStart,child;if(offset===0){child=children[0];isStart=true}else{child=children[offset-1];isStart=false}if(!child){return range}if(K(child).name==="head"){if(offset===1){isStart=true}if(offset===2){isStart=false}range.collapse(isStart);return range}if(child.nodeType==1){var kchild=K(child),span;if(kchild.isControl()){span=doc.createElement("span");if(isStart){kchild.before(span)}else{kchild.after(span)}child=span}_moveToElementText(range,child);range.collapse(isStart);if(span){K(span).remove()}return range}node=child;offset=isStart?0:child.nodeValue.length}var dummy=doc.createElement("span");K(node).before(dummy);_moveToElementText(range,dummy);range.moveStart("character",offset);K(dummy).remove();return range}function _toRange(rng){var doc,range;function tr2td(start){if(K(start.node).name=="tr"){start.node=start.node.cells[start.offset];start.offset=0}}if(_IE){if(rng.item){doc=_getDoc(rng.item(0));range=new KRange(doc);range.selectNode(rng.item(0));return range}doc=rng.parentElement().ownerDocument;var start=_getStartEnd(rng,true),end=_getStartEnd(rng,false);tr2td(start);tr2td(end);range=new KRange(doc);range.setStart(start.node,start.offset);range.setEnd(end.node,end.offset);return range}var startContainer=rng.startContainer;doc=startContainer.ownerDocument||startContainer;range=new KRange(doc);range.setStart(startContainer,rng.startOffset);range.setEnd(rng.endContainer,rng.endOffset);return range}function KRange(doc){this.init(doc)}_extend(KRange,{init:function(doc){var self=this;self.startContainer=doc;self.startOffset=0;self.endContainer=doc;self.endOffset=0;self.collapsed=true;self.doc=doc},commonAncestor:function(){function getParents(node){var parents=[];while(node){parents.push(node);node=node.parentNode}return parents}var parentsA=getParents(this.startContainer),parentsB=getParents(this.endContainer),i=0,lenA=parentsA.length,lenB=parentsB.length,parentA,parentB;while(++i){parentA=parentsA[lenA-i];parentB=parentsB[lenB-i];if(!parentA||!parentB||parentA!==parentB){break}}return parentsA[lenA-i+1]},setStart:function(node,offset){var self=this,doc=self.doc;self.startContainer=node;self.startOffset=offset;if(self.endContainer===doc){self.endContainer=node;self.endOffset=offset}return _updateCollapsed(this)},setEnd:function(node,offset){var self=this,doc=self.doc;self.endContainer=node;self.endOffset=offset;if(self.startContainer===doc){self.startContainer=node;self.startOffset=offset}return _updateCollapsed(this)},setStartBefore:function(node){return this.setStart(node.parentNode||this.doc,K(node).index())},setStartAfter:function(node){return this.setStart(node.parentNode||this.doc,K(node).index()+1)},setEndBefore:function(node){return this.setEnd(node.parentNode||this.doc,K(node).index())},setEndAfter:function(node){return this.setEnd(node.parentNode||this.doc,K(node).index()+1)},selectNode:function(node){return this.setStartBefore(node).setEndAfter(node)},selectNodeContents:function(node){var knode=K(node);if(knode.type==3||knode.isSingle()){return this.selectNode(node)}var children=knode.children();if(children.length>0){return this.setStartBefore(children[0]).setEndAfter(children[children.length-1])}return this.setStart(node,0).setEnd(node,0)},collapse:function(toStart){if(toStart){return this.setEnd(this.startContainer,this.startOffset)}return this.setStart(this.endContainer,this.endOffset)},compareBoundaryPoints:function(how,range){var rangeA=this.get(),rangeB=range.get();if(_IE){var arr={};arr[_START_TO_START]="StartToStart";arr[_START_TO_END]="EndToStart";arr[_END_TO_END]="EndToEnd";arr[_END_TO_START]="StartToEnd";var cmp=rangeA.compareEndPoints(arr[how],rangeB);if(cmp!==0){return cmp}var nodeA,nodeB,nodeC,posA,posB;if(how===_START_TO_START||how===_END_TO_START){nodeA=this.startContainer;posA=this.startOffset}if(how===_START_TO_END||how===_END_TO_END){nodeA=this.endContainer;posA=this.endOffset}if(how===_START_TO_START||how===_START_TO_END){nodeB=range.startContainer;posB=range.startOffset}if(how===_END_TO_END||how===_END_TO_START){nodeB=range.endContainer;posB=range.endOffset}if(nodeA===nodeB){var diff=posA-posB;return diff>0?1:(diff<0?-1:0)}nodeC=nodeB;while(nodeC&&nodeC.parentNode!==nodeA){nodeC=nodeC.parentNode}if(nodeC){return K(nodeC).index()>=posA?-1:1}nodeC=nodeA;while(nodeC&&nodeC.parentNode!==nodeB){nodeC=nodeC.parentNode}if(nodeC){return K(nodeC).index()>=posB?1:-1}nodeC=K(nodeB).next();if(nodeC&&nodeC.contains(nodeA)){return 1}nodeC=K(nodeA).next();if(nodeC&&nodeC.contains(nodeB)){return -1}}else{return rangeA.compareBoundaryPoints(how,rangeB)}},cloneRange:function(){return new KRange(this.doc).setStart(this.startContainer,this.startOffset).setEnd(this.endContainer,this.endOffset)},toString:function(){var rng=this.get(),str=_IE?rng.text:rng.toString();return str.replace(/\r\n|\n|\r/g,"")},cloneContents:function(){return _copyAndDelete(this,true,false)},deleteContents:function(){return _copyAndDelete(this,false,true)},extractContents:function(){return _copyAndDelete(this,true,true)},insertNode:function(node){var self=this,sc=self.startContainer,so=self.startOffset,ec=self.endContainer,eo=self.endOffset,firstChild,lastChild,c,nodeCount=1;if(node.nodeName.toLowerCase()==="#document-fragment"){firstChild=node.firstChild;lastChild=node.lastChild;nodeCount=node.childNodes.length}if(sc.nodeType==1){c=sc.childNodes[so];if(c){sc.insertBefore(node,c);if(sc===ec){eo+=nodeCount}}else{sc.appendChild(node)}}else{if(sc.nodeType==3){if(so===0){sc.parentNode.insertBefore(node,sc);if(sc.parentNode===ec){eo+=nodeCount}}else{if(so>=sc.nodeValue.length){if(sc.nextSibling){sc.parentNode.insertBefore(node,sc.nextSibling)}else{sc.parentNode.appendChild(node)}}else{if(so>0){c=sc.splitText(so)}else{c=sc}sc.parentNode.insertBefore(node,c);if(sc===ec){ec=c;eo-=so}}}}}if(firstChild){self.setStartBefore(firstChild).setEndAfter(lastChild)}else{self.selectNode(node)}if(self.compareBoundaryPoints(_END_TO_END,self.cloneRange().setEnd(ec,eo))>=1){return self}return self.setEnd(ec,eo)},surroundContents:function(node){node.appendChild(this.extractContents());return this.insertNode(node).selectNode(node)},isControl:function(){var self=this,sc=self.startContainer,so=self.startOffset,ec=self.endContainer,eo=self.endOffset,rng;return sc.nodeType==1&&sc===ec&&so+1===eo&&K(sc.childNodes[so]).isControl()},get:function(hasControlRange){var self=this,doc=self.doc,node,rng;if(!_IE){rng=doc.createRange();try{rng.setStart(self.startContainer,self.startOffset);rng.setEnd(self.endContainer,self.endOffset)}catch(e){}return rng}if(hasControlRange&&self.isControl()){rng=doc.body.createControlRange();rng.addElement(self.startContainer.childNodes[self.startOffset]);return rng}var range=self.cloneRange().down();rng=doc.body.createTextRange();rng.setEndPoint("StartToStart",_getEndRange(range.startContainer,range.startOffset));rng.setEndPoint("EndToStart",_getEndRange(range.endContainer,range.endOffset));return rng},html:function(){return K(this.cloneContents()).outer()},down:function(){var self=this;function downPos(node,pos,isStart){if(node.nodeType!=1){return}var children=K(node).children();if(children.length===0){return}var left,right,child,offset;if(pos>0){left=children.eq(pos-1)}if(pos0&&(child=self.endContainer.childNodes[self.endOffset-1])&&child.nodeType==1&&!K(child).isSingle()){self.setEnd(child,child.childNodes.length)}return self},createBookmark:function(serialize){var self=this,doc=self.doc,endNode,startNode=K('',doc)[0];startNode.id="__kindeditor_bookmark_start_"+(_BOOKMARK_ID++)+"__";if(!self.collapsed){endNode=startNode.cloneNode(true);endNode.id="__kindeditor_bookmark_end_"+(_BOOKMARK_ID++)+"__"}if(endNode){self.cloneRange().collapse(false).insertNode(endNode).setEndBefore(endNode)}self.insertNode(startNode).setStartAfter(startNode);return{start:serialize?"#"+startNode.id:startNode,end:endNode?(serialize?"#"+endNode.id:endNode):null}},moveToBookmark:function(bookmark){var self=this,doc=self.doc,start=K(bookmark.start,doc),end=bookmark.end?K(bookmark.end,doc):null;if(!start||start.length<1){return self}self.setStartBefore(start[0]);start.remove();if(end&&end.length>0){self.setEndBefore(end[0]);end.remove()}else{self.collapse(true)}return self},dump:function(){console.log("--------------------");console.log(this.startContainer.nodeType==3?this.startContainer.nodeValue:this.startContainer,this.startOffset);console.log(this.endContainer.nodeType==3?this.endContainer.nodeValue:this.endContainer,this.endOffset)}});function _range(mixed){if(!mixed.nodeName){return mixed.constructor===KRange?mixed:_toRange(mixed)}return new KRange(mixed)}K.RangeClass=KRange;K.range=_range;K.START_TO_START=_START_TO_START;K.START_TO_END=_START_TO_END;K.END_TO_END=_END_TO_END;K.END_TO_START=_END_TO_START;function _nativeCommand(doc,key,val){try{doc.execCommand(key,false,val)}catch(e){}}function _nativeCommandValue(doc,key){var val="";try{val=doc.queryCommandValue(key)}catch(e){}if(typeof val!=="string"){val=""}return val}function _getSel(doc){var win=_getWin(doc);return doc.selection||win.getSelection()}function _getRng(doc){var sel=_getSel(doc),rng;try{if(sel.rangeCount>0){rng=sel.getRangeAt(0)}else{rng=sel.createRange()}}catch(e){}if(_IE&&(!rng||(!rng.item&&rng.parentElement().ownerDocument!==doc))){return null}return rng}function _singleKeyMap(map){var newMap={},arr,v;_each(map,function(key,val){arr=key.split(",");for(var i=0,len=arr.length;i]+>/g,"")===""}function _mergeWrapper(a,b){a=a.clone(true);var lastA=_getInnerNode(a),childA=a,merged=false;while(b){while(childA){if(childA.name===b.name){_mergeAttrs(childA,b.attr(),b.css());merged=true}childA=childA.first()}if(!merged){lastA.append(b.clone(false))}merged=false;b=b.first()}return a}function _wrapNode(knode,wrapper){wrapper=wrapper.clone(true);if(knode.type==3){_getInnerNode(wrapper).append(knode.clone(false));knode.replaceWith(wrapper);return wrapper}var nodeWrapper=knode,child;while((child=knode.first())&&child.children().length==1){knode=child}child=knode.first();var frag=knode.doc.createDocumentFragment();while(child){frag.appendChild(child[0]);child=child.next()}wrapper=_mergeWrapper(nodeWrapper,wrapper);if(frag.firstChild){_getInnerNode(wrapper).append(frag)}nodeWrapper.replaceWith(wrapper);return wrapper}function _mergeAttrs(knode,attrs,styles){_each(attrs,function(key,val){if(key!=="style"){knode.attr(key,val)}});_each(styles,function(key,val){knode.css(key,val)})}function _inPreElement(knode){while(knode&&knode.name!="body"){if(_PRE_TAG_MAP[knode.name]||knode.name=="div"&&knode.hasClass("ke-script")){return true}knode=knode.parent()}return false}function KCmd(range){this.init(range)}_extend(KCmd,{init:function(range){var self=this,doc=range.doc;self.doc=doc;self.win=_getWin(doc);self.sel=_getSel(doc);self.range=range},selection:function(forceReset){var self=this,doc=self.doc,rng=_getRng(doc);self.sel=_getSel(doc);if(rng){self.range=_range(rng);if(K(self.range.startContainer).name=="html"){self.range.selectNodeContents(doc.body).collapse(false)}return self}if(forceReset){self.range.selectNodeContents(doc.body).collapse(false)}return self},select:function(hasDummy){hasDummy=_undef(hasDummy,true);var self=this,sel=self.sel,range=self.range.cloneRange().shrink(),sc=range.startContainer,so=range.startOffset,ec=range.endContainer,eo=range.endOffset,doc=_getDoc(sc),win=self.win,rng,hasU200b=false;if(hasDummy&&sc.nodeType==1&&range.collapsed){if(_IE){var dummy=K(" ",doc);range.insertNode(dummy[0]);rng=doc.body.createTextRange();try{rng.moveToElementText(dummy[0])}catch(ex){}rng.collapse(false);rng.select();dummy.remove();win.focus();return self}if(_WEBKIT){var children=sc.childNodes;if(K(sc).isInline()||so>0&&K(children[so-1]).isInline()||children[so]&&K(children[so]).isInline()){range.insertNode(doc.createTextNode("\u200B"));hasU200b=true}}}if(_IE){try{rng=range.get(true);rng.select()}catch(e){}}else{if(hasU200b){range.collapse(false)}rng=range.get(true);sel.removeAllRanges();sel.addRange(rng);if(doc!==document){var pos=K(rng.endContainer).pos();win.scrollTo(pos.x,pos.y)}}win.focus();return self},wrap:function(val){var self=this,doc=self.doc,range=self.range,wrapper;wrapper=K(val,doc);if(range.collapsed){range.shrink();range.insertNode(wrapper[0]).selectNodeContents(wrapper[0]);return self}if(wrapper.isBlock()){var copyWrapper=wrapper.clone(true),child=copyWrapper;while(child.first()){child=child.first()}child.append(range.extractContents());range.insertNode(copyWrapper[0]).selectNode(copyWrapper[0]);return self}range.enlarge();var bookmark=range.createBookmark(),ancestor=range.commonAncestor(),isStart=false;K(ancestor).scan(function(node){if(!isStart&&node==bookmark.start){isStart=true;return}if(isStart){if(node==bookmark.end){return false}var knode=K(node);if(_inPreElement(knode)){return}if(knode.type==3&&_trim(node.nodeValue).length>0){var parent;while((parent=knode.parent())&&parent.isStyle()&&parent.children().length==1){knode=parent}_wrapNode(knode,wrapper)}}});range.moveToBookmark(bookmark);return self},split:function(isStart,map){var range=this.range,doc=range.doc;var tempRange=range.cloneRange().collapse(isStart);var node=tempRange.startContainer,pos=tempRange.startOffset,parent=node.nodeType==3?node.parentNode:node,needSplit=false,knode;while(parent&&parent.parentNode){knode=K(parent);if(map){if(!knode.isStyle()){break}if(!_hasAttrOrCss(knode,map)){break}}else{if(_NOSPLIT_TAG_MAP[knode.name]){break}}needSplit=true;parent=parent.parentNode}if(needSplit){var dummy=doc.createElement("span");range.cloneRange().collapse(!isStart).insertNode(dummy);if(isStart){tempRange.setStartBefore(parent.firstChild).setEnd(node,pos)}else{tempRange.setStart(node,pos).setEndAfter(parent.lastChild)}var frag=tempRange.extractContents(),first=frag.firstChild,last=frag.lastChild;if(isStart){tempRange.insertNode(frag);range.setStartAfter(last).setEndBefore(dummy)}else{parent.appendChild(frag);range.setStartBefore(dummy).setEndBefore(first)}var dummyParent=dummy.parentNode;if(dummyParent==range.endContainer){var prev=K(dummy).prev(),next=K(dummy).next();if(prev&&next&&prev.type==3&&next.type==3){range.setEnd(prev[0],prev[0].nodeValue.length)}else{if(!isStart){range.setEnd(range.endContainer,range.endOffset-1)}}}dummyParent.removeChild(dummy)}return this},remove:function(map){var self=this,doc=self.doc,range=self.range;range.enlarge();if(range.startOffset===0){var ksc=K(range.startContainer),parent;while((parent=ksc.parent())&&parent.isStyle()&&parent.children().length==1){ksc=parent}range.setStart(ksc[0],0);ksc=K(range.startContainer);if(ksc.isBlock()){_removeAttrOrCss(ksc,map)}var kscp=ksc.parent();if(kscp&&kscp.isBlock()){_removeAttrOrCss(kscp,map)}}var sc,so;if(range.collapsed){self.split(true,map);sc=range.startContainer;so=range.startOffset;if(so>0){var sb=K(sc.childNodes[so-1]);if(sb&&_isEmptyNode(sb)){sb.remove();range.setStart(sc,so-1)}}var sa=K(sc.childNodes[so]);if(sa&&_isEmptyNode(sa)){sa.remove()}if(_isEmptyNode(sc)){range.startBefore(sc);sc.remove()}range.collapse(true);return self}self.split(true,map);self.split(false,map);var startDummy=doc.createElement("span"),endDummy=doc.createElement("span");range.cloneRange().collapse(false).insertNode(endDummy);range.cloneRange().collapse(true).insertNode(startDummy);var nodeList=[],cmpStart=false;K(range.commonAncestor()).scan(function(node){if(!cmpStart&&node==startDummy){cmpStart=true;return}if(node==endDummy){return false}if(cmpStart){nodeList.push(node)}});K(startDummy).remove();K(endDummy).remove();sc=range.startContainer;so=range.startOffset;var ec=range.endContainer,eo=range.endOffset;if(so>0){var startBefore=K(sc.childNodes[so-1]);if(startBefore&&_isEmptyNode(startBefore)){startBefore.remove();range.setStart(sc,so-1);if(sc==ec){range.setEnd(ec,eo-1)}}var startAfter=K(sc.childNodes[so]);if(startAfter&&_isEmptyNode(startAfter)){startAfter.remove();if(sc==ec){range.setEnd(ec,eo-1)}}}var endAfter=K(ec.childNodes[range.endOffset]);if(endAfter&&_isEmptyNode(endAfter)){endAfter.remove()}var bookmark=range.createBookmark(true);_each(nodeList,function(i,node){_removeAttrOrCss(K(node),map)});range.moveToBookmark(bookmark);return self},commonNode:function(map){var range=this.range;var ec=range.endContainer,eo=range.endOffset,node=(ec.nodeType==3||eo===0)?ec:ec.childNodes[eo-1];function find(node){var child=node,parent=node;while(parent){if(_hasAttrOrCss(K(parent),map)){return K(parent)}parent=parent.parentNode}while(child&&(child=child.lastChild)){if(_hasAttrOrCss(K(child),map)){return K(child)}}return null}var cNode=find(node);if(cNode){return cNode}if(node.nodeType==1||(ec.nodeType==3&&eo===0)){var prev=K(node).prev();if(prev){return find(prev)}}return null},commonAncestor:function(tagName){var range=this.range,sc=range.startContainer,so=range.startOffset,ec=range.endContainer,eo=range.endOffset,startNode=(sc.nodeType==3||so===0)?sc:sc.childNodes[so-1],endNode=(ec.nodeType==3||eo===0)?ec:ec.childNodes[eo-1];function find(node){while(node){if(node.nodeType==1){if(node.tagName.toLowerCase()===tagName){return node}}node=node.parentNode}return null}var start=find(startNode),end=find(endNode);if(start&&end&&start===end){return K(start)}return null},state:function(key){var self=this,doc=self.doc,bool=false;try{bool=doc.queryCommandState(key)}catch(e){}return bool},val:function(key){var self=this,doc=self.doc,range=self.range;function lc(val){return val.toLowerCase()}key=lc(key);var val="",knode;if(key==="fontfamily"||key==="fontname"){val=_nativeCommandValue(doc,"fontname");val=val.replace(/['"]/g,"");return lc(val)}if(key==="formatblock"){val=_nativeCommandValue(doc,key);if(val===""){knode=self.commonNode({"h1,h2,h3,h4,h5,h6,p,div,pre,address":"*"});if(knode){val=knode.name}}if(val==="Normal"){val="p"}return lc(val)}if(key==="fontsize"){knode=self.commonNode({"*":".font-size"});if(knode){val=knode.css("font-size")}return lc(val)}if(key==="forecolor"){knode=self.commonNode({"*":".color"});if(knode){val=knode.css("color")}val=_toHex(val);if(val===""){val="default"}return lc(val)}if(key==="hilitecolor"){knode=self.commonNode({"*":".background-color"});if(knode){val=knode.css("background-color")}val=_toHex(val);if(val===""){val="default"}return lc(val)}return val},toggle:function(wrapper,map){var self=this;if(self.commonNode(map)){self.remove(map)}else{self.wrap(wrapper)}return self.select()},bold:function(){return this.toggle("",{span:".font-weight=bold",strong:"*",b:"*"})},italic:function(){return this.toggle("",{span:".font-style=italic",em:"*",i:"*"})},underline:function(){return this.toggle("",{span:".text-decoration=underline",u:"*"})},strikethrough:function(){return this.toggle("",{span:".text-decoration=line-through",s:"*"})},forecolor:function(val){return this.toggle('',{span:".color="+val,font:"color"})},hilitecolor:function(val){return this.toggle('',{span:".background-color="+val})},fontsize:function(val){return this.toggle('',{span:".font-size="+val,font:"size"})},fontname:function(val){return this.fontfamily(val)},fontfamily:function(val){return this.toggle('',{span:".font-family="+val,font:"face"})},removeformat:function(){var map={"*":".font-weight,.font-style,.text-decoration,.color,.background-color,.font-size,.font-family,.text-indent"},tags=_STYLE_TAG_MAP;_each(tags,function(key,val){map[key]="*"});this.remove(map);return this.select()},inserthtml:function(val,quickMode){var self=this,range=self.range;if(val===""){return self}function pasteHtml(range,val){val=''+val;var rng=range.get();if(rng.item){rng.item(0).outerHTML=val}else{rng.pasteHTML(val)}var temp=range.doc.getElementById("__kindeditor_temp_tag__");temp.parentNode.removeChild(temp);var newRange=_toRange(rng);range.setEnd(newRange.endContainer,newRange.endOffset);range.collapse(false);self.select(false)}function insertHtml(range,val){var doc=range.doc,frag=doc.createDocumentFragment();K("@"+val,doc).each(function(){frag.appendChild(this)});range.deleteContents();range.insertNode(frag);range.collapse(false);self.select(false)}if(_IE&&quickMode){try{pasteHtml(range,val)}catch(e){insertHtml(range,val)}return self}insertHtml(range,val);return self},hr:function(){return this.inserthtml("
")},print:function(){this.win.print();return this},insertimage:function(url,title,width,height,border,align){title=_undef(title,"");border=_undef(border,0);var html='";return self.inserthtml(html)}if(range.isControl()){var node=K(range.startContainer.childNodes[range.startOffset]);html+=">";node.after(K(html,doc));node.next().append(node);range.selectNode(node[0]);return self.select()}_nativeCommand(doc,"createlink","__kindeditor_temp_url__");K('a[href="__kindeditor_temp_url__"]',doc).each(function(){K(this).attr("href",url).attr("data-ke-src",url);if(type){K(this).attr("target",type)}else{K(this).removeAttr("target")}});return self},unlink:function(){var self=this,doc=self.doc,range=self.range;self.select();if(range.collapsed){var a=self.commonNode({a:"*"});if(a){range.selectNode(a.get());self.select()}_nativeCommand(doc,"unlink",null);if(_WEBKIT&&K(range.startContainer).name==="img"){var parent=K(range.startContainer).parent();if(parent.name==="a"){parent.remove(true)}}}else{_nativeCommand(doc,"unlink",null)}return self}});_each(("formatblock,selectall,justifyleft,justifycenter,justifyright,justifyfull,insertorderedlist,insertunorderedlist,indent,outdent,subscript,superscript").split(","),function(i,name){KCmd.prototype[name]=function(val){var self=this;self.select();_nativeCommand(self.doc,name,val);if(!_IE||_inArray(name,"formatblock,selectall,insertorderedlist,insertunorderedlist".split(","))>=0){self.selection()}return self}});_each("cut,copy,paste".split(","),function(i,name){KCmd.prototype[name]=function(){var self=this;if(!self.doc.queryCommandSupported(name)){throw"not supported"}self.select();_nativeCommand(self.doc,name,null);return self}});function _cmd(mixed){if(mixed.nodeName){var doc=_getDoc(mixed);mixed=_range(doc).selectNodeContents(doc.body).collapse(false)}return new KCmd(mixed)}K.CmdClass=KCmd;K.cmd=_cmd;function _drag(options){var moveEl=options.moveEl,moveFn=options.moveFn,clickEl=options.clickEl||moveEl,beforeDrag=options.beforeDrag,iframeFix=options.iframeFix===undefined?true:options.iframeFix;var docs=[document];if(iframeFix){K("iframe").each(function(){var src=_formatUrl(this.src||"","absolute");if(/^https?:\/\//.test(src)){return}var doc;try{doc=_iframeDoc(this)}catch(e){}if(doc){var pos=K(this).pos();K(doc).data("pos-x",pos.x);K(doc).data("pos-y",pos.y);docs.push(doc)}})}clickEl.mousedown(function(e){e.stopPropagation();var self=clickEl.get(),x=_removeUnit(moveEl.css("left")),y=_removeUnit(moveEl.css("top")),width=moveEl.width(),height=moveEl.height(),pageX=e.pageX,pageY=e.pageY;if(beforeDrag){beforeDrag()}function moveListener(e){e.preventDefault();var kdoc=K(_getDoc(e.target));var diffX=_round((kdoc.data("pos-x")||0)+e.pageX-pageX);var diffY=_round((kdoc.data("pos-y")||0)+e.pageY-pageY);moveFn.call(clickEl,x,y,width,height,diffX,diffY)}function selectListener(e){e.preventDefault()}function upListener(e){e.preventDefault();K(docs).unbind("mousemove",moveListener).unbind("mouseup",upListener).unbind("selectstart",selectListener);if(self.releaseCapture){self.releaseCapture()}}K(docs).mousemove(moveListener).mouseup(upListener).bind("selectstart",selectListener);if(self.setCapture){self.setCapture()}})}function KWidget(options){this.init(options)}_extend(KWidget,{init:function(options){var self=this;self.name=options.name||"";self.doc=options.doc||document;self.win=_getWin(self.doc);self.x=_addUnit(options.x);self.y=_addUnit(options.y);self.z=options.z;self.width=_addUnit(options.width);self.height=_addUnit(options.height);self.div=K('
');self.options=options;self._alignEl=options.alignEl;if(self.width){self.div.css("width",self.width)}if(self.height){self.div.css("height",self.height)}if(self.z){self.div.css({position:"absolute",left:self.x,top:self.y,"z-index":self.z})}if(self.z&&(self.x===undefined||self.y===undefined)){self.autoPos(self.width,self.height)}if(options.cls){self.div.addClass(options.cls)}if(options.shadowMode){self.div.addClass("ke-shadow")}if(options.css){self.div.css(options.css)}if(options.src){K(options.src).replaceWith(self.div)}else{K(self.doc.body).append(self.div)}if(options.html){self.div.html(options.html)}if(options.autoScroll){if(_IE&&_V<7||_QUIRKS){var scrollPos=_getScrollPos();K(self.win).bind("scroll",function(e){var pos=_getScrollPos(),diffX=pos.x-scrollPos.x,diffY=pos.y-scrollPos.y;self.pos(_removeUnit(self.x)+diffX,_removeUnit(self.y)+diffY,false)})}else{self.div.css("position","fixed")}}},pos:function(x,y,updateProp){var self=this;updateProp=_undef(updateProp,true);if(x!==null){x=x<0?0:_addUnit(x);self.div.css("left",x);if(updateProp){self.x=x}}if(y!==null){y=y<0?0:_addUnit(y);self.div.css("top",y);if(updateProp){self.y=y}}return self},autoPos:function(width,height){var self=this,w=_removeUnit(width)||0,h=_removeUnit(height)||0,scrollPos=_getScrollPos();if(self._alignEl){var knode=K(self._alignEl),pos=knode.pos(),diffX=_round(knode[0].clientWidth/2-w/2),diffY=_round(knode[0].clientHeight/2-h/2);x=diffX<0?pos.x:pos.x+diffX;y=diffY<0?pos.y:pos.y+diffY}else{var docEl=_docElement(self.doc);x=_round(scrollPos.x+(docEl.clientWidth-w)/2);y=_round(scrollPos.y+(docEl.clientHeight-h)/2)}if(!(_IE&&_V<7||_QUIRKS)){x-=scrollPos.x;y-=scrollPos.y}return self.pos(x,y)},remove:function(){var self=this;if(_IE&&_V<7||_QUIRKS){K(self.win).unbind("scroll")}self.div.remove();_each(self,function(i){self[i]=null});return this},show:function(){this.div.show();return this},hide:function(){this.div.hide();return this},draggable:function(options){var self=this;options=options||{};options.moveEl=self.div;options.moveFn=function(x,y,width,height,diffX,diffY){if((x=x+diffX)<0){x=0}if((y=y+diffY)<0){y=0}self.pos(x,y)};_drag(options);return self}});function _widget(options){return new KWidget(options)}K.WidgetClass=KWidget;K.widget=_widget;function _iframeDoc(iframe){iframe=_get(iframe);return iframe.contentDocument||iframe.contentWindow.document}var html,_direction="";if((html=document.getElementsByTagName("html"))){_direction=html[0].dir}function _getInitHtml(themesPath,bodyClass,cssPath,cssData){var arr=[(_direction===""?"":''),'',""];if(!_isArray(cssPath)){cssPath=[cssPath]}_each(cssPath,function(i,path){if(path){arr.push('')}});if(cssData){arr.push("")}arr.push("");return arr.join("\n")}function _elementVal(knode,val){if(knode.hasVal()){if(val===undefined){var html=knode.val();html=html.replace(/(<(?:p|p\s[^>]*)>) *(<\/p>)/ig,"");return html}return knode.val(val)}return knode.html(val)}function KEdit(options){this.init(options)}_extend(KEdit,KWidget,{init:function(options){var self=this;KEdit.parent.init.call(self,options);self.srcElement=K(options.srcElement);self.div.addClass("ke-edit");self.designMode=_undef(options.designMode,true);self.beforeGetHtml=options.beforeGetHtml;self.beforeSetHtml=options.beforeSetHtml;self.afterSetHtml=options.afterSetHtml;var themesPath=_undef(options.themesPath,""),bodyClass=options.bodyClass,cssPath=options.cssPath,cssData=options.cssData,isDocumentDomain=location.host.replace(/:\d+/,"")!==document.domain,srcScript=("document.open();"+(isDocumentDomain?'document.domain="'+document.domain+'";':"")+"document.close();"),iframeSrc=_IE?' src="javascript:void(function(){'+encodeURIComponent(srcScript)+'}())"':"";self.iframe=K('").css("width","100%");self.textarea=K('').css("width","100%");if(self.width){self.setWidth(self.width)}if(self.height){self.setHeight(self.height)}if(self.designMode){self.textarea.hide()}else{self.iframe.hide()}function ready(){var doc=_iframeDoc(self.iframe);doc.open();if(isDocumentDomain){doc.domain=document.domain}doc.write(_getInitHtml(themesPath,bodyClass,cssPath,cssData));doc.close();self.win=self.iframe[0].contentWindow;self.doc=doc;var cmd=_cmd(doc);self.afterChange(function(e){cmd.selection()});if(_WEBKIT){K(doc).click(function(e){if(K(e.target).name==="img"){cmd.selection(true);cmd.range.selectNode(e.target);cmd.select()}})}if(_IE){self._mousedownHandler=function(){var newRange=cmd.range.cloneRange();newRange.shrink();if(newRange.isControl()){self.blur()}};K(document).mousedown(self._mousedownHandler);K(doc).keydown(function(e){if(e.which==8){cmd.selection();var rng=cmd.range;if(rng.isControl()){rng.collapse(true);K(rng.startContainer.childNodes[rng.startOffset]).remove();e.preventDefault()}}})}self.cmd=cmd;self.html(_elementVal(self.srcElement));if(_IE){doc.body.disabled=true;doc.body.contentEditable=true;doc.body.removeAttribute("disabled")}else{doc.designMode="on"}if(options.afterCreate){options.afterCreate.call(self)}}if(isDocumentDomain){self.iframe.bind("load",function(e){self.iframe.unbind("load");if(_IE){ready()}else{setTimeout(ready,0)}})}self.div.append(self.iframe);self.div.append(self.textarea);self.srcElement.hide();!isDocumentDomain&&ready()},setWidth:function(val){this.div.css("width",_addUnit(val));return this},setHeight:function(val){var self=this;val=_addUnit(val);self.div.css("height",val);self.iframe.css("height",val);if((_IE&&_V<8)||_QUIRKS){val=_addUnit(_removeUnit(val)-2)}self.textarea.css("height",val);return self},remove:function(){var self=this,doc=self.doc;K(doc.body).unbind();K(doc).unbind();K(self.win).unbind();if(self._mousedownHandler){K(document).unbind("mousedown",self._mousedownHandler)}_elementVal(self.srcElement,self.html());self.srcElement.show();doc.write("");self.iframe.unbind();self.textarea.unbind();KEdit.parent.remove.call(self)},html:function(val,isFull){var self=this,doc=self.doc;if(self.designMode){var body=doc.body;if(val===undefined){if(isFull){val=""+body.parentNode.innerHTML+""}else{val=body.innerHTML}if(self.beforeGetHtml){val=self.beforeGetHtml(val)}if(_GECKO&&val=="
"){val=""}return val}if(self.beforeSetHtml){val=self.beforeSetHtml(val)}if(_IE&&_V>=9){val=val.replace(/(<.*?checked=")checked(".*>)/ig,"$1$2")}K(body).html(val);if(self.afterSetHtml){self.afterSetHtml()}return self}if(val===undefined){return self.textarea.val()}self.textarea.val(val);return self},design:function(bool){var self=this,val;if(bool===undefined?!self.designMode:bool){if(!self.designMode){val=self.html();self.designMode=true;self.html(val);self.textarea.hide();self.iframe.show()}}else{if(self.designMode){val=self.html();self.designMode=false;self.html(val);self.iframe.hide();self.textarea.show()}}return self.focus()},focus:function(){var self=this;self.designMode?self.win.focus():self.textarea[0].focus();return self},blur:function(){var self=this;if(_IE){var input=K('',self.div);self.div.append(input);input[0].focus();input.remove()}else{self.designMode?self.win.blur():self.textarea[0].blur()}return self},afterChange:function(fn){var self=this,doc=self.doc,body=doc.body;K(doc).keyup(function(e){if(!e.ctrlKey&&!e.altKey&&_CHANGE_KEY_MAP[e.which]){fn(e)}});K(doc).mouseup(fn).contextmenu(fn);K(self.win).blur(fn);function timeoutHandler(e){setTimeout(function(){fn(e)},1)}K(body).bind("paste",timeoutHandler);K(body).bind("cut",timeoutHandler);return self}});function _edit(options){return new KEdit(options)}K.EditClass=KEdit;K.edit=_edit;K.iframeDoc=_iframeDoc;function _selectToolbar(name,fn){var self=this,knode=self.get(name);if(knode){if(knode.hasClass("ke-disabled")){return}fn(knode)}}function KToolbar(options){this.init(options)}_extend(KToolbar,KWidget,{init:function(options){var self=this;KToolbar.parent.init.call(self,options);self.disableMode=_undef(options.disableMode,false);self.noDisableItemMap=_toMap(_undef(options.noDisableItems,[]));self._itemMap={};self.div.addClass("ke-toolbar").bind("contextmenu,mousedown,mousemove",function(e){e.preventDefault()}).attr("unselectable","on");function find(target){var knode=K(target);if(knode.hasClass("ke-outline")){return knode}if(knode.hasClass("ke-toolbar-icon")){return knode.parent()}}function hover(e,method){var knode=find(e.target);if(knode){if(knode.hasClass("ke-disabled")){return}if(knode.hasClass("ke-selected")){return}knode[method]("ke-on")}}self.div.mouseover(function(e){hover(e,"addClass")}).mouseout(function(e){hover(e,"removeClass")}).click(function(e){var knode=find(e.target);if(knode){if(knode.hasClass("ke-disabled")){return}self.options.click.call(this,e,knode.attr("data-name"))}})},get:function(name){if(this._itemMap[name]){return this._itemMap[name]}return(this._itemMap[name]=K("span.ke-icon-"+name,this.div).parent())},select:function(name){_selectToolbar.call(this,name,function(knode){knode.addClass("ke-selected")});return self},unselect:function(name){_selectToolbar.call(this,name,function(knode){knode.removeClass("ke-selected").removeClass("ke-on")});return self},enable:function(name){var self=this,knode=name.get?name:self.get(name);if(knode){knode.removeClass("ke-disabled");knode.opacity(1)}return self},disable:function(name){var self=this,knode=name.get?name:self.get(name);if(knode){knode.removeClass("ke-selected").addClass("ke-disabled");knode.opacity(0.5)}return self},disableAll:function(bool,noDisableItems){var self=this,map=self.noDisableItemMap,item;if(noDisableItems){map=_toMap(noDisableItems)}if(bool===undefined?!self.disableMode:bool){K("span.ke-outline",self.div).each(function(){var knode=K(this),name=knode[0].getAttribute("data-name",2);if(!map[name]){self.disable(knode)}});self.disableMode=true}else{K("span.ke-outline",self.div).each(function(){var knode=K(this),name=knode[0].getAttribute("data-name",2);if(!map[name]){self.enable(knode)}});self.disableMode=false}return self}});function _toolbar(options){return new KToolbar(options)}K.ToolbarClass=KToolbar;K.toolbar=_toolbar;function KMenu(options){this.init(options)}_extend(KMenu,KWidget,{init:function(options){var self=this;options.z=options.z||811213;KMenu.parent.init.call(self,options);self.centerLineMode=_undef(options.centerLineMode,true);self.div.addClass("ke-menu").bind("click,mousedown",function(e){e.stopPropagation()}).attr("unselectable","on")},addItem:function(item){var self=this;if(item.title==="-"){self.div.append(K('
'));return}var itemDiv=K('
'),leftDiv=K('
'),rightDiv=K('
'),height=_addUnit(item.height),iconClass=_undef(item.iconClass,"");self.div.append(itemDiv);if(height){itemDiv.css("height",height);rightDiv.css("line-height",height)}var centerDiv;if(self.centerLineMode){centerDiv=K('
');if(height){centerDiv.css("height",height)}}itemDiv.mouseover(function(e){K(this).addClass("ke-menu-item-on");if(centerDiv){centerDiv.addClass("ke-menu-item-center-on")}}).mouseout(function(e){K(this).removeClass("ke-menu-item-on");if(centerDiv){centerDiv.removeClass("ke-menu-item-center-on")}}).click(function(e){item.click.call(K(this));e.stopPropagation()}).append(leftDiv);if(centerDiv){itemDiv.append(centerDiv)}itemDiv.append(rightDiv);if(item.checked){iconClass="ke-icon-checked"}if(iconClass!==""){leftDiv.html('')}rightDiv.html(item.title);return self},remove:function(){var self=this;if(self.options.beforeRemove){self.options.beforeRemove.call(self)}K(".ke-menu-item",self.div[0]).unbind();KMenu.parent.remove.call(self);return self}});function _menu(options){return new KMenu(options)}K.MenuClass=KMenu;K.menu=_menu;function KColorPicker(options){this.init(options)}_extend(KColorPicker,KWidget,{init:function(options){var self=this;options.z=options.z||811213;KColorPicker.parent.init.call(self,options);var colors=options.colors||[["#E53333","#E56600","#FF9900","#64451D","#DFC5A4","#FFE500"],["#009900","#006600","#99BB00","#B8D100","#60D978","#00D5FF"],["#337FE5","#003399","#4C33E5","#9933E5","#CC33E5","#EE33EE"],["#FFFFFF","#CCCCCC","#999999","#666666","#333333","#000000"]];self.selectedColor=(options.selectedColor||"").toLowerCase();self._cells=[];self.div.addClass("ke-colorpicker").bind("click,mousedown",function(e){e.stopPropagation()}).attr("unselectable","on");var table=self.doc.createElement("table");self.div.append(table);table.className="ke-colorpicker-table";table.cellPadding=0;table.cellSpacing=0;table.border=0;var row=table.insertRow(0),cell=row.insertCell(0);cell.colSpan=colors[0].length;self._addAttr(cell,"","ke-colorpicker-cell-top");for(var i=0;i').css("background-color",color))}else{cell.html(self.options.noColor)}K(cell).attr("unselectable","on");self._cells.push(cell)},remove:function(){var self=this;_each(self._cells,function(){this.unbind()});KColorPicker.parent.remove.call(self);return self}});function _colorpicker(options){return new KColorPicker(options)}K.ColorPickerClass=KColorPicker;K.colorpicker=_colorpicker;function KUploadButton(options){this.init(options)}_extend(KUploadButton,{init:function(options){var self=this,button=K(options.button),fieldName=options.fieldName||"file",url=options.url||"",title=button.val(),extraParams=options.extraParams||{},cls=button[0].className||"",target=options.target||"kindeditor_upload_iframe_"+new Date().getTime();options.afterError=options.afterError||function(str){alert(str)};var hiddenElements=[];for(var k in extraParams){hiddenElements.push('')}var html=['
',(options.target?"":''),(options.form?'
':'
'),'',hiddenElements.join(""),'',"",'',(options.form?"
":""),"
"].join("");var div=K(html,button.doc);button.hide();button.before(div);self.div=div;self.button=button;self.iframe=options.target?K('iframe[name="'+target+'"]'):K("iframe",div);self.form=options.form?K(options.form):K("form",div);var width=options.width||K(".ke-button-common",div).width();self.fileBox=K(".ke-upload-file",div).width(width);self.options=options},submit:function(){var self=this,iframe=self.iframe;iframe.bind("load",function(){iframe.unbind();var tempForm=document.createElement("form");self.fileBox.before(tempForm);K(tempForm).append(self.fileBox);tempForm.reset();K(tempForm).remove(true);var doc=K.iframeDoc(iframe),pre=doc.getElementsByTagName("pre")[0],str="",data;if(pre){str=pre.innerHTML}else{str=doc.body.innerHTML}str=_unescape(str);iframe[0].src="javascript:false";try{data=K.json(str)}catch(e){self.options.afterError.call(self,""+doc.body.parentNode.innerHTML+"")}if(data){self.options.afterUpload.call(self,data)}});self.form[0].submit();return self},remove:function(){var self=this;if(self.fileBox){self.fileBox.unbind()}self.iframe.remove();self.div.remove();self.button.show();return self}});function _uploadbutton(options){return new KUploadButton(options)}K.UploadButtonClass=KUploadButton;K.uploadbutton=_uploadbutton;function _createButton(arg){arg=arg||{};var name=arg.name||"",span=K(''),btn=K('');if(arg.click){btn.click(arg.click)}span.append(btn);return span}function KDialog(options){this.init(options)}_extend(KDialog,KWidget,{init:function(options){var self=this;var shadowMode=_undef(options.shadowMode,true);options.z=options.z||811213;options.shadowMode=false;options.autoScroll=_undef(options.autoScroll,true);KDialog.parent.init.call(self,options);var title=options.title,body=K(options.body,self.doc),previewBtn=options.previewBtn,yesBtn=options.yesBtn,noBtn=options.noBtn,closeBtn=options.closeBtn,showMask=_undef(options.showMask,true);self.div.addClass("ke-dialog").bind("click,mousedown",function(e){e.stopPropagation()});var contentDiv=K('
').appendTo(self.div);if(_IE&&_V<7){self.iframeMask=K('').appendTo(self.div)}else{if(shadowMode){K('
').appendTo(self.div)}}var headerDiv=K('
');contentDiv.append(headerDiv);headerDiv.html(title);self.closeIcon=K('').click(closeBtn.click);headerDiv.append(self.closeIcon);self.draggable({clickEl:headerDiv,beforeDrag:options.beforeDrag});var bodyDiv=K('
');contentDiv.append(bodyDiv);bodyDiv.append(body);var footerDiv=K('');if(previewBtn||yesBtn||noBtn){contentDiv.append(footerDiv)}_each([{btn:previewBtn,name:"preview"},{btn:yesBtn,name:"yes"},{btn:noBtn,name:"no"}],function(){if(this.btn){var button=_createButton(this.btn);button.addClass("ke-dialog-"+this.name);footerDiv.append(button)}});if(self.height){bodyDiv.height(_removeUnit(self.height)-headerDiv.height()-footerDiv.height())}self.div.width(self.div.width());self.div.height(self.div.height());self.mask=null;if(showMask){var docEl=_docElement(self.doc),docWidth=Math.max(docEl.scrollWidth,docEl.clientWidth),docHeight=Math.max(docEl.scrollHeight,docEl.clientHeight);self.mask=_widget({x:0,y:0,z:self.z-1,cls:"ke-dialog-mask",width:docWidth,height:docHeight})}self.autoPos(self.div.width(),self.div.height());self.footerDiv=footerDiv;self.bodyDiv=bodyDiv;self.headerDiv=headerDiv;self.isLoading=false},setMaskIndex:function(z){var self=this;self.mask.div.css("z-index",z)},showLoading:function(msg){msg=_undef(msg,"");var self=this,body=self.bodyDiv;self.loading=K('
'+msg+"
").width(body.width()).height(body.height()).css("top",self.headerDiv.height()+"px");body.css("visibility","hidden").after(self.loading);self.isLoading=true;return self},hideLoading:function(){this.loading&&this.loading.remove();this.bodyDiv.css("visibility","visible");this.isLoading=false;return this},remove:function(){var self=this;if(self.options.beforeRemove){self.options.beforeRemove.call(self)}self.mask&&self.mask.remove();self.iframeMask&&self.iframeMask.remove();self.closeIcon.unbind();K("input",self.div).unbind();K("button",self.div).unbind();self.footerDiv.unbind();self.bodyDiv.unbind();self.headerDiv.unbind();K("iframe",self.div).each(function(){K(this).remove()});KDialog.parent.remove.call(self);return self}});function _dialog(options){return new KDialog(options)}K.DialogClass=KDialog;K.dialog=_dialog;function _tabs(options){var self=_widget(options),remove=self.remove,afterSelect=options.afterSelect,div=self.div,liList=[];div.addClass("ke-tabs").bind("contextmenu,mousedown,mousemove",function(e){e.preventDefault()});var ul=K('
    ');div.append(ul);self.add=function(tab){var li=K('
  • '+tab.title+"
  • ");li.data("tab",tab);liList.push(li);ul.append(li)};self.selectedIndex=0;self.select=function(index){self.selectedIndex=index;_each(liList,function(i,li){li.unbind();if(i===index){li.addClass("ke-tabs-li-selected");K(li.data("tab").panel).show("")}else{li.removeClass("ke-tabs-li-selected").removeClass("ke-tabs-li-on").mouseover(function(){K(this).addClass("ke-tabs-li-on")}).mouseout(function(){K(this).removeClass("ke-tabs-li-on")}).click(function(){self.select(i)});K(li.data("tab").panel).hide()}});if(afterSelect){afterSelect.call(self,index)}};self.remove=function(){_each(liList,function(){this.remove()});ul.remove();remove.call(self)};return self}K.tabs=_tabs;function _loadScript(url,fn){var head=document.getElementsByTagName("head")[0]||(_QUIRKS?document.body:document.documentElement),script=document.createElement("script");head.appendChild(script);script.src=url;script.charset="utf-8";script.onload=script.onreadystatechange=function(){if(!this.readyState||this.readyState==="loaded"){if(fn){fn()}script.onload=script.onreadystatechange=null;head.removeChild(script)}}}function _chopQuery(url){var index=url.indexOf("?");return index>0?url.substr(0,index):url}function _loadStyle(url){var head=document.getElementsByTagName("head")[0]||(_QUIRKS?document.body:document.documentElement),link=document.createElement("link"),absoluteUrl=_chopQuery(_formatUrl(url,"absolute"));var links=K('link[rel="stylesheet"]',head);for(var i=0,len=links.length;imaxWidth){maxWidth=this.width}}});while(items.length>0&&items[0].title=="-"){items.shift()}while(items.length>0&&items[items.length-1].title=="-"){items.pop()}var prevItem=null;_each(items,function(i){if(this.title=="-"&&prevItem.title=="-"){delete items[i]}prevItem=this});if(items.length>0){e.preventDefault();var pos=K(self.edit.iframe).pos(),menu=_menu({x:pos.x+e.clientX,y:pos.y+e.clientY,width:maxWidth,css:{visibility:"hidden"},shadowMode:self.shadowMode});_each(items,function(){if(this.title){menu.addItem(this)}});var docEl=_docElement(menu.doc),menuHeight=menu.div.height();if(e.clientY+menuHeight>=docEl.clientHeight-100){menu.pos(menu.x,_removeUnit(menu.y)-menuHeight)}menu.div.css("visibility","visible");self.menu=menu}})}function _bindNewlineEvent(){var self=this,doc=self.edit.doc,newlineTag=self.newlineTag;if(_IE&&newlineTag!=="br"){return}if(_GECKO&&_V<3&&newlineTag!=="p"){return}if(_OPERA&&_V<9){return}var brSkipTagMap=_toMap("h1,h2,h3,h4,h5,h6,pre,li"),pSkipTagMap=_toMap("p,h1,h2,h3,h4,h5,h6,pre,li,blockquote");function getAncestorTagName(range){var ancestor=K(range.commonAncestor());while(ancestor){if(ancestor.type==1&&!ancestor.isStyle()){break}ancestor=ancestor.parent()}return ancestor.name}K(doc).keydown(function(e){if(e.which!=13||e.shiftKey||e.ctrlKey||e.altKey){return}self.cmd.selection();var tagName=getAncestorTagName(self.cmd.range);if(tagName=="marquee"||tagName=="select"){return}if(newlineTag==="br"&&!brSkipTagMap[tagName]){e.preventDefault();self.insertHtml("
    "+(_IE&&_V<9?"":"\u200B"));return}if(!pSkipTagMap[tagName]){_nativeCommand(doc,"formatblock","

    ")}});K(doc).keyup(function(e){if(e.which!=13||e.shiftKey||e.ctrlKey||e.altKey){return}if(newlineTag=="br"){return}if(_GECKO){var root=self.cmd.commonAncestor("p");var a=self.cmd.commonAncestor("a");if(a&&a.text()==""){a.remove(true);self.cmd.range.selectNodeContents(root[0]).collapse(true);self.cmd.select()}return}self.cmd.selection();var tagName=getAncestorTagName(self.cmd.range);if(tagName=="marquee"||tagName=="select"){return}if(!pSkipTagMap[tagName]){_nativeCommand(doc,"formatblock","

    ")}var div=self.cmd.commonAncestor("div");if(div){var p=K("

    "),child=div[0].firstChild;while(child){var next=child.nextSibling;p.append(child);child=next}div.before(p);div.remove();self.cmd.range.selectNodeContents(p[0]);self.cmd.select()}})}function _bindTabEvent(){var self=this,doc=self.edit.doc;K(doc).keydown(function(e){if(e.which==9){e.preventDefault();if(self.afterTab){self.afterTab.call(self,e);return}var cmd=self.cmd,range=cmd.range;range.shrink();if(range.collapsed&&range.startContainer.nodeType==1){range.insertNode(K("@ ",doc)[0]);cmd.select()}self.insertHtml("    ")}})}function _bindFocusEvent(){var self=this;K(self.edit.textarea[0],self.edit.win).focus(function(e){if(self.afterFocus){self.afterFocus.call(self,e)}}).blur(function(e){if(self.afterBlur){self.afterBlur.call(self,e)}})}function _removeBookmarkTag(html){return _trim(html.replace(/]*id="?__kindeditor_bookmark_\w+_\d+__"?[^>]*><\/span>/ig,""))}function _removeTempTag(html){return html.replace(/]+class="?__kindeditor_paste__"?[^>]*>[\s\S]*?<\/div>/ig,"")}function _addBookmarkToStack(stack,bookmark){if(stack.length===0){stack.push(bookmark);return}var prev=stack[stack.length-1];if(_removeBookmarkTag(bookmark.html)!==_removeBookmarkTag(prev.html)){stack.push(bookmark)}}function _undoToRedo(fromStack,toStack){var self=this,edit=self.edit,body=edit.doc.body,range,bookmark;if(fromStack.length===0){return self}if(edit.designMode){range=self.cmd.range;bookmark=range.createBookmark(true);bookmark.html=body.innerHTML}else{bookmark={html:body.innerHTML}}_addBookmarkToStack(toStack,bookmark);var prev=fromStack.pop();if(_removeBookmarkTag(bookmark.html)===_removeBookmarkTag(prev.html)&&fromStack.length>0){prev=fromStack.pop()}if(edit.designMode){edit.html(prev.html);if(prev.start){range.moveToBookmark(prev);self.select()}}else{K(body).html(_removeBookmarkTag(prev.html))}return self}function KEditor(options){var self=this;self.options={};function setOption(key,val){if(KEditor.prototype[key]===undefined){self[key]=val}self.options[key]=val}_each(options,function(key,val){setOption(key,options[key])});_each(K.options,function(key,val){if(self[key]===undefined){setOption(key,val)}});var se=K(self.srcElement||"