<?php

function GetTablePointerName($Type, $Item)
{
  global $Database, $Lists;

  $Columns = '';
  $ItemType = explode(':', $Item['Type']);
  $TargetTable = $ItemType[1];

  foreach($Lists[$TargetTable]['Items'] as $ListItem)
    if($ListItem['VisibleInPointer'] == 1) $Columns .= '`'.$ListItem['Name'].'`," ",';
  $Columns = 'CONCAT('.substr($Columns, 0, -1).') AS Name, Id';
  $DbResult = $Database->select($TargetTable, $Columns, 'Id='.$Item['Value']);
  //echo($Database->LastQuery);
  if($DbResult->num_rows > 0)
  {
    return($DbResult->fetch_assoc());
  } else return('');
}

function GetTablePointerNameList($Type, $Item)
{
  global $Database, $Lists;

  $Columns = '';
  $ItemType = explode(':', $Item['Type']);
  $TargetTable = $ItemType[1];

  foreach($Lists[$TargetTable]['Items'] as $ListItem)
    if($ListItem['VisibleInPointer'] == 1) $Columns .= '`'.$ListItem['Name'].'`," ",';
  $Columns = 'CONCAT('.substr($Columns, 0, -1).') AS Name, Id';
  $DbResult = $Database->select($TargetTable, $Columns);
  //echo($Database->LastQuery);
  if($DbResult->num_rows > 0)
  {
    $Result = array();
    while($DbRow = $DbResult->fetch_assoc())
      $Result[] = $DbRow;
    return($Result);
  } else return(array());
}

function TypePointerOneToOneViewHtml($Type, $Item)
{
  global $Database, $Lists;

  $ItemType = explode(':', $Item['Type']);
  $TargetTable = $ItemType[1];
  $TargetName = GetTablePointerName($Type, $Item);
  $Output = '<a href="?Action=ViewItem&amp;Table='.$TargetTable.'&amp;Item='.$TargetName['Id'].'">'.$TargetName['Name'].'</a>';
  return($Output);
}

function TypePointerOneToOneEditHtml($Type, $Item)
{
  global $Database, $Lists;

  $Output = '<select name="'.$Item['Name'].'">';
  $TargetNameList = GetTablePointerNameList($Type, $Item);
  //echo($Database->LastQuery);
  foreach($TargetNameList as $TargetName)
  {
    if($Item['Value'] == $TargetName['Id']) $Selected = ' selected="1"'; else $Selected = '';
    $Output .= '<option value="'.$TargetName['Id'].'"'.$Selected.'>'.$TargetName['Name'].'</option>';
  }
  $Output .= '</select>';
  return($Output);
}


?>