Subversion Repositories Sites.tela-botanica.org

Rev

Rev 420 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
420 florian 1
// Import external list url javascript
2
var url = tinyMCE.getParam("template_external_list_url");
3
if (url != null) {
4
	// Fix relative
5
	if (url.charAt(0) != '/' && url.indexOf('://') == -1)
6
		url = tinyMCE.documentBasePath + "/" + url;
7
 
8
	document.write('<sc'+'ript language="javascript" type="text/javascript" src="' + url + '"></sc'+'ript>');
9
}
10
 
11
var TPU = { //Template Popup Utils
12
	currentTemplateHTML : null,
13
	templates : [],
14
	inst : tinyMCE.getInstanceById(tinyMCE.getWindowArg('editor_id')),
15
	plugin : tinyMCE.getWindowArg('pluginObj'),
16
	data : tinyMCE.selectedInstance.getData('template'),
17
 
18
 	init : function() {
19
 		document.forms[0].insert.value = tinyMCE.getLang('lang_' + this.data.currentAction, 'Insert', true);
20
		TPU.loadTemplatePaths();
21
 
22
		if (this.data.currentAction == "update")
23
			document.getElementById('warning').innerHTML = tinyMCE.getLang('lang_template_warning');
24
 
25
		this.resizeInputs();
26
	},
27
 
28
 	loadTemplatePaths : function() {
29
		var tsrc, sel, x, u;
30
 
31
 		tsrc = tinyMCE.getParam("template_templates", false);
32
 		sel = document.getElementById('tpath');
33
 
34
		// Setup external template list
35
		if (!tsrc && typeof(tinyMCETemplateList) != 'undefined') {
36
			for (x=0, tsrc = []; x<tinyMCETemplateList.length; x++)
37
				tsrc.push({title : tinyMCETemplateList[x][0], src : tinyMCETemplateList[x][1], description : tinyMCETemplateList[x][2]});
38
		}
39
 
40
		for (x=0; x<tsrc.length; x++) {
41
			u = tsrc[x].src;
42
 
43
			// Force absolute
44
			if (u.indexOf('://') == -1 && u.indexOf('/') != 0)
45
				u = tinyMCE.documentBasePath + "/" + u;
46
 
47
			tsrc[x].src = u;
48
		}
49
 
50
		TPU.templates = tsrc;
51
 
52
		for (x = 0; x < tsrc.length; x++)
53
			sel.options[sel.options.length] = new Option(tsrc[x].title, tsrc[x].src);
54
	},
55
 
56
 	selectTemplate : function(o) {
57
		var x, d = window.frames['templatesrc'].document;
58
 
59
		this.currentTemplateHTML = this.plugin._replaceValues(this.getFileContents(o.value));
60
 
61
		// Force complete document
62
/*		if (!/<body/gi.test(this.currentTemplateHTML)) {
63
			this.currentTemplateHTML = '<html xmlns="http://www.w3.org/1999/xhtml">' +
64
				'<head>' +
65
					'<title>blank_page</title>' +
66
					'<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />' +
67
				'</head>' +
68
				'<body>' +
69
				this.currentTemplateHTML +
70
				'</body>' +
71
				'</html>';
72
		}*/
73
 
74
		// Write HTML to preview iframe
75
		d.body.innerHTML = this.currentTemplateHTML;
76
 
77
		// Display description
78
 		for (x = 0; x < TPU.templates.length; x++) {
79
			if (TPU.templates[x].src == o.value) {
80
				document.getElementById('tmpldesc').innerHTML = TPU.templates[x].description;
81
				break;
82
			}
83
		}
84
 	},
85
 
86
 	insertTemplate : function() {
87
		var sel, opt;
88
 
89
		sel = document.getElementById('tpath');
90
		opt = sel.options[sel.selectedIndex];
91
 
92
		// Is it a template or snippet
93
		if (TPU.currentTemplateHTML.indexOf('mceTmpl'))
94
			tinyMCEPopup.execCommand('mceTemplate', false, {title : opt.text, tsrc : opt.value, body : TPU.currentTemplateHTML});
95
		else
96
			tinyMCEPopup.execCommand('mceInsertContent', false, TPU.currentTemplateHTML);
97
 
98
		tinyMCEPopup.close();
99
	},
100
 
101
	getFileContents : function(u) {
102
		var x, d, t = 'text/plain';
103
 
104
		function g(s) {
105
			x = 0;
106
 
107
			try {
108
				x = new ActiveXObject(s);
109
			} catch (s) {
110
			}
111
 
112
			return x;
113
		};
114
 
115
		x = window.ActiveXObject ? g('Msxml2.XMLHTTP') || g('Microsoft.XMLHTTP') : new XMLHttpRequest();
116
 
117
		// Synchronous AJAX load file
118
		x.overrideMimeType && x.overrideMimeType(t);
119
		x.open("GET", u, false);
120
		x.send(null);
121
 
122
		return x.responseText;
123
	},
124
 
125
	resizeInputs : function() {
126
		var wHeight, wWidth, elm;
127
 
128
		if (!self.innerWidth) {
129
			wHeight = document.body.clientHeight - 160;
130
			wWidth = document.body.clientWidth - 40;
131
		} else {
132
			wHeight = self.innerHeight - 160;
133
			wWidth = self.innerWidth - 40;
134
		}
135
 
136
		elm = document.getElementById('templatesrc');
137
 
138
		if (elm) {
139
			elm.style.height = Math.abs(wHeight) + 'px';
140
			elm.style.width  = Math.abs(wWidth - 5) + 'px';
141
		}
142
	}
143
};