(function () {

    var Y = YAHOO,
        Dom = Y.util.Dom,
        Event = Y.util.Event,
        Select = Y.util.Selector,
        Lang = Y.lang,
        Ajax = Y.util.Connect;
    /**
    * Contact Us Form Submission
    */
    function ContactUs() {
        this.formId = "contactform";

        this._init();

        this.errorEl = Select.query('tr.error_row p.error_p', this.formId, true);        
    }

    ContactUs.prototype = {
        /**
        * Initializes the contact us form and attaches submit handlers
        * @return {void}
        */
        _init : function () {
            var submitButton = Select.query('input[type=submit]', this.formId, true);

            //initialize login form validation
            new MS.Validate(this.formId, { 
                error : function (el, text) {
                    switch (el.name) {                        
                        case 'ms_subject':
                            text = 'Please choose a Subject for your feedback';
                            break;                        
                        case 'valtext':
                            text = "Field value dosen't match"
                            break;                                                
                    }

                    if (this.errorEl) {
                        this.errorEl.innerHTML = text;
                        Dom.setStyle(this.errorEl, 'display', 'block');
                        el.focus();
                        
                        try {
                            el.select();
                        }catch (error) {
                        }
                    }
                },

                success : function (el) {
                    if (this.errorEl) {
                        this.errorEl.innerHTML = '';
                        Dom.setStyle(this.errorEl, 'display', 'none');
                    }
                },
                
                beforeSubmit : function () {
                    submitButton.value = 'Sending...';
                },

                submit : function (resp) {
                    this.errorEl.innerHTML = resp.success ? resp.notice : resp.error;
                    Dom.setStyle(this.errorEl, 'display', 'block');
                    Dom.setStyle(this.errorEl, 'width', '90%');
                    submitButton.value = 'Send';
                    window.scrollTo(0, 200);
                    resp.success ? Dom.get(this.formId).reset() : false;
                },
                
                scope : this
            });
        }
    };


    Event.onDOMReady(function () {
        var contact_us = new ContactUs();
    });


})();