//---------------------------------
//	FUNZIONI GENERALI
//---------------------------------
function leftTrim(sString) 
{
	while (sString.substring(0,1) == ' ')
		{
			sString = sString.substring(1, sString.length);
		}
	return sString;
}





function rightTrim(sString) 
{
	while (sString.substring(sString.length-1, sString.length) == ' ')
		{
			sString = sString.substring(0,sString.length-1);
		}
	return sString;
}


function trimAll(sString) 
{
	while (sString.substring(0,1) == ' ')
		{
			sString = sString.substring(1, sString.length);
		}
		while (sString.substring(sString.length-1, sString.length) == ' ')
		{
			sString = sString.substring(0,sString.length-1);
		}
	return sString;
}

//----------------------------------
//         PAGINA CONTATTI
//----------------------------------

//FINESTRA CON PIANTINA
function FinestraImmaginePiantina()
{
   Finestra = window.open("","SEDove","height=500, width=480, toolbar=0, menubar=0, scrollbars=0");
   Finestra.document.write("<HEAD><TITLE>Soft Engineering - Dove siamo</TITLE></HEAD><BODY><img SRC=images/SoftEngineering-Dove.bmp WIDTH=437 HEIGHT=451></BODY>");
   return;
}
//----------------------------------
//
//----------------------------------

//APERTURA DELLE FINESTRE ISOLATE

function ApriFinestraPrivacy(nome)
{
   finestra=window.open(nome,"","height=400, width=400, toolbar=0, menubar=0, scrollbars=1, location=0");
   return;
 
}

function ApriFinestraLinkAggiuntivi(nome)
{
   finestra=window.open(nome,"","height=545, width=990, toolbar=0, menubar=0, scrollbars=1, location=0");
   return;
 
}
function ApriFinestraRSS(nome)
{
   finestra=window.open(nome,"","height=300, width=400, toolbar=0, menubar=0, scrollbars=1, location=0");
   return;
 
}

function PosizionaCentro()
{
   window.moveTo(screen.availLeft, screen.availTop);
   return;
}

//----------------------------------
//
//----------------------------------

//STAMPA DELLA FINESTRA CORRENTE
function StampaPagina()
{
   window.print();
   return;
}
//----------------------------------
//
//----------------------------------

//FORM INFORMAZIONI

function ImpAzienda()
{
	document.Informazioni.RIAzienda.disabled=false;
	return;
}

function ImpPrivato()
{
	document.Informazioni.RIAzienda.value="";
	document.Informazioni.RIAzienda.disabled=true;
	return;
}

function CancellaCampiFormInfo()
{
	document.Informazioni.RITipo[0].checked=false;
	document.Informazioni.RITipo[1].checked=false; 
	document.Informazioni.RIAzienda.value="";	
	document.Informazioni.RIAzienda.disabled=false;	
	document.Informazioni.RIReferente.value="";
	document.Informazioni.RIIndirizzo.value="";
	document.Informazioni.RICAP.value="";		
	document.Informazioni.RICitta.value="";
	document.Informazioni.RIMail.value="";
	document.Informazioni.RITel.value="";
	document.Informazioni.RIFax.value="";
	document.Informazioni.RITesto.value="";
	document.Informazioni.RIPrivacy[0].checked=false;
	document.Informazioni.RIPrivacy[1].checked=false; 
}


function ControlloCampiFormInfo()
{
	var formValido;
	var flagTipo;
	var flagDatiAnagrafici;
	var flagMail;
	var flagPrivacy;
	var flagTesto;
	var StringaMessaggioErrore;
	
	//inizializzazione variabili
	formValido=false;

	flagTipo=false;
	flagPrivacy=false;
	flagDatiAnagrafici=false;
	flagTesto=false;
	
	StringaMessaggioErrore="";
	
	//verifica del gruppo "RITipo" (0=azienda  1=privato)
	if (!(document.Informazioni.RITipo[0].checked) && 
		!(document.Informazioni.RITipo[1].checked))	
	{	flagTipo=false;
		if (StringaMessaggioErrore=="")
		{StringaMessaggioErrore=StringaMessaggioErrore + "Il modulo non è corretto, occorre:"}
		StringaMessaggioErrore=StringaMessaggioErrore + "\n - specificare se si tratta di azienda o privato";
	}
	else
	{flagTipo=true;}		
	
	if (flagTipo)
	{

		//verifica del campo RIAzienda e RIReferente
		
		var referente, azienda;
		referente = trimAll(document.Informazioni.RIReferente.value);
		azienda= trimAll(document.Informazioni.RIAzienda.value);
		
				
		if (document.Informazioni.RITipo[0].checked)
		{	if ((azienda.length == 0)||(referente.length == 0))
			{	
				
				flagDatiAnagrafici=false;
				if (StringaMessaggioErrore=="")
				{StringaMessaggioErrore=StringaMessaggioErrore + "Il modulo non è corretto, occorre:"}
				StringaMessaggioErrore=StringaMessaggioErrore + "\n - compilare il campo azienda e persona di riferimento";
			}
			else 
			{	flagDatiAnagrafici=true;}
		}
		else if (document.Informazioni.RITipo[1].checked)
		{	if (trimAll(document.Informazioni.RIReferente.value)=="")
			{	flagDatiAnagrafici=false;
				if (StringaMessaggioErrore=="")
				{StringaMessaggioErrore=StringaMessaggioErrore + "Il modulo non è corretto, occorre:"}
				StringaMessaggioErrore=StringaMessaggioErrore + "\n - compilare il campo persona di riferimento";
			}
			else 
			{	flagDatiAnagrafici=true;}
		}
		
		//verifica del campo RIMail
		if (trimAll(document.Informazioni.RIMail.value)!="")
		{
			flagMail=VerificaIndirizzoPosta(document.Informazioni.RIMail);
		}
		else
		{
			flagMail=false;
			
		}
		if ((flagMail) || (trimAll(document.Informazioni.RITel.value)!="")  || (trimAll(document.Informazioni.RIFax.value)!=""))
			{flagDatiAnagrafici=true;}
			else
			{	flagDatiAnagrafici=false;
				if (StringaMessaggioErrore=="")
				{StringaMessaggioErrore=StringaMessaggioErrore + "Il modulo non è corretto, occorre:"}
				StringaMessaggioErrore=StringaMessaggioErrore + "\n - inserire almeno uno di questi campi: e-mail, fax, tel.";
			}


		//verifica della textarea RITesto
		if (trimAll(document.Informazioni.RITesto.value)!= "")
		{
			flagTesto=true;
		}
		else
		{ if (StringaMessaggioErrore=="")
				{StringaMessaggioErrore=StringaMessaggioErrore + "Il modulo non è corretto, occorre:"}
				StringaMessaggioErrore=StringaMessaggioErrore + "\n - inserire il testo della richiesta";
		}
	
		//verifica del gruppo "RIPrivacy"
		if (!(document.Informazioni.RIPrivacy[0].checked) &&
			!(document.Informazioni.RIPrivacy[1].checked))
		{	flagPrivacy=false;
			if (StringaMessaggioErrore=="")
			{StringaMessaggioErrore=StringaMessaggioErrore + "Il modulo non è corretto, occorre:"}
			StringaMessaggioErrore=StringaMessaggioErrore + "\n - compilare la formula di consenso sul trattamento dati";
		}
		else if (document.Informazioni.RIPrivacy[1].checked)
			{	flagPrivacy=false;
				
				StringaMessaggioErrore=StringaMessaggioErrore + "\n Non è possibile inoltrare la richiesta perchè ci avete negato il consenso a trattare vs. i dati personali";}
		else
		{flagPrivacy=true;}		

	}
		
	//risultato del controllo
	formValido= flagDatiAnagrafici && flagPrivacy && flagTipo && flagTesto;
	
	if (!formValido)
	{alert(StringaMessaggioErrore);}
	

	return(formValido);

}

function VerificaIndirizzoPosta(textBox)
{
  //controlla la validità dell'indirizzo mail (solo a livello di caratteri e di struttura dei domini)
  
  var indSin; //parte prima di @
  var indDes; //parte dopo la @
  var i,j;
  var parteSinValida;
  var parteDesValida;
  var codiceCarattere;
  var DomPrimoLiv;
  var DomSecLiv;
               
  mail=textBox.value;
  
  parteSinValida=false;
  parteDesValida=false;           
  
  //1° controllo: presenza della chiocciola
  i = mail.search('@'); //se manca i=-1
  if (i > 0) //se fosse il primo carattere già non sarebbe valida  
  {
    //devo fare un controllo sulle sottostringhe ai lati di @
	indSin=mail.slice(0, i);
	indDes=mail.slice(i+1,mail.length);
	//nella sottostringa sinistra posso avere questi caratteri validi: lettere, numeri, -, . ,_
	if (indSin.length > 0)
	   { for (j=0; j<indSin.length; j++)
         { 
               codiceCarattere=indSin.charCodeAt(j);
               if ((48<=codiceCarattere)&&(codiceCarattere<=57) ||  (65<=codiceCarattere)&&(codiceCarattere<=90) || (97<=codiceCarattere)&&(codiceCarattere<=122) ||
                  (codiceCarattere==46) || (codiceCarattere==45) || (codiceCarattere==95))
                  {parteSinValida=true;}
         }
         if (parteSinValida && indDes.length > 0)
         {
            //nella sottostringa destra posso avere questi caratteri validi: lettere, numeri, -, . ,_ 
            for (j=0; j<indDes.length; j++)
            { 
                codiceCarattere=indDes.charCodeAt(j);
                if ((48<=codiceCarattere)&&(codiceCarattere<=57) ||  (65<=codiceCarattere)&&(codiceCarattere<=90) || (97<=codiceCarattere)&&(codiceCarattere<=122) ||
                   (codiceCarattere=46) || (codiceCarattere == 45) || (codiceCarattere == 95))
                   {parteDesValida=true;}
            }
            if (parteDesValida)
            {//inoltre il dominio di primo livello può essere al più di 4 caratteri
             j=indDes.lastIndexOf('.'); //ultima occorrenza del .
             DomPrimoLiv=indDes.slice(j+1, indDes.length);
             if ((DomPrimoLiv.length >= 5) || (DomPrimoLiv.length <= 1))
                {parteDesValida=false;}
             //il dominio di secondo livello deve avere almeno 3 caratteri
             j=indDes.indexOf('.'); //prima occorrenza del .
             DomSecLiv=indDes.slice(0, j);//esclusa l'ultima posizione
             if (DomSecLiv.length <3)
                {parteDesValida=false;}
            }

            
       }
  }
 }
                
                return(parteDesValida && parteSinValida);
}
//----------------------------------
//FORM PROMOZIONI
//----------------------------------

function CancellaCampiFormPromozioni()
{
	document.Promozioni.RPTipo[0].checked=false;
	document.Promozioni.RPTipo[1].checked=false; 
	document.Promozioni.RPMail.value="";	


}

function ControlloCampiFormPromozioni()
{
	var formValido;
	var flagTipo;
	var flagMail;
	
	var StringaMessaggioErrore;
	
	StringaMessaggioErrore="";
	formValido=false;
	flagTipo=false;
	flagMail=false;
	
	
	if ((document.Promozioni.RPTipo[0].checked) || (document.Promozioni.RPTipo[1].checked)) 
		{	flagTipo=true;
				
		}
		else 
		{		flagTipo=false;
				if (StringaMessaggioErrore=="")
				{StringaMessaggioErrore=StringaMessaggioErrore + "Il modulo non è corretto, occorre:"}
				StringaMessaggioErrore=StringaMessaggioErrore + "\n - specificare l'operazione richiesta";
		}
			
	if (trimAll(document.Promozioni.RPMail.value)!="")
		{
			flagMail=VerificaIndirizzoPosta(document.Promozioni.RPMail);
		}
		else
		{
			flagMail=false;
		}
		if (!(flagMail))
			{
				if (StringaMessaggioErrore=="")
				{StringaMessaggioErrore=StringaMessaggioErrore + "Il modulo non è corretto, occorre:"}
				StringaMessaggioErrore=StringaMessaggioErrore + "\n - inserire un indirizzo di posta elettronica valido";
			}

	formValdo= flagMail && flagTipo;
	
	retrun(formValido);
}
//----------------------------------
//FORM REGISTRAZIONE UTENTE
//----------------------------------

function CancellaCampiFormRegUtente()
{
	document.RegUtente.RUTipo[0].checked=false;
	document.RegUtente.RUTipo[1].checked=false; 
	document.RegUtente.RUTipo[2].checked=false;
	document.RegUtente.RUTipo[3].checked=false; 	
	document.RegUtente.RUTipo[4].checked=false;	
	document.RegUtente.RUNote.value="";	
	document.RegUtente.RUNome.value="";	
	document.RegUtente.RUCognome.value="";		
	document.RegUtente.RUMailReferente.value="";	
	document.RegUtente.RUTelReferente.value="";	
	document.RegUtente.RUFaxReferente.value="";	
	document.RegUtente.RUStruttura.value="";	
	document.RegUtente.RUIndirizzo.value="";	
	document.RegUtente.RUCAP.value="";	
	document.RegUtente.RUCitta.value="";	
	document.RegUtente.RUMailStruttura.value="";	
	document.RegUtente.RUSitoStruttura.value="";	
	document.RegUtente.RUConsCommerciale.checked=false;	
	document.RegUtente.RUInvioMail.checked=false;	
	document.RegUtente.RUInvioFax.checked=false;
	document.RegUtente.RUInvioPosta.checked=false;
	document.RegUtente.RUInvioTel.checked=false;
	document.RegUtente.RUCategInteresse.value="";
	document.RegUtente.RUPrivacy[0].checked=false;
	document.RegUtente.RUPrivacy[1].checked=false;
}

function ControlloCampiFormRegUtente()
{
	var formValido;
	var flagTipo; //radio RUTipo
	var flagDatiReferente; //RUNome, RUCognome, RUMailReferente
	var flagPrivacy;

	var StringaMessaggioErrore;
	
	//inizializzazione variabili
	formValido=false;

	flagTipo=false;
	flagDatiReferente=false;
	flagDatiStruttura=false;	
	flagPrivacy=false;
	

	
	StringaMessaggioErrore="";
	
	//verifica del gruppo "RUTipo" (0=azienda 1=PA 2=istruzione 3=studio 4=altro)
	if (!(document.RegUtente.RUTipo[0].checked) && 
		!(document.RegUtente.RUTipo[1].checked) &&
		!(document.RegUtente.RUTipo[2].checked) &&
		!(document.RegUtente.RUTipo[3].checked) &&
		!(document.RegUtente.RUTipo[4].checked)    )
			
	{	flagTipo=false;
		if (StringaMessaggioErrore=="")
		{StringaMessaggioErrore=StringaMessaggioErrore + "Il modulo non è corretto, occorre:"}
		 StringaMessaggioErrore=StringaMessaggioErrore + "\n - specificare se si tratta di azienda o P.A. o Istituto scolastico o di formazione o studio professionale o privato";
	}
	else
	{flagTipo=true;}		
	
	if (flagTipo)
	{

		//  campi obbligatori PER TUTTI: nome, cognome, mailreferente, struttura, indirizzo, citta
		
			var nome, cognome, mailreferente, struttura, indstruttura, cittastruttura;
			nome = trimAll(document.RegUtente.RUNome.value);
			cognome = trimAll(document.RegUtente.RUCognome.value);
			mailreferente = trimAll(document.RegUtente.RUMailReferente.value);
			struttura= trimAll(document.RegUtente.RUStruttura.value);		
			indstruttura = trimAll(document.RegUtente.RUIndirizzo.value);
			cittastruttura = trimAll(document.RegUtente.RUCitta.value);
			
			//1° gruppo flagDatiReferente
			{
				var r1,r2,r3;
			
				if (nome.length == 0)
				{
					r1=false;
					if (StringaMessaggioErrore=="")
					{
						StringaMessaggioErrore=StringaMessaggioErrore + "Il modulo non è corretto, occorre:"
					}
					StringaMessaggioErrore=StringaMessaggioErrore + "\n - specificare il nome della persona di riferimento";
				}
				else
				{r1=true;}
				
				if (cognome.length == 0)
				{
					r2=false;
					if (StringaMessaggioErrore=="")
					{
						StringaMessaggioErrore=StringaMessaggioErrore + "Il modulo non è corretto, occorre:"
					}
					StringaMessaggioErrore=StringaMessaggioErrore + "\n - specificare il cognome della persona di riferimento";
				}
				else
				{r2=true;}
						
				if (mailreferente.length == 0)
				{
					r3=false;
					if (StringaMessaggioErrore=="")
					{
						StringaMessaggioErrore=StringaMessaggioErrore + "Il modulo non è corretto, occorre:"
					}
					StringaMessaggioErrore=StringaMessaggioErrore + "\n - specificare l'indirizzo di posta elettronica della persona di riferimento";
				}	
				else
				{
					r3=VerificaIndirizzoPosta(document.Informazioni.RIMail);
					if (!r3)
					{
						if (StringaMessaggioErrore=="")
						{
							StringaMessaggioErrore=StringaMessaggioErrore + "Il modulo non è corretto, occorre:"
						}
						StringaMessaggioErrore=StringaMessaggioErrore + "\n - specificare un indirizzo di posta eletteronica valido";
					}
				}	
				
				flagDatiReferente= r1 && r2 && r3;
				
			}
			//2° gruppo flagDatiStruttura
			{
				var r1,r2,r3;
			
				if (struttura.length == 0)
				{
					r1=false;
					if (StringaMessaggioErrore=="")
					{
						StringaMessaggioErrore=StringaMessaggioErrore + "Il modulo non è corretto, occorre:"
					}
					StringaMessaggioErrore=StringaMessaggioErrore + "\n - specificare il nome dell'organizzazione di appartenenza";
				}
				else
				{r1=true;}
				
				if (indstruttura.length == 0)
				{
					r2=false;
					if (StringaMessaggioErrore=="")
					{
						StringaMessaggioErrore=StringaMessaggioErrore + "Il modulo non è corretto, occorre:"
					}
					StringaMessaggioErrore=StringaMessaggioErrore + "\n - specificare l'indirizzo dell'organizzazione di appartenenza";
				}
				else
				{r2=true;}
		
				if (cittastruttura.length == 0)
				{
					r3=false;
					if (StringaMessaggioErrore=="")
					{
						StringaMessaggioErrore=StringaMessaggioErrore + "Il modulo non è corretto, occorre:"
					}
					StringaMessaggioErrore=StringaMessaggioErrore + "\n - specificare la città dove ha sede l'organizzazione di appartenenza";
				}
				else
				{r3=true;}		
				
				flagDatiStruttura= r1 && r2 && r3;
		
			}
		
		
		
		
		//campo obbligatorio AGGIUNTIVO per il tipo 4
		if (document.RegUtente.RUTipo[4].checked)
		{
			var note;
			note=trimAll(document.RegUtente.RUNote.value);
			if (note.length == 0)
			{
				flagTipo=false;
				if (StringaMessaggioErrore=="")
				{
					StringaMessaggioErrore=StringaMessaggioErrore + "Il modulo non è corretto, occorre:"
				}
				StringaMessaggioErrore=StringaMessaggioErrore + "\n - specificare il tipo di struttura";
			}
		}

		//verifica del gruppo "RUPrivacy"
		if (!(document.RegUtente.RUPrivacy[0].checked) &&
			!(document.RegUtente.RUPrivacy[1].checked))
		{	flagPrivacy=false;
			if (StringaMessaggioErrore=="")
			{StringaMessaggioErrore=StringaMessaggioErrore + "Il modulo non è corretto, occorre:"}
			StringaMessaggioErrore=StringaMessaggioErrore + "\n - compilare la formula di consenso sul trattamento dati";
		}
		else if (document.RegUtente.RUPrivacy[1].checked)
			{	flagPrivacy=false;
				
				StringaMessaggioErrore=StringaMessaggioErrore + "\n Non è possibile inoltrare la richiesta perchè ci avete negato il consenso a trattare vs. i dati personali";}
		else
		{flagPrivacy=true;}		

	}
		
	//risultato del controllo
	formValido= flagDatiReferente && flagPrivacy && flagTipo && flagDatiStruttura;
	
	if (!formValido)
	{alert(StringaMessaggioErrore);}
	

	return(formValido);

}


function ImpNonAltro()
{
	document.RegUtente.RUNote.value="";
	document.RegUtente.RUNote.disabled=true;
	return;
}


function ImpAltro()
{
	document.RegUtente.RUNote.disabled=false;
	return;
}