forked from AyatsujiTsukasa/Ant-Planner
-
Notifications
You must be signed in to change notification settings - Fork 0
/
register.js
141 lines (134 loc) · 5.17 KB
/
register.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
var usernameValid = false;
var emailValid = false;
var passwordValid = false;
var passwordMatch = false;
function validateUsername() {
var usernameValidation = /^[a-zA-Z0-9 ]{3,20}$/;
if(!usernameValidation.test($.trim($('#username')[0].value))) {
$('#usernameWarning').html(" Please use only letters, numbers and spaces, and 3-20 characters");
$('#usernameWarning').removeClass('text-success');
$('#usernameWarning').addClass('text-danger');
usernameValid = false;
} else {
var xmlhttp = undefined;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
if(xmlhttp.responseText === "exist") {
$('#usernameWarning').html(" Username already taken");
$('#usernameWarning').removeClass('text-success');
$('#usernameWarning').addClass('text-danger');
usernameValid = false;
} else {
$('#usernameWarning').html(" Valid username");
$('#usernameWarning').removeClass('text-danger');
$('#usernameWarning').addClass('text-success');
usernameValid = true;
}
}
};
xmlhttp.open("get", "checkExist.php?q=" + $.trim($('#username')[0].value) + "¶=username", true);
xmlhttp.send();
}
}
function validateEmail() {
var emailValidation = /^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[_a-z0-9-]+)*(\.[a-z]{2,4})$/;
if(!emailValidation.test($.trim($('#email').val()))) {
$('#emailWarning').html(" Please enter a valid email address");
$('#emailWarning').removeClass('text-success');
$('#emailWarning').addClass('text-danger');
emailValid = false;
} else {
var xmlhttp = undefined;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
if(xmlhttp.responseText === "exist") {
$('#emailWarning').html(" Email already taken");
$('#emailWarning').removeClass('text-success');
$('#emailWarning').addClass('text-danger');
emailValid = false;
} else {
$('#emailWarning').html(" Valid email address");
$('#emailWarning').removeClass('text-danger');
$('#emailWarning').addClass('text-success');
emailValid = true;
}
}
};
xmlhttp.open("get", "checkExist.php?q=" + $.trim($('#email')[0].value) + "¶=email", true);
xmlhttp.send();
}
}
function matchPassword() {
if($('#password')[0].value !== $('#password2')[0].value || $('#password2')[0].value === "") {
$('#retypePasswordWarning').html(" Two passwords do not match");
$('#retypePasswordWarning').removeClass('text-success');
$('#retypePasswordWarning').addClass('text-danger');
passwordMatch = false;
} else {
$('#retypePasswordWarning').html(" Passwords match");
$('#retypePasswordWarning').removeClass('text-danger');
$('#retypePasswordWarning').addClass('text-success');
passwordMatch = true;
}
}
function validatePassword() {
var str = $.trim($('#password').val());
passwordValid = true;
if(!(/^(?=.*[a-zA-Z])(?=.*[0-9])/.test(str))){
$('#passwordWarning').html(" The password should contain both letters and numbers");
passwordValid = false;
} else if (str.length < 6) {
$('#passwordWarning').html(" The password should contain at least 6 characters");
passwordValid = false;
} else if (str.length > 15) {
$('#passwordWarning').html(" The password should contain at most 15 characters");
passwordValid = false;
}
if(passwordValid){
$('#passwordWarning').html("Valid password")
$('#passwordWarning').removeClass('text-danger');
$('#passwordWarning').addClass('text-success');
} else {
$('#passwordWarning').removeClass('text-success');
$('#passwordWarning').addClass('text-danger');
}
}
function validate() {
matchPassword();
validateEmail();
validatePassword();
validateUsername();
if(usernameValid&&emailValid&&passwordValid&&passwordMatch){
$('#registerButton').removeAttr('disabled');
} else {
$('#registerButton').attr('disabled', 'disabled');
}
}
$('#registerButton').on("click", function () {
var _this = $(this).parent(),
action = _this.attr("action");
$.get(action, _this.serialize(), function (data) {
$('.ajaxMsg').html(data).show();
if(/Account Created!/.test(data)){
$('#redirect').html("Redirecting to your home page...3");
setTimeout(function () {$('#redirect').html("Redirecting to your home page...2");}, 1000);
setTimeout(function () {$('#redirect').html("Redirecting to your home page...1");}, 2000);
setTimeout(function () {
$('#redirect').html("Redirecting to your home page...0");
window.location = 'userhome.html';
}, 3000);
}
});
});
$('#registerForm').on("keyup", "input.validateLocally", validate);
validate();