/* * login.js * Copyright (C) 2008 * Author: Rutger Grootenhuis * Created: 2008-03-20 */ var Login = { _getLoginFields: function(){ var obj = {}; if ($("IM3_Login_Gender_Male")) obj["IM3_Login_Gender_Male"] = ($("IM3_Login_Gender_Male").checked ? 1 : 0); if ($("IM3_Login_Gender_Female")) obj["IM3_Login_Gender_Female"] =($("IM3_Login_Gender_Female").checked ? 1 : 0); if ($("IM3_Login_LoginName")) obj["IM3_Login_LoginName"] = $('IM3_Login_LoginName').value; if ($("IM3_Login_Password")) obj["IM3_Login_Password"] = $('IM3_Login_Password').value; if ($("IM3_Login_FirstName")) obj["IM3_Login_FirstName"] = $('IM3_Login_FirstName').value; if ($("IM3_Login_LastName")) obj["IM3_Login_LastName"] = $('IM3_Login_LastName').value; if ($("IM3_Login_Email")) obj["IM3_Login_Email"] = $('IM3_Login_Email').value; if ($("IM3_Login_Address")) obj["IM3_Login_Address"] = $('IM3_Login_Address').value; if ($("IM3_Login_HouseNumber")) obj["IM3_Login_HouseNumber"] = $('IM3_Login_HouseNumber').value; if ($("IM3_Login_ZipCode")) obj["IM3_Login_ZipCode"] = $('IM3_Login_ZipCode').value; if ($("IM3_Login_Place")) obj["IM3_Login_Place"] = $('IM3_Login_Place').value; if ($("IM3_Login_Country")) obj["IM3_Login_Country"] = $('IM3_Login_Country').value; if ($("IM3_Login_PhoneNumber")) obj["IM3_Login_PhoneNumber"] = $('IM3_Login_PhoneNumber').value; if ($("IM3_Login_MobilePhoneNumber")) obj["IM3_Login_MobilePhoneNumber"] = $('IM3_Login_MobilePhoneNumber').value; if ($("IM3_Login_Data1")) obj["IM3_Login_Data1"] = $('IM3_Login_Data1').value; if ($("IM3_Login_Data2")) obj["IM3_Login_Data2"] = $('IM3_Login_Data2').value; if ($("IM3_Login_Data3")) obj["IM3_Login_Data3"] = $('IM3_Login_Data3').value; if ($("IM3_Login_Data4")) obj["IM3_Login_Data4"] = $('IM3_Login_Data4').value; if ($("IM3_Login_Data5")) obj["IM3_Login_Data5"] = $('IM3_Login_Data5').value; return obj; }, _clearErrors: function(){ var fields = ["IM3_Login_Gender", "IM3_Login_LoginName", "IM3_Login_Password", "IM3_Login_FirstName", "IM3_Login_LastName", "IM3_Login_Email", "IM3_Login_Address", "IM3_Login_HouseNumber", "IM3_Login_ZipCode", "IM3_Login_Place", "IM3_Login_Country", "IM3_Login_PhoneNumber", "IM3_Login_MobilePhoneNumber", "IM3_Login_Data1", "IM3_Login_Data2", "IM3_Login_Data3", "IM3_Login_Data4", "IM3_Login_Data5", "IM3_Login_Overall"]; for (var i = 0; i < fields.length; i++) { var field = fields[i]; var errorContainer = $(field + "_Error"); if (!errorContainer) continue; errorContainer.className = "FormErrorHidden"; } }, _showErrors: function(errors){ if ($defined(errors)){ var fields = ["IM3_Login_Gender", "IM3_Login_LoginName", "IM3_Login_Password", "IM3_Login_FirstName", "IM3_Login_LastName", "IM3_Login_Email", "IM3_Login_Address", "IM3_Login_HouseNumber", "IM3_Login_ZipCode", "IM3_Login_Place", "IM3_Login_Country", "IM3_Login_PhoneNumber", "IM3_Login_MobilePhoneNumber", "IM3_Login_Data1", "IM3_Login_Data2", "IM3_Login_Data3", "IM3_Login_Data4", "IM3_Login_Data5", "IM3_Login_Overall"]; for (var i = 0; i < fields.length; i++) { var field = fields[i]; var errorContainer = $(field + "_Error"); // FIX ME: Show error in registration too var errorContainerReg = $(field.replace("Login","Reg") + "_Error"); if (errorContainer != null) { errorContainer.className = "FormErrorHidden"; if (errors[field] != null) { errorContainer.innerHTML = errors[field]; errorContainer.className = "FormErrorVisible"; } } // FIX ME: Show error in registration too if (errorContainerReg != null) { errorContainerReg.className = "FormErrorHidden"; if (errors[field.replace("Login","Reg")] != null) {; errorContainerReg.innerHTML = errors[field]; errorContainerReg.className = "FormErrorVisible"; } } } } }, login : function(sendButton, loginFields) { var xhr = new XHR(); xhr.onSuccess = function(self) { if (sendButton != null) { sendButton.className = "SubmitButton"; sendButton.disabled = false; } var result = Json.evaluate(this.transport.responseText); if (result == null || result["status"] == "success") { window.location = "video"; return; } if (result != null && result["loginMode"] == "verification"){ window.location = "verification"; return; } var errors = result["errors"]; Login._showErrors(errors); } var obj = Login._getLoginFields(); if(loginFields) { obj = loginFields; } obj["webcastID"] = IM3_Config.webcastID; Login._clearErrors(); var loginMessage = $('IM3_Login_Message'); if ($defined(loginMessage)) loginMessage.addClass('hidden'); if (sendButton != null) { sendButton.className = "SubmitButtonDisabled"; sendButton.disabled = true; } xhr.send(IM3_Config.jsonServerURL + "/IM3Service.login", Json.toString(obj)); }, forgotPassword: function(loginFields){ var xhr = new XHR(); xhr.onSuccess = function(self) { $('ForgotPasswordButton').className = "SubmitButton"; $('ForgotPasswordButton').disabled = false; var result = Json.evaluate(this.transport.responseText); if (result == null || result["status"] == "success") { $("IM3_Login_Message").removeClass('hidden'); $("IM3_Login_Message").setText(result["message"]); return; } var errors = result["errors"]; Login._showErrors(errors); } var obj = Login._getLoginFields(); if(loginFields) { obj = loginFields; } obj["webcastID"] = IM3_Config.webcastID; Login._clearErrors(); $('IM3_Login_Message').addClass('hidden'); $('ForgotPasswordButton').className = "SubmitButtonDisabled"; $('ForgotPasswordButton').disabled = true; xhr.send(IM3_Config.jsonServerURL + "/IM3Service.forgotPassword", Json.toString(obj)); } } var behaviourRules = { '#LoginButton' : function(el) { el.onclick = function(el) { Login.login($('LoginButton')); return false; } }, '#ForgotPasswordButton' : function(el) { el.onclick = function(el) { Login.forgotPassword(); return false; } } } Behaviour.register(behaviourRules);