function resetErrors() {
	$('#username_mark').html('');
	$('#password_mark').html('');
	$('#email_mark').html('');
	$('#username_error').html('');
	$('#password_error').html('');
	$('#email_error').html('');
}
function addError(field,error) {
	var p = $('#'+field).position();
	$('#'+field+'_mark').html('<span style="color:red">*</span>');
	$('#'+field+'_error').html('<table border="0" cellpadding="2" cellspacing="1" style="position:absolute;top:'+(p.top)+'px;left:' +(p.left+$('#'+field).width()+10)+'px;z-index:1" class="errtable"><tr><td>'+error+'</td></tr></table>');
}
function removeError(field) {
	$('#'+field+'_mark').html('');
	$('#'+field+'_error').html('');
}
var processinguc = false;
function validate(form) {
	window.shut=false;
	resetErrors();
	var i;
	var good = true;
	if (form.password.value == '') {
		good = false;
		err = "Password cannot be blank";
		addError('password',err);
	} else if (form.password.value.length < 4){
		good = false;
		err = "Password must be at least 4 symbols";
		addError('password',err);
	} else if (form.password.value == form.username.value){
		good = false;
		err = "Password and Username are too aimilar";
		addError('password',err);
	}
	var alphacheck = /^([a-zA-Z0-9_-]+)$/;
	if (form.username.value.length < 6) {
		good = false;
		err = 'Username must be at least 6 characters';
		addError('username',err);
	} else	if (!alphacheck.test(form.username.value)) {
		good = false;
		err = "Username may contain only symbols from a-z, A-Z, 0-9";
		addError('username',err);
	}
	emailregex = /^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i
	if (!form.email.value) {
		good = false;
		err = "Please enter your email address";
		addError('email',err);
	}
	else if (!emailregex.test(form.email.value)) {
		good = false;
		err = "Please enter a valid email address";
		addError('email',err);
	}
	if (good) {
		$('#submitbutton').attr('src', 'images/free_sgnup_btn_loading.gif');
		if (processinguc == false) {
			processinguc = true;
			$.get('verify.php', { username: form.username.value }, function(data) {
				if (data.result == 1) {
					$('#submitbutton').attr('src', 'images/free_sgnup_btn.gif');
					addError('username', 'Username may contain only symbols from a-z, A-Z, 0-9');
				} else if (data.result == 2) {
					$('#submitbutton').attr('src', 'images/free_sgnup_btn.gif');
					addError('username', 'Username must be between 6 and 20 characters');
				} else if (data.result == 3) {
					$('#submitbutton').attr('src', 'images/free_sgnup_btn.gif');
					s = '<table border="0" cellpadding="2" cellspacing="1">';
					for(i = 0; i < data.alternatives.length; i++) {
						text = data.alternatives[i];
						s += '<tr><td>&nbsp;<a href="#" onclick="selectUser(\''+text+'\');return false;">'+text+'</a></td></tr>';
					}
					s += '</table>';
					var p = $('#username').position();
					$('#username_mark').html('<span style="color:red">*</span>');
					$('#username_error').html('<table border="0" cellpadding="3" cellspacing="1" style="position:absolute;top:'+(p.top+26)+'px;left:' +(p.left-40)+'px" class="errtable"><tr><td>Username is not available, please choose a new one<br><br>Available usernames:</td></tr><tr><td>'+s+'<br></td></tr></table>');
				} else {
					window.shut=false;
					$('#signupform').submit();
				}
				processinguc = false;
			}, 'json');
		}
		return false;
	}
	return good;
}
function selectUser(u) {
	$('#username').val(u);
	removeError('username');
	$('#submitbutton').attr('src', 'images/free_sgnup_btn_loading.gif');
	processinguc = true;
	$('#signupform').submit();
}
