var _profileCheckTimeout_ = 0;

function triggerProfileNameCheck() {
    if (_profileCheckTimeout_ > 0) {
        clearTimeout(_profileCheckTimeout_);
        _profileCheckTimeout_ = 0;
    }
    var elem = $('profileNameTooltip');
    if (elem) elem.innerHTML = '<span class="warning">Checking profile name...</span>';
    _profileCheckTimeout_ = setTimeout('checkProfileName()', 500);
}

function checkProfileName() {
    var name;
    var elem = $('profileName');
    if (elem) {
        name = elem.value;
        if (name.length < 4) {
            elem = $('profileNameTooltip');
            if (elem) elem.innerHTML = '<span class="warning">Your Profile Name must be at least 4 characters long.</span>';
        } else {
            var params = new Hash();
            params.set('name', name);
            new Ajax.Request('/external/checkProfileName', {
                method: 'post',
                parameters: params,
                onSuccess: function(transport) {
                    var json = transport.responseJSON;
                    var response;
                    switch (json.response) {
                        case 0: // Success!
                            response = '<span class="notice">Profile Name available!</span>';
                            break;
                        case 1: // Illegal characters
                            response = '<span class="alert">Profile Names can only have a-z, A-Z, -, and _.</span>';
                            break;
                        case 2: // Already in use
                            response = '<span class="alert">Profile Name already taken.</span>';
                            break;
                    }
                    var elem = $('profileNameTooltip');
                    if (elem) elem.innerHTML = response;
                    _profileCheckTimeout_ = 0;
                },
                onFailure: function(transport) {
                    // Handle a bad response.
                    var elem = $('profileNameTooltip');
                    if (elem) elem.innerHTML = '<span class="alert">' + transport.responseText + '</span>';
                    _profileCheckTimeout_ = 0;
                }
            });
        }
    }
}

