Blame view

js/_tiny_mce/utils/editable_selects.js 1.67 KB
42868d70   andryeyev   Создал GIT
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
  /**
   * $Id: editable_selects.js 162 2007-01-03 16:16:52Z spocke $
   *
   * Makes select boxes editable.
   *
   * @author Moxiecode
   * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
   */
  
  var TinyMCE_EditableSelects = {
  	editSelectElm : null,
  
  	init : function() {
  		var nl = document.getElementsByTagName("select"), i, d = document, o;
  
  		for (i=0; i<nl.length; i++) {
  			if (nl[i].className.indexOf('mceEditableSelect') != -1) {
  				o = new Option('(value)', '__mce_add_custom__');
  
  				o.className = 'mceAddSelectValue';
  
  				nl[i].options[nl[i].options.length] = o;
  				nl[i].setAttribute('onchange', 'TinyMCE_EditableSelects.onChangeEditableSelect(this);');
  			}
  		}
  	},
  
  	onChangeEditableSelect : function(se) {
  		var d = document, ne;
  
  		if (se.options[se.selectedIndex].value == '__mce_add_custom__') {
  			ne = d.createElement("input");
  			ne.id = se.id + "_custom";
  			ne.name = se.name + "_custom";
  			ne.type = "text";
  
  			ne.style.width = se.clientWidth;
  			se.parentNode.insertBefore(ne, se);
  			se.style.display = 'none';
  			ne.focus();
  			ne.onblur = TinyMCE_EditableSelects.onBlurEditableSelectInput;
  			TinyMCE_EditableSelects.editSelectElm = se;
  		}
  	},
  
  	onBlurEditableSelectInput : function() {
  		var se = TinyMCE_EditableSelects.editSelectElm;
  
  		if (se) {
  			if (se.previousSibling.value != '') {
  				addSelectValue(document.forms[0], se.id, se.previousSibling.value, se.previousSibling.value);
  				selectByValue(document.forms[0], se.id, se.previousSibling.value);
  			} else
  				selectByValue(document.forms[0], se.id, '');
  
  			se.style.display = 'inline';
  			se.parentNode.removeChild(se.previousSibling);
  			TinyMCE_EditableSelects.editSelectElm = null;
  		}
  	}
  };