function makeObj(Parent, DivName, StringSpace, Stato)
{
	if ( !Stato )
		Stato="true";
	eval(StringSpace+"Item"+DivName+"=new Object()");
	eval(StringSpace+"Item"+DivName+".Name='"+DivName+"'");
	eval(StringSpace+"Item"+DivName+".SubObj=new Array()");
	eval(StringSpace+"Item"+DivName+".RootObj='"+StringSpace+"Obj'");
	eval(StringSpace+"Item"+DivName+".ChildSpace='"+StringSpace+"'");
	eval(StringSpace+"Item"+DivName+".Open="+Stato);
	eval(StringSpace+Parent+".SubObj["+StringSpace+Parent+".SubObj.length]="+StringSpace+"Item"+DivName);
}

function MainInit(NomeObj)
{
	if ( NomeObj.RootObj=="" )
		NomeObj.NextYPos = NomeObj.InitYPos;
	else
		NomeObj.RootObj.NextYPos = NomeObj.RootObj.InitYPos;
	Init(NomeObj);
	Tree(NomeObj, 0);
}

function Init(Menu)	// Inizializza le proprieta' dei div ricorsivamente
{
	var i;
	var StringSpace=Menu.ChildSpace;
	for (i=0; i<Menu.SubObj.length; i++)
	{
		Menu.SubObj[i].Div = new InitItem(Menu.SubObj[i].Name, StringSpace);
//		Menu.SubObj[i].Div.Css.visibility="visible";
		if ( Menu.SubObj[i].SubObj.length>0 )
			Init(eval(StringSpace+'Item'+Menu.SubObj[i].Name));
	}
	InitDone=true;
//	PreloadImages(Menu);
 	return;
}

function InitItem(Name, StringSpace)	// Associa, ad ogni oggetto, le prorieta' del relativo div
{
	this.Css = eval(StringSpace+'.document.all.div'+Name+'.style');
	this.Ref = eval(StringSpace+'.document');
	this.Img = eval(StringSpace+'.document.images.img'+Name);
	this.Height = eval(StringSpace+'.document.all.div'+Name+'.offsetHeight');
	this.Width = eval(StringSpace+'.document.all.div'+Name+'.offsetWidth');
	this.X = this.Css.pixelLeft;
	this.Y = this.Css.pixelTop;
	this.Z = this.Css.zIndex;
	this.XPos = f_XPos;
	this.YPos = f_YPos;
	this.ZPos = f_ZPos;
	this.Visible = f_Visible;
	return this;
}

function Tree(NomeObj, Level)	// Crea l'albero ricorsivamente
{
	if ( !InitDone )
		return;
	var i;
	var StringSpace=NomeObj.ChildSpace;
	if ( Level==0 )	// Menu principali
	{
		for (i=0; i<NomeObj.SubObj.length; i++)
		{
//alert(NomeObj.NextYPos);
			NomeObj.SubObj[i].Div.XPos(NomeObj.LeftMargin);
			NomeObj.SubObj[i].Div.YPos(NomeObj.NextYPos);
			NomeObj.SubObj[i].Div.Css.visibility="visible";
			if ( (NomeObj.SubObj[i].SubObj.length>0) && (NomeObj.SubObj[i].Open) )	// E' un sottomenu, ed e' aperto
			{
				NomeObj.NextYPos+=18;
				Tree(eval(StringSpace+'Item'+NomeObj.SubObj[i].Name), Level+1);
			}
			else
			{
				NomeObj.NextYPos += NomeObj.SubObj[i].Div.Height;
			}
			NomeObj.NextYPos+=NomeObj.Distance;
		}
	}
	else	// SottoMenu
	{
		for (i=0; i<NomeObj.SubObj.length; i++)
		{
			
			NomeObj.SubObj[i].Div.XPos(eval(NomeObj.RootObj+".LeftMargin"));
			NomeObj.SubObj[i].Div.YPos(eval(NomeObj.RootObj+".NextYPos"));
			NomeObj.SubObj[i].Div.ZPos(Level);
			eval(NomeObj.RootObj+".NextYPos += NomeObj.SubObj[i].Div.Height");
				NomeObj.SubObj[i].Div.Css.visibility="visible";
			if(top.Main.document.getElementById("div1_1") != undefined)
			{
				top.Main.document.getElementById("div1_1").style.visibility="hidden";
			}				
			if ( (NomeObj.SubObj[i].SubObj.length>0) && (NomeObj.SubObj[i].Open) )	// E' un sottomenu, ed e' aperto
				Tree(eval(StringSpace+'Item'+NomeObj.SubObj[i].Name), Level+1);
		}
	}
	return;
}

function ApriChiudi(NumeroDiv, NomeObj)
{
	var StringSpace=NomeObj.ChildSpace;
	var i; var pos; var parent; var nomediv;
//	alert(StringSpace+"Item"+NumeroDiv)
// MainItem1

	Hide(eval(StringSpace+"Item"+NumeroDiv));
	eval(StringSpace+"Item"+NumeroDiv+".Open=!"+StringSpace+"Item"+NumeroDiv+".Open");

	if ( NumeroDiv.indexOf('_')>-1 && eval(StringSpace+"Item"+NumeroDiv+".Open") )
	{
		pos=NumeroDiv.lastIndexOf('_');
		parent=NumeroDiv.substr(0, pos);
		for ( i=0; i<eval(StringSpace+"Item"+parent+".SubObj.length");i++ )
		{
			Hide(eval(StringSpace+"Item"+parent+".SubObj["+i+"]"));
			eval(StringSpace+"Item"+parent+".SubObj["+i+"].Open=false");
		}
		eval(StringSpace+"Item"+NumeroDiv+".Open=true");
	}
	NomeObj.NextYPos = NomeObj.InitYPos;
	Tree(NomeObj, 0);
}

function Hide(Menu)	// Nasconde i sottomenu ricorsivamente
{
	var i;
	var StringSpace=Menu.ChildSpace;
	for (i=0; i<Menu.SubObj.length; i++)
	{
		Menu.SubObj[i].Div.Css.visibility = "hidden";
		if ( Menu.SubObj[i].SubObj.length>0 )
			Hide(eval(StringSpace+'Item'+Menu.SubObj[i].Name));
	}
	return;
}

function f_XPos(X)
{
	this.X=X;
	this.Css.left=this.X;
	return;
}

function f_YPos(Y)
{
	this.Y=Y;
	this.Css.top=this.Y;
	return;
}


function f_ZPos(Z)
{
	this.Z=Z;
	this.Css.zIndex=this.Z;
	return;
}

function f_Visible()
{
	if (this.Css.visibility=="hidden" || this.Css.visibility=="hide")
		return true;
	else
		return false;
}

function Free(Menu)	// Svuota gli oggetti ricorsivamente
{
	var i;
	var StringSpace=Menu.ChildSpace;
	for (i=0; i<Menu.SubObj.length; i++)
	{
		if ( Menu.SubObj[i].SubObj.length>0 )
			Free(eval(StringSpace+'Item'+Menu.SubObj[i].Name));
	}
	Menu.SubObj = new Array();
	return;
}
/*

function PreloadImages(Menu)
{
	var LocalImagesPath=ImagesPath.substring(3);
	var i;
	for (i=0; i<Menu.SubObj.length; i++)
	{
		Menu.SubObj[i].PreImg = new Image;
		Menu.SubObj[i].PreImg.src = LocalImagesPath+Menu.SubObj[i].Name+"-b.gif";
		if ( Menu.SubObj[i].SubObj.length>0 )
			PreloadImages(eval('Item'+Menu.SubObj[i].Name));
	}
}

function OpenMenu(Menu)	// Apre un menu principale
{
	Close(eval('MainMenu'));
	if ( OpenName!="" && OpenName!=Menu.Name && Menu.Name.substr(0, Menu.Name.indexOf("_"))!=OpenName )
	{
		if ( OpenName==ClickedName )
			eval('Item'+OpenName+'.Div.Img.src="'+ImagesPath+OpenName+'-c.gif"');
		else
			eval('Item'+OpenName+'.Div.Img.src="'+ImagesPath+OpenName+'-a.gif"');
		OpenName="";
	}
	if ( Menu.SubObj.length>0 )
	{
		Menu.Open = true;
		if ( Menu.Name.indexOf("_")==-1 )
			OpenName=Menu.Name;
	}
	Hide(eval('MainMenu'));
	Tree(eval('MainMenu'), 0);
	return;
}

function Open(Menu)	// Apre un sottomenu
{
	Close(eval('Item'+Menu.Name.substr(0, Menu.Name.lastIndexOf("_"))));
	if ( Menu.SubObj.length>0 )
		Menu.Open = true;
	Hide(eval('MainMenu'));
	Tree(eval('MainMenu'), 0);
	return;
}


function Close(Menu)	// Chiude SOLO i sottomenu ricorsivamente
{
	var i;
	for (i=0; i<Menu.SubObj.length; i++)
		if ( Menu.SubObj[i].SubObj.length>0 )
		{
			Menu.SubObj[i].Open = false;
			Close(eval('Item'+Menu.SubObj[i].Name));
		}
	return;
}
function OverImage(Name)
{
	if ( ClearMenuTimer )
		clearTimeout(ClearMenuTimer);
	OverMenu++;
	if ( OpenName!="" && OpenName!=Name && Name.substr(0, Name.indexOf("_"))!=OpenName )
	{
		if ( OpenName==ClickedName )
			eval('Item'+OpenName+'.Div.Img.src="'+ImagesPath+OpenName+'-c.gif"');
		else
			eval('Item'+OpenName+'.Div.Img.src="'+ImagesPath+OpenName+'-a.gif"');
		OpenName="";
	}
	eval('Item'+Name+'.Div.Img.src="'+ImagesPath+Name+'-b.gif"');
}

function OutImage(Name)
{
	OverMenu--;
	if ( ClickedName!=Name && OpenName!=Name )
		eval('Item'+Name+'.Div.Img.src="'+ImagesPath+Name+'-a.gif"');
	ClearMenuTimer=setTimeout("Clear(MainMenu)", 1000);
}

function Clear(Menu)
{
	if ( OverMenu<=0 )
	{
		if ( OpenName!="" )
		{
			if ( OpenName!=ClickedName )
				eval('Item'+OpenName+'.Div.Img.src="'+ImagesPath+OpenName+'-a.gif"');
			else
				eval('Item'+OpenName+'.Div.Img.src="'+ImagesPath+OpenName+'-c.gif"');
			OpenName="";
		}
		if ( Menu.SubObj.length>0 )
			Menu.Open = false;
		Close(Menu);
		Hide(eval('MainMenu'));
		Tree(eval('MainMenu'), 0);
		OverMenu=0;
	}
}

function ClickImageMenu(Name)
{
	Clicked.Div.Css.visibility = "hidden";
	if ( (ClickedName != "") && (ClickedName != Name) )	// Se l'item 'clicked' esiste ed e' un altro , 'declicca' quello che lo era...
	{
		Clicked.Div.Css.visibility = "hidden";
		eval('Item'+ClickedName+'.Div.Img.src="'+ImagesPath+ClickedName+'-a.gif"');
		eval('Clicked.Div.XPos( (Item'+Name+'.Div.X+Item'+Name+'.Div.Width/2-Clicked.Div.Width/2) )');
		Clicked.Div.Css.visibility = "visible";
	}
	if ( eval('Item'+Name+'.SubObj.length')>0 )
		eval('Item'+Name+'.Div.Img.src="'+ImagesPath+Name+'-c.gif"');
	else
		eval('Item'+Name+'.Div.Img.src="'+ImagesPath+Name+'-b.gif"');
	ClickedName = Name;
	if ( ClickedName=="1" )
		MenuFrame.document.images["logo"].src="../../../images/common/spessore.gif";
	else
		MenuFrame.document.images["logo"].src="../../../images/common/home/logo_chibro.gif";
}

function ClickImage(Name)
{
	OverMenu=0;
	var IndexOfUnder=Name.indexOf("_");
	if ( IndexOfUnder>-1 )
	{
		UnderName=Name.substr(0, IndexOfUnder);
		Menu=eval("Item"+UnderName);
		if ( Menu.Open )
		{
			if ( Menu.SubObj.length>0 )
				Menu.Open = false;
			eval("Close(Item"+UnderName+");");
			Hide(eval('MainMenu'));
			Tree(eval('MainMenu'), 0);
		}
		ClickImageMenu(UnderName);
	}
}
*/
function GestisciHelp(NomeDiv, DivId)
{
RifDiv = top.Main.document.getElementById(NomeDiv+DivId);	
if (RifDiv.style.visibility=='visible')
	{
		RifDiv.style.visibility='hidden';
	}
	else
	{
		RifDiv.style.visibility='visible';	
	}
}







function caricaIndex()
{
	indexURL = "index.php"
//	alert(typeof(top.opener.location.href))
	if (typeof(top.opener)!="undefined")
	{
		if (top.opener.location)
		{
			if (typeof(top.opener.location.href)!="unknown")
			{
				top.opener.location.href = indexURL;
				window.close()
			}
			else
			{
//				top.location.href = indexURL
				finestra_login = window.open(indexURL,"finestraLogin")
				top.close();
			}
		}
	}
}

//JavaScript Calendar
//

  nombresMes = Array("","january","february","march","april","may","june","july","august","september","october","november","december");

  var anoInicial = 1900;
  var anoFinal = 2100;
  var ano;
  var mes;
  var dia;
  var campoDeRetorno;
  var titulo;

  function diasDelMes(ano,mes) {
	         if ((mes==1)||(mes==3)||(mes==5)||(mes==7)||(mes==8)||(mes==10)||(mes==12)) dias=31
			   else if ((mes==4)||(mes==6)||(mes==9)||(mes==11)) dias=31
				     else if ((((ano % 100)==0) && ((ano % 400)==0)) || (((ano % 100)!=0) && ((ano % 4)==0))) dias = 29
					       else dias = 28;
					         return dias;
  };

  function crearSelectorMes(mesActual) {
	    var selectorMes = "";
	      selectorMes = "<select name='mes' size='1' onChange='javascript:opener.dibujarMes(self.document.Forma1.ano[self.document.Forma1.ano.selectedIndex].value,self.document.Forma1.mes[self.document.Forma1.mes.selectedIndex].value);'>\r\n";
	        for (var i=1; i<=12; i++) {
			    selectorMes = selectorMes + "  <option value='" + i + "'";
			        if (i == mesActual) selectorMes = selectorMes + " selected";
				    selectorMes = selectorMes + ">" + nombresMes[i] + "</option>\r\n";
				      }
				        selectorMes = selectorMes + "</select>\r\n";
					  return selectorMes;
  }

  function crearSelectorAno(anoActual) {
	    var selectorAno = "";
	      selectorAno = "<select name='ano' size='1' onChange='javascript:opener.dibujarMes(self.document.Forma1.ano[self.document.Forma1.ano.selectedIndex].value,self.document.Forma1.mes[self.document.Forma1.mes.selectedIndex].value);'>\r\n";
	        for (var i=anoInicial; i<=anoFinal; i++) {
			    selectorAno = selectorAno + "  <option value='" + i + "'";
			        if (i == anoActual) selectorAno = selectorAno + " selected";
				    selectorAno = selectorAno + ">" + i + "</option>\r\n";
				      }
				        selectorAno = selectorAno + "</select>";
					  return selectorAno;
  }

  function crearTablaDias(numeroAno,numeroMes) {
	    var tabla = "<table border='0' cellpadding='2' cellspacing='0' bgcolor='#ffffff'>\r\n  <tr>";
	      var fechaInicio = new Date();
	        fechaInicio.setYear(numeroAno);
	        
		  fechaInicio.setMonth(numeroMes-1);
		    fechaInicio.setDate(1);
		      ajuste = fechaInicio.getDay();
		        tabla = tabla + "\r\n    <td align='center'>Su</td><td align='center'>Mo</td><td align='center'>Tu</td><td align='center'>We</td><td align='center'>Th</td><td align='center'>Fr</td><td align='center'>Sa</td></div>\r\n  <tr>";
			  for (var j=1; j<=ajuste; j++) {
				      tabla = tabla + "\r\n    <td></td>";
				        }
					  for (var i=1; i<10; i++) {
						      tabla = tabla + "\r\n    <td"
						          if ((i == diaHoy()) && (numeroMes == mesHoy()) && (numeroAno == anoHoy())) tabla = tabla + " bgcolor='#ff0000'";
							      tabla = tabla + "><input type='button' value='0" + i + "' onClick='javascript:opener.ano=self.document.Forma1.ano[self.document.Forma1.ano.selectedIndex].value; opener.mes=self.document.Forma1.mes[self.document.Forma1.mes.selectedIndex].value; opener.dia=" + i + "; self.close();'></td>";
							          if (((i+ajuste) % 7)==0) tabla = tabla + "\r\n  </tr>\r\n\  <tr>";
								    }
								      for (var i=10; i<=diasDelMes(numeroAno,numeroMes); i++) {
									          tabla = tabla + "\r\n    <td"
										      if ((i == diaHoy()) && (numeroMes == mesHoy()) && (numeroAno == anoHoy())) tabla = tabla + " bgcolor='#ff0000'";
										          tabla = tabla + "><input type='button' value='" + i + "' onClick='javascript:opener.ano=self.document.Forma1.ano[self.document.Forma1.ano.selectedIndex].value; opener.mes=self.document.Forma1.mes[self.document.Forma1.mes.selectedIndex].value; opener.dia=" + i + ";self.close(); '></td>";
											      if (((i+ajuste) % 7)==0) tabla = tabla + "\r\n  </tr>\r\n\  <tr>";
											        }
												  tabla = tabla + "\r\n  </tr>\r\n</table>";
												    return tabla;
  }

  function dibujarMes(numeroAno,numeroMes) {
	    var html = "";
	      html = html + "<html>\r\n<head>\r\n  <title>" + titulo + "</title>\r\n</head>\r\n<body bgcolor='#ffffff' onClick='opener.escribirFecha();'>\r\n  <div align='center'>\r\n  <form name='Forma1'>\r\n";
	        html = html + crearSelectorMes(numeroMes);
		  html = html + crearSelectorAno(numeroAno);
		    html = html + crearTablaDias(numeroAno,numeroMes);
		      html = html + "<center><p><input type='button' name='hoy' value='today: " + ano + "-" + mes + "-" + dia + "' onClick='javascript:self.close();'></center>";
		        html = html + "\r\n  </form>\r\n  </div>\r\n</body>\r\n</html>\r\n";
			  ventana = open("","calendario","width=220,height=270");
			    ventana.document.open();
			      ventana.document.writeln(html);
			        ventana.document.close();
				      ventana.focus();
  }

  function anoHoy() {
	    var fecha = new Date();
	      if (navigator.appName == "Netscape") return fecha.getYear() + 1900
		        else return fecha.getYear();
  }

  function mesHoy() {
	    var fecha = new Date();
	      return fecha.getMonth()+1;
  }

  function diaHoy() {
	    var fecha = new Date();
	      return fecha.getDate();
  }

  function pedirFecha(campoTexto,nombreCampo) {  	   	   	 
	    ano = anoHoy();
	      mes = mesHoy();
	        dia = diaHoy();	        
		     campoDeRetorno = campoTexto;
		     
		      titulo = nombreCampo;
		       dibujarMes(ano,mes);
  }

  function escribirFecha() {

       if (dia<10) dia_="0"+dia; else dia_=dia;
	   if (mes<10) mes_="0"+mes; else mes_=mes;
		campoDeRetorno.value = dia_ + "-" + mes_ + "-" + ano; 



	    
  }


  
//
//This check a form  for numeric values
//display an error message on keypress!=numeric values
function CheckInput(name,idContainer){
	idContainer=document.getElementById(idContainer);
	temp_name=name.value;
	text="Only numbers allowed";
	text_html="<font color='red'>"+text+"</font>";
	if (event.keyCode<48 || event.keyCode>57){
	  if (idContainer.innerText.search(text)==-1) idContainer.insertAdjacentHTML("beforeEnd",text_html);	  
	  name.value=temp_name.substr(0,temp_name.length-1);
	
	}
	   
}

function check_email(email) {
	invalidChars = " /:,;"
		if (email == "") {
			return true
		}
		for (i=0; i<invalidChars.length; i++) {	
			badChar = invalidChars.charAt(i)
			if (email.indexOf(badChar,0) > -1) {
				return false
			}
		}
		atPos = email.indexOf("@",1)
		if (atPos == -1) {
			return false
		}
		if (email.indexOf("@",atPos+1) != -1) {
			return false
		}
		periodPos = email.indexOf(".",atPos)
		if (periodPos == -1) {					
			return false
		}
		if (periodPos+3 > email.length)	{		
			return false
		}
		return true
}
