// Modulo per la dichiarazione delle strutture generali
//


	// parametri relativi al file toolbar
	
	var MaxMenu = 10;
	var TotalMenu = 0;
	var newLineChar = String.fromCharCode(10);
	var char34 = String.fromCharCode(34);
	var LastMSMenu = "";
	var IsMSMenu = false;
	var IsMenuDropDown = true;
	var HTMLStr;
	var TBLStr;
	var x = 0;
	var y = 0;
	var x2 = 0;
	var y2 = 0;
	var x3 = 0;
	var MSMenuWidth;
	var ToolbarMinWidth;
	var ToolbarMenu;
	var ToolbarBGColor;
	var ToolbarLoaded = false;
	var aDefMSColor  = new Array(3);
	var aCurMSColor  = new Array(3);
	var MSFont;
	var arrMenuInfo = new Array(30);
	
	var ToolBar_Supported = false;
	var Frame_Supported   = false;
	var DoInstrumentation = false;


// Strutture relative ai menu a tendina

	var sv10bncind_row = 0;
    sv10BNCIND = new Array(10);

	var sv10socind_row = 0;
    sv10SOCIND = new Array(10);

	var sv10prdind_row = 0;
    sv10PRDIND = new Array(20);

	var sv10fndind_row = 0;
    sv10FNDIND = new Array(10);

	var sv10assind_row = 0;
    sv10ASSIND = new Array(10);

	var sv10intind_row = 0;
    sv10INTIND = new Array(10);

	var sv10eduind_row = 0;
    sv10EDUIND = new Array(10);

	var sv10lnkind_row = 0;
    sv10LNKIND = new Array(10);

	var sv10genind_row = 0;
    sv10GENIND = new Array(20);

	var numparametri = 0;
	PARAMETRICOD = new Array(100);
	PARAMETRIVAL = new Array(100);

    var numcolori = 0;
	COLORICOD = new Array(100);
	COLORIVAL = new Array(100);

	var numedu = 0;
	EDUCOD = new Array(100);
	EDUVAL = new Array(100);


function CambioPwd(pwdold,pwdnew,pwdconf) 
 {
		if (pwdold == "")
		{
		  alert("Inserire la vecchia password.");
		  return (false);
		}
		if (pwdnew == "")
		{
		  alert("Inserire la nuova password.");
		  return (false);
		}
		if (pwdconf == "")
			{
			  alert("Reinserire la password per conferma.");
			  return (false);
			}
		
		 if (pwdconf != pwdnew)
			{
			  alert("Nuova password e conferma non corrispondenti: reinserire.");
			  return (false);
			}
	 
		return (true);			
}
	


	// Funzione per aprire una nuova finestra
	function openWin(url, name, prop)
	{ 
		searchWin = window.open(url, name, prop); 
	}

	// Funzione per la lettura dei parametri
	function LeggiParametro(CodParametro)
	{	
		for (var indice = 1; indice <= numparametri; ++indice)
		{
		  if (PARAMETRICOD[indice] == CodParametro)
		  {
			return PARAMETRIVAL[indice]   ;
		  }
		}
	}

	// Funzione per la lettura del termine educational dall'array
	function LeggiEducation(CodEdu)
	{	
		//alert ("funzione education =" + CodEdu );

		for (var indice = 1; indice <= numedu; ++indice)
		{
		  if (EDUCOD[indice] == CodEdu)
		  {
			return EDUVAL[indice]   ;
		  }
		}
	}

	// Funzione per cambiare la lingua
	function CambiaLingua(newlingua)
	{	
		lingua =newlingua;
		//drawToolbar(); 
	}
//-----------------------------------------------------------------------------------------------------------------	
// Funzione per il controllo dei files già presenti sul server
	function ControllaCampoFile(CodCampo,Elenco)
	{
	var nomefile= "";
    var esco="no";
    var i=0;
    var diff=0;
	  // controllo se esiste già un immagine con lo stesso nome sul server	
   if (CodCampo.value.length != 0) {
   i=CodCampo.value.length - 1;	
   nomefile=CodCampo.value;

   esco="no";
   while (esco == 'no'){
   	          if (nomefile.charAt(i) == '\\'){   
	              esco="si";
				  }
				  else
				  {
				  i=i-1;
			  }	  	
	          }
   diff=CodCampo.value.length - i;
   i=i+1;
   nomefile = nomefile.substr(i,diff);		 		
		 	 		  
   for (i = 0;  i < Elenco.length;  i++){   
	if (nomefile == Elenco.options[i].value) 
		{

		  alert("ATTENZIONE : il nome file : '" + nomefile + "' che si intende allegare è già in uso !!!. Occorre cambiarlo prima di salvare la News, oppure sceglierlo dalla lista dei files presenti sul server");	
		  alert("ATTENZIONE : Cancellare il contenuto del campo 'NOME IMMAGINE'");	
		  CodCampo.focus();
		  return (false);
		}		
	}
  }  
    	
  return (true);
}
	// Fine Funzione per il controllo dei files

//-----------------------------------------------------------------------------------------------------------------	
// Funzione per il controllo dei files già presenti sul server
	function ControllaCampoLink(CodCampo,Elenco)
	{
	var nomefile= "";
    var esco="no";
    var i=0;
    var diff=0;
	  // controllo se esiste già un immagine con lo stesso nome sul server	
   if (CodCampo.value.length != 0) {
   i=CodCampo.value.length - 1;	
   nomefile=CodCampo.value;

   esco="no";
   while (esco == 'no'){
   	          if (nomefile.charAt(i) == '\\'){   
	              esco="si";
				  }
				  else
				  {
				  i=i-1;
			  }	  	
	          }
   diff=CodCampo.value.length - i;
   i=i+1;
   nomefile = nomefile.substr(i,diff);		 		
		 	 		  
   for (i = 0;  i < Elenco.length;  i++){   
	if (nomefile == Elenco.options[i].value) 
		{

		  alert("ATTENZIONE : il nome file : '" + nomefile + "' che si intende allegare è già in uso !!!. Occorre cambiarlo prima di salvare la News");	
		  CodCampo.focus();
		  return (false);
		}		
	}
  }  
    	
  return (true);
}
	// Fine Funzione per il controllo dei files


	// Funzione per il controllo delle stringhe nelle pagine
	function ControllaCampoStringa(CodCampo,DescCampo,Lungmin,Lungmax)
	{
	  if (Lungmin > 0)
	  {
		if (CodCampo.value == "") 
		{
		  alert("Inserire un valore per il campo '" + DescCampo + "'.");
			CodCampo.focus();
		  return (false);
		}
	  }
	  if (CodCampo.value.length < Lungmin)
	  {
	    alert("Inserire almeno " + Lungmin + " caratteri per il campo '" + DescCampo + "'.");
		CodCampo.focus();
	    return (false);
	  }
	  if (CodCampo.value.length > Lungmax)
	  {
	    alert("Inserire al massimo " + Lungmax + " caratteri per il campo '" + DescCampo + "'.");
		CodCampo.focus();
	    return (false);
	  }
	  return (true);
	}
	
	// Funzione per il controllo dei campi numerici nelle pagine
	// NB il controllo sul valore minimo e massimo lo faccio sulla parte intera del valore inserito
	// il valore obb=1 indica che il campo è obbligatorio
	function ControllaCampoNumero(CodCampo,DescCampo,decimali,valmin,valmax,obb)
	{
		var checkOK = "0123456789-,";
		var allValid = true;
		var decPoints = 0;		// conta le virgole inserite
		var contaDecimali = 0;		// conta i decimali inseriti
		var allNum = "";
		
	 //if (valmin >= 1 || CodCampo.value.length > 0 )
	 if (obb == "1" || CodCampo.value.length > 0)
	     {

		if (CodCampo.value == "") 
		{
		  alert("Inserire un valore per il campo '" + DescCampo + "'.");
		  CodCampo.focus();
		  return (false);
		}
		  
		for (i = 0;  i < CodCampo.value.length;  i++)
		{
		  ch = CodCampo.value.charAt(i);
		  for (j = 0;  j < checkOK.length;  j++)
		    if (ch == checkOK.charAt(j))
		      break;
		  if (j == checkOK.length)
		  {
		    allValid = false;
		    break;
		  }
		  if (decPoints == 1) 	//ho trovato la virgola
		  {
		    contaDecimali++;	// conto quante cifre inserisci dopo la virgola
		  }
		  else if (ch != ",")
		  {
		    allNum += ch;	// memorizzo in allNum la parte intera del campo
		  }		  	
		  if (ch == ",")
		  {
		    decPoints++;	// conto le virgole inserite
		  }
		}
		
		
		if (!allValid)
		{
			alert("Inserire un numero valido per il campo '" + DescCampo + "'." );
			CodCampo.focus();
			return (false);
		}
		if (decPoints > 1)
		{
			alert("Troppe virgole per il campo '" + DescCampo + "'.");
			CodCampo.focus();	
			return (false);
		}
		if (allNum > valmax)
		{
			alert("Inserire un numero inferiore a " + valmax + " per il campo '" + DescCampo + "'.");
			CodCampo.focus();
			return (false);
		}
		if (allNum < valmin)
		{
			alert("Inserire un numero superiore a " + valmin + " per il campo '" + DescCampo + "'.");
			CodCampo.focus();
			return (false);
		}
		if (contaDecimali != decimali)
		{
			alert("Inserire " + decimali + " cifre dopo la virgola per il campo '" + DescCampo + "'.");
			CodCampo.focus();
			return (false);
		}
	    }
		
		return (true);
	}
	    function check_Data(st,obb)
	      {		   if (st.length > 0 ) 
		    {
		    var dt = new Date(2001,01,31); // Establishes a specific date for the object.
		   	dt.setDate(st.substr(0, 2 ));
		   	dt.setMonth(st.substr(3, 2 )-1);
		   	dt.setYear(st.substr(6, 4 ));
		   	y = dt.getYear();
		   	if( y < 1900)
		   		y = y + 1900;
              if(st.length > 10)
              {
                return false;
	          }
	          else if(st.charAt(2) != '/' || st.charAt(5) != '/' )
	          {
              	return false;
              }
	          else if(dt.getDate() != st.substr(0, 2 ))
	          {
              	return false;
              }
	          else if((dt.getMonth()+1)!=st.substr(3, 2 ))
	          {
              	return false;
              }
	          else if(y!=st.substr(6, 4 ) || st.substr(6, 4 )<1900)
	          {
              	return false;
              }
              }
              
		      return true;
	      }

	 function ControllaData(CodCampo,obblig)
	 {
	  if(!(check_Data(CodCampo.value,obblig.value)))
	  {
			alert("Il campo data non è nel formato corretto o la data inserita non è valida");
			CodCampo.focus();
			return (false);
	  }
	  return (true);
	 }

	function ControllaEmail(CodCampo,DescCampo,Lungmin,Lungmax) {
	  if (Lungmin > 0)
	  {
		if (CodCampo.value == "")
		{
		  alert("Inserire un valore per il campo '" + DescCampo + "'.");
			CodCampo.focus();
		  return (false);
		}
	 
	  if ((CodCampo.value.indexOf("@") == -1) |
		(CodCampo.value.indexOf(".") == -1) | (CodCampo.value.length < 7))
	  {
			alert("Il campo '" + DescCampo + "' non è nel formato corretto")
			CodCampo.focus();
			return (false);
	  }
	  if (CodCampo.value.length < Lungmin)
	  {
	    alert("Inserire almeno " + Lungmin + " caratteri per il campo '" + DescCampo + "'.");
		CodCampo.focus();
	    return (false);
	  }
	  if (CodCampo.value.length > Lungmax)
	  {
	    alert("Inserire al massimo " + Lungmax + " caratteri per il campo '" + DescCampo + "'.");
		CodCampo.focus();
	    return (false);
	  }
	  }
	  return (true);			
	}



	// Funzione per il controllo delle stringhe nelle pagine
	function ConfermaCancellazione()
	{
		return (confirm("Eliminare l'elemento selezionato ?"));
	}
	
	// Funzione per il controllo delle stringhe nelle pagine
	function Datoesistente()
	{
		return (confirm("Attenzione record gia' esistente"));
	}
	
	function DammiCollegamento(IndirizzoPagina, nomefile,lingua)
	{
		var collegamento = "";
		
		if (VerificaEsistenzaStringa(nomefile,"http") )
		{
			collegamento = nomefile;
		}
		else
		{
			if ((VerificaEsistenzaStringa(IndirizzoPagina,"sv10mod")) ||
				(VerificaEsistenzaStringa(IndirizzoPagina,"sv10MOD")) ) // sono in modifica
				nomefile = "mod" + nomefile;
			if ((VerificaEsistenzaStringa(IndirizzoPagina,"sv10ita")) ||
				 (VerificaEsistenzaStringa(IndirizzoPagina,"sv10ITA")) ||
				 (VerificaEsistenzaStringa(IndirizzoPagina,"sv10eng")) ||
				 (VerificaEsistenzaStringa(IndirizzoPagina,"sv10ENG")) ||
				 (VerificaEsistenzaStringa(IndirizzoPagina,"sv10deu")) ||
				 (VerificaEsistenzaStringa(IndirizzoPagina,"sv10DEU")) ||
				 (VerificaEsistenzaStringa(IndirizzoPagina,"sv10FRA")) ||
				 (VerificaEsistenzaStringa(IndirizzoPagina,"sv10fra")))
			{
				collegamento = nomefile; // sono nel sotto menu della lingua
			}
			else		 
			{
				collegamento = lingua + "/" + nomefile;
			}
		}
		return collegamento;
	}
	
	function StampaPagina()
	{  
		if (NS) 
		{
		    window.print() ;  
		} 
		else
		{
		    var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
			document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
		    WebBrowser1.ExecWB(6, 2);
			WebBrowser1.outerHTML = "";  
		}
	}

	function DammiNavigator()
	{  
	
		 if(navigator.userAgent.indexOf('IRIX') != -1)
			{document.write("Irix")}

		else if((navigator.userAgent.indexOf('Win') != -1) && (navigator.userAgent.indexOf('95') != -1))
			{document.write("Microsoft Windows 95")}

		else if(navigator.userAgent.indexOf('Win') != -1)
			{document.write("Microsoft Windows 3.1 or NT")}

		else if(navigator.userAgent.indexOf('Mac') != -1)
			{document.write("Macintosh")}

		else {document.write("Other")}
	}
	
// Funzione per il controllo del campo Conto Corrente
function ControllaCampoCC(CodCampo,DescCampo,obb)
	{
		var checkOK = "0123456789";
		var allValid = true;
		var msg = "Il campo " + DescCampo + " non è in formato XX/XX/XXXXX"
		
	    if (obb == "1" || CodCampo.value.length > 0)
		
              {
		if (CodCampo.value.length != 11) 
		{
		  alert(msg)
		  CodCampo.focus();
		  return (false);
		}
		if (CodCampo.value.charAt(2) != "/") 
		{
		  alert(msg);
		  CodCampo.focus();
		  return (false);
		}
		if (CodCampo.value.charAt(5) != "/") 
		{
		  alert(msg);
		  CodCampo.focus();
		  return (false);
		}
		  
		for (i = 0;  i < 2;  i++)
		{
		  ch = CodCampo.value.charAt(i);
		  for (j = 0;  j < checkOK.length;  j++)
		    if (ch == checkOK.charAt(j))
		      break;
		  if (j == checkOK.length)
		  {
		    allValid = false;
		    break;
		  }
		}
		for (i = 3;  i < 5;  i++)
		{
		  ch = CodCampo.value.charAt(i);
		  for (j = 0;  j < checkOK.length;  j++)
		    if (ch == checkOK.charAt(j))
		      break;
		  if (j == checkOK.length)
		  {
		    allValid = false;
		    break;
		  }
		}
		for (i = 6;  i < 11;  i++)
		{
		  ch = CodCampo.value.charAt(i);
		  for (j = 0;  j < checkOK.length;  j++)
		    if (ch == checkOK.charAt(j))
		      break;
		  if (j == checkOK.length)
		  {
		    allValid = false;
		    break;
		  }
		}
		if (!allValid)
		{
			alert(msg);
			CodCampo.focus();
			return (false);
		}
	      }
	     return (true);
	}    
	

