summaryrefslogtreecommitdiff
path: root/static/js/register.js
blob: 30e221fc02220fc9bcf7157b6d3f487513ec8a2b (plain)
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
function submitRegistration() {
    var nick = $('#nickInput').val();
    var email = $('#emailInput').val();
    var password = $('#passwordInput').val() || "";
    var password2 = $('#passwordInput2').val() || "";    

    if (nick.length < 3 || nick.length > 12) {
	alert("Nicks must be between 3 and 12 characters long.");
	return;
    }

    if (password != password2) {
        alert("Passwords must match!");
        return;
    }

    if (password.length < 5) {
	alert("Password must be at least 5 characters long.");
	return;
    }

    var hash = hex_sha1(nick + '$' + password + '$dumpfm');
    var onSuccess = function() {
	 if (typeof pageTracker !== 'undefined') {
          pageTracker._trackEvent('User', 'Register', nick);
        }
        location.href = "/";
    };

    var onError = function(resp) {
	var respText = resp.responseText ? resp.responseText.trim() : false;
	if (respText == 'NICK_TAKEN') {
	    alert("That nick is already taken! Please choose another.");
	} else if (respText == 'NICK_INVALID_CHARS') {
	    alert("Nicks can only contain letters and numbers.");
	} else {
            alert("Unable to register!");	    
	}
    };

    $.ajax({
        type: 'POST',
        timeout: 5000,
        url: 'submit-registration',
        data: {'nick': nick, 'email': email, 'hash': hash },
        cache: false,
        dataType: 'json',
        success: onSuccess,
        error: onError

    });
}

function initRegister() {
    $('#submit').click(submitRegistration);
}