/*
 * Functies behulpzaam voor het verwerken van forms
 * (exclusief datum-functies, die staan in aparte file dates.js)
*/
function trim(str) {
	return str.replace(/^\s+/, '').replace(/\s+$/, '');
}

function is_email(email) {
	var emailReg = "^[A-Z0-9_%+-]+(\\.[A-Z0-9_%+-]+)*@(?:[A-Z0-9-]+\\.)+[A-Z]{2,4}$";
	var regex = new RegExp(emailReg, "i");
	return regex.test(email);
}

function is_passwd(passwd) {
	//var passwdReg = "^(?=.*[a-z])(?=.*\\d)(?=.*[A-Z])[a-zA-z0-9]{6,}$"; //letters klein, groot en cijfers, minimaal 6
	var passwdReg = "^([a-z](?=.*[A-Z0-9])|[A-Z](?=.*[a-z0-9])|[0-9](?=.*[A-Za-z]))[A-Za-z0-9]{5,}$"; //combi van tenminste 2 soorten uit letters klein, groot, cijfers
	var regex = new RegExp(passwdReg);
	return regex.test(passwd);
}

function is_username(username) {
	var usernameReg = "^[0-9a-zA-Z_.@-]+$";
	var regex = new RegExp(usernameReg);
	return regex.test(username);
}

function checkEmail(field) {
	if (field.value=='') {
		focusAlert(field, 'Voer een emailadres in!');
		return false;
	} else if (!is_email(field.value)) {
		focusAlert(field, 'Ongeldig emailadres!');
		return false;
	}
	return true;
}
function checkPassword(field) {
	if (!is_passwd(field.value)) {
		focusAlert(field, 'Ongeldig wachtwoord. Uw wachtwoord moet bestaan uit een mix van kleine letters, hoofdletters en cijfers en minimaal 6 tekens lang zijn!');
		return false;
	}
	return true;
}

function checkUsername(field) {
	if (!is_username(field.value)) {
		focusAlert(field, 'Ongeldige gebruikersnaam. De gebruikersnaam mag bestaan uit kleine letters, hoofdletters, cijfers, streepje (-), underscore (_), punt (.) en AT (@) en moet minimaal 1 teken lang zijn. Er mogen geen spaties in staan.');
		return false;
	}
	return true;
}

function getElementById(id){
	return (document.all ? document.all[id] : document.getElementById(id) );
};

function focusAlert(field, message) {
	alert(message);
	field.focus();
	//scrolltofieldfunctie :)
}
