summaryrefslogtreecommitdiffstats
path: root/autocomplete/js/modomevent3.js
diff options
context:
space:
mode:
authorAndreas Unterkircher <unki@netshadow.at>2008-03-27 22:59:06 +0100
committerAndreas Unterkircher <unki@netshadow.at>2008-03-27 22:59:06 +0100
commitaf0be8f9546fb5dec947be33e465bb6d9e85d0a7 (patch)
tree46fa7f026d861e54753e78ac8265563b0ddfca36 /autocomplete/js/modomevent3.js
parent2b589908f4624b0ee41217f21d5b0b7cb383d38c (diff)
issue111, first try of auto completion for tag search box
Signed-off-by: Andreas Unterkircher <unki@netshadow.at>
Diffstat (limited to 'autocomplete/js/modomevent3.js')
-rw-r--r--autocomplete/js/modomevent3.js189
1 files changed, 189 insertions, 0 deletions
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