PageRenderTime 47ms CodeModel.GetById 42ms app.highlight 3ms RepoModel.GetById 1ms app.codeStats 0ms

/modules/mod_base/lib/js/modules/tinymce3.4.3.2/themes/advanced/js/anchor.js

https://code.google.com/p/zotonic/
JavaScript | 42 lines | 31 code | 11 blank | 0 comment | 6 complexity | 2b42ffb8931cdef586d744e4eadc1abc MD5 | raw file
 1tinyMCEPopup.requireLangPack();
 2
 3var AnchorDialog = {
 4	init : function(ed) {
 5		var action, elm, f = document.forms[0];
 6
 7		this.editor = ed;
 8		elm = ed.dom.getParent(ed.selection.getNode(), 'A');
 9		v = ed.dom.getAttrib(elm, 'name');
10
11		if (v) {
12			this.action = 'update';
13			f.anchorName.value = v;
14		}
15
16		f.insert.value = ed.getLang(elm ? 'update' : 'insert');
17	},
18
19	update : function() {
20		var ed = this.editor, elm, name = document.forms[0].anchorName.value;
21
22		if (!name || !/^[a-z][a-z0-9\-\_:\.]*$/i.test(name)) {
23			tinyMCEPopup.alert('advanced_dlg.anchor_invalid');
24			return;
25		}
26
27		tinyMCEPopup.restoreSelection();
28
29		if (this.action != 'update')
30			ed.selection.collapse(1);
31
32		elm = ed.dom.getParent(ed.selection.getNode(), 'A');
33		if (elm)
34			elm.name = name;
35		else
36			ed.execCommand('mceInsertContent', 0, ed.dom.createHTML('a', {name : name, 'class' : 'mceItemAnchor'}, ''));
37
38		tinyMCEPopup.close();
39	}
40};
41
42tinyMCEPopup.onInit.add(AnchorDialog.init, AnchorDialog);