public static function createRecord($structuredUnitId, $name, $rank)
 {
     if (!$structuredUnitId) {
         return 0;
     }
     // find the right rank value
     if (!$rank) {
         $query = "SELECT count(*) from structured_field where structured_unit_id={$structuredUnitId} LIMIT 1;";
         $result = mysql_query($query) or die(sqlError(__FILE__, __LINE__, $query));
         $row = mysql_fetch_row($result);
         if ($row[0]) {
             $query = "SELECT MAX(rank) from structured_field where structured_unit_id={$structuredUnitId};";
             $result = mysql_query($query) or die(sqlError(__FILE__, __LINE__, $query));
             $row = mysql_fetch_row($result);
             $rank = $row[0] + 1;
         } else {
             $rank = 1;
         }
     } else {
         if (StructuredField::findRecord($structuredUnitId, $rank)) {
             StructuredField::moveRankUp($structuredUnitId, $rank);
         }
     }
     // create structured field
     $query = "INSERT INTO structured_field (structured_unit_id, rank, name) VALUES ({$structuredUnitId}, {$rank}, '{$name}');";
     $result = mysql_query($query) or die(sqlError(__FILE__, __LINE__, $query));
     // create field values and field assets
     $id = mysql_insert_id();
     StructuredFieldValue::initValues($structuredUnitId, $id);
     StructuredFieldAsset::initAssets($structuredUnitId, $id);
     return $id;
 }