// <pre><nowiki>
if (typeof(wikEd) == 'undefined') { window.wikEd = {}; }
// version info
wikEd.programVersion = '0.9.92';
window.wikEdProgramVersion = window.wikEdProgramVersion || '0.9.92';
windowwikEd.wikEdProgramDateprogramDate = window.wikEdProgramDate || 'September 1519, 2010';
/*
//
// WikEdInitGlobalsConfigswikEd.InitGlobalsConfigs: initialize user configurable variables
//
windowwikEd.WikEdInitGlobalConfigsInitGlobalConfigs = function() {
// user readable texts, copy changes to http://en.wikipedia.org/wiki/User:Cacycle/wikEd_international_en.js, also defined in wikEdDiffwikEd.diff.js
if (typeof(wikEdConfig['wikEd.config.text']) == 'undefined') { wikEdConfig['wikEd.config.text'] = {}; }
// WikEdInitTextwikEd.InitText: define built-in user interface texts
windowwikEd.WikEdInitTextInitText = function() {
WikEdInitObjectwikEd.InitObject(wikEdConfig['wikEd.config.text'], {
// logo
'wikEdLogo alt': 'wikEd',
'wikEdLogo title': 'wikEd {wikEdProgramVersionwikEd.programVersion} ({wikEdProgramDatewikEd.programDate}) Click to disable',
'wikEdLogo error alt': 'wikEd error',
'wikEdLogo error title': 'Loading error - wikEd {wikEdProgramVersionwikEd.programVersion} ({wikEdProgramDatewikEd.programDate}) Click to disable',
'wikEdLogo browser alt': '(wikEd)',
'wikEdLogo browser title': 'Browser not supported - wikEd {wikEdProgramVersionwikEd.programVersion} ({wikEdProgramDatewikEd.programDate})',
'wikEdLogo incompatible alt': '(wikEd)',
'wikEdLogo incompatible title': 'Incompatible script or gadget: {wikEdParameterwikEd.parameter} - wikEd {wikEdProgramVersionwikEd.programVersion} ({wikEdProgramDatewikEd.programDate})',
'wikEdLogo disabled alt': '(wikEd)',
'wikEdLogo disabled title': 'Disabled - wikEd {wikEdProgramVersionwikEd.programVersion} ({wikEdProgramDatewikEd.programDate}) Click to enable',
// top jumper
'/* */ ', 'copyedit', 'reply', 'article created', 'intro rewrite',
'linkfix', 'fixing typos', 'removing linkspam', 'reverting test',
'reverting vandalism', 'formatting source text', '{wikEdUsingwikEd.using}'
],
'wikEdSummaryUsing': '…using [[en:User:Cacycle/wikEd|wikEd]]',
'wikEdLocalDiffImg alt': 'Changes below',
'wikEdLocalDiff title': 'Show current changes below',
'wikEdHelpPageLink': ' | <a href="{wikEdHomeBaseUrlwikEd.homeBaseUrl}wiki/User:Cacycle/wikEd_help" target="helpwindow">wikEd help</a>', // use full link without {wikEdHomeBaseUrlwikEd.homeBaseUrl} if the page is not on the English Wikipedia
// preview and changes buttons, top
// preview field
'wikEdPreviewLoading': '...',
'diffNotLoaded': 'Error: Local diff script not installed.',
// formatting functions
'iconPage': 'All icons and images used by wikEd. Save page as <i>web page, complete</i> to download all files into one folder.<br><br>'
}, wikEdConfig['wikEd.config.showMissingTranslations']);
};
// define built-in user interface texts
WikEdInitTextwikEd.InitText();
// use local copies of images for testing (set to true in local copy of edit page), also defined in wikEdDiffwikEd.diff.js
if (typeof(wikEdConfig['wikEd.config.useLocalImages']) == 'undefined') { wikEdConfig['wikEd.config.useLocalImages'] = false; }
// path to local images for testing, also defined in wikEdDiffwikEd.diff.js
if (typeof(wikEdConfig['wikEd.config.imagePathLocal']) == 'undefined') { wikEdConfig['wikEd.config.imagePathLocal'] = 'file:///D:/wikEd/images/'; }
// path to images, also defined in wikEdDiffwikEd.diff.js
if (typeof(wikEdConfig['wikEd.config.imagePath']) == 'undefined') { wikEdConfig['wikEd.config.imagePath'] = 'http://upload.wikimedia.org/wikipedia/commons/'; }
// image filenames, also defined in wikEdDiffwikEd.diff.js
if (typeof(wikEdConfig['wikEd.config.image']) == 'undefined') { wikEdConfig['wikEd.config.image'] = {}; }
// WikedInitImageswikEd.InitImages: define built-in image URLs
windowwikEd.WikedInitImagesInitImages = function() {
WikEdInitImagewikEd.InitImage(wikEdConfig['wikEd.config.image'], {
'barDash': '5/52/WikEd_bar_dash.png',
'bold': '5/59/WikEd_bold.png',
// edit-frame css rules
if (typeof(wikEdConfig['wikEd.config.frameCSS']) == 'undefined') { wikEdConfig['wikEd.config.frameCSS'] = {}; }
// WikedInitFrameCSSwikEd.InitFrameCSS: define built-in edit frame css
windowwikEd.WikedInitFrameCSSInitFrameCSS = function() {
WikEdInitObjectwikEd.InitObject(wikEdConfig['wikEd.config.frameCSS'], {
// frame
'.wikEdFrameHtml': 'height: 100%; width: 100%; padding: 0; margin: 0; background: transparent; background-image: url({wikEdImagewikEd.image:resizeGrip}); background-attachment: fixed; background-position: right bottom; background-repeat: no-repeat;',
'.wikEdFrameBodyPlain': 'height: auto; min-height: 100%; width: auto; background: transparent; margin: 0; padding: 0; padding-left: 0.25em; overflow: auto; font-family: monospace;',
// syntax highlighting
'.wikEdError': 'background-image: url({wikEdImagewikEd.image:unknown}); color: black; font-weight: normal; font-style: normal; text-decoration: none; text-shadow: white -1px -1px 0, white -1px 0 0, white -1px 1px 0, white 0 -1px 0, white 0 1px 0, white 1px -1px 0, white 1px 0 0, white 1px 1px 0;',
'.wikEdHighlightError': 'color: black; background: #faa;',
'.wikEdHtmlTag': 'color: #777;',
'.wikEdHtmlTagButtons': 'color: #777;',
'.wikEdHtmlUnknown': 'background-image: url({wikEdImagewikEd.image:unknown}); color: black; font-weight: normal; font-style: normal; text-shadow: white -1px -1px 0, white -1px 0 0, white -1px 1px 0, white 0 -1px 0, white 0 1px 0, white 1px -1px 0, white 1px 0 0, white 1px 1px 0;',
'.wikEdParsingNote': 'border: 1px outset #fcc; padding: 0 0.5em 0 0.5em; margin: 0 0.25em 0 0.25em; color: black; background: #fcc; text-shadow: none; font-weight: normal; font-size: smaller; font-style: normal; text-decoration: none; font-family: sans-serif;',
'.wikEdFrameBodySyntax .wikEdRef .wikEdLinkName, .wikEdFrameBodySyntax .wikEdTempl .wikEdLinkName, .wikEdFrameBodySyntax .wikEdRef .wikEdLinkTarget, .wikEdFrameBodySyntax .wikEdTempl .wikEdLinkTarget, .wikEdFrameBodySyntax .wikEdRef .wikEdLinkText, .wikEdFrameBodySyntax .wikEdTempl .wikEdLinkText': 'color: #66f; font-weight: normal;',
// wikEdFrameBodyNewbiewikEd.frameBodyNewbie ref and template hiding
'.wikEdFrameBodyNewbie .wikEdRefContainer + .wikEdRef, .wikEdFrameBodyNewbie .wikEdTemplContainer + .wikEdTempl, .wikEdFrameBodyNewbie .wikEdTemplContainer .wikEdTemplNs, .wikEdFrameBodyNewbie wikEdRefContainerwikEd.refContainer + .wikEdRefShow, .wikEdFrameBodyNewbie .wikEdTemplContainer + .wikEdTemplShow, .wikEdFrameBodyNewbie .wikEdTemplContainer + .wikEdTemplNsShow':
'display: none; color: #000; background: #f8f8f8; font-weight: normal; border: 1px solid; border-color: #444 #ccc #ccc #444; padding: 1em 0.25em 1em 0.25em; position: relative;',
'.wikEdFrameBodyNewbie .wikEdRefButton:before, .wikEdFrameBodyNewbie .wikEdRefButtonShow:before':
'content: "{wikEdTextwikEd.text:hideRef}"',
'.wikEdFrameBodyNewbie .wikEdCharEntity, .wikEdFrameBodyNewbie .wikEdCharEntityShow':
'.wikEdFrameBodyNewbie .wikEdTemplButton:before, .wikEdFrameBodyNewbie .wikEdTemplButtonShow:before':
'content: "{wikEdTextwikEd.text:hideTempl}";',
// table edit
'.wikEdTableEdit': 'border: solid black; border-width: 1px 1px 0 0; background: red; text-shadow: none; background-image: url({wikEdImagewikEd.image:tableBG}); border-collapse: separate; border-spacing: 0;',
'.wikEdTableEdit td': 'border: solid black; border-width: 0 0 1px 1px; background: white; text-shadow: none;',
'.wikEdTableEdit th': 'border: solid black; border-width: 0 0 1px 1px; background: lightgrey; text-shadow: none; font-weight: bold;',
// dashes
'.wikEdFigureDash': 'background-image: url({wikEdImagewikEd.image:figureDash}); background-position: top right; background-repeat: no-repeat;',
'.wikEdEmDash': 'background-image: url({wikEdImagewikEd.image:emDash}); background-position: top left; background-repeat: no-repeat;',
'.wikEdEnDash': 'background-image: url({wikEdImagewikEd.image:enDash}); background-position: top left; background-repeat: no-repeat;',
'.wikEdBarDash': 'background-image: url({wikEdImagewikEd.image:barDash}); background-position: top left; background-repeat: no-repeat;',
'.wikEdMinusDash': 'background-image: url({wikEdImagewikEd.image:minusDash}); background-position: top left; background-repeat: no-repeat;',
'.wikEdSoftHyphen': 'background-image: url({wikEdImagewikEd.image:softHyphen}); background-position: top left; background-repeat: no-repeat;',
'.wikEdSoftHyphen:before': 'content: \'\xa0\'',
'.wikEdHyphenDash': '',
// dashes, invisibles, control chars, and strange spaces
'.wikEdTab': 'white-space: pre; background-image: url({wikEdImagewikEd.image:tab}); background-position: bottom right; background-repeat: no-repeat;',
'.wikEdTabPlain': 'white-space: pre;',
'.wikEdCtrl': 'white-space: pre; background-image: url({wikEdImagewikEd.image:ctrl}); background-position: center center; background-repeat: no-repeat; margin: 0 1px;',
'.wikEdCtrl:before': 'content: \'\xa0\'',
'.wikEdEmSpace': 'background-image: url({wikEdImagewikEd.image:emSpace}); background-position: bottom left; background-repeat: no-repeat; margin: 0 1px; padding: 0 3px;',
'.wikEdEnSpace': 'background-image: url({wikEdImagewikEd.image:enSpace}); background-position: bottom left; background-repeat: no-repeat; margin: 0 1px; padding: 0 3px;',
'.wikEdThinSpace': 'background-image: url({wikEdImagewikEd.image:thinSpace}); background-position: bottom left; background-repeat: no-repeat; margin: 0 1px; padding: 0 3px;',
'.wikEdIdeographicSpace': 'background-image: url({wikEdImagewikEd.image:ideographicSpace}); background-position: bottom left; background-repeat: no-repeat; margin: 0 1px; padding: 0 3px;'
});
};
// main window css rules
if (typeof(wikEdConfig['wikEd.config.mainCSS']) == 'undefined') { wikEdConfig['wikEd.config.mainCSS'] = {}; }
// WikedInitMainCSSwikEd.InitMainCSS: define built-in main window css
windowwikEd.WikedInitMainCSSInitMainCSS = function() {
WikEdInitObjectwikEd.InitObject(wikEdConfig['wikEd.config.mainCSS'], {
// logo
// main window css rules for edit pages only
if (typeof(wikEdConfig['wikEd.config.mainEditCSS']) == 'undefined') { wikEdConfig['wikEd.config.mainEditCSS'] = {}; }
// WikedInitMainEditCSSwikEd.InitMainEditCSS: define built-in main window css for edit pages only
windowwikEd.WikedInitMainEditCSSInitMainEditCSS = function() {
WikEdInitObjectwikEd.InitObject(wikEdConfig['wikEd.config.mainEditCSS'], {
// combo input box
// button bar grip
'.wikEdButtonBarGrip': 'background: #d4d0cc; padding: 0; background-image: url({wikEdImagewikEd.image:grip}); background-repeat: repeat-y; cursor: pointer;',
// button bar buttons
'.wikEdPreviewBox': 'background: #faf8f6; padding: 5px; border-width: 1px; border-style: solid; border-color: #404040 #ffffff #ffffff #404040;',
'.wikEdPreviewRefs': 'margin-top: 1.5em; padding-top: 1em;border-top: 1px solid #a0a0a0;',
'.wikEdPreviewDiffError': 'padding: 0.5em; font-weight: bold; color: red; text-align: center;',
// find field
// buttons (id, class, popup title, image src, width, height, alt text, click code)
if (typeof(wikEdConfig['wikEd.config.button']) == 'undefined') { wikEdConfig['wikEd.config.button'] = {}; }
// WikedInitButtonwikEd.InitButton: define built-in buttons (id, class, popup title, image src, width, height, alt text, click handler code were obj is the button element)
windowwikEd.WikedInitButtonInitButton = function() {
WikEdInitObjectwikEd.InitObject(wikEdConfig['wikEd.config.button'], {
// workaround for mozilla 3.0 bug 441087: objId = obj.id; eventShiftKey = event.shiftKey;
// format top
1: ['wikEdUndo', 'wikEdButtonInactive', wikEdConfig['wikEd.config.text']['wikEdUndo title'], wikEdConfig['wikEd.config.image']['undo'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdUndo alt'], 'WikEdEditButtonwikEd.EditButton(obj, objId);' ],
2: ['wikEdRedo', 'wikEdButtonInactive', wikEdConfig['wikEd.config.text']['wikEdRedo title'], wikEdConfig['wikEd.config.image']['redo'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdRedo alt'], 'WikEdEditButtonwikEd.EditButton(obj, objId);' ],
3: ['wikEdBold', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdBold title'], wikEdConfig['wikEd.config.image']['bold'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdBold alt'], 'WikEdEditButtonwikEd.EditButton(obj, objId);' ],
4: ['wikEdItalic', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdItalic title'], wikEdConfig['wikEd.config.image']['italic'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdItalic alt'], 'WikEdEditButtonwikEd.EditButton(obj, objId);' ],
5: ['wikEdUnderline', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdUnderline title'], wikEdConfig['wikEd.config.image']['underline'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdUnderline alt'], 'WikEdEditButtonwikEd.EditButton(obj, objId);' ],
6: ['wikEdStrikethrough', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdStrikethrough title'], wikEdConfig['wikEd.config.image']['strikethrough'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdStrikethrough alt'], 'WikEdEditButtonwikEd.EditButton(obj, objId);' ],
7: ['wikEdNowiki', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdNowiki title'], wikEdConfig['wikEd.config.image']['nowiki'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdNowiki alt'], 'WikEdEditButtonwikEd.EditButton(obj, objId);' ],
8: ['wikEdSuperscript', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdSuperscript title'], wikEdConfig['wikEd.config.image']['superscript'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdSuperscript alt'], 'WikEdEditButtonwikEd.EditButton(obj, objId);' ],
9: ['wikEdSubscript', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdSubscript title'], wikEdConfig['wikEd.config.image']['subscript'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdSubscript alt'], 'WikEdEditButtonwikEd.EditButton(obj, objId);' ],
10: ['wikEdRef', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdRef title'], wikEdConfig['wikEd.config.image']['ref'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdRef alt'], 'if (!eventShiftKey) { WikEdEditButtonwikEd.EditButton(obj, \'wikEdRef\'); } else { WikEdEditButtonwikEd.EditButton(obj, \'wikEdRefNamed\'); }' ],
12: ['wikEdCase', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdCase title'], wikEdConfig['wikEd.config.image']['case'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdCase alt'], 'WikEdEditButtonwikEd.EditButton(obj, objId);' ],
80: ['wikEdSort', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdSort title'], wikEdConfig['wikEd.config.image']['sort'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdSort alt'], 'WikEdEditButtonwikEd.EditButton(obj, objId);' ],
25: ['wikEdRedirect', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdRedirect title'], wikEdConfig['wikEd.config.image']['redirect'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdRedirect alt'], 'WikEdEditButtonwikEd.EditButton(obj, objId);' ],
13: ['wikEdUndoAll', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdUndoAll title'], wikEdConfig['wikEd.config.image']['undoAll'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdUndoAll alt'], 'WikEdEditButtonwikEd.EditButton(obj, objId);' ],
14: ['wikEdRedoAll', 'wikEdButtonInactive', wikEdConfig['wikEd.config.text']['wikEdRedoAll title'], wikEdConfig['wikEd.config.image']['redoAll'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdRedoAll alt'], 'WikEdEditButtonwikEd.EditButton(obj, objId);' ],
// format bottom
15: ['wikEdWikiLink', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdWikiLink title'], wikEdConfig['wikEd.config.image']['wikiLink'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdWikiLink alt'], 'WikEdEditButtonwikEd.EditButton(obj, objId);' ],
16: ['wikEdWebLink', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdWebLink title'], wikEdConfig['wikEd.config.image']['webLink'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdWebLink alt'], 'WikEdEditButtonwikEd.EditButton(obj, objId);' ],
17: ['wikEdHeading', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdHeading title'], wikEdConfig['wikEd.config.image']['heading'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdHeading alt'], 'if (!eventShiftKey) { WikEdEditButtonwikEd.EditButton(obj, \'wikEdIncreaseHeading\'); } else { WikEdEditButtonwikEd.EditButton(obj, \'wikEdDecreaseHeading\'); }' ],
19: ['wikEdBulletList', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdBulletList title'], wikEdConfig['wikEd.config.image']['bulletList'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdBulletList alt'], 'if (!eventShiftKey) { WikEdEditButtonwikEd.EditButton(obj, \'wikEdIncreaseBulletList\'); } else { WikEdEditButtonwikEd.EditButton(obj, \'wikEdDecreaseBulletList\'); }' ],
20: ['wikEdNumberList', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdNumberList title'], wikEdConfig['wikEd.config.image']['numberList'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdNumberList alt'], 'if (!eventShiftKey) { WikEdEditButtonwikEd.EditButton(obj, \'wikEdIncreaseNumberList\'); } else { WikEdEditButtonwikEd.EditButton(obj, \'wikEdDecreaseNumberList\'); }' ],
21: ['wikEdIndentList', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdIndentList title'], wikEdConfig['wikEd.config.image']['indentList'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdIndentList alt'], 'if (!eventShiftKey) { WikEdEditButtonwikEd.EditButton(obj, \'wikEdIncreaseIndentList\'); } else { WikEdEditButtonwikEd.EditButton(obj, \'wikEdDecreaseIndentList\'); }' ],
22: ['wikEdDefinitionList', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdDefinitionList title'], wikEdConfig['wikEd.config.image']['definitionList'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdDefinitionList alt'], 'WikEdEditButtonwikEd.EditButton(obj, objId);' ],
23: ['wikEdImage', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdImage title'], wikEdConfig['wikEd.config.image']['image'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdImage alt'], 'WikEdEditButtonwikEd.EditButton(obj, objId);' ],
24: ['wikEdTable', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdTable title'], wikEdConfig['wikEd.config.image']['table'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdTable alt'], 'WikEdEditButtonwikEd.EditButton(obj, objId);' ],
11: ['wikEdReferences', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdReferences title'], wikEdConfig['wikEd.config.image']['references'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdReferences alt'], 'if (!eventShiftKey) { WikEdEditButtonwikEd.EditButton(obj, objId); } else { WikEdEditButtonwikEd.EditButton(obj, \'wikEdReferencesSection\'); }' ],
// wikify, textify
26: ['wikEdWikify', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdWikify title'], wikEdConfig['wikEd.config.image']['wikify'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdWikify alt'], 'WikEdEditButtonwikEd.EditButton(obj, objId);' ],
27: ['wikEdTextify', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdTextify title'], wikEdConfig['wikEd.config.image']['textify'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdTextify alt'], 'if (eventShiftKey) { WikEdEditButtonwikEd.EditButton(obj, objId, \'shift\'); } else { WikEdEditButtonwikEd.EditButton(obj, objId); }' ],
// control top
77: ['wikEdRefHide', 'wikEdButtonUnchecked', wikEdConfig['wikEd.config.text']['wikEdRefHide title'], wikEdConfig['wikEd.config.image']['refHide'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdRefHide alt'], 'WikEdButtonwikEd.Button(obj, objId, true);' ],
29: ['wikEdTextZoom', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdTextZoom title'], wikEdConfig['wikEd.config.image']['textZoom'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdTextZoom alt'], 'if (!eventShiftKey) { WikEdButtonwikEd.Button(obj, \'wikEdTextZoomDown\'); } else { WikEdButtonwikEd.Button(obj, \'wikEdTextZoomUp\'); }' ],
30: ['wikEdClearHistory', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdClearHistory title'], wikEdConfig['wikEd.config.image']['clearHistory'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdClearHistory alt'], 'WikEdButtonwikEd.Button(obj, objId);' ],
31: ['wikEdScrollToPreview', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdScrollToPreview title'], wikEdConfig['wikEd.config.image']['scrollToPreviewDown'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdScrollToPreview alt'], 'WikEdButtonwikEd.Button(obj, objId);' ],
32: ['wikEdScrollToEdit', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdScrollToEdit title'], wikEdConfig['wikEd.config.image']['scrollToEditDown'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdScrollToEdit alt'], 'WikEdButtonwikEd.Button(obj, objId);' ],
// control bottom
33: ['wikEdUseWikEd', 'wikEdButtonChecked', wikEdConfig['wikEd.config.text']['wikEdUseWikEd title'], wikEdConfig['wikEd.config.image']['useWikEd'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdUseWikEd alt'], 'WikEdButtonwikEd.Button(obj, objId, true);' ],
34: ['wikEdHighlightSyntax', 'wikEdButtonUnchecked', wikEdConfig['wikEd.config.text']['wikEdHighlightSyntax title'], wikEdConfig['wikEd.config.image']['highlightSyntax'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdHighlightSyntax alt'], 'WikEdButtonwikEd.Button(obj, objId, true);' ],
35: ['wikEdSource', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdSource title'], wikEdConfig['wikEd.config.image']['source'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdSource alt'], 'WikEdEditButtonwikEd.EditButton(obj, objId);' ],
75: ['wikEdCloseToolbar', 'wikEdButtonUnchecked', wikEdConfig['wikEd.config.text']['wikEdCloseToolbar title'], wikEdConfig['wikEd.config.image']['closeToolbar'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdCloseToolbar alt'], 'WikEdButtonwikEd.Button(obj, objId, true);' ],
36: ['wikEdUsing', 'wikEdButtonUnchecked', wikEdConfig['wikEd.config.text']['wikEdUsing title'], wikEdConfig['wikEd.config.image']['using'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdUsing alt'], 'WikEdButtonwikEd.Button(obj, objId, true);' ],
37: ['wikEdFullScreen', 'wikEdButtonUnchecked', wikEdConfig['wikEd.config.text']['wikEdFullScreen title'], wikEdConfig['wikEd.config.image']['fullScreen'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdFullScreen alt'], 'WikEdButtonwikEd.Button(obj, objId, true);' ],
79: ['wikEdTableMode', 'wikEdButtonUnchecked', wikEdConfig['wikEd.config.text']['wikEdTableMode title'], wikEdConfig['wikEd.config.image']['tableMode'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdTableMode alt'], 'WikEdButtonwikEd.Button(obj, objId, true);' ],
// find top
39: ['wikEdFindAll', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdFindAll title'], wikEdConfig['wikEd.config.image']['findAll'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdFindAll alt'], 'WikEdEditButtonwikEd.EditButton(obj, objId);' ],
40: ['wikEdFindPrev', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdFindPrev title'], wikEdConfig['wikEd.config.image']['findPrev'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdFindPrev alt'], 'WikEdEditButtonwikEd.EditButton(obj, objId);' ],
41: ['wikEdFindNext', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdFindNext title'], wikEdConfig['wikEd.config.image']['findNext'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdFindNext alt'], 'if (eventShiftKey) { WikEdEditButtonwikEd.EditButton(obj, objId, \'shift\'); } else { WikEdEditButtonwikEd.EditButton(obj, objId); }' ],
43: ['wikEdJumpPrev', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdJumpPrev title'], wikEdConfig['wikEd.config.image']['jumpPrev'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdJumpPrev alt'], 'WikEdEditButtonwikEd.EditButton(obj, objId);' ],
44: ['wikEdJumpNext', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdJumpNext title'], wikEdConfig['wikEd.config.image']['jumpNext'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdJumpNext alt'], 'WikEdEditButtonwikEd.EditButton(obj, objId);' ],
// find bottom
46: ['wikEdReplaceAll', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdReplaceAll title'], wikEdConfig['wikEd.config.image']['replaceAll'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdReplaceAll alt'], 'WikEdEditButtonwikEd.EditButton(obj, objId);' ],
47: ['wikEdReplacePrev', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdReplacePrev title'], wikEdConfig['wikEd.config.image']['replacePrev'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdReplacePrev alt'], 'WikEdEditButtonwikEd.EditButton(obj, objId);' ],
48: ['wikEdReplaceNext', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdReplaceNext title'], wikEdConfig['wikEd.config.image']['replaceNext'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdReplaceNext alt'], 'if (eventShiftKey) { WikEdEditButtonwikEd.EditButton(obj, objId, \'shift\'); } else { WikEdEditButtonwikEd.EditButton(obj, objId); }' ],
49: ['wikEdCaseSensitive', 'wikEdButtonUnchecked', wikEdConfig['wikEd.config.text']['wikEdCaseSensitive title'], wikEdConfig['wikEd.config.image']['caseSensitive'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdCaseSensitive alt'], 'WikEdButtonwikEd.Button(obj, objId, true);' ],
50: ['wikEdRegExp', 'wikEdButtonUnchecked', wikEdConfig['wikEd.config.text']['wikEdRegExp title'], wikEdConfig['wikEd.config.image']['regExp'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdRegExp alt'], 'WikEdButtonwikEd.Button(obj, objId, true);' ],
51: ['wikEdFindAhead', 'wikEdButtonUnchecked', wikEdConfig['wikEd.config.text']['wikEdFindAhead title'], wikEdConfig['wikEd.config.image']['findAhead'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdFindAhead alt'], 'WikEdButtonwikEd.Button(obj, objId, true);' ],
// fix top
52: ['wikEdFixBasic', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdFixBasic title'], wikEdConfig['wikEd.config.image']['fixBasic'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdFixBasic alt'], 'WikEdEditButtonwikEd.EditButton(obj, objId);' ],
53: ['wikEdFixHtml', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdFixHtml title'], wikEdConfig['wikEd.config.image']['fixHtml'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdFixHtml alt'], 'WikEdEditButtonwikEd.EditButton(obj, objId);' ],
54: ['wikEdFixCaps', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdFixCaps title'], wikEdConfig['wikEd.config.image']['fixCaps'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdFixCaps alt'], 'WikEdEditButtonwikEd.EditButton(obj, objId);' ],
55: ['wikEdFixUnicode', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdFixUnicode title'], wikEdConfig['wikEd.config.image']['fixUnicode'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdFixUnicode alt'], 'WikEdEditButtonwikEd.EditButton(obj, objId);' ],
81: ['wikEdFixRedirect', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdFixRedirect title'], wikEdConfig['wikEd.config.image']['fixRedirect'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdFixRedirect alt'], 'WikEdEditButtonwikEd.EditButton(obj, objId);' ],
56: ['wikEdFixAll', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdFixAll title'], wikEdConfig['wikEd.config.image']['fixAll'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdFixAll alt'], 'WikEdEditButtonwikEd.EditButton(obj, objId);' ],
57: ['wikEdFixRegExTypo', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdFixRegExTypo title'], wikEdConfig['wikEd.config.image']['fixRegExTypo'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdFixRegExTypo alt'], 'WikEdEditButtonwikEd.EditButton(obj, objId);' ],
// fix bottom
58: ['wikEdFixDashes', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdFixDashes title'], wikEdConfig['wikEd.config.image']['fixDash'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdFixDashes alt'], 'WikEdEditButtonwikEd.EditButton(obj, objId);' ],
59: ['wikEdFixPunct', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdFixPunct title'], wikEdConfig['wikEd.config.image']['fixPunct'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdFixPunct alt'], 'WikEdEditButtonwikEd.EditButton(obj, objId);' ],
60: ['wikEdFixMath', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdFixMath title'], wikEdConfig['wikEd.config.image']['fixMath'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdFixMath alt'], 'WikEdEditButtonwikEd.EditButton(obj, objId);' ],
61: ['wikEdFixChem', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdFixChem title'], wikEdConfig['wikEd.config.image']['fixChem'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdFixChem alt'], 'WikEdEditButtonwikEd.EditButton(obj, objId);' ],
62: ['wikEdFixUnits', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdFixUnits title'], wikEdConfig['wikEd.config.image']['fixUnits'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdFixUnits alt'], 'WikEdEditButtonwikEd.EditButton(obj, objId);' ],
// preview top
65: ['wikEdClose', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdClose title'], wikEdConfig['wikEd.config.image']['close'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdClose alt'], 'WikEdButtonwikEd.Button(obj, objId);' ],
66: ['wikEdScrollToPreview2', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdScrollToPreview2 title'], wikEdConfig['wikEd.config.image']['scrollToPreviewDown'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdScrollToPreview2 alt'], 'WikEdButtonwikEd.Button(obj, objId);' ],
67: ['wikEdScrollToEdit2', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdScrollToEdit2 title'], wikEdConfig['wikEd.config.image']['scrollToEdit'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdScrollToEdit2 alt'], 'WikEdButtonwikEd.Button(obj, objId);' ],
// preview bottom
70: ['wikEdClose2', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdClose2 title'], wikEdConfig['wikEd.config.image']['close'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdClose2 alt'], 'WikEdButtonwikEd.Button(obj, objId);' ],
71: ['wikEdScrollToPreview3', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdScrollToPreview3 title'], wikEdConfig['wikEd.config.image']['scrollToPreview'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdScrollToPreview3 alt'], 'WikEdButtonwikEd.Button(obj, objId);' ],
72: ['wikEdScrollToEdit3', 'wikEdButton', wikEdConfig['wikEd.config.text']['wikEdScrollToEdit3 title'], wikEdConfig['wikEd.config.image']['scrollToEdit'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdScrollToEdit3 alt'], 'WikEdButtonwikEd.Button(obj, objId);' ],
// jump
78: ['wikEdDiff', 'wikEdButtonUnchecked', wikEdConfig['wikEd.config.text']['wikEdDiff title'], wikEdConfig['wikEd.config.image']['wikEdDiff'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdDiff alt'], 'WikEdButtonwikEd.Button(obj, objId, true);' ],
74: ['wikEdScrollToEdit4', 'wikEdButtonSolo', wikEdConfig['wikEd.config.text']['wikEdScrollToEdit4 title'], wikEdConfig['wikEd.config.image']['scrollToEditDown'], '16', '16', wikEdConfig['wikEd.config.text']['wikEdScrollToEdit4 alt'], 'WikEdButtonwikEd.Button(obj, objId);' ],
// dummy
76: ['wikEdDummy', 'wikEdButtonDummy', '', wikEdConfig['wikEd.config.image']['dummy'], '16', '16', '', '' ]
});
};
// button access keys
if (typeof(wikEdConfig['wikEd.config.buttonKey']) == 'undefined') { wikEdConfig['wikEd.config.buttonKey'] = {}; }
// WikedInitButtonKeywikEd.InitButtonKey: define accesskeys for edit buttons (wikEd button number: [key string, JS key code])
windowwikEd.WikedInitButtonKeyInitButtonKey = function() {
WikEdInitObjectwikEd.InitObject(wikEdConfig['wikEd.config.buttonKey'], {
26: ['b', 66], // wikify
27: ['o', 79], // textify
// button bars (id, class, button numbers)
if (typeof(wikEdConfig['wikEd.config.buttonBar']) == 'undefined') { wikEdConfig['wikEd.config.buttonBar'] = {}; }
// WikedInitButtonBarwikEd.InitButtonBar: define built-in button bars (id outer, class outer, id inner, class inner, height, grip title, button numbers)
windowwikEd.WikedInitButtonBarInitButtonBar = function() {
WikEdInitObjectwikEd.InitObject(wikEdConfig['wikEd.config.buttonBar'], {
'format': ['wikEdButtonBarFormat', 'wikEdButtonBarFormat', 'wikEdButtonsFormat', 'wikEdButtonsFormat', 44, wikEdConfig['wikEd.config.text']['wikEdGripFormat title'], [1,2,3,4,5,6,7,8,9,10,12,13,14,'br',15,16,17,19,20,21,22,23,24,11,80,25,76] ],
'textify': ['wikEdButtonBarTextify', 'wikEdButtonBarTextify', 'wikEdButtonsTextify', 'wikEdButtonsTextify', 44, wikEdConfig['wikEd.config.text']['wikEdGripTextify title'], [26,'br',27] ],
'custom1': ['wikEdButtonBarCustom1', 'wikEdButtonBarCustom1', 'wikEdButtonsCustom1', 'wikEdButtonsCustom1', 44, wikEdConfig['wikEd.config.text']['wikEdGripCustom1 title'], [ ] ],
'find': ['wikEdButtonBarFind', 'wikEdButtonBarFind', 'wikEdButtonsFind', 'wikEdButtonsFind', 44, wikEdConfig['wikEd.config.text']['wikEdGripFind title'], [39,40,'find',41,76,43,44,'br',46,47,'replace',48,49,50,51] ],
'fix': ['wikEdButtonBarFix', 'wikEdButtonBarFix', 'wikEdButtonsFix', 'wikEdButtonsFix', 44, wikEdConfig['wikEd.config.text']['wikEdGripFix title'], [52,53,54,55,56,81,'br',58,59,60,61,62,57] ],
'custom2': ['wikEdButtonBarCustom2', 'wikEdButtonBarCustom2', 'wikEdButtonsCustom2', 'wikEdButtonsCustom2', 44, wikEdConfig['wikEd.config.text']['wikEdGripCustom2 title'], [ ] ],
'control': ['wikEdButtonBarControl', 'wikEdButtonBarControl', 'wikEdButtonsControl', 'wikEdButtonsControl', 44, wikEdConfig['wikEd.config.text']['wikEdGripControl title'], [77,29,30,35,31,32,'br',33,34,79,75,36,78,37] ],
'preview': ['wikEdButtonBarPreview', 'wikEdButtonBarPreview', 'wikEdButtonsPreview', 'wikEdButtonsPreview', 0, null, [66,67,65] ],
'preview2': ['wikEdButtonBarPreview2', 'wikEdButtonBarPreview2', 'wikEdButtonsPreview2', 'wikEdButtonsPreview2', 0, null, [71,72,70] ],
// history length for find, replace, and summary fields
if (typeof(wikEdConfig['wikEd.config.historyLength']) == 'undefined') { wikEdConfig['wikEd.config.historyLength'] = {}; }
windowwikEd.WikedInitHistoryLengthInitHistoryLength = function() {
WikEdInitObjectwikEd.InitObject(wikEdConfig['wikEd.config.historyLength'], {
'find': 10,
'replace': 10,
};
// presets for combo input fields dropdown options, {wikEdUsingwikEd.using} appends a link to this script
if (typeof(wikEdConfig['wikEd.config.comboPresetOptions']) == 'undefined') { wikEdConfig['wikEd.config.comboPresetOptions'] = {}; }
if (typeof(wikEdConfig['wikEd.config.comboPresetOptions']['summary']) == 'undefined') { wikEdConfig['wikEd.config.comboPresetOptions']['summary'] = wikEdConfig['wikEd.config.text']['wikEdPresetSummary']; }
// text for summary link to this script
if (typeof(wikEdConfig['wikEd.config.summaryUsing']) == 'undefined') { wikEdConfig['wikEd.config.summaryUsing'] = wikEdConfig['wikEd.config.text']['wikEdSummaryUsing']; }
// expiration time span for permanent cookies in seconds
if (typeof(wikEdConfig['wikEd.config.cookieExpireSec']) == 'undefined') { wikEdConfig['wikEd.config.cookieExpireSec'] = 1 * 30 * 24 * 60 * 60; }
// disable wikEd preset
if (typeof(wikEdConfig['wikEd.config.disabledPreset']) == 'undefined') { wikEdConfig['wikEd.config.disabledPreset'] = false; }
// find ahead as you type checkbox preset
if (typeof(wikEdConfig['wikEd.config.findAheadSelected']) == 'undefined') { wikEdConfig['wikEd.config.findAheadSelected'] = true; }
// highlight syntax preset
if (typeof(wikEdConfig['wikEd.config.highlightSyntaxPreset']) == 'undefined') { wikEdConfig['wikEd.config.highlightSyntaxPreset'] = true; }
// enable wikEd preset
if (typeof(wikEdConfig['wikEd.config.useWikEdPreset']) == 'undefined') { wikEdConfig['wikEd.config.useWikEdPreset'] = true; }
// add '...using wikEd' to summary preset
if (typeof(wikEdConfig['wikEd.config.usingPreset']) == 'undefined') { wikEdConfig['wikEd.config.usingPreset'] = false; }
// scroll to edit field on non-preview pages
if (typeof(wikEdConfig['wikEd.config.scrollToEdit']) == 'undefined') { wikEdConfig['wikEd.config.scrollToEdit'] = true; }
// focus the edit field on non-preview pages
if (typeof(wikEdConfig['wikEd.config.focusEdit']) == 'undefined') { wikEdConfig['wikEd.config.focusEdit'] = true; }
// wikEdDiffwikEd.diff preset
if (typeof(wikEdConfig['wikEd.config.diffPreset']) == 'undefined') { wikEdConfig['wikEd.config.diffPreset'] = false; }
// fullscreen mode preset
if (typeof(wikEdConfig['wikEd.config.fullScreenModePreset']) == 'undefined') { wikEdConfig['wikEd.config.fullScreenModePreset'] = false; }
// show MediaWiki toolbar preset
if (typeof(wikEdConfig['wikEd.config.closeToolbarPreset']) == 'undefined') { wikEdConfig['wikEd.config.closeToolbarPreset'] = false; }
// hide ref tags preset
if (typeof(wikEdConfig['wikEd.config.refHidePreset']) == 'undefined') { wikEdConfig['wikEd.config.refHidePreset'] = false; }
// text size adjustment for edit window (percentage)
if (typeof(wikEdConfig['wikEd.config.textSizeAdjust']) == 'undefined') { wikEdConfig['wikEd.config.textSizeAdjust'] = 100; }
// remove invisible syntax highlighting comments after closing tag
if (typeof(wikEdConfig['wikEd.config.removeHighlightComments']) == 'undefined') { wikEdConfig['wikEd.config.removeHighlightComments'] = true; }
// show the text-to-source button for testing purposes
if (typeof(wikEdConfig['wikEd.config.showSourceButton']) == 'undefined') { wikEdConfig['wikEd.config.showSourceButton'] = false; }
// show the using-wikEd button
if (typeof(wikEdConfig['wikEd.config.showUsingButton']) == 'undefined') { wikEdConfig['wikEd.config.showUsingButton'] = false; }
// the wikEd help page link to be displayed after the editing help link, an empty string disables the link
if (typeof(wikEdConfig['wikEd.config.helpPageLink']) == 'undefined') { wikEdConfig['wikEd.config.helpPageLink'] = wikEdConfig['wikEd.config.text']['wikEdHelpPageLink']; }
// enable external diff script
if (typeof(wikEdConfig['wikEd.config.loadDiffScript']) == 'undefined') { wikEdConfig['wikEd.config.loadDiffScript'] = true; }
// enable external wikEdDiffwikEd.diff script
if (typeof(wikEdConfig['wikEd.config.loadDiff']) == 'undefined') { wikEdConfig['wikEd.config.loadDiff'] = true; }
// enable external InstaView script
if (typeof(wikEdConfig['wikEd.config.loadInstaView']) == 'undefined') { wikEdConfig['wikEd.config.loadInstaView'] = true; }
// enable external IERange script
if (typeof(wikEdConfig['wikEd.config.loadIERange']) == 'undefined') { wikEdConfig['wikEd.config.loadIERange'] = true; }
// RegExTypoFix rules page, the address must have the exact same ___domain name as the used wiki
if (typeof(wikEdConfig['wikEd.config.regExTypoFixURL']) == 'undefined') { wikEdConfig['wikEd.config.regExTypoFixURL'] = wikEdConfig['wikEd.config.homeBaseUrl'] + 'w/index.php?title=Wikipedia:AutoWikiBrowser/Typos&action=raw'; }
// enable RegExTypoFix button (http://en.wikipedia.org/wiki/User:Mboverload/RegExTypoFix)
if (typeof(wikEdConfig['wikEd.config.regExTypoFix']) == 'undefined') { wikEdConfig['wikEd.config.regExTypoFix'] = false; }
// enable highlighting as links
if (typeof(wikEdConfig['wikEd.config.followHighlightedLinks']) == 'undefined') { wikEdConfig['wikEd.config.followHighlightedLinks'] = false; }
// skip the browser detection to run wikEd under IE and Opera
if (typeof(wikEdConfig['wikEd.config.skipBrowserTest']) == 'undefined') { wikEdConfig['wikEd.config.skipBrowserTest'] = false; }
// skip the script test that disables wikEd if certain scripts are present
if (typeof(wikEdConfig['wikEd.config.skipScriptTest']) == 'undefined') { wikEdConfig['wikEd.config.skipScriptTest'] = false; }
// skip the read-only detection
if (typeof(wikEdConfig['wikEd.config.skipReadOnlyTest']) == 'undefined') { wikEdConfig['wikEd.config.skipReadOnlyTest'] = false; }
// button access keys
if (typeof(wikEdConfig['wikEd.config.incompatibleScripts']) == 'undefined') { wikEdConfig['wikEd.config.incompatibleScripts'] = {}; }
// WikedInitButtonKeywikEd.InitButtonKey: define accesskeys for edit buttons (wikEd button number: [key string, JS key code])
windowwikEd.WikedInitIncompatibleScriptsInitIncompatibleScripts = function() {
WikEdInitObjectwikEd.InitObject(wikEdConfig['wikEd.config.incompatibleScripts'], {
'CKEditor': 'ckeditor.js',
'FCKEditor': 'fckeditor.js'
// set the button bar grip width in px
if (typeof(wikEdConfig['wikEd.config.buttonBarGripWidth']) == 'undefined') { wikEdConfig['wikEd.config.buttonBarGripWidth'] = 8; }
// enable local preview (Pilaf's InstaView)
if (typeof(wikEdConfig['wikEd.config.useLocalPreview']) == 'undefined') { wikEdConfig['wikEd.config.useLocalPreview'] = true; }
// allow ajax requests from local copy for testing, also defined in wikEdDiffwikEd.diff.js
if (typeof(wikEdConfig['wikEd.config.allowLocalAjax']) == 'undefined') { wikEdConfig['wikEd.config.allowLocalAjax'] = false; }
// enable server preview (Ajax)
if (typeof(wikEdConfig['wikEd.config.useAjaxPreview']) == 'undefined') { wikEdConfig['wikEd.config.useAjaxPreview'] = true; }
// enable appending '<references/> for Ajax section previews
if (typeof(wikEdConfig['wikEd.config.SectionPreviewRefs']) == 'undefined') { wikEdConfig['wikEd.config.SectionPreviewRefs'] = true; }
// enable auto update (Ajax)
if (typeof(wikEdConfig['wikEd.config.autoUpdate']) == 'undefined') { wikEdConfig['wikEd.config.autoUpdate'] = true; }
// hours between update check (monobook.js)
if (typeof(wikEdConfig['wikEd.config.autoUpdateHours']) == 'undefined') { wikEdConfig['wikEd.config.autoUpdateHours'] = 20; }
// hours between update check (Greasemonkey)
if (typeof(wikEdConfig['wikEd.config.autoUpdateHoursGM']) == 'undefined') { wikEdConfig['wikEd.config.autoUpdateHoursGM'] = 40; }
// auto update: version url (Ajax)
if (typeof(wikEdConfig['wikEd.config.autoUpdateUrl']) == 'undefined') { wikEdConfig['wikEd.config.autoUpdateUrl'] = wikEdConfig['wikEd.config.homeBaseUrl'] + 'w/index.php?title=User:Cacycle/wikEd_current_version&action=raw&maxage=0'; }
// auto update: script url for Greasemonkey update
if (typeof(wikEdConfig['wikEd.config.autoUpdateScriptUrl']) == 'undefined') { wikEdConfig['wikEd.config.autoUpdateScriptUrl'] = wikEdConfig['wikEd.config.homeBaseUrl'] + 'w/index.php?action=raw&ctype=text/javascript&title=User:Cacycle/wikEd.user.js'; }
// show complete unshortened article text for local diff, also defined in wikEdDiffwikEd.diff.js
if (typeof(wikEdConfig['wikEd.config.fullDiff']) == 'undefined') { wikEdConfig['wikEd.config.fullDiff'] = false; }
// make links ctrl-clickable
if (typeof(wikEdConfig['wikEd.config.linkify']) == 'undefined') { wikEdConfig['wikEd.config.linkify'] = true; }
// absolute instead of relative linkify links, URL with "$1" as article name placeholder
if (typeof(wikEd.config.linkifyArticlePath) == 'undefined') { wikEd.config.linkifyArticlePath = null; }
// hide refs and templates in newbie mode
if (typeof(wikEdConfig['wikEd.config.hideContent']) == 'undefined') { wikEdConfig['wikEd.config.hideContent'] = true; }
// wikify table parameters, replaces original table parameters with this string
if (typeof(wikEdConfig['wikEd.config.wikifyTableParameters']) == 'undefined') { wikEdConfig['wikEd.config.wikifyTableParameters'] = ''; }
// do not rearrange page elements
if (typeof(wikEdConfig['wikEd.config.noRearrange']) == 'undefined') { wikEdConfig['wikEd.config.noRearrange'] = false; }
// use French rules for fix punctuation
if (typeof(wikEdConfig['wikEd.config.fixPunctFrench']) == 'undefined') { wikEdConfig['wikEd.config.fixPunctFrench'] = false; }
// wikEdConfig['wikEd.config.setupHook'], executed after wikEd has been set up, usage: wikEdConfig['wikEd.config.setupHook'].push(YourFunction);
if (typeof(wikEdConfig['wikEd.config.setupHook']) == 'undefined') { wikEdConfig['wikEd.config.setupHook'] = []; }
// wikEdConfig['wikEd.config.onHook'], executed after wikEd has been re-enabled by logo click, usage: wikEdConfig['wikEd.config.onHook'].push(YourFunction);
if (typeof(wikEdConfig['wikEd.config.onHook']) == 'undefined') { wikEdConfig['wikEd.config.onHook'] = []; }
// wikEdConfig['wikEd.config.offHook'], executed after wikEd has been disabled by logo click, usage: wikEdConfig['wikEd.config.offHook'].push(YourFunction);
if (typeof(wikEdConfig['wikEd.config.offHook']) == 'undefined') { wikEdConfig['wikEd.config.offHook'] = []; }
// wikEdConfig['wikEd.config.textareaHook'], executed after classic textarea has been enabled by user, usage: wikEdConfig['wikEd.config.textareaHook'].push(YourFunction);
if (typeof(wikEdConfig['wikEd.config.textareaHook']) == 'undefined') { wikEdConfig['wikEd.config.textareaHook'] = []; }
// wikEdConfig['wikEd.config.frameHook'], executed after wikEd edit frame has been enabled by user, usage: wikEdConfig['wikEd.config.frameHook'].push(YourFunction);
if (typeof(wikEdConfig['wikEd.config.frameHook']) == 'undefined') { wikEdConfig['wikEd.config.frameHook'] = []; }
// custom edit form id instead of 'editform'
if (typeof(wikEdConfig['wikEd.config.customEditFormId']) == 'undefined') { wikEdConfig['wikEd.config.customEditFormId'] = ''; }
// custom textarea id instead of 'wpTextbox1'
if (typeof(wikEdConfig['wikEd.config.customTextAreaId']) == 'undefined') { wikEdConfig['wikEd.config.customTextAreaId'] = ''; }
// custom save button id instead of 'wpSave'
if (typeof(wikEdConfig['wikEd.config.customSaveButtonId']) == 'undefined') { wikEdConfig['wikEd.config.customSaveButtonId'] = ''; }
// show table mode togle button
if (typeof(wikEdConfig['wikEd.config.showTableModeButton']) == 'undefined') { wikEdConfig['wikEd.config.showTableModeButton'] = false; }
// maximal time for syntax highlighting in ms
if (typeof(wikEdConfig['wikEd.config.maxHighlightTime']) == 'undefined') { wikEdConfig['wikEd.config.maxHighlightTime'] = 3000; }
// first char of article names is case sensitive (e.g. Wiktionary)
if (typeof(wikEdConfig['wikEd.config.articlesCaseSensitive']) == 'undefined') { wikEdConfig['wikEd.config.articlesCaseSensitive'] = false; }
// force immediate update if this version string is newer
if (typeof(wikEdConfig['wikEd.config.forcedUpdate']) == 'undefined') { wikEdConfig['wikEd.config.forcedUpdate'] = ''; }
// display highlighting error messages in text
if (typeof(wikEdConfig['wikEd.config.highlightError']) == 'undefined') { wikEdConfig['wikEd.config.highlightError'] = false; }
// display preview of files in text
if (typeof(wikEdConfig['wikEd.config.filePreview']) == 'undefined') { wikEdConfig['wikEd.config.filePreview'] = true; }
// file preview image size in pixels
if (typeof(wikEdConfig['wikEd.config.filePreviewSize']) == 'undefined') { wikEdConfig['wikEd.config.filePreviewSize'] = 75; }
// file preview image size in pixels
if (typeof(wikEdConfig['wikEd.config.antiHighlightBleeding']) == 'undefined') { wikEdConfig['wikEd.config.antiHighlightBleeding'] = true; }
// do not hide templates shorter than this number of chars
if (typeof(wikEdConfig['wikEd.config.templNoHideLength']) == 'undefined') { wikEdConfig['wikEd.config.templNoHideLength'] = 40; }
// debug window maximal length in chars
if (typeof(wikEdConfig['wikEd.config.debugMaxLength']) == 'undefined') { wikEdConfig['wikEd.config.debugMaxLength'] = 50000; }
// debug display of DOM nodes: maximal length of innerHTML in chars
if (typeof(wikEdConfig['wikEd.config.debugInnerHtmlLength']) == 'undefined') { wikEdConfig['wikEd.config.debugInnerHtmlLength'] = 150; }
return;
// init config
if (typeof(wikEdConfigwikEd.config) == 'undefined') { windowwikEd.wikEdConfigconfig = {}; }
// wikEd code home base URL for https compatibility
if (typeof(wikEdConfig['wikEd.config.homeBaseUrlStandard']) == 'undefined') { wikEdConfig['wikEd.config.homeBaseUrlStandard'] = 'http://en.wikipedia.org/'; }
if (typeof(wikEdConfig['wikEd.config.homeBaseUrlSecure']) == 'undefined') { wikEdConfig['wikEd.config.homeBaseUrlSecure'] = 'https://secure.wikimedia.org/wikipedia/en/'; }
// set wikEd home base url depending on current page address: standard (http:) or secure (https:)
if (window.___location.protocol == 'https:') {
wikEdConfig['wikEd.config.homeBaseUrl'] = wikEdConfig['wikEd.config.homeBaseUrlSecure'];
}
else {
wikEdConfig['wikEd.config.homeBaseUrl'] = wikEdConfig['wikEd.config.homeBaseUrlStandard'];
}
// diff script URL
if (typeof(wikEdConfig['wikEd.config.diffScriptSrc']) == 'undefined') { wikEdConfig['wikEd.config.diffScriptSrc'] = wikEdConfig['wikEd.config.homeBaseUrl'] + 'w/index.php?title=User:Cacycle/diff.js&action=raw&ctype=text/javascript'; }
// wikEdDiffwikEd.diff script URL, also defined in wikEdDiffwikEd.diff.js
if (typeof(wikEdConfig['wikEd.config.diffSrc']) == 'undefined') { wikEdConfig['wikEd.config.diffSrc'] = wikEdConfig['wikEd.config.homeBaseUrl'] + 'w/index.php?title=User:Cacycle/wikEdDiffwikEd.diff.js&action=raw&ctype=text/javascript'; }
// InstaView script URL
if (typeof(wikEdConfig['wikEd.config.instaViewSrc']) == 'undefined') { wikEdConfig['wikEd.config.instaViewSrc'] = wikEdConfig['wikEd.config.homeBaseUrl'] + 'w/index.php?title=User:Pilaf/include/instaview.js&action=raw&ctype=text/javascript'; }
// IERange script URL (MS IE compatibility library)
if (typeof(wikEdConfig['wikEd.config.IERangeSrc']) == 'undefined') { wikEdConfig['wikEd.config.IERangeSrc'] = wikEdConfig['wikEd.config.homeBaseUrl'] + 'w/index.php?title=User:Cacycle/ierange.js&action=raw&ctype=text/javascript'; }
// wikEd-as-gadget detection, set to true if gadget script name is not MediaWiki:Gadget-wikEd.js
if (typeof(wikEdConfig['wikEd.config.gadget']) == 'undefined') { wikEdConfig['wikEd.config.gadget'] = null; }
// duplicate edit warnings from the top of the page to above the edit window
if (typeof(wikEdConfig['wikEd.config.doCloneWarnings']) == 'undefined') { wikEdConfig['wikEd.config.doCloneWarnings'] = true; }
// startup debugging
if (typeof(wikEdConfig['wikEd.config.debugStartUp']) == 'undefined') { wikEdConfig['wikEd.config.debugStartUp'] = ''; }
// show missing translations
if (typeof(wikEdConfig['wikEd.config.showMissingTranslations']) == 'undefined') { wikEdConfig['wikEd.config.showMissingTranslations'] = false; }
// content language default, also used for wikEd UI localization
if (typeof(wikEdConfig['wikEd.config.languageDefault']) == 'undefined') { windowwikEd.wikEdConfigconfig['languageDefault'] = ''; }
// load external translation
if (typeof(wikEdConfig['wikEd.config.loadTranslation']) == 'undefined') { windowwikEd.wikEdConfigconfig['loadTranslation'] = true; }
// translation javascript URLs
if (typeof(wikEdConfig['wikEd.config.translations']) == 'undefined') { wikEdConfig['wikEd.config.translations'] = {}; }
// WikedInitTranslationswikEd.InitTranslations: define translation javascript URLs ('': internal default)
windowwikEd.WikedInitTranslationsInitTranslations = function() {
WikEdInitObjectwikEd.InitObject(wikEdConfig['wikEd.config.translations'], {
'en': '',
'ar': wikEdConfig['wikEd.config.homeBaseUrl'] + 'w/index.php?action=raw&ctype=text/javascript&title=User:ترجمان05/wikEd_international_ar.js',
'zh-hans': wikEdConfig['wikEd.config.homeBaseUrl'] + 'w/index.php?action=raw&ctype=text/javascript&title=User:Shibo77/wikEd_international_zh.js',
'zh-hant': wikEdConfig['wikEd.config.homeBaseUrl'] + 'w/index.php?action=raw&ctype=text/javascript&title=User:Quest_for_Truth/wikEd_international_zh-hant.js',
'cs': wikEdConfig['wikEd.config.homeBaseUrl'] + 'w/index.php?action=raw&ctype=text/javascript&title=User:Sevela.p/wikEd_international_cs.js',
'nl': wikEdConfig['wikEd.config.homeBaseUrl'] + 'w/index.php?action=raw&ctype=text/javascript&title=User:Jeronevw/wikEd_international_nl.js',
'eo': wikEdConfig['wikEd.config.homeBaseUrl'] + 'w/index.php?action=raw&ctype=text/javascript&title=User:ArnoLagrange/wikEd-eo.js',
'fi': wikEdConfig['wikEd.config.homeBaseUrl'] + 'w/index.php?action=raw&ctype=text/javascript&title=User:Ejs-80/wikEd international fi.js',
'fr': wikEdConfig['wikEd.config.homeBaseUrl'] + 'w/index.php?action=raw&ctype=text/javascript&title=User:Leag/wikEd-fr.js',
'de': wikEdConfig['wikEd.config.homeBaseUrl'] + 'w/index.php?action=raw&ctype=text/javascript&title=User:Matthias_M./wikEd_international_de.js',
'he': wikEdConfig['wikEd.config.homeBaseUrl'] + 'w/index.php?action=raw&ctype=text/javascript&title=User:שמוליק/wikEd_international_he.js',
'hu': wikEdConfig['wikEd.config.homeBaseUrl'] + 'w/index.php?action=raw&ctype=text/javascript&title=User:Csörföly D/wikEd-hu.js',
'it': wikEdConfig['wikEd.config.homeBaseUrl'] + 'w/index.php?action=raw&ctype=text/javascript&title=User:Jalo/wikEd_international_it.js',
'ja': wikEdConfig['wikEd.config.homeBaseUrl'] + 'w/index.php?action=raw&ctype=text/javascript&title=User:Hatukanezumi/wikEd_international_ja.js',
'ko': wikEdConfig['wikEd.config.homeBaseUrl'] + 'w/index.php?action=raw&ctype=text/javascript&title=User:Ilovesabbath/wikEd_international_ko.js',
'dsb': wikEdConfig['wikEd.config.homeBaseUrl'] + 'w/index.php?action=raw&ctype=text/javascript&title=User:Michalwiki/wikEd_international_dsb.js',
'ms': wikEdConfig['wikEd.config.homeBaseUrl'] + 'w/index.php?action=raw&ctype=text/javascript&title=User:Aviator/wikEd_international_ms.js',
'no': wikEdConfig['wikEd.config.homeBaseUrl'] + 'w/index.php?action=raw&ctype=text/javascript&title=User:Dvyjones/wikEd_international_no.js',
'nn': wikEdConfig['wikEd.config.homeBaseUrl'] + 'w/index.php?action=raw&ctype=text/javascript&title=User:Frokor/wikEd_international_nn.js',
'pl': wikEdConfig['wikEd.config.homeBaseUrl'] + 'w/index.php?action=raw&ctype=text/javascript&title=User:Konradek/wikEd_international_pl.js',
'pt': wikEdConfig['wikEd.config.homeBaseUrl'] + 'w/index.php?action=raw&ctype=text/javascript&title=User:Mosca/wikEd_international_pt.js',
'ro': wikEdConfig['wikEd.config.homeBaseUrl'] + 'w/index.php?action=raw&ctype=text/javascript&title=User:Roamataa/wikEd_international_ro.js',
'scn': wikEdConfig['wikEd.config.homeBaseUrl'] + 'w/index.php?action=raw&ctype=text/javascript&title=User:Meloscn/wikEd_international_scn.js',
'sk': wikEdConfig['wikEd.config.homeBaseUrl'] + 'w/index.php?action=raw&ctype=text/javascript&title=User:Helix84/wikEd_international_sk.js',
'sl': wikEdConfig['wikEd.config.homeBaseUrl'] + 'w/index.php?action=raw&ctype=text/javascript&title=User:Eleassar/wikEd_international_sl.js',
'es': wikEdConfig['wikEd.config.homeBaseUrl'] + 'w/index.php?action=raw&ctype=text/javascript&title=User:Axelei/wikEd_international_es.js',
'sv': wikEdConfig['wikEd.config.homeBaseUrl'] + 'w/index.php?action=raw&ctype=text/javascript&title=User:Where_next_Columbus?/wikEd_international_sv.js',
'hsb': wikEdConfig['wikEd.config.homeBaseUrl'] + 'w/index.php?action=raw&ctype=text/javascript&title=User:Michalwiki/wikEd_international_hsb.js',
'tr': wikEdConfig['wikEd.config.homeBaseUrl'] + 'w/index.php?action=raw&ctype=text/javascript&title=User:Vito_Genovese/wikEd_international_tr.js',
'vi': wikEdConfig['wikEd.config.homeBaseUrl'] + 'w/index.php?action=raw&ctype=text/javascript&title=User:Vinhtantran/wikEd_international_vi.js'
});
};
// Mediawiki page and skin detection, logo placement
if (typeof(wikEdConfig['wikEd.config.MediaWikiSkinIds']) == 'undefined') { wikEdConfig['wikEd.config.MediaWikiSkinIds'] = {}; }
// WikedInitMediaWikiSkinIdswikEd.InitMediaWikiSkinIds: define Mediawiki page and skin detection, logo placement
// format: skin name: [ dom element to add logo to ('': top right), logo to this list or list contained in this parent element, rearrange page elements, [skin detection element id list] ],
windowwikEd.WikedInitMediaWikiSkinIdsInitMediaWikiSkinIds = function() {
WikEdInitObjectwikEd.InitObject(wikEdConfig['wikEd.config.MediaWikiSkinIds'], {
// monobook, also detects simple and myskin
//
// WikEdInitGlobalswikEd.InitGlobals: initialize non-configurable variables
//
windowwikEd.WikEdInitGlobalsInitGlobals = function() {
// global variables
windowwikEd.wikEdTurnedOnturnedOn = false;
windowwikEd.wikEdDisableddisabled = true;
windowwikEd.wikEdUploadEdituploadEdit = false;
windowwikEd.wikEdViewDeletedviewDeleted = false;
windowwikEd.wikEdLanguagelanguage = '';
windowwikEd.wikEdWatchlistEditwatchlistEdit = false;
windowwikEd.wikEdDebugOpendebugOpen = false;
windowwikEd.wikEdPageNamepageName = null;
windowwikEd.wikEdPageNamespacepageNamespace = null;
// history
windowwikEd.wikEdFieldHistfieldHist = [];
windowwikEd.wikEdSavedNamesavedName = [];
windowwikEd.wikEdInputElementinputElement = [];
windowwikEd.wikEdSelectElementselectElement = [];
windowwikEd.wikEdCheckMarkercheckMarker = [];
windowwikEd.wikEdCheckMarkercheckMarker[true] = '♦';
windowwikEd.wikEdCheckMarkercheckMarker[false] = '◊';
// undo all, redo all
windowwikEd.wikEdOrigVersionorigVersion = '';
windowwikEd.wikEdLastVersionlastVersion = null;
// global dom elements
windowwikEd.wikEdLogologo = null;
windowwikEd.wikEdLogoListlogoList = null;
windowwikEd.wikEdDebugdebug = null;
windowwikEd.wikEdWikiEditorwikiEditor = null;
windowwikEd.wikEdWikiEditorFramewikiEditorFrame = null;
windowwikEd.wikEdWikiEditorTopwikiEditorTop = null;
windowwikEd.wikEdWikiEditorBarwikiEditorBar = null;
windowwikEd.wikEdWikiEditorBottomwikiEditorBottom = null;
windowwikEd.wikEdWikiEditorTextwikiEditorText = null;
windowwikEd.wikEdTextareaContainertextareaContainer = null;
windowwikEd.wikEdToolbartoolbar = null;
windowwikEd.wikEdFrameInnerframeInner = null;
windowwikEd.wikEdFrameOuterframeOuter = null;
windowwikEd.wikEdFrameframe = null;
windowwikEd.wikEdFrameBodyframeBody = null;
windowwikEd.wikEdFrameDocumentframeDocument = null;
windowwikEd.wikEdFrameWindowframeWindow = null;
windowwikEd.wikEdInputWrapperinputWrapper = null;
windowwikEd.wikEdEditorWrappereditorWrapper = null;
windowwikEd.wikEdToolbarWrappertoolbarWrapper = null;
windowwikEd.wikEdCaptchaWrappercaptchaWrapper = null;
windowwikEd.wikEdDebugWrapperdebugWrapper = null;
windowwikEd.wikEdEditWrappereditWrapper = null;
windowwikEd.wikEdTextareaWrappertextareaWrapper = null;
windowwikEd.wikEdFrameWrapperframeWrapper = null;
windowwikEd.wikEdConsoleWrapperconsoleWrapper = null;
windowwikEd.wikEdButtonsWrapperbuttonsWrapper = null;
windowwikEd.wikEdSummaryWrappersummaryWrapper = null;
windowwikEd.wikEdSummaryInputWrappersummaryInputWrapper = null;
windowwikEd.wikEdSummaryOptionssummaryOptions = null;
windowwikEd.wikEdSubmitWrappersubmitWrapper = null;
windowwikEd.wikEdSubmitButtonsWrappersubmitButtonsWrapper = null;
windowwikEd.wikEdLocalPrevWrapperlocalPrevWrapper = null;
windowwikEd.wikEdInsertWrapperinsertWrapper = null;
// edit form fields
windowwikEd.wikEdEditFormeditForm = null;
windowwikEd.wikEdEdittimeedittime = null;
windowwikEd.wikEdEditTokeneditToken = null;
windowwikEd.wikEdTextareatextarea = null;
windowwikEd.wikEdButtonsWrapperWidthbuttonsWrapperWidth = {};
windowwikEd.wikEdButtonBarFormatbuttonBarFormat = null;
windowwikEd.wikEdButtonBarTextifybuttonBarTextify = null;
windowwikEd.wikEdButtonBarCustom1buttonBarCustom1 = null;
windowwikEd.wikEdButtonBarFindbuttonBarFind = null;
windowwikEd.wikEdButtonBarFixbuttonBarFix = null;
windowwikEd.wikEdButtonBarCustom2buttonBarCustom2 = null;
windowwikEd.wikEdButtonBarControlbuttonBarControl = null;
windowwikEd.wikEdButtonBarPreviewbuttonBarPreview = null;
windowwikEd.wikEdButtonBarPreview2buttonBarPreview2 = null;
windowwikEd.wikEdButtonBarJumpbuttonBarJump = null;
windowwikEd.wikEdPreviewBoxpreviewBox = null;
windowwikEd.wikEdClearSummaryclearSummary = null;
windowwikEd.wikEdClearSummaryImgclearSummaryImg = null;
windowwikEd.wikEdCaseSensitivecaseSensitive = null;
windowwikEd.wikEdRegExpregExp = null;
windowwikEd.wikEdFindAheadfindAhead = null;
wikEd.fixRegExTypo = null;
windowwikEd.wikEdFindTextfindText = null;
windowwikEd.wikEdReplaceTextreplaceText = null;
windowwikEd.wikEdSummaryTextsummaryText = null;
windowwikEd.wikEdSummarySelectsummarySelect = null;
windowwikEd.wikEdSummaryTextWidthsummaryTextWidth = null;
windowwikEd.wikEdEditOptionseditOptions = null;
windowwikEd.wikEdEditHelpeditHelp = null;
wikEd.saveButton = null;
wikEd.previewButton = null;
wikEd.lDiffButton = null;
wikEd.localPreview = null;
wikEd.localDiff = null;
wikEd.diffPreviewButton = null;
wikEd.summaryLabel = null;
wikEd.highlightNamedHideButtonsStylesheet = null;
window.wikEdSaveButton = null;
window.wikEdPreviewButton = null;
window.wikEdLDiffButton = null;
window.wikEdLocalPreview = null;
window.wikEdLocalDiff = null;
window.wikEdDiffPreviewButton = null;
window.wikEdSummaryLabel = null;
window.WikEdHighlightNamedHideButtonsStylesheet = null;
// frame resizing
windowwikEd.wikEdResizeGripWidthresizeGripWidth = 16;
windowwikEd.wikEdResizeGripHeightresizeGripHeight = 16;
wikEd.resizeFramePageYStart = 0;
window.wikEdResizeFramePageYStart = 0;
wikEd.resizeFramePageXStart = 0;
window.wikEdResizeFramePageXStart = 0;
wikEd.resizeFrameOffsetHeight = 0;
window.wikEdResizeFrameOffsetHeight = 0;
wikEd.resizeFrameOffsetWidth = 0;
window.wikEdResizeFrameOffsetWidth = 0;
windowwikEd.wikEdResizeFrameMouseOverGripresizeFrameMouseOverGrip = false;
windowwikEd.wikEdResizeFrameActiveresizeFrameActive = false;
windowwikEd.wikEdFrameHeightframeHeight = '';
windowwikEd.wikEdFrameWidthframeWidth = '';
windowwikEd.wikEdTextareaHeighttextareaHeight = '';
windowwikEd.wikEdTextareaWidthtextareaWidth = '';
// various
windowwikEd.wikEdInsertCounterinsertCounter = 0;
windowwikEd.wikEdEditButtonHandlereditButtonHandler = {};
wikEd.textareaBorderHeight = 0;
window.wikEdTextareaBorderHeight = 0;
wikEd.frameBorderHeight = 0;
window.wikEdFrameBorderHeight = 0;
windowwikEd.wikEdFrameBorderWidthframeBorderWidth = 0;
wikEd.textareaOffsetHeightInitial = 0;
window.wikEdTextareaOffsetHeightInitial = 0;
windowwikEd.wikEdClearSummaryWidthclearSummaryWidth = null;
windowwikEd.wikEdFullScreenModefullScreenMode = false;
windowwikEd.wikEdAddNewSectionaddNewSection = null;
windowwikEd.wikEdBrowserNotSupportedbrowserNotSupported = false;
windowwikEd.wikEdFrameScrollTopframeScrollTop = null;
windowwikEd.wikEdTextareaUpdatedtextareaUpdated = null;
windowwikEd.wikEdPreviewIsAjaxpreviewIsAjax = null;
windowwikEd.wikEdButtonKeyCodebuttonKeyCode = [];
windowwikEd.wikEdDirectiondirection = null;
windowwikEd.wikEdTextSizetextSize = 0;
windowwikEd.wikEdTextSizeInittextSizeInit = 0;
windowwikEd.wikEdPreviewPagepreviewPage = false;
windowwikEd.wikEdClonedWarningsclonedWarnings = false;
windowwikEd.wikEdGeSHiCSSgeSHiCSS = [];
// override site javascript functions
windowwikEd.WikEdInsertTagsOriginalinsertTagsOriginal = null;
windowwikEd.WikEdInsertAtCursorOriginalinsertAtCursorOriginal = null;
// wikEd settings
windowwikEd.wikEdRefHiderefHide = false;
windowwikEd.wikEdUsingusing = false;
windowwikEd.wikEdUseWikEduseWikEd = false;
windowwikEd.wikEdCloseToolbarcloseToolbar = false;
windowwikEd.wikEdHighlightSyntaxhighlightSyntax = false;
windowwikEd.wikEdNoSpellchecknoSpellcheck = false;
windowwikEd.wikEdDiffdiff = false;
windowwikEd.wikEdTableModetableMode = false;
windowwikEd.wikEdCleanNodescleanNodes = false;
windowwikEd.wikEdReadOnlyreadOnly = false;
// unicode fixing and char highlighting
windowwikEd.wikEdSupportedCharssupportedChars = null;
windowwikEd.wikEdReservedCharsreservedChars = null;
windowwikEd.wikEdSpecialCharsspecialChars = null;
windowwikEd.wikEdProblemCharsproblemChars = null;
windowwikEd.wikEdCharEntitiesByNamecharEntitiesByName = {};
windowwikEd.wikEdControlCharHighlightingcontrolCharHighlighting = null;
wikEd.controlCharHighlightingStr = '';
window.wikEdControlCharHighlightingStr = '';
windowwikEd.wikEdCharHighlightingcharHighlighting = null;
windowwikEd.wikEdCharHighlightingStrcharHighlightingStr = '';
// linkification and hiding
windowwikEd.wikEdLinkifyIdNolinkifyIdNo = 0;
windowwikEd.wikEdLinkifyArraylinkifyArray = [];
windowwikEd.wikEdReferenceArrayreferenceArray = [];
windowwikEd.wikEdTemplateArraytemplateArray = [];
windowwikEd.wikEdCharEntityArraycharEntityArray = [];
// RegExTypoFixRegExtypoFix rules
windowwikEd.wikEdTypoRulesFindtypoRulesFind = [];
windowwikEd.wikEdTypoRulesReplacetypoRulesReplace = [];
// redirect fixing
windowwikEd.wikEdRedirectsCacheredirectsCache = {};
// file preview
windowwikEd.wikEdFilePreviewCachefilePreviewCache = {};
windowwikEd.wikEdFilePreviewRequestfilePreviewRequest = '';
windowwikEd.wikEdFilePreviewNofilePreviewNo = 0;
windowwikEd.wikEdFilePreviewIdsfilePreviewIds = [];
// debugging time measurement, usage: wikEdDebugTimerwikEd.debugTimer.push([1234, new Date]); WikEdDebugTimerwikEd.DebugTimer();
windowwikEd.wikEdDebugTimerdebugTimer = [];
// syntax highlighting
windowwikEd.wikEdParseObjparseObj = {};
// MediaWiki file paths for use in regexps
windowwikEd.wikEdServerserver = '';
windowwikEd.wikEdArticlePatharticlePath = '';
windowwikEd.wikEdScriptscript = '';
windowwikEd.wikEdScriptPathscriptPath = '';
windowwikEd.wikEdScriptNamescriptName = '';
windowwikEd.wikEdScriptURLscriptURL = '';
// magic words and parser functions, see http://www.mediawiki.org/wiki/Help:Magic_words
// __MAGICWORDS__
windowwikEd.wikEdMagicWordsmagicWords = 'NOTOC|FORCETOC|TOC|NOEDITSECTION|NEWSECTIONLINK|NOGALLERY|HIDDENCAT|NOCONTENTCONVERT|NOCC|NOTITLECONVERT|NOTC|END|START|NOINDEX|INDEX|STATICREDIRECT';
// template, parser function, and parser variable modifiers {{modifier:...}}
// see http://meta.wikimedia.org/wiki/Help:Magic_words#Template_modifiers
windowwikEd.wikEdTemplModifiertemplModifier = 'int|msg|msgnw|raw|subst';
// parser variables {{variable}}
windowwikEd.wikEdParserVariablesparserVariables = 'CURRENTYEAR|CURRENTMONTH|CURRENTMONTHNAME|CURRENTMONTHNAMEGEN|CURRENTMONTHABBREV|CURRENTDAY|CURRENTDAY2|CURRENTDOW|CURRENTDAYNAME|CURRENTTIME|CURRENTHOUR|CURRENTWEEK|CURRENTTIMESTAMP|LOCALYEAR|LOCALMONTH|LOCALMONTHNAME|LOCALMONTHNAMEGEN|LOCALMONTHABBREV|LOCALDAY|LOCALDAY2|LOCALDOW|LOCALDAYNAME|LOCALTIME|LOCALHOUR|LOCALWEEK|LOCALTIMESTAMP|SITENAME|CURRENTVERSION|CONTENTLANGUAGE|REVISIONID|REVISIONDAY|REVISIONDAY2|REVISIONMONTH|REVISIONYEAR|REVISIONTIMESTAMP|SERVER|SERVERNAME|SCRIPTPATH|FULLPAGENAME|PAGENAME|BASEPAGENAME|SUBPAGENAME|SUBJECTPAGENAME|TALKPAGENAME|FULLPAGENAMEE|PAGENAMEE|BASEPAGENAMEE|SUBPAGENAMEE|SUBJECTPAGENAMEE|TALKPAGENAMEE|NAMESPACE|SUBJECTSPACE|ARTICLESPACE|TALKSPACE|NAMESPACEE|SUBJECTSPACEE|TALKSPACEE|DIRMARK|DIRECTIONMARK|PAGENAME|PAGENAMEE|ARTICLEPATH';
// parser variables {{variable:R}}
windowwikEd.wikEdParserVariablesRparserVariablesR = 'NUMBEROFPAGES|NUMBEROFARTICLES|NUMBEROFFILES|NUMBEROFEDITS|NUMBEROFUSERS|NUMBEROFADMINS|NUMBEROFVIEWS|NUMBEROFACTIVEUSERS|PROTECTIONLEVEL';
// parser functions {{FUNCTION:parameter|R}}
windowwikEd.wikEdParserFunctionsRparserFunctionsR = 'NUMBERINGROUP|PAGESINNS|PAGESINNAMESPACE|PAGESINCATEGORY|PAGESINCAT|PAGESIZE|DEFAULTSORT|DISPLAYTITLE';
// parser functions {{function:param|param}}
windowwikEd.wikEdParserFunctionsparserFunctions = 'localurl|localurle|fullurl|filepath|fullurle|urlencode|urldecode|anchorencode|ns|lc|lcfirst|uc|ucfirst|formatnum|padleft|padright|padright|plural|grammar|gender|int';
// parser functions {{#function:param|param}}
windowwikEd.wikEdParserFunctionsHashparserFunctionsHash = 'language|special|tag|tag|expr|if|ifeq|ifexist|ifexpr|switch|time|timel|rel2abs|titleparts|iferror|iferror|special|tag|categorytree|formatdate';
// define leaf elements for WikEdGetInnerHTMLwikEd.GetInnerHTML
windowwikEd.wikEdLeafElementsleafElements = {
'IMG': true,
'HR': true,
// variables needed during startup, might be called multiple times
// hash of loaded scripts, also defined in wikEdDiffwikEd.diff.js
if (typeof(wikEdExternalScriptswikEd.externalScripts) == 'undefined') { windowwikEd.wikEdExternalScriptsexternalScripts = null; }
if (typeof(wikEdStartupwikEd.pageLoaded) == 'undefined') { windowwikEd.wikEdStartuppageLoaded = false; }
if (typeof(wikEdPageLoaded) == 'undefined') { window.wikEdPageLoaded = false; }
// browser and os identificationr
if (typeof(wikEdBrowserNamewikEd.browserName) == 'undefined') { windowwikEd.wikEdBrowserNamebrowserName = ''; }
if (typeof(wikEdBrowserFlavorwikEd.browserFlavor) == 'undefined') { windowwikEd.wikEdBrowserFlavorbrowserFlavor = ''; }
if (typeof(wikEdBrowserVersionwikEd.browserVersion) == 'undefined') { windowwikEd.wikEdBrowserVersionbrowserVersion = 0; }
if (typeof(wikEdMSIEwikEd.msie) == 'undefined') { windowwikEd.wikEdMSIEmsie = false; }
if (typeof(wikEdMozillawikEd.mozilla) == 'undefined') { windowwikEd.wikEdMozillamozilla = false; }
if (typeof(wikEdOperawikEd.opera) == 'undefined') { windowwikEd.wikEdOperaopera = false; }
if (typeof(wikEdSafariwikEd.safari) == 'undefined') { windowwikEd.wikEdSafarisafari = false; }
if (typeof(wikEdWebKitwikEd.webkit) == 'undefined') { windowwikEd.wikEdWebKitwebkit = false; }
if (typeof(wikEdChromewikEd.chrome) == 'undefined') { windowwikEd.wikEdChromechrome = false; }
if (typeof(wikEdGreasemonkeywikEd.greasemonkey) == 'undefined') { windowwikEd.wikEdGreasemonkeygreasemonkey = false; }
if (typeof(wikEdPlatformwikEd.platform) == 'undefined') { windowwikEd.wikEdPlatformplatform = null; }
// global variables via Greasemonkey ___location hack
if (typeof(wikEdWikiGlobalswikEd.wikiGlobals) == 'undefined') { windowwikEd.wikEdWikiGlobalswikiGlobals = {}; }
if (typeof(wikEdTextwikEd.text) == 'undefined') { wikEdTextwikEd.text = {}; }
// define global variables
if (typeof(wgServer) == 'undefined') { window.wgServer = null; }
if (typeof(wgTitle) == 'undefined') { window.wgTitle = null; }
if (typeof(wgCanonicalNamespace) == 'undefined') { window.wgCanonicalNamespace = null; }
if (typeof(wgArticlePath) == 'undefined') { window.wgArticlePath = null; }
if (typeof(wgScript) == 'undefined') { window.wgScript = null; }
if (typeof(wgScriptPath) == 'undefined') { window.wgScriptPath = null; }
if (typeof(wgUserName) == 'undefined') { window.wgUserName = null; }
if (typeof(wgCurRevisionId) == 'undefined') { window.wgCurRevisionId = null; }
if (typeof(wgScript) == 'undefined') { window.wgScript = null; }
if (typeof(wgContentLanguage) == 'undefined') { window.wgContentLanguage = null; }
if (typeof(wgUserLanguage) == 'undefined') { window.wgUserLanguage = null; }
if (typeof(wgEnableAPI) == 'undefined') { window.wgEnableAPI = null; }
if (typeof(wgPageName) == 'undefined') { window.wgPageName = null; }
if (typeof(wgNamespaceIds) == 'undefined') { window.wgNamespaceIds = null; }
if (typeof(wgFormattedNamespaces) != 'undefined') { window.wgFormattedNamespaces = null; }
// skins
if (typeof(wikEdLogoContainerIdwikEd.logoContainerId) == 'undefined') { windowwikEd.wikEdLogoContainerIdlogoContainerId = ''; }
if (typeof(wikEdRearrangewikEd.rearrange) == 'undefined') { windowwikEd.wikEdRearrangerearrange = false; }
if (typeof(wikEdLogoToListwikEd.logoToList) == 'undefined') { windowwikEd.wikEdLogoToListlogoToList = false; }
if (typeof(wikEdSkinwikEd.skin) == 'undefined') { windowwikEd.wikEdSkinskin = ''; }
// various
if (typeof(wikEdGreasemonkeyToHeadwikEd.gotGlobalsHook) == 'undefined') { windowwikEd.wikEdGreasemonkeyToHeadgotGlobalsHook = false[]; }
if (typeof(wikEdGotGlobalsHookwikEd.loadingTranslation) == 'undefined') { windowwikEd.wikEdGotGlobalsHookloadingTranslation = []false; }
if (typeof(wikEdLoadingTranslationwikEd.webStorage) == 'undefined') { windowwikEd.wikEdLoadingTranslationwebStorage = false; }
if (typeof(wikEdWebStorage) == 'undefined') { window.wikEdWebStorage = false; }
// customization
if (typeof(wikEd.wikEdTextAdded) == 'undefined') { wikEd.wikEdTextAdded = false; }
if (typeof(wikEd.wikEdConfigAdded) == 'undefined') { wikEd.wikEdConfigAdded = false; }
//
// WikEdInitObjectwikEd.InitObject: initialize object, keep pre-defined values (code copied to wikEdDiff.js)
//
windowwikEd.WikEdInitObjectInitObject = function(target, source, showMissing) {
if (typeof(target) == 'object') {
if (showMissing == true) {
if (typeof(target[key]) == 'string') {
wikEdConfig['wikEd.config.debugStartUp'] += '\t\t\t\'' + key + '\': \'' + target[key].replace(/\n/g, '\\n') + '\',\n';
}
}
//
// WikEdAddToObjectwikEd.AddToObject: add or replace properties, replace existing values (code copied to wikEdDiff.js)
//
windowwikEd.WikEdAddToObjectAddToObject = function(target, source) {
if (typeof(target) == 'object') {
for (var key in source) {
//
// WikEdInitImagewikEd.InitImage: initialize images, keep pre-defined values (code copied to wikEdDiff.js)
//
windowwikEd.WikEdInitImageInitImage = function(arraytarget, presetsource) {
for (var key in presetsource) {
if (typeof(arraytarget[key]) == 'undefined') {
// remove MediaWiki path prefixes and add local path
if (wikEdConfig['wikEd.config.useLocalImages'] == true) {
arraytarget[key] = wikEdConfig['wikEd.config.imagePathLocal'] + presetsource[key].replace(/^[0-9a-f]+\/[0-9a-f]+\/()/, '');
}
// add path
else {
arraytarget[key] = wikEdConfig['wikEd.config.imagePath'] + presetsource[key];
}
}
//
// WikEdStartupwikEd.Startup: wikEd startup code, called during page load
//
windowwikEd.WikEdStartupStartup = function() {
// check if this has already been run
if (wikEdStartupwikEd.startup == true) {
return;
}
wikEdStartupwikEd.startup = true;
// redirect WED shortcut to WikEdDebugwikEd.Debug(objectName, object, popup)
window.WED = WikEdDebugwikEd.Debug;
// check browser and version
var agentMatch = navigator.userAgent.match(/(Firefox|Netscape|SeaMonkey|IceWeasel|IceCat|Fennec|Minefield|BonEcho|GranParadiso|Shiretoko)\W+(\d+\.\d+)/i);
if (agentMatch != null) {
wikEdBrowserNamewikEd.browserName = 'Mozilla';
wikEdBrowserFlavorwikEd.browserFlavor = agentMatch[1];
wikEdBrowserVersionwikEd.browserVersion = parseFloat(agentMatch[2]);
wikEdMozillawikEd.mozilla = true;
}
agentMatch = navigator.userAgent.match(/(MSIE)\W+(\d+\.\d+)/i);
if (agentMatch != null) {
wikEdBrowserNamewikEd.browserName = 'MSIE';
wikEdBrowserVersionwikEd.browserVersion = parseFloat(agentMatch[2]);
wikEdMSIEwikEd.msie = true;
}
agentMatch = navigator.userAgent.match(/(Opera)\W+(\d+\.\d+)/i);
if (agentMatch != null) {
wikEdBrowserNamewikEd.browserName = 'Opera';
wikEdBrowserVersionwikEd.browserVersion = parseFloat(agentMatch[2]);
if (wikEdBrowserVersionwikEd.browserVersion == 9.80) {
var versionMatch = navigator.userAgent.match(/(Version)\W+(\d+\.\d+)/i);
if (versionMatch != null) {
wikEdBrowserVersionwikEd.browserVersion = parseFloat(agentMatch[2]);
}
}
wikEdOperawikEd.opera = true;
}
agentMatch = navigator.userAgent.match(/(Chrome)\W+(\d+\.\d+)/i);
if (agentMatch != null) {
wikEdBrowserNamewikEd.browserName = 'Chrome';
wikEdBrowserVersionwikEd.browserVersion = parseFloat(agentMatch[2]);
wikEdChromewikEd.chrome = true;
}
agentMatch = navigator.userAgent.match(/(Safari)\W+(\d+\.\d+)/i);
if (agentMatch != null) {
wikEdBrowserNamewikEd.browserName = 'Safari';
wikEdBrowserVersionwikEd.browserVersion = parseFloat(agentMatch[2]);
wikEdSafariwikEd.safari = true;
}
agentMatch = navigator.userAgent.match(/(WebKit)(GTK\+)?\W+(\d+\.\d+)/i);
if (agentMatch != null) {
wikEdBrowserNamewikEd.browserName = 'WebKit';
wikEdBrowserVersionwikEd.browserVersion = parseFloat(agentMatch[3]);
wikEdWebKitwikEd.webkit = true;
}
}
var os = navigator.platform.match(/^(win|mac|unix|linux)/i);
if (os != null) {
wikEdPlatformwikEd.platform = os[1].toLowerCase();
}
// import customization (try now again after page load for user/skin.js)
// detect if run as a head script added by Greasemonkey installer
if ( (typeof(wikEdConfig) == 'object') && (wikEd.wikEdConfigAdded == false) ) {
if (document.getElementById('WikEdHeadScript') != null) {
wikEd.AddToObject(wikEd.config, wikEdConfig);
wikEdGreasemonkeyToHead = true;
wikEd.wikEdConfigAdded = true;
}
if ( (typeof(wikEdText) == 'object') && (wikEd.wikEdTextAdded == false) ) {
wikEd.AddToObject(wikEd.text, wikEdText);
wikEd.wikEdTextAdded = true;
}
// compatibility fixes for older customizations and wikEd-compatibilizations in other scripts
window.wikEdUseWikEd = wikEd.useWikEd;
window.WikEdUpdateTextarea = wikEd.UpdateTextarea;
window.WikEdUpdateFrame = wikEd.UpdateFrame;
window.WikEdGetText = wikEd.GetText;
window.WikEdEditButton = wikEd.EditButton;
// check if this runs under Greasemonkey
if (typeof(GM_getValue) == 'function') {
wikEdGreasemonkeywikEd.greasemonkey = true;
}
// parse global-context (MediaWiki) variables into hash (for Greasemonkey)
windowwikEd.addEventListenerAddEventListener(window, 'message', WikEdGetGlobalsReceiverwikEd.GetGlobalsReceiver, false);
var globalNames = [, 'skin', 'wgServer', 'wgTitle', 'wgCanonicalNamespace', 'wgArticlePath', 'wgScript', 'wgScriptPath', 'wgUserName', 'wgCurRevisionId', 'wgScript', 'wgContentLanguage', 'wgUserLanguage', 'wgEnableAPI', 'wgPageName', 'wgNamespaceIds', 'wgFormattedNamespaces', 'wgUseAutomaticEditSummaries'];
if (wikEdGreasemonkeywikEd.greasemonkey == true) {
globalNames.push('wikEdConfig', 'wikEdText');
}
var gotGlobalsHook = [
function() {
if ( (typeof(wikEd.wikiGlobals.wikEdConfig) == 'object') && (wikEd.wikEdConfigAdded == false) ) {
if (wikEdGreasemonkey == true) {
WikEdAddToObjectwikEd.AddToObject(wikEdConfigwikEd.config, wikEdWikiGlobals['wikEd.wikiGlobals.wikEdConfig']);
wikEd.wikEdConfigAdded = true;
WikEdAddToObject(wikEdText, wikEdWikiGlobals['wikEdText']);
}
if ( (typeof(wikEd.wikiGlobals.wikEdText) == 'object') && (wikEd.wikEdTextAdded == false) ) {
wikEd.AddToObject(wikEd.text, wikEd.wikiGlobals.wikEdText);
wikEd.wikEdTextAdded = true;
}
return;
// and load translations when done
if ( (wikEdConfig['wikEd.config.loadTranslation'] == true) && (wikEdLoadingTranslationwikEd.loadingTranslation == false) ) {
gotGlobalsHook.push(WikEdLoadTranslationswikEd.LoadTranslations);
}
// parse globals (asynchronous)
WikEdGetGlobalswikEd.GetGlobals(globalNames, gotGlobalsHook);
// check for web storage
if (typeof(window.localStorage) == 'object') {
wikEdWebStoragewikEd.webStorage = true;
}
// schedule the setup routine
WikEdAddEventListenerwikEd.AddEventListener(window, 'load', WikEdSetupwikEd.Setup, false);
return;
//
// WikEdLoadTranslationswikEd.LoadTranslations: load external wikEd translation and language settings
//
windowwikEd.WikEdLoadTranslationsLoadTranslations = function() {
if ( (wikEdConfig['wikEd.config.loadTranslation'] == true) && (wikEdLoadingTranslationwikEd.loadingTranslation == false) ) {
var contentLang = wikEdWikiGlobals['wikEd.wikiGlobals.wgContentLanguage'] || '';
var userLang = wikEdWikiGlobals['wikEd.wikiGlobals.wgUserLanguage'] || '';
if ( (wikEdConfig['wikEd.config.languageDefault'] != '') || (userLang != '') || (contentLang != '') ) {
// simplified Chinese
}
WikedInitTranslationswikEd.InitTranslations();
var scriptUrl = wikEdConfig['wikEd.config.translations'][wikEdConfig['wikEd.config.languageDefault']] || '';
if (scriptUrl == '') {
scriptUrl = wikEdConfig['wikEd.config.translations'][userLang] || '';
if (scriptUrl == '') {
scriptUrl = wikEdConfig['wikEd.config.translations'][contentLang] || '';
}
}
if (scriptUrl != '') {
WikEdAppendScriptwikEd.AppendScript(scriptUrl, function() {
// copy custom text after values have arrived
var gotGlobalsHook = function() {
WikEdAddToObjectwikEd.AddToObject(wikEdTextwikEd.text, wikEdWikiGlobals['wikEd.wikiGlobals.wikEdText']);
return;
};
// parse globals (asynchronous)
WikEdGetGlobalswikEd.GetGlobals(['wikEdText'], [gotGlobalsHook]);
wikEdLoadingTranslationwikEd.loadingTranslation = true;
});
}
//
// WikEdSetupwikEd.Setup: basic setup routine, scheduled after page load
//
windowwikEd.WikEdSetupSetup = function() {
WikEdRemoveEventListenerwikEd.RemoveEventListener(window, 'load', WikEdSetupwikEd.Setup, false);
// check if this has already been run, either as a wiki or a Greasemonkey user script
if (document.getElementById('wikEdSetupFlag') != null) {
return;
}
// import customization (try later again after page load for user/skin.js)
if ( (typeof(wikEdConfig) == 'object') && (wikEd.wikEdConfigAdded == false) ) {
wikEd.AddToObject(wikEd.config, wikEdConfig);
wikEd.wikEdConfigAdded = true;
}
if ( (typeof(wikEdText) == 'object') && (wikEd.wikEdTextAdded == false) ) {
wikEd.AddToObject(wikEd.text, wikEdText);
wikEd.wikEdTextAdded = true;
}
// detect already loaded external scripts
if (wikEdExternalScriptswikEd.externalScripts == null) {
wikEdExternalScriptswikEd.externalScripts = [];
var pageScripts = document.getElementsByTagName('script');
for (var i = 0; i < pageScripts.length; i ++) {
// ignore other diff.js scripts
if ( (scriptName == 'diff.js') && (scriptSrc != wikEdConfig['wikEd.config.diffScriptSrc']) ) {
continue;
}
wikEdExternalScriptswikEd.externalScripts[scriptName] = true;
}
}
// exit if executed as Greasemonkey script if wiki user script is available
if (typeof(GM_getValue) == 'function') {
if (wikEdExternalScriptswikEd.externalScripts['wikEd.js'] == true) {
wikEdGreasemonkeywikEd.greasemonkey = false;
return;
}
else {
wikEdGreasemonkeywikEd.greasemonkey = true;
}
}
// redirect Greasemonkey debugging function to WikEdDebugwikEd.Debug if run as a wiki user script
else {
window.GM_log = windowwikEd.WikEdDebugDebug;
}
// detect wikEd running as a gadget
if (wikEdConfig['wikEd.config.gadget'] == null) {
if (wikEdExternalScriptswikEd.externalScripts['MediaWiki:Gadget-wikEd.js'] == true) {
wikEdConfig['wikEd.config.gadget'] = true;
}
}
// detect MediaWiki page and its skin
wikEd.InitMediaWikiSkinIds();
WikedInitMediaWikiSkinIds();
for (var skin in wikEdConfig['wikEd.config.MediaWikiSkinIds']) {
if (wikEdConfig['wikEd.config.MediaWikiSkinIds'].hasOwnProperty(skin) == true) {
var logoContainerId = wikEdConfig['wikEd.config.MediaWikiSkinIds'][skin][0];
var logoToList = wikEdConfig['wikEd.config.MediaWikiSkinIds'][skin][1];
var rearrange = wikEdConfig['wikEd.config.MediaWikiSkinIds'][skin][2];
var skinIds = wikEdConfig['wikEd.config.MediaWikiSkinIds'][skin][3];
for (var i = 0; i < skinIds.length; i ++) {
if (document.getElementById(skinIds[i]) == null) {
}
if (i == skinIds.length) {
wikEdLogoContainerIdwikEd.logoContainerId = logoContainerId;
wikEdSkinwikEd.skin = skin;
wikEdRearrangewikEd.rearrange = rearrange;
wikEdLogoToListwikEd.logoToList = logoToList;
break;
}
// not a MediaWiki page
if (wikEdSkinwikEd.skin == '') {
return;
}
// initialize user configurable variables
wikEd.InitGlobalConfigs();
WikEdInitGlobalConfigs();
// import custom text and translations
wikEd.AddToObject(wikEd.config.text, wikEd.text);
WikEdAddToObject(wikEdConfig['text'], wikEdText);
// do not rearrange page elements
if (wikEdConfig['wikEd.config.noRearrange'] != false) {
wikEdRearrangewikEd.rearrange = false;
}
// initialize non-configurable variables
wikEd.InitGlobals();
WikEdInitGlobals();
// check for updates
wikEd.AutoUpdate();
WikEdAutoUpdate();
// initialize images (needed here for logo)
wikEd.InitImages();
WikedInitImages();
// load css for edit and non-edit pages
wikEd.InitMainCSS();
WikedInitMainCSS();
// add stylesheet definitions
WikEdApplyCSSwikEd.ApplyCSS(document, wikEdConfig['wikEd.config.mainCSS']);
// add image path to image filename
if (wikEdLogowikEd.logo == null) {
// create logo
wikEdLogowikEd.logo = document.createElement('img');
wikEdLogowikEd.logo.id = 'wikEdLogoImg';
// insert logo into page
var logoContainer;
if (wikEdLogoContainerIdwikEd.logoContainerId != '') {
logoContainer = document.getElementById(wikEdLogoContainerIdwikEd.logoContainerId);
}
if (logoContainer != null) {
// logo as last element of specified list (e.g. monobook, simple, myskin, gumax)
if (wikEdLogoToListwikEd.logoToList == true) {
wikEdLogoListwikEd.logoList = document.createElement('li');
wikEdLogoListwikEd.logoList.id = 'wikEdLogoList';
wikEdLogoListwikEd.logoList.className = 'wikEdLogoList';
wikEdLogoListwikEd.logoList.appendChild(wikEdLogowikEd.logo);
var list;
var logo;
}
if (list != null) {
list.appendChild(wikEdLogoListwikEd.logoList);
wikEdLogowikEd.logo.className = 'wikEdLogo';
}
}
// logo as last child of specified element
else {
logoContainer.appendChild(wikEdLogowikEd.logo);
wikEdLogowikEd.logo.className = 'wikEdLogo';
}
}
// logo as first page element, fallback for undetected skin
if (wikEdLogowikEd.logo.className == '') {
document.body.insertBefore(wikEdLogowikEd.logo, document.body.firstChild);
wikEdLogowikEd.logo.className = 'wikEdLogoFallBack';
}
// add event listener to logo
WikEdAddEventListenerwikEd.AddEventListener(wikEdLogowikEd.logo, 'click', WikEdMainSwitchwikEd.MainSwitch, true);
}
// page loaded flag for dynamically loaded scripts
wikEdPageLoadedwikEd.pageLoaded = true;
// load the external diff script if not already done
if ( (wikEdConfig['wikEd.config.loadDiffScript'] == true) && (wikEdExternalScriptswikEd.externalScripts['diff.js'] == null) ) {
if (typeof(WDiffString) == 'undefined') {
WikEdAppendScriptwikEd.AppendScript(wikEdConfig['wikEd.config.diffScriptSrc']);
}
wikEdExternalScriptswikEd.externalScripts['diff.js'] = true;
}
// load the external wikEdDiffwikEd.diff script if not already done
if ( (wikEdConfig['wikEd.config.loadDiff'] == true) && (wikEdExternalScriptswikEd.externalScripts['wikEdDiff.js'] == null) ) {
if (typeof(WikEdDiffwikEd.Diff) == 'undefined') {
WikEdAppendScriptwikEd.AppendScript(wikEdConfig['wikEd.config.diffSrc']);
}
wikEdExternalScriptswikEd.externalScripts['wikEdDiff.js'] = true;
}
// load the MS IE selection/range compatibility library IERange
if (wikEdMSIEwikEd.msie == true) {
if ( (wikEdConfig['wikEd.config.loadIERange'] == true) && (wikEdExternalScriptswikEd.externalScripts['ierange.js'] == null) ) {
if (typeof(DOMUtils) == 'undefined') {
WikEdAppendScriptwikEd.AppendScript(wikEdConfig['wikEd.config.IERangeSrc']);
}
wikEdExternalScriptswikEd.externalScripts['ierange.js'] = true;
}
}
// check if disabled
wikEdDisabledwikEd.disabled = WikEdGetSavedSettingwikEd.GetSavedSetting('wikEdDisabled', wikEdConfig['wikEd.config.disabledPreset']);
if (wikEdDisabledwikEd.disabled == true) {
wikEdUseWikEdwikEd.useWikEd = false;
WikEdSetLogowikEd.SetLogo();
return;
}
// get current page name
wikEdPageNamewikEd.pageName = wikEdWikiGlobals['wikEd.wikiGlobals.wgPageName'];
// get current namespace
if (wikEdPageNamewikEd.pageName != null) {
var colonPos = wikEdPageNamewikEd.pageName.indexOf(':');
if (colonPos == -1) {
wikEdPageNamespacewikEd.pageNamespace = '';
}
else {
wikEdPageNamespacewikEd.pageNamespace = wikEdPageNamewikEd.pageName.substr(0, colonPos);
}
}
// ___location search string function: put all used images and icons on an empty page
if (window.___location.search.match(/(\?|&)wikEd=iconPage\b/i) != null) {
var str = wikEdConfig['wikEd.config.text']['iconPage'];
for (var imageKey in wikEdConfig['wikEd.config.image']) {
if (wikEdConfig['wikEd.config.image'].hasOwnProperty(imageKey) == true) {
var imageAddress = wikEdConfig['wikEd.config.image'][imageKey];
if (typeof(imageAddress) == 'string') {
str += '<img src="' + imageAddress + '"> ';
// init syntax highlighting regExp object
wikEd.HighlightSyntaxInit();
WikEdHighlightSyntaxInit();
// continue setup
WikEdTurnOnwikEd.TurnOn(true);
return;
//
// WikEdTurnOnwikEd.TurnOn: continue setup, can be called repeatedly
//
windowwikEd.WikEdTurnOnTurnOn = function(scrollToEditFocus) {
// check if setup was already run
if (wikEdTurnedOnwikEd.turnedOn == true) {
return;
}
// set error logo
WikEdSetLogowikEd.SetLogo('error');
// no id, no wikEd
if (navigator.appName == null) {
wikEdBrowserNotSupportedwikEd.browserNotSupported = true;
}
// check browser versions
switch (wikEdBrowserNamewikEd.browserName) {
// check Mozilla version
case 'Mozilla':
if (
(wikEdBrowserFlavorwikEd.browserFlavor == 'Firefox') && (wikEdBrowserVersionwikEd.browserVersion < 1.5) ||
(wikEdBrowserFlavorwikEd.browserFlavor == 'Netscape') && (wikEdBrowserVersionwikEd.browserVersion < 8.0) ||
(wikEdBrowserFlavorwikEd.browserFlavor == 'SeaMonkey') && (wikEdBrowserVersionwikEd.browserVersion < 1.0)
) {
wikEdBrowserNotSupportedwikEd.browserNotSupported = true;
}
break;
// check MSIE version
case 'MSIE':
wikEdBrowserNotSupportedwikEd.browserNotSupported = true;
break;
// check Opera version
case 'Opera':
if (wikEdBrowserVersionwikEd.browserVersion < 10.51) {
wikEdBrowserNotSupportedwikEd.browserNotSupported = true;
}
// 10.50 beta, 10.51 are too buggy (inserthtml, parentNode...)
wikEdBrowserNotSupportedwikEd.browserNotSupported = true;
break;
// check Google Chrome version
case 'Chrome':
if (wikEdBrowserVersionwikEd.browserVersion < 0.2) {
wikEdBrowserNotSupportedwikEd.browserNotSupported = true;
}
break;
// check Safari version
case 'Safari':
if (wikEdBrowserVersionwikEd.browserVersion < 500) {
wikEdBrowserNotSupportedwikEd.browserNotSupported = true;
}
break;
// browser or version not supported, set error message and exit
if ( (wikEdBrowserNotSupportedwikEd.browserNotSupported == true) && (wikEdConfig['wikEd.config.skipBrowserTest'] == false) ) {
WikEdSetLogowikEd.SetLogo('browser');
return;
}
var array = document.getElementsByName('wpEdittime');
if (array[0] != null) {
wikEdEdittimewikEd.edittime = array[0].value
}
var array = document.getElementsByName('wpEditToken');
if (array[0] != null) {
wikEdEditTokenwikEd.editToken = array[0].value
}
// detect custom edit page
if (wikEdConfig['wikEd.config.customEditFormId'] != '') {
wikEdEditFormwikEd.editForm = document.getElementById(wikEdConfig['wikEd.config.customEditFormId']);
}
if (wikEdConfig['wikEd.config.customTextAreaId'] != '') {
wikEdTextareawikEd.textarea = document.getElementById(wikEdConfig['wikEd.config.customTextAreaId']);
}
if (wikEdConfig['wikEd.config.customSaveButtonId'] != '') {
wikEdSaveButtonwikEd.saveButton = document.getElementById(wikEdCustomwikEdSaveButtonIdwikEd.customwikEdSaveButtonId);
}
// detect standard edit page
if (wikEdTextareawikEd.textarea == null) {
wikEdTextareawikEd.textarea = document.getElementsByName('wpTextbox1')[0];
}
if (wikEdEditFormwikEd.editForm == null) {
wikEdEditFormwikEd.editForm = document.getElementById('editform');
}
if (wikEdSaveButtonwikEd.saveButton == null) {
wikEdSaveButtonwikEd.saveButton = document.getElementById('wpSave');
}
wikEdDiffPreviewButtonwikEd.diffPreviewButton = document.getElementById('wpDiff');
wikEdPreviewButtonwikEd.previewButton = document.getElementById('wpPreview');
// detect MediaWiki Semantic Forms extension
if (wikEdTextareawikEd.textarea == null) {
wikEdEditFormwikEd.editForm = document.getElementsByName('createbox')[0];
wikEdTextareawikEd.textarea = document.getElementsByName('free_text')[0];
}
// detect edit raw watchlist page
if ( (wikEdEditFormwikEd.editForm == null) || (wikEdTextareawikEd.textarea == null) ) {
wikEdTextareawikEd.textarea = document.getElementById('titles');
if (wikEdTextareawikEd.textarea != null) {
wikEdRearrangewikEd.rearrange = false;
wikEdWatchlistEditwikEd.watchlistEdit = true;
// get watchlist edit form
var node = wikEdTextareawikEd.textarea;
while (node != null) {
node = node.parentNode;
}
}
wikEdEditFormwikEd.editForm = node;
}
// get watchlist submit button
if (wikEdEditFormwikEd.editForm != null) {
var submits = wikEdEditFormwikEd.editForm.getElementsByTagName('input');
for (i = 0; i < submits.length; i ++) {
if (submits[i].type == 'submit') {
wikEdSaveButtonwikEd.saveButton = submits[i];
break;
}
// detect upload page
if ( (wikEdTextareawikEd.textarea == null) || (wikEdEditFormwikEd.editForm == null) || (wikEdSaveButtonwikEd.saveButton == null) ) {
wikEdTextareawikEd.textarea = document.getElementsByName('wpUploadDescription')[0];
wikEdEditFormwikEd.editForm = document.getElementById('mw-upload-form');
wikEdSaveButtonwikEd.saveButton = document.getElementsByName('wpUpload')[0];
if ( (wikEdTextareawikEd.textarea != null) && (wikEdEditFormwikEd.editForm != null) && (wikEdSaveButtonwikEd.saveButton != null) ) {
wikEdUploadEditwikEd.uploadEdit = true;
wikEdRearrangewikEd.rearrange = false;
}
}
// detect view and restore deleted pages
if ( (wikEdTextareawikEd.textarea == null) || (wikEdEditFormwikEd.editForm == null) || (wikEdSaveButtonwikEd.saveButton == null) ) {
wikEdTextareawikEd.textarea = document.getElementsByTagName('textarea')[0];
if (wikEdTextareawikEd.textarea != null) {
// get form
}
}
wikEdEditFormwikEd.editForm = node;
if (wikEdEditFormwikEd.editForm != null) {
wikEdPreviewButtonwikEd.previewButton = document.getElementsByName('preview')[0];
wikEdViewDeletedwikEd.viewDeleted = true;
wikEdRearrangewikEd.rearrange = false;
}
}
// set page detection error indicator
if ( (wikEdTextareawikEd.textarea == null) || (wikEdEditFormwikEd.editForm == null) ) {
WikEdSetLogowikEd.SetLogo();
return;
}
// check if the textarea is read-only
if (wikEdConfig['wikEd.config.skipReadOnlyTest'] == false) {
if ( (WikEdGetAttributewikEd.GetAttribute(wikEdTextareawikEd.textarea, 'readonly') != null) || (wikEdSaveButtonwikEd.saveButton == null) ) {
wikEdReadOnlywikEd.readOnly = true;
}
}
// initialize frame css, main css, buttons, and button bars
wikEd.InitFrameCSS();
WikedInitFrameCSS();
wikEd.InitMainEditCSS();
WikedInitMainEditCSS();
wikEd.InitButton();
WikedInitButton();
wikEd.InitButtonKey();
WikedInitButtonKey();
wikEd.InitButtonBar();
WikedInitButtonBar();
wikEd.InitHistoryLength();
WikedInitHistoryLength();
wikEd.InitIncompatibleScripts();
WikedInitIncompatibleScripts();
// check for incompatible scripts
if (wikEdConfig['wikEd.config.skipScriptTest'] == false) {
var scriptNames = '';
for (var key in wikEdConfig['wikEd.config.incompatibleScripts']) {
if (wikEdConfig['wikEd.config.incompatibleScripts'].hasOwnProperty(key) == true) {
var generalName = key;
var scriptName = wikEdConfig['wikEd.config.incompatibleScripts'][key];
if (wikEdExternalScriptswikEd.externalScripts[scriptName] == true) {
if (scriptNames != '') {
scriptNames += ', ';
}
if (scriptNames != '') {
WikEdSetLogowikEd.SetLogo('incompatible', scriptNames);
return;
}
// define Unicode characters for fixing function
wikEd.InitUnicode();
WikEdInitUnicode();
// detect if we add a new section (+ tab)
if (/(\?|&)section=new\b/.test(window.___location.search) == true) {
wikEdAddNewSectionwikEd.addNewSection = true;
}
else {
if (section.length > 0) {
if (section[0].value == 'new') {
wikEdAddNewSectionwikEd.addNewSection = true;
}
}
// load the external InstaView script
if ( (wikEdGreasemonkeywikEd.greasemonkey == false) && (wikEdConfig['wikEd.config.loadInstaView'] == true) && (wikEdExternalScriptswikEd.externalScripts['instaview.js'] == null) ) {
if (typeof(InstaView) == 'undefined') {
WikEdAppendScriptwikEd.AppendScript(wikEdConfig['wikEd.config.instaViewSrc']);
}
wikEdExternalScriptswikEd.externalScripts['instaview.js'] = true;
}
else if ( (wikEdGreasemonkeywikEd.greasemonkey == false) || (wikEdConfig['wikEd.config.loadInstaView'] != true) ) {
wikEdConfig['wikEd.config.useLocalPreview'] = false;
}
// get initial textarea dimensions
wikEdTextareaBorderHeightwikEd.textareaBorderHeight = parseInt(WikEdGetStylewikEd.GetStyle(wikEdTextareawikEd.textarea, 'borderTopWidth'), 10) + parseInt(WikEdGetStylewikEd.GetStyle(wikEdTextareawikEd.textarea, 'borderBottomWidth'), 10);
if (WikEdGetStylewikEd.GetStyle(wikEdTextareawikEd.textarea, 'display') != 'none') {
wikEdTextareaOffsetHeightInitialwikEd.textareaOffsetHeightInitial = wikEdTextareawikEd.textarea.offsetHeight;
}
else {
wikEdTextareaOffsetHeightInitialwikEd.textareaOffsetHeightInitial = wikEdTextareawikEd.textarea.parentNode.clientHeight;
}
wikEdTextareaOffsetHeightInitialwikEd.textareaOffsetHeightInitial = wikEdTextareawikEd.textarea.offsetHeight;
wikEdTextareaHeightwikEd.textareaHeight = (wikEdTextareawikEd.textarea.offsetHeight - wikEdTextareaBorderHeightwikEd.textareaBorderHeight) + 'px';
wikEdTextareaWidthwikEd.textareaWidth = '100%';
// remove frame border if textarea has none
var styleFrameContainer = '';
if (wikEdTextareaBorderHeightwikEd.textareaBorderHeight == 0) {
styleFrameContainer = 'border-width: 0;';
}
// setup the undo buffers and save the original text for local changes view
wikEdOrigVersionwikEd.origVersion = wikEdTextareawikEd.textarea.value;
// Opera 0.9.51
wikEdOrigVersionwikEd.origVersion = wikEdOrigVersionwikEd.origVersion.replace(/\r\n|\n\r|\r/g, '\n');
// add stylesheet definitions
WikEdApplyCSSwikEd.ApplyCSS(document, wikEdConfig['wikEd.config.mainEditCSS']);
// get button settings from saved settings
wikEdUsingwikEd.using = WikEdGetSavedSettingwikEd.GetSavedSetting('wikEdSummaryUsing', wikEdConfig['wikEd.config.usingPreset']);
wikEdUseWikEdwikEd.useWikEd = ! WikEdGetSavedSettingwikEd.GetSavedSetting('wikEdUseClassic', ! wikEdConfig['wikEd.config.useWikEdPreset']);
wikEdHighlightSyntaxwikEd.highlightSyntax = ! WikEdGetSavedSettingwikEd.GetSavedSetting('wikEdSyntaxOff', ! wikEdConfig['wikEd.config.highlightSyntaxPreset']);
wikEdFullScreenModewikEd.fullScreenMode = WikEdGetSavedSettingwikEd.GetSavedSetting('wikEdFullscreen', wikEdConfig['wikEd.config.fullScreenModePreset']);
wikEdCloseToolbarwikEd.closeToolbar = WikEdGetSavedSettingwikEd.GetSavedSetting('wikEdCloseToolbar', wikEdConfig['wikEd.config.closeToolbarPreset']);
wikEdRefHidewikEd.refHide = WikEdGetSavedSettingwikEd.GetSavedSetting('wikEdRefHide', wikEdConfig['wikEd.config.refHidePreset']);
wikEdDiffwikEd.diff = WikEdGetSavedSettingwikEd.GetSavedSetting('wikEdDiff', wikEdConfig['wikEd.config.diffPreset']);
wikEdTableModewikEd.tableMode = false;
// detect preview page
if (window.___location.search.match(/(\?|&)action=submit\b/) != null) {
wikEdPreviewPagewikEd.previewPage = true;
}
// no fullscreen for preview and upload pages
if ( (wikEdUploadEditwikEd.uploadEdit == true) || (wikEdPreviewPagewikEd.previewPage == true) ) {
wikEdFullScreenModewikEd.fullScreenMode = false;
}
// disable wikEd for Lupin's autoedit scripts
if (window.___location.search.match(/(\?|&)autoedit=/) != null) {
wikEdUseWikEdwikEd.useWikEd = false;
}
// disable wikEd for js pages
if (/\.js$/.test(wikEdWikiGlobals['wikEd.wikiGlobals.wgTitle']) == true) {
if ( (wikEdWikiGlobals['wikEd.wikiGlobals.wgCanonicalNamespace'] != 'User_talk') && (wikEdWikiGlobals['wikEd.wikiGlobals.wgCanonicalNamespace'] != 'Talk') ) {
wikEdNoSpellcheckwikEd.noSpellcheck = true;
if (wikEdOrigVersionwikEd.origVersion.length > 20000) {
wikEdUseWikEdwikEd.useWikEd = false;
}
else {
wikEdHighlightSyntaxwikEd.highlightSyntax = false;
}
}
// no highlighting for watchlist editing
if (wikEdWatchlistEditwikEd.watchlistEdit == true) {
wikEdNoSpellcheckwikEd.noSpellcheck = true;
wikEdHighlightSyntaxwikEd.highlightSyntax = false;
}
// disable spellchecker for textarea
if (wikEdNoSpellcheckwikEd.noSpellcheck == true) {
wikEdTextareawikEd.textarea.setAttribute('spellcheck', false);
}
var styleTextareaWrapperPosition;
var styleTextareaWrapperVisibility;
if (wikEdUseWikEdwikEd.useWikEd == true) {
styleFrameBody = 'display: block;';
styleFrameWrapperPosition = 'static';
}
var inputWrapperClass;
if (wikEdFullScreenModewikEd.fullScreenMode == true) {
inputWrapperClass = 'wikEdInputWrapperFull';
}
}
// check if we use the wikEdEditorwikEd.editor user interface of the vector skin
// wikEdWikiEditorwikEd.wikiEditor = document.getElementById('wikiEditor-ui');
wikEdWikiEditorwikEd.wikiEditor = WikEdGetElementsByClassNamewikEd.GetElementsByClassName('wikiEditor-ui', 'div')[0];
if (wikEdWikiEditorwikEd.wikiEditor == null) {
wikEd.textareaContainer = wikEd.textarea;
wikEdTextareaContainer = wikEdTextarea;
}
else {
wikEdWikiEditorFramewikEd.wikiEditorFrame = wikEdWikiEditorwikEd.wikiEditor.getElementsByTagName('IFRAME')[0];
wikEdWikiEditorTopwikEd.wikiEditorTop = WikEdGetElementsByClassNamewikEd.GetElementsByClassName('wikiEditor-ui-top', 'div')[0];
wikEdWikiEditorBarwikEd.wikiEditorBar = WikEdGetElementsByClassNamewikEd.GetElementsByClassName('wikiEditor-ui-toolbar', 'div')[0];
wikEdWikiEditorBottomwikEd.wikiEditorBottom = WikEdGetElementsByClassNamewikEd.GetElementsByClassName('wikiEditor-ui-bottom', 'div')[0];
wikEdWikiEditorTextwikEd.wikiEditorText = WikEdGetElementsByClassNamewikEd.GetElementsByClassName('wikiEditor-ui-text', 'div')[0];
wikEd.textareaContainer = wikEd.wikiEditor;
wikEdTextareaContainer = wikEdWikiEditor;
}
// create input wrapper, contains the whole fullscreen content
wikEdInputWrapperwikEd.inputWrapper = document.createElement('div');
wikEdInputWrapperwikEd.inputWrapper.id = 'wikEdInputWrapper';
wikEdInputWrapperwikEd.inputWrapper.className = inputWrapperClass;
wikEdTextareaContainerwikEd.textareaContainer.parentNode.insertBefore(wikEdInputWrapperwikEd.inputWrapper, wikEdTextareaContainerwikEd.textareaContainer);
// create editor wrapper, contains toolbar, textarea, toc, but not the summary
if (wikEdWikiEditorwikEd.wikiEditor != null) {
wikEd.editorWrapper = wikEd.wikiEditor;
wikEdEditorWrapper = wikEdWikiEditor;
}
else {
wikEdEditorWrapperwikEd.editorWrapper = document.createElement('div');
wikEdEditorWrapperwikEd.editorWrapper.id = 'wikEdEditorWrapper';
wikEdEditorWrapperwikEd.editorWrapper.className = 'wikEdEditorWrapper';
}
wikEdInputWrapperwikEd.inputWrapper.appendChild(wikEdEditorWrapperwikEd.editorWrapper);
// create toolbar wrapper
wikEdToolbarWrapperwikEd.toolbarWrapper = document.createElement('div');
wikEdToolbarWrapperwikEd.toolbarWrapper.id = 'wikEdToolbarWrapper';
wikEdToolbarWrapperwikEd.toolbarWrapper.className = 'wikEdToolbarWrapper';
wikEd.toolbar = document.getElementById('toolbar');
wikEdEditorWrapper.appendChild(wikEdToolbarWrapper);
if (wikEd.toolbar != null) {
wikEd.editorWrapper.appendChild(wikEd.toolbarWrapper);
}
else if (wikEd.wikiEditorBar != null) {
wikEd.wikiEditorBar.parentNode.insertBefore(wikEd.toolbarWrapper, wikEd.wikiEditorBar);
wikEd.toolbarWrapper.appendChild(wikEd.wikiEditorBar);
}
else {
wikEd.editorWrapper.appendChild(wikEd.toolbarWrapper);
}
// create captcha wrapper
wikEd.textBoxTable;
var wikEdTextBoxTable;
if (wikEdRearrangewikEd.rearrange == true) {
wikEdCaptchaWrapperwikEd.captchaWrapper = document.createElement('div');
wikEdCaptchaWrapperwikEd.captchaWrapper.id = 'wikEdCaptchaWrapper';
wikEdCaptchaWrapperwikEd.captchaWrapper.className = 'wikEdCaptchaWrapper';
wikEdEditorWrapperwikEd.editorWrapper.appendChild(wikEdCaptchaWrapperwikEd.captchaWrapper);
// fill captcha wrapper with elements between form and textarea (table)
wikEdTextBoxTablewikEd.textBoxTable = document.getElementById('textBoxTable');
if ( (wikEdUploadEditwikEd.uploadEdit == false) && (wikEdWatchlistEditwikEd.watchlistEdit == false) ) {
var node = wikEdEditFormwikEd.editForm.firstChild;
while (node != null) {
if ( (node == wikEdInputWrapperwikEd.inputWrapper) || (node == wikEdWikiEditorwikEd.wikiEditor) ) {
break;
}
var nextNode = node.nextSibling;
wikEdCaptchaWrapperwikEd.captchaWrapper.appendChild(node);
node = nextNode;
}
// create debug textarea wrapper
wikEdDebugWrapperwikEd.debugWrapper = document.createElement('div');
wikEdDebugWrapperwikEd.debugWrapper.id = 'wikEdDebugWrapper';
wikEdDebugWrapperwikEd.debugWrapper.className = 'wikEdDebugWrapper';
wikEdDebugWrapperwikEd.debugWrapper.style.visibility = 'hidden';
wikEdEditorWrapperwikEd.editorWrapper.appendChild(wikEdDebugWrapperwikEd.debugWrapper);
// create edit wrapper for textarea and frame wrapper
wikEdEditWrapperwikEd.editWrapper = document.createElement('div');
wikEdEditWrapperwikEd.editWrapper.id = 'wikEdEditWrapper';
wikEdEditWrapperwikEd.editWrapper.className = 'wikEdEditWrapper';
wikEdEditorWrapperwikEd.editorWrapper.appendChild(wikEdEditWrapperwikEd.editWrapper);
// create textarea wrapper
wikEdTextareaWrapperwikEd.textareaWrapper = document.createElement('div');
wikEdTextareaWrapperwikEd.textareaWrapper.id = 'wikEdTextareaWrapper';
wikEdTextareaWrapperwikEd.textareaWrapper.className = 'wikEdTextareaWrapper';
wikEdTextareaWrapperwikEd.textareaWrapper.style.position = styleTextareaWrapperPosition;
wikEdTextareaWrapperwikEd.textareaWrapper.style.visibility = styleTextareaWrapperVisibility;
wikEdEditWrapperwikEd.editWrapper.appendChild(wikEdTextareaWrapperwikEd.textareaWrapper);
// create frame wrapper
wikEdFrameWrapperwikEd.frameWrapper = document.createElement('div');
wikEdFrameWrapperwikEd.frameWrapper.id = 'wikEdFrameWrapper';
wikEdFrameWrapperwikEd.frameWrapper.className = 'wikEdFrameWrapper';
wikEdFrameWrapperwikEd.frameWrapper.style.position = styleFrameWrapperPosition;
wikEdFrameWrapperwikEd.frameWrapper.style.visibility = styleFrameWrapperVisibility;
wikEdEditWrapperwikEd.editWrapper.appendChild(wikEdFrameWrapperwikEd.frameWrapper);
// create console wrapper for buttons, summary, and submit
if (wikEdRearrangewikEd.rearrange == true) {
wikEdConsoleWrapperwikEd.consoleWrapper = document.createElement('div');
wikEdConsoleWrapperwikEd.consoleWrapper.id = 'wikEdConsoleWrapper';
wikEdConsoleWrapperwikEd.consoleWrapper.className = 'wikEdConsoleWrapper';
wikEdInputWrapperwikEd.inputWrapper.appendChild(wikEdConsoleWrapperwikEd.consoleWrapper);
}
// create buttons wrapper for wikEd buttons
if (wikEdWikiEditorwikEd.wikiEditor != null) {
wikEd.buttonsWrapper = wikEd.wikiEditorTop;
wikEdButtonsWrapper = wikEdWikiEditorTop;
}
else {
wikEdButtonsWrapperwikEd.buttonsWrapper = document.createElement('div');
wikEdButtonsWrapperwikEd.buttonsWrapper.id = 'wikEdButtonsWrapper';
wikEdButtonsWrapperwikEd.buttonsWrapper.className = 'wikEdButtonsWrapper';
}
wikEdEditorWrapperwikEd.editorWrapper.insertBefore(wikEdButtonsWrapperwikEd.buttonsWrapper, wikEdEditWrapperwikEd.editWrapper);
// create summary wrapper for summary, minor edit, and watch this page
if (wikEdRearrangewikEd.rearrange == true) {
wikEdSummaryWrapperwikEd.summaryWrapper = document.createElement('div');
wikEdSummaryWrapperwikEd.summaryWrapper.id = 'wikEdSummaryWrapper';
// add summary above the edit field if we add a new section (+ tab)
if (wikEdAddNewSectionwikEd.addNewSection == true) {
wikEdSummaryWrapperwikEd.summaryWrapper.className = 'wikEdSummaryWrapperTop';
wikEdInputWrapperwikEd.inputWrapper.insertBefore(wikEdSummaryWrapperwikEd.summaryWrapper, wikEdInputWrapperwikEd.inputWrapper.firstChild);
}
else {
wikEdSummaryWrapperwikEd.summaryWrapper.className = 'wikEdSummaryWrapper';
wikEdConsoleWrapperwikEd.consoleWrapper.appendChild(wikEdSummaryWrapperwikEd.summaryWrapper);
}
// create summary input wrapper
wikEdSummaryInputWrapperwikEd.summaryInputWrapper = document.createElement('div');
wikEdSummaryInputWrapperwikEd.summaryInputWrapper.id = 'wikEdSummaryInputWrapper';
wikEdSummaryInputWrapperwikEd.summaryInputWrapper.className = 'wikEdSummaryInputWrapper';
wikEdSummaryWrapperwikEd.summaryWrapper.appendChild(wikEdSummaryInputWrapperwikEd.summaryInputWrapper);
// create minor edit and watch page wrapper
wikEdSummaryOptionswikEd.summaryOptions = document.createElement('div');
wikEdSummaryOptionswikEd.summaryOptions.id = 'wikEdSummaryOptions';
wikEdSummaryOptionswikEd.summaryOptions.className = 'wikEdSummaryOptions';
wikEdSummaryWrapperwikEd.summaryWrapper.appendChild(wikEdSummaryOptionswikEd.summaryOptions);
// create submit wrapper for submit elements
wikEdSubmitWrapperwikEd.submitWrapper = document.createElement('div');
wikEdSubmitWrapperwikEd.submitWrapper.id = 'wikEdSubmitWrapper';
wikEdSubmitWrapperwikEd.submitWrapper.className = 'wikEdSubmitWrapper';
wikEdConsoleWrapperwikEd.consoleWrapper.appendChild(wikEdSubmitWrapperwikEd.submitWrapper);
// create submit buttons wrapper for submit buttons and help links
wikEdSubmitButtonsWrapperwikEd.submitButtonsWrapper = document.createElement('div');
wikEdSubmitButtonsWrapperwikEd.submitButtonsWrapper.id = 'wikEdSubmitButtonsWrapper';
wikEdSubmitButtonsWrapperwikEd.submitButtonsWrapper.className = 'wikEdSubmitButtonsWrapper';
wikEdSubmitWrapperwikEd.submitWrapper.appendChild(wikEdSubmitButtonsWrapperwikEd.submitButtonsWrapper);
}
// create preview wrapper for preview and diff box
wikEdLocalPrevWrapperwikEd.localPrevWrapper = document.createElement('div');
wikEdLocalPrevWrapperwikEd.localPrevWrapper.id = 'wikEdLocalPrevWrapper';
wikEdLocalPrevWrapperwikEd.localPrevWrapper.className = 'wikEdLocalPrevWrapper';
wikEdLocalPrevWrapperwikEd.localPrevWrapper.style.display = 'none';
if (wikEdRearrangewikEd.rearrange == true) {
wikEdInputWrapperwikEd.inputWrapper.appendChild(wikEdLocalPrevWrapperwikEd.localPrevWrapper);
}
else if (wikEdSaveButtonwikEd.saveButton != null) {
wikEdSaveButtonwikEd.saveButton.parentNode.appendChild(wikEdLocalPrevWrapperwikEd.localPrevWrapper);
}
else if (wikEdPreviewButtonwikEd.previewButton != null) {
wikEdPreviewButtonwikEd.previewButton.parentNode.appendChild(wikEdLocalPrevWrapperwikEd.localPrevWrapper);
}
else if (wikEdDiffPreviewButtonwikEd.diffPreviewButton != null) {
wikEdDiffPreviewButtonwikEd.diffPreviewButton.parentNode.appendChild(wikEdLocalPrevWrapperwikEd.localPrevWrapper);
}
// create insert wrapper for insert special chars links
if (wikEdRearrangewikEd.rearrange == true) {
wikEdInsertWrapperwikEd.insertWrapper = document.createElement('div');
wikEdInsertWrapperwikEd.insertWrapper.id = 'wikEdInsertWrapper';
wikEdInsertWrapperwikEd.insertWrapper.className = 'wikEdInsertWrapper';
wikEdInputWrapperwikEd.inputWrapper.appendChild(wikEdInsertWrapperwikEd.insertWrapper);
}
// append input wrapper to document
if (wikEdRearrangewikEd.rearrange == true) {
wikEdEditFormwikEd.editForm.insertBefore(wikEdInputWrapperwikEd.inputWrapper, wikEdEditFormwikEd.editForm.firstChild);
}
// create debug textarea and add to debug wrapper
wikEdDebugwikEd.debug = document.createElement('textarea');
wikEdDebugwikEd.debug.rows = 20;
wikEdDebugwikEd.debug.style.display = 'none';
wikEdDebugwikEd.debug.setAttribute('spellcheck', false);
wikEdDebugWrapperwikEd.debugWrapper.appendChild(wikEdDebugwikEd.debug);
// display startup error messages
if (wikEdConfig['wikEd.config.debugStartUp'] != '') {
WikEdDebugwikEd.Debug(wikEdConfig['wikEd.config.debugStartUp']);
}
// wikEdDiffwikEd.diff enhanced ajax diff
if (typeof(wikEdDiffTablewikEd.diffTable) == 'object') {
if ( (wikEdDiffTablewikEd.diffTable != null) && (wikEdDiffwikEd.diff == true) ) {
if (typeof(WikEdDiffwikEd.Diff) == 'function') {
WikEdDiffwikEd.Diff();
}
}
}
// add toolbar tohide toolbar wrapper
if (wikEd.closeToolbar == true) {
wikEdToolbar = document.getElementById('toolbar');
wikEd.toolbarWrapper.style.display = 'none';
if (wikEdToolbar == null) {
wikEdToolbar = wikEdWikiEditorBar;
}
if (wikEdCloseToolbar == true) {
wikEdToolbarWrapper.style.display = 'none';
}
else {
wikEdToolbarWrapperwikEd.toolbarWrapper.style.display = 'block';
}
// call wikibits:mwSetupToolbar() now because it would terminate with an error after setting textarea to display: none
if (wikEdToolbarwikEd.toolbar != null) {
if (wikEdToolbarwikEd.toolbar.getElementsByTagName('IMG').length == 0) {
if (typeof(mwSetupToolbar) == 'function') {
mwSetupToolbar();
WikEdRemoveEventListenerwikEd.RemoveEventListener(window, 'load', mwSetupToolbar, false);
}
}
// dropdowns from toolbar should go over wikEd toolbar
if (wikEdWikiEditorBarwikEd.wikiEditorBar != null) {
wikEdWikiEditorBarwikEd.wikiEditorBar.style.zIndex = '5';
}
var wpSummary = document.getElementsByName('wpSummary');
if (wpSummary.length > 0) {
wikEdEditOptionswikEd.editOptions = wpSummary[0].parentNode;
wikEdEditOptionswikEd.editOptions.className = 'wikEdEditOptions';
}
// add summary elements to summary input wrapper
if (wikEdRearrangewikEd.rearrange == true) {
wikEdSummaryLabelwikEd.summaryLabel = document.getElementById('wpSummaryLabel');
if (wikEdSummaryLabelwikEd.summaryLabel != null) {
wikEdSummaryInputWrapperwikEd.summaryInputWrapper.appendChild(wikEdSummaryLabelwikEd.summaryLabel);
}
wikEdSummaryTextwikEd.summaryText = document.getElementsByName('wpSummary')[0];
wikEdSummaryInputWrapperwikEd.summaryInputWrapper.appendChild(wikEdSummaryTextwikEd.summaryText);
}
// move editpage-copywarn out of summary wrapper
// needs to be done before appending editOptions to summary wrapper otherwise a linebreak stays (Mozilla bug)
if (wikEdRearrangewikEd.rearrange == true) {
var copywarn = document.getElementById('editpage-copywarn');
if (copywarn != null) {
wikEdInputWrapperwikEd.inputWrapper.parentNode.insertBefore(copywarn, wikEdInputWrapperwikEd.inputWrapper.nextSibling);
}
}
// add submit buttons to submit wrapper
if (wikEdRearrangewikEd.rearrange == true) {
var wpEditButtons = wikEdSaveButton.parentNode;
if (wikEd.saveButton != null) {
wikEdSubmitWrapper.insertBefore(wpEditButtons, wikEdSubmitButtonsWrapper);
wpEditButtons = wikEd.saveButton.parentNode;
}
}
else if (wikEd.previewButton != null) {
// move edit options after submit buttons; crashes Mozilla when appended after filling the iframe
wpEditButtons = wikEd.previewButton.parentNode;
if (wikEdRearrange == true) {
}
if (wikEdDiffPreviewButton != null) {
else if (wikEd.diffPreviewButton != null) {
wikEdDiffPreviewButton.parentNode.insertBefore(wikEdEditOptions, wikEdDiffPreviewButton.nextSibling);
wpEditButtons = wikEd.diffPreviewButton.parentNode;
}
// remove linebreak before minor edit checkbox
if (wpEditButtons!= null) {
var node = wikEdEditOptions.firstChild;
wikEd.submitWrapper.insertBefore(wpEditButtons, wikEd.submitButtonsWrapper);
while (node != null) {
wikEd.submitButtonsWrapper.appendChild(wpEditButtons);
if (node.tagName != null) {
if (node.tagName == 'BR') {
node.parentNode.removeChild(node);
break;
}
}
node = node.nextSibling;
}
}
}
// add textBoxTable or textarea to edit wrapper
if (wikEdTextBoxTablewikEd.textBoxTable != null) {
wikEdTextareaWrapperwikEd.textareaWrapper.appendChild(wikEdTextBoxTablewikEd.textBoxTable);
}
else if (wikEdWikiEditorwikEd.wikiEditor != null) {
wikEdTextareaWrapperwikEd.textareaWrapper.appendChild(wikEdWikiEditorBottomwikEd.wikiEditorBottom);
}
else {
wikEdTextareaWrapperwikEd.textareaWrapper.appendChild(wikEdTextareawikEd.textarea);
}
// set frame font family
var classFrameBody;
if (wikEdHighlightSyntaxwikEd.highlightSyntax == true) {
if (wikEdRefHidewikEd.refHide == true) {
classFrameBody = 'wikEdFrameBodyNewbie';
}
html += '</div>';
html += '</div>';
wikEdFrameWrapperwikEd.frameWrapper.innerHTML = html;
// old Mozilla versions crash when designmode is turned on before the frame has loaded completely
// but onload workaround has problems starting with Firefox 3.6 (bug 542727)
var onloadWorkaround = false;
if ( (wikEdMozillawikEd.mozilla == true) && (
(wikEdBrowserFlavorwikEd.browserFlavor == 'Firefox') && (wikEdBrowserVersionwikEd.browserVersion < 3.0) ||
(wikEdBrowserFlavorwikEd.browserFlavor == 'Netscape') && (wikEdBrowserVersionwikEd.browserVersion < 9.0) ||
(wikEdBrowserFlavorwikEd.browserFlavor == 'SeaMonkey') && (wikEdBrowserVersionwikEd.browserVersion < 2.0) ) ) {
onloadWorkaround = true;
}
// disable spellchecker in iframe
if (wikEdNoSpellcheckwikEd.noSpellcheck == true) {
html += ' spellcheck="false"';
}
if (wikEdReadOnlywikEd.readOnly == false) {
html += ' onload="var doc = window.document; doc.designMode = \'on\'; ';
}
html += '></body></html>';
wikEdFrameOuterwikEd.frameOuter = document.getElementById('wikEdFrameOuter');
wikEdFrameInnerwikEd.frameInner = document.getElementById('wikEdFrameInner');
wikEdFramewikEd.frame = document.getElementById('wikEdFrame');
wikEdFrameWindowwikEd.frameWindow = wikEdFramewikEd.frame.contentWindow;
wikEdFrameDocumentwikEd.frameDocument = wikEdFrameWindowwikEd.frameWindow.document;
// set frame width, border divs shrink around
wikEdFrameBorderHeightwikEd.frameBorderHeight = parseInt(WikEdGetStylewikEd.GetStyle(wikEdFrameOuterwikEd.frameOuter, 'borderTopWidth'), 10) + parseInt(WikEdGetStylewikEd.GetStyle(wikEdFrameOuterwikEd.frameOuter, 'borderBottomWidth'), 10) + parseInt(WikEdGetStylewikEd.GetStyle(wikEdFrameInnerwikEd.frameInner, 'borderTopWidth'), 10) + parseInt(WikEdGetStylewikEd.GetStyle(wikEdFrameInnerwikEd.frameInner, 'borderBottomWidth'), 10);
wikEdFrameBorderWidthwikEd.frameBorderWidth = parseInt(WikEdGetStylewikEd.GetStyle(wikEdFrameOuterwikEd.frameOuter, 'borderLeftWidth'), 10) + parseInt(WikEdGetStylewikEd.GetStyle(wikEdFrameOuterwikEd.frameOuter, 'borderRightWidth'), 10) + parseInt(WikEdGetStylewikEd.GetStyle(wikEdFrameInnerwikEd.frameInner, 'borderLeftWidth'), 10) + parseInt(WikEdGetStylewikEd.GetStyle(wikEdFrameInnerwikEd.frameInner, 'borderRightWidth'), 10);
wikEd.frameHeight = (wikEd.textareaOffsetHeightInitial - wikEd.frameBorderHeight) + 'px';
wikEdFrameHeight = (wikEdTextareaOffsetHeightInitial - wikEdFrameBorderHeight) + 'px';
wikEdFrameWidthwikEd.frameWidth = (wikEdEditorWrapperwikEd.editorWrapper.clientWidth - wikEdFrameBorderWidthwikEd.frameBorderWidth) + 'px';
wikEdFramewikEd.frame.style.height = wikEdFrameHeightwikEd.frameHeight;
wikEdFramewikEd.frame.style.width = wikEdFrameWidthwikEd.frameWidth;
// do not remember sie if started in fullscreen mode
if (wikEdFullScreenModewikEd.fullScreenMode == true) {
wikEdFrameHeightwikEd.frameHeight = 0;
wikEdFrameWidthwikEd.frameWidth = 0;
}
// turn on designmode before adding content
if ( (onloadWorkaround == false) && (wikEdReadOnlywikEd.readOnly == false) ) {
wikEdFrameDocumentwikEd.frameDocument.designMode = 'on';
try { wikEdFrameDocumentwikEd.frameDocument.execCommand('styleWithCSS', 0, false); } catch (e) {
try { wikEdFrameDocumentwikEd.frameDocument.execCommand('useCSS', 0, true); } catch (e) {
try { wikEdFrameDocumentwikEd.frameDocument.execCommand('styleWithCSS', false, false); } catch (e) {
}
}
// MS-IE needs styling for full width frame
if (wikEdMSIEwikEd.msie == true) {
////// wikEdFramewikEd.frame.style.width = wikEdTextareaWidthwikEd.textareaWidth + 'px';// 100%
}
// fill iframe with content
wikEdFrameDocumentwikEd.frameDocument.open();
wikEdFrameDocumentwikEd.frameDocument.write(html);
wikEdFrameDocumentwikEd.frameDocument.close();
wikEdFrameBodywikEd.frameBody = wikEdFrameDocumentwikEd.frameDocument.body;
// generate button bars and add them to the buttons wrapper
// form wrapper has been added against summary input submit defaulting to this button
if (wikEdReadOnlywikEd.readOnly == false) {
wikEdButtonBarFormatwikEd.buttonBarFormat = MakeButtonBar(wikEdConfig['wikEd.config.buttonBar']['format']);
wikEdButtonsWrapperwikEd.buttonsWrapper.appendChild(wikEdButtonBarFormatwikEd.buttonBarFormat);
wikEdButtonBarTextifywikEd.buttonBarTextify = MakeButtonBar(wikEdConfig['wikEd.config.buttonBar']['textify']);
wikEdButtonsWrapperwikEd.buttonsWrapper.appendChild(wikEdButtonBarTextifywikEd.buttonBarTextify);
}
wikEdButtonBarControlwikEd.buttonBarControl = MakeButtonBar(wikEdConfig['wikEd.config.buttonBar']['control']);
wikEdButtonsWrapperwikEd.buttonsWrapper.appendChild(wikEdButtonBarControlwikEd.buttonBarControl);
if (wikEdConfig['wikEd.config.buttonBar']['custom1'][6].length > 0) {
wikEdButtonBarCustom1wikEd.buttonBarCustom1 = MakeButtonBar(wikEdConfig['wikEd.config.buttonBar']['custom1']);
wikEdButtonsWrapperwikEd.buttonsWrapper.appendChild(wikEdButtonBarCustom1wikEd.buttonBarCustom1);
}
wikEdButtonBarFindwikEd.buttonBarFind = MakeButtonBar(wikEdConfig['wikEd.config.buttonBar']['find']);
wikEdButtonsWrapperwikEd.buttonsWrapper.appendChild(wikEdButtonBarFindwikEd.buttonBarFind);
if (wikEdReadOnlywikEd.readOnly == false) {
wikEdButtonBarFixwikEd.buttonBarFix = MakeButtonBar(wikEdConfig['wikEd.config.buttonBar']['fix']);
wikEdButtonsWrapperwikEd.buttonsWrapper.appendChild(wikEdButtonBarFixwikEd.buttonBarFix);
}
if (wikEdConfig['wikEd.config.buttonBar']['custom2'][6].length > 0) {
wikEdButtonBarCustom2wikEd.buttonBarCustom2 = MakeButtonBar(wikEdConfig['wikEd.config.buttonBar']['custom2']);
wikEdButtonsWrapperwikEd.buttonsWrapper.appendChild(wikEdButtonBarCustom2wikEd.buttonBarCustom2);
}
var br = document.createElement('br');
br.style.clear = 'both';
wikEdButtonsWrapperwikEd.buttonsWrapper.appendChild(br);
wikEdCaseSensitivewikEd.caseSensitive = document.getElementById('wikEdCaseSensitive');
wikEdRegExpwikEd.regExp = document.getElementById('wikEdRegExp');
wikEdFindAheadwikEd.findAhead = document.getElementById('wikEdFindAhead');
wikEdFindTextwikEd.findText = document.getElementById('wikEdFindText');
wikEdReplaceTextwikEd.replaceText = document.getElementById('wikEdReplaceText');
// add preview box top bar to submit wrapper
wikEdButtonBarPreviewwikEd.buttonBarPreview = MakeButtonBar(wikEdConfig['wikEd.config.buttonBar']['preview']);
if (wikEdRearrangewikEd.rearrange == true) {
wikEdSubmitWrapperwikEd.submitWrapper.insertBefore(wikEdButtonBarPreviewwikEd.buttonBarPreview, wikEdSubmitWrapperwikEd.submitWrapper.firstChild);
}
// add preview box and its bottom bar to preview wrapper
if (wikEdLocalPrevWrapperwikEd.localPrevWrapper != null) {
var div = document.createElement('div');
div.id = 'wikEdPreviewBoxOuter';
div.className = 'wikEdPreviewBoxOuter';
wikEdLocalPrevWrapperwikEd.localPrevWrapper.appendChild(div);
wikEdPreviewBoxwikEd.previewBox = document.createElement('div');
wikEdPreviewBoxwikEd.previewBox.id = 'wikEdPreviewBox';
wikEdPreviewBoxwikEd.previewBox.className = 'wikEdPreviewBox';
div.appendChild(wikEdPreviewBoxwikEd.previewBox);
wikEdButtonBarPreview2wikEd.buttonBarPreview2 = MakeButtonBar(wikEdConfig['wikEd.config.buttonBar']['preview2']);
wikEdLocalPrevWrapperwikEd.localPrevWrapper.appendChild(wikEdButtonBarPreview2wikEd.buttonBarPreview2);
}
if (wikiPreview != null) {
if (wikiPreview.firstChild != null) {
wikEdButtonBarJumpwikEd.buttonBarJump = MakeButtonBar(wikEdConfig['wikEd.config.buttonBar']['jump']);
wikiPreview.insertBefore(wikEdButtonBarJumpwikEd.buttonBarJump, wikiPreview.firstChild);
}
}
// add insert special chars to insert wrapper
if (wikEdInsertWrapperwikEd.insertWrapper != null) {
var wpSpecialchars = document.getElementById('editpage-specialchars');
if (wpSpecialchars != null) {
wikEdInsertWrapperwikEd.insertWrapper.appendChild(wpSpecialchars);
}
}
// add local preview button next to submit button
wikEdLocalPreviewwikEd.localPreview = document.createElement('button');
wikEdLocalPreviewwikEd.localPreview.id = 'wikEdLocalPreview';
wikEdLocalPreviewwikEd.localPreview.title = wikEdConfig['wikEd.config.text']['wikEdLocalPreview title'];
wikEdLocalPreviewwikEd.localPreview.className = 'wikEdLocalPreview';
var localPreviewImg = document.createElement('img');
localPreviewImg.id = 'wikEdLocalPreviewImg';
localPreviewImg.src = wikEdConfig['wikEd.config.image']['preview'];
localPreviewImg.alt = wikEdConfig['wikEd.config.text']['wikEdLocalPreviewImg alt'];
localPreviewImg.title = wikEdConfig['wikEd.config.text']['wikEdLocalPreview title'];
wikEdLocalPreviewwikEd.localPreview.appendChild(localPreviewImg);
if (wikEdPreviewButtonwikEd.previewButton != null) {
wikEdPreviewButtonwikEd.previewButton.parentNode.insertBefore(wikEdLocalPreviewwikEd.localPreview, wikEdPreviewButtonwikEd.previewButton.nextSibling);
}
else if (wikEdSaveButtonwikEd.saveButton != null) {
wikEdSaveButtonwikEd.saveButton.parentNode.insertBefore(wikEdLocalPreviewwikEd.localPreview, wikEdSaveButtonwikEd.saveButton.nextSibling);
}
// add local diff button next to submit button
if (wikEdDiffPreviewButtonwikEd.diffPreviewButton != null) {
wikEdLocalDiffwikEd.localDiff = document.createElement('button');
wikEdLocalDiffwikEd.localDiff.id = 'wikEdLocalDiff';
wikEdLocalDiffwikEd.localDiff.title = wikEdConfig['wikEd.config.text']['wikEdLocalDiff title'];
wikEdLocalDiffwikEd.localDiff.className = 'wikEdLocalDiff';
var localDiffImg = document.createElement('img');
localDiffImg.id = 'wikEdLocalDiffImg';
localDiffImg.src = wikEdConfig['wikEd.config.image']['diff'];
localDiffImg.alt = wikEdConfig['wikEd.config.text']['wikEdLocalDiffImg alt'];
localDiffImg.title = wikEdConfig['wikEd.config.text']['wikEdLocalDiff title'];
wikEdLocalDiffwikEd.localDiff.appendChild(localDiffImg);
wikEdDiffPreviewButtonwikEd.diffPreviewButton.parentNode.insertBefore(wikEdLocalDiffwikEd.localDiff, wikEdDiffPreviewButtonwikEd.diffPreviewButton.nextSibling);
}
// correct tab order between check boxes and submits
wikEdFramewikEd.frame.tabIndex = wikEdTextareawikEd.textarea.tabIndex;
// initialize image buttons
WikEdButtonwikEd.Button(document.getElementById('wikEdDiff'), 'wikEdDiff', null, wikEdDiffwikEd.diff);
WikEdButtonwikEd.Button(document.getElementById('wikEdRefHide'), 'wikEdRefHide', null, wikEdRefHidewikEd.refHide);
WikEdButtonwikEd.Button(document.getElementById('wikEdHighlightSyntax'), 'wikEdHighlightSyntax', null, wikEdHighlightSyntaxwikEd.highlightSyntax);
WikEdButtonwikEd.Button(document.getElementById('wikEdUseWikEd'), 'wikEdUseWikEd', null, wikEdUseWikEdwikEd.useWikEd);
WikEdButtonwikEd.Button(document.getElementById('wikEdCloseToolbar'), 'wikEdCloseToolbar', null, wikEdCloseToolbarwikEd.closeToolbar);
WikEdButtonwikEd.Button(document.getElementById('wikEdFullScreen'), 'wikEdFullScreen', null, wikEdFullScreenModewikEd.fullScreenMode);
WikEdButtonwikEd.Button(document.getElementById('wikEdUsing'), 'wikEdUsing', null, wikEdUsingwikEd.using);
WikEdButtonwikEd.Button(document.getElementById('wikEdCaseSensitive'), 'wikEdCaseSensitive', null, false);
WikEdButtonwikEd.Button(document.getElementById('wikEdRegExp'), 'wikEdRegExp', null, false);
WikEdButtonwikEd.Button(document.getElementById('wikEdFindAhead'), 'wikEdFindAhead', null, wikEdConfig['wikEd.config.findAheadSelected']);
WikEdButtonwikEd.Button(document.getElementById('wikEdClose'), 'wikEdClose', null, false, 'wikEdButton');
WikEdButtonwikEd.Button(document.getElementById('wikEdClose2'), 'wikEdClose2', null, false, 'wikEdButton');
WikEdButtonwikEd.Button(document.getElementById('wikEdTableMode'), 'wikEdTableMode', null, wikEdTableModewikEd.tableMode);
// hide typo fix button until typo fix rules are loaded and parsed
var wikEd.fixRegExTypo = document.getElementById('wikEdFixRegExTypo');
if (wikEd.fixRegExTypo != null) {
wikEd.fixRegExTypo.style.display = 'none';
}
// hide buttons if API is not available
if ( (wikEdWikiGlobals['wikEd.wikiGlobals.wgEnableAPI'] != true) && (wikEdWikiGlobals['wikEd.wikiGlobals.wgEnableAPI'] != 'true') ) {
var fixRedirect = document.getElementById('wikEdFixRedirect');
if (fixRedirect != null) {
// add a clear summary button left to the summary input field
if (wikEdSummaryTextwikEd.summaryText != null) {
var clearSummaryForm = document.createElement('form');
clearSummaryForm.id = 'wikEdClearSummaryForm';
clearSummaryForm.className = 'wikEdClearSummaryForm';
wikEdSummaryTextwikEd.summaryText.parentNode.insertBefore(clearSummaryForm, wikEdSummaryTextwikEd.summaryText);
wikEdClearSummarywikEd.clearSummary = document.createElement('button');
wikEdClearSummarywikEd.clearSummary.id = 'wikEdClearSummary';
wikEdClearSummarywikEd.clearSummary.className = 'wikEdClearSummary';
wikEdClearSummarywikEd.clearSummary.alt = wikEdConfig['wikEd.config.text']['wikEdClearSummary alt'];
wikEdClearSummarywikEd.clearSummary.title = wikEdConfig['wikEd.config.text']['wikEdClearSummary title'];
wikEdClearSummarywikEd.clearSummary.style.height = (wikEdSummaryTextwikEd.summaryText.clientHeight + 1) +'px';
clearSummaryForm.appendChild(wikEdClearSummarywikEd.clearSummary);
wikEdClearSummaryImgwikEd.clearSummaryImg = document.createElement('img');
wikEdClearSummaryImgwikEd.clearSummaryImg.id = 'wikEdClearSummaryImg';
wikEdClearSummaryImgwikEd.clearSummaryImg.src = wikEdConfig['wikEd.config.image']['clearSummary'];
wikEdClearSummaryImgwikEd.clearSummaryImg.alt = 'Clear summary';
wikEdClearSummarywikEd.clearSummary.appendChild(wikEdClearSummaryImgwikEd.clearSummaryImg);
// remember button width, might be without image
wikEdClearSummaryWidthwikEd.clearSummaryWidth = wikEdClearSummarywikEd.clearSummary.offsetWidth;
// make the summary a combo box
summaryComboInput.id = 'wikEdSummaryComboInput';
summaryComboInput.className = 'wikEdSummaryComboInput';
summaryComboInput = wikEdSummaryTextwikEd.summaryText.parentNode.insertBefore(summaryComboInput, wikEdSummaryTextwikEd.summaryText);
wikEdSummaryTextwikEd.summaryText = wikEdSummaryTextwikEd.summaryText.parentNode.removeChild(wikEdSummaryTextwikEd.summaryText);
wikEdSummaryTextwikEd.summaryText.className = 'wikEdSummaryText';
wikEdSummaryTextWidthwikEd.summaryTextWidth = wikEdSummaryWrapperwikEd.summaryWrapper.offsetWidth - wikEdSummaryInputWrapperwikEd.summaryInputWrapper.offsetWidth;
if (wikEdSummaryTextWidthwikEd.summaryTextWidth < 150) {
wikEdSummaryTextWidthwikEd.summaryTextWidth = 150;
}
wikEdSummaryTextwikEd.summaryText.style.width = wikEdSummaryTextWidthwikEd.summaryTextWidth + 'px';
wikEdSummarySelectwikEd.summarySelect = document.createElement('select');
wikEdSummarySelectwikEd.summarySelect.id = 'wikEdSummarySelect';
wikEdSummarySelectwikEd.summarySelect.className = 'wikEdSummarySelect';
summaryComboInput.appendChild(wikEdSummaryTextwikEd.summaryText);
summaryComboInput.appendChild(wikEdSummarySelectwikEd.summarySelect);
}
// shorten submit button texts
if (wikEdPreviewButtonwikEd.previewButton != null) {
wikEdPreviewButtonwikEd.previewButton.value = wikEdConfig['wikEd.config.text']['shortenedPreview'];
}
if (wikEdDiffPreviewButtonwikEd.diffPreviewButton != null) {
wikEdDiffPreviewButtonwikEd.diffPreviewButton.value = wikEdConfig['wikEd.config.text']['shortenedChanges'];
}
// set up combo input boxes with history
wikEdFieldHistwikEd.fieldHist ['find'] = [];
wikEdSavedNamewikEd.savedName['find'] = 'wikEdFindHistory';
wikEdInputElementwikEd.inputElement['find'] = new Object(wikEdFindTextwikEd.findText);
wikEdSelectElementwikEd.selectElement['find'] = new Object(document.getElementById('wikEdFindSelect'));
wikEdSelectElementwikEd.selectElement['find'].title = wikEdConfig['wikEd.config.text']['wikEdFindSelect title'];
wikEdFieldHistwikEd.fieldHist ['replace'] = [];
wikEdSavedNamewikEd.savedName['replace'] = 'wikEdReplaceHistory';
wikEdInputElementwikEd.inputElement['replace'] = new Object(wikEdReplaceTextwikEd.replaceText);
wikEdSelectElementwikEd.selectElement['replace'] = new Object(document.getElementById('wikEdReplaceSelect'));
wikEdSelectElementwikEd.selectElement['replace'].title = wikEdConfig['wikEd.config.text']['wikEdReplaceSelect title'];
if (wikEdSummaryInputWrapperwikEd.summaryInputWrapper != null) {
wikEdFieldHistwikEd.fieldHist ['summary'] = [];
wikEdSavedNamewikEd.savedName['summary'] = 'wikEdSummaryHistory';
wikEdInputElementwikEd.inputElement['summary'] = new Object(wikEdSummaryTextwikEd.summaryText);
wikEdSelectElementwikEd.selectElement['summary'] = new Object(document.getElementById('wikEdSummarySelect'));
wikEdSelectElementwikEd.selectElement['summary'].title = wikEdConfig['wikEd.config.text']['wikEdSummarySelect title'];
}
// adjust the select field widths to that of the text input fields
WikEdResizeComboInputwikEd.ResizeComboInput('find');
WikEdResizeComboInputwikEd.ResizeComboInput('replace');
WikEdResizeComboInputwikEd.ResizeComboInput('summary');
// hide the button bars per saved setting
if (wikEdButtonBarFormatwikEd.buttonBarFormat != null) {
wikEd.ButtonBarInit(wikEd.buttonBarFormat);
WikEdButtonBarInit(wikEdButtonBarFormat);
}
if (wikEdButtonBarTextifywikEd.buttonBarTextify != null) {
wikEd.ButtonBarInit(wikEd.buttonBarTextify);
WikEdButtonBarInit(wikEdButtonBarTextify);
}
if (wikEdButtonBarControlwikEd.buttonBarControl != null) {
wikEd.ButtonBarInit(wikEd.buttonBarControl);
WikEdButtonBarInit(wikEdButtonBarControl);
}
if (wikEdButtonBarCustom1wikEd.buttonBarCustom1 != null) {
wikEd.ButtonBarInit(wikEd.buttonBarCustom1);
WikEdButtonBarInit(wikEdButtonBarCustom1);
}
if (wikEdButtonBarFindwikEd.buttonBarFind != null) {
wikEd.ButtonBarInit(wikEd.buttonBarFind);
WikEdButtonBarInit(wikEdButtonBarFind);
}
if (wikEdButtonBarFixwikEd.buttonBarFix != null) {
wikEd.ButtonBarInit(wikEd.buttonBarFix);
WikEdButtonBarInit(wikEdButtonBarFix);
}
if (wikEdButtonBarCustom2wikEd.buttonBarCustom2 != null) {
wikEd.ButtonBarInit(wikEd.buttonBarCustom2);
WikEdButtonBarInit(wikEdButtonBarCustom2);
}
// display only the textarea or the iframe, dont change the frame
WikEdSetEditAreawikEd.SetEditArea(wikEdUseWikEdwikEd.useWikEd, true);
// add a link to the wikEd help page
if (wikEdRearrangewikEd.rearrange == true) {
if ( (wikEdConfig['wikEd.config.helpPageLink'] != '') && (wikEdConfig['wikEd.config.helpPageLink'] != null) ) {
var editHelpParent = wikEdDiffPreviewButtonwikEd.diffPreviewButton;
while (editHelpParent != null) {
if (editHelpParent.tagName == 'SPAN') {
if (editHelp != null) {
var wikEdHelpSpanwikEd.helpSpan = document.createElement('span');
wikEdHelpSpanwikEd.helpSpan.id = 'wikEdHelpSpan';
wikEdHelpSpanwikEd.helpSpan.className = 'wikEdHelpSpan';
wikEdHelpSpanwikEd.helpSpan.innerHTML = wikEdConfig['wikEd.config.helpPageLink'].replace(/\{wikEdHomeBaseUrlwikEd.homeBaseUrl\}/g, wikEdConfig['wikEd.config.homeBaseUrl']);
editHelpParent.insertBefore(wikEdHelpSpanwikEd.helpSpan, editHelp.nextSibling);
wikEdEditHelpwikEd.editHelp = wikEdHelpSpanwikEd.helpSpan.parentNode;
wikEdEditHelpwikEd.editHelp.id = 'wikEdEditHelp';
wikEdEditHelpwikEd.editHelp.className = 'wikEdEditHelp';
}
}
// copy page warnings above edit window
if (wikEdConfig['wikEd.config.doCloneWarnings'] == true) {
if ( (wikEdClonedWarningswikEd.clonedWarnings == false) && (wikEdPreviewPagewikEd.previewPage == false) && (/(.*\n){2}/.test(wikEdOrigVersionwikEd.origVersion) ) == true) {
var divs = document.getElementsByTagName('div');
var divWarnings = [];
for (var i = 0; i < divWarnings.length; i ++) {
var clone = divWarnings[i].cloneNode(true);
wikEdEditFormwikEd.editForm.insertBefore(clone, wikEdEditFormwikEd.editForm.firstChild);
}
wikEdClonedWarningswikEd.clonedWarnings = true;
}
}
// add frame stylesheet definition
wikEdDirectionwikEd.direction = WikEdGetStylewikEd.GetStyle(document.body, 'direction');
wikEdFrameBodywikEd.frameBody.style.direction = wikEdDirectionwikEd.direction;
WikEdApplyCSSwikEd.ApplyCSS(wikEdFrameDocumentwikEd.frameDocument, wikEdConfig['wikEd.config.frameCSS']);
wikEd.HighlightNamedHideButtonsStylesheet = new wikEd.StyleSheet(wikEd.frameDocument);
WikEdHighlightNamedHideButtonsStylesheet = new WikEdStyleSheet(wikEdFrameDocument);
// copy textarea background
if (WikEdGetStylewikEd.GetStyle(wikEdTextareawikEd.textarea, 'display') != 'none') {
wikEdFrameInnerwikEd.frameInner.style.backgroundColor = WikEdGetStylewikEd.GetStyle(wikEdTextareawikEd.textarea, 'backgroundColor');
}
// adjust font size (px)
wikEdTextSizeInitwikEd.textSizeInit = parseFloat(WikEdGetStylewikEd.GetStyle(wikEdTextareawikEd.textarea, 'fontSize')) * wikEdConfig['wikEd.config.textSizeAdjust'] / 100;
wikEd.textSize = wikEd.textSizeInit;
wikEdTextSize = wikEdTextSizeInit;
wikEdFrameBodywikEd.frameBody.style.fontSize = wikEdTextSizewikEd.textSize + 'px';
// copy the textarea content to the iframe
if (wikEdUseWikEdwikEd.useWikEd == true) {
WikEdUpdateFramewikEd.UpdateFrame();
}
// initialize IERange DOM range compatibility library
if (typeof(IERange) == 'function') {
IERange(wikEdFrameWindowwikEd.frameWindow, wikEdFrameDocumentwikEd.frameDocument);
}
// scroll to edit window and focus if it is not a preview page
if ( (scrollToEditFocus == true) && (wikEdPreviewPagewikEd.previewPage == false) ) {
// focus the input field
if (wikEdConfig['wikEd.config.focusEdit'] == true) {
if (wikEdUseWikEdwikEd.useWikEd == true) {
wikEdFrameWindowwikEd.frameWindow.focus();
}
else {
if (wikEdMSIEwikEd.msie == true) {
wikEdTextareawikEd.textarea.selection.empty();
}
else {
wikEdTextareawikEd.textarea.setSelectionRange(0, 0);
}
wikEdTextareawikEd.textarea.focus();
}
}
// scroll
if ( (wikEdFullScreenModewikEd.fullScreenMode == false) && (wikEdConfig['wikEd.config.scrollToEdit'] == true) ) {
window.scroll(0, WikEdGetOffsetTopwikEd.GetOffsetTop(wikEdEditFormwikEd.editForm) - 2);
}
}
// register edit button click events
for (var buttonId in wikEdEditButtonHandlerwikEd.editButtonHandler) {
if (wikEdEditButtonHandlerwikEd.editButtonHandler.hasOwnProperty(buttonId) == true) {
var buttonObj = document.getElementById(buttonId);
if (buttonObj != null) {
WikEdAddEventListenerwikEd.AddEventListener(buttonObj, 'click', WikEdEditButtonHandlerwikEd.EditButtonHandler, true);
}
}
// register summary shrinking event after loading the 'Clear summary' image handler
WikEdAddEventListenerwikEd.AddEventListener(wikEdClearSummaryImgwikEd.clearSummaryImg, 'load', WikEdShrinkSummaryHandlerwikEd.ShrinkSummaryHandler, true);
// register summary resize event for window resizing (MS IE bug: fires once always)
WikEdAddEventListenerwikEd.AddEventListener(window, 'resize', WikEdResizeWindowHandlerwikEd.ResizeWindowHandler, true);
// register frame events
WikEdAddEventListenerwikEd.AddEventListener(wikEdFrameDocumentwikEd.frameDocument, 'keydown', WikEdKeyFrameHandlerwikEd.KeyFrameHandler, true);
WikEdAddEventListenerwikEd.AddEventListener(wikEdFrameDocumentwikEd.frameDocument, 'keyup', WikEdKeyFrameHandlerwikEd.KeyFrameHandler, true);
WikEdAddEventListenerwikEd.AddEventListener(wikEdFrameDocumentwikEd.frameDocument, 'keypress', WikEdKeyFrameHandlerwikEd.KeyFrameHandler, true);
WikEdAddEventListenerwikEd.AddEventListener(wikEdFrameDocumentwikEd.frameDocument, 'mouseup', WikEdKeyFrameHandlerwikEd.KeyFrameHandler, true);
WikEdAddEventListenerwikEd.AddEventListener(wikEdFrameDocumentwikEd.frameDocument, 'keydown', WikEdKeyHandlerwikEd.KeyHandler, true);
WikEdAddEventListenerwikEd.AddEventListener(wikEdFrameDocumentwikEd.frameDocument, 'mousemove', WikEdResizeGripHandlerwikEd.ResizeGripHandler, true);
WikEdAddEventListenerwikEd.AddEventListener(wikEdFrameDocumentwikEd.frameDocument, 'dblclick', WikEdResizeFrameResetHandlerwikEd.ResizeFrameResetHandler, true);
// register document events
WikEdAddEventListenerwikEd.AddEventListener(document, 'keydown', WikEdKeyHandlerwikEd.KeyHandler, true);
// dblclick on wrapper events
WikEdAddEventListenerwikEd.AddEventListener(wikEdDebugWrapperwikEd.debugWrapper, 'dblclick', WikEdDebugHandlerwikEd.DebugHandler, true);
WikEdAddEventListenerwikEd.AddEventListener(wikEdLocalPrevWrapperwikEd.localPrevWrapper, 'dblclick', WikEdPrevWrapperHandlerwikEd.PrevWrapperHandler, true);
// register find ahead events
WikEdAddEventListenerwikEd.AddEventListener(wikEdFindTextwikEd.findText, 'keyup', WikEdFindAheadwikEd.FindAhead, true);
// register submit button events
WikEdAddEventListenerwikEd.AddEventListener(wikEdSaveButtonwikEd.saveButton, 'click', WikEdSaveButtonHandlerwikEd.SaveButtonHandler, true);
WikEdAddEventListenerwikEd.AddEventListener(wikEdPreviewButtonwikEd.previewButton, 'click', WikEdPreviewButtonHandlerwikEd.PreviewButtonHandler, true);
WikEdAddEventListenerwikEd.AddEventListener(wikEdDiffPreviewButtonwikEd.diffPreviewButton, 'click', wikEdDiffPreviewButtonHandlerwikEd.DiffPreviewButtonHandler, true);
WikEdAddEventListenerwikEd.AddEventListener(wikEdLocalPreviewwikEd.localPreview, 'click', WikEdLocalPreviewHandlerwikEd.LocalPreviewHandler, true);
WikEdAddEventListenerwikEd.AddEventListener(wikEdLocalDiffwikEd.localDiff, 'click', WikEdLocalDiffHandlerwikEd.LocalDiffHandler, true);
// unload (leaving page) events
WikEdAddEventListenerwikEd.AddEventListener(window, 'pagehide', WikEdUnloadHandlerwikEd.UnloadHandler, false);
// set button bar grip area events
if (wikEdButtonBarFormatwikEd.buttonBarFormat != null) {
WikEdAddEventListenerwikEd.AddEventListener(wikEdButtonBarFormatwikEd.buttonBarFormat.firstChild.firstChild, 'click', WikEdButtonBarGripHandlerwikEd.ButtonBarGripHandler, false);
}
if (wikEdButtonBarTextifywikEd.buttonBarTextify != null) {
WikEdAddEventListenerwikEd.AddEventListener(wikEdButtonBarTextifywikEd.buttonBarTextify.firstChild.firstChild, 'click', WikEdButtonBarGripHandlerwikEd.ButtonBarGripHandler, false);
}
if (wikEdButtonBarControlwikEd.buttonBarControl != null) {
WikEdAddEventListenerwikEd.AddEventListener(wikEdButtonBarControlwikEd.buttonBarControl.firstChild.firstChild, 'click', WikEdButtonBarGripHandlerwikEd.ButtonBarGripHandler, false);
}
if (wikEdButtonBarCustom1wikEd.buttonBarCustom1 != null) {
if (wikEdButtonBarCustom1wikEd.buttonBarCustom1.firstChild.firstChild != null) {
WikEdAddEventListenerwikEd.AddEventListener(wikEdButtonBarCustom1wikEd.buttonBarCustom1.firstChild.firstChild, 'click', WikEdButtonBarGripHandlerwikEd.ButtonBarGripHandler, false);
}
}
if (wikEdButtonBarFindwikEd.buttonBarFind != null) {
WikEdAddEventListenerwikEd.AddEventListener(wikEdButtonBarFindwikEd.buttonBarFind.firstChild.firstChild, 'click', WikEdButtonBarGripHandlerwikEd.ButtonBarGripHandler, false);
}
if (wikEdButtonBarFixwikEd.buttonBarFix != null) {
WikEdAddEventListenerwikEd.AddEventListener(wikEdButtonBarFixwikEd.buttonBarFix.firstChild.firstChild, 'click', WikEdButtonBarGripHandlerwikEd.ButtonBarGripHandler, false);
}
if (wikEdButtonBarCustom2wikEd.buttonBarCustom2 != null) {
if (wikEdButtonBarCustom2wikEd.buttonBarCustom2.firstChild.firstChild != null) {
WikEdAddEventListenerwikEd.AddEventListener(wikEdButtonBarCustom2wikEd.buttonBarCustom2.firstChild.firstChild, 'click', WikEdButtonBarGripHandlerwikEd.ButtonBarGripHandler, false);
}
}
// register combo box events
WikEdAddEventListenerwikEd.AddEventListener(wikEdSummarySelectwikEd.summarySelect, 'change', function() { WikEdChangeComboInputwikEd.ChangeComboInput('summary'); }, false);
WikEdAddEventListenerwikEd.AddEventListener(wikEdSummarySelectwikEd.summarySelect, 'focus', function() { WikEdSetComboOptionswikEd.SetComboOptions('summary'); }, false);
WikEdAddEventListenerwikEd.AddEventListener(wikEdSelectElementwikEd.selectElement['find'],'change', function() { WikEdChangeComboInputwikEd.ChangeComboInput('find'); }, false);
WikEdAddEventListenerwikEd.AddEventListener(wikEdSelectElementwikEd.selectElement['find'],'focus', function() { WikEdSetComboOptionswikEd.SetComboOptions('find'); }, false);
WikEdAddEventListenerwikEd.AddEventListener(wikEdSelectElementwikEd.selectElement['replace'],'change', function() { WikEdChangeComboInputwikEd.ChangeComboInput('replace'); }, false);
WikEdAddEventListenerwikEd.AddEventListener(wikEdSelectElementwikEd.selectElement['replace'],'focus', function() { WikEdSetComboOptionswikEd.SetComboOptions('replace'); }, false);
// register the clear summary click handler
WikEdAddEventListenerwikEd.AddEventListener(wikEdClearSummarywikEd.clearSummary, 'click', WikEdClearSummaryHandlerwikEd.ClearSummaryHandler, true);
// select the text on focus for find and replace fields
WikEdAddEventListenerwikEd.AddEventListener(wikEdFindTextwikEd.findText, 'focus', WikEdFindReplaceHandlerwikEd.FindReplaceHandler, true);
WikEdAddEventListenerwikEd.AddEventListener(wikEdReplaceTextwikEd.replaceText, 'focus', WikEdFindReplaceHandlerwikEd.FindReplaceHandler, true);
// tab / shift-tab between find and replace fields
WikEdAddEventListenerwikEd.AddEventListener(wikEdFindTextwikEd.findText, 'keydown', WikEdFindReplaceHandlerwikEd.FindReplaceHandler, true);
WikEdAddEventListenerwikEd.AddEventListener(wikEdReplaceTextwikEd.replaceText, 'keydown', WikEdFindReplaceHandlerwikEd.FindReplaceHandler, true);
// init MediaWiki file paths for use in regexps
if (wikEdWikiGlobals['wikEd.wikiGlobals.wgServer'] != null) {
wikEdServerwikEd.server = wikEdWikiGlobals['wikEd.wikiGlobals.wgServer'];
}
if (wikEdWikiGlobals['wikEd.wikiGlobals.wgArticlePath'] != null) {
wikEdArticlePathwikEd.articlePath = wikEdWikiGlobals['wikEd.wikiGlobals.wgArticlePath'];
}
if (wikEdWikiGlobals['wikEd.wikiGlobals.wgScriptPath'] != null) {
wikEdScriptPathwikEd.scriptPath = wikEdWikiGlobals['wikEd.wikiGlobals.wgScriptPath'];
}
if (wikEdWikiGlobals['wikEd.wikiGlobals.wgScript'] != null) {
wikEdScriptwikEd.script = wikEdWikiGlobals['wikEd.wikiGlobals.wgScript'];
}
wikEdArticlePathwikEd.articlePath = wikEdArticlePathwikEd.articlePath.replace(wikEdServerwikEd.server, '');
wikEdScriptPathwikEd.scriptPath = wikEdScriptPathwikEd.scriptPath.replace(wikEdServerwikEd.server, '');
wikEdArticlePathwikEd.articlePath = wikEdArticlePathwikEd.articlePath.replace(/\$1$/, '');
wikEdScriptPathwikEd.scriptPath = wikEdScriptPathwikEd.scriptPath.replace(/\/?$/, '/');
wikEdScriptNamewikEd.scriptName = wikEdScriptwikEd.script.replace(wikEdScriptPathwikEd.scriptPath, '');
wikEd.scriptURL = wikEd.server + wikEd.scriptPath;
wikEdScriptURL = wikEdServer + wikEdScriptPath;
// prepare for use in regexps
wikEdServerwikEd.server = wikEdServerwikEd.server.replace(/(\W)/g, '\\$1');
wikEdArticlePathwikEd.articlePath = wikEdArticlePathwikEd.articlePath.replace(/(\W)/g, '\\$1');
wikEdScriptwikEd.script = wikEdScriptwikEd.script.replace(/(\W)/g, '\\$1');
wikEdScriptPathwikEd.scriptPath = wikEdScriptPathwikEd.scriptPath.replace(/(\W)/g, '\\$1');
wikEdScriptNamewikEd.scriptName = wikEdScriptNamewikEd.scriptName.replace(/(\W)/g, '\\$1');
// check if dynamically inserted addon tags have to be removed: Web of Trust (WOT)
if (document.getElementById('wot-logo') != null) {
wikEdCleanNodeswikEd.cleanNodes = true;
}
// fullscreen mode
if (wikEdFullScreenModewikEd.fullScreenMode == true) {
WikEdFullScreenwikEd.FullScreen(wikEdFullScreenModewikEd.fullScreenMode, true);
}
// override the insertTags function in wikibits.js used by the standard button toolbar and the editpage special chars
if (typeof(insertTags) == 'function') {
if (WikEdInsertTagsOriginalwikEd.InsertTagsOriginal == null) {
WikEdInsertTagsOriginalwikEd.InsertTagsOriginal = insertTags;
}
insertTags = windowwikEd.WikEdInsertTagsInsertTags;
}
else {
window.insertTags = windowwikEd.WikEdInsertTagsInsertTags;
}
if (typeof(jQuery) == 'function') {
jQuery('#wpTextbox1').bind('encapsulateSelection', function(e, before, inside, after) {
if (wikEdUseWikEdwikEd.useWikEd == true) {
WikEdInsertTagswikEd.InsertTags(before, after, inside);
}
});
// override insertAtCursor function in wikia.com MediaWiki:Functions.js
if (typeof(insertAtCursor) == 'function') {
if (WikEdInsertAtCursorOriginalwikEd.InsertAtCursorOriginal == null) {
WikEdInsertAtCursorOriginalwikEd.InsertAtCursorOriginal = insertAtCursor;
}
insertAtCursor = windowwikEd.WikEdInsertAtCursorInsertAtCursor;
}
// reset error indicator
WikEdSetLogowikEd.SetLogo();
wikEdTurnedOnwikEd.turnedOn = true;
// get frame resize grip image dimensions
var resizeGripImage = document.createElement('img');
resizeGripImage.id = 'wikEdResizeGrip';
WikEdAddEventListenerwikEd.AddEventListener(resizeGripImage, 'load', WikEdResizeGripLoadHandlerwikEd.ResizeGripLoadHandler, true);
resizeGripImage.src = wikEdConfig['wikEd.config.image']['resizeGrip'];
// run scheduled custom functions
WikEdExecuteHookwikEd.ExecuteHook(wikEdConfig['wikEd.config.setupHook']);
// load and parse RegExTypoFix rules if the button is enabled
wikEd.LoadTypoFixRules();
WikEdLoadTypoFixRules();
// done with setup and turn-on
//
// WikEdAutoUpdatewikEd.AutoUpdate: check for the latest version and force-reload to update
//
windowwikEd.WikEdAutoUpdateAutoUpdate = function() {
// check only on non-interaction pages
// check if autoupdate is enabled
if (wikEdConfig['wikEd.config.autoUpdate'] != true) {
return;
}
// check for forced update check
var forcedUpdate = false;
if (wikEdConfig['wikEd.config.forcedUpdate'] != '') {
// get version numbers from strings
var currentVersion = WikEdVersionToNumberwikEd.VersionToNumber(wikEdProgramVersionwikEd.programVersion);
var forcedVersion = WikEdVersionToNumberwikEd.VersionToNumber(wikEdConfig['wikEd.config.forcedUpdate']);
// schedule forced update check
// get date of last update check
var lastCheckStr = WikEdGetPersistentwikEd.GetPersistent('wikEdAutoUpdate');
var lastCheckDate = new Date(lastCheckStr);
// fix missing or corrupt saved setting
if (isNaN(lastCheckDate.valueOf()) == true) {
WikEdSetPersistentwikEd.SetPersistent('wikEdAutoUpdate', 'January 1, 1970', 0, '/');
return;
}
// get the hours since last update check
var diffHours = (currentDate - lastCheckDate) / 1000 / 60 / 60;
if (wikEdGreasemonkeywikEd.greasemonkey == true) {
if (diffHours > wikEdConfig['wikEd.config.autoUpdateHoursGM']) {
regularUpdate = true;
}
}
else if (diffHours > wikEdConfig['wikEd.config.autoUpdateHours']) {
regularUpdate = true;
}
// save current update check date
WikEdSetPersistentwikEd.SetPersistent('wikEdAutoUpdate', currentDate.toUTCString(), 0, '/');
// make the ajax request
var requestMethod = 'GET';
var requestUrl = wikEdConfig['wikEd.config.autoUpdateUrl'];
var postFields = null;
var overrideMimeType = null;
WikEdAjaxRequestwikEd.AjaxRequest(requestMethod, requestUrl, postFields, overrideMimeType, function(ajax, obj) {
// get response
// get version numbers from strings
var currentVersion = WikEdVersionToNumberwikEd.VersionToNumber(wikEdProgramVersionwikEd.programVersion);
var newVersion = WikEdVersionToNumberwikEd.VersionToNumber(html);
// check if downloaded version is newer and perform update
if ( (currentVersion != null) && (newVersion != null) ) {
if (newVersion > currentVersion) {
WikEdDoUpdatewikEd.DoUpdate();
}
}
//
// WikEdVersionToNumberwikEd.VersionToNumber: parse version string (1.22.333a) into number 122333097
//
windowwikEd.WikEdVersionToNumberVersionToNumber = function(versionStr) {
var ver = versionStr.match(/(\d+)\.(\d+)\.(\d+)(\w?)/);
//
// WikEdDoUpdatewikEd.DoUpdate: actually perform update
//
windowwikEd.WikEdDoUpdateDoUpdate = function() {
// update Greasemonkey script by navigating to the script code page
if (wikEdGreasemonkeywikEd.greasemonkey == true) {
var updatePopup = wikEdConfig['wikEd.config.text']['wikEdGreasemonkeyAutoUpdate'];
updatePopup = updatePopup.replace(/\{updateURL\}/g, wikEdConfig['wikEd.config.autoUpdateUrl']);
alert(updatePopup);
window.___location.href = wikEdConfig['wikEd.config.autoUpdateScriptUrl'];
}
//
// WikEdLoadTypoFixRuleswikEd.LoadTypoFixRules: load and parse RegExTypoFix rules if the button is enabled
//
windowwikEd.WikEdLoadTypoFixRulesLoadTypoFixRules = function() {
// load RegExTypoFix rules per Ajax if enabled
if ( (wikEdConfig['wikEd.config.regExTypoFix'] == false) || (wikEdReadOnlywikEd.readOnly == true) || (wikEdTypoRulesFindwikEd.typoRulesFind.length > 0) ) {
return;
}
// make the ajax request
var requestMethod = 'GET';
var requestUrl = wikEdConfig['wikEd.config.regExTypoFixURL'];
var postFields = null;
var overrideMimeType = null;
WikEdAjaxRequestwikEd.AjaxRequest(requestMethod, requestUrl, postFields, overrideMimeType, function(ajax) {
// get response
// save regexp and replace
wikEdTypoRulesFindwikEd.typoRulesFind.push(regExpFind);
wikEdTypoRulesReplacewikEd.typoRulesReplace.push(regExpMatch[3]);
}
// display typo fix button
if (wikEdTypoRulesFindwikEd.typoRulesFind.length > 0) {
if (wikEd.fixRegExTypo != null) {
document.getElementById('wikEdFixRegExTypo').style.display = 'inline';
wikEd.fixRegExTypo.style.display = 'inline';
}
}
return;
//
// WikEdEditButtonHandlerwikEd.EditButtonHandler: handler for clicks on edit buttons
//
windowwikEd.WikEdEditButtonHandlerEditButtonHandler = function(event) {
// event compatibility fixes
event = WikEdEventwikEd.EventWrapper(event, this);
if (event == null) {
return;
objId = obj.id;
eventShiftKey = event.shiftKey;
eval(wikEd.editButtonHandler[objId]);
eval(wikEdEditButtonHandler[objId]);
return;
};
//
// WikEdShrinkSummaryHandlerwikEd.ShrinkSummaryHandler: shrink the summary after loading the 'Clear summary' image
//
windowwikEd.WikEdShrinkSummaryHandlerShrinkSummaryHandler = function(event) {
var diffWidth = wikEdClearSummarywikEd.clearSummary.offsetWidth - wikEdClearSummaryWidthwikEd.clearSummaryWidth;
// Firefox < 3.0
if ( typeof(wikEdInputElementwikEd.inputElement['summary'].clientLeft) == 'undefined' ) {
wikEdInputElementwikEd.inputElement['summary'].style.width = (wikEdInputElementwikEd.inputElement['summary'].clientWidth - diffWidth) + 'px';
wikEdSelectElementwikEd.selectElement['summary'].style.width = (wikEdSelectElementwikEd.selectElement['summary'].clientWidth - diffWidth) + 'px';
}
// Firefox >= 3.0
else {
wikEdInputElementwikEd.inputElement['summary'].style.width = (wikEdInputElementwikEd.inputElement['summary'].clientWidth - diffWidth) + 'px';
wikEdSelectElementwikEd.selectElement['summary'].style.width = (wikEdSelectElementwikEd.selectElement['summary'].clientWidth - diffWidth + 3) + 'px';
}
wikEdClearSummaryWidthwikEd.clearSummaryWidth = wikEdClearSummarywikEd.clearSummary.offsetWidth;
return;
};
//
// WikEdResizeWindowHandlerwikEd.ResizeWindowHandler: adjust the summary width after resizing the window
//
windowwikEd.WikEdResizeWindowHandlerResizeWindowHandler = function(event) {
// adjust frame size
wikEd.frameHeight = (wikEd.textareaOffsetHeightInitial - wikEd.frameBorderHeight) + 'px';
wikEdFrameHeight = (wikEdTextareaOffsetHeightInitial - wikEdFrameBorderHeight) + 'px';
wikEdFrameWidthwikEd.frameWidth = (wikEdEditorWrapperwikEd.editorWrapper.clientWidth - wikEdFrameBorderWidthwikEd.frameBorderWidth) + 'px';
wikEdFramewikEd.frame.style.height = wikEdFrameHeightwikEd.frameHeight;
wikEdFramewikEd.frame.style.width = wikEdFrameWidthwikEd.frameWidth;
wikEd.ResizeSummary();
WikEdResizeSummary();
return;
};
//
// WikEdUnloadHandlerwikEd.UnloadHandler: save editing frame to cached textarea
//
windowwikEd.WikEdUnloadHandlerUnloadHandler = function(event) {
// event compatibility fixes
event = WikEdEventwikEd.EventWrapper(event, this);
if (event == null) {
return;
// update textarea if not already done in submit handlers
if (wikEdUseWikEdwikEd.useWikEd == true) {
if (wikEdTextareaUpdatedwikEd.textareaUpdated != true) {
WikEdUpdateTextareawikEd.UpdateTextarea();
}
}
//
// WikEdSaveButtonHandlerwikEd.SaveButtonHandler: 'Save page' onsubmit click handler for submit button
//
windowwikEd.WikEdSaveButtonHandlerSaveButtonHandler = function(event) {
WikEdRemoveEventListenerwikEd.RemoveEventListener(wikEdSaveButtonwikEd.saveButton, 'click', WikEdSaveButtonHandlerwikEd.SaveButtonHandler, true);
// update textarea
if (wikEdUseWikEdwikEd.useWikEd == true) {
wikEd.UpdateTextarea();
WikEdUpdateTextarea();
wikEdTextareaUpdatedwikEd.textareaUpdated = true;
}
// check for interfering scripts or gadgets: mwEmbed for file uploads
if ( (wikEdUploadEditwikEd.uploadEdit == true) && (typeof(MW_EMBED_VERSION) != 'undefined') ) {
WikEdAddEventListenerwikEd.AddEventListener(wikEdSaveButtonwikEd.saveButton, 'click', WikEdSaveButtonHandlerwikEd.SaveButtonHandler, true);
return;
}
// add "using wikEd" to summary, not for adding a new section (+ tab)
if (wikEdSummaryTextwikEd.summaryText != null) {
var text = wikEdSummaryTextwikEd.summaryText.value;
text = text.replace(/^[, ]+/, '');
text = text.replace(/[, ]+$/, '');
WikEdAddToHistorywikEd.AddToHistory('summary');
if ( (wikEdUsingwikEd.using == true) && (text != '') ) {
if (text.lastIndexOf(wikEdConfig['wikEd.config.summaryUsing']) < 0) {
if (wikEdAddNewSectionwikEd.addNewSection != true) {
text += ' ' + wikEdConfig['wikEd.config.summaryUsing'];
}
}
}
wikEdSummaryTextwikEd.summaryText.value = text;
}
// submit
wikEdSaveButtonwikEd.saveButton.click();
// reinstate handler in case the browser back button will be used
WikEdAddEventListenerwikEd.AddEventListener(wikEdSaveButtonwikEd.saveButton, 'click', WikEdSaveButtonHandlerwikEd.SaveButtonHandler, true);
return;
//
// WikEdPreviewButtonHandlerwikEd.PreviewButtonHandler: 'Show preview' click handler
//
windowwikEd.WikEdPreviewButtonHandlerPreviewButtonHandler = function(event) {
if (wikEdUseWikEdwikEd.useWikEd == true) {
wikEd.UpdateTextarea();
WikEdUpdateTextarea();
wikEdTextareaUpdatedwikEd.textareaUpdated = true;
}
return;
//
// wikEdDiffPreviewButtonHandlerwikEd.DiffPreviewButtonHandler: 'Show changes' click handler
//
windowwikEd.wikEdDiffPreviewButtonHandlerDiffPreviewButtonHandler = function(event) {
if (wikEdFullScreenModewikEd.fullScreenMode == true) {
WikEdFullScreenwikEd.FullScreen(false);
}
if (wikEdUseWikEdwikEd.useWikEd == true) {
wikEd.UpdateTextarea();
WikEdUpdateTextarea();
wikEdTextareaUpdatedwikEd.textareaUpdated = true;
}
//
// WikEdLinkifyHandlerwikEd.LinkifyHandler: open innermost highlighted link in new window/tab on ctrl/meta-click
//
windowwikEd.WikEdLinkifyHandlerLinkifyHandler = function(event) {
// event compatibility fixes
event = WikEdEventwikEd.EventWrapper(event, this);
if (event == null) {
return;
if (linkId.indexOf('wikEdLinkify') == 0) {
var linkIdNo = linkId.replace(/\D/g, '');
var linkUrl = wikEdLinkifyArraywikEd.linkifyArray[linkIdNo];
if (linkUrl != null) {
event.stopPropagation();
//
// WikEdLocalPreviewHandlerwikEd.LocalPreviewHandler: local 'Show preview' image button click handler
//
windowwikEd.WikEdLocalPreviewHandlerLocalPreviewHandler = function(event) {
// event compatibility fixes
event = WikEdEventwikEd.EventWrapper(event, this);
if (event == null) {
return;
event.preventDefault();
WikEdButtonwikEd.Button(wikEdLocalPreviewwikEd.localPreview, 'wikEdLocalPreview');
return;
};
//
// WikEdLocalDiffHandlerwikEd.LocalDiffHandler: local 'Show changes' image button click handler
//
windowwikEd.WikEdLocalDiffHandlerLocalDiffHandler = function(event) {
// event compatibility fixes
event = WikEdEventwikEd.EventWrapper(event, this);
if (event == null) {
return;
event.preventDefault();
WikEdButtonwikEd.Button(wikEdLocalDiffwikEd.localDiff, 'wikEdLocalDiff');
return;
};
//
// WikEdButtonBarGripHandlerwikEd.ButtonBarGripHandler: click, mouseover handler, see also WikEdButtonBarInitwikEd.ButtonBarInit()
//
windowwikEd.WikEdButtonBarGripHandlerButtonBarGripHandler = function(event) {
// event compatibility fixes
event = WikEdEventwikEd.EventWrapper(event, this);
if (event == null) {
return;
barInnerWrapper.className = 'wikEdButtonBarInnerWrapperHidden';
gripWrapper.className = 'wikEdButtonBarGripWrapperHidden';
wikEdButtonsWrapperWidthwikEd.buttonsWrapperWidth[bar.id] = buttonsWrapper.offsetWidth;
buttonsWrapper.style.display = 'none';
WikEdAddEventListenerwikEd.AddEventListener(grip, 'mouseover', WikEdButtonBarGripHandlerwikEd.ButtonBarGripHandler, false);
WikEdSetPersistentwikEd.SetPersistent(bar.id + 'Hidden', '1', 0, '/');
}
gripWrapper.className = 'wikEdButtonBarGripWrapperVisible';
buttonsWrapper.style.display = 'block';
WikEdRemoveEventListenerwikEd.RemoveEventListener(grip, 'mouseover', WikEdButtonBarGripHandlerwikEd.ButtonBarGripHandler, false);
WikEdSetPersistentwikEd.SetPersistent(bar.id + 'Hidden', '0', 0, '/');
}
}
else if (event.type == 'mouseover') {
if (buttonsWrapper.className == 'wikEdButtonBarButtonsWrapperHidden') {
WikEdAddEventListenerwikEd.AddEventListener(bar, 'mouseout', WikEdButtonBarHandlerwikEd.ButtonBarHandler, false);
// show buttons to the right
if (bar.offsetParent.clientWidth > grip.offsetLeft + grip.offsetWidth + wikEdButtonsWrapperWidthwikEd.buttonsWrapperWidth[bar.id]) {
buttonsWrapper.style.left = (grip.offsetLeft + grip.offsetWidth) + 'px';
}
// show buttons to the left
else {
buttonsWrapper.style.left = (gripWrapper.offsetLeft - wikEdButtonsWrapperWidthwikEd.buttonsWrapperWidth[bar.id]) + 'px';
}
// a mozilla bug sometimes gives offsetTop - 1 when the wikEdToolbarWrapperwikEd.toolbarWrapper is hidden
buttonsWrapper.style.top = gripWrapper.offsetTop + 'px';
buttonsWrapper.style.position = 'absolute';
//
// WikEdButtonBarHandlerwikEd.ButtonBarHandler: mouseout handler
//
windowwikEd.WikEdButtonBarHandlerButtonBarHandler = function(event) {
// event compatibility fixes
event = WikEdEventwikEd.EventWrapper(event, this);
if (event == null) {
return;
)
) {
WikEdRemoveEventListenerwikEd.RemoveEventListener(bar, 'mouseout', WikEdButtonBarHandlerwikEd.ButtonBarHandler, false);
buttonsWrapper.style.display = 'none';
buttonsWrapper.style.position = 'static';
//
windowwikEd.WikEdClearSummaryHandlerClearSummaryHandler = function(event) {
// event compatibility fixes
event = WikEdEventwikEd.EventWrapper(event, this);
if (event == null) {
return;
// clear the summary if it is only a paragraph name
if ( /^\/\* .*? \*\/ *$/.test(wikEdSummaryTextwikEd.summaryText.value) == true) {
wikEdSummaryTextwikEd.summaryText.value = '';
}
// clear the summary but leave paragraph names
else {
wikEdSummaryTextwikEd.summaryText.value = wikEdSummaryTextwikEd.summaryText.value.replace(/^((\/\* .*? \*\/ *)?).*()/,
function (p, p1, p2) {
if (p1.length > 0) {
);
}
wikEdSummaryTextwikEd.summaryText.focus();
return;
};
//
// WikEdFindReplaceHandlerwikEd.FindReplaceHandler: find and replace: tab and shift-tab between fields, select on focus
//
windowwikEd.WikEdFindReplaceHandlerFindReplaceHandler = function(event) {
// event compatibility fixes
event = WikEdEventwikEd.EventWrapper(event, this);
if (event == null) {
return;
if (event.type == 'keydown') {
if (event.keyCode == 9) {
if (event.target == wikEdFindTextwikEd.findText) {
event.preventDefault();
WikEdRemoveEventListenerwikEd.RemoveEventListener(wikEdReplaceTextwikEd.replaceText, 'focus', WikEdFindReplaceHandlerwikEd.FindReplaceHandler, true);
wikEdReplaceTextwikEd.replaceText.focus();
WikEdAddEventListenerwikEd.AddEventListener(wikEdReplaceTextwikEd.replaceText, 'focus', WikEdFindReplaceHandlerwikEd.FindReplaceHandler, true);
}
else if (event.target == wikEdReplaceTextwikEd.replaceText) {
event.preventDefault();
WikEdRemoveEventListenerwikEd.RemoveEventListener(wikEdFindTextwikEd.findText, 'focus', WikEdFindReplaceHandlerwikEd.FindReplaceHandler, true);
wikEdFindTextwikEd.findText.focus();
WikEdAddEventListenerwikEd.AddEventListener(wikEdFindTextwikEd.findText, 'focus', WikEdFindReplaceHandlerwikEd.FindReplaceHandler, true);
}
}
// select on focus
else if (event.type == 'focus') {
if (wikEdMSIEwikEd.msie == true) {
}
//
// WikEdKeyFrameHandlerwikEd.KeyFrameHandler: event handler for key and mouse events in the frame
//
windowwikEd.WikEdKeyFrameHandlerKeyFrameHandler = function(event) {
// event compatibility fixes
event = WikEdEventwikEd.EventWrapper(event, this);
if (event == null) {
return;
}
if (wikEdUseWikEdwikEd.useWikEd == true) {
switch (event.type) {
// focus the next form element
if (wikEdAddNewSectionwikEd.addNewSection == true) {
document.getElementById('wpMinoredit').focus();
}
else {
wikEdSummaryTextwikEd.summaryText.focus();
}
// scroll to text input top
if (wikEdFullScreenModewikEd.fullScreenMode == false) {
window.scroll(0, WikEdGetOffsetTopwikEd.GetOffsetTop(wikEdInputWrapperwikEd.inputWrapper));
}
}
case 46: // del
case 8: // backspace
WikEdAntiHighlightBleedingwikEd.AntiHighlightBleeding(new Object());
}
}
// grey out inactive buttons
case 'mouseup':
WikEdAntiHighlightBleedingwikEd.AntiHighlightBleeding(new Object());
case 'keypress':
WikEdInactiveButtonswikEd.InactiveButtons();
}
}
//
windowwikEd.WikEdAntiHighlightBleedingAntiHighlightBleeding = function(obj, editButtonInsert) {
// check if disabled
if (wikEdConfig['wikEd.config.antiHighlightBleeding'] != true) {
return;
}
// get selection object
if (obj.sel == null) {
obj.sel = WikEdGetSelectionwikEd.GetSelection();
}
};
if ( (focusNode.nodeName != '#text') || (focusOffset == 0) ) {
WikEdGetNextTextNodewikEd.GetNextTextNode(objLeft, focusNode, 0);
}
if (objLeft.foundNode != null) {
var rightLevel = 0;
if ( (focusNode.nodeName != '#text') || (focusOffset == focusNode.textContent.length) ) {
WikEdGetNextTextNodewikEd.GetNextTextNode(objRight, focusNode, 0);
}
if (objRight.foundNode != null) {
// insert new text node after linebreak and focus
if (leftNode.tagName == 'BR') {
node = wikEdFrameDocumentwikEd.frameDocument.createTextNode('');
leftNode.parentNode.insertBefore(node, leftNode.nextSibling);
range.setStart(node, 0);
// insert new text node before linebreak
if (rightNode.tagName == 'BR') {
var node = wikEdFrameDocumentwikEd.frameDocument.createTextNode('');
rightNode.parentNode.insertBefore(node, rightNode);
range.setStart(node, 0);
//
// WikEdResizeGripLoadHandlerwikEd.ResizeGripLoadHandler: event handler to determine grip background image size
//
windowwikEd.WikEdResizeGripLoadHandlerResizeGripLoadHandler = function(event) {
// event compatibility fixes
event = WikEdEventwikEd.EventWrapper(event, this);
if (event == null) {
return;
}
wikEdResizeGripWidthwikEd.resizeGripWidth = event.currentTarget.width;
wikEdResizeGripHeightwikEd.resizeGripHeight = event.currentTarget.height;
return;
};
//
// WikEdResizeGripHandlerwikEd.ResizeGripHandler: event handler for mouse over resize grip background image
//
windowwikEd.WikEdResizeGripHandlerResizeGripHandler = function(event) {
// prevent console errors about undefined functions and variables (Firefox bug)
if (typeof(WikEdEventwikEd) == 'undefined') {
return;
}
// Firefox bug during startup ("WikEdEvent is not defined")
if (typeof(WikEdEventwikEd.EventWrapper) != 'function' ) {
return;
}
// event compatibility fixes
event = WikEdEventwikEd.EventWrapper(event, this);
if (event == null) {
return;
}
if (wikEdUseWikEdwikEd.useWikEd == true) {
if (event.type == 'mousemove') {
if ( (event.shiftKey == false) && (event.ctrlKey == false) && (event.altKey == false) && (event.metaKey == false) ) {
// move into grip
if (wikEdResizeFrameMouseOverGripwikEd.resizeFrameMouseOverGrip == false) {
if (event.clientY >= wikEdFrameBodywikEd.frameBody.clientHeight - wikEdResizeGripHeightwikEd.resizeGripHeight) {
if (event.clientX >= wikEdFrameBodywikEd.frameBody.clientWidth - wikEdResizeGripWidthwikEd.resizeGripWidth) {
if ( (event.clientY < wikEdFrameBodywikEd.frameBody.clientHeight) && (event.clientX < wikEdFrameBodywikEd.frameBody.clientWidth) ) {
wikEdResizeFrameMouseOverGripwikEd.resizeFrameMouseOverGrip = true;
if (wikEdFullScreenModewikEd.fullScreenMode == true) {
wikEdFrameBodywikEd.frameBody.style.cursor = 'alias';
}
else {
WikEdAddEventListenerwikEd.AddEventListener(wikEdFrameDocumentwikEd.frameDocument, 'mousedown', WikEdResizeStartHandlerwikEd.ResizeStartHandler, true);
wikEdFrameBodywikEd.frameBody.style.cursor = 'move';
}
}
// move out of grip
else if (wikEdResizeFrameActivewikEd.resizeFrameActive == false) {
if (
(event.clientY < wikEdFrameBodywikEd.frameBody.clientHeight - wikEdResizeGripHeightwikEd.resizeGripHeight) ||
(event.clientX < wikEdFrameBodywikEd.frameBody.clientWidth - wikEdResizeGripWidthwikEd.resizeGripWidth)
) {
wikEdResizeFrameMouseOverGripwikEd.resizeFrameMouseOverGrip = false;
WikEdRemoveEventListenerwikEd.RemoveEventListener(wikEdFrameDocumentwikEd.frameDocument, 'mousedown', WikEdResizeStartHandlerwikEd.ResizeStartHandler, true);
wikEdFrameBodywikEd.frameBody.style.cursor = 'auto';
}
}
//
// WikEdResizeStartHandlerwikEd.ResizeStartHandler: event handler to start the resizing of the editing frame
//
windowwikEd.WikEdResizeStartHandlerResizeStartHandler = function(event) {
// event compatibility fixes
event = WikEdEventwikEd.EventWrapper(event, this);
if (event == null) {
return;
}
if (wikEdUseWikEdwikEd.useWikEd == true) {
if ( (event.type == 'mousedown') && (event.button == 0) ) {
if ( (event.shiftKey == false) && (event.ctrlKey == false) && (event.altKey == false) && (event.metaKey == false) ) {
if (event.clientY >= wikEdFrameBodywikEd.frameBody.clientHeight - wikEdResizeGripHeightwikEd.resizeGripHeight) {
if (event.clientX >= wikEdFrameBodywikEd.frameBody.clientWidth - wikEdResizeGripWidthwikEd.resizeGripWidth) {
if ( (event.clientY < wikEdFrameBodywikEd.frameBody.clientHeight) && (event.clientX < wikEdFrameBodywikEd.frameBody.clientWidth) ) {
event.preventDefault();
wikEdResizeFrameActivewikEd.resizeFrameActive = true;
wikEdResizeFramePageYStartwikEd.resizeFramePageYStart = event.pageY;
wikEdResizeFramePageXStartwikEd.resizeFramePageXStart = event.pageX;
wikEdResizeFrameOffsetHeightwikEd.resizeFrameOffsetHeight = wikEdFramewikEd.frame.offsetHeight;
wikEdResizeFrameOffsetWidthwikEd.resizeFrameOffsetWidth = wikEdFramewikEd.frame.offsetWidth;
WikEdAddEventListenerwikEd.AddEventListener(wikEdFrameDocumentwikEd.frameDocument, 'mouseup', WikEdResizeStopHandlerwikEd.ResizeStopHandler, true);
WikEdAddEventListenerwikEd.AddEventListener(document, 'mouseup', WikEdResizeStopHandlerwikEd.ResizeStopHandler, true);
WikEdAddEventListenerwikEd.AddEventListener(wikEdFrameDocumentwikEd.frameDocument, 'mousemove', WikEdResizeDragHandlerFramewikEd.ResizeDragHandlerFrame, true);
WikEdAddEventListenerwikEd.AddEventListener(document, 'mousemove', WikEdResizeDragHandlerDocumentwikEd.ResizeDragHandlerDocument, true);
}
}
//
// WikEdResizeStopHandlerwikEd.ResizeStopHandler: event handler to stop the resizing of the editing frame
//
windowwikEd.WikEdResizeStopHandlerResizeStopHandler = function(event) {
// event compatibility fixes
event = WikEdEventwikEd.EventWrapper(event, this);
if (event == null) {
return;
}
if (wikEdUseWikEdwikEd.useWikEd == true) {
if (event.type == 'mouseup') {
WikEdRemoveEventListenerwikEd.RemoveEventListener(wikEdFrameDocumentwikEd.frameDocument, 'mouseup', WikEdResizeStopHandlerwikEd.ResizeStopHandler, true);
WikEdRemoveEventListenerwikEd.RemoveEventListener(document, 'mouseup', WikEdResizeStopHandlerwikEd.ResizeStopHandler, true);
WikEdRemoveEventListenerwikEd.RemoveEventListener(wikEdFrameDocumentwikEd.frameDocument, 'mousemove', WikEdResizeDragHandlerFramewikEd.ResizeDragHandlerFrame, true);
WikEdRemoveEventListenerwikEd.RemoveEventListener(document, 'mousemove', WikEdResizeDragHandlerDocumentwikEd.ResizeDragHandlerDocument, true);
if (
(event.clientY < wikEdFrameBodywikEd.frameBody.clientHeight - wikEdResizeGripHeightwikEd.resizeGripHeight) ||
(event.clientX < wikEdFrameBodywikEd.frameBody.clientWidth - wikEdResizeGripWidthwikEd.resizeGripWidth)
) {
wikEdResizeFrameMouseOverGripwikEd.resizeFrameMouseOverGrip = false;
WikEdRemoveEventListenerwikEd.RemoveEventListener(wikEdFrameDocumentwikEd.frameDocument, 'mousedown', WikEdResizeStartHandlerwikEd.ResizeStartHandler, true);
wikEdFrameBodywikEd.frameBody.style.cursor = 'auto';
}
}
wikEdResizeFrameActivewikEd.resizeFrameActive = false;
}
return;
//
// WikEdResizeDragHandlerFramewikEd.ResizeDragHandlerFrame: event handler for editing frame resizing by mouse dragging (frame event)
//
windowwikEd.WikEdResizeDragHandlerFrameResizeDragHandlerFrame = function(event) {
// event compatibility fixes
event = WikEdEventwikEd.EventWrapper(event, this);
if (event == null) {
return;
if (event.type == 'mousemove') {
var diffY = event.pageY - wikEdResizeFramePageYStartwikEd.resizeFramePageYStart;
var diffX = event.pageX - wikEdResizeFramePageXStartwikEd.resizeFramePageXStart;
var frameHeightNew = wikEdResizeFrameOffsetHeightwikEd.resizeFrameOffsetHeight + diffY;
var frameWidthNew = wikEdResizeFrameOffsetWidthwikEd.resizeFrameOffsetWidth + diffX;
if (frameHeightNew >= 100) {
wikEdFrameHeightwikEd.frameHeight = frameHeightNew + 'px';
wikEdFramewikEd.frame.style.height = wikEdFrameHeightwikEd.frameHeight;
}
if (frameWidthNew >= 100) {
wikEdFrameWidthwikEd.frameWidth = frameWidthNew + 'px';
wikEdFramewikEd.frame.style.width = wikEdFrameWidthwikEd.frameWidth;
}
}
//
// WikEdResizeDragHandlerDocumentwikEd.ResizeDragHandlerDocument: event handler for editing frame resizing by mouse dragging (document event)
//
windowwikEd.WikEdResizeDragHandlerDocumentResizeDragHandlerDocument = function(event) {
// event compatibility fixes
event = WikEdEventwikEd.EventWrapper(event, this);
if (event == null) {
return;
if (event.type == 'mousemove') {
var diffY = event.pageY - wikEdResizeFramePageYStartwikEd.resizeFramePageYStart - WikEdGetOffsetTopwikEd.GetOffsetTop(wikEdFramewikEd.frame);
var diffX = event.pageX - wikEdResizeFramePageXStartwikEd.resizeFramePageXStart - WikEdGetOffsetLeftwikEd.GetOffsetLeft(wikEdFramewikEd.frame);
var frameHeightNew = wikEdResizeFrameOffsetHeightwikEd.resizeFrameOffsetHeight + diffY;
var frameWidthNew = wikEdResizeFrameOffsetWidthwikEd.resizeFrameOffsetWidth + diffX;
if (frameHeightNew >= 100) {
wikEdFrameHeightwikEd.frameHeight = frameHeightNew + 'px';
wikEdFramewikEd.frame.style.height = wikEdFrameHeightwikEd.frameHeight;
}
if (frameWidthNew >= 100) {
wikEdFrameWidthwikEd.frameWidth = frameWidthNew + 'px';
wikEdFramewikEd.frame.style.width = wikEdFrameWidthwikEd.frameWidth;
}
}
//
// WikEdResizeFrameResetHandlerwikEd.ResizeFrameResetHandler: event handler to reset the editing frame size
//
windowwikEd.WikEdResizeFrameResetHandlerResizeFrameResetHandler = function(event) {
// event compatibility fixes
event = WikEdEventwikEd.EventWrapper(event, this);
if (event == null) {
return;
}
if (wikEdUseWikEdwikEd.useWikEd == true) {
if (event.type == 'dblclick') {
if ( (event.shiftKey == false) && (event.ctrlKey == false) && (event.altKey == false) && (event.metaKey == false) ) {
if (event.clientY > wikEdFrameBodywikEd.frameBody.clientHeight - wikEdResizeGripHeightwikEd.resizeGripHeight) {
if (event.clientX > wikEdFrameBodywikEd.frameBody.clientWidth - wikEdResizeGripWidthwikEd.resizeGripWidth) {
if ( (event.clientY < wikEdFrameBodywikEd.frameBody.clientHeight) && (event.clientX < wikEdFrameBodywikEd.frameBody.clientWidth) ) {
// end fullscreen mode
if (wikEdFullScreenModewikEd.fullScreenMode == true) {
WikEdFullScreenwikEd.FullScreen(false);
}
// reset size to default
wikEdFrameHeightwikEd.frameHeight = (wikEdTextareaOffsetHeightInitialwikEd.textareaOffsetHeightInitial - wikEdFrameBorderHeightwikEd.frameBorderHeight) + 'px';
wikEdFrameWidthwikEd.frameWidth = (wikEdEditorWrapperwikEd.editorWrapper.clientWidth - wikEdFrameBorderWidthwikEd.frameBorderWidth) + 'px';
wikEdFramewikEd.frame.style.height = wikEdFrameHeightwikEd.frameHeight;
wikEdFramewikEd.frame.style.width = wikEdFrameWidthwikEd.frameWidth;
// end resizing
WikEdRemoveEventListenerwikEd.RemoveEventListener(wikEdFrameDocumentwikEd.frameDocument, 'mouseup', WikEdResizeStopHandlerwikEd.ResizeStopHandler, true);
WikEdRemoveEventListenerwikEd.RemoveEventListener(document, 'mouseup', WikEdResizeStopHandlerwikEd.ResizeStopHandler, true);
WikEdRemoveEventListenerwikEd.RemoveEventListener(wikEdFrameDocumentwikEd.frameDocument, 'mousemove', WikEdResizeDragHandlerFramewikEd.ResizeDragHandlerFrame, true);
WikEdRemoveEventListenerwikEd.RemoveEventListener(document, 'mousemove', WikEdResizeDragHandlerDocumentwikEd.ResizeDragHandlerDocument, true);
wikEdResizeFrameMouseOverGripwikEd.resizeFrameMouseOverGrip = false;
WikEdRemoveEventListenerwikEd.RemoveEventListener(wikEdFrameDocumentwikEd.frameDocument, 'mousedown', WikEdResizeStartHandlerwikEd.ResizeStartHandler, true);
wikEdFrameBodywikEd.frameBody.style.cursor = 'auto';
wikEdResizeFrameActivewikEd.resizeFrameActive = false;
}
}
//
// WikEdDebugHandlerwikEd.DebugHandler: event handler to clear or hide the debug textarea on (shift/ctrl/alt) double click
//
windowwikEd.WikEdDebugHandlerDebugHandler = function(event) {
if ( (event.shiftKey == true) || (event.ctrlKey == true) || (event.altKey == true) || (event.metaKey == true) ) {
wikEdDebugWrapperwikEd.debugWrapper.style.visibility = 'hidden';
wikEdDebugwikEd.debug.style.display = 'none';
wikEdDebugOpenwikEd.debugOpen = false;
}
else {
wikEdDebugwikEd.debug.value = '';
}
return;
//
// WikEdPrevWrapperHandlerwikEd.PrevWrapperHandler: event handler to close preview / diff box on double click
//
windowwikEd.WikEdPrevWrapperHandlerPrevWrapperHandler = function(event) {
wikEdLocalPrevWrapperwikEd.localPrevWrapper.style.display = 'none';
return;
};
//
// WikEdSetLogowikEd.SetLogo: set the logo on top of the page
//
windowwikEd.WikEdSetLogoSetLogo = function(state, parameter) {
if (state == 'error') {
wikEdLogowikEd.logo.src = wikEdConfig['wikEd.config.image']['error'];
wikEdLogowikEd.logo.alt = wikEdConfig['wikEd.config.text']['wikEdLogo error alt'];
wikEdLogowikEd.logo.title = wikEdConfig['wikEd.config.text']['wikEdLogo error title'];
}
else if (state == 'browser') {
wikEdLogowikEd.logo.src = wikEdConfig['wikEd.config.image']['browser'];
wikEdLogowikEd.logo.alt = wikEdConfig['wikEd.config.text']['wikEdLogo browser alt'];
wikEdLogowikEd.logo.title = wikEdConfig['wikEd.config.text']['wikEdLogo browser title'];
}
else if (state == 'incompatible') {
wikEdLogowikEd.logo.src = wikEdConfig['wikEd.config.image']['incompatible'];
wikEdLogowikEd.logo.alt = wikEdConfig['wikEd.config.text']['wikEdLogo incompatible alt'];
wikEdLogowikEd.logo.title = wikEdConfig['wikEd.config.text']['wikEdLogo incompatible title'];
}
else {
if (wikEdDisabledwikEd.disabled == true) {
wikEdLogowikEd.logo.src = wikEdConfig['wikEd.config.image']['disabled'];
wikEdLogowikEd.logo.alt = wikEdConfig['wikEd.config.text']['wikEdLogo disabled alt'];
wikEdLogowikEd.logo.title = wikEdConfig['wikEd.config.text']['wikEdLogo disabled title'];
}
else {
wikEdLogowikEd.logo.src = wikEdConfig['wikEd.config.image']['logo'];
wikEdLogowikEd.logo.alt = wikEdConfig['wikEd.config.text']['wikEdLogo alt'];
wikEdLogowikEd.logo.title = wikEdConfig['wikEd.config.text']['wikEdLogo title'];
}
}
var version = wikEdProgramVersionwikEd.programVersion;
if (wikEdConfig['wikEd.config.gadget'] == true) {
version += ' G';
}
else if (wikEdGreasemonkeywikEd.greasemonkey == true) {
version += ' GM';
}
wikEd.logo.title = wikEd.logo.title.replace(/\{wikEd.parameter\}/g, parameter);
else if (wikEdGreasemonkeyToHead == true) {
wikEd.logo.title = wikEd.logo.title.replace(/\{wikEd.programVersion\}/g, version);
version += ' GMH';
wikEd.logo.title = wikEd.logo.title.replace(/\{wikEd.programDate\}/g, wikEd.programDate);
}
wikEdLogo.title = wikEdLogo.title.replace(/\{wikEdParameter\}/g, parameter);
wikEdLogo.title = wikEdLogo.title.replace(/\{wikEdProgramVersion\}/g, version);
wikEdLogo.title = wikEdLogo.title.replace(/\{wikEdProgramDate\}/g, wikEdProgramDate);
return;
break;
default:
var currButton = wikEdConfig['wikEd.config.button'][buttonNo];
if (typeof(currButton) != 'object') {
alert('Loading error: The button "' + buttonNumbers[i] + '" is not defined.');
}
if ( (currButton[0] == 'wikEdSource') && (wikEdConfig['wikEd.config.showSourceButton'] != true) ) {
break;
}
else if ( (currButton[0] == 'wikEdUsing') && (wikEdConfig['wikEd.config.showUsingButton'] != true) ) {
break;
}
else if ( (currButton[0] == 'wikEdTableMode') && (wikEdConfig['wikEd.config.showTableModeButton'] != true) ) {
break;
}
// add accesskey information to button title and
var accessKey = '';
if (wikEdConfig['wikEd.config.buttonKey'][buttonNo] != null) {
accessKey = ' [' + wikEdConfig['wikEd.config.text']['alt-shift'] + wikEdConfig['wikEd.config.buttonKey'][buttonNo][0] + ']';
// initialize wikEdButtonKeyCodewikEd.buttonKeyCode[keyCode] = id
wikEdButtonKeyCodewikEd.buttonKeyCode[ (wikEdConfig['wikEd.config.buttonKey'][buttonNo][1]) ] = currButton[0];
}
// collect click event info
wikEdEditButtonHandlerwikEd.editButtonHandler[ currButton[0] ] = currButton[7];
}
}
var html = '';
if (gripTitle != null) {
var gripStyle = 'width: ' + wikEdConfig['wikEd.config.buttonBarGripWidth'] + 'px; ';
if (barHeight > 0) {
gripStyle += 'height: ' + barHeight + 'px; ';
//
// WikEdButtonBarInitwikEd.ButtonBarInit: hide buttons bar, see also WikEdButtonBarGripHandlerwikEd.ButtonBarGripHandler()
//
windowwikEd.WikEdButtonBarInitButtonBarInit = function(bar) {
if (WikEdGetPersistentwikEd.GetPersistent(bar.id + 'Hidden') == '1') {
var barInnerWrapper = bar.firstChild;
var gripWrapper = barInnerWrapper.firstChild;
gripWrapper.className = 'wikEdButtonBarGripWrapperHidden';
buttonsWrapper.className = 'wikEdButtonBarButtonsWrapperHidden';
wikEdButtonsWrapperWidthwikEd.buttonsWrapperWidth[bar.id] = buttonsWrapper.offsetWidth;
buttonsWrapper.style.display = 'none';
WikEdAddEventListenerwikEd.AddEventListener(grip, 'mouseover', WikEdButtonBarGripHandlerwikEd.ButtonBarGripHandler, true);
}
return;
//
// WikEdSetEditAreawikEd.SetEditArea: apply css changes to switch between classic textarea and rich text frame
//
windowwikEd.WikEdSetEditAreaSetEditArea = function(useFrame, notFrame) {
var scrollRatio;
// turn rich text frame on
if (useFrame == true) {
scrollRatio = wikEdTextareawikEd.textarea.scrollTop / wikEdTextareawikEd.textarea.scrollHeight;
// remember resized textarea dimensions
wikEdTextareaHeightwikEd.textareaHeight = (wikEdTextareawikEd.textarea.offsetHeight - wikEdTextareaBorderHeightwikEd.textareaBorderHeight) + 'px';
wikEdTextareaWidthwikEd.textareaWidth = '100%';
wikEdTextareaWrapperwikEd.textareaWrapper.style.position = 'absolute';
wikEdTextareaWrapperwikEd.textareaWrapper.style.visibility = 'hidden';
wikEdTextareawikEd.textarea.style.display = 'none';
if (notFrame != true) {
wikEdFrameWrapperwikEd.frameWrapper.style.position = 'static';
wikEdFrameWrapperwikEd.frameWrapper.style.visibility = 'visible';
wikEdFrameBodywikEd.frameBody.style.display = 'block';
}
if (wikEdToolbarwikEd.closeToolbar !== nulltrue) {
wikEd.toolbarWrapper.style.display = 'none';
if (wikEdCloseToolbar == true) {
}
wikEdToolbarWrapper.style.display = 'none';
}else {
wikEd.toolbarWrapper.style.display = 'block';
else {
wikEdToolbarWrapper.style.display = 'block';
}
}
if (wikEdButtonBarFormatwikEd.buttonBarFormat != null) {
wikEdButtonBarFormatwikEd.buttonBarFormat.style.display = 'block';
}
if (wikEdButtonBarTextifywikEd.buttonBarTextify != null) {
wikEdButtonBarTextifywikEd.buttonBarTextify.style.display = 'block';
}
if (wikEdButtonBarCustom1wikEd.buttonBarCustom1 != null) {
wikEdButtonBarCustom1wikEd.buttonBarCustom1.style.display = 'block';
}
if (wikEdButtonBarFindwikEd.buttonBarFind != null) {
wikEdButtonBarFindwikEd.buttonBarFind.style.display = 'block';
}
if (wikEdButtonBarFixwikEd.buttonBarFix != null) {
wikEdButtonBarFixwikEd.buttonBarFix.style.display = 'block';
}
if (wikEdButtonBarCustom2wikEd.buttonBarCustom2 != null) {
wikEdButtonBarCustom2wikEd.buttonBarCustom2.style.display = 'block';
}
if (wikEdButtonBarControlwikEd.buttonBarControl != null) {
wikEdButtonBarControlwikEd.buttonBarControl.style.display = 'block';
}
wikEdFrameBodywikEd.frameBody.scrollTop = scrollRatio * wikEdFrameBodywikEd.frameBody.scrollHeight;
}
// turn classic textarea on
else {
scrollRatio = wikEdFrameBodywikEd.frameBody.scrollTop / wikEdFrameBodywikEd.frameBody.scrollHeight;
if (notFrame != true) {
// get resized frame dimensions for textarea
if (wikEdUseWikEdwikEd.useWikEd == true) {
wikEd.textareaHeight = wikEd.frameHeight;
wikEdTextareaHeight = wikEdFrameHeight;
wikEdTextareaWidthwikEd.textareaWidth = '100%';
}
wikEdFrameWrapperwikEd.frameWrapper.style.position = 'absolute';
wikEdFrameWrapperwikEd.frameWrapper.style.visibility = 'hidden';
// Mozilla or wikEd bug: <br> insertion before text a while after setting display to 'none', test with setTimeout('alert(wikEdFrameBodywikEd.frameBody.innerHTML)', 1000);
// wikEdFrameBodywikEd.frameBody.style.display = 'none';
}
wikEdTextareaWrapperwikEd.textareaWrapper.style.position = 'static';
wikEdTextareaWrapperwikEd.textareaWrapper.style.visibility = 'visible';
wikEdTextareawikEd.textarea.style.height = wikEdTextareaHeightwikEd.textareaHeight;
wikEdTextareawikEd.textarea.style.width = wikEdTextareaWidthwikEd.textareaWidth;
wikEdTextareawikEd.textarea.style.display = 'block';
if (wikEdToolbarWrapperwikEd.toolbarWrapper != null) {
wikEdToolbarWrapperwikEd.toolbarWrapper.style.display = 'block';
}
if (wikEdButtonBarFormatwikEd.buttonBarFormat != null) {
wikEdButtonBarFormatwikEd.buttonBarFormat.style.display = 'none';
}
if (wikEdButtonBarTextifywikEd.buttonBarTextify != null) {
wikEdButtonBarTextifywikEd.buttonBarTextify.style.display = 'none';
}
if (wikEdButtonBarCustom1wikEd.buttonBarCustom1 != null) {
wikEdButtonBarCustom1wikEd.buttonBarCustom1.style.display = 'none';
}
if (wikEdButtonBarFindwikEd.buttonBarFind != null) {
wikEdButtonBarFindwikEd.buttonBarFind.style.display = 'none';
}
if (wikEdButtonBarFixwikEd.buttonBarFix != null) {
wikEdButtonBarFixwikEd.buttonBarFix.style.display = 'none';
}
if (wikEdButtonBarCustom2wikEd.buttonBarCustom2 != null) {
wikEdButtonBarCustom2wikEd.buttonBarCustom2.style.display = 'none';
}
if (wikEdButtonBarControlwikEd.buttonBarControl != null) {
wikEdButtonBarControlwikEd.buttonBarControl.style.display = 'block';
}
wikEdTextareawikEd.textarea.scrollTop = scrollRatio * wikEdTextareawikEd.textarea.scrollHeight;
}
//
// WikEdButtonwikEd.Button: toggle or set button checked state
// used for buttons that do not require nor change the text. Faster than WikEdEditButtonwikEd.EditButton()
//
windowwikEd.WikEdButtonButton = function(buttonObj, buttonId, toggleButton, setButton, classButton, doButton) {
if (buttonObj != null) {
if (toggleButton != null) {
if (toggleButton == true) {
if (WikEdGetAttributewikEd.GetAttribute(buttonObj, 'checked') == 'true') {
buttonObj.setAttribute('checked', false);
buttonObj.className = 'wikEdButtonUnchecked';
// remove active content
WikEdRemoveElementswikEd.RemoveElements(['script', 'object', 'applet', 'embed']);
switch (buttonId) {
// switch between syntax highlighting and plain text
case 'wikEdHighlightSyntax':
if (WikEdGetAttributewikEd.GetAttribute(buttonObj, 'checked') == 'true') {
wikEdHighlightSyntaxwikEd.highlightSyntax = true;
WikEdSetPersistentwikEd.SetPersistent('wikEdSyntaxOff', '0', 0, '/');
if (wikEdRefHidewikEd.refHide == true) {
wikEdFrameBodywikEd.frameBody.className = 'wikEdFrameBodyNewbie';
}
else {
wikEdFrameBodywikEd.frameBody.className = 'wikEdFrameBodySyntax';
}
}
else {
wikEdHighlightSyntaxwikEd.highlightSyntax = false;
WikEdSetPersistentwikEd.SetPersistent('wikEdSyntaxOff', '1', 0, '/');
wikEdFrameBodywikEd.frameBody.className = 'wikEdFrameBodyPlain';
}
// do not keep whole text selected
WikEdEditButtonwikEd.EditButton( null, 'wikEdUpdateAll', {'keepSel': false} );
break;
// toggle table mode // {{TABLE}}
case 'wikEdTableMode':
if (WikEdGetAttributewikEd.GetAttribute(buttonObj, 'checked') != 'true') {
wikEdTableModewikEd.tableMode = false;
WikEdEditButtonwikEd.EditButton(null, 'wikEdUpdateAll');
}
else {
wikEdTableModewikEd.tableMode = true;
WikEdEditButtonwikEd.EditButton(null, 'wikEdTablify');
}
break;
case 'wikEdScrollToPreview2':
case 'wikEdScrollToPreview3':
window.scroll(0, WikEdGetOffsetTopwikEd.GetOffsetTop(wikEdSaveButtonwikEd.saveButton));
focusFrame = true;
break;
case 'wikEdScrollToEdit3':
case 'wikEdScrollToEdit4':
window.scroll(0, WikEdGetOffsetTopwikEd.GetOffsetTop(wikEdInputWrapperwikEd.inputWrapper));
focusFrame = true;
break;
// cycle through different font sizes
case 'wikEdTextZoomDown':
wikEdTextSizewikEd.textSize = wikEdTextSizewikEd.textSize / 1.2;
if (wikEdTextSizewikEd.textSize < wikEdTextSizeInitwikEd.textSizeInit / 1.2 / 1.2) {
wikEdTextSizewikEd.textSize = wikEdTextSizeInitwikEd.textSizeInit * 1.2 * 1.2;
}
wikEdFrameBodywikEd.frameBody.style.fontSize = wikEdTextSizewikEd.textSize + 'px';
focusFrame = true;
break;
// cycle through different font sizes
case 'wikEdTextZoomUp':
wikEdTextSizewikEd.textSize = wikEdTextSizewikEd.textSize * 1.2;
if (wikEdTextSizewikEd.textSize > wikEdTextSizeInitwikEd.textSizeInit * 1.2 * 1.2) {
wikEdTextSizewikEd.textSize = wikEdTextSizeInitwikEd.textSizeInit / 1.2 / 1.2;
}
wikEdFrameBodywikEd.frameBody.style.fontSize = wikEdTextSizewikEd.textSize + 'px';
focusFrame = true;
break;
// display local preview box
case 'wikEdLocalPreview':
if (wikEdFullScreenModewikEd.fullScreenMode == true) {
WikEdFullScreenwikEd.FullScreen(false);
}
if (wikEdUseWikEdwikEd.useWikEd == true) {
WikEdUpdateTextareawikEd.UpdateTextarea();
}
// clear box to display loading indicator, keep wrapper height to prevent scrolling
var previewHeight = wikEdPreviewBoxwikEd.previewBox.offsetHeight;
if ( (wikEdPreviewBoxwikEd.previewBox.innerHTML != '') && (previewHeight > 0) ) {
wikEdPreviewBoxwikEd.previewBox.style.height = previewHeight + 'px';
}
wikEdPreviewBoxwikEd.previewBox.innerHTML = wikEdConfig['wikEd.config.text']['wikEdPreviewLoading'];
wikEdLocalPrevWrapperwikEd.localPrevWrapper.style.display = 'inline';
// prepare ajax preview
wikEdPreviewIsAjaxwikEd.previewIsAjax = false;
var bodyData = wikEdTextareawikEd.textarea.value;
// Opera 0.9.51
bodyData = bodyData.replace(/\r\n|\n\r|\r/g, '\n');
if (wikEdConfig['wikEd.config.useAjaxPreview'] == true) {
var livePreview = true;
// articles on watchlist preview page
if (wikEdWatchlistEditwikEd.watchlistEdit == true) {
bodyData = bodyData.replace(/\n{1}/g, '\n\n');
bodyData = bodyData.replace(/(.+)/g,
// postfix (User_talk) or prefix (Discussion_Utilisateur), test for xxx_ vs. _xxx (all ASCII non-letters as separator)
// Firefox 3.6.7 + Greasemonkey 0.8.20100408.06: invalid range with \{-‰ and \x8f-™
if (/[ -\/\:-\@\[-\`\{-\x88‰‹\x8d\x8f-\x98™›\x9d\xa0-»¿×÷]/.test(wikEdConfig['wikEd.config.text']['talk namespace suffix']) == true) {
talk = article.replace(/([^:]*)/, wikEdConfig['wikEd.config.text']['talk namespace suffix'] + '$1');
}
else {
talk = article.replace(/([^:]*)/, '$1' + wikEdConfig['wikEd.config.text']['talk namespace suffix']);
}
}
else {
talk = wikEdConfig['wikEd.config.text']['talk namespace'] + ':' + article;
}
var uriArticle = article.replace(/ /g, '_');
uriArticle = uriArticle.replace(/%25(\d\d)/g, '%$1');
uriArticle = uriArticle.replace(/\'/g, '%27');
var hist = wikEdWikiGlobals['wikEd.wikiGlobals.wgServer'] + wikEdWikiGlobals['wikEd.wikiGlobals.wgScript'] + '?title=' + uriArticle + '&action=history';
return('[[:' + p1 + ']] ([[:' + talk + '|' + wikEdConfig['wikEd.config.text']['talk page'] + ']], [' + hist + ' ' + wikEdConfig['wikEd.config.text']['history page'] + '])');
}
);
while ( (regExpMatch = /<(source|syntaxhighlight)\b[^>]*?lang\s*=\s*(\"|\')(\w+)\2/gi.exec(bodyData)) != null) {
var lang = regExpMatch[3];
if (wikEdGeSHiCSSwikEd.geSHiCSS['wikEd' + lang] == null) {
livePreview = false;
wikEdGeSHiCSSwikEd.geSHiCSS['wikEd' + lang] = true;
break;
}
// make the ajax request
WikEdAjaxPreviewwikEd.AjaxPreview(bodyData, WikEdLocalPreviewAjaxHandlerwikEd.LocalPreviewAjaxHandler, livePreview);
}
// prepare a local preview (Pilaf's InstaView), will be overwritten by Ajax version
if ( (wikEdConfig['wikEd.config.useLocalPreview'] == true) && (typeof(InstaView) == 'object') ) {
InstaView.conf.user.name = wikEdWikiGlobals['wikEd.wikiGlobals.wgUserName'];
var text = wikEdTextareawikEd.textarea.value;
// Opera 0.9.51
var instaView = InstaView.convert(text);
if (wikEdPreviewIsAjaxwikEd.previewIsAjax != true) {
wikEdPreviewBoxwikEd.previewBox.innerHTML = instaView;
// init sortable tables (wikibits.js)
case 'wikEdLocalDiff':
if (typeof(WDiffString) != 'function') {
wikEd.previewBox.innerHTML = '<div class="wikEdPreviewDiffError">' + wikEd.config.text['diffNotLoaded'] + '</div>';
wikEd.localPrevWrapper.style.display = 'block';
break;
}
if (wikEdFullScreenModewikEd.fullScreenMode == true) {
WikEdFullScreenwikEd.FullScreen(false);
}
if (wikEdUseWikEdwikEd.useWikEd == true) {
WikEdUpdateTextareawikEd.UpdateTextarea();
}
// add trailing newline
var currentVersion = wikEdTextareawikEd.textarea.value;
// Opera 0.9.51
currentVersion += '\n';
}
if (wikEdOrigVersionwikEd.origVersion.substr(wikEdOrigVersionwikEd.origVersion.length - 1, 1) != '\n') {
wikEdOrigVersionwikEd.origVersion += '\n';
}
// call external diff program
var diffText = WDiffString(wikEdOrigVersionwikEd.origVersion, currentVersion);
if (wikEdConfig['wikEd.config.fullDiff'] != true) {
diffText = WDiffShortenOutput(diffText);
}
// display diff, keep wrapper height to prevent scrolling
var previewHeight = wikEdPreviewBoxwikEd.previewBox.offsetHeight;
if ( (wikEdPreviewBoxwikEd.previewBox.innerHTML != '') && (previewHeight > 0) ) {
wikEdPreviewBoxwikEd.previewBox.style.height = previewHeight + 'px';
}
wikEdPreviewBoxwikEd.previewBox.innerHTML = diffText;
wikEdLocalPrevWrapperwikEd.localPrevWrapper.style.display = 'block';
// scroll to button, textarea, or preview field
WikEdScrollToPreviewwikEd.ScrollToPreview();
break;
// toggle wikEdDiffwikEd.diff
case 'wikEdDiff':
// turn wikEdDiffwikEd.diff off
if (WikEdGetAttributewikEd.GetAttribute(buttonObj, 'checked') != 'true') {
wikEdDiffwikEd.diff = false;
WikEdSetPersistentwikEd.SetPersistent('wikEdDiff', '0', 0, '/');
if (typeof(wikEdDiffDivwikEd.diffDiv) == 'object') {
if (wikEdDiffDivwikEd.diffDiv != null) {
wikEdDiffDivwikEd.diffDiv.style.display = 'none';
}
}
window.scroll(0, WikEdGetOffsetTopwikEd.GetOffsetTop(wikEdInputWrapperwikEd.inputWrapper));
}
// turn wikEdDiffwikEd.diff on
else {
wikEdDiffwikEd.diff = true;
WikEdSetPersistentwikEd.SetPersistent('wikEdDiff', '1', 0, '/');
if (typeof(wikEdDiffDivwikEd.diffDiv) == 'object') {
if (wikEdDiffDivwikEd.diffDiv != null) {
wikEdDiffDivwikEd.diffDiv.style.display = 'block';
window.scroll(0, WikEdGetOffsetTopwikEd.GetOffsetTop(wikEdDiffDivwikEd.diffDiv));
WikEdDiffwikEd.Diff();
}
}
case 'wikEdClose':
case 'wikEdClose2':
window.scroll(0, WikEdGetOffsetTopwikEd.GetOffsetTop(wikEdInputWrapperwikEd.inputWrapper));
wikEdLocalPrevWrapperwikEd.localPrevWrapper.style.display = 'none';
wikEdPreviewBoxwikEd.previewBox.style.height = 'auto';
focusFrame = true;
break;
// enble wikEd
if (WikEdGetAttributewikEd.GetAttribute(buttonObj, 'checked') == 'true') {
WikEdUpdateFramewikEd.UpdateFrame();
// turn rich text frame on
WikEdSetEditAreawikEd.SetEditArea(true);
wikEdUseWikEdwikEd.useWikEd = true;
WikEdSetPersistentwikEd.SetPersistent('wikEdUseClassic', '0', 0, '/');
// run scheduled custom functions
WikEdExecuteHookwikEd.ExecuteHook(wikEdConfig['wikEd.config.frameHook']);
}
// turn classic textarea on, disable wikEd
else {
WikEdUpdateTextareawikEd.UpdateTextarea();
WikEdSetEditAreawikEd.SetEditArea(false);
wikEdUseWikEdwikEd.useWikEd = false;
WikEdSetPersistentwikEd.SetPersistent('wikEdUseClassic', '1', 0, '/');
// run scheduled custom functions
WikEdExecuteHookwikEd.ExecuteHook(wikEdConfig['wikEd.config.textareaHook']);
}
break;
// add "using wikEd" to summaries
case 'wikEdUsing':
if (WikEdGetAttributewikEd.GetAttribute(buttonObj, 'checked') == 'true') {
wikEdUsingwikEd.using = true;
WikEdSetPersistentwikEd.SetPersistent('wikEdSummaryUsing', '1', 0, '/');
}
else {
wikEdUsingwikEd.using = false;
WikEdSetPersistentwikEd.SetPersistent('wikEdSummaryUsing', '0', 0, '/');
}
break;
// hide ref tags
case 'wikEdRefHide':
if (WikEdGetAttributewikEd.GetAttribute(buttonObj, 'checked') == 'true') {
wikEdRefHidewikEd.refHide = true;
WikEdSetPersistentwikEd.SetPersistent('wikEdRefHide', '1', 0, '/');
}
else {
wikEdRefHidewikEd.refHide = false;
WikEdSetPersistentwikEd.SetPersistent('wikEdRefHide', '0', 0, '/');
}
if (wikEdUseWikEdwikEd.useWikEd == true) {
if (wikEdRefHidewikEd.refHide == true) {
wikEdFrameBodywikEd.frameBody.className = 'wikEdFrameBodyNewbie';
}
else {
wikEdFrameBodywikEd.frameBody.className = 'wikEdFrameBodySyntax';
}
WikEdEditButtonwikEd.EditButton(null, 'wikEdWikify', 'whole');
}
break;
// close the toolbar
case 'wikEdCloseToolbar':
if (WikEdGetAttributewikEd.GetAttribute(buttonObj, 'checked') == 'true') {
wikEdCloseToolbarwikEd.closeToolbar = true;
wikEd.toolbarWrapper.style.display = 'none';
if (wikEdToolbar != null) {
wikEd.SetPersistent('wikEdCloseToolbar', '1', 0, '/');
wikEdToolbarWrapper.style.display = 'none';
}
WikEdSetPersistent('wikEdCloseToolbar', '1', 0, '/');
}
else {
wikEdCloseToolbarwikEd.closeToolbar = false;
wikEd.toolbarWrapper.style.display = 'block';
if (wikEdToolbar != null) {
wikEd.SetPersistent('wikEdCloseToolbar', '0', 0, '/');
wikEdToolbarWrapper.style.display = 'block';
}
WikEdSetPersistent('wikEdCloseToolbar', '0', 0, '/');
}
if (wikEdFullScreenModewikEd.fullScreenMode == true) {
wikEd.FullScreen(wikEd.fullScreenMode);
WikEdFullScreen(wikEdFullScreenMode);
}
break;
// switch to fullscreen edit area
case 'wikEdFullScreen':
if (wikEdRearrangewikEd.rearrange == true) {
if (WikEdGetAttributewikEd.GetAttribute(buttonObj, 'checked') == 'true') {
WikEdFullScreenwikEd.FullScreen(true);
WikEdSetPersistentwikEd.SetPersistent('wikEdFullscreen', '1', 0, '/');
}
else {
WikEdFullScreenwikEd.FullScreen(false);
WikEdSetPersistentwikEd.SetPersistent('wikEdFullscreen', '0', 0, '/');
}
}
// clear the saved settings for find, replace, and summary history
case 'wikEdClearHistory':
WikEdClearHistorywikEd.ClearHistory('find');
WikEdClearHistorywikEd.ClearHistory('replace');
WikEdClearHistorywikEd.ClearHistory('summary');
focusFrame = true;
break;
// focus the frame
if ( (wikEdUseWikEdwikEd.useWikEd == true) && (focusFrame == true) ) {
wikEdFrameWindowwikEd.frameWindow.focus();
}
//
// WikEdEditButtonwikEd.EditButton: editing functions
// used for buttons that require or change the text, more time consuming than WikEdButtonwikEd.Button()
//
windowwikEd.WikEdEditButtonEditButton = function(buttonObj, buttonId, parameters, CustomHandler) {
// check if button is disabled
// remove active and non-text content
WikEdRemoveElementswikEd.RemoveElements(['script', 'object', 'applet', 'embed', 'textarea']);
// select the appropriate text change targets (whole, selection, cursor, focusWord, focusLine, selectionWord, or selectionLine)
// set cursor position into closest highest text node so that highlighting does not bleed out
WikEdAntiHighlightBleedingwikEd.AntiHighlightBleeding(obj, true);
// switch the button
case 'wikEdUndoAll':
case 'wikEdRedoAll':
WikEdGetTextwikEd.GetText(obj, 'whole');
obj.changed = obj.whole;
break;
case 'wikEdWikiLink':
case 'wikEdWebLink':
WikEdGetTextwikEd.GetText(obj, 'selection, cursor');
if (obj.selection.plain != '') {
obj.changed = obj.selection;
}
else {
WikEdGetTextwikEd.GetText(obj, 'focusWord');
if (obj.focusWord.plain != '') {
obj.changed = obj.focusWord;
case 'wikEdRef':
case 'wikEdRefNamed':
WikEdGetTextwikEd.GetText(obj, 'selection, cursor');
if (obj.selection.plain != '') {
obj.changed = obj.selection;
case 'wikEdReferences':
case 'wikEdReferencesSection':
WikEdGetTextwikEd.GetText(obj, 'selection, cursor');
if (obj.selection.plain != '') {
obj.changed = obj.selection;
// character formatting: selection / focusWord / cursor
case 'wikEdCase':
WikEdGetTextwikEd.GetText(obj, 'selection, cursor');
if (obj.selection.plain != '') {
obj.changed = obj.selection;
}
else {
WikEdGetTextwikEd.GetText(obj, 'focusWord');
if (obj.focusWord.plain != '') {
obj.changed = obj.focusWord;
case 'wikEdDecreaseIndentList':
case 'wikEdDefinitionList':
WikEdGetTextwikEd.GetText(obj, 'selection, cursor');
if (obj.selection.plain != '') {
WikEdGetTextwikEd.GetText(obj, 'selectionLine');
obj.changed = obj.selectionLine;
}
else {
WikEdGetTextwikEd.GetText(obj, 'focusLine');
if (obj.focusLine.plain != '') {
obj.changed = obj.focusLine;
// sort: selectionLine / focusLine
case 'wikEdSort':
WikEdGetTextwikEd.GetText(obj, 'selection, cursor');
if (obj.selection.plain != '') {
WikEdGetTextwikEd.GetText(obj, 'selectionLine');
obj.changed = obj.selectionLine;
}
else {
WikEdGetTextwikEd.GetText(obj, 'focusPara');
if (obj.focusPara.plain != '') {
obj.changed = obj.focusPara;
// image: selectionWord (if text is selected) / cursor
case 'wikEdImage':
WikEdGetTextwikEd.GetText(obj, 'selection, cursor');
if (obj.selection.plain != '') {
WikEdGetTextwikEd.GetText(obj, 'selectionWord');
obj.changed = obj.selectionWord;
}
// table: selectionLine / cursor
case 'wikEdTable':
WikEdGetTextwikEd.GetText(obj, 'selection, cursor');
if (obj.selection.plain != '') {
WikEdGetTextwikEd.GetText(obj, 'selectionLine');
obj.changed = obj.selectionLine;
}
else {
WikEdGetTextwikEd.GetText(obj, 'focusLine');
obj.changed = obj.cursor;
}
case 'wikEdWikify':
if (parameters == 'whole') {
WikEdGetTextwikEd.GetText(obj, 'whole');
obj.changed = obj.whole;
}
else {
WikEdGetTextwikEd.GetText(obj, 'selection');
if (obj.selection.plain != '') {
obj.changed = obj.selection;
}
else {
WikEdGetTextwikEd.GetText(obj, 'whole');
obj.changed = obj.whole;
}
// textify: selection / whole, without wikifying
case 'wikEdTextify':
WikEdGetTextwikEd.GetText(obj, 'selection', false);
if (obj.selection.plain != '') {
obj.changed = obj.selection;
}
else {
WikEdGetTextwikEd.GetText(obj, 'whole', false);
obj.changed = obj.whole;
}
// redirect: whole
case 'wikEdRedirect':
WikEdGetTextwikEd.GetText(obj, 'whole, selection, cursor');
if (obj.selection.plain == '') {
WikEdGetTextwikEd.GetText(obj, 'selectionWord');
}
obj.changed = obj.whole;
case 'wikEdReplaceNext':
case 'wikEdFindAll':
WikEdGetTextwikEd.GetText(obj, 'selection');
if (obj.selection.plain != '') {
obj.changed = obj.selection;
}
else {
WikEdGetTextwikEd.GetText(obj, 'focusWord');
if (obj.focusWord.plain != '') {
obj.changed = obj.focusWord;
// replace all: selection / whole
case 'wikEdReplaceAll':
WikEdGetTextwikEd.GetText(obj, 'selection');
if (obj.selection.plain != '') {
obj.changed = obj.selection;
}
else {
WikEdGetTextwikEd.GetText(obj, 'whole');
obj.changed = obj.whole;
}
case 'wikEdFixRedirect':
case 'wikEdFixRedirectReplace':
WikEdGetTextwikEd.GetText(obj, 'selection, cursor');
if (obj.selection.plain != '') {
obj.changed = obj.selection;
}
else {
WikEdGetTextwikEd.GetText(obj, 'whole');
obj.changed = obj.whole;
}
case 'wikEdFixCaps':
case 'wikEdFixChem':
WikEdGetTextwikEd.GetText(obj, 'selection, cursor');
if (obj.selection.plain != '') {
obj.changed = obj.selection;
}
else {
WikEdGetTextwikEd.GetText(obj, 'focusPara');
if (obj.focusPara.plain != '') {
obj.changed = obj.focusPara;
// fixing buttons: selection / focusLine / cursor
case 'wikEdFixChem':
WikEdGetTextwikEd.GetText(obj, 'selection, cursor');
if (obj.selection.plain != '') {
obj.changed = obj.selection;
}
else {
WikEdGetTextwikEd.GetText(obj, 'focusLine');
if (obj.focusPara.plain != '') {
obj.changed = obj.focusLine;
// source: selection / whole
case 'wikEdSource':
WikEdGetTextwikEd.GetText(obj, 'selection');
if (obj.selection.plain != '') {
obj.changed = obj.selection;
}
else {
WikEdGetTextwikEd.GetText(obj, 'whole');
obj.changed = obj.whole;
}
// insert tags: selection / focusWord / cursor
case 'wikEdInsertTags':
WikEdGetTextwikEd.GetText(obj, 'selection, cursor');
if (obj.selection.plain != '') {
obj.changed = obj.selection;
}
else {
WikEdGetTextwikEd.GetText(obj, 'focusWord');
if (obj.focusWord.plain != '') {
obj.changed = obj.focusWord;
// convert wiki tables to html
case 'wikEdTablify':
WikEdGetTextwikEd.GetText(obj, 'whole');
obj.changed = obj.whole;
break;
// update text view using current control button settings
case 'wikEdUpdateAll':
WikEdGetTextwikEd.GetText(obj, 'whole');
obj.changed = obj.whole;
break;
// custom edit functions have to call WikEdGetTextwikEd.GetText() themselves
default:
WikEdGetTextwikEd.GetText(obj, 'cursor');
obj.changed = obj.cursor;
break;
// exit
if (obj.changed == null) {
wikEdFrameWindowwikEd.frameWindow.focus();
// reset button to active, reset cursor
// set local syntax highlighting flag
var highlightSyntax = wikEdHighlightSyntaxwikEd.highlightSyntax;
// manipulate the text
// undo
case 'wikEdUndo':
if (wikEdLastVersionwikEd.lastVersion == null) {
wikEdLastVersionwikEd.lastVersion = obj.changed.plain;
}
WikEdFrameExecCommandwikEd.FrameExecCommand('undo');
if (obj.sel.rangeCount == 0) {
obj.sel.collapse(wikEdFrameBodywikEd.frameBody, 0);
}
obj.changed.range = obj.sel.getRangeAt(obj.sel.rangeCount - 1);
// redo
case 'wikEdRedo':
WikEdFrameExecCommandwikEd.FrameExecCommand('redo');
if (obj.sel.rangeCount == 0) {
obj.sel.collapse(wikEdFrameBodywikEd.frameBody, 0);
}
obj.changed.range = obj.sel.getRangeAt(obj.sel.rangeCount - 1);
case 'wikEdReferences':
case 'wikEdReferencesSection':
var ref = wikEdConfig['wikEd.config.text']['wikEdReferencesSection'];
ref = ref.replace(/</g, '<');
ref = ref.replace(/>/g, '>');
// fix unicode and character entities
WikEdFixUnicodewikEd.FixUnicode(obj.changed);
// keep leading and trailing empty lines and table syntax
// undo all
case 'wikEdUndoAll':
if (wikEdLastVersionwikEd.lastVersion == null) {
wikEdLastVersionwikEd.lastVersion = obj.changed.plain;
}
obj.changed.plain = wikEdOrigVersionwikEd.origVersion;
obj.changed.plain = obj.changed.plain.replace(/&/g, '&');
obj.changed.plain = obj.changed.plain.replace(/>/g, '>');
// redo all
case 'wikEdRedoAll':
if (wikEdLastVersionwikEd.lastVersion != null) {
obj.changed.plain = wikEdLastVersionwikEd.lastVersion;
}
break;
case 'wikEdImage':
if (obj.changed.plain != '') {
obj.changed.plain = '[[Image:<span class="wikEdInsertHere">' + wikEdConfig['wikEd.config.text']['image filename'] + '</span>|thumb|<span class="wikEdInsertHere">' + wikEdConfig['wikEd.config.text']['image width'] + '</span>px|' + obj.changed.plain + ']]';
}
else {
obj.changed.plain = '[[Image:<span class="wikEdInsertHere">' + wikEdConfig['wikEd.config.text']['image filename'] + '</span>|thumb|<span class="wikEdInsertHere">' + wikEdConfig['wikEd.config.text']['image width'] + '</span>px|<span class="wikEdInsertHere"> </span>]]';
if (obj.focusWord != null) {
if (obj.focusWord.plain != '') {
obj.changed.plain = obj.changed.plain.replace(/$/g, '\n|}\n');
}
else if (wikEdTableModewikEd.tableMode == true) {
obj.changed.plain = '\n<table class="wikitable" border="1"><caption><span class="wikEdInsertHere">' + wikEdConfig['wikEd.config.text']['table caption'] + '</span></caption><tr><th><span class="wikEdinserthere">' + wikEdConfig['wikEd.config.text']['table heading'] + '</span></th><th><span class="wikEdinserthere">' + wikEdConfig['wikEd.config.text']['table heading'] + '</span></th></tr><tr><td><span class="wikEdInsertHere">' + wikEdConfig['wikEd.config.text']['table cell'] + '</span></td><td><span class="wikEdInsertHere">' + wikEdConfig['wikEd.config.text']['table cell'] + '</span></td></tr><tr><td><span class="wikEdInsertHere">' + wikEdConfig['wikEd.config.text']['table cell'] + '</span></td><td><span class="wikEdInsertHere">' + wikEdConfig['wikEd.config.text']['table cell'] + '</span></td></tr></table>\n';
if (obj.focusLine.plain != '') {
obj.changed.plain = '\n' + obj.changed.plain + '\n';
}
else {
obj.changed.plain = '\n{| class="wikitable" border="1"\n|+ <span class="wikEdInsertHere">' + wikEdConfig['wikEd.config.text']['table caption'] + '</span>\n! <span class="wikEdinserthere">' + wikEdConfig['wikEd.config.text']['table heading'] + '</span> !! <span class="wikEdInsertHere">' + wikEdConfig['wikEd.config.text']['table heading'] + '</span>\n|-\n| <span class="wikEdInsertHere">' + wikEdConfig['wikEd.config.text']['table cell'] + '</span> || <span class="wikEdInsertHere">' + wikEdConfig['wikEd.config.text']['table cell'] + '</span>\n|-\n| <span class="wikEdInsertHere">' + wikEdConfig['wikEd.config.text']['table cell'] + '</span> || <span class="wikEdInsertHere">' + wikEdConfig['wikEd.config.text']['table cell'] + '</span>\n|}\n';
if (obj.focusLine.plain != '') {
obj.changed.plain = '\n' + obj.changed.plain + '\n';
// textify: strip html from pasted content
case 'wikEdTextify':
WikEdTextifywikEd.Textify(obj.changed);
if (parameters == 'shift') {
highlightNoTimeOut = true;
}
else {
linkTarget = '<span class="wikEdInsertHere">' + wikEdConfig['wikEd.config.text']['redirect article link'] + '</span>';
}
// append to summary
if (wikEdInputElement['summary']wikEd.wikiGlobals.wgUseAutomaticEditSummaries != nulltrue) {
if (wikEd.inputElement['summary'] != null) { if ( (obj.selection.plain != '') || (obj.selectionWord.plain != '') ) {
wikEdInputElement wikEd.inputElement['summary'].value = wikEdInputElementwikEd.inputElement['summary'].value.replace(/#REDIRECT( \[\[[^\]]*\]\])?(, *)?/g, '');
wikEdInputElement wikEd.inputElement['summary'].value = WikEdAppendToSummarywikEd.AppendToSummary(wikEdInputElementwikEd.inputElement['summary'].value, '#REDIRECT [[' + linkTarget + ']]');
}
else {
wikEdInputElement wikEd.inputElement['summary'].value = WikEdAppendToSummarywikEd.AppendToSummary(wikEdInputElementwikEd.inputElement['summary'].value, '#REDIRECT');
}
}
}
if (/\n/.test(obj.changed.plain) == false) {
if (buttonId == 'wikEdFindNext') {
wikEdInputElementwikEd.inputElement['find'].value = obj.changed.plain;
}
else {
wikEdInputElementwikEd.inputElement['replace'].value = obj.changed.plain;
}
obj.changed.keepSel = true;
// get the find text from the find field
else {
if (wikEdInputElementwikEd.inputElement['find'].value != '') {
findText = wikEdInputElementwikEd.inputElement['find'].value;
}
else {
// get button status
var regExpChecked = WikEdGetAttributewikEd.GetAttribute(wikEdRegExpwikEd.regExp, 'checked');
var caseSensitiveChecked = WikEdGetAttributewikEd.GetAttribute(wikEdCaseSensitivewikEd.caseSensitive, 'checked');
// get the replace text
var replaceText = wikEdInputElementwikEd.inputElement['replace'].value;
// format the find and replace texts for a plain text search
// start at top of text
WikEdRemoveAllRangeswikEd.RemoveAllRanges(obj.sel);
var range = wikEdFrameDocumentwikEd.frameDocument.createRange();
if (wikEdFrameBodywikEd.frameBody.firstChild != null) {
range.setStartBefore(wikEdFrameBodywikEd.frameBody.firstChild);
}
range.collapse(true);
// cycle through matches
var scrollTop = wikEdFrameBodywikEd.frameBody.scrollTop;
do {
// WikEdFindwikEd.Find(obj, findText, caseSensitive, backwards, wrap, useRegExp)
found = WikEdFindwikEd.Find(obj, findText, caseSensitive, false, false, useRegExp);
if (found == true) {
foundRanges.push(obj.changed.range.cloneRange());
// scroll back
if (regExpChecked == 'false') {
wikEdFrameBodywikEd.frameBody.scrollTop = scrollTop;
}
// add the found ranges, Webkit does not support multiple selections
WikEdRemoveAllRangeswikEd.RemoveAllRanges(obj.sel);
for (var i = 0; i < foundRanges.length; i ++) {
obj.sel.addRange(foundRanges[i]);
else {
obj.selectChanged = selectChanged;
WikEdFindwikEd.Find(obj, findText, caseSensitive, backwards, true, useRegExp);
selectChanged = obj.selectChanged;
}
// save search history to settings
if ( (buttonId == 'wikEdFindPrev') || (buttonId == 'wikEdFindNext') || (buttonId == 'wikEdFindAll') ) {
WikEdAddToHistorywikEd.AddToHistory('find');
}
if ( (buttonId == 'wikEdReplacePrev') || (buttonId == 'wikEdReplaceNext') || (buttonId == 'wikEdReplaceAll') ) {
WikEdAddToHistorywikEd.AddToHistory('find');
WikEdAddToHistorywikEd.AddToHistory('replace');
}
obj.changed.keepSel = true;
// to do: only certain changes in multiline tags: comments, tables, subst
case 'wikEdFixBasic':
WikEdFixBasicwikEd.FixBasic(obj.changed);
obj.changed.keepSel = true;
break;
case 'wikEdFixPunct':
WikEdFixPunctwikEd.FixPunct(obj.changed);
obj.changed.keepSel = true;
break;
case 'wikEdFixMath':
WikEdFixMathwikEd.FixMath(obj.changed);
obj.changed.keepSel = true;
break;
case 'wikEdFixChem':
WikEdFixChemwikEd.FixChem(obj.changed);
obj.changed.keepSel = true;
break;
case 'wikEdFixUnicode':
WikEdFixUnicodewikEd.FixUnicode(obj.changed);
obj.changed.keepSel = true;
break;
case 'wikEdFixRedirect':
WikEdFixRedirectCallwikEd.FixRedirectCall(obj.changed);
return;
case 'wikEdFixRedirectReplace':
WikEdFixRedirectReplacewikEd.FixRedirectReplace(obj.changed);
obj.changed.keepSel = true;
break;
case 'wikEdFixUnits':
WikEdFixUnitswikEd.FixUnits(obj.changed);
obj.changed.keepSel = true;
break;
case 'wikEdFixDashes':
WikEdFixDasheswikEd.FixDashes(obj.changed);
obj.changed.keepSel = true;
break;
case 'wikEdFixHtml':
WikEdFixHTMLwikEd.FixHTML(obj.changed);
obj.changed.keepSel = true;
break;
case 'wikEdFixRegExTypo':
if ( (wikEdConfig['wikEd.config.regExTypoFix'] == true) && (wikEdTypoRulesFindwikEd.typoRulesFind.length > 0) ) {
WikEdFixTyposwikEd.FixTypos(obj.changed);
}
else {
break;
case 'wikEdFixCaps':
WikEdFixCapswikEd.FixCaps(obj.changed);
obj.changed.keepSel = true;
break;
case 'wikEdFixAll':
WikEdFixAllwikEd.FixAll(obj.changed);
obj.changed.keepSel = true;
break;
case 'wikEdTablify':
obj.changed.keepSel = true;
if (wikEdTableModewikEd.tableMode == true) {
WikEdWikiTableToHtmlwikEd.WikiTableToHtml(obj.changed);
}
break;
// pause frame spellchecking
var pauseFrameSpellchecking = false;
var frameSpellchecking = wikEdFrameBodywikEd.frameBody.spellcheck;
if (frameSpellchecking == true) {
var wholeLength = 0;
if ( (changedLength > 10000) || (wholeLength > 10000) ) {
pauseFrameSpellchecking = true;
wikEdFrameBodywikEd.frameBody.spellcheck = false;
}
}
// get the scroll position
var frameScrollTop = wikEdFrameBodywikEd.frameBody.scrollTop;
var frameScrollLeft = wikEdFrameBodywikEd.frameBody.scrollLeft;
// update the selection ranges, do not add any text changes
if (obj.changed.plain == null) {
if (buttonId != 'wikEdFindAll') {
WikEdRemoveAllRangeswikEd.RemoveAllRanges(obj.sel);
obj.sel.addRange(obj.changed.range);
// scroll the selected text into the viewport
if (selectChanged != false) {
WikEdScrollToSelectionwikEd.ScrollToSelection();
}
}
// a text change erases the last version for redo all
if ( (buttonId != 'wikEdUndo') && (buttonId != 'wikEdRedo') && (buttonId != 'wikEdUndoAll') ) {
wikEdLastVersionwikEd.lastVersion = null;
}
obj.whole = true;
}
WikEdHighlightSyntaxwikEd.HighlightSyntax(obj, highlightNoTimeOut);
}
// make changed range text the current selection
WikEdRemoveAllRangeswikEd.RemoveAllRanges(obj.sel);
var range = obj.changed.range;
obj.sel.addRange(range);
var reselectAfter = '';
if (obj.changed.from != 'whole') {
wikEdInsertCounterwikEd.insertCounter ++;
reselectBefore = '<span class="wikEdScrollBefore" id="wikEdScrollBefore' + wikEdInsertCounterwikEd.insertCounter + '"></span>';
reselectAfter = '<span class="wikEdScrollAfter" id="wikEdScrollAfter' + wikEdInsertCounterwikEd.insertCounter + '"></span>';
}
WikEdFrameExecCommandwikEd.FrameExecCommand('inserthtml', reselectBefore + obj.html + reselectAfter);
}
else if (obj.sel.isCollapsed == false) {
WikEdFrameExecCommandwikEd.FrameExecCommand('delete');
}
// select the whole text after replacing the whole text and scroll to same height
if (obj.changed.from == 'whole') {
WikEdRemoveAllRangeswikEd.RemoveAllRanges(obj.sel);
wikEdFrameBodywikEd.frameBody.scrollTop = frameScrollTop;
var range = wikEdFrameDocumentwikEd.frameDocument.createRange();
range.setStartBefore(wikEdFrameBodywikEd.frameBody.firstChild);
range.setEndAfter(wikEdFrameBodywikEd.frameBody.lastChild);
obj.sel.addRange(range);
selectChanged = false;
// select the changed text and scroll it into the viewport
else if (selectChanged != false) {
WikEdRemoveAllRangeswikEd.RemoveAllRanges(obj.sel);
var range = wikEdFrameDocumentwikEd.frameDocument.createRange();
var startNodeReselect = wikEdFrameDocumentwikEd.frameDocument.getElementById('wikEdScrollBefore' + wikEdInsertCounterwikEd.insertCounter);
var endNodeReselect = wikEdFrameDocumentwikEd.frameDocument.getElementById('wikEdScrollAfter' + wikEdInsertCounterwikEd.insertCounter);
range.setStartAfter(startNodeReselect);
// should be range.setEndAfter, but that causes caret at start of next line due to https://bugzilla.mozilla.org/show_bug.cgi?id=587461
range.setEndBefore(endNodeReselect);
obj.sel.addRange(range);
WikEdScrollToNodeswikEd.ScrollToNodes(startNodeReselect, endNodeReselect);
}
}
) {
if (obj.sel.rangeCount == 0) {
obj.sel.collapse(wikEdFrameBodywikEd.frameBody, 0);
}
else {
// focus edit area to continue editing as there is no selection that would be overwritten
wikEdFrameWindowwikEd.frameWindow.focus();
}
// grey out inactive buttons
wikEd.InactiveButtons();
WikEdInactiveButtons();
// add event handlers to unhide refs and templates
// add ref and template names to hide buttons
wikEd.HighlightNamedHideButtons();
WikEdHighlightNamedHideButtons();
// add event handlers to unhide refs and templates
wikEd.HideAddHandlers();
WikEdHideAddHandlers();
// add event handlers to make highlighted frame links ctrl-clickable
wikEd.LinkifyAddHandlers();
WikEdLinkifyAddHandlers();
}
// resume frame spellchecking
if (pauseFrameSpellchecking == true) {
wikEdFrameBodywikEd.frameBody.spellcheck = true;
}
//
// WikEdLocalPreviewAjaxHandlerwikEd.LocalPreviewAjaxHandler: process the returned article preview
//
windowwikEd.WikEdLocalPreviewAjaxHandlerLocalPreviewAjaxHandler = function(ajax) {
wikEdPreviewIsAjaxwikEd.previewIsAjax = true;
// get response
while ( (regExpMatch = /<()style\b[^>]*?type=\"text\/css\">((.|\n)*?)<\/style>/gi.exec(html)) != null) {
var css = regExpMatch[2];
var stylesheet = new WikEdStyleSheetwikEd.StyleSheet(document);
stylesheet.WikEdAddRulesAddRules(css);
}
}
);
wikEdPreviewBoxwikEd.previewBox.innerHTML = html;
// init sortable tables (wikibits.js)
// scroll to button, textarea, or preview field
wikEd.ScrollToPreview();
WikEdScrollToPreview();
return;
};
//
// WikEdFilePreviewAjaxHandlerwikEd.FilePreviewAjaxHandler: process the returned image addresses
//
windowwikEd.WikEdFilePreviewAjaxHandlerFilePreviewAjaxHandler = function(ajax) {
// get response
// parse response into file url cache
var regExpFile = new RegExp('\\n((Image|File|' + wikEdConfig['wikEd.config.text']['wikicode Image'] + '|' + wikEdConfig['wikEd.config.text']['wikicode File'] + '):[^ ]+) +(\\d+) +(.*)', 'ig');
var regExpMatch;
while ( (regExpMatch = regExpFile.exec(html)) != null) {
}
else {
fileObj.url = wikEdConfig['wikEd.config.image']['noFile'];
fileObj.width = 16;
fileObj.height = 16;
}
wikEdFilePreviewCachewikEd.filePreviewCache['wikEd' + file + filePreviewSize] = fileObj;
}
// cycle through file preview spans and add missing images as background
for (var i = 0; i < wikEdFilePreviewNowikEd.filePreviewNo; i ++) {
if (wikEdFilePreviewIdswikEd.filePreviewIds[i] != '') {
var span = wikEdFrameDocumentwikEd.frameDocument.getElementById('wikEdFilePreview' + i);
var fileNameSize = wikEdFilePreviewIdswikEd.filePreviewIds[i];
var fileObj = wikEdFilePreviewCachewikEd.filePreviewCache['wikEd' + fileNameSize];
if (fileObj != null) {
span.style.backgroundImage = 'url(' + fileObj.url + ')';
span.style.display = 'block';
}
wikEdFilePreviewIdswikEd.filePreviewIds[i] = '';
}
}
//
// WikEdScrollToPreviewwikEd.ScrollToPreview: scroll to edit buttons, textarea, or preview field depending on current position
//
windowwikEd.WikEdScrollToPreviewScrollToPreview = function() {
// reset fixed height to auto
wikEdPreviewBoxwikEd.previewBox.style.height = 'auto';
var scrollOffset = window.pageYOffset || document.body.scrollTop;
var inputOffset = WikEdGetOffsetTopwikEd.GetOffsetTop(wikEdInputWrapperwikEd.inputWrapper);
var editOffset = WikEdGetOffsetTopwikEd.GetOffsetTop(wikEdEditWrapperwikEd.editWrapper);
var submitOffset = 0;
if (wikEdSaveButtonwikEd.saveButton != null) {
submitOffset = WikEdGetOffsetTopwikEd.GetOffsetTop(wikEdSaveButtonwikEd.saveButton);
}
else if (wikEdPreviewButtonwikEd.previewButton != null) {
submitOffset = WikEdGetOffsetTopwikEd.GetOffsetTop(wikEdPreviewButtonwikEd.previewButton);
}
else if (wikEdDiffPreviewButtonwikEd.diffPreviewButton != null) {
submitOffset = WikEdGetOffsetTopwikEd.GetOffsetTop(wikEdDiffPreviewButtonwikEd.diffPreviewButton);
}
var editHeight = wikEdEditWrapperwikEd.editWrapper.clientHeight;
if (scrollOffset > submitOffset) {
//
// WikEdLinkifyAddHandlerswikEd.LinkifyAddHandlers: register click handlers to make highlighted frame links ctrl-clickable (linkify)
//
windowwikEd.WikEdLinkifyAddHandlersLinkifyAddHandlers = function() {
if (wikEd.config.linkify != true) {
// reset frame timeout
// window.clearTimeout(wikEdLinkifyTimeoutId);
// wikEdLinkifyTimeoutId = null;
if (wikEdConfig['linkify'] != true) {
return;
}
// much faster than individual getElementById in SeaMonkey 1.1.18
var spans = wikEdFrameDocumentwikEd.frameDocument.getElementsByTagName('span');
for (var i = 0; i < spans.length; i ++) {
var spanId = spans[i].id;
if (spanId != null) {
if (spanId.indexOf('wikEdLinkify') == 0) {
WikEdAddEventListenerwikEd.AddEventListener(spans[i], 'click', WikEdLinkifyHandlerwikEd.LinkifyHandler, true);
}
}
//
// WikEdHighlightNamedHideButtonswikEd.HighlightNamedHideButtons: register :before text for named hiding buttons
//
windowwikEd.WikEdHighlightNamedHideButtonsHighlightNamedHideButtons = function() {
if (wikEdRefHidewikEd.refHide != true) {
return;
}
// references
for (var i = 0; i < wikEdReferenceArraywikEd.referenceArray.length; i ++) {
if (wikEdReferenceArraywikEd.referenceArray[i].added == true) {
continue;
}
rules += '.wikEdRefButtonShow' + i + ' { border: 1px solid; border-color: #000 #e8e8e8 #e8e8e8 #000; background: #c8c4c0; }\n';
rules += '.wikEdRefButton' + i + ':before, .wikEdRefButtonShow' + i + ':before { content: "' + wikEdConfig['wikEd.config.text']['hideRef'] + ' ' + wikEdReferenceArraywikEd.referenceArray[i].text + '"; line-height: 0.75em; font-size: 65%; color: #000; font-family: sans-serif; }\n';
wikEdReferenceArraywikEd.referenceArray[i].added = true;
}
// templates
for (var i = 0; i < wikEdTemplateArraywikEd.templateArray.length; i ++) {
if (wikEdTemplateArraywikEd.templateArray[i].added == true) {
continue;
}
rules += '.wikEdTemplButtonShow' + i + ' { border: 1px solid; border-color: #000 #e8e8e8 #e8e8e8 #000; background: #c8c4c0; }\n';
rules += '.wikEdTemplButton' + i + ':before, .wikEdTemplButtonShow' + i + ':before { content: "' + wikEdConfig['wikEd.config.text']['hideTempl'] + ' ' + wikEdTemplateArraywikEd.templateArray[i].text + '"; line-height: 0.75em; font-size: 65%; color: #000; font-family: sans-serif; }\n';
wikEdTemplateArraywikEd.templateArray[i].added = true;
}
// character entities
for (var i = 0; i < wikEdCharEntityArraywikEd.charEntityArray.length; i ++) {
if (wikEdCharEntityArraywikEd.charEntityArray[i].added == true) {
continue;
}
var character = wikEdCharEntityArraywikEd.charEntityArray[i].text;
if (character == '"') {
character = '\\' + character;
rules += '.wikEdCharEntityButton' + i + ':before, .wikEdCharEntityButtonShow' + i + ':before { content: "' + character + '"; }\n';
wikEdCharEntityArraywikEd.charEntityArray[i].added = true;
}
// add or replace existing css rules
if (rules != '') {
wikEd.HighlightNamedHideButtonsStylesheet.AddRules(rules);
WikEdHighlightNamedHideButtonsStylesheet.WikEdAddRules(rules);
}
return;
//
// WikEdHideAddHandlerswikEd.HideAddHandlers: register mouseover handlers for tabs to unhide refs, templates, and character entities
//
windowwikEd.WikEdHideAddHandlersHideAddHandlers = function() {
if ( (wikEdConfig['wikEd.config.hideContent'] != true) || (wikEdRefHidewikEd.refHide != true) ) {
return;
}
var hideButton = wikEdFrameDocumentwikEd.frameDocument.getElementsByTagName('button');
for (var i = 0; i < hideButton.length; i ++) {
var tabClass = hideButton[i].className;
(tabClass.indexOf('wikEdCharEntityButton') == 0)
) {
WikEdAddEventListenerwikEd.AddEventListener(hideButton[i], 'click', WikEdHideShowHandlerwikEd.HideShowHandler, true);
if (
(tabClass.indexOf('wikEdRefButtonShow') == -1) &&
(tabClass.indexOf('wikEdCharEntityButtonShow') == -1)
) {
WikEdAddEventListenerwikEd.AddEventListener(hideButton[i], 'mouseover', WikEdHideShowHandlerwikEd.HideShowHandler, true);
}
}
//
// WikEdHideShowHandlerwikEd.HideShowHandler: display hidden ref or template on mouse over hide tab
//
windowwikEd.WikEdHideShowHandlerHideShowHandler = function(event) {
// event compatibility fixes
event = WikEdEventwikEd.EventWrapper(event, this);
if (event == null) {
return;
// get hide text
hide = WikEdGetNextSiblingNodewikEd.GetNextSiblingNode(hideContainer);
if (hide != null) {
if (/^wikEd(Ref|Templ|TemplNs|CharEntity)(Show)?$/.test(hide.className) == false) {
hide = hideTarget;
hideContainer = WikEdGetPreviousSiblingNodewikEd.GetPreviousSiblingNode(hideTarget);
if (hideContainer != null) {
if (/^wikEd(Ref|Templ|CharEntity)Container$/.test(hideContainer.className) == false) {
// get button
hideButton = WikEdGetFirstChildNodewikEd.GetFirstChildNode(hideContainer);
if (hideButton != null) {
if (/^wikEd(Ref|Templ|CharEntity)Button(Show)?\d*$/.test(hideButton.className) == false) {
hide.style.display = 'inline';
}
WikEdRemoveEventListenerwikEd.RemoveEventListener(hideButton, 'mouseover', WikEdHideShowHandlerwikEd.HideShowHandler, true);
WikEdAddEventListenerwikEd.AddEventListener(hide, 'mouseout', WikEdHideShowHandlerwikEd.HideShowHandler, true);
WikEdAddEventListenerwikEd.AddEventListener(hideButton, 'mouseout', WikEdHideShowHandlerwikEd.HideShowHandler, true);
}
var node = hideInto;
while (node != null) {
if (node == wikEdFrameBodywikEd.frameBody) {
hideOut = true;
break;
if (hideOut == true) {
hide.style.display = 'none';
WikEdRemoveEventListenerwikEd.RemoveEventListener(hide, 'mouseout', WikEdHideShowHandlerwikEd.HideShowHandler, true);
WikEdRemoveEventListenerwikEd.RemoveEventListener(hideButton, 'mouseout', WikEdHideShowHandlerwikEd.HideShowHandler, true);
WikEdAddEventListenerwikEd.AddEventListener(hideButton, 'mouseover', WikEdHideShowHandlerwikEd.HideShowHandler, true);
// move cursor out of hidden text
WikEdUnhideCursorwikEd.UnhideCursor(hideContainer, hide);
}
}
hideButton.className = hideButtonClass;
hideButton.title = wikEdConfig['wikEd.config.text'][hideButtonClass.replace(/\d+$/g, '') + 'Tooltip'];
WikEdAddEventListenerwikEd.AddEventListener(hideButton, 'mouseover', WikEdHideShowHandlerwikEd.HideShowHandler, true);
// move cursor out of hidden text
WikEdUnhideCursorwikEd.UnhideCursor(hideContainer, hide);
}
hideButton.className = hideButtonClass;
hideButton.title = wikEdConfig['wikEd.config.text'][hideButtonClass.replace(/\d+$/g, '') + 'Tooltip'];
WikEdRemoveEventListenerwikEd.RemoveEventListener(hideButton, 'mouseover', WikEdHideShowHandlerwikEd.HideShowHandler, true);
WikEdRemoveEventListenerwikEd.RemoveEventListener(hide, 'mouseout', WikEdHideShowHandlerwikEd.HideShowHandler, true);
WikEdRemoveEventListenerwikEd.RemoveEventListener(hideButton, 'mouseout', WikEdHideShowHandlerwikEd.HideShowHandler, true);
}
}
//
// WikEdUnhideCursorwikEd.UnhideCursor: move cursor out of hidden element for WikEdHideShowHandlerwikEd.HideShowHandler
//
windowwikEd.WikEdUnhideCursorUnhideCursor = function(firstHiddenParent, lastHiddenParent) {
// get selection and clone range
var sel = WikEdGetSelectionwikEd.GetSelection();
var range = sel.getRangeAt(sel.rangeCount - 1);
if (range != null) {
var node = range.startContainer;
while (node != null) {
if (node == wikEdFrameBodywikEd.frameBody) {
break;
}
var node = range.endContainer;
while (node != null) {
if (node == wikEdFrameBodywikEd.frameBody) {
break;
}
//
// WikEdGetTextwikEd.GetText: get the text fragments to manipulate
//
windowwikEd.WikEdGetTextGetText = function(obj, whichFragment, wikify) {
// remove dynamically inserted nodes by other scripts
wikEd.CleanNodes(wikEd.frameDocument);
WikEdCleanNodes(wikEdFrameDocument);
// get selection object
if (obj.sel == null) {
obj.sel = WikEdGetSelectionwikEd.GetSelection();
}
// set cursor range
obj.cursor.range = wikEdFrameDocumentwikEd.frameDocument.createRange();
WikEdSetRangeStartwikEd.SetRangeStart(obj.cursor.range, obj.sel.focusNode, obj.sel.focusOffset);
obj.cursor.range.collapse(true);
}
// set whole range
obj.whole.range = wikEdFrameDocumentwikEd.frameDocument.createRange();
obj.whole.range.setStart(wikEdFrameBodywikEd.frameBody, 0);
obj.whole.range.setEnd(wikEdFrameBodywikEd.frameBody, wikEdFrameBodywikEd.frameBody.childNodes.length);
// get whole plain text
WikEdGetInnerHTMLwikEd.GetInnerHTML(obj.whole, wikEdFrameBodywikEd.frameBody);
obj.whole.code = obj.whole.html;
WikEdRemoveHighlightingWikifywikEd.RemoveHighlightingWikify(obj.whole, wikify);
obj.whole.plain = obj.whole.html;
obj.whole.plain = obj.whole.plain.replace(/[\n ]*<br\b[^>]*>[\n ]*()/g, '\n');
// copy range to document fragment
if (obj.sel.rangeCount == 0) {
obj.sel.collapse(wikEdFrameBodywikEd.frameBody, 0);
}
obj.selection.range = obj.sel.getRangeAt(obj.sel.rangeCount - 1);
// get selected text
WikEdGetInnerHTMLwikEd.GetInnerHTML(obj.selection, documentFragment);
obj.selection.code = obj.selection.html;
WikEdRemoveHighlightingWikifywikEd.RemoveHighlightingWikify(obj.selection, wikify);
obj.selection.plain = obj.selection.html;
obj.selection.plain = obj.selection.plain.replace(/[\n ]*<br\b[^>]*>[\n ]*()/g, '\n');
'from': 'focusWord',
'keepSel': false,
'range': wikEdFrameDocumentwikEd.frameDocument.createRange(),
'tableEdit': obj.tableEdit
};
'from': 'focusLine',
'keepSel': false,
'range': wikEdFrameDocumentwikEd.frameDocument.createRange(),
'tableEdit': obj.tableEdit
};
'from': 'focusPara',
'keepSel': false,
'range': wikEdFrameDocumentwikEd.frameDocument.createRange(),
'tableEdit': obj.tableEdit
};
// find the word and line boundaries
WikEdFindBoundarieswikEd.FindBoundaries(obj.focusWord, obj.focusLine, obj.focusPara, obj.whole, obj.cursor);
// get the wikified plain text for the word under the cursor
var documentFragment = obj.focusWord.range.cloneContents();
WikEdGetInnerHTMLwikEd.GetInnerHTML(obj.focusWord, documentFragment);
obj.focusWord.code = obj.focusWord.html;
WikEdRemoveHighlightingWikifywikEd.RemoveHighlightingWikify(obj.focusWord, wikify);
obj.focusWord.plain = obj.focusWord.html;
obj.focusWord.plain = obj.focusWord.plain.replace(/[\n ]*<br\b[^>]*>[\n ]*()/g, '\n');
// get the wikified plain text for the line under the cursor
var documentFragment = obj.focusLine.range.cloneContents();
WikEdGetInnerHTMLwikEd.GetInnerHTML(obj.focusLine, documentFragment);
obj.focusLine.code = obj.focusLine.html;
WikEdRemoveHighlightingWikifywikEd.RemoveHighlightingWikify(obj.focusLine, wikify);
obj.focusLine.plain = obj.focusLine.html;
obj.focusLine.plain = obj.focusLine.plain.replace(/[\n ]*<br\b[^>]*>[\n ]*()/g, '\n');
// get the wikified plain text for the paragraph under the cursor
var documentFragment = obj.focusPara.range.cloneContents();
WikEdGetInnerHTMLwikEd.GetInnerHTML(obj.focusPara, documentFragment);
obj.focusPara.code = obj.focusPara.html;
WikEdRemoveHighlightingWikifywikEd.RemoveHighlightingWikify(obj.focusPara, wikify);
obj.focusPara.plain = obj.focusPara.html;
obj.focusPara.plain = obj.focusPara.plain.replace(/[\n ]*<br\b[^>]*>[\n ]*()/g, '\n');
'from': 'selectionWord',
'keepSel': false,
'range': wikEdFrameDocumentwikEd.frameDocument.createRange(),
'tableEdit': obj.tableEdit
};
'from': 'selectionLine',
'keepSel': false,
'range': wikEdFrameDocumentwikEd.frameDocument.createRange(),
'tableEdit': obj.tableEdit
};
'from': 'selectionPara',
'keepSel': false,
'range': wikEdFrameDocumentwikEd.frameDocument.createRange(),
'tableEdit': obj.tableEdit
};
// find the word and line boundaries
WikEdFindBoundarieswikEd.FindBoundaries(obj.selectionWord, obj.selectionLine, obj.selectionPara, obj.whole, obj.selection);
// get the wikified plain text for the words under the selection
var documentFragment = obj.selectionWord.range.cloneContents();
WikEdGetInnerHTMLwikEd.GetInnerHTML(obj.selectionWord, documentFragment);
obj.selectionWord.code = obj.selectionWord.html;
WikEdRemoveHighlightingWikifywikEd.RemoveHighlightingWikify(obj.selectionWord, wikify);
obj.selectionWord.plain = obj.selectionWord.html;
obj.selectionWord.plain = obj.selectionWord.plain.replace(/[\n ]*<br\b[^>]*>[\n ]*()/g, '\n');
// get the wikified plain text for the lines under the selection
var documentFragment = obj.selectionLine.range.cloneContents();
WikEdGetInnerHTMLwikEd.GetInnerHTML(obj.selectionLine, documentFragment);
obj.selectionLine.code = obj.selectionLine.html;
WikEdRemoveHighlightingWikifywikEd.RemoveHighlightingWikify(obj.selectionLine, wikify);
obj.selectionLine.plain = obj.selectionLine.html;
obj.selectionLine.plain = obj.selectionLine.plain.replace(/[\n ]*<br\b[^>]*>[\n ]*()/g, '\n');
// get the wikified plain text for the paragraph under the selection
var documentFragment = obj.selectionPara.range.cloneContents();
WikEdGetInnerHTMLwikEd.GetInnerHTML(obj.selectionPara, documentFragment);
obj.selectionPara.code = obj.selectionPara.html;
WikEdRemoveHighlightingWikifywikEd.RemoveHighlightingWikify(obj.selectionPara, wikify);
obj.selectionPara.plain = obj.selectionPara.html;
obj.selectionPara.plain = obj.selectionPara.plain.replace(/[\n ]*<br\b[^>]*>[\n ]*()/g, '\n');
//
// WikEdFindwikEd.Find: custom find function with regexp properties, sets obj.changed.range, uses obj ranges
//
windowwikEd.WikEdFindFind = function(obj, findText, caseSensitive, backwards, wrap, useRegExp) {
var found = false;
// get selection
if (obj.sel == null) {
obj.sel = WikEdGetSelectionwikEd.GetSelection();
}
if (obj.sel.rangeCount == 0) {
obj.sel.collapse(wikEdFrameBodywikEd.frameBody, 0);
}
var range = obj.sel.getRangeAt(obj.sel.rangeCount - 1);
// empty the range to avoid error messages for reverse direction ranges
obj.changed.range = wikEdFrameDocumentwikEd.frameDocument.createRange();
// regexp instead of plain text search for browser lacking .find (Opera), built in .find() ignores newlines
if (useRegExp != true) {
if (typeof(wikEdFrameWindowwikEd.frameWindow.find) != 'function') {
useRegExp = true;
findText = findText.replace(/([\\\^\$\*\+\?\.\(\)\[\]\{\}\:\=\!\|\,\-])/g, '\\$1');
// parameters: window.find(string, caseSensitive, backwards, wrapAround, wholeWord, searchInFrames, showDialog)
found = wikEdFrameWindowwikEd.frameWindow.find(findText, caseSensitive, backwards, wrap, false, true, false);
if (found == true) {
range = obj.sel.getRangeAt(obj.sel.rangeCount - 1);
// perform find
if (obj.plainArray === undefined) {
WikEdParseDOMwikEd.ParseDOM(obj, wikEdFrameBodywikEd.frameBody);
}
var regExpMatch = [];
var endNode = obj.plainNode[j];
var endOffset = regExpMatch.index + regExpMatch[0].length - obj.plainStart[j];
WikEdSetRangewikEd.SetRange(obj.changed.range, startNode, startOffset, endNode, endOffset);
obj.selectChanged = true;
}
//
// WikEdScrollToSelectionwikEd.ScrollToSelection: scroll iframe range into viewport
// for MSIE see http://www.webmasterworld.com/javascript/3820483.htm
// removig helper nodes gives Error: Node was not found = NS_ERROR_DOM_NOT_FOUND_ERR for certain undo actions
// adding nodes breaks the undo history in Chrome and Opera
windowwikEd.WikEdScrollToSelectionScrollToSelection = function(frameScrollTop, frameScrollLeft, removeHelperNodes) {
// get selection and clone range
var obj = {};
obj.sel = WikEdGetSelectionwikEd.GetSelection();
if (obj.sel.rangeCount == 0) {
return;
range = obj.sel.getRangeAt(obj.sel.rangeCount - 1);
var documentFragment = range.cloneContents();
WikEdGetInnerHTMLwikEd.GetInnerHTML(obj, documentFragment);
var plainText = obj.plain;
plainText = plainText.replace(/</g, '<');
// select using backwards built-in find
if ( (typeof(wikEdFrameWindowwikEd.frameWindow.find) == 'function') && (plainText.length > 0) ) {
obj.sel.collapseToEnd();
// Chrome; parameters: WikEdFindwikEd.Find(obj, findText, caseSensitive, backwards, wrap, useRegExp)
var found = WikEdFindwikEd.Find(obj, plainText, true, true, false, false);
// Firefox (\n removed, \xa0 as blank)
if ( (found == false) && (/\n/.test(plainText) == true) ) {
plainText = range.toString();
WikEdFindwikEd.Find(obj, plainText, true, true, false, false);
}
}
// select empty range using backwards built-in find for previous character
else if ( (typeof(wikEdFrameWindowwikEd.frameWindow.find) == 'function') && (plainText.length == 0) ) {
var backwards = true;
// get plain text from start to selection
var rangeClone = range.cloneRange();
rangeClone.setStartBefore(wikEdFrameBodywikEd.frameBody.firstChild);
var documentFragment = rangeClone.cloneContents();
WikEdGetInnerHTMLwikEd.GetInnerHTML(obj, documentFragment);
var plainText = obj.plain;
plainText = plainText.replace(/</g, '<');
var rangeClone = range.cloneRange();
rangeClone.setEndAfter(wikEdFrameBodywikEd.frameBody.lastChild);
var documentFragment = rangeClone.cloneContents();
WikEdGetInnerHTMLwikEd.GetInnerHTML(obj, documentFragment);
var plainText = obj.plain;
plainText = plainText.replace(/</g, '<');
}
// Chrome; parameters: WikEdFindwikEd.Find(obj, findText, caseSensitive, backwards, wrap, useRegExp)
var found = WikEdFindwikEd.Find(obj, plainText, true, backwards, false, false);
// Firefox
plainText = plainText.replace(/\n/g, '');
plainText = plainText.replace(/\xa0/g, ' ');
WikEdFindwikEd.Find(obj, plainText, true, backwards, false, false);
}
if (backwards == true) {
// spans to be temporarily inserted before and after selection range to get range position
wikEdInsertCounterwikEd.insertCounter ++;
var scrollStartNode = wikEdFrameDocumentwikEd.frameDocument.createElement('span');
scrollStartNode.className = 'wikEdScrollBefore';
scrollStartNode.id = 'wikEdScrollBefore' + wikEdInsertCounterwikEd.insertCounter;
var scrollEndNode = wikEdFrameDocumentwikEd.frameDocument.createElement('span');
scrollEndNode.className = 'wikEdScrollAfter';
scrollEndNode.id = 'wikEdScrollAfter' + wikEdInsertCounterwikEd.insertCounter;
// get the range border nodes and offsets
}
WikEdScrollToNodeswikEd.ScrollToNodes(scrollStartNode, scrollEndNode);
// set selection
range.setStartBefore(scrollStartNode);
range.setEndAfter(scrollEndNode);
WikEdRemoveAllRangeswikEd.RemoveAllRanges(sel);
sel.addRange(range);
}
//
// WikEdScrollToNodeswikEd.ScrollToNodes: scroll iframe range into viewport
//
windowwikEd.WikEdScrollToNodesScrollToNodes = function(scrollStartNode, scrollEndNode) {
// absolute span for line height detection (Opera and Chrome do not vertically align empty span at bottom)
var lineHeightNode = wikEdFrameDocumentwikEd.frameDocument.createElement('span');
lineHeightNode.innerHTML = ' ';
lineHeightNode.className = 'wikEdScrollLineHeight';
scrollStartNode.style.verticalAlign = 'top';
scrollEndNode.style.verticalAlign = 'top';
var startOffsetLeft = WikEdGetOffsetLeftwikEd.GetOffsetLeft(scrollStartNode);
var startOffsetTop = WikEdGetOffsetTopwikEd.GetOffsetTop(scrollStartNode);
var endOffsetRight = WikEdGetOffsetLeftwikEd.GetOffsetLeft(scrollEndNode);
var endOffsetBottom = WikEdGetOffsetTopwikEd.GetOffsetTop(scrollEndNode);
scrollStartNode.style.verticalAlign = 'baseline';
scrollEndNode.style.verticalAlign = 'baseline';
var frameScrollTop = wikEdFrameBodywikEd.frameBody.scrollTop;
var frameScrollLeft = wikEdFrameBodywikEd.frameBody.scrollLeft;
var x = frameScrollLeft;
var y = frameScrollTop;
// selection below viewport
else if (startOffsetTop > frameScrollTop + wikEdFrameBodywikEd.frameBody.clientHeight) {
y = endOffsetBottom - wikEdFrameBodywikEd.frameBody.clientHeight + lineHeight;
}
// selection left of viewport
if (endOffsetRight < frameScrollLeft) {
if (endOffsetRight <= wikEdFrameBodywikEd.frameBody.clientWidth) {
x = 0;
}
// selection right of viewport
else if (startOffsetLeft > frameScrollLeft + wikEdFrameBodywikEd.frameBody.clientWidth) {
x = endOffsetRight - wikEdFrameBodywikEd.frameBody.clientWidth;
}
// do scroll
wikEdFrameWindowwikEd.frameWindow.scrollTo(x, y);
return;
//
// WikEdWikiTableToHtmlwikEd.WikiTableToHtml: convert wiki tables to html // {{TABLE}}
//
windowwikEd.WikEdWikiTableToHtmlWikiTableToHtml = function(obj) {
////
//
// WikEdTextifywikEd.Textify: strip html off of text
//
windowwikEd.WikEdTextifyTextify = function(obj) {
// convert html to plain
// <div>...</div> to <br> for Safari, Chrome, WebKit
if ( (wikEdSafariwikEd.safari == true) || (wikEdChromewikEd.chrome == true) || (wikEdWebKitwikEd.webkit == true) ) {
var isRemove = [];
obj.plain = obj.plain.replace(/(<(\/?)div\b([^>]*)>)/g,
// tables
if (wikEdTableModewikEd.tableMode == true) {
// override pasted table class // {{TABLE}}
// textify table
else if (wikEdTableModewikEd.tableMode == false) {
obj.plain = obj.plain.replace(/<\/?(table|caption)\b.*?>/g, '\x00');
obj.plain = obj.plain.replace(/<\/(tr|th|td)>/g, '\x00');
//
// WikEdInactiveButtonswikEd.InactiveButtons: grey out inactive buttons, called after every change and click
//
windowwikEd.WikEdInactiveButtonsInactiveButtons = function() {
// undo
if (wikEdFrameDocumentwikEd.frameDocument.queryCommandEnabled('undo') == true ) {
document.getElementById('wikEdUndo').className = 'wikEdButton';
document.getElementById('wikEdUndoAll').className = 'wikEdButton';
// redo
if (wikEdFrameDocumentwikEd.frameDocument.queryCommandEnabled('redo') == true ) {
document.getElementById('wikEdRedo').className = 'wikEdButton';
}
// redo all
if (wikEdLastVersionwikEd.lastVersion != null) {
document.getElementById('wikEdRedoAll').className = 'wikEdButton';
}
//
// WikEdFixBasicwikEd.FixBasic: fix characters, spaces, empty lines, certain headings, needed for all fixing functions
//
//// change: double spaces ok after dot
windowwikEd.WikEdFixBasicFixBasic = function(obj) {
// non-breaking space character to normal space
// uppercase well known headings
var regExp = new RegExp('\\n=+ ' + wikEdConfig['wikEd.config.text']['External links'] + '? =+\\n', 'gi');
obj.plain = obj.plain.replace(regExp, '\n== ' + wikEdConfig['wikEd.config.text']['External links'] + ' ==\n');
regExp = new RegExp('\\n=+ ' + wikEdConfig['wikEd.config.text']['See also'] + ' =+\\n', 'gi');
obj.plain = obj.plain.replace(regExp, '\n== ' + wikEdConfig['wikEd.config.text']['See also'] + ' ==\n');
regExp = new RegExp('\\n=+ ' + wikEdConfig['wikEd.config.text']['References'] + '? =+\\n', 'gi');
obj.plain = obj.plain.replace(regExp, '\n== ' + wikEdConfig['wikEd.config.text']['References'] + ' ==\n');
// add space after * # : ; (list) and after {| |- |+ | (table), spare #REDIRECT
// empty line before and after images
var regExp = new RegExp('^(\\[\\[(Image|File|' + wikEdConfig['wikEd.config.text']['wikicode Image'] + '|' + wikEdConfig['wikEd.config.text']['wikicode File'] + '):.*?\\]\\])', 'ig');
line = line.replace(regExp, '\n$1');
regExp = new RegExp('(\\[\\[(Image|File|' + wikEdConfig['wikEd.config.text']['wikicode Image'] + '|' + wikEdConfig['wikEd.config.text']['wikicode File'] + '):.*?(\\[\\[.*?\\]\\].*?)*\\]\\])$', 'ig');
line = line.replace(regExp, '$1\n');
// empty line before and after categories
var regExp = new RegExp('( |\\n)*(\\[\\[(Category|' + wikEdConfig['wikEd.config.text']['wikicode Category'] + ')\\s*:[^\\n]*?\\]\\])( |\\n)*', 'gi');
obj.plain = obj.plain.replace(regExp, '\n\n$2\n\n');
// categories not separated by empty lines (lookahead)
regExp = new RegExp('(\\[\\[(Category|' + wikEdConfig['wikEd.config.text']['wikicode Category'] + ')\\s*:[^\\n]*?\\]\\])\\n*(?=\\[\\[(Category|' + wikEdConfig['wikEd.config.text']['wikicode Category'] + ')\\s*:[^\\n]*?\\]\\])', 'gi');
obj.plain = obj.plain.replace(regExp, '$1\n');
//
// WikEdFixPunctwikEd.FixPunct: remove (or add) space before .,:;
//
windowwikEd.WikEdFixPunctFixPunct = function(obj) {
WikEdFixBasicwikEd.FixBasic(obj);
// protect punctuation in charents
);
if (wikEdConfig['wikEd.config.fixPunctFrench'] == true) {
obj.plain = obj.plain.replace(/(«) *()/g, '$1 ');
obj.plain = obj.plain.replace(/ *(»)/g, ' $1');
//
// WikEdFixUnicodewikEd.FixUnicode: fix unicode character representations
//
windowwikEd.WikEdFixUnicodeFixUnicode = function(obj) {
// replace supported chars: change decimal, hex, and character entities into actual char
for (var i = 0; i < wikEdSupportedCharswikEd.supportedChars.length; i ++) {
var replaceChar = String.fromCharCode(parseInt(wikEdSupportedCharswikEd.supportedChars[i][0], 16));
// decimal representation
var regExpStr = '&#0*' + parseInt(wikEdSupportedCharswikEd.supportedChars[i][0], 16) + ';|';
// hex representation
regExpStr += '&#x0*' + wikEdSupportedCharswikEd.supportedChars[i][0] + ';';
// case insensitive replace
// character entity representation
regExpStr = '&' + wikEdSupportedCharswikEd.supportedChars[i][1] + ';';
// case sensitive replace
// replace unsupported chars in IE6: change decimal, hex, and chars into character entities
for (var i = 0; i < wikEdProblemCharswikEd.problemChars.length; i ++) {
var replaceChar = '&' + wikEdProblemCharswikEd.problemChars[i][1] + ';';
// decimal representation
var regExpStr = '&#0*' + parseInt(wikEdProblemCharswikEd.problemChars[i][0], 16) + ';|';
// hex representation
regExpStr += '&#x0*' + wikEdProblemCharswikEd.problemChars[i][0] + ';';
// case insensitive replace
// actual character representation
regExpStr = '\\u' + wikEdProblemCharswikEd.problemChars[i][0];
// case sensitive replace
// replace special chars (spaces and invisible characters): change decimal, hex, and chars into character entities
for (var i = 0; i < wikEdSpecialCharswikEd.specialChars.length; i ++) {
var replaceChar = '&' + wikEdSpecialCharswikEd.specialChars[i][1] + ';';
// decimal representation
var regExpStr = '&#0*' + parseInt(wikEdSpecialCharswikEd.specialChars[i][0], 16) + ';|';
// hex representation
regExpStr += '&#x0*' + wikEdSpecialCharswikEd.specialChars[i][0] + ';';
// case insensitive replace
// actual character representation
regExpStr = '\\u' + wikEdSpecialCharswikEd.specialChars[i][0];
// case sensitive replace
//
// WikEdFixRedirectCallwikEd.FixRedirectCall: parse link targets into wikEdRedirectsCachewikEd.redirectsCache object using AJAX API call
//
windowwikEd.WikEdFixRedirectCallFixRedirectCall = function(obj) {
// check if api is enabled
if ( ( (wikEdWikiGlobals['wikEd.wikiGlobals.wgEnableAPI'] != true) && (wikEdWikiGlobals['wikEd.wikiGlobals.wgEnableAPI'] != 'true') ) || (wikEdScriptURLwikEd.scriptURL == '') ) {
return;
}
// reset redirects object
wikEdRedirectsCachewikEd.redirectsCache = {};
// get wiki links
postFields['format'] = 'xml';
postFields['action'] = 'query';
if (wikEdEdittimewikEd.edittime != null) {
postFields['wikEdEdittime'] = wikEdEdittimewikEd.edittime;
}
if (wikEdEditTokenwikEd.editToken != null) {
postFields['wpEditToken'] = wikEdEditTokenwikEd.editToken;
}
var requestUrl = wikEdScriptURLwikEd.scriptURL + 'api.php';
var requestMethod = 'POST';
var overrideMimeType = undefined;//'text/html';
// make the ajax request
WikEdAjaxRequestwikEd.AjaxRequest(requestMethod, requestUrl, postFields, overrideMimeType, function(ajax, obj) {
// get response
// parse redirects
var i = 0;
wikEdRedirectsCachewikEd.redirectsCache.from = [];
wikEdRedirectsCachewikEd.redirectsCache.to = [];
wikEdRedirectsCachewikEd.redirectsCache.allFrom = '';
var regExpRedir = /<(r|n) .*?\bfrom=\"([^\">]*)\".*?\bto=\"([^\"]*)\".*?>/g;
while ( (regExpMatch = regExpRedir.exec(txt)) != null) {
wikEdRedirectsCachewikEd.redirectsCache.from[i] = regExpMatch[2];
wikEdRedirectsCachewikEd.redirectsCache.allFrom += i + '="' + regExpMatch[2] + '"';
wikEdRedirectsCachewikEd.redirectsCache.to[i] = regExpMatch[3];
i ++;
}
// recurse through chained normalizations and redirects
wikEdRedirectsCachewikEd.redirectsCache.toIndex = [];
for (var i = 0; i < wikEdRedirectsCachewikEd.redirectsCache.to.length; i ++) {
wikEdRedirectsCachewikEd.redirectsCache.toIndex[i] = WikEdResolveRedirectswikEd.ResolveRedirects(i);
}
// replace links
WikEdEditButtonwikEd.EditButton(null, 'wikEdFixRedirectReplace');
return;
//
// WikEdResolveRedirectswikEd.ResolveRedirects: recursively follow redirects, called from WikEdFixRedirectCallwikEd.FixRedirectCall Ajax handler
// uses wikEdRedirectsCachewikEd.redirectsCache.allFrom as a regExp hash
windowwikEd.WikEdResolveRedirectsResolveRedirects = function(i) {
var toRegExp = wikEdRedirectsCachewikEd.redirectsCache.to[i].replace(/(\W)/g, '\\$1');
var regExp = new RegExp('(\\d+)=\\"' + toRegExp + '\\"');
if ( (regExpMatch = wikEdRedirectsCachewikEd.redirectsCache.allFrom.match(regExp)) != null) {
i = WikEdResolveRedirectswikEd.ResolveRedirects( parseInt(regExpMatch[1], 10) );
}
return(i);
//
// WikEdFixRedirectReplacewikEd.FixRedirectReplace: replace redirects using wikEdRedirectsCachewikEd.redirectsCache object prepared in WikEdFixRedirectCallwikEd.FixRedirectCall()
//
windowwikEd.WikEdFixRedirectReplaceFixRedirectReplace = function(obj) {
if (wikEdRedirectsCachewikEd.redirectsCache.from == null) {
return;
}
// cycle through parsed redirects
if (wikEdRedirectsCachewikEd.redirectsCache.from != null) {
for (var i = 0; i < wikEdRedirectsCachewikEd.redirectsCache.from.length; i ++) {
// 1 1 2 23 # 3 4 |56 6 54
var regExp = new RegExp('\\[\\[\\s*(:?)\\s*(' + wikEdRedirectsCachewikEd.redirectsCache.from[i] + ')(\\s*#[^\\n\\[\\]\\|]*?)?(\\s*\\|((.|\\s)*?))?\\s*\\]\\]', 'g');
obj.plain = obj.plain.replace(regExp,
function(p, p1, p2, p3, p4, p5) {
var prefix = p1;
var article = p2;
var redirect = wikEdRedirectsCachewikEd.redirectsCache.to[ wikEdRedirectsCachewikEd.redirectsCache.toIndex[i] ];
var fragmentId = p3 || '';
var linkText = p5 || '';
// lowercase link target if link text starts with lowercase (main space only)
if (wikEdConfig['wikEd.config.articlesCaseSensitive'] == false) {
if (/:/.test(linkTarget) != true) {
if (article.charAt(0).toLowerCase() == article.charAt(0)) {
//
// WikEdFixMathwikEd.FixMath: math character fixer, originally from User:Omegatron
//
windowwikEd.WikEdFixMathFixMath = function(obj) {
WikEdFixBasicwikEd.FixBasic(obj);
// change only outside <math> </math> wikicode
//
// WikEdFixChemwikEd.FixChem: fix chemical formulas
//
windowwikEd.WikEdFixChemFixChem = function(obj) {
WikEdFixBasicwikEd.FixBasic(obj);
var realElements = 'H|He|Li|Be|B|C|N|O|F|Ne|Na|Mg|Al|Si|P|S|Cl|Ar|K|Ca|Sc|Ti|V|Cr|Mn|Fe|Co|Ni|Cu|Zn|Ga|Ge|As|Se|Br|Kr|Rb|Sr|Y|Zr|Nb|Mo|Tc|Ru|Rh|Pd|Ag|Cd|In|Sn|Sb|Te|I|Xe|Cs|Ba|Hf|Ta|W|Re|Os|Ir|Pt|Au|Hg|Tl|Pb|Bi|Po|At|Rn|Fr|Ra|Rf|Db|Sg|Bh|Hs|Mt|Ds|Rg|La|Ce|Pr|Nd|Pm|Sm|Eu|Gd|Tb|Dy|Ho|Er|Tm|Yb|Lu|Ac|Th|Pa|U|Np|Pu|Am|Cm|Bk|Cf|Es|Fm|Md|No|Lr';
//
// WikEdFixUnitswikEd.FixUnits: unit formatter
//
windowwikEd.WikEdFixUnitsFixUnits = function(obj) {
WikEdFixBasicwikEd.FixBasic(obj);
// convert into actual characters
//
// WikEdFixDasheswikEd.FixDashes: fixes dashes and minus signs
//
windowwikEd.WikEdFixDashesFixDashes = function(obj) {
WikEdFixBasicwikEd.FixBasic(obj);
// convert html character entities into actual dash characters
//
// WikEdFixHTMLwikEd.FixHTML: fix html to wikicode
//
windowwikEd.WikEdFixHTMLFixHTML = function(obj) {
WikEdFixBasicwikEd.FixBasic(obj);
// remove syntax highlighting
obj.html = obj.plain;
obj.html = obj.html.replace(/\n/g, '<br>');
WikEdRemoveHighlightingwikEd.RemoveHighlighting(obj);
// keep <br> in blockquote
// wikify, keep user added attribute
WikEdWikifyHTMLwikEd.WikifyHTML(obj, true);
// turn real html into visible html code
//
// WikEdFixCapswikEd.FixCaps: fix capitalizing of lists, linklists, images, headings
//
windowwikEd.WikEdFixCapsFixCaps = function(obj) {
WikEdFixBasicwikEd.FixBasic(obj);
// uppercase lists
// uppercase images
var regExp = new RegExp('(\\[\\[)(Image|File|' + wikEdConfig['wikEd.config.text']['wikicode Image'] + '|' + wikEdConfig['wikEd.config.text']['wikicode File'] + '):([\\wŠŒŽšœžŸÀ-ÖØ-öø-\\u0220\\u0222-\\u0233ΆΈΉΊΌΎΏΑ-ΡΣ-ώ\\u0400-\\u0481\\u048a-\\u04ce\\u04d0-\\u04f5\\u04f8\\u04f9])([^\\n]*\\]\\])', 'igm');
obj.plain = obj.plain.replace(regExp,
function (p, p1, p2, p3, p4) {
//
// WikEdFixTyposwikEd.FixTypos: fix typos using the AutoWikiBrowser/RegExTypoFix list (.test() is not faster)
//
windowwikEd.WikEdFixTyposFixTypos = function(obj) {
WikEdFixBasicwikEd.FixBasic(obj);
// split into alternating plain text and {{lang}} template fragments (does not support nested templates)
// cycle through the RegExTypoFix rules
for (var i = 0; i < wikEdTypoRulesFindwikEd.typoRulesFind.length; i ++) {
// cycle through the fragments, jump over {{lang}} templates
for (var j = 0; j < fragment.length; j = j + 2) {
fragment[j] = fragment[j].replace(wikEdTypoRulesFindwikEd.typoRulesFind[i], wikEdTypoRulesReplacewikEd.typoRulesReplace[i]);
}
}
//
// WikEdFixAllwikEd.FixAll:
//
windowwikEd.WikEdFixAllFixAll = function(obj) {
WikEdFixBasicwikEd.FixBasic(obj);
WikEdFixUnicodewikEd.FixUnicode(obj);
WikEdFixHTMLwikEd.FixHTML(obj);
WikEdFixCapswikEd.FixCaps(obj);
return;
};
//
// WikEdRemoveElementswikEd.RemoveElements: remove elements by tag name
//
windowwikEd.WikEdRemoveElementsRemoveElements = function(tagNameArray) {
// cycle through the element names
for (var i = 0; i < tagNameArray.length; i ++) {
var elementArray = wikEdFrameDocumentwikEd.frameDocument.getElementsByTagName(tagNameArray[i]);
for (var j = 0; j < elementArray.length; j ++) {
elementArray[j].parentNode.removeChild(elementArray[j]);
//
// WikEdFindBoundarieswikEd.FindBoundaries: find word boundaries and line boundaries starting from selection.range
//
windowwikEd.WikEdFindBoundariesFindBoundaries = function(word, line, para, whole, selection) {
// get the start node and offset
regExp.lastIndex = 0;
if (regExp.exec(plain) != null) {
WikEdSetRangeStartwikEd.SetRangeStart(word.range, whole.plainNode[i], regExp.lastIndex);
foundWord = true;
}
var regExpArray = regExp.exec(plain);
if (regExpArray != null) {
WikEdSetRangeEndwikEd.SetRangeEnd(word.range, whole.plainNode[i], regExp.lastIndex - 1);
foundWord = true;
}
//
windowwikEd.WikEdRemoveHighlightingWikifyRemoveHighlightingWikify = function(obj, wikify) {
if ( (obj.html != '') || (wikify == true) ) {
// <div>...</div> to <br> for Safari, Chrome, WebKit
if ( (wikEdSafariwikEd.safari == true) || (wikEdChromewikEd.chrome == true) || (wikEdWebKitwikEd.webkit == true) ) {
var isRemove = [];
obj.html = obj.html.replace(/(<(\/?)div\b([^>]*)>)/g,
// remove syntax highlighting
WikEdRemoveHighlightingwikEd.RemoveHighlighting(obj);
// wikify, don't allow many attributes
if ( (obj.htmlCode == true) && (wikify != false) ) {
WikEdWikifyHTMLwikEd.WikifyHTML(obj, false);
}
}
//
// wikEd.WikifyHTML:
// WikEdWikifyHTML:
// obj.html contains the text to be wikified
// expects < > < > & spaces instead of <br> (not \n)
// gallery|source|poem|categorytree|hiero|imagemap|inputbox|timeline|references
windowwikEd.WikEdWikifyHTMLWikifyHTML = function(obj, relaxed) {
var regExpStr;
obj.html = obj.html.replace(/<(span|div|p)\b *(.*?) *\/?>/gi,
function (p, p1, p2) {
return('<' + p1 + WikEdSanitizeAttributeswikEd.SanitizeAttributes(p1, p2, relaxed) + '>');
}
);
// {{TABLE}}
// convert html tables to wikicode
if (wikEdTableModewikEd.tableMode == false) {
// remove <thead> <tbody> <tfoot>
obj.html = obj.html.replace(/(\s|<br\b[^>]*>|\x00)*<(td) +([^>]*)>(\s|<br\b[^>]*>|\x00)*()/gi,
function (p, p1, p2, p3, p4) {
p3 = WikEdSanitizeAttributeswikEd.SanitizeAttributes(p2, p3, relaxed);
if (p3 == '') {
return('\x00| ');
obj.html = obj.html.replace(/(\s|<br\b[^>]*>|\x00)*<(th) +([^>]*)>(\s|<br\b[^>]*>|\x00)*()/gi,
function (p, p1, p2, p3, p4) {
p3 = WikEdSanitizeAttributeswikEd.SanitizeAttributes(p2, p3, relaxed);
if (p3 == '') {
return('\x00| ');
obj.html = obj.html.replace(/(\s|<br\b[^>]*>|\x00)*<(tr) +([^>]*)>(\s|<br\b[^>]*>|\x00)*()/gi,
function (p, p1, p2, p3, p4) {
return('\x00|-' + WikEdSanitizeAttributeswikEd.SanitizeAttributes(p2, p3, relaxed) + '\x00');
}
);
obj.html = obj.html.replace(/(\s|<br\b[^>]*>|\x00)*<(caption) +([^>]*)>(\s|<br\b[^>]*>|\x00)*()/gi,
function (p, p1, p2, p3, p4) {
p3 = WikEdSanitizeAttributeswikEd.SanitizeAttributes(p2, p3, relaxed);
if (p3 == '') {
return('\x00|+ ');
function (p, p1, p2) {
var table = '\x00\x00{|';
if (wikEdConfig['wikEd.config.wikifyTableParameters'] != '') {
table += ' ' + wikEdConfig['wikEd.config.wikifyTableParameters'];
}
else {
table += WikEdSanitizeAttributeswikEd.SanitizeAttributes(p1, p2);
}
return(table);
// for table mode override pasted table class // {{TABLE}}
else if (wikEdTableModewikEd.tableMode == true) {
obj.html = obj.html.replace(/(<table\b)([^>]*)(>)/gi,
function (p, p1, p2, p3) {
// line breaks (continued)
if (wikEdTableModewikEd.tableMode == true) {
obj.html = obj.html.replace(/<br\b[^>]*>[\n ]*()/gi, '\x00');
}
// get absolute path from ./index.php and ../../index.php
hrefValue = WikEdRelativeToAbsolutePathwikEd.RelativeToAbsolutePath(hrefValue);
// check for wiki article link and get parameters
// 1 2 article 2 3article 314 anchor 4 6 7 8 urlpar 87539 anchor 9
regExpStr = wikEdServerwikEd.server + '(' + wikEdArticlePathwikEd.articlePath + '([^\\"\\?#]+)|' + wikEdScriptwikEd.script + '\\?([^\\"#]*))(#[^\\"]*)?';
regExp = new RegExp(regExpStr);
regExpMatch = regExp.exec(hrefValue);
// category link
var regExp = new RegExp('^(Category|' + wikEdConfig['wikEd.config.text']['wikicode Category'] + ')\\s*:(.*)', 'i');
regExpMatch = regExp.exec(linkArticle);
if (regExpMatch != null) {
return('[[' + wikEdConfig['wikEd.config.text']['wikicode Category'] + ':' + regExpMatch[1].charAt(0).toUpperCase() + linkText.substr(1) + ']]');
}
// clean up MediaWiki category list
var regExp = new RegExp('<span\\b[^>]*>(\\[\\[(Category|' + wikEdConfig['wikEd.config.text']['wikicode Category'] + ')\\s*:[^\\]]+\\]\\])<\\/span>[\\s\\x00\\|]*', 'gi');
obj.html = obj.html.replace(regExp, '$1\x00');
imgLink = regExpMatch[1];
if (imgLink != '') {
return('[[' + wikEdConfig['wikEd.config.text']['wikicode Image'] + ':' + imgLink + imgWidth + imgAlt + ']]');
}
}
obj.html = obj.html.replace(/(<\/?)(\/?)(\w+)(.*?>)/g,
function (p, p1, p2, p3, p4) {
if (wikEdTableModewikEd.tableMode == true) {
if ( /^(table|tr|td|th|thead|tbody|tfoot|col|colgroup|caption)$/i.test(p3) == true) {
var tag = p1 + p2 + p3 + p4;
p3 = ' ' + p3;
}
return('<' + p1 + WikEdSanitizeAttributeswikEd.SanitizeAttributes(p1, p2, relaxed) + p3 + '>');
}
);
//
// wikEd.RelativeToAbsolutePath
// WikEdRelativeToAbsolutePath
// broken for editing article names containing "/", https://bugzilla.mozilla.org/show_bug.cgi?id=430910
windowwikEd.WikEdRelativeToAbsolutePathRelativeToAbsolutePath = function(relativePath, fullPath) {
var absolutePath = '';
//
// WikEdSanitizeAttributeswikEd.SanitizeAttributes: see Sanitizer.php
//
windowwikEd.WikEdSanitizeAttributesSanitizeAttributes = function(tag, attributes, relaxed) {
var common;
var tablealign;
//
// WikEdRemoveHighlightingwikEd.RemoveHighlighting: remove syntax highlighting in obj.html; sets obj.htmlCode if text contains html code
// expects <br> instead of \n
windowwikEd.WikEdRemoveHighlightingRemoveHighlighting = function(obj) {
// remove highlighting error messages
if (wikEdConfig['wikEd.config.highlightError'] == true) {
obj.html = obj.html.replace(/<span\b[^>]*?\bclass=\"wikEdConfig['highlightError']wikEdHighlightError\"[^>]*>.*?<\/span><!--wikEdConfig['highlightError']wikEdHighlightError-->/g, '');
}
//
// WikEdHighlightSyntaxInitwikEd.HighlightSyntaxInit: initialize regExp for syntax highlighting and regExp-to-number array, called during start up
//
windowwikEd.WikEdHighlightSyntaxInitHighlightSyntaxInit = function() {
wikEdParseObjwikEd.parseObj.matchToTag = [''];
wikEdParseObjwikEd.parseObj.regExpTags = null;
// main regular expression search definitions
['(^\\s*)#REDIRECT(?=\\s*\\[\\[)', 'redirect', 'block'], // redirect
['\\[\\[(?=(Image|File|' + wikEdConfig['wikEd.config.text']['wikicode Image'] + '|' + wikEdConfig['wikEd.config.text']['wikicode File'] + ')\\s*:\\s*)', 'file', 'open'], // file link start /// add translation
['\\[\\[', 'link', 'open'], // wikilink, category start with interlink detection
['\\]\\]', 'doubleCloseBracket', 'close'], // wikilink, category, file link, redirect end
['\\\'{2,}', 'boldItalic', 'multi'], // bold, italic
['__(' + wikEdMagicWordswikEd.magicWords + ')__', 'magic', 'block'], // magic words
['~{3,5}', 'signature', 'block'], // signature
['(^|\\n)\\-{4,}', 'hr', 'block'], // hr
// save tag information for matched parenthesis
wikEdParseObjwikEd.parseObj.matchToTag.push( [tag, tagClass, tagStart] );
// add empty entry for all sub parentheses, ignore (? and \(
if (regExpSub.charAt(pos) != '?') {
if (regExpSub.charAt(pos - 2) != '\\') {
wikEdParseObjwikEd.parseObj.matchToTag.push( [] );
}
}
// create regExp from or-joined parenthesized sub regExps
wikEdParseObjwikEd.parseObj.regExpTags = new RegExp(regExpStrings.join('|'), 'gi');
return;
//
// WikEdHighlightSyntaxwikEd.HighlightSyntax: highlight syntax in obj.html;
// existing highlighting must have been removed using WikEdRemoveHighlightingwikEd.RemoveHighlighting
// expects < > < > & \xa0 instead of \n instead of <br>
// Known bugs:
windowwikEd.WikEdHighlightSyntaxHighlightSyntax = function(obj, noTimeOut) {
// start timer to cancel after wikEdConfig['wikEd.config.maxHighlightTime'] ms
var highlightStartDate = new Date();
'secondLastOpenTagFiltered': null,
'tableMode': wikEdTableModewikEd.tableMode
};
if (obj.whole == true) {
parseObj.whole = true;
wikEdLinkifyArraywikEd.linkifyArray = [];
wikEdReferenceArraywikEd.referenceArray = [];
wikEdTemplateArraywikEd.templateArray = [];
wikEdCharEntityArraywikEd.charEntityArray = [];
wikEd.HighlightNamedHideButtonsStylesheet = new wikEd.StyleSheet(wikEd.frameDocument);
WikEdHighlightNamedHideButtonsStylesheet = new WikEdStyleSheet(wikEdFrameDocument);
wikEdFilePreviewNowikEd.filePreviewNo = 0;
wikEdFilePreviewIdswikEd.filePreviewIds = [];
}
// show main parsing regExp:
// WED('regExp', wikEdParseObjwikEd.parseObj.regExpTags.toString().replace(/\x00/g, '<').replace(/\x01/g, '>').replace(/\n/g, '\\n'));
// cycle through text and find tags with a regexp search
wikEdParseObjwikEd.parseObj.regExpTags.lastIndex = 0;
while ( (parseObj.regExpMatch = wikEdParseObjwikEd.parseObj.regExpTags.exec(obj.html)) != null) {
// cancel highlighting after wikEdConfig['wikEd.config.maxHighlightTime'] ms
if (noTimeOut != true) {
var currentDate = new Date();
if ( (currentDate - highlightStartDate) > wikEdConfig['wikEd.config.maxHighlightTime']) {
break;
}
var tagClass = '';
var tagStart = '';
for (var i = 1; i < wikEdParseObjwikEd.parseObj.matchToTag.length; i ++) {
if (typeof(parseObj.regExpMatch[i]) != 'undefined') {
// get tag information
tag = wikEdParseObjwikEd.parseObj.matchToTag[i][0];
tagClass = wikEdParseObjwikEd.parseObj.matchToTag[i][1];
tagStart = wikEdParseObjwikEd.parseObj.matchToTag[i][2];
tagMatchParenth = i;
break;
// move regExp pointer back if chew-up regExp fragment has eaten into the start of an inline link
if (obj.html.charAt(wikEdParseObjwikEd.parseObj.regExpTags.lastIndex) == ':') {
var regExpMatch = /(https?|ftp|irc|gopher)$/.exec(tagMatch);
if (regExpMatch != null) {
wikEdParseObjwikEd.parseObj.regExpTags.lastIndex = wikEdParseObjwikEd.parseObj.regExpTags.lastIndex - regExpMatch[0].length;
}
}
// newlines close or end certain tags
if (leadingNewline == true) {
WikEdHighlightBuildTreewikEd.HighlightBuildTree('newline', 'close', tagFrom, 0, parseObj);
}
var errorText;
if (parseObj.lastOpenTag == 'link') {
errorText = wikEdConfig['wikEd.config.text']['wikEdErrorCodeInLinkName'];
}
else if (parseObj.lastOpenTag == 'template') {
errorText = wikEdConfig['wikEd.config.text']['wikEdErrorCodeInTemplName'];
}
else if (parseObj.lastOpenTag == 'parameter') {
errorText = wikEdConfig['wikEd.config.text']['wikEdErrorCodeInParamName'];
}
WikEdHighlightMarkLastOpenNodewikEd.HighlightMarkLastOpenNode(errorText, parseObj);
WikEdHighlightGetLevelwikEd.HighlightGetLevel(parseObj);
}
}
case 'signature':
case 'hr':
WikEdHighlightBuildTreewikEd.HighlightBuildTree(tag, tagClass, tagFrom, tagLength, parseObj);
break;
switch(parseObj.lastOpenTagFiltered) {
case 'italic':
WikEdHighlightBuildTreewikEd.HighlightBuildTree('italic', 'close', tagFrom, tagLength, parseObj);
break;
case 'boldItalic':
WikEdHighlightTreeRedefinewikEd.HighlightTreeRedefine(parseObj.lastOpenNodeFiltered, 'italic', 3, 2, parseObj);
WikEdHighlightTreeRedefinewikEd.HighlightTreeRedefine(parseObj.secondlastOpenNodeFiltered, 'bold', 0, 3, parseObj);
WikEdHighlightGetLevelwikEd.HighlightGetLevel(parseObj);
WikEdHighlightBuildTreewikEd.HighlightBuildTree('italic', 'close', tagFrom, tagLength, parseObj);
break;
default:
WikEdHighlightBuildTreewikEd.HighlightBuildTree('italic', 'open', tagFrom, tagLength, parseObj);
}
break;
switch(parseObj.lastOpenTagFiltered) {
case 'bold':
WikEdHighlightBuildTreewikEd.HighlightBuildTree('bold', 'close', tagFrom, tagLength, parseObj);
break;
case 'boldItalic':
WikEdHighlightTreeRedefinewikEd.HighlightTreeRedefine(parseObj.lastOpenNodeFiltered, 'bold', 2, 3, parseObj);
WikEdHighlightTreeRedefinewikEd.HighlightTreeRedefine(parseObj.secondlastOpenNodeFiltered, 'italic', 0, 2, parseObj);
WikEdHighlightGetLevelwikEd.HighlightGetLevel(parseObj);
WikEdHighlightBuildTreewikEd.HighlightBuildTree('bold', 'close', tagFrom, tagLength, parseObj);
break;
default:
WikEdHighlightBuildTreewikEd.HighlightBuildTree('bold', 'open', tagFrom, tagLength, parseObj);
}
break;
case 'bold':
if (parseObj.secondLastOpenTagFiltered == 'italic') {
WikEdHighlightBuildTreewikEd.HighlightBuildTree('bold', 'close', tagFrom, 3, parseObj);
WikEdHighlightBuildTreewikEd.HighlightBuildTree('italic', 'close', tagFrom + 3, 2, parseObj);
}
else {
WikEdHighlightBuildTreewikEd.HighlightBuildTree('bold', 'close', tagFrom, 3, parseObj);
WikEdHighlightBuildTreewikEd.HighlightBuildTree('italic', 'open', tagFrom + 3, 2, parseObj);
}
break;
case 'italic':
if (parseObj.secondLastOpenTagFiltered == 'bold') {
WikEdHighlightBuildTreewikEd.HighlightBuildTree('italic', 'close', tagFrom, 2, parseObj);
WikEdHighlightBuildTreewikEd.HighlightBuildTree('bold', 'close', tagFrom + 2, 3, parseObj);
}
else {
WikEdHighlightBuildTreewikEd.HighlightBuildTree('italic', 'close', tagFrom, 2, parseObj);
WikEdHighlightBuildTreewikEd.HighlightBuildTree('bold', 'open', tagFrom + 2, 3, parseObj);
}
break;
case 'boldItalic':
WikEdHighlightTreeRedefinewikEd.HighlightTreeRedefine(parseObj.secondlastOpenNodeFiltered, 'bold', 0, 3, parseObj);
WikEdHighlightTreeRedefinewikEd.HighlightTreeRedefine(parseObj.lastOpenNodeFiltered, 'italic', 3, 2, parseObj);
WikEdHighlightGetLevelwikEd.HighlightGetLevel(parseObj);
parseObj.lastOpenTag == 'italic'
WikEdHighlightBuildTreewikEd.HighlightBuildTree('italic', 'close', tagFrom, 2, parseObj);
WikEdHighlightBuildTreewikEd.HighlightBuildTree('bold', 'close', tagFrom + 2, 3, parseObj);
break;
default:
WikEdHighlightBuildTreewikEd.HighlightBuildTree('boldItalic', 'open', tagFrom, tagLength, parseObj);
WikEdHighlightBuildTreewikEd.HighlightBuildTree('boldItalic', 'open', tagFrom, tagLength, parseObj);
}
break;
default:
parseObj.tree.push( { 'start': tagFrom, 'tagLength': tagLength, 'type': 'error', 'left': wikEdConfig['wikEd.config.text']['wikEdErrorBoldItalic'] } );
break;
}
// open paramTempl
if (tagClass == 'open') {
WikEdHighlightBuildTreewikEd.HighlightBuildTree(paramTemplTag, tagClass, tagFrom, tagLength, parseObj);
// add spare elements for later disambiguation
if (paramTemplTag == 'paramTempl') {
for (var pos = 2; pos < tagLength - 1; pos = pos + 2) {
WikEdHighlightBuildTreewikEd.HighlightBuildTree(paramTemplTag, tagClass, tagFrom, tagLength, parseObj);
}
}
// no opening tag, delegate error handling
if ( (parseObj.lastOpenNode == 0) || (parseObj.lastOpenNode == null) ) {
WikEdHighlightBuildTreewikEd.HighlightBuildTree(paramTemplTag, tagClass, tagFrom, tagLength, parseObj);
break;
}
var openNode = parseObj.tree[parseObj.lastOpenNodeFiltered];
if (openNode == null) {
WikEdHighlightBuildTreewikEd.HighlightBuildTree(paramTemplTag, tagClass, tagFrom, tagLength, parseObj);
break;
}
( (paramTemplTag == 'parameter') && (parseObj.lastOpenTagFiltered == 'parameterPiped') )
) {
WikEdHighlightBuildTreewikEd.HighlightBuildTree(paramTemplTag, tagClass, tagFrom, tagLength, parseObj);
}
// redefine ambiguous opening
WikEdHighlightTreeRedefinewikEd.HighlightTreeRedefine(parseObj.lastOpenNodeFiltered, paramTemplTag, openNode.tagLength - tagLength, tagLength, parseObj);
// adjust all ambiguous parents
'tagLength': node.tagLength,
'type': 'error',
'left': wikEdConfig['wikEd.config.text']['wikEdErrorTemplParam']
} );
redefinedTag = 'spare';
// redefine parent
WikEdHighlightTreeRedefinewikEd.HighlightTreeRedefine(nodeNo, redefinedTag, null, redefinedLength, parseObj);
// all further opening paramTempl tags are spare
nodeNo = node.parent;
}
WikEdHighlightGetLevelwikEd.HighlightGetLevel(parseObj);
// and close innermost tag
WikEdHighlightBuildTreewikEd.HighlightBuildTree(paramTemplTag, tagClass, tagFrom, tagLength, parseObj);
}
(openNode.tag == 'parameterPiped') ) && (tagLength >= openNode.tagLength)
) {
WikEdHighlightBuildTreewikEd.HighlightBuildTree(openNode.tag, tagClass, tagFrom, openNode.tagLength, parseObj);
wikEdParseObjwikEd.parseObj.regExpTags.lastIndex = wikEdParseObjwikEd.parseObj.regExpTags.lastIndex - tagLength + openNode.tagLength;
}
'tagLength': openNode.tagLength,
'type': 'error',
'left': wikEdConfig['wikEd.config.text']['wikEdErrorTemplParamAmbig']
} );
parseObj.tree.push( {
'tagLength': tagLength,
'type': 'error',
'left': wikEdConfig['wikEd.config.text']['wikEdErrorTemplParamAmbig']
} );
}
'tagLength': openNode.tagLength,
'type': 'error',
'left': wikEdConfig['wikEd.config.text']['wikEdErrorTemplParam']
} );
parseObj.tree.push( {
'tagLength': tagLength,
'type': 'error',
'left': wikEdConfig['wikEd.config.text']['wikEdErrorTemplParam']
} );
}
case 'caption':
if (parseObj.lastOpenTagFiltered == 'table') {
WikEdHighlightBuildTreewikEd.HighlightBuildTree(tag, tagClass, tagFrom, tagLength, parseObj);
}
break;
// wikilink
case 'link':
WikEdHighlightBuildTreewikEd.HighlightBuildTree(tag, tagClass, tagFrom, 2, parseObj);
break;
}
if (regExpMatch != null) {
wikEdParseObjwikEd.parseObj.regExpTags.lastIndex = tagFrom + regExpMatch[1].length;
tagMatch = regExpMatch[1];
tagLength = tagMatch.length;
var regExpMatch;
if ( (regExpMatch = /^(.*?)(\}\}|\|)(.*?)$/.exec(tagMatch)) != null) {
wikEdParseObjwikEd.parseObj.regExpTags.lastIndex = tagFrom + tagMatch[1].length;
tagMatch = regExpMatch[1];
tagLength = tagMatch.length;
var regExpMatch;
if ( (regExpMatch = /^(.*?)(\}\}|\|)(.*?)$/.exec(tagMatch)) != null) {
wikEdParseObjwikEd.parseObj.regExpTags.lastIndex = tagFrom + tagMatch[1].length;
tagMatch = regExpMatch[1];
tagLength = tagMatch.length;
var url = parseObj.regExpMatch[tagMatchParenth + 1];
var spaces = parseObj.regExpMatch[tagMatchParenth + 5];
WikEdHighlightBuildTreewikEd.HighlightBuildTree(tag, tagClass, tagFrom, 1, parseObj);
WikEdHighlightBuildTreewikEd.HighlightBuildTree('externalURL', 'block', tagFrom + 1, url.length, parseObj);
WikEdHighlightBuildTreewikEd.HighlightBuildTree('externalText', tagClass, tagFrom + 1 + url.length + spaces.length, 0, parseObj);
}
if (node != null) {
if (node.parent != null) {
WikEdHighlightBuildTreewikEd.HighlightBuildTree('externalText', tagClass, tagFrom, 0, parseObj);
WikEdHighlightBuildTreewikEd.HighlightBuildTree(tag, tagClass, tagFrom, tagLength, parseObj);
}
}
}
WikEdHighlightBuildTreewikEd.HighlightBuildTree(tag, tagClass, tagFrom, tagLength, parseObj);
break;
var htmlTag = parseObj.regExpMatch[tagMatchParenth + 1].toLowerCase();
if (/^(ref|references|sub|sup|u|s|p)$/.test(htmlTag) == true) {
WikEdHighlightBuildTreewikEd.HighlightBuildTree(htmlTag, tagClass, tagFrom, tagLength, parseObj);
}
else if (/^(table|tr|td|th|col|thead|tfoot|tbody|colgroup|caption|big|blockquote|center|code|del|div|font|ins|small|span|strike|tt|rb|rp|rt|ruby|nowiki|math|noinclude|includeonly|gallery|categorytree|charinsert|hiero|imagemap|inputbox|poem|source|syntaxhighlight|timeline)$/.test(htmlTag) == true) {
WikEdHighlightBuildTreewikEd.HighlightBuildTree(htmlTag, tagClass, tagFrom, tagLength, parseObj);
}
else {
WikEdHighlightBuildTreewikEd.HighlightBuildTree('htmlUnknown', 'block', tagFrom, tagLength, parseObj);
}
break;
var htmlTag = parseObj.regExpMatch[tagMatchParenth + 1];
if (/^(references|ref|br|p)$/i.test(htmlTag) == true) {
WikEdHighlightBuildTreewikEd.HighlightBuildTree(htmlTag, tagClass, tagFrom, tagLength, parseObj);
}
else {
WikEdHighlightBuildTreewikEd.HighlightBuildTree(tag, tagClass, tagFrom, tagLength, parseObj);
}
break;
case 'pipeTemplateEnd':
if (parseObj.lastOpenTagFiltered == 'table') {
WikEdHighlightBuildTreewikEd.HighlightBuildTree('table', 'close', tagFrom, 2, parseObj);
}
else {
WikEdHighlightBuildTreewikEd.HighlightBuildTree('templateParam', 'block', tagFrom, 1, parseObj);
WikEdHighlightBuildTreewikEd.HighlightBuildTree('template', 'close', tagFrom + 1, 2, parseObj);
}
break;
case 'doubleCloseBracket':
if (parseObj.lastOpenTagFiltered == 'file') {
WikEdHighlightBuildTreewikEd.HighlightBuildTree(parseObj.lastOpenTagFiltered, tagClass, tagFrom, tagLength, parseObj);
}
else {
WikEdHighlightBuildTreewikEd.HighlightBuildTree('link', tagClass, tagFrom, tagLength, parseObj);
}
break;
switch (parseObj.lastOpenTagFiltered) {
case 'table':
WikEdHighlightBuildTreewikEd.HighlightBuildTree('cell', tagClass, tagFrom, tagLength, parseObj);
break;
case 'link':
WikEdHighlightBuildTreewikEd.HighlightBuildTree('linkParam', tagClass, tagFrom, tagLength, parseObj);
break;
case 'file':
WikEdHighlightBuildTreewikEd.HighlightBuildTree('fileParam', tagClass, tagFrom, tagLength, parseObj);
break;
case 'template':
case 'paramTempl':
WikEdHighlightBuildTreewikEd.HighlightBuildTree('templateParam', tagClass, tagFrom, tagLength, parseObj);
break;
}
switch (parseObj.lastOpenTagFiltered) {
case 'table':
WikEdHighlightBuildTreewikEd.HighlightBuildTree('cellSep', tagClass, tagFrom, tagLength, parseObj);
break;
case 'link':
WikEdHighlightBuildTreewikEd.HighlightBuildTree('linkParam', tagClass, tagFrom, 1, parseObj);
break;
case 'file':
WikEdHighlightBuildTreewikEd.HighlightBuildTree('fileParam', tagClass, tagFrom, 1, parseObj);
WikEdHighlightBuildTreewikEd.HighlightBuildTree('fileParam', tagClass, tagFrom + 1, 1, parseObj);
break;
case 'template':
case 'paramTempl':
WikEdHighlightBuildTreewikEd.HighlightBuildTree('templateParam', tagClass, tagFrom, 1, parseObj);
WikEdHighlightBuildTreewikEd.HighlightBuildTree('templateParam', tagClass, tagFrom + 1, 1, parseObj);
break;
}
switch (parseObj.lastOpenTagFiltered) {
case 'table':
WikEdHighlightBuildTreewikEd.HighlightBuildTree('cellParam', tagClass, tagFrom, tagLength, parseObj);
break;
case 'link':
WikEdHighlightBuildTreewikEd.HighlightBuildTree('linkParam', tagClass, tagFrom, tagLength, parseObj);
break;
case 'file':
WikEdHighlightBuildTreewikEd.HighlightBuildTree('fileParam', tagClass, tagFrom, tagLength, parseObj);
break;
case 'template':
case 'paramTempl':///// check later for parameterPiped
WikEdHighlightBuildTreewikEd.HighlightBuildTree('templateParam', tagClass, tagFrom, tagLength, parseObj);
break;
case 'parameter':
WikEdHighlightBuildTreewikEd.HighlightBuildTree('parameterDefault', tagClass, tagFrom, tagLength, parseObj);
break;
}
// ignore template parameters preceeded with newline-spaces
if (parseObj.lastOpenTagFiltered == 'template') {
wikEdParseObjwikEd.parseObj.regExpTags.lastIndex = tagFrom + tagLength - parseObj.regExpMatch[tagMatchParenth + 3].length;
break;
}
// highlight line
WikEdHighlightBuildTreewikEd.HighlightBuildTree(tag, tagClass, tagFrom, tagLength, parseObj);
// highlight tag
WikEdHighlightBuildTreewikEd.HighlightBuildTree(tag + 'Tag', tagClass, tagFrom, parseObj.regExpMatch[tagMatchParenth + 2].length, parseObj);
// move text pointer after tag
wikEdParseObjwikEd.parseObj.regExpTags.lastIndex = tagFrom + tagLength - parseObj.regExpMatch[tagMatchParenth + 3].length;
break;
// newline, old
case 'newline':
WikEdHighlightBuildTreewikEd.HighlightBuildTree(tag, 'close', tagFrom, 0, parseObj);
break;
// unrecognized tag
default:
parseObj.tree.push( { 'start': tagFrom, 'tagLength': tagLength, 'type': 'error', 'left': wikEdConfig['wikEd.config.text']['wikEdErrorNoHandler'] } );
}
// mark remaining unmatched opening tags
while ( (parseObj.lastOpenNode != 0) && (parseObj.lastOpenNode != null) ) {
WikEdHighlightMarkLastOpenNodewikEd.HighlightMarkLastOpenNode(wikEdConfig['wikEd.config.text']['wikEdErrorNoClose'], parseObj);
}
}
var regExpAutoLink = /((PMID)[ \xa0\t]+(\d+))|((RFC)[ \xa0\t]+(\d+))|((RFC)[ \xa0\t]+(\d+))|((ISBN)[ \xa0\t]+((97(8|9)( |-)?)?(\d( |-)?){9}(\d|x)))/g;
while ( (regExpMatch = regExpAutoLink.exec(obj.html) ) != null) {
WikEdHighlightBuildTreewikEd.HighlightBuildTree(regExpMatch[2] || regExpMatch[5] || regExpMatch[8] || regExpMatch[11], 'block', regExpMatch.index, regExpMatch[0].length, parseObj);
}
var regExpColorLight = /(\'|\")(aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|blanchedalmond|burlywood|chartreuse|coral|cornsilk|cyan|darkgray|darkgrey|darkkhaki|darkorange|darksalmon|darkseagreen|floralwhite|fuchsia|gainsboro|ghostwhite|gold|goldenrod|greenyellow|honeydew|hotpink|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightskyblue|lightsteelblue|lightyellow|lime|linen|magenta|mediumaquamarine|mediumspringgreen|mediumturquoise|mintcream|mistyrose|moccasin|navajowhite|oldlace|orange|palegoldenrod|palegreen|paleturquoise|papayawhip|peachpuff|peru|pink|plum|powderblue|salmon|sandybrown|seashell|silver|skyblue|snow|springgreen|tan|thistle|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen)(\1)/gi;
while ( (regExpMatch = regExpColorLight.exec(obj.html) ) != null) {
WikEdHighlightBuildTreewikEd.HighlightBuildTree('colorLight', 'block', regExpMatch.index + regExpMatch[1].length, regExpMatch[2].length, parseObj);
}
var regExpColorDark = /(\'|\")(black|blue|blueviolet|brown|cadetblue|chocolate|cornflowerblue|crimson|darkblue|darkcyan|darkgoldenrod|darkgreen|darkmagenta|darkolivegreen|darkorchid|darkred|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|forestgreen|gray|green|grey|indianred|indigo|lightseagreen|lightslategray|lightslategrey|limegreen|maroon|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumvioletred|midnightblue|navy|olive|olivedrab|orangered|orchid|palevioletred|purple|red|rosybrown|royalblue|saddlebrown|seagreen|sienna|slateblue|slategray|slategrey|steelblue|teal|tomato)(\1)/g;
while ( (regExpMatch = regExpColorDark.exec(obj.html) ) != null) {
WikEdHighlightBuildTreewikEd.HighlightBuildTree('colorDark', 'block', regExpMatch.index + regExpMatch[1].length, regExpMatch[2].length, parseObj);
}
var regExpColor3 = /(^|[^\/\w&])(#[0-9a-f]{3})(?=([^\d\w]|$))/gi;
while ( (regExpMatch = regExpColor3.exec(obj.html) ) != null) {
WikEdHighlightBuildTreewikEd.HighlightBuildTree('colorHex3', 'block', regExpMatch.index + regExpMatch[1].length, regExpMatch[2].length, parseObj);
}
var regExpColor6 = /(^|[^\/\w&])(#[0-9a-f]{6})(?=([^\d\w]|$))/gi;
while ( (regExpMatch = regExpColor6.exec(obj.html) ) != null) {
WikEdHighlightBuildTreewikEd.HighlightBuildTree('colorHex6', 'block', regExpMatch.index + regExpMatch[1].length, regExpMatch[2].length, parseObj);
}
var regExpColorDec = /\brgb\(\s*\d{1,3}\s*,\s*\d{1,3}\s*,\s*\d{1,3}\s*\)/gi;
while ( (regExpMatch = regExpColorDec.exec(obj.html) ) != null) {
WikEdHighlightBuildTreewikEd.HighlightBuildTree('colorDec', 'block', regExpMatch.index, regExpMatch[0].length, parseObj);
}
// single character highlighting: spaces, dashes
var regExpCharSpaceDash = new RegExp('[' + wikEdCharHighlightingStrwikEd.charHighlightingStr + ']', 'g');
while ( (regExpMatch = regExpCharSpaceDash.exec(obj.html) ) != null) {
WikEdHighlightBuildTreewikEd.HighlightBuildTree('char', 'block', regExpMatch.index, regExpMatch[0].length, parseObj);
}
// control character highlighting
var regExpCharCtrl = new RegExp('[' + wikEdControlCharHighlightingStrwikEd.controlCharHighlightingStr + ']', 'g');
while ( (regExpMatch = regExpCharCtrl.exec(obj.html) ) != null) {
if (regExpMatch[0].charCodeAt(0) > 2) {
WikEdHighlightBuildTreewikEd.HighlightBuildTree('ctrl', 'block', regExpMatch.index, regExpMatch[0].length, parseObj);
}
}
var regExpCharEntities = /&(\w+);/g;
while ( (regExpMatch = regExpCharEntities.exec(obj.html) ) != null) {
if (wikEdCharEntitiesByNamewikEd.charEntitiesByName[ regExpMatch[1] ] != null) {
WikEdHighlightBuildTreewikEd.HighlightBuildTree('charEntity', 'block', regExpMatch.index, regExpMatch[0].length, parseObj);
}
}
// merge wiki syntax in
WikEdHighlightAddHtmlwikEd.HighlightAddHtml(parseObj, obj);
// get file previews
if ( (wikEdConfig['wikEd.config.filePreview'] == true) && (wikEdFilePreviewRequestwikEd.filePreviewRequest != '') ) {
wikEd.AjaxPreview(wikEd.filePreviewRequest, wikEd.FilePreviewAjaxHandler);
WikEdAjaxPreview(wikEdFilePreviewRequest, WikEdFilePreviewAjaxHandler);
wikEdFilePreviewRequestwikEd.filePreviewRequest = '';
}
// merge html and plain text
WikEdHighlightMergeHtmlwikEd.HighlightMergeHtml(parseObj, obj);
// free up array
// remove comments
if (wikEdConfig['wikEd.config.removeHighlightComments'] == true) {
obj.html = obj.html.replace(/<!--wikEd[\w\/]+-->/g, '');
}
//
// WikEdHighlightTreeRedefinewikEd.HighlightTreeRedefine: redefine opening tag, for bold / italic and template / parameter
//
windowwikEd.WikEdHighlightTreeRedefineHighlightTreeRedefine = function(openNodeIndex, tag, tagFromDiff, tagLength, parseObj) {
if (tag != null) {
//
// WikEdHighlightBuildTreewikEd.HighlightBuildTree: build an array based tree structure of text elements
// tag info: text pos, text length, tag type (root, open, close, block, error)
// connectivity info: parent, firstChild, nextSibling, paired opening/closing (all array indexes)
windowwikEd.WikEdHighlightBuildTreeHighlightBuildTree = function(tag, tagClass, tagFrom, tagLength, parseObj) {
// show parameters:
// get new top and second-to-top nodes, ignoring unpaired p tags
WikEdHighlightGetLevelwikEd.HighlightGetLevel(parseObj);
}
'tagLength': tagLength,
'type': 'error',
'left': wikEdConfig['wikEd.config.text']['wikEdErrorNoOpen']
} );
}
(node.tag == 'boldItalic')
) {
WikEdHighlightMarkLastOpenNodewikEd.HighlightMarkLastOpenNode(wikEdConfig['wikEd.config.text']['wikEdErrorNewline'], parseObj);
WikEdHighlightGetLevelwikEd.HighlightGetLevel(parseObj);
}
nodeNo = node.parent;
nodeNo = node.parent;
node.type = 'error';
node.left = wikEdConfig['wikEd.config.text']['wikEdErrorNoClose'];
node.parent = null;
}
WikEdHighlightGetLevelwikEd.HighlightGetLevel(parseObj);
}
'tagLength': tagLength,
'type': 'error',
'left': wikEdConfig['wikEd.config.text']['wikEdErrorNoOpen']
} );
break;
// convert opening tag to error
WikEdHighlightMarkLastOpenNodewikEd.HighlightMarkLastOpenNode(wikEdConfig['wikEd.config.text']['wikEdErrorTemplHeading'], parseObj);
parseObj.tree.push( {
'tagLength': tagLength,
'type': 'error',
'left': wikEdConfig['wikEd.config.text']['wikEdErrorTemplHeading']
} );
break;
// get new top and second-to-top nodes, ignoring unpaired p tags
WikEdHighlightGetLevelwikEd.HighlightGetLevel(parseObj);
}
return;
//
// WikEdHighlightMarkLastOpenNodewikEd.HighlightMarkLastOpenNode: redefine last open node as an error, ignore p and spare, handle pipe subnodes
//
windowwikEd.WikEdHighlightMarkLastOpenNodeHighlightMarkLastOpenNode = function(errorText, parseObj) {
var lastOpenNode = parseObj.lastOpenNode;
//
// WikEdHighlightGetLevelwikEd.HighlightGetLevel: get current innermost (top) element name from parse stack, ignoring unpaired p tags
//
windowwikEd.WikEdHighlightGetLevelHighlightGetLevel = function(parseObj) {
parseObj.lastOpenTag = null;
//
// WikEdHighlightAddCodewikEd.HighlightAddCode: add actual highlighting html code to parse tree elements
//
windowwikEd.WikEdHighlightAddHtmlHighlightAddHtml = function(parseObj, obj) {
// cycle through currently existing parse array
// detect cross-namespace links
linkClass = 'wikEdLink';
if (wikEdPageNamespacewikEd.pageNamespace != null) {
if (ns != wikEdPageNamespacewikEd.pageNamespace) {
linkClass = 'wikEdLinkCrossNs';
}
// highlight interwiki
if (inter != '') {
WikEdHighlightBuildTreewikEd.HighlightBuildTree('linkInter', 'block', tagFrom + 2, inter.length, parseObj);
}
// highlight namespace
if (ns != '') {
WikEdHighlightBuildTreewikEd.HighlightBuildTree('linkNamespace', 'block', tagFrom + 2 + inter.length, ns.length, parseObj);
}
// linkify
var regExpCasing = new RegExp('(^|\\:)' + wikEdConfig['wikEd.config.text']['wikicode Category'] + '(\\:|$)', 'i');
nsClean = nsClean.replace(regExpCasing, '$1' + wikEdConfig['wikEd.config.text']['wikicode Category'] + '$2');
if (nsClean == ':') {
nsClean = '';
}
follow = ' ' + WikEdHighlightLinkifywikEd.HighlightLinkify(interClean + nsClean, article);
}
}
if (nsClean.toLowerCase() == wikEdConfig['wikEd.config.text']['wikicode Category'].toLowerCase() + ':') {
insertLeft = '<span class="wikEdCat"' + follow + '><span class="wikEdLinkTag">';
insertRight = '</span><!--wikEdLinkTag--><span class="wikEdCatName">';
break;
case 'file':
var previewCode = '';
var regExpFile = new RegExp('^\\s*(Image|File|' + wikEdConfig['wikEd.config.text']['wikicode Image'] + '|' + wikEdConfig['wikEd.config.text']['wikicode File'] + ')\\s*:\\s*([^\\|\\n]*)', 'i');
var regExpMatch = regExpFile.exec(innerPlain);
if (regExpMatch == null) {
else {
var file = regExpMatch[1] + ':' + regExpMatch[2];
filevar filePlain = fileregExpMatch[1] + ':' + regExpMatch[2].replace(/ <.*?>/g, '_');
filePlain = filePlain.replace(/ /g,'_');
// add file preview box
if (wikEdConfig['wikEd.config.filePreview'] == true) {
// get image size
var filePreviewSize = wikEdConfig['wikEd.config.filePreviewSize'];
var regExpMatch;
if ( (regExpMatch = /\|(\d+)px(\||$)/.exec(innerPlain)) != null) {
var size = parseInt(regExpMatch[1]);
if ( (size > 0) && (size < wikEdConfig['wikEd.config.filePreviewSize']) ) {
filePreviewSize = size;
}
// get image url and size from cache
var style = '';
var fileObj = wikEdFilePreviewCachewikEd.filePreviewCache['wikEd' + filefilePlain + filePreviewSize];
if (fileObj != null) {
var filePreviewHeight = filePreviewSize;
else {
style = 'display: none; height: ' + filePreviewSize + 'px; width: ' + filePreviewSize + 'px;';
wikEdFilePreviewRequestwikEd.filePreviewRequest += '\n' + filefilePlain + ' ' + filePreviewSize + ' [[' + file + '|' + filePreviewSize + 'px|' + filePreviewSize + 'x' + filePreviewSize + 'px]]\n';
wikEdFilePreviewIdswikEd.filePreviewIds[wikEdFilePreviewNowikEd.filePreviewNo] = filefilePlain + filePreviewSize;
}
previewCode = '<span class="wikEdFilePreview" id="wikEdFilePreview' + wikEdFilePreviewNowikEd.filePreviewNo + '" style="' + style + '" title="' + wikEdConfig['wikEd.config.text']['wikEdFilePreview'] + ' (' + filefilePlain + ')"></span><!--wikEdFilePreview-->';
wikEdFilePreviewNowikEd.filePreviewNo ++;
}
insertLeft += '<span class="wikEdFile" ' + WikEdHighlightLinkifywikEd.HighlightLinkify('', filefilePlain) + '><span class="wikEdFileTag">';
}
insertRight = previewCode + '</span><!--wikEdLinkTag--><span class="wikEdFileName">';
url = regExpMatch[0];
}
insertLeft = '<span class="wikEdURL" ' + WikEdHighlightLinkifywikEd.HighlightLinkify('', '', url) + '><span class="wikEdLinkTag">';
insertRight = '</span><!--wikEdLinkTag-->';
break;
case 'template':
// do not hide templates if it has no parameters or if it shorter than wikEdConfig['wikEd.config.templNoHideLength'] chars
if ( (innerPlain.indexOf('|') == -1) || (innerPlain.length < wikEdConfig['wikEd.config.templNoHideLength']) ) {
node.noHide = true;
}
// 12 mod 2 : 1 34 : 4 5 namespace 53 6 template 6 7 89 param 98
var regExpTempl = new RegExp('^\\s*((' + wikEdTemplModifierwikEd.templModifier + ')\\:\\s*)?((\\:\\s*)?([^\\:\\|\\[\\]\\{\\}\\s\\x00\\x01]*\\s*\\:))?\\s*([^\\:\\n\\x00\\x01\\{\\}]+?)\\s*(\\|((.|\\n)*?))?\\s*$', 'gi');
// detect parser variables and functions, might slow main regexp down
if (parserVar == false) {
if ( (template != '') && (ns == '') && (param == '') ) {
var regExpParserVar = new RegExp('^(' + wikEdParserVariableswikEd.parserVariables + wikEdParserVariablesRwikEd.parserVariablesR + ')$', '');
if ( (regExpMatch = regExpParserVar.exec(template)) != null) {
parserVar = true;
WikEdHighlightBuildTreewikEd.HighlightBuildTree('templateParserFunct', 'block', tagFrom + 2, innerPlain.length, parseObj);
}
}
if (parserVar == false) {
if ( (ns != '') && (template == 'R') ) {
var regExpParserVar = new RegExp('^(' + wikEdParserVariablesRwikEd.parserVariablesR + ')$', '');
if ( (regExpMatch = regExpParserVar.exec(ns.substr(0, ns.length - 1))) != null) {
parserVar = true;
WikEdHighlightBuildTreewikEd.HighlightBuildTree('templateParserFunct', 'block', tagFrom + 2, innerPlain.indexOf(':') + 1, parseObj);
}
}
if (parserVar == false) {
if ( (ns != '') && ( (param == '') || (param == 'R') ) ) {
var regExpParserVar = new RegExp('^(' + wikEdParserFunctionsRwikEd.parserFunctionsR + ')$', '');
if ( (regExpMatch = regExpParserVar.exec(ns.substr(0, ns.length - 1))) != null) {
parserVar = true;
WikEdHighlightBuildTreewikEd.HighlightBuildTree('templateParserFunct', 'block', tagFrom + 2, innerPlain.indexOf(':') + 1, parseObj);
}
}
if (parserVar == false) {
if (ns != '') {
var regExpParserVar = new RegExp('^(' + wikEdParserFunctionswikEd.parserFunctions + ')$', 'i');
if ( (regExpMatch = regExpParserVar.exec(ns.substr(0, ns.length - 1))) != null) {
parserVar = true;
WikEdHighlightBuildTreewikEd.HighlightBuildTree('templateParserFunct', 'block', tagFrom + 2, innerPlain.indexOf(':') + 1, parseObj);
}
}
if (parserVar == false) {
if (ns != '') {
var regExpParserVar = new RegExp('^(#(' + wikEdParserFunctionsHashwikEd.parserFunctionsHash + '))$', 'i');
if ( (regExpMatch = regExpParserVar.exec(ns.substr(0, ns.length - 1))) != null) {
parserVar = true;
WikEdHighlightBuildTreewikEd.HighlightBuildTree('templateParserFunct', 'block', tagFrom + 2, innerPlain.indexOf(':') + 1, parseObj);
}
}
// highlight modifier
if (mod != '') {
WikEdHighlightBuildTreewikEd.HighlightBuildTree('templateModifier', 'block', tagFrom + 2, mod.length, parseObj);
}
// highlight namespace
if (ns != '') {
WikEdHighlightBuildTreewikEd.HighlightBuildTree('templateNamespace', 'block', tagFrom + 2 + mod.length, ns.length, parseObj);
}
// no Template: addition for subpage linking
if (template.indexOf('/') != 0) {
ns = wikEdConfig['wikEd.config.text']['wikicode Template'] + ':';
}
}
follow = ' ' + WikEdHighlightLinkifywikEd.HighlightLinkify(ns, template);
}
}
var hideClass = 'wikEdTempl';
if ( (template != '') && (parserVar == false) && (node.noHide != true) ) {
if (wikEdRefHidewikEd.refHide == true) {
// show first template immediately following a template or reference
}
}
insertLeft = '<span class="wikEdTemplContainer"><button class="' + hideButtonClass + wikEdTemplateArraywikEd.templateArray.length + '" title="' + wikEdConfig['wikEd.config.text']['wikEdTemplButtonTooltip'] + '"></button><!--wikEdTemplButton--></span><!--wikEdTemplContainer-->';
wikEdTemplateArraywikEd.templateArray.push( {'text': template, 'added': false} );
}
}
break;
case 'p':
insertLeft = '<span class="wikEdHtmlUnknown" title="' + wikEdConfig['wikEd.config.text']['wikEdErrorHtmlUnknown'] + '">';
pushRight = '</span><!--wikEdHtmlUnknown-->';
break;
if ( (regExpMatch = /(\bname\s*=\s*(\'|\"))([^\x01]+?)\2/i.exec(tagMatch)) != null) {
refName = regExpMatch[3];
WikEdHighlightBuildTreewikEd.HighlightBuildTree('refName', 'block', tagFrom + regExpMatch.index + regExpMatch[1].length, regExpMatch[3].length, parseObj);
}
else if ( (regExpMatch = /(\bname\s*=\s*)(\w+)/i.exec(tagMatch)) != null) {
refName = regExpMatch[2];
WikEdHighlightBuildTreewikEd.HighlightBuildTree('refName', 'block', tagFrom + regExpMatch.index + regExpMatch[1].length, regExpMatch[2].length, parseObj);
}
if (wikEdRefHidewikEd.refHide == true) {
if (refName != '') {
insertLeft = '<span class="wikEdRefContainer"><button class="wikEdRefButton' + wikEdReferenceArraywikEd.referenceArray.length + '" title="' + wikEdConfig['wikEd.config.text']['wikEdRefButtonTooltip'] + '"></button><!--wikEdRefButton--></span><!--wikEdRefContainer-->';
wikEdReferenceArraywikEd.referenceArray.push( {'text': refName, 'added': false} );
}
else {
insertLeft = '<span class="wikEdRefContainer"><button class="wikEdRefButton" title="' + wikEdConfig['wikEd.config.text']['wikEdRefButtonTooltip'] + '"></button><!--wikEdRefButton--></span><!--wikEdRefContainer-->';
}
}
case 'heading':
var heading = innerPlain.replace(/^\s+|\s+$/g, '');
if ( (heading == wikEdConfig['wikEd.config.text']['See also']) || (heading == wikEdConfig['wikEd.config.text']['References']) || (heading == wikEdConfig['wikEd.config.text']['External links']) ) {
insertLeft = '<span class="wikEdHeadingWP">';
}
break;
case 'p':
insertLeft = '<span class="wikEdHtmlUnknown" title="' + wikEdConfig['wikEd.config.text']['wikEdErrorHtmlUnknown'] + '">';
pushRight = '</span><!--wikEdHtmlUnknown-->';
break;
url = regExpMatch[0];
}
insertLeft = '<span class="wikEdURLName" ' + WikEdHighlightLinkifywikEd.HighlightLinkify('', '', url) + '>';
pushRight = '</span><!--wikEdURLName-->';
break;
idNumber = regExpMatch[0];
}
insertLeft = '<span class="wikEdPMID" ' + WikEdHighlightLinkifywikEd.HighlightLinkify('', '', 'http://www.ncbi.nlm.nih.gov/pubmed/' + idNumber) + '>';
insertRight = '</span><!--wikEdPMID-->';
break;
idNumber = regExpMatch[0].replace(/\D/g, '');
}
insertLeft = '<span class="wikEdISBN" ' + WikEdHighlightLinkifywikEd.HighlightLinkify('', 'Special:BookSources/' + idNumber) + '>';
pushRight = '</span><!--wikEdISBN-->';
break;
idNumber = regExpMatch[0].replace(/\D/g, '');
}
insertLeft = '<span class="wikEdISBN" ' + WikEdHighlightLinkifywikEd.HighlightLinkify('', '', 'http://tools.ietf.org/html/rfc' + idNumber) + '>';
pushRight = '</span><!--wikEdISBN-->';
break;
break;
case 'signature':
var title = wikEdConfig['wikEd.config.text']['wikEdSignature' + tagLength];
insertLeft = '<span class="wikEdSignature" title="' + title + '">';
insertRight = '</span><!--wikEdSignature-->';
break;
case 'htmlUnknown':
insertLeft = '<span class="wikEdHtmlUnknown" title="' + wikEdConfig['wikEd.config.text']['wikEdErrorHtmlUnknown'] + '">';
pushRight = '</span><!--wikEdHtmlUnknown-->';
break;
if ( (regExpMatch = /(\bname\s*=\s*(\'|\"))([^\x01]+?)\2/i.exec(tagMatch)) != null) {
refName = regExpMatch[3];
WikEdHighlightBuildTreewikEd.HighlightBuildTree('refName', 'block', tagFrom + regExpMatch.index + regExpMatch[1].length, regExpMatch[3].length, parseObj);
}
else if ( (regExpMatch = /(\bname\s*=\s*)(\w+)/i.exec(tagMatch)) != null) {
refName = regExpMatch[2];
WikEdHighlightBuildTreewikEd.HighlightBuildTree('refName', 'block', tagFrom + regExpMatch.index + regExpMatch[1].length, regExpMatch[2].length, parseObj);
}
if (wikEdRefHidewikEd.refHide == true) {
if (refName != '') {
insertLeft = '<span class="wikEdRefContainer"><button class="wikEdRefButton' + wikEdReferenceArraywikEd.referenceArray.length + '" title="' + wikEdConfig['wikEd.config.text']['wikEdRefButtonTooltip'] + '"></button><!--wikEdRefButton--></span><!--wikEdRefContainer-->';
wikEdReferenceArraywikEd.referenceArray.push( {'text': refName + ' ↑', 'added': false} );
}
else {
insertLeft = '<span class="wikEdRefContainer"><button class="wikEdRefButton" title="' + wikEdConfig['wikEd.config.text']['wikEdRefButtonTooltip'] + '"></button><!--wikEdRefButton--></span><!--wikEdRefContainer-->';
}
}
break;
case 'ctrl':
insertLeft = '<span class="wikEdCtrl" title="' + wikEdControlCharHighlightingwikEd.controlCharHighlighting[tagMatch.charCodeAt(0).toString()] + '">';
insertRight = '</span><!--wikEdCtrl-->';
break;
case 'char':
var titleClass = wikEdCharHighlightingwikEd.charHighlighting[tagMatch.charCodeAt(0).toString()];
insertLeft = '<span class="' + titleClass + '" title="' + titleClass + '">';
insertRight = '</span><!--' + titleClass + '-->';
case 'charEntity':
var regExpMatch = /&(\w+);/i.exec(tagMatch);
var character = wikEdCharEntitiesByNamewikEd.charEntitiesByName[ regExpMatch[1] ];
if (character != null) {
if (wikEdRefHidewikEd.refHide == true) {
insertLeft = '<span class="wikEdCharEntityContainer"><button class="wikEdCharEntityButton' + wikEdCharEntityArraywikEd.charEntityArray.length + '" title="' + wikEdConfig['wikEd.config.text']['wikEdCharEntityButtonTooltip'] + '"></button><!--wikEdCharEntityButton--></span><!--wikEdCharEntityContainer-->';
wikEdCharEntityArraywikEd.charEntityArray.push( {'text': character, 'added': false} );
}
insertLeft += '<span class="wikEdCharEntity">';
case 'error':
insertLeft = '<span class="wikEdError" title="' + node.left + '">';
if (wikEdConfig['wikEd.config.highlightError'] == true) {
insertLeft += '<span class="wikEdHighlightError">' + node.left + '</span><!--wikEdHighlightError-->';
}
//
// WikEdHighlightMergeHtmlwikEd.HighlightMergeHtml: merge parse tree highlighting html code with article text
//
windowwikEd.WikEdHighlightMergeHtmlHighlightMergeHtml = function(parseObj, obj) {
if (parseObj.tree.length <= 1) {
//
// WikEdHighlightLinkifywikEd.HighlightLinkify: prepare the span tag parameters for ctrl-click opening of highlighted links
//
windowwikEd.WikEdHighlightLinkifyHighlightLinkify = function(linkPrefix, linkTitle, linkUrl) {
if (wikEdConfig['wikEd.config.linkify'] != true) {
return('');
}
// remove control chars
var regExp = new RegExp('[' + wikEdControlCharHighlightingStrwikEd.controlCharHighlightingStr + '\t\n\r]', 'g');
linkPrefix = linkPrefix.replace(regExp, '');
linkTitle = linkTitle.replace(regExp, '');
linkTitle = linkTitle.replace(/^:+ *()/, '');
linkTitle = linkTitle.replace(/ +/g, '_');
linkName = linkPrefix + linkTitle;
// character accentuation for Esperanto, see [[Help:Special_characters#Esperanto]]
if (wikEdWikiGlobals['wikEd.wikiGlobals.wgContentLanguage'] == 'eo') {
linkTitle = linkTitle.replace(/([cghjsu])(x+)/gi,
function (p, p1, p2) {
// Wiktionary differentiates between lower and uppercased titles, interwiki should not be uppercased
if (subpage == true) {
linkUrl = linkPrefix + wikEdPageNamewikEd.pageName + linkTitle;
}
else {
linkUrl = linkPrefix + linkTitle;
}
linkUrl = encodeURI(linkUrl);
linkUrl = linkUrl.replace(/%25(\d\d)/g, '%$1');
linkUrl = linkUrl.replace(/\'/g, '%27');
linkUrl = linkUrl.replace(/#/g, '%23');
if (wikEdWikiGlobals['wgArticlePath']wikEd.config.LinkifyArticlePath =!= null) {
linkUrl = ''wikEd.config.LinkifyArticlePath.replace(/\$1/, linkUrl);
}
else if (wikEd.wikiGlobals.wgArticlePath != null){
linkUrl = wikEd.wikiGlobals.wgArticlePath.replace(/\$1/, linkUrl);
}
else {
linkUrl = wikEdWikiGlobals['wgArticlePath'].replace(/\$1/, linkUrl);
linkName = linkPrefix + linkTitle;
}
}
var linkPopup = linkName;
if (subpage == true) {
linkPopup = wikEdPageNamewikEd.pageName + linkPopup;
}
linkPopup = linkPopup.replace(/</g, '<');
if (linkUrl != '') {
var titleClick;
if (wikEdPlatformwikEd.platform == 'mac') {
titleClick = wikEdConfig['wikEd.config.text']['followLinkMac'];
}
else {
titleClick = wikEdConfig['wikEd.config.text']['followLink'];
}
linkParam += 'id="wikEdLinkify' + wikEdLinkifyArraywikEd.linkifyArray.length + '" title="' + linkPopup + ' ' + titleClick + '"';
wikEdLinkifyArraywikEd.linkifyArray.push(linkUrl);
}
return(linkParam);
//
// WikEdUpdateTextareawikEd.UpdateTextarea: copy frame content to textarea
//
windowwikEd.WikEdUpdateTextareaUpdateTextarea = function() {
// remove dynamically inserted nodes by other scripts
wikEd.CleanNodes(wikEd.frameDocument);
WikEdCleanNodes(wikEdFrameDocument);
// get frame content
var obj = {};
obj.html = wikEdFrameBodywikEd.frameBody.innerHTML;
// remove trailing blanks and newlines at end of text
// textify so that no html formatting is submitted
WikEdTextifywikEd.Textify(obj);
obj.plain = obj.plain.replace(/ | |\xa0/g, ' ');
obj.plain = obj.plain.replace(/</g, '<');
// copy to textarea
wikEdTextareawikEd.textarea.value = obj.plain;
// remember frame scroll position
wikEdFrameScrollTopwikEd.frameScrollTop = wikEdFrameBodywikEd.frameBody.scrollTop;
return;
//
// WikEdUpdateFramewikEd.UpdateFrame: copy textarea content to frame
//
windowwikEd.WikEdUpdateFrameUpdateFrame = function() {
// get textarea content
var obj = {};
obj.html = wikEdTextareawikEd.textarea.value;
obj.html = obj.html.replace(/&/g, '&');
obj.html = obj.html.replace(/>/g, '>');
// highlight the syntax
if (wikEdHighlightSyntaxwikEd.highlightSyntax == true) {
obj.whole = true;
WikEdHighlightSyntaxwikEd.HighlightSyntax(obj);
}
// select the whole text after replacing the whole text and scroll to same height
if (wikEdMSIEwikEd.msie == true) {
}
else {
obj.sel = WikEdGetSelectionwikEd.GetSelection();
WikEdRemoveAllRangeswikEd.RemoveAllRanges(obj.sel);
}
// insert content into empty frame
if ( (wikEdFrameBodywikEd.frameBody.firstChild == null) || (/^<br[^>]*>\s*$/.test(wikEdFrameBodywikEd.frameBody.innerHTML) == true) ) {
wikEdFrameBodywikEd.frameBody.innerHTML = obj.html;
}
// insert content into frame, preserve history
else {
var range = wikEdFrameDocumentwikEd.frameDocument.createRange();
range.setStartBefore(wikEdFrameBodywikEd.frameBody.firstChild);
range.setEndAfter(wikEdFrameBodywikEd.frameBody.lastChild);
obj.sel.addRange(range);
var scrollOffset = window.pageYOffset || document.body.scrollTop;
if (obj.html != '') {
WikEdFrameExecCommandwikEd.FrameExecCommand('inserthtml', obj.html);
}
else {
WikEdFrameExecCommandwikEd.FrameExecCommand('delete');
}
window.scroll(0, scrollOffset);
WikEdRemoveAllRangeswikEd.RemoveAllRanges(obj.sel);
// scroll to previous position
if (wikEdFrameScrollTopwikEd.frameScrollTop != null) {
wikEdFrameBodywikEd.frameBody.scrollTop = wikEdFrameScrollTopwikEd.frameScrollTop;
}
}
wikEdFrameScrollTopwikEd.frameScrollTop = null;
// add event handlers and labels
if (wikEdHighlightSyntaxwikEd.highlightSyntax == true) {
// name ref and template buttons
wikEd.HighlightNamedHideButtons();
WikEdHighlightNamedHideButtons();
// add event handlers to unhide refs and templates
wikEd.HideAddHandlers();
WikEdHideAddHandlers();
// add event handlers to make highlighted frame links ctrl-clickable
wikEd.LinkifyAddHandlers();
WikEdLinkifyAddHandlers();
}
//
// WikEdKeyHandlerwikEd.KeyHandler: event handler for keydown events in main document and frame
// detects emulated accesskey and traps enter in find/replace input elements
//
windowwikEd.WikEdKeyHandlerKeyHandler = function(event) {
// event compatibility fixes
event = WikEdEventwikEd.EventWrapper(event, this);
if (event == null) {
return;
}
if (wikEdUseWikEdwikEd.useWikEd == true) {
// trap enter in find/replace input elements
event.stopPropagation();
if (event.shiftKey == true) {
WikEdEditButtonwikEd.EditButton(null, 'wikEdFindPrev');
}
else if (event.ctrlKey == true) {
WikEdEditButtonwikEd.EditButton(null, 'wikEdFindAll');
}
else {
WikEdEditButtonwikEd.EditButton(null, 'wikEdFindNext');
}
}
event.stopPropagation();
if (event.shiftKey == true) {
WikEdEditButtonwikEd.EditButton(null, 'wikEdReplacePrev');
}
else if (event.ctrlKey == true) {
WikEdEditButtonwikEd.EditButton(null, 'wikEdReplaceAll');
}
else {
WikEdEditButtonwikEd.EditButton(null, 'wikEdReplaceNext');
}
}
// get wikEd button id from keycode
var buttonId = wikEdButtonKeyCodewikEd.buttonKeyCode[event.keyCode];
if (buttonId != null) {
event.preventDefault();
var obj = document.getElementById(buttonId);
objId = obj.id;
eval(wikEdEditButtonHandlerwikEd.editButtonHandler[buttonId]);
}
}
//
// WikEdFrameExecCommandwikEd.FrameExecCommand: wrapper for execCommand method
//
windowwikEd.WikEdFrameExecCommandFrameExecCommand = function(command, option) {
if (typeof(wikEdFrameDocumentwikEd.frameDocument.execCommand) == 'function') {
wikEdFrameDocumentwikEd.frameDocument.execCommand(command, false, option);
}
// MSIE workaround, breaks the undo history
else if (command == 'inserthtml') {
wikEdFrameDocumentwikEd.frameDocument.selection.createRange().pasteHTML(option);
}
return;
//
// WikEdFindAheadwikEd.FindAhead: find-as-you-type, event handler for find field, supports insensitive and regexp settings
//
windowwikEd.WikEdFindAheadFindAhead = function() {
if (WikEdGetAttributewikEd.GetAttribute(wikEdFindAheadwikEd.findAhead, 'checked') == 'true') {
// get the find text
var findText = wikEdFindTextwikEd.findText.value;
if (findText == '') {
return;
// remember input field selection
var findTextSelectionStart = wikEdFindTextwikEd.findText.selectionStart;
var findTextSelectionEnd = wikEdFindTextwikEd.findText.selectionEnd;
// remember frame selection
var sel = WikEdGetSelectionwikEd.GetSelection();
var range = sel.getRangeAt(sel.rangeCount - 1).cloneRange();
var rangeClone = range.cloneRange();
var scrollTop = wikEdFrameBodywikEd.frameBody.scrollTop;
// collapse selection to the left
WikEdRemoveAllRangeswikEd.RemoveAllRanges(sel);
range.collapse(true);
range = sel.addRange(range);
// get the replace text
var replaceText = wikEdInputElementwikEd.inputElement['replace'].value;
// get insensitive and regexp button states
var regExpChecked = WikEdGetAttributewikEd.GetAttribute(wikEdRegExpwikEd.regExp, 'checked');
var caseSensitiveChecked = WikEdGetAttributewikEd.GetAttribute(wikEdCaseSensitivewikEd.caseSensitive, 'checked');
// get case sensitive setting
// parameters: obj, findText, caseSensitive, backwards, wrap, useRegExp
found = WikEdFindwikEd.Find(obj, findText, caseSensitive, false, true, useRegExp);
// restore original frame selection
if (found == false) {
wikEdFrameBodywikEd.frameBody.scrollTop = scrollTop;
WikEdRemoveAllRangeswikEd.RemoveAllRanges(sel);
sel.addRange(rangeClone);
}
else {
WikEdRemoveAllRangeswikEd.RemoveAllRanges(obj.sel);
obj.sel.addRange(obj.changed.range);
// scroll to selection
WikEdScrollToSelectionwikEd.ScrollToSelection();
}
}
// restore input field selection (needed for FF 3.6)
wikEdFindTextwikEd.findText.select();
wikEdFindTextwikEd.findText.setSelectionRange(findTextSelectionStart, findTextSelectionEnd);
return;
//
// WikEdMainSwitchwikEd.MainSwitch: click handler for program logo
//
windowwikEd.WikEdMainSwitchMainSwitch = function() {
// disable function if browser is incompatible
if (wikEdBrowserNotSupportedwikEd.browserNotSupported == true) {
return;
}
// enable wikEd
if (wikEdDisabledwikEd.disabled == true) {
wikEdDisabledwikEd.disabled = false;
WikEdSetPersistentwikEd.SetPersistent('wikEdDisabled', '0', 0, '/');
// turn rich text frame on
if (wikEdTurnedOnwikEd.turnedOn == false) {
// setup wikEd
WikEdTurnOnwikEd.TurnOn(false);
}
else {
WikEdSetLogowikEd.SetLogo();
var useWikEd = false;
if (WikEdGetAttributewikEd.GetAttribute(document.getElementById('wikEdUseWikEd'), 'checked') == 'true') {
useWikEd = true;
}
WikEdSetEditAreawikEd.SetEditArea(useWikEd);
wikEdUseWikEdwikEd.useWikEd = useWikEd;
if (wikEdUseWikEdwikEd.useWikEd == true) {
WikEdUpdateFramewikEd.UpdateFrame();
}
wikEdButtonsWrapperwikEd.buttonsWrapper.style.display = 'block';
wikEdButtonBarPreviewwikEd.buttonBarPreview.style.display = 'block';
if (wikEdButtonBarJumpwikEd.buttonBarJump != null) {
wikEdButtonBarJumpwikEd.buttonBarJump.style.display = 'block';
}
// run scheduled custom functions
WikEdExecuteHookwikEd.ExecuteHook(wikEdConfig['wikEd.config.onHook']);
}
}
// disable wikEd
else {
WikEdSetPersistentwikEd.SetPersistent('wikEdDisabled', '1', 0, '/');
if (wikEdTurnedOnwikEd.turnedOn == false) {
wikEdUseWikEdwikEd.useWikEd = false;
wikEdDisabledwikEd.disabled = true;
WikEdSetLogowikEd.SetLogo();
}
else {
if (wikEdFullScreenModewikEd.fullScreenMode == true) {
WikEdFullScreenwikEd.FullScreen(false);
}
// turn classic textarea on
if (wikEdUseWikEdwikEd.useWikEd == true) {
WikEdUpdateTextareawikEd.UpdateTextarea();
}
WikEdSetEditAreawikEd.SetEditArea(false);
// reset textarea dimensions
wikEdTextareawikEd.textarea.style.height = (wikEdTextareaOffsetHeightInitialwikEd.textareaOffsetHeightInitial - wikEdFrameBorderHeightwikEd.frameBorderHeight) + 'px';
wikEdTextareawikEd.textarea.style.width = '100%';
wikEdFrameHeightwikEd.frameHeight = (wikEdTextareaOffsetHeightInitialwikEd.textareaOffsetHeightInitial - wikEdFrameBorderHeightwikEd.frameBorderHeight) + 'px';
wikEdFrameWidthwikEd.frameWidth = (wikEdEditorWrapperwikEd.editorWrapper.clientWidth - wikEdFrameBorderWidthwikEd.frameBorderWidth) + 'px';
wikEdFramewikEd.frame.style.height = wikEdFrameHeightwikEd.frameHeight;
wikEdFramewikEd.frame.style.width = wikEdFrameWidthwikEd.frameWidth;
wikEdButtonsWrapperwikEd.buttonsWrapper.style.display = 'none';
wikEdButtonBarPreviewwikEd.buttonBarPreview.style.display = 'none';
wikEdLocalPrevWrapperwikEd.localPrevWrapper.style.display = 'none';
wikEdPreviewBoxwikEd.previewBox.style.height = 'auto';
if (wikEdButtonBarJumpwikEd.buttonBarJump != null) {
wikEdButtonBarJumpwikEd.buttonBarJump.style.display = 'none';
}
wikEdUseWikEdwikEd.useWikEd = false;
wikEdDisabledwikEd.disabled = true;
WikEdSetLogowikEd.SetLogo();
// run scheduled custom functions
WikEdExecuteHookwikEd.ExecuteHook(wikEdConfig['wikEd.config.offHook']);
}
}
//
// WikEdFullScreenwikEd.FullScreen: change to fullscreen edit area or back to normal view
//
windowwikEd.WikEdFullScreenFullScreen = function(fullscreen, notFrame) {
// hide or show elements
// divs below input wrapper
var node = wikEdInputWrapperwikEd.inputWrapper.nextSibling;
while (node != null) {
if (node.nodeName == 'DIV') {
if (fullscreen == true) {
if (notFrame != true) {
wikEdInputWrapperwikEd.inputWrapper.className = 'wikEdInputWrapperFull';
}
wikEdButtonBarPreviewwikEd.buttonBarPreview.className = 'wikEdButtonBarPreviewFull';
}
else {
if (notFrame != true) {
wikEdInputWrapperwikEd.inputWrapper.className = 'wikEdInputWrapper';
}
wikEdButtonBarPreviewwikEd.buttonBarPreview.className = 'wikEdButtonBarPreview';
}
// end frame resizing
WikEdRemoveEventListenerwikEd.RemoveEventListener(wikEdFrameDocumentwikEd.frameDocument, 'mouseup', WikEdResizeStopHandlerwikEd.ResizeStopHandler, true);
WikEdRemoveEventListenerwikEd.RemoveEventListener(document, 'mouseup', WikEdResizeStopHandlerwikEd.ResizeStopHandler, true);
WikEdRemoveEventListenerwikEd.RemoveEventListener(wikEdFrameDocumentwikEd.frameDocument, 'mousemove', WikEdResizeDragHandlerFramewikEd.ResizeDragHandlerFrame, true);
WikEdRemoveEventListenerwikEd.RemoveEventListener(document, 'mousemove', WikEdResizeDragHandlerDocumentwikEd.ResizeDragHandlerDocument, true);
wikEdResizeFrameMouseOverGripwikEd.resizeFrameMouseOverGrip = false;
WikEdRemoveEventListenerwikEd.RemoveEventListener(wikEdFrameDocumentwikEd.frameDocument, 'mousedown', WikEdResizeStartHandlerwikEd.ResizeStartHandler, true);
wikEdFrameBodywikEd.frameBody.style.cursor = 'auto';
wikEdResizeFrameActivewikEd.resizeFrameActive = false;
var consoleTop = WikEdGetOffsetTopwikEd.GetOffsetTop(wikEdConsoleWrapperwikEd.consoleWrapper);
var consoleHeight = wikEdConsoleWrapperwikEd.consoleWrapper.offsetHeight;
var frameHeight = wikEdFramewikEd.frame.offsetHeight;
var windowHeight = WikEdGetWindowInnerHeightwikEd.GetWindowInnerHeight();
wikEdFramewikEd.frame.style.height = (frameHeight + (windowHeight - (consoleTop + consoleHeight) ) - 2) + 'px';
wikEdFramewikEd.frame.style.width = (wikEdEditorWrapperwikEd.editorWrapper.clientWidth - wikEdFrameBorderWidthwikEd.frameBorderWidth) + 'px';
}
else {
if (wikEdFrameHeightwikEd.frameHeight == 0) {
wikEdFrameHeightwikEd.frameHeight = (wikEdTextareaOffsetHeightInitialwikEd.textareaOffsetHeightInitial - wikEdFrameBorderHeightwikEd.frameBorderHeight) + 'px';
wikEdFrameWidthwikEd.frameWidth = (wikEdEditorWrapperwikEd.editorWrapper.clientWidth - wikEdFrameBorderWidthwikEd.frameBorderWidth) + 'px';
}
wikEdFramewikEd.frame.style.height = wikEdFrameHeightwikEd.frameHeight;
wikEdFramewikEd.frame.style.width = wikEdFrameWidthwikEd.frameWidth;
}
// scroll to edit-frame
if (fullscreen == false) {
window.scroll(0, WikEdGetOffsetTopwikEd.GetOffsetTop(wikEdInputWrapperwikEd.inputWrapper) - 2);
}
// set the fullscreen button state
WikEdButtonwikEd.Button(document.getElementById('wikEdFullScreen'), 'wikEdFullScreen', null, fullscreen);
// grey out or re-activate scroll-to buttons
// resize the summary field
wikEd.ResizeSummary();
WikEdResizeSummary();
wikEdFullScreenModewikEd.fullScreenMode = fullscreen;
return;
//
// WikEdResizeSummarywikEd.ResizeSummary: recalculate the summary width after resizing the window
//
windowwikEd.WikEdResizeSummaryResizeSummary = function() {
// check if combo field exists
if (wikEdSummarySelectwikEd.summarySelect == null) {
return;
}
wikEdSummaryTextwikEd.summaryText.style.width = '';
wikEdSummarySelectwikEd.summarySelect.style.width = '';
wikEdSummaryTextWidthwikEd.summaryTextWidth = wikEdSummaryWrapperwikEd.summaryWrapper.clientWidth - ( WikEdGetOffsetLeftwikEd.GetOffsetLeft(wikEdSummaryTextwikEd.summaryText) - WikEdGetOffsetLeftwikEd.GetOffsetLeft(wikEdSummaryWrapperwikEd.summaryWrapper) );
if (wikEdSummaryTextWidthwikEd.summaryTextWidth < 150) {
wikEdSummaryTextWidthwikEd.summaryTextWidth = 150;
}
wikEdSummaryTextwikEd.summaryText.style.width = wikEdSummaryTextWidthwikEd.summaryTextWidth + 'px';
WikEdResizeComboInputwikEd.ResizeComboInput('summary');
return;
};
//
// WikEdResizeComboInputwikEd.ResizeComboInput: set the size of the background select boxes so that the button is visible
// calculates the select button width as the difference between select and option width
// adjusts widths so that only the select button is visible behind the input field
//
windowwikEd.WikEdResizeComboInputResizeComboInput = function(field) {
// check if combo field exists
if (wikEdSelectElementwikEd.selectElement[field] == null) {
return;
}
// detect browser for MS IE fixes
var standardBrowser = true;
if (wikEdSelectElementwikEd.selectElement[field].options.offsetWidth != null ) {
standardBrowser = false;
}
// set select height and top
if (standardBrowser == false) {
wikEdSelectElementwikEd.selectElement[field].style.height = (wikEdInputElementwikEd.inputElement[field].clientHeight + 6) + 'px';
wikEdSelectElementwikEd.selectElement[field].style.top = '3px';
wikEdInputElementwikEd.inputElement[field].style.top = '3px';
}
var testOption = 1;
if (standardBrowser == true) {
if (wikEdSelectElementwikEd.selectElement[field].options.length == 0) {
testOption = 0;
wikEdSelectElementwikEd.selectElement[field].options[0] = new Option('');
dummy = true;
}
// set option widths to 0
if (standardBrowser == true) {
for (var i = 0; i < wikEdSelectElementwikEd.selectElement[field].options.length; i ++) {
wikEdSelectElementwikEd.selectElement[field].options[i].style.width = '0';
}
}
// get input width
var inputBorder = (wikEdInputElementwikEd.inputElement[field].offsetWidth - wikEdInputElementwikEd.inputElement[field].clientWidth);
var inputWidthInner = wikEdInputElementwikEd.inputElement[field].clientWidth;
var inputWidthOuter = wikEdInputElementwikEd.inputElement[field].offsetWidth;
// get select width
var selectWidthInner = wikEdSelectElementwikEd.selectElement[field].clientWidth;
var selectWidthOuter = wikEdSelectElementwikEd.selectElement[field].offsetWidth;
// get option width and calculate button width
// Firefox < 3.0
if ( typeof(wikEdSelectElementwikEd.selectElement[field].options[testOption].clientLeft) == 'undefined' ) {
optionWidthInner = wikEdSelectElementwikEd.selectElement[field].options[testOption].clientWidth;
buttonWidth = selectWidthInner - optionWidthInner - 6;
}
// Firefox >= 3.0
else {
optionWidthInner = wikEdSelectElementwikEd.selectElement[field].options[testOption].clientWidth;
buttonWidth = selectWidthInner - optionWidthInner;
}
// for long fields shorten input
if (inputWidthOuter + buttonWidth > 150) {
wikEdInputElementwikEd.inputElement[field].style.width = (inputWidthInner - inputBorder - buttonWidth) + 'px';
wikEdSelectElementwikEd.selectElement[field].style.width = (inputWidthInner) + 'px';
}
// otherwise increase select width
else {
wikEdSelectElementwikEd.selectElement[field].style.width = (inputWidthOuter + buttonWidth) + 'px';
}
// delete dummy option
if (dummy == true) {
wikEdSelectElementwikEd.selectElement[field].options[0] = null;
}
// set option widths to auto
if (standardBrowser == true) {
for (var i = 0; i < wikEdSelectElementwikEd.selectElement[field].options.length; i ++) {
wikEdSelectElementwikEd.selectElement[field].options[i].style.width = 'auto';
}
}
//
// WikEdChangeComboInputwikEd.ChangeComboInput: sets the input value to selected option; onchange event handler for select boxes
//
windowwikEd.WikEdChangeComboInputChangeComboInput = function(field) {
// get selection index (-1 for unselected)
var selected = wikEdSelectElementwikEd.selectElement[field].selectedIndex;
if (selected >= 0) {
wikEdSelectElementwikEd.selectElement[field].selectedIndex = -1;
// get selected option
var option = wikEdSelectElementwikEd.selectElement[field].options[selected];
if (option.text != '') {
// find and select heading text
var found = WikEdFindwikEd.Find(obj, findText, true, false, true, true);
WikEdRemoveAllRangeswikEd.RemoveAllRanges(obj.sel);
obj.sel.addRange(obj.changed.range);
// and scroll it into the viewport
WikEdScrollToSelectionwikEd.ScrollToSelection();
return;
}
// add a tag to the summary box
if (field == 'summary') {
wikEdInputElementwikEd.inputElement[field].value = WikEdAppendToSummarywikEd.AppendToSummary(wikEdInputElementwikEd.inputElement[field].value, option.text);
}
// add case and regexp checkboxes to find / replace fields
else if (option.value == 'setcheck') {
WikEdButtonwikEd.Button(document.getElementById('wikEdCaseSensitive'), 'wikEdCaseSensitive', null, (option.text.charAt(0) == wikEdCheckMarkerwikEd.checkMarker[true]) );
WikEdButtonwikEd.Button(document.getElementById('wikEdRegExp'), 'wikEdRegExp', null, (option.text.charAt(1) == wikEdCheckMarkerwikEd.checkMarker[true]) );
wikEdInputElementwikEd.inputElement[field].value = option.text.substr(3);
}
// add option text
else {
wikEdInputElementwikEd.inputElement[field].value = option.text;
}
// find the new text
if ( (field == 'find') && (WikEdGetAttributewikEd.GetAttribute(wikEdFindAheadwikEd.findAhead, 'checked') == 'true') ) {
WikEdFindAheadwikEd.FindAhead();
}
}
}
}
wikEdInputElementwikEd.inputElement[field].focus();
return;
//
// WikEdAppendToSummarywikEd.AppendToSummary: append a phrase to the summary text
//
windowwikEd.WikEdAppendToSummaryAppendToSummary = function(summary, append) {
summary = summary.replace(/^[, ]+/, '');
//
// WikEdAddToHistorywikEd.AddToHistory: add an input value to the saved history
//
windowwikEd.WikEdAddToHistoryAddToHistory = function(field) {
if (wikEdInputElementwikEd.inputElement[field].value != '') {
// load history from saved settings
WikEdLoadHistoryFromSettingswikEd.LoadHistoryFromSettings(field);
// add current value to history
wikEdFieldHistwikEd.fieldHist[field].unshift(wikEdInputElementwikEd.inputElement[field].value);
// add case and regexp checkboxes to find / replace value
if ( (field == 'find') || (field == 'replace') ) {
wikEdFieldHistwikEd.fieldHist[field][0] =
wikEdCheckMarkerwikEd.checkMarker[ (WikEdGetAttributewikEd.GetAttribute(wikEdCaseSensitivewikEd.caseSensitive, 'checked') == 'true') ] +
wikEdCheckMarkerwikEd.checkMarker[ (WikEdGetAttributewikEd.GetAttribute(wikEdRegExpwikEd.regExp, 'checked') == 'true') ] +
' ' + wikEdFieldHistwikEd.fieldHist[field][0];
}
// remove paragraph names from summary
if (field == 'summary') {
wikEdFieldHistwikEd.fieldHist[field][0] = wikEdFieldHistwikEd.fieldHist[field][0].replace(/^\/\* .*? \*\/ *()/, '');
}
// remove multiple old copies from history
var i = 1;
while (i < wikEdFieldHistwikEd.fieldHist[field].length) {
if (wikEdFieldHistwikEd.fieldHist[field][i] == wikEdFieldHistwikEd.fieldHist[field][0]) {
wikEdFieldHistwikEd.fieldHist[field].splice(i, 1);
}
else {
// remove new value if it is a preset value
if (wikEdConfig['wikEd.config.comboPresetOptions'][field] != null) {
var i = 0;
while (i < wikEdConfig['wikEd.config.comboPresetOptions'][field].length) {
if (wikEdConfig['wikEd.config.comboPresetOptions'][field][i] == wikEdFieldHistwikEd.fieldHist[field][0]) {
wikEdFieldHistwikEd.fieldHist[field].shift();
break;
}
// cut history number to maximal history length
wikEdFieldHistwikEd.fieldHist[field] = wikEdFieldHistwikEd.fieldHist[field].slice(0, wikEdConfig['wikEd.config.historyLength'][field]);
// save history to settings
if (wikEdFieldHistwikEd.fieldHist[field][0] != '') {
WikEdSaveHistoryToSettingwikEd.SaveHistoryToSetting(field);
}
}
//
// WikEdSetComboOptionswikEd.SetComboOptions: generate the select options from saved history; onfocus handler for select box
//
windowwikEd.WikEdSetComboOptionsSetComboOptions = function(field) {
// load history from saved settings
WikEdLoadHistoryFromSettingswikEd.LoadHistoryFromSettings(field);
var option = {};
// delete options
var options = wikEdSelectElementwikEd.selectElement[field].options;
for (var i = 0; i < options.length; i ++) {
wikEdSelectElementwikEd.selectElement[field].remove(i);
}
option = document.getElementById(field + 'Optgroup');
if (option != null) {
wikEdSelectElementwikEd.selectElement[field].removeChild(option);
}
option.style.display = 'none';
j = 0;
wikEdSelectElementwikEd.selectElement[field].options[j++] = option;
// add history entries
for (var i = 0; i < wikEdFieldHistwikEd.fieldHist[field].length; i ++) {
if (wikEdFieldHistwikEd.fieldHist[field][i] != null) {
if (wikEdFieldHistwikEd.fieldHist[field][i] == wikEdInputElementwikEd.inputElement[field].value) {
selectedOption = j;
}
// replace spaces with nbsp to allow for multiple, leading, and trailing spaces
option.text = wikEdFieldHistwikEd.fieldHist[field][i].replace(/ /g, '\xa0');
if ( (field == 'find') || (field == 'replace') ) {
option.value = 'setcheck';
}
wikEdSelectElementwikEd.selectElement[field].options[j++] = option;
}
}
// add preset entries
var startPreset = 0;
if (wikEdConfig['wikEd.config.comboPresetOptions'][field] != null) {
startPreset = j;
for (var i = 0; i < wikEdConfig['wikEd.config.comboPresetOptions'][field].length; i ++) {
if (wikEdConfig['wikEd.config.comboPresetOptions'][field][i] != null) {
// replace spaces with nbsp to allow for multiple, leading, and trailing spaces
wikEdConfig['wikEd.config.comboPresetOptions'][field][i] = wikEdConfig['wikEd.config.comboPresetOptions'][field][i].replace(/ /g, '\xa0');
// select a dropdown value
if (wikEdConfig['wikEd.config.comboPresetOptions'][field][i] == wikEdInputElementwikEd.inputElement[field].value) {
selectedOption = j;
}
option = document.createElement('option');
option.text = wikEdConfig['wikEd.config.comboPresetOptions'][field][i].replace(/ /g, '\xa0');
if (field == 'summary') {
option.text = option.text.replace(/\{wikEdUsingwikEd.using\}/g, wikEdConfig['wikEd.config.summaryUsing']);
}
wikEdSelectElementwikEd.selectElement[field].options[j++] = option;
}
}
// set the selection
wikEdSelectElementwikEd.selectElement[field].selectedIndex = selectedOption;
// add a blank preset separator
option.label = '\xa0';
option.id = field + 'Optgroup';
wikEdSelectElementwikEd.selectElement[field].insertBefore(option, wikEdSelectElementwikEd.selectElement[field].options[startPreset]);
}
// get the whole plain text
var plain = wikEdFrameBodywikEd.frameBody.innerHTML;
plain = plain.replace(/<br\b[^>]*>/g, '\n');
plain = plain.replace(/<.*?>/g, '');
option.text = '\u21d2' + headingIndent + headingMatch[3];
option.value = headingMatch[1];
wikEdSelectElementwikEd.selectElement[field].options[j++] = option;
}
}
option.label = '\xa0';
option.id = field + 'Optgroup';
wikEdSelectElementwikEd.selectElement[field].insertBefore(option, wikEdSelectElementwikEd.selectElement[field].options[startTOC]);
}
//
// WikEdClearHistorywikEd.ClearHistory: clear the history of combo input fields
//
windowwikEd.WikEdClearHistoryClearHistory = function(field) {
WikEdSetPersistentwikEd.SetPersistent(wikEdSavedNamewikEd.savedName[field], '', 0, '/');
WikEdSetComboOptionswikEd.SetComboOptions(field);
return;
};
//
// WikEdLoadHistoryFromSettingswikEd.LoadHistoryFromSettings: get the input box history from the respective saved settings
//
windowwikEd.WikEdLoadHistoryFromSettingsLoadHistoryFromSettings = function(field) {
var setting = WikEdGetPersistentwikEd.GetPersistent(wikEdSavedNamewikEd.savedName[field]);
if (setting != '') {
setting = decodeURIComponent(setting);
wikEdFieldHistwikEd.fieldHist[field] = setting.split('\n');
}
else {
wikEdFieldHistwikEd.fieldHist[field] = [];
}
return;
//
// WikEdSaveHistoryToSettingwikEd.SaveHistoryToSetting: save the input box history to the respective saved settings
//
windowwikEd.WikEdSaveHistoryToSettingSaveHistoryToSetting = function(field) {
var setting = '';
setting = wikEdFieldHistwikEd.fieldHist[field].join('\n');
setting = setting.replace(/\n$/, '');
setting = encodeURIComponent(setting);
WikEdSetPersistentwikEd.SetPersistent(wikEdSavedNamewikEd.savedName[field], setting, 0, '/');
return;
};
//
// WikEdGetSelectionwikEd.GetSelection: cross-browser method to get the current iframe selection
//
windowwikEd.WikEdGetSelectionGetSelection = function() {
// standard
var sel;
if (typeof(wikEdFrameWindowwikEd.frameWindow.getSelection) == 'function') {
sel = wikEdFrameWindowwikEd.frameWindow.getSelection();
}
// MS IE compatibility
else if (typeof(wikEdFrameDocumentwikEd.frameDocument.selection) == 'object') {
sel = wikEdFrameDocumentwikEd.frameDocument.selection;
}
// make sure there is at least an empty range
if (sel.rangeCount == 0) {
sel.collapse(wikEdFrameBodywikEd.frameBody, 0);
}
//
// WikEdClearSelectionwikEd.ClearSelection: cross-browser method to clear the currently selected text
//
windowwikEd.WikEdRemoveAllRangesRemoveAllRanges = function(sel) {
if (typeof(sel.removeAllRanges) == 'function') {
//
// WikEdSetRangewikEd.SetRange: set a range, control for non-text nodes (Opera 10.50 beta bug)
//
windowwikEd.WikEdSetRangeSetRange = function(range, startNode, startOffset, endNode, endOffset) {
WikEdSetRangeStartwikEd.SetRangeStart(range, startNode, startOffset);
WikEdSetRangeEndwikEd.SetRangeEnd(range, endNode, endOffset);
return;
};
//
// WikEdSetRangeStartwikEd.SetRangeStart: set range start
//
windowwikEd.WikEdSetRangeStartSetRangeStart = function(range, startNode, startOffset) {
if ( (startNode.childNodes.length > 0) && (startOffset < startNode.childNodes.length) ) {
//
// WikEdSetRangeEndwikEd.SetRangeEnd: set range end
//
windowwikEd.WikEdSetRangeEndSetRangeEnd = function(range, endNode, endOffset) {
if ( (endNode.childNodes.length > 0) && (endOffset < endNode.childNodes.length) ) {
//
// WikEdGetSavedSettingwikEd.GetSavedSetting: get a wikEd setting
//
windowwikEd.WikEdGetSavedSettingGetSavedSetting = function(settingName, preset) {
var setting = WikEdGetPersistentwikEd.GetPersistent(settingName);
if (setting == '') {
setting = preset;
//
// WikEdGetPersistentwikEd.GetPersistent: get a cookie or a Greasemonkey persistent value (code copied to wikEdDiff.js)
//
windowwikEd.WikEdGetPersistentGetPersistent = function(name) {
var getStr = '';
// get a value from web storage
if (wikEdWebStoragewikEd.webStorage == true) {
getStr = localStorage.getItem(name);
}
// get a Greasemonkey persistent value
else if (wikEdGreasemonkeywikEd.greasemonkey == true) {
getStr = GM_getValue(name, '');
}
// get a cookie value
else {
getStr = WikEdGetCookiewikEd.GetCookie(name);
}
return(getStr);
//
// WikEdSetPersistentwikEd.SetPersistent: set a cookie or a Greasemonkey persistent value, deletes the value for expire = -1
//
windowwikEd.WikEdSetPersistentSetPersistent = function(name, value, expires, path, ___domain, secure) {
// set a value in web storage
if (wikEdWebStoragewikEd.webStorage == true) {
if (expires == -1) {
localStorage.removeItem(name, '');
// set a Greasemonkey persistent value
else if (wikEdGreasemonkeywikEd.greasemonkey == true) {
if (expires == -1) {
GM_setValue(name, '');
// set a cookie value
else {
WikEdSetCookiewikEd.SetCookie(name, value, expires, path, ___domain, secure);
}
return;
//
// WikEdGetCookiewikEd.GetCookie: get a cookie (code copied to wikEdDiff.js)
//
windowwikEd.WikEdGetCookieGetCookie = function(cookieName) {
var cookie = ' ' + document.cookie;
//
// WikEdSetCookiewikEd.SetCookie: set a cookie, deletes a cookie for expire = -1
//
windowwikEd.WikEdSetCookieSetCookie = function(name, value, expires, path, ___domain, secure) {
var cookie = name + '=' + encodeURIComponent(value);
else if (expires == 0) {
var cookieExpire = new Date();
expires = cookieExpire.setTime(cookieExpire.getTime() + wikEdConfig['wikEd.config.cookieExpireSec'] * 1000);
expires = cookieExpire.toUTCString();
}
//
// WikEdGetOffsetTopwikEd.GetOffsetTop: get element offset relative to window top (code copied to wikEdDiff.js)
//
windowwikEd.WikEdGetOffsetTopGetOffsetTop = function(element) {
var offset = 0;
do {
//
// WikEdGetOffsetLeftwikEd.GetOffsetLeft: get element offset relative to left window border
//
windowwikEd.WikEdGetOffsetLeftGetOffsetLeft = function(element) {
var offset = 0;
do {
//
// WikEdAppendScriptwikEd.AppendScript: append script to head
//
windowwikEd.WikEdAppendScriptAppendScript = function(scriptUrl, onLoadFunction) {
var head = document.getElementsByTagName('head')[0];
head.appendChild(script);
if (onLoadFunction != null) {
WikEdAddEventListenerwikEd.AddEventListener(script, 'load', onLoadFunction, false);
}
return;
//
// WikEdCleanNodeswikEd.CleanNodes: remove DOM elements dynamically inserted by other scripts
//
windowwikEd.WikEdCleanNodesCleanNodes = function(node) {
if (wikEdCleanNodeswikEd.cleanNodes == false) {
return;
}
//
// WikEdParseDOMwikEd.ParseDOM: parses a DOM subtree into a linear array of plain text fragments
//
windowwikEd.WikEdParseDOMParseDOM = function(obj, topNode) {
obj.plainLength = 0;
var focusOffset = obj.sel.focusOffset;
WikEdParseDOMRecursivewikEd.ParseDOMRecursive(obj, topNode, anchorNode, anchorOffset, focusNode, focusOffset);
obj.plain = obj.plainArray.join('');
return;
//
// WikEdParseDOMRecursivewikEd.ParseDOMRecursive: parses a DOM subtree into a linear array of plain text fragments
//
windowwikEd.WikEdParseDOMRecursiveParseDOMRecursive = function(obj, currentNode, anchorNode, anchorOffset, focusNode, focusOffset) {
// cycle through the child nodes of currentNode
// skip hidden elements
if (WikEdGetStylewikEd.GetStyle(childNode, 'display') == 'none') {
continue;
}
if ( (childNode.childNodes.length == 0) && (wikEdLeafElementswikEd.leafElements[childNode.nodeName] == true) ) {
if (childNode.nodeName == 'BR') {
value = '\n';
}
else {
WikEdParseDOMRecursivewikEd.ParseDOMRecursive(obj, childNode, anchorNode, anchorOffset, focusNode, focusOffset);
}
break;
//
// WikEdGetInnerHTMLwikEd.GetInnerHTML: get the innerHTML of a document fragment
//
windowwikEd.WikEdGetInnerHTMLGetInnerHTML = function(obj, currentNode) {
// initialize string
}
}
if ( (childNode.childNodes.length == 0) && (wikEdLeafElementswikEd.leafElements[childNode.nodeName] == true) ) {
obj.html += '>';
if (childNode.nodeName == 'BR') {
else {
obj.html += '>';
WikEdGetInnerHTMLwikEd.GetInnerHTML(obj, childNode);
obj.html += '</' + childNode.nodeName.toLowerCase() + '>';
}
//
// WikEdGetNextNodewikEd.GetNextNode: recurse through DOM to next text-like node for anti-highlight bleeding
//
windowwikEd.WikEdGetNextTextNodeGetNextTextNode = function(obj, currentNode, currentLevel) {
// ascend until there is a sibling
while (currentNode != wikEdFrameBodywikEd.frameBody) {
// check for sibling
(currentNode.nodeName == '#text') ||
(currentNode.nodeType == currentNode.ENTITY_REFERENCE_NODE) ||
(wikEdLeafElementswikEd.leafElements[currentNode.nodeName] == true)
) {
obj.foundNode = currentNode;
// recurse into child nodes
if ( (currentNode.nodeType == currentNode.ELEMENT_NODE) && (/wikEdScrollwikEd.scroll(Before|After)/.test(currentNode.className) != true) ) {
WikEdGetNextTextNodeChildswikEd.GetNextTextNodeChilds(obj, currentNode, currentLevel - 1);
if (obj.foundNode != null) {
return;
// WikEdGetNextTextNodeChildswikEd.GetNextTextNodeChilds: recurse through child nodes to next text-like node for anti-highlight bleeding
windowwikEd.WikEdGetNextTextNodeChildsGetNextTextNodeChilds = function(obj, currentNode, currentLevel) {
// set direction
(currentNode.nodeName == '#text') ||
(currentNode.nodeType == currentNode.ENTITY_REFERENCE_NODE) ||
(wikEdLeafElementswikEd.leafElements[currentNode.nodeName] == true)
) {
obj.foundNode = currentNode;
// recurse into child nodes
if ( (currentNode.nodeType == currentNode.ELEMENT_NODE) && (/wikEdScrollwikEd.scroll(Before|After)/.test(currentNode.className) != true) ) {
WikEdGetNextTextNodeChildswikEd.GetNextTextNodeChilds(obj, currentNode, currentLevel - 1);
if (obj.foundNode != null) {
return;
//
// WikEdApplyCSSwikEd.ApplyCSS: Attach css rules to document
//
windowwikEd.WikEdApplyCSSApplyCSS = function(cssDocument, cssRules) {
var stylesheet = new WikEdStyleSheetwikEd.StyleSheet(cssDocument);
var rules = '';
for (var ruleName in cssRules) {
// replace {wikedImage:image} in css rules with image path
ruleStyle = ruleStyle.replace(/\{wikEdImagewikEd.image:(\w+)\}/g,
function (p, p1) {
return(wikEdConfig['wikEd.config.image'][p1]);
}
);
// replace {wikedText:text} in css rules with translation
ruleStyle = ruleStyle.replace(/\{wikEdTextwikEd.text:(\w+)\}/g,
function (p, p1) {
return(wikEdConfig['wikEd.config.text'][p1]);
}
);
}
}
stylesheet.WikEdAddRulesAddRules(rules);
return;
};
//
// WikEdStyleSheetwikEd.StyleSheet: create a new style sheet object (code copied to wikEdDiff.js)
//
windowwikEd.WikEdStyleSheetStyleSheet = function(contextObj) {
if (contextObj == null) {
//
// WikEdStyleSheetwikEd.WikEdAddRuleStyleSheet.AddRule: add one rule at the time using DOM method, very slow
//
this.WikEdAddRuleAddRule = function(selector, declaration) {
// MS IE compatibility
if (this.styleElement.WikEdAddRuleAddRule != null) {
if (declaration.length > 0) {
this.styleElement.WikEdAddRuleAddRule(selector, declaration);
}
}
//
// WikEdStyleSheetwikEd.WikEdAddRulesStyleSheet.AddRules: add or replace all rules at once, much faster
//
this.WikEdAddRulesAddRules = function(rules) {
// MS IE compatibility
// Safari, Chrome, WebKit
else if ( (wikEdSafariwikEd.safari == true) || (wikEdChromewikEd.chrome == true) || (wikEdWebKitwikEd.webkit == true) ) {
if (this.styleElement.firstChild != null) {
this.styleElement.removeChild(this.styleElement.firstChild);
//
// WikEdGetStylewikEd.GetStyle: get computed style properties for non-inline css definitions
//
windowwikEd.WikEdGetStyleGetStyle = function(element, styleProperty) {
var styleDocument = element.ownerDocument;
// recurse up trough the DOM tree
if (style == 'inherit') {
style = WikEdGetStylewikEd.GetStyle(element.parentNode, styleProperty);
}
}
//
// WikEdAjaxPreviewwikEd.AjaxPreview: get rendered page text using an Ajax non-api POST call
//
windowwikEd.WikEdAjaxPreviewAjaxPreview = function(textValue, ResponseHandler, livePreview) {
// prepare the url
var requestUrl;
if ( (wikEdUploadEditwikEd.uploadEdit == true) || (wikEdWatchlistEditwikEd.watchlistEdit == true) || (wikEdViewDeletedwikEd.viewDeleted == true) ) {
requestUrl = wikEdWikiGlobals['wikEd.wikiGlobals.wgServer'] + wikEdWikiGlobals['wikEd.wikiGlobals.wgScript'] + '?title=wikEdPreviewwikEd.preview&action=submit';
}
else {
requestUrl = wikEdEditFormwikEd.editForm.action;
}
var postFields = {};
postFields['wpTextbox1'] = textValue;
if (wikEdEdittimewikEd.edittime != null) {
postFields['wikEdEdittime'] = wikEdEdittimewikEd.edittime;
}
if (wikEdEditTokenwikEd.editToken != null) {
postFields['wpEditToken'] = wikEdEditTokenwikEd.editToken;
}
postFields['wpPreview'] = 'true';
var requestMethod = 'POST';
var overrideMimeType = 'text/html';
WikEdAjaxRequestwikEd.AjaxRequest(requestMethod, requestUrl, postFields, overrideMimeType, ResponseHandler);
return;
};
//
// WikEdAjaxRequestwikEd.AjaxRequest: cross browser wrapper for Ajax requests (code copied to wikEdDiff.js)
//
windowwikEd.WikEdAjaxRequestAjaxRequest = function(requestMethod, requestUrl, postFields, overrideMimeType, ResponseHandler) {
var request;
//create boundary
var boundary = WikEdCreateRandomStringwikEd.CreateRandomString(12);
// POST header
// use Greasemonkey GM_xmlhttpRequest
if (wikEdGreasemonkeywikEd.greasemonkey == true) {
var headerObj = { 'User-Agent': navigator.userAgent };
if (headerName != null) {
// allow ajax request from local copy for testing
if (wikEdConfig['wikEd.config.allowLocalAjax'] == true) {
if (typeof(netscape) == 'object') {
netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');
// new ajax request object
if (typeof(XMLHttpRequest) == 'objectfunction') {
request = new XMLHttpRequest();
}
//
// WikEdGetGlobalswikEd.GetGlobals: copy global context variables into Greasemonkey context (code copied to wikEdDiff.js)
// uses Greasemonkey postMessage ___location hack and JSON encoding
windowwikEd.WikEdGetGlobalsGetGlobals = function(names, gotGlobalsHook) {
if ( (typeof(window.postMessage) != 'function') || (typeof(JSON) != 'object') ) {
var locationHackCode = 'var globalObj = {};';
if (gotGlobalsHook != null) {
wikEdGotGlobalsHookwikEd.gotGlobalsHook.push(gotGlobalsHook);
locationHackCode += 'globalObj.hookNumber = ' + (wikEdGotGlobalsHookwikEd.gotGlobalsHook.length - 1) + ';';
}
locationHackCode += 'globalObj.wikEdGetGlobals = {};';
locationHackCode += ''
+ 'if (typeof(' + names[i] + ') != \'undefined\') {'
+ ' globalObj.wikEdGetGlobals[\'.' + names[i] + '\'] = ' + names[i] + ';'
+ '}';
}
locationHackCode += 'var globalObjStr = JSON.stringify(globalObj);';
if (window.___location.host != '') {
+ 'var globalObjStr = JSON.stringify(globalObj);'
locationHackCode += 'window.postMessage(globalObjStr, \'' + window.___location.protocol + '//' + window.___location.host + '\');'
}
+ 'void(0);';
else {
locationHackCode += 'window.postMessage(globalObjStr, \'*\');';
}
locationHackCode += 'void(0);';
___location.href = 'javascript:' + locationHackCode;
return;
};
//
// WikEdGetGlobalsReceiverwikEd.GetGlobalsReceiver: event handler for WikEdGetGlobalswikEd.GetGlobals postMessage
//
windowwikEd.WikEdGetGlobalsReceiverGetGlobalsReceiver = function(event) {
if (event.source != window) {
return;
}
if ( if(event.origin != null) && (event.origin != window.___location.protocol + '//' + window.___location.host) ) {
return;
}
if (event.data != '') {
var globalObj = JSON.parse(event.data);
for (var key in globals) {
if (globals.hasOwnProperty(key) == true) {
wikEdWikiGlobalswikEd.wikiGlobals[key] = globals[key];
}
}
// run scheduled functions only once
if (globalObj.hookNumber != null) {
WikEdExecuteHookwikEd.ExecuteHook(wikEdGotGlobalsHookwikEd.gotGlobalsHook[globalObj.hookNumber], true);
}
}
//
// WikEdGetAttributewikEd.GetAttribute: MS IE compatibility wrapper for element.getAttribute()
//
windowwikEd.WikEdGetAttributeGetAttribute = function(element, attribName) {
var attribValue = element.getAttribute(attribName);
//
// WikEdGetWindowInnerHeightwikEd.GetWindowInnerHeight: MS IE compatibility wrapper for window.innerHeight
//
windowwikEd.WikEdGetWindowInnerHeightGetWindowInnerHeight = function() {
var value = window.innerHeight;
//
// WikEdGetWindowInnerWidthwikEd.GetWindowInnerWidth: MS IE compatibility wrapper for window.innerWidth
//
windowwikEd.WikEdGetWindowInnerWidthGetWindowInnerWidth = function() {
var value = window.innerWidth;
//
// WikEdAddEventListenerwikEd.AddEventListener: wrapper for addEventListener (http://ejohn.org/projects/flexible-javascript-events/) (code copied to wikEdDiff.js)
//
windowwikEd.WikEdAddEventListenerAddEventListener = function(domElement, eventType, eventHandler, useCapture) {
if (domElement == null) {
//
// WikEdRemoveEventListenerwikEd.RemoveEventListener: wrapper for removeEventListener
//
windowwikEd.WikEdRemoveEventListenerRemoveEventListener = function(domElement, eventType, eventHandler, useCapture) {
if (domElement == null) {
//
// WikEdEventwikEd.EventWrapper: MS IE and Mozilla compatibility fix for event object
//
windowwikEd.WikEdEventEventWrapper = function(event, thisElement) {
var eventAlt;
eventAlt = window.event;
}
else if (wikEdFrameWindowwikEd.frameWindow != null) {
if (typeof(wikEdFrameWindowwikEd.frameWindow.event) != 'undefined') {
eventAlt = wikEdFrameWindowwikEd.frameWindow.event;
}
}
if ( (event.type == 'mouseout') || (event.type == 'mouseover') ) {
event.safeRelatedTarget = event.relatedTarget;
if (wikEdMozillawikEd.mozilla == true) {
try {
event.safeRelatedTarget.toString();
//
// WikEdGetElementsByClassNamewikEd.GetElementsByClassName: cross browser / backwards compatibility wrapper
//
windowwikEd.WikEdGetElementsByClassNameGetElementsByClassName = function(className, tagName, parent) {
if (parent == null) {
//
// WikEdGetPreviousSiblingNodewikEd.GetPreviousSiblingNode: getPreviousSibling, ignore non-element nodes such as comments
//
windowwikEd.WikEdGetPreviousSiblingNodeGetPreviousSiblingNode = function(node) {
while (node != null) {
//
// WikEdGetNextSiblingNodewikEd.GetNextSiblingNode: getNextSibling, ignore non-element nodes such as comments
//
windowwikEd.WikEdGetNextSiblingNodeGetNextSiblingNode = function(node) {
while (node != null) {
//
// WikEdGetFirstChildNodewikEd.GetFirstChildNode: getFirstChild, ignore non-element nodes such as comments
//
windowwikEd.WikEdGetFirstChildNodeGetFirstChildNode = function(node) {
if (node != null) {
node = node.firstChild;
WikEdGetNextSiblingNodewikEd.GetNextSiblingNode(node);
}
return(node);
//
// WikEdGetLastChildNodewikEd.GetLastChildNode: getLastChild, ignore non-element nodes such as comments
//
windowwikEd.WikEdGetLastChildNodeGetLastChildNode = function(node) {
if (node != null) {
node = node.lastChild;
WikEdGetPreviousSiblingNodewikEd.GetPreviousSiblingNode(node);
return(node);
}
//
// WikEdCreateRandomStringwikEd.CreateRandomString: create random string of specified length and character set (code copied to wikEdDiff.js)
//
windowwikEd.WikEdCreateRandomStringCreateRandomString = function(strLength, charSet) {
if (charSet == null) {
//
// WikEdDebugwikEd.Debug: print the value of variables
// use either a single value or a description followed by a value
// popup = true: use alert popup if debug textarea is not yet setup
//
windowwikEd.WikEdDebugDebug = function(objectName, object, usePopup) {
// string
// whole parse tree up
else if ( (typeof(object.tree) == 'object') && (typeof(object.lastOpenNode) == 'number') ) {
xxxx;
value = ': Parse tree upwards:\n';
var parseTreeIndex = object.lastOpenNode;
if ( (object.innerHTML != null) && (object.innerHTML != '') ) {
var html = object.innerHTML;
if (html.length > wikEdConfig['wikEd.config.debugInnerHtmlLength']) {
html = html.substr(0, wikEdConfig['wikEd.config.debugInnerHtmlLength'] - 3) + '...';
}
value += ', innerHTML: "' + html + '"';
// use debug textarea
var useDebug = false;
if (typeof(wikEdDebugwikEd.debug) != 'undefined') {
if (wikEdDebugwikEd.debug != null) {
useDebug = true;
}
}
if (useDebug == true) {
if (wikEdDebugOpenwikEd.debugOpen == false) {
wikEdDebugWrapperwikEd.debugWrapper.style.visibility = 'visible';
wikEdDebugwikEd.debug.style.display = 'block';
window.scroll(0, WikEdGetOffsetTopwikEd.GetOffsetTop(wikEdDebugwikEd.debug));
wikEdDebugOpenwikEd.debugOpen = true;
}
if (objectName == null) {
wikEdDebugwikEd.debug.value = '';
}
else {
// cut text if having reached maximum length
value = objectName + value + '\n';
if (wikEdDebugwikEd.debug.value.length > wikEdConfig['wikEd.config.debugMaxLength']) {
wikEdDebugwikEd.debug.value = value + wikEdDebugwikEd.debug.value.substr(0, wikEdConfig['wikEd.config.debugMaxLength'] * 2 / 3);
}
else {
wikEdDebugwikEd.debug.value = value + wikEdDebugwikEd.debug.value;
}
}
}
msg = msg.replace(/\'/g, '\\\'');
setTimeout('throw new Error(\'WikEdDebugwikEd.Debug: ' + msg + '\')', 0);
}
return;
//
// WikEdDebugTimerwikEd.DebugTimer: show all measured timepoints
// add a new time measurement: wikEdDebugTimerwikEd.debugTimer.push([1234, new Date]);
windowwikEd.WikEdDebugTimerDebugTimer = function() {
var times = '';
var start = wikEdDebugTimerwikEd.debugTimer[0][1].getTime();
var prev = 0;
for (var i = 0; i < wikEdDebugTimerwikEd.debugTimer.length; i ++) {
var curr = wikEdDebugTimerwikEd.debugTimer[i][1].getTime() - start;
var diff = curr - prev;
prev = curr;
times += wikEdDebugTimerwikEd.debugTimer[i][0] + ': ' + curr + ' ms (+ ' + diff + ' ms)\n';
}
WikEdDebugwikEd.Debug(times);
wikEdDebugTimerwikEd.debugTimer = [];
};
//
// WikEdInsertTagswikEd.InsertTags: overrides the insertTags function in wikibits.js used by the standard button toolbar and the editpage special chars
//
windowwikEd.WikEdInsertTagsInsertTags = function(openTag, closeTag, sampleText) {
if (wikEdUseWikEdwikEd.useWikEd == true) {
WikEdEditButtonwikEd.EditButton(document.getElementById('wikEdInsertTags'), 'wikEdInsertTags', [openTag, closeTag, sampleText]);
}
else if (WikEdInsertTagsOriginalwikEd.InsertTagsOriginal != null) {
WikEdInsertTagsOriginalwikEd.InsertTagsOriginal(openTag, closeTag, sampleText);
}
return;
//
// WikEdInsertAtCursorwikEd.InsertAtCursor: overrides the insertAtCursor function in wikia.com MediaWiki:Functions.js
//
windowwikEd.WikEdInsertAtCursorInsertAtCursor = function(myField, myValue) {
if (wikEdUseWikEdwikEd.useWikEd == true) {
if (myField == wikEdTextareawikEd.textarea) {
WikEdEditButtonwikEd.EditButton(document.getElementById('wikEdInsertTags'), 'wikEdInsertTags', [ myValue ]);
}
}
else if (WikEdInsertAtCursorOriginalwikEd.InsertAtCursorOriginal != null) {
WikEdInsertAtCursorOriginalwikEd.InsertAtCursorOriginal(myField, myValue);
}
return;
//
// WikEdExecuteHookwikEd.ExecuteHook: executes scheduled custom functions from functionsHook array (code copied to wikEdDiff.js)
//
windowwikEd.WikEdExecuteHookExecuteHook = function(functionsHook, onlyOnce) {
for (var i = 0; i < functionsHook.length; i ++) {
//
// WikEdInitUnicodewikEd.InitUnicode: define character tables used in WikedFixUnicodewikEd.FixUnicode()
// see http://kmi.open.ac.uk/projects/ceryle/doc/docs/NOTE-charents.html
windowwikEd.WikEdInitUnicodeInitUnicode = function() {
// define only once
if (wikEdSupportedCharswikEd.supportedChars != null) {
return;
}
// supported chars in Mozilla and IE
wikEd.supportedChars = [
wikEdSupportedChars = [
[ 'a1', 'iexcl'], // ¡
[ 'a2', 'cent'], // ¢
// reserved for internal wikEd use
wikEdReservedCharswikEd.reservedChars = [
[ '26', 'amp'], // &
[ '3c', 'lt'], // <
// special chars (spaces and invisible characters)
wikEdSpecialCharswikEd.specialChars = [
['2002', 'ensp'], // en space
[ 'ad', 'shy'], // soft hyphen
// unsupported chars in IE6
wikEdProblemCharswikEd.problemChars = [
[ '3d1', 'thetasym'], // ϑ
[ '3d2', 'upsih'], // ϒ
// index to all existing 253 HTML/XHTML character entities
var allCharEntities = wikEdSupportedCharswikEd.supportedChars.concat(wikEdReservedCharswikEd.reservedChars, wikEdSpecialCharswikEd.specialChars, wikEdProblemCharswikEd.problemChars);
for (var i = 0; i < allCharEntities.length; i ++) {
wikEdCharEntitiesByNamewikEd.charEntitiesByName[ allCharEntities[i][1] ] = String.fromCharCode(parseInt(allCharEntities[i][0], 16));
}
// syntax highlighting of ASCII control characters and invisibles (decimal value, title)
wikEd.controlCharHighlighting = {
wikEdControlCharHighlighting = {
'0': 'null',
'1': 'start of heading',
'8233': 'paragraph separator' // \u2028
};
for (var decimalValue in wikEdControlCharHighlightingwikEd.controlCharHighlighting) {
if (wikEdControlCharHighlightingwikEd.controlCharHighlighting.hasOwnProperty(decimalValue) == true) {
wikEdControlCharHighlightingStrwikEd.controlCharHighlightingStr += '\\' + String.fromCharCode(decimalValue);
}
}
// character syntax highlighting: strange spaces, hyphens, and dashes (decimal value, class = title)
wikEd.charHighlighting = {
wikEdCharHighlighting = {
'9': 'wikEdTab', // \u0009 ' '
'8194': 'wikEdEnSpace', // \u2002 ' '
'8722': 'wikEdMinusDash' // \u2212 '−'
};
for (var decimalValue in wikEdCharHighlightingwikEd.charHighlighting) {
if (wikEdCharHighlightingwikEd.charHighlighting.hasOwnProperty(decimalValue) == true) {
wikEdCharHighlightingStrwikEd.charHighlightingStr += '\\' + String.fromCharCode(decimalValue);
}
}
// call wikEd on startup, but not for the iframe under Greasemonkey
wikEd.Startup();
if (window == top) {
WikEdStartup();
}
// </nowiki></pre>
|