(function($){$.fn.xheditor=function(bInit,options){return this.each(function(){if(this.tagName.toLowerCase()!='textarea')return;if(bInit){if(!this.objxhe){var tOptions=$(this).attr('xheditor');if(tOptions){try{eval("tOptions=" + tOptions);}catch(ex){};options=$.extend({},tOptions,options );}var editor=new $.xheditor(this,options);if(editor.init())this.objxhe=editor;else editor=null;	}}else{if(this.objxhe){this.objxhe.remove();this.objxhe=null;}}});};var jsURL,arrs=$('script[src*=editor]'),s;for(var i=0;i<arrs.length;i++){s=arrs[i].src;if(s.match(/editor[^\/]*\.js/i)){	jsURL=s.replace(/[\?#].*$/, '').replace(/(^|[\/\\])[^\/]*$/, '');if(jsURL!='')jsURL+= '/';break;}}																																																																																																var xCount=0,isIE=$.browser.msie,isMozilla=$.browser.mozilla,isSafari=$.browser.safari,bShowPanel=false,bClickCancel=true;var _jPanel,_jShadow,_jCntLine,_jPanelButton;var specialKeys={ 27: 'esc', 9: 'tab', 32:'space', 13: 'return', 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' };var itemColors=['Black', 'Sienna', 'DarkOliveGreen', 'DarkGreen', 'DarkSlateBlue', 'Navy', 'Indigo', 'DarkSlateGray', 'DarkRed', 'DarkOrange', 'Olive', 'Green', 'Teal', 'Blue', 'SlateGray', 'DimGray', 'Red', 'SandyBrown', 'YellowGreen','SeaGreen', 'MediumTurquoise','RoyalBlue', 'Purple', 'Gray', 'Magenta', 'Orange', 'Yellow', 'Lime', 'Cyan', 'DeepSkyBlue', 'DarkOrchid', 'Silver', 'Pink', 'Wheat', 'LemonChiffon', 'PaleGreen', 'PaleTurquoise', 'LightBlue', 'Plum', 'White'];var arrBlocktag=[{n:'p',t:'普通段落'},{n:'h1',t:'标题1'},{n:'h2',t:'标题2'},{n:'h3',t:'标题3'},{n:'h4',t:'标题4'},{n:'h5',t:'标题5'},{n:'h6',t:'标题6'},{n:'pre',t:'已编排格式'},{n:'address',t:'地址'}];var arrFontname=[{n:'宋体',c:'SimSun'},{n:'仿宋体',c:'FangSong_GB2312'},{n:'黑体',c:'SimHei'},{n:'楷体',c:'KaiTi_GB2312'},{n:'微软雅黑',c:'Microsoft YaHei'},{n:'Arial'},{n:'Arial Narrow'},{n:'Arial Black'},{n:'Comic Sans MS'},{n:'Courier New'}];var arrFontsize=[{n:'xx-small',wkn:'x-small',s:'8pt',t:'极小'},{n:'x-small',wkn:'small',s:'10pt',t:'特小'},{n:'small',wkn:'medium',s:'12pt',t:'小'},{n:'medium',wkn:'large',s:'14pt',t:'中'},{n:'large',wkn:'x-large',s:'18pt',t:'大'}];var menuAlign=[{s:'左对齐',v:'justifyleft',t:'左对齐'},{s:'居中',v:'justifycenter',t:'居中'},{s:'右对齐',v:'justifyright',t:'右对齐'},{s:'两端对齐',v:'justifyfull',t:'两端对齐'}],menuList=[{s:'数字列表',v:'insertOrderedList',t:'数字列表'},{s:'符号列表',v:'insertUnorderedList',t:'符号列表'}];var htmlPastetext='<div>使用键盘快捷键(Ctrl+V)把内容粘贴到方框里，按 确定</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="确定" /></div>';var htmlLink='<div>链接地址: <input type="text" id="xheLinkHref" value="http://" class="xheText"  oncontextmenu="$(this).select()"  onclick="$(this).select()"/></div><div style="text-align:right;"><input type="button" id="xheSave" value="确定" /></div>';var htmlImg='<div>图片文件：<input type="text" id="xheImgSrc" value="http://" class="xheText"  oncontextmenu="$(this).select()" onclick="$(this).select()"/></div><div>宽度高度：<input type="text" id="xheImgWidth" style="width:40px;" /> x <input type="text" id="xheImgHeight" style="width:40px;" /></div><div>对齐方式：<select id="xheImgAlign"><option selected="selected" value="">默认</option><option value="left">左对齐</option><option value="right">右对齐</option></select></div><div class="xheInfo">插入网络上的图片没有个数限制</div><div id="errr_tip"></div><div style="text-align:right;"><input type="button" id="xheSave" value="确定" /></div>';var htmlFlash='<div>动画文件：<input type="text" id="xheFlashSrc" value="http://" class="xheText" onmouseover="$(this).select()" oncontextmenu="$(this).select()"  onclick="$(this).select()" /></div><div>宽度高度：<input type="text" id="xheFlashWidth" style="width:40px;" value="480" /> x <input type="text" id="xheFlashHeight" style="width:40px;" value="400" /></div><div class="xheInfo">目前支持土豆、优酷、ku6、6间房等多家视频网站</div><div id="errr_tip"></div><div style="text-align:right;"><input type="button" id="xheSave" value="确定" /></div>';var htmlMedia='<div>媒体文件：<input type="text" id="xheMediaSrc" value="http://" class="xheText" /></div><div>宽度高度：<input type="text" id="xheMediaWidth" style="width:40px;" value="480" /> x <input type="text" id="xheMediaHeight" style="width:40px;" value="400" /></div><div style="text-align:right;"><input type="button" id="xheSave" value="确定" /></div>';var htmlTable='<div>行数列数：<input type="text" id="xheTableRows" style="width:40px;" value="3" /> x <input type="text" id="xheTableColumns" style="width:40px;" value="2" /></div><div>标题单元：<select id="xheTableHeaders"><option selected="selected" value="">无</option><option value="row">第一行</option><option value="col">第一列</option><option value="both">第一行和第一列</option></select></div><div>宽度高度：<input type="text" id="xheTableWidth" style="width:40px;" value="200" /> x <input type="text" id="xheTableHeight" style="width:40px;" value="" /></div><div>边框大小：<input type="text" id="xheTableBorder" style="width:40px;" value="1" /></div><div>表格间距：<input type="text" id="xheTableCellSpacing" style="width:40px;" value="1" /> 表格填充：<input type="text" id="xheTableCellPadding" style="width:40px;" value="1" /></div><div>对齐方式：<select id="xheTableAlign"><option selected="selected" value="">默认</option><option value="left">左对齐</option><option value="center">居中</option><option value="right">右对齐</option></select></div><div>表格标题：<input type="text" id="xheTableCaption" /></div><div style="text-align:right;"><input type="button" id="xheSave" value="确定" /></div>';var htmlAbout='';var arrTools={GStart:{},GEnd:{},Separator:{},Cut:{t:'剪切 (Ctrl+X)'},Copy:{t:'复制 (Ctrl+C)'},Paste:{t:'粘贴 (Ctrl+V)'},Pastetext:{t:'粘贴文本'},Blocktag:{t:'段落标签'},Fontface:{t:'字体'},FontSize:{t:'字号'},Bold:{t:'加粗 (Ctrl+B)',s:'Ctrl+B'},Italic:{t:'斜体 (Ctrl+I)',s:'Ctrl+I'},Underline:{t:'下划线 (Ctrl+U)',s:'Ctrl+U'},Strikethrough:{t:'中划线 (Ctrl+S)',s:'Ctrl+S'},FontColor:{t:'字体颜色'},BackColor:{t:'背景颜色'},Removeformat:{t:'删除文字格式'},Align:{t:'对齐'},List:{t:'列表'},Outdent:{t:'减少缩进 (Shift+Tab)',s:'Shift+Tab'},Indent:{t:'增加缩进 (Tab)',s:'Tab'},Link:{t:'超链接'},Unlink:{t:'取消超链接'},Img:{t:'图片'},Flash:{t:'Flash动画'},Media:{t:'多媒体文件'},Emot:{t:'表情'},Table:{t:'表格'},Source:{t:'源代码'},Preview:{t:'预览'},Fullscreen:{t:'全屏编辑 (Esc)',s:'Esc'},About:{t:'关于 xhEditor'}};var toolsThemes={mini:'GStart,Source,Bold,FontColor,Link,Img,Emot,GEnd',full:'GStart,Source,Fontface,FontSize,Bold,Italic,Underline,Strikethrough,FontColor,BackColor,Removeformat,GEnd,Separator,GStart,Align,List,Outdent,Indent,GEnd,Separator,GStart,Link,Unlink,Img,Flash,Emot,GEnd'};$.xheditor=function(textarea,options){var defaults={skin:'vista',tools:'full',clickCancelDialog:true,linkTag:false,internalScript:false,inlineScript:false,internalStyle:true,inlineStyle:true,showBlocktag:false,forcePtag:true,keepValue:true,upLinkExt:"zip,rar,txt",upImgExt:"jpg,jpeg,gif,png",upFlashExt:"swf",upMediaExt:"wmv,avi,wma,mp3,mid",modalWidth:350,modalHeight:220,modalTitle:true,defLinkText:'点击打开链接',layerShadow:3/*,beforeSetSource:ubb2html,beforeGetSource:html2ubb*/};var _this=this,_text=textarea,_jText=$(_text),_jForm=_jText.closest('form'),_jTools,_jArea,_win,_jWin,_doc,_jDoc;var bookmark;var bInit=false,bSource=false,bPreview=false,bFullscreen=false,bReadonly=false,bShowBlocktag=false,sLayoutStyle='',ev;var editHeight=0;this.settings=$.extend({},defaults,options );if(_this.settings.plugins)arrTools=$.extend({},arrTools,_this.settings.plugins);if(_this.settings.tools.match(/^\s*(mini|full)\s*$/i)){_this.settings.tools=$.trim(_this.settings.tools);_this.settings.tools=toolsThemes[_this.settings.tools];}_this.settings.tools=_this.settings.tools.split(',');var idCSS='xheCSS_'+_this.settings.skin,idContainer='xhe'+xCount+'_container',idTools='xhe'+xCount+'_Tool',idIframeArea='xhe'+xCount+'_iframearea',idIframe='xhe'+xCount+'_iframe';var bodyClass='',skinPath=jsURL+'Skin/';bShowBlocktag=_this.settings.showBlocktag;if(bShowBlocktag)bodyClass+=' showBlocktag';var arrShortCuts=[];this.init=function(){if(!isIE&&!isMozilla&&!isSafari)return true;if($('#'+idCSS).length==0)$('head').append('<link id="'+idCSS+'" rel="stylesheet" type="text/css" href="'+skinPath+'ui.css" />');var cw = _this.settings.width || _text.style.width || _jText.outerWidth();editHeight = _this.settings.height || _jText.outerHeight();if(/^[0-9\.]+$/i.test(''+cw))cw+='px';var sToolHtml='',tool,cn;$.each(_this.settings.tools,function(i,n){tool=arrTools[n];if(n=='GStart')sToolHtml+='<span class="xheGStart"/>';else if(n=='GEnd')sToolHtml+='<span class="xheGEnd"/>';else if(n=='Separator')sToolHtml+='<span class="xheSeparator"/>';else if(n=='BtnBr')sToolHtml+='<br />';else{if(tool.c)cn=tool.c;else cn='xheIcon xheBtn'+n;sToolHtml+='<span><a href="javascript:void(0);" title="'+tool.t+'" name="'+n+'" class="xheButton xheEnabled"><span class="'+cn+'" /></a></span>';if(tool.s)_this.addShortCut(tool.s,n);}});sToolHtml+='<br />';_jText.after($('<span id="'+idContainer+'" class="xhe_'+_this.settings.skin+'" style="display:none"><table id="'+idIframeArea+'_table"  cellspacing="0" cellpadding="0" class="xheLayout" style="width:'+cw+';height:'+editHeight+'px;"><tbody><tr><td id="'+idTools+'" class="xheTool" style="height:1px;"></td></tr><tr><td id="'+idIframeArea+'" class="xheIframeArea"><iframe frameborder="0" id="'+idIframe+'" src="javascript:void(0);" style="width:100%;"></iframe></td></tr><tr><td id="editorAddRemove" style="width:100%;"><a href="javascript:void(0)" id="a_editor_add"></a><a href="javascript:void(0)"  id="a_editor_remove"></a></td></tr></tbody></table></span>'));_jTools=$('#'+idTools);_jArea=$('#'+idIframeArea);var iframeHTML='<html><head><meta content="text/html; charset=gb2312" http-equiv="Content-Type"/><link rel="stylesheet" href="'+skinPath+'iframe.css"/>';iframeHTML+='</head><body spellcheck="false" style="overflow:scroll;overflow-x:hidden"   dir="ltr" class="editMode'+bodyClass+'">d</body></html>';_win=$('#'+idIframe)[0].contentWindow;_jWin=$(_win);	try{_doc = _win.document;_jDoc=$(_doc);_doc.open();_doc.write(iframeHTML);_doc.close();if(isIE)_doc.body.contentEditable='true';else _doc.designMode = 'On';}catch(e){}		setTimeout(_this.setOpts,300);_this.setSource();_win.setInterval=null;_jTools.append(sToolHtml);$('#editorAddRemove').find('#a_editor_add').click(function(){_this.addHeight()});$('#editorAddRemove').find('#a_editor_remove').click(function(){_this.removeHeight()});_jTools.find('.xheButton').click(function(event){_this.hidePanel();			_this.focus();ev=event;var aButton=$(this);if(aButton.is('.xheEnabled'))_this.exec(aButton.attr('name'));return false;}).mousedown(function(){return false;});_jPanel=$('#xhePanel');_jShadow=$('#xheShadow');_jCntLine=$('#xheCntLine');if(_jPanel.length==0){_jPanel=$('<div id="xhePanel"></div>').mousedown(function(ev){ev.stopPropagation()});		_jShadow=$('<div id="xheShadow"></div>');_jCntLine=$('<div id="xheCntLine"><img src="'+skinPath+'img/spacer.gif" /></div>');$(document.body).append(_jPanel).append(_jShadow).append(_jCntLine);}$(document).mousedown(_this.clickCancelPanel);_jDoc.mousedown(_this.clickCancelPanel);if(isIE){_jDoc.bind('beforedeactivate',function(){if(isIE&&!bSource)bookmark=_this.getRng();});_jWin.focus(function(){if(isIE&&!bSource&&bookmark){bookmark.select();bookmark=null;}});}$('#'+idContainer).show();_jArea.css('height',editHeight-_jTools.outerHeight());_jText.hide();_jText.focus(_this.focus);_jForm.submit(_this.getSource).bind('reset', _this.setSource);var jpWin=$(window);jpWin.unload(_this.getSource).bind('beforeunload', _this.getSource);jpWin.resize(_this.fixFullHeight);_jWin.focus(function(){if(_this.settings.focus)_this.settings.focus();}).blur(function(){if(_this.settings.blur)_this.settings.blur();_text.value=_this.getSource();});$(_doc.body).bind('paste',_this.onPaste);/*$(_doc.body).bind('contextmenu',function(){return false;});*/if(isSafari)_jWin.click(_this.fixAppleSel);_jDoc.keydown(_this.checkShortCut).keydown(_this.forcePtag);xCount++;bInit=true;if(_this.settings.fullscreen)_this.toggleFullscreen();if(_this.settings.readonly)_this.toggleReadonly(true);else if(_this.settings.sourceMode)setTimeout(_this.toggleSource,20);return true;};this.addHeight=function(){if(isIE){$('#'+idIframeArea+'_table').height($('#'+idIframeArea+'_table').height()+48);$('#'+idIframeArea).height($('#'+idIframeArea).height()+50);}else{$('#'+idIframeArea+'_table').height($('#'+idIframeArea+'_table').height()+98);$('#'+idIframeArea).height($('#'+idIframeArea).height()+100);};};this.removeHeight=function(){if($('#'+idIframeArea+'_table').height()>100){if(isIE){$('#'+idIframeArea+'_table').height($('#'+idIframeArea+'_table').height()-202);$('#'+idIframeArea).height($('#'+idIframeArea).height()-100);}else{$('#'+idIframeArea+'_table').height($('#'+idIframeArea+'_table').height()-102);$('#'+idIframeArea).height($('#'+idIframeArea).height()-100)}}};this.remove=function(){_jText.unbind('focus',_this.focus);_jForm.unbind('submit',_this.getSource).unbind('reset', _this.setSource);var jpWin=$(window);jpWin.unbind('unload',_this.getSource).unbind('beforeunload', _this.getSource);jpWin.unbind('resize',_this.fixFullHeight);if(isSafari)_jWin.unbind('click',_this.fixAppleSel);_jDoc.unbind('keydown',_this.checkShortCut).unbind('keydown',_this.forcePtag);$('#'+idContainer).remove();_jText.show();bInit=false;};this.onPaste=function(){setTimeout(_this.doPaste4Gecko,50);};this.doPaste4Gecko=function(){_this.pasteHTML('<img id="BDE_cursor" xheClass="BDE_Image" style="width:1px;height:1px">');var B=_this.getSourceHtml();B=html2ubb(B);B=ubb2html(B);_this.setSourceHtml(B);setTimeout(_this.rngDw,20);};this.rngDw=function(){var sel=_this.getSel(),rng;if(!rng)rng=isIE?_doc.body.createTextRange():_doc.createRange();var F=_doc,E=_win,A=null,B=_win.document.getElementById('BDE_cursor');if(isIE){F.selection.empty();rng.moveToElementText(B);rng.select();}else{}_this.focus();$(_win.document.getElementById('BDE_cursor')).remove()};this.setCSS=function(css){try{_this._exec('styleWithCSS',css);}catch(e){try{_this._exec('useCSS',!css);}catch(e){}}};this.setOpts=function(){if(bInit&&!bPreview&&!bSource){_this.setCSS(false);try{_this._exec('enableObjectResizing',true);}catch(e){};try{_this._exec('enableInlineTableEditing',false);}catch(e){};if(isIE)try{_this._exec('BackgroundImageCache',true);}catch(e){}}};this.forcePtag=function(ev){if(bSource||bPreview||ev.keyCode!=13||ev.shiftKey||ev.ctrlKey||ev.altKey)return true;var pNode=_this.getParent('p,h1,h2,h3,h4,h5,h6,pre,address,div,li');if(_this.settings.forcePtag){if(pNode.length==0)_this._exec('formatblock','<p>');}else{_this.pasteHTML('<br />');return false;}};this.fixFullHeight=function(){if(!isMozilla&&!isSafari){_jArea.height('100%');if(bFullscreen)_jArea.css('height',_jArea.outerHeight()-_jTools.outerHeight());if(isIE)_jTools.hide().show();}};this.fixAppleSel=function(e){e=e.target;if(e.tagName.match(/(img|embed)/i)){var sel=_this.getSel(),rng=_doc.createRange();rng.selectNode(e);sel.removeAllRanges();sel.addRange(rng);}};this.focus=function(){if(!bSource)_jWin.focus();else $('#sourceCode',_doc).focus();return false;};this.getSel=function(){return _win.getSelection ? _win.getSelection() : _doc.selection;};this.getRng=function(){var sel=_this.getSel(),rng;try{rng = sel.rangeCount > 0 ? sel.getRangeAt(0) : (sel.createRange ? sel.createRange() : _doc.createRange());}catch (ex){}if(!rng)rng = isIE ? _doc.body.createTextRange() : _doc.createRange();return rng;};this.getParent=function(tag){		var rng=_this.getRng(),p;if(!isIE){p = rng.commonAncestorContainer;if(!rng.collapsed)if(rng.startContainer == rng.endContainer&&rng.startOffset - rng.endOffset < 2&&rng.startContainer.hasChildNodes())p = rng.startContainer.childNodes[rng.startOffset];}else p=rng.item?rng.item(0):rng.parentElement();tag=tag?tag:'*';p=$(p);if(!p.is(tag))p=$(p).closest(tag);return p;};this.getSelect=function(format){var sel=_this.getSel(),rng=_this.getRng(),isCollapsed=true;if (!rng || rng.item)isCollapsed=false;else isCollapsed=!sel || rng.boundingWidth == 0 || rng.collapsed;if(format=='text')return isCollapsed ? '' : (rng.text || (sel.toString ? sel.toString() : ''));var sHtml;if(rng.cloneContents){		var tmp=$('<div></div>'),c;c = rng.cloneContents();if(c)tmp.append(c);sHtml=tmp.html();}else if(is(rng.item))sHtml=rng.item(0).outerHTML;else if(is(rng.htmlText))sHtml=rng.htmlText;else sHtml=rng.toString();sHtml=_this.processHTML(sHtml,'read');sHtml=_this.cleanHTML(sHtml);sHtml=_this.formatXHTML(sHtml);return sHtml;};function is(o,t){var n = typeof(o);if (!t)return n != 'undefined';if (t == 'array' && (o.hasOwnProperty && o instanceof Array))return true;return n == t;};this.pasteHTML=function(sHtml){if(bSource||bPreview)return false;_this.focus();sHtml=_this.processHTML(sHtml,'write');var rng=_this.getRng();sHtml+='<span id="__caret" />';if(rng.insertNode){rng.deleteContents();			rng.insertNode(rng.createContextualFragment(sHtml));}else rng.pasteHTML(sHtml);var jc=$('#__caret',_doc),c=jc[0],sel=_this.getSel();if(isIE){rng.moveToElementText(c);		rng.select();}else{rng.selectNode(c); sel.removeAllRanges();sel.addRange(rng);}jc.remove();};this.pasteText=function(text){if(!text)text='';text=_this.domEncode(text);text = text.replace(/\r?\n/g, '<br>');_this.pasteHTML(text);};this.appendHTML=function(sHtml){if(bSource||bPreview)return false;_this.focus();sHtml=_this.processHTML(sHtml,'write');	$(_doc.body).append(sHtml);};this.domEncode=function(str){if(str){var filter={'<':'&lt;','>':'&gt;'};str=str.replace(/[<>]/g,function(c){return filter[c];});}return str;};this.setSource=function(sHtml){	setTimeout(function(){_this._setSource(sHtml);},10);};this.setSourceHtml=function(sHtml){setTimeout(function(){_this._setSourceHtml(sHtml);},10);};this._setSource=function(sHtml){bookmark=null;if(typeof sHtml!='string'&&sHtml!='')sHtml=_jText.val();if(bSource)$('#sourceCode',_doc).val(sHtml);else{if(_this.settings.beforeSetSource)sHtml=_this.settings.beforeSetSource(sHtml);sHtml=_this.formatXHTML(sHtml);$(_doc.body)[0].innerHTML=_this.processHTML(sHtml,'write');}};this._setSourceHtml=function(sHtml){bookmark=null;if(typeof sHtml!='string'&&sHtml!='')sHtml=_jText.val();if(bSource)$('#sourceCode',_doc).val(sHtml);else{sHtml=_this.formatXHTML(sHtml);$(_doc.body)[0].innerHTML=_this.processHTML(sHtml,'write');}};this.processHTML=function(sHtml,mode){var appleClass=' class="Apple-style-span"';if(mode=='write'){if(_this.settings.keepValue){function saveValue(all,tag,attrs,n,q,v,e){attrs+=' _xhe_'+n+'="'+v+'"';return '<'+tag+attrs+' '+e+'>';}sHtml = sHtml.replace(/<(\w+(?:\:\w+)?)(\s+[^>]*?(src|href)\s*=\s*(['"]?)\s*([^"\s]*)\s*\4[^\/>]*?)(\/?)>/ig,saveValue);}sHtml = sHtml.replace(/<(\/?)del( [^>]+)?>/ig,'<$1strike$2>');if(isMozilla){sHtml = sHtml.replace(/<(\/?)strong( [^>]+)?>/ig,'<$1b$2>');sHtml = sHtml.replace(/<(\/?)em( [^>]+)?>/ig,'<$1i$2>');}else if(isSafari){sHtml = sHtml.replace(/("|;)\s*font-size\s*:\s*([a-z-]+)(;?)/ig,function(all,pre,sname,aft){var t,s;for(var i=0;i<arrFontsize.length;i++){t=arrFontsize[i];if(sname==t.n){s=t.wkn;break;}}return pre+'font-size:'+s+aft;});sHtml = sHtml.replace(/<strong( [^>]+)?>/ig,'<span'+appleClass+' style="font-weight: bold;"$1>');sHtml = sHtml.replace(/<em( [^>]+)?>/ig,'<span'+appleClass+' style="font-style: italic;"$1>');sHtml = sHtml.replace(/<u( [^>]+)?>/ig,'<span'+appleClass+' style="text-decoration: underline;"$1>');sHtml = sHtml.replace(/<strike( [^>]+)?>/ig,'<span'+appleClass+' style="text-decoration: line-through;"$1>');sHtml = sHtml.replace(/<\/(strong|em|u|strike)>/ig,'</span>');sHtml = sHtml.replace(/<span((?:\s+[^>]+)?\s+style="([^"]*;)*\s*(font-family|font-size|color|background-color)\s*:\s*[^;"]+\s*;?"[^>]*)>/ig,'<span'+appleClass+'$1>');}else if(isIE){sHtml = sHtml.replace(/&apos;/ig, '&#39;');sHtml = sHtml.replace(/\s+(disabled|checked|readonly|selected)\s*=\s*[\"\']?(false|0)[\"\']?/ig, '');}sHtml = sHtml.replace(/<a(\s+[^>]+)?\/>/,'<a$1></a>');if(!isSafari){function style2font(all,tag,style,content){var attrs='',f,s1,s2,c;f=style.match(/font-family\s*:\s*([^;"]+)/i);if(f)attrs+=' face="'+f[1]+'"';s1=style.match(/font-size\s*:\s*([^;"]+)/i);if(s1){s1=s1[1].toLowerCase();for(var j=0;j<arrFontsize.length;j++)if(s1==arrFontsize[j].n||s1==arrFontsize[j].s){s2=j+1;break;}if(s2){attrs+=' size="'+s2+'"';style=style.replace(/(^|;)(\s*font-size\s*:\s*[^;"]+;?)+/ig,'$1');}}c=style.match(/(?:^|[\s;])color\s*:\s*([^;"]+)/i);if(c){var rgb;if(rgb=c[1].match(/rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/i)){rgb=Number(rgb[1])*65536+Number(rgb[2])*256+Number(rgb[3]);rgb=rgb.toString(16);while(rgb.length<6)rgb='0'+rgb;						c[1]='#'+rgb;}else if(rgb=c[1].match(/^#([0-9a-f])([0-9a-f])([0-9a-f])$/i))c[1]='#'+rgb[1]+rgb[1]+rgb[2]+rgb[2]+rgb[3]+rgb[3];attrs+=' color="'+c[1]+'"';}					style=style.replace(/(^|;)(\s*(font-family|color)\s*:\s*[^;"]+;?)+/ig,'$1');if(attrs!=''){if(style)attrs+=' style="'+style+'"';return '<font'+attrs+'>'+content+"</font>";}			else return all;}sHtml = sHtml.replace(/<(span)(?:\s+[^>]+)? style="((?:[^"]*?;)*\s*(?:font-family|font-size|color)\s*:[^"]*)"(?: [^>]+)?>(((?!<\1(\s+[^>]+)?>)[\s\S])*?)<\/\1>/ig,style2font);sHtml = sHtml.replace(/<(span)(?:\s+[^>]+)? style="((?:[^"]*?;)*\s*(?:font-family|font-size|color)\s*:[^"]*)"(?: [^>]+)?>(((?!<\1(\s+[^>]+)?>)[\s\S]|<\1(\s+[^>]+)?>((?!<\1(\s+[^>]+)?>)[\s\S])*?<\/\1>)*?)<\/\1>/ig,style2font);sHtml = sHtml.replace(/<(span)(?:\s+[^>]+)? style="((?:[^"]*?;)*\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>/ig,style2font);}}else{if(_this.settings.keepValue){function restoreValue(all,tag,attrs,n,q,v){attrs=attrs.replace(new RegExp('\\s+'+n+'\\s*=\\s*(["\']?)[^\\1\\s]*\\1','ig'),' '+n+'="'+v.replace(/\$/g,'$$$$')+'"');return '<'+tag+attrs+'>';}sHtml = sHtml.replace(/<(\w+(?:\:\w+)?)(\s+[^>]*?_xhe_(src|href)\s*=\s*(['"]?)\s*([^\4\s]*)\s*\4[^>]*)>/ig,restoreValue);}if(isSafari){sHtml = sHtml.replace(/("|;)\s*font-size\s*:\s*([a-z-]+)(;?)/ig,function(all,pre,sname,aft){var t,s;for(var i=0;i<arrFontsize.length;i++){t=arrFontsize[i];if(sname==t.wkn){s=t.n;break;}}return pre+'font-size:'+s+aft;});var arrAppleSpan=[{r:/font-weight:\sbold/ig,t:'strong'},{r:/font-style:\sitalic/ig,t:'em'},{r:/text-decoration:\sunderline/ig,t:'u'},{r:/text-decoration:\sline-through/ig,t:'strike'}];function replaceAppleSpan(all,tag,attr1,attr2,content){var attr=attr1+attr2,newTag='';for(var i=0;i<arrAppleSpan.length;i++){if(attr.match(arrAppleSpan[i].r)){newTag=arrAppleSpan[i].t;break;}}if(newTag)return '<'+newTag+'>'+content+'</'+newTag+'>';else return all;}sHtml = sHtml.replace(/<(span)(\s+[^>]+|)? class="Apple-style-span"(\s+[^>]+|)?>(((?!<\1(\s+[^>]+)?>)[\s\S])*?)<\/\1>/ig,replaceAppleSpan);sHtml = sHtml.replace(/<(span)(\s+[^>]+|)? class="Apple-style-span"(\s+[^>]+|)?>(((?!<\1(\s+[^>]+)?>)[\s\S]|<\1(\s+[^>]+)?>((?!<\1(\s+[^>]+)?>)[\s\S])*?<\/\1>)*?)<\/\1>/ig,replaceAppleSpan);sHtml = sHtml.replace(/<(span)(\s+[^>]+|)? class="Apple-style-span"(\s+[^>]+|)?>(((?!<\1(\s+[^>]+)?>)[\s\S]|<\1(\s+[^>]+)?>((?!<\1(\s+[^>]+)?>)[\s\S]|<\1(\s+[^>]+)?>((?!<\1(\s+[^>]+)?>)[\s\S])*?<\/\1>)*?<\/\1>)*?)<\/\1>/ig,replaceAppleSpan);}sHtml = sHtml.replace(/(\s+)(?:_xhe_|_moz_|_webkit_)[^=]+?\s*=\s*(["']?)[^\2\s>]*\2\s*/ig,'$1');sHtml = sHtml.replace(/<(\w+[^>]*?)\s+class="?(?:apple|webkit)\-[^ >]*([^>]*?)>/ig, "<$1$2>");}return sHtml;};this.getSource=function(){var sHtml;if(bSource)sHtml=$('#sourceCode',_doc).val();		else{sHtml=_this.processHTML($(_doc.body).html(),'read');sHtml=_this.cleanWord(sHtml);sHtml=_this.cleanHTML(sHtml);sHtml=_this.formatXHTML(sHtml);if(_this.settings.beforeGetSource)sHtml=_this.settings.beforeGetSource(sHtml);}_jText.val(sHtml);return sHtml;};this.getSourceHtml=function(){var sHtml;if(bSource)sHtml=$('#sourceCode',_doc).val();else{sHtml=_this.processHTML($(_doc.body).html(),'read');sHtml=_this.cleanWord(sHtml);sHtml=_this.cleanHTML(sHtml);sHtml=_this.formatXHTML(sHtml);}_jText.val(sHtml);return sHtml;};this.cleanWord=function(sHtml){if(sHtml.match(/mso-|MsoNormal/i)){sHtml = sHtml.replace(/<!--([\s\S]*?)-->|<style(\s+[^>]+)?>[\s\S]*?<\/style>/ig, "");sHtml = sHtml.replace(/<\/?\w+:[^>]*>/ig, "");sHtml = sHtml.replace(/<(\w+[^>]*?)\s+class="?mso[^ >]*([^>]*?)>/ig, "<$1$2>");sHtml = sHtml.replace(/<(\w+[^>]*?)\s+lang="?[^ \>]*([^>]*?)>/ig, "<$1$2>");sHtml = sHtml.replace(/<(\w+[^>]*?)\s+align="?left"?([^>]*?)>/ig, "<$1$2>");sHtml = sHtml.replace(/\s*mso-[^:]+:[^;"]+;?\s*/ig,'');sHtml = sHtml.replace(/\s*margin: 0cm 0cm 0pt\s*;\s*/ig,'');sHtml = sHtml.replace(/\s*margin: 0cm 0cm 0pt\s*"/ig,'"');sHtml = sHtml.replace(/\s*text-align:[^;"]+;?\s*/ig,'');sHtml = sHtml.replace(/\s*font-variant:[^;"]+;?\s*/ig,'');sHtml = sHtml.replace(/<(\w+[^>]*?)\s+style="?"?(\s+|>)/ig,'<$1$2');sHtml = sHtml.replace(/<(\w+[^>]*?)\s+style="?\s*([^">]+)\s*"?([^>]*?)>/ig, function(all,attr1,styles,attr2){return '<'+attr1+' style="'+styles.replace(/&quot;/ig,'')+'"'+attr2+'>';});}return sHtml;};this.cleanHTML=function(sHtml){sHtml = sHtml.replace(/<\??xml(:\w+)?( [^>]+)?>([\s\S]*?<\/xml>)?/ig, "");sHtml = sHtml.replace(/<(meta|title)(\s+[^>]+)?>/ig, "");if(!_this.settings.linkTag)sHtml = sHtml.replace(/<link(\s+[^>]+)?>/ig, "");if(!_this.settings.internalScript)sHtml = sHtml.replace(/<(script)(\s+[^>]+)?>(((?!<\1(\s+[^>]+)?>)[\s\S]|<\1(\s+[^>]+)?>((?!<\1(\s+[^>]+)?>)[\s\S]|<\1(\s+[^>]+)?>((?!<\1(\s+[^>]+)?>)[\s\S])*?<\/\1>)*?<\/\1>)*?)<\/\1>/ig, '');if(!_this.settings.inlineScript)sHtml=sHtml.replace(/<(\w+)(\s+[^>]+?)?\s+on(?:click|dblclick|mousedown|mouseup|mousemove|mouseover|mouseout|mouseenter|mouseleave|keydown|keypress|keyup|change|select|submit|reset|blur|focus|load|unload)\s*=\s*(["']?)[^"']*?\3(\s+[^>]+?)?>/ig,'<$1$2$4>');if(!_this.settings.internalStyle)sHtml = sHtml.replace(/<(style)(\s+[^>]+)?>(((?!<\1(\s+[^>]+)?>)[\s\S]|<\1(\s+[^>]+)?>((?!<\1(\s+[^>]+)?>)[\s\S]|<\1(\s+[^>]+)?>((?!<\1(\s+[^>]+)?>)[\s\S])*?<\/\1>)*?<\/\1>)*?)<\/\1>/ig, '');if(!_this.settings.inlineStyle)sHtml=sHtml.replace(/<(\w+)(\s+[^>]+?)?\s+style\s*=\s*(["']?)[^"']*?\3(\s+[^>]+?)?>/ig,'<$1$2$4>');for(var i=0;i<3;i++)sHtml=sHtml.replace(/<(strong|b|u|del|strike|s|em|i)(?:\s+[^>]+)?>(((?!<\1(\s+[^>]+)?>)([ \t\r\n]|&nbsp;))*?)<\/\1>/ig,function(all,tag,content){if(content.match(/&nbsp;/i))return content.replace(/ +/g,'');else return '';});sHtml=sHtml.replace(/<\/(strong|b|u|strike|em|i)>((?:\s|<br\/?>|&nbsp;)*?)<\1>/ig,'$2');sHtml = sHtml.replace(/<(p|div)(?:\s+[^>]+)?>(((?!<\1(?: [^>]+)?>)[\s\S])+?)<\/\1>/ig,function(all,tag,content){var temp=content.replace(/<\/?(span|strong|b|u|strike|em|i)(\s+[^>]+)?>/ig,'');temp=temp.replace(/([ \t\r\n]|&nbsp;)+/ig,'');if(temp!='')return all;else return '<'+tag+'></'+tag+'>';});		sHtml=sHtml.replace(/^(\r?\n)+/g,'');sHtml=sHtml.replace(/(\r?\n)+/g,"\r\n");sHtml=sHtml.replace(/\s+$/g,'');return sHtml;};this.formatXHTML=function(sHtml){var emptyTags = makeMap("area,base,basefont,br,col,frame,hr,img,input,isindex,link,meta,param,embed");var blockTags = makeMap("address,applet,blockquote,button,center,dd,dir,div,dl,dt,fieldset,form,frameset,hr,iframe,ins,isindex,li,map,menu,noframes,noscript,object,ol,p,pre,script,table,tbody,td,tfoot,th,thead,tr,ul");var inlineTags = makeMap("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,del,strong,sub,sup,textarea,tt,u,var");var closeSelfTags = makeMap("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr");var fillAttrsTags = makeMap("checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected");var specialTags = makeMap("script,style");var tagReplac={'b':'strong','i':'em','s':'del','strike':'del'};var startTag = /^<(\w+(?:\:\w+)?)((?:\s+[\w-\:]*(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)>/;var endTag = /^<\/(\w+(?:\:\w+)?)[^>]*>/;var attr = /([\w-(?:\:\w+)?]+)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|([^>\s]+)))?/g;var index,skip=0,stack=[],last=sHtml,text='',results=[];stack.last = function(){return this[ this.length - 1 ];};while(sHtml){if(!stack.last()||!specialTags[stack.last()]){skip=0;if(sHtml.indexOf("<!") == 0 ){match = sHtml.match(/^<!(?:--)?([\s\S]*?)(?:--)?>/);		if(match){skip = match[0].length;results.push('<!--'+match[1]+'-->');}else skip=1;}else if(sHtml.indexOf("</")== 0){match = sHtml.match( endTag );if(match){skip = match[0].length;match[0].replace( endTag, parseEndTag );}else skip=1;}else if(sHtml.indexOf("<")==0){match = sHtml.match( startTag );if(match){skip = match[0].length;match[0].replace( startTag, parseStartTag );}else skip=1;}if(skip==1)results.push('&lt;');if(skip>0)sHtml=sHtml.substring(skip);else{index = sHtml.search(/<[^<>]+>/);	text = index < 0 ? sHtml : sHtml.substring( 0, index );sHtml = index < 0 ? "" : sHtml.substring( index );results.push(_this.domEncode(text));}}else{sHtml=sHtml.replace(/^([\s\S]*?)<\/(?:style|script)>/i, function(all, text){results.push(text);return '';});parseEndTag('',stack.last());}last = sHtml;}parseEndTag();sHtml=results.join('');function makeMap(str){var obj = {}, items = str.split(",");for ( var i = 0; i < items.length; i++ )obj[ items[i] ] = true;return obj;}function processTag(tagName){if(tagName){tagName=tagName.toLowerCase();var tag=tagReplac[tagName];if(tag)tagName=tag;}else tagName='';return tagName;}function parseStartTag( tag, tagName, rest, unary ){tagName=processTag(tagName);	if(blockTags[tagName])while(stack.last()&&inlineTags[stack.last()])parseEndTag("",stack.last());if(closeSelfTags[tagName]&&stack.last()==tagName )parseEndTag("",tagName);			unary = emptyTags[ tagName ] || !!unary;if (!unary)stack.push(tagName);	results.push("<" + tagName);rest.replace(attr, function(match, name){name=name.toLowerCase();			var value = arguments[2] ? arguments[2] :arguments[3] ? arguments[3] :arguments[4] ? arguments[4] :fillAttrsTags[name] ? name : "";if(value)results.push(" "+name+'="'+value.replace(/(^|[^\\])"/g, '$1\\\"')+'"');});results.push((unary ? " /" : "") + ">");}function parseEndTag(tag, tagName){if(!tagName)var pos = 0;else{tagName=processTag(tagName);			for(var pos=stack.length-1;pos>=0;pos--)if(stack[pos]==tagName)break;}if(pos>=0){for(var i=stack.length-1;i>=pos;i--)results.push("</" + stack[i] + ">");stack.length=pos;}}		function font2style(all,tag,attrs,content){	var styles='',f,s,c,style;f=attrs.match(/ face\s*=\s*"\s*([^"]+)\s*"/i);if(f)styles+='font-family:'+f[1]+';';s=attrs.match(/ size\s*=\s*"\s*(\d+)\s*"/i);if(s)styles+='font-size:'+arrFontsize[s[1]-1].n+';';c=attrs.match(/ color\s*=\s*"\s*([^"]+)\s*"/i);if(c)styles+='color:'+c[1]+';';style=attrs.match(/ style\s*=\s*"\s*([^"]+)\s*"/i);if(style)styles+=style[1];if(styles)content='<span style="'+styles+'">'+content+'</span>';return content;}sHtml = sHtml.replace(/<(font)(\s+[^>]+|)?>(((?!<\1(\s+[^>]+)?>)[\s\S])*?)<\/\1>/ig,font2style);sHtml = sHtml.replace(/<(font)(\s+[^>]+|)?>(((?!<\1(\s+[^>]+)?>)[\s\S]|<\1(\s+[^>]+)?>((?!<\1(\s+[^>]+)?>)[\s\S])*?<\/\1>)*?)<\/\1>/ig,font2style);sHtml = sHtml.replace(/<(font)(\s+[^>]+|)?>(((?!<\1(\s+[^>]+)?>)[\s\S]|<\1(\s+[^>]+)?>((?!<\1(\s+[^>]+)?>)[\s\S]|<\1(\s+[^>]+)?>((?!<\1(\s+[^>]+)?>)[\s\S])*?<\/\1>)*?<\/\1>)*?)<\/\1>/ig,font2style);return sHtml;};this.toggleShowBlocktag=function(state){if(bShowBlocktag===state)return;bShowBlocktag=!bShowBlocktag;var _jBody=$(_doc.body);if(bShowBlocktag){bodyClass+=' showBlocktag';	_jBody.addClass('showBlocktag');}else{bodyClass=bodyClass.replace(' showBlocktag','');			_jBody.removeClass('showBlocktag');}};this.toggleReadonly=function(state){if(bReadonly===state)return;if(bSource)_this.toggleSource(true);bReadonly=!bReadonly;if(bReadonly){		if(!bPreview)_this.togglePreview(true);_jTools.find('[name=Preview]').toggleClass('xheEnabled').toggleClass('xheActive');}else{_jTools.find('[name=Preview]').toggleClass('xheEnabled').toggleClass('xheActive');	if(bPreview)_this.togglePreview();}};this.toggleSource=function(state){if(bPreview||bSource===state)return;	_jTools.find('[name=Source]').toggleClass('xheEnabled').toggleClass('xheActive');_jTools.find('.xheButton').not('[name=Source],[name=Fullscreen],[name=About]').toggleClass('xheEnabled');if(bShowPanel)_this.hidePanel();var jBody=$(_doc.body),sHtml=_this.getSource();if(!bSource){if(isIE)_doc.body.contentEditable='false';else _doc.designMode = 'Off';jBody.attr('scroll','no').attr('class','sourceMode').html('<textarea id="sourceCode" wrap="soft" spellcheck="false" height="100%" />');jBody.find('#sourceCode').blur(_this.getSource);}else{jBody.find('#sourceCode').remove();if(isIE)_doc.body.contentEditable='true';else{_doc.designMode = 'On';if(isMozilla)_this._exec("inserthtml","-");}jBody.removeAttr('scroll').attr('class','editMode'+bodyClass);setTimeout(function(){_win.scrollTo(0,0);},10);}bSource=!bSource;_this._setSource(sHtml);_jTools.find('[name=Source]').toggleClass('xheEnabled');	setTimeout(_this.setOpts,300);};this.togglePreview=function(state){if(bSource||bPreview===state)return;_jTools.find('[name=Preview]').toggleClass('xheActive').toggleClass('xheEnabled');_jTools.find('.xheButton').not('[name=Preview],[name=Fullscreen],[name=About]').toggleClass('xheEnabled');var jBody=$(_doc.body);if(!bPreview){if(isIE)_doc.body.contentEditable='false';else _doc.designMode = 'Off';jBody.attr('class','previewMode');jBody[0].innerHTML=jBody.html();$('head base',_doc).attr('target','_blank');}else{		if(isIE)_doc.body.contentEditable='true';else _doc.designMode = 'On';jBody.attr('class','editMode'+bodyClass);jBody[0].innerHTML=jBody.html();$('head base',_doc).removeAttr('target');}bPreview=!bPreview;_jTools.find('[name=Preview]').toggleClass('xheEnabled');setTimeout(_this.setOpts,300);};this.toggleFullscreen=function(state){if(bFullscreen===state)return;if(bShowPanel)_this.hidePanel();var jLayout=$('#'+idContainer).find('.xheLayout'),jContainer=$('#'+idContainer);if(bFullscreen){if($.boxModel===false)_jText.after(jContainer);jLayout.attr('style',sLayoutStyle);_jArea.height(editHeight-_jTools.outerHeight());}else{if($.boxModel===false)$('body').append(jContainer);sLayoutStyle=jLayout.attr('style');jLayout.removeAttr('style');_jArea.height('100%');setTimeout(_this.fixFullHeight,100);}bFullscreen=!bFullscreen;jContainer.toggleClass('xhe_Fullscreen');$('html').toggleClass('xhe_Fullfix');_jTools.find('[name=Fullscreen]').toggleClass('xheActive');setTimeout(_this.setOpts,300);};this.addShortCut=function(key,cmd){	arrShortCuts[key.toLowerCase()]=cmd;};this.checkShortCut=function(event){if(bSource||bPreview)return true;ev = event;var code=ev.which,special=specialKeys[code],sChar=special?special:String.fromCharCode(code).toLowerCase();sKey='';sKey+=ev.ctrlKey?'ctrl+':'';sKey+=ev.altKey?'alt+':'';sKey+=ev.shiftKey?'shift+':'';sKey+=sChar;if ((ev.ctrlKey && code == 86)){}if(arrShortCuts[sKey]){_this.exec(arrShortCuts[sKey]);	return false;}};this.showMenu=function(menuitems,callback){var jMenu=$('<div class="xheMenu"></div>'),jItem;$.each(menuitems,function(n,v){jItem=$('<a href="javascript:void(0);" title="'+v.t+'">'+v.s+'</a>').click(function(){_this.focus();callback(v.v);_this.hidePanel();return false;}).mousedown(function(){return false;});jMenu.append(jItem);});_this.showPanel(jMenu);};this.showColor=function(callback){var jColor=$('<div class="xheColor"></div>'),jLine,jItem,c=0;jLine=$('<div></div>');$.each(itemColors,function(n,v){c++;jItem=$('<a href="javascript:void(0);" title="'+v+'" style="background:'+v+'"><img src="'+skinPath+'img/spacer.gif" /></a>').click(function(){_this.focus();callback(v);_this.hidePanel();}).mousedown(function(){return false;});jLine.append(jItem);if(c%8==0){jColor.append(jLine);jLine=$('<div></div>');}});jColor.append(jLine);_this.showPanel(jColor);};this.showPastetext=function(){var jPastetext=$(htmlPastetext),jValue=$('#xhePastetextValue',jPastetext),jSave=$('#xheSave',jPastetext);jSave.click(function(){_this.focus();var sValue=jValue.val();if(sValue)_this.pasteText(sValue);_this.hidePanel();return false;});	_this.showDialog(jPastetext);};this.attr=function(jObj,n,v){if(!n)return false;var kn='_xhe_'+n;if(v){jObj.attr(n,v);if(_this.settings.keepValue)jObj.removeAttr(kn).attr(kn,v);}v=jObj.attr(n);if(_this.settings.keepValue)v=jObj.attr(kn)||v;return v;};this.showLink=function(){var jLink=$(htmlLink),jParent=_this.getParent('a'),jText=$('#xheLinkText',jLink),jHref=$('#xheLinkHref',jLink),jSave=$('#xheSave',jLink),selHtml=_this.getSelect();if(jParent.length==1){jHref.val(_this.attr(jParent,'href'));}else if(selHtml=='')jText.val(_this.settings.defLinkText).closest('div').show();if(_this.settings.upLinkUrl)_this.ajaxUploadInit(jHref,_this.settings.upLinkUrl,_this.settings.upLinkExt);jSave.click(function(){_this.focus();var url=jHref.val();if(url==''||jParent.length==0)_this._exec('unlink');if(url!=''&&url!='http://'){if(jParent.length==0){if(selHtml==''){var txt=jText.val();if(!txt)txt=url;_this.pasteHTML('<a href="#xhe_tmpurl">'+txt+'</a>');}else _this._exec('createlink','#xhe_tmpurl');jParent=$('a[href$="#xhe_tmpurl"]',_doc);}_this.attr(jParent,'href',url);jParent.attr('target','_blank');}_this.hidePanel();return false;});_this.showDialog(jLink);};this.showImg=function(){var jImg=$(htmlImg),jParent=_this.getParent('img'),jSrc=$('#xheImgSrc',jImg),jAlign=$('#xheImgAlign',jImg),jWidth=$('#xheImgWidth',jImg),jHeight=$('#xheImgHeight',jImg),jSave=$('#xheSave',jImg);if(jParent.length==1){jSrc.val(_this.attr(jParent,'src'));jAlign.val(jParent.attr('align'));jWidth.val(jParent.attr('width'));	jHeight.val(jParent.attr('height'));}if(_this.settings.upImgUrl)_this.ajaxUploadInit(jSrc,_this.settings.upImgUrl,_this.settings.upImgExt);jSave.click(function(){_this.focus();var url=jSrc.val();var A=url;A=A.replace(/^http:\/\/http:\/\//g,"http://");var B=/^(https:\/\/|http:\/\/|ftp:\/\/|rtsp:\/\/|mms:\/\/)/;if(!(B.test(A.toLowerCase()))){A="http://"+A}var C=A.toLowerCase();if(C.length<=0||C=="https://"||C=="http://"||C=="ftp://"||C=="rtsp://"||C=="mms://"){$("#errr_tip").html("图片不能为空");return false;}B=/(.jpg|.jpeg|.bmp|.png|.gif|.tif)$/;if((!B.test(C))){				$("#errr_tip").html("图片地址不是一个有效的地址,请重试");return false;}if(jParent.length==0){_this.pasteHTML('<img xheClass="BDE_Image" src="'+url+'#xhe_tmpurl" />');jParent=$('img[src$="#xhe_tmpurl"]',_doc);}_this.attr(jParent,'src',url);if(jAlign.val()!='')jParent.attr('align',jAlign.val());else jParent.removeAttr('align');if(jWidth.val()!='')jParent.attr('width',jWidth.val());else jParent.removeAttr('width');if(jHeight.val()!='')jParent.attr('height',jHeight.val());else jParent.removeAttr('height');var jLink=jParent.parent('a');if(jLink.length==0){jParent.wrap('<a></a>');jLink=jParent.parent('a');}_this.hidePanel();return false;});_this.showDialog(jImg);};this.showEmbed=function(sType,sHtml,sMime,sClsID,sBaseAttrs,sUploadUrl,sUploadExt){var jEmbed=$(sHtml),jParent=_this.getParent('embed[type="'+sMime+'"],embed[classid="'+sClsID+'"]'),jSrc=$('#xhe'+sType+'Src',jEmbed),jWidth=$('#xhe'+sType+'Width',jEmbed),jHeight=$('#xhe'+sType+'Height',jEmbed),jSave=$('#xheSave',jEmbed);if(sUploadUrl)_this.ajaxUploadInit(jSrc,sUploadUrl,sUploadExt);_this.showDialog(jEmbed);if(jParent.length==1){jSrc.val(_this.attr(jParent,'src'));jWidth.val(jParent.attr('width'));jHeight.val(jParent.attr('height'));}		jSave.click(function(){_this.focus();var sSrc=jSrc.val();var E=sSrc.replace(/^http:\/\/http:\/\//g,"http://");var A=/^(https:\/\/|http:\/\/|ftp:\/\/|rtsp:\/\/|mms:\/\/)/;if(!(A.test(E.toLowerCase()))){E="http://"+E}var C=E.toLowerCase();if(C.length<=0||C=="https://"||C=="http://"||C=="ftp://"||C=="rtsp://"||C=="mms://"){$("#errr_tip").html("视频链接不能为空");	return false};var B=["http://img.ku6.com/common/V2.0.baidu.swf?vid=","http://www.tudou.com/v/","http://www.tudou.com/player/playlist.swf?lid=","http://www.56.com/","http://player.youku.com/","http://6.cn/","http://player.ku6.com/refer/","http://tv.mofile.com/cn/xplayer.swf?v=","http://v.blog.sohu.com/fo/v4/","http://v.blog.sohu.com/fo/p4/","http://vhead.blog.sina.com.cn/player/outer_player.swf?","http://img.openv.tv/hd/swf/hd_player.swf?pid=","http://www.cnboo.com/flash/player.swf?ids=","http://video.pomoho.com/swf/out_player.swf?flvid=","http://video.cctv.com/flash/cctv_player.swf?VideoID=","http://misc.home.news.cn/video/swf/VideoDisplay.swf?videoSource=","http://mv.baidu.com/export/flashplayer.swf?playlist=","http://mv.baidu.com/export/flashplayer.swf?vid=","http://client.joy.cn/flvplayer/"];var D=function(G){for(var H=0,F=B.length;H<F;H++){if(G.indexOf(B[H])==0){return true}}return false};if(!D(E)){$("#errr_tip").html("对不起，您输入的视频链接无效，请重试");return false}var w=jWidth.val(),h=jHeight.val(),reg=/^[0-9]+$/;if(!reg.test(w))w=412;if(!reg.test(h))h=300;var sBaseCode='<embed xheClass="BDE_Flash" type="'+sMime+'" classid="'+sClsID+'" src="xhe_tmpurl"'+sBaseAttrs;if(jParent.length==0){_this.pasteHTML(sBaseCode.replace('xhe_tmpurl',sSrc+'#xhe_tmpurl')+' />');jParent=$('embed[src$="#xhe_tmpurl"]',_doc);}_this.attr(jParent,'src',sSrc);jParent.attr('width',w);jParent.attr('height',h);_this.hidePanel();return false;});};this.ajaxUploadInit=function(jText,tourl,upext){var s1='<span class="xheUpload"><input type="text" style="visibility:hidden;" /><input type="button" value="上传" class="xheBtn" />',jUpload;if(tourl.substr(0,1)=='!'){jUpload=$(s1+'</span>');jText.after(jUpload);$('.xheBtn',jUpload).before(jText).click(function(){bShowPanel=false;_this.showIframeModal(tourl.substr(1),'上传文件',function(v){if(v.substr(0,1)=='!'){jText.val(v.substr(1));	jText.closest('.xheDialog').find('#xheSave').click();}else jText.val(v);},null,null,function(){bShowPanel=true;});});}else{jUpload=$(s1+'<input type="file" class="xheFile" size="13" name="filedata" id="xheUploadFile" /></span>');jText.after(jUpload);			$('.xheBtn',jUpload).before(jText);var jFile=$('#xheUploadFile',jUpload);jFile.change(function(){var sFile=jFile.val();if(sFile!=''){if(sFile.match(new RegExp('\.('+upext.replace(/,/g,'|')+')$','i'))){bShowPanel=false;var modal=_this.showModal('文件上传','<div style="margin:22px 0;text-align:center;line-height:30px;">文件上传中，请稍候……<br /><img src="'+skinPath+'img/loading.gif"></div>',320,150,function(){bShowPanel=true;});_this.ajaxUpload(jFile,tourl,function(data){modal.remove();if(data.err)alert(data.err);else{var msg=data.msg;if(msg.substr(0,1)=='!'){jText.val(msg.substr(1));jText.closest('.xheDialog').find('#xheSave').click();}else jText.val(msg);}},function(){modal.remove();});}else alert('上传文件扩展名必需为：'+upext);}});}};this.ajaxUpload=function(fromfile,tourl,callback,onError){var uid = new Date().getTime(),idIO='jUploadFrame'+uid;		var jIO=$('<iframe name="'+idIO+'" class="xheUploadIO" />').appendTo('body');var jForm=$('<form action="'+tourl+'" target="'+idIO+'" method="post" enctype="multipart/form-data" class="xheUploadForm"></form>').appendTo('body');var jOldFile = $(fromfile),jNewFile = jOldFile.clone().attr('disabled','true');jOldFile.before(jNewFile).appendTo(jForm);		jForm.submit();jIO.load(function(){	setTimeout(function(){jNewFile.before(jOldFile).remove();jIO.remove();jForm.remove();},100);var strText=$(jIO[0].contentWindow.document.body).text(),data=Object;try{eval("data=" + strText);}catch(ex){};if(data.err!=undefined&&data.msg!=undefined)callback(data);else{alert(tourl+' 上传接口发生错误！\r\n\r\n返回的错误内容为：\r\n\r\n'+strText);onError();}});};this.showIframeModal=function(ifmurl,title,callback,w,h,onRemove){var jContent=$('<iframe frameborder="0" src="'+ifmurl+'" style="width:100%;height:100%;display:none;" /><div class="xheModalIfmWait"></div>'),jIframe=$(jContent[0]),jWait=$(jContent[1]);var modal=_this.showModal(title,jContent,w,h,onRemove);jIframe.load(function(){var modalWin=jIframe[0].contentWindow,jModalDoc=$(modalWin.document);	modalWin.callback=function(v){jModalDoc.unbind('keydown',modal.escCheck);modal.remove();callback(v);};	jModalDoc.keydown(modal.escCheck);jIframe.show();jWait.remove();});};this.showModal=function(title,content,w,h,onRemove){if($('.xheModal').length==1)return false;var jModal,jModalShadow,jOverlay,layerShadow;w=w?w:_this.settings.modalWidth;h=h?h:_this.settings.modalHeight;layerShadow=_this.settings.layerShadow;jModal=$('<div class="xheModal" style="width:'+(w-1)+'px;height:'+h+'px;margin:-'+Math.ceil(h/2)+'px 0px 0px -'+Math.ceil(w/2)+'px;">'+(_this.settings.modalTitle?'<div class="xheModalTitle"><span class="xheModalClose" title="关闭 (Esc)"></span>'+title+'</div>':'')+'<div class="xheModalContent"></div></div>').appendTo('body');jOverlay=$('<div class="xheModalOverlay"></div>').appendTo('body').mousedown(function(){return false;});if(layerShadow>0)jModalShadow=$('<div class="xheModalShadow" style="width:'+jModal.outerWidth()+'px;height:'+jModal.outerHeight()+'px;margin:-'+(Math.ceil(h/2)-layerShadow-2)+'px 0px 0px -'+(Math.ceil(w/2)-layerShadow-2)+'px;"></div>').appendTo('body').mousedown(function(){return false;});$('.xheModalContent',jModal).css('height',h-(_this.settings.modalTitle?$('.xheModalTitle').outerHeight():0)).html(content);function remove(){$(document).unbind('keydown',escCheck);jModal.remove();if(layerShadow>0)jModalShadow.remove();jOverlay.remove();if(onRemove)onRemove();};this.remove=remove;function escCheck(ev){if(ev.which==27){remove();return false;}};this.escCheck=escCheck;$(document).keydown(escCheck);$('.xheModalClose',jModal).click(this.remove);jOverlay.show();if(layerShadow>0)jModalShadow.show();jModal.show();return this;};this.showEmot=function a (){var jSmallTlist=$('<iframe name="iframesmily" id="ifrmaesmily" height="240" width="380" frameborder="0" src="editor/Smiley/smiley.html" scrolling="no"></iframe>'); _this.showPanel(jSmallTlist);};this.showTable=function(){var jTable=$(htmlTable),jRows=$('#xheTableRows',jTable),jColumns=$('#xheTableColumns',jTable),jHeaders=$('#xheTableHeaders',jTable),jWidth=$('#xheTableWidth',jTable),jHeight=$('#xheTableHeight',jTable),jBorder=$('#xheTableBorder',jTable),jCellSpacing=$('#xheTableCellSpacing',jTable),jCellPadding=$('#xheTableCellPadding',jTable),jAlign=$('#xheTableAlign',jTable),jCaption=$('#xheTableCaption',jTable),jSave=$('#xheSave',jTable);jSave.click(function(){_this.focus();var sCaption=jCaption.val(),sBorder=jBorder.val(),sRows=jRows.val(),sCols=jColumns.val(),sHeaders=jHeaders.val(),sWidth=jWidth.val(),sHeight=jHeight.val(),sCellSpacing=jCellSpacing.val(),sCellPadding=jCellPadding.val(),sAlign=jAlign.val();var i,j,htmlTable='<table'+(sBorder!=''?' border="'+sBorder+'"':'')+(sWidth!=''?' width="'+sWidth+'"':'')+(sHeight!=''?' width="'+sHeight+'"':'')+(sCellSpacing!=''?' cellspacing="'+sCellSpacing+'"':'')+(sCellPadding!=''?' cellpadding="'+sCellPadding+'"':'')+(sAlign!=''?' align="'+sAlign+'"':'')+'>';if(sCaption!='')htmlTable+='<caption>'+sCaption+'</caption>';if(sHeaders=='row'||sHeaders=='both'){htmlTable+='<tr>';for(i=0;i<sCols;i++)htmlTable+='<th scope="col">&nbsp;</th>';htmlTable+='</tr>';sRows--;}htmlTable+='<tbody>';for(i=0;i<sRows;i++){htmlTable+='<tr>';for(j=0;j<sCols;j++){if(j==0&&(sHeaders=='col'||sHeaders=='both'))htmlTable+='<th scope="row">&nbsp;</th>';else htmlTable+='<td>&nbsp;</td>';}htmlTable+='</tr>';}htmlTable+='</tbody></table>';_this.pasteHTML(htmlTable);_this.hidePanel();return false;});_this.showDialog(jTable);};this.showAbout=function(){var jAbout=$(htmlAbout),jSave=$('#xheSave',jAbout);jSave.click(function(){_this.focus();_this.hidePanel();return false;});_this.showDialog(jAbout);};this.showDialog=function(content){var jDialog=$('<div class="xheDialog"></div>'),jSave=$('#xheSave',content);if(jSave.length==1){content.find('input[type=text]').keypress(function(ev){if(ev.which==13){jSave.click();return false;}});jSave.after(' <input type="button" id="xheCancel" value="取消" />');$('#xheCancel',content).click(_this.hidePanel);if(!_this.settings.clickCancelDialog)	{bClickCancel=false;var jFixCancel=$('<div class="xheFixCancel"></div>').appendTo('body').mousedown(function(){return false;});var xy=_jArea.offset();				jFixCancel.css({'left':xy.left,'top':xy.top,width:_jArea.outerWidth(),height:_jArea.outerHeight()})}}jDialog.append(content);_this.showPanel(jDialog);};this.clickCancelPanel=function(){if(bClickCancel)_this.hidePanel();};this.showPanel=function(content){	if(bShowPanel)_this.hidePanel();_jPanel.empty().append(content).css('left',0).css('top',0);		_jPanelButton=$(ev.target).closest('a');var xy=_jPanelButton.offset();var x=xy.left,y=xy.top;y+=_jPanelButton.outerHeight()-1;_jPanelButton.addClass('xheActive');_jCntLine.css({'left':x+1,'top':y}).show();if((x+_jPanel.outerWidth())>document.body.clientWidth)x-=(_jPanel.outerWidth()-_jPanelButton.outerWidth());var layerShadow=_this.settings.layerShadow;if(layerShadow>0)_jShadow.css({'left':x+layerShadow,'top':y+layerShadow,'width':_jPanel.outerWidth(),'height':_jPanel.outerHeight()}).show();_jPanel.css('left',x).css('top',y).show();bShowPanel=true;};this.hidePanel=function(){if(bShowPanel){_jPanelButton.removeClass('xheActive');_jShadow.hide();_jCntLine.hide();_jPanel.hide();bShowPanel=false;if(!bClickCancel){$('.xheFixCancel').remove();bClickCancel=true;}}};this.exec=function(cmd){var e=arrTools[cmd].e;if(e)return e.call(this);cmd=cmd.toLowerCase();switch(cmd){case 'cut':try{_doc.execCommand(cmd);if(!_doc.queryCommandSupported(cmd))throw 'Error';}catch(ex){alert('您的浏览器安全设置不允许使用剪切操作，请使用键盘快捷键(Ctrl + X)来完成');};break;case 'copy':try{_doc.execCommand(cmd);if(!_doc.queryCommandSupported(cmd))throw 'Error';}catch(ex){alert('您的浏览器安全设置不允许使用复制操作，请使用键盘快捷键(Ctrl + C)来完成');}break;case 'paste':try{_doc.execCommand(cmd);if(!_doc.queryCommandSupported(cmd))throw 'Error';}catch(ex){alert('您的浏览器安全设置不允许使用粘贴操作，请使用键盘快捷键(Ctrl + V)来完成');}break;case 'pastetext':if(window.clipboardData)_this.pasteText(window.clipboardData.getData('Text', true));else _this.showPastetext();break;case 'blocktag':var menuBlocktag=[];$.each(arrBlocktag,function(n,v){menuBlocktag.push({s:'<'+v.n+'>'+v.t+'</'+v.n+'>',v:'<'+v.n+'>',t:v.t});});_this.showMenu(menuBlocktag,function(v){_this._exec('formatblock',v);});break;case 'fontface':var menuFontname=[];$.each(arrFontname,function(n,v){v.c=v.c?v.c:v.n;menuFontname.push({s:'<span style="font-family:'+v.c+'">'+v.n+'</span>',v:v.c,t:v.n});});_this.showMenu(menuFontname,function(v){_this._exec('fontname',v);});break;case 'fontsize':var menuFontsize=[];$.each(arrFontsize,function(n,v){menuFontsize.push({s:'<span style="font-size:'+v.s+'">'+v.t+'('+v.s+')</span>',v:n+1,t:v.t});});_this.showMenu(menuFontsize,function(v){_this._exec('fontsize',v);});break;case 'fontcolor':_this.showColor(function(v){_this._exec('forecolor',v);});break;case 'backcolor':_this.showColor(function(v){if(isIE)_this._exec('backcolor',v);else{_this.setCSS(true);_this._exec('hilitecolor',v);_this.setCSS(false);}});break;case 'align':_this.showMenu(menuAlign,function(v){_this._exec(v);});break;case 'list':_this.showMenu(menuList,function(v){_this._exec(v);});break;case 'link':_this.showLink();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"',_this.settings.upFlashUrl,_this.settings.upFlashExt);break;case 'media':_this.showEmbed('Media',htmlMedia,'application/x-mplayer2','clsid:6bf52a52-394a-11d3-b153-00c04f79faa6',' enablecontextmenu="false" autostart="false"',_this.settings.upMediaUrl,_this.settings.upMediaExt);break;case 'emot':_this.showEmot();break;case 'table':_this.showTable();break;case 'source':_this.toggleSource();break;case 'preview':_this.togglePreview();	break;case 'fullscreen':_this.toggleFullscreen();break;case 'about':_this.showAbout();break;		default:_this._exec(cmd);break;}};this._exec=function(cmd,param){if(param!=undefined)return _doc.execCommand(cmd,false,param);else return _doc.execCommand(cmd,false,null);}};$(function(){$('textarea.xheditor,textarea[xheditor]').xheditor(true);$('textarea.xheditor-mini').xheditor(true,{tools:'mini'});});})(jQuery);
 