Index: openacs-4/packages/xowiki/www/resources/timeline/api/timeline-api.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/resources/timeline/api/timeline-api.js,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/xowiki/www/resources/timeline/api/timeline-api.js 6 Nov 2007 12:55:23 -0000 1.1.2.2
@@ -0,0 +1,244 @@
+/*==================================================
+ * Timeline API
+ *
+ * This file will load all the Javascript files
+ * necessary to make the standard timeline work.
+ * It also detects the default locale.
+ *
+ * Include this file in your HTML file as follows:
+ *
+ *
+ *
+ *==================================================
+ */
+
+var Timeline = new Object();
+Timeline.Platform = new Object();
+ /*
+ HACK: We need these 2 things here because we cannot simply append
+ a ");
+ return;
+ } catch (e) {
+ // fall through
+ }
+ }
+
+ var script = document.createElement("script");
+ script.type = "text/javascript";
+ script.language = "JavaScript";
+ script.src = url;
+ getHead().appendChild(script);
+ };
+ var includeCssFile = function(url) {
+ if (document.body == null) {
+ try {
+ document.write("");
+ return;
+ } catch (e) {
+ // fall through
+ }
+ }
+
+ var link = document.createElement("link");
+ link.setAttribute("rel", "stylesheet");
+ link.setAttribute("type", "text/css");
+ link.setAttribute("href", url);
+ getHead().appendChild(link);
+ }
+
+ includeJavascriptFiles = function(urlPrefix, filenames) {
+ for (var i = 0; i < filenames.length; i++) {
+ includeJavascriptFile(urlPrefix + filenames[i]);
+ }
+ };
+ includeCssFiles = function(urlPrefix, filenames) {
+ for (var i = 0; i < filenames.length; i++) {
+ includeCssFile(urlPrefix + filenames[i]);
+ }
+ };
+ }
+
+ /*
+ * Include non-localized files
+ */
+ if (bundle) {
+ includeJavascriptFiles(Timeline.urlPrefix, [ "bundle.js" ]);
+ includeCssFiles(Timeline.urlPrefix, [ "bundle.css" ]);
+ } else {
+ includeJavascriptFiles(Timeline.urlPrefix + "scripts/", javascriptFiles);
+ includeCssFiles(Timeline.urlPrefix + "styles/", cssFiles);
+ }
+
+ /*
+ * Include localized files
+ */
+ var loadLocale = [];
+ loadLocale[defaultServerLocale] = true;
+
+ var tryExactLocale = function(locale) {
+ for (var l = 0; l < supportedLocales.length; l++) {
+ if (locale == supportedLocales[l]) {
+ loadLocale[locale] = true;
+ return true;
+ }
+ }
+ return false;
+ }
+ var tryLocale = function(locale) {
+ if (tryExactLocale(locale)) {
+ return locale;
+ }
+
+ var dash = locale.indexOf("-");
+ if (dash > 0 && tryExactLocale(locale.substr(0, dash))) {
+ return locale.substr(0, dash);
+ }
+
+ return null;
+ }
+
+ for (var l = 0; l < desiredLocales.length; l++) {
+ tryLocale(desiredLocales[l]);
+ }
+
+ var defaultClientLocale = defaultServerLocale;
+ var defaultClientLocales = ("language" in navigator ? navigator.language : navigator.browserLanguage).split(";");
+ for (var l = 0; l < defaultClientLocales.length; l++) {
+ var locale = tryLocale(defaultClientLocales[l]);
+ if (locale != null) {
+ defaultClientLocale = locale;
+ break;
+ }
+ }
+
+ for (var l = 0; l < supportedLocales.length; l++) {
+ var locale = supportedLocales[l];
+ if (loadLocale[locale]) {
+ includeJavascriptFiles(Timeline.urlPrefix + "scripts/l10n/" + locale + "/", localizedJavascriptFiles);
+ includeCssFiles(Timeline.urlPrefix + "styles/l10n/" + locale + "/", localizedCssFiles);
+ }
+ }
+
+ Timeline.Platform.serverLocale = defaultServerLocale;
+ Timeline.Platform.clientLocale = defaultClientLocale;
+ } catch (e) {
+ alert(e);
+ }
+})();
\ No newline at end of file