_globalBusqPrev = 'nopersonalizada';


/**
* Búsqueda desde la Home en la agenda de acuerdo a los criterios del año y los eventos
* @param string Página actual
* @param string lugares Lugar donde buscar
* @param string tipos Tipo de evento
*/
function searchEventsFromHome(thisPage, formObj, lugares, tipos) {

	thisPage = 'agendaMgr.php?opciones=7_1&referer=6_1';
	var mes = formObj.seccIntervMes.options[formObj.seccIntervMes.selectedIndex].value;
	var ano = formObj.seccIntervAno.options[formObj.seccIntervAno.selectedIndex].value;
	
	window.location = thisPage + '&accion=comeFromHome&frm[isla]=' + lugares.options[lugares.selectedIndex].value + '&frm[seccion]=' + tipos.options[tipos.selectedIndex].value + '&frmCal[mes]='+mes+'&frmCal[ano]='+ano;

}

/**
* Fijar los criterios de búsqueda en opciones personalizadas
* Además, precarga los valores de mes y año actual en los combos 
* @param object objForm Objeto formulario
* @param string isla Isla a la que se refiere la información
* @param string seccion Sección a la que se refiere la información
*/
function calendarSearchPers(thisPage, lugares, tipos, intervalo) {

	var nextpage = 1;
	
	if (arguments.length > 4)
	{
		nextpage = arguments[4];
	}

	//Dependiendo de la página en la que se encuentre hace la llamada directamente
	//o carga primero la página de la agenda
	var curPageUrl = window.location.href.toString();
	
	if (curPageUrl.indexOf('agenda') == -1)
	{//Llamar a la página de la agenda y mandar los parámetros
		window.location = 'agendaMgr.php?opciones=7_1&referer=6_1&showPreferences=1';
	}
	else
	{//Se encuentra en la página de la agenda
		//Precargar valores
		var myForm = document.frmCalendarInt;
		var myDate = new Date();
		var curMonth = '00' + myDate.getMonth() + 1 ;
		curMonth = curMonth.substring(curMonth.length-2,curMonth.length);
		var curYear = myDate.getYear();

		for (var x = 0; x < myForm.seccIntervMes.options.length; x++)
		{
			if (myForm.seccIntervMes.options[x].value == curMonth)
				{myForm.seccIntervMes.options[x].selected = true;}
		}
		
		for (var x = 0; x < myForm.seccIntervAno.options.length; x++)
		{
			if (myForm.seccIntervAno.options[x].value == curYear)
				{myForm.seccIntervAno.options[x].selected = true;}
		}
		
		var fechaSrc = 'hoy';
  	var objInterval = intervalo;
		if (typeof(document.prefersForm) != 'undefined')
		{
			var innerForm = document.prefersForm;
			var myMes = innerForm.elements['seccIntervMes'];
			var myAno = innerForm.elements['seccIntervAno'];
			if (intervalo == null && myMes.options[myMes.selectedIndex].value != '' && myAno.options[myAno.selectedIndex].value != '')
			{
				fechaSrc = myAno.options[myAno.selectedIndex].value + '-' + myMes.options[myMes.selectedIndex].value + '-01';
			}
		}
		
  	var nuevaURL = thisPage + '?accion=getEvents&frm[isla]=' + lugares + '&frm[seccion]=' + tipos;
  	var myVars = {'accion':'getEvents', 'frm[isla]':lugares, 'frm[seccion]':tipos, 'frm[intervalo]':fechaSrc, 'ado_next_page':nextpage, 'orderBy':_global_orderBy};
		loadXMLDocPost(nuevaURL, 'getPersonalEventos', myVars);
		
		_globalBusqPrev = 'personalizada'; //Bandera para la personalización

	}

}

/**
* Toma los valores del formulario de la agenda y los lanza contra calendarSearch
* @param string pagina Dirección de la página
* @param integer numpag Este argumento es opcional, si viene es el número de página pedido
*/
function calendarSearchElem(pagina) {

	var myForm = document.frmCalendarInt;
	var isla = myForm.islaselect;
	var seccion = myForm.seccionselect;
	var nulo = '';
	var mes = myForm.seccIntervMes.options[myForm.seccIntervMes.selectedIndex].value;
	var ano = myForm.seccIntervAno.options[myForm.seccIntervAno.selectedIndex].value;
	var fechas = ano + '-' + mes + '-01';

	if (arguments.length == 1)
	{
		calendarSearch(pagina, myForm, isla, seccion, nulo, fechas);
	}
	else
	{
		calendarSearch(pagina, myForm, isla, seccion, arguments[1], fechas);
	}

}

/**
* Buscar en la agenda de eventos a partir de unos criterios
* @param object objForm Objeto formulario
* @param string isla Isla a la que se refiere la información
* @param string seccion Sección a la que se refiere la información
*/
function calendarSearch(url, objForm, isla, seccion) {

	var pageParam = pageParam2 = tmpVar = '';

	_globalBusqPrev = 'nopersonalizada'; //Bandera para la personalización
	
	if (arguments.length > 4)
	{//Número de página
	
		if (arguments[4] != null) {pageParam = '&ado_next_page=' + arguments[4];}
		if (arguments[5] != null)
		{
			if (!_global_srcDayActive) {pageParam2 = '&frm[intervalo]=' + arguments[5];}
			else {pageParam2 = '&frm[intervalo]=';}
		}
		
	}
	
	//Llamar al procedimiento
	var nuevaURL = url + '?accion=getEvents&frm[isla]=' + isla.options[isla.selectedIndex].value + '&frm[seccion]=' + seccion.options[seccion.selectedIndex].value + pageParam + pageParam2 + _global_orderBy + _global_unixDate;

	//Dependiendo de la página en la que se encuentre hace la llamada directamente
	//o carga primero la página de la agenda
	var curPageUrl = window.location.href.toString();
	
	if (curPageUrl.indexOf('agenda') == -1)
	{//Llamar a la página de la agenda y mandar los parámetros

		window.location = 'agendaMgr.php?opciones=7_1&referer=6_1&showpage=1&accion=getEvents&frm[isla]=' + isla.options[isla.selectedIndex].value + '&frm[seccion]=' + seccion.options[seccion.selectedIndex].value + pageParam + pageParam2 + _global_orderBy + _global_unixDate;
	}
	else
	{//Se encuentra en la página de la agenda
	
		alert(nuevaURL)
		loadXMLDoc(nuevaURL, 'getEventos');
	}

}

/**
* Almacenar como variables globales los parámetros de búsqueda
* a fin de conservarlos en la paginación 
*
*/
function saveSrcParams() {

	//null

}

/**
* Fija la fecha actual en las preferencias de búsqueda de usuario
*
*/
function setDatePrefs(objForm) {

	var objFormInt = document.frmCalendarInt;
	var mesObj = objFormInt.elements['seccIntervMes'];
	var anoObj = objFormInt.elements['seccIntervAno'];

	var flag = 0;
	if (mesObj.options[mesObj.selectedIndex].value != '')
	{
		objForm.elements['frmCal[mes]'].value = mesObj.options[mesObj.selectedIndex].value;
		flag++;
	}

	if (mesObj.options[mesObj.selectedIndex].value != '')
	{
		objForm.elements['frmCal[ano]'].value = anoObj.options[anoObj.selectedIndex].value;
		flag++;
	}
	
	if (flag > 0)
	{
		objForm.elements['frm[intervalo]'].value = objForm.elements['frmCal[ano]'].value + '-' + objForm.elements['frmCal[mes]'].value + '-01';
	}
	
	objForm.submit();

}


/**
* Buscar en la agenda de eventos a partir de una fecha dada.
* Se declara como global la variable fecha
*
* @param integer unixDate Fecha en formato UNIX
* @param integer page Si se pasa un 2º argumento es la página
* @param integer orderby Si se pasa un 3er argumento es el orden
*/
function searcDay(unixDate) {

	var objForm = document.frmCalendarInt;
	
	_global_unixDate = '&frm[date]=' + unixDate;
	objForm.seccionselect.options[0].selected = true;
	objForm.islaselect.options[0].selected = true;
	_global_srcDayActive = true;
	switch (arguments.length)
	{
		case 2://Se pasa la página a listar
			calendarSearch('agendaMgr.php', objForm, objForm.islaselect, objForm.seccionselect, arguments[1]);
		break;
		
		case 3:
			_global_orderBy = '&orderBy=' + arguments[2]; //Elemento clave de ordenación
			calendarSearch('agendaMgr.php', objForm, objForm.islaselect, objForm.seccionselect, arguments[1]);
		break;
		
		default://No va la página, por defecto es 1
			calendarSearch('agendaMgr.php', objForm, objForm.islaselect, objForm.seccionselect);
		break;
	}
	
}

/**
* Ver los detalles de un evento
* 
* @param integer numEvent Identificador del evento pedido
*/
function viewEvent(url, numEvent) {

	var nuevaURL = url + '?accion=getEvento&frm[idEvento]=' + numEvent;
	loadXMLDoc(nuevaURL, 'getEvento');

}
