comparison client/digitallibrary/baselib.js @ 328:3e0f2fb67d0b

fixed problems with Netscape4 (silly error by me partly :-)
author robcast
date Tue, 02 Nov 2004 20:36:59 +0100
parents 4074c0138cf0
children d4c302cdeed1
comparison
equal deleted inserted replaced
327:c9b2938861cf 328:3e0f2fb67d0b
15 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA 15 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
16 16
17 Authors: 17 Authors:
18 Christian Luginbuehl, 01.05.2003 (first version) 18 Christian Luginbuehl, 01.05.2003 (first version)
19 DW 24.03.2004 (Changed for digiLib in Zope) 19 DW 24.03.2004 (Changed for digiLib in Zope)
20 Robert Casties, 1.11.2004 20 Robert Casties, 2.11.2004
21 21
22 */ 22 */
23
24 function base_init() {
25 // init function
26 baseScriptVersion = "1.1b";
27 dlParams = new Object();
28 browserType = getBrowserType();
29 }
30
23 31
24 function getInt(n) { 32 function getInt(n) {
25 // returns always an integer 33 // returns always an integer
26 n = parseInt(n); 34 n = parseInt(n);
27 if (isNaN(n)) return 0; 35 if (isNaN(n)) return 0;
31 function defined(x) { 39 function defined(x) {
32 // returns if x is defined 40 // returns if x is defined
33 return (typeof arguments[0] != "undefined"); 41 return (typeof arguments[0] != "undefined");
34 } 42 }
35 43
36 // auxiliary function to crop senseless precision
37 function cropFloat(x) { 44 function cropFloat(x) {
45 // auxiliary function to crop senseless precision
38 return parseInt(10000*x)/10000; 46 return parseInt(10000*x)/10000;
39 } 47 }
40 48
41 // browser sniffer 49 function getBrowserType() {
42 var browserType = Object(); 50 // browser sniffer
43 browserType.doDHTML = false; 51 var bt = Object();
44 browserType.versIE = 0; 52 bt.doDHTML = false;
45 53 bt.versIE = 0;
46 if ((! document.cssonly && document.layers) || document.all || document.getElementById) { 54
47 var vers = navigator.appVersion.split('MSIE '); 55 if ((! document.cssonly && document.layers) || document.all || document.getElementById) {
48 vers = vers[vers.length - 1]; 56 var vers = navigator.appVersion.split('MSIE ');
49 browserType.versIE = getInt(vers); 57 vers = vers[vers.length - 1];
50 browserType.isIE = navigator.userAgent.indexOf('MSIE') >= 0; 58 bt.versIE = getInt(vers);
51 browserType.isMac = navigator.platform.indexOf('Mac') >= 0; 59 bt.isIE = navigator.userAgent.indexOf('MSIE') >= 0;
52 browserType.isWin = navigator.platform.indexOf('Win') >= 0; 60 bt.isMac = navigator.platform.indexOf('Mac') >= 0;
53 browserType.isN4 = (navigator.userAgent.indexOf('Mozilla/4.') >= 0) && ! browserType.isIE; 61 bt.isWin = navigator.platform.indexOf('Win') >= 0;
54 browserType.isIEWin = browserType.versIE > 0 && browserType.isWin; 62 bt.isN4 = (navigator.userAgent.indexOf('Mozilla/4.') >= 0) && ! bt.isIE;
55 if (navigator.appVersion.indexOf('MSIE') < 0 || ! browserType.isMac || browserType.versIE >= 5) { 63 bt.isIEWin = bt.versIE > 0 && bt.isWin;
56 browserType.doDHTML = true; 64 if (navigator.appVersion.indexOf('MSIE') < 0 || ! bt.isMac || bt.versIE >= 5) {
57 browserType.isOpera = navigator.userAgent.indexOf(' Opera ') >= 0; 65 bt.doDHTML = true;
58 browserType.isKonq = navigator.userAgent.indexOf(' Konqueror') >= 0; 66 bt.isOpera = navigator.userAgent.indexOf(' Opera ') >= 0;
59 } 67 bt.isKonq = navigator.userAgent.indexOf(' Konqueror') >= 0;
68 }
69 }
70 return bt;
60 } 71 }
61 72
62 // fixes for javascript < 1.2 73 // fixes for javascript < 1.2
63 if (! Array.prototype.push) { 74 if (! Array.prototype.push) {
64 Array.prototype.push = function(val) { 75 Array.prototype.push = function(val) {
247 258
248 259
249 /* ********************************************** 260 /* **********************************************
250 * parameter routines 261 * parameter routines
251 * ******************************************** */ 262 * ******************************************** */
252
253 var dlParams = new Object();
254 263
255 function newParameter(name, defaultValue, detail) { 264 function newParameter(name, defaultValue, detail) {
256 // create a new parameter with a name and a default value 265 // create a new parameter with a name and a default value
257 if (defined(dlParams[name])) { 266 if (defined(dlParams[name])) {
258 alert("Fatal: An object with name '" + name + "' already exists - cannot recreate!"); 267 alert("Fatal: An object with name '" + name + "' already exists - cannot recreate!");
487 return new Position(x, y); 496 return new Position(x, y);
488 } 497 }
489 498
490 function registerEvent(type, elem, handler) { 499 function registerEvent(type, elem, handler) {
491 // register the given event handler on the indicated element 500 // register the given event handler on the indicated element
492 if (elem.addEventListener) { 501 if (elem.addEventListener) {
493 elem.addEventListener(type, handler, false); 502 elem.addEventListener(type, handler, false);
494 } else { 503 } else {
495 if (type = "mousedown") { 504 if (type == "mousedown") {
496 if (elem.captureEvents) { 505 if (elem.captureEvents) {
497 elem.captureEvents(Event.MOUSEDOWN); 506 elem.captureEvents(Event.MOUSEDOWN);
498 } 507 }
499 elem.onmousedown = handler; 508 elem.onmousedown = handler;
500 } else if (type = "mouseup") { 509 } else if (type == "mouseup") {
501 if (elem.captureEvents) { 510 if (elem.captureEvents) {
502 elem.captureEvents(Event.MOUSEUP); 511 elem.captureEvents(Event.MOUSEUP);
503 } 512 }
504 elem.onmouseup = handler; 513 elem.onmouseup = handler;
505 } else if (type = "mousemove") { 514 } else if (type == "mousemove") {
506 if (elem.captureEvents) { 515 if (elem.captureEvents) {
507 elem.captureEvents(Event.MOUSEMOVE); 516 elem.captureEvents(Event.MOUSEMOVE);
508 } 517 }
509 elem.onmousemove = handler; 518 elem.onmousemove = handler;
510 } else if (type = "keypress") { 519 } else if (type == "keypress") {
511 if (elem.captureEvents) { 520 if (elem.captureEvents) {
512 elem.captureEvents(Event.KEYPRESS); 521 elem.captureEvents(Event.KEYPRESS);
513 } 522 }
514 elem.onkeypress = handler; 523 elem.onkeypress = handler;
515 } else { 524 } else {
516 alert("registerEvent: unknown event type "+type); 525 alert("registerEvent: unknown event type "+type);
517 return false; 526 return false;
518 } 527 }
519 } 528 }
520 return true; 529 return true;
521 } 530 }
522 531
523 function unregisterEvent(type, elem, handler) { 532 function unregisterEvent(type, elem, handler) {
524 // unregister the given event handler from the indicated element 533 // unregister the given event handler from the indicated element
525 if (elem.removeEventListener) { 534 if (elem.removeEventListener) {
526 elem.removeEventListener(type, handler, false); 535 elem.removeEventListener(type, handler, false);
527 } else { 536 } else {
528 if (type = "mousedown") { 537 if (type == "mousedown") {
529 if (elem.releaseEvents) { 538 if (elem.releaseEvents) {
530 elem.releaseEvents(Event.MOUSEDOWN); 539 elem.releaseEvents(Event.MOUSEDOWN);
531 } 540 }
532 elem.onmousedown = null; 541 elem.onmousedown = null;
533 } else if (type = "mouseup") { 542 } else if (type == "mouseup") {
534 if (elem.releaseEvents) { 543 if (elem.releaseEvents) {
535 elem.releaseEvents(Event.MOUSEUP); 544 elem.releaseEvents(Event.MOUSEUP);
536 } 545 }
537 elem.onmouseup = null; 546 elem.onmouseup = null;
538 } else if (type = "mousemove") { 547 } else if (type == "mousemove") {
539 if (elem.releaseEvents) { 548 if (elem.releaseEvents) {
540 elem.releaseEvents(Event.MOUSEMOVE); 549 elem.releaseEvents(Event.MOUSEMOVE);
541 } 550 }
542 elem.onmousemove = null; 551 elem.onmousemove = null;
543 } else if (type = "keypress") { 552 } else if (type == "keypress") {
544 if (elem.releaseEvents) { 553 if (elem.releaseEvents) {
545 elem.releaseEvents(Event.KEYPRESS); 554 elem.releaseEvents(Event.KEYPRESS);
546 } 555 }
547 elem.onkeypress = null; 556 elem.onkeypress = null;
548 } else { 557 } else {
549 alert("unregisterEvent: unknown event type "+type); 558 alert("unregisterEvent: unknown event type "+type);
550 return false; 559 return false;
551 } 560 }
552 } 561 }
553 return true; 562 return true;
554 } 563 }
555 564
556 565