Mercurial > hg > digilib-old
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 |