// JavaScript Document

function checkForm(formname){
	for(i=0; i<formname.length; i++){
		// text, password, textarea
		if(formname.elements[i].type == "text" || formname.elements[i].type == "textarea" || formname.elements[i].type == "password"){
			if(formname.elements[i].getAttribute('required') == "1"){
				if(Trim(formname.elements[i].value) == ""){
					alert("Il campo '"+formname.elements[i].id+"' è vuoto.");
					formname.elements[i].focus();
					return false;
				}
			}
		}
		// select
		if(formname.elements[i].type == "select-one"){
			if(formname.elements[i].getAttribute('required') == "1"){
				if(formname.elements[i].options[formname.elements[i].selectedIndex].value == false){
					alert("Il menu '"+formname.elements[i].id+"' non è stato selezionato.");
					formname.elements[i].focus();
					return false;
				}
			}
		}
		// radiogroup
		if(formname.elements[i].type == "radio"){
			if(formname.elements[i].getAttribute('required') == "1"){
				radiochecked = 0;
				radiogroup = formname.elements[formname.elements[i].name];				
				for(j = 0; j < radiogroup.length; j++){
					if(radiogroup[j].checked){
						radiochecked = 1;
					}
				}
				if(radiochecked == 0) {
					alert("Nessun elemento del radiogroup '"+formname.elements[i].name+"' è stato selezionato.");
					return false;
				}
			}
		}
		// checkbox
		if(formname.elements[i].type == "checkbox"){
			if(formname.elements[i].getAttribute('required') == "1"){
				boxchecked = 0;
				var box = formname.getElementsByTagName("input");
				for(var a = 0; a < box.length; a++){
					if(box[a].type == "checkbox"){
						if(box[a].getAttribute('name') == formname.elements[i].getAttribute('name') && box[a].checked == true){
							boxchecked = 1;
						}
					}
				}
				if(boxchecked == 0) {
					alert("Nessun elemento del checkbox group è stato selezionato.");
					return false;
				}
			}
		}
		// Email
		if(formname.elements[i].name == "email"){
			if(formname.elements[i].getAttribute('required') == "1"){
				if(checkEmail(formname.elements[i].value) == false){
					alert("Il campo '"+formname.elements[i].id+"' non è un indirizzo di posta valido.");
					return false;
				}
			}
		}
	}
	return true;
}

function checkEmail(email){
	var str = Trim(email);
	var val_mail = "^([0-9a-zA-Z]+[-._+&])*[0-9a-zA-Z]+@([-0-9a-zA-Z]+[.])+[a-zA-Z]{2,6}$";
	var link_reg_exp = new RegExp(val_mail);
	if(str != ""){
		if(link_reg_exp.test(str)){
			return true;
		} else{
			return false;
		}
	}
}

function Trim(field) { 
	return field.replace(/\s+$|^\s+/g,""); 
}
