function checkEmail(string){
  var test;
  
  var filter=/^([_a-z0-9-]+)(\.[_a-z0-9-]+)*@([a-z0-9-]+)(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/i;
  
  if (filter.test(string)){
  	test = true;
  } else{
  	test = false;
  }
  
  return test;
}

function validate() {
	var error = 0;
	var message = "Nu ai completat corect formularul:";
	
	if(section == 'login') {
		if(step == 0) {
			$('#error').hide('slow');
			$('#error').html("");
			
			if($('#username').val() == "") { error++; message+= "\n- nu ai completat numele de cont."; }
		
			if($('#password').val() == "") { error++; message+= "\n- nu ai completat parola."; }
		
			if($('#username').val() != "" && $('#password').val() != "") {
				$.ajax({
					type: "POST",
					url: baseURL + "/tools/login",
					data: "username=" + $('#username').val() + "&password=" + $('#password').val(),
					success: function(data){
						data = eval("(" + data + ")"); 
						
						if(data['message'] == "success") {
							alert(data['message']);
						} else {
							error++;
							$('#error').html('<b>login incorect</b>').show('slow');
						}
					},
					error: function(data) {
						error++;
						$('#error').html('<b>eroare comunicare server</b>').show('slow');
					}
				});
			}
			
			if(error > 0) {
				alert(message);
				return false;
			} else { 
				return true;
			}
		} else if(step == 1) {
			if(error > 0) {
				alert(message);
				return false;
			} else { 
				return true;
			}
		}
	} else if(section == 'register') {
		if(step == 0) {
			if($('#username').val() == "") {
				error++;
				message += "\n- nu ai completat numele de cont";
			} else {
				if(checkUsername($('#username').val(), 'expression', 'email') == false) {
					error++;
					message += "\n- numele de cont ales nu este valid.";
				} else {
					if(checkUsername($('#username').val(), 'length', 5) == false) {
						error++;
						message += "\n- numele de cont este mai mic de 5 caractere.";
					} else {
						if(checkUsername($('#username').val(), 'database', null) == true) { 
							error++;
							message += "\n- numele de cont este deja inregistrat; va rugam sa alegeti altul";
						}
					}
				}
			}
			
			if($('#password').val() == ""){ 
				error++;
				message += "\n- nu ai introdus parola.";
			} else {
				if($('#password').val().length < 4) { 
					error++;
					message += "\n- parola este prea scurta; va recomandam o parola de minim 4 caractere.";
				} else {
					if($('#password').val() != $('#confirmpassword').val()) {
						error++;
						message += "\n- nu ai introdus confirmat parola.";
					}
				}
			}
			
			if(err > 0) {
				alert(msg);
				return false;
			} else {
				return true;
			}
		}
	}
}

function registerEmail() {
	var err = 0;
	var msg = "Au aparut urmatoarele erori:";
	
	$.ajax({
		type: "POST",
		url: baseURL + "/tools/register_user",
		async: false,
		data: "username=" + $('#username').val() + "&password=" + $('#password').val(),
		success: function(data){
			data = eval("(" + data + ")"); 
				
			if(data['message'] == "failure") {
				err++;
				msg += "\n" + err + ". A aparut o eroare la inregistrare; va rugam sa incercati din nou";
			} else if(data['message'] == "success") {
				$('message').html("Contul a fost inregistrat. Veti primi un mesaj pe adresa de e-mail pentru activarea contului.");
			}
		},
		error: function(data) {
		}
	});
	
	if(err > 0) {
		alert(msg);
		return false;
	} else {
		return true;
	}
}

function checkEmail(email) {
	var test;

	if (checkRegexp(email.toLowerCase(), /^([_a-z0-9-]+)(\.[_a-z0-9-]+)*@([a-z0-9-]+)(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/i)){
		test = true;
	} else{
		test = false;
	}

	return test;
}

function checkRegexp(value, expression) {
	var test;

	var filter = new RegExp(expression);
	
	if (filter.test(value) || expression == null || expression.toString() == ""){
		test = true;
	} else{
		test = false;
	}

	return test;
}

function checkUsername(username, type, value) {
	var test = null;

	if(type == "expression") {
		if(value == 'email') { expression = /^([_a-z0-9-]+)(\.[_a-z0-9-]+)*@([a-z0-9-]+)(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/i; } else if(value == 'username') { expression = /^([a-z0-9])([a-z0-9\-\_\.]+)([a-z0-9])$/i; }
		
		if (checkRegexp(username, expression)) {
			test = true;
		} else{
			test = false;
		}
	} else if(type == "length") {
		if(username.length >= value) {
			test = true;
		} else if(username.length <= value) {
			test = true;
		} else {
			test = false;
		}
	} else if(type == "database") {
		$.ajax({
			type: "POST",
			url: baseURL + "/tools/check_username",
			async: false,
			cache: false,
			data: "username=" + username.toLowerCase(),
			success: function(data) {
				data = eval("(" + data + ")");
				
				if(data['message'] == "true") {
					test = true;
				} else {
					test = false;
				}
			},
			error: function(data) {
				test = false;
			}
		});
	}
	
	return test;
}