home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 March / Chip_2002-03_cd1.bin / internet / kosek / xml / dboscon / browser / slides.js < prev   
Text File  |  2001-07-29  |  6KB  |  256 lines

  1. // -*- Java -*-
  2.  
  3. function selectBrowser() {
  4.     var browserName = navigator.appName;
  5.     var browserVersion = parseFloat(navigator.appVersion);
  6.     var userAgent = navigator.userAgent;;
  7.  
  8.     if (browserName == "Netscape" && browserVersion>=4) {
  9.     return "ns4";
  10.     }
  11.  
  12.     if (browserName == "Microsoft Internet Explorer"
  13.     && userAgent.indexOf("MSIE 5") > 0) {
  14.     return "ie5";
  15.     }
  16.  
  17.     return null;
  18. }
  19.  
  20. function newPage(filename) {
  21.     if (selectBrowser() != "ie5") {
  22.     return;
  23.     }
  24.  
  25.     var parent = self.parent;
  26.  
  27.     var gparent = null;
  28.     if (parent != null) {
  29.     gparent = parent.parent;
  30.     }
  31.  
  32.     var filemap = null;
  33.     if (gparent != null) {
  34.     filemap = gparent.filemap;
  35.     }
  36.  
  37.     if (filename == "toc.html") {
  38.     if (filemap == null) {
  39.         walk_toc();
  40.     }
  41.     } else {
  42.     if (filemap != null) {
  43.         var id = filemap[filename];
  44.         if (id != null) {
  45.         highlight_toc(id);
  46.         }
  47.     }
  48.     }
  49. }
  50.  
  51. function navigate (bk,fw) {
  52.     var frame = window;
  53.     if (frame.name != "foil") {
  54.     frame = frame.parent;
  55.     }
  56.     if (frame.name != "foil") {
  57.     frame = frame.parent;
  58.     }
  59.  
  60.     kc=event.keyCode;
  61.     // [space] or [Enter] or [n] or [N] for next slide
  62.     if (((kc==32)||(kc==13)||(kc==110)||(kc==78)) && (fw != "")) {
  63.     frame.location=fw;
  64.     }
  65.  
  66.     // [P] or [p] for previous slide
  67.     if (((kc==80)||(kc==112)) && (bk != "")) {
  68.     frame.location=bk;
  69.     }
  70. }
  71.  
  72. function walk_toc() {
  73.     var doc = self.document;
  74.     var filemap = new Array();
  75.     var fileidx = new Array();
  76.     var filermap = new Array();
  77.     var fileridx = new Array();
  78.     var idx = 0;
  79.     var sectmap = new Array();
  80.     var section = "";
  81.     var title = "";
  82.  
  83.     var parent = self.parent;
  84.     var gparent = null;
  85.     if (parent != null) {
  86.     gparent = parent.parent;
  87.     }
  88.  
  89.     for (var i = 0; i < doc.all.length-2; i++) {
  90.     var div_elem = doc.all.item(i);
  91.     var img_elem = doc.all.item(i+1);
  92.     var a_elem   = doc.all.item(i+2);
  93.  
  94.     if (img_elem.tagName == "A") {
  95.         a_elem = img_elem;
  96.     }
  97.  
  98.     if (div_elem.tagName == "DIV"
  99.         && a_elem.tagName == "A") {
  100.         var id   = div_elem.getAttribute("ID");
  101.         var file = a_elem.getAttribute("HREF");
  102.         var pos  = file.lastIndexOf("/");
  103.         if (pos > 0) {
  104.         file = file.substring(pos+1);
  105.         }
  106.  
  107.         //        if (div_elem.className == "toc-section") {
  108.         //        section = a_elem.innerText;
  109.         //        }
  110.  
  111.         if (div_elem.className == "toc-slidesinfo") {
  112.         title = a_elem.innerText;
  113.         }
  114.  
  115.         if (id != "") {
  116.         fileidx[idx] = file;
  117.         fileridx[file] = idx;
  118.         idx++;
  119.         filemap[file] = id;
  120.         filermap[id] = file;
  121.         sectmap[file] = section;
  122.         }
  123.     }
  124.     }
  125.  
  126.     // Squirrel this away on the top frame
  127.     if (gparent != null) {
  128.     gparent.prestitle = title;
  129.     gparent.filemap = filemap;
  130.     gparent.filermap = filermap;
  131.     gparent.fileidx = fileidx;
  132.     gparent.fileridx = fileridx;
  133.     gparent.sectmap = sectmap;
  134.     } else {
  135.     alert("Unexpected frame context in slides.js");
  136.     }
  137. }
  138.  
  139. function highlight_toc(id) {
  140.     var frame = window.parent.parent.frames("toc");
  141.     var doc   = frame.document;
  142.     var div   = null;
  143.  
  144.     // find the div
  145.     for (var i = 0; i < doc.all.length; i++) {
  146.     if (doc.all.item(i).tagName == "DIV") {
  147.         if (doc.all.item(i).getAttribute("ID") == id) {
  148.         div = doc.all.item(i);
  149.         break;
  150.         }
  151.     }
  152.     }
  153.  
  154.     var a = div.children(0);
  155.     if (a != null && a.tagName != "A") {
  156.     a = div.children(1);
  157.     }
  158.  
  159.     if (a != null && a.tagName == "A") {
  160.     if (frame.lastA != null) {
  161.         frame.lastA.style.textDecorationUnderline = false;
  162.     }
  163.     a.style.textDecorationUnderline = true;
  164.     frame.lastA = a;
  165.     }
  166. }
  167.  
  168. function write_nav(id) {
  169.     var frame = window.parent.frames("navbar");
  170.     var doc   = frame.document;
  171.  
  172.     if (id == null) {
  173.     id = self.parent.filemap[self.parent.fileidx[0]];
  174.     }
  175.  
  176.     var file  = self.parent.filermap[id];
  177.     var num   = self.parent.fileridx[file];
  178.     var prev  = null;
  179.     var next  = null;
  180.  
  181.     if (num > 0) {
  182.     prev = self.parent.fileidx[num-1];
  183.     }
  184.  
  185.     if (num < self.parent.fileidx.length) {
  186.     next = self.parent.fileidx[num+1];
  187.     }
  188.  
  189.     doc.open();
  190.     doc.close();
  191.     doc.write("<html><head>\n");
  192.     doc.write("<link type='text/css' rel='stylesheet' href='slides.css'>\n");
  193.     doc.write("<title>nav frame</title>\n");
  194.     doc.write("</head><body bgcolor='#8399B1'>\n");
  195.     doc.write("<table width='100%' border=0 cellpadding=0 cellspacing=0>\n");
  196.     doc.write("<tr>\n");
  197.     doc.write("<td align=left valign=center width='33%'>");
  198.     if (prev != null) {
  199.     doc.write("<a href='" + prev + "' target='foil'>");
  200.     doc.write("<img src='../graphics/left.png' border='0'>");
  201.     doc.write("</a>");
  202.     } else {
  203.     doc.write(" ");
  204.     }
  205.     doc.write("</td>\n");
  206.     doc.write("<td align=center valign=bottom width='34%'>");
  207.     if (num > 0) {
  208.     doc.write("<span class='navfooter'>Slide " + num + "</span>");
  209.     } else {
  210.     doc.write(" ");
  211.     }
  212.     doc.write("</td>\n");
  213.     doc.write("<td align=right valign=center width='33%'>");
  214.     if (next) {
  215.     doc.write("<a href='" + next + "' target='foil'>");
  216.     doc.write("<img src='../graphics/right.png' border='0'>");
  217.     doc.write("</a>");
  218.     } else {
  219.     doc.write(" ");
  220.     }
  221.     doc.write("</td>\n");
  222.     doc.write("</tr>\n");
  223.     doc.write("</table>\n");
  224.     doc.close();
  225. }
  226.  
  227. function write_header(file) {
  228.     var frame = window.parent.frames("header");
  229.     var doc   = frame.document;
  230.     var title = self.parent.prestitle;
  231.     var section  = self.parent.sectmap[file];
  232.  
  233.     var bgcolor = "#8399B1";
  234.     var header = title + ": " + section;
  235.  
  236.     if (file == 'titlefoil.html') {
  237.       header = "";
  238.     }
  239.  
  240.     doc.open();
  241.     doc.close();
  242.     doc.write("<html><head>\n");
  243.     doc.write("<link type='text/css' rel='stylesheet' href='slides.css'>\n");
  244.     doc.write("<title>header frame</title>\n");
  245.     doc.write("</head><body bgcolor='" + bgcolor + "'>\n");
  246.     doc.write("<table width='100%' border=0 cellpadding=0 cellspacing=0>\n");
  247.     doc.write("<tr>\n");
  248.     doc.write("<td align=center valign=center width='100%'>");
  249.     doc.write("<span class=navheader>" + header + "</span>");
  250.     doc.write("</td>\n");
  251.     doc.write("</tr>\n");
  252.     doc.write("</table>\n");
  253.     doc.close();
  254. }
  255.  
  256.