- case 'margin' :
- case 'padding' :
- name = p;
- width = '';
- case 'borderWidth' :
- var props = '$1Top$2,$1Right$2,$1Bottom$2,$1Left$2'.split( '$1' ).join( name || 'border' ).split( '$2' ).join( width || 'Width' ).split( ',' ),
- top = me( props[ 0 ] ),
- right = me( props[ 1 ] ),
- bottom = me( props[ 2 ] ),
- left = me( props[ 3 ] ),
- ret = new PropertyGroup( p, top, right, bottom, left ),
- all, _0, _1, _2, _3, vu, v, u;
- if( ret.isValid() === true ) return ret;
- ret.kill();
- all = css[ p ].split( ' ' );
- _0 = all[ 0 ];
- _1 = all[ 1 ];
- _2 = all[ 2 ];
- _3 = all[ 3 ];
- vu = X_Node_CSS__splitValueAndUnit( _0 );
- v = vu[ 0 ];
- u = vu[ 1 ];
- switch( all.length ){
- case 1 :
- top = new Property( props[ 0 ], v, u, xnode );
- right = new Property( props[ 1 ], v, u, xnode );
- bottom = new Property( props[ 2 ], v, u, xnode );
- left = new Property( props[ 3 ], v, u, xnode );
- break;
- case 2 :
- top = new Property( props[ 0 ], v, u, xnode );
- bottom = new Property( props[ 2 ], v, u, xnode );
- vu = X_Node_CSS__splitValueAndUnit( _1 );
- v = vu[ 0 ];
- u = vu[ 1 ];
- right = new Property( props[ 1 ], v, u, xnode );
- left = new Property( props[ 3 ], v, u, xnode );
- break;
- case 3 :
- top = new Property( props[ 0 ], v, u, xnode );
- vu = X_Node_CSS__splitValueAndUnit( _1 );
- v = vu[ 0 ];
- u = vu[ 1 ];
- right = new Property( props[ 1 ], v, u, xnode );
- left = new Property( props[ 3 ], v, u, xnode );
- vu = X_Node_CSS__splitValueAndUnit( _2 );
- v = vu[ 0 ];
- u = vu[ 1 ];
- bottom = new Property( props[ 2 ], v, u, xnode );
- break;
- case 4 :
- top = new Property( props[ 0 ], v, u, xnode );
- vu = X_Node_CSS__splitValueAndUnit( _1 );
- v = vu[ 0 ];
- u = vu[ 1 ];
- right = new Property( props[ 1 ], v, u, xnode );
- vu = X_Node_CSS__splitValueAndUnit( _2 );
- v = vu[ 0 ];
- u = vu[ 1 ];
- bottom = new Property( props[ 2 ], v,u, xnode );
- vu = X_Node_CSS__splitValueAndUnit( _3 );
- v = vu[ 0 ];
- u = vu[ 1 ];
- left = new Property( props[ 3 ], v, u, xnode );
- break;
- };
- return new PropertyGroup( p, top, right, bottom, left );
-
- case 'borderColor' :
- var props = 'borderTopColor,borderRightColor,borderBottomColor,borderLeftColor'.split( ',' ),
- top = me( props[ 0 ] ),
- right = me( props[ 1 ] ),
- bottom = me( props[ 2 ] ),
- left = me( props[ 3 ] ),
- ret = new PropertyGroup( p, top, right, bottom, left ),
- all, _0, _1;
- if( ret.isValid() === true ) return ret;
- ret.kill();
- all = css[ p ].split( ' ' );
- _0 = all[ 0 ];
- _1 = all[ 1 ];
- switch( all.length ){
- case 1 :
- top = new ColorProperty( props[ 0 ], _0 );
- right = new ColorProperty( props[ 1 ], _0 );
- bottom = new ColorProperty( props[ 2 ], _0 );
- left = new ColorProperty( props[ 3 ], _0 );
- break;
- case 2 :
- top = new ColorProperty( props[ 0 ], _0 );
- right = new ColorProperty( props[ 1 ], _1 );
- bottom = new ColorProperty( props[ 2 ], _0 );
- left = new ColorProperty( props[ 3 ], _1 );
- break;
- case 3 :
- top = new ColorProperty( props[ 0 ], _0 );
- right = new ColorProperty( props[ 1 ], _1 );
- bottom = new ColorProperty( props[ 2 ], all[ 2 ] );
- left = new ColorProperty( props[ 3 ], _1 );
- break;
- case 4 :
- top = new ColorProperty( props[ 0 ], _0 );
- right = new ColorProperty( props[ 1 ], _1 );
- bottom = new ColorProperty( props[ 2 ], all[ 2 ] );
- left = new ColorProperty( props[ 3 ], all[ 3 ] );
- break;
- };
- return new PropertyGroup( p, top, right, bottom, left );
-
- case 'backgroundPosition' :
- var x = me( p + 'X' ),
- y = me( p + 'Y' ),
- ret = new PropertyGroup( p, x, y ),
- xy;
- if( ret.isValid() === true ) return ret;
- ret.kill();
- xy = css[ p ].split( ' ' );
- x = X_Node_CSS__splitValueAndUnit( xy[ 0 ] );
- y = X_Node_CSS__splitValueAndUnit( xy[ 1 ] );
- return
- new PropertyGroup(
- p,
- new Property( p + 'X', x[ 0 ], x[ 1 ], xnode ),
- new Property( p + 'Y', y[ 0 ], y[ 1 ], xnode )
- );
- };
- // opacity, zindex, lineHeight
- vu = X_Node_CSS__splitValueAndUnit( css[ p ] );
- return new Property( p, vu[ 0 ], vu[ 1 ], xnode );