function esExplorer() {
	if (navigator.appName == "Microsoft Internet Explorer") 
		return true;
	else
		return false;
}

function creaVentanaModal(titulo, divCont, ancho, alto) {
	var ventana =  document.createElement('div');
	ventana.id = 'ventanaModal';
        ventana.style.width = (ancho + 20) + "px";
	ventana.style.height = alto + "px";
	
	var txtCabecera = document.createTextNode(titulo);
	var cabecera = document.createElement('div');
	cabecera.id = 'cabeceraVModal';
	cabecera.appendChild(txtCabecera);
	cabecera.onmousedown = iniciarMovimiento;

        var txtCierre = document.createTextNode("Cerrar");;
        var botonCierre = document.createElement('a');
        botonCierre.style.display = 'block';
        botonCierre.href = "javascript:cierraVentanaModal()";
        botonCierre.className = 'botonVModal';
        botonCierre.appendChild(txtCierre);

	ventana.appendChild(cabecera);
	ventana.appendChild(divCont);
        ventana.appendChild(botonCierre);
	divCont.style.paddingBottom = '8px';
        divCont.style.height = (alto - 70) + 'px';
        divCont.style.width = ancho + 'px';
        divCont.id = "contenidoModal";

	var tapar = document.createElement('div');
	tapar.id = "tapar_pagina";
        tapar.style.height = document.documentElement.clientHeight;
        tapar.style.width = document.documentElement.clientWidth;
        tapar.style.filter = "alpha(opacity=50)";

        izq = ((document.documentElement.clientWidth/2) - (ancho/2));
	arr = ((document.documentElement.clientHeight/2) - (alto/2));
	ventana.style.left = izq < 0? "0px":izq + "px";
	ventana.style.top = arr < 0? "0px":arr + "px";

        document.body.insertBefore(ventana, document.body.firstChild);
	document.body.insertBefore(tapar, document.body.firstChild);
} 

function cierraVentanaModal() {
	ventana = document.getElementById('ventanaModal');
	tapar =  document.getElementById('tapar_pagina');

        if(ventana) {
	 document.body.removeChild(tapar);
	 document.body.removeChild(ventana);
        }

	ventana = null;
}

function iniciarMovimiento(e) {
	tapar =  document.getElementById('tapar_pagina');

	if (esExplorer()) {
		ratonElementoX = event.offsetX;
		ratonElementoY = event.offsetY;
	} else { 
		ratonElementoX = e.layerX;
		ratonElementoY = e.layerY;
	}

	var ventana2 =  document.createElement('div');
	ventana2.id = 'ventanaModal2';
        ventana2.style.width = this.parentNode.style.width;
	ventana2.style.height = this.parentNode.style.height;
        ventana2.style.left = this.parentNode.style.left;
	ventana2.style.top = this.parentNode.style.top;
        document.body.insertBefore(ventana2, document.body.firstChild);

	ventana2.onmousemove = moverElemento;
	ventana2.onmouseup = pararMovimiento;
	tapar.onmouseup = pararMovimiento;
	tapar.onmouseout = pararMovimiento;
}

function pararMovimiento(e) {
	ventana = document.getElementById('ventanaModal');
	ventana2 = document.getElementById('ventanaModal2');
	ventana.style.left = ventana2.style.left;
	ventana.style.top = ventana2.style.top;

	ventana2.parentNode.removeChild(ventana2);
	tapar.onmouseup = null;
	tapar.onmouseout = null;
}

function moverElemento(e) {
	if (esExplorer()) {
		this.style.left = String(event.clientX + document.body.scrollLeft - ratonElementoX) + 'px';
		this.style.top = String(event.clientY + document.body.scrollLeft - ratonElementoY) + 'px';
	} else { 
		this.style.left = String(e.pageX - ratonElementoX) + 'px';
		this.style.top = String(e.pageY - ratonElementoY) + 'px';
	}
}
