X_Node_strictElmCreation = !X.UA.MacIE && X.UA.IE5678,// && !X.UA.MacIE;\r
\r
X_Node_useDocumentFragment = document.createDocumentFragment && ( !X.UA.IE || 5.5 <= X.UA.IE ) && document.createDocumentFragment(),\r
-\r
+ \r
+ X_Node_newByTag = false,\r
+ \r
+ X_Node_newByText = false,\r
+ \r
+ X_Node_outerXNode = null,\r
/*\r
* Node( rawElement | rawTextnode | htmlString | textString )\r
*/ \r
- Node = X.Dom.Node = X.EventDispatcher.inherits(\r
+ Node = X.Node = X.EventDispatcher.inherits(\r
'XDomNode',\r
X.Class.POOL_OBJECT,\r
{\r
_id : null,\r
_className : '',\r
\r
- _attrs : null, // X_Node_Attr\r
+ _attrs : null, // see X_Node_Attr\r
_newAttrs : null,\r
- _attrText : '', // X_Node_Attr.objToAttrText が必要な場合は false が入っている\r
+ _attrText : '', // X_Node_Attr_objToAttrText が必要な場合は false が入っている\r
\r
- _css : null, // X.Dom.Style\r
+ _css : null, // see X_Node_CSS\r
_cssText : null,\r
\r
_fontSize : 0,\r
* TODO Node の継承ができない!\r
*/\r
Constructor : function( v ){\r
- var css, xnodes, xnode, parent, uid = Node._chashe.length;\r
+ var css, xnodes, xnode, parent, uid = X_Node_CHASHE.length;\r
\r
- if( Node._newByTag ){\r
- Node._newByTag = false;\r
+ if( X_Node_newByTag ){\r
+ X_Node_newByTag = false;\r
this._tag = v.toUpperCase();\r
this._xnodeType = 1;\r
this._state = X_Node_State.DISPLAY_INLINE; // todo\r
css = arguments[ 2 ];\r
css && this[ X.Type.isString( css ) ? 'cssText' : 'css' ]( css );\r
} else\r
- if( Node._newByText ){\r
- Node._newByText = false;\r
+ if( X_Node_newByText ){\r
+ X_Node_newByText = false;\r
this._text = v;\r
this._xnodeType = 3;\r
this._state = X_Node_State.DISPLAY_INLINE;\r
} else {\r
- if( 1 < arguments.length ) return new X.Dom.NodeList( arguments );\r
- if( X.Type.isArray( v ) && v.length ) return new X.Dom.NodeList( v );\r
- //if( !this || this.append !== Node.prototype.append ){\r
+ if( 1 < arguments.length ) return new X_NodeList( arguments );\r
+ if( X.Type.isArray( v ) && v.length ) return new X_NodeList( v );\r
+ //if( !this || this.append !== X_Node_append ){\r
// return new Node( v );\r
//};\r
switch( X_Node_getType( v ) ){\r
break;\r
case X_Node_TYPE.HTML_STRING :\r
case X_Node_TYPE.STRING :\r
- if( xnodes = X_HtmlParser_parse( v, true ) && 1 < xnodes.length ) return new X.Dom.NodeList( xnodes );\r
+ if( xnodes = X_HtmlParser_parse( v, true ) && 1 < xnodes.length ) return new X_NodeList( xnodes );\r
if( xnodes.length ) return xnodes[ 0 ];\r
- return Node.none;\r
+ return X_Node_none;\r
case X_Node_TYPE.IMAGE :\r
if( xnode = X_Node_getXNode( v ) ) return xnode;\r
this._rawObject = v;\r
this._state = X_Node_State.DISPLAY_BLOCK;\r
break; */\r
default :\r
- if( Node.none ) return Node.none;\r
+ if( X_Node_none ) return X_Node_none;\r
return;\r
};\r
};\r
\r
- Node._chashe[ this._uid = uid ] = this;\r
- }\r
+ X_Node_CHASHE[ this._uid = uid ] = this;\r
+ },\r
+ \r
+ create : X_Node_create,\r
+ \r
+ createAt : X_Node_createAt,\r
+ \r
+ createText : X_Node_createText,\r
+ \r
+ createTextAt : X_Node_createTextAt,\r
+ \r
+ clone : X_Node_clone,\r
+ \r
+ append : X_Node_append,\r
+ \r
+ appendAt : X_Node_appendAt,\r
+ \r
+ appendTo : X_Node_appendTo,\r
+ \r
+ appendToRoot : X_Node_appendToRoot,\r
+ \r
+ before : X_Node_before, // remove\r
+ \r
+ prevNode : X_Node_before, // -> prev\r
+ \r
+ after : X_Node_after, // remove\r
+ \r
+ nextNode : X_Node_after, // -> next\r
+ \r
+ replace : X_Node_replace, // remove\r
+ \r
+ swap : X_Node_replace,\r
+ \r
+ remove : X_Node_remove,\r
+ \r
+ empty : X_Node_empty,\r
+ \r
+ destroy : X_Node_destroy, // -> kill && kill event\r
+ \r
+ contains : X_Node_contains,\r
+ \r
+ getChildAt : X_Node_getChildAt,\r
+ \r
+ firstChild : X_Node_firstChild,\r
+ \r
+ lastChild : X_Node_lastChild,\r
+ \r
+ getOrder : X_Node_getOrder,\r
+ \r
+ className : X_Node_className,\r
+ addClass : X_Node_addClass,\r
+ removeClass : X_Node_removeClass,\r
+ toggleClass : X_Node_toggleClass,\r
+ hasClass : X_Node_hasClass,\r
+ \r
+ html : X_Node_html,\r
+ text : X_Node_text,\r
+ call : X_Node_call,\r
+ each : X_Node_each\r
+ \r
}\r
);\r
\r
if( v === window ) return X_Node_TYPE.WINDOW;\r
if( v === document ) return X_Node_TYPE.DOCUMENT;\r
if( v.constructor === Node ) return X_Node_TYPE.XNODE;\r
- if( v.constructor === X.Dom.NodeList ) return X_Node_TYPE.XNODE_LIST;\r
+ if( v.constructor === X_NodeList ) return X_Node_TYPE.XNODE_LIST;\r
if( X.Type.isHTMLElement( v ) ) return X_Node_TYPE.RAW_HTML;\r
if( v.nodeType === 3 ) return X_Node_TYPE.RAW_TEXT;\r
if( X.Type.isImage( v ) ) return X_Node_TYPE.IMAGE;\r
// fake TextNode too.\r
if( X_UA_DOM.IE4 ){\r
uid = v.getAttribute( 'UID' );\r
- return uid && Node._chashe[ uid ];\r
+ return uid && X_Node_CHASHE[ uid ];\r
};\r
- return v.UID && Node._chashe[ v.UID ];\r
+ return v.UID && X_Node_CHASHE[ v.UID ];\r
case X_Node_TYPE.WINDOW :\r
return X.ViewPort;\r
case X_Node_TYPE.DOCUMENT :\r
return X_ViewPort_document;\r
case X_Node_TYPE.RAW_TEXT :\r
- if( v.UID ) return Node._chashe[ v.UID ];\r
- for( chashe = Node._chashe, i = chashe.length; i; ){\r
- if( ( xnode = Node._chashe[ --i ] ) && ( xnode._rawObject === v ) ) return xnode;\r
+ if( v.UID ) return X_Node_CHASHE[ v.UID ];\r
+ for( chashe = X_Node_CHASHE, i = chashe.length; i; ){\r
+ if( ( xnode = X_Node_CHASHE[ --i ] ) && ( xnode._rawObject === v ) ) return xnode;\r
};\r
};\r
};\r
\r
\r
-Node.create = function( tag, opt_attrs, opt_css ){\r
+X.Doc.create = Node.create = function( tag, opt_attrs, opt_css ){\r
var list, i;\r
switch( X_Node_getType( tag ) ){\r
case X_Node_TYPE.STRING :\r
- Node._newByTag = true;\r
+ X_Node_newByTag = true;\r
return new Node( tag, opt_attrs, opt_css );\r
case X_Node_TYPE.HTML_STRING :\r
list = X_HtmlParser_parse( tag, true );\r
return list[ 0 ];\r
};\r
};\r
-Node.createText = function( text ){\r
- Node._newByText = true;\r
+X.Doc.createText = Node.createText = function( text ){\r
+ X_Node_newByText = true;\r
return new Node( text );\r
};\r
\r
\r
-Node.getRoot = function( xnode ){\r
+function X_Node_getRoot( xnode ){\r
return X_ViewPort_document;\r
- //return xNode._body._rawObject.documentElement ? node : node.ownerDocument || node.document;\r
+ //return X_Node_body._rawObject.documentElement ? node : node.ownerDocument || node.document;\r
};\r
// XMLかどうかを判別する\r
-Node.isXmlDocument =\r
+var X_Node_isXmlDocument =\r
X_UA_DOM.IE4 ?\r
X.emptyFunction :\r
(function( root ){\r
if( X.Type.isBoolean( root.isXML ) ) return root.isXML;\r
return root.isXML = root._rawObject.createElement( 'p' ).tagName !== root._rawObject.createElement( 'P' ).tagName;\r
- });\r
-\r
-Node._chashe = [];\r
-Node.none = Node._chashe[ 0 ] = new Node();\r
-Node._html = null; // = Node._chashe[ 1 ] <html>\r
-Node._head = null; // = Node._chashe[ 2 ] <head>\r
-Node._body = null; // = Node._chashe[ 3 ] <body>\r
-Node._systemNode = null; // = Node._chashe[ ? ]\r
-\r
-Node._reserveRemoval = [];\r
-\r
-if( X_UA_DOM.IE4 ){\r
- Node.prototype._ie4getRawNode = function(){\r
- var elm = this._rawObject;\r
+ }),\r
+ X_Node_CHASHE = [],\r
+ X_Node_none = X_Node_CHASHE[ 0 ] = new Node(),\r
+ X_Node_html, // = X_Node_CHASHE[ 1 ] <html>\r
+ X_Node_head, // = X_Node_CHASHE[ 2 ] <head>\r
+ X_Node_body, // = X_Node_CHASHE[ 3 ] <body>\r
+ X_Node_systemNode, // = X_Node_CHASHE[ ? ]\r
+ X_Node_fontSizeNode,\r
+ X_Node_reserveRemoval = [];\r
+\r
+\r
+var X_Node__ie4getRawNode = X_UA_DOM.IE4 && function ( that ){\r
+ var elm = that._rawObject;\r
return elm ||\r
- ( ( elm = document.all[ 'ie4uid' + this._uid ] ) && ( this._rawObject = elm ) ) ||\r
- ( this._id && ( elm = document.all[ this._id ] ) ) && ( this._rawObject = elm );\r
+ ( ( elm = document.all[ 'ie4uid' + that._uid ] ) && ( that._rawObject = elm ) ) ||\r
+ ( that._id && ( elm = document.all[ that._id ] ) ) && ( that._rawObject = elm );\r
};\r
-};\r
\r
\r
/* --------------------------------------\r
* Create\r
*/\r
-Node.prototype.create = function( tag, opt_attrs, opt_css ){\r
+function X_Node_create( tag, opt_attrs, opt_css ){\r
var xnode;\r
if( this._xnodeType !== 1 ) return;\r
if( !this._xnodes ) this._xnodes = [];\r
\r
xnode.parent = this;\r
this._xnodes[ this._xnodes.length ] = xnode;\r
- this._root && this._reserveUpdate();\r
+ this._root && X_Node_reserveUpdate();\r
return xnode;\r
};\r
-Node.prototype.createAt = function( index, tag, opt_attrs, opt_css ){\r
+function X_Node_createAt( index, tag, opt_attrs, opt_css ){\r
var xnode = Node.create( tag, opt_attrs, opt_css );\r
this.appendAt( index, xnode );\r
return xnode;\r
/* --------------------------------------\r
* CreateText\r
*/\r
-Node.prototype.createText = function( text ){\r
+function X_Node_createText( text ){\r
var xnode;\r
if( this._xnodeType !== 1 ) return;\r
if( !this._xnodes ) this._xnodes = [];\r
\r
- Node._newByText = true;\r
+ X_Node_newByText = true;\r
xnode = new Node( text );\r
xnode.parent = this;\r
\r
- this._root && this._reserveUpdate();\r
+ this._root && X_Node_reserveUpdate();\r
this._xnodes[ this._xnodes.length ] = xnode;\r
return xnode;\r
};\r
-Node.prototype.createTextAt = function( index, text ){\r
+function X_Node_createTextAt( index, text ){\r
var xtext = Node.createText( text );\r
this.appendAt( index, xtext );\r
return xtext;\r
* http://d.hatena.ne.jp/think49/20110724/1311472811\r
* http://d.hatena.ne.jp/uupaa/20100508/1273299874\r
*/\r
-Node.prototype.clone = function( opt_clone_children ){\r
+function X_Node_clone( opt_clone_children ){\r
var xnode, xnodes, i, l;\r
switch( this._xnodeType ){\r
case 1 :\r
- Node._newByTag = true;\r
+ X_Node_newByTag = true;\r
xnode = new Node( this._tag, X_Object_clone( this._attrs ), X_Object_clone( this._css ) )\r
.attr( { 'id' : this._id } )\r
.className( this._className );\r
};\r
return xnode;\r
case 3 :\r
- Node._newByText = true;\r
+ X_Node_newByText = true;\r
xnode = new Node( this._text );\r
return xnode;\r
\r
* Node\r
* HtmlElement の場合は内部使用専用 そのため event の破棄等しない\r
*/\r
-Node.prototype.append = function( v ){\r
+function X_Node_append( v ){\r
var i, l, xnodes, frg;\r
if( this._xnodeType !== 1 ) return;\r
\r
\r
//};\r
};// else\r
- //if( ( i = Node._reserveRemoval.indexOf( v ) ) !== -1 ){\r
+ //if( ( i = X_Node_reserveRemoval.indexOf( v ) ) !== -1 ){\r
// if( !this._state ) alert( 'xnode already destroyed!' );\r
- // Node._reserveRemoval.splice( i, 1 );\r
+ // X_Node_reserveRemoval.splice( i, 1 );\r
//};\r
break;\r
default :\r
\r
v.parent = this;\r
xnodes[ xnodes.length ] = v;\r
- this._root && this._reserveUpdate();\r
+ this._root && X_Node_reserveUpdate();\r
return this;\r
};\r
\r
\r
-Node.prototype.appendAt = function( start, v ){\r
+function X_Node_appendAt( start, v ){\r
var xnodes, l, i;\r
\r
if( this._xnodeType !== 1 ) return this;\r
\r
//};\r
};// else\r
- //if( ( i = Node._reserveRemoval.indexOf( v ) ) !== -1 ){\r
+ //if( ( i = X_Node_reserveRemoval.indexOf( v ) ) !== -1 ){\r
// if( !this._state ) alert( 'xnode already destroyed!' );\r
- // Node._reserveRemoval.splice( i, 1 );\r
+ // X_Node_reserveRemoval.splice( i, 1 );\r
//};\r
break;\r
default :\r
\r
v.parent = this;\r
this._xnodes.splice( start, 0, v );\r
- this._root && this._reserveUpdate();\r
+ this._root && X_Node_reserveUpdate();\r
return this;\r
};\r
\r
-Node.prototype.appendTo = function( parent, opt_index ){\r
+function X_Node_appendTo( parent, opt_index ){\r
switch( X_Node_getType( parent ) ){\r
case X_Node_TYPE.RAW_HTML :\r
parent = new Node( parent );\r
return this;\r
};\r
\r
-Node.prototype.appendToRoot = function( opt_index ){\r
- opt_index === undefined ? Node._body.append( this ) : Node._body.appendAt( opt_index, this );\r
+function X_Node_appendToRoot( opt_index ){\r
+ opt_index === undefined ? X_Node_body.append( this ) : X_Node_body.appendAt( opt_index, this );\r
return this;\r
};\r
\r
/* --------------------------------------\r
* Before , After, Replace\r
*/\r
-Node.prototype.before = Node.prototype.prevNode = function( v ){\r
+function X_Node_before( v ){\r
var parent = this.parent, xnodes, i, l, start;\r
\r
// getter\r
return this;\r
};\r
\r
-Node.prototype.after = Node.prototype.nextNode = function( v ){\r
+function X_Node_after( v ){\r
var parent = this.parent, xnodes, i, l, start;\r
\r
// getter\r
return this;\r
};\r
\r
-Node.prototype.replace = function( v ){\r
+function X_Node_replace( v ){\r
if( !this.parent ) return this;\r
return arguments.length === 1 ? this.before( v ).remove() : this.before.apply( this, arguments ).remove();\r
};\r
/* --------------------------------------\r
* Remove\r
*/\r
-Node.prototype.remove = function(){\r
+function X_Node_remove(){\r
var parent = this.parent;\r
\r
if( !parent ) return this;\r
\r
parent._xnodes.splice( parent._xnodes.indexOf( this ), 1 );\r
if( this._root ){\r
- Node._reserveRemoval[ Node._reserveRemoval.length ] = this;\r
- this._reserveUpdate();\r
+ X_Node_reserveRemoval[ X_Node_reserveRemoval.length ] = this;\r
+ X_Node_reserveUpdate();\r
};\r
delete this.parent;\r
delete this._root;\r
return this;\r
};\r
\r
-Node.prototype.empty = function(){\r
+function X_Node_empty(){\r
var xnodes = this._xnodes, i;\r
if( xnodes && ( i = xnodes.length ) ){\r
for( ; i; ){\r
/* --------------------------------------\r
* destory\r
*/\r
-Node._destroyChildFlag = false; // TODO\r
+// Node._destroyChildFlag = false; // TODO\r
\r
-Node.prototype.destroy = function( isChild ){\r
+function X_Node_destroy( isChild ){\r
var xnodes = this._xnodes, i, elm;\r
\r
if( !this._state ) return;\r
\r
- elm = this._rawObject || this._ie4getRawNode && this._ie4getRawNode();\r
+ elm = this._rawObject || X_UA_DOM.IE4 && X_Node__ie4getRawNode( this );\r
\r
if( xnodes && ( i = xnodes.length ) ){\r
//for( ; i; ){\r
};\r
elm && this._listeners && this.unlisten(); // イベントの退避\r
\r
- delete Node._chashe[ this._uid ];\r
+ delete X_Node_CHASHE[ this._uid ];\r
delete this._state;\r
\r
if( this._root ){\r
!isChild && this.remove();\r
} else {\r
this.parent && this.parent._xnodes.splice( this.parent._xnodes.indexOf( this ), 1 );\r
- elm && !isChild && this._actualRemove();\r
+ elm && !isChild && X_Node__actualRemove( this );\r
this.kill();\r
};\r
};\r
/* --------------------------------------\r
* contains\r
*/\r
-Node.prototype.contains = function( v ){\r
+function X_Node_contains( v ){\r
var elm, type, xnodes, i;\r
if( !v || this._xnodeType !== 1 ) return false;\r
// contains ie4+\r
- if( ( elm = this._rawObject || this._ie4getRawNode && this._ie4getRawNode() ) && document.contains && ( type = X_Node_getType( v ) ) && ( type === X_Node_TYPE.RAW_HTML || type === X_Node_TYPE.RAW_TEXT ) ){\r
+ if( ( elm = this._rawObject || X_UA_DOM.IE4 && X_Node__ie4getRawNode( this ) ) && document.contains && ( type = X_Node_getType( v ) ) && ( type === X_Node_TYPE.RAW_HTML || type === X_Node_TYPE.RAW_TEXT ) ){\r
return elm.contains( v ); \r
};\r
//if( document.compareDocumentPosition ){\r
/* --------------------------------------\r
* getChild\r
*/\r
-Node.prototype.getChildAt = function( i ){\r
+function X_Node_getChildAt( i ){\r
var xnodes = this._xnodeType === 1 && this._xnodes;\r
return xnodes && 0 <= i && i < xnodes.length && xnodes[ i ];\r
};\r
/* --------------------------------------\r
* firstChild, lastChild\r
*/\r
-Node.prototype.firstChild = function(){\r
+function X_Node_firstChild(){\r
return this.getChildAt( 0 );\r
};\r
-Node.prototype.lastChild = function(){\r
+function X_Node_lastChild(){\r
return this.getChildAt( this._xnodes.length - 1 );\r
};\r
\r
/* --------------------------------------\r
* getOrder\r
*/\r
-Node.prototype.getOrder = function(){\r
+function X_Node_getOrder(){\r
var parent = this.parent;\r
if( !parent ) return -1;\r
return parent._xnodes.indexOf( this );\r
/* --------------------------------------\r
* className, addClass, removeClass, hasClass\r
*/\r
-Node.prototype.className = function( v ){\r
+function X_Node_className( v ){\r
var node, _, __;\r
// getter\r
if( v === undefined ) return this._className;\r
v ? ( this._className = v ) : delete this._className;\r
};\r
this._dirty |= X_Node_Dirty.CLASSNAME;\r
- this._root && this._reserveUpdate();\r
+ this._root && X_Node_reserveUpdate();\r
return this;\r
};\r
-Node.prototype.addClass = function( v ){\r
+function X_Node_addClass( v ){\r
var names = v.split( ' ' ),\r
i = names.length,\r
name;\r
};\r
return v ? this.className( this._className + ( this._className ? ' ' : '' ) + v ) : this;\r
};\r
-Node.prototype.removeClass = function( v ){\r
+function X_Node_removeClass( v ){\r
var _ = ' ',\r
className = this._className,\r
names = v.split( _ ),\r
};\r
return f ? this.className( classNames.join( _ ) ) : this;\r
};\r
-Node.prototype.toggleClass = function( v, opt_toggle ){\r
+function X_Node_toggleClass( v, opt_toggle ){\r
var names, i, name;\r
if( opt_toggle !== undefined ){\r
return !!opt_toggle ? this.addClass( v ) : this.removeClass( v ); \r
};\r
return this;\r
};\r
-Node.prototype.hasClass = function( v ){\r
+function X_Node_hasClass( v ){\r
var _ = ' ',\r
className = this._className,\r
i, name;\r
* html, text\r
*/\r
\r
-Node._outerFlag = null;\r
-\r
-Node.prototype.html = function( html ){\r
+function X_Node_html( html ){\r
var _ = '', q = '"', xnodes, n, i, l;\r
// setter\r
if( html !== undefined ){ // String 以外に Number や false null なども許可\r
return this._text;\r
};\r
\r
- if( this._dirty & X_Node_Dirty.CSS && !( this._cssText = X.Dom.Style.objToCssText( this._css ) ) ){\r
+ if( this._dirty & X_Node_Dirty.CSS && !( this._cssText = X_Node_CSS_objToCssText( this._css ) ) ){\r
delete this._cssText;\r
};\r
- html = !Node._outerFlag ? [] : [\r
+ html = !X_Node_outerXNode ? [] : [\r
'<', this._tag,\r
this._id ? ' id="' + this._id + q : _,\r
this._className ? ' class="' + this._className + q : _,\r
- this._attrText === false ? ( this._attrText = X_Node_Attr.objToAttrText( this._attrs ) ) : this._attrText,\r
+ this._attrText === false ? ( this._attrText = X_Node_Attr_objToAttrText( this._attrs ) ) : this._attrText,\r
this._cssText ? ' style="' + this._cssText + q : _,\r
'>' ];\r
\r
n = html.length;\r
if( ( xnodes = this._xnodes ) && ( l = xnodes.length ) ){\r
- if( !Node._outerFlag ) Node._outerFlag = this;\r
+ if( !X_Node_outerXNode ) X_Node_outerXNode = this;\r
for( i = 0; i < l; ++i ){\r
html[ n ] = xnodes[ i ].html();\r
++n;\r
};\r
- if( Node._outerFlag === this ) Node._outerFlag = null;\r
+ if( X_Node_outerXNode === this ) X_Node_outerXNode = null;\r
};\r
- !Node._outerFlag || X_Dom_DTD_EMPTY[ this._tag ] || ( html[ n ] = '<\/' + this._tag + '>' );\r
+ !X_Node_outerXNode || X_Dom_DTD_EMPTY[ this._tag ] || ( html[ n ] = '<\/' + this._tag + '>' );\r
return html.join( _ );\r
};\r
\r
-Node.prototype.text = function( text ){\r
+function X_Node_text( text ){\r
var xnodes, texts, i, l;\r
// setter\r
if( text !== undefined ){\r
if( this._xnodeType === 3 ){\r
if( this._text !== text ){\r
text ? ( this._text = text ) : delete this.text;\r
- this._root && this._reserveUpdate();\r
+ this._root && X_Node_reserveUpdate();\r
this._dirty |= X_Node_Dirty.CONTENT;\r
};\r
return this;\r
/*\r
* HTML要素に対して name の関数を実行しその戻り値を返す。関数に渡す引数も任意に設定できる。\r
*/\r
-Node.prototype.call = function( name /*, opt_args... */ ){\r
- var raw = this._rawObject || this._ie4getRawNode && this._ie4getRawNode(),\r
+function X_Node_call( name /*, opt_args... */ ){\r
+ var raw = this._rawObject || X_UA_DOM.IE4 && X_Node__ie4getRawNode( this ),\r
l = arguments.length - 1,\r
func, args, params, i;\r
if( !raw ) return;\r
* xnode を this として関数を実行する。 NodeList.each と動作を合わせてあるため関数の戻り値は破棄される。\r
* 関数に渡す引数も任意に設定できる。\r
*/\r
-Node.prototype.each = function( func /*, opt_args */ ){\r
+function X_Node_each( func /*, opt_args */ ){\r
var args;\r
if( 1 < arguments.length ){\r
args = X_Object_cloneArray( arguments );\r
* root._reserveRemoval にいたら消す, new_parent._xnodes に挿入 steta は not_added にして commitUpdate を待つ\r
*/\r
\r
-Node.prototype._reserveUpdate = function(){\r
- var root = Node._body;\r
- if( root && !root._updateTimerID ) root._updateTimerID = X.Timer.requestFrame( root, root._startUpdate );\r
+function X_Node_reserveUpdate(){\r
+ var root = X_Node_body;\r
+ if( root && !root._updateTimerID ) root._updateTimerID = X.Timer.requestFrame( X_Node_startUpdate );\r
};\r
\r
-Node.prototype._startUpdate = function(){\r
+function X_Node_startUpdate(){\r
var removal, i, xnode, tmp;\r
if( X_ViewPort_readyState < X_TEMP.SYSTEM_EVENT_INIT ){\r
return;\r
};\r
- if( this._updateTimerID ){\r
- X.Timer.cancelFrame( this._updateTimerID );\r
- this._updateTimerID = 0;\r
+ if( X_Node_body._updateTimerID ){\r
+ X.Timer.cancelFrame( X_Node_body._updateTimerID );\r
+ X_Node_body._updateTimerID = 0;\r
} else {\r
return;\r
};\r
// このイベントでサイズを取ると無限ループに\r
// X_ViewPort._listeners && X_ViewPort._listeners[ X.Event.BEFORE_UPDATE ] && X_ViewPort.dispatch( X.Dom.Event.BEFORE_UPDATE );\r
\r
- removal = Node._reserveRemoval;\r
+ removal = X_Node_reserveRemoval;\r
\r
- tmp = this._rawObject.style.visibility;\r
+ //tmp = X_Node_body._rawObject.style.visibility;\r
//this._rawObject.style.visibility = 'hidden';\r
\r
//console.log( '_actualRemove().' );\r
if( i = removal.length ){\r
for( ; i; ){\r
xnode = removal[ --i ];\r
- xnode._actualRemove();\r
- !this._state && xnode.kill();\r
+ X_Node__actualRemove( xnode );\r
+ !X_Node_body._state && xnode.kill();\r
};\r
removal.length = 0;\r
};\r
\r
//console.log( 'start _startUpdate().' );\r
\r
- /* Node._html._dirty ? */ Node._html._commitUpdate() /* : this._commitUpdate() */;\r
+ /* X_Node_html._dirty ? */ X_Node__commitUpdate( X_Node_html ); /* : X_Node__commitUpdate( X_Node_body ); */;\r
\r
//console.log( 'end of _startUpdate().' );\r
\r
//this._rawObject.style.visibility = tmp;\r
};\r
\r
-Node.prototype._commitUpdate =\r
+var X_Node__commitUpdate =\r
X_UA_DOM.W3C ?\r
- ( function( parentElement, nextElement ){\r
- var elm = this._rawObject,\r
+ ( function( that, parentElement, nextElement ){\r
+ var elm = that._rawObject,\r
xnodes, l, i, frg, next, k, v;\r
\r
- if( this._state & X_Node_State.IE5_DISPLAY_NONE_FIX ){\r
- //alert( this._tag + ' ' + !!elm );\r
+ if( that._state & X_Node_State.IE5_DISPLAY_NONE_FIX ){\r
+ //alert( that._tag + ' ' + !!elm );\r
// filter の効いている要素だけdisplay:none が無視される模様。filter を切ればよい?\r
// 親が、display:none の場合は?\r
- elm && elm.parentNode && this._actualRemove();\r
+ elm && elm.parentNode && X_Node__actualRemove( that );\r
return nextElement;\r
};\r
\r
if( !elm || ( parentElement && elm.parentNode !== parentElement ) || ( nextElement && elm.nextSibling !== nextElement ) ){\r
nextElement ?\r
- parentElement.insertBefore( this._actualCreate(), nextElement ) :\r
- parentElement.appendChild( this._actualCreate() );\r
- this._afterActualCreate();\r
+ parentElement.insertBefore( X_Node__actualCreate( that ), nextElement ) :\r
+ parentElement.appendChild( X_Node__actualCreate( that ) );\r
+ X_Node__afterActualCreate( that );\r
\r
- return elm || this._rawObject;\r
+ return elm || that._rawObject;\r
} else\r
- if( ( xnodes = this._xnodes ) && ( l = xnodes.length ) ) {\r
+ if( ( xnodes = that._xnodes ) && ( l = xnodes.length ) ) {\r
\r
/*if( elm.childNodes.length !== l && ( frg = X_Node_useDocumentFragment ) ){\r
for( i = 0; i < l; ++i ){\r
- frg.appendChild( xnodes[ i ]._actualCreate( true ) );\r
+ frg.appendChild( X_Node__actualCreate( xnodes[ i ], true ) );\r
};\r
elm.appendChild( frg );\r
for( i = 0; i < l; ++i ){\r
- xnodes[ i ]._afterActualCreate( true );\r
+ X_Node__actualCreate( xnodes[ i ], true );\r
};\r
} else {*/\r
for( ; l; ){\r
- next = xnodes[ --l ]._commitUpdate( elm, next );\r
+ next = X_Node__commitUpdate( xnodes[ --l ], elm, next );\r
};\r
//};\r
};\r
\r
- delete this._fontSize;\r
- this._dirty && this._updateRawNode( elm );\r
- if( this._state & X_Node_State.IE5_DISPLAY_NONE_FIX ){\r
+ delete that._fontSize;\r
+ that._dirty && X_Node__updateRawNode( that, elm );\r
+ if( that._state & X_Node_State.IE5_DISPLAY_NONE_FIX ){\r
return nextElement;\r
};\r
return elm;\r
}) :\r
X_UA_DOM.IE4 ? \r
- ( function( parentElement, prevElement ){\r
- var elm = this._rawObject || this._ie4getRawNode(),\r
+ ( function( that, parentElement, prevElement ){\r
+ var elm = that._rawObject || X_Node__ie4getRawNode( that ),\r
xnodes, l, i, html, text, prev;\r
\r
if( !elm ){\r
prevElement ?\r
- prevElement.insertAdjacentHTML( 'AfterEnd', this._actualCreate() ) :\r
- parentElement.insertAdjacentHTML( 'AfterBegin', this._actualCreate() );\r
- this._afterActualCreate();\r
- return this._rawObject || this._ie4getRawNode();\r
+ prevElement.insertAdjacentHTML( 'AfterEnd', X_Node__actualCreate( that ) ) :\r
+ parentElement.insertAdjacentHTML( 'AfterBegin', X_Node__actualCreate( that ) );\r
+ X_Node__afterActualCreate( that );\r
+ return that._rawObject || X_Node__ie4getRawNode( that );\r
};\r
\r
- xnodes = this._xnodes;\r
+ xnodes = that._xnodes;\r
l = xnodes ? xnodes.length : 0;\r
\r
- if( this._dirty & X_Node_Dirty.IE4_TEXTNODE_FIX || ( this._state & X_Node_State.IE4_ONLY_TEXT && ( l !== 1 || xnodes[ 0 ]._xnodeType !== 3 ) ) ){ // 1 < l && elm.children.length === 0\r
+ if( that._dirty & X_Node_Dirty.IE4_TEXTNODE_FIX || ( that._state & X_Node_State.IE4_ONLY_TEXT && ( l !== 1 || xnodes[ 0 ]._xnodeType !== 3 ) ) ){ // 1 < l && elm.children.length === 0\r
html = [];\r
for( i = 0; i < l; ++i ){\r
- html[ i ] = xnodes[ i ]._actualCreate();\r
+ html[ i ] = X_Node__actualCreate( xnodes[ i ] );\r
};\r
elm.innerHTML = html.join( '' );\r
for( i = 0; i < l; ++i ){\r
- xnodes[ i ]._afterActualCreate();\r
+ X_Node__afterActualCreate( xnodes[ i ] );\r
};\r
- this._state &= ~X_Node_State.IE4_ONLY_TEXT;\r
+ that._state &= ~X_Node_State.IE4_ONLY_TEXT;\r
} else\r
- if( this._state & X_Node_State.IE4_ONLY_TEXT ){ // textNode が swap した場合の検出は、_root で行う\r
+ if( that._state & X_Node_State.IE4_ONLY_TEXT ){ // textNode が swap した場合の検出は、_root で行う\r
text = xnodes[ 0 ];\r
if( text._dirty || !text._root ){\r
elm.innerHTML = text._text;\r
delete text._dirty;\r
- text._root = this._root; \r
+ text._root = that._root; \r
};\r
} else\r
if( l ){\r
for( i = 0; i < l; ++i ){\r
- prev = xnodes[ i ]._commitUpdate( elm, prev );\r
+ prev = X_Node__commitUpdate( xnodes[ i ], elm, prev );\r
};\r
};\r
\r
- delete this._fontSize;\r
- this._dirty && this._updateRawNode( elm );\r
+ delete that._fontSize;\r
+ that._dirty && X_Node__updateRawNode( that, elm );\r
return elm;\r
}) :\r
(function(){});\r
\r
-Node.prototype._updateRawNode =\r
+var X_Node__updateRawNode =\r
X_UA_DOM.W3C ?\r
- ( function( elm ){\r
+ ( function( that, elm ){\r
var attrs, rename, k, v;\r
\r
// textNode\r
- if( this._dirty & X_Node_Dirty.CONTENT ){\r
- elm.data = X_String_chrReferanceTo( this._text );\r
- delete this._dirty;\r
+ if( that._dirty & X_Node_Dirty.CONTENT ){\r
+ elm.data = X_String_chrReferanceTo( that._text );\r
+ delete that._dirty;\r
return;\r
};\r
// id\r
- if( this._dirty & X_Node_Dirty.ID ){\r
- this._id ? ( elm.id = this._id ) : ( elm.id && elm.removeAttribute( 'id' ) ); \r
+ if( that._dirty & X_Node_Dirty.ID ){\r
+ that._id ? ( elm.id = that._id ) : ( elm.id && elm.removeAttribute( 'id' ) ); \r
};\r
// className\r
- if( this._dirty & X_Node_Dirty.CLASSNAME ){\r
- this._className ? ( elm.className = this._className ) : ( elm.className && elm.removeAttribute( X.UA.IE5678 ? 'className' : 'class' ) ); // className は ie7-? \r
+ if( that._dirty & X_Node_Dirty.CLASSNAME ){\r
+ that._className ? ( elm.className = that._className ) : ( elm.className && elm.removeAttribute( X.UA.IE5678 ? 'className' : 'class' ) ); // className は ie7-? \r
\r
// ie5 only\r
if( X_Node_State.IE5_DISPLAY_NONE_FIX && elm.currentStyle.display === 'none' ){\r
- this._actualRemove();\r
- this._state |= X_Node_State.IE5_DISPLAY_NONE_FIX;\r
+ X_Node__actualRemove( that );\r
+ that._state |= X_Node_State.IE5_DISPLAY_NONE_FIX;\r
return;\r
};\r
};\r
// style\r
// TODO display:none の場合、更新をスキップ\r
- if( this._dirty & X_Node_Dirty.CSS ){\r
- if( this._cssText !== null || ( this._cssText = X.Dom.Style.objToCssText( this._css ) ) ){\r
+ if( that._dirty & X_Node_Dirty.CSS ){\r
+ if( that._cssText !== null || ( that._cssText = X_Node_CSS_objToCssText( that._css ) ) ){\r
X.UA.Opera78 || X.UA.NN6 ?\r
- elm.setAttribute( 'style', this._cssText ) : // opera8用\r
- ( elm.style.cssText = this._cssText );\r
+ elm.setAttribute( 'style', that._cssText ) : // opera8用\r
+ ( elm.style.cssText = that._cssText );\r
} else {\r
elm.style.cssText = ''; // IE5.5以下 Safari3.2 で必要\r
elm.removeAttribute( 'style' );\r
- delete this._cssText;\r
+ delete that._cssText;\r
};\r
};\r
\r
- if( this._dirty & X_Node_Dirty.IE_FILTER ){\r
- elm.style.filter = X.Dom.Style.SPECIAL_FIX( this._css );\r
+ if( that._dirty & X_Node_Dirty.IE_FILTER ){\r
+ elm.style.filter = X_Node_CSS_SPECIAL_FIX( that._css );\r
};\r
\r
// attr\r
// TODO display:none の場合、更新をスキップ\r
- if( this._dirty & X_Node_Dirty.ATTR && ( attrs = this._newAttrs || this._attrs ) ){\r
- rename = X_Node_Attr.renameForDOM;\r
+ if( that._dirty & X_Node_Dirty.ATTR && ( attrs = that._newAttrs || that._attrs ) ){\r
+ rename = X_Node_Attr_renameForDOM;\r
for( k in attrs ){\r
if( !X.UA.MacIE && ( X.UA.IE5 || X.UA.IE55 ) ){ // IETester 5.5 ではエラーが出なかった.MultipulIE5.5 ではエラーが出たので\r
- if( this._tag === 'TEXTAREA' && k === 'value' ){\r
+ if( that._tag === 'TEXTAREA' && k === 'value' ){\r
elm.firstChild ?\r
( elm.firstChild.data = attrs[ k ] ) :\r
elm.appendChild( document.createTextNode( attrs[ k ] ) );\r
// TODO IE では input, なぜか buttonも、type の変更が出来ない、object も 同値で置き換えようとしても不可\r
( v = attrs[ k ] ) === undefined ?\r
elm.removeAttribute( rename[ k ] || k ) :\r
- ( elm[ rename[ k ] || k ] = X_Node_Attr.noValue[ k ] ? k : v ); \r
+ ( elm[ rename[ k ] || k ] = X_Node_Attr_noValue[ k ] ? k : v ); \r
\r
};\r
- delete this._newAttrs;\r
+ delete that._newAttrs;\r
};\r
\r
- delete this._dirty;\r
+ delete that._dirty;\r
}) :\r
X_UA_DOM.IE4 ? \r
- ( function( elm ){\r
+ ( function( that, elm ){\r
var attrs, rename, k, v;\r
\r
// fake textNode\r
- if( this._dirty & X_Node_Dirty.CONTENT ){\r
- elm.innerText = this._text;\r
- delete this._dirty;\r
+ if( that._dirty & X_Node_Dirty.CONTENT ){\r
+ elm.innerText = that._text;\r
+ delete that._dirty;\r
return;\r
};\r
\r
* title、className、id、lang、language には setAttribute でなく、element.id で直接読み書きできる\r
*/ \r
// id\r
- if( this._dirty & X_Node_Dirty.CONTENT ) elm.setAttribute( 'id', this._id || ( 'ie4uid' + xnode._uid ) );\r
+ if( that._dirty & X_Node_Dirty.CONTENT ) elm.setAttribute( 'id', that._id || ( 'ie4uid' + xnode._uid ) );\r
\r
// className\r
- if( this._dirty & X_Node_Dirty.CLASSNAME ){\r
- this._className ? ( elm.className = this._className ) : elm.removeAttribute( 'class' );\r
+ if( that._dirty & X_Node_Dirty.CLASSNAME ){\r
+ that._className ? ( elm.className = that._className ) : elm.removeAttribute( 'class' );\r
};\r
// style\r
- if( this._dirty & X_Node_Dirty.CSS ){\r
- if( this._cssText !== null || ( this._cssText = X.Dom.Style.objToCssText( this._css ) ) ){\r
- elm.style.cssText = this._cssText;\r
+ if( that._dirty & X_Node_Dirty.CSS ){\r
+ if( that._cssText !== null || ( that._cssText = X_Node_CSS_objToCssText( that._css ) ) ){\r
+ elm.style.cssText = that._cssText;\r
} else {\r
elm.style.cssText = '';\r
elm.removeAttribute( 'style' );\r
- delete this._cssText;\r
+ delete that._cssText;\r
};\r
};\r
\r
- if( this._dirty & X_Node_Dirty.IE_FILTER ){\r
- this._rawObject.style.filter = X.Dom.Style.SPECIAL_FIX( this._css );\r
+ if( that._dirty & X_Node_Dirty.IE_FILTER ){\r
+ that._rawObject.style.filter = X_Node_CSS_SPECIAL_FIX( that._css );\r
};\r
\r
// attr\r
- if( this._dirty & X_Node_Dirty.ATTR && ( attrs = this._newAttrs || this._attrs ) ){\r
- rename = X_Node_Attr.renameForDOM;\r
+ if( that._dirty & X_Node_Dirty.ATTR && ( attrs = that._newAttrs || that._attrs ) ){\r
+ rename = X_Node_Attr_renameForDOM;\r
for( k in attrs ){\r
( v = attrs[ k ] ) === undefined ?\r
elm.removeAttribute( rename[ k ] || k ) :\r
- this._tag === 'TEXTAREA' && k === 'value' ?\r
+ that._tag === 'TEXTAREA' && k === 'value' ?\r
( elm.innerText = v ) :\r
- elm.setAttribute( rename[ k ] || k, X_Node_Attr.noValue[ k ] ? k : v ); // TODO X_Node_Attr.noValue[ k ] ? k : v\r
+ elm.setAttribute( rename[ k ] || k, X_Node_Attr_noValue[ k ] ? k : v ); // TODO X_Node_Attr_noValue[ k ] ? k : v\r
};\r
- delete this._newAttrs;\r
+ delete that._newAttrs;\r
};\r
\r
- delete this._dirty;\r
+ delete that._dirty;\r
}) :\r
(function(){});\r
\r
* \r
* document.createElement of ie4 is only for OPTION & IMAGE.\r
*/\r
-Node.prototype._actualCreate =\r
- X_UA_DOM.W3C ? (function( isChild ){\r
- var elm = this._rawObject,\r
+var X_Node__actualCreate =\r
+ X_UA_DOM.W3C ? (function( that, isChild ){\r
+ var elm = that._rawObject,\r
xnodes, frg, i, l;\r
\r
- if( this._xnodeType === 3 ){\r
+ if( that._xnodeType === 3 ){\r
if( elm ) return elm;\r
- delete this._dirty;\r
- return this._rawObject = document.createTextNode( X_String_chrReferanceTo( this._text ) );\r
+ delete that._dirty;\r
+ return that._rawObject = document.createTextNode( X_String_chrReferanceTo( that._text ) );\r
};\r
\r
if( !elm ){\r
- if( this._dirty & X_Node_Dirty.CSS && !( this._cssText = X.Dom.Style.objToCssText( this._css ) ) ){\r
- delete this._cssText;\r
+ if( that._dirty & X_Node_Dirty.CSS && !( that._cssText = X_Node_CSS_objToCssText( that._css ) ) ){\r
+ delete that._cssText;\r
};\r
- this._isNew = true;\r
- this._rawObject = elm =\r
+ that._isNew = true;\r
+ that._rawObject = elm =\r
X_Node_strictElmCreation ?\r
document.createElement( [\r
- '<', this._tag,\r
- ' UID="', this._uid, '"',\r
- this._id ? ' id="' + this._id + '"' : '',\r
- this._className ? ' class="' + this._className + '"' : '',\r
- this._attrText === false ? ( this._attrText = X_Node_Attr.objToAttrText( this._attrs ) ) : this._attrText,\r
- this._cssText ? ' style="' + this._cssText + '"' : '',\r
+ '<', that._tag,\r
+ ' UID="', that._uid, '"',\r
+ that._id ? ' id="' + that._id + '"' : '',\r
+ that._className ? ' class="' + that._className + '"' : '',\r
+ that._attrText === false ? ( that._attrText = X_Node_Attr_objToAttrText( that._attrs ) ) : that._attrText,\r
+ that._cssText ? ' style="' + that._cssText + '"' : '',\r
'>' ].join( '' ) ) :\r
- document.createElement( this._tag );\r
+ document.createElement( that._tag );\r
};\r
if( X_Node_useDocumentFragment ){\r
- if( ( xnodes = this._xnodes ) && ( l = xnodes.length ) ){\r
+ if( ( xnodes = that._xnodes ) && ( l = xnodes.length ) ){\r
!isChild && ( frg = X_Node_useDocumentFragment ).appendChild( elm );\r
for( i = 0; i < l; ++i ){\r
- elm.appendChild( xnodes[ i ]._actualCreate( true ) );\r
+ elm.appendChild( X_Node__actualCreate( xnodes[ i ], true ) );\r
};\r
return frg || elm;\r
};\r
\r
return elm;\r
}) :\r
- X_UA_DOM.IE4 ? (function( isChild ){\r
- var uid = this._uid,\r
+ X_UA_DOM.IE4 ? (function( that, isChild ){\r
+ var uid = that._uid,\r
html, xnodes, n, i, l;\r
\r
- if( this._xnodeType === 3 ){\r
- html = [ '<FONT id=ie4uid', uid, ' UID="', uid, '">', this._text, '</FONT>' ];// fake textNode\r
- delete this._rawObject;\r
+ if( that._xnodeType === 3 ){\r
+ html = [ '<FONT id=ie4uid', uid, ' UID="', uid, '">', that._text, '</FONT>' ];// fake textNode\r
+ delete that._rawObject;\r
} else {\r
- if( this._rawObject && !isChild ) this._actualRemove( true );\r
+ if( that._rawObject && !isChild ) X_Node__actualRemove( that, true );\r
\r
- if( this._dirty & X_Node_Dirty.CSS && !( this._cssText = X.Dom.Style.objToCssText( this._css ) ) ){\r
- delete this._cssText;\r
+ if( that._dirty & X_Node_Dirty.CSS && !( that._cssText = X_Node_CSS_objToCssText( that._css ) ) ){\r
+ delete that._cssText;\r
};\r
\r
html = [\r
- '<', this._tag, ' id=', ( this._id || ( 'ie4uid' + uid ) ), ' UID="', uid, '"',\r
- this._className ? ' class="' + this._className + '"' : '',\r
- this._attrText === false ? ( this._attrText = X_Node_Attr.objToAttrText( this._attrs ) ) : this._attrText,\r
- this._cssText ? ' style="' + this._cssText + '"' : '',\r
+ '<', that._tag, ' id=', ( that._id || ( 'ie4uid' + uid ) ), ' UID="', uid, '"',\r
+ that._className ? ' class="' + that._className + '"' : '',\r
+ that._attrText === false ? ( that._attrText = X_Node_Attr_objToAttrText( that._attrs ) ) : that._attrText,\r
+ that._cssText ? ' style="' + that._cssText + '"' : '',\r
'>' ];\r
\r
n = html.length;\r
- if( ( xnodes = this._xnodes ) && ( l = xnodes.length ) ){\r
+ if( ( xnodes = that._xnodes ) && ( l = xnodes.length ) ){\r
if( l === 1 && xnodes[ 0 ]._xnodeType === 3 ){\r
// only textnode\r
html[ n ] = xnodes[ 0 ]._text;\r
++n;\r
- this._state |= X_Node_State.IE4_ONLY_TEXT;\r
+ that._state |= X_Node_State.IE4_ONLY_TEXT;\r
} else {\r
for( i = 0; i < l; ++i ){\r
- html[ n ] = xnodes[ i ]._actualCreate( true );\r
+ html[ n ] = X_Node__actualCreate( xnodes[ i ], true );\r
++n;\r
}; \r
};\r
};\r
- X_Dom_DTD_EMPTY[ this._tag ] || ( html[ n ] = '<\/' + this._tag + '>' );\r
+ X_Dom_DTD_EMPTY[ that._tag ] || ( html[ n ] = '<\/' + that._tag + '>' );\r
\r
- delete this._newAttrs;\r
+ delete that._newAttrs;\r
};\r
\r
return html.join( '' );\r
}) :\r
(function(){});\r
\r
-Node.prototype._afterActualCreate =\r
- X_UA_DOM.W3C ? (function(){\r
- var elm = this._rawObject, xnodes, l, attrs, k, i;\r
+var X_Node__afterActualCreate =\r
+ X_UA_DOM.W3C ? (function( that ){\r
+ var elm = that._rawObject, xnodes, l, attrs, k, i;\r
\r
- this._root = this.parent._root;\r
+ that._root = that.parent._root;\r
\r
- if( this._xnodeType === 3 ){\r
- this._dirty && this._updateRawNode( elm );\r
- return this;\r
+ if( that._xnodeType === 3 ){\r
+ that._dirty && X_Node__updateRawNode( that, elm );\r
+ return that;\r
};\r
\r
- xnodes = this._xnodes;\r
+ xnodes = that._xnodes;\r
l = xnodes && xnodes.length;\r
\r
- if( this._isNew ){\r
+ if( that._isNew ){\r
if( !X_Node_useDocumentFragment && l ){// docFrg が使えない場合、doc 追加後に子を追加\r
for( i = 0; i < l; ++i ){\r
- elm.appendChild( xnodes[ i ]._actualCreate( true ) );\r
+ elm.appendChild( X_Node__actualCreate( xnodes[ i ], true ) );\r
};\r
};\r
if( X_Node_strictElmCreation ){\r
- if( this._dirty & X_Node_Dirty.IE_FILTER ){\r
- elm.style.filter = X.Dom.Style.SPECIAL_FIX( this._css );\r
+ if( that._dirty & X_Node_Dirty.IE_FILTER ){\r
+ elm.style.filter = X_Node_CSS_SPECIAL_FIX( that._css );\r
};\r
- delete this._dirty;\r
+ delete that._dirty;\r
} else {\r
- elm.UID = this._uid;\r
- this._newAttrs = this._attrs;\r
- this._dirty = X_Node_Dirty.ID | X_Node_Dirty.CLASSNAME | X_Node_Dirty.CSS | X_Node_Dirty.ATTR | X_Node_Dirty.IE_FILTER;\r
- this._updateRawNode( elm );\r
+ elm.UID = that._uid;\r
+ that._newAttrs = that._attrs;\r
+ that._dirty = X_Node_Dirty.ID | X_Node_Dirty.CLASSNAME | X_Node_Dirty.CSS | X_Node_Dirty.ATTR | X_Node_Dirty.IE_FILTER;\r
+ X_Node__updateRawNode( that, elm );\r
};\r
\r
- delete this._isNew;\r
+ delete that._isNew;\r
} else {\r
- this._dirty && this._updateRawNode( elm );\r
+ that._dirty && X_Node__updateRawNode( that, elm );\r
};\r
\r
for( i = 0; i < l; ++i ){\r
- xnodes[ i ]._afterActualCreate();\r
+ X_Node__afterActualCreate( xnodes[ i ] );\r
};\r
// src の onload があるので先ではないか?\r
// ie の str から要素を作る場合、srcだけ イベント設定後ではないか?\r
- X_EventDispatcher_toggleAllEvents( this, true );// イベントの復帰\r
+ X_EventDispatcher_toggleAllEvents( that, true );// イベントの復帰\r
}) :\r
- X_UA_DOM.IE4 ? (function(){\r
+ X_UA_DOM.IE4 ? (function( that ){\r
var xnodes, i;\r
- this._root = this.parent._root;\r
+ that._root = that.parent._root;\r
\r
- if( this._xnodeType !== 1 ) return this;\r
+ if( that._xnodeType !== 1 ) return that;\r
\r
- if( ( xnodes = this._xnodes ) && ( i = xnodes.length ) ){\r
+ if( ( xnodes = that._xnodes ) && ( i = xnodes.length ) ){\r
for( ; i; ){\r
- xnodes[ --i ]._afterActualCreate();\r
+ X_Node__afterActualCreate( xnodes[ --i ] );\r
};\r
};\r
// textarea への value の適用はここで\r
- if( this._dirty & X_Node_Dirty.IE_FILTER ){\r
- this._ie4getRawNode().style.filter = X.Dom.Style.SPECIAL_FIX( this._css );\r
+ if( that._dirty & X_Node_Dirty.IE_FILTER ){\r
+ X_Node__ie4getRawNode( that ).style.filter = X_Node_CSS_SPECIAL_FIX( that._css );\r
};\r
- delete this._dirty;\r
- X_EventDispatcher_toggleAllEvents( this, true );// イベントの復帰\r
+ delete that._dirty;\r
+ X_EventDispatcher_toggleAllEvents( that, true );// イベントの復帰\r
}) :\r
(function(){});\r
\r
-Node.prototype._actualRemove =\r
+var X_Node__actualRemove =\r
X_UA_DOM.W3C ?\r
- ( function( isChild ){\r
- var xnodes = this._xnodes,\r
- elm = this._rawObject,\r
+ ( function( that, isChild ){\r
+ var xnodes = that._xnodes,\r
+ elm = that._rawObject,\r
child, i, l;\r
if( xnodes && ( l = xnodes.length ) ){\r
for( i = 0; i < l; ++i ){\r
child = xnodes[ i ];\r
- child._xnodeType === 1 && child._actualRemove( true );\r
+ child._xnodeType === 1 && X_Node__actualRemove( child, true );\r
};\r
};\r
\r
if( !elm ) return;\r
- this._xnodeType === 1 && X_EventDispatcher_toggleAllEvents( this, false );// イベントの退避\r
+ that._xnodeType === 1 && X_EventDispatcher_toggleAllEvents( that, false );// イベントの退避\r
// elm.parentNode.tagName for ie7\r
if( !X.UA.MacIE ){\r
!isChild && elm.parentNode && elm.parentNode.tagName && elm.parentNode.removeChild( elm );\r
} else {\r
- !isChild && elm.parentNode && elm.parentNode.tagName && X_TEMP._fixed_remove( elm, this );\r
+ !isChild && elm.parentNode && elm.parentNode.tagName && X_TEMP._fixed_remove( elm, that );\r
};\r
}) :\r
X_UA_DOM.IE4 ?\r
- ( function( isChild ){\r
- var xnodes = this._xnodes,\r
- elm = this._rawObject || this._ie4getRawNode(),\r
+ ( function( that, isChild ){\r
+ var xnodes = that._xnodes,\r
+ elm = that._rawObject || X_Node__ie4getRawNode( that ),\r
i, l, xnode;\r
if( xnodes && ( l = xnodes.length ) ){\r
for( i = 0; i < l; ++i ){\r
- xnodes[ i ]._actualRemove( true );\r
+ X_Node__actualRemove( xnodes[ i ], true );\r
};\r
};\r
\r
if( !elm ) return;\r
- this._xnodeType === 1 && X_EventDispatcher_toggleAllEvents( this, false );// イベントの退避\r
+ that._xnodeType === 1 && X_EventDispatcher_toggleAllEvents( that, false );// イベントの退避\r
\r
- if( X_Node_Attr.HAS_VALUE[ this._tag ] && ( !this._newAttrs || !X_Object_inObject( 'value', this._newAttrs ) ) ){\r
- this._attrs.value = elm.value;\r
+ if( X_Node_Attr_HAS_VALUE[ that._tag ] && ( !that._newAttrs || !X_Object_inObject( 'value', that._newAttrs ) ) ){\r
+ that._attrs.value = elm.value;\r
};\r
elm.removeAttribute( 'id' ); // ?\r
- //document.all[ this._id || ( 'ie4uid' + this._uid ) ] = null; // MacIE5 でエラー\r
+ //document.all[ that._id || ( 'ie4uid' + that._uid ) ] = null; // MacIE5 でエラー\r
if( !isChild ) elm.outerHTML = '';\r
- delete this._rawObject;\r
+ delete that._rawObject;\r
}) :\r
(function(){});\r
-\r
-console.log( 'X.Dom.Node' );\r
-\r
-X.Dom.BoxModel = {\r
+var X_Node_BoxModel = {\r
CONTENT_BOX : 1,\r
PADDING_BOX : 2,\r
BORDER_BOX : 3,\r
boxSizingEnabled : false,\r
\r
// TODO: offsetLeft, offsetTop の基準位置\r
- absoluteOffset : 0,\r
- \r
- vScrollbarSize : 0,\r
- hScrollbarSize : 0\r
+ absoluteOffset : 0\r
};\r
\r
\r
\r
-X.ViewPort.listenOnce( X_TEMP.SYSTEM_EVENT_INIT, function(){\r
-\r
- var node = Node._systemNode,\r
- \r
- // http://jsdo.it/imaya/kTYg\r
- body = document.body,\r
- defaultOverflow = document.body.style.overflow,\r
- width, height;\r
-\r
- body.style.overflow = 'hidden';\r
- w = body.clientWidth;\r
- h = body.clientHeight;\r
-\r
- body.style.overflow = 'scroll';\r
- w -= body.clientWidth;\r
- h -= body.clientHeight;\r
-\r
- if( !w ) w = body.offsetWidth - body.clientWidth;\r
- if( !h ) h = body.offsetHeight - body.clientHeight;\r
- body.style.overflow = defaultOverflow; \r
-\r
- X.Dom.BoxModel.vScrollbarSize = w;\r
- X.Dom.BoxModel.hScrollbarSize = h;\r
- if( h <= 0 ){ // ie6, ie11, firefox で 負の値が返る\r
- console.log( 'invalid hScrollbarSize: ' + h );\r
- X.Dom.BoxModel.hScrollbarSize = w;\r
- };\r
- //\r
+X_ViewPort.listenOnce( X_TEMP.SYSTEM_EVENT_INIT, function(){\r
+ var node = X_Node_systemNode;\r
\r
node.cssText( 'width:10px;padding:1px;border:2px solid #0;margin:4px;' );\r
\r
- X.Dom.BoxModel.defaultBoxModel = node.width() === 10 ?\r
- X.Dom.BoxModel.BORDER_BOX :\r
- X.Dom.BoxModel.CONTENT_BOX;\r
+ X_Node_BoxModel.defaultBoxModel = node.width() === 10 ?\r
+ X_Node_BoxModel.BORDER_BOX :\r
+ X_Node_BoxModel.CONTENT_BOX;\r
\r
- if( X.Dom.BoxModel.defaultBoxModel === X.Dom.BoxModel.CONTENT_BOX ){\r
- X.Dom.BoxModel.boxSizingEnabled = node.cssText( 'width:10px;padding:1px;border:2px solid #0;margin:4px;' +\r
+ if( X_Node_BoxModel.defaultBoxModel === X_Node_BoxModel.CONTENT_BOX ){\r
+ X_Node_BoxModel.boxSizingEnabled = node.cssText( 'width:10px;padding:1px;border:2px solid #0;margin:4px;' +\r
'box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;-o-box-sizing:border-box;-ms-box-sizing:border-box;' )\r
.width() === 10;\r
};\r
// margin\r
// top\r
\r
- X.Dom.BoxModel.absoluteOffset =\r
+ X_Node_BoxModel.absoluteOffset =\r
node.cssText( 'position:absolute;top:0;left:0;margin:1px;border:2px solid #000;padding:4px;' )\r
.append( '<div></div>' )\r
.firstChild().cssText( 'position:absolute;top:8px;left:8px;margin:16px;border:32px solid #666;padding:64px;' )\r
console.log( 'xnode.width() : no parent' );\r
return 0;\r
};\r
- Node._body._updateTimerID && Node._body._startUpdate();\r
+ X_Node_body._updateTimerID && X_Node_startUpdate();\r
if( !this._root ){\r
console.log( 'xnode.width() : not belong tree.' );\r
return 0;\r
};\r
if( this._state & X_Node_State.DISPLAY_NONE ) return 0;\r
if( X_UA_DOM.W3C ){\r
- // this.css( X.Dom.Style.Unit.px, 'width' );\r
+ // this.css( X_Node_CSS_Unit.px, 'width' );\r
return this._rawObject.offsetWidth;\r
} else\r
if( X_UA_DOM.IE4 ){\r
- return ( this._rawObject || this._ie4getRawNode() ).offsetWidth;\r
+ return ( this._rawObject || X_Node__ie4getRawNode( this ) ).offsetWidth;\r
} else {\r
\r
};\r
console.log( 'xnode.height() : no parent' );\r
return 0;\r
};\r
- Node._body._updateTimerID && Node._body._startUpdate();\r
+ X_Node_body._updateTimerID && X_Node_startUpdate();\r
if( !this._root ){\r
console.log( 'xnode.height() : not belong tree.' );\r
return 0;\r
};\r
if( this._state & X_Node_State.DISPLAY_NONE ) return 0;\r
if( X_UA_DOM.W3C ){\r
- // this.css( X.Dom.Style.Unit.px, 'height' );\r
+ // this.css( X_Node_CSS_Unit.px, 'height' );\r
return this._rawObject.offsetHeight;\r
} else\r
if( X_UA_DOM.IE4 ){\r
- return ( this._rawObject || this._ie4getRawNode() ).offsetHeight;\r
+ return ( this._rawObject || X_Node__ie4getRawNode( this ) ).offsetHeight;\r
} else {\r
\r
};\r
console.log( 'xnode.width() : no parent' );\r
return 0;\r
};\r
- Node._body._updateTimerID && Node._body._startUpdate();\r
+ X_Node_body._updateTimerID && X_Node_startUpdate();\r
if( !this._root ){\r
console.log( 'xnode.width() : not belong tree.' );\r
return 0;\r
};\r
if( this._state & X_Node_State.DISPLAY_NONE ) return 0;\r
if( X_UA_DOM.W3C ){\r
- // this.css( X.Dom.Style.Unit.px, 'width' );\r
+ // this.css( X_Node_CSS_Unit.px, 'width' );\r
return this._rawObject.clientWidth;\r
} else\r
if( X_UA_DOM.IE4 ){\r
- return ( this._rawObject || this._ie4getRawNode() ).clientWidth;\r
+ return ( this._rawObject || X_Node__ie4getRawNode( this ) ).clientWidth;\r
} else {\r
\r
};\r
console.log( 'xnode.height() : no parent' );\r
return 0;\r
};\r
- Node._body._updateTimerID && Node._body._startUpdate();\r
+ X_Node_body._updateTimerID && X_Node_startUpdate();\r
if( !this._root ){\r
console.log( 'xnode.height() : not belong tree.' );\r
return 0;\r
};\r
if( this._state & X_Node_State.DISPLAY_NONE ) return 0;\r
if( X_UA_DOM.W3C ){\r
- // this.css( X.Dom.Style.Unit.px, 'height' );\r
+ // this.css( X_Node_CSS_Unit.px, 'height' );\r
return this._rawObject.clientHeight;\r
} else\r
if( X_UA_DOM.IE4 ){\r
- return ( this._rawObject || this._ie4getRawNode() ).clientHeight;\r
+ return ( this._rawObject || X_Node__ie4getRawNode( this ) ).clientHeight;\r
} else {\r
\r
};\r
console.log( 'xnode.width() : no parent' );\r
return 0;\r
};\r
- Node._body._updateTimerID && Node._body._startUpdate();\r
+ X_Node_body._updateTimerID && X_Node_startUpdate();\r
if( !this._root ){\r
console.log( 'xnode.width() : not belong tree.' );\r
return 0;\r
};\r
if( this._state & X_Node_State.DISPLAY_NONE ) return 0;\r
if( X_UA_DOM.W3C ){\r
- // this.css( X.Dom.Style.Unit.px, 'width' );\r
+ // this.css( X_Node_CSS_Unit.px, 'width' );\r
return this._rawObject.scrollWidth;\r
} else\r
if( X_UA_DOM.IE4 ){\r
- return ( this._rawObject || this._ie4getRawNode() ).scrollWidth;\r
+ return ( this._rawObject || X_Node__ie4getRawNode( this ) ).scrollWidth;\r
} else {\r
\r
};\r
console.log( 'xnode.height() : no parent' );\r
return 0;\r
};\r
- Node._body._updateTimerID && Node._body._startUpdate();\r
+ X_Node_body._updateTimerID && X_Node_startUpdate();\r
if( !this._root ){\r
console.log( 'xnode.height() : not belong tree.' );\r
return 0;\r
};\r
if( this._state & X_Node_State.DISPLAY_NONE ) return 0;\r
if( X_UA_DOM.W3C ){\r
- // this.css( X.Dom.Style.Unit.px, 'height' );\r
+ // this.css( X_Node_CSS_Unit.px, 'height' );\r
return this._rawObject.scrollHeight;\r
} else\r
if( X_UA_DOM.IE4 ){\r
- return ( this._rawObject || this._ie4getRawNode() ).scrollHeight;\r
+ return ( this._rawObject || X_Node__ie4getRawNode( this ) ).scrollHeight;\r
} else {\r
\r
};\r
console.log( 'xnode.scrollLeft() : no parent' );\r
return 0;\r
};\r
- Node._body._updateTimerID && Node._body._startUpdate();\r
+ X_Node_body._updateTimerID && X_Node_startUpdate();\r
if( !this._root ){\r
console.log( 'xnode.scrollLeft() : not belong tree.' );\r
return 0;\r
};\r
if( this._state & X_Node_State.DISPLAY_NONE ) return 0;\r
if( X_UA_DOM.W3C ){\r
- // this.css( X.Dom.Style.Unit.px, 'width' );\r
+ // this.css( X_Node_CSS_Unit.px, 'width' );\r
return this._rawObject.scrollLeft;\r
} else\r
if( X_UA_DOM.IE4 ){\r
- return ( this._rawObject || this._ie4getRawNode() ).scrollLeft;\r
+ return ( this._rawObject || X_Node__ie4getRawNode( this ) ).scrollLeft;\r
} else {\r
\r
};\r
console.log( 'xnode.scrollTop() : no parent' );\r
return 0;\r
};\r
- Node._body._updateTimerID && Node._body._startUpdate();\r
+ X_Node_body._updateTimerID && X_Node_startUpdate();\r
if( !this._root ){\r
console.log( 'xnode.scrollTop() : not belong tree.' );\r
return 0;\r
};\r
if( this._state & X_Node_State.DISPLAY_NONE ) return 0;\r
if( X_UA_DOM.W3C ){\r
- // this.css( X.Dom.Style.Unit.px, 'width' );\r
+ // this.css( X_Node_CSS_Unit.px, 'width' );\r
return this._rawObject.scrollTop;\r
} else\r
if( X_UA_DOM.IE4 ){\r
- return ( this._rawObject || this._ie4getRawNode() ).scrollTop;\r
+ return ( this._rawObject || X_Node__ie4getRawNode( this ) ).scrollTop;\r
} else {\r
\r
};\r
/* --------------------------------------\r
* x, y\r
* position:absolute かつ x か y が設定されていたら、再描画しないで css オブジェクトから計算した値を返す。 float は?\r
- * position:absolute の指定で自動で top,left を補う必要あり? -> X.Dom.Style\r
+ * position:absolute の指定で自動で top,left を補う必要あり? -> X.Node.CSS\r
* 親要素 border 外側からの値。 IE, Firefox, Safari, Chrome の offsetLeft/Topでは、border 内側なので補正する。\r
* transformX, Y は加える? アニメーション中は?\r
*/\r
-// X.Dom.Style.transform,\r
+// X_Node_CSS_transform,\r
Node.prototype.x = function(){\r
if( !this.parent ){\r
console.log( 'xnode.x() : no parent' );\r
return 0;\r
};\r
- Node._body._updateTimerID && Node._body._startUpdate();\r
+ X_Node_body._updateTimerID && X_Node_startUpdate();\r
if( !this._root ){\r
console.log( 'xnode.x() : not belong tree.' );\r
return 0;\r
};\r
if( this._state & X_Node_State.DISPLAY_NONE ) return 0;\r
if( X_UA_DOM.W3C ){\r
- // this.css( X.Dom.Style.Unit.px, 'left' );\r
- // this.css( X.Dom.Style.Unit.px, 'translateX' );\r
+ // this.css( X_Node_CSS_Unit.px, 'left' );\r
+ // this.css( X_Node_CSS_Unit.px, 'translateX' );\r
return this._rawObject.offsetLeft;\r
} else\r
if( X_UA_DOM.IE4 ){\r
- return ( this._rawObject || this._ie4getRawNode() ).offsetLeft;\r
+ return ( this._rawObject || X_Node__ie4getRawNode( this ) ).offsetLeft;\r
} else {\r
\r
};\r
console.log( 'xnode.y() : no parent' );\r
return 0;\r
};\r
- Node._body._updateTimerID && Node._body._startUpdate();\r
+ X_Node_body._updateTimerID && X_Node_startUpdate();\r
if( !this._root ){\r
console.log( 'xnode.y() : not belong tree.' );\r
return 0;\r
};\r
if( this._state & X_Node_State.DISPLAY_NONE ) return 0;\r
if( X_UA_DOM.W3C ){\r
- // this.css( X.Dom.Style.Unit.px, 'top' );\r
- // this.css( X.Dom.Style.Unit.px, 'transisitonY' );\r
+ // this.css( X_Node_CSS_Unit.px, 'top' );\r
+ // this.css( X_Node_CSS_Unit.px, 'transisitonY' );\r
return this._rawObject.offsetTop;\r
} else\r
if( X_UA_DOM.IE4 ){\r
- return ( this._rawObject || this._ie4getRawNode() ).offsetTop; \r
+ return ( this._rawObject || X_Node__ie4getRawNode( this ) ).offsetTop; \r
} else {\r
\r
};\r
console.log( 'xnode.offset() : no parent' );\r
return { x : 0, y : 0 };\r
};\r
- Node._body._updateTimerID && Node._body._startUpdate();\r
+ X_Node_body._updateTimerID && X_Node_startUpdate();\r
if( !this._root ){\r
console.log( 'xnode.offset() : not belong tree.' );\r
return { x : 0, y : 0 };\r
};\r
if( this._state & X_Node_State.DISPLAY_NONE ) return 0;\r
\r
- if( X.Dom.Node._body === this || X.Dom.Node._html === this ){\r
+ if( X.Doc.body === this || X.Doc.html === this ){\r
return { x : 0, y : 0 };\r
};\r
\r
elm = this._rawObject;\r
} else\r
if( X_UA_DOM.IE4 ){\r
- elm = this._rawObject || this._ie4getRawNode(); \r
+ elm = this._rawObject || X_Node__ie4getRawNode( this ); \r
} else {\r
\r
};\r
-var X_Node_Attr = {\r
- noValue : {\r
+var X_Node_Attr_noValue = {\r
checked : 1,\r
compact : 1,\r
declare : 1,\r
nowrap : 1,\r
readonly : 1,\r
selected : 1\r
- },\r
- renameForDOM : {\r
+},\r
+X_Node_Attr_renameForDOM = {\r
'class' : 'className',\r
accesskey : 'accessKey',\r
'accept-charset' : 'acceptCharset',\r
usemap : 'useMap',\r
valuetype : 'valueType',\r
checked : 'defaultChecked'\r
- },\r
- \r
- HAS_VALUE : {\r
+},\r
+\r
+X_Node_Attr_HAS_VALUE = {\r
INPUT : true,\r
TEXTAREA : true,\r
SELECT : true,\r
BUTTON : true\r
- },\r
- \r
- renameForTag : {},\r
+},\r
+\r
+X_Node_Attr_renameForTag = {};\r
// http://nanto.asablo.jp/blog/2005/10/29/123294\r
// checked -> defaultChecked\r
// 動的に生成した input 要素を文書ツリーに挿入する前に設定した checked 属性は反映されず、defaultChecked だと反映される\r
// 先頭にスペース\r
- objToAttrText : function( obj ){\r
- var noValue = X_Node_Attr.noValue,\r
+function X_Node_Attr_objToAttrText( obj ){\r
+ var noValue = X_Node_Attr_noValue,\r
attrs = [ '' ], n = 0, p, v;\r
if( !obj ) return ''; // Opera7\r
for( p in obj ){\r
attrs[ ++n ] = noValue[ p ] ? p : [ p, '="', v, '"' ].join( '' );\r
};\r
return 0 < n ? attrs.join( ' ' ) : '';\r
- }\r
};\r
\r
(function( renameForDOM, renameForTag ){\r
for( name in renameForDOM ){\r
renameForTag[ renameForDOM[ name ] ] = name;\r
};\r
-})( X_Node_Attr.renameForDOM, X_Node_Attr.renameForTag );\r
+})( X_Node_Attr_renameForDOM, X_Node_Attr_renameForTag );\r
\r
\r
\r
/* --------------------------------------\r
* attribute\r
- * X_Node_Attr.toIndex に定義されている 属性の場合\r
+ * X_Node_Attr_toIndex に定義されている 属性の場合\r
* \r
* http://nanto.asablo.jp/blog/2005/10/29/123294\r
* className, onclick等 はここで設定しない\r
* \r
*/\r
-X.Dom.Node.prototype.attr = function( nameOrObj /* v */ ){\r
+Node.prototype.attr = function( nameOrObj /* v */ ){\r
var attrs = this._attrs, newAttrs, f, p, elm, v;\r
\r
if( this._xnodeType !== 1 ) return this;\r
newAttrs = this._newAttrs || ( this._newAttrs = {} );\r
\r
for( p in nameOrObj ){\r
- if( this._setAttr( attrs, newAttrs, p, nameOrObj[ p ] ) === true ) f = true;\r
+ if( X_Node_Attr_setAttr( this, attrs, newAttrs, p, nameOrObj[ p ] ) === true ) f = true;\r
};\r
if( f ){\r
this._attrText = false;\r
this._dirty |= X_Node_Dirty.ATTR;\r
- this._root && this._reserveUpdate(); \r
+ this._root && X_Node_reserveUpdate(); \r
};\r
return this;\r
} else\r
if( 1 < arguments.length ){\r
// setter\r
- if( this._setAttr( attrs || ( this._attrs = {} ), this._newAttrs || ( this._newAttrs = {} ), nameOrObj, arguments[ 1 ] ) === true ){\r
+ if( X_Node_Attr_setAttr( this, attrs || ( this._attrs = {} ), this._newAttrs || ( this._newAttrs = {} ), nameOrObj, arguments[ 1 ] ) === true ){\r
this._attrText = false;\r
this._dirty |= X_Node_Dirty.ATTR;\r
- this._root && this._reserveUpdate();\r
+ this._root && X_Node_reserveUpdate();\r
};\r
return this;\r
} else\r
case 'selected' :\r
case 'disabled' : \r
case 'selectedIndex' :\r
- if( X_Node_Attr.HAS_VALUE[ this._tag ] ){\r
+ if( X_Node_Attr_HAS_VALUE[ this._tag ] ){\r
if( this._newAttrs && X_Object_inObject( nameOrObj, this._newAttrs ) ) return this._newAttrs[ nameOrObj ];\r
- if( elm = X_UA_DOM.IE4 ? this._rawObject || this._ie4getRawNode() : this._rawObject ){\r
+ if( elm = X_UA_DOM.IE4 ? this._rawObject || X_Node__ie4getRawNode( this ) : this._rawObject ){\r
if( !attrs ) attrs = this._attrs = {};\r
return attrs[ nameOrObj ] = elm[ nameOrObj ]; // getAttribute( nameOrObj )?\r
};\r
};\r
break;\r
};\r
- return attrs && attrs[ X_Node_Attr.renameForTag[ nameOrObj ] || nameOrObj ];\r
+ return attrs && attrs[ X_Node_Attr_renameForTag[ nameOrObj ] || nameOrObj ];\r
};\r
};\r
-X.Dom.Node.prototype._setAttr = function( attrs, newAttrs, name, v ){\r
+function X_Node_Attr_setAttr( that, attrs, newAttrs, name, v ){\r
switch( name ){\r
// case 'type' : TODO IE は input, button, object に対して type の再設定が出来ない _state が要素生成済なら不可\r
case 'UID' :\r
case 'tagName' :\r
return;\r
case 'id' :\r
- v = ( v !== 'ie4uid' + this._uid ) ? v : undefined;\r
- if( v !== this._id ){\r
- this._id = v;\r
- this._dirty |= X_Node_Dirty.ID;\r
- this._root && this._reserveUpdate();\r
+ v = ( v !== 'ie4uid' + that._uid ) ? v : undefined;\r
+ if( v !== that._id ){\r
+ that._id = v;\r
+ that._dirty |= X_Node_Dirty.ID;\r
+ that._root && X_Node_reserveUpdate();\r
};\r
return; \r
case 'class' :\r
case 'className' :\r
- return this.className( v );\r
+ return that.className( v );\r
case 'style' :\r
case 'cssText' :\r
- return this.cssText( v );\r
+ return that.cssText( v );\r
};\r
// debug\r
if( name.indexOf( 'on' ) === 0 ){\r
return;\r
};\r
\r
- name = X_Node_Attr.renameForTag[ name ] || name;\r
+ name = X_Node_Attr_renameForTag[ name ] || name;\r
if( attrs[ name ] === v ) return;\r
\r
if( v == null ){\r
*
* use X.Dom.Event
*/
-X.Dom.Style = {
-
- Type : {
+var
+X_Node_CSS_Type = {
LENGTH : 1,
PERCENT : 2,
COLOR : 2 < 2,
COMBI : 2 < 13
},
- UNIT : {
+X_Node_CSS_UNIT = {
'px' : 0,
'em' : 1,
'cm' : 2,
},
/* font-size -> fontSize */
- _DICTIONARY_CAMELIZE : {},
+X_Node_CSS__DICTIONARY_CAMELIZE = {},
- camelize : function( cssProp ){
- var me = X.Dom.Style,
- parts, l, i, camelized;
+X_Node_CSS_camelize = function( cssProp ){
+ var parts, l, i, camelized;
- if( camelized = me._DICTIONARY_CAMELIZE[ cssProp ] ) return camelized;
+ if( camelized = X_Node_CSS__DICTIONARY_CAMELIZE[ cssProp ] ) return camelized;
parts = cssProp.split( ' ' ).join( '' ).split( '-' );
l = parts.length;
if( l === 1 ) return parts[ 0 ];
for( i = 1; i < l; ++i ){
camelized += parts[ i ].charAt( 0 ).toUpperCase() + parts[ i ].substring( 1 );
};
- return me._DICTIONARY_CAMELIZE[ cssProp ] = camelized;
+ return X_Node_CSS__DICTIONARY_CAMELIZE[ cssProp ] = camelized;
},
/* fontSize -> font-size */
- CHAR_CODE_A : 'A'.charCodeAt( 0 ),
+X_Node_CSS_CHAR_CODE_A = 'A'.charCodeAt( 0 ),
- _DICTIONARY_UNCAMELIZE : {},
+X_Node_CSS__DICTIONARY_UNCAMELIZE = {},
- uncamelize : function( str ){
- var me = X.Dom.Style,
- A = me.CHAR_CODE_A,
- Z = A + 25,
- uncamelized, l, chr, code;
+X_Node_CSS_uncamelize = function( str ){
+ var A = X_Node_CSS_CHAR_CODE_A,
+ Z = A + 25,
+ uncamelized, l, chr, code, i;
str = str.split( ' ' ).join( '' );
- if( uncamelized = me._DICTIONARY_UNCAMELIZE[ str ] ) return uncamelized;
+ if( uncamelized = X_Node_CSS__DICTIONARY_UNCAMELIZE[ str ] ) return uncamelized;
uncamelized = '';
for( i = 0, l = str.length; i < l; ++i ){
chr = str.charAt( i );
code = chr.charCodeAt( 0 );
uncamelized += ( A <= code && code <= Z ) ? '-' + chr : chr;
};
- return me._DICTIONARY_UNCAMELIZE[ str ] = uncamelized.toLowerCase();
+ return X_Node_CSS__DICTIONARY_UNCAMELIZE[ str ] = uncamelized.toLowerCase();
},
/*
_FLOAT_BOX
_GRNERAL
*/
- VENDER_PREFIX : {},
+X_Node_CSS_VENDER_PREFIX = {},
- objToCssText : function( obj ){
+X_Node_CSS_objToCssText = function( obj ){
var css = [],
- me = X.Dom.Style,
- uncamelize = me.uncamelize,
- VENDER_PREFIX = me.VENDER_PREFIX,
- FIX_PROP = me.SPECIAL_FIX_PROP,
- SPECIAL_FIX = me.SPECIAL_FIX,
+ uncamelize = X_Node_CSS_uncamelize,
+ VENDER_PREFIX = X_Node_CSS_VENDER_PREFIX,
+ FIX_PROP = X_Node_CSS_SPECIAL_FIX_PROP,
+ SPECIAL_FIX = X_Node_CSS_SPECIAL_FIX,
n = -1,
p, v, name, sp;
if( !obj ) return ''; // Opera7.5 未満?
return css.join( ';' );
},
- IE_FILTER_FIX :
+X_Node_CSS_IE_FILTER_FIX =
X.UA.IE && X.UA.IE < 9 && !X.UA.MacIE ?
{
opacity : 1,
{} :
{},
- _UNIT_RATIO : null,
- _FONT_SIZE_RATIO : null,
+X_Node_CSS__UNIT_RATIO = {},
+X_Node_CSS__FONT_SIZE_RATIO = {},
// https://developer.mozilla.org/en-US/docs/Web/CSS/transform
// Firefox 3.5, ie9, Opera 10.5, Safari 3.1, Chrome
// ブラウザ毎の getComputedStyle の戻り値 http://d.hatena.ne.jp/uupaa/20080928/1222543331
- COLOR : {
+X_Node_CSS_COLOR = {
BLACK : 0x0,
RED : 0xFF0000,
LIME : 0x00FF00,
LEMONCHIFFON : 0xFFFACD
},
- parseColor : function( x ){
+X_Node_CSS_parseColor = function( x ){
var rgb, r, g, b;
if( X.Type.isNumber( x ) ){
} else
if( !X.Type.isString( x ) ) return;
- if( X.Type.isNumber( rgb = X.Dom.Style.COLOR[ x.toUpperCase() ] ) && 0x0 <= rgb && rgb <= 0xFFFFFF ){
+ if( X.Type.isNumber( rgb = X_Node_CSS_COLOR[ x.toUpperCase() ] ) && 0x0 <= rgb && rgb <= 0xFFFFFF ){
return rgb;
} else
if( x.charAt( 0 ) === '#' ){
return isFinite( r + b + g ) ? ( r << 16 ) + ( g << 8 ) + b : undefined;
},
- PARAMS : ( function(){
+X_Node_CSS_PARAMS = ( function(){
var ret = {};
register( ret.percent = {},
'marginBottom,marginLeft,marginRight,marginTop,paddingBottom,paddingLeft,paddingRight,paddingTop,fontSize,textIndent'
return ret;
})(),
- _CLIP_SEPARATOR : X.UA.IE && X.UA.IE < 8 ? ' ' : ',',
+X_Node_CSS__CLIP_SEPARATOR = X.UA.IE && X.UA.IE < 8 ? ' ' : ',',
/*
*
*/
- Property : X.Class.create(
+X_Node_CSS_Property = X.Class.create(
'Property',
X.Class.POOL_OBJECT,
{
this.value =
u === 'em' ?
v / this.xnode._getCharSize() :
- v / ( X.Dom.Style._UNIT_RATIO[ u ] || 1 );
+ v / ( X_Node_CSS__UNIT_RATIO[ u ] || 1 );
};
},
setValue: function( v ){
( u === 'em' || ( u === '' && this.name === 'lineHeight' ) ) ?
v * this.xnode._getCharSize() :
// u === '%'
- v / ( X.Dom.Style._UNIT_RATIO[ u ] || 1 );
+ v / ( X_Node_CSS__UNIT_RATIO[ u ] || 1 );
},
isValid: function(){
- var p = X.Dom.Style.PARAMS,
+ var p = X_Node_CSS_PARAMS,
n = this.name,
v = this.value,
u = this.unit,
/**
* backgroundPosition, clip
*/
- PropertyGroup : X.Class.create(
+X_Node_CSS_PropertyGroup = X.Class.create(
'PropertyGroup',
X.Class.POOL_OBJECT,
{
ret[ ret.length ] = ps[ i ].getValueText();
};
if( this.name === 'clip' ){
- return 'rect(' + ret.join( X.Dom.Style._CLIP_SEPARATOR ) + ')';
+ return 'rect(' + ret.join( X_Node_CSS__CLIP_SEPARATOR ) + ')';
};
return ret.join( ' ' );
},
* ie67 では rgb() は background-color で反応しない、、、
*/
- ColorProperty : X.Class.create(
+X_Node_CSS_ColorProperty = X.Class.create(
'ColorProperty',
X.Class.POOL_OBJECT, {
Constructor : function( name, x ){
b = 0,
a = 1,
rgb;
- if( X.Type.isNumber( rgb = x ) || X.Type.isNumber( rgb = X.Dom.Style.COLOR[ x.toUpperCase() ] ) ){
+ if( X.Type.isNumber( rgb = x ) || X.Type.isNumber( rgb = X_Node_CSS_COLOR[ x.toUpperCase() ] ) ){
r = ( rgb & 0xff0000 ) >> 16;
g = ( rgb & 0xff00 ) >> 8;
b = ( rgb & 0xff );
return this.r <= 255 && this.g <= 255 && this.b <= 255;
}
}
- ),
+ );
- _getProperty : function( xnode, css, unit, p ){
+function X_Node_CSS__getProperty( xnode, css, unit, p ){
- var XDomStyle = X.Dom.Style,
- me = XDomStyle._getProperty,
- PARAMS = XDomStyle.PARAMS,
- PropertyGroup = XDomStyle.PropertyGroup,
- Property = XDomStyle.Property,
- ColorProperty = XDomStyle.ColorProperty,
+ var me = X_Node_CSS__getProperty,
+ PARAMS = X_Node_CSS_PARAMS,
+ PropertyGroup = X_Node_CSS_PropertyGroup,
+ Property = X_Node_CSS_Property,
+ ColorProperty = X_Node_CSS_ColorProperty,
name, width;
if( PARAMS.special[ p ] === true || PARAMS.region[ p ] === true ){
all;
if( ret.isValid() === true ) return ret;
ret.kill();
- all = css[ p ].split( '(' )[ 1 ].split( ')' )[ 0 ].split( XDomStyle._CLIP_SEPARATOR );
+ all = css[ p ].split( '(' )[ 1 ].split( ')' )[ 0 ].split( X_Node_CSS__CLIP_SEPARATOR );
return
new PropertyGroup(
p,
_1 = all[ 1 ];
_2 = all[ 2 ];
_3 = all[ 3 ];
- vu = XDomStyle._splitValueAndUnit( _0 );
+ vu = X_Node_CSS__splitValueAndUnit( _0 );
v = vu[ 0 ];
u = vu[ 1 ];
switch( all.length ){
case 2 :
top = new Property( props[ 0 ], v, u, xnode );
bottom = new Property( props[ 2 ], v, u, xnode );
- vu = XDomStyle._splitValueAndUnit( _1 );
+ vu = X_Node_CSS__splitValueAndUnit( _1 );
v = vu[ 0 ];
u = vu[ 1 ];
right = new Property( props[ 1 ], v, u, xnode );
break;
case 3 :
top = new Property( props[ 0 ], v, u, xnode );
- vu = XDomStyle._splitValueAndUnit( _1 );
+ vu = X_Node_CSS__splitValueAndUnit( _1 );
v = vu[ 0 ];
u = vu[ 1 ];
right = new Property( props[ 1 ], v, u, xnode );
left = new Property( props[ 3 ], v, u, xnode );
- vu = XDomStyle._splitValueAndUnit( _2 );
+ vu = X_Node_CSS__splitValueAndUnit( _2 );
v = vu[ 0 ];
u = vu[ 1 ];
bottom = new Property( props[ 2 ], v, u, xnode );
break;
case 4 :
top = new Property( props[ 0 ], v, u, xnode );
- vu = XDomStyle._splitValueAndUnit( _1 );
+ vu = X_Node_CSS__splitValueAndUnit( _1 );
v = vu[ 0 ];
u = vu[ 1 ];
right = new Property( props[ 1 ], v, u, xnode );
- vu = XDomStyle._splitValueAndUnit( _2 );
+ vu = X_Node_CSS__splitValueAndUnit( _2 );
v = vu[ 0 ];
u = vu[ 1 ];
bottom = new Property( props[ 2 ], v,u, xnode );
- vu = XDomStyle._splitValueAndUnit( _3 );
+ vu = X_Node_CSS__splitValueAndUnit( _3 );
v = vu[ 0 ];
u = vu[ 1 ];
left = new Property( props[ 3 ], v, u, xnode );
if( ret.isValid() === true ) return ret;
ret.kill();
xy = css[ p ].split( ' ' );
- x = XDomStyle._splitValueAndUnit( xy[ 0 ] );
- y = XDomStyle._splitValueAndUnit( xy[ 1 ] );
+ x = X_Node_CSS__splitValueAndUnit( xy[ 0 ] );
+ y = X_Node_CSS__splitValueAndUnit( xy[ 1 ] );
return
new PropertyGroup(
p,
);
};
// opacity, zindex, lineHeight
- vu = XDomStyle._splitValueAndUnit( css[ p ] );
+ vu = X_Node_CSS__splitValueAndUnit( css[ p ] );
return new Property( p, vu[ 0 ], vu[ 1 ], xnode );
};
var x = css[ p ], e, v, u;
if( p === 'left' ) v = e.offsetLeft;
if( p === 'right' ) v = e.offsetRight;
u = _getUnit( x, p );
- // alert( p + XDomStyle._Util.pxTo( v, u ) + u )
- return new Property( p, XDomStyle._Util.pxTo( v, u ), u, xnode );
+ // alert( p + X_Node_CSS__Util.pxTo( v, u ) + u )
+ return new Property( p, X_Node_CSS__Util.pxTo( v, u ), u, xnode );
}; */
- if( p === 'fontSize' && ( v = XDomStyle._FONT_SIZE_RATIO[ x ] ) ){ // xx-small 等
+ if( p === 'fontSize' && ( v = X_Node_CSS__FONT_SIZE_RATIO[ x ] ) ){ // xx-small 等
return new Property( p, v, 'px', xnode );
};
if( PARAMS.offset[ p ] || PARAMS.percent[ p ] || PARAMS.size[ p ] ){
- vu = XDomStyle._splitValueAndUnit( x );
+ vu = X_Node_CSS__splitValueAndUnit( x );
return new Property( p, vu[ 0 ], vu[ 1 ], xnode );
};
if( PARAMS.color[ p ] ) return new ColorProperty( p, x );
- },
+ };
- _splitValueAndUnit : function( v ){
+function X_Node_CSS__splitValueAndUnit( v ){
var num, _num, u;
if( X.Type.isNumber( v ) ) return [ v || 0, '' ];
if( isNaN( num = parseFloat( v ) ) ) return [ 0, '' ];
_num = '' + num;
if( _num.indexOf( '0.' ) === 0 ) _num = _num.slice( 1 );
u = v.substr( v.indexOf( _num ) + _num.length );
- return [ num, X.Dom.Style.UNIT[ u ] ? u : 'px' ];
- }
-};
+ return [ num, X_Node_CSS_UNIT[ u ] ? u : 'px' ];
+ };
-X.Dom.Style._GET_VALUE_WITH_UNIT = {
- borderWidth : X.Dom.Style.Type.QUARTET | X.Dom.Style.Type.LENGTH,
- //borderStyle : X.Dom.Style.Type.QUARTET,
- borderRadius : X.Dom.Style.Type.QUARTET | X.Dom.Style.Type.LENGTH,
- margin : X.Dom.Style.Type.QUARTET | X.Dom.Style.Type.LENGTH | X.Dom.Style.Type.PERCENT,
- padding : X.Dom.Style.Type.QUARTET | X.Dom.Style.Type.LENGTH | X.Dom.Style.Type.PERCENT,
- clip : X.Dom.Style.Type.QUARTET | X.Dom.Style.Type.LENGTH | X.Dom.Style.Type.PERCENT,
+var X_Node_CSS__GET_VALUE_WITH_UNIT = {
+ borderWidth : X_Node_CSS_Type.QUARTET | X_Node_CSS_Type.LENGTH,
+ //borderStyle : X_Node_CSS_Type.QUARTET,
+ borderRadius : X_Node_CSS_Type.QUARTET | X_Node_CSS_Type.LENGTH,
+ margin : X_Node_CSS_Type.QUARTET | X_Node_CSS_Type.LENGTH | X_Node_CSS_Type.PERCENT,
+ padding : X_Node_CSS_Type.QUARTET | X_Node_CSS_Type.LENGTH | X_Node_CSS_Type.PERCENT,
+ clip : X_Node_CSS_Type.QUARTET | X_Node_CSS_Type.LENGTH | X_Node_CSS_Type.PERCENT,
- backgroundColor : X.Dom.Style.Type.COLOR,
- backgroundPosition : X.Dom.Style.Type.COMBI,
+ backgroundColor : X_Node_CSS_Type.COLOR,
+ backgroundPosition : X_Node_CSS_Type.COMBI,
// boxShadow
- fontSize : X.Dom.Style.Type.LENGTH,
- lineHeight : X.Dom.Style.Type.LENGTH | X.Dom.Style.Type.PERCENT | X.Dom.Style.Type.NUMERICAL,
- textIndent : X.Dom.Style.Type.LENGTH,
- letterSpacing : X.Dom.Style.Type.LENGTH,
- wordSpacing : X.Dom.Style.Type.LENGTH,
+ fontSize : X_Node_CSS_Type.LENGTH,
+ lineHeight : X_Node_CSS_Type.LENGTH | X_Node_CSS_Type.PERCENT | X_Node_CSS_Type.NUMERICAL,
+ textIndent : X_Node_CSS_Type.LENGTH,
+ letterSpacing : X_Node_CSS_Type.LENGTH,
+ wordSpacing : X_Node_CSS_Type.LENGTH,
/*
- textShadowColor : X.Dom.Style.Type.COLOR,
- textShadowOffsetX : X.Dom.Style.Type.LENGTH,
- textShadowOffsetY : X.Dom.Style.Type.LENGTH,
- textShadowBlur : X.Dom.Style.Type.LENGTH, */
+ textShadowColor : X_Node_CSS_Type.COLOR,
+ textShadowOffsetX : X_Node_CSS_Type.LENGTH,
+ textShadowOffsetY : X_Node_CSS_Type.LENGTH,
+ textShadowBlur : X_Node_CSS_Type.LENGTH, */
- width : X.Dom.Style.Type.LENGTH | X.Dom.Style.Type.PERCENT,
- height : X.Dom.Style.Type.LENGTH | X.Dom.Style.Type.PERCENT,
+ width : X_Node_CSS_Type.LENGTH | X_Node_CSS_Type.PERCENT,
+ height : X_Node_CSS_Type.LENGTH | X_Node_CSS_Type.PERCENT,
- left : X.Dom.Style.Type.LENGTH | X.Dom.Style.Type.PERCENT,
- top : X.Dom.Style.Type.LENGTH | X.Dom.Style.Type.PERCENT,
- bottom : X.Dom.Style.Type.LENGTH | X.Dom.Style.Type.PERCENT,
- right : X.Dom.Style.Type.LENGTH | X.Dom.Style.Type.PERCENT,
+ left : X_Node_CSS_Type.LENGTH | X_Node_CSS_Type.PERCENT,
+ top : X_Node_CSS_Type.LENGTH | X_Node_CSS_Type.PERCENT,
+ bottom : X_Node_CSS_Type.LENGTH | X_Node_CSS_Type.PERCENT,
+ right : X_Node_CSS_Type.LENGTH | X_Node_CSS_Type.PERCENT,
// table
- borderSpacing : X.Dom.Style.Type.LENGTH
+ borderSpacing : X_Node_CSS_Type.LENGTH
};
-X.Dom.Style.SPECIAL_FIX =
+var X_Node_CSS_SPECIAL_FIX =
// ~IE8
X.UA.IE && X.UA.IE < 9 && !X.UA.MacIE?
(function( obj ){
- var test = X.Dom.Style.SPECIAL_FIX_PROP,
+ var test = X_Node_CSS_SPECIAL_FIX_PROP,
filters = [],
n = -1,
p, id, v, dir;
// box-shadow: 10px 10px 10px 10px rgba(0,0,0,0.4) inset;
// スペース区切りで、水平方向の距離 垂直方向の距離 ぼかし距離 広がり距離 影の色 insetキーワードを指定する。 ぼかし距離 広がり距離 影の色 insetキーワードは省略可
// shadow(color=#cccccc, strength=10, direction=135);
- v = X.Dom.Style._getProperty( this, css, 'px', 'boxShadow' );
+ v = X_Node_CSS__getProperty( this, css, 'px', 'boxShadow' );
dir = Math.atan2( v[ 1 ], v[ 0 ] ) * 180 / Math.PI + 90;
dir += dir < 0 ? 360 : 0;
filters[ ++n ] = 'shadow(color=' + v[ 4 ] + ',strength=' + v[ 3 ] + ',direction=' + dir + ')';
// IE9 textShadow に filter を使用
X.UA.IE && 9 <= X.UA.IE && X.UA.IE < 10 ?
(function( obj ){
- var test = X.Dom.Style.SPECIAL_FIX_PROP,
+ var test = X_Node_CSS_SPECIAL_FIX_PROP,
filters = [], p, id, v;
for( p in obj ){
if( !( id = test[ p ] ) ) continue;
if( filters ) return filters.join( ' ' );
}) :
(function( obj ){
- var test = X.Dom.Style.SPECIAL_FIX_PROP,
+ var test = X_Node_CSS_SPECIAL_FIX_PROP,
ret = [], p, id, v, bgpX, bgpY, clipT, clipB, clipL, clipR;
for( p in obj ){
if( !( id = test[ p ] ) ) continue;
// obj setter
// name, value setter
-X.Dom.Node.prototype.css = function( nameOrObj /* orUnitID, valuOrUnitOrName */ ){
- var XDomStyle = X.Dom.Style,
- args = arguments,
+Node.prototype.css = function( nameOrObj /* orUnitID, valuOrUnitOrName */ ){
+ var args = arguments,
css = this._css,
p, name, v, camelize, unit, ieFix;
if( this._xnodeType !== 1 ) return this;
// setter:object
if( X.Type.isObject( nameOrObj ) ){
if( !css ) css = this._css = {};
- camelize = XDomStyle.camelize;
- ieFix = X.Dom.Style.IE_FILTER_FIX;
+ camelize = X_Node_CSS_camelize;
+ ieFix = X_Node_CSS_IE_FILTER_FIX;
for( p in nameOrObj ){
if( ieFix[ p ] ){
this._dirty |= X_Node_Dirty.IE_FILTER;
};
};
this._dirty |= X_Node_Dirty.CSS;
- this.parent && this._reserveUpdate();
+ this.parent && X_Node_reserveUpdate();
delete this._cssText;
return this;
} else
if( 1 < args.length ){
- if( !XDomStyle.UNIT[ nameOrObj ] ){
+ if( !X_Node_CSS_UNIT[ nameOrObj ] ){
// setter name, value
if( !css ) css = this._css = {};
- name = XDomStyle.camelize( nameOrObj );
+ name = X_Node_CSS_camelize( nameOrObj );
v = args[ 1 ];
if( css[ name ] === v ) return this;
- if( X.Dom.Style.IE_FILTER_FIX[ name ] ){
+ if( X_Node_CSS_IE_FILTER_FIX[ name ] ){
this._dirty |= X_Node_Dirty.IE_FILTER;
};
if( !v && v !== 0 ){
v === 'none' ? ( this._state |= X_Node_State.DISPLAY_NONE ) : ( this._state &= ~X_Node_State.DISPLAY_NONE );
};
// parent でなく this._root! でなくて this._state & in tree
- this.parent && this._reserveUpdate();
+ this.parent && X_Node_reserveUpdate();
return this;
};
// getter unit
// unit 付の値取得は fontSize と 画像サイズが確定していないと正確に取れない。内部のみにする?
if( !css ) return;
- if( !XDomStyle._GET_VALUE_WITH_UNIT[ name = XDomStyle.camelize( args[ 1 ] ) ] ) return null;
- p = XDomStyle._getProperty( this, css, nameOrObj, name );
+ if( !X_Node_CSS__GET_VALUE_WITH_UNIT[ name = X_Node_CSS_camelize( args[ 1 ] ) ] ) return null;
+ p = X_Node_CSS__getProperty( this, css, nameOrObj, name );
v = p.pxTo( nameOrObj );
p.kill();
return v;
if( !css ) return;
// 集計 border, padding, margin, backgroundPosition, clip
// border で正確なデータを返せない時は、null を返す
- return css[ XDomStyle.camelize( nameOrObj ) ];
+ return css[ X_Node_CSS_camelize( nameOrObj ) ];
};
-X.Dom.Node.prototype.cssText = function( v ){
+Node.prototype.cssText = function( v ){
var obj, i, l, attr, name;
if( v === '' ){
delete this._css;
this._state &= ~X_Node_State.IE5_DISPLAY_NONE_FIX;
this._dirty |= X_Node_Dirty.CSS;
- this.parent && this._reserveUpdate();
+ this.parent && X_Node_reserveUpdate();
delete this._cssText;
return this;
} else
return this.css( obj );
};
// getter
- if( this._dirty & X_Node_Dirty.CSS && !( this._cssText = X.Dom.Style.objToCssText( this._css ) ) ){
+ if( this._dirty & X_Node_Dirty.CSS && !( this._cssText = X_Node_CSS_objToCssText( this._css ) ) ){
delete this._cssText;
};
return this._cssText;
* body に css attr がセットされた場合には X_ViewPort_baseFontSize をクリア
*/
-X.Dom.Node.prototype._getCharSize =
+Node.prototype._getCharSize =
window.getComputedStyle ?
(function(){
- Node._body._updateTimerID && Node._body._startUpdate();
- if( this === Node._body && X_ViewPort_baseFontSize ) return X_ViewPort_baseFontSize;
+ X_Node_body._updateTimerID && X_Node_startUpdate();
+ if( this === X_Node_body && X_ViewPort_baseFontSize ) return X_ViewPort_baseFontSize;
if( this._fontSize ) return this._fontSize;
return this._fontSize = parseFloat( getComputedStyle( this._rawObject, null ).fontSize );
}) :
document.defaultView && document.defaultView.getComputedStyle ?
(function(){
- Node._body._updateTimerID && Node._body._startUpdate();
- if( this === Node._body && X_ViewPort_baseFontSize ) return X_ViewPort_baseFontSize;
+ X_Node_body._updateTimerID && X_Node_startUpdate();
+ if( this === X_Node_body && X_ViewPort_baseFontSize ) return X_ViewPort_baseFontSize;
if( this._fontSize ) return this._fontSize;
return this._fontSize = parseFloat( document.defaultView.getComputedStyle( this._rawObject, null ).fontSize );
}) :
-
-
-
-
-
-
-
-
5.5 <= X.UA.IE ?
(function(){
var font, vu, v, u, _v;
- Node._body._updateTimerID && Node._body._startUpdate();
- if( this === Node._body && X_ViewPort_baseFontSize ) return X_ViewPort_baseFontSize;
+ X_Node_body._updateTimerID && X_Node_startUpdate();
+ if( this === X_Node_body && X_ViewPort_baseFontSize ) return X_ViewPort_baseFontSize;
if( this._fontSize ) return this._fontSize;
font = this._rawObject.currentStyle.fontSize;
//font = this._css && this._css.fontSize || '1em';
- vu = X.Dom.Style._splitValueAndUnit( font );
+ vu = X_Node_CSS__splitValueAndUnit( font );
v = vu[ 0 ];
u = vu[ 1 ];
if( v === 0 ){
- if( v = X.Dom.Style._FONT_SIZE_RATIO[ font ] ) return this._fontSize = v;
+ if( v = X_Node_CSS__FONT_SIZE_RATIO[ font ] ) return this._fontSize = v;
} else {
- if( _v = X.Dom.Style._UNIT_RATIO[ u ] ) return this._fontSize = v / _v;
+ if( _v = X_Node_CSS__UNIT_RATIO[ u ] ) return this._fontSize = v / _v;
};
switch( u ){
case 'px' :
X_UA_DOM.W3C ?
(function(){
var elm, v;
- Node._body._updateTimerID && Node._body._startUpdate();
- if( this === Node._body && X_ViewPort_baseFontSize ) return X_ViewPort_baseFontSize;
+ X_Node_body._updateTimerID && X_Node_startUpdate();
+ if( this === X_Node_body && X_ViewPort_baseFontSize ) return X_ViewPort_baseFontSize;
if( this._fontSize ) return this._fontSize;
this._rawObject.appendChild( elm = document.createElement( 'span' ) );
X_UA_DOM.IE4 ?
(function(){
var font, vu, v, u, _v;
- Node._body._updateTimerID && Node._body._startUpdate();
- if( this === Node._body && X_ViewPort_baseFontSize ) return X_ViewPort_baseFontSize;
+ X_Node_body._updateTimerID && X_Node_startUpdate();
+ if( this === X_Node_body && X_ViewPort_baseFontSize ) return X_ViewPort_baseFontSize;
if( this._fontSize ) return this._fontSize;
if( this._css && ( font = this._css.fontSize ) ){
- vu = X.Dom.Style._splitValueAndUnit( font );
+ vu = X_Node_CSS__splitValueAndUnit( font );
v = vu[ 0 ];
u = vu[ 1 ];
if( v === 0 ){
- if( _v = X.Dom.Style._FONT_SIZE_RATIO[ font ] ) return this._fontSize = _v;
+ if( _v = X_Node_CSS__FONT_SIZE_RATIO[ font ] ) return this._fontSize = _v;
} else {
- if( _v = X.Dom.Style._UNIT_RATIO[ u ] ) return this._fontSize = v / _v;
+ if( _v = X_Node_CSS__UNIT_RATIO[ u ] ) return this._fontSize = v / _v;
};
} else {
v = 1;
};
return 0;
}) :
+ // ie5?
(function(){
var elm, v;
- if( this === Node._body && X_ViewPort_baseFontSize ) return X_ViewPort_baseFontSize;
- Node._body._updateTimerID && Node._body._startUpdate();
+ if( this === X_Node_body && X_ViewPort_baseFontSize ) return X_ViewPort_baseFontSize;
+ X_Node_body._updateTimerID && X_Node_startUpdate();
if( this._fontSize ) return this._fontSize;
- elm = this._rawObject || this._ie4getRawNode();
+ elm = this._rawObject;
elm.insertAdjacentHTML( 'BeforeEnd', '<span style="visivility:hidden;line-height:1;">X</span>' );
elm = elm.children[ elm.children.length - 1 ];
v = elm.offsetHeight;
});
+X.CSS = {
+
+ VENDER_PREFIX : X_Node_CSS_VENDER_PREFIX,
+
+ parseColor : X_Node_CSS_parseColor,
+
+ uncamelize : X_Node_CSS_uncamelize
+};
+
+
+
+var X_Node_CSS_Support, X_Node_CSS_SPECIAL_FIX_PROP;
+
( function(){
var testStyle = X.UA.IE4 ? {} : ( document.documentElement || document.createElement( 'div' ) ).style,
temp = testStyle.cssText,
- prefix = X.Dom.Style.VENDER_PREFIX,
+ prefix = X_Node_CSS_VENDER_PREFIX,
vendors = 'webkit,Webkit,Moz,moz,Ms,ms,O,o,khtml,Khtml'.split( ',' ),
searches = (
'opacity,boxSizing,' +
testStyle.cssText = 'background:rgba(0,0,0,0.5)';
- X.Dom.Style.Support = {
+ X.CSS.Support = X_Node_CSS_Support = {
rgba : !!testStyle.background
};
testStyle.cssText = temp;
- X.Dom.Style.SPECIAL_FIX_PROP =
+ X_Node_CSS_SPECIAL_FIX_PROP =
// ~IE8
X.UA.IE < 9 && !X.UA.MacIE ?
{
};
} )();
-X.ViewPort.listenOnce( X_TEMP.SYSTEM_EVENT_INIT, function(){
- var xnode = Node._systemNode,
- output = X.Dom.Style._UNIT_RATIO = {},
+X_ViewPort.listenOnce( X_TEMP.SYSTEM_EVENT_INIT, function(){
+ var xnode = X_Node_systemNode,
+ output = X_Node_CSS__UNIT_RATIO,
list = 'cm,mm,in,pt,pc'.split( ',' ),
- unit,size, base, i;
+ unit, size, base, i;
for( i = list.length; i; ){
unit = list[ --i ];
output[ unit ] = xnode.css( 'width', 10 + unit ).width() / 10;
};
- output = X.Dom.Style._FONT_SIZE_RATIO = {},
+ output = X_Node_CSS__FONT_SIZE_RATIO,
list = 'xx-large,x-large,large,larger,medium,small,smaller,x-small,xx-small'.split( ',' );
xnode.css( { lineHeight : '100%', height : '1em' } ).text( 'X' );
\r
-X.Dom.NodeList = function( v ){\r
+function X_NodeList( v ){\r
var args = [],\r
l = arguments.length,\r
i = 0,\r
args.push.apply( args, arguments[ i ] );\r
};\r
//alert( arguments[ 0 ].length + ' , ' + args.length )\r
- if( ( l = args.length ) === 1 ) return new X.Dom.Node( args[ 0 ] );\r
- if( !this || this.append !== X.Dom.NodeList.prototype.append ) return new X.Dom.NodeList( args );\r
+ if( ( l = args.length ) === 1 ) return new Node( args[ 0 ] );\r
+ if( !this || this.append !== X_NodeList.prototype.append ) return new X_NodeList( args );\r
\r
for( i = 0; i < l; ++i ){\r
xnode = args[ i ];\r
- //xnode = xnode && xnode.constructor === X.Dom.Node ? xnode : new X.Dom.Node( xnode );\r
+ //xnode = xnode && xnode.constructor === Node ? xnode : new Node( xnode );\r
skip = false;\r
if( xnode._xnodeType === 0 ) continue;\r
for( j = 0; j < n; ++j ){\r
};\r
};\r
};\r
-X.Dom.NodeList.prototype.length = 0;\r
+X_NodeList.prototype.length = 0;\r
\r
-X.Dom.NodeList.prototype.each = function( func /* opt_args... */ ){\r
+X_NodeList.prototype.each = function( func /* opt_args... */ ){\r
var l = this.length,\r
i = 0, args;\r
\r
/* --------------------------------------\r
* Fuction Base, multi, getter, setter,\r
*/\r
-X.ViewPort.listenOnce( X_TEMP.SYSTEM_EVENT_PRE_INIT, function(){\r
- var target = X.Dom.NodeList.prototype,\r
- src = X.Dom.Node.prototype,\r
+X_ViewPort.listenOnce( X_TEMP.SYSTEM_EVENT_PRE_INIT, function(){\r
+ var target = X_NodeList.prototype,\r
+ src = Node.prototype,\r
p, v, multi;\r
for( p in src ){\r
v = src[ p ];\r
if( X.Type.isFunction( v ) && !target[ p ] ){\r
target[ p ] = multi = new Function( [\r
- 'var a=arguments,f=X.Dom.Node.prototype.', p, ',t=this,i,l=t.length;',\r
+ 'var a=arguments,f=X.Node.prototype.', p, ',t=this,i,l=t.length;',\r
'if(l)',\r
'for(i=0;i<l;++i)if(i===l-1)return f.apply(t[i],a);else f.apply(t[i],a);',\r
'return f.apply(t,a)'\r
* http://standards.mitsue.co.jp/resources/w3c/TR/css3-selectors/#nth-child-pseudo\r
*/\r
\r
-X.Dom.Query = {\r
- _PSEUDO : {\r
+var\r
+ X_Node_Selector__PSEUDO = {\r
'nth-child' : 9,\r
'nth-last-child' : 14,\r
'nth-of-type' : 11,\r
'first-of-type' : 13\r
},\r
\r
- _COMBINATOR : {\r
+ X_Node_Selector__COMBINATOR = {\r
'' : 0, // none\r
' ' : 1, // 子孫セレクタ\r
'>' : 2, // 子セレクタ\r
',' : 5,\r
'@' : 6 // XML 用の拡張、属性ノードを辿る http://www.marguerite.jp/Nihongo/WWW/RefDOM/_Attr_interface.html\r
},\r
- _SELECTOR : {\r
+ X_Node_Selector__SELECTOR = {\r
'' : 0, // none\r
tag : 1,\r
'#' : 2,\r
root : 8,\r
link : 9\r
},\r
- _OPERATORS : { '==' : 1, '!=': 2, '~=': 3, '^=': 4, '$=': 5, '*=': 6, '|=': 7 }, // '':0 は属性が存在するならtrue\r
+ X_Node_Selector__OPERATORS = { '==' : 1, '!=': 2, '~=': 3, '^=': 4, '$=': 5, '*=': 6, '|=': 7 }, // '':0 は属性が存在するならtrue\r
// TODO { a : 1, A : 2, _ : 3,,, }\r
- _ALPHABET : 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-0123456789\\',\r
- _NUMBER : '+-0123456789'\r
-};\r
+ X_Node_Selector__ALPHABET = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-0123456789\\',\r
+ X_Node_Selector__NUMBER = '+-0123456789';\r
\r
/*\r
* セレクタ文字列の解析、但し一挙に行わず、ひと塊づつ\r
* ' ' 子孫セレクタ, '>' 直下,'+','~' の場合、tagName|* を返す\r
* return [ 今回のパースで解析した終端位置, [ selector, ... ] ] error: return pointer\r
*/\r
-X.Dom.Query._parse = function( query, last ){\r
- var COMBINATOR = X.Dom.Query._COMBINATOR,\r
- SELECTOR = X.Dom.Query._SELECTOR,\r
- OPERATORS = X.Dom.Query._OPERATORS,\r
- ALPHABET = X.Dom.Query._ALPHABET,\r
- NUMBER = X.Dom.Query._NUMBER,\r
+function X_Node_Selector__parse( query, last ){\r
+ var COMBINATOR = X_Node_Selector__COMBINATOR,\r
+ SELECTOR = X_Node_Selector__SELECTOR,\r
+ OPERATORS = X_Node_Selector__OPERATORS,\r
+ ALPHABET = X_Node_Selector__ALPHABET,\r
+ NUMBER = X_Node_Selector__NUMBER,\r
result = [],\r
i = -1,\r
l = query.length,\r
};\r
\r
// セレクター\r
- X.Dom.find = X._shortcut = Node.prototype.find = X.Dom.NodeList.prototype.find = function( queryString ){\r
- var HTML = Node._html,\r
- scope = this.constructor === X.Dom.NodeList && this.length ? this : [ this.constructor === Node ? this : Node._body ],\r
+ X.Doc.find = X._shortcut = Node.prototype.find = X_NodeList.prototype.find = function( queryString ){\r
+ var HTML = X_Node_html,\r
+ scope = this.constructor === X_NodeList && this.length ? this : [ this.constructor === Node ? this : X_Node_body ],\r
parents = scope, // 探索元の親要素 XNodeList の場合あり\r
// TODO { title : true,,, }\r
noLower = 'title id name class for action archive background cite classid codebase data href longdesc profile src usemap',// + X_Dom_DTD_ATTR_VAL_IS_URI.join( ' ' ),\r
ARY_PUSH = Array.prototype.push,\r
ret = [], // 結果要素\r
- root = X.Dom.Node.getRoot( scope[ 0 ] ),\r
- isXML = !!X.Dom.Node.isXmlDocument( root ),\r
+ root = X_Node_getRoot( scope[ 0 ] ),\r
+ isXML = !!X_Node_isXmlDocument( root ),\r
isMulti = 1 < scope.length,// 要素をマージする必要がある\r
isStart = true,\r
_ = ' ',\r
\r
// 初期化処理\r
if( !parsed ){\r
- parsed = X.Dom.Query._parse( queryString );\r
+ parsed = X_Node_Selector__parse( queryString );\r
\r
if( typeof parsed === 'number' ){\r
// error\r
queryString = queryString.substr( parsed[ 0 ] );\r
parsed = parsed[ 1 ];\r
\r
- //console.log( 'X.Dom.Query._parse ' + parsed );\r
+ //console.log( 'X_Node_Selector__parse ' + parsed );\r
\r
if( parsed === 5 ){\r
isMulti = true;\r
//console.log( l + ' > ' + xnodes.length + ' tag:' + tagName );\r
for( ; i < l; ++i ){\r
xnode = parents[ i ];\r
- xnode._xnodes && xnode._xnodes.length && X.Dom.Query._fetchElements( xnodes, xnode, isAll ? null : tagName );\r
+ xnode._xnodes && xnode._xnodes.length && X_Node_Selector__fetchElements( xnodes, xnode, isAll ? null : tagName );\r
};\r
//console.log( l + ' >> ' + xnodes.length + ' tag:' + tagName );\r
};\r
filter = [ 'class', 3 /*'~='*/, name ]; break;\r
// :, 擬似クラス\r
case 4 :\r
- if( !( filter = X.Dom.Query._filter[ name ] ) ){\r
+ if( !( filter = X_Node_Selector__filter[ name ] ) ){\r
return [];\r
};\r
break;\r
op = filter[ 1 ];\r
val = filter[ 2 ];\r
\r
- key = X_Node_Attr.renameForTag[ key ] || key;\r
+ key = X_Node_Attr_renameForTag[ key ] || key;\r
\r
// [class~='val']\r
if( !isXML && key === 'class' && op === 3 ){\r
//flag_call ?\r
// funcAttr( elem, key ) :\r
//useName ?\r
- // elem[ X_Node_Attr.renameForDOM[ key ] || key ] :\r
+ // elem[ X_Node_Attr_renameForDOM[ key ] || key ] :\r
// elem.getAttribute( key, 2 );\r
flag = attr != null;// && ( !useName || attr !== '' );\r
if( flag && op ){\r
if( isMulti ){\r
xnodes && xnodes.length && ARY_PUSH.apply( ret, xnodes );\r
l = ret.length;\r
- if( l < 2 ) return ret[ 0 ] || Node.none;\r
+ if( l < 2 ) return ret[ 0 ] || X_Node_none;\r
\r
xnodes = [];\r
merge = {};\r
xnodes[ ++n ] = xnode;\r
};\r
};\r
- X.Dom.Query._sortElementOrder( ret = [], xnodes, hasRoot ? [ HTML ] : HTML._xnodes );\r
+ X_Node_Selector__sortElementOrder( ret = [], xnodes, hasRoot ? [ HTML ] : HTML._xnodes );\r
xnodes = ret;\r
};\r
\r
- return xnodes.length === 1 ? xnodes[ 0 ] : new X.Dom.NodeList( xnodes );\r
+ return xnodes.length === 1 ? xnodes[ 0 ] : new X_NodeList( xnodes );\r
};\r
\r
- X.Dom.Query._sortElementOrder = function( newList, list, xnodes ){\r
+ function X_Node_Selector__sortElementOrder( newList, list, xnodes ){\r
var l = xnodes.length,\r
i = 0,\r
j, child, _xnodes;\r
};\r
if( list.length === 0 ) return true;\r
};\r
- if( ( _xnodes = child._xnodes ) && X.Dom.Query._sortElementOrder( newList, list, _xnodes ) ){\r
+ if( ( _xnodes = child._xnodes ) && X_Node_Selector__sortElementOrder( newList, list, _xnodes ) ){\r
return true;\r
};\r
};\r
};\r
\r
- X.Dom.Query._fetchElements = function( list, parent, tag ){\r
+ function X_Node_Selector__fetchElements( list, parent, tag ){\r
var xnodes = parent._xnodes,\r
l = xnodes.length,\r
i = 0,\r
if( child._xnodeType === 1 ){\r
( !tag || child._tag === tag ) && ( list[ list.length ] = child );\r
//console.log( parent._tag + ' > ' + child._tag + ' == ' + tag+ ' l:' + list.length );\r
- child._xnodes && child._xnodes.length && X.Dom.Query._fetchElements( list, child, tag );\r
+ child._xnodes && child._xnodes.length && X_Node_Selector__fetchElements( list, child, tag );\r
};\r
};\r
};\r
\r
- X.Dom.Query._funcSelectorChild = function( type, flag_all, flags, xnodes ){\r
+ function X_Node_Selector__funcSelectorChild( type, flag_all, flags, xnodes ){\r
var res = [],\r
flag_not = flags.not,\r
i = 0, n = -1, xnode, node,\r
};\r
return res;\r
};\r
- X.Dom.Query._funcSelectorNth = function( pointer, sibling, flag_all, flags, xnodes, a, b ){\r
+ function X_Node_Selector__funcSelectorNth( pointer, sibling, flag_all, flags, xnodes, a, b ){\r
var _data = funcData,\r
res = [],\r
checked = {},\r
};\r
return res;\r
};\r
- X.Dom.Query._funcSelectorProp = function( prop, flag, flags, xnodes ){\r
+ function X_Node_Selector__funcSelectorProp( prop, flag, flags, xnodes ){\r
var res = [],\r
flag_not = flag ? flags.not : !flags.not,\r
i = 0, n = -1, xnode;\r
return res;\r
};\r
\r
-X.Dom.Query._filter = {\r
+var X_Node_Selector__filter = {\r
root : function( elem ){\r
return elem === ( elem.ownerDocument || elem.document ).documentElement;\r
},\r
}\r
},\r
'first-child' : {\r
- m : function( flags, xnodes ){ return X.Dom.Query._funcSelectorChild( -1, true, flags, xnodes ); }\r
+ m : function( flags, xnodes ){ return X_Node_Selector__funcSelectorChild( -1, true, flags, xnodes ); }\r
},\r
'last-child' : {\r
- m : function( flags, xnodes ){ return X.Dom.Query._funcSelectorChild( 1, true, flags, xnodes ); }\r
+ m : function( flags, xnodes ){ return X_Node_Selector__funcSelectorChild( 1, true, flags, xnodes ); }\r
},\r
'only-child' : {\r
- m : function( flags, xnodes ){ return X.Dom.Query._funcSelectorChild( 0, true, flags, xnodes ); }\r
+ m : function( flags, xnodes ){ return X_Node_Selector__funcSelectorChild( 0, true, flags, xnodes ); }\r
},\r
'first-of-type' : {\r
- m : function( flags, xnodes ){ return X.Dom.Query._funcSelectorChild( -1, false, flags, xnodes ); }\r
+ m : function( flags, xnodes ){ return X_Node_Selector__funcSelectorChild( -1, false, flags, xnodes ); }\r
},\r
'last-of-type' : {\r
- m : function( flags, xnodes ){ return X.Dom.Query._funcSelectorChild( 1, false, flags, xnodes ); }\r
+ m : function( flags, xnodes ){ return X_Node_Selector__funcSelectorChild( 1, false, flags, xnodes ); }\r
},\r
'only-of-type' : {\r
- m : function( flags, xnodes ){ return X.Dom.Query._funcSelectorChild( 0, false, flags, xnodes ); }\r
+ m : function( flags, xnodes ){ return X_Node_Selector__funcSelectorChild( 0, false, flags, xnodes ); }\r
},\r
'nth-child' : {\r
- m : function( flags, xnodes, a, b ){ return X.Dom.Query._funcSelectorNth( 'firstChild', 'nextNode', true, flags, xnodes, a, b ); }\r
+ m : function( flags, xnodes, a, b ){ return X_Node_Selector__funcSelectorNth( 'firstChild', 'nextNode', true, flags, xnodes, a, b ); }\r
},\r
'nth-last-child' : {\r
- m : function( flags, xnodes, a, b ){ return X.Dom.Query._funcSelectorNth( 'lastChild', 'prevNode', true, flags, xnodes, a, b ); }\r
+ m : function( flags, xnodes, a, b ){ return X_Node_Selector__funcSelectorNth( 'lastChild', 'prevNode', true, flags, xnodes, a, b ); }\r
},\r
'nth-of-type' : {\r
- m : function( flags, xnodes, a, b ){ return X.Dom.Query._funcSelectorNth( 'firstChild', 'nextNode', false, flags, xnodes, a, b ); }\r
+ m : function( flags, xnodes, a, b ){ return X_Node_Selector__funcSelectorNth( 'firstChild', 'nextNode', false, flags, xnodes, a, b ); }\r
},\r
'nth-last-of-type' : {\r
- m : function( flags, xnodes, a, b ){ return X.Dom.Query._funcSelectorNth( 'lastChild', 'prevNode', false, flags, xnodes, a, b ); }\r
+ m : function( flags, xnodes, a, b ){ return X_Node_Selector__funcSelectorNth( 'lastChild', 'prevNode', false, flags, xnodes, a, b ); }\r
},\r
empty : {\r
m : function( flags, xnodes ){\r
}\r
},\r
enabled : {\r
- m : function( flags, xnodes ){ return X.Dom.Query._funcSelectorProp( 'disabled', false, flags, xnodes ); }\r
+ m : function( flags, xnodes ){ return X_Node_Selector__funcSelectorProp( 'disabled', false, flags, xnodes ); }\r
},\r
disabled : {\r
- m : function( flags, xnodes ){ return X.Dom.Query._funcSelectorProp( 'disabled', true, flags, xnodes ); }\r
+ m : function( flags, xnodes ){ return X_Node_Selector__funcSelectorProp( 'disabled', true, flags, xnodes ); }\r
},\r
checked : {\r
- m : function( flags, xnodes ){ return X.Dom.Query._funcSelectorProp( 'checked', true, flags, xnodes ); }\r
+ m : function( flags, xnodes ){ return X_Node_Selector__funcSelectorProp( 'checked', true, flags, xnodes ); }\r
},\r
contains : {\r
m : function( flags, xnodes, arg ){\r
}\r
}\r
};\r
-\r
-\r
-\r
*\r
*/\r
\r
-var X_Dom_Parser = { // HTMLParser\r
- CHARS : {\r
+var X_HTMLParser_CHARS = {\r
A:1,B:1,C:1,D:1,E:1,F:1,G:1,H:1,I:1,J:1,K:1,L:1,M:1,N:1,O:1,P:1,Q:1,R:1,S:1,T:1,U:1,V:1,W:1,X:1,Y:1,Z:1,\r
a:2,b:2,c:2,d:2,e:2,f:2,g:2,h:2,i:2,j:2,k:2,l:2,m:2,n:2,o:2,p:2,q:2,r:2,s:2,t:2,u:2,v:2,w:2,x:2,y:2,z:2,\r
// "0" : 4, "1" : 4, "2" : 4, "3" : 4, "4" : 4, "5" : 4, "6" : 4, "7" : 4, "8" : 4, "9" : 4, closure compiler で minify すると ie4 で error、eval使う\r
\r
'\t' : 16, '\r\n' : 16, '\r' : 16, '\n' : 16, '\f' : 16, '\b' : 16, ' ' : 16\r
},\r
- alphabets : 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',\r
- whiteSpace : '\t\r\n\f\b ',\r
+ X_HTMLParser_alphabets = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',\r
+ X_HTMLParser_whiteSpace = '\t\r\n\f\b ',\r
\r
// Empty Elements - HTML 4.01\r
- empty : X_Dom_DTD_EMPTY,\r
+ X_HTMLParser_empty = X_Dom_DTD_EMPTY,\r
\r
// Block Elements - HTML 4.01\r
- block : {ADDRESS:1,APPLET:1,BLOCKQUOTE:1,BUTTON:1,CENTER:1,DD:1,DEL:1,DIR:1,DIV:1,DL:1,DT:1,FIELDSET:1,FORM:1,FRAMESET:1,HR:1,IFRAME:1,INS:1,\r
+ X_HTMLParser_block = {ADDRESS:1,APPLET:1,BLOCKQUOTE:1,BUTTON:1,CENTER:1,DD:1,DEL:1,DIR:1,DIV:1,DL:1,DT:1,FIELDSET:1,FORM:1,FRAMESET:1,HR:1,IFRAME:1,INS:1,\r
ISINDEX:1,LI:1,MAP:1,MENU:1,NOFRAMES:1,NOSCRIPT:1,OBJECT:1,OL:1,P:1,PRE:1,SCRIPT:1,TABLE:1,TBODY:1,TD:1,TFOOT:1,TH:1,THEAD:1,TR:1,UL:1 },\r
// Inline Elements - HTML 4.01\r
- inline : {A:1,ABBR:1,ACRONYM:1,APPLET:1,B:1,BASEFONT:1,BDO:1,BIG:1,BR:1,BUTTON:1,CITE:1,CODE:1,DEL:1,DFN:1,EM:1,FONT:1,I:1,IFRAME:1,IMG:1,\r
+ X_HTMLParser_inline = {A:1,ABBR:1,ACRONYM:1,APPLET:1,B:1,BASEFONT:1,BDO:1,BIG:1,BR:1,BUTTON:1,CITE:1,CODE:1,DEL:1,DFN:1,EM:1,FONT:1,I:1,IFRAME:1,IMG:1,\r
INPUT:1,INS:1,KBD:1,LABEL:1,MAP:1,OBJECT:1,Q:1,S:1,SAMP:1,SCRIPT:1,SELECT:1,SMALL:1,SPAN:1,STRIKE:1,STRONG:1,SUB:1,SUP:1,TEXTAREA:1,TT:1,U:1,VAR:1},\r
// Elements that you can, intentionally, leave open\r
// (and which close themselves)\r
- closeSelf : {OLGROUP:1,DD:1,DT:1,LI:1,OPTIONS:1,P:1,TBODY:1,TD:1,TFOOT:1,TH:1,THEAD:1,TR:1}, // add tbody\r
+ X_HTMLParser_closeSelf = {OLGROUP:1,DD:1,DT:1,LI:1,OPTIONS:1,P:1,TBODY:1,TD:1,TFOOT:1,TH:1,THEAD:1,TR:1}, // add tbody\r
\r
- sisters : {\r
+ X_HTMLParser_sisters = {\r
TH : { TD : 1 },\r
TD : { TH : 1 },\r
DT : { DD : 1 },\r
*/\r
\r
// Attributes that have their values filled in disabled="disabled"\r
- fillAttrs : X_Node_Attr.noValue, //{checked:1,compact:1,declare:1,defer:1,disabled:1,ismap:1,multiple:1,nohref:1,noresize:1,noshade:1,nowrap:1,readonly:1,selected:1};\r
+ X_HTMLParser_fillAttrs = X_Node_Attr_noValue, //{checked:1,compact:1,declare:1,defer:1,disabled:1,ismap:1,multiple:1,nohref:1,noresize:1,noshade:1,nowrap:1,readonly:1,selected:1};\r
\r
// Special Elements (can contain anything)\r
- special : { SCRIPT : 1, STYLE : 1, PLAINTEXT : 1, XMP : 1, TEXTAREA : 1 },\r
+ X_HTMLParser_special = { SCRIPT : 1, STYLE : 1, PLAINTEXT : 1, XMP : 1, TEXTAREA : 1 };\r
\r
- exec : function( html, handler, async ){\r
- var special = X_Dom_Parser.special,\r
- //plainText = X_Dom_Parser.plainText,\r
+ function X_HTMLParser_exec( html, handler, async ){\r
+ var special = X_HTMLParser_special,\r
+ //plainText = X_HTMLParser_plainText,\r
startTime = async && X_Timer_now(),\r
- _parseStartTag = X_Dom_Parser._parseStartTag,\r
- _parseEndTag = X_Dom_Parser._parseEndTag,\r
+ _parseStartTag = X_HTMLParser__parseStartTag,\r
+ _parseEndTag = X_HTMLParser__parseEndTag,\r
stack = async ? async[ 1 ] : [],\r
lastHtml = html,\r
chars, last, text, index;\r
\r
if( async && startTime + 15 <= X_Timer_now() && html ){\r
handler.progress( 1 - html.length / async[ 0 ] );\r
- X.Timer.once( 0, X_Dom_Parser.exec, [ html, handler, async ] );\r
+ X.Timer.once( 0, X_HTMLParser_exec, [ html, handler, async ] );\r
return;\r
};\r
\r
};\r
\r
// Clean up any remaining tags\r
- X_Dom_Parser.parseEndTag( stack, handler );\r
+ X_HTMLParser_parseEndTag( stack, handler );\r
\r
async && handler.complete();\r
- },\r
+ };\r
\r
- _parseStartTag : function( stack, last, handler, html ){\r
- var alphabets = X_Dom_Parser.CHARS,\r
- whiteSpace = X_Dom_Parser.CHARS,\r
- saveAttr = X_Dom_Parser.saveAttr,\r
+ function X_HTMLParser__parseStartTag( stack, last, handler, html ){\r
+ var alphabets = X_HTMLParser_CHARS,\r
+ whiteSpace = X_HTMLParser_CHARS,\r
+ saveAttr = X_HTMLParser_saveAttr,\r
uri = X_Dom_DTD_ATTR_VAL_IS_URI,\r
phase = 0,\r
l = html.length,\r
};\r
if( phase === 9 ){\r
if( empty ) ++i;\r
- if( X_Dom_Parser.parseStartTag( stack, last, handler, tagName.toUpperCase(), attrs, empty, i ) === false ) return false;\r
+ if( X_HTMLParser_parseStartTag( stack, last, handler, tagName.toUpperCase(), attrs, empty, i ) === false ) return false;\r
return i;\r
};\r
return 0; // error\r
- },\r
+ };\r
\r
- _parseEndTag : function( stack, handler, html ){\r
- var alphabets = X_Dom_Parser.CHARS,\r
- whiteSpace = X_Dom_Parser.CHARS,\r
+ function X_HTMLParser__parseEndTag( stack, handler, html ){\r
+ var alphabets = X_HTMLParser_CHARS,\r
+ whiteSpace = X_HTMLParser_CHARS,\r
phase = 0,\r
l = html.length,\r
i = 0,\r
++i;\r
};\r
if( phase === 9 ){\r
- X_Dom_Parser.parseEndTag( stack, handler, tagName.toUpperCase() );\r
+ X_HTMLParser_parseEndTag( stack, handler, tagName.toUpperCase() );\r
return i;\r
};\r
return 0; // error\r
- },\r
+ };\r
\r
- saveAttr : function( attrs, name, value ){\r
+ function X_HTMLParser_saveAttr( attrs, name, value ){\r
name = name.toLowerCase();\r
- value = X_Dom_Parser.fillAttrs[ name ] === 1 ? name : value;\r
+ value = X_HTMLParser_fillAttrs[ name ] === 1 ? name : value;\r
attrs[ attrs.length ] = {\r
name : name,\r
value : value,\r
value.split( '"' ).join( '\\"' ).split( '\\\\"' ).join( '\\"' ) :\r
value\r
};\r
- },\r
+ };\r
\r
- parseStartTag : function( stack, last, handler, tagName, attrs, empty, index ) {\r
- var inline = X_Dom_Parser.inline,\r
- parseEndTag = X_Dom_Parser.parseEndTag,\r
- sisters = X_Dom_Parser.sisters;\r
- if ( X_Dom_Parser.block[ tagName ] === 1 ) {\r
+ function X_HTMLParser_parseStartTag( stack, last, handler, tagName, attrs, empty, index ) {\r
+ var inline = X_HTMLParser_inline,\r
+ parseEndTag = X_HTMLParser_parseEndTag,\r
+ sisters = X_HTMLParser_sisters;\r
+ if ( X_HTMLParser_block[ tagName ] === 1 ) {\r
while ( last && inline[ last ] === 1 ) {\r
parseEndTag( stack, handler, last );\r
last = stack[ stack.length - 1 ];\r
};\r
};\r
- last && X_Dom_Parser.closeSelf[ tagName ] === 1 && ( last === tagName || ( sisters[ tagName ] && sisters[ tagName ][ last ] === 1 ) ) && parseEndTag( stack, handler, last );\r
- empty = empty || X_Dom_Parser.empty[ tagName ];\r
+ last && X_HTMLParser_closeSelf[ tagName ] === 1 && ( last === tagName || ( sisters[ tagName ] && sisters[ tagName ][ last ] === 1 ) ) && parseEndTag( stack, handler, last );\r
+ empty = empty || X_HTMLParser_empty[ tagName ];\r
!empty && ( stack[ stack.length ] = tagName );\r
\r
return handler.start( tagName, attrs, empty, index );\r
- },\r
+ };\r
\r
- parseEndTag : function( stack, handler, tagName ) {\r
+ function X_HTMLParser_parseEndTag( stack, handler, tagName ) {\r
var pos = 0, i = stack.length;\r
// If no tag name is provided, clean shop\r
\r
// Remove the open elements from the stack\r
stack.length = pos;\r
};\r
- }\r
- \r
-};\r
+ };\r
\r
var X_HTMLParser_htmlStringToXNode = {\r
flat : null,\r
nest : [],\r
err : function( html ){\r
X_HTMLParser_htmlStringToXNode.flat.length = 0;\r
- X_HTMLParser_htmlStringToXNode.ignoreError !== true && X.Logger.warn( 'X_Dom_Parser() error ' + html );\r
+ !X_HTMLParser_htmlStringToXNode.ignoreError && X.Logger.warn( 'X_Dom_Parser() error ' + html );\r
},\r
start : function( tagName, attrs, noChild, length ){\r
var xnode,\r
if( l ){\r
xnode = nest[ l - 1 ].create( tagName );\r
} else {\r
- xnode = flat[ flat.length ] = X.Dom.Node.create( tagName );\r
+ xnode = flat[ flat.length ] = X.Node.create( tagName );\r
};\r
if( !noChild ) nest[ l ] = xnode;\r
if( i = attrs.length ){\r
if( X_HTMLParser_htmlStringToXNode.nest.length ){\r
X_HTMLParser_htmlStringToXNode.nest[ X_HTMLParser_htmlStringToXNode.nest.length - 1 ].createText( text );\r
} else {\r
- X_HTMLParser_htmlStringToXNode.flat[ X_HTMLParser_htmlStringToXNode.flat.length ] = X.Dom.Node.createText( text );\r
+ X_HTMLParser_htmlStringToXNode.flat[ X_HTMLParser_htmlStringToXNode.flat.length ] = X.Node.createText( text );\r
};\r
},\r
comment : X.emptyFunction\r
worker.flat = [];\r
worker.nest.length = 0;\r
worker.ignoreError = ignoreError;\r
- X_Dom_Parser.exec( html, worker );\r
+ X_HTMLParser_exec( html, worker );\r
ret = worker.flat;\r
delete worker.flat;\r
return ret;\r
};\r
\r
function X_HTMLParser_asyncParse( html, ignoreError ){\r
- var dispatcher = X.Class._override( new X.EventDispatcher(), X_HTMLParser_asyncHtmlStringToXNode ),\r
+ var dispatcher = X_Class_override( new X.EventDispatcher(), X_HTMLParser_asyncHtmlStringToXNode ),\r
worker = X_HTMLParser_htmlStringToXNode;\r
dispatcher.listenOnce( X.Event.SUCCESS, dispatcher, dispatcher.kill );\r
worker.flat = [];\r
worker.nest.length = 0;\r
worker.ignoreError = ignoreError;\r
- X_Dom_Parser.exec( html, dispatcher, [ html.length, [] ] );\r
+ X_HTMLParser_exec( html, dispatcher, [ html.length, [] ] );\r
return dispatcher;\r
};\r
X.ViewPort.listenOnce( X_TEMP.SYSTEM_EVENT_PRE_INIT,\r
X_UA_DOM.W3C ?\r
(function(){\r
- var r = Node._body,\r
+ var r = X_Node_body,\r
body = r._rawObject,\r
copy, i, l, node, html,\r
elmProgress;\r
}\r
)\r
.listenOnce( X.Event.SUCCESS, function( e ){\r
- var xnodes = Node._body._xnodes = [], t;\r
+ var xnodes = X_Node_body._xnodes = [], t;\r
xnodes.push.apply( xnodes, e.xnodes );\r
elmProgress.style.width = '100%';\r
\r
- X_TEMP.asyncCreateTree( Node._body, body.childNodes, elmProgress );\r
+ X_TEMP.asyncCreateTree( X_Node_body, body.childNodes, elmProgress );\r
} );\r
\r
}) :\r
X_UA_DOM.IE4 ?\r
(function(){\r
- var r = Node._body,\r
+ var r = X_Node_body,\r
body = r._rawObject,\r
elmProgress = '_xdom_builder_progress',\r
html;\r
)\r
.listenOnce( X.Event.SUCCESS,\r
function( e ){\r
- var xnodes = Node._body._xnodes = [], t;\r
+ var xnodes = X_Node_body._xnodes = [], t;\r
xnodes.push.apply( xnodes, e.xnodes );\r
elmProgress.style.width = '100%';\r
\r
- X_TEMP.asyncCreateTree( Node._body, body.childNodes || body.children, elmProgress );\r
+ X_TEMP.asyncCreateTree( X_Node_body, body.childNodes || body.children, elmProgress );\r
}\r
);\r
}) :\r
//alert( 'koko?' );\r
X.Timer.once( 0, X_TEMP.asyncCreateTree, [ null, null, elmProgress, async || { stack : stack, current : i < l && current, done : done } ] );\r
// progress\r
- elmProgress.style.width = ( ( 1 - done / Node._chashe.length ) * 100 | 0 ) + '%';\r
+ elmProgress.style.width = ( ( 1 - done / X_Node_CHASHE.length ) * 100 | 0 ) + '%';\r
return;\r
};\r
}; \r
this._name = 'hidden-iframe-' + X_Timer_now();\r
// https://github.com/polygonplanet/Pot.js/blob/master/src/Worker.js\r
\r
- this.xnodeIframe = X.Dom.Node._body.create(\r
+ this.xnodeIframe = X_Node_body.create(\r
'iframe',\r
{\r
className : 'hidden-iframe',\r
if( X.Type.isString( XnodeOrImageElemOrSrc ) ){\r
if( ret = X_Util_Image_actualSize[ X_URL_toAbsolutePath( XnodeOrImageElemOrSrc ) ] ) return ret;\r
\r
- xnode = X.Dom.Node._systemNode.create(\r
+ xnode = X_Node_systemNode.create(\r
'img',\r
{\r
src : XnodeOrImageElemOrSrc\r
position : 'absolute'\r
}\r
);\r
- Node._body._startUpdate();\r
- img = xnode._ie4getRawNode ? xnode._ie4getRawNode() : xnode._rawObject;\r
+ X_Node_startUpdate();\r
+ img = X_UA_DOM.IE4 ? X_Node__ie4getRawNode( xnode ) : xnode._rawObject;\r
remove = true;\r
} else {\r
- if( XnodeOrImageElemOrSrc.constructor === X.Dom.Node ){\r
+ if( XnodeOrImageElemOrSrc.constructor === X.Node ){\r
xnode = XnodeOrImageElemOrSrc;\r
- img = xnode._ie4getRawNode ? xnode._ie4getRawNode() : xnode._rawObject;\r
+ img = X_UA_DOM.IE4 ? X_Node__ie4getRawNode( xnode )._rawObject : xnode._rawObject;\r
} else\r
if( X.Type.isHTMLElement( XnodeOrImageElemOrSrc ) ){\r
img = XnodeOrImageElemOrSrc;\r
// for Firefox, Safari, Google Chrome\r
if( img.naturalWidth ) return [ img.naturalWidth, img.naturalHeight ];\r
\r
- if( X.UA.IE && 5 <= X.UA.IE ){// for IE\r
+ if( 5 <= X.UA.IE ){// for IE\r
run = img.runtimeStyle;\r
memW = run.width;\r
memH = run.height;\r
\r
if( X_Net_XHR_W3C || X_Net_XHR_ACTIVE_X ){\r
\r
- X_NET_XHRWrapper = X.Class._override(\r
+ X_NET_XHRWrapper = X_Class_override(\r
new X.EventDispatcher(),\r
{\r
\r
};
-X_NET_JSONPWrapper = X.Class._override(
+X_NET_JSONPWrapper = X_Class_override(
new X.EventDispatcher(),
{
/*\r
* TODO\r
* new Image() のときに Image オブジェクトを作るもの(IE8-)と、HTMLImageElement を作るものがある。\r
- * Image は、X.EventDispatcher で、<img> は X.Dom.Node で。 \r
+ * Image は、X.EventDispatcher で、<img> は X.Node で。 \r
* \r
* Opera7 では毎回 image を作る必要あり、src が異なればOK?\r
*/\r
-X_NET_ImageWrapper = X.Class._override(\r
- !X_Net_Image_isElement ? new X.EventDispatcher( X_Net_Image_image ) : new X.Dom.Node( X_Net_Image_image ),\r
+X_NET_ImageWrapper = X_Class_override(\r
+ !X_Net_Image_isElement ? new X.EventDispatcher( X_Net_Image_image ) : new X.Node( X_Net_Image_image ),\r
{\r
\r
_busy : false,\r
\r
X_NET_ImageWrapper.listen( [ 'load', 'error' /*, 'abort'*/, X.Event.KILL_INSTANCE ] );\r
\r
-// X_Net_Image_isElement && X_NET_ImageWrapper.appendTo( X.Dom.Node._systemNode );\r
+// X_Net_Image_isElement && X_NET_ImageWrapper.appendTo( X.X_Node_systemNode );\r
};\r
};\r
\r
- X_Audio_HTML5Audio = X.Class._override(\r
+ X_Audio_HTML5Audio = X_Class_override(\r
new X.EventDispatcher(),\r
{\r
backendName : 'HTML5 Audio',\r
if( option.startTime ) this._startTime = option.startTime;\r
if( option.volume ) this._volume = option.volume;\r
\r
- this._rawObject = X_Audio_rawAudio || new Audio( source );//X.Dom.Node.create( 'audio', { src : source } ).appendToRoot();//( X.Dom.Node._systemNode );\r
+ this._rawObject = X_Audio_rawAudio || new Audio( source );//X.Node.create( 'audio', { src : source } ).appendToRoot();//( X.X_Node_systemNode );\r
\r
this.listen( [\r
'loadstart', 'load', 'progress', 'suspend', 'abort', 'error', 'emptied', 'stalled', 'play', 'pause', 'loadedmetadata',\r
};\r
};\r
\r
- X_Audio_SLAudio = X.Class._override(\r
+ X_Audio_SLAudio = X_Class_override(\r
new X.EventDispatcher(),\r
{\r
backendName : 'Silverlight Audio',\r
\r
if( !X_Audio_SLAudio_uid ){\r
// source\r
- //X.Dom.Node._systemNode.create( 'script', { type : 'text/xaml', id : 'silverlightaudio' } )\r
+ //X.X_Node_systemNode.create( 'script', { type : 'text/xaml', id : 'silverlightaudio' } )\r
// .text( '<Canvas xmlns="http://schemas.microsoft.com/client/2007" ' +\r
// 'xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"></Canvas>');\r
\r
this.proxy = proxy;\r
this._onload = 'XAudioSilverlightOnLoad' + ( ++X_Audio_SLAudio_uid );\r
this._callback = window[ this._onload ] = X_Callback_create( this, this.onSLReady, [ option.autoplay ] );\r
- this.xnodeObject = X.Dom.Node._body\r
+ this.xnodeObject = X_Node_body\r
.create( 'object', {\r
type : 'application/x-silverlight-2',\r
data : 'data:application/x-silverlight-2,',\r
}\r
),\r
create : function( props ){\r
- return X.Class._override( new X.UI.Layout.Base, props, true );\r
+ return X_Class_override( new X.UI.Layout.Base, props, true );\r
}\r
}\r
};\r
this.rootData = rootData;\r
this.parent = parent;\r
this.parentData = parentData;\r
- //this.xnode = X.Dom.Node.create( 'div' );\r
+ //this.xnode = X.Node.create( 'div' );\r
this.phase = 1;\r
\r
this.dispatch( X.UI.Event.INIT );\r
if( v.indexOf( ' ' ) !== -1 ){\r
v = v.split( ' ' );\r
} else\r
- if( color && X.Type.isNumber( _v = X.Dom.Style.parseColor( v ) ) ){\r
+ if( color && X.Type.isNumber( _v = X.CSS.parseColor( v ) ) ){\r
v = _v;\r
} else {\r
// bad\r
},\r
\r
/**\r
- * X.Dom.BoxModel の情報を引きながら top,left,width,height,padding,border の設定\r
+ * X_Node_BoxModel の情報を引きながら top,left,width,height,padding,border の設定\r
*/\r
updateLayout : function( x, y ){\r
this.boxX = x;\r
X.Class.ABSTRACT | X.Class.SUPER_ACCESS,\r
{\r
parent : function(){\r
- return X.Class._getPrivate( this ).parent;\r
+ return X_Class_getPrivate( this ).parent;\r
},\r
root : function(){\r
- return X.Class._getPrivate( this ).root;\r
+ return X_Class_getPrivate( this ).root;\r
},\r
\r
/*\r
* サポートされていない場合は無視される.親のレイアウトによって変わる\r
*/\r
attr : function( nameOrObject, valueOrUnit ){\r
- var p = X.Class._getPrivate( this ),\r
+ var p = X_Class_getPrivate( this ),\r
layout, k, def, attrs, v;\r
if( nameOrObject && X.Type.isObject( nameOrObject ) ){\r
// setter\r
},\r
\r
listen : function( type, arg1, arg2, arg3 ){\r
- X.Class._getPrivate( this ).listen( type, arg1, arg2, arg3 );\r
+ X_Class_getPrivate( this ).listen( type, arg1, arg2, arg3 );\r
return this;\r
},\r
listenOnce : function( type, arg1, arg2, arg3 ){\r
- X.Class._getPrivate( this ).listenOnce( type, arg1, arg2, arg3 );\r
+ X_Class_getPrivate( this ).listenOnce( type, arg1, arg2, arg3 );\r
return this;\r
},\r
listening : function( type, arg1, arg2, arg3 ){\r
- return X.Class._getPrivate( this ).listening( type, arg1, arg2, arg3 );\r
+ return X_Class_getPrivate( this ).listening( type, arg1, arg2, arg3 );\r
},\r
unlisten : function( type, arg1, arg2, arg3 ){\r
- X.Class._getPrivate( this ).unlisten( type, arg1, arg2, arg3 );\r
+ X_Class_getPrivate( this ).unlisten( type, arg1, arg2, arg3 );\r
return this;\r
},\r
dispatch : function( e ){\r
- return X.Class._getPrivate( this ).dispatch( e );\r
+ return X_Class_getPrivate( this ).dispatch( e );\r
},\r
\r
getNextNode : function(){\r
\r
},\r
nodeIndex : function( v ){\r
- var data = X.Class._getPrivate( this );\r
+ var data = X_Class_getPrivate( this );\r
if( typeof v === 'number' ){\r
// data.nodeIndex( v );\r
return this;\r
},\r
getX : function(){\r
// dirty の場合、rootData.calculate\r
- return X.Class._getPrivate( this ).boxX;\r
+ return X_Class_getPrivate( this ).boxX;\r
},\r
getY : function(){\r
// dirty の場合、rootData.calculate\r
- return X.Class._getPrivate( this ).boxY;\r
+ return X_Class_getPrivate( this ).boxY;\r
},\r
getAbsoluteX : function(){\r
// dirty の場合、rootData.calculate\r
- return X.Class._getPrivate( this ).absoluteX;\r
+ return X_Class_getPrivate( this ).absoluteX;\r
},\r
getAbsoluteY: function(){\r
// dirty の場合、rootData.calculate\r
- return X.Class._getPrivate( this ).absoluteY;\r
+ return X_Class_getPrivate( this ).absoluteY;\r
},\r
getWidth : function(){\r
// dirty の場合、rootData.calculate\r
- return X.Class._getPrivate( this ).boxWidth;\r
+ return X_Class_getPrivate( this ).boxWidth;\r
},\r
getHeight : function(){\r
// dirty の場合、rootData.calculate\r
- return X.Class._getPrivate( this ).boxHeight;\r
+ return X_Class_getPrivate( this ).boxHeight;\r
},\r
scrollTo : function( x, y ){\r
- X.Class._getPrivate( this ).scrollTo( x, y );\r
+ X_Class_getPrivate( this ).scrollTo( x, y );\r
},\r
getScrollX : function( v ){\r
// dirty の場合、rootData.calculate\r
- return X.Class._getPrivate( this ).scrollX( v );\r
+ return X_Class_getPrivate( this ).scrollX( v );\r
},\r
getScrollY : function( v ){\r
// dirty の場合、rootData.calculate\r
- return X.Class._getPrivate( this ).scrollY( v );\r
+ return X_Class_getPrivate( this ).scrollY( v );\r
},\r
disabled : function( v ){\r
- return X.Class._getPrivate( this ).disabled( v );\r
+ return X_Class_getPrivate( this ).disabled( v );\r
},\r
cursor : function( v ){\r
- return X.Class._getPrivate( this ).cursor( v );\r
+ return X_Class_getPrivate( this ).cursor( v );\r
}\r
}\r
);\r
//throw new Error( 'Box を継承したインスタンスだけが _Box のオーナーになれます' );\r
}; \r
\r
- this.xnode = X.Dom.Node.create( 'div' );\r
+ this.xnode = X.Node.create( 'div' );\r
\r
// すでに定義されていればそちらを採用\r
// supportAttrs や attrClass が、layout を元に上書きされているため\r
for( ; i < l; ++i ){\r
arg = args[ i ];\r
if( arg.instanceOf && arg.instanceOf( X.UI.AbstractUINode ) ){\r
- _data = X.Class._getPrivate( arg );\r
+ _data = X_Class_getPrivate( arg );\r
if( !uinodes ) this.uinodes = uinodes = [];\r
uinodes[ ++j ] = _data;\r
if( _data.parent ){\r
} else\r
if( X.Type.isObject( arg ) ){\r
if( attrs ){\r
- attrs = X.Class._override( attrs, arg );\r
+ attrs = X_Class_override( attrs, arg );\r
} else {\r
attrs = arg;\r
};\r
this.rootData = rootData;\r
this.parent = parent;\r
this.parentData = parentData;\r
- //this.xnode = X.Dom.Node.create( 'div' );\r
+ //this.xnode = X.Node.create( 'div' );\r
\r
if( i ){\r
for( ; i; ){\r
\r
//console.log( '### AddAt ' + this.phase )\r
for( l = _uinodes.length; i < l; ++i ){\r
- data = X.Class._getPrivate( _uinodes[ i ] );\r
+ data = X_Class_getPrivate( _uinodes[ i ] );\r
_p1 = p1 && data.phase < 1;\r
_p2 = p2 && data.phase < 2;\r
_p1 && data.initialize( this.root, this.rootData, this.User, this );\r
\r
//console.log( '### AddAt ' + this.phase )\r
for( ; i; ){\r
- data = X.Class._getPrivate( _uinodes[ --i ] );\r
+ data = X_Class_getPrivate( _uinodes[ --i ] );\r
if( ( n = uinodes.indexOf( data ) ) !== -1 ){\r
uinodes.splice( n, 1 );\r
data._remove();\r
X.UI._Box,\r
{\r
Constructor : function(){\r
- X.Class._newPrivate( this, X.UI.Layout.Canvas, arguments );\r
+ X_Class_newPrivate( this, X.UI.Layout.Canvas, arguments );\r
},\r
\r
add : function( node /* , node, node ... */ ){\r
- X.Class._getPrivate( this ).addAt( this.numNodes() + 1, Array.prototype.slice.call( arguments ) );\r
+ X_Class_getPrivate( this ).addAt( this.numNodes() + 1, Array.prototype.slice.call( arguments ) );\r
return this;\r
},\r
addAt : function( index, node /* , node, node ... */ ){\r
if( index < 0 ) index = 0;\r
- X.Class._getPrivate( this ).addAt( arguments[ 0 ], Array.prototype.slice.call( arguments, 1 ) );\r
+ X_Class_getPrivate( this ).addAt( arguments[ 0 ], Array.prototype.slice.call( arguments, 1 ) );\r
return this;\r
},\r
remove : function( node /* , node, node ... */ ){\r
- X.Class._getPrivate( this ).remove( Array.prototype.slice.call( arguments ) );\r
+ X_Class_getPrivate( this ).remove( Array.prototype.slice.call( arguments ) );\r
return this;\r
},\r
removeAt : function( from, length ){\r
- X.Class._getPrivate( this ).removeAt( from, length );\r
+ X_Class_getPrivate( this ).removeAt( from, length );\r
return this;\r
},\r
getNodesByClass : function( klass ){\r
var ret = [],\r
- uinodes = X.Class._getPrivate( this ).uinodes,\r
+ uinodes = X_Class_getPrivate( this ).uinodes,\r
i, l, node;\r
if( !uinodes || uinodes.length === 0 ) return ret;\r
for( i = 0, l = uinodes.length; i < l; ++i ){\r
return this.getNodeAt( 0 );\r
},\r
getLastChild : function(){\r
- var uinodes = X.Class._getPrivate( this ).uinodes;\r
+ var uinodes = X_Class_getPrivate( this ).uinodes;\r
return uinodes && uinodes.length && uinodes[ uinodes.length - 1 ].User || null;\r
},\r
getNodeAt : function( index ){\r
if( index < 0 ) return null;\r
- var uinodes = X.Class._getPrivate( this ).uinodes;\r
+ var uinodes = X_Class_getPrivate( this ).uinodes;\r
return uinodes && uinodes[ index ].User || null;\r
},\r
numNodes : function(){\r
- var uinodes = X.Class._getPrivate( this ).uinodes;\r
+ var uinodes = X_Class_getPrivate( this ).uinodes;\r
return uinodes && uinodes.length || 0;\r
}\r
}\r
var args = arguments,\r
i = 0,\r
l = args.length, \r
- shadow = X.Class._getClassDef( this ).privateClass,\r
+ shadow = X_Class_getClassDef( this ).privateClass,\r
layout = shadow.prototype.layout,\r
arg, attrs, supports, klass, klassDef, privateKlass, boxName;\r
\r
if( !shadow.prototype.layout && arg.instanceOf && arg.instanceOf( X.UI.Layout.Base ) ){\r
layout = arg;\r
} else\r
- if( ( klassDef = X.Class._getClassDef( arg ) ) && klassDef.isPrivate ){\r
+ if( ( klassDef = X_Class_getClassDef( arg ) ) && klassDef.isPrivate ){\r
privateKlass = arg;\r
layout = privateKlass.prototype.layout;\r
} else\r
if( X.Type.isObject( arg ) ){\r
if( attrs ){\r
- X.Class._override( attrs, arg, true );\r
+ X_Class_override( attrs, arg, true );\r
} else {\r
attrs = arg;\r
};\r
X.UI._ChromeBox,\r
{\r
Constructor : function(){\r
- X.Class._newPrivate( this, X.UI.Layout.Canvas, arguments );\r
+ X_Class_newPrivate( this, X.UI.Layout.Canvas, arguments );\r
},\r
add : function( node /* , node, node ... */ ){\r
- X.Class._getPrivate( this ).containerNode.addAt( this.numNodes(), Array.prototype.slice.call( arguments ) );\r
+ X_Class_getPrivate( this ).containerNode.addAt( this.numNodes(), Array.prototype.slice.call( arguments ) );\r
return this;\r
},\r
addAt : function( index, node /* , node, node ... */ ){\r
- X.Class._getPrivate( this ).containerNode.addAt( index, Array.prototype.slice.call( arguments, 1 ) );\r
+ X_Class_getPrivate( this ).containerNode.addAt( index, Array.prototype.slice.call( arguments, 1 ) );\r
return this;\r
},\r
remove : function( node /* , node, node ... */ ){\r
- X.Class._getPrivate( this ).containerNode.remove( arguments );\r
+ X_Class_getPrivate( this ).containerNode.remove( arguments );\r
return this;\r
},\r
removeAt : function( from, length ){\r
- X.Class._getPrivate( this ).containerNode.removeAt( from, length );\r
+ X_Class_getPrivate( this ).containerNode.removeAt( from, length );\r
return this;\r
},\r
getNodesByClass : function( klass ){\r
- return X.Class._getPrivate( this ).containerNode.User.getNodesByClass( klass );\r
+ return X_Class_getPrivate( this ).containerNode.User.getNodesByClass( klass );\r
},\r
getFirstChild : function(){\r
- return X.Class._getPrivate( this ).containerNode.User.getFirstChild();\r
+ return X_Class_getPrivate( this ).containerNode.User.getFirstChild();\r
},\r
getLastChild : function(){\r
- return X.Class._getPrivate( this ).containerNode.User.getLastChild();\r
+ return X_Class_getPrivate( this ).containerNode.User.getLastChild();\r
},\r
getNodeByUID : function( uid ){\r
- return X.Class._getPrivate( this ).containerNode.User.getNodeByUID();\r
+ return X_Class_getPrivate( this ).containerNode.User.getNodeByUID();\r
},\r
getNodeAt : function( index ){\r
- return X.Class._getPrivate( this ).containerNode.User.getNodeAt( index );\r
+ return X_Class_getPrivate( this ).containerNode.User.getNodeAt( index );\r
},\r
numNodes : function(){\r
- return X.Class._getPrivate( this ).containerNode.User.numNodes();\r
+ return X_Class_getPrivate( this ).containerNode.User.numNodes();\r
},\r
getContainerNode : function(){\r
- return X.Class._getPrivate( this ).containerNode.User;\r
+ return X_Class_getPrivate( this ).containerNode.User;\r
},\r
getChromeNodeAt : function( index ){\r
if( index < 0 ) return null;\r
- var nodes = X.Class._getPrivate( this ).chromeNodes;\r
+ var nodes = X_Class_getPrivate( this ).chromeNodes;\r
return nodes ? nodes[ index ].User || null : null;\r
},\r
numChromeNodes : function(){\r
- var nodes = X.Class._getPrivate( this ).chromeNodes;\r
+ var nodes = X_Class_getPrivate( this ).chromeNodes;\r
return nodes ? nodes.length : 0;\r
}\r
}\r
\r
function Options(){};\r
\r
- X.Class._override( Options.prototype, {\r
+ X_Class_override( Options.prototype, {\r
hScroll : true,\r
vScroll : true,\r
x : 0,\r
this.transrateXorY = 'translateX(';\r
};\r
};\r
- X.Class._override( Scrollbar.prototype, {\r
+ X_Class_override( Scrollbar.prototype, {\r
owner : null,\r
dir : null,\r
options : null,\r
// remove scrollbar\r
if( !this.active ){\r
if( this.xnodeWrapper ){\r
- X.Dom.Style.transform && this.xnodeIndicator.css( 'transform', '' );\r
+ X.CSS.transform && this.xnodeIndicator.css( 'transform', '' );\r
this.xnodeWrapper.css( 'display', 'none' );\r
};\r
return;\r
this.y = this.options.y;\r
\r
// Normalize options\r
- this.options.useTransform = X.Dom.Style.transform && this.options.useTransform;\r
+ this.options.useTransform = X.CSS.transform && this.options.useTransform;\r
this.options.hScrollbar = this.options.hScroll && this.options.hScrollbar;\r
this.options.vScrollbar = this.options.vScroll && this.options.vScrollbar;\r
this.options.zoom = this.options.useTransform && this.options.zoom;\r
- this.options.useTransition = X.Dom.Style.transition && this.options.useTransition;\r
+ this.options.useTransition = X.CSS.transition && this.options.useTransition;\r
\r
// Helpers FIX ANDROID BUG!\r
// translate3d and scale doesn't work together!\r
// Set some default styles\r
\r
if (this.options.useTransform){\r
- this.scroller.style[X.Dom.Style.transform] = 'translate(' + this.x + 'px,' + this.y + 'px)' + translateZ;\r
- this.scroller.style[X.Dom.Style.transformOrigin] = '0 0';\r
+ this.scroller.style[X.CSS.transform] = 'translate(' + this.x + 'px,' + this.y + 'px)' + translateZ;\r
+ this.scroller.style[X.CSS.transformOrigin] = '0 0';\r
} else {\r
this.scroller.style.cssText += ';position:absolute;top:' + this.y + 'px;left:' + this.x + 'px';\r
};\r
\r
if (this.options.useTransition){\r
- this.scroller.style[X.Dom.Style.transition.Property] = this.options.useTransform ? X.Dom.Style.cssVendor + 'transform' : 'top left';\r
- this.scroller.style[X.Dom.Style.transition.Duration] = '0'; \r
- this.scroller.style[X.Dom.Style.transition.TimingFunction] = 'cubic-bezier(0.33,0.66,0.66,1)';\r
+ this.scroller.style[X.CSS.transition.Property] = this.options.useTransform ? X.CSS.cssVendor + 'transform' : 'top left';\r
+ this.scroller.style[X.CSS.transition.Duration] = '0'; \r
+ this.scroller.style[X.CSS.transition.TimingFunction] = 'cubic-bezier(0.33,0.66,0.66,1)';\r
this.options.fixedScrollbar = true;\r
};\r
\r
};\r
\r
// Prototype\r
-X.Class._override( iScroll.prototype, {\r
+X_Class_override( iScroll.prototype, {\r
uinodeRoot : null,\r
uinodeTarget : null,\r
xnodeTarget : null,\r
\r
Constructor : function( layout, args ){\r
this.SuperConstructor( layout, args );\r
- this._containerNode = _X.Class._getPrivate( this.containerNode );\r
+ this._containerNode = _X_Class_getPrivate( this.containerNode );\r
},\r
\r
creationComplete : function(){\r
};\r
/*\r
this.style = DisplayNodeStyle( this,\r
- X.Class._newPrivate(\r
+ X_Class_newPrivate(\r
this,\r
X.UI.Layout.Canvas,\r
[\r
if( !( this.User.instanceOf( X.UI.Text ) ) ){\r
alert( 'Text を継承したインスタンスだけが _Text のオーナーになれます' );\r
};\r
- this.xnode = X.Dom.Node.create( 'div' );\r
+ this.xnode = X.Node.create( 'div' );\r
\r
if( X.Type.isString( content ) && content ){\r
this.content = content;\r
X.UI._Text,\r
{\r
Constructor : function( opt_content, opt_cssObj ){\r
- X.Class._newPrivate( this, opt_content );\r
+ X_Class_newPrivate( this, opt_content );\r
X.Type.isObject( opt_cssObj = opt_cssObj || opt_content ) && this.attr( opt_cssObj );\r
},\r
content : function( v ){\r
- var data = X.Class._getPrivate( this );\r
+ var data = X_Class_getPrivate( this );\r
if( data.content !== v ){\r
data.xnode && data.xnode.text( v );\r
data.rootData.reserveCalc();\r
// this.xnodeInteractiveLayer の前に追加する!
- this.addToParent( X.Dom.Node._body );
+ this.addToParent( X.Doc.body );
- this.xnodeInteractiveLayer = X.Dom.Node._body.create( 'div', {
+ this.xnodeInteractiveLayer = X.Doc.body.create( 'div', {
'class' : 'mouse-operation-catcher',
unselectable : 'on'
} );