[ Index ]

PHP Cross Reference of Joomla 1.5.26 DE

title

Body

[close]

/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/jscripts/ -> element_common.js (source)

   1   /**
   2   * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $
   3   *
   4   * @author Moxiecode - based on work by Andrew Tetlaw
   5   * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
   6   */
   7  
   8  function initCommonAttributes(elm) {
   9      var formObj = document.forms[0];
  10  
  11      // Setup form data for common element attributes
  12      setFormValue('title', tinyMCE.getAttrib(elm, 'title'));
  13      setFormValue('id', tinyMCE.getAttrib(elm, 'id'));
  14      selectByValue(formObj, 'class', tinyMCE.getAttrib(elm, 'class'), true);
  15      setFormValue('style', tinyMCE.getAttrib(elm, 'style'));
  16      selectByValue(formObj, 'dir', tinyMCE.getAttrib(elm, 'dir'));
  17      setFormValue('lang', tinyMCE.getAttrib(elm, 'lang'));
  18      setFormValue('onfocus', tinyMCE.getAttrib(elm, 'onfocus'));
  19      setFormValue('onblur', tinyMCE.getAttrib(elm, 'onblur'));
  20      setFormValue('onclick', tinyMCE.getAttrib(elm, 'onclick'));
  21      setFormValue('ondblclick', tinyMCE.getAttrib(elm, 'ondblclick'));
  22      setFormValue('onmousedown', tinyMCE.getAttrib(elm, 'onmousedown'));
  23      setFormValue('onmouseup', tinyMCE.getAttrib(elm, 'onmouseup'));
  24      setFormValue('onmouseover', tinyMCE.getAttrib(elm, 'onmouseover'));
  25      setFormValue('onmousemove', tinyMCE.getAttrib(elm, 'onmousemove'));
  26      setFormValue('onmouseout', tinyMCE.getAttrib(elm, 'onmouseout'));
  27      setFormValue('onkeypress', tinyMCE.getAttrib(elm, 'onkeypress'));
  28      setFormValue('onkeydown', tinyMCE.getAttrib(elm, 'onkeydown'));
  29      setFormValue('onkeyup', tinyMCE.getAttrib(elm, 'onkeyup'));
  30  }
  31  
  32  function setFormValue(name, value) {
  33      if(document.forms[0].elements[name]) document.forms[0].elements[name].value = value;
  34  }
  35  
  36  function insertDateTime(id) {
  37      document.getElementById(id).value = getDateTime(new Date(), "%Y-%m-%dT%H:%M:%S");
  38  }
  39  
  40  function getDateTime(d, fmt) {
  41      fmt = fmt.replace("%D", "%m/%d/%y");
  42      fmt = fmt.replace("%r", "%I:%M:%S %p");
  43      fmt = fmt.replace("%Y", "" + d.getFullYear());
  44      fmt = fmt.replace("%y", "" + d.getYear());
  45      fmt = fmt.replace("%m", addZeros(d.getMonth()+1, 2));
  46      fmt = fmt.replace("%d", addZeros(d.getDate(), 2));
  47      fmt = fmt.replace("%H", "" + addZeros(d.getHours(), 2));
  48      fmt = fmt.replace("%M", "" + addZeros(d.getMinutes(), 2));
  49      fmt = fmt.replace("%S", "" + addZeros(d.getSeconds(), 2));
  50      fmt = fmt.replace("%I", "" + ((d.getHours() + 11) % 12 + 1));
  51      fmt = fmt.replace("%p", "" + (d.getHours() < 12 ? "AM" : "PM"));
  52      fmt = fmt.replace("%%", "%");
  53  
  54      return fmt;
  55  }
  56  
  57  function addZeros(value, len) {
  58      var i;
  59  
  60      value = "" + value;
  61  
  62      if (value.length < len) {
  63          for (i=0; i<(len-value.length); i++)
  64              value = "0" + value;
  65      }
  66  
  67      return value;
  68  }
  69  
  70  function selectByValue(form_obj, field_name, value, add_custom, ignore_case) {
  71      if (!form_obj || !form_obj.elements[field_name])
  72          return;
  73  
  74      var sel = form_obj.elements[field_name];
  75  
  76      var found = false;
  77      for (var i=0; i<sel.options.length; i++) {
  78          var option = sel.options[i];
  79  
  80          if (option.value == value || (ignore_case && option.value.toLowerCase() == value.toLowerCase())) {
  81              option.selected = true;
  82              found = true;
  83          } else
  84              option.selected = false;
  85      }
  86  
  87      if (!found && add_custom && value != '') {
  88          var option = new Option('Value: ' + value, value);
  89          option.selected = true;
  90          sel.options[sel.options.length] = option;
  91      }
  92  
  93      return found;
  94  }
  95  
  96  function setAttrib(elm, attrib, value) {
  97      var formObj = document.forms[0];
  98      var valueElm = formObj.elements[attrib.toLowerCase()];
  99  
 100      if (typeof(value) == "undefined" || value == null) {
 101          value = "";
 102  
 103          if (valueElm)
 104              value = valueElm.value;
 105      }
 106  
 107      if (value != "") {
 108          if (attrib == "style")
 109              attrib = "style.cssText";
 110  
 111          if (attrib.substring(0, 2) == 'on')
 112              value = 'return true;' + value;
 113  
 114          if (attrib == "class") {
 115              tinyMCE.addCSSClass(elm, value);
 116              return;
 117          }
 118  
 119          elm.setAttribute(attrib.toLowerCase(), value);
 120      } else
 121          elm.removeAttribute(attrib);
 122  }
 123  
 124  function setAllCommonAttribs(elm) {
 125      setAttrib(elm, 'title');
 126      setAttrib(elm, 'id');
 127      setAttrib(elm, 'class');
 128      setAttrib(elm, 'style');
 129      setAttrib(elm, 'dir');
 130      setAttrib(elm, 'lang');
 131      /*setAttrib(elm, 'onfocus');
 132      setAttrib(elm, 'onblur');
 133      setAttrib(elm, 'onclick');
 134      setAttrib(elm, 'ondblclick');
 135      setAttrib(elm, 'onmousedown');
 136      setAttrib(elm, 'onmouseup');
 137      setAttrib(elm, 'onmouseover');
 138      setAttrib(elm, 'onmousemove');
 139      setAttrib(elm, 'onmouseout');
 140      setAttrib(elm, 'onkeypress');
 141      setAttrib(elm, 'onkeydown');
 142      setAttrib(elm, 'onkeyup');*/
 143  }
 144  
 145  SXE = {
 146      currentAction : "insert",
 147      inst : tinyMCE.getInstanceById(tinyMCE.getWindowArg('editor_id')),
 148      updateElement : null
 149  }
 150  
 151  SXE.focusElement = SXE.inst.getFocusElement();
 152  
 153  SXE.initElementDialog = function(element_name) {
 154      addClassesToList('class', 'xhtmlxtras_styles');
 155      TinyMCE_EditableSelects.init();
 156  
 157      element_name = element_name.toLowerCase();
 158      var elm = tinyMCE.getParentElement(SXE.focusElement, element_name);
 159      if (elm != null && elm.nodeName == element_name.toUpperCase()) {
 160          SXE.currentAction = "update";
 161      }
 162  
 163      if (SXE.currentAction == "update") {
 164          initCommonAttributes(elm);
 165          SXE.updateElement = elm;
 166      }
 167  
 168      document.forms[0].insert.value = tinyMCE.getLang('lang_' + SXE.currentAction, 'Insert', true);
 169  }
 170  
 171  SXE.insertElement = function(element_name) {
 172      var elm = tinyMCE.getParentElement(SXE.focusElement, element_name), h, tagName;
 173  
 174      tinyMCEPopup.execCommand('mceBeginUndoLevel');
 175      if (elm == null) {
 176          var s = SXE.inst.selection.getSelectedHTML();
 177          if(s.length > 0) {
 178              tagName = element_name;
 179  
 180              if (tinyMCE.isIE && !tinyMCE.isOpera && element_name.indexOf('html:') == 0)
 181                  element_name = element_name.substring(5).toLowerCase();
 182  
 183              h = '<' + tagName + ' id="#sxe_temp_' + element_name + '#">' + s + '</' + tagName + '>';
 184  
 185              tinyMCEPopup.execCommand('mceInsertContent', false, h);
 186  
 187              var elementArray = tinyMCE.getElementsByAttributeValue(SXE.inst.getBody(), element_name, 'id', '#sxe_temp_' + element_name + '#');
 188              for (var i=0; i<elementArray.length; i++) {
 189                  var elm = elementArray[i];
 190  
 191                  elm.id = '';
 192                  elm.setAttribute('id', '');
 193                  elm.removeAttribute('id');
 194  
 195                  setAllCommonAttribs(elm);
 196              }
 197          }
 198      } else {
 199          setAllCommonAttribs(elm);
 200      }
 201      tinyMCE.triggerNodeChange();
 202      tinyMCEPopup.execCommand('mceEndUndoLevel');
 203  }
 204  
 205  SXE.removeElement = function(element_name){
 206      element_name = element_name.toLowerCase();
 207      elm = tinyMCE.getParentElement(SXE.focusElement, element_name);
 208      if(elm && elm.nodeName == element_name.toUpperCase()){
 209          tinyMCEPopup.execCommand('mceBeginUndoLevel');
 210          tinyMCE.execCommand('mceRemoveNode', false, elm);
 211          tinyMCE.triggerNodeChange();
 212          tinyMCEPopup.execCommand('mceEndUndoLevel');
 213      }
 214  }
 215  
 216  SXE.showRemoveButton = function() {
 217          document.getElementById("remove").style.display = 'block';
 218  }
 219  
 220  SXE.containsClass = function(elm,cl) {
 221      return (elm.className.indexOf(cl) > -1) ? true : false;
 222  }
 223  
 224  SXE.removeClass = function(elm,cl) {
 225      if(elm.className == null || elm.className == "" || !SXE.containsClass(elm,cl)) {
 226          return true;
 227      }
 228      var classNames = elm.className.split(" ");
 229      var newClassNames = "";
 230      for (var x = 0, cnl = classNames.length; x < cnl; x++) {
 231          if (classNames[x] != cl) {
 232              newClassNames += (classNames[x] + " ");
 233          }
 234      }
 235      elm.className = newClassNames.substring(0,newClassNames.length-1); //removes extra space at the end
 236  }
 237  
 238  SXE.addClass = function(elm,cl) {
 239      if(!SXE.containsClass(elm,cl)) elm.className ? elm.className += " " + cl : elm.className = cl;
 240      return true;
 241  }


Generated: Wed Mar 28 15:54:07 2012 Cross-referenced by PHPXref 0.7.1