includes/clientside/tinymce/tiny_mce_gzip_src.js
author Dan
Tue, 24 Jun 2008 23:37:23 -0400
changeset 582 a38876c0793c
parent 551 3acd624d4f4f
permissions -rw-r--r--
Majorly reworked Javascript runtime stuff to use on-demand loading. - Runtime reduced to only AJAX library + very common functions, ~50K total - Almost all specific functionality loaded on demand using synchronous XHR - Crypto functions consolidated into crypto.js - Much testing still to be done - ACL editor known not working under firefox - Some other components (autofill, theme/rank managers) not ported yet
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
551
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
     1
var tinyMCE_GZ = {
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
     2
	settings : {
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
     3
		themes : '',
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
     4
		plugins : '',
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
     5
		languages : '',
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
     6
		disk_cache : true,
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
     7
		page_name : 'tiny_mce_gzip.php',
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
     8
		debug : false,
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
     9
		suffix : ''
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    10
	},
582
a38876c0793c Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents: 551
diff changeset
    11
  
551
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    12
	init : function(s, cb, sc) {
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    13
		var t = this, n, i, nl = document.getElementsByTagName('script');
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    14
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    15
		for (n in s)
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    16
			t.settings[n] = s[n];
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    17
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    18
		s = t.settings;
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    19
582
a38876c0793c Majorly reworked Javascript runtime stuff to use on-demand loading.
Dan
parents: 551
diff changeset
    20
		t.baseURL = scriptPath + '/includes/clientside/tinymce';
551
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    21
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    22
		if (!t.coreLoaded)
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    23
			t.loadScripts(1, s.themes, s.plugins, s.languages, cb, sc);
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    24
	},
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    25
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    26
	loadScripts : function(co, th, pl, la, cb, sc) {
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    27
		var t = this, x, w = window, q, c = 0, ti, s = t.settings;
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    28
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    29
		function get(s) {
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    30
			x = 0;
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    31
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    32
			try {
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    33
				x = new ActiveXObject(s);
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    34
			} catch (s) {
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    35
			}
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    36
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    37
			return x;
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    38
		};
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    39
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    40
		// Build query string
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    41
		q = 'js=true&diskcache=' + (s.disk_cache ? 'true' : 'false') + '&core=' + (co ? 'true' : 'false') + '&suffix=' + escape(s.suffix) + '&themes=' + escape(th) + '&plugins=' + escape(pl) + '&languages=' + escape(la);
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    42
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    43
		if (co)
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    44
			t.coreLoaded = 1;
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    45
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    46
		// Send request
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    47
		x = w.XMLHttpRequest ? new XMLHttpRequest() : get('Msxml2.XMLHTTP') || get('Microsoft.XMLHTTP');
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    48
		x.overrideMimeType && x.overrideMimeType('text/javascript');
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    49
		x.open('GET', t.baseURL + '/' + s.page_name + '?' + q, !!cb);
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    50
//		x.setRequestHeader('Content-Type', 'text/javascript');
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    51
		x.send('');
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    52
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    53
		// Handle asyncronous loading
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    54
		if (cb) {
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    55
			// Wait for response
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    56
			ti = w.setInterval(function() {
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    57
				if (x.readyState == 4 || c++ > 10000) {
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    58
					w.clearInterval(ti);
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    59
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    60
					if (c < 10000 && x.status == 200) {
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    61
						t.loaded = 1;
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    62
						t.eval(x.responseText);
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    63
						tinymce.dom.Event.domLoaded = true;
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    64
						cb.call(sc || t, x);
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    65
					}
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    66
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    67
					ti = x = null;
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    68
				}
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    69
			}, 10);
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    70
		} else
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    71
			t.eval(x.responseText);
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    72
	},
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    73
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    74
	start : function() {
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    75
		var t = this, each = tinymce.each, s = t.settings, sl, ln = s.languages.split(',');
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    76
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    77
		tinymce.suffix = s.suffix;
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    78
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    79
		// Extend script loader
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    80
		tinymce.create('tinymce.compressor.ScriptLoader:tinymce.dom.ScriptLoader', {
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    81
			loadScripts : function(sc, cb, s) {
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    82
				var ti = this, th = [], pl = [], la = [];
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    83
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    84
				each(sc, function(o) {
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    85
					var u = o.url;
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    86
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    87
					if ((!ti.lookup[u] || ti.lookup[u].state != 2) && u.indexOf(t.baseURL) === 0) {
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    88
						// Collect theme
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    89
						if (u.indexOf('editor_template') != -1) {
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    90
							th.push(/\/themes\/([^\/]+)/.exec(u)[1]);
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    91
							load(u, 1);
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    92
						}
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    93
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    94
						// Collect plugin
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    95
						if (u.indexOf('editor_plugin') != -1) {
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    96
							pl.push(/\/plugins\/([^\/]+)/.exec(u)[1]);
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    97
							load(u, 1);
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    98
						}
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
    99
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   100
						// Collect language
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   101
						if (u.indexOf('/langs/') != -1) {
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   102
							la.push(/\/langs\/([^.]+)/.exec(u)[1]);
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   103
							load(u, 1);
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   104
						}
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   105
					}
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   106
				});
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   107
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   108
				if (th.length + pl.length + la.length > 0) {
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   109
					if (sl.settings.strict_mode) {
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   110
						// Async
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   111
						t.loadScripts(0, th.join(','), pl.join(','), la.join(','), cb, s);
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   112
						return;
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   113
					} else
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   114
						t.loadScripts(0, th.join(','), pl.join(','), la.join(','), cb, s);
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   115
				}
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   116
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   117
				return ti.parent(sc, cb, s);
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   118
			}
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   119
		});
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   120
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   121
		sl = tinymce.ScriptLoader = new tinymce.compressor.ScriptLoader();
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   122
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   123
		function load(u, sp) {
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   124
			var o;
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   125
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   126
			if (!sp)
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   127
				u = t.baseURL + u;
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   128
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   129
			o = {url : u, state : 2};
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   130
			sl.queue.push(o);
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   131
			sl.lookup[o.url] = o;
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   132
		};
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   133
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   134
		// Add core languages
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   135
		each (ln, function(c) {
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   136
			if (c)
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   137
				load('/langs/' + c + '.js');
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   138
		});
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   139
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   140
		// Add themes with languages
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   141
		each(s.themes.split(','), function(n) {
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   142
			if (n) {
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   143
				load('/themes/' + n + '/editor_template' + s.suffix + '.js');
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   144
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   145
				each (ln, function(c) {
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   146
					if (c)
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   147
						load('/themes/' + n + '/langs/' + c + '.js');
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   148
				});
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   149
			}
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   150
		});
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   151
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   152
		// Add plugins with languages
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   153
		each(s.plugins.split(','), function(n) {
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   154
			if (n) {
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   155
				load('/plugins/' + n + '/editor_plugin' + s.suffix + '.js');
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   156
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   157
				each (ln, function(c) {
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   158
					if (c)
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   159
						load('/plugins/' + n + '/langs/' + c + '.js');
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   160
				});
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   161
			}
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   162
		});
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   163
	},
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   164
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   165
	end : function() {
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   166
	},
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   167
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   168
	eval : function(co) {
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   169
		var w = window;
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   170
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   171
		// Evaluate script
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   172
		if (!w.execScript) {
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   173
			if (/Gecko/.test(navigator.userAgent))
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   174
				eval(co, w); // Firefox 3.0
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   175
			else
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   176
				eval.call(w, co);
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   177
		} else
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   178
			w.execScript(co); // IE
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   179
	}
3acd624d4f4f Minified some JS files using YUI compressor
Dan
parents:
diff changeset
   180
};