--- /dev/null
+/**\r
+ * $Id: editable_selects.js 162 2007-01-03 16:16:52Z spocke $\r
+ *\r
+ * Makes select boxes editable.\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+var TinyMCE_EditableSelects = {\r
+ editSelectElm : null,\r
+\r
+ init : function() {\r
+ var nl = document.getElementsByTagName("select"), i, d = document, o;\r
+\r
+ for (i=0; i<nl.length; i++) {\r
+ if (nl[i].className.indexOf('mceEditableSelect') != -1) {\r
+ o = new Option('(value)', '__mce_add_custom__');\r
+\r
+ o.className = 'mceAddSelectValue';\r
+\r
+ nl[i].options[nl[i].options.length] = o;\r
+ nl[i].setAttribute('onchange', 'TinyMCE_EditableSelects.onChangeEditableSelect(this);');\r
+ }\r
+ }\r
+ },\r
+\r
+ onChangeEditableSelect : function(se) {\r
+ var d = document, ne;\r
+\r
+ if (se.options[se.selectedIndex].value == '__mce_add_custom__') {\r
+ ne = d.createElement("input");\r
+ ne.id = se.id + "_custom";\r
+ ne.name = se.name + "_custom";\r
+ ne.type = "text";\r
+\r
+ ne.style.width = se.clientWidth;\r
+ se.parentNode.insertBefore(ne, se);\r
+ se.style.display = 'none';\r
+ ne.focus();\r
+ ne.onblur = TinyMCE_EditableSelects.onBlurEditableSelectInput;\r
+ TinyMCE_EditableSelects.editSelectElm = se;\r
+ }\r
+ },\r
+\r
+ onBlurEditableSelectInput : function() {\r
+ var se = TinyMCE_EditableSelects.editSelectElm;\r
+\r
+ if (se) {\r
+ if (se.previousSibling.value != '') {\r
+ addSelectValue(document.forms[0], se.id, se.previousSibling.value, se.previousSibling.value);\r
+ selectByValue(document.forms[0], se.id, se.previousSibling.value);\r
+ } else\r
+ selectByValue(document.forms[0], se.id, '');\r
+\r
+ se.style.display = 'inline';\r
+ se.parentNode.removeChild(se.previousSibling);\r
+ TinyMCE_EditableSelects.editSelectElm = null;\r
+ }\r
+ }\r
+};\r