2 // fieldsdescr = { name: { type: 'typename' }, ... }
3 function Fieldify(ancestor, fieldsdescr)
5 this.ancestor = ancestor;
7 this.field = new Array();
8 for (k in fieldsdescr) {
9 this.field[k] = fieldsdescr[k];
10 if (this.field[k].type == 'fields') {
11 this.field[k].obj = new Fieldify(this.ancestor.getElementsByClassName(k + '_id')[0],
12 this.field[k].fields);
17 Fieldify.prototype = {
21 visible: function(is_visible) {
22 this.ancestor.style.visibility = (is_visible ? "visible" : "hidden" );
25 // { 'name': 'value' }
26 json2dom: function(field_values)
28 for (k in this.field) {
29 if (this.field[k].type == 'value') {
30 this.fld_value_set(k, field_values[k]);
32 else if (this.field[k].type == 'radio') {
33 this.fld_radio_set(k, field_values[k]);
35 else if (this.field[k].type == 'fields') {
36 this.field[k].obj.json2dom(field_values[k]);
44 for (k in this.field) {
45 if (this.field[k].perms == 'ro')
47 if (this.field[k].type == 'value') {
48 ret[k] = this.fld_value_get(k);
50 else if (this.field[k].type == 'radio') {
51 ret[k] = this.fld_radio_get(k);
53 else if (this.field[k].type == 'fields') {
54 ret[k] = this.field[k].obj.dom2json();
60 fld_value_set: function(name, value)
62 this.ancestor.getElementsByClassName(name + '_id')[0].innerHTML = value;
65 fld_value_get: function(name)
67 return this.ancestor.getElementsByClassName(name + '_id')[0].innerHTML;
70 fld_radio_set: function(name, value)
72 var arr = this.ancestor.getElementsByClassName(name + '_id');
75 if (arr[k].value == value)
76 arr[k].checked = true;
78 arr[k].checked = false;
82 fld_radio_get: function(name)
84 var arr = this.ancestor.getElementsByClassName(name + '_id');
88 if (arr[k].checked == true) {