(function(window,undefined){if(window.KindEditor){return;}
if(!window.console){window.console={};}
if(!console.log){console.log=function(){};}
var _VERSION='4.1.10 (2013-11-23)',_ua=navigator.userAgent.toLowerCase(),_IE=_ua.indexOf('msie')>-1&&_ua.indexOf('opera')==-1,_NEWIE=_ua.indexOf('msie')==-1&&_ua.indexOf('trident')>-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',_IERANGE=!window.getSelection,_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();}else{ev.returnValue=false;}},stopPropagation:function(){var ev=this.event;if(ev.stopPropagation){ev.stopPropagation();}else{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();}});}
var _readyFinished=false;function _ready(fn){if(_readyFinished){fn(KindEditor);return;}
var loaded=false;function readyFunc(){if(!loaded){loaded=true;fn(KindEditor);_readyFinished=true;}}
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){if(html==null){html='';}
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,'©');html=html.replace(/\u00AE/g,'®');html=html.replace(/<[^>]+/g,function($0){return $0.replace(/\s+/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=/(\s*)<(\/)?([\w\-:]+)((?:\s+|(?:\s+[\w\-:]+)|(?:\s+[\w\-:]+=[^\s"'<>]+)|(?:\s+[\w\-:"]+="[^"]*")|(?:\s+[\w\-:"]+='[^']*'))*)(\/)?>(\s*)/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(/'];if(!_isArray(cssPath)){cssPath=[cssPath];}
_each(cssPath,function(i,path){if(path){arr.push('');}});if(cssData){arr.push('');}
arr.push('