diapositives/Slidy/slidy.js
author viric@mandarina
Sun, 14 Dec 2008 20:00:34 +0000
changeset 252 d3a405d0742f
permissions -rw-r--r--
Diapositives, primera entrada
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
252
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
     1
/* slidy.js
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
     2
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
     3
   Copyright (c) 2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
     4
   W3C liability, trademark, document use and software licensing
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
     5
   rules apply, see:
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
     6
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
     7
   http://www.w3.org/Consortium/Legal/copyright-documents
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
     8
   http://www.w3.org/Consortium/Legal/copyright-software
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
     9
*/
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    10
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    11
var ns_pos = (typeof window.pageYOffset!='undefined');
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    12
var khtml = ((navigator.userAgent).indexOf("KHTML") >= 0 ? true : false);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    13
var opera = ((navigator.userAgent).indexOf("Opera") >= 0 ? true : false);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    14
var ie7 = (!ns_pos && navigator.userAgent.indexOf("MSIE 7") != -1);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    15
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    16
window.onload = startup; // equivalent to onload on body element
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    17
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    18
// IE only event handlers to ensure all slides are printed
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    19
// I don't yet know how to emulate these for other browsers
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    20
window.onbeforeprint = beforePrint;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    21
window.onafterprint = afterPrint;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    22
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    23
// hack to hide slides while loading
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    24
setTimeout(hideAll, 50);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    25
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    26
function hideAll()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    27
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    28
  if (document.body)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    29
    document.body.style.visibility = "hidden";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    30
  else
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    31
    setTimeout(hideAll, 50);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    32
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    33
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    34
var slidenum = 0;     // integer slide count: 0, 1, 2, ...
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    35
var slides;           // set to array of slide div's
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    36
var slideNumElement;  // element containing slide number
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    37
var notes;            // set to array of handout div's
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    38
var backgrounds;      // set to array of background div's
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    39
var toolbar;          // element containing toolbar
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    40
var title;            // document title
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    41
var lastShown = null; // last incrementally shown item
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    42
var eos = null;       // span element for end of slide indicator
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    43
var toc = null;       // table of contents
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    44
var outline = null;   // outline element with the focus
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    45
var selectedTextLen;  // length of drag selection on document
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    46
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    47
var viewAll = 0;      // 1 to view all slides + handouts
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    48
var wantToolbar = 1;   // 0 if toolbar isn't wanted
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    49
var mouseClickEnabled = true;  // enables left click for next slide
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    50
var scrollhack = 0;   // IE work around for position: fixed
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    51
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    52
var helpAnchor;  // used for keyboard focus hack in showToolbar()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    53
var helpPage = "http://www.w3.org/Talks/Tools/Slidy/help.html";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    54
var helpText = "Navigate with mouse click, space bar, Cursor Left/Right, " +
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    55
               "or Pg Up and Pg Dn. Use S and B to change font size.";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    56
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    57
var sizeIndex = 0;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    58
var sizeAdjustment = 0;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    59
var sizes = new Array("10pt", "12pt", "14pt", "16pt", "18pt", "20pt",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    60
                      "22pt", "24pt", "26pt", "28pt", "30pt", "32pt");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    61
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    62
var okayForIncremental = incrementalElementList();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    63
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    64
// needed for efficient resizing
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    65
var lastWidth = 0;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    66
var lastHeight = 0;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    67
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    68
// Needed for cross browser support for relative width/height on
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    69
// object elements. The work around is to save width/height attributes
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    70
// and then to recompute absolute width/height dimensions on resizing
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    71
var objects;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    72
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    73
// updated to language specified by html file
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    74
var lang = "en";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    75
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    76
//var localize = {};
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    77
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    78
// for each language there is an associative array
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    79
var strings_es = {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    80
  "slide":"pág.",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    81
  "help?":"Ayuda",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    82
  "contents?":"Índice",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    83
  "table of contents":"tabla de contenidos",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    84
  "Table of Contents":"Tabla de Contenidos",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    85
  "restart presentation":"Reiniciar presentación",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    86
  "restart?":"Inicio"
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    87
   };
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    88
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    89
strings_es[helpText] =
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    90
    "Utilice el ratón, barra espaciadora, teclas Izda/Dcha, " +
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    91
    "o Re pág y Av pág. Use S y B para cambiar el tamaño de fuente.";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    92
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    93
var strings_ca = {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    94
 "slide":"pàg..",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    95
 "help?":"Ajuda",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    96
 "contents?":"Índex",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    97
 "table of contents":"taula de continguts",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    98
 "Table of Contents":"Taula de Continguts",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
    99
 "restart presentation":"Reiniciar presentació",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   100
 "restart?":"Inici"
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   101
  };
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   102
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   103
strings_ca[helpText] =
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   104
   "Utilitzi el ratolí, barra espaiadora, tecles Esq./Dta. " +
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   105
   "o Re pàg y Av pàg. Usi S i B per canviar grandària de font.";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   106
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   107
var strings_nl = {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   108
  "slide":"pagina",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   109
  "help?":"Help?",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   110
  "contents?":"Inhoud?",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   111
  "table of contents":"inhoudsopgave",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   112
  "Table of Contents":"Inhoudsopgave",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   113
  "restart presentation":"herstart presentatie",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   114
  "restart?":"Herstart?"
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   115
   };
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   116
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   117
strings_nl[helpText] =
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   118
    "Navigeer d.m.v. het muis, spatiebar, Links/Rechts toetsen, " +
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   119
    "of PgUp en PgDn. Gebruik S en B om de karaktergrootte te veranderen.";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   120
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   121
var strings_de = {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   122
  "slide":"Seite",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   123
  "help?":"Hilfe",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   124
  "contents?":"Übersicht",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   125
  "table of contents":"Inhaltsverzeichnis",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   126
  "Table of Contents":"Inhaltsverzeichnis",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   127
  "restart presentation":"Präsentation neu starten",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   128
  "restart?":"Neustart"
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   129
   };
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   130
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   131
strings_de[helpText] =
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   132
    "Benutzen Sie die Maus, Leerschlag, die Cursortasten links/rechts oder " +
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   133
    "Page up/Page Down zum Wechseln der Seiten und S und B für die Schriftgrösse.";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   134
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   135
var strings_pl = {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   136
  "slide":"slajd",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   137
  "help?":"pomoc?",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   138
  "contents?":"spis treści?",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   139
  "table of contents":"spis treści",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   140
  "Table of Contents":"Spis Treści",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   141
  "restart presentation":"Restartuj prezentację",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   142
  "restart?":"restart?"
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   143
   };
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   144
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   145
strings_pl[helpText] =
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   146
    "Zmieniaj slajdy klikając myszą, naciskając spację, strzałki lewo/prawo" +
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   147
    "lub PgUp / PgDn. Użyj klawiszy S i B, aby zmienić rozmiar czczionki.";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   148
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   149
var strings_fr = {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   150
  "slide":"page",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   151
  "help?":"Aide",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   152
  "contents?":"Index",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   153
  "table of contents":"table des matières",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   154
  "Table of Contents":"Table des matières",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   155
  "restart presentation":"Recommencer l'exposé",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   156
  "restart?":"Début"
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   157
  };
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   158
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   159
strings_fr[helpText] =
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   160
    "Naviguez avec la souris, la barre d'espace, les flèches " +
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   161
    "gauche/droite ou les touches Pg Up, Pg Dn. Utilisez " +
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   162
    "les touches S et B pour modifier la taille de la police.";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   163
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   164
var strings_hu = {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   165
  "slide":"oldal",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   166
  "help?":"segítség",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   167
  "contents?":"tartalom",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   168
  "table of contents":"tartalomjegyzék",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   169
  "Table of Contents":"Tartalomjegyzék",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   170
  "restart presentation":"bemutató újraindítása",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   171
  "restart?":"újraindítás"
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   172
   };
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   173
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   174
strings_hu[helpText] =
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   175
    "Az oldalak közti lépkedéshez kattintson az egérrel, vagy " +
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   176
    "használja a szóköz, a bal, vagy a jobb nyíl, illetve a Page Down, " +
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   177
    "Page Up billentyűket. Az S és a B billentyűkkel változtathatja " +
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   178
    "a szöveg méretét.";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   179
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   180
var strings_it = {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   181
  "slide":"pag.",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   182
  "help?":"Aiuto",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   183
  "contents?":"Indice",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   184
  "table of contents":"indice",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   185
  "Table of Contents":"Indice",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   186
  "restart presentation":"Ricominciare la presentazione",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   187
  "restart?":"Inizio"
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   188
   };
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   189
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   190
strings_it[helpText] =
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   191
    "Navigare con mouse, barra spazio, frecce sinistra/destra o " +
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   192
    "PgUp e PgDn. Usare S e B per cambiare la dimensione dei caratteri.";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   193
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   194
var strings_el = {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   195
  "slide":"σελίδα",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   196
  "help?":"βοήθεια;",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   197
  "contents?":"περιεχόμενα;",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   198
  "table of contents":"πίνακας περιεχομένων",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   199
  "Table of Contents":"Πίνακας Περιεχομένων",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   200
  "restart presentation":"επανεκκίνηση παρουσίασης",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   201
  "restart?":"επανεκκίνηση;"
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   202
   };
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   203
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   204
strings_el[helpText] =
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   205
  "Πλοηγηθείτε με το κλίκ του ποντικιού, το space, τα βέλη αριστερά/δεξιά, " +
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   206
  "ή Page Up και Page Down. Χρησιμοποιήστε τα πλήκτρα S και B για να αλλάξετε " +
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   207
  "το μέγεθος της γραμματοσειράς.";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   208
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   209
var strings_ja = {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   210
  "slide":"スライド",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   211
  "help?":"ヘルプ",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   212
  "contents?":"目次",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   213
  "table of contents":"目次を表示",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   214
  "Table of Contents":"目次",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   215
  "restart presentation":"最初から再生",
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   216
  "restart?":"最初から"
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   217
};
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   218
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   219
strings_ja[helpText] =
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   220
    "マウス左クリック ・ スペース ・ 左右キー " +
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   221
    "または Page Up ・ Page Downで操作, S ・ Bでフォントサイズ変更";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   222
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   223
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   224
// each such language array is declared in the localize array
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   225
// used indirectly as in help.innerHTML = "help".localize();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   226
var localize = {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   227
     "es":strings_es,
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   228
     "ca":strings_ca,
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   229
     "nl":strings_nl,
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   230
     "de":strings_de,
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   231
     "pl":strings_pl,
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   232
     "fr":strings_fr,
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   233
     "hu":strings_hu,
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   234
     "it":strings_it,
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   235
     "el":strings_el,
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   236
     "jp":strings_ja
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   237
   };
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   238
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   239
/* general initialization */
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   240
function startup()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   241
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   242
   // find human language from html element
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   243
   // for use in localizing strings
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   244
   lang = document.body.parentNode.getAttribute("lang");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   245
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   246
   if (!lang)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   247
     lang = document.body.parentNode.getAttribute("xml:lang");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   248
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   249
   if (!lang)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   250
     lang = "en";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   251
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   252
   document.body.style.visibility = "visible";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   253
   title = document.title;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   254
   toolbar = addToolbar();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   255
   wrapImplicitSlides();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   256
   slides = collectSlides();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   257
   notes = collectNotes();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   258
   objects = document.body.getElementsByTagName("object");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   259
   backgrounds = collectBackgrounds();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   260
   patchAnchors();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   261
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   262
   slidenum = findSlideNumber(location.href);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   263
   window.offscreenbuffering = true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   264
   sizeAdjustment = findSizeAdjust();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   265
   hideImageToolbar();  // suppress IE image toolbar popup
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   266
   initOutliner();  // activate fold/unfold support
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   267
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   268
   if (slides.length > 0)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   269
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   270
      var slide = slides[slidenum];
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   271
      slide.style.position = "absolute";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   272
   
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   273
      if (slidenum > 0)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   274
      {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   275
         setVisibilityAllIncremental("visible");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   276
         lastShown = previousIncrementalItem(null);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   277
         setEosStatus(true);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   278
      }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   279
      else
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   280
      {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   281
         lastShown = null;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   282
         setVisibilityAllIncremental("hidden");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   283
         setEosStatus(!nextIncrementalItem(lastShown));
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   284
      }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   285
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   286
      setLocation();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   287
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   288
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   289
   toc = tableOfContents();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   290
   hideTableOfContents();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   291
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   292
   // bind event handlers
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   293
   document.onclick = mouseButtonClick;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   294
   document.onmouseup = mouseButtonUp;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   295
   document.onkeydown = keyDown;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   296
   window.onresize  = resized;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   297
   window.onscroll = scrolled;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   298
   singleSlideView();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   299
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   300
   setLocation();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   301
   resized();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   302
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   303
   if (ie7)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   304
     setTimeout("ieHack()", 100);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   305
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   306
   showToolbar();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   307
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   308
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   309
// add localize method to all strings for use
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   310
// as in help.innerHTML = "help".localize();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   311
String.prototype.localize = function()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   312
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   313
  if (this == "")
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   314
    return this;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   315
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   316
  // try full language code, e.g. en-US
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   317
  var s, lookup = localize[lang];
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   318
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   319
  if (lookup)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   320
  {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   321
    s = lookup[this];
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   322
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   323
    if (s)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   324
      return s;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   325
  }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   326
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   327
  // try en if undefined for en-US
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   328
  var lg = lang.split("-");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   329
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   330
  if (lg.length > 1)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   331
  {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   332
    lookup = localize[lg[0]];
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   333
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   334
    if (lookup)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   335
    {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   336
      s = lookup[this];
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   337
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   338
      if (s)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   339
        return s;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   340
    }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   341
  }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   342
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   343
  // otherwise string as is
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   344
  return this;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   345
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   346
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   347
// suppress IE's image toolbar pop up
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   348
function hideImageToolbar()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   349
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   350
  if (!ns_pos)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   351
  {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   352
    var images = document.getElementsByTagName("IMG");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   353
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   354
    for (var i = 0; i < images.length; ++i)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   355
      images[i].setAttribute("galleryimg", "no");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   356
  }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   357
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   358
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   359
// hack to persuade IE to compute correct document height
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   360
// as needed for simulating fixed positioning of toolbar
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   361
function ieHack()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   362
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   363
   window.resizeBy(0,-1);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   364
   window.resizeBy(0, 1);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   365
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   366
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   367
// Firefox reload SVG bug work around
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   368
function reload(e)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   369
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   370
   if (!e)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   371
      var e = window.event;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   372
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   373
   hideBackgrounds();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   374
   setTimeout("document.reload();", 100);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   375
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   376
   stopPropagation(e);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   377
   e.cancel = true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   378
   e.returnValue = false;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   379
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   380
   return false;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   381
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   382
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   383
// Safari and Konqueror don't yet support getComputedStyle()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   384
// and they always reload page when location.href is updated
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   385
function isKHTML()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   386
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   387
   var agent = navigator.userAgent;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   388
   return (agent.indexOf("KHTML") >= 0 ? true : false);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   389
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   390
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   391
function resized()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   392
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   393
   var width = 0;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   394
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   395
   if ( typeof( window.innerWidth ) == 'number' )
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   396
      width = window.innerWidth;  // Non IE browser
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   397
   else if (document.documentElement && document.documentElement.clientWidth)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   398
      width = document.documentElement.clientWidth;  // IE6
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   399
   else if (document.body && document.body.clientWidth)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   400
      width = document.body.clientWidth; // IE4
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   401
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   402
   var height = 0;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   403
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   404
   if ( typeof( window.innerHeight ) == 'number' )
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   405
      height = window.innerHeight;  // Non IE browser
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   406
   else if (document.documentElement && document.documentElement.clientHeight)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   407
      height = document.documentElement.clientHeight;  // IE6
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   408
   else if (document.body && document.body.clientHeight)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   409
      height = document.body.clientHeight; // IE4
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   410
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   411
   if (height && (width/height > 1.05*1024/768))
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   412
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   413
     width = height * 1024.0/768;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   414
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   415
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   416
   // IE fires onresize even when only font size is changed!
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   417
   // so we do a check to avoid blocking < and > actions
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   418
   if (width != lastWidth || height != lastHeight)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   419
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   420
      if (width >= 1100)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   421
         sizeIndex = 5;    // 4
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   422
      else if (width >= 1000)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   423
         sizeIndex = 4;    // 3
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   424
      else if (width >= 800)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   425
         sizeIndex = 3;    // 2
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   426
      else if (width >= 600)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   427
         sizeIndex = 2;    // 1
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   428
      else if (width)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   429
         sizeIndex = 0;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   430
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   431
      // add in font size adjustment from meta element e.g.
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   432
      // <meta name="font-size-adjustment" content="-2" />
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   433
      // useful when slides have too much content ;-)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   434
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   435
      if (0 <= sizeIndex + sizeAdjustment &&
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   436
             sizeIndex + sizeAdjustment < sizes.length)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   437
        sizeIndex = sizeIndex + sizeAdjustment;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   438
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   439
      // enables cross browser use of relative width/height
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   440
      // on object elements for use with SVG and Flash media
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   441
      adjustObjectDimensions(width, height);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   442
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   443
      document.body.style.fontSize = sizes[sizeIndex];
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   444
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   445
      lastWidth = width;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   446
      lastHeight = height;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   447
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   448
      // force reflow to work around Mozilla bug
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   449
      //if (ns_pos)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   450
      {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   451
         var slide = slides[slidenum];
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   452
         hideSlide(slide);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   453
         showSlide(slide);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   454
      }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   455
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   456
      // force correct positioning of toolbar
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   457
      refreshToolbar(200);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   458
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   459
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   460
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   461
function scrolled()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   462
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   463
   if (toolbar && !ns_pos && !ie7)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   464
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   465
      hackoffset = scrollXOffset();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   466
      // hide toolbar
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   467
      toolbar.style.display = "none";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   468
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   469
      // make it reappear later
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   470
      if (scrollhack == 0 && !viewAll)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   471
      {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   472
         setTimeout(showToolbar, 1000);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   473
         scrollhack = 1;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   474
      }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   475
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   476
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   477
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   478
// used to ensure IE refreshes toolbar in correct position
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   479
function refreshToolbar(interval)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   480
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   481
   if (!ns_pos && !ie7)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   482
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   483
     hideToolbar();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   484
     setTimeout(showToolbar, interval);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   485
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   486
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   487
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   488
// restores toolbar after short delay
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   489
function showToolbar()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   490
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   491
   if (wantToolbar)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   492
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   493
      if (!ns_pos)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   494
      {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   495
         // adjust position to allow for scrolling
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   496
         var xoffset = scrollXOffset();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   497
         toolbar.style.left = xoffset;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   498
         toolbar.style.right = xoffset;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   499
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   500
         // determine vertical scroll offset
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   501
         //var yoffset = scrollYOffset();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   502
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   503
         // bottom is doc height - window height - scroll offset
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   504
         //var bottom = documentHeight() - lastHeight - yoffset
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   505
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   506
         //if (yoffset > 0 || documentHeight() > lastHeight)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   507
         //   bottom += 16;  // allow for height of scrollbar
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   508
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   509
         toolbar.style.bottom = 0; //bottom;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   510
      }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   511
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   512
      toolbar.style.display = "block";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   513
      toolbar.style.visibility = "visible";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   514
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   515
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   516
   scrollhack = 0;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   517
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   518
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   519
   // set the keyboard focus to the help link on the
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   520
   // toolbar to ensure that document has the focus
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   521
   // IE doesn't always work with window.focus()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   522
   // and this hack has benefit of Enter for help
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   523
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   524
   try
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   525
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   526
     if (!opera)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   527
       helpAnchor.focus();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   528
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   529
   catch (e)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   530
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   531
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   532
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   533
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   534
function test()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   535
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   536
   var s = "docH: " + documentHeight() +
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   537
       " winH: " + lastHeight +
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   538
       " yoffset: " + scrollYOffset() +
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   539
       " toolbot: " + (documentHeight() - lastHeight - scrollYOffset());
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   540
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   541
   //alert(s);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   542
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   543
   var slide = slides[slidenum];
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   544
   // IE getAttribute requires "class" to be "className"
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   545
   var name = ns_pos ? "class" : "className";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   546
   var style = (slide.currentStyle ? slide.currentStyle["backgroundColor"] :
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   547
       document.defaultView.getComputedStyle(slide, '').getPropertyValue("background-color"));
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   548
   alert("class='" + slide.getAttribute(name) + "' backgroundColor: " + style);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   549
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   550
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   551
function hideToolbar()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   552
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   553
   toolbar.style.display = "none";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   554
   toolbar.style.visibility = "hidden";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   555
   window.focus();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   556
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   557
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   558
// invoked via F key
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   559
function toggleToolbar()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   560
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   561
   if (!viewAll)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   562
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   563
      if (toolbar.style.display == "none")
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   564
      {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   565
         toolbar.style.display = "block";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   566
         toolbar.style.visibility = "visible";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   567
         wantToolbar = 1;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   568
      }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   569
      else
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   570
      {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   571
         toolbar.style.display = "none";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   572
         toolbar.style.visibility = "hidden";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   573
         wantToolbar = 0;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   574
      }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   575
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   576
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   577
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   578
function scrollXOffset()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   579
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   580
   if (window.pageXOffset)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   581
      return self.pageXOffset;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   582
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   583
   if (document.documentElement && 
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   584
             document.documentElement.scrollLeft)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   585
      return document.documentElement.scrollLeft;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   586
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   587
   if (document.body)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   588
      return document.body.scrollLeft;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   589
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   590
    return 0;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   591
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   592
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   593
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   594
function scrollYOffset()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   595
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   596
   if (window.pageYOffset)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   597
      return self.pageYOffset;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   598
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   599
   if (document.documentElement && 
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   600
             document.documentElement.scrollTop)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   601
      return document.documentElement.scrollTop;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   602
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   603
   if (document.body)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   604
      return document.body.scrollTop;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   605
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   606
    return 0;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   607
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   608
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   609
// looking for a way to determine height of slide content
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   610
// the slide itself is set to the height of the window
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   611
function optimizeFontSize()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   612
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   613
   var slide = slides[slidenum];
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   614
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   615
   //var dh = documentHeight(); //getDocHeight(document);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   616
   var dh = slide.scrollHeight;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   617
   var wh = getWindowHeight();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   618
   var u = 100 * dh / wh;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   619
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   620
   alert("window utilization = " + u + "% (doc "
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   621
      + dh + " win " + wh + ")");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   622
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   623
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   624
function getDocHeight(doc) // from document object
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   625
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   626
  if (!doc)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   627
    doc = document;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   628
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   629
  if (doc && doc.body && doc.body.offsetHeight)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   630
    return doc.body.offsetHeight;  // ns/gecko syntax
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   631
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   632
  if (doc && doc.body && doc.body.scrollHeight)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   633
    return doc.body.scrollHeight;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   634
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   635
  alert("couldn't determine document height");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   636
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   637
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   638
function getWindowHeight()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   639
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   640
  if ( typeof( window.innerHeight ) == 'number' )
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   641
    return window.innerHeight;  // Non IE browser
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   642
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   643
  if (document.documentElement && document.documentElement.clientHeight)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   644
    return document.documentElement.clientHeight;  // IE6
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   645
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   646
  if (document.body && document.body.clientHeight)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   647
    return document.body.clientHeight; // IE4
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   648
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   649
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   650
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   651
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   652
function documentHeight()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   653
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   654
   var sh, oh;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   655
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   656
   sh = document.body.scrollHeight;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   657
   oh = document.body.offsetHeight;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   658
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   659
   if (sh && oh)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   660
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   661
      return (sh > oh ? sh : oh);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   662
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   663
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   664
   // no idea!
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   665
   return 0;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   666
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   667
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   668
function smaller()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   669
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   670
   if (sizeIndex > 0)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   671
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   672
      --sizeIndex;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   673
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   674
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   675
   toolbar.style.display = "none";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   676
   document.body.style.fontSize = sizes[sizeIndex];
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   677
   var slide = slides[slidenum];
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   678
   hideSlide(slide);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   679
   showSlide(slide);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   680
   setTimeout(showToolbar, 300);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   681
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   682
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   683
function bigger()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   684
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   685
   if (sizeIndex < sizes.length - 1)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   686
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   687
      ++sizeIndex;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   688
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   689
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   690
   toolbar.style.display = "none";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   691
   document.body.style.fontSize = sizes[sizeIndex];
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   692
   var slide = slides[slidenum];
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   693
   hideSlide(slide);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   694
   showSlide(slide);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   695
   setTimeout(showToolbar, 300);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   696
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   697
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   698
// enables cross browser use of relative width/height
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   699
// on object elements for use with SVG and Flash media
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   700
// with thanks to Ivan Herman for the suggestion
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   701
function adjustObjectDimensions(width, height)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   702
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   703
   for( var i = 0; i < objects.length; i++ )
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   704
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   705
      var obj = objects[i];
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   706
      var mimeType = obj.getAttribute("type");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   707
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   708
      if (mimeType == "image/svg+xml" || mimeType == "application/x-shockwave-flash")
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   709
      {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   710
         if ( !obj.initialWidth ) 
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   711
            obj.initialWidth = obj.getAttribute("width");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   712
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   713
         if ( !obj.initialHeight ) 
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   714
            obj.initialHeight = obj.getAttribute("height");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   715
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   716
         if ( obj.initialWidth && obj.initialWidth.charAt(obj.initialWidth.length-1) == "%" )
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   717
         {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   718
            var w = parseInt(obj.initialWidth.slice(0, obj.initialWidth.length-1));
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   719
            var newW = width * (w/100.0);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   720
            obj.setAttribute("width",newW);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   721
         }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   722
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   723
         if ( obj.initialHeight && obj.initialHeight.charAt(obj.initialHeight.length-1) == "%" )
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   724
         {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   725
            var h = parseInt(obj.initialHeight.slice(0, obj.initialHeight.length-1));
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   726
            var newH = height * (h/100.0);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   727
            obj.setAttribute("height", newH);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   728
         }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   729
      }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   730
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   731
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   732
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   733
function cancel(event)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   734
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   735
  if (event)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   736
  {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   737
     event.cancel = true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   738
     event.returnValue = false;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   739
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   740
    if (event.preventDefault)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   741
      event.preventDefault();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   742
  }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   743
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   744
  return false;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   745
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   746
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   747
//  See e.g. http://www.quirksmode.org/js/events/keys.html for keycodes
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   748
function keyDown(event)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   749
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   750
    var key;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   751
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   752
    if (!event)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   753
      var event = window.event;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   754
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   755
    // kludge around NS/IE differences 
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   756
    if (window.event)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   757
       key = window.event.keyCode;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   758
    else if (event.which)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   759
       key = event.which;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   760
    else
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   761
       return true; // Yikes! unknown browser
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   762
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   763
    // ignore event if key value is zero
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   764
    // as for alt on Opera and Konqueror
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   765
    if (!key)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   766
       return true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   767
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   768
    // check for concurrent control/command/alt key
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   769
    // but are these only present on mouse events?
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   770
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   771
    if (event.ctrlKey || event.altKey || event.metaKey)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   772
       return true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   773
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   774
    // dismiss table of contents if visible
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   775
    if (isShownToc() && key != 9 && key != 16 && key != 38 && key != 40)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   776
    {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   777
      hideTableOfContents();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   778
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   779
      if (key == 27 || key == 84 || key == 67)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   780
        return cancel(event);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   781
    }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   782
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   783
    if (key == 34) // Page Down
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   784
    {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   785
       nextSlide(false);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   786
       return cancel(event);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   787
    }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   788
    else if (key == 33) // Page Up
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   789
    {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   790
       previousSlide(false);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   791
       return cancel(event);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   792
    }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   793
    else if (key == 32) // space bar
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   794
    {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   795
       nextSlide(true);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   796
       return cancel(event);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   797
    }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   798
    else if (key == 37) // Left arrow
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   799
    {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   800
       previousSlide(!event.shiftKey);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   801
       return cancel(event);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   802
    }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   803
    else if (key == 36) // Home
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   804
    {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   805
       firstSlide();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   806
       return cancel(event);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   807
    }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   808
    else if (key == 35) // End
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   809
    {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   810
       lastSlide();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   811
       return cancel(event);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   812
    }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   813
    else if (key == 39) // Right arrow
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   814
    {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   815
       nextSlide(!event.shiftKey);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   816
       return cancel(event);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   817
    }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   818
    else if (key == 13) // Enter
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   819
    {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   820
       if (outline)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   821
       {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   822
          if (outline.visible)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   823
            fold(outline);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   824
          else
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   825
            unfold(outline);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   826
          
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   827
         return cancel(event);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   828
       }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   829
    }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   830
    else if (key == 188)  // < for smaller fonts
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   831
    {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   832
       smaller();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   833
       return cancel(event);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   834
    }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   835
    else if (key == 190)  // > for larger fonts
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   836
    {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   837
       bigger();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   838
       return cancel(event);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   839
    }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   840
    else if (key == 189 || key == 109)  // - for smaller fonts
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   841
    {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   842
       smaller();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   843
       return cancel(event);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   844
    }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   845
    else if (key == 187 || key == 191 || key == 107)  // = +  for larger fonts
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   846
    {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   847
       bigger();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   848
       return cancel(event);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   849
    }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   850
    else if (key == 83)  // S for smaller fonts
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   851
    {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   852
       smaller();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   853
       return cancel(event);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   854
    }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   855
    else if (key == 66)  // B for larger fonts
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   856
    {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   857
       bigger();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   858
       return cancel(event);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   859
    }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   860
    else if (key == 90)  // Z for last slide
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   861
    {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   862
       lastSlide();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   863
       return cancel(event);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   864
    }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   865
    else if (key == 70)  // F for toggle toolbar
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   866
    {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   867
       toggleToolbar();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   868
       return cancel(event);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   869
    }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   870
    else if (key == 65)  // A for toggle view single/all slides
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   871
    {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   872
       toggleView();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   873
       return cancel(event);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   874
    }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   875
    else if (key == 75)  // toggle action of left click for next page
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   876
    {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   877
       mouseClickEnabled = !mouseClickEnabled;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   878
       alert((mouseClickEnabled ? "enabled" : "disabled") +  " mouse click advance");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   879
       return cancel(event);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   880
    }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   881
    else if (key == 84 || key == 67)  // T or C for table of contents
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   882
    {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   883
       if (toc)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   884
         showTableOfContents();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   885
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   886
       return cancel(event);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   887
    }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   888
    else if (key == 72) // H for help
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   889
    {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   890
       window.location = helpPage;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   891
       return cancel(event);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   892
    }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   893
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   894
    //else if (key == 93) // Windows menu key
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   895
      //alert("lastShown is " + lastShown);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   896
    //else alert("key code is "+ key);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   897
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   898
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   899
    return true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   900
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   901
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   902
// make note of length of selected text
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   903
// as this evaluates to zero in click event
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   904
function mouseButtonUp(e)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   905
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   906
  selectedTextLen = getSelectedText().length;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   907
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   908
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   909
// right mouse button click is reserved for context menus
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   910
// it is more reliable to detect rightclick than leftclick
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   911
function mouseButtonClick(e)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   912
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   913
   var rightclick = false;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   914
   var leftclick = false;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   915
   var middleclick = false;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   916
   var target;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   917
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   918
   if (!e)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   919
      var e = window.event;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   920
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   921
   if (e.target)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   922
      target = e.target;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   923
   else if (e.srcElement)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   924
      target = e.srcElement;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   925
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   926
   // work around Safari bug
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   927
   if (target.nodeType == 3)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   928
      target = target.parentNode;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   929
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   930
   if (e.which) // all browsers except IE
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   931
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   932
      leftclick = (e.which == 1);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   933
      middleclick = (e.which == 2);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   934
      rightclick = (e.which == 3);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   935
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   936
   else if (e.button)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   937
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   938
      // Konqueror gives 1 for left, 4 for middle
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   939
      // IE6 gives 0 for left and not 1 as I expected
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   940
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   941
      if (e.button == 4)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   942
        middleclick = true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   943
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   944
      // all browsers agree on 2 for right button
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   945
      rightclick = (e.button == 2);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   946
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   947
   else leftclick = true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   948
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   949
   // dismiss table of contents
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   950
   hideTableOfContents();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   951
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   952
   if (selectedTextLen > 0)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   953
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   954
      stopPropagation(e);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   955
      e.cancel = true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   956
      e.returnValue = false;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   957
      return false;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   958
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   959
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   960
   // check if target is something that probably want's clicks
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   961
   // e.g. embed, object, input, textarea, select, option
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   962
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   963
   if (mouseClickEnabled && leftclick &&
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   964
        target.nodeName != "EMBED" &&
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   965
        target.nodeName != "OBJECT" &&
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   966
        target.nodeName != "INPUT" &&
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   967
        target.nodeName != "TEXTAREA" &&
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   968
        target.nodeName != "SELECT" &&
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   969
        target.nodeName != "OPTION")
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   970
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   971
      nextSlide(true);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   972
      stopPropagation(e);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   973
      e.cancel = true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   974
      e.returnValue = false;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   975
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   976
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   977
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   978
function previousSlide(incremental)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   979
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   980
   if (!viewAll)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   981
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   982
      var slide;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   983
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   984
      if ((incremental || slidenum == 0) && lastShown != null)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   985
      {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   986
         lastShown = hidePreviousItem(lastShown);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   987
         setEosStatus(false);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   988
      }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   989
      else if (slidenum > 0)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   990
      {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   991
         slide = slides[slidenum];
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   992
         hideSlide(slide);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   993
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   994
         slidenum = slidenum - 1;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   995
         slide = slides[slidenum];
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   996
         setVisibilityAllIncremental("visible");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   997
         lastShown = previousIncrementalItem(null);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   998
         setEosStatus(true);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
   999
         showSlide(slide);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1000
      }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1001
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1002
      setLocation();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1003
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1004
      if (!ns_pos)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1005
         refreshToolbar(200);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1006
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1007
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1008
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1009
function nextSlide(incremental)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1010
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1011
   if (!viewAll)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1012
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1013
      var slide, last = lastShown;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1014
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1015
      if (incremental || slidenum == slides.length - 1)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1016
         lastShown = revealNextItem(lastShown);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1017
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1018
      if ((!incremental || lastShown == null) && slidenum < slides.length - 1)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1019
      {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1020
         slide = slides[slidenum];
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1021
         hideSlide(slide);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1022
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1023
         slidenum = slidenum + 1;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1024
         slide = slides[slidenum];
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1025
         lastShown = null;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1026
         setVisibilityAllIncremental("hidden");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1027
         showSlide(slide);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1028
      }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1029
      else if (!lastShown)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1030
      {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1031
         if (last && incremental)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1032
           lastShown = last;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1033
      }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1034
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1035
      setLocation();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1036
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1037
      setEosStatus(!nextIncrementalItem(lastShown));
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1038
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1039
      if (!ns_pos)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1040
         refreshToolbar(200);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1041
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1042
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1043
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1044
// to first slide with nothing revealed
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1045
// i.e. state at start of presentation
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1046
function firstSlide()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1047
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1048
   if (!viewAll)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1049
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1050
      var slide;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1051
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1052
      if (slidenum != 0)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1053
      {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1054
         slide = slides[slidenum];
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1055
         hideSlide(slide);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1056
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1057
         slidenum = 0;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1058
         slide = slides[slidenum];
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1059
         lastShown = null;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1060
         setVisibilityAllIncremental("hidden");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1061
         showSlide(slide);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1062
      }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1063
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1064
      setEosStatus(!nextIncrementalItem(lastShown));
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1065
      setLocation();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1066
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1067
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1068
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1069
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1070
// to last slide with everything revealed
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1071
// i.e. state at end of presentation
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1072
function lastSlide()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1073
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1074
   if (!viewAll)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1075
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1076
      var slide;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1077
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1078
      lastShown = null; //revealNextItem(lastShown);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1079
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1080
      if (lastShown == null && slidenum < slides.length - 1)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1081
      {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1082
         slide = slides[slidenum];
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1083
         hideSlide(slide);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1084
         slidenum = slides.length - 1;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1085
         slide = slides[slidenum];
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1086
         setVisibilityAllIncremental("visible");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1087
         lastShown = previousIncrementalItem(null);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1088
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1089
         showSlide(slide);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1090
      }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1091
      else
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1092
      {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1093
         setVisibilityAllIncremental("visible");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1094
         lastShown = previousIncrementalItem(null);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1095
      }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1096
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1097
      setEosStatus(true);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1098
      setLocation();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1099
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1100
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1101
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1102
function setEosStatus(state)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1103
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1104
   if (eos)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1105
      eos.style.color = (state ? "rgb(240,240,240)" : "red");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1106
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1107
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1108
function showSlide(slide)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1109
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1110
   syncBackground(slide);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1111
   window.scrollTo(0,0);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1112
   slide.style.visibility = "visible";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1113
   slide.style.display = "block";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1114
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1115
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1116
function hideSlide(slide)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1117
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1118
   slide.style.visibility = "hidden";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1119
   slide.style.display = "none";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1120
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1121
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1122
function beforePrint()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1123
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1124
   showAllSlides();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1125
   hideToolbar();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1126
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1127
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1128
function afterPrint()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1129
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1130
   if (!viewAll)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1131
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1132
      singleSlideView();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1133
      showToolbar();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1134
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1135
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1136
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1137
function printSlides()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1138
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1139
  beforePrint();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1140
  window.print();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1141
  afterPrint();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1142
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1143
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1144
function toggleView()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1145
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1146
   if (viewAll)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1147
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1148
      singleSlideView();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1149
      showToolbar();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1150
      viewAll = 0;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1151
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1152
   else
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1153
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1154
      showAllSlides();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1155
      hideToolbar();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1156
      viewAll = 1;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1157
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1158
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1159
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1160
// prepare for printing
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1161
function showAllSlides()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1162
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1163
   var slide;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1164
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1165
   for (var i = 0; i < slides.length; ++i)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1166
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1167
      slide = slides[i];
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1168
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1169
      slide.style.position = "relative";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1170
      slide.style.borderTopStyle = "solid";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1171
      slide.style.borderTopWidth = "thin";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1172
      slide.style.borderTopColor = "black";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1173
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1174
      try {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1175
        if (i == 0)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1176
          slide.style.pageBreakBefore = "avoid";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1177
        else
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1178
          slide.style.pageBreakBefore = "always";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1179
      }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1180
      catch (e)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1181
      {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1182
        //do nothing
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1183
      }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1184
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1185
      setVisibilityAllIncremental("visible");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1186
      showSlide(slide);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1187
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1188
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1189
   var note;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1190
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1191
   for (var i = 0; i < notes.length; ++i)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1192
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1193
      showSlide(notes[i]);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1194
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1195
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1196
   // no easy way to render background under each slide
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1197
   // without duplicating the background divs for each slide
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1198
   // therefore hide backgrounds to avoid messing up slides
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1199
   hideBackgrounds();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1200
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1201
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1202
// restore after printing
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1203
function singleSlideView()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1204
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1205
   var slide;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1206
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1207
   for (var i = 0; i < slides.length; ++i)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1208
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1209
      slide = slides[i];
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1210
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1211
      slide.style.position = "absolute";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1212
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1213
      if (i == slidenum)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1214
      {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1215
         slide.style.borderStyle = "none";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1216
         showSlide(slide);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1217
      }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1218
      else
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1219
      {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1220
         slide.style.borderStyle = "none";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1221
         hideSlide(slide);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1222
      }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1223
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1224
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1225
   setVisibilityAllIncremental("visible");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1226
   lastShown = previousIncrementalItem(null);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1227
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1228
   var note;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1229
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1230
   for (var i = 0; i < notes.length; ++i)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1231
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1232
      hideSlide(notes[i]);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1233
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1234
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1235
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1236
// the string str is a whitespace separated list of tokens
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1237
// test if str contains a particular token, e.g. "slide"
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1238
function hasToken(str, token)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1239
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1240
   if (str)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1241
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1242
      // define pattern as regular expression
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1243
      var pattern = /\w+/g;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1244
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1245
      // check for matches
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1246
      // place result in array
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1247
      var result = str.match(pattern);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1248
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1249
      // now check if desired token is present
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1250
      for (var i = 0; i < result.length; i++)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1251
      {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1252
         if (result[i] == token)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1253
            return true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1254
      }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1255
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1256
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1257
   return false;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1258
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1259
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1260
function getClassList(element)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1261
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1262
  if (typeof window.pageYOffset =='undefined')
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1263
    return element.getAttribute("className");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1264
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1265
  return element.getAttribute("class");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1266
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1267
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1268
function hasClass(element, name)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1269
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1270
  var regexp = new RegExp("(^| )" + name + "\W*");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1271
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1272
  if (regexp.test(getClassList(element)))
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1273
    return true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1274
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1275
  return false;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1276
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1277
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1278
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1279
function removeClass(element, name)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1280
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1281
  // IE getAttribute requires "class" to be "className"
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1282
  var clsname = ns_pos ? "class" : "className";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1283
  var clsval = element.getAttribute(clsname);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1284
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1285
  var regexp = new RegExp("(^| )" + name + "\W*");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1286
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1287
  if (clsval)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1288
  {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1289
    clsval = clsval.replace(regexp, "");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1290
    element.setAttribute(clsname, clsval);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1291
  }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1292
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1293
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1294
function addClass(element, name)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1295
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1296
  if (!hasClass(element, name))
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1297
  {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1298
    // IE getAttribute requires "class" to be "className"
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1299
    var clsname = ns_pos ? "class" : "className";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1300
    var clsval = element.getAttribute(clsname);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1301
    element.setAttribute(clsname, (clsval ? clsval + " " + name : name));
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1302
  }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1303
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1304
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1305
// wysiwyg editors make it hard to use div elements
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1306
// e.g. amaya loses the div when you copy and paste
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1307
// this function wraps div elements around implicit
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1308
// slides which start with an h1 element and continue
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1309
// up to the next heading or div element
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1310
function wrapImplicitSlides()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1311
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1312
   var i, heading, node, next, div;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1313
   var headings = document.getElementsByTagName("h1");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1314
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1315
   if (!headings)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1316
     return;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1317
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1318
   for (i = 0; i < headings.length; ++i)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1319
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1320
      heading = headings[i];
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1321
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1322
      if (heading.parentNode != document.body)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1323
         continue;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1324
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1325
      node = heading.nextSibling;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1326
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1327
      div = document.createElement("div");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1328
      div.setAttribute((ns_pos ? "class" : "className"), "slide");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1329
      document.body.replaceChild(div, heading);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1330
      div.appendChild(heading);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1331
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1332
      while (node)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1333
      {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1334
         if (node.nodeType == 1 &&    // an element
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1335
                  (node.nodeName == "H1" ||
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1336
                   node.nodeName == "h1" ||
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1337
                   node.nodeName == "DIV" ||
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1338
                   node.nodeName == "div"))
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1339
            break;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1340
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1341
         next = node.nextSibling;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1342
         node = document.body.removeChild(node);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1343
         div.appendChild(node);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1344
         node = next;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1345
      } 
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1346
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1347
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1348
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1349
// return new array of all slides
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1350
function collectSlides()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1351
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1352
   var slides = new Array();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1353
   var divs = document.body.getElementsByTagName("div");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1354
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1355
   for (var i = 0; i < divs.length; ++i)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1356
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1357
      div = divs.item(i);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1358
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1359
      if (hasClass(div, "slide"))
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1360
      {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1361
         // add slide to collection
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1362
         slides[slides.length] = div;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1363
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1364
         // hide each slide as it is found
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1365
         div.style.display = "none";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1366
         div.style.visibility = "hidden";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1367
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1368
         // add dummy <br/> at end for scrolling hack
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1369
         var node1 = document.createElement("br");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1370
         div.appendChild(node1);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1371
         var node2 = document.createElement("br");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1372
         div.appendChild(node2);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1373
      }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1374
      else if (hasClass(div, "background"))
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1375
      {  // work around for Firefox SVG reload bug
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1376
         // which otherwise replaces 1st SVG graphic with 2nd
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1377
         div.style.display = "block";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1378
      }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1379
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1380
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1381
   return slides;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1382
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1383
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1384
// return new array of all <div class="handout">
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1385
function collectNotes()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1386
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1387
   var notes = new Array();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1388
   var divs = document.body.getElementsByTagName("div");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1389
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1390
   for (var i = 0; i < divs.length; ++i)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1391
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1392
      div = divs.item(i);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1393
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1394
      if (hasClass(div, "handout"))
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1395
      {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1396
         // add slide to collection
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1397
         notes[notes.length] = div;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1398
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1399
         // hide handout notes as they are found
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1400
         div.style.display = "none";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1401
         div.style.visibility = "hidden";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1402
      }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1403
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1404
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1405
   return notes;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1406
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1407
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1408
// return new array of all <div class="background">
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1409
// including named backgrounds e.g. class="background titlepage"
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1410
function collectBackgrounds()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1411
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1412
   var backgrounds = new Array();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1413
   var divs = document.body.getElementsByTagName("div");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1414
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1415
   for (var i = 0; i < divs.length; ++i)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1416
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1417
      div = divs.item(i);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1418
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1419
      if (hasClass(div, "background"))
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1420
      {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1421
         // add slide to collection
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1422
         backgrounds[backgrounds.length] = div;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1423
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1424
         // hide named backgrounds as they are found
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1425
         // e.g. class="background epilog"
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1426
         if (getClassList(div) != "background")
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1427
         {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1428
            div.style.display = "none";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1429
            div.style.visibility = "hidden";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1430
         }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1431
      }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1432
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1433
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1434
   return backgrounds;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1435
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1436
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1437
// show just the backgrounds pertinent to this slide
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1438
function syncBackground(slide)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1439
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1440
   var background;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1441
   var bgColor;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1442
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1443
   if (slide.currentStyle)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1444
      bgColor = slide.currentStyle["backgroundColor"];
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1445
   else if (document.defaultView)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1446
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1447
      var styles = document.defaultView.getComputedStyle(slide,null);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1448
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1449
      if (styles)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1450
          bgColor = styles.getPropertyValue("background-color");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1451
      else // broken implementation probably due Safari or Konqueror
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1452
      {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1453
          //alert("defective implementation of getComputedStyle()");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1454
          bgColor = "transparent";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1455
      }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1456
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1457
   else
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1458
      bgColor == "transparent";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1459
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1460
   if (bgColor == "transparent")
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1461
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1462
      var slideClass = getClassList(slide);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1463
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1464
      for (var i = 0; i < backgrounds.length; i++)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1465
      {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1466
         background = backgrounds[i];
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1467
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1468
         var bgClass = getClassList(background);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1469
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1470
         if (matchingBackground(slideClass, bgClass))
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1471
         {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1472
            background.style.display = "block";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1473
            background.style.visibility = "visible";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1474
         }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1475
         else
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1476
         {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1477
            background.style.display = "none";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1478
            background.style.visibility = "hidden";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1479
         }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1480
      }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1481
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1482
   else // forcibly hide all backgrounds
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1483
      hideBackgrounds();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1484
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1485
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1486
function hideBackgrounds()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1487
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1488
   for (var i = 0; i < backgrounds.length; i++)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1489
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1490
      background = backgrounds[i];
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1491
      background.style.display = "none";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1492
      background.style.visibility = "hidden";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1493
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1494
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1495
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1496
// compare classes for slide and background
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1497
function matchingBackground(slideClass, bgClass)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1498
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1499
   if (bgClass == "background")
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1500
      return true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1501
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1502
   // define pattern as regular expression
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1503
   var pattern = /\w+/g;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1504
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1505
   // check for matches and place result in array
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1506
   var result = slideClass.match(pattern);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1507
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1508
   // now check if desired name is present for background
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1509
   for (var i = 0; i < result.length; i++)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1510
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1511
      if (hasToken(bgClass, result[i]))
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1512
         return true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1513
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1514
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1515
   return false;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1516
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1517
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1518
// left to right traversal of root's content
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1519
function nextNode(root, node)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1520
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1521
   if (node == null)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1522
      return root.firstChild;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1523
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1524
   if (node.firstChild)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1525
      return node.firstChild;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1526
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1527
   if (node.nextSibling)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1528
      return node.nextSibling;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1529
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1530
   for (;;)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1531
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1532
      node = node.parentNode;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1533
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1534
      if (!node || node == root)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1535
         break;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1536
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1537
      if (node && node.nextSibling)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1538
         return node.nextSibling;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1539
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1540
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1541
   return null;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1542
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1543
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1544
// right to left traversal of root's content
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1545
function previousNode(root, node)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1546
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1547
   if (node == null)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1548
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1549
      node = root.lastChild;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1550
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1551
      if (node)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1552
      {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1553
         while (node.lastChild)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1554
            node = node.lastChild;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1555
      }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1556
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1557
      return node;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1558
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1559
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1560
   if (node.previousSibling)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1561
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1562
      node = node.previousSibling;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1563
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1564
      while (node.lastChild)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1565
         node = node.lastChild;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1566
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1567
      return node;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1568
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1569
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1570
   if (node.parentNode != root)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1571
      return node.parentNode;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1572
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1573
   return null;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1574
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1575
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1576
// HTML elements that can be used with class="incremental"
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1577
// note that you can also put the class on containers like
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1578
// up, ol, dl, and div to make their contents appear
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1579
// incrementally. Upper case is used since this is what
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1580
// browsers report for HTML node names (text/html).
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1581
function incrementalElementList()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1582
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1583
   var inclist = new Array();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1584
   inclist["P"] = true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1585
   inclist["PRE"] = true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1586
   inclist["LI"] = true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1587
   inclist["BLOCKQUOTE"] = true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1588
   inclist["DT"] = true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1589
   inclist["DD"] = true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1590
   inclist["H2"] = true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1591
   inclist["H3"] = true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1592
   inclist["H4"] = true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1593
   inclist["H5"] = true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1594
   inclist["H6"] = true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1595
   inclist["SPAN"] = true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1596
   inclist["ADDRESS"] = true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1597
   inclist["TABLE"] = true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1598
   inclist["TR"] = true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1599
   inclist["TH"] = true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1600
   inclist["TD"] = true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1601
   inclist["IMG"] = true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1602
   inclist["OBJECT"] = true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1603
   return inclist;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1604
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1605
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1606
function nextIncrementalItem(node)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1607
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1608
   var slide = slides[slidenum];
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1609
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1610
   for (;;)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1611
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1612
      node = nextNode(slide, node);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1613
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1614
      if (node == null || node.parentNode == null)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1615
         break;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1616
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1617
      if (node.nodeType == 1)  // ELEMENT
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1618
      {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1619
         if (node.nodeName == "BR")
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1620
           continue;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1621
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1622
         if (hasClass(node, "incremental")
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1623
             && okayForIncremental[node.nodeName])
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1624
            return node;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1625
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1626
         if (hasClass(node.parentNode, "incremental")
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1627
             && !hasClass(node, "non-incremental"))
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1628
            return node;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1629
      }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1630
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1631
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1632
   return node;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1633
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1634
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1635
function previousIncrementalItem(node)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1636
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1637
   var slide = slides[slidenum];
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1638
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1639
   for (;;)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1640
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1641
      node = previousNode(slide, node);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1642
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1643
      if (node == null || node.parentNode == null)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1644
         break;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1645
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1646
      if (node.nodeType == 1)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1647
      {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1648
         if (node.nodeName == "BR")
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1649
           continue;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1650
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1651
         if (hasClass(node, "incremental")
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1652
             && okayForIncremental[node.nodeName])
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1653
            return node;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1654
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1655
         if (hasClass(node.parentNode, "incremental")
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1656
             && !hasClass(node, "non-incremental"))
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1657
            return node;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1658
      }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1659
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1660
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1661
   return node;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1662
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1663
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1664
// set visibility for all elements on current slide with
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1665
// a parent element with attribute class="incremental"
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1666
function setVisibilityAllIncremental(value)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1667
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1668
   var node = nextIncrementalItem(null);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1669
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1670
   while (node)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1671
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1672
      node.style.visibility = value;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1673
      node = nextIncrementalItem(node);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1674
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1675
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1676
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1677
// reveal the next hidden item on the slide
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1678
// node is null or the node that was last revealed
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1679
function revealNextItem(node)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1680
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1681
   node = nextIncrementalItem(node);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1682
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1683
   if (node && node.nodeType == 1)  // an element
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1684
      node.style.visibility = "visible";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1685
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1686
   return node;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1687
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1688
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1689
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1690
// exact inverse of revealNextItem(node)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1691
function hidePreviousItem(node)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1692
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1693
   if (node && node.nodeType == 1)  // an element
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1694
      node.style.visibility = "hidden";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1695
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1696
   return previousIncrementalItem(node);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1697
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1698
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1699
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1700
/* set click handlers on all anchors */
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1701
function patchAnchors()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1702
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1703
   var anchors = document.body.getElementsByTagName("a");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1704
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1705
   for (var i = 0; i < anchors.length; ++i)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1706
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1707
      anchors[i].onclick = clickedAnchor;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1708
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1709
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1710
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1711
function clickedAnchor(e)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1712
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1713
   if (!e)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1714
      var e = window.event;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1715
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1716
   // compare this.href with location.href
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1717
   // for link to another slide in this doc
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1718
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1719
   if (pageAddress(this.href) == pageAddress(location.href))
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1720
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1721
      // yes, so find new slide number
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1722
      var newslidenum = findSlideNumber(this.href);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1723
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1724
      if (newslidenum != slidenum)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1725
      {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1726
         slide = slides[slidenum];
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1727
         hideSlide(slide);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1728
         slidenum = newslidenum;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1729
         slide = slides[slidenum];
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1730
         showSlide(slide);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1731
         setLocation();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1732
      }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1733
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1734
   else if (this.target == null)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1735
      location.href = this.href;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1736
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1737
   this.blur();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1738
   stopPropagation(e);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1739
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1740
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1741
function pageAddress(uri)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1742
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1743
   var i = uri.indexOf("#");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1744
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1745
   // check if anchor is entire page
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1746
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1747
   if (i < 0)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1748
      return uri;  // yes
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1749
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1750
   return uri.substr(0, i);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1751
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1752
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1753
function showSlideNumber()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1754
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1755
   slideNumElement.innerHTML = "slide".localize() + " " +
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1756
           (slidenum + 1) + "/" + slides.length;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1757
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1758
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1759
function setLocation()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1760
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1761
   var uri = pageAddress(location.href);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1762
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1763
   //if (slidenum > 0)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1764
      uri = uri + "#(" + (slidenum+1) + ")";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1765
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1766
   if (uri != location.href && !khtml)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1767
      location.href = uri;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1768
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1769
   document.title = title + " (" + (slidenum+1) + ")";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1770
   //document.title = (slidenum+1) + ") " + slideName(slidenum);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1771
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1772
   showSlideNumber();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1773
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1774
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1775
// find current slide based upon location
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1776
// first find target anchor and then look
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1777
// for associated div element enclosing it
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1778
// finally map that to slide number
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1779
function findSlideNumber(uri)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1780
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1781
   // first get anchor from page location
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1782
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1783
   var i = uri.indexOf("#");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1784
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1785
   // check if anchor is entire page
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1786
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1787
   if (i < 0)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1788
      return 0;  // yes
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1789
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1790
   var anchor = unescape(uri.substr(i+1));
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1791
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1792
   // now use anchor as XML ID to find target
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1793
   var target = document.getElementById(anchor);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1794
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1795
   if (!target)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1796
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1797
      // does anchor look like "(2)" for slide 2 ??
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1798
      // where first slide is (1)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1799
      var re = /\((\d)+\)/;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1800
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1801
      if (anchor.match(re))
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1802
      {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1803
         var num = parseInt(anchor.substring(1, anchor.length-1));
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1804
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1805
         if (num > slides.length)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1806
            num = 1;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1807
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1808
         if (--num < 0)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1809
            num = 0;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1810
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1811
         return num;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1812
      }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1813
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1814
      // accept [2] for backwards compatibility
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1815
      re = /\[(\d)+\]/;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1816
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1817
      if (anchor.match(re))
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1818
      {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1819
         var num = parseInt(anchor.substring(1, anchor.length-1));
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1820
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1821
         if (num > slides.length)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1822
            num = 1;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1823
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1824
         if (--num < 0)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1825
            num = 0;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1826
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1827
         return num;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1828
      }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1829
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1830
      // oh dear unknown anchor
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1831
      return 0;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1832
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1833
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1834
   // search for enclosing slide
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1835
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1836
   while (true)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1837
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1838
      // browser coerces html elements to uppercase!
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1839
      if (target.nodeName.toLowerCase() == "div" &&
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1840
            hasClass(target, "slide"))
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1841
      {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1842
         // found the slide element
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1843
         break;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1844
      }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1845
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1846
      // otherwise try parent element if any
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1847
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1848
      target = target.parentNode;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1849
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1850
      if (!target)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1851
      {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1852
         return 0;   // no luck!
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1853
      }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1854
   };
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1855
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1856
   for (i = 0; i < slides.length; ++i)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1857
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1858
      if (slides[i] == target)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1859
         return i;  // success
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1860
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1861
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1862
   // oh dear still no luck
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1863
   return 0;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1864
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1865
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1866
// find slide name from first h1 element
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1867
// default to document title + slide number
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1868
function slideName(index)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1869
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1870
   var name = null;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1871
   var slide = slides[index];
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1872
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1873
   var heading = findHeading(slide);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1874
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1875
   if (heading)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1876
     name = extractText(heading);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1877
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1878
   if (!name)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1879
     name = title + "(" + (index + 1) + ")";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1880
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1881
   name.replace(/\&/g, "&amp;");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1882
   name.replace(/\</g, "&lt;");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1883
   name.replace(/\>/g, "&gt;");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1884
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1885
   return name;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1886
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1887
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1888
// find first h1 element in DOM tree
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1889
function findHeading(node)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1890
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1891
  if (!node || node.nodeType != 1)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1892
    return null;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1893
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1894
  if (node.nodeName == "H1" || node.nodeName == "h1")
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1895
    return node;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1896
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1897
  var child = node.firstChild;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1898
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1899
  while (child)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1900
  {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1901
    node = findHeading(child);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1902
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1903
    if (node)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1904
      return node;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1905
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1906
    child = child.nextSibling;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1907
  }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1908
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1909
  return null;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1910
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1911
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1912
// recursively extract text from DOM tree
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1913
function extractText(node)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1914
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1915
  if (!node)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1916
    return "";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1917
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1918
  // text nodes
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1919
  if (node.nodeType == 3)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1920
    return node.nodeValue;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1921
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1922
  // elements
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1923
  if (node.nodeType == 1)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1924
  {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1925
    node = node.firstChild;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1926
    var text = "";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1927
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1928
    while (node)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1929
    {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1930
      text = text + extractText(node);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1931
      node = node.nextSibling;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1932
    }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1933
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1934
    return text;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1935
  }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1936
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1937
  return "";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1938
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1939
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1940
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1941
// find copyright text from meta element
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1942
function findCopyright()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1943
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1944
   var name, content;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1945
   var meta = document.getElementsByTagName("meta");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1946
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1947
   for (var i = 0; i < meta.length; ++i)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1948
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1949
      name = meta[i].getAttribute("name");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1950
      content = meta[i].getAttribute("content");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1951
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1952
      if (name == "copyright")
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1953
         return content;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1954
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1955
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1956
   return null;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1957
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1958
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1959
function findSizeAdjust()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1960
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1961
   var name, content, offset;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1962
   var meta = document.getElementsByTagName("meta");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1963
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1964
   for (var i = 0; i < meta.length; ++i)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1965
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1966
      name = meta[i].getAttribute("name");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1967
      content = meta[i].getAttribute("content");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1968
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1969
      if (name == "font-size-adjustment")
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1970
         return 1 * content;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1971
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1972
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1973
   return 0;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1974
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1975
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1976
function addToolbar()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1977
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1978
   var slideCounter, page;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1979
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1980
   var toolbar = createElement("div");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1981
   toolbar.setAttribute("class", "toolbar");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1982
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1983
   if (ns_pos) // a reasonably behaved browser
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1984
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1985
      var right = document.createElement("div");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1986
      right.setAttribute("style", "float: right; text-align: right");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1987
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1988
      slideCounter = document.createElement("div")
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1989
      slideCounter.innerHTML = "slide".localize() + " n/m";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1990
      right.appendChild(slideCounter);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1991
      toolbar.appendChild(right);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1992
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1993
      var left = document.createElement("div");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1994
      left.setAttribute("style", "text-align: left");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1995
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1996
      // global end of slide indicator
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1997
      eos = document.createElement("span");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1998
      eos.innerHTML = "* ";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  1999
      left.appendChild(eos);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2000
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2001
      var help = document.createElement("a");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2002
      help.setAttribute("href", helpPage);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2003
      help.setAttribute("title", helpText.localize());
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2004
      help.innerHTML = "help?".localize();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2005
      left.appendChild(help);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2006
      helpAnchor = help;  // save for focus hack
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2007
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2008
      var gap1 = document.createTextNode(" ");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2009
      left.appendChild(gap1);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2010
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2011
      var contents = document.createElement("a");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2012
      contents.setAttribute("href", "javascript:toggleTableOfContents()");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2013
      contents.setAttribute("title", "table of contents".localize());
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2014
      contents.innerHTML = "contents?".localize();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2015
      left.appendChild(contents);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2016
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2017
      var gap2 = document.createTextNode(" ");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2018
      left.appendChild(gap2);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2019
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2020
      var i = location.href.indexOf("#");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2021
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2022
      // check if anchor is entire page
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2023
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2024
      if (i > 0)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2025
         page = location.href.substr(0, i);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2026
      else
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2027
         page = location.href;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2028
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2029
      var start = document.createElement("a");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2030
      start.setAttribute("href", page);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2031
      start.setAttribute("title", "restart presentation".localize());
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2032
      start.innerHTML = "restart?".localize();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2033
//    start.setAttribute("href", "javascript:printSlides()");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2034
//    start.setAttribute("title", "print all slides".localize());
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2035
//    start.innerHTML = "print!".localize();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2036
      left.appendChild(start);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2037
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2038
      var copyright = findCopyright();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2039
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2040
      if (copyright)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2041
      {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2042
         var span = document.createElement("span");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2043
         span.innerHTML = copyright;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2044
         span.style.color = "black";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2045
         span.style.marginLeft = "4em";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2046
         left.appendChild(span);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2047
      }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2048
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2049
      toolbar.appendChild(left);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2050
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2051
   else // IE so need to work around its poor CSS support
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2052
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2053
      toolbar.style.position = (ie7 ? "fixed" : "absolute");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2054
      toolbar.style.zIndex = "200";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2055
      toolbar.style.width = "99.9%";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2056
      toolbar.style.height = "1.2em";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2057
      toolbar.style.top = "auto";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2058
      toolbar.style.bottom = "0";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2059
      toolbar.style.left = "0";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2060
      toolbar.style.right = "0";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2061
      toolbar.style.textAlign = "left";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2062
      toolbar.style.fontSize = "60%";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2063
      toolbar.style.color = "red";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2064
      toolbar.borderWidth = 0;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2065
      toolbar.style.background = "rgb(240,240,240)";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2066
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2067
      // would like to have help text left aligned
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2068
      // and page counter right aligned, floating
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2069
      // div's don't work, so instead use nested
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2070
      // absolutely positioned div's.
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2071
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2072
      var sp = document.createElement("span");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2073
      sp.innerHTML = "&nbsp;&nbsp;*&nbsp;";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2074
      toolbar.appendChild(sp);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2075
      eos = sp;  // end of slide indicator
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2076
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2077
      var help = document.createElement("a");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2078
      help.setAttribute("href", helpPage);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2079
      help.setAttribute("title", helpText.localize());
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2080
      help.innerHTML = "help?".localize();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2081
      toolbar.appendChild(help);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2082
      helpAnchor = help;  // save for focus hack
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2083
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2084
      var gap1 = document.createTextNode(" ");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2085
      toolbar.appendChild(gap1);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2086
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2087
      var contents = document.createElement("a");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2088
      contents.setAttribute("href", "javascript:toggleTableOfContents()");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2089
      contents.setAttribute("title", "table of contents".localize());
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2090
      contents.innerHTML = "contents?".localize();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2091
      toolbar.appendChild(contents);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2092
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2093
      var gap2 = document.createTextNode(" ");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2094
      toolbar.appendChild(gap2);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2095
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2096
      var i = location.href.indexOf("#");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2097
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2098
      // check if anchor is entire page
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2099
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2100
      if (i > 0)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2101
         page = location.href.substr(0, i);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2102
      else
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2103
         page = location.href;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2104
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2105
      var start = document.createElement("a");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2106
      start.setAttribute("href", page);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2107
      start.setAttribute("title", "restart presentation".localize());
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2108
      start.innerHTML = "restart?".localize();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2109
//    start.setAttribute("href", "javascript:printSlides()");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2110
//    start.setAttribute("title", "print all slides".localize());
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2111
//    start.innerHTML = "print!".localize();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2112
      toolbar.appendChild(start);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2113
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2114
      var copyright = findCopyright();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2115
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2116
      if (copyright)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2117
      {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2118
         var span = document.createElement("span");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2119
         span.innerHTML = copyright;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2120
         span.style.color = "black";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2121
         span.style.marginLeft = "2em";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2122
         toolbar.appendChild(span);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2123
      }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2124
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2125
      slideCounter = document.createElement("div")
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2126
      slideCounter.style.position = "absolute";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2127
      slideCounter.style.width = "auto"; //"20%";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2128
      slideCounter.style.height = "1.2em";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2129
      slideCounter.style.top = "auto";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2130
      slideCounter.style.bottom = 0;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2131
      slideCounter.style.right = "0";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2132
      slideCounter.style.textAlign = "right";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2133
      slideCounter.style.color = "red";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2134
      slideCounter.style.background = "rgb(240,240,240)";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2135
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2136
      slideCounter.innerHTML = "slide".localize() + " n/m";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2137
      toolbar.appendChild(slideCounter);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2138
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2139
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2140
   // ensure that click isn't passed through to the page
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2141
   toolbar.onclick = stopPropagation;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2142
   document.body.appendChild(toolbar);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2143
   slideNumElement = slideCounter;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2144
   setEosStatus(false);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2145
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2146
   return toolbar;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2147
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2148
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2149
function isShownToc()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2150
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2151
  if (toc && toc.style.visible == "visible")
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2152
    return true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2153
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2154
  return false;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2155
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2156
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2157
function showTableOfContents()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2158
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2159
  if (toc)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2160
  {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2161
    if (toc.style.visibility != "visible")
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2162
    {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2163
      toc.style.visibility = "visible";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2164
      toc.style.display = "block";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2165
      toc.focus();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2166
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2167
      if (ie7 && slidenum == 0)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2168
        setTimeout("ieHack()", 100);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2169
    }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2170
    else
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2171
      hideTableOfContents();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2172
  }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2173
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2174
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2175
function hideTableOfContents()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2176
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2177
  if (toc && toc.style.visibility != "hidden")
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2178
  {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2179
    toc.style.visibility = "hidden";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2180
    toc.style.display = "none";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2181
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2182
    try
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2183
    {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2184
       if (!opera)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2185
         helpAnchor.focus();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2186
    }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2187
    catch (e)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2188
    {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2189
    }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2190
  }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2191
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2192
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2193
function toggleTableOfContents()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2194
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2195
  if (toc)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2196
  {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2197
     if (toc.style.visible != "visible")
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2198
       showTableOfContents();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2199
     else
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2200
       hideTableOfContents();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2201
  }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2202
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2203
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2204
// called on clicking toc entry
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2205
function gotoEntry(e)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2206
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2207
   var target;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2208
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2209
   if (!e)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2210
      var e = window.event;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2211
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2212
   if (e.target)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2213
      target = e.target;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2214
   else if (e.srcElement)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2215
      target = e.srcElement;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2216
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2217
   // work around Safari bug
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2218
   if (target.nodeType == 3)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2219
      target = target.parentNode;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2220
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2221
   if (target && target.nodeType == 1)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2222
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2223
     var uri = target.getAttribute("href");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2224
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2225
     if (uri)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2226
     {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2227
        //alert("going to " + uri);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2228
        var slide = slides[slidenum];
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2229
        hideSlide(slide);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2230
        slidenum = findSlideNumber(uri);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2231
        slide = slides[slidenum];
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2232
        lastShown = null;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2233
        setLocation();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2234
        setVisibilityAllIncremental("hidden");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2235
        setEosStatus(!nextIncrementalItem(lastShown));
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2236
        showSlide(slide);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2237
        //target.focus();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2238
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2239
        try
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2240
        {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2241
           if (!opera)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2242
             helpAnchor.focus();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2243
        }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2244
        catch (e)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2245
        {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2246
        }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2247
     }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2248
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2249
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2250
   hideTableOfContents(e);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2251
   if (ie7) ieHack();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2252
   stopPropagation(e);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2253
   return cancel(e);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2254
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2255
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2256
// called onkeydown for toc entry
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2257
function gotoTocEntry(event)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2258
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2259
  var key;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2260
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2261
  if (!event)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2262
    var event = window.event;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2263
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2264
  // kludge around NS/IE differences 
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2265
  if (window.event)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2266
    key = window.event.keyCode;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2267
  else if (event.which)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2268
    key = event.which;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2269
  else
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2270
    return true; // Yikes! unknown browser
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2271
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2272
  // ignore event if key value is zero
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2273
  // as for alt on Opera and Konqueror
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2274
  if (!key)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2275
     return true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2276
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2277
  // check for concurrent control/command/alt key
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2278
  // but are these only present on mouse events?
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2279
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2280
  if (event.ctrlKey || event.altKey)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2281
     return true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2282
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2283
  if (key == 13)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2284
  {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2285
    var uri = this.getAttribute("href");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2286
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2287
    if (uri)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2288
    {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2289
      //alert("going to " + uri);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2290
      var slide = slides[slidenum];
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2291
      hideSlide(slide);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2292
      slidenum = findSlideNumber(uri);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2293
      slide = slides[slidenum];
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2294
      lastShown = null;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2295
      setLocation();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2296
      setVisibilityAllIncremental("hidden");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2297
      setEosStatus(!nextIncrementalItem(lastShown));
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2298
      showSlide(slide);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2299
      //target.focus();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2300
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2301
      try
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2302
      {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2303
         if (!opera)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2304
           helpAnchor.focus();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2305
      }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2306
      catch (e)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2307
      {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2308
      }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2309
    }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2310
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2311
    hideTableOfContents();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2312
    if (ie7) ieHack();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2313
    return cancel(event);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2314
  }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2315
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2316
  if (key == 40 && this.next)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2317
  {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2318
    this.next.focus();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2319
    return cancel(event);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2320
  }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2321
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2322
  if (key == 38 && this.previous)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2323
  {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2324
    this.previous.focus();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2325
    return cancel(event);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2326
  }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2327
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2328
  return true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2329
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2330
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2331
function isTitleSlide(slide)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2332
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2333
   return hasClass(slide, "title");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2334
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2335
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2336
// create div element with links to each slide
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2337
function tableOfContents()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2338
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2339
  var toc = document.createElement("div");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2340
  addClass(toc, "toc");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2341
  //toc.setAttribute("tabindex", "0");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2342
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2343
  var heading = document.createElement("div");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2344
  addClass(heading, "toc-heading");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2345
  heading.innerHTML = "Table of Contents".localize();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2346
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2347
  heading.style.textAlign = "center";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2348
  heading.style.width = "100%";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2349
  heading.style.margin = "0";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2350
  heading.style.marginBottom = "1em";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2351
  heading.style.borderBottomStyle = "solid";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2352
  heading.style.borderBottomColor = "rgb(180,180,180)";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2353
  heading.style.borderBottomWidth = "1px";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2354
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2355
  toc.appendChild(heading);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2356
  var previous = null;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2357
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2358
  for (var i = 0; i < slides.length; ++i)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2359
  {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2360
    var title = hasClass(slides[i], "title");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2361
    var num = document.createTextNode((i + 1) + ". ");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2362
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2363
    toc.appendChild(num);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2364
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2365
    var a = document.createElement("a");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2366
    a.setAttribute("href", "#(" + (i+1) + ")");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2367
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2368
    if (title)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2369
      addClass(a, "titleslide");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2370
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2371
    var name = document.createTextNode(slideName(i));
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2372
    a.appendChild(name);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2373
    a.onclick = gotoEntry;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2374
    a.onkeydown = gotoTocEntry;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2375
    a.previous = previous;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2376
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2377
    if (previous)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2378
      previous.next = a;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2379
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2380
    toc.appendChild(a);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2381
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2382
    if (i == 0)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2383
      toc.first = a;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2384
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2385
    if (i < slides.length - 1)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2386
    {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2387
      var br = document.createElement("br");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2388
      toc.appendChild(br);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2389
    }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2390
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2391
    previous = a;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2392
  }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2393
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2394
  toc.focus = function () {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2395
    if (this.first)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2396
      this.first.focus();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2397
  }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2398
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2399
  toc.onclick = function (e) {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2400
    e||(e=window.event);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2401
    hideTableOfContents();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2402
    stopPropagation(e);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2403
    
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2404
    if (e.cancel != undefined)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2405
      e.cancel = true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2406
      
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2407
    if (e.returnValue != undefined)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2408
      e.returnValue = false;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2409
      
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2410
    return false;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2411
  };
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2412
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2413
  toc.style.position = "absolute";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2414
  toc.style.zIndex = "300";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2415
  toc.style.width = "60%";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2416
  toc.style.maxWidth = "30em";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2417
  toc.style.height = "30em";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2418
  toc.style.overflow = "auto";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2419
  toc.style.top = "auto";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2420
  toc.style.right = "auto";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2421
  toc.style.left = "4em";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2422
  toc.style.bottom = "4em";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2423
  toc.style.padding = "1em";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2424
  toc.style.background = "rgb(240,240,240)";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2425
  toc.style.borderStyle = "solid";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2426
  toc.style.borderWidth = "2px";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2427
  toc.style.fontSize = "60%";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2428
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2429
  document.body.insertBefore(toc, document.body.firstChild);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2430
  return toc;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2431
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2432
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2433
function replaceByNonBreakingSpace(str)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2434
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2435
   for (var i = 0; i < str.length; ++i)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2436
      str[i] = 160;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2437
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2438
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2439
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2440
function initOutliner()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2441
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2442
  var items = document.getElementsByTagName("LI");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2443
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2444
  for (var i = 0; i < items.length; ++i)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2445
  {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2446
     var target = items[i];
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2447
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2448
     if (!hasClass(target.parentNode, "outline"))
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2449
        continue;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2450
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2451
     target.onclick = outlineClick;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2452
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2453
     if (!ns_pos)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2454
     {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2455
        target.onmouseover = hoverOutline;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2456
        target.onmouseout = unhoverOutline;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2457
     }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2458
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2459
     if (foldable(target))
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2460
     {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2461
       target.foldable = true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2462
       target.onfocus = function () {outline = this;};
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2463
       target.onblur = function () {outline = null;};
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2464
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2465
       if (!target.getAttribute("tabindex"))
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2466
         target.setAttribute("tabindex", "0");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2467
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2468
       if (hasClass(target, "expand"))
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2469
         unfold(target);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2470
       else
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2471
         fold(target);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2472
     }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2473
     else
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2474
     {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2475
       addClass(target, "nofold");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2476
       target.visible = true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2477
       target.foldable = false;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2478
     }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2479
  }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2480
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2481
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2482
function foldable(item)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2483
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2484
   if (!item || item.nodeType != 1)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2485
      return false;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2486
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2487
   var node = item.firstChild;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2488
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2489
   while (node)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2490
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2491
     if (node.nodeType == 1 && isBlock(node))
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2492
       return true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2493
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2494
      node = node.nextSibling;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2495
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2496
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2497
   return false;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2498
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2499
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2500
function fold(item)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2501
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2502
  if (item)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2503
  {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2504
    removeClass(item, "unfolded");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2505
    addClass(item, "folded");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2506
  }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2507
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2508
  var node = item ? item.firstChild : null;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2509
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2510
  while (node)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2511
  {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2512
    if (node.nodeType == 1 && isBlock(node)) // element
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2513
    {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2514
      // note that getElementStyle won't work for Safari 1.3
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2515
      node.display = getElementStyle(node, "display", "display");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2516
      node.style.display = "none";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2517
      node.style.visibility = "hidden";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2518
    }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2519
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2520
    node = node.nextSibling;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2521
  }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2522
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2523
  item.visible = false;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2524
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2525
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2526
function unfold(item)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2527
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2528
   if (item)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2529
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2530
     addClass(item, "unfolded");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2531
     removeClass(item, "folded");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2532
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2533
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2534
  var node = item ? item.firstChild : null;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2535
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2536
  while (node)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2537
  {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2538
    if (node.nodeType == 1 && isBlock(node)) // element
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2539
    {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2540
      // with fallback for Safari, see above
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2541
      node.style.display = (node.display ? node.display : "block");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2542
      node.style.visibility = "visible";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2543
    }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2544
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2545
    node = node.nextSibling;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2546
  }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2547
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2548
  item.visible = true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2549
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2550
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2551
function outlineClick(e)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2552
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2553
   var rightclick = false;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2554
   var target;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2555
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2556
   if (!e)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2557
      var e = window.event;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2558
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2559
   if (e.target)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2560
      target = e.target;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2561
   else if (e.srcElement)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2562
      target = e.srcElement;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2563
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2564
   // work around Safari bug
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2565
   if (target.nodeType == 3)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2566
      target = target.parentNode;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2567
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2568
   while (target && target.visible == undefined)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2569
      target = target.parentNode;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2570
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2571
   if (!target)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2572
      return true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2573
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2574
   if (e.which)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2575
      rightclick = (e.which == 3);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2576
   else if (e.button)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2577
      rightclick = (e.button == 2);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2578
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2579
   if (!rightclick && target.visible != undefined)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2580
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2581
      if (target.foldable)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2582
      {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2583
         if (target.visible)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2584
           fold(target);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2585
         else
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2586
           unfold(target);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2587
      }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2588
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2589
      stopPropagation(e);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2590
      e.cancel = true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2591
      e.returnValue = false;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2592
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2593
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2594
   return false;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2595
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2596
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2597
function hoverOutline(e)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2598
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2599
   var target;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2600
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2601
   if (!e)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2602
      var e = window.event;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2603
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2604
   if (e.target)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2605
      target = e.target;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2606
   else if (e.srcElement)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2607
      target = e.srcElement;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2608
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2609
   // work around Safari bug
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2610
   if (target.nodeType == 3)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2611
      target = target.parentNode;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2612
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2613
   while (target && target.visible == undefined)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2614
      target = target.parentNode;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2615
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2616
   if (target && target.foldable)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2617
      target.style.cursor = "pointer";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2618
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2619
   return true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2620
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2621
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2622
function unhoverOutline(e)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2623
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2624
   var target;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2625
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2626
   if (!e)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2627
      var e = window.event;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2628
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2629
   if (e.target)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2630
      target = e.target;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2631
   else if (e.srcElement)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2632
      target = e.srcElement;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2633
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2634
   // work around Safari bug
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2635
   if (target.nodeType == 3)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2636
      target = target.parentNode;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2637
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2638
   while (target && target.visible == undefined)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2639
      target = target.parentNode;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2640
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2641
   if (target)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2642
     target.style.cursor = "default";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2643
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2644
   return true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2645
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2646
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2647
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2648
function stopPropagation(e)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2649
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2650
   if (window.event)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2651
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2652
      window.event.cancelBubble = true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2653
      //window.event.returnValue = false;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2654
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2655
   else if (e)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2656
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2657
      e.cancelBubble = true;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2658
      e.stopPropagation();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2659
      //e.preventDefault();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2660
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2661
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2662
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2663
/* can't rely on display since we set that to none to hide things */
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2664
function isBlock(elem)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2665
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2666
   var tag = elem.nodeName;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2667
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2668
   return tag == "OL" || tag == "UL" || tag == "P" ||
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2669
          tag == "LI" || tag == "TABLE" || tag == "PRE" ||
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2670
          tag == "H1" || tag == "H2" || tag == "H3" ||
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2671
          tag == "H4" || tag == "H5" || tag == "H6" ||
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2672
          tag == "BLOCKQUOTE" || tag == "ADDRESS"; 
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2673
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2674
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2675
function getElementStyle(elem, IEStyleProp, CSSStyleProp)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2676
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2677
   if (elem.currentStyle)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2678
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2679
      return elem.currentStyle[IEStyleProp];
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2680
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2681
   else if (window.getComputedStyle)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2682
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2683
      var compStyle = window.getComputedStyle(elem, "");
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2684
      return compStyle.getPropertyValue(CSSStyleProp);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2685
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2686
   return "";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2687
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2688
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2689
// works with text/html and text/xhtml+xml with thanks to Simon Willison
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2690
function createElement(element)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2691
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2692
   if (typeof document.createElementNS != 'undefined')
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2693
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2694
      return document.createElementNS('http://www.w3.org/1999/xhtml', element);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2695
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2696
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2697
   if (typeof document.createElement != 'undefined')
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2698
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2699
      return document.createElement(element);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2700
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2701
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2702
   return false;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2703
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2704
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2705
// designed to work with both text/html and text/xhtml+xml
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2706
function getElementsByTagName(name)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2707
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2708
   if (typeof document.getElementsByTagNameNS != 'undefined')
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2709
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2710
      return document.getElementsByTagNameNS('http://www.w3.org/1999/xhtml', name);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2711
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2712
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2713
   if (typeof document.getElementsByTagName != 'undefined')
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2714
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2715
      return document.getElementsByTagName(name);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2716
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2717
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2718
   return null;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2719
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2720
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2721
/*
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2722
// clean alternative to innerHTML method, but on IE6
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2723
// it doesn't work with named entities like &nbsp;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2724
// which need to be replaced by numeric entities
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2725
function insertText(element, text)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2726
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2727
   try
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2728
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2729
     element.textContent = text;  // DOM3 only
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2730
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2731
   catch (e)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2732
   {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2733
      if (element.firstChild)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2734
      {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2735
         // remove current children
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2736
         while (element.firstChild)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2737
            element.removeChild(element.firstChild);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2738
      }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2739
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2740
      element.appendChild(document.createTextNode(text));
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2741
   }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2742
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2743
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2744
// as above, but as method of all element nodes
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2745
// doesn't work in IE6 which doesn't allow you to
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2746
// add methods to the HTMLElement prototype
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2747
if (HTMLElement != undefined)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2748
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2749
  HTMLElement.prototype.insertText = function(text) {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2750
    var element = this;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2751
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2752
    try
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2753
    {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2754
      element.textContent = text;  // DOM3 only
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2755
    }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2756
    catch (e)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2757
    {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2758
      if (element.firstChild)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2759
      {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2760
         // remove current children
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2761
         while (element.firstChild)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2762
           element.removeChild(element.firstChild);
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2763
      }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2764
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2765
      element.appendChild(document.createTextNode(text));
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2766
    }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2767
  };
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2768
}
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2769
*/
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2770
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2771
function getSelectedText()
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2772
{
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2773
  try
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2774
  {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2775
    if (window.getSelection)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2776
      return window.getSelection().toString();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2777
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2778
    if (document.getSelection)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2779
      return document.getSelection().toString();
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2780
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2781
    if (document.selection)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2782
      return document.selection.createRange().text;
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2783
  }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2784
  catch (e)
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2785
  {
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2786
    return "";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2787
  }
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2788
  return "";
d3a405d0742f Diapositives, primera entrada
viric@mandarina
parents:
diff changeset
  2789
}