function setComponent( $component, $arg1=FALSE, $arg2=FALSE  ) {
    if( '' >= $component->getConfig( 'language'))
      $component->setConfig( 'language',  $this->getConfig( 'language' ));
    $component->setConfig( 'allowEmpty',  $this->getConfig( 'allowEmpty' ));
    $component->setConfig( 'nl',          $this->getConfig( 'nl' ));
    $component->setConfig( 'unique_id',   $this->getConfig( 'unique_id' ));
    $component->setConfig( 'format',      $this->getConfig( 'format' ));
    if( !in_array( $component->objName, array( 'valarm', 'vtimezone' ))) {
      unset( $component->propix );
            /* make sure dtstamp and uid is set */
      $dummy = $component->getProperty( 'dtstamp' );
      $dummy = $component->getProperty( 'uid' );
    }
    if( !$arg1 ) {
      $this->components[] = $component->copy();
      return TRUE;
    }
    $argType = $index = null;
    if ( ctype_digit( (string) $arg1 )) {
      $argType = 'INDEX';
      $index   = (int) $arg1 - 1;
    }
    elseif(( strlen( $arg1 ) <= strlen( 'vfreebusy' )) && ( FALSE === strpos( $arg1, '@' ))) {
      $argType = strtolower( $arg1 );
      $index = ( ctype_digit( (string) $arg2 )) ? ((int) $arg2) - 1 : 0;
    }
    $cix2sC = 0;
    foreach ( $this->components as $cix => $component2 ) {
      unset( $component2->propix );
      if(( 'INDEX' == $argType ) && ( $index == $cix )) {
        $this->components[$cix] = $component->copy();
        return TRUE;
      }
      elseif( $argType == $component2->objName ) {
        if( $index == $cix2sC ) {
          $this->components[$cix] = $component->copy();
          return TRUE;
        }
        $cix2sC++;
      }
      elseif( !$argType && ($arg1 == $component2->getProperty( 'uid' ))) {
        $this->components[$cix] = $component->copy();
        return TRUE;
      }
    }
            /* not found.. . insert anyway.. .*/
    $this->components[] = $component->copy();
  }
function setComponent( $component, $arg1=FALSE, $arg2=FALSE  ) {
    if( '' >= $component->getConfig( 'language'))
      $component->setConfig( 'language',  $this->getConfig( 'language' ));
    $component->setConfig( 'allowEmpty',  $this->getConfig( 'allowEmpty' ));
    $component->setConfig( 'nl',          $this->getConfig( 'nl' ));
    $component->setConfig( 'unique_id',   $this->getConfig( 'unique_id' ));
    $component->setConfig( 'format',      $this->getConfig( 'format' ));
    if( !in_array( $component->objName, array( 'valarm', 'vtimezone' ))) {
      unset( $component->propix );
            /* make sure dtstamp and uid is set */
      $dummy = $component->getProperty( 'dtstamp' );
      $dummy = $component->getProperty( 'uid' );
    }
    if( !$arg1 ) {
      $this->components[] = $component->copy();
      return TRUE;
    }
    $argType = $index = null;
    if ( ctype_digit( (string) $arg1 )) {
      $argType = 'INDEX';
      $index   = (int) $arg1 - 1;
    }
    elseif(( strlen( $arg1 ) <= strlen( 'vfreebusy' )) && ( FALSE === strpos( $arg1, '@' ))) {
      $argType = strtolower( $arg1 );
      $index = ( ctype_digit( (string) $arg2 )) ? ((int) $arg2) - 1 : 0;
    }
    $cix2sC = 0;
    foreach ( $this->components as $cix => $component2 ) {
      unset( $component2->propix );
      if(( 'INDEX' == $argType ) && ( $index == $cix )) {
        $this->components[$cix] = $component->copy();
        return TRUE;
      }
      elseif( $argType == $component2->objName ) {
        if( $index == $cix2sC ) {
          $this->components[$cix] = $component->copy();
          return TRUE;
        }
        $cix2sC++;
      }
      elseif( !$argType && ($arg1 == $component2->getProperty( 'uid' ))) {
        $this->components[$cix] = $component->copy();
        return TRUE;
      }
    }
            /* not found.. . insert anyway.. .*/
    $this->components[] = $component->copy();
  }
function setComponent ( $ component , $ arg1 = FALSE , $ arg2 = FALSE ) { if ( '' >= $ component -> getConfig ( 'language' ) ) $ component -> setConfig ( 'language' , $ this -> getConfig ( 'language' ) ) ; $ component -> setConfig ( 'allowEmpty' , $ this -> getConfig ( 'allowEmpty' ) ) ; $ component -> setConfig ( 'nl' , $ this -> getConfig ( 'nl' ) ) ; $ component -> setConfig ( 'unique_id' , $ this -> getConfig ( 'unique_id' ) ) ; $ component -> setConfig ( 'format' , $ this -> getConfig ( 'format' ) ) ; if ( ! in_array ( $ component -> objName , array ( 'valarm' , 'vtimezone' ) ) ) { unset ( $ component -> propix ) ; /* make sure dtstamp and uid is set */ $ dummy = $ component -> getProperty ( 'dtstamp' ) ; $ dummy = $ component -> getProperty ( 'uid' ) ; } if ( ! $ arg1 ) { $ this -> components [ ] = $ component -> copy ( ) ; return TRUE ; } $ argType = $ index = null ; if ( ctype_digit ( ( string ) $ arg1 ) ) { $ argType = 'INDEX' ; $ index = ( int ) $ arg1 - 1 ; } elseif ( ( strlen ( $ arg1 ) <= strlen ( 'vfreebusy' ) ) && ( FALSE === strpos ( $ arg1 , '@' ) ) ) { $ argType = strtolower ( $ arg1 ) ; $ index = ( ctype_digit ( ( string ) $ arg2 ) ) ? ( ( int ) $ arg2 ) - 1 : 0 ; } $ cix2sC = 0 ; foreach ( $ this -> components as $ cix => $ component2 ) { unset ( $ component2 -> propix ) ; if ( ( 'INDEX' == $ argType ) && ( $ index == $ cix ) ) { $ this -> components [ $ cix ] = $ component -> copy ( ) ; return TRUE ; } elseif ( $ argType == $ component2 -> objName ) { if ( $ index == $ cix2sC ) { $ this -> components [ $ cix ] = $ component -> copy ( ) ; return TRUE ; } $ cix2sC ++ ; } elseif ( ! $ argType && ( $ arg1 == $ component2 -> getProperty ( 'uid' ) ) ) { $ this -> components [ $ cix ] = $ component -> copy ( ) ; return TRUE ; } } /* not found.. . insert anyway.. .*/ $ this -> components [ ] = $ component -> copy ( ) ; }
add calendar component as subcomponent to container for subcomponents

@author Kjell-Inge Gustafsson <ical@kigkonsult.se>
@since 2.2.16 - 2007-11-11
@param object $component calendar component
@param mixed $arg1 optional, ordno/component type/ component uid
@param mixed $arg2 optional, ordno if arg1 = component type
@return void
add calendar component as subcomponent to container for subcomponents