function checkDemDeskForm(form) {
	var validi = "+0123456789-/";
	var ch;
	var numeri = "0123456789"
	var words = 0;

	if (form.titolo.value == "") {
		alert("Please enter your title.");
		form.titolo.focus();
		return false;
	}
	if (form.telefono.value == "") {
		alert("Please enter a telephone number.");
		form.telefono.focus();
		return false;
	}
	else
		for (i = 0; i < form.telefono.value.length; i++) {
			ch = form.telefono.value.charAt(i);
			for (j = 0; j < validi.length; j++)
				if (ch == validi.charAt(j))
					break;
			if (j == validi.length) {
				alert("The Tel. field must contain +, numbers, - and / only.");
				form.telefono.select();
				form.telefono.focus();
				return false;
			}
		}
	if (form.nome.value == "") {
		alert("Please enter your name.");
		form.nome.focus();
		return false;
	}
	if (form.fax.value == "") {
		alert("Please enter a fax number.");
		form.fax.focus();
		return false;
	}
	else
		for (i = 0; i < form.fax.value.length; i++) {
			ch = form.fax.value.charAt(i);
			for (j = 0; j < validi.length; j++)
				if (ch == validi.charAt(j))
					break;
			if (j == validi.length) {
				alert("The Fax field must contain +, numbers, - and / only.");
				form.fax.select();
				form.fax.focus();
				return false;
			}
		}
	if (form.email.value.indexOf('@', 0) == -1 || form.email.value.indexOf('.', 0) == -1) {
		alert("The e-mail address you entered is not valid. Please enter a valid e-mail address.");
		form.email.select();
		form.email.focus();
		return false;
	}
	if (form.ruolo.value == "none") {
		alert("Please select a role.");
		form.ruolo.focus();
		return false;
	}
	if (form.affiliazione.value == "") {
		alert("Please specify your affiliation.");
		form.affiliazione.focus();
		return false;
	}
	if (form.indaff.value == "") {
		alert("Please enter the address of your affiliation.");
		form.indaff.focus();
		return false;
	}
	if (form.biografia.value == "") {
		alert("Please enter your biography.");
		form.biografia.focus();
		return false;
	}
	if (form.nomedim.value == "") {
		alert("Please enter the demonstrator's name.");
		form.nomedim.focus();
		return false;
	}
	if (form.nummacchine.value == "") {
		alert("Please enter the number of machines needed.");
		form.nummacchine.focus();
		return false;
	}
	else
		for (i = 0; i < form.nummacchine.value.length; i++) {
			ch = form.nummacchine.value.charAt(i);
			for (j = 0; j < numeri.length; j++)
				if (ch == numeri.charAt(j))
					break;
			if (j == numeri.length) {
				alert("The Number of machines field must contain numbers only.");
				form.nummacchine.select();
				form.nummacchine.focus();
				return false;
			}
		}
	if (form.tipomacchine.value == "" && form.nummacchine.value != "0") {
		alert("Please specify the type of your machines.");
		form.tipomacchine.focus();
		return false;
	}
	if (form.area.value == "") {
		alert("Please enter the requested area.");
		form.area.focus();
		return false;
	}
	else
		for (i = 0; i < form.area.value.length; i++) {
			ch = form.area.value.charAt(i);
			for (j = 0; j < numeri.length; j++)
				if (ch == numeri.charAt(j))
					break;
			if (j == numeri.length) {
				alert("The Requested Area field must contain numbers only.");
				form.area.select();
				form.area.focus();
				return false;
			}
		}
	if (form.accessori.value == "" && form.nummacchine != "0") {
		alert("Please specify the accessories you need.");
		form.accessori.focus();
		return false;
	}
	if (form.arearif.value == "none") {
		alert("Please select the area of interest.");
		form.arearif.focus();
		return false;
	}
	for (i = 0; i < form.descrizione.value.length; i++) {
		ch = form.descrizione.value.charAt(i);
		if (ch == " " || ch == "\n")
			words++;
	}
	if (words < 200) {
		alert("The Demonstrator Description must contain at least 200 words.");
		form.descrizione.focus();
		return false;
	}
	if (words > 600) {
		alert("The Demonstrator Description must contain at most 600 words.");
		form.descrizione.focus();
		return false;
	}
	return true;
}

function checkLoginForm(form) {
	if (form.userID.value == "") {
		alert("Please enter your username.");
		form.userID.focus();
		return false;
	}
	if (form.password.value == "") {
		alert("Please enter your password.");
		form.password.focus();
		return false;
	}
	return true;
}

function checkRegForm(form) {
	var validi = "+0123456789-/";
	var ch;

	if (form.userID.value == "") {
		alert("Please enter an username.");
		form.userID.focus();
		return false;
	}
	if (form.password1.value == "") {
		alert("Please enter the password.");
		form.password1.focus();
		return false;
	}
	if (form.password2.value == "") {
		alert("Please confirm the password you entered.");
		form.password2.focus();
		return false;
	}
	if (form.password1.value != form.password2.value) {
		alert("Passwords don't match, please retype them.");
		form.password1.select();
		form.password1.focus();
		return false;
	}
	if (form.nome.value == "") {
		alert("Please enter your name.");
		form.nome.focus();
		return false;
	}
	if (form.cognome.value == "") {
		alert("Please enter your surname.");
		form.cognome.focus();
		return false;
	}
	if (form.company.value == "") {
		alert("Please enter your company/institute.");
		form.company.focus();
		return false;
	}
	if (form.indirizzo.value == "") {
		alert("Please enter your address.");
		form.indirizzo.focus();
		return false;
	}
	if (form.country.value == "") {
		alert("Please enter your country.");
		form.country.focus();
		return false;
	}
	if (form.phone1.value == "" && form.phone2.value == "") {
		alert("Please enter at least one phone number.");
		form.phone1.focus();
		return false;
	}
	else {
		if (form.phone1.value != "")
			for (i = 0; i < form.phone1.value.length; i++) {
				ch = form.phone1.value.charAt(i);
				for (j = 0; j < validi.length; j++)
					if (ch == validi.charAt(j))
						break;
				if (j == validi.length) {
					alert("The phone field must contain +, numbers, - and / only.");
					form.phone1.select();
					form.phone1.focus();
					return false;
				}
			}
		if (form.phone2.value != "")
			for (i = 0; i < form.phone2.value.length; i++) {
				ch = form.phone2.value.charAt(i);
				for (j = 0; j < validi.length; j++)
					if (ch == validi.charAt(j))
						break;
				if (j == validi.length) {
					alert("The phone field must contain numbers, - and / only.");
					form.phone2.select();
					form.phone2.focus();
					return false;
				}
			}
	}
	if (form.email.value.indexOf('@', 0) == -1 || form.email.value.indexOf('.', 0) == -1) {
		alert("The e-mail address you entered is not valid. Please enter a valid e-mail address.");
		form.email.select();
		form.email.focus();
		return false;
	}
	if (form.email2.value.indexOf('@', 0) == -1 || form.email2.value.indexOf('.', 0) == -1) {
		alert("The e-mail address you entered is not valid. Please enter a valid e-mail address.");
		form.email2.select();
		form.email2.focus();
		return false;
	}
	if (form.email.value == "" ) {
		alert("Please enter a valid e-mail address.");
		form.email.focus();
		return false;
	}
	if (form.email2.value == "") {
		alert("Please confirm the e-mail address you entered.");
		form.email2.focus();
		return false;
	}
	if (form.email.value != form.email2.value) {
		alert("E-mail adresses don't match, please retype them.");
		form.email.select();
		form.email.focus();
		return false;
	}
	if (form.fee.value == "none") {
		alert("Please select a type of registration fee.");
		form.fee.focus();
		return false;
	}
	return true;
}