var letters = "qwertzuiopasdfghjklyxcvbnm_-~QWERTZUIOPASDFGHJKLYXCVBNM";
var symbols = letters + ".@1234567890";
var characters = "QWERTZUIOPASDFGHJKLYXCVBNM1234567890";
var errmsg = "";
var w;
function setStartValues() {
	for (var i = 0; i < frm.length; i++) {
		if (frm[i].startvalue != null) {
			var s_value = frm[i].startvalue;
			var type_name = frm[i].type;
			if (type_name == "text") {
				frm[i].value = s_value;
			}
			if (type_name == "select-one") {
				for (var j = 0; j < frm[i].length; j++) {
					if (frm[i][j].value == s_value) {
						frm[i][j].selected = true;
					}
				}
			}
			if (type_name == "checkbox") {
				frm[i].checked = (s_value != "0");
			}
		}
	}
}
function setValue(objName, s_value) {
	s_value = trim(s_value);
	if (s_value != "") {
		frm[objName].startvalue = s_value;
	}
}
function ltrim(s_string) {
	var work = s_string;
	while (work.indexOf(" ") == 0) {
		work = work.substring(1, work.length);
	}
	return work;
}
function rtrim(s_string) {
	var work = s_string;
	while ((work.lastIndexOf(" ") == work.length - 1) && (work != "")) {
		work = work.substring(0, work.length - 1);
	}
	return work;
}
function trim(s_string) {
	return ltrim(rtrim(s_string));
}
function checkPlate(el) {
	errmsg="";
	var result = true;
	if (el.value.length) {
		for (var i = 0; i < el.value.length; i++) {
			if (characters.indexOf(el.value.charAt(i)) == -1) {
				result = false;
				break;
			}
		}
	}
	if (result == false) {
		errmsg = "Caratteri non validi\n";
	}
	if (errmsg.length) {
		alert(errmsg);
		errmsg="";
		el.focus();
	}
	return result;
}
function checkEmail() {
	var result = true;
	var el = document.frm["Email"];
	if (el.value.length) {
		for (var i = 0; i < el.value.length; i++) {
			if (symbols.indexOf(el.value.charAt(i)) == -1) {
				result = false;
				break;
			}
		}
		if (el.value.indexOf("@") < 0) {
			result = false;
		}
		if (el.value.indexOf(".") < 0) {
			result = false;
		}
		var s = el.value.substring(el.value.indexOf("@"), el.value.length);
		if (s.indexOf(".") < 0) {
			result = false;
		}
		var j = 0;
		for (var i = 0; i < el.value.length; i++) {
			if ("@".indexOf(el.value.charAt(i)) >= 0) {
				if (j++ > 1) {
					break;
				}
			}
		}
		if (j > 1) {
			result = false;
		}
		var isSign = true;
		for (var i = 0; i < el.value.length; i++) {
			if (".@".indexOf(el.value.charAt(i)) > -1) {
				if (isSign) {
					break;
				} else {
					isSign = true;
				}
			} else {
				isSign = false;
			}
		}
		if (isSign) {
			result = false;
		}
	}
	if (result == false) {
		el.className = "inp_err";
	}
	if (result == false) {
		errmsg += "Invalid Email format\n";
	}
 //document.all.EMailErr.innerText = (err.length ? err : "");
	return result;
}
function checkMinLen(el) {
	var result = true;
	if ((el.refer_name != null) && (el.refer_len != null) && (el.refer_value != null) && (el.refer_value.indexOf(";" + document.frm[el.refer_name].value + ";") != -1)) {
		if ((el.refer_len != null) && ((el.type == "text") || (el.type == "password")) && (el.value.length > 0) && (el.value.length < el.refer_len)) {
			result = false;
		}
		if (result == false) {
			el.className = "inp_err";
		}
		if (el.label == null){
			el.label = el.name; 
		}
//		errmsg += (result ? "" : "Lunghezza < " + el.refer_len + " " + el.name + "\n");
		errmsg += (result ? "" : "Lunghezza < " + el.refer_len + " " + el.label + "\n");
	} else {
		if ((el.minlen != null) && ((el.type == "text") || (el.type == "password")) && (el.value.length > 0) && (el.value.length < el.minlen)) {
			result = false;
		}
		if (result == false) {
			el.className = "inp_err";
		}
		if (el.label == null){
			el.label = el.name; 
		}
//		errmsg += (result ? "" : "Lunghezza < " + el.minlen + " " + el.name + "\n");
		errmsg += (result ? "" : el.label + ": deve essere di almeno "+ el.minlen +" caratteri\n");
	}
	return result;
}
function checkMaxLen(el) {
	var result = true;

	if ((el.maxlen != null) && ((el.type == "text") || (el.type == "password")) && (el.value.length > 0) && (el.value.length > el.maxlen)) {
		result = false;
	}
	if (result == false) {
		el.className = "inp_err";
	}
	if (el.label == null){
		el.label = el.name; 
	}
//	errmsg += (result ? "" : "Lunghezza > " + el.maxlen + " " + el.name + "\n");
	errmsg += (result ? "" : el.label +": non deve superare " + el.maxlen + " caratteri\n");
	return result;
}
function checkDateOnly(el) {
	var result = true;
	if (el.dateonly != null && el.value.length > 0) {
		if (el.type == "text") {
			if (el.value.length < 10 || el.value.length > 10  ||
				"/".indexOf(el.value.charAt(2)) < 0 || "/".indexOf(el.value.charAt(5)) < 0){
				result = false;
			}
			else {
				var day = el.value.substring(0, 2);
				var month = el.value.substring(3, 5);
				var year = el.value.substring(6, 10);
				for (var i = 0; i < day.length; i++) {
					if ("0123456789".indexOf(day.charAt(i)) < 0) {
						result = false;
						break;
					}
				}
				if (result){
					for (var i = 0; i < month.length; i++) {
						if ("0123456789".indexOf(month.charAt(i)) < 0) {
							result = false;
							break;
						}
					}
				}
				if (result){
					for (var i = 0; i < year.length; i++) {
						if ("0123456789".indexOf(year.charAt(i)) < 0) {
							result = false;
							break;
						}
					}
				}
			}
			if (result == false) {
				el.className = "inp_err";
			}
		}
	}
	if (el.label == null){
		el.label = el.name; 
	}
//	errmsg += (result ? "" : "Ins. formato data corretto: (GG/MM/AAAA) " + el.name + "\n");
	errmsg += (result ? "" : "Ins. formato data corretto: (GG/MM/AAAA) " + el.label + "\n");
	return result;
}
function checkNumOnly(el) {
	var result = true;
	if (el.numonly != null) {
		if (el.type == "text") {
			for (var i = 0; i < el.value.length; i++) {
				if ("0123456789".indexOf(el.value.charAt(i)) < 0) {
					result = false;
					break;
				}
			}
		}
	}
	if (result == false) {
		el.className = "inp_err";
	}
	if (el.label == null){
		el.label = el.name; 
	}
//	errmsg += (result ? "" : "Inserire solo numeri in " + el.name + "\n");
	errmsg += (result ? "" : "Inserire solo numeri in " + el.label + "\n");
	return false;
}
function checkRequired(el) {
	var result = true;
	if (((el.required != null) && (el.required)) || ((el.refer_name != null) && (el.refer_value != null) && (document.frm[el.refer_name].value == el.refer_value))) {
		var type_name = el.type;
		if (type_name == "text" || type_name == "hidden" || type_name == "password" || type_name == "textarea") {
			var s = trim(el.value);
			el.className = (s.length == 0 ? "required" : "");
			result = (s.length == 0 ? false : result);
		}
		if (type_name == "select-one") {
			for (var j = 0; j < el.length; j++) {
				if ((el[j].selected) && ((el[j].value == null) || (el[j].value.length == 0))) {
					result = false;
					break;
				}
			}
		}
		if (type_name == "checkbox") {
			result = (el.checked ? result : false);
		}
	}
	if (el.label == null){
		el.label = el.name; 
	}
//	errmsg += (result ? "" : "Inserire " + el.name + "\n");
	errmsg += (result ? "" : "Inserire " + el.label + "\n");
	return result;
}

function checkVerify(el) {
	var result = true;
	if (el.verify != null && el.value.length > 0) {
		var elVerify = el.verify; 
		if (el.type == "text" || el.type == "password") {
			if (elVerify.value != el.value){
				result = false;
			}
		}
	}
	if (result == false) {
		el.className = "inp_err";
	}
	if (el.label == null){
		el.label = el.name; 
	}
//	errmsg += (result ? "" : "Inserire solo numeri in " + el.name + "\n");
	errmsg += (result ? "" : el.label + " e verifica "+el.label+" non coincidono\n");
	return result;
}
function checkPair(el) {
	var result = true;
	var elPair = el;
	if (el.pair != null && el.checked) {
		elPair = el.pair; 
		if (elPair.type == "text") {
			if (elPair.value == null || elPair.value <= 0){
				result = false;
			}
		}
	}
	if (result == false) {
		el.className = "inp_err";
	}
	if (el.label == null){
		el.label = el.name; 
	}
	
	if (elPair.label == null){
		elPair.label = elPair.name; 
	}
//	errmsg += (result ? "" : "Inserire solo numeri in " + el.name + "\n");
	errmsg += (result ? "" : el.label + " richiede la valorizzazione di "+elPair.label+"\n");
	return result;
}

function checkAll(sub) {
	errmsg = "";
	var f = document.frm;
	for (var i = 0; i < f.length; i++) {
		if ((f[i].value != null) && ((f[i].type == "text") || (f[i].type == "textarea") ||
				(f[i].type == "select-one") || (f[i].type == "checkbox"))) {
			f[i].value = trim(f[i].value);
			checkRequired(f[i]);
			if (sub != null) {
				checkNumOnly(f[i]);
			}
			if (sub != null) {
				checkMinLen(f[i]);
			}
			if (sub != null) {
				checkMaxLen(f[i]);
			}
			if (sub != null && (f[i].type == "text")) {
				checkDateOnly(f[i]);
			}
			if (sub != null) {
				checkVerify(f[i]);
			}
			if (sub != null && (f[i].type == "checkbox")) {
				checkPair(f[i]);
			}
		}
	}
	if (sub != null) {

		if (errmsg.length) {
			alert(errmsg);
		} else {
			document.frm["fn"].value = "1";
			document.frm.submit();
		}
	}
	return;
}
function doSend(mode) {
	errmsg = "";
	if (mode == null) {
		checkAll(0);
	} else {
		if (errmsg.length) {
			alert(errmsg);
		} else {
			document.frm["fn"].value = "checkUser";
			document.frm.submit();
		}
	}
}
function alertWin(err) {
	if ((navigator.appName.toLowerCase() == "netscape") & (navigator.appVersion.substring(0, 1) == "4")) {
		wclose();
		w = window.open("", "msg", "left=" + (screen.width / 2 - 100) + ", top=" + (screen.height / 2 - 50) + ", resizable=1, width=200, height=100, scrollbars=0, status=0, menubar=0, directories=0, toolbar=0");
		w.opener = self;
		w.document.clear();
		w.document.writeln("<center><font color=#ff0000>\n");
		w.document.writeln(err);
		w.document.writeln("</font></center>\n");
		window.onfocus = wclose;
		w.focus();
	} else {
		window.showModalDialog("msgwin.html", errmsg, "center=1; help=0; dialogWidth=400px; dialogHeight=300px;");
	}
}
function wclose() {
	if (w != null) {
		w.close();
		w = null;
		window.onfocus = null;
	}
}
function doEmpty() {
}
window.onerror = doEmpty;

function saveValue() {
	frm.save.value="1";
	frm.submit();
}
function popup(sUrl, sPop, sType) {
	newWindow=window.open(sUrl +".jsp?type=" + sType,sPop,"width=700,height=500,scrollbars=yes");
}
