// Clases //

function Ventana( oCapa, oDimension, oPosicion )
{
	this.capa = oCapa ;															// Nombre de la capa
	this.centro = { 'x': ( oDimension.w / 2 ), 'y': ( oDimension.h / 2 ) } ;	// Centro de la capa ( desde la posición superior izquierda )
	this.dimension = oDimension ;												// Tamaño de la capa
	this.posicion = oPosicion ;													// Posición de la capa
	
	this.calcularCentro = function()
	{
		this.centro.x = oPuntero.x - this.posicion.x ;
		this.centro.y = oPuntero.y - this.posicion.y ;
	}
	
	this.mover = function()
	{
		this.posicion.x = oPuntero.x - this.centro.x ;
		this.posicion.y = oPuntero.y - this.centro.y ;
		
		this.capa.style.left = this.posicion.x + 'px' ;
		this.capa.style.top = this.posicion.y + 'px' ;
	}
}

// Puntero //

var bPulsado = false ;
var oPuntero = { 'x': 0, 'y': 0 } ;
	
function getPosicionPuntero( e )
{
	if ( IE )
	{
		oPuntero.x = event.clientX + document.body.scrollLeft ;
		oPuntero.y = event.clientY + document.body.scrollTop ;
	}
	else
	{
		oPuntero.x = Math.max( 0, e.pageX ) ;
		oPuntero.y = Math.max( 0, e.pageY ) ;
	}

	if ( bPulsado )
		oVentana.mover() ;
	
	return true ;
}

function getArrastrar( e )
{
	bPulsado = true ;
	
	if ( bPulsado )
		oVentana.calcularCentro() ;
}

function getSoltar( e )
{
	bPulsado = false ;
}

var oVentana = null ;
	
function cargarVentana()
{
	if ( oVentana = document.getElementById( 'ventana' ) )
	{
		oVentana.onmousedown = getArrastrar ;
		oVentana.onmouseup = getSoltar ;

		oVentana = new Ventana( oVentana, getDimensionElementoHTML( oVentana ), getPosicionElementoHTML( oVentana ) ) ;

		if ( !IE ) document.captureEvents( Event.MOUSEMOVE ) ;
		document.onmousemove = getPosicionPuntero ;
	}
} ;