--- jsfunc.layermenu.js.orig 2005-02-01 18:08:13.000000000 +0100 +++ jsfunc.layermenu.js 2005-07-05 09:49:28.044110144 +0200 @@ -51,14 +51,31 @@ //browsercheck... function GL_checkBrowser(){ this.dom= (document.getElementById); - this.op=this.opera= (navigator.userAgent.indexOf("Opera")>-1); + + // detect version (even if Opera disguises as Mozilla or IE) + if (op = (navigator.userAgent.indexOf("Opera")>-1)) { + switch (parseInt(navigator.userAgent.substr(navigator.userAgent.indexOf("Opera")+6))) { + case 5: + case 6: + this.op5= true; + break; + case 7: + case 8: + this.op7= true; + break; + default: + this.op4= true; + } + } this.konq= (navigator.userAgent.indexOf("Konq")>-1); - this.ie4= (document.all && !this.dom && !this.op && !this.konq); - this.ie5= (document.all && this.dom && !this.op && !this.konq); + this.ie4= (document.all && !this.dom && !op && !this.konq); + this.ie5= (document.all && this.dom && !op && !this.konq); + this.ie6= (this.ie5); this.ns4= (document.layers && !this.dom && !this.konq); - this.ns5= (!document.all && this.dom && !this.op && !this.konq); + this.ns5= (!document.all && this.dom && !op && !this.konq); this.ns6= (this.ns5); - this.bw= (this.ie4 || this.ie5 || this.ns4 || this.ns6 || this.op || this.konq); + this.bw= (this.ie4 || this.ie5 || this.ns4 || this.ns6 || this.konq || op); + return this; } bw= new GL_checkBrowser(); @@ -77,17 +94,18 @@ if (flag) return true; }; function GL_getObj(obj){ -// nest= (!nest)?"":"document."+nest+"."; nest=""; this.el= bw.ie4?document.all[obj]:bw.ns4?eval(nest+"document."+obj):document.getElementById(obj); - this.css= bw.ns4?this.el:this.el.style; + this.css= bw.ns4?this.el:this.el.style; this.ref= bw.ns4?this.el.document:document; - this.x= (bw.ns4||bw.op)?this.css.left:this.el.offsetLeft; - this.y= (bw.ns4||bw.op)?this.css.top:this.el.offsetTop; - this.height= (bw.ie4||bw.ie5||bw.ns6)?this.el.offsetHeight:bw.ns4?this.ref.height:bw.op?this.css.pixelHeight:0; - this.width= (bw.ie4||bw.ie5||bw.ns6)?this.el.offsetWidth:bw.ns4?this.ref.width:bw.op?this.css.pixelWidth:0; + this.x= (bw.ns4||bw.op5)?this.css.left:this.el.offsetLeft; + this.y= (bw.ns4||bw.op5)?this.css.top:this.el.offsetTop; + this.height= (bw.ie4||bw.ie5||bw.ns6||bw.op7)?this.el.offsetHeight:bw.ns4?this.ref.height:bw.op4?this.css.pixelHeight:0; + this.width= (bw.ie4||bw.ie5||bw.ns6||bw.op7)?this.el.offsetWidth:bw.ns4?this.ref.width:bw.op4?this.css.pixelWidth:0; + return this; } + function GL_initLayers() { if(bw.ns4) document.captureEvents(Event.MOUSEMOVE); GL_timeout_func(); @@ -155,8 +173,8 @@ } //Capturing mousemove function GL_getMouse(e) { - GLV_x= (bw.ns4||bw.ns5)?e.pageX:(bw.ie4||bw.op)?event.x:(event.x-2)+document.body.scrollLeft; - GLV_y= (bw.ns4||bw.ns5)?e.pageY:(bw.ie4||bw.op)?event.y:(event.y-2)+document.body.scrollTop; + GLV_x= (bw.ns4||bw.ns5)?e.pageX:(bw.ie4||bw.op4)?event.x:(event.x-2)+document.body.scrollLeft; + GLV_y= (bw.ns4||bw.ns5)?e.pageY:(bw.ie4||bw.op4)?event.y:(event.y-2)+document.body.scrollTop; } function GL_mouseMoveEvaluate(WMid) { if (GLV_gap[WMid] && GLV_currentLayer[WMid]!=null) {