PageRenderTime 92ms CodeModel.GetById 75ms app.highlight 13ms RepoModel.GetById 1ms app.codeStats 0ms

/BlogEngine/BlogEngine.NET/editors/tiny_mce_3_4_3_1/utils/form_utils.js

#
JavaScript | 210 lines | 146 code | 52 blank | 12 comment | 51 complexity | 579b2803ffca7953c50f53dcbef5df7e MD5 | raw file
  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}