ccms.html.use();ccms.namespace('ccms.editor');ccms.namespace('ccms.editor.RichText');ccms.editor.RichText=(function(){var self=null;var startup_configs=[];var patch_config=function(config){config.mode='none';config.strict_loading_mode=true;config.auto_reset_designmode=true;config.cleanup_callback='ccms.editor.mce_cleanup';config.fix_list_elements=true;config.fix_table_elements=true;config.convert_urls=false;config.convert_fonts_to_spans=true;config.spellchecker_rpc_url='/tinyspell';if(typeof config.gecko_spellcheck=='undefined')
config.gecko_spellcheck=true;if(config.gecko_spellcheck&&ccms.browser.isGecko&&config.plugins)
config.plugins=config.plugins.replace(/,spellchecker/,'');return config;};return{cleanups:ccms.editor.RichText.cleanups||[],done_init:false,track_installations:false,installations:{},install:function(root_element){self.init();if(typeof root_element=='object'){ccms.arrayOf(root_element.getElementsByTagName('form')).forEach(function(form){ccms.event.attach(form,'submit',self.sync);});}
ccms.dom.getElementsByClassName('RichTextEditable','textarea',root_element).forEach(function(textarea){self.add(textarea);});},init:function(){startup_configs.forEach(function(config){tinyMCE.init(config);});ccms.events.add('ccms.editor.RichText.onAfterInit');ccms.events.fire('ccms.editor.RichText.onAfterInit');self.init=function(){};self.done_init=true;},flushInstallations:function(){self.installations={};},add:function(textarea){var id;if(!(id=textarea.getAttribute('id')))
textarea.setAttribute('id',id=ccms.dom.generateId());if(!self.track_installations||typeof self.installations[id]=='undefined'){var cb=textarea.className.match(/RichText-([a-zA-Z0-9_-]+)/);if(cb&&typeof ccms.editor.mce_configs[cb[1]]=='object')
self.addControl(textarea,ccms.editor.mce_configs[cb[1]]);else
self.addControl(textarea,ccms.editor.mce_config);self.installations[id]=id;}},remove:function(textarea){var id;if((id=textarea.getAttribute('id'))){try{self.removeControl(textarea);}
catch(e){;}
delete self.installations[id];}},sync:function(){tinyMCE.triggerSave();var cs=self.installations;for(var i in cs){var c=$(cs[i]);c.value=c.value.trim();}},rsync:function(id){if(typeof id=='undefined'){var cs=self.installations;for(var i in cs){self.rsyncInstance(i);}}
else{self.rsyncInstance(id);}},rsyncInstance:function(id){var i=self._getInstance(id);if(i)i.load();},uninstall:function(root_element){ccms.dom.getElementsByClassName('RichTextEditable','textarea',root_element).forEach(function(textarea){self.remove(textarea);});},focus:function(editor_id){tinyMCE.execInstanceCommand(editor_id,'mceFocus');},appendHTML:function(editor_id,html){var doc=self._getInstance(editor_id).getDoc();var body=doc.body;var div=doc.createElement('div');div.innerHTML=html;var node=div.firstChild;while(node){var clone=node.cloneNode(true);body.appendChild(clone);node=node.nextSibling;}
body.appendChild(doc.createTextNode(' '));},setContent:function(html){tinyMCE.activeEditor.setContent(html);},getContent:function(){return tinyMCE.activeEditor.getContent();},_getInstance:function(id){return tinyMCE.get(id);},addControl:function(textarea,optional_config){if(typeof optional_config=='object')
(new tinymce.Editor(textarea.id,optional_config)).render();else
tinyMCE.execCommand('mceAddControl',false,textarea.id);},removeControl:function(textarea){tinyMCE.execCommand('mceRemoveControl',false,textarea.id);},setup:function(){self=this;ccms.editor.RichText.setup=function(){};var config;if(typeof ccms.editor.mce_config=='object'){config=ccms.editor.mce_config;}
else{config=ccms.editor.mce_config={theme:"advanced",theme_advanced_buttons1:"bold,italic,underline,strikethrough,separator,bullist,numlist,separator,link,unlink,separator,blockquote,separator,undo,redo,separator,removeformat,spellchecker",theme_advanced_buttons2:"",theme_advanced_buttons3:"",theme_advanced_blockformats:"p,h2,h3,h4,pre",theme_advanced_toolbar_location:"top",theme_advanced_toolbar_align:"left",theme_advanced_path_location:"none",content_css:'/themes/base/css/ccms.editor.RichText.content.css',popup_css_add:'/themes/base/css/mceplugin.css',plugins:'inlinepopups,spellchecker',auto_focus:false,valid_elements:"+a[id|rel|rev|charset|hreflang|dir|lang|tabindex|accesskey|type|name|href|target|title|class],-strong/-b,-em/-i,-u,-del/-strike,-ins,-p[id|dir|align|class],-ol,-ul,-li,br,img[id|dir|lang|longdesc|usemap|src|border|alt=|title|hspace|vspace|width|height|align],-sub,-sup,-blockquote[dir],-table[border=0|cellspacing|cellpadding|width|height|align|summary|dir|id|lang|bgcolor|background|bordercolor],-tr[id|lang|dir|rowspan|width|height|align|valign|bgcolor|background|bordercolor],tbody[id],thead[id],tfoot[id],+td[id|lang|dir|colspan|rowspan|width|height|align|valign|bgcolor|background|bordercolor|scope],+th[id|lang|dir|colspan|rowspan|width|height|align|valign|scope],caption[id|lang|dir],-div[id|dir|align],-span[class|align|style],-font[color],-pre[class|align],address[class|align],-h1[id|dir|align],-h2[id|dir|align],-h3[id|dir|align],-h4[id|dir|align],-h5[id|dir|align],-h6[id|dir|align],hr,"};}
if(typeof ccms.editor.mce_configs=='object'){ccms.editor.mce_configs['__default__']=config;}
else{ccms.editor.mce_configs={'__default__':config};}
ccms.forEachProperty(ccms.editor.mce_configs,function(id,config){patch_config(config);startup_configs.push(config);});if(typeof tinyMCE_GZ=='undefined'){this.onPluginsLoaded();}
else{var plugins=[],themes=[],languages=['en'];startup_configs.forEach(function(config){if(typeof config.plugins=='string'){plugins=plugins.concat(config.plugins.split(','));}
if(typeof config.theme=='string'){themes.push(config.theme);}
if(typeof config.language=='string'){languages.push(config.language);}});tinyMCE_GZ.init({plugins:plugins.join(','),themes:themes.join(','),languages:languages.join(','),disk_cache:true,debug:false,page_name:'/mce_compressor.js'},this.onPluginsLoaded);}},onPluginsLoaded:function(){ccms.event.onDOMReady(function(){ccms.widgets.addInstaller('RichText',ccms.editor.RichText.install,function(){return ccms.dom.ready;});});}};})();ccms.editor.mce_cleanup=function(type,value){var i,elements,el;ccms.editor.RichText.cleanups.forEach(function(cb){value=cb(type,value);});switch(type){case"get_from_editor":value=value.replace(/<a\s+name=(['"][^'"]+['"])(\s*\/?>)/g,'<a id=$1$2');value=value.replace(/<strike>/g,'<del>');value=value.replace(/<\/strike>/g,'</del>');value=value.replace(/<u>/g,'<span class="underline">');value=value.replace(/<\/u>/g,'</span>');break;case"insert_to_editor":value=value.replace(/<a\s+id=(['"][^'"]+['"])(\s*(\/>|>\s*<\/a>))/g,'<a name=$1$2');value=value.replace(/<del>/g,'<strike>');value=value.replace(/<\/del>/g,'</strike>');value=value.replace(/span class=['"]underline['"]/g,'span style="text-decoration: underline;"');elements=value.match(/<a\s*(href=("[^"]+"))(\s+[^>]+)>/g);if(elements)elements.forEach(function(bit){value=value.replace(bit,bit.replace(/(\s*(name)="[^"]+")/g,''));});break;case"get_from_editor_dom":ccms.dom.getElementsBy(function(n){return n.target=='_blank';},'a',value).forEach(function(node){ccms.dom.addClass(node,'external');node.setAttribute('target','');});ccms.dom.getElementsBy(function(n){return n.getAttribute('align')&&n.getAttribute('align').match(/(left|right|center)/);},'*',value).forEach(function(node){ccms.dom.addClass(node,'align_'+node.getAttribute('align'));node.setAttribute('align','');});ccms.arrayOf(value.getElementsByTagName('strike')).forEach(function(n){var o=value.ownerDocument.createElement('del');n.parentNode.insertBefore(o,n);o.innerHTML=n.innerHTML;n.parentNode.removeChild(n);});ccms.arrayOf(value.getElementsByTagName('u')).forEach(function(n){var o=value.ownerDocument.createElement('span');ccms.dom.addClass(o,'underline');n.parentNode.insertBefore(o,n);o.innerHTML=n.innerHTML;n.parentNode.removeChild(n);});ccms.dom.getElementsBy(function(n){return n.getAttribute('style')&&n.getAttribute('style').toString().match(/text-decoration:\s*(underline|line-through)/);},'span',value).forEach(function(n){var o=n;if(n.getAttribute('style').match('underline'))ccms.dom.addClass(n,'underline');if(n.getAttribute('style').match('line-through')){o=value.ownerDocument.createElement('del');var h=n.innerHTML;ccms.dom.removeChildren(n);n.appendChild(o);o.innerHTML=h;}
n.setAttribute('style','');});break;case"insert_to_editor_dom":ccms.arrayOf(value.getElementsByTagName('del')).forEach(function(n){var o=document.createElement('strike');o.innerHTML=n.innerHTML;n.parentNode.insertBefore(o,n);n.parentNode.removeChild(n);});ccms.dom.getElementsByClassName('underline','span',value).forEach(function(n){ccms.dom.removeClass(n,'underline');ccms.dom.setStyle(n,'text-decoration','underline');});ccms.dom.getElementsByClassName('underline','i',value).forEach(function(n){var u=document.createElement('u');u.innerHTML=n.innerHTML;n.parentNode.insertBefore(u,n);n.parentNode.removeChild(n);});elements=value.getElementsByTagName('span');for(i=0;i<elements.length;++i){el=elements[i];var color=el.style.color;if(color!=null&&color!==''){var f=document.createElement('font');f.innerHTML=el.innerHTML;tinyMCE.setAttrib(f,'color',tinyMCE.convertRGBToHex(color));el.parentNode.insertBefore(f,el);el.parentNode.removeChild(el);}}
ccms.dom.getElementsByClassName('external','a',value).forEach(function(n){ccms.dom.removeClass(n,'external');n.setAttribute('target','_blank');});ccms.dom.getElementsByClassName('align_left|align_right|align_center','*',value).forEach(function(n){var klass=n.className.match(/align_([a-z]+)/);ccms.dom.removeClass(n,klass[0]);n.setAttribute('align',klass[1]);});break;}
return value;};ccms.editor.RichText.setup();