OSDN Git Service

Version 0.6.90, files & folders renamed.
[pettanr/clientJs.git] / 0.6.x / js / 01_core / 01_X.js
diff --git a/0.6.x/js/01_core/01_X.js b/0.6.x/js/01_core/01_X.js
new file mode 100644 (file)
index 0000000..035cfae
--- /dev/null
@@ -0,0 +1,123 @@
+if( !window['console'] || ( window.parent && window.parent.log ) ) console = { log : function(a){\r
+       var win, elm;\r
+       //alert(a);\r
+       if( window.parent ){\r
+               elm = parent.document.all ? parent.document.all.log : parent.log || parent.document.getElementById( 'log' );\r
+               elm && ( elm.innerHTML = a + '<br>' + elm.innerHTML );\r
+       };\r
+} };\r
+\r
+var undefined,\r
+       X = new Function( 'return X._shortcut && X._shortcut.apply( X._shortcut, arguments )' ),\r
+       X_TEMP = {};\r
+\r
+X.VERSION = '0.6.89';\r
+               \r
+X.bootTime = + new Date;\r
+               \r
+X.getTime = Date.now ? Date.now : new Function( 'return +new Date' );\r
+\r
+\r
+X.emptyFunction = new Function;\r
+\r
+               // defer の場合もあるので、document.readyState を見る MacIE で false\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
+       s = s.parentElement || s.parentNode || s;// s is for opera7.11\r
+       return s.tagName.toLowerCase() === 'head';// opera7.23 s.tagName is 'HTML'\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 1/0;//Number.POSITIVE_INFINITY;\r
+                       case '-Infinity' : return -1/0;//Number.NEGATIVE_INFINITY;\r
+                       case 'void(0)' :\r
+                       case 'void 0' :\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
+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.deepCopy = function( src ){\r
+       function clone( src, objSrc, objCopy, n ) {\r
+               var ret, i, key;\r
+               if( !src ){ // 0, "", null, undefined, NaN, false\r
+                       return src;\r
+               } else\r
+               if( X.Type.isArray( src ) ){\r
+                       i = objSrc.indexOf( src );\r
+                       if( i !== -1 ) return objCopy[ i ];\r
+                       objSrc[ ++n ] = src;\r
+                       objCopy[ n ]  = ret = [];\r
+               } else\r
+               if( X.Type.isObject( src ) ){\r
+                       i = objSrc.indexOf( src );\r
+                       if( i !== -1 ) return objCopy[ i ];\r
+                       objSrc[ ++n ] = src;\r
+                       objCopy[ n ]  = ret = {};\r
+               } else {\r
+                       // string, number, true\r
+                       return src;\r
+               };\r
+               for( key in src ){\r
+                       ret[ key ] = clone( src[ key ], objSrc, objCopy, n );\r
+               };\r
+               return ret;\r
+       };                              \r
+       return clone( src, [], [], -1 );\r
+};\r
+\r
+\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
+X.isEmptyObject = function( v ){\r
+       var p;\r
+//     if( v.length ) return false;\r
+       for( 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