/**
  * Handle AJAX calls to dynamically load the form fields of a given record.
  * (basically a copy of "createNewRecord")
  * Normally this method is never called from inside TYPO3. Always from outside by AJAX.
  *
  * @param	string		$domObjectId: The calling object in hierarchy, that requested a new record.
  * @return	array		An array to be used for JSON
  */
 function getRecordDetails($domObjectId)
 {
     // the current table - for this table we should add/import records
     $current = $this->inlineStructure['unstable'];
     // the parent table - this table embeds the current table
     $parent = $this->getStructureLevel(-1);
     // get TCA 'config' of the parent table
     if (!$this->checkConfiguration($parent['config'])) {
         return $this->getErrorMessageForAJAX('Wrong configuration in table ' . $parent['table']);
     }
     $config = $parent['config'];
     // set flag in config so that only the fields are rendered
     $config['renderFieldsOnly'] = true;
     $collapseAll = isset($config['appearance']['collapseAll']) && $config['appearance']['collapseAll'];
     $expandSingle = isset($config['appearance']['expandSingle']) && $config['appearance']['expandSingle'];
     // Put the current level also to the dynNestedStack of TCEforms:
     $this->fObj->pushToDynNestedStack('inline', $this->inlineNames['object']);
     $record = $this->getRecord($this->inlineFirstPid, $current['table'], $current['uid']);
     // the HTML-object-id's prefix of the dynamically created record
     $objectPrefix = $this->inlineNames['object'] . self::Structure_Separator . $current['table'];
     $objectId = $objectPrefix . self::Structure_Separator . $record['uid'];
     $item = $this->renderForeignRecord($parent['uid'], $record, $config);
     if ($item === false) {
         return $this->getErrorMessageForAJAX('Access denied');
     }
     // Encode TCEforms AJAX response with utf-8:
     $item = $GLOBALS['LANG']->csConvObj->utf8_encode($item, $GLOBALS['LANG']->charSet);
     $jsonArray = array('data' => $item, 'scriptCall' => array('inline.domAddRecordDetails(\'' . $domObjectId . '\',\'' . $objectPrefix . '\',' . ($expandSingle ? '1' : '0') . ',json.data);'));
     $this->getCommonScriptCalls($jsonArray, $config);
     // Collapse all other records if requested:
     if (!$collapseAll && $expandSingle) {
         $jsonArray['scriptCall'][] = 'inline.collapseAllRecords(\'' . $objectId . '\',\'' . $objectPrefix . '\',\'' . $record['uid'] . '\');';
     }
     // Remove the current level also from the dynNestedStack of TCEforms:
     $this->fObj->popFromDynNestedStack();
     // Return the JSON array:
     return $jsonArray;
 }