source: trunk/library/tiny_mce/utils/form_utils.js @ 4829

Revision 4829, 5.9 KB checked in by airton, 13 years ago (diff)

Ticket #2146 - Implementacao da funcionalidade de multiplas assinaturas - Adicao da biblioteca TinyMCE

  • Property svn:executable set to *
Line 
1/**
2 * form_utils.js
3 *
4 * Copyright 2009, Moxiecode Systems AB
5 * Released under LGPL License.
6 *
7 * License: http://tinymce.moxiecode.com/license
8 * Contributing: http://tinymce.moxiecode.com/contributing
9 */
10
11var themeBaseURL = tinyMCEPopup.editor.baseURI.toAbsolute('themes/' + tinyMCEPopup.getParam("theme"));
12
13function getColorPickerHTML(id, target_form_element) {
14        var h = "", dom = tinyMCEPopup.dom;
15
16        if (label = dom.select('label[for=' + target_form_element + ']')[0]) {
17                label.id = label.id || dom.uniqueId();
18        }
19
20        h += '<a role="button" aria-labelledby="' + id + '_label" id="' + id + '_link" href="javascript:;" onclick="tinyMCEPopup.pickColor(event,\'' + target_form_element +'\');" onmousedown="return false;" class="pickcolor">';
21        h += '<span id="' + id + '" title="' + tinyMCEPopup.getLang('browse') + '">&nbsp;<span id="' + id + '_label" class="mceVoiceLabel mceIconOnly" style="display:none;">' + tinyMCEPopup.getLang('browse') + '</span></span></a>';
22
23        return h;
24}
25
26function updateColor(img_id, form_element_id) {
27        document.getElementById(img_id).style.backgroundColor = document.forms[0].elements[form_element_id].value;
28}
29
30function setBrowserDisabled(id, state) {
31        var img = document.getElementById(id);
32        var lnk = document.getElementById(id + "_link");
33
34        if (lnk) {
35                if (state) {
36                        lnk.setAttribute("realhref", lnk.getAttribute("href"));
37                        lnk.removeAttribute("href");
38                        tinyMCEPopup.dom.addClass(img, 'disabled');
39                } else {
40                        if (lnk.getAttribute("realhref"))
41                                lnk.setAttribute("href", lnk.getAttribute("realhref"));
42
43                        tinyMCEPopup.dom.removeClass(img, 'disabled');
44                }
45        }
46}
47
48function getBrowserHTML(id, target_form_element, type, prefix) {
49        var option = prefix + "_" + type + "_browser_callback", cb, html;
50
51        cb = tinyMCEPopup.getParam(option, tinyMCEPopup.getParam("file_browser_callback"));
52
53        if (!cb)
54                return "";
55
56        html = "";
57        html += '<a id="' + id + '_link" href="javascript:openBrowser(\'' + id + '\',\'' + target_form_element + '\', \'' + type + '\',\'' + option + '\');" onmousedown="return false;" class="browse">';
58        html += '<span id="' + id + '" title="' + tinyMCEPopup.getLang('browse') + '">&nbsp;</span></a>';
59
60        return html;
61}
62
63function openBrowser(img_id, target_form_element, type, option) {
64        var img = document.getElementById(img_id);
65
66        if (img.className != "mceButtonDisabled")
67                tinyMCEPopup.openBrowser(target_form_element, type, option);
68}
69
70function selectByValue(form_obj, field_name, value, add_custom, ignore_case) {
71        if (!form_obj || !form_obj.elements[field_name])
72                return;
73
74        if (!value)
75                value = "";
76
77        var sel = form_obj.elements[field_name];
78
79        var found = false;
80        for (var i=0; i<sel.options.length; i++) {
81                var option = sel.options[i];
82
83                if (option.value == value || (ignore_case && option.value.toLowerCase() == value.toLowerCase())) {
84                        option.selected = true;
85                        found = true;
86                } else
87                        option.selected = false;
88        }
89
90        if (!found && add_custom && value != '') {
91                var option = new Option(value, value);
92                option.selected = true;
93                sel.options[sel.options.length] = option;
94                sel.selectedIndex = sel.options.length - 1;
95        }
96
97        return found;
98}
99
100function getSelectValue(form_obj, field_name) {
101        var elm = form_obj.elements[field_name];
102
103        if (elm == null || elm.options == null || elm.selectedIndex === -1)
104                return "";
105
106        return elm.options[elm.selectedIndex].value;
107}
108
109function addSelectValue(form_obj, field_name, name, value) {
110        var s = form_obj.elements[field_name];
111        var o = new Option(name, value);
112        s.options[s.options.length] = o;
113}
114
115function addClassesToList(list_id, specific_option) {
116        // Setup class droplist
117        var styleSelectElm = document.getElementById(list_id);
118        var styles = tinyMCEPopup.getParam('theme_advanced_styles', false);
119        styles = tinyMCEPopup.getParam(specific_option, styles);
120
121        if (styles) {
122                var stylesAr = styles.split(';');
123
124                for (var i=0; i<stylesAr.length; i++) {
125                        if (stylesAr != "") {
126                                var key, value;
127
128                                key = stylesAr[i].split('=')[0];
129                                value = stylesAr[i].split('=')[1];
130
131                                styleSelectElm.options[styleSelectElm.length] = new Option(key, value);
132                        }
133                }
134        } else {
135                tinymce.each(tinyMCEPopup.editor.dom.getClasses(), function(o) {
136                        styleSelectElm.options[styleSelectElm.length] = new Option(o.title || o['class'], o['class']);
137                });
138        }
139}
140
141function isVisible(element_id) {
142        var elm = document.getElementById(element_id);
143
144        return elm && elm.style.display != "none";
145}
146
147function convertRGBToHex(col) {
148        var re = new RegExp("rgb\\s*\\(\\s*([0-9]+).*,\\s*([0-9]+).*,\\s*([0-9]+).*\\)", "gi");
149
150        var rgb = col.replace(re, "$1,$2,$3").split(',');
151        if (rgb.length == 3) {
152                r = parseInt(rgb[0]).toString(16);
153                g = parseInt(rgb[1]).toString(16);
154                b = parseInt(rgb[2]).toString(16);
155
156                r = r.length == 1 ? '0' + r : r;
157                g = g.length == 1 ? '0' + g : g;
158                b = b.length == 1 ? '0' + b : b;
159
160                return "#" + r + g + b;
161        }
162
163        return col;
164}
165
166function convertHexToRGB(col) {
167        if (col.indexOf('#') != -1) {
168                col = col.replace(new RegExp('[^0-9A-F]', 'gi'), '');
169
170                r = parseInt(col.substring(0, 2), 16);
171                g = parseInt(col.substring(2, 4), 16);
172                b = parseInt(col.substring(4, 6), 16);
173
174                return "rgb(" + r + "," + g + "," + b + ")";
175        }
176
177        return col;
178}
179
180function trimSize(size) {
181        return size.replace(/([0-9\.]+)(px|%|in|cm|mm|em|ex|pt|pc)/i, '$1$2');
182}
183
184function getCSSSize(size) {
185        size = trimSize(size);
186
187        if (size == "")
188                return "";
189
190        // Add px
191        if (/^[0-9]+$/.test(size))
192                size += 'px';
193        // Sanity check, IE doesn't like broken values
194        else if (!(/^[0-9\.]+(px|%|in|cm|mm|em|ex|pt|pc)$/i.test(size)))
195                return "";
196
197        return size;
198}
199
200function getStyle(elm, attrib, style) {
201        var val = tinyMCEPopup.dom.getAttrib(elm, attrib);
202
203        if (val != '')
204                return '' + val;
205
206        if (typeof(style) == 'undefined')
207                style = attrib;
208
209        return tinyMCEPopup.dom.getStyle(elm, style);
210}
Note: See TracBrowser for help on using the repository browser.