OSDN Git Service

Version 0.6.58, X.UI.HBox is working.
[pettanr/clientJs.git] / 0.5.x / javascripts / libs.js
index 3edbd21..507033b 100644 (file)
@@ -1,6 +1,6 @@
 /*\r
- * pettanR system.js\r
- *   version 0.5.33\r
+ * pettanR libs.js\r
+ *   version 0.5.47\r
  * \r
  * \r
  * Type\r
@@ -260,11 +260,12 @@ var getFunctionName = function( f ){
                var UNIT_RATIO = ( function( elm ){\r
                                var ret = {},\r
                                        unit,\r
-                                       units = 'cm,mm,in,pt,pc'.split( ',' );\r
+                                       units = 'cm,mm,in,pt,pc'.split( ',' ),\r
+                                       i     = units.length;\r
                                \r
                                body.appendChild( elm );\r
                                \r
-                               for( var i=units.length; i; ){\r
+                               for( ; i; ){\r
                                        unit = units[ --i ];\r
                                        elm.style.width = 1000 + unit;\r
                                        ret[ unit ] = elm.offsetWidth / 1000;\r
@@ -277,8 +278,9 @@ var getFunctionName = function( f ){
                        \r
                var FONT_SIZE_RATIO = ( function( elm ){\r
                                var ret = {},\r
-                                       size,\r
-                                       list = 'xx-large,x-large,large,larger,medium,small,smaller,x-small,xx-small'.split( ',' );\r
+                                       size, base,\r
+                                       list = 'xx-large,x-large,large,larger,medium,small,smaller,x-small,xx-small'.split( ',' ),\r
+                                       i = list.length;\r
                                \r
                                body.appendChild( elm );\r
                                elm.style.cssText = 'font-size:100px;line-height:1em;';\r
@@ -286,10 +288,10 @@ var getFunctionName = function( f ){
                                \r
                                base = elm.offsetHeight;\r
                                \r
-                               for( var i = list.length; i; ){\r
+                               for( ; i; ){\r
                                        size = list[ --i ];\r
                                        elm.style.fontSize = size;\r
-                                       ret[ size ] = elm.offsetHeight;// / base;\r
+                                       ret[ size ] = base;\r
                                };\r
                                \r
                                elm.style.cssText = '';\r
@@ -302,33 +304,45 @@ var getFunctionName = function( f ){
                \r
                /* clean comment node */\r
                window.setTimeout( function(){\r
-                       Util.cleanCommentNode();\r
+                       // Util.cleanCommentNode();\r
                        \r
                        /* clean noscript */\r
 \r
                        var noscripts = Util.copyArray( document.getElementsByTagName( 'noscript' ) ),\r
-                               ns;\r
-                       for( var i = noscripts.length; i; ){\r
+                               ns,\r
+                               i = noscripts.length;\r
+                       for( ; i; ){\r
                                ns = noscripts[ --i ];\r
                                ns.parentNode && ns.parentNode.removeChild( ns );\r
                        };\r
                }, 0 );\r
                \r
-               function clone( src ) {\r
-                       var ret;\r
+               var objSrc   = [],\r
+                       objCopy  = [],\r
+                       getIndex;       \r
+               function clone( src ){\r
+                       var ret, i, key;\r
                        if( Type.isArray(src) === true ){\r
+                               i = getIndex( objSrc, src );\r
+                               if( i !== -1 ) return objCopy[ i ];\r
                                ret = [];\r
+                               objSrc[ objSrc.length ]   = src;\r
+                               objCopy[ objCopy.length ] = ret;\r
                        } else\r
                        if( Type.isObject(src) === true ){\r
+                               i = getIndex( objSrc, src );\r
+                               if( i !== -1 ) return objCopy[ i ];\r
                                ret = {};\r
+                               objSrc[ objSrc.length ]   = src;\r
+                               objCopy[ objCopy.length ] = ret;\r
                        } else\r
                        if( Type.isNumber(src) === true || Type.isString(src) === true || Type.isBoolean( src ) === true ){\r
                                return src;\r
                        } else {\r
                                return null;\r
                        };\r
-                       for( var key in src ){\r
-                               ret[ key ] = clone( src[ key ]);\r
+                       for( key in src ){\r
+                               ret[ key ] = clone( src[ key ] );\r
                        };\r
                        return ret;\r
                };\r
@@ -362,6 +376,8 @@ var getFunctionName = function( f ){
                                return target;\r
                        },\r
                        copy: function( objOrArray ){\r
+                               objSrc.length = objCopy.length = 0;\r
+                               getIndex = Util.getIndex;\r
                                return clone( objOrArray );\r
                        },\r
                        cleanCommentNode: function ( _targetElm ){\r
@@ -380,8 +396,9 @@ var getFunctionName = function( f ){
                                };\r
                        },\r
                        cleanElement: function( _targetElm ){\r
-                               var _array, _elm, j, _css;\r
-                               for( var i = CLEAN_TARGET_ELEMENT.length; i; ){\r
+                               var _array, _elm, j, _css,\r
+                                   i = CLEAN_TARGET_ELEMENT.length;\r
+                               for( ; i; ){\r
                                        _array = Util.copyArray( _targetElm.getElementsByTagName( CLEAN_TARGET_ELEMENT[ --i ] ) );\r
                                        for( j = _array.length; j; ){\r
                                                _elm = _nodes[ --j ];\r
@@ -402,14 +419,15 @@ var getFunctionName = function( f ){
                        },\r
                        camelize: function( cssProp ){\r
                            var parts = cssProp.split( ' ' ).join( '' ).split( '-' ),\r
-                               l     = parts.length;\r
+                               l     = parts.length,\r
+                               i, camelized;\r
                            if( l === 1 ) return parts[ 0 ];\r
                        \r
-                           var camelized = cssProp.charAt(0) === '-'\r
+                           camelized = cssProp.charAt(0) === '-'\r
                              ? parts[ 0 ].charAt( 0 ).toUpperCase() + parts[ 0 ].substring( 1 )\r
                              : parts[ 0 ];\r
                        \r
-                           for( var i = 1; i < l; ++i ){\r
+                           for( i = 1; i < l; ++i ){\r
                                camelized += parts[ i ].charAt( 0 ).toUpperCase() + parts[ i ].substring( 1 );\r
                            };\r
                            return camelized;\r
@@ -575,7 +593,8 @@ var getFunctionName = function( f ){
                        getElementsByClassName: function( _elm, _className, opt_tagName ){\r
                                var _all       = !opt_tagName || opt_tagName === '*',\r
                                        _livenodes = _all === true ? ( _elm.all || _elm.getElementsByTagName( '*' )) : _elm.getElementsByTagName( opt_tagName ),\r
-                                       _nodes     = Util.copyArray( _livenodes );\r
+                                       _nodes     = Util.copyArray( _livenodes),\r
+                    _node;\r
                                for( var j = 0; j < _nodes.length; ){\r
                                        _node = _nodes[ j ];\r
                                        if( _node.nodeType !== 1 || Util.hasClassName( _node, _className ) === false ){\r
@@ -596,8 +615,9 @@ var getFunctionName = function( f ){
                        hasClassName: function( _elm, _className ){\r
                                var cnames  = ( _elm.className || '' ).split( ' ' ),\r
                                        _cnames = _className.split( ' ' ),\r
-                                       cname;\r
-                               for( var i = _cnames.length; i; ){\r
+                                       cname,\r
+                                       i = _cnames.length;\r
+                               for( ; i; ){\r
                                        cname = _cnames[ --i ];\r
                                        if( cname === '' ) continue;\r
                                        if( Util.getIndex( cnames, cname ) === -1 ) return false;\r
@@ -639,27 +659,29 @@ var getFunctionName = function( f ){
                                        _node.parentNode && _node.parentNode.removeChild( _node);\r
                                }\r
                        },\r
-                       getIndex: function( _array, _element ){\r
+                       getIndex: function( array, element ){\r
                                if( Array.prototype.indexof ){\r
-                                       Util.getIndex = function( _array, _element ){\r
-                                               return _array.indexof( _element );\r
+                                       Util.getIndex = function( array, element ){\r
+                                               return array.indexof( element );\r
                                        };\r
                                } else {\r
-                                       Util.getIndex = function( _array, _element ){\r
-                                               for( var i = _array.length; i; ){\r
-                                                       if( _array[ --i ] === _element ) return i;\r
+                                       Util.getIndex = function( array, element ){\r
+                                               var i = array.length;\r
+                                               for( ; i; ){\r
+                                                       if( array[ --i ] === element ) return i;\r
                                                };\r
                                                return -1;\r
                                        };\r
                                };\r
-                               return Util.getIndex( _array, _element );\r
+                               return Util.getIndex( array, element );\r
                        },\r
                        copyArray: function( _array ){\r
                                var l = _array.length,\r
-                                       ret = new Array( l );\r
-                               for( var i=0; i<l; ++i ){\r
+                                       ret = new Array( l ),\r
+                                       i = 0;\r
+                               for( ; i<l; ++i ){\r
                                        ret[ i ] = _array[ i ];\r
-                               }\r
+                               };\r
                                return ret;\r
                        },\r
                        /*\r
@@ -716,7 +738,7 @@ var getFunctionName = function( f ){
 var CSS = ( function( window, documwnt, undefined ){\r
        var     CORON                  = ':',\r
                EMPTY                  = '',\r
-               SEMICORON              = ';';\r
+               SEMICORON              = ';',\r
                UNITS                  = 'px,cm,mm,in,pt,pc,em,%'.split( ',' ),\r
                CLIP_SEPARATOR         = UA.isIE === true && UA.ieVersion < 8 ? ' ' : ',';\r
 \r
@@ -789,132 +811,101 @@ var CSS = ( function( window, documwnt, undefined ){
                                \r
                return _special;\r
        })();\r
-       \r
-       function cssToObject( css ){\r
-               var ret      = {}, i, nv, n, v,\r
-                       parse    = Util.parse,\r
-                       isNumber = Type.isNumber,\r
-                       camelize = Util.camelize;\r
-               if( Type.isString( css ) === true ){\r
-                       css = css.split( ';' );\r
-                       for( i = css.length; i; ){\r
-                               nv    = css[ --i ].split( ':' ); // filter の場合, progid: がくる\r
-                               n     = nv.shift();\r
-                               if( isNumber( parse( n ) ) === true ) continue;\r
-                               v     = nv.join( '' );\r
-                               while( v.charAt( 0 ) === ' ' ) v = v.substr( 1 );\r
-                               ret[ camelize( n ) ] = parse( v );\r
-                       };\r
-               } else {\r
-                       for( n in css ){\r
-                               if( Type.isNumber( parse( n ) ) === false ) ret[ n ] = parse( css[ n ] );\r
-                       };\r
-               };\r
-\r
-               if( SPECIAL.setFilters ){\r
-                       SPECIAL.setFilters( ret );\r
-               } else {\r
-                       ret.opacity = SPECIAL.opacity !== null ? ret[ SPECIAL.opacity ] : 1;\r
-               };\r
-               \r
-               SPECIAL.setBackgroundPositionXY && SPECIAL.setBackgroundPositionXY( ret );\r
-               SPECIAL.setClipTopRightBottomLeft && SPECIAL.setClipTopRightBottomLeft( ret );\r
-               \r
-               return ret;\r
-       };\r
 \r
        var COLOR = ( function(){\r
-               var ret = {}, v, name,\r
+               var ret = {}, v, name, i,\r
                        list = [\r
-                               0, 'BLACK',\r
-                               parseInt( 'FF0000', 16 ), 'RED',\r
-                               parseInt( '00FF00', 16 ), 'LIME',\r
-                               parseInt( '0000FF', 16 ), 'BLUE',\r
-                               parseInt( 'FFFF00', 16 ), 'YELLOW',\r
-                               parseInt( '00FFFF', 16 ), 'AQUA or CYAN',\r
-                               parseInt( 'FF00FF', 16 ), 'FUCHSIA or MAGENTA',\r
-                               parseInt( 'FFFFFF', 16 ), 'WHITE',\r
-                               parseInt( '008000', 16 ), 'GREEN',\r
-                               parseInt( '800080', 16 ), 'PURPLE',\r
-                               parseInt( '800000', 16 ), 'MAROON',\r
-                               parseInt( '000080', 16 ), 'NAVY',\r
-                               parseInt( '808000', 16 ), 'OLIVE',\r
-                               parseInt( '008080', 16 ), 'TEAL',\r
-                               parseInt( '808080', 16 ), 'GRAY',\r
-                               parseInt( 'C0C0C0', 16 ), 'SILVER',\r
-                               parseInt( '696969', 16 ), 'DIMGRAY',\r
-                               parseInt( '708090', 16 ), 'SLATEGRAY',\r
-                               parseInt( 'A9A9A9', 16 ), 'DARKGRAY',\r
-                               parseInt( 'DCDCDC', 16 ), 'GAINSBORO',\r
-                               parseInt( '191970', 16 ), 'MIDNIGHTBLUE',\r
-                               parseInt( '6A5ACD', 16 ), 'SLATEBLUE',\r
-                               parseInt( '0000CD', 16 ), 'MEDIUMBLUE',\r
-                               parseInt( '4169E1', 16 ), 'ROYALBLUE',\r
-                               parseInt( '1E90FF', 16 ), 'DODGERBLUE',\r
-                               parseInt( '87CEEB', 16 ), 'SKYBLUE',\r
-                               parseInt( '4682B4', 16 ), 'STEELBLUE',\r
-                               parseInt( 'ADD8E6', 16 ), 'LIGHTBLUE',\r
-                               parseInt( 'AFEEEE', 16 ), 'PALETURQUOISE',\r
-                               parseInt( '40E0D0', 16 ), 'TURQUOISE',\r
-                               parseInt( 'E0FFFF', 16 ), 'LIGHTCYAN',\r
-                               parseInt( '7FFFD4', 16 ), 'AQUAMARINE',\r
-                               parseInt( '006400', 16 ), 'DARKGREEN',\r
-                               parseInt( '2E8B57', 16 ), 'SEAGREEN',\r
-                               parseInt( '90EE90', 16 ), 'LIGHTGREEN',\r
-                               parseInt( '7FFF00', 16 ), 'CHARTREUSE',\r
-                               parseInt( 'ADFF2F', 16 ), 'GREENYELLOW',\r
-                               parseInt( '32CD32', 16 ), 'LIMEGREEN',\r
-                               parseInt( '9ACD32', 16 ), 'YELLOWGREEN',\r
-                               parseInt( '6B8E23', 16 ), 'OLIVEDRAB',\r
-                               parseInt( 'BCB76B', 16 ), 'DARKKHAKI',\r
-                               parseInt( 'EEE8AA', 16 ), 'PALEGOLDENROD',\r
-                               parseInt( 'FFFFE0', 16 ), 'LIGHTYELLOW',\r
-                               parseInt( 'FFD700', 16 ), 'GOLD',\r
-                               parseInt( 'DAA520', 16 ), 'GOLDENROD',\r
-                               parseInt( 'B8860B', 16 ), 'DARKGOLDENROD',\r
-                               parseInt( 'BC8F8F', 16 ), 'ROSYBROWN',\r
-                               parseInt( 'CD5C5C', 16 ), 'INDIANRED',\r
-                               parseInt( '8B4513', 16 ), 'SADDLEBROWN',\r
-                               parseInt( 'A0522D', 16 ), 'SIENNA',\r
-                               parseInt( 'CD853F', 16 ), 'PERU',\r
-                               parseInt( 'DEB887', 16 ), 'BURLYWOOD',\r
-                               parseInt( 'F5F5DC', 16 ), 'BEIGE',\r
-                               parseInt( 'F5DEB3', 16 ), 'WHEAT',\r
-                               parseInt( 'F4A460', 16 ), 'SANDYBROWN',\r
-                               parseInt( 'D2B48C', 16 ), 'TAN',\r
-                               parseInt( 'D2691E', 16 ), 'CHOCOLATE',\r
-                               parseInt( 'B22222', 16 ), 'FIREBRICK',\r
-                               parseInt( 'A52A2A', 16 ), 'BROWN',\r
-                               parseInt( 'FA8072', 16 ), 'SALMON',\r
-                               parseInt( 'FFA500', 16 ), 'ORANGE',\r
-                               parseInt( 'FF7F50', 16 ), 'CORAL',\r
-                               parseInt( 'FF6347', 16 ), 'TOMATO',\r
-                               parseInt( 'FF69B4', 16 ), 'HOTPINK',\r
-                               parseInt( 'FFC0CB', 16 ), 'PINK',\r
-                               parseInt( 'FF1493', 16 ), 'DEEPPINK',\r
-                               parseInt( 'DB7093', 16 ), 'PALEVIOLETRED',\r
-                               parseInt( 'EE82EE', 16 ), 'VIOLET',\r
-                               parseInt( 'DDA0DD', 16 ), 'PLUM',\r
-                               parseInt( 'DA70D6', 16 ), 'ORCHILD',\r
-                               parseInt( '9400D3', 16 ), 'DARKVIOLET',\r
-                               parseInt( '8A2BE2', 16 ), 'BLUEVIOLET',\r
-                               parseInt( '9370DB', 16 ), 'MEDIUMPURPLE',\r
-                               parseInt( 'D8BFD8', 16 ), 'THISTLE',\r
-                               parseInt( 'E6E6FA', 16 ), 'LAVENDER',\r
-                               parseInt( 'FFE4E1', 16 ), 'MISTYROSE',\r
-                               parseInt( 'FFFFF0', 16 ), 'IVORY',\r
-                               parseInt( 'FFFACD', 16 ), 'LEMONCHIFFON'\r
+                               '0', 'BLACK',\r
+                               'FF0000', 'RED',\r
+                               '00FF00', 'LIME',\r
+                               '0000FF', 'BLUE',\r
+                               'FFFF00', 'YELLOW',\r
+                               '00FFFF', 'AQUA',\r
+                               '00FFFF', 'CYAN',\r
+                               'FF00FF', 'MAGENTA',\r
+                               'FF00FF', 'FUCHSIA',\r
+                               'FFFFFF', 'WHITE',\r
+                               '008000', 'GREEN',\r
+                               '800080', 'PURPLE',\r
+                               '800000', 'MAROON',\r
+                               '000080', 'NAVY',\r
+                               '808000', 'OLIVE',\r
+                               '008080', 'TEAL',\r
+                               '808080', 'GRAY',\r
+                               'C0C0C0', 'SILVER',\r
+                               '696969', 'DIMGRAY',\r
+                               '708090', 'SLATEGRAY',\r
+                               'A9A9A9', 'DARKGRAY',\r
+                               'DCDCDC', 'GAINSBORO',\r
+                               '191970', 'MIDNIGHTBLUE',\r
+                               '6A5ACD', 'SLATEBLUE',\r
+                               '0000CD', 'MEDIUMBLUE',\r
+                               '4169E1', 'ROYALBLUE',\r
+                               '1E90FF', 'DODGERBLUE',\r
+                               '87CEEB', 'SKYBLUE',\r
+                               '4682B4', 'STEELBLUE',\r
+                               'ADD8E6', 'LIGHTBLUE',\r
+                               'AFEEEE', 'PALETURQUOISE',\r
+                               '40E0D0', 'TURQUOISE',\r
+                               'E0FFFF', 'LIGHTCYAN',\r
+                               '7FFFD4', 'AQUAMARINE',\r
+                               '006400', 'DARKGREEN',\r
+                               '2E8B57', 'SEAGREEN',\r
+                               '90EE90', 'LIGHTGREEN',\r
+                               '7FFF00', 'CHARTREUSE',\r
+                               'ADFF2F', 'GREENYELLOW',\r
+                               '32CD32', 'LIMEGREEN',\r
+                               '9ACD32', 'YELLOWGREEN',\r
+                               '6B8E23', 'OLIVEDRAB',\r
+                               'BCB76B', 'DARKKHAKI',\r
+                               'EEE8AA', 'PALEGOLDENROD',\r
+                               'FFFFE0', 'LIGHTYELLOW',\r
+                               'FFD700', 'GOLD',\r
+                               'DAA520', 'GOLDENROD',\r
+                               'B8860B', 'DARKGOLDENROD',\r
+                               'BC8F8F', 'ROSYBROWN',\r
+                               'CD5C5C', 'INDIANRED',\r
+                               '8B4513', 'SADDLEBROWN',\r
+                               'A0522D', 'SIENNA',\r
+                               'CD853F', 'PERU',\r
+                               'DEB887', 'BURLYWOOD',\r
+                               'F5F5DC', 'BEIGE',\r
+                               'F5DEB3', 'WHEAT',\r
+                               'F4A460', 'SANDYBROWN',\r
+                               'D2B48C', 'TAN',\r
+                               'D2691E', 'CHOCOLATE',\r
+                               'B22222', 'FIREBRICK',\r
+                               'A52A2A', 'BROWN',\r
+                               'FA8072', 'SALMON',\r
+                               'FFA500', 'ORANGE',\r
+                               'FF7F50', 'CORAL',\r
+                               'FF6347', 'TOMATO',\r
+                               'FF69B4', 'HOTPINK',\r
+                               'FFC0CB', 'PINK',\r
+                               'FF1493', 'DEEPPINK',\r
+                               'DB7093', 'PALEVIOLETRED',\r
+                               'EE82EE', 'VIOLET',\r
+                               'DDA0DD', 'PLUM',\r
+                               'DA70D6', 'ORCHILD',\r
+                               '9400D3', 'DARKVIOLET',\r
+                               '8A2BE2', 'BLUEVIOLET',\r
+                               '9370DB', 'MEDIUMPURPLE',\r
+                               'D8BFD8', 'THISTLE',\r
+                               'E6E6FA', 'LAVENDER',\r
+                               'FFE4E1', 'MISTYROSE',\r
+                               'FFFFF0', 'IVORY',\r
+                               'FFFACD', 'LEMONCHIFFON'\r
                        ];\r
-               for( i=list.length; i; ){\r
+               for( i = list.length; i; ){\r
                        v    = list[ --i ];\r
                        name = list[ --i ];\r
-                       ret[ name ] = v;\r
+                       ret[ name ] = parseInt( v, 16 );\r
                };\r
                return ret;\r
        })();\r
        \r
        var PARAMS = ( function(){\r
-               ret = {};\r
+               var ret = {};\r
                register( ret.percent = {},\r
                        'marginBottom,marginLeft,marginRight,marginTop,paddingBottom,paddingLeft,paddingRight,paddingTop,fontSize,textIndent'\r
                );\r
@@ -1046,8 +1037,8 @@ var CSS = ( function( window, documwnt, undefined ){
                // top, bottom, left, right, topbottom, leftright, all\r
        };\r
        FrexiblePropertyClass.prototype = PropertyGroupClass.prototype = {\r
-               name:    '',\r
-               equal: function( prop ){\r
+               name  : '',\r
+               equal : function( prop ){\r
                        var ps = this.props, i = ps.length;\r
                        for( ; i; ){\r
                                --i;\r
@@ -1055,27 +1046,27 @@ var CSS = ( function( window, documwnt, undefined ){
                        };\r
                        return true;\r
                },\r
-               convert: function( prop ){\r
+               convert : function( prop ){\r
                        var ps = this.props, i = ps.length;\r
                        for( ; i; ){\r
                                --i;\r
                                ps[ i ].convert( prop[ i ] );\r
                        };\r
                },\r
-               setValue: function( ary ){\r
+               setValue : function( ary ){\r
                        var ps = this.props, i = 0, l = ps.length;\r
                        for( ; i<l; ++i ){\r
                                ps[ i ].setValue( ary[ i ] );\r
                        };\r
                },\r
-               getValue: function(){\r
+               getValue : function(){\r
                        var ret = [], ps = this.props, i = 0, l = ps.length;\r
                        for( ; i<l; ++i ){\r
                                ret.push( ps[ i ].getValue() );\r
                        };\r
                        return ret;\r
                },\r
-               getOffset: function( prop ){\r
+               getOffset : function( prop ){\r
                        var ret = [],\r
                                ps  = this.props,\r
                                _ps = prop.props,\r
@@ -1086,14 +1077,14 @@ var CSS = ( function( window, documwnt, undefined ){
                        };\r
                        return ret;\r
                },\r
-               getUnit: function(){\r
+               getUnit : function(){\r
                        var ret = [], ps = this.props, i = 0, l = ps.length;\r
                        for( ; i<l; ++i ){\r
                                ret.push( ps[ i ].getUnit() );\r
                        };\r
                        return ret;\r
                },\r
-               getValueText: function(){\r
+               getValueText : function(){\r
                        var ret = [], ps = this.props, i = 0, l = ps.length;\r
                        for( ; i<l; ++i ){\r
                                ret.push( ps[ i ].getValueText() );\r
@@ -1103,7 +1094,7 @@ var CSS = ( function( window, documwnt, undefined ){
                        };\r
                        return ret.join( ' ' );\r
                },\r
-               clear: function(){\r
+               clear : function(){\r
                        var ps = this.props, i = ps.length;\r
                        for( ; i; ){\r
                                ps[ --i ].clear();\r
@@ -1111,7 +1102,7 @@ var CSS = ( function( window, documwnt, undefined ){
                        delete this.name;\r
                        delete this.props;\r
                },\r
-               isValid: function( t ){\r
+               isValid : function( t ){\r
                        t = t || this;\r
                        var ps = t.props, i = ps.length;\r
                        for( ; i; ){\r
@@ -1130,43 +1121,44 @@ var CSS = ( function( window, documwnt, undefined ){
                this.pct  = pct;\r
        };\r
        ColorPropertyClass.prototype = {\r
-               name:    '',\r
-               equal: function( prop ){\r
+               name  : '',\r
+               equal : function( prop ){\r
                        if( this.pct === prop.pct ){\r
                                return this.r === prop.r && this.g === prop.g && this.b === prop.b;\r
                        };\r
                        var rgb  = this._toPct(),\r
-                               _rgb = prop._toPct();\r
-                       for( var i = rgb.length; i; ){\r
+                               _rgb = prop._toPct(),\r
+                               i    = rgb.length;\r
+                       for( ; i; ){\r
                                --i;\r
                                if( Math.abs( rgb[ i ] - _rgb[ i ] ) > 1 ) return false;\r
                        };\r
                        return true;\r
                },\r
-               convert: function( prop ){\r
-                       var u = prop.pct;\r
+               convert : function( prop ){\r
+                       var u = prop.pct, x;\r
                        if( this.pct === u ) return;\r
-                       var x    = u === true ? 100 / 255 : 2.55;\r
+                       x = u === true ? 100 / 255 : 2.55;\r
                        this.r  *= x;\r
                        this.g  *= x;\r
                        this.b  *= x;\r
                        this.pct = u;\r
                },\r
-               setValue: function( rgb ){\r
+               setValue : function( rgb ){\r
                        this.r = rgb[ 0 ];\r
                        this.g = rgb[ 1 ];\r
                        this.b = rgb[ 2 ];\r
                },\r
-               getValue: function(){\r
+               getValue : function(){\r
                        return [ this.r, this.g, this.b ];\r
                },\r
-               getOffset: function( prop ){\r
+               getOffset : function( prop ){\r
                        return [ prop.r - this.r, prop.g - this.g, prop.b - this.b ];\r
                },\r
-               getUnit: function(){\r
+               getUnit : function(){\r
                        return this.pct === true ? '%' : '';\r
                },\r
-               getValueText: function(){\r
+               getValueText : function(){\r
                        if( this.pct === true ){\r
                                return [ 'rgb(', this.r, '%,', this.g, '%,', this.b, '%)' ].join( '' );\r
                        };\r
@@ -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 );\r
                        return '#' + rgb.substr( rgb.length - 6 );\r
                },\r
-               clear: function(){\r
+               clear : function(){\r
                        var t = this, p;\r
                        for( p in t ){\r
                                if( t.hasOwnProperty && !t.hasOwnProperty( p ) ) continue;\r
                                delete t[ p ];\r
                        };\r
                },\r
-               _toPct: function(){\r
+               _toPct : function(){\r
                        if( this.pct === true ) return [ this.r, this.g, this.b ];\r
                        return [ this.r / 2.55, this.g / 2.55, this.b / 2.55 ];\r
                },\r
-               isValid: function( t ){\r
+               isValid : function( t ){\r
                        var isFinite = window.isFinite;\r
                        if( !isFinite( this.r ) || !isFinite( this.g ) || !isFinite( this.b ) ) return false;\r
                        if( 0 > this.r || 0 > this.g || 0 > this.b ) return false;\r
@@ -1323,7 +1315,8 @@ var CSS = ( function( window, documwnt, undefined ){
                                right  = this.get( name + 'Right' ),\r
                                bottom = this.get( name + 'Bottom' ),\r
                                left   = this.get( name + 'Left' ),\r
-                               ret    = new PropertyGroupClass( name, top, right, bottom, left );\r
+                               ret    = new PropertyGroupClass( name, top, right, bottom, left),\r
+                all;\r
                        if( ret.isValid() === true ) return ret;\r
                        ret.clear();\r
                        all    = this.style[ name ].split( '(' )[ 1 ].split( ')' )[ 0 ].split( CLIP_SEPARATOR );\r
@@ -1355,13 +1348,13 @@ var CSS = ( function( window, documwnt, undefined ){
                                bottom = this.get( name + 'Bottom' + widthOrColor ),\r
                                left   = this.get( name + 'Left' + widthOrColor ),\r
                                ret    = new FrexiblePropertyClass( name, top, right, bottom, left ),\r
-                               all, x, v, u;\r
+                               all, x, v, u, i, l;\r
                        \r
                        if( ret.isValid() === true ) return ret;\r
                        ret.clear();\r
                        all = this.style[ name + widthOrColor ].split( ' ' );\r
                        \r
-                       for( var i=0, l=all.length; i<l; ++i ){\r
+                       for( i = 0, l=all.length; i<l; ++i ){\r
                                x = all[ i ];\r
                                v = this.getValue( x );\r
                                u = this.getUnit( x );\r
@@ -1405,13 +1398,13 @@ var CSS = ( function( window, documwnt, undefined ){
                                bottom   = this.get( name + 'BottomColor' ),\r
                                left     = this.get( name + 'LeftColor' ),\r
                                ret      = new FrexiblePropertyClass( name, top, right, bottom, left ),\r
-                               all, x;\r
+                               all, x, i, l;\r
                        \r
                        if( ret.isValid() === true ) return ret;\r
                        ret.clear();\r
                        all = this.style[ name ].split( ' ' );\r
                        \r
-                       for( var i=0, l=all.length; i<l; ++i ){\r
+                       for( i = 0, l = all.length; i<l; ++i ){\r
                                x = all[ i ];\r
                                if( l === 4 ){\r
                                        if( i === 0 ) top    = getColor( x, name + 'Top' );\r
@@ -1462,12 +1455,43 @@ var CSS = ( function( window, documwnt, undefined ){
                        obj[ _p ] = obj[ _p ] || obj[ p ];\r
                        delete obj[ p ];\r
                };\r
+               return obj;\r
+       };\r
+       function cssToObject( css ){\r
+               var ret      = {}, i, nv, n, v,\r
+                       parse    = Util.parse,\r
+                       isNumber = Type.isNumber,\r
+                       camelize = Util.camelize;\r
+               if( Type.isString( css ) === true ){\r
+                       css = css.split( ';' );\r
+                       for( i = css.length; i; ){\r
+                               nv    = css[ --i ].split( ':' ); // filter の場合, progid: がくる\r
+                               n     = nv.shift();\r
+                               if( isNumber( parse( n ) ) === true ) continue;\r
+                               v     = nv.join( '' );\r
+                               while( v.charAt( 0 ) === ' ' ) v = v.substr( 1 );\r
+                               ret[ camelize( n ) ] = parse( v );\r
+                       };\r
+               } else {\r
+                       for( n in css ){\r
+                               if( Type.isNumber( parse( n ) ) === false ) ret[ n ] = parse( css[ n ] );\r
+                       };\r
+               };\r
+\r
+               if( SPECIAL.setFilters ){\r
+                       SPECIAL.setFilters( ret );\r
+               } else {\r
+                       ret.opacity = SPECIAL.opacity !== null ? ret[ SPECIAL.opacity ] : 1;\r
+               };\r
+               \r
+               SPECIAL.setBackgroundPositionXY && SPECIAL.setBackgroundPositionXY( ret );\r
+               SPECIAL.setClipTopRightBottomLeft && SPECIAL.setClipTopRightBottomLeft( ret );\r
+               \r
+               return ret;\r
        };\r
-       \r
        return {\r
                getWrappedStyle: function( elm, opt_css ){\r
-                       opt_css && camelizeHash( opt_css );\r
-                       return new WrappedStyleClass( elm, opt_css || CSS.getComputedStyle( elm ) );\r
+                       return new WrappedStyleClass( elm, opt_css ? camelizeHash( opt_css ) : CSS.getComputedStyle( elm ) );\r
                },\r
                getInlineStyle: function( _elm ){\r
                        return cssToObject( _elm.style.cssText );\r
@@ -1480,7 +1504,7 @@ var CSS = ( function( window, documwnt, undefined ){
                                        wrapped,\r
                                        fontSize = 'fontSize',\r
                                        number   = PARAMS.percent[ property ] || PARAMS.offset[ property ] || PARAMS.size[ property ] || PARAMS.color[ property ] || PARAMS.region[ property ] || PARAMS.special[ property ],\r
-                                       css, nv, n, v;\r
+                                       css, nv, n, v, i;\r
                                        \r
                                if( obj.cssText ){\r
                                                css = obj.cssText.split( ';' );\r
@@ -1605,7 +1629,7 @@ var Position = {
                        minus   = Position.isMinusBodyBorder,\r
                        body    = document.body,\r
                        element = forElement,\r
-                       parent;\r
+                       parent, border;\r
                do {\r
                        valueT += element.offsetTop || 0;\r
                        valueL += element.offsetLeft || 0;\r