// ************************************************************************************
// Comandos
// ************************************************************************************

function CancelarEvento(e)
{
	if(e.keyCode==13)
	{
		return false;
	}
	else
	{
		return true;	
	}
}
function Alertar(msg)
{
	alert(msg);
}
function ExecCommand(name, args)
{
	var refFn = eval(name);
	if (refFn)
	{
		var fn = new refFn();
		if (fn)
		{
			if (fn.execute)
			{
				fn.execute.apply(fn, args);
			}
		}
	}
}
function InvokeUserLogin()
{
	var cub = Competir.Web.UI.Webparts.CurrentUserBox.getCurrent();
	if (cub)
	{
		var objSelector = cub.getByMode("Selector");
		if (objSelector)
		{
			cub = objSelector;
		}
		cub.showLoginBox();
		cub.show();
	}
}
function InvokeUserLogout()
{
	var cub = Competir.Web.UI.Webparts.CurrentUserBox.getCurrent();
	if (cub)
	{
		cub.logout();
	}
}
function InvokeUserSelector()
{
	var cub = Competir.Web.UI.Webparts.CurrentUserBox.getCurrent();
	if (cub)
	{
		var objSelector = cub.getByMode("Selector");
		if (objSelector)
		{
			cub = objSelector;
		}
		cub.show();
	}
}
function InvokeUserRegistration(mode, parameter)
{
	var cub = Competir.Web.UI.Webparts.CurrentUserBox.getCurrent();
	if (cub)
	{
		var objRegistrator = cub.getByMode("Registrator");
		if (objRegistrator)
		{
			cub = objRegistrator;
		}
		if (mode == "exchange")
		{
			cub.set_LicenseCode(parameter);
			cub.showExchangeBox();
		}
		else
		{
			if (mode == "member")
			{
				cub.get_User().set_FKInstancia(parameter);
			}
			cub.showContents(mode);
		}
		cub.show();
	}
}
function CanUserAccessToRestrictedResources(result)
{
	return true;
}
function PublishInDefaultTemplate()
{
	if (Competir.MiEmpresa.Context.getCurrent())
	{		
		var breakOperation = false;
		if (Competir.MiEmpresa.Context.getCurrent().get_User())
		{
			if (Competir.MiEmpresa.Context.getCurrent().get_User().get_FKInstancia() == 0)
			{
				breakOperation = true;
			}
		}
		else
		{
			breakOperation = true;
		}
		if (breakOperation)
		{
			alert("Para añadir contenidos a tu Aula 365®, completá tu login o registrate.");
			return;
		}
	}
	this.execute = function(objImg, contentIDs, AKTipoWebpart)
	{
		if (!objImg.disabled)
		{
			this.objImg = objImg;
			this.operation = new Competir.MiEmpresa.Operation("webpart.publications.add");
			this.operation.addParameter("ContentIDs", contentIDs);
			this.operation.addParameter("AKTipoWebpart", AKTipoWebpart);
			this.operation.addListener(this);
			Competir.MiEmpresa.Context.getCurrent().get_ExecutionQueue().enqueue(this.operation);
		}
	};
	this._onOperationStarted = function(o)
	{
		if (this.objImg)
		{
			this.objImg.style.cursor = "wait";
			this.objImg.disabled = true;
			this.objImg.src = this.objImg.src.replace("_enabled", "_disabled");
		}
	};
	this._onOperationSucceeded = function(o, e)
	{
		if (this.objImg)
		{
			this.objImg.style.cursor = "default";
			this.objImg.disabled = true;
			this.objImg.src = this.objImg.src.replace("_disabled", "_completed");
			//
			var id = "";
			for (var i = 0; i < o.get_Parameters().length; i++)
			{
				if (o.get_Parameters()[i].name == "ContentIDs")
				{
					id = o.get_Parameters()[i].value;
					break;
				}
			}
			//
			var webpartid = o.get_Result();
			var divFeedBack = $get(id + "_DivFeedBack");
			if(divFeedBack)
			{
				divFeedBack.innerHTML = "<span class='cuerpo11px bordo1'><a href='/mi_aula.aspx#"+webpartid+"'>Encontralo en mi Aula365</a></span>";
			}
		}
	};
	this._onOperationFailed = function(o)
	{
		if (this.objImg)
		{
			this.objImg.style.cursor = "pointer";
			this.objImg.disabled = false;
			this.objImg.src = this.objImg.src.replace("_disabled", "_enabled");
		}
	};
}
function GetTextAreaValue(id)
{
	var rv = "";
	var obj = $get(id);
	if (obj)
	{
		rv = obj.value;
	}
	return rv;
}


// ************************************************************************************
// Popups
// ************************************************************************************
function abrirPopup(url, ancho, alto)
{
	ancho = "" + ancho;
	if (ancho.indexOf("%") != -1)
	{
		var porcentaje = parseInt(ancho, 10);
		ancho = screen.width * porcentaje / 100;
	}
	alto = "" + alto;
	if (alto.indexOf("%") != -1)
	{
		var porcentaje = parseInt(alto, 10);
		alto = screen.height * porcentaje / 100;
	}
	var x = (screen.width - ancho) / 2;
	var y = (screen.height - alto) / 2;
	var w = window.open(url, "Popup", "toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,copyhistory=0,width=" + ancho + ",height=" + alto + ",left=" + x + ",top=" + y, "");
	w.focus();

}
function abrirPopupScroll(url, ancho, alto)
{
	ancho = "" + ancho;
	if (ancho.indexOf("%") != -1)
	{
		var porcentaje = parseInt(ancho, 10);
		ancho = screen.width * porcentaje / 100;
	}
	alto = "" + alto;
	if (alto.indexOf("%") != -1)
	{
		var porcentaje = parseInt(alto, 10);
		alto = screen.height * porcentaje / 100;
	}
	var x = (screen.width - ancho) / 2;
	var y = (screen.height - alto) / 2;
	return window.open(url, "Popup", "toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=0,copyhistory=0,width=" + ancho + ",height=" + alto + ",left=" + x + ",top=" + y, "");
}
function abrirPopupNombrado(url, nombre, ancho, alto)
{
	ancho = "" + ancho;
	if (ancho.indexOf("%") != -1)
	{
		var porcentaje = parseInt(ancho, 10);
		ancho = screen.width * porcentaje / 100;
	}
	alto = "" + alto;
	if (alto.indexOf("%") != -1)
	{
		var porcentaje = parseInt(alto, 10);
		alto = screen.height * porcentaje / 100;
	}
	var x = (screen.width - ancho) / 2;
	var y = (screen.height - alto) / 2;
	return window.open(url, nombre, "toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,copyhistory=0,width=" + ancho + ",height=" + alto + ",left=" + x + ",top=" + y, "");
}
function abrirPopupLikeBlank(url, ancho, alto)
{
	ancho = "" + ancho;
	if (ancho.indexOf("%") != -1)
	{
		var porcentaje = parseInt(ancho, 10);
		ancho = screen.width * porcentaje / 100;
	}
	alto = "" + alto;
	if (alto.indexOf("%") != -1)
	{
		var porcentaje = parseInt(alto, 10);
		alto = screen.height * porcentaje / 100;
	}
	var x = (screen.width - ancho) / 2;
	var y = (screen.height - alto) / 2;
	return window.open(url, "Popup", "toolbar=1,location=1,directories=1,status=1,menubar=1,scrollbars=1,resizable=1,copyhistory=1,width=" + ancho + ",height=" + alto + ",left=" + x + ",top=" + y, "");
}
function openContactUs()
{
	var w = abrirPopup('/popups/contactus.aspx', 400,400);
}

// ************************************************************************************
// Web
// ************************************************************************************
function NavigateTo(url)
{
	window.location.href = url;
}
function GetQueryVariable(variable)
{
	var rv = "";
	var query = window.location.search.substring(1);
	var vars = query.split("&");
	for (var i = 0; i < vars.length; i ++)
	{
		var pair = vars[i].split("=");
		if (pair[0] == variable)
		{
			rv = pair[1];
		}
	}
	return rv;
}



// ************************************************************************************
// Viewers
// ************************************************************************************
function openMicrosite2(FKInstancia, idProducto, codTipoProducto, codProducto, idContenidoRelacionado, idContenidoCurso, forceAccess)
{
	if (CanUserAccessToRestrictedResources(forceAccess))
	{
		// Dimensiones
		var ancho = (screen.width < 800) ? 630: (screen.width < 1024) ? 720: 920;
		var alto = (screen.width < 800) ? 410: (screen.width < 1024) ? 520: 690;
		
		// Coordenadas
		var x = (screen.width - ancho) / 2;
		var y = (screen.height - alto) / 2;
		
		// Contexto
		var context = Competir.MiEmpresa.Context.getCurrent();
		var user = (context) ? context.get_User() : null;
		
		// Parametros
		var tipoMicrosite = "";
		switch (codTipoProducto)
		{
			case "24":
				tipoMicrosite = "cursos";
				break;
			case "25":
			case "29":
				tipoMicrosite = "seminarios";
				break;
			case "27":
			case "32":
				tipoMicrosite = "tutoriales";
				break;
		}
		var email = (user) ? user.get_Email() : "";
		
		// URL
		var url = "";
		url += "http://mipyme.competir.com/es/microsite/" + tipoMicrosite + "/presentacion.asp";
		url += "?idContProducto=" + idProducto;
		url += "&tipo=" + codTipoProducto;
		url += "&codCurso=" + codProducto;
		url += "&idContenido=" + idContenidoRelacionado;
		url += "&idCurso=" + idContenidoCurso;
		url += "&acceso=1";
		url += "&nameWcp=MIEMPRESA";
		url += "&email=" + email;
		url += "&pkIdUsuarioWCEP=";
		url += "&dominio=" + document.location.protocol + "//" + document.location.host;
		
		// Launch
		if (tipoMicrosite == "")
		{
			alert("No se pudo determinar el origen del curso solicitado. Consulte a un administrador.");
		}
		else
		{
			var w = window.open(url, "rtem2", "toolbar=0,location=0,directories=0,status=1,menubar=0,scrollbars=0,resizable=0,width=" + ancho + ",height=" + alto + ",left=" + x + ",top=" + y);
			if (w)
			{
				w.focus();
			}
		}
	}
}
function openMicrosite3(FKInstancia, idContenido, forceAccess)
{
	if (CanUserAccessToRestrictedResources(forceAccess))
	{
		// Dimensiones
		var ancho = 772;
		var alto = 553;
		
		// Coordenadas
		var x = (screen.width - ancho) / 2;
		var y = (screen.height - alto) / 2;
		
		// Contexto
		var context = Competir.MiEmpresa.Context.getCurrent();
		var user = (context) ? context.get_User() : null;
		
		// Parametros
		var nombre = (user) ? user.get_FirstName() : "";
		var apellido = (user) ? user.get_LastName() : "";
		var email = (user) ? user.get_Email() : "";
		
		// URL
		var url = "";
		url += "http://200.43.193.34/autorun.asp";
		url += "?contenido=" + idContenido;
		url += "&nombre=" + nombre;
		url += "&apellido=" + apellido;
		url += "&mail=" + email;
		url += "&conmail=si";
		
		// Launch
		var w = window.open(url, "rtem3", "toolbar=0,location=0,directories=0,status=1,menubar=0,scrollbars=0,resizable=0,width=" + ancho + ",height=" + alto + ",left=" + x + ",top=" + y);
		if (w)
		{
			w.focus();
		}
	}
}
function openMicrosite4(uri, skin, FKInstanciaPrograma, FKInstanciaCurso, FKInstanciaUsuario, ancho, alto, forceAccess)
{
	if (CanUserAccessToRestrictedResources(forceAccess))
	{
		// Dimensiones
		ancho = 800;
		alto = 600;
		/*
		ancho = (screen.width < 800) ? 630: (screen.width < 1024) ? 720: 920;
		alto = (screen.width < 800) ? 410: (screen.width < 1024) ? 520: 690;
		*/
		
		// Coordenadas
		var x = (screen.width - ancho) / 2;
		var y = (screen.height - alto) / 2;
		
		// Contexto
		var context = Competir.MiEmpresa.Context.getCurrent();
		var user = (context) ? context.get_User() : null;
		
		// Parametros
		var host = document.location.protocol + "//" + document.location.host;
		var FKInstanciaSolucion = (context) ? context.get_FKInstancia() : 0;
		//var FKInstanciaGrupo = (user) ? user.get_FKInstanciaGrupo() : 0;
		var FKInstanciaGrupo = 0;
		if (!FKInstanciaUsuario)
		{
			FKInstanciaUsuario = (user) ? user.get_FKInstancia() : 0;
		}
		var nombre = (user) ? user.get_FirstName() : "";
		var apellido = (user) ? user.get_LastName() : "";
		var email = (user) ? user.get_Email() : "";

		// URL
		var url = "";
		if (host.indexOf(".xlocal") != -1)
		{
			url += "http://rte.local/RTE.aspx";
		}
		else
		{
			url += "http://rtev3.competir.com/RTE.aspx";
		}
		url += "?uri=" + uri;
		url += "&host=" + host;
		url += "&skin=" + skin;
		url += "&startup=firstlo";
		url += "&FKInstanciaSolucion=" + FKInstanciaSolucion;
		url += "&FKInstanciaGrupo=" + FKInstanciaGrupo;
		url += "&FKInstanciaUsuario=" + FKInstanciaUsuario;
		url += "&FKInstanciaPrograma=" + FKInstanciaPrograma;
		url += "&FKInstanciaCurso=" + FKInstanciaCurso;
		
		// Launch
		var w = window.open(url, "rtem4", "toolbar=0,location=0,directories=0,status=1,menubar=0,scrollbars=0,resizable=0,width=" + ancho + ",height=" + alto + ",left=" + x + ",top=" + y);
		if (w)
		{
			w.focus();
		}
	}
}
function openBlog(FKInstancia)
{
	NavigateTo("/blogs_view.aspx?FKInstancia=" + FKInstancia);
}
function openHistorieta(FKInstancia, forceAccess)
{
	if (CanUserAccessToRestrictedResources(forceAccess))
	{
		var w = abrirPopupNombrado("/popups/PopUp_Componentes_View.aspx?FKInstancia=" + FKInstancia, "historieta", 680, 580);
		if (w)
		{
			w.focus();
		}
	}
}
function openGaleria(xml)
{
	var w = abrirPopupNombrado("/popups/PopUp_Galeria_View.aspx?xml=" + xml, "galeria", 680, 580);
	if (w)
	{
		w.focus();
	}
}
function openInfografia(FKInstancia, forceAccess)
{
	if (CanUserAccessToRestrictedResources(forceAccess))
	{
		var w = abrirPopupNombrado("/popups/PopUp_Componentes_View.aspx?FKInstancia=" + FKInstancia, "infografia", 680, 530);
		if (w)
		{
			w.focus();
		}
	}
}
function openIlustracion(FKInstancia)
{	
	var w = abrirPopupNombrado("/popups/PopUp_Componentes_View.aspx?FKInstancia=" + FKInstancia, "ilustracion", 480, 500);
	if (w)
	{
		w.focus();
	}
}
function openTutorial(FKInstancia, url, ancho, alto, forceAccess)
{
	if (CanUserAccessToRestrictedResources(forceAccess))
	{
		if (!ancho)
		{
			ancho = 640;
		}
		if (!alto)
		{
			alto = 438;
		}
		var w = abrirPopupNombrado(url, "tutorial", ancho, alto);
		if (w)
		{
			w.focus();
		}
	}
}
function openSimulacion(FKInstancia, url, forceAccess)
{
	if (CanUserAccessToRestrictedResources(forceAccess))
	{
		var w = abrirPopupNombrado(url, "simulacion", 800, 480);
		if (w)
		{
			w.focus();
		}
	}
}
function openSimulador(FKInstancia, url, ancho, alto, forceAccess)
{
	if (CanUserAccessToRestrictedResources(forceAccess))
	{
		if (!ancho)
		{
			ancho = 640;
		}
		if (!alto)
		{
			alto = 438;
		}
		var w = abrirPopupNombrado(url, "simulador", ancho, alto);
		if (w)
		{
			w.focus();
		}
	}
}
function startDownload()
{
}
function openChiste(FKInstancia)
{
	var w = abrirPopupNombrado("/popups/PopUp_Componentes_View.aspx?FKInstancia=" + FKInstancia, "chiste", 480, 500);
	if (w)
	{
		w.focus();
	}
}
function openWiki(FKInstancia)
{
	NavigateTo("/wiki_view.aspx?FKInstancia=" + FKInstancia);
}



// ************************************************************************************
// Drag & Drop / UI
// ************************************************************************************
function onDrop(sender, e)
{
	var container = e.get_container();
	var item = e.get_droppedItem();
	var position = e.get_position();

	item.focus();

	var ctx = Competir.MiEmpresa.Context.getCurrent();
	if (ctx.get_User().get_FKInstancia() != 0)
	{
		var wpRenderer = $find(item.id);
		var sectionIndex = container.getAttribute("sectionindex");
		if (wpRenderer && (wpRenderer.get_SectionIndex() != sectionIndex | wpRenderer.get_PositionIndex() != position))
		{
			wpRenderer.relocateWebpart(sectionIndex, position);
		}
	}
}
function recalcUI()
{
	if (document.recalc)
	{
		document.recalc(true);
	}
}

// ************************************************************************************
// Metaoperaciones
// ************************************************************************************
function CargarHtml(mensaje, url, objTarget, callback, argumentos)
{
	if (GetQueryVariable("debug") != "")
	{
		if (url.indexOf("?") == -1)
		{
			url += "?";
		}
		else
		{
			url += "&";
		}
		url += "debug=" + GetQueryVariable("debug");
	}
	if (!mensaje)
	{
		mensaje = "Cargando...";
	}
	objTarget.innerHTML = "<table width='100%' height='100%' cellpadding='0' cellspacing='5' border='0' class='Cargando'><tr><td valign='top'>" + mensaje + "</td></tr></table>";
	if (navigator.userAgent.indexOf("MSIE") != -1)
	{
		oXmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else
	{
		oXmlHttp = new XMLHttpRequest();
	}
	oXmlHttpTarget = objTarget;
	oXmlHttpCallback = callback;
	oXmlHttpCallbackArguments = argumentos;
	oXmlHttp.onreadystatechange = hOnXmlHttpReadyStateChange;
	oXmlHttp.open("GET", url, true);
	oXmlHttp.send(null);
}
function EjecutarMultiplesOperaciones(csvOperaciones, csvArgumentos)
{
	var objIfrOperaciones = document.getElementById("ifr_operaciones");
	if (objIfrOperaciones)
	{
		objIfrOperaciones.src = "/includes/ejecutarMultiplesOperaciones.aspx?csvOperaciones=" + csvOperaciones + "&csvArgumentos=" + csvArgumentos;
	}
}

function VotarOpcion(FKInstancia)
{
	var options = document.getElementsByName(FKInstancia);
	var value = 0;
	for (var i = 0; i < options.length; i ++)
	{
		if (options[i].checked)
		{
			value = options[i].value;
		}
	}
	if (value != 0)
	{
		EjecutarMultiplesOperaciones("encuesta.opcion.votar", value);
		alert("Gracias por participar");
	}
	else
	{
		alert("Tenés que seleccionar una opción para votar.");
	}
}
function ResponderForo(FKInstanciaForo)
{
	var respuesta = "";
	var objTxtRespuesta = document.getElementById("txtRespuesta");
	if (objTxtRespuesta)
	{
		respuesta = objTxtRespuesta.value;
	}
	if (respuesta != "")
	{
		/*var objTdOutRespuesta = document.getElementById("tdOutRespuesta");
		if (objTdOutRespuesta)
		{
			objTdOutRespuesta.style.display = "block";
		}
		var objTdLnkResponder = document.getElementById("tdLnkResponder");
		if (objTdLnkResponder)
		{
			objTdLnkResponder.style.display = "none";
		}
		*/
		respuesta = respuesta.replace(/\n/g, "<BR>");
		respuesta = escape(respuesta);
		respuesta = EncodeBase64(respuesta);
		EjecutarMultiplesOperaciones("foro.respuesta.agregar", FKInstanciaForo + "," + respuesta);
	}
}
function VerContenidoCallback(FKInstancia)
{
	var objTdRespuestasForo = document.getElementById("tdRespuestasForo" + FKInstancia);
	if (objTdRespuestasForo)
	{
		CargarHtml(null, "respuestas_foro_listado.aspx?FKInstancia=" + FKInstancia, objTdRespuestasForo, null);
	}
}


// ************************************************************************************
// Hooks
// ************************************************************************************
function OnIfrOperationsResult()
{
	if (window.parent.hOnIfrOperationsResult)
	{
		var objOperacion = document.getElementById("divOperacion");
		var objArgumentos = document.getElementById("divArgumentos");
		var objResultado = document.getElementById("divResultado");
		if (objOperacion)
		{
			if (objArgumentos)
			{
				if (objResultado)
				{
					window.parent.hOnIfrOperationsResult(objOperacion.innerText, objArgumentos.innerText, objResultado.innerText);
				}
			}
		}
		document.body.innerHTML = "";
	}
}
function OnIfrMultipleOperationsResult()
{
	if (window.parent.hOnIfrOperationsResult)
	{
		var objOperaciones = document.getElementById("divOperaciones");
		var objArgumentos = document.getElementById("divArgumentos");
		var objResultados = document.getElementById("divResultados");
		if (objOperaciones)
		{
			if (objArgumentos)
			{
				if (objResultados)
				{
					var arrOperaciones = objOperaciones.innerHTML.split("|");
					var arrArgumentos = objArgumentos.innerHTML.split("|");
					var arrResultados = objResultados.innerHTML.split("|");
					for (var i = 0; i < arrOperaciones.length - 1; i ++)
					{
						window.parent.hOnIfrOperationsResult(arrOperaciones[i], arrArgumentos[i], arrResultados[i]);
					}
				}
			}
		}
		document.body.innerHTML = "";
	}
}
function hOnIfrOperationsResult(operacion, argumentos, resultado)
{
	if (resultado.substr(0, 9).toLowerCase() == "excepción")
	{
		alert(resultado);
	}
	else
	{
		switch (operacion.toLowerCase())
		{
			case "itinerario.agregar":
			case "itinerario.agregar.silent":
				if (operacion.toLowerCase() == "itinerario.agregar")
				{
					alert("¡El curso ha sido agregado a Mis Cursos!");
				}
				if (resultado.toLowerCase() == "true")
				{
					var FKInstancia = parseInt(argumentos, 10);
					var arrCursos = null;
					if (window.arrayCursos)
					{
						arrCursos = window.arrayCursos;
					}
					else
					{
						if (window.opener)
						{
							if (window.opener.arrayCursos)
							{
								arrCursos = window.opener.arrayCursos;
							}
						}
					}
					if (arrCursos)
					{
						arrCursos.push({FKInstancia: FKInstancia, estadoDeProgreso: ""});
						ActualizarBoxItinerario();
					}
				}
				break;
			case "itinerario.eliminar":
				if (resultado.toLowerCase() == "true")
				{
					var arrCursos = null;
					if (window.arrayCursos)
					{
						arrCursos = window.arrayCursos;
					}
					else
					{
						if (window.opener)
						{
							if (window.opener.arrayCursos)
							{
								arrCursos = window.opener.arrayCursos;
							}
						}
					}
					if (arrCursos)
					{
						for (var i = 0; i < arrCursos.length; i ++)
						{
							if (arrCursos[i].FKInstancia == argumentos)
							{
								arrCursos.splice(i, 1);
								ActualizarBoxItinerario();
							}
						}
					}
					Refrescar();
				}
				else
				{
					alert("No se pudo eliminar el curso. Inténtelo nuevamente y de persistir el problema consulte con un administrador.");
				}
				break;
			case "curso.progreso.get":
				var FKInstancia = parseInt(argumentos, 10);
				var arrCursos = null;
				if (window.arrayCursos)
				{
					arrCursos = window.arrayCursos;
				}
				else
				{
					if (window.opener)
					{
						if (window.opener.arrayCursos)
						{
							arrCursos = window.opener.arrayCursos;
						}
					}
				}
				if (arrCursos)
				{
					for (var i = 0; i < arrCursos.length; i ++)
					{
						if (arrCursos[i].FKInstancia == FKInstancia)
						{
							arrCursos[i].estadoDeProgreso = resultado;
							ActualizarBoxItinerario();
							break;
						}
					}
				}
				break;
			case "curso.progreso.set":
				var FKInstancia = parseInt(argumentos.split(",")[0], 10);
				var porcentaje = parseInt(argumentos.split(",")[1], 10);
				var curso = null;
				var arrCursos = null;
				if (window.arrayCursos)
				{
					arrCursos = window.arrayCursos;
				}
				else
				{
					if (window.opener)
					{
						if (window.opener.arrayCursos)
						{
							arrCursos = window.opener.arrayCursos;
						}
					}
				}
				if (arrCursos)
				{
					for (var i = 0; i < arrCursos.length; i ++)
					{
						if (arrCursos[i].FKInstancia == FKInstancia)
						{
							curso = arrCursos[i];
							break;
						}
					}
				}
				if (curso != null)
				{
					if (porcentaje == 100)
					{
						curso.estadoDeProgreso = "finalizado";
					}
					else
					{
						curso.estadoDeProgreso = "iniciado";
					}
					ActualizarBoxItinerario();
				}
				break;
			case "comentario.agregar":
				if (resultado.toLowerCase() == "true")
				{
					var objTxtComentario = document.getElementById("txtComentario");
					if (objTxtComentario)
					{
						objTxtComentario.value = "";
					}
					var objTdOutComentario = document.getElementById("tdOutComentario");
					if (objTdOutComentario)
					{
						objTdOutComentario.style.display = "none";
					}
					var objTdFrmComentario = document.getElementById("tdFrmComentario");
					if (objTdFrmComentario)
					{
						objTdFrmComentario.style.display = "block";
					}
					var objTdBtnComentario = document.getElementById("tdBtnComentario");
					if (objTdBtnComentario)
					{
						objTdBtnComentario.style.display = "block";
					}
					alert("¡Gracias por tu comentario!");
				}
				else
				{
					alert("No se pudo guardar el comentario. Inténtelo nuevamente y de persistir el problema consulte con un administrador.");
				}
				break;
			case "download.relatedfile":
				if (resultado.toLowerCase() == "true")
				{
					var FKInstancia = parseInt(argumentos, 10);
					var objIfrOperaciones = document.getElementById("ifr_operaciones");
					if (objIfrOperaciones)
					{
						objIfrOperaciones.src = "/downloads.aspx?RelatedFile=True&FKInstancia=" + FKInstancia;
					}
				}
				else
				{
					alert("No se pudo encontrar el archivo. Inténtelo nuevamente y de persistir el problema consulte con un administrador.");
				}
				break;
			case "encuesta.opcion.votar":
				if (resultado.toLowerCase() == "true")
				{
					alert("¡Gracias por participar!");
				}
				else
				{
					alert("No se pudo registrar el voto. Inténtelo nuevamente y de persistir el problema consulte con un administrador.");
				}
				break;
			case "foro.respuesta.agregar":
				if (resultado.toLowerCase() == "true")
				{
					var FKInstancia = parseInt(argumentos.split(",")[0], 10);
					var objTxtRespuesta = document.getElementById("txtRespuesta");
					if (objTxtRespuesta)
					{
						objTxtRespuesta.value = "";
					}
					var objTdOutRespuesta = document.getElementById("tdOutRespuesta");
					if (objTdOutRespuesta)
					{
						objTdOutRespuesta.style.display = "none";
					}
					var objTdLnkResponder = document.getElementById("tdLnkResponder");
					if (objTdLnkResponder)
					{
						objTdLnkResponder.style.display = "block";
					}
					var objTdRespuestasForo = document.getElementById("tdRespuestasForo" + FKInstancia);
					if (objTdRespuestasForo)
					{
						CargarHtml("Actualizando...", "respuestas_foro_listado.aspx?FKInstancia=" + FKInstancia, objTdRespuestasForo, null);
					}
					alert("¡Gracias por participar!");
				}
				else
				{
					alert("No se pudo guardar la respuesta. Inténtelo nuevamente y de persistir el problema consulte con un administrador.");
				}
				break;
		}
	}
}
// ************************************************************************************
// Conversion
// ************************************************************************************
function EncodeBase64(input)
{
	var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
	var output = "";
	var chr1;
	var chr2;
	var chr3;
	var enc1;
	var enc2;
	var enc3;
	var enc4;
	var i = 0;
	do
	{
		chr1 = input.charCodeAt(i ++);
		chr2 = input.charCodeAt(i ++);
		chr3 = input.charCodeAt(i ++);

		enc1 = chr1 >> 2;
		enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
		enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
		enc4 = chr3 & 63;

		if (isNaN(chr2))
		{
			enc3 = enc4 = 64;
		}
		else if (isNaN(chr3))
		{
			enc4 = 64;
		}

		output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2) + keyStr.charAt(enc3) + keyStr.charAt(enc4);
	}
	while (i < input.length);
	return output;
}
function DecodeBase64(input)
{
	var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
	var output = "";
	var chr1;
	var chr2;
	var chr3;
	var enc1;
	var enc2;
	var enc3;
	var enc4;
	var i = 0;

	input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
	do
	{
		enc1 = keyStr.indexOf(input.charAt(i++));
		enc2 = keyStr.indexOf(input.charAt(i++));
		enc3 = keyStr.indexOf(input.charAt(i++));
		enc4 = keyStr.indexOf(input.charAt(i++));

		chr1 = (enc1 << 2) | (enc2 >> 4);
		chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
		chr3 = ((enc3 & 3) << 6) | enc4;

		output = output + String.fromCharCode(chr1);

		if (enc3 != 64)
		{
			output = output + String.fromCharCode(chr2);
		}
		if (enc4 != 64)
		{
			output = output + String.fromCharCode(chr3);
		}
	}
	while (i < input.length);
	return output;
}
// ************************************************************************************
// Arbol
// ************************************************************************************
function AlternarContenedor(FKInstancia)
{
	var objContenedor = document.getElementById("objContenedorNodo" + FKInstancia);
	if (objContenedor)
	{
		var expandido = (objContenedor.getAttribute("expandido") == "true");
		if (expandido)
		{
			objContenedor.setAttribute("expandido", "false");
			objContenedor.style.display = "none";
		}
		else
		{
			objContenedor.setAttribute("expandido", "true");
			objContenedor.style.display = "";
		}
		var objGadget = document.getElementById("tdGadgetNodo" + FKInstancia);
		if (!objGadget)
		{
			objGadget = document.getElementById("spanGadgetNodo" + FKInstancia);
			if (objGadget)
			{
				if (expandido)
				{
					objGadget.innerText = objGadget.innerText.replace(/^\-/, "+");
				}
				else
				{
					objGadget.innerText = objGadget.innerText.replace(/^\+/, "-");
				}
			}
		}
		if (objGadget)
		{
			if (expandido)
			{
				objGadget.className = "GadgetColapsado";
			}
			else
			{
				objGadget.className = "GadgetExpandido";
			}
		}
	}
}
function ExpandirContenedor(FKInstancia)
{
	var objNodo = document.getElementById(FKInstancia);
	if (objNodo)
	{
		if (objNodo.getAttribute("parentid"))
		{
			ExpandirContenedor(objNodo.getAttribute("parentid"));
		}
	}
	var objContenedor = document.getElementById("objContenedorNodo" + FKInstancia);
	if (objContenedor)
	{
		objContenedor.setAttribute("expandido", "true");
		objContenedor.style.display = "";
		//objContenedor.childNodes[objContenedor.childNodes.length].scrollIntoView(false);
	}
	var objGadget = document.getElementById("tdGadgetNodo" + FKInstancia);
	if (objGadget)
	{
		objGadget.className = "GadgetExpandido";
	}
}
function SeleccionarNodo(FKInstancia)
{
	var objNodo;
	if (FKInstanciaNodoSeleccionado != 0)
	{
		objNodo = document.getElementById(FKInstanciaNodoSeleccionado);
		if (objNodo)
		{
			objNodo.setAttribute("seleccionado", "false");
			NormalizarNodo(FKInstanciaNodoSeleccionado);
		}
	}
	FKInstanciaNodoSeleccionado = 0;
	objNodo = document.getElementById(FKInstancia);
	if (objNodo)
	{
		ExpandirContenedor(FKInstancia);
		ResaltarNodo(FKInstancia);
		objNodo.setAttribute("seleccionado", "true");
		FKInstanciaNodoSeleccionado = FKInstancia;
	}
}
function SeleccionarNodoCallback(FKInstancia)
{
	objHistory.push({tipo: "nodo", FKInstancia: FKInstancia});
	var objTdVolver = document.getElementById("tdVolver");
	if (objTdVolver)
	{
		if (objHistory.length == 1)
		{
			objTdVolver.style.display = "none";
		}
	}
}
function ResaltarNodo(FKInstancia)
{
	var objTdNodo = document.getElementById("tdNodo" + FKInstancia);
	if (objTdNodo)
	{
		objTdNodo.className = "NodoResaltado";
	}
}
function NormalizarNodo(FKInstancia)
{
	var objNodo = document.getElementById(FKInstancia);
	if (objNodo)
	{
		var seleccionado = (objNodo.getAttribute("seleccionado") == "true");
		if (!seleccionado)
		{
			var objTdNodo = document.getElementById("tdNodo" + FKInstancia);
			if (objTdNodo)
			{
				objTdNodo.className = objTdNodo.getAttribute("originalclass");
			}
		}
	}
}
// ************************************************************************************
// Operaciones
// ************************************************************************************
function RefreshOpener()
{
	if (window.opener)
	{
		if (window.opener.document.forms[0])
		{
			window.opener.document.forms[0].submit();
		}
	}
}

function CloseAndRefreshOpener()
{
	RefreshOpener();
	window.close();
}

function ConfirmarEliminacion()
{
	return confirm("¿Está seguro que desea elminar permanentemente este mensaje?");
}
