X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=0.5.x%2Fjavascripts%2Flibs.js;h=507033b0e21eeb06778d63a4457a8c90224f84d4;hb=2621070c032954702155d4a315535b8b1aafd616;hp=3edbd2107753e13cb2d69eee66c26440be093241;hpb=712b78cb68c351d3dd8e76cc8ae315f100530c58;p=pettanr%2FclientJs.git diff --git a/0.5.x/javascripts/libs.js b/0.5.x/javascripts/libs.js index 3edbd21..507033b 100644 --- a/0.5.x/javascripts/libs.js +++ b/0.5.x/javascripts/libs.js @@ -1,6 +1,6 @@ /* - * pettanR system.js - * version 0.5.33 + * pettanR libs.js + * version 0.5.47 * * * Type @@ -260,11 +260,12 @@ var getFunctionName = function( f ){ var UNIT_RATIO = ( function( elm ){ var ret = {}, unit, - units = 'cm,mm,in,pt,pc'.split( ',' ); + units = 'cm,mm,in,pt,pc'.split( ',' ), + i = units.length; body.appendChild( elm ); - for( var i=units.length; i; ){ + for( ; i; ){ unit = units[ --i ]; elm.style.width = 1000 + unit; ret[ unit ] = elm.offsetWidth / 1000; @@ -277,8 +278,9 @@ var getFunctionName = function( f ){ var FONT_SIZE_RATIO = ( function( elm ){ var ret = {}, - size, - list = 'xx-large,x-large,large,larger,medium,small,smaller,x-small,xx-small'.split( ',' ); + size, base, + list = 'xx-large,x-large,large,larger,medium,small,smaller,x-small,xx-small'.split( ',' ), + i = list.length; body.appendChild( elm ); elm.style.cssText = 'font-size:100px;line-height:1em;'; @@ -286,10 +288,10 @@ var getFunctionName = function( f ){ base = elm.offsetHeight; - for( var i = list.length; i; ){ + for( ; i; ){ size = list[ --i ]; elm.style.fontSize = size; - ret[ size ] = elm.offsetHeight;// / base; + ret[ size ] = base; }; elm.style.cssText = ''; @@ -302,33 +304,45 @@ var getFunctionName = function( f ){ /* clean comment node */ window.setTimeout( function(){ - Util.cleanCommentNode(); + // Util.cleanCommentNode(); /* clean noscript */ var noscripts = Util.copyArray( document.getElementsByTagName( 'noscript' ) ), - ns; - for( var i = noscripts.length; i; ){ + ns, + i = noscripts.length; + for( ; i; ){ ns = noscripts[ --i ]; ns.parentNode && ns.parentNode.removeChild( ns ); }; }, 0 ); - function clone( src ) { - var ret; + var objSrc = [], + objCopy = [], + getIndex; + function clone( src ){ + var ret, i, key; if( Type.isArray(src) === true ){ + i = getIndex( objSrc, src ); + if( i !== -1 ) return objCopy[ i ]; ret = []; + objSrc[ objSrc.length ] = src; + objCopy[ objCopy.length ] = ret; } else if( Type.isObject(src) === true ){ + i = getIndex( objSrc, src ); + if( i !== -1 ) return objCopy[ i ]; ret = {}; + objSrc[ objSrc.length ] = src; + objCopy[ objCopy.length ] = ret; } else if( Type.isNumber(src) === true || Type.isString(src) === true || Type.isBoolean( src ) === true ){ return src; } else { return null; }; - for( var key in src ){ - ret[ key ] = clone( src[ key ]); + for( key in src ){ + ret[ key ] = clone( src[ key ] ); }; return ret; }; @@ -362,6 +376,8 @@ var getFunctionName = function( f ){ return target; }, copy: function( objOrArray ){ + objSrc.length = objCopy.length = 0; + getIndex = Util.getIndex; return clone( objOrArray ); }, cleanCommentNode: function ( _targetElm ){ @@ -380,8 +396,9 @@ var getFunctionName = function( f ){ }; }, cleanElement: function( _targetElm ){ - var _array, _elm, j, _css; - for( var i = CLEAN_TARGET_ELEMENT.length; i; ){ + var _array, _elm, j, _css, + i = CLEAN_TARGET_ELEMENT.length; + for( ; i; ){ _array = Util.copyArray( _targetElm.getElementsByTagName( CLEAN_TARGET_ELEMENT[ --i ] ) ); for( j = _array.length; j; ){ _elm = _nodes[ --j ]; @@ -402,14 +419,15 @@ var getFunctionName = function( f ){ }, camelize: function( cssProp ){ var parts = cssProp.split( ' ' ).join( '' ).split( '-' ), - l = parts.length; + l = parts.length, + i, camelized; if( l === 1 ) return parts[ 0 ]; - var camelized = cssProp.charAt(0) === '-' + camelized = cssProp.charAt(0) === '-' ? parts[ 0 ].charAt( 0 ).toUpperCase() + parts[ 0 ].substring( 1 ) : parts[ 0 ]; - for( var i = 1; i < l; ++i ){ + for( i = 1; i < l; ++i ){ camelized += parts[ i ].charAt( 0 ).toUpperCase() + parts[ i ].substring( 1 ); }; return camelized; @@ -575,7 +593,8 @@ var getFunctionName = function( f ){ getElementsByClassName: function( _elm, _className, opt_tagName ){ var _all = !opt_tagName || opt_tagName === '*', _livenodes = _all === true ? ( _elm.all || _elm.getElementsByTagName( '*' )) : _elm.getElementsByTagName( opt_tagName ), - _nodes = Util.copyArray( _livenodes ); + _nodes = Util.copyArray( _livenodes), + _node; for( var j = 0; j < _nodes.length; ){ _node = _nodes[ j ]; if( _node.nodeType !== 1 || Util.hasClassName( _node, _className ) === false ){ @@ -596,8 +615,9 @@ var getFunctionName = function( f ){ hasClassName: function( _elm, _className ){ var cnames = ( _elm.className || '' ).split( ' ' ), _cnames = _className.split( ' ' ), - cname; - for( var i = _cnames.length; i; ){ + cname, + i = _cnames.length; + for( ; i; ){ cname = _cnames[ --i ]; if( cname === '' ) continue; if( Util.getIndex( cnames, cname ) === -1 ) return false; @@ -639,27 +659,29 @@ var getFunctionName = function( f ){ _node.parentNode && _node.parentNode.removeChild( _node); } }, - getIndex: function( _array, _element ){ + getIndex: function( array, element ){ if( Array.prototype.indexof ){ - Util.getIndex = function( _array, _element ){ - return _array.indexof( _element ); + Util.getIndex = function( array, element ){ + return array.indexof( element ); }; } else { - Util.getIndex = function( _array, _element ){ - for( var i = _array.length; i; ){ - if( _array[ --i ] === _element ) return i; + Util.getIndex = function( array, element ){ + var i = array.length; + for( ; i; ){ + if( array[ --i ] === element ) return i; }; return -1; }; }; - return Util.getIndex( _array, _element ); + return Util.getIndex( array, element ); }, copyArray: function( _array ){ var l = _array.length, - ret = new Array( l ); - for( var i=0; i 1 ) return false; }; return true; }, - convert: function( prop ){ - var u = prop.pct; + convert : function( prop ){ + var u = prop.pct, x; if( this.pct === u ) return; - var x = u === true ? 100 / 255 : 2.55; + x = u === true ? 100 / 255 : 2.55; this.r *= x; this.g *= x; this.b *= x; this.pct = u; }, - setValue: function( rgb ){ + setValue : function( rgb ){ this.r = rgb[ 0 ]; this.g = rgb[ 1 ]; this.b = rgb[ 2 ]; }, - getValue: function(){ + getValue : function(){ return [ this.r, this.g, this.b ]; }, - getOffset: function( prop ){ + getOffset : function( prop ){ return [ prop.r - this.r, prop.g - this.g, prop.b - this.b ]; }, - getUnit: function(){ + getUnit : function(){ return this.pct === true ? '%' : ''; }, - getValueText: function(){ + getValueText : function(){ if( this.pct === true ){ return [ 'rgb(', this.r, '%,', this.g, '%,', this.b, '%)' ].join( '' ); }; @@ -1176,18 +1168,18 @@ var CSS = ( function( window, documwnt, undefined ){ var rgb = '00000' + ( ( round( this.r ) << 16 ) + ( round( this.g ) << 8 ) + round( this.b ) ).toString( 16 ); return '#' + rgb.substr( rgb.length - 6 ); }, - clear: function(){ + clear : function(){ var t = this, p; for( p in t ){ if( t.hasOwnProperty && !t.hasOwnProperty( p ) ) continue; delete t[ p ]; }; }, - _toPct: function(){ + _toPct : function(){ if( this.pct === true ) return [ this.r, this.g, this.b ]; return [ this.r / 2.55, this.g / 2.55, this.b / 2.55 ]; }, - isValid: function( t ){ + isValid : function( t ){ var isFinite = window.isFinite; if( !isFinite( this.r ) || !isFinite( this.g ) || !isFinite( this.b ) ) return false; if( 0 > this.r || 0 > this.g || 0 > this.b ) return false; @@ -1323,7 +1315,8 @@ var CSS = ( function( window, documwnt, undefined ){ right = this.get( name + 'Right' ), bottom = this.get( name + 'Bottom' ), left = this.get( name + 'Left' ), - ret = new PropertyGroupClass( name, top, right, bottom, left ); + ret = new PropertyGroupClass( name, top, right, bottom, left), + all; if( ret.isValid() === true ) return ret; ret.clear(); all = this.style[ name ].split( '(' )[ 1 ].split( ')' )[ 0 ].split( CLIP_SEPARATOR ); @@ -1355,13 +1348,13 @@ var CSS = ( function( window, documwnt, undefined ){ bottom = this.get( name + 'Bottom' + widthOrColor ), left = this.get( name + 'Left' + widthOrColor ), ret = new FrexiblePropertyClass( name, top, right, bottom, left ), - all, x, v, u; + all, x, v, u, i, l; if( ret.isValid() === true ) return ret; ret.clear(); all = this.style[ name + widthOrColor ].split( ' ' ); - for( var i=0, l=all.length; i