HTMLArea.TextStyle=HTMLArea.Plugin.extend({constructor:function(editor,pluginName){this.base(editor,pluginName);},configurePlugin:function(editor){this.cssArray={};this.classesUrl=this.editorConfiguration.classesUrl;this.pageTSconfiguration=this.editorConfiguration.buttons.textstyle;this.tags=(this.pageTSconfiguration&&this.pageTSconfiguration.tags)?this.pageTSconfiguration.tags:{};if(typeof(this.editorConfiguration.classesTag)!=="undefined"){if(this.editorConfiguration.classesTag.span){if(!this.tags.span){this.tags.span=new Object();}
if(!this.tags.span.allowedClasses){this.tags.span.allowedClasses=this.editorConfiguration.classesTag.span;}}}
var allowedClasses;for(var tagName in this.tags){if(this.tags.hasOwnProperty(tagName)){if(this.tags[tagName].allowedClasses){allowedClasses=this.tags[tagName].allowedClasses.trim().split(",");for(var cssClass in allowedClasses){if(allowedClasses.hasOwnProperty(cssClass)){allowedClasses[cssClass]=allowedClasses[cssClass].trim().replace(/\*/g,".*");}}
this.tags[tagName].allowedClasses=new RegExp("^("+allowedClasses.join("|")+")$","i");}}}
this.showTagFreeClasses=(this.pageTSconfiguration?this.pageTSconfiguration.showTagFreeClasses:false)||this.editorConfiguration.showTagFreeClasses;this.prefixLabelWithClassName=this.pageTSconfiguration?this.pageTSconfiguration.prefixLabelWithClassName:false;this.postfixLabelWithClassName=this.pageTSconfiguration?this.pageTSconfiguration.postfixLabelWithClassName:false;this.REInlineTags=/^(a|abbr|acronym|b|bdo|big|cite|code|del|dfn|em|i|img|ins|kbd|q|samp|small|span|strike|strong|sub|sup|tt|u|var)$/;this.allowedAttributes=new Array("id","title","lang","xml:lang","dir","class");if(Ext.isIE){this.addAllowedAttribute("className");}
var pluginInformation={version:'2.1',developer:'Stanislas Rolland',developerUrl:'http://www.sjbr.ca/',copyrightOwner:'Stanislas Rolland',sponsor:this.localize('Technische Universitat Ilmenau'),sponsorUrl:'http://www.tu-ilmenau.de/',license:'GPL'};this.registerPluginInformation(pluginInformation);var buttonId='TextStyle';var fieldLabel=this.pageTSconfiguration?this.pageTSconfiguration.fieldLabel:'';if(Ext.isEmpty(fieldLabel)&&this.isButtonInToolbar('I[text_style]')){fieldLabel=this.localize('text_style');}
var dropDownConfiguration={id:buttonId,tooltip:this.localize(buttonId+'-Tooltip'),fieldLabel:fieldLabel,options:[[this.localize('No style'),'none']],action:'onChange',storeFields:[{name:'text'},{name:'value'},{name:'style'}],tpl:'{text}
'};if(this.pageTSconfiguration){if(this.pageTSconfiguration.width){dropDownConfiguration.width=parseInt(this.pageTSconfiguration.width,10);}
if(this.pageTSconfiguration.listWidth){dropDownConfiguration.listWidth=parseInt(this.pageTSconfiguration.listWidth,10);}
if(this.pageTSconfiguration.maxHeight){dropDownConfiguration.maxHeight=parseInt(this.pageTSconfiguration.maxHeight,10);}}
this.registerDropDown(dropDownConfiguration);return true;},isInlineElement:function(el){return el&&(el.nodeType===1)&&this.REInlineTags.test(el.nodeName.toLowerCase());},addAllowedAttribute:function(attribute){this.allowedAttributes.push(attribute);},onChange:function(editor,combo,record,index){var className=combo.getValue();var classNames=null;var fullNodeSelected=false;this.editor.focus();var selection=this.editor._getSelection();var statusBarSelection=this.editor.statusBar?this.editor.statusBar.getSelection():null;var range=this.editor._createRange(selection);var parent=this.editor.getParentElement();var selectionEmpty=this.editor._selectionEmpty(selection);var ancestors=this.editor.getAllAncestors();if(Ext.isIE){var bookmark=range.getBookmark();}
if(!selectionEmpty){for(var i=0;i