-
-/* file:jscripts/tiny_mce/classes/TinyMCE_Engine.class.js */
-
-function TinyMCE_Engine() {
- var ua;
-
- this.majorVersion = "2";
- this.minorVersion = "1.1.1";
- this.releaseDate = "2007-05-14";
-
- this.instances = [];
- this.switchClassCache = [];
- this.windowArgs = [];
- this.loadedFiles = [];
- this.pendingFiles = [];
- this.loadingIndex = 0;
- this.configs = [];
- this.currentConfig = 0;
- this.eventHandlers = [];
- this.log = [];
- this.undoLevels = [];
- this.undoIndex = 0;
- this.typingUndoIndex = -1;
- this.settings = [];
-
- // Browser check
- ua = navigator.userAgent;
- this.isMSIE = (navigator.appName == "Microsoft Internet Explorer");
- this.isMSIE5 = this.isMSIE && (ua.indexOf('MSIE 5') != -1);
- this.isMSIE5_0 = this.isMSIE && (ua.indexOf('MSIE 5.0') != -1);
- this.isMSIE7 = this.isMSIE && (ua.indexOf('MSIE 7') != -1);
- this.isGecko = ua.indexOf('Gecko') != -1; // Will also be true on Safari
- this.isSafari = ua.indexOf('Safari') != -1;
- this.isOpera = window['opera'] && opera.buildNumber ? true : false;
- this.isMac = ua.indexOf('Mac') != -1;
- this.isNS7 = ua.indexOf('Netscape/7') != -1;
- this.isNS71 = ua.indexOf('Netscape/7.1') != -1;
- this.dialogCounter = 0;
- this.plugins = [];
- this.themes = [];
- this.menus = [];
- this.loadedPlugins = [];
- this.buttonMap = [];
- this.isLoaded = false;
-
- // Fake MSIE on Opera and if Opera fakes IE, Gecko or Safari cancel those
- if (this.isOpera) {
- this.isMSIE = true;
- this.isGecko = false;
- this.isSafari = false;
- }
-
- this.isIE = this.isMSIE;
- this.isRealIE = this.isMSIE && !this.isOpera;
-
- // TinyMCE editor id instance counter
- this.idCounter = 0;
-};
-
-TinyMCE_Engine.prototype = {
- init : function(settings) {
- var theme, nl, baseHREF = "", i, cssPath, entities, h, p, src, elements = [], head;
-
- // IE 5.0x is no longer supported since 5.5, 6.0 and 7.0 now exists. We can't support old browsers forever, sorry.
- if (this.isMSIE5_0)
- return;
-
- this.settings = settings;
-
- // Check if valid browser has execcommand support
- if (typeof(document.execCommand) == 'undefined')
- return;
-
- // Get script base path
- if (!tinyMCE.baseURL) {
- // Search through head
- head = document.getElementsByTagName('head')[0];
-
- if (head) {
- for (i=0, nl = head.getElementsByTagName('script'); i<nl.length; i++)
- elements.push(nl[i]);
- }
-
- // Search through rest of document
- for (i=0, nl = document.getElementsByTagName('script'); i<nl.length; i++)
- elements.push(nl[i]);
-
- // If base element found, add that infront of baseURL
- nl = document.getElementsByTagName('base');
- for (i=0; i<nl.length; i++) {
- if (nl[i].href)
- baseHREF = nl[i].href;
- }
-
- for (i=0; i<elements.length; i++) {
- if (elements[i].src && (elements[i].src.indexOf("tiny_mce.js") != -1 || elements[i].src.indexOf("tiny_mce_dev.js") != -1 || elements[i].src.indexOf("tiny_mce_src.js") != -1 || elements[i].src.indexOf("tiny_mce_gzip") != -1)) {
- src = elements[i].src;
-
- tinyMCE.srcMode = (src.indexOf('_src') != -1 || src.indexOf('_dev') != -1) ? '_src' : '';
- tinyMCE.gzipMode = src.indexOf('_gzip') != -1;
- src = src.substring(0, src.lastIndexOf('/'));
-
- if (settings.exec_mode == "src" || settings.exec_mode == "normal")
- tinyMCE.srcMode = settings.exec_mode == "src" ? '_src' : '';
-
- // Force it absolute if page has a base href
- if (baseHREF !== '' && src.indexOf('://') == -1)
- tinyMCE.baseURL = baseHREF + src;
- else
- tinyMCE.baseURL = src;
-
- break;
- }
- }
- }
-
- // Get document base path
- this.documentBasePath = document.location.href;
- if (this.documentBasePath.indexOf('?') != -1)
- this.documentBasePath = this.documentBasePath.substring(0, this.documentBasePath.indexOf('?'));
- this.documentURL = this.documentBasePath;
- this.documentBasePath = this.documentBasePath.substring(0, this.documentBasePath.lastIndexOf('/'));
-
- // If not HTTP absolute
- if (tinyMCE.baseURL.indexOf('://') == -1 && tinyMCE.baseURL.charAt(0) != '/') {
- // If site absolute
- tinyMCE.baseURL = this.documentBasePath + "/" + tinyMCE.baseURL;
- }
-
- // Set default values on settings
- this._def("mode", "none");
- this._def("theme", "advanced");
- this._def("plugins", "", true);
- this._def("language", "en");
- this._def("docs_language", this.settings.language);
- this._def("elements", "");
- this._def("textarea_trigger", "mce_editable");
- this._def("editor_selector", "");
- this._def("editor_deselector", "mceNoEditor");
- this._def("valid_elements", "+a[id|style|rel|rev|charset|hreflang|dir|lang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur|onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup],-strong/-b[class|style],-em/-i[class|style],-strike[class|style],-u[class|style],#p[id|style|dir|class|align],-ol[class|style],-ul[class|style],-li[class|style],br,img[id|dir|lang|longdesc|usemap|style|class|src|onmouseover|onmouseout|border|alt=|title|hspace|vspace|width|height|align],-sub[style|class],-sup[style|class],-blockquote[dir|style],-table[border=0|cellspacing|cellpadding|width|height|class|align|summary|style|dir|id|lang|bgcolor|background|bordercolor],-tr[id|lang|dir|class|rowspan|width|height|align|valign|style|bgcolor|background|bordercolor],tbody[id|class],thead[id|class],tfoot[id|class],#td[id|lang|dir|class|colspan|rowspan|width|height|align|valign|style|bgcolor|background|bordercolor|scope],-th[id|lang|dir|class|colspan|rowspan|width|height|align|valign|style|scope],caption[id|lang|dir|class|style],-div[id|dir|class|align|style],-span[style|class|align],-pre[class|align|style],address[class|align|style],-h1[id|style|dir|class|align],-h2[id|style|dir|class|align],-h3[id|style|dir|class|align],-h4[id|style|dir|class|align],-h5[id|style|dir|class|align],-h6[id|style|dir|class|align],hr[class|style],-font[face|size|style|id|class|dir|color],dd[id|class|title|style|dir|lang],dl[id|class|title|style|dir|lang],dt[id|class|title|style|dir|lang],cite[title|id|class|style|dir|lang],abbr[title|id|class|style|dir|lang],acronym[title|id|class|style|dir|lang],del[title|id|class|style|dir|lang|datetime|cite],ins[title|id|class|style|dir|lang|datetime|cite]");
- this._def("extended_valid_elements", "");
- this._def("invalid_elements", "");
- this._def("encoding", "");
- this._def("urlconverter_callback", tinyMCE.getParam("urlconvertor_callback", "TinyMCE_Engine.prototype.convertURL"));
- this._def("save_callback", "");
- this._def("force_br_newlines", false);
- this._def("force_p_newlines", true);
- this._def("add_form_submit_trigger", true);
- this._def("relative_urls", true);
- this._def("remove_script_host", true);
- this._def("focus_alert", true);
- this._def("document_base_url", this.documentURL);
- this._def("visual", true);
- this._def("visual_table_class", "mceVisualAid");
- this._def("setupcontent_callback", "");
- this._def("fix_content_duplication", true);
- this._def("custom_undo_redo", true);
- this._def("custom_undo_redo_levels", -1);
- this._def("custom_undo_redo_keyboard_shortcuts", true);
- this._def("custom_undo_redo_restore_selection", true);
- this._def("custom_undo_redo_global", false);
- this._def("verify_html", true);
- this._def("apply_source_formatting", false);
- this._def("directionality", "ltr");
- this._def("cleanup_on_startup", false);
- this._def("inline_styles", false);
- this._def("convert_newlines_to_brs", false);
- this._def("auto_reset_designmode", true);
- this._def("entities", "39,#39,160,nbsp,161,iexcl,162,cent,163,pound,164,curren,165,yen,166,brvbar,167,sect,168,uml,169,copy,170,ordf,171,laquo,172,not,173,shy,174,reg,175,macr,176,deg,177,plusmn,178,sup2,179,sup3,180,acute,181,micro,182,para,183,middot,184,cedil,185,sup1,186,ordm,187,raquo,188,frac14,189,frac12,190,frac34,191,iquest,192,Agrave,193,Aacute,194,Acirc,195,Atilde,196,Auml,197,Aring,198,AElig,199,Ccedil,200,Egrave,201,Eacute,202,Ecirc,203,Euml,204,Igrave,205,Iacute,206,Icirc,207,Iuml,208,ETH,209,Ntilde,210,Ograve,211,Oacute,212,Ocirc,213,Otilde,214,Ouml,215,times,216,Oslash,217,Ugrave,218,Uacute,219,Ucirc,220,Uuml,221,Yacute,222,THORN,223,szlig,224,agrave,225,aacute,226,acirc,227,atilde,228,auml,229,aring,230,aelig,231,ccedil,232,egrave,233,eacute,234,ecirc,235,euml,236,igrave,237,iacute,238,icirc,239,iuml,240,eth,241,ntilde,242,ograve,243,oacute,244,ocirc,245,otilde,246,ouml,247,divide,248,oslash,249,ugrave,250,uacute,251,ucirc,252,uuml,253,yacute,254,thorn,255,yuml,402,fnof,913,Alpha,914,Beta,915,Gamma,916,Delta,917,Epsilon,918,Zeta,919,Eta,920,Theta,921,Iota,922,Kappa,923,Lambda,924,Mu,925,Nu,926,Xi,927,Omicron,928,Pi,929,Rho,931,Sigma,932,Tau,933,Upsilon,934,Phi,935,Chi,936,Psi,937,Omega,945,alpha,946,beta,947,gamma,948,delta,949,epsilon,950,zeta,951,eta,952,theta,953,iota,954,kappa,955,lambda,956,mu,957,nu,958,xi,959,omicron,960,pi,961,rho,962,sigmaf,963,sigma,964,tau,965,upsilon,966,phi,967,chi,968,psi,969,omega,977,thetasym,978,upsih,982,piv,8226,bull,8230,hellip,8242,prime,8243,Prime,8254,oline,8260,frasl,8472,weierp,8465,image,8476,real,8482,trade,8501,alefsym,8592,larr,8593,uarr,8594,rarr,8595,darr,8596,harr,8629,crarr,8656,lArr,8657,uArr,8658,rArr,8659,dArr,8660,hArr,8704,forall,8706,part,8707,exist,8709,empty,8711,nabla,8712,isin,8713,notin,8715,ni,8719,prod,8721,sum,8722,minus,8727,lowast,8730,radic,8733,prop,8734,infin,8736,ang,8743,and,8744,or,8745,cap,8746,cup,8747,int,8756,there4,8764,sim,8773,cong,8776,asymp,8800,ne,8801,equiv,8804,le,8805,ge,8834,sub,8835,sup,8836,nsub,8838,sube,8839,supe,8853,oplus,8855,otimes,8869,perp,8901,sdot,8968,lceil,8969,rceil,8970,lfloor,8971,rfloor,9001,lang,9002,rang,9674,loz,9824,spades,9827,clubs,9829,hearts,9830,diams,34,quot,38,amp,60,lt,62,gt,338,OElig,339,oelig,352,Scaron,353,scaron,376,Yuml,710,circ,732,tilde,8194,ensp,8195,emsp,8201,thinsp,8204,zwnj,8205,zwj,8206,lrm,8207,rlm,8211,ndash,8212,mdash,8216,lsquo,8217,rsquo,8218,sbquo,8220,ldquo,8221,rdquo,8222,bdquo,8224,dagger,8225,Dagger,8240,permil,8249,lsaquo,8250,rsaquo,8364,euro", true);
- this._def("entity_encoding", "named");
- this._def("cleanup_callback", "");
- this._def("add_unload_trigger", true);
- this._def("ask", false);
- this._def("nowrap", false);
- this._def("auto_resize", false);
- this._def("auto_focus", false);
- this._def("cleanup", true);
- this._def("remove_linebreaks", true);
- this._def("button_tile_map", false);
- this._def("submit_patch", true);
- this._def("browsers", "msie,safari,gecko,opera", true);
- this._def("dialog_type", "window");
- this._def("accessibility_warnings", true);
- this._def("accessibility_focus", true);
- this._def("merge_styles_invalid_parents", "");
- this._def("force_hex_style_colors", true);
- this._def("trim_span_elements", true);
- this._def("convert_fonts_to_spans", false);
- this._def("doctype", '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">');
- this._def("font_size_classes", '');
- this._def("font_size_style_values", 'xx-small,x-small,small,medium,large,x-large,xx-large', true);
- this._def("event_elements", 'a,img', true);
- this._def("convert_urls", true);
- this._def("table_inline_editing", false);
- this._def("object_resizing", true);
- this._def("custom_shortcuts", true);
- this._def("convert_on_click", false);
- this._def("content_css", '');
- this._def("fix_list_elements", true);
- this._def("fix_table_elements", false);
- this._def("strict_loading_mode", document.contentType == 'application/xhtml+xml');
- this._def("hidden_tab_class", '');
- this._def("display_tab_class", '');
- this._def("gecko_spellcheck", false);
- this._def("hide_selects_on_submit", true);
- this._def("forced_root_block", false);
- this._def("remove_trailing_nbsp", false);
-
- // Force strict loading mode to false on non Gecko browsers
- if (this.isMSIE && !this.isOpera)
- this.settings.strict_loading_mode = false;
-
- // Browser check IE
- if (this.isMSIE && this.settings.browsers.indexOf('msie') == -1)
- return;
-
- // Browser check Gecko
- if (this.isGecko && this.settings.browsers.indexOf('gecko') == -1)
- return;
-
- // Browser check Safari
- if (this.isSafari && this.settings.browsers.indexOf('safari') == -1)
- return;
-
- // Browser check Opera
- if (this.isOpera && this.settings.browsers.indexOf('opera') == -1)
- return;
-
- // If not super absolute make it so
- baseHREF = tinyMCE.settings.document_base_url;
- h = document.location.href;
- p = h.indexOf('://');
- if (p > 0 && document.location.protocol != "file:") {
- p = h.indexOf('/', p + 3);
- h = h.substring(0, p);
-
- if (baseHREF.indexOf('://') == -1)
- baseHREF = h + baseHREF;
-
- tinyMCE.settings.document_base_url = baseHREF;
- tinyMCE.settings.document_base_prefix = h;
- }
-
- // Trim away query part
- if (baseHREF.indexOf('?') != -1)
- baseHREF = baseHREF.substring(0, baseHREF.indexOf('?'));
-
- this.settings.base_href = baseHREF.substring(0, baseHREF.lastIndexOf('/')) + "/";
-
- theme = this.settings.theme;
- this.inlineStrict = 'A|BR|SPAN|BDO|MAP|OBJECT|IMG|TT|I|B|BIG|SMALL|EM|STRONG|DFN|CODE|Q|SAMP|KBD|VAR|CITE|ABBR|ACRONYM|SUB|SUP|#text|#comment';
- this.inlineTransitional = 'A|BR|SPAN|BDO|OBJECT|APPLET|IMG|MAP|IFRAME|TT|I|B|U|S|STRIKE|BIG|SMALL|FONT|BASEFONT|EM|STRONG|DFN|CODE|Q|SAMP|KBD|VAR|CITE|ABBR|ACRONYM|SUB|SUP|INPUT|SELECT|TEXTAREA|LABEL|BUTTON|#text|#comment';
- this.blockElms = 'H[1-6]|P|DIV|ADDRESS|PRE|FORM|TABLE|LI|OL|UL|TD|CAPTION|BLOCKQUOTE|CENTER|DL|DT|DD|DIR|FIELDSET|FORM|NOSCRIPT|NOFRAMES|MENU|ISINDEX|SAMP';
- this.blockRegExp = new RegExp("^(" + this.blockElms + ")$", "i");
- this.posKeyCodes = [13,45,36,35,33,34,37,38,39,40];
- this.uniqueURL = 'javascript:void(091039730);'; // Make unique URL non real URL
- this.uniqueTag = '<div id="mceTMPElement" style="display: none">TMP</div>';
- this.callbacks = ['onInit', 'getInfo', 'getEditorTemplate', 'setupContent', 'onChange', 'onPageLoad', 'handleNodeChange', 'initInstance', 'execCommand', 'getControlHTML', 'handleEvent', 'cleanup', 'removeInstance'];
-
- // Theme url
- this.settings.theme_href = tinyMCE.baseURL + "/themes/" + theme;
-
- if (!tinyMCE.isIE || tinyMCE.isOpera)
- this.settings.force_br_newlines = false;
-
- if (tinyMCE.getParam("popups_css", false)) {
- cssPath = tinyMCE.getParam("popups_css", "");
-
- // Is relative
- if (cssPath.indexOf('://') == -1 && cssPath.charAt(0) != '/')
- this.settings.popups_css = this.documentBasePath + "/" + cssPath;
- else
- this.settings.popups_css = cssPath;
- } else
- this.settings.popups_css = tinyMCE.baseURL + "/themes/" + theme + "/css/editor_popup.css";
-
- if (tinyMCE.getParam("editor_css", false)) {
- cssPath = tinyMCE.getParam("editor_css", "");
-
- // Is relative
- if (cssPath.indexOf('://') == -1 && cssPath.charAt(0) != '/')
- this.settings.editor_css = this.documentBasePath + "/" + cssPath;
- else
- this.settings.editor_css = cssPath;
- } else {
- if (this.settings.editor_css !== '')
- this.settings.editor_css = tinyMCE.baseURL + "/themes/" + theme + "/css/editor_ui.css";
- }
-
- // Only do this once
- if (this.configs.length == 0) {
- if (typeof(TinyMCECompressed) == "undefined") {
- tinyMCE.addEvent(window, "DOMContentLoaded", TinyMCE_Engine.prototype.onLoad);
-
- if (tinyMCE.isRealIE) {
- if (document.body)
- tinyMCE.addEvent(document.body, "readystatechange", TinyMCE_Engine.prototype.onLoad);
- else
- tinyMCE.addEvent(document, "readystatechange", TinyMCE_Engine.prototype.onLoad);
- }
-
- tinyMCE.addEvent(window, "load", TinyMCE_Engine.prototype.onLoad);
- tinyMCE._addUnloadEvents();
- }
- }
-
- this.loadScript(tinyMCE.baseURL + '/themes/' + this.settings.theme + '/editor_template' + tinyMCE.srcMode + '.js');
- this.loadScript(tinyMCE.baseURL + '/langs/' + this.settings.language + '.js');
- this.loadCSS(this.settings.editor_css);
-
- // Add plugins
- p = tinyMCE.getParam('plugins', '', true, ',');
- if (p.length > 0) {
- for (i=0; i<p.length; i++) {
- if (p[i].charAt(0) != '-')
- this.loadScript(tinyMCE.baseURL + '/plugins/' + p[i] + '/editor_plugin' + tinyMCE.srcMode + '.js');
- }
- }
-
- // Setup entities
- if (tinyMCE.getParam('entity_encoding') == 'named') {
- settings.cleanup_entities = [];
- entities = tinyMCE.getParam('entities', '', true, ',');
- for (i=0; i<entities.length; i+=2)
- settings.cleanup_entities['c' + entities[i]] = entities[i+1];
- }
-
- // Save away this config
- settings.index = this.configs.length;
- this.configs[this.configs.length] = settings;
-
- // Start loading first one in chain
- this.loadNextScript();
-
- // Force flicker free CSS backgrounds in IE
- if (this.isIE && !this.isOpera) {
- try {
- document.execCommand('BackgroundImageCache', false, true);
- } catch (e) {
- // Ignore
- }
- }
-
- // Setup XML encoding regexps
- this.xmlEncodeRe = new RegExp('[<>&"]', 'g');
- },
-
- _addUnloadEvents : function() {
- var st = tinyMCE.settings.add_unload_trigger;
-
- if (tinyMCE.isIE) {
- if (st) {
- tinyMCE.addEvent(window, "unload", TinyMCE_Engine.prototype.unloadHandler);
- tinyMCE.addEvent(window.document, "beforeunload", TinyMCE_Engine.prototype.unloadHandler);
- }
- } else {
- if (st)
- tinyMCE.addEvent(window, "unload", function () {tinyMCE.triggerSave(true, true);});
- }
- },
-
- _def : function(key, def_val, t) {
- var v = tinyMCE.getParam(key, def_val);
-
- v = t ? v.replace(/\s+/g, "") : v;
-
- this.settings[key] = v;
- },
-
- hasPlugin : function(n) {
- return typeof(this.plugins[n]) != "undefined" && this.plugins[n] != null;
- },
-
- addPlugin : function(n, p) {
- var op = this.plugins[n];
-
- // Use the previous plugin object base URL used when loading external plugins
- p.baseURL = op ? op.baseURL : tinyMCE.baseURL + "/plugins/" + n;
- this.plugins[n] = p;
-
- this.loadNextScript();
- },
-
- setPluginBaseURL : function(n, u) {
- var op = this.plugins[n];
-
- if (op)
- op.baseURL = u;
- else
- this.plugins[n] = {baseURL : u};
- },
-
- loadPlugin : function(n, u) {
- u = u.indexOf('.js') != -1 ? u.substring(0, u.lastIndexOf('/')) : u;
- u = u.charAt(u.length-1) == '/' ? u.substring(0, u.length-1) : u;
- this.plugins[n] = {baseURL : u};
- this.loadScript(u + "/editor_plugin" + (tinyMCE.srcMode ? '_src' : '') + ".js");
- },
-
- hasTheme : function(n) {
- return typeof(this.themes[n]) != "undefined" && this.themes[n] != null;
- },
-
- addTheme : function(n, t) {
- this.themes[n] = t;
-
- this.loadNextScript();
- },
-
- addMenu : function(n, m) {
- this.menus[n] = m;
- },
-
- hasMenu : function(n) {
- return typeof(this.plugins[n]) != "undefined" && this.plugins[n] != null;
- },
-
- loadScript : function(url) {
- var i;
-
- for (i=0; i<this.loadedFiles.length; i++) {
- if (this.loadedFiles[i] == url)
- return;
- }
-
- if (tinyMCE.settings.strict_loading_mode)
- this.pendingFiles[this.pendingFiles.length] = url;
- else
- document.write('<sc'+'ript language="javascript" type="text/javascript" src="' + url + '"></script>');
-
- this.loadedFiles[this.loadedFiles.length] = url;
- },
-
- loadNextScript : function() {
- var d = document, se;
-
- if (!tinyMCE.settings.strict_loading_mode)
- return;
-
- if (this.loadingIndex < this.pendingFiles.length) {
- se = d.createElementNS('http://www.w3.org/1999/xhtml', 'script');
- se.setAttribute('language', 'javascript');
- se.setAttribute('type', 'text/javascript');
- se.setAttribute('src', this.pendingFiles[this.loadingIndex++]);
-
- d.getElementsByTagName("head")[0].appendChild(se);
- } else
- this.loadingIndex = -1; // Done with loading
- },
-
- loadCSS : function(url) {
- var ar = url.replace(/\s+/, '').split(',');
- var lflen = 0, csslen = 0, skip = false;
- var x = 0, i = 0, nl, le;
-
- for (x = 0,csslen = ar.length; x<csslen; x++) {
- if (ar[x] != null && ar[x] != 'null' && ar[x].length > 0) {
- /* Make sure it doesn't exist. */
- for (i=0, lflen=this.loadedFiles.length; i<lflen; i++) {
- if (this.loadedFiles[i] == ar[x]) {
- skip = true;
- break;
- }
- }
-
- if (!skip) {
- if (tinyMCE.settings.strict_loading_mode) {
- nl = document.getElementsByTagName("head");
-
- le = document.createElement('link');
- le.setAttribute('href', ar[x]);
- le.setAttribute('rel', 'stylesheet');
- le.setAttribute('type', 'text/css');
-
- nl[0].appendChild(le);
- } else
- document.write('<link href="' + ar[x] + '" rel="stylesheet" type="text/css" />');
-
- this.loadedFiles[this.loadedFiles.length] = ar[x];
- }
- }
- }
- },
-
- importCSS : function(doc, css) {
- var css_ary = css.replace(/\s+/, '').split(',');
- var csslen, elm, headArr, x, css_file;
-
- for (x = 0, csslen = css_ary.length; x<csslen; x++) {
- css_file = css_ary[x];
-
- if (css_file != null && css_file != 'null' && css_file.length > 0) {
- // Is relative, make absolute
- if (css_file.indexOf('://') == -1 && css_file.charAt(0) != '/')
- css_file = this.documentBasePath + "/" + css_file;
-
- if (typeof(doc.createStyleSheet) == "undefined") {
- elm = doc.createElement("link");
-
- elm.rel = "stylesheet";
- elm.href = css_file;
-
- if ((headArr = doc.getElementsByTagName("head")) != null && headArr.length > 0)
- headArr[0].appendChild(elm);
- } else
- doc.createStyleSheet(css_file);
- }
- }
- },
-
- confirmAdd : function(e, settings) {
- var elm = tinyMCE.isIE ? event.srcElement : e.target;
- var elementId = elm.name ? elm.name : elm.id;
-
- tinyMCE.settings = settings;
-
- if (tinyMCE.settings.convert_on_click || (!elm.getAttribute('mce_noask') && confirm(tinyMCELang.lang_edit_confirm)))
- tinyMCE.addMCEControl(elm, elementId);
-
- elm.setAttribute('mce_noask', 'true');
- },
-
- updateContent : function(form_element_name) {
- var formElement, n, inst, doc;
-
- // Find MCE instance linked to given form element and copy it's value
- formElement = document.getElementById(form_element_name);
- for (n in tinyMCE.instances) {
- inst = tinyMCE.instances[n];
-
- if (!tinyMCE.isInstance(inst))
- continue;
-
- inst.switchSettings();
-
- if (inst.formElement == formElement) {
- doc = inst.getDoc();
-
- tinyMCE._setHTML(doc, inst.formElement.value);
-
- if (!tinyMCE.isIE)
- doc.body.innerHTML = tinyMCE._cleanupHTML(inst, doc, this.settings, doc.body, inst.visualAid);
- }
- }
- },
-
- addMCEControl : function(replace_element, form_element_name, target_document) {
- var id = "mce_editor_" + tinyMCE.idCounter++;
- var inst = new TinyMCE_Control(tinyMCE.settings);
-
- inst.editorId = id;
- this.instances[id] = inst;
-
- inst._onAdd(replace_element, form_element_name, target_document);
- },
-
- removeInstance : function(ti) {
- var t = [], n, i;
-
- // Remove from instances
- for (n in tinyMCE.instances) {
- i = tinyMCE.instances[n];
-
- if (tinyMCE.isInstance(i) && ti != i)
- t[n] = i;
- }
-
- tinyMCE.instances = t;
-
- // Remove from global undo/redo
- n = [];
- t = tinyMCE.undoLevels;
-
- for (i=0; i<t.length; i++) {
- if (t[i] != ti)
- n.push(t[i]);
- }
-
- tinyMCE.undoLevels = n;
- tinyMCE.undoIndex = n.length;
-
- // Dispatch remove instance call
- tinyMCE.dispatchCallback(ti, 'remove_instance_callback', 'removeInstance', ti);
-
- return ti;
- },
-
- removeMCEControl : function(editor_id) {
- var inst = tinyMCE.getInstanceById(editor_id), h, re, ot, tn;
-
- if (inst) {
- inst.switchSettings();
-
- editor_id = inst.editorId;
- h = tinyMCE.getContent(editor_id);
-
- this.removeInstance(inst);
-
- tinyMCE.selectedElement = null;
- tinyMCE.selectedInstance = null;
-
- // Remove element
- re = document.getElementById(editor_id + "_parent");
- ot = inst.oldTargetElement;
- tn = ot.nodeName.toLowerCase();
-
- if (tn == "textarea" || tn == "input") {
- re.parentNode.removeChild(re);
- ot.style.display = "inline";
- ot.value = h;
- } else {
- ot.innerHTML = h;
- ot.style.display = 'block';
- re.parentNode.insertBefore(ot, re);
- re.parentNode.removeChild(re);
- }
- }
- },
-
- triggerSave : function(skip_cleanup, skip_callback) {
- var inst, n;
-
- // Default to false
- if (typeof(skip_cleanup) == "undefined")
- skip_cleanup = false;
-
- // Default to false
- if (typeof(skip_callback) == "undefined")
- skip_callback = false;
-
- // Cleanup and set all form fields
- for (n in tinyMCE.instances) {
- inst = tinyMCE.instances[n];
-
- if (!tinyMCE.isInstance(inst))
- continue;
-
- inst.triggerSave(skip_cleanup, skip_callback);
- }
- },
-
- resetForm : function(form_index) {
- var i, inst, n, formObj = document.forms[form_index];
-
- for (n in tinyMCE.instances) {
- inst = tinyMCE.instances[n];
-
- if (!tinyMCE.isInstance(inst))
- continue;
-
- inst.switchSettings();
-
- for (i=0; i<formObj.elements.length; i++) {
- if (inst.formTargetElementId == formObj.elements[i].name)
- inst.getBody().innerHTML = inst.startContent;
- }
- }
- },
-
- execInstanceCommand : function(editor_id, command, user_interface, value, focus) {
- var inst = tinyMCE.getInstanceById(editor_id), r;
-
- if (inst) {
- r = inst.selection.getRng();
-
- if (typeof(focus) == "undefined")
- focus = true;
-
- // IE bug lost focus on images in absolute divs Bug #1534575
- if (focus && (!r || !r.item))
- inst.contentWindow.focus();
-
- // Reset design mode if lost
- inst.autoResetDesignMode();
-
- this.selectedElement = inst.getFocusElement();
- inst.select();
- tinyMCE.execCommand(command, user_interface, value);
-
- // Cancel event so it doesn't call onbeforeonunlaod
- if (tinyMCE.isIE && window.event != null)
- tinyMCE.cancelEvent(window.event);
- }
- },
-
- execCommand : function(command, user_interface, value) {
- var inst = tinyMCE.selectedInstance, n, pe, te;
-
- // Default input
- user_interface = user_interface ? user_interface : false;
- value = value ? value : null;
-
- if (inst)
- inst.switchSettings();
-
- switch (command) {
- case "Undo":
- if (this.getParam('custom_undo_redo_global')) {
- if (this.undoIndex > 0) {
- tinyMCE.nextUndoRedoAction = 'Undo';
- inst = this.undoLevels[--this.undoIndex];
- inst.select();
-
- if (!tinyMCE.nextUndoRedoInstanceId)
- inst.execCommand('Undo');
- }
- } else
- inst.execCommand('Undo');
- return true;
-
- case "Redo":
- if (this.getParam('custom_undo_redo_global')) {
- if (this.undoIndex <= this.undoLevels.length - 1) {
- tinyMCE.nextUndoRedoAction = 'Redo';
- inst = this.undoLevels[this.undoIndex++];
- inst.select();
-
- if (!tinyMCE.nextUndoRedoInstanceId)
- inst.execCommand('Redo');
- }
- } else
- inst.execCommand('Redo');
-
- return true;
-
- case 'mceFocus':
- inst = tinyMCE.getInstanceById(value);
-
- if (inst)
- inst.getWin().focus();
- return;
-
- case "mceAddControl":
- case "mceAddEditor":
- tinyMCE.addMCEControl(tinyMCE._getElementById(value), value);
- return;
-
- case "mceAddFrameControl":
- tinyMCE.addMCEControl(tinyMCE._getElementById(value.element, value.document), value.element, value.document);
- return;
-
- case "mceRemoveControl":
- case "mceRemoveEditor":
- tinyMCE.removeMCEControl(value);
- return;
-
- case "mceToggleEditor":
- inst = tinyMCE.getInstanceById(value);
-
- if (inst) {
- pe = document.getElementById(inst.editorId + '_parent');
- te = inst.oldTargetElement;
-
- if (typeof(inst.enabled) == 'undefined')
- inst.enabled = true;
-
- inst.enabled = !inst.enabled;
-
- if (!inst.enabled) {
- pe.style.display = 'none';
-
- if (te.nodeName == 'TEXTAREA' || te.nodeName == 'INPUT')
- te.value = inst.getHTML();
- else
- te.innerHTML = inst.getHTML();
-
- te.style.display = inst.oldTargetDisplay;
- tinyMCE.dispatchCallback(inst, 'hide_instance_callback', 'hideInstance', inst);
- } else {
- pe.style.display = 'block';
- te.style.display = 'none';
-
- if (te.nodeName == 'TEXTAREA' || te.nodeName == 'INPUT')
- inst.setHTML(te.value);
- else
- inst.setHTML(te.innerHTML);
-
- inst.useCSS = false;
- tinyMCE.dispatchCallback(inst, 'show_instance_callback', 'showInstance', inst);
- }
- } else
- tinyMCE.addMCEControl(tinyMCE._getElementById(value), value);
-
- return;
-
- case "mceResetDesignMode":
- // Resets the designmode state of the editors in Gecko
- if (tinyMCE.isGecko) {
- for (n in tinyMCE.instances) {
- if (!tinyMCE.isInstance(tinyMCE.instances[n]))
- continue;
-
- try {
- tinyMCE.instances[n].getDoc().designMode = "off";
- tinyMCE.instances[n].getDoc().designMode = "on";
- tinyMCE.instances[n].useCSS = false;
- } catch (e) {
- // Ignore any errors
- }
- }
- }
-
- return;
- }
-
- if (inst) {
- inst.execCommand(command, user_interface, value);
- } else if (tinyMCE.settings.focus_alert)
- alert(tinyMCELang.lang_focus_alert);
- },
-
- _createIFrame : function(replace_element, doc, win) {
- var iframe, id = replace_element.getAttribute("id");
- var aw, ah;
-
- if (typeof(doc) == "undefined")
- doc = document;
-
- if (typeof(win) == "undefined")
- win = window;
-
- iframe = doc.createElement("iframe");
-
- aw = "" + tinyMCE.settings.area_width;
- ah = "" + tinyMCE.settings.area_height;
-
- if (aw.indexOf('%') == -1) {
- aw = parseInt(aw);
- aw = (isNaN(aw) || aw < 0) ? 300 : aw;
- aw = aw + "px";
- }
-
- if (ah.indexOf('%') == -1) {
- ah = parseInt(ah);
- ah = (isNaN(ah) || ah < 0) ? 240 : ah;
- ah = ah + "px";
- }
-
- iframe.setAttribute("id", id);
- iframe.setAttribute("name", id);
- iframe.setAttribute("class", "mceEditorIframe");
- iframe.setAttribute("border", "0");
- iframe.setAttribute("frameBorder", "0");
- iframe.setAttribute("marginWidth", "0");
- iframe.setAttribute("marginHeight", "0");
- iframe.setAttribute("leftMargin", "0");
- iframe.setAttribute("topMargin", "0");
- iframe.setAttribute("width", aw);
- iframe.setAttribute("height", ah);
- iframe.setAttribute("allowtransparency", "true");
- iframe.className = 'mceEditorIframe';
-
- if (tinyMCE.settings.auto_resize)
- iframe.setAttribute("scrolling", "no");
-
- // Must have a src element in MSIE HTTPs breaks aswell as absoute URLs
- if (tinyMCE.isRealIE)
- iframe.setAttribute("src", this.settings.default_document);
-
- iframe.style.width = aw;
- iframe.style.height = ah;
-
- // Ugly hack for Gecko problem in strict mode
- if (tinyMCE.settings.strict_loading_mode)
- iframe.style.marginBottom = '-5px';
-
- // MSIE 5.0 issue
- if (tinyMCE.isRealIE)
- replace_element.outerHTML = iframe.outerHTML;
- else
- replace_element.parentNode.replaceChild(iframe, replace_element);
-
- if (tinyMCE.isRealIE)
- return win.frames[id];
- else
- return iframe;
- },
-
- setupContent : function(editor_id) {
- var inst = tinyMCE.instances[editor_id], i, doc = inst.getDoc(), head = doc.getElementsByTagName('head').item(0);
- var content = inst.startContent, contentElement, body;
-
- // HTML values get XML encoded in strict mode
- if (tinyMCE.settings.strict_loading_mode) {
- content = content.replace(/</g, '<');
- content = content.replace(/>/g, '>');
- content = content.replace(/"/g, '"');
- content = content.replace(/&/g, '&');
- }
-
- tinyMCE.selectedInstance = inst;
- inst.switchSettings();
-
- // Not loaded correctly hit it again, Mozilla bug #997860
- if (!tinyMCE.isIE && tinyMCE.getParam("setupcontent_reload", false) && doc.title != "blank_page") {
- // This part will remove the designMode status
- // Failes first time in Firefox 1.5b2 on Mac
- try {doc.location.href = tinyMCE.baseURL + "/blank.htm";} catch (ex) {}
- window.setTimeout("tinyMCE.setupContent('" + editor_id + "');", 1000);
- return;
- }
-
- // Wait for it to load
- if (!head || !doc.body) {
- window.setTimeout("tinyMCE.setupContent('" + editor_id + "');", 10);
- return;
- }
-
- // Import theme specific content CSS the user specific
- tinyMCE.importCSS(inst.getDoc(), tinyMCE.baseURL + "/themes/" + inst.settings.theme + "/css/editor_content.css");
- tinyMCE.importCSS(inst.getDoc(), inst.settings.content_css);
- tinyMCE.dispatchCallback(inst, 'init_instance_callback', 'initInstance', inst);
-
- // Setup keyboard shortcuts
- if (tinyMCE.getParam('custom_undo_redo_keyboard_shortcuts')) {
- inst.addShortcut('ctrl', 'z', 'lang_undo_desc', 'Undo');
- inst.addShortcut('ctrl', 'y', 'lang_redo_desc', 'Redo');
- }
-
- // BlockFormat shortcuts keys
- for (i=1; i<=6; i++)
- inst.addShortcut('ctrl', '' + i, '', 'FormatBlock', false, '<h' + i + '>');
-
- inst.addShortcut('ctrl', '7', '', 'FormatBlock', false, '<p>');
- inst.addShortcut('ctrl', '8', '', 'FormatBlock', false, '<div>');
- inst.addShortcut('ctrl', '9', '', 'FormatBlock', false, '<address>');
-
- // Add default shortcuts for gecko
- if (tinyMCE.isGecko) {
- inst.addShortcut('ctrl', 'b', 'lang_bold_desc', 'Bold');
- inst.addShortcut('ctrl', 'i', 'lang_italic_desc', 'Italic');
- inst.addShortcut('ctrl', 'u', 'lang_underline_desc', 'Underline');
- }
-
- // Setup span styles
- if (tinyMCE.getParam("convert_fonts_to_spans"))
- inst.getBody().setAttribute('id', 'mceSpanFonts');
-
- if (tinyMCE.settings.nowrap)
- doc.body.style.whiteSpace = "nowrap";
-
- doc.body.dir = this.settings.directionality;
- doc.editorId = editor_id;
-
- // Add on document element in Mozilla
- if (!tinyMCE.isIE)
- doc.documentElement.editorId = editor_id;
-
- inst.setBaseHREF(tinyMCE.settings.base_href);
-
- // Replace new line characters to BRs
- if (tinyMCE.settings.convert_newlines_to_brs) {
- content = tinyMCE.regexpReplace(content, "\r\n", "<br />", "gi");
- content = tinyMCE.regexpReplace(content, "\r", "<br />", "gi");
- content = tinyMCE.regexpReplace(content, "\n", "<br />", "gi");
- }
-
- // Open closed anchors
- // content = content.replace(new RegExp('<a(.*?)/>', 'gi'), '<a$1></a>');
-
- // Call custom cleanup code
- content = tinyMCE.storeAwayURLs(content);
- content = tinyMCE._customCleanup(inst, "insert_to_editor", content);
-
- if (tinyMCE.isIE) {
- // Ugly!!!
- window.setInterval('try{tinyMCE.getCSSClasses(tinyMCE.instances["' + editor_id + '"].getDoc(), "' + editor_id + '");}catch(e){}', 500);
-
- if (tinyMCE.settings.force_br_newlines)
- doc.styleSheets[0].addRule("p", "margin: 0;");
-
- body = inst.getBody();
- body.editorId = editor_id;
- }
-
- content = tinyMCE.cleanupHTMLCode(content);
-
- // Fix for bug #958637
- if (!tinyMCE.isIE) {
- contentElement = inst.getDoc().createElement("body");
- doc = inst.getDoc();
-
- contentElement.innerHTML = content;
-
- if (tinyMCE.settings.cleanup_on_startup)
- tinyMCE.setInnerHTML(inst.getBody(), tinyMCE._cleanupHTML(inst, doc, this.settings, contentElement));
- else
- tinyMCE.setInnerHTML(inst.getBody(), content);
-
- tinyMCE.convertAllRelativeURLs(inst.getBody());
- } else {
- if (tinyMCE.settings.cleanup_on_startup) {
- tinyMCE._setHTML(inst.getDoc(), content);
-
- // Produces permission denied error in MSIE 5.5
- try {
- tinyMCE.setInnerHTML(inst.getBody(), tinyMCE._cleanupHTML(inst, inst.contentDocument, this.settings, inst.getBody()));
- } catch(e) {
- // Ignore
- }
- } else
- tinyMCE._setHTML(inst.getDoc(), content);
- }
-
- // Fix for bug #957681
- //inst.getDoc().designMode = inst.getDoc().designMode;
-
- tinyMCE.handleVisualAid(inst.getBody(), true, tinyMCE.settings.visual, inst);
- tinyMCE.dispatchCallback(inst, 'setupcontent_callback', 'setupContent', editor_id, inst.getBody(), inst.getDoc());
-
- // Re-add design mode on mozilla
- if (!tinyMCE.isIE)
- tinyMCE.addEventHandlers(inst);
-
- // Add blur handler
- if (tinyMCE.isIE) {
- tinyMCE.addEvent(inst.getBody(), "blur", TinyMCE_Engine.prototype._eventPatch);
- tinyMCE.addEvent(inst.getBody(), "beforedeactivate", TinyMCE_Engine.prototype._eventPatch); // Bug #1439953
-
- // Workaround for drag drop/copy paste base href bug
- if (!tinyMCE.isOpera) {
- tinyMCE.addEvent(doc.body, "mousemove", TinyMCE_Engine.prototype.onMouseMove);
- tinyMCE.addEvent(doc.body, "beforepaste", TinyMCE_Engine.prototype._eventPatch);
- tinyMCE.addEvent(doc.body, "drop", TinyMCE_Engine.prototype._eventPatch);
- }
- }
-
- // Trigger node change, this call locks buttons for tables and so forth
- inst.select();
- tinyMCE.selectedElement = inst.contentWindow.document.body;
-
- // Call custom DOM cleanup
- tinyMCE._customCleanup(inst, "insert_to_editor_dom", inst.getBody());
- tinyMCE._customCleanup(inst, "setup_content_dom", inst.getBody());
- tinyMCE._setEventsEnabled(inst.getBody(), false);
- tinyMCE.cleanupAnchors(inst.getDoc());
-
- if (tinyMCE.getParam("convert_fonts_to_spans"))
- tinyMCE.convertSpansToFonts(inst.getDoc());
-
- inst.startContent = tinyMCE.trim(inst.getBody().innerHTML);
- inst.undoRedo.add({ content : inst.startContent });
-
- // Cleanup any mess left from storyAwayURLs
- if (tinyMCE.isGecko) {
- // Remove mce_src from textnodes and comments
- tinyMCE.selectNodes(inst.getBody(), function(n) {
- if (n.nodeType == 3 || n.nodeType == 8)
- n.nodeValue = n.nodeValue.replace(new RegExp('\\s(mce_src|mce_href)=\"[^\"]*\"', 'gi'), "");
-
- return false;
- });
- }
-
- // Remove Gecko spellchecking
- if (tinyMCE.isGecko)
- inst.getBody().spellcheck = tinyMCE.getParam("gecko_spellcheck");
-
- // Cleanup any mess left from storyAwayURLs
- tinyMCE._removeInternal(inst.getBody());
-
- inst.select();
- tinyMCE.triggerNodeChange(false, true);
- },
-
- storeAwayURLs : function(s) {
- // Remove all mce_src, mce_href and replace them with new ones
- // s = s.replace(new RegExp('mce_src\\s*=\\s*\"[^ >\"]*\"', 'gi'), '');
- // s = s.replace(new RegExp('mce_href\\s*=\\s*\"[^ >\"]*\"', 'gi'), '');
-
- if (!s.match(/(mce_src|mce_href)/gi, s)) {
- s = s.replace(new RegExp('src\\s*=\\s*\"([^ >\"]*)\"', 'gi'), 'src="$1" mce_src="$1"');
- s = s.replace(new RegExp('href\\s*=\\s*\"([^ >\"]*)\"', 'gi'), 'href="$1" mce_href="$1"');
- }
-
- return s;
- },
-
- _removeInternal : function(n) {
- if (tinyMCE.isGecko) {
- // Remove mce_src from textnodes and comments
- tinyMCE.selectNodes(n, function(n) {
- if (n.nodeType == 3 || n.nodeType == 8)
- n.nodeValue = n.nodeValue.replace(new RegExp('\\s(mce_src|mce_href)=\"[^\"]*\"', 'gi'), "");
-
- return false;
- });
- }
- },
-
- removeTinyMCEFormElements : function(form_obj) {
- var i, elementId;
-
- // Skip form element removal
- if (!tinyMCE.getParam('hide_selects_on_submit'))
- return;
-
- // Check if form is valid
- if (typeof(form_obj) == "undefined" || form_obj == null)
- return;
-
- // If not a form, find the form
- if (form_obj.nodeName != "FORM") {
- if (form_obj.form)
- form_obj = form_obj.form;
- else
- form_obj = tinyMCE.getParentElement(form_obj, "form");
- }
-
- // Still nothing
- if (form_obj == null)
- return;
-
- // Disable all UI form elements that TinyMCE created
- for (i=0; i<form_obj.elements.length; i++) {
- elementId = form_obj.elements[i].name ? form_obj.elements[i].name : form_obj.elements[i].id;
-
- if (elementId.indexOf('mce_editor_') == 0)
- form_obj.elements[i].disabled = true;
- }
- },
-
- handleEvent : function(e) {
- var inst = tinyMCE.selectedInstance, i, elm, keys;
-
- // Remove odd, error
- if (typeof(tinyMCE) == "undefined")
- return true;
-
- //tinyMCE.debug(e.type + " " + e.target.nodeName + " " + (e.relatedTarget ? e.relatedTarget.nodeName : ""));
-
- if (tinyMCE.executeCallback(tinyMCE.selectedInstance, 'handle_event_callback', 'handleEvent', e))
- return false;
-
- switch (e.type) {
- case "beforedeactivate": // Was added due to bug #1439953
- case "blur":
- if (tinyMCE.selectedInstance)
- tinyMCE.selectedInstance.execCommand('mceEndTyping');
-
- tinyMCE.hideMenus();
-
- return;
-
- // Workaround for drag drop/copy paste base href bug
- case "drop":
- case "beforepaste":
- if (tinyMCE.selectedInstance)
- tinyMCE.selectedInstance.setBaseHREF(null);
-
- // Fixes odd MSIE bug where drag/droping elements in a iframe with height 100% breaks
- // This logic forces the width/height to be in pixels while the user is drag/dropping
- if (tinyMCE.isRealIE) {
- var ife = tinyMCE.selectedInstance.iframeElement;
-
- /*if (ife.style.width.indexOf('%') != -1) {
- ife._oldWidth = ife.width.height;
- ife.style.width = ife.clientWidth;
- }*/
-
- if (ife.style.height.indexOf('%') != -1) {
- ife._oldHeight = ife.style.height;
- ife.style.height = ife.clientHeight;
- }
- }
-
- window.setTimeout("tinyMCE.selectedInstance.setBaseHREF(tinyMCE.settings.base_href);tinyMCE._resetIframeHeight();", 1);
- return;
-
- case "submit":
- tinyMCE.formSubmit(tinyMCE.isMSIE ? window.event.srcElement : e.target);
- return;
-
- case "reset":
- var formObj = tinyMCE.isIE ? window.event.srcElement : e.target;
-
- for (i=0; i<document.forms.length; i++) {
- if (document.forms[i] == formObj)
- window.setTimeout('tinyMCE.resetForm(' + i + ');', 10);
- }
-
- return;
-
- case "keypress":
- if (inst && inst.handleShortcut(e))
- return false;
-
- if (e.target.editorId) {
- tinyMCE.instances[e.target.editorId].select();
- } else {
- if (e.target.ownerDocument.editorId)
- tinyMCE.instances[e.target.ownerDocument.editorId].select();
- }
-
- if (tinyMCE.selectedInstance)
- tinyMCE.selectedInstance.switchSettings();
-
- // Insert P element
- if ((tinyMCE.isGecko || tinyMCE.isOpera || tinyMCE.isSafari) && tinyMCE.settings.force_p_newlines && e.keyCode == 13 && !e.shiftKey) {
- // Insert P element instead of BR
- if (TinyMCE_ForceParagraphs._insertPara(tinyMCE.selectedInstance, e)) {
- // Cancel event
- tinyMCE.execCommand("mceAddUndoLevel");
- return tinyMCE.cancelEvent(e);
- }
- }
-
- // Handle backspace
- if ((tinyMCE.isGecko && !tinyMCE.isSafari) && tinyMCE.settings.force_p_newlines && (e.keyCode == 8 || e.keyCode == 46) && !e.shiftKey) {
- // Insert P element instead of BR
- if (TinyMCE_ForceParagraphs._handleBackSpace(tinyMCE.selectedInstance, e.type)) {
- // Cancel event
- tinyMCE.execCommand("mceAddUndoLevel");
- return tinyMCE.cancelEvent(e);
- }
- }
-
- // Return key pressed
- if (tinyMCE.isIE && tinyMCE.settings.force_br_newlines && e.keyCode == 13) {
- if (e.target.editorId)
- tinyMCE.instances[e.target.editorId].select();
-
- if (tinyMCE.selectedInstance) {
- var sel = tinyMCE.selectedInstance.getDoc().selection;
- var rng = sel.createRange();
-
- if (tinyMCE.getParentElement(rng.parentElement(), "li") != null)
- return false;
-
- // Cancel event
- e.returnValue = false;
- e.cancelBubble = true;
-
- // Insert BR element
- rng.pasteHTML("<br />");
- rng.collapse(false);
- rng.select();
-
- tinyMCE.execCommand("mceAddUndoLevel");
- tinyMCE.triggerNodeChange(false);
- return false;
- }
- }
-
- // Backspace or delete
- if (e.keyCode == 8 || e.keyCode == 46) {
- tinyMCE.selectedElement = e.target;
- tinyMCE.linkElement = tinyMCE.getParentElement(e.target, "a");
- tinyMCE.imgElement = tinyMCE.getParentElement(e.target, "img");
- tinyMCE.triggerNodeChange(false);
- }
-
- return false;
-
- case "keyup":
- case "keydown":
- tinyMCE.hideMenus();
- tinyMCE.hasMouseMoved = false;
-
- if (inst && inst.handleShortcut(e))
- return false;
-
- inst._fixRootBlocks();
-
- if (inst.settings.remove_trailing_nbsp)
- inst._fixTrailingNbsp();
-
- if (e.target.editorId)
- tinyMCE.instances[e.target.editorId].select();
-
- if (tinyMCE.selectedInstance)
- tinyMCE.selectedInstance.switchSettings();
-
- inst = tinyMCE.selectedInstance;
-
- // Handle backspace
- if (tinyMCE.isGecko && tinyMCE.settings.force_p_newlines && (e.keyCode == 8 || e.keyCode == 46) && !e.shiftKey) {
- // Insert P element instead of BR
- if (TinyMCE_ForceParagraphs._handleBackSpace(tinyMCE.selectedInstance, e.type)) {
- // Cancel event
- tinyMCE.execCommand("mceAddUndoLevel");
- e.preventDefault();
- return false;
- }
- }
-
- tinyMCE.selectedElement = null;
- tinyMCE.selectedNode = null;
- elm = tinyMCE.selectedInstance.getFocusElement();
- tinyMCE.linkElement = tinyMCE.getParentElement(elm, "a");
- tinyMCE.imgElement = tinyMCE.getParentElement(elm, "img");
- tinyMCE.selectedElement = elm;
-
- // Update visualaids on tabs
- if (tinyMCE.isGecko && e.type == "keyup" && e.keyCode == 9)
- tinyMCE.handleVisualAid(tinyMCE.selectedInstance.getBody(), true, tinyMCE.settings.visual, tinyMCE.selectedInstance);
-
- // Fix empty elements on return/enter, check where enter occured
- if (tinyMCE.isIE && e.type == "keydown" && e.keyCode == 13)
- tinyMCE.enterKeyElement = tinyMCE.selectedInstance.getFocusElement();
-
- // Fix empty elements on return/enter
- if (tinyMCE.isIE && e.type == "keyup" && e.keyCode == 13) {
- elm = tinyMCE.enterKeyElement;
- if (elm) {
- var re = new RegExp('^HR|IMG|BR$','g'); // Skip these
- var dre = new RegExp('^H[1-6]$','g'); // Add double on these
-
- if (!elm.hasChildNodes() && !re.test(elm.nodeName)) {
- if (dre.test(elm.nodeName))
- elm.innerHTML = " ";
- else
- elm.innerHTML = " ";
- }
- }
- }
-
- // Check if it's a position key
- keys = tinyMCE.posKeyCodes;
- var posKey = false;
- for (i=0; i<keys.length; i++) {
- if (keys[i] == e.keyCode) {
- posKey = true;
- break;
- }
- }
-
- // MSIE custom key handling
- if (tinyMCE.isIE && tinyMCE.settings.custom_undo_redo) {
- keys = [8, 46]; // Backspace,Delete
-
- for (i=0; i<keys.length; i++) {
- if (keys[i] == e.keyCode) {
- if (e.type == "keyup")
- tinyMCE.triggerNodeChange(false);
- }
- }
- }
-
- // If Ctrl key
- if (e.keyCode == 17)
- return true;
-
- // Handle Undo/Redo when typing content
-
- if (tinyMCE.isGecko) {
- // Start typing (not a position key or ctrl key, but ctrl+x and ctrl+p is ok)
- if (!posKey && e.type == "keyup" && !e.ctrlKey || (e.ctrlKey && (e.keyCode == 86 || e.keyCode == 88)))
- tinyMCE.execCommand("mceStartTyping");
- } else {
- // IE seems to be working better with this setting
- if (!posKey && e.type == "keyup")
- tinyMCE.execCommand("mceStartTyping");
- }
-
- // Store undo bookmark
- if (e.type == "keydown" && (posKey || e.ctrlKey) && inst)
- inst.undoBookmark = inst.selection.getBookmark();
-
- // End typing (position key) or some Ctrl event
- if (e.type == "keyup" && (posKey || e.ctrlKey))
- tinyMCE.execCommand("mceEndTyping");
-
- if (posKey && e.type == "keyup")
- tinyMCE.triggerNodeChange(false);
-
- if (tinyMCE.isIE && e.ctrlKey)
- window.setTimeout('tinyMCE.triggerNodeChange(false);', 1);
- break;
-
- case "mousedown":
- case "mouseup":
- case "click":
- case "dblclick":
- case "focus":
- tinyMCE.hideMenus();
-
- if (tinyMCE.selectedInstance) {
- tinyMCE.selectedInstance.switchSettings();
- tinyMCE.selectedInstance.isFocused = true;
- }
-
- // Check instance event trigged on
- var targetBody = tinyMCE.getParentElement(e.target, "html");
- for (var instanceName in tinyMCE.instances) {
- if (!tinyMCE.isInstance(tinyMCE.instances[instanceName]))
- continue;
-
- inst = tinyMCE.instances[instanceName];
-
- // Reset design mode if lost (on everything just in case)
- inst.autoResetDesignMode();
-
- // Use HTML element since users might click outside of body element
- if (inst.getBody().parentNode == targetBody) {
- inst.select();
- tinyMCE.selectedElement = e.target;
- tinyMCE.linkElement = tinyMCE.getParentElement(tinyMCE.selectedElement, "a");
- tinyMCE.imgElement = tinyMCE.getParentElement(tinyMCE.selectedElement, "img");
- break;
- }
- }
-
- // Add first bookmark location
- if (!tinyMCE.selectedInstance.undoRedo.undoLevels[0].bookmark && (e.type == "mouseup" || e.type == "dblclick"))
- tinyMCE.selectedInstance.undoRedo.undoLevels[0].bookmark = tinyMCE.selectedInstance.selection.getBookmark();
-
- // Reset selected node
- if (e.type != "focus")
- tinyMCE.selectedNode = null;
-
- tinyMCE.triggerNodeChange(false);
- tinyMCE.execCommand("mceEndTyping");
-
- if (e.type == "mouseup")
- tinyMCE.execCommand("mceAddUndoLevel");
-
- // Just in case
- if (!tinyMCE.selectedInstance && e.target.editorId)
- tinyMCE.instances[e.target.editorId].select();
-
- return false;
- }
- },
-
- getButtonHTML : function(id, lang, img, cmd, ui, val) {
- var h = '', m, x, io = '';
-
- cmd = 'tinyMCE.execInstanceCommand(\'{$editor_id}\',\'' + cmd + '\'';
-
- if (typeof(ui) != "undefined" && ui != null)
- cmd += ',' + ui;
-
- if (typeof(val) != "undefined" && val != null)
- cmd += ",'" + val + "'";
-
- cmd += ');';
-
- // Patch for IE7 bug with hover out not restoring correctly
- if (tinyMCE.isRealIE)
- io = 'onmouseover="tinyMCE.lastHover = this;"';
-
- // Use tilemaps when enabled and found and never in MSIE since it loads the tile each time from cache if cahce is disabled
- if (tinyMCE.getParam('button_tile_map') && (!tinyMCE.isIE || tinyMCE.isOpera) && (m = this.buttonMap[id]) != null && (tinyMCE.getParam("language") == "en" || img.indexOf('$lang') == -1)) {
- // Tiled button
- x = 0 - (m * 20) == 0 ? '0' : 0 - (m * 20);
- h += '<a id="{$editor_id}_' + id + '" href="javascript:' + cmd + '" onclick="' + cmd + 'return false;" onmousedown="return false;" ' + io + ' class="mceTiledButton mceButtonNormal" target="_self">';
- h += '<img src="{$themeurl}/images/spacer.gif" style="background-position: ' + x + 'px 0" alt="{$'+lang+'}" title="{$' + lang + '}" />';
- h += '</a>';
- } else {
- // Normal button
- h += '<a id="{$editor_id}_' + id + '" href="javascript:' + cmd + '" onclick="' + cmd + 'return false;" onmousedown="return false;" ' + io + ' class="mceButtonNormal" target="_self">';
- h += '<img src="' + img + '" alt="{$'+lang+'}" title="{$' + lang + '}" />';
- h += '</a>';
- }
-
- return h;
- },
-
- getMenuButtonHTML : function(id, lang, img, mcmd, cmd, ui, val) {
- var h = '', m, x;
-
- mcmd = 'tinyMCE.execInstanceCommand(\'{$editor_id}\',\'' + mcmd + '\');';
- cmd = 'tinyMCE.execInstanceCommand(\'{$editor_id}\',\'' + cmd + '\'';
-
- if (typeof(ui) != "undefined" && ui != null)
- cmd += ',' + ui;
-
- if (typeof(val) != "undefined" && val != null)
- cmd += ",'" + val + "'";
-
- cmd += ');';
-
- // Use tilemaps when enabled and found and never in MSIE since it loads the tile each time from cache if cahce is disabled
- if (tinyMCE.getParam('button_tile_map') && (!tinyMCE.isIE || tinyMCE.isOpera) && (m = tinyMCE.buttonMap[id]) != null && (tinyMCE.getParam("language") == "en" || img.indexOf('$lang') == -1)) {
- x = 0 - (m * 20) == 0 ? '0' : 0 - (m * 20);
-
- if (tinyMCE.isRealIE)
- h += '<span id="{$editor_id}_' + id + '" class="mceMenuButton" onmouseover="tinyMCE._menuButtonEvent(\'over\',this);tinyMCE.lastHover = this;" onmouseout="tinyMCE._menuButtonEvent(\'out\',this);">';
- else
- h += '<span id="{$editor_id}_' + id + '" class="mceMenuButton">';
-
- h += '<a href="javascript:' + cmd + '" onclick="' + cmd + 'return false;" onmousedown="return false;" class="mceTiledButton mceMenuButtonNormal" target="_self">';
- h += '<img src="{$themeurl}/images/spacer.gif" style="width: 20px; height: 20px; background-position: ' + x + 'px 0" title="{$' + lang + '}" /></a>';
- h += '<a href="javascript:' + mcmd + '" onclick="' + mcmd + 'return false;" onmousedown="return false;"><img src="{$themeurl}/images/button_menu.gif" title="{$' + lang + '}" class="mceMenuButton" />';
- h += '</a></span>';
- } else {
- if (tinyMCE.isRealIE)
- h += '<span id="{$editor_id}_' + id + '" dir="ltr" class="mceMenuButton" onmouseover="tinyMCE._menuButtonEvent(\'over\',this);tinyMCE.lastHover = this;" onmouseout="tinyMCE._menuButtonEvent(\'out\',this);">';
- else
- h += '<span id="{$editor_id}_' + id + '" dir="ltr" class="mceMenuButton">';
-
- h += '<a href="javascript:' + cmd + '" onclick="' + cmd + 'return false;" onmousedown="return false;" class="mceMenuButtonNormal" target="_self">';
- h += '<img src="' + img + '" title="{$' + lang + '}" /></a>';
- h += '<a href="javascript:' + mcmd + '" onclick="' + mcmd + 'return false;" onmousedown="return false;"><img src="{$themeurl}/images/button_menu.gif" title="{$' + lang + '}" class="mceMenuButton" />';
- h += '</a></span>';
- }
-
- return h;
- },
-
- _menuButtonEvent : function(e, o) {
- if (o.className == 'mceMenuButtonFocus')
- return;
-
- if (e == 'over')
- o.className = o.className + ' mceMenuHover';
- else
- o.className = o.className.replace(/\s.*$/, '');
- },
-
- addButtonMap : function(m) {
- var i, a = m.replace(/\s+/, '').split(',');
-
- for (i=0; i<a.length; i++)
- this.buttonMap[a[i]] = i;
- },
-
- formSubmit : function(f, p) {
- var n, inst, found = false;
-
- if (f.form)
- f = f.form;
-
- // Is it a form that has a TinyMCE instance
- for (n in tinyMCE.instances) {
- inst = tinyMCE.instances[n];
-
- if (!tinyMCE.isInstance(inst))
- continue;
-
- if (inst.formElement) {
- if (f == inst.formElement.form) {
- found = true;
- inst.isNotDirty = true;
- }
- }
- }
-
- // Is valid
- if (found) {
- tinyMCE.removeTinyMCEFormElements(f);
- tinyMCE.triggerSave();
- }
-
- // Is it patched
- if (f.mceOldSubmit && p)
- f.mceOldSubmit();
- },
-
- submitPatch : function() {
- tinyMCE.formSubmit(this, true);
- },
-
- onLoad : function() {
- var r, i, c, mode, trigger, elements, element, settings, elementId, elm;
- var selector, deselector, elementRefAr, form;
-
- // Wait for everything to be loaded first
- if (tinyMCE.settings.strict_loading_mode && this.loadingIndex != -1) {
- window.setTimeout('tinyMCE.onLoad();', 1);
- return;
- }
-
- if (tinyMCE.isRealIE && window.event.type == "readystatechange" && document.readyState != "complete")
- return true;
-
- if (tinyMCE.isLoaded)
- return true;
-
- tinyMCE.isLoaded = true;
-
- // IE produces JS error if TinyMCE is placed in a frame
- // It seems to have something to do with the selection not beeing
- // correctly initialized in IE so this hack solves the problem
- if (tinyMCE.isRealIE && document.body && window.location.href != window.top.location.href) {
- r = document.body.createTextRange();
- r.collapse(true);
- r.select();
- }
-
- tinyMCE.dispatchCallback(null, 'onpageload', 'onPageLoad');
-
- for (c=0; c<tinyMCE.configs.length; c++) {
- tinyMCE.settings = tinyMCE.configs[c];
-
- selector = tinyMCE.getParam("editor_selector");
- deselector = tinyMCE.getParam("editor_deselector");
- elementRefAr = [];
-
- // Add submit triggers
- if (document.forms && tinyMCE.settings.add_form_submit_trigger && !tinyMCE.submitTriggers) {
- for (i=0; i<document.forms.length; i++) {
- form = document.forms[i];
-
- tinyMCE.addEvent(form, "submit", TinyMCE_Engine.prototype.handleEvent);
- tinyMCE.addEvent(form, "reset", TinyMCE_Engine.prototype.handleEvent);
- tinyMCE.submitTriggers = true; // Do it only once
-
- // Patch the form.submit function
- if (tinyMCE.settings.submit_patch) {
- try {
- form.mceOldSubmit = form.submit;
- form.submit = TinyMCE_Engine.prototype.submitPatch;
- } catch (e) {
- // Do nothing
- }
- }
- }
- }
-
- // Add editor instances based on mode
- mode = tinyMCE.settings.mode;
- switch (mode) {
- case "exact":
- elements = tinyMCE.getParam('elements', '', true, ',');
-
- for (i=0; i<elements.length; i++) {
- element = tinyMCE._getElementById(elements[i]);
- trigger = element ? element.getAttribute(tinyMCE.settings.textarea_trigger) : "";
-
- if (new RegExp('\\b' + deselector + '\\b').test(tinyMCE.getAttrib(element, "class")))
- continue;
-
- if (trigger == "false")
- continue;
-
- if ((tinyMCE.settings.ask || tinyMCE.settings.convert_on_click) && element) {
- elementRefAr[elementRefAr.length] = element;
- continue;
- }
-
- if (element)
- tinyMCE.addMCEControl(element, elements[i]);
- }
- break;
-
- case "specific_textareas":
- case "textareas":
- elements = document.getElementsByTagName("textarea");
-
- for (i=0; i<elements.length; i++) {
- elm = elements.item(i);
- trigger = elm.getAttribute(tinyMCE.settings.textarea_trigger);
-
- if (selector !== '' && !new RegExp('\\b' + selector + '\\b').test(tinyMCE.getAttrib(elm, "class")))
- continue;
-
- if (selector !== '')
- trigger = selector !== '' ? "true" : "";
-
- if (new RegExp('\\b' + deselector + '\\b').test(tinyMCE.getAttrib(elm, "class")))
- continue;
-
- if ((mode == "specific_textareas" && trigger == "true") || (mode == "textareas" && trigger != "false"))
- elementRefAr[elementRefAr.length] = elm;
- }
- break;
- }
-
- for (i=0; i<elementRefAr.length; i++) {
- element = elementRefAr[i];
- elementId = element.name ? element.name : element.id;
-
- if (tinyMCE.settings.ask || tinyMCE.settings.convert_on_click) {
- // Focus breaks in Mozilla
- if (tinyMCE.isGecko) {
- settings = tinyMCE.settings;
-
- tinyMCE.addEvent(element, "focus", function (e) {window.setTimeout(function() {TinyMCE_Engine.prototype.confirmAdd(e, settings);}, 10);});
-
- if (element.nodeName != "TEXTAREA" && element.nodeName != "INPUT")
- tinyMCE.addEvent(element, "click", function (e) {window.setTimeout(function() {TinyMCE_Engine.prototype.confirmAdd(e, settings);}, 10);});
- // tinyMCE.addEvent(element, "mouseover", function (e) {window.setTimeout(function() {TinyMCE_Engine.prototype.confirmAdd(e, settings);}, 10);});
- } else {
- settings = tinyMCE.settings;
-
- tinyMCE.addEvent(element, "focus", function () { TinyMCE_Engine.prototype.confirmAdd(null, settings); });
- tinyMCE.addEvent(element, "click", function () { TinyMCE_Engine.prototype.confirmAdd(null, settings); });
- // tinyMCE.addEvent(element, "mouseenter", function () { TinyMCE_Engine.prototype.confirmAdd(null, settings); });
- }
- } else
- tinyMCE.addMCEControl(element, elementId);
- }
-
- // Handle auto focus
- if (tinyMCE.settings.auto_focus) {
- window.setTimeout(function () {
- var inst = tinyMCE.getInstanceById(tinyMCE.settings.auto_focus);
- inst.selection.selectNode(inst.getBody(), true, true);
- inst.contentWindow.focus();
- }, 100);
- }
-
- tinyMCE.dispatchCallback(null, 'oninit', 'onInit');
- }
- },
-
- isInstance : function(o) {
- return o != null && typeof(o) == "object" && o.isTinyMCE_Control;
- },
-
- getParam : function(name, default_value, strip_whitespace, split_chr) {
- var i, outArray, value = (typeof(this.settings[name]) == "undefined") ? default_value : this.settings[name];
-
- // Fix bool values
- if (value == "true" || value == "false")
- return (value == "true");
-
- if (strip_whitespace)
- value = tinyMCE.regexpReplace(value, "[ \t\r\n]", "");
-
- if (typeof(split_chr) != "undefined" && split_chr != null) {
- value = value.split(split_chr);
- outArray = [];
-
- for (i=0; i<value.length; i++) {
- if (value[i] && value[i] !== '')
- outArray[outArray.length] = value[i];
- }
-
- value = outArray;
- }
-
- return value;
- },
-
- getLang : function(name, default_value, parse_entities, va) {
- var v = (typeof(tinyMCELang[name]) == "undefined") ? default_value : tinyMCELang[name], n;
-
- if (parse_entities)
- v = tinyMCE.entityDecode(v);
-
- if (va) {
- for (n in va)
- v = this.replaceVar(v, n, va[n]);
- }
-
- return v;
- },
-
- entityDecode : function(s) {
- var e = document.createElement("div");
-
- e.innerHTML = s;
-
- return !e.firstChild ? s : e.firstChild.nodeValue;
- },
-
- addToLang : function(prefix, ar) {
- var k;
-
- for (k in ar) {
- if (typeof(ar[k]) == 'function')
- continue;
-
- tinyMCELang[(k.indexOf('lang_') == -1 ? 'lang_' : '') + (prefix !== '' ? (prefix + "_") : '') + k] = ar[k];
- }
-
- this.loadNextScript();
- },
-
- triggerNodeChange : function(focus, setup_content) {
- var elm, inst, editorId, undoIndex = -1, undoLevels = -1, doc, anySelection = false, st;
-
- if (tinyMCE.selectedInstance) {
- inst = tinyMCE.selectedInstance;
- elm = (typeof(setup_content) != "undefined" && setup_content) ? tinyMCE.selectedElement : inst.getFocusElement();
-
-/* if (elm == inst.lastTriggerEl)
- return;
-
- inst.lastTriggerEl = elm;*/
-
- editorId = inst.editorId;
- st = inst.selection.getSelectedText();
-
- if (tinyMCE.settings.auto_resize)
- inst.resizeToContent();
-
- if (setup_content && tinyMCE.isGecko && inst.isHidden())
- elm = inst.getBody();
-
- inst.switchSettings();
-
- if (tinyMCE.selectedElement)
- anySelection = (tinyMCE.selectedElement.nodeName.toLowerCase() == "img") || (st && st.length > 0);
-
- if (tinyMCE.settings.custom_undo_redo) {
- undoIndex = inst.undoRedo.undoIndex;
- undoLevels = inst.undoRedo.undoLevels.length;
- }
-
- tinyMCE.dispatchCallback(inst, 'handle_node_change_callback', 'handleNodeChange', editorId, elm, undoIndex, undoLevels, inst.visualAid, anySelection, setup_content);
- }
-
- if (this.selectedInstance && (typeof(focus) == "undefined" || focus))
- this.selectedInstance.contentWindow.focus();
- },
-
- _customCleanup : function(inst, type, content) {
- var pl, po, i, customCleanup;
-
- // Call custom cleanup
- customCleanup = tinyMCE.settings.cleanup_callback;
- if (customCleanup != '')
- content = tinyMCE.resolveDots(tinyMCE.settings.cleanup_callback, window)(type, content, inst);
-
- // Trigger theme cleanup
- po = tinyMCE.themes[tinyMCE.settings.theme];
- if (po && po.cleanup)
- content = po.cleanup(type, content, inst);
-
- // Trigger plugin cleanups
- pl = inst.plugins;
- for (i=0; i<pl.length; i++) {
- po = tinyMCE.plugins[pl[i]];
-
- if (po && po.cleanup)
- content = po.cleanup(type, content, inst);
- }
-
- return content;
- },
-
- setContent : function(h) {
- if (tinyMCE.selectedInstance) {
- tinyMCE.selectedInstance.execCommand('mceSetContent', false, h);
- tinyMCE.selectedInstance.repaint();
- }
- },
-
- importThemeLanguagePack : function(name) {
- if (typeof(name) == "undefined")
- name = tinyMCE.settings.theme;
-
- tinyMCE.loadScript(tinyMCE.baseURL + '/themes/' + name + '/langs/' + tinyMCE.settings.language + '.js');
- },
-
- importPluginLanguagePack : function(name) {
- var b = tinyMCE.baseURL + '/plugins/' + name;
-
- if (this.plugins[name])
- b = this.plugins[name].baseURL;
-
- tinyMCE.loadScript(b + '/langs/' + tinyMCE.settings.language + '.js');
- },
-
- applyTemplate : function(h, ag) {
- return h.replace(new RegExp('\\{\\$([a-z0-9_]+)\\}', 'gi'), function(m, s) {
- if (s.indexOf('lang_') == 0 && tinyMCELang[s])
- return tinyMCELang[s];
-
- if (ag && ag[s])
- return ag[s];
-
- if (tinyMCE.settings[s])
- return tinyMCE.settings[s];
-
- if (m == 'themeurl')
- return tinyMCE.themeURL;
-
- return m;
- });
- },
-
- replaceVar : function(h, r, v) {
- return h.replace(new RegExp('{\\\$' + r + '}', 'g'), v);
- },
-
- openWindow : function(template, args) {
- var html, width, height, x, y, resizable, scrollbars, url, name, win, modal, features;
-
- args = !args ? {} : args;
-
- args.mce_template_file = template.file;
- args.mce_width = template.width;
- args.mce_height = template.height;
- tinyMCE.windowArgs = args;
-
- html = template.html;
- if (!(width = parseInt(template.width)))
- width = 320;
-
- if (!(height = parseInt(template.height)))
- height = 200;
-
- // Add to height in M$ due to SP2 WHY DON'T YOU GUYS IMPLEMENT innerWidth of windows!!
- if (tinyMCE.isIE)
- height += 40;
- else
- height += 20;
-
- x = parseInt(screen.width / 2.0) - (width / 2.0);
- y = parseInt(screen.height / 2.0) - (height / 2.0);
-
- resizable = (args && args.resizable) ? args.resizable : "no";
- scrollbars = (args && args.scrollbars) ? args.scrollbars : "no";
-
- if (template.file.charAt(0) != '/' && template.file.indexOf('://') == -1)
- url = tinyMCE.baseURL + "/themes/" + tinyMCE.getParam("theme") + "/" + template.file;
- else
- url = template.file;
-
- // Replace all args as variables in URL
- for (name in args) {
- if (typeof(args[name]) == 'function')
- continue;
-
- url = tinyMCE.replaceVar(url, name, escape(args[name]));
- }
-
- if (html) {
- html = tinyMCE.replaceVar(html, "css", this.settings.popups_css);
- html = tinyMCE.applyTemplate(html, args);
-
- win = window.open("", "mcePopup" + new Date().getTime(), "top=" + y + ",left=" + x + ",scrollbars=" + scrollbars + ",dialog=yes,minimizable=" + resizable + ",modal=yes,width=" + width + ",height=" + height + ",resizable=" + resizable);
- if (win == null) {
- alert(tinyMCELang.lang_popup_blocked);
- return;
- }
-
- win.document.write(html);
- win.document.close();
- win.resizeTo(width, height);
- win.focus();
- } else {
- if ((tinyMCE.isRealIE) && resizable != 'yes' && tinyMCE.settings.dialog_type == "modal") {
- height += 10;
-
- features = "resizable:" + resizable + ";scroll:" + scrollbars + ";status:yes;center:yes;help:no;dialogWidth:" + width + "px;dialogHeight:" + height + "px;";
-
- window.showModalDialog(url, window, features);
- } else {
- modal = (resizable == "yes") ? "no" : "yes";
-
- if (tinyMCE.isGecko && tinyMCE.isMac)
- modal = "no";
-
- if (template.close_previous != "no")
- try {tinyMCE.lastWindow.close();} catch (ex) {}
-
- win = window.open(url, "mcePopup" + new Date().getTime(), "top=" + y + ",left=" + x + ",scrollbars=" + scrollbars + ",dialog=" + modal + ",minimizable=" + resizable + ",modal=" + modal + ",width=" + width + ",height=" + height + ",resizable=" + resizable);
- if (win == null) {
- alert(tinyMCELang.lang_popup_blocked);
- return;
- }
-
- if (template.close_previous != "no")
- tinyMCE.lastWindow = win;
-
- try {
- win.resizeTo(width, height);
- } catch(e) {
- // Ignore
- }
-
- // Make it bigger if statusbar is forced
- if (tinyMCE.isGecko) {
- if (win.document.defaultView.statusbar.visible)
- win.resizeBy(0, tinyMCE.isMac ? 10 : 24);
- }
-
- win.focus();
- }
- }
- },
-
- closeWindow : function(win) {
- win.close();
- },
-
- getVisualAidClass : function(class_name, state) {
- var i, classNames, ar, className, aidClass = tinyMCE.settings.visual_table_class;
-
- if (typeof(state) == "undefined")
- state = tinyMCE.settings.visual;
-
- // Split
- classNames = [];
- ar = class_name.split(' ');
- for (i=0; i<ar.length; i++) {
- if (ar[i] == aidClass)
- ar[i] = "";
-
- if (ar[i] !== '')
- classNames[classNames.length] = ar[i];
- }
-
- if (state)
- classNames[classNames.length] = aidClass;
-
- // Glue
- className = "";
- for (i=0; i<classNames.length; i++) {
- if (i > 0)
- className += " ";
-
- className += classNames[i];
- }
-
- return className;
- },
-
- handleVisualAid : function(el, deep, state, inst, skip_dispatch) {
- var i, x, y, tableElement, anchorName, oldW, oldH, bo, cn;
-
- if (!el)
- return;
-
- if (!skip_dispatch)
- tinyMCE.dispatchCallback(inst, 'handle_visual_aid_callback', 'handleVisualAid', el, deep, state, inst);
-
- tableElement = null;
-
- switch (el.nodeName) {
- case "TABLE":
- oldW = el.style.width;
- oldH = el.style.height;
- bo = tinyMCE.getAttrib(el, "border");
-
- bo = bo == '' || bo == "0" ? true : false;
-
- tinyMCE.setAttrib(el, "class", tinyMCE.getVisualAidClass(tinyMCE.getAttrib(el, "class"), state && bo));
-
- el.style.width = oldW;
- el.style.height = oldH;
-
- for (y=0; y<el.rows.length; y++) {
- for (x=0; x<el.rows[y].cells.length; x++) {
- cn = tinyMCE.getVisualAidClass(tinyMCE.getAttrib(el.rows[y].cells[x], "class"), state && bo);
- tinyMCE.setAttrib(el.rows[y].cells[x], "class", cn);
- }
- }
-
- break;
-
- case "A":
- anchorName = tinyMCE.getAttrib(el, "name");
-
- if (anchorName !== '' && state) {
- el.title = anchorName;
- tinyMCE.addCSSClass(el, 'mceItemAnchor');
- } else if (anchorName !== '' && !state)
- el.className = '';
-
- break;
- }
-
- if (deep && el.hasChildNodes()) {
- for (i=0; i<el.childNodes.length; i++)
- tinyMCE.handleVisualAid(el.childNodes[i], deep, state, inst, true);
- }
- },
-
- fixGeckoBaseHREFBug : function(m, e, h) {
- var xsrc, xhref;
-
- if (tinyMCE.isGecko) {
- if (m == 1) {
- h = h.replace(/\ssrc=/gi, " mce_tsrc=");
- h = h.replace(/\shref=/gi, " mce_thref=");
-
- return h;
- } else {
- // Why bother if there is no src or href broken
- if (!new RegExp('(src|href)=', 'g').test(h))
- return h;
-
- // Restore src and href that gets messed up by Gecko
- tinyMCE.selectElements(e, 'A,IMG,SELECT,AREA,IFRAME,BASE,INPUT,SCRIPT,EMBED,OBJECT,LINK', function (n) {
- xsrc = tinyMCE.getAttrib(n, "mce_tsrc");
- xhref = tinyMCE.getAttrib(n, "mce_thref");
-
- if (xsrc !== '') {
- try {
- n.src = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings.base_href, xsrc);
- } catch (e) {
- // Ignore, Firefox cast exception if local file wasn't found
- }
-
- n.removeAttribute("mce_tsrc");
- }
-
- if (xhref !== '') {
- try {
- n.href = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings.base_href, xhref);
- } catch (e) {
- // Ignore, Firefox cast exception if local file wasn't found
- }
-
- n.removeAttribute("mce_thref");
- }
-
- return false;
- });
-
- // Restore text/comment nodes
- tinyMCE.selectNodes(e, function(n) {
- if (n.nodeType == 3 || n.nodeType == 8) {
- n.nodeValue = n.nodeValue.replace(/\smce_tsrc=/gi, " src=");
- n.nodeValue = n.nodeValue.replace(/\smce_thref=/gi, " href=");
- }
-
- return false;
- });
- }
- }
-
- return h;
- },
-
- _setHTML : function(doc, html_content) {
- var i, html, paras, node;
-
- // Force closed anchors open
- //html_content = html_content.replace(new RegExp('<a(.*?)/>', 'gi'), '<a$1></a>');
-
- html_content = tinyMCE.cleanupHTMLCode(html_content);
-
- // Try innerHTML if it fails use pasteHTML in MSIE
- try {
- tinyMCE.setInnerHTML(doc.body, html_content);
- } catch (e) {
- if (this.isMSIE)
- doc.body.createTextRange().pasteHTML(html_content);
- }
-
- // Content duplication bug fix
- if (tinyMCE.isIE && tinyMCE.settings.fix_content_duplication) {
- // Remove P elements in P elements
- paras = doc.getElementsByTagName("P");
- for (i=0; i<paras.length; i++) {
- node = paras[i];
-
- while ((node = node.parentNode) != null) {
- if (node.nodeName == "P")
- node.outerHTML = node.innerHTML;
- }
- }
-
- // Content duplication bug fix (Seems to be word crap)
- html = doc.body.innerHTML;
-
- // Always set the htmlText output
- tinyMCE.setInnerHTML(doc.body, html);
- }
-
- tinyMCE.cleanupAnchors(doc);
-
- if (tinyMCE.getParam("convert_fonts_to_spans"))
- tinyMCE.convertSpansToFonts(doc);
- },
-
- getEditorId : function(form_element) {
- var inst = this.getInstanceById(form_element);
-
- if (!inst)
- return null;
-
- return inst.editorId;
- },
-
- getInstanceById : function(editor_id) {
- var inst = this.instances[editor_id], n;
-
- if (!inst) {
- for (n in tinyMCE.instances) {
- inst = tinyMCE.instances[n];
-
- if (!tinyMCE.isInstance(inst))
- continue;
-
- if (inst.formTargetElementId == editor_id)
- return inst;
- }
- } else
- return inst;
-
- return null;
- },
-
- queryInstanceCommandValue : function(editor_id, command) {
- var inst = tinyMCE.getInstanceById(editor_id);
-
- if (inst)
- return inst.queryCommandValue(command);
-
- return false;
- },
-
- queryInstanceCommandState : function(editor_id, command) {
- var inst = tinyMCE.getInstanceById(editor_id);
-
- if (inst)
- return inst.queryCommandState(command);
-
- return null;
- },
-
- setWindowArg : function(n, v) {
- this.windowArgs[n] = v;
- },
-
- getWindowArg : function(n, d) {
- return (typeof(this.windowArgs[n]) == "undefined") ? d : this.windowArgs[n];
- },
-
- getCSSClasses : function(editor_id, doc) {
- var i, c, x, rule, styles, rules, csses, selectorText, inst = tinyMCE.getInstanceById(editor_id);
- var cssClass, addClass, p;
-
- if (!inst)
- inst = tinyMCE.selectedInstance;
-
- if (!inst)
- return [];
-
- if (!doc)
- doc = inst.getDoc();
-
- // Is cached, use that
- if (inst && inst.cssClasses.length > 0)
- return inst.cssClasses;
-
- if (!doc)
- return;
-
- styles = doc.styleSheets;
-
- if (styles && styles.length > 0) {
- for (x=0; x<styles.length; x++) {
- csses = null;
-
- try {
- csses = tinyMCE.isIE ? doc.styleSheets(x).rules : styles[x].cssRules;
- } catch(e) {
- // Just ignore any errors I know this is ugly!!
- }
-
- if (!csses)
- return [];
-
- for (i=0; i<csses.length; i++) {
- selectorText = csses[i].selectorText;
-
- // Can be multiple rules per selector
- if (selectorText) {
- rules = selectorText.split(',');
- for (c=0; c<rules.length; c++) {
- rule = rules[c];
-
- // Strip spaces between selectors
- while (rule.indexOf(' ') == 0)
- rule = rule.substring(1);
-
- // Invalid rule
- if (rule.indexOf(' ') != -1 || rule.indexOf(':') != -1 || rule.indexOf('mceItem') != -1)
- continue;
-
- if (rule.indexOf(tinyMCE.settings.visual_table_class) != -1 || rule.indexOf('mceEditable') != -1 || rule.indexOf('mceNonEditable') != -1)
- continue;
-
- // Is class rule
- if (rule.indexOf('.') != -1) {
- cssClass = rule.substring(rule.indexOf('.') + 1);
- addClass = true;
-
- for (p=0; p<inst.cssClasses.length && addClass; p++) {
- if (inst.cssClasses[p] == cssClass)
- addClass = false;
- }
-
- if (addClass)
- inst.cssClasses[inst.cssClasses.length] = cssClass;
- }
- }
- }
- }
- }
- }
-
- return inst.cssClasses;
- },
-
- regexpReplace : function(in_str, reg_exp, replace_str, opts) {
- var re;
-
- if (in_str == null)
- return in_str;
-
- if (typeof(opts) == "undefined")
- opts = 'g';
-
- re = new RegExp(reg_exp, opts);
-
- return in_str.replace(re, replace_str);
- },
-
- trim : function(s) {
- return s.replace(/^\s*|\s*$/g, "");
- },
-
- cleanupEventStr : function(s) {
- s = "" + s;
- s = s.replace('function anonymous()\n{\n', '');
- s = s.replace('\n}', '');
- s = s.replace(/^return true;/gi, ''); // Remove event blocker
-
- return s;
- },
-
- getControlHTML : function(c) {
- var i, l, n, o, v, rtl = tinyMCE.getLang('lang_dir') == 'rtl';
-
- l = tinyMCE.plugins;
- for (n in l) {
- o = l[n];
-
- if (o.getControlHTML && (v = o.getControlHTML(c)) !== '') {
- if (rtl)
- return '<span dir="rtl">' + tinyMCE.replaceVar(v, "pluginurl", o.baseURL) + '</span>';
-
- return tinyMCE.replaceVar(v, "pluginurl", o.baseURL);
- }
- }
-
- o = tinyMCE.themes[tinyMCE.settings.theme];
- if (o.getControlHTML && (v = o.getControlHTML(c)) !== '') {
- if (rtl)
- return '<span dir="rtl">' + v + '</span>';
-
- return v;
- }
-
- return '';
- },
-
- evalFunc : function(f, idx, a, o) {
- o = !o ? window : o;
- f = typeof(f) == 'function' ? f : o[f];
-
- return f.apply(o, Array.prototype.slice.call(a, idx));
- },
-
- dispatchCallback : function(i, p, n) {
- return this.callFunc(i, p, n, 0, this.dispatchCallback.arguments);
- },
-
- executeCallback : function(i, p, n) {
- return this.callFunc(i, p, n, 1, this.executeCallback.arguments);
- },
-
- execCommandCallback : function(i, p, n) {
- return this.callFunc(i, p, n, 2, this.execCommandCallback.arguments);
- },
-
- callFunc : function(ins, p, n, m, a) {
- var l, i, on, o, s, v;
-
- s = m == 2;
-
- l = tinyMCE.getParam(p, '');
-
- if (l !== '' && (v = tinyMCE.evalFunc(l, 3, a)) == s && m > 0)
- return true;
-
- if (ins != null) {
- for (i=0, l = ins.plugins; i<l.length; i++) {
- o = tinyMCE.plugins[l[i]];
-
- if (o[n] && (v = tinyMCE.evalFunc(n, 3, a, o)) == s && m > 0)
- return true;
- }
- }
-
- l = tinyMCE.themes;
- for (on in l) {
- o = l[on];
-
- if (o[n] && (v = tinyMCE.evalFunc(n, 3, a, o)) == s && m > 0)
- return true;
- }
-
- return false;
- },
-
- resolveDots : function(s, o) {
- var i;
-
- if (typeof(s) == 'string') {
- for (i=0, s=s.split('.'); i<s.length; i++)
- o = o[s[i]];
- } else
- o = s;
-
- return o;
- },
-
- xmlEncode : function(s) {
- return s ? ('' + s).replace(this.xmlEncodeRe, function (c, b) {
- switch (c) {
- case '&':
- return '&';
-
- case '"':
- return '"';
-
- case '<':
- return '<';
-
- case '>':
- return '>';
- }
-
- return c;
- }) : s;
- },
-
- add : function(c, m) {
- var n;
-
- for (n in m)
- c.prototype[n] = m[n];
- },
-
- extend : function(p, np) {
- var o = {}, n;
-
- o.parent = p;
-
- for (n in p)
- o[n] = p[n];
-
- for (n in np)
- o[n] = np[n];
-
- return o;
- },
-
- hideMenus : function() {
- var e = tinyMCE.lastSelectedMenuBtn;
-
- if (tinyMCE.lastMenu) {
- tinyMCE.lastMenu.hide();
- tinyMCE.lastMenu = null;
- }
-
- if (e) {
- tinyMCE.switchClass(e, tinyMCE.lastMenuBtnClass);
- tinyMCE.lastSelectedMenuBtn = null;
- }
- }
-
- };
-
-// Global instances
-var TinyMCE = TinyMCE_Engine; // Compatiblity with gzip compressors
-var tinyMCE = new TinyMCE_Engine();
-var tinyMCELang = {};
-
-/* file:jscripts/tiny_mce/classes/TinyMCE_Control.class.js */
-
-function TinyMCE_Control(settings) {
- var t, i, tos, fu, p, x, fn, fu, pn, s = settings;
-
- this.undoRedoLevel = true;
- this.isTinyMCE_Control = true;
-
- // Default settings
- this.enabled = true;
- this.settings = s;
- this.settings.theme = tinyMCE.getParam("theme", "default");
- this.settings.width = tinyMCE.getParam("width", -1);
- this.settings.height = tinyMCE.getParam("height", -1);
- this.selection = new TinyMCE_Selection(this);
- this.undoRedo = new TinyMCE_UndoRedo(this);
- this.cleanup = new TinyMCE_Cleanup();
- this.shortcuts = [];
- this.hasMouseMoved = false;
- this.foreColor = this.backColor = "#999999";
- this.data = {};
- this.cssClasses = [];
-
- this.cleanup.init({
- valid_elements : s.valid_elements,
- extended_valid_elements : s.extended_valid_elements,
- valid_child_elements : s.valid_child_elements,
- entities : s.entities,
- entity_encoding : s.entity_encoding,
- debug : s.cleanup_debug,
- indent : s.apply_source_formatting,
- invalid_elements : s.invalid_elements,
- verify_html : s.verify_html,
- fix_content_duplication : s.fix_content_duplication,
- convert_fonts_to_spans : s.convert_fonts_to_spans
- });
-
- // Wrap old theme
- t = this.settings.theme;
- if (!tinyMCE.hasTheme(t)) {
- fn = tinyMCE.callbacks;
- tos = {};
-
- for (i=0; i<fn.length; i++) {
- if ((fu = window['TinyMCE_' + t + "_" + fn[i]]))
- tos[fn[i]] = fu;
- }
-
- tinyMCE.addTheme(t, tos);
- }
-
- // Wrap old plugins
- this.plugins = [];
- p = tinyMCE.getParam('plugins', '', true, ',');
- if (p.length > 0) {
- for (i=0; i<p.length; i++) {
- pn = p[i];
-
- if (pn.charAt(0) == '-')
- pn = pn.substring(1);
-
- if (!tinyMCE.hasPlugin(pn)) {
- fn = tinyMCE.callbacks;
- tos = {};
-
- for (x=0; x<fn.length; x++) {
- if ((fu = window['TinyMCE_' + pn + "_" + fn[x]]))
- tos[fn[x]] = fu;
- }
-
- tinyMCE.addPlugin(pn, tos);
- }
-
- this.plugins[this.plugins.length] = pn;
- }
- }
-};
-
-TinyMCE_Control.prototype = {
- selection : null,
-
- settings : null,
-
- cleanup : null,
-
- getData : function(na) {
- var o = this.data[na];
-
- if (!o)
- o = this.data[na] = {};
-
- return o;
- },
-
- hasPlugin : function(n) {
- var i;
-
- for (i=0; i<this.plugins.length; i++) {
- if (this.plugins[i] == n)
- return true;
- }
-
- return false;
- },
-
- addPlugin : function(n, p) {
- if (!this.hasPlugin(n)) {
- tinyMCE.addPlugin(n, p);
- this.plugins[this.plugins.length] = n;
- }
- },
-
- repaint : function() {
- var s, b, ex;
-
- if (tinyMCE.isRealIE)
- return;
-
- try {
- s = this.selection;
- b = s.getBookmark(true);
- this.getBody().style.display = 'none';
- this.getDoc().execCommand('selectall', false, null);
- this.getSel().collapseToStart();
- this.getBody().style.display = 'block';
- s.moveToBookmark(b);
- } catch (ex) {
- // Ignore
- }
- },
-
- switchSettings : function() {
- if (tinyMCE.configs.length > 1 && tinyMCE.currentConfig != this.settings.index) {
- tinyMCE.settings = this.settings;
- tinyMCE.currentConfig = this.settings.index;
- }
- },
-
- select : function() {
- var oldInst = tinyMCE.selectedInstance;
-
- if (oldInst != this) {
- if (oldInst)
- oldInst.execCommand('mceEndTyping');
-
- tinyMCE.dispatchCallback(this, 'select_instance_callback', 'selectInstance', this, oldInst);
- tinyMCE.selectedInstance = this;
- }
- },
-
- getBody : function() {
- return this.contentBody ? this.contentBody : this.getDoc().body;
- },
-
- getDoc : function() {
-// return this.contentDocument ? this.contentDocument : this.contentWindow.document; // Removed due to IE 5.5 ?
- return this.contentWindow.document;
- },
-
- getWin : function() {
- return this.contentWindow;
- },
-
- getContainerWin : function() {
- return this.containerWindow ? this.containerWindow : window;
- },
-
- getViewPort : function() {
- return tinyMCE.getViewPort(this.getWin());
- },
-
- getParentNode : function(n, f) {
- return tinyMCE.getParentNode(n, f, this.getBody());
- },
-
- getParentElement : function(n, na, f) {
- return tinyMCE.getParentElement(n, na, f, this.getBody());
- },
-
- getParentBlockElement : function(n) {
- return tinyMCE.getParentBlockElement(n, this.getBody());
- },
-
- resizeToContent : function() {
- var d = this.getDoc(), b = d.body, de = d.documentElement;
-
- this.iframeElement.style.height = (tinyMCE.isRealIE) ? b.scrollHeight : de.offsetHeight + 'px';
- },
-
- addShortcut : function(m, k, d, cmd, ui, va) {
- var n = typeof(k) == "number", ie = tinyMCE.isIE, c, sc, i, scl = this.shortcuts;
-
- if (!tinyMCE.getParam('custom_shortcuts'))
- return false;
-
- m = m.toLowerCase();
- k = ie && !n ? k.toUpperCase() : k;
- c = n ? null : k.charCodeAt(0);
- d = d && d.indexOf('lang_') == 0 ? tinyMCE.getLang(d) : d;
-
- sc = {
- alt : m.indexOf('alt') != -1,
- ctrl : m.indexOf('ctrl') != -1,
- shift : m.indexOf('shift') != -1,
- charCode : c,
- keyCode : n ? k : (ie ? c : null),
- desc : d,
- cmd : cmd,
- ui : ui,
- val : va
- };
-
- for (i=0; i<scl.length; i++) {
- if (sc.alt == scl[i].alt && sc.ctrl == scl[i].ctrl && sc.shift == scl[i].shift
- && sc.charCode == scl[i].charCode && sc.keyCode == scl[i].keyCode) {
- return false;
- }
- }
-
- scl[scl.length] = sc;
-
- return true;
- },
-
- handleShortcut : function(e) {
- var i, s, o;
-
- // Normal key press, then ignore it
- if (!e.altKey && !e.ctrlKey)
- return false;
-
- s = this.shortcuts;
-
- for (i=0; i<s.length; i++) {
- o = s[i];
-
- if (o.alt == e.altKey && o.ctrl == e.ctrlKey && (o.keyCode == e.keyCode || o.charCode == e.charCode)) {
- if (o.cmd && (e.type == "keydown" || (e.type == "keypress" && !tinyMCE.isOpera)))
- tinyMCE.execCommand(o.cmd, o.ui, o.val);
-
- tinyMCE.cancelEvent(e);
- return true;
- }
- }
-
- return false;
- },
-
- autoResetDesignMode : function() {
- // Add fix for tab/style.display none/block problems in Gecko
- if (!tinyMCE.isIE && this.isHidden() && tinyMCE.getParam('auto_reset_designmode'))
- eval('try { this.getDoc().designMode = "On"; this.useCSS = false; } catch(e) {}');
- },
-
- isHidden : function() {
- var s;
-
- if (tinyMCE.isIE)
- return false;
-
- s = this.getSel();
-
- // Weird, wheres that cursor selection?
- return (!s || !s.rangeCount || s.rangeCount == 0);
- },
-
- isDirty : function() {
- // Is content modified and not in a submit procedure
- return tinyMCE.trim(this.startContent) != tinyMCE.trim(this.getBody().innerHTML) && !this.isNotDirty;
- },
-
- _mergeElements : function(scmd, pa, ch, override) {
- var st, stc, className, n;
-
- if (scmd == "removeformat") {
- pa.className = "";
- pa.style.cssText = "";
- ch.className = "";
- ch.style.cssText = "";
- return;
- }
-
- st = tinyMCE.parseStyle(tinyMCE.getAttrib(pa, "style"));
- stc = tinyMCE.parseStyle(tinyMCE.getAttrib(ch, "style"));
- className = tinyMCE.getAttrib(pa, "class");
-
- // Removed class adding due to bug #1478272
- className = tinyMCE.getAttrib(ch, "class");
-
- if (override) {
- for (n in st) {
- if (typeof(st[n]) == 'function')
- continue;
-
- stc[n] = st[n];
- }
- } else {
- for (n in stc) {
- if (typeof(stc[n]) == 'function')
- continue;
-
- st[n] = stc[n];
- }
- }
-
- tinyMCE.setAttrib(pa, "style", tinyMCE.serializeStyle(st));
- tinyMCE.setAttrib(pa, "class", tinyMCE.trim(className));
- ch.className = "";
- ch.style.cssText = "";
- ch.removeAttribute("class");
- ch.removeAttribute("style");
- },
-
- _fixRootBlocks : function() {
- var rb, b, ne, be, nx, bm;
-
- rb = tinyMCE.getParam('forced_root_block');
- if (!rb)
- return;
-
- b = this.getBody();
- ne = b.firstChild;
-
- while (ne) {
- nx = ne.nextSibling;
-
- // If text node or inline element wrap it in a block element
- if (ne.nodeType == 3 || !tinyMCE.blockRegExp.test(ne.nodeName)) {
- if (!bm)
- bm = this.selection.getBookmark();
-
- if (!be) {
- be = this.getDoc().createElement(rb);
- be.appendChild(ne.cloneNode(true));
- b.replaceChild(be, ne);
- } else {
- be.appendChild(ne.cloneNode(true));
- b.removeChild(ne);
- }
- } else
- be = null;
-
- ne = nx;
- }
-
- if (bm)
- this.selection.moveToBookmark(bm);
- },
-
- _fixTrailingNbsp : function() {
- var s = this.selection, e = s.getFocusElement(), bm, v;
-
- if (e && tinyMCE.blockRegExp.test(e.nodeName) && e.firstChild) {
- v = e.firstChild.nodeValue;
-
- if (v && v.length > 1 && /(^\u00a0|\u00a0$)/.test(v)) {
- e.firstChild.nodeValue = v.replace(/(^\u00a0|\u00a0$)/, '');
- s.selectNode(e.firstChild, true, false, false); // Select and collapse
- }
- }
- },
-
- _setUseCSS : function(b) {
- var d = this.getDoc();
-
- try {d.execCommand("useCSS", false, !b);} catch (ex) {}
- try {d.execCommand("styleWithCSS", false, b);} catch (ex) {}
-
- if (!tinyMCE.getParam("table_inline_editing"))
- try {d.execCommand('enableInlineTableEditing', false, "false");} catch (ex) {}
-
- if (!tinyMCE.getParam("object_resizing"))
- try {d.execCommand('enableObjectResizing', false, "false");} catch (ex) {}
- },
-
- execCommand : function(command, user_interface, value) {
- var i, x, z, align, img, div, doc = this.getDoc(), win = this.getWin(), focusElm = this.getFocusElement();
-
- // Is not a undo specific command
- if (!new RegExp('mceStartTyping|mceEndTyping|mceBeginUndoLevel|mceEndUndoLevel|mceAddUndoLevel', 'gi').test(command))
- this.undoBookmark = null;
-
- // Mozilla issue
- if (!tinyMCE.isIE && !this.useCSS) {
- this._setUseCSS(false);
- this.useCSS = true;
- }
-
- //debug("command: " + command + ", user_interface: " + user_interface + ", value: " + value);
- this.contentDocument = doc; // <-- Strange, unless this is applied Mozilla 1.3 breaks
-
- // Don't dispatch key commands
- if (!/mceStartTyping|mceEndTyping/.test(command)) {
- if (tinyMCE.execCommandCallback(this, 'execcommand_callback', 'execCommand', this.editorId, this.getBody(), command, user_interface, value))
- return;
- }
-
- // Fix align on images
- if (focusElm && focusElm.nodeName == "IMG") {
- align = focusElm.getAttribute('align');
- img = command == "JustifyCenter" ? focusElm.cloneNode(false) : focusElm;
-
- switch (command) {
- case "JustifyLeft":
- if (align == 'left')
- img.removeAttribute('align');
- else
- img.setAttribute('align', 'left');
-
- // Remove the div
- div = focusElm.parentNode;
- if (div && div.nodeName == "DIV" && div.childNodes.length == 1 && div.parentNode)
- div.parentNode.replaceChild(img, div);
-
- this.selection.selectNode(img);
- this.repaint();
- tinyMCE.triggerNodeChange();
- return;
-
- case "JustifyCenter":
- img.removeAttribute('align');
-
- // Is centered
- div = tinyMCE.getParentElement(focusElm, "div");
- if (div && div.style.textAlign == "center") {
- // Remove div
- if (div.nodeName == "DIV" && div.childNodes.length == 1 && div.parentNode)
- div.parentNode.replaceChild(img, div);
- } else {
- // Add div
- div = this.getDoc().createElement("div");
- div.style.textAlign = 'center';
- div.appendChild(img);
- focusElm.parentNode.replaceChild(div, focusElm);
- }
-
- this.selection.selectNode(img);
- this.repaint();
- tinyMCE.triggerNodeChange();
- return;
-
- case "JustifyRight":
- if (align == 'right')
- img.removeAttribute('align');
- else
- img.setAttribute('align', 'right');
-
- // Remove the div
- div = focusElm.parentNode;
- if (div && div.nodeName == "DIV" && div.childNodes.length == 1 && div.parentNode)
- div.parentNode.replaceChild(img, div);
-
- this.selection.selectNode(img);
- this.repaint();
- tinyMCE.triggerNodeChange();
- return;
- }
- }
-
- if (tinyMCE.settings.force_br_newlines) {
- var alignValue = "";
-
- if (doc.selection.type != "Control") {
- switch (command) {
- case "JustifyLeft":
- alignValue = "left";
- break;
-
- case "JustifyCenter":
- alignValue = "center";
- break;
-
- case "JustifyFull":
- alignValue = "justify";
- break;
-
- case "JustifyRight":
- alignValue = "right";
- break;
- }
-
- if (alignValue !== '') {
- var rng = doc.selection.createRange();
-
- if ((divElm = tinyMCE.getParentElement(rng.parentElement(), "div")) != null)
- divElm.setAttribute("align", alignValue);
- else if (rng.pasteHTML && rng.htmlText.length > 0)
- rng.pasteHTML('<div align="' + alignValue + '">' + rng.htmlText + "</div>");
-
- tinyMCE.triggerNodeChange();
- return;
- }
- }
- }
-
- switch (command) {
- case "mceRepaint":
- this.repaint();
- return true;
-
- case "unlink":
- // Unlink if caret is inside link
- if (tinyMCE.isGecko && this.getSel().isCollapsed) {
- focusElm = tinyMCE.getParentElement(focusElm, 'A');
-
- if (focusElm)
- this.selection.selectNode(focusElm, false);
- }
-
- this.getDoc().execCommand(command, user_interface, value);
-
- tinyMCE.isGecko && this.getSel().collapseToEnd();
-
- tinyMCE.triggerNodeChange();
-
- return true;
-
- case "InsertUnorderedList":
- case "InsertOrderedList":
- this.getDoc().execCommand(command, user_interface, value);
- tinyMCE.triggerNodeChange();
- break;
-
- case "Strikethrough":
- this.getDoc().execCommand(command, user_interface, value);
- tinyMCE.triggerNodeChange();
- break;
-
- case "mceSelectNode":
- this.selection.selectNode(value);
- tinyMCE.triggerNodeChange();
- tinyMCE.selectedNode = value;
- break;
-
- case "FormatBlock":
- if (value == null || value == '') {
- var elm = tinyMCE.getParentElement(this.getFocusElement(), "p,div,h1,h2,h3,h4,h5,h6,pre,address,blockquote,dt,dl,dd,samp");
-
- if (elm)
- this.execCommand("mceRemoveNode", false, elm);
- } else {
- if (!this.cleanup.isValid(value))
- return true;
-
- if (tinyMCE.isGecko && new RegExp('<(div|blockquote|code|dt|dd|dl|samp)>', 'gi').test(value))
- value = value.replace(/[^a-z]/gi, '');
-
- if (tinyMCE.isIE && new RegExp('blockquote|code|samp', 'gi').test(value)) {
- var b = this.selection.getBookmark();
- this.getDoc().execCommand("FormatBlock", false, '<p>');
- tinyMCE.renameElement(tinyMCE.getParentBlockElement(this.getFocusElement()), value);
- this.selection.moveToBookmark(b);
- } else
- this.getDoc().execCommand("FormatBlock", false, value);
- }
-
- tinyMCE.triggerNodeChange();
-
- break;
-
- case "mceRemoveNode":
- if (!value)
- value = tinyMCE.getParentElement(this.getFocusElement());
-
- if (tinyMCE.isIE) {
- value.outerHTML = value.innerHTML;
- } else {
- var rng = value.ownerDocument.createRange();
- rng.setStartBefore(value);
- rng.setEndAfter(value);
- rng.deleteContents();
- rng.insertNode(rng.createContextualFragment(value.innerHTML));
- }
-
- tinyMCE.triggerNodeChange();
-
- break;
-
- case "mceSelectNodeDepth":
- var parentNode = this.getFocusElement();
- for (i=0; parentNode; i++) {
- if (parentNode.nodeName.toLowerCase() == "body")
- break;
-
- if (parentNode.nodeName.toLowerCase() == "#text") {
- i--;
- parentNode = parentNode.parentNode;
- continue;
- }
-
- if (i == value) {
- this.selection.selectNode(parentNode, false);
- tinyMCE.triggerNodeChange();
- tinyMCE.selectedNode = parentNode;
- return;
- }
-
- parentNode = parentNode.parentNode;
- }
-
- break;
-
- case "mceSetStyleInfo":
- case "SetStyleInfo":
- var rng = this.getRng();
- var sel = this.getSel();
- var scmd = value.command;
- var sname = value.name;
- var svalue = value.value == null ? '' : value.value;
- //var svalue = value['value'] == null ? '' : value['value'];
- var wrapper = value.wrapper ? value.wrapper : "span";
- var parentElm = null;
- var invalidRe = new RegExp("^BODY|HTML$", "g");
- var invalidParentsRe = tinyMCE.settings.merge_styles_invalid_parents !== '' ? new RegExp(tinyMCE.settings.merge_styles_invalid_parents, "gi") : null;
-
- // Whole element selected check
- if (tinyMCE.isIE) {
- // Control range
- if (rng.item)
- parentElm = rng.item(0);
- else {
- var pelm = rng.parentElement();
- var prng = doc.selection.createRange();
- prng.moveToElementText(pelm);
-
- if (rng.htmlText == prng.htmlText || rng.boundingWidth == 0) {
- if (invalidParentsRe == null || !invalidParentsRe.test(pelm.nodeName))
- parentElm = pelm;
- }
- }
- } else {
- var felm = this.getFocusElement();
- if (sel.isCollapsed || (new RegExp('td|tr|tbody|table|img', 'gi').test(felm.nodeName) && sel.anchorNode == felm.parentNode))
- parentElm = felm;
- }
-
- // Whole element selected
- if (parentElm && !invalidRe.test(parentElm.nodeName)) {
- if (scmd == "setstyle")
- tinyMCE.setStyleAttrib(parentElm, sname, svalue);
-
- if (scmd == "setattrib")
- tinyMCE.setAttrib(parentElm, sname, svalue);
-
- if (scmd == "removeformat") {
- parentElm.style.cssText = '';
- tinyMCE.setAttrib(parentElm, 'class', '');
- }
-
- // Remove style/attribs from all children
- var ch = tinyMCE.getNodeTree(parentElm, [], 1);
- for (z=0; z<ch.length; z++) {
- if (ch[z] == parentElm)
- continue;
-
- if (scmd == "setstyle")
- tinyMCE.setStyleAttrib(ch[z], sname, '');
-
- if (scmd == "setattrib")
- tinyMCE.setAttrib(ch[z], sname, '');
-
- if (scmd == "removeformat") {
- ch[z].style.cssText = '';
- tinyMCE.setAttrib(ch[z], 'class', '');
- }
- }
- } else {
- this._setUseCSS(false); // Bug in FF when running in fullscreen
- doc.execCommand("FontName", false, "#mce_temp_font#");
- var elementArray = tinyMCE.getElementsByAttributeValue(this.getBody(), "font", "face", "#mce_temp_font#");
-
- // Change them all
- for (x=0; x<elementArray.length; x++) {
- elm = elementArray[x];
- if (elm) {
- var spanElm = doc.createElement(wrapper);
-
- if (scmd == "setstyle")
- tinyMCE.setStyleAttrib(spanElm, sname, svalue);
-
- if (scmd == "setattrib")
- tinyMCE.setAttrib(spanElm, sname, svalue);
-
- if (scmd == "removeformat") {
- spanElm.style.cssText = '';
- tinyMCE.setAttrib(spanElm, 'class', '');
- }
-
- if (elm.hasChildNodes()) {
- for (i=0; i<elm.childNodes.length; i++)
- spanElm.appendChild(elm.childNodes[i].cloneNode(true));
- }
-
- spanElm.setAttribute("mce_new", "true");
- elm.parentNode.replaceChild(spanElm, elm);
-
- // Remove style/attribs from all children
- var ch = tinyMCE.getNodeTree(spanElm, [], 1);
- for (z=0; z<ch.length; z++) {
- if (ch[z] == spanElm)
- continue;
-
- if (scmd == "setstyle")
- tinyMCE.setStyleAttrib(ch[z], sname, '');
-
- if (scmd == "setattrib")
- tinyMCE.setAttrib(ch[z], sname, '');
-
- if (scmd == "removeformat") {
- ch[z].style.cssText = '';
- tinyMCE.setAttrib(ch[z], 'class', '');
- }
- }
- }
- }
- }
-
- // Cleaup wrappers
- var nodes = doc.getElementsByTagName(wrapper);
- for (i=nodes.length-1; i>=0; i--) {
- var elm = nodes[i];
- var isNew = tinyMCE.getAttrib(elm, "mce_new") == "true";
-
- elm.removeAttribute("mce_new");
-
- // Is only child a element
- if (elm.childNodes && elm.childNodes.length == 1 && elm.childNodes[0].nodeType == 1) {
- //tinyMCE.debug("merge1" + isNew);
- this._mergeElements(scmd, elm, elm.childNodes[0], isNew);
- continue;
- }
-
- // Is I the only child
- if (elm.parentNode.childNodes.length == 1 && !invalidRe.test(elm.nodeName) && !invalidRe.test(elm.parentNode.nodeName)) {
- //tinyMCE.debug("merge2" + isNew + "," + elm.nodeName + "," + elm.parentNode.nodeName);
- if (invalidParentsRe == null || !invalidParentsRe.test(elm.parentNode.nodeName))
- this._mergeElements(scmd, elm.parentNode, elm, false);
- }
- }
-
- // Remove empty wrappers
- var nodes = doc.getElementsByTagName(wrapper);
- for (i=nodes.length-1; i>=0; i--) {
- var elm = nodes[i], isEmpty = true;
-
- // Check if it has any attribs
- var tmp = doc.createElement("body");
- tmp.appendChild(elm.cloneNode(false));
-
- // Is empty span, remove it
- tmp.innerHTML = tmp.innerHTML.replace(new RegExp('style=""|class=""', 'gi'), '');
- //tinyMCE.debug(tmp.innerHTML);
- if (new RegExp('<span>', 'gi').test(tmp.innerHTML)) {
- for (x=0; x<elm.childNodes.length; x++) {
- if (elm.parentNode != null)
- elm.parentNode.insertBefore(elm.childNodes[x].cloneNode(true), elm);
- }
-
- elm.parentNode.removeChild(elm);
- }
- }
-
- // Re add the visual aids
- if (scmd == "removeformat")
- tinyMCE.handleVisualAid(this.getBody(), true, this.visualAid, this);
-
- tinyMCE.triggerNodeChange();
-
- break;
-
- case "FontName":
- if (value == null) {
- var s = this.getSel();
-
- // Find font and select it
- if (tinyMCE.isGecko && s.isCollapsed) {
- var f = tinyMCE.getParentElement(this.getFocusElement(), "font");
-
- if (f != null)
- this.selection.selectNode(f, false);
- }
-
- // Remove format
- this.getDoc().execCommand("RemoveFormat", false, null);
-
- // Collapse range if font was found
- if (f != null && tinyMCE.isGecko) {
- var r = this.getRng().cloneRange();
- r.collapse(true);
- s.removeAllRanges();
- s.addRange(r);
- }
- } else
- this.getDoc().execCommand('FontName', false, value);
-
- if (tinyMCE.isGecko)
- window.setTimeout('tinyMCE.triggerNodeChange(false);', 1);
-
- return;
-
- case "FontSize":
- this.getDoc().execCommand('FontSize', false, value);
-
- if (tinyMCE.isGecko)
- window.setTimeout('tinyMCE.triggerNodeChange(false);', 1);
-
- return;
-
- case "forecolor":
- value = value == null ? this.foreColor : value;
- value = tinyMCE.trim(value);
- value = value.charAt(0) != '#' ? (isNaN('0x' + value) ? value : '#' + value) : value;
-
- this.foreColor = value;
- this.getDoc().execCommand('forecolor', false, value);
- break;
-
- case "HiliteColor":
- value = value == null ? this.backColor : value;
- value = tinyMCE.trim(value);
- value = value.charAt(0) != '#' ? (isNaN('0x' + value) ? value : '#' + value) : value;
- this.backColor = value;
-
- if (tinyMCE.isGecko) {
- this._setUseCSS(true);
- this.getDoc().execCommand('hilitecolor', false, value);
- this._setUseCSS(false);
- } else
- this.getDoc().execCommand('BackColor', false, value);
- break;
-
- case "Cut":
- case "Copy":
- case "Paste":
- var cmdFailed = false;
-
- // Try executing command
- eval('try {this.getDoc().execCommand(command, user_interface, value);} catch (e) {cmdFailed = true;}');
-
- if (tinyMCE.isOpera && cmdFailed)
- alert('Currently not supported by your browser, use keyboard shortcuts instead.');
-
- // Alert error in gecko if command failed
- if (tinyMCE.isGecko && cmdFailed) {
- // Confirm more info
- if (confirm(tinyMCE.entityDecode(tinyMCE.getLang('lang_clipboard_msg'))))
- window.open('http://www.mozilla.org/editor/midasdemo/securityprefs.html', 'mceExternal');
-
- return;
- } else
- tinyMCE.triggerNodeChange();
- break;
-
- case "mceSetContent":
- if (!value)
- value = "";
-
- // Call custom cleanup code
- value = tinyMCE.storeAwayURLs(value);
- value = tinyMCE._customCleanup(this, "insert_to_editor", value);
-
- if (this.getBody().nodeName == 'BODY')
- tinyMCE._setHTML(doc, value);
- else
- this.getBody().innerHTML = value;
-
- tinyMCE.setInnerHTML(this.getBody(), tinyMCE._cleanupHTML(this, doc, this.settings, this.getBody(), false, false, false, true));
- tinyMCE.convertAllRelativeURLs(this.getBody());
-
- // Cleanup any mess left from storyAwayURLs
- tinyMCE._removeInternal(this.getBody());
-
- // When editing always use fonts internaly
- if (tinyMCE.getParam("convert_fonts_to_spans"))
- tinyMCE.convertSpansToFonts(doc);
-
- tinyMCE.handleVisualAid(this.getBody(), true, this.visualAid, this);
- tinyMCE._setEventsEnabled(this.getBody(), false);
- this._addBogusBR();
-
- return true;
-
- case "mceCleanup":
- var b = this.selection.getBookmark();
- tinyMCE._setHTML(this.contentDocument, this.getBody().innerHTML);
- tinyMCE.setInnerHTML(this.getBody(), tinyMCE._cleanupHTML(this, this.contentDocument, this.settings, this.getBody(), this.visualAid));
- tinyMCE.convertAllRelativeURLs(doc.body);
-
- // When editing always use fonts internaly
- if (tinyMCE.getParam("convert_fonts_to_spans"))
- tinyMCE.convertSpansToFonts(doc);
-
- tinyMCE.handleVisualAid(this.getBody(), true, this.visualAid, this);
- tinyMCE._setEventsEnabled(this.getBody(), false);
- this._addBogusBR();
- this.repaint();
- this.selection.moveToBookmark(b);
- tinyMCE.triggerNodeChange();
- break;
-
- case "mceReplaceContent":
- // Force empty string
- if (!value)
- value = '';
-
- this.getWin().focus();
-
- var selectedText = "";
-
- if (tinyMCE.isIE) {
- var rng = doc.selection.createRange();
- selectedText = rng.text;
- } else
- selectedText = this.getSel().toString();
-
- if (selectedText.length > 0) {
- value = tinyMCE.replaceVar(value, "selection", selectedText);
- tinyMCE.execCommand('mceInsertContent', false, value);
- }
-
- this._addBogusBR();
- tinyMCE.triggerNodeChange();
- break;
-
- case "mceSetAttribute":
- if (typeof(value) == 'object') {
- var targetElms = (typeof(value.targets) == "undefined") ? "p,img,span,div,td,h1,h2,h3,h4,h5,h6,pre,address" : value.targets;
- var targetNode = tinyMCE.getParentElement(this.getFocusElement(), targetElms);
-
- if (targetNode) {
- targetNode.setAttribute(value.name, value.value);
- tinyMCE.triggerNodeChange();
- }
- }
- break;
-
- case "mceSetCSSClass":
- this.execCommand("mceSetStyleInfo", false, {command : "setattrib", name : "class", value : value});
- break;
-
- case "mceInsertRawHTML":
- var key = 'tiny_mce_marker';
-
- this.execCommand('mceBeginUndoLevel');
-
- // Insert marker key
- this.execCommand('mceInsertContent', false, key);
-
- // Store away scroll pos
- var scrollX = this.getBody().scrollLeft + this.getDoc().documentElement.scrollLeft;
- var scrollY = this.getBody().scrollTop + this.getDoc().documentElement.scrollTop;
-
- // Find marker and replace with RAW HTML
- var html = this.getBody().innerHTML;
- if ((pos = html.indexOf(key)) != -1)
- tinyMCE.setInnerHTML(this.getBody(), html.substring(0, pos) + value + html.substring(pos + key.length));
-
- // Restore scoll pos
- this.contentWindow.scrollTo(scrollX, scrollY);
-
- this.execCommand('mceEndUndoLevel');
-
- break;
-
- case "mceInsertContent":
- // Force empty string
- if (!value)
- value = '';
-
- var insertHTMLFailed = false;
-
- // Removed since it produced problems in IE
- // this.getWin().focus();
-
- if (tinyMCE.isGecko || tinyMCE.isOpera) {
- try {
- // Is plain text or HTML, &, etc will be encoded wrong in FF
- if (value.indexOf('<') == -1 && !value.match(/(&| |<|>)/g)) {
- var r = this.getRng();
- var n = this.getDoc().createTextNode(tinyMCE.entityDecode(value));
- var s = this.getSel();
- var r2 = r.cloneRange();
-
- // Insert text at cursor position
- s.removeAllRanges();
- r.deleteContents();
- r.insertNode(n);
-
- // Move the cursor to the end of text
- r2.selectNode(n);
- r2.collapse(false);
- s.removeAllRanges();
- s.addRange(r2);
- } else {
- value = tinyMCE.fixGeckoBaseHREFBug(1, this.getDoc(), value);
- this.getDoc().execCommand('inserthtml', false, value);
- tinyMCE.fixGeckoBaseHREFBug(2, this.getDoc(), value);
- }
- } catch (ex) {
- insertHTMLFailed = true;
- }
-
- if (!insertHTMLFailed) {
- tinyMCE.triggerNodeChange();
- return;
- }
- }
-
- if (!tinyMCE.isIE) {
- var isHTML = value.indexOf('<') != -1;
- var sel = this.getSel();
- var rng = this.getRng();
-
- if (isHTML) {
- if (tinyMCE.isSafari) {
- var tmpRng = this.getDoc().createRange();
-
- tmpRng.setStart(this.getBody(), 0);
- tmpRng.setEnd(this.getBody(), 0);
-
- value = tmpRng.createContextualFragment(value);
- } else
- value = rng.createContextualFragment(value);
- } else {
- // Setup text node
- value = doc.createTextNode(tinyMCE.entityDecode(value));
- }
-
- // Insert plain text in Safari
- if (tinyMCE.isSafari && !isHTML) {
- this.execCommand('InsertText', false, value.nodeValue);
- tinyMCE.triggerNodeChange();
- return true;
- } else if (tinyMCE.isSafari && isHTML) {
- rng.deleteContents();
- rng.insertNode(value);
- tinyMCE.triggerNodeChange();
- return true;
- }
-
- rng.deleteContents();
-
- // If target node is text do special treatment, (Mozilla 1.3 fix)
- if (rng.startContainer.nodeType == 3) {
- var node = rng.startContainer.splitText(rng.startOffset);
- node.parentNode.insertBefore(value, node);
- } else
- rng.insertNode(value);
-
- if (!isHTML) {
- // Removes weird selection trails
- sel.selectAllChildren(doc.body);
- sel.removeAllRanges();
-
- // Move cursor to end of content
- var rng = doc.createRange();
-
- rng.selectNode(value);
- rng.collapse(false);
-
- sel.addRange(rng);
- } else
- rng.collapse(false);
-
- tinyMCE.fixGeckoBaseHREFBug(2, this.getDoc(), value);
- } else {
- var rng = doc.selection.createRange(), tmpRng = null;
- var c = value.indexOf('<!--') != -1;
-
- // Fix comment bug, add tag before comments
- if (c)
- value = tinyMCE.uniqueTag + value;
-
- // tmpRng = rng.duplicate(); // Store away range (Fixes Undo bookmark bug in IE)
-
- if (rng.item)
- rng.item(0).outerHTML = value;
- else
- rng.pasteHTML(value);
-
- //if (tmpRng)
- // tmpRng.select(); // Restore range (Fixes Undo bookmark bug in IE)
-
- // Remove unique tag
- if (c) {
- var e = this.getDoc().getElementById('mceTMPElement');
- e.parentNode.removeChild(e);
- }
- }
-
- tinyMCE.execCommand("mceAddUndoLevel");
- tinyMCE.triggerNodeChange();
- break;
-
- case "mceStartTyping":
- if (tinyMCE.settings.custom_undo_redo && this.undoRedo.typingUndoIndex == -1) {
- this.undoRedo.typingUndoIndex = this.undoRedo.undoIndex;
- tinyMCE.typingUndoIndex = tinyMCE.undoIndex;
- this.execCommand('mceAddUndoLevel');
- }
- break;
-
- case "mceEndTyping":
- if (tinyMCE.settings.custom_undo_redo && this.undoRedo.typingUndoIndex != -1) {
- this.execCommand('mceAddUndoLevel');
- this.undoRedo.typingUndoIndex = -1;
- }
-
- tinyMCE.typingUndoIndex = -1;
- break;
-
- case "mceBeginUndoLevel":
- this.undoRedoLevel = false;
- break;
-
- case "mceEndUndoLevel":
- this.undoRedoLevel = true;
- this.execCommand('mceAddUndoLevel');
- break;
-
- case "mceAddUndoLevel":
- if (tinyMCE.settings.custom_undo_redo && this.undoRedoLevel) {
- if (this.undoRedo.add())
- tinyMCE.triggerNodeChange(false);
- }
- break;
-
- case "Undo":
- if (tinyMCE.settings.custom_undo_redo) {
- tinyMCE.execCommand("mceEndTyping");
- this.undoRedo.undo();
- tinyMCE.triggerNodeChange();
- } else
- this.getDoc().execCommand(command, user_interface, value);
- break;
-
- case "Redo":
- if (tinyMCE.settings.custom_undo_redo) {
- tinyMCE.execCommand("mceEndTyping");
- this.undoRedo.redo();
- tinyMCE.triggerNodeChange();
- } else
- this.getDoc().execCommand(command, user_interface, value);
- break;
-
- case "mceToggleVisualAid":
- this.visualAid = !this.visualAid;
- tinyMCE.handleVisualAid(this.getBody(), true, this.visualAid, this);
- tinyMCE.triggerNodeChange();
- break;
-
- case "Indent":
- this.getDoc().execCommand(command, user_interface, value);
- tinyMCE.triggerNodeChange();
-
- if (tinyMCE.isIE) {
- var n = tinyMCE.getParentElement(this.getFocusElement(), "blockquote");
- do {
- if (n && n.nodeName == "BLOCKQUOTE") {
- n.removeAttribute("dir");
- n.removeAttribute("style");
- }
- } while (n != null && (n = n.parentNode) != null);
- }
- break;
-
- case "RemoveFormat":
- case "removeformat":
- var text = this.selection.getSelectedText();
-
- if (tinyMCE.isOpera) {
- this.getDoc().execCommand("RemoveFormat", false, null);
- return;
- }
-
- if (tinyMCE.isIE) {
- try {
- var rng = doc.selection.createRange();
- rng.execCommand("RemoveFormat", false, null);
- } catch (e) {
- // Do nothing
- }
-
- this.execCommand("mceSetStyleInfo", false, {command : "removeformat"});
- } else {
- this.getDoc().execCommand(command, user_interface, value);
-
- this.execCommand("mceSetStyleInfo", false, {command : "removeformat"});
- }
-
- // Remove class
- if (text.length == 0)
- this.execCommand("mceSetCSSClass", false, "");
-
- tinyMCE.triggerNodeChange();
- break;
-
- default:
- this.getDoc().execCommand(command, user_interface, value);
-
- if (tinyMCE.isGecko)
- window.setTimeout('tinyMCE.triggerNodeChange(false);', 1);
- else
- tinyMCE.triggerNodeChange();
- }
-
- // Add undo level after modification
- if (command != "mceAddUndoLevel" && command != "Undo" && command != "Redo" && command != "mceStartTyping" && command != "mceEndTyping")
- tinyMCE.execCommand("mceAddUndoLevel");
- },
-
- queryCommandValue : function(c) {
- try {
- return this.getDoc().queryCommandValue(c);
- } catch (e) {
- return null;
- }
- },
-
- queryCommandState : function(c) {
- return this.getDoc().queryCommandState(c);
- },
-
- _addBogusBR : function() {
- var b = this.getBody();
-
- if (tinyMCE.isGecko && !b.hasChildNodes())
- b.innerHTML = '<br _moz_editor_bogus_node="TRUE" />';
- },
-
- _onAdd : function(replace_element, form_element_name, target_document) {
- var hc, th, tos, editorTemplate, targetDoc, deltaWidth, deltaHeight, html, rng, fragment;
- var dynamicIFrame, tElm, doc, parentElm;
-
- th = this.settings.theme;
- tos = tinyMCE.themes[th];
-
- targetDoc = target_document ? target_document : document;
-
- this.targetDoc = targetDoc;
-
- tinyMCE.themeURL = tinyMCE.baseURL + "/themes/" + this.settings.theme;
- this.settings.themeurl = tinyMCE.themeURL;
-
- if (!replace_element) {
- alert("Error: Could not find the target element.");
- return false;
- }
-
- if (tos.getEditorTemplate)
- editorTemplate = tos.getEditorTemplate(this.settings, this.editorId);
-
- deltaWidth = editorTemplate.delta_width ? editorTemplate.delta_width : 0;
- deltaHeight = editorTemplate.delta_height ? editorTemplate.delta_height : 0;
- html = '<span id="' + this.editorId + '_parent" class="mceEditorContainer">' + editorTemplate.html;
-
- html = tinyMCE.replaceVar(html, "editor_id", this.editorId);
-
- if (!this.settings.default_document)
- this.settings.default_document = tinyMCE.baseURL + "/blank.htm";
-
- this.settings.old_width = this.settings.width;
- this.settings.old_height = this.settings.height;
-
- // Set default width, height
- if (this.settings.width == -1)
- this.settings.width = replace_element.offsetWidth;
-
- if (this.settings.height == -1)
- this.settings.height = replace_element.offsetHeight;
-
- // Try the style width
- if (this.settings.width == 0)
- this.settings.width = replace_element.style.width;
-
- // Try the style height
- if (this.settings.height == 0)
- this.settings.height = replace_element.style.height;
-
- // If no width/height then default to 320x240, better than nothing
- if (this.settings.width == 0)
- this.settings.width = 320;
-
- if (this.settings.height == 0)
- this.settings.height = 240;
-
- this.settings.area_width = parseInt(this.settings.width);
- this.settings.area_height = parseInt(this.settings.height);
- this.settings.area_width += deltaWidth;
- this.settings.area_height += deltaHeight;
- this.settings.width_style = "" + this.settings.width;
- this.settings.height_style = "" + this.settings.height;
-
- // Special % handling
- if (("" + this.settings.width).indexOf('%') != -1)
- this.settings.area_width = "100%";
- else
- this.settings.width_style += 'px';
-
- if (("" + this.settings.height).indexOf('%') != -1)
- this.settings.area_height = "100%";
- else
- this.settings.height_style += 'px';
-
- if (("" + replace_element.style.width).indexOf('%') != -1) {
- this.settings.width = replace_element.style.width;
- this.settings.area_width = "100%";
- this.settings.width_style = "100%";
- }
-
- if (("" + replace_element.style.height).indexOf('%') != -1) {
- this.settings.height = replace_element.style.height;
- this.settings.area_height = "100%";
- this.settings.height_style = "100%";
- }
-
- html = tinyMCE.applyTemplate(html);
-
- this.settings.width = this.settings.old_width;
- this.settings.height = this.settings.old_height;
-
- this.visualAid = this.settings.visual;
- this.formTargetElementId = form_element_name;
-
- // Get replace_element contents
- if (replace_element.nodeName == "TEXTAREA" || replace_element.nodeName == "INPUT")
- this.startContent = replace_element.value;
- else
- this.startContent = replace_element.innerHTML;
-
- // If not text area or input
- if (replace_element.nodeName != "TEXTAREA" && replace_element.nodeName != "INPUT") {
- this.oldTargetElement = replace_element;
-
- // Debug mode
- hc = '<input type="hidden" id="' + form_element_name + '" name="' + form_element_name + '" />';
- this.oldTargetDisplay = tinyMCE.getStyle(this.oldTargetElement, 'display', 'inline');
- this.oldTargetElement.style.display = "none";
-
- html += '</span>';
-
- if (tinyMCE.isGecko)
- html = hc + html;
- else
- html += hc;
-
- // Output HTML and set editable
- if (tinyMCE.isGecko) {
- rng = replace_element.ownerDocument.createRange();
- rng.setStartBefore(replace_element);
-
- fragment = rng.createContextualFragment(html);
- tinyMCE.insertAfter(fragment, replace_element);
- } else
- replace_element.insertAdjacentHTML("beforeBegin", html);
- } else {
- html += '</span>';
-
- // Just hide the textarea element
- this.oldTargetElement = replace_element;
-
- this.oldTargetDisplay = tinyMCE.getStyle(this.oldTargetElement, 'display', 'inline');
- this.oldTargetElement.style.display = "none";
-
- // Output HTML and set editable
- if (tinyMCE.isGecko) {
- rng = replace_element.ownerDocument.createRange();
- rng.setStartBefore(replace_element);
-
- fragment = rng.createContextualFragment(html);
- tinyMCE.insertAfter(fragment, replace_element);
- } else
- replace_element.insertAdjacentHTML("beforeBegin", html);
- }
-
- // Setup iframe
- dynamicIFrame = false;
- tElm = targetDoc.getElementById(this.editorId);
-
- if (!tinyMCE.isIE) {
- // Node case is preserved in XML strict mode
- if (tElm && (tElm.nodeName == "SPAN" || tElm.nodeName == "span")) {
- tElm = tinyMCE._createIFrame(tElm, targetDoc);
- dynamicIFrame = true;
- }
-
- this.targetElement = tElm;
- this.iframeElement = tElm;
- this.contentDocument = tElm.contentDocument;
- this.contentWindow = tElm.contentWindow;
-
- //this.getDoc().designMode = "on";
- } else {
- if (tElm && tElm.nodeName == "SPAN")
- tElm = tinyMCE._createIFrame(tElm, targetDoc, targetDoc.parentWindow);
- else
- tElm = targetDoc.frames[this.editorId];
-
- this.targetElement = tElm;
- this.iframeElement = targetDoc.getElementById(this.editorId);
-
- if (tinyMCE.isOpera) {
- this.contentDocument = this.iframeElement.contentDocument;
- this.contentWindow = this.iframeElement.contentWindow;
- dynamicIFrame = true;
- } else {
- this.contentDocument = tElm.window.document;
- this.contentWindow = tElm.window;
- }
-
- this.getDoc().designMode = "on";
- }
-
- // Setup base HTML
- doc = this.contentDocument;
- if (dynamicIFrame) {
- html = tinyMCE.getParam('doctype') + '<html><head xmlns="http://www.w3.org/1999/xhtml"><base href="' + tinyMCE.settings.base_href + '" /><title>blank_page</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head><body class="mceContentBody"></body></html>';
-
- try {
- if (!this.isHidden())
- this.getDoc().designMode = "on";
-
- doc.open();
- doc.write(html);
- doc.close();
- } catch (e) {
- // Failed Mozilla 1.3
- this.getDoc().location.href = tinyMCE.baseURL + "/blank.htm";
- }
- }
-
- // This timeout is needed in MSIE 5.5 for some odd reason
- // it seems that the document.frames isn't initialized yet?
- if (tinyMCE.isIE)
- window.setTimeout("tinyMCE.addEventHandlers(tinyMCE.instances[\"" + this.editorId + "\"]);", 1);
-
- // Setup element references
- parentElm = this.targetDoc.getElementById(this.editorId + '_parent');
- this.formElement = tinyMCE.isGecko ? parentElm.previousSibling : parentElm.nextSibling;
-
- tinyMCE.setupContent(this.editorId, true);
-
- return true;
- },
-
- setBaseHREF : function(u) {
- var h, b, d, nl;
-
- d = this.getDoc();
- nl = d.getElementsByTagName("base");
- b = nl.length > 0 ? nl[0] : null;
-
- if (!b) {
- nl = d.getElementsByTagName("head");
- h = nl.length > 0 ? nl[0] : null;
-
- b = d.createElement("base");
- b.setAttribute('href', u);
- h.appendChild(b);
- } else {
- if (u == '' || u == null)
- b.parentNode.removeChild(b);
- else
- b.setAttribute('href', u);
- }
- },
-
- getHTML : function(r) {
- var h, d = this.getDoc(), b = this.getBody();
-
- if (r)
- return b.innerHTML;
-
- h = tinyMCE._cleanupHTML(this, d, this.settings, b, false, true, false, true);
-
- if (tinyMCE.getParam("convert_fonts_to_spans"))
- tinyMCE.convertSpansToFonts(d);
-
- return h;
- },
-
- setHTML : function(h) {
- this.execCommand('mceSetContent', false, h);
- this.repaint();
- },
-
- getFocusElement : function() {
- return this.selection.getFocusElement();
- },
-
- getSel : function() {
- return this.selection.getSel();
- },
-
- getRng : function() {
- return this.selection.getRng();
- },
-
- triggerSave : function(skip_cleanup, skip_callback) {
- var e, nl = [], i, s, content, htm;
-
- if (!this.enabled)
- return;
-
- this.switchSettings();
- s = tinyMCE.settings;
-
- // Force hidden tabs visible while serializing
- if (tinyMCE.isRealIE) {
- e = this.iframeElement;
-
- do {
- if (e.style && e.style.display == 'none') {
- e.style.display = 'block';
- nl[nl.length] = {elm : e, type : 'style'};
- }
-
- if (e.style && s.hidden_tab_class.length > 0 && e.className.indexOf(s.hidden_tab_class) != -1) {
- e.className = s.display_tab_class;
- nl[nl.length] = {elm : e, type : 'class'};
- }
- } while ((e = e.parentNode) != null)
- }
-
- tinyMCE.settings.preformatted = false;
-
- // Default to false
- if (typeof(skip_cleanup) == "undefined")
- skip_cleanup = false;
-
- // Default to false
- if (typeof(skip_callback) == "undefined")
- skip_callback = false;
-
- tinyMCE._setHTML(this.getDoc(), this.getBody().innerHTML);
-
- // Remove visual aids when cleanup is disabled
- if (this.settings.cleanup == false) {
- tinyMCE.handleVisualAid(this.getBody(), true, false, this);
- tinyMCE._setEventsEnabled(this.getBody(), true);
- }
-
- tinyMCE._customCleanup(this, "submit_content_dom", this.contentWindow.document.body);
- htm = skip_cleanup ? this.getBody().innerHTML : tinyMCE._cleanupHTML(this, this.getDoc(), this.settings, this.getBody(), tinyMCE.visualAid, true, true);
- htm = tinyMCE._customCleanup(this, "submit_content", htm);
-
- if (!skip_callback && tinyMCE.settings.save_callback !== '')
- content = tinyMCE.resolveDots(tinyMCE.settings.save_callback, window)(this.formTargetElementId,htm,this.getBody());
-
- // Use callback content if available
- if ((typeof(content) != "undefined") && content != null)
- htm = content;
-
- // Replace some weird entities (Bug: #1056343)
- htm = tinyMCE.regexpReplace(htm, "(", "(", "gi");
- htm = tinyMCE.regexpReplace(htm, ")", ")", "gi");
- htm = tinyMCE.regexpReplace(htm, ";", ";", "gi");
- htm = tinyMCE.regexpReplace(htm, """, """, "gi");
- htm = tinyMCE.regexpReplace(htm, "^", "^", "gi");
-
- if (this.formElement)
- this.formElement.value = htm;
-
- if (tinyMCE.isSafari && this.formElement)
- this.formElement.innerText = htm;
-
- // Hide them again (tabs in MSIE)
- for (i=0; i<nl.length; i++) {
- if (nl[i].type == 'style')
- nl[i].elm.style.display = 'none';
- else
- nl[i].elm.className = s.hidden_tab_class;
- }
- }
-
- };
-
-/* file:jscripts/tiny_mce/classes/TinyMCE_Cleanup.class.js */
-
-tinyMCE.add(TinyMCE_Engine, {
- cleanupHTMLCode : function(s) {
- s = s.replace(new RegExp('<p \\/>', 'gi'), '<p> </p>');
- s = s.replace(new RegExp('<p>\\s*<\\/p>', 'gi'), '<p> </p>');
-
- // Fix close BR elements
- s = s.replace(new RegExp('<br>\\s*<\\/br>', 'gi'), '<br />');
-
- // Open closed tags like <b/> to <b></b>
- s = s.replace(new RegExp('<(h[1-6]|p|div|address|pre|form|table|li|ol|ul|td|b|font|em|strong|i|strike|u|span|a|ul|ol|li|blockquote)([a-z]*)([^\\\\|>]*)\\/>', 'gi'), '<$1$2$3></$1$2>');
-
- // Remove trailing space <b > to <b>
- s = s.replace(new RegExp('\\s+></', 'gi'), '></');
-
- // Close tags <img></img> to <img/>
- s = s.replace(new RegExp('<(img|br|hr)([^>]*)><\\/(img|br|hr)>', 'gi'), '<$1$2 />');
-
- // Weird MSIE bug, <p><hr /></p> breaks runtime?
- if (tinyMCE.isIE)
- s = s.replace(new RegExp('<p><hr \\/><\\/p>', 'gi'), "<hr>");
-
- // Weird tags will make IE error #bug: 1538495
- if (tinyMCE.isIE)
- s = s.replace(/<!(\s*)\/>/g, '');
-
- // Convert relative anchors to absolute URLs ex: #something to file.htm#something
- // Removed: Since local document anchors should never be forced absolute example edit.php?id=something
- //if (tinyMCE.getParam('convert_urls'))
- // s = s.replace(new RegExp('(href=\"{0,1})(\\s*#)', 'gi'), '$1' + tinyMCE.settings.document_base_url + "#");
-
- return s;
- },
-
- parseStyle : function(str) {
- var ar = [], st, i, re, pa;
-
- if (str == null)
- return ar;
-
- st = str.split(';');
-
- tinyMCE.clearArray(ar);
-
- for (i=0; i<st.length; i++) {
- if (st[i] == '')
- continue;
-
- re = new RegExp('^\\s*([^:]*):\\s*(.*)\\s*$');
- pa = st[i].replace(re, '$1||$2').split('||');
- //tinyMCE.debug(str, pa[0] + "=" + pa[1], st[i].replace(re, '$1||$2'));
- if (pa.length == 2)
- ar[pa[0].toLowerCase()] = pa[1];
- }
-
- return ar;
- },
-
- compressStyle : function(ar, pr, sf, res) {
- var box = [], i, a;
-
- box[0] = ar[pr + '-top' + sf];
- box[1] = ar[pr + '-left' + sf];
- box[2] = ar[pr + '-right' + sf];
- box[3] = ar[pr + '-bottom' + sf];
-
- for (i=0; i<box.length; i++) {
- if (box[i] == null)
- return;
-
- for (a=0; a<box.length; a++) {
- if (box[a] != box[i])
- return;
- }
- }
-
- // They are all the same
- ar[res] = box[0];
- ar[pr + '-top' + sf] = null;
- ar[pr + '-left' + sf] = null;
- ar[pr + '-right' + sf] = null;
- ar[pr + '-bottom' + sf] = null;
- },
-
- serializeStyle : function(ar) {
- var str = "", key, val, m;
-
- // Compress box
- tinyMCE.compressStyle(ar, "border", "", "border");
- tinyMCE.compressStyle(ar, "border", "-width", "border-width");
- tinyMCE.compressStyle(ar, "border", "-color", "border-color");
- tinyMCE.compressStyle(ar, "border", "-style", "border-style");
- tinyMCE.compressStyle(ar, "padding", "", "padding");
- tinyMCE.compressStyle(ar, "margin", "", "margin");
-
- for (key in ar) {
- val = ar[key];
-
- if (typeof(val) == 'function')
- continue;
-
- if (key.indexOf('mso-') == 0)
- continue;
-
- if (val != null && val !== '') {
- val = '' + val; // Force string
-
- // Fix style URL
- val = val.replace(new RegExp("url\\(\\'?([^\\']*)\\'?\\)", 'gi'), "url('$1')");
-
- // Convert URL
- if (val.indexOf('url(') != -1 && tinyMCE.getParam('convert_urls')) {
- m = new RegExp("url\\('(.*?)'\\)").exec(val);
-
- if (m.length > 1)
- val = "url('" + eval(tinyMCE.getParam('urlconverter_callback') + "(m[1], null, true);") + "')";
- }
-
- // Force HEX colors
- if (tinyMCE.getParam("force_hex_style_colors"))
- val = tinyMCE.convertRGBToHex(val, true);
-
- val = val.replace(/\"/g, '\'');
-
- if (val != "url('')")
- str += key.toLowerCase() + ": " + val + "; ";
- }
- }
-
- if (new RegExp('; $').test(str))
- str = str.substring(0, str.length - 2);
-
- return str;
- },
-
- convertRGBToHex : function(s, k) {
- var re, rgb;
-
- if (s.toLowerCase().indexOf('rgb') != -1) {
- re = new RegExp("(.*?)rgb\\s*?\\(\\s*?([0-9]+).*?,\\s*?([0-9]+).*?,\\s*?([0-9]+).*?\\)(.*?)", "gi");
- rgb = s.replace(re, "$1,$2,$3,$4,$5").split(',');
-
- if (rgb.length == 5) {
- r = parseInt(rgb[1]).toString(16);
- g = parseInt(rgb[2]).toString(16);
- b = parseInt(rgb[3]).toString(16);
-
- r = r.length == 1 ? '0' + r : r;
- g = g.length == 1 ? '0' + g : g;
- b = b.length == 1 ? '0' + b : b;
-
- s = "#" + r + g + b;
-
- if (k)
- s = rgb[0] + s + rgb[4];
- }
- }
-
- return s;
- },
-
- convertHexToRGB : function(s) {
- if (s.indexOf('#') != -1) {
- s = s.replace(new RegExp('[^0-9A-F]', 'gi'), '');
- return "rgb(" + parseInt(s.substring(0, 2), 16) + "," + parseInt(s.substring(2, 4), 16) + "," + parseInt(s.substring(4, 6), 16) + ")";
- }
-
- return s;
- },
-
- convertSpansToFonts : function(doc) {
- var s, i, size, fSize, x, fFace, fColor, sizes = tinyMCE.getParam('font_size_style_values').replace(/\s+/, '').split(',');
-
- s = tinyMCE.selectElements(doc, 'span,font');
- for (i=0; i<s.length; i++) {
- size = tinyMCE.trim(s[i].style.fontSize).toLowerCase();
- fSize = 0;
-
- for (x=0; x<sizes.length; x++) {
- if (sizes[x] == size) {
- fSize = x + 1;
- break;
- }
- }
-
- if (fSize > 0) {
- tinyMCE.setAttrib(s[i], 'size', fSize);
- s[i].style.fontSize = '';
- }
-
- fFace = s[i].style.fontFamily;
- if (fFace != null && fFace !== '') {
- tinyMCE.setAttrib(s[i], 'face', fFace);
- s[i].style.fontFamily = '';
- }
-
- fColor = s[i].style.color;
- if (fColor != null && fColor !== '') {
- tinyMCE.setAttrib(s[i], 'color', tinyMCE.convertRGBToHex(fColor));
- s[i].style.color = '';
- }
- }
- },
-
- convertFontsToSpans : function(doc) {
- var fsClasses, s, i, fSize, fFace, fColor, sizes = tinyMCE.getParam('font_size_style_values').replace(/\s+/, '').split(',');
-
- fsClasses = tinyMCE.getParam('font_size_classes');
- if (fsClasses !== '')
- fsClasses = fsClasses.replace(/\s+/, '').split(',');
- else
- fsClasses = null;
-
- s = tinyMCE.selectElements(doc, 'span,font');
- for (i=0; i<s.length; i++) {
- fSize = tinyMCE.getAttrib(s[i], 'size');
- fFace = tinyMCE.getAttrib(s[i], 'face');
- fColor = tinyMCE.getAttrib(s[i], 'color');
-
- if (fSize !== '') {
- fSize = parseInt(fSize);
-
- if (fSize > 0 && fSize < 8) {
- if (fsClasses != null)
- tinyMCE.setAttrib(s[i], 'class', fsClasses[fSize-1]);
- else
- s[i].style.fontSize = sizes[fSize-1];
- }
-
- s[i].removeAttribute('size');
- }
-
- if (fFace !== '') {
- s[i].style.fontFamily = fFace;
- s[i].removeAttribute('face');
- }
-
- if (fColor !== '') {
- s[i].style.color = fColor;
- s[i].removeAttribute('color');
- }
- }
- },
-
- cleanupAnchors : function(doc) {
- var i, cn, x, an = doc.getElementsByTagName("a");
-
- // Loops backwards due to bug #1467987
- for (i=an.length-1; i>=0; i--) {
- if (tinyMCE.getAttrib(an[i], "name") !== '' && tinyMCE.getAttrib(an[i], "href") == '') {
- cn = an[i].childNodes;
-
- for (x=cn.length-1; x>=0; x--)
- tinyMCE.insertAfter(cn[x], an[i]);
- }
- }
- },
-
- getContent : function(editor_id) {
- if (typeof(editor_id) != "undefined")
- tinyMCE.getInstanceById(editor_id).select();
-
- if (tinyMCE.selectedInstance)
- return tinyMCE.selectedInstance.getHTML();
-
- return null;
- },
-
- _fixListElements : function(d) {
- var nl, x, a = ['ol', 'ul'], i, n, p, r = new RegExp('^(OL|UL)$'), np;
-
- for (x=0; x<a.length; x++) {
- nl = d.getElementsByTagName(a[x]);
-
- for (i=0; i<nl.length; i++) {
- n = nl[i];
- p = n.parentNode;
-
- if (r.test(p.nodeName)) {
- np = tinyMCE.prevNode(n, 'LI');
-
- if (!np) {
- np = d.createElement('li');
- np.innerHTML = ' ';
- np.appendChild(n);
- p.insertBefore(np, p.firstChild);
- } else
- np.appendChild(n);
- }
- }
- }
- },
-
- _fixTables : function(d) {
- var nl, i, n, p, np, x, t;
-
- nl = d.getElementsByTagName('table');
- for (i=0; i<nl.length; i++) {
- n = nl[i];
-
- if ((p = tinyMCE.getParentElement(n, 'p,h1,h2,h3,h4,h5,h6')) != null) {
- np = p.cloneNode(false);
- np.removeAttribute('id');
-
- t = n;
-
- while ((n = n.nextSibling))
- np.appendChild(n);
-
- tinyMCE.insertAfter(np, p);
- tinyMCE.insertAfter(t, p);
- }
- }
- },
-
- _cleanupHTML : function(inst, doc, config, elm, visual, on_save, on_submit, inn) {
- var h, d, t1, t2, t3, t4, t5, c, s, nb;
-
- if (!tinyMCE.getParam('cleanup'))
- return elm.innerHTML;
-
- on_save = typeof(on_save) == 'undefined' ? false : on_save;
-
- c = inst.cleanup;
- s = inst.settings;
- d = c.settings.debug;
-
- if (d)
- t1 = new Date().getTime();
-
- inst._fixRootBlocks();
-
- if (tinyMCE.getParam("convert_fonts_to_spans"))
- tinyMCE.convertFontsToSpans(doc);
-
- if (tinyMCE.getParam("fix_list_elements"))
- tinyMCE._fixListElements(doc);
-
- if (tinyMCE.getParam("fix_table_elements"))
- tinyMCE._fixTables(doc);
-
- // Call custom cleanup code
- tinyMCE._customCleanup(inst, on_save ? "get_from_editor_dom" : "insert_to_editor_dom", doc.body);
-
- if (d)
- t2 = new Date().getTime();
-
- c.settings.on_save = on_save;
-
- c.idCount = 0;
- c.serializationId = new Date().getTime().toString(32); // Unique ID needed for the content duplication bug
- c.serializedNodes = [];
- c.sourceIndex = -1;
-
- if (s.cleanup_serializer == "xml")
- h = c.serializeNodeAsXML(elm, inn);
- else
- h = c.serializeNodeAsHTML(elm, inn);
-
- if (d)
- t3 = new Date().getTime();
-
- // Post processing
- nb = tinyMCE.getParam('entity_encoding') == 'numeric' ? ' ' : ' ';
- h = h.replace(/<\/?(body|head|html)[^>]*>/gi, '');
- h = h.replace(new RegExp(' (rowspan="1"|colspan="1")', 'g'), '');
- h = h.replace(/<p><hr \/><\/p>/g, '<hr />');
- h = h.replace(/<p>( | )<\/p><hr \/><p>( | )<\/p>/g, '<hr />');
- h = h.replace(/<td>\s*<br \/>\s*<\/td>/g, '<td>' + nb + '</td>');
- h = h.replace(/<p>\s*<br \/>\s*<\/p>/g, '<p>' + nb + '</p>');
- h = h.replace(/<br \/>$/, ''); // Remove last BR for Gecko
- h = h.replace(/<br \/><\/p>/g, '</p>'); // Remove last BR in P tags for Gecko
- h = h.replace(/<p>\s*( | )\s*<br \/>\s*( | )\s*<\/p>/g, '<p>' + nb + '</p>');
- h = h.replace(/<p>\s*( | )\s*<br \/>\s*<\/p>/g, '<p>' + nb + '</p>');
- h = h.replace(/<p>\s*<br \/>\s* \s*<\/p>/g, '<p>' + nb + '</p>');
- h = h.replace(new RegExp('<a>(.*?)<\\/a>', 'g'), '$1');
- h = h.replace(/<p([^>]*)>\s*<\/p>/g, '<p$1>' + nb + '</p>');
-
- // Clean body
- if (/^\s*(<br \/>|<p> <\/p>|<p> <\/p>|<p><\/p>)\s*$/.test(h))
- h = '';
-
- // If preformatted
- if (s.preformatted) {
- h = h.replace(/^<pre>/, '');
- h = h.replace(/<\/pre>$/, '');
- h = '<pre>' + h + '</pre>';
- }
-
- // Gecko specific processing
- if (tinyMCE.isGecko) {
- // Makes no sence but FF generates it!!
- h = h.replace(/<br \/>\s*<\/li>/g, '</li>');
- h = h.replace(/ \s*<\/(dd|dt)>/g, '</$1>');
- h = h.replace(/<o:p _moz-userdefined="" \/>/g, '');
- h = h.replace(/<td([^>]*)>\s*<br \/>\s*<\/td>/g, '<td$1>' + nb + '</td>');
- }
-
- if (s.force_br_newlines)
- h = h.replace(/<p>( | )<\/p>/g, '<br />');
-
- // Call custom cleanup code
- h = tinyMCE._customCleanup(inst, on_save ? "get_from_editor" : "insert_to_editor", h);
-
- // Remove internal classes
- if (on_save) {
- h = h.replace(new RegExp(' ?(mceItem[a-zA-Z0-9]*|' + s.visual_table_class + ')', 'g'), '');
- h = h.replace(new RegExp(' ?class=""', 'g'), '');
- }
-
- if (s.remove_linebreaks && !c.settings.indent)
- h = h.replace(/\n|\r/g, ' ');
-
- if (d)
- t4 = new Date().getTime();
-
- if (on_save && c.settings.indent)
- h = c.formatHTML(h);
-
- // If encoding (not recommended option)
- if (on_submit && (s.encoding == "xml" || s.encoding == "html"))
- h = c.xmlEncode(h);
-
- if (d)
- t5 = new Date().getTime();
-
- if (c.settings.debug)
- tinyMCE.debug("Cleanup in ms: Pre=" + (t2-t1) + ", Serialize: " + (t3-t2) + ", Post: " + (t4-t3) + ", Format: " + (t5-t4) + ", Sum: " + (t5-t1) + ".");
-
- return h;
- }
-});
-
-function TinyMCE_Cleanup() {
- this.isIE = (navigator.appName == "Microsoft Internet Explorer");
- this.rules = tinyMCE.clearArray([]);
-
- // Default config
- this.settings = {
- indent_elements : 'head,table,tbody,thead,tfoot,form,tr,ul,ol,blockquote,object',
- newline_before_elements : 'h1,h2,h3,h4,h5,h6,pre,address,div,ul,ol,li,meta,option,area,title,link,base,script,td',
- newline_after_elements : 'br,hr,p,pre,address,div,ul,ol,meta,option,area,link,base,script',
- newline_before_after_elements : 'html,head,body,table,thead,tbody,tfoot,tr,form,ul,ol,blockquote,p,object,param,hr,div',
- indent_char : '\t',
- indent_levels : 1,
- entity_encoding : 'raw',
- valid_elements : '*[*]',
- entities : '',
- url_converter : '',
- invalid_elements : '',
- verify_html : false
- };
-
- this.vElements = tinyMCE.clearArray([]);
- this.vElementsRe = '';
- this.closeElementsRe = /^(IMG|BR|HR|LINK|META|BASE|INPUT|AREA)$/;
- this.codeElementsRe = /^(SCRIPT|STYLE)$/;
- this.serializationId = 0;
- this.mceAttribs = {
- href : 'mce_href',
- src : 'mce_src',
- type : 'mce_type'
- };
-}
-
-TinyMCE_Cleanup.prototype = {
- init : function(s) {
- var n, a, i, ir, or, st;
-
- for (n in s)
- this.settings[n] = s[n];
-
- // Setup code formating
- s = this.settings;
-
- // Setup regexps
- this.inRe = this._arrayToRe(s.indent_elements.split(','), '', '^<(', ')[^>]*');
- this.ouRe = this._arrayToRe(s.indent_elements.split(','), '', '^<\\/(', ')[^>]*');
- this.nlBeforeRe = this._arrayToRe(s.newline_before_elements.split(','), 'gi', '<(', ')([^>]*)>');
- this.nlAfterRe = this._arrayToRe(s.newline_after_elements.split(','), 'gi', '<(', ')([^>]*)>');
- this.nlBeforeAfterRe = this._arrayToRe(s.newline_before_after_elements.split(','), 'gi', '<(\\/?)(', ')([^>]*)>');
- this.serializedNodes = [];
-
- if (s.invalid_elements !== '')
- this.iveRe = this._arrayToRe(s.invalid_elements.toUpperCase().split(','), 'g', '^(', ')$');
- else
- this.iveRe = null;
-
- // Setup separator
- st = '';
- for (i=0; i<s.indent_levels; i++)
- st += s.indent_char;
-
- this.inStr = st;
-
- // If verify_html if false force *[*]
- if (!s.verify_html) {
- s.valid_elements = '*[*]';
- s.extended_valid_elements = '';
- }
-
- this.fillStr = s.entity_encoding == "named" ? " " : " ";
- this.idCount = 0;
- this.xmlEncodeRe = new RegExp('[\u007F-\uFFFF<>&"]', 'g');
- },
-
- addRuleStr : function(s) {
- var r = this.parseRuleStr(s), n;
-
- for (n in r) {
- if (r[n])
- this.rules[n] = r[n];
- }
-
- this.vElements = tinyMCE.clearArray([]);
-
- for (n in this.rules) {
- if (this.rules[n])
- this.vElements[this.vElements.length] = this.rules[n].tag;
- }
-
- this.vElementsRe = this._arrayToRe(this.vElements, '');
- },
-
- isValid : function(n) {
- if (!this.rulesDone)
- this._setupRules(); // Will initialize cleanup rules
-
- // Empty is true since it removes formatting
- if (!n)
- return true;
-
- // Clean the name up a bit
- n = n.replace(/[^a-z0-9]+/gi, '').toUpperCase();
-
- return !tinyMCE.getParam('cleanup') || this.vElementsRe.test(n);
- },
-
- addChildRemoveRuleStr : function(s) {
- var x, y, p, i, t, tn, ta, cl, r;
-
- if (!s)
- return;
-
- ta = s.split(',');
- for (x=0; x<ta.length; x++) {
- s = ta[x];
-
- // Split tag/children
- p = this.split(/\[|\]/, s);
- if (p == null || p.length < 1)
- t = s.toUpperCase();
- else
- t = p[0].toUpperCase();
-
- // Handle all tag names
- tn = this.split('/', t);
- for (y=0; y<tn.length; y++) {
- r = "^(";
-
- // Build regex
- cl = this.split(/\|/, p[1]);
- for (i=0; i<cl.length; i++) {
- if (cl[i] == '%istrict')
- r += tinyMCE.inlineStrict;
- else if (cl[i] == '%itrans')
- r += tinyMCE.inlineTransitional;
- else if (cl[i] == '%istrict_na')
- r += tinyMCE.inlineStrict.substring(2);
- else if (cl[i] == '%itrans_na')
- r += tinyMCE.inlineTransitional.substring(2);
- else if (cl[i] == '%btrans')
- r += tinyMCE.blockElms;
- else if (cl[i] == '%strict')
- r += tinyMCE.blockStrict;
- else
- r += (cl[i].charAt(0) != '#' ? cl[i].toUpperCase() : cl[i]);
-
- r += (i != cl.length - 1 ? '|' : '');
- }
-
- r += ')$';
-
- if (this.childRules == null)
- this.childRules = tinyMCE.clearArray([]);
-
- this.childRules[tn[y]] = new RegExp(r);
-
- if (p.length > 1)
- this.childRules[tn[y]].wrapTag = p[2];
- }
- }
- },
-
- parseRuleStr : function(s) {
- var ta, p, r, a, i, x, px, t, tn, y, av, or = tinyMCE.clearArray([]), dv;
-
- if (s == null || s.length == 0)
- return or;
-
- ta = s.split(',');
- for (x=0; x<ta.length; x++) {
- s = ta[x];
- if (s.length == 0)
- continue;
-
- // Split tag/attrs
- p = this.split(/\[|\]/, s);
- if (p == null || p.length < 1)
- t = s.toUpperCase();
- else
- t = p[0].toUpperCase();
-
- // Handle all tag names
- tn = this.split('/', t);
- for (y=0; y<tn.length; y++) {
- r = {};
-
- r.tag = tn[y];
- r.forceAttribs = null;
- r.defaultAttribs = null;
- r.validAttribValues = null;
-
- // Handle prefixes
- px = r.tag.charAt(0);
- r.forceOpen = px == '+';
- r.removeEmpty = px == '-';
- r.fill = px == '#';
- r.tag = r.tag.replace(/\+|-|#/g, '');
- r.oTagName = tn[0].replace(/\+|-|#/g, '').toLowerCase();
- r.isWild = new RegExp('\\*|\\?|\\+', 'g').test(r.tag);
- r.validRe = new RegExp(this._wildcardToRe('^' + r.tag + '$'));
-
- // Setup valid attributes
- if (p.length > 1) {
- r.vAttribsRe = '^(';
- a = this.split(/\|/, p[1]);
-
- for (i=0; i<a.length; i++) {
- t = a[i];
-
- if (t.charAt(0) == '!') {
- a[i] = t = t.substring(1);
-
- if (!r.reqAttribsRe)
- r.reqAttribsRe = '\\s+(' + t;
- else
- r.reqAttribsRe += '|' + t;
- }
-
- av = new RegExp('(=|:|<)(.*?)$').exec(t);
- t = t.replace(new RegExp('(=|:|<).*?$'), '');
- if (av && av.length > 0) {
- if (av[0].charAt(0) == ':') {
- if (!r.forceAttribs)
- r.forceAttribs = tinyMCE.clearArray([]);
-
- r.forceAttribs[t.toLowerCase()] = av[0].substring(1);
- } else if (av[0].charAt(0) == '=') {
- if (!r.defaultAttribs)
- r.defaultAttribs = tinyMCE.clearArray([]);
-
- dv = av[0].substring(1);
-
- r.defaultAttribs[t.toLowerCase()] = dv == '' ? "mce_empty" : dv;
- } else if (av[0].charAt(0) == '<') {
- if (!r.validAttribValues)
- r.validAttribValues = tinyMCE.clearArray([]);
-
- r.validAttribValues[t.toLowerCase()] = this._arrayToRe(this.split('?', av[0].substring(1)), 'i');
- }
- }
-
- r.vAttribsRe += '' + t.toLowerCase() + (i != a.length - 1 ? '|' : '');
-
- a[i] = t.toLowerCase();
- }
-
- if (r.reqAttribsRe)
- r.reqAttribsRe = new RegExp(r.reqAttribsRe + ')=\"', 'g');
-
- r.vAttribsRe += ')$';
- r.vAttribsRe = this._wildcardToRe(r.vAttribsRe);
- r.vAttribsReIsWild = new RegExp('\\*|\\?|\\+', 'g').test(r.vAttribsRe);
- r.vAttribsRe = new RegExp(r.vAttribsRe);
- r.vAttribs = a.reverse();
-
- //tinyMCE.debug(r.tag, r.oTagName, r.vAttribsRe, r.vAttribsReWC);
- } else {
- r.vAttribsRe = '';
- r.vAttribs = tinyMCE.clearArray([]);
- r.vAttribsReIsWild = false;
- }
-
- or[r.tag] = r;
- }
- }
-
- return or;
- },
-
- serializeNodeAsXML : function(n) {
- var s, b;
-
- if (!this.xmlDoc) {
- if (this.isIE) {
- try {this.xmlDoc = new ActiveXObject('MSXML2.DOMDocument');} catch (e) {}
-
- if (!this.xmlDoc)
- try {this.xmlDoc = new ActiveXObject('Microsoft.XmlDom');} catch (e) {}
- } else
- this.xmlDoc = document.implementation.createDocument('', '', null);
-
- if (!this.xmlDoc)
- alert("Error XML Parser could not be found.");
- }
-
- if (this.xmlDoc.firstChild)
- this.xmlDoc.removeChild(this.xmlDoc.firstChild);
-
- b = this.xmlDoc.createElement("html");
- b = this.xmlDoc.appendChild(b);
-
- this._convertToXML(n, b);
-
- if (this.isIE)
- return this.xmlDoc.xml;
- else
- return new XMLSerializer().serializeToString(this.xmlDoc);
- },
-
- _convertToXML : function(n, xn) {
- var xd, el, i, l, cn, at, no, hc = false;
-
- if (tinyMCE.isRealIE && this._isDuplicate(n))
- return;
-
- xd = this.xmlDoc;
-
- switch (n.nodeType) {
- case 1: // Element
- hc = n.hasChildNodes();
-
- el = xd.createElement(n.nodeName.toLowerCase());
-
- at = n.attributes;
- for (i=at.length-1; i>-1; i--) {
- no = at[i];
-
- if (no.specified && no.nodeValue)
- el.setAttribute(no.nodeName.toLowerCase(), no.nodeValue);
- }
-
- if (!hc && !this.closeElementsRe.test(n.nodeName))
- el.appendChild(xd.createTextNode(""));
-
- xn = xn.appendChild(el);
- break;
-
- case 3: // Text
- xn.appendChild(xd.createTextNode(n.nodeValue));
- return;
-
- case 8: // Comment
- xn.appendChild(xd.createComment(n.nodeValue));
- return;
- }
-
- if (hc) {
- cn = n.childNodes;
-
- for (i=0, l=cn.length; i<l; i++)
- this._convertToXML(cn[i], xn);
- }
- },
-
- serializeNodeAsHTML : function(n, inn) {
- var en, no, h = '', i, l, t, st, r, cn, va = false, f = false, at, hc, cr, nn;
-
- if (!this.rulesDone)
- this._setupRules(); // Will initialize cleanup rules
-
- if (tinyMCE.isRealIE && this._isDuplicate(n))
- return '';
-
- // Skip non valid child elements
- if (n.parentNode && this.childRules != null) {
- cr = this.childRules[n.parentNode.nodeName];
-
- if (typeof(cr) != "undefined" && !cr.test(n.nodeName)) {
- st = true;
- t = null;
- }
- }
-
- switch (n.nodeType) {
- case 1: // Element
- hc = n.hasChildNodes();
-
- if (st)
- break;
-
- nn = n.nodeName;
-
- if (tinyMCE.isRealIE) {
- // MSIE sometimes produces <//tag>
- if (n.nodeName.indexOf('/') != -1)
- break;
-
- // MSIE has it's NS in a separate attrib
- if (n.scopeName && n.scopeName != 'HTML')
- nn = n.scopeName.toUpperCase() + ':' + nn.toUpperCase();
- } else if (tinyMCE.isOpera && nn.indexOf(':') > 0)
- nn = nn.toUpperCase();
-
- // Convert fonts to spans
- if (this.settings.convert_fonts_to_spans) {
- // On get content FONT -> SPAN
- if (this.settings.on_save && nn == 'FONT')
- nn = 'SPAN';
-
- // On insert content SPAN -> FONT
- if (!this.settings.on_save && nn == 'SPAN')
- nn = 'FONT';
- }
-
- if (this.vElementsRe.test(nn) && (!this.iveRe || !this.iveRe.test(nn)) && !inn) {
- va = true;
-
- r = this.rules[nn];
- if (!r) {
- at = this.rules;
- for (no in at) {
- if (at[no] && at[no].validRe.test(nn)) {
- r = at[no];
- break;
- }
- }
- }
-
- en = r.isWild ? nn.toLowerCase() : r.oTagName;
- f = r.fill;
-
- if (r.removeEmpty && !hc)
- return "";
-
- t = '<' + en;
-
- if (r.vAttribsReIsWild) {
- // Serialize wildcard attributes
- at = n.attributes;
- for (i=at.length-1; i>-1; i--) {
- no = at[i];
- if (no.specified && r.vAttribsRe.test(no.nodeName))
- t += this._serializeAttribute(n, r, no.nodeName);
- }
- } else {
- // Serialize specific attributes
- for (i=r.vAttribs.length-1; i>-1; i--)
- t += this._serializeAttribute(n, r, r.vAttribs[i]);
- }
-
- // Serialize mce_ atts
- if (!this.settings.on_save) {
- at = this.mceAttribs;
-
- for (no in at) {
- if (at[no])
- t += this._serializeAttribute(n, r, at[no]);
- }
- }
-
- // Check for required attribs
- if (r.reqAttribsRe && !t.match(r.reqAttribsRe))
- t = null;
-
- // Close these
- if (t != null && this.closeElementsRe.test(nn))
- return t + ' />';
-
- if (t != null)
- h += t + '>';
-
- if (this.isIE && this.codeElementsRe.test(nn))
- h += n.innerHTML;
- }
- break;
-
- case 3: // Text
- if (st)
- break;
-
- if (n.parentNode && this.codeElementsRe.test(n.parentNode.nodeName))
- return this.isIE ? '' : n.nodeValue;
-
- return this.xmlEncode(n.nodeValue);
-
- case 8: // Comment
- if (st)
- break;
-
- return "<!--" + this._trimComment(n.nodeValue) + "-->";
- }
-
- if (hc) {
- cn = n.childNodes;
-
- for (i=0, l=cn.length; i<l; i++)
- h += this.serializeNodeAsHTML(cn[i]);
- }
-
- // Fill empty nodes
- if (f && !hc)
- h += this.fillStr;
-
- // End element
- if (t != null && va)
- h += '</' + en + '>';
-
- return h;
- },
-
- _serializeAttribute : function(n, r, an) {
- var av = '', t, os = this.settings.on_save;
-
- if (os && (an.indexOf('mce_') == 0 || an.indexOf('_moz') == 0))
- return '';
-
- if (os && this.mceAttribs[an])
- av = this._getAttrib(n, this.mceAttribs[an]);
-
- if (av.length == 0)
- av = this._getAttrib(n, an);
-
- if (av.length == 0 && r.defaultAttribs && (t = r.defaultAttribs[an])) {
- av = t;
-
- if (av == "mce_empty")
- return " " + an + '=""';
- }
-
- if (r.forceAttribs && (t = r.forceAttribs[an]))
- av = t;
-
- if (os && av.length != 0 && /^(src|href|longdesc)$/.test(an))
- av = this._urlConverter(this, n, av);
-
- if (av.length != 0 && r.validAttribValues && r.validAttribValues[an] && !r.validAttribValues[an].test(av))
- return "";
-
- if (av.length != 0 && av == "{$uid}")
- av = "uid_" + (this.idCount++);
-
- if (av.length != 0) {
- if (an.indexOf('on') != 0)
- av = this.xmlEncode(av, 1);
-
- return " " + an + "=" + '"' + av + '"';
- }
-
- return "";
- },
-
- formatHTML : function(h) {
- var s = this.settings, p = '', i = 0, li = 0, o = '', l;
-
- // Replace BR in pre elements to \n
- h = h.replace(/<pre([^>]*)>(.*?)<\/pre>/gi, function (a, b, c) {
- c = c.replace(/<br\s*\/>/gi, '\n');
- return '<pre' + b + '>' + c + '</pre>';
- });
-
- h = h.replace(/\r/g, ''); // Windows sux, isn't carriage return a thing of the past :)
- h = '\n' + h;
- h = h.replace(new RegExp('\\n\\s+', 'gi'), '\n'); // Remove previous formatting
- h = h.replace(this.nlBeforeRe, '\n<$1$2>');
- h = h.replace(this.nlAfterRe, '<$1$2>\n');
- h = h.replace(this.nlBeforeAfterRe, '\n<$1$2$3>\n');
- h += '\n';
-
- //tinyMCE.debug(h);
-
- while ((i = h.indexOf('\n', i + 1)) != -1) {
- if ((l = h.substring(li + 1, i)).length != 0) {
- if (this.ouRe.test(l) && p.length >= s.indent_levels)
- p = p.substring(s.indent_levels);
-
- o += p + l + '\n';
-
- if (this.inRe.test(l))
- p += this.inStr;
- }
-
- li = i;
- }
-
- //tinyMCE.debug(h);
-
- return o;
- },
-
- xmlEncode : function(s) {
- var cl = this, re = this.xmlEncodeRe;
-
- if (!this.entitiesDone)
- this._setupEntities(); // Will intialize lookup table
-
- switch (this.settings.entity_encoding) {
- case "raw":
- return tinyMCE.xmlEncode(s);
-
- case "named":
- return s.replace(re, function (c) {
- var b = cl.entities[c.charCodeAt(0)];
-
- return b ? '&' + b + ';' : c;
- });
-
- case "numeric":
- return s.replace(re, function (c) {
- return '&#' + c.charCodeAt(0) + ';';
- });
- }
-
- return s;
- },
-
- split : function(re, s) {
- var i, l, o = [], c = s.split(re);
-
- for (i=0, l=c.length; i<l; i++) {
- if (c[i] !== '')
- o[i] = c[i];
- }
-
- return o;
- },
-
- _trimComment : function(s) {
- // Remove mce_src, mce_href
- s = s.replace(new RegExp('\\smce_src=\"[^\"]*\"', 'gi'), "");
- s = s.replace(new RegExp('\\smce_href=\"[^\"]*\"', 'gi'), "");
-
- return s;
- },
-
- _getAttrib : function(e, n, d) {
- var v, ex, nn;
-
- if (typeof(d) == "undefined")
- d = "";
-
- if (!e || e.nodeType != 1)
- return d;
-
- try {
- v = e.getAttribute(n, 0);
- } catch (ex) {
- // IE 7 may cast exception on invalid attributes
- v = e.getAttribute(n, 2);
- }
-
- if (n == "class" && !v)
- v = e.className;
-
- if (this.isIE) {
- if (n == "http-equiv")
- v = e.httpEquiv;
-
- nn = e.nodeName;
-
- // Skip the default values that IE returns
- if (nn == "FORM" && n == "enctype" && v == "application/x-www-form-urlencoded")
- v = "";
-
- if (nn == "INPUT" && n == "size" && v == "20")
- v = "";
-
- if (nn == "INPUT" && n == "maxlength" && v == "2147483647")
- v = "";
-
- // Images
- if (n == "width" || n == "height")
- v = e.getAttribute(n, 2);
- }
-
- if (n == 'style' && v) {
- if (!tinyMCE.isOpera)
- v = e.style.cssText;
-
- v = tinyMCE.serializeStyle(tinyMCE.parseStyle(v));
- }
-
- if (this.settings.on_save && n.indexOf('on') != -1 && this.settings.on_save && v && v !== '')
- v = tinyMCE.cleanupEventStr(v);
-
- return (v && v !== '') ? '' + v : d;
- },
-
- _urlConverter : function(c, n, v) {
- if (!c.settings.on_save)
- return tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings.base_href, v);
- else if (tinyMCE.getParam('convert_urls')) {
- if (!this.urlConverter)
- this.urlConverter = eval(tinyMCE.settings.urlconverter_callback);
-
- return this.urlConverter(v, n, true);
- }
-
- return v;
- },
-
- _arrayToRe : function(a, op, be, af) {
- var i, r;
-
- op = typeof(op) == "undefined" ? "gi" : op;
- be = typeof(be) == "undefined" ? "^(" : be;
- af = typeof(af) == "undefined" ? ")$" : af;
-
- r = be;
-
- for (i=0; i<a.length; i++)
- r += this._wildcardToRe(a[i]) + (i != a.length-1 ? "|" : "");
-
- r += af;
-
- return new RegExp(r, op);
- },
-
- _wildcardToRe : function(s) {
- s = s.replace(/\?/g, '(\\S?)');
- s = s.replace(/\+/g, '(\\S+)');
- s = s.replace(/\*/g, '(\\S*)');
-
- return s;
- },
-
- _setupEntities : function() {
- var n, a, i, s = this.settings;
-
- // Setup entities
- if (s.entity_encoding == "named") {
- n = tinyMCE.clearArray([]);
- a = this.split(',', s.entities);
- for (i=0; i<a.length; i+=2)
- n[a[i]] = a[i+1];
-
- this.entities = n;
- }
-
- this.entitiesDone = true;
- },
-
- _setupRules : function() {
- var s = this.settings;
-
- // Setup default rule
- this.addRuleStr(s.valid_elements);
- this.addRuleStr(s.extended_valid_elements);
- this.addChildRemoveRuleStr(s.valid_child_elements);
-
- this.rulesDone = true;
- },
-
- _isDuplicate : function(n) {
- var i, l, sn;
-
- if (!this.settings.fix_content_duplication)
- return false;
-
- if (tinyMCE.isRealIE && n.nodeType == 1) {
- // Mark elements
- if (n.mce_serialized == this.serializationId)
- return true;
-
- n.setAttribute('mce_serialized', this.serializationId);
- } else {
- sn = this.serializedNodes;
-
- // Search lookup table for text nodes and comments
- for (i=0, l = sn.length; i<l; i++) {
- if (sn[i] == n)
- return true;
- }
-
- sn.push(n);
- }
-
- return false;
- }
-
- };
-
-/* file:jscripts/tiny_mce/classes/TinyMCE_DOMUtils.class.js */
-
-tinyMCE.add(TinyMCE_Engine, {
- createTagHTML : function(tn, a, h) {
- var o = '', f = tinyMCE.xmlEncode, n;
-
- o = '<' + tn;
-
- if (a) {
- for (n in a) {
- if (typeof(a[n]) != 'function' && a[n] != null)
- o += ' ' + f(n) + '="' + f('' + a[n]) + '"';
- }
- }
-
- o += !h ? ' />' : '>' + h + '</' + tn + '>';
-
- return o;
- },
-
- createTag : function(d, tn, a, h) {
- var o = d.createElement(tn), n;
-
- if (a) {
- for (n in a) {
- if (typeof(a[n]) != 'function' && a[n] != null)
- tinyMCE.setAttrib(o, n, a[n]);
- }
- }
-
- if (h)
- o.innerHTML = h;
-
- return o;
- },
-
- getElementByAttributeValue : function(n, e, a, v) {
- return (n = this.getElementsByAttributeValue(n, e, a, v)).length == 0 ? null : n[0];
- },
-
- getElementsByAttributeValue : function(n, e, a, v) {
- var i, nl = n.getElementsByTagName(e), o = [];
-
- for (i=0; i<nl.length; i++) {
- if (tinyMCE.getAttrib(nl[i], a).indexOf(v) != -1)
- o[o.length] = nl[i];
- }
-
- return o;
- },
-
- isBlockElement : function(n) {
- return n != null && n.nodeType == 1 && this.blockRegExp.test(n.nodeName);
- },
-
- getParentBlockElement : function(n, r) {
- return this.getParentNode(n, function(n) {
- return tinyMCE.isBlockElement(n);
- }, r);
-
- return null;
- },
-
- insertAfter : function(n, r){
- if (r.nextSibling)
- r.parentNode.insertBefore(n, r.nextSibling);
- else
- r.parentNode.appendChild(n);
- },
-
- setInnerHTML : function(e, h) {
- var i, nl, n;
-
- // Convert all strong/em to b/i in Gecko
- if (tinyMCE.isGecko) {
- h = h.replace(/<embed([^>]*)>/gi, '<tmpembed$1>');
- h = h.replace(/<em([^>]*)>/gi, '<i$1>');
- h = h.replace(/<tmpembed([^>]*)>/gi, '<embed$1>');
- h = h.replace(/<strong([^>]*)>/gi, '<b$1>');
- h = h.replace(/<\/strong>/gi, '</b>');
- h = h.replace(/<\/em>/gi, '</i>');
- }
-
- if (tinyMCE.isRealIE) {
- // Since MSIE handles invalid HTML better that valid XHTML we
- // need to make some things invalid. <hr /> gets converted to <hr>.
- h = h.replace(/\s\/>/g, '>');
-
- // Since MSIE auto generated emtpy P tags some times we must tell it to keep the real ones
- h = h.replace(/<p([^>]*)>\u00A0?<\/p>/gi, '<p$1 mce_keep="true"> </p>'); // Keep empty paragraphs
- h = h.replace(/<p([^>]*)>\s* \s*<\/p>/gi, '<p$1 mce_keep="true"> </p>'); // Keep empty paragraphs
- h = h.replace(/<p([^>]*)>\s+<\/p>/gi, '<p$1 mce_keep="true"> </p>'); // Keep empty paragraphs
-
- // Remove first comment
- e.innerHTML = tinyMCE.uniqueTag + h;
- e.firstChild.removeNode(true);
-
- // Remove weird auto generated empty paragraphs unless it's supposed to be there
- nl = e.getElementsByTagName("p");
- for (i=nl.length-1; i>=0; i--) {
- n = nl[i];
-
- if (n.nodeName == 'P' && !n.hasChildNodes() && !n.mce_keep)
- n.parentNode.removeChild(n);
- }
- } else {
- h = this.fixGeckoBaseHREFBug(1, e, h);
- e.innerHTML = h;
- this.fixGeckoBaseHREFBug(2, e, h);
- }
- },
-
- getOuterHTML : function(e) {
- var d;
-
- if (tinyMCE.isIE)
- return e.outerHTML;
-
- d = e.ownerDocument.createElement("body");
- d.appendChild(e.cloneNode(true));
-
- return d.innerHTML;
- },
-
- setOuterHTML : function(e, h, d) {
- var d = typeof(d) == "undefined" ? e.ownerDocument : d, i, nl, t;
-
- if (tinyMCE.isIE && e.nodeType == 1)
- e.outerHTML = h;
- else {
- t = d.createElement("body");
- t.innerHTML = h;
-
- for (i=0, nl=t.childNodes; i<nl.length; i++)
- e.parentNode.insertBefore(nl[i].cloneNode(true), e);
-
- e.parentNode.removeChild(e);
- }
- },
-
- _getElementById : function(id, d) {
- var e, i, j, f;
-
- if (typeof(d) == "undefined")
- d = document;
-
- e = d.getElementById(id);
- if (!e) {
- f = d.forms;
-
- for (i=0; i<f.length; i++) {
- for (j=0; j<f[i].elements.length; j++) {
- if (f[i].elements[j].name == id) {
- e = f[i].elements[j];
- break;
- }
- }
- }
- }
-
- return e;
- },
-
- getNodeTree : function(n, na, t, nn) {
- return this.selectNodes(n, function(n) {
- return (!t || n.nodeType == t) && (!nn || n.nodeName == nn);
- }, na ? na : []);
- },
-
- getParentElement : function(n, na, f, r) {
- var re = na ? new RegExp('^(' + na.toUpperCase().replace(/,/g, '|') + ')$') : 0, v;
-
- // Compatiblity with old scripts where f param was a attribute string
- if (f && typeof(f) == 'string')
- return this.getParentElement(n, na, function(no) {return tinyMCE.getAttrib(no, f) !== '';});
-
- return this.getParentNode(n, function(n) {
- return ((n.nodeType == 1 && !re) || (re && re.test(n.nodeName))) && (!f || f(n));
- }, r);
- },
-
- getParentNode : function(n, f, r) {
- while (n) {
- if (n == r)
- return null;
-
- if (f(n))
- return n;
-
- n = n.parentNode;
- }
-
- return null;
- },
-
- getAttrib : function(elm, name, dv) {
- var v;
-
- if (typeof(dv) == "undefined")
- dv = "";
-
- // Not a element
- if (!elm || elm.nodeType != 1)
- return dv;
-
- try {
- v = elm.getAttribute(name, 0);
- } catch (ex) {
- // IE 7 may cast exception on invalid attributes
- v = elm.getAttribute(name, 2);
- }
-
- // Try className for class attrib
- if (name == "class" && !v)
- v = elm.className;
-
- // Workaround for a issue with Firefox 1.5rc2+
- if (tinyMCE.isGecko) {
- if (name == "src" && elm.src != null && elm.src !== '')
- v = elm.src;
-
- // Workaround for a issue with Firefox 1.5rc2+
- if (name == "href" && elm.href != null && elm.href !== '')
- v = elm.href;
- } else if (tinyMCE.isIE) {
- switch (name) {
- case "http-equiv":
- v = elm.httpEquiv;
- break;
-
- case "width":
- case "height":
- v = elm.getAttribute(name, 2);
- break;
- }
- }
-
- if (name == "style" && !tinyMCE.isOpera)
- v = elm.style.cssText;
-
- return (v && v !== '') ? v : dv;
- },
-
- setAttrib : function(el, name, va, fix) {
- if (typeof(va) == "number" && va != null)
- va = "" + va;
-
- if (fix) {
- if (va == null)
- va = "";
-
- va = va.replace(/[^0-9%]/g, '');
- }
-
- if (name == "style")
- el.style.cssText = va;
-
- if (name == "class")
- el.className = va;
-
- if (va != null && va !== '' && va != -1)
- el.setAttribute(name, va);
- else
- el.removeAttribute(name);
- },
-
- setStyleAttrib : function(e, n, v) {
- e.style[n] = v;
-
- // Style attrib deleted in IE
- if (tinyMCE.isIE && v == null || v == '') {
- v = tinyMCE.serializeStyle(tinyMCE.parseStyle(e.style.cssText));
- e.style.cssText = v;
- e.setAttribute("style", v);
- }
- },
-
- switchClass : function(ei, c) {
- var e;
-
- if (tinyMCE.switchClassCache[ei])
- e = tinyMCE.switchClassCache[ei];
- else
- e = tinyMCE.switchClassCache[ei] = document.getElementById(ei);
-
- if (e) {
- // Keep tile mode
- if (tinyMCE.settings.button_tile_map && e.className && e.className.indexOf('mceTiledButton') == 0)
- c = 'mceTiledButton ' + c;
-
- e.className = c;
- }
- },
-
- getAbsPosition : function(n, cn) {
- var l = 0, t = 0;
-
- while (n && n != cn) {
- l += n.offsetLeft;
- t += n.offsetTop;
- n = n.offsetParent;
- }
-
- return {absLeft : l, absTop : t};
- },
-
- prevNode : function(e, n) {
- var a = n.split(','), i;
-
- while ((e = e.previousSibling) != null) {
- for (i=0; i<a.length; i++) {
- if (e.nodeName == a[i])
- return e;
- }
- }
-
- return null;
- },
-
- nextNode : function(e, n) {
- var a = n.split(','), i;
-
- while ((e = e.nextSibling) != null) {
- for (i=0; i<a.length; i++) {
- if (e.nodeName == a[i])
- return e;
- }
- }
-
- return null;
- },
-
- selectElements : function(n, na, f) {
- var i, a = [], nl, x;
-
- for (x=0, na = na.split(','); x<na.length; x++)
- for (i=0, nl = n.getElementsByTagName(na[x]); i<nl.length; i++)
- (!f || f(nl[i])) && a.push(nl[i]);
-
- return a;
- },
-
- selectNodes : function(n, f, a) {
- var i;
-
- if (!a)
- a = [];
-
- if (f(n))
- a[a.length] = n;
-
- if (n.hasChildNodes()) {
- for (i=0; i<n.childNodes.length; i++)
- tinyMCE.selectNodes(n.childNodes[i], f, a);
- }
-
- return a;
- },
-
- addCSSClass : function(e, c, b) {
- var o = this.removeCSSClass(e, c);
- return e.className = b ? c + (o !== '' ? (' ' + o) : '') : (o !== '' ? (o + ' ') : '') + c;
- },
-
- removeCSSClass : function(e, c) {
- c = e.className.replace(new RegExp("(^|\\s+)" + c + "(\\s+|$)"), ' ');
- return e.className = c != ' ' ? c : '';
- },
-
- hasCSSClass : function(n, c) {
- return new RegExp('\\b' + c + '\\b', 'g').test(n.className);
- },
-
- renameElement : function(e, n, d) {
- var ne, i, ar;
-
- d = typeof(d) == "undefined" ? tinyMCE.selectedInstance.getDoc() : d;
-
- if (e) {
- ne = d.createElement(n);
-
- ar = e.attributes;
- for (i=ar.length-1; i>-1; i--) {
- if (ar[i].specified && ar[i].nodeValue)
- ne.setAttribute(ar[i].nodeName.toLowerCase(), ar[i].nodeValue);
- }
-
- ar = e.childNodes;
- for (i=0; i<ar.length; i++)
- ne.appendChild(ar[i].cloneNode(true));
-
- e.parentNode.replaceChild(ne, e);
- }
- },
-
- getViewPort : function(w) {
- var d = w.document, m = d.compatMode == 'CSS1Compat', b = d.body, de = d.documentElement;
-
- return {
- left : w.pageXOffset || (m ? de.scrollLeft : b.scrollLeft),
- top : w.pageYOffset || (m ? de.scrollTop : b.scrollTop),
- width : w.innerWidth || (m ? de.clientWidth : b.clientWidth),
- height : w.innerHeight || (m ? de.clientHeight : b.clientHeight)
- };
- },
-
- getStyle : function(n, na, d) {
- if (!n)
- return false;
-
- // Gecko
- if (tinyMCE.isGecko && n.ownerDocument.defaultView) {
- try {
- return n.ownerDocument.defaultView.getComputedStyle(n, null).getPropertyValue(na);
- } catch (n) {
- // Old safari might fail
- return null;
- }
- }
-
- // Camelcase it, if needed
- na = na.replace(/-(\D)/g, function(a, b){
- return b.toUpperCase();
- });
-
- // IE & Opera
- if (n.currentStyle)
- return n.currentStyle[na];
-
- return false;
- }
-
- });
-
-/* file:jscripts/tiny_mce/classes/TinyMCE_URL.class.js */
-
-tinyMCE.add(TinyMCE_Engine, {
- parseURL : function(url_str) {
- var urlParts = [], i, pos, lastPos, chr;
-
- if (url_str) {
- // Parse protocol part
- pos = url_str.indexOf('://');
- if (pos != -1) {
- urlParts.protocol = url_str.substring(0, pos);
- lastPos = pos + 3;
- }
-
- // Find port or path start
- for (i=lastPos; i<url_str.length; i++) {
- chr = url_str.charAt(i);
-
- if (chr == ':')
- break;
-
- if (chr == '/')
- break;
- }
- pos = i;
-
- // Get host
- urlParts.host = url_str.substring(lastPos, pos);
-
- // Get port
- urlParts.port = "";
- lastPos = pos;
- if (url_str.charAt(pos) == ':') {
- pos = url_str.indexOf('/', lastPos);
- urlParts.port = url_str.substring(lastPos+1, pos);
- }
-
- // Get path
- lastPos = pos;
- pos = url_str.indexOf('?', lastPos);
-
- if (pos == -1)
- pos = url_str.indexOf('#', lastPos);
-
- if (pos == -1)
- pos = url_str.length;
-
- urlParts.path = url_str.substring(lastPos, pos);
-
- // Get query
- lastPos = pos;
- if (url_str.charAt(pos) == '?') {
- pos = url_str.indexOf('#');
- pos = (pos == -1) ? url_str.length : pos;
- urlParts.query = url_str.substring(lastPos+1, pos);
- }
-
- // Get anchor
- lastPos = pos;
- if (url_str.charAt(pos) == '#') {
- pos = url_str.length;
- urlParts.anchor = url_str.substring(lastPos+1, pos);
- }
- }
-
- return urlParts;
- },
-
- serializeURL : function(up) {
- var o = "";
-
- if (up.protocol)
- o += up.protocol + "://";
-
- if (up.host)
- o += up.host;
-
- if (up.port)
- o += ":" + up.port;
-
- if (up.path)
- o += up.path;
-
- if (up.query)
- o += "?" + up.query;
-
- if (up.anchor)
- o += "#" + up.anchor;
-
- return o;
- },
-
- convertAbsoluteURLToRelativeURL : function(base_url, url_to_relative) {
- var baseURL = this.parseURL(base_url), targetURL = this.parseURL(url_to_relative);
- var i, strTok1, strTok2, breakPoint = 0, outPath = "", forceSlash = false;
- var fileName, pos;
-
- if (targetURL.path == '')
- targetURL.path = "/";
- else
- forceSlash = true;
-
- // Crop away last path part
- base_url = baseURL.path.substring(0, baseURL.path.lastIndexOf('/'));
- strTok1 = base_url.split('/');
- strTok2 = targetURL.path.split('/');
-
- if (strTok1.length >= strTok2.length) {
- for (i=0; i<strTok1.length; i++) {
- if (i >= strTok2.length || strTok1[i] != strTok2[i]) {
- breakPoint = i + 1;
- break;
- }
- }
- }
-
- if (strTok1.length < strTok2.length) {
- for (i=0; i<strTok2.length; i++) {
- if (i >= strTok1.length || strTok1[i] != strTok2[i]) {
- breakPoint = i + 1;
- break;
- }
- }
- }
-
- if (breakPoint == 1)
- return targetURL.path;
-
- for (i=0; i<(strTok1.length-(breakPoint-1)); i++)
- outPath += "../";
-
- for (i=breakPoint-1; i<strTok2.length; i++) {
- if (i != (breakPoint-1))
- outPath += "/" + strTok2[i];
- else
- outPath += strTok2[i];
- }
-
- targetURL.protocol = null;
- targetURL.host = null;
- targetURL.port = null;
- targetURL.path = outPath == '' && forceSlash ? "/" : outPath;
-
- // Remove document prefix from local anchors
- fileName = baseURL.path;
-
- if ((pos = fileName.lastIndexOf('/')) != -1)
- fileName = fileName.substring(pos + 1);
-
- // Is local anchor
- if (fileName == targetURL.path && targetURL.anchor !== '')
- targetURL.path = "";
-
- // If empty and not local anchor force filename or slash
- if (targetURL.path == '' && !targetURL.anchor)
- targetURL.path = fileName !== '' ? fileName : "/";
-
- return this.serializeURL(targetURL);
- },
-
- convertRelativeToAbsoluteURL : function(base_url, relative_url) {
- var baseURL = this.parseURL(base_url), baseURLParts, relURLParts, newRelURLParts, numBack, relURL = this.parseURL(relative_url), i;
- var len, absPath, start, end, newBaseURLParts;
-
- if (relative_url == '' || relative_url.indexOf('://') != -1 || /^(mailto:|javascript:|#|\/)/.test(relative_url))
- return relative_url;
-
- // Split parts
- baseURLParts = baseURL.path.split('/');
- relURLParts = relURL.path.split('/');
-
- // Remove empty chunks
- newBaseURLParts = [];
- for (i=baseURLParts.length-1; i>=0; i--) {
- if (baseURLParts[i].length == 0)
- continue;
-
- newBaseURLParts[newBaseURLParts.length] = baseURLParts[i];
- }
- baseURLParts = newBaseURLParts.reverse();
-
- // Merge relURLParts chunks
- newRelURLParts = [];
- numBack = 0;
- for (i=relURLParts.length-1; i>=0; i--) {
- if (relURLParts[i].length == 0 || relURLParts[i] == ".")
- continue;
-
- if (relURLParts[i] == '..') {
- numBack++;
- continue;
- }
-
- if (numBack > 0) {
- numBack--;
- continue;
- }
-
- newRelURLParts[newRelURLParts.length] = relURLParts[i];
- }
-
- relURLParts = newRelURLParts.reverse();
-
- // Remove end from absolute path
- len = baseURLParts.length-numBack;
- absPath = (len <= 0 ? "" : "/") + baseURLParts.slice(0, len).join('/') + "/" + relURLParts.join('/');
- start = "";
- end = "";
-
- // Build output URL
- relURL.protocol = baseURL.protocol;
- relURL.host = baseURL.host;
- relURL.port = baseURL.port;
-
- // Re-add trailing slash if it's removed
- if (relURL.path.charAt(relURL.path.length-1) == "/")
- absPath += "/";
-
- relURL.path = absPath;
-
- return this.serializeURL(relURL);
- },
-
- convertURL : function(url, node, on_save) {
- var dl = document.location, start, portPart, urlParts, baseUrlParts, tmpUrlParts, curl;
- var prot = dl.protocol, host = dl.hostname, port = dl.port;
-
- // Pass through file protocol
- if (prot == "file:")
- return url;
-
- // Something is wrong, remove weirdness
- url = tinyMCE.regexpReplace(url, '(http|https):///', '/');
-
- // Mailto link or anchor (Pass through)
- if (url.indexOf('mailto:') != -1 || url.indexOf('javascript:') != -1 || /^[ \t\r\n\+]*[#\?]/.test(url))
- return url;
-
- // Fix relative/Mozilla
- if (!tinyMCE.isIE && !on_save && url.indexOf("://") == -1 && url.charAt(0) != '/')
- return tinyMCE.settings.base_href + url;
-
- // Handle relative URLs
- if (on_save && tinyMCE.getParam('relative_urls')) {
- curl = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings.base_href, url);
- if (curl.charAt(0) == '/')
- curl = tinyMCE.settings.document_base_prefix + curl;
-
- urlParts = tinyMCE.parseURL(curl);
- tmpUrlParts = tinyMCE.parseURL(tinyMCE.settings.document_base_url);
-
- // Force relative
- if (urlParts.host == tmpUrlParts.host && (urlParts.port == tmpUrlParts.port))
- return tinyMCE.convertAbsoluteURLToRelativeURL(tinyMCE.settings.document_base_url, curl);
- }
-
- // Handle absolute URLs
- if (!tinyMCE.getParam('relative_urls')) {
- urlParts = tinyMCE.parseURL(url);
- baseUrlParts = tinyMCE.parseURL(tinyMCE.settings.base_href);
-
- // Force absolute URLs from relative URLs
- url = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings.base_href, url);
-
- // If anchor and path is the same page
- if (urlParts.anchor && urlParts.path == baseUrlParts.path)
- return "#" + urlParts.anchor;
- }
-
- // Remove current domain
- if (tinyMCE.getParam('remove_script_host')) {
- start = "";
- portPart = "";
-
- if (port !== '')
- portPart = ":" + port;
-
- start = prot + "//" + host + portPart + "/";
-
- if (url.indexOf(start) == 0)
- url = url.substring(start.length-1);
- }
-
- return url;
- },
-
- convertAllRelativeURLs : function(body) {
- var i, elms, src, href, mhref, msrc;
-
- // Convert all image URL:s to absolute URL
- elms = body.getElementsByTagName("img");
- for (i=0; i<elms.length; i++) {
- src = tinyMCE.getAttrib(elms[i], 'src');
-
- msrc = tinyMCE.getAttrib(elms[i], 'mce_src');
- if (msrc !== '')
- src = msrc;
-
- if (src !== '') {
- src = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings.base_href, src);
- elms[i].setAttribute("src", src);
- }
- }
-
- // Convert all link URL:s to absolute URL
- elms = body.getElementsByTagName("a");
- for (i=0; i<elms.length; i++) {
- href = tinyMCE.getAttrib(elms[i], 'href');
-
- mhref = tinyMCE.getAttrib(elms[i], 'mce_href');
- if (mhref !== '')
- href = mhref;
-
- if (href && href !== '') {
- href = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings.base_href, href);
- elms[i].setAttribute("href", href);
- }
- }
- }
-
- });
-
-/* file:jscripts/tiny_mce/classes/TinyMCE_Array.class.js */
-
-tinyMCE.add(TinyMCE_Engine, {
- clearArray : function(a) {
- var n;
-
- for (n in a)
- a[n] = null;
-
- return a;
- },
-
- explode : function(d, s) {
- var ar = s.split(d), oar = [], i;
-
- for (i = 0; i<ar.length; i++) {
- if (ar[i] !== '')
- oar[oar.length] = ar[i];
- }
-
- return oar;
- }
-});
-
-/* file:jscripts/tiny_mce/classes/TinyMCE_Event.class.js */
-
-tinyMCE.add(TinyMCE_Engine, {
- _setEventsEnabled : function(node, state) {
- var evs, x, y, elms, i, event;
- var events = ['onfocus','onblur','onclick','ondblclick',
- 'onmousedown','onmouseup','onmouseover','onmousemove',
- 'onmouseout','onkeypress','onkeydown','onkeydown','onkeyup'];
-
- evs = tinyMCE.settings.event_elements.split(',');
- for (y=0; y<evs.length; y++){
- elms = node.getElementsByTagName(evs[y]);
- for (i=0; i<elms.length; i++) {
- event = "";
-
- for (x=0; x<events.length; x++) {
- if ((event = tinyMCE.getAttrib(elms[i], events[x])) !== '') {
- event = tinyMCE.cleanupEventStr("" + event);
-
- if (!state)
- event = "return true;" + event;
- else
- event = event.replace(/^return true;/gi, '');
-
- elms[i].removeAttribute(events[x]);
- elms[i].setAttribute(events[x], event);
- }
- }
- }
- }
- },
-
- _eventPatch : function(editor_id) {
- var n, inst, win, e;
-
- // Remove odd, error
- if (typeof(tinyMCE) == "undefined")
- return true;
-
- try {
- // Try selected instance first
- if (tinyMCE.selectedInstance) {
- win = tinyMCE.selectedInstance.getWin();
-
- if (win && win.event) {
- e = win.event;
-
- if (!e.target)
- e.target = e.srcElement;
-
- TinyMCE_Engine.prototype.handleEvent(e);
- return;
- }
- }
-
- // Search for it
- for (n in tinyMCE.instances) {
- inst = tinyMCE.instances[n];
-
- if (!tinyMCE.isInstance(inst))
- continue;
-
- inst.select();
- win = inst.getWin();
-
- if (win && win.event) {
- e = win.event;
-
- if (!e.target)
- e.target = e.srcElement;
-
- TinyMCE_Engine.prototype.handleEvent(e);
- return;
- }
- }
- } catch (ex) {
- // Ignore error if iframe is pointing to external URL
- }
- },
-
- findEvent : function(e) {
- var n, inst;
-
- if (e)
- return e;
-
- for (n in tinyMCE.instances) {
- inst = tinyMCE.instances[n];
-
- if (tinyMCE.isInstance(inst) && inst.getWin().event)
- return inst.getWin().event;
- }
-
- return null;
- },
-
- unloadHandler : function() {
- tinyMCE.triggerSave(true, true);
- },
-
- addEventHandlers : function(inst) {
- this.setEventHandlers(inst, 1);
- },
-
- setEventHandlers : function(inst, s) {
- var doc = inst.getDoc(), ie, ot, i, f = s ? tinyMCE.addEvent : tinyMCE.removeEvent;
-
- ie = ['keypress', 'keyup', 'keydown', 'click', 'mouseup', 'mousedown', 'controlselect', 'dblclick'];
- ot = ['keypress', 'keyup', 'keydown', 'click', 'mouseup', 'mousedown', 'focus', 'blur', 'dragdrop'];
-
- inst.switchSettings();
-
- if (tinyMCE.isIE) {
- for (i=0; i<ie.length; i++)
- f(doc, ie[i], TinyMCE_Engine.prototype._eventPatch);
- } else {
- for (i=0; i<ot.length; i++)
- f(doc, ot[i], tinyMCE.handleEvent);
-
- // Force designmode
- try {
- doc.designMode = "On";
- } catch (e) {
- // Ignore
- }
- }
- },
-
- onMouseMove : function() {
- var inst, lh;
-
- // Fix for IE7 bug where it's not restoring hover on anchors correctly
- if (tinyMCE.lastHover) {
- lh = tinyMCE.lastHover;
-
- // Call out on menus and refresh class on normal buttons
- if (lh.className.indexOf('mceMenu') != -1)
- tinyMCE._menuButtonEvent('out', lh);
- else
- lh.className = lh.className;
-
- tinyMCE.lastHover = null;
- }
-
- if (!tinyMCE.hasMouseMoved) {
- inst = tinyMCE.selectedInstance;
-
- // Workaround for bug #1437457 (Odd MSIE bug)
- if (inst.isFocused) {
- inst.undoBookmark = inst.selection.getBookmark();
- tinyMCE.hasMouseMoved = true;
- }
- }
-
- // tinyMCE.cancelEvent(inst.getWin().event);
- // return false;
- },
-
- cancelEvent : function(e) {
- if (!e)
- return false;
-
- if (tinyMCE.isIE) {
- e.returnValue = false;
- e.cancelBubble = true;
- } else {
- e.preventDefault();
- e.stopPropagation && e.stopPropagation();
- }
-
- return false;
- },
-
- addEvent : function(o, n, h) {
- // Add cleanup for all non unload events
- if (n != 'unload') {
- function clean() {
- var ex;
-
- try {
- tinyMCE.removeEvent(o, n, h);
- tinyMCE.removeEvent(window, 'unload', clean);
- o = n = h = null;
- } catch (ex) {
- // IE may produce access denied exception on unload
- }
- }
-
- // Add memory cleaner
- tinyMCE.addEvent(window, 'unload', clean);
- }
-
- if (o.attachEvent)
- o.attachEvent("on" + n, h);
- else
- o.addEventListener(n, h, false);
- },
-
- removeEvent : function(o, n, h) {
- if (o.detachEvent)
- o.detachEvent("on" + n, h);
- else
- o.removeEventListener(n, h, false);
- },
-
- addSelectAccessibility : function(e, s, w) {
- // Add event handlers
- if (!s._isAccessible) {
- s.onkeydown = tinyMCE.accessibleEventHandler;
- s.onblur = tinyMCE.accessibleEventHandler;
- s._isAccessible = true;
- s._win = w;
- }
-
- return false;
- },
-
- accessibleEventHandler : function(e) {
- var elm, win = this._win;
-
- e = tinyMCE.isIE ? win.event : e;
- elm = tinyMCE.isIE ? e.srcElement : e.target;
-
- // Unpiggyback onchange on blur
- if (e.type == "blur") {
- if (elm.oldonchange) {
- elm.onchange = elm.oldonchange;
- elm.oldonchange = null;
- }
-
- return true;
- }
-
- // Piggyback onchange
- if (elm.nodeName == "SELECT" && !elm.oldonchange) {
- elm.oldonchange = elm.onchange;
- elm.onchange = null;
- }
-
- // Execute onchange and remove piggyback
- if (e.keyCode == 13 || e.keyCode == 32) {
- elm.onchange = elm.oldonchange;
- elm.onchange();
- elm.oldonchange = null;
-
- tinyMCE.cancelEvent(e);
- return false;
- }
-
- return true;
- },
-
- _resetIframeHeight : function() {
- var ife;
-
- if (tinyMCE.isRealIE) {
- ife = tinyMCE.selectedInstance.iframeElement;
-
- /* if (ife._oldWidth) {
- ife.style.width = ife._oldWidth;
- ife.width = ife._oldWidth;
- }*/
-
- if (ife._oldHeight) {
- ife.style.height = ife._oldHeight;
- ife.height = ife._oldHeight;
- }
- }
- }
-
- });
-
-/* file:jscripts/tiny_mce/classes/TinyMCE_Selection.class.js */
-
-function TinyMCE_Selection(inst) {
- this.instance = inst;
-};
-
-TinyMCE_Selection.prototype = {
- getSelectedHTML : function() {
- var inst = this.instance, e, r = this.getRng(), h;
-
- if (!r)
- return null;
-
- e = document.createElement("body");
-
- if (r.cloneContents)
- e.appendChild(r.cloneContents());
- else if (typeof(r.item) != 'undefined' || typeof(r.htmlText) != 'undefined')
- e.innerHTML = r.item ? r.item(0).outerHTML : r.htmlText;
- else
- e.innerHTML = r.toString(); // Failed, use text for now
-
- h = tinyMCE._cleanupHTML(inst, inst.contentDocument, inst.settings, e, e, false, true, false);
-
- // When editing always use fonts internaly
- //if (tinyMCE.getParam("convert_fonts_to_spans"))
- // tinyMCE.convertSpansToFonts(inst.getDoc());
-
- return h;
- },
-
- getSelectedText : function() {
- var inst = this.instance, d, r, s, t;
-
- if (tinyMCE.isIE) {
- d = inst.getDoc();
-
- if (d.selection.type == "Text") {
- r = d.selection.createRange();
- t = r.text;
- } else
- t = '';
- } else {
- s = this.getSel();
-
- if (s && s.toString)
- t = s.toString();
- else
- t = '';
- }
-
- return t;
- },
-
- getBookmark : function(simple) {
- var inst = this.instance, rng = this.getRng(), doc = inst.getDoc(), b = inst.getBody();
- var trng, sx, sy, xx = -999999999, vp = inst.getViewPort();
- var sp, le, s, e, nl, i, si, ei, w;
-
- sx = vp.left;
- sy = vp.top;
-
- if (simple)
- return {rng : rng, scrollX : sx, scrollY : sy};
-
- if (tinyMCE.isRealIE) {
- if (rng.item) {
- e = rng.item(0);
-
- nl = b.getElementsByTagName(e.nodeName);
- for (i=0; i<nl.length; i++) {
- if (e == nl[i]) {
- sp = i;
- break;
- }
- }
-
- return {
- tag : e.nodeName,
- index : sp,
- scrollX : sx,
- scrollY : sy
- };
- } else {
- trng = doc.body.createTextRange();
- trng.moveToElementText(inst.getBody());
- trng.collapse(true);
- bp = Math.abs(trng.move('character', xx));
-
- trng = rng.duplicate();
- trng.collapse(true);
- sp = Math.abs(trng.move('character', xx));
-
- trng = rng.duplicate();
- trng.collapse(false);
- le = Math.abs(trng.move('character', xx)) - sp;
-
- return {
- start : sp - bp,
- length : le,
- scrollX : sx,
- scrollY : sy
- };
- }
- } else {
- s = this.getSel();
- e = this.getFocusElement();
-
- if (!s)
- return null;
-
- if (e && e.nodeName == 'IMG') {
- /*nl = b.getElementsByTagName('IMG');
- for (i=0; i<nl.length; i++) {
- if (e == nl[i]) {
- sp = i;
- break;
- }
- }*/
-
- return {
- start : -1,
- end : -1,
- index : sp,
- scrollX : sx,
- scrollY : sy
- };
- }
-
- // Caret or selection
- if (s.anchorNode == s.focusNode && s.anchorOffset == s.focusOffset) {
- e = this._getPosText(b, s.anchorNode, s.focusNode);
-
- if (!e)
- return {scrollX : sx, scrollY : sy};
-
- return {
- start : e.start + s.anchorOffset,
- end : e.end + s.focusOffset,
- scrollX : sx,
- scrollY : sy
- };
- } else {
- e = this._getPosText(b, rng.startContainer, rng.endContainer);
-
- if (!e)
- return {scrollX : sx, scrollY : sy};
-
- return {
- start : e.start + rng.startOffset,
- end : e.end + rng.endOffset,
- scrollX : sx,
- scrollY : sy
- };
- }
- }
-
- return null;
- },
-
- moveToBookmark : function(bookmark) {
- var inst = this.instance, rng, nl, i, ex, b = inst.getBody(), sd;
- var doc = inst.getDoc(), win = inst.getWin(), sel = this.getSel();
-
- if (!bookmark)
- return false;
-
- if (tinyMCE.isSafari && bookmark.rng) {
- sel.setBaseAndExtent(bookmark.rng.startContainer, bookmark.rng.startOffset, bookmark.rng.endContainer, bookmark.rng.endOffset);
- return true;
- }
-
- if (tinyMCE.isRealIE) {
- if (bookmark.rng) {
- try {
- bookmark.rng.select();
- } catch (ex) {
- // Ignore
- }
-
- return true;
- }
-
- win.focus();
-
- if (bookmark.tag) {
- rng = b.createControlRange();
-
- nl = b.getElementsByTagName(bookmark.tag);
-
- if (nl.length > bookmark.index) {
- try {
- rng.addElement(nl[bookmark.index]);
- } catch (ex) {
- // Might be thrown if the node no longer exists
- }
- }
- } else {
- // Try/catch needed since this operation breaks when TinyMCE is placed in hidden divs/tabs
- try {
- // Incorrect bookmark
- if (bookmark.start < 0)
- return true;
-
- rng = inst.getSel().createRange();
- rng.moveToElementText(inst.getBody());
- rng.collapse(true);
- rng.moveStart('character', bookmark.start);
- rng.moveEnd('character', bookmark.length);
- } catch (ex) {
- return true;
- }
- }
-
- rng.select();
-
- win.scrollTo(bookmark.scrollX, bookmark.scrollY);
- return true;
- }
-
- if (tinyMCE.isGecko || tinyMCE.isOpera) {
- if (!sel)
- return false;
-
- if (bookmark.rng) {
- sel.removeAllRanges();
- sel.addRange(bookmark.rng);
- }
-
- if (bookmark.start != -1 && bookmark.end != -1) {
- try {
- sd = this._getTextPos(b, bookmark.start, bookmark.end);
- rng = doc.createRange();
- rng.setStart(sd.startNode, sd.startOffset);
- rng.setEnd(sd.endNode, sd.endOffset);
- sel.removeAllRanges();
- sel.addRange(rng);
-
- if (!tinyMCE.isOpera)
- win.focus();
- } catch (ex) {
- // Ignore
- }
- }
-
- /*
- if (typeof(bookmark.index) != 'undefined') {
- tinyMCE.selectElements(b, 'IMG', function (n) {
- if (bookmark.index-- == 0) {
- // Select image in Gecko here
- }
-
- return false;
- });
- }
- */
-
- win.scrollTo(bookmark.scrollX, bookmark.scrollY);
- return true;
- }
-
- return false;
- },
-
- _getPosText : function(r, sn, en) {
- var w = document.createTreeWalker(r, NodeFilter.SHOW_TEXT, null, false), n, p = 0, d = {};
-
- while ((n = w.nextNode()) != null) {
- if (n == sn)
- d.start = p;
-
- if (n == en) {
- d.end = p;
- return d;
- }
-
- p += n.nodeValue ? n.nodeValue.length : 0;
- }
-
- return null;
- },
-
- _getTextPos : function(r, sp, ep) {
- var w = document.createTreeWalker(r, NodeFilter.SHOW_TEXT, null, false), n, p = 0, d = {};
-
- while ((n = w.nextNode()) != null) {
- p += n.nodeValue ? n.nodeValue.length : 0;
-
- if (p >= sp && !d.startNode) {
- d.startNode = n;
- d.startOffset = sp - (p - n.nodeValue.length);
- }
-
- if (p >= ep) {
- d.endNode = n;
- d.endOffset = ep - (p - n.nodeValue.length);
-
- return d;
- }
- }
-
- return null;
- },
-
- selectNode : function(node, collapse, select_text_node, to_start) {
- var inst = this.instance, sel, rng, nodes;
-
- if (!node)
- return;
-
- if (typeof(collapse) == "undefined")
- collapse = true;
-
- if (typeof(select_text_node) == "undefined")
- select_text_node = false;
-
- if (typeof(to_start) == "undefined")
- to_start = true;
-
- if (inst.settings.auto_resize)
- inst.resizeToContent();
-
- if (tinyMCE.isRealIE) {
- rng = inst.getDoc().body.createTextRange();
-
- try {
- rng.moveToElementText(node);
-
- if (collapse)
- rng.collapse(to_start);
-
- rng.select();
- } catch (e) {
- // Throws illigal agrument in MSIE some times
- }
- } else {
- sel = this.getSel();
-
- if (!sel)
- return;
-
- if (tinyMCE.isSafari) {
- sel.setBaseAndExtent(node, 0, node, node.innerText.length);
-
- if (collapse) {
- if (to_start)
- sel.collapseToStart();
- else
- sel.collapseToEnd();
- }
-
- this.scrollToNode(node);
-
- return;
- }
-
- rng = inst.getDoc().createRange();
-
- if (select_text_node) {
- // Find first textnode in tree
- nodes = tinyMCE.getNodeTree(node, [], 3);
- if (nodes.length > 0)
- rng.selectNodeContents(nodes[0]);
- else
- rng.selectNodeContents(node);
- } else
- rng.selectNode(node);
-
- if (collapse) {
- // Special treatment of textnode collapse
- if (!to_start && node.nodeType == 3) {
- rng.setStart(node, node.nodeValue.length);
- rng.setEnd(node, node.nodeValue.length);
- } else
- rng.collapse(to_start);
- }
-
- sel.removeAllRanges();
- sel.addRange(rng);
- }
-
- this.scrollToNode(node);
-
- // Set selected element
- tinyMCE.selectedElement = null;
- if (node.nodeType == 1)
- tinyMCE.selectedElement = node;
- },
-
- scrollToNode : function(node) {
- var inst = this.instance, w = inst.getWin(), vp = inst.getViewPort(), pos = tinyMCE.getAbsPosition(node), cvp, p, cwin;
-
- // Only scroll if out of visible area
- if (pos.absLeft < vp.left || pos.absLeft > vp.left + vp.width || pos.absTop < vp.top || pos.absTop > vp.top + (vp.height-25))
- w.scrollTo(pos.absLeft, pos.absTop - vp.height + 25);
-
- // Scroll container window
- if (inst.settings.auto_resize) {
- cwin = inst.getContainerWin();
- cvp = tinyMCE.getViewPort(cwin);
- p = this.getAbsPosition(node);
-
- if (p.absLeft < cvp.left || p.absLeft > cvp.left + cvp.width || p.absTop < cvp.top || p.absTop > cvp.top + cvp.height)
- cwin.scrollTo(p.absLeft, p.absTop - cvp.height + 25);
- }
- },
-
- getAbsPosition : function(n) {
- var pos = tinyMCE.getAbsPosition(n), ipos = tinyMCE.getAbsPosition(this.instance.iframeElement);
-
- return {
- absLeft : ipos.absLeft + pos.absLeft,
- absTop : ipos.absTop + pos.absTop
- };
- },
-
- getSel : function() {
- var inst = this.instance;
-
- if (tinyMCE.isRealIE)
- return inst.getDoc().selection;
-
- return inst.contentWindow.getSelection();
- },
-
- getRng : function() {
- var s = this.getSel();
-
- if (s == null)
- return null;
-
- if (tinyMCE.isRealIE)
- return s.createRange();
-
- if (tinyMCE.isSafari && !s.getRangeAt)
- return '' + window.getSelection();
-
- if (s.rangeCount > 0)
- return s.getRangeAt(0);
-
- return null;
- },
-
- isCollapsed : function() {
- var r = this.getRng();
-
- if (r.item)
- return false;
-
- return r.boundingWidth == 0 || this.getSel().isCollapsed;
- },
-
- collapse : function(b) {
- var r = this.getRng(), s = this.getSel();
-
- if (r.select) {
- r.collapse(b);
- r.select();
- } else {
- if (b)
- s.collapseToStart();
- else
- s.collapseToEnd();
- }
- },
-
- getFocusElement : function() {
- var inst = this.instance, doc, rng, sel, elm;
-
- if (tinyMCE.isRealIE) {
- doc = inst.getDoc();
- rng = doc.selection.createRange();
-
- // if (rng.collapse)
- // rng.collapse(true);
-
- elm = rng.item ? rng.item(0) : rng.parentElement();
- } else {
- if (!tinyMCE.isSafari && inst.isHidden())
- return inst.getBody();
-
- sel = this.getSel();
- rng = this.getRng();
-
- if (!sel || !rng)
- return null;
-
- elm = rng.commonAncestorContainer;
- //elm = (sel && sel.anchorNode) ? sel.anchorNode : null;
-
- // Handle selection a image or other control like element such as anchors
- if (!rng.collapsed) {
- // Is selection small
- if (rng.startContainer == rng.endContainer) {
- if (rng.startOffset - rng.endOffset < 2) {
- if (rng.startContainer.hasChildNodes())
- elm = rng.startContainer.childNodes[rng.startOffset];
- }
- }
- }
-
- // Get the element parent of the node
- elm = tinyMCE.getParentElement(elm);
-
- //if (tinyMCE.selectedElement != null && tinyMCE.selectedElement.nodeName.toLowerCase() == "img")
- // elm = tinyMCE.selectedElement;
- }
-
- return elm;
- }
-
- };
-
-/* file:jscripts/tiny_mce/classes/TinyMCE_UndoRedo.class.js */
-
-function TinyMCE_UndoRedo(inst) {
- this.instance = inst;
- this.undoLevels = [];
- this.undoIndex = 0;
- this.typingUndoIndex = -1;
- this.undoRedo = true;
-};
-
-TinyMCE_UndoRedo.prototype = {
- add : function(l) {
- var b, customUndoLevels, newHTML, inst = this.instance, i, ul, ur;
-
- if (l) {
- this.undoLevels[this.undoLevels.length] = l;
- return true;
- }
-
- if (this.typingUndoIndex != -1) {
- this.undoIndex = this.typingUndoIndex;
-
- if (tinyMCE.typingUndoIndex != -1)
- tinyMCE.undoIndex = tinyMCE.typingUndoIndex;
- }
-
- newHTML = tinyMCE.trim(inst.getBody().innerHTML);
- if (this.undoLevels[this.undoIndex] && newHTML != this.undoLevels[this.undoIndex].content) {
- //tinyMCE.debug(newHTML, this.undoLevels[this.undoIndex].content);
-
- // Is dirty again
- inst.isNotDirty = false;
-
- tinyMCE.dispatchCallback(inst, 'onchange_callback', 'onChange', inst);
-
- // Time to compress
- customUndoLevels = tinyMCE.settings.custom_undo_redo_levels;
- if (customUndoLevels != -1 && this.undoLevels.length > customUndoLevels) {
- for (i=0; i<this.undoLevels.length-1; i++)
- this.undoLevels[i] = this.undoLevels[i+1];
-
- this.undoLevels.length--;
- this.undoIndex--;
-
- // Todo: Implement global undo/redo logic here
- }
-
- b = inst.undoBookmark;
-
- if (!b)
- b = inst.selection.getBookmark();
-
- this.undoIndex++;
- this.undoLevels[this.undoIndex] = {
- content : newHTML,
- bookmark : b
- };
-
- // Remove all above from global undo/redo
- ul = tinyMCE.undoLevels;
- for (i=tinyMCE.undoIndex + 1; i<ul.length; i++) {
- ur = ul[i].undoRedo;
-
- if (ur.undoIndex == ur.undoLevels.length -1)
- ur.undoIndex--;
-
- ur.undoLevels.length--;
- }
-
- // Add global undo level
- tinyMCE.undoLevels[tinyMCE.undoIndex++] = inst;
- tinyMCE.undoLevels.length = tinyMCE.undoIndex;
-
- this.undoLevels.length = this.undoIndex + 1;
-
- return true;
- }
-
- return false;
- },
-
- undo : function() {
- var inst = this.instance;
-
- // Do undo
- if (this.undoIndex > 0) {
- this.undoIndex--;
-
- tinyMCE.setInnerHTML(inst.getBody(), this.undoLevels[this.undoIndex].content);
- inst.repaint();
-
- if (inst.settings.custom_undo_redo_restore_selection)
- inst.selection.moveToBookmark(this.undoLevels[this.undoIndex].bookmark);
- }
- },
-
- redo : function() {
- var inst = this.instance;
-
- tinyMCE.execCommand("mceEndTyping");
-
- if (this.undoIndex < (this.undoLevels.length-1)) {
- this.undoIndex++;
-
- tinyMCE.setInnerHTML(inst.getBody(), this.undoLevels[this.undoIndex].content);
- inst.repaint();
-
- if (inst.settings.custom_undo_redo_restore_selection)
- inst.selection.moveToBookmark(this.undoLevels[this.undoIndex].bookmark);
- }
-
- tinyMCE.triggerNodeChange();
- }
-
- };
-
-/* file:jscripts/tiny_mce/classes/TinyMCE_ForceParagraphs.class.js */
-
-var TinyMCE_ForceParagraphs = {
- _insertPara : function(inst, e) {
- var doc = inst.getDoc(), sel = inst.getSel(), body = inst.getBody(), win = inst.contentWindow, rng = sel.getRangeAt(0);
- var rootElm = doc.documentElement, blockName = "P", startNode, endNode, startBlock, endBlock;
- var rngBefore, rngAfter, direct, startNode, startOffset, endNode, endOffset, b = tinyMCE.isOpera ? inst.selection.getBookmark() : null;
- var paraBefore, paraAfter, startChop, endChop, contents, i;
-
- function isEmpty(para) {
- var nodes;
-
- function isEmptyHTML(html) {
- return html.replace(new RegExp('[ \t\r\n]+', 'g'), '').toLowerCase() == '';
- }
-
- // Check for images
- if (para.getElementsByTagName("img").length > 0)
- return false;
-
- // Check for tables
- if (para.getElementsByTagName("table").length > 0)
- return false;
-
- // Check for HRs
- if (para.getElementsByTagName("hr").length > 0)
- return false;
-
- // Check all textnodes
- nodes = tinyMCE.getNodeTree(para, [], 3);
- for (i=0; i<nodes.length; i++) {
- if (!isEmptyHTML(nodes[i].nodeValue))
- return false;
- }
-
- // No images, no tables, no hrs, no text content then it's empty
- return true;
- }
-
- // tinyMCE.debug(body.innerHTML);
-
- // debug(e.target, sel.anchorNode.nodeName, sel.focusNode.nodeName, rng.startContainer, rng.endContainer, rng.commonAncestorContainer, sel.anchorOffset, sel.focusOffset, rng.toString());
-
- // Setup before range
- rngBefore = doc.createRange();
- rngBefore.setStart(sel.anchorNode, sel.anchorOffset);
- rngBefore.collapse(true);
-
- // Setup after range
- rngAfter = doc.createRange();
- rngAfter.setStart(sel.focusNode, sel.focusOffset);
- rngAfter.collapse(true);
-
- // Setup start/end points
- direct = rngBefore.compareBoundaryPoints(rngBefore.START_TO_END, rngAfter) < 0;
- startNode = direct ? sel.anchorNode : sel.focusNode;
- startOffset = direct ? sel.anchorOffset : sel.focusOffset;
- endNode = direct ? sel.focusNode : sel.anchorNode;
- endOffset = direct ? sel.focusOffset : sel.anchorOffset;
-
- startNode = startNode.nodeName == "BODY" ? startNode.firstChild : startNode;
- endNode = endNode.nodeName == "BODY" ? endNode.firstChild : endNode;
-
- // Get block elements
- startBlock = inst.getParentBlockElement(startNode);
- endBlock = inst.getParentBlockElement(endNode);
-
- // If absolute force paragraph generation within
- if (startBlock && (startBlock.nodeName == 'CAPTION' || /absolute|relative|static/gi.test(startBlock.style.position)))
- startBlock = null;
-
- if (endBlock && (endBlock.nodeName == 'CAPTION' || /absolute|relative|static/gi.test(endBlock.style.position)))
- endBlock = null;
-
- // Use current block name
- if (startBlock != null) {
- blockName = startBlock.nodeName;
-
- // Use P instead
- if (/(TD|TABLE|TH|CAPTION)/.test(blockName) || (blockName == "DIV" && /left|right/gi.test(startBlock.style.cssFloat)))
- blockName = "P";
- }
-
- // Within a list use normal behaviour
- if (tinyMCE.getParentElement(startBlock, "OL,UL", null, body) != null)
- return false;
-
- // Within a table create new paragraphs
- if ((startBlock != null && startBlock.nodeName == "TABLE") || (endBlock != null && endBlock.nodeName == "TABLE"))
- startBlock = endBlock = null;
-
- // Setup new paragraphs
- paraBefore = (startBlock != null && startBlock.nodeName == blockName) ? startBlock.cloneNode(false) : doc.createElement(blockName);
- paraAfter = (endBlock != null && endBlock.nodeName == blockName) ? endBlock.cloneNode(false) : doc.createElement(blockName);
-
- // Is header, then force paragraph under
- if (/^(H[1-6])$/.test(blockName))
- paraAfter = doc.createElement("p");
-
- // Setup chop nodes
- startChop = startNode;
- endChop = endNode;
-
- // Get startChop node
- node = startChop;
- do {
- if (node == body || node.nodeType == 9 || tinyMCE.isBlockElement(node))
- break;
-
- startChop = node;
- } while ((node = node.previousSibling ? node.previousSibling : node.parentNode));
-
- // Get endChop node
- node = endChop;
- do {
- if (node == body || node.nodeType == 9 || tinyMCE.isBlockElement(node))
- break;
-
- endChop = node;
- } while ((node = node.nextSibling ? node.nextSibling : node.parentNode));
-
- // Fix when only a image is within the TD
- if (startChop.nodeName == "TD")
- startChop = startChop.firstChild;
-
- if (endChop.nodeName == "TD")
- endChop = endChop.lastChild;
-
- // If not in a block element
- if (startBlock == null) {
- // Delete selection
- rng.deleteContents();
-
- if (!tinyMCE.isSafari)
- sel.removeAllRanges();
-
- if (startChop != rootElm && endChop != rootElm) {
- // Insert paragraph before
- rngBefore = rng.cloneRange();
-
- if (startChop == body)
- rngBefore.setStart(startChop, 0);
- else
- rngBefore.setStartBefore(startChop);
-
- paraBefore.appendChild(rngBefore.cloneContents());
-
- // Insert paragraph after
- if (endChop.parentNode.nodeName == blockName)
- endChop = endChop.parentNode;
-
- // If not after image
- //if (rng.startContainer.nodeName != "BODY" && rng.endContainer.nodeName != "BODY")
- rng.setEndAfter(endChop);
-
- if (endChop.nodeName != "#text" && endChop.nodeName != "BODY")
- rngBefore.setEndAfter(endChop);
-
- contents = rng.cloneContents();
- if (contents.firstChild && (contents.firstChild.nodeName == blockName || contents.firstChild.nodeName == "BODY"))
- paraAfter.innerHTML = contents.firstChild.innerHTML;
- else
- paraAfter.appendChild(contents);
-
- // Check if it's a empty paragraph
- if (isEmpty(paraBefore))
- paraBefore.innerHTML = " ";
-
- // Check if it's a empty paragraph
- if (isEmpty(paraAfter))
- paraAfter.innerHTML = " ";
-
- // Delete old contents
- rng.deleteContents();
- rngAfter.deleteContents();
- rngBefore.deleteContents();
-
- // Insert new paragraphs
- if (tinyMCE.isOpera) {
- paraBefore.normalize();
- rngBefore.insertNode(paraBefore);
- paraAfter.normalize();
- rngBefore.insertNode(paraAfter);
- } else {
- paraAfter.normalize();
- rngBefore.insertNode(paraAfter);
- paraBefore.normalize();
- rngBefore.insertNode(paraBefore);
- }
-
- //tinyMCE.debug("1: ", paraBefore.innerHTML, paraAfter.innerHTML);
- } else {
- body.innerHTML = "<" + blockName + "> </" + blockName + "><" + blockName + "> </" + blockName + ">";
- paraAfter = body.childNodes[1];
- }
-
- inst.selection.moveToBookmark(b);
- inst.selection.selectNode(paraAfter, true, true);
-
- return true;
- }
-
- // Place first part within new paragraph
- if (startChop.nodeName == blockName)
- rngBefore.setStart(startChop, 0);
- else
- rngBefore.setStartBefore(startChop);
-
- rngBefore.setEnd(startNode, startOffset);
- paraBefore.appendChild(rngBefore.cloneContents());
-
- // Place secound part within new paragraph
- rngAfter.setEndAfter(endChop);
- rngAfter.setStart(endNode, endOffset);
- contents = rngAfter.cloneContents();
-
- if (contents.firstChild && contents.firstChild.nodeName == blockName) {
- /* var nodes = contents.firstChild.childNodes;
- for (i=0; i<nodes.length; i++) {
- //tinyMCE.debug(nodes[i].nodeName);
- if (nodes[i].nodeName != "BODY")
- paraAfter.appendChild(nodes[i]);
- }
- */
- paraAfter.innerHTML = contents.firstChild.innerHTML;
- } else
- paraAfter.appendChild(contents);
-
- // Check if it's a empty paragraph
- if (isEmpty(paraBefore))
- paraBefore.innerHTML = " ";
-
- // Check if it's a empty paragraph
- if (isEmpty(paraAfter))
- paraAfter.innerHTML = " ";
-
- // Create a range around everything
- rng = doc.createRange();
-
- if (!startChop.previousSibling && startChop.parentNode.nodeName.toUpperCase() == blockName) {
- rng.setStartBefore(startChop.parentNode);
- } else {
- if (rngBefore.startContainer.nodeName.toUpperCase() == blockName && rngBefore.startOffset == 0)
- rng.setStartBefore(rngBefore.startContainer);
- else
- rng.setStart(rngBefore.startContainer, rngBefore.startOffset);
- }
-
- if (!endChop.nextSibling && endChop.parentNode.nodeName.toUpperCase() == blockName)
- rng.setEndAfter(endChop.parentNode);
- else
- rng.setEnd(rngAfter.endContainer, rngAfter.endOffset);
-
- // Delete all contents and insert new paragraphs
- rng.deleteContents();
-
- if (tinyMCE.isOpera) {
- rng.insertNode(paraBefore);
- rng.insertNode(paraAfter);
- } else {
- rng.insertNode(paraAfter);
- rng.insertNode(paraBefore);
- }
-
- //tinyMCE.debug("2", paraBefore.innerHTML, paraAfter.innerHTML);
-
- // Normalize
- paraAfter.normalize();
- paraBefore.normalize();
-
- inst.selection.moveToBookmark(b);
- inst.selection.selectNode(paraAfter, true, true);
-
- return true;
- },
-
- _handleBackSpace : function(inst) {
- var r = inst.getRng(), sn = r.startContainer, nv, s = false;
-
- // Added body check for bug #1527787
- if (sn && sn.nextSibling && sn.nextSibling.nodeName == "BR" && sn.parentNode.nodeName != "BODY") {
- nv = sn.nodeValue;
-
- // Handle if a backspace is pressed after a space character #bug 1466054 removed since fix for #1527787
- /*if (nv != null && nv.length >= r.startOffset && nv.charAt(r.startOffset - 1) == ' ')
- s = true;*/
-
- // Only remove BRs if we are at the end of line #bug 1464152
- if (nv != null && r.startOffset == nv.length)
- sn.nextSibling.parentNode.removeChild(sn.nextSibling);
- }
-
- if (inst.settings.auto_resize)
- inst.resizeToContent();
-
- return s;
- }
-
- };
-
-/* file:jscripts/tiny_mce/classes/TinyMCE_Layer.class.js */
-
-function TinyMCE_Layer(id, bm) {
- this.id = id;
- this.blockerElement = null;
- this.events = false;
- this.element = null;
- this.blockMode = typeof(bm) != 'undefined' ? bm : true;
- this.doc = document;
-};
-
-TinyMCE_Layer.prototype = {
- moveRelativeTo : function(re, p) {
- var rep = this.getAbsPosition(re), e = this.getElement(), x, y;
- var w = parseInt(re.offsetWidth), h = parseInt(re.offsetHeight);
- var ew = parseInt(e.offsetWidth), eh = parseInt(e.offsetHeight);
-
- switch (p) {
- case "tl":
- x = rep.absLeft;
- y = rep.absTop;
- break;
-
- case "tr":
- x = rep.absLeft + w;
- y = rep.absTop;
- break;
-
- case "bl":
- x = rep.absLeft;
- y = rep.absTop + h;
- break;
-
- case "br":
- x = rep.absLeft + w;
- y = rep.absTop + h;
- break;
-
- case "cc":
- x = rep.absLeft + (w / 2) - (ew / 2);
- y = rep.absTop + (h / 2) - (eh / 2);
- break;
- }
-
- this.moveTo(x, y);
- },
-
- moveBy : function(x, y) {
- var e = this.getElement();
- this.moveTo(parseInt(e.style.left) + x, parseInt(e.style.top) + y);
- },
-
- moveTo : function(x, y) {
- var e = this.getElement();
-
- e.style.left = x + "px";
- e.style.top = y + "px";
-
- this.updateBlocker();
- },
-
- resizeBy : function(w, h) {
- var e = this.getElement();
- this.resizeTo(parseInt(e.style.width) + w, parseInt(e.style.height) + h);
- },
-
- resizeTo : function(w, h) {
- var e = this.getElement();
-
- if (w != null)
- e.style.width = w + "px";
-
- if (h != null)
- e.style.height = h + "px";
-
- this.updateBlocker();
- },
-
- show : function() {
- var el = this.getElement();
-
- if (el) {
- el.style.display = 'block';
- this.updateBlocker();
- }
- },
-
- hide : function() {
- var el = this.getElement();
-
- if (el) {
- el.style.display = 'none';
- this.updateBlocker();
- }
- },
-
- isVisible : function() {
- return this.getElement().style.display == 'block';
- },
-
- getElement : function() {
- if (!this.element)
- this.element = this.doc.getElementById(this.id);
-
- return this.element;
- },
-
- setBlockMode : function(s) {
- this.blockMode = s;
- },
-
- updateBlocker : function() {
- var e, b, x, y, w, h;
-
- b = this.getBlocker();
- if (b) {
- if (this.blockMode) {
- e = this.getElement();
- x = this.parseInt(e.style.left);
- y = this.parseInt(e.style.top);
- w = this.parseInt(e.offsetWidth);
- h = this.parseInt(e.offsetHeight);
-
- b.style.left = x + 'px';
- b.style.top = y + 'px';
- b.style.width = w + 'px';
- b.style.height = h + 'px';
- b.style.display = e.style.display;
- } else
- b.style.display = 'none';
- }
- },
-
- getBlocker : function() {
- var d, b;
-
- if (!this.blockerElement && this.blockMode) {
- d = this.doc;
- b = d.getElementById(this.id + "_blocker");
-
- if (!b) {
- b = d.createElement("iframe");
-
- b.setAttribute('id', this.id + "_blocker");
- b.style.cssText = 'display: none; position: absolute; left: 0; top: 0';
- b.src = 'javascript:false;';
- b.frameBorder = '0';
- b.scrolling = 'no';
-
- d.body.appendChild(b);
- }
-
- this.blockerElement = b;
- }
-
- return this.blockerElement;
- },
-
- getAbsPosition : function(n) {
- var p = {absLeft : 0, absTop : 0};
-
- while (n) {
- p.absLeft += n.offsetLeft;
- p.absTop += n.offsetTop;
- n = n.offsetParent;
- }
-
- return p;
- },
-
- create : function(n, c, p, h) {
- var d = this.doc, e = d.createElement(n);
-
- e.setAttribute('id', this.id);
-
- if (c)
- e.className = c;
-
- if (!p)
- p = d.body;
-
- if (h)
- e.innerHTML = h;
-
- p.appendChild(e);
-
- return this.element = e;
- },
-
- exists : function() {
- return this.doc.getElementById(this.id) != null;
- },
-
- parseInt : function(s) {
- if (s == null || s == '')
- return 0;
-
- return parseInt(s);
- },
-
- remove : function() {
- var e = this.getElement(), b = this.getBlocker();
-
- if (e)
- e.parentNode.removeChild(e);
-
- if (b)
- b.parentNode.removeChild(b);
- }
-
- };
-
-/* file:jscripts/tiny_mce/classes/TinyMCE_Menu.class.js */
-
-function TinyMCE_Menu() {
- var id;
-
- if (typeof(tinyMCE.menuCounter) == "undefined")
- tinyMCE.menuCounter = 0;
-
- id = "mc_menu_" + tinyMCE.menuCounter++;
-
- TinyMCE_Layer.call(this, id, true);
-
- this.id = id;
- this.items = [];
- this.needsUpdate = true;
-};
-
-TinyMCE_Menu.prototype = tinyMCE.extend(TinyMCE_Layer.prototype, {
- init : function(s) {
- var n;
-
- // Default params
- this.settings = {
- separator_class : 'mceMenuSeparator',
- title_class : 'mceMenuTitle',
- disabled_class : 'mceMenuDisabled',
- menu_class : 'mceMenu',
- drop_menu : true
- };
-
- for (n in s)
- this.settings[n] = s[n];
-
- this.create('div', this.settings.menu_class);
- },
-
- clear : function() {
- this.items = [];
- },
-
- addTitle : function(t) {
- this.add({type : 'title', text : t});
- },
-
- addDisabled : function(t) {
- this.add({type : 'disabled', text : t});
- },
-
- addSeparator : function() {
- this.add({type : 'separator'});
- },
-
- addItem : function(t, js) {
- this.add({text : t, js : js});
- },
-
- add : function(mi) {
- this.items[this.items.length] = mi;
- this.needsUpdate = true;
- },
-
- update : function() {
- var e = this.getElement(), h = '', i, t, m = this.items, s = this.settings;
-
- if (this.settings.drop_menu)
- h += '<span class="mceMenuLine"></span>';
-
- h += '<table border="0" cellpadding="0" cellspacing="0">';
-
- for (i=0; i<m.length; i++) {
- t = tinyMCE.xmlEncode(m[i].text);
- c = m[i].class_name ? ' class="' + m[i].class_name + '"' : '';
-
- switch (m[i].type) {
- case 'separator':
- h += '<tr class="' + s.separator_class + '"><td>';
- break;
-
- case 'title':
- h += '<tr class="' + s.title_class + '"><td><span' + c +'>' + t + '</span>';
- break;
-
- case 'disabled':
- h += '<tr class="' + s.disabled_class + '"><td><span' + c +'>' + t + '</span>';
- break;
-
- default:
- h += '<tr><td><a href="' + tinyMCE.xmlEncode(m[i].js) + '" onmousedown="' + tinyMCE.xmlEncode(m[i].js) + ';return tinyMCE.cancelEvent(event);" onclick="return tinyMCE.cancelEvent(event);" onmouseup="return tinyMCE.cancelEvent(event);"><span' + c +'>' + t + '</span></a>';
- }
-
- h += '</td></tr>';
- }
-
- h += '</table>';
-
- e.innerHTML = h;
-
- this.needsUpdate = false;
- this.updateBlocker();
- },
-
- show : function() {
- var nl, i;
-
- if (tinyMCE.lastMenu == this)
- return;
-
- if (this.needsUpdate)
- this.update();
-
- if (tinyMCE.lastMenu && tinyMCE.lastMenu != this)
- tinyMCE.lastMenu.hide();
-
- TinyMCE_Layer.prototype.show.call(this);
-
- if (!tinyMCE.isOpera) {
- // Accessibility stuff
-/* nl = this.getElement().getElementsByTagName("a");
- if (nl.length > 0)
- nl[0].focus();*/
- }
-
- tinyMCE.lastMenu = this;
- }
-
- });
-
-/* file:jscripts/tiny_mce/classes/TinyMCE_Debug.class.js */
-
-tinyMCE.add(TinyMCE_Engine, {
- debug : function() {
- var m = "", a, i, l = tinyMCE.log.length;
-
- for (i=0, a = this.debug.arguments; i<a.length; i++) {
- m += a[i];
-
- if (i<a.length-1)
- m += ', ';
- }
-
- if (l < 1000)
- tinyMCE.log[l] = "[debug] " + m;
- }
-
- });
-
+(function(e){var a=/^\s*|\s*$/g,b,d="B".replace(/A(.)|B/,"$1")==="$1";var c={majorVersion:"3",minorVersion:"5.8",releaseDate:"2012-11-20",_init:function(){var s=this,q=document,o=navigator,g=o.userAgent,m,f,l,k,j,r;s.isOpera=e.opera&&opera.buildNumber;s.isWebKit=/WebKit/.test(g);s.isIE=!s.isWebKit&&!s.isOpera&&(/MSIE/gi).test(g)&&(/Explorer/gi).test(o.appName);s.isIE6=s.isIE&&/MSIE [56]/.test(g);s.isIE7=s.isIE&&/MSIE [7]/.test(g);s.isIE8=s.isIE&&/MSIE [8]/.test(g);s.isIE9=s.isIE&&/MSIE [9]/.test(g);s.isGecko=!s.isWebKit&&/Gecko/.test(g);s.isMac=g.indexOf("Mac")!=-1;s.isAir=/adobeair/i.test(g);s.isIDevice=/(iPad|iPhone)/.test(g);s.isIOS5=s.isIDevice&&g.match(/AppleWebKit\/(\d*)/)[1]>=534;if(e.tinyMCEPreInit){s.suffix=tinyMCEPreInit.suffix;s.baseURL=tinyMCEPreInit.base;s.query=tinyMCEPreInit.query;return}s.suffix="";f=q.getElementsByTagName("base");for(m=0;m<f.length;m++){r=f[m].href;if(r){if(/^https?:\/\/[^\/]+$/.test(r)){r+="/"}k=r?r.match(/.*\//)[0]:""}}function h(i){if(i.src&&/tiny_mce(|_gzip|_jquery|_prototype|_full)(_dev|_src)?.js/.test(i.src)){if(/_(src|dev)\.js/g.test(i.src)){s.suffix="_src"}if((j=i.src.indexOf("?"))!=-1){s.query=i.src.substring(j+1)}s.baseURL=i.src.substring(0,i.src.lastIndexOf("/"));if(k&&s.baseURL.indexOf("://")==-1&&s.baseURL.indexOf("/")!==0){s.baseURL=k+s.baseURL}return s.baseURL}return null}f=q.getElementsByTagName("script");for(m=0;m<f.length;m++){if(h(f[m])){return}}l=q.getElementsByTagName("head")[0];if(l){f=l.getElementsByTagName("script");for(m=0;m<f.length;m++){if(h(f[m])){return}}}return},is:function(g,f){if(!f){return g!==b}if(f=="array"&&c.isArray(g)){return true}return typeof(g)==f},isArray:Array.isArray||function(f){return Object.prototype.toString.call(f)==="[object Array]"},makeMap:function(f,j,h){var g;f=f||[];j=j||",";if(typeof(f)=="string"){f=f.split(j)}h=h||{};g=f.length;while(g--){h[f[g]]={}}return h},each:function(i,f,h){var j,g;if(!i){return 0}h=h||i;if(i.length!==b){for(j=0,g=i.length;j<g;j++){if(f.call(h,i[j],j,i)===false){return 0}}}else{for(j in i){if(i.hasOwnProperty(j)){if(f.call(h,i[j],j,i)===false){return 0}}}}return 1},map:function(g,h){var i=[];c.each(g,function(f){i.push(h(f))});return i},grep:function(g,h){var i=[];c.each(g,function(f){if(!h||h(f)){i.push(f)}});return i},inArray:function(g,h){var j,f;if(g){for(j=0,f=g.length;j<f;j++){if(g[j]===h){return j}}}return -1},extend:function(n,k){var j,f,h,g=arguments,m;for(j=1,f=g.length;j<f;j++){k=g[j];for(h in k){if(k.hasOwnProperty(h)){m=k[h];if(m!==b){n[h]=m}}}}return n},trim:function(f){return(f?""+f:"").replace(a,"")},create:function(o,f,j){var n=this,g,i,k,l,h,m=0;o=/^((static) )?([\w.]+)(:([\w.]+))?/.exec(o);k=o[3].match(/(^|\.)(\w+)$/i)[2];i=n.createNS(o[3].replace(/\.\w+$/,""),j);if(i[k]){return}if(o[2]=="static"){i[k]=f;if(this.onCreate){this.onCreate(o[2],o[3],i[k])}return}if(!f[k]){f[k]=function(){};m=1}i[k]=f[k];n.extend(i[k].prototype,f);if(o[5]){g=n.resolve(o[5]).prototype;l=o[5].match(/\.(\w+)$/i)[1];h=i[k];if(m){i[k]=function(){return g[l].apply(this,arguments)}}else{i[k]=function(){this.parent=g[l];return h.apply(this,arguments)}}i[k].prototype[k]=i[k];n.each(g,function(p,q){i[k].prototype[q]=g[q]});n.each(f,function(p,q){if(g[q]){i[k].prototype[q]=function(){this.parent=g[q];return p.apply(this,arguments)}}else{if(q!=k){i[k].prototype[q]=p}}})}n.each(f["static"],function(p,q){i[k][q]=p});if(this.onCreate){this.onCreate(o[2],o[3],i[k].prototype)}},walk:function(i,h,j,g){g=g||this;if(i){if(j){i=i[j]}c.each(i,function(k,f){if(h.call(g,k,f,j)===false){return false}c.walk(k,h,j,g)})}},createNS:function(j,h){var g,f;h=h||e;j=j.split(".");for(g=0;g<j.length;g++){f=j[g];if(!h[f]){h[f]={}}h=h[f]}return h},resolve:function(j,h){var g,f;h=h||e;j=j.split(".");for(g=0,f=j.length;g<f;g++){h=h[j[g]];if(!h){break}}return h},addUnload:function(j,i){var h=this,g;g=function(){var f=h.unloads,l,m;if(f){for(m in f){l=f[m];if(l&&l.func){l.func.call(l.scope,1)}}if(e.detachEvent){e.detachEvent("onbeforeunload",k);e.detachEvent("onunload",g)}else{if(e.removeEventListener){e.removeEventListener("unload",g,false)}}h.unloads=l=f=w=g=0;if(e.CollectGarbage){CollectGarbage()}}};function k(){var l=document;function f(){l.detachEvent("onstop",f);if(g){g()}l=0}if(l.readyState=="interactive"){if(l){l.attachEvent("onstop",f)}e.setTimeout(function(){if(l){l.detachEvent("onstop",f)}},0)}}j={func:j,scope:i||this};if(!h.unloads){if(e.attachEvent){e.attachEvent("onunload",g);e.attachEvent("onbeforeunload",k)}else{if(e.addEventListener){e.addEventListener("unload",g,false)}}h.unloads=[j]}else{h.unloads.push(j)}return j},removeUnload:function(i){var g=this.unloads,h=null;c.each(g,function(j,f){if(j&&j.func==i){g.splice(f,1);h=i;return false}});return h},explode:function(f,g){if(!f||c.is(f,"array")){return f}return c.map(f.split(g||","),c.trim)},_addVer:function(g){var f;if(!this.query){return g}f=(g.indexOf("?")==-1?"?":"&")+this.query;if(g.indexOf("#")==-1){return g+f}return g.replace("#",f+"#")},_replace:function(h,f,g){if(d){return g.replace(h,function(){var l=f,j=arguments,k;for(k=0;k<j.length-2;k++){if(j[k]===b){l=l.replace(new RegExp("\\$"+k,"g"),"")}else{l=l.replace(new RegExp("\\$"+k,"g"),j[k])}}return l})}return g.replace(h,f)}};c._init();e.tinymce=e.tinyMCE=c})(window);tinymce.create("tinymce.util.Dispatcher",{scope:null,listeners:null,inDispatch:false,Dispatcher:function(a){this.scope=a||this;this.listeners=[]},add:function(b,a){this.listeners.push({cb:b,scope:a||this.scope});return b},addToTop:function(d,b){var a=this,c={cb:d,scope:b||a.scope};if(a.inDispatch){a.listeners=[c].concat(a.listeners)}else{a.listeners.unshift(c)}return d},remove:function(c){var b=this.listeners,a=null;tinymce.each(b,function(e,d){if(c==e.cb){a=e;b.splice(d,1);return false}});return a},dispatch:function(){var a=this,e,b=arguments,c,d=a.listeners,f;a.inDispatch=true;for(c=0;c<d.length;c++){f=d[c];e=f.cb.apply(f.scope,b.length>0?b:[f.scope]);if(e===false){break}}a.inDispatch=false;return e}});(function(){var a=tinymce.each;tinymce.create("tinymce.util.URI",{URI:function(e,g){var f=this,i,d,c,h;e=tinymce.trim(e);g=f.settings=g||{};if(/^([\w\-]+):([^\/]{2})/i.test(e)||/^\s*#/.test(e)){f.source=e;return}if(e.indexOf("/")===0&&e.indexOf("//")!==0){e=(g.base_uri?g.base_uri.protocol||"http":"http")+"://mce_host"+e}if(!/^[\w\-]*:?\/\//.test(e)){h=g.base_uri?g.base_uri.path:new tinymce.util.URI(location.href).directory;e=((g.base_uri&&g.base_uri.protocol)||"http")+"://mce_host"+f.toAbsPath(h,e)}e=e.replace(/@@/g,"(mce_at)");e=/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(e);a(["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],function(b,j){var k=e[j];if(k){k=k.replace(/\(mce_at\)/g,"@@")}f[b]=k});c=g.base_uri;if(c){if(!f.protocol){f.protocol=c.protocol}if(!f.userInfo){f.userInfo=c.userInfo}if(!f.port&&f.host==="mce_host"){f.port=c.port}if(!f.host||f.host==="mce_host"){f.host=c.host}f.source=""}},setPath:function(c){var b=this;c=/^(.*?)\/?(\w+)?$/.exec(c);b.path=c[0];b.directory=c[1];b.file=c[2];b.source="";b.getURI()},toRelative:function(b){var d=this,f;if(b==="./"){return b}b=new tinymce.util.URI(b,{base_uri:d});if((b.host!="mce_host"&&d.host!=b.host&&b.host)||d.port!=b.port||d.protocol!=b.protocol){return b.getURI()}var c=d.getURI(),e=b.getURI();if(c==e||(c.charAt(c.length-1)=="/"&&c.substr(0,c.length-1)==e)){return c}f=d.toRelPath(d.path,b.path);if(b.query){f+="?"+b.query}if(b.anchor){f+="#"+b.anchor}return f},toAbsolute:function(b,c){b=new tinymce.util.URI(b,{base_uri:this});return b.getURI(this.host==b.host&&this.protocol==b.protocol?c:0)},toRelPath:function(g,h){var c,f=0,d="",e,b;g=g.substring(0,g.lastIndexOf("/"));g=g.split("/");c=h.split("/");if(g.length>=c.length){for(e=0,b=g.length;e<b;e++){if(e>=c.length||g[e]!=c[e]){f=e+1;break}}}if(g.length<c.length){for(e=0,b=c.length;e<b;e++){if(e>=g.length||g[e]!=c[e]){f=e+1;break}}}if(f===1){return h}for(e=0,b=g.length-(f-1);e<b;e++){d+="../"}for(e=f-1,b=c.length;e<b;e++){if(e!=f-1){d+="/"+c[e]}else{d+=c[e]}}return d},toAbsPath:function(e,f){var c,b=0,h=[],d,g;d=/\/$/.test(f)?"/":"";e=e.split("/");f=f.split("/");a(e,function(i){if(i){h.push(i)}});e=h;for(c=f.length-1,h=[];c>=0;c--){if(f[c].length===0||f[c]==="."){continue}if(f[c]===".."){b++;continue}if(b>0){b--;continue}h.push(f[c])}c=e.length-b;if(c<=0){g=h.reverse().join("/")}else{g=e.slice(0,c).join("/")+"/"+h.reverse().join("/")}if(g.indexOf("/")!==0){g="/"+g}if(d&&g.lastIndexOf("/")!==g.length-1){g+=d}return g},getURI:function(d){var c,b=this;if(!b.source||d){c="";if(!d){if(b.protocol){c+=b.protocol+"://"}if(b.userInfo){c+=b.userInfo+"@"}if(b.host){c+=b.host}if(b.port){c+=":"+b.port}}if(b.path){c+=b.path}if(b.query){c+="?"+b.query}if(b.anchor){c+="#"+b.anchor}b.source=c}return b.source}})})();(function(){var a=tinymce.each;tinymce.create("static tinymce.util.Cookie",{getHash:function(d){var b=this.get(d),c;if(b){a(b.split("&"),function(e){e=e.split("=");c=c||{};c[unescape(e[0])]=unescape(e[1])})}return c},setHash:function(j,b,g,f,i,c){var h="";a(b,function(e,d){h+=(!h?"":"&")+escape(d)+"="+escape(e)});this.set(j,h,g,f,i,c)},get:function(i){var h=document.cookie,g,f=i+"=",d;if(!h){return}d=h.indexOf("; "+f);if(d==-1){d=h.indexOf(f);if(d!==0){return null}}else{d+=2}g=h.indexOf(";",d);if(g==-1){g=h.length}return unescape(h.substring(d+f.length,g))},set:function(i,b,g,f,h,c){document.cookie=i+"="+escape(b)+((g)?"; expires="+g.toGMTString():"")+((f)?"; path="+escape(f):"")+((h)?"; domain="+h:"")+((c)?"; secure":"")},remove:function(c,e,d){var b=new Date();b.setTime(b.getTime()-1000);this.set(c,"",b,e,d)}})})();(function(){function serialize(o,quote){var i,v,t,name;quote=quote||'"';if(o==null){return"null"}t=typeof o;if(t=="string"){v="\bb\tt\nn\ff\rr\"\"''\\\\";return quote+o.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g,function(a,b){if(quote==='"'&&a==="'"){return a}i=v.indexOf(b);if(i+1){return"\\"+v.charAt(i+1)}a=b.charCodeAt().toString(16);return"\\u"+"0000".substring(a.length)+a})+quote}if(t=="object"){if(o.hasOwnProperty&&Object.prototype.toString.call(o)==="[object Array]"){for(i=0,v="[";i<o.length;i++){v+=(i>0?",":"")+serialize(o[i],quote)}return v+"]"}v="{";for(name in o){if(o.hasOwnProperty(name)){v+=typeof o[name]!="function"?(v.length>1?","+quote:quote)+name+quote+":"+serialize(o[name],quote):""}}return v+"}"}return""+o}tinymce.util.JSON={serialize:serialize,parse:function(s){try{return eval("("+s+")")}catch(ex){}}}})();tinymce.create("static tinymce.util.XHR",{send:function(g){var a,e,b=window,h=0;function f(){if(!g.async||a.readyState==4||h++>10000){if(g.success&&h<10000&&a.status==200){g.success.call(g.success_scope,""+a.responseText,a,g)}else{if(g.error){g.error.call(g.error_scope,h>10000?"TIMED_OUT":"GENERAL",a,g)}}a=null}else{b.setTimeout(f,10)}}g.scope=g.scope||this;g.success_scope=g.success_scope||g.scope;g.error_scope=g.error_scope||g.scope;g.async=g.async===false?false:true;g.data=g.data||"";function d(i){a=0;try{a=new ActiveXObject(i)}catch(c){}return a}a=b.XMLHttpRequest?new XMLHttpRequest():d("Microsoft.XMLHTTP")||d("Msxml2.XMLHTTP");if(a){if(a.overrideMimeType){a.overrideMimeType(g.content_type)}a.open(g.type||(g.data?"POST":"GET"),g.url,g.async);if(g.content_type){a.setRequestHeader("Content-Type",g.content_type)}a.setRequestHeader("X-Requested-With","XMLHttpRequest");a.send(g.data);if(!g.async){return f()}e=b.setTimeout(f,10)}}});(function(){var c=tinymce.extend,b=tinymce.util.JSON,a=tinymce.util.XHR;tinymce.create("tinymce.util.JSONRequest",{JSONRequest:function(d){this.settings=c({},d);this.count=0},send:function(f){var e=f.error,d=f.success;f=c(this.settings,f);f.success=function(h,g){h=b.parse(h);if(typeof(h)=="undefined"){h={error:"JSON Parse error."}}if(h.error){e.call(f.error_scope||f.scope,h.error,g)}else{d.call(f.success_scope||f.scope,h.result)}};f.error=function(h,g){if(e){e.call(f.error_scope||f.scope,h,g)}};f.data=b.serialize({id:f.id||"c"+(this.count++),method:f.method,params:f.params});f.content_type="application/json";a.send(f)},"static":{sendRPC:function(d){return new tinymce.util.JSONRequest().send(d)}}})}());(function(a){a.VK={BACKSPACE:8,DELETE:46,DOWN:40,ENTER:13,LEFT:37,RIGHT:39,SPACEBAR:32,TAB:9,UP:38,modifierPressed:function(b){return b.shiftKey||b.ctrlKey||b.altKey},metaKeyPressed:function(b){return a.isMac?b.metaKey:b.ctrlKey&&!b.altKey}}})(tinymce);tinymce.util.Quirks=function(a){var j=tinymce.VK,f=j.BACKSPACE,k=j.DELETE,e=a.dom,l=a.selection,H=a.settings,v=a.parser,o=a.serializer,E=tinymce.each;function A(N,M){try{a.getDoc().execCommand(N,false,M)}catch(L){}}function n(){var L=a.getDoc().documentMode;return L?L:6}function z(L){return L.isDefaultPrevented()}function J(){function L(O){var M,Q,N,P;M=l.getRng();Q=e.getParent(M.startContainer,e.isBlock);if(O){Q=e.getNext(Q,e.isBlock)}if(Q){N=Q.firstChild;while(N&&N.nodeType==3&&N.nodeValue.length===0){N=N.nextSibling}if(N&&N.nodeName==="SPAN"){P=N.cloneNode(false)}}E(e.select("span",Q),function(R){R.setAttribute("data-mce-mark","1")});a.getDoc().execCommand(O?"ForwardDelete":"Delete",false,null);Q=e.getParent(M.startContainer,e.isBlock);E(e.select("span",Q),function(R){var S=l.getBookmark();if(P){e.replace(P.cloneNode(false),R,true)}else{if(!R.getAttribute("data-mce-mark")){e.remove(R,true)}else{R.removeAttribute("data-mce-mark")}}l.moveToBookmark(S)})}a.onKeyDown.add(function(M,O){var N;N=O.keyCode==k;if(!z(O)&&(N||O.keyCode==f)&&!j.modifierPressed(O)){O.preventDefault();L(N)}});a.addCommand("Delete",function(){L()})}function q(){function L(O){var N=e.create("body");var P=O.cloneContents();N.appendChild(P);return l.serializer.serialize(N,{format:"html"})}function M(N){var P=L(N);var Q=e.createRng();Q.selectNode(a.getBody());var O=L(Q);return P===O}a.onKeyDown.add(function(O,Q){var P=Q.keyCode,N;if(!z(Q)&&(P==k||P==f)){N=O.selection.isCollapsed();if(N&&!e.isEmpty(O.getBody())){return}if(tinymce.isIE&&!N){return}if(!N&&!M(O.selection.getRng())){return}O.setContent("");O.selection.setCursorLocation(O.getBody(),0);O.nodeChanged()}})}function I(){a.onKeyDown.add(function(L,M){if(!z(M)&&M.keyCode==65&&j.metaKeyPressed(M)){M.preventDefault();L.execCommand("SelectAll")}})}function K(){if(!a.settings.content_editable){e.bind(a.getDoc(),"focusin",function(L){l.setRng(l.getRng())});e.bind(a.getDoc(),"mousedown",function(L){if(L.target==a.getDoc().documentElement){a.getWin().focus();l.setRng(l.getRng())}})}}function B(){a.onKeyDown.add(function(L,O){if(!z(O)&&O.keyCode===f){if(l.isCollapsed()&&l.getRng(true).startOffset===0){var N=l.getNode();var M=N.previousSibling;if(M&&M.nodeName&&M.nodeName.toLowerCase()==="hr"){e.remove(M);tinymce.dom.Event.cancel(O)}}}})}function y(){if(!Range.prototype.getClientRects){a.onMouseDown.add(function(M,N){if(!z(N)&&N.target.nodeName==="HTML"){var L=M.getBody();L.blur();setTimeout(function(){L.focus()},0)}})}}function h(){a.onClick.add(function(L,M){M=M.target;if(/^(IMG|HR)$/.test(M.nodeName)){l.getSel().setBaseAndExtent(M,0,M,1)}if(M.nodeName=="A"&&e.hasClass(M,"mceItemAnchor")){l.select(M)}L.nodeChanged()})}function c(){function M(){var O=e.getAttribs(l.getStart().cloneNode(false));return function(){var P=l.getStart();if(P!==a.getBody()){e.setAttrib(P,"style",null);E(O,function(Q){P.setAttributeNode(Q.cloneNode(true))})}}}function L(){return !l.isCollapsed()&&e.getParent(l.getStart(),e.isBlock)!=e.getParent(l.getEnd(),e.isBlock)}function N(O,P){P.preventDefault();return false}a.onKeyPress.add(function(O,Q){var P;if(!z(Q)&&(Q.keyCode==8||Q.keyCode==46)&&L()){P=M();O.getDoc().execCommand("delete",false,null);P();Q.preventDefault();return false}});e.bind(a.getDoc(),"cut",function(P){var O;if(!z(P)&&L()){O=M();a.onKeyUp.addToTop(N);setTimeout(function(){O();a.onKeyUp.remove(N)},0)}})}function b(){var M,L;e.bind(a.getDoc(),"selectionchange",function(){if(L){clearTimeout(L);L=0}L=window.setTimeout(function(){var N=l.getRng();if(!M||!tinymce.dom.RangeUtils.compareRanges(N,M)){a.nodeChanged();M=N}},50)})}function x(){document.body.setAttribute("role","application")}function t(){a.onKeyDown.add(function(L,N){if(!z(N)&&N.keyCode===f){if(l.isCollapsed()&&l.getRng(true).startOffset===0){var M=l.getNode().previousSibling;if(M&&M.nodeName&&M.nodeName.toLowerCase()==="table"){return tinymce.dom.Event.cancel(N)}}}})}function C(){if(n()>7){return}A("RespectVisibilityInDesign",true);a.contentStyles.push(".mceHideBrInPre pre br {display: none}");e.addClass(a.getBody(),"mceHideBrInPre");v.addNodeFilter("pre",function(L,N){var O=L.length,Q,M,R,P;while(O--){Q=L[O].getAll("br");M=Q.length;while(M--){R=Q[M];P=R.prev;if(P&&P.type===3&&P.value.charAt(P.value-1)!="\n"){P.value+="\n"}else{R.parent.insert(new tinymce.html.Node("#text",3),R,true).value="\n"}}}});o.addNodeFilter("pre",function(L,N){var O=L.length,Q,M,R,P;while(O--){Q=L[O].getAll("br");M=Q.length;while(M--){R=Q[M];P=R.prev;if(P&&P.type==3){P.value=P.value.replace(/\r?\n$/,"")}}}})}function g(){e.bind(a.getBody(),"mouseup",function(N){var M,L=l.getNode();if(L.nodeName=="IMG"){if(M=e.getStyle(L,"width")){e.setAttrib(L,"width",M.replace(/[^0-9%]+/g,""));e.setStyle(L,"width","")}if(M=e.getStyle(L,"height")){e.setAttrib(L,"height",M.replace(/[^0-9%]+/g,""));e.setStyle(L,"height","")}}})}function d(){a.onKeyDown.add(function(R,S){var Q,L,M,O,P,T,N;Q=S.keyCode==k;if(!z(S)&&(Q||S.keyCode==f)&&!j.modifierPressed(S)){L=l.getRng();M=L.startContainer;O=L.startOffset;N=L.collapsed;if(M.nodeType==3&&M.nodeValue.length>0&&((O===0&&!N)||(N&&O===(Q?0:1)))){nonEmptyElements=R.schema.getNonEmptyElements();S.preventDefault();P=e.create("br",{id:"__tmp"});M.parentNode.insertBefore(P,M);R.getDoc().execCommand(Q?"ForwardDelete":"Delete",false,null);M=l.getRng().startContainer;T=M.previousSibling;if(T&&T.nodeType==1&&!e.isBlock(T)&&e.isEmpty(T)&&!nonEmptyElements[T.nodeName.toLowerCase()]){e.remove(T)}e.remove("__tmp")}}})}function G(){a.onKeyDown.add(function(P,Q){var N,M,R,L,O;if(z(Q)||Q.keyCode!=j.BACKSPACE){return}N=l.getRng();M=N.startContainer;R=N.startOffset;L=e.getRoot();O=M;if(!N.collapsed||R!==0){return}while(O&&O.parentNode&&O.parentNode.firstChild==O&&O.parentNode!=L){O=O.parentNode}if(O.tagName==="BLOCKQUOTE"){P.formatter.toggle("blockquote",null,O);N=e.createRng();N.setStart(M,0);N.setEnd(M,0);l.setRng(N)}})}function F(){function L(){a._refreshContentEditable();A("StyleWithCSS",false);A("enableInlineTableEditing",false);if(!H.object_resizing){A("enableObjectResizing",false)}}if(!H.readonly){a.onBeforeExecCommand.add(L);a.onMouseDown.add(L)}}function s(){function L(M,N){E(e.select("a"),function(Q){var O=Q.parentNode,P=e.getRoot();if(O.lastChild===Q){while(O&&!e.isBlock(O)){if(O.parentNode.lastChild!==O||O===P){return}O=O.parentNode}e.add(O,"br",{"data-mce-bogus":1})}})}a.onExecCommand.add(function(M,N){if(N==="CreateLink"){L(M)}});a.onSetContent.add(l.onSetContent.add(L))}function m(){if(H.forced_root_block){a.onInit.add(function(){A("DefaultParagraphSeparator",H.forced_root_block)})}}function p(){function L(N,M){if(!N||!M.initial){a.execCommand("mceRepaint")}}a.onUndo.add(L);a.onRedo.add(L);a.onSetContent.add(L)}function i(){a.onKeyDown.add(function(M,N){var L;if(!z(N)&&N.keyCode==f){L=M.getDoc().selection.createRange();if(L&&L.item){N.preventDefault();M.undoManager.beforeChange();e.remove(L.item(0));M.undoManager.add()}}})}function r(){var L;if(n()>=10){L="";E("p div h1 h2 h3 h4 h5 h6".split(" "),function(M,N){L+=(N>0?",":"")+M+":empty"});a.contentStyles.push(L+"{padding-right: 1px !important}")}}function u(){var N,M,ad,L,Y,ab,Z,ac,O,P,aa,W,V,X=document,T=a.getDoc();if(!H.object_resizing||H.webkit_fake_resize===false){return}A("enableObjectResizing",false);aa={n:[0.5,0,0,-1],e:[1,0.5,1,0],s:[0.5,1,0,1],w:[0,0.5,-1,0],nw:[0,0,-1,-1],ne:[1,0,1,-1],se:[1,1,1,1],sw:[0,1,-1,1]};function R(ah){var ag,af;ag=ah.screenX-ab;af=ah.screenY-Z;W=ag*Y[2]+ac;V=af*Y[3]+O;W=W<5?5:W;V=V<5?5:V;if(j.modifierPressed(ah)||(ad.nodeName=="IMG"&&Y[2]*Y[3]!==0)){W=Math.round(V/P);V=Math.round(W*P)}e.setStyles(L,{width:W,height:V});if(Y[2]<0&&L.clientWidth<=W){e.setStyle(L,"left",N+(ac-W))}if(Y[3]<0&&L.clientHeight<=V){e.setStyle(L,"top",M+(O-V))}}function ae(){function af(ag,ah){if(ah){if(ad.style[ag]||!a.schema.isValid(ad.nodeName.toLowerCase(),ag)){e.setStyle(ad,ag,ah)}else{e.setAttrib(ad,ag,ah)}}}af("width",W);af("height",V);e.unbind(T,"mousemove",R);e.unbind(T,"mouseup",ae);if(X!=T){e.unbind(X,"mousemove",R);e.unbind(X,"mouseup",ae)}e.remove(L);Q(ad)}function Q(ai){var ag,ah,af;S();ag=e.getPos(ai);N=ag.x;M=ag.y;ah=ai.offsetWidth;af=ai.offsetHeight;if(ad!=ai){ad=ai;W=V=0}E(aa,function(al,aj){var ak;ak=e.get("mceResizeHandle"+aj);if(!ak){ak=e.add(T.documentElement,"div",{id:"mceResizeHandle"+aj,"class":"mceResizeHandle",style:"cursor:"+aj+"-resize; margin:0; padding:0"});e.bind(ak,"mousedown",function(am){am.preventDefault();ae();ab=am.screenX;Z=am.screenY;ac=ad.clientWidth;O=ad.clientHeight;P=O/ac;Y=al;L=ad.cloneNode(true);e.addClass(L,"mceClonedResizable");e.setStyles(L,{left:N,top:M,margin:0});T.documentElement.appendChild(L);e.bind(T,"mousemove",R);e.bind(T,"mouseup",ae);if(X!=T){e.bind(X,"mousemove",R);e.bind(X,"mouseup",ae)}})}else{e.show(ak)}e.setStyles(ak,{left:(ah*al[0]+N)-(ak.offsetWidth/2),top:(af*al[1]+M)-(ak.offsetHeight/2)})});if(!tinymce.isOpera&&ad.nodeName=="IMG"){ad.setAttribute("data-mce-selected","1")}}function S(){if(ad){ad.removeAttribute("data-mce-selected")}for(var af in aa){e.hide("mceResizeHandle"+af)}}a.contentStyles.push(".mceResizeHandle {position: absolute;border: 1px solid black;background: #FFF;width: 5px;height: 5px;z-index: 10000}.mceResizeHandle:hover {background: #000}img[data-mce-selected] {outline: 1px solid black}img.mceClonedResizable, table.mceClonedResizable {position: absolute;outline: 1px dashed black;opacity: .5;z-index: 10000}");function U(){var af=e.getParent(l.getNode(),"table,img");E(e.select("img[data-mce-selected]"),function(ag){ag.removeAttribute("data-mce-selected")});if(af){Q(af)}else{S()}}a.onNodeChange.add(U);e.bind(T,"selectionchange",U);a.serializer.addAttributeFilter("data-mce-selected",function(af,ag){var ah=af.length;while(ah--){af[ah].attr(ag,null)}})}function D(){if(n()<9){v.addNodeFilter("noscript",function(L){var M=L.length,N,O;while(M--){N=L[M];O=N.firstChild;if(O){N.attr("data-mce-innertext",O.value)}}});o.addNodeFilter("noscript",function(L){var M=L.length,N,P,O;while(M--){N=L[M];P=L[M].firstChild;if(P){P.value=tinymce.html.Entities.decode(P.value)}else{O=N.attributes.map["data-mce-innertext"];if(O){N.attr("data-mce-innertext",null);P=new tinymce.html.Node("#text",3);P.value=O;P.raw=true;N.append(P)}}}})}}t();G();q();if(tinymce.isWebKit){d();J();K();h();m();if(tinymce.isIDevice){b()}else{u();I()}}if(tinymce.isIE){B();x();C();g();i();r();D()}if(tinymce.isGecko){B();y();c();F();s();p()}if(tinymce.isOpera){u()}};(function(j){var a,g,d,k=/[&<>\"\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,b=/[<>&\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,f=/[<>&\"\']/g,c=/&(#x|#)?([\w]+);/g,i={128:"\u20AC",130:"\u201A",131:"\u0192",132:"\u201E",133:"\u2026",134:"\u2020",135:"\u2021",136:"\u02C6",137:"\u2030",138:"\u0160",139:"\u2039",140:"\u0152",142:"\u017D",145:"\u2018",146:"\u2019",147:"\u201C",148:"\u201D",149:"\u2022",150:"\u2013",151:"\u2014",152:"\u02DC",153:"\u2122",154:"\u0161",155:"\u203A",156:"\u0153",158:"\u017E",159:"\u0178"};g={'"':""","'":"'","<":"<",">":">","&":"&"};d={"<":"<",">":">","&":"&",""":'"',"'":"'"};function h(l){var m;m=document.createElement("div");m.innerHTML=l;return m.textContent||m.innerText||l}function e(m,p){var n,o,l,q={};if(m){m=m.split(",");p=p||10;for(n=0;n<m.length;n+=2){o=String.fromCharCode(parseInt(m[n],p));if(!g[o]){l="&"+m[n+1]+";";q[o]=l;q[l]=o}}return q}}a=e("50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,t9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro",32);j.html=j.html||{};j.html.Entities={encodeRaw:function(m,l){return m.replace(l?k:b,function(n){return g[n]||n})},encodeAllRaw:function(l){return(""+l).replace(f,function(m){return g[m]||m})},encodeNumeric:function(m,l){return m.replace(l?k:b,function(n){if(n.length>1){return"&#"+(((n.charCodeAt(0)-55296)*1024)+(n.charCodeAt(1)-56320)+65536)+";"}return g[n]||"&#"+n.charCodeAt(0)+";"})},encodeNamed:function(n,l,m){m=m||a;return n.replace(l?k:b,function(o){return g[o]||m[o]||o})},getEncodeFunc:function(l,o){var p=j.html.Entities;o=e(o)||a;function m(r,q){return r.replace(q?k:b,function(s){return g[s]||o[s]||"&#"+s.charCodeAt(0)+";"||s})}function n(r,q){return p.encodeNamed(r,q,o)}l=j.makeMap(l.replace(/\+/g,","));if(l.named&&l.numeric){return m}if(l.named){if(o){return n}return p.encodeNamed}if(l.numeric){return p.encodeNumeric}return p.encodeRaw},decode:function(l){return l.replace(c,function(n,m,o){if(m){o=parseInt(o,m.length===2?16:10);if(o>65535){o-=65536;return String.fromCharCode(55296+(o>>10),56320+(o&1023))}else{return i[o]||String.fromCharCode(o)}}return d[n]||a[n]||h(n)})}}})(tinymce);tinymce.html.Styles=function(d,f){var k=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/gi,h=/(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi,b=/\s*([^:]+):\s*([^;]+);?/g,l=/\s+$/,m=/rgb/,e,g,a={},j;d=d||{};j="\\\" \\' \\; \\: ; : \uFEFF".split(" ");for(g=0;g<j.length;g++){a[j[g]]="\uFEFF"+g;a["\uFEFF"+g]=j[g]}function c(n,q,p,i){function o(r){r=parseInt(r).toString(16);return r.length>1?r:"0"+r}return"#"+o(q)+o(p)+o(i)}return{toHex:function(i){return i.replace(k,c)},parse:function(s){var z={},q,n,x,r,v=d.url_converter,y=d.url_converter_scope||this;function p(D,G){var F,C,B,E;F=z[D+"-top"+G];if(!F){return}C=z[D+"-right"+G];if(F!=C){return}B=z[D+"-bottom"+G];if(C!=B){return}E=z[D+"-left"+G];if(B!=E){return}z[D+G]=E;delete z[D+"-top"+G];delete z[D+"-right"+G];delete z[D+"-bottom"+G];delete z[D+"-left"+G]}function u(C){var D=z[C],B;if(!D||D.indexOf(" ")<0){return}D=D.split(" ");B=D.length;while(B--){if(D[B]!==D[0]){return false}}z[C]=D[0];return true}function A(D,C,B,E){if(!u(C)){return}if(!u(B)){return}if(!u(E)){return}z[D]=z[C]+" "+z[B]+" "+z[E];delete z[C];delete z[B];delete z[E]}function t(B){r=true;return a[B]}function i(C,B){if(r){C=C.replace(/\uFEFF[0-9]/g,function(D){return a[D]})}if(!B){C=C.replace(/\\([\'\";:])/g,"$1")}return C}function o(C,B,F,E,G,D){G=G||D;if(G){G=i(G);return"'"+G.replace(/\'/g,"\\'")+"'"}B=i(B||F||E);if(v){B=v.call(y,B,"style")}return"url('"+B.replace(/\'/g,"\\'")+"')"}if(s){s=s.replace(/\\[\"\';:\uFEFF]/g,t).replace(/\"[^\"]+\"|\'[^\']+\'/g,function(B){return B.replace(/[;:]/g,t)});while(q=b.exec(s)){n=q[1].replace(l,"").toLowerCase();x=q[2].replace(l,"");if(n&&x.length>0){if(n==="font-weight"&&x==="700"){x="bold"}else{if(n==="color"||n==="background-color"){x=x.toLowerCase()}}x=x.replace(k,c);x=x.replace(h,o);z[n]=r?i(x,true):x}b.lastIndex=q.index+q[0].length}p("border","");p("border","-width");p("border","-color");p("border","-style");p("padding","");p("margin","");A("border","border-width","border-style","border-color");if(z.border==="medium none"){delete z.border}}return z},serialize:function(p,r){var o="",n,q;function i(t){var x,u,s,v;x=f.styles[t];if(x){for(u=0,s=x.length;u<s;u++){t=x[u];v=p[t];if(v!==e&&v.length>0){o+=(o.length>0?" ":"")+t+": "+v+";"}}}}if(r&&f&&f.styles){i("*");i(r)}else{for(n in p){q=p[n];if(q!==e&&q.length>0){o+=(o.length>0?" ":"")+n+": "+q+";"}}}return o}}};(function(f){var a={},e=f.makeMap,g=f.each;function d(j,i){return j.split(i||",")}function h(m,l){var j,k={};function i(n){return n.replace(/[A-Z]+/g,function(o){return i(m[o])})}for(j in m){if(m.hasOwnProperty(j)){m[j]=i(m[j])}}i(l).replace(/#/g,"#text").replace(/(\w+)\[([^\]]+)\]\[([^\]]*)\]/g,function(q,o,n,p){n=d(n,"|");k[o]={attributes:e(n),attributesOrder:n,children:e(p,"|",{"#comment":{}})}});return k}function b(){var i=a.html5;if(!i){i=a.html5=h({A:"id|accesskey|class|dir|draggable|item|hidden|itemprop|role|spellcheck|style|subject|title|onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup",B:"#|a|abbr|area|audio|b|bdo|br|button|canvas|cite|code|command|datalist|del|dfn|em|embed|i|iframe|img|input|ins|kbd|keygen|label|link|map|mark|meta|meter|noscript|object|output|progress|q|ruby|samp|script|select|small|span|strong|sub|sup|svg|textarea|time|var|video|wbr",C:"#|a|abbr|area|address|article|aside|audio|b|bdo|blockquote|br|button|canvas|cite|code|command|datalist|del|details|dfn|dialog|div|dl|em|embed|fieldset|figure|footer|form|h1|h2|h3|h4|h5|h6|header|hgroup|hr|i|iframe|img|input|ins|kbd|keygen|label|link|map|mark|menu|meta|meter|nav|noscript|ol|object|output|p|pre|progress|q|ruby|samp|script|section|select|small|span|strong|style|sub|sup|svg|table|textarea|time|ul|var|video"},"html[A|manifest][body|head]head[A][base|command|link|meta|noscript|script|style|title]title[A][#]base[A|href|target][]link[A|href|rel|media|type|sizes][]meta[A|http-equiv|name|content|charset][]style[A|type|media|scoped][#]script[A|charset|type|src|defer|async][#]noscript[A][C]body[A][C]section[A][C]nav[A][C]article[A][C]aside[A][C]h1[A][B]h2[A][B]h3[A][B]h4[A][B]h5[A][B]h6[A][B]hgroup[A][h1|h2|h3|h4|h5|h6]header[A][C]footer[A][C]address[A][C]p[A][B]br[A][]pre[A][B]dialog[A][dd|dt]blockquote[A|cite][C]ol[A|start|reversed][li]ul[A][li]li[A|value][C]dl[A][dd|dt]dt[A][B]dd[A][C]a[A|href|target|ping|rel|media|type][B]em[A][B]strong[A][B]small[A][B]cite[A][B]q[A|cite][B]dfn[A][B]abbr[A][B]code[A][B]var[A][B]samp[A][B]kbd[A][B]sub[A][B]sup[A][B]i[A][B]b[A][B]mark[A][B]progress[A|value|max][B]meter[A|value|min|max|low|high|optimum][B]time[A|datetime][B]ruby[A][B|rt|rp]rt[A][B]rp[A][B]bdo[A][B]span[A][B]ins[A|cite|datetime][B]del[A|cite|datetime][B]figure[A][C|legend|figcaption]figcaption[A][C]img[A|alt|src|height|width|usemap|ismap][]iframe[A|name|src|height|width|sandbox|seamless][]embed[A|src|height|width|type][]object[A|data|type|height|width|usemap|name|form|classid][param]param[A|name|value][]details[A|open][C|legend]command[A|type|label|icon|disabled|checked|radiogroup][]menu[A|type|label][C|li]legend[A][C|B]div[A][C]source[A|src|type|media][]audio[A|src|autobuffer|autoplay|loop|controls][source]video[A|src|autobuffer|autoplay|loop|controls|width|height|poster][source]hr[A][]form[A|accept-charset|action|autocomplete|enctype|method|name|novalidate|target][C]fieldset[A|disabled|form|name][C|legend]label[A|form|for][B]input[A|type|accept|alt|autocomplete|autofocus|checked|disabled|form|formaction|formenctype|formmethod|formnovalidate|formtarget|height|list|max|maxlength|min|multiple|pattern|placeholder|readonly|required|size|src|step|width|files|value|name][]button[A|autofocus|disabled|form|formaction|formenctype|formmethod|formnovalidate|formtarget|name|value|type][B]select[A|autofocus|disabled|form|multiple|name|size][option|optgroup]datalist[A][B|option]optgroup[A|disabled|label][option]option[A|disabled|selected|label|value][]textarea[A|autofocus|disabled|form|maxlength|name|placeholder|readonly|required|rows|cols|wrap][]keygen[A|autofocus|challenge|disabled|form|keytype|name][]output[A|for|form|name][B]canvas[A|width|height][]map[A|name][B|C]area[A|shape|coords|href|alt|target|media|rel|ping|type][]mathml[A][]svg[A][]table[A|border][caption|colgroup|thead|tfoot|tbody|tr]caption[A][C]colgroup[A|span][col]col[A|span][]thead[A][tr]tfoot[A][tr]tbody[A][tr]tr[A][th|td]th[A|headers|rowspan|colspan|scope][B]td[A|headers|rowspan|colspan][C]wbr[A][]")}return i}function c(){var i=a.html4;if(!i){i=a.html4=h({Z:"H|K|N|O|P",Y:"X|form|R|Q",ZG:"E|span|width|align|char|charoff|valign",X:"p|T|div|U|W|isindex|fieldset|table",ZF:"E|align|char|charoff|valign",W:"pre|hr|blockquote|address|center|noframes",ZE:"abbr|axis|headers|scope|rowspan|colspan|align|char|charoff|valign|nowrap|bgcolor|width|height",ZD:"[E][S]",U:"ul|ol|dl|menu|dir",ZC:"p|Y|div|U|W|table|br|span|bdo|object|applet|img|map|K|N|Q",T:"h1|h2|h3|h4|h5|h6",ZB:"X|S|Q",S:"R|P",ZA:"a|G|J|M|O|P",R:"a|H|K|N|O",Q:"noscript|P",P:"ins|del|script",O:"input|select|textarea|label|button",N:"M|L",M:"em|strong|dfn|code|q|samp|kbd|var|cite|abbr|acronym",L:"sub|sup",K:"J|I",J:"tt|i|b|u|s|strike",I:"big|small|font|basefont",H:"G|F",G:"br|span|bdo",F:"object|applet|img|map|iframe",E:"A|B|C",D:"accesskey|tabindex|onfocus|onblur",C:"onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup",B:"lang|xml:lang|dir",A:"id|class|style|title"},"script[id|charset|type|language|src|defer|xml:space][]style[B|id|type|media|title|xml:space][]object[E|declare|classid|codebase|data|type|codetype|archive|standby|width|height|usemap|name|tabindex|align|border|hspace|vspace][#|param|Y]param[id|name|value|valuetype|type][]p[E|align][#|S]a[E|D|charset|type|name|href|hreflang|rel|rev|shape|coords|target][#|Z]br[A|clear][]span[E][#|S]bdo[A|C|B][#|S]applet[A|codebase|archive|code|object|alt|name|width|height|align|hspace|vspace][#|param|Y]h1[E|align][#|S]img[E|src|alt|name|longdesc|width|height|usemap|ismap|align|border|hspace|vspace][]map[B|C|A|name][X|form|Q|area]h2[E|align][#|S]iframe[A|longdesc|name|src|frameborder|marginwidth|marginheight|scrolling|align|width|height][#|Y]h3[E|align][#|S]tt[E][#|S]i[E][#|S]b[E][#|S]u[E][#|S]s[E][#|S]strike[E][#|S]big[E][#|S]small[E][#|S]font[A|B|size|color|face][#|S]basefont[id|size|color|face][]em[E][#|S]strong[E][#|S]dfn[E][#|S]code[E][#|S]q[E|cite][#|S]samp[E][#|S]kbd[E][#|S]var[E][#|S]cite[E][#|S]abbr[E][#|S]acronym[E][#|S]sub[E][#|S]sup[E][#|S]input[E|D|type|name|value|checked|disabled|readonly|size|maxlength|src|alt|usemap|onselect|onchange|accept|align][]select[E|name|size|multiple|disabled|tabindex|onfocus|onblur|onchange][optgroup|option]optgroup[E|disabled|label][option]option[E|selected|disabled|label|value][]textarea[E|D|name|rows|cols|disabled|readonly|onselect|onchange][]label[E|for|accesskey|onfocus|onblur][#|S]button[E|D|name|value|type|disabled][#|p|T|div|U|W|table|G|object|applet|img|map|K|N|Q]h4[E|align][#|S]ins[E|cite|datetime][#|Y]h5[E|align][#|S]del[E|cite|datetime][#|Y]h6[E|align][#|S]div[E|align][#|Y]ul[E|type|compact][li]li[E|type|value][#|Y]ol[E|type|compact|start][li]dl[E|compact][dt|dd]dt[E][#|S]dd[E][#|Y]menu[E|compact][li]dir[E|compact][li]pre[E|width|xml:space][#|ZA]hr[E|align|noshade|size|width][]blockquote[E|cite][#|Y]address[E][#|S|p]center[E][#|Y]noframes[E][#|Y]isindex[A|B|prompt][]fieldset[E][#|legend|Y]legend[E|accesskey|align][#|S]table[E|summary|width|border|frame|rules|cellspacing|cellpadding|align|bgcolor][caption|col|colgroup|thead|tfoot|tbody|tr]caption[E|align][#|S]col[ZG][]colgroup[ZG][col]thead[ZF][tr]tr[ZF|bgcolor][th|td]th[E|ZE][#|Y]form[E|action|method|name|enctype|onsubmit|onreset|accept|accept-charset|target][#|X|R|Q]noscript[E][#|Y]td[E|ZE][#|Y]tfoot[ZF][tr]tbody[ZF][tr]area[E|D|shape|coords|href|nohref|alt|target][]base[id|href|target][]body[E|onload|onunload|background|bgcolor|text|link|vlink|alink][#|Y]")}return i}f.html.Schema=function(A){var u=this,s={},k={},j=[],D,y;var o,q,z,r,v,n,p={};function m(F,E,H){var G=A[F];if(!G){G=a[F];if(!G){G=e(E," ",e(E.toUpperCase()," "));G=f.extend(G,H);a[F]=G}}else{G=e(G,",",e(G.toUpperCase()," "))}return G}A=A||{};y=A.schema=="html5"?b():c();if(A.verify_html===false){A.valid_elements="*[*]"}if(A.valid_styles){D={};g(A.valid_styles,function(F,E){D[E]=f.explode(F)})}o=m("whitespace_elements","pre script noscript style textarea");q=m("self_closing_elements","colgroup dd dt li option p td tfoot th thead tr");z=m("short_ended_elements","area base basefont br col frame hr img input isindex link meta param embed source wbr");r=m("boolean_attributes","checked compact declare defer disabled ismap multiple nohref noresize noshade nowrap readonly selected autoplay loop controls");n=m("non_empty_elements","td th iframe video audio object",z);textBlockElementsMap=m("text_block_elements","h1 h2 h3 h4 h5 h6 p div address pre form blockquote center dir fieldset header footer article section hgroup aside nav figure");v=m("block_elements","hr table tbody thead tfoot th tr td li ol ul caption dl dt dd noscript menu isindex samp option datalist select optgroup",textBlockElementsMap);function i(E){return new RegExp("^"+E.replace(/([?+*])/g,".$1")+"$")}function C(L){var K,G,Z,V,aa,F,I,U,X,Q,Y,ac,O,J,W,E,S,H,ab,ad,P,T,N=/^([#+\-])?([^\[\/]+)(?:\/([^\[]+))?(?:\[([^\]]+)\])?$/,R=/^([!\-])?(\w+::\w+|[^=:<]+)?(?:([=:<])(.*))?$/,M=/[*?+]/;if(L){L=d(L);if(s["@"]){S=s["@"].attributes;H=s["@"].attributesOrder}for(K=0,G=L.length;K<G;K++){F=N.exec(L[K]);if(F){W=F[1];Q=F[2];E=F[3];X=F[4];O={};J=[];I={attributes:O,attributesOrder:J};if(W==="#"){I.paddEmpty=true}if(W==="-"){I.removeEmpty=true}if(S){for(ad in S){O[ad]=S[ad]}J.push.apply(J,H)}if(X){X=d(X,"|");for(Z=0,V=X.length;Z<V;Z++){F=R.exec(X[Z]);if(F){U={};ac=F[1];Y=F[2].replace(/::/g,":");W=F[3];T=F[4];if(ac==="!"){I.attributesRequired=I.attributesRequired||[];I.attributesRequired.push(Y);U.required=true}if(ac==="-"){delete O[Y];J.splice(f.inArray(J,Y),1);continue}if(W){if(W==="="){I.attributesDefault=I.attributesDefault||[];I.attributesDefault.push({name:Y,value:T});U.defaultValue=T}if(W===":"){I.attributesForced=I.attributesForced||[];I.attributesForced.push({name:Y,value:T});U.forcedValue=T}if(W==="<"){U.validValues=e(T,"?")}}if(M.test(Y)){I.attributePatterns=I.attributePatterns||[];U.pattern=i(Y);I.attributePatterns.push(U)}else{if(!O[Y]){J.push(Y)}O[Y]=U}}}}if(!S&&Q=="@"){S=O;H=J}if(E){I.outputName=Q;s[E]=I}if(M.test(Q)){I.pattern=i(Q);j.push(I)}else{s[Q]=I}}}}}function t(E){s={};j=[];C(E);g(y,function(G,F){k[F]=G.children})}function l(F){var E=/^(~)?(.+)$/;if(F){g(d(F),function(J){var H=E.exec(J),I=H[1]==="~",K=I?"span":"div",G=H[2];k[G]=k[K];p[G]=K;if(!I){v[G.toUpperCase()]={};v[G]={}}if(!s[G]){s[G]=s[K]}g(k,function(L,M){if(L[K]){L[G]=L[K]}})})}}function x(F){var E=/^([+\-]?)(\w+)\[([^\]]+)\]$/;if(F){g(d(F),function(J){var I=E.exec(J),G,H;if(I){H=I[1];if(H){G=k[I[2]]}else{G=k[I[2]]={"#comment":{}}}G=k[I[2]];g(d(I[3],"|"),function(K){if(H==="-"){delete G[K]}else{G[K]={}}})}})}}function B(E){var G=s[E],F;if(G){return G}F=j.length;while(F--){G=j[F];if(G.pattern.test(E)){return G}}}if(!A.valid_elements){g(y,function(F,E){s[E]={attributes:F.attributes,attributesOrder:F.attributesOrder};k[E]=F.children});if(A.schema!="html5"){g(d("strong/b,em/i"),function(E){E=d(E,"/");s[E[1]].outputName=E[0]})}s.img.attributesDefault=[{name:"alt",value:""}];g(d("ol,ul,sub,sup,blockquote,span,font,a,table,tbody,tr,strong,em,b,i"),function(E){if(s[E]){s[E].removeEmpty=true}});g(d("p,h1,h2,h3,h4,h5,h6,th,td,pre,div,address,caption"),function(E){s[E].paddEmpty=true})}else{t(A.valid_elements)}l(A.custom_elements);x(A.valid_children);C(A.extended_valid_elements);x("+ol[ul|ol],+ul[ul|ol]");if(A.invalid_elements){f.each(f.explode(A.invalid_elements),function(E){if(s[E]){delete s[E]}})}if(!B("span")){C("span[!data-mce-type|*]")}u.children=k;u.styles=D;u.getBoolAttrs=function(){return r};u.getBlockElements=function(){return v};u.getTextBlockElements=function(){return textBlockElementsMap};u.getShortEndedElements=function(){return z};u.getSelfClosingElements=function(){return q};u.getNonEmptyElements=function(){return n};u.getWhiteSpaceElements=function(){return o};u.isValidChild=function(E,G){var F=k[E];return !!(F&&F[G])};u.isValid=function(F,E){var H,G,I=B(F);if(I){if(E){if(I.attributes[E]){return true}H=I.attributePatterns;if(H){G=H.length;while(G--){if(H[G].pattern.test(F)){return true}}}}else{return true}}return false};u.getElementRule=B;u.getCustomElements=function(){return p};u.addValidElements=C;u.setValidElements=t;u.addCustomElements=l;u.addValidChildren=x;u.elements=s}})(tinymce);(function(a){a.html.SaxParser=function(c,e){var b=this,d=function(){};c=c||{};b.schema=e=e||new a.html.Schema();if(c.fix_self_closing!==false){c.fix_self_closing=true}a.each("comment cdata text start end pi doctype".split(" "),function(f){if(f){b[f]=c[f]||d}});b.parse=function(E){var n=this,g,G=0,I,B,A=[],N,Q,C,r,z,s,M,H,O,v,m,k,t,R,o,P,F,S,L,f,J,l,D,K,h,x=0,j=a.html.Entities.decode,y,q;function u(T){var V,U;V=A.length;while(V--){if(A[V].name===T){break}}if(V>=0){for(U=A.length-1;U>=V;U--){T=A[U];if(T.valid){n.end(T.name)}}A.length=V}}function p(U,T,Y,X,W){var Z,V;T=T.toLowerCase();Y=T in H?T:j(Y||X||W||"");if(v&&!z&&T.indexOf("data-")!==0){Z=P[T];if(!Z&&F){V=F.length;while(V--){Z=F[V];if(Z.pattern.test(T)){break}}if(V===-1){Z=null}}if(!Z){return}if(Z.validValues&&!(Y in Z.validValues)){return}}N.map[T]=Y;N.push({name:T,value:Y})}l=new RegExp("<(?:(?:!--([\\w\\W]*?)-->)|(?:!\\[CDATA\\[([\\w\\W]*?)\\]\\]>)|(?:!DOCTYPE([\\w\\W]*?)>)|(?:\\?([^\\s\\/<>]+) ?([\\w\\W]*?)[?/]>)|(?:\\/([^>]+)>)|(?:([A-Za-z0-9\\-\\:\\.]+)((?:\\s+[^\"'>]+(?:(?:\"[^\"]*\")|(?:'[^']*')|[^>]*))*|\\/|\\s+)>))","g");D=/([\w:\-]+)(?:\s*=\s*(?:(?:\"((?:[^\"])*)\")|(?:\'((?:[^\'])*)\')|([^>\s]+)))?/g;K={script:/<\/script[^>]*>/gi,style:/<\/style[^>]*>/gi,noscript:/<\/noscript[^>]*>/gi};M=e.getShortEndedElements();J=c.self_closing_elements||e.getSelfClosingElements();H=e.getBoolAttrs();v=c.validate;s=c.remove_internals;y=c.fix_self_closing;q=a.isIE;o=/^:/;while(g=l.exec(E)){if(G<g.index){n.text(j(E.substr(G,g.index-G)))}if(I=g[6]){I=I.toLowerCase();if(q&&o.test(I)){I=I.substr(1)}u(I)}else{if(I=g[7]){I=I.toLowerCase();if(q&&o.test(I)){I=I.substr(1)}O=I in M;if(y&&J[I]&&A.length>0&&A[A.length-1].name===I){u(I)}if(!v||(m=e.getElementRule(I))){k=true;if(v){P=m.attributes;F=m.attributePatterns}if(R=g[8]){z=R.indexOf("data-mce-type")!==-1;if(z&&s){k=false}N=[];N.map={};R.replace(D,p)}else{N=[];N.map={}}if(v&&!z){S=m.attributesRequired;L=m.attributesDefault;f=m.attributesForced;if(f){Q=f.length;while(Q--){t=f[Q];r=t.name;h=t.value;if(h==="{$uid}"){h="mce_"+x++}N.map[r]=h;N.push({name:r,value:h})}}if(L){Q=L.length;while(Q--){t=L[Q];r=t.name;if(!(r in N.map)){h=t.value;if(h==="{$uid}"){h="mce_"+x++}N.map[r]=h;N.push({name:r,value:h})}}}if(S){Q=S.length;while(Q--){if(S[Q] in N.map){break}}if(Q===-1){k=false}}if(N.map["data-mce-bogus"]){k=false}}if(k){n.start(I,N,O)}}else{k=false}if(B=K[I]){B.lastIndex=G=g.index+g[0].length;if(g=B.exec(E)){if(k){C=E.substr(G,g.index-G)}G=g.index+g[0].length}else{C=E.substr(G);G=E.length}if(k&&C.length>0){n.text(C,true)}if(k){n.end(I)}l.lastIndex=G;continue}if(!O){if(!R||R.indexOf("/")!=R.length-1){A.push({name:I,valid:k})}else{if(k){n.end(I)}}}}else{if(I=g[1]){n.comment(I)}else{if(I=g[2]){n.cdata(I)}else{if(I=g[3]){n.doctype(I)}else{if(I=g[4]){n.pi(I,g[5])}}}}}}G=g.index+g[0].length}if(G<E.length){n.text(j(E.substr(G)))}for(Q=A.length-1;Q>=0;Q--){I=A[Q];if(I.valid){n.end(I.name)}}}}})(tinymce);(function(d){var c=/^[ \t\r\n]*$/,e={"#text":3,"#comment":8,"#cdata":4,"#pi":7,"#doctype":10,"#document-fragment":11};function a(k,l,j){var i,h,f=j?"lastChild":"firstChild",g=j?"prev":"next";if(k[f]){return k[f]}if(k!==l){i=k[g];if(i){return i}for(h=k.parent;h&&h!==l;h=h.parent){i=h[g];if(i){return i}}}}function b(f,g){this.name=f;this.type=g;if(g===1){this.attributes=[];this.attributes.map={}}}d.extend(b.prototype,{replace:function(g){var f=this;if(g.parent){g.remove()}f.insert(g,f);f.remove();return f},attr:function(h,l){var f=this,g,j,k;if(typeof h!=="string"){for(j in h){f.attr(j,h[j])}return f}if(g=f.attributes){if(l!==k){if(l===null){if(h in g.map){delete g.map[h];j=g.length;while(j--){if(g[j].name===h){g=g.splice(j,1);return f}}}return f}if(h in g.map){j=g.length;while(j--){if(g[j].name===h){g[j].value=l;break}}}else{g.push({name:h,value:l})}g.map[h]=l;return f}else{return g.map[h]}}},clone:function(){var g=this,n=new b(g.name,g.type),h,f,m,j,k;if(m=g.attributes){k=[];k.map={};for(h=0,f=m.length;h<f;h++){j=m[h];if(j.name!=="id"){k[k.length]={name:j.name,value:j.value};k.map[j.name]=j.value}}n.attributes=k}n.value=g.value;n.shortEnded=g.shortEnded;return n},wrap:function(g){var f=this;f.parent.insert(g,f);g.append(f);return f},unwrap:function(){var f=this,h,g;for(h=f.firstChild;h;){g=h.next;f.insert(h,f,true);h=g}f.remove()},remove:function(){var f=this,h=f.parent,g=f.next,i=f.prev;if(h){if(h.firstChild===f){h.firstChild=g;if(g){g.prev=null}}else{i.next=g}if(h.lastChild===f){h.lastChild=i;if(i){i.next=null}}else{g.prev=i}f.parent=f.next=f.prev=null}return f},append:function(h){var f=this,g;if(h.parent){h.remove()}g=f.lastChild;if(g){g.next=h;h.prev=g;f.lastChild=h}else{f.lastChild=f.firstChild=h}h.parent=f;return h},insert:function(h,f,i){var g;if(h.parent){h.remove()}g=f.parent||this;if(i){if(f===g.firstChild){g.firstChild=h}else{f.prev.next=h}h.prev=f.prev;h.next=f;f.prev=h}else{if(f===g.lastChild){g.lastChild=h}else{f.next.prev=h}h.next=f.next;h.prev=f;f.next=h}h.parent=g;return h},getAll:function(g){var f=this,h,i=[];for(h=f.firstChild;h;h=a(h,f)){if(h.name===g){i.push(h)}}return i},empty:function(){var g=this,f,h,j;if(g.firstChild){f=[];for(j=g.firstChild;j;j=a(j,g)){f.push(j)}h=f.length;while(h--){j=f[h];j.parent=j.firstChild=j.lastChild=j.next=j.prev=null}}g.firstChild=g.lastChild=null;return g},isEmpty:function(k){var f=this,j=f.firstChild,h,g;if(j){do{if(j.type===1){if(j.attributes.map["data-mce-bogus"]){continue}if(k[j.name]){return false}h=j.attributes.length;while(h--){g=j.attributes[h].name;if(g==="name"||g.indexOf("data-mce-")===0){return false}}}if(j.type===8){return false}if((j.type===3&&!c.test(j.value))){return false}}while(j=a(j,f))}return true},walk:function(f){return a(this,null,f)}});d.extend(b,{create:function(g,f){var i,h;i=new b(g,e[g]||1);if(f){for(h in f){i.attr(h,f[h])}}return i}});d.html.Node=b})(tinymce);(function(b){var a=b.html.Node;b.html.DomParser=function(g,h){var f=this,e={},d=[],i={},c={};g=g||{};g.validate="validate" in g?g.validate:true;g.root_name=g.root_name||"body";f.schema=h=h||new b.html.Schema();function j(n){var p,q,y,x,A,o,r,l,u,v,k,t,m,z,s;t=b.makeMap("tr,td,th,tbody,thead,tfoot,table");k=h.getNonEmptyElements();m=h.getTextBlockElements();for(p=0;p<n.length;p++){q=n[p];if(!q.parent||q.fixed){continue}if(m[q.name]&&q.parent.name=="li"){z=q.next;while(z){if(m[z.name]){z.name="li";z.fixed=true;q.parent.insert(z,q.parent)}else{break}z=z.next}q.unwrap(q);continue}x=[q];for(y=q.parent;y&&!h.isValidChild(y.name,q.name)&&!t[y.name];y=y.parent){x.push(y)}if(y&&x.length>1){x.reverse();A=o=f.filterNode(x[0].clone());for(u=0;u<x.length-1;u++){if(h.isValidChild(o.name,x[u].name)){r=f.filterNode(x[u].clone());o.append(r)}else{r=o}for(l=x[u].firstChild;l&&l!=x[u+1];){s=l.next;r.append(l);l=s}o=r}if(!A.isEmpty(k)){y.insert(A,x[0],true);y.insert(q,A)}else{y.insert(q,x[0],true)}y=x[0];if(y.isEmpty(k)||y.firstChild===y.lastChild&&y.firstChild.name==="br"){y.empty().remove()}}else{if(q.parent){if(q.name==="li"){z=q.prev;if(z&&(z.name==="ul"||z.name==="ul")){z.append(q);continue}z=q.next;if(z&&(z.name==="ul"||z.name==="ul")){z.insert(q,z.firstChild,true);continue}q.wrap(f.filterNode(new a("ul",1)));continue}if(h.isValidChild(q.parent.name,"div")&&h.isValidChild("div",q.name)){q.wrap(f.filterNode(new a("div",1)))}else{if(q.name==="style"||q.name==="script"){q.empty().remove()}else{q.unwrap()}}}}}}f.filterNode=function(m){var l,k,n;if(k in e){n=i[k];if(n){n.push(m)}else{i[k]=[m]}}l=d.length;while(l--){k=d[l].name;if(k in m.attributes.map){n=c[k];if(n){n.push(m)}else{c[k]=[m]}}}return m};f.addNodeFilter=function(k,l){b.each(b.explode(k),function(m){var n=e[m];if(!n){e[m]=n=[]}n.push(l)})};f.addAttributeFilter=function(k,l){b.each(b.explode(k),function(m){var n;for(n=0;n<d.length;n++){if(d[n].name===m){d[n].callbacks.push(l);return}}d.push({name:m,callbacks:[l]})})};f.parse=function(v,m){var n,J,B,A,D,C,x,r,F,N,z,o,E,M=[],L,t,k,y,s,p,u,q;m=m||{};i={};c={};o=b.extend(b.makeMap("script,style,head,html,body,title,meta,param"),h.getBlockElements());u=h.getNonEmptyElements();p=h.children;z=g.validate;q="forced_root_block" in m?m.forced_root_block:g.forced_root_block;s=h.getWhiteSpaceElements();E=/^[ \t\r\n]+/;t=/[ \t\r\n]+$/;k=/[ \t\r\n]+/g;y=/^[ \t\r\n]+$/;function G(){var O=J.firstChild,l,P;while(O){l=O.next;if(O.type==3||(O.type==1&&O.name!=="p"&&!o[O.name]&&!O.attr("data-mce-type"))){if(!P){P=K(q,1);J.insert(P,O);P.append(O)}else{P.append(O)}}else{P=null}O=l}}function K(l,O){var P=new a(l,O),Q;if(l in e){Q=i[l];if(Q){Q.push(P)}else{i[l]=[P]}}return P}function I(P){var Q,l,O;for(Q=P.prev;Q&&Q.type===3;){l=Q.value.replace(t,"");if(l.length>0){Q.value=l;Q=Q.prev}else{O=Q.prev;Q.remove();Q=O}}}function H(O){var P,l={};for(P in O){if(P!=="li"&&P!="p"){l[P]=O[P]}}return l}n=new b.html.SaxParser({validate:z,self_closing_elements:H(h.getSelfClosingElements()),cdata:function(l){B.append(K("#cdata",4)).value=l},text:function(P,l){var O;if(!L){P=P.replace(k," ");if(B.lastChild&&o[B.lastChild.name]){P=P.replace(E,"")}}if(P.length!==0){O=K("#text",3);O.raw=!!l;B.append(O).value=P}},comment:function(l){B.append(K("#comment",8)).value=l},pi:function(l,O){B.append(K(l,7)).value=O;I(B)},doctype:function(O){var l;l=B.append(K("#doctype",10));l.value=O;I(B)},start:function(l,W,P){var U,R,Q,O,S,X,V,T;Q=z?h.getElementRule(l):{};if(Q){U=K(Q.outputName||l,1);U.attributes=W;U.shortEnded=P;B.append(U);T=p[B.name];if(T&&p[U.name]&&!T[U.name]){M.push(U)}R=d.length;while(R--){S=d[R].name;if(S in W.map){F=c[S];if(F){F.push(U)}else{c[S]=[U]}}}if(o[l]){I(U)}if(!P){B=U}if(!L&&s[l]){L=true}}},end:function(l){var S,P,R,O,Q;P=z?h.getElementRule(l):{};if(P){if(o[l]){if(!L){S=B.firstChild;if(S&&S.type===3){R=S.value.replace(E,"");if(R.length>0){S.value=R;S=S.next}else{O=S.next;S.remove();S=O}while(S&&S.type===3){R=S.value;O=S.next;if(R.length===0||y.test(R)){S.remove();S=O}S=O}}S=B.lastChild;if(S&&S.type===3){R=S.value.replace(t,"");if(R.length>0){S.value=R;S=S.prev}else{O=S.prev;S.remove();S=O}while(S&&S.type===3){R=S.value;O=S.prev;if(R.length===0||y.test(R)){S.remove();S=O}S=O}}}}if(L&&s[l]){L=false}if(P.removeEmpty||P.paddEmpty){if(B.isEmpty(u)){if(P.paddEmpty){B.empty().append(new a("#text","3")).value="\u00a0"}else{if(!B.attributes.map.name&&!B.attributes.map.id){Q=B.parent;B.empty().remove();B=Q;return}}}}B=B.parent}}},h);J=B=new a(m.context||g.root_name,11);n.parse(v);if(z&&M.length){if(!m.context){j(M)}else{m.invalid=true}}if(q&&J.name=="body"){G()}if(!m.invalid){for(N in i){F=e[N];A=i[N];x=A.length;while(x--){if(!A[x].parent){A.splice(x,1)}}for(D=0,C=F.length;D<C;D++){F[D](A,N,m)}}for(D=0,C=d.length;D<C;D++){F=d[D];if(F.name in c){A=c[F.name];x=A.length;while(x--){if(!A[x].parent){A.splice(x,1)}}for(x=0,r=F.callbacks.length;x<r;x++){F.callbacks[x](A,F.name,m)}}}}return J};if(g.remove_trailing_brs){f.addNodeFilter("br",function(n,m){var r,q=n.length,o,v=b.extend({},h.getBlockElements()),k=h.getNonEmptyElements(),t,s,p,u;v.body=1;for(r=0;r<q;r++){o=n[r];t=o.parent;if(v[o.parent.name]&&o===t.lastChild){p=o.prev;while(p){u=p.name;if(u!=="span"||p.attr("data-mce-type")!=="bookmark"){if(u!=="br"){break}if(u==="br"){o=null;break}}p=p.prev}if(o){o.remove();if(t.isEmpty(k)){elementRule=h.getElementRule(t.name);if(elementRule){if(elementRule.removeEmpty){t.remove()}else{if(elementRule.paddEmpty){t.empty().append(new b.html.Node("#text",3)).value="\u00a0"}}}}}}else{s=o;while(t.firstChild===s&&t.lastChild===s){s=t;if(v[t.name]){break}t=t.parent}if(s===t){textNode=new b.html.Node("#text",3);textNode.value="\u00a0";o.replace(textNode)}}}})}if(!g.allow_html_in_named_anchor){f.addAttributeFilter("id,name",function(k,l){var n=k.length,p,m,o,q;while(n--){q=k[n];if(q.name==="a"&&q.firstChild&&!q.attr("href")){o=q.parent;p=q.lastChild;do{m=p.prev;o.insert(p,q);p=m}while(p)}}})}}})(tinymce);tinymce.html.Writer=function(e){var c=[],a,b,d,f,g;e=e||{};a=e.indent;b=tinymce.makeMap(e.indent_before||"");d=tinymce.makeMap(e.indent_after||"");f=tinymce.html.Entities.getEncodeFunc(e.entity_encoding||"raw",e.entities);g=e.element_format=="html";return{start:function(m,k,p){var n,j,h,o;if(a&&b[m]&&c.length>0){o=c[c.length-1];if(o.length>0&&o!=="\n"){c.push("\n")}}c.push("<",m);if(k){for(n=0,j=k.length;n<j;n++){h=k[n];c.push(" ",h.name,'="',f(h.value,true),'"')}}if(!p||g){c[c.length]=">"}else{c[c.length]=" />"}if(p&&a&&d[m]&&c.length>0){o=c[c.length-1];if(o.length>0&&o!=="\n"){c.push("\n")}}},end:function(h){var i;c.push("</",h,">");if(a&&d[h]&&c.length>0){i=c[c.length-1];if(i.length>0&&i!=="\n"){c.push("\n")}}},text:function(i,h){if(i.length>0){c[c.length]=h?i:f(i)}},cdata:function(h){c.push("<![CDATA[",h,"]]>")},comment:function(h){c.push("<!--",h,"-->")},pi:function(h,i){if(i){c.push("<?",h," ",i,"?>")}else{c.push("<?",h,"?>")}if(a){c.push("\n")}},doctype:function(h){c.push("<!DOCTYPE",h,">",a?"\n":"")},reset:function(){c.length=0},getContent:function(){return c.join("").replace(/\n$/,"")}}};(function(a){a.html.Serializer=function(c,d){var b=this,e=new a.html.Writer(c);c=c||{};c.validate="validate" in c?c.validate:true;b.schema=d=d||new a.html.Schema();b.writer=e;b.serialize=function(h){var g,i;i=c.validate;g={3:function(k,j){e.text(k.value,k.raw)},8:function(j){e.comment(j.value)},7:function(j){e.pi(j.name,j.value)},10:function(j){e.doctype(j.value)},4:function(j){e.cdata(j.value)},11:function(j){if((j=j.firstChild)){do{f(j)}while(j=j.next)}}};e.reset();function f(k){var t=g[k.type],j,o,s,r,p,u,n,m,q;if(!t){j=k.name;o=k.shortEnded;s=k.attributes;if(i&&s&&s.length>1){u=[];u.map={};q=d.getElementRule(k.name);for(n=0,m=q.attributesOrder.length;n<m;n++){r=q.attributesOrder[n];if(r in s.map){p=s.map[r];u.map[r]=p;u.push({name:r,value:p})}}for(n=0,m=s.length;n<m;n++){r=s[n].name;if(!(r in u.map)){p=s.map[r];u.map[r]=p;u.push({name:r,value:p})}}s=u}e.start(k.name,s,o);if(!o){if((k=k.firstChild)){do{f(k)}while(k=k.next)}e.end(j)}}else{t(k)}}if(h.type==1&&!c.inner){f(h)}else{g[11](h)}return e.getContent()}}})(tinymce);tinymce.dom={};(function(b,h){var g=!!document.addEventListener;function c(k,j,l,i){if(k.addEventListener){k.addEventListener(j,l,i||false)}else{if(k.attachEvent){k.attachEvent("on"+j,l)}}}function e(k,j,l,i){if(k.removeEventListener){k.removeEventListener(j,l,i||false)}else{if(k.detachEvent){k.detachEvent("on"+j,l)}}}function a(n,l){var i,k=l||{};function j(){return false}function m(){return true}for(i in n){if(i!=="layerX"&&i!=="layerY"){k[i]=n[i]}}if(!k.target){k.target=k.srcElement||document}k.preventDefault=function(){k.isDefaultPrevented=m;if(n){if(n.preventDefault){n.preventDefault()}else{n.returnValue=false}}};k.stopPropagation=function(){k.isPropagationStopped=m;if(n){if(n.stopPropagation){n.stopPropagation()}else{n.cancelBubble=true}}};k.stopImmediatePropagation=function(){k.isImmediatePropagationStopped=m;k.stopPropagation()};if(!k.isDefaultPrevented){k.isDefaultPrevented=j;k.isPropagationStopped=j;k.isImmediatePropagationStopped=j}return k}function d(m,n,l){var k=m.document,j={type:"ready"};function i(){if(!l.domLoaded){l.domLoaded=true;n(j)}}if(k.readyState=="complete"){i();return}if(g){c(m,"DOMContentLoaded",i)}else{c(k,"readystatechange",function(){if(k.readyState==="complete"){e(k,"readystatechange",arguments.callee);i()}});if(k.documentElement.doScroll&&m===m.top){(function(){try{k.documentElement.doScroll("left")}catch(o){setTimeout(arguments.callee,0);return}i()})()}}c(m,"load",i)}function f(k){var q=this,p={},i,o,n,m,l;m="onmouseenter" in document.documentElement;n="onfocusin" in document.documentElement;l={mouseenter:"mouseover",mouseleave:"mouseout"};i=1;q.domLoaded=false;q.events=p;function j(t,x){var s,u,r,v;s=p[x][t.type];if(s){for(u=0,r=s.length;u<r;u++){v=s[u];if(v&&v.func.call(v.scope,t)===false){t.preventDefault()}if(t.isImmediatePropagationStopped()){return}}}}q.bind=function(x,A,D,E){var s,t,u,r,B,z,C,v=window;function y(F){j(a(F||v.event),s)}if(!x||x.nodeType===3||x.nodeType===8){return}if(!x[h]){s=i++;x[h]=s;p[s]={}}else{s=x[h];if(!p[s]){p[s]={}}}E=E||x;A=A.split(" ");u=A.length;while(u--){r=A[u];z=y;B=C=false;if(r==="DOMContentLoaded"){r="ready"}if((q.domLoaded||x.readyState=="complete")&&r==="ready"){q.domLoaded=true;D.call(E,a({type:r}));continue}if(!m){B=l[r];if(B){z=function(F){var H,G;H=F.currentTarget;G=F.relatedTarget;if(G&&H.contains){G=H.contains(G)}else{while(G&&G!==H){G=G.parentNode}}if(!G){F=a(F||v.event);F.type=F.type==="mouseout"?"mouseleave":"mouseenter";F.target=H;j(F,s)}}}}if(!n&&(r==="focusin"||r==="focusout")){C=true;B=r==="focusin"?"focus":"blur";z=function(F){F=a(F||v.event);F.type=F.type==="focus"?"focusin":"focusout";j(F,s)}}t=p[s][r];if(!t){p[s][r]=t=[{func:D,scope:E}];t.fakeName=B;t.capture=C;t.nativeHandler=z;if(!g){t.proxyHandler=k(s)}if(r==="ready"){d(x,z,q)}else{c(x,B||r,g?z:t.proxyHandler,C)}}else{t.push({func:D,scope:E})}}x=t=0;return D};q.unbind=function(x,z,A){var s,u,v,B,r,t;if(!x||x.nodeType===3||x.nodeType===8){return q}s=x[h];if(s){t=p[s];if(z){z=z.split(" ");v=z.length;while(v--){r=z[v];u=t[r];if(u){if(A){B=u.length;while(B--){if(u[B].func===A){u.splice(B,1)}}}if(!A||u.length===0){delete t[r];e(x,u.fakeName||r,g?u.nativeHandler:u.proxyHandler,u.capture)}}}}else{for(r in t){u=t[r];e(x,u.fakeName||r,g?u.nativeHandler:u.proxyHandler,u.capture)}t={}}for(r in t){return q}delete p[s];try{delete x[h]}catch(y){x[h]=null}}return q};q.fire=function(u,s,r){var v,t;if(!u||u.nodeType===3||u.nodeType===8){return q}t=a(null,r);t.type=s;do{v=u[h];if(v){j(t,v)}u=u.parentNode||u.ownerDocument||u.defaultView||u.parentWindow}while(u&&!t.isPropagationStopped());return q};q.clean=function(u){var s,r,t=q.unbind;if(!u||u.nodeType===3||u.nodeType===8){return q}if(u[h]){t(u)}if(!u.getElementsByTagName){u=u.document}if(u&&u.getElementsByTagName){t(u);r=u.getElementsByTagName("*");s=r.length;while(s--){u=r[s];if(u[h]){t(u)}}}return q};q.callNativeHandler=function(s,r){if(p){p[s][r.type].nativeHandler(r)}};q.destory=function(){p={}};q.add=function(v,s,u,t){if(typeof(v)==="string"){v=document.getElementById(v)}if(v&&v instanceof Array){var r=v.length;while(r--){q.add(v[r],s,u,t)}return}if(s==="init"){s="ready"}return q.bind(v,s instanceof Array?s.join(" "):s,u,t)};q.remove=function(v,s,u,t){if(!v){return q}if(typeof(v)==="string"){v=document.getElementById(v)}if(v instanceof Array){var r=v.length;while(r--){q.remove(v[r],s,u,t)}return q}return q.unbind(v,s instanceof Array?s.join(" "):s,u)};q.clear=function(r){if(typeof(r)==="string"){r=document.getElementById(r)}return q.clean(r)};q.cancel=function(r){if(r){q.prevent(r);q.stop(r)}return false};q.prevent=function(r){if(!r.preventDefault){r=a(r)}r.preventDefault();return false};q.stop=function(r){if(!r.stopPropagation){r=a(r)}r.stopPropagation();return false}}b.EventUtils=f;b.Event=new f(function(i){return function(j){tinymce.dom.Event.callNativeHandler(i,j)}});b.Event.bind(window,"ready",function(){});b=0})(tinymce.dom,"data-mce-expando");tinymce.dom.TreeWalker=function(a,c){var b=a;function d(i,f,e,j){var h,g;if(i){if(!j&&i[f]){return i[f]}if(i!=c){h=i[e];if(h){return h}for(g=i.parentNode;g&&g!=c;g=g.parentNode){h=g[e];if(h){return h}}}}}this.current=function(){return b};this.next=function(e){return(b=d(b,"firstChild","nextSibling",e))};this.prev=function(e){return(b=d(b,"lastChild","previousSibling",e))}};(function(e){var g=e.each,d=e.is,f=e.isWebKit,b=e.isIE,h=e.html.Entities,c=/^([a-z0-9],?)+$/i,a=/^[ \t\r\n]*$/;e.create("tinymce.dom.DOMUtils",{doc:null,root:null,files:null,pixelStyles:/^(top|left|bottom|right|width|height|borderWidth)$/,props:{"for":"htmlFor","class":"className",className:"className",checked:"checked",disabled:"disabled",maxlength:"maxLength",readonly:"readOnly",selected:"selected",value:"value",id:"id",name:"name",type:"type"},DOMUtils:function(o,l){var k=this,i,j,n;k.doc=o;k.win=window;k.files={};k.cssFlicker=false;k.counter=0;k.stdMode=!e.isIE||o.documentMode>=8;k.boxModel=!e.isIE||o.compatMode=="CSS1Compat"||k.stdMode;k.hasOuterHTML="outerHTML" in o.createElement("a");k.settings=l=e.extend({keep_values:false,hex_colors:1},l);k.schema=l.schema;k.styles=new e.html.Styles({url_converter:l.url_converter,url_converter_scope:l.url_converter_scope},l.schema);if(e.isIE6){try{o.execCommand("BackgroundImageCache",false,true)}catch(m){k.cssFlicker=true}}k.fixDoc(o);k.events=l.ownEvents?new e.dom.EventUtils(l.proxy):e.dom.Event;e.addUnload(k.destroy,k);n=l.schema?l.schema.getBlockElements():{};k.isBlock=function(q){if(!q){return false}var p=q.nodeType;if(p){return !!(p===1&&n[q.nodeName])}return !!n[q]}},fixDoc:function(k){var j=this.settings,i;if(b&&j.schema){("abbr article aside audio canvas details figcaption figure footer header hgroup mark menu meter nav output progress section summary time video").replace(/\w+/g,function(l){k.createElement(l)});for(i in j.schema.getCustomElements()){k.createElement(i)}}},clone:function(k,i){var j=this,m,l;if(!b||k.nodeType!==1||i){return k.cloneNode(i)}l=j.doc;if(!i){m=l.createElement(k.nodeName);g(j.getAttribs(k),function(n){j.setAttrib(m,n.nodeName,j.getAttrib(k,n.nodeName))});return m}return m.firstChild},getRoot:function(){var i=this,j=i.settings;return(j&&i.get(j.root_element))||i.doc.body},getViewPort:function(j){var k,i;j=!j?this.win:j;k=j.document;i=this.boxModel?k.documentElement:k.body;return{x:j.pageXOffset||i.scrollLeft,y:j.pageYOffset||i.scrollTop,w:j.innerWidth||i.clientWidth,h:j.innerHeight||i.clientHeight}},getRect:function(l){var k,i=this,j;l=i.get(l);k=i.getPos(l);j=i.getSize(l);return{x:k.x,y:k.y,w:j.w,h:j.h}},getSize:function(l){var j=this,i,k;l=j.get(l);i=j.getStyle(l,"width");k=j.getStyle(l,"height");if(i.indexOf("px")===-1){i=0}if(k.indexOf("px")===-1){k=0}return{w:parseInt(i,10)||l.offsetWidth||l.clientWidth,h:parseInt(k,10)||l.offsetHeight||l.clientHeight}},getParent:function(k,j,i){return this.getParents(k,j,i,false)},getParents:function(s,m,k,q){var j=this,i,l=j.settings,p=[];s=j.get(s);q=q===undefined;if(l.strict_root){k=k||j.getRoot()}if(d(m,"string")){i=m;if(m==="*"){m=function(o){return o.nodeType==1}}else{m=function(o){return j.is(o,i)}}}while(s){if(s==k||!s.nodeType||s.nodeType===9){break}if(!m||m(s)){if(q){p.push(s)}else{return s}}s=s.parentNode}return q?p:null},get:function(i){var j;if(i&&this.doc&&typeof(i)=="string"){j=i;i=this.doc.getElementById(i);if(i&&i.id!==j){return this.doc.getElementsByName(j)[1]}}return i},getNext:function(j,i){return this._findSib(j,i,"nextSibling")},getPrev:function(j,i){return this._findSib(j,i,"previousSibling")},select:function(k,j){var i=this;return e.dom.Sizzle(k,i.get(j)||i.get(i.settings.root_element)||i.doc,[])},is:function(l,j){var k;if(l.length===undefined){if(j==="*"){return l.nodeType==1}if(c.test(j)){j=j.toLowerCase().split(/,/);l=l.nodeName.toLowerCase();for(k=j.length-1;k>=0;k--){if(j[k]==l){return true}}return false}}return e.dom.Sizzle.matches(j,l.nodeType?[l]:l).length>0},add:function(l,o,i,k,m){var j=this;return this.run(l,function(r){var q,n;q=d(o,"string")?j.doc.createElement(o):o;j.setAttribs(q,i);if(k){if(k.nodeType){q.appendChild(k)}else{j.setHTML(q,k)}}return !m?r.appendChild(q):q})},create:function(k,i,j){return this.add(this.doc.createElement(k),k,i,j,1)},createHTML:function(q,i,m){var p="",l=this,j;p+="<"+q;for(j in i){if(i.hasOwnProperty(j)){p+=" "+j+'="'+l.encode(i[j])+'"'}}if(typeof(m)!="undefined"){return p+">"+m+"</"+q+">"}return p+" />"},remove:function(i,j){return this.run(i,function(l){var m,k=l.parentNode;if(!k){return null}if(j){while(m=l.firstChild){if(!e.isIE||m.nodeType!==3||m.nodeValue){k.insertBefore(m,l)}else{l.removeChild(m)}}}return k.removeChild(l)})},setStyle:function(l,i,j){var k=this;return k.run(l,function(o){var n,m;n=o.style;i=i.replace(/-(\D)/g,function(q,p){return p.toUpperCase()});if(k.pixelStyles.test(i)&&(e.is(j,"number")||/^[\-0-9\.]+$/.test(j))){j+="px"}switch(i){case"opacity":if(b){n.filter=j===""?"":"alpha(opacity="+(j*100)+")";if(!l.currentStyle||!l.currentStyle.hasLayout){n.display="inline-block"}}n[i]=n["-moz-opacity"]=n["-khtml-opacity"]=j||"";break;case"float":b?n.styleFloat=j:n.cssFloat=j;break;default:n[i]=j||""}if(k.settings.update_styles){k.setAttrib(o,"data-mce-style")}})},getStyle:function(l,i,k){l=this.get(l);if(!l){return}if(this.doc.defaultView&&k){i=i.replace(/[A-Z]/g,function(m){return"-"+m});try{return this.doc.defaultView.getComputedStyle(l,null).getPropertyValue(i)}catch(j){return null}}i=i.replace(/-(\D)/g,function(n,m){return m.toUpperCase()});if(i=="float"){i=b?"styleFloat":"cssFloat"}if(l.currentStyle&&k){return l.currentStyle[i]}return l.style?l.style[i]:undefined},setStyles:function(l,m){var j=this,k=j.settings,i;i=k.update_styles;k.update_styles=0;g(m,function(o,p){j.setStyle(l,p,o)});k.update_styles=i;if(k.update_styles){j.setAttrib(l,k.cssText)}},removeAllAttribs:function(i){return this.run(i,function(l){var k,j=l.attributes;for(k=j.length-1;k>=0;k--){l.removeAttributeNode(j.item(k))}})},setAttrib:function(k,l,i){var j=this;if(!k||!l){return}if(j.settings.strict){l=l.toLowerCase()}return this.run(k,function(p){var o=j.settings;var m=p.getAttribute(l);if(i!==null){switch(l){case"style":if(!d(i,"string")){g(i,function(q,r){j.setStyle(p,r,q)});return}if(o.keep_values){if(i&&!j._isRes(i)){p.setAttribute("data-mce-style",i,2)}else{p.removeAttribute("data-mce-style",2)}}p.style.cssText=i;break;case"class":p.className=i||"";break;case"src":case"href":if(o.keep_values){if(o.url_converter){i=o.url_converter.call(o.url_converter_scope||j,i,l,p)}j.setAttrib(p,"data-mce-"+l,i,2)}break;case"shape":p.setAttribute("data-mce-style",i);break}}if(d(i)&&i!==null&&i.length!==0){p.setAttribute(l,""+i,2)}else{p.removeAttribute(l,2)}if(tinyMCE.activeEditor&&m!=i){var n=tinyMCE.activeEditor;n.onSetAttrib.dispatch(n,p,l,i)}})},setAttribs:function(j,k){var i=this;return this.run(j,function(l){g(k,function(m,o){i.setAttrib(l,o,m)})})},getAttrib:function(m,o,k){var i,j=this,l;m=j.get(m);if(!m||m.nodeType!==1){return k===l?false:k}if(!d(k)){k=""}if(/^(src|href|style|coords|shape)$/.test(o)){i=m.getAttribute("data-mce-"+o);if(i){return i}}if(b&&j.props[o]){i=m[j.props[o]];i=i&&i.nodeValue?i.nodeValue:i}if(!i){i=m.getAttribute(o,2)}if(/^(checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)$/.test(o)){if(m[j.props[o]]===true&&i===""){return o}return i?o:""}if(m.nodeName==="FORM"&&m.getAttributeNode(o)){return m.getAttributeNode(o).nodeValue}if(o==="style"){i=i||m.style.cssText;if(i){i=j.serializeStyle(j.parseStyle(i),m.nodeName);if(j.settings.keep_values&&!j._isRes(i)){m.setAttribute("data-mce-style",i)}}}if(f&&o==="class"&&i){i=i.replace(/(apple|webkit)\-[a-z\-]+/gi,"")}if(b){switch(o){case"rowspan":case"colspan":if(i===1){i=""}break;case"size":if(i==="+0"||i===20||i===0){i=""}break;case"width":case"height":case"vspace":case"checked":case"disabled":case"readonly":if(i===0){i=""}break;case"hspace":if(i===-1){i=""}break;case"maxlength":case"tabindex":if(i===32768||i===2147483647||i==="32768"){i=""}break;case"multiple":case"compact":case"noshade":case"nowrap":if(i===65535){return o}return k;case"shape":i=i.toLowerCase();break;default:if(o.indexOf("on")===0&&i){i=e._replace(/^function\s+\w+\(\)\s+\{\s+(.*)\s+\}$/,"$1",""+i)}}}return(i!==l&&i!==null&&i!=="")?""+i:k},getPos:function(q,l){var j=this,i=0,p=0,m,o=j.doc,k;q=j.get(q);l=l||o.body;if(q){if(q.getBoundingClientRect){q=q.getBoundingClientRect();m=j.boxModel?o.documentElement:o.body;i=q.left+(o.documentElement.scrollLeft||o.body.scrollLeft)-m.clientTop;p=q.top+(o.documentElement.scrollTop||o.body.scrollTop)-m.clientLeft;return{x:i,y:p}}k=q;while(k&&k!=l&&k.nodeType){i+=k.offsetLeft||0;p+=k.offsetTop||0;k=k.offsetParent}k=q.parentNode;while(k&&k!=l&&k.nodeType){i-=k.scrollLeft||0;p-=k.scrollTop||0;k=k.parentNode}}return{x:i,y:p}},parseStyle:function(i){return this.styles.parse(i)},serializeStyle:function(j,i){return this.styles.serialize(j,i)},addStyle:function(j){var k=this.doc,i;styleElm=k.getElementById("mceDefaultStyles");if(!styleElm){styleElm=k.createElement("style"),styleElm.id="mceDefaultStyles";styleElm.type="text/css";i=k.getElementsByTagName("head")[0];if(i.firstChild){i.insertBefore(styleElm,i.firstChild)}else{i.appendChild(styleElm)}}if(styleElm.styleSheet){styleElm.styleSheet.cssText+=j}else{styleElm.appendChild(k.createTextNode(j))}},loadCSS:function(i){var k=this,l=k.doc,j;if(!i){i=""}j=l.getElementsByTagName("head")[0];g(i.split(","),function(m){var n;if(k.files[m]){return}k.files[m]=true;n=k.create("link",{rel:"stylesheet",href:e._addVer(m)});if(b&&l.documentMode&&l.recalc){n.onload=function(){if(l.recalc){l.recalc()}n.onload=null}}j.appendChild(n)})},addClass:function(i,j){return this.run(i,function(k){var l;if(!j){return 0}if(this.hasClass(k,j)){return k.className}l=this.removeClass(k,j);return k.className=(l!=""?(l+" "):"")+j})},removeClass:function(k,l){var i=this,j;return i.run(k,function(n){var m;if(i.hasClass(n,l)){if(!j){j=new RegExp("(^|\\s+)"+l+"(\\s+|$)","g")}m=n.className.replace(j," ");m=e.trim(m!=" "?m:"");n.className=m;if(!m){n.removeAttribute("class");n.removeAttribute("className")}return m}return n.className})},hasClass:function(j,i){j=this.get(j);if(!j||!i){return false}return(" "+j.className+" ").indexOf(" "+i+" ")!==-1},show:function(i){return this.setStyle(i,"display","block")},hide:function(i){return this.setStyle(i,"display","none")},isHidden:function(i){i=this.get(i);return !i||i.style.display=="none"||this.getStyle(i,"display")=="none"},uniqueId:function(i){return(!i?"mce_":i)+(this.counter++)},setHTML:function(k,j){var i=this;return i.run(k,function(m){if(b){while(m.firstChild){m.removeChild(m.firstChild)}try{m.innerHTML="<br />"+j;m.removeChild(m.firstChild)}catch(l){var n=i.create("div");n.innerHTML="<br />"+j;g(e.grep(n.childNodes),function(p,o){if(o&&m.canHaveHTML){m.appendChild(p)}})}}else{m.innerHTML=j}return j})},getOuterHTML:function(k){var j,i=this;k=i.get(k);if(!k){return null}if(k.nodeType===1&&i.hasOuterHTML){return k.outerHTML}j=(k.ownerDocument||i.doc).createElement("body");j.appendChild(k.cloneNode(true));return j.innerHTML},setOuterHTML:function(l,j,m){var i=this;function k(p,o,r){var s,q;q=r.createElement("body");q.innerHTML=o;s=q.lastChild;while(s){i.insertAfter(s.cloneNode(true),p);s=s.previousSibling}i.remove(p)}return this.run(l,function(o){o=i.get(o);if(o.nodeType==1){m=m||o.ownerDocument||i.doc;if(b){try{if(b&&o.nodeType==1){o.outerHTML=j}else{k(o,j,m)}}catch(n){k(o,j,m)}}else{k(o,j,m)}}})},decode:h.decode,encode:h.encodeAllRaw,insertAfter:function(i,j){j=this.get(j);return this.run(i,function(l){var k,m;k=j.parentNode;m=j.nextSibling;if(m){k.insertBefore(l,m)}else{k.appendChild(l)}return l})},replace:function(m,l,i){var j=this;if(d(l,"array")){m=m.cloneNode(true)}return j.run(l,function(k){if(i){g(e.grep(k.childNodes),function(n){m.appendChild(n)})}return k.parentNode.replaceChild(m,k)})},rename:function(l,i){var k=this,j;if(l.nodeName!=i.toUpperCase()){j=k.create(i);g(k.getAttribs(l),function(m){k.setAttrib(j,m.nodeName,k.getAttrib(l,m.nodeName))});k.replace(j,l,1)}return j||l},findCommonAncestor:function(k,i){var l=k,j;while(l){j=i;while(j&&l!=j){j=j.parentNode}if(l==j){break}l=l.parentNode}if(!l&&k.ownerDocument){return k.ownerDocument.documentElement}return l},toHex:function(i){var k=/^\s*rgb\s*?\(\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?\)\s*$/i.exec(i);function j(l){l=parseInt(l,10).toString(16);return l.length>1?l:"0"+l}if(k){i="#"+j(k[1])+j(k[2])+j(k[3]);return i}return i},getClasses:function(){var n=this,j=[],m,o={},p=n.settings.class_filter,l;if(n.classes){return n.classes}function q(i){g(i.imports,function(s){q(s)});g(i.cssRules||i.rules,function(s){switch(s.type||1){case 1:if(s.selectorText){g(s.selectorText.split(","),function(r){r=r.replace(/^\s*|\s*$|^\s\./g,"");if(/\.mce/.test(r)||!/\.[\w\-]+$/.test(r)){return}l=r;r=e._replace(/.*\.([a-z0-9_\-]+).*/i,"$1",r);if(p&&!(r=p(r,l))){return}if(!o[r]){j.push({"class":r});o[r]=1}})}break;case 3:q(s.styleSheet);break}})}try{g(n.doc.styleSheets,q)}catch(k){}if(j.length>0){n.classes=j}return j},run:function(l,k,j){var i=this,m;if(i.doc&&typeof(l)==="string"){l=i.get(l)}if(!l){return false}j=j||this;if(!l.nodeType&&(l.length||l.length===0)){m=[];g(l,function(o,n){if(o){if(typeof(o)=="string"){o=i.doc.getElementById(o)}m.push(k.call(j,o,n))}});return m}return k.call(j,l)},getAttribs:function(j){var i;j=this.get(j);if(!j){return[]}if(b){i=[];if(j.nodeName=="OBJECT"){return j.attributes}if(j.nodeName==="OPTION"&&this.getAttrib(j,"selected")){i.push({specified:1,nodeName:"selected"})}j.cloneNode(false).outerHTML.replace(/<\/?[\w:\-]+ ?|=[\"][^\"]+\"|=\'[^\']+\'|=[\w\-]+|>/gi,"").replace(/[\w:\-]+/gi,function(k){i.push({specified:1,nodeName:k})});return i}return j.attributes},isEmpty:function(m,k){var r=this,o,n,q,j,l,p=0;m=m.firstChild;if(m){j=new e.dom.TreeWalker(m,m.parentNode);k=k||r.schema?r.schema.getNonEmptyElements():null;do{q=m.nodeType;if(q===1){if(m.getAttribute("data-mce-bogus")){continue}l=m.nodeName.toLowerCase();if(k&&k[l]){if(l==="br"){p++;continue}return false}n=r.getAttribs(m);o=m.attributes.length;while(o--){l=m.attributes[o].nodeName;if(l==="name"||l==="data-mce-bookmark"){return false}}}if(q==8){return false}if((q===3&&!a.test(m.nodeValue))){return false}}while(m=j.next())}return p<=1},destroy:function(j){var i=this;i.win=i.doc=i.root=i.events=i.frag=null;if(!j){e.removeUnload(i.destroy)}},createRng:function(){var i=this.doc;return i.createRange?i.createRange():new e.dom.Range(this)},nodeIndex:function(m,n){var i=0,k,l,j;if(m){for(k=m.nodeType,m=m.previousSibling,l=m;m;m=m.previousSibling){j=m.nodeType;if(n&&j==3){if(j==k||!m.nodeValue.length){continue}}i++;k=j}}return i},split:function(m,l,p){var q=this,i=q.createRng(),n,k,o;function j(v){var t,s=v.childNodes,u=v.nodeType;function x(A){var z=A.previousSibling&&A.previousSibling.nodeName=="SPAN";var y=A.nextSibling&&A.nextSibling.nodeName=="SPAN";return z&&y}if(u==1&&v.getAttribute("data-mce-type")=="bookmark"){return}for(t=s.length-1;t>=0;t--){j(s[t])}if(u!=9){if(u==3&&v.nodeValue.length>0){var r=e.trim(v.nodeValue).length;if(!q.isBlock(v.parentNode)||r>0||r===0&&x(v)){return}}else{if(u==1){s=v.childNodes;if(s.length==1&&s[0]&&s[0].nodeType==1&&s[0].getAttribute("data-mce-type")=="bookmark"){v.parentNode.insertBefore(s[0],v)}if(s.length||/^(br|hr|input|img)$/i.test(v.nodeName)){return}}}q.remove(v)}return v}if(m&&l){i.setStart(m.parentNode,q.nodeIndex(m));i.setEnd(l.parentNode,q.nodeIndex(l));n=i.extractContents();i=q.createRng();i.setStart(l.parentNode,q.nodeIndex(l)+1);i.setEnd(m.parentNode,q.nodeIndex(m)+1);k=i.extractContents();o=m.parentNode;o.insertBefore(j(n),m);if(p){o.replaceChild(p,l)}else{o.insertBefore(l,m)}o.insertBefore(j(k),m);q.remove(m);return p||l}},bind:function(l,i,k,j){return this.events.add(l,i,k,j||this)},unbind:function(k,i,j){return this.events.remove(k,i,j)},fire:function(k,j,i){return this.events.fire(k,j,i)},getContentEditable:function(j){var i;if(j.nodeType!=1){return null}i=j.getAttribute("data-mce-contenteditable");if(i&&i!=="inherit"){return i}return j.contentEditable!=="inherit"?j.contentEditable:null},_findSib:function(l,i,j){var k=this,m=i;if(l){if(d(m,"string")){m=function(n){return k.is(n,i)}}for(l=l[j];l;l=l[j]){if(m(l)){return l}}}return null},_isRes:function(i){return/^(top|left|bottom|right|width|height)/i.test(i)||/;\s*(top|left|bottom|right|width|height)/i.test(i)}});e.DOM=new e.dom.DOMUtils(document,{process_html:0})})(tinymce);(function(a){function b(c){var O=this,e=c.doc,U=0,F=1,j=2,E=true,S=false,W="startOffset",h="startContainer",Q="endContainer",A="endOffset",k=tinymce.extend,n=c.nodeIndex;k(O,{startContainer:e,startOffset:0,endContainer:e,endOffset:0,collapsed:E,commonAncestorContainer:e,START_TO_START:0,START_TO_END:1,END_TO_END:2,END_TO_START:3,setStart:q,setEnd:s,setStartBefore:g,setStartAfter:J,setEndBefore:K,setEndAfter:u,collapse:B,selectNode:y,selectNodeContents:G,compareBoundaryPoints:v,deleteContents:p,extractContents:I,cloneContents:d,insertNode:D,surroundContents:N,cloneRange:L,toStringIE:T});function x(){return e.createDocumentFragment()}function q(X,t){C(E,X,t)}function s(X,t){C(S,X,t)}function g(t){q(t.parentNode,n(t))}function J(t){q(t.parentNode,n(t)+1)}function K(t){s(t.parentNode,n(t))}function u(t){s(t.parentNode,n(t)+1)}function B(t){if(t){O[Q]=O[h];O[A]=O[W]}else{O[h]=O[Q];O[W]=O[A]}O.collapsed=E}function y(t){g(t);u(t)}function G(t){q(t,0);s(t,t.nodeType===1?t.childNodes.length:t.nodeValue.length)}function v(aa,t){var ad=O[h],Y=O[W],ac=O[Q],X=O[A],ab=t.startContainer,af=t.startOffset,Z=t.endContainer,ae=t.endOffset;if(aa===0){return H(ad,Y,ab,af)}if(aa===1){return H(ac,X,ab,af)}if(aa===2){return H(ac,X,Z,ae)}if(aa===3){return H(ad,Y,Z,ae)}}function p(){l(j)}function I(){return l(U)}function d(){return l(F)}function D(aa){var X=this[h],t=this[W],Z,Y;if((X.nodeType===3||X.nodeType===4)&&X.nodeValue){if(!t){X.parentNode.insertBefore(aa,X)}else{if(t>=X.nodeValue.length){c.insertAfter(aa,X)}else{Z=X.splitText(t);X.parentNode.insertBefore(aa,Z)}}}else{if(X.childNodes.length>0){Y=X.childNodes[t]}if(Y){X.insertBefore(aa,Y)}else{X.appendChild(aa)}}}function N(X){var t=O.extractContents();O.insertNode(X);X.appendChild(t);O.selectNode(X)}function L(){return k(new b(c),{startContainer:O[h],startOffset:O[W],endContainer:O[Q],endOffset:O[A],collapsed:O.collapsed,commonAncestorContainer:O.commonAncestorContainer})}function P(t,X){var Y;if(t.nodeType==3){return t}if(X<0){return t}Y=t.firstChild;while(Y&&X>0){--X;Y=Y.nextSibling}if(Y){return Y}return t}function m(){return(O[h]==O[Q]&&O[W]==O[A])}function H(Z,ab,X,aa){var ac,Y,t,ad,af,ae;if(Z==X){if(ab==aa){return 0}if(ab<aa){return -1}return 1}ac=X;while(ac&&ac.parentNode!=Z){ac=ac.parentNode}if(ac){Y=0;t=Z.firstChild;while(t!=ac&&Y<ab){Y++;t=t.nextSibling}if(ab<=Y){return -1}return 1}ac=Z;while(ac&&ac.parentNode!=X){ac=ac.parentNode}if(ac){Y=0;t=X.firstChild;while(t!=ac&&Y<aa){Y++;t=t.nextSibling}if(Y<aa){return -1}return 1}ad=c.findCommonAncestor(Z,X);af=Z;while(af&&af.parentNode!=ad){af=af.parentNode}if(!af){af=ad}ae=X;while(ae&&ae.parentNode!=ad){ae=ae.parentNode}if(!ae){ae=ad}if(af==ae){return 0}t=ad.firstChild;while(t){if(t==af){return -1}if(t==ae){return 1}t=t.nextSibling}}function C(X,aa,Z){var t,Y;if(X){O[h]=aa;O[W]=Z}else{O[Q]=aa;O[A]=Z}t=O[Q];while(t.parentNode){t=t.parentNode}Y=O[h];while(Y.parentNode){Y=Y.parentNode}if(Y==t){if(H(O[h],O[W],O[Q],O[A])>0){O.collapse(X)}}else{O.collapse(X)}O.collapsed=m();O.commonAncestorContainer=c.findCommonAncestor(O[h],O[Q])}function l(ad){var ac,Z=0,af=0,X,ab,Y,aa,t,ae;if(O[h]==O[Q]){return f(ad)}for(ac=O[Q],X=ac.parentNode;X;ac=X,X=X.parentNode){if(X==O[h]){return r(ac,ad)}++Z}for(ac=O[h],X=ac.parentNode;X;ac=X,X=X.parentNode){if(X==O[Q]){return V(ac,ad)}++af}ab=af-Z;Y=O[h];while(ab>0){Y=Y.parentNode;ab--}aa=O[Q];while(ab<0){aa=aa.parentNode;ab++}for(t=Y.parentNode,ae=aa.parentNode;t!=ae;t=t.parentNode,ae=ae.parentNode){Y=t;aa=ae}return o(Y,aa,ad)}function f(ac){var ae,af,t,Y,Z,ad,aa,X,ab;if(ac!=j){ae=x()}if(O[W]==O[A]){return ae}if(O[h].nodeType==3){af=O[h].nodeValue;t=af.substring(O[W],O[A]);if(ac!=F){Y=O[h];X=O[W];ab=O[A]-O[W];if(X===0&&ab>=Y.nodeValue.length-1){Y.parentNode.removeChild(Y)}else{Y.deleteData(X,ab)}O.collapse(E)}if(ac==j){return}if(t.length>0){ae.appendChild(e.createTextNode(t))}return ae}Y=P(O[h],O[W]);Z=O[A]-O[W];while(Y&&Z>0){ad=Y.nextSibling;aa=z(Y,ac);if(ae){ae.appendChild(aa)}--Z;Y=ad}if(ac!=F){O.collapse(E)}return ae}function r(ad,aa){var ac,ab,X,t,Z,Y;if(aa!=j){ac=x()}ab=i(ad,aa);if(ac){ac.appendChild(ab)}X=n(ad);t=X-O[W];if(t<=0){if(aa!=F){O.setEndBefore(ad);O.collapse(S)}return ac}ab=ad.previousSibling;while(t>0){Z=ab.previousSibling;Y=z(ab,aa);if(ac){ac.insertBefore(Y,ac.firstChild)}--t;ab=Z}if(aa!=F){O.setEndBefore(ad);O.collapse(S)}return ac}function V(ab,aa){var ad,X,ac,t,Z,Y;if(aa!=j){ad=x()}ac=R(ab,aa);if(ad){ad.appendChild(ac)}X=n(ab);++X;t=O[A]-X;ac=ab.nextSibling;while(ac&&t>0){Z=ac.nextSibling;Y=z(ac,aa);if(ad){ad.appendChild(Y)}--t;ac=Z}if(aa!=F){O.setStartAfter(ab);O.collapse(E)}return ad}function o(ab,t,ae){var Y,ag,aa,ac,ad,X,af,Z;if(ae!=j){ag=x()}Y=R(ab,ae);if(ag){ag.appendChild(Y)}aa=ab.parentNode;ac=n(ab);ad=n(t);++ac;X=ad-ac;af=ab.nextSibling;while(X>0){Z=af.nextSibling;Y=z(af,ae);if(ag){ag.appendChild(Y)}af=Z;--X}Y=i(t,ae);if(ag){ag.appendChild(Y)}if(ae!=F){O.setStartAfter(ab);O.collapse(E)}return ag}function i(ac,ad){var Y=P(O[Q],O[A]-1),ae,ab,aa,t,X,Z=Y!=O[Q];if(Y==ac){return M(Y,Z,S,ad)}ae=Y.parentNode;ab=M(ae,S,S,ad);while(ae){while(Y){aa=Y.previousSibling;t=M(Y,Z,S,ad);if(ad!=j){ab.insertBefore(t,ab.firstChild)}Z=E;Y=aa}if(ae==ac){return ab}Y=ae.previousSibling;ae=ae.parentNode;X=M(ae,S,S,ad);if(ad!=j){X.appendChild(ab)}ab=X}}function R(ac,ad){var Z=P(O[h],O[W]),aa=Z!=O[h],ae,ab,Y,t,X;if(Z==ac){return M(Z,aa,E,ad)}ae=Z.parentNode;ab=M(ae,S,E,ad);while(ae){while(Z){Y=Z.nextSibling;t=M(Z,aa,E,ad);if(ad!=j){ab.appendChild(t)}aa=E;Z=Y}if(ae==ac){return ab}Z=ae.nextSibling;ae=ae.parentNode;X=M(ae,S,E,ad);if(ad!=j){X.appendChild(ab)}ab=X}}function M(t,aa,ad,ae){var Z,Y,ab,X,ac;if(aa){return z(t,ae)}if(t.nodeType==3){Z=t.nodeValue;if(ad){X=O[W];Y=Z.substring(X);ab=Z.substring(0,X)}else{X=O[A];Y=Z.substring(0,X);ab=Z.substring(X)}if(ae!=F){t.nodeValue=ab}if(ae==j){return}ac=c.clone(t,S);ac.nodeValue=Y;return ac}if(ae==j){return}return c.clone(t,S)}function z(X,t){if(t!=j){return t==F?c.clone(X,E):X}X.parentNode.removeChild(X)}function T(){return c.create("body",null,d()).outerText}return O}a.Range=b;b.prototype.toString=function(){return this.toStringIE()}})(tinymce.dom);(function(){function a(d){var b=this,h=d.dom,c=true,f=false;function e(i,j){var k,t=0,q,n,m,l,o,r,p=-1,s;k=i.duplicate();k.collapse(j);s=k.parentElement();if(s.ownerDocument!==d.dom.doc){return}while(s.contentEditable==="false"){s=s.parentNode}if(!s.hasChildNodes()){return{node:s,inside:1}}m=s.children;q=m.length-1;while(t<=q){r=Math.floor((t+q)/2);l=m[r];k.moveToElementText(l);p=k.compareEndPoints(j?"StartToStart":"EndToEnd",i);if(p>0){q=r-1}else{if(p<0){t=r+1}else{return{node:l}}}}if(p<0){if(!l){k.moveToElementText(s);k.collapse(true);l=s;n=true}else{k.collapse(false)}o=0;while(k.compareEndPoints(j?"StartToStart":"StartToEnd",i)!==0){if(k.move("character",1)===0||s!=k.parentElement()){break}o++}}else{k.collapse(true);o=0;while(k.compareEndPoints(j?"StartToStart":"StartToEnd",i)!==0){if(k.move("character",-1)===0||s!=k.parentElement()){break}o++}}return{node:l,position:p,offset:o,inside:n}}function g(){var i=d.getRng(),r=h.createRng(),l,k,p,q,m,j;l=i.item?i.item(0):i.parentElement();if(l.ownerDocument!=h.doc){return r}k=d.isCollapsed();if(i.item){r.setStart(l.parentNode,h.nodeIndex(l));r.setEnd(r.startContainer,r.startOffset+1);return r}function o(A){var u=e(i,A),s,y,z=0,x,v,t;s=u.node;y=u.offset;if(u.inside&&!s.hasChildNodes()){r[A?"setStart":"setEnd"](s,0);return}if(y===v){r[A?"setStartBefore":"setEndAfter"](s);return}if(u.position<0){x=u.inside?s.firstChild:s.nextSibling;if(!x){r[A?"setStartAfter":"setEndAfter"](s);return}if(!y){if(x.nodeType==3){r[A?"setStart":"setEnd"](x,0)}else{r[A?"setStartBefore":"setEndBefore"](x)}return}while(x){t=x.nodeValue;z+=t.length;if(z>=y){s=x;z-=y;z=t.length-z;break}x=x.nextSibling}}else{x=s.previousSibling;if(!x){return r[A?"setStartBefore":"setEndBefore"](s)}if(!y){if(s.nodeType==3){r[A?"setStart":"setEnd"](x,s.nodeValue.length)}else{r[A?"setStartAfter":"setEndAfter"](x)}return}while(x){z+=x.nodeValue.length;if(z>=y){s=x;z-=y;break}x=x.previousSibling}}r[A?"setStart":"setEnd"](s,z)}try{o(true);if(!k){o()}}catch(n){if(n.number==-2147024809){m=b.getBookmark(2);p=i.duplicate();p.collapse(true);l=p.parentElement();if(!k){p=i.duplicate();p.collapse(false);q=p.parentElement();q.innerHTML=q.innerHTML}l.innerHTML=l.innerHTML;b.moveToBookmark(m);i=d.getRng();o(true);if(!k){o()}}else{throw n}}return r}this.getBookmark=function(m){var j=d.getRng(),o,i,l={};function n(u){var t,p,s,r,q=[];t=u.parentNode;p=h.getRoot().parentNode;while(t!=p&&t.nodeType!==9){s=t.children;r=s.length;while(r--){if(u===s[r]){q.push(r);break}}u=t;t=t.parentNode}return q}function k(q){var p;p=e(j,q);if(p){return{position:p.position,offset:p.offset,indexes:n(p.node),inside:p.inside}}}if(m===2){if(!j.item){l.start=k(true);if(!d.isCollapsed()){l.end=k()}}else{l.start={ctrl:true,indexes:n(j.item(0))}}}return l};this.moveToBookmark=function(k){var j,i=h.doc.body;function m(o){var r,q,n,p;r=h.getRoot();for(q=o.length-1;q>=0;q--){p=r.children;n=o[q];if(n<=p.length-1){r=p[n]}}return r}function l(r){var n=k[r?"start":"end"],q,p,o;if(n){q=n.position>0;p=i.createTextRange();p.moveToElementText(m(n.indexes));offset=n.offset;if(offset!==o){p.collapse(n.inside||q);p.moveStart("character",q?-offset:offset)}else{p.collapse(r)}j.setEndPoint(r?"StartToStart":"EndToStart",p);if(r){j.collapse(true)}}}if(k.start){if(k.start.ctrl){j=i.createControlRange();j.addElement(m(k.start.indexes));j.select()}else{j=i.createTextRange();l(true);l();j.select()}}};this.addRange=function(i){var n,l,k,p,v,q,t,s=d.dom.doc,m=s.body,r,u;function j(C){var y,B,x,A,z;x=h.create("a");y=C?k:v;B=C?p:q;A=n.duplicate();if(y==s||y==s.documentElement){y=m;B=0}if(y.nodeType==3){y.parentNode.insertBefore(x,y);A.moveToElementText(x);A.moveStart("character",B);h.remove(x);n.setEndPoint(C?"StartToStart":"EndToEnd",A)}else{z=y.childNodes;if(z.length){if(B>=z.length){h.insertAfter(x,z[z.length-1])}else{y.insertBefore(x,z[B])}A.moveToElementText(x)}else{if(y.canHaveHTML){y.innerHTML="<span>\uFEFF</span>";x=y.firstChild;A.moveToElementText(x);A.collapse(f)}}n.setEndPoint(C?"StartToStart":"EndToEnd",A);h.remove(x)}}k=i.startContainer;p=i.startOffset;v=i.endContainer;q=i.endOffset;n=m.createTextRange();if(k==v&&k.nodeType==1){if(p==q&&!k.hasChildNodes()){if(k.canHaveHTML){t=k.previousSibling;if(t&&!t.hasChildNodes()&&h.isBlock(t)){t.innerHTML="\uFEFF"}else{t=null}k.innerHTML="<span>\uFEFF</span><span>\uFEFF</span>";n.moveToElementText(k.lastChild);n.select();h.doc.selection.clear();k.innerHTML="";if(t){t.innerHTML=""}return}else{p=h.nodeIndex(k);k=k.parentNode}}if(p==q-1){try{u=k.childNodes[p];l=m.createControlRange();l.addElement(u);l.select();r=d.getRng();if(r.item&&u===r.item(0)){return}}catch(o){}}}j(true);j();n.select()};this.getRangeAt=g}tinymce.dom.TridentSelection=a})();(function(){var n=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,i="sizcache",o=0,r=Object.prototype.toString,h=false,g=true,q=/\\/g,u=/\r\n/g,x=/\W/;[0,0].sort(function(){g=false;return 0});var d=function(C,e,F,G){F=F||[];e=e||document;var I=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!C||typeof C!=="string"){return F}var z,K,N,y,J,M,L,E,B=true,A=d.isXML(e),D=[],H=C;do{n.exec("");z=n.exec(H);if(z){H=z[3];D.push(z[1]);if(z[2]){y=z[3];break}}}while(z);if(D.length>1&&j.exec(C)){if(D.length===2&&k.relative[D[0]]){K=s(D[0]+D[1],e,G)}else{K=k.relative[D[0]]?[e]:d(D.shift(),e);while(D.length){C=D.shift();if(k.relative[C]){C+=D.shift()}K=s(C,K,G)}}}else{if(!G&&D.length>1&&e.nodeType===9&&!A&&k.match.ID.test(D[0])&&!k.match.ID.test(D[D.length-1])){J=d.find(D.shift(),e,A);e=J.expr?d.filter(J.expr,J.set)[0]:J.set[0]}if(e){J=G?{expr:D.pop(),set:l(G)}:d.find(D.pop(),D.length===1&&(D[0]==="~"||D[0]==="+")&&e.parentNode?e.parentNode:e,A);K=J.expr?d.filter(J.expr,J.set):J.set;if(D.length>0){N=l(K)}else{B=false}while(D.length){M=D.pop();L=M;if(!k.relative[M]){M=""}else{L=D.pop()}if(L==null){L=e}k.relative[M](N,L,A)}}else{N=D=[]}}if(!N){N=K}if(!N){d.error(M||C)}if(r.call(N)==="[object Array]"){if(!B){F.push.apply(F,N)}else{if(e&&e.nodeType===1){for(E=0;N[E]!=null;E++){if(N[E]&&(N[E]===true||N[E].nodeType===1&&d.contains(e,N[E]))){F.push(K[E])}}}else{for(E=0;N[E]!=null;E++){if(N[E]&&N[E].nodeType===1){F.push(K[E])}}}}}else{l(N,F)}if(y){d(y,I,F,G);d.uniqueSort(F)}return F};d.uniqueSort=function(y){if(p){h=g;y.sort(p);if(h){for(var e=1;e<y.length;e++){if(y[e]===y[e-1]){y.splice(e--,1)}}}}return y};d.matches=function(e,y){return d(e,null,null,y)};d.matchesSelector=function(e,y){return d(y,null,null,[e]).length>0};d.find=function(E,e,F){var D,z,B,A,C,y;if(!E){return[]}for(z=0,B=k.order.length;z<B;z++){C=k.order[z];if((A=k.leftMatch[C].exec(E))){y=A[1];A.splice(1,1);if(y.substr(y.length-1)!=="\\"){A[1]=(A[1]||"").replace(q,"");D=k.find[C](A,e,F);if(D!=null){E=E.replace(k.match[C],"");break}}}}if(!D){D=typeof e.getElementsByTagName!=="undefined"?e.getElementsByTagName("*"):[]}return{set:D,expr:E}};d.filter=function(I,H,L,B){var D,e,G,N,K,y,A,C,J,z=I,M=[],F=H,E=H&&H[0]&&d.isXML(H[0]);while(I&&H.length){for(G in k.filter){if((D=k.leftMatch[G].exec(I))!=null&&D[2]){y=k.filter[G];A=D[1];e=false;D.splice(1,1);if(A.substr(A.length-1)==="\\"){continue}if(F===M){M=[]}if(k.preFilter[G]){D=k.preFilter[G](D,F,L,M,B,E);if(!D){e=N=true}else{if(D===true){continue}}}if(D){for(C=0;(K=F[C])!=null;C++){if(K){N=y(K,D,C,F);J=B^N;if(L&&N!=null){if(J){e=true}else{F[C]=false}}else{if(J){M.push(K);e=true}}}}}if(N!==undefined){if(!L){F=M}I=I.replace(k.match[G],"");if(!e){return[]}break}}}if(I===z){if(e==null){d.error(I)}else{break}}z=I}return F};d.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)};var b=d.getText=function(B){var z,A,e=B.nodeType,y="";if(e){if(e===1||e===9||e===11){if(typeof B.textContent==="string"){return B.textContent}else{if(typeof B.innerText==="string"){return B.innerText.replace(u,"")}else{for(B=B.firstChild;B;B=B.nextSibling){y+=b(B)}}}}else{if(e===3||e===4){return B.nodeValue}}}else{for(z=0;(A=B[z]);z++){if(A.nodeType!==8){y+=b(A)}}}return y};var k=d.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(e){return e.getAttribute("href")},type:function(e){return e.getAttribute("type")}},relative:{"+":function(D,y){var A=typeof y==="string",C=A&&!x.test(y),E=A&&!C;if(C){y=y.toLowerCase()}for(var z=0,e=D.length,B;z<e;z++){if((B=D[z])){while((B=B.previousSibling)&&B.nodeType!==1){}D[z]=E||B&&B.nodeName.toLowerCase()===y?B||false:B===y}}if(E){d.filter(y,D,true)}},">":function(D,y){var C,B=typeof y==="string",z=0,e=D.length;if(B&&!x.test(y)){y=y.toLowerCase();for(;z<e;z++){C=D[z];if(C){var A=C.parentNode;D[z]=A.nodeName.toLowerCase()===y?A:false}}}else{for(;z<e;z++){C=D[z];if(C){D[z]=B?C.parentNode:C.parentNode===y}}if(B){d.filter(y,D,true)}}},"":function(A,y,C){var B,z=o++,e=t;if(typeof y==="string"&&!x.test(y)){y=y.toLowerCase();B=y;e=a}e("parentNode",y,z,A,B,C)},"~":function(A,y,C){var B,z=o++,e=t;if(typeof y==="string"&&!x.test(y)){y=y.toLowerCase();B=y;e=a}e("previousSibling",y,z,A,B,C)}},find:{ID:function(y,z,A){if(typeof z.getElementById!=="undefined"&&!A){var e=z.getElementById(y[1]);return e&&e.parentNode?[e]:[]}},NAME:function(z,C){if(typeof C.getElementsByName!=="undefined"){var y=[],B=C.getElementsByName(z[1]);for(var A=0,e=B.length;A<e;A++){if(B[A].getAttribute("name")===z[1]){y.push(B[A])}}return y.length===0?null:y}},TAG:function(e,y){if(typeof y.getElementsByTagName!=="undefined"){return y.getElementsByTagName(e[1])}}},preFilter:{CLASS:function(A,y,z,e,D,E){A=" "+A[1].replace(q,"")+" ";if(E){return A}for(var B=0,C;(C=y[B])!=null;B++){if(C){if(D^(C.className&&(" "+C.className+" ").replace(/[\t\n\r]/g," ").indexOf(A)>=0)){if(!z){e.push(C)}}else{if(z){y[B]=false}}}}return false},ID:function(e){return e[1].replace(q,"")},TAG:function(y,e){return y[1].replace(q,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){d.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var y=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(y[1]+(y[2]||1))-0;e[3]=y[3]-0}else{if(e[2]){d.error(e[0])}}e[0]=o++;return e},ATTR:function(B,y,z,e,C,D){var A=B[1]=B[1].replace(q,"");if(!D&&k.attrMap[A]){B[1]=k.attrMap[A]}B[4]=(B[4]||B[5]||"").replace(q,"");if(B[2]==="~="){B[4]=" "+B[4]+" "}return B},PSEUDO:function(B,y,z,e,C){if(B[1]==="not"){if((n.exec(B[3])||"").length>1||/^\w/.test(B[3])){B[3]=d(B[3],null,null,y)}else{var A=d.filter(B[3],y,z,true^C);if(!z){e.push.apply(e,A)}return false}}else{if(k.match.POS.test(B[0])||k.match.CHILD.test(B[0])){return true}}return B},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(z,y,e){return !!d(e[3],z).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(z){var e=z.getAttribute("type"),y=z.type;return z.nodeName.toLowerCase()==="input"&&"text"===y&&(e===y||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(y){var e=y.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===y.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(y){var e=y.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===y.type},button:function(y){var e=y.nodeName.toLowerCase();return e==="input"&&"button"===y.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(y,e){return e===0},last:function(z,y,e,A){return y===A.length-1},even:function(y,e){return e%2===0},odd:function(y,e){return e%2===1},lt:function(z,y,e){return y<e[3]-0},gt:function(z,y,e){return y>e[3]-0},nth:function(z,y,e){return e[3]-0===y},eq:function(z,y,e){return e[3]-0===y}},filter:{PSEUDO:function(z,E,D,F){var e=E[1],y=k.filters[e];if(y){return y(z,D,E,F)}else{if(e==="contains"){return(z.textContent||z.innerText||b([z])||"").indexOf(E[3])>=0}else{if(e==="not"){var A=E[3];for(var C=0,B=A.length;C<B;C++){if(A[C]===z){return false}}return true}else{d.error(e)}}}},CHILD:function(z,B){var A,H,D,G,e,C,F,E=B[1],y=z;switch(E){case"only":case"first":while((y=y.previousSibling)){if(y.nodeType===1){return false}}if(E==="first"){return true}y=z;case"last":while((y=y.nextSibling)){if(y.nodeType===1){return false}}return true;case"nth":A=B[2];H=B[3];if(A===1&&H===0){return true}D=B[0];G=z.parentNode;if(G&&(G[i]!==D||!z.nodeIndex)){C=0;for(y=G.firstChild;y;y=y.nextSibling){if(y.nodeType===1){y.nodeIndex=++C}}G[i]=D}F=z.nodeIndex-H;if(A===0){return F===0}else{return(F%A===0&&F/A>=0)}}},ID:function(y,e){return y.nodeType===1&&y.getAttribute("id")===e},TAG:function(y,e){return(e==="*"&&y.nodeType===1)||!!y.nodeName&&y.nodeName.toLowerCase()===e},CLASS:function(y,e){return(" "+(y.className||y.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(C,A){var z=A[1],e=d.attr?d.attr(C,z):k.attrHandle[z]?k.attrHandle[z](C):C[z]!=null?C[z]:C.getAttribute(z),D=e+"",B=A[2],y=A[4];return e==null?B==="!=":!B&&d.attr?e!=null:B==="="?D===y:B==="*="?D.indexOf(y)>=0:B==="~="?(" "+D+" ").indexOf(y)>=0:!y?D&&e!==false:B==="!="?D!==y:B==="^="?D.indexOf(y)===0:B==="$="?D.substr(D.length-y.length)===y:B==="|="?D===y||D.substr(0,y.length+1)===y+"-":false},POS:function(B,y,z,C){var e=y[2],A=k.setFilters[e];if(A){return A(B,z,y,C)}}}};var j=k.match.POS,c=function(y,e){return"\\"+(e-0+1)};for(var f in k.match){k.match[f]=new RegExp(k.match[f].source+(/(?![^\[]*\])(?![^\(]*\))/.source));k.leftMatch[f]=new RegExp(/(^(?:.|\r|\n)*?)/.source+k.match[f].source.replace(/\\(\d+)/g,c))}k.match.globalPOS=j;var l=function(y,e){y=Array.prototype.slice.call(y,0);if(e){e.push.apply(e,y);return e}return y};try{Array.prototype.slice.call(document.documentElement.childNodes,0)[0].nodeType}catch(v){l=function(B,A){var z=0,y=A||[];if(r.call(B)==="[object Array]"){Array.prototype.push.apply(y,B)}else{if(typeof B.length==="number"){for(var e=B.length;z<e;z++){y.push(B[z])}}else{for(;B[z];z++){y.push(B[z])}}}return y}}var p,m;if(document.documentElement.compareDocumentPosition){p=function(y,e){if(y===e){h=true;return 0}if(!y.compareDocumentPosition||!e.compareDocumentPosition){return y.compareDocumentPosition?-1:1}return y.compareDocumentPosition(e)&4?-1:1}}else{p=function(F,E){if(F===E){h=true;return 0}else{if(F.sourceIndex&&E.sourceIndex){return F.sourceIndex-E.sourceIndex}}var C,y,z=[],e=[],B=F.parentNode,D=E.parentNode,G=B;if(B===D){return m(F,E)}else{if(!B){return -1}else{if(!D){return 1}}}while(G){z.unshift(G);G=G.parentNode}G=D;while(G){e.unshift(G);G=G.parentNode}C=z.length;y=e.length;for(var A=0;A<C&&A<y;A++){if(z[A]!==e[A]){return m(z[A],e[A])}}return A===C?m(F,e[A],-1):m(z[A],E,1)};m=function(y,e,z){if(y===e){return z}var A=y.nextSibling;while(A){if(A===e){return -1}A=A.nextSibling}return 1}}(function(){var y=document.createElement("div"),z="script"+(new Date()).getTime(),e=document.documentElement;y.innerHTML="<a name='"+z+"'/>";e.insertBefore(y,e.firstChild);if(document.getElementById(z)){k.find.ID=function(B,C,D){if(typeof C.getElementById!=="undefined"&&!D){var A=C.getElementById(B[1]);return A?A.id===B[1]||typeof A.getAttributeNode!=="undefined"&&A.getAttributeNode("id").nodeValue===B[1]?[A]:undefined:[]}};k.filter.ID=function(C,A){var B=typeof C.getAttributeNode!=="undefined"&&C.getAttributeNode("id");return C.nodeType===1&&B&&B.nodeValue===A}}e.removeChild(y);e=y=null})();(function(){var e=document.createElement("div");e.appendChild(document.createComment(""));if(e.getElementsByTagName("*").length>0){k.find.TAG=function(y,C){var B=C.getElementsByTagName(y[1]);if(y[1]==="*"){var A=[];for(var z=0;B[z];z++){if(B[z].nodeType===1){A.push(B[z])}}B=A}return B}}e.innerHTML="<a href='#'></a>";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){k.attrHandle.href=function(y){return y.getAttribute("href",2)}}e=null})();if(document.querySelectorAll){(function(){var e=d,A=document.createElement("div"),z="__sizzle__";A.innerHTML="<p class='TEST'></p>";if(A.querySelectorAll&&A.querySelectorAll(".TEST").length===0){return}d=function(L,C,G,K){C=C||document;if(!K&&!d.isXML(C)){var J=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(L);if(J&&(C.nodeType===1||C.nodeType===9)){if(J[1]){return l(C.getElementsByTagName(L),G)}else{if(J[2]&&k.find.CLASS&&C.getElementsByClassName){return l(C.getElementsByClassName(J[2]),G)}}}if(C.nodeType===9){if(L==="body"&&C.body){return l([C.body],G)}else{if(J&&J[3]){var F=C.getElementById(J[3]);if(F&&F.parentNode){if(F.id===J[3]){return l([F],G)}}else{return l([],G)}}}try{return l(C.querySelectorAll(L),G)}catch(H){}}else{if(C.nodeType===1&&C.nodeName.toLowerCase()!=="object"){var D=C,E=C.getAttribute("id"),B=E||z,N=C.parentNode,M=/^\s*[+~]/.test(L);if(!E){C.setAttribute("id",B)}else{B=B.replace(/'/g,"\\$&")}if(M&&N){C=C.parentNode}try{if(!M||N){return l(C.querySelectorAll("[id='"+B+"'] "+L),G)}}catch(I){}finally{if(!E){D.removeAttribute("id")}}}}}return e(L,C,G,K)};for(var y in e){d[y]=e[y]}A=null})()}(function(){var e=document.documentElement,z=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(z){var B=!z.call(document.createElement("div"),"div"),y=false;try{z.call(document.documentElement,"[test!='']:sizzle")}catch(A){y=true}d.matchesSelector=function(D,F){F=F.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!d.isXML(D)){try{if(y||!k.match.PSEUDO.test(F)&&!/!=/.test(F)){var C=z.call(D,F);if(C||!B||D.document&&D.document.nodeType!==11){return C}}}catch(E){}}return d(F,null,null,[D]).length>0}}})();(function(){var e=document.createElement("div");e.innerHTML="<div class='test e'></div><div class='test'></div>";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}k.order.splice(1,0,"CLASS");k.find.CLASS=function(y,z,A){if(typeof z.getElementsByClassName!=="undefined"&&!A){return z.getElementsByClassName(y[1])}};e=null})();function a(y,D,C,G,E,F){for(var A=0,z=G.length;A<z;A++){var e=G[A];if(e){var B=false;e=e[y];while(e){if(e[i]===C){B=G[e.sizset];break}if(e.nodeType===1&&!F){e[i]=C;e.sizset=A}if(e.nodeName.toLowerCase()===D){B=e;break}e=e[y]}G[A]=B}}}function t(y,D,C,G,E,F){for(var A=0,z=G.length;A<z;A++){var e=G[A];if(e){var B=false;e=e[y];while(e){if(e[i]===C){B=G[e.sizset];break}if(e.nodeType===1){if(!F){e[i]=C;e.sizset=A}if(typeof D!=="string"){if(e===D){B=true;break}}else{if(d.filter(D,[e]).length>0){B=e;break}}}e=e[y]}G[A]=B}}}if(document.documentElement.contains){d.contains=function(y,e){return y!==e&&(y.contains?y.contains(e):true)}}else{if(document.documentElement.compareDocumentPosition){d.contains=function(y,e){return !!(y.compareDocumentPosition(e)&16)}}else{d.contains=function(){return false}}}d.isXML=function(e){var y=(e?e.ownerDocument||e:0).documentElement;return y?y.nodeName!=="HTML":false};var s=function(z,e,D){var C,E=[],B="",F=e.nodeType?[e]:e;while((C=k.match.PSEUDO.exec(z))){B+=C[0];z=z.replace(k.match.PSEUDO,"")}z=k.relative[z]?z+"*":z;for(var A=0,y=F.length;A<y;A++){d(z,F[A],E,D)}return d.filter(B,E)};window.tinymce.dom.Sizzle=d})();(function(a){a.dom.Element=function(f,d){var b=this,e,c;b.settings=d=d||{};b.id=f;b.dom=e=d.dom||a.DOM;if(!a.isIE){c=e.get(b.id)}a.each(("getPos,getRect,getParent,add,setStyle,getStyle,setStyles,setAttrib,setAttribs,getAttrib,addClass,removeClass,hasClass,getOuterHTML,setOuterHTML,remove,show,hide,isHidden,setHTML,get").split(/,/),function(g){b[g]=function(){var h=[f],j;for(j=0;j<arguments.length;j++){h.push(arguments[j])}h=e[g].apply(e,h);b.update(g);return h}});a.extend(b,{on:function(i,h,g){return a.dom.Event.add(b.id,i,h,g)},getXY:function(){return{x:parseInt(b.getStyle("left")),y:parseInt(b.getStyle("top"))}},getSize:function(){var g=e.get(b.id);return{w:parseInt(b.getStyle("width")||g.clientWidth),h:parseInt(b.getStyle("height")||g.clientHeight)}},moveTo:function(g,h){b.setStyles({left:g,top:h})},moveBy:function(g,i){var h=b.getXY();b.moveTo(h.x+g,h.y+i)},resizeTo:function(g,i){b.setStyles({width:g,height:i})},resizeBy:function(g,j){var i=b.getSize();b.resizeTo(i.w+g,i.h+j)},update:function(h){var g;if(a.isIE6&&d.blocker){h=h||"";if(h.indexOf("get")===0||h.indexOf("has")===0||h.indexOf("is")===0){return}if(h=="remove"){e.remove(b.blocker);return}if(!b.blocker){b.blocker=e.uniqueId();g=e.add(d.container||e.getRoot(),"iframe",{id:b.blocker,style:"position:absolute;",frameBorder:0,src:'javascript:""'});e.setStyle(g,"opacity",0)}else{g=e.get(b.blocker)}e.setStyles(g,{left:b.getStyle("left",1),top:b.getStyle("top",1),width:b.getStyle("width",1),height:b.getStyle("height",1),display:b.getStyle("display",1),zIndex:parseInt(b.getStyle("zIndex",1)||0)-1})}}})}})(tinymce);(function(d){function f(g){return g.replace(/[\n\r]+/g,"")}var c=d.is,b=d.isIE,e=d.each,a=d.dom.TreeWalker;d.create("tinymce.dom.Selection",{Selection:function(k,j,i,h){var g=this;g.dom=k;g.win=j;g.serializer=i;g.editor=h;e(["onBeforeSetContent","onBeforeGetContent","onSetContent","onGetContent"],function(l){g[l]=new d.util.Dispatcher(g)});if(!g.win.getSelection){g.tridentSel=new d.dom.TridentSelection(g)}if(d.isIE&&k.boxModel){this._fixIESelection()}d.addUnload(g.destroy,g)},setCursorLocation:function(i,j){var g=this;var h=g.dom.createRng();h.setStart(i,j);h.setEnd(i,j);g.setRng(h);g.collapse(false)},getContent:function(h){var g=this,i=g.getRng(),m=g.dom.create("body"),k=g.getSel(),j,l,o;h=h||{};j=l="";h.get=true;h.format=h.format||"html";h.forced_root_block="";g.onBeforeGetContent.dispatch(g,h);if(h.format=="text"){return g.isCollapsed()?"":(i.text||(k.toString?k.toString():""))}if(i.cloneContents){o=i.cloneContents();if(o){m.appendChild(o)}}else{if(c(i.item)||c(i.htmlText)){m.innerHTML="<br>"+(i.item?i.item(0).outerHTML:i.htmlText);m.removeChild(m.firstChild)}else{m.innerHTML=i.toString()}}if(/^\s/.test(m.innerHTML)){j=" "}if(/\s+$/.test(m.innerHTML)){l=" "}h.getInner=true;h.content=g.isCollapsed()?"":j+g.serializer.serialize(m,h)+l;g.onGetContent.dispatch(g,h);return h.content},setContent:function(h,j){var o=this,g=o.getRng(),k,l=o.win.document,n,m;j=j||{format:"html"};j.set=true;h=j.content=h;if(!j.no_events){o.onBeforeSetContent.dispatch(o,j)}h=j.content;if(g.insertNode){h+='<span id="__caret">_</span>';if(g.startContainer==l&&g.endContainer==l){l.body.innerHTML=h}else{g.deleteContents();if(l.body.childNodes.length===0){l.body.innerHTML=h}else{if(g.createContextualFragment){g.insertNode(g.createContextualFragment(h))}else{n=l.createDocumentFragment();m=l.createElement("div");n.appendChild(m);m.outerHTML=h;g.insertNode(n)}}}k=o.dom.get("__caret");g=l.createRange();g.setStartBefore(k);g.setEndBefore(k);o.setRng(g);o.dom.remove("__caret");try{o.setRng(g)}catch(i){}}else{if(g.item){l.execCommand("Delete",false,null);g=o.getRng()}if(/^\s+/.test(h)){g.pasteHTML('<span id="__mce_tmp">_</span>'+h);o.dom.remove("__mce_tmp")}else{g.pasteHTML(h)}}if(!j.no_events){o.onSetContent.dispatch(o,j)}},getStart:function(){var i=this,h=i.getRng(),j,g,l,k;if(h.duplicate||h.item){if(h.item){return h.item(0)}l=h.duplicate();l.collapse(1);j=l.parentElement();if(j.ownerDocument!==i.dom.doc){j=i.dom.getRoot()}g=k=h.parentElement();while(k=k.parentNode){if(k==j){j=g;break}}return j}else{j=h.startContainer;if(j.nodeType==1&&j.hasChildNodes()){j=j.childNodes[Math.min(j.childNodes.length-1,h.startOffset)]}if(j&&j.nodeType==3){return j.parentNode}return j}},getEnd:function(){var h=this,g=h.getRng(),j,i;if(g.duplicate||g.item){if(g.item){return g.item(0)}g=g.duplicate();g.collapse(0);j=g.parentElement();if(j.ownerDocument!==h.dom.doc){j=h.dom.getRoot()}if(j&&j.nodeName=="BODY"){return j.lastChild||j}return j}else{j=g.endContainer;i=g.endOffset;if(j.nodeType==1&&j.hasChildNodes()){j=j.childNodes[i>0?i-1:i]}if(j&&j.nodeType==3){return j.parentNode}return j}},getBookmark:function(s,v){var y=this,n=y.dom,h,k,j,o,i,p,q,m="\uFEFF",x;function g(z,A){var t=0;e(n.select(z),function(C,B){if(C==A){t=B}});return t}function u(t){function z(E){var A,D,C,B=E?"start":"end";A=t[B+"Container"];D=t[B+"Offset"];if(A.nodeType==1&&A.nodeName=="TR"){C=A.childNodes;A=C[Math.min(E?D:D-1,C.length-1)];if(A){D=E?0:A.childNodes.length;t["set"+(E?"Start":"End")](A,D)}}}z(true);z();return t}function l(){var z=y.getRng(true),t=n.getRoot(),A={};function B(E,J){var D=E[J?"startContainer":"endContainer"],I=E[J?"startOffset":"endOffset"],C=[],F,H,G=0;if(D.nodeType==3){if(v){for(F=D.previousSibling;F&&F.nodeType==3;F=F.previousSibling){I+=F.nodeValue.length}}C.push(I)}else{H=D.childNodes;if(I>=H.length&&H.length){G=1;I=Math.max(0,H.length-1)}C.push(y.dom.nodeIndex(H[I],v)+G)}for(;D&&D!=t;D=D.parentNode){C.push(y.dom.nodeIndex(D,v))}return C}A.start=B(z,true);if(!y.isCollapsed()){A.end=B(z)}return A}if(s==2){if(y.tridentSel){return y.tridentSel.getBookmark(s)}return l()}if(s){return{rng:y.getRng()}}h=y.getRng();j=n.uniqueId();o=tinyMCE.activeEditor.selection.isCollapsed();x="overflow:hidden;line-height:0px";if(h.duplicate||h.item){if(!h.item){k=h.duplicate();try{h.collapse();h.pasteHTML('<span data-mce-type="bookmark" id="'+j+'_start" style="'+x+'">'+m+"</span>");if(!o){k.collapse(false);h.moveToElementText(k.parentElement());if(h.compareEndPoints("StartToEnd",k)===0){k.move("character",-1)}k.pasteHTML('<span data-mce-type="bookmark" id="'+j+'_end" style="'+x+'">'+m+"</span>")}}catch(r){return null}}else{p=h.item(0);i=p.nodeName;return{name:i,index:g(i,p)}}}else{p=y.getNode();i=p.nodeName;if(i=="IMG"){return{name:i,index:g(i,p)}}k=u(h.cloneRange());if(!o){k.collapse(false);k.insertNode(n.create("span",{"data-mce-type":"bookmark",id:j+"_end",style:x},m))}h=u(h);h.collapse(true);h.insertNode(n.create("span",{"data-mce-type":"bookmark",id:j+"_start",style:x},m))}y.moveToBookmark({id:j,keep:1});return{id:j}},moveToBookmark:function(o){var s=this,m=s.dom,j,i,g,r,k,u,p,q;function h(A){var t=o[A?"start":"end"],x,y,z,v;if(t){z=t[0];for(y=r,x=t.length-1;x>=1;x--){v=y.childNodes;if(t[x]>v.length-1){return}y=v[t[x]]}if(y.nodeType===3){z=Math.min(t[0],y.nodeValue.length)}if(y.nodeType===1){z=Math.min(t[0],y.childNodes.length)}if(A){g.setStart(y,z)}else{g.setEnd(y,z)}}return true}function l(B){var v=m.get(o.id+"_"+B),A,t,y,z,x=o.keep;if(v){A=v.parentNode;if(B=="start"){if(!x){t=m.nodeIndex(v)}else{A=v.firstChild;t=1}k=u=A;p=q=t}else{if(!x){t=m.nodeIndex(v)}else{A=v.firstChild;t=1}u=A;q=t}if(!x){z=v.previousSibling;y=v.nextSibling;e(d.grep(v.childNodes),function(C){if(C.nodeType==3){C.nodeValue=C.nodeValue.replace(/\uFEFF/g,"")}});while(v=m.get(o.id+"_"+B)){m.remove(v,1)}if(z&&y&&z.nodeType==y.nodeType&&z.nodeType==3&&!d.isOpera){t=z.nodeValue.length;z.appendData(y.nodeValue);m.remove(y);if(B=="start"){k=u=z;p=q=t}else{u=z;q=t}}}}}function n(t){if(m.isBlock(t)&&!t.innerHTML&&!b){t.innerHTML='<br data-mce-bogus="1" />'}return t}if(o){if(o.start){g=m.createRng();r=m.getRoot();if(s.tridentSel){return s.tridentSel.moveToBookmark(o)}if(h(true)&&h()){s.setRng(g)}}else{if(o.id){l("start");l("end");if(k){g=m.createRng();g.setStart(n(k),p);g.setEnd(n(u),q);s.setRng(g)}}else{if(o.name){s.select(m.select(o.name)[o.index])}else{if(o.rng){s.setRng(o.rng)}}}}}},select:function(l,k){var j=this,m=j.dom,h=m.createRng(),g;function i(n,p){var o=new a(n,n);do{if(n.nodeType==3&&d.trim(n.nodeValue).length!==0){if(p){h.setStart(n,0)}else{h.setEnd(n,n.nodeValue.length)}return}if(n.nodeName=="BR"){if(p){h.setStartBefore(n)}else{h.setEndBefore(n)}return}}while(n=(p?o.next():o.prev()))}if(l){g=m.nodeIndex(l);h.setStart(l.parentNode,g);h.setEnd(l.parentNode,g+1);if(k){i(l,1);i(l)}j.setRng(h)}return l},isCollapsed:function(){var g=this,i=g.getRng(),h=g.getSel();if(!i||i.item){return false}if(i.compareEndPoints){return i.compareEndPoints("StartToEnd",i)===0}return !h||i.collapsed},collapse:function(g){var i=this,h=i.getRng(),j;if(h.item){j=h.item(0);h=i.win.document.body.createTextRange();h.moveToElementText(j)}h.collapse(!!g);i.setRng(h)},getSel:function(){var h=this,g=this.win;return g.getSelection?g.getSelection():g.document.selection},getRng:function(m){var h=this,j,g,l,k=h.win.document;if(m&&h.tridentSel){return h.tridentSel.getRangeAt(0)}try{if(j=h.getSel()){g=j.rangeCount>0?j.getRangeAt(0):(j.createRange?j.createRange():k.createRange())}}catch(i){}if(d.isIE&&g&&g.setStart&&k.selection.createRange().item){l=k.selection.createRange().item(0);g=k.createRange();g.setStartBefore(l);g.setEndAfter(l)}if(!g){g=k.createRange?k.createRange():k.body.createTextRange()}if(g.setStart&&g.startContainer.nodeType===9&&g.collapsed){l=h.dom.getRoot();g.setStart(l,0);g.setEnd(l,0)}if(h.selectedRange&&h.explicitRange){if(g.compareBoundaryPoints(g.START_TO_START,h.selectedRange)===0&&g.compareBoundaryPoints(g.END_TO_END,h.selectedRange)===0){g=h.explicitRange}else{h.selectedRange=null;h.explicitRange=null}}return g},setRng:function(k,g){var j,i=this;if(!i.tridentSel){j=i.getSel();if(j){i.explicitRange=k;try{j.removeAllRanges()}catch(h){}j.addRange(k);if(g===false&&j.extend){j.collapse(k.endContainer,k.endOffset);j.extend(k.startContainer,k.startOffset)}i.selectedRange=j.rangeCount>0?j.getRangeAt(0):null}}else{if(k.cloneRange){try{i.tridentSel.addRange(k);return}catch(h){}}try{k.select()}catch(h){}}},setNode:function(h){var g=this;g.setContent(g.dom.getOuterHTML(h));return h},getNode:function(){var i=this,h=i.getRng(),j=i.getSel(),m,l=h.startContainer,g=h.endContainer;function k(q,o){var p=q;while(q&&q.nodeType===3&&q.length===0){q=o?q.nextSibling:q.previousSibling}return q||p}if(!h){return i.dom.getRoot()}if(h.setStart){m=h.commonAncestorContainer;if(!h.collapsed){if(h.startContainer==h.endContainer){if(h.endOffset-h.startOffset<2){if(h.startContainer.hasChildNodes()){m=h.startContainer.childNodes[h.startOffset]}}}if(l.nodeType===3&&g.nodeType===3){if(l.length===h.startOffset){l=k(l.nextSibling,true)}else{l=l.parentNode}if(h.endOffset===0){g=k(g.previousSibling,false)}else{g=g.parentNode}if(l&&l===g){return l}}}if(m&&m.nodeType==3){return m.parentNode}return m}return h.item?h.item(0):h.parentElement()},getSelectedBlocks:function(p,h){var o=this,k=o.dom,m,l,i,j=[];m=k.getParent(p||o.getStart(),k.isBlock);l=k.getParent(h||o.getEnd(),k.isBlock);if(m){j.push(m)}if(m&&l&&m!=l){i=m;var g=new a(m,k.getRoot());while((i=g.next())&&i!=l){if(k.isBlock(i)){j.push(i)}}}if(l&&m!=l){j.push(l)}return j},isForward:function(){var i=this.dom,g=this.getSel(),j,h;if(!g||g.anchorNode==null||g.focusNode==null){return true}j=i.createRng();j.setStart(g.anchorNode,g.anchorOffset);j.collapse(true);h=i.createRng();h.setStart(g.focusNode,g.focusOffset);h.collapse(true);return j.compareBoundaryPoints(j.START_TO_START,h)<=0},normalize:function(){var h=this,g,m,l,j,i;function k(p){var o,r,n,s=h.dom,u=s.getRoot(),q,t,v;function y(z,A){var B=new a(z,s.getParent(z.parentNode,s.isBlock)||u);while(z=B[A?"prev":"next"]()){if(z.nodeName==="BR"){return true}}}function x(B,z){var C,A;z=z||o;C=new a(z,s.getParent(z.parentNode,s.isBlock)||u);while(q=C[B?"prev":"next"]()){if(q.nodeType===3&&q.nodeValue.length>0){o=q;r=B?q.nodeValue.length:0;m=true;return}if(s.isBlock(q)||t[q.nodeName.toLowerCase()]){return}A=q}if(l&&A){o=A;m=true;r=0}}o=g[(p?"start":"end")+"Container"];r=g[(p?"start":"end")+"Offset"];t=s.schema.getNonEmptyElements();if(o.nodeType===9){o=s.getRoot();r=0}if(o===u){if(p){q=o.childNodes[r>0?r-1:0];if(q){v=q.nodeName.toLowerCase();if(t[q.nodeName]||q.nodeName=="TABLE"){return}}}if(o.hasChildNodes()){o=o.childNodes[Math.min(!p&&r>0?r-1:r,o.childNodes.length-1)];r=0;if(o.hasChildNodes()&&!/TABLE/.test(o.nodeName)){q=o;n=new a(o,u);do{if(q.nodeType===3&&q.nodeValue.length>0){r=p?0:q.nodeValue.length;o=q;m=true;break}if(t[q.nodeName.toLowerCase()]){r=s.nodeIndex(q);o=q.parentNode;if(q.nodeName=="IMG"&&!p){r++}m=true;break}}while(q=(p?n.next():n.prev()))}}}if(l){if(o.nodeType===3&&r===0){x(true)}if(o.nodeType===1){q=o.childNodes[r];if(q&&q.nodeName==="BR"&&!y(q)&&!y(q,true)){x(true,o.childNodes[r])}}}if(p&&!l&&o.nodeType===3&&r===o.nodeValue.length){x(false)}if(m){g["set"+(p?"Start":"End")](o,r)}}if(d.isIE){return}g=h.getRng();l=g.collapsed;k(true);if(!l){k()}if(m){if(l){g.collapse(true)}h.setRng(g,h.isForward())}},selectorChanged:function(g,j){var h=this,i;if(!h.selectorChangedData){h.selectorChangedData={};i={};h.editor.onNodeChange.addToTop(function(l,k,o){var p=h.dom,m=p.getParents(o,null,p.getRoot()),n={};e(h.selectorChangedData,function(r,q){e(m,function(s){if(p.is(s,q)){if(!i[q]){e(r,function(t){t(true,{node:s,selector:q,parents:m})});i[q]=r}n[q]=r;return false}})});e(i,function(r,q){if(!n[q]){delete i[q];e(r,function(s){s(false,{node:o,selector:q,parents:m})})}})})}if(!h.selectorChangedData[g]){h.selectorChangedData[g]=[]}h.selectorChangedData[g].push(j);return h},scrollIntoView:function(k){var j,h,g=this,i=g.dom;h=i.getViewPort(g.editor.getWin());j=i.getPos(k).y;if(j<h.y||j+25>h.y+h.h){g.editor.getWin().scrollTo(0,j<h.y?j:j-h.h+25)}},destroy:function(h){var g=this;g.win=null;if(!h){d.removeUnload(g.destroy)}},_fixIESelection:function(){var h=this.dom,n=h.doc,i=n.body,k,o,g;function j(p,s){var q=i.createTextRange();try{q.moveToPoint(p,s)}catch(r){q=null}return q}function m(q){var p;if(q.button){p=j(q.x,q.y);if(p){if(p.compareEndPoints("StartToStart",o)>0){p.setEndPoint("StartToStart",o)}else{p.setEndPoint("EndToEnd",o)}p.select()}}else{l()}}function l(){var p=n.selection.createRange();if(o&&!p.item&&p.compareEndPoints("StartToEnd",p)===0){o.select()}h.unbind(n,"mouseup",l);h.unbind(n,"mousemove",m);o=k=0}n.documentElement.unselectable=true;h.bind(n,["mousedown","contextmenu"],function(p){if(p.target.nodeName==="HTML"){if(k){l()}g=n.documentElement;if(g.scrollHeight>g.clientHeight){return}k=1;o=j(p.x,p.y);if(o){h.bind(n,"mouseup",l);h.bind(n,"mousemove",m);h.win.focus();o.select()}}})}})})(tinymce);(function(a){a.dom.Serializer=function(e,i,f){var h,b,d=a.isIE,g=a.each,c;if(!e.apply_source_formatting){e.indent=false}i=i||a.DOM;f=f||new a.html.Schema(e);e.entity_encoding=e.entity_encoding||"named";e.remove_trailing_brs="remove_trailing_brs" in e?e.remove_trailing_brs:true;h=new a.util.Dispatcher(self);b=new a.util.Dispatcher(self);c=new a.html.DomParser(e,f);c.addAttributeFilter("src,href,style",function(k,j){var o=k.length,l,q,n="data-mce-"+j,p=e.url_converter,r=e.url_converter_scope,m;while(o--){l=k[o];q=l.attributes.map[n];if(q!==m){l.attr(j,q.length>0?q:null);l.attr(n,null)}else{q=l.attributes.map[j];if(j==="style"){q=i.serializeStyle(i.parseStyle(q),l.name)}else{if(p){q=p.call(r,q,j,l.name)}}l.attr(j,q.length>0?q:null)}}});c.addAttributeFilter("class",function(j,k){var l=j.length,m,n;while(l--){m=j[l];n=m.attr("class").replace(/(?:^|\s)mce(Item\w+|Selected)(?!\S)/g,"");m.attr("class",n.length>0?n:null)}});c.addAttributeFilter("data-mce-type",function(j,l,k){var m=j.length,n;while(m--){n=j[m];if(n.attributes.map["data-mce-type"]==="bookmark"&&!k.cleanup){n.remove()}}});c.addAttributeFilter("data-mce-expando",function(j,l,k){var m=j.length;while(m--){j[m].attr(l,null)}});c.addNodeFilter("noscript",function(j){var k=j.length,l;while(k--){l=j[k].firstChild;if(l){l.value=a.html.Entities.decode(l.value)}}});c.addNodeFilter("script,style",function(k,l){var m=k.length,n,o;function j(p){return p.replace(/(<!--\[CDATA\[|\]\]-->)/g,"\n").replace(/^[\r\n]*|[\r\n]*$/g,"").replace(/^\s*((<!--)?(\s*\/\/)?\s*<!\[CDATA\[|(<!--\s*)?\/\*\s*<!\[CDATA\[\s*\*\/|(\/\/)?\s*<!--|\/\*\s*<!--\s*\*\/)\s*[\r\n]*/gi,"").replace(/\s*(\/\*\s*\]\]>\s*\*\/(-->)?|\s*\/\/\s*\]\]>(-->)?|\/\/\s*(-->)?|\]\]>|\/\*\s*-->\s*\*\/|\s*-->\s*)\s*$/g,"")}while(m--){n=k[m];o=n.firstChild?n.firstChild.value:"";if(l==="script"){n.attr("type",(n.attr("type")||"text/javascript").replace(/^mce\-/,""));if(o.length>0){n.firstChild.value="// <![CDATA[\n"+j(o)+"\n// ]]>"}}else{if(o.length>0){n.firstChild.value="<!--\n"+j(o)+"\n-->"}}}});c.addNodeFilter("#comment",function(j,k){var l=j.length,m;while(l--){m=j[l];if(m.value.indexOf("[CDATA[")===0){m.name="#cdata";m.type=4;m.value=m.value.replace(/^\[CDATA\[|\]\]$/g,"")}else{if(m.value.indexOf("mce:protected ")===0){m.name="#text";m.type=3;m.raw=true;m.value=unescape(m.value).substr(14)}}}});c.addNodeFilter("xml:namespace,input",function(j,k){var l=j.length,m;while(l--){m=j[l];if(m.type===7){m.remove()}else{if(m.type===1){if(k==="input"&&!("type" in m.attributes.map)){m.attr("type","text")}}}}});if(e.fix_list_elements){c.addNodeFilter("ul,ol",function(k,l){var m=k.length,n,j;while(m--){n=k[m];j=n.parent;if(j.name==="ul"||j.name==="ol"){if(n.prev&&n.prev.name==="li"){n.prev.append(n)}}}})}c.addAttributeFilter("data-mce-src,data-mce-href,data-mce-style",function(j,k){var l=j.length;while(l--){j[l].attr(k,null)}});return{schema:f,addNodeFilter:c.addNodeFilter,addAttributeFilter:c.addAttributeFilter,onPreProcess:h,onPostProcess:b,serialize:function(o,m){var l,p,k,j,n;if(d&&i.select("script,style,select,map").length>0){n=o.innerHTML;o=o.cloneNode(false);i.setHTML(o,n)}else{o=o.cloneNode(true)}l=o.ownerDocument.implementation;if(l.createHTMLDocument){p=l.createHTMLDocument("");g(o.nodeName=="BODY"?o.childNodes:[o],function(q){p.body.appendChild(p.importNode(q,true))});if(o.nodeName!="BODY"){o=p.body.firstChild}else{o=p.body}k=i.doc;i.doc=p}m=m||{};m.format=m.format||"html";if(!m.no_events){m.node=o;h.dispatch(self,m)}j=new a.html.Serializer(e,f);m.content=j.serialize(c.parse(a.trim(m.getInner?o.innerHTML:i.getOuterHTML(o)),m));if(!m.cleanup){m.content=m.content.replace(/\uFEFF/g,"")}if(!m.no_events){b.dispatch(self,m)}if(k){i.doc=k}m.node=null;return m.content},addRules:function(j){f.addValidElements(j)},setRules:function(j){f.setValidElements(j)}}}})(tinymce);(function(a){a.dom.ScriptLoader=function(h){var c=0,k=1,i=2,l={},j=[],e={},d=[],g=0,f;function b(m,v){var x=this,q=a.DOM,s,o,r,n;function p(){q.remove(n);if(s){s.onreadystatechange=s.onload=s=null}v()}function u(){if(typeof(console)!=="undefined"&&console.log){console.log("Failed to load: "+m)}}n=q.uniqueId();if(a.isIE6){o=new a.util.URI(m);r=location;if(o.host==r.hostname&&o.port==r.port&&(o.protocol+":")==r.protocol&&o.protocol.toLowerCase()!="file"){a.util.XHR.send({url:a._addVer(o.getURI()),success:function(y){var t=q.create("script",{type:"text/javascript"});t.text=y;document.getElementsByTagName("head")[0].appendChild(t);q.remove(t);p()},error:u});return}}s=document.createElement("script");s.id=n;s.type="text/javascript";s.src=a._addVer(m);if(!a.isIE){s.onload=p}s.onerror=u;if(!a.isOpera){s.onreadystatechange=function(){var t=s.readyState;if(t=="complete"||t=="loaded"){p()}}}(document.getElementsByTagName("head")[0]||document.body).appendChild(s)}this.isDone=function(m){return l[m]==i};this.markDone=function(m){l[m]=i};this.add=this.load=function(m,q,n){var o,p=l[m];if(p==f){j.push(m);l[m]=c}if(q){if(!e[m]){e[m]=[]}e[m].push({func:q,scope:n||this})}};this.loadQueue=function(n,m){this.loadScripts(j,n,m)};this.loadScripts=function(m,q,p){var o;function n(r){a.each(e[r],function(s){s.func.call(s.scope)});e[r]=f}d.push({func:q,scope:p||this});o=function(){var r=a.grep(m);m.length=0;a.each(r,function(s){if(l[s]==i){n(s);return}if(l[s]!=k){l[s]=k;g++;b(s,function(){l[s]=i;g--;n(s);o()})}});if(!g){a.each(d,function(s){s.func.call(s.scope)});d.length=0}};o()}};a.ScriptLoader=new a.dom.ScriptLoader()})(tinymce);(function(a){a.dom.RangeUtils=function(c){var b="\uFEFF";this.walk=function(d,s){var i=d.startContainer,l=d.startOffset,t=d.endContainer,m=d.endOffset,j,g,o,h,r,q,e;e=c.select("td.mceSelected,th.mceSelected");if(e.length>0){a.each(e,function(u){s([u])});return}function f(u){var v;v=u[0];if(v.nodeType===3&&v===i&&l>=v.nodeValue.length){u.splice(0,1)}v=u[u.length-1];if(m===0&&u.length>0&&v===t&&v.nodeType===3){u.splice(u.length-1,1)}return u}function p(x,v,u){var y=[];for(;x&&x!=u;x=x[v]){y.push(x)}return y}function n(v,u){do{if(v.parentNode==u){return v}v=v.parentNode}while(v)}function k(x,v,y){var u=y?"nextSibling":"previousSibling";for(h=x,r=h.parentNode;h&&h!=v;h=r){r=h.parentNode;q=p(h==x?h:h[u],u);if(q.length){if(!y){q.reverse()}s(f(q))}}}if(i.nodeType==1&&i.hasChildNodes()){i=i.childNodes[l]}if(t.nodeType==1&&t.hasChildNodes()){t=t.childNodes[Math.min(m-1,t.childNodes.length-1)]}if(i==t){return s(f([i]))}j=c.findCommonAncestor(i,t);for(h=i;h;h=h.parentNode){if(h===t){return k(i,j,true)}if(h===j){break}}for(h=t;h;h=h.parentNode){if(h===i){return k(t,j)}if(h===j){break}}g=n(i,j)||i;o=n(t,j)||t;k(i,g,true);q=p(g==i?g:g.nextSibling,"nextSibling",o==t?o.nextSibling:o);if(q.length){s(f(q))}k(t,o)};this.split=function(e){var h=e.startContainer,d=e.startOffset,i=e.endContainer,g=e.endOffset;function f(j,k){return j.splitText(k)}if(h==i&&h.nodeType==3){if(d>0&&d<h.nodeValue.length){i=f(h,d);h=i.previousSibling;if(g>d){g=g-d;h=i=f(i,g).previousSibling;g=i.nodeValue.length;d=0}else{g=0}}}else{if(h.nodeType==3&&d>0&&d<h.nodeValue.length){h=f(h,d);d=0}if(i.nodeType==3&&g>0&&g<i.nodeValue.length){i=f(i,g).previousSibling;g=i.nodeValue.length}}return{startContainer:h,startOffset:d,endContainer:i,endOffset:g}}};a.dom.RangeUtils.compareRanges=function(c,b){if(c&&b){if(c.item||c.duplicate){if(c.item&&b.item&&c.item(0)===b.item(0)){return true}if(c.isEqual&&b.isEqual&&b.isEqual(c)){return true}}else{return c.startContainer==b.startContainer&&c.startOffset==b.startOffset}}return false}})(tinymce);(function(b){var a=b.dom.Event,c=b.each;b.create("tinymce.ui.KeyboardNavigation",{KeyboardNavigation:function(e,f){var q=this,n=e.root,m=e.items,o=e.enableUpDown,i=e.enableLeftRight||!e.enableUpDown,l=e.excludeFromTabOrder,k,h,p,d,g;f=f||b.DOM;k=function(r){g=r.target.id};h=function(r){f.setAttrib(r.target.id,"tabindex","-1")};d=function(r){var s=f.get(g);f.setAttrib(s,"tabindex","0");s.focus()};q.focus=function(){f.get(g).focus()};q.destroy=function(){c(m,function(s){var t=f.get(s.id);f.unbind(t,"focus",k);f.unbind(t,"blur",h)});var r=f.get(n);f.unbind(r,"focus",d);f.unbind(r,"keydown",p);m=f=n=q.focus=k=h=p=d=null;q.destroy=function(){}};q.moveFocus=function(v,s){var r=-1,u=q.controls,t;if(!g){return}c(m,function(y,x){if(y.id===g){r=x;return false}});r+=v;if(r<0){r=m.length-1}else{if(r>=m.length){r=0}}t=m[r];f.setAttrib(g,"tabindex","-1");f.setAttrib(t.id,"tabindex","0");f.get(t.id).focus();if(e.actOnFocus){e.onAction(t.id)}if(s){a.cancel(s)}};p=function(z){var v=37,u=39,y=38,A=40,r=27,t=14,s=13,x=32;switch(z.keyCode){case v:if(i){q.moveFocus(-1)}break;case u:if(i){q.moveFocus(1)}break;case y:if(o){q.moveFocus(-1)}break;case A:if(o){q.moveFocus(1)}break;case r:if(e.onCancel){e.onCancel();a.cancel(z)}break;case t:case s:case x:if(e.onAction){e.onAction(g);a.cancel(z)}break}};c(m,function(t,r){var s,u;if(!t.id){t.id=f.uniqueId("_mce_item_")}u=f.get(t.id);if(l){f.bind(u,"blur",h);s="-1"}else{s=(r===0?"0":"-1")}u.setAttribute("tabindex",s);f.bind(u,"focus",k)});if(m[0]){g=m[0].id}f.setAttrib(n,"tabindex","-1");var j=f.get(n);f.bind(j,"focus",d);f.bind(j,"keydown",p)}})})(tinymce);(function(c){var b=c.DOM,a=c.is;c.create("tinymce.ui.Control",{Control:function(f,e,d){this.id=f;this.settings=e=e||{};this.rendered=false;this.onRender=new c.util.Dispatcher(this);this.classPrefix="";this.scope=e.scope||this;this.disabled=0;this.active=0;this.editor=d},setAriaProperty:function(f,e){var d=b.get(this.id+"_aria")||b.get(this.id);if(d){b.setAttrib(d,"aria-"+f,!!e)}},focus:function(){b.get(this.id).focus()},setDisabled:function(d){if(d!=this.disabled){this.setAriaProperty("disabled",d);this.setState("Disabled",d);this.setState("Enabled",!d);this.disabled=d}},isDisabled:function(){return this.disabled},setActive:function(d){if(d!=this.active){this.setState("Active",d);this.active=d;this.setAriaProperty("pressed",d)}},isActive:function(){return this.active},setState:function(f,d){var e=b.get(this.id);f=this.classPrefix+f;if(d){b.addClass(e,f)}else{b.removeClass(e,f)}},isRendered:function(){return this.rendered},renderHTML:function(){},renderTo:function(d){b.setHTML(d,this.renderHTML())},postRender:function(){var e=this,d;if(a(e.disabled)){d=e.disabled;e.disabled=-1;e.setDisabled(d)}if(a(e.active)){d=e.active;e.active=-1;e.setActive(d)}},remove:function(){b.remove(this.id);this.destroy()},destroy:function(){c.dom.Event.clear(this.id)}})})(tinymce);tinymce.create("tinymce.ui.Container:tinymce.ui.Control",{Container:function(c,b,a){this.parent(c,b,a);this.controls=[];this.lookup={}},add:function(a){this.lookup[a.id]=a;this.controls.push(a);return a},get:function(a){return this.lookup[a]}});tinymce.create("tinymce.ui.Separator:tinymce.ui.Control",{Separator:function(b,a){this.parent(b,a);this.classPrefix="mceSeparator";this.setDisabled(true)},renderHTML:function(){return tinymce.DOM.createHTML("span",{"class":this.classPrefix,role:"separator","aria-orientation":"vertical",tabindex:"-1"})}});(function(d){var c=d.is,b=d.DOM,e=d.each,a=d.walk;d.create("tinymce.ui.MenuItem:tinymce.ui.Control",{MenuItem:function(g,f){this.parent(g,f);this.classPrefix="mceMenuItem"},setSelected:function(f){this.setState("Selected",f);this.setAriaProperty("checked",!!f);this.selected=f},isSelected:function(){return this.selected},postRender:function(){var f=this;f.parent();if(c(f.selected)){f.setSelected(f.selected)}}})})(tinymce);(function(d){var c=d.is,b=d.DOM,e=d.each,a=d.walk;d.create("tinymce.ui.Menu:tinymce.ui.MenuItem",{Menu:function(h,g){var f=this;f.parent(h,g);f.items={};f.collapsed=false;f.menuCount=0;f.onAddItem=new d.util.Dispatcher(this)},expand:function(g){var f=this;if(g){a(f,function(h){if(h.expand){h.expand()}},"items",f)}f.collapsed=false},collapse:function(g){var f=this;if(g){a(f,function(h){if(h.collapse){h.collapse()}},"items",f)}f.collapsed=true},isCollapsed:function(){return this.collapsed},add:function(f){if(!f.settings){f=new d.ui.MenuItem(f.id||b.uniqueId(),f)}this.onAddItem.dispatch(this,f);return this.items[f.id]=f},addSeparator:function(){return this.add({separator:true})},addMenu:function(f){if(!f.collapse){f=this.createMenu(f)}this.menuCount++;return this.add(f)},hasMenus:function(){return this.menuCount!==0},remove:function(f){delete this.items[f.id]},removeAll:function(){var f=this;a(f,function(g){if(g.removeAll){g.removeAll()}else{g.remove()}g.destroy()},"items",f);f.items={}},createMenu:function(g){var f=new d.ui.Menu(g.id||b.uniqueId(),g);f.onAddItem.add(this.onAddItem.dispatch,this.onAddItem);return f}})})(tinymce);(function(e){var d=e.is,c=e.DOM,f=e.each,a=e.dom.Event,b=e.dom.Element;e.create("tinymce.ui.DropMenu:tinymce.ui.Menu",{DropMenu:function(h,g){g=g||{};g.container=g.container||c.doc.body;g.offset_x=g.offset_x||0;g.offset_y=g.offset_y||0;g.vp_offset_x=g.vp_offset_x||0;g.vp_offset_y=g.vp_offset_y||0;if(d(g.icons)&&!g.icons){g["class"]+=" mceNoIcons"}this.parent(h,g);this.onShowMenu=new e.util.Dispatcher(this);this.onHideMenu=new e.util.Dispatcher(this);this.classPrefix="mceMenu"},createMenu:function(j){var h=this,i=h.settings,g;j.container=j.container||i.container;j.parent=h;j.constrain=j.constrain||i.constrain;j["class"]=j["class"]||i["class"];j.vp_offset_x=j.vp_offset_x||i.vp_offset_x;j.vp_offset_y=j.vp_offset_y||i.vp_offset_y;j.keyboard_focus=i.keyboard_focus;g=new e.ui.DropMenu(j.id||c.uniqueId(),j);g.onAddItem.add(h.onAddItem.dispatch,h.onAddItem);return g},focus:function(){var g=this;if(g.keyboardNav){g.keyboardNav.focus()}},update:function(){var i=this,j=i.settings,g=c.get("menu_"+i.id+"_tbl"),l=c.get("menu_"+i.id+"_co"),h,k;h=j.max_width?Math.min(g.offsetWidth,j.max_width):g.offsetWidth;k=j.max_height?Math.min(g.offsetHeight,j.max_height):g.offsetHeight;if(!c.boxModel){i.element.setStyles({width:h+2,height:k+2})}else{i.element.setStyles({width:h,height:k})}if(j.max_width){c.setStyle(l,"width",h)}if(j.max_height){c.setStyle(l,"height",k);if(g.clientHeight<j.max_height){c.setStyle(l,"overflow","hidden")}}},showMenu:function(p,n,r){var z=this,A=z.settings,o,g=c.getViewPort(),u,l,v,q,i=2,k,j,m=z.classPrefix;z.collapse(1);if(z.isMenuVisible){return}if(!z.rendered){o=c.add(z.settings.container,z.renderNode());f(z.items,function(h){h.postRender()});z.element=new b("menu_"+z.id,{blocker:1,container:A.container})}else{o=c.get("menu_"+z.id)}if(!e.isOpera){c.setStyles(o,{left:-65535,top:-65535})}c.show(o);z.update();p+=A.offset_x||0;n+=A.offset_y||0;g.w-=4;g.h-=4;if(A.constrain){u=o.clientWidth-i;l=o.clientHeight-i;v=g.x+g.w;q=g.y+g.h;if((p+A.vp_offset_x+u)>v){p=r?r-u:Math.max(0,(v-A.vp_offset_x)-u)}if((n+A.vp_offset_y+l)>q){n=Math.max(0,(q-A.vp_offset_y)-l)}}c.setStyles(o,{left:p,top:n});z.element.update();z.isMenuVisible=1;z.mouseClickFunc=a.add(o,"click",function(s){var h;s=s.target;if(s&&(s=c.getParent(s,"tr"))&&!c.hasClass(s,m+"ItemSub")){h=z.items[s.id];if(h.isDisabled()){return}k=z;while(k){if(k.hideMenu){k.hideMenu()}k=k.settings.parent}if(h.settings.onclick){h.settings.onclick(s)}return false}});if(z.hasMenus()){z.mouseOverFunc=a.add(o,"mouseover",function(x){var h,t,s;x=x.target;if(x&&(x=c.getParent(x,"tr"))){h=z.items[x.id];if(z.lastMenu){z.lastMenu.collapse(1)}if(h.isDisabled()){return}if(x&&c.hasClass(x,m+"ItemSub")){t=c.getRect(x);h.showMenu((t.x+t.w-i),t.y-i,t.x);z.lastMenu=h;c.addClass(c.get(h.id).firstChild,m+"ItemActive")}}})}a.add(o,"keydown",z._keyHandler,z);z.onShowMenu.dispatch(z);if(A.keyboard_focus){z._setupKeyboardNav()}},hideMenu:function(j){var g=this,i=c.get("menu_"+g.id),h;if(!g.isMenuVisible){return}if(g.keyboardNav){g.keyboardNav.destroy()}a.remove(i,"mouseover",g.mouseOverFunc);a.remove(i,"click",g.mouseClickFunc);a.remove(i,"keydown",g._keyHandler);c.hide(i);g.isMenuVisible=0;if(!j){g.collapse(1)}if(g.element){g.element.hide()}if(h=c.get(g.id)){c.removeClass(h.firstChild,g.classPrefix+"ItemActive")}g.onHideMenu.dispatch(g)},add:function(i){var g=this,h;i=g.parent(i);if(g.isRendered&&(h=c.get("menu_"+g.id))){g._add(c.select("tbody",h)[0],i)}return i},collapse:function(g){this.parent(g);this.hideMenu(1)},remove:function(g){c.remove(g.id);this.destroy();return this.parent(g)},destroy:function(){var g=this,h=c.get("menu_"+g.id);if(g.keyboardNav){g.keyboardNav.destroy()}a.remove(h,"mouseover",g.mouseOverFunc);a.remove(c.select("a",h),"focus",g.mouseOverFunc);a.remove(h,"click",g.mouseClickFunc);a.remove(h,"keydown",g._keyHandler);if(g.element){g.element.remove()}c.remove(h)},renderNode:function(){var i=this,j=i.settings,l,h,k,g;g=c.create("div",{role:"listbox",id:"menu_"+i.id,"class":j["class"],style:"position:absolute;left:0;top:0;z-index:200000;outline:0"});if(i.settings.parent){c.setAttrib(g,"aria-parent","menu_"+i.settings.parent.id)}k=c.add(g,"div",{role:"presentation",id:"menu_"+i.id+"_co","class":i.classPrefix+(j["class"]?" "+j["class"]:"")});i.element=new b("menu_"+i.id,{blocker:1,container:j.container});if(j.menu_line){c.add(k,"span",{"class":i.classPrefix+"Line"})}l=c.add(k,"table",{role:"presentation",id:"menu_"+i.id+"_tbl",border:0,cellPadding:0,cellSpacing:0});h=c.add(l,"tbody");f(i.items,function(m){i._add(h,m)});i.rendered=true;return g},_setupKeyboardNav:function(){var i,h,g=this;i=c.get("menu_"+g.id);h=c.select("a[role=option]","menu_"+g.id);h.splice(0,0,i);g.keyboardNav=new e.ui.KeyboardNavigation({root:"menu_"+g.id,items:h,onCancel:function(){g.hideMenu()},enableUpDown:true});i.focus()},_keyHandler:function(g){var h=this,i;switch(g.keyCode){case 37:if(h.settings.parent){h.hideMenu();h.settings.parent.focus();a.cancel(g)}break;case 39:if(h.mouseOverFunc){h.mouseOverFunc(g)}break}},_add:function(j,h){var i,q=h.settings,p,l,k,m=this.classPrefix,g;if(q.separator){l=c.add(j,"tr",{id:h.id,"class":m+"ItemSeparator"});c.add(l,"td",{"class":m+"ItemSeparator"});if(i=l.previousSibling){c.addClass(i,"mceLast")}return}i=l=c.add(j,"tr",{id:h.id,"class":m+"Item "+m+"ItemEnabled"});i=k=c.add(i,q.titleItem?"th":"td");i=p=c.add(i,"a",{id:h.id+"_aria",role:q.titleItem?"presentation":"option",href:"javascript:;",onclick:"return false;",onmousedown:"return false;"});if(q.parent){c.setAttrib(p,"aria-haspopup","true");c.setAttrib(p,"aria-owns","menu_"+h.id)}c.addClass(k,q["class"]);g=c.add(i,"span",{"class":"mceIcon"+(q.icon?" mce_"+q.icon:"")});if(q.icon_src){c.add(g,"img",{src:q.icon_src})}i=c.add(i,q.element||"span",{"class":"mceText",title:h.settings.title},h.settings.title);if(h.settings.style){if(typeof h.settings.style=="function"){h.settings.style=h.settings.style()}c.setAttrib(i,"style",h.settings.style)}if(j.childNodes.length==1){c.addClass(l,"mceFirst")}if((i=l.previousSibling)&&c.hasClass(i,m+"ItemSeparator")){c.addClass(l,"mceFirst")}if(h.collapse){c.addClass(l,m+"ItemSub")}if(i=l.previousSibling){c.removeClass(i,"mceLast")}c.addClass(l,"mceLast")}})})(tinymce);(function(b){var a=b.DOM;b.create("tinymce.ui.Button:tinymce.ui.Control",{Button:function(e,d,c){this.parent(e,d,c);this.classPrefix="mceButton"},renderHTML:function(){var f=this.classPrefix,e=this.settings,d,c;c=a.encode(e.label||"");d='<a role="button" id="'+this.id+'" href="javascript:;" class="'+f+" "+f+"Enabled "+e["class"]+(c?" "+f+"Labeled":"")+'" onmousedown="return false;" onclick="return false;" aria-labelledby="'+this.id+'_voice" title="'+a.encode(e.title)+'">';if(e.image&&!(this.editor&&this.editor.forcedHighContrastMode)){d+='<span class="mceIcon '+e["class"]+'"><img class="mceIcon" src="'+e.image+'" alt="'+a.encode(e.title)+'" /></span>'+(c?'<span class="'+f+'Label">'+c+"</span>":"")}else{d+='<span class="mceIcon '+e["class"]+'"></span>'+(c?'<span class="'+f+'Label">'+c+"</span>":"")}d+='<span class="mceVoiceLabel mceIconOnly" style="display: none;" id="'+this.id+'_voice">'+e.title+"</span>";d+="</a>";return d},postRender:function(){var d=this,e=d.settings,c;if(b.isIE&&d.editor){b.dom.Event.add(d.id,"mousedown",function(f){var g=d.editor.selection.getNode().nodeName;c=g==="IMG"?d.editor.selection.getBookmark():null})}b.dom.Event.add(d.id,"click",function(f){if(!d.isDisabled()){if(b.isIE&&d.editor&&c!==null){d.editor.selection.moveToBookmark(c)}return e.onclick.call(e.scope,f)}});b.dom.Event.add(d.id,"keyup",function(f){if(!d.isDisabled()&&f.keyCode==b.VK.SPACEBAR){return e.onclick.call(e.scope,f)}})}})})(tinymce);(function(e){var d=e.DOM,b=e.dom.Event,f=e.each,a=e.util.Dispatcher,c;e.create("tinymce.ui.ListBox:tinymce.ui.Control",{ListBox:function(j,i,g){var h=this;h.parent(j,i,g);h.items=[];h.onChange=new a(h);h.onPostRender=new a(h);h.onAdd=new a(h);h.onRenderMenu=new e.util.Dispatcher(this);h.classPrefix="mceListBox";h.marked={}},select:function(h){var g=this,j,i;g.marked={};if(h==c){return g.selectByIndex(-1)}if(h&&typeof(h)=="function"){i=h}else{i=function(k){return k==h}}if(h!=g.selectedValue){f(g.items,function(l,k){if(i(l.value)){j=1;g.selectByIndex(k);return false}});if(!j){g.selectByIndex(-1)}}},selectByIndex:function(g){var i=this,j,k,h;i.marked={};if(g!=i.selectedIndex){j=d.get(i.id+"_text");h=d.get(i.id+"_voiceDesc");k=i.items[g];if(k){i.selectedValue=k.value;i.selectedIndex=g;d.setHTML(j,d.encode(k.title));d.setHTML(h,i.settings.title+" - "+k.title);d.removeClass(j,"mceTitle");d.setAttrib(i.id,"aria-valuenow",k.title)}else{d.setHTML(j,d.encode(i.settings.title));d.setHTML(h,d.encode(i.settings.title));d.addClass(j,"mceTitle");i.selectedValue=i.selectedIndex=null;d.setAttrib(i.id,"aria-valuenow",i.settings.title)}j=0}},mark:function(g){this.marked[g]=true},add:function(j,g,i){var h=this;i=i||{};i=e.extend(i,{title:j,value:g});h.items.push(i);h.onAdd.dispatch(h,i)},getLength:function(){return this.items.length},renderHTML:function(){var j="",g=this,i=g.settings,k=g.classPrefix;j='<span role="listbox" aria-haspopup="true" aria-labelledby="'+g.id+'_voiceDesc" aria-describedby="'+g.id+'_voiceDesc"><table role="presentation" tabindex="0" id="'+g.id+'" cellpadding="0" cellspacing="0" class="'+k+" "+k+"Enabled"+(i["class"]?(" "+i["class"]):"")+'"><tbody><tr>';j+="<td>"+d.createHTML("span",{id:g.id+"_voiceDesc","class":"voiceLabel",style:"display:none;"},g.settings.title);j+=d.createHTML("a",{id:g.id+"_text",tabindex:-1,href:"javascript:;","class":"mceText",onclick:"return false;",onmousedown:"return false;"},d.encode(g.settings.title))+"</td>";j+="<td>"+d.createHTML("a",{id:g.id+"_open",tabindex:-1,href:"javascript:;","class":"mceOpen",onclick:"return false;",onmousedown:"return false;"},'<span><span style="display:none;" class="mceIconOnly" aria-hidden="true">\u25BC</span></span>')+"</td>";j+="</tr></tbody></table></span>";return j},showMenu:function(){var h=this,j,i=d.get(this.id),g;if(h.isDisabled()||h.items.length===0){return}if(h.menu&&h.menu.isMenuVisible){return h.hideMenu()}if(!h.isMenuRendered){h.renderMenu();h.isMenuRendered=true}j=d.getPos(i);g=h.menu;g.settings.offset_x=j.x;g.settings.offset_y=j.y;g.settings.keyboard_focus=!e.isOpera;f(h.items,function(k){if(g.items[k.id]){g.items[k.id].setSelected(0)}});f(h.items,function(k){if(g.items[k.id]&&h.marked[k.value]){g.items[k.id].setSelected(1)}if(k.value===h.selectedValue){g.items[k.id].setSelected(1)}});g.showMenu(0,i.clientHeight);b.add(d.doc,"mousedown",h.hideMenu,h);d.addClass(h.id,h.classPrefix+"Selected")},hideMenu:function(h){var g=this;if(g.menu&&g.menu.isMenuVisible){d.removeClass(g.id,g.classPrefix+"Selected");if(h&&h.type=="mousedown"&&(h.target.id==g.id+"_text"||h.target.id==g.id+"_open")){return}if(!h||!d.getParent(h.target,".mceMenu")){d.removeClass(g.id,g.classPrefix+"Selected");b.remove(d.doc,"mousedown",g.hideMenu,g);g.menu.hideMenu()}}},renderMenu:function(){var h=this,g;g=h.settings.control_manager.createDropMenu(h.id+"_menu",{menu_line:1,"class":h.classPrefix+"Menu mceNoIcons",max_width:250,max_height:150});g.onHideMenu.add(function(){h.hideMenu();h.focus()});g.add({title:h.settings.title,"class":"mceMenuItemTitle",onclick:function(){if(h.settings.onselect("")!==false){h.select("")}}});f(h.items,function(i){if(i.value===c){g.add({title:i.title,role:"option","class":"mceMenuItemTitle",onclick:function(){if(h.settings.onselect("")!==false){h.select("")}}})}else{i.id=d.uniqueId();i.role="option";i.onclick=function(){if(h.settings.onselect(i.value)!==false){h.select(i.value)}};g.add(i)}});h.onRenderMenu.dispatch(h,g);h.menu=g},postRender:function(){var g=this,h=g.classPrefix;b.add(g.id,"click",g.showMenu,g);b.add(g.id,"keydown",function(i){if(i.keyCode==32){g.showMenu(i);b.cancel(i)}});b.add(g.id,"focus",function(){if(!g._focused){g.keyDownHandler=b.add(g.id,"keydown",function(i){if(i.keyCode==40){g.showMenu();b.cancel(i)}});g.keyPressHandler=b.add(g.id,"keypress",function(j){var i;if(j.keyCode==13){i=g.selectedValue;g.selectedValue=null;b.cancel(j);g.settings.onselect(i)}})}g._focused=1});b.add(g.id,"blur",function(){b.remove(g.id,"keydown",g.keyDownHandler);b.remove(g.id,"keypress",g.keyPressHandler);g._focused=0});if(e.isIE6||!d.boxModel){b.add(g.id,"mouseover",function(){if(!d.hasClass(g.id,h+"Disabled")){d.addClass(g.id,h+"Hover")}});b.add(g.id,"mouseout",function(){if(!d.hasClass(g.id,h+"Disabled")){d.removeClass(g.id,h+"Hover")}})}g.onPostRender.dispatch(g,d.get(g.id))},destroy:function(){this.parent();b.clear(this.id+"_text");b.clear(this.id+"_open")}})})(tinymce);(function(e){var d=e.DOM,b=e.dom.Event,f=e.each,a=e.util.Dispatcher,c;e.create("tinymce.ui.NativeListBox:tinymce.ui.ListBox",{NativeListBox:function(h,g){this.parent(h,g);this.classPrefix="mceNativeListBox"},setDisabled:function(g){d.get(this.id).disabled=g;this.setAriaProperty("disabled",g)},isDisabled:function(){return d.get(this.id).disabled},select:function(h){var g=this,j,i;if(h==c){return g.selectByIndex(-1)}if(h&&typeof(h)=="function"){i=h}else{i=function(k){return k==h}}if(h!=g.selectedValue){f(g.items,function(l,k){if(i(l.value)){j=1;g.selectByIndex(k);return false}});if(!j){g.selectByIndex(-1)}}},selectByIndex:function(g){d.get(this.id).selectedIndex=g+1;this.selectedValue=this.items[g]?this.items[g].value:null},add:function(k,h,g){var j,i=this;g=g||{};g.value=h;if(i.isRendered()){d.add(d.get(this.id),"option",g,k)}j={title:k,value:h,attribs:g};i.items.push(j);i.onAdd.dispatch(i,j)},getLength:function(){return this.items.length},renderHTML:function(){var i,g=this;i=d.createHTML("option",{value:""},"-- "+g.settings.title+" --");f(g.items,function(h){i+=d.createHTML("option",{value:h.value},h.title)});i=d.createHTML("select",{id:g.id,"class":"mceNativeListBox","aria-labelledby":g.id+"_aria"},i);i+=d.createHTML("span",{id:g.id+"_aria",style:"display: none"},g.settings.title);return i},postRender:function(){var h=this,i,j=true;h.rendered=true;function g(l){var k=h.items[l.target.selectedIndex-1];if(k&&(k=k.value)){h.onChange.dispatch(h,k);if(h.settings.onselect){h.settings.onselect(k)}}}b.add(h.id,"change",g);b.add(h.id,"keydown",function(l){var k;b.remove(h.id,"change",i);j=false;k=b.add(h.id,"blur",function(){if(j){return}j=true;b.add(h.id,"change",g);b.remove(h.id,"blur",k)});if(e.isWebKit&&(l.keyCode==37||l.keyCode==39)){return b.prevent(l)}if(l.keyCode==13||l.keyCode==32){g(l);return b.cancel(l)}});h.onPostRender.dispatch(h,d.get(h.id))}})})(tinymce);(function(c){var b=c.DOM,a=c.dom.Event,d=c.each;c.create("tinymce.ui.MenuButton:tinymce.ui.Button",{MenuButton:function(g,f,e){this.parent(g,f,e);this.onRenderMenu=new c.util.Dispatcher(this);f.menu_container=f.menu_container||b.doc.body},showMenu:function(){var g=this,j,i,h=b.get(g.id),f;if(g.isDisabled()){return}if(!g.isMenuRendered){g.renderMenu();g.isMenuRendered=true}if(g.isMenuVisible){return g.hideMenu()}j=b.getPos(g.settings.menu_container);i=b.getPos(h);f=g.menu;f.settings.offset_x=i.x;f.settings.offset_y=i.y;f.settings.vp_offset_x=i.x;f.settings.vp_offset_y=i.y;f.settings.keyboard_focus=g._focused;f.showMenu(0,h.firstChild.clientHeight);a.add(b.doc,"mousedown",g.hideMenu,g);g.setState("Selected",1);g.isMenuVisible=1},renderMenu:function(){var f=this,e;e=f.settings.control_manager.createDropMenu(f.id+"_menu",{menu_line:1,"class":this.classPrefix+"Menu",icons:f.settings.icons});e.onHideMenu.add(function(){f.hideMenu();f.focus()});f.onRenderMenu.dispatch(f,e);f.menu=e},hideMenu:function(g){var f=this;if(g&&g.type=="mousedown"&&b.getParent(g.target,function(h){return h.id===f.id||h.id===f.id+"_open"})){return}if(!g||!b.getParent(g.target,".mceMenu")){f.setState("Selected",0);a.remove(b.doc,"mousedown",f.hideMenu,f);if(f.menu){f.menu.hideMenu()}}f.isMenuVisible=0},postRender:function(){var e=this,f=e.settings;a.add(e.id,"click",function(){if(!e.isDisabled()){if(f.onclick){f.onclick(e.value)}e.showMenu()}})}})})(tinymce);(function(c){var b=c.DOM,a=c.dom.Event,d=c.each;c.create("tinymce.ui.SplitButton:tinymce.ui.MenuButton",{SplitButton:function(g,f,e){this.parent(g,f,e);this.classPrefix="mceSplitButton"},renderHTML:function(){var i,f=this,g=f.settings,e;i="<tbody><tr>";if(g.image){e=b.createHTML("img ",{src:g.image,role:"presentation","class":"mceAction "+g["class"]})}else{e=b.createHTML("span",{"class":"mceAction "+g["class"]},"")}e+=b.createHTML("span",{"class":"mceVoiceLabel mceIconOnly",id:f.id+"_voice",style:"display:none;"},g.title);i+="<td >"+b.createHTML("a",{role:"button",id:f.id+"_action",tabindex:"-1",href:"javascript:;","class":"mceAction "+g["class"],onclick:"return false;",onmousedown:"return false;",title:g.title},e)+"</td>";e=b.createHTML("span",{"class":"mceOpen "+g["class"]},'<span style="display:none;" class="mceIconOnly" aria-hidden="true">\u25BC</span>');i+="<td >"+b.createHTML("a",{role:"button",id:f.id+"_open",tabindex:"-1",href:"javascript:;","class":"mceOpen "+g["class"],onclick:"return false;",onmousedown:"return false;",title:g.title},e)+"</td>";i+="</tr></tbody>";i=b.createHTML("table",{role:"presentation","class":"mceSplitButton mceSplitButtonEnabled "+g["class"],cellpadding:"0",cellspacing:"0",title:g.title},i);return b.createHTML("div",{id:f.id,role:"button",tabindex:"0","aria-labelledby":f.id+"_voice","aria-haspopup":"true"},i)},postRender:function(){var e=this,g=e.settings,f;if(g.onclick){f=function(h){if(!e.isDisabled()){g.onclick(e.value);a.cancel(h)}};a.add(e.id+"_action","click",f);a.add(e.id,["click","keydown"],function(h){var k=32,m=14,i=13,j=38,l=40;if((h.keyCode===32||h.keyCode===13||h.keyCode===14)&&!h.altKey&&!h.ctrlKey&&!h.metaKey){f();a.cancel(h)}else{if(h.type==="click"||h.keyCode===l){e.showMenu();a.cancel(h)}}})}a.add(e.id+"_open","click",function(h){e.showMenu();a.cancel(h)});a.add([e.id,e.id+"_open"],"focus",function(){e._focused=1});a.add([e.id,e.id+"_open"],"blur",function(){e._focused=0});if(c.isIE6||!b.boxModel){a.add(e.id,"mouseover",function(){if(!b.hasClass(e.id,"mceSplitButtonDisabled")){b.addClass(e.id,"mceSplitButtonHover")}});a.add(e.id,"mouseout",function(){if(!b.hasClass(e.id,"mceSplitButtonDisabled")){b.removeClass(e.id,"mceSplitButtonHover")}})}},destroy:function(){this.parent();a.clear(this.id+"_action");a.clear(this.id+"_open");a.clear(this.id)}})})(tinymce);(function(d){var c=d.DOM,a=d.dom.Event,b=d.is,e=d.each;d.create("tinymce.ui.ColorSplitButton:tinymce.ui.SplitButton",{ColorSplitButton:function(i,h,f){var g=this;g.parent(i,h,f);g.settings=h=d.extend({colors:"000000,993300,333300,003300,003366,000080,333399,333333,800000,FF6600,808000,008000,008080,0000FF,666699,808080,FF0000,FF9900,99CC00,339966,33CCCC,3366FF,800080,999999,FF00FF,FFCC00,FFFF00,00FF00,00FFFF,00CCFF,993366,C0C0C0,FF99CC,FFCC99,FFFF99,CCFFCC,CCFFFF,99CCFF,CC99FF,FFFFFF",grid_width:8,default_color:"#888888"},g.settings);g.onShowMenu=new d.util.Dispatcher(g);g.onHideMenu=new d.util.Dispatcher(g);g.value=h.default_color},showMenu:function(){var f=this,g,j,i,h;if(f.isDisabled()){return}if(!f.isMenuRendered){f.renderMenu();f.isMenuRendered=true}if(f.isMenuVisible){return f.hideMenu()}i=c.get(f.id);c.show(f.id+"_menu");c.addClass(i,"mceSplitButtonSelected");h=c.getPos(i);c.setStyles(f.id+"_menu",{left:h.x,top:h.y+i.firstChild.clientHeight,zIndex:200000});i=0;a.add(c.doc,"mousedown",f.hideMenu,f);f.onShowMenu.dispatch(f);if(f._focused){f._keyHandler=a.add(f.id+"_menu","keydown",function(k){if(k.keyCode==27){f.hideMenu()}});c.select("a",f.id+"_menu")[0].focus()}f.keyboardNav=new d.ui.KeyboardNavigation({root:f.id+"_menu",items:c.select("a",f.id+"_menu"),onCancel:function(){f.hideMenu();f.focus()}});f.keyboardNav.focus();f.isMenuVisible=1},hideMenu:function(g){var f=this;if(f.isMenuVisible){if(g&&g.type=="mousedown"&&c.getParent(g.target,function(h){return h.id===f.id+"_open"})){return}if(!g||!c.getParent(g.target,".mceSplitButtonMenu")){c.removeClass(f.id,"mceSplitButtonSelected");a.remove(c.doc,"mousedown",f.hideMenu,f);a.remove(f.id+"_menu","keydown",f._keyHandler);c.hide(f.id+"_menu")}f.isMenuVisible=0;f.onHideMenu.dispatch();f.keyboardNav.destroy()}},renderMenu:function(){var p=this,h,k=0,q=p.settings,g,j,l,o,f;o=c.add(q.menu_container,"div",{role:"listbox",id:p.id+"_menu","class":q.menu_class+" "+q["class"],style:"position:absolute;left:0;top:-1000px;"});h=c.add(o,"div",{"class":q["class"]+" mceSplitButtonMenu"});c.add(h,"span",{"class":"mceMenuLine"});g=c.add(h,"table",{role:"presentation","class":"mceColorSplitMenu"});j=c.add(g,"tbody");k=0;e(b(q.colors,"array")?q.colors:q.colors.split(","),function(m){m=m.replace(/^#/,"");if(!k--){l=c.add(j,"tr");k=q.grid_width-1}g=c.add(l,"td");var i={href:"javascript:;",style:{backgroundColor:"#"+m},title:p.editor.getLang("colors."+m,m),"data-mce-color":"#"+m};if(!d.isIE){i.role="option"}g=c.add(g,"a",i);if(p.editor.forcedHighContrastMode){g=c.add(g,"canvas",{width:16,height:16,"aria-hidden":"true"});if(g.getContext&&(f=g.getContext("2d"))){f.fillStyle="#"+m;f.fillRect(0,0,16,16)}else{c.remove(g)}}});if(q.more_colors_func){g=c.add(j,"tr");g=c.add(g,"td",{colspan:q.grid_width,"class":"mceMoreColors"});g=c.add(g,"a",{role:"option",id:p.id+"_more",href:"javascript:;",onclick:"return false;","class":"mceMoreColors"},q.more_colors_title);a.add(g,"click",function(i){q.more_colors_func.call(q.more_colors_scope||this);return a.cancel(i)})}c.addClass(h,"mceColorSplitMenu");a.add(p.id+"_menu","mousedown",function(i){return a.cancel(i)});a.add(p.id+"_menu","click",function(i){var m;i=c.getParent(i.target,"a",j);if(i&&i.nodeName.toLowerCase()=="a"&&(m=i.getAttribute("data-mce-color"))){p.setColor(m)}return false});return o},setColor:function(f){this.displayColor(f);this.hideMenu();this.settings.onselect(f)},displayColor:function(g){var f=this;c.setStyle(f.id+"_preview","backgroundColor",g);f.value=g},postRender:function(){var f=this,g=f.id;f.parent();c.add(g+"_action","div",{id:g+"_preview","class":"mceColorPreview"});c.setStyle(f.id+"_preview","backgroundColor",f.value)},destroy:function(){var f=this;f.parent();a.clear(f.id+"_menu");a.clear(f.id+"_more");c.remove(f.id+"_menu");if(f.keyboardNav){f.keyboardNav.destroy()}}})})(tinymce);(function(b){var d=b.DOM,c=b.each,a=b.dom.Event;b.create("tinymce.ui.ToolbarGroup:tinymce.ui.Container",{renderHTML:function(){var f=this,i=[],e=f.controls,j=b.each,g=f.settings;i.push('<div id="'+f.id+'" role="group" aria-labelledby="'+f.id+'_voice">');i.push("<span role='application'>");i.push('<span id="'+f.id+'_voice" class="mceVoiceLabel" style="display:none;">'+d.encode(g.name)+"</span>");j(e,function(h){i.push(h.renderHTML())});i.push("</span>");i.push("</div>");return i.join("")},focus:function(){var e=this;d.get(e.id).focus()},postRender:function(){var f=this,e=[];c(f.controls,function(g){c(g.controls,function(h){if(h.id){e.push(h)}})});f.keyNav=new b.ui.KeyboardNavigation({root:f.id,items:e,onCancel:function(){if(b.isWebKit){d.get(f.editor.id+"_ifr").focus()}f.editor.focus()},excludeFromTabOrder:!f.settings.tab_focus_toolbar})},destroy:function(){var e=this;e.parent();e.keyNav.destroy();a.clear(e.id)}})})(tinymce);(function(a){var c=a.DOM,b=a.each;a.create("tinymce.ui.Toolbar:tinymce.ui.Container",{renderHTML:function(){var m=this,f="",j,k,n=m.settings,e,d,g,l;l=m.controls;for(e=0;e<l.length;e++){k=l[e];d=l[e-1];g=l[e+1];if(e===0){j="mceToolbarStart";if(k.Button){j+=" mceToolbarStartButton"}else{if(k.SplitButton){j+=" mceToolbarStartSplitButton"}else{if(k.ListBox){j+=" mceToolbarStartListBox"}}}f+=c.createHTML("td",{"class":j},c.createHTML("span",null,"<!-- IE -->"))}if(d&&k.ListBox){if(d.Button||d.SplitButton){f+=c.createHTML("td",{"class":"mceToolbarEnd"},c.createHTML("span",null,"<!-- IE -->"))}}if(c.stdMode){f+='<td style="position: relative">'+k.renderHTML()+"</td>"}else{f+="<td>"+k.renderHTML()+"</td>"}if(g&&k.ListBox){if(g.Button||g.SplitButton){f+=c.createHTML("td",{"class":"mceToolbarStart"},c.createHTML("span",null,"<!-- IE -->"))}}}j="mceToolbarEnd";if(k.Button){j+=" mceToolbarEndButton"}else{if(k.SplitButton){j+=" mceToolbarEndSplitButton"}else{if(k.ListBox){j+=" mceToolbarEndListBox"}}}f+=c.createHTML("td",{"class":j},c.createHTML("span",null,"<!-- IE -->"));return c.createHTML("table",{id:m.id,"class":"mceToolbar"+(n["class"]?" "+n["class"]:""),cellpadding:"0",cellspacing:"0",align:m.settings.align||"",role:"presentation",tabindex:"-1"},"<tbody><tr>"+f+"</tr></tbody>")}})})(tinymce);(function(b){var a=b.util.Dispatcher,c=b.each;b.create("tinymce.AddOnManager",{AddOnManager:function(){var d=this;d.items=[];d.urls={};d.lookup={};d.onAdd=new a(d)},get:function(d){if(this.lookup[d]){return this.lookup[d].instance}else{return undefined}},dependencies:function(e){var d;if(this.lookup[e]){d=this.lookup[e].dependencies}return d||[]},requireLangPack:function(e){var d=b.settings;if(d&&d.language&&d.language_load!==false){b.ScriptLoader.add(this.urls[e]+"/langs/"+d.language+".js")}},add:function(f,e,d){this.items.push(e);this.lookup[f]={instance:e,dependencies:d};this.onAdd.dispatch(this,f,e);return e},createUrl:function(d,e){if(typeof e==="object"){return e}else{return{prefix:d.prefix,resource:e,suffix:d.suffix}}},addComponents:function(f,d){var e=this.urls[f];b.each(d,function(g){b.ScriptLoader.add(e+"/"+g)})},load:function(j,f,d,h){var g=this,e=f;function i(){var k=g.dependencies(j);b.each(k,function(m){var l=g.createUrl(f,m);g.load(l.resource,l,undefined,undefined)});if(d){if(h){d.call(h)}else{d.call(b.ScriptLoader)}}}if(g.urls[j]){return}if(typeof f==="object"){e=f.prefix+f.resource+f.suffix}if(e.indexOf("/")!==0&&e.indexOf("://")==-1){e=b.baseURL+"/"+e}g.urls[j]=e.substring(0,e.lastIndexOf("/"));if(g.lookup[j]){i()}else{b.ScriptLoader.add(e,i,h)}}});b.PluginManager=new b.AddOnManager();b.ThemeManager=new b.AddOnManager()}(tinymce));(function(j){var g=j.each,d=j.extend,k=j.DOM,i=j.dom.Event,f=j.ThemeManager,b=j.PluginManager,e=j.explode,h=j.util.Dispatcher,a,c=0;j.documentBaseURL=window.location.href.replace(/[\?#].*$/,"").replace(/[\/\\][^\/]+$/,"");if(!/[\/\\]$/.test(j.documentBaseURL)){j.documentBaseURL+="/"}j.baseURL=new j.util.URI(j.documentBaseURL).toAbsolute(j.baseURL);j.baseURI=new j.util.URI(j.baseURL);j.onBeforeUnload=new h(j);i.add(window,"beforeunload",function(l){j.onBeforeUnload.dispatch(j,l)});j.onAddEditor=new h(j);j.onRemoveEditor=new h(j);j.EditorManager=d(j,{editors:[],i18n:{},activeEditor:null,init:function(x){var v=this,o,n=j.ScriptLoader,u,l=[],r;function q(t){var s=t.id;if(!s){s=t.name;if(s&&!k.get(s)){s=t.name}else{s=k.uniqueId()}t.setAttribute("id",s)}return s}function m(z,A,t){var y=z[A];if(!y){return}if(j.is(y,"string")){t=y.replace(/\.\w+$/,"");t=t?j.resolve(t):0;y=j.resolve(y)}return y.apply(t||this,Array.prototype.slice.call(arguments,2))}function p(t,s){return s.constructor===RegExp?s.test(t.className):k.hasClass(t,s)}v.settings=x;i.bind(window,"ready",function(){var s,t;m(x,"onpageload");switch(x.mode){case"exact":s=x.elements||"";if(s.length>0){g(e(s),function(y){if(k.get(y)){r=new j.Editor(y,x);l.push(r);r.render(1)}else{g(document.forms,function(z){g(z.elements,function(A){if(A.name===y){y="mce_editor_"+c++;k.setAttrib(A,"id",y);r=new j.Editor(y,x);l.push(r);r.render(1)}})})}})}break;case"textareas":case"specific_textareas":g(k.select("textarea"),function(y){if(x.editor_deselector&&p(y,x.editor_deselector)){return}if(!x.editor_selector||p(y,x.editor_selector)){r=new j.Editor(q(y),x);l.push(r);r.render(1)}});break;default:if(x.types){g(x.types,function(y){g(k.select(y.selector),function(A){var z=new j.Editor(q(A),j.extend({},x,y));l.push(z);z.render(1)})})}else{if(x.selector){g(k.select(x.selector),function(z){var y=new j.Editor(q(z),x);l.push(y);y.render(1)})}}}if(x.oninit){s=t=0;g(l,function(y){t++;if(!y.initialized){y.onInit.add(function(){s++;if(s==t){m(x,"oninit")}})}else{s++}if(s==t){m(x,"oninit")}})}})},get:function(l){if(l===a){return this.editors}if(!this.editors.hasOwnProperty(l)){return a}return this.editors[l]},getInstanceById:function(l){return this.get(l)},add:function(m){var l=this,n=l.editors;n[m.id]=m;n.push(m);l._setActive(m);l.onAddEditor.dispatch(l,m);return m},remove:function(n){var m=this,l,o=m.editors;if(!o[n.id]){return null}delete o[n.id];for(l=0;l<o.length;l++){if(o[l]==n){o.splice(l,1);break}}if(m.activeEditor==n){m._setActive(o[0])}n.destroy();m.onRemoveEditor.dispatch(m,n);return n},execCommand:function(r,p,o){var q=this,n=q.get(o),l;function m(){n.destroy();l.detachEvent("onunload",m);l=l.tinyMCE=l.tinymce=null}switch(r){case"mceFocus":n.focus();return true;case"mceAddEditor":case"mceAddControl":if(!q.get(o)){new j.Editor(o,q.settings).render()}return true;case"mceAddFrameControl":l=o.window;l.tinyMCE=tinyMCE;l.tinymce=j;j.DOM.doc=l.document;j.DOM.win=l;n=new j.Editor(o.element_id,o);n.render();if(j.isIE){l.attachEvent("onunload",m)}o.page_window=null;return true;case"mceRemoveEditor":case"mceRemoveControl":if(n){n.remove()}return true;case"mceToggleEditor":if(!n){q.execCommand("mceAddControl",0,o);return true}if(n.isHidden()){n.show()}else{n.hide()}return true}if(q.activeEditor){return q.activeEditor.execCommand(r,p,o)}return false},execInstanceCommand:function(p,o,n,m){var l=this.get(p);if(l){return l.execCommand(o,n,m)}return false},triggerSave:function(){g(this.editors,function(l){l.save()})},addI18n:function(n,q){var l,m=this.i18n;if(!j.is(n,"string")){g(n,function(r,p){g(r,function(t,s){g(t,function(v,u){if(s==="common"){m[p+"."+u]=v}else{m[p+"."+s+"."+u]=v}})})})}else{g(q,function(r,p){m[n+"."+p]=r})}},_setActive:function(l){this.selectedInstance=this.activeEditor=l}})})(tinymce);(function(k){var l=k.DOM,j=k.dom.Event,f=k.extend,i=k.each,a=k.isGecko,b=k.isIE,e=k.isWebKit,d=k.is,h=k.ThemeManager,c=k.PluginManager,g=k.explode;k.create("tinymce.Editor",{Editor:function(p,o){var m=this,n=true;m.settings=o=f({id:p,language:"en",theme:"advanced",skin:"default",delta_width:0,delta_height:0,popup_css:"",plugins:"",document_base_url:k.documentBaseURL,add_form_submit_trigger:n,submit_patch:n,add_unload_trigger:n,convert_urls:n,relative_urls:n,remove_script_host:n,table_inline_editing:false,object_resizing:n,accessibility_focus:n,doctype:k.isIE6?'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">':"<!DOCTYPE>",visual:n,font_size_style_values:"xx-small,x-small,small,medium,large,x-large,xx-large",font_size_legacy_values:"xx-small,small,medium,large,x-large,xx-large,300%",apply_source_formatting:n,directionality:"ltr",forced_root_block:"p",hidden_input:n,padd_empty_editor:n,render_ui:n,indentation:"30px",fix_table_elements:n,inline_styles:n,convert_fonts_to_spans:n,indent:"simple",indent_before:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,option,optgroup,datalist",indent_after:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,option,optgroup,datalist",validate:n,entity_encoding:"named",url_converter:m.convertURL,url_converter_scope:m,ie7_compat:n},o);m.id=m.editorId=p;m.isNotDirty=false;m.plugins={};m.documentBaseURI=new k.util.URI(o.document_base_url||k.documentBaseURL,{base_uri:tinyMCE.baseURI});m.baseURI=k.baseURI;m.contentCSS=[];m.contentStyles=[];m.setupEvents();m.execCommands={};m.queryStateCommands={};m.queryValueCommands={};m.execCallback("setup",m)},render:function(o){var p=this,q=p.settings,r=p.id,m=k.ScriptLoader;if(!j.domLoaded){j.add(window,"ready",function(){p.render()});return}tinyMCE.settings=q;if(!p.getElement()){return}if(k.isIDevice&&!k.isIOS5){return}if(!/TEXTAREA|INPUT/i.test(p.getElement().nodeName)&&q.hidden_input&&l.getParent(r,"form")){l.insertAfter(l.create("input",{type:"hidden",name:r}),r)}if(!q.content_editable){p.orgVisibility=p.getElement().style.visibility;p.getElement().style.visibility="hidden"}if(k.WindowManager){p.windowManager=new k.WindowManager(p)}if(q.encoding=="xml"){p.onGetContent.add(function(s,t){if(t.save){t.content=l.encode(t.content)}})}if(q.add_form_submit_trigger){p.onSubmit.addToTop(function(){if(p.initialized){p.save();p.isNotDirty=1}})}if(q.add_unload_trigger){p._beforeUnload=tinyMCE.onBeforeUnload.add(function(){if(p.initialized&&!p.destroyed&&!p.isHidden()){p.save({format:"raw",no_events:true})}})}k.addUnload(p.destroy,p);if(q.submit_patch){p.onBeforeRenderUI.add(function(){var s=p.getElement().form;if(!s){return}if(s._mceOldSubmit){return}if(!s.submit.nodeType&&!s.submit.length){p.formElement=s;s._mceOldSubmit=s.submit;s.submit=function(){k.triggerSave();p.isNotDirty=1;return p.formElement._mceOldSubmit(p.formElement)}}s=null})}function n(){if(q.language&&q.language_load!==false){m.add(k.baseURL+"/langs/"+q.language+".js")}if(q.theme&&typeof q.theme!="function"&&q.theme.charAt(0)!="-"&&!h.urls[q.theme]){h.load(q.theme,"themes/"+q.theme+"/editor_template"+k.suffix+".js")}i(g(q.plugins),function(t){if(t&&!c.urls[t]){if(t.charAt(0)=="-"){t=t.substr(1,t.length);var s=c.dependencies(t);i(s,function(v){var u={prefix:"plugins/",resource:v,suffix:"/editor_plugin"+k.suffix+".js"};v=c.createUrl(u,v);c.load(v.resource,v)})}else{if(t=="safari"){return}c.load(t,{prefix:"plugins/",resource:t,suffix:"/editor_plugin"+k.suffix+".js"})}}});m.loadQueue(function(){if(!p.removed){p.init()}})}n()},init:function(){var q,G=this,H=G.settings,D,y,z,C=G.getElement(),p,m,E,v,B,F,x,r=[];k.add(G);H.aria_label=H.aria_label||l.getAttrib(C,"aria-label",G.getLang("aria.rich_text_area"));if(H.theme){if(typeof H.theme!="function"){H.theme=H.theme.replace(/-/,"");p=h.get(H.theme);G.theme=new p();if(G.theme.init){G.theme.init(G,h.urls[H.theme]||k.documentBaseURL.replace(/\/$/,""))}}else{G.theme=H.theme}}function A(s){var t=c.get(s),o=c.urls[s]||k.documentBaseURL.replace(/\/$/,""),n;if(t&&k.inArray(r,s)===-1){i(c.dependencies(s),function(u){A(u)});n=new t(G,o);G.plugins[s]=n;if(n.init){n.init(G,o);r.push(s)}}}i(g(H.plugins.replace(/\-/g,"")),A);if(H.popup_css!==false){if(H.popup_css){H.popup_css=G.documentBaseURI.toAbsolute(H.popup_css)}else{H.popup_css=G.baseURI.toAbsolute("themes/"+H.theme+"/skins/"+H.skin+"/dialog.css")}}if(H.popup_css_add){H.popup_css+=","+G.documentBaseURI.toAbsolute(H.popup_css_add)}G.controlManager=new k.ControlManager(G);G.onBeforeRenderUI.dispatch(G,G.controlManager);if(H.render_ui&&G.theme){G.orgDisplay=C.style.display;if(typeof H.theme!="function"){D=H.width||C.style.width||C.offsetWidth;y=H.height||C.style.height||C.offsetHeight;z=H.min_height||100;F=/^[0-9\.]+(|px)$/i;if(F.test(""+D)){D=Math.max(parseInt(D,10)+(p.deltaWidth||0),100)}if(F.test(""+y)){y=Math.max(parseInt(y,10)+(p.deltaHeight||0),z)}p=G.theme.renderUI({targetNode:C,width:D,height:y,deltaWidth:H.delta_width,deltaHeight:H.delta_height});l.setStyles(p.sizeContainer||p.editorContainer,{width:D,height:y});y=(p.iframeHeight||y)+(typeof(y)=="number"?(p.deltaHeight||0):"");if(y<z){y=z}}else{p=H.theme(G,C);if(p.editorContainer.nodeType){p.editorContainer=p.editorContainer.id=p.editorContainer.id||G.id+"_parent"}if(p.iframeContainer.nodeType){p.iframeContainer=p.iframeContainer.id=p.iframeContainer.id||G.id+"_iframecontainer"}y=p.iframeHeight||C.offsetHeight;if(b){G.onInit.add(function(n){n.dom.bind(n.getBody(),"beforedeactivate keydown",function(){n.lastIERng=n.selection.getRng()})})}}G.editorContainer=p.editorContainer}if(H.content_css){i(g(H.content_css),function(n){G.contentCSS.push(G.documentBaseURI.toAbsolute(n))})}if(H.content_style){G.contentStyles.push(H.content_style)}if(H.content_editable){C=q=p=null;return G.initContentBody()}if(document.domain&&location.hostname!=document.domain){k.relaxedDomain=document.domain}G.iframeHTML=H.doctype+'<html><head xmlns="http://www.w3.org/1999/xhtml">';if(H.document_base_url!=k.documentBaseURL){G.iframeHTML+='<base href="'+G.documentBaseURI.getURI()+'" />'}if(k.isIE8){if(H.ie7_compat){G.iframeHTML+='<meta http-equiv="X-UA-Compatible" content="IE=7" />'}else{G.iframeHTML+='<meta http-equiv="X-UA-Compatible" content="IE=edge" />'}}G.iframeHTML+='<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />';for(x=0;x<G.contentCSS.length;x++){G.iframeHTML+='<link type="text/css" rel="stylesheet" href="'+G.contentCSS[x]+'" />'}G.contentCSS=[];v=H.body_id||"tinymce";if(v.indexOf("=")!=-1){v=G.getParam("body_id","","hash");v=v[G.id]||v}B=H.body_class||"";if(B.indexOf("=")!=-1){B=G.getParam("body_class","","hash");B=B[G.id]||""}G.iframeHTML+='</head><body id="'+v+'" class="mceContentBody '+B+'" onload="window.parent.tinyMCE.get(\''+G.id+"').onLoad.dispatch();\"><br></body></html>";if(k.relaxedDomain&&(b||(k.isOpera&&parseFloat(opera.version())<11))){E='javascript:(function(){document.open();document.domain="'+document.domain+'";var ed = window.parent.tinyMCE.get("'+G.id+'");document.write(ed.iframeHTML);document.close();ed.initContentBody();})()'}q=l.add(p.iframeContainer,"iframe",{id:G.id+"_ifr",src:E||'javascript:""',frameBorder:"0",allowTransparency:"true",title:H.aria_label,style:{width:"100%",height:y,display:"block"}});G.contentAreaContainer=p.iframeContainer;if(p.editorContainer){l.get(p.editorContainer).style.display=G.orgDisplay}C.style.visibility=G.orgVisibility;l.get(G.id).style.display="none";l.setAttrib(G.id,"aria-hidden",true);if(!k.relaxedDomain||!E){G.initContentBody()}C=q=p=null},initContentBody:function(){var n=this,p=n.settings,q=l.get(n.id),r=n.getDoc(),o,m,s;if((!b||!k.relaxedDomain)&&!p.content_editable){r.open();r.write(n.iframeHTML);r.close();if(k.relaxedDomain){r.domain=k.relaxedDomain}}if(p.content_editable){l.addClass(q,"mceContentBody");n.contentDocument=r=p.content_document||document;n.contentWindow=p.content_window||window;n.bodyElement=q;p.content_document=p.content_window=null}m=n.getBody();m.disabled=true;if(!p.readonly){m.contentEditable=n.getParam("content_editable_state",true)}m.disabled=false;n.schema=new k.html.Schema(p);n.dom=new k.dom.DOMUtils(r,{keep_values:true,url_converter:n.convertURL,url_converter_scope:n,hex_colors:p.force_hex_style_colors,class_filter:p.class_filter,update_styles:true,root_element:p.content_editable?n.id:null,schema:n.schema});n.parser=new k.html.DomParser(p,n.schema);n.parser.addAttributeFilter("src,href,style",function(t,u){var v=t.length,y,A=n.dom,z,x;while(v--){y=t[v];z=y.attr(u);x="data-mce-"+u;if(!y.attributes.map[x]){if(u==="style"){y.attr(x,A.serializeStyle(A.parseStyle(z),y.name))}else{y.attr(x,n.convertURL(z,u,y.name))}}}});n.parser.addNodeFilter("script",function(t,u){var v=t.length,x;while(v--){x=t[v];x.attr("type","mce-"+(x.attr("type")||"text/javascript"))}});n.parser.addNodeFilter("#cdata",function(t,u){var v=t.length,x;while(v--){x=t[v];x.type=8;x.name="#comment";x.value="[CDATA["+x.value+"]]"}});n.parser.addNodeFilter("p,h1,h2,h3,h4,h5,h6,div",function(u,v){var x=u.length,y,t=n.schema.getNonEmptyElements();while(x--){y=u[x];if(y.isEmpty(t)){y.empty().append(new k.html.Node("br",1)).shortEnded=true}}});n.serializer=new k.dom.Serializer(p,n.dom,n.schema);n.selection=new k.dom.Selection(n.dom,n.getWin(),n.serializer,n);n.formatter=new k.Formatter(n);n.undoManager=new k.UndoManager(n);n.forceBlocks=new k.ForceBlocks(n);n.enterKey=new k.EnterKey(n);n.editorCommands=new k.EditorCommands(n);n.onExecCommand.add(function(t,u){if(!/^(FontName|FontSize)$/.test(u)){n.nodeChanged()}});n.serializer.onPreProcess.add(function(t,u){return n.onPreProcess.dispatch(n,u,t)});n.serializer.onPostProcess.add(function(t,u){return n.onPostProcess.dispatch(n,u,t)});n.onPreInit.dispatch(n);if(!p.browser_spellcheck&&!p.gecko_spellcheck){r.body.spellcheck=false}if(!p.readonly){n.bindNativeEvents()}n.controlManager.onPostRender.dispatch(n,n.controlManager);n.onPostRender.dispatch(n);n.quirks=k.util.Quirks(n);if(p.directionality){m.dir=p.directionality}if(p.nowrap){m.style.whiteSpace="nowrap"}if(p.protect){n.onBeforeSetContent.add(function(t,u){i(p.protect,function(v){u.content=u.content.replace(v,function(x){return"<!--mce:protected "+escape(x)+"-->"})})})}n.onSetContent.add(function(){n.addVisual(n.getBody())});if(p.padd_empty_editor){n.onPostProcess.add(function(t,u){u.content=u.content.replace(/^(<p[^>]*>( | |\s|\u00a0|)<\/p>[\r\n]*|<br \/>[\r\n]*)$/,"")})}n.load({initial:true,format:"html"});n.startContent=n.getContent({format:"raw"});n.initialized=true;n.onInit.dispatch(n);n.execCallback("setupcontent_callback",n.id,m,r);n.execCallback("init_instance_callback",n);n.focus(true);n.nodeChanged({initial:true});if(n.contentStyles.length>0){s="";i(n.contentStyles,function(t){s+=t+"\r\n"});n.dom.addStyle(s)}i(n.contentCSS,function(t){n.dom.loadCSS(t)});if(p.auto_focus){setTimeout(function(){var t=k.get(p.auto_focus);t.selection.select(t.getBody(),1);t.selection.collapse(1);t.getBody().focus();t.getWin().focus()},100)}q=r=m=null},focus:function(p){var o,u=this,t=u.selection,q=u.settings.content_editable,n,r,s=u.getDoc(),m;if(!p){if(u.lastIERng){t.setRng(u.lastIERng)}n=t.getRng();if(n.item){r=n.item(0)}u._refreshContentEditable();if(!q){u.getWin().focus()}if(k.isGecko||q){m=u.getBody();if(m.setActive){m.setActive()}else{m.focus()}if(q){t.normalize()}}if(r&&r.ownerDocument==s){n=s.body.createControlRange();n.addElement(r);n.select()}}if(k.activeEditor!=u){if((o=k.activeEditor)!=null){o.onDeactivate.dispatch(o,u)}u.onActivate.dispatch(u,o)}k._setActive(u)},execCallback:function(q){var m=this,p=m.settings[q],o;if(!p){return}if(m.callbackLookup&&(o=m.callbackLookup[q])){p=o.func;o=o.scope}if(d(p,"string")){o=p.replace(/\.\w+$/,"");o=o?k.resolve(o):0;p=k.resolve(p);m.callbackLookup=m.callbackLookup||{};m.callbackLookup[q]={func:p,scope:o}}return p.apply(o||m,Array.prototype.slice.call(arguments,1))},translate:function(m){var o=this.settings.language||"en",n=k.i18n;if(!m){return""}return n[o+"."+m]||m.replace(/\{\#([^\}]+)\}/g,function(q,p){return n[o+"."+p]||"{#"+p+"}"})},getLang:function(o,m){return k.i18n[(this.settings.language||"en")+"."+o]||(d(m)?m:"{#"+o+"}")},getParam:function(t,q,m){var r=k.trim,p=d(this.settings[t])?this.settings[t]:q,s;if(m==="hash"){s={};if(d(p,"string")){i(p.indexOf("=")>0?p.split(/[;,](?![^=;,]*(?:[;,]|$))/):p.split(","),function(n){n=n.split("=");if(n.length>1){s[r(n[0])]=r(n[1])}else{s[r(n[0])]=r(n)}})}else{s=p}return s}return p},nodeChanged:function(q){var m=this,n=m.selection,p;if(m.initialized){q=q||{};p=n.getStart()||m.getBody();p=b&&p.ownerDocument!=m.getDoc()?m.getBody():p;q.parents=[];m.dom.getParent(p,function(o){if(o.nodeName=="BODY"){return true}q.parents.push(o)});m.onNodeChange.dispatch(m,q?q.controlManager||m.controlManager:m.controlManager,p,n.isCollapsed(),q)}},addButton:function(n,o){var m=this;m.buttons=m.buttons||{};m.buttons[n]=o},addCommand:function(m,o,n){this.execCommands[m]={func:o,scope:n||this}},addQueryStateHandler:function(m,o,n){this.queryStateCommands[m]={func:o,scope:n||this}},addQueryValueHandler:function(m,o,n){this.queryValueCommands[m]={func:o,scope:n||this}},addShortcut:function(o,q,m,p){var n=this,r;if(n.settings.custom_shortcuts===false){return false}n.shortcuts=n.shortcuts||{};if(d(m,"string")){r=m;m=function(){n.execCommand(r,false,null)}}if(d(m,"object")){r=m;m=function(){n.execCommand(r[0],r[1],r[2])}}i(g(o),function(s){var t={func:m,scope:p||this,desc:n.translate(q),alt:false,ctrl:false,shift:false};i(g(s,"+"),function(u){switch(u){case"alt":case"ctrl":case"shift":t[u]=true;break;default:t.charCode=u.charCodeAt(0);t.keyCode=u.toUpperCase().charCodeAt(0)}});n.shortcuts[(t.ctrl?"ctrl":"")+","+(t.alt?"alt":"")+","+(t.shift?"shift":"")+","+t.keyCode]=t});return true},execCommand:function(u,r,x,m){var p=this,q=0,v,n;if(!/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint|SelectAll)$/.test(u)&&(!m||!m.skip_focus)){p.focus()}m=f({},m);p.onBeforeExecCommand.dispatch(p,u,r,x,m);if(m.terminate){return false}if(p.execCallback("execcommand_callback",p.id,p.selection.getNode(),u,r,x)){p.onExecCommand.dispatch(p,u,r,x,m);return true}if(v=p.execCommands[u]){n=v.func.call(v.scope,r,x);if(n!==true){p.onExecCommand.dispatch(p,u,r,x,m);return n}}i(p.plugins,function(o){if(o.execCommand&&o.execCommand(u,r,x)){p.onExecCommand.dispatch(p,u,r,x,m);q=1;return false}});if(q){return true}if(p.theme&&p.theme.execCommand&&p.theme.execCommand(u,r,x)){p.onExecCommand.dispatch(p,u,r,x,m);return true}if(p.editorCommands.execCommand(u,r,x)){p.onExecCommand.dispatch(p,u,r,x,m);return true}p.getDoc().execCommand(u,r,x);p.onExecCommand.dispatch(p,u,r,x,m)},queryCommandState:function(q){var n=this,r,p;if(n._isHidden()){return}if(r=n.queryStateCommands[q]){p=r.func.call(r.scope);if(p!==true){return p}}r=n.editorCommands.queryCommandState(q);if(r!==-1){return r}try{return this.getDoc().queryCommandState(q)}catch(m){}},queryCommandValue:function(r){var n=this,q,p;if(n._isHidden()){return}if(q=n.queryValueCommands[r]){p=q.func.call(q.scope);if(p!==true){return p}}q=n.editorCommands.queryCommandValue(r);if(d(q)){return q}try{return this.getDoc().queryCommandValue(r)}catch(m){}},show:function(){var m=this;l.show(m.getContainer());l.hide(m.id);m.load()},hide:function(){var m=this,n=m.getDoc();if(b&&n){n.execCommand("SelectAll")}m.save();l.hide(m.getContainer());l.setStyle(m.id,"display",m.orgDisplay)},isHidden:function(){return !l.isHidden(this.id)},setProgressState:function(m,n,p){this.onSetProgressState.dispatch(this,m,n,p);return m},load:function(q){var m=this,p=m.getElement(),n;if(p){q=q||{};q.load=true;n=m.setContent(d(p.value)?p.value:p.innerHTML,q);q.element=p;if(!q.no_events){m.onLoadContent.dispatch(m,q)}q.element=p=null;return n}},save:function(r){var m=this,q=m.getElement(),n,p;if(!q||!m.initialized){return}r=r||{};r.save=true;r.element=q;n=r.content=m.getContent(r);if(!r.no_events){m.onSaveContent.dispatch(m,r)}n=r.content;if(!/TEXTAREA|INPUT/i.test(q.nodeName)){q.innerHTML=n;if(p=l.getParent(m.id,"form")){i(p.elements,function(o){if(o.name==m.id){o.value=n;return false}})}}else{q.value=n}r.element=q=null;return n},setContent:function(r,p){var o=this,n,m=o.getBody(),q;p=p||{};p.format=p.format||"html";p.set=true;p.content=r;if(!p.no_events){o.onBeforeSetContent.dispatch(o,p)}r=p.content;if(!k.isIE&&(r.length===0||/^\s+$/.test(r))){q=o.settings.forced_root_block;if(q){r="<"+q+'><br data-mce-bogus="1"></'+q+">"}else{r='<br data-mce-bogus="1">'}m.innerHTML=r;o.selection.select(m,true);o.selection.collapse(true);return}if(p.format!=="raw"){r=new k.html.Serializer({},o.schema).serialize(o.parser.parse(r))}p.content=k.trim(r);o.dom.setHTML(m,p.content);if(!p.no_events){o.onSetContent.dispatch(o,p)}if(!o.settings.content_editable||document.activeElement===o.getBody()){o.selection.normalize()}return p.content},getContent:function(o){var n=this,p,m=n.getBody();o=o||{};o.format=o.format||"html";o.get=true;o.getInner=true;if(!o.no_events){n.onBeforeGetContent.dispatch(n,o)}if(o.format=="raw"){p=m.innerHTML}else{if(o.format=="text"){p=m.innerText||m.textContent}else{p=n.serializer.serialize(m,o)}}if(o.format!="text"){o.content=k.trim(p)}else{o.content=p}if(!o.no_events){n.onGetContent.dispatch(n,o)}return o.content},isDirty:function(){var m=this;return k.trim(m.startContent)!=k.trim(m.getContent({format:"raw",no_events:1}))&&!m.isNotDirty},getContainer:function(){var m=this;if(!m.container){m.container=l.get(m.editorContainer||m.id+"_parent")}return m.container},getContentAreaContainer:function(){return this.contentAreaContainer},getElement:function(){return l.get(this.settings.content_element||this.id)},getWin:function(){var m=this,n;if(!m.contentWindow){n=l.get(m.id+"_ifr");if(n){m.contentWindow=n.contentWindow}}return m.contentWindow},getDoc:function(){var m=this,n;if(!m.contentDocument){n=m.getWin();if(n){m.contentDocument=n.document}}return m.contentDocument},getBody:function(){return this.bodyElement||this.getDoc().body},convertURL:function(o,n,q){var m=this,p=m.settings;if(p.urlconverter_callback){return m.execCallback("urlconverter_callback",o,q,true,n)}if(!p.convert_urls||(q&&q.nodeName=="LINK")||o.indexOf("file:")===0){return o}if(p.relative_urls){return m.documentBaseURI.toRelative(o)}o=m.documentBaseURI.toAbsolute(o,p.remove_script_host);return o},addVisual:function(q){var n=this,o=n.settings,p=n.dom,m;q=q||n.getBody();if(!d(n.hasVisual)){n.hasVisual=o.visual}i(p.select("table,a",q),function(s){var r;switch(s.nodeName){case"TABLE":m=o.visual_table_class||"mceItemTable";r=p.getAttrib(s,"border");if(!r||r=="0"){if(n.hasVisual){p.addClass(s,m)}else{p.removeClass(s,m)}}return;case"A":if(!p.getAttrib(s,"href",false)){r=p.getAttrib(s,"name")||s.id;m="mceItemAnchor";if(r){if(n.hasVisual){p.addClass(s,m)}else{p.removeClass(s,m)}}}return}});n.onVisualAid.dispatch(n,q,n.hasVisual)},remove:function(){var m=this,o=m.getContainer(),n=m.getDoc();if(!m.removed){m.removed=1;if(b&&n){n.execCommand("SelectAll")}m.save();l.setStyle(m.id,"display",m.orgDisplay);if(!m.settings.content_editable){j.unbind(m.getWin());j.unbind(m.getDoc())}j.unbind(m.getBody());j.clear(o);m.execCallback("remove_instance_callback",m);m.onRemove.dispatch(m);m.onExecCommand.listeners=[];k.remove(m);l.remove(o)}},destroy:function(n){var m=this;if(m.destroyed){return}if(a){j.unbind(m.getDoc());j.unbind(m.getWin());j.unbind(m.getBody())}if(!n){k.removeUnload(m.destroy);tinyMCE.onBeforeUnload.remove(m._beforeUnload);if(m.theme&&m.theme.destroy){m.theme.destroy()}m.controlManager.destroy();m.selection.destroy();m.dom.destroy()}if(m.formElement){m.formElement.submit=m.formElement._mceOldSubmit;m.formElement._mceOldSubmit=null}m.contentAreaContainer=m.formElement=m.container=m.settings.content_element=m.bodyElement=m.contentDocument=m.contentWindow=null;if(m.selection){m.selection=m.selection.win=m.selection.dom=m.selection.dom.doc=null}m.destroyed=1},_refreshContentEditable:function(){var n=this,m,o;if(n._isHidden()){m=n.getBody();o=m.parentNode;o.removeChild(m);o.appendChild(m);m.focus()}},_isHidden:function(){var m;if(!a){return 0}m=this.selection.getSel();return(!m||!m.rangeCount||m.rangeCount===0)}})})(tinymce);(function(a){var b=a.each;a.Editor.prototype.setupEvents=function(){var c=this,d=c.settings;b(["onPreInit","onBeforeRenderUI","onPostRender","onLoad","onInit","onRemove","onActivate","onDeactivate","onClick","onEvent","onMouseUp","onMouseDown","onDblClick","onKeyDown","onKeyUp","onKeyPress","onContextMenu","onSubmit","onReset","onPaste","onPreProcess","onPostProcess","onBeforeSetContent","onBeforeGetContent","onSetContent","onGetContent","onLoadContent","onSaveContent","onNodeChange","onChange","onBeforeExecCommand","onExecCommand","onUndo","onRedo","onVisualAid","onSetProgressState","onSetAttrib"],function(e){c[e]=new a.util.Dispatcher(c)});if(d.cleanup_callback){c.onBeforeSetContent.add(function(e,f){f.content=e.execCallback("cleanup_callback","insert_to_editor",f.content,f)});c.onPreProcess.add(function(e,f){if(f.set){e.execCallback("cleanup_callback","insert_to_editor_dom",f.node,f)}if(f.get){e.execCallback("cleanup_callback","get_from_editor_dom",f.node,f)}});c.onPostProcess.add(function(e,f){if(f.set){f.content=e.execCallback("cleanup_callback","insert_to_editor",f.content,f)}if(f.get){f.content=e.execCallback("cleanup_callback","get_from_editor",f.content,f)}})}if(d.save_callback){c.onGetContent.add(function(e,f){if(f.save){f.content=e.execCallback("save_callback",e.id,f.content,e.getBody())}})}if(d.handle_event_callback){c.onEvent.add(function(f,g,h){if(c.execCallback("handle_event_callback",g,f,h)===false){g.preventDefault();g.stopPropagation()}})}if(d.handle_node_change_callback){c.onNodeChange.add(function(f,e,g){f.execCallback("handle_node_change_callback",f.id,g,-1,-1,true,f.selection.isCollapsed())})}if(d.save_callback){c.onSaveContent.add(function(e,g){var f=e.execCallback("save_callback",e.id,g.content,e.getBody());if(f){g.content=f}})}if(d.onchange_callback){c.onChange.add(function(f,e){f.execCallback("onchange_callback",f,e)})}};a.Editor.prototype.bindNativeEvents=function(){var l=this,f,d=l.settings,e=l.dom,h;h={mouseup:"onMouseUp",mousedown:"onMouseDown",click:"onClick",keyup:"onKeyUp",keydown:"onKeyDown",keypress:"onKeyPress",submit:"onSubmit",reset:"onReset",contextmenu:"onContextMenu",dblclick:"onDblClick",paste:"onPaste"};function c(i,m){var n=i.type;if(l.removed){return}if(l.onEvent.dispatch(l,i,m)!==false){l[h[i.fakeType||i.type]].dispatch(l,i,m)}}function j(i){l.focus(true)}function k(i,m){if(m.keyCode!=65||!a.VK.metaKeyPressed(m)){l.selection.normalize()}l.nodeChanged()}b(h,function(m,n){var i=d.content_editable?l.getBody():l.getDoc();switch(n){case"contextmenu":e.bind(i,n,c);break;case"paste":e.bind(l.getBody(),n,c);break;case"submit":case"reset":e.bind(l.getElement().form||a.DOM.getParent(l.id,"form"),n,c);break;default:e.bind(i,n,c)}});e.bind(d.content_editable?l.getBody():(a.isGecko?l.getDoc():l.getWin()),"focus",function(i){l.focus(true)});if(d.content_editable&&a.isOpera){e.bind(l.getBody(),"click",j);e.bind(l.getBody(),"keydown",j)}l.onMouseUp.add(k);l.onKeyUp.add(function(i,n){var m=n.keyCode;if((m>=33&&m<=36)||(m>=37&&m<=40)||m==13||m==45||m==46||m==8||(a.isMac&&(m==91||m==93))||n.ctrlKey){k(i,n)}});l.onReset.add(function(){l.setContent(l.startContent,{format:"raw"})});function g(m,i){if(m.altKey||m.ctrlKey||m.metaKey){b(l.shortcuts,function(n){var o=a.isMac?m.metaKey:m.ctrlKey;if(n.ctrl!=o||n.alt!=m.altKey||n.shift!=m.shiftKey){return}if(m.keyCode==n.keyCode||(m.charCode&&m.charCode==n.charCode)){m.preventDefault();if(i){n.func.call(n.scope)}return true}})}}l.onKeyUp.add(function(i,m){g(m)});l.onKeyPress.add(function(i,m){g(m)});l.onKeyDown.add(function(i,m){g(m,true)});if(a.isOpera){l.onClick.add(function(i,m){m.preventDefault()})}}})(tinymce);(function(d){var e=d.each,b,a=true,c=false;d.EditorCommands=function(n){var m=n.dom,p=n.selection,j={state:{},exec:{},value:{}},k=n.settings,q=n.formatter,o;function r(z,y,x){var v;z=z.toLowerCase();if(v=j.exec[z]){v(z,y,x);return a}return c}function l(x){var v;x=x.toLowerCase();if(v=j.state[x]){return v(x)}return -1}function h(x){var v;x=x.toLowerCase();if(v=j.value[x]){return v(x)}return c}function u(v,x){x=x||"exec";e(v,function(z,y){e(y.toLowerCase().split(","),function(A){j[x][A]=z})})}d.extend(this,{execCommand:r,queryCommandState:l,queryCommandValue:h,addCommands:u});function f(y,x,v){if(x===b){x=c}if(v===b){v=null}return n.getDoc().execCommand(y,x,v)}function t(v){return q.match(v)}function s(v,x){q.toggle(v,x?{value:x}:b)}function i(v){o=p.getBookmark(v)}function g(){p.moveToBookmark(o)}u({"mceResetDesignMode,mceBeginUndoLevel":function(){},"mceEndUndoLevel,mceAddUndoLevel":function(){n.undoManager.add()},"Cut,Copy,Paste":function(z){var y=n.getDoc(),v;try{f(z)}catch(x){v=a}if(v||!y.queryCommandSupported(z)){if(d.isGecko){n.windowManager.confirm(n.getLang("clipboard_msg"),function(A){if(A){open("http://www.mozilla.org/editor/midasdemo/securityprefs.html","_blank")}})}else{n.windowManager.alert(n.getLang("clipboard_no_support"))}}},unlink:function(v){if(p.isCollapsed()){p.select(p.getNode())}f(v);p.collapse(c)},"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(v){var x=v.substring(7);e("left,center,right,full".split(","),function(y){if(x!=y){q.remove("align"+y)}});s("align"+x);r("mceRepaint")},"InsertUnorderedList,InsertOrderedList":function(y){var v,x;f(y);v=m.getParent(p.getNode(),"ol,ul");if(v){x=v.parentNode;if(/^(H[1-6]|P|ADDRESS|PRE)$/.test(x.nodeName)){i();m.split(x,v);g()}}},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(v){s(v)},"ForeColor,HiliteColor,FontName":function(y,x,v){s(y,v)},FontSize:function(z,y,x){var v,A;if(x>=1&&x<=7){A=d.explode(k.font_size_style_values);v=d.explode(k.font_size_classes);if(v){x=v[x-1]||x}else{x=A[x-1]||x}}s(z,x)},RemoveFormat:function(v){q.remove(v)},mceBlockQuote:function(v){s("blockquote")},FormatBlock:function(y,x,v){return s(v||"p")},mceCleanup:function(){var v=p.getBookmark();n.setContent(n.getContent({cleanup:a}),{cleanup:a});p.moveToBookmark(v)},mceRemoveNode:function(z,y,x){var v=x||p.getNode();if(v!=n.getBody()){i();n.dom.remove(v,a);g()}},mceSelectNodeDepth:function(z,y,x){var v=0;m.getParent(p.getNode(),function(A){if(A.nodeType==1&&v++==x){p.select(A);return c}},n.getBody())},mceSelectNode:function(y,x,v){p.select(v)},mceInsertContent:function(B,I,K){var y,J,E,z,F,G,D,C,L,x,A,M,v,H;y=n.parser;J=new d.html.Serializer({},n.schema);v='<span id="mce_marker" data-mce-type="bookmark">\uFEFF</span>';G={content:K,format:"html"};p.onBeforeSetContent.dispatch(p,G);K=G.content;if(K.indexOf("{$caret}")==-1){K+="{$caret}"}K=K.replace(/\{\$caret\}/,v);if(!p.isCollapsed()){n.getDoc().execCommand("Delete",false,null)}E=p.getNode();G={context:E.nodeName.toLowerCase()};F=y.parse(K,G);A=F.lastChild;if(A.attr("id")=="mce_marker"){D=A;for(A=A.prev;A;A=A.walk(true)){if(A.type==3||!m.isBlock(A.name)){A.parent.insert(D,A,A.name==="br");break}}}if(!G.invalid){K=J.serialize(F);A=E.firstChild;M=E.lastChild;if(!A||(A===M&&A.nodeName==="BR")){m.setHTML(E,K)}else{p.setContent(K)}}else{p.setContent(v);E=p.getNode();z=n.getBody();if(E.nodeType==9){E=A=z}else{A=E}while(A!==z){E=A;A=A.parentNode}K=E==z?z.innerHTML:m.getOuterHTML(E);K=J.serialize(y.parse(K.replace(/<span (id="mce_marker"|id=mce_marker).+?<\/span>/i,function(){return J.serialize(F)})));if(E==z){m.setHTML(z,K)}else{m.setOuterHTML(E,K)}}D=m.get("mce_marker");C=m.getRect(D);L=m.getViewPort(n.getWin());if((C.y+C.h>L.y+L.h||C.y<L.y)||(C.x>L.x+L.w||C.x<L.x)){H=d.isIE?n.getDoc().documentElement:n.getBody();H.scrollLeft=C.x;H.scrollTop=C.y-L.h+25}x=m.createRng();A=D.previousSibling;if(A&&A.nodeType==3){x.setStart(A,A.nodeValue.length)}else{x.setStartBefore(D);x.setEndBefore(D)}m.remove(D);p.setRng(x);p.onSetContent.dispatch(p,G);n.addVisual()},mceInsertRawHTML:function(y,x,v){p.setContent("tiny_mce_marker");n.setContent(n.getContent().replace(/tiny_mce_marker/g,function(){return v}))},mceToggleFormat:function(y,x,v){s(v)},mceSetContent:function(y,x,v){n.setContent(v)},"Indent,Outdent":function(z){var x,v,y;x=k.indentation;v=/[a-z%]+$/i.exec(x);x=parseInt(x);if(!l("InsertUnorderedList")&&!l("InsertOrderedList")){if(!k.forced_root_block&&!m.getParent(p.getNode(),m.isBlock)){q.apply("div")}e(p.getSelectedBlocks(),function(A){if(z=="outdent"){y=Math.max(0,parseInt(A.style.paddingLeft||0)-x);m.setStyle(A,"paddingLeft",y?y+v:"")}else{m.setStyle(A,"paddingLeft",(parseInt(A.style.paddingLeft||0)+x)+v)}})}else{f(z)}},mceRepaint:function(){var x;if(d.isGecko){try{i(a);if(p.getSel()){p.getSel().selectAllChildren(n.getBody())}p.collapse(a);g()}catch(v){}}},mceToggleFormat:function(y,x,v){q.toggle(v)},InsertHorizontalRule:function(){n.execCommand("mceInsertContent",false,"<hr />")},mceToggleVisualAid:function(){n.hasVisual=!n.hasVisual;n.addVisual()},mceReplaceContent:function(y,x,v){n.execCommand("mceInsertContent",false,v.replace(/\{\$selection\}/g,p.getContent({format:"text"})))},mceInsertLink:function(z,y,x){var v;if(typeof(x)=="string"){x={href:x}}v=m.getParent(p.getNode(),"a");x.href=x.href.replace(" ","%20");if(!v||!x.href){q.remove("link")}if(x.href){q.apply("link",x,v)}},selectAll:function(){var x=m.getRoot(),v=m.createRng();if(p.getRng().setStart){v.setStart(x,0);v.setEnd(x,x.childNodes.length);p.setRng(v)}else{f("SelectAll")}}});u({"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(z){var x="align"+z.substring(7);var v=p.isCollapsed()?[m.getParent(p.getNode(),m.isBlock)]:p.getSelectedBlocks();var y=d.map(v,function(A){return !!q.matchNode(A,x)});return d.inArray(y,a)!==-1},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(v){return t(v)},mceBlockQuote:function(){return t("blockquote")},Outdent:function(){var v;if(k.inline_styles){if((v=m.getParent(p.getStart(),m.isBlock))&&parseInt(v.style.paddingLeft)>0){return a}if((v=m.getParent(p.getEnd(),m.isBlock))&&parseInt(v.style.paddingLeft)>0){return a}}return l("InsertUnorderedList")||l("InsertOrderedList")||(!k.inline_styles&&!!m.getParent(p.getNode(),"BLOCKQUOTE"))},"InsertUnorderedList,InsertOrderedList":function(x){var v=m.getParent(p.getNode(),"ul,ol");return v&&(x==="insertunorderedlist"&&v.tagName==="UL"||x==="insertorderedlist"&&v.tagName==="OL")}},"state");u({"FontSize,FontName":function(y){var x=0,v;if(v=m.getParent(p.getNode(),"span")){if(y=="fontsize"){x=v.style.fontSize}else{x=v.style.fontFamily.replace(/, /g,",").replace(/[\'\"]/g,"").toLowerCase()}}return x}},"value");u({Undo:function(){n.undoManager.undo()},Redo:function(){n.undoManager.redo()}})}})(tinymce);(function(b){var a=b.util.Dispatcher;b.UndoManager=function(h){var l,i=0,e=[],g,k,j,f;function c(){return b.trim(h.getContent({format:"raw",no_events:1}).replace(/<span[^>]+data-mce-bogus[^>]+>[\u200B\uFEFF]+<\/span>/g,""))}function d(){l.typing=false;l.add()}onBeforeAdd=new a(l);k=new a(l);j=new a(l);f=new a(l);k.add(function(m,n){if(m.hasUndo()){return h.onChange.dispatch(h,n,m)}});j.add(function(m,n){return h.onUndo.dispatch(h,n,m)});f.add(function(m,n){return h.onRedo.dispatch(h,n,m)});h.onInit.add(function(){l.add()});h.onBeforeExecCommand.add(function(m,p,o,q,n){if(p!="Undo"&&p!="Redo"&&p!="mceRepaint"&&(!n||!n.skip_undo)){l.beforeChange()}});h.onExecCommand.add(function(m,p,o,q,n){if(p!="Undo"&&p!="Redo"&&p!="mceRepaint"&&(!n||!n.skip_undo)){l.add()}});h.onSaveContent.add(d);h.dom.bind(h.dom.getRoot(),"dragend",d);h.dom.bind(h.getBody(),"focusout",function(m){if(!h.removed&&l.typing){d()}});h.onKeyUp.add(function(m,o){var n=o.keyCode;if((n>=33&&n<=36)||(n>=37&&n<=40)||n==45||n==13||o.ctrlKey){d()}});h.onKeyDown.add(function(m,o){var n=o.keyCode;if((n>=33&&n<=36)||(n>=37&&n<=40)||n==45){if(l.typing){d()}return}if((n<16||n>20)&&n!=224&&n!=91&&!l.typing){l.beforeChange();l.typing=true;l.add()}});h.onMouseDown.add(function(m,n){if(l.typing){d()}});h.addShortcut("ctrl+z","undo_desc","Undo");h.addShortcut("ctrl+y","redo_desc","Redo");l={data:e,typing:false,onBeforeAdd:onBeforeAdd,onAdd:k,onUndo:j,onRedo:f,beforeChange:function(){g=h.selection.getBookmark(2,true)},add:function(p){var m,n=h.settings,o;p=p||{};p.content=c();l.onBeforeAdd.dispatch(l,p);o=e[i];if(o&&o.content==p.content){return null}if(e[i]){e[i].beforeBookmark=g}if(n.custom_undo_redo_levels){if(e.length>n.custom_undo_redo_levels){for(m=0;m<e.length-1;m++){e[m]=e[m+1]}e.length--;i=e.length}}p.bookmark=h.selection.getBookmark(2,true);if(i<e.length-1){e.length=i+1}e.push(p);i=e.length-1;l.onAdd.dispatch(l,p);h.isNotDirty=0;return p},undo:function(){var n,m;if(l.typing){l.add();l.typing=false}if(i>0){n=e[--i];h.setContent(n.content,{format:"raw"});h.selection.moveToBookmark(n.beforeBookmark);l.onUndo.dispatch(l,n)}return n},redo:function(){var m;if(i<e.length-1){m=e[++i];h.setContent(m.content,{format:"raw"});h.selection.moveToBookmark(m.bookmark);l.onRedo.dispatch(l,m)}return m},clear:function(){e=[];i=0;l.typing=false},hasUndo:function(){return i>0||this.typing},hasRedo:function(){return i<e.length-1&&!this.typing}};return l}})(tinymce);tinymce.ForceBlocks=function(c){var b=c.settings,e=c.dom,a=c.selection,d=c.schema.getBlockElements();function f(){var j=a.getStart(),h=c.getBody(),g,k,o,s,q,i,l,m=-16777215,p,r;if(!j||j.nodeType!==1||!b.forced_root_block){return}while(j&&j!=h){if(d[j.nodeName]){return}j=j.parentNode}g=a.getRng();if(g.setStart){k=g.startContainer;o=g.startOffset;s=g.endContainer;q=g.endOffset}else{if(g.item){j=g.item(0);g=c.getDoc().body.createTextRange();g.moveToElementText(j)}r=g.parentElement().ownerDocument===c.getDoc();tmpRng=g.duplicate();tmpRng.collapse(true);o=tmpRng.move("character",m)*-1;if(!tmpRng.collapsed){tmpRng=g.duplicate();tmpRng.collapse(false);q=(tmpRng.move("character",m)*-1)-o}}j=h.firstChild;while(j){if(j.nodeType===3||(j.nodeType==1&&!d[j.nodeName])){if(j.nodeType===3&&j.nodeValue.length==0){l=j;j=j.nextSibling;e.remove(l);continue}if(!i){i=e.create(b.forced_root_block);j.parentNode.insertBefore(i,j);p=true}l=j;j=j.nextSibling;i.appendChild(l)}else{i=null;j=j.nextSibling}}if(p){if(g.setStart){g.setStart(k,o);g.setEnd(s,q);a.setRng(g)}else{if(r){try{g=c.getDoc().body.createTextRange();g.moveToElementText(h);g.collapse(true);g.moveStart("character",o);if(q>0){g.moveEnd("character",q)}g.select()}catch(n){}}}c.nodeChanged()}}if(b.forced_root_block){c.onKeyUp.add(f);c.onNodeChange.add(f)}};(function(c){var b=c.DOM,a=c.dom.Event,d=c.each,e=c.extend;c.create("tinymce.ControlManager",{ControlManager:function(f,j){var h=this,g;j=j||{};h.editor=f;h.controls={};h.onAdd=new c.util.Dispatcher(h);h.onPostRender=new c.util.Dispatcher(h);h.prefix=j.prefix||f.id+"_";h._cls={};h.onPostRender.add(function(){d(h.controls,function(i){i.postRender()})})},get:function(f){return this.controls[this.prefix+f]||this.controls[f]},setActive:function(h,f){var g=null;if(g=this.get(h)){g.setActive(f)}return g},setDisabled:function(h,f){var g=null;if(g=this.get(h)){g.setDisabled(f)}return g},add:function(g){var f=this;if(g){f.controls[g.id]=g;f.onAdd.dispatch(g,f)}return g},createControl:function(j){var o,k,g,h=this,m=h.editor,n,f;if(!h.controlFactories){h.controlFactories=[];d(m.plugins,function(i){if(i.createControl){h.controlFactories.push(i)}})}n=h.controlFactories;for(k=0,g=n.length;k<g;k++){o=n[k].createControl(j,h);if(o){return h.add(o)}}if(j==="|"||j==="separator"){return h.createSeparator()}if(m.buttons&&(o=m.buttons[j])){return h.createButton(j,o)}return h.add(o)},createDropMenu:function(f,n,h){var m=this,i=m.editor,j,g,k,l;n=e({"class":"mceDropDown",constrain:i.settings.constrain_menus},n);n["class"]=n["class"]+" "+i.getParam("skin")+"Skin";if(k=i.getParam("skin_variant")){n["class"]+=" "+i.getParam("skin")+"Skin"+k.substring(0,1).toUpperCase()+k.substring(1)}n["class"]+=i.settings.directionality=="rtl"?" mceRtl":"";f=m.prefix+f;l=h||m._cls.dropmenu||c.ui.DropMenu;j=m.controls[f]=new l(f,n);j.onAddItem.add(function(r,q){var p=q.settings;p.title=i.getLang(p.title,p.title);if(!p.onclick){p.onclick=function(o){if(p.cmd){i.execCommand(p.cmd,p.ui||false,p.value)}}}});i.onRemove.add(function(){j.destroy()});if(c.isIE){j.onShowMenu.add(function(){i.focus();g=i.selection.getBookmark(1)});j.onHideMenu.add(function(){if(g){i.selection.moveToBookmark(g);g=0}})}return m.add(j)},createListBox:function(f,n,h){var l=this,j=l.editor,i,k,m;if(l.get(f)){return null}n.title=j.translate(n.title);n.scope=n.scope||j;if(!n.onselect){n.onselect=function(o){j.execCommand(n.cmd,n.ui||false,o||n.value)}}n=e({title:n.title,"class":"mce_"+f,scope:n.scope,control_manager:l},n);f=l.prefix+f;function g(o){return o.settings.use_accessible_selects&&!c.isGecko}if(j.settings.use_native_selects||g(j)){k=new c.ui.NativeListBox(f,n)}else{m=h||l._cls.listbox||c.ui.ListBox;k=new m(f,n,j)}l.controls[f]=k;if(c.isWebKit){k.onPostRender.add(function(p,o){a.add(o,"mousedown",function(){j.bookmark=j.selection.getBookmark(1)});a.add(o,"focus",function(){j.selection.moveToBookmark(j.bookmark);j.bookmark=null})})}if(k.hideMenu){j.onMouseDown.add(k.hideMenu,k)}return l.add(k)},createButton:function(m,i,l){var h=this,g=h.editor,j,k,f;if(h.get(m)){return null}i.title=g.translate(i.title);i.label=g.translate(i.label);i.scope=i.scope||g;if(!i.onclick&&!i.menu_button){i.onclick=function(){g.execCommand(i.cmd,i.ui||false,i.value)}}i=e({title:i.title,"class":"mce_"+m,unavailable_prefix:g.getLang("unavailable",""),scope:i.scope,control_manager:h},i);m=h.prefix+m;if(i.menu_button){f=l||h._cls.menubutton||c.ui.MenuButton;k=new f(m,i,g);g.onMouseDown.add(k.hideMenu,k)}else{f=h._cls.button||c.ui.Button;k=new f(m,i,g)}return h.add(k)},createMenuButton:function(h,f,g){f=f||{};f.menu_button=1;return this.createButton(h,f,g)},createSplitButton:function(m,i,l){var h=this,g=h.editor,j,k,f;if(h.get(m)){return null}i.title=g.translate(i.title);i.scope=i.scope||g;if(!i.onclick){i.onclick=function(n){g.execCommand(i.cmd,i.ui||false,n||i.value)}}if(!i.onselect){i.onselect=function(n){g.execCommand(i.cmd,i.ui||false,n||i.value)}}i=e({title:i.title,"class":"mce_"+m,scope:i.scope,control_manager:h},i);m=h.prefix+m;f=l||h._cls.splitbutton||c.ui.SplitButton;k=h.add(new f(m,i,g));g.onMouseDown.add(k.hideMenu,k);return k},createColorSplitButton:function(f,n,h){var l=this,j=l.editor,i,k,m,g;if(l.get(f)){return null}n.title=j.translate(n.title);n.scope=n.scope||j;if(!n.onclick){n.onclick=function(o){if(c.isIE){g=j.selection.getBookmark(1)}j.execCommand(n.cmd,n.ui||false,o||n.value)}}if(!n.onselect){n.onselect=function(o){j.execCommand(n.cmd,n.ui||false,o||n.value)}}n=e({title:n.title,"class":"mce_"+f,menu_class:j.getParam("skin")+"Skin",scope:n.scope,more_colors_title:j.getLang("more_colors")},n);f=l.prefix+f;m=h||l._cls.colorsplitbutton||c.ui.ColorSplitButton;k=new m(f,n,j);j.onMouseDown.add(k.hideMenu,k);j.onRemove.add(function(){k.destroy()});if(c.isIE){k.onShowMenu.add(function(){j.focus();g=j.selection.getBookmark(1)});k.onHideMenu.add(function(){if(g){j.selection.moveToBookmark(g);g=0}})}return l.add(k)},createToolbar:function(k,h,j){var i,g=this,f;k=g.prefix+k;f=j||g._cls.toolbar||c.ui.Toolbar;i=new f(k,h,g.editor);if(g.get(k)){return null}return g.add(i)},createToolbarGroup:function(k,h,j){var i,g=this,f;k=g.prefix+k;f=j||this._cls.toolbarGroup||c.ui.ToolbarGroup;i=new f(k,h,g.editor);if(g.get(k)){return null}return g.add(i)},createSeparator:function(g){var f=g||this._cls.separator||c.ui.Separator;return new f()},setControlType:function(g,f){return this._cls[g.toLowerCase()]=f},destroy:function(){d(this.controls,function(f){f.destroy()});this.controls=null}})})(tinymce);(function(d){var a=d.util.Dispatcher,e=d.each,c=d.isIE,b=d.isOpera;d.create("tinymce.WindowManager",{WindowManager:function(f){var g=this;g.editor=f;g.onOpen=new a(g);g.onClose=new a(g);g.params={};g.features={}},open:function(z,h){var v=this,k="",n,m,i=v.editor.settings.dialog_type=="modal",q,o,j,g=d.DOM.getViewPort(),r;z=z||{};h=h||{};o=b?g.w:screen.width;j=b?g.h:screen.height;z.name=z.name||"mc_"+new Date().getTime();z.width=parseInt(z.width||320);z.height=parseInt(z.height||240);z.resizable=true;z.left=z.left||parseInt(o/2)-(z.width/2);z.top=z.top||parseInt(j/2)-(z.height/2);h.inline=false;h.mce_width=z.width;h.mce_height=z.height;h.mce_auto_focus=z.auto_focus;if(i){if(c){z.center=true;z.help=false;z.dialogWidth=z.width+"px";z.dialogHeight=z.height+"px";z.scroll=z.scrollbars||false}}e(z,function(p,f){if(d.is(p,"boolean")){p=p?"yes":"no"}if(!/^(name|url)$/.test(f)){if(c&&i){k+=(k?";":"")+f+":"+p}else{k+=(k?",":"")+f+"="+p}}});v.features=z;v.params=h;v.onOpen.dispatch(v,z,h);r=z.url||z.file;r=d._addVer(r);try{if(c&&i){q=1;window.showModalDialog(r,window,k)}else{q=window.open(r,z.name,k)}}catch(l){}if(!q){alert(v.editor.getLang("popup_blocked"))}},close:function(f){f.close();this.onClose.dispatch(this)},createInstance:function(i,h,g,m,l,k){var j=d.resolve(i);return new j(h,g,m,l,k)},confirm:function(h,f,i,g){g=g||window;f.call(i||this,g.confirm(this._decode(this.editor.getLang(h,h))))},alert:function(h,f,j,g){var i=this;g=g||window;g.alert(i._decode(i.editor.getLang(h,h)));if(f){f.call(j||i)}},resizeBy:function(f,g,h){h.resizeBy(f,g)},_decode:function(f){return d.DOM.decode(f).replace(/\\n/g,"\n")}})}(tinymce));(function(a){a.Formatter=function(aa){var Q={},T=a.each,c=aa.dom,r=aa.selection,t=a.dom.TreeWalker,N=new a.dom.RangeUtils(c),d=aa.schema.isValidChild,A=a.isArray,H=c.isBlock,m=aa.settings.forced_root_block,s=c.nodeIndex,G="\uFEFF",e=/^(src|href|style)$/,X=false,C=true,P,D,x=c.getContentEditable;function I(ab){return !!aa.schema.getTextBlocks()[ab.toLowerCase()]}function n(ac,ab){return c.getParents(ac,ab,c.getRoot())}function b(ab){return ab.nodeType===1&&ab.id==="_mce_caret"}function j(){l({alignleft:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li",styles:{textAlign:"left"},defaultBlock:"div"},{selector:"img,table",collapsed:false,styles:{"float":"left"}}],aligncenter:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li",styles:{textAlign:"center"},defaultBlock:"div"},{selector:"img",collapsed:false,styles:{display:"block",marginLeft:"auto",marginRight:"auto"}},{selector:"table",collapsed:false,styles:{marginLeft:"auto",marginRight:"auto"}}],alignright:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li",styles:{textAlign:"right"},defaultBlock:"div"},{selector:"img,table",collapsed:false,styles:{"float":"right"}}],alignfull:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li",styles:{textAlign:"justify"},defaultBlock:"div"}],bold:[{inline:"strong",remove:"all"},{inline:"span",styles:{fontWeight:"bold"}},{inline:"b",remove:"all"}],italic:[{inline:"em",remove:"all"},{inline:"span",styles:{fontStyle:"italic"}},{inline:"i",remove:"all"}],underline:[{inline:"span",styles:{textDecoration:"underline"},exact:true},{inline:"u",remove:"all"}],strikethrough:[{inline:"span",styles:{textDecoration:"line-through"},exact:true},{inline:"strike",remove:"all"}],forecolor:{inline:"span",styles:{color:"%value"},wrap_links:false},hilitecolor:{inline:"span",styles:{backgroundColor:"%value"},wrap_links:false},fontname:{inline:"span",styles:{fontFamily:"%value"}},fontsize:{inline:"span",styles:{fontSize:"%value"}},fontsize_class:{inline:"span",attributes:{"class":"%value"}},blockquote:{block:"blockquote",wrapper:1,remove:"all"},subscript:{inline:"sub"},superscript:{inline:"sup"},link:{inline:"a",selector:"a",remove:"all",split:true,deep:true,onmatch:function(ab){return true},onformat:function(ad,ab,ac){T(ac,function(af,ae){c.setAttrib(ad,ae,af)})}},removeformat:[{selector:"b,strong,em,i,font,u,strike",remove:"all",split:true,expand:false,block_expand:true,deep:true},{selector:"span",attributes:["style","class"],remove:"empty",split:true,expand:false,deep:true},{selector:"*",attributes:["style","class"],split:false,expand:false,deep:true}]});T("p h1 h2 h3 h4 h5 h6 div address pre div code dt dd samp".split(/\s/),function(ab){l(ab,{block:ab,remove:"all"})});l(aa.settings.formats)}function W(){aa.addShortcut("ctrl+b","bold_desc","Bold");aa.addShortcut("ctrl+i","italic_desc","Italic");aa.addShortcut("ctrl+u","underline_desc","Underline");for(var ab=1;ab<=6;ab++){aa.addShortcut("ctrl+"+ab,"",["FormatBlock",false,"h"+ab])}aa.addShortcut("ctrl+7","",["FormatBlock",false,"p"]);aa.addShortcut("ctrl+8","",["FormatBlock",false,"div"]);aa.addShortcut("ctrl+9","",["FormatBlock",false,"address"])}function V(ab){return ab?Q[ab]:Q}function l(ab,ac){if(ab){if(typeof(ab)!=="string"){T(ab,function(ae,ad){l(ad,ae)})}else{ac=ac.length?ac:[ac];T(ac,function(ad){if(ad.deep===D){ad.deep=!ad.selector}if(ad.split===D){ad.split=!ad.selector||ad.inline}if(ad.remove===D&&ad.selector&&!ad.inline){ad.remove="none"}if(ad.selector&&ad.inline){ad.mixed=true;ad.block_expand=true}if(typeof(ad.classes)==="string"){ad.classes=ad.classes.split(/\s+/)}});Q[ab]=ac}}}var i=function(ac){var ab;aa.dom.getParent(ac,function(ad){ab=aa.dom.getStyle(ad,"text-decoration");return ab&&ab!=="none"});return ab};var L=function(ab){var ac;if(ab.nodeType===1&&ab.parentNode&&ab.parentNode.nodeType===1){ac=i(ab.parentNode);if(aa.dom.getStyle(ab,"color")&&ac){aa.dom.setStyle(ab,"text-decoration",ac)}else{if(aa.dom.getStyle(ab,"textdecoration")===ac){aa.dom.setStyle(ab,"text-decoration",null)}}}};function Y(ae,al,ag){var ah=V(ae),am=ah[0],ak,ac,aj,ai=r.isCollapsed();function ab(aq,ap){ap=ap||am;if(aq){if(ap.onformat){ap.onformat(aq,ap,al,ag)}T(ap.styles,function(at,ar){c.setStyle(aq,ar,q(at,al))});T(ap.attributes,function(at,ar){c.setAttrib(aq,ar,q(at,al))});T(ap.classes,function(ar){ar=q(ar,al);if(!c.hasClass(aq,ar)){c.addClass(aq,ar)}})}}function af(){function ar(ay,aw){var ax=new t(aw);for(ag=ax.current();ag;ag=ax.prev()){if(ag.childNodes.length>1||ag==ay||ag.tagName=="BR"){return ag}}}var aq=aa.selection.getRng();var av=aq.startContainer;var ap=aq.endContainer;if(av!=ap&&aq.endOffset===0){var au=ar(av,ap);var at=au.nodeType==3?au.length:au.childNodes.length;aq.setEnd(au,at)}return aq}function ad(at,ay,aw,av,aq){var ap=[],ar=-1,ax,aA=-1,au=-1,az;T(at.childNodes,function(aC,aB){if(aC.nodeName==="UL"||aC.nodeName==="OL"){ar=aB;ax=aC;return false}});T(at.childNodes,function(aC,aB){if(aC.nodeName==="SPAN"&&c.getAttrib(aC,"data-mce-type")=="bookmark"){if(aC.id==ay.id+"_start"){aA=aB}else{if(aC.id==ay.id+"_end"){au=aB}}}});if(ar<=0||(aA<ar&&au>ar)){T(a.grep(at.childNodes),aq);return 0}else{az=c.clone(aw,X);T(a.grep(at.childNodes),function(aC,aB){if((aA<ar&&aB<ar)||(aA>ar&&aB>ar)){ap.push(aC);aC.parentNode.removeChild(aC)}});if(aA<ar){at.insertBefore(az,ax)}else{if(aA>ar){at.insertBefore(az,ax.nextSibling)}}av.push(az);T(ap,function(aB){az.appendChild(aB)});return az}}function an(aq,at,aw){var ap=[],av,ar,au=true;av=am.inline||am.block;ar=c.create(av);ab(ar);N.walk(aq,function(ax){var ay;function az(aA){var aF,aD,aB,aC,aE;aE=au;aF=aA.nodeName.toLowerCase();aD=aA.parentNode.nodeName.toLowerCase();if(aA.nodeType===1&&x(aA)){aE=au;au=x(aA)==="true";aC=true}if(g(aF,"br")){ay=0;if(am.block){c.remove(aA)}return}if(am.wrapper&&y(aA,ae,al)){ay=0;return}if(au&&!aC&&am.block&&!am.wrapper&&I(aF)){aA=c.rename(aA,av);ab(aA);ap.push(aA);ay=0;return}if(am.selector){T(ah,function(aG){if("collapsed" in aG&&aG.collapsed!==ai){return}if(c.is(aA,aG.selector)&&!b(aA)){ab(aA,aG);aB=true}});if(!am.inline||aB){ay=0;return}}if(au&&!aC&&d(av,aF)&&d(aD,av)&&!(!aw&&aA.nodeType===3&&aA.nodeValue.length===1&&aA.nodeValue.charCodeAt(0)===65279)&&!b(aA)){if(!ay){ay=c.clone(ar,X);aA.parentNode.insertBefore(ay,aA);ap.push(ay)}ay.appendChild(aA)}else{if(aF=="li"&&at){ay=ad(aA,at,ar,ap,az)}else{ay=0;T(a.grep(aA.childNodes),az);if(aC){au=aE}ay=0}}}T(ax,az)});if(am.wrap_links===false){T(ap,function(ax){function ay(aC){var aB,aA,az;if(aC.nodeName==="A"){aA=c.clone(ar,X);ap.push(aA);az=a.grep(aC.childNodes);for(aB=0;aB<az.length;aB++){aA.appendChild(az[aB])}aC.appendChild(aA)}T(a.grep(aC.childNodes),ay)}ay(ax)})}T(ap,function(az){var ax;function aA(aC){var aB=0;T(aC.childNodes,function(aD){if(!f(aD)&&!K(aD)){aB++}});return aB}function ay(aB){var aD,aC;T(aB.childNodes,function(aE){if(aE.nodeType==1&&!K(aE)&&!b(aE)){aD=aE;return X}});if(aD&&h(aD,am)){aC=c.clone(aD,X);ab(aC);c.replace(aC,aB,C);c.remove(aD,1)}return aC||aB}ax=aA(az);if((ap.length>1||!H(az))&&ax===0){c.remove(az,1);return}if(am.inline||am.wrapper){if(!am.exact&&ax===1){az=ay(az)}T(ah,function(aB){T(c.select(aB.inline,az),function(aD){var aC;if(aB.wrap_links===false){aC=aD.parentNode;do{if(aC.nodeName==="A"){return}}while(aC=aC.parentNode)}Z(aB,al,aD,aB.exact?aD:null)})});if(y(az.parentNode,ae,al)){c.remove(az,1);az=0;return C}if(am.merge_with_parents){c.getParent(az.parentNode,function(aB){if(y(aB,ae,al)){c.remove(az,1);az=0;return C}})}if(az&&am.merge_siblings!==false){az=u(E(az),az);az=u(az,E(az,C))}}})}if(am){if(ag){if(ag.nodeType){ac=c.createRng();ac.setStartBefore(ag);ac.setEndAfter(ag);an(p(ac,ah),null,true)}else{an(ag,null,true)}}else{if(!ai||!am.inline||c.select("td.mceSelected,th.mceSelected").length){var ao=aa.selection.getNode();if(!m&&ah[0].defaultBlock&&!c.getParent(ao,c.isBlock)){Y(ah[0].defaultBlock)}aa.selection.setRng(af());ak=r.getBookmark();an(p(r.getRng(C),ah),ak);if(am.styles&&(am.styles.color||am.styles.textDecoration)){a.walk(ao,L,"childNodes");L(ao)}r.moveToBookmark(ak);R(r.getRng(C));aa.nodeChanged()}else{U("apply",ae,al)}}}}function B(ad,am,af){var ag=V(ad),ao=ag[0],ak,aj,ac,al=true;function ae(av){var au,at,ar,aq,ax,aw;if(av.nodeType===3){return}if(av.nodeType===1&&x(av)){ax=al;al=x(av)==="true";aw=true}au=a.grep(av.childNodes);if(al&&!aw){for(at=0,ar=ag.length;at<ar;at++){if(Z(ag[at],am,av,av)){break}}}if(ao.deep){if(au.length){for(at=0,ar=au.length;at<ar;at++){ae(au[at])}if(aw){al=ax}}}}function ah(aq){var ar;T(n(aq.parentNode).reverse(),function(at){var au;if(!ar&&at.id!="_start"&&at.id!="_end"){au=y(at,ad,am);if(au&&au.split!==false){ar=at}}});return ar}function ab(au,aq,aw,az){var aA,ay,ax,at,av,ar;if(au){ar=au.parentNode;for(aA=aq.parentNode;aA&&aA!=ar;aA=aA.parentNode){ay=c.clone(aA,X);for(av=0;av<ag.length;av++){if(Z(ag[av],am,ay,ay)){ay=0;break}}if(ay){if(ax){ay.appendChild(ax)}if(!at){at=ay}ax=ay}}if(az&&(!ao.mixed||!H(au))){aq=c.split(au,aq)}if(ax){aw.parentNode.insertBefore(ax,aw);at.appendChild(aw)}}return aq}function an(aq){return ab(ah(aq),aq,aq,true)}function ai(at){var ar=c.get(at?"_start":"_end"),aq=ar[at?"firstChild":"lastChild"];if(K(aq)){aq=aq[at?"firstChild":"lastChild"]}c.remove(ar,true);return aq}function ap(aq){var at,au,ar;aq=p(aq,ag,C);if(ao.split){at=M(aq,C);au=M(aq);if(at!=au){if(/^(TR|TD)$/.test(at.nodeName)&&at.firstChild){at=(at.nodeName=="TD"?at.firstChild:at.firstChild.firstChild)||at}at=S(at,"span",{id:"_start","data-mce-type":"bookmark"});au=S(au,"span",{id:"_end","data-mce-type":"bookmark"});an(at);an(au);at=ai(C);au=ai()}else{at=au=an(at)}aq.startContainer=at.parentNode;aq.startOffset=s(at);aq.endContainer=au.parentNode;aq.endOffset=s(au)+1}N.walk(aq,function(av){T(av,function(aw){ae(aw);if(aw.nodeType===1&&aa.dom.getStyle(aw,"text-decoration")==="underline"&&aw.parentNode&&i(aw.parentNode)==="underline"){Z({deep:false,exact:true,inline:"span",styles:{textDecoration:"underline"}},null,aw)}})})}if(af){if(af.nodeType){ac=c.createRng();ac.setStartBefore(af);ac.setEndAfter(af);ap(ac)}else{ap(af)}return}if(!r.isCollapsed()||!ao.inline||c.select("td.mceSelected,th.mceSelected").length){ak=r.getBookmark();ap(r.getRng(C));r.moveToBookmark(ak);if(ao.inline&&k(ad,am,r.getStart())){R(r.getRng(true))}aa.nodeChanged()}else{U("remove",ad,am)}}function F(ac,ae,ad){var ab=V(ac);if(k(ac,ae,ad)&&(!("toggle" in ab[0])||ab[0].toggle)){B(ac,ae,ad)}else{Y(ac,ae,ad)}}function y(ac,ab,ah,af){var ad=V(ab),ai,ag,ae;function aj(an,ap,aq){var am,ao,ak=ap[aq],al;if(ap.onmatch){return ap.onmatch(an,ap,aq)}if(ak){if(ak.length===D){for(am in ak){if(ak.hasOwnProperty(am)){if(aq==="attributes"){ao=c.getAttrib(an,am)}else{ao=O(an,am)}if(af&&!ao&&!ap.exact){return}if((!af||ap.exact)&&!g(ao,q(ak[am],ah))){return}}}}else{for(al=0;al<ak.length;al++){if(aq==="attributes"?c.getAttrib(an,ak[al]):O(an,ak[al])){return ap}}}}return ap}if(ad&&ac){for(ag=0;ag<ad.length;ag++){ai=ad[ag];if(h(ac,ai)&&aj(ac,ai,"attributes")&&aj(ac,ai,"styles")){if(ae=ai.classes){for(ag=0;ag<ae.length;ag++){if(!c.hasClass(ac,ae[ag])){return}}}return ai}}}}function k(ad,af,ae){var ac;function ab(ag){ag=c.getParent(ag,function(ah){return !!y(ah,ad,af,true)});return y(ag,ad,af)}if(ae){return ab(ae)}ae=r.getNode();if(ab(ae)){return C}ac=r.getStart();if(ac!=ae){if(ab(ac)){return C}}return X}function v(ai,ah){var af,ag=[],ae={},ad,ac,ab;af=r.getStart();c.getParent(af,function(al){var ak,aj;for(ak=0;ak<ai.length;ak++){aj=ai[ak];if(!ae[aj]&&y(al,aj,ah)){ae[aj]=true;ag.push(aj)}}},c.getRoot());return ag}function z(af){var ah=V(af),ae,ad,ag,ac,ab;if(ah){ae=r.getStart();ad=n(ae);for(ac=ah.length-1;ac>=0;ac--){ab=ah[ac].selector;if(!ab){return C}for(ag=ad.length-1;ag>=0;ag--){if(c.is(ad[ag],ab)){return C}}}}return X}function J(ab,ae,ac){var ad;if(!P){P={};ad={};aa.onNodeChange.addToTop(function(ag,af,ai){var ah=n(ai),aj={};T(P,function(ak,al){T(ah,function(am){if(y(am,al,{},ak.similar)){if(!ad[al]){T(ak,function(an){an(true,{node:am,format:al,parents:ah})});ad[al]=ak}aj[al]=ak;return false}})});T(ad,function(ak,al){if(!aj[al]){delete ad[al];T(ak,function(am){am(false,{node:ai,format:al,parents:ah})})}})})}T(ab.split(","),function(af){if(!P[af]){P[af]=[];P[af].similar=ac}P[af].push(ae)});return this}a.extend(this,{get:V,register:l,apply:Y,remove:B,toggle:F,match:k,matchAll:v,matchNode:y,canApply:z,formatChanged:J});j();W();function h(ab,ac){if(g(ab,ac.inline)){return C}if(g(ab,ac.block)){return C}if(ac.selector){return c.is(ab,ac.selector)}}function g(ac,ab){ac=ac||"";ab=ab||"";ac=""+(ac.nodeName||ac);ab=""+(ab.nodeName||ab);return ac.toLowerCase()==ab.toLowerCase()}function O(ac,ab){var ad=c.getStyle(ac,ab);if(ab=="color"||ab=="backgroundColor"){ad=c.toHex(ad)}if(ab=="fontWeight"&&ad==700){ad="bold"}return""+ad}function q(ab,ac){if(typeof(ab)!="string"){ab=ab(ac)}else{if(ac){ab=ab.replace(/%(\w+)/g,function(ae,ad){return ac[ad]||ae})}}return ab}function f(ab){return ab&&ab.nodeType===3&&/^([\t \r\n]+|)$/.test(ab.nodeValue)}function S(ad,ac,ab){var ae=c.create(ac,ab);ad.parentNode.insertBefore(ae,ad);ae.appendChild(ad);return ae}function p(ab,am,ae){var ap,an,ah,al,ad=ab.startContainer,ai=ab.startOffset,ar=ab.endContainer,ak=ab.endOffset;function ao(aA){var au,ax,az,aw,av,at;au=ax=aA?ad:ar;av=aA?"previousSibling":"nextSibling";at=c.getRoot();function ay(aB){return aB.nodeName=="BR"&&aB.getAttribute("data-mce-bogus")&&!aB.nextSibling}if(au.nodeType==3&&!f(au)){if(aA?ai>0:ak<au.nodeValue.length){return au}}for(;;){if(!am[0].block_expand&&H(ax)){return ax}for(aw=ax[av];aw;aw=aw[av]){if(!K(aw)&&!f(aw)&&!ay(aw)){return ax}}if(ax.parentNode==at){au=ax;break}ax=ax.parentNode}return au}function ag(at,au){if(au===D){au=at.nodeType===3?at.length:at.childNodes.length}while(at&&at.hasChildNodes()){at=at.childNodes[au];if(at){au=at.nodeType===3?at.length:at.childNodes.length}}return{node:at,offset:au}}if(ad.nodeType==1&&ad.hasChildNodes()){an=ad.childNodes.length-1;ad=ad.childNodes[ai>an?an:ai];if(ad.nodeType==3){ai=0}}if(ar.nodeType==1&&ar.hasChildNodes()){an=ar.childNodes.length-1;ar=ar.childNodes[ak>an?an:ak-1];if(ar.nodeType==3){ak=ar.nodeValue.length}}function aq(au){var at=au;while(at){if(at.nodeType===1&&x(at)){return x(at)==="false"?at:au}at=at.parentNode}return au}function aj(au,ay,aA){var ax,av,az,at;function aw(aC,aE){var aF,aB,aD=aC.nodeValue;if(typeof(aE)=="undefined"){aE=aA?aD.length:0}if(aA){aF=aD.lastIndexOf(" ",aE);aB=aD.lastIndexOf("\u00a0",aE);aF=aF>aB?aF:aB;if(aF!==-1&&!ae){aF++}}else{aF=aD.indexOf(" ",aE);aB=aD.indexOf("\u00a0",aE);aF=aF!==-1&&(aB===-1||aF<aB)?aF:aB}return aF}if(au.nodeType===3){az=aw(au,ay);if(az!==-1){return{container:au,offset:az}}at=au}ax=new t(au,c.getParent(au,H)||aa.getBody());while(av=ax[aA?"prev":"next"]()){if(av.nodeType===3){at=av;az=aw(av);if(az!==-1){return{container:av,offset:az}}}else{if(H(av)){break}}}if(at){if(aA){ay=0}else{ay=at.length}return{container:at,offset:ay}}}function af(au,at){var av,aw,ay,ax;if(au.nodeType==3&&au.nodeValue.length===0&&au[at]){au=au[at]}av=n(au);for(aw=0;aw<av.length;aw++){for(ay=0;ay<am.length;ay++){ax=am[ay];if("collapsed" in ax&&ax.collapsed!==ab.collapsed){continue}if(c.is(av[aw],ax.selector)){return av[aw]}}}return au}function ac(au,at,aw){var av;if(!am[0].wrapper){av=c.getParent(au,am[0].block)}if(!av){av=c.getParent(au.nodeType==3?au.parentNode:au,I)}if(av&&am[0].wrapper){av=n(av,"ul,ol").reverse()[0]||av}if(!av){av=au;while(av[at]&&!H(av[at])){av=av[at];if(g(av,"br")){break}}}return av||au}ad=aq(ad);ar=aq(ar);if(K(ad.parentNode)||K(ad)){ad=K(ad)?ad:ad.parentNode;ad=ad.nextSibling||ad;if(ad.nodeType==3){ai=0}}if(K(ar.parentNode)||K(ar)){ar=K(ar)?ar:ar.parentNode;ar=ar.previousSibling||ar;if(ar.nodeType==3){ak=ar.length}}if(am[0].inline){if(ab.collapsed){al=aj(ad,ai,true);if(al){ad=al.container;ai=al.offset}al=aj(ar,ak);if(al){ar=al.container;ak=al.offset}}ah=ag(ar,ak);if(ah.node){while(ah.node&&ah.offset===0&&ah.node.previousSibling){ah=ag(ah.node.previousSibling)}if(ah.node&&ah.offset>0&&ah.node.nodeType===3&&ah.node.nodeValue.charAt(ah.offset-1)===" "){if(ah.offset>1){ar=ah.node;ar.splitText(ah.offset-1)}}}}if(am[0].inline||am[0].block_expand){if(!am[0].inline||(ad.nodeType!=3||ai===0)){ad=ao(true)}if(!am[0].inline||(ar.nodeType!=3||ak===ar.nodeValue.length)){ar=ao()}}if(am[0].selector&&am[0].expand!==X&&!am[0].inline){ad=af(ad,"previousSibling");ar=af(ar,"nextSibling")}if(am[0].block||am[0].selector){ad=ac(ad,"previousSibling");ar=ac(ar,"nextSibling");if(am[0].block){if(!H(ad)){ad=ao(true)}if(!H(ar)){ar=ao()}}}if(ad.nodeType==1){ai=s(ad);ad=ad.parentNode}if(ar.nodeType==1){ak=s(ar)+1;ar=ar.parentNode}return{startContainer:ad,startOffset:ai,endContainer:ar,endOffset:ak}}function Z(ah,ag,ae,ab){var ad,ac,af;if(!h(ae,ah)){return X}if(ah.remove!="all"){T(ah.styles,function(aj,ai){aj=q(aj,ag);if(typeof(ai)==="number"){ai=aj;ab=0}if(!ab||g(O(ab,ai),aj)){c.setStyle(ae,ai,"")}af=1});if(af&&c.getAttrib(ae,"style")==""){ae.removeAttribute("style");ae.removeAttribute("data-mce-style")}T(ah.attributes,function(ak,ai){var aj;ak=q(ak,ag);if(typeof(ai)==="number"){ai=ak;ab=0}if(!ab||g(c.getAttrib(ab,ai),ak)){if(ai=="class"){ak=c.getAttrib(ae,ai);if(ak){aj="";T(ak.split(/\s+/),function(al){if(/mce\w+/.test(al)){aj+=(aj?" ":"")+al}});if(aj){c.setAttrib(ae,ai,aj);return}}}if(ai=="class"){ae.removeAttribute("className")}if(e.test(ai)){ae.removeAttribute("data-mce-"+ai)}ae.removeAttribute(ai)}});T(ah.classes,function(ai){ai=q(ai,ag);if(!ab||c.hasClass(ab,ai)){c.removeClass(ae,ai)}});ac=c.getAttribs(ae);for(ad=0;ad<ac.length;ad++){if(ac[ad].nodeName.indexOf("_")!==0){return X}}}if(ah.remove!="none"){o(ae,ah);return C}}function o(ad,ae){var ab=ad.parentNode,ac;function af(ah,ag,ai){ah=E(ah,ag,ai);return !ah||(ah.nodeName=="BR"||H(ah))}if(ae.block){if(!m){if(H(ad)&&!H(ab)){if(!af(ad,X)&&!af(ad.firstChild,C,1)){ad.insertBefore(c.create("br"),ad.firstChild)}if(!af(ad,C)&&!af(ad.lastChild,X,1)){ad.appendChild(c.create("br"))}}}else{if(ab==c.getRoot()){if(!ae.list_block||!g(ad,ae.list_block)){T(a.grep(ad.childNodes),function(ag){if(d(m,ag.nodeName.toLowerCase())){if(!ac){ac=S(ag,m)}else{ac.appendChild(ag)}}else{ac=0}})}}}}if(ae.selector&&ae.inline&&!g(ae.inline,ad)){return}c.remove(ad,1)}function E(ac,ab,ad){if(ac){ab=ab?"nextSibling":"previousSibling";for(ac=ad?ac:ac[ab];ac;ac=ac[ab]){if(ac.nodeType==1||!f(ac)){return ac}}}}function K(ab){return ab&&ab.nodeType==1&&ab.getAttribute("data-mce-type")=="bookmark"}function u(af,ae){var ab,ad,ac;function ah(ak,aj){if(ak.nodeName!=aj.nodeName){return X}function ai(am){var an={};T(c.getAttribs(am),function(ao){var ap=ao.nodeName.toLowerCase();if(ap.indexOf("_")!==0&&ap!=="style"){an[ap]=c.getAttrib(am,ap)}});return an}function al(ap,ao){var an,am;for(am in ap){if(ap.hasOwnProperty(am)){an=ao[am];if(an===D){return X}if(ap[am]!=an){return X}delete ao[am]}}for(am in ao){if(ao.hasOwnProperty(am)){return X}}return C}if(!al(ai(ak),ai(aj))){return X}if(!al(c.parseStyle(c.getAttrib(ak,"style")),c.parseStyle(c.getAttrib(aj,"style")))){return X}return C}function ag(aj,ai){for(ad=aj;ad;ad=ad[ai]){if(ad.nodeType==3&&ad.nodeValue.length!==0){return aj}if(ad.nodeType==1&&!K(ad)){return ad}}return aj}if(af&&ae){af=ag(af,"previousSibling");ae=ag(ae,"nextSibling");if(ah(af,ae)){for(ad=af.nextSibling;ad&&ad!=ae;){ac=ad;ad=ad.nextSibling;af.appendChild(ac)}c.remove(ae);T(a.grep(ae.childNodes),function(ai){af.appendChild(ai)});return af}}return ae}function I(ab){return/^(h[1-6]|p|div|pre|address|dl|dt|dd)$/.test(ab)}function M(ac,ag){var ab,af,ad,ae;ab=ac[ag?"startContainer":"endContainer"];af=ac[ag?"startOffset":"endOffset"];if(ab.nodeType==1){ad=ab.childNodes.length-1;if(!ag&&af){af--}ab=ab.childNodes[af>ad?ad:af]}if(ab.nodeType===3&&ag&&af>=ab.nodeValue.length){ab=new t(ab,aa.getBody()).next()||ab}if(ab.nodeType===3&&!ag&&af===0){ab=new t(ab,aa.getBody()).prev()||ab}return ab}function U(ak,ab,ai){var al="_mce_caret",ac=aa.settings.caret_debug;function ad(ap){var ao=c.create("span",{id:al,"data-mce-bogus":true,style:ac?"color:red":""});if(ap){ao.appendChild(aa.getDoc().createTextNode(G))}return ao}function aj(ap,ao){while(ap){if((ap.nodeType===3&&ap.nodeValue!==G)||ap.childNodes.length>1){return false}if(ao&&ap.nodeType===1){ao.push(ap)}ap=ap.firstChild}return true}function ag(ao){while(ao){if(ao.id===al){return ao}ao=ao.parentNode}}function af(ao){var ap;if(ao){ap=new t(ao,ao);for(ao=ap.current();ao;ao=ap.next()){if(ao.nodeType===3){return ao}}}}function ae(aq,ap){var ar,ao;if(!aq){aq=ag(r.getStart());if(!aq){while(aq=c.get(al)){ae(aq,false)}}}else{ao=r.getRng(true);if(aj(aq)){if(ap!==false){ao.setStartBefore(aq);ao.setEndBefore(aq)}c.remove(aq)}else{ar=af(aq);if(ar.nodeValue.charAt(0)===G){ar=ar.deleteData(0,1)}c.remove(aq,1)}r.setRng(ao)}}function ah(){var aq,ao,av,au,ar,ap,at;aq=r.getRng(true);au=aq.startOffset;ap=aq.startContainer;at=ap.nodeValue;ao=ag(r.getStart());if(ao){av=af(ao)}if(at&&au>0&&au<at.length&&/\w/.test(at.charAt(au))&&/\w/.test(at.charAt(au-1))){ar=r.getBookmark();aq.collapse(true);aq=p(aq,V(ab));aq=N.split(aq);Y(ab,ai,aq);r.moveToBookmark(ar)}else{if(!ao||av.nodeValue!==G){ao=ad(true);av=ao.firstChild;aq.insertNode(ao);au=1;Y(ab,ai,ao)}else{Y(ab,ai,ao)}r.setCursorLocation(av,au)}}function am(){var ao=r.getRng(true),ap,ar,av,au,aq,ay,ax=[],at,aw;ap=ao.startContainer;ar=ao.startOffset;aq=ap;if(ap.nodeType==3){if(ar!=ap.nodeValue.length||ap.nodeValue===G){au=true}aq=aq.parentNode}while(aq){if(y(aq,ab,ai)){ay=aq;break}if(aq.nextSibling){au=true}ax.push(aq);aq=aq.parentNode}if(!ay){return}if(au){av=r.getBookmark();ao.collapse(true);ao=p(ao,V(ab),true);ao=N.split(ao);B(ab,ai,ao);r.moveToBookmark(av)}else{aw=ad();aq=aw;for(at=ax.length-1;at>=0;at--){aq.appendChild(c.clone(ax[at],false));aq=aq.firstChild}aq.appendChild(c.doc.createTextNode(G));aq=aq.firstChild;c.insertAfter(aw,ay);r.setCursorLocation(aq,1)}}function an(){var ap,ao,aq;ao=ag(r.getStart());if(ao&&!c.isEmpty(ao)){a.walk(ao,function(ar){if(ar.nodeType==1&&ar.id!==al&&!c.isEmpty(ar)){c.setAttrib(ar,"data-mce-bogus",null)}},"childNodes")}}if(!self._hasCaretEvents){aa.onBeforeGetContent.addToTop(function(){var ao=[],ap;if(aj(ag(r.getStart()),ao)){ap=ao.length;while(ap--){c.setAttrib(ao[ap],"data-mce-bogus","1")}}});a.each("onMouseUp onKeyUp".split(" "),function(ao){aa[ao].addToTop(function(){ae();an()})});aa.onKeyDown.addToTop(function(ao,aq){var ap=aq.keyCode;if(ap==8||ap==37||ap==39){ae(ag(r.getStart()))}an()});r.onSetContent.add(an);self._hasCaretEvents=true}if(ak=="apply"){ah()}else{am()}}function R(ac){var ab=ac.startContainer,ai=ac.startOffset,ae,ah,ag,ad,af;if(ab.nodeType==3&&ai>=ab.nodeValue.length){ai=s(ab);ab=ab.parentNode;ae=true}if(ab.nodeType==1){ad=ab.childNodes;ab=ad[Math.min(ai,ad.length-1)];ah=new t(ab,c.getParent(ab,c.isBlock));if(ai>ad.length-1||ae){ah.next()}for(ag=ah.current();ag;ag=ah.next()){if(ag.nodeType==3&&!f(ag)){af=c.create("a",null,G);ag.parentNode.insertBefore(af,ag);ac.setStart(ag,0);r.setRng(ac);c.remove(af);return}}}}}})(tinymce);tinymce.onAddEditor.add(function(e,a){var d,h,g,c=a.settings;function b(j,i){e.each(i,function(l,k){if(l){g.setStyle(j,k,l)}});g.rename(j,"span")}function f(i,j){g=i.dom;if(c.convert_fonts_to_spans){e.each(g.select("font,u,strike",j.node),function(k){d[k.nodeName.toLowerCase()](a.dom,k)})}}if(c.inline_styles){h=e.explode(c.font_size_legacy_values);d={font:function(j,i){b(i,{backgroundColor:i.style.backgroundColor,color:i.color,fontFamily:i.face,fontSize:h[parseInt(i.size,10)-1]})},u:function(j,i){b(i,{textDecoration:"underline"})},strike:function(j,i){b(i,{textDecoration:"line-through"})}};a.onPreProcess.add(f);a.onSetContent.add(f);a.onInit.add(function(){a.selection.onSetContent.add(f)})}});(function(b){var a=b.dom.TreeWalker;b.EnterKey=function(f){var i=f.dom,e=f.selection,d=f.settings,h=f.undoManager,c=f.schema.getNonEmptyElements();function g(A){var v=e.getRng(true),G,j,z,u,p,M,B,o,k,n,t,J,x,C;function E(N){return N&&i.isBlock(N)&&!/^(TD|TH|CAPTION|FORM)$/.test(N.nodeName)&&!/^(fixed|absolute)/i.test(N.style.position)&&i.getContentEditable(N)!=="true"}function F(O){var N;if(b.isIE&&i.isBlock(O)){N=e.getRng();O.appendChild(i.create("span",null,"\u00a0"));e.select(O);O.lastChild.outerHTML="";e.setRng(N)}}function y(P){var O=P,Q=[],N;while(O=O.firstChild){if(i.isBlock(O)){return}if(O.nodeType==1&&!c[O.nodeName.toLowerCase()]){Q.push(O)}}N=Q.length;while(N--){O=Q[N];if(!O.hasChildNodes()||(O.firstChild==O.lastChild&&O.firstChild.nodeValue==="")){i.remove(O)}else{if(O.nodeName=="A"&&(O.innerText||O.textContent)===" "){i.remove(O)}}}}function m(O){var T,R,N,U,S,Q=O,P;N=i.createRng();if(O.hasChildNodes()){T=new a(O,O);while(R=T.current()){if(R.nodeType==3){N.setStart(R,0);N.setEnd(R,0);break}if(c[R.nodeName.toLowerCase()]){N.setStartBefore(R);N.setEndBefore(R);break}Q=R;R=T.next()}if(!R){N.setStart(Q,0);N.setEnd(Q,0)}}else{if(O.nodeName=="BR"){if(O.nextSibling&&i.isBlock(O.nextSibling)){if(!M||M<9){P=i.create("br");O.parentNode.insertBefore(P,O)}N.setStartBefore(O);N.setEndBefore(O)}else{N.setStartAfter(O);N.setEndAfter(O)}}else{N.setStart(O,0);N.setEnd(O,0)}}e.setRng(N);i.remove(P);S=i.getViewPort(f.getWin());U=i.getPos(O).y;if(U<S.y||U+25>S.y+S.h){f.getWin().scrollTo(0,U<S.y?U:U-S.h+25)}}function r(O){var P=z,R,Q,N;R=O||t=="TABLE"?i.create(O||x):p.cloneNode(false);N=R;if(d.keep_styles!==false){do{if(/^(SPAN|STRONG|B|EM|I|FONT|STRIKE|U)$/.test(P.nodeName)){if(P.id=="_mce_caret"){continue}Q=P.cloneNode(false);i.setAttrib(Q,"id","");if(R.hasChildNodes()){Q.appendChild(R.firstChild);R.appendChild(Q)}else{N=Q;R.appendChild(Q)}}}while(P=P.parentNode)}if(!b.isIE){N.innerHTML='<br data-mce-bogus="1">'}return R}function q(Q){var P,O,N;if(z.nodeType==3&&(Q?u>0:u<z.nodeValue.length)){return false}if(z.parentNode==p&&C&&!Q){return true}if(Q&&z.nodeType==1&&z==p.firstChild){return true}if(z.nodeName==="TABLE"||(z.previousSibling&&z.previousSibling.nodeName=="TABLE")){return(C&&!Q)||(!C&&Q)}P=new a(z,p);if(z.nodeType==3){if(Q&&u==0){P.prev()}else{if(!Q&&u==z.nodeValue.length){P.next()}}}while(O=P.current()){if(O.nodeType===1){if(!O.getAttribute("data-mce-bogus")){N=O.nodeName.toLowerCase();if(c[N]&&N!=="br"){return false}}}else{if(O.nodeType===3&&!/^[ \t\r\n]*$/.test(O.nodeValue)){return false}}if(Q){P.prev()}else{P.next()}}return true}function l(N,T){var U,S,P,R,Q,O=x||"P";S=i.getParent(N,i.isBlock);if(!S||!E(S)){S=S||j;if(!S.hasChildNodes()){U=i.create(O);S.appendChild(U);v.setStart(U,0);v.setEnd(U,0);return U}R=N;while(R.parentNode!=S){R=R.parentNode}while(R&&!i.isBlock(R)){P=R;R=R.previousSibling}if(P){U=i.create(O);P.parentNode.insertBefore(U,P);R=P;while(R&&!i.isBlock(R)){Q=R.nextSibling;U.appendChild(R);R=Q}v.setStart(N,T);v.setEnd(N,T)}}return N}function H(){function N(P){var O=n[P?"firstChild":"lastChild"];while(O){if(O.nodeType==1){break}O=O[P?"nextSibling":"previousSibling"]}return O===p}o=x?r(x):i.create("BR");if(N(true)&&N()){i.replace(o,n)}else{if(N(true)){n.parentNode.insertBefore(o,n)}else{if(N()){i.insertAfter(o,n);F(o)}else{G=v.cloneRange();G.setStartAfter(p);G.setEndAfter(n);k=G.extractContents();i.insertAfter(k,n);i.insertAfter(o,n)}}}i.remove(p);m(o);h.add()}function D(){var O=new a(z,p),N;while(N=O.current()){if(N.nodeName=="BR"){return true}N=O.next()}}function L(){var P,O,N;if(z&&z.nodeType==3&&u>=z.nodeValue.length){if(!b.isIE&&!D()){P=i.create("br");v.insertNode(P);v.setStartAfter(P);v.setEndAfter(P);O=true}}P=i.create("br");v.insertNode(P);if(b.isIE&&t=="PRE"&&(!M||M<8)){P.parentNode.insertBefore(i.doc.createTextNode("\r"),P)}N=i.create("span",{}," ");P.parentNode.insertBefore(N,P);e.scrollIntoView(N);i.remove(N);if(!O){v.setStartAfter(P);v.setEndAfter(P)}else{v.setStartBefore(P);v.setEndBefore(P)}e.setRng(v);h.add()}function s(N){do{if(N.nodeType===3){N.nodeValue=N.nodeValue.replace(/^[\r\n]+/,"")}N=N.firstChild}while(N)}function K(P){var N=i.getRoot(),O,Q;O=P;while(O!==N&&i.getContentEditable(O)!=="false"){if(i.getContentEditable(O)==="true"){Q=O}O=O.parentNode}return O!==N?Q:N}function I(O){var N;if(!b.isIE){O.normalize();N=O.lastChild;if(!N||(/^(left|right)$/gi.test(i.getStyle(N,"float",true)))){i.add(O,"br")}}}if(!v.collapsed){f.execCommand("Delete");return}if(A.isDefaultPrevented()){return}z=v.startContainer;u=v.startOffset;x=(d.force_p_newlines?"p":"")||d.forced_root_block;x=x?x.toUpperCase():"";M=i.doc.documentMode;B=A.shiftKey;if(z.nodeType==1&&z.hasChildNodes()){C=u>z.childNodes.length-1;z=z.childNodes[Math.min(u,z.childNodes.length-1)]||z;if(C&&z.nodeType==3){u=z.nodeValue.length}else{u=0}}j=K(z);if(!j){return}h.beforeChange();if(!i.isBlock(j)&&j!=i.getRoot()){if(!x||B){L()}return}if((x&&!B)||(!x&&B)){z=l(z,u)}p=i.getParent(z,i.isBlock);n=p?i.getParent(p.parentNode,i.isBlock):null;t=p?p.nodeName.toUpperCase():"";J=n?n.nodeName.toUpperCase():"";if(J=="LI"&&!A.ctrlKey){p=n;t=J}if(t=="LI"){if(!x&&B){L();return}if(i.isEmpty(p)){if(/^(UL|OL|LI)$/.test(n.parentNode.nodeName)){return false}H();return}}if(t=="PRE"&&d.br_in_pre!==false){if(!B){L();return}}else{if((!x&&!B&&t!="LI")||(x&&B)){L();return}}x=x||"P";if(q()){if(/^(H[1-6]|PRE)$/.test(t)&&J!="HGROUP"){o=r(x)}else{o=r()}if(d.end_container_on_empty_block&&E(n)&&i.isEmpty(p)){o=i.split(n,p)}else{i.insertAfter(o,p)}m(o)}else{if(q(true)){o=p.parentNode.insertBefore(r(),p);F(o)}else{G=v.cloneRange();G.setEndAfter(p);k=G.extractContents();s(k);o=k.firstChild;i.insertAfter(k,p);y(o);I(p);m(o)}}i.setAttrib(o,"id","");h.add()}f.onKeyDown.add(function(k,j){if(j.keyCode==13){if(g(j)!==false){j.preventDefault()}}})}})(tinymce);
\ No newline at end of file