/**
*
* Este archivo contiene todas las funciones de ajax
* Para adjuntar el contenido de una pagina web dentro de otra efectivamente.
*
*/
var globalUrl = "";
var globalConfig = "";
var globalTitle = "";
var globalVars = new Array();
/**
 *  funcion cross-browser
 *
 */
function nuevoAjax()
{		
	var xmlhttp = false;		
	try{			
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");			
	}
	catch(e){			
		try{				
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");				
		}
		catch(E){				
			xmlhttp = false;				
		}
	}				
	if(!xmlhttp && typeof XMLHttpRequest != 'undefined'){			
		xmlhttp = new XMLHttpRequest();			
	}		
	return xmlhttp;		
}
										
/**
* Se encarge de mostrar un formulario determinado del archivo administrar modificar algo en un boxy..
*/
function show(send)
{
	ajax = nuevoAjax();	
	contenedor = document.getElementById("documento");
	contenedor.innerHTML="<div class='cargando'>Cargando...</div>";
	boxy.center("x");
	boxy.center("y");
	
	ajax.open("POST", "http://"+globalConfig+"/apps/"+globalUrl, true);
	
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.onreadystatechange = function()
	{
		if(ajax.readyState == 4)
		{
			contenedor.innerHTML = ajax.responseText;
			boxy.center("x");
			boxy.center("y");
		}
	}
	ajax.send(send);
}

function set_content(elemento)
{
	ajax = nuevoAjax();	
	contenedor = document.getElementById("documento");
	
	if(elemento == "scroll"){ posicion_scroll = document.getElementById('desplazamiento').scrollTop; }
	ajax.open("GET", "http://"+globalConfig+"/apps/"+globalUrl, true);
	 
	ajax.onreadystatechange = function()
	{
		if(ajax.readyState == 4)
		{
			contenedor.innerHTML = ajax.responseText;
			if(elemento == "scroll"){ document.getElementById('desplazamiento').scrollTop = posicion_scroll;}
		}
	}

	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.send(null);		
}

/**
* Muestra rotativamente los flash de una pagina.
*/
function mostrar_peliculas(id)
{
	vector = document.getElementById("pelicula");
	ajax = nuevoAjax();
	
	contenedor = document.getElementById("lista_videos");
	contenedor.innerHTML = "<div class='cargando'>Cargando...</div>";
	alert(document.getElementById(id).value);
	ajax.open("GET", "mostrar_peliculas_agregar.php?url="+document.getElementById(id).value, true);
	ajax.onreadystatechange = function()
	{
		if(ajax.readyState == 4)
		{
			contenedor.innerHTML = ajax.responseText;
		}
	}

	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.send(null);
}

/**
* para videos flash Videos.
*/
function mostrar_peliculas2(id)
{	
	vector = document.getElementById("pelicula");	
	ajax = nuevoAjax();	
	contenedor = document.getElementById("lista_videos");
	contenedor.innerHTML = "<div class='cargando'>Cargando...</div>";
	ajax.open("GET", "mostrar_peliculas_agregar2.php?url="+document.getElementById(id).value, true);
	ajax.onreadystatechange = function()
	{
		if(ajax.readyState == 4)
		{
			contenedor.innerHTML = ajax.responseText;
		}
	}

	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.send(null);
}

/**
* Se encarga de mostrar la lista de videos pertenecsientes a una pagina. Tiene la bondad de mostrarlos en orden de paginación.
*/
function cargar_listado(lista, config)
{
	var validacion = document.getElementById("validacion").value;

	if(validacion == 1)
	{
		var ord = document.getElementById("ord").value;
		var pagina = document.getElementById("pagina").value;
		var seccion = document.getElementById("seccion").value;
		var categoria = document.getElementById("categoria").value;
		var subcategoria = document.getElementById("subcategoria").value;
		ajax = nuevoAjax();
		
		contenedor = document.getElementById("listar_videos");
		contenedor.innerHTML = "<div class='cargando'>Cargando...</div>";
		ajax.open("GET", "http://"+globalConfig+"/themes/videos/listar-videos-plantilla.php?lista="+lista+"&ord="+ord+"&pagina="+pagina+"&seccion="+seccion+"&categoria="+categoria+"&subcategoria="+subcategoria, true);
		ajax.onreadystatechange = function()
		{
			if(ajax.readyState == 4)
			{
				contenedor.innerHTML = ajax.responseText;
			}
		}
	
		ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		ajax.send(null);		
	}
}

/**
* Se encarga de mostrar la lista de juegos pertenecsientes a una pagina. Tiene la bondad de mostrarlos en orden de paginación.
*/
function cargar_listado_juegos(lista, config)
{
	var ord = document.getElementById("ord").value;
	var pagina = document.getElementById("pagina").value;
	var seccion = document.getElementById("seccion").value;
	var categoria = document.getElementById("categoria").value;
	var subcategoria = document.getElementById("subcategoria").value;
	ajax = nuevoAjax();
	
	contenedor = document.getElementById("listar_videos");
	contenedor.innerHTML = "<div class='cargando'>Cargando...</div>";
	ajax.open("GET", "http://"+globalConfig+"/themes/juegos/listar-juegos-plantilla.php?lista="+lista+"&ord="+ord+"&pagina="+pagina+"&seccion="+seccion+"&categoria="+categoria+"&subcategoria="+subcategoria, true);
	ajax.onreadystatechange = function()
	{
		if(ajax.readyState == 4)
		{
			contenedor.innerHTML = ajax.responseText;
		}
	}

	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.send(null);
}

/**
* Funcion para subir comentarios.
*/
function subir_comentario(id_contenido)
{
	var comentario = document.getElementById("comentario").value;
	var postear = document.getElementById("postFb").checked;
	var expresion = new RegExp ("[\n]", "gi"); 
	comentario = comentario.replace(expresion, "<br/>");
	if(postear){ postear = 1; }
	else{ postear = 0; }
	ajax = nuevoAjax();
	if(comentario.replace(/\s/g,"") == "" || comentario == "Escribe aqui tu comentario...")
	{
		Boxy.DEFAULTS.title = "Alerta!";
		Boxy.zIndex = Boxy.zIndex+1;
		Boxy.alert("Debe escribir su comentario.", function() { /*accion*/ });
		Boxy.zIndex = Boxy.zIndex-1;
	}
	else
	{
		if(comentario.length >= 2)
		{
			document.getElementById("label_boton").className = "";
			document.getElementById('boton').value='Espere un momento...';
			document.getElementById('boton').disabled='disabled';
			
			contenedor = document.getElementById("update_comentarios");
			ajax.open("POST", "http://"+globalConfig+"/apps/auxiliares/comentarios.php?id_contenido="+id_contenido+"&publicar_facebook="+postear+"&subir-comentario=1", true);
			ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			ajax.onreadystatechange = function()
			{
				if(ajax.readyState == 4)
				{
					contenedor.innerHTML = ajax.responseText;
					document.getElementById("label_boton").className = "boxyButtonblue";
					document.getElementById('boton').disabled='';
					document.getElementById('boton').value='Comentar';
				}
			}
			ajax.send("comentario="+document.getElementById("comentario").value);
		}
		else
		{
			Boxy.DEFAULTS.title = "Alerta!";
			Boxy.zIndex = Boxy.zIndex+1;
			Boxy.alert("Los comentarios deben tener por lo menos 2 caracteres.", function() { /*accion*/ });
			Boxy.zIndex = Boxy.zIndex-1;
		}
	}		
}

/**
* Funcion para eliminar comentarios.
*/
function eliminar_comentario(id_comentario, id_contenido)
{
	ajax = nuevoAjax();
	contenedor = document.getElementById('update_comentarios');
	contenedor2 = document.getElementById("elim"+id_comentario);
	contenedor2.innerHTML = "<div class='cargando'>Eliminando...</div>";
	ajax.open("GET", "http://"+globalConfig+"/apps/auxiliares/comentarios.php?id_comentario="+id_comentario+"&id_contenido="+id_contenido+"&eliminar-comentario=1", true);
	 
	ajax.onreadystatechange = function()
	{
		if(ajax.readyState == 4)
		{
			contenedor.innerHTML = ajax.responseText;
		}
	}
	ajax.send(null);

}

/**
* Se encarga de crear una lista com los futuros campos que tendra una lista ordenada.
*/
function crear_lista_items(tam)
{
	contenedor = document.getElementById('items');
	
	contenedor.innerHTML = "<div class='cargando'>Cargando...</div>";
	ajax = nuevoAjax();
	ajax.open("GET", "http://"+globalConfig+"/apps/auxiliares/insertar-lista-editor.php?tam="+tam, true);
	 
	ajax.onreadystatechange = function() 
	{				 
		if(ajax.readyState == 4)
		{				
			contenedor.innerHTML = ajax.responseText;
		}
	}
	ajax.send(null);		
}

/*
* Se encarga de desplegar los iconos de un folder, dado el nombre del folder.
*/
function actualizar_frame_agregar_icono(folder)
{
	contenedor = document.getElementById('frame');
	ajax = nuevoAjax();
	ajax.open("POST", "http://"+globalConfig+"/apps/seleccionar_icono_frame.php?folder="+folder, true);
	contenedor.innerHTML = "<div class='cargando'>Cargando...</div>";
	 
	ajax.onreadystatechange = function()
	{				 
		if(ajax.readyState == 4)
		{
			contenedor.innerHTML = ajax.responseText;
		}
	}
	ajax.send(null);
}

/*
* Se encarga de cambiar el estado de un item (activo, inactivo).
*/
function mostrar_ocultar(id)
{
	contenedor = document.getElementById("movimiento");
	if(document.getElementById("img"+id).src == "images/eye.png" || document.getElementById("img"+id).src == "http://"+globalConfig.toLowerCase()+"/apps/images/eye.png")
	{
		document.getElementById("img"+id).src = "images/neye.png";
	}
	else
	{
		document.getElementById("img"+id).src = "images/eye.png";
	}
	
	ajax = nuevoAjax();
	ajax.open("POST", "http://"+globalConfig+"/apps/modificar_item_menu.php?mostrar_ocultar=1&id="+id, true);
		 
	ajax.onreadystatechange = function()
	{				 
		if(ajax.readyState == 4)
		{
			contenedor.innerHTML = ajax.responseText;
		}
	}
	ajax.send(null);
}

/*
* Se encarga de cambiar de posicion un item (hacia abajo).
*/
function bajar_item(id, tipo_registro, id_item)
{
	var contenedor;
	contenedor = document.getElementById("muestra");		
	
	ajax = nuevoAjax();
	ajax.open("POST", "http://"+globalConfig+"/apps/modificar_item_menu.php?bajar=1&id="+id+"&tipo_registro="+tipo_registro+"&id_item="+id_item, true);
		 
	ajax.onreadystatechange = function()
	{				 
		if(ajax.readyState == 4)
		{
			contenedor.innerHTML = ajax.responseText;			
		}
	}
	ajax.send(null);
}

/*
* Se encarga de cambiar de posicion un item (hacia abajo).
*/
function bajar_nivel(id, tipo_registro, id_item)
{
	var contenedor;
	contenedor = document.getElementById("muestra");		
	
	ajax = nuevoAjax();
	ajax.open("POST", "http://"+globalConfig+"/apps/modificar_item_menu.php?bajar_nivel=1&id="+id+"&tipo_registro="+tipo_registro+"&id_item="+id_item, true);
		 
	ajax.onreadystatechange = function()
	{				 
		if(ajax.readyState == 4)
		{
			contenedor.innerHTML = ajax.responseText;			
		}
	}
	ajax.send(null);
}

/*
* Se encarga de cambiar de posicion un item (hacia arriba).
*/
function subir_item(id, tipo_registro, id_item)
{
	var contenedor;
	contenedor = document.getElementById("muestra");

	ajax = nuevoAjax();
	ajax.open("POST", "http://"+globalConfig+"/apps/modificar_item_menu.php?subir=1&id="+id+"&tipo_registro="+tipo_registro+"&id_item="+id_item, true);
		 
	ajax.onreadystatechange = function()
	{				 
		if(ajax.readyState == 4)
		{
			contenedor.innerHTML = ajax.responseText;
		}
	}
	ajax.send(null);
}

/*
* Se encarga de cambiar de posicion un item (hacia arriba).
*/
function subir_nivel(id, tipo_registro, id_item)
{
	var contenedor;
	contenedor = document.getElementById("muestra");
	
	ajax = nuevoAjax();
	ajax.open("POST", "http://"+globalConfig+"/apps/modificar_item_menu.php?subir_nivel=1&id="+id+"&tipo_registro="+tipo_registro+"&id_item="+id_item, true);
		 
	ajax.onreadystatechange = function()
	{				 
		if(ajax.readyState == 4)
		{
			contenedor.innerHTML = ajax.responseText;
		}
	}
	ajax.send(null);
}

/*
* Se encarga de eliminar un item.
*/
function eliminar_item(id, tipo_registro, id_item)
{
	var contenedor;
	Boxy.DEFAULTS.title = "Eliminar"; 
	Boxy.confirm("<div class='alerta'>&#191;Est&aacute; seguro de querer eliminar esta p&aacute;gina&#63;</div>", function() {
		if(tipo_registro == 1)
		{
			contenedor = document.getElementById("muestra");
		}
		else
		{
			contenedor = document.getElementById("muestra");
		}
		
		ajax = nuevoAjax();
		ajax.open("POST", "http://"+globalConfig+"/apps/modificar_item_menu.php?eliminar=1&id="+id+"&tipo_registro="+tipo_registro+"&id_item="+id_item, true);
			 
		ajax.onreadystatechange = function()
		{				 
			if(ajax.readyState == 4)
			{
				contenedor.innerHTML = ajax.responseText;
			}
		}
		ajax.send(null);
	});
}

/*
* Se encarga de agregar un item.
*/
function agregar_item(tipo)
{
	if(tipo == 1){ globalOptionContent = 15; globalTitle = "Crear una nueva categoria"; }
	if(tipo == 2){ globalOptionContent = 36; globalTitle = "Agregar item."; }	
}

/**
* Carga el archivo donde se registrará el usuario ya validado sus datos.
*/
function cargar_componente_registro_segunda_parte(config)
{
	contenedor = document.getElementById('componente');
	contenedor2 = document.getElementById('cargando2');
	
	var nombre = document.getElementById("nombre").value;
	var apellidos = document.getElementById("apellidos").value;
	var email = document.getElementById("email").value;
	var pais = document.getElementById("pais").value;
	var estado = document.getElementById("estado").value;
	var sexo = document.getElementById("sexo").value;
	var perfil = document.getElementById("url_perfil").value;
	var foto = document.getElementById("url_foto").value;
	
	document.getElementById("label_boton").className = "";
	document.getElementById("boton_registro").value="Espere...";
	document.getElementById("boton_registro").disabled="disabled";
	
	ajax = nuevoAjax();
	ajax.open("GET", "http://"+globalConfig+"/apps/login/register.php?nombre="+nombre+"&apellidos="+apellidos+"&email="+email+"&pais="+pais+"&estado="+estado+"&sexo="+sexo+"&segunda_parte=1&url_perfil="+perfil+"&url_foto="+foto, true);
	 
	ajax.onreadystatechange = function() 
	{				 
		if(ajax.readyState == 4)
		{				
			contenedor.innerHTML = ajax.responseText;
		}
	}
	ajax.send(null);
}

/*
* Carga el archivo donde se registrará el usuario ya validado sus datos.
*/
function cargar_componente_registro_usuario_validado()
{
	contenedor = document.getElementById('componente');
	
	var nombre = document.getElementById("nombre").value;
	var apellidos = document.getElementById("apellidos").value;
	var email = document.getElementById("email").value;
	var pais = document.getElementById("pais").value;
	var estado = document.getElementById("estado").value;
	var clave1 = document.getElementById("clave1").value;
	var clave2 = document.getElementById("clave2").value;
	var sexo = document.getElementById("sexo").value;
	var nombre_usuario = document.getElementById("nombre_usuario").value;
	
	document.getElementById("label_boton").className = "";
	document.getElementById("boton").value="Espere...";
	document.getElementById("boton").disabled="disabled";
	
	ajax = nuevoAjax();
	ajax.open("GET", "http://"+globalConfig+"/apps/login/register.php?nombre="+nombre+"&apellidos="+apellidos+"&email="+email+"&pais="+pais+"&estado="+estado+"&clave1="+clave1+"&clave2="+clave2+"&sexo="+sexo+"&nombre_usuario="+nombre_usuario+"&validado=1");
	 
	ajax.onreadystatechange = function() 
	{				 
		if(ajax.readyState == 4)
		{
			contenedor.innerHTML = ajax.responseText;			
		}
	}
	ajax.send(null);
}

/**
* Continua el proceso de registro del usuario.
*/
function validar_nombre_usuario()
{
	contenedor = document.getElementById('comprobacion_usuario');
	contenedor.innerHTML = "<img src='http://"+globalConfig+"/apps/images/loading.gif' border='0'>";
	var nombre_usuario = document.getElementById("nombre_usuario").value;	
	ajax = nuevoAjax();
	ajax.open("GET", "http://"+globalConfig+"/apps/login/validar.php?validar_usuario=1&nombre_usuario="+nombre_usuario, true);
	 
	ajax.onreadystatechange = function() 
	{				 
		if(ajax.readyState == 4)
		{
			contenedor.innerHTML = ajax.responseText;
		}
	}
	ajax.send(null);		
}

/**
* Continua el proceso de registro del usuario.
*/
function validar_email()
{
	contenedor = document.getElementById('comprobacion_email');
	contenedor.innerHTML = "<img src='http://"+globalConfig+"/apps/images/loading.gif' border='0'>";
	var email = document.getElementById("email").value;	
	ajax = nuevoAjax();
	ajax.open("GET", "http://"+globalConfig+"/apps/login/validar.php?validar_email=1&email="+email, true);
	 
	ajax.onreadystatechange = function() 
	{				 
		if(ajax.readyState == 4)
		{
			contenedor.innerHTML = ajax.responseText;
		}
	}
	ajax.send(null);		
}

/**
* Cierra cualquier boxy con esta instrucción.
*/
function cerrar_boxy()
{
	$('#close').click();
}

/**
* Ejecuta cualquier formulario bajo boxy.
*/
function submit_boxy()
{
	document.forms['form_boxy'].submit();
}

/**
 * Cargar datos externos.
 * La función de cargar contenido la definiremos de la siguiente forma
 */
function cargar_estados(estado)
{
	var pais, contenedor; 
	contenedor = document.getElementById('listaciudad');
	pais = document.getElementById('pais').value;
	
	contenedor.innerHTML = "<span class='cargando'>Procesando...</span>";
	ajax = nuevoAjax();
	ajax.open("GET", "http://"+globalConfig+"/apps/auxiliares/cargar-ciudades.php?&estado="+estado+"&pais="+pais, true);
	 
	ajax.onreadystatechange = function() 
	{				 
		if(ajax.readyState == 4)
		{				
			contenedor.innerHTML = ajax.responseText;
		}
	}
	ajax.send(null);
}
