EN.registerModule("feedback", {
        a:null,
        onDomReady:function() {
                var frm = document.getElementById("feedback-form");
                if(!frm) return;
                document.getElementById("c_email").setAttribute("autocomplete","off"); 
                document.getElementById("c_name").setAttribute("autocomplete","off"); 
                document.getElementById("c_email").onchange = document.getElementById("c_message").onchange = EN.feedback.elemValid;
                frm.onsubmit = function() {                                   
                        var ret = EN.feedback.validationTest(document.getElementById("c_email"));                 
                        return (!ret) ? false : EN.feedback.validationTest(document.getElementById("c_message"));
                };
                
                var fbw = document.getElementById("feedback-form-wrapper");
                if(!fbw || document.getElementById("formErrors")) { return; };

                var a = document.createElement("a");
                a.href="#feedback-form-wrapper";
                a.title = "";
                a.onclick = a.onkeypress = EN.feedback.toggle;
                a.id = "fbt";
                fbw.parentNode.insertBefore(a, fbw);
                EN.feedback.a = a;
                EN.feedback.toggle();
        },
        toggle:function() {
                var fbw = document.getElementById("feedback-form-wrapper");
                if(!fbw) { return false; };
                
                var disp = fbw.style.display == "none" ? "" : "none";
                
                if(fbw.className == "errors-encountered") {
                        disp = "";
                };
                
                if(!disp) {
                        EN.feedback.a.className = "s";
                        EN.feedback.a.innerHTML = EN.pageTranslations.getTranslation('hide_form');
                } else {
                        EN.feedback.a.className = "h";
                        EN.feedback.a.innerHTML = EN.pageTranslations.getTranslation('show_form');
                };
                
                fbw.style.display = disp;
                
                return false;
        },
        elemValid:function(e) {
                return EN.feedback.validationTest(this);                
        },
        validationTest:function(elem) {                 
                elem.className = elem.className.replace("err", "");
                elem.value = elem.value.replace(/^\s+|\s+$/g,"");
                switch(elem.id) {
                        case "c_message":                                
                                if(elem.value == "") { 
                                        elem.className = elem.className + " err";
                                        EN.formValidation.showMessage('c_message','<strong>'+EN.pageTranslations.getTranslation('error')+'</strong>: '+EN.pageTranslations.getTranslation('a_message_is_required')+'.', 2);
                                        return false;        
                                };
                                break;
                        case "c_email":                                                         
                                if(elem.value.search(/^[A-Z0-9._%+-]+@(?:[A-Z0-9-]+\.)+[A-Z]{1,6}$/i) == -1) { 
                                        elem.className = elem.className + " err";
                                        EN.formValidation.showMessage('c_email','<strong>'+EN.pageTranslations.getTranslation('error')+'</strong>: '+EN.pageTranslations.getTranslation('a_valid_email_address_is_required')+'.', 2);
                                        return false;        
                                };
                                break;
                };
                return true;
        }
});
