function FourA_WYSIWYG_Engine(){this.majorVersion="2";
this.minorVersion="0.6.1";
this.releaseDate="2006-08-01";
this.instances=new Array();
this.switchClassCache=new Array();
this.windowArgs=new Array();
this.loadedFiles=new Array();
this.pendingFiles=new Array();
this.loadingIndex=0;
this.configs=new Array();
this.currentConfig=0;
this.eventHandlers=new Array();
var ua=navigator.userAgent;
this.isMSIE=(navigator.appName=="Microsoft Internet Explorer");
this.isMSIE5=this.isMSIE&&(ua.indexOf('MSIE 5')!=-1);
this.isMSIE5_0=this.isMSIE&&(ua.indexOf('MSIE 5.0')!=-1);
this.isGecko=ua.indexOf('Gecko')!=-1;
this.isSafari=ua.indexOf('Safari')!=-1;
this.isOpera=ua.indexOf('Opera')!=-1;
this.isMac=ua.indexOf('Mac')!=-1;
this.isNS7=ua.indexOf('Netscape/7')!=-1;
this.isNS71=ua.indexOf('Netscape/7.1')!=-1;
this.dialogCounter=0;
this.plugins=new Array();
this.themes=new Array();
this.menus=new Array();
this.loadedPlugins=new Array();
this.buttonMap=new Array();
this.isLoaded=false;
if(this.isOpera){this.isMSIE=true;
this.isGecko=false;
this.isSafari=false;
}this.idCounter=0;
};
FourA_WYSIWYG_Engine.prototype={init:function(settings){var theme;
this.settings=settings;
if(typeof(document.execCommand)=='undefined')return;
if(!fouraWSYG.baseURL){var elements=document.getElementsByTagName('script');
for(var i=0;
i<elements.length;
i++){if(elements[i].src&&(elements[i].src.indexOf("tiny_mce.js")!=-1||elements[i].src.indexOf("tiny_mce_dev.js")!=-1||elements[i].src.indexOf("tiny_mce_src.js")!=-1||elements[i].src.indexOf("tiny_mce_gzip")!=-1)){var src=elements[i].src;
fouraWSYG.srcMode=(src.indexOf('_src')!=-1||src.indexOf('_dev')!=-1)?'_src':'';
fouraWSYG.gzipMode=src.indexOf('_gzip')!=-1;
src=src.substring(0,src.lastIndexOf('/'));
if(settings.exec_mode=="src"||settings.exec_mode=="normal")fouraWSYG.srcMode=settings.exec_mode=="src"?'_src':'';
fouraWSYG.baseURL=src;
break;
}}}this.documentBasePath=document.location.href;
if(this.documentBasePath.indexOf('?')!=-1)this.documentBasePath=this.documentBasePath.substring(0,this.documentBasePath.indexOf('?'));
this.documentURL=this.documentBasePath;
this.documentBasePath=this.documentBasePath.substring(0,this.documentBasePath.lastIndexOf('/'));
if(fouraWSYG.baseURL.indexOf('://')==-1&&fouraWSYG.baseURL.charAt(0)!='/'){fouraWSYG.baseURL=this.documentBasePath+"/"+fouraWSYG.baseURL;
}this._def("mode","none");
this._def("theme","advanced");
this._def("plugins","",true);
this._def("language","en");
this._def("docs_language",this.settings['language']);
this._def("elements","");
this._def("textarea_trigger","mce_editable");
this._def("editor_selector","");
this._def("editor_deselector","mceNoEditor");
this._def("valid_elements","+a[id|style|rel|rev|charset|hreflang|dir|lang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur|onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup],-strong/-b[class|style],-em/-i[class|style],-strike[class|style],-u[class|style],#p[id|style|dir|class|align],-ol[class|style],-ul[class|style],-li[class|style],br,img[id|dir|lang|longdesc|usemap|style|class|src|onmouseover|onmouseout|border|alt=|title|hspace|vspace|width|height|align],-sub[style|class],-sup[style|class],-blockquote[dir|style],-table[border=0|cellspacing|cellpadding|width|height|class|align|summary|style|dir|id|lang|bgcolor|background|bordercolor],-tr[id|lang|dir|class|rowspan|width|height|align|valign|style|bgcolor|background|bordercolor],tbody[id|class],thead[id|class],tfoot[id|class],-td[id|lang|dir|class|colspan|rowspan|width|height|align|valign|style|bgcolor|background|bordercolor|scope],-th[id|lang|dir|class|colspan|rowspan|width|height|align|valign|style|scope],caption[id|lang|dir|class|style],-div[id|dir|class|align|style],-span[style|class|align],-pre[class|align|style],address[class|align|style],-h1[id|style|dir|class|align],-h2[id|style|dir|class|align],-h3[id|style|dir|class|align],-h4[id|style|dir|class|align],-h5[id|style|dir|class|align],-h6[id|style|dir|class|align],hr[class|style],-font[face|size|style|id|class|dir|color],dd[id|class|title|style|dir|lang],dl[id|class|title|style|dir|lang],dt[id|class|title|style|dir|lang]");
this._def("extended_valid_elements","");
this._def("invalid_elements","");
this._def("encoding","");
this._def("urlconverter_callback",fouraWSYG.getParam("urlconvertor_callback","FourA_WYSIWYG_Engine.prototype.convertURL"));
this._def("save_callback","");
this._def("debug",false);
this._def("force_br_newlines",false);
this._def("force_p_newlines",true);
this._def("add_form_submit_trigger",true);
this._def("relative_urls",true);
this._def("remove_script_host",true);
this._def("focus_alert",true);
this._def("document_base_url",this.documentURL);
this._def("visual",true);
this._def("visual_table_class","mceVisualAid");
this._def("setupcontent_callback","");
this._def("fix_content_duplication",true);
this._def("custom_undo_redo",true);
this._def("custom_undo_redo_levels",-1);
this._def("custom_undo_redo_keyboard_shortcuts",true);
this._def("custom_undo_redo_restore_selection",true);
this._def("verify_html",true);
this._def("apply_source_formatting",false);
this._def("directionality","ltr");
this._def("cleanup_on_startup",false);
this._def("inline_styles",false);
this._def("convert_newlines_to_brs",false);
this._def("auto_reset_designmode",true);
this._def("entities","39,#39,160,nbsp,161,iexcl,162,cent,163,pound,164,curren,165,yen,166,brvbar,167,sect,168,uml,169,copy,170,ordf,171,laquo,172,not,173,shy,174,reg,175,macr,176,deg,177,plusmn,178,sup2,179,sup3,180,acute,181,micro,182,para,183,middot,184,cedil,185,sup1,186,ordm,187,raquo,188,frac14,189,frac12,190,frac34,191,iquest,192,Agrave,193,Aacute,194,Acirc,195,Atilde,196,Auml,197,Aring,198,AElig,199,Ccedil,200,Egrave,201,Eacute,202,Ecirc,203,Euml,204,Igrave,205,Iacute,206,Icirc,207,Iuml,208,ETH,209,Ntilde,210,Ograve,211,Oacute,212,Ocirc,213,Otilde,214,Ouml,215,times,216,Oslash,217,Ugrave,218,Uacute,219,Ucirc,220,Uuml,221,Yacute,222,THORN,223,szlig,224,agrave,225,aacute,226,acirc,227,atilde,228,auml,229,aring,230,aelig,231,ccedil,232,egrave,233,eacute,234,ecirc,235,euml,236,igrave,237,iacute,238,icirc,239,iuml,240,eth,241,ntilde,242,ograve,243,oacute,244,ocirc,245,otilde,246,ouml,247,divide,248,oslash,249,ugrave,250,uacute,251,ucirc,252,uuml,253,yacute,254,thorn,255,yuml,402,fnof,913,Alpha,914,Beta,915,Gamma,916,Delta,917,Epsilon,918,Zeta,919,Eta,920,Theta,921,Iota,922,Kappa,923,Lambda,924,Mu,925,Nu,926,Xi,927,Omicron,928,Pi,929,Rho,931,Sigma,932,Tau,933,Upsilon,934,Phi,935,Chi,936,Psi,937,Omega,945,alpha,946,beta,947,gamma,948,delta,949,epsilon,950,zeta,951,eta,952,theta,953,iota,954,kappa,955,lambda,956,mu,957,nu,958,xi,959,omicron,960,pi,961,rho,962,sigmaf,963,sigma,964,tau,965,upsilon,966,phi,967,chi,968,psi,969,omega,977,thetasym,978,upsih,982,piv,8226,bull,8230,hellip,8242,prime,8243,Prime,8254,oline,8260,frasl,8472,weierp,8465,image,8476,real,8482,trade,8501,alefsym,8592,larr,8593,uarr,8594,rarr,8595,darr,8596,harr,8629,crarr,8656,lArr,8657,uArr,8658,rArr,8659,dArr,8660,hArr,8704,forall,8706,part,8707,exist,8709,empty,8711,nabla,8712,isin,8713,notin,8715,ni,8719,prod,8721,sum,8722,minus,8727,lowast,8730,radic,8733,prop,8734,infin,8736,ang,8743,and,8744,or,8745,cap,8746,cup,8747,int,8756,there4,8764,sim,8773,cong,8776,asymp,8800,ne,8801,equiv,8804,le,8805,ge,8834,sub,8835,sup,8836,nsub,8838,sube,8839,supe,8853,oplus,8855,otimes,8869,perp,8901,sdot,8968,lceil,8969,rceil,8970,lfloor,8971,rfloor,9001,lang,9002,rang,9674,loz,9824,spades,9827,clubs,9829,hearts,9830,diams,34,quot,38,amp,60,lt,62,gt,338,OElig,339,oelig,352,Scaron,353,scaron,376,Yuml,710,circ,732,tilde,8194,ensp,8195,emsp,8201,thinsp,8204,zwnj,8205,zwj,8206,lrm,8207,rlm,8211,ndash,8212,mdash,8216,lsquo,8217,rsquo,8218,sbquo,8220,ldquo,8221,rdquo,8222,bdquo,8224,dagger,8225,Dagger,8240,permil,8249,lsaquo,8250,rsaquo,8364,euro",true);
this._def("entity_encoding","named");
this._def("cleanup_callback","");
this._def("add_unload_trigger",true);
this._def("ask",false);
this._def("nowrap",false);
this._def("auto_resize",false);
this._def("auto_focus",false);
this._def("cleanup",true);
this._def("remove_linebreaks",true);
this._def("button_tile_map",false);
this._def("submit_patch",true);
this._def("browsers","msie,safari,gecko,opera",true);
this._def("dialog_type","window");
this._def("accessibility_warnings",true);
this._def("accessibility_focus",true);
this._def("merge_styles_invalid_parents","");
this._def("force_hex_style_colors",true);
this._def("trim_span_elements",true);
this._def("convert_fonts_to_spans",false);
this._def("doctype",'<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">');
this._def("font_size_classes",'');
this._def("font_size_style_values",'xx-small,x-small,small,medium,large,x-large,xx-large',true);
this._def("event_elements",'a,img',true);
this._def("convert_urls",true);
this._def("table_inline_editing",false);
this._def("object_resizing",true);
this._def("custom_shortcuts",true);
this._def("convert_on_click",false);
this._def("content_css",'');
this._def("fix_list_elements",false);
this._def("fix_table_elements",false);
this._def("strict_loading_mode",document.contentType=='application/xhtml+xml');
this._def("hidden_tab_class",'');
this._def("display_tab_class",'');
if(this.isMSIE&&!this.isOpera)this.settings.strict_loading_mode=false;
if(this.isMSIE&&this.settings['browsers'].indexOf('msie')==-1)return;
if(this.isGecko&&this.settings['browsers'].indexOf('gecko')==-1)return;
if(this.isSafari&&this.settings['browsers'].indexOf('safari')==-1)return;
if(this.isOpera&&this.settings['browsers'].indexOf('opera')==-1)return;
var baseHREF=fouraWSYG.settings['document_base_url'];
var h=document.location.href;
var p=h.indexOf('://');
if(p>0&&document.location.protocol!="file:"){p=h.indexOf('/',p+3);
h=h.substring(0,p);
if(baseHREF.indexOf('://')==-1)baseHREF=h+baseHREF;
fouraWSYG.settings['document_base_url']=baseHREF;
fouraWSYG.settings['document_base_prefix']=h;
}if(baseHREF.indexOf('?')!=-1)baseHREF=baseHREF.substring(0,baseHREF.indexOf('?'));
this.settings['base_href']=baseHREF.substring(0,baseHREF.lastIndexOf('/'))+"/";
theme=this.settings['theme'];
this.blockRegExp=new RegExp("^(h[1-6]|p|div|address|pre|form|table|li|ol|ul|td|blockquote|center|dl|dt|dd|dir|fieldset|form|noscript|noframes|menu|isindex|samp)$","i");
this.posKeyCodes=new Array(13,45,36,35,33,34,37,38,39,40);
this.uniqueURL='javascript:TINYMCE_UNIQUEURL();';
this.uniqueTag='<div id="mceTMPElement" style="display: none">TMP</div>';
this.callbacks=new Array('onInit','getInfo','getEditorTemplate','setupContent','onChange','onPageLoad','handleNodeChange','initInstance','execCommand','getControlHTML','handleEvent','cleanup');
this.settings['theme_href']=fouraWSYG.baseURL+"/themes/"+theme;
if(!fouraWSYG.isMSIE)this.settings['force_br_newlines']=false;
if(fouraWSYG.getParam("popups_css",false)){var cssPath=fouraWSYG.getParam("popups_css","");
if(cssPath.indexOf('://')==-1&&cssPath.charAt(0)!='/')this.settings['popups_css']=this.documentBasePath+"/"+cssPath;
else this.settings['popups_css']=cssPath;
}else this.settings['popups_css']=fouraWSYG.baseURL+"/themes/"+theme+"/css/editor_popup.css";
if(fouraWSYG.getParam("editor_css",false)){var cssPath=fouraWSYG.getParam("editor_css","");
if(cssPath.indexOf('://')==-1&&cssPath.charAt(0)!='/')this.settings['editor_css']=this.documentBasePath+"/"+cssPath;
else this.settings['editor_css']=cssPath;
}else this.settings['editor_css']=fouraWSYG.baseURL+"/themes/"+theme+"/css/editor_ui.css";
if(fouraWSYG.settings['debug']){var msg="Debug: \n";
msg+="baseURL: "+this.baseURL+"\n";
msg+="documentBasePath: "+this.documentBasePath+"\n";
msg+="content_css: "+this.settings['content_css']+"\n";
msg+="popups_css: "+this.settings['popups_css']+"\n";
msg+="editor_css: "+this.settings['editor_css']+"\n";
alert(msg);
}if(this.configs.length==0){if(this.isSafari&&this.getParam('safari_warning',false))alert("Safari support is very limited and should be considered experimental.\nSo there is no need to even submit bugreports on this early version.\nYou can disable this message by setting: safari_warning option to false");
if(typeof(FourAhtmlWYSIWYGCompressed)=="undefined"){fouraWSYG.addEvent(window,"DOMContentLoaded",FourA_WYSIWYG_Engine.prototype.onLoad);
if(fouraWSYG.isMSIE&&!fouraWSYG.isOpera){if(document.body)fouraWSYG.addEvent(document.body,"readystatechange",FourA_WYSIWYG_Engine.prototype.onLoad);else fouraWSYG.addEvent(document,"readystatechange",FourA_WYSIWYG_Engine.prototype.onLoad);
}fouraWSYG.addEvent(window,"load",FourA_WYSIWYG_Engine.prototype.onLoad);
fouraWSYG._addUnloadEvents();
}}this.loadScript(fouraWSYG.baseURL+'/themes/'+this.settings['theme']+'/editor_template'+fouraWSYG.srcMode+'.js');
this.loadScript(fouraWSYG.baseURL+'/langs/'+this.settings['language']+'.js');
this.loadCSS(this.settings['editor_css']);
var p=fouraWSYG.getParam('plugins','',true,',');
if(p.length>0){for(var i=0;
i<p.length;
i++){if(p[i].charAt(0)!='-')this.loadScript(fouraWSYG.baseURL+'/plugins/'+p[i]+'/editor_plugin'+fouraWSYG.srcMode+'.js');
}}settings['cleanup_entities']=new Array();
var entities=fouraWSYG.getParam('entities','',true,',');
for(var i=0;
i<entities.length;
i+=2)settings['cleanup_entities']['c'+entities[i]]=entities[i+1];
settings['index']=this.configs.length;
this.configs[this.configs.length]=settings;
this.loadNextScript();
},_addUnloadEvents:function(){if(fouraWSYG.isMSIE){if(fouraWSYG.settings['add_unload_trigger']){fouraWSYG.addEvent(window,"unload",FourA_WYSIWYG_Engine.prototype.unloadHandler);
fouraWSYG.addEvent(window.document,"beforeunload",FourA_WYSIWYG_Engine.prototype.unloadHandler);
}}else{if(fouraWSYG.settings['add_unload_trigger'])fouraWSYG.addEvent(window,"unload",function(){fouraWSYG.triggerSave(true,true);
});
}},_def:function(key,def_val,t){var v=fouraWSYG.getParam(key,def_val);
v=t?v.replace(/\s+/g,""):v;
this.settings[key]=v;
},hasPlugin:function(n){return typeof(this.plugins[n])!="undefined"&&this.plugins[n]!=null;
},addPlugin:function(n,p){var op=this.plugins[n];
p.baseURL=op?op.baseURL:fouraWSYG.baseURL+"/plugins/"+n;
this.plugins[n]=p;
this.loadNextScript();
},setPluginBaseURL:function(n,u){var op=this.plugins[n];
if(op)op.baseURL=u;
else this.plugins[n]={baseURL:u};
},loadPlugin:function(n,u){u=u.indexOf('.js')!=-1?u.substring(0,u.lastIndexOf('/')):u;
u=u.charAt(u.length-1)=='/'?u.substring(0,u.length-1):u;
this.plugins[n]={baseURL:u};
this.loadScript(u+"/editor_plugin"+(fouraWSYG.srcMode?'_src':'')+".js");
},hasTheme:function(n){return typeof(this.themes[n])!="undefined"&&this.themes[n]!=null;
},addTheme:function(n,t){this.themes[n]=t;
this.loadNextScript();
},addMenu:function(n,m){this.menus[n]=m;
},hasMenu:function(n){return typeof(this.plugins[n])!="undefined"&&this.plugins[n]!=null;
},loadScript:function(url){var i;
for(i=0;
i<this.loadedFiles.length;
i++){if(this.loadedFiles[i]==url)return;
}if(fouraWSYG.settings.strict_loading_mode)this.pendingFiles[this.pendingFiles.length]=url;
else document.write('<sc'+'ript language="javascript" type="text/javascript" src="'+url+'"></script>');
this.loadedFiles[this.loadedFiles.length]=url;
},loadNextScript:function(){var d=document,se;
if(!fouraWSYG.settings.strict_loading_mode)return;
if(this.loadingIndex<this.pendingFiles.length){se=d.createElementNS('http://www.w3.org/1999/xhtml','script');
se.setAttribute('language','javascript');
se.setAttribute('type','text/javascript');
se.setAttribute('src',this.pendingFiles[this.loadingIndex++]);
d.getElementsByTagName("head")[0].appendChild(se);
}else this.loadingIndex=-1;
},loadCSS:function(url){var ar=url.replace(/\s+/,'').split(',');
var lflen=0,csslen=0;
var skip=false;
var x=0,i=0,nl,le;
for(x=0,csslen=ar.length;
x<csslen;
x++){ignore_css=false;
if(ar[x]!=null&&ar[x]!='null'&&ar[x].length>0){for(i=0,lflen=this.loadedFiles.length;
i<lflen;
i++){if(this.loadedFiles[i]==ar[x]){skip=true;
break;
}}if(!skip){if(fouraWSYG.settings.strict_loading_mode){nl=document.getElementsByTagName("head");
le=document.createElement('link');
le.setAttribute('href',ar[x]);
le.setAttribute('rel','stylesheet');
le.setAttribute('type','text/css');
nl[0].appendChild(le);
}else document.write('<link href="'+ar[x]+'" rel="stylesheet" type="text/css" />');
this.loadedFiles[this.loadedFiles.length]=ar[x];
}}}},importCSS:function(doc,css){var css_ary=css.replace(/\s+/,'').split(',');
var csslen,elm,headArr,x,css_file;
for(x=0,csslen=css_ary.length;
x<csslen;
x++){css_file=css_ary[x];
if(css_file!=null&&css_file!='null'&&css_file.length>0){if(css_file.indexOf('://')==-1&&css_file.charAt(0)!='/')css_file=this.documentBasePath+"/"+css_file;
if(typeof(doc.createStyleSheet)=="undefined"){elm=doc.createElement("link");
elm.rel="stylesheet";
elm.href=css_file;
if((headArr=doc.getElementsByTagName("head"))!=null&&headArr.length>0)headArr[0].appendChild(elm);
}else doc.createStyleSheet(css_file);
}}},confirmAdd:function(e,settings){var elm=fouraWSYG.isMSIE?event.srcElement:e.target;
var elementId=elm.name?elm.name:elm.id;
fouraWSYG.settings=settings;
if(fouraWSYG.settings['convert_on_click']||(!elm.getAttribute('mce_noask')&&confirm(fouraWSYGLang['lang_edit_confirm'])))fouraWSYG.addMCEControl(elm,elementId);
elm.setAttribute('mce_noask','true');
},updateContent:function(form_element_name){var formElement=document.getElementById(form_element_name);
for(var n in fouraWSYG.instances){var inst=fouraWSYG.instances[n];
if(!fouraWSYG.isInstance(inst))continue;
inst.switchSettings();
if(inst.formElement==formElement){var doc=inst.getDoc();
fouraWSYG._setHTML(doc,inst.formElement.value);
if(!fouraWSYG.isMSIE)doc.body.innerHTML=fouraWSYG._cleanupHTML(inst,doc,this.settings,doc.body,inst.visualAid);
}}},addMCEControl:function(replace_element,form_element_name,target_document){var id="mce_editor_"+fouraWSYG.idCounter++;
var inst=new FourA_WYSIWYG_Control(fouraWSYG.settings);
inst.editorId=id;
this.instances[id]=inst;
inst._onAdd(replace_element,form_element_name,target_document);
},removeMCEControl:function(editor_id){var inst=fouraWSYG.getInstanceById(editor_id);
if(inst){inst.switchSettings();
editor_id=inst.editorId;
var html=fouraWSYG.getContent(editor_id);
var tmpInstances=new Array();
for(var instanceName in fouraWSYG.instances){var instance=fouraWSYG.instances[instanceName];
if(!fouraWSYG.isInstance(instance))continue;
if(instanceName!=editor_id)tmpInstances[instanceName]=instance;
}fouraWSYG.instances=tmpInstances;
fouraWSYG.selectedElement=null;
fouraWSYG.selectedInstance=null;
var replaceElement=document.getElementById(editor_id+"_parent");
var oldTargetElement=inst.oldTargetElement;
var targetName=oldTargetElement.nodeName.toLowerCase();
if(targetName=="textarea"||targetName=="input"){replaceElement.parentNode.removeChild(replaceElement);
oldTargetElement.style.display="inline";
oldTargetElement.value=html;
}else{oldTargetElement.innerHTML=html;
oldTargetElement.style.display='block';
replaceElement.parentNode.insertBefore(oldTargetElement,replaceElement);
replaceElement.parentNode.removeChild(replaceElement);
}}},triggerSave:function(skip_cleanup,skip_callback){var inst,n;
if(typeof(skip_cleanup)=="undefined")skip_cleanup=false;
if(typeof(skip_callback)=="undefined")skip_callback=false;
for(n in fouraWSYG.instances){inst=fouraWSYG.instances[n];
if(!fouraWSYG.isInstance(inst))continue;
inst.triggerSave(skip_cleanup,skip_callback);
}},resetForm:function(form_index){var i,inst,n,formObj=document.forms[form_index];
for(n in fouraWSYG.instances){inst=fouraWSYG.instances[n];
if(!fouraWSYG.isInstance(inst))continue;
inst.switchSettings();
for(i=0;
i<formObj.elements.length;
i++){if(inst.formTargetElementId==formObj.elements[i].name)inst.getBody().innerHTML=inst.startContent;
}}},execInstanceCommand:function(editor_id,command,user_interface,value,focus){var inst=fouraWSYG.getInstanceById(editor_id);
if(inst){if(typeof(focus)=="undefined")focus=true;
if(focus)inst.contentWindow.focus();
inst.autoResetDesignMode();
this.selectedElement=inst.getFocusElement();
this.selectedInstance=inst;
fouraWSYG.execCommand(command,user_interface,value);
if(fouraWSYG.isMSIE&&window.event!=null)fouraWSYG.cancelEvent(window.event);
}},execCommand:function(command,user_interface,value){user_interface=user_interface?user_interface:false;
value=value?value:null;
if(fouraWSYG.selectedInstance)fouraWSYG.selectedInstance.switchSettings();
switch(command){case'mceHelp':fouraWSYG.openWindow({file:'about.htm',width:480,height:380},{tinymce_version:fouraWSYG.majorVersion+"."+fouraWSYG.minorVersion,tinymce_releasedate:fouraWSYG.releaseDate,inline:"yes"});
return;
case'mceFocus':var inst=fouraWSYG.getInstanceById(value);
if(inst)inst.contentWindow.focus();
return;
case"mceAddControl":case"mceAddEditor":fouraWSYG.addMCEControl(fouraWSYG._getElementById(value),value);
return;
case"mceAddFrameControl":fouraWSYG.addMCEControl(fouraWSYG._getElementById(value['element'],value['document']),value['element'],value['document']);
return;
case"mceRemoveControl":case"mceRemoveEditor":fouraWSYG.removeMCEControl(value);
return;
case"mceResetDesignMode":if(!fouraWSYG.isMSIE){for(var n in fouraWSYG.instances){if(!fouraWSYG.isInstance(fouraWSYG.instances[n]))continue;
try{fouraWSYG.instances[n].getDoc().designMode="on";
}catch(e){}}}return;
}if(this.selectedInstance){this.selectedInstance.execCommand(command,user_interface,value);
}else if(fouraWSYG.settings['focus_alert'])alert(fouraWSYGLang['lang_focus_alert']);
},_createIFrame:function(replace_element,doc,win){var iframe,id=replace_element.getAttribute("id");
var aw,ah;
if(typeof(doc)=="undefined")doc=document;
if(typeof(win)=="undefined")win=window;
iframe=doc.createElement("iframe");
aw=""+fouraWSYG.settings['area_width'];
ah=""+fouraWSYG.settings['area_height'];
if(aw.indexOf('%')==-1){aw=parseInt(aw);
aw=aw<0?300:aw;
aw=aw+"px";
}if(ah.indexOf('%')==-1){ah=parseInt(ah);
ah=ah<0?240:ah;
ah=ah+"px";
}iframe.setAttribute("id",id);
iframe.setAttribute("class","mceEditorIframe");
iframe.setAttribute("border","0");
iframe.setAttribute("frameBorder","0");
iframe.setAttribute("marginWidth","0");
iframe.setAttribute("marginHeight","0");
iframe.setAttribute("leftMargin","0");
iframe.setAttribute("topMargin","0");
iframe.setAttribute("width",aw);
iframe.setAttribute("height",ah);
iframe.setAttribute("allowtransparency","true");
iframe.className='mceEditorIframe';
if(fouraWSYG.settings["auto_resize"])iframe.setAttribute("scrolling","no");
if(fouraWSYG.isMSIE&&!fouraWSYG.isOpera)iframe.setAttribute("src",this.settings['default_document']);
iframe.style.width=aw;
iframe.style.height=ah;
if(fouraWSYG.settings.strict_loading_mode)iframe.style.marginBottom='-5px';
if(fouraWSYG.isMSIE&&!fouraWSYG.isOpera)replace_element.outerHTML=iframe.outerHTML;
else replace_element.parentNode.replaceChild(iframe,replace_element);
if(fouraWSYG.isMSIE&&!fouraWSYG.isOpera)return win.frames[id];
else return iframe;
},setupContent:function(editor_id){var inst=fouraWSYG.instances[editor_id];
var doc=inst.getDoc();
var head=doc.getElementsByTagName('head').item(0);
var content=inst.startContent;
if(fouraWSYG.settings.strict_loading_mode){content=content.replace(/&lt;/g,'<');
content=content.replace(/&gt;/g,'>');
content=content.replace(/&quot;/g,'"');
content=content.replace(/&amp;/g,'&');
}inst.switchSettings();
if(!fouraWSYG.isMSIE&&fouraWSYG.getParam("setupcontent_reload",false)&&doc.title!="blank_page"){try{doc.location.href=fouraWSYG.baseURL+"/blank.htm";
}catch(ex){}window.setTimeout("fouraWSYG.setupContent('"+editor_id+"');",1000);
return;
}if(!head){window.setTimeout("fouraWSYG.setupContent('"+editor_id+"');",10);
return;
}fouraWSYG.importCSS(inst.getDoc(),fouraWSYG.baseURL+"/themes/"+inst.settings['theme']+"/css/editor_content.css");
fouraWSYG.importCSS(inst.getDoc(),inst.settings['content_css']);
fouraWSYG.dispatchCallback(inst,'init_instance_callback','initInstance',inst);
if(fouraWSYG.getParam('custom_undo_redo_keyboard_shortcuts')){inst.addShortcut('ctrl','z','lang_undo_desc','Undo');
inst.addShortcut('ctrl','y','lang_redo_desc','Redo');
}if(fouraWSYG.isGecko){inst.addShortcut('ctrl','b','lang_bold_desc','Bold');
inst.addShortcut('ctrl','i','lang_italic_desc','Italic');
inst.addShortcut('ctrl','u','lang_underline_desc','Underline');
}if(fouraWSYG.getParam("convert_fonts_to_spans"))inst.getDoc().body.setAttribute('id','mceSpanFonts');
if(fouraWSYG.settings['nowrap'])doc.body.style.whiteSpace="nowrap";
doc.body.dir=this.settings['directionality'];
doc.editorId=editor_id;
if(!fouraWSYG.isMSIE)doc.documentElement.editorId=editor_id;
inst.setBaseHREF(fouraWSYG.settings['base_href']);
if(fouraWSYG.settings['convert_newlines_to_brs']){content=fouraWSYG.regexpReplace(content,"\r\n","<br />","gi");
content=fouraWSYG.regexpReplace(content,"\r","<br />","gi");
content=fouraWSYG.regexpReplace(content,"\n","<br />","gi");
}content=fouraWSYG.storeAwayURLs(content);
content=fouraWSYG._customCleanup(inst,"insert_to_editor",content);
if(fouraWSYG.isMSIE){window.setInterval('try{fouraWSYG.getCSSClasses(fouraWSYG.instances["'+editor_id+'"].getDoc(), "'+editor_id+'");}catch(e){}',500);
if(fouraWSYG.settings["force_br_newlines"])doc.styleSheets[0].addRule("p","margin: 0;");
var body=inst.getBody();
body.editorId=editor_id;
}content=fouraWSYG.cleanupHTMLCode(content);
if(!fouraWSYG.isMSIE){var contentElement=inst.getDoc().createElement("body");
var doc=inst.getDoc();
contentElement.innerHTML=content;
if(fouraWSYG.isGecko&&fouraWSYG.settings['remove_lt_gt'])content=content.replace(new RegExp('&lt;&gt;','g'),"");
if(fouraWSYG.settings['cleanup_on_startup'])fouraWSYG.setInnerHTML(inst.getBody(),fouraWSYG._cleanupHTML(inst,doc,this.settings,contentElement));
else{content=fouraWSYG.regexpReplace(content,"<strong","<b","gi");
content=fouraWSYG.regexpReplace(content,"<em(/?)>","<i$1>","gi");
content=fouraWSYG.regexpReplace(content,"<em ","<i ","gi");
content=fouraWSYG.regexpReplace(content,"</strong>","</b>","gi");
content=fouraWSYG.regexpReplace(content,"</em>","</i>","gi");
fouraWSYG.setInnerHTML(inst.getBody(),content);
}fouraWSYG.convertAllRelativeURLs(inst.getBody());
}else{if(fouraWSYG.settings['cleanup_on_startup']){fouraWSYG._setHTML(inst.getDoc(),content);
eval('try {fouraWSYG.setInnerHTML(inst.getBody(), fouraWSYG._cleanupHTML(inst, inst.contentDocument, this.settings, inst.getBody()));} catch(e) {}');
}else fouraWSYG._setHTML(inst.getDoc(),content);
}var parentElm=inst.targetDoc.getElementById(inst.editorId+'_parent');
inst.formElement=fouraWSYG.isGecko?parentElm.previousSibling:parentElm.nextSibling;
fouraWSYG.handleVisualAid(inst.getBody(),true,fouraWSYG.settings['visual'],inst);
fouraWSYG.dispatchCallback(inst,'setupcontent_callback','setupContent',editor_id,inst.getBody(),inst.getDoc());
if(!fouraWSYG.isMSIE)fouraWSYG.addEventHandlers(inst);
if(fouraWSYG.isMSIE){fouraWSYG.addEvent(inst.getBody(),"blur",FourA_WYSIWYG_Engine.prototype._eventPatch);
fouraWSYG.addEvent(inst.getBody(),"beforedeactivate",FourA_WYSIWYG_Engine.prototype._eventPatch);
if(!fouraWSYG.isOpera){fouraWSYG.addEvent(doc.body,"mousemove",FourA_WYSIWYG_Engine.prototype.onMouseMove);
fouraWSYG.addEvent(doc.body,"beforepaste",FourA_WYSIWYG_Engine.prototype._eventPatch);
fouraWSYG.addEvent(doc.body,"drop",FourA_WYSIWYG_Engine.prototype._eventPatch);
}}fouraWSYG.selectedInstance=inst;
fouraWSYG.selectedElement=inst.contentWindow.document.body;
fouraWSYG._customCleanup(inst,"insert_to_editor_dom",inst.getBody());
fouraWSYG._customCleanup(inst,"setup_content_dom",inst.getBody());
fouraWSYG._setEventsEnabled(inst.getBody(),false);
fouraWSYG.cleanupAnchors(inst.getDoc());
if(fouraWSYG.getParam("convert_fonts_to_spans"))fouraWSYG.convertSpansToFonts(inst.getDoc());
inst.startContent=fouraWSYG.trim(inst.getBody().innerHTML);
inst.undoRedo.add({content:inst.startContent});
if(fouraWSYG.isGecko){fouraWSYG.selectNodes(inst.getBody(),function(n){if(n.nodeType==3||n.nodeType==8){n.nodeValue=n.nodeValue.replace(new RegExp('\\smce_src=\"[^\"]*\"','gi'),"");
n.nodeValue=n.nodeValue.replace(new RegExp('\\smce_href=\"[^\"]*\"','gi'),"");
}return false;
});
}fouraWSYG._removeInternal(inst.getBody());
fouraWSYG.selectedInstance=inst;
fouraWSYG.triggerNodeChange(false,true);
},storeAwayURLs:function(s){if(!s.match(/(mce_src|mce_href)/gi,s)){s=s.replace(new RegExp('src\\s*=\\s*\"([^ >\"]*)\"','gi'),'src="$1" mce_src="$1"');
s=s.replace(new RegExp('href\\s*=\\s*\"([^ >\"]*)\"','gi'),'href="$1" mce_href="$1"');
}return s;
},_removeInternal:function(n){if(fouraWSYG.isGecko){fouraWSYG.selectNodes(n,function(n){if(n.nodeType==3||n.nodeType==8){n.nodeValue=n.nodeValue.replace(new RegExp('\\smce_src=\"[^\"]*\"','gi'),"");
n.nodeValue=n.nodeValue.replace(new RegExp('\\smce_href=\"[^\"]*\"','gi'),"");
}return false;
});
}},removeFourAhtmlWYSIWYGFormElements:function(form_obj){if(typeof(form_obj)=="undefined"||form_obj==null)return;
if(form_obj.nodeName!="FORM"){if(form_obj.form)form_obj=form_obj.form;
else form_obj=fouraWSYG.getParentElement(form_obj,"form");
}if(form_obj==null)return;
for(var i=0;
i<form_obj.elements.length;
i++){var elementId=form_obj.elements[i].name?form_obj.elements[i].name:form_obj.elements[i].id;
if(elementId.indexOf('mce_editor_')==0)form_obj.elements[i].disabled=true;
}},handleEvent:function(e){var inst=fouraWSYG.selectedInstance;
if(typeof(fouraWSYG)=="undefined")return true;
if(fouraWSYG.executeCallback(fouraWSYG.selectedInstance,'handle_event_callback','handleEvent',e))return false;
switch(e.type){case"beforedeactivate":case"blur":if(fouraWSYG.selectedInstance)fouraWSYG.selectedInstance.execCommand('mceEndTyping');fouraWSYG.hideMenus();
return;
case"drop":case"beforepaste":if(fouraWSYG.selectedInstance)fouraWSYG.selectedInstance.setBaseHREF(null);
if(fouraWSYG.isMSIE&&!fouraWSYG.isOpera){var ife=fouraWSYG.selectedInstance.iframeElement;
if(ife.style.height.indexOf('%')!=-1){ife._oldHeight=ife.style.height;
ife.style.height=ife.clientHeight;
}}window.setTimeout("fouraWSYG.selectedInstance.setBaseHREF(fouraWSYG.settings['base_href']);fouraWSYG._resetIframeHeight();",1);
return;
case"submit":fouraWSYG.removeFourAhtmlWYSIWYGFormElements(fouraWSYG.isMSIE?window.event.srcElement:e.target);
fouraWSYG.triggerSave();
fouraWSYG.isNotDirty=true;
return;
case"reset":var formObj=fouraWSYG.isMSIE?window.event.srcElement:e.target;
for(var i=0;
i<document.forms.length;
i++){if(document.forms[i]==formObj)window.setTimeout('fouraWSYG.resetForm('+i+');',10);
}return;
case"keypress":if(inst&&inst.handleShortcut(e))return false;
if(e.target.editorId){fouraWSYG.selectedInstance=fouraWSYG.instances[e.target.editorId];
}else{if(e.target.ownerDocument.editorId)fouraWSYG.selectedInstance=fouraWSYG.instances[e.target.ownerDocument.editorId];
}if(fouraWSYG.selectedInstance)fouraWSYG.selectedInstance.switchSettings();
if(fouraWSYG.isGecko&&fouraWSYG.settings['force_p_newlines']&&e.keyCode==13&&!e.shiftKey){if(FourA_WYSIWYG_ForceParagraphs._insertPara(fouraWSYG.selectedInstance,e)){fouraWSYG.execCommand("mceAddUndoLevel");
fouraWSYG.cancelEvent(e);
return false;
}}if(fouraWSYG.isGecko&&fouraWSYG.settings['force_p_newlines']&&(e.keyCode==8||e.keyCode==46)&&!e.shiftKey){if(FourA_WYSIWYG_ForceParagraphs._handleBackSpace(fouraWSYG.selectedInstance,e.type)){fouraWSYG.execCommand("mceAddUndoLevel");
fouraWSYG.cancelEvent(e);
return false;
}}if(fouraWSYG.isMSIE&&fouraWSYG.settings['force_br_newlines']&&e.keyCode==13){if(e.target.editorId)fouraWSYG.selectedInstance=fouraWSYG.instances[e.target.editorId];
if(fouraWSYG.selectedInstance){var sel=fouraWSYG.selectedInstance.getDoc().selection;
var rng=sel.createRange();
if(fouraWSYG.getParentElement(rng.parentElement(),"li")!=null)return false;
e.returnValue=false;
e.cancelBubble=true;
rng.pasteHTML("<br />");
rng.collapse(false);
rng.select();
fouraWSYG.execCommand("mceAddUndoLevel");
fouraWSYG.triggerNodeChange(false);
return false;
}}if(e.keyCode==8||e.keyCode==46){fouraWSYG.selectedElement=e.target;
fouraWSYG.linkElement=fouraWSYG.getParentElement(e.target,"a");
fouraWSYG.imgElement=fouraWSYG.getParentElement(e.target,"img");
fouraWSYG.triggerNodeChange(false);
}return false;
break;
case"keyup":case"keydown":fouraWSYG.hideMenus();
fouraWSYG.hasMouseMoved=false;
if(inst&&inst.handleShortcut(e))return false;
if(e.target.editorId)fouraWSYG.selectedInstance=fouraWSYG.instances[e.target.editorId];
else return;
if(fouraWSYG.selectedInstance)fouraWSYG.selectedInstance.switchSettings();
var inst=fouraWSYG.selectedInstance;
if(fouraWSYG.isGecko&&fouraWSYG.settings['force_p_newlines']&&(e.keyCode==8||e.keyCode==46)&&!e.shiftKey){if(FourA_WYSIWYG_ForceParagraphs._handleBackSpace(fouraWSYG.selectedInstance,e.type)){fouraWSYG.execCommand("mceAddUndoLevel");
e.preventDefault();
return false;
}}fouraWSYG.selectedElement=null;
fouraWSYG.selectedNode=null;
var elm=fouraWSYG.selectedInstance.getFocusElement();
fouraWSYG.linkElement=fouraWSYG.getParentElement(elm,"a");
fouraWSYG.imgElement=fouraWSYG.getParentElement(elm,"img");
fouraWSYG.selectedElement=elm;
if(fouraWSYG.isGecko&&e.type=="keyup"&&e.keyCode==9)fouraWSYG.handleVisualAid(fouraWSYG.selectedInstance.getBody(),true,fouraWSYG.settings['visual'],fouraWSYG.selectedInstance);
if(fouraWSYG.isMSIE&&e.type=="keydown"&&e.keyCode==13)fouraWSYG.enterKeyElement=fouraWSYG.selectedInstance.getFocusElement();
if(fouraWSYG.isMSIE&&e.type=="keyup"&&e.keyCode==13){var elm=fouraWSYG.enterKeyElement;
if(elm){var re=new RegExp('^HR|IMG|BR$','g');
var dre=new RegExp('^H[1-6]$','g');
if(!elm.hasChildNodes()&&!re.test(elm.nodeName)){if(dre.test(elm.nodeName))elm.innerHTML="&nbsp;&nbsp;";
else elm.innerHTML="&nbsp;";
}}}var keys=fouraWSYG.posKeyCodes;
var posKey=false;
for(var i=0;
i<keys.length;
i++){if(keys[i]==e.keyCode){posKey=true;
break;
}}if(fouraWSYG.isMSIE&&fouraWSYG.settings['custom_undo_redo']){var keys=new Array(8,46);
for(var i=0;
i<keys.length;
i++){if(keys[i]==e.keyCode){if(e.type=="keyup")fouraWSYG.triggerNodeChange(false);
}}}if(e.keyCode==17)return true;
if(!posKey&&e.type=="keyup")fouraWSYG.execCommand("mceStartTyping");
if(e.type=="keydown"&&(posKey||e.ctrlKey)&&inst)inst.undoBookmark=inst.selection.getBookmark();
if(e.type=="keyup"&&(posKey||e.ctrlKey))fouraWSYG.execCommand("mceEndTyping");
if(posKey&&e.type=="keyup")fouraWSYG.triggerNodeChange(false);
if(fouraWSYG.isMSIE&&e.ctrlKey)window.setTimeout('fouraWSYG.triggerNodeChange(false);',1);
break;
case"mousedown":case"mouseup":case"click":case"focus":fouraWSYG.hideMenus();
if(fouraWSYG.selectedInstance){fouraWSYG.selectedInstance.switchSettings();
fouraWSYG.selectedInstance.isFocused=true;
}var targetBody=fouraWSYG.getParentElement(e.target,"body");
for(var instanceName in fouraWSYG.instances){if(!fouraWSYG.isInstance(fouraWSYG.instances[instanceName]))continue;
var inst=fouraWSYG.instances[instanceName];
inst.autoResetDesignMode();
if(inst.getBody()==targetBody){fouraWSYG.selectedInstance=inst;
fouraWSYG.selectedElement=e.target;
fouraWSYG.linkElement=fouraWSYG.getParentElement(fouraWSYG.selectedElement,"a");
fouraWSYG.imgElement=fouraWSYG.getParentElement(fouraWSYG.selectedElement,"img");
break;
}}if(!fouraWSYG.selectedInstance.undoRedo.undoLevels[0].bookmark)fouraWSYG.selectedInstance.undoRedo.undoLevels[0].bookmark=fouraWSYG.selectedInstance.selection.getBookmark();
if(fouraWSYG.isSafari){fouraWSYG.selectedInstance.lastSafariSelection=fouraWSYG.selectedInstance.selection.getBookmark();
fouraWSYG.selectedInstance.lastSafariSelectedElement=fouraWSYG.selectedElement;
var lnk=fouraWSYG.getParentElement(fouraWSYG.selectedElement,"a");
if(lnk&&e.type=="mousedown"){lnk.setAttribute("mce_real_href",lnk.getAttribute("href"));
lnk.setAttribute("href","javascript:void(0);");
}if(lnk&&e.type=="click"){window.setTimeout(function(){lnk.setAttribute("href",lnk.getAttribute("mce_real_href"));
lnk.removeAttribute("mce_real_href");
},10);
}}if(e.type!="focus")fouraWSYG.selectedNode=null;
fouraWSYG.triggerNodeChange(false);
fouraWSYG.execCommand("mceEndTyping");
if(e.type=="mouseup")fouraWSYG.execCommand("mceAddUndoLevel");
if(!fouraWSYG.selectedInstance&&e.target.editorId)fouraWSYG.selectedInstance=fouraWSYG.instances[e.target.editorId];
return false;
break;
}},getButtonHTML:function(id,lang,img,cmd,ui,val){var h='',m,x;
cmd='fouraWSYG.execInstanceCommand(\'{$editor_id}\',\''+cmd+'\'';
if(typeof(ui)!="undefined"&&ui!=null)cmd+=','+ui;
if(typeof(val)!="undefined"&&val!=null)cmd+=",'"+val+"'";
cmd+=');';
if(fouraWSYG.getParam('button_tile_map')&&(!fouraWSYG.isMSIE||fouraWSYG.isOpera)&&(m=this.buttonMap[id])!=null&&(fouraWSYG.getParam("language")=="en"||img.indexOf('$lang')==-1)){x=0-(m*20)==0?'0':0-(m*20);
h+='<a id="{$editor_id}_'+id+'" href="javascript:'+cmd+'" onclick="'+cmd+'return false;" onmousedown="return false;" class="mceTiledButton mceButtonNormal" target="_self">';
h+='<img src="{$themeurl}/images/spacer.gif" style="background-position: '+x+'px 0" title="{$'+lang+'}" />';
h+='</a>';
}else{h+='<a id="{$editor_id}_'+id+'" href="javascript:'+cmd+'" onclick="'+cmd+'return false;" onmousedown="return false;" class="mceButtonNormal" target="_self">';
h+='<img src="'+img+'" title="{$'+lang+'}" />';
h+='</a>';
}return h;
},addButtonMap:function(m){var i,a=m.replace(/\s+/,'').split(',');
for(i=0;
i<a.length;
i++)this.buttonMap[a[i]]=i;
},submitPatch:function(){fouraWSYG.removeFourAhtmlWYSIWYGFormElements(this);
fouraWSYG.triggerSave();
this.mceOldSubmit();
fouraWSYG.isNotDirty=true;},onLoad:function(){if(fouraWSYG.settings.strict_loading_mode&&this.loadingIndex!=-1){window.setTimeout('fouraWSYG.onLoad();',1);
return;
}if(fouraWSYG.isMSIE&&!fouraWSYG.isOpera&&window.event.type=="readystatechange"&&document.readyState!="complete")return true;
if(fouraWSYG.isLoaded)return true;
fouraWSYG.isLoaded=true;
fouraWSYG.dispatchCallback(null,'onpageload','onPageLoad');
for(var c=0;
c<fouraWSYG.configs.length;
c++){fouraWSYG.settings=fouraWSYG.configs[c];
var selector=fouraWSYG.getParam("editor_selector");
var deselector=fouraWSYG.getParam("editor_deselector");
var elementRefAr=new Array();
if(document.forms&&fouraWSYG.settings['add_form_submit_trigger']&&!fouraWSYG.submitTriggers){for(var i=0;
i<document.forms.length;
i++){var form=document.forms[i];
fouraWSYG.addEvent(form,"submit",FourA_WYSIWYG_Engine.prototype.handleEvent);
fouraWSYG.addEvent(form,"reset",FourA_WYSIWYG_Engine.prototype.handleEvent);
fouraWSYG.submitTriggers=true;
if(fouraWSYG.settings['submit_patch']){try{form.mceOldSubmit=form.submit;
form.submit=FourA_WYSIWYG_Engine.prototype.submitPatch;
}catch(e){}}}}var mode=fouraWSYG.settings['mode'];
switch(mode){case"exact":var elements=fouraWSYG.getParam('elements','',true,',');
for(var i=0;
i<elements.length;
i++){var element=fouraWSYG._getElementById(elements[i]);
var trigger=element?element.getAttribute(fouraWSYG.settings['textarea_trigger']):"";
if(fouraWSYG.getAttrib(element,"class").indexOf(deselector)!=-1)continue;
if(trigger=="false")continue;
if((fouraWSYG.settings['ask']||fouraWSYG.settings['convert_on_click'])&&element){elementRefAr[elementRefAr.length]=element;
continue;
}if(element)fouraWSYG.addMCEControl(element,elements[i]);
else if(fouraWSYG.settings['debug'])alert("Error: Could not find element by id or name: "+elements[i]);
}break;
case"specific_textareas":case"textareas":var nodeList=document.getElementsByTagName("textarea");
for(var i=0;
i<nodeList.length;
i++){var elm=nodeList.item(i);
var trigger=elm.getAttribute(fouraWSYG.settings['textarea_trigger']);
if(selector!=''&&fouraWSYG.getAttrib(elm,"class").indexOf(selector)==-1)continue;
if(selector!='')trigger=selector!=""?"true":"";
if(fouraWSYG.getAttrib(elm,"class").indexOf(deselector)!=-1)continue;
if((mode=="specific_textareas"&&trigger=="true")||(mode=="textareas"&&trigger!="false"))elementRefAr[elementRefAr.length]=elm;
}break;
}for(var i=0;
i<elementRefAr.length;
i++){var element=elementRefAr[i];
var elementId=element.name?element.name:element.id;
if(fouraWSYG.settings['ask']||fouraWSYG.settings['convert_on_click']){if(fouraWSYG.isGecko){var settings=fouraWSYG.settings;
fouraWSYG.addEvent(element,"focus",function(e){window.setTimeout(function(){FourA_WYSIWYG_Engine.prototype.confirmAdd(e,settings);
},10);
});
if(element.nodeName!="TEXTAREA"&&element.nodeName!="INPUT")fouraWSYG.addEvent(element,"click",function(e){window.setTimeout(function(){FourA_WYSIWYG_Engine.prototype.confirmAdd(e,settings);
},10);
});
}else{var settings=fouraWSYG.settings;
fouraWSYG.addEvent(element,"focus",function(){FourA_WYSIWYG_Engine.prototype.confirmAdd(null,settings);
});
fouraWSYG.addEvent(element,"click",function(){FourA_WYSIWYG_Engine.prototype.confirmAdd(null,settings);
});
}}else fouraWSYG.addMCEControl(element,elementId);
}if(fouraWSYG.settings['auto_focus']){window.setTimeout(function(){var inst=fouraWSYG.getInstanceById(fouraWSYG.settings['auto_focus']);
inst.selection.selectNode(inst.getBody(),true,true);
inst.contentWindow.focus();
},10);
}fouraWSYG.dispatchCallback(null,'oninit','onInit');
}},isInstance:function(o){return o!=null&&typeof(o)=="object"&&o.isFourA_WYSIWYG_Control;
},getParam:function(name,default_value,strip_whitespace,split_chr){var value=(typeof(this.settings[name])=="undefined")?default_value:this.settings[name];
if(value=="true"||value=="false")return(value=="true");
if(strip_whitespace)value=fouraWSYG.regexpReplace(value,"[ \t\r\n]","");
if(typeof(split_chr)!="undefined"&&split_chr!=null){value=value.split(split_chr);
var outArray=new Array();
for(var i=0;
i<value.length;
i++){if(value[i]&&value[i]!="")outArray[outArray.length]=value[i];
}value=outArray;
}return value;
},getLang:function(name,default_value,parse_entities,va){var v=(typeof(fouraWSYGLang[name])=="undefined")?default_value:fouraWSYGLang[name],n;
if(parse_entities)v=fouraWSYG.entityDecode(v);
if(va){for(n in va)v=this.replaceVar(v,n,va[n]);
}return v;
},entityDecode:function(s){var e=document.createElement("div");
e.innerHTML=s;
return e.innerHTML;
},addToLang:function(prefix,ar){for(var key in ar){if(typeof(ar[key])=='function')continue;
fouraWSYGLang[(key.indexOf('lang_')==-1?'lang_':'')+(prefix!=''?(prefix+"_"):'')+key]=ar[key];
}this.loadNextScript();
},triggerNodeChange:function(focus,setup_content){if(fouraWSYG.selectedInstance){var inst=fouraWSYG.selectedInstance;
var editorId=inst.editorId;
var elm=(typeof(setup_content)!="undefined"&&setup_content)?fouraWSYG.selectedElement:inst.getFocusElement();
var undoIndex=-1;
var undoLevels=-1;
var anySelection=false;
var selectedText=inst.selection.getSelectedText();
if(setup_content&&fouraWSYG.isGecko&&inst.isHidden())elm=inst.getBody();
inst.switchSettings();
if(fouraWSYG.settings["auto_resize"]){var doc=inst.getDoc();
inst.iframeElement.style.width=doc.body.offsetWidth+"px";
inst.iframeElement.style.height=doc.body.offsetHeight+"px";
}if(fouraWSYG.selectedElement)anySelection=(fouraWSYG.selectedElement.nodeName.toLowerCase()=="img")||(selectedText&&selectedText.length>0);
if(fouraWSYG.settings['custom_undo_redo']){undoIndex=inst.undoRedo.undoIndex;
undoLevels=inst.undoRedo.undoLevels.length;
}fouraWSYG.dispatchCallback(inst,'handle_node_change_callback','handleNodeChange',editorId,elm,undoIndex,undoLevels,inst.visualAid,anySelection,setup_content);
}if(this.selectedInstance&&(typeof(focus)=="undefined"||focus))this.selectedInstance.contentWindow.focus();
},_customCleanup:function(inst,type,content){var pl,po,i;
var customCleanup=fouraWSYG.settings['cleanup_callback'];
if(customCleanup!=""&&eval("typeof("+customCleanup+")")!="undefined")content=eval(customCleanup+"(type, content, inst);");
pl=inst.plugins;
for(i=0;
i<pl.length;
i++){po=fouraWSYG.plugins[pl[i]];
if(po&&po.cleanup)content=po.cleanup(type,content,inst);
}return content;
},setContent:function(h){if(fouraWSYG.selectedInstance){fouraWSYG.selectedInstance.execCommand('mceSetContent',false,h);
fouraWSYG.selectedInstance.repaint();
}},importThemeLanguagePack:function(name){if(typeof(name)=="undefined")name=fouraWSYG.settings['theme'];
fouraWSYG.loadScript(fouraWSYG.baseURL+'/themes/'+name+'/langs/'+fouraWSYG.settings['language']+'.js');
},importPluginLanguagePack:function(name,valid_languages){var lang="en",b=fouraWSYG.baseURL+'/plugins/'+name;
valid_languages=valid_languages.split(',');
for(var i=0;
i<valid_languages.length;
i++){if(fouraWSYG.settings['language']==valid_languages[i])lang=fouraWSYG.settings['language'];
}if(this.plugins[name])b=this.plugins[name].baseURL;
fouraWSYG.loadScript(b+'/langs/'+lang+'.js');
},applyTemplate:function(h,as){var i,s,ar=h.match(new RegExp('\\{\\$[a-z0-9_]+\\}','gi'));
if(ar&&ar.length>0){for(i=ar.length-1;
i>=0;
i--){s=ar[i].substring(2,ar[i].length-1);
if(s.indexOf('lang_')==0&&fouraWSYGLang[s])h=fouraWSYG.replaceVar(h,s,fouraWSYGLang[s]);
else if(as&&as[s])h=fouraWSYG.replaceVar(h,s,as[s]);
else if(fouraWSYG.settings[s])h=fouraWSYG.replaceVar(h,s,fouraWSYG.settings[s]);
}}h=fouraWSYG.replaceVar(h,"themeurl",fouraWSYG.themeURL);
return h;
},replaceVar:function(h,r,v){return h.replace(new RegExp('{\\\$'+r+'}','g'),v);
},openWindow:function(template,args){var html,width,height,x,y,resizable,scrollbars,url;
args['mce_template_file']=template['file'];
args['mce_width']=template['width'];
args['mce_height']=template['height'];
fouraWSYG.windowArgs=args;
html=template['html'];
if(!(width=parseInt(template['width'])))width=320;
if(!(height=parseInt(template['height'])))height=200;
if(fouraWSYG.isMSIE)height+=40;
else height+=20;
x=parseInt(screen.width/2.0)-(width/2.0);
y=parseInt(screen.height/2.0)-(height/2.0);
resizable=(args&&args['resizable'])?args['resizable']:"no";
scrollbars=(args&&args['scrollbars'])?args['scrollbars']:"no";
if(template['file'].charAt(0)!='/'&&template['file'].indexOf('://')==-1)url=fouraWSYG.baseURL+"/themes/"+fouraWSYG.getParam("theme")+"/"+template['file'];
else url=template['file'];
for(var name in args){if(typeof(args[name])=='function')continue;
url=fouraWSYG.replaceVar(url,name,escape(args[name]));
}if(html){html=fouraWSYG.replaceVar(html,"css",this.settings['popups_css']);
html=fouraWSYG.applyTemplate(html,args);
var win=window.open("","mcePopup"+new Date().getTime(),"top="+y+",left="+x+",scrollbars="+scrollbars+",dialog=yes,minimizable="+resizable+",modal=yes,width="+width+",height="+height+",resizable="+resizable);
if(win==null){alert(fouraWSYGLang['lang_popup_blocked']);
return;
}win.document.write(html);
win.document.close();
win.resizeTo(width,height);
win.focus();
}else{if((fouraWSYG.isMSIE&&!fouraWSYG.isOpera)&&resizable!='yes'&&fouraWSYG.settings["dialog_type"]=="modal"){height+=10;
var features="resizable:"+resizable+";scroll:"+scrollbars+";status:yes;center:yes;help:no;dialogWidth:"+width+"px;dialogHeight:"+height+"px;";
window.showModalDialog(url,window,features);
}else{var modal=(resizable=="yes")?"no":"yes";
if(fouraWSYG.isGecko&&fouraWSYG.isMac)modal="no";
if(template['close_previous']!="no")try{fouraWSYG.lastWindow.close();
}catch(ex){}var win=window.open(url,"mcePopup"+new Date().getTime(),"top="+y+",left="+x+",scrollbars="+scrollbars+",dialog="+modal+",minimizable="+resizable+",modal="+modal+",width="+width+",height="+height+",resizable="+resizable);
if(win==null){alert(fouraWSYGLang['lang_popup_blocked']);
return;
}if(template['close_previous']!="no")fouraWSYG.lastWindow=win;
eval('try { win.resizeTo(width, height);} catch(e) { }');
if(fouraWSYG.isGecko){if(win.document.defaultView.statusbar.visible)win.resizeBy(0,fouraWSYG.isMac?10:24);
}win.focus();
}}},closeWindow:function(win){win.close();
},getVisualAidClass:function(class_name,state){var aidClass=fouraWSYG.settings['visual_table_class'];
if(typeof(state)=="undefined")state=fouraWSYG.settings['visual'];
var classNames=new Array();
var ar=class_name.split(' ');
for(var i=0;
i<ar.length;
i++){if(ar[i]==aidClass)ar[i]="";
if(ar[i]!="")classNames[classNames.length]=ar[i];
}if(state)classNames[classNames.length]=aidClass;
var className="";
for(var i=0;
i<classNames.length;
i++){if(i>0)className+=" ";
className+=classNames[i];
}return className;
},handleVisualAid:function(el,deep,state,inst,skip_dispatch){if(!el)return;
if(!skip_dispatch)fouraWSYG.dispatchCallback(inst,'handle_visual_aid_callback','handleVisualAid',el,deep,state,inst);
var tableElement=null;
switch(el.nodeName){case"TABLE":var oldW=el.style.width;
var oldH=el.style.height;
var bo=fouraWSYG.getAttrib(el,"border");
bo=bo==""||bo=="0"?true:false;
fouraWSYG.setAttrib(el,"class",fouraWSYG.getVisualAidClass(fouraWSYG.getAttrib(el,"class"),state&&bo));
el.style.width=oldW;
el.style.height=oldH;
for(var y=0;
y<el.rows.length;
y++){for(var x=0;
x<el.rows[y].cells.length;
x++){var cn=fouraWSYG.getVisualAidClass(fouraWSYG.getAttrib(el.rows[y].cells[x],"class"),state&&bo);
fouraWSYG.setAttrib(el.rows[y].cells[x],"class",cn);
}}break;
case"A":var anchorName=fouraWSYG.getAttrib(el,"name");
if(anchorName!=''&&state){el.title=anchorName;
el.className='mceItemAnchor';
}else if(anchorName!=''&&!state)el.className='';
break;
}if(deep&&el.hasChildNodes()){for(var i=0;
i<el.childNodes.length;
i++)fouraWSYG.handleVisualAid(el.childNodes[i],deep,state,inst,true);
}},fixGeckoBaseHREFBug:function(m,e,h){var nl,i,a,n,xsrc,xhref,el;
if(fouraWSYG.isGecko){if(m==1){h=h.replace(/\ssrc=/gi," mce_tsrc=");
h=h.replace(/\shref=/gi," mce_thref=");
return h;
}else{el=new Array('a','img','select','area','iframe','base','input','script','embed','object','link');
for(a=0;
a<el.length;
a++){n=e.getElementsByTagName(el[a]);
for(i=0;
i<n.length;
i++){xsrc=fouraWSYG.getAttrib(n[i],"mce_tsrc");
xhref=fouraWSYG.getAttrib(n[i],"mce_thref");
if(xsrc!=""){try{n[i].src=fouraWSYG.convertRelativeToAbsoluteURL(fouraWSYG.settings['base_href'],xsrc);
}catch(e){}n[i].removeAttribute("mce_tsrc");
}if(xhref!=""){try{n[i].href=fouraWSYG.convertRelativeToAbsoluteURL(fouraWSYG.settings['base_href'],xhref);
}catch(e){}n[i].removeAttribute("mce_thref");
}}}el=fouraWSYG.selectNodes(e,function(n){if(n.nodeType==3||n.nodeType==8){n.nodeValue=n.nodeValue.replace(/\smce_tsrc=/gi,"src=");
n.nodeValue=n.nodeValue.replace(/\smce_thref=/gi," href=");
}return false;
});
}}return h;
},_setHTML:function(doc,html_content){html_content=fouraWSYG.cleanupHTMLCode(html_content);
try{fouraWSYG.setInnerHTML(doc.body,html_content);
}catch(e){if(this.isMSIE)doc.body.createTextRange().pasteHTML(html_content);
}if(fouraWSYG.isMSIE&&fouraWSYG.settings['fix_content_duplication']){var paras=doc.getElementsByTagName("P");
for(var i=0;
i<paras.length;
i++){var node=paras[i];
while((node=node.parentNode)!=null){if(node.nodeName=="P")node.outerHTML=node.innerHTML;
}}var html=doc.body.innerHTML;
fouraWSYG.setInnerHTML(doc.body,html);
}fouraWSYG.cleanupAnchors(doc);
if(fouraWSYG.getParam("convert_fonts_to_spans"))fouraWSYG.convertSpansToFonts(doc);
},getEditorId:function(form_element){var inst=this.getInstanceById(form_element);
if(!inst)return null;
return inst.editorId;
},getInstanceById:function(editor_id){var inst=this.instances[editor_id];
if(!inst){for(var n in fouraWSYG.instances){var instance=fouraWSYG.instances[n];
if(!fouraWSYG.isInstance(instance))continue;
if(instance.formTargetElementId==editor_id){inst=instance;
break;
}}}return inst;
},queryInstanceCommandValue:function(editor_id,command){var inst=fouraWSYG.getInstanceById(editor_id);
if(inst)return inst.queryCommandValue(command);
return false;
},queryInstanceCommandState:function(editor_id,command){var inst=fouraWSYG.getInstanceById(editor_id);
if(inst)return inst.queryCommandState(command);
return null;
},setWindowArg:function(n,v){this.windowArgs[n]=v;
},getWindowArg:function(n,d){return(typeof(this.windowArgs[n])=="undefined")?d:this.windowArgs[n];
},getCSSClasses:function(editor_id,doc){var output=new Array();
if(typeof(fouraWSYG.cssClasses)!="undefined")return fouraWSYG.cssClasses;
if(typeof(editor_id)=="undefined"&&typeof(doc)=="undefined"){var instance;
for(var instanceName in fouraWSYG.instances){instance=fouraWSYG.instances[instanceName];
if(!fouraWSYG.isInstance(instance))continue;
break;
}doc=instance.getDoc();
}if(typeof(doc)=="undefined"){var instance=fouraWSYG.getInstanceById(editor_id);
doc=instance.getDoc();
}if(doc){var styles=doc.styleSheets;
if(styles&&styles.length>0){for(var x=0;
x<styles.length;
x++){var csses=null;
eval("try {var csses = fouraWSYG.isMSIE ? doc.styleSheets("+x+").rules : styles["+x+"].cssRules;} catch(e) {}");
if(!csses)return new Array();
for(var i=0;
i<csses.length;
i++){var selectorText=csses[i].selectorText;
if(selectorText){var rules=selectorText.split(',');
for(var c=0;
c<rules.length;
c++){var rule=rules[c];
while(rule.indexOf(' ')==0)rule=rule.substring(1);
if(rule.indexOf(' ')!=-1||rule.indexOf(':')!=-1||rule.indexOf('mceItem')!=-1)continue;
if(rule.indexOf(fouraWSYG.settings['visual_table_class'])!=-1||rule.indexOf('mceEditable')!=-1||rule.indexOf('mceNonEditable')!=-1)continue;
if(rule.indexOf('.')!=-1){var cssClass=rule.substring(rule.indexOf('.')+1);
var addClass=true;
for(var p=0;
p<output.length&&addClass;
p++){if(output[p]==cssClass)addClass=false;
}if(addClass)output[output.length]=cssClass;
}}}}}}}if(output.length>0)fouraWSYG.cssClasses=output;
return output;
},regexpReplace:function(in_str,reg_exp,replace_str,opts){if(in_str==null)return in_str;
if(typeof(opts)=="undefined")opts='g';
var re=new RegExp(reg_exp,opts);
return in_str.replace(re,replace_str);
},trim:function(s){return s.replace(/^\s*|\s*$/g,"");
},cleanupEventStr:function(s){s=""+s;
s=s.replace('function anonymous()\n{\n','');
s=s.replace('\n}','');
s=s.replace(/^return true;/gi,'');
return s;
},getControlHTML:function(c){var i,l,n,o,v;
l=fouraWSYG.plugins;
for(n in l){o=l[n];
if(o.getControlHTML&&(v=o.getControlHTML(c))!='')return fouraWSYG.replaceVar(v,"pluginurl",o.baseURL);
}o=fouraWSYG.themes[fouraWSYG.settings['theme']];
if(o.getControlHTML&&(v=o.getControlHTML(c))!='')return v;
return'';
},evalFunc:function(f,idx,a){var s='(',i;
for(i=idx;
i<a.length;
i++){s+='a['+i+']';
if(i<a.length-1)s+=',';
}s+=');';
return eval("f"+s);
},dispatchCallback:function(i,p,n){return this.callFunc(i,p,n,0,this.dispatchCallback.arguments);
},executeCallback:function(i,p,n){return this.callFunc(i,p,n,1,this.executeCallback.arguments);
},execCommandCallback:function(i,p,n){return this.callFunc(i,p,n,2,this.execCommandCallback.arguments);
},callFunc:function(ins,p,n,m,a){var l,i,on,o,s,v;
s=m==2;
l=fouraWSYG.getParam(p,'');
if(l!=''&&(v=fouraWSYG.evalFunc(typeof(l)=="function"?l:eval(l),3,a))==s&&m>0)return true;
if(ins!=null){for(i=0,l=ins.plugins;
i<l.length;
i++){o=fouraWSYG.plugins[l[i]];
if(o[n]&&(v=fouraWSYG.evalFunc(o[n],3,a))==s&&m>0)return true;
}}l=fouraWSYG.themes;
for(on in l){o=l[on];
if(o[n]&&(v=fouraWSYG.evalFunc(o[n],3,a))==s&&m>0)return true;
}return false;
},xmlEncode:function(s){s=""+s;
s=s.replace(/&/g,'&amp;');
s=s.replace(new RegExp('"','g'),'&quot;');
s=s.replace(/\'/g,'&#39;');
s=s.replace(/</g,'&lt;');
s=s.replace(/>/g,'&gt;');
return s;
},extend:function(p,np){var o={};
o.parent=p;
for(n in p)o[n]=p[n];
for(n in np)o[n]=np[n];
return o;
},hideMenus:function(){var e=fouraWSYG.lastSelectedMenuBtn;
if(fouraWSYG.lastMenu){fouraWSYG.lastMenu.hide();
fouraWSYG.lastMenu=null;
}if(e){fouraWSYG.switchClass(e,fouraWSYG.lastMenuBtnClass);
fouraWSYG.lastSelectedMenuBtn=null;
}},explode:function(d,s){var ar=s.split(d),oar=new Array(),i;
for(i=0;
i<ar.length;
i++){if(ar[i]!="")oar[oar.length]=ar[i];
}return oar;
}};
var FourAhtmlWYSIWYG=FourA_WYSIWYG_Engine;
var fouraWSYG=new FourA_WYSIWYG_Engine();
var fouraWSYGLang={};
function FourA_WYSIWYG_Control(settings){var t,i,to,fu,p,x,fn,fu,pn,s=settings;
this.undoRedoLevel=true;
this.isFourA_WYSIWYG_Control=true;
this.settings=s;
this.settings['theme']=fouraWSYG.getParam("theme","default");
this.settings['width']=fouraWSYG.getParam("width",-1);
this.settings['height']=fouraWSYG.getParam("height",-1);
this.selection=new FourA_WYSIWYG_Selection(this);
this.undoRedo=new FourA_WYSIWYG_UndoRedo(this);
this.cleanup=new FourA_WYSIWYG_Cleanup();
this.shortcuts=new Array();
this.hasMouseMoved=false;
this.cleanup.init({valid_elements:s.valid_elements,extended_valid_elements:s.extended_valid_elements,entities:s.entities,entity_encoding:s.entity_encoding,debug:s.cleanup_debug,url_converter:'FourA_WYSIWYG_Cleanup.prototype._urlConverter',indent:s.apply_source_formatting,invalid_elements:s.invalid_elements,verify_html:s.verify_html,fix_content_duplication:s.fix_content_duplication});
t=this.settings['theme'];
if(!fouraWSYG.hasTheme(t)){fn=fouraWSYG.callbacks;
to={};
for(i=0;
i<fn.length;
i++){if((fu=window['FourA_WYSIWYG_'+t+"_"+fn[i]]))to[fn[i]]=fu;
}fouraWSYG.addTheme(t,to);
}this.plugins=new Array();
p=fouraWSYG.getParam('plugins','',true,',');
if(p.length>0){for(i=0;
i<p.length;
i++){pn=p[i];
if(pn.charAt(0)=='-')pn=pn.substring(1);
if(!fouraWSYG.hasPlugin(pn)){fn=fouraWSYG.callbacks;
to={};
for(x=0;
x<fn.length;
x++){if((fu=window['FourA_WYSIWYG_'+pn+"_"+fn[x]]))to[fn[x]]=fu;
}fouraWSYG.addPlugin(pn,to);
}this.plugins[this.plugins.length]=pn;
}}};
FourA_WYSIWYG_Control.prototype={hasPlugin:function(n){var i;
for(i=0;
i<this.plugins.length;
i++){if(this.plugins[i]==n)return true;
}return false;
},addPlugin:function(n,p){if(!this.hasPlugin(n)){fouraWSYG.addPlugin(n,p);
this.plugins[this.plugins.length]=n;
}},repaint:function(){if(fouraWSYG.isMSIE&&!fouraWSYG.isOpera)return;
try{var s=this.selection;
var b=s.getBookmark(true);
this.getBody().style.display='none';
this.getDoc().execCommand('selectall',false,null);
this.getSel().collapseToStart();
this.getBody().style.display='block';
s.moveToBookmark(b);
}catch(ex){}},switchSettings:function(){if(fouraWSYG.configs.length>1&&fouraWSYG.currentConfig!=this.settings['index']){fouraWSYG.settings=this.settings;
fouraWSYG.currentConfig=this.settings['index'];
}},getBody:function(){return this.getDoc().body;
},getDoc:function(){return this.contentWindow.document;
},getWin:function(){return this.contentWindow;
},addShortcut:function(m,k,d,cmd,ui,va){var n=typeof(k)=="number",ie=fouraWSYG.isMSIE,c,sc,i;
var scl=this.shortcuts;
if(!fouraWSYG.getParam('custom_shortcuts'))return false;
m=m.toLowerCase();
k=ie&&!n?k.toUpperCase():k;
c=n?null:k.charCodeAt(0);
d=d&&d.indexOf('lang_')==0?fouraWSYG.getLang(d):d;
sc={alt:m.indexOf('alt')!=-1,ctrl:m.indexOf('ctrl')!=-1,shift:m.indexOf('shift')!=-1,charCode:c,keyCode:n?k:(ie?c:null),desc:d,cmd:cmd,ui:ui,val:va};
for(i=0;
i<scl.length;
i++){if(sc.alt==scl[i].alt&&sc.ctrl==scl[i].ctrl&&sc.shift==scl[i].shift&&sc.charCode==scl[i].charCode&&sc.keyCode==scl[i].keyCode){return false;
}}scl[scl.length]=sc;
return true;
},handleShortcut:function(e){var i,s=this.shortcuts,o;
for(i=0;
i<s.length;
i++){o=s[i];
if(o.alt==e.altKey&&o.ctrl==e.ctrlKey&&(o.keyCode==e.keyCode||o.charCode==e.charCode)){if(o.cmd&&(e.type=="keydown"||(e.type=="keypress"&&!fouraWSYG.isOpera)))fouraWSYG.execCommand(o.cmd,o.ui,o.val);
fouraWSYG.cancelEvent(e);
return true;
}}return false;
},autoResetDesignMode:function(){if(!fouraWSYG.isMSIE&&this.isHidden()&&fouraWSYG.getParam('auto_reset_designmode'))eval('try{ this.getDoc().designMode = "On"; } catch(e) {}');
},isHidden:function(){if(fouraWSYG.isMSIE)return false;
var s=this.getSel();
return(!s||!s.rangeCount||s.rangeCount==0);
},isDirty:function(){return this.startContent!=fouraWSYG.trim(this.getBody().innerHTML)&&!fouraWSYG.isNotDirty;
},_mergeElements:function(scmd,pa,ch,override){if(scmd=="removeformat"){pa.className="";
pa.style.cssText="";
ch.className="";
ch.style.cssText="";
return;
}var st=fouraWSYG.parseStyle(fouraWSYG.getAttrib(pa,"style"));
var stc=fouraWSYG.parseStyle(fouraWSYG.getAttrib(ch,"style"));
var className=fouraWSYG.getAttrib(pa,"class");
className+=" "+fouraWSYG.getAttrib(ch,"class");
if(override){for(var n in st){if(typeof(st[n])=='function')continue;
stc[n]=st[n];
}}else{for(var n in stc){if(typeof(stc[n])=='function')continue;
st[n]=stc[n];
}}fouraWSYG.setAttrib(pa,"style",fouraWSYG.serializeStyle(st));
fouraWSYG.setAttrib(pa,"class",fouraWSYG.trim(className));
ch.className="";
ch.style.cssText="";
ch.removeAttribute("class");
ch.removeAttribute("style");
},_setUseCSS:function(b){var d=this.getDoc();
try{d.execCommand("useCSS",false,!b);
}catch(ex){}try{d.execCommand("styleWithCSS",false,b);
}catch(ex){}if(!fouraWSYG.getParam("table_inline_editing"))try{d.execCommand('enableInlineTableEditing',false,"false");
}catch(ex){}if(!fouraWSYG.getParam("object_resizing"))try{d.execCommand('enableObjectResizing',false,"false");
}catch(ex){}},execCommand:function(command,user_interface,value){var doc=this.getDoc();
var win=this.getWin();
var focusElm=this.getFocusElement();
if(!new RegExp('mceStartTyping|mceEndTyping|mceBeginUndoLevel|mceEndUndoLevel|mceAddUndoLevel','gi').test(command))this.undoBookmark=null;
if(this.lastSafariSelection&&!new RegExp('mceStartTyping|mceEndTyping|mceBeginUndoLevel|mceEndUndoLevel|mceAddUndoLevel','gi').test(command)){this.selection.moveToBookmark(this.lastSafariSelection);
fouraWSYG.selectedElement=this.lastSafariSelectedElement;
}if(!fouraWSYG.isMSIE&&!this.useCSS){this._setUseCSS(false);
this.useCSS=true;
}this.contentDocument=doc;
if(fouraWSYG.execCommandCallback(this,'execcommand_callback','execCommand',this.editorId,this.getBody(),command,user_interface,value))return;
if(focusElm&&focusElm.nodeName=="IMG"){var align=focusElm.getAttribute('align');
var img=command=="JustifyCenter"?focusElm.cloneNode(false):focusElm;
switch(command){case"JustifyLeft":if(align=='left')img.removeAttribute('align');
else img.setAttribute('align','left');
var div=focusElm.parentNode;
if(div&&div.nodeName=="DIV"&&div.childNodes.length==1&&div.parentNode)div.parentNode.replaceChild(img,div);
this.selection.selectNode(img);
this.repaint();
fouraWSYG.triggerNodeChange();
return;
case"JustifyCenter":img.removeAttribute('align');
var div=fouraWSYG.getParentElement(focusElm,"div");
if(div&&div.style.textAlign=="center"){if(div.nodeName=="DIV"&&div.childNodes.length==1&&div.parentNode)div.parentNode.replaceChild(img,div);
}else{var div=this.getDoc().createElement("div");
div.style.textAlign='center';
div.appendChild(img);
focusElm.parentNode.replaceChild(div,focusElm);
}this.selection.selectNode(img);
this.repaint();
fouraWSYG.triggerNodeChange();
return;
case"JustifyRight":if(align=='right')img.removeAttribute('align');
else img.setAttribute('align','right');
var div=focusElm.parentNode;
if(div&&div.nodeName=="DIV"&&div.childNodes.length==1&&div.parentNode)div.parentNode.replaceChild(img,div);
this.selection.selectNode(img);
this.repaint();
fouraWSYG.triggerNodeChange();
return;
}}if(fouraWSYG.settings['force_br_newlines']){var alignValue="";
if(doc.selection.type!="Control"){switch(command){case"JustifyLeft":alignValue="left";
break;
case"JustifyCenter":alignValue="center";
break;
case"JustifyFull":alignValue="justify";
break;
case"JustifyRight":alignValue="right";
break;
}if(alignValue!=""){var rng=doc.selection.createRange();
if((divElm=fouraWSYG.getParentElement(rng.parentElement(),"div"))!=null)divElm.setAttribute("align",alignValue);
else if(rng.pasteHTML&&rng.htmlText.length>0)rng.pasteHTML('<div align="'+alignValue+'">'+rng.htmlText+"</div>");
fouraWSYG.triggerNodeChange();
return;
}}}switch(command){case"mceRepaint":this.repaint();
return true;
case"InsertUnorderedList":case"InsertOrderedList":var tag=(command=="InsertUnorderedList")?"ul":"ol";
if(fouraWSYG.isSafari)this.execCommand("mceInsertContent",false,"<"+tag+"><li>&nbsp;</li><"+tag+">");
else this.getDoc().execCommand(command,user_interface,value);
fouraWSYG.triggerNodeChange();
break;
case"Strikethrough":if(fouraWSYG.isSafari)this.execCommand("mceInsertContent",false,"<strike>"+this.selection.getSelectedHTML()+"</strike>");
else this.getDoc().execCommand(command,user_interface,value);
fouraWSYG.triggerNodeChange();
break;
case"mceSelectNode":this.selection.selectNode(value);
fouraWSYG.triggerNodeChange();
fouraWSYG.selectedNode=value;
break;
case"FormatBlock":if(value==null||value==""){var elm=fouraWSYG.getParentElement(this.getFocusElement(),"p,div,h1,h2,h3,h4,h5,h6,pre,address,blockquote,dt,dl,dd,samp");
if(elm)this.execCommand("mceRemoveNode",false,elm);
}else{if(fouraWSYG.isGecko&&new RegExp('<(div|blockquote|code|dt|dd|dl|samp)>','gi').test(value))value=value.replace(/[^a-z]/gi,'');
if(fouraWSYG.isMSIE&&new RegExp('blockquote|code|samp','gi').test(value)){var b=this.selection.getBookmark();
this.getDoc().execCommand("FormatBlock",false,'<p>');
fouraWSYG.renameElement(fouraWSYG.getParentBlockElement(this.getFocusElement()),value);
this.selection.moveToBookmark(b);
}else this.getDoc().execCommand("FormatBlock",false,value);
}fouraWSYG.triggerNodeChange();
break;
case"mceRemoveNode":if(!value)value=fouraWSYG.getParentElement(this.getFocusElement());
if(fouraWSYG.isMSIE){value.outerHTML=value.innerHTML;
}else{var rng=value.ownerDocument.createRange();
rng.setStartBefore(value);
rng.setEndAfter(value);
rng.deleteContents();
rng.insertNode(rng.createContextualFragment(value.innerHTML));
}fouraWSYG.triggerNodeChange();
break;
case"mceSelectNodeDepth":var parentNode=this.getFocusElement();
for(var i=0;
parentNode;
i++){if(parentNode.nodeName.toLowerCase()=="body")break;
if(parentNode.nodeName.toLowerCase()=="#text"){i--;
parentNode=parentNode.parentNode;
continue;
}if(i==value){this.selection.selectNode(parentNode,false);
fouraWSYG.triggerNodeChange();
fouraWSYG.selectedNode=parentNode;
return;
}parentNode=parentNode.parentNode;
}break;
case"SetStyleInfo":var rng=this.getRng();
var sel=this.getSel();
var scmd=value['command'];
var sname=value['name'];
var svalue=value['value']==null?'':value['value'];
var wrapper=value['wrapper']?value['wrapper']:"span";
var parentElm=null;
var invalidRe=new RegExp("^BODY|HTML$","g");
var invalidParentsRe=fouraWSYG.settings['merge_styles_invalid_parents']!=''?new RegExp(fouraWSYG.settings['merge_styles_invalid_parents'],"gi"):null;
if(fouraWSYG.isMSIE){if(rng.item)parentElm=rng.item(0);
else{var pelm=rng.parentElement();
var prng=doc.selection.createRange();
prng.moveToElementText(pelm);
if(rng.htmlText==prng.htmlText||rng.boundingWidth==0){if(invalidParentsRe==null||!invalidParentsRe.test(pelm.nodeName))parentElm=pelm;
}}}else{var felm=this.getFocusElement();
if(sel.isCollapsed||(new RegExp('td|tr|tbody|table','gi').test(felm.nodeName)&&sel.anchorNode==felm.parentNode))parentElm=felm;
}if(parentElm&&!invalidRe.test(parentElm.nodeName)){if(scmd=="setstyle")fouraWSYG.setStyleAttrib(parentElm,sname,svalue);
if(scmd=="setattrib")fouraWSYG.setAttrib(parentElm,sname,svalue);
if(scmd=="removeformat"){parentElm.style.cssText='';
fouraWSYG.setAttrib(parentElm,'class','');
}var ch=fouraWSYG.getNodeTree(parentElm,new Array(),1);
for(var z=0;
z<ch.length;
z++){if(ch[z]==parentElm)continue;
if(scmd=="setstyle")fouraWSYG.setStyleAttrib(ch[z],sname,'');
if(scmd=="setattrib")fouraWSYG.setAttrib(ch[z],sname,'');
if(scmd=="removeformat"){ch[z].style.cssText='';
fouraWSYG.setAttrib(ch[z],'class','');
}}}else{this._setUseCSS(false);
doc.execCommand("FontName",false,"#mce_temp_font#");
var elementArray=fouraWSYG.getElementsByAttributeValue(this.getBody(),"font","face","#mce_temp_font#");
for(var x=0;
x<elementArray.length;
x++){elm=elementArray[x];
if(elm){var spanElm=doc.createElement(wrapper);
if(scmd=="setstyle")fouraWSYG.setStyleAttrib(spanElm,sname,svalue);
if(scmd=="setattrib")fouraWSYG.setAttrib(spanElm,sname,svalue);
if(scmd=="removeformat"){spanElm.style.cssText='';
fouraWSYG.setAttrib(spanElm,'class','');
}if(elm.hasChildNodes()){for(var i=0;
i<elm.childNodes.length;
i++)spanElm.appendChild(elm.childNodes[i].cloneNode(true));
}spanElm.setAttribute("mce_new","true");
elm.parentNode.replaceChild(spanElm,elm);
var ch=fouraWSYG.getNodeTree(spanElm,new Array(),1);
for(var z=0;
z<ch.length;
z++){if(ch[z]==spanElm)continue;
if(scmd=="setstyle")fouraWSYG.setStyleAttrib(ch[z],sname,'');
if(scmd=="setattrib")fouraWSYG.setAttrib(ch[z],sname,'');
if(scmd=="removeformat"){ch[z].style.cssText='';
fouraWSYG.setAttrib(ch[z],'class','');
}}}}}var nodes=doc.getElementsByTagName(wrapper);
for(var i=nodes.length-1;
i>=0;
i--){var elm=nodes[i];
var isNew=fouraWSYG.getAttrib(elm,"mce_new")=="true";
elm.removeAttribute("mce_new");
if(elm.childNodes&&elm.childNodes.length==1&&elm.childNodes[0].nodeType==1){this._mergeElements(scmd,elm,elm.childNodes[0],isNew);
continue;
}if(elm.parentNode.childNodes.length==1&&!invalidRe.test(elm.nodeName)&&!invalidRe.test(elm.parentNode.nodeName)){if(invalidParentsRe==null||!invalidParentsRe.test(elm.parentNode.nodeName))this._mergeElements(scmd,elm.parentNode,elm,false);
}}var nodes=doc.getElementsByTagName(wrapper);
for(var i=nodes.length-1;
i>=0;
i--){var elm=nodes[i];
var isEmpty=true;
var tmp=doc.createElement("body");
tmp.appendChild(elm.cloneNode(false));
tmp.innerHTML=tmp.innerHTML.replace(new RegExp('style=""|class=""','gi'),'');
if(new RegExp('<span>','gi').test(tmp.innerHTML)){for(var x=0;
x<elm.childNodes.length;
x++){if(elm.parentNode!=null)elm.parentNode.insertBefore(elm.childNodes[x].cloneNode(true),elm);
}elm.parentNode.removeChild(elm);
}}if(scmd=="removeformat")fouraWSYG.handleVisualAid(this.getBody(),true,this.visualAid,this);
fouraWSYG.triggerNodeChange();
break;
case"FontName":if(value==null){var s=this.getSel();
if(fouraWSYG.isGecko&&s.isCollapsed){var f=fouraWSYG.getParentElement(this.getFocusElement(),"font");
if(f!=null)this.selection.selectNode(f,false);
}this.getDoc().execCommand("RemoveFormat",false,null);
if(f!=null&&fouraWSYG.isGecko){var r=this.getRng().cloneRange();
r.collapse(true);
s.removeAllRanges();
s.addRange(r);
}}else this.getDoc().execCommand('FontName',false,value);
if(fouraWSYG.isGecko)window.setTimeout('fouraWSYG.triggerNodeChange(false);',1);
return;
case"FontSize":this.getDoc().execCommand('FontSize',false,value);
if(fouraWSYG.isGecko)window.setTimeout('fouraWSYG.triggerNodeChange(false);',1);
return;
case"forecolor":this.getDoc().execCommand('forecolor',false,value);
break;
case"HiliteColor":if(fouraWSYG.isGecko){this._setUseCSS(true);
this.getDoc().execCommand('hilitecolor',false,value);
this._setUseCSS(false);
}else this.getDoc().execCommand('BackColor',false,value);
break;
case"Cut":case"Copy":case"Paste":var cmdFailed=false;
eval('try {this.getDoc().execCommand(command, user_interface, value);} catch (e) {cmdFailed = true;}');
if(fouraWSYG.isOpera&&cmdFailed)alert('Currently not supported by your browser, use keyboard shortcuts instead.');
if(fouraWSYG.isGecko&&cmdFailed){if(confirm(fouraWSYG.entityDecode(fouraWSYG.getLang('lang_clipboard_msg'))))window.open('http://www.mozilla.org/editor/midasdemo/securityprefs.html','mceExternal');
return;
}else fouraWSYG.triggerNodeChange();
break;
case"mceSetContent":if(!value)value="";
value=fouraWSYG.storeAwayURLs(value);
value=fouraWSYG._customCleanup(this,"insert_to_editor",value);
fouraWSYG._setHTML(doc,value);
fouraWSYG.setInnerHTML(doc.body,fouraWSYG._cleanupHTML(this,doc,fouraWSYG.settings,doc.body));
fouraWSYG.convertAllRelativeURLs(doc.body);
fouraWSYG._removeInternal(this.getBody());
if(fouraWSYG.getParam("convert_fonts_to_spans"))fouraWSYG.convertSpansToFonts(doc);
fouraWSYG.handleVisualAid(doc.body,true,this.visualAid,this);
fouraWSYG._setEventsEnabled(doc.body,false);
return true;
case"mceCleanup":var b=this.selection.getBookmark();
fouraWSYG._setHTML(this.contentDocument,this.getBody().innerHTML);
fouraWSYG.setInnerHTML(this.getBody(),fouraWSYG._cleanupHTML(this,this.contentDocument,this.settings,this.getBody(),this.visualAid));
fouraWSYG.convertAllRelativeURLs(doc.body);
if(fouraWSYG.getParam("convert_fonts_to_spans"))fouraWSYG.convertSpansToFonts(doc);
fouraWSYG.handleVisualAid(this.getBody(),true,this.visualAid,this);
fouraWSYG._setEventsEnabled(this.getBody(),false);
this.repaint();
this.selection.moveToBookmark(b);
fouraWSYG.triggerNodeChange();
break;
case"mceReplaceContent":if(!value)value='';
this.getWin().focus();
var selectedText="";
if(fouraWSYG.isMSIE){var rng=doc.selection.createRange();
selectedText=rng.text;
}else selectedText=this.getSel().toString();
if(selectedText.length>0){value=fouraWSYG.replaceVar(value,"selection",selectedText);
fouraWSYG.execCommand('mceInsertContent',false,value);
}fouraWSYG.triggerNodeChange();
break;
case"mceSetAttribute":if(typeof(value)=='object'){var targetElms=(typeof(value['targets'])=="undefined")?"p,img,span,div,td,h1,h2,h3,h4,h5,h6,pre,address":value['targets'];
var targetNode=fouraWSYG.getParentElement(this.getFocusElement(),targetElms);
if(targetNode){targetNode.setAttribute(value['name'],value['value']);
fouraWSYG.triggerNodeChange();
}}break;
case"mceSetCSSClass":this.execCommand("SetStyleInfo",false,{command:"setattrib",name:"class",value:value});
break;
case"mceInsertRawHTML":var key='tiny_mce_marker';
this.execCommand('mceBeginUndoLevel');
this.execCommand('mceInsertContent',false,key);
var scrollX=this.getDoc().body.scrollLeft+this.getDoc().documentElement.scrollLeft;
var scrollY=this.getDoc().body.scrollTop+this.getDoc().documentElement.scrollTop;
var html=this.getBody().innerHTML;
if((pos=html.indexOf(key))!=-1)fouraWSYG.setInnerHTML(this.getBody(),html.substring(0,pos)+value+html.substring(pos+key.length));
this.contentWindow.scrollTo(scrollX,scrollY);
this.execCommand('mceEndUndoLevel');
break;
case"mceInsertContent":if(!value)value='';
var insertHTMLFailed=false;
this.getWin().focus();
if(fouraWSYG.isGecko||fouraWSYG.isOpera){try{if(value.indexOf('<')==-1&&!value.match(/(&#38;|&#160;|&#60;|&#62;)/g)){var r=this.getRng();
var n=this.getDoc().createTextNode(fouraWSYG.entityDecode(value));
var s=this.getSel();
var r2=r.cloneRange();
s.removeAllRanges();
r.deleteContents();
r.insertNode(n);
r2.selectNode(n);
r2.collapse(false);
s.removeAllRanges();
s.addRange(r2);
}else{value=fouraWSYG.fixGeckoBaseHREFBug(1,this.getDoc(),value);
this.getDoc().execCommand('inserthtml',false,value);
fouraWSYG.fixGeckoBaseHREFBug(2,this.getDoc(),value);
}}catch(ex){insertHTMLFailed=true;
}if(!insertHTMLFailed){fouraWSYG.triggerNodeChange();
return;
}}if(fouraWSYG.isOpera&&insertHTMLFailed){this.getDoc().execCommand("insertimage",false,fouraWSYG.uniqueURL);
var ar=fouraWSYG.getElementsByAttributeValue(this.getBody(),"img","src",fouraWSYG.uniqueURL);
ar[0].outerHTML=value;
return;
}if(!fouraWSYG.isMSIE){var isHTML=value.indexOf('<')!=-1;
var sel=this.getSel();
var rng=this.getRng();
if(isHTML){if(fouraWSYG.isSafari){var tmpRng=this.getDoc().createRange();
tmpRng.setStart(this.getBody(),0);
tmpRng.setEnd(this.getBody(),0);
value=tmpRng.createContextualFragment(value);
}else value=rng.createContextualFragment(value);
}else{var el=document.createElement("div");
el.innerHTML=value;
value=el.firstChild.nodeValue;
value=doc.createTextNode(value);
}if(fouraWSYG.isSafari&&!isHTML){this.execCommand('InsertText',false,value.nodeValue);
fouraWSYG.triggerNodeChange();
return true;
}else if(fouraWSYG.isSafari&&isHTML){rng.deleteContents();
rng.insertNode(value);
fouraWSYG.triggerNodeChange();
return true;
}rng.deleteContents();
if(rng.startContainer.nodeType==3){var node=rng.startContainer.splitText(rng.startOffset);
node.parentNode.insertBefore(value,node);
}else rng.insertNode(value);
if(!isHTML){sel.selectAllChildren(doc.body);
sel.removeAllRanges();
var rng=doc.createRange();
rng.selectNode(value);
rng.collapse(false);
sel.addRange(rng);
}else rng.collapse(false);
fouraWSYG.fixGeckoBaseHREFBug(2,this.getDoc(),value);
}else{var rng=doc.selection.createRange();
var c=value.indexOf('<!--')!=-1;
if(c)value=fouraWSYG.uniqueTag+value;
if(rng.item)rng.item(0).outerHTML=value;
else rng.pasteHTML(value);
if(c){var e=this.getDoc().getElementById('mceTMPElement');
e.parentNode.removeChild(e);
}}fouraWSYG.triggerNodeChange();
break;
case"mceStartTyping":if(fouraWSYG.settings['custom_undo_redo']&&this.undoRedo.typingUndoIndex==-1){this.undoRedo.typingUndoIndex=this.undoRedo.undoIndex;
this.execCommand('mceAddUndoLevel');
}break;
case"mceEndTyping":if(fouraWSYG.settings['custom_undo_redo']&&this.undoRedo.typingUndoIndex!=-1){this.execCommand('mceAddUndoLevel');
this.undoRedo.typingUndoIndex=-1;
}break;
case"mceBeginUndoLevel":this.undoRedoLevel=false;
break;
case"mceEndUndoLevel":this.undoRedoLevel=true;
this.execCommand('mceAddUndoLevel');
break;
case"mceAddUndoLevel":if(fouraWSYG.settings['custom_undo_redo']&&this.undoRedoLevel){if(this.undoRedo.add())fouraWSYG.triggerNodeChange(false);
}break;
case"Undo":if(fouraWSYG.settings['custom_undo_redo']){fouraWSYG.execCommand("mceEndTyping");
this.undoRedo.undo();
fouraWSYG.triggerNodeChange();
}else this.getDoc().execCommand(command,user_interface,value);
break;
case"Redo":if(fouraWSYG.settings['custom_undo_redo']){fouraWSYG.execCommand("mceEndTyping");
this.undoRedo.redo();
fouraWSYG.triggerNodeChange();
}else this.getDoc().execCommand(command,user_interface,value);
break;
case"mceToggleVisualAid":this.visualAid=!this.visualAid;
fouraWSYG.handleVisualAid(this.getBody(),true,this.visualAid,this);
fouraWSYG.triggerNodeChange();
break;
case"Indent":this.getDoc().execCommand(command,user_interface,value);
fouraWSYG.triggerNodeChange();
if(fouraWSYG.isMSIE){var n=fouraWSYG.getParentElement(this.getFocusElement(),"blockquote");
do{if(n&&n.nodeName=="BLOCKQUOTE"){n.removeAttribute("dir");
n.removeAttribute("style");
}}while(n!=null&&(n=n.parentNode)!=null);
}break;
case"removeformat":var text=this.selection.getSelectedText();
if(fouraWSYG.isOpera){this.getDoc().execCommand("RemoveFormat",false,null);
return;
}if(fouraWSYG.isMSIE){try{var rng=doc.selection.createRange();
rng.execCommand("RemoveFormat",false,null);
}catch(e){}this.execCommand("SetStyleInfo",false,{command:"removeformat"});
}else{this.getDoc().execCommand(command,user_interface,value);
this.execCommand("SetStyleInfo",false,{command:"removeformat"});
}if(text.length==0)this.execCommand("mceSetCSSClass",false,"");
fouraWSYG.triggerNodeChange();
break;
default:this.getDoc().execCommand(command,user_interface,value);
if(fouraWSYG.isGecko)window.setTimeout('fouraWSYG.triggerNodeChange(false);',1);
else fouraWSYG.triggerNodeChange();
}if(command!="mceAddUndoLevel"&&command!="Undo"&&command!="Redo"&&command!="mceStartTyping"&&command!="mceEndTyping")fouraWSYG.execCommand("mceAddUndoLevel");
},queryCommandValue:function(c){try{return this.getDoc().queryCommandValue(c);
}catch(e){return null;
}},queryCommandState:function(c){return this.getDoc().queryCommandState(c);
},_onAdd:function(replace_element,form_element_name,target_document){var hc,th,to,editorTemplate;
th=this.settings['theme'];
to=fouraWSYG.themes[th];
var targetDoc=target_document?target_document:document;
this.targetDoc=targetDoc;
fouraWSYG.themeURL=fouraWSYG.baseURL+"/themes/"+this.settings['theme'];
this.settings['themeurl']=fouraWSYG.themeURL;
if(!replace_element){alert("Error: Could not find the target element.");
return false;
}if(to.getEditorTemplate)editorTemplate=to.getEditorTemplate(this.settings,this.editorId);
var deltaWidth=editorTemplate['delta_width']?editorTemplate['delta_width']:0;
var deltaHeight=editorTemplate['delta_height']?editorTemplate['delta_height']:0;
var html='<span id="'+this.editorId+'_parent" class="mceEditorContainer">'+editorTemplate['html'];
html=fouraWSYG.replaceVar(html,"editor_id",this.editorId);
this.settings['default_document']=fouraWSYG.baseURL+"/blank.htm";
this.settings['old_width']=this.settings['width'];
this.settings['old_height']=this.settings['height'];
if(this.settings['width']==-1)this.settings['width']=replace_element.offsetWidth;
if(this.settings['height']==-1)this.settings['height']=replace_element.offsetHeight;
if(this.settings['width']==0)this.settings['width']=replace_element.style.width;
if(this.settings['height']==0)this.settings['height']=replace_element.style.height;
if(this.settings['width']==0)this.settings['width']=320;
if(this.settings['height']==0)this.settings['height']=240;
this.settings['area_width']=parseInt(this.settings['width']);
this.settings['area_height']=parseInt(this.settings['height']);
this.settings['area_width']+=deltaWidth;
this.settings['area_height']+=deltaHeight;
if((""+this.settings['width']).indexOf('%')!=-1)this.settings['area_width']="100%";
if((""+this.settings['height']).indexOf('%')!=-1)this.settings['area_height']="100%";
if((""+replace_element.style.width).indexOf('%')!=-1){this.settings['width']=replace_element.style.width;
this.settings['area_width']="100%";
}if((""+replace_element.style.height).indexOf('%')!=-1){this.settings['height']=replace_element.style.height;
this.settings['area_height']="100%";
}html=fouraWSYG.applyTemplate(html);
this.settings['width']=this.settings['old_width'];
this.settings['height']=this.settings['old_height'];
this.visualAid=this.settings['visual'];
this.formTargetElementId=form_element_name;
if(replace_element.nodeName=="TEXTAREA"||replace_element.nodeName=="INPUT")this.startContent=replace_element.value;
else this.startContent=replace_element.innerHTML;
if(replace_element.nodeName!="TEXTAREA"&&replace_element.nodeName!="INPUT"){this.oldTargetElement=replace_element;
if(fouraWSYG.settings['debug']){hc='<textarea wrap="off" id="'+form_element_name+'" name="'+form_element_name+'" cols="100" rows="15"></textarea>';
}else{hc='<input type="hidden" id="'+form_element_name+'" name="'+form_element_name+'" />';
this.oldTargetElement.style.display="none";
}html+='</span>';
if(fouraWSYG.isGecko)html=hc+html;
else html+=hc;
if(fouraWSYG.isGecko){var rng=replace_element.ownerDocument.createRange();
rng.setStartBefore(replace_element);
var fragment=rng.createContextualFragment(html);
fouraWSYG.insertAfter(fragment,replace_element);
}else replace_element.insertAdjacentHTML("beforeBegin",html);
}else{html+='</span>';
this.oldTargetElement=replace_element;
if(!fouraWSYG.settings['debug'])this.oldTargetElement.style.display="none";
if(fouraWSYG.isGecko){var rng=replace_element.ownerDocument.createRange();
rng.setStartBefore(replace_element);
var fragment=rng.createContextualFragment(html);
fouraWSYG.insertAfter(fragment,replace_element);
}else replace_element.insertAdjacentHTML("beforeBegin",html);
}var dynamicIFrame=false;
var tElm=targetDoc.getElementById(this.editorId);
if(!fouraWSYG.isMSIE){if(tElm&&(tElm.nodeName=="SPAN"||tElm.nodeName=="span")){tElm=fouraWSYG._createIFrame(tElm,targetDoc);
dynamicIFrame=true;
}this.targetElement=tElm;
this.iframeElement=tElm;
this.contentDocument=tElm.contentDocument;
this.contentWindow=tElm.contentWindow;
}else{if(tElm&&tElm.nodeName=="SPAN")tElm=fouraWSYG._createIFrame(tElm,targetDoc,targetDoc.parentWindow);
else tElm=targetDoc.frames[this.editorId];
this.targetElement=tElm;
this.iframeElement=targetDoc.getElementById(this.editorId);
if(fouraWSYG.isOpera){this.contentDocument=this.iframeElement.contentDocument;
this.contentWindow=this.iframeElement.contentWindow;
dynamicIFrame=true;
}else{this.contentDocument=tElm.window.document;
this.contentWindow=tElm.window;
}this.getDoc().designMode="on";
}var doc=this.contentDocument;
if(dynamicIFrame){var html=fouraWSYG.getParam('doctype')+'<html><head xmlns="http://www.w3.org/1999/xhtml"><base href="'+fouraWSYG.settings['base_href']+'" /><title>blank_page</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head><body class="mceContentBody"></body></html>';
try{if(!this.isHidden())this.getDoc().designMode="on";
doc.open();
doc.write(html);
doc.close();
}catch(e){this.getDoc().location.href=fouraWSYG.baseURL+"/blank.htm";
}}if(fouraWSYG.isMSIE)window.setTimeout("fouraWSYG.addEventHandlers(fouraWSYG.instances[\""+this.editorId+"\"]);",1);
fouraWSYG.setupContent(this.editorId,true);
return true;
},setBaseHREF:function(u){var h,b,d,nl;
d=this.getDoc();
nl=d.getElementsByTagName("base");
b=nl.length>0?nl[0]:null;
if(!b){nl=d.getElementsByTagName("head");
h=nl.length>0?nl[0]:null;
b=d.createElement("base");
b.setAttribute('href',u);
h.appendChild(b);
}else{if(u==""||u==null)b.parentNode.removeChild(b);
else b.setAttribute('href',u);
}},getFocusElement:function(){return this.selection.getFocusElement();
},getSel:function(){return this.selection.getSel();
},getRng:function(){return this.selection.getRng();
},triggerSave:function(skip_cleanup,skip_callback){var e,nl=new Array(),i,s;
this.switchSettings();
s=fouraWSYG.settings;
if(fouraWSYG.isMSIE&&!fouraWSYG.isOpera){e=this.iframeElement;
do{if(e.style&&e.style.display=='none'){e.style.display='block';
nl[nl.length]={elm:e,type:'style'};
}if(e.style&&s.hidden_tab_class.length>0&&e.className.indexOf(s.hidden_tab_class)!=-1){e.className=s.display_tab_class;
nl[nl.length]={elm:e,type:'class'};
}}while((e=e.parentNode)!=null)}fouraWSYG.settings['preformatted']=false;
if(typeof(skip_cleanup)=="undefined")skip_cleanup=false;
if(typeof(skip_callback)=="undefined")skip_callback=false;
fouraWSYG._setHTML(this.getDoc(),this.getBody().innerHTML);
if(this.settings['cleanup']==false){fouraWSYG.handleVisualAid(this.getBody(),true,false,this);
fouraWSYG._setEventsEnabled(this.getBody(),true);
}fouraWSYG._customCleanup(this,"submit_content_dom",this.contentWindow.document.body);
var htm=skip_cleanup?this.getBody().innerHTML:fouraWSYG._cleanupHTML(this,this.getDoc(),this.settings,this.getBody(),fouraWSYG.visualAid,true,true);
htm=fouraWSYG._customCleanup(this,"submit_content",htm);
if(!skip_callback&&fouraWSYG.settings['save_callback']!="")var content=eval(fouraWSYG.settings['save_callback']+"(this.formTargetElementId,htm,this.getBody());");
if((typeof(content)!="undefined")&&content!=null)htm=content;
htm=fouraWSYG.regexpReplace(htm,"&#40;","(","gi");
htm=fouraWSYG.regexpReplace(htm,"&#41;",")","gi");
htm=fouraWSYG.regexpReplace(htm,"&#59;",";","gi");
htm=fouraWSYG.regexpReplace(htm,"&#34;","&quot;","gi");
htm=fouraWSYG.regexpReplace(htm,"&#94;","^","gi");
if(this.formElement)this.formElement.value=htm;
if(fouraWSYG.isSafari&&this.formElement)this.formElement.innerText=htm;
for(i=0;
i<nl.length;
i++){if(nl[i].type=='style')nl[i].elm.style.display='none';
else nl[i].elm.className=s.hidden_tab_class;
}}};
FourA_WYSIWYG_Engine.prototype.cleanupHTMLCode=function(s){s=s.replace(new RegExp('<p \\/>','gi'),'<p>&nbsp;</p>');
s=s.replace(new RegExp('<p>\\s*<\\/p>','gi'),'<p>&nbsp;</p>');
s=s.replace(new RegExp('<br>\\s*<\\/br>','gi'),'<br />');
s=s.replace(new RegExp('<(h[1-6]|p|div|address|pre|form|table|li|ol|ul|td|b|font|em|strong|i|strike|u|span|a|ul|ol|li|blockquote)([a-z]*)([^\\\\|>]*)\\/>','gi'),'<$1$2$3></$1$2>');
s=s.replace(new RegExp('\\s+></','gi'),'></');
s=s.replace(new RegExp('<(img|br|hr)([^>]*)><\\/(img|br|hr)>','gi'),'<$1$2 />');
if(fouraWSYG.isMSIE)s=s.replace(new RegExp('<p><hr \\/><\\/p>','gi'),"<hr>");
if(fouraWSYG.getParam('convert_urls'))s=s.replace(new RegExp('(href=\"{0,1})(\\s*#)','gi'),'$1'+fouraWSYG.settings['document_base_url']+"#");
return s;
};
FourA_WYSIWYG_Engine.prototype.parseStyle=function(str){var ar=new Array();
if(str==null)return ar;
var st=str.split(';');
fouraWSYG.clearArray(ar);
for(var i=0;
i<st.length;
i++){if(st[i]=='')continue;
var re=new RegExp('^\\s*([^:]*):\\s*(.*)\\s*$');
var pa=st[i].replace(re,'$1||$2').split('||');
if(pa.length==2)ar[pa[0].toLowerCase()]=pa[1];
}return ar;
};
FourA_WYSIWYG_Engine.prototype.compressStyle=function(ar,pr,sf,res){var box=new Array();
box[0]=ar[pr+'-top'+sf];
box[1]=ar[pr+'-left'+sf];
box[2]=ar[pr+'-right'+sf];
box[3]=ar[pr+'-bottom'+sf];
for(var i=0;
i<box.length;
i++){if(box[i]==null)return;
for(var a=0;
a<box.length;
a++){if(box[a]!=box[i])return;
}}ar[res]=box[0];
ar[pr+'-top'+sf]=null;
ar[pr+'-left'+sf]=null;
ar[pr+'-right'+sf]=null;
ar[pr+'-bottom'+sf]=null;
};
FourA_WYSIWYG_Engine.prototype.serializeStyle=function(ar){var str="";
fouraWSYG.compressStyle(ar,"border","","border");
fouraWSYG.compressStyle(ar,"border","-width","border-width");
fouraWSYG.compressStyle(ar,"border","-color","border-color");
fouraWSYG.compressStyle(ar,"border","-style","border-style");
fouraWSYG.compressStyle(ar,"padding","","padding");
fouraWSYG.compressStyle(ar,"margin","","margin");
for(var key in ar){var val=ar[key];
if(typeof(val)=='function')continue;
if(key.indexOf('mso-')==0)continue;
if(val!=null&&val!=''){val=''+val;
val=val.replace(new RegExp("url\\(\\'?([^\\']*)\\'?\\)",'gi'),"url('$1')");
if(val.indexOf('url(')!=-1&&fouraWSYG.getParam('convert_urls')){var m=new RegExp("url\\('(.*?)'\\)").exec(val);
if(m.length>1)val="url('"+eval(fouraWSYG.getParam('urlconverter_callback')+"(m[1], null, true);")+"')";
}if(fouraWSYG.getParam("force_hex_style_colors"))val=fouraWSYG.convertRGBToHex(val,true);
if(val!="url('')")str+=key.toLowerCase()+": "+val+";";
}}if(new RegExp(';$').test(str))str=str.substring(0,str.length-2);
return str;
};
FourA_WYSIWYG_Engine.prototype.convertRGBToHex=function(s,k){if(s.toLowerCase().indexOf('rgb')!=-1){var re=new RegExp("(.*?)rgb\\s*?\\(\\s*?([0-9]+).*?,\\s*?([0-9]+).*?,\\s*?([0-9]+).*?\\)(.*?)","gi");
var rgb=s.replace(re,"$1,$2,$3,$4,$5").split(',');
if(rgb.length==5){r=parseInt(rgb[1]).toString(16);
g=parseInt(rgb[2]).toString(16);
b=parseInt(rgb[3]).toString(16);
r=r.length==1?'0'+r:r;
g=g.length==1?'0'+g:g;
b=b.length==1?'0'+b:b;
s="#"+r+g+b;
if(k)s=rgb[0]+s+rgb[4];
}}return s;
};
FourA_WYSIWYG_Engine.prototype.convertHexToRGB=function(s){if(s.indexOf('#')!=-1){s=s.replace(new RegExp('[^0-9A-F]','gi'),'');
return"rgb("+parseInt(s.substring(0,2),16)+","+parseInt(s.substring(2,4),16)+","+parseInt(s.substring(4,6),16)+")";
}return s;
};
FourA_WYSIWYG_Engine.prototype.convertSpansToFonts=function(doc){var sizes=fouraWSYG.getParam('font_size_style_values').replace(/\s+/,'').split(',');
var h=doc.body.innerHTML;
h=h.replace(/<span/gi,'<font');
h=h.replace(/<\/span/gi,'</font');
doc.body.innerHTML=h;
var s=doc.getElementsByTagName("font");
for(var i=0;
i<s.length;
i++){var size=fouraWSYG.trim(s[i].style.fontSize).toLowerCase();
var fSize=0;
for(var x=0;
x<sizes.length;
x++){if(sizes[x]==size){fSize=x+1;
break;
}}if(fSize>0){fouraWSYG.setAttrib(s[i],'size',fSize);
s[i].style.fontSize='';
}var fFace=s[i].style.fontFamily;
if(fFace!=null&&fFace!=""){fouraWSYG.setAttrib(s[i],'face',fFace);
s[i].style.fontFamily='';
}var fColor=s[i].style.color;
if(fColor!=null&&fColor!=""){fouraWSYG.setAttrib(s[i],'color',fouraWSYG.convertRGBToHex(fColor));
s[i].style.color='';
}}};
FourA_WYSIWYG_Engine.prototype.convertFontsToSpans=function(doc){var sizes=fouraWSYG.getParam('font_size_style_values').replace(/\s+/,'').split(',');
var h=doc.body.innerHTML;
h=h.replace(/<font/gi,'<span');
h=h.replace(/<\/font/gi,'</span');
doc.body.innerHTML=h;
var fsClasses=fouraWSYG.getParam('font_size_classes');
if(fsClasses!='')fsClasses=fsClasses.replace(/\s+/,'').split(',');
else fsClasses=null;
var s=doc.getElementsByTagName("span");
for(var i=0;
i<s.length;
i++){var fSize,fFace,fColor;
fSize=fouraWSYG.getAttrib(s[i],'size');
fFace=fouraWSYG.getAttrib(s[i],'face');
fColor=fouraWSYG.getAttrib(s[i],'color');
if(fSize!=""){fSize=parseInt(fSize);
if(fSize>0&&fSize<8){if(fsClasses!=null)fouraWSYG.setAttrib(s[i],'class',fsClasses[fSize-1]);
else s[i].style.fontSize=sizes[fSize-1];
}s[i].removeAttribute('size');
}if(fFace!=""){s[i].style.fontFamily=fFace;
s[i].removeAttribute('face');
}if(fColor!=""){s[i].style.color=fColor;
s[i].removeAttribute('color');
}}};
FourA_WYSIWYG_Engine.prototype.cleanupAnchors=function(doc){var i,cn,x,an=doc.getElementsByTagName("a");
for(i=an.length-1;
i>=0;
i--){if(fouraWSYG.getAttrib(an[i],"name")!=""&&fouraWSYG.getAttrib(an[i],"href")==""){cn=an[i].childNodes;
for(x=cn.length-1;
x>=0;
x--)fouraWSYG.insertAfter(cn[x],an[i]);
}}};
FourA_WYSIWYG_Engine.prototype.getContent=function(editor_id){var h;
if(typeof(editor_id)!="undefined")fouraWSYG.selectedInstance=fouraWSYG.getInstanceById(editor_id);
if(fouraWSYG.selectedInstance){h=fouraWSYG._cleanupHTML(this.selectedInstance,this.selectedInstance.getDoc(),fouraWSYG.settings,this.selectedInstance.getBody(),false,true);
if(fouraWSYG.getParam("convert_fonts_to_spans"))fouraWSYG.convertSpansToFonts(this.selectedInstance.getDoc());
return h;
}return null;
};
FourA_WYSIWYG_Engine.prototype._fixListElements=function(d){var nl,x,a=['ol','ul'],i,n,p,r=new RegExp('^(OL|UL)$'),np;
for(x=0;
x<a.length;
x++){nl=d.getElementsByTagName(a[x]);
for(i=0;
i<nl.length;
i++){n=nl[i];
p=n.parentNode;
if(r.test(p.nodeName)){np=fouraWSYG.prevNode(n,'LI');
if(!np){np=d.createElement('li');
np.innerHTML='&nbsp;';
np.appendChild(n);
p.insertBefore(np,p.firstChild);
}else np.appendChild(n);
}}}};
FourA_WYSIWYG_Engine.prototype._fixTables=function(d){var nl,i,n,p,np,x,t;
nl=d.getElementsByTagName('table');
for(i=0;
i<nl.length;
i++){n=nl[i];
if((p=fouraWSYG.getParentElement(n,'p,div,h1,h2,h3,h4,h5,h6'))!=null){np=p.cloneNode(false);
np.removeAttribute('id');
t=n;
while((n=n.nextSibling))np.appendChild(n);
fouraWSYG.insertAfter(np,p);
fouraWSYG.insertAfter(t,p);
}}};
FourA_WYSIWYG_Engine.prototype._cleanupHTML=function(inst,doc,config,elm,visual,on_save,on_submit){var h,d,t1,t2,t3,t4,t5,c,s;
if(!fouraWSYG.getParam('cleanup'))return elm.innerHTML;
on_save=typeof(on_save)=='undefined'?false:on_save;
c=inst.cleanup;
s=inst.settings;
d=c.settings.debug;
if(d)t1=new Date().getTime();
if(fouraWSYG.getParam("convert_fonts_to_spans"))fouraWSYG.convertFontsToSpans(doc);
if(fouraWSYG.getParam("fix_list_elements"))fouraWSYG._fixListElements(doc);
if(fouraWSYG.getParam("fix_table_elements"))fouraWSYG._fixTables(doc);
fouraWSYG._customCleanup(inst,on_save?"get_from_editor_dom":"insert_to_editor_dom",doc.body);
if(d)t2=new Date().getTime();
c.settings.on_save=on_save;
c.idCount=0;
c.serializationId++;
c.serializedNodes=new Array();
c.sourceIndex=-1;
if(s.cleanup_serializer=="xml")h=c.serializeNodeAsXML(elm);
else h=c.serializeNodeAsHTML(elm);
if(d)t3=new Date().getTime();
h=h.replace(/<\/?(body|head|html)[^>]*>/gi,'');
h=h.replace(new RegExp(' (rowspan="1"|colspan="1")','g'),'');
h=h.replace(/<p><hr \/><\/p>/g,'<hr />');
h=h.replace(/<p>(&nbsp;|&#160;)<\/p><hr \/><p>(&nbsp;|&#160;)<\/p>/g,'<hr />');
h=h.replace(/<td>\s*<br \/>\s*<\/td>/g,'<td>&nbsp;</td>');
h=h.replace(/<p>\s*<br \/>\s*<\/p>/g,'<p>&nbsp;</p>');
h=h.replace(/<p>\s*(&nbsp;|&#160;)\s*<br \/>\s*(&nbsp;|&#160;)\s*<\/p>/g,'<p>&nbsp;</p>');
h=h.replace(/<p>\s*(&nbsp;|&#160;)\s*<br \/>\s*<\/p>/g,'<p>&nbsp;</p>');
h=h.replace(/<p>\s*<br \/>\s*&nbsp;\s*<\/p>/g,'<p>&nbsp;</p>');
h=h.replace(new RegExp('<a>(.*?)<\\/a>','g'),'$1');
h=h.replace(/<p([^>]*)>\s*<\/p>/g,'<p$1>&nbsp;</p>');
if(/^\s*(<br \/>|<p>&nbsp;<\/p>|<p>&#160;<\/p>|<p><\/p>)\s*$/.test(h))h='';
if(s.preformatted){h=h.replace(/^<pre>/,'');
h=h.replace(/<\/pre>$/,'');
h='<pre>'+h+'</pre>';
}if(fouraWSYG.isGecko){h=h.replace(/<o:p _moz-userdefined="" \/>/g,'');
h=h.replace(/<td([^>]*)>\s*<br \/>\s*<\/td>/g,'<td$1>&nbsp;</td>');
}if(s.force_br_newlines)h=h.replace(/<p>(&nbsp;|&#160;)<\/p>/g,'<br />');
h=fouraWSYG._customCleanup(inst,on_save?"get_from_editor":"insert_to_editor",h);
if(on_save){h=h.replace(new RegExp(' ?(mceItem[a-zA-Z0-9]*|'+s.visual_table_class+')','g'),'');
h=h.replace(new RegExp(' ?class=""','g'),'');
}if(s.remove_linebreaks&&!c.settings.indent)h=h.replace(/\n|\r/g,' ');
if(d)t4=new Date().getTime();
if(on_save&&c.settings.indent)h=c.formatHTML(h);
if(on_submit&&(s.encoding=="xml"||s.encoding=="html"))h=c.xmlEncode(h);
if(d)t5=new Date().getTime();
if(c.settings.debug)fouraWSYG.debug("Cleanup in ms: Pre="+(t2-t1)+", Serialize: "+(t3-t2)+", Post: "+(t4-t3)+", Format: "+(t5-t4)+", Sum: "+(t5-t1)+".");
return h;
};
function FourA_WYSIWYG_Cleanup(){this.isMSIE=(navigator.appName=="Microsoft Internet Explorer");
this.rules=fouraWSYG.clearArray(new Array());
this.settings={indent_elements:'head,table,tbody,thead,tfoot,form,tr,ul,ol,blockquote,object',newline_before_elements:'h1,h2,h3,h4,h5,h6,pre,address,div,ul,ol,li,meta,option,area,title,link,base,script,td',newline_after_elements:'br,hr,p,pre,address,div,ul,ol,meta,option,area,link,base,script',newline_before_after_elements:'html,head,body,table,thead,tbody,tfoot,tr,form,ul,ol,blockquote,p,object,param,hr,div',indent_char:'\t',indent_levels:1,entity_encoding:'raw',valid_elements:'*[*]',entities:'',url_converter:'',invalid_elements:'',verify_html:false};
this.vElements=fouraWSYG.clearArray(new Array());
this.vElementsRe='';
this.closeElementsRe=/^(IMG|BR|HR|LINK|META|BASE|INPUT|BUTTON|AREA)$/;
this.codeElementsRe=/^(SCRIPT|STYLE)$/;
this.serializationId=0;
this.mceAttribs={href:'mce_href',src:'mce_src',type:'mce_type'};
}FourA_WYSIWYG_Cleanup.prototype={init:function(s){var n,a,i,ir,or,st;
for(n in s)this.settings[n]=s[n];
s=this.settings;
this.inRe=this._arrayToRe(s.indent_elements.split(','),'','^<(',')[^>]*');
this.ouRe=this._arrayToRe(s.indent_elements.split(','),'','^<\\/(',')[^>]*');
this.nlBeforeRe=this._arrayToRe(s.newline_before_elements.split(','),'gi','<(',')([^>]*)>');
this.nlAfterRe=this._arrayToRe(s.newline_after_elements.split(','),'gi','<(',')([^>]*)>');
this.nlBeforeAfterRe=this._arrayToRe(s.newline_before_after_elements.split(','),'gi','<(\\/?)(',')([^>]*)>');
if(s.invalid_elements!='')this.iveRe=this._arrayToRe(s.invalid_elements.toUpperCase().split(','),'g','^(',')$');
else this.iveRe=null;
st='';
for(i=0;
i<s.indent_levels;
i++)st+=s.indent_char;
this.inStr=st;
if(!s.verify_html){s.valid_elements='*[*]';
s.extended_valid_elements='';
}this.fillStr=s.entity_encoding=="named"?"&nbsp;":"&#160;";
this.idCount=0;
},addRuleStr:function(s){var r=this.parseRuleStr(s);
var n;
for(n in r){if(r[n])this.rules[n]=r[n];
}this.vElements=fouraWSYG.clearArray(new Array());
for(n in this.rules){if(this.rules[n])this.vElements[this.vElements.length]=this.rules[n].tag;
}this.vElementsRe=this._arrayToRe(this.vElements,'');
},parseRuleStr:function(s){var ta,p,r,a,i,x,px,t,tn,y,av,or=fouraWSYG.clearArray(new Array()),dv;
if(s==null||s.length==0)return or;
ta=s.split(',');
for(x=0;
x<ta.length;
x++){s=ta[x];
if(s.length==0)continue;
p=this.split(/\[|\]/,s);
if(p==null||p.length<1)t=s.toUpperCase();
else t=p[0].toUpperCase();
tn=this.split('/',t);
for(y=0;
y<tn.length;
y++){r={};
r.tag=tn[y];
r.forceAttribs=null;
r.defaultAttribs=null;
r.validAttribValues=null;
px=r.tag.charAt(0);
r.forceOpen=px=='+';
r.removeEmpty=px=='-';
r.fill=px=='#';
r.tag=r.tag.replace(/\+|-|#/g,'');
r.oTagName=tn[0].replace(/\+|-|#/g,'').toLowerCase();
r.isWild=new RegExp('\\*|\\?|\\+','g').test(r.tag);
r.validRe=new RegExp(this._wildcardToRe('^'+r.tag+'$'));
if(p.length>1){r.vAttribsRe='^(';
a=this.split(/\|/,p[1]);
for(i=0;
i<a.length;
i++){t=a[i];
av=new RegExp('(=|:|<)(.*?)$').exec(t);
t=t.replace(new RegExp('(=|:|<).*?$'),'');
if(av&&av.length>0){if(av[0].charAt(0)==':'){if(!r.forceAttribs)r.forceAttribs=fouraWSYG.clearArray(new Array());
r.forceAttribs[t.toLowerCase()]=av[0].substring(1);
}else if(av[0].charAt(0)=='='){if(!r.defaultAttribs)r.defaultAttribs=fouraWSYG.clearArray(new Array());
dv=av[0].substring(1);
r.defaultAttribs[t.toLowerCase()]=dv==""?"mce_empty":dv;
}else if(av[0].charAt(0)=='<'){if(!r.validAttribValues)r.validAttribValues=fouraWSYG.clearArray(new Array());
r.validAttribValues[t.toLowerCase()]=this._arrayToRe(this.split('?',av[0].substring(1)),'');
}}r.vAttribsRe+=''+t.toLowerCase()+(i!=a.length-1?'|':'');
a[i]=t.toLowerCase();
}r.vAttribsRe+=')$';
r.vAttribsRe=this._wildcardToRe(r.vAttribsRe);
r.vAttribsReIsWild=new RegExp('\\*|\\?|\\+','g').test(r.vAttribsRe);
r.vAttribsRe=new RegExp(r.vAttribsRe);
r.vAttribs=a.reverse();
}else{r.vAttribsRe='';
r.vAttribs=fouraWSYG.clearArray(new Array());
r.vAttribsReIsWild=false;
}or[r.tag]=r;
}}return or;
},serializeNodeAsXML:function(n){var s,b;
if(!this.xmlDoc){if(this.isMSIE){try{this.xmlDoc=new ActiveXObject('MSXML2.DOMDocument');
}catch(e){}if(!this.xmlDoc)try{this.xmlDoc=new ActiveXObject('Microsoft.XmlDom');
}catch(e){}}else this.xmlDoc=document.implementation.createDocument('','',null);
if(!this.xmlDoc)alert("Error XML Parser could not be found.");
}if(this.xmlDoc.firstChild)this.xmlDoc.removeChild(this.xmlDoc.firstChild);
b=this.xmlDoc.createElement("html");
b=this.xmlDoc.appendChild(b);
this._convertToXML(n,b);
if(this.isMSIE)return this.xmlDoc.xml;
else return new XMLSerializer().serializeToString(this.xmlDoc);
},_convertToXML:function(n,xn){var xd,el,i,l,cn,at,no,hc=false;
if(this._isDuplicate(n))return;
xd=this.xmlDoc;
switch(n.nodeType){case 1:hc=n.hasChildNodes();
el=xd.createElement(n.nodeName.toLowerCase());
at=n.attributes;
for(i=at.length-1;
i>-1;
i--){no=at[i];
if(no.specified&&no.nodeValue)el.setAttribute(no.nodeName.toLowerCase(),no.nodeValue);
}if(!hc&&!this.closeElementsRe.test(n.nodeName))el.appendChild(xd.createTextNode(""));
xn=xn.appendChild(el);
break;
case 3:xn.appendChild(xd.createTextNode(n.nodeValue));
return;
case 8:xn.appendChild(xd.createComment(n.nodeValue));
return;
}if(hc){cn=n.childNodes;
for(i=0,l=cn.length;
i<l;
i++)this._convertToXML(cn[i],xn);
}},serializeNodeAsHTML:function(n){var en,no,h='',i,l,r,cn,va=false,f=false,at,hc;
this._setupRules();
if(this._isDuplicate(n))return'';
switch(n.nodeType){case 1:hc=n.hasChildNodes();
if((fouraWSYG.isMSIE&&!fouraWSYG.isOpera)&&n.nodeName.indexOf('/')!=-1)break;
if(this.vElementsRe.test(n.nodeName)&&(!this.iveRe||!this.iveRe.test(n.nodeName))){va=true;
r=this.rules[n.nodeName];
if(!r){at=this.rules;
for(no in at){if(at[no]&&at[no].validRe.test(n.nodeName)){r=at[no];
break;
}}}en=r.isWild?n.nodeName.toLowerCase():r.oTagName;
f=r.fill;
if(r.removeEmpty&&!hc)return"";
h+='<'+en;
if(r.vAttribsReIsWild){at=n.attributes;
for(i=at.length-1;
i>-1;
i--){no=at[i];
if(no.specified&&r.vAttribsRe.test(no.nodeName))h+=this._serializeAttribute(n,r,no.nodeName);
}}else{for(i=r.vAttribs.length-1;
i>-1;
i--)h+=this._serializeAttribute(n,r,r.vAttribs[i]);
}if(!this.settings.on_save){at=this.mceAttribs;
for(no in at){if(at[no])h+=this._serializeAttribute(n,r,at[no]);
}}if(this.closeElementsRe.test(n.nodeName))return h+' />';
h+='>';
if(this.isMSIE&&this.codeElementsRe.test(n.nodeName))h+=n.innerHTML;
}break;
case 3:if(n.parentNode&&this.codeElementsRe.test(n.parentNode.nodeName))return this.isMSIE?'':n.nodeValue;
return this.xmlEncode(n.nodeValue);
case 8:return"<!--"+this._trimComment(n.nodeValue)+"-->";
}if(hc){cn=n.childNodes;
for(i=0,l=cn.length;
i<l;
i++)h+=this.serializeNodeAsHTML(cn[i]);
}if(f&&!hc)h+=this.fillStr;
if(va)h+='</'+en+'>';
return h;
},_serializeAttribute:function(n,r,an){var av='',t,os=this.settings.on_save;
if(os&&(an.indexOf('mce_')==0||an.indexOf('_moz')==0))return'';
if(os&&this.mceAttribs[an])av=this._getAttrib(n,this.mceAttribs[an]);
if(av.length==0)av=this._getAttrib(n,an);
if(av.length==0&&r.defaultAttribs&&(t=r.defaultAttribs[an])){av=t;
if(av=="mce_empty")return" "+an+'=""';
}if(r.forceAttribs&&(t=r.forceAttribs[an]))av=t;
if(os&&av.length!=0&&this.settings.url_converter.length!=0&&/^(src|href|longdesc)$/.test(an))av=eval(this.settings.url_converter+'(this, n, av)');
if(av.length!=0&&r.validAttribValues&&r.validAttribValues[an]&&!r.validAttribValues[an].test(av))return"";
if(av.length!=0&&av=="{$uid}")av="uid_"+(this.idCount++);
if(av.length!=0)return" "+an+"="+'"'+this.xmlEncode(av)+'"';
return"";
},formatHTML:function(h){var s=this.settings,p='',i=0,li=0,o='',l;
h=h.replace(/\r/g,'');
h='\n'+h;
h=h.replace(new RegExp('\\n\\s+','gi'),'\n');
h=h.replace(this.nlBeforeRe,'\n<$1$2>');
h=h.replace(this.nlAfterRe,'<$1$2>\n');
h=h.replace(this.nlBeforeAfterRe,'\n<$1$2$3>\n');
h+='\n';
while((i=h.indexOf('\n',i+1))!=-1){if((l=h.substring(li+1,i)).length!=0){if(this.ouRe.test(l)&&p.length>=s.indent_levels)p=p.substring(s.indent_levels);
o+=p+l+'\n';
if(this.inRe.test(l))p+=this.inStr;
}li=i;
}return o;
},xmlEncode:function(s){var i,l,e,o='',c;
this._setupEntities();
switch(this.settings.entity_encoding){case"raw":return fouraWSYG.xmlEncode(s);
case"named":for(i=0,l=s.length;
i<l;
i++){c=s.charCodeAt(i);
e=this.entities[c];
if(e&&e!='')o+='&'+e+';';
else o+=String.fromCharCode(c);
}return o;
case"numeric":for(i=0,l=s.length;
i<l;
i++){c=s.charCodeAt(i);
if(c>127||c==60||c==62||c==38||c==39||c==34)o+='&#'+c+";";
else o+=String.fromCharCode(c);
}return o;
}return s;
},split:function(re,s){var c=s.split(re);
var i,l,o=new Array();
for(i=0,l=c.length;
i<l;
i++){if(c[i]!='')o[i]=c[i];
}return o;
},_trimComment:function(s){s=s.replace(new RegExp('\\smce_src=\"[^\"]*\"','gi'),"");
s=s.replace(new RegExp('\\smce_href=\"[^\"]*\"','gi'),"");
return s;
},_getAttrib:function(e,n,d){if(typeof(d)=="undefined")d="";
if(!e||e.nodeType!=1)return d;
var v=e.getAttribute(n,0);
if(n=="class"&&!v)v=e.className;
if(this.isMSIE&&n=="http-equiv")v=e.httpEquiv;
if(this.isMSIE&&e.nodeName=="FORM"&&n=="enctype"&&v=="application/x-www-form-urlencoded")v="";
if(this.isMSIE&&e.nodeName=="INPUT"&&n=="size"&&v=="20")v="";
if(this.isMSIE&&e.nodeName=="INPUT"&&n=="maxlength"&&v=="2147483647")v="";
if(n=="style"&&!fouraWSYG.isOpera)v=e.style.cssText;
if(n=='style')v=fouraWSYG.serializeStyle(fouraWSYG.parseStyle(v));
if(this.settings.on_save&&n.indexOf('on')!=-1&&this.settings.on_save&&v&&v!="")v=fouraWSYG.cleanupEventStr(v);
return(v&&v!="")?''+v:d;
},_urlConverter:function(c,n,v){if(!c.settings.on_save)return fouraWSYG.convertRelativeToAbsoluteURL(fouraWSYG.settings.base_href,v);
else if(fouraWSYG.getParam('convert_urls'))return eval(fouraWSYG.settings.urlconverter_callback+"(v, n, true);");
return v;
},_arrayToRe:function(a,op,be,af){var i,r;
op=typeof(op)=="undefined"?"gi":op;
be=typeof(be)=="undefined"?"^(":be;
af=typeof(af)=="undefined"?")$":af;
r=be;
for(i=0;
i<a.length;
i++)r+=this._wildcardToRe(a[i])+(i!=a.length-1?"|":"");
r+=af;
return new RegExp(r,op);
},_wildcardToRe:function(s){s=s.replace(/\?/g,'(\\S?)');
s=s.replace(/\+/g,'(\\S+)');
s=s.replace(/\*/g,'(\\S*)');
return s;
},_setupEntities:function(){var n,a,i,s=this.settings;
if(!this.entitiesDone){if(s.entity_encoding=="named"){n=fouraWSYG.clearArray(new Array());
a=this.split(',',s.entities);
for(i=0;
i<a.length;
i+=2)n[a[i]]=a[i+1];
this.entities=n;
}this.entitiesDone=true;
}},_setupRules:function(){var s=this.settings;
if(!this.rulesDone){this.addRuleStr(s.valid_elements);
this.addRuleStr(s.extended_valid_elements);
this.rulesDone=true;
}},_isDuplicate:function(n){var i;
if(!this.settings.fix_content_duplication)return false;
if(fouraWSYG.isMSIE&&!fouraWSYG.isOpera&&n.nodeType==1){if(n.mce_serialized==this.serializationId)return true;
n.setAttribute('mce_serialized',this.serializationId);
}else{for(i=0;
i<this.serializedNodes.length;
i++){if(this.serializedNodes[i]==n)return true;
}this.serializedNodes[this.serializedNodes.length]=n;
}return false;
}};
FourA_WYSIWYG_Engine.prototype.getElementByAttributeValue=function(n,e,a,v){return(n=this.getElementsByAttributeValue(n,e,a,v)).length==0?null:n[0];
};
FourA_WYSIWYG_Engine.prototype.getElementsByAttributeValue=function(n,e,a,v){var i,nl=n.getElementsByTagName(e),o=new Array();
for(i=0;
i<nl.length;
i++){if(fouraWSYG.getAttrib(nl[i],a).indexOf(v)!=-1)o[o.length]=nl[i];
}return o;
};
FourA_WYSIWYG_Engine.prototype.isBlockElement=function(n){return n!=null&&n.nodeType==1&&this.blockRegExp.test(n.nodeName);
};
FourA_WYSIWYG_Engine.prototype.getParentBlockElement=function(n){while(n){if(this.isBlockElement(n))return n;
n=n.parentNode;
}return null;
};
FourA_WYSIWYG_Engine.prototype.insertAfter=function(n,r){if(r.nextSibling)r.parentNode.insertBefore(n,r.nextSibling);
else r.parentNode.appendChild(n);
};
FourA_WYSIWYG_Engine.prototype.setInnerHTML=function(e,h){var i,nl,n;
if(fouraWSYG.isMSIE&&!fouraWSYG.isOpera){h=h.replace(/\s\/>/g,'>');
h=h.replace(/<p([^>]*)>\u00A0?<\/p>/gi,'<p$1 mce_keep="true">&nbsp;</p>');
h=h.replace(/<p([^>]*)>\s*&nbsp;\s*<\/p>/gi,'<p$1 mce_keep="true">&nbsp;</p>');
h=h.replace(/<p([^>]*)>\s+<\/p>/gi,'<p$1 mce_keep="true">&nbsp;</p>');
e.innerHTML=fouraWSYG.uniqueTag+h;
e.firstChild.removeNode(true);
nl=e.getElementsByTagName("p");
for(i=nl.length-1;
i>=0;
i--){n=nl[i];
if(n.nodeName=='P'&&!n.hasChildNodes()&&!n.mce_keep)n.parentNode.removeChild(n);
}}else{h=this.fixGeckoBaseHREFBug(1,e,h);
e.innerHTML=h;
this.fixGeckoBaseHREFBug(2,e,h);
}};
FourA_WYSIWYG_Engine.prototype.getOuterHTML=function(e){if(fouraWSYG.isMSIE)return e.outerHTML;
var d=e.ownerDocument.createElement("body");
d.appendChild(e);
return d.innerHTML;
};
FourA_WYSIWYG_Engine.prototype.setOuterHTML=function(e,h){if(fouraWSYG.isMSIE){e.outerHTML=h;
return;
}var d=e.ownerDocument.createElement("body");
d.innerHTML=h;
e.parentNode.replaceChild(d.firstChild,e);
};
FourA_WYSIWYG_Engine.prototype._getElementById=function(id,d){var e,i,j,f;
if(typeof(d)=="undefined")d=document;
e=d.getElementById(id);
if(!e){f=d.forms;
for(i=0;
i<f.length;
i++){for(j=0;
j<f[i].elements.length;
j++){if(f[i].elements[j].name==id){e=f[i].elements[j];
break;
}}}}return e;
};
FourA_WYSIWYG_Engine.prototype.getNodeTree=function(n,na,t,nn){var i;
if(typeof(t)=="undefined"||n.nodeType==t&&(typeof(nn)=="undefined"||n.nodeName==nn))na[na.length]=n;
if(n.hasChildNodes()){for(i=0;
i<n.childNodes.length;
i++)fouraWSYG.getNodeTree(n.childNodes[i],na,t,nn);
}return na;
};
FourA_WYSIWYG_Engine.prototype.getParentElement=function(node,names,attrib_name,attrib_value){if(typeof(names)=="undefined"){if(node.nodeType==1)return node;
while((node=node.parentNode)!=null&&node.nodeType!=1);
return node;
}if(node==null)return null;
var namesAr=names.toUpperCase().split(',');
do{for(var i=0;
i<namesAr.length;
i++){if(node.nodeName==namesAr[i]||names=="*"){if(typeof(attrib_name)=="undefined")return node;
else if(node.getAttribute(attrib_name)){if(typeof(attrib_value)=="undefined"){if(node.getAttribute(attrib_name)!="")return node;
}else if(node.getAttribute(attrib_name)==attrib_value)return node;
}}}}while((node=node.parentNode)!=null);
return null;
};
FourA_WYSIWYG_Engine.prototype.getParentNode=function(n,f){while(n){if(f(n))return n;
n=n.parentNode;
}return null;
};
FourA_WYSIWYG_Engine.prototype.getAttrib=function(elm,name,default_value){if(typeof(default_value)=="undefined")default_value="";
if(!elm||elm.nodeType!=1)return default_value;
var v=elm.getAttribute(name);
if(name=="class"&&!v)v=elm.className;
if(fouraWSYG.isGecko&&name=="src"&&elm.src!=null&&elm.src!="")v=elm.src;
if(fouraWSYG.isGecko&&name=="href"&&elm.href!=null&&elm.href!="")v=elm.href;
if(name=="http-equiv"&&fouraWSYG.isMSIE)v=elm.httpEquiv;
if(name=="style"&&!fouraWSYG.isOpera)v=elm.style.cssText;
return(v&&v!="")?v:default_value;
};
FourA_WYSIWYG_Engine.prototype.setAttrib=function(element,name,value,fix_value){if(typeof(value)=="number"&&value!=null)value=""+value;
if(fix_value){if(value==null)value="";
var re=new RegExp('[^0-9%]','g');
value=value.replace(re,'');
}if(name=="style")element.style.cssText=value;
if(name=="class")element.className=value;
if(value!=null&&value!=""&&value!=-1)element.setAttribute(name,value);
else element.removeAttribute(name);
};
FourA_WYSIWYG_Engine.prototype.setStyleAttrib=function(elm,name,value){eval('elm.style.'+name+'=value;');
if(fouraWSYG.isMSIE&&value==null||value==''){var str=fouraWSYG.serializeStyle(fouraWSYG.parseStyle(elm.style.cssText));
elm.style.cssText=str;
elm.setAttribute("style",str);
}};
FourA_WYSIWYG_Engine.prototype.switchClass=function(ei,c){var e;
if(fouraWSYG.switchClassCache[ei])e=fouraWSYG.switchClassCache[ei];
else e=fouraWSYG.switchClassCache[ei]=document.getElementById(ei);
if(e){if(fouraWSYG.settings.button_tile_map&&e.className&&e.className.indexOf('mceTiledButton')==0)c='mceTiledButton '+c;
e.className=c;
}};
FourA_WYSIWYG_Engine.prototype.getAbsPosition=function(n){var p={absLeft:0,absTop:0};
while(n){p.absLeft+=n.offsetLeft;
p.absTop+=n.offsetTop;
n=n.offsetParent;
}return p;
};
FourA_WYSIWYG_Engine.prototype.prevNode=function(e,n){var a=n.split(','),i;
while((e=e.previousSibling)!=null){for(i=0;
i<a.length;
i++){if(e.nodeName==a[i])return e;
}}return null;
};
FourA_WYSIWYG_Engine.prototype.nextNode=function(e,n){var a=n.split(','),i;
while((e=e.nextSibling)!=null){for(i=0;
i<a.length;
i++){if(e.nodeName==a[i])return e;
}}return null;
};
FourA_WYSIWYG_Engine.prototype.selectNodes=function(n,f,a){var i;
if(!a)a=new Array();
if(f(n))a[a.length]=n;
if(n.hasChildNodes()){for(i=0;
i<n.childNodes.length;
i++)fouraWSYG.selectNodes(n.childNodes[i],f,a);
}return a;
};
FourA_WYSIWYG_Engine.prototype.addCSSClass=function(e,c,b){var o=this.removeCSSClass(e,c);
return e.className=b?c+(o!=''?(' '+o):''):(o!=''?(o+' '):'')+c;
};
FourA_WYSIWYG_Engine.prototype.removeCSSClass=function(e,c){var a=this.explode(' ',e.className),i;
for(i=0;
i<a.length;
i++){if(a[i]==c)a[i]='';
}return e.className=a.join(' ');
};
FourA_WYSIWYG_Engine.prototype.renameElement=function(e,n,d){var ne,i,ar;
d=typeof(d)=="undefined"?fouraWSYG.selectedInstance.getDoc():d;
if(e){ne=d.createElement(n);
ar=e.attributes;
for(i=ar.length-1;
i>-1;
i--){if(ar[i].specified&&ar[i].nodeValue)ne.setAttribute(ar[i].nodeName.toLowerCase(),ar[i].nodeValue);
}ar=e.childNodes;
for(i=0;
i<ar.length;
i++)ne.appendChild(ar[i].cloneNode(true));
e.parentNode.replaceChild(ne,e);
}};
FourA_WYSIWYG_Engine.prototype.parseURL=function(url_str){var urlParts=new Array();
if(url_str){var pos,lastPos;
pos=url_str.indexOf('://');
if(pos!=-1){urlParts['protocol']=url_str.substring(0,pos);
lastPos=pos+3;
}for(var i=lastPos;
i<url_str.length;
i++){var chr=url_str.charAt(i);
if(chr==':')break;
if(chr=='/')break;
}pos=i;
urlParts['host']=url_str.substring(lastPos,pos);
urlParts['port']="";
lastPos=pos;
if(url_str.charAt(pos)==':'){pos=url_str.indexOf('/',lastPos);
urlParts['port']=url_str.substring(lastPos+1,pos);
}lastPos=pos;
pos=url_str.indexOf('?',lastPos);
if(pos==-1)pos=url_str.indexOf('#',lastPos);
if(pos==-1)pos=url_str.length;
urlParts['path']=url_str.substring(lastPos,pos);
lastPos=pos;
if(url_str.charAt(pos)=='?'){pos=url_str.indexOf('#');
pos=(pos==-1)?url_str.length:pos;
urlParts['query']=url_str.substring(lastPos+1,pos);
}lastPos=pos;
if(url_str.charAt(pos)=='#'){pos=url_str.length;
urlParts['anchor']=url_str.substring(lastPos+1,pos);
}}return urlParts;
};
FourA_WYSIWYG_Engine.prototype.serializeURL=function(up){var o="";
if(up['protocol'])o+=up['protocol']+"://";
if(up['host'])o+=up['host'];
if(up['port'])o+=":"+up['port'];
if(up['path'])o+=up['path'];
if(up['query'])o+="?"+up['query'];
if(up['anchor'])o+="#"+up['anchor'];
return o;
};
FourA_WYSIWYG_Engine.prototype.convertAbsoluteURLToRelativeURL=function(base_url,url_to_relative){var baseURL=this.parseURL(base_url);
var targetURL=this.parseURL(url_to_relative);
var strTok1;
var strTok2;
var breakPoint=0;
var outPath="";
var forceSlash=false;
if(targetURL.path=="")targetURL.path="/";
else forceSlash=true;
base_url=baseURL.path.substring(0,baseURL.path.lastIndexOf('/'));
strTok1=base_url.split('/');
strTok2=targetURL.path.split('/');
if(strTok1.length>=strTok2.length){for(var i=0;
i<strTok1.length;
i++){if(i>=strTok2.length||strTok1[i]!=strTok2[i]){breakPoint=i+1;
break;
}}}if(strTok1.length<strTok2.length){for(var i=0;
i<strTok2.length;
i++){if(i>=strTok1.length||strTok1[i]!=strTok2[i]){breakPoint=i+1;
break;
}}}if(breakPoint==1)return targetURL.path;
for(var i=0;
i<(strTok1.length-(breakPoint-1));
i++)outPath+="../";
for(var i=breakPoint-1;
i<strTok2.length;
i++){if(i!=(breakPoint-1))outPath+="/"+strTok2[i];
else outPath+=strTok2[i];
}targetURL.protocol=null;
targetURL.host=null;
targetURL.port=null;
targetURL.path=outPath==""&&forceSlash?"/":outPath;
var fileName=baseURL.path;
var pos;
if((pos=fileName.lastIndexOf('/'))!=-1)fileName=fileName.substring(pos+1);
if(fileName==targetURL.path&&targetURL.anchor!="")targetURL.path="";
if(targetURL.path==""&&!targetURL.anchor)targetURL.path=fileName!=""?fileName:"/";
return this.serializeURL(targetURL);
};
FourA_WYSIWYG_Engine.prototype.convertRelativeToAbsoluteURL=function(base_url,relative_url){var baseURL=this.parseURL(base_url);
var relURL=this.parseURL(relative_url);
if(relative_url==""||relative_url.charAt(0)=='/'||relative_url.indexOf('://')!=-1||relative_url.indexOf('mailto:')!=-1||relative_url.indexOf('javascript:')!=-1)return relative_url;
baseURLParts=baseURL['path'].split('/');
relURLParts=relURL['path'].split('/');
var newBaseURLParts=new Array();
for(var i=baseURLParts.length-1;
i>=0;
i--){if(baseURLParts[i].length==0)continue;
newBaseURLParts[newBaseURLParts.length]=baseURLParts[i];
}baseURLParts=newBaseURLParts.reverse();
var newRelURLParts=new Array();
var numBack=0;
for(var i=relURLParts.length-1;
i>=0;
i--){if(relURLParts[i].length==0||relURLParts[i]==".")continue;
if(relURLParts[i]=='..'){numBack++;
continue;
}if(numBack>0){numBack--;
continue;
}newRelURLParts[newRelURLParts.length]=relURLParts[i];
}relURLParts=newRelURLParts.reverse();
var len=baseURLParts.length-numBack;
var absPath=(len<=0?"":"/")+baseURLParts.slice(0,len).join('/')+"/"+relURLParts.join('/');
var start="",end="";
relURL.protocol=baseURL.protocol;
relURL.host=baseURL.host;
relURL.port=baseURL.port;
if(relURL.path.charAt(relURL.path.length-1)=="/")absPath+="/";
relURL.path=absPath;
return this.serializeURL(relURL);
};
FourA_WYSIWYG_Engine.prototype.convertURL=function(url,node,on_save){var prot=document.location.protocol;
var host=document.location.hostname;
var port=document.location.port;
if(prot=="file:")return url;
url=fouraWSYG.regexpReplace(url,'(http|https):///','/');
if(url.indexOf('mailto:')!=-1||url.indexOf('javascript:')!=-1||fouraWSYG.regexpReplace(url,'[ \t\r\n\+]|%20','').charAt(0)=="#")return url;
if(!fouraWSYG.isMSIE&&!on_save&&url.indexOf("://")==-1&&url.charAt(0)!='/')return fouraWSYG.settings['base_href']+url;
if(on_save&&fouraWSYG.getParam('relative_urls')){var curl=fouraWSYG.convertRelativeToAbsoluteURL(fouraWSYG.settings['base_href'],url);
if(curl.charAt(0)=='/')curl=fouraWSYG.settings['document_base_prefix']+curl;
var urlParts=fouraWSYG.parseURL(curl);
var tmpUrlParts=fouraWSYG.parseURL(fouraWSYG.settings['document_base_url']);
if(urlParts['host']==tmpUrlParts['host']&&(urlParts['port']==tmpUrlParts['port']))return fouraWSYG.convertAbsoluteURLToRelativeURL(fouraWSYG.settings['document_base_url'],curl);
}if(!fouraWSYG.getParam('relative_urls')){var urlParts=fouraWSYG.parseURL(url);
var baseUrlParts=fouraWSYG.parseURL(fouraWSYG.settings['base_href']);
url=fouraWSYG.convertRelativeToAbsoluteURL(fouraWSYG.settings['base_href'],url);
if(urlParts['anchor']&&urlParts['path']==baseUrlParts['path'])return"#"+urlParts['anchor'];
}if(fouraWSYG.getParam('remove_script_host')){var start="",portPart="";
if(port!="")portPart=":"+port;
start=prot+"//"+host+portPart+"/";
if(url.indexOf(start)==0)url=url.substring(start.length-1);
}return url;
};
FourA_WYSIWYG_Engine.prototype.convertAllRelativeURLs=function(body){var elms=body.getElementsByTagName("img");
for(var i=0;
i<elms.length;
i++){var src=fouraWSYG.getAttrib(elms[i],'src');
var msrc=fouraWSYG.getAttrib(elms[i],'mce_src');
if(msrc!="")src=msrc;
if(src!=""){src=fouraWSYG.convertRelativeToAbsoluteURL(fouraWSYG.settings['base_href'],src);
elms[i].setAttribute("src",src);
}}var elms=body.getElementsByTagName("a");
for(var i=0;
i<elms.length;
i++){var href=fouraWSYG.getAttrib(elms[i],'href');
var mhref=fouraWSYG.getAttrib(elms[i],'mce_href');
if(mhref!="")href=mhref;
if(href&&href!=""){href=fouraWSYG.convertRelativeToAbsoluteURL(fouraWSYG.settings['base_href'],href);
elms[i].setAttribute("href",href);
}}};
FourA_WYSIWYG_Engine.prototype.clearArray=function(a){for(var k in a)a[k]=null;
return a;
};
FourA_WYSIWYG_Engine.prototype._setEventsEnabled=function(node,state){var events=new Array('onfocus','onblur','onclick','ondblclick','onmousedown','onmouseup','onmouseover','onmousemove','onmouseout','onkeypress','onkeydown','onkeydown','onkeyup');
var evs=fouraWSYG.settings['event_elements'].split(',');
for(var y=0;
y<evs.length;
y++){var elms=node.getElementsByTagName(evs[y]);
for(var i=0;
i<elms.length;
i++){var event="";
for(var x=0;
x<events.length;
x++){if((event=fouraWSYG.getAttrib(elms[i],events[x]))!=''){event=fouraWSYG.cleanupEventStr(""+event);
if(!state)event="return true;"+event;
else event=event.replace(/^return true;/gi,'');
elms[i].removeAttribute(events[x]);
elms[i].setAttribute(events[x],event);
}}}}};
FourA_WYSIWYG_Engine.prototype._eventPatch=function(editor_id){var n,inst,win,e;
if(typeof(fouraWSYG)=="undefined")return true;
try{if(fouraWSYG.selectedInstance){win=fouraWSYG.selectedInstance.getWin();
if(win&&win.event){e=win.event;
if(!e.target)e.target=e.srcElement;
FourA_WYSIWYG_Engine.prototype.handleEvent(e);
return;
}}for(n in fouraWSYG.instances){inst=fouraWSYG.instances[n];
if(!fouraWSYG.isInstance(inst))continue;
fouraWSYG.selectedInstance=inst;
win=inst.getWin();
if(win&&win.event){e=win.event;
if(!e.target)e.target=e.srcElement;
FourA_WYSIWYG_Engine.prototype.handleEvent(e);
return;
}}}catch(ex){}};
FourA_WYSIWYG_Engine.prototype.unloadHandler=function(){fouraWSYG.triggerSave(true,true);
};
FourA_WYSIWYG_Engine.prototype.addEventHandlers=function(inst){var doc=inst.getDoc();
inst.switchSettings();
if(fouraWSYG.isMSIE){fouraWSYG.addEvent(doc,"keypress",FourA_WYSIWYG_Engine.prototype._eventPatch);
fouraWSYG.addEvent(doc,"keyup",FourA_WYSIWYG_Engine.prototype._eventPatch);
fouraWSYG.addEvent(doc,"keydown",FourA_WYSIWYG_Engine.prototype._eventPatch);
fouraWSYG.addEvent(doc,"mouseup",FourA_WYSIWYG_Engine.prototype._eventPatch);
fouraWSYG.addEvent(doc,"mousedown",FourA_WYSIWYG_Engine.prototype._eventPatch);
fouraWSYG.addEvent(doc,"click",FourA_WYSIWYG_Engine.prototype._eventPatch);
}else{fouraWSYG.addEvent(doc,"keypress",fouraWSYG.handleEvent);
fouraWSYG.addEvent(doc,"keydown",fouraWSYG.handleEvent);
fouraWSYG.addEvent(doc,"keyup",fouraWSYG.handleEvent);
fouraWSYG.addEvent(doc,"click",fouraWSYG.handleEvent);
fouraWSYG.addEvent(doc,"mouseup",fouraWSYG.handleEvent);
fouraWSYG.addEvent(doc,"mousedown",fouraWSYG.handleEvent);
fouraWSYG.addEvent(doc,"focus",fouraWSYG.handleEvent);
fouraWSYG.addEvent(doc,"blur",fouraWSYG.handleEvent);
eval('try { doc.designMode = "On"; } catch(e) {}');
}};
FourA_WYSIWYG_Engine.prototype.onMouseMove=function(){var inst;
if(!fouraWSYG.hasMouseMoved){inst=fouraWSYG.selectedInstance;
if(inst.isFocused){inst.undoBookmark=inst.selection.getBookmark();
fouraWSYG.hasMouseMoved=true;
}}};
FourA_WYSIWYG_Engine.prototype.cancelEvent=function(e){if(fouraWSYG.isMSIE){e.returnValue=false;
e.cancelBubble=true;
}else e.preventDefault();
};
FourA_WYSIWYG_Engine.prototype.addEvent=function(o,n,h){if(o.attachEvent)o.attachEvent("on"+n,h);
else o.addEventListener(n,h,false);
};
FourA_WYSIWYG_Engine.prototype.addSelectAccessibility=function(e,s,w){if(!s._isAccessible){s.onkeydown=fouraWSYG.accessibleEventHandler;
s.onblur=fouraWSYG.accessibleEventHandler;
s._isAccessible=true;
s._win=w;
}return false;
};
FourA_WYSIWYG_Engine.prototype.accessibleEventHandler=function(e){var win=this._win;
e=fouraWSYG.isMSIE?win.event:e;
var elm=fouraWSYG.isMSIE?e.srcElement:e.target;
if(e.type=="blur"){if(elm.oldonchange){elm.onchange=elm.oldonchange;
elm.oldonchange=null;
}return true;
}if(elm.nodeName=="SELECT"&&!elm.oldonchange){elm.oldonchange=elm.onchange;
elm.onchange=null;
}if(e.keyCode==13||e.keyCode==32){elm.onchange=elm.oldonchange;
elm.onchange();
elm.oldonchange=null;
fouraWSYG.cancelEvent(e);
return false;
}return true;
};
FourA_WYSIWYG_Engine.prototype._resetIframeHeight=function(){var ife;
if(fouraWSYG.isMSIE&&!fouraWSYG.isOpera){ife=fouraWSYG.selectedInstance.iframeElement;
if(ife._oldHeight){ife.style.height=ife._oldHeight;
ife.height=ife._oldHeight;
}}};
function FourA_WYSIWYG_Selection(inst){this.instance=inst;
};
FourA_WYSIWYG_Selection.prototype={getSelectedHTML:function(){var inst=this.instance;
var e,r=this.getRng(),h;
if(fouraWSYG.isSafari){return r.toString();
}e=document.createElement("body");
if(fouraWSYG.isGecko)e.appendChild(r.cloneContents());
else e.innerHTML=r.item?r.item(0).outerHTML:r.htmlText;
h=fouraWSYG._cleanupHTML(inst,inst.contentDocument,inst.settings,e,e,false,true,false);
if(fouraWSYG.getParam("convert_fonts_to_spans"))fouraWSYG.convertSpansToFonts(inst.getDoc());
return h;
},getSelectedText:function(){var inst=this.instance;
var d,r,s,t;
if(fouraWSYG.isMSIE){d=inst.getDoc();
if(d.selection.type=="Text"){r=d.selection.createRange();
t=r.text;
}else t='';
}else{s=this.getSel();
if(s&&s.toString)t=s.toString();
else t='';
}return t;
},getBookmark:function(simple){var rng=this.getRng();
var doc=this.instance.getDoc();
var sp,le,s,e,nl,i,si,ei;
var trng,sx,sy,xx=-999999999;
if(fouraWSYG.isOpera)return null;
sx=doc.body.scrollLeft+doc.documentElement.scrollLeft;
sy=doc.body.scrollTop+doc.documentElement.scrollTop;
if(fouraWSYG.isSafari||fouraWSYG.isGecko)return{rng:rng,scrollX:sx,scrollY:sy};
if(fouraWSYG.isMSIE){if(simple)return{rng:rng};
if(rng.item){e=rng.item(0);
nl=doc.getElementsByTagName(e.nodeName);
for(i=0;
i<nl.length;
i++){if(e==nl[i]){sp=i;
break;
}}return{tag:e.nodeName,index:sp,scrollX:sx,scrollY:sy};
}else{trng=rng.duplicate();
trng.collapse(true);
sp=Math.abs(trng.move('character',xx));
trng=rng.duplicate();
trng.collapse(false);
le=Math.abs(trng.move('character',xx))-sp;
return{start:sp,length:le,scrollX:sx,scrollY:sy};
}}if(fouraWSYG.isGecko){s=fouraWSYG.getParentElement(rng.startContainer);
for(si=0;
si<s.childNodes.length&&s.childNodes[si]!=rng.startContainer;
si++);
nl=doc.getElementsByTagName(s.nodeName);
for(i=0;
i<nl.length;
i++){if(s==nl[i]){sp=i;
break;
}}e=fouraWSYG.getParentElement(rng.endContainer);
for(ei=0;
ei<e.childNodes.length&&e.childNodes[ei]!=rng.endContainer;
ei++);
nl=doc.getElementsByTagName(e.nodeName);
for(i=0;
i<nl.length;
i++){if(e==nl[i]){le=i;
break;
}}return{startTag:s.nodeName,start:sp,startIndex:si,endTag:e.nodeName,end:le,endIndex:ei,startOffset:rng.startOffset,endOffset:rng.endOffset,scrollX:sx,scrollY:sy};
}return null;
},moveToBookmark:function(bookmark){var rng,nl,i;
var inst=this.instance;
var doc=inst.getDoc();
var win=inst.getWin();
var sel=this.getSel();
if(!bookmark)return false;
if(fouraWSYG.isSafari){sel.setBaseAndExtent(bookmark.startContainer,bookmark.startOffset,bookmark.endContainer,bookmark.endOffset);
return true;
}if(fouraWSYG.isMSIE){if(bookmark.rng){bookmark.rng.select();
return true;
}win.focus();
if(bookmark.tag){rng=inst.getBody().createControlRange();
nl=doc.getElementsByTagName(bookmark.tag);
if(nl.length>bookmark.index){try{rng.addElement(nl[bookmark.index]);
}catch(ex){}}}else{rng=inst.getSel().createRange();
rng.moveToElementText(inst.getBody());
rng.collapse(true);
rng.moveStart('character',bookmark.start);
rng.moveEnd('character',bookmark.length);
}rng.select();
win.scrollTo(bookmark.scrollX,bookmark.scrollY);
return true;
}if(fouraWSYG.isGecko&&bookmark.rng){sel.removeAllRanges();
sel.addRange(bookmark.rng);
win.scrollTo(bookmark.scrollX,bookmark.scrollY);
return true;
}if(fouraWSYG.isGecko){rng=doc.createRange();
nl=doc.getElementsByTagName(bookmark.startTag);
if(nl.length>bookmark.start)rng.setStart(nl[bookmark.start].childNodes[bookmark.startIndex],bookmark.startOffset);
nl=doc.getElementsByTagName(bookmark.endTag);
if(nl.length>bookmark.end)rng.setEnd(nl[bookmark.end].childNodes[bookmark.endIndex],bookmark.endOffset);
sel.removeAllRanges();
sel.addRange(rng);
win.scrollTo(bookmark.scrollX,bookmark.scrollY);
return true;
}return false;
},selectNode:function(node,collapse,select_text_node,to_start){var inst=this.instance,sel,rng,nodes;
if(!node)return;
if(typeof(collapse)=="undefined")collapse=true;
if(typeof(select_text_node)=="undefined")select_text_node=false;
if(typeof(to_start)=="undefined")to_start=true;
if(fouraWSYG.isMSIE){rng=inst.getBody().createTextRange();
try{rng.moveToElementText(node);
if(collapse)rng.collapse(to_start);
rng.select();
}catch(e){}}else{sel=this.getSel();
if(!sel)return;
if(fouraWSYG.isSafari){sel.setBaseAndExtent(node,0,node,node.innerText.length);
if(collapse){if(to_start)sel.collapseToStart();
else sel.collapseToEnd();
}this.scrollToNode(node);
return;
}rng=inst.getDoc().createRange();
if(select_text_node){nodes=fouraWSYG.getNodeTree(node,new Array(),3);
if(nodes.length>0)rng.selectNodeContents(nodes[0]);
else rng.selectNodeContents(node);
}else rng.selectNode(node);
if(collapse){if(!to_start&&node.nodeType==3){rng.setStart(node,node.nodeValue.length);
rng.setEnd(node,node.nodeValue.length);
}else rng.collapse(to_start);
}sel.removeAllRanges();
sel.addRange(rng);
}this.scrollToNode(node);
fouraWSYG.selectedElement=null;
if(node.nodeType==1)fouraWSYG.selectedElement=node;
},scrollToNode:function(node){var inst=this.instance;
var pos,doc,scrollX,scrollY,height;
pos=fouraWSYG.getAbsPosition(node);
doc=inst.getDoc();
scrollX=doc.body.scrollLeft+doc.documentElement.scrollLeft;
scrollY=doc.body.scrollTop+doc.documentElement.scrollTop;
height=fouraWSYG.isMSIE?document.getElementById(inst.editorId).style.pixelHeight:inst.targetElement.clientHeight;
if(!fouraWSYG.settings['auto_resize']&&!(pos.absTop>scrollY&&pos.absTop<(scrollY-25+height)))inst.contentWindow.scrollTo(pos.absLeft,pos.absTop-height+25);
},getSel:function(){var inst=this.instance;
if(fouraWSYG.isMSIE&&!fouraWSYG.isOpera)return inst.getDoc().selection;
return inst.contentWindow.getSelection();
},getRng:function(){var inst=this.instance;
var sel=this.getSel();
if(sel==null)return null;
if(fouraWSYG.isMSIE&&!fouraWSYG.isOpera)return sel.createRange();
if(fouraWSYG.isSafari&&!sel.getRangeAt)return''+window.getSelection();
return sel.getRangeAt(0);
},getFocusElement:function(){var inst=this.instance;
if(fouraWSYG.isMSIE&&!fouraWSYG.isOpera){var doc=inst.getDoc();
var rng=doc.selection.createRange();
var elm=rng.item?rng.item(0):rng.parentElement();
}else{if(inst.isHidden())return inst.getBody();
var sel=this.getSel();
var rng=this.getRng();
if(!sel||!rng)return null;
var elm=rng.commonAncestorContainer;
if(!rng.collapsed){if(rng.startContainer==rng.endContainer){if(rng.startOffset-rng.endOffset<2){if(rng.startContainer.hasChildNodes())elm=rng.startContainer.childNodes[rng.startOffset];
}}}elm=fouraWSYG.getParentElement(elm);
}return elm;
}};
function FourA_WYSIWYG_UndoRedo(inst){this.instance=inst;
this.undoLevels=new Array();
this.undoIndex=0;
this.typingUndoIndex=-1;
this.undoRedo=true;
};
FourA_WYSIWYG_UndoRedo.prototype={add:function(l){var b;
if(l){this.undoLevels[this.undoLevels.length]=l;
return true;
}var inst=this.instance;
if(this.typingUndoIndex!=-1){this.undoIndex=this.typingUndoIndex;
}var newHTML=fouraWSYG.trim(inst.getBody().innerHTML);
if(this.undoLevels[this.undoIndex]&&newHTML!=this.undoLevels[this.undoIndex].content){fouraWSYG.dispatchCallback(inst,'onchange_callback','onChange',inst);
var customUndoLevels=fouraWSYG.settings['custom_undo_redo_levels'];
if(customUndoLevels!=-1&&this.undoLevels.length>customUndoLevels){for(var i=0;
i<this.undoLevels.length-1;
i++){this.undoLevels[i]=this.undoLevels[i+1];
}this.undoLevels.length--;
this.undoIndex--;
}b=inst.undoBookmark;
if(!b)b=inst.selection.getBookmark();
this.undoIndex++;
this.undoLevels[this.undoIndex]={content:newHTML,bookmark:b};
this.undoLevels.length=this.undoIndex+1;
return true;
}return false;
},undo:function(){var inst=this.instance;
if(this.undoIndex>0){this.undoIndex--;
fouraWSYG.setInnerHTML(inst.getBody(),this.undoLevels[this.undoIndex].content);
inst.repaint();
if(inst.settings.custom_undo_redo_restore_selection)inst.selection.moveToBookmark(this.undoLevels[this.undoIndex].bookmark);
}},redo:function(){var inst=this.instance;
fouraWSYG.execCommand("mceEndTyping");
if(this.undoIndex<(this.undoLevels.length-1)){this.undoIndex++;
fouraWSYG.setInnerHTML(inst.getBody(),this.undoLevels[this.undoIndex].content);
inst.repaint();
if(inst.settings.custom_undo_redo_restore_selection)inst.selection.moveToBookmark(this.undoLevels[this.undoIndex].bookmark);
}fouraWSYG.triggerNodeChange();
}};
var FourA_WYSIWYG_ForceParagraphs={_insertPara:function(inst,e){function isEmpty(para){function isEmptyHTML(html){return html.replace(new RegExp('[ \t\r\n]+','g'),'').toLowerCase()=="";
}if(para.getElementsByTagName("img").length>0)return false;
if(para.getElementsByTagName("table").length>0)return false;
if(para.getElementsByTagName("hr").length>0)return false;
var nodes=fouraWSYG.getNodeTree(para,new Array(),3);
for(var i=0;
i<nodes.length;
i++){if(!isEmptyHTML(nodes[i].nodeValue))return false;
}return true;
}var doc=inst.getDoc();
var sel=inst.getSel();
var win=inst.contentWindow;
var rng=sel.getRangeAt(0);
var body=doc.body;
var rootElm=doc.documentElement;
var blockName="P";
var rngBefore=doc.createRange();
rngBefore.setStart(sel.anchorNode,sel.anchorOffset);
rngBefore.collapse(true);
var rngAfter=doc.createRange();
rngAfter.setStart(sel.focusNode,sel.focusOffset);
rngAfter.collapse(true);
var direct=rngBefore.compareBoundaryPoints(rngBefore.START_TO_END,rngAfter)<0;
var startNode=direct?sel.anchorNode:sel.focusNode;
var startOffset=direct?sel.anchorOffset:sel.focusOffset;
var endNode=direct?sel.focusNode:sel.anchorNode;
var endOffset=direct?sel.focusOffset:sel.anchorOffset;
startNode=startNode.nodeName=="BODY"?startNode.firstChild:startNode;
endNode=endNode.nodeName=="BODY"?endNode.firstChild:endNode;
var startBlock=fouraWSYG.getParentBlockElement(startNode);
var endBlock=fouraWSYG.getParentBlockElement(endNode);
if(startBlock&&new RegExp('absolute|relative|static','gi').test(startBlock.style.position))startBlock=null;
if(endBlock&&new RegExp('absolute|relative|static','gi').test(endBlock.style.position))endBlock=null;
if(startBlock!=null){blockName=startBlock.nodeName;
if(blockName=="TD"||blockName=="TABLE"||(blockName=="DIV"&&new RegExp('left|right','gi').test(startBlock.style.cssFloat)))blockName="P";
}if(fouraWSYG.getParentElement(startBlock,"OL,UL")!=null)return false;
if((startBlock!=null&&startBlock.nodeName=="TABLE")||(endBlock!=null&&endBlock.nodeName=="TABLE"))startBlock=endBlock=null;
var paraBefore=(startBlock!=null&&startBlock.nodeName==blockName)?startBlock.cloneNode(false):doc.createElement(blockName);
var paraAfter=(endBlock!=null&&endBlock.nodeName==blockName)?endBlock.cloneNode(false):doc.createElement(blockName);
if(/^(H[1-6])$/.test(blockName))paraAfter=doc.createElement("p");
var startChop=startNode;
var endChop=endNode;
node=startChop;
do{if(node==body||node.nodeType==9||fouraWSYG.isBlockElement(node))break;
startChop=node;
}while((node=node.previousSibling?node.previousSibling:node.parentNode));
node=endChop;
do{if(node==body||node.nodeType==9||fouraWSYG.isBlockElement(node))break;
endChop=node;
}while((node=node.nextSibling?node.nextSibling:node.parentNode));
if(startChop.nodeName=="TD")startChop=startChop.firstChild;
if(endChop.nodeName=="TD")endChop=endChop.lastChild;
if(startBlock==null){rng.deleteContents();
sel.removeAllRanges();
if(startChop!=rootElm&&endChop!=rootElm){rngBefore=rng.cloneRange();
if(startChop==body)rngBefore.setStart(startChop,0);
else rngBefore.setStartBefore(startChop);
paraBefore.appendChild(rngBefore.cloneContents());
if(endChop.parentNode.nodeName==blockName)endChop=endChop.parentNode;
rng.setEndAfter(endChop);
if(endChop.nodeName!="#text"&&endChop.nodeName!="BODY")rngBefore.setEndAfter(endChop);
var contents=rng.cloneContents();
if(contents.firstChild&&(contents.firstChild.nodeName==blockName||contents.firstChild.nodeName=="BODY"))paraAfter.innerHTML=contents.firstChild.innerHTML;
else paraAfter.appendChild(contents);
if(isEmpty(paraBefore))paraBefore.innerHTML="&nbsp;";
if(isEmpty(paraAfter))paraAfter.innerHTML="&nbsp;";
rng.deleteContents();
rngAfter.deleteContents();
rngBefore.deleteContents();
paraAfter.normalize();
rngBefore.insertNode(paraAfter);
paraBefore.normalize();
rngBefore.insertNode(paraBefore);
}else{body.innerHTML="<"+blockName+">&nbsp;</"+blockName+"><"+blockName+">&nbsp;</"+blockName+">";
paraAfter=body.childNodes[1];
}inst.selection.selectNode(paraAfter,true,true);
return true;
}if(startChop.nodeName==blockName)rngBefore.setStart(startChop,0);
else rngBefore.setStartBefore(startChop);
rngBefore.setEnd(startNode,startOffset);
paraBefore.appendChild(rngBefore.cloneContents());
rngAfter.setEndAfter(endChop);
rngAfter.setStart(endNode,endOffset);
var contents=rngAfter.cloneContents();
if(contents.firstChild&&contents.firstChild.nodeName==blockName){paraAfter.innerHTML=contents.firstChild.innerHTML;
}else paraAfter.appendChild(contents);
if(isEmpty(paraBefore))paraBefore.innerHTML="&nbsp;";
if(isEmpty(paraAfter))paraAfter.innerHTML="&nbsp;";
var rng=doc.createRange();
if(!startChop.previousSibling&&startChop.parentNode.nodeName.toUpperCase()==blockName){rng.setStartBefore(startChop.parentNode);
}else{if(rngBefore.startContainer.nodeName.toUpperCase()==blockName&&rngBefore.startOffset==0)rng.setStartBefore(rngBefore.startContainer);
else rng.setStart(rngBefore.startContainer,rngBefore.startOffset);
}if(!endChop.nextSibling&&endChop.parentNode.nodeName.toUpperCase()==blockName)rng.setEndAfter(endChop.parentNode);
else rng.setEnd(rngAfter.endContainer,rngAfter.endOffset);
rng.deleteContents();
rng.insertNode(paraAfter);
rng.insertNode(paraBefore);
paraAfter.normalize();
paraBefore.normalize();
inst.selection.selectNode(paraAfter,true,true);
return true;
},_handleBackSpace:function(inst){var r=inst.getRng(),sn=r.startContainer,nv,s=false;
if(sn&&sn.nextSibling&&sn.nextSibling.nodeName=="BR"){nv=sn.nodeValue;
if(nv!=null&&nv.length>=r.startOffset&&nv.charAt(r.startOffset-1)==' ')s=true;
if(nv!=null&&r.startOffset==nv.length)sn.nextSibling.parentNode.removeChild(sn.nextSibling);
}return s;
}};
function FourA_WYSIWYG_Layer(id,bm){this.id=id;
this.blockerElement=null;
this.events=false;
this.element=null;
this.blockMode=typeof(bm)!='undefined'?bm:true;
this.doc=document;
};
FourA_WYSIWYG_Layer.prototype={moveRelativeTo:function(re,p){var rep=this.getAbsPosition(re);
var w=parseInt(re.offsetWidth);
var h=parseInt(re.offsetHeight);
var e=this.getElement();
var ew=parseInt(e.offsetWidth);
var eh=parseInt(e.offsetHeight);
var x,y;
switch(p){case"tl":x=rep.absLeft;
y=rep.absTop;
break;
case"tr":x=rep.absLeft+w;
y=rep.absTop;
break;
case"bl":x=rep.absLeft;
y=rep.absTop+h;
break;
case"br":x=rep.absLeft+w;
y=rep.absTop+h;
break;
case"cc":x=rep.absLeft+(w/2)-(ew/2);
y=rep.absTop+(h/2)-(eh/2);
break;
}this.moveTo(x,y);
},moveBy:function(x,y){var e=this.getElement();
this.moveTo(parseInt(e.style.left)+x,parseInt(e.style.top)+y);
},moveTo:function(x,y){var e=this.getElement();
e.style.left=x+"px";
e.style.top=y+"px";
this.updateBlocker();
},resizeBy:function(w,h){var e=this.getElement();
this.resizeTo(parseInt(e.style.width)+w,parseInt(e.style.height)+h);
},resizeTo:function(w,h){var e=this.getElement();
if(w!=null)e.style.width=w+"px";
if(h!=null)e.style.height=h+"px";
this.updateBlocker();
},show:function(){this.getElement().style.display='block';
this.updateBlocker();
},hide:function(){this.getElement().style.display='none';
this.updateBlocker();
},isVisible:function(){return this.getElement().style.display=='block';
},getElement:function(){if(!this.element)this.element=this.doc.getElementById(this.id);
return this.element;
},setBlockMode:function(s){this.blockMode=s;
},updateBlocker:function(){var e,b,x,y,w,h;
b=this.getBlocker();
if(b){if(this.blockMode){e=this.getElement();
x=this.parseInt(e.style.left);
y=this.parseInt(e.style.top);
w=this.parseInt(e.offsetWidth);
h=this.parseInt(e.offsetHeight);
b.style.left=x+'px';
b.style.top=y+'px';
b.style.width=w+'px';
b.style.height=h+'px';
b.style.display=e.style.display;
}else b.style.display='none';
}},getBlocker:function(){var d,b;
if(!this.blockerElement&&this.blockMode){d=this.doc;
b=d.createElement("iframe");
b.style.cssText='display: none; position: absolute; left: 0; top: 0'; b.src='javascript:false;';
b.frameBorder='0';
b.scrolling='no';
d.body.appendChild(b);
this.blockerElement=b;
}return this.blockerElement;
},getAbsPosition:function(n){var p={absLeft:0,absTop:0};
while(n){p.absLeft+=n.offsetLeft;
p.absTop+=n.offsetTop;
n=n.offsetParent;
}return p;
},create:function(n,c,p){var d=this.doc,e=d.createElement(n);
e.setAttribute('id',this.id);
if(c)e.className=c;
if(!p)p=d.body;
p.appendChild(e);
return this.element=e;
},parseInt:function(s){if(s==null||s=='')return 0;
return parseInt(s);
}};
function FourA_WYSIWYG_Menu(){var id;
if(typeof(fouraWSYG.menuCounter)=="undefined")fouraWSYG.menuCounter=0;
id="mc_menu_"+fouraWSYG.menuCounter++;
FourA_WYSIWYG_Layer.call(this,id,true);
this.id=id;
this.items=new Array();
this.needsUpdate=true;
};
FourA_WYSIWYG_Menu.prototype=fouraWSYG.extend(FourA_WYSIWYG_Layer.prototype,{init:function(s){var n;
this.settings={separator_class:'mceMenuSeparator',title_class:'mceMenuTitle',disabled_class:'mceMenuDisabled',menu_class:'mceMenu',drop_menu:true};
for(n in s)this.settings[n]=s[n];
this.create('div',this.settings.menu_class);
},clear:function(){this.items=new Array();
},addTitle:function(t){this.add({type:'title',text:t});
},addDisabled:function(t){this.add({type:'disabled',text:t});
},addSeparator:function(){this.add({type:'separator'});
},addItem:function(t,js){this.add({text:t,js:js});
},add:function(mi){this.items[this.items.length]=mi;
this.needsUpdate=true;
},update:function(){var e=this.getElement(),h='',i,t,m=this.items,s=this.settings;
if(this.settings.drop_menu)h+='<span class="mceMenuLine"></span>';
h+='<table border="0" cellpadding="0" cellspacing="0">';
for(i=0;
i<m.length;
i++){t=fouraWSYG.xmlEncode(m[i].text);
c=m[i].class_name?' class="'+m[i].class_name+'"':'';
switch(m[i].type){case'separator':h+='<tr class="'+s.separator_class+'"><td>';
break;
case'title':h+='<tr class="'+s.title_class+'"><td><span'+c+'>'+t+'</span>';
break;
case'disabled':h+='<tr class="'+s.disabled_class+'"><td><span'+c+'>'+t+'</span>';
break;
default:h+='<tr><td><a href="javascript:void(0);" onmousedown="'+fouraWSYG.xmlEncode(m[i].js)+';return false;"><span'+c+'>'+t+'</span></a>';
}h+='</td></tr>';
}h+='</table>';
e.innerHTML=h;
this.needsUpdate=false;
this.updateBlocker();
},show:function(){var nl,i;
if(fouraWSYG.lastMenu==this)return;
if(this.needsUpdate)this.update();
if(fouraWSYG.lastMenu&&fouraWSYG.lastMenu!=this)fouraWSYG.lastMenu.hide();
FourA_WYSIWYG_Layer.prototype.show.call(this);
if(!fouraWSYG.isOpera){}fouraWSYG.lastMenu=this;
}});
FourA_WYSIWYG_Engine.prototype.debug=function(){var m="",e,a,i;
e=document.getElementById("tinymce_debug");
if(!e){var d=document.createElement("div");
d.setAttribute("className","debugger");
d.className="debugger";d.innerHTML='Debug output:<textarea id="tinymce_debug" style="width: 100%; height: 300px" wrap="nowrap" mce_editable="false"></textarea>';
document.body.appendChild(d);
e=document.getElementById("tinymce_debug");
}a=this.debug.arguments;
for(i=0;
i<a.length;
i++){m+=a[i];
if(i<a.length-1)m+=', ';
}e.value+=m+"\n";
};

