/**
  * Extracts attribute contents FROM a parent tree object
  *
  * @param array  $tree an array containing an array FROM which the
  *                     object data should be extracted
  * @param string $ver  represents the version of the GEDCOM standard
  *                     data is being extracted from
  *
  * @return void
  *
  * @access public
  * @since Method available since Release 0.0.1
  */
 protected function parse_tree_detail($tree, $ver)
 {
     if (($i1 = parent::find_tag($tree, Rp_Tags::TYPE)) !== false) {
         $this->type = parent::parse_text($tree[$i1], Rp_Tags::TYPE);
     }
     if (($i1 = parent::find_tag($tree, Rp_Tags::DATE)) !== false) {
         $this->date = parent::parse_text($tree[$i1], Rp_Tags::DATE);
     }
     if (($i1 = parent::find_tag($tree, Rp_Tags::ADDRESS)) !== false) {
         $this->address->parse_tree(array($tree[$i1]), $ver);
     }
     if (($i1 = parent::find_tag($tree, Rp_Tags::PLACE)) !== false) {
         $this->place->parse_tree(array($tree[$i1]), $ver);
     }
     if (($i1 = parent::find_tag($tree, Rp_Tags::RELIGION)) !== false) {
         $this->religious_affiliation = parent::parse_text($tree[$i1], Rp_Tags::RELIGION);
     }
     if (($i1 = parent::find_tag($tree, Rp_Tags::AGENCY)) !== false) {
         $this->resp_agency = parent::parse_text($tree[$i1], Rp_Tags::AGENCY);
     }
     if (($i1 = parent::find_tag($tree, Rp_Tags::AGE)) !== false) {
         $this->age = parent::parse_text($tree[$i1], Rp_Tags::AGE);
     }
     if (($i1 = parent::find_tag($tree, Rp_Tags::RESTRICTION)) !== false) {
         $this->restriction = parent::parse_text($tree[$i1], Rp_Tags::RESTRICTION);
     }
     if (($i1 = parent::find_tag($tree, Rp_Tags::CAUSE)) !== false) {
         $this->cause = parent::parse_text($tree[$i1], Rp_Tags::CAUSE);
     }
     if (isset($this->place)) {
         $this->place->parse_tree($tree, $ver);
     }
     if (isset($this->address)) {
         $this->address->parse_tree($tree, $ver);
     }
     $off = 0;
     while (($i1 = parent::find_tag($tree, Rp_Tags::CITE, $off)) !== false) {
         $tmp = new RP_Citation();
         $tmp->parse_tree(array($tree[$i1]), $ver);
         $this->citations[] = $tmp;
         $off = $i1 + 1;
     }
     $off = 0;
     while (($i1 = parent::find_tag($tree, Rp_Tags::MEDIA, $off)) !== false) {
         $tmp = new RP_Media_Link();
         $tmp->parse_tree(array($tree[$i1]), $ver);
         $this->media_links[] = $tmp;
         $off = $i1 + 1;
     }
     $off = 0;
     while (($i1 = parent::find_tag($tree, Rp_Tags::NOTE, $off)) !== false) {
         $tmp = new RP_Note();
         $tmp->parse_tree(array($tree[$i1]), $ver);
         $this->notes[] = $tmp;
         $off = $i1 + 1;
     }
 }
 /**
  * Extracts attribute contents FROM a parent tree object
  *
  * @param array  $tree an array containing an array FROM which the
  *                     object data should be extracted
  * @param string $ver  represents the version of the GEDCOM standard
  *                     data is being extracted from
  *
  * @return void
  *
  * @access public
  * @since Method available since Release 0.0.1
  */
 public function parse_tree($tree, $ver)
 {
     $this->id = parent::parse_ref_id($tree[0], Rp_Tags::REPOSITORY);
     if (isset($tree[0][1])) {
         $sub2 = $tree[0][1];
         if (($i1 = parent::find_tag($sub2, Rp_Tags::NAME)) !== false) {
             $this->name = parent::parse_text($sub2[$i1], Rp_Tags::NAME);
         }
         $this->address->parse_tree($sub2, $ver);
         $this->user_file_parse_tree($sub2, $ver);
         $this->auto_rec_parse_tree($sub2, $ver);
         $this->change_date_parse_tree($sub2, $ver);
         $off = 0;
         while (($i1 = parent::find_tag($sub2, Rp_Tags::NOTE, $off)) !== false) {
             $tmp = new RP_Note();
             $tmp->parse_tree(array($sub2[$i1]), $ver);
             $this->notes[] = $tmp;
             $off = $i1 + 1;
         }
     }
 }
 /**
  * Extracts attribute contents FROM a parent tree object
  *
  * @param array  $tree an array containing an array FROM which the
  *                     object data should be extracted
  * @param string $ver  represents the version of the GEDCOM standard
  *                     data is being extracted from
  *
  * @return void
  *
  * @access public
  * @since Method available since Release 0.0.1
  */
 public function parse_tree($tree, $ver)
 {
     $this->id = parent::parse_ref_id($tree[0], Rp_Tags::SUBMITTER);
     if (isset($tree[0][1])) {
         $sub2 = $tree[0][1];
         if (($i1 = parent::find_tag($sub2, Rp_Tags::NAME)) !== false) {
             $this->name = parent::parse_text($sub2[$i1], Rp_Tags::NAME);
         }
         $this->address->parse_tree($sub2, $ver);
         $off = 0;
         while (($i1 = parent::find_tag($sub2, Rp_Tags::MEDIA, $off)) !== false) {
             $tmp = new RP_Media_Link();
             $tmp->parse_tree(array($sub2[$i1]), $ver);
             $this->media_links[] = $tmp;
             $off = $i1 + 1;
         }
         if (($i1 = parent::find_tag($sub2, Rp_Tags::LANGUAGE)) !== false) {
             $this->language = parent::parse_text($sub2[$i1], Rp_Tags::LANGUAGE);
         }
         if (($i1 = parent::find_tag($sub2, Rp_Tags::RFN)) !== false) {
             $this->submitter_ref_nbr = parent::parse_text($sub2[$i1], Rp_Tags::RFN);
         }
         if (($i1 = parent::find_tag($sub2, Rp_Tags::AUTORECID)) !== false) {
             $this->auto_rec_id = parent::parse_text($sub2[$i1], Rp_Tags::AUTORECID);
         }
         if (($i1 = parent::find_tag($sub2, Rp_Tags::CHANGEDATE)) !== false) {
             $this->change_date->parse_tree(array($sub2[$i1]), $ver);
         }
         $off = 0;
         while (($i1 = parent::find_tag($sub2, Rp_Tags::NOTE, $off)) !== false) {
             $tmp = new RP_Note();
             $tmp->parse_tree(array($sub2[$i1]), $ver);
             $this->notes[] = $tmp;
             $off = $i1 + 1;
         }
     }
 }