Ext.util.CSS.createStyleSheet=function(n,t){var e=this,r=document,u,f=r.getElementsByTagName("head")[0],i=r.createElement("style");if(i.setAttribute("type","text/css"),t&&i.setAttribute("id",t),Ext.isIE10m)f.appendChild(i),u=i.styleSheet,u.cssText=n;else{try{i.appendChild(r.createTextNode(n))}catch(o){i.cssText=n}f.appendChild(i);u=i.styleSheet?i.styleSheet:i.sheet||r.styleSheets[r.styleSheets.length-1]}return e.cacheStyleSheet(u),u};Ext.define("Gsmu.TreePicker",{extend:"Ext.form.field.Picker",xtype:"gsmutreepicker",uses:["Ext.tree.Panel"],triggerCls:Ext.baseCSSPrefix+"form-arrow-trigger",config:{store:null,displayField:null,columns:null,selectOnTab:!0,maxPickerHeight:300,minPickerHeight:100},editable:!1,initComponent:function(){var n=this;n.callParent(arguments);n.mon(n.store,{scope:n,load:n.onLoad,update:n.onUpdate})},createPicker:function(){var n=this,i=Ext.merge({shrinkWrapDock:2,store:n.store,floating:!0,displayField:n.displayField,columns:n.columns,minHeight:n.minPickerHeight,maxHeight:n.maxPickerHeight,manageHeight:!0,shadow:!1,listeners:{scope:n,itemclick:n.onItemClick},viewConfig:{listeners:{scope:n,render:n.onViewRender}}},n.treeConfig),t=new Ext.tree.Panel(i),r=t.getView();if(Ext.isIE9&&Ext.isStrict)r.on({scope:n,highlightitem:n.repaintPickerView,unhighlightitem:n.repaintPickerView,afteritemexpand:n.repaintPickerView,afteritemcollapse:n.repaintPickerView});return t},onViewRender:function(n){n.getEl().on("keypress",this.onPickerKeypress,this)},repaintPickerView:function(){var n=this.picker.getView().getEl().dom.style;n.display=n.display},alignPicker:function(){var n=this,t;n.isExpanded&&(t=n.getPicker(),n.matchFieldWidth&&t.setWidth(n.bodyEl.getWidth()),t.isFloating()&&n.doAlign())},onItemClick:function(n,t){this.selectItem(t)},onPickerKeypress:function(n){var t=n.getKey();(t===n.ENTER||t===n.TAB&&this.selectOnTab)&&this.selectItem(this.picker.getSelectionModel().getSelection()[0])},selectItem:function(n){var t=this;t.setValue(n.getId());t.picker.hide();t.inputEl.focus();t.fireEvent("select",t,n)},onExpand:function(){var i=this,t=i.picker,r=t.store,u=i.value,n;u&&(n=r.getNodeById(u));n||(n=r.getRootNode());t.selectPath(n.getPath());Ext.defer(function(){t.getView().focus()},1)},setValue:function(n){var t=this,i,r,u;if(t.value=n,t.store.isLoading())return t;for(i=n?t.store.getNodeById(n):t.store.getRootNode(),n===undefined?(i=t.store.getRootNode(),t.value=i.getId()):i=t.store.getNodeById(n),r=i?i.get(t.displayField):"";i&&i.parentNode;)i=i.parentNode,u=i?i.get(t.displayField):"",r=u+"/"+r;return t.setRawValue(r),t},getSubmitValue:function(){return this.value},getValue:function(){return this.value},onLoad:function(){var n=this.value;n&&this.setValue(n)},onUpdate:function(n,t,i,r){var u=this.displayField;i==="edit"&&r&&Ext.Array.contains(r,u)&&this.value===t.getId()&&this.setRawValue(t.get(u))}});Ext.define("Gsmu.HtmlEditor",{extend:"Ext.form.field.HtmlEditor",alias:"widget.gsmuhtmleditor",constructor:function(){var n=this,t,i;Gsmu.HtmlEditor.superclass.constructor.apply(this,arguments);t=function(){Ext.EventManager.addListener(n.iframeEl.dom.contentWindow.document.body,"paste",function(){if(window.confirm("Do you wish to clean the pasted Html? (In case it looks weird, it is worth trying it."))n.on("sync",function(){n.fixWordPasteHtml()},n,{single:!0})})};i=n.getToolbar();i.add({tooltip:"<strong>Fix Html Pasted from Word<\/strong><br/><br/>If you pasted the Html from Microsoft Word and the result looks weird, you can try cleaning up the Html with this button, altough it is not guaranteed.",icon:config.getUrl("Images/Icons/Famfamfam/paste_word.png"),handler:function(){n.fixWordPasteHtml()}});n.on("initialize",function(){t()})},fixWordPasteHtml:function(){var t=this,n=t.getValue(),i;n&&(i=[/&nbsp;/ig,/[\r\n]/g,/<(xml|style)[^>]*>.*?<\/\1>/ig,/<\/?(meta|object)[^>]*>/ig,/(lang|class|type|href|name|title|id|clear)=\"[^\"]*\"/ig,/<![\[-].*?-*>/g,/MsoNormal/g,/<\\?\?xml[^>]*>/g,/<\/?o:p[^>]*>/g,/<\/?v:[^>]*>/g,/<\/?o:[^>]*>/g,/<\/?st1:[^>]*>/g,/&nbsp;/g,/<!--(.*)-->/g,/<!--(.*)>/g,/<!(.*)-->/g,/<\\?\?xml[^>]*>/g,/<\/?o:p[^>]*>/g,/<\/?v:[^>]*>/g,/<\/?o:[^>]*>/g,/<\/?st1:[^>]*>/g,/lang=\"[^\"]*\"/g,/lang=\'[^\"]*\'/g,/class=\"[^\"]*\"/g,/class=\'[^\"]*\'/g,/type=\"[^\"]*\"/g,/type=\'[^\"]*\'/g,/href=\'#[^\"]*\'/g,/href=\"#[^\"]*\"/g,/name=\"[^\"]*\"/g,/name=\'[^\"]*\'/g,/clear=\"all\"/g,/id=\"[^\"]*\"/g,/title=\"[^\"]*\"/g,/<title>(.*)<\/title>/g,/class=/g,/<meta[^>]*>/g,/<link[^>]*>/g,/<style>(.*)<\/style>/g,/<w:[^>]*>(.*)<\/w:[^>]*>/g],Ext.each(i,function(t){n=n.replace(t,"")}),n=n.replace(/<div[^>]*>/g,"<p>"),n=n.replace(/<\/?div[^>]*>/g,"<\/p>"),t.setValue(n))}})