function createXMLHttpRequest() {
	if (window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	} else if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	}else{
		return new ActiveXObject("Msxml2.XMLHTTP");
		alert('No existe la posibilidad de AJAX');
	}
}
var xmlHttp;

/*comentarios*/
function check_cmnts(pag){
	var url = "paginate_cmnts.php?pg="+ escape(pag);
	xmlHttp = createXMLHttpRequest();
	xmlHttp.open("GET", url);
	xmlHttp.onreadystatechange = result_cmnts;
	xmlHttp.send(null);
}
function result_cmnts() {
	if (xmlHttp.readyState == 4) {
		document.getElementById("response_comments").innerHTML=xmlHttp.responseText;
	}
}

/*galeria*/
/*para los selects*/
/*function showgallery(subcat){ 
alert(subcat);
	var selectOrigen = document.getElementById(subcat);
	
	var opcionSeleccionada = selectOrigen.options[selectOrigen.selectedIndex].value;
	alert(opcionSeleccionada);
	var url = "request-gallery.php?subcat=" + escape(opcionSeleccionada);
	xmlHttp = createXMLHttpRequest();
	xmlHttp.open("GET", url);
	xmlHttp.onreadystatechange = resultado_gallery;
	xmlHttp.send(null);
}*/
function showgallery(subcat){ 
	
	var selectOrigen = document.getElementById(subcat);
	
	var opcionSeleccionada = selectOrigen.options[selectOrigen.selectedIndex].value;
	
	var url = "request-gallery.php?subcat=" + escape(opcionSeleccionada);
	xmlHttp = createXMLHttpRequest();
	xmlHttp.open("GET", url);
	xmlHttp.onreadystatechange = resultado_gallery;
	xmlHttp.send(null);
}

function showgalleryname(subcat){ 
	var selectOrigen = document.getElementById(subcat);
	var opcionSeleccionada = selectOrigen.options[selectOrigen.selectedIndex].value;
	var url = "request-gallery-name.php?subcat=" + escape(opcionSeleccionada);
	xmlHttp = createXMLHttpRequest();
	xmlHttp.open("GET", url);
	xmlHttp.onreadystatechange = resultado_gallery_name;
	xmlHttp.send(null);
}
/*incicializar*/
function showgallery2(){ 
	var selectOrigen = document.getElementById('subcategories');
	var opcionSeleccionada = 1;
	var url = "request-gallery.php?subcat=" + escape(opcionSeleccionada);
	xmlHttp = createXMLHttpRequest();
	xmlHttp.open("GET", url);
	xmlHttp.onreadystatechange = resultado_gallery;
	xmlHttp.send(null);
}
function showgallery3(idsub){ 
	var selectOrigen = document.getElementById('subcategories');
	var url = "request-gallery.php?subcat=" + idsub;
	xmlHttp = createXMLHttpRequest();
	xmlHttp.open("GET", url);
	xmlHttp.onreadystatechange = resultado_gallery;
	xmlHttp.send(null);
}
/*para paginar*/
function paginateGallery(subcategoria,pag){ 
	var selectOrigen = document.getElementById('subcategories');
	var url = "request-gallery.php?subcat=" +  subcategoria + "&pg=" + pag;
	xmlHttp = createXMLHttpRequest();
	xmlHttp.open("GET", url);
	xmlHttp.onreadystatechange = resultado_gallery;
	xmlHttp.send(null);
}
function resultado_gallery() {
	if (xmlHttp.readyState == 4) {
		document.getElementById("response_gallery").innerHTML=xmlHttp.responseText;
	}
}
function resultado_gallery_name() {
	if (xmlHttp.readyState == 4) {
		document.getElementById("response_name").innerHTML=xmlHttp.responseText;
	}
}
/***************************************** SELECTS DINAMICOS *************************************************/
function nuevoAjax(){ 
	/* Crea el objeto AJAX. Esta funcion es generica para cualquier utilidad de este tipo, por
	lo que se puede copiar tal como esta aqui */
	var xmlhttp = false;
	try{
		// Creacion del objeto AJAX para navegadores no IE
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	}catch(e){
		try{
			// Creacion del objet AJAX para IE
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		}catch(E){
			if (!xmlhttp && typeof XMLHttpRequest!='undefined') xmlhttp=new XMLHttpRequest();
		}
	}
	return xmlhttp; 
}

// Declaro los selects que componen el documento HTML. Su atributo ID debe figurar aqui.
var listadoSelects = new Array();
listadoSelects[0]="categories";
listadoSelects[1]="subcategories";

function buscarEnArray(array, dato){
	// Retorna el indice de la posicion donde se encuentra el elemento en el array o null si no se encuentra
	var x = 0;
	while(array[x]){
		if(array[x]==dato) return x;
		x++;
	}
	return null;
}

function cargaContenido(idSelectOrigen){

	// Obtengo la posicion que ocupa el select que debe ser cargado en el array declarado mas arriba
	var posicionSelectDestino = buscarEnArray(listadoSelects, idSelectOrigen)+1;
	// Obtengo el select que el usuario modifico
	var selectOrigen = document.getElementById(idSelectOrigen);
	
	// Obtengo la opcion que el usuario selecciono
	var opcionSeleccionada = selectOrigen.options[selectOrigen.selectedIndex].value;


	// Si el usuario eligio la opcion "Elige", no voy al servidor y pongo los selects siguientes en estado "Selecciona opcion..."
	if(opcionSeleccionada==0){
		var x = posicionSelectDestino, selectActual=null;
		// Busco todos los selects siguientes al que inicio el evento onChange y les cambio el estado y deshabilito
		while(listadoSelects[x]){
			selectActual = document.getElementById(listadoSelects[x]);
			selectActual.length = 0;
			var nuevaOpcion = document.createElement("option"); nuevaOpcion.value=0; nuevaOpcion.innerHTML = "Selecciona Opci&oacute;n...";
			selectActual.appendChild(nuevaOpcion);	selectActual.disabled = true;
			x++;
		}
	}
	// Compruebo que el select modificado no sea el ultimo de la cadena
	else if(idSelectOrigen!=listadoSelects[listadoSelects.length-1]){
		// Obtengo el elemento del select que debo cargar
		var idSelectDestino = listadoSelects[posicionSelectDestino];
		var selectDestino = document.getElementById(idSelectDestino);
		// Creo el nuevo objeto AJAX y envio al servidor el ID del select a cargar y la opcion seleccionada del select origen
		var ajax = nuevoAjax();
		ajax.open("GET", "select_dependientes_proceso.php?select="+idSelectDestino+"&opcion="+opcionSeleccionada, true);
		ajax.onreadystatechange = function() 
		{ 
			if (ajax.readyState==1){
				// Mientras carga elimino la opcion "Selecciona Opcion..." y pongo una que dice "Cargando..."
				selectDestino.length = 0;
				var nuevaOpcion = document.createElement("option"); nuevaOpcion.value = 0; nuevaOpcion.innerHTML = "Cargando...";
				selectDestino.appendChild(nuevaOpcion); selectDestino.disabled = true;	
			}
			if (ajax.readyState==4){
				selectDestino.parentNode.innerHTML = ajax.responseText;
			} 
		}
		ajax.send(null);
	}
}

/*NOTICIAS*/
function cargaContenido2(idSelectOrigen){
	// Obtengo la posicion que ocupa el select que debe ser cargado en el array declarado mas arriba
	var posicionSelectDestino = buscarEnArray(listadoSelects, idSelectOrigen)+1;
	// Obtengo el select que el usuario modifico
	var selectOrigen = document.getElementById(idSelectOrigen);
	// Obtengo la opcion que el usuario selecciono
	var opcionSeleccionada = selectOrigen.options[selectOrigen.selectedIndex].value;
	// Si el usuario eligio la opcion "Elige", no voy al servidor y pongo los selects siguientes en estado "Selecciona opcion..."
	if(opcionSeleccionada==0){
		var x=posicionSelectDestino, selectActual = null;
		// Busco todos los selects siguientes al que inicio el evento onChange y les cambio el estado y deshabilito
		while(listadoSelects[x]){
			selectActual = document.getElementById(listadoSelects[x]);
			selectActual.length = 0;
			var nuevaOpcion = document.createElement("option"); nuevaOpcion.value=0; nuevaOpcion.innerHTML = "Selecciona Opci&oacute;n...";
			selectActual.appendChild(nuevaOpcion);	selectActual.disabled = true;
			x++;
		}
	}
	// Compruebo que el select modificado no sea el ultimo de la cadena
	else if(idSelectOrigen!=listadoSelects[listadoSelects.length-1]){
		// Obtengo el elemento del select que debo cargar
		var idSelectDestino = listadoSelects[posicionSelectDestino];
		var selectDestino = document.getElementById(idSelectDestino);
		// Creo el nuevo objeto AJAX y envio al servidor el ID del select a cargar y la opcion seleccionada del select origen
		var ajax = nuevoAjax();
		ajax.open("GET", "news_selects.php?select="+idSelectDestino+"&opcion="+opcionSeleccionada, true);
		ajax.onreadystatechange = function(){ 
			if (ajax.readyState==1){
				// Mientras carga elimino la opcion "Selecciona Opcion..." y pongo una que dice "Cargando..."
				selectDestino.length = 0;
				var nuevaOpcion = document.createElement("option"); nuevaOpcion.value = 0; nuevaOpcion.innerHTML = "Cargando...";
				selectDestino.appendChild(nuevaOpcion); selectDestino.disabled = true;	
			}
			if (ajax.readyState==4){
				selectDestino.parentNode.innerHTML = ajax.responseText;
			} 
		}
		ajax.send(null);
	}
}
/*para los selects MODIFICADO*/
function showArticles(subcat){ 
	var selectOrigen = document.getElementById(subcat);
	var opcionSeleccionada = selectOrigen.options[selectOrigen.selectedIndex].value;
	
	/*var selectOrigen1 = document.getElementById('categories');
	var opcionSeleccionada1 = selectOrigen1.options[selectOrigen1.selectedIndex].value;*/
	
	var url = "request-news.php?subcat=" + escape(opcionSeleccionada) + "&categ=1";
	xmlHttp = createXMLHttpRequest();
	xmlHttp.open("GET", url);
	xmlHttp.onreadystatechange = resultado_noticias;
	xmlHttp.send(null);
}

/*para los selects*/
function shownews(subcat){ 
	var selectOrigen = document.getElementById(subcat);
	var opcionSeleccionada = selectOrigen.options[selectOrigen.selectedIndex].value;
	
	/*var selectOrigen1 = document.getElementById('categories');
	var opcionSeleccionada1 = selectOrigen1.options[selectOrigen1.selectedIndex].value;*/
	
	var url = "request-news.php?subcat=" + escape(opcionSeleccionada) + "&categ=2";
	xmlHttp = createXMLHttpRequest();
	xmlHttp.open("GET", url);
	xmlHttp.onreadystatechange = resultado_noticias;
	xmlHttp.send(null);
}
/*para incicializar y/o condiciones*/
function showArticles2(condicion){ 
	var selectOrigen = document.getElementById('subcategories');
	var opcionSeleccionada = 1;
	/*para la nacionalidad*/
	
	try{
		var selectOrigen2 = document.getElementById(condicion);
		var tipo = selectOrigen2.options[selectOrigen2.selectedIndex].value;
	}catch(E){
		var selectOrigen2 = 0;
		var tipo = 0;
	}
	
	var url = "request-news.php?subcat=" + escape(opcionSeleccionada) + "&condition=" + escape(condicion) + "&tipo=" + escape(tipo);
	xmlHttp = createXMLHttpRequest();
	xmlHttp.open("GET", url);
	xmlHttp.onreadystatechange = resultado_noticias;
	xmlHttp.send(null);
}
/*para incicializar y/o condiciones*/
function shownews2(condicion){ 
	var selectOrigen = document.getElementById('subcategories');
	var opcionSeleccionada = 4;
	/*para la nacionalidad*/
	
	try{
		var selectOrigen2 = document.getElementById(condicion);
		var tipo = selectOrigen2.options[selectOrigen2.selectedIndex].value;
	}catch(E){
		var selectOrigen2 = 0;
		var tipo = 0;
	}
	
	var url = "request-news.php?subcat=" + escape(opcionSeleccionada) + "&condition=" + escape(condicion) + "&tipo=" + escape(tipo);
	xmlHttp = createXMLHttpRequest();
	xmlHttp.open("GET", url);
	xmlHttp.onreadystatechange = resultado_noticias;
	xmlHttp.send(null);
}
/*para paginar*/
function paginateNews(subcategoria,pag,condition,tipo,categoria){ 
	var selectOrigen = document.getElementById('subcategories');
	var url = "request-news.php?subcat=" +  subcategoria + "&pg=" + pag + "&condition=" + escape(condition) + "&tipo=" + escape(tipo) + "&categ=" + escape(categoria);
	xmlHttp = createXMLHttpRequest();
	xmlHttp.open("GET", url);
	xmlHttp.onreadystatechange = resultado_noticias;
	xmlHttp.send(null);
}
function resultado_noticias() {
	if (xmlHttp.readyState == 4) {
		document.getElementById("response_news").innerHTML=xmlHttp.responseText;
	}
}
/************************************ VALIDATIONS *********************************************/
function check_gallery(){
	var gallery = document.getElementById("gallery_name").value;
	var url = "controllers_manager/galleries/validate_cat.php?cat="+ escape(gallery);	
	xmlHttp = createXMLHttpRequest();
	xmlHttp.open("GET", url);
	xmlHttp.onreadystatechange = result_gallery;
	xmlHttp.send(null);
}
function result_gallery() {
	if (xmlHttp.readyState == 4) {
		document.getElementById("r_gallery").innerHTML=xmlHttp.responseText;
	}
}
function check_cat(){
	var cat = document.getElementById("category_name").value;
	var url = "controllers_manager/cat_events/validate_cat.php?cat="+ escape(cat);	
	xmlHttp = createXMLHttpRequest();
	xmlHttp.open("GET", url);
	xmlHttp.onreadystatechange = result_category;
	xmlHttp.send(null);
}
function result_category() {
	if (xmlHttp.readyState == 4) {
		document.getElementById("r_category").innerHTML=xmlHttp.responseText;
	}
}
function check_event(){
	var ev = document.getElementById("ev_name").value;
	var url = "controllers_manager/events/validate_event.php?event="+ escape(ev);	
	xmlHttp = createXMLHttpRequest();
	xmlHttp.open("GET", url);
	xmlHttp.onreadystatechange = result_event;
	xmlHttp.send(null);
}
function result_event() {
	if (xmlHttp.readyState == 4) {
		document.getElementById("r_event").innerHTML=xmlHttp.responseText;
	}
}
// Declaro los selects que componen el documento HTML. Su atributo ID debe figurar aqui.
var listado2Selects = new Array();
listado2Selects[0]="id_evento";
listado2Selects[1]="id_subevento";

function buscarEnArray2(array, dato){
	// Retorna el indice de la posicion donde se encuentra el elemento en el array o null si no se encuentra
	var x = 0;
	while(array[x]){
		if(array[x]==dato) return x;
		x++;
	}
	return null;
}

/*llena select de subeventos*/
function cargaSubEnventos(idSelectOrigen,valor){

	// Obtengo la posicion que ocupa el select que debe ser cargado en el array declarado mas arriba
	var posicionSelectDestino = buscarEnArray2(listado2Selects, idSelectOrigen)+1;
	
	// Obtengo el select que el usuario modifico
	var selectOrigen = document.getElementById(idSelectOrigen);

	// Obtengo la opcion que el usuario selecciono
	//var opcionSeleccionada = selectOrigen.options[selectOrigen.selectedIndex].value;
var opcionSeleccionada =valor;

	// Si el usuario eligio la opcion "Elige", no voy al servidor y pongo los selects siguientes en estado "Selecciona opcion..."
	if(opcionSeleccionada==0){
		var x = posicionSelectDestino, selectActual=null;
		// Busco todos los selects siguientes al que inicio el evento onChange y les cambio el estado y deshabilito
		while(listado2Selects[x]){
			selectActual = document.getElementById(listado2Selects[x]);
			selectActual.length = 0;
			var nuevaOpcion = document.createElement("option"); nuevaOpcion.value=0; nuevaOpcion.innerHTML = "Selecciona Opci&oacute;n...";
			selectActual.appendChild(nuevaOpcion);	selectActual.disabled = true;
			x++;
		}
	}
	// Compruebo que el select modificado no sea el ultimo de la cadena
	else if(idSelectOrigen!=listado2Selects[listado2Selects.length-1]){
		// Obtengo el elemento del select que debo cargar
		var idSelectDestino = listado2Selects[posicionSelectDestino];
		var selectDestino = document.getElementById(idSelectDestino);
		// Creo el nuevo objeto AJAX y envio al servidor el ID del select a cargar y la opcion seleccionada del select origen
		var ajax = nuevoAjax();
		ajax.open("GET", "select_subeventos.php?select="+idSelectDestino+"&opcion="+opcionSeleccionada, true);
		ajax.onreadystatechange = function() 
		{ 
			if (ajax.readyState==1){
				// Mientras carga elimino la opcion "Selecciona Opcion..." y pongo una que dice "Cargando..."
				selectDestino.length = 0;
				var nuevaOpcion = document.createElement("option"); nuevaOpcion.value = 0; nuevaOpcion.innerHTML = "Cargando...";
				selectDestino.appendChild(nuevaOpcion); selectDestino.disabled = true;	
			}
			if (ajax.readyState==4){
				selectDestino.parentNode.innerHTML = ajax.responseText;
			} 
		}
		ajax.send(null);
	}
}


// Declaro los selects que componen el documento HTML. Su atributo ID debe figurar aqui.
var listado3Selects = new Array();
listado3Selects[0]="id_evento";
listado3Selects[1]="id_subevento3";

function buscarEnArray3(array, dato){
	// Retorna el indice de la posicion donde se encuentra el elemento en el array o null si no se encuentra
	var x = 0;
	while(array[x]){
		if(array[x]==dato) return x;
		x++;
	}
	return null;
}

/*llena select de subeventos*/
function cargaSubEnventos3(idSelectOrigen,valor){

	// Obtengo la posicion que ocupa el select que debe ser cargado en el array declarado mas arriba
	var posicionSelectDestino = buscarEnArray3(listado3Selects, idSelectOrigen)+1;
	
	// Obtengo el select que el usuario modifico
	var selectOrigen = document.getElementById(idSelectOrigen);

	// Obtengo la opcion que el usuario selecciono
	//var opcionSeleccionada = selectOrigen.options[selectOrigen.selectedIndex].value;
var opcionSeleccionada =valor;

	// Si el usuario eligio la opcion "Elige", no voy al servidor y pongo los selects siguientes en estado "Selecciona opcion..."
	if(opcionSeleccionada==0){
		var x = posicionSelectDestino, selectActual=null;
		// Busco todos los selects siguientes al que inicio el evento onChange y les cambio el estado y deshabilito
		while(listado3Selects[x]){
			selectActual = document.getElementById(listado3Selects[x]);
			selectActual.length = 0;
			var nuevaOpcion = document.createElement("option"); nuevaOpcion.value=0; nuevaOpcion.innerHTML = "Selecciona Opci&oacute;n...";
			selectActual.appendChild(nuevaOpcion);	selectActual.disabled = true;
			x++;
		}
	}
	// Compruebo que el select modificado no sea el ultimo de la cadena
	else if(idSelectOrigen!=listado3Selects[listado3Selects.length-1]){
		// Obtengo el elemento del select que debo cargar
		var idSelectDestino = listado3Selects[posicionSelectDestino];
		var selectDestino = document.getElementById(idSelectDestino);
		// Creo el nuevo objeto AJAX y envio al servidor el ID del select a cargar y la opcion seleccionada del select origen
		var ajax = nuevoAjax();
		ajax.open("GET", "select_subeventos2.php?select="+idSelectDestino+"&opcion="+opcionSeleccionada, true);
		ajax.onreadystatechange = function() 
		{ 
			if (ajax.readyState==1){
				// Mientras carga elimino la opcion "Selecciona Opcion..." y pongo una que dice "Cargando..."
				selectDestino.length = 0;
				var nuevaOpcion = document.createElement("option"); nuevaOpcion.value = 0; nuevaOpcion.innerHTML = "Cargando...";
				selectDestino.appendChild(nuevaOpcion); selectDestino.disabled = true;	
			}
			if (ajax.readyState==4){
				selectDestino.parentNode.innerHTML = ajax.responseText;
			} 
		}
		ajax.send(null);
	}
}
