function checkField(fld, nome)
{
// funz.ausiliaria per notNull
errors="";	
nome=nome.replace(/\[|\]/gi,"");
if (fld.type.indexOf('text')>-1 || fld.type=='password' || fld.type=='hidden')
		{ if (fld.value=='') { errors += 'Compilare il campo '+nome+'.\n'; fld.focus(); } }
if (fld.type.indexOf('select')>-1)
		{ 
		n=(fld.type=='select-multiple')? 0 : 1;
		if (fld.selectedIndex<n) { errors += 'Eseguire una scelta su '+nome+'.\n'; fld.focus(); } 
		}
if (fld.type=='checkbox' && !fld.checked) errors += 'Selezionare la casella '+nome+'.\n'; 
return errors;
}

function notNull()
{ 
// vrs. 4.0 18-4-2004 con tre varianti;
// 1: nessun argomento, vengono presi tutti i nomi dei campi del form;
// 2: sequenza di argomenti stringa, vengono presi solo i campi indicati col loro vero nome;
// 3: oggetto array {prop:valore, prop:valore...}: le propriet specificano i campi da prendere, i valori
//    indicano i nomi da usare nel messaggio di avviso
  errors=''; 
  nArg=notNull.arguments.length;
  if (nArg==0) 
  	{
	for (var i in document.forms[0].elements)
		{ fld=document.forms[0].elements[i]; errors+=checkField(fld, fld.name); }
	}
  else if (nArg==1 && !notNull.arguments[0].length) 
  	{ 
	for (var i in notNull.arguments[0])
		{ fld=document.forms[0].elements[i]; errors+=checkField(fld, notNull.arguments[0][i]); }
	}
  else 
  	{
	for (var i=0; i<nArg; i++)
		{ fld=document.forms[0].elements[notNull.arguments[i]]; errors+=checkField(fld, fld.name); }
	}
  if (errors) alert (errors);
  return (errors=='');
}

function MaxLen(c,n)
{
if (c.value.length>n)
	{ 
	alert("Non inserire pi di "+n+" caratteri.");
	c.value=c.value.substring(0,n);
	return false;
	}
else return true;	
}

function IsNum(v)
{ if (v.value && isNaN(v.value))
	{
	alert("Inserire solo numeri.");
	v.value="";
	v.focus();
	return false;
	}
 else return true;
}

function IsTime(c)
{
c.value=c.value.replace("\.",":");
re = /(\d+):(\d+)/;
tokens=c.value.match(re);
if (!tokens || tokens.length<2)
	{
	alert("Ora errata o incompleta.\nInserire orari in un formato standard.");
	c.value="";
	}
}

function IsDate(c)
{
valore=c.value;
re = /(\d+)[-\.\/](\d+)[-\.\/](\d+)/;
tokens=valore.match(re);
if (!tokens || tokens.length<3)
	{
	alert("Data errata o incompleta.\nInserire date in un formato standard.");
	c.value="";
	}
}

function SetDate(id)
{
items=new Array("A","M","G");
f=document.forms[0];
data=f.elements["Data"+id]
data.value="";
ok=true;
for (var i in items)
	{
	x=f.elements[items[i]+id].value;
	if (x) data.value+=x+"-"
	else ok=false;
	}
if (!ok) data.value="";
else data.value=data.value.substring(0,data.value.length-1);
}


function SetUsrPwd(f)
{
var re=new RegExp("/s| ","g");
if (f.user.value=="")  {
    f.user.value=(f.Cognome.value.substring(0,6)).toLowerCase();
    f.user.value=f.user.value.replace(re, "");
    f.pwd.value=(f.Nome.value.toLowerCase()).substring(0,3)+Math.round(Math.random()*999);
    f.pwd.value=f.pwd.value.replace(re, "");
	}
}


function Comma2Dot(c)
{
re=/,/;
c.value=c.value.replace(re,".");
return IsNum(c);
}

function IsInt(c)
{
if (IsNum(c)) { c.value=parseInt(c.value*1); return true; }
else return false;
}


function Between(v,min,max)
{
if (IsNum(v) && (parseInt(v.value)<min || parseInt(v.value)>max))
	{
	alert("Dato errato. Deve essere compreso tra "+min+" e "+max+".");
	v.value=min;
	return false;
	}
else return true;
}


function IsEmail(c)
{
c.value=c.value.toLowerCase();
var rex=new RegExp("^[\\w\\.=-]+@[\\w\\.-]+\\.[a-z]{2,4}$");
if (!rex.test(c.value))
        {
		alert("Non è un indirizzo e-mail valido");
		c.value="";
//		c.focus();
		}
}

function Capitalize(x,each)
{ 
if (each)
	{
	str="";
	var items=x.split(" ");
	for (var i in items) str += " "+items[i].substring(0,1).toUpperCase() + 
			items[i].substring(1,items[i].length).toLowerCase();
	return str.substr(1);
	}
else return x.substring(0,1).toUpperCase()+x.substring(1,x.length).toLowerCase(); 
}

