summaryrefslogtreecommitdiffstats
path: root/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area
diff options
context:
space:
mode:
Diffstat (limited to 'gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area')
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/edit_area_full.js1235
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/autocompletion.gifbin0 -> 359 bytes
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/close.gifbin0 -> 102 bytes
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/fullscreen.gifbin0 -> 198 bytes
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/go_to_line.gifbin0 -> 1053 bytes
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/help.gifbin0 -> 295 bytes
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/highlight.gifbin0 -> 256 bytes
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/load.gifbin0 -> 1041 bytes
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/move.gifbin0 -> 257 bytes
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/newdocument.gifbin0 -> 170 bytes
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/opacity.pngbin0 -> 147 bytes
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/processing.gifbin0 -> 825 bytes
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/redo.gifbin0 -> 169 bytes
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/reset_highlight.gifbin0 -> 168 bytes
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/save.gifbin0 -> 285 bytes
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/search.gifbin0 -> 191 bytes
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/smooth_selection.gifbin0 -> 174 bytes
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/spacer.gifbin0 -> 43 bytes
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/statusbar_resize.gifbin0 -> 79 bytes
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/undo.gifbin0 -> 175 bytes
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/word_wrap.gifbin0 -> 951 bytes
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/bg.js54
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/cs.js48
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/de.js48
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/dk.js48
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/en.js48
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/eo.js48
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/es.js48
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/fi.js48
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/fr.js48
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/hr.js48
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/it.js48
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/ja.js48
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/mk.js48
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/nl.js48
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/pl.js48
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/pt.js48
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/ru.js48
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/sk.js48
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/zh.js48
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/license_apache.txt7
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/basic.js70
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/brainfuck.js45
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/c.js63
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/coldfusion.js120
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/cpp.js66
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/css.js85
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/html.js51
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/java.js57
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/js.js94
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/pas.js83
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/perl.js88
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/php.js157
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/python.js145
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/robotstxt.js25
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/ruby.js68
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/sql.js56
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/tsql.js88
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/vb.js53
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/xml.js57
60 files changed, 3631 insertions, 0 deletions
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/edit_area_full.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/edit_area_full.js
new file mode 100644
index 0000000..3521d83
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/edit_area_full.js
@@ -0,0 +1,1235 @@
+ function EAL() {
+ var t = this;
+ t.version = "0.8.2";
+ date = new Date();
+ t.start_time = date.getTime();
+ t.win = "loading";
+ t.error = false;
+ t.baseURL = "";
+ t.template = "";
+ t.lang = {};
+ t.load_syntax = {};
+ t.syntax = {};
+ t.loadedFiles = [];
+ t.waiting_loading = {};
+ t.scripts_to_load = [];
+ t.sub_scripts_to_load = [];
+ t.syntax_display_name = {
+ 'basic': 'Basic',
+ 'brainfuck': 'Brainfuck',
+ 'c': 'C',
+ 'coldfusion': 'Coldfusion',
+ 'cpp': 'CPP',
+ 'css': 'CSS',
+ 'html': 'HTML',
+ 'java': 'Java',
+ 'js': 'Javascript',
+ 'pas': 'Pascal',
+ 'perl': 'Perl',
+ 'php': 'Php',
+ 'python': 'Python',
+ 'robotstxt': 'Robots txt',
+ 'ruby': 'Ruby',
+ 'sql': 'SQL',
+ 'tsql': 'T-SQL',
+ 'vb': 'Visual Basic',
+ 'xml': 'XML'
+ };
+ t.resize = [];
+ t.hidden = {};
+ t.default_settings = {
+ debug: false,
+ smooth_selection: true,
+ font_size: "10",
+ font_family: "monospace",
+ start_highlight: false,
+ toolbar: "search,go_to_line,fullscreen,|,undo,redo,|,select_font,|,change_smooth_selection,highlight,reset_highlight,word_wrap,|,help",
+ begin_toolbar: "",
+ end_toolbar: "",
+ is_multi_files: false,
+ allow_resize: "both",
+ show_line_colors: false,
+ min_width: 400,
+ min_height: 125,
+ replace_tab_by_spaces: false,
+ allow_toggle: true,
+ language: "en",
+ syntax: "",
+ syntax_selection_allow: "basic,brainfuck,c,coldfusion,cpp,css,html,java,js,pas,perl,php,python,ruby,robotstxt,sql,tsql,vb,xml",
+ display: "onload",
+ max_undo: 30,
+ browsers: "known",
+ plugins: "",
+ gecko_spellcheck: false,
+ fullscreen: false,
+ is_editable: true,
+ cursor_position: "begin",
+ word_wrap: false,
+ autocompletion: false,
+ load_callback: "",
+ save_callback: "",
+ change_callback: "",
+ submit_callback: "",
+ EA_init_callback: "",
+ EA_delete_callback: "",
+ EA_load_callback: "",
+ EA_unload_callback: "",
+ EA_toggle_on_callback: "",
+ EA_toggle_off_callback: "",
+ EA_file_switch_on_callback: "",
+ EA_file_switch_off_callback: "",
+ EA_file_close_callback: ""
+ };
+ t.advanced_buttons = [
+ ['new_document', 'newdocument.gif', 'new_document', false],
+ ['search', 'search.gif', 'show_search', false],
+ ['go_to_line', 'go_to_line.gif', 'go_to_line', false],
+ ['undo', 'undo.gif', 'undo', true],
+ ['redo', 'redo.gif', 'redo', true],
+ ['change_smooth_selection', 'smooth_selection.gif', 'change_smooth_selection_mode', true],
+ ['reset_highlight', 'reset_highlight.gif', 'resync_highlight', true],
+ ['highlight', 'highlight.gif', 'change_highlight', true],
+ ['help', 'help.gif', 'show_help', false],
+ ['save', 'save.gif', 'save', false],
+ ['load', 'load.gif', 'load', false],
+ ['fullscreen', 'fullscreen.gif', 'toggle_full_screen', false],
+ ['word_wrap', 'word_wrap.gif', 'toggle_word_wrap', true],
+ ['autocompletion', 'autocompletion.gif', 'toggle_autocompletion', true]
+ ];
+ t.set_browser_infos(t);
+ if (t.isIE >= 6 || t.isGecko || (t.isWebKit && !t.isSafari < 3) || t.isOpera >= 9 || t.isCamino) t.isValidBrowser = true;
+ else t.isValidBrowser = false;
+ t.set_base_url();
+ for (var i = 0; i < t.scripts_to_load.length; i++) {
+ setTimeout("eAL.load_script('" + t.baseURL + t.scripts_to_load[i] + ".js');", 1);
+ t.waiting_loading[t.scripts_to_load[i] + ".js"] = false;
+ }
+ t.add_event(window, "load", EAL.prototype.window_loaded);
+ };
+ EAL.prototype = {
+ has_error: function() {
+ this.error = true;
+ for (var i in EAL.prototype) {
+ EAL.prototype[i] = function() {};
+ }
+ },
+ set_browser_infos: function(o) {
+ ua = navigator.userAgent;
+ o.isWebKit = /WebKit/.test(ua);
+ o.isGecko = !o.isWebKit && /Gecko/.test(ua);
+ o.isMac = /Mac/.test(ua);
+ o.isIE = (navigator.appName == "Microsoft Internet Explorer");
+ if (o.isIE) {
+ o.isIE = ua.replace(/^.*?MSIE\s+([0-9\.]+).*$/, "$1");
+ if (o.isIE < 6) o.has_error();
+ }
+ if (o.isOpera = (ua.indexOf('Opera') != -1)) {
+ o.isOpera = ua.replace(/^.*?Opera.*?([0-9\.]+).*$/i, "$1");
+ if (o.isOpera < 9) o.has_error();
+ o.isIE = false;
+ }
+ if (o.isFirefox = (ua.indexOf('Firefox') != -1)) o.isFirefox = ua.replace(/^.*?Firefox.*?([0-9\.]+).*$/i, "$1");
+ if (ua.indexOf('Iceweasel') != -1) o.isFirefox = ua.replace(/^.*?Iceweasel.*?([0-9\.]+).*$/i, "$1");
+ if (ua.indexOf('GranParadiso') != -1) o.isFirefox = ua.replace(/^.*?GranParadiso.*?([0-9\.]+).*$/i, "$1");
+ if (ua.indexOf('BonEcho') != -1) o.isFirefox = ua.replace(/^.*?BonEcho.*?([0-9\.]+).*$/i, "$1");
+ if (ua.indexOf('SeaMonkey') != -1) o.isFirefox = (ua.replace(/^.*?SeaMonkey.*?([0-9\.]+).*$/i, "$1")) + 1;
+ if (o.isCamino = (ua.indexOf('Camino') != -1)) o.isCamino = ua.replace(/^.*?Camino.*?([0-9\.]+).*$/i, "$1");
+ if (o.isSafari = (ua.indexOf('Safari') != -1)) o.isSafari = ua.replace(/^.*?Version\/([0-9]+\.[0-9]+).*$/i, "$1");
+ if (o.isChrome = (ua.indexOf('Chrome') != -1)) {
+ o.isChrome = ua.replace(/^.*?Chrome.*?([0-9\.]+).*$/i, "$1");
+ o.isSafari = false;
+ }
+ },
+ window_loaded: function() {
+ eAL.win = "loaded";
+ if (document.forms) {
+ for (var i = 0; i < document.forms.length; i++) {
+ var form = document.forms[i];
+ form.edit_area_replaced_submit = null;
+ try {
+ form.edit_area_replaced_submit = form.onsubmit;
+ form.onsubmit = "";
+ } catch (e) {}
+ eAL.add_event(form, "submit", EAL.prototype.submit);
+ eAL.add_event(form, "reset", EAL.prototype.reset);
+ }
+ }
+ eAL.add_event(window, "unload", function() {
+ for (var i in eAs) {
+ eAL.delete_instance(i);
+ }
+ });
+ },
+ init_ie_textarea: function(id) {
+ var a = document.getElementById(id);
+ try {
+ if (a && typeof(a.focused) == "undefined") {
+ a.focus();
+ a.focused = true;
+ a.selectionStart = a.selectionEnd = 0;
+ get_IE_selection(a);
+ eAL.add_event(a, "focus", IE_textarea_focus);
+ eAL.add_event(a, "blur", IE_textarea_blur);
+ }
+ } catch (ex) {}
+ },
+ init: function(settings) {
+ var t = this,
+ s = settings,
+ i;
+ if (!s["id"]) t.has_error();
+ if (t.error) return;
+ if (eAs[s["id"]]) t.delete_instance(s["id"]);
+ for (i in t.default_settings) {
+ if (typeof(s[i]) == "undefined") s[i] = t.default_settings[i];
+ }
+ if (s["browsers"] == "known" && t.isValidBrowser == false) {
+ return;
+ }
+ if (s["begin_toolbar"].length > 0) s["toolbar"] = s["begin_toolbar"] + "," + s["toolbar"];
+ if (s["end_toolbar"].length > 0) s["toolbar"] = s["toolbar"] + "," + s["end_toolbar"];
+ s["tab_toolbar"] = s["toolbar"].replace(/ /g, "").split(",");
+ s["plugins"] = s["plugins"].replace(/ /g, "").split(",");
+ for (i = 0; i < s["plugins"].length; i++) {
+ if (s["plugins"][i].length == 0) s["plugins"].splice(i, 1);
+ }
+ t.get_template();
+ t.load_script(t.baseURL + "langs/" + s["language"] + ".js");
+ if (s["syntax"].length > 0) {
+ s["syntax"] = s["syntax"].toLowerCase();
+ t.load_script(t.baseURL + "reg_syntax/" + s["syntax"] + ".js");
+ }
+ eAs[s["id"]] = {
+ "settings": s
+ };
+ eAs[s["id"]]["displayed"] = false;
+ eAs[s["id"]]["hidden"] = false;
+ t.start(s["id"]);
+ },
+ delete_instance: function(id) {
+ var d = document,
+ fs = window.frames,
+ span, iframe;
+ eAL.execCommand(id, "EA_delete");
+ if (fs["frame_" + id] && fs["frame_" + id].editArea) {
+ if (eAs[id]["displayed"]) eAL.toggle(id, "off");
+ fs["frame_" + id].editArea.execCommand("EA_unload");
+ }
+ span = d.getElementById("EditAreaArroundInfos_" + id);
+ if (span) span.parentNode.removeChild(span);
+ iframe = d.getElementById("frame_" + id);
+ if (iframe) {
+ iframe.parentNode.removeChild(iframe);
+ try {
+ delete fs["frame_" + id];
+ } catch (e) {}
+ }
+ delete eAs[id];
+ },
+ start: function(id) {
+ var t = this,
+ d = document,
+ f, span, father, next, html = '',
+ html_toolbar_content = '',
+ template, content, i;
+ if (t.win != "loaded") {
+ setTimeout("eAL.start('" + id + "');", 50);
+ return;
+ }
+ for (i in t.waiting_loading) {
+ if (t.waiting_loading[i] != "loaded" && typeof(t.waiting_loading[i]) != "function") {
+ setTimeout("eAL.start('" + id + "');", 50);
+ return;
+ }
+ }
+ if (!t.lang[eAs[id]["settings"]["language"]] || (eAs[id]["settings"]["syntax"].length > 0 && !t.load_syntax[eAs[id]["settings"]["syntax"]])) {
+ setTimeout("eAL.start('" + id + "');", 50);
+ return;
+ }
+ if (eAs[id]["settings"]["syntax"].length > 0) t.init_syntax_regexp();
+ if (!d.getElementById("EditAreaArroundInfos_" + id) && (eAs[id]["settings"]["debug"] || eAs[id]["settings"]["allow_toggle"])) {
+ span = d.createElement("span");
+ span.id = "EditAreaArroundInfos_" + id;
+ if (eAs[id]["settings"]["allow_toggle"]) {
+ checked = (eAs[id]["settings"]["display"] == "onload") ? "checked='checked'" : "";
+ html += "<div id='edit_area_toggle_" + i + "'>";
+ html += "<input id='edit_area_toggle_checkbox_" + id + "' class='toggle_" + id + "' type='checkbox' onclick='eAL.toggle(\"" + id + "\");' accesskey='e' " + checked + " />";
+ html += "<label for='edit_area_toggle_checkbox_" + id + "' class = 'edit_area_toggle_checkbox'>{$toggle}</label></div>";
+ }
+ if (eAs[id]["settings"]["debug"]) html += "<textarea id='edit_area_debug_" + id + "' spellcheck='off' style='z-index:20;width:100%;height:120px;overflow:auto;border:solid black 1px;'></textarea><br />";
+ html = t.translate(html, eAs[id]["settings"]["language"]);
+ span.innerHTML = html;
+ father = d.getElementById(id).parentNode;
+ next = d.getElementById(id).nextSibling;
+ if (next == null) father.appendChild(span);
+ else father.insertBefore(span, next);
+ }
+ if (!eAs[id]["initialized"]) {
+ t.execCommand(id, "EA_init");
+ if (eAs[id]["settings"]["display"] == "later") {
+ eAs[id]["initialized"] = true;
+ return;
+ }
+ }
+ if (t.isIE) {
+ t.init_ie_textarea(id);
+ }
+ var area = eAs[id];
+ for (i = 0; i < area["settings"]["tab_toolbar"].length; i++) {
+ html_toolbar_content += t.get_control_html(area["settings"]["tab_toolbar"][i], area["settings"]["language"]);
+ }
+ html_toolbar_content = t.translate(html_toolbar_content, area["settings"]["language"], "template");
+ if (!t.iframe_script) {
+ t.iframe_script = "";
+ for (i = 0; i < t.sub_scripts_to_load.length; i++) t.iframe_script += '<script language="javascript" type="text/javascript" src="' + t.baseURL + t.sub_scripts_to_load[i] + '.js"></script>';
+ }
+ for (i = 0; i < area["settings"]["plugins"].length; i++) {
+ if (!t.all_plugins_loaded) t.iframe_script += '<script language="javascript" type="text/javascript" src="' + t.baseURL + 'plugins/' + area["settings"]["plugins"][i] + '/' + area["settings"]["plugins"][i] + '.js"></script>';
+ t.iframe_script += '<script language="javascript" type="text/javascript" src="' + t.baseURL + 'plugins/' + area["settings"]["plugins"][i] + '/langs/' + area["settings"]["language"] + '.js"></script>';
+ }
+ if (!t.iframe_css) {
+ t.iframe_css = "<link href='" + t.baseURL + "edit_area.css' rel='stylesheet' type='text/css' />";
+ }
+ template = t.template.replace(/\[__BASEURL__\]/g, t.baseURL);
+ template = template.replace("[__TOOLBAR__]", html_toolbar_content);
+ template = t.translate(template, area["settings"]["language"], "template");
+ template = template.replace("[__CSSRULES__]", t.iframe_css);
+ template = template.replace("[__JSCODE__]", t.iframe_script);
+ template = template.replace("[__EA_VERSION__]", t.version);
+ area.textarea = d.getElementById(area["settings"]["id"]);
+ eAs[area["settings"]["id"]]["textarea"] = area.textarea;
+ if (typeof(window.frames["frame_" + area["settings"]["id"]]) != 'undefined') delete window.frames["frame_" + area["settings"]["id"]];
+ father = area.textarea.parentNode;
+ content = d.createElement("iframe");
+ content.name = "frame_" + area["settings"]["id"];
+ content.id = "frame_" + area["settings"]["id"];
+ content.style.borderWidth = "0px";
+ setAttribute(content, "frameBorder", "0");
+ content.style.overflow = "hidden";
+ content.style.display = "none";
+ next = area.textarea.nextSibling;
+ if (next == null) father.appendChild(content);
+ else father.insertBefore(content, next);
+ f = window.frames["frame_" + area["settings"]["id"]];
+ f.document.open();
+ f.eAs = eAs;
+ f.area_id = area["settings"]["id"];
+ f.document.area_id = area["settings"]["id"];
+ f.document.write(template);
+ f.document.close();
+ },
+ toggle: function(id, toggle_to) {
+ if (!toggle_to) toggle_to = (eAs[id]["displayed"] == true) ? "off" : "on";
+ if (eAs[id]["displayed"] == true && toggle_to == "off") {
+ this.toggle_off(id);
+ } else if (eAs[id]["displayed"] == false && toggle_to == "on") {
+ this.toggle_on(id);
+ }
+ return false;
+ },
+ toggle_off: function(id) {
+ var fs = window.frames,
+ f, t, parNod, nxtSib, selStart, selEnd, scrollTop, scrollLeft;
+ if (fs["frame_" + id]) {
+ f = fs["frame_" + id];
+ t = eAs[id]["textarea"];
+ if (f.editArea.fullscreen['isFull']) f.editArea.toggle_full_screen(false);
+ eAs[id]["displayed"] = false;
+ t.wrap = "off";
+ setAttribute(t, "wrap", "off");
+ parNod = t.parentNode;
+ nxtSib = t.nextSibling;
+ parNod.removeChild(t);
+ parNod.insertBefore(t, nxtSib);
+ t.value = f.editArea.textarea.value;
+ selStart = f.editArea.last_selection["selectionStart"];
+ selEnd = f.editArea.last_selection["selectionEnd"];
+ scrollTop = f.document.getElementById("result").scrollTop;
+ scrollLeft = f.document.getElementById("result").scrollLeft;
+ document.getElementById("frame_" + id).style.display = 'none';
+ t.style.display = "inline";
+ try {
+ t.focus();
+ } catch (e) {};
+ if (this.isIE) {
+ t.selectionStart = selStart;
+ t.selectionEnd = selEnd;
+ t.focused = true;
+ set_IE_selection(t);
+ } else {
+ if (this.isOpera && this.isOpera < 9.6) {
+ t.setSelectionRange(0, 0);
+ }
+ try {
+ t.setSelectionRange(selStart, selEnd);
+ } catch (e) {};
+ }
+ t.scrollTop = scrollTop;
+ t.scrollLeft = scrollLeft;
+ f.editArea.execCommand("toggle_off");
+ }
+ },
+ toggle_on: function(id) {
+ var fs = window.frames,
+ f, t, selStart = 0,
+ selEnd = 0,
+ scrollTop = 0,
+ scrollLeft = 0,
+ curPos, elem;
+ if (fs["frame_" + id]) {
+ f = fs["frame_" + id];
+ t = eAs[id]["textarea"];
+ area = f.editArea;
+ area.textarea.value = t.value;
+ curPos = eAs[id]["settings"]["cursor_position"];
+ if (t.use_last == true) {
+ selStart = t.last_selectionStart;
+ selEnd = t.last_selectionEnd;
+ scrollTop = t.last_scrollTop;
+ scrollLeft = t.last_scrollLeft;
+ t.use_last = false;
+ } else if (curPos == "auto") {
+ try {
+ selStart = t.selectionStart;
+ selEnd = t.selectionEnd;
+ scrollTop = t.scrollTop;
+ scrollLeft = t.scrollLeft;
+ } catch (ex) {}
+ }
+ this.set_editarea_size_from_textarea(id, document.getElementById("frame_" + id));
+ t.style.display = "none";
+ document.getElementById("frame_" + id).style.display = "inline";
+ area.execCommand("focus");
+ eAs[id]["displayed"] = true;
+ area.execCommand("update_size");
+ f.document.getElementById("result").scrollTop = scrollTop;
+ f.document.getElementById("result").scrollLeft = scrollLeft;
+ area.area_select(selStart, selEnd - selStart);
+ area.execCommand("toggle_on");
+ } else {
+ elem = document.getElementById(id);
+ elem.last_selectionStart = elem.selectionStart;
+ elem.last_selectionEnd = elem.selectionEnd;
+ elem.last_scrollTop = elem.scrollTop;
+ elem.last_scrollLeft = elem.scrollLeft;
+ elem.use_last = true;
+ eAL.start(id);
+ }
+ },
+ set_editarea_size_from_textarea: function(id, frame) {
+ var elem, width, height;
+ elem = document.getElementById(id);
+ width = Math.max(eAs[id]["settings"]["min_width"], elem.offsetWidth) + "px";
+ height = Math.max(eAs[id]["settings"]["min_height"], elem.offsetHeight) + "px";
+ if (elem.style.width.indexOf("%") != -1) width = elem.style.width;
+ if (elem.style.height.indexOf("%") != -1) height = elem.style.height;
+ frame.style.width = width;
+ frame.style.height = height;
+ },
+ set_base_url: function() {
+ var t = this,
+ elems, i, docBasePath;
+ if (!this.baseURL) {
+ elems = document.getElementsByTagName('script');
+ for (i = 0; i < elems.length; i++) {
+ if (elems[i].src && elems[i].src.match(/edit_area_[^\\\/]*$/i)) {
+ var src = unescape(elems[i].src);
+ src = src.substring(0, src.lastIndexOf('/'));
+ this.baseURL = src;
+ this.file_name = elems[i].src.substr(elems[i].src.lastIndexOf("/") + 1);
+ break;
+ }
+ }
+ }
+ docBasePath = document.location.href;
+ if (docBasePath.indexOf('?') != -1) docBasePath = docBasePath.substring(0, docBasePath.indexOf('?'));
+ docBasePath = docBasePath.substring(0, docBasePath.lastIndexOf('/'));
+ if (t.baseURL.indexOf('://') == -1 && t.baseURL.charAt(0) != '/') {
+ t.baseURL = docBasePath + "/" + t.baseURL;
+ }
+ t.baseURL += "/";
+ },
+ get_button_html: function(id, img, exec, isFileSpecific, baseURL) {
+ var cmd, html;
+ if (!baseURL) baseURL = this.baseURL;
+ cmd = 'editArea.execCommand(\'' + exec + '\')';
+ html = '<a id="a_' + id + '" href="javascript:' + cmd + '" onclick="' + cmd + ';return false;" onmousedown="return false;" target="_self" fileSpecific="' + (isFileSpecific ? 'yes' : 'no') + '">';
+ html += '<img id="' + id + '" src="' + baseURL + 'images/' + img + '" title="{$' + id + '}" width="20" height="20" class="editAreaButtonNormal" onmouseover="editArea.switchClass(this,\'editAreaButtonOver\');" onmouseout="editArea.restoreClass(this);" onmousedown="editArea.restoreAndSwitchClass(this,\'editAreaButtonDown\');" /></a>';
+ return html;
+ },
+ get_control_html: function(button_name, lang) {
+ var t = this,
+ i, but, html, si;
+ for (i = 0; i < t.advanced_buttons.length; i++) {
+ but = t.advanced_buttons[i];
+ if (but[0] == button_name) {
+ return t.get_button_html(but[0], but[1], but[2], but[3]);
+ }
+ }
+ switch (button_name) {
+ case "*":
+ case "return":
+ return "<br />";
+ case "|":
+ case "separator":
+ return '<img src="' + t.baseURL + 'images/spacer.gif" width="1" height="15" class="editAreaSeparatorLine">';
+ case "select_font":
+ html = "<select id='area_font_size' onchange='javascript:editArea.execCommand(\"change_font_size\")' fileSpecific='yes'>";
+ html += "<option value='-1'>{$font_size}</option>";
+ si = [8, 9, 10, 11, 12, 14];
+ for (i = 0; i < si.length; i++) {
+ html += "<option value='" + si[i] + "'>" + si[i] + " pt</option>";
+ }
+ html += "</select>";
+ return html;
+ case "syntax_selection":
+ html = "<select id='syntax_selection' onchange='javascript:editArea.execCommand(\"change_syntax\",this.value)' fileSpecific='yes'>";
+ html += "<option value='-1'>{$syntax_selection}</option>";
+ html += "</select>";
+ return html;
+ }
+ return "<span id='tmp_tool_" + button_name + "'>[" + button_name + "]</span>";
+ },
+ get_template: function() {
+ if (this.template == "") {
+ var xhr_object = null;
+ if (window.XMLHttpRequest) xhr_object = new XMLHttpRequest();
+ else if (window.ActiveXObject) xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
+ else {
+ alert("XMLHTTPRequest not supported. EditArea not loaded");
+ return;
+ }
+ xhr_object.open("GET", this.baseURL + "template.html", false);
+ xhr_object.send(null);
+ if (xhr_object.readyState == 4) this.template = xhr_object.responseText;
+ else this.has_error();
+ }
+ },
+ translate: function(text, lang, mode) {
+ if (mode == "word") text = eAL.get_word_translation(text, lang);
+ else if (mode = "template") {
+ eAL.current_language = lang;
+ text = text.replace(/\{\$([^\}]+)\}/gm, eAL.translate_template);
+ }
+ return text;
+ },
+ translate_template: function() {
+ return eAL.get_word_translation(EAL.prototype.translate_template.arguments[1], eAL.current_language);
+ },
+ get_word_translation: function(val, lang) {
+ var i;
+ for (i in eAL.lang[lang]) {
+ if (i == val) return eAL.lang[lang][i];
+ }
+ return "_" + val;
+ },
+ load_script: function(url) {
+ var t = this,
+ d = document,
+ script, head;
+ if (t.loadedFiles[url]) return;
+ try {
+ script = d.createElement("script");
+ script.type = "text/javascript";
+ script.src = url;
+ script.charset = "UTF-8";
+ d.getElementsByTagName("head")[0].appendChild(script);
+ } catch (e) {
+ d.write('<sc' + 'ript language="javascript" type="text/javascript" src="' + url + '" charset="UTF-8"></sc' + 'ript>');
+ }
+ t.loadedFiles[url] = true;
+ },
+ add_event: function(obj, name, handler) {
+ try {
+ if (obj.attachEvent) {
+ obj.attachEvent("on" + name, handler);
+ } else {
+ obj.addEventListener(name, handler, false);
+ }
+ } catch (e) {}
+ },
+ remove_event: function(obj, name, handler) {
+ try {
+ if (obj.detachEvent) obj.detachEvent("on" + name, handler);
+ else obj.removeEventListener(name, handler, false);
+ } catch (e) {}
+ },
+ reset: function(e) {
+ var formObj, is_child, i, x;
+ formObj = eAL.isIE ? window.event.srcElement : e.target;
+ if (formObj.tagName != 'FORM') formObj = formObj.form;
+ for (i in eAs) {
+ is_child = false;
+ for (x = 0; x < formObj.elements.length; x++) {
+ if (formObj.elements[x].id == i) is_child = true;
+ }
+ if (window.frames["frame_" + i] && is_child && eAs[i]["displayed"] == true) {
+ var exec = 'window.frames["frame_' + i + '"].editArea.textarea.value=document.getElementById("' + i + '").value;';
+ exec += 'window.frames["frame_' + i + '"].editArea.execCommand("focus");';
+ exec += 'window.frames["frame_' + i + '"].editArea.check_line_selection();';
+ exec += 'window.frames["frame_' + i + '"].editArea.execCommand("reset");';
+ window.setTimeout(exec, 10);
+ }
+ }
+ return;
+ },
+ submit: function(e) {
+ var formObj, is_child, fs = window.frames,
+ i, x;
+ formObj = eAL.isIE ? window.event.srcElement : e.target;
+ if (formObj.tagName != 'FORM') formObj = formObj.form;
+ for (i in eAs) {
+ is_child = false;
+ for (x = 0; x < formObj.elements.length; x++) {
+ if (formObj.elements[x].id == i) is_child = true;
+ }
+ if (is_child) {
+ if (fs["frame_" + i] && eAs[i]["displayed"] == true) document.getElementById(i).value = fs["frame_" + i].editArea.textarea.value;
+ eAL.execCommand(i, "EA_submit");
+ }
+ }
+ if (typeof(formObj.edit_area_replaced_submit) == "function") {
+ res = formObj.edit_area_replaced_submit();
+ if (res == false) {
+ if (eAL.isIE) return false;
+ else e.preventDefault();
+ }
+ }
+ return;
+ },
+ getValue: function(id) {
+ if (window.frames["frame_" + id] && eAs[id]["displayed"] == true) {
+ return window.frames["frame_" + id].editArea.textarea.value;
+ } else if (elem = document.getElementById(id)) {
+ return elem.value;
+ }
+ return false;
+ },
+ setValue: function(id, new_val) {
+ var fs = window.frames;
+ if ((f = fs["frame_" + id]) && eAs[id]["displayed"] == true) {
+ f.editArea.textarea.value = new_val;
+ f.editArea.execCommand("focus");
+ f.editArea.check_line_selection(false);
+ f.editArea.execCommand("onchange");
+ } else if (elem = document.getElementById(id)) {
+ elem.value = new_val;
+ }
+ },
+ getSelectionRange: function(id) {
+ var sel, eA, fs = window.frames;
+ sel = {
+ "start": 0,
+ "end": 0
+ };
+ if (fs["frame_" + id] && eAs[id]["displayed"] == true) {
+ eA = fs["frame_" + id].editArea;
+ sel["start"] = eA.textarea.selectionStart;
+ sel["end"] = eA.textarea.selectionEnd;
+ } else if (elem = document.getElementById(id)) {
+ sel = getSelectionRange(elem);
+ }
+ return sel;
+ },
+ setSelectionRange: function(id, new_start, new_end) {
+ var fs = window.frames;
+ if (fs["frame_" + id] && eAs[id]["displayed"] == true) {
+ fs["frame_" + id].editArea.area_select(new_start, new_end - new_start);
+ if (!this.isIE) {
+ fs["frame_" + id].editArea.check_line_selection(false);
+ fs["frame_" + id].editArea.scroll_to_view();
+ }
+ } else if (elem = document.getElementById(id)) {
+ setSelectionRange(elem, new_start, new_end);
+ }
+ },
+ getSelectedText: function(id) {
+ var sel = this.getSelectionRange(id);
+ return this.getValue(id).substring(sel["start"], sel["end"]);
+ },
+ setSelectedText: function(id, new_val) {
+ var fs = window.frames,
+ d = document,
+ sel, text, scrollTop, scrollLeft, new_sel_end;
+ new_val = new_val.replace(/\r/g, "");
+ sel = this.getSelectionRange(id);
+ text = this.getValue(id);
+ if (fs["frame_" + id] && eAs[id]["displayed"] == true) {
+ scrollTop = fs["frame_" + id].document.getElementById("result").scrollTop;
+ scrollLeft = fs["frame_" + id].document.getElementById("result").scrollLeft;
+ } else {
+ scrollTop = d.getElementById(id).scrollTop;
+ scrollLeft = d.getElementById(id).scrollLeft;
+ }
+ text = text.substring(0, sel["start"]) + new_val + text.substring(sel["end"]);
+ this.setValue(id, text);
+ new_sel_end = sel["start"] + new_val.length;
+ this.setSelectionRange(id, sel["start"], new_sel_end);
+ if (new_val != this.getSelectedText(id).replace(/\r/g, "")) {
+ this.setSelectionRange(id, sel["start"], new_sel_end + new_val.split("\n").length - 1);
+ }
+ if (fs["frame_" + id] && eAs[id]["displayed"] == true) {
+ fs["frame_" + id].document.getElementById("result").scrollTop = scrollTop;
+ fs["frame_" + id].document.getElementById("result").scrollLeft = scrollLeft;
+ fs["frame_" + id].editArea.execCommand("onchange");
+ } else {
+ d.getElementById(id).scrollTop = scrollTop;
+ d.getElementById(id).scrollLeft = scrollLeft;
+ }
+ },
+ insertTags: function(id, open_tag, close_tag) {
+ var old_sel, new_sel;
+ old_sel = this.getSelectionRange(id);
+ text = open_tag + this.getSelectedText(id) + close_tag;
+ eAL.setSelectedText(id, text);
+ new_sel = this.getSelectionRange(id);
+ if (old_sel["end"] > old_sel["start"]) this.setSelectionRange(id, new_sel["end"], new_sel["end"]);
+ else this.setSelectionRange(id, old_sel["start"] + open_tag.length, old_sel["start"] + open_tag.length);
+ },
+ hide: function(id) {
+ var fs = window.frames,
+ d = document,
+ t = this,
+ scrollTop, scrollLeft, span;
+ if (d.getElementById(id) && !t.hidden[id]) {
+ t.hidden[id] = {};
+ t.hidden[id]["selectionRange"] = t.getSelectionRange(id);
+ if (d.getElementById(id).style.display != "none") {
+ t.hidden[id]["scrollTop"] = d.getElementById(id).scrollTop;
+ t.hidden[id]["scrollLeft"] = d.getElementById(id).scrollLeft;
+ }
+ if (fs["frame_" + id]) {
+ t.hidden[id]["toggle"] = eAs[id]["displayed"];
+ if (fs["frame_" + id] && eAs[id]["displayed"] == true) {
+ scrollTop = fs["frame_" + id].document.getElementById("result").scrollTop;
+ scrollLeft = fs["frame_" + id].document.getElementById("result").scrollLeft;
+ } else {
+ scrollTop = d.getElementById(id).scrollTop;
+ scrollLeft = d.getElementById(id).scrollLeft;
+ }
+ t.hidden[id]["scrollTop"] = scrollTop;
+ t.hidden[id]["scrollLeft"] = scrollLeft;
+ if (eAs[id]["displayed"] == true) eAL.toggle_off(id);
+ }
+ span = d.getElementById("EditAreaArroundInfos_" + id);
+ if (span) {
+ span.style.display = 'none';
+ }
+ d.getElementById(id).style.display = "none";
+ }
+ },
+ show: function(id) {
+ var fs = window.frames,
+ d = document,
+ t = this,
+ span;
+ if ((elem = d.getElementById(id)) && t.hidden[id]) {
+ elem.style.display = "inline";
+ elem.scrollTop = t.hidden[id]["scrollTop"];
+ elem.scrollLeft = t.hidden[id]["scrollLeft"];
+ span = d.getElementById("EditAreaArroundInfos_" + id);
+ if (span) {
+ span.style.display = 'inline';
+ }
+ if (fs["frame_" + id]) {
+ elem.style.display = "inline";
+ if (t.hidden[id]["toggle"] == true) eAL.toggle_on(id);
+ scrollTop = t.hidden[id]["scrollTop"];
+ scrollLeft = t.hidden[id]["scrollLeft"];
+ if (fs["frame_" + id] && eAs[id]["displayed"] == true) {
+ fs["frame_" + id].document.getElementById("result").scrollTop = scrollTop;
+ fs["frame_" + id].document.getElementById("result").scrollLeft = scrollLeft;
+ } else {
+ elem.scrollTop = scrollTop;
+ elem.scrollLeft = scrollLeft;
+ }
+ }
+ sel = t.hidden[id]["selectionRange"];
+ t.setSelectionRange(id, sel["start"], sel["end"]);
+ delete t.hidden[id];
+ }
+ },
+ getCurrentFile: function(id) {
+ return this.execCommand(id, 'get_file', this.execCommand(id, 'curr_file'));
+ },
+ getFile: function(id, file_id) {
+ return this.execCommand(id, 'get_file', file_id);
+ },
+ getAllFiles: function(id) {
+ return this.execCommand(id, 'get_all_files()');
+ },
+ openFile: function(id, file_infos) {
+ return this.execCommand(id, 'open_file', file_infos);
+ },
+ closeFile: function(id, file_id) {
+ return this.execCommand(id, 'close_file', file_id);
+ },
+ setFileEditedMode: function(id, file_id, to) {
+ var reg1, reg2;
+ reg1 = new RegExp('\\\\', 'g');
+ reg2 = new RegExp('"', 'g');
+ return this.execCommand(id, 'set_file_edited_mode("' + file_id.replace(reg1, '\\\\').replace(reg2, '\\"') + '",' + to + ')');
+ },
+ execCommand: function(id, cmd, fct_param) {
+ switch (cmd) {
+ case "EA_init":
+ if (eAs[id]['settings']["EA_init_callback"].length > 0) eval(eAs[id]['settings']["EA_init_callback"] + "('" + id + "');");
+ break;
+ case "EA_delete":
+ if (eAs[id]['settings']["EA_delete_callback"].length > 0) eval(eAs[id]['settings']["EA_delete_callback"] + "('" + id + "');");
+ break;
+ case "EA_submit":
+ if (eAs[id]['settings']["submit_callback"].length > 0) eval(eAs[id]['settings']["submit_callback"] + "('" + id + "');");
+ break;
+ }
+ if (window.frames["frame_" + id] && window.frames["frame_" + id].editArea) {
+ if (fct_param != undefined) return eval('window.frames["frame_' + id + '"].editArea.' + cmd + '(fct_param);');
+ else return eval('window.frames["frame_' + id + '"].editArea.' + cmd + ';');
+ }
+ return false;
+ }
+ };
+ var eAL = new EAL();
+ var eAs = {};
+
+ function getAttribute(elm, aName) {
+ var aValue, taName, i;
+ try {
+ aValue = elm.getAttribute(aName);
+ } catch (exept) {}
+ if (!aValue) {
+ for (i = 0; i < elm.attributes.length; i++) {
+ taName = elm.attributes[i].name.toLowerCase();
+ if (taName == aName) {
+ aValue = elm.attributes[i].value;
+ return aValue;
+ }
+ }
+ }
+ return aValue;
+ };
+
+ function setAttribute(elm, attr, val) {
+ if (attr == "class") {
+ elm.setAttribute("className", val);
+ elm.setAttribute("class", val);
+ } else {
+ elm.setAttribute(attr, val);
+ }
+ };
+
+ function getChildren(elem, elem_type, elem_attribute, elem_attribute_match, option, depth) {
+ if (!option) var option = "single";
+ if (!depth) var depth = -1;
+ if (elem) {
+ var children = elem.childNodes;
+ var result = null;
+ var results = [];
+ for (var x = 0; x < children.length; x++) {
+ strTagName = new String(children[x].tagName);
+ children_class = "?";
+ if (strTagName != "undefined") {
+ child_attribute = getAttribute(children[x], elem_attribute);
+ if ((strTagName.toLowerCase() == elem_type.toLowerCase() || elem_type == "") && (elem_attribute == "" || child_attribute == elem_attribute_match)) {
+ if (option == "all") {
+ results.push(children[x]);
+ } else {
+ return children[x];
+ }
+ }
+ if (depth != 0) {
+ result = getChildren(children[x], elem_type, elem_attribute, elem_attribute_match, option, depth - 1);
+ if (option == "all") {
+ if (result.length > 0) {
+ results = results.concat(result);
+ }
+ } else if (result != null) {
+ return result;
+ }
+ }
+ }
+ }
+ if (option == "all") return results;
+ }
+ return null;
+ };
+
+ function isChildOf(elem, parent) {
+ if (elem) {
+ if (elem == parent) return true;
+ while (elem.parentNode != 'undefined') {
+ return isChildOf(elem.parentNode, parent);
+ }
+ }
+ return false;
+ };
+
+ function getMouseX(e) {
+ if (e != null && typeof(e.pageX) != "undefined") {
+ return e.pageX;
+ } else {
+ return (e != null ? e.x : event.x) + document.documentElement.scrollLeft;
+ }
+ };
+
+ function getMouseY(e) {
+ if (e != null && typeof(e.pageY) != "undefined") {
+ return e.pageY;
+ } else {
+ return (e != null ? e.y : event.y) + document.documentElement.scrollTop;
+ }
+ };
+
+ function calculeOffsetLeft(r) {
+ return calculeOffset(r, "offsetLeft")
+ };
+
+ function calculeOffsetTop(r) {
+ return calculeOffset(r, "offsetTop")
+ };
+
+ function calculeOffset(element, attr) {
+ var offset = 0;
+ while (element) {
+ offset += element[attr];
+ element = element.offsetParent
+ }
+ return offset;
+ };
+
+ function get_css_property(elem, prop) {
+ if (document.defaultView) {
+ return document.defaultView.getComputedStyle(elem, null).getPropertyValue(prop);
+ } else if (elem.currentStyle) {
+ var prop = prop.replace(/-\D/gi, function(sMatch) {
+ return sMatch.charAt(sMatch.length - 1).toUpperCase();
+ });
+ return elem.currentStyle[prop];
+ } else return null;
+ }
+ var _mCE;
+
+ function start_move_element(e, id, frame) {
+ var elem_id = (e.target || e.srcElement).id;
+ if (id) elem_id = id;
+ if (!frame) frame = window;
+ if (frame.event) e = frame.event;
+ _mCE = frame.document.getElementById(elem_id);
+ _mCE.frame = frame;
+ frame.document.onmousemove = move_element;
+ frame.document.onmouseup = end_move_element;
+ mouse_x = getMouseX(e);
+ mouse_y = getMouseY(e);
+ _mCE.start_pos_x = mouse_x - (_mCE.style.left.replace("px", "") || calculeOffsetLeft(_mCE));
+ _mCE.start_pos_y = mouse_y - (_mCE.style.top.replace("px", "") || calculeOffsetTop(_mCE));
+ return false;
+ };
+
+ function end_move_element(e) {
+ _mCE.frame.document.onmousemove = "";
+ _mCE.frame.document.onmouseup = "";
+ _mCE = null;
+ };
+
+ function move_element(e) {
+ var newTop, newLeft, maxLeft;
+ if (_mCE.frame && _mCE.frame.event) e = _mCE.frame.event;
+ newTop = getMouseY(e) - _mCE.start_pos_y;
+ newLeft = getMouseX(e) - _mCE.start_pos_x;
+ maxLeft = _mCE.frame.document.body.offsetWidth - _mCE.offsetWidth;
+ max_top = _mCE.frame.document.body.offsetHeight - _mCE.offsetHeight;
+ newTop = Math.min(Math.max(0, newTop), max_top);
+ newLeft = Math.min(Math.max(0, newLeft), maxLeft);
+ _mCE.style.top = newTop + "px";
+ _mCE.style.left = newLeft + "px";
+ return false;
+ };
+ var nav = eAL.nav;
+
+ function getSelectionRange(textarea) {
+ return {
+ "start": textarea.selectionStart,
+ "end": textarea.selectionEnd
+ };
+ };
+
+ function setSelectionRange(t, start, end) {
+ t.focus();
+ start = Math.max(0, Math.min(t.value.length, start));
+ end = Math.max(start, Math.min(t.value.length, end));
+ if (nav.isOpera && nav.isOpera < 9.6) {
+ t.selectionEnd = 1;
+ t.selectionStart = 0;
+ t.selectionEnd = 1;
+ t.selectionStart = 0;
+ }
+ t.selectionStart = start;
+ t.selectionEnd = end;
+ if (nav.isIE) set_IE_selection(t);
+ };
+
+ function get_IE_selection(t) {
+ var d = document,
+ div, range, stored_range, elem, scrollTop, relative_top, line_start, line_nb, range_start, range_end, tab;
+ if (t && t.focused) {
+ if (!t.ea_line_height) {
+ div = d.createElement("div");
+ div.style.fontFamily = get_css_property(t, "font-family");
+ div.style.fontSize = get_css_property(t, "font-size");
+ div.style.visibility = "hidden";
+ div.innerHTML = "0";
+ d.body.appendChild(div);
+ t.ea_line_height = div.offsetHeight;
+ d.body.removeChild(div);
+ }
+ range = d.selection.createRange();
+ try {
+ stored_range = range.duplicate();
+ stored_range.moveToElementText(t);
+ stored_range.setEndPoint('EndToEnd', range);
+ if (stored_range.parentElement() == t) {
+ elem = t;
+ scrollTop = 0;
+ while (elem.parentNode) {
+ scrollTop += elem.scrollTop;
+ elem = elem.parentNode;
+ }
+ relative_top = range.offsetTop - calculeOffsetTop(t) + scrollTop;
+ line_start = Math.round((relative_top / t.ea_line_height) + 1);
+ line_nb = Math.round(range.boundingHeight / t.ea_line_height);
+ range_start = stored_range.text.length - range.text.length;
+ tab = t.value.substr(0, range_start).split("\n");
+ range_start += (line_start - tab.length) * 2;
+ t.selectionStart = range_start;
+ range_end = t.selectionStart + range.text.length;
+ tab = t.value.substr(0, range_start + range.text.length).split("\n");
+ range_end += (line_start + line_nb - 1 - tab.length) * 2;
+ t.selectionEnd = range_end;
+ }
+ } catch (e) {}
+ }
+ if (t && t.id) {
+ setTimeout("get_IE_selection(document.getElementById('" + t.id + "'));", 50);
+ }
+ };
+
+ function IE_textarea_focus() {
+ event.srcElement.focused = true;
+ }
+
+ function IE_textarea_blur() {
+ event.srcElement.focused = false;
+ }
+
+ function set_IE_selection(t) {
+ var nbLineStart, nbLineStart, nbLineEnd, range;
+ if (!window.closed) {
+ nbLineStart = t.value.substr(0, t.selectionStart).split("\n").length - 1;
+ nbLineEnd = t.value.substr(0, t.selectionEnd).split("\n").length - 1;
+ try {
+ range = document.selection.createRange();
+ range.moveToElementText(t);
+ range.setEndPoint('EndToStart', range);
+ range.moveStart('character', t.selectionStart - nbLineStart);
+ range.moveEnd('character', t.selectionEnd - nbLineEnd - (t.selectionStart - nbLineStart));
+ range.select();
+ } catch (e) {}
+ }
+ };
+ eAL.waiting_loading["elements_functions.js"] = "loaded";
+ EAL.prototype.start_resize_area = function() {
+ var d = document,
+ a, div, width, height, father;
+ d.onmouseup = eAL.end_resize_area;
+ d.onmousemove = eAL.resize_area;
+ eAL.toggle(eAL.resize["id"]);
+ a = eAs[eAL.resize["id"]]["textarea"];
+ div = d.getElementById("edit_area_resize");
+ if (!div) {
+ div = d.createElement("div");
+ div.id = "edit_area_resize";
+ div.style.border = "dashed #888888 1px";
+ }
+ width = a.offsetWidth - 2;
+ height = a.offsetHeight - 2;
+ div.style.display = "block";
+ div.style.width = width + "px";
+ div.style.height = height + "px";
+ father = a.parentNode;
+ father.insertBefore(div, a);
+ a.style.display = "none";
+ eAL.resize["start_top"] = calculeOffsetTop(div);
+ eAL.resize["start_left"] = calculeOffsetLeft(div);
+ };
+ EAL.prototype.end_resize_area = function(e) {
+ var d = document,
+ div, a, width, height;
+ d.onmouseup = "";
+ d.onmousemove = "";
+ div = d.getElementById("edit_area_resize");
+ a = eAs[eAL.resize["id"]]["textarea"];
+ width = Math.max(eAs[eAL.resize["id"]]["settings"]["min_width"], div.offsetWidth - 4);
+ height = Math.max(eAs[eAL.resize["id"]]["settings"]["min_height"], div.offsetHeight - 4);
+ if (eAL.isIE == 6) {
+ width -= 2;
+ height -= 2;
+ }
+ a.style.width = width + "px";
+ a.style.height = height + "px";
+ div.style.display = "none";
+ a.style.display = "inline";
+ a.selectionStart = eAL.resize["selectionStart"];
+ a.selectionEnd = eAL.resize["selectionEnd"];
+ eAL.toggle(eAL.resize["id"]);
+ return false;
+ };
+ EAL.prototype.resize_area = function(e) {
+ var allow, newHeight, newWidth;
+ allow = eAs[eAL.resize["id"]]["settings"]["allow_resize"];
+ if (allow == "both" || allow == "y") {
+ newHeight = Math.max(20, getMouseY(e) - eAL.resize["start_top"]);
+ document.getElementById("edit_area_resize").style.height = newHeight + "px";
+ }
+ if (allow == "both" || allow == "x") {
+ newWidth = Math.max(20, getMouseX(e) - eAL.resize["start_left"]);
+ document.getElementById("edit_area_resize").style.width = newWidth + "px";
+ }
+ return false;
+ };
+ eAL.waiting_loading["resize_area.js"] = "loaded";
+ EAL.prototype.get_regexp = function(text_array) {
+ res = "(\\b)(";
+ for (i = 0; i < text_array.length; i++) {
+ if (i > 0) res += "|";
+ res += this.get_escaped_regexp(text_array[i]);
+ }
+ res += ")(\\b)";
+ reg = new RegExp(res);
+ return res;
+ };
+ EAL.prototype.get_escaped_regexp = function(str) {
+ return str.toString().replace(/(\.|\?|\*|\+|\\|\(|\)|\[|\]|\}|\{|\$|\^|\|)/g, "\\$1");
+ };
+ EAL.prototype.init_syntax_regexp = function() {
+ var lang_style = {};
+ for (var lang in this.load_syntax) {
+ if (!this.syntax[lang]) {
+ this.syntax[lang] = {};
+ this.syntax[lang]["keywords_reg_exp"] = {};
+ this.keywords_reg_exp_nb = 0;
+ if (this.load_syntax[lang]['KEYWORDS']) {
+ param = "g";
+ if (this.load_syntax[lang]['KEYWORD_CASE_SENSITIVE'] === false) param += "i";
+ for (var i in this.load_syntax[lang]['KEYWORDS']) {
+ if (typeof(this.load_syntax[lang]['KEYWORDS'][i]) == "function") continue;
+ this.syntax[lang]["keywords_reg_exp"][i] = new RegExp(this.get_regexp(this.load_syntax[lang]['KEYWORDS'][i]), param);
+ this.keywords_reg_exp_nb++;
+ }
+ }
+ if (this.load_syntax[lang]['OPERATORS']) {
+ var str = "";
+ var nb = 0;
+ for (var i in this.load_syntax[lang]['OPERATORS']) {
+ if (typeof(this.load_syntax[lang]['OPERATORS'][i]) == "function") continue;
+ if (nb > 0) str += "|";
+ str += this.get_escaped_regexp(this.load_syntax[lang]['OPERATORS'][i]);
+ nb++;
+ }
+ if (str.length > 0) this.syntax[lang]["operators_reg_exp"] = new RegExp("(" + str + ")", "g");
+ }
+ if (this.load_syntax[lang]['DELIMITERS']) {
+ var str = "";
+ var nb = 0;
+ for (var i in this.load_syntax[lang]['DELIMITERS']) {
+ if (typeof(this.load_syntax[lang]['DELIMITERS'][i]) == "function") continue;
+ if (nb > 0) str += "|";
+ str += this.get_escaped_regexp(this.load_syntax[lang]['DELIMITERS'][i]);
+ nb++;
+ }
+ if (str.length > 0) this.syntax[lang]["delimiters_reg_exp"] = new RegExp("(" + str + ")", "g");
+ }
+ var syntax_trace = [];
+ this.syntax[lang]["quotes"] = {};
+ var quote_tab = [];
+ if (this.load_syntax[lang]['QUOTEMARKS']) {
+ for (var i in this.load_syntax[lang]['QUOTEMARKS']) {
+ if (typeof(this.load_syntax[lang]['QUOTEMARKS'][i]) == "function") continue;
+ var x = this.get_escaped_regexp(this.load_syntax[lang]['QUOTEMARKS'][i]);
+ this.syntax[lang]["quotes"][x] = x;
+ quote_tab[quote_tab.length] = "(" + x + "(\\\\.|[^" + x + "])*(?:" + x + "|$))";
+ syntax_trace.push(x);
+ }
+ }
+ this.syntax[lang]["comments"] = {};
+ if (this.load_syntax[lang]['COMMENT_SINGLE']) {
+ for (var i in this.load_syntax[lang]['COMMENT_SINGLE']) {
+ if (typeof(this.load_syntax[lang]['COMMENT_SINGLE'][i]) == "function") continue;
+ var x = this.get_escaped_regexp(this.load_syntax[lang]['COMMENT_SINGLE'][i]);
+ quote_tab[quote_tab.length] = "(" + x + "(.|\\r|\\t)*(\\n|$))";
+ syntax_trace.push(x);
+ this.syntax[lang]["comments"][x] = "\n";
+ }
+ }
+ if (this.load_syntax[lang]['COMMENT_MULTI']) {
+ for (var i in this.load_syntax[lang]['COMMENT_MULTI']) {
+ if (typeof(this.load_syntax[lang]['COMMENT_MULTI'][i]) == "function") continue;
+ var start = this.get_escaped_regexp(i);
+ var end = this.get_escaped_regexp(this.load_syntax[lang]['COMMENT_MULTI'][i]);
+ quote_tab[quote_tab.length] = "(" + start + "(.|\\n|\\r)*?(" + end + "|$))";
+ syntax_trace.push(start);
+ syntax_trace.push(end);
+ this.syntax[lang]["comments"][i] = this.load_syntax[lang]['COMMENT_MULTI'][i];
+ }
+ }
+ if (quote_tab.length > 0) this.syntax[lang]["comment_or_quote_reg_exp"] = new RegExp("(" + quote_tab.join("|") + ")", "gi");
+ if (syntax_trace.length > 0) this.syntax[lang]["syntax_trace_regexp"] = new RegExp("((.|\n)*?)(\\\\*(" + syntax_trace.join("|") + "|$))", "gmi");
+ if (this.load_syntax[lang]['SCRIPT_DELIMITERS']) {
+ this.syntax[lang]["script_delimiters"] = {};
+ for (var i in this.load_syntax[lang]['SCRIPT_DELIMITERS']) {
+ if (typeof(this.load_syntax[lang]['SCRIPT_DELIMITERS'][i]) == "function") continue;
+ this.syntax[lang]["script_delimiters"][i] = this.load_syntax[lang]['SCRIPT_DELIMITERS'];
+ }
+ }
+ this.syntax[lang]["custom_regexp"] = {};
+ if (this.load_syntax[lang]['REGEXPS']) {
+ for (var i in this.load_syntax[lang]['REGEXPS']) {
+ if (typeof(this.load_syntax[lang]['REGEXPS'][i]) == "function") continue;
+ var val = this.load_syntax[lang]['REGEXPS'][i];
+ if (!this.syntax[lang]["custom_regexp"][val['execute']]) this.syntax[lang]["custom_regexp"][val['execute']] = {};
+ this.syntax[lang]["custom_regexp"][val['execute']][i] = {
+ 'regexp': new RegExp(val['search'], val['modifiers']),
+ 'class': val['class']
+ };
+ }
+ }
+ if (this.load_syntax[lang]['STYLES']) {
+ lang_style[lang] = {};
+ for (var i in this.load_syntax[lang]['STYLES']) {
+ if (typeof(this.load_syntax[lang]['STYLES'][i]) == "function") continue;
+ if (typeof(this.load_syntax[lang]['STYLES'][i]) != "string") {
+ for (var j in this.load_syntax[lang]['STYLES'][i]) {
+ lang_style[lang][j] = this.load_syntax[lang]['STYLES'][i][j];
+ }
+ } else {
+ lang_style[lang][i] = this.load_syntax[lang]['STYLES'][i];
+ }
+ }
+ }
+ var style = "";
+ for (var i in lang_style[lang]) {
+ if (lang_style[lang][i].length > 0) {
+ style += "." + lang + " ." + i.toLowerCase() + " span{" + lang_style[lang][i] + "}\n";
+ style += "." + lang + " ." + i.toLowerCase() + "{" + lang_style[lang][i] + "}\n";
+ }
+ }
+ this.syntax[lang]["styles"] = style;
+ }
+ }
+ };
+ eAL.waiting_loading["reg_syntax.js"] = "loaded";
+ var editAreaLoader = eAL;
+ var editAreas = eAs;
+ EditAreaLoader = EAL;
+ editAreaLoader.iframe_script = "<script type='text/javascript'> Ã EA(){var t=Á;t.error=Ì;t.inlinePopup=[{popup_id:\"area_search_replace\",icon_id:\"search\"},{popup_id:\"edit_area_help\",icon_id:\"help\"}];t.plugins={};t.line_number=0;È.eAL.set_browser_infos(t);if(t.isIE >=8)t.isIE=7;t.É={};t.last_text_to_highlight=\"\";t.last_hightlighted_text=\"\";t.syntax_list=[];t.allready_used_syntax={};t.check_line_selection_timer=50;t.ÂFocused=Ì;t.highlight_selection_line=null;t.previous=[];t.next=[];t.last_undo=\"\";t.files={};t.filesIdAssoc={};t.curr_file='';t.assocBracket={};t.revertAssocBracket={};t.assocBracket[\"(\"]=\")\";t.assocBracket[\"{\"]=\"}\";t.assocBracket[\"[\"]=\"]\";for(var index in t.assocBracket){t.revertAssocBracket[t.assocBracket[index]]=index;}t.is_editable=Ë;t.lineHeight=16;t.tab_nb_char=8;if(t.isOpera)t.tab_nb_char=6;t.is_tabbing=Ì;t.fullscreen={'isFull':Ì};t.isResizing=Ì;t.id=area_id;t.Å=eAs[t.id][\"Å\"];if((\"\"+t.Å['replace_tab_by_spaces']).match(/^[0-9]+$/)){t.tab_nb_char=t.Å['replace_tab_by_spaces'];t.tabulation=\"\";for(var i=0;i<t.tab_nb_char;i++)t.tabulation+=\" \";}\nelse{t.tabulation=\"\t\";}if(t.Å[\"syntax_selection_allow\"]&&t.Å[\"syntax_selection_allow\"].Æ>0)t.syntax_list=t.Å[\"syntax_selection_allow\"].replace(/ /g,\"\").split(\",\");if(t.Å['syntax'])t.allready_used_syntax[t.Å['syntax']]=Ë;};EA.Ä.init=Ã(){var t=Á,a,s=t.Å;t.Â=_$(\"Â\");t.container=_$(\"container\");t.result=_$(\"result\");t.content_highlight=_$(\"content_highlight\");t.selection_field=_$(\"selection_field\");t.selection_field_text=_$(\"selection_field_text\");t.processing_screen=_$(\"processing\");t.editor_area=_$(\"editor\");t.tab_browsing_area=_$(\"tab_browsing_area\");t.test_font_size=_$(\"test_font_size\");a=t.Â;if(!s['is_editable'])t.set_editable(Ì);t.set_show_line_colors(s['show_line_colors']);if(syntax_selec=_$(\"syntax_selection\")){for(var i=0;i<t.syntax_list.Æ;i++){var syntax=t.syntax_list[i];var option=document.createElement(\"option\");option.Ê=syntax;if(syntax==s['syntax'])option.selected=\"selected\";dispSyntax=È.eAL.syntax_display_name[ syntax ];option.innerHTML=typeof(dispSyntax)=='undefined' ? syntax.substring(0,1).toUpperCase()+syntax.substring(1):dispSyntax;syntax_selec.appendChild(option);}}spans=È.getChildren(_$(\"toolbar_1\"),\"span\",\"\",\"\",\"all\",-1);for(var i=0;i<spans.Æ;i++){id=spans[i].id.replace(/tmp_tool_(.*)/,\"$1\");if(id!=spans[i].id){for(var j in t.plugins){if(typeof(t.plugins[j].get_control_html)==\"Ã\"){html=t.plugins[j].get_control_html(id);if(html!=Ì){html=t.get_translation(html,\"template\");var new_span=document.createElement(\"span\");new_span.innerHTML=html;var father=spans[i].ÈNode;spans[i].ÈNode.replaceChild(new_span,spans[i]);break;}}}}}if(s[\"debug\"]){t.debug=È.document.getElementById(\"edit_area_debug_\"+t.id);}if(_$(\"redo\")!=null)t.switchClassSticky(_$(\"redo\"),'editAreaButtonDisabled',Ë);if(typeof(È.eAL.syntax[s[\"syntax\"]])!=\"undefined\"){for(var i in È.eAL.syntax){if(typeof(È.eAL.syntax[i][\"Çs\"])!=\"undefined\"){t.add_Ç(È.eAL.syntax[i][\"Çs\"]);}}}if(t.isOpera)_$(\"editor\").onkeypress=keyDown;\nelse _$(\"editor\").onkeydown=keyDown;for(var i=0;i<t.inlinePopup.Æ;i++){if(t.isOpera)_$(t.inlinePopup[i][\"popup_id\"]).onkeypress=keyDown;\nelse _$(t.inlinePopup[i][\"popup_id\"]).onkeydown=keyDown;}if(s[\"allow_resize\"]==\"both\"||s[\"allow_resize\"]==\"x\"||s[\"allow_resize\"]==\"y\")t.allow_resize(Ë);È.eAL.toggle(t.id,\"on\");t.change_smooth_selection_mode(eA.smooth_selection);t.execCommand(\"change_highlight\",s[\"start_highlight\"]);t.set_font(eA.Å[\"font_family\"],eA.Å[\"font_size\"]);children=È.getChildren(document.body,\"\",\"selec\",\"none\",\"all\",-1);for(var i=0;i<children.Æ;i++){if(t.isIE)children[i].unselectable=Ë;\nelse children[i].onmousedown=Ã(){return Ì};}a.spellcheck=s[\"gecko_spellcheck\"];if(t.isFirefox >='3'){t.content_highlight.Ç.paddingLeft=\"1px\";t.selection_field.Ç.paddingLeft=\"1px\";t.selection_field_text.Ç.paddingLeft=\"1px\";}if(t.isIE&&t.isIE < 8){a.Ç.marginTop=\"-1px\";}if(t.isSafari){t.editor_area.Ç.position=\"absolute\";a.Ç.marginLeft=\"-3px\";if(t.isSafari < 3.2)a.Ç.marginTop=\"1px\";}È.eAL.add_event(t.result,\"click\",Ã(e){if((e.target||e.srcElement)==eA.result){eA.area_select(eA.Â.Ê.Æ,0);}});if(s['is_multi_files']!=Ì)t.open_file({'id':t.curr_file,'text':''});t.set_word_wrap(s['word_wrap']);setTimeout(\"eA.focus();eA.manage_size();eA.execCommand('EA_load');\",10);t.check_undo();t.check_line_selection(Ë);t.scroll_to_view();for(var i in t.plugins){if(typeof(t.plugins[i].onload)==\"Ã\")t.plugins[i].onload();}if(s['fullscreen']==Ë)t.toggle_full_screen(Ë);È.eAL.add_event(window,\"resize\",eA.update_size);È.eAL.add_event(È.window,\"resize\",eA.update_size);È.eAL.add_event(top.window,\"resize\",eA.update_size);È.eAL.add_event(window,\"unload\",Ã(){if(È.eAL){È.eAL.remove_event(È.window,\"resize\",eA.update_size);È.eAL.remove_event(top.window,\"resize\",eA.update_size);}if(eAs[eA.id]&&eAs[eA.id][\"displayed\"]){eA.execCommand(\"EA_unload\");}});};EA.Ä.update_size=Ã(){var d=document,pd=È.document,height,width,popup,maxLeft,maxTop;if(typeof eAs !='undefined'&&eAs[eA.id]&&eAs[eA.id][\"displayed\"]==Ë){if(eA.fullscreen['isFull']){pd.getElementById(\"frame_\"+eA.id).Ç.width=pd.getElementsByTagName(\"html\")[0].clientWidth+\"px\";pd.getElementById(\"frame_\"+eA.id).Ç.height=pd.getElementsByTagName(\"html\")[0].clientHeight+\"px\";}if(eA.tab_browsing_area.Ç.display=='block'&&(!eA.isIE||eA.isIE >=8)){eA.tab_browsing_area.Ç.height=\"0px\";eA.tab_browsing_area.Ç.height=(eA.result.offsetTop-eA.tab_browsing_area.offsetTop-1)+\"px\";}height=d.body.offsetHeight-eA.get_all_toolbar_height()-4;eA.result.Ç.height=height+\"px\";width=d.body.offsetWidth-2;eA.result.Ç.width=width+\"px\";for(i=0;i < eA.inlinePopup.Æ;i++){popup=_$(eA.inlinePopup[i][\"popup_id\"]);maxLeft=d.body.offsetWidth-popup.offsetWidth;maxTop=d.body.offsetHeight-popup.offsetHeight;if(popup.offsetTop > maxTop)popup.Ç.top=maxTop+\"px\";if(popup.offsetLeft > maxLeft)popup.Ç.left=maxLeft+\"px\";}eA.manage_size(Ë);eA.fixLinesHeight(eA.Â.Ê,0,-1);}};EA.Ä.manage_size=Ã(onlyOneTime){if(!eAs[Á.id])return Ì;if(eAs[Á.id][\"displayed\"]==Ë&&Á.ÂFocused){var area_height,resized=Ì;if(!Á.Å['word_wrap']){var area_width=Á.Â.scrollWidth;area_height=Á.Â.scrollHeight;if(Á.isOpera&&Á.isOpera < 9.6){area_width=10000;}if(Á.Â.previous_scrollWidth!=area_width){Á.container.Ç.width=area_width+\"px\";Á.Â.Ç.width=area_width+\"px\";Á.content_highlight.Ç.width=area_width+\"px\";Á.Â.previous_scrollWidth=area_width;resized=Ë;}}if(Á.Å['word_wrap']){newW=Á.Â.offsetWidth;if(Á.isFirefox||Á.isIE)newW-=2;if(Á.isSafari)newW-=6;Á.content_highlight.Ç.width=Á.selection_field_text.Ç.width=Á.selection_field.Ç.width=Á.test_font_size.Ç.width=newW+\"px\";}if(Á.isOpera||Á.isFirefox||Á.isSafari){area_height=Á.getLinePosTop(Á.É[\"nb_line\"]+1);}\nelse{area_height=Á.Â.scrollHeight;}if(Á.Â.previous_scrollHeight!=area_height){Á.container.Ç.height=(area_height+2)+\"px\";Á.Â.Ç.height=area_height+\"px\";Á.content_highlight.Ç.height=area_height+\"px\";Á.Â.previous_scrollHeight=area_height;resized=Ë;}if(Á.É[\"nb_line\"] >=Á.line_number){var newLines='',destDiv=_$(\"line_number\"),start=Á.line_number,end=Á.É[\"nb_line\"]+100;for(i=start+1;i < end;i++){newLines+='<div id=\"line_'+i+'\">'+i+\"</div>\";Á.line_number++;}destDiv.innerHTML=destDiv.innerHTML+newLines;if(Á.Å['word_wrap']){Á.fixLinesHeight(Á.Â.Ê,start,-1);}}Á.Â.scrollTop=\"0px\";Á.Â.scrollLeft=\"0px\";if(resized==Ë){Á.scroll_to_view();}}if(!onlyOneTime)setTimeout(\"eA.manage_size();\",100);};EA.Ä.execCommand=Ã(cmd,param){for(var i in Á.plugins){if(typeof(Á.plugins[i].execCommand)==\"Ã\"){if(!Á.plugins[i].execCommand(cmd,param))return;}}switch(cmd){case \"save\":if(Á.Å[\"save_callback\"].Æ>0)eval(\"È.\"+Á.Å[\"save_callback\"]+\"('\"+Á.id+\"',eA.Â.Ê);\");break;case \"load\":if(Á.Å[\"load_callback\"].Æ>0)eval(\"È.\"+Á.Å[\"load_callback\"]+\"('\"+Á.id+\"');\");break;case \"onchange\":if(Á.Å[\"change_callback\"].Æ>0)eval(\"È.\"+Á.Å[\"change_callback\"]+\"('\"+Á.id+\"');\");break;case \"EA_load\":if(Á.Å[\"EA_load_callback\"].Æ>0)eval(\"È.\"+Á.Å[\"EA_load_callback\"]+\"('\"+Á.id+\"');\");break;case \"EA_unload\":if(Á.Å[\"EA_unload_callback\"].Æ>0)eval(\"È.\"+Á.Å[\"EA_unload_callback\"]+\"('\"+Á.id+\"');\");break;case \"toggle_on\":if(Á.Å[\"EA_toggle_on_callback\"].Æ>0)eval(\"È.\"+Á.Å[\"EA_toggle_on_callback\"]+\"('\"+Á.id+\"');\");break;case \"toggle_off\":if(Á.Å[\"EA_toggle_off_callback\"].Æ>0)eval(\"È.\"+Á.Å[\"EA_toggle_off_callback\"]+\"('\"+Á.id+\"');\");break;case \"re_sync\":if(!Á.do_highlight)break;case \"file_switch_on\":if(Á.Å[\"EA_file_switch_on_callback\"].Æ>0)eval(\"È.\"+Á.Å[\"EA_file_switch_on_callback\"]+\"(param);\");break;case \"file_switch_off\":if(Á.Å[\"EA_file_switch_off_callback\"].Æ>0)eval(\"È.\"+Á.Å[\"EA_file_switch_off_callback\"]+\"(param);\");break;case \"file_close\":if(Á.Å[\"EA_file_close_callback\"].Æ>0)return eval(\"È.\"+Á.Å[\"EA_file_close_callback\"]+\"(param);\");break;default:if(typeof(eval(\"eA.\"+cmd))==\"Ã\"){if(Á.Å[\"debug\"])eval(\"eA.\"+cmd+\"(param);\");\nelse try{eval(\"eA.\"+cmd+\"(param);\");}catch(e){};}}};EA.Ä.get_translation=Ã(word,mode){if(mode==\"template\")return È.eAL.translate(word,Á.Å[\"language\"],mode);\nelse return È.eAL.get_word_translation(word,Á.Å[\"language\"]);};EA.Ä.add_plugin=Ã(plug_name,plug_obj){for(var i=0;i<Á.Å[\"plugins\"].Æ;i++){if(Á.Å[\"plugins\"][i]==plug_name){Á.plugins[plug_name]=plug_obj;plug_obj.baseURL=È.eAL.baseURL+\"plugins/\"+plug_name+\"/\";if(typeof(plug_obj.init)==\"Ã\")plug_obj.init();}}};EA.Ä.load_css=Ã(url){try{link=document.createElement(\"link\");link.type=\"text/css\";link.rel=\"Çsheet\";link.media=\"all\";link.href=url;head=document.getElementsByTagName(\"head\");head[0].appendChild(link);}catch(e){document.write(\"<link href='\"+url+\"' rel='Çsheet' type='text/css' />\");}};EA.Ä.load_script=Ã(url){try{script=document.createElement(\"script\");script.type=\"text/javascript\";script.src=url;script.charset=\"UTF-8\";head=document.getElementsByTagName(\"head\");head[0].appendChild(script);}catch(e){document.write(\"<script type='text/javascript' src='\"+url+\"' charset=\\\"UTF-8\\\"><\"+\"/script>\");}};EA.Ä.add_lang=Ã(language,Ês){if(!È.eAL.lang[language])È.eAL.lang[language]={};for(var i in Ês)È.eAL.lang[language][i]=Ês[i];};Ã _$(id){return document.getElementById(id);};var eA=new EA();È.eAL.add_event(window,\"load\",init);Ã init(){setTimeout(\"eA.init();\",10);}; EA.Ä.focus=Ã(){Á.Â.focus();Á.ÂFocused=Ë;};EA.Ä.check_line_selection=Ã(timer_checkup){var changes,infos,new_top,new_width,i;var t1=t2=t2_1=t3=tLines=tend=new Date().getTime();if(!eAs[Á.id])return Ì;if(!Á.smooth_selection&&!Á.do_highlight){}\nelse if(Á.ÂFocused&&eAs[Á.id][\"displayed\"]==Ë&&Á.isResizing==Ì){infos=Á.get_selection_infos();changes=Á.checkTextEvolution(typeof(Á.É['full_text'])=='undefined' ? '':Á.É['full_text'],infos['full_text']);t2=new Date().getTime();if(Á.É[\"line_start\"] !=infos[\"line_start\"]||Á.É[\"line_nb\"] !=infos[\"line_nb\"]||infos[\"full_text\"] !=Á.É[\"full_text\"]||Á.reload_highlight||Á.É[\"selectionStart\"] !=infos[\"selectionStart\"]||Á.É[\"selectionEnd\"] !=infos[\"selectionEnd\"]||!timer_checkup){new_top=Á.getLinePosTop(infos[\"line_start\"]);new_width=Math.max(Á.Â.scrollWidth,Á.container.clientWidth-50);Á.selection_field.Ç.top=Á.selection_field_text.Ç.top=new_top+\"px\";if(!Á.Å['word_wrap']){Á.selection_field.Ç.width=Á.selection_field_text.Ç.width=Á.test_font_size.Ç.width=new_width+\"px\";}if(Á.do_highlight==Ë){var curr_text=infos[\"full_text\"].split(\"\\n\");var content=\"\";var start=Math.max(0,infos[\"line_start\"]-1);var end=Math.min(curr_text.Æ,infos[\"line_start\"]+infos[\"line_nb\"]-1);for(i=start;i< end;i++){content+=curr_text[i]+\"\\n\";}selLength=infos['selectionEnd']-infos['selectionStart'];content=content.substr(0,infos[\"curr_pos\"]-1)+\"\\r\\r\"+content.substr(infos[\"curr_pos\"]-1,selLength)+\"\\r\\r\"+content.substr(infos[\"curr_pos\"]-1+selLength);content='<span>'+content.replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\").replace(\"\\r\\r\",'</span><strong>').replace(\"\\r\\r\",'</strong><span>')+'</span>';if(Á.isIE||(Á.isOpera&&Á.isOpera < 9.6)){Á.selection_field.innerHTML=\"<pre>\"+content.replace(/^\\r?\\n/,\"<br>\")+\"</pre>\";}\nelse{Á.selection_field.innerHTML=content;}Á.selection_field_text.innerHTML=Á.selection_field.innerHTML;t2_1=new Date().getTime();if(Á.reload_highlight||(infos[\"full_text\"] !=Á.last_text_to_highlight&&(Á.É[\"line_start\"]!=infos[\"line_start\"]||Á.show_line_colors||Á.Å['word_wrap']||Á.É[\"line_nb\"]!=infos[\"line_nb\"]||Á.É[\"nb_line\"]!=infos[\"nb_line\"]))){Á.maj_highlight(infos);}}}t3=new Date().getTime();if(Á.Å['word_wrap']&&infos[\"full_text\"] !=Á.É[\"full_text\"]){if(changes.newText.split(\"\\n\").Æ==1&&Á.É['nb_line']&&infos['nb_line']==Á.É['nb_line']){Á.fixLinesHeight(infos['full_text'],changes.lineStart,changes.lineStart);}\nelse{Á.fixLinesHeight(infos['full_text'],changes.lineStart,-1);}}tLines=new Date().getTime();if(infos[\"line_start\"] !=Á.É[\"line_start\"]||infos[\"curr_pos\"] !=Á.É[\"curr_pos\"]||infos[\"full_text\"].Æ!=Á.É[\"full_text\"].Æ||Á.reload_highlight||!timer_checkup){var selec_char=infos[\"curr_line\"].charAt(infos[\"curr_pos\"]-1);var no_real_move=Ë;if(infos[\"line_nb\"]==1&&(Á.assocBracket[selec_char]||Á.revertAssocBracket[selec_char])){no_real_move=Ì;if(Á.findEndBracket(infos,selec_char)===Ë){_$(\"end_bracket\").Ç.visibility=\"visible\";_$(\"cursor_pos\").Ç.visibility=\"visible\";_$(\"cursor_pos\").innerHTML=selec_char;_$(\"end_bracket\").innerHTML=(Á.assocBracket[selec_char]||Á.revertAssocBracket[selec_char]);}\nelse{_$(\"end_bracket\").Ç.visibility=\"hidden\";_$(\"cursor_pos\").Ç.visibility=\"hidden\";}}\nelse{_$(\"cursor_pos\").Ç.visibility=\"hidden\";_$(\"end_bracket\").Ç.visibility=\"hidden\";}Á.displayToCursorPosition(\"cursor_pos\",infos[\"line_start\"],infos[\"curr_pos\"]-1,infos[\"curr_line\"],no_real_move);if(infos[\"line_nb\"]==1&&infos[\"line_start\"]!=Á.É[\"line_start\"])Á.scroll_to_view();}Á.É=infos;}tend=new Date().getTime();if(timer_checkup){setTimeout(\"eA.check_line_selection(Ë)\",Á.check_line_selection_timer);}};EA.Ä.get_selection_infos=Ã(){var sel={},start,end,len,str;Á.getIESelection();start=Á.Â.selectionStart;end=Á.Â.selectionEnd;if(Á.É[\"selectionStart\"]==start&&Á.É[\"selectionEnd\"]==end&&Á.É[\"full_text\"]==Á.Â.Ê){return Á.É;}if(Á.tabulation!=\"\t\"&&Á.Â.Ê.indexOf(\"\t\")!=-1){len=Á.Â.Ê.Æ;Á.Â.Ê=Á.replace_tab(Á.Â.Ê);start=end=start+(Á.Â.Ê.Æ-len);Á.area_select(start,0);}sel[\"selectionStart\"]=start;sel[\"selectionEnd\"]=end;sel[\"full_text\"]=Á.Â.Ê;sel[\"line_start\"]=1;sel[\"line_nb\"]=1;sel[\"curr_pos\"]=0;sel[\"curr_line\"]=\"\";sel[\"indexOfCursor\"]=0;sel[\"selec_direction\"]=Á.É[\"selec_direction\"];var splitTab=sel[\"full_text\"].split(\"\\n\");var nbLine=Math.max(0,splitTab.Æ);var nbChar=Math.max(0,sel[\"full_text\"].Æ-(nbLine-1));if(sel[\"full_text\"].indexOf(\"\\r\")!=-1)nbChar=nbChar-(nbLine-1);sel[\"nb_line\"]=nbLine;sel[\"nb_char\"]=nbChar;if(start>0){str=sel[\"full_text\"].substr(0,start);sel[\"curr_pos\"]=start-str.lastIndexOf(\"\\n\");sel[\"line_start\"]=Math.max(1,str.split(\"\\n\").Æ);}\nelse{sel[\"curr_pos\"]=1;}if(end>start){sel[\"line_nb\"]=sel[\"full_text\"].substring(start,end).split(\"\\n\").Æ;}sel[\"indexOfCursor\"]=start;sel[\"curr_line\"]=splitTab[Math.max(0,sel[\"line_start\"]-1)];if(sel[\"selectionStart\"]==Á.É[\"selectionStart\"]){if(sel[\"selectionEnd\"]>Á.É[\"selectionEnd\"])sel[\"selec_direction\"]=\"down\";\nelse if(sel[\"selectionEnd\"]==Á.É[\"selectionStart\"])sel[\"selec_direction\"]=Á.É[\"selec_direction\"];}\nelse if(sel[\"selectionStart\"]==Á.É[\"selectionEnd\"]&&sel[\"selectionEnd\"]>Á.É[\"selectionEnd\"]){sel[\"selec_direction\"]=\"down\";}\nelse{sel[\"selec_direction\"]=\"up\";}_$(\"nbLine\").innerHTML=nbLine;_$(\"nbChar\").innerHTML=nbChar;_$(\"linePos\").innerHTML=sel[\"line_start\"];_$(\"currPos\").innerHTML=sel[\"curr_pos\"];return sel;};EA.Ä.getIESelection=Ã(){var selectionStart,selectionEnd,range,stored_range;if(!Á.isIE)return Ì;if(Á.Å['word_wrap'])Á.Â.wrap='off';try{range=document.selection.createRange();stored_range=range.duplicate();stored_range.moveToElementText(Á.Â);stored_range.setEndPoint('EndToEnd',range);if(stored_range.ÈElement()!=Á.Â)throw \"invalid focus\";var scrollTop=Á.result.scrollTop+document.body.scrollTop;var relative_top=range.offsetTop-È.calculeOffsetTop(Á.Â)+scrollTop;var line_start=Math.round((relative_top / Á.lineHeight)+1);var line_nb=Math.round(range.boundingHeight / Á.lineHeight);selectionStart=stored_range.text.Æ-range.text.Æ;selectionStart+=(line_start-Á.Â.Ê.substr(0,selectionStart).split(\"\\n\").Æ)*2;selectionStart-=(line_start-Á.Â.Ê.substr(0,selectionStart).split(\"\\n\").Æ)* 2;selectionEnd=selectionStart+range.text.Æ;selectionEnd+=(line_start+line_nb-1-Á.Â.Ê.substr(0,selectionEnd).split(\"\\n\").Æ)*2;Á.Â.selectionStart=selectionStart;Á.Â.selectionEnd=selectionEnd;}catch(e){}if(Á.Å['word_wrap'])Á.Â.wrap='soft';};EA.Ä.setIESelection=Ã(){var a=Á.Â,nbLineStart,nbLineEnd,range;if(!Á.isIE)return Ì;nbLineStart=a.Ê.substr(0,a.selectionStart).split(\"\\n\").Æ-1;nbLineEnd=a.Ê.substr(0,a.selectionEnd).split(\"\\n\").Æ-1;range=document.selection.createRange();range.moveToElementText(a);range.setEndPoint('EndToStart',range);range.moveStart('character',a.selectionStart-nbLineStart);range.moveEnd('character',a.selectionEnd-nbLineEnd-(a.selectionStart-nbLineStart));range.select();};EA.Ä.checkTextEvolution=Ã(lastText,newText){var ch={},baseStep=200,cpt=0,end,step,tStart=new Date().getTime();end=Math.min(newText.Æ,lastText.Æ);step=baseStep;while(cpt<end&&step>=1){if(lastText.substr(cpt,step)==newText.substr(cpt,step)){cpt+=step;}\nelse{step=Math.floor(step/2);}}ch.posStart=cpt;ch.lineStart=newText.substr(0,ch.posStart).split(\"\\n\").Æ-1;cpt_last=lastText.Æ;cpt=newText.Æ;step=baseStep;while(cpt>=0&&cpt_last>=0&&step>=1){if(lastText.substr(cpt_last-step,step)==newText.substr(cpt-step,step)){cpt-=step;cpt_last-=step;}\nelse{step=Math.floor(step/2);}}ch.posNewEnd=cpt;ch.posLastEnd=cpt_last;if(ch.posNewEnd<=ch.posStart){if(lastText.Æ < newText.Æ){ch.posNewEnd=ch.posStart+newText.Æ-lastText.Æ;ch.posLastEnd=ch.posStart;}\nelse{ch.posLastEnd=ch.posStart+lastText.Æ-newText.Æ;ch.posNewEnd=ch.posStart;}}ch.newText=newText.substring(ch.posStart,ch.posNewEnd);ch.lastText=lastText.substring(ch.posStart,ch.posLastEnd);ch.lineNewEnd=newText.substr(0,ch.posNewEnd).split(\"\\n\").Æ-1;ch.lineLastEnd=lastText.substr(0,ch.posLastEnd).split(\"\\n\").Æ-1;ch.newTextLine=newText.split(\"\\n\").slice(ch.lineStart,ch.lineNewEnd+1).join(\"\\n\");ch.lastTextLine=lastText.split(\"\\n\").slice(ch.lineStart,ch.lineLastEnd+1).join(\"\\n\");return ch;};EA.Ä.tab_selection=Ã(){if(Á.is_tabbing)return;Á.is_tabbing=Ë;Á.getIESelection();var start=Á.Â.selectionStart;var end=Á.Â.selectionEnd;var insText=Á.Â.Ê.substring(start,end);var pos_start=start;var pos_end=end;if(insText.Æ==0){Á.Â.Ê=Á.Â.Ê.substr(0,start)+Á.tabulation+Á.Â.Ê.substr(end);pos_start=start+Á.tabulation.Æ;pos_end=pos_start;}\nelse{start=Math.max(0,Á.Â.Ê.substr(0,start).lastIndexOf(\"\\n\")+1);endText=Á.Â.Ê.substr(end);startText=Á.Â.Ê.substr(0,start);tmp=Á.Â.Ê.substring(start,end).split(\"\\n\");insText=Á.tabulation+tmp.join(\"\\n\"+Á.tabulation);Á.Â.Ê=startText+insText+endText;pos_start=start;pos_end=Á.Â.Ê.indexOf(\"\\n\",startText.Æ+insText.Æ);if(pos_end==-1)pos_end=Á.Â.Ê.Æ;}Á.Â.selectionStart=pos_start;Á.Â.selectionEnd=pos_end;if(Á.isIE){Á.setIESelection();setTimeout(\"eA.is_tabbing=Ì;\",100);}\nelse{Á.is_tabbing=Ì;}};EA.Ä.invert_tab_selection=Ã(){var t=Á,a=Á.Â;if(t.is_tabbing)return;t.is_tabbing=Ë;t.getIESelection();var start=a.selectionStart;var end=a.selectionEnd;var insText=a.Ê.substring(start,end);var pos_start=start;var pos_end=end;if(insText.Æ==0){if(a.Ê.substring(start-t.tabulation.Æ,start)==t.tabulation){a.Ê=a.Ê.substr(0,start-t.tabulation.Æ)+a.Ê.substr(end);pos_start=Math.max(0,start-t.tabulation.Æ);pos_end=pos_start;}}\nelse{start=a.Ê.substr(0,start).lastIndexOf(\"\\n\")+1;endText=a.Ê.substr(end);startText=a.Ê.substr(0,start);tmp=a.Ê.substring(start,end).split(\"\\n\");insText=\"\";for(i=0;i<tmp.Æ;i++){for(j=0;j<t.tab_nb_char;j++){if(tmp[i].charAt(0)==\"\t\"){tmp[i]=tmp[i].substr(1);j=t.tab_nb_char;}\nelse if(tmp[i].charAt(0)==\" \")tmp[i]=tmp[i].substr(1);}insText+=tmp[i];if(i<tmp.Æ-1)insText+=\"\\n\";}a.Ê=startText+insText+endText;pos_start=start;pos_end=a.Ê.indexOf(\"\\n\",startText.Æ+insText.Æ);if(pos_end==-1)pos_end=a.Ê.Æ;}a.selectionStart=pos_start;a.selectionEnd=pos_end;if(t.isIE){t.setIESelection();setTimeout(\"eA.is_tabbing=Ì;\",100);}\nelse t.is_tabbing=Ì;};EA.Ä.press_enter=Ã(){if(!Á.smooth_selection)return Ì;Á.getIESelection();var scrollTop=Á.result.scrollTop;var scrollLeft=Á.result.scrollLeft;var start=Á.Â.selectionStart;var end=Á.Â.selectionEnd;var start_last_line=Math.max(0,Á.Â.Ê.substring(0,start).lastIndexOf(\"\\n\")+1);var begin_line=Á.Â.Ê.substring(start_last_line,start).replace(/^([ \t]*).*/gm,\"$1\");var lineStart=Á.Â.Ê.substring(0,start).split(\"\\n\").Æ;if(begin_line==\"\\n\"||begin_line==\"\\r\"||begin_line.Æ==0){return Ì;}if(Á.isIE||(Á.isOpera&&Á.isOpera < 9.6)){begin_line=\"\\r\\n\"+begin_line;}\nelse{begin_line=\"\\n\"+begin_line;}Á.Â.Ê=Á.Â.Ê.substring(0,start)+begin_line+Á.Â.Ê.substring(end);Á.area_select(start+begin_line.Æ,0);if(Á.isIE){Á.result.scrollTop=scrollTop;Á.result.scrollLeft=scrollLeft;}return Ë;};EA.Ä.findEndBracket=Ã(infos,bracket){var start=infos[\"indexOfCursor\"];var normal_order=Ë;if(Á.assocBracket[bracket])endBracket=Á.assocBracket[bracket];\nelse if(Á.revertAssocBracket[bracket]){endBracket=Á.revertAssocBracket[bracket];normal_order=Ì;}var end=-1;var nbBracketOpen=0;for(var i=start;i<infos[\"full_text\"].Æ&&i>=0;){if(infos[\"full_text\"].charAt(i)==endBracket){nbBracketOpen--;if(nbBracketOpen<=0){end=i;break;}}\nelse if(infos[\"full_text\"].charAt(i)==bracket)nbBracketOpen++;if(normal_order)i++;\nelse i--;}if(end==-1)return Ì;var endLastLine=infos[\"full_text\"].substr(0,end).lastIndexOf(\"\\n\");if(endLastLine==-1)line=1;\nelse line=infos[\"full_text\"].substr(0,endLastLine).split(\"\\n\").Æ+1;var curPos=end-endLastLine-1;var endLineLength=infos[\"full_text\"].substring(end).split(\"\\n\")[0].Æ;Á.displayToCursorPosition(\"end_bracket\",line,curPos,infos[\"full_text\"].substring(endLastLine+1,end+endLineLength));return Ë;};EA.Ä.displayToCursorPosition=Ã(id,start_line,cur_pos,lineContent,no_real_move){var elem,dest,content,posLeft=0,posTop,fixPadding,topOffset,endElem;elem=Á.test_font_size;dest=_$(id);content=\"<span id='test_font_size_inner'>\"+lineContent.substr(0,cur_pos).replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\")+\"</span><span id='endTestFont'>\"+lineContent.substr(cur_pos).replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\")+\"</span>\";if(Á.isIE||(Á.isOpera&&Á.isOpera < 9.6)){elem.innerHTML=\"<pre>\"+content.replace(/^\\r?\\n/,\"<br>\")+\"</pre>\";}\nelse{elem.innerHTML=content;}endElem=_$('endTestFont');topOffset=endElem.offsetTop;fixPadding=parseInt(Á.content_highlight.Ç.paddingLeft.replace(\"px\",\"\"));posLeft=45+endElem.offsetLeft+(!isNaN(fixPadding)&&topOffset > 0 ? fixPadding:0);posTop=Á.getLinePosTop(start_line)+topOffset;if(Á.isIE&&cur_pos > 0&&endElem.offsetLeft==0){posTop+=Á.lineHeight;}if(no_real_move!=Ë){dest.Ç.top=posTop+\"px\";dest.Ç.left=posLeft+\"px\";}dest.cursor_top=posTop;dest.cursor_left=posLeft;};EA.Ä.getLinePosTop=Ã(start_line){var elem=_$('line_'+start_line),posTop=0;if(elem)posTop=elem.offsetTop;\nelse posTop=Á.lineHeight *(start_line-1);return posTop;};EA.Ä.getTextHeight=Ã(text){var t=Á,elem,height;elem=t.test_font_size;content=text.replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\");if(t.isIE||(Á.isOpera&&Á.isOpera < 9.6)){elem.innerHTML=\"<pre>\"+content.replace(/^\\r?\\n/,\"<br>\")+\"</pre>\";}\nelse{elem.innerHTML=content;}height=elem.offsetHeight;height=Math.max(1,Math.floor(elem.offsetHeight / Á.lineHeight))* Á.lineHeight;return height;};EA.Ä.fixLinesHeight=Ã(textValue,lineStart,lineEnd){var aText=textValue.split(\"\\n\");if(lineEnd==-1)lineEnd=aText.Æ-1;for(var i=Math.max(0,lineStart);i <=lineEnd;i++){if(elem=_$('line_'+(i+1))){elem.Ç.height=typeof(aText[i])!=\"undefined\" ? Á.getTextHeight(aText[i])+\"px\":Á.lineHeight;}}};EA.Ä.area_select=Ã(start,Æ){Á.Â.focus();start=Math.max(0,Math.min(Á.Â.Ê.Æ,start));end=Math.max(start,Math.min(Á.Â.Ê.Æ,start+Æ));if(Á.isIE){Á.Â.selectionStart=start;Á.Â.selectionEnd=end;Á.setIESelection();}\nelse{if(Á.isOpera&&Á.isOpera < 9.6){Á.Â.setSelectionRange(0,0);}Á.Â.setSelectionRange(start,end);}Á.check_line_selection();};EA.Ä.area_get_selection=Ã(){var text=\"\";if(document.selection){var range=document.selection.createRange();text=range.text;}\nelse{text=Á.Â.Ê.substring(Á.Â.selectionStart,Á.Â.selectionEnd);}return text;}; EA.Ä.replace_tab=Ã(text){return text.replace(/((\\n?)([^\t\\n]*)\t)/gi,eA.smartTab);};EA.Ä.smartTab=Ã(){val=\" \";return EA.Ä.smartTab.arguments[2]+EA.Ä.smartTab.arguments[3]+val.substr(0,eA.tab_nb_char-(EA.Ä.smartTab.arguments[3].Æ)%eA.tab_nb_char);};EA.Ä.show_waiting_screen=Ã(){width=Á.editor_area.offsetWidth;height=Á.editor_area.offsetHeight;if(!(Á.isIE&&Á.isIE<6)){width-=2;height-=2;}Á.processing_screen.Ç.display=\"block\";Á.processing_screen.Ç.width=width+\"px\";Á.processing_screen.Ç.height=height+\"px\";Á.waiting_screen_displayed=Ë;};EA.Ä.hide_waiting_screen=Ã(){Á.processing_screen.Ç.display=\"none\";Á.waiting_screen_displayed=Ì;};EA.Ä.add_Ç=Ã(Çs){if(Çs.Æ>0){newcss=document.createElement(\"Ç\");newcss.type=\"text/css\";newcss.media=\"all\";if(newcss.ÇSheet){newcss.ÇSheet.cssText=Çs;}\nelse{newcss.appendChild(document.createTextNode(Çs));}document.getElementsByTagName(\"head\")[0].appendChild(newcss);}};EA.Ä.set_font=Ã(family,size){var t=Á,a=Á.Â,s=Á.Å,elem_font,i,elem;var elems=[\"Â\",\"content_highlight\",\"cursor_pos\",\"end_bracket\",\"selection_field\",\"selection_field_text\",\"line_number\"];if(family&&family!=\"\")s[\"font_family\"]=family;if(size&&size>0)s[\"font_size\"]=size;if(t.isOpera&&t.isOpera < 9.6)s['font_family']=\"monospace\";if(elem_font=_$(\"area_font_size\")){for(i=0;i < elem_font.Æ;i++){if(elem_font.options[i].Ê&&elem_font.options[i].Ê==s[\"font_size\"])elem_font.options[i].selected=Ë;}}if(t.isFirefox){var nbTry=3;do{var div1=document.createElement('div'),text1=document.createElement('Â');var Çs={width:'40px',overflow:'scroll',zIndex:50,visibility:'hidden',fontFamily:s[\"font_family\"],fontSize:s[\"font_size\"]+\"pt\",lineHeight:t.lineHeight+\"px\",padding:'0',margin:'0',border:'none',whiteSpace:'nowrap'};var diff,changed=Ì;for(i in Çs){div1.Ç[ i ]=Çs[i];text1.Ç[ i ]=Çs[i];}text1.wrap='off';text1.setAttribute('wrap','off');t.container.appendChild(div1);t.container.appendChild(text1);div1.innerHTML=text1.Ê='azertyuiopqsdfghjklm';div1.innerHTML=text1.Ê=text1.Ê+'wxcvbn^p*ù$!:;,,';diff=text1.scrollWidth-div1.scrollWidth;if(Math.abs(diff)>=2){s[\"font_size\"]++;changed=Ë;}t.container.removeChild(div1);t.container.removeChild(text1);nbTry--;}while(changed&&nbTry > 0);}elem=t.test_font_size;elem.Ç.fontFamily=\"\"+s[\"font_family\"];elem.Ç.fontSize=s[\"font_size\"]+\"pt\";elem.innerHTML=\"0\";t.lineHeight=elem.offsetHeight;for(i=0;i<elems.Æ;i++){elem=_$(elems[i]);elem.Ç.fontFamily=s[\"font_family\"];elem.Ç.fontSize=s[\"font_size\"]+\"pt\";elem.Ç.lineHeight=t.lineHeight+\"px\";}t.add_Ç(\"pre{font-family:\"+s[\"font_family\"]+\"}\");if((t.isOpera&&t.isOpera < 9.6)||t.isIE >=8){var parNod=a.ÈNode,nxtSib=a.nextSibling,start=a.selectionStart,end=a.selectionEnd;parNod.removeChild(a);parNod.insertBefore(a,nxtSib);t.area_select(start,end-start);}Á.focus();Á.update_size();Á.check_line_selection();};EA.Ä.change_font_size=Ã(){var size=_$(\"area_font_size\").Ê;if(size>0)Á.set_font(\"\",size);};EA.Ä.open_inline_popup=Ã(popup_id){Á.close_all_inline_popup();var popup=_$(popup_id);var editor=_$(\"editor\");for(var i=0;i<Á.inlinePopup.Æ;i++){if(Á.inlinePopup[i][\"popup_id\"]==popup_id){var icon=_$(Á.inlinePopup[i][\"icon_id\"]);if(icon){Á.switchClassSticky(icon,'editAreaButtonSelected',Ë);break;}}}popup.Ç.height=\"auto\";popup.Ç.overflow=\"visible\";if(document.body.offsetHeight< popup.offsetHeight){popup.Ç.height=(document.body.offsetHeight-10)+\"px\";popup.Ç.overflow=\"auto\";}if(!popup.positionned){var new_left=editor.offsetWidth /2-popup.offsetWidth /2;var new_top=editor.offsetHeight /2-popup.offsetHeight /2;popup.Ç.left=new_left+\"px\";popup.Ç.top=new_top+\"px\";popup.positionned=Ë;}popup.Ç.visibility=\"visible\";};EA.Ä.close_inline_popup=Ã(popup_id){var popup=_$(popup_id);for(var i=0;i<Á.inlinePopup.Æ;i++){if(Á.inlinePopup[i][\"popup_id\"]==popup_id){var icon=_$(Á.inlinePopup[i][\"icon_id\"]);if(icon){Á.switchClassSticky(icon,'editAreaButtonNormal',Ì);break;}}}popup.Ç.visibility=\"hidden\";};EA.Ä.close_all_inline_popup=Ã(e){for(var i=0;i<Á.inlinePopup.Æ;i++){Á.close_inline_popup(Á.inlinePopup[i][\"popup_id\"]);}Á.Â.focus();};EA.Ä.show_help=Ã(){Á.open_inline_popup(\"edit_area_help\");};EA.Ä.new_document=Ã(){Á.Â.Ê=\"\";Á.area_select(0,0);};EA.Ä.get_all_toolbar_height=Ã(){var area=_$(\"editor\");var results=È.getChildren(area,\"div\",\"class\",\"area_toolbar\",\"all\",\"0\");var height=0;for(var i=0;i<results.Æ;i++){height+=results[i].offsetHeight;}return height;};EA.Ä.go_to_line=Ã(line){if(!line){var icon=_$(\"go_to_line\");if(icon !=null){Á.restoreClass(icon);Á.switchClassSticky(icon,'editAreaButtonSelected',Ë);}line=prompt(Á.get_translation(\"go_to_line_prompt\"));if(icon !=null)Á.switchClassSticky(icon,'editAreaButtonNormal',Ì);}if(line&&line!=null&&line.search(/^[0-9]+$/)!=-1){var start=0;var lines=Á.Â.Ê.split(\"\\n\");if(line > lines.Æ)start=Á.Â.Ê.Æ;\nelse{for(var i=0;i<Math.min(line-1,lines.Æ);i++)start+=lines[i].Æ+1;}Á.area_select(start,0);}};EA.Ä.change_smooth_selection_mode=Ã(setTo){if(Á.do_highlight)return;if(setTo !=null){if(setTo===Ì)Á.smooth_selection=Ë;\nelse Á.smooth_selection=Ì;}var icon=_$(\"change_smooth_selection\");Á.Â.focus();if(Á.smooth_selection===Ë){Á.switchClassSticky(icon,'editAreaButtonNormal',Ì);Á.smooth_selection=Ì;Á.selection_field.Ç.display=\"none\";_$(\"cursor_pos\").Ç.display=\"none\";_$(\"end_bracket\").Ç.display=\"none\";}\nelse{Á.switchClassSticky(icon,'editAreaButtonSelected',Ì);Á.smooth_selection=Ë;Á.selection_field.Ç.display=\"block\";_$(\"cursor_pos\").Ç.display=\"block\";_$(\"end_bracket\").Ç.display=\"block\";}};EA.Ä.scroll_to_view=Ã(show){var zone,lineElem;if(!Á.smooth_selection)return;zone=_$(\"result\");var cursor_pos_top=_$(\"cursor_pos\").cursor_top;if(show==\"bottom\"){cursor_pos_top+=Á.getLinePosTop(Á.É['line_start']+Á.É['line_nb']-1);}var max_height_visible=zone.clientHeight+zone.scrollTop;var miss_top=cursor_pos_top+Á.lineHeight-max_height_visible;if(miss_top>0){zone.scrollTop=zone.scrollTop+miss_top;}\nelse if(zone.scrollTop > cursor_pos_top){zone.scrollTop=cursor_pos_top;}var cursor_pos_left=_$(\"cursor_pos\").cursor_left;var max_width_visible=zone.clientWidth+zone.scrollLeft;var miss_left=cursor_pos_left+10-max_width_visible;if(miss_left>0){zone.scrollLeft=zone.scrollLeft+miss_left+50;}\nelse if(zone.scrollLeft > cursor_pos_left){zone.scrollLeft=cursor_pos_left;}\nelse if(zone.scrollLeft==45){zone.scrollLeft=0;}};EA.Ä.check_undo=Ã(only_once){if(!eAs[Á.id])return Ì;if(Á.ÂFocused&&eAs[Á.id][\"displayed\"]==Ë){var text=Á.Â.Ê;if(Á.previous.Æ<=1)Á.switchClassSticky(_$(\"undo\"),'editAreaButtonDisabled',Ë);if(!Á.previous[Á.previous.Æ-1]||Á.previous[Á.previous.Æ-1][\"text\"] !=text){Á.previous.push({\"text\":text,\"selStart\":Á.Â.selectionStart,\"selEnd\":Á.Â.selectionEnd});if(Á.previous.Æ > Á.Å[\"max_undo\"]+1)Á.previous.shift();}if(Á.previous.Æ >=2)Á.switchClassSticky(_$(\"undo\"),'editAreaButtonNormal',Ì);}if(!only_once)setTimeout(\"eA.check_undo()\",3000);};EA.Ä.undo=Ã(){if(Á.previous.Æ > 0){Á.getIESelection();Á.next.push({\"text\":Á.Â.Ê,\"selStart\":Á.Â.selectionStart,\"selEnd\":Á.Â.selectionEnd});var prev=Á.previous.pop();if(prev[\"text\"]==Á.Â.Ê&&Á.previous.Æ > 0)prev=Á.previous.pop();Á.Â.Ê=prev[\"text\"];Á.last_undo=prev[\"text\"];Á.area_select(prev[\"selStart\"],prev[\"selEnd\"]-prev[\"selStart\"]);Á.switchClassSticky(_$(\"redo\"),'editAreaButtonNormal',Ì);Á.resync_highlight(Ë);Á.check_file_changes();}};EA.Ä.redo=Ã(){if(Á.next.Æ > 0){var next=Á.next.pop();Á.previous.push(next);Á.Â.Ê=next[\"text\"];Á.last_undo=next[\"text\"];Á.area_select(next[\"selStart\"],next[\"selEnd\"]-next[\"selStart\"]);Á.switchClassSticky(_$(\"undo\"),'editAreaButtonNormal',Ì);Á.resync_highlight(Ë);Á.check_file_changes();}if(Á.next.Æ==0)Á.switchClassSticky(_$(\"redo\"),'editAreaButtonDisabled',Ë);};EA.Ä.check_redo=Ã(){if(eA.next.Æ==0||eA.Â.Ê!=eA.last_undo){eA.next=[];eA.switchClassSticky(_$(\"redo\"),'editAreaButtonDisabled',Ë);}\nelse{Á.switchClassSticky(_$(\"redo\"),'editAreaButtonNormal',Ì);}};EA.Ä.switchClass=Ã(element,class_name,lock_state){var lockChanged=Ì;if(typeof(lock_state)!=\"undefined\"&&element !=null){element.classLock=lock_state;lockChanged=Ë;}if(element !=null&&(lockChanged||!element.classLock)){element.oldClassName=element.className;element.className=class_name;}};EA.Ä.restoreAndSwitchClass=Ã(element,class_name){if(element !=null&&!element.classLock){Á.restoreClass(element);Á.switchClass(element,class_name);}};EA.Ä.restoreClass=Ã(element){if(element !=null&&element.oldClassName&&!element.classLock){element.className=element.oldClassName;element.oldClassName=null;}};EA.Ä.setClassLock=Ã(element,lock_state){if(element !=null)element.classLock=lock_state;};EA.Ä.switchClassSticky=Ã(element,class_name,lock_state){var lockChanged=Ì;if(typeof(lock_state)!=\"undefined\"&&element !=null){element.classLock=lock_state;lockChanged=Ë;}if(element !=null&&(lockChanged||!element.classLock)){element.className=class_name;element.oldClassName=class_name;}};EA.Ä.scroll_page=Ã(params){var dir=params[\"dir\"],shift_pressed=params[\"shift\"];var lines=Á.Â.Ê.split(\"\\n\");var new_pos=0,Æ=0,char_left=0,line_nb=0,curLine=0;var toScrollAmount=_$(\"result\").clientHeight-30;var nbLineToScroll=0,diff=0;if(dir==\"up\"){nbLineToScroll=Math.ceil(toScrollAmount / Á.lineHeight);for(i=Á.É[\"line_start\"];i-diff > Á.É[\"line_start\"]-nbLineToScroll;i--){if(elem=_$('line_'+i)){diff+=Math.floor((elem.offsetHeight-1)/ Á.lineHeight);}}nbLineToScroll-=diff;if(Á.É[\"selec_direction\"]==\"up\"){for(line_nb=0;line_nb< Math.min(Á.É[\"line_start\"]-nbLineToScroll,lines.Æ);line_nb++){new_pos+=lines[line_nb].Æ+1;}char_left=Math.min(lines[Math.min(lines.Æ-1,line_nb)].Æ,Á.É[\"curr_pos\"]-1);if(shift_pressed)Æ=Á.É[\"selectionEnd\"]-new_pos-char_left;Á.area_select(new_pos+char_left,Æ);view=\"top\";}\nelse{view=\"bottom\";for(line_nb=0;line_nb< Math.min(Á.É[\"line_start\"]+Á.É[\"line_nb\"]-1-nbLineToScroll,lines.Æ);line_nb++){new_pos+=lines[line_nb].Æ+1;}char_left=Math.min(lines[Math.min(lines.Æ-1,line_nb)].Æ,Á.É[\"curr_pos\"]-1);if(shift_pressed){start=Math.min(Á.É[\"selectionStart\"],new_pos+char_left);Æ=Math.max(new_pos+char_left,Á.É[\"selectionStart\"])-start;if(new_pos+char_left < Á.É[\"selectionStart\"])view=\"top\";}\nelse start=new_pos+char_left;Á.area_select(start,Æ);}}\nelse{var nbLineToScroll=Math.floor(toScrollAmount / Á.lineHeight);for(i=Á.É[\"line_start\"];i+diff < Á.É[\"line_start\"]+nbLineToScroll;i++){if(elem=_$('line_'+i)){diff+=Math.floor((elem.offsetHeight-1)/ Á.lineHeight);}}nbLineToScroll-=diff;if(Á.É[\"selec_direction\"]==\"down\"){view=\"bottom\";for(line_nb=0;line_nb< Math.min(Á.É[\"line_start\"]+Á.É[\"line_nb\"]-2+nbLineToScroll,lines.Æ);line_nb++){if(line_nb==Á.É[\"line_start\"]-1)char_left=Á.É[\"selectionStart\"]-new_pos;new_pos+=lines[line_nb].Æ+1;}if(shift_pressed){Æ=Math.abs(Á.É[\"selectionStart\"]-new_pos);Æ+=Math.min(lines[Math.min(lines.Æ-1,line_nb)].Æ,Á.É[\"curr_pos\"]);Á.area_select(Math.min(Á.É[\"selectionStart\"],new_pos),Æ);}\nelse{Á.area_select(new_pos+char_left,0);}}\nelse{view=\"top\";for(line_nb=0;line_nb< Math.min(Á.É[\"line_start\"]+nbLineToScroll-1,lines.Æ,lines.Æ);line_nb++){if(line_nb==Á.É[\"line_start\"]-1)char_left=Á.É[\"selectionStart\"]-new_pos;new_pos+=lines[line_nb].Æ+1;}if(shift_pressed){Æ=Math.abs(Á.É[\"selectionEnd\"]-new_pos-char_left);Æ+=Math.min(lines[Math.min(lines.Æ-1,line_nb)].Æ,Á.É[\"curr_pos\"])-char_left-1;Á.area_select(Math.min(Á.É[\"selectionEnd\"],new_pos+char_left),Æ);if(new_pos+char_left > Á.É[\"selectionEnd\"])view=\"bottom\";}\nelse{Á.area_select(new_pos+char_left,0);}}}Á.check_line_selection();Á.scroll_to_view(view);};EA.Ä.start_resize=Ã(e){È.eAL.resize[\"id\"]=eA.id;È.eAL.resize[\"start_x\"]=(e)? e.pageX:event.x+document.body.scrollLeft;È.eAL.resize[\"start_y\"]=(e)? e.pageY:event.y+document.body.scrollTop;if(eA.isIE){eA.Â.focus();eA.getIESelection();}È.eAL.resize[\"selectionStart\"]=eA.Â.selectionStart;È.eAL.resize[\"selectionEnd\"]=eA.Â.selectionEnd;È.eAL.start_resize_area();};EA.Ä.toggle_full_screen=Ã(to){var t=Á,p=È,a=t.Â,html,frame,selStart,selEnd,old,icon;if(typeof(to)==\"undefined\")to=!t.fullscreen['isFull'];old=t.fullscreen['isFull'];t.fullscreen['isFull']=to;icon=_$(\"fullscreen\");selStart=t.Â.selectionStart;selEnd=t.Â.selectionEnd;html=p.document.getElementsByTagName(\"html\")[0];frame=p.document.getElementById(\"frame_\"+t.id);if(to&&to!=old){t.fullscreen['old_overflow']=p.get_css_property(html,\"overflow\");t.fullscreen['old_height']=p.get_css_property(html,\"height\");t.fullscreen['old_width']=p.get_css_property(html,\"width\");t.fullscreen['old_scrollTop']=html.scrollTop;t.fullscreen['old_scrollLeft']=html.scrollLeft;t.fullscreen['old_zIndex']=p.get_css_property(frame,\"z-index\");if(t.isOpera){html.Ç.height=\"100%\";html.Ç.width=\"100%\";}html.Ç.overflow=\"hidden\";html.scrollTop=0;html.scrollLeft=0;frame.Ç.position=\"absolute\";frame.Ç.width=html.clientWidth+\"px\";frame.Ç.height=html.clientHeight+\"px\";frame.Ç.display=\"block\";frame.Ç.zIndex=\"999999\";frame.Ç.top=\"0px\";frame.Ç.left=\"0px\";frame.Ç.top=\"-\"+p.calculeOffsetTop(frame)+\"px\";frame.Ç.left=\"-\"+p.calculeOffsetLeft(frame)+\"px\";t.switchClassSticky(icon,'editAreaButtonSelected',Ì);t.fullscreen['allow_resize']=t.resize_allowed;t.allow_resize(Ì);if(t.isFirefox){p.eAL.execCommand(t.id,\"update_size();\");t.area_select(selStart,selEnd-selStart);t.scroll_to_view();t.focus();}\nelse{setTimeout(\"È.eAL.execCommand('\"+t.id+\"','update_size();');eA.focus();\",10);}}\nelse if(to!=old){frame.Ç.position=\"static\";frame.Ç.zIndex=t.fullscreen['old_zIndex'];if(t.isOpera){html.Ç.height=\"auto\";html.Ç.width=\"auto\";html.Ç.overflow=\"auto\";}\nelse if(t.isIE&&p!=top){html.Ç.overflow=\"auto\";}\nelse{html.Ç.overflow=t.fullscreen['old_overflow'];}html.scrollTop=t.fullscreen['old_scrollTop'];html.scrollLeft=t.fullscreen['old_scrollLeft'];p.eAL.hide(t.id);p.eAL.show(t.id);t.switchClassSticky(icon,'editAreaButtonNormal',Ì);if(t.fullscreen['allow_resize'])t.allow_resize(t.fullscreen['allow_resize']);if(t.isFirefox){t.area_select(selStart,selEnd-selStart);setTimeout(\"eA.scroll_to_view();\",10);}}};EA.Ä.allow_resize=Ã(allow){var resize=_$(\"resize_area\");if(allow){resize.Ç.visibility=\"visible\";È.eAL.add_event(resize,\"mouseup\",eA.start_resize);}\nelse{resize.Ç.visibility=\"hidden\";È.eAL.remove_event(resize,\"mouseup\",eA.start_resize);}Á.resize_allowed=allow;};EA.Ä.change_syntax=Ã(new_syntax,is_waiting){if(new_syntax==Á.Å['syntax'])return Ë;var founded=Ì;for(var i=0;i<Á.syntax_list.Æ;i++){if(Á.syntax_list[i]==new_syntax)founded=Ë;}if(founded==Ë){if(!È.eAL.load_syntax[new_syntax]){if(!is_waiting)È.eAL.load_script(È.eAL.baseURL+\"reg_syntax/\"+new_syntax+\".js\");setTimeout(\"eA.change_syntax('\"+new_syntax+\"',Ë);\",100);Á.show_waiting_screen();}\nelse{if(!Á.allready_used_syntax[new_syntax]){È.eAL.init_syntax_regexp();Á.add_Ç(È.eAL.syntax[new_syntax][\"Çs\"]);Á.allready_used_syntax[new_syntax]=Ë;}var sel=_$(\"syntax_selection\");if(sel&&sel.Ê!=new_syntax){for(var i=0;i<sel.Æ;i++){if(sel.options[i].Ê&&sel.options[i].Ê==new_syntax)sel.options[i].selected=Ë;}}Á.Å['syntax']=new_syntax;Á.resync_highlight(Ë);Á.hide_waiting_screen();return Ë;}}return Ì;};EA.Ä.set_editable=Ã(is_editable){if(is_editable){document.body.className=\"\";Á.Â.readOnly=Ì;Á.is_editable=Ë;}\nelse{document.body.className=\"non_editable\";Á.Â.readOnly=Ë;Á.is_editable=Ì;}if(eAs[Á.id][\"displayed\"]==Ë)Á.update_size();};EA.Ä.toggle_word_wrap=Ã(){Á.set_word_wrap(!Á.Å['word_wrap']);};EA.Ä.set_word_wrap=Ã(to){var t=Á,a=t.Â;if(t.isOpera&&t.isOpera < 9.8){Á.Å['word_wrap']=Ì;t.switchClassSticky(_$(\"word_wrap\"),'editAreaButtonDisabled',Ë);return Ì;}if(to){wrap_mode='soft';Á.container.className+=' word_wrap';Á.container.Ç.width=\"\";Á.content_highlight.Ç.width=\"\";a.Ç.width=\"100%\";if(t.isIE&&t.isIE < 7){a.Ç.width=(a.offsetWidth-5)+\"px\";}t.switchClassSticky(_$(\"word_wrap\"),'editAreaButtonSelected',Ì);}\nelse{wrap_mode='off';Á.container.className=Á.container.className.replace(/word_wrap/g,'');t.switchClassSticky(_$(\"word_wrap\"),'editAreaButtonNormal',Ë);}Á.Â.previous_scrollWidth='';Á.Â.previous_scrollHeight='';a.wrap=wrap_mode;a.setAttribute('wrap',wrap_mode);if(!Á.isIE){var start=a.selectionStart,end=a.selectionEnd;var parNod=a.ÈNode,nxtSib=a.nextSibling;parNod.removeChild(a);parNod.insertBefore(a,nxtSib);Á.area_select(start,end-start);}Á.Å['word_wrap']=to;Á.focus();Á.update_size();Á.check_line_selection();};EA.Ä.open_file=Ã(Å){if(Å['id']!=\"undefined\"){var id=Å['id'];var new_file={};new_file['id']=id;new_file['title']=id;new_file['text']=\"\";new_file['É']=\"\";new_file['last_text_to_highlight']=\"\";new_file['last_hightlighted_text']=\"\";new_file['previous']=[];new_file['next']=[];new_file['last_undo']=\"\";new_file['smooth_selection']=Á.Å['smooth_selection'];new_file['do_highlight']=Á.Å['start_highlight'];new_file['syntax']=Á.Å['syntax'];new_file['scroll_top']=0;new_file['scroll_left']=0;new_file['selection_start']=0;new_file['selection_end']=0;new_file['edited']=Ì;new_file['font_size']=Á.Å[\"font_size\"];new_file['font_family']=Á.Å[\"font_family\"];new_file['word_wrap']=Á.Å[\"word_wrap\"];new_file['toolbar']={'links':{},'selects':{}};new_file['compare_edited_text']=new_file['text'];Á.files[id]=new_file;Á.update_file(id,Å);Á.files[id]['compare_edited_text']=Á.files[id]['text'];var html_id='tab_file_'+encodeURIComponent(id);Á.filesIdAssoc[html_id]=id;Á.files[id]['html_id']=html_id;if(!_$(Á.files[id]['html_id'])&&id!=\"\"){Á.tab_browsing_area.Ç.display=\"block\";var elem=document.createElement('li');elem.id=Á.files[id]['html_id'];var close=\"<img src=\\\"\"+È.eAL.baseURL+\"images/close.gif\\\" title=\\\"\"+Á.get_translation('close_tab','word')+\"\\\" onclick=\\\"eA.execCommand('close_file',eA.filesIdAssoc['\"+html_id+\"']);return Ì;\\\" class=\\\"hidden\\\" onmouseover=\\\"Á.className=''\\\" onmouseout=\\\"Á.className='hidden'\\\" />\";elem.innerHTML=\"<a onclick=\\\"javascript:eA.execCommand('switch_to_file',eA.filesIdAssoc['\"+html_id+\"']);\\\" selec=\\\"none\\\"><b><span><strong class=\\\"edited\\\">*</strong>\"+Á.files[id]['title']+close+\"</span></b></a>\";_$('tab_browsing_list').appendChild(elem);var elem=document.createElement('text');Á.update_size();}if(id!=\"\")Á.execCommand('file_open',Á.files[id]);Á.switch_to_file(id,Ë);return Ë;}\nelse return Ì;};EA.Ä.close_file=Ã(id){if(Á.files[id]){Á.save_file(id);if(Á.execCommand('file_close',Á.files[id])!==Ì){var li=_$(Á.files[id]['html_id']);li.ÈNode.removeChild(li);if(id==Á.curr_file){var next_file=\"\";var is_next=Ì;for(var i in Á.files){if(is_next){next_file=i;break;}\nelse if(i==id)is_next=Ë;\nelse next_file=i;}Á.switch_to_file(next_file);}delete(Á.files[id]);Á.update_size();}}};EA.Ä.save_file=Ã(id){var t=Á,save,a_links,a_selects,save_butt,img,i;if(t.files[id]){var save=t.files[id];save['É']=t.É;save['last_text_to_highlight']=t.last_text_to_highlight;save['last_hightlighted_text']=t.last_hightlighted_text;save['previous']=t.previous;save['next']=t.next;save['last_undo']=t.last_undo;save['smooth_selection']=t.smooth_selection;save['do_highlight']=t.do_highlight;save['syntax']=t.Å['syntax'];save['text']=t.Â.Ê;save['scroll_top']=t.result.scrollTop;save['scroll_left']=t.result.scrollLeft;save['selection_start']=t.É[\"selectionStart\"];save['selection_end']=t.É[\"selectionEnd\"];save['font_size']=t.Å[\"font_size\"];save['font_family']=t.Å[\"font_family\"];save['word_wrap']=t.Å[\"word_wrap\"];save['toolbar']={'links':{},'selects':{}};a_links=_$(\"toolbar_1\").getElementsByTagName(\"a\");for(i=0;i<a_links.Æ;i++){if(a_links[i].getAttribute('fileSpecific')=='yes'){save_butt={};img=a_links[i].getElementsByTagName('img')[0];save_butt['classLock']=img.classLock;save_butt['className']=img.className;save_butt['oldClassName']=img.oldClassName;save['toolbar']['links'][a_links[i].id]=save_butt;}}a_selects=_$(\"toolbar_1\").getElementsByTagName(\"select\");for(i=0;i<a_selects.Æ;i++){if(a_selects[i].getAttribute('fileSpecific')=='yes'){save['toolbar']['selects'][a_selects[i].id]=a_selects[i].Ê;}}t.files[id]=save;return save;}return Ì;};EA.Ä.update_file=Ã(id,new_Ês){for(var i in new_Ês){Á.files[id][i]=new_Ês[i];}};EA.Ä.display_file=Ã(id){var t=Á,a=t.Â,new_file,a_lis,a_selects,a_links,a_options,i,j;if(id==''){a.readOnly=Ë;t.tab_browsing_area.Ç.display=\"none\";_$(\"no_file_selected\").Ç.display=\"block\";t.result.className=\"empty\";if(!t.files['']){t.open_file({id:''});}}\nelse if(typeof(t.files[id])=='undefined'){return Ì;}\nelse{t.result.className=\"\";a.readOnly=!t.is_editable;_$(\"no_file_selected\").Ç.display=\"none\";t.tab_browsing_area.Ç.display=\"block\";}t.check_redo(Ë);t.check_undo(Ë);t.curr_file=id;a_lis=t.tab_browsing_area.getElementsByTagName('li');for(i=0;i<a_lis.Æ;i++){if(a_lis[i].id==t.files[id]['html_id'])a_lis[i].className='selected';\nelse a_lis[i].className='';}new_file=t.files[id];a.Ê=new_file['text'];t.set_font(new_file['font_family'],new_file['font_size']);t.area_select(new_file['selection_start'],new_file['selection_end']-new_file['selection_start']);t.manage_size(Ë);t.result.scrollTop=new_file['scroll_top'];t.result.scrollLeft=new_file['scroll_left'];t.previous=new_file['previous'];t.next=new_file['next'];t.last_undo=new_file['last_undo'];t.check_redo(Ë);t.check_undo(Ë);t.execCommand(\"change_highlight\",new_file['do_highlight']);t.execCommand(\"change_syntax\",new_file['syntax']);t.execCommand(\"change_smooth_selection_mode\",new_file['smooth_selection']);t.execCommand(\"set_word_wrap\",new_file['word_wrap']);a_links=new_file['toolbar']['links'];for(i in a_links){if(img=_$(i).getElementsByTagName('img')[0]){img.classLock=a_links[i]['classLock'];img.className=a_links[i]['className'];img.oldClassName=a_links[i]['oldClassName'];}}a_selects=new_file['toolbar']['selects'];for(i in a_selects){a_options=_$(i).options;for(j=0;j<a_options.Æ;j++){if(a_options[j].Ê==a_selects[i])_$(i).options[j].selected=Ë;}}};EA.Ä.switch_to_file=Ã(file_to_show,force_refresh){if(file_to_show!=Á.curr_file||force_refresh){Á.save_file(Á.curr_file);if(Á.curr_file!='')Á.execCommand('file_switch_off',Á.files[Á.curr_file]);Á.display_file(file_to_show);if(file_to_show!='')Á.execCommand('file_switch_on',Á.files[file_to_show]);}};EA.Ä.get_file=Ã(id){if(id==Á.curr_file)Á.save_file(id);return Á.files[id];};EA.Ä.get_all_files=Ã(){tmp_files=Á.files;Á.save_file(Á.curr_file);if(tmp_files[''])delete(Á.files['']);return tmp_files;};EA.Ä.check_file_changes=Ã(){var id=Á.curr_file;if(Á.files[id]&&Á.files[id]['compare_edited_text']!=undefined){if(Á.files[id]['compare_edited_text'].Æ==Á.Â.Ê.Æ&&Á.files[id]['compare_edited_text']==Á.Â.Ê){if(Á.files[id]['edited']!=Ì)Á.set_file_edited_mode(id,Ì);}\nelse{if(Á.files[id]['edited']!=Ë)Á.set_file_edited_mode(id,Ë);}}};EA.Ä.set_file_edited_mode=Ã(id,to){if(Á.files[id]&&_$(Á.files[id]['html_id'])){var link=_$(Á.files[id]['html_id']).getElementsByTagName('a')[0];if(to==Ë){link.className='edited';}\nelse{link.className='';if(id==Á.curr_file)text=Á.Â.Ê;\nelse text=Á.files[id]['text'];Á.files[id]['compare_edited_text']=text;}Á.files[id]['edited']=to;}};EA.Ä.set_show_line_colors=Ã(new_Ê){Á.show_line_colors=new_Ê;if(new_Ê)Á.selection_field.className+=' show_colors';\nelse Á.selection_field.className=Á.selection_field.className.replace(/ show_colors/g,'');};var EA_keys={8:\"Retour arriere\",9:\"Tabulation\",12:\"Milieu(pave numerique)\",13:\"Entrer\",16:\"Shift\",17:\"Ctrl\",18:\"Alt\",19:\"Pause\",20:\"Verr Maj\",27:\"Esc\",32:\"Space\",33:\"Page up\",34:\"Page down\",35:\"End\",36:\"Begin\",37:\"Left\",38:\"Up\",39:\"Right\",40:\"Down\",44:\"Impr ecran\",45:\"Inser\",46:\"Suppr\",91:\"Menu Demarrer Windows / touche pomme Mac\",92:\"Menu Demarrer Windows\",93:\"Menu contextuel Windows\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"Verr Num\",145:\"Arret defil\"};Ã keyDown(e){if(!e){e=event;}for(var i in eA.plugins){if(typeof(eA.plugins[i].onkeydown)==\"Ã\"){if(eA.plugins[i].onkeydown(e)===Ì){if(eA.isIE)e.keyCode=0;return Ì;}}}var target_id=(e.target||e.srcElement).id;var use=Ì;if(EA_keys[e.keyCode])letter=EA_keys[e.keyCode];\nelse letter=String.fromCharCode(e.keyCode);var low_letter=letter.toLowerCase();if(letter==\"Page up\"&&!AltPressed(e)&&!eA.isOpera){eA.execCommand(\"scroll_page\",{\"dir\":\"up\",\"shift\":ShiftPressed(e)});use=Ë;}\nelse if(letter==\"Page down\"&&!AltPressed(e)&&!eA.isOpera){eA.execCommand(\"scroll_page\",{\"dir\":\"down\",\"shift\":ShiftPressed(e)});use=Ë;}\nelse if(eA.is_editable==Ì){return Ë;}\nelse if(letter==\"Tabulation\"&&target_id==\"Â\"&&!CtrlPressed(e)&&!AltPressed(e)){if(ShiftPressed(e))eA.execCommand(\"invert_tab_selection\");\nelse eA.execCommand(\"tab_selection\");use=Ë;if(eA.isOpera||(eA.isFirefox&&eA.isMac))setTimeout(\"eA.execCommand('focus');\",1);}\nelse if(letter==\"Entrer\"&&target_id==\"Â\"){if(eA.press_enter())use=Ë;}\nelse if(letter==\"Entrer\"&&target_id==\"area_search\"){eA.execCommand(\"area_search\");use=Ë;}\nelse if(letter==\"Esc\"){eA.execCommand(\"close_all_inline_popup\",e);use=Ë;}\nelse if(CtrlPressed(e)&&!AltPressed(e)&&!ShiftPressed(e)){switch(low_letter){case \"f\":eA.execCommand(\"area_search\");use=Ë;break;case \"r\":eA.execCommand(\"area_replace\");use=Ë;break;case \"q\":eA.execCommand(\"close_all_inline_popup\",e);use=Ë;break;case \"h\":eA.execCommand(\"change_highlight\");use=Ë;break;case \"g\":setTimeout(\"eA.execCommand('go_to_line');\",5);use=Ë;break;case \"e\":eA.execCommand(\"show_help\");use=Ë;break;case \"z\":use=Ë;eA.execCommand(\"undo\");break;case \"y\":use=Ë;eA.execCommand(\"redo\");break;default:break;}}if(eA.next.Æ > 0){setTimeout(\"eA.check_redo();\",10);}setTimeout(\"eA.check_file_changes();\",10);if(use){if(eA.isIE)e.keyCode=0;return Ì;}return Ë;};Ã AltPressed(e){if(window.event){return(window.event.altKey);}\nelse{if(e.modifiers)return(e.altKey||(e.modifiers % 2));\nelse return e.altKey;}};Ã CtrlPressed(e){if(window.event){return(window.event.ctrlKey);}\nelse{return(e.ctrlKey||(e.modifiers==2)||(e.modifiers==3)||(e.modifiers>5));}};Ã ShiftPressed(e){if(window.event){return(window.event.shiftKey);}\nelse{return(e.shiftKey||(e.modifiers>3));}}; EA.Ä.show_search=Ã(){if(_$(\"area_search_replace\").Ç.visibility==\"visible\"){Á.hidden_search();}\nelse{Á.open_inline_popup(\"area_search_replace\");var text=Á.area_get_selection();var search=text.split(\"\\n\")[0];_$(\"area_search\").Ê=search;_$(\"area_search\").focus();}};EA.Ä.hidden_search=Ã(){Á.close_inline_popup(\"area_search_replace\");};EA.Ä.area_search=Ã(mode){if(!mode)mode=\"search\";_$(\"area_search_msg\").innerHTML=\"\";var search=_$(\"area_search\").Ê;Á.Â.focus();Á.Â.ÂFocused=Ë;var infos=Á.get_selection_infos();var start=infos[\"selectionStart\"];var pos=-1;var pos_begin=-1;var Æ=search.Æ;if(_$(\"area_search_replace\").Ç.visibility!=\"visible\"){Á.show_search();return;}if(search.Æ==0){_$(\"area_search_msg\").innerHTML=Á.get_translation(\"search_field_empty\");return;}if(mode!=\"replace\"){if(_$(\"area_search_reg_exp\").checked)start++;\nelse start+=search.Æ;}if(_$(\"area_search_reg_exp\").checked){var opt=\"m\";if(!_$(\"area_search_match_case\").checked)opt+=\"i\";var reg=new RegExp(search,opt);pos=infos[\"full_text\"].substr(start).search(reg);pos_begin=infos[\"full_text\"].search(reg);if(pos!=-1){pos+=start;Æ=infos[\"full_text\"].substr(start).match(reg)[0].Æ;}\nelse if(pos_begin!=-1){Æ=infos[\"full_text\"].match(reg)[0].Æ;}}\nelse{if(_$(\"area_search_match_case\").checked){pos=infos[\"full_text\"].indexOf(search,start);pos_begin=infos[\"full_text\"].indexOf(search);}\nelse{pos=infos[\"full_text\"].toLowerCase().indexOf(search.toLowerCase(),start);pos_begin=infos[\"full_text\"].toLowerCase().indexOf(search.toLowerCase());}}if(pos==-1&&pos_begin==-1){_$(\"area_search_msg\").innerHTML=\"<strong>\"+search+\"</strong> \"+Á.get_translation(\"not_found\");return;}\nelse if(pos==-1&&pos_begin !=-1){begin=pos_begin;_$(\"area_search_msg\").innerHTML=Á.get_translation(\"restart_search_at_begin\");}\nelse begin=pos;if(mode==\"replace\"&&pos==infos[\"indexOfCursor\"]){var replace=_$(\"area_replace\").Ê;var new_text=\"\";if(_$(\"area_search_reg_exp\").checked){var opt=\"m\";if(!_$(\"area_search_match_case\").checked)opt+=\"i\";var reg=new RegExp(search,opt);new_text=infos[\"full_text\"].substr(0,begin)+infos[\"full_text\"].substr(start).replace(reg,replace);}\nelse{new_text=infos[\"full_text\"].substr(0,begin)+replace+infos[\"full_text\"].substr(begin+Æ);}Á.Â.Ê=new_text;Á.area_select(begin,Æ);Á.area_search();}\nelse Á.area_select(begin,Æ);};EA.Ä.area_replace=Ã(){Á.area_search(\"replace\");};EA.Ä.area_replace_all=Ã(){var base_text=Á.Â.Ê;var search=_$(\"area_search\").Ê;var replace=_$(\"area_replace\").Ê;if(search.Æ==0){_$(\"area_search_msg\").innerHTML=Á.get_translation(\"search_field_empty\");return;}var new_text=\"\";var nb_change=0;if(_$(\"area_search_reg_exp\").checked){var opt=\"mg\";if(!_$(\"area_search_match_case\").checked)opt+=\"i\";var reg=new RegExp(search,opt);nb_change=infos[\"full_text\"].match(reg).Æ;new_text=infos[\"full_text\"].replace(reg,replace);}\nelse{if(_$(\"area_search_match_case\").checked){var tmp_tab=base_text.split(search);nb_change=tmp_tab.Æ-1;new_text=tmp_tab.join(replace);}\nelse{var lower_Ê=base_text.toLowerCase();var lower_search=search.toLowerCase();var start=0;var pos=lower_Ê.indexOf(lower_search);while(pos!=-1){nb_change++;new_text+=Á.Â.Ê.substring(start,pos)+replace;start=pos+search.Æ;pos=lower_Ê.indexOf(lower_search,pos+1);}new_text+=Á.Â.Ê.substring(start);}}if(new_text==base_text){_$(\"area_search_msg\").innerHTML=\"<strong>\"+search+\"</strong> \"+Á.get_translation(\"not_found\");}\nelse{Á.Â.Ê=new_text;_$(\"area_search_msg\").innerHTML=\"<strong>\"+nb_change+\"</strong> \"+Á.get_translation(\"occurrence_replaced\");setTimeout(\"eA.Â.focus();eA.Â.ÂFocused=Ë;\",100);}}; EA.Ä.change_highlight=Ã(change_to){if(Á.Å[\"syntax\"].Æ==0&&change_to==Ì){Á.switchClassSticky(_$(\"highlight\"),'editAreaButtonDisabled',Ë);Á.switchClassSticky(_$(\"reset_highlight\"),'editAreaButtonDisabled',Ë);return Ì;}if(Á.do_highlight==change_to)return Ì;Á.getIESelection();var pos_start=Á.Â.selectionStart;var pos_end=Á.Â.selectionEnd;if(Á.do_highlight===Ë||change_to==Ì)Á.disable_highlight();\nelse Á.enable_highlight();Á.Â.focus();Á.Â.selectionStart=pos_start;Á.Â.selectionEnd=pos_end;Á.setIESelection();};EA.Ä.disable_highlight=Ã(displayOnly){var t=Á,a=t.Â,new_Obj,old_class,new_class;t.selection_field.innerHTML=\"\";t.selection_field_text.innerHTML=\"\";t.content_highlight.Ç.visibility=\"hidden\";new_Obj=t.content_highlight.cloneNode(Ì);new_Obj.innerHTML=\"\";t.content_highlight.ÈNode.insertBefore(new_Obj,t.content_highlight);t.content_highlight.ÈNode.removeChild(t.content_highlight);t.content_highlight=new_Obj;old_class=È.getAttribute(a,\"class\");if(old_class){new_class=old_class.replace(\"hidden\",\"\");È.setAttribute(a,\"class\",new_class);}a.Ç.backgroundColor=\"transÈ\";t.switchClassSticky(_$(\"highlight\"),'editAreaButtonNormal',Ë);t.switchClassSticky(_$(\"reset_highlight\"),'editAreaButtonDisabled',Ë);t.do_highlight=Ì;t.switchClassSticky(_$(\"change_smooth_selection\"),'editAreaButtonSelected',Ë);if(typeof(t.smooth_selection_before_highlight)!=\"undefined\"&&t.smooth_selection_before_highlight===Ì){t.change_smooth_selection_mode(Ì);}};EA.Ä.enable_highlight=Ã(){var t=Á,a=t.Â,new_class;t.show_waiting_screen();t.content_highlight.Ç.visibility=\"visible\";new_class=È.getAttribute(a,\"class\")+\" hidden\";È.setAttribute(a,\"class\",new_class);if(t.isIE)a.Ç.backgroundColor=\"#FFFFFF\";t.switchClassSticky(_$(\"highlight\"),'editAreaButtonSelected',Ì);t.switchClassSticky(_$(\"reset_highlight\"),'editAreaButtonNormal',Ì);t.smooth_selection_before_highlight=t.smooth_selection;if(!t.smooth_selection)t.change_smooth_selection_mode(Ë);t.switchClassSticky(_$(\"change_smooth_selection\"),'editAreaButtonDisabled',Ë);t.do_highlight=Ë;t.resync_highlight();t.hide_waiting_screen();};EA.Ä.maj_highlight=Ã(infos){var debug_opti=\"\",tps_start=new Date().getTime(),tps_middle_opti=new Date().getTime();var t=Á,hightlighted_text,updated_highlight;var textToHighlight=infos[\"full_text\"],doSyntaxOpti=Ì,doHtmlOpti=Ì,stay_begin=\"\",stay_end=\"\",trace_new,trace_last;if(t.last_text_to_highlight==infos[\"full_text\"]&&t.resync_highlight!==Ë)return;if(t.reload_highlight===Ë){t.reload_highlight=Ì;}\nelse if(textToHighlight.Æ==0){textToHighlight=\"\\n \";}\nelse{changes=t.checkTextEvolution(t.last_text_to_highlight,textToHighlight);trace_new=t.get_syntax_trace(changes.newTextLine).replace(/\\r/g,'');trace_last=t.get_syntax_trace(changes.lastTextLine).replace(/\\r/g,'');doSyntaxOpti=(trace_new==trace_last);if(!doSyntaxOpti&&trace_new==\"\\n\"+trace_last&&/^[ \t\s]*\\n[ \t\s]*$/.test(changes.newText.replace(/\\r/g,''))&&changes.lastText==\"\"){doSyntaxOpti=Ë;}if(doSyntaxOpti){tps_middle_opti=new Date().getTime();stay_begin=t.last_hightlighted_text.split(\"\\n\").slice(0,changes.lineStart).join(\"\\n\");if(changes.lineStart>0)stay_begin+=\"\\n\";stay_end=t.last_hightlighted_text.split(\"\\n\").slice(changes.lineLastEnd+1).join(\"\\n\");if(stay_end.Æ>0)stay_end=\"\\n\"+stay_end;if(stay_begin.split('<span').Æ !=stay_begin.split('</span').Æ||stay_end.split('<span').Æ !=stay_end.split('</span').Æ){doSyntaxOpti=Ì;stay_end='';stay_begin='';}\nelse{if(stay_begin.Æ==0&&changes.posLastEnd==-1)changes.newTextLine+=\"\\n\";textToHighlight=changes.newTextLine;}}if(t.Å[\"debug\"]){var ch=changes;debug_opti=(doSyntaxOpti?\"Optimisation\":\"No optimisation\")+\" start:\"+ch.posStart+\"(\"+ch.lineStart+\")\"+\" end_new:\"+ch.posNewEnd+\"(\"+ch.lineNewEnd+\")\"+\" end_last:\"+ch.posLastEnd+\"(\"+ch.lineLastEnd+\")\"+\"\\nchanged_text:\"+ch.newText+\"=> trace:\"+trace_new+\"\\nchanged_last_text:\"+ch.lastText+\"=> trace:\"+trace_last+\"\\nchanged_line:\"+ch.newTextLine+\"\\nlast_changed_line:\"+ch.lastTextLine+\"\\nstay_begin:\"+stay_begin.slice(-100)+\"\\nstay_end:\"+stay_end.substr(0,100);+\"\\n\";}}tps_end_opti=new Date().getTime();updated_highlight=t.colorize_text(textToHighlight);tpsAfterReg=new Date().getTime();doSyntaxOpti=doHtmlOpti=Ì;if(doSyntaxOpti){try{var replacedBloc,i,nbStart='',nbEnd='',newHtml,ÆOld,ÆNew;replacedBloc=t.last_hightlighted_text.substring(stay_begin.Æ,t.last_hightlighted_text.Æ-stay_end.Æ);ÆOld=replacedBloc.Æ;ÆNew=updated_highlight.Æ;for(i=0;i < ÆOld&&i < ÆNew&&replacedBloc.charAt(i)==updated_highlight.charAt(i);i++){}nbStart=i;for(i=0;i+nbStart < ÆOld&&i+nbStart < ÆNew&&replacedBloc.charAt(ÆOld-i-1)==updated_highlight.charAt(ÆNew-i-1);i++){}nbEnd=i;lastHtml=replacedBloc.substring(nbStart,ÆOld-nbEnd);newHtml=updated_highlight.substring(nbStart,ÆNew-nbEnd);if(newHtml.indexOf('<span')==-1&&newHtml.indexOf('</span')==-1&&lastHtml.indexOf('<span')==-1&&lastHtml.indexOf('</span')==-1){var beginStr,nbOpendedSpan,nbClosedSpan,nbUnchangedChars,span,textNode;doHtmlOpti=Ë;beginStr=t.last_hightlighted_text.substr(0,stay_begin.Æ+nbStart);newHtml=newHtml.replace(/&lt;/g,'<').replace(/&gt;/g,'>').replace(/&amp;/g,'&');nbOpendedSpan=beginStr.split('<span').Æ-1;nbClosedSpan=beginStr.split('</span').Æ-1;span=t.content_highlight.getElementsByTagName('span')[ nbOpendedSpan ];ÈSpan=span;maxStartOffset=maxEndOffset=0;if(nbOpendedSpan==nbClosedSpan){while(ÈSpan.ÈNode !=t.content_highlight&&ÈSpan.ÈNode.tagName !='PRE'){ÈSpan=ÈSpan.ÈNode;}}\nelse{maxStartOffset=maxEndOffset=beginStr.Æ+1;nbClosed=beginStr.substr(Math.max(0,beginStr.lastIndexOf('<span',maxStartOffset-1))).split('</span').Æ-1;while(nbClosed > 0){nbClosed--;ÈSpan=ÈSpan.ÈNode;}while(ÈSpan.ÈNode !=t.content_highlight&&ÈSpan.ÈNode.tagName !='PRE'&&(tmpMaxStartOffset=Math.max(0,beginStr.lastIndexOf('<span',maxStartOffset-1)))<(tmpMaxEndOffset=Math.max(0,beginStr.lastIndexOf('</span',maxEndOffset-1)))){maxStartOffset=tmpMaxStartOffset;maxEndOffset=tmpMaxEndOffset;}}if(ÈSpan.ÈNode==t.content_highlight||ÈSpan.ÈNode.tagName=='PRE'){maxStartOffset=Math.max(0,beginStr.indexOf('<span'));}if(maxStartOffset==beginStr.Æ){nbSubSpanBefore=0;}\nelse{lastEndPos=Math.max(0,beginStr.lastIndexOf('>',maxStartOffset));nbSubSpanBefore=beginStr.substr(lastEndPos).split('<span').Æ-1;}if(nbSubSpanBefore==0){textNode=ÈSpan.firstChild;}\nelse{lastSubSpan=ÈSpan.getElementsByTagName('span')[ nbSubSpanBefore-1 ];while(lastSubSpan.ÈNode !=ÈSpan){lastSubSpan=lastSubSpan.ÈNode;}if(lastSubSpan.nextSibling==null||lastSubSpan.nextSibling.nodeType !=3){textNode=document.createTextNode('');lastSubSpan.ÈNode.insertBefore(textNode,lastSubSpan.nextSibling);}\nelse{textNode=lastSubSpan.nextSibling;}}if((lastIndex=beginStr.lastIndexOf('>'))==-1){nbUnchangedChars=beginStr.Æ;}\nelse{nbUnchangedChars=beginStr.substr(lastIndex+1).replace(/&lt;/g,'<').replace(/&gt;/g,'>').replace(/&amp;/g,'&').Æ;}if(t.isIE){nbUnchangedChars-=(beginStr.substr(beginStr.Æ-nbUnchangedChars).split(\"\\n\").Æ-1);textNode.replaceData(nbUnchangedChars,lastHtml.replace(/\\n/g,'').Æ,newHtml.replace(/\\n/g,''));}\nelse{textNode.replaceData(nbUnchangedChars,lastHtml.Æ,newHtml);}}}catch(e){doHtmlOpti=Ì;}}tpsAfterOpti2=new Date().getTime();hightlighted_text=stay_begin+updated_highlight+stay_end;if(!doHtmlOpti){var new_Obj=t.content_highlight.cloneNode(Ì);if((t.isIE&&t.isIE < 8)||(t.isOpera&&t.isOpera < 9.6))new_Obj.innerHTML=\"<pre><span class='\"+t.Å[\"syntax\"]+\"'>\"+hightlighted_text+\"</span></pre>\";\nelse new_Obj.innerHTML=\"<span class='\"+t.Å[\"syntax\"]+\"'>\"+hightlighted_text+\"</span>\";t.content_highlight.ÈNode.replaceChild(new_Obj,t.content_highlight);t.content_highlight=new_Obj;}t.last_text_to_highlight=infos[\"full_text\"];t.last_hightlighted_text=hightlighted_text;tps3=new Date().getTime();if(t.Å[\"debug\"]){t.debug.Ê=\"Tps optimisation \"+(tps_end_opti-tps_start)+\" | tps reg exp:\"+(tpsAfterReg-tps_end_opti)+\" | tps opti HTML:\"+(tpsAfterOpti2-tpsAfterReg)+' '+(doHtmlOpti ? 'yes':'no')+\" | tps update highlight content:\"+(tps3-tpsAfterOpti2)+\" | tpsTotal:\"+(tps3-tps_start)+\"(\"+tps3+\")\\n\"+debug_opti;}};EA.Ä.resync_highlight=Ã(reload_now){Á.reload_highlight=Ë;Á.last_text_to_highlight=\"\";Á.focus();if(reload_now)Á.check_line_selection(Ì);}; EA.Ä.comment_or_quote=Ã(){var new_class=\"\",close_tag=\"\",sy,arg,i;sy=È.eAL.syntax[eA.current_code_lang];arg=EA.Ä.comment_or_quote.arguments[0];for(i in sy[\"quotes\"]){if(arg.indexOf(i)==0){new_class=\"quotesmarks\";close_tag=sy[\"quotes\"][i];}}if(new_class.Æ==0){for(var i in sy[\"comments\"]){if(arg.indexOf(i)==0){new_class=\"comments\";close_tag=sy[\"comments\"][i];}}}if(close_tag==\"\\n\"){return \"µ__\"+new_class+\"__µ\"+arg.replace(/(\\r?\\n)?$/m,\"µ_END_µ$1\");}\nelse{reg=new RegExp(È.eAL.get_escaped_regexp(close_tag)+\"$\",\"m\");if(arg.search(reg)!=-1)return \"µ__\"+new_class+\"__µ\"+arg+\"µ_END_µ\";\nelse return \"µ__\"+new_class+\"__µ\"+arg;}};EA.Ä.get_syntax_trace=Ã(text){if(Á.Å[\"syntax\"].Æ>0&&È.eAL.syntax[Á.Å[\"syntax\"]][\"syntax_trace_regexp\"])return text.replace(È.eAL.syntax[Á.Å[\"syntax\"]][\"syntax_trace_regexp\"],\"$3\");};EA.Ä.colorize_text=Ã(text){text=\" \"+text;if(Á.Å[\"syntax\"].Æ>0)text=Á.apply_syntax(text,Á.Å[\"syntax\"]);return text.substr(1).replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\").replace(/µ_END_µ/g,\"</span>\").replace(/µ__([a-zA-Z0-9]+)__µ/g,\"<span class='$1'>\");};EA.Ä.apply_syntax=Ã(text,lang){var sy;Á.current_code_lang=lang;if(!È.eAL.syntax[lang])return text;sy=È.eAL.syntax[lang];if(sy[\"custom_regexp\"]['before']){for(var i in sy[\"custom_regexp\"]['before']){var convert=\"$1µ__\"+sy[\"custom_regexp\"]['before'][i]['class']+\"__µ$2µ_END_µ$3\";text=text.replace(sy[\"custom_regexp\"]['before'][i]['regexp'],convert);}}if(sy[\"comment_or_quote_reg_exp\"]){text=text.replace(sy[\"comment_or_quote_reg_exp\"],Á.comment_or_quote);}if(sy[\"keywords_reg_exp\"]){for(var i in sy[\"keywords_reg_exp\"]){text=text.replace(sy[\"keywords_reg_exp\"][i],'µ__'+i+'__µ$2µ_END_µ');}}if(sy[\"delimiters_reg_exp\"]){text=text.replace(sy[\"delimiters_reg_exp\"],'µ__delimiters__µ$1µ_END_µ');}if(sy[\"operators_reg_exp\"]){text=text.replace(sy[\"operators_reg_exp\"],'µ__operators__µ$1µ_END_µ');}if(sy[\"custom_regexp\"]['after']){for(var i in sy[\"custom_regexp\"]['after']){var convert=\"$1µ__\"+sy[\"custom_regexp\"]['after'][i]['class']+\"__µ$2µ_END_µ$3\";text=text.replace(sy[\"custom_regexp\"]['after'][i]['regexp'],convert);}}return text;};var editArea= eA;EditArea=EA;</script>".replace(/Á/g, 'this').replace(/Â/g, 'textarea').replace(/Ã/g, 'function').replace(/Ä/g, 'prototype').replace(/Å/g, 'settings').replace(/Æ/g, 'length').replace(/Ç/g, 'style').replace(/È/g, 'parent').replace(/É/g, 'last_selection').replace(/Ê/g, 'value').replace(/Ë/g, 'true').replace(/Ì/g, 'false');
+ editAreaLoader.template = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\"> <html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" > <head> <title>EditArea</title> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" /> <meta http-equiv=\"X-UA-Compatible\" content=\"IE=EmulateIE7\"/> [__CSSRULES__] [__JSCODE__] </head> <body> <div id='editor'> <div class='area_toolbar' id='toolbar_1'>[__TOOLBAR__]</div> <div class='area_toolbar' id='tab_browsing_area'><ul id='tab_browsing_list' class='menu'> <li> </li> </ul></div> <div id='result'> <div id='no_file_selected'></div> <div id='container'> <div id='cursor_pos' class='edit_area_cursor'>&nbsp;</div> <div id='end_bracket' class='edit_area_cursor'>&nbsp;</div> <div id='selection_field'></div> <div id='line_number' selec='none'></div> <div id='content_highlight'></div> <div id='test_font_size'></div> <div id='selection_field_text'></div> <textarea id='textarea' wrap='off' onchange='editArea.execCommand(\"onchange\");' onfocus='javascript:editArea.textareaFocused=true;' onblur='javascript:editArea.textareaFocused=false;'> </textarea> </div> </div> <div class='area_toolbar' id='toolbar_2'> <table class='statusbar' cellspacing='0' cellpadding='0'> <tr> <td class='total' selec='none'>{$position}:</td> <td class='infos' selec='none'> {$line_abbr} <span id='linePos'>0</span>, {$char_abbr} <span id='currPos'>0</span> </td> <td class='total' selec='none'>{$total}:</td> <td class='infos' selec='none'> {$line_abbr} <span id='nbLine'>0</span>, {$char_abbr} <span id='nbChar'>0</span> </td> <td class='resize'> <span id='resize_area'><img src='[__BASEURL__]images/statusbar_resize.gif' alt='resize' selec='none'></span> </td> </tr> </table> </div> </div> <div id='processing'> <div id='processing_text'> {$processing} </div> </div> <div id='area_search_replace' class='editarea_popup'> <table cellspacing='2' cellpadding='0' style='width: 100%'> <tr> <td selec='none'>{$search}</td> <td><input type='text' id='area_search' /></td> <td id='close_area_search_replace'> <a onclick='Javascript:editArea.execCommand(\"hidden_search\")'><img selec='none' src='[__BASEURL__]images/close.gif' alt='{$close_popup}' title='{$close_popup}' /></a><br /> </tr><tr> <td selec='none'>{$replace}</td> <td><input type='text' id='area_replace' /></td> <td><img id='move_area_search_replace' onmousedown='return parent.start_move_element(event,\"area_search_replace\", parent.frames[\"frame_\"+editArea.id]);' src='[__BASEURL__]images/move.gif' alt='{$move_popup}' title='{$move_popup}' /></td> </tr> </table> <div class='button'> <input type='checkbox' id='area_search_match_case' /><label for='area_search_match_case' selec='none'>{$match_case}</label> <input type='checkbox' id='area_search_reg_exp' /><label for='area_search_reg_exp' selec='none'>{$reg_exp}</label> <br /> <a onclick='Javascript:editArea.execCommand(\"area_search\")' selec='none'>{$find_next}</a> <a onclick='Javascript:editArea.execCommand(\"area_replace\")' selec='none'>{$replace}</a> <a onclick='Javascript:editArea.execCommand(\"area_replace_all\")' selec='none'>{$replace_all}</a><br /> </div> <div id='area_search_msg' selec='none'></div> </div> <div id='edit_area_help' class='editarea_popup'> <div class='close_popup'> <a onclick='Javascript:editArea.execCommand(\"close_all_inline_popup\")'><img src='[__BASEURL__]images/close.gif' alt='{$close_popup}' title='{$close_popup}' /></a> </div> <div><h2>Editarea [__EA_VERSION__]</h2><br /> <h3>{$shortcuts}:</h3> {$tab}: {$add_tab}<br /> {$shift}+{$tab}: {$remove_tab}<br /> {$ctrl}+f: {$search_command}<br /> {$ctrl}+r: {$replace_command}<br /> {$ctrl}+h: {$highlight}<br /> {$ctrl}+g: {$go_to_line}<br /> {$ctrl}+z: {$undo}<br /> {$ctrl}+y: {$redo}<br /> {$ctrl}+e: {$help}<br /> {$ctrl}+q, {$esc}: {$close_popup}<br /> {$accesskey} E: {$toggle}<br /> <br /> <em>{$about_notice}</em> <br /><div class='copyright'>&copy; Christophe Dolivet 2007-2010</div> </div> </div> </body> </html> ";
+ editAreaLoader.iframe_css = "<style>body,html{margin:0;padding:0;height:100%;border:none;overflow:hidden;background-color:#FFF;}body,html,table,form,textarea{font:12px monospace,sans-serif;}#editor{border:solid #888 1px;overflow:hidden;}#result{z-index:4;overflow-x:auto;overflow-y:scroll;border-top:solid #888 1px;border-bottom:solid #888 1px;position:relative;clear:both;}#result.empty{overflow:hidden;}#container{overflow:hidden;border:solid blue 0;position:relative;z-index:10;padding:0 5px 0 45px;}#textarea{position:relative;top:0;left:0;margin:0;padding:0;width:100%;height:100%;overflow:hidden;z-index:7;border-width:0;background-color:transparent;resize:none;}#textarea,#textarea:hover{outline:none;}#content_highlight{white-space:pre;margin:0;padding:0;position:absolute;z-index:4;overflow:visible;}#selection_field,#selection_field_text{margin:0;background-color:#E1F2F9;position:absolute;z-index:5;top:-100px;padding:0;white-space:pre;overflow:hidden;}#selection_field.show_colors {z-index:3;background-color:#EDF9FC;}#selection_field strong{font-weight:normal;}#selection_field.show_colors *,#selection_field_text * {visibility:hidden;}#selection_field_text{background-color:transparent;}#selection_field_text strong{font-weight:normal;background-color:#3399FE;color:#FFF;visibility:visible;}#container.word_wrap #content_highlight,#container.word_wrap #selection_field,#container.word_wrap #selection_field_text,#container.word_wrap #test_font_size{white-space:pre-wrap;white-space:-moz-pre-wrap !important;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word;width:99%;}#line_number{position:absolute;overflow:hidden;border-right:solid black 1px;z-index:8;width:38px;padding:0 5px 0 0;margin:0 0 0 -45px;text-align:right;color:#AAAAAA;}#test_font_size{padding:0;margin:0;visibility:hidden;position:absolute;white-space:pre;}pre{margin:0;padding:0;}.hidden{opacity:0.2;filter:alpha(opacity=20);}#result .edit_area_cursor{position:absolute;z-index:6;background-color:#FF6633;top:-100px;margin:0;}#result .edit_area_selection_field .overline{background-color:#996600;}.editarea_popup{border:solid 1px #888888;background-color:#eeeeee;width:250px;padding:4px;position:absolute;visibility:hidden;z-index:15;top:-500px;}.editarea_popup,.editarea_popup table{font-family:sans-serif;font-size:10pt;}.editarea_popup img{border:0;}.editarea_popup .close_popup{float:right;line-height:16px;border:0;padding:0;}.editarea_popup h1,.editarea_popup h2,.editarea_popup h3,.editarea_popup h4,.editarea_popup h5,.editarea_popup h6{margin:0;padding:0;}.editarea_popup .copyright{text-align:right;}div#area_search_replace{}div#area_search_replace img{border:0;}div#area_search_replace div.button{text-align:center;line-height:1.7em;}div#area_search_replace .button a{cursor:pointer;border:solid 1px #888888;background-color:#DEDEDE;text-decoration:none;padding:0 2px;color:#000000;white-space:nowrap;}div#area_search_replace a:hover{background-color:#EDEDED;}div#area_search_replace #move_area_search_replace{cursor:move;border:solid 1px #888;}div#area_search_replace #close_area_search_replace{text-align:right;vertical-align:top;white-space:nowrap;}div#area_search_replace #area_search_msg{height:18px;overflow:hidden;border-top:solid 1px #888;margin-top:3px;}#edit_area_help{width:350px;}#edit_area_help div.close_popup{float:right;}.area_toolbar{width:100%;margin:0;padding:0;background-color:#eeeeee;text-align:center;}.area_toolbar,.area_toolbar table{font:11px sans-serif;}.area_toolbar img{border:0;vertical-align:middle;}.area_toolbar input{margin:0;padding:0;}.area_toolbar select{font-family:'MS Sans Serif',sans-serif,Verdana,Arial;font-size:7pt;font-weight:normal;margin:2px 0 0 0 ;padding:0;vertical-align:top;background-color:#F0F0EE;}table.statusbar{width:100%;}.area_toolbar td.infos{text-align:center;width:130px;border-right:solid 1px #888;border-width:0 1px 0 0;padding:0;}.area_toolbar td.total{text-align:right;width:50px;padding:0;}.area_toolbar td.resize{text-align:right;}.area_toolbar span#resize_area{cursor:nw-resize;visibility:hidden;}.editAreaButtonNormal,.editAreaButtonOver,.editAreaButtonDown,.editAreaSeparator,.editAreaSeparatorLine,.editAreaButtonDisabled,.editAreaButtonSelected {border:0; margin:0; padding:0; background:transparent;margin-top:0;margin-left:1px;padding:0;}.editAreaButtonNormal {border:1px solid #eeeeee !important;cursor:pointer;}.editAreaButtonOver {border:1px solid #0A246A !important;cursor:pointer;background-color:#B6BDD2;}.editAreaButtonDown {cursor:pointer;border:1px solid #0A246A !important;background-color:#8592B5;}.editAreaButtonSelected {border:1px solid #C0C0BB !important;cursor:pointer;background-color:#F4F2E8;}.editAreaButtonDisabled {filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30);-moz-opacity:0.3;opacity:0.3;border:1px solid #F0F0EE !important;cursor:pointer;}.editAreaSeparatorLine {margin:1px 2px;background-color:#C0C0BB;width:2px;height:18px;}#processing{display:none;background-color:#eeeeee;border:solid #888 1px;position:absolute;top:0;left:0;width:100%;height:100%;z-index:100;text-align:center;}#processing_text{position:absolute;left:50%;top:50%;width:200px;height:20px;margin-left:-100px;margin-top:-10px;text-align:center;}#tab_browsing_area{display:none;background-color:#CCC9A8;border-top:1px solid #888;text-align:left;margin:0;}#tab_browsing_list {padding:0;margin:0;list-style-type:none;white-space:nowrap;}#tab_browsing_list li {float:left;margin:-1px;}#tab_browsing_list a {position:relative;display:block;text-decoration:none;float:left;cursor:pointer;line-height:14px;}#tab_browsing_list a span {display:block;color:#000;background:#eeeeee;border:1px solid #888;border-width:1px 1px 0;text-align:center;padding:2px 2px 1px 4px;position:relative;}#tab_browsing_list a b {display:block;border-bottom:2px solid #617994;}#tab_browsing_list a .edited {display:none;}#tab_browsing_list a.edited .edited {display:inline;}#tab_browsing_list a img{margin-left:7px;}#tab_browsing_list a.edited img{margin-left:3px;}#tab_browsing_list a:hover span {background:#F4F2E8;border-color:#0A246A;}#tab_browsing_list .selected a span{background:#046380;color:#FFF;}#no_file_selected{height:100%;width:150%;background:#CCC;display:none;z-index:20;position:absolute;}.non_editable #editor{border-width:0 1px;}.non_editable .area_toolbar{display:none;}#auto_completion_area{background:#FFF;border:solid 1px #888;position:absolute;z-index:15;width:280px;height:180px;overflow:auto;display:none;}#auto_completion_area a,#auto_completion_area a:visited{display:block;padding:0 2px 1px;color:#000;text-decoration:none;}#auto_completion_area a:hover,#auto_completion_area a:focus,#auto_completion_area a.focus{background:#D6E1FE;text-decoration:none;}#auto_completion_area ul{margin:0;padding:0;list-style:none inside;}#auto_completion_area li{padding:0;}#auto_completion_area .prefix{font-style:italic;padding:0 3px;}</style>"; \ No newline at end of file
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/autocompletion.gif b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/autocompletion.gif
new file mode 100644
index 0000000..f3dfc2e
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/autocompletion.gif
Binary files differ
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/close.gif b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/close.gif
new file mode 100644
index 0000000..679ca2a
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/close.gif
Binary files differ
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/fullscreen.gif b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/fullscreen.gif
new file mode 100644
index 0000000..66fa6d9
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/fullscreen.gif
Binary files differ
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/go_to_line.gif b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/go_to_line.gif
new file mode 100644
index 0000000..06042ec
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/go_to_line.gif
Binary files differ
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/help.gif b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/help.gif
new file mode 100644
index 0000000..51a1ee4
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/help.gif
Binary files differ
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/highlight.gif b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/highlight.gif
new file mode 100644
index 0000000..16491f6
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/highlight.gif
Binary files differ
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/load.gif b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/load.gif
new file mode 100644
index 0000000..461698f
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/load.gif
Binary files differ
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/move.gif b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/move.gif
new file mode 100644
index 0000000..d15f9f5
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/move.gif
Binary files differ
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/newdocument.gif b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/newdocument.gif
new file mode 100644
index 0000000..a9d2938
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/newdocument.gif
Binary files differ
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/opacity.png b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/opacity.png
new file mode 100644
index 0000000..b4217cb
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/opacity.png
Binary files differ
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/processing.gif b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/processing.gif
new file mode 100644
index 0000000..cce32f2
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/processing.gif
Binary files differ
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/redo.gif b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/redo.gif
new file mode 100644
index 0000000..3af9069
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/redo.gif
Binary files differ
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/reset_highlight.gif b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/reset_highlight.gif
new file mode 100644
index 0000000..0fa3cb7
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/reset_highlight.gif
Binary files differ
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/save.gif b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/save.gif
new file mode 100644
index 0000000..2777beb
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/save.gif
Binary files differ
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/search.gif b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/search.gif
new file mode 100644
index 0000000..cfe76b5
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/search.gif
Binary files differ
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/smooth_selection.gif b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/smooth_selection.gif
new file mode 100644
index 0000000..8a532e5
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/smooth_selection.gif
Binary files differ
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/spacer.gif b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/spacer.gif
new file mode 100644
index 0000000..3884865
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/spacer.gif
Binary files differ
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/statusbar_resize.gif b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/statusbar_resize.gif
new file mode 100644
index 0000000..af89d80
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/statusbar_resize.gif
Binary files differ
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/undo.gif b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/undo.gif
new file mode 100644
index 0000000..520796d
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/undo.gif
Binary files differ
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/word_wrap.gif b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/word_wrap.gif
new file mode 100644
index 0000000..8f256cc
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/images/word_wrap.gif
Binary files differ
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/bg.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/bg.js
new file mode 100644
index 0000000..9fdcec4
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/bg.js
@@ -0,0 +1,54 @@
+/*
+ * Bulgarian translation
+ * Author: Valentin Hristov
+ * Company: SOFTKIT Bulgarian
+ * Site: http://www.softkit-bg.com
+ */
+editAreaLoader.lang["bg"]={
+new_document: "нов документ",
+search_button: "търсене и замяна",
+search_command: "търси следващия / отвори прозорец с търсачка",
+search: "търсене",
+replace: "замяна",
+replace_command: "замяна / отвори прозорец с търсачка",
+find_next: "намери следващия",
+replace_all: "замени всички",
+reg_exp: "реголярни изрази",
+match_case: "чуствителен към регистъра",
+not_found: "няма резултат.",
+occurrence_replaced: "замяната е осъществена.",
+search_field_empty: "Полето за търсене е празно",
+restart_search_at_begin: "До края на документа. Почни с началото.",
+move_popup: "премести прозореца с търсачката",
+font_size: "--Размер на шрифта--",
+go_to_line: "премени към реда",
+go_to_line_prompt: "премени към номера на реда:",
+undo: "отмени",
+redo: "върни",
+change_smooth_selection: "включи/изключи някой от функциите за преглед (по красиво, но повече натоварва)",
+highlight: "превключване на оцветяване на синтаксиса включена/изключена",
+reset_highlight: "въстанови оцветяване на синтаксиса (ако не е синхронизиран с текста)",
+word_wrap: "режим на пренасяне на дълги редове",
+help: "за програмата",
+save: "съхрани",
+load: "зареди",
+line_abbr: "Стр",
+char_abbr: "Стлб",
+position: "Позиция",
+total: "Всичко",
+close_popup: "затвори прозореца",
+shortcuts: "Бързи клавиши",
+add_tab: "добави табулация в текста",
+remove_tab: "премахни табулацията в текста",
+about_notice: "Внимание: използвайте функцията оцветяване на синтаксиса само за малки текстове",
+toggle: "Превключи редактор",
+accesskey: "Бърз клавиш",
+tab: "Tab",
+shift: "Shift",
+ctrl: "Ctrl",
+esc: "Esc",
+processing: "Зареждане...",
+fullscreen: "на цял екран",
+syntax_selection: "--Синтаксис--",
+close_tab: "Затвори файла"
+};
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/cs.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/cs.js
new file mode 100644
index 0000000..b09a277
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/cs.js
@@ -0,0 +1,48 @@
+editAreaLoader.lang["cs"]={
+new_document: "Nový dokument",
+search_button: "Najdi a nahraď",
+search_command: "Hledej další / otevři vyhledávací pole",
+search: "Hledej",
+replace: "Nahraď",
+replace_command: "Nahraď / otevři vyhledávací pole",
+find_next: "Najdi další",
+replace_all: "Nahraď vše",
+reg_exp: "platné výrazy",
+match_case: "vyhodnocené výrazy",
+not_found: "nenalezené.",
+occurrence_replaced: "výskyty nahrazené.",
+search_field_empty: "Pole vyhledávání je prázdné",
+restart_search_at_begin: "Dosažen konec souboru, začínám od začátku.",
+move_popup: "Přesuň vyhledávací okno",
+font_size: "--Velikost textu--",
+go_to_line: "Přejdi na řádek",
+go_to_line_prompt: "Přejdi na řádek:",
+undo: "krok zpět",
+redo: "znovu",
+change_smooth_selection: "Povolit nebo zakázat některé ze zobrazených funkcí (účelnější zobrazení požaduje větší zatížení procesoru)",
+highlight: "Zvýrazňování syntaxe zap./vyp.",
+reset_highlight: "Obnovit zvýraznění (v případě nesrovnalostí)",
+word_wrap: "toggle word wrapping mode",
+help: "O programu",
+save: "Uložit",
+load: "Otevřít",
+line_abbr: "Ř.",
+char_abbr: "S.",
+position: "Pozice",
+total: "Celkem",
+close_popup: "Zavřít okno",
+shortcuts: "Zkratky",
+add_tab: "Přidat tabulování textu",
+remove_tab: "Odtsranit tabulování textu",
+about_notice: "Upozornění! Funkce zvýrazňování textu je k dispozici pouze pro malý text",
+toggle: "Přepnout editor",
+accesskey: "Přístupová klávesa",
+tab: "Záložka",
+shift: "Shift",
+ctrl: "Ctrl",
+esc: "Esc",
+processing: "Zpracovávám ...",
+fullscreen: "Celá obrazovka",
+syntax_selection: "--vyber zvýrazňovač--",
+close_tab: "Close file"
+};
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/de.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/de.js
new file mode 100644
index 0000000..f23ea7b
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/de.js
@@ -0,0 +1,48 @@
+editAreaLoader.lang["de"]={
+new_document: "Neues Dokument",
+search_button: "Suchen und Ersetzen",
+search_command: "Weitersuchen / &ouml;ffne Suchfeld",
+search: "Suchen",
+replace: "Ersetzen",
+replace_command: "Ersetzen / &ouml;ffne Suchfeld",
+find_next: "Weitersuchen",
+replace_all: "Ersetze alle Treffer",
+reg_exp: "regul&auml;re Ausdr&uuml;cke",
+match_case: "passt auf den Begriff<br />",
+not_found: "Nicht gefunden.",
+occurrence_replaced: "Die Vorkommen wurden ersetzt.",
+search_field_empty: "Leeres Suchfeld",
+restart_search_at_begin: "Ende des zu durchsuchenden Bereiches erreicht. Es wird die Suche von Anfang an fortgesetzt.", //find a shorter translation
+move_popup: "Suchfenster bewegen",
+font_size: "--Schriftgr&ouml;&szlig;e--",
+go_to_line: "Gehe zu Zeile",
+go_to_line_prompt: "Gehe zu Zeilennummmer:",
+undo: "R&uuml;ckg&auml;ngig",
+redo: "Wiederherstellen",
+change_smooth_selection: "Aktiviere/Deaktiviere einige Features (weniger Bildschirmnutzung aber mehr CPU-Belastung)",
+highlight: "Syntax Highlighting an- und ausschalten",
+reset_highlight: "Highlighting zur&uuml;cksetzen (falls mit Text nicht konform)",
+word_wrap: "Toggle word wrapping mode",
+help: "Info",
+save: "Speichern",
+load: "&Ouml;ffnen",
+line_abbr: "Ln",
+char_abbr: "Ch",
+position: "Position",
+total: "Gesamt",
+close_popup: "Popup schlie&szlig;en",
+shortcuts: "Shortcuts",
+add_tab: "Tab zum Text hinzuf&uuml;gen",
+remove_tab: "Tab aus Text entfernen",
+about_notice: "Bemerkung: Syntax Highlighting ist nur f&uuml;r kurze Texte",
+toggle: "Editor an- und ausschalten",
+accesskey: "Accesskey",
+tab: "Tab",
+shift: "Shift",
+ctrl: "Ctrl",
+esc: "Esc",
+processing: "In Bearbeitung...",
+fullscreen: "Full-Screen",
+syntax_selection: "--Syntax--",
+close_tab: "Close file"
+};
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/dk.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/dk.js
new file mode 100644
index 0000000..1381de2
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/dk.js
@@ -0,0 +1,48 @@
+editAreaLoader.lang["dk"]={
+new_document: "nyt tomt dokument",
+search_button: "s&oslash;g og erstat",
+search_command: "find n&aelig;ste / &aring;ben s&oslash;gefelt",
+search: "s&oslash;g",
+replace: "erstat",
+replace_command: "erstat / &aring;ben s&oslash;gefelt",
+find_next: "find n&aelig;ste",
+replace_all: "erstat alle",
+reg_exp: "regular expressions",
+match_case: "forskel på store/sm&aring; bogstaver<br />",
+not_found: "not found.",
+occurrence_replaced: "occurences replaced.",
+search_field_empty: "Search field empty",
+restart_search_at_begin: "End of area reached. Restart at begin.",
+move_popup: "flyt søgepopup",
+font_size: "--Skriftstørrelse--",
+go_to_line: "g&aring; til linie",
+go_to_line_prompt: "gå til linienummer:",
+undo: "fortryd",
+redo: "gentag",
+change_smooth_selection: "sl&aring; display funktioner til/fra (smartere display men mere CPU kr&aelig;vende)",
+highlight: "sl&aring; syntax highlight til/fra",
+reset_highlight: "nulstil highlight (hvis den er desynkroniseret fra teksten)",
+word_wrap: "toggle word wrapping mode",
+help: "om",
+save: "gem",
+load: "hent",
+line_abbr: "Ln",
+char_abbr: "Ch",
+position: "Position",
+total: "Total",
+close_popup: "luk popup",
+shortcuts: "Genveje",
+add_tab: "tilf&oslash;j tabulation til tekst",
+remove_tab: "fjern tabulation fra tekst",
+about_notice: "Husk: syntax highlight funktionen b&oslash;r kun bruge til sm&aring; tekster",
+toggle: "Sl&aring; editor til / fra",
+accesskey: "Accesskey",
+tab: "Tab",
+shift: "Skift",
+ctrl: "Ctrl",
+esc: "Esc",
+processing: "Processing...",
+fullscreen: "fullscreen",
+syntax_selection: "--Syntax--",
+close_tab: "Close file"
+};
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/en.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/en.js
new file mode 100644
index 0000000..9209f89
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/en.js
@@ -0,0 +1,48 @@
+editAreaLoader.lang["en"]={
+new_document: "new empty document",
+search_button: "search and replace",
+search_command: "search next / open search area",
+search: "search",
+replace: "replace",
+replace_command: "replace / open search area",
+find_next: "find next",
+replace_all: "replace all",
+reg_exp: "regular expressions",
+match_case: "match case",
+not_found: "not found.",
+occurrence_replaced: "occurences replaced.",
+search_field_empty: "Search field empty",
+restart_search_at_begin: "End of area reached. Restart at begin.",
+move_popup: "move search popup",
+font_size: "--Font size--",
+go_to_line: "go to line",
+go_to_line_prompt: "go to line number:",
+undo: "undo",
+redo: "redo",
+change_smooth_selection: "enable/disable some display features (smarter display but more CPU charge)",
+highlight: "toggle syntax highlight on/off",
+reset_highlight: "reset highlight (if desyncronized from text)",
+word_wrap: "toggle word wrapping mode",
+help: "about",
+save: "save",
+load: "load",
+line_abbr: "Ln",
+char_abbr: "Ch",
+position: "Position",
+total: "Total",
+close_popup: "close popup",
+shortcuts: "Shortcuts",
+add_tab: "add tabulation to text",
+remove_tab: "remove tabulation to text",
+about_notice: "Notice: syntax highlight function is only for small text",
+toggle: "Toggle editor",
+accesskey: "Accesskey",
+tab: "Tab",
+shift: "Shift",
+ctrl: "Ctrl",
+esc: "Esc",
+processing: "Processing...",
+fullscreen: "fullscreen",
+syntax_selection: "--Syntax--",
+close_tab: "Close file"
+};
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/eo.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/eo.js
new file mode 100644
index 0000000..6583609
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/eo.js
@@ -0,0 +1,48 @@
+editAreaLoader.lang["eo"]={
+new_document: "nova dokumento (vakigas la enhavon)",
+search_button: "ser&#265;i / anstata&#365;igi",
+search_command: "pluser&#265;i / malfermi la ser&#265;o-fenestron",
+search: "ser&#265;i",
+replace: "anstata&#365;igi",
+replace_command: "anstata&#365;igi / malfermi la ser&#265;o-fenestron",
+find_next: "ser&#265;i",
+replace_all: "anstata&#365;igi &#265;ion",
+reg_exp: "regula esprimo",
+match_case: "respekti la usklecon",
+not_found: "ne trovita.",
+occurrence_replaced: "anstata&#365;igoj plenumitaj.",
+search_field_empty: "La kampo estas malplena.",
+restart_search_at_begin: "Fino de teksto &#285;isrirata, &#265;u da&#365;rigi el la komenco?",
+move_popup: "movi la ser&#265;o-fenestron",
+font_size: "--Tipara grando--",
+go_to_line: "iri al la linio",
+go_to_line_prompt: "iri al la linio numero:",
+undo: "rezigni",
+redo: "refari",
+change_smooth_selection: "ebligi/malebligi la funkcioj de vidigo (pli bona vidigo, sed pli da &#349;ar&#285;o de la &#265;eforgano)",
+highlight: "ebligi/malebligi la sintaksan kolorigon",
+reset_highlight: "repravalorizi la sintaksan kolorigon (se malsinkronigon de la teksto)",
+word_wrap: "toggle word wrapping mode",
+help: "pri",
+save: "registri",
+load: "&#349;ar&#285;i",
+line_abbr: "Ln",
+char_abbr: "Sg",
+position: "Pozicio",
+total: "Sumo",
+close_popup: "fermi la &#349;prucfenestron",
+shortcuts: "Fulmoklavo",
+add_tab: "aldoni tabon en la tekston",
+remove_tab: "forigi tablon el la teksto",
+about_notice: "Noto: la sintaksa kolorigo estas nur prikalkulita por mallongaj tekstoj.",
+toggle: "baskuligi la redaktilon",
+accesskey: "Fulmoklavo",
+tab: "Tab",
+shift: "Maj",
+ctrl: "Ktrl",
+esc: "Esk",
+processing: "&#349;argante...",
+fullscreen: "plenekrane",
+syntax_selection: "--Sintakso--",
+close_tab: "Fermi la dosieron"
+}; \ No newline at end of file
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/es.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/es.js
new file mode 100644
index 0000000..3892c1c
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/es.js
@@ -0,0 +1,48 @@
+editAreaLoader.lang["es"]={
+new_document: "nuevo documento vacío",
+search_button: "buscar y reemplazar",
+search_command: "buscar siguiente / abrir área de búsqueda",
+search: "buscar",
+replace: "reemplazar",
+replace_command: "reemplazar / abrir área de búsqueda",
+find_next: "encontrar siguiente",
+replace_all: "reemplazar todos",
+reg_exp: "expresiones regulares",
+match_case: "coincidir capitalización",
+not_found: "no encontrado.",
+occurrence_replaced: "ocurrencias reemplazadas.",
+search_field_empty: "Campo de búsqueda vacío",
+restart_search_at_begin: "Se ha llegado al final del área. Se va a seguir desde el principio.",
+move_popup: "mover la ventana de búsqueda",
+font_size: "--Tamaño de la fuente--",
+go_to_line: "ir a la línea",
+go_to_line_prompt: "ir a la línea número:",
+undo: "deshacer",
+redo: "rehacer",
+change_smooth_selection: "activar/desactivar algunas características de visualización (visualización más inteligente pero más carga de CPU)",
+highlight: "intercambiar resaltado de sintaxis",
+reset_highlight: "reinicializar resaltado (si no esta sincronizado con el texto)",
+word_wrap: "toggle word wrapping mode",
+help: "acerca",
+save: "guardar",
+load: "cargar",
+line_abbr: "Ln",
+char_abbr: "Ch",
+position: "Posición",
+total: "Total",
+close_popup: "recuadro de cierre",
+shortcuts: "Atajos",
+add_tab: "añadir tabulado al texto",
+remove_tab: "borrar tabulado del texto",
+about_notice: "Aviso: el resaltado de sintaxis sólo funciona para texto pequeño",
+toggle: "Cambiar editor",
+accesskey: "Tecla de acceso",
+tab: "Tab",
+shift: "Mayúsc",
+ctrl: "Ctrl",
+esc: "Esc",
+processing: "Procesando...",
+fullscreen: "pantalla completa",
+syntax_selection: "--Syntax--",
+close_tab: "Close file"
+};
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/fi.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/fi.js
new file mode 100644
index 0000000..1837883
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/fi.js
@@ -0,0 +1,48 @@
+editAreaLoader.lang["fi"]={
+new_document: "uusi tyhjä dokumentti",
+search_button: "etsi ja korvaa",
+search_command: "etsi seuraava / avaa etsintävalikko",
+search: "etsi",
+replace: "korvaa",
+replace_command: "korvaa / avaa etsintävalikko",
+find_next: "etsi seuraava",
+replace_all: "korvaa kaikki",
+reg_exp: "säännölliset lausekkeet",
+match_case: "täsmää kirjainkokoon",
+not_found: "ei löytynyt.",
+occurrence_replaced: "esiintymää korvattu.",
+search_field_empty: "Haettava merkkijono on tyhjä",
+restart_search_at_begin: "Alueen loppu saavutettiin. Aloitetaan alusta.",
+move_popup: "siirrä etsintävalikkoa",
+font_size: "--Fontin koko--",
+go_to_line: "siirry riville",
+go_to_line_prompt: "mene riville:",
+undo: "peruuta",
+redo: "tee uudelleen",
+change_smooth_selection: "kytke/sammuta joitakin näyttötoimintoja (Älykkäämpi toiminta, mutta suurempi CPU kuormitus)",
+highlight: "kytke syntaksikorostus päälle/pois",
+reset_highlight: "resetoi syntaksikorostus (jos teksti ei ole synkassa korostuksen kanssa)",
+word_wrap: "toggle word wrapping mode",
+help: "tietoja",
+save: "tallenna",
+load: "lataa",
+line_abbr: "Rv",
+char_abbr: "Pos",
+position: "Paikka",
+total: "Yhteensä",
+close_popup: "sulje valikko",
+shortcuts: "Pikatoiminnot",
+add_tab: "lisää sisennys tekstiin",
+remove_tab: "poista sisennys tekstistä",
+about_notice: "Huomautus: syntaksinkorostus toimii vain pienelle tekstille",
+toggle: "Kytke editori",
+accesskey: "Pikanäppäin",
+tab: "Tab",
+shift: "Shift",
+ctrl: "Ctrl",
+esc: "Esc",
+processing: "Odota...",
+fullscreen: "koko ruutu",
+syntax_selection: "--Syntaksi--",
+close_tab: "Sulje tiedosto"
+}; \ No newline at end of file
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/fr.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/fr.js
new file mode 100644
index 0000000..f774163
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/fr.js
@@ -0,0 +1,48 @@
+editAreaLoader.lang["fr"]={
+new_document: "nouveau document (efface le contenu)",
+search_button: "rechercher / remplacer",
+search_command: "rechercher suivant / ouvrir la fen&ecirc;tre de recherche",
+search: "rechercher",
+replace: "remplacer",
+replace_command: "remplacer / ouvrir la fen&ecirc;tre de recherche",
+find_next: "rechercher",
+replace_all: "tout remplacer",
+reg_exp: "expr. r&eacute;guli&egrave;re",
+match_case: "respecter la casse",
+not_found: "pas trouv&eacute;.",
+occurrence_replaced: "remplacements &eacute;ffectu&eacute;s.",
+search_field_empty: "Le champ de recherche est vide.",
+restart_search_at_begin: "Fin du texte atteint, poursuite au d&eacute;but.",
+move_popup: "d&eacute;placer la fen&ecirc;tre de recherche",
+font_size: "--Taille police--",
+go_to_line: "aller &agrave; la ligne",
+go_to_line_prompt: "aller a la ligne numero:",
+undo: "annuler",
+redo: "refaire",
+change_smooth_selection: "activer/d&eacute;sactiver des fonctions d'affichage (meilleur affichage mais plus de charge processeur)",
+highlight: "activer/d&eacute;sactiver la coloration syntaxique",
+reset_highlight: "r&eacute;initialiser la coloration syntaxique (si d&eacute;syncronis&eacute;e du texte)",
+word_wrap: "activer/d&eacute;sactiver les retours &agrave; la ligne automatiques",
+help: "&agrave; propos",
+save: "sauvegarder",
+load: "charger",
+line_abbr: "Ln",
+char_abbr: "Ch",
+position: "Position",
+total: "Total",
+close_popup: "fermer le popup",
+shortcuts: "Racourcis clavier",
+add_tab: "ajouter une tabulation dans le texte",
+remove_tab: "retirer une tabulation dans le texte",
+about_notice: "Note: la coloration syntaxique n'est pr&eacute;vue que pour de courts textes.",
+toggle: "basculer l'&eacute;diteur",
+accesskey: "Accesskey",
+tab: "Tab",
+shift: "Maj",
+ctrl: "Ctrl",
+esc: "Esc",
+processing: "chargement...",
+fullscreen: "plein &eacute;cran",
+syntax_selection: "--Syntaxe--",
+close_tab: "Fermer le fichier"
+};
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/hr.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/hr.js
new file mode 100644
index 0000000..0429d3a
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/hr.js
@@ -0,0 +1,48 @@
+editAreaLoader.lang["hr"]={
+new_document: "Novi dokument",
+search_button: "Traži i izmijeni",
+search_command: "Traži dalje / Otvori prozor za traženje",
+search: "Traži",
+replace: "Izmijeni",
+replace_command: "Izmijeni / Otvori prozor za traženje",
+find_next: "Traži dalje",
+replace_all: "Izmjeni sve",
+reg_exp: "Regularni izrazi",
+match_case: "Bitna vel. slova",
+not_found: "nije naðeno.",
+occurrence_replaced: "izmjenjenih.",
+search_field_empty: "Prazno polje za traženje!",
+restart_search_at_begin: "Došao do kraja. Poèeo od poèetka.",
+move_popup: "Pomakni prozor",
+font_size: "--Velièina teksta--",
+go_to_line: "Odi na redak",
+go_to_line_prompt: "Odi na redak:",
+undo: "Vrati natrag",
+redo: "Napravi ponovo",
+change_smooth_selection: "Ukljuèi/iskljuèi neke moguænosti prikaza (pametniji prikaz, ali zagušeniji CPU)",
+highlight: "Ukljuèi/iskljuèi bojanje sintakse",
+reset_highlight: "Ponovi kolorizaciju (ako je nesinkronizirana s tekstom)",
+word_wrap: "toggle word wrapping mode",
+help: "O edit_area",
+save: "Spremi",
+load: "Uèitaj",
+line_abbr: "Ln",
+char_abbr: "Zn",
+position: "Pozicija",
+total: "Ukupno",
+close_popup: "Zatvori prozor",
+shortcuts: "Kratice",
+add_tab: "Dodaj tabulaciju",
+remove_tab: "Makni tabulaciju",
+about_notice: "Napomena: koloriziranje sintakse je samo za kratke kodove",
+toggle: "Prebaci naèin ureðivanja",
+accesskey: "Accesskey",
+tab: "Tab",
+shift: "Shift",
+ctrl: "Ctrl",
+esc: "Esc",
+processing: "Procesiram...",
+fullscreen: "Cijeli prozor",
+syntax_selection: "--Syntax--",
+close_tab: "Close file"
+};
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/it.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/it.js
new file mode 100644
index 0000000..e614367
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/it.js
@@ -0,0 +1,48 @@
+editAreaLoader.lang["it"]={
+new_document: "nuovo documento vuoto",
+search_button: "cerca e sostituisci",
+search_command: "trova successivo / apri finestra di ricerca",
+search: "cerca",
+replace: "sostituisci",
+replace_command: "sostituisci / apri finestra di ricerca",
+find_next: "trova successivo",
+replace_all: "sostituisci tutti",
+reg_exp: "espressioni regolari",
+match_case: "confronta maiuscole/minuscole<br />",
+not_found: "non trovato.",
+occurrence_replaced: "occorrenze sostituite.",
+search_field_empty: "Campo ricerca vuoto",
+restart_search_at_begin: "Fine del testo raggiunta. Ricomincio dall'inizio.",
+move_popup: "sposta popup di ricerca",
+font_size: "-- Dimensione --",
+go_to_line: "vai alla linea",
+go_to_line_prompt: "vai alla linea numero:",
+undo: "annulla",
+redo: "ripeti",
+change_smooth_selection: "abilita/disabilita alcune caratteristiche della visualizzazione",
+highlight: "abilita/disabilita colorazione della sintassi",
+reset_highlight: "aggiorna colorazione (se non sincronizzata)",
+word_wrap: "toggle word wrapping mode",
+help: "informazioni su...",
+save: "salva",
+load: "carica",
+line_abbr: "Ln",
+char_abbr: "Ch",
+position: "Posizione",
+total: "Totale",
+close_popup: "chiudi popup",
+shortcuts: "Scorciatoie",
+add_tab: "aggiungi tabulazione",
+remove_tab: "rimuovi tabulazione",
+about_notice: "Avviso: la colorazione della sintassi vale solo con testo piccolo",
+toggle: "Abilita/disabilita editor",
+accesskey: "Accesskey",
+tab: "Tab",
+shift: "Shift",
+ctrl: "Ctrl",
+esc: "Esc",
+processing: "In corso...",
+fullscreen: "fullscreen",
+syntax_selection: "--Syntax--",
+close_tab: "Close file"
+};
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/ja.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/ja.js
new file mode 100644
index 0000000..91b4909
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/ja.js
@@ -0,0 +1,48 @@
+editAreaLoader.lang["ja"]={
+new_document: "新規作成",
+search_button: "検索・置換",
+search_command: "次を検索 / 検索窓を表示",
+search: "検索",
+replace: "置換",
+replace_command: "置換 / 置換窓を表示",
+find_next: "次を検索",
+replace_all: "全置換",
+reg_exp: "正規表現",
+match_case: "大文字小文字の区別",
+not_found: "見つかりません。",
+occurrence_replaced: "置換しました。",
+search_field_empty: "検索対象文字列が空です。",
+restart_search_at_begin: "終端に達しました、始めに戻ります",
+move_popup: "検索窓を移動",
+font_size: "--フォントサイズ--",
+go_to_line: "指定行へ移動",
+go_to_line_prompt: "指定行へ移動します:",
+undo: "元に戻す",
+redo: "やり直し",
+change_smooth_selection: "スムース表示の切り替え(CPUを使います)",
+highlight: "構文強調表示の切り替え",
+reset_highlight: "構文強調表示のリセット",
+word_wrap: "toggle word wrapping mode",
+help: "ヘルプを表示",
+save: "保存",
+load: "読み込み",
+line_abbr: "行",
+char_abbr: "文字",
+position: "位置",
+total: "合計",
+close_popup: "ポップアップを閉じる",
+shortcuts: "ショートカット",
+add_tab: "タブを挿入する",
+remove_tab: "タブを削除する",
+about_notice: "注意:構文強調表示は短いテキストでしか有効に機能しません。",
+toggle: "テキストエリアとeditAreaの切り替え",
+accesskey: "アクセスキー",
+tab: "Tab",
+shift: "Shift",
+ctrl: "Ctrl",
+esc: "Esc",
+processing: "処理中です...",
+fullscreen: "fullscreen",
+syntax_selection: "--Syntax--",
+close_tab: "Close file"
+};
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/mk.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/mk.js
new file mode 100644
index 0000000..4e14d12
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/mk.js
@@ -0,0 +1,48 @@
+editAreaLoader.lang["mk"]={
+new_document: "Нов документ",
+search_button: "Најди и замени",
+search_command: "Барај следно / Отвори нов прозорец за пребарување",
+search: "Барај",
+replace: "Замени",
+replace_command: "Замени / Отвори прозорец за пребарување",
+find_next: "најди следно",
+replace_all: "Замени ги сите",
+reg_exp: "Регуларни изрази",
+match_case: "Битна е големината на буквите",
+not_found: "не е пронајдено.",
+occurrence_replaced: "замени.",
+search_field_empty: "Полето за пребарување е празно",
+restart_search_at_begin: "Крај на областа. Стартувај од почеток.",
+move_popup: "Помести го прозорецот",
+font_size: "--Големина на текстот--",
+go_to_line: "Оди на линија",
+go_to_line_prompt: "Оди на линија со број:",
+undo: "Врати",
+redo: "Повтори",
+change_smooth_selection: "Вклучи/исклучи некои карактеристики за приказ (попаметен приказ, но поголемо оптеретување за процесорот)",
+highlight: "Вклучи/исклучи осветлување на синтакса",
+reset_highlight: "Ресетирај го осветлувањето на синтакса (доколку е десинхронизиранo со текстот)",
+word_wrap: "toggle word wrapping mode",
+help: "За",
+save: "Зачувај",
+load: "Вчитај",
+line_abbr: "Лн",
+char_abbr: "Зн",
+position: "Позиција",
+total: "Вкупно",
+close_popup: "Затвори го прозорецот",
+shortcuts: "Кратенки",
+add_tab: "Додај табулација на текстот",
+remove_tab: "Отстрани ја табулацијата",
+about_notice: "Напомена: Осветлувањето на синтанса е само за краток текст",
+toggle: "Смени начин на уредување",
+accesskey: "Accesskey",
+tab: "Tab",
+shift: "Shift",
+ctrl: "Ctrl",
+esc: "Esc",
+processing: "Обработувам...",
+fullscreen: "Цел прозорец",
+syntax_selection: "--Синтакса--",
+close_tab: "Избери датотека"
+};
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/nl.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/nl.js
new file mode 100644
index 0000000..84aa177
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/nl.js
@@ -0,0 +1,48 @@
+editAreaLoader.lang["nl"]={
+new_document: "nieuw leeg document",
+search_button: "zoek en vervang",
+search_command: "zoek volgende / zoekscherm openen",
+search: "zoek",
+replace: "vervang",
+replace_command: "vervang / zoekscherm openen",
+find_next: "volgende vinden",
+replace_all: "alles vervangen",
+reg_exp: "reguliere expressies",
+match_case: "hoofdletter gevoelig",
+not_found: "niet gevonden.",
+occurrence_replaced: "object vervangen.",
+search_field_empty: "Zoek veld leeg",
+restart_search_at_begin: "Niet meer instanties gevonden, begin opnieuw",
+move_popup: "versleep zoek scherm",
+font_size: "--Letter grootte--",
+go_to_line: "Ga naar regel",
+go_to_line_prompt: "Ga naar regel nummer:",
+undo: "Ongedaan maken",
+redo: "Opnieuw doen",
+change_smooth_selection: "zet wat schermopties aan/uit (kan langzamer zijn)",
+highlight: "zet syntax highlight aan/uit",
+reset_highlight: "reset highlight (indien gedesynchronizeerd)",
+word_wrap: "toggle word wrapping mode",
+help: "informatie",
+save: "opslaan",
+load: "laden",
+line_abbr: "Ln",
+char_abbr: "Ch",
+position: "Positie",
+total: "Totaal",
+close_popup: "Popup sluiten",
+shortcuts: "Snelkoppelingen",
+add_tab: "voeg tabs toe in tekst",
+remove_tab: "verwijder tabs uit tekst",
+about_notice: "Notitie: syntax highlight functie is alleen voor kleine tekst",
+toggle: "geavanceerde bewerkingsopties",
+accesskey: "Accessknop",
+tab: "Tab",
+shift: "Shift",
+ctrl: "Ctrl",
+esc: "Esc",
+processing: "Verwerken...",
+fullscreen: "fullscreen",
+syntax_selection: "--Syntax--",
+close_tab: "Close file"
+};
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/pl.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/pl.js
new file mode 100644
index 0000000..ae03d60
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/pl.js
@@ -0,0 +1,48 @@
+editAreaLoader.lang["pl"]={
+new_document: "nowy dokument",
+search_button: "znajdź i zamień",
+search_command: "znajdź następny",
+search: "znajdź",
+replace: "zamień",
+replace_command: "zamień",
+find_next: "następny",
+replace_all: "zamień wszystko",
+reg_exp: "wyrażenie regularne",
+match_case: "uwzględnij wielkość liter<br />",
+not_found: "nie znaleziono.",
+occurrence_replaced: "wystąpień zamieniono.",
+search_field_empty: "Nie wprowadzono tekstu",
+restart_search_at_begin: "Koniec dokumentu. Wyszukiwanie od początku.",
+move_popup: "przesuń okienko wyszukiwania",
+font_size: "Rozmiar",
+go_to_line: "idź do linii",
+go_to_line_prompt: "numer linii:",
+undo: "cofnij",
+redo: "przywróć",
+change_smooth_selection: "włącz/wyłącz niektóre opcje wyglądu (zaawansowane opcje wyglądu obciążają procesor)",
+highlight: "włącz/wyłącz podświetlanie składni",
+reset_highlight: "odśwież podświetlanie składni (jeśli rozsynchronizowało się z tekstem)",
+word_wrap: "toggle word wrapping mode",
+help: "o programie",
+save: "zapisz",
+load: "otwórz",
+line_abbr: "Ln",
+char_abbr: "Zn",
+position: "Pozycja",
+total: "W sumie",
+close_popup: "zamknij okienko",
+shortcuts: "Skróty klawiaturowe",
+add_tab: "dodaj wcięcie do zaznaczonego tekstu",
+remove_tab: "usuń wcięcie",
+about_notice: "Uwaga: podświetlanie składni nie jest zalecane dla długich tekstów",
+toggle: "Włącz/wyłącz edytor",
+accesskey: "Alt+",
+tab: "Tab",
+shift: "Shift",
+ctrl: "Ctrl",
+esc: "Esc",
+processing: "Przetwarzanie...",
+fullscreen: "fullscreen",
+syntax_selection: "--Syntax--",
+close_tab: "Close file"
+};
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/pt.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/pt.js
new file mode 100644
index 0000000..d785ec1
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/pt.js
@@ -0,0 +1,48 @@
+editAreaLoader.lang["pt"]={
+new_document: "Novo documento",
+search_button: "Localizar e substituir",
+search_command: "Localizar próximo",
+search: "Localizar",
+replace: "Substituir",
+replace_command: "Substituir",
+find_next: "Localizar",
+replace_all: "Subst. tudo",
+reg_exp: "Expressões regulares",
+match_case: "Diferenciar maiúsculas e minúsculas",
+not_found: "Não encontrado.",
+occurrence_replaced: "Ocorrências substituidas",
+search_field_empty: "Campo localizar vazio.",
+restart_search_at_begin: "Fim das ocorrências. Recomeçar do inicio.",
+move_popup: "Mover janela",
+font_size: "--Tamanho da fonte--",
+go_to_line: "Ir para linha",
+go_to_line_prompt: "Ir para a linha:",
+undo: "Desfazer",
+redo: "Refazer",
+change_smooth_selection: "Opções visuais",
+highlight: "Cores de sintaxe",
+reset_highlight: "Resetar cores (se não sincronizado)",
+word_wrap: "toggle word wrapping mode",
+help: "Sobre",
+save: "Salvar",
+load: "Carregar",
+line_abbr: "Ln",
+char_abbr: "Ch",
+position: "Posição",
+total: "Total",
+close_popup: "Fechar",
+shortcuts: "Shortcuts",
+add_tab: "Adicionar tabulação",
+remove_tab: "Remover tabulação",
+about_notice: "Atenção: Cores de sintaxe são indicados somente para textos pequenos",
+toggle: "Exibir editor",
+accesskey: "Accesskey",
+tab: "Tab",
+shift: "Shift",
+ctrl: "Ctrl",
+esc: "Esc",
+processing: "Processando...",
+fullscreen: "fullscreen",
+syntax_selection: "--Syntax--",
+close_tab: "Close file"
+};
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/ru.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/ru.js
new file mode 100644
index 0000000..081e6b0
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/ru.js
@@ -0,0 +1,48 @@
+editAreaLoader.lang["ru"]={
+new_document: "новый пустой документ",
+search_button: "поиск и замена",
+search_command: "искать следующий / открыть панель поиска",
+search: "поиск",
+replace: "замена",
+replace_command: "заменить / открыть панель поиска",
+find_next: "найти следующее",
+replace_all: "заменить все",
+reg_exp: "регулярное выражение",
+match_case: "учитывать регистр",
+not_found: "не найдено.",
+occurrence_replaced: "вхождение заменено.",
+search_field_empty: "Поле поиска пустое",
+restart_search_at_begin: "Достигнут конец документа. Начинаю с начала.",
+move_popup: "переместить окно поиска",
+font_size: "--Размер шрифта--",
+go_to_line: "перейти к строке",
+go_to_line_prompt: "перейти к строке номер:",
+undo: "отменить",
+redo: "вернуть",
+change_smooth_selection: "включить/отключить некоторые функции просмотра (более красиво, но больше использует процессор)",
+highlight: "переключить подсветку синтаксиса включена/выключена",
+reset_highlight: "восстановить подсветку (если разсинхронизирована от текста)",
+word_wrap: "toggle word wrapping mode",
+help: "о программе",
+save: "сохранить",
+load: "загрузить",
+line_abbr: "Стр",
+char_abbr: "Стлб",
+position: "Позиция",
+total: "Всего",
+close_popup: "закрыть всплывающее окно",
+shortcuts: "Горячие клавиши",
+add_tab: "добавить табуляцию в текст",
+remove_tab: "убрать табуляцию из текста",
+about_notice: "Внимание: функция подсветки синтаксиса только для небольших текстов",
+toggle: "Переключить редактор",
+accesskey: "Горячая клавиша",
+tab: "Tab",
+shift: "Shift",
+ctrl: "Ctrl",
+esc: "Esc",
+processing: "Обработка...",
+fullscreen: "полный экран",
+syntax_selection: "--Синтакс--",
+close_tab: "Закрыть файл"
+};
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/sk.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/sk.js
new file mode 100644
index 0000000..c0b95c3
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/sk.js
@@ -0,0 +1,48 @@
+editAreaLoader.lang["sk"]={
+new_document: "nový prázdy dokument",
+search_button: "vyhľadaj a nahraď",
+search_command: "hľadaj ďalsšie / otvor vyhľadávacie pole",
+search: "hľadaj",
+replace: "nahraď",
+replace_command: "nahraď / otvor vyhľadávacie pole",
+find_next: "nájdi ďalšie",
+replace_all: "nahraď všetko",
+reg_exp: "platné výrazy",
+match_case: "zhodujúce sa výrazy",
+not_found: "nenájdené.",
+occurrence_replaced: "výskyty nahradené.",
+search_field_empty: "Pole vyhľadávanie je prádzne",
+restart_search_at_begin: "End of area reached. Restart at begin.",
+move_popup: "presuň vyhľadávacie okno",
+font_size: "--Veľkosť textu--",
+go_to_line: "prejdi na riadok",
+go_to_line_prompt: "prejdi na riadok:",
+undo: "krok späť",
+redo: "prepracovať",
+change_smooth_selection: "povoliť/zamietnúť niektoré zo zobrazených funkcií (účelnejšie zobrazenie vyžaduje väčšie zaťaženie procesora CPU)",
+highlight: "prepnúť zvýrazňovanie syntaxe zap/vyp",
+reset_highlight: "zrušiť zvýrazňovanie (ak je nesynchronizované s textom)",
+word_wrap: "toggle word wrapping mode",
+help: "o programe",
+save: "uložiť",
+load: "načítať",
+line_abbr: "Ln",
+char_abbr: "Ch",
+position: "Pozícia",
+total: "Spolu",
+close_popup: "zavrieť okno",
+shortcuts: "Skratky",
+add_tab: "pridať tabulovanie textu",
+remove_tab: "odstrániť tabulovanie textu",
+about_notice: "Upozornenie: funkcia zvýrazňovania syntaxe je dostupná iba pre malý text",
+toggle: "Prepnúť editor",
+accesskey: "Accesskey",
+tab: "Záložka",
+shift: "Shift",
+ctrl: "Ctrl",
+esc: "Esc",
+processing: "Spracúvam...",
+fullscreen: "cel=a obrazovka",
+syntax_selection: "--Vyber Syntax--",
+close_tab: "Close file"
+};
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/zh.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/zh.js
new file mode 100644
index 0000000..e51c532
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/langs/zh.js
@@ -0,0 +1,48 @@
+editAreaLoader.lang["zh"]={
+new_document: "新建空白文档",
+search_button: "查找与替换",
+search_command: "查找下一个 / 打开查找框",
+search: "查找",
+replace: "替换",
+replace_command: "替换 / 打开查找框",
+find_next: "查找下一个",
+replace_all: "全部替换",
+reg_exp: "正则表达式",
+match_case: "匹配大小写",
+not_found: "未找到.",
+occurrence_replaced: "处被替换.",
+search_field_empty: "查找框没有内容",
+restart_search_at_begin: "已到到文档末尾. 从头重新查找.",
+move_popup: "移动查找对话框",
+font_size: "--字体大小--",
+go_to_line: "转到行",
+go_to_line_prompt: "转到行:",
+undo: "恢复",
+redo: "重做",
+change_smooth_selection: "启用/禁止一些显示特性(更好看但更耗费资源)",
+highlight: "启用/禁止语法高亮",
+reset_highlight: "重置语法高亮(当文本显示不同步时)",
+word_wrap: "toggle word wrapping mode",
+help: "关于",
+save: "保存",
+load: "加载",
+line_abbr: "行",
+char_abbr: "字符",
+position: "位置",
+total: "总计",
+close_popup: "关闭对话框",
+shortcuts: "快捷键",
+add_tab: "添加制表符(Tab)",
+remove_tab: "移除制表符(Tab)",
+about_notice: "注意:语法高亮功能仅用于较少内容的文本(文件内容太大会导致浏览器反应慢)",
+toggle: "切换编辑器",
+accesskey: "快捷键",
+tab: "Tab",
+shift: "Shift",
+ctrl: "Ctrl",
+esc: "Esc",
+processing: "正在处理中...",
+fullscreen: "全屏编辑",
+syntax_selection: "--语法--",
+close_tab: "关闭文件"
+};
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/license_apache.txt b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/license_apache.txt
new file mode 100644
index 0000000..3831171
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/license_apache.txt
@@ -0,0 +1,7 @@
+Copyright 2008 Christophe Dolivet
+
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. \ No newline at end of file
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/basic.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/basic.js
new file mode 100644
index 0000000..96ccc5b
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/basic.js
@@ -0,0 +1,70 @@
+editAreaLoader.load_syntax["basic"] = {
+ 'DISPLAY_NAME' : 'Basic'
+ ,'COMMENT_SINGLE' : {1 : "'", 2 : 'rem'}
+ ,'COMMENT_MULTI' : { }
+ ,'QUOTEMARKS' : {1: '"'}
+ ,'KEYWORD_CASE_SENSITIVE' : false
+ ,'KEYWORDS' : {
+ 'statements' : [
+ 'if','then','for','wend','while',
+ 'else','elseif','select','case','end select',
+ 'until','next','step','to','end if', 'call'
+ ]
+ ,'keywords' : [
+ 'sub', 'end sub', 'function', 'end function', 'exit',
+ 'exit function', 'dim', 'redim', 'shared', 'const',
+ 'is', 'absolute', 'access', 'any', 'append', 'as',
+ 'base', 'beep', 'binary', 'bload', 'bsave', 'chain',
+ 'chdir', 'circle', 'clear', 'close', 'cls', 'color',
+ 'com', 'common', 'data', 'date', 'declare', 'def',
+ 'defdbl', 'defint', 'deflng', 'defsng', 'defstr',
+ 'double', 'draw', 'environ', 'erase', 'error', 'field',
+ 'files', 'fn', 'get', 'gosub', 'goto', 'integer', 'key',
+ 'kill', 'let', 'line', 'list', 'locate', 'lock', 'long',
+ 'lprint', 'lset', 'mkdir', 'name', 'off', 'on', 'open',
+ 'option', 'out', 'output', 'paint', 'palette', 'pcopy',
+ 'poke', 'preset', 'print', 'pset', 'put', 'random',
+ 'randomize', 'read', 'reset', 'restore', 'resume',
+ 'return', 'rmdir', 'rset', 'run', 'screen', 'seg',
+ 'shell', 'single', 'sleep', 'sound', 'static', 'stop',
+ 'strig', 'string', 'swap', 'system', 'time', 'timer',
+ 'troff', 'tron', 'type', 'unlock', 'using', 'view',
+ 'wait', 'width', 'window', 'write'
+ ]
+ ,'functions' : [
+ 'abs', 'asc', 'atn', 'cdbl', 'chr', 'cint', 'clng',
+ 'cos', 'csng', 'csrlin', 'cvd', 'cvdmbf', 'cvi', 'cvl',
+ 'cvs', 'cvsmbf', 'eof', 'erdev', 'erl', 'err', 'exp',
+ 'fileattr', 'fix', 'fre', 'freefile', 'hex', 'inkey',
+ 'inp', 'input', 'instr', 'int', 'ioctl', 'lbound',
+ 'lcase', 'left', 'len', 'loc', 'lof', 'log', 'lpos',
+ 'ltrim', 'mid', 'mkd', 'mkdmbf', 'mki', 'mkl', 'mks',
+ 'mksmbf', 'oct', 'peek', 'pen', 'play', 'pmap', 'point',
+ 'pos', 'right', 'rnd', 'rtrim', 'seek', 'sgn', 'sin',
+ 'space', 'spc', 'sqr', 'stick', 'str', 'tab', 'tan',
+ 'ubound', 'ucase', 'val', 'varptr', 'varseg'
+ ]
+ ,'operators' : [
+ 'and', 'eqv', 'imp', 'mod', 'not', 'or', 'xor'
+ ]
+ }
+ ,'OPERATORS' :[
+ '+', '-', '/', '*', '=', '<', '>', '!', '&'
+ ]
+ ,'DELIMITERS' :[
+ '(', ')', '[', ']', '{', '}'
+ ]
+ ,'STYLES' : {
+ 'COMMENTS': 'color: #99CC00;'
+ ,'QUOTESMARKS': 'color: #333399;'
+ ,'KEYWORDS' : {
+ 'keywords' : 'color: #3366FF;'
+ ,'functions' : 'color: #0000FF;'
+ ,'statements' : 'color: #3366FF;'
+ ,'operators' : 'color: #FF0000;'
+ }
+ ,'OPERATORS' : 'color: #FF0000;'
+ ,'DELIMITERS' : 'color: #0000FF;'
+
+ }
+};
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/brainfuck.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/brainfuck.js
new file mode 100644
index 0000000..e6306b0
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/brainfuck.js
@@ -0,0 +1,45 @@
+editAreaLoader.load_syntax["brainfuck"] = {
+ 'DISPLAY_NAME' : 'Brainfuck'
+ ,'COMMENT_SINGLE' : {}
+ ,'COMMENT_MULTI' : {}
+ ,'QUOTEMARKS' : {}
+ ,'KEYWORD_CASE_SENSITIVE' : true
+ ,'OPERATORS' :[
+ '+', '-'
+ ]
+ ,'DELIMITERS' :[
+ '[', ']'
+ ]
+ ,'REGEXPS' : {
+ 'bfispis' : {
+ 'search' : '()(\\.)()'
+ ,'class' : 'bfispis'
+ ,'modifiers' : 'g'
+ ,'execute' : 'before'
+ }
+ ,'bfupis' : {
+ 'search' : '()(\\,)()'
+ ,'class' : 'bfupis'
+ ,'modifiers' : 'g'
+ ,'execute' : 'before'
+ }
+ ,'bfmemory' : {
+ 'search' : '()([<>])()'
+ ,'class' : 'bfmemory'
+ ,'modifiers' : 'g'
+ ,'execute' : 'before'
+ }
+ }
+ ,'STYLES' : {
+ 'COMMENTS': 'color: #AAAAAA;'
+ ,'QUOTESMARKS': 'color: #6381F8;'
+ ,'OPERATORS' : 'color: #88AA00;'
+ ,'DELIMITERS' : 'color: #00C138;'
+ ,'REGEXPS' : {
+ 'bfispis' : 'color: #EE0000;'
+ ,'bfupis' : 'color: #4455ee;'
+ ,'bfmemory' : 'color: #DD00DD;'
+ }
+ }
+};
+
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/c.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/c.js
new file mode 100644
index 0000000..05d978c
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/c.js
@@ -0,0 +1,63 @@
+editAreaLoader.load_syntax["c"] = {
+ 'DISPLAY_NAME' : 'C'
+ ,'COMMENT_SINGLE' : {1 : '//'}
+ ,'COMMENT_MULTI' : {'/*' : '*/'}
+ ,'QUOTEMARKS' : {1: "'", 2: '"'}
+ ,'KEYWORD_CASE_SENSITIVE' : true
+ ,'KEYWORDS' : {
+ 'constants' : [
+ 'NULL', 'false', 'stdin', 'stdout', 'stderr', 'true'
+ ]
+ ,'types' : [
+ 'FILE', 'auto', 'char', 'const', 'double',
+ 'extern', 'float', 'inline', 'int', 'long', 'register',
+ 'short', 'signed', 'size_t', 'static', 'struct',
+ 'time_t', 'typedef', 'union', 'unsigned', 'void',
+ 'volatile'
+ ]
+ ,'statements' : [
+ 'do', 'else', 'enum', 'for', 'goto', 'if', 'sizeof',
+ 'switch', 'while'
+ ]
+ ,'keywords' : [
+ 'break', 'case', 'continue', 'default', 'delete',
+ 'return'
+ ]
+ }
+ ,'OPERATORS' :[
+ '+', '-', '/', '*', '=', '<', '>', '%', '!', '?', ':', '&'
+ ]
+ ,'DELIMITERS' :[
+ '(', ')', '[', ']', '{', '}'
+ ]
+ ,'REGEXPS' : {
+ 'precompiler' : {
+ 'search' : '()(#[^\r\n]*)()'
+ ,'class' : 'precompiler'
+ ,'modifiers' : 'g'
+ ,'execute' : 'before'
+ }
+/* ,'precompilerstring' : {
+ 'search' : '(#[\t ]*include[\t ]*)([^\r\n]*)([^\r\n]*[\r\n])'
+ ,'class' : 'precompilerstring'
+ ,'modifiers' : 'g'
+ ,'execute' : 'before'
+ }*/
+ }
+ ,'STYLES' : {
+ 'COMMENTS': 'color: #AAAAAA;'
+ ,'QUOTESMARKS': 'color: #6381F8;'
+ ,'KEYWORDS' : {
+ 'constants' : 'color: #EE0000;'
+ ,'types' : 'color: #0000EE;'
+ ,'statements' : 'color: #60CA00;'
+ ,'keywords' : 'color: #48BDDF;'
+ }
+ ,'OPERATORS' : 'color: #FF00FF;'
+ ,'DELIMITERS' : 'color: #0038E1;'
+ ,'REGEXPS' : {
+ 'precompiler' : 'color: #009900;'
+ ,'precompilerstring' : 'color: #994400;'
+ }
+ }
+};
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/coldfusion.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/coldfusion.js
new file mode 100644
index 0000000..d70657f
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/coldfusion.js
@@ -0,0 +1,120 @@
+editAreaLoader.load_syntax["coldfusion"] = {
+ 'DISPLAY_NAME' : 'Coldfusion'
+ ,'COMMENT_SINGLE' : {1 : '//', 2 : '#'}
+ ,'COMMENT_MULTI' : {'<!--' : '-->'}
+ ,'COMMENT_MULTI2' : {'<!---' : '--->'}
+ ,'QUOTEMARKS' : {1: "'", 2: '"'}
+ ,'KEYWORD_CASE_SENSITIVE' : false
+ ,'KEYWORDS' : {
+ 'statements' : [
+ 'include', 'require', 'include_once', 'require_once',
+ 'for', 'foreach', 'as', 'if', 'elseif', 'else', 'while', 'do', 'endwhile',
+ 'endif', 'switch', 'case', 'endswitch',
+ 'return', 'break', 'continue'
+ ]
+ ,'reserved' : [
+ 'AND', 'break', 'case', 'CONTAIN', 'CONTAINS', 'continue', 'default', 'do',
+ 'DOES', 'else', 'EQ', 'EQUAL', 'EQUALTO', 'EQV', 'FALSE', 'for', 'GE',
+ 'GREATER', 'GT', 'GTE', 'if', 'IMP', 'in', 'IS', 'LE', 'LESS', 'LT', 'LTE',
+ 'MOD', 'NEQ', 'NOT', 'OR', 'return', 'switch', 'THAN', 'TO', 'TRUE', 'var',
+ 'while', 'XOR'
+ ]
+ ,'functions' : [
+ 'Abs', 'ACos', 'ArrayAppend', 'ArrayAvg', 'ArrayClear', 'ArrayDeleteAt', 'ArrayInsertAt',
+ 'ArrayIsEmpty', 'ArrayLen', 'ArrayMax', 'ArrayMin', 'ArrayNew', 'ArrayPrepend', 'ArrayResize',
+ 'ArraySet', 'ArraySort', 'ArraySum', 'ArraySwap', 'ArrayToList', 'Asc', 'ASin', 'Atn', 'AuthenticatedContext',
+ 'AuthenticatedUser', 'BitAnd', 'BitMaskClear', 'BitMaskRead', 'BitMaskSet', 'BitNot', 'BitOr',
+ 'BitSHLN', 'BitSHRN', 'BitXor', 'Ceiling', 'Chr', 'CJustify', 'Compare', 'CompareNoCase', 'Cos',
+ 'CreateDate', 'CreateDateTime', 'CreateODBCDate', 'CreateODBCDateTime', 'CreateODBCTime',
+ 'CreateTime', 'CreateTimeSpan', 'DateAdd', 'DateCompare', 'DateConvert', 'DateDiff',
+ 'DateFormat', 'DatePart', 'Day', 'DayOfWeek', 'DayOfWeekAsString', 'DayOfYear', 'DaysInMonth',
+ 'DaysInYear', 'DE', 'DecimalFormat', 'DecrementValue', 'Decrypt', 'DeleteClientVariable',
+ 'DirectoryExists', 'DollarFormat', 'Duplicate', 'Encrypt', 'Evaluate', 'Exp', 'ExpandPath',
+ 'FileExists', 'Find', 'FindNoCase', 'FindOneOf', 'FirstDayOfMonth', 'Fix', 'FormatBaseN',
+ 'GetBaseTagData', 'GetBaseTagList', 'GetBaseTemplatePath', 'GetClientVariablesList',
+ 'GetCurrentTemplatePath', 'GetDirectoryFromPath', 'GetException', 'GetFileFromPath',
+ 'GetFunctionList', 'GetHttpTimeString', 'GetHttpRequestData', 'GetLocale', 'GetMetricData',
+ 'GetProfileString', 'GetTempDirectory', 'GetTempFile', 'GetTemplatePath', 'GetTickCount',
+ 'GetTimeZoneInfo', 'GetToken', 'Hash', 'Hour', 'HTMLCodeFormat', 'HTMLEditFormat', 'IIf',
+ 'IncrementValue', 'InputBaseN', 'Insert', 'Int', 'IsArray', 'IsAuthenticated', 'IsAuthorized',
+ 'IsBoolean', 'IsBinary', 'IsCustomFunction', 'IsDate', 'IsDebugMode', 'IsDefined', 'IsLeapYear',
+ 'IsNumeric', 'IsNumericDate', 'IsProtected', 'IsQuery', 'IsSimpleValue', 'IsStruct', 'IsWDDX',
+ 'JavaCast', 'JSStringFormat', 'LCase', 'Left', 'Len', 'ListAppend', 'ListChangeDelims',
+ 'ListContains', 'ListContainsNoCase', 'ListDeleteAt', 'ListFind', 'ListFindNoCase', 'ListFirst',
+ 'ListGetAt', 'ListInsertAt', 'ListLast', 'ListLen', 'ListPrepend', 'ListQualify', 'ListRest',
+ 'ListSetAt', 'ListSort', 'ListToArray', 'ListValueCount', 'ListValueCountNoCase', 'LJustify',
+ 'Log', 'Log10', 'LSCurrencyFormat', 'LSDateFormat', 'LSEuroCurrencyFormat', 'LSIsCurrency',
+ 'LSIsDate', 'LSIsNumeric', 'LSNumberFormat', 'LSParseCurrency', 'LSParseDateTime', 'LSParseNumber',
+ 'LSTimeFormat', 'LTrim', 'Max', 'Mid', 'Min', 'Minute', 'Month', 'MonthAsString', 'Now', 'NumberFormat',
+ 'ParagraphFormat', 'ParameterExists', 'ParseDateTime', 'Pi', 'PreserveSingleQuotes', 'Quarter',
+ 'QueryAddRow', 'QueryNew', 'QuerySetCell', 'QuotedValueList', 'Rand', 'Randomize', 'RandRange',
+ 'REFind', 'REFindNoCase', 'RemoveChars', 'RepeatString', 'Replace', 'ReplaceList', 'ReplaceNoCase',
+ 'REReplace', 'REReplaceNoCase', 'Reverse', 'Right', 'RJustify', 'Round', 'RTrim', 'Second', 'SetLocale',
+ 'SetProfileString', 'SetVariable', 'Sgn', 'Sin', 'SpanExcluding', 'SpanIncluding', 'Sqr', 'StripCR',
+ 'StructAppend', 'StructClear', 'StructCopy', 'StructCount', 'StructDelete', 'StructFind', 'StructFindKey',
+ 'StructFindValue', 'StructGet', 'StructInsert', 'StructIsEmpty', 'StructKeyArray', 'StructKeyExists',
+ 'StructKeyList', 'StructNew', 'StructSort', 'StructUpdate', 'Tan', 'TimeFormat', 'ToBase64', 'ToBinary',
+ 'ToString', 'Trim', 'UCase', 'URLDecode', 'URLEncodedFormat', 'Val', 'ValueList', 'Week', 'WriteOutput',
+ 'XMLFormat', 'Year', 'YesNoFormat'
+ ]
+ }
+ ,'OPERATORS' :[
+ '+', '-', '/', '*', '%', '!', '&&', '||'
+ ]
+ ,'DELIMITERS' :[
+ '(', ')', '[', ']', '{', '}'
+ ]
+ ,'REGEXPS' : {
+ 'doctype' : {
+ 'search' : '()(<!DOCTYPE[^>]*>)()'
+ ,'class' : 'doctype'
+ ,'modifiers' : ''
+ ,'execute' : 'before' // before or after
+ }
+ ,'cftags' : {
+ 'search' : '(<)(/cf[a-z][^ \r\n\t>]*)([^>]*>)'
+ ,'class' : 'cftags'
+ ,'modifiers' : 'gi'
+ ,'execute' : 'before' // before or after
+ }
+ ,'cftags2' : {
+ 'search' : '(<)(cf[a-z][^ \r\n\t>]*)([^>]*>)'
+ ,'class' : 'cftags2'
+ ,'modifiers' : 'gi'
+ ,'execute' : 'before' // before or after
+ }
+ ,'tags' : {
+ 'search' : '(<)(/?[a-z][^ \r\n\t>]*)([^>]*>)'
+ ,'class' : 'tags'
+ ,'modifiers' : 'gi'
+ ,'execute' : 'before' // before or after
+ }
+ ,'attributes' : {
+ 'search' : '( |\n|\r|\t)([^ \r\n\t=]+)(=)'
+ ,'class' : 'attributes'
+ ,'modifiers' : 'g'
+ ,'execute' : 'before' // before or after
+ }
+ }
+ ,'STYLES' : {
+ 'COMMENTS': 'color: #AAAAAA;'
+ ,'QUOTESMARKS': 'color: #6381F8;'
+ ,'KEYWORDS' : {
+ 'reserved' : 'color: #48BDDF;'
+ ,'functions' : 'color: #0000FF;'
+ ,'statements' : 'color: #60CA00;'
+ }
+ ,'OPERATORS' : 'color: #E775F0;'
+ ,'DELIMITERS' : ''
+ ,'REGEXPS' : {
+ 'attributes': 'color: #990033;'
+ ,'cftags': 'color: #990033;'
+ ,'cftags2': 'color: #990033;'
+ ,'tags': 'color: #000099;'
+ ,'doctype': 'color: #8DCFB5;'
+ ,'test': 'color: #00FF00;'
+ }
+ }
+};
+
+
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/cpp.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/cpp.js
new file mode 100644
index 0000000..98e6493
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/cpp.js
@@ -0,0 +1,66 @@
+editAreaLoader.load_syntax["cpp"] = {
+ 'DISPLAY_NAME' : 'CPP'
+ ,'COMMENT_SINGLE' : {1 : '//'}
+ ,'COMMENT_MULTI' : {'/*' : '*/'}
+ ,'QUOTEMARKS' : {1: "'", 2: '"'}
+ ,'KEYWORD_CASE_SENSITIVE' : true
+ ,'KEYWORDS' : {
+ 'constants' : [
+ 'NULL', 'false', 'std', 'stdin', 'stdout', 'stderr',
+ 'true'
+ ]
+ ,'types' : [
+ 'FILE', 'auto', 'char', 'class', 'const', 'double',
+ 'extern', 'float', 'friend', 'inline', 'int',
+ 'iterator', 'long', 'map', 'operator', 'queue',
+ 'register', 'short', 'signed', 'size_t', 'stack',
+ 'static', 'string', 'struct', 'time_t', 'typedef',
+ 'union', 'unsigned', 'vector', 'void', 'volatile'
+ ]
+ ,'statements' : [
+ 'catch', 'do', 'else', 'enum', 'for', 'goto', 'if',
+ 'sizeof', 'switch', 'this', 'throw', 'try', 'while'
+ ]
+ ,'keywords' : [
+ 'break', 'case', 'continue', 'default', 'delete',
+ 'namespace', 'new', 'private', 'protected', 'public',
+ 'return', 'using'
+ ]
+ }
+ ,'OPERATORS' :[
+ '+', '-', '/', '*', '=', '<', '>', '%', '!', '?', ':', '&'
+ ]
+ ,'DELIMITERS' :[
+ '(', ')', '[', ']', '{', '}'
+ ]
+ ,'REGEXPS' : {
+ 'precompiler' : {
+ 'search' : '()(#[^\r\n]*)()'
+ ,'class' : 'precompiler'
+ ,'modifiers' : 'g'
+ ,'execute' : 'before'
+ }
+/* ,'precompilerstring' : {
+ 'search' : '(#[\t ]*include[\t ]*)([^\r\n]*)([^\r\n]*[\r\n])'
+ ,'class' : 'precompilerstring'
+ ,'modifiers' : 'g'
+ ,'execute' : 'before'
+ }*/
+ }
+ ,'STYLES' : {
+ 'COMMENTS': 'color: #AAAAAA;'
+ ,'QUOTESMARKS': 'color: #6381F8;'
+ ,'KEYWORDS' : {
+ 'constants' : 'color: #EE0000;'
+ ,'types' : 'color: #0000EE;'
+ ,'statements' : 'color: #60CA00;'
+ ,'keywords' : 'color: #48BDDF;'
+ }
+ ,'OPERATORS' : 'color: #FF00FF;'
+ ,'DELIMITERS' : 'color: #0038E1;'
+ ,'REGEXPS' : {
+ 'precompiler' : 'color: #009900;'
+ ,'precompilerstring' : 'color: #994400;'
+ }
+ }
+};
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/css.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/css.js
new file mode 100644
index 0000000..cff605a
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/css.js
@@ -0,0 +1,85 @@
+editAreaLoader.load_syntax["css"] = {
+ 'DISPLAY_NAME' : 'CSS'
+ ,'COMMENT_SINGLE' : {1 : '@'}
+ ,'COMMENT_MULTI' : {'/*' : '*/'}
+ ,'QUOTEMARKS' : ['"', "'"]
+ ,'KEYWORD_CASE_SENSITIVE' : false
+ ,'KEYWORDS' : {
+ 'attributes' : [
+ 'aqua', 'azimuth', 'background-attachment', 'background-color',
+ 'background-image', 'background-position', 'background-repeat',
+ 'background', 'border-bottom-color', 'border-bottom-style',
+ 'border-bottom-width', 'border-left-color', 'border-left-style',
+ 'border-left-width', 'border-right', 'border-right-color',
+ 'border-right-style', 'border-right-width', 'border-top-color',
+ 'border-top-style', 'border-top-width','border-bottom', 'border-collapse',
+ 'border-left', 'border-width', 'border-color', 'border-spacing',
+ 'border-style', 'border-top', 'border', 'caption-side',
+ 'clear', 'clip', 'color', 'content', 'counter-increment', 'counter-reset',
+ 'cue-after', 'cue-before', 'cue', 'cursor', 'direction', 'display',
+ 'elevation', 'empty-cells', 'float', 'font-family', 'font-size',
+ 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant',
+ 'font-weight', 'font', 'height', 'letter-spacing', 'line-height',
+ 'list-style', 'list-style-image', 'list-style-position', 'list-style-type',
+ 'margin-bottom', 'margin-left', 'margin-right', 'margin-top', 'margin',
+ 'marker-offset', 'marks', 'max-height', 'max-width', 'min-height',
+ 'min-width', 'opacity', 'orphans', 'outline', 'outline-color', 'outline-style',
+ 'outline-width', 'overflow', 'padding-bottom', 'padding-left',
+ 'padding-right', 'padding-top', 'padding', 'page', 'page-break-after',
+ 'page-break-before', 'page-break-inside', 'pause-after', 'pause-before',
+ 'pause', 'pitch', 'pitch-range', 'play-during', 'position', 'quotes',
+ 'richness', 'right', 'size', 'speak-header', 'speak-numeral', 'speak-punctuation',
+ 'speak', 'speech-rate', 'stress', 'table-layout', 'text-align', 'text-decoration',
+ 'text-indent', 'text-shadow', 'text-transform', 'top', 'unicode-bidi',
+ 'vertical-align', 'visibility', 'voice-family', 'volume', 'white-space', 'widows',
+ 'width', 'word-spacing', 'z-index', 'bottom', 'left'
+ ]
+ ,'values' : [
+ 'above', 'absolute', 'always', 'armenian', 'aural', 'auto', 'avoid',
+ 'baseline', 'behind', 'below', 'bidi-override', 'black', 'blue', 'blink', 'block', 'bold', 'bolder', 'both',
+ 'capitalize', 'center-left', 'center-right', 'center', 'circle', 'cjk-ideographic',
+ 'close-quote', 'collapse', 'condensed', 'continuous', 'crop', 'crosshair', 'cross', 'cursive',
+ 'dashed', 'decimal-leading-zero', 'decimal', 'default', 'digits', 'disc', 'dotted', 'double',
+ 'e-resize', 'embed', 'extra-condensed', 'extra-expanded', 'expanded',
+ 'fantasy', 'far-left', 'far-right', 'faster', 'fast', 'fixed', 'fuchsia',
+ 'georgian', 'gray', 'green', 'groove', 'hebrew', 'help', 'hidden', 'hide', 'higher',
+ 'high', 'hiragana-iroha', 'hiragana', 'icon', 'inherit', 'inline-table', 'inline',
+ 'inset', 'inside', 'invert', 'italic', 'justify', 'katakana-iroha', 'katakana',
+ 'landscape', 'larger', 'large', 'left-side', 'leftwards', 'level', 'lighter', 'lime', 'line-through', 'list-item', 'loud', 'lower-alpha', 'lower-greek', 'lower-roman', 'lowercase', 'ltr', 'lower', 'low',
+ 'maroon', 'medium', 'message-box', 'middle', 'mix', 'monospace',
+ 'n-resize', 'narrower', 'navy', 'ne-resize', 'no-close-quote', 'no-open-quote', 'no-repeat', 'none', 'normal', 'nowrap', 'nw-resize',
+ 'oblique', 'olive', 'once', 'open-quote', 'outset', 'outside', 'overline',
+ 'pointer', 'portrait', 'purple', 'px',
+ 'red', 'relative', 'repeat-x', 'repeat-y', 'repeat', 'rgb', 'ridge', 'right-side', 'rightwards',
+ 's-resize', 'sans-serif', 'scroll', 'se-resize', 'semi-condensed', 'semi-expanded', 'separate', 'serif', 'show', 'silent', 'silver', 'slow', 'slower', 'small-caps', 'small-caption', 'smaller', 'soft', 'solid', 'spell-out', 'square',
+ 'static', 'status-bar', 'super', 'sw-resize',
+ 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row', 'table-row-group', 'teal', 'text', 'text-bottom', 'text-top', 'thick', 'thin', 'transparent',
+ 'ultra-condensed', 'ultra-expanded', 'underline', 'upper-alpha', 'upper-latin', 'upper-roman', 'uppercase', 'url',
+ 'visible',
+ 'w-resize', 'wait', 'white', 'wider',
+ 'x-fast', 'x-high', 'x-large', 'x-loud', 'x-low', 'x-small', 'x-soft', 'xx-large', 'xx-small',
+ 'yellow', 'yes'
+ ]
+ ,'specials' : [
+ 'important'
+ ]
+ }
+ ,'OPERATORS' :[
+ ':', ';', '!', '.', '#'
+ ]
+ ,'DELIMITERS' :[
+ '{', '}'
+ ]
+ ,'STYLES' : {
+ 'COMMENTS': 'color: #AAAAAA;'
+ ,'QUOTESMARKS': 'color: #6381F8;'
+ ,'KEYWORDS' : {
+ 'attributes' : 'color: #48BDDF;'
+ ,'values' : 'color: #2B60FF;'
+ ,'specials' : 'color: #FF0000;'
+ }
+ ,'OPERATORS' : 'color: #FF00FF;'
+ ,'DELIMITERS' : 'color: #60CA00;'
+
+ }
+};
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/html.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/html.js
new file mode 100644
index 0000000..66490b1
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/html.js
@@ -0,0 +1,51 @@
+/*
+* last update: 2006-08-24
+*/
+
+editAreaLoader.load_syntax["html"] = {
+ 'DISPLAY_NAME' : 'HTML'
+ ,'COMMENT_SINGLE' : {}
+ ,'COMMENT_MULTI' : {'<!--' : '-->'}
+ ,'QUOTEMARKS' : {1: "'", 2: '"'}
+ ,'KEYWORD_CASE_SENSITIVE' : false
+ ,'KEYWORDS' : {
+ }
+ ,'OPERATORS' :[
+ ]
+ ,'DELIMITERS' :[
+ ]
+ ,'REGEXPS' : {
+ 'doctype' : {
+ 'search' : '()(<!DOCTYPE[^>]*>)()'
+ ,'class' : 'doctype'
+ ,'modifiers' : ''
+ ,'execute' : 'before' // before or after
+ }
+ ,'tags' : {
+ 'search' : '(<)(/?[a-z][^ \r\n\t>]*)([^>]*>)'
+ ,'class' : 'tags'
+ ,'modifiers' : 'gi'
+ ,'execute' : 'before' // before or after
+ }
+ ,'attributes' : {
+ 'search' : '( |\n|\r|\t)([^ \r\n\t=]+)(=)'
+ ,'class' : 'attributes'
+ ,'modifiers' : 'g'
+ ,'execute' : 'before' // before or after
+ }
+ }
+ ,'STYLES' : {
+ 'COMMENTS': 'color: #AAAAAA;'
+ ,'QUOTESMARKS': 'color: #6381F8;'
+ ,'KEYWORDS' : {
+ }
+ ,'OPERATORS' : 'color: #E775F0;'
+ ,'DELIMITERS' : ''
+ ,'REGEXPS' : {
+ 'attributes': 'color: #B1AC41;'
+ ,'tags': 'color: #E62253;'
+ ,'doctype': 'color: #8DCFB5;'
+ ,'test': 'color: #00FF00;'
+ }
+ }
+};
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/java.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/java.js
new file mode 100644
index 0000000..e14009b
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/java.js
@@ -0,0 +1,57 @@
+editAreaLoader.load_syntax["java"] = {
+ 'DISPLAY_NAME' : 'Java'
+ ,'COMMENT_SINGLE': { 1: '//', 2: '@' }
+ , 'COMMENT_MULTI': { '/*': '*/' }
+ , 'QUOTEMARKS': { 1: "'", 2: '"' }
+ , 'KEYWORD_CASE_SENSITIVE': true
+ , 'KEYWORDS': {
+ 'constants': [
+ 'null', 'false', 'true'
+ ]
+ , 'types': [
+ 'String', 'int', 'short', 'long', 'char', 'double', 'byte',
+ 'float', 'static', 'void', 'private', 'boolean', 'protected',
+ 'public', 'const', 'class', 'final', 'abstract', 'volatile',
+ 'enum', 'transient', 'interface'
+ ]
+ , 'statements': [
+ 'this', 'extends', 'if', 'do', 'while', 'try', 'catch', 'finally',
+ 'throw', 'throws', 'else', 'for', 'switch', 'continue', 'implements',
+ 'break', 'case', 'default', 'goto'
+ ]
+ , 'keywords': [
+ 'new', 'return', 'import', 'native', 'super', 'package', 'assert', 'synchronized',
+ 'instanceof', 'strictfp'
+ ]
+ }
+ , 'OPERATORS': [
+ '+', '-', '/', '*', '=', '<', '>', '%', '!', '?', ':', '&'
+ ]
+ , 'DELIMITERS': [
+ '(', ')', '[', ']', '{', '}'
+ ]
+ , 'REGEXPS': {
+ 'precompiler': {
+ 'search': '()(#[^\r\n]*)()'
+ , 'class': 'precompiler'
+ , 'modifiers': 'g'
+ , 'execute': 'before'
+ }
+ }
+ , 'STYLES': {
+ 'COMMENTS': 'color: #AAAAAA;'
+ , 'QUOTESMARKS': 'color: #6381F8;'
+ , 'KEYWORDS': {
+ 'constants': 'color: #EE0000;'
+ , 'types': 'color: #0000EE;'
+ , 'statements': 'color: #60CA00;'
+ , 'keywords': 'color: #48BDDF;'
+ }
+ , 'OPERATORS': 'color: #FF00FF;'
+ , 'DELIMITERS': 'color: #0038E1;'
+ , 'REGEXPS': {
+ 'precompiler': 'color: #009900;'
+ , 'precompilerstring': 'color: #994400;'
+ }
+ }
+};
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/js.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/js.js
new file mode 100644
index 0000000..556566b
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/js.js
@@ -0,0 +1,94 @@
+editAreaLoader.load_syntax["js"] = {
+ 'DISPLAY_NAME' : 'Javascript'
+ ,'COMMENT_SINGLE' : {1 : '//'}
+ ,'COMMENT_MULTI' : {'/*' : '*/'}
+ ,'QUOTEMARKS' : {1: "'", 2: '"'}
+ ,'KEYWORD_CASE_SENSITIVE' : false
+ ,'KEYWORDS' : {
+ 'statements' : [
+ 'as', 'break', 'case', 'catch', 'continue', 'decodeURI', 'delete', 'do',
+ 'else', 'encodeURI', 'eval', 'finally', 'for', 'if', 'in', 'is', 'item',
+ 'instanceof', 'return', 'switch', 'this', 'throw', 'try', 'typeof', 'void',
+ 'while', 'write', 'with'
+ ]
+ ,'keywords' : [
+ 'class', 'const', 'default', 'debugger', 'export', 'extends', 'false',
+ 'function', 'import', 'namespace', 'new', 'null', 'package', 'private',
+ 'protected', 'public', 'super', 'true', 'use', 'var', 'window', 'document',
+ // the list below must be sorted and checked (if it is a keywords or a function and if it is not present twice
+ 'Link ', 'outerHeight ', 'Anchor', 'FileUpload',
+ 'location', 'outerWidth', 'Select', 'Area', 'find', 'Location', 'Packages', 'self',
+ 'arguments', 'locationbar', 'pageXoffset', 'Form',
+ 'Math', 'pageYoffset', 'setTimeout', 'assign', 'Frame', 'menubar', 'parent', 'status',
+ 'blur', 'frames', 'MimeType', 'parseFloat', 'statusbar', 'Boolean', 'Function', 'moveBy',
+ 'parseInt', 'stop', 'Button', 'getClass', 'moveTo', 'Password', 'String', 'callee', 'Hidden',
+ 'name', 'personalbar', 'Submit', 'caller', 'history', 'NaN', 'Plugin', 'sun', 'captureEvents',
+ 'History', 'navigate', 'print', 'taint', 'Checkbox', 'home', 'navigator', 'prompt', 'Text',
+ 'Image', 'Navigator', 'prototype', 'Textarea', 'clearTimeout', 'Infinity',
+ 'netscape', 'Radio', 'toolbar', 'close', 'innerHeight', 'Number', 'ref', 'top', 'closed',
+ 'innerWidth', 'Object', 'RegExp', 'toString', 'confirm', 'isFinite', 'onBlur', 'releaseEvents',
+ 'unescape', 'constructor', 'isNan', 'onError', 'Reset', 'untaint', 'Date', 'java', 'onFocus',
+ 'resizeBy', 'unwatch', 'defaultStatus', 'JavaArray', 'onLoad', 'resizeTo', 'valueOf', 'document',
+ 'JavaClass', 'onUnload', 'routeEvent', 'watch', 'Document', 'JavaObject', 'open', 'scroll', 'window',
+ 'Element', 'JavaPackage', 'opener', 'scrollbars', 'Window', 'escape', 'length', 'Option', 'scrollBy'
+ ]
+ ,'functions' : [
+ // common functions for Window object
+ 'alert', 'Array', 'back', 'blur', 'clearInterval', 'close', 'confirm', 'eval ', 'focus', 'forward', 'home',
+ 'name', 'navigate', 'onblur', 'onerror', 'onfocus', 'onload', 'onmove',
+ 'onresize', 'onunload', 'open', 'print', 'prompt', 'scroll', 'scrollTo', 'setInterval', 'status',
+ 'stop'
+ ]
+ }
+ ,'OPERATORS' :[
+ '+', '-', '/', '*', '=', '<', '>', '%', '!'
+ ]
+ ,'DELIMITERS' :[
+ '(', ')', '[', ']', '{', '}'
+ ]
+ ,'STYLES' : {
+ 'COMMENTS': 'color: #AAAAAA;'
+ ,'QUOTESMARKS': 'color: #6381F8;'
+ ,'KEYWORDS' : {
+ 'statements' : 'color: #60CA00;'
+ ,'keywords' : 'color: #48BDDF;'
+ ,'functions' : 'color: #2B60FF;'
+ }
+ ,'OPERATORS' : 'color: #FF00FF;'
+ ,'DELIMITERS' : 'color: #0038E1;'
+
+ }
+ ,'AUTO_COMPLETION' : {
+ "default": { // the name of this definition group. It's posisble to have different rules inside the same definition file
+ "REGEXP": { "before_word": "[^a-zA-Z0-9_]|^" // \\s|\\.|
+ ,"possible_words_letters": "[a-zA-Z0-9_]+"
+ ,"letter_after_word_must_match": "[^a-zA-Z0-9_]|$"
+ ,"prefix_separator": "\\."
+ }
+ ,"CASE_SENSITIVE": true
+ ,"MAX_TEXT_LENGTH": 100 // the maximum length of the text being analyzed before the cursor position
+ ,"KEYWORDS": {
+ '': [ // the prefix of thoses items
+ /**
+ * 0 : the keyword the user is typing
+ * 1 : (optionnal) the string inserted in code ("{@}" being the new position of the cursor, "§" beeing the equivalent to the value the typed string indicated if the previous )
+ * If empty the keyword will be displayed
+ * 2 : (optionnal) the text that appear in the suggestion box (if empty, the string to insert will be displayed)
+ */
+ ['Array', '§()', '']
+ ,['alert', '§({@})', 'alert(String message)']
+ ,['document']
+ ,['window']
+ ]
+ ,'window' : [
+ ['location']
+ ,['document']
+ ,['scrollTo', 'scrollTo({@})', 'scrollTo(Int x,Int y)']
+ ]
+ ,'location' : [
+ ['href']
+ ]
+ }
+ }
+ }
+};
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/pas.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/pas.js
new file mode 100644
index 0000000..26fb748
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/pas.js
@@ -0,0 +1,83 @@
+editAreaLoader.load_syntax["pas"] = {
+ 'DISPLAY_NAME' : 'Pascal'
+ ,'COMMENT_SINGLE' : {}
+ ,'COMMENT_MULTI' : {'{' : '}', '(*':'*)'}
+ ,'QUOTEMARKS' : {1: '"', 2: "'"}
+ ,'KEYWORD_CASE_SENSITIVE' : false
+ ,'KEYWORDS' : {
+ 'constants' : [
+ 'Blink', 'Black', 'Blue', 'Green', 'Cyan', 'Red',
+ 'Magenta', 'Brown', 'LightGray', 'DarkGray',
+ 'LightBlue', 'LightGreen', 'LightCyan', 'LightRed',
+ 'LightMagenta', 'Yellow', 'White', 'MaxSIntValue',
+ 'MaxUIntValue', 'maxint', 'maxLongint', 'maxSmallint',
+ 'erroraddr', 'errorcode', 'LineEnding'
+ ]
+ ,'keywords' : [
+ 'in', 'or', 'div', 'mod', 'and', 'shl', 'shr', 'xor',
+ 'pow', 'is', 'not','Absolute', 'And_then', 'Array',
+ 'Begin', 'Bindable', 'Case', 'Const', 'Do', 'Downto',
+ 'Else', 'End', 'Export', 'File', 'For', 'Function',
+ 'Goto', 'If', 'Import', 'Implementation', 'Inherited',
+ 'Inline', 'Interface', 'Label', 'Module', 'Nil',
+ 'Object', 'Of', 'Only', 'Operator', 'Or_else',
+ 'Otherwise', 'Packed', 'Procedure', 'Program',
+ 'Protected', 'Qualified', 'Record', 'Repeat',
+ 'Restricted', 'Set', 'Then', 'To', 'Type', 'Unit',
+ 'Until', 'Uses', 'Value', 'Var', 'Virtual', 'While',
+ 'With'
+ ]
+ ,'functions' : [
+ 'Abs', 'Addr', 'Append', 'Arctan', 'Assert', 'Assign',
+ 'Assigned', 'BinStr', 'Blockread', 'Blockwrite',
+ 'Break', 'Chdir', 'Chr', 'Close', 'CompareByte',
+ 'CompareChar', 'CompareDWord', 'CompareWord', 'Concat',
+ 'Continue', 'Copy', 'Cos', 'CSeg', 'Dec', 'Delete',
+ 'Dispose', 'DSeg', 'Eof', 'Eoln', 'Erase', 'Exclude',
+ 'Exit', 'Exp', 'Filepos', 'Filesize', 'FillByte',
+ 'Fillchar', 'FillDWord', 'Fillword', 'Flush', 'Frac',
+ 'Freemem', 'Getdir', 'Getmem', 'GetMemoryManager',
+ 'Halt', 'HexStr', 'Hi', 'High', 'Inc', 'Include',
+ 'IndexByte', 'IndexChar', 'IndexDWord', 'IndexWord',
+ 'Insert', 'IsMemoryManagerSet', 'Int', 'IOresult',
+ 'Length', 'Ln', 'Lo', 'LongJmp', 'Low', 'Lowercase',
+ 'Mark', 'Maxavail', 'Memavail', 'Mkdir', 'Move',
+ 'MoveChar0', 'New', 'Odd', 'OctStr', 'Ofs', 'Ord',
+ 'Paramcount', 'Paramstr', 'Pi', 'Pos', 'Power', 'Pred',
+ 'Ptr', 'Random', 'Randomize', 'Read', 'Readln',
+ 'Real2Double', 'Release', 'Rename', 'Reset', 'Rewrite',
+ 'Rmdir', 'Round', 'Runerror', 'Seek', 'SeekEof',
+ 'SeekEoln', 'Seg', 'SetMemoryManager', 'SetJmp',
+ 'SetLength', 'SetString', 'SetTextBuf', 'Sin', 'SizeOf',
+ 'Sptr', 'Sqr', 'Sqrt', 'SSeg', 'Str', 'StringOfChar',
+ 'Succ', 'Swap', 'Trunc', 'Truncate', 'Upcase', 'Val',
+ 'Write', 'WriteLn'
+ ]
+ ,'types' : [
+ 'Integer', 'Shortint', 'SmallInt', 'Longint',
+ 'Longword', 'Int64', 'Byte', 'Word', 'Cardinal',
+ 'QWord', 'Boolean', 'ByteBool', 'LongBool', 'Char',
+ 'Real', 'Single', 'Double', 'Extended', 'Comp',
+ 'String', 'ShortString', 'AnsiString', 'PChar'
+ ]
+ }
+ ,'OPERATORS' :[
+ '@', '*', '+', '-', '/', '^', ':=', '<', '=', '>'
+ ]
+ ,'DELIMITERS' :[
+ '(', ')', '[', ']'
+ ]
+ ,'STYLES' : {
+ 'COMMENTS': 'color: #AAAAAA;'
+ ,'QUOTESMARKS': 'color: #6381F8;'
+ ,'KEYWORDS' : {
+ 'specials' : 'color: #EE0000;'
+ ,'constants' : 'color: #654321;'
+ ,'keywords' : 'color: #48BDDF;'
+ ,'functions' : 'color: #449922;'
+ ,'types' : 'color: #2B60FF;'
+ }
+ ,'OPERATORS' : 'color: #FF00FF;'
+ ,'DELIMITERS' : 'color: #60CA00;'
+ }
+};
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/perl.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/perl.js
new file mode 100644
index 0000000..0313c0c
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/perl.js
@@ -0,0 +1,88 @@
+/***************************************************************************
+ * (c) 2008 - file created by Christoph Pinkel, MTC Infomedia OHG.
+ *
+ * You may choose any license of the current release or any future release
+ * of editarea to use, modify and/or redistribute this file.
+ *
+ * This language specification file supports for syntax checking on
+ * a large subset of Perl 5.x.
+ * The basic common syntax of Perl is fully supported, but as for
+ * the highlighting of built-in operations, it's mainly designed
+ * to support for hightlighting Perl code in a Safe environment (compartment)
+ * as used by CoMaNet for evaluation of administrative scripts. This Safe
+ * compartment basically allows for all of Opcode's :default operations,
+ * but little others. See http://perldoc.perl.org/Opcode.html to learn
+ * more.
+ ***************************************************************************/
+
+editAreaLoader.load_syntax["perl"] = {
+ 'DISPLAY_NAME' : 'Perl',
+ 'COMMENT_SINGLE' : {1 : '#'},
+ 'QUOTEMARKS' : {1: "'", 2: '"'},
+ 'KEYWORD_CASE_SENSITIVE' : true,
+ 'KEYWORDS' :
+ {
+ 'core' :
+ [ "if", "else", "elsif", "while", "for", "each", "foreach",
+ "next", "last", "goto", "exists", "delete", "undef",
+ "my", "our", "local", "use", "require", "package", "keys", "values",
+ "sub", "bless", "ref", "return" ],
+ 'functions' :
+ [
+ //from :base_core
+ "int", "hex", "oct", "abs", "substr", "vec", "study", "pos",
+ "length", "index", "rindex", "ord", "chr", "ucfirst", "lcfirst",
+ "uc", "lc", "quotemeta", "chop", "chomp", "split", "list", "splice",
+ "push", "pop", "shift", "unshift", "reverse", "and", "or", "dor",
+ "xor", "warn", "die", "prototype",
+ //from :base_mem
+ "concat", "repeat", "join", "range",
+ //none from :base_loop, as we'll see them as basic statements...
+ //from :base_orig
+ "sprintf", "crypt", "tie", "untie", "select", "localtime", "gmtime",
+ //others
+ "print", "open", "close"
+ ]
+ },
+ 'OPERATORS' :
+ [ '+', '-', '/', '*', '=', '<', '>', '!', '||', '.', '&&',
+ ' eq ', ' ne ', '=~' ],
+ 'DELIMITERS' :
+ [ '(', ')', '[', ']', '{', '}' ],
+ 'REGEXPS' :
+ {
+ 'packagedecl' : { 'search': '(package )([^ \r\n\t#;]*)()',
+ 'class' : 'scopingnames',
+ 'modifiers' : 'g', 'execute' : 'before' },
+ 'subdecl' : { 'search': '(sub )([^ \r\n\t#]*)()',
+ 'class' : 'scopingnames',
+ 'modifiers' : 'g', 'execute' : 'before' },
+ 'scalars' : { 'search': '()(\\\$[a-zA-Z0-9_:]*)()',
+ 'class' : 'vars',
+ 'modifiers' : 'g', 'execute' : 'after' },
+ 'arrays' : { 'search': '()(@[a-zA-Z0-9_:]*)()',
+ 'class' : 'vars',
+ 'modifiers' : 'g', 'execute' : 'after' },
+ 'hashs' : { 'search': '()(%[a-zA-Z0-9_:]*)()',
+ 'class' : 'vars',
+ 'modifiers' : 'g', 'execute' : 'after' },
+ },
+
+ 'STYLES' :
+ {
+ 'COMMENTS': 'color: #AAAAAA;',
+ 'QUOTESMARKS': 'color: #DC0000;',
+ 'KEYWORDS' :
+ {
+ 'core' : 'color: #8aca00;',
+ 'functions' : 'color: #2B60FF;'
+ },
+ 'OPERATORS' : 'color: #8aca00;',
+ 'DELIMITERS' : 'color: #0038E1;',
+ 'REGEXPS':
+ {
+ 'scopingnames' : 'color: #ff0000;',
+ 'vars' : 'color: #00aaaa;',
+ }
+ } //'STYLES'
+};
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/php.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/php.js
new file mode 100644
index 0000000..f53dc88
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/php.js
@@ -0,0 +1,157 @@
+editAreaLoader.load_syntax["php"] = {
+ 'DISPLAY_NAME' : 'Php'
+ ,'COMMENT_SINGLE' : {1 : '//', 2 : '#'}
+ ,'COMMENT_MULTI' : {'/*' : '*/'}
+ ,'QUOTEMARKS' : {1: "'", 2: '"'}
+ ,'KEYWORD_CASE_SENSITIVE' : false
+ ,'KEYWORDS' : {
+ 'statements' : [
+ 'include', 'require', 'include_once', 'require_once',
+ 'for', 'foreach', 'as', 'if', 'elseif', 'else', 'while', 'do', 'endwhile',
+ 'endif', 'switch', 'case', 'endswitch',
+ 'return', 'break', 'continue'
+ ]
+ ,'reserved' : [
+ '_GET', '_POST', '_SESSION', '_SERVER', '_FILES', '_ENV', '_COOKIE', '_REQUEST',
+ 'null', '__LINE__', '__FILE__',
+ 'false', '&lt;?php', '?&gt;', '&lt;?',
+ '&lt;script language', '&lt;/script&gt;',
+ 'true', 'var', 'default',
+ 'function', 'class', 'new', '&amp;new', 'this',
+ '__FUNCTION__', '__CLASS__', '__METHOD__', 'PHP_VERSION',
+ 'PHP_OS', 'DEFAULT_INCLUDE_PATH', 'PEAR_INSTALL_DIR', 'PEAR_EXTENSION_DIR',
+ 'PHP_EXTENSION_DIR', 'PHP_BINDIR', 'PHP_LIBDIR', 'PHP_DATADIR', 'PHP_SYSCONFDIR',
+ 'PHP_LOCALSTATEDIR', 'PHP_CONFIG_FILE_PATH', 'PHP_OUTPUT_HANDLER_START', 'PHP_OUTPUT_HANDLER_CONT',
+ 'PHP_OUTPUT_HANDLER_END', 'E_ERROR', 'E_WARNING', 'E_PARSE', 'E_NOTICE',
+ 'E_CORE_ERROR', 'E_CORE_WARNING', 'E_COMPILE_ERROR', 'E_COMPILE_WARNING', 'E_USER_ERROR',
+ 'E_USER_WARNING', 'E_USER_NOTICE', 'E_ALL'
+
+ ]
+ ,'functions' : [
+ 'func_num_args', 'func_get_arg', 'func_get_args', 'strlen', 'strcmp', 'strncmp', 'strcasecmp', 'strncasecmp', 'each', 'error_reporting', 'define', 'defined',
+ 'trigger_error', 'user_error', 'set_error_handler', 'restore_error_handler', 'get_declared_classes', 'get_loaded_extensions',
+ 'extension_loaded', 'get_extension_funcs', 'debug_backtrace',
+ 'constant', 'bin2hex', 'sleep', 'usleep', 'time', 'mktime', 'gmmktime', 'strftime', 'gmstrftime', 'strtotime', 'date', 'gmdate', 'getdate', 'localtime', 'checkdate', 'flush', 'wordwrap', 'htmlspecialchars', 'htmlentities', 'html_entity_decode', 'md5', 'md5_file', 'crc32', 'getimagesize', 'image_type_to_mime_type', 'phpinfo', 'phpversion', 'phpcredits', 'strnatcmp', 'strnatcasecmp', 'substr_count', 'strspn', 'strcspn', 'strtok', 'strtoupper', 'strtolower', 'strpos', 'strrpos', 'strrev', 'hebrev', 'hebrevc', 'nl2br', 'basename', 'dirname', 'pathinfo', 'stripslashes', 'stripcslashes', 'strstr', 'stristr', 'strrchr', 'str_shuffle', 'str_word_count', 'strcoll', 'substr', 'substr_replace', 'quotemeta', 'ucfirst', 'ucwords', 'strtr', 'addslashes', 'addcslashes', 'rtrim', 'str_replace', 'str_repeat', 'count_chars', 'chunk_split', 'trim', 'ltrim', 'strip_tags', 'similar_text', 'explode', 'implode', 'setlocale', 'localeconv',
+ 'parse_str', 'str_pad', 'chop', 'strchr', 'sprintf', 'printf', 'vprintf', 'vsprintf', 'sscanf', 'fscanf', 'parse_url', 'urlencode', 'urldecode', 'rawurlencode', 'rawurldecode', 'readlink', 'linkinfo', 'link', 'unlink', 'exec', 'system', 'escapeshellcmd', 'escapeshellarg', 'passthru', 'shell_exec', 'proc_open', 'proc_close', 'rand', 'srand', 'getrandmax', 'mt_rand', 'mt_srand', 'mt_getrandmax', 'base64_decode', 'base64_encode', 'abs', 'ceil', 'floor', 'round', 'is_finite', 'is_nan', 'is_infinite', 'bindec', 'hexdec', 'octdec', 'decbin', 'decoct', 'dechex', 'base_convert', 'number_format', 'fmod', 'ip2long', 'long2ip', 'getenv', 'putenv', 'getopt', 'microtime', 'gettimeofday', 'getrusage', 'uniqid', 'quoted_printable_decode', 'set_time_limit', 'get_cfg_var', 'magic_quotes_runtime', 'set_magic_quotes_runtime', 'get_magic_quotes_gpc', 'get_magic_quotes_runtime',
+ 'import_request_variables', 'error_log', 'serialize', 'unserialize', 'memory_get_usage', 'var_dump', 'var_export', 'debug_zval_dump', 'print_r','highlight_file', 'show_source', 'highlight_string', 'ini_get', 'ini_get_all', 'ini_set', 'ini_alter', 'ini_restore', 'get_include_path', 'set_include_path', 'restore_include_path', 'setcookie', 'header', 'headers_sent', 'connection_aborted', 'connection_status', 'ignore_user_abort', 'parse_ini_file', 'is_uploaded_file', 'move_uploaded_file', 'intval', 'floatval', 'doubleval', 'strval', 'gettype', 'settype', 'is_null', 'is_resource', 'is_bool', 'is_long', 'is_float', 'is_int', 'is_integer', 'is_double', 'is_real', 'is_numeric', 'is_string', 'is_array', 'is_object', 'is_scalar',
+ 'ereg', 'ereg_replace', 'eregi', 'eregi_replace', 'split', 'spliti', 'join', 'sql_regcase', 'dl', 'pclose', 'popen', 'readfile', 'rewind', 'rmdir', 'umask', 'fclose', 'feof', 'fgetc', 'fgets', 'fgetss', 'fread', 'fopen', 'fpassthru', 'ftruncate', 'fstat', 'fseek', 'ftell', 'fflush', 'fwrite', 'fputs', 'mkdir', 'rename', 'copy', 'tempnam', 'tmpfile', 'file', 'file_get_contents', 'stream_select', 'stream_context_create', 'stream_context_set_params', 'stream_context_set_option', 'stream_context_get_options', 'stream_filter_prepend', 'stream_filter_append', 'fgetcsv', 'flock', 'get_meta_tags', 'stream_set_write_buffer', 'set_file_buffer', 'set_socket_blocking', 'stream_set_blocking', 'socket_set_blocking', 'stream_get_meta_data', 'stream_register_wrapper', 'stream_wrapper_register', 'stream_set_timeout', 'socket_set_timeout', 'socket_get_status', 'realpath', 'fnmatch', 'fsockopen', 'pfsockopen', 'pack', 'unpack', 'get_browser', 'crypt', 'opendir', 'closedir', 'chdir', 'getcwd', 'rewinddir', 'readdir', 'dir', 'glob', 'fileatime', 'filectime', 'filegroup', 'fileinode', 'filemtime', 'fileowner', 'fileperms', 'filesize', 'filetype', 'file_exists', 'is_writable', 'is_writeable', 'is_readable', 'is_executable', 'is_file', 'is_dir', 'is_link', 'stat', 'lstat', 'chown',
+ 'touch', 'clearstatcache', 'mail', 'ob_start', 'ob_flush', 'ob_clean', 'ob_end_flush', 'ob_end_clean', 'ob_get_flush', 'ob_get_clean', 'ob_get_length', 'ob_get_level', 'ob_get_status', 'ob_get_contents', 'ob_implicit_flush', 'ob_list_handlers', 'ksort', 'krsort', 'natsort', 'natcasesort', 'asort', 'arsort', 'sort', 'rsort', 'usort', 'uasort', 'uksort', 'shuffle', 'array_walk', 'count', 'end', 'prev', 'next', 'reset', 'current', 'key', 'min', 'max', 'in_array', 'array_search', 'extract', 'compact', 'array_fill', 'range', 'array_multisort', 'array_push', 'array_pop', 'array_shift', 'array_unshift', 'array_splice', 'array_slice', 'array_merge', 'array_merge_recursive', 'array_keys', 'array_values', 'array_count_values', 'array_reverse', 'array_reduce', 'array_pad', 'array_flip', 'array_change_key_case', 'array_rand', 'array_unique', 'array_intersect', 'array_intersect_assoc', 'array_diff', 'array_diff_assoc', 'array_sum', 'array_filter', 'array_map', 'array_chunk', 'array_key_exists', 'pos', 'sizeof', 'key_exists', 'assert', 'assert_options', 'version_compare', 'ftok', 'str_rot13', 'aggregate',
+ 'session_name', 'session_module_name', 'session_save_path', 'session_id', 'session_regenerate_id', 'session_decode', 'session_register', 'session_unregister', 'session_is_registered', 'session_encode',
+ 'session_start', 'session_destroy', 'session_unset', 'session_set_save_handler', 'session_cache_limiter', 'session_cache_expire', 'session_set_cookie_params', 'session_get_cookie_params', 'session_write_close', 'preg_match', 'preg_match_all', 'preg_replace', 'preg_replace_callback', 'preg_split', 'preg_quote', 'preg_grep', 'overload', 'ctype_alnum', 'ctype_alpha', 'ctype_cntrl', 'ctype_digit', 'ctype_lower', 'ctype_graph', 'ctype_print', 'ctype_punct', 'ctype_space', 'ctype_upper', 'ctype_xdigit', 'virtual', 'apache_request_headers', 'apache_note', 'apache_lookup_uri', 'apache_child_terminate', 'apache_setenv', 'apache_response_headers', 'apache_get_version', 'getallheaders', 'mysql_connect', 'mysql_pconnect', 'mysql_close', 'mysql_select_db', 'mysql_create_db', 'mysql_drop_db', 'mysql_query', 'mysql_unbuffered_query', 'mysql_db_query', 'mysql_list_dbs', 'mysql_list_tables', 'mysql_list_fields', 'mysql_list_processes', 'mysql_error', 'mysql_errno', 'mysql_affected_rows', 'mysql_insert_id', 'mysql_result', 'mysql_num_rows', 'mysql_num_fields', 'mysql_fetch_row', 'mysql_fetch_array', 'mysql_fetch_assoc', 'mysql_fetch_object', 'mysql_data_seek', 'mysql_fetch_lengths', 'mysql_fetch_field', 'mysql_field_seek', 'mysql_free_result', 'mysql_field_name', 'mysql_field_table', 'mysql_field_len', 'mysql_field_type', 'mysql_field_flags', 'mysql_escape_string', 'mysql_real_escape_string', 'mysql_stat',
+ 'mysql_thread_id', 'mysql_client_encoding', 'mysql_get_client_info', 'mysql_get_host_info', 'mysql_get_proto_info', 'mysql_get_server_info', 'mysql_info', 'mysql', 'mysql_fieldname', 'mysql_fieldtable', 'mysql_fieldlen', 'mysql_fieldtype', 'mysql_fieldflags', 'mysql_selectdb', 'mysql_createdb', 'mysql_dropdb', 'mysql_freeresult', 'mysql_numfields', 'mysql_numrows', 'mysql_listdbs', 'mysql_listtables', 'mysql_listfields', 'mysql_db_name', 'mysql_dbname', 'mysql_tablename', 'mysql_table_name', 'pg_connect', 'pg_pconnect', 'pg_close', 'pg_connection_status', 'pg_connection_busy', 'pg_connection_reset', 'pg_host', 'pg_dbname', 'pg_port', 'pg_tty', 'pg_options', 'pg_ping', 'pg_query', 'pg_send_query', 'pg_cancel_query', 'pg_fetch_result', 'pg_fetch_row', 'pg_fetch_assoc', 'pg_fetch_array', 'pg_fetch_object', 'pg_fetch_all', 'pg_affected_rows', 'pg_get_result', 'pg_result_seek', 'pg_result_status', 'pg_free_result', 'pg_last_oid', 'pg_num_rows', 'pg_num_fields', 'pg_field_name', 'pg_field_num', 'pg_field_size', 'pg_field_type', 'pg_field_prtlen', 'pg_field_is_null', 'pg_get_notify', 'pg_get_pid', 'pg_result_error', 'pg_last_error', 'pg_last_notice', 'pg_put_line', 'pg_end_copy', 'pg_copy_to', 'pg_copy_from',
+ 'pg_trace', 'pg_untrace', 'pg_lo_create', 'pg_lo_unlink', 'pg_lo_open', 'pg_lo_close', 'pg_lo_read', 'pg_lo_write', 'pg_lo_read_all', 'pg_lo_import', 'pg_lo_export', 'pg_lo_seek', 'pg_lo_tell', 'pg_escape_string', 'pg_escape_bytea', 'pg_unescape_bytea', 'pg_client_encoding', 'pg_set_client_encoding', 'pg_meta_data', 'pg_convert', 'pg_insert', 'pg_update', 'pg_delete', 'pg_select', 'pg_exec', 'pg_getlastoid', 'pg_cmdtuples', 'pg_errormessage', 'pg_numrows', 'pg_numfields', 'pg_fieldname', 'pg_fieldsize', 'pg_fieldtype', 'pg_fieldnum', 'pg_fieldprtlen', 'pg_fieldisnull', 'pg_freeresult', 'pg_result', 'pg_loreadall', 'pg_locreate', 'pg_lounlink', 'pg_loopen', 'pg_loclose', 'pg_loread', 'pg_lowrite', 'pg_loimport', 'pg_loexport',
+ 'echo', 'print', 'global', 'static', 'exit', 'array', 'empty', 'eval', 'isset', 'unset', 'die'
+
+ ]
+ }
+ ,'OPERATORS' :[
+ '+', '-', '/', '*', '=', '<', '>', '%', '!', '&&', '||'
+ ]
+ ,'DELIMITERS' :[
+ '(', ')', '[', ']', '{', '}'
+ ]
+ ,'REGEXPS' : {
+ // highlight all variables ($...)
+ 'variables' : {
+ 'search' : '()(\\$\\w+)()'
+ ,'class' : 'variables'
+ ,'modifiers' : 'g'
+ ,'execute' : 'before' // before or after
+ }
+ }
+ ,'STYLES' : {
+ 'COMMENTS': 'color: #AAAAAA;'
+ ,'QUOTESMARKS': 'color: #879EFA;'
+ ,'KEYWORDS' : {
+ 'reserved' : 'color: #48BDDF;'
+ ,'functions' : 'color: #0040FD;'
+ ,'statements' : 'color: #60CA00;'
+ }
+ ,'OPERATORS' : 'color: #FF00FF;'
+ ,'DELIMITERS' : 'color: #2B60FF;'
+ ,'REGEXPS' : {
+ 'variables' : 'color: #E0BD54;'
+ }
+ }
+ ,'AUTO_COMPLETION' : {
+ "default": { // the name of this definition group. It's posisble to have different rules inside the same definition file
+ "REGEXP": { "before_word": "[^a-zA-Z0-9_]|^" // \\s|\\.|
+ ,"possible_words_letters": "[a-zA-Z0-9_\$]+"
+ ,"letter_after_word_must_match": "[^a-zA-Z0-9_]|$"
+ ,"prefix_separator": "\\-\\>|\\:\\:"
+ }
+ ,"CASE_SENSITIVE": true
+ ,"MAX_TEXT_LENGTH": 100 // the maximum length of the text being analyzed before the cursor position
+ ,"KEYWORDS": {
+ '': [ // the prefix of thoses items
+ /**
+ * 0 : the keyword the user is typing
+ * 1 : (optionnal) the string inserted in code ("{@}" being the new position of the cursor, "§" beeing the equivalent to the value the typed string indicated if the previous )
+ * If empty the keyword will be displayed
+ * 2 : (optionnal) the text that appear in the suggestion box (if empty, the string to insert will be displayed)
+ */
+ ['$_POST']
+ ,['$_GET']
+ ,['$_SESSION']
+ ,['$_SERVER']
+ ,['$_FILES']
+ ,['$_ENV']
+ ,['$_COOKIE']
+ ,['$_REQUEST']
+ // magic methods
+ ,['__construct', '§( {@} )']
+ ,['__destruct', '§( {@} )']
+ ,['__sleep', '§( {@} )']
+ ,['__wakeup', '§( {@} )']
+ ,['__toString', '§( {@} )']
+ // include
+ ,['include', '§ "{@}";']
+ ,['include_once', '§ "{@}";']
+ ,['require', '§ "{@}";']
+ ,['require_once', '§ "{@}";']
+ // statements
+ ,['for', '§( {@} )']
+ ,['foreach', '§( {@} )']
+ ,['if', '§( {@} )']
+ ,['elseif', '§( {@} )']
+ ,['while', '§( {@} )']
+ ,['switch', '§( {@} )']
+ ,['break']
+ ,['case']
+ ,['continue']
+ ,['do']
+ ,['else']
+ ,['endif']
+ ,['endswitch']
+ ,['endwhile']
+ ,['return']
+ // function
+ ,['unset', '§( {@} )']
+ ]
+ }
+ }
+ ,"live": {
+
+ // class NAME: /class\W+([a-z]+)\W+/gi
+ // method: /^(public|private|protected)?\s*function\s+([a-z][a-z0-9\_]*)\s*(\([^\{]*\))/gmi
+ // static: /^(public|private|protected)?\s+static\s+(public|private|protected)?\s*function\s+([a-z][a-z0-9\_]*)\s*(\([^\{]*\))/gmi
+ // attributes: /(\$this\-\>|(?:var|public|protected|private)\W+\$)([a-z0-9\_]+)(?!\()\b/gi
+ // v1 : /(\$this\-\>|var\W+|public\W+|protected\W+|private\W+)([a-z0-9\_]+)\W*(=|;)/gi
+ // var type: /(\$(this\-\>)?[a-z0-9\_]+)\s*\=\s*new\s+([a-z0-9\_])+/gi
+
+
+ "REGEXP": { "before_word": "[^a-zA-Z0-9_]|^" // \\s|\\.|
+ ,"possible_words_letters": "[a-zA-Z0-9_\$]+"
+ ,"letter_after_word_must_match": "[^a-zA-Z0-9_]|$"
+ ,"prefix_separator": "\\-\\>"
+ }
+ ,"CASE_SENSITIVE": true
+ ,"MAX_TEXT_LENGTH": 100 // the maximum length of the text being analyzed before the cursor position
+ ,"KEYWORDS": {
+ '$this': [ // the prefix of thoses items
+ ['test']
+ ]
+ }
+ }
+ }
+};
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/python.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/python.js
new file mode 100644
index 0000000..e9f4314
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/python.js
@@ -0,0 +1,145 @@
+/**
+ * Python syntax v 1.1
+ *
+ * v1.1 by Andre Roberge (2006/12/27)
+ *
+**/
+editAreaLoader.load_syntax["python"] = {
+ 'DISPLAY_NAME' : 'Python'
+ ,'COMMENT_SINGLE' : {1 : '#'}
+ ,'COMMENT_MULTI' : {}
+ ,'QUOTEMARKS' : {1: "'", 2: '"'}
+ ,'KEYWORD_CASE_SENSITIVE' : true
+ ,'KEYWORDS' : {
+ /*
+ ** Set 1: reserved words
+ ** http://python.org/doc/current/ref/keywords.html
+ ** Note: 'as' and 'with' have been added starting with Python 2.5
+ */
+ 'reserved' : [
+ 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif',
+ 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if',
+ 'import', 'is', 'in', 'lambda', 'not', 'or', 'pass', 'print', 'raise',
+ 'return', 'try', 'while', 'with', 'yield'
+ //the following are *almost* reserved; we'll treat them as such
+ , 'False', 'True', 'None'
+ ]
+ /*
+ ** Set 2: builtins
+ ** http://python.org/doc/current/lib/built-in-funcs.html
+ */
+ ,'builtins' : [
+ '__import__', 'abs', 'basestring', 'bool', 'callable', 'chr', 'classmethod', 'cmp',
+ 'compile', 'complex', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'execfile',
+ 'file', 'filter', 'float', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help',
+ 'hex', 'id', 'input', 'int', 'isinstance', 'issubclass', 'iter', 'len', 'list', 'locals',
+ 'long', 'map', 'max', 'min', 'object', 'oct', 'open', 'ord', 'pow', 'property', 'range',
+ 'raw_input', 'reduce', 'reload', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice',
+ 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'unichr', 'unicode',
+ 'vars', 'xrange', 'zip',
+ // Built-in constants: http://www.python.org/doc/2.4.1/lib/node35.html
+ //'False', 'True', 'None' have been included in 'reserved'
+ 'NotImplemented', 'Ellipsis',
+ // Built-in Exceptions: http://python.org/doc/current/lib/module-exceptions.html
+ 'Exception', 'StandardError', 'ArithmeticError', 'LookupError', 'EnvironmentError',
+ 'AssertionError', 'AttributeError', 'EOFError', 'FloatingPointError', 'IOError',
+ 'ImportError', 'IndexError', 'KeyError', 'KeyboardInterrupt', 'MemoryError', 'NameError',
+ 'NotImplementedError', 'OSError', 'OverflowError', 'ReferenceError', 'RuntimeError',
+ 'StopIteration', 'SyntaxError', 'SystemError', 'SystemExit', 'TypeError',
+ 'UnboundlocalError', 'UnicodeError', 'UnicodeEncodeError', 'UnicodeDecodeError',
+ 'UnicodeTranslateError', 'ValueError', 'WindowsError', 'ZeroDivisionError', 'Warning',
+ 'UserWarning', 'DeprecationWarning', 'PendingDeprecationWarning', 'SyntaxWarning',
+ 'RuntimeWarning', 'FutureWarning',
+ // we will include the string methods as well
+ // http://python.org/doc/current/lib/string-methods.html
+ 'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs',
+ 'find', 'index', 'isalnum', 'isaplpha', 'isdigit', 'islower', 'isspace', 'istitle',
+ 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'replace', 'rfind', 'rindex', 'rjust',
+ 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title',
+ 'translate', 'upper', 'zfill'
+ ]
+ /*
+ ** Set 3: standard library
+ ** http://python.org/doc/current/lib/modindex.html
+ */
+ ,'stdlib' : [
+ '__builtin__', '__future__', '__main__', '_winreg', 'aifc', 'AL', 'al', 'anydbm',
+ 'array', 'asynchat', 'asyncore', 'atexit', 'audioop', 'base64', 'BaseHTTPServer',
+ 'Bastion', 'binascii', 'binhex', 'bisect', 'bsddb', 'bz2', 'calendar', 'cd', 'cgi',
+ 'CGIHTTPServer', 'cgitb', 'chunk', 'cmath', 'cmd', 'code', 'codecs', 'codeop',
+ 'collections', 'colorsys', 'commands', 'compileall', 'compiler', 'compiler',
+ 'ConfigParser', 'Cookie', 'cookielib', 'copy', 'copy_reg', 'cPickle', 'crypt',
+ 'cStringIO', 'csv', 'curses', 'datetime', 'dbhash', 'dbm', 'decimal', 'DEVICE',
+ 'difflib', 'dircache', 'dis', 'distutils', 'dl', 'doctest', 'DocXMLRPCServer', 'dumbdbm',
+ 'dummy_thread', 'dummy_threading', 'email', 'encodings', 'errno', 'exceptions', 'fcntl',
+ 'filecmp', 'fileinput', 'FL', 'fl', 'flp', 'fm', 'fnmatch', 'formatter', 'fpectl',
+ 'fpformat', 'ftplib', 'gc', 'gdbm', 'getopt', 'getpass', 'gettext', 'GL', 'gl', 'glob',
+ 'gopherlib', 'grp', 'gzip', 'heapq', 'hmac', 'hotshot', 'htmlentitydefs', 'htmllib',
+ 'HTMLParser', 'httplib', 'imageop', 'imaplib', 'imgfile', 'imghdr', 'imp', 'inspect',
+ 'itertools', 'jpeg', 'keyword', 'linecache', 'locale', 'logging', 'mailbox', 'mailcap',
+ 'marshal', 'math', 'md5', 'mhlib', 'mimetools', 'mimetypes', 'MimeWriter', 'mimify',
+ 'mmap', 'msvcrt', 'multifile', 'mutex', 'netrc', 'new', 'nis', 'nntplib', 'operator',
+ 'optparse', 'os', 'ossaudiodev', 'parser', 'pdb', 'pickle', 'pickletools', 'pipes',
+ 'pkgutil', 'platform', 'popen2', 'poplib', 'posix', 'posixfile', 'pprint', 'profile',
+ 'pstats', 'pty', 'pwd', 'py_compile', 'pyclbr', 'pydoc', 'Queue', 'quopri', 'random',
+ 're', 'readline', 'repr', 'resource', 'rexec', 'rfc822', 'rgbimg', 'rlcompleter',
+ 'robotparser', 'sched', 'ScrolledText', 'select', 'sets', 'sgmllib', 'sha', 'shelve',
+ 'shlex', 'shutil', 'signal', 'SimpleHTTPServer', 'SimpleXMLRPCServer', 'site', 'smtpd',
+ 'smtplib', 'sndhdr', 'socket', 'SocketServer', 'stat', 'statcache', 'statvfs', 'string',
+ 'StringIO', 'stringprep', 'struct', 'subprocess', 'sunau', 'SUNAUDIODEV', 'sunaudiodev',
+ 'symbol', 'sys', 'syslog', 'tabnanny', 'tarfile', 'telnetlib', 'tempfile', 'termios',
+ 'test', 'textwrap', 'thread', 'threading', 'time', 'timeit', 'Tix', 'Tkinter', 'token',
+ 'tokenize', 'traceback', 'tty', 'turtle', 'types', 'unicodedata', 'unittest', 'urllib2',
+ 'urllib', 'urlparse', 'user', 'UserDict', 'UserList', 'UserString', 'uu', 'warnings',
+ 'wave', 'weakref', 'webbrowser', 'whichdb', 'whrandom', 'winsound', 'xdrlib', 'xml',
+ 'xmllib', 'xmlrpclib', 'zipfile', 'zipimport', 'zlib'
+
+ ]
+ /*
+ ** Set 4: special methods
+ ** http://python.org/doc/current/ref/specialnames.html
+ */
+ ,'special' : [
+ // Basic customization: http://python.org/doc/current/ref/customization.html
+ '__new__', '__init__', '__del__', '__repr__', '__str__',
+ '__lt__', '__le__', '__eq__', '__ne__', '__gt__', '__ge__', '__cmp__', '__rcmp__',
+ '__hash__', '__nonzero__', '__unicode__', '__dict__',
+ // Attribute access: http://python.org/doc/current/ref/attribute-access.html
+ '__setattr__', '__delattr__', '__getattr__', '__getattribute__', '__get__', '__set__',
+ '__delete__', '__slots__',
+ // Class creation, callable objects
+ '__metaclass__', '__call__',
+ // Container types: http://python.org/doc/current/ref/sequence-types.html
+ '__len__', '__getitem__', '__setitem__', '__delitem__', '__iter__', '__contains__',
+ '__getslice__', '__setslice__', '__delslice__',
+ // Numeric types: http://python.org/doc/current/ref/numeric-types.html
+ '__abs__','__add__','__and__','__coerce__','__div__','__divmod__','__float__',
+ '__hex__','__iadd__','__isub__','__imod__','__idiv__','__ipow__','__iand__',
+ '__ior__','__ixor__', '__ilshift__','__irshift__','__invert__','__int__',
+ '__long__','__lshift__',
+ '__mod__','__mul__','__neg__','__oct__','__or__','__pos__','__pow__',
+ '__radd__','__rdiv__','__rdivmod__','__rmod__','__rpow__','__rlshift__','__rrshift__',
+ '__rshift__','__rsub__','__rmul__','__repr__','__rand__','__rxor__','__ror__',
+ '__sub__','__xor__'
+ ]
+ }
+ ,'OPERATORS' :[
+ '+', '-', '/', '*', '=', '<', '>', '%', '!', '&', ';', '?', '`', ':', ','
+ ]
+ ,'DELIMITERS' :[
+ '(', ')', '[', ']', '{', '}'
+ ]
+ ,'STYLES' : {
+ 'COMMENTS': 'color: #AAAAAA;'
+ ,'QUOTESMARKS': 'color: #660066;'
+ ,'KEYWORDS' : {
+ 'reserved' : 'color: #0000FF;'
+ ,'builtins' : 'color: #009900;'
+ ,'stdlib' : 'color: #009900;'
+ ,'special': 'color: #006666;'
+ }
+ ,'OPERATORS' : 'color: #993300;'
+ ,'DELIMITERS' : 'color: #993300;'
+
+ }
+};
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/robotstxt.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/robotstxt.js
new file mode 100644
index 0000000..5bca8fe
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/robotstxt.js
@@ -0,0 +1,25 @@
+editAreaLoader.load_syntax["robotstxt"] = {
+ 'DISPLAY_NAME' : 'Robots txt',
+ 'COMMENT_SINGLE' : {1 : '#'},
+ 'COMMENT_MULTI' : {},
+ 'QUOTEMARKS' : [],
+ 'KEYWORD_CASE_SENSITIVE' : false,
+ 'KEYWORDS' : {
+ 'attributes' : ['User-agent', 'Disallow', 'Allow', 'Crawl-delay'],
+ 'values' : ['*'],
+ 'specials' : ['*']
+ },
+ 'OPERATORS' :[':'],
+ 'DELIMITERS' :[],
+ 'STYLES' : {
+ 'COMMENTS': 'color: #AAAAAA;',
+ 'QUOTESMARKS': 'color: #6381F8;',
+ 'KEYWORDS' : {
+ 'attributes' : 'color: #48BDDF;',
+ 'values' : 'color: #2B60FF;',
+ 'specials' : 'color: #FF0000;'
+ },
+ 'OPERATORS' : 'color: #FF00FF;',
+ 'DELIMITERS' : 'color: #60CA00;'
+ }
+};
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/ruby.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/ruby.js
new file mode 100644
index 0000000..2049cf5
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/ruby.js
@@ -0,0 +1,68 @@
+/**
+ * Ruby syntax v 1.0
+ *
+ * v1.0 by Patrice De Saint Steban (2007/01/03)
+ *
+**/
+editAreaLoader.load_syntax["ruby"] = {
+ 'DISPLAY_NAME' : 'Ruby'
+ ,'COMMENT_SINGLE' : {1 : '#'}
+ ,'COMMENT_MULTI' : {}
+ ,'QUOTEMARKS' : {1: "'", 2: '"'}
+ ,'KEYWORD_CASE_SENSITIVE' : true
+ ,'KEYWORDS' : {
+ 'reserved' : [
+ 'alias', 'and', 'BEGIN', 'begin', 'break', 'case', 'class', 'def', 'defined', 'do', 'else',
+ 'elsif', 'END', 'end', 'ensure', 'false', 'for', 'if',
+ 'in', 'module', 'next', 'not', 'or', 'redo', 'rescue', 'retry',
+ 'return', 'self', 'super', 'then', 'true', 'undef', 'unless', 'until', 'when', 'while', 'yield'
+ ]
+ }
+ ,'OPERATORS' :[
+ '+', '-', '/', '*', '=', '<', '>', '%', '!', '&', ';', '?', '`', ':', ','
+ ]
+ ,'DELIMITERS' :[
+ '(', ')', '[', ']', '{', '}'
+ ]
+ ,'REGEXPS' : {
+ 'constants' : {
+ 'search' : '()([A-Z]\\w*)()'
+ ,'class' : 'constants'
+ ,'modifiers' : 'g'
+ ,'execute' : 'before'
+ }
+ ,'variables' : {
+ 'search' : '()([\$\@\%]+\\w+)()'
+ ,'class' : 'variables'
+ ,'modifiers' : 'g'
+ ,'execute' : 'before'
+ }
+ ,'numbers' : {
+ 'search' : '()(-?[0-9]+)()'
+ ,'class' : 'numbers'
+ ,'modifiers' : 'g'
+ ,'execute' : 'before'
+ }
+ ,'symbols' : {
+ 'search' : '()(:\\w+)()'
+ ,'class' : 'symbols'
+ ,'modifiers' : 'g'
+ ,'execute' : 'before'
+ }
+ }
+ ,'STYLES' : {
+ 'COMMENTS': 'color: #AAAAAA;'
+ ,'QUOTESMARKS': 'color: #660066;'
+ ,'KEYWORDS' : {
+ 'reserved' : 'font-weight: bold; color: #0000FF;'
+ }
+ ,'OPERATORS' : 'color: #993300;'
+ ,'DELIMITERS' : 'color: #993300;'
+ ,'REGEXPS' : {
+ 'variables' : 'color: #E0BD54;'
+ ,'numbers' : 'color: green;'
+ ,'constants' : 'color: #00AA00;'
+ ,'symbols' : 'color: #879EFA;'
+ }
+ }
+};
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/sql.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/sql.js
new file mode 100644
index 0000000..2f6dbda
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/sql.js
@@ -0,0 +1,56 @@
+editAreaLoader.load_syntax["sql"] = {
+ 'DISPLAY_NAME' : 'SQL'
+ ,'COMMENT_SINGLE' : {1 : '--'}
+ ,'COMMENT_MULTI' : {'/*' : '*/'}
+ ,'QUOTEMARKS' : {1: "'", 2: '"', 3: '`'}
+ ,'KEYWORD_CASE_SENSITIVE' : false
+ ,'KEYWORDS' : {
+ 'statements' : [
+ 'select', 'SELECT', 'where', 'order', 'by',
+ 'insert', 'from', 'update', 'grant', 'left join', 'right join',
+ 'union', 'group', 'having', 'limit', 'alter', 'LIKE','IN','CASE'
+ ]
+ ,'reserved' : [
+ 'null', 'enum', 'int', 'boolean', 'add', 'varchar'
+
+ ]
+ ,'functions' : [
+ 'ABS','ACOS','ADDDATE','ADDTIME','AES_DECRYPT','AES_ENCRYPT','ASCII','ASIN','ATAN2 ATAN','ATAN','AVG','BENCHMARK','DISTINCT','BIN','BIT_AND','BIT_COUNT','BIT_LENGTH','BIT_OR','BIT_XOR','CAST','CEILING CEIL','CHAR_LENGTH','CHAR',
+'CHARACTER_LENGTH','CHARSET','COALESCE','COERCIBILITY','COLLATION','COMPRESS','CONCAT_WS','CONCAT','CONNECTION_ID','CONV','CONVERT_TZ','COS','COT','COUNT','CRC32','CURDATE','CURRENT_DATE','CURRENT_TIME','CURRENT_TIMESTAMP','CURRENT_USER','CURTIME','DATABASE','DATE_ADD','DATE_FORMAT','DATE_SUB','DATE','DATEDIFF','DAY','DAYNAME','DAYOFMONTH',
+'DAYOFWEEK','DAYOFYEAR','DECODE','DEFAULT','DEGREES','DES_DECRYPT','DES_ENCRYPT','ELT','ENCODE','ENCRYPT','EXP','EXPORT_SET','EXTRACT','FIELD','FIND_IN_SET','FLOOR','FORMAT','FOUND_ROWS','FROM_DAYS','FROM_UNIXTIME','GET_FORMAT','GET_LOCK','GREATEST','GROUP_CONCAT','HEX','HOUR','IF','IFNULL','INET_ATON','INET_NTOA',
+'INSERT','INSTR','INTERVAL','IS_FREE_LOCK','IS_USED_LOCK','ISNULL','LAST_DAY','LAST_INSERT_ID','LCASE','LEAST','LEFT','LENGTH','LN','LOAD_FILE','LOCALTIME','LOCALTIMESTAMP','LOCATE','LOG10','LOG2','LOG','LOWER','LPAD','LTRIM','MAKE_SET','MAKEDATE','MAKETIME','MASTER_POS_WAIT','MAX','MD5','MICROSECOND',
+'MID','MIN','MINUTE','MOD','MONTH','MONTHNAME','NOW','NULLIF','OCT','OCTET_LENGTH','OLD_PASSWORD','ORD','PASSWORD','PERIOD_ADD','PERIOD_DIFF','PI','POSITION','POW','POWER','PROCEDURE ANALYSE','QUARTER','QUOTE','RADIANS','RAND','RELEASE_LOCK','REPEAT','REPLACE','REVERSE','RIGHT','ROUND',
+'RPAD','RTRIM','SEC_TO_TIME','SECOND','SESSION_USER','SHA1','SHA','SIGN','SIN','SOUNDEX','SOUNDS LIKE','SPACE','SQRT','STD','STDDEV','STR_TO_DATE','STRCMP','SUBDATE','SUBSTRING_INDEX','SUBSTRING','SUBSTR','SUBTIME','SUM','SYSDATE','SYSTEM_USER','TAN','TIME_FORMAT','TIME_TO_SEC','TIME','TIMEDIFF',
+'TIMESTAMP','TO_DAYS','TRIM','TRUNCATE','UCASE','UNCOMPRESS','UNCOMPRESSED_LENGTH','UNHEX','UNIX_TIMESTAMP','UPPER','USER','UTC_DATE','UTC_TIME','UTC_TIMESTAMP','UUID','VALUES','VARIANCE','WEEK','WEEKDAY','WEEKOFYEAR','YEAR','YEARWEEK'
+ ]
+ }
+ ,'OPERATORS' :[
+ 'AND','&&','BETWEEN','BINARY','&','|','^','/','DIV','<=>','=','>=','>','<<','>>','IS','NULL','<=','<','-','%','!=','<>','!','||','OR','+','REGEXP','RLIKE','XOR','~','*'
+ ]
+ ,'DELIMITERS' :[
+ '(', ')', '[', ']', '{', '}'
+ ]
+ ,'REGEXPS' : {
+ // highlight all variables (@...)
+ 'variables' : {
+ 'search' : '()(\\@\\w+)()'
+ ,'class' : 'variables'
+ ,'modifiers' : 'g'
+ ,'execute' : 'before' // before or after
+ }
+ }
+ ,'STYLES' : {
+ 'COMMENTS': 'color: #AAAAAA;'
+ ,'QUOTESMARKS': 'color: #879EFA;'
+ ,'KEYWORDS' : {
+ 'reserved' : 'color: #48BDDF;'
+ ,'functions' : 'color: #0040FD;'
+ ,'statements' : 'color: #60CA00;'
+ }
+ ,'OPERATORS' : 'color: #FF00FF;'
+ ,'DELIMITERS' : 'color: #2B60FF;'
+ ,'REGEXPS' : {
+ 'variables' : 'color: #E0BD54;'
+ }
+ }
+};
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/tsql.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/tsql.js
new file mode 100644
index 0000000..2da6464
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/tsql.js
@@ -0,0 +1,88 @@
+editAreaLoader.load_syntax["tsql"] = {
+ 'DISPLAY_NAME' : 'T-SQL'
+ ,'COMMENT_SINGLE' : {1 : '--'}
+ ,'COMMENT_MULTI' : {'/*' : '*/'}
+ ,'QUOTEMARKS' : {1: "'" }
+ ,'KEYWORD_CASE_SENSITIVE' : false
+ ,'KEYWORDS' : {
+ 'statements': [
+ 'ADD', 'EXCEPT', 'PERCENT', 'EXEC', 'PLAN', 'ALTER', 'EXECUTE', 'PRECISION',
+ 'PRIMARY', 'EXIT', 'PRINT', 'AS', 'FETCH', 'PROC', 'ASC',
+ 'FILE', 'PROCEDURE', 'AUTHORIZATION', 'FILLFACTOR', 'PUBLIC', 'BACKUP', 'FOR', 'RAISERROR',
+ 'BEGIN', 'FOREIGN', 'READ', 'FREETEXT', 'READTEXT', 'BREAK', 'FREETEXTTABLE',
+ 'RECONFIGURE', 'BROWSE', 'FROM', 'REFERENCES', 'BULK', 'FULL', 'REPLICATION', 'BY',
+ 'FUNCTION', 'RESTORE', 'CASCADE', 'GOTO', 'RESTRICT', 'CASE', 'GRANT', 'RETURN',
+ 'CHECK', 'GROUP', 'REVOKE', 'CHECKPOINT', 'HAVING', 'RIGHT', 'CLOSE', 'HOLDLOCK', 'ROLLBACK',
+ 'CLUSTERED', 'IDENTITY', 'ROWCOUNT', 'IDENTITY_INSERT', 'ROWGUIDCOL', 'COLLATE',
+ 'IDENTITYCOL', 'RULE', 'COLUMN', 'IF', 'SAVE', 'COMMIT', 'SCHEMA', 'COMPUTE', 'INDEX',
+ 'SELECT', 'CONSTRAINT', 'CONTAINS', 'INSERT', 'SET',
+ 'CONTAINSTABLE', 'INTERSECT', 'SETUSER', 'CONTINUE', 'INTO', 'SHUTDOWN', 'SOME',
+ 'CREATE', 'STATISTICS', 'KEY', 'CURRENT', 'KILL', 'TABLE',
+ 'CURRENT_DATE', 'TEXTSIZE', 'CURRENT_TIME', 'THEN', 'LINENO',
+ 'TO', 'LOAD', 'TOP', 'CURSOR', 'NATIONAL', 'TRAN', 'DATABASE', 'NOCHECK',
+ 'TRANSACTION', 'DBCC', 'NONCLUSTERED', 'TRIGGER', 'DEALLOCATE', 'TRUNCATE',
+ 'DECLARE', 'TSEQUAL', 'DEFAULT', 'UNION', 'DELETE', 'OF', 'UNIQUE',
+ 'DENY', 'OFF', 'UPDATE', 'DESC', 'OFFSETS', 'UPDATETEXT', 'DISK', 'ON', 'USE', 'DISTINCT', 'OPEN',
+ 'DISTRIBUTED', 'OPENDATASOURCE', 'VALUES', 'DOUBLE', 'OPENQUERY', 'VARYING', 'DROP',
+ 'OPENROWSET', 'VIEW', 'DUMMY', 'OPENXML', 'WAITFOR', 'DUMP', 'OPTION', 'WHEN', 'ELSE', 'WHERE',
+ 'END', 'ORDER', 'WHILE', 'ERRLVL', 'WITH', 'ESCAPE', 'OVER', 'WRITETEXT'
+ ],
+ 'functions': [
+ 'COALESCE', 'SESSION_USER', 'CONVERT', 'SYSTEM_USER', 'CURRENT_TIMESTAMP', 'CURRENT_USER', 'NULLIF', 'USER',
+ 'AVG', 'MIN', 'CHECKSUM', 'SUM', 'CHECKSUM_AGG', 'STDEV', 'COUNT', 'STDEVP', 'COUNT_BIG', 'VAR', 'GROUPING', 'VARP', 'MAX',
+ '@@DATEFIRST', '@@OPTIONS', '@@DBTS', '@@REMSERVER', '@@LANGID', '@@SERVERNAME', '@@LANGUAGE', '@@SERVICENAME', '@@LOCK_TIMEOUT',
+ '@@SPID', '@@MAX_CONNECTIONS', '@@TEXTSIZE', '@@MAX_PRECISION', '@@VERSION', '@@NESTLEVEL',
+ '@@CURSOR_ROWS', 'CURSOR_STATUS', '@@FETCH_STATUS',
+ 'DATEADD', 'DATEDIFF', 'DATENAME', 'DATEPART', 'DAY', 'GETDATE', 'GETUTCDATE', 'MONTH', 'YEAR',
+ 'ABS', 'DEGREES', 'RAND', 'ACOS', 'EXP', 'ROUND', 'ASIN', 'FLOOR', 'SIGN', 'ATAN', 'LOG', 'SIN', 'ATN2', 'LOG10', 'SQRT',
+ 'CEILING', 'PI ', 'SQUARE', 'COS', 'POWER', 'TAN', 'COT', 'RADIANS',
+ '@@PROCID', 'COL_LENGTH', 'FULLTEXTCATALOGPROPERTY', 'COL_NAME', 'FULLTEXTSERVICEPROPERTY', 'COLUMNPROPERTY', 'INDEX_COL',
+ 'DATABASEPROPERTY', 'INDEXKEY_PROPERTY', 'DATABASEPROPERTYEX', 'INDEXPROPERTY', 'DB_ID', 'OBJECT_ID', 'DB_NAME', 'OBJECT_NAME',
+ 'FILE_ID', 'OBJECTPROPERTY', 'OBJECTPROPERTYEX', 'FILE_NAME', 'SQL_VARIANT_PROPERTY', 'FILEGROUP_ID', 'FILEGROUP_NAME',
+ 'FILEGROUPPROPERTY', 'TYPEPROPERTY', 'FILEPROPERTY',
+ 'CURRENT_USER', 'SUSER_ID', 'SUSER_SID', 'IS_MEMBER', 'SUSER_SNAME', 'IS_SRVROLEMEMBER', 'PERMISSIONS', 'SYSTEM_USER',
+ 'SUSER_NAME', 'USER_ID', 'SESSION_USER', 'USER_NAME', 'ASCII', 'SOUNDEX', 'PATINDEX', 'SPACE', 'CHARINDEX', 'QUOTENAME',
+ 'STR', 'DIFFERENCE', 'REPLACE', 'STUFF', 'REPLICATE', 'SUBSTRING', 'LEN', 'REVERSE', 'UNICODE', 'LOWER',
+ 'UPPER', 'LTRIM', 'RTRIM', 'APP_NAME', 'CAST', 'CONVERT', 'COALESCE', 'COLLATIONPROPERTY', 'COLUMNS_UPDATED', 'CURRENT_TIMESTAMP',
+ 'CURRENT_USER', 'DATALENGTH', '@@ERROR', 'FORMATMESSAGE', 'GETANSINULL', 'HOST_ID', 'HOST_NAME', 'IDENT_CURRENT', 'IDENT_INCR',
+ 'IDENT_SEED', '@@IDENTITY', 'ISDATE', 'ISNULL', 'ISNUMERIC', 'NEWID', 'NULLIF', 'PARSENAME', '@@ROWCOUNT',
+ 'SCOPE_IDENTITY', 'SERVERPROPERTY', 'SESSIONPROPERTY', 'SESSION_USER', 'STATS_DATE', 'SYSTEM_USER', '@@TRANCOUNT', 'USER_NAME',
+ '@@CONNECTIONS', '@@PACK_RECEIVED', '@@CPU_BUSY', '@@PACK_SENT', '@@TIMETICKS', '@@IDLE', '@@TOTAL_ERRORS', '@@IO_BUSY', '@@TOTAL_READ',
+ '@@PACKET_ERRORS', '@@TOTAL_WRITE', 'PATINDEX', 'TEXTVALID', 'TEXTPTR'
+ ],
+ 'reserved': [
+ 'RIGHT', 'INNER', 'IS', 'JOIN', 'CROSS', 'LEFT', 'NULL', 'OUTER'
+ ]
+ }
+ ,'OPERATORS' :[
+ '+', '-', '*', '/', '%', '=', '&' ,'|', '^', '>', '<', '>=', '<=', '<>', '!=', '!<', '!>', 'ALL', 'AND', 'ANY', 'BETWEEN', 'EXISTS', 'IN', 'LIKE', 'NOT', 'OR', '~'
+ ]
+ ,'DELIMITERS' :[
+ '(', ')', '[', ']', '{', '}'
+ ]
+ ,'REGEXPS' : {
+ // highlight all variables (@...)
+ 'variables' : {
+ 'search' : '()(\\@\\w+)()'
+ ,'class' : 'variables'
+ ,'modifiers' : 'g'
+ ,'execute' : 'before' // before or after
+ }
+ }
+ ,'STYLES' : {
+ 'COMMENTS': 'color: #008000;'
+ ,'QUOTESMARKS': 'color: #FF0000;'
+ ,'KEYWORDS' : {
+ 'reserved' : 'color: #808080;'
+ ,'functions' : 'color: #FF00FF;'
+ ,'statements' : 'color: #0000FF;'
+ }
+ ,'OPERATORS' : 'color: #808080;'
+ ,'DELIMITERS' : 'color: #FF8000;'
+ ,'REGEXPS' : {
+ 'variables' : 'color: #E0BD54;'
+ }
+ }
+};
+
+
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/vb.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/vb.js
new file mode 100644
index 0000000..6af501f
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/vb.js
@@ -0,0 +1,53 @@
+editAreaLoader.load_syntax["vb"] = {
+ 'DISPLAY_NAME' : 'Visual Basic'
+ ,'COMMENT_SINGLE' : {1 : "'"}
+ ,'COMMENT_MULTI' : { }
+ ,'QUOTEMARKS' : {1: '"'}
+ ,'KEYWORD_CASE_SENSITIVE' : false
+ ,'KEYWORDS' : {
+ 'statements' : [
+ 'if','then','for','each','while','do','loop',
+ 'else','elseif','select','case','end select',
+ 'until','next','step','to','in','end if'
+ ]
+ ,'keywords' : [
+ 'empty','isempty','nothing','null','isnull','true','false',
+ 'set','call',
+ 'sub','end sub','function','end function','exit','exit function',
+ 'dim','Mod','In','private','public','shared','const'
+ ]
+
+ ,'functions' : [
+ 'CDate','Date','DateAdd','DateDiff','DatePart','DateSerial','DateValue','Day','FormatDateTime',
+ 'Hour','IsDate','Minute','Month',
+ 'MonthName','Now','Second','Time','Timer','TimeSerial','TimeValue','Weekday','WeekdayName ','Year',
+ 'Asc','CBool','CByte','CCur','CDate','CDbl','Chr','CInt','CLng','CSng','CStr','Hex','Oct','FormatCurrency',
+ 'FormatDateTime','FormatNumber','FormatPercent','Abs','Atn','Cos','Exp','Hex','Int','Fix','Log','Oct',
+ 'Rnd','Sgn','Sin','Sqr','Tan',
+ 'Array','Filter','IsArray','Join','LBound','Split','UBound',
+ 'InStr','InStrRev','LCase','Left','Len','LTrim','RTrim','Trim','Mid','Replace','Right','Space','StrComp',
+ 'String','StrReverse','UCase',
+ 'CreateObject','Eval','GetLocale','GetObject','GetRef','InputBox','IsEmpty','IsNull','IsNumeric',
+ 'IsObject','LoadPicture','MsgBox','RGB','Round','ScriptEngine','ScriptEngineBuildVersion','ScriptEngineMajorVersion',
+ 'ScriptEngineMinorVersion','SetLocale','TypeName','VarType'
+ ]
+ }
+ ,'OPERATORS' :[
+ '+', '-', '/', '*', '=', '<', '>', '!', '&'
+ ]
+ ,'DELIMITERS' :[
+ '(', ')', '[', ']', '{', '}'
+ ]
+ ,'STYLES' : {
+ 'COMMENTS': 'color: #99CC00;'
+ ,'QUOTESMARKS': 'color: #333399;'
+ ,'KEYWORDS' : {
+ 'keywords' : 'color: #3366FF;'
+ ,'functions' : 'color: #0000FF;'
+ ,'statements' : 'color: #3366FF;'
+ }
+ ,'OPERATORS' : 'color: #FF0000;'
+ ,'DELIMITERS' : 'color: #0000FF;'
+
+ }
+};
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/xml.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/xml.js
new file mode 100644
index 0000000..074d888
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/edit_area/reg_syntax/xml.js
@@ -0,0 +1,57 @@
+/*
+* last update: 2006-08-24
+*/
+
+editAreaLoader.load_syntax["xml"] = {
+ 'DISPLAY_NAME' : 'XML'
+ ,'COMMENT_SINGLE' : {}
+ ,'COMMENT_MULTI' : {'<!--' : '-->'}
+ ,'QUOTEMARKS' : {1: "'", 2: '"'}
+ ,'KEYWORD_CASE_SENSITIVE' : false
+ ,'KEYWORDS' : {
+ }
+ ,'OPERATORS' :[
+ ]
+ ,'DELIMITERS' :[
+ ]
+ ,'REGEXPS' : {
+ 'xml' : {
+ 'search' : '()(<\\?[^>]*?\\?>)()'
+ ,'class' : 'xml'
+ ,'modifiers' : 'g'
+ ,'execute' : 'before' // before or after
+ }
+ ,'cdatas' : {
+ 'search' : '()(<!\\[CDATA\\[.*?\\]\\]>)()'
+ ,'class' : 'cdata'
+ ,'modifiers' : 'g'
+ ,'execute' : 'before' // before or after
+ }
+ ,'tags' : {
+ 'search' : '(<)(/?[a-z][^ \r\n\t>]*)([^>]*>)'
+ ,'class' : 'tags'
+ ,'modifiers' : 'gi'
+ ,'execute' : 'before' // before or after
+ }
+ ,'attributes' : {
+ 'search' : '( |\n|\r|\t)([^ \r\n\t=]+)(=)'
+ ,'class' : 'attributes'
+ ,'modifiers' : 'g'
+ ,'execute' : 'before' // before or after
+ }
+ }
+ ,'STYLES' : {
+ 'COMMENTS': 'color: #AAAAAA;'
+ ,'QUOTESMARKS': 'color: #6381F8;'
+ ,'KEYWORDS' : {
+ }
+ ,'OPERATORS' : 'color: #E775F0;'
+ ,'DELIMITERS' : ''
+ ,'REGEXPS' : {
+ 'attributes': 'color: #B1AC41;'
+ ,'tags': 'color: #E62253;'
+ ,'xml': 'color: #8DCFB5;'
+ ,'cdata': 'color: #50B020;'
+ }
+ }
+};