$j(document).ready(function() {
	$j('input.register-input').focus(function() {
		var id = $j(this).attr('id');
		if ($j(this).val().length == 0) {
			setToInfo(id);
		}

		$j('#note-' + id).css('visibility', 'visible');
	});

	$j('input.register-input').blur(function() {
		if ($j(this).val().length == 0) {
			$j('#note-' + $j(this).attr('id')).css('visibility', 'hidden');
		}
	});

    $j('input.nocheck, #carrier').blur(function() {
        if ($j(this).val().length > 0) {
            $j('#note-' + $j(this).attr('id')).css('visibility', 'hidden');
        } 
    });

    $j('#carrier').focus(function() {
        setToInfo($j(this).attr('id'));
    });

	$j('#username').validate('usernameAvailable', function(err) {
		setToError('username', err.error);
	}, function(json) {
		setToSuccess('username',
					 'Yay! The username ' + json.username + ' is available');
	});

	$j('#email').validate('emailAvailable', function(err) {
		setToError('email', err.error);
	}, function(json) {
		setToSuccess('email',
					 'Your email address appears valid. This is a good thing.');
	});

	$j('#emailverify').blur(function() {
		if ($j(this).val() != $j('#email').val()) {
			setToError($j(this).attr('id'), 'Email addresses do not match');
		} else {
			$j('#note-' + $j(this).attr('id')).css('visibility', 'hidden');
		}
	});

	$j('#password').validate('password', function(err) {
		setToError('password', err.error);
	}, function(json) {
		setToSuccess('password',
					 'Your password looks good. Remember to remember it.');
	});

	$j('#verify').blur(function() {
		if ($j(this).val() != $j('#password').val()) {
			setToError($j(this).attr('id'), 'Passwords do not match');
		} else {
			$j('#note-' + $j(this).attr('id')).css('visibility', 'hidden');
		}
	});

	$j('#mobile').validate('mobileAvailable', function(err) {
		setToError('mobile', err.error);
	}, function(json) {
		setToSuccess('mobile',
					 'Cool! The mobile number valid and is available');
	});
});

function setToInfo(id) {
	$j('#note-' + id).removeClass('form-note form-error form-success');
	$j('#note-' + id).addClass('form-note');
	$j('#note-' + id).text(info[id]);
	$j('#note-' + id).css('visibility', 'visible');
}

function setToError(id, error) {
	$j('#note-' + id).removeClass('form-note form-error form-success');
	$j('#note-' + id).addClass('form-error');
	$j('#note-' + id).text(error);
}

function setToSuccess(id, success) {
	$j('#note-' + id).removeClass('form-note form-error form-success');
	$j('#note-' + id).addClass('form-success');
	$j('#note-' + id).text(success);
}


