<!--
/*
FUNZIONI
Required:
	Da usare se il campo è richiesto; controlla se è valorizzato
Isnumber:
	Controlla se un campo contiene solo valori numerici
Caracter:
	Controlla che in un campo alfanumerico non ci siano caratteri speciali
Alfa:
	Controlla che in un campo alfabetico non ci siano numeri
Email:
	Controlla che il campo contenga formalmente una email (@,.,lunghezza>=8)
Val-##-##:
	Controlla che il capo contenga valori numerici compresi nell'intervallo 
	richiesto estremi inclusi (Es.: val-10-20)
Length-##-##:
	Controlla la lunghezza di un campo estremi inclusi (Es.: length-3-10).
	Per una lunghezza precisa usare gli stessi estremi (Es.: length-5-5)
	Inserendo solo un estremo, questo viene considerato come estremo inferiore (Es.: length-3)
*/

function controllaNews(form,param)
{
var msg='';
// scorre gli elementi del form al contrario
for (var i=form.length-1; i>-1 ;i--)
	{
	if(!(form.elements[i].type=='submit' || form.elements[i].type=='button' || form.elements[i].type=='reset'))
		{
		if(form.elements[i].type!='select-one'){form.elements[i].value=trim((form.elements[i].value).toLowerCase());}
		if(navigator.appName=='Microsoft Internet Explorer')
		{form.elements[i].style.backgroundColor='#FFFFFF';} 
		
		var valore="";
		if(form.elements[i].type=='select-one')
			{
			var id=form.elements[i].selectedIndex;
			valore=form.elements[i].options[id].value;
			}
		else{valore=form.elements[i].value;}
		var nome=form.elements[i].name;
		var tipo=param[nome];
		
		if(''+tipo!='undefined')
			{
			var tipi=tipo.split(',');		
			for(var t=1; t<tipi.length; t++)
				{
				var low=tipi[t].toLowerCase();
				if(low=='required'){msg=required(valore,form.elements[i],tipi[0])+msg;}
				else if (low=='isnumber'){msg=isNumber(valore,form.elements[i],tipi[0])+msg;}
				else if (low=='caracter'){msg=caracter(valore,form.elements[i],tipi[0])+msg;}
				else if (low=='alfa'){msg=alfa(valore,form.elements[i],tipi[0])+msg;}
				else if (low=='email'){msg=eMail(valore,form.elements[i],tipi[0])+msg;}
				else if (low.substr(0,3)=='val'){msg=val(valore,form.elements[i],tipi[0],low)+msg;}
				else if (low.substr(0,6)=='length'){msg=length(valore,form.elements[i],tipi[0],low)+msg;}
				} // fine for param 
			} // fine if undefined
		} // fine if elementi
	} // fine for elementi

//msg=msg+implement(form); // per implementare funzioni mancanti
if(msg!=''){alert('--- ATTENZIONE ---\n'+msg); return false;}
return true;
}

// ------- Funzione Colora Campi Con Errori ---------
function colora(elemento)
	{
	if (navigator.appName=='Microsoft Internet Explorer')
	{elemento.style.backgroundColor='CCCCCC';}
	elemento.focus();
	}
//---------------------------------------------------

// ------- Funzione Required ------------------------
function required(valore,elemento,nomecampo)
	{
	if(valore=='')
		{
		colora(elemento);
		return 'Il campo '+nomecampo.toUpperCase()+' è obbligatorio.\n';
		}
	return '';
	}
//---------------------------------------------------

// ------- Funzione Isnumber ------------------------
function isNumber(valore,elemento,nomecampo)
	{
	if(valore!='' && isNaN(valore))
		{
		colora(elemento);
		return 'Il campo '+nomecampo.toUpperCase()+' richiede solo valori numerici.\n';
		}
	return '';	
	}
//---------------------------------------------------

// ------- Funzione Alfa ------------------------
function alfa(valore,elemento,nomecampo)
	{
	if(valore!='')
		{
		for(var i=0; i<valore.length;i++)
			{		
			var let = valore.charAt(i,1);
			if(!isNaN(let) && let!=' ')
				{
				colora(elemento);
				return 'In '+nomecampo.toUpperCase()+' inserire solo caratteri alfabetici.\n';
				}
			}		
		}

	return '';
	}
//---------------------------------------------------

// ------- Funzione Email ------------------------
function eMail(valore,elemento,nomecampo)
	{
	if(valore!='' && (valore.indexOf('@')==-1 || valore.indexOf('.')==-1 || valore.length<8))
		{
		colora(elemento);
		return 'Inserire '+nomecampo.toUpperCase()+' correttamente.\n';
		}
	return '';
	}
//---------------------------------------------------

// ------- Funzione Caracter ------------------------
function caracter(valore,elemento,nomecampo)
	{
	var ritorno=caratteriNo(valore);
	if (ritorno==true)
		{
		colora(elemento);
		return 'Caratterere non valido nel campo '+nomecampo.toUpperCase()+'.\n';
		}
	return '';
	}

function caratteriNo(valore)
	{
	var carat = new Array();
	carat[0] = "\\"; 	carat[1] = "|";
	carat[2] = "!";		carat[3] = "{";
	carat[4] = "£";		carat[5] = "$";
	carat[6] = "%";		carat[7] = "&";
	carat[8] = "/";		carat[9] = "(";
	carat[10]= ")";		carat[11]= "=";
	carat[12]= "?";		carat[13]= "'";
	carat[14]= "^";		carat[15]= "ì";
	carat[16]= "é";		carat[17]= "è";
	carat[18]= "[";		carat[19]= "*";
	carat[20]= "+";		carat[21]= "]";
 	carat[22]= "ç";		carat[23]= "ò";
 	carat[24]= "@";		carat[25]= "°";
 	carat[26]= "à";		carat[27]= "#";
 	carat[28]= "§";		carat[29]= "ù";
 	carat[30]= ";";		carat[31]= ",";
 	carat[32]= "ù";		carat[33]= ":"; 
	carat[34]= ".";		carat[35]= "_";
	carat[36]= "-";		carat[37]= "}";
	carat[38]= "<";		carat[39]= ">";
	carat[40]= "\"";	//carat[41]= " ";
	
	var rimanda=false;
	for(var k=0;k<carat.length;k++)
		{
		var vedicarat = valore.indexOf(carat[k]);
		if(vedicarat!=-1) {rimanda=true; break;}
		}
	return rimanda;
	}
//---------------------------------------------------

// ------- Funzione Val ------------------------
function val(valore,elemento,nomecampo,parametro)
	{
	if(valore!='')
		{
		valore=parseInt(valore,10);
		var parList=parametro.split('-');
		var i=0;
		if(valore<parseInt(parList[1],10)){i++;}
		if(parList.length==3){if(valore>parseInt(parList[2],10)){i++;}}
		if(i!=0)
			{
			colora(elemento);
			return nomecampo.toUpperCase()+' non compreso tra '+parList[1]+' e '+parList[2]+'.\n';			
			}
		}
	return '';
	}
//---------------------------------------------------

// ------- Funzione Length ------------------------
function length(valore,elemento,nomecampo,parametro)
	{
	if(valore!='')
		{
		valore=parseInt(valore.length,10);
		var parList=parametro.split('-');
		var i=0;
		if(valore<parseInt(parList[1],10)){i++;}
		if(parList.length==3){if(valore>parseInt(parList[2],10)){i++;}}
		if(i!=0)
			{
			colora(elemento);
			return 'La lunghezza del campo '+nomecampo.toUpperCase()+' è errata.\n';						
			}
		}
	return '';
	}
//---------------------------------------------------

//-->
