--- zogiLib/js/Attic/js_lib.js 2004/06/02 17:32:54 1.2 +++ zogiLib/js/Attic/js_lib.js 2004/08/22 14:54:42 1.7 @@ -14,7 +14,7 @@ You should have received a copy of the G along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA -Authors: ROC 27.05.2004 +Authors: ROC 03.06.2004 first version by Christian Luginbuehl, 01.05.2003 Changed for digiLib in Zope by DW 24.03.2004 */ @@ -46,8 +46,10 @@ if ((! document.cssonly && document.laye var vers = navigator.appVersion.split('MSIE '); vers = vers[vers.length - 1]; browserType.versIE = getInt(vers); + browserType.isIE = navigator.userAgent.indexOf('MSIE') >= 0; browserType.isMac = navigator.platform.indexOf('Mac') >= 0; browserType.isWin = navigator.platform.indexOf('Win') >= 0; + browserType.isN4 = (navigator.userAgent.indexOf('Mozilla/4.') >= 0) && ! browserType.isIE; browserType.isIEWin = browserType.versIE > 0 && browserType.isWin; if (navigator.appVersion.indexOf('MSIE') < 0 || ! browserType.isMac || browserType.versIE >= 5) { browserType.doDHTML = true; @@ -280,6 +282,9 @@ function setParameter(name, value) { function getAllParameters(detail) { // returns a string of all parameters in query format + if (! detail) { + detail = 10; + } var params = new Array(); for ( param in dlParams ) { if ((dlParams[param].detail <= detail)&&(dlParams[param].hasValue)) { @@ -318,7 +323,6 @@ function getElement(tagid, quiet) { e = document.all[tagid]; } else if (document.layers) { e = document.layers[tagid]; - //alert("e: "+e+" layers? "+tagid); } if (e) { return e; @@ -360,7 +364,7 @@ function getElementPosition(elem) { } else if (defined(elem.x)) { x = elem.x; y = elem.y; - } else if (document.layers) { + } else if (defined(elem.pageX)) { x = elem.pageX; y = elem.pageY; } else { @@ -376,7 +380,10 @@ function getElementSize(elem) { if (defined(elem.offsetWidth)) { width = elem.offsetWidth; height = elem.offsetHeight; - } else if (document.layers) { + } else if (defined(elem.width)) { + width = elem.width; + height = elem.height; + } else if (defined(elem.clip.width)) { width = elem.clip.width; height = elem.clip.height; } else { @@ -396,12 +403,10 @@ function getElementRect(elem) { function moveElement(elem, rect) { // moves and sizes the element - //alert("move: "+elem+" "+rect); if (elem.style) { if (defined(rect.x)) { elem.style.left = Math.round(rect.x) + "px"; elem.style.top = Math.round(rect.y) + "px"; - //alert(elem.id+"move: "+rect.x+", "+rect.y+" = "+elem.style.left+", "+elem.style.top); } if (defined(rect.width)) { elem.style.width = Math.round(rect.width) + "px"; @@ -431,8 +436,14 @@ function showElement(elem, show) { } else { elem.style.visibility = "hidden"; } + } else if (defined(elem.visibility)) { + if (show) { + elem.visibility = "show"; + } else { + elem.visibility = "hide"; + } } else { - alert("showelement: no style property!"); + alert("showelement: no style nor layer property!"); } return true; } @@ -451,7 +462,7 @@ function evtPosition(evt) { y = parseInt(evt.pageY); } else if (defined(evt.clientX)) { x = parseInt(document.body.scrollLeft+evt.clientX); - y = parseInt(document.body.scrollLeft+evt.clientY); + y = parseInt(document.body.scrollTop+evt.clientY); } else { alert("evtPosition: don't know how to deal with "+evt); } @@ -463,6 +474,9 @@ function registerMouseDown(elem, handler if (elem.addEventListener) { elem.addEventListener("mousedown", handler, false); } else { + if (elem.captureEvents) { + elem.captureEvents(Event.MOUSEDOWN); + } elem.onmousedown = handler; } return true; @@ -473,16 +487,48 @@ function unregisterMouseDown(elem, handl if (elem.removeEventListener) { elem.removeEventListener("mousedown", handler, false); } else { + if (elem.releaseEvents) { + elem.releaseEvents(Event.MOUSEDOWN); + } elem.onmousedown = null; } return true; } +function registerMouseUp(elem, handler) { + // register a mouse up event handler on the indicated element + if (elem.addEventListener) { + elem.addEventListener("mouseup", handler, false); + } else { + if (elem.captureEvents) { + elem.captureEvents(Event.MOUSEUP); + } + elem.onmouseup = handler; + } + return true; +} + +function unregisterMouseUp(elem, handler) { + // unregister the mouse up event handler + if (elem.removeEventListener) { + elem.removeEventListener("mouseup", handler, false); + } else { + if (elem.releaseEvents) { + elem.releaseEvents(Event.MOUSEUP); + } + elem.onmouseup = null; + } + return true; +} + function registerMouseMove(elem, handler) { // register a mouse move event handler on the indicated element if (elem.addEventListener) { elem.addEventListener("mousemove", handler, false); } else { + if (elem.captureEvents) { + elem.captureEvents(Event.MOUSEMOVE); + } elem.onmousemove = handler; } return true; @@ -493,6 +539,9 @@ function unregisterMouseMove(elem, handl if (elem.removeEventListener) { elem.removeEventListener("mousemove", handler, false); } else { + if (elem.releaseEvents) { + elem.releaseEvents(Event.MOUSEMOVE); + } elem.onmousemove = null; } return true; @@ -503,6 +552,9 @@ function registerKeyDown(handler) { if ( document.addEventListener ) { this.document.addEventListener('keypress', handler, false); } else { + if (elem.captureEvents) { + elem.captureEvents(Event.MOUSEDOWN); + } this.document.onkeypress = handler } return true;