Open-Source PHP Framework - Designed for rapid development of performance-oriented scalable applications

/webroot/js/tinymce/utils/editable_selects.js

[return to app]
1 /**
2  * $Id: editable_selects.js 867 2008-06-09 20:33:40Z spocke $
3  *
4  * Makes select boxes editable.
5  *
6  * @author Moxiecode
7  * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.
8  */
9
10
var TinyMCE_EditableSelects = {
11     
editSelectElm null,
12
13     
init : function() {
14         var 
nl document.getElementsByTagName("select"), idocumento;
15
16         for (
i=0i<nl.lengthi++) {
17             if (
nl[i].className.indexOf('mceEditableSelect') != -1) {
18                 
= new Option('(value)''__mce_add_custom__');
19
20                 
o.className 'mceAddSelectValue';
21
22                 
nl[i].options[nl[i].options.length] = o;
23                 
nl[i].onchange TinyMCE_EditableSelects.onChangeEditableSelect;
24             }
25         }
26     },
27
28     
onChangeEditableSelect : function(e) {
29         var 
documentnese window.event window.event.srcElement e.target;
30
31         if (
se.options[se.selectedIndex].value == '__mce_add_custom__') {
32             
ne d.createElement("input");
33             
ne.id se.id "_custom";
34             
ne.name se.name "_custom";
35             
ne.type "text";
36
37             
ne.style.width se.offsetWidth 'px';
38             
se.parentNode.insertBefore(nese);
39             
se.style.display 'none';
40             
ne.focus();
41             
ne.onblur TinyMCE_EditableSelects.onBlurEditableSelectInput;
42             
ne.onkeydown TinyMCE_EditableSelects.onKeyDown;
43             
TinyMCE_EditableSelects.editSelectElm se;
44         }
45     },
46
47     
onBlurEditableSelectInput : function() {
48         var 
se TinyMCE_EditableSelects.editSelectElm;
49
50         if (
se) {
51             if (
se.previousSibling.value != '') {
52                 
addSelectValue(document.forms[0], se.idse.previousSibling.valuese.previousSibling.value);
53                 
selectByValue(document.forms[0], se.idse.previousSibling.value);
54             } else
55                 
selectByValue(document.forms[0], se.id'');
56
57             
se.style.display 'inline';
58             
se.parentNode.removeChild(se.previousSibling);
59             
TinyMCE_EditableSelects.editSelectElm null;
60         }
61     },
62
63     
onKeyDown : function(e) {
64         
|| window.event;
65
66         if (
e.keyCode == 13)
67             
TinyMCE_EditableSelects.onBlurEditableSelectInput();
68     }
69 };
70