+// DOMMoseScroll\r
+if( X.UA.Gecko && window.MouseScrollEvent ){\r
+ if( 2 <= X.UA.Gecko || ( 1.9 < X.UA.Gecko && 1 <= X.UA.GeckoPatch ) ){ // Gecko 1.9.1+ (firefox3.5+)\r
+ console.log( 'mousewheel <= MozMousePixelScroll' );\r
+ X.Dom.Event.Rename[ 'mousewheel' ] = 'MozMousePixelScroll';\r
+ } else\r
+ if( 0.9 < X.UA.Gecko && 7 <= X.UA.GeckoPatch ){ // Gecko 0.9.7+ (NN6.2+?)\r
+ console.log( 'mousewheel <= DOMMouseScroll' );\r
+ X.Dom.Event.Rename[ 'mousewheel' ] = 'DOMMouseScroll';\r
+ };\r
+};\r
+\r
+if( window.onwebkitanimationend !== undefined && window.onanimationend === undefined ){\r
+ console.log( 'animationend <= webkitAnimationEnd' );\r
+ X.Dom.Event.Rename[ 'animationend' ] = 'webkitAnimationEnd';\r
+ X.Dom.Event.Rename[ 'animationstart' ] = 'webkitAnimationStart';\r
+ X.Dom.Event.Rename[ 'animationiteration' ] = 'webkitAnimationIteration';\r
+} else\r
+if( window.onoanimationend !== undefined && window.onanimationend === undefined ){\r
+ console.log( 'animationend <= oAnimationEnd' );\r
+ X.Dom.Event.Rename[ 'animationend' ] = 'oAnimationEnd';\r
+ X.Dom.Event.Rename[ 'animationstart' ] = 'oAnimationStart';\r
+ X.Dom.Event.Rename[ 'animationiteration' ] = 'oAnimationIteration';\r
+} else\r
+/*\r
+if( window.onmozanimationend !== undefined && window.onanimationend === undefined ){\r
+ X.Dom.Event.Rename[ 'animationend' ] = 'mozAnimationEnd';\r
+ X.Dom.Event.RenameTo[ 'mozAnimationEnd' ] = 'animationend';\r
+ X.Dom.Event.Rename[ 'animationstart' ] = 'mozAnimationStart';\r
+ X.Dom.Event.RenameTo[ 'mozAnimationStart' ] = 'animationstart';\r
+ X.Dom.Event.Rename[ 'animationiteration' ] = 'mozAnimationIteration';\r
+ X.Dom.Event.RenameTo[ 'mozAnimationIteration' ] = 'animationiteration';\r
+} else*/\r
+if( document.documentElement && document.documentElement.style.msAnimation !== undefined && document.documentElement.style.animation === undefined ){ //document.documentElement.style.msAnimation \r
+ console.log( 'animationend <= MSAnimationEnd' );\r
+ X.Dom.Event.Rename[ 'animationend' ] = 'MSAnimationEnd';\r
+ X.Dom.Event.Rename[ 'animationstart' ] = 'MSAnimationStart';\r
+ X.Dom.Event.Rename[ 'animationiteration' ] = 'MSAnimationIteration';\r
+};\r
+// https://developer.mozilla.org/en-US/docs/Web/Events/transitionend\r
+// chrome1+, firefox4+, IE10+, Opera10.5+, Safari3.2+, Android2.1+\r
+if( window.onwebkittransitionend !== undefined && window.ontransitionend === undefined ){\r
+ console.log( 'transitionend <= webkitTransitionEnd' );\r
+ X.Dom.Event.Rename[ 'transitionend' ] = 'webkitTransitionEnd';\r
+} else\r
+if( window.onotransitionend !== undefined && window.ontransitionend === undefined ){\r
+ if( X.UA.Opera < 12 ){\r
+ console.log( 'transitionend <= oTransitionEnd|ver.' + X.UA.Opera );\r
+ X.Dom.Event.Rename[ 'transitionend' ] = 'oTransitionEnd';\r
+ } else {\r
+ console.log( 'transitionend <= otransitionEnd|ver.' + X.UA.Opera );\r
+ X.Dom.Event.Rename[ 'transitionend' ] = 'otransitionEnd';\r
+ };\r
+} else\r
+if( window.onmoztransitionend !== undefined && window.ontransitionend === undefined ){\r
+ console.log( 'transitionend <= mozTransitionEnd' );\r
+ X.Dom.Event.Rename[ 'transitionend' ] = 'mozTransitionEnd';\r
+};\r
+\r
+\r
+if( navigator.msPointerEnabled && !navigator.pointerEnabled ){\r
+ console.log( 'pointerdown <= MSPointerDown' );\r
+ X.Dom.Event.Rename[ 'pointerdown' ] = 'MSPointerDown';\r
+ X.Dom.Event.Rename[ 'pointerup' ] = 'MSPointerUp';\r
+ X.Dom.Event.Rename[ 'pointermove' ] = 'MSPointerMove';\r
+ X.Dom.Event.Rename[ 'pointercancel' ] = 'MSPointerCancel';\r
+};\r
+\r
+(function( rename, renameTo ){\r
+ for( var k in rename ){\r
+ renameTo[ rename[ k ] ] = k;\r
+ };\r
+})( X.Dom.Event.Rename, X.Dom.Event.RenameTo );\r
+\r
+X.Dom.Node.prototype.listen = function( type /* , arg1, arg2, arg3[ listener || ( context + function ) || function ][ arguments ] */ ){\r
+ if( this._xnodeType === 0 || this._xnodeType === 3 ) return this;\r