You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

5 lines
67 KiB
JavaScript

/*! xhEditor v1.2.1 | (c) 2009, 2013 xheditor.com.
Licence: http://xheditor.com/license/lgpl.txt */
(function(){var e={};window.XHEDITOR=e})(),function(e,t){e.mapLang={},e.setLang=function(i,s){s===t&&(s=i,i=""),""!==i&&(i+=".");var a,n;for(var o in s)n=s[o],a=i+o,"string"==typeof n||n instanceof Array?e.mapLang[a]=n:e.setLang(a,n)},e.getLang=function(i){var s=e.mapLang[i];if(s===t&&(s=i.replace(/{#([^{}]+)}/g,function(t,i){var s=e.mapLang[i];return s?s:i})),"string"==typeof s){var a=arguments;s=s.replace(/{\$(\d+)}/g,function(e,i){var s=a[parseInt(i,10)+1];return s!==t?s:e})}return s}}(XHEDITOR),function(XHEDITOR,$,undefined){var agent=navigator.userAgent.toLowerCase(),bMobile=/mobile/i.test(agent),browser=$.browser,browerVer=parseFloat(browser.version),isIE=browser.msie,isMozilla=browser.mozilla,isWebkit=browser.webkit,isOpera=browser.opera,isChrome=browser.chrome,bAir=agent.indexOf(" adobeair/")>-1,xCount=0,bShowPanel=!1,bClickCancel=!0,bShowModal=!1,bCheckEscInit=!1,_jPanel,_jShadow,_jCntLine,_jPanelButton,jModal,jModalShadow,layerShadow,jOverlay,jHideSelect,onModalRemove,editorRoot,getLang=XHEDITOR.getLang;if($("script[src*=xheditor]").each(function(){var e=this.src;return e.match(/xheditor[^\/]*\.js/i)?(editorRoot=e.replace(/[\?#].*$/,"").replace(/(^|[\/\\])[^\/]*$/,"$1"),!1):undefined}),isIE){try{document.execCommand("BackgroundImageCache",!1,!0)}catch(e){}var jqueryVer=$.fn.jquery;jqueryVer&&jqueryVer.match(/^1\.[67]/)&&($.attrHooks.width=$.attrHooks.height=null)}var specialKeys={27:"esc",9:"tab",32:"space",13:"enter",8:"backspace",145:"scroll",20:"capslock",144:"numlock",19:"pause",45:"insert",36:"home",46:"del",35:"end",33:"pageup",34:"pagedown",37:"left",38:"up",39:"right",40:"down",112:"f1",113:"f2",114:"f3",115:"f4",116:"f5",117:"f6",118:"f7",119:"f8",120:"f9",121:"f10",122:"f11",123:"f12"},arrAlign=[{v:"justifyleft"},{v:"justifycenter"},{v:"justifyright"},{v:"justifyfull"}],arrList=[{v:"insertOrderedList"},{v:"insertUnorderedList"}],htmlPastetext='<div><label for="xhePastetextValue">{#PastetextTip}</label></div><div><textarea id="xhePastetextValue" wrap="soft" spellcheck="false" style="width:300px;height:100px;" /></div><div style="text-align:right;"><input type="button" id="xheSave" value="{#dialogOk}" /></div>',htmlLink='<div><label for="xheLinkUrl">{#link.url}</label><input type="text" id="xheLinkUrl" value="http://" class="xheText" /></div><div><label for="xheLinkTarget">{#link.target}</label><select id="xheLinkTarget"><option selected="selected" value="">{#default}</option><option value="_blank">{#link.targetBlank}</option><option value="_self">{#link.targetSelf}</option><option value="_parent">{#link.targetParent}</option></select></div><div style="display:none"><label for="xheLinkText">{#link.linkText}</label><input type="text" id="xheLinkText" value="" class="xheText" /></div><div style="text-align:right;"><input type="button" id="xheSave" value="{#dialogOk}" /></div>',htmlAnchor='<div><label for="xheAnchorName">{#anchor.name}</label><input type="text" id="xheAnchorName" value="" class="xheText" /></div><div style="text-align:right;"><input type="button" id="xheSave" value="{#dialogOk}" /></div>',htmlImg='<div><label for="xheImgUrl">{#img.url}</label><input type="text" id="xheImgUrl" value="http://" class="xheText" /></div><div><div><label for="xheImgAlt">{#img.alt}</label><input type="text" id="xheImgAlt" /></div><div><label for="xheImgAlign">{#img.align}</label><select id="xheImgAlign"><option selected="selected" value="">{#default}</option><option value="left">{#img.alignLeft}</option><option value="right">{#img.alignRight}</option><option value="top">{#img.alignTop}</option><option value="middle">{#img.alignMiddle}</option><option value="baseline">{#img.alignBaseline}</option><option value="bottom">{#img.alignBottom}</option></select></div><div><label for="xheImgWidth">{#img.width}</label><input type="text" id="xheImgWidth" style="width:40px;" /> <label for="xheImgHeight">{#img.height}</label><input type="text" id="xheImgHeight" style="width:40px;" /></div><div><label for="xheImgBorder">{#img.border}</label><input type="text" id="xheImgBorder" style="width:40px;" /></div><div><label for="xheImgHspace">{#img.hspace}</label><input type="text" id="xheImgHspace" style="width:40px;" /> <label for="xheImgVspace">{#img.vspace}</label><input type="text" id="xheImgVspace" style="width:40px;" /></div><div style="text-align:right;"><input type="button" id="xheSave" value="{#dialogOk}" /></div>',htmlFlash='<div><label for="xheFlashUrl">{#flash.url}</label><input type="text" id="xheFlashUrl" value="http://" class="xheText" /></div><div><label for="xheFlashWidth">{#flash.width}</label><input type="text" id="xheFlashWidth" style="width:40px;" value="480" /> <label for="xheFlashHeight">{#flash.height}</label><input type="text" id="xheFlashHeight" style="width:40px;" value="400" /></div><div style="text-align:right;"><input type="button" id="xheSave" value="{#dialogOk}" /></div>',htmlMedia='<div><label for="xheMediaUrl">{#media.url}</label><input type="text" id="xheMediaUrl" value="http://" class="xheText" /></div><div><label for="xheMediaWidth">{#media.width}</label><input type="text" id="xheMediaWidth" style="width:40px;" value="480" /> <label for="xheMediaHeight">{#media.height}</label><input type="text" id="xheMediaHeight" style="width:40px;" value="400" /></div><div style="text-align:right;"><input type="button" id="xheSave" value="{#dialogOk}" /></div>',htmlTable='<div><label for="xheTableRows">{#table.rows}</label><input type="text" id="xheTableRows" style="width:40px;" value="3" /> <label for="xheTableColumns">{#table.columns}</label><input type="text" id="xheTableColumns" style="width:40px;" value="2" /></div><div><label for="xheTableHeaders">{#table.headers}</label><select id="xheTableHeaders"><option selected="selected" value="">{#none}</option><option value="row">{#table.headersRow}</option><option value="col">{#table.headersCol}</option><option value="both">{#table.headersBoth}</option></select></div><div><label for="xheTableWidth">{#table.width}</label><input type="text" id="xheTableWidth" style="width:40px;" value="200" /> <label for="xheTableHeight">{#table.height}</label><input type="text" id="xheTableHeight" style="width:40px;" value="" /></div><div><label for="xheTableBorder">{#table.border}</label><input type="text" id="xheTableBorder" style="width:40px;" value="1" /></div><div><label for="xheTableCellSpacing">{#table.cellSpacing}</label><input type="text" id="xheTableCellSpacing" style="width:40px;" value="1" /> <label for="xheTableCellPadding">{#table.cellPadding}</label><input type="text" id="xheTableCellPadding" style="width:40px;" value="1" /></div><div><label for="xheTableAlign">{#table.align}</label><select id="xheTableAlign"><option selected="selected" value="">{#default}</option><option value="left">{#table.alignLeft}</option><option value="center">{#table.alignCenter}</option><option value="right">{#table.alignRight}</option></select></div><div><label for="xheTableCaption">{#table.caption}</label><input type="text" id="xheTableCaption" /></div><div style="text-align:right;"><input type="button" id="xheSave" value="{#dialogOk}" /></div>',htmlAbout='<div style="font:12px Arial;width:245px;word-wrap:break-word;word-break:break-all;outline:none;" role="dialog" tabindex="-1"><p><span style="font-size:20px;color:#1997DF;">xhEditor</span><br />v1.2.1 (build 130225)</p><p>{#aboutXheditor}</p><p>Copyright &copy; <a href="http://xheditor.com/" target="_blank">xhEditor.com</a>. All rights reserved.</p></div>',itemEmots={"default":{name:"{#default}",width:24,height:24,line:7,list:["smile","tongue","titter","laugh","sad","wronged","fastcry","cry","wail","mad","knock","curse","crazy","angry","ohmy","awkward","panic","shy","cute","envy","proud","struggle","quiet","shutup","doubt","despise","sleep","bye"]}},arrTools={Cut:{t:"Cut"},Copy:{t:"Copy"},Paste:{t:"Paste"},Pastetext:{t:"Pastetext",h:isIE?0:1},Blocktag:{t:"Blocktag",h:1},Fontface:{t:"Fontface",h:1},FontSize:{t:"FontSize",h:1},Bold:{t:"Bold",s:"Ctrl+B"},Italic:{t:"Italic",s:"Ctrl+I"},Underline:{t:"Underline",s:"Ctrl+U"},Strikethrough:{t:"Strikethrough"},FontColor:{t:"FontColor",h:1},BackColor:{t:"BackColor",h:1},SelectAll:{t:"SelectAll"},Removeformat:{t:"Removeformat"},Align:{t:"Align",h:1},List:{t:"List",h:1},Outdent:{t:"Outdent"},Indent:{t:"Indent"},Link:{t:"Link",s:"Ctrl+L",h:1},Unlink:{t:"Unlink"},Anchor:{t:"Anchor",h:1},Img:{t:"Img",h:1},Flash:{t:"Flash",h:1},Media:{t:"Media",h:1},Hr:{t:"Hr"},Emot:{t:"Emot",s:"ctrl+e",h:1},Table:{t:"Table",h:1},Source:{t:"Source"},Preview:{t:"Preview"},Print:{t:"Print",s:"Ctrl+P"},Fullscreen:{t:"Fullscreen",s:"Esc"},About:{t:"About"}},toolsThemes={mini:"Bold,Italic,Underline,Strikethrough,|,Align,List,|,Link,Img",simple:"Blocktag,Fontface,FontSize,Bold,Italic,Underline,Strikethrough,FontColor,BackColor,|,Align,List,Outdent,Indent,|,Link,Img,Emot",full:"Cut,Copy,Paste,Pastetext,|,Blocktag,Fontface,FontSize,Bold,Italic,Underline,Strikethrough,FontColor,BackColor,SelectAll,Removeformat,|,Align,List,Outdent,Indent,|,Link,Unlink,Anchor,Img,Flash,Media,Hr,Emot,Table,|,Source,Preview,Print,Fullscreen"};toolsThemes.mfull=toolsThemes.full.replace(/\|(,Align)/i,"/$1");var arrDbClick={a:"Link",img:"Img",embed:"Embed"},uploadInputname="filedata",arrEntities={"<":"&lt;",">":"&gt;",'"':"&quot;","\u00ae":"&reg;","\u00a9":"&copy;"},regEntities=/[<>"\u00ae\u00a9]/g,Xheditor=function(textarea,options){function checkDblClick(e){var t=e.target,i=arrDbClick[t.tagName.toLowerCase()];if(i){if("Embed"===i){var s={"application/x-shockwave-flash":"Flash","application/x-mplayer2":"Media"};i=s[t.type.toLowerCase()]}_this.exec(i)}}function checkEsc(e){return 27===e.which?(bShowModal?_this.removeModal():bShowPanel&&_this.hidePanel(),!1):undefined}function loadReset(){setTimeout(_this.setSource,10)}function saveResult(){_this.getSource()}function cleanPaste(e){var t,i,s;if(e&&(t=e.originalEvent.clipboardData)&&(i=t.items)&&(s=i[0])&&"file"==s.kind&&s.type.match(/^image\//i)){var a=s.getAsFile(),n=new FileReader;return n.onload=function(){var e='<img src="'+event.target.result+'">';e=replaceRemoteImg(e),_this.pasteHTML(e)},n.readAsDataURL(a),!1}var o=settings.cleanPaste;if(0===o||bSource||bCleanPaste)return!0;bCleanPaste=!0,_this.saveBookmark();var l=isIE?"pre":"div",r=$("<"+l+' class="xhe-paste">\ufeff\ufeff</'+l+">",_doc).appendTo(_doc.body),h=r[0],c=_this.getSel(),d=_this.getRng(!0);r.css("top",_jWin.scrollTop()),isIE?(d.moveToElementText(h),d.select()):(d.selectNodeContents(h),c.removeAllRanges(),c.addRange(d)),setTimeout(function(){var e,t=3===o;if(t)r.html(r.html().replace(/<br(\s+[^<>]*)?>/gi,"\n")),e=r.text();else{var i=$(".xhe-paste",_doc.body),s=[];i.each(function(e,t){0==$(t).find(".xhe-paste").length&&s.push(t.innerHTML)}),e=s.join("<br />")}r.remove(),_this.loadBookmark(),e=e.replace(/^[\s\uFEFF]+|[\s\uFEFF]+$/g,""),e&&(t?_this.pasteText(e):(e=_this.cleanHTML(e),e=_this.cleanWord(e),e=_this.formatXHTML(e),(!settings.onPaste||settings.onPaste&&(e=settings.onPaste(e))!==!1)&&(e=replaceRemoteImg(e),_this.pasteHTML(e)))),bCleanPaste=!1},0)}function replaceRemoteImg(e){var t=settings.localUrlTest,i=settings.remoteImgSaveUrl;if(t&&i){var s=[],a=0;e=e.replace(/(<img)((?:\s+[^>]*?)?(?:\s+src="\s*([^"]+)\s*")(?: [^>]*)?)(\/?>)/gi,function(e,i,n,o,l){return!/^(https?|data:image)/i.test(o)||/_xhe_temp/.test(n)||t.test(o)||(s[a]=o,n=n.replace(/\s+(width|height)="[^"]*"/gi,"").replace(/\s+src="[^"]*"/gi,' src="'+skinPath+'img/waiting.gif" remoteimg="'+a++ +'"')),i+n+l}),s.length>0&&$.post(i,{urls:s.join("|")},function(e){e=e.split("|"),$("img[remoteimg]",_this.doc).each(function(){var t=$(this);xheAttr(t,"src",e[t.attr("remoteimg")]),t.removeAttr("remoteimg")})})}return e}function setCSS(e){try{_this._exec("styleWithCSS",e,!0)}catch(t){try{_this._exec("useCSS",!e,!0)}catch(t){}}}function setOpts(){if(bInit&&!bSource){setCSS(!1);try{_this._exec("enableObjectResizing",!0,!0)}catch(e){}if(isIE)try{_this._exec("BackgroundImageCache",!0,!0)}catch(e){}}}function forcePtag(e){if(bSource||13!==e.which||e.shiftKey||e.ctrlKey||e.altKey)return!0;var t=_this.getParent("p,h1,h2,h3,h4,h5,h6,pre,address,div,li");return t.is("li")?!0:settings.forcePtag?(0===t.length&&_this._exec("formatblock","<p>"),undefined):(_this.pasteHTML("<br />"),isIE&&t.length>0&&2===_this.getRng().parentElement().childNodes.length&&_this.pasteHTML("<br />"),!1)}function fixFullHeight(){isMozilla||isWebkit||(bFullscreen&&_jArea.height("100%").css("height",_jArea.outerHeight()-_jTools.outerHeight()),isIE&&_jTools.hide().show())}function fixAppleSel(e){if(e=e.target,e.tagName.match(/(img|embed)/i)){var t=_this.getSel(),i=_this.getRng(!0);i.selectNode(e),t.removeAllRanges(),t.addRange(i)}}function xheAttr(e,t,i){if(!t)return!1;var s="_xhe_"+t;return i&&(urlType&&(i=getLocalUrl(i,urlType,urlBase)),e.attr(t,urlBase?getLocalUrl(i,"abs",urlBase):i).removeAttr(s).attr(s,i)),e.attr(s)||e.attr(t)}function clickCancelPanel(){bClickCancel&&_this.hidePanel()}function checkShortcuts(e){if(bSource)return!0;var t=e.which,i=specialKeys[t],s=i?i:String.fromCharCode(t).toLowerCase();sKey="",sKey+=e.ctrlKey?"ctrl+":"",sKey+=e.altKey?"alt+":"",sKey+=e.shiftKey?"shift+":"",sKey+=s;var a,n=arrShortCuts[sKey];for(a in n){if(a=n[a],!$.isFunction(a))return _this.exec(a),!1;if(a.call(_this)===!1)return!1}}function is(e,t){var i=typeof e;return t?"array"===t&&e.hasOwnProperty&&e instanceof Array?!0:i===t:"undefined"!=i}function getLocalUrl(e,t,i){if(e.match(/^(\w+):\/\//i)&&!e.match(/^https?:/i)||/^#/i.test(e)||/^data:/i.test(e))return e;var s=i?$('<a href="'+i+'" />')[0]:location,a=s.protocol,n=s.host,o=s.hostname,l=s.port,r=s.pathname.replace(/\\/g,"/").replace(/[^\/]+$/i,"");if(""===l&&(l="80"),""===r?r="/":"/"!==r.charAt(0)&&(r="/"+r),e=$.trim(e),"abs"!==t&&(e=e.replace(RegExp(a+"\\/\\/"+o.replace(/\./g,"\\.")+"(?::"+l+")"+("80"===l?"?":"")+"(/|$)","i"),"/")),"rel"===t&&(e=e.replace(RegExp("^"+r.replace(/([\/\.\+\[\]\(\)])/g,"\\$1"),"i"),"")),"rel"!==t&&(e.match(/^(https?:\/\/|\/)/i)||(e=r+e),"/"===e.charAt(0))){var h,c,d=[],u=e.split("/"),p=u.length;for(c=0;p>c;c++)h=u[c],".."===h?d.pop():""!==h&&"."!==h&&d.push(h);""===u[p-1]&&d.push(""),e="/"+d.join("/")}return"abs"!==t||e.match(/^https?:\/\//i)||(e=a+"//"+n+e),e=e.replace(/(https?:\/\/[^:\/?#]+):80(\/|$)/i,"$1$2")}function checkFileExt(e,t){return"*"===t||e.match(RegExp(".("+t.replace(/,/g,"|")+")$","i"))?!0:(alert(getLang("upload.extLimit",t)),!1)}function formatBytes(e){var t=["Byte","KB","MB","GB","TB","PB"],i=Math.floor(Math.log(e)/Math.log(1024));return(e/Math.pow(1024,Math.floor(i))).toFixed(2)+t[i]}function returnFalse(){return!1}var _this=this,_text=textarea,_jText=$(_text),_jForm=_jText.closest("form"),_jTools,_jArea,_win,_jWin,_doc,_jDoc,bookmark,bInit=!1,bSource=!1,bFullscreen=!1,bCleanPaste=!1,outerScroll,bShowBlocktag=!1,sLayoutStyle="",ev=null,timer,bDisableHoverExec=!1,bQuickHoverExec=!1,lastPoint=null,lastAngle=null,editorHeight=0,settings=_this.settings=$.extend({},XHEDITOR.settings,options),plugins=settings.plugins,strPlugins=[];if(plugins&&(arrTools=$.extend({},arrTools,plugins),$.each(plugins,function(e){strPlugins.push(e)}),strPlugins=strPlugins.join(",")),settings.tools.match(/^\s*(m?full|simple|mini)\s*$/i)){var toolsTheme=toolsThemes[$.trim(settings.tools)];settings.tools=settings.tools.match(/m?full/i)&&plugins?toolsTheme.replace("Table","Table,"+strPlugins):toolsTheme}settings.tools.match(/(^|,)\s*About\s*(,|$)/i)||(settings.tools+=",About"),settings.tools=settings.tools.split(","),settings.editorRoot&&(editorRoot=settings.editorRoot),bAir===!1&&(editorRoot=getLocalUrl(editorRoot,"abs")),settings.urlBase&&(settings.urlBase=getLocalUrl(settings.urlBase,"abs"));var idCSS="xheCSS_"+settings.skin,idContainer="xhe"+xCount+"_container",idTools="xhe"+xCount+"_Tool",idIframeArea="xhe"+xCount+"_iframearea",idIframe="xhe"+xCount+"_iframe",idFixFFCursor="xhe"+xCount+"_fixffcursor",headHTML="",bodyClass="",skinPath=editorRoot+"xheditor_skin/"+settings.skin+"/",arrEmots=itemEmots,urlType=settings.urlType,urlBase=settings.urlBase,emotPath=settings.emotPath,emotPath=emotPath?emotPath:editorRoot+"xheditor_emot/",selEmotGroup="";arrEmots=$.extend({},arrEmots,settings.emots),emotPath=getLocalUrl(emotPath,"rel",urlBase?urlBase:null),bShowBlocktag=settings.showBlocktag,bShowBlocktag&&(bodyClass+=" showBlocktag");var arrShortCuts=[];this.init=function(){function e(e){var t,i=$(e.target);(t=i.css("width"))&&i.css("width","").attr("width",t.replace(/[^0-9%]+/g,"")),(t=i.css("height"))&&i.css("height","").attr("height",t.replace(/[^0-9%]+/g,""))}0===$("#"+idCSS).length&&$("head").append('<link id="'+idCSS+'" rel="stylesheet" type="text/css" href="'+skinPath+'ui.css" />');var t=_jText.outerWidth(),i=_jText.outerHeight(),s=settings.width||_text.style.width||(t>10?t:0);editorHeight=settings.height||_text.style.height||(i>10?i:150),/^\d+(?:\.\d+)?$/.test(s)&&(s+="px"),is(editorHeight,"string")&&(editorHeight=editorHeight.replace(/[^\d]+/g,""));var a,n,o=settings.background||_text.style.background,l=['<span class="xheGStart"/>'],r=/\||\//i;$.each(settings.tools,function(e,t){if(t.match(r)&&l.push('<span class="xheGEnd"/>'),"|"===t)l.push('<span class="xheSeparator"/>');else if("/"===t)l.push("<br />");else{if(a=arrTools[t],!a)return;n=a.c?a.c:"xheIcon xheBtn"+t,l.push('<span><a href="#" title="{#'+a.t+'}" cmd="'+t+'" class="xheButton xheEnabled" tabindex="-1" role="button"><span class="'+n+'" unselectable="on" style="font-size:0;color:transparent;text-indent:-999px;">'+a.t+"</span></a></span>"),a.s&&_this.addShortcuts(a.s,t)}t.match(r)&&l.push('<span class="xheGStart"/>')}),l.push('<span class="xheGEnd"/><br />'),_jText.after($('<input type="text" id="'+idFixFFCursor+'" style="position:absolute;display:none;" /><span id="'+idContainer+'" class="xhe_'+settings.skin+'" style="display:none"><table cellspacing="0" cellpadding="0" class="xheLayout" style="'+("0px"!=s?"width:"+s+";":"")+"height:"+editorHeight+'px;" role="presentation"><tr><td id="'+idTools+'" class="xheTool" unselectable="on" style="height:1px;" role="presentation"></td></tr><tr><td id="'+idIframeArea+'" class="xheIframeArea" role="presentation"><iframe frameborder="0" id="'+idIframe+'" src="javascript:;" style="width:100%;"></iframe></td></tr></table></span>')),_jTools=$("#"+idTools),_jArea=$("#"+idIframeArea),headHTML='<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><link rel="stylesheet" href="'+skinPath+'iframe.css"/>';var h=settings.loadCSS;if(h)if(is(h,"array"))for(var c in h)headHTML+='<link rel="stylesheet" href="'+h[c]+'"/>';else headHTML+=h.match(/\s*<style(\s+[^>]*?)?>[\s\S]+?<\/style>\s*/i)?h:'<link rel="stylesheet" href="'+h+'"/>';var d='<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head>'+headHTML+"<title>{#defaultReadTip} "+(settings.readTip?settings.readTip:"")+"</title>";o&&(d+="<style>html{background:"+o+";}</style>"),d+='</head><body spellcheck="0" class="editMode'+bodyClass+'"></body></html>',_this.win=_win=$("#"+idIframe)[0].contentWindow,_jWin=$(_win);try{this.doc=_doc=_win.document,_jDoc=$(_doc),_doc.open(),_doc.write(getLang(d)),_doc.close(),isIE?_doc.body.contentEditable="true":_doc.designMode="On"}catch(u){}setTimeout(setOpts,300),_this.setSource(),_win.setInterval=null,_jTools.append(getLang(l.join(""))).bind("mousedown contextmenu",returnFalse).click(function(e){var t=$(e.target).closest("a");return t.is(".xheEnabled")&&(clearTimeout(timer),_jTools.find("a").attr("tabindex","-1"),ev=e,_this.exec(t.attr("cmd"))),!1}),_jTools.find(".xheButton").hover(function(e){var t=$(this),i=settings.hoverExecDelay,s=lastAngle;if(lastAngle=null,-1===i||bDisableHoverExec||!t.is(".xheEnabled"))return!1;if(s&&s>10)return bDisableHoverExec=!0,setTimeout(function(){bDisableHoverExec=!1},100),!1;var a=t.attr("cmd"),n=1===arrTools[a].h;return n?(bQuickHoverExec&&(i=0),i>=0&&(timer=setTimeout(function(){ev=e,lastPoint={x:ev.clientX,y:ev.clientY},_this.exec(a)},i)),undefined):(_this.hidePanel(),!1)},function(){lastPoint=null,timer&&clearTimeout(timer)}).mousemove(function(e){if(lastPoint){var t={x:e.clientX-lastPoint.x,y:e.clientY-lastPoint.y};if(Math.abs(t.x)>1||Math.abs(t.y)>1){if(t.x>0&&t.y>0){var i=Math.round(Math.atan(t.y/t.x)/.017453293);lastAngle=lastAngle?(lastAngle+i)/2:i}else lastAngle=null;lastPoint={x:e.clientX,y:e.clientY}}}}),_jPanel=$("#xhePanel"),_jShadow=$("#xheShadow"),_jCntLine=$("#xheCntLine"),0===_jPanel.length&&(_jPanel=$('<div id="xhePanel"></div>').mousedown(function(e){e.stopPropagation()}),_jShadow=$('<div id="xheShadow"></div>'),_jCntLine=$('<div id="xheCntLine"></div>'),setTimeout(function(){$(document.body).append(_jPanel).append(_jShadow).append(_jCntLine)},10)),$("#"+idContainer).show(),_jText.hide(),_jArea.css("height",editorHeight-_jTools.outerHeight()),isIE&8>browerVer&&setTimeout(function(){_jArea.css("height",editorHeight-_jTools.outerHeight())},1),_jText.focus(_this.focus),_jForm.submit(saveResult).bind("reset",loadReset),settings.submitID&&$("#"+settings.submitID).mousedown(saveResult),$(window).bind("unload beforeunload",saveResult).bind("resize",fixFullHeight),$(document).mousedown(clickCancelPanel),bCheckEscInit||($(document).keydown(checkEsc),bCheckEscInit=!0),_jWin.focus(function(){settings.focus&&settings.focus()}).blur(function(){settings.blur&&settings.blur()}),isWebkit&&_jWin.click(fixAppleSel),_jDoc.mousedown(clickCancelPanel).keydown(checkShortcuts).keypress(forcePtag).dblclick(checkDblClick).bind("mousedown click",function(e){_jText.trigger(e.type)}),isIE&&(_jDoc.keydown(function(e){var t=_this.getRng();return 8===e.which&&t.item?($(t.item(0)).remove(),!1):undefined}),_jDoc.bind("controlselect",function(t){t=t.target,$.nodeName(t,"IMG")&&$(t).unbind("resizeend",e).bind("resizeend",e)})),_jDoc.keydown(function(e){var t=e.which;return e.altKey&&t>=49&&57>=t?(_jTools.find("a").attr("tabindex","0"),_jTools.find(".xheGStart").eq(t-49).next().find("a").focus(),_doc.title="\ufeff\ufeff",!1):undefined}).click(function(){_jTools.find("a").attr("tabindex","-1")}),_jTools.keydown(function(e){var t=e.which;if(27==t)_jTools.find("a").attr("tabindex","-1"),_this.focus();else if(e.altKey&&t>=49&&57>=t)return _jTools.find(".xheGStart").eq(t-49).next().find("a").focus(),!1});var p=$(_doc.documentElement);isOpera?p.bind("keydown",function(e){e.ctrlKey&&86===e.which&&cleanPaste()}):p.bind(isIE?"beforepaste":"paste",cleanPaste),settings.disableContextmenu&&p.bind("contextmenu",returnFalse),settings.html5Upload&&p.bind("dragenter dragover",function(e){var t;return(t=e.originalEvent.dataTransfer.types)&&-1!==$.inArray("Files",t)?!1:undefined}).bind("drop",function(e){function t(e){var t,i,s;for(a=0;e.length>a;a++){if(i=e[a].name.replace(/.+\./,""),!(t=o.match(RegExp("(\\w+):[^:]*,"+i+"(?:,|$)","i"))))return 1;if(s){if(s!==t[1])return 2}else s=t[1]}return s}var i,s=e.originalEvent.dataTransfer;if(s&&(i=s.files)&&i.length>0){var a,n,o,l=["Link","Img","Flash","Media"],r=[];for(a in l)n=l[a],settings["up"+n+"Url"]&&settings["up"+n+"Url"].match(/^[^!].*/i)&&r.push(n+":,"+settings["up"+n+"Ext"]);return 0===r.length?!1:(o=r.join(","),n=t(i),1===n?alert(getLang("upload.extLimit",o.replace(/\w+:,/g,""))):2===n?alert(getLang("upload.typeLimit")):n&&_this.startUpload(i,settings["up"+n+"Url"],"*",function(e){var t,i=[],s=settings.onUpload;s&&s(e);for(var a=0,o=e.length;o>a;a++)t=e[a],url=is(t,"string")?t:t.url,"!"===url.substr(0,1)&&(url=url.substr(1)),i.push(url);_this.exec(n),$("#xhe"+n+"Url").val(i.join(" ")),$("#xheSave").click()}),!1)}});var g=settings.shortcuts;g&&$.each(g,function(e,t){_this.addShortcuts(e,t)}),xCount++,bInit=!0,settings.fullscreen?_this.toggleFullscreen():settings.sourceMode&&setTimeout(_this.toggleSource,20);var f=settings.plugins;return f&&$.each(f,function(e,t){var i=t.i;i!==undefined&&i(_this)}),!0},this.remove=function(){_this.hidePanel(),saveResult(),_jText.unbind("focus",_this.focus),_jForm.unbind("submit",saveResult).unbind("reset",loadReset),settings.submitID&&$("#"+settings.submitID).unbind("mousedown",saveResult),$(window).unbind("unload beforeunload",saveResult).unbind("resize",fixFullHeight),$(document).unbind("mousedown",clickCancelPanel),$("#"+idContainer).remove(),$("#"+idFixFFCursor).remove(),_jText.show(),bInit=!1},this.saveBookmark=function(){if(!bSource){_this.focus();var e=_this.getRng();e=e.cloneRange?e.cloneRange():e,bookmark={top:_jWin.scrollTop(),rng:e}}},this.loadBookmark=function(){if(!bSource&&bookmark){_this.focus();var e=bookmark.rng;if(isIE)e.select();else{var t=_this.getSel();t.removeAllRanges(),t.addRange(e)}_jWin.scrollTop(bookmark.top),bookmark=null}},this.focus=function(){if(bSource?$("#sourceCode",_doc).focus():_win.focus(),isIE){var e=_this.getRng();e.parentElement&&e.parentElement().ownerDocument!==_doc&&_this.setTextCursor()}return!1},this.setTextCursor=function(e){var t=_this.getRng(!0),i=_doc.body;if(isIE)t.moveToElementText(i);else{for(var s=e?"lastChild":"firstChild";3!=i.nodeType&&i[s];)i=i[s];t.selectNode(i)}if(t.collapse(e?!1:!0),isIE)t.select();else{var a=_this.getSel();a.removeAllRanges(),a.addRange(t)}},this.getSel=function(){return _doc.selection?_doc.selection:_win.getSelection()},this.getRng=function(e){var t,i;try{e||(t=_this.getSel(),i=t.createRange?t.createRange():t.rangeCount>0?t.getRangeAt(0):null),i||(i=_doc.body.createTextRange?_doc.body.createTextRange():_doc.createRange())}catch(s){}return i},this.getParent=function(e){var t,i=_this.getRng();return isIE?t=i.item?i.item(0):i.parentElement():(t=i.commonAncestorContainer,i.collapsed||i.startContainer===i.endContainer&&2>i.startOffset-i.endOffset&&i.startContainer.hasChildNodes()&&(t=i.startContainer.childNodes[i.startOffset])),e=e?e:"*",t=$(t),t.is(e)||(t=$(t).closest(e)),t},this.getSelect=function(e){var t=_this.getSel(),i=_this.getRng(),s=!0;if(s=!i||i.item?!1:!t||0===i.boundingWidth||i.collapsed,"text"===e)return s?"":i.text||(t.toString?""+t:"");var a;if(i.cloneContents){var n,o=$("<div></div>");n=i.cloneContents(),n&&o.append(n),a=o.html()}else a=is(i.item)?i.item(0).outerHTML:is(i.htmlText)?i.htmlText:""+i;return s&&(a=""),a=_this.processHTML(a,"read"),a=_this.cleanHTML(a),a=_this.formatXHTML(a)},this.pasteHTML=function(e,t){if(bSource)return!1;_this.focus(),e=_this.processHTML(e,"write");var i=_this.getSel(),s=_this.getRng();if(t!==undefined){if(s.item){var a=s.item(0);s=_this.getRng(!0),s.moveToElementText(a),s.select()}s.collapse(t)}if(e+="<"+(isIE?"img":"span")+' id="_xhe_temp" width="0" height="0" />',s.insertNode){if($(s.startContainer).closest("style,script").length>0)return!1;s.deleteContents(),s.insertNode(s.createContextualFragment(e))}else"control"===i.type.toLowerCase()&&(i.clear(),s=_this.getRng()),s.pasteHTML(e);var n=$("#_xhe_temp",_doc),o=n[0];isIE?(s.moveToElementText(o),s.select()):(s.selectNode(o),i.removeAllRanges(),i.addRange(s)),n.remove()},this.pasteText=function(e,t){e||(e=""),e=_this.domEncode(e),e=e.replace(/\r?\n/g,"<br />"),_this.pasteHTML(e,t)},this.appendHTML=function(e){return bSource?!1:(_this.focus(),e=_this.processHTML(e,"write"),$(_doc.body).append(e),_this.setTextCursor(!0),undefined)},this.domEncode=function(e){return e.replace(regEntities,function(e){return arrEntities[e]})},this.setSource=function(e){bookmark=null,"string"!=typeof e&&""!==e&&(e=_text.value),bSource?$("#sourceCode",_doc).val(e):(settings.beforeSetSource&&(e=settings.beforeSetSource(e)),e=_this.cleanHTML(e),e=_this.formatXHTML(e),e=_this.processHTML(e,"write"),isIE?(_doc.body.innerHTML='<img id="_xhe_temp" width="0" height="0" />'+e,$("#_xhe_temp",_doc).remove()):_doc.body.innerHTML=e)},this.processHTML=function(e,t){function i(e,t,i,s,a,o){var l,r,h,c,d="";if(l=s.match(/font-family\s*:\s*([^;"]+)/i),l&&(d+=' face="'+l[1]+'"'),r=s.match(/font-size\s*:\s*([^;"]+)/i)){r=r[1].toLowerCase();for(var u=0;n.length>u;u++)if(r===n[u].n||r===n[u].s){h=u+1;break}h&&(d+=' size="'+h+'"',s=s.replace(/(^|;)(\s*font-size\s*:\s*[^;"]+;?)+/gi,"$1"))}if(c=s.match(/(?:^|[\s;])color\s*:\s*([^;"]+)/i)){var p;if(p=c[1].match(/\s*rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/i)){c[1]="#";for(var g=1;3>=g;g++)c[1]+=("0"+(p[g]-0).toString(16)).slice(-2)}c[1]=c[1].replace(/^#([0-9a-f])([0-9a-f])([0-9a-f])$/i,"#$1$1$2$2$3$3"),d+=' color="'+c[1]+'"'}return s=s.replace(/(^|;)(\s*(font-family|color)\s*:\s*[^;"]+;?)+/gi,"$1"),""!==d?(s&&(d+=' style="'+s+'"'),"<font"+(i?i:"")+d+(a?a:"")+">"+o+"</font>"):e}function s(e,t,i,s,a){for(var n,l,r=(i?i:"")+(s?s:""),h=[],c=[],d=0;o.length>d;d++)n=o[d].r,l=o[d].t,r=r.replace(n,function(){return h.push("<"+l+">"),c.push("</"+l+">"),""});return r=r.replace(/\s+style\s*=\s*"\s*"/i,""),(r?"<span"+r+">":"")+h.join("")+a+c.join("")+(r?"</span>":"")}var a=' class="Apple-style-span"',n=settings.listFontsize;if("write"===t)e=e.replace(/(<(\/?)(\w+))((?:\s+[\w\-:]+\s*=\s*(?:"[^"]*"|'[^']*'|[^>\s]+))*)\s*((\/?)>)/g,function(e,t,i,s,n,o,l){s=s.toLowerCase(),isMozilla?"strong"===s?s="b":"em"===s&&(s="i"):isWebkit&&("strong"===s?(s="span",i||(n+=a+' style="font-weight: bold;"')):"em"===s?(s="span",i||(n+=a+' style="font-style: italic;"')):"u"===s?(s="span",i||(n+=a+' style="text-decoration: underline;"')):"strike"===s&&(s="span",i||(n+=a+' style="text-decoration: line-through;"')));var r,h="";if("del"===s)s="strike";else if("img"===s)n=n.replace(/\s+emot\s*=\s*("[^"]*"|'[^']*'|[^>\s]+)/i,function(e,t){return r=t.match(/^(["']?)(.*)\1/)[2],r=r.split(","),r[1]||(r[1]=r[0],r[0]=""),"default"===r[0]&&(r[0]=""),settings.emotMark?e:""});else if("a"===s)!n.match(/ href=[^ ]/i)&&n.match(/ name=[^ ]/i)&&(h+=" xhe-anchor"),l&&(o="></a>");else if("table"===s&&!i){var c=n.match(/\s+border\s*=\s*("[^"]*"|'[^']*'|[^>\s]+)/i);(!c||c[1].match(/^(["']?)\s*0\s*\1$/))&&(h+=" xhe-border")}var d;if(n=n.replace(/\s+([\w\-:]+)\s*=\s*("[^"]*"|'[^']*'|[^>\s]+)/g,function(e,t,i){return t=t.toLowerCase(),i=i.match(/^(["']?)(.*)\1/)[2],aft="",isIE&&t.match(/^(disabled|checked|readonly|selected)$/)&&i.match(/^(false|0)$/i)?"":"img"===s&&r&&"src"===t?"":(t.match(/^(src|href)$/)&&(aft=" _xhe_"+t+'="'+i+'"',urlBase&&(i=getLocalUrl(i,"abs",urlBase))),h&&"class"===t&&(i+=" "+h,h=""),isWebkit&&"style"===t&&"span"===s&&i.match(/(^|;)\s*(font-family|font-size|color|background-color)\s*:\s*[^;]+\s*(;|$)/i)&&(d=!0)," "+t+'="'+i+'"'+aft)}),r){var u=emotPath+(r[0]?r[0]:"default")+"/"+r[1]+".gif";n+=' src="'+u+'" _xhe_src="'+u+'"'}return d&&(n+=a),h&&(n+=' class="'+h+'"'),"<"+i+s+n+o}),isIE&&(e=e.replace(/&apos;/gi,"&#39;")),isWebkit||(e=e.replace(/<(span)(\s+[^>]*?)?\s+style\s*=\s*"((?:[^"]*?;)?\s*(?:font-family|font-size|color)\s*:[^"]*)"( [^>]*)?>(((?!<\1(\s+[^>]*?)?>)[\s\S]|<\1(\s+[^>]*?)?>((?!<\1(\s+[^>]*?)?>)[\s\S]|<\1(\s+[^>]*?)?>((?!<\1(\s+[^>]*?)?>)[\s\S])*?<\/\1>)*?<\/\1>)*?)<\/\1>/gi,i),e=e.replace(/<(span)(\s+[^>]*?)?\s+style\s*=\s*"((?:[^"]*?;)?\s*(?:font-family|font-size|color)\s*:[^"]*)"( [^>]*)?>(((?!<\1(\s+[^>]*?)?>)[\s\S]|<\1(\s+[^>]*?)?>((?!<\1(\s+[^>]*?)?>)[\s\S])*?<\/\1>)*?)<\/\1>/gi,i),e=e.replace(/<(span)(\s+[^>]*?)?\s+style\s*=\s*"((?:[^"]*?;)?\s*(?:font-family|font-size|color)\s*:[^"]*)"( [^>]*)?>(((?!<\1(\s+[^>]*?)?>)[\s\S])*?)<\/\1>/gi,i)),e=e.replace(/<(td|th)(\s+[^>]*?)?>(\s|&nbsp;)*<\/\1>/gi,"<$1$2>"+(isIE?"":"<br />")+"</$1>");else{if(isWebkit)for(var o=[{r:/font-weight\s*:\s*bold;?/gi,t:"strong"},{r:/font-style\s*:\s*italic;?/gi,t:"em"},{r:/text-decoration\s*:\s*underline;?/gi,t:"u"},{r:/text-decoration\s*:\s*line-through;?/gi,t:"strike"}],l=0;2>l;l++)e=e.replace(/<(span)(\s+[^>]*?)?\s+class\s*=\s*"Apple-style-span"(\s+[^>]*?)?>(((?!<\1(\s+[^>]*?)?>)[\s\S]|<\1(\s+[^>]*?)?>((?!<\1(\s+[^>]*?)?>)[\s\S]|<\1(\s+[^>]*?)?>((?!<\1(\s+[^>]*?)?>)[\s\S])*?<\/\1>)*?<\/\1>)*?)<\/\1>/gi,s),e=e.replace(/<(span)(\s+[^>]*?)?\s+class\s*=\s*"Apple-style-span"(\s+[^>]*?)?>(((?!<\1(\s+[^>]*?)?>)[\s\S]|<\1(\s+[^>]*?)?>((?!<\1(\s+[^>]*?)?>)[\s\S])*?<\/\1>)*?)<\/\1>/gi,s),e=e.replace(/<(span)(\s+[^>]*?)?\s+class\s*=\s*"Apple-style-span"(\s+[^>]*?)?>(((?!<\1(\s+[^>]*?)?>)[\s\S])*?)<\/\1>/gi,s);e=e.replace(/(<(\w+))((?:\s+[\w\-:]+\s*=\s*(?:"[^"]*"|'[^']*'|[^>\s]+))*)\s*(\/?>)/g,function(e,t,i,s,a){i=i.toLowerCase();
var o;return s=s.replace(/\s+_xhe_(?:src|href)\s*=\s*("[^"]*"|'[^']*'|[^>\s]+)/i,function(e,t){return o=t.match(/^(["']?)(.*)\1/)[2],""}),o&&urlType&&(o=getLocalUrl(o,urlType,urlBase)),s=s.replace(/\s+([\w\-:]+)\s*=\s*("[^"]*"|'[^']*'|[^>\s]+)/g,function(e,t,i){if(t=t.toLowerCase(),i=i.match(/^(["']?)(.*)\1/)[2].replace(/"/g,"'"),"class"===t){if(i.match(/^["']?(apple|webkit)/i))return"";if(i=i.replace(/\s?xhe-[a-z]+/gi,""),""===i)return""}else{if(t.match(/^((_xhe_|_moz_|_webkit_)|jquery\d+)/i))return"";if(o&&t.match(/^(src|href)$/i))return" "+t+'="'+o+'"';"style"===t&&(i=i.replace(/(^|;)\s*(font-size)\s*:\s*([a-z-]+)\s*(;|$)/i,function(e,t,i,s,a){for(var o,l,r=0;n.length>r;r++)if(o=n[r],s===o.n){l=o.s;break}return t+i+":"+l+a}))}return" "+t+'="'+i+'"'}),"img"!==i||s.match(/\s+alt\s*=\s*("[^"]*"|'[^']*'|[^>\s]+)/i)||(s+=' alt=""'),t+s+a}),e=e.replace(/(<(td|th)(?:\s+[^>]*?)?>)\s*([\s\S]*?)(<br(\s*\/)?>)?\s*<\/\2>/gi,function(e,t,i,s){return t+(s?s:"&nbsp;")+"</"+i+">"}),e=e.replace(/^\s*(?:<(p|div)(?:\s+[^>]*?)?>)?\s*(<span(?:\s+[^>]*?)?>\s*<\/span>|<br(?:\s+[^>]*?)?>|&nbsp;)*\s*(?:<\/\1>)?\s*$/i,"")}return e=e.replace(/(<pre(?:\s+[^>]*?)?>)([\s\S]+?)(<\/pre>)/gi,function(e,t,i,s){return t+i.replace(/<br\s*\/?>/gi,"\r\n")+s})},this.getSource=function(e){var t,i=settings.beforeGetSource;return bSource?(t=$("#sourceCode",_doc).val(),i||(t=_this.formatXHTML(t,!1))):(t=_this.processHTML(_doc.body.innerHTML,"read"),t=_this.cleanHTML(t),t=_this.formatXHTML(t,e),i&&(t=i(t))),_text.value=t,t},this.cleanWord=function(e){function t(e,t,i){return i}var i=settings.cleanPaste;if(i>0&&3>i&&/mso(-|normal)|WordDocument|<table\s+[^>]*?x:str|\s+class\s*=\s*"?xl[67]\d"/i.test(e)){e=e.replace(/<!--[\s\S]*?-->|<!(--)?\[[\s\S]+?\](--)?>|<style(\s+[^>]*?)?>[\s\S]*?<\/style>/gi,""),e=e.replace(/\r?\n/gi,""),isIE?(e=e.replace(/<v:shapetype(\s+[^>]*)?>[\s\S]*<\/v:shapetype>/gi,""),e=e.replace(/<v:shape(\s+[^>]+)?>[\s\S]*?<v:imagedata(\s+[^>]+)?>\s*<\/v:imagedata>[\s\S]*?<\/v:shape>/gi,function(e,t,i){var s;if(s=i.match(/\s+src\s*=\s*("[^"]+"|'[^']+'|[^>\s]+)/i)){s=s[1].match(/^(["']?)(.*)\1/)[2];var a='<img src="'+editorRoot+"xheditor_skin/blank.gif"+'" _xhe_temp="true" class="wordImage"';return s=t.match(/\s+style\s*=\s*("[^"]+"|'[^']+'|[^>\s]+)/i),s&&(s=s[1].match(/^(["']?)(.*)\1/)[2],a+=' style="'+s+'"'),a+=" />"}return""})):e=e.replace(/<img( [^<>]*(v:shapes|msohtmlclip)[^<>]*)\/?>/gi,function(e,t){var i,s='<img src="'+editorRoot+"xheditor_skin/blank.gif"+'" _xhe_temp="true" class="wordImage"';return i=t.match(/ width\s*=\s*"([^"]+)"/i),i&&(s+=' width="'+i[1]+'"'),i=t.match(/ height\s*=\s*"([^"]+)"/i),i&&(s+=' height="'+i[1]+'"'),s+" />"}),e=e.replace(/(<(\/?)([\w\-:]+))((?:\s+[\w\-:]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^>\s]+))?)*)\s*(\/?>)/g,function(e,t,s,a,n,o){return a=a.toLowerCase(),a.match(/^(link)$/)&&n.match(/file:\/\//i)||a.match(/:/)||"span"===a&&2===i?"":(s||(n=n.replace(/\s([\w\-:]+)(?:\s*=\s*("[^"]*"|'[^']*'|[^>\s]+))?/gi,function(e,t,s){if(t=t.toLowerCase(),/:/.test(t))return"";if(s=s.match(/^(["']?)(.*)\1/)[2],1===i)switch(a){case"p":if("style"===t)return s=s.replace(/"|&quot;/gi,"'").replace(/\s*([^:]+)\s*:\s*(.*?)(;|$)/gi,function(e,t,i){return/^(text-align)$/i.test(t)?t+":"+i+";":""}).replace(/^\s+|\s+$/g,""),s?" "+t+'="'+s+'"':"";break;case"span":if("style"===t)return s=s.replace(/"|&quot;/gi,"'").replace(/\s*([^:]+)\s*:\s*(.*?)(;|$)/gi,function(e,t,i){return/^(color|background|font-size|font-family)$/i.test(t)?t+":"+i+";":""}).replace(/^\s+|\s+$/g,""),s?" "+t+'="'+s+'"':"";break;case"table":if(t.match(/^(cellspacing|cellpadding|border|width)$/i))return e;break;case"td":if(t.match(/^(rowspan|colspan)$/i))return e;if("style"===t)return s=s.replace(/"|&quot;/gi,"'").replace(/\s*([^:]+)\s*:\s*(.*?)(;|$)/gi,function(e,t,i){return/^(width|height)$/i.test(t)?t+":"+i+";":""}).replace(/^\s+|\s+$/g,""),s?" "+t+'="'+s+'"':"";break;case"a":if(t.match(/^(href)$/i))return e;break;case"font":case"img":return e}else if(2===i)switch(a){case"td":if(t.match(/^(rowspan|colspan)$/i))return e;break;case"img":return e}return""})),t+n+o)});for(var s=0;3>s;s++)e=e.replace(/<([^\s>]+)(\s+[^>]*)?>\s*<\/\1>/g,"");for(var s=0;3>s;s++)e=e.replace(/<(span|a)>(((?!<\1(\s+[^>]*?)?>)[\s\S]|<\1(\s+[^>]*?)?>((?!<\1(\s+[^>]*?)?>)[\s\S]|<\1(\s+[^>]*?)?>((?!<\1(\s+[^>]*?)?>)[\s\S])*?<\/\1>)*?<\/\1>)*?)<\/\1>/gi,t);for(var s=0;3>s;s++)e=e.replace(/<(span|a)>(((?!<\1(\s+[^>]*?)?>)[\s\S]|<\1(\s+[^>]*?)?>((?!<\1(\s+[^>]*?)?>)[\s\S])*?<\/\1>)*?)<\/\1>/gi,t);for(var s=0;3>s;s++)e=e.replace(/<(span|a)>(((?!<\1(\s+[^>]*?)?>)[\s\S])*?)<\/\1>/gi,t);for(var s=0;3>s;s++)e=e.replace(/<font(\s+[^>]+)><font(\s+[^>]+)>/gi,function(e,t,i){return"<font"+t+i+">"});e=e.replace(/(<(\/?)(tr|td)(?:\s+[^>]+)?>)[^<>]+/gi,function(e,t,i,s){return!i&&/^td$/i.test(s)?e:t})}return e},this.cleanHTML=function(e){e=e.replace(/<!?\/?(DOCTYPE|html|body|meta)(\s+[^>]*?)?>/gi,"");var t;return e=e.replace(/<head(?:\s+[^>]*?)?>([\s\S]*?)<\/head>/i,function(e,i){return t=i.match(/<(script|style)(\s+[^>]*?)?>[\s\S]*?<\/\1>/gi),""}),t&&(e=t.join("")+e),e=e.replace(/<\??xml(:\w+)?(\s+[^>]*?)?>([\s\S]*?<\/xml>)?/gi,""),settings.internalScript||(e=e.replace(/<script(\s+[^>]*?)?>[\s\S]*?<\/script>/gi,"")),settings.internalStyle||(e=e.replace(/<style(\s+[^>]*?)?>[\s\S]*?<\/style>/gi,"")),settings.linkTag&&settings.inlineScript&&settings.inlineStyle||(e=e.replace(/(<(\w+))((?:\s+[\w-]+\s*=\s*(?:"[^"]*"|'[^']*'|[^>\s]+))*)\s*(\/?>)/gi,function(e,t,i,s,a){return settings.linkTag||"link"!==i.toLowerCase()?(settings.inlineScript||(s=s.replace(/\s+on(?:click|dblclick|mouse(down|up|move|over|out|enter|leave|wheel)|key(down|press|up)|change|select|submit|reset|blur|focus|load|unload)\s*=\s*("[^"]*"|'[^']*'|[^>\s]+)/gi,"")),settings.inlineStyle||(s=s.replace(/\s+(style|class)\s*=\s*("[^"]*"|'[^']*'|[^>\s]+)/gi,"")),t+s+a):""})),e=e.replace(/<\/(strong|b|u|strike|em|i)>((?:\s|<br\/?>|&nbsp;)*?)<\1(\s+[^>]*?)?>/gi,"$2")},this.formatXHTML=function(e,t){function i(e){for(var t={},i=e.split(","),s=0;i.length>s;s++)t[i[s]]=!0;return t}function s(e){e=e.toLowerCase();var t=b[e];return t?t:e}function a(e,t,i){if(p[e])for(;y.last()&&g[y.last()];)n(y.last());f[e]&&y.last()===e&&n(e),i=u[e]||!!i,i||y.push(e);var s=[];s.push("<"+e),t.replace(_,function(e,t){t=t.toLowerCase();var i=arguments[2]?arguments[2]:arguments[3]?arguments[3]:arguments[4]?arguments[4]:m[t]?t:"";s.push(" "+t+'="'+i.replace(/"/g,"'")+'"')}),s.push((i?" /":"")+">"),h(s.join(""),e,!0),"pre"===e&&(P=!0)}function n(e){if(e)for(var t=y.length-1;t>=0&&y[t]!==e;t--);else var t=0;if(t>=0){for(var i=y.length-1;i>=t;i--)h("</"+y[i]+">",y[i]);y.length=t}"pre"===e&&(P=!1,M--)}function o(e){h(_this.domEncode(e))}function l(e){w.push(e.replace(/^[\s\r\n]+|[\s\r\n]+$/g,""))}function r(e){w.push(e)}function h(e,i,s){if(P||(e=e.replace(/(\t*\r?\n\t*)+/g,"")),P||t!==!0)w.push(e);else{if(e.match(/^\s*$/))return w.push(e),undefined;var a=p[i],n=a?i:"";a?(s&&M++,""===E&&M--):E&&M++,(n!==E||a)&&c(),w.push(e),"br"===i&&c(),!a||!u[i]&&s||M--,E=a?i:"",L=s}}function c(){if(w.push("\r\n"),M>0)for(var e=M;e--;)w.push(" ")}function d(e,t,i,s){if(!i)return s;var a="";return i=i.replace(/ face\s*=\s*"\s*([^"]*)\s*"/i,function(e,t){return t&&(a+="font-family:"+t+";"),""}),i=i.replace(/ size\s*=\s*"\s*(\d+)\s*"/i,function(e,t){return a+="font-size:"+I[(t>7?7:1>t?1:t)-1].s+";",""}),i=i.replace(/ color\s*=\s*"\s*([^"]*)\s*"/i,function(e,t){return t&&(a+="color:"+t+";"),""}),i=i.replace(/ style\s*=\s*"\s*([^"]*)\s*"/i,function(e,t){return t&&(a+=t),""}),i+=' style="'+a+'"',i?"<span"+i+">"+s+"</span>":s}var u=i("area,base,basefont,br,col,frame,hr,img,input,isindex,link,meta,param,embed"),p=i("address,applet,blockquote,button,center,dd,dir,div,dl,dt,fieldset,form,frameset,h1,h2,h3,h4,h5,h6,hr,iframe,ins,isindex,li,map,menu,noframes,noscript,object,ol,p,pre,table,tbody,td,tfoot,th,thead,tr,ul,script"),g=i("a,abbr,acronym,applet,b,basefont,bdo,big,br,button,cite,code,del,dfn,em,font,i,iframe,img,input,ins,kbd,label,map,object,q,s,samp,script,select,small,span,strike,strong,sub,sup,textarea,tt,u,var"),f=i("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr"),m=i("checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected"),v=i("script,style"),b={b:"strong",i:"em",s:"del",strike:"del"},x=/<(?:\/([^\s>]+)|!([^>]*?)|([\w\-:]+)((?:"[^"]*"|'[^']*'|[^"'<>])*)\s*(\/?))>/g,_=/\s*([\w\-:]+)(?:\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s]+)))?/g,w=[],y=[];y.last=function(){return this[this.length-1]};for(var k,C,T,S,$,F,L,j=0,M=-1,E="body",P=!1;k=x.exec(e);)C=k.index,C>j&&(F=e.substring(j,C),S?$.push(F):o(F)),j=x.lastIndex,!(T=k[1])||(T=s(T),S&&T===S&&(l($.join("")),S=null,$=null),S)?S?$.push(k[0]):(T=k[3])?(T=s(T),a(T,k[4],k[5]),v[T]&&(S=T,$=[])):k[2]&&r(k[0]):n(T);e.length>j&&o(e.substring(j,e.length)),n(),e=w.join(""),w=null;var I=settings.listFontsize;return e=e.replace(/<(font)(\s+[^>]*?)?>(((?!<\1(\s+[^>]*?)?>)[\s\S]|<\1(\s+[^>]*?)?>((?!<\1(\s+[^>]*?)?>)[\s\S]|<\1(\s+[^>]*?)?>((?!<\1(\s+[^>]*?)?>)[\s\S])*?<\/\1>)*?<\/\1>)*?)<\/\1>/gi,d),e=e.replace(/<(font)(\s+[^>]*?)?>(((?!<\1(\s+[^>]*?)?>)[\s\S]|<\1(\s+[^>]*?)?>((?!<\1(\s+[^>]*?)?>)[\s\S])*?<\/\1>)*?)<\/\1>/gi,d),e=e.replace(/<(font)(\s+[^>]*?)?>(((?!<\1(\s+[^>]*?)?>)[\s\S])*?)<\/\1>/gi,d),e=e.replace(/^(\s*\r?\n)+|(\s*\r?\n)+$/g,"")},this.toggleShowBlocktag=function(e){if(bShowBlocktag!==e){bShowBlocktag=!bShowBlocktag;var t=$(_doc.body);bShowBlocktag?(bodyClass+=" showBlocktag",t.addClass("showBlocktag")):(bodyClass=bodyClass.replace(" showBlocktag",""),t.removeClass("showBlocktag"))}},this.toggleSource=function(e){if(bSource!==e){_jTools.find("[cmd=Source]").toggleClass("xheEnabled").toggleClass("xheActive");var t,i,s=_doc.body,a=$(s),n='<span id="_xhe_cursor"></span>',o=0,l="";if(bSource?(t=_this.getSource(),a.html("").removeAttr("scroll").attr("class","editMode"+bodyClass),isIE?s.contentEditable="true":_doc.designMode="On",isMozilla&&(_this._exec("inserthtml","-"),$("#"+idFixFFCursor).show().focus().hide()),l="Source"):(_this.pasteHTML(n,!0),t=_this.getSource(!0),o=t.indexOf(n),isOpera||(o=t.substring(0,o).replace(/\r/g,"").length),t=t.replace(/(\r?\n\s*|)<span id="_xhe_cursor"><\/span>(\s*\r?\n|)/,function(e,t,i){return t&&i?"\r\n":t+i}),isIE?s.contentEditable="false":_doc.designMode="Off",a.attr("scroll","no").attr("class","sourceMode").html('<textarea id="sourceCode" wrap="soft" spellcheck="false" style="width:100%;height:100%" />'),i=$("#sourceCode",a).blur(_this.getSource)[0],l="WYSIWYG"),bSource=!bSource,_this.setSource(t),_this.focus(),bSource)if(i.setSelectionRange)i.setSelectionRange(o,o);else{var r=i.createTextRange();r.move("character",o),r.select()}else _this.setTextCursor();_jTools.find("[cmd=Source]").attr("title",getLang(l)).find("span").text(l),_jTools.find("[cmd=Source],[cmd=Preview]").toggleClass("xheEnabled"),_jTools.find(".xheButton").not("[cmd=Source],[cmd=Fullscreen],[cmd=About]").toggleClass("xheEnabled").attr("aria-disabled",bSource?!0:!1),setTimeout(setOpts,300)}},this.showPreview=function(){var e=settings.beforeSetSource,t=_this.getSource();e&&(t=e(t));var i="<html><head>"+headHTML+"<title>{#Preview}</title>"+(urlBase?'<base href="'+urlBase+'"/>':"")+"</head><body>"+t+"</body></html>",s=window.screen,a=window.open("","xhePreview","toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width="+Math.round(.9*s.width)+",height="+Math.round(.8*s.height)+",left="+Math.round(.05*s.width)),n=a.document;n.open(),n.write(getLang(i)),n.close(),a.focus()},this.toggleFullscreen=function(e){if(bFullscreen!==e){var t=$("#"+idContainer).find(".xheLayout"),i=$("#"+idContainer),s=jQuery.browser.version,a=isIE&&(6==s||7==s);bFullscreen?(a&&_jText.after(i),t.attr("style",sLayoutStyle),_jArea.height(editorHeight-_jTools.outerHeight()),$(window).scrollTop(outerScroll),setTimeout(function(){$(window).scrollTop(outerScroll)},10)):(a&&$("body").append(i),outerScroll=$(window).scrollTop(),sLayoutStyle=t.attr("style"),t.removeAttr("style"),_jArea.height("100%"),setTimeout(fixFullHeight,100)),isMozilla?($("#"+idFixFFCursor).show().focus().hide(),setTimeout(_this.focus,1)):a&&_this.setTextCursor(),bFullscreen=!bFullscreen,i.toggleClass("xhe_Fullscreen"),$("html").toggleClass("xhe_Fullfix"),_jTools.find("[cmd=Fullscreen]").toggleClass("xheActive"),setTimeout(setOpts,300)}},this.showMenu=function(e,t){var i=$('<div class="xheMenu"></div>'),s=e.length,a=[];$.each(e,function(e,t){"-"===t.s?a.push('<div class="xheMenuSeparator"></div>'):a.push("<a href=\"javascript:void('"+t.v+'\')" title="'+(t.t?t.t:t.s)+'" v="'+t.v+'" role="option" aria-setsize="'+s+'" aria-posinset="'+(e+1)+'" tabindex="0">'+t.s+"</a>")}),i.append(getLang(a.join(""))),i.click(function(e){return e=e.target,$.nodeName(e,"DIV")?undefined:(_this.loadBookmark(),t($(e).closest("a").attr("v")),_this.hidePanel(),!1)}).mousedown(returnFalse),_this.saveBookmark(),_this.showPanel(i)},this.showColor=function(e){var t=settings.listColors,i=$('<div class="xheColor"></div>'),s=[],a=t.length,n=0;$.each(t,function(e,t){0===n%7&&s.push((n>0?"</div>":"")+"<div>"),s.push("<a href=\"javascript:void('"+t+'\')" xhev="'+t+'" title="'+t+'" style="background:'+t+'" role="option" aria-setsize="'+a+'" aria-posinset="'+(n+1)+'"></a>'),n++}),s.push("</div>"),i.append(s.join("")),i.click(function(t){return t=t.target,$.nodeName(t,"A")?(_this.loadBookmark(),e($(t).attr("xhev")),_this.hidePanel(),!1):undefined}).mousedown(returnFalse),_this.saveBookmark(),_this.showPanel(i)},this.showPastetext=function(){var e=$(getLang(htmlPastetext)),t=$("#xhePastetextValue",e),i=$("#xheSave",e);i.click(function(){_this.loadBookmark();var e=t.val();return e&&_this.pasteText(e),_this.hidePanel(),!1}),_this.saveBookmark(),_this.showDialog(e)},this.showLink=function(){var e=htmlLink,t=_jDoc.find("a[name]").not("[href]"),i=t.length>0;if(i){var s=[];t.each(function(){var e=$(this).attr("name");s.push('<option value="#'+e+'">'+e+"</option>")}),e=e.replace(/(<div><label for="xheLinkTarget)/,'<div><label for="xheLinkAnchor">{#link.anchor}</label><select id="xheLinkAnchor"><option value="">{#link.anchorNone}</option>'+s.join("")+"</select></div>$1")}var a=$(getLang(e)),n=_this.getParent("a"),o=$("#xheLinkText",a),l=$("#xheLinkUrl",a),r=$("#xheLinkTarget",a),h=$("#xheSave",a),c=_this.getSelect();if(i&&a.find("#xheLinkAnchor").change(function(){var e=$(this).val();""!=e&&l.val(e)}),1===n.length){if(!n.attr("href"))return ev=null,_this.exec("Anchor");l.val(xheAttr(n,"href")),r.attr("value",n.attr("target"))}else""===c&&o.val(getLang(settings.defLinkText)).closest("div").show();settings.upLinkUrl&&_this.uploadInit(l,settings.upLinkUrl,settings.upLinkExt),h.click(function(){_this.loadBookmark();var e=l.val();if((""===e||0===n.length)&&_this._exec("unlink"),""!==e&&"http://"!==e){var t=e.split(" "),i=r.val(),s=o.val();if(t.length>1){_this._exec("unlink"),c=_this.getSelect();var a,h='<a href="xhe_tmpurl"',d=[];""!==i&&(h+=' target="'+i+'"'),h+=">xhe_tmptext</a>",s=""!==c?c:s?s:e;for(var u=0,p=t.length;p>u;u++)e=t[u],""!==e&&(e=e.split("||"),a=h,a=a.replace("xhe_tmpurl",e[0]),a=a.replace("xhe_tmptext",e[1]?e[1]:s),d.push(a));_this.pasteHTML(d.join("&nbsp;"))}else e=t[0].split("||"),s||(s=e[0]),s=e[1]?e[1]:""!==c?"":s?s:e[0],0===n.length?(s?_this.pasteHTML('<a href="#xhe_tmpurl">'+s+"</a>"):_this._exec("createlink","#xhe_tmpurl"),n=$('a[href$="#xhe_tmpurl"]',_doc)):s&&!isWebkit&&n.text(s),xheAttr(n,"href",e[0]),""!==i?n.attr("target",i):n.removeAttr("target")}return _this.hidePanel(),!1}),_this.saveBookmark(),_this.showDialog(a)},this.showAnchor=function(){var e=$(getLang(htmlAnchor)),t=_this.getParent("a"),i=$("#xheAnchorName",e),s=$("#xheSave",e);if(1===t.length){if(t.attr("href"))return ev=null,_this.exec("Link");i.val(t.attr("name"))}s.click(function(){_this.loadBookmark();var e=i.val();return e?0===t.length?_this.pasteHTML('<a name="'+e+'"></a>'):t.attr("name",e):1===t.length&&t.remove(),_this.hidePanel(),!1}),_this.saveBookmark(),_this.showDialog(e)},this.showImg=function(){var e=$(getLang(htmlImg)),t=_this.getParent("img"),i=$("#xheImgUrl",e),s=$("#xheImgAlt",e),a=$("#xheImgAlign",e),n=$("#xheImgWidth",e),o=$("#xheImgHeight",e),l=$("#xheImgBorder",e),r=$("#xheImgVspace",e),h=$("#xheImgHspace",e),c=$("#xheSave",e);if(1===t.length){i.val(xheAttr(t,"src")),s.val(t.attr("alt")),a.val(t.attr("align")),n.val(t.attr("width")),o.val(t.attr("height")),l.val(t.attr("border"));var d=t.attr("vspace"),u=t.attr("hspace");r.val(0>=d?"":d),h.val(0>=u?"":u)}settings.upImgUrl&&_this.uploadInit(i,settings.upImgUrl,settings.upImgExt),c.click(function(){_this.loadBookmark();var e=i.val();if(""!==e&&"http://"!==e){var c=e.split(" "),d=s.val(),u=a.val(),p=n.val(),g=o.val(),f=l.val(),m=r.val(),v=h.val();if(c.length>1){var b,x='<img src="xhe_tmpurl"',_=[];""!==d&&(x+=' alt="'+d+'"'),""!==u&&(x+=' align="'+u+'"'),""!==p&&(x+=' width="'+p+'"'),""!==g&&(x+=' height="'+g+'"'),""!==f&&(x+=' border="'+f+'"'),""!==m&&(x+=' vspace="'+m+'"'),""!==v&&(x+=' hspace="'+v+'"'),x+=" />";for(var w in c)e=c[w],""!==e&&(e=e.split("||"),b=x,b=b.replace("xhe_tmpurl",e[0]),e[1]&&(b='<a href="'+e[1]+'" target="_blank">'+b+"</a>"),_.push(b));_this.pasteHTML(_.join("&nbsp;"))}else if(1===c.length&&(e=c[0],""!==e&&(e=e.split("||"),0===t.length&&(_this.pasteHTML('<img src="'+e[0]+'#xhe_tmpurl" />'),t=$('img[src$="#xhe_tmpurl"]',_doc)),xheAttr(t,"src",e[0]),""!==d&&t.attr("alt",d),""!==u?t.attr("align",u):t.removeAttr("align"),""!==p?t.attr("width",p):t.removeAttr("width"),""!==g?t.attr("height",g):t.removeAttr("height"),""!==f?t.attr("border",f):t.removeAttr("border"),""!==m?t.attr("vspace",m):t.removeAttr("vspace"),""!==v?t.attr("hspace",v):t.removeAttr("hspace"),e[1]))){var y=t.parent("a");0===y.length&&(t.wrap("<a></a>"),y=t.parent("a")),xheAttr(y,"href",e[1]),y.attr("target","_blank")}}else 1===t.length&&t.remove();return _this.hidePanel(),!1}),_this.saveBookmark(),_this.showDialog(e)},this.showEmbed=function(e,t,i,s,a,n,o){var l=$(getLang(t)),r=_this.getParent('embed[type="'+i+'"],embed[classid="'+s+'"]'),h=$("#xhe"+e+"Url",l),c=$("#xhe"+e+"Width",l),d=$("#xhe"+e+"Height",l),u=$("#xheSave",l);n&&_this.uploadInit(h,n,o),1===r.length&&(h.val(xheAttr(r,"src")),c.val(r.attr("width")),d.val(r.attr("height"))),u.click(function(){_this.loadBookmark();var e=h.val();if(""!==e&&"http://"!==e){var t=c.val(),n=d.val(),o=/^\d+%?$/;o.test(t)||(t=412),o.test(n)||(n=300);var l='<embed type="'+i+'" classid="'+s+'" src="xhe_tmpurl"'+a,u=e.split(" ");if(u.length>1){var p,g=l+"",f=[];g+=' width="xhe_width" height="xhe_height" />';for(var m in u)e=u[m].split("||"),p=g,p=p.replace("xhe_tmpurl",e[0]),p=p.replace("xhe_width",e[1]?e[1]:t),p=p.replace("xhe_height",e[2]?e[2]:n),""!==e&&f.push(p);_this.pasteHTML(f.join("&nbsp;"))}else 1===u.length&&(e=u[0].split("||"),0===r.length&&(_this.pasteHTML(l.replace("xhe_tmpurl",e[0]+"#xhe_tmpurl")+" />"),r=$('embed[src$="#xhe_tmpurl"]',_doc)),xheAttr(r,"src",e[0]),r.attr("width",e[1]?e[1]:t),r.attr("height",e[2]?e[2]:n))}else 1===r.length&&r.remove();return _this.hidePanel(),!1}),_this.saveBookmark(),_this.showDialog(l)},this.showEmot=function(e){var t=$('<div class="xheEmot"></div>');e=e?e:selEmotGroup?selEmotGroup:"default";var i=arrEmots[e],s=emotPath+e+"/",a=0,n=[],o="",l=i.width,r=i.height,h=i.line,c=i.count,d=i.list;if(c)for(var u=1;c>=u;u++)a++,n.push("<a href=\"javascript:void('"+u+'\')" style="background-image:url('+s+u+'.gif);" emot="'+e+","+u+'" xhev="" title="'+u+'" role="option">&nbsp;</a>'),0===a%h&&n.push("<br />");else{var p=is(d,"array");$.each(d,function(t,i){p&&(t=i,i="{#emot."+e+"."+t+"}"),a++,n.push("<a href=\"javascript:void('"+i+'\')" style="background-image:url('+s+t+'.gif);" emot="'+e+","+t+'" title="'+i+'" xhev="'+i+'" role="option">&nbsp;</a>'),0===a%h&&n.push("<br />")})}var g=h*(l+12),f=Math.ceil(a/h)*(r+12),m=.75*g;m>=f&&(m=""),o=$(getLang("<style>"+(m?".xheEmot div{width:"+(g+20)+"px;height:"+m+"px;}":"")+".xheEmot div a{width:"+l+"px;height:"+r+"px;}</style><div>"+n.join("")+"</div>")).click(function(e){e=e.target;var t=$(e);if($.nodeName(e,"A"))return _this.loadBookmark(),_this.pasteHTML('<img emot="'+t.attr("emot")+'" alt="'+t.attr("xhev")+'">'),_this.hidePanel(),!1}).mousedown(returnFalse),t.append(o);var v,b=0,x=['<ul role="tablist">'];$.each(arrEmots,function(t,i){b++,x.push("<li"+(e===t?' class="cur"':"")+' role="presentation"><a href="javascript:void(\''+i.name+'\')" group="'+t+'" role="tab" tabindex="0">'+i.name+"</a></li>")}),b>1&&(x.push('</ul><br style="clear:both;" />'),v=$(getLang(x.join(""))).click(function(e){return selEmotGroup=$(e.target).attr("group"),_this.exec("Emot"),!1}).mousedown(returnFalse),t.append(v)),_this.saveBookmark(),_this.showPanel(t)},this.showTable=function(){var e=$(getLang(htmlTable)),t=$("#xheTableRows",e),i=$("#xheTableColumns",e),s=$("#xheTableHeaders",e),a=$("#xheTableWidth",e),n=$("#xheTableHeight",e),o=$("#xheTableBorder",e),l=$("#xheTableCellSpacing",e),r=$("#xheTableCellPadding",e),h=$("#xheTableAlign",e),c=$("#xheTableCaption",e),d=$("#xheSave",e);d.click(function(){_this.loadBookmark();var e,d,u=c.val(),p=o.val(),g=t.val(),f=i.val(),m=s.val(),v=a.val(),b=n.val(),x=l.val(),_=r.val(),w=h.val(),y="<table"+(""!==p?' border="'+p+'"':"")+(""!==v?' width="'+v+'"':"")+(""!==b?' height="'+b+'"':"")+(""!==x?' cellspacing="'+x+'"':"")+(""!==_?' cellpadding="'+_+'"':"")+(""!==w?' align="'+w+'"':"")+">";if(""!==u&&(y+="<caption>"+u+"</caption>"),"row"===m||"both"===m){for(y+="<tr>",e=0;f>e;e++)y+='<th scope="col"></th>';y+="</tr>",g--}for(y+="<tbody>",e=0;g>e;e++){for(y+="<tr>",d=0;f>d;d++)y+=0!==d||"col"!==m&&"both"!==m?"<td></td>":'<th scope="row"></th>';y+="</tr>"}return y+="</tbody></table>",_this.pasteHTML(y),_this.hidePanel(),!1}),_this.saveBookmark(),_this.showDialog(e)},this.showAbout=function(){var e=$(getLang(htmlAbout));e.find("p").attr("role","presentation"),_this.showDialog(e,!0),setTimeout(function(){e.focus()},100)},this.addShortcuts=function(e,t){e=e.toLowerCase(),arrShortCuts[e]===undefined&&(arrShortCuts[e]=[]),arrShortCuts[e].push(t)},this.delShortcuts=function(e){delete arrShortCuts[e]},this.uploadInit=function(e,t,i){function s(t){is(t,"string")&&(t=[t]);var i,s,a,n=!1,o=t.length,l=[],r=settings.onUpload;for(r&&r(t),i=0;o>i;i++)s=t[i],a=is(s,"string")?s:s.url,"!"===a.substr(0,1)&&(n=!0,a=a.substr(1)),l.push(a);e.val(l.join(" ")),n&&e.closest(".xheDialog").find("#xheSave").click()}var a=$(getLang('<span class="xheUpload"><input type="text" style="visibility:hidden;" tabindex="-1" /><input type="button" value="'+settings.upBtnText+'" class="xheBtn" tabindex="-1" /></span>')),n=$(".xheBtn",a),o=settings.html5Upload,l=o?settings.upMultiple:1;if(e.after(a),n.before(e),t=t.replace(/{editorRoot}/gi,editorRoot),"!"===t.substr(0,1))n.click(function(){_this.showIframeModal("{#upload.browserTitle}",t.substr(1),s,null,null)});else{a.append('<input type="file"'+(l>1?' multiple=""':"")+' class="xheFile" size="13" name="'+uploadInputname+'" tabindex="-1" />');var r,h=$(".xheFile",a);h.change(function(){r=[],_this.startUpload(h[0],t,i,s)}),setTimeout(function(){e.closest(".xheDialog").bind("dragenter dragover",returnFalse).bind("drop",function(e){var a,n=e.originalEvent.dataTransfer;return o&&n&&(a=n.files)&&a.length>0&&_this.startUpload(a,t,i,s),!1})},10)}},this.startUpload=function(fromFiles,toUrl,limitExt,onUploadComplete){function onUploadCallback(sText,bFinish){var data=Object,bOK=!1;try{data=eval("("+sText+")")}catch(ex){}return data.err===undefined||data.msg===undefined?alert(getLang("upload.apiError",toUrl,sText)):data.err?alert(data.err):(arrMsg.push(data.msg),bOK=!0),(!bOK||bFinish)&&_this.removeModal(),bFinish&&bOK&&onUploadComplete(arrMsg),bOK}var arrMsg=[],bHtml5Upload=settings.html5Upload,upMultiple=bHtml5Upload?settings.upMultiple:1,upload,fileList,filename,jUploadTip=$(getLang('<div style="padding:22px 0;text-align:center;line-height:30px;">{#upload.progressTip}<br /></div>')),sLoading='<img src="'+skinPath+'img/loading.gif">';if(!isOpera&&bHtml5Upload&&(!fromFiles.nodeType||(fileList=fromFiles.files)&&fileList[0].name)){fileList||(fileList=fromFiles);var i,len=fileList.length;if(len>upMultiple)return alert(getLang("upload.countLimit",upMultiple)),undefined;for(i=0;len>i;i++)if(!checkFileExt(fileList[i].name,limitExt))return;var jProgress=$('<div class="xheProgress"><div><span>0%</span></div></div>');jUploadTip.append(jProgress),upload=new _this.html5Upload(uploadInputname,fileList,toUrl,onUploadCallback,function(e){if(e.loaded>=0){var t=Math.round(100*e.loaded/e.total)+"%";$("div",jProgress).css("width",t),$("span",jProgress).text(t+" ( "+formatBytes(e.loaded)+" / "+formatBytes(e.total)+" )")}else jProgress.replaceWith(sLoading)})}else{if(!checkFileExt(fromFiles.value,limitExt))return;jUploadTip.append(sLoading),upload=new _this.html4Upload(fromFiles,toUrl,onUploadCallback)}_this.showModal("{#upload.progressTitle}",jUploadTip,320,150),upload.start()},this.html4Upload=function(e,t,i){var s=(new Date).getTime(),a="jUploadFrame"+s,n=this,o=$('<iframe name="'+a+'" class="xheHideArea" />').appendTo("body"),l=$('<form action="'+t+'" target="'+a+'" method="post" enctype="multipart/form-data" class="xheHideArea"></form>').appendTo("body"),r=$(e),h=r.clone().attr("disabled","true");return r.before(h).appendTo(l),this.remove=function(){null!==n&&(h.before(r).remove(),o.remove(),l.remove(),n=null)},this.onLoad=function(){var e=o[0].contentWindow.document,t=$(e.body).text();e.write(""),n.remove(),i(t,!0)},this.start=function(){l.submit(),o.load(n.onLoad)},this},this.html5Upload=function(e,t,i,s,a){function n(t,i,s,a){l=new XMLHttpRequest,upload=l.upload,l.onreadystatechange=function(){4===l.readyState&&s(l.responseText)},upload?upload.onprogress=function(e){a(e.loaded)}:a(-1),l.open("POST",i),l.setRequestHeader("Content-Type","application/octet-stream"),l.setRequestHeader("Content-Disposition",'attachment; name="'+encodeURIComponent(e)+'"; filename="'+encodeURIComponent(t.name)+'"'),l.sendAsBinary&&t.getAsBinary?l.sendAsBinary(t.getAsBinary()):l.send(t)}function o(e){a&&a({loaded:c+e,total:d})}for(var l,r=0,h=t.length,c=0,d=0,u=this,p=0;h>p;p++)d+=t[p].size;this.remove=function(){l&&(l.abort(),l=null)},this.uploadNext=function(e){e&&(c+=t[r-1].size,o(0)),(!e||e&&s(e,r===h)===!0)&&h>r&&n(t[r++],i,u.uploadNext,function(e){o(e)})},this.start=function(){u.uploadNext()}},this.showIframeModal=function(title,url,callback,w,h,onRemove){function initModalWin(){try{modalWin.callback=callbackModal,modalWin.unloadme=_this.removeModal,$(modalWin.document).keydown(checkEsc),result=modalWin.name}catch(e){}}function callbackModal(e){modalWin.document.write(""),_this.removeModal(),null!=e&&callback(e)}var jContent=$('<iframe frameborder="0" src="'+url.replace(/{editorRoot}/gi,editorRoot)+(/\?/.test(url)?"&":"?")+"parenthost="+location.host+'" style="width:100%;height:100%;display:none;" /><div class="xheModalIfmWait"></div>'),jIframe=jContent.eq(0),jWait=jContent.eq(1);_this.showModal(title,jContent,w,h,onRemove);var modalWin=jIframe[0].contentWindow,result;initModalWin(),jIframe.load(function(){if(initModalWin(),result){var bResult=!0;try{result=eval("("+unescape(result)+")")}catch(e){bResult=!1}if(bResult)return callbackModal(result)}jWait.is(":visible")&&(jIframe.show().focus(),jWait.remove())})},this.showModal=function(e,t,i,s,a){return bShowModal?!1:(_this.panelState=bShowPanel,bShowPanel=!1,layerShadow=settings.layerShadow,i=i?i:settings.modalWidth,s=s?s:settings.modalHeight,jModal=$(getLang('<div class="xheModal" style="width:'+(i-1)+"px;height:"+s+"px;margin-left:-"+Math.ceil(i/2)+"px;"+(isIE&&7>browerVer?"":"margin-top:-"+Math.ceil(s/2)+"px")+'">'+(settings.modalTitle?'<div class="xheModalTitle"><span class="xheModalClose" title="{#close} (Esc)" tabindex="0" role="button"></span>'+e+"</div>":"")+'<div class="xheModalContent"></div></div>')).appendTo("body"),jOverlay=$('<div class="xheModalOverlay"></div>').appendTo("body"),layerShadow>0&&(jModalShadow=$('<div class="xheModalShadow" style="width:'+jModal.outerWidth()+"px;height:"+jModal.outerHeight()+"px;margin-left:-"+(Math.ceil(i/2)-layerShadow-2)+"px;"+(isIE&&7>browerVer?"":"margin-top:-"+(Math.ceil(s/2)-layerShadow-2)+"px")+'"></div>').appendTo("body")),$(".xheModalContent",jModal).css("height",s-(settings.modalTitle?$(".xheModalTitle").outerHeight():0)).html(t),isIE&&6===browerVer&&(jHideSelect=$("select:visible").css("visibility","hidden")),$(".xheModalClose",jModal).click(_this.removeModal),jOverlay.show(),layerShadow>0&&jModalShadow.show(),jModal.show(),setTimeout(function(){jModal.find("a,input[type=text],textarea").filter(":visible").filter(function(){return"hidden"!==$(this).css("visibility")}).eq(0).focus()},10),bShowModal=!0,onModalRemove=a,undefined)},this.removeModal=function(){jHideSelect&&jHideSelect.css("visibility","visible"),jModal.html("").remove(),layerShadow>0&&jModalShadow.remove(),jOverlay.remove(),onModalRemove&&onModalRemove(),bShowModal=!1,bShowPanel=_this.panelState},this.showDialog=function(e,t){var i=$('<div class="xheDialog"></div>'),s=$(e),a=$("#xheSave",s);if(1===a.length){if(s.find("input[type=text],select").keypress(function(e){return 13===e.which?(a.click(),!1):undefined}),s.find("textarea").keydown(function(e){return e.ctrlKey&&13===e.which?(a.click(),!1):undefined}),a.after(getLang(' <input type="button" id="xheCancel" value="{#dialogCancel}" />')),$("#xheCancel",s).click(_this.hidePanel),!settings.clickCancelDialog){bClickCancel=!1;var n=$('<div class="xheFixCancel"></div>').appendTo("body").mousedown(returnFalse),o=_jArea.offset();n.css({left:o.left,top:o.top,width:_jArea.outerWidth(),height:_jArea.outerHeight()})}i.mousedown(function(){bDisableHoverExec=!0})}i.append(s),_this.showPanel(i,t)},this.showPanel=function(e,t){if(!ev.target)return!1;_jPanel.html("").append(e).css("left",-999).css("top",-999),_jPanelButton=$(ev.target).closest("a").addClass("xheActive");var i=_jPanelButton.offset(),s=i.left,a=i.top;a+=_jPanelButton.outerHeight()-1,_jCntLine.css({left:s+1,top:a,width:_jPanelButton.width()}).show();var n=document.documentElement,o=document.body;s+_jPanel.outerWidth()>(window.pageXOffset||n.scrollLeft||o.scrollLeft)+(n.clientWidth||o.clientWidth)&&(s-=_jPanel.outerWidth()-_jPanelButton.outerWidth());var l=settings.layerShadow;l>0&&_jShadow.css({left:s+l,top:a+l,width:_jPanel.outerWidth(),height:_jPanel.outerHeight()}).show();var r=$("#"+idContainer).offsetParent().css("zIndex");r&&!isNaN(r)&&(_jShadow.css("zIndex",parseInt(r,10)+1),_jPanel.css("zIndex",parseInt(r,10)+2),_jCntLine.css("zIndex",parseInt(r,10)+3)),_jPanel.css({left:s,top:a}).show(),t||setTimeout(function(){_jPanel.find("a,input[type=text],textarea").filter(":visible").filter(function(){return"hidden"!==$(this).css("visibility")}).eq(0).focus()},10),bQuickHoverExec=bShowPanel=!0},this.hidePanel=function(){bShowPanel&&(_jPanelButton.removeClass("xheActive"),_jShadow.hide(),_jCntLine.hide(),_jPanel.hide(),bShowPanel=!1,bClickCancel||($(".xheFixCancel").remove(),bClickCancel=!0),bQuickHoverExec=bDisableHoverExec=!1,lastAngle=null,_this.focus(),_this.loadBookmark())},this.exec=function(e){_this.hidePanel();var t=arrTools[e];if(!t)return!1;if(null===ev){ev={};var i=_jTools.find(".xheButton[cmd="+e+"]");1===i.length&&(ev.target=i)}if(t.e)t.e.call(_this);else switch(e=e.toLowerCase()){case"cut":try{if(_doc.execCommand(e),!_doc.queryCommandSupported(e))throw"Error"}catch(s){alert(getLang("cutDisabledTip"))}break;case"copy":try{if(_doc.execCommand(e),!_doc.queryCommandSupported(e))throw"Error"}catch(s){alert(getLang("copyDisabledTip"))}break;case"paste":try{if(_doc.execCommand(e),!_doc.queryCommandSupported(e))throw"Error"}catch(s){alert(getLang("pasteDisabledTip"))}break;case"pastetext":window.clipboardData?_this.pasteText(window.clipboardData.getData("Text",!0)):_this.showPastetext();break;case"blocktag":var a=[];$.each(settings.listBlocktag,function(e,t){a.push({s:"<"+t.n+">{#listBlocktag."+t.n+"}</"+t.n+">",v:"<"+t.n+">",t:"{#listBlocktag."+t.n+"}"})}),_this.showMenu(a,function(e){_this._exec("formatblock",e)
});break;case"fontface":var n=[];$.each(getLang("listFontname"),function(e,t){t.c=t.c?t.c:t.n,n.push({s:'<span style="font-family:'+t.c+'">'+t.n+"</span>",v:t.c,t:t.n})}),_this.showMenu(n,function(e){_this._exec("fontname",e)});break;case"fontsize":var o=[];$.each(settings.listFontsize,function(e,t){o.push({s:'<span style="font-size:'+t.s+';">{#fontsize.'+t.n+"}("+t.s+")</span>",v:e+1,t:"{#fontsize."+t.n+"}"})}),_this.showMenu(o,function(e){_this._exec("fontsize",e)});break;case"fontcolor":_this.showColor(function(e){_this._exec("forecolor",e)});break;case"backcolor":_this.showColor(function(e){isIE?_this._exec("backcolor",e):(setCSS(!0),_this._exec("hilitecolor",e),setCSS(!1))});break;case"align":var l=[];$.each(arrAlign,function(e,t){l.push({s:"{#align."+t.v+"}",v:t.v})}),_this.showMenu(l,function(e){_this._exec(e)});break;case"list":var r=[];$.each(arrList,function(e,t){r.push({s:"{#list."+t.v+"}",v:t.v})}),_this.showMenu(r,function(e){_this._exec(e)});break;case"link":_this.showLink();break;case"anchor":_this.showAnchor();break;case"img":_this.showImg();break;case"flash":_this.showEmbed("Flash",htmlFlash,"application/x-shockwave-flash","clsid:d27cdb6e-ae6d-11cf-96b8-4445535400000",' wmode="opaque" quality="high" menu="false" play="true" loop="true" allowfullscreen="true"',settings.upFlashUrl,settings.upFlashExt);break;case"media":_this.showEmbed("Media",htmlMedia,"application/x-mplayer2","clsid:6bf52a52-394a-11d3-b153-00c04f79faa6",' enablecontextmenu="false" autostart="false"',settings.upMediaUrl,settings.upMediaExt);break;case"hr":_this.pasteHTML("<hr />");break;case"emot":_this.showEmot();break;case"table":_this.showTable();break;case"source":_this.toggleSource();break;case"preview":_this.showPreview();break;case"print":_win.print();break;case"fullscreen":_this.toggleFullscreen();break;case"about":_this.showAbout();break;default:_this._exec(e)}ev=null},this._exec=function(e,t,i){i||_this.focus();var s;return s=t!==undefined?_doc.execCommand(e,!1,t):_doc.execCommand(e,!1,null)}};XHEDITOR.settings={skin:"default",tools:"full",clickCancelDialog:!0,linkTag:!1,internalScript:!1,inlineScript:!1,internalStyle:!0,inlineStyle:!0,showBlocktag:!1,forcePtag:!0,upLinkExt:"zip,rar,txt",upImgExt:"jpg,jpeg,gif,png",upFlashExt:"swf",upMediaExt:"wmv,avi,wma,mp3,mid",modalWidth:350,modalHeight:220,modalTitle:!0,defLinkText:"{#link.defText}",layerShadow:3,emotMark:!1,upBtnText:"{#upload.btnText}",cleanPaste:1,hoverExecDelay:100,html5Upload:!0,upMultiple:99,listBlocktag:[{n:"p"},{n:"h1"},{n:"h2"},{n:"h3"},{n:"h4"},{n:"h5"},{n:"h6"},{n:"pre"},{n:"address"}],listColors:["#FFFFFF","#CCCCCC","#C0C0C0","#999999","#666666","#333333","#000000","#FFCCCC","#FF6666","#FF0000","#CC0000","#990000","#660000","#330000","#FFCC99","#FF9966","#FF9900","#FF6600","#CC6600","#993300","#663300","#FFFF99","#FFFF66","#FFCC66","#FFCC33","#CC9933","#996633","#663333","#FFFFCC","#FFFF33","#FFFF00","#FFCC00","#999900","#666600","#333300","#99FF99","#66FF99","#33FF33","#33CC00","#009900","#006600","#003300","#99FFFF","#33FFFF","#66CCCC","#00CCCC","#339999","#336666","#003333","#CCFFFF","#66FFFF","#33CCFF","#3366FF","#3333FF","#000099","#000066","#CCCCFF","#9999FF","#6666CC","#6633FF","#6600CC","#333399","#330099","#FFCCFF","#FF99FF","#CC66CC","#CC33CC","#993399","#663366","#330033"],listFontsize:[{n:"x-small",s:"10px"},{n:"small",s:"12px"},{n:"medium",s:"16px"},{n:"large",s:"18px"},{n:"x-large",s:"24px"},{n:"xx-large",s:"32px"},{n:"-webkit-xxx-large",s:"48px"}]},$.fn.xheditor=function(options){var editTest=document.body.contentEditable?document.body.contentEditable:document.designMode;if(!editTest)return!1;var arrSuccess=[];return this.each(function(){if($.nodeName(this,"TEXTAREA"))if(options===!1)this.xheditor&&(this.xheditor.remove(),this.xheditor=null);else if(this.xheditor)arrSuccess.push(this.xheditor);else{var tOptions=/({.*})/.exec($(this).attr("class"));if(tOptions){try{tOptions=eval("("+tOptions[1]+")")}catch(ex){}options=$.extend({},tOptions,options)}var editor=new Xheditor(this,options);editor.init()?(this.xheditor=editor,arrSuccess.push(editor)):editor=null}}),0===arrSuccess.length&&(arrSuccess=!1),1===arrSuccess.length&&(arrSuccess=arrSuccess[0]),arrSuccess},$.fn.oldVal=$.fn.val,$.fn.val=function(e){var t,i=this;return e===undefined?i[0]&&(t=i[0].xheditor)?t.getSource():i.oldVal():i.each(function(){(t=this.xheditor)?t.setSource(e):i.oldVal(e)})},$(function(){$("textarea").each(function(){var e=$(this),t=e.attr("class");t&&(t=t.match(/(?:^|\s)xheditor(?:\-(m?full|simple|mini))?(?:\s|$)/i))&&e.xheditor(t[1]?{tools:t[1]}:null)})})}(XHEDITOR,jQuery);