
var mtlayers_browser = document.layers?1:(document.all?2:(document.getElementById?3:0));
var agt=navigator.userAgent.toLowerCase()
// alert( agt)
function Type(obj,oper)
{
return (typeof(obj)).indexOf(oper)>= 0;
}
// Funzioni per netscape
function SetMousEvents(layer)
{
if(mtlayers_browser == 1 && layer != undefined && layer != null)
	{
    layer.releaseEvents(Event.MOUSEOVER);
	layer.releaseEvents(Event.MOUSEOUT);
	layer.captureEvents(Event.MOUSEOVER);
	layer.onmouseover = ClrInt;
	layer.captureEvents(Event.MOUSEOUT);
	layer.onmouseout = SetInt;
	}
}
function ClearMousEvents(layer)
{
if(mtlayers_browser == 1 && layer != undefined && layer != null)
	{
	layer.releaseEvents(Event.MOUSEOVER);
	layer.releaseEvents(Event.MOUSEOUT);
	}
}
function SetInt(ev)
{
if (mtlayers_browser == 1)
		{
      if((ev == undefined || ev.target.id == undefined) && this._layer != null)
			{
            SetMousEvents(this._layer);
			return true;
			}
        if(ev != undefined && ev.target.id == undefined) return true;
		}
if(this.tipooggetto != undefined)
	{
    c=mtlayers_gruppi.length;
	while(c--)
		if(mtlayers_gruppi[c] == this)
		break;
    }
else
 c=FindGroupNo(this);

if(this.timerId != null)
	clearInterval(this.timerId);
this.timerId=setInterval("CloseAllLayer("+c+")",grp.timerInt);
}

function ClrInt(ev)

{

if(mtlayers_browser == 1 && ev != undefined && ev.target.id == undefined) return;
ClearMousEvents(this._layer)

if(this.timerId != null)
	{
	clearInterval(this.timerId);
	this.timerId = null;
	}
}
//----------

//--- funzioni per layer
function getLayer(name)
	{
switch(mtlayers_browser)
{
case 1: return document.layers[name];
case 2: return document.all[name];
}
return document.getElementById(name);
}
function SetLayerVisibility(lay,Visib)
{
if(mtlayers_browser == 1)
	lay.visibility = Visib ? 'show':'hide';
else
	lay.style.visibility = Visib ? 'visible':'hidden';
 }
function addLayer( name,  image, namepadre)
{

this.layers[this.layers.length]= new Array(name,image,lay=getLayer(name),this.findLayer(namepadre),0);
}
function findLayer(name)
{
if(name.length>0)
{
c=this.layers.length;
while(c--)
	{
	if(this.layers[c][0] == name)
		return c;
	}
}
return -1;
}
function showLayer(layer)
{
if(Type(layer,"string"))
{
grp = (!this.tipooggetto || this.tipooggetto != "layersGroup")?FindGroup(layer):this;
if((layer=grp.findLayer(layer)) < 0) return;
layern=grp.layers[layer];
this._layer=layern[2];
grp.ClrInt();
}
else if(	Type(layer,"object"))
	{
	grp = mtlayers_gruppi.length;
	while(grp--)
		{
		layern = mtlayers_gruppi[grp].layers;
		n=layern.length;
			while(n--)
				if(layern[n][3] == layer)
					{
					layern=layern[n];
					break;
					}
		}
	if(grp < 0) return null;
	}
else return null;
layern[4]=3;
while(layern[3]>=0)
	{
	layern=grp.layers[layern[3]];
	layern[4]=2;
	}
layern =grp.layers.length;
while(layern--)
	{
	lay = grp.layers[layern];
	if(lay[4]>1)
		{
		SetLayerVisibility(lay[2],1);
		if(grp.ImgOn != null) grp.ImgOn(lay[1]);
		lay[4]=1;
		}
	else
		{
		SetLayerVisibility(lay[2],0)
		if(grp.ImgOff != null) grp.ImgOff(lay[1]);
		lay[4]=0;
		}
	}
return grp;
}
function showLayerTemp(name)
{
grp = this.showLayer(name);
if(grp == null) return null;
c=mtlayers_gruppi.length;
while(c--)
	if(mtlayers_gruppi[c] == grp)
		break;
if(grp.timerId != null)
	clearInterval(grp.timerId);
grp.timerId=setInterval("CloseAllLayer("+c+")",grp.timerInt);

}
function hideLayer(layer)
{
if(Type(layer,"string"))
{
grp = (!this.tipooggetto|| this.tipooggetto != "layersGroup")?FindGroup(layer):this;
if((layer=grp.findLayer(layer)) < 0) return;
layer=grp.layers[layer];
}
else if(	Type(layer,"object"))
	{
	grp = mtlayers_gruppi.length;
	while(grp--)
		{
		layer = mtlayers_gruppi[grp].layers;
		n=layer.length;
			while(n--)
				if(layer[n][2] == layer)
					{
					layer=layer[n];
					break;
					}
		}
	if(grp < 0) return null;
	}
else return null;
layer[4]=0;
SetLayerVisibility(layer[2],false);
if(grp.ImgOff != null) grp.ImgOff(layer[1]);
}
function CloseAllLayer(m)
{
if(!isNaN(m) && m>=0 && m<mtlayers_gruppi.length)
{
grp=mtlayers_gruppi[m];
grp.ClrInt();
lay=grp.layers.length;
while(lay-->0)
	{
	layer=grp.layers[lay];
	SetLayerVisibility(layer[2],false);
	layer[4]=0;
	if(grp.ImgOff != null) grp.ImgOff(layer[1]);
	}
}
}
function hideAll()
{
this.ClrInt();
lay=this.layers.length;
while(lay-->0)
	{
	layer=this.layers[lay];
	SetLayerVisibility(layer[2],false);
	layer[4]=0;
	if(this.ImgOff != null) this.ImgOff(layer[1]);
	}
}

function GetImage(layer)
{
if(Type(layer,"string"))
	{
	if((layer=this.findLayer(name)[2])>=0)
	 return this.layers[layer][1];

	}
return null;
}
function moveLayer(layer,left,top)
{
if((layer = getLayer(layer))<0) return;
switch(mtlayers_browser)
	{
	case 1:
		layer.pageX = left;
		layer.pageY = top;

	 break;
	case 2:
		layer.style.left = left;
		layer.style.top = top;
	 break;
	case 3:
		layer.style.left = left+"px";
		layer.style.top = top+"px";

	}
}

function getDim(layer)
{
if((layer = getLayer(layer))<0) return;
switch(mtlayers_browser)
	{
	case 1:
		return new Array(layer.pageX,layer.pageY,layer.clip.height,layer.clip.width);
			break;
	case 2:
	case 3:
		return new Array(layer.offsetLeft,layer.offsetTop,layer.offsetHeight,layer.offsetWidth);
		}

}


//++++++++++++++++++++++++++++++++
function FindGroup(layer)  // layer nome layer
{
var x= Type(layer,"string")?0:2;
grp=mtlayers_gruppi.length;
while(grp--)
	{
	layarr = mtlayers_gruppi[grp].layers;
	lay=layarr.length;
	while(lay--)
		if(layarr[lay][x]== layer)
			return mtlayers_gruppi[grp];
	}
return null;
}
//++++++++++++++++++++++++++++++++
function FindGroupNo(layer)   // layer puntatore a layer
{
var x= Type(layer,"string")?0:2;
grp=mtlayers_gruppi.length;
while(grp--)
	{
	layarr = mtlayers_gruppi[grp].layers;
	lay=layarr.length;
	while(lay--)
		if(layarr[lay][x]== layer)
			return grp;
	}
return -1;
}
var mtlayers_gruppi = new Array();

function layersGroup()
{
this.tipooggetto = "layersGroup";
this.timerId=null;
this.timerInt=1000;
this._layer=null;
this.layers = new Array();
this.findLayer = findLayer;
this.addLayer = addLayer;
this.showLayer = showLayer
this.hideLayer=hideLayer;
this.hideAll = hideAll;
this.showLayerTemp =showLayerTemp;
this.GetImage = GetImage;
this.ClrInt = ClrInt;
this.SetInt = SetInt;
this.moveLayer = moveLayer;
this.getDim= getDim;
this.ImgOn = null;
this.ImgOff = null;
mtlayers_gruppi[mtlayers_gruppi.length]= new Object(this);
}