// questa funzione riassume tutti i controlli javascript della pagina di iscrizione.
// fa uso della tua funzione isnumeric, quindi se la cambi o la cambi di nome dimmelo o modificalo anche in questa!!

function controllaDatiScheda(string)
{
	// scheda progetto
		if (document.mainform.sch_cod_progetto.value.length <1)
	{	alert ("Attenzione: Scegliere un progetto!"); 
		document.mainform.sch_cod_progetto.focus();
		return false;
	}
	if (document.mainform.sch_titolo.value.length <1)
	{	alert ("Attenzione: Il Titolo non può essere vuoto!"); 
		document.mainform.sch_titolo.focus();
		return false;
	}
	if (document.mainform.sch_titolo.value.length + caratteriAggiuntivi(document.mainform.sch_titolo.value) > 75)
	{	alert ("Attenzione: Titolo troppo lungo: max 75 caratteri (gli apostrofi contano 6)!"); 
		document.mainform.sch_titolo.value = document.mainform.sch_titolo.value.substr(0,75 - caratteriAggiuntivi(document.mainform.sch_titolo.value) );
		document.mainform.sch_titolo.focus();
		return false;
	}
	if (! isSQLDate(document.mainform.sch_data_collaudo.value) )
	{	alert ("Attenzione: la data collaudo non è corretta"); 
		document.mainform.sch_data_collaudo.focus();
		return false;
	}
	if (document.mainform.sch_archivio_collaudo.value.length + caratteriAggiuntivi(document.mainform.sch_archivio_collaudo.value)> 33)
	{	alert ("Attenzione: Archivio collaudo troppo lungo: max 33 caratteri (gli apostrofi contano 6)!"); 
		document.mainform.sch_archivio_collaudo.value = document.mainform.sch_archivio_collaudo.value.substr(0,33 - caratteriAggiuntivi(document.mainform.sch_archivio_collaudo.value) );
		document.mainform.sch_archivio_collaudo.focus();
		return false;
	}
	if (! isnumeric(document.mainform.sch_tempo_previsto.value,2,':'))
	{	alert ("Attenzione: il tempo previsto non è corretto"); 
		document.mainform.sch_tempo_previsto.focus();
		return false;
	}	
	if (! isnumeric(document.mainform.sch_tempo_impiegato.value,2,':'))
	{	alert ("Attenzione: il tempo previsto non è corretto"); 
		document.mainform.sch_tempo_impiegato.focus();
		return false;
	}	
	if (! isSQLDate(document.mainform.sch_data_compilazione.value) )
	{	alert ("Attenzione: la data compilazione non è corretta"); 
		document.mainform.sch_data_compilazione.focus();
		return false;
	}
	if (! isSQLDate(document.mainform.sch_data_pubblicazione.value) )
	{	alert ("Attenzione: la data pubblicazione non è corretta"); 
		document.mainform.sch_data_pubblicazione.focus();
		return false;
	}
	if ( document.mainform.sch_data_pubblicazione.value=="" || document.mainform.sch_data_pubblicazione.value==null )
	{	alert ("Attenzione: la data pubblicazione NON può essere vuota"); 
		document.mainform.sch_data_pubblicazione.focus();
		return false;
	}
	
	// se sto modificando (e non creando)
	if (! confirmDel(string))
		return false;	
	
	document.mainform.submit();
	
	return true;
}
	
function controllaDatiProgetto(string)
{
	// progetto
	if (document.mainform.prg_nome.value.length <1)
	{	alert ("Attenzione: Il Titolo del progetto non può essere vuoto!"); 
		document.mainform.prg_nome.focus();
		return false;
	}
	if (document.mainform.prg_nome.value.length + caratteriAggiuntivi(document.mainform.prg_nome.value) >50)
	{	alert ("Attenzione: Titolo del progetto troppo lungo: max 50 caratteri (gli apostrofi contano 6)!"); 
		document.mainform.prg_nome.value = document.mainform.prg_nome.value.substr(0,50 - caratteriAggiuntivi(document.mainform.prg_nome.value) );
		document.mainform.prg_nome.focus();
		return false;
	}
	
	// se sto modificando (e non creando)
	if (! confirmDel(string))
		return false;	

	document.mainform.submit();

	return true;
}

function controllaDatiArgomento(string)
{
	// argomento
	if (document.mainform.arg_nome.value.length <1)
	{	alert ("Attenzione: Il nome dell'argomento non può essere vuoto!"); 
		document.mainform.arg_nome.focus();
		return false;
	}
	if (document.mainform.arg_nome.value.length + caratteriAggiuntivi(document.mainform.arg_nome.value) >33)
	{	alert ("Attenzione: Nome dell'argomento troppo lungo: max 50 caratteri (gli apostrofi contano 6)!"); 
		document.mainform.arg_nome.value = document.mainform.arg_nome.value.substr(0,33 - caratteriAggiuntivi(document.mainform.arg_nome.value) );
		document.mainform.arg_nome.focus();
		return false;
	}
	
	// se sto modificando (e non creando)
	if (! confirmDel(string))
		return false;	

	document.mainform.submit();

	return true;
}
	
function controllaDatiPersona(string)
{
	// persona
	if (! isnumeric(document.mainform.per_cod.value,0,"undefined") )
	{	alert ("Attenzione: Il Codice interno previsto non è corretto"); 
		document.mainform.per_cod.focus();
		return false;
	}
	if (document.mainform.per_nome.value.length <1)
	{	alert ("Attenzione: Il Nome della persona non può essre vuoto!"); 
		document.mainform.per_nome.focus();
		return false;
	}
	if (document.mainform.per_nome.value.length + caratteriAggiuntivi(document.mainform.per_nome.value) >16)
	{	alert ("Attenzione: Nome della persona troppo lungo: max 16 caratteri (gli apostrofi contano 6)!"); 
		document.mainform.per_nome.value = document.mainform.per_nome.value.substr(0,16 - caratteriAggiuntivi(document.mainform.per_nome.value) );
		document.mainform.per_nome.focus();
		return false;
	}
	/*
	//questo controllo non va più messo: solo l'ADMIN può impostare una PW, ma ogni programmatore deve poter creare una nuova persona
	if (document.mainform.per_password.value.length <1)
	{	alert ("Attenzione: La Password della persona non può essere vuota!"); 
		document.mainform.per_password.focus();
		return false;
	}
	*/
	if (document.mainform.per_password.value.length + caratteriAggiuntivi(document.mainform.per_password.value) >16)
	{	alert ("Attenzione: Password della persona troppo lungo: max 16 caratteri (gli apostrofi contano 6)!"); 
		document.mainform.per_password.value = document.mainform.per_password.value.substr(0,16 - caratteriAggiuntivi(document.mainform.per_password.value) );
		document.mainform.per_password.focus();
		return false;
	}
	if (document.mainform.per_cartella.value.length + caratteriAggiuntivi(document.mainform.per_cartella.value) >16)
	{	alert ("Attenzione: Cartella della persona troppo lungo: max 16 caratteri (gli apostrofi contano 6)!"); 
		document.mainform.per_cartella.value = document.mainform.per_cartella.value.substr(0,16 - caratteriAggiuntivi(document.mainform.per_cartella.value) );
		document.mainform.per_cartella.focus();
		return false;
	}

	// se sto modificando (e non creando)
	if (! confirmDel(string))
		return false;	

	document.mainform.submit();

	return true;
}

function abilitaDisabilita_checkBoxMostraMonitor()
{	
	if (document.mainform.per_cliente_autore.options[0].selected)
	{	document.mainform.per_mostra_monitor.checked = false;
		document.mainform.per_mostra_monitor.disabled  = true;
	}
	if (document.mainform.per_cliente_autore.options[1].selected)
	{	document.mainform.per_mostra_monitor.disabled  = false;
	}
	if (document.mainform.per_cliente_autore.options[2].selected)
	{	document.mainform.per_mostra_monitor.disabled  = false;
	}
}
	
function controllaDatiRichiesta(string)
{
	// richiesta
	if (! isSQLDate(document.mainform.ric_data_richiesta.value) )
	{	alert ("Attenzione: la data richiesta non è corretta"); 
		document.mainform.ric_data_richiesta.focus();
		return false;
	}
	if (document.mainform.ric_cod_titolo_richiesta.value.length <1)
	{	alert ("Attenzione: Il Titolo della richiesta non può essere nullo"); 
		document.mainform.ric_cod_titolo_richiesta.focus();
		return false;
	}
	if (document.mainform.ric_cod_titolo_richiesta.value.length + caratteriAggiuntivi(document.mainform.ric_cod_titolo_richiesta.value) >33)
	{	alert ("Attenzione: Titolo della richiesta troppo lungo: max 33 caratteri (gli apostrofi contano 6)!"); 
		document.mainform.ric_cod_titolo_richiesta.value = document.mainform.ric_cod_titolo_richiesta.value.substr(0,33 - caratteriAggiuntivi(document.mainform.ric_cod_titolo_richiesta.value) );
		document.mainform.ric_cod_titolo_richiesta.focus();
		return false;
	}

	// se sto modificando (e non creando)
	if (! confirmDel(string))
		return false;	
		
	document.mainform.submit();

	return true;
}
	
function controllaDatiOggetto(string)
{
	// oggetto programmazione
	if (document.mainform.ogg_nome.value.length <1)
	{	alert ("Attenzione: Il Nome dell'oggetto non può essere vuoto!");
		document.mainform.ogg_nome.focus();
		return false;
	}
	if (document.mainform.ogg_nome.value.length + caratteriAggiuntivi(document.mainform.ogg_nome.value) >33)
	{	alert ("Attenzione: Nome dell'oggetto troppo lungo: max 33 caratteri (gli apostrofi contano 6)!"); 
		document.mainform.ogg_nome.value = document.mainform.ogg_nome.value.substr(0,33 - caratteriAggiuntivi(document.mainform.ogg_nome.value) );
		document.mainform.ogg_nome.focus();
		return false;
	}

	// se sto modificando (e non creando)
	if (! confirmDel(string))
		return false;	

	document.mainform.submit();

	return true;
}
	
function controllaDatiFile(string)
{
	// file
	if (document.mainform.fil_nome.value.length <1)
	{	alert ("Attenzione: Il Nome del file non può essere nullo!"); 
		document.mainform.fil_nome.focus();
		return false;
	}
	if (document.mainform.fil_nome.value.length + caratteriAggiuntivi(document.mainform.fil_nome.value) >16)
	{	alert ("Attenzione: Nome del file troppo lungo: max 16 caratteri (gli apostrofi contano 6)!"); 
		document.mainform.fil_nome.value = document.mainform.fil_nome.value.substr(0,16 - caratteriAggiuntivi(document.mainform.fil_nome.value) );
		document.mainform.fil_nome.focus();
		return false;
	}
	if (document.mainform.fil_percorso.value.length + caratteriAggiuntivi(document.mainform.fil_percorso.value) >33)
	{	alert ("Attenzione: Percorso del file troppo lungo: max 33 caratteri (gli apostrofi contano 6)!"); 
		document.mainform.fil_percorso.value = document.mainform.fil_percorso.value.substr(0,33 - caratteriAggiuntivi(document.mainform.fil_percorso.value) );
		document.mainform.fil_percorso.focus();
		return false;
	}
	if (document.mainform.fil_descrizione.value.length + caratteriAggiuntivi(document.mainform.fil_descrizione.value) >33)
	{	alert ("Attenzione: Descrizione del file troppo lungo: max 33 caratteri (gli apostrofi contano 6)!"); 
		document.mainform.fil_descrizione.value = document.mainform.fil_descrizione.value.substr(0,33 - caratteriAggiuntivi(document.mainform.fil_descrizione.value) );
		document.mainform.fil_descrizione.focus();
		return false;
	}

	// se sto modificando (e non creando)
	if (! confirmDel(string))
		return false;	

	document.mainform.submit();

	return true;
}

// richiesta di conferma per la cancellazione di una riga dall'ordine attivo in modifica
function confirmDel(string)
{	if ( ! string)
		return true;

	if (! confirm("ATTENZIONE: si sta per cancellare " + string + ". Procedere?"))
	{ 	return false;	
	}

	document.mainform.submit();

	return true;
}

// richiesta di conferma per la cancellazione di una riga dall'ordine attivo in modifica
function confermaSincParziale()
{	if (! confirm("ATTENZIONE: se si conferma la sincronizzazione PARZIALE del solo CLIENT tutte le modifiche/aggiunte/cancellazioni effettuate OFF-LINE verranno definitivamente PERSE!!!!!! (saranno recuperbili con difficoltà)"))
	{ 	return false;	
	}

	document.mainform.submit();

	return true;
}

function caratteriAggiuntivi(stringaIN)
{	caratteriCheOccupaInPiu = 0;
	for (var x=0;x<stringaIN.length;x++)
	{	if(stringaIN.substr(x,1)=="'")
			caratteriCheOccupaInPiu = caratteriCheOccupaInPiu + 5;
		if(stringaIN.substr(x,1)=='"')
			caratteriCheOccupaInPiu = caratteriCheOccupaInPiu + 5;
	}
	return (caratteriCheOccupaInPiu);	
}

// funzione che verifica che una stringa passata contenga solo numeri (e separatori vari)
function isnumeric(s,dec,separatore) 
{	if (s==null) 
		return true;

	//dec=0 NON considera decimali, altrimenti li considera
	//separatore: se non lo indico prende il . altrimenti usa quello indicato come separatore
	if((dec!="0")&&((String("1234567890").indexOf(s.substr(0,1))==-1)||(String("1234567890").indexOf(s.substr(s.length-1,1))==-1)))
			return false;

	separatore=(String(separatore)=="undefined")?".":separatore;
		
	var filtronumber="1234567890"+((dec=="0")?"":separatore);
		
	s=s.replace(/,|\./g,separatore);
		
	for (var x=0;x<s.length;x++)
			if (filtronumber.indexOf(s.substr(x,1))==-1) 
					return false;
			
	if (dec!="0")
			if((s.indexOf(separatore)!=-1)&&((s.substr(s.indexOf(separatore)+1).indexOf(separatore)!=-1))) 		return false;
	return true;
}

function isSQLDate(date)
{	if (date=="YYYY-MM-DD")
		return true;
	
	if ((date==null) || (date==""))
		return true;

	if ((date.substr(4,1)!="-")||(date.substr(7,1)!="-"))
	{	alert("ATTENZIONE: usare il carattere - come separatore. Ad esempio 13 gennaio 1980 secondo la formattazione YYYY-MM-DD diventa 1980-01-13");
		return false;
	}
	if (!isnumeric(date.substr(0,4),0,"undefined")||
		!isnumeric(date.substr(5,2),0,"undefined")||
		!isnumeric(date.substr(8,2),0,"undefined"))
	{	alert("ATTENZIONE: oltre al separatore usare solo caratteri numerici. Ad esempio 13 gennaio 1980 secondo la formattazione YYYY-MM-DD diventa 1980-01-13");
		return false;
	}

	return true;
}

