function CrearFondoModal(IdElemento, Opacidad, Color, funcOnClick, aArgumentos_funcOnClick){

	Opacidad = Opacidad || "0";
	Color = Color || "transparent";

	$("body").prepend("<div id='" + IdElemento + "'></div>");
	$("#" + IdElemento).css({
		position:			"absolute",
		left:				"0px",
		right:				"0px",
		width:				$("body").css("width"),
		height:				$("body").css("height"),
		zIndex:				"1000",
		opacity:			Opacidad,
		backgroundColor:	Color
	});
	
	if(funcOnClick){
		$("#" + IdElemento).bind("click", {func: funcOnClick, args: aArgumentos_funcOnClick}, function(event){
			if(event.data.args)
				event.data.func.apply(null, event.data.args);
			else
				event.data.func();
		});
	}
}

function VentanaModal(idVentana, HTML, Titulo){

	var MargenLeft, MargenTop;
	
	Titulo = Titulo || "";

	CrearFondoModal("fondo_modal_" + idVentana, 0.8, "#EEEECC", CerrarVentanaModal, [idVentana]);

	$("body").append("<div id='" + idVentana + "'></div>");

	var oV = $("#" + idVentana);

	oV.append("<div id='barra_titulo'>" + Titulo + "<img align='right' src='/comunes/imagenes/equis_naranja.gif'></div>");
	$("#" + idVentana + ">#barra_titulo").css({
		backgroundColor:	"#064413",
		color:				"#fff",
		fontWeight:			"bold",
		padding:			"5px",
		minHeight:			"13px"
	});
	$("#" + idVentana + ">#barra_titulo>img").css({
		textAlign:			"right",
		padding:			"3px 5px 5px",
		cursor:				"pointer"
	});
	$("#" + idVentana + ">#barra_titulo>img").click(function(){
		CerrarVentanaModal(idVentana);
	});
	oV.append("<div id='contenido_ventana'></div>");

	$("#" + idVentana + ">#contenido_ventana").css({
		padding:			"10px 10px 20px 10px",
		overflow:			"auto",
		maxWidth:			"580px",
		maxHeight:			"495px"
	});
	
	$("#" + idVentana + ">#contenido_ventana").append(HTML);
	
	oV.css({
		position:			"absolute",
		zIndex:				"1000",
		top:				"50%",
		left:				"50%",
		border:				"1px solid #064413",
		backgroundColor:	"#fff",
		backgroundImage:	"url('/comunes/imagenes/naranja_fondo_modal.gif')",
		backgroundPosition:	"right bottom",
		backgroundRepeat:	"no-repeat",
		maxWidth:			"600px",
		minWidth:			"200px",
		maxHeight:			"550px",
		minHeight:			"200px",
		padding:			"0px",
		display:			"none",
		overflow:			"hidden"
	});
	
	MargenTop = oV.height() / 2;
	MargenLeft = oV.width() / 2;
	
	oV.css({
		top:				$(document).scrollTop() + (document.documentElement.clientHeight /2) + "px",
		marginLeft:			"-" + MargenLeft.toString() + "px",
		marginTop:			"-" + MargenTop.toString() + "px"
	});
	
	$(window).bind("scroll.VentanaModal_" + idVentana, function(){
		oV.css("top", $(document).scrollTop() + (document.documentElement.clientHeight /2) + "px");			
		return true;
	});
	
	oV.show();
}

function VentanaModalAjax(idVentana, URL, Titulo){

	var MargenLeft, MargenTop;

	CrearFondoModal("fondo_modal_" + idVentana, 0.8, "#EEEECC", CerrarVentanaModal, [idVentana]);

	$("body").append("<div id='" + idVentana + "'></div>");

	var oV = $("#" + idVentana);

	oV.append("<div id='barra_titulo'>" + Titulo + "<img align='right' src='/comunes/imagenes/equis_naranja.gif'></div>");
	$("#" + idVentana + ">#barra_titulo").css({
		backgroundColor:	"#064413",
		color:				"#fff",
		fontWeight:			"bold",
		padding:			"5px",
		minHeight:			"13px"
	});
	$("#" + idVentana + ">#barra_titulo>img").css({
		textAlign:			"right",
		padding:			"3px 5px 5px",
		cursor:				"pointer"
	});
	$("#" + idVentana + ">#barra_titulo>img").click(function(){
		CerrarVentanaModal(idVentana);
	});
	oV.append("<div id='contenido_ventana'></div>");

	$("#" + idVentana + ">#contenido_ventana").css({
		padding:			"10px 10px 20px 10px",
		overflow:			"auto",
		maxWidth:			"580px",
		maxHeight:			"495px"
	});

	oV.css({
		position:			"absolute",
		zIndex:				"1000",
		top:				"50%",
		left:				"50%",
		border:				"1px solid #064413",
		backgroundColor:	"#fff",
		backgroundImage:	"url('/comunes/imagenes/naranja_fondo_modal.gif')",
		backgroundPosition:	"right bottom",
		backgroundRepeat:	"no-repeat",
		maxWidth:			"600px",
		minWidth:			"200px",
		maxHeight:			"550px",
		minHeight:			"200px",
		padding:			"0px",
		display:			"none",
		overflow:			"hidden"
	});
	
	MargenTop = oV.height() / 2;
	MargenLeft = oV.width() / 2;

	oV.css({
		top:				$(document).scrollTop() + (document.documentElement.clientHeight /2) + "px",
		marginLeft:			"-" + MargenLeft.toString() + "px",
		marginTop:			"-" + MargenTop.toString() + "px"
	});
	
	oV.show();

	$.ajax({
		type: "GET", 
		url: URL, 
		cache: false,
		async: false,
		beforeSend: function(){
			$("#" + idVentana + ">#contenido_ventana").append("<div id='" + idVentana + "_img_spinner'><img src='/comunes/imagenes/spinner.gif'/>&nbsp;Cargando...</div>");
		},
		success: function(html){
			$("#" + idVentana + "_img_spinner").remove();

			$("#" + idVentana + ">#contenido_ventana").append(html);
	
			MargenTop = oV.height() / 2;			
			MargenLeft = oV.width() / 2;
	
			oV.css({
				top:				$(document).scrollTop() + (document.documentElement.clientHeight /2) + "px",
				marginLeft:			"-" + MargenLeft.toString() + "px",
				marginTop:			"-" + MargenTop.toString() + "px"
			});
		},
		error: function(){
			$("#" + idVentana + "_img_spinner").remove();
			alert("Error cargando el contenico de la ventana " + idVentana + ".");
			CerrarVentanaModal(idVentana);
		}
	});
	
	$(window).bind("scroll.VentanaModal_" + idVentana, function(){
		oV.css("top", $(document).scrollTop() + (document.documentElement.clientHeight /2) + "px");			
		return true;
	});
	
}

function CerrarVentanaModal(idVentana){

	$(window).unbind("scroll.VentanaModal_" + idVentana);

	$("#" + idVentana).remove();
	$("#fondo_modal_" + idVentana).remove();
}


function ReposicionarVentanaModal(idVentana){

	var oVent = $("#" + idVentana);

	var M_Top = oVent.height() / 2;			
	var M_Left = oVent.width() / 2;
	
	oVent.css({
		top:				$(document).scrollTop() + (document.documentElement.clientHeight /2) + "px",
		marginLeft:			"-" + M_Left.toString() + "px",
		marginTop:			"-" + M_Top.toString() + "px"
	});
}

function mostrarVentanaEmergente(idVentana, HTML, X, Y){

	$("#" + idVentana).remove();

	$("body").append("<div id='" + idVentana + "'></div>");

	var oV = $("#" + idVentana);

	//Y = Y + $("body").scrollTop();

	oV.css({
		position:			"absolute",
		zIndex:				"1000",
		top:				Y + "px",
		left:				X + "px",
		border:				"1px solid #064413",
		backgroundColor:	"#fff",
		maxWidth:			"600px",
		minWidth:			"200px",
		padding:			"0px 10px 10px 10px",
		display:			"none"
	});

	oV.append("<div id='btnCerrar'><img src='/comunes/imagenes/equis.gif'></div>");
	$("#btnCerrar").css({
		textAlign:			"right",
		marginTop:			"5px"
	});
	$("#btnCerrar>img").click(function(){
		oV.remove();
	});
	$("#btnCerrar>img").css({
		cursor:				"pointer"
	});

	oV.append(HTML);

	if((X + oV.outerWidth()) > document.documentElement.clientWidth){
		X = document.documentElement.clientWidth - oV.outerWidth() - 10;
		oV.css({
			left:			X + "px" 
		});
	}

	oV.show();

}

function mostrarVentanaEmergenteModal(idVentana, HTML){

	$("#" + idVentana).remove();

	$("body").append("<div id='" + idVentana + "'></div>");

	var oV = $("#" + idVentana);
	
	oV.css({
		position:			"absolute",
		zIndex:				"1000",
		top:				"0px",
		left:				"0px",
		border:				"none",
		backgroundColor:	"#000",
		width:				"100%",
		height:				"100%",
		padding:			"0",
		display:			"none",
		opacity:			"0.5"
	});

	oV.append("<div id='contVentanaModal'></div>");
	$("#contVentanaModal").css({
		position:			"relative",
		zIndex:				"1001",
		top:				"0px",
		left:				"0px",
		border:				"none",
		backgroundColor:	"#fff",
		width:				"100%",
		height:				"100%",
		padding:			"20px"
	});

	$("#contVentanaModal").html(HTML);

	oV.show();

}

function eliminarVentanaEmergente(idVentana){

	$("#" + idVentana).remove();

}

function AsegurarVisibilidad(DescriptorElemento){

	var pos = $(DescriptorElemento).position();
	if(typeof pos != 'undefined'){
		if(pos.top < 0 || pos.top > window.innerHeight)
			$("html,body").scrollTop(pos.top);
	}

}

function DimensionesVentana() {
	var Dimensiones;
	if (typeof window.innerWidth != 'undefined')
	{
		Dimensiones = {
			"ancho": window.innerWidth,
			"alto": window.innerHeight
		};
	}
	else if (typeof document.documentElement != 'undefined'
	  && typeof document.documentElement.clientWidth !=
	  'undefined' && document.documentElement.clientWidth != 0)
		{
			Dimensiones = {
				"ancho": document.documentElement.clientWidth,
				"alto": document.documentElement.clientHeight
			};
		}else{
			Dimensiones = {
				"ancho": document.getElementsByTagName('body')[0].clientWidth,
				"alto": document.getElementsByTagName('body')[0].clientHeight
			};
		}
	return Dimensiones;
}
