/*--------------------------------------------------------------------
	funzioni di controllo su stringhe
	---------------------------------
	Copyright (c) 2002-2003 by Emanuele Lanza
	http://www.eelle.net
  --------------------------------------------------------------------*/

function MyTrim(myObj)
{
	//	elimina spazi iniziali e finali di una stringa
	
	var i;
	
	for (i = 0; i < myObj.value.length; i++)	// elimina gli spazi iniziali
		if (myObj.value.charAt(i) != ' ')
			break;
	
	if (i)
		myObj.value = myObj.value.substr(i);
	
	if (myObj.value.length > 0)
	{
		for (i = myObj.value.length - 1; i >= 0; i--)	// elimina gli spazi finali
			if (myObj.value.charAt(i) != ' ')
				break;
		
		if (i >= 0)
			myObj.value = myObj.value.substr(0, i +1);
	}
}

function CtrlStringaValidi(stringa, lmin, lmax, maschera)
{
	//	controlla che una stringa sia formata solo dai caratteri specificati
		
	var lung = stringa.length;
	var i = 0;
	var esito = true;
	
	if (lung < lmin || lung > lmax)
		return false;
	
	while (i < lung)
	{
		if (maschera.indexOf(stringa.charAt(i)) == -1)
		{
			esito = false;
			break;
		}
		else
			i++;
	}
	return(esito);
}

function ControllaData(data, cifreanno)
{
	//	controlla che la stringa sia una data nel formato dd/mm/yy o dd/mm/yyyy
	var lmax = 6 + cifreanno;
	
	if (!CtrlStringaValidi(data, 1, lmax, "0123456789/"))
		return false;
		
	var prima_pos = data.indexOf("/");
	var ultima_pos = data.lastIndexOf("/");
	if (prima_pos == -1 || prima_pos == ultima_pos)
		return false;
	
	var parti = data.split("/");	// divide nei componenti
	
	var anno = Number(parti[2]);
	if (parti[2].length != cifreanno)
		return false;	// errato numero di cifre per l'anno
	if (anno < 0 || anno > 9999)
		return false;

	var mese = Number(parti[1]);
	if (mese < 1 || mese > 12)
		return false;
	
	var giorno = Number(parti[0]);
	var maxgiorno = 31;
	
	// controlla in funzione di anno e mese
	if (mese == 4 || mese == 6 || mese == 9 || mese == 11)
		maxgiorno = 30;
	else
	if (mese == 2)
	{
		if (anno % 4 > 0)
			maxgiorno =28;
		else
		if (anno % 100 == 0 && anno % 400 > 0)
			maxgiorno = 28;
		else
			maxgiorno = 29;
	}
	
	if (giorno < 1 || giorno > maxgiorno)
		return false;	// giorno non valido
		
	return true;
}

function ControllaMail(mail)
{
	//	controlla che una stringa abbia il formato di una e-mail
	
	var lung = mail.length;
	
	var prima_pos = mail.indexOf("@");
	var ultima_pos = mail.lastIndexOf("@");
	
	if (lung < 5 || lung > 50 || prima_pos == -1 || prima_pos != ultima_pos)
		return false;
	
	mail = mail.toLowerCase();
	
	var nome = mail.substr(0, prima_pos);
	var dominio = mail.substr(prima_pos + 1, lung - prima_pos - 1);
	
	if (!CtrlStringaValidi(nome, 1, 48, "0123456789.abcdefghkijlmnopqrstuvwxyz_"))
		return false;
		
	lung = nome.length;
	if (nome.charAt(0) == '_' || nome.charAt(0) == '.' || nome.charAt(lung - 1) == '_' || nome.charAt(lung - 1) == '.')			
		return false;
	
	if (!CtrlStringaValidi(dominio, 3, 46, "0123456789.abcdefghkijlmnopqrstuvwxyz-"))			
		return false;

	lung = dominio.length;
	if (dominio.charAt(0) == '.' || dominio.charAt(lung - 1) == '.')			
		return false;
	prima_pos = dominio.indexOf(".");
	if (prima_pos == -1)			
		return false;
	
	return true;
}
