var editor_enabled = true;

function toggle_editor(id, enable)
{
  var element = document.getElementById(id);
  
  if (element) {
    if (enable && !window['editor_enabled'] && tinyMCE.getInstanceById(id) == null) {
      Logger.info('Enabling WYSIWYG editor on ' + id + '...');
      initWysiwygEditor();
      tinyMCE.execCommand('mceAddControl', false, id);
      Logger.info('WYSIWYG editor enabled.');
      window['editor_enabled'] = true;
    }
    else if (!enable && window['editor_enabled']) {
      Logger.info('Disabling WYSIWYG editor on ' + id + '...');
      tinyMCE.execCommand('mceRemoveControl', false, id);
      //tinyMCE.execInstanceCommand('mce_editor_0', 'mceCodeEditor', false);
      Logger.info('WYSIWYG editor disabled.');
      window['editor_enabled'] = false;
    }
  }
}


function initWysiwygEditor()
{
  tinyMCE.init({
      mode : 'textareas',
      theme : "advanced",
      theme_advanced_buttons1 : "bold,italic,underline,separator,strikethrough,justifyleft,justifycenter,justifyright, justifyfull,bullist,numlist,undo,redo,link,unlink,formatselect,fontselect,fontsizeselect, code",
      theme_advanced_buttons2 : "",
      theme_advanced_buttons3 : "",
      theme_advanced_toolbar_location : "top",
      theme_advanced_toolbar_align : "left",
      width: '360px',
      height: '180px',
      remove_linebreaks : true,
      remove_redundant_brs : true,
      cleanup_on_startup : true,
      force_br_newlines : false,
      force_p_newlines : false,
      forced_root_block : '', // Needed for 3.x
      theme_advanced_resizing : true,
      theme_advanced_resize_horizontal : false,
      dialog_type : 'modal',
      relative_urls : false,
      remove_script_host : false,
      convert_urls : false,
      apply_source_formatting : false,
      remove_linebreaks : true,
      paste_convert_middot_lists : true,
      paste_remove_spans : true,
      paste_remove_styles : true,
      gecko_spellcheck : true,
      entities : '38,amp,60,lt,62,gt',
      accessibility_focus : true
  });
}


function allowCharsOnly(event) {

  var e = Event.element(event);
  var code = (event.keyCode ? event.keyCode : event.which);
  
  if (code == 13) {
    Event.stop(event);
    return false;
  }
  
  return true;
}

function allowNumbersOnly(event) {

  var e = Event.element(event);
  var code = (event.keyCode ? event.keyCode : event.which);

  if ((code >= 48 && code <= 57) || code == 8 || code == 9 || (code >= 37 && code <= 40)) {
    return true;
  }
  else{
    Event.stop(event);
    return false;
  }
}
