-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.js
148 lines (120 loc) · 5.45 KB
/
script.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
document.addEventListener("DOMContentLoaded", () => {
mainFunctionality();
});
const mainFunctionality = () => {
const mobileNavBtn = document.getElementById("menu-btn");
const navDropDown = document.getElementById("navigation");
const signUpButton = document.getElementById("sign-up-button");
const showForm = document.getElementById("form-section");
const registerForm = document.getElementById("registration-form");
const loginForm = document.getElementById("login-form");
const cancelFormBtn = document.getElementById("cancel-button");
const cancelLoginBtn = document.getElementById("cancel-button-login");
const loginLink = document.getElementById("login-link");
const registrationLink = document.getElementById("registration-link");
// Separate input fields for registration
const registerUserInputName = document.getElementById("register-user-name-input");
const registerUserInputPassword = document.getElementById("register-password");
const registerUserInputEmail = document.getElementById("register-email-input");
const adminClientSelectElement = document.getElementById("form-users-choice");
// Separate input fields for login
const loginUserInputName = document.getElementById("login-user-name-input");
const loginUserInputPassword = document.getElementById("login-password");
const loginUserEmail = document.getElementById("login-email-input");
const customerNewsLetterSignUp = document.getElementById("sign-up-newsletter-form");
const administratorsCreatedNewsLetter = document.getElementById("create-newsletter-form");
// Toggle mobile navigation
mobileNavBtn.addEventListener("click", () => {
navDropDown.classList.toggle("navigation-primary--right-position-transitions");
});
// Toggle between login and registration forms
const toggleForms = (formType) => {
showForm.classList.add("display-show");
showForm.classList.remove("display-hidden");
if (formType === "register") {
loginForm.classList.add("display-hidden");
registerForm.classList.remove("display-hidden");
} else if (formType === "login") {
registerForm.classList.add("display-hidden");
loginForm.classList.remove("display-hidden");
}
};
// Attach event listeners to toggle form visibility
signUpButton.addEventListener("click", () => {
registerForm.reset();
toggleForms("register")
});
loginLink.addEventListener("click", () => {
toggleForms("login");
loginForm.reset();
});
registrationLink.addEventListener("click", () => {
registerForm.reset();
toggleForms("register");
});
// Handle registration form submission
registerForm.addEventListener("submit", (event) => {
event.preventDefault();
const userName = registerUserInputName.value.trim();
const userPassword = registerUserInputPassword.value.trim();
const userEmail = registerUserInputEmail.value.trim();
const usersChoice = adminClientSelectElement.value;
handleRegistration(userName, userPassword, userEmail, usersChoice);
registerForm.reset(); // Clear the form after submission
});
// Handle login form submission
loginForm.addEventListener("submit", (event) => {
event.preventDefault();
const userName = loginUserInputName.value.trim();
const userPassword = loginUserInputPassword.value.trim();
const userEmail = loginUserEmail.value.trim();
handleLogin(userPassword, userEmail);
loginForm.reset(); // Clear the form after submission
});
// Hide the forms
const hideForms = () => {
showForm.classList.add("display-hidden");
showForm.classList.remove("display-show");
};
// Attach cancel buttons to hide forms
cancelFormBtn.addEventListener("click", hideForms);
cancelLoginBtn.addEventListener("click", hideForms);
// Handle registration logic
const handleRegistration = (name, password, email, choice) => {
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
if (!name || !password || !email || !choice) {
alert("All fields must be filled in.");
return;
}
if (password.length < 4 || password.length > 10) {
alert("Password must be 4-10 characters long.");
return;
}
if (!emailRegex.test(email)) {
alert("Please enter a valid email.");
return;
}
alert(`You are registered as the ${choice}`);
// Toggle newsletter visibility based on user choice
if (choice.toLowerCase() === "administrator") {
customerNewsLetterSignUp.classList.add("display-hidden");
administratorsCreatedNewsLetter.classList.remove("display-hidden");
} else if (choice.toLowerCase() === "customer") {
customerNewsLetterSignUp.classList.remove("display-hidden");
administratorsCreatedNewsLetter.classList.add("display-hidden");
}
};
// Handle login logic
const handleLogin = (password, email) => {
if (!password || !email) {
alert("Please fill in both fields.");
return;
}
if (password.length < 4 || password.length > 10) {
alert("Password must be 4-10 characters long.");
return;
}
alert("Login successful");
// Additional login logic can go here
};
};