From af0be8f9546fb5dec947be33e465bb6d9e85d0a7 Mon Sep 17 00:00:00 2001 From: Andreas Unterkircher Date: Thu, 27 Mar 2008 22:59:06 +0100 Subject: issue111, first try of auto completion for tag search box Signed-off-by: Andreas Unterkircher --- autocomplete/js/modomevent3.js | 189 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 189 insertions(+) create mode 100644 autocomplete/js/modomevent3.js (limited to 'autocomplete/js/modomevent3.js') diff --git a/autocomplete/js/modomevent3.js b/autocomplete/js/modomevent3.js new file mode 100644 index 0000000..7a548b3 --- /dev/null +++ b/autocomplete/js/modomevent3.js @@ -0,0 +1,189 @@ +// +// This script was created +// by Mircho Mirev +// mo /mo@momche.net/ +// +// :: feel free to use it BUT +// :: if you want to use this code PLEASE send me a note +// :: and please keep this disclaimer intact +// + +//define the cEvent object +cDomEvent = { + e : null, + type : '', + button : 0, + key : 0, + x : 0, + y : 0, + pagex : 0, + pagey : 0, + target : null, + from : null, + to : null +} + +cDomEvent.init = function( e ) +{ + if( window.event ) e = window.event + this.e = e + this.type = e.type + this.button = ( e.which ) ? e.which : e.button + this.key = ( e.which ) ? e.which : e.keyCode + this.target = ( e.srcElement ) ? e.srcElement : e.originalTarget + this.currentTarget = ( e.currentTarget ) ? e.currentTarget : e.srcElement + this.from = ( e.originalTarget ) ? e.originalTarget : ( e.fromElement ) ? e.fromElement : null + this.to = ( e.currentTarget ) ? e.currentTarget : ( e.toElement ) ? e.toElement : null + this.x = ( e.layerX ) ? e.layerX : ( e.offsetX ) ? e.offsetX : null + this.y = ( e.layerY ) ? e.layerY : ( e.offsetY ) ? e.offsetY : null + this.screenX = e.screenX + this.screenY = e.screenY + this.pageX = ( e.pageX ) ? e.pageX : e.x + document.body.scrollLeft + this.pageY = ( e.pageY ) ? e.pageY : e.y + document.body.scrollTop +} + +cDomEvent.getEvent = function( e ) +{ + if( window.event ) e = window.event + return { + e: e, + type: e.type, + button: ( e.which ) ? e.which : e.button, + key: ( e.which ) ? e.which : e.keyCode, + target: ( e.srcElement ) ? e.srcElement : e.originalTarget, + currentTarget: ( e.currentTarget ) ? e.currentTarget : e.srcElement, + from: ( e.originalTarget ) ? e.originalTarget : ( e.fromElement ) ? e.fromElement : null, + to: ( e.currentTarget ) ? e.currentTarget : ( e.toElement ) ? e.toElement : null, + x: ( e.layerX ) ? e.layerX : ( e.offsetX ) ? e.offsetX : null, + y: ( e.layerY ) ? e.layerY : ( e.offsetY ) ? e.offsetY : null, + screenX: e.screenX, + screenY: e.screenY, + pageX: ( e.pageX ) ? e.pageX : ( e.clientX + ( document.documentElement.scrollLeft || document.body.scrollLeft ) ), + pageY: ( e.pageY ) ? e.pageY : ( e.clientY + ( document.documentElement.scrollTop || document.body.scrollTop ) ) + } +} + +cDomEvent.cancelEvent = function( e ) +{ + if( e.preventDefault ) + { + e.preventDefault() + } + e.returnValue = false + e.cancelBubble = true + return false +} + +cDomEvent.addEvent = function( hElement, sEvent, handler, bCapture ) +{ + if( hElement.addEventListener ) + { + hElement.addEventListener( sEvent, handler, bCapture ) + return true + } + else if( hElement.attachEvent ) + { + return hElement.attachEvent( 'on'+sEvent, handler ) + } + else if( document.all || hElement.captureEvents ) + { + if( hElement.captureEvents ) eval( 'hElement.captureEvents( Event.'+sEvent.toUpperCase()+' )' ) + eval( 'hElement.on'+sEvent+' = '+handler ) + } + else + { + alert('Not implemented yet!') + } +} + +cDomEvent.encapsulateEvent = function( hHandler ) +{ + return function ( hEvent ) + { + hEvent = cDomEvent.getEvent( hEvent ) + hHandler.call( hEvent.target, hEvent.e ) + } +} + +cDomEvent.addEvent2 = function( hElement, sEvent, handler, bCapture ) +{ + if( hElement ) + { + if( hElement.addEventListener ) + { + hElement.addEventListener( sEvent, cDomEvent.encapsulateEvent( handler ), bCapture ) + return true + } + else if( hElement.attachEvent ) + { + return hElement.attachEvent( 'on'+sEvent, cDomEvent.encapsulateEvent( handler ) ) + } + else + { + alert('Not implemented yet!') + } + } + else + { + //alert( 'wrong' ) + } +} + +cDomEvent.addCustomEvent2 = function( hElement, sEvent, handler ) +{ + if( hElement ) + { + hElement[ sEvent ] = handler + } + else + { + //alert( 'wrong' ) + } +} + +cDomEvent.removeEvent = function( hElement, sEvent, handler, bCapture ) +{ + if( hElement.addEventListener ) + { + hElement.removeEventListener( sEvent, handler, bCapture ) + return true + } + else if( hElement.attachEvent ) + { + return hElement.detachEvent( 'on'+sEvent, handler ) + } + else if( document.all || hElement.captureEvents ) + { + eval( 'hElement.on'+sEvent+' = null' ) + } + else + { + alert('Not implemented yet!') + } +} + + +//Mouse button mapper object +function MouseButton() +{ + if( document.layers ) + { + this.left = 1 + this.middle = 2 + this.right = 3 + } + else if( document.all ) + { + this.left = 1 + this.middle = 4 + this.right = 2 + } + else //hopefully this is mozilla case + { + this.left = 0 + this.middle = 1 + this.right = 2 + } +} + +var MB = new MouseButton() \ No newline at end of file -- cgit v1.2.3-18-g5258