(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(/"];if(!_isArray(cssPath)){cssPath=[cssPath]}_each(cssPath,function(i,path){if(path){arr.push('')}});if(cssData){arr.push("")}arr.push("