//Variables globales

var filtros1=filtros2=0;
var pos=navigator.userAgent.indexOf("MSIE");if (pos>-1){ver1=navigator.userAgent.charAt(pos+5);ver2=navigator.userAgent.charAt(pos+7);if (ver1>5) filtros1=1;if ((ver1==5)&&(ver2>4)) filtros1=1;}
var pos=navigator.userAgent.indexOf("Gecko");if (pos>-1) filtros2=1;
function mete(obj, vel)
{
	var a=function (){obj.mueve()}
	return setInterval(a,vel);
}

//Objeto animación
//Constructor
function Animacion (id)
{//prompt('',id)
	this.id=id;
	this.posx_ori=0;
	this.posy_ori=0;
	this.ancho_ori=0;
	this.alto_ori=0;
	this.posx=0;
	this.posy=0;
	this.ancho=0;
	this.alto=0;
	this.destx=0;
	this.desty=0;
	this.dest_ancho=0;
	this.dest_alto=0;
	this.id_timer=0;
	this.velocidad=0;
	this.frames=0;
	this.frame_actual=0;
	this.trans=0;
	this.dest_trans=0;
	this.inicia=inicia_;
	this.destino=destino_;
	this.run=run_;
	this.mueve=mueve_;
	this.pasosx=new Array();
	this.pasosy=new Array();
	this.pasosan=new Array();
	this.pasosal=new Array();
	this.pasostrans=new Array();
	this.obj=null;
	this.pon_trans=pon_trans_;
}

function inicia_()
{
	this.obj=document.getElementById(this.id);
	var ancho_=this.obj.style.width;
	var alto_=this.obj.style.height;
	var posx_=this.obj.style.left;
	var posy_=this.obj.style.top;
	ancho_=ancho_.substr(0,ancho_.length-2);
	alto_=alto_.substr(0,alto_.length-2);
	posx_=posx_.substr(0,posx_.length-2);
	posy_=posy_.substr(0,posy_.length-2);
	this.posx_ori=posx_;
	this.posy_ori=posy_;
	this.ancho_ori=ancho_;
	this.alto_ori=alto_;
	this.posx=posx_;
	this.posy=posy_;
	this.ancho=ancho_;
	this.alto=alto_;
	this.destx=posx_;
	this.desty=posy_;
	this.dest_ancho=ancho_;
	this.dest_alto=alto_;
	this.trans=99.99;
	this.dest_trans=99.99;
}

function destino_(posx,posy,ancho,alto,trans,velocidad,frames)
{
	var x=n=0;
	if (posx!=-1) this.destx=posx;
	if (posy!=-1) this.desty=posy;
	if (ancho!=-1) this.dest_ancho=ancho;
	if (alto!=-1) this.dest_alto=alto;
	if (velocidad!=-1) this.velocidad=velocidad; else this.velocidad=50;
	if (frames!=-1) this.frames=frames; else this.frames=10;
	if (trans!=-1) this.dest_trans=trans; else this.dest_trans=99.99;
	this.frame_actual=0;

	this.pasosx=new Array(this.frames);
	this.pasosy=new Array(this.frames);
	this.pasosan=new Array(this.frames);
	this.pasosal=new Array(this.frames);
	this.pasostrans=new Array(this.frames);
	for (x=0;x<this.frames;x++)
	{
		this.pasosx[x]=this.posx;
		this.pasosy[x]=this.posy;
		this.pasosan[x]=this.ancho;
		this.pasosal[x]=this.alto;
		this.pasostrans[x]=this.trans;
	}
	//Cálculo de pasos
	//Posx
	if (this.posx!=this.destx)
	{
		var cantidad=this.destx-this.posx;
		var step=Math.round(cantidad/this.frames);
		n=parseInt(this.posx);
		for (x=0;x<this.frames;x++)
		{
			n+=step;
			if (x==this.frames-1 && n!=this.destx)
				this.pasosx[x]=this.destx;
			else
				this.pasosx[x]=n;
		}
	}
	//Posy
	if (this.posy!=this.desty)
	{
		var cantidad=this.desty-this.posy;
		var step=Math.round(cantidad/this.frames);
		n=parseInt(this.posy);
		for (x=0;x<this.frames;x++)
		{
			n+=step;
			if (x==this.frames-1 && n!=this.desty)
				this.pasosy[x]=this.desty;
			else
				this.pasosy[x]=n;
		}
	}
	//Ancho
	if (this.ancho!=this.dest_ancho)
	{
		var cantidad=this.dest_ancho-this.ancho;
		var step=Math.round(cantidad/this.frames);
		n=parseInt(this.ancho);
		for (x=0;x<this.frames;x++)
		{
			n+=step;
			if (x==this.frames-1 && n!=this.dest_ancho)
				this.pasosan[x]=this.dest_ancho;
			else
				this.pasosan[x]=n;
		}
	}
	//Alto
	if (this.alto!=this.dest_alto)
	{
		var cantidad=this.dest_alto-this.alto;
		var step=Math.round(cantidad/this.frames);
		n=parseInt(this.alto);
		for (x=0;x<this.frames;x++)
		{
			n+=step;
			if (x==this.frames-1 && n!=this.dest_alto)
				this.pasosal[x]=this.dest_alto;
			else
				this.pasosal[x]=n;
		}
	}

	//Transparencia
	if (this.trans!=this.dest_trans)
	{
		var cantidad=this.dest_trans-this.trans;
		var step=Math.round(cantidad/this.frames);
		n=parseInt(this.trans);
		for (x=0;x<this.frames;x++)
		{

			n+=step;
			if (x==this.frames-1 && n!=this.dest_trans)
				this.pasostrans[x]=this.dest_trans;
			else
				this.pasostrans[x]=n;
		}
	}
}

function run_()
{
	this.id_timer=mete(this,this.velocidad);
}

function mueve_()
{
	this.posx=this.pasosx[this.frame_actual];
	this.posy=this.pasosy[this.frame_actual];
	this.ancho=this.pasosan[this.frame_actual];
	this.alto=this.pasosal[this.frame_actual];
	this.trans=this.pasostrans[this.frame_actual];
	this.obj.style.left=this.posx+'px';
	this.obj.style.top=this.posy+'px';
	this.obj.style.width=this.ancho+'px';
	this.obj.style.height=this.alto+'px';
	this.pon_trans(this.trans);

	++this.frame_actual;
	if (this.frame_actual==this.frames)
		clearInterval(this.id_timer);
}

function pon_trans_(opacity)
//By Richard Rutter
{
	this.trans=opacity;
  	opacity = (opacity == 100)?99.999:opacity;
  	this.obj.style.filter = "alpha(opacity:"+opacity+")";
  	this.obj.style.KHTMLOpacity = opacity/100;
  	this.obj.style.MozOpacity = opacity/100;
  	this.obj.style.opacity = opacity/100;
}