Initial revision with basic functionability
[bcms.git] / media / tinymce / plugins / template / js / template.js
bloba8e64b135e136cfe8acabcf2adeae6ba9ed95a10
1 tinyMCEPopup.requireLangPack();\r
2 \r
3 var TemplateDialog = {\r
4         preInit : function() {\r
5                 var url = tinyMCEPopup.getParam("template_external_list_url");\r
6 \r
7                 if (url != null)\r
8                         document.write('<sc'+'ript language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></sc'+'ript>');\r
9         },\r
11         init : function() {\r
12                 var ed = tinyMCEPopup.editor, tsrc, sel, x, u;\r
14                 tsrc = ed.getParam("template_templates", false);\r
15                 sel = document.getElementById('tpath');\r
17                 // Setup external template list\r
18                 if (!tsrc && typeof(tinyMCETemplateList) != 'undefined') {\r
19                         for (x=0, tsrc = []; x<tinyMCETemplateList.length; x++)\r
20                                 tsrc.push({title : tinyMCETemplateList[x][0], src : tinyMCETemplateList[x][1], description : tinyMCETemplateList[x][2]});\r
21                 }\r
23                 for (x=0; x<tsrc.length; x++)\r
24                         sel.options[sel.options.length] = new Option(tsrc[x].title, tinyMCEPopup.editor.documentBaseURI.toAbsolute(tsrc[x].src));\r
26                 this.resize();\r
27         },\r
29         resize : function() {\r
30                 var w, h, e;\r
32                 if (!self.innerWidth) {\r
33                         w = document.body.clientWidth - 50;\r
34                         h = document.body.clientHeight - 160;\r
35                 } else {\r
36                         w = self.innerWidth - 50;\r
37                         h = self.innerHeight - 170;\r
38                 }\r
40                 e = document.getElementById('templatesrc');\r
42                 if (e) {\r
43                         e.style.height = Math.abs(h) + 'px';\r
44                         e.style.width  = Math.abs(w - 5) + 'px';\r
45                 }\r
46         },\r
48         loadCSSFiles : function(d) {\r
49                 var ed = tinyMCEPopup.editor;\r
51                 tinymce.each(ed.getParam("content_css", '').split(','), function(u) {\r
52                         d.write('<link href="' + ed.documentBaseURI.toAbsolute(u) + '" rel="stylesheet" type="text/css" />');\r
53                 });\r
54         },\r
56         selectTemplate : function(u) {\r
57                 var d = window.frames['templatesrc'].document;\r
59                 if (!u)\r
60                         return;\r
62                 d.body.innerHTML = this.templateHTML = this.getFileContents(u);\r
63         },\r
65         insert : function() {\r
66                 tinyMCEPopup.execCommand('mceInsertTemplate', false, {\r
67                         content : this.templateHTML,\r
68                         selection : tinyMCEPopup.editor.selection.getContent()\r
69                 });\r
71                 tinyMCEPopup.close();\r
72         },\r
74         getFileContents : function(u) {\r
75                 var x, d, t = 'text/plain';\r
77                 function g(s) {\r
78                         x = 0;\r
80                         try {\r
81                                 x = new ActiveXObject(s);\r
82                         } catch (s) {\r
83                         }\r
85                         return x;\r
86                 };\r
88                 x = window.ActiveXObject ? g('Msxml2.XMLHTTP') || g('Microsoft.XMLHTTP') : new XMLHttpRequest();\r
90                 // Synchronous AJAX load file\r
91                 x.overrideMimeType && x.overrideMimeType(t);\r
92                 x.open("GET", u, false);\r
93                 x.send(null);\r
95                 return x.responseText;\r
96         }\r
97 };\r
99 TemplateDialog.preInit();\r
100 tinyMCEPopup.onInit.add(TemplateDialog.init, TemplateDialog);\r