var msg = "";

function PULLUP (obj, field)
{
	if (obj.selectedIndex == 0)
	{
		msg += "The field \"" + field + "\" is mandatory\n";
		return (false);
	}
	return (true); 
}

function TEXT (obj, field)
{
	if (obj.value == "")
	{
		msg += "The field \"" + field + "\" is mandatory\n";
		return (false);
	}
	return (true); 
}

function TEXT_PHONE_FAX (obj, field)
{
	if (obj.value == "")
	{
		msg += "The field \"" + field + "\" is mandatory\n";
		return (false);
	}
	var phone_fax_reg_expr = /^([0-9\ \+])+$/;
	if (! phone_fax_reg_expr.test (obj.value))
	{
		msg += "The field \"" + field + "\" contains no valid phone/fax number - Only digits, space and plus are accepted\n";
	 	return (false); 
	}
	return (true); 
}
 
function TEXT_EMAIL (obj, field)
{
	if (obj.value == "")
	{
		msg += "The field \"" + field + "\" is mandatory\n";
		return (false);
	}
	var mail_reg_expr = /^([A-Za-z0-9_\.\-])+\@(([a-zA-Z0-9\-]{1,})+\.)+([a-zA-Z0-9]{2,})+$/;
	if (! mail_reg_expr.test (obj.value))
	{
		msg += "The field \"" + field + "\" contains no valid email address\n";
	 	return (false); 
	}
	return (true); 
}

function TEXT_DATE (obj, field, year_yes)
{
	if (obj.value == "")
	{
		msg += "The field \"" + field + "\" is mandatory\n";
		return (false);
	}
	switch (year_yes)
	{
		case true:
			if (obj.value.length != 10)
			{
				msg += "The field \"" + field + "\" contains a wrong date (valid format is [dd/mm/yyyy])\n";
				return (false);
			}
			break;
		case false:
			if (obj.value.length != 5)
			{
				msg += "The field \"" + field + "\" contains a wrong date (valid format is [dd/mm])\n";
				return (false);
			}
			break;
		default:
			break;
	}
	return (true); 
}

function TEXT_TIME (obj, field)
{
	if (obj.value == "")
	{
		msg += "The field \"" + field + "\" is mandatory\n";
		return (false);
	}
	if (obj.value.length != 5)
	{
		msg += "The field \"" + field + "\" contains a wrong time (correct format is [hh:mm])\n";
		return (false);
	}
	return (true); 
}

function TEXT_INT (obj, field)
{
	if (obj.value == "")
	{
		msg += "The field \"" + field + "\" is mandatory\n";
		return (false);
	}
	var value = parseInt (obj.value, 10);
	if (isNaN (value))
	{
		msg += "The field \"" + field + "\" does not contain an integer number\n";
		return (false);
	}
	obj.value = value;
	return (true);
}

function TEXT_FLOAT (obj, field)
{
	if (obj.value == "")
	{
		msg += "The field \"" + field + "\" is mandatory\n";
		return (false);
	}
/*
	Sostituisco le eventuali virgole con il punto
*/
	var value = parseFloat (obj.value.replace (/,/, "."), 10);
	if (isNaN (value))
	{
		msg += "The field \"" + field + "\" does not contain a floating number\n";
		return (false);
	}
	obj.value = value;
	return (true); 
}

function TEXT_CODICE_FISCALE (obj, field)
{
	if (obj.value == "")
	{
		msg += "The field \"" + field + "\" is mandatory\n";
		return (false);
	}
	if (obj.value.length != 16)
	{
		msg += "The field \"" + field + "\" must be 16 chars long\n";
		return (false);
	}
	obj.value = obj.value.toUpperCase ();
	check_cf = /^[A-Z0-9]{16}$/;
	if (! check_cf.test (obj.value))
	{
		msg += "The field \"" + field + "\" must contains only letters and numbers\n";
		return (false);
	}
	set1 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	set2 = "ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ";
	setpari = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	setdisp = "BAKPLCQDREVOSFTGUHMINJWZYX";
	s = 0;
	for (i = 1; i <= 13; i += 2)
	{
		s += setpari.indexOf (set2.charAt (set1.indexOf (obj.value.charAt (i))));
	}
	for (i = 0; i <= 14; i += 2)
	{
		s += setdisp.indexOf (set2.charAt (set1.indexOf (obj.value.charAt (i))));
	}
	if (s%26 != obj.value.charCodeAt (15) - 'A'.charCodeAt (0))
	{
		msg += "The field \"" + field + "\" is invalid\n";
		return (false);
	}
	return (true); 
}

function TEXTAREA (obj, len, field)
{
	if (obj.value == "")
	{
		msg += "The field \"" + field + "\" is mandatory\n";
		return (false);
	}
	if (len != 0)
	{
		if (obj.value.length > len)
		{
			msg += "Too much chars onto field \"" + field + "\", max length " + len + " chars\n";
			return (false);
		}
	}
	return (true); 
}

function CHECKBOX (obj, field)
{
	var ok = false;

	if (obj.checked == true)
	{
		return (true); 
	}
	else
	{
		msg += "The field \"" + field + "\" is mandatory\n";
		return (false);		
	}
}

function RADIOBOX (obj, field)
{
	var ok = false;

	for (var i = 0; i < obj.length; i ++)
	{
		if (obj [i].checked == true)
		{
			ok = true;
		}
	}
	if (ok == false)
	{
		msg += "The field \"" + field + "\" is mandatory\n";
		return (false);		
	}
	return (true); 
}

