PageSourceSearch

https://anf.asso.fr/global/javascript/tinymceParams.js?v=20260909_20220209-1

js anf.asso.fr collected 2026-09-24 18:58:43 UTC 22,560 bytes, 417 lines download raw bytes

1var na = {};
2na.tinymce = {};
3na.tinymce.naTinyDefaultOptions = {
4    cache_suffix: "20220124",
5    // General behaviour
6    theme: "modern",
7    // "fr" is normal here : only two translation for now in the editor
8    language:(langue_selected == "fr") ? "fr_FR" : 'en',
9    browser_spellcheck : true,
10    resize:true,
11    statusbar: true,
12    relative_urls: false,
13    remove_script_host:true,
14    urlconverter_callback:function(url, node, on_save, name) {
15        var callback = tinymce.activeEditor.settings.urlconverter_callback;
16        tinymce.activeEditor.settings.urlconverter_callback = '';
17        res = tinymce.activeEditor.convertURL(url, name, node);
18        tinymce.activeEditor.settings.urlconverter_callback = callback;
19
20        // si l'url commence par "|%" c'est que le paramètre dynamique contient l'url entière (ex: |%lien_password_url%|) du coup il faut supprimer le host ajouté par tinyMCE
21        // sinon non (ex : /agenda/3897?token=|%as_no_md5%|&decline=1)
22        if (url.indexOf('|%') === 0)
23        {
24            var regex = /^.*?\|%/gi;
25            res = res.replace(regex, '|%');
26        }
27
28        return res;
29    },
30	setup: function (editor) {
31		if ($('#' + editor.id).parents('form').hasClass('alert-before-leaving') || $('#' + editor.id).parents('form').hasClass('register-modify'))
32			$('#' + editor.id).data('update-on-change', '1');
33
34		editor.on('change', function () {
35			// normalement c'est le travail de tinymce.triggerSave(); mais ca ne fonctionne pas sur Chrome
36			if (editor.id !== 'undefined' && $('#' + editor.id).data('update-on-change'))
37			{
38				$('textarea#' + editor.id).html(editor.getContent());
39				$('textarea#' + editor.id).val(editor.getContent());
40				$('textarea#' + editor.id).text(editor.getContent());
41				$('textarea#' + editor.id).change();
42			}
43		});
44	},
45    //invalid_elements : "script",
46    insertdatetime_formats: ["%d/%m/%Y", "%Hh%M"],   
47    document_base_url:window.location.origin,
48   // verify_html: false,
49//    forced_root_block : false,
50    plugins: [
51        ["advlist anchor autolink charmap code colorpicker contextmenu hr image insertdatetime"],
52        ["link lists media nonbreaking paste preview print searchreplace table textcolor visualblocks visualchars wordcount"],
53        ["moxiemanager"],
54        ["netassoc", "eqneditor", "bootstrapaccordion"]
55        // autoresize autosave bbcode directionality emoticons example example_dependency fullpage layer
56        // importcss noneditable pagebreak save spellchecker tabfocus template textpattern
57        // legacyoutput ??
58    ],
59
60    // Image plugin
61    image_advtab:true,
62
63    media_filter_html:false,
64
65    // Interface
66
67    menu : { // this is the complete naTinyDefaultOptions configuration
68        file   : {title : 'File'  , items : 'newdocument'},
69        edit   : {title : 'Edit'  , items : 'undo redo | cut copy paste pastetext | selectall | searchreplace'},
70        insert : {title : 'Insert', items : 'link image media | anchor charmap hr insertdatetime nonbreaking'},
71        view   : {title : 'View'  , items : 'visualchars visualblocks visualaid | fullscreen preview'},
72        format : {title : 'Format', items : 'bold italic underline strikethrough superscript subscript | formats | removeformat'},
73        table  : {title : 'Table' , items : 'inserttable tableprops deletetable | cell row column'},
74        tools  : {title : 'Tools' , items : 'spellchecker code'}
75    },
76    
77    toolbar: 
78    [
79        "undo redo | bold italic underline | alignleft aligncenter alignright al
79ignjustify | bullist numlist outdent indent | eqneditor link image media | print preview | forecolor backcolor",
80        "styleselect formatselect fontselect fontsizeselect "
81    ],
82    contextmenu: "link image inserttable | cell row column deletetable | na_dyn_data na_test_data",
83    
84    extended_valid_elements : "a[*],span[*],embed[*],"
85                              // svg support
86                              + "svg[*],defs[*],pattern[*],desc[*],metadata[*],g[*],mask[*],path[*],line[*],marker[*],rect[*],circle[*],ellipse[*],polygon[*],polyline[*],linearGradient[*],radialGradient[*],stop[*],image[*],view[*],text[*],textPath[*],title[*],tspan[*],glyph[*],symbol[*],switch[*],use[*]",
87
88	non_empty_elements: "td,th,iframe,video,audio,object,script,area,base,basefont,br,col,frame,hr,img,input,isindex,link,meta,param,embed,source,wbr,track,"
89						// svg support
90						+ "svg,defs,pattern,desc,metadata,g,mask,path,line,marker,rect,circle,ellipse,polygon,polyline,linearGradient,radialGradient,stop,image,view,text,textPath,title,tspan,glyph,symbol,switch,use",
91
92    // Styles
93    style_formats: [
94        {title: "Headers", items: [
95            {title: "Header 1", format: "h1"},
96            {title: "Header 2", format: "h2"},
97            {title: "Header 3", format: "h3"},
98            {title: "Header 4", format: "h4"},
99            {title: "Header 5", format: "h5"},
100            {title: "Header 6", format: "h6"}
101        ]},
102        {title: "Inline", items: [
103            {title: "Bold", icon: "bold", format: "bold"},
104            {title: "Italic", icon: "italic", format: "italic"},
105            {title: "Underline", icon: "underline", format: "underline"},
106            {title: "Strikethrough", icon: "strikethrough", format: "strikethrough"},
107            {title: "Superscript", icon: "superscript", format: "superscript"},
108            {title: "Subscript", icon: "subscript", format: "subscript"},
109            {title: "Code", icon: "code", format: "code"}
110        ]},
111        {title: "Blocks", items: [
112            {title: "Paragraph", format: "p"},
113            {title: "Blockquote", format: "blockquote"},
114            {title: "Div", format: "div"},
115            {title: "Pre", format: "pre"}
116        ]},
117        {title: "Alignment", items: [
118            {title: "Left", icon: "alignleft", format: "alignleft"},
119            {title: "Center", icon: "aligncenter", format: "aligncenter"},
120            {title: "Right", icon: "alignright", format: "alignright"},
121            {title: "Justify", icon: "alignjustify", format: "alignjustify"}
122        ]},
123        {title: "Table", items: [
124            {title: "Responsive Table", format: "tabledataresponsive"}
125        ]}
126        /*
127        {title: "Local", items: [
128            {title: 'Bold text', inline: 'b'},
129            {title: 'Red text', inline: 'span', styles: {color: '#ff0000'}},
130            {title: 'Red header', block: 'h1', styles: {color: '#ff0000'}},
131            {title: 'Example 1', inline: 'span', classes: 'example1'},
132            {title: 'Example 2', inline: 'span', classes: 'example2'},
133            {title: 'Table styles'},
134            {title: 'Table row 1', selector: 'tr', classes: 'tablerow1'}
135        ]},
136        */
137    ],
138    color_custom: [
139        {title:"Custom color", color:""},
140        {title:"Custom color", color:""},
141        {title:"Custom color", color:""},
142        {title:"Custom color", color:""},
143        {title:"Custom color", color:""}
144    ],
145    block_formats: "Paragraph=p;Header 1=h1;Header 2=h2;Header 3=h3",
146
147
148	content_css : "/global/css/netassoc.css?v=20191007,/ressources/css/main.css?v=20191007,/global/css/tinymce.css?v=20191007",
149    body_id : "contenu_principal",
150
151
152    // Moxiemanager
153    moxiemanager_filelist_manage_menu:'cut copy paste | view edit rename download addfavorite | remove',
154    moxiemanager_filelist_context_menu:'cut copy paste | view edit rename download addfavorite | remove',
155    na_settings_dyndata: [
156        {title: polyglot.t('tinymce.personal_informations'), items: [
157            {title: polyglot.t('tinymce.dear_upper'), code: 'cher'},
158                {title: polyglot.t('tinymce.dear_lower'), code: 'cher_min'},
159                {title: polyglot.t('tinymce.graduate'), code: 'diplome'},
160                {title: polyglot.t('tinymce.civility'), code: 'civilite'},
161                {title: polyglot.t('tinymce.last_name'), code: 'nom'},
162                {title: polyglot.t('tinymce.first_name'), code: 'prenom'},
163                {title: polyglot.t('tinymce.login'), code: 'user'},
164                {title: polyglot.t('tinymce.alias'), code: 'alias'},
165                {title: polyglot.t('tinymce.netassoc_id'), code: 'as_no'},
166                {title: polyglot.t('tinymce.family_situation'), code: 'situation_familiale'},
167                {title: polyglot.t('tinymce.professional_situation'), code: 'situation_pro'},
168                {title: polyglot.t('tinymce.diploma'), code: 'diplomes'},
169                {title: polyglot.t('tinymce.promotion'), code: 'promo'},            
170                {title: "Linkedin", code: 'linkedin'},            
171                {title: typeof tab_const_tinymce != 'undefined' ? tab_const_tinymce['no_asso'] : 'LIBELLE_NO_ASSO', code: 'no_asso'},
172                {title: typeof tab_const_tinymce != 'undefined' ? tab_const_tinymce['no_asso_2'] : 'LIBELLE_NO_ASSO_2', code: 'no_asso_2'},
173                {title: typeof tab_const_tinymce != 'undefined' ? tab_const_tinymce['no_asso_3'] : 'LIBELLE_NO_ASSO_3', code: 'no_asso_3'},
174                ]},
175            
176        {title: polyglot.t('tinymce.contact_details'), items: [
177                {title: polyglot.t('tinymce.contact_address'), code: 'coord_contact'},
178                {title: polyglot.t('tinymce.contact_email'), code: 'mail_contact'},
179                {title: polyglot.t('tinymce.personal_details'), code: 'coord_perso'},
180                {title: polyglot.t('tinymce.personal_contact_information_such_as_in_the_paper_directory'), code: 'coord_perso_conf'},
181                {title: polyglot.t('tinymce.personal_details_with_data_to_be_c
181ompleted'), code: 'coord_perso_full'},
182                {title: polyglot.t('tinymce.business_contact'), code: 'coord_pro'},
183                {title: polyglot.t('tinymce.professional_contact_information_such_as_in_the_paper_directory'), code: 'coord_pro_conf'},
184                {title: polyglot.t('tinymce.professional_contact_details_with_data_to_be_completed'), code: 'coord_pro_full'},
185                {title: polyglot.t('tinymce.personal_city'), code: 'ville_perso'},
186                {title: polyglot.t('tinymce.city_pro'), code: 'ville_pro'},
187                {title: polyglot.t('tinymce.validation_of_contact_details'), code: 'valide_coord'},
188                {title: polyglot.t('tinymce.validation_of_coordinates_button'), code: 'bouton_fr_valide_coord'}
189                ]},
190
191		{title: polyglot.t('tinymce.bank_details'), items: [
192				{title: polyglot.t('tinymce.iban'), code: 'iban'},
193				{title: polyglot.t('tinymce.bic'), code: 'bic'}
194			]},
195
196        {title: polyglot.t('tinymce.private_space'), items: [
197            {title: polyglot.t('tinymce.link_to_private_area'), code: 'lien_direct'},
198            {title: polyglot.t('tinymce.link_to_private_area_here'), code: 'lien_direct_ici'},
199            {title: polyglot.t('tinymce.link_to_private_area_in_english_here'), code: 'lien_direct_here'},
200            {title: polyglot.t('tinymce.link_to_private_area_customizable'), code: 'lien_direct_html'},
201            {title: polyglot.t('tinymce.link_to_private_area_in_english_customizable'), code: 'lien_direct_html_uk'},
202            {title: polyglot.t('tinymce.link_to_private_area_button'), code: 'bouton_fr_lien_direct'},
203            {title: polyglot.t('tinymce.link_to_private_area_in_english_button'), code: 'bouton_uk_lien_direct'},
204            {title: polyglot.t('tinymce.link_to_update_informations'), code: 'lien_direct_settings'},
205            {title: polyglot.t('tinymce.reset_password_link'), code: 'lien_password'},
206            {title: polyglot.t('tinymce.reset_password_url'), code: 'lien_password_url'},
207            {title: polyglot.t('tinymce.unsubscribe_link'), code: 'lien_unsubscribe'},
208            {title: polyglot.t('tinymce.directory_data'), code : 'donnees_annuaire'},
209            {title: polyglot.t('profile.collaborators'), code : 'ep_collaborators'},
210            {title : 'Points PPC', code : 'pointsppc'},
211            {title : 'Points (n)', code : 'points_n'},
212            {title : 'Points (n-1)', code : 'points_n1'},
213            {title : 'Solde (n-1)', code : 'solde_n1'},
214            {title : 'Points report\u00E9s (n)', code : 'report_n'},
215            {title : 'Points report\u00E9s (n-1)', code : 'report_n1'},
216            {title : 'Points à acqu\u00E9rir (n)', code : 'aacqueriren_n'},
217            {title : 'Points à acqu\u00E9rir au 01/01 (n)', code : 'aacquerir_n'},
218            {title : 'Points total acquis (n-1)', code : 'total_acquis_n1'},
219            {title : 'Points CERA', code : 'points_cera'},
220            {title : 'Points CERA (n)', code : 'points_cera_n'},
221            {title : 'Points CERA (n-1)', code : 'points_cera_n1'},
222            {title : 'Solde CERA (n-1)', code : 'solde_cera_n1'},
223            {title : 'Points CERA report\u00E9s (n)', code : 'report_cera_n'},
224            {title : 'Points CERA report\u00E9s (n-1)', code : 'report_cera_n1'},
225            {title : 'Points CERA à acqu\u00E9rir (n)', code : 'cera_aacqueriren_n'},
226            {title : 'Points CERA à acqu\u00E9rir au 01/01 (n)', code : 'cera_aacquerir_n'},
227            {title : 'Points CERA total acquis (n-1)', code : 'total_cera_acquis_n1'},
228        ]},
229    
230        {title: polyglot.t('tinymce.subscription'), items: [
231            {title: polyglot.t('tinymce.membership_in_one_click_here'), code: 'lien_cotisation'},
232            {title: polyglot.t('tinymce.one_click_subscription_in_english_here'), code: 'lien_cotisation_uk'},
233            {title: polyglot.t('tinymce.contribution_in_one_click_customizable'), code: 'lien_cotis_html'},
234            {title: polyglot.t('tinymce.one_click_subscription_in_english_customizable'), code: 'lien_cotis_html_uk'},
235            {title: polyglot.t('tinymce.contribution_in_one_click_button'), code: 'bouton_fr_cotis_html'},
236            {title: polyglot.t('tinymce.one_click_subscription_in_english_button'), code: 'bouton_uk_cotis_html'},
237            {title: polyglot.t('tinymce.last_contribution_donation_amount'), code: 'last_cotis'},
238            {title: polyglot.t('tinymce.last_contribution_donation_amount_in_english'), code: 'last_cotis_uk'},
239            {title: polyglot.t('tinymce.last_contribution_end_date'), code: 'last_cotis_end_date'},
240            {title: polyglot.t('tinymce.current_contribution_year'), code: 'cotis_current_year'},            
241        ]},
242    
243        {title: polyglot.t('tinymce.direct_debit'), items: [
244            {title: polyglot.t('tinymce.mandate_bic'), code: 'mandat_bic'},
245            {title: polyglot.t('tinymce.mandate_iban'), code: 'mandat_iban'},
246            {title: polyglot.t('tinymce.mandate_rum'), code: 'mandat_rum'},
247            {title: polyglot.t('tinymce.mandate_date_signed'), code: 'mandat_date_signature'},
248            {title: polyglot.t('tinymce.direct_debit_amount_if_list_associated_with_a_direct_debit'), code: 'prelevement_montant'},
249            {title: polyglot.t('tinymce.direct_debit_date_if_list_associated_with_a_direct_debit'), code: 'prelevement_date'}
250        ]},
251    
252        {title: polyglot.t('tinymce.events'), items: [
253            {title: polyglot.t('tinymce.link_to_an_event_with_login'), code: 'event_c
253onnexion'},
254            {title: polyglot.t('tinymce.link_to_an_event_with_connection_button'), code: 'bouton_event_connexion'}
255        ]},
256
257        {title: polyglot.t('tinymce.offers'), items: [
258            {title: polyglot.t('tinymce.link_to_classified_ads_with_login'), code: 'annonces_connexion'}
259        ]},
260    
261        {title: polyglot.t('tinymce.mentoring'), items: [
262            {title: polyglot.t('tinymce.permalink_mentor_profile_direct_connection'), code: 'parrainage_a'},
263            {title: polyglot.t('tinymce.mentor_profile_permalink_button'), code: 'bouton_parrainage_a'},
264
265            {title: polyglot.t('tinymce.permalink_search_mentor_direct_connection'), code: 'parrainage_b'},
266            {title: polyglot.t('tinymce.seek_referrer_permalink_button'), code: 'bouton_parrainage_b'},
267
268            {title: polyglot.t('tinymce.permalink_godson_profile_direct_connection'), code: 'parrainage_c'},
269            {title: polyglot.t('tinymce.referral_profile_permalink_button'), code: 'bouton_parrainage_c'},
270
271            {title: polyglot.t('tinymce.permalink_search_referral_direct_connection'), code: 'parrainage_d'},
272            {title: polyglot.t('tinymce.referral_search_permalink_button'), code: 'bouton_parrainage_d'}
273        ]},
274		{title: polyglot.t('tinymce.group'), items: [
275            {title: polyglot.t('tinymce.link_to_group_join_confirm_leave'), code: 'groupe'}
276        ]},
277		{title: polyglot.t('tinymce.lost_view'), items: [
278            {title: polyglot.t('tinymce.the_list_of_lost'), code: 'perdu_de_vue'},
279            {title: polyglot.t('tinymce.link_to_the_private_area_lost_to_view'), code: 'lien_perdu_de_vue_html'}
280        ]},
281
282		{title: polyglot.t('tinymce.surveys'), items: [
283            {title: polyglot.t('tinymce.link_to_a_survey_with_login'), code: 'sondage_connexion'},
284            {title: polyglot.t('tinymce.link_to_a_survey_with_login_button'), code: 'bouton_sondage_connexion'}
285        ]},
286
287		{title: polyglot.t('tinymce.forms'), items: [
288            {title: polyglot.t('tinymce.link_to_a_form_with_login'), code: 'form_connexion'},
289            //{title: 'Lien vers un formulaire avec connexion (bouton)', code: 'bouton_form_connexion'}
290        ]},
291        {title: polyglot.t('admin.planner'), items: [
292            {title: polyglot.t('planner.link_planner_with_connection'), code: 'planner_connexion'},
293         ]}
294    ],
295
296    add_links:["page", "news", "doc", "speciaux", "album", "member", "rss", "event"]
297};
298
299na.tinymce.init_all = function () {
300    if (typeof tab_const_tinymce == 'undefined' || !tab_const_tinymce.MOXIMANAGER_ADMIN_GROUPE || (typeof tab_const_tinymce.MOXIMANAGER_RECRUTEUR != 'undefined' && !tab_const_tinymce.MOXIMANAGER_RECRUTEUR)) {
301        for (var i = 0; i < na.tinymce.naTinyDefaultOptions.plugins.length; ++i) {
302            na.tinymce.naTinyDefaultOptions.plugins[i][0] = na.tinymce.naTinyDefaultOptions.plugins[i][0].replace("moxiemanager", "");
303        }
304    }
305
306    na.tinymce.all = $.extend(true, {}, na.tinymce.naTinyDefaultOptions, {
307        selector: "textarea.tinymce_all",
308    });
309    na.tinymce.all.toolbar[1] += '| bootstrapaccordion';
310
311    na.tinymce.all_reduced = $.extend(true, {}, na.tinymce.naTinyDefaultOptions, {
312        selector: "textarea.tinymce_all_reduced"
313    });
314
315    na.tinymce.standard = $.extend(true, {}, na.tinymce.naTinyDefaultOptions, {
316        selector: "textarea.tinymce"
317    });
318
319    na.tinymce.simple = $.extend(true, {}, na.tinymce.naTinyDefaultOptions, {
320        selector: "textarea.tinymce_simple",
321        font_formats: "Andale Mono=andale mono,times; Arial=arial,helvetica,sans-serif; Arial Black=arial black,avant garde; Book Antiqua=book antiqua,palatino; Comic Sans MS=comic sans ms,sans-serif; Courier New=courier new,courier; Georgia=georgia,palatino; Helvetica=helvetica; Impact=impact,chicago; Opensans='Open Sans', sans-serif; Raleway=raleway; Symbol=symbol; Tahoma=tahoma,arial,helvetica,sans-serif; Terminal=terminal,monaco; Times New Roman=times new roman,times; Trebuchet MS=trebuchet ms,geneva; Verdana=verdana,geneva; Webdings=webdings; Wingdings=wingdings,zapf dingbats",
322        content_style: "@import url('https://fonts.googleapis.com/css2?family=Raleway&display=swap');",
323    });
324
325	na.tinymce.mobile = $.extend(true, {}, na.tinymce.naTinyDefaultOptions, {
326		selector: "textarea.tinymce_mobile",
327		remove_script_host: false
328	});
329
330    na.tinymce.newsletter = $.extend(true, {}, na.tinymce.naTinyDefaultOptions, {
331		selector: "textarea.tinymce_newsletter",
332		content_css: "",
333		remove_script_host: false
334	});
335
336    for (var i = 0; i < na.tinymce.newsletter.plugins.length; ++i) {
337        na.tinymce.newsletter.plugins[i][0] = na.tinymce.newsletter.plugins[i][0].replace("media", "");
338    }
339
340    na.tinymce.mail = $.extend(true, {}, na.tinymce.naTinyDefaultOptions, {
341        selector: "textarea.tinymce_mail",
342        content_css: "",
343        remove_script_host: false,
344        formats: {
345			aligncenter: [
346				{selector: 'figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li', styles: {textAlign: 'center'}, defaultBlock: 'div'},
347				{selector: 'table', collapsed: false, styles: {marginLeft: 'auto', marginRight: 'auto'}}
348			]
349        }
350    });
351
352    // pour les mails pas de lien vers les pages du site
353	for (var i = 0; i < na.tinymce.mail.add_links.length; ++i)
354	{
355	    if (na.tinymce.mail.add_links[i] == 'page')
356			na.tinymce.mail.add_links[i] = '';
357	}
358
359    for (var i = 0; i < na.tinymce.mail.plugins.length; ++i) {
360        na.tinymce.mail.plugins[i][0] = na.tinymce.mail.plugins[i][0].replace("media", "");
361    }
362
363    na.tinymce.mail_fullpage = $.extend(true, {}, na.tinymce.mail, {
364        selector: "textarea.tinymce_mail_fullpage",
365        plugins: $.merge( $.merge([], na.tinymce.mail.plugins), [["fullpage"]])
366    });
367
368
369    na.tinymce.histo = $.extend(true, {}, na.tinymce.naTinyDefaultOptions, {
370        selector: "textarea.tinymce_histo"
371    });
372
373    na.tinymce.emploi = $.extend(true, {}, na.tinymce.naTinyDefaultOptions, {
374        selector: "textarea.tinymce_emploi"
375    });
376    
377    for (var i = 0; i < na.tinymce.emploi.plugins.length; ++i) {
378        na.tinymce.emploi.plugins[i][0] = na.tinymce.emploi.plugins[i][0].replace("moxiemanager", "");
379    }
380    
381    na.tinymce.gls = $.extend(true, {}, na.tinymce.naTinyDefaultOptions, {
382        selector: "textarea.tinymce_gls",
383        add_links:["", "", "", ""]
384    });
385
386    na.tinymce.model_doc = $.extend(true, {}, na.tinymce.naTinyDefaultOptions, {
387        selector: "textarea.tinymce_model_doc",
388        plugins: [
389            ["contextmenu", "netassoc", "code"]
390        ],    
391        menu : {
392            file   : {title : 'File'  , items : 'newdocument'},
393            edit   : {title : 'Edit'  , items : 'undo redo | cut copy paste pastetext | selectall | searchreplace'},
394            insert : null,
395            view : null,
396            format : {title : 'Format', items : 'bold italic underline'},
397            table : null,
398            tools  : {title : 'Tools' , items : 'spellchecker code'}
399        },
400        toolbar: 
401        [
402            "undo redo | bold italic underline forecolor | alignleft aligncenter alignright al
402ignjustify",
403            ""
404        ],
405        content_css: "",
406        contextmenu: "na_dyn_data",
407        formats: {
408            bold : {inline : 'strong' },  
409            italic : {inline : 'i' },
410            underline : {inline : 'u', exact : true}
411        }
412    });
413}
414
415na.tinymce.init_all_specific = function () {
416
417}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.