﻿var ContactUsControl = {
    Init: function(el) {
        var className = (el.id);
        if (ControlManager.Exists(className)) {
            var ctrl = ControlManager.Get(className);
        }
        else {
            var ctrl = new BaseControl(
            el.dom.innerHTML,
            "",
            "",
            eval(this.Validators.Value),
            "action_" + Utils.GetControlName(el),
            this.CurrentPage,
            el
            );
        }
        ctrl.init();
        return ctrl;
    },
    Send: function(actionElement) {
        var Form = actionElement.basicForm;
        var FormEl = actionElement.basicForm.el;

        if (!Form.isValid()) {
            var ctrl = actionElement.basicForm.baseCtrl;
            actionElement.basicForm.el.unmask();
            return;
        }

        FormEl.mask();
        //upload files, and submit form
        FileUpload.SendForm(Form, this.OnFileFiledsUploaded, actionElement, this);
    },
    //fires after files were uploaded to the server
    OnFileFiledsUploaded: function(actionElement, result) {
        var Form = actionElement.basicForm;

        if (result != null) {
            for (var i = 0; i < Form.items.length; i++) {
                if (Form.items.items[i] instanceof Ext.form.FileUploadField) {
                    var link = FileUpload.FindLinkInFilesParameters(result.FilesParameters, Form.items.items[i].getName());
                    Form.items.items[i].setFileLinkValue(link);
                }
            }
        }

        this.SubmitForm(actionElement);
    },
    //Submit form to the server with ajaxpro
    SubmitForm: function(actionElement) {
        var Form = actionElement.basicForm;
        var FormEl = actionElement.basicForm.el;
        var fullActionName = actionElement.dom.getAttribute("name");
        var parameters = serializeForm(Form);
        var ProgressEl = null;

        AjaxProcessor.Request(
            Form.baseCtrl.ajaxPage,
            fullActionName,
            parameters,
            { ctrl: Form.baseCtrl, formEl: FormEl, progressEl: ProgressEl, submitEl: actionElement });
    }
}
