function controllaInverso(parametro)
{
	var numberForms = parametro.length-1;
	var formIndex;
	var campoAttuale;
	var valoreAttuale;
	prosegui=1;
	messaggio="ok";
	for (formIndex = numberForms; formIndex >= 0; formIndex--)
	{
		campoAttuale=parametro[formIndex].name;
		valoreAttuale=parametro[formIndex].value;
		if (campoAttuale.indexOf("_text")>=1) {if (!nonVuoto(valoreAttuale)) {messaggio="Il valore del campo "+campoAttuale.substr(0,campoAttuale.length-5)+" non può essere vuoto.";}}
		if (campoAttuale.indexOf("_mail")>=1) {if (!ControllaMail(valoreAttuale)) {messaggio="Il valore del campo "+campoAttuale.substr(0,campoAttuale.length-5)+" non è corretto.";}}
		if (campoAttuale.indexOf("_login")>=1) {if (!ControllaLoginConLunghezzaMin(valoreAttuale,6)) {messaggio="Il valore del campo "+campoAttuale.substr(0,campoAttuale.length-6)+" non è corretto.";}}
		if (campoAttuale.indexOf("_password")>=1) {if (!ControllaPasswordConLunghezzaMin(valoreAttuale,6)) {messaggio="Il valore del campo "+campoAttuale.substr(0,campoAttuale.length-9)+" non è corretto.";}}
		if (campoAttuale.indexOf("_numero")>=1) {if (!ControllaNumero(valoreAttuale)) {messaggio="Il valore del campo "+campoAttuale.substr(0,campoAttuale.length-7)+" deve essere numerico.";}}
		if (campoAttuale.indexOf("_cap")>=1) {if (!ControllaCap(valoreAttuale)) {messaggio="Il valore del campo "+campoAttuale.substr(0,campoAttuale.length-4)+" non e' corretto.";}}
		if (campoAttuale.indexOf("_data")>=1) {if (!verificaData(campoAttuale,parametro)) {messaggio="Il valore del campo "+campoAttuale.substr(7,campoAttuale.length-12)+" non e' corretto.";}}
		
		if (campoAttuale.indexOf("abstract")>=0) {if (!verificaLunghezza(valoreAttuale,1980)) {messaggio="L'abstract e' troppo lungo.";}}
		if (campoAttuale.indexOf("descrizione")>=0) {if (!verificaLunghezza(valoreAttuale,3980)) {messaggio="La descrizione e' troppo lunga.";}}
		if (campoAttuale.indexOf("folder")>=0) {if (!verificaLunghezza(valoreAttuale,120)) {messaggio="Il folder e' troppo lungo.";}}
		if (campoAttuale.indexOf("metaKeywords")>=0) {if (!verificaLunghezza(valoreAttuale,150)) {messaggio="La metaKeywords e' troppo lunga.";}}
		if (campoAttuale.indexOf("nome")>=0) {if (!verificaLunghezza(valoreAttuale,240)) {messaggio="Il nome e' troppo lungo.";}}
		if (campoAttuale.indexOf("nomePagina")>=0) {if (!verificaLunghezza(valoreAttuale,512)) {messaggio="Il nomePagina e' troppo lungo.";}}
		if (campoAttuale.indexOf("sottotitolo")>=0) {if (!verificaLunghezza(valoreAttuale,1980)) {messaggio="Il sottotitolo e' troppo lungo.";}}
		if (campoAttuale.indexOf("tags")>=0) {if (!verificaLunghezza(valoreAttuale,150)) {messaggio="Le tags sono troppo lunghe.";}}
		if (campoAttuale.indexOf("testoAlternativoIconaPiccola")>=0) {if (!verificaLunghezza(valoreAttuale,128)) {messaggio="IL testoAlternativoIconaPiccola è troppo lungo.";}}
		if (campoAttuale.indexOf("testoAlternativoIconaMedia")>=0) {if (!verificaLunghezza(valoreAttuale,128)) {messaggio="IL testoAlternativoIconaMedia è troppo lungo.";}}
		if (campoAttuale.indexOf("testoAlternativoIconaGrande")>=0) {if (!verificaLunghezza(valoreAttuale,128)) {messaggio="IL testoAlternativoIconaGrande è troppo lungo.";}}
		if (campoAttuale.indexOf("testoAlternativoImmagine")>=0) {if (!verificaLunghezza(valoreAttuale,128)) {messaggio="IL testoAlternativoImmagine è troppo lungo.";}}
		if (campoAttuale.indexOf("testoAlternativoIcona")>=0) {if (!verificaLunghezza(valoreAttuale,128)) {messaggio="IL testoAlternativoIcona è troppo lungo.";}}
		if (campoAttuale.indexOf("testoAlternativoImmagine")>=0) {if (!verificaLunghezza(valoreAttuale,128)) {messaggio="IL testoAlternativoImmagine è troppo lungo.";}}
		if (campoAttuale.indexOf("testoAlternativoImmaginePiccola")>=0) {if (!verificaLunghezza(valoreAttuale,128)) {messaggio="IL testoAlternativoImmaginePiccola è troppo lungo.";}}
		if (campoAttuale.indexOf("testoAlternativoImmagineGrande")>=0) {if (!verificaLunghezza(valoreAttuale,128)) {messaggio="IL testoAlternativoImmagineGrande è troppo lungo.";}}
		if (campoAttuale.indexOf("metaDescription")>=0) {if (!verificaLunghezza(valoreAttuale,150)) {messaggio="La metaDescription troppo lunga.";}}
		
	}
	
	return messaggio;
}


function verificaLunghezza(parametro,lunghezzaMax)
{
	// la lunghezza massima e' il valore del lunghezza
	if (lunghezzaMax < parametro.length)
	{return false;}
	else
		{return true;}
}


function nonVuoto(parametro)
{
	// testa solamente che il campo non sia vuoto
	if (parametro != "") 
	{return true;}
	else
	{return false;}
} 

function ControllaMail(parametro)
{
	// valida la sintassi di un indirizzao di mail: xxxx@xxxx.xxx
	// cartteri + @ + caratteri (almeno 2) + . + caratteri (almeno 2)
	filtro = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/;
	if (filtro.test(parametro)) 
	{return true;}
	else
	{return false;}
}

function ControllaLogin(parametro)
{
	// valida la login
	// i caratteri ammessi sono solo lettere (minuscole e maiuscole) e numeri
	filtro = /^([a-zA-Z0-9])+$/;
	if (filtro.test(parametro)) 
	{return true;}
	else
	{return false;}
}

function ControllaLoginConLunghezzaMin(parametro,parametro2)
{
	// valida la login
	// i caratteri ammessi sono solo lettere (minuscole e maiuscole) e numeri
	// la lunghezza minima e' il valore del parametro2
	if (parametro.length < parametro2)
	{return false;}
	else
	{
		filtro = /^([a-zA-Z0-9])+$/;
		if (filtro.test(parametro)) 
		{return true;}
		else
		{return false;}
	}
}

function ControllaPassword(parametro)
{
	// valida la password
	// i caratteri ammessi sono solo lettere (minuscole e maiuscole) e numeri
	filtro = /^([a-zA-Z0-9\-])+$/;
	if (filtro.test(parametro)) 
	{return true;}
	else
	{return false;}
}

function ControllaPasswordConLunghezzaMin(parametro,parametro2)
{
	// valida la password
	// i caratteri ammessi sono solo lettere (minuscole e maiuscole) e numeri
	// la lunghezza minima e' il valore del parametro2
	if (parametro.length < parametro2)
	{return false;}
	else
	{
		//filtro = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/;
		filtro = /^([a-zA-Z0-9\-])+$/;
		if (filtro.test(parametro)) 
		{return true;}
		else
		{return false;}
	}
}

function ControllaNumero(parametro)
{
	filtro = /^([0-9_-])+$/;
	if (filtro.test(parametro)) 
	{return true;}
	else
	{return false;}
}
function ControllaTitle(parametro)
{
	filtro = /^([a-zA-Z0-9_-])+$/;
	if (filtro.test(parametro)) 
	{return true;}
	else
	{return false;}
}

function ControllaNumeroConLunghezzaMin(parametro,parametro2)
{
	// valida che il campo contenga solo numeri
	// la lunghezza minima e' il valore del parametro2
	if (parametro.length < parametro2)
	{return false;}
	else
	{
		filtro = /^([0-9])+$/;
		if (filtro.test(parametro)) 
		{return true;}
		else
		{return false;}
	}
}

function ControllaCap(parametro)
{
	// valida che il campo contenga solo numeri
	// la lunghezza minima e' il valore del parametro2
	if (parametro.length != 5)
	{return false;}
	else
	{
		filtro = /^([0-9])+$/;
		if (filtro.test(parametro)) 
		{return true;}
		else
		{return false;}
	}
}


function verificaData(oggettoCampo,oggettoForm)
{
	//	dal campo parametro ricavo i nomi dei campi che creno la data
	giornoNome=oggettoCampo.substr(0,2);
	meseNome=oggettoCampo.substr(2,2);
	annoNome=oggettoCampo.substr(4,2);
	
	var numberForms = oggettoForm.length-1;
	var formIndex;
	var campoAttuale;
	var valoreAttuale;

	for (formIndex = numberForms; formIndex >= 0; formIndex--)
	{
		campoAttuale=oggettoForm[formIndex].name;
		valoreAttuale=oggettoForm[formIndex].value;
		if (campoAttuale==giornoNome) {d=valoreAttuale;}
		if (campoAttuale==meseNome) {m=valoreAttuale;}
		if (campoAttuale==annoNome) {anno=valoreAttuale;}
	}
	
	if (!ControllaNumero(d)) {return false;}
	if (!ControllaNumero(m)) {return false;}
	if (!ControllaNumero(anno)) {return false;}
	
	return verificaCorrettezzaData(d+"-"+m+"-"+anno);
}


function verificaCorrettezzaData(parametro)
{
	// il giono e' il primo parametro a sinistra di "-"
	primoEl=parametro.indexOf("-");
	if (primoEl<1)  {return false;}
	secondoEl=parametro.lastIndexOf("-");
	if (secondoEl<=primoEl) {return false;}
	if (secondoEl+1 > parametro.length) {return false;}
	
	// la data ha la sintassi corretta
	
	d=parametro.substr(0,primoEl);
	m=parametro.substr(primoEl+1,secondoEl-primoEl-1);
	anno=parametro.substr(secondoEl+1,parametro.length-secondoEl);

	if (d<1) {return false;}
	if (d>31) {return false;}
	if (m<1) {return false;}
	if (m>12) {return false;}
	
	if ((m==4)||(m==6)||(m==9)||(m==11)) {if (d>30){return false;}}
	if (m==2)
	{
		if ((anno % 400 == 0) || (anno % 4 == 0 && anno % 100 != 0))
			{
				if (d>29)
				{return false;}
			}
		else
			{
				if (d>28)
				{return false;}
			}				
	}
	return true;
}