-if( !window['console'] ) console = { log : function(){} };\r
+if( !window['console'] ) console = { log : function(a){\r
+ //alert(a)\r
+} };\r
\r
var undefined,\r
- X = X || {\r
- \r
- VERSION : '0.6.13',\r
- \r
- bootTime : + new Date,\r
+ X = X || new Function( 'return X._shortcut && X._shortcut.apply( X._shortcut, arguments )' );\r
+\r
+X.VERSION = '0.6.39';\r
\r
- getTime : Date.now ? new Function( 'return Date.now()' ) : new Function( 'return +new Date' ),\r
+X.bootTime = + new Date;\r
\r
- emptyFunction : new Function,\r
+X.getTime = Date.now ? new Function( 'return Date.now()' ) : new Function( 'return +new Date' );\r
\r
- inHead : (function( s ){\r
- s = s[ s.length - 1 ];\r
- // Dom0 || Dom1\r
- return ( s.parentElement || s.parentNode ).tagName.toLowerCase() === 'head';\r
- })( document.scripts || document.getElementsByTagName( 'script' ) || document.all.tags( 'script' ) ),\r
+X.emptyFunction = new Function;\r
\r
- parse : function( v ){\r
- var _v, n;\r
- if( Type.isString( v ) === true ){\r
- switch( v ){\r
- case '' : return v;\r
- //case '{}' : return {};\r
- //case '[]' : return [];\r
- case 'NaN' : return NaN;\r
- case 'null' : return null;\r
- case 'true' : return true;\r
- case 'false' : return false;\r
- case 'Infinity' : return Number.POSITIVE_INFINITY;\r
- case '-Infinity' : return Number.NEGATIVE_INFINITY; \r
- case 'undefined' : return;\r
- };\r
- _v = v.split( ' ' ).join( '' );\r
- n = _v - 0;\r
- if( '' + n === _v || '' + n === '0' + _v ) return n;\r
- };\r
- return v;\r
- },\r
- \r
- skipCleanupTagNames : 'pre,textarea,code,kbd,samp,xmp,plaintext,listing'.split( ',' ),\r
- \r
- cleanupWhiteSpace : function( text ){\r
- var _ = ' ', __ = ' ';\r
- text.indexOf( '\r\n' ) !== -1 && ( text = text.split( '\r\n' ).join( _ ) );\r
- text.indexOf( '\n\r' ) !== -1 && ( text = text.split( '\n\r' ).join( _ ) );\r
- text.indexOf( '\t' ) !== -1 && ( text = text.split( '\t' ).join( _ ) );\r
- text.indexOf( '\r' ) !== -1 && ( text = text.split( '\r' ).join( _ ) );\r
- text.indexOf( '\n' ) !== -1 && ( text = text.split( '\n' ).join( _ ) );\r
- text.indexOf( '\f' ) !== -1 && ( text = text.split( '\f' ).join( _ ) );\r
- text.indexOf( '\b' ) !== -1 && ( text = text.split( '\b' ).join( _ ) );\r
- while( text.indexOf( __ ) !== -1 ){\r
- text = text.split( __ ).join( _ );\r
- };\r
- return text;\r
- },\r
+ // defer の場合もあるので、document.readyState を見る\r
+X.inHead = (function( s ){\r
+ if( !s ) return false;\r
+ if( !s.length ) return false; // Safari1.3 312.8 でerror\r
+ s = s[ s.length - 1 ];\r
+ // Dom0 || Dom1\r
+ return ( s.parentElement || s.parentNode ).tagName.toLowerCase() === 'head';\r
+})( document.scripts || document.getElementsByTagName && document.getElementsByTagName( 'script' ) || document.all && document.all.tags( 'script' ) );\r
+\r
+X.parse = function( v ){\r
+ var _v, n;\r
+ if( Type.isString( v ) === true ){\r
+ switch( v ){\r
+ case '' : return v;\r
+ //case '{}' : return {};\r
+ //case '[]' : return [];\r
+ case 'NaN' : return NaN;\r
+ case 'null' : return null;\r
+ case 'true' : return true;\r
+ case 'false' : return false;\r
+ case 'Infinity' : return Number.POSITIVE_INFINITY;\r
+ case '-Infinity' : return Number.NEGATIVE_INFINITY; \r
+ case 'undefined' : return;\r
+ };\r
+ _v = v.split( ' ' ).join( '' );\r
+ n = _v - 0;\r
+ if( '' + n === _v || '' + n === '0' + _v ) return n;\r
+ };\r
+ return v;\r
+};\r
\r
- isEmptyObject : function( v ){\r
- if( v.length !== 0 ) return false;\r
- for( var p in v ){\r
- if( v.hasOwnProperty( p ) ) return false;\r
- };\r
- return true;\r
- }\r
+X.cloneObject = function( src ){\r
+ var ret, k;\r
+ if( typeof src !== 'object' ) return src;\r
+ ret = {};\r
+ for( k in src ){\r
+ ret[ k ] = src[ k ];\r
+ };\r
+ return ret;\r
+};\r
+\r
+X.copyArray = function( ary ){\r
+ var ret = [], i = ary.length;\r
+ if( !i ) return ret;\r
+ for( ; i; ){\r
+ ret[ --i ] = ary[ i ];\r
};\r
+ return ret;\r
+};\r
\r
-// bonus: hotfix for IE6 SP1 (bug KB823727)\r
-document.execCommand && document.execCommand( 'BackgroundImageCache', false, true );\r
+X.isEmptyObject = function( v ){\r
+ if( v.length !== 0 ) return false;\r
+ for( var p in v ){\r
+ if( v.hasOwnProperty( p ) ) return false;\r
+ };\r
+ return true;\r
+};\r
+ \r
+X.matchTest = function( array1, array2 ){\r
+ var i = array2.length;\r
+ for( ; i; ){\r
+ if( array1.indexOf( array2[ --i ] ) === -1 ) return false;\r
+ };\r
+ return true;\r
+};\r