text: define(function(require, exports) {
  
      var Class   = require('class'),
          events  = require('microevent');
      require('ckeditor/adapters/jquery');
  
      var toolbars = {
          'default': [
  
              { name: 'basicstyles', items : [ 'Bold','Italic','Underline','Strike','-','RemoveFormat' ] },
              { name: 'paragraph', items : [ 'NumberedList','BulletedList','-','Outdent','Indent','-','Blockquote','CreateDiv', '-','JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock','-','BidiLtr','BidiRtl' ] },
              { name: 'links', items : [ 'Link','Unlink','Anchor' ] },
              '/',
              { name: 'clipboard', items : [ 'Cut','Copy','Paste','PasteText','PasteFromWord','-','Undo','Redo' ] },
              { name: 'editing', items : [ 'Find','Replace','-','SelectAll' ] },
              { name: 'insert', items : [ 'Image','Flash','Table','HorizontalRule','Smiley','SpecialChar','PageBreak' ] },
              { name: 'document', items : [ 'Source' ] },
              '/',
              { name: 'styles', items : [ 'Styles','Format','Font','FontSize' ] },
              { name: 'colors', items : [ 'TextColor','BGColor' ] },
              { name: 'tools', items : [ 'Maximize', 'ShowBlocks','-','About' ] }
  
          ],
          'full': [
              { name: 'document', items : [ 'Source','-','Save','NewPage','DocProps','Preview','Print','-','Templates' ] },
              { name: 'clipboard', items : [ 'Cut','Copy','Paste','PasteText','PasteFromWord','-','Undo','Redo' ] },
              { name: 'editing', items : [ 'Find','Replace','-','SelectAll','-','SpellChecker', 'Scayt' ] },
              { name: 'forms', items : [ 'Form', 'Checkbox', 'Radio', 'TextField', 'Textarea', 'Select', 'Button', 'ImageButton', 'HiddenField' ] },
              '/',
              { name: 'basicstyles', items : [ 'Bold','Italic','Underline','Strike','Subscript','Superscript','-','RemoveFormat' ] },
              { name: 'paragraph', items : [ 'NumberedList','BulletedList','-','Outdent','Indent','-','Blockquote','CreateDiv', '-','JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock','-','BidiLtr','BidiRtl' ] },
              { name: 'links', items : [ 'Link','Unlink','Anchor' ] },
              { name: 'insert', items : [ 'Image','Flash','Table','HorizontalRule','Smiley','SpecialChar','PageBreak','Iframe' ] },
              '/',
              { name: 'styles', items : [ 'Styles','Format','Font','FontSize' ] },
              { name: 'colors', items : [ 'TextColor','BGColor' ] },
              { name: 'tools', items : [ 'Maximize', 'ShowBlocks','-','About' ] }
          ],
          'basic': [
              ['Bold', 'Italic', '-', 'NumberedList', 'BulletedList', '-', 'Link', 'Unlink','-','About']
          ]
      };
  
      var WYSISYGEditor = exports.WYSISYGEditor = Class.extend({
          init: function($container) {
  
              this.$container = $container;
              this.$container.data('pgui-class', this);
              var self = this;
  
              this.$container.ckeditor({
                  toolbar: toolbars['default'],
                  width: '550px',
                  skin: 'BootstrapCK-Skin',
                  entities_greek: false
              });
  
  
              this.$container.ckeditorGet().on("instanceReady", function(){
                  this.document.on("keyup", function(){
                      self.$container.html(self.$container.val());
                  });
              });
  
              this.$container.data('editor-class', this);
          },
  
          onChange: function(callback) {
              this.bind('changed', callback);
          },
  
          destroy: function() {
              this.$container.ckeditorGet().destroy();
          }
  
      });
      events.mixin(WYSISYGEditor);
  
  });