+ \r
+ size = Node._fontSizeNode._rawNode.offsetHeight;\r
+ if( X.Dom.baseFontSize !== size ){\r
+ X.Dom.baseFontSize && X.Dom.asyncDispatch( 0, { type : X.Dom.Event.BASE_FONT_RESIZED, size : size } );\r
+ X.Dom.baseFontSize = size;\r
+ };\r
+ \r
+ }) :\r
+ (function( e ){\r
+ !X.Dom._lock && ( X.Dom._lock = true ) && X.Timer.once( 100, X.Dom._detectFinishResizing );\r
+ return X.Callback.PREVENT_DEFAULT | X.Callback.STOP_PROPAGATION;\r
+ }), \r
+ \r
+ _detectFinishResizing : function (){\r
+ var size = X.Dom._getSize();\r
+ if( X.Dom.w !== size[ 0 ] || X.Dom.h !== size[ 1 ] ){\r
+ X.Dom.w = size[ 0 ];\r
+ X.Dom.h = size[ 1 ];\r
+ X.Timer.once( 100, X.Dom._detectFinishResizing );\r
+ } else {\r
+ X.Dom.asyncDispatch( 0, { type : X.Dom.Event.VIEW_RESIZED, w : X.Dom.w, h : X.Dom.h } );\r
+ X.Dom._lock = false;\r
+ };\r
+ },\r
+\r
+ _init : function(){\r
+ var s, size, h, r;\r
+ if( X.Dom.Event.DOM_PRE_INIT <= X.Dom.readyState ) return X.Callback.UN_LISTEN;\r
+ if( s = X.Dom._script ){\r
+ s.parentNode.removeChild( s );\r
+ s.onreadystatechange = X.emptyFunction;\r
+ s.onreadystatechange = null;\r
+ delete X.Dom._script;\r
+ };\r
+ delete X.Dom._init;\r
+ X.Dom.readyState = X.Dom.Event.DOM_PRE_INIT;\r
+ \r
+ /* if( X.UA.IE ) */\r
+ X.Dom._root = ( document.compatMode !== 'CSS1Compat' ? document.body : document.documentElement );\r
+\r
+ h = Node._html = document.documentElement ?\r
+ new Node( document.documentElement ) :\r
+ document.getElementsByTagName ?\r
+ new Node( document.getElementsByTagName( 'html' )[ 0 ] ) :\r
+ document.all ?\r
+ new Node( document.all.tags( 'html' )[ 0 ] ) :\r
+ null;\r
+ \r
+ r = Node.root = new Node( document.body );\r
+ h.appendTo = h.appendToRoot = h.before = h.after = h.clone = h.remove = h.destroy = h.prevNode = h.nextNode = h.createText = h.append = h.appendAt = h.empty = h.html = h.text =\r
+ r.appendTo = r.appendToRoot = r.before = r.after = r.clone = r.remove = r.destroy = r.prevNode = r.nextNode = new Function( 'return this' );\r
+ \r
+ r._root = h._root = r;\r
+ r.parent = h;\r
+ h._xnodes = [ r ];\r
+\r
+ X.Dom.listenOnce( X.Dom.Event.DOM_PRE_INIT, function(){\r
+ X.Dom.readyState = X.Dom.Event.DOM_BUILDER_COMPLETE;\r
+ !X.Dom._useBuilder && X.Dom.asyncDispatch( 0, { type : X.Dom.Event.DOM_BUILDER_COMPLETE } );\r
+ } );\r
+ \r
+ X.Dom.listenOnce( X.Dom.Event.DOM_BUILDER_COMPLETE, function(){\r
+ X.Dom.readyState = X.Dom.Event.DOM_INIT;\r