X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=htdocs%2Fjavascript%2Fxorg.js;h=85bbb565b2b7eb3fa8399e238e5a1747125a05be;hb=2025ea98b7c265a93e30e36508991eddc14e5076;hp=63efb4830c3c44727fa52bc9103c5edd4a61255a;hpb=0337d704b62718d7c77106c0e4c4e26fb02beacf;p=platal.git
diff --git a/htdocs/javascript/xorg.js b/htdocs/javascript/xorg.js
index 63efb48..85bbb56 100644
--- a/htdocs/javascript/xorg.js
+++ b/htdocs/javascript/xorg.js
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2003-2004 Polytechnique.org *
+ * Copyright (C) 2003-2007 Polytechnique.org *
* http://opensource.polytechnique.org/ *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -18,32 +18,127 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
***************************************************************************/
-
-/***************************************************************************
- * MISC
- */
+var is_netscape = (navigator.appName.substring(0,8) == "Netscape");
+var is_IE = (navigator.appName.substring(0,9) == "Microsoft");
// {{{ function getNow()
-/**
- * function used to print the client's computer datetime on the page
- */
function getNow() {
- dt=new Date();
- dy=dt.getDay();
- mh=dt.getMonth();
- wd=dt.getDate();
- yr=dt.getYear();
+ dt = new Date();
+ dy = dt.getDay();
+ mh = dt.getMonth();
+ wd = dt.getDate();
+ yr = dt.getYear();
if (yr<1000) yr += 1900;
- hr=dt.getHours();
- mi=dt.getMinutes();
- if (mi<10)
- time=hr+":0"+mi;
- else
- time=hr+":"+mi;
- days=new Array ("Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi");
- months=new Array ("janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre");
- return days[dy]+" "+wd+" "+months[mh]+" "+yr+"
"+time;
+ hr = dt.getHours();
+ mi = dt.getMinutes();
+
+ time = (mi < 10) ? hr +':0'+mi : hr+':'+mi;
+ days = ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'];
+ months = ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet',
+ 'août', 'septembre', 'octobre', 'novembre', 'décembre']
+
+ return days[dy]+' '+wd+' '+months[mh]+' '+yr+'
'+time;
+}
+
+// }}}
+// {{{ Search Engine
+
+function canAddSearchEngine()
+{
+ if (((typeof window.sidebar == "object") && (typeof window.sidebar.addSearchEngine == "function"))
+ || ((typeof window.sidebar == "object") && (typeof window.sidebar.addSearchEngine == "function"))) {
+ return true;
+ }
+ return false;
+}
+
+function addSearchEngine()
+{
+ var searchURI = "http://www.polytechnique.org/xorg.opensearch.xml";
+ if ((typeof window.sidebar == "object") && (typeof window.sidebar.addSearchEngine == "function")) {
+ window.sidebar.addSearchEngine(
+ searchURI,
+ "http://www.polytechnique.org/images/xorg.png",
+ "Annuaire Polytechnique.org",
+ "Academic");
+ } else {
+ try {
+ window.external.AddSearchProvider(searchURI);
+ } catch(e) {
+ alert("Impossible d'installer la barre de recherche");
+ }
+ }
+}
+
+// }}}
+// {{{ Events
+
+function eventClosure(obj, methodName) {
+ return (function(e) {
+ e = e || window.event;
+ return obj[methodName](e);
+ });
+}
+
+function attachEvent(obj, evt, f, useCapture) {
+ if (!useCapture) useCapture = false;
+
+ if (obj.addEventListener) {
+ obj.addEventListener(evt, f, useCapture);
+ return true;
+ } else if (obj.attachEvent) {
+ return obj.attachEvent("on"+evt, f);
+ }
+ return false;
+}
+
+// }}}
+// {{{ dynpost()
+
+function dynpost(action, values)
+{
+ var body = document.getElementsByTagName('body')[0];
+
+ var form = document.createElement('form');
+ form.action = action;
+ form.method = 'post';
+
+ body.appendChild(form);
+
+ for (var k in values) {
+ var input = document.createElement('input');
+ input.type = 'hidden';
+ input.name = k;
+ input.value = values[k];
+ form.appendChild(input);
+ }
+
+ form.submit();
+}
+
+function dynpostkv(action, k, v)
+{
+ var dict = {};
+ dict[k] = v;
+ dynpost(action, dict);
+}
+
+// }}}
+// {{{ function RegExp.escape()
+
+RegExp.escape = function(text) {
+ if (!arguments.callee.sRE) {
+ var specials = [
+ '/', '.', '*', '+', '?', '|',
+ '(', ')', '[', ']', '{', '}',
+ '\\', '^' , '$'
+ ];
+ arguments.callee.sRE = new RegExp(
+ '(\\' + specials.join('|\\') + ')', 'g'
+ );
+ }
+ return text.replace(arguments.callee.sRE, '\\$1');
}
// }}}
@@ -54,46 +149,51 @@ function getNow() {
// {{{ function popWin()
-/**
- * function that pops an anchor
- *
- * @param theNode anchor the anchor we are talking about
- * @param w int the desired width for the popup
- * @param h int the desired height for the popup
- */
function popWin(theNode,w,h) {
window.open(theNode.href, '_blank',
- 'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width='+w+',height='+h);
+ 'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width='+w+',height='+h);
}
// }}}
// {{{ function auto_links()
-/**
- * parses an html file, and update the onclik handlers for anchors that need it.
- *
- * anchors :
- * - that points to another host are opened in a new window (mimic the target=_new)
- * - of class popup(2) or popup_###x### create real popups (no url bar, ...)
- * This function is designed to be used in