74 lines
2.6 KiB
JavaScript
74 lines
2.6 KiB
JavaScript
/*
|
|
Copyright (C) 2005 ILOG http://www.ilog.fr
|
|
and TWiki Contributors. All Rights Reserved. TWiki Contributors
|
|
are listed in the AUTHORS file in the root of this distribution.
|
|
NOTE: Please extend that file, not this notice.
|
|
|
|
Portions Copyright (c) 2003-2004 Kupu Contributors. All rights reserved.
|
|
|
|
This program is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU General Public License
|
|
as published by the Free Software Foundation; either version 2
|
|
of the License, or (at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
As per the GPL, removal of this notice is prohibited.
|
|
*/
|
|
|
|
/*
|
|
* TWiki-specific customisation of kupustart.js
|
|
*/
|
|
|
|
function startKupu() {
|
|
// first let's load the message catalog
|
|
// if there's no global 'i18n_message_catalog' variable available, don't
|
|
// try to load any translations
|
|
if (window.i18n_message_catalog) {
|
|
var request = new XMLHttpRequest();
|
|
// sync request, scary...
|
|
request.open('GET', 'kupu-pox.cgi', false);
|
|
request.send('');
|
|
if (request.status != '200') {
|
|
alert('Error loading translation (status ' + status +
|
|
'), falling back to english');
|
|
} else {
|
|
// load successful, continue
|
|
var dom = request.responseXML;
|
|
window.i18n_message_catalog.initialize(dom);
|
|
};
|
|
};
|
|
|
|
// initialize the editor, initKupu groks 1 arg, a reference to the iframe
|
|
var frame = getFromSelector('kupu-editor');
|
|
var kupu = initKupu(frame);
|
|
|
|
kupu.registerContentChanger(getFromSelector('kupu-editor-textarea'));
|
|
|
|
var navigatingAway = function () {
|
|
TWikiVetoIfChanged(kupu, true);
|
|
}
|
|
|
|
if (kupu.getBrowserName() == 'IE') {
|
|
// IE supports onbeforeunload, so let's use that
|
|
addEventHandler(window, 'beforeunload', navigatingAway);
|
|
} else {
|
|
// some versions of Mozilla support onbeforeunload (starting with 1.7)
|
|
// so let's try to register and if it fails fall back on onunload
|
|
var re = /rv:([0-9\.]+)/
|
|
var match = re.exec(navigator.userAgent)
|
|
if (match[1] && parseFloat(match[1]) > 1.6) {
|
|
addEventHandler(window, 'beforeunload', navigatingAway);
|
|
} else {
|
|
addEventHandler(window, 'unload', navigatingAway);
|
|
};
|
|
};
|
|
|
|
// and now we can initialize...
|
|
kupu.initialize();
|
|
|
|
return kupu;
|
|
};
|