/*
 * KWJAXDynamicForm.
 */
function KWJAXDynamicForm() {

	// Formulário
	var lForm = null;

	// Ação
	var lAction = '';

	// Alvo
	var lTarget = '_self';

	/*
	 * Método de criação do formulário.
	 */
	this.cmdCreate = function(pAction, pTarget, pMethod) {
		try {

			// Atribui ação
			if (new String(pAction).length > 0) {
				lAction = pAction;
			}

			// Atribui alvo
			if (new String(pTarget).length > 0) {
				lTarget = pTarget;
			}

			// Atribui método
			if (new String(pMethod).length > 0) {
				lMethod = pMethod;
			}

			// Verifica o formulário
			if (lForm != null) {
				return false;
			}

			// Instancia formulário
			lForm = document.createElement('form');
			lForm.setAttribute('action', lAction);
			lForm.setAttribute('target', lTarget);
			lForm.setAttribute('method', (lMethod != null ? lMethod : 'POST'));
			document.body.appendChild(lForm);
			return true;
		} catch(e) {
			alert(e.message);
			return false;
		}
	}

	/*
	 * Método de remoção do formulário.
	 */
	this.cmdRemove = function() {
		try {

			// Verifica o formulário
			if (lForm == null) {
				return false;
			}

			// Remove o formulário
			document.body.removeChild(lForm);
			lForm = null;
			return true;
		} catch(e) {
			alert(e.message);
			return false;
		}
	}

	// Adiciona um campo ao formulário
	this.addField = function(pName, pValue) {
		try {

			// Verifica o formulário
			if (lForm == null) {
				return false;
			}

			// Cria o campo
			var lField = document.createElement('input');
			lField.setAttribute('type', 'hidden');
			lField.setAttribute('name', pName);
			lField.setAttribute('value', pValue);
			lForm.appendChild(lField);
			return true;
		} catch(e) {
			alert(e.message);
			return false;
		}
	}

	// Submete o formulário
	this.cmdSubmit = function() {
		try {

			// Verifica o formulário
			if (lForm == null) {
				return false;
			}

			// Submete o formulário
			lForm.submit();
			return true;
		} catch(e) {
			alert(e.message);
			return false;
		}
	}
}