﻿
if (!cx.ui)
    cx.ui = {};

cx.ui.FormInputField = function FormInputField() {
    return {
        formField: null,
        richEditor: null
    }
}

cx.ui.FormInputManager = function FormInputManager() {
	return {
		changedFields: new Array(),
		add: function add(ctl, richEditor) {
			var f = new cx.ui.FormInputField();
			f.formField = ctl;
			if (undefined !== richEditor)
				f.richEditor = richEditor;
			this.changedFields.push(f);
		},
		onSubmitEvent: function onSubmitEvent() {
			for (var i = 0; i < this.changedFields.length; i++) {
				var field = this.changedFields[i];
				if (null === field || null === field.formField || null == cx.byID(field.formField.id)) {
					continue;
				}

				//on AJAX postbacks, the formField is lost; need to re-wire it up
				field.formField = cx.byID(field.formField.id);

				if (null !== field.richEditor) {
					field.richEditor = cx.byID(field.richEditor.id);
					field.richEditor.saveHTML();
				}

				// encode value;
				field.formField.value = this.cleanText(field.formField.value);
			}
		}, //onSubmitEvent
		cleanText: function cleanText(dirtyText) {
			var val = new String();
			val = dirtyText;
			val = val.replace(/</g, '&lt;');
			val = val.replace(/>/g, '&gt;');
			return val;
		}, //cleanText
		onUnloadEvent: function onUnloadEvent() {
			for (var i = 0; i < formInputManager.changedFields.length; i++) {
				var field = formInputManager.changedFields[i];
				if (null === field || null === field.formField)
					return;
				// encode value;
				var val = new String();
				val = field.formField.value;
				val = val.replace(/&lt;/g, '<');
				val = val.replace(/&gt;/g, '>');
				field.formField.value = val;
			}
		}
	}
}

