function Form(_form, _title, _redirect, _from, _to, _database)
{
	// Create hidden input boxes
	// Title
	var input = document.createElement( 'INPUT' );
	input.type = 'hidden';
	input.name = 'df_title';
	input.value = _title;
	_form.appendChild(input);

	// Redirect
	input = document.createElement( 'INPUT' );
	input.type = 'hidden';
	input.name = 'df_redirect';
	input.value = _redirect;
	_form.appendChild(input);

	// From
	input = document.createElement( 'INPUT' );
	input.type = 'hidden';
	input.name = 'df_from';
	input.value = _from;
	_form.appendChild(input);

	// To
	input = document.createElement( 'INPUT' );
	input.type = 'hidden';
	input.name = 'df_to';
	input.value = _to;
	_form.appendChild(input);

	for (i=0; i < _form.getElementsByTagName("INPUT").length; i++)
	{
		if (_form.getElementsByTagName("INPUT")[i].type == "button" || _form.getElementsByTagName("INPUT")[i].type == "submit" || _form.getElementsByTagName("INPUT")[i].type == "image")
		{
			_form.getElementsByTagName("INPUT")[i].disabled = true;
		}
	}
	
	//alert(stripHTMLFormObjects(_form));
	//return false;
	// Content
	input = document.createElement( 'INPUT' );
	input.type = 'hidden';
	input.name = 'df_content';
	input.value = stripHTMLFormObjects(_form); //_form.innerHTML;
	_form.appendChild(input);
	

    // Database
	input = document.createElement( 'INPUT' );
	input.type = 'hidden';
	input.name = 'df_database';
	input.value = _database;
	_form.appendChild(input);
	
    GetNameValuePair(_form);

	return true;	
}

function stripHTMLFormObjects(_form)
{
    var cleanForm = _form.innerHTML;
    var allElements = _form.elements;
    for (i = 0; i < allElements.length; i++)
    {
        if (allElements[i].type == 'text' || allElements[i].type == 'password' || allElements[i].type == 'textarea')
        {
            cleanForm = cleanForm.replace(allElements[i].outerHTML, allElements[i].value);
        }
        else if (allElements[i].type == 'checkbox' || allElements[i].type == 'radio')
        {
            if (allElements[i].checked)
            {
                cleanForm = cleanForm.replace(allElements[i].outerHTML, '[X]');
            }
            else
            {
                cleanForm = cleanForm.replace(allElements[i].outerHTML, '[ ]');
            }
        }
        else if (allElements[i].type == 'select-one' || allElements[i].type == 'select-multiple')
        {  
           var selectValues = '';
           selectOptions = allElements[i].options;
           for (j = 0; j < selectOptions.length; j++)
           {
                if (selectOptions[j].selected)
                {
                    selectValues = selectValues + '<br>' + selectOptions[j].text;
                }
           }
           cleanForm = cleanForm.replace(allElements[i].outerHTML, selectValues);
        }
        else if (allElements[i].type == 'hidden' || allElements[i].type == 'reset' || allElements[i].type == 'submit' || allElements[i].type == 'button' || allElements[i].type == 'image')
        {
            cleanForm = cleanForm.replace(allElements[i].outerHTML, '');
        }
    }    
    return cleanForm;
}

function GetNameValuePair(_form)
{
    var allElements = _form.elements;
    var nameValue = '';
    for (i = 0; i < allElements.length; i++)
    {
        if (allElements[i].type == 'text' || allElements[i].type == 'password' || allElements[i].type == 'textarea' || allElements[i].type == 'hidden')
        {
            name = allElements[i].name;
            if (name != 'df_content')
            {
                value = allElements[i].value;
                nameValue = nameValue +  name + '||=@=||' + value + '{{<SEPERATOR>}}'
            }
        }
        else if (allElements[i].type == 'checkbox' || allElements[i].type == 'radio')
        {
            name = allElements[i].name;
            if (allElements[i].checked)
            {
                value = allElements[i].value;
                nameValue = nameValue +  name + '||=@=||' + value + '{{<SEPERATOR>}}'
            }
        }
        else if (allElements[i].type == 'select-one' || allElements[i].type == 'select-multiple')
        {  
           name = allElements[i].name;
           selectOptions = allElements[i].options;
           for (j = 0; j < selectOptions.length; j++)
           {
                if (selectOptions[j].selected)
                {
                    value = selectOptions[j].text;
                    nameValue = nameValue +  name + '||=@=||' + value + '{{<SEPERATOR>}}'
                }
           }
        }
        
    }
    
	input = document.createElement( 'INPUT' );
	input.type = 'hidden';
	input.name = 'df_nameValuePair';
	input.value = nameValue;
	_form.appendChild(input);
}
