﻿
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)) {
                    return;
                }

                //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;
                var val = new String();
                val = field.formField.value;
                val = val.replace(/</g, '&lt;');
                val = val.replace(/>/g, '&gt;');
                field.formField.value = val;
            }
        }, //onSubmitEvent
        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;
            }
        }
    }
}
