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