var form_name = '';
var current_element_pointer = -1;

function create_form()
{
  col_0_width = '300';
  objSpan = document.createElement('span');
  objSpan.id = 'message';
  objSpan.style.color = '#FF0000';
  document.getElementById('module_form').appendChild(objSpan);
  objBr = document.createElement('br');
  document.getElementById('module_form').appendChild(objBr);
  objForm = document.createElement('form');
  objForm.method = 'post';
  objForm.action = window.location;
  if (objForm.action.indexOf("#")<0)
  {
    objForm.action += '#module_form';
  }
  objForm.name = 'form';
  objForm.id = 'form';
  document.getElementById('module_form').appendChild(objForm);

  objInput = document.createElement('input');
  objInput.name = 'form[id]';
  objInput.type = 'hidden';
  objInput.value = form.id;
  document.getElementById('form').appendChild(objInput);

  target_id = 'form';
  required_fields = false;
  for (a=0; a<form.element.length; a++)
  {
    switch (form.element[a].type)
    {
      case 'fieldset' :
        objFieldset = document.createElement('fieldset');
        objFieldset.id = 'form_element_' + a;
        objFieldset.style.padding = '3px';
        objLegend = document.createElement('legend');
        objText = document.createTextNode(form.element[a].label);
        objLegend.appendChild(objText);
        objFieldset.appendChild(objLegend);
        document.getElementById('form').appendChild(objFieldset);
        target_id = 'form_element_' + a;
        break;

      case 'radio' :
        objTable = document.createElement('table');
	objTable.setAttribute('width', '100%');
	objTable.insertRow(0);
	objTable.rows[0].insertCell(0);
	objTable.rows[0].insertCell(1);
	objTable.rows[0].insertCell(2);
	objTable.rows[0].insertCell(3);
	objTable.rows[0].cells[0].style.textAlign = 'right';
	objTable.rows[0].cells[0].appendChild(document.createTextNode(form.element[a].label));

	objText = document.createTextNode(' ');
	objTable.rows[0].cells[1].appendChild(objText);
	objTable.rows[0].cells[1].style.padding = '7px 3px';
	
	objTable.rows[0].cells[0].width = col_0_width;
	objTable.rows[0].cells[1].width = '1';
	
	objSpan = document.createElement('span');
	objText = document.createTextNode(' ' + form.required);
	objSpan.appendChild(objText);
	objTable.rows[0].cells[3].appendChild(objSpan);
        if (form.element[a].is_required==1)
        {
	    required_fields = true;
        }
	else
	{
	    objSpan.style.visibility = 'hidden';
	}
        objTable.rows[0].cells[3].appendChild(objSpan);

	document.getElementById(target_id).appendChild(objTable);

        objBr = document.createElement('br');
        document.getElementById(target_id).appendChild(objBr);

        objTable = document.createElement('table');

        for (r=0; r<form.element[a].content.length; r++)
        {
          objTable.insertRow(r);
          objTable.rows[r].insertCell(0);
          objTable.rows[r].insertCell(1);
          objTable.rows[r].insertCell(2);

          objTable.setAttribute('width', '100%');
          objTable.rows[r].cells[0].width = col_0_width;
          objTable.rows[r].cells[1].width = '1';
          // objTable.rows[r].cells[2].width = '100%';

          objRadio = document.createElement('input');
          objRadio.setAttribute('type', 'radio');
          objRadio.setAttribute('name', 'element[' + a + '][0]');
          objRadio.setAttribute('value', form.element[a].content[r].label);
          objRadio.setAttribute('id', 'radio_' + a + '_' + r);
          if (form.element[a].content[r].is_checked==1) objRadio.checked = 'checked';
          objTable.rows[r].cells[0].appendChild(objRadio);
	  objTable.rows[r].cells[0].style.textAlign = 'right';

          objText = document.createTextNode(':');
          objTable.rows[r].cells[1].appendChild(objText);
          objTable.rows[r].cells[1].style.padding = '7px 3px';

          objText = document.createTextNode(form.element[a].content[r].label);
          objLabel = document.createElement('label');
          objLabel.setAttribute('for', 'radio_' + a + '_' + r);
          objLabel.appendChild(objText);
          objTable.rows[r].cells[2].appendChild(objLabel);
        }
        document.getElementById(target_id).appendChild(objTable);

        objBr = document.createElement('br');
        document.getElementById(target_id).appendChild(objBr);
        break;

      case 'checkbox'   :
        objTable = document.createElement('table');
	objTable.setAttribute('width', '100%');
	objTable.insertRow(0);
	objTable.rows[0].insertCell(0);
	objTable.rows[0].insertCell(1);
	objTable.rows[0].insertCell(2);
	objTable.rows[0].insertCell(3);
	objTable.rows[0].cells[0].style.textAlign = 'right';
	objTable.rows[0].cells[0].appendChild(document.createTextNode(form.element[a].label));

	objText = document.createTextNode(' ');
	objTable.rows[0].cells[1].appendChild(objText);
	objTable.rows[0].cells[1].style.padding = '7px 3px';
	
	objTable.rows[0].cells[0].width = col_0_width;
	objTable.rows[0].cells[1].width = '1';
	
	objSpan = document.createElement('span');
	objText = document.createTextNode(' ' + form.required);
	objSpan.appendChild(objText);
	objTable.rows[0].cells[3].appendChild(objSpan);
        if (form.element[a].is_required==1)
        {
	    required_fields = true;
        }
	else
	{
	    objSpan.style.visibility = 'hidden';
	}
        objTable.rows[0].cells[3].appendChild(objSpan);

	document.getElementById(target_id).appendChild(objTable);

        objTable = document.createElement('table');

        for (r=0; r<form.element[a].content.length; r++)
        {
          objTable.insertRow(r);
          objTable.rows[r].insertCell(0);
          objTable.rows[r].insertCell(1);
          objTable.rows[r].insertCell(2);

          objTable.setAttribute('width', '100%');
          objTable.rows[r].cells[0].width = col_0_width;
          objTable.rows[r].cells[1].width = '1';
          // objTable.rows[r].cells[2].width = '100%';
          objTable.rows[r].cells[0].style.textAlign = 'right';
          objCheckbox = document.createElement('input');
          objCheckbox.setAttribute('type', form.element[a].type);
          objCheckbox.setAttribute('name', 'element[' + a + '][' + r + ']');
          objCheckbox.setAttribute('value', form.element[a].content[r].label);
          objCheckbox.setAttribute('id', 'checkbox_' + a + '_' + r);
          if (form.element[a].content[r].is_checked==1 || form.element[a].content[r].value!='') objCheckbox.checked = 'checked';
          objTable.rows[r].cells[0].appendChild(objCheckbox);

          objText = document.createTextNode(':');
          objTable.rows[r].cells[1].appendChild(objText);
          objTable.rows[r].cells[1].style.padding = '7px 3px';

          objText = document.createTextNode(form.element[a].content[r].label);
          objLabel = document.createElement('label');
          objLabel.setAttribute('for', 'checkbox_' + a + '_' + r);
          objLabel.appendChild(objText);
          objTable.rows[r].cells[2].appendChild(objLabel);
        }
        document.getElementById(target_id).appendChild(objTable);

        objBr = document.createElement('br');
        document.getElementById(target_id).appendChild(objBr);
        break;

      case 'text' :
        objTable = document.createElement('table');

        objTable.insertRow(0);
        objTable.rows[0].insertCell(0);
        objTable.rows[0].insertCell(1);
        objTable.rows[0].insertCell(2);
        objTable.rows[0].insertCell(3);

        objTable.setAttribute('width', '100%');
        objTable.rows[0].cells[0].width = col_0_width;
        objTable.rows[0].cells[1].width = '1';
        // objTable.rows[0].cells[2].width = '100%';
        objTable.rows[0].cells[3].width = '1';
        objTable.rows[0].cells[0].style.textAlign = 'right';
        objText = document.createTextNode(form.element[a].content[0].label);
        objLabel = document.createElement('label');
        objLabel.setAttribute('for', 'text_' + a + '_' + 0);
        objLabel.appendChild(objText);
        objTable.rows[0].cells[0].appendChild(objLabel);

        objText = document.createTextNode(':');
        objTable.rows[0].cells[1].appendChild(objText);
        objTable.rows[0].cells[1].style.padding = '7px 3px';

        objInput = document.createElement('input');
        objInput.setAttribute('type', 'text');
        objInput.setAttribute('name', 'element[' + a + ']');
        objInput.setAttribute('maxlength', form.maxlength);
        objInput.setAttribute('value', form.element[a].value);
        objInput.setAttribute('id', 'text_' + a + '_' + 0);
        objTable.rows[0].cells[2].appendChild(objInput);
        objInput.style.width = form.textwidth + 'px';

	objSpan = document.createElement('span');
	objText = document.createTextNode(' ' + form.required);
	objSpan.appendChild(objText);
	objTable.rows[0].cells[3].appendChild(objSpan);
        if (form.element[a].is_required==1)
        {
	    required_fields = true;
        }
	else
	{
	    objSpan.style.visibility = 'hidden';
	}
        objTable.rows[0].cells[3].appendChild(objSpan);

	document.getElementById(target_id).appendChild(objTable);

        objBr = document.createElement('br');
        document.getElementById(target_id).appendChild(objBr);
        break;

      case 'textarea' :
        objTable = document.createElement('table');

        objTable.insertRow(0);
        objTable.rows[0].insertCell(0);
        objTable.rows[0].insertCell(1);
        objTable.rows[0].insertCell(2);
        objTable.rows[0].insertCell(3);

        objTable.rows[0].cells[0].vAlign = 'top';
        objTable.rows[0].cells[1].vAlign = 'top';
        objTable.rows[0].cells[2].vAlign = 'top';
        objTable.rows[0].cells[3].vAlign = 'top';

        objTable.setAttribute('width', '100%');
        objTable.rows[0].cells[0].width = col_0_width;
        objTable.rows[0].cells[1].width = '1';
        // objTable.rows[0].cells[2].width = '100%';
        objTable.rows[0].cells[3].width = '1';
        objTable.rows[0].cells[0].style.textAlign = 'right';
        objText = document.createTextNode(form.element[a].content[0].label);
        objLabel = document.createElement('label');
        objLabel.setAttribute('for', 'text_' + a + '_' + 0);
        objLabel.appendChild(objText);
        objTable.rows[0].cells[0].appendChild(objLabel);

        objText = document.createTextNode(':');
        objTable.rows[0].cells[1].appendChild(objText);
        objTable.rows[0].cells[1].style.padding = '0px 3px';

        objTextarea = document.createElement('textarea');
        objTextarea.setAttribute('name', 'element[' + a + ']');
        objTextarea.setAttribute('id', 'textarea_' + a + '_' + 0);
        objTextarea.setAttribute('rows', form.rows);
        objTextarea.style.width = form.textwidth + 'px';
        
        objText = document.createTextNode(form.element[a].value);
        objTextarea.appendChild(objText);
        objTable.rows[0].cells[2].appendChild(objTextarea);
	objSpan = document.createElement('span');
	objText = document.createTextNode(' ' + form.required);
	objSpan.appendChild(objText);
	objTable.rows[0].cells[3].appendChild(objSpan);
        if (form.element[a].is_required==1)
        {
	    required_fields = true;
        }
	else
	{
	    objSpan.style.visibility = 'hidden';
	}
        objTable.rows[0].cells[3].appendChild(objSpan);
        document.getElementById(target_id).appendChild(objTable);

        objBr = document.createElement('br');
        document.getElementById(target_id).appendChild(objBr);
        break;

      case 'buttons' :        
        objDiv = document.createElement('div');
        objDiv.style.clear = 'both';
        if (required_fields==true)
        {
          objText = document.createTextNode('(' + form.required + ') Deze velden invullen a.u.b.');
          objDiv.appendChild(objText);
        }
        for (r=0; r<form.element[a].content.length; r++)
        {
          objInput = document.createElement('input');
          objInput.type = form.element[a].content[r].type;
          objInput.name = form.element[a].content[r].type;
          objInput.value = form.element[a].content[r].value;
          objInput.className = 'right';
          objDiv.appendChild(objInput);
        }
        document.getElementById(target_id).appendChild(objDiv);
        objBr = document.createElement('br');
        document.getElementById(target_id).appendChild(objBr);
        break;

      case 'select' :
        objTable = document.createElement('table');
        objTable.insertRow(0);
        objTable.rows[0].insertCell(0);
        objTable.rows[0].insertCell(1);
        objTable.rows[0].insertCell(2);

        objTable.setAttribute('width', '100%');
        objTable.rows[0].cells[0].width = col_0_width;
        objTable.rows[0].cells[1].width = '1';
        // objTable.rows[0].cells[2].width = '100%';
        objTable.rows[0].cells[0].style.align = 'right';
        objText = document.createTextNode(form.element[a].label);
        objTable.rows[0].cells[0].appendChild(objText);

        objText = document.createTextNode(':');
        objTable.rows[0].cells[1].style.padding = '0px 3px';
        objTable.rows[0].cells[1].appendChild(objText);

        objSelect = document.createElement('select');
        objSelect.name = 'element[' + a + '][0]';
        objSelect.id = 'element[' + a + '][0]';

        for (r=0; r<form.element[a].content.length; r++)
        {
          objOption = document.createElement('option');
          objOption.value = form.element[a].content[r].label;
          objOption.id = 'option_' + a + '_' + r;
          objText = document.createTextNode(form.element[a].content[r].label);
          objOption.appendChild(objText);
          objSelect.appendChild(objOption);
        }
        objTable.rows[0].cells[2].appendChild(objSelect);

	objSpan = document.createElement('span');
	objText = document.createTextNode(' ' + form.required);
	objSpan.appendChild(objText);
	objTable.rows[0].cells[3].appendChild(objSpan);
        if (form.element[a].is_required==1)
        {
	    required_fields = true;
        }
	else
	{
	    objSpan.style.visibility = 'hidden';
	}
        objTable.rows[0].cells[3].appendChild(objSpan);

        document.getElementById(target_id).appendChild(objTable);

        objBr = document.createElement('br');
        document.getElementById(target_id).appendChild(objBr);
        break;
    }
  }
}
