/******************************************************************************
* htmlform.js                                                                 *
*                                                                             *
* Copyright 2001 by Giovanni Toffoli                                          *
* Web address: www.linkroma.it                                                *
* Last update: January 24, 2001.                                              *
*                                                                             *
* Provides basic functions for performing checks and conversions on  ..       *
******************************************************************************/

// 08-05-01 modificata DateCheckEu 
// aggiunte due variabili per assegnare il valore minimo e massimo per l'anno

//
function MsgInvalid (nome)
{
	alert("Non è valido il valore del campo '" +  nome + "'");
	return false;
}

// riporta true (numero ok) o false (numero invalido)
function NumberCheck (numstring)
{
	var n = parseInt(numstring);
	if ((isNaN(n)) || (n < 0))
		return false;
	else
		return true;
}

// riporta vero se n rappresenta un numero compreso tra min e max
function InRange (n, min, max)
{
	if (isNaN (n))
		return false;
	else
		{
		n = parseInt(n);
		return ((n >= min) && (n <= max))
		}
}

// riporta true (data ok) o false (data invalida)
function DateCheckEu (datestring)
{
	var separators = "./-";
	var sep;
	var i, n, istart, istop;
	var strdd, strmm, stryy;
	n = datestring.length;
	for (i = 0; (i < 3); i++)
	{
		sep = separators.charAt(i);
		istart = 0;
		istop = datestring.indexOf(sep, istart);
		if (istop > istart)
		{
			strdd = datestring.substring(istart, istop);
			if (! InRange (strdd, 1, 31)) 
				return false;
			istart = istop+1;
			istop = datestring.indexOf(sep, istart);
			if (istop > istart)
			{
				strmm = datestring.substring(istart, istop);
				if (! InRange (strmm, 1, 12)) 
					return false;
				istart = istop+1;
				istop = n;
				if (istop > istart)
				{
					stryy = datestring.substring(istart, istop);			
					return InRange (stryy, 1890, 2099)
						
				}
			}
		}
	}
	return false;
}

function somethingChanged (control)
{
	control.form.evento.value = "refresh"
	control.form.submit();
}

function DateChanged (control)
{
	var datestring = control.value;
	var ok = (datestring == "") || DateCheckEu(datestring);
	if (ok)
		return true;
	else
		return MsgInvalid (control.name);
}

function NumberChanged (control)
{
	var numstring = control.value;
	var ok = (numstring == "") || NumberCheck(numstring);
	if (ok)
		return true;
	else
		return MsgInvalid (control.name);
}

function searchReset (control)
{
	form = control.form
	elements = form.elements
	for (i = 0; i < elements.length; i++) {
		type = elements[i].type
		if ((type == "text") || (type == "select-one"))  {
			elements[i].value = ""
		}
	}
	somethingChanged (control)
}

function searchSubmit (control)
{
	control.form.modo.value = "risultati"
	control.form.submit();
}
