OSDN Git Service

3be38c6f340bec27ae8f191eaba17a6071b8b7a0
[pettanr/clientJs.git] / 0.6.x / js / core / 00_X.js
1 if( !window['console'] || ( window.parent && window.parent.log ) ) console = { log : function(a){\r
2         var win, elm;\r
3         //alert(a)\r
4         if( window.parent ){\r
5                 elm = parent.document.all ? parent.document.all.log : parent.log || parent.document.getElementById( 'log' );\r
6                 elm && ( elm.innerHTML = a + '<br>' + elm.innerHTML );\r
7         };\r
8 } };\r
9 \r
10 var undefined,\r
11         X = new Function( 'return X._shortcut && X._shortcut.apply( X._shortcut, arguments )' );\r
12 \r
13 X.VERSION = '0.6.50';\r
14                 \r
15 X.bootTime = + new Date;\r
16                 \r
17 X.getTime = Date.now ? new Function( 'return Date.now()' ) : new Function( 'return +new Date' );\r
18                 \r
19 X.emptyFunction = new Function;\r
20 \r
21                 // defer の場合もあるので、document.readyState を見る MacIE で false\r
22 X.inHead = (function( s ){\r
23         if( !s ) return false;\r
24         if( !s.length ) return false; // Safari1.3 312.8 でerror\r
25         s = s[ s.length - 1 ];\r
26         // Dom0 || Dom1\r
27         s = s.parentElement || s.parentNode || s;// s is for opera7.11\r
28         return s.tagName.toLowerCase() === 'head';// opera7.23 s.tagName is 'HTML'\r
29 })( document.scripts || document.getElementsByTagName && document.getElementsByTagName( 'script' ) || document.all && document.all.tags( 'script' ) );\r
30 \r
31 X.parse = function( v ){\r
32         var _v, n;\r
33         if( Type.isString( v ) === true ){\r
34                 switch( v ){\r
35                         case ''          : return v;\r
36                         //case '{}'        : return {};\r
37                         //case '[]'        : return [];\r
38                         case 'NaN'       : return NaN;\r
39                         case 'null'      : return null;\r
40                         case 'true'      : return true;\r
41                         case 'false'     : return false;\r
42                         case 'Infinity'  : return Number.POSITIVE_INFINITY;\r
43                         case '-Infinity' : return Number.NEGATIVE_INFINITY;\r
44                         case 'undefined' : return;\r
45                 };\r
46                 _v = v.split( ' ' ).join( '' );\r
47                 n  = _v - 0;\r
48                 if( '' + n === _v || '' + n === '0' + _v  ) return n;\r
49         };\r
50         return v;\r
51 };\r
52                 \r
53 X.cloneObject = function( src ){\r
54         var ret, k;\r
55         if( typeof src !== 'object' ) return src;\r
56         ret = {};\r
57         for( k in src ){\r
58                 ret[ k ] = src[ k ];\r
59         };\r
60         return ret;\r
61 };\r
62 \r
63 X.copyArray = function( ary ){\r
64         var ret = [], i = ary.length;\r
65         if( !i ) return ret;\r
66         for( ; i; ){\r
67                 ret[ --i ] = ary[ i ];\r
68         };\r
69         return ret;\r
70 };\r
71         \r
72 X.isEmptyObject = function( v ){\r
73         if( v.length !== 0 ) return false;\r
74         for( var p in v ){\r
75                 if( v.hasOwnProperty( p ) ) return false;\r
76         };\r
77         return true;\r
78 };\r
79                 \r
80 X.matchTest = function( array1, array2 ){\r
81         var i = array2.length;\r
82         for( ; i; ){\r
83                 if( array1.indexOf( array2[ --i ] ) === -1 ) return false;\r
84         };\r
85         return true;\r
86 };\r