| [ Index ] | PHP Cross Reference of Mambo 4.6.5 |
|
| [ Variables ] [ Functions ] [ Classes ] [ Constants ] [ Statistics ] | ||
[Summary view] [Print] [Text view]
1 // Some global instances 2 var tinymce = null, tinyMCEPopup, tinyMCE; 3 4 tinyMCEPopup = { 5 init : function() { 6 var t = this, w = t.getWin(), ti; 7 8 // Find API 9 tinymce = w.tinymce; 10 tinyMCE = w.tinyMCE; 11 t.editor = tinymce.EditorManager.activeEditor; 12 t.params = t.editor.windowManager.params; 13 14 // Setup local DOM 15 t.dom = t.editor.windowManager.createInstance('tinymce.dom.DOMUtils', document); 16 t.dom.loadCSS(t.editor.settings.popup_css); 17 18 // Setup on init listeners 19 t.listeners = []; 20 t.onInit = { 21 add : function(f, s) { 22 t.listeners.push({func : f, scope : s}); 23 } 24 }; 25 26 t.isWindow = !t.getWindowArg('mce_inline'); 27 t.id = t.getWindowArg('mce_window_id'); 28 t.editor.windowManager.onOpen.dispatch(t.editor.windowManager, window); 29 }, 30 31 getWin : function() { 32 return window.dialogArguments || opener || parent || top; 33 }, 34 35 getWindowArg : function(n, dv) { 36 var v = this.params[n]; 37 38 return tinymce.is(v) ? v : dv; 39 }, 40 41 getParam : function(n, dv) { 42 return this.editor.getParam(n, dv); 43 }, 44 45 getLang : function(n, dv) { 46 return this.editor.getLang(n, dv); 47 }, 48 49 execCommand : function(cmd, ui, val, a) { 50 this.restoreSelection(); 51 return this.editor.execCommand(cmd, ui, val, a || {skip_focus : 1}); 52 }, 53 54 resizeToInnerSize : function() { 55 var t = this, n, b = document.body, vp = t.dom.getViewPort(window), dw, dh; 56 57 dw = t.getWindowArg('mce_width') - vp.w; 58 dh = t.getWindowArg('mce_height') - vp.h; 59 60 if (t.isWindow) 61 window.resizeBy(dw, dh); 62 else 63 t.editor.windowManager.resizeBy(dw, dh, t.id); 64 }, 65 66 executeOnLoad : function(s) { 67 this.onInit.add(function() { 68 eval(s); 69 }); 70 }, 71 72 storeSelection : function() { 73 this.editor.windowManager.bookmark = tinyMCEPopup.editor.selection.getBookmark('simple'); 74 }, 75 76 restoreSelection : function() { 77 var t = tinyMCEPopup; 78 79 if (!t.isWindow && tinymce.isIE) 80 t.editor.selection.moveToBookmark(t.editor.windowManager.bookmark); 81 }, 82 83 requireLangPack : function() { 84 var u = this.getWindowArg('plugin_url') || this.getWindowArg('theme_url'); 85 86 if (u) 87 document.write('<script type="text/javascript" src="' + u + '/langs/' + this.editor.settings.language + '_dlg.js' + '"></script>'); 88 }, 89 90 pickColor : function(e, element_id) { 91 this.execCommand('mceColorPicker', true, { 92 color : document.getElementById(element_id).value, 93 func : function(c) { 94 document.getElementById(element_id).value = c; 95 96 try { 97 document.getElementById(element_id).onchange(); 98 } catch (ex) { 99 // Try fire event, ignore errors 100 } 101 } 102 }); 103 }, 104 105 openBrowser : function(element_id, type, option) { 106 tinyMCEPopup.restoreSelection(); 107 this.editor.execCallback('file_browser_callback', element_id, document.getElementById(element_id).value, type, window); 108 }, 109 110 close : function() { 111 var t = this; 112 113 t.dom = t.dom.doc = null; // Cleanup 114 t.editor.windowManager.close(window, t.id); 115 }, 116 117 // Internal functions 118 119 _restoreSelection : function() { 120 var e = window.event.srcElement; 121 122 if (e.nodeName == 'INPUT' && (e.type == 'submit' || e.type == 'button')) 123 tinyMCEPopup.restoreSelection(); 124 }, 125 126 /* _restoreSelection : function() { 127 var e = window.event.srcElement; 128 129 // If user focus a non text input or textarea 130 if ((e.nodeName != 'INPUT' && e.nodeName != 'TEXTAREA') || e.type != 'text') 131 tinyMCEPopup.restoreSelection(); 132 },*/ 133 134 _onDOMLoaded : function() { 135 var t = this, ti = document.title, bm, h; 136 137 // Translate page 138 h = document.body.innerHTML; 139 140 // Replace a=x with a="x" in IE 141 if (tinymce.isIE) 142 h = h.replace(/ (value|title|alt)=([^\s>]+)/gi, ' $1="$2"'); 143 144 document.body.innerHTML = t.editor.translate(h); 145 document.title = ti = t.editor.translate(ti); 146 document.body.style.display = ''; 147 148 // Restore selection in IE when focus is placed on a non textarea or input element of the type text 149 if (tinymce.isIE) 150 document.attachEvent('onmouseup', tinyMCEPopup._restoreSelection); 151 152 t.restoreSelection(); 153 154 // Call onInit 155 tinymce.each(t.listeners, function(o) { 156 o.func.call(o.scope, t.editor); 157 }); 158 159 t.resizeToInnerSize(); 160 161 if (t.isWindow) 162 window.focus(); 163 else 164 t.editor.windowManager.setTitle(ti, t.id); 165 166 if (!tinymce.isIE && !t.isWindow) { 167 tinymce.dom.Event._add(document, 'focus', function() { 168 t.editor.windowManager.focus(t.id) 169 }); 170 } 171 172 // Patch for accessibility 173 tinymce.each(t.dom.select('select'), function(e) { 174 e.onkeydown = tinyMCEPopup._accessHandler; 175 }); 176 177 // Move focus to window 178 window.focus(); 179 }, 180 181 _accessHandler : function(e) { 182 var e = e || window.event; 183 184 if (e.keyCode == 13 || e.keyCode == 32) { 185 e = e.target || e.srcElement; 186 187 if (e.onchange) 188 e.onchange(); 189 190 return tinymce.dom.Event.cancel(e); 191 } 192 }, 193 194 _wait : function() { 195 var t = this, ti; 196 197 if (tinymce.isIE && document.location.protocol != 'https:') { 198 // Fake DOMContentLoaded on IE 199 document.write('<script id=__ie_onload defer src=\'javascript:""\';><\/script>'); 200 document.getElementById("__ie_onload").onreadystatechange = function() { 201 if (this.readyState == "complete") { 202 t._onDOMLoaded(); 203 document.getElementById("__ie_onload").onreadystatechange = null; // Prevent leak 204 } 205 }; 206 } else { 207 if (tinymce.isIE || tinymce.isWebKit) { 208 ti = setInterval(function() { 209 if (/loaded|complete/.test(document.readyState)) { 210 clearInterval(ti); 211 t._onDOMLoaded(); 212 } 213 }, 10); 214 } else { 215 window.addEventListener('DOMContentLoaded', function() { 216 t._onDOMLoaded(); 217 }, false); 218 } 219 } 220 } 221 }; 222 223 tinyMCEPopup.init(); 224 tinyMCEPopup._wait(); // Wait for DOM Content Loaded
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Wed May 23 00:05:01 2012 | Cross-referenced by PHPXref 0.7 |
| Mambo API: Mambo is Free software released under the GNU/General Public License, Version 2 |