X-Git-Url: http://git.osdn.jp/view?p=pettanr%2FclientJs.git;a=blobdiff_plain;f=0.6.x%2Fjs%2F01_core%2F01_X.js;fp=0.6.x%2Fjs%2F01_core%2F01_X.js;h=035cfae483ed385c695bdb7612e324e6dad90a8d;hp=0000000000000000000000000000000000000000;hb=51e22031f9629d4bc32444a0228930642144ee9e;hpb=05ae2ffbbca8b1bdb4c3fcbfdd4e1708c0485360 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 index 0000000..035cfae --- /dev/null +++ b/0.6.x/js/01_core/01_X.js @@ -0,0 +1,123 @@ +if( !window['console'] || ( window.parent && window.parent.log ) ) console = { log : function(a){ + var win, elm; + //alert(a); + if( window.parent ){ + elm = parent.document.all ? parent.document.all.log : parent.log || parent.document.getElementById( 'log' ); + elm && ( elm.innerHTML = a + '
' + elm.innerHTML ); + }; +} }; + +var undefined, + X = new Function( 'return X._shortcut && X._shortcut.apply( X._shortcut, arguments )' ), + X_TEMP = {}; + +X.VERSION = '0.6.89'; + +X.bootTime = + new Date; + +X.getTime = Date.now ? Date.now : new Function( 'return +new Date' ); + + +X.emptyFunction = new Function; + + // defer の場合もあるので、document.readyState を見る MacIE で false +X.inHead = (function( s ){ + if( !s ) return false; + if( !s.length ) return false; // Safari1.3 312.8 でerror + s = s[ s.length - 1 ]; + // Dom0 || Dom1 + s = s.parentElement || s.parentNode || s;// s is for opera7.11 + return s.tagName.toLowerCase() === 'head';// opera7.23 s.tagName is 'HTML' +})( document.scripts || document.getElementsByTagName && document.getElementsByTagName( 'script' ) || document.all && document.all.tags( 'script' ) ); + +X.parse = function( v ){ + var _v, n; + if( Type.isString( v ) === true ){ + switch( v ){ + case '' : return v; + //case '{}' : return {}; + //case '[]' : return []; + case 'NaN' : return NaN; + case 'null' : return null; + case 'true' : return true; + case 'false' : return false; + case 'Infinity' : return 1/0;//Number.POSITIVE_INFINITY; + case '-Infinity' : return -1/0;//Number.NEGATIVE_INFINITY; + case 'void(0)' : + case 'void 0' : + case 'undefined' : return; + }; + _v = v.split( ' ' ).join( '' ); + n = _v - 0; + if( '' + n === _v || '' + n === '0' + _v ) return n; + }; + return v; +}; + +X.cloneObject = function( src ){ + var ret, k; + if( typeof src !== 'object' ) return src; + ret = {}; + for( k in src ){ + ret[ k ] = src[ k ]; + }; + return ret; +}; + +X.deepCopy = function( src ){ + function clone( src, objSrc, objCopy, n ) { + var ret, i, key; + if( !src ){ // 0, "", null, undefined, NaN, false + return src; + } else + if( X.Type.isArray( src ) ){ + i = objSrc.indexOf( src ); + if( i !== -1 ) return objCopy[ i ]; + objSrc[ ++n ] = src; + objCopy[ n ] = ret = []; + } else + if( X.Type.isObject( src ) ){ + i = objSrc.indexOf( src ); + if( i !== -1 ) return objCopy[ i ]; + objSrc[ ++n ] = src; + objCopy[ n ] = ret = {}; + } else { + // string, number, true + return src; + }; + for( key in src ){ + ret[ key ] = clone( src[ key ], objSrc, objCopy, n ); + }; + return ret; + }; + return clone( src, [], [], -1 ); +}; + + + + +X.copyArray = function( ary ){ + var ret = [], i = ary.length; + if( !i ) return ret; + for( ; i; ){ + ret[ --i ] = ary[ i ]; + }; + return ret; +}; + +X.isEmptyObject = function( v ){ + var p; +// if( v.length ) return false; + for( p in v ){ + if( v.hasOwnProperty( p ) ) return false; + }; + return true; +}; + +X.matchTest = function( array1, array2 ){ + var i = array2.length; + for( ; i; ){ + if( array1.indexOf( array2[ --i ] ) === -1 ) return false; + }; + return true; +};