//Detección del navegador
NN4 = (document.layers)? true:false
IE4 = (document.all)? true:false
NN6 = (!document.all && document.getElementById)? true:false
posy=10;
var timeout,altoWin,anchoWin;

if (NN4) {
  mostrarSi= 'show';
  mostrarNo= 'hide';
	}
if (IE4 || NN6) {
  mostrarSi= 'visible';
  mostrarNo= 'hidden';
	}
	
//###########################################
//	CapaDiv
//###########################################
function CapaDiv(nombre,objPadre)
{
	this.nombre=nombre;
	if(NN4) this.obj=(eval("document.layers['"+nombre+"']"));
	if(NN6) this.obj=(eval('document.getElementById("' + nombre + '").style'));
	if(IE4) this.obj=(eval('document.all["' + nombre+ '"].style'));
	this.incv=10
	this.inch=10
	this.scrolling=false
	if(NN4) {this.altoini=this.obj.clip.height; this.anchoini=this.obj.clip.width}
	if(NN6) {this.altoini=eval('document.getElementById("' + nombre + '").offsetHeight'); this.anchoini=eval('document.getElementById("' + nombre + '").offsetWidth');}
	if(IE4) {this.altoini=eval(nombre+".offsetHeight"); this.anchoini=eval(nombre+".offsetWidth")}
	this.alto=this.altoini
	this.ancho=this.anchoini
	if (this.obj.left) this.x=parseInt(this.obj.left); else this.x=0;
	if (this.obj.top) this.y=parseInt(this.obj.top); else this.y=0;
	this.absx=this.x;
	this.absy=this.y;
	this.visAlto=this.alto
	this.antvisAlto=this.alto
	this.visAncho=this.ancho
	this.antvisAncho=this.ancho
	this.dy=0;
	this.dx=0;
	this.obj.visibility =mostrarSi
	this.hijo=[]
	if (objPadre) objPadre.PonHijo(this); else this.padre=null;
}
//###########################################
CapaDiv.prototype.PonHijo = function(objHijo)
{
	objHijo.padre=this
	this.hijo[this.hijo.length]=objHijo
}
//###########################################
CapaDiv.prototype.Situar = function(x,y)
	{
	this.x=x; this.y=y;
	this.absx=x; this.absy=y;
	if (this.padre)
		{this.absx=this.padre.absx+x;this.absy=this.padre.absy+y;this.obj.left = this.padre.absx+x+this.dx; this.obj.top= this.padre.absy+y+this.dy;}
	else
		{this.obj.left = x+this.dx; this.obj.top= y+this.dy;}
	for(var n=0;n<this.hijo.length;n++) this.hijo[n].Situar(this.hijo[n].x,this.hijo[n].y)
	}
//###########################################
CapaDiv.prototype.SituarWin = function(x,y,alto,ancho)
{this.visAlto=alto
	if(!ancho) ancho=this.ancho; 
	this.visAncho=ancho
	if (IE4) this.obj.clip="rect("+Math.abs(this.dy)+","+(Math.abs(this.dx)+ancho)+","+(Math.abs(this.dy)+alto)+","+Math.abs(this.dx)+")";
	if (NN6)
		{
		this.obj.clip="rect("+Math.abs(this.dy)+","+(Math.abs(this.dx)+ancho)+","+(Math.abs(this.dy)+alto)+","+Math.abs(this.dx)+")";
		}
	if (NN4) 
		{
		this.obj.clip.left=Math.abs(this.dx)
		this.obj.clip.top=Math.abs(this.dy)
		this.obj.clip.width=ancho
		this.obj.clip.height=alto
		}
	this.Situar(x,y)
}
//###########################################
CapaDiv.prototype.Mostrar = function(ver)
	{
	if (ver) {this.obj.visibility =mostrarSi; this.visAlto=this.antvisAlto;this.alto=this.altoini; this.visAncho=this.antvisAncho;this.ancho=this.anchoini}
	else {this.obj.visibility =mostrarNo; this.antvisAlto=this.visAlto; this.visAlto=0; this.antvisAncho=this.visAncho; this.visAncho=0; this.alto=0; this.ancho=0}
	}
//###########################################
CapaDiv.prototype.scrollArriba = function(capa,inte)
{
	this.dy-=this.incv
	if(Math.abs(this.dy)+this.visAlto>this.alto) {this.scrolling=false; this.dy=this.visAlto-this.alto;}
	this.SituarWin(this.x,this.y,this.visAlto,this.visAncho);
	if (inte) setTimeout(inte,10);
	if(this.scrolling)
		if (inte) {setTimeout(capa+".scrollArriba('"+capa+"','"+inte+"')",10);}
		else setTimeout(capa+".scrollArriba('"+capa+"')",10);
}
//###########################################
CapaDiv.prototype.scrollAbajo = function(capa,inte)
{
	this.dy+=this.incv
	if(this.dy>0) {this.scrolling=false; this.dy=0;}
	this.SituarWin(this.x,this.y,this.visAlto,this.visAncho);
	if (inte) setTimeout(inte,10);
	if(this.scrolling) 
		if (inte) {setTimeout(capa+".scrollAbajo('"+capa+"','"+inte+"')",10); setTimeout(inte,10);}
		else setTimeout(capa+".scrollAbajo('"+capa+"')",10);
}
//###########################################
CapaDiv.prototype.scrollIzquierda = function(capa,inte)
{
	this.dx-=this.inch
	if(Math.abs(this.dx)+this.visAncho>this.ancho) {this.scrolling=false; this.dx=this.visAncho-this.ancho;}
	this.SituarWin(this.x,this.y,this.visAlto,this.visAncho);
	if (inte) setTimeout(inte,10);
	if(this.scrolling) 
		if (inte) {setTimeout(capa+".scrollIzquierda('"+capa+"','"+inte+"')",10); setTimeout(inte,10);}
		else setTimeout(capa+".scrollIzquierda('"+capa+"')",10);
}
//###########################################
CapaDiv.prototype.scrollDerecha = function(capa,inte)
{
	this.dx+=this.inch
	if(this.dx>0) {this.scrolling=false; this.dx=0;}
	this.SituarWin(this.x,this.y,this.visAlto,this.visAncho);
	if (inte) setTimeout(inte,10);
	if(this.scrolling) 
		if (inte) {setTimeout(capa+".scrollDerecha('"+capa+"','"+inte+"')",10); setTimeout(inte,10);}
		else setTimeout(capa+".scrollDerecha('"+capa+"')",10);
}
//###########################################
CapaDiv.prototype.scroll = function(capa,dir,inte)
{
	this.scrolling=true
	if(dir==1) this.scrollArriba(capa,inte)
	if(dir==2) this.scrollAbajo(capa,inte)
	if(dir==3) this.scrollIzquierda(capa,inte)
	if(dir==4) this.scrollDerecha(capa,inte)
}
//###########################################
CapaDiv.prototype.scrollStop = function(){this.scrolling=false;}
//###########################################
//	FIN CapaDiv
//###########################################

//###########################################
//	Zona
//###########################################
function Zona(tit,cont,scroll,m)
{
	this.margen=m
	this.scrolling=false
	this.capa1= new CapaDiv(tit);
	this.capa2= new CapaDiv(cont,this.capa1);
	this.capa3= new CapaDiv(scroll,this.capa2)
	this.x=this.capa1.x;
	this.y=this.capa1.y;
	this.alto=this.capa1.alto+this.capa2.alto+(this.margen*2)
	this.ancho=this.capa1.ancho+this.capa3.ancho+this.margen
	this.visAlto=this.alto
	this.visAncho=this.ancho
	this.mini=false
	this.oculta=false;
	this.existe=true;
}
//###########################################
Zona.prototype.Situar=function(x,y,alto)
{
	var vis=alto-this.capa1.alto-(2*this.margen)
	this.capa2.dy=0;
	this.capa2.dx=0;
	this.x=x;
	this.y=y
	this.capa1.Situar(x+this.margen,y+this.margen)
	if(vis>=this.capa2.alto) {vis=this.capa2.alto; this.capa3.Mostrar(false)} else if(!this.mini & !this.oculta) this.capa3.Mostrar(true)
	if(!this.mini) this.visAlto=this.capa1.alto+vis+(this.margen*2); else this.visAlto=this.capa1.alto+this.margen;
	this.capa2.SituarWin(0,this.capa1.visAlto+this.margen,vis);
	this.capa3.Situar(this.capa2.ancho,this.capa2.visAlto-this.capa3.alto)
}
//###########################################
Zona.prototype.Mostrar=function(v)
{
if(v)
	{
	if(!this.existe) return;
	this.oculta=false
	this.capa1.Mostrar(true)
	if(this.mini) {this.capa2.Mostrar(false);this.capa3.Mostrar(false);} else {this.capa2.Mostrar(true);this.capa3.Mostrar(true);}	
	this.visAlto=this.capa1.alto+this.capa2.visAlto+(this.margen*2)
	this.alto=this.capa1.alto+this.capa2.alto+(this.margen*2)
	this.visAncho=this.capa1.ancho+this.capa2.visAncho+this.margen
	this.ancho=this.capa1.ancho+this.capa3.anchoini+this.margen
	}
else
	{
	this.oculta=true
	this.capa1.Mostrar(false)
	this.capa2.Mostrar(false)
	this.capa3.Mostrar(false)
	this.visAlto=0; this.visAncho=0
	this.alto=0; this.ancho=0
	}
}
//###########################################
Zona.prototype.minimizar=function()
{
	if(this.mini) return
	this.mini=true
	this.capa2.Mostrar(false)
	this.capa3.Mostrar(false)
	this.visAlto=this.capa1.visAlto+this.margen
	this.alto=this.capa1.alto+this.margen
}
//###########################################
Zona.prototype.restaurar=function()
{
	if(!this.mini) return
	this.mini=false
	this.capa2.Mostrar(true)
	this.capa3.Mostrar(true)
	this.visAlto=this.capa1.alto+this.capa2.visAlto+(this.margen*2)
	this.alto=this.capa1.alto+this.capa2.alto+(this.margen*2)
}
//###########################################
Zona.prototype.scroll=function(zona,dir) { this.scrolling=true; this.capa2.scroll(zona+".capa2",dir)}
//###########################################
Zona.prototype.scrollStop=function() { this.scrolling=false; this.capa2.scrollStop()}
//###########################################
//	FIN Zona
//###########################################

//###########################################
//	winScroll
//###########################################
function winScroll(nombre,cont,m)
{
	this.cvAlto=25; this.cvAncho=15 //alto y ancho de los controles verticales (flechas y deslizador)
	this.nombre=nombre		
	this.margen=m
	this.anchod=this.cvAlto;
	this.scrolling=false;
	this.DeslizaH=false; this.DeslizaV=false;
	this.clickXAnt=0; this.clickYAnt=0;
	this.capa1= new CapaDiv(cont);
	this.capa2= new CapaDiv(cont+"far",this.capa1);
	this.capa3= new CapaDiv(cont+"fab",this.capa2);
	this.capa4= new CapaDiv(cont+"fiz",this.capa1);
	this.capa5= new CapaDiv(cont+"fde",this.capa4);
	this.capa6= new CapaDiv(cont+"DV",this.capa2);
	this.capa7= new CapaDiv(cont+"DH",this.capa4);
	this.x=this.capa1.x;
	this.y=this.capa1.y;
	this.alto=this.capa1.alto+this.capa4.alto+this.margen
	this.ancho=this.capa1.ancho+this.capa2.ancho+this.margen
	this.visAlto=this.alto
	this.visAncho=this.ancho
	this.mini=false
	this.maxdx=null; this.maxdy=null
	this.factorv=null; this.factorh=null
}
//###########################################
winScroll.prototype.prueba=function()
{
}
//###########################################
winScroll.prototype.DV=function(x,y)
{
	var n=this.capa1.dy+((this.clickYAnt-y)/this.factorv);
	if(n>0) n=0;
	if(n<-this.maxdy) n=-this.maxdy;
	this.capa1.dy=n
	this.clickYAnt=y
	this.capa1.SituarWin(this.capa1.x,this.capa1.y,this.capa1.visAlto,this.capa1.visAncho)
	this.capa6.Situar(0,this.anchod-(this.capa1.dy*this.factorv))
	if(x<this.capa6.absx-10 | x>this.capa6.absx+this.anchod | y<this.capa6.absy | y>this.capa6.absy+this.anchod) this.DeslizaV=0;

}
//###########################################
winScroll.prototype.DH=function(x,y)
{
	var n=this.capa1.dx+((this.clickXAnt-x)/this.factorh);
	if(n>0) n=0;
	if(n<-this.maxdx) n=-this.maxdx;
	this.capa1.dx=n
	this.clickXAnt=x
	this.capa1.SituarWin(this.capa1.x,this.capa1.y,this.capa1.visAlto,this.capa1.visAncho)
	this.capa7.Situar(this.anchod-(this.capa1.dx*this.factorh),0)
	if(x<this.capa7.absx | x>this.capa7.absx+this.anchod | y<this.capa7.absy-10 | y>this.capa7.absy+this.anchod) this.DeslizaH=0;
}
//###########################################
winScroll.prototype.DeslizaHor=function(e)
{
if (NN4 || NN6) {var xClick=e.pageX; var yClick=e.pageY}
if (IE4) {var xClick=event.x; var yClick=event.y}
this.clickXAnt=xClick; this.clickYAnt=yClick
this.DeslizaH=1;
}
//###########################################
winScroll.prototype.DeslizaVer=function(e)
{
if (NN4 || NN6) {var xClick=e.pageX; var yClick=e.pageY}
if (IE4) {var xClick=event.x; var yClick=event.y}
this.clickXAnt=xClick; this.clickYAnt=yClick
this.DeslizaV=1;
}
//###########################################
winScroll.prototype.Situar=function(x,y,alto,ancho)
{
	var visAlto
	var visAncho
	var tempx,tempy,tempAncho,tempAlto
	this.capa1.dy=0; this.capa1.dx=0;
	this.capa2.Mostrar(true);this.capa3.Mostrar(true);this.capa4.Mostrar(true);this.capa5.Mostrar(true);
	if (this.capa1.alto<=alto & this.capa1.ancho<=ancho)
		{this.capa2.Mostrar(false);this.capa3.Mostrar(false);this.capa4.Mostrar(false);this.capa5.Mostrar(false);this.capa6.Mostrar(false);this.capa7.Mostrar(false);}
	else
		if (this.capa1.alto>alto)
			{
			this.capa2.Mostrar(true);
			this.capa3.Mostrar(true);
			this.capa6.Mostrar(true);
			if(this.capa1.ancho>ancho-this.margen-this.capa2.ancho)
				{this.capa4.Mostrar(true);
				this.capa5.Mostrar(true);
				this.capa7.Mostrar(true);}
			else
				{this.capa4.Mostrar(false);
				this.capa5.Mostrar(false);
				this.capa7.Mostrar(false);}
			}
		else
			{
			this.capa4.Mostrar(true)
			this.capa5.Mostrar(true)
			this.capa7.Mostrar(true)
			if(this.capa1.alto>alto-this.margen-this.capa3.alto)
				{this.capa2.Mostrar(true);
				this.capa3.Mostrar(true);
				this.capa6.Mostrar(true);}
			else
				{this.capa2.Mostrar(false);
				this.capa3.Mostrar(false);
				this.capa6.Mostrar(false);}
			}
	visAlto=alto-this.capa4.alto;
	visAncho=ancho-this.capa2.ancho;
	if(this.capa2.ancho>0) visAncho-=this.margen;
	if(this.capa4.alto>0) visAlto-=this.margen;
	if(visAlto>this.capa1.alto) visAlto=this.capa1.alto;
	if(visAncho>this.capa1.ancho) visAncho=this.capa1.ancho;
	this.ancho=visAncho+this.capa2.ancho
	this.alto=visAlto+this.capa4.alto
	if(this.capa2.ancho>0) this.ancho+=this.margen;
	if(this.capa4.alto>0) this.alto+=this.margen;
	this.capa1.SituarWin(x+((ancho-this.ancho)/2),y+((alto-this.alto)/2),visAlto,visAncho)
	this.capa2.Situar(this.capa1.visAncho+this.margen,0)
	this.capa3.Situar(0,this.capa1.visAlto-this.cvAlto)
	this.capa6.Situar(0,this.cvAlto)
	this.capa4.Situar(0,this.capa1.visAlto+this.margen)
	this.capa5.Situar(this.capa1.visAncho-this.cvAlto,0)
	this.capa7.Situar(this.cvAlto,0)
	//this.capa2.obj.height=visAlto
	//this.capa3.obj.width=visAncho
	this.x=x+((ancho-this.ancho)/2);
	this.y=y+((alto-this.alto)/2);
	this.maxdy=this.capa1.alto-this.capa1.visAlto;
	this.factorv=(this.capa1.visAlto-(3*this.anchod))/this.maxdy
	this.maxdx=this.capa1.ancho-this.capa1.visAncho;
	this.factorh=(this.capa1.visAncho-(3*this.anchod))/this.maxdx
}
//###########################################
winScroll.prototype.deslizador=function(dir)
{
	if(dir==1 | dir==2) this.capa6.Situar(0,this.anchod-(this.capa1.dy*this.factorv))
	if(dir==3 | dir==4) this.capa7.Situar(this.anchod-(this.capa1.dx*this.factorh),0)
}
//###########################################
winScroll.prototype.scroll=function(zona,dir){this.scrolling=true; this.capa1.scroll(zona+".capa1",dir,zona+".deslizador("+dir+")")}
//###########################################
winScroll.prototype.scrollStop=function() { this.scrolling=false; this.capa1.scrollStop()}
//###########################################
winScroll.prototype.abreImagen=function(img)
{
var wndAncho,wndAlto
var alto=screen.availHeight;
var ancho=screen.availWidth;
var imgAlto=this.capa1.alto+50
var imgAncho=this.capa1.ancho+30
var scrollbars=0;
if(imgAncho<=ancho) wndAncho=imgAncho; else {wndAncho=ancho;scrollbars=1;}
if(imgAlto<=alto) wndAlto=imgAlto; else {wndAlto=alto;scrollbars=1;}
param="toolbar=0,location=0,directories=0,status=0,scrollbars="+scrollbars+",resizable=1,menubar=0,width="+wndAncho+",dependent=1,height="+wndAlto
var wnd=window.open("","Imagen",param);
wnd.resizeTo(wndAncho,wndAlto)
wnd.moveTo((ancho-wndAncho)/2,(alto-wndAlto)/2);
wnd.focus();
wnd.document.write('<html><head><title>-</title></head><body topmargin="10" leftmargin="10" marginheight="10" marginwidth="10">')
wnd.document.write('<div align="center"><center><table border="0" cellpadding="0" cellspacing="0" width="100%" height="100%">')
wnd.document.write('<tr><td width="100%" align="center"><img border="0" src="')
if(NN4)
	{var obj=eval("document."+"imgCont"+".document.images['"+img+"']")
	wnd.document.write(obj.src+'"')}
else
	{
	var obj=eval('document.images["' + img + '"]')
	wnd.document.write(obj.src+'"')
	}
wnd.document.write('></td></tr></table></center></div></body></html>')
wnd.document.close()
return false
}
//###########################################
//	FIN winScroll
//###########################################

