function divAnimation(origen, destino, rate , accion)
{
	var efectoDiv;
	if (!document.getElementById(origen + destino)){
		efectoDiv = document.createElement('div');
		efectoDiv.id = origen + destino;
		efectoDiv.className = 'popIn';
		document.body.appendChild(efectoDiv);
	}
	else{
		efectoDiv = document.getElementById(origen + destino);
	}
	
	origen = document.getElementById(origen);
	destino = document.getElementById(destino);
	
	posOrigen = getPos(origen);
	posDestino = getPos(destino);
	variacion = getVar(posOrigen,posDestino,rate);
	if (accion == 0){
		origen.style.visibility = 'hidden';
		efectoDiv.className = 'popOut';
	}
	else
		efectoDiv.className = 'popIn';
	moveDiv (efectoDiv,posOrigen,destino,variacion,rate, accion);
}

function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}

function moveDiv(efectoDiv,posOrigen,destino,variacion,rate,accion)
{
	setPos(efectoDiv,posOrigen);
	efectoDiv.style.visibility = 'visible';
	for (i=0 ; i<4 ; i ++)
		posOrigen[i] = posOrigen[i] + variacion[i];
	rate --;
	if (rate >= 0){
		 window.setTimeout(function(){moveDiv(efectoDiv,posOrigen,destino,variacion,rate,accion);}, 1);
	}
	else{
		if (accion == 1)
			destino.style.visibility = 'visible';	
		efectoDiv.style.visibility = 'hidden';
	}
}

function getVar(posOrigen,posDestino,rate)
{
	ret = new Array;
	for (i=0 ; i<4 ; i ++){
		ret[i] = (posDestino[i] - posOrigen[i])/rate;
	}
	return ret;
}

function getPos(div)
{
	ret = new Array;
	ret[0] = findPosY(div);
	ret[1] = findPosX(div);
	ret[2] = div.offsetHeight;
	ret[3] = div.offsetWidth;
	return ret;
}

function setPos(div,pos)
{
	div.style.top = parseInt(pos[0]) + 'px' ;
	div.style.left = parseInt(pos[1]) + 'px'; 	
	div.style.height = parseInt(pos[2]) + 'px'; 
	div.style.width = parseInt(pos[3]) + 'px';
}