<?php
require_once dirname(__FILE__).'/accesscheck.php';

ob_end_flush();
if (isset($_POST["action"]) && $_POST["action"] == $GLOBALS['I18N']->get('SaveChanges')) {
  if (isset($_POST["name"]))
    print '<script language="Javascript" type="text/javascript"> document.write(progressmeter); start();</script>';flush();
    while (list($id,$val) = each ($_POST["name"])) {
      if (!$id && isset($_POST["name"][0]) && $_POST["name"][0] != "") {
        # it is a new one
        $lc_name = substr(preg_replace("/\W/","", strtolower($_POST["name"][0])),0,10);
        if ($lc_name == "") Fatal_Error($GLOBALS['I18N']->get('NameNotEmpty')." $lc_name");
        Sql_Query("select * from {$tables['adminattribute']} where tablename = \"$lc_name\"");
        if (Sql_Num_Rows()) Fatal_Error($GLOBALS['I18N']->get('NameNotUnique'));

        $query = sprintf('insert into %s
        (name,type,listorder,default_value,required,tablename)
        values("%s","%s",%d,"%s",%d,"%s")',
        $tables["adminattribute"],
        addslashes($_POST["name"][0]),
        $_POST["type"][0],
        $_POST["listorder"][0],
        addslashes($_POST["default"][0]),$_POST["required"][0],$lc_name);
        Sql_Query($query);
        $insertid = Sql_Insert_id();

        # text boxes and hidden fields do not have their own table
        if ($_POST["type"][$id] != "textline" && $_POST["type"]["id"] != "hidden") {
          $query = "create table $table_prefix"."adminattr_$lc_name
          (id integer not null primary key auto_increment,
          name varchar(255) unique,listorder integer default 0)";
          Sql_Query($query);
        } else {
          # and they cannot currently be required, changed 29/08/01,
          # insert javascript to require them, except for hidden ones :-)
          if (!empty($_POST["type"]["id"]) && $_POST["type"]["id"] == "hidden")
            Sql_Query("update {$tables['attribute']} set required = 0 where id = $insertid");
        }
        if ($_POST["type"][$id] == "checkbox") {
          # with a checkbox we know the values
          Sql_Query('insert into '.$table_prefix.'adminattr_'.$lc_name.' (name) values("Checked")');
          Sql_Query('insert into '.$table_prefix.'adminattr_'.$lc_name.' (name) values("Unchecked")');
          # we cannot "require" checkboxes, that does not make sense
          Sql_Query("update {$tables['adminattribute']} set required = 0 where id = $insertid");
        }

      } elseif (!empty($_POST["name"][$id])) {
        # it is a change
        $query = sprintf('update %s set name = "%s" ,listorder = %d,default_value = "%s" ,required = %d where id = %d',
        $tables["adminattribute"],addslashes($_POST["name"][$id]),
        $_POST["listorder"][$id],$_POST["default"][$id],$_POST["required"][$id],$id);
        Sql_Query($query);
      }
    }
  if (isset($_POST["delete"]))
    while (list($id,$val) = each ($_POST["delete"])) {
      $res = Sql_Query("select tablename,type from {$tables['adminattribute']} where id = $id");
      $row = Sql_Fetch_Row($res);
      if ($row[1] != "hidden" && $row[1] != "textline")
        Sql_Query("drop table $table_prefix"."adminattr_$row[0]");
      Sql_Query("delete from {$tables['adminattribute']} where id = $id");
      # delete all admin attributes as well
      Sql_Query("delete from {$tables['admin_attribute']} where adminattributeid = $id");
    }
}
?>



<?php
print formStart();
$res = Sql_Query("select * from {$tables['adminattribute']} order by listorder");
if (Sql_Num_Rows($res))
  print $GLOBALS['I18N']->get('ExistingAttr');
else {
  print $GLOBALS['I18N']->get('NoAttrYet');
}
while ($row = Sql_Fetch_array($res)) {
  ?>
  <table border=1>
  <tr><td colspan=2><?php echo $GLOBALS['I18N']->get('Attribute').$row["id"] ?></td><td colspan=2><?=$GLOBALS['I18N']->get('Delete'); ?> <input type="checkbox" name="delete[<?php echo $row["id"] ?>]" value="1"></td></tr>
  <tr><td colspan=2><?php echo $GLOBALS['I18N']->get('Name'); ?> </td><td colspan=2><input type=text name="name[<?php echo $row["id"]?>]" value="<?php echo htmlspecialchars(stripslashes($row["name"])) ?>" size=40></td></tr>
  <tr><td colspan=2><?php echo $GLOBALS['I18N']->get('Type'); ?> </td><td colspan=2><input type=hidden name="type[<?php echo $row["id"]?>]" value="<?=$row["type"]?>"><?=$row["type"]?></td></tr>
  <tr><td colspan=2><?php echo $GLOBALS['I18N']->get('DValue'); ?> </td><td colspan=2><input type=text name="default[<?php echo $row["id"]?>]" value="<?php echo htmlspecialchars(stripslashes($row["default_value"])) ?>" size=40></td></tr>
  <tr><td><?php echo $GLOBALS['I18N']->get('OrderListing'); ?> </td><td><input type=text name="listorder[<?php echo $row["id"]?>]" value="<?php echo $row["listorder"] ?>" size=5></td>
  <td><?php echo $GLOBALS['I18N']->get('IsAttrRequired'); ?> </td><td><input type=checkbox name="required[<?php echo $row["id"]?>]" value="1" <?php echo $row["required"] ? "checked": "" ?>></td></tr>
  </table><hr>
<?php } ?>

<a name="new"></a>
<h3><?php echo $GLOBALS['I18N']->get('AddAttr'); ?></h3>
<table border=1>
<tr><td colspan=2><?php echo $GLOBALS['I18N']->get('Name'); ?> </td><td colspan=2><input type=text name="name[0]" value="" size=40></td></tr>
<tr><td colspan=2><?php echo $GLOBALS['I18N']->get('Type'); ?> </td><td colspan=2><select name="type[0]">
<?php
$types = array('checkbox','textline',"hidden");#'radio','select',
while (list($key,$val) = each($types)) {
  printf('<option value="%s" %s>%s',$val,"",$val);
}
?>
</select></td></tr>
<tr><td colspan=2><?php echo $GLOBALS['I18N']->get('DValue'); ?> </td><td colspan=2><input type=text name="default[0]" value="" size=40></td></tr>
<tr><td><?php echo $GLOBALS['I18N']->get('OrderListing'); ?> </td><td><input type=text name="listorder[0]" value="" size=5></td>
<td><?php echo $GLOBALS['I18N']->get('IsAttrRequired'); ?> </td><td><input type=checkbox name="required[0]" value="1" checked></td></tr>
</table><hr>

<input type=submit name="action" value="<?php echo $GLOBALS['I18N']->get('SaveChanges'); ?>">
</form>