//DIAS Y MESES EN INGLES Y ESPANOL
var kexception="";
var calendar_styleimg=stylepath+"/css/img";
var stylepath=stylepath;
var actcal=null;
var dias_en = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
var meses_en = new Array("January","February","March","April","May","June","July","August","September","October","November","December");			
var dias_es = new Array("Domingo","Lunes","Martes","Mi\u00E9rcoles","Jueves","Viernes","S\u00E1bado");
var meses_es = new Array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
var valdia = new Array(6,0,1,2,3,4,5);//valor de dias que maneja javascript	
//NUMEROS ORDINALES
var ordinalNumbers = new Array("1st","2nd","3rd","4th","5th","6th","7th","8th","9th","10th","11th","12th","13th","14th","15th","16th","17th","18th","19th","20th","21st","22nd","23rd","24th","25th","26th","27th","28th","29th","30th","31st"); 

//contructor de eventos			
function comp_evento(k,calPos,nombre,anioIni,mesIni,diaIni,horaIni,minuteIni,anioFin,mesFin,diaFin,horaFin,minuteFin,privacidad,prioridad,caldk,dkcomp,colofondo,colortext)
{
	this.k = k;
	this.calPos = calPos;	
	this.nombre = nombre;
	this.anioIni = anioIni;
	this.mesIni = mesIni;
	this.diaIni = diaIni;
	this.horaIni = horaIni; 
	this.minuteIni = minuteIni;
	this.anioFin = anioFin;
	this.mesFin = mesFin;
	this.diaFin = diaFin;
	this.horaFin = horaFin;
	this.minuteFin = minuteFin;				
	this.privacidad = privacidad;
	this.prioridad =prioridad;
	this.colofondo=colofondo;
	this.colortext=colortext;
	
	this.html = function() {
		var txtfecha=diaIni;//meses_es[Math.abs(mesIni)-1]+" ,"+
		return '<div class="calendarDate"><div style="color:'+colortext+'; background: '+colofondo+';">'+txtfecha+'</div></div><div class="link1"><a href="javascript:changeViewForm(document.getElementById(\'gsecureform\'),\'/'+aplicaptr+'/vista/'+vistaBlog+'/agenda.html\',\''+k+'\')">'+nombre+'</a> </div>';
	}
}

//constructor de calendarios
function comp_calendario(k,nombre,customizacionoid,prioridad,color,colortxt,npost) 
{
	this.k= k;
	this.nombre = nombre;
	this.customizacionoid= customizacionoid;
	this.prioridad = prioridad;
	this.color = color;
	this.colortxt = colortxt;
	this.npost=npost;
}


	
function fecha(anio,mes,dia)
{
	this.anio = anio;
	this.mes = mes;
	this.dia = dia;
}
		
//Establece el numero de dias de cada mes 
function arrayOfDaysInMonths(isLeapYear)
{
	this[0] = 31;
	this[1] = 28;
	if(isLeapYear) this[1] = 29;
	this[2] = 31;
	this[3] = 30;
	this[4] = 31;
	this[5] = 30;
	this[6] = 31;
	this[7] = 31;
	this[8] = 30;
	this[9] = 31;
	this[10] = 30;
	this[11] = 31;
}
	
//Calcula los dias del mes recibido
function daysInMonth(month, year)
{
	var isLeapYear = (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0));
	var monthDays  = new arrayOfDaysInMonths(isLeapYear);
	return monthDays[month];
}			

//pintamos los dias de los calendarios segun el idioma
function com_pintarDias(lang,dkcomp)
{
	var contiene=mostrar_mensaje(124);
	var dias_es = contiene.split(",");	
	var tmp = "dias_"+lang;
	var diasSem = eval(tmp);
	
		for(var j=0; j<diasSem.length; j++)
		{
			var daypos = valdia[j];
			var shortDay = diasSem[j];
			var tmpid="GD"+daypos+dkcomp;
			document.getElementById(tmpid).innerHTML = "<div>"+shortDay.substring(0,3)+"</div>"; 
		}
}
//pinta las celdas con eventos si los hay segun la prioridad
function com_checkEvent(a,m,d,dkcomp)
{
	var refeventos=eval("eventos"+dkcomp);
	var calPosition = "none";   
	var semaforo = 0;	
	for(var i=0; i<refeventos.length; i++)
	{
		if((refeventos[i].anioIni == a)&&(refeventos[i].mesIni == m)&&(refeventos[i].diaIni == d)&&((actcal==null)||(actcal=='null')||(actcal==calendarios[refeventos[i].calPos].k)))
		{ 
			if(semaforo == 5){break;}
			else
			{
				if((refeventos[i].prioridad == 'muy alta') && (semaforo < 5))
				{
					calPosition = refeventos[i].calPos;								
					break;
				}
				else
				{
					if((refeventos[i].prioridad == 'alta') && (semaforo < 4))
					{
						calPosition = refeventos[i].calPos;									
						continue;
					}
					else
					{
						if((refeventos[i].prioridad == 'media') && (semaforo < 3))
						{
							calPosition = refeventos[i].calPos;										
							continue;
						}
						else
						{
							if((refeventos[i].prioridad == 'baja') && (semaforo < 2))
							{
								calPosition = refeventos[i].calPos;										
								continue;
							}
							else
							{
								if((refeventos[i].prioridad == 'muy baja') && (semaforo < 1))
								{
									calPosition = refeventos[i].calPos;												
									continue;
								}
								else{ continue; }
							}								
						}							
					}	
				}											
			}
		}
		else{ continue; }					
	}	
	//alert("PosicionCheck: "+calPosition);
	return calPosition;
}

//funcion que se encarga de insertar la informacion de los dias en los calendarios
function com_pintarCalendarios(fd,m,y,lang,dkcomp,fechaHoy,anyoActual)
{	
	var contiene=mostrar_mensaje(42);
	var meses_es = contiene.split(",");
	var fechaActual=new Date();
	var anyoAct=fechaActual.getFullYear();var mesAct=fechaActual.getMonth();var diaAct=fechaActual.getDate(); 
	var numDias = daysInMonth(m, y);
	var refcalendarios=eval("calendarios"+dkcomp);
	var refeventos=eval("eventos"+dkcomp);
	var refdiaHoy=eval("diaHoy"+dkcomp),refmesHoy=eval("mesHoy"+dkcomp),refanioHoy=eval("anioHoy"+dkcomp);
	
	var mG = m+1;
	if(mG <10){ mG = "0"+mG; }					
	
	var monthX = "meses_"+lang;
	var Xmonth = eval(monthX);	
	document.getElementById("month"+dkcomp).innerHTML="<a href='javascript:cargarMes(\""+mG+"\","+y+",\"\",\""+lang+"\","+dkcomp+",\"M\")'>"+Xmonth[m]+", "+y+"</a>";					
	
	var contaDias =	fd;
	var contaSem=0;
	//Blanquear calendarios
	for(var x=0; x<6; x++)
	{
		for(yF=0; yF<7; yF++)
		{
			var tmpidx="GF"+x+"C"+yF+dkcomp;
			document.getElementById(tmpidx).innerHTML="&nbsp;";
			document.getElementById(tmpidx).style.color = "#333333";
			document.getElementById(tmpidx).style.backgroundColor = ""; 
			document.getElementById(tmpidx).className = "noBg";				
		}
	}					
							
	for(var j=1; j<=numDias; j++)
	{						
		var tmpid = "GF"+contaSem+"C"+contaDias+dkcomp;
		var XdG;
		if(j < 10){ XdG = "0"+j; }
		else{ XdG = j; }
		//alert(y+''+mG+''+XdG);
		var posCal = com_checkEvent(y,mG,XdG,dkcomp);
		
		if((contaDias == 5)||(contaDias ==6)){ document.getElementById(tmpid).className = "weekend"; }
		else{ document.getElementById(tmpid).className = "";}
		
		if(posCal=="none"){ document.getElementById(tmpid).innerHTML = "<div actcal='noppuedeser' posCal='"+posCal+"'>"+j+"</div>"; }
		else
		{	
			if((actcal==null)||(actcal=='null'))
			{
				try{
					document.getElementById(tmpid).innerHTML = "<div actcal='"+actcal+"' posCal='"+posCal+"'><a id='L"+tmpid+"' href='javascript:cargarMes(\""+mG+"\","+y+",\""+XdG+"\",\""+lang+"\","+dkcomp+",\"D\");'><strong>"+j+"</strong></a></div>";				
					document.getElementById(tmpid).style.backgroundColor = refcalendarios[posCal].color;
					document.getElementById('L'+tmpid).style.color = ""+refcalendarios[posCal].colortxt;
				}catch(e){}
			}
			else
			{		
				try{
					if(actcal == refcalendarios[posCal].k)
					{
						document.getElementById(tmpid).innerHTML = "<div actcal='"+actcal+"' posCal='"+posCal+"'><a id='L"+tmpid+"' href='javascript:cargarMes(\""+mG+"\","+y+",\""+XdG+"\",\""+lang+"\","+dkcomp+",\"D\");'><strong>"+j+"</strong></a></div>";				
						document.getElementById(tmpid).style.backgroundColor = refcalendarios[posCal].color;
						document.getElementById('L'+tmpid).style.color = ""+refcalendarios[posCal].colortxt;
					}
					else{ document.getElementById(tmpid).innerHTML = "<div posCal='"+posCal+"'>"+j+"</div>"; }
				}catch(e){ }
			}
		}
		
		if((j == diaAct) &&(m == mesAct) &&(y == anyoAct))
		{ 
			if((contaDias == 5)||(contaDias ==6)){ document.getElementById(tmpid).className = "todayweekend"; }
			else{ document.getElementById(tmpid).className = "today";}
		}			
		contaDias++;
		if(contaDias>6)
		{
			contaDias = 0;
			contaSem++;
		}
	}
	//PARA DETERMINAR LA VISUALIZACION DE LOS EVENTOS DEL MES, DESPUES DEL DIA ACTUAL
	try{
		if(eval("cargadeeventosdia"+dkcomp)){ cargarMes(mG,y,diaAct,lang,dkcomp,'E',mesAct,anyoAct); eval("cargadeeventosdia"+dkcomp+"=false;") }
		else cargarMes(mG,y,'',lang,dkcomp,'M');
	}catch(e){
		 cargarMes(mG,y,'',lang,dkcomp,'M')
	}
	//END
}

//funcion que corre los meses de los calendarios(avazar carrusel)
function com_nextCal(condicion,dkcomp)
{
	var rtfconfiltro=eval("confiltro"+dkcomp),refcalendarios=eval("calendarios"+dkcomp);
	var orden="";	try{ orden="&"+eval("ordenamiento"+dkcomp);}catch(e){}
	var refmes=eval("mes"+dkcomp),refanio=eval("anio"+dkcomp), refGfecha=eval("Gfecha"+dkcomp), refGstartpos=eval("Gstartpos"+dkcomp);
	var refanioSup=eval("anioSup"+dkcomp),refmesSup=eval("mesSup"+dkcomp),refdiaSup=eval("diaSup"+dkcomp), refrango=eval("rango"+dkcomp);
	
	refmes++; if(refmes > 11){ refmes = 0; refanio++; }
	eval("mes"+dkcomp+"="+refmes); eval("anio"+dkcomp+"="+refanio);
	
	refGfecha.setFullYear(refanio,refmes,1);
	refGstartpos= valdia[refGfecha.getDay()];				
	eval("Gfecha"+dkcomp+".setFullYear("+refanio+","+refmes+",1)");
	eval("Gstartpos"+dkcomp+"="+refGstartpos);
	
	daysLastMonth=daysInMonth(refmes,refanio);				
	var cotaSup = new Date();
	var lastDate = new Date();
	lastDate.setFullYear(refanio,refmes,daysLastMonth);
	lastTime = lastDate.getTime();
	cotaSup.setFullYear(refanioSup,refmesSup,refdiaSup);
	var cotaSupTime = cotaSup.getTime();
	if(lastTime > cotaSupTime)
	{	
		//CALCULAMOS RANGO DE CARGA
		var anioGsup= refanioSup;
		var mesGsup = refmesSup+1;					
		var diaGsup= refdiaSup;
		
		var nanioGsup = anioGsup;
		var nmesGsup = mesGsup+refrango;					
		if(nmesGsup > 12){ nmesGsup = nmesGsup-12; nanioGsup++; }
		var ndiaGsup = daysInMonth(nmesGsup-1,nanioGsup);
		if(nmesGsup < 10){ nmesGsup= "0"+nmesGsup; }
		if(mesGsup < 10){ mesGsup= "0"+mesGsup; }						
		//alert("timefechainicio>"+anioGsup+"/"+mesGsup+"/"+diaGsup+"+timefechainicio<="+nanioGsup+"/"+nmesGsup+"/"+ndiaGsup);		
		var calendario=""; 
		for(var ind=0; ind<refcalendarios.length; ind++){ calendario+=refcalendarios[ind].k+",";}
		calendario="calendario-OID="+calendario;
		var urlevt =cgiurl+"/q2XML.cgi?type=evento&campos=D.k,blog_user-OID,blog_subdominio,nombre,timefechainicio,timefechafinal,yearfechainicio,monthfechainicio,dayfechainicio,hourhorainicio,minutehorainicio,yearfechafinal,monthfechafinal,dayfechafinal,hourhorafinal,minutehorafinal,privacidad,calendario-OID,calendario_prioridad,&where=timefechainicio>"+anioGsup+"/"+mesGsup+"/"+diaGsup+"+timefechainicio<="+nanioGsup+"/"+nmesGsup+"/"+ndiaGsup+rtfconfiltro+"+"+calendario+"&limit=null&D.dataformat=json&noderegistro=evtcontainer"+orden+"&r="+Math.random();
		var mycargaevento=new serverLoad();
		mycargaevento.context='public';
		mycargaevento.onLoad= function(ok)
		{							
			if (ok)
			{	
				var posCal= "";
				var refeventos=eval("eventos"+dkcomp);
				var vlastResultPost = evtcontainer['__EXTRAS__']['lastResult'];
				vlastResultPost=vlastResultPost.toString();
				var longrecordTotalPost = evtcontainer['__EXTRAS__']['recordTotal'];
				if(longrecordTotalPost>0){
					var veclastResultPost = vlastResultPost.split(',');
					for(var i=0;i<veclastResultPost.length;i++)
					{					
						posCal= "";
						var dkEvto= evtcontainer[veclastResultPost[i]]['D.k'];
						//mysdks+=dkEvto+",";
						var nombEvto= evtcontainer[veclastResultPost[i]]['nombre'];
						var privEvto= evtcontainer[veclastResultPost[i]]['privacidad'];
						var tfi = evtcontainer[veclastResultPost[i]]['timefechainicio'].split("/");
						var tff = evtcontainer[veclastResultPost[i]]['timefechafinal'].split("/");
						
						var yfi= tfi[0];
						var mfi= tfi[1];
						var dfi= tfi[2];
						var hhi= evtcontainer[veclastResultPost[i]]['hourhorainicio'];
						var mhi= evtcontainer[veclastResultPost[i]]['minutehorainicio'];						
						
						var yff= tff[0];
						var mff= tff[1];
						var dff= tff[2];
						var hhf= evtcontainer[veclastResultPost[i]]['hourhorafinal'];
						var mhf= evtcontainer[veclastResultPost[i]]['minutehorafinal'];								
						var archivos=evtcontainer[veclastResultPost[i]]['archivo'];
            var numprio=0;
            var prioriEvto='muy baja' ;
						var numprioAct=0;
						var lisCalEvent=evtcontainer[veclastResultPost[i]]['calendario-OID'];
						var colofondo='',colortext='', dkcalendario='';
						for(var ind=0; ind<refcalendarios.length; ind++)
						{ 
              var patt1agenda=new RegExp("([^0-9]|^,?)"+refcalendarios[ind].k+"([^0-9]|,?$)","g");
              if(patt1agenda.test(lisCalEvent)){
                switch(refcalendarios[ind].prioridad){
                  case 'muy alta':
										numprio=5;
										prioriEvto='muy alta' ;
										break;
									case 'alta':
										numprio=4;
										prioriEvto='alta' ;
										break;
									case 'media':
										numprio=3;
										prioriEvto='media' ;
										break;
									case 'baja':
										numprio=2;
										prioriEvto='baja' ;
										break;
									default:
										numprio=1;
										prioriEvto='muy baja' ;
                }
              }
							if(numprio > numprioAct){ 
								posCal=ind; 
                numprioAct=numprio;
							}
								colofondo=refcalendarios[ind].color;
								colortext=refcalendarios[ind].colortxt;
								dkcalendario=refcalendarios[ind].k;
						}
							var nuevoEvt = new comp_evento(dkEvto,posCal,nombEvto,yfi,mfi,dfi,hhi,mhi,yff,mff,dff,hhf,mhf,privEvto,prioriEvto,dkcalendario,'',colofondo,colortext);
							refeventos.push(nuevoEvt);
          }
        }
				refanioSup=nanioGsup;
				refmesSup=Math.abs(nmesGsup);
				refdiaSup=ndiaGsup;
				eval("anioSup"+dkcomp+"="+nanioGsup);
				eval("mesSup"+dkcomp+"="+refmesSup);
				eval("diaSup"+dkcomp+"="+ndiaGsup);
				com_pintarCalendarios(refGstartpos,refmes,refanio,com_language,dkcomp);
				ocultOver();																		
			}				
		}; // end Function controladora
		mycargaevento.loadVar(urlevt);
		mostrarOver();
	}
	else{ com_pintarCalendarios(refGstartpos,refmes,refanio,com_language,dkcomp); }				
}

//funcion que corre los meses de los calendarios(devolver carrusel)
function com_prevCal(condicion,dkcomp)
{	
	var rtfconfiltro=eval("confiltro"+dkcomp),refcalendarios=eval("calendarios"+dkcomp);	
	var refmes=eval("mes"+dkcomp),refanio=eval("anio"+dkcomp), refGfecha=eval("Gfecha"+dkcomp), refGstartpos=eval("Gstartpos"+dkcomp);
	var refanioInf=eval("anioInf"+dkcomp),refmesInf=eval("mesInf"+dkcomp),refdiaInf=eval("diaInf"+dkcomp), refrango=eval("rango"+dkcomp);
	
	var orden="";	try{ orden="&"+eval("ordenamiento"+dkcomp);}catch(e){}
	
	refmes--;if(refmes < 0){ refmes = 11; refanio--; }
	eval("mes"+dkcomp+"="+refmes); eval("anio"+dkcomp+"="+refanio);
	
	refGfecha.setFullYear(refanio,refmes,1);
	refGstartpos= valdia[refGfecha.getDay()];
	eval("Gfecha"+dkcomp+".setFullYear("+refanio+","+refmes+",1)");
	eval("Gstartpos"+dkcomp+"="+refGstartpos);
	
	daysFirstMonth=daysInMonth(refmes,refanio);				
	var cotaInf = new Date();
	var firstDate = new Date();
	firstDate.setFullYear(refanio,refmes,daysFirstMonth);
	firstTime = firstDate.getTime();
	cotaInf.setFullYear(refanioInf,refmesInf,refdiaInf);
	var cotaInfTime = cotaInf.getTime();
	if(firstTime < cotaInfTime)
	{	
		//CALCULAMOS RANGO DE CARGA
		var anioGinf= refanioInf;
		var mesGinf = refmesInf+1;					
		var diaGinf= "0"+refdiaInf;
		
		var nanioGinf = anioGinf;
		var nmesGinf = mesGinf-refrango;
		if(nmesGinf < 1 ){ nmesGinf = nmesGinf+12; nanioGinf--; }
		var ndiaGinf = diaGinf;
		if(nmesGinf < 10){ nmesGinf= "0"+nmesGinf; }
		if(mesGinf < 10){ mesGinf= "0"+mesGinf; }
		
		//alert("timefechainicio>="+nanioGinf+"/"+nmesGinf+"/"+ndiaGinf+"\ntimefechainicio<"+anioGinf+"/"+mesGinf+"/"+diaGinf);
		var calendario=""; 
		for(var ind=0; ind<refcalendarios.length; ind++){ calendario+=refcalendarios[ind].k+",";}
		calendario="calendario-OID="+calendario;
		var urlevt =cgiurl+"/q2XML.cgi?type=evento&campos=D.k,blog_user-OID,blog_subdominio,nombre,timefechainicio,timefechafinal,yearfechainicio,monthfechainicio,dayfechainicio,hourhorainicio,minutehorainicio,yearfechafinal,monthfechafinal,dayfechafinal,hourhorafinal,minutehorafinal,lugar,privacidad,calendario-OID,calendario_prioridad&where=timefechainicio>="+nanioGinf+"/"+nmesGinf+"/"+ndiaGinf+"+timefechainicio<"+anioGinf+"/"+mesGinf+"/"+diaGinf+rtfconfiltro+"+"+calendario+"&limit=null&D.dataformat=json&noderegistro=registros"+orden+"&r="+Math.random();		
		var mycargaevento=new serverLoad();
		mycargaevento.context='public';
		mycargaevento.onLoad= function(ok)
		{							
			if (ok)
			{			
				var posCal= "";
				var refeventos=eval("eventos"+dkcomp);
				var vlastResultPost = registros['__EXTRAS__']['lastResult'];
				vlastResultPost=vlastResultPost.toString();
				var longrecordTotalPost = registros['__EXTRAS__']['recordTotal'];
				if(longrecordTotalPost>0){
					var veclastResultPost = vlastResultPost.split(',');
					for(var i=0;i<veclastResultPost.length;i++)
					{					
 
						posCal= "";
						var dkEvto= registros[veclastResultPost[i]]['D.k'];
						//mysdks+=dkEvto+",";
						var nombEvto= registros[veclastResultPost[i]]['nombre'];
						var privEvto= registros[veclastResultPost[i]]['privacidad'];
						var prioriEvto= registros[veclastResultPost[i]]['calendario_prioridad'];
						var tfi = registros[veclastResultPost[i]]['timefechainicio'].split("/");
						var tff = registros[veclastResultPost[i]]['timefechafinal'].split("/");
						
						var yfi= tfi[0];
						var mfi= tfi[1];
						var dfi= tfi[2];
						var hhi= registros[veclastResultPost[i]]['hourhorainicio'];
						var mhi= registros[veclastResultPost[i]]['minutehorainicio'];						
						
						var yff= tff[0];
						var mff= tff[1];
						var dff= tff[2];
						var hhf= registros[veclastResultPost[i]]['hourhorafinal'];
						var mhf= registros[veclastResultPost[i]]['minutehorafinal'];								
						var archivos=registros[veclastResultPost[i]]['archivo'];
            var numprio=0;
						var prioriEvto='muy baja' ;
						var numprioAct=0;
            var lisCalEvent=registros[veclastResultPost[i]]['calendario-OID'];
						var colofondo='',colortext='', dkcalendario='';
						for(var ind=0; ind<refcalendarios.length; ind++)
						{ 
              var patt1agenda=new RegExp("([^0-9]|^,?)"+refcalendarios[ind].k+"([^0-9]|,?$)","g");
              if(patt1agenda.test(lisCalEvent)){
                switch(refcalendarios[ind].prioridad){
                  case 'muy alta':
										numprio=5;
										prioriEvto='muy alta' ;
										break;
									case 'alta':
										numprio=4;
										prioriEvto='alta' ;
										break;
									case 'media':
										numprio=3;
										prioriEvto='media' ;
										break;
									case 'baja':
										numprio=2;
										prioriEvto='baja' ;
										break;
									default:
										numprio=1;
										prioriEvto='muy baja' ;
                }
              }
							if(numprio > numprioAct){ 
								posCal=ind; 
                numprioAct=numprio;
							}
								colofondo=refcalendarios[ind].color;
								colortext=refcalendarios[ind].colortxt;
								dkcalendario=refcalendarios[ind].k;
						}		
							var nuevoEvt = new comp_evento(dkEvto,posCal,nombEvto,yfi,mfi,dfi,hhi,mhi,yff,mff,dff,hhf,mhf,privEvto,prioriEvto,dkcalendario,'',colofondo,colortext);
							refeventos.push(nuevoEvt);
					}													
				}
				//alert(nanioGinf+" \n "+nmesGinf);
				refmesInf=Math.abs(nmesGinf)-1;
				refdiaInf=Math.abs(ndiaGinf);
				//alert(eval("anioInf"+dkcomp)+" \n "+eval("mesInf"+dkcomp));
				eval("anioInf"+dkcomp+"="+nanioGinf);
				eval("mesInf"+dkcomp+"="+refmesInf);
				eval("diaInf"+dkcomp+"="+refdiaInf);
				//alert(eval("anioInf"+dkcomp)+" \n "+eval("mesInf"+dkcomp));
				com_pintarCalendarios(refGstartpos,refmes,refanio,com_language,dkcomp);
				ocultOver();																		
			}				
		}; // end Function controladora
		mycargaevento.loadVar(urlevt);
		mostrarOver();				
	}
	else{ com_pintarCalendarios(refGstartpos,refmes,refanio,com_language,dkcomp); }			
}

//Carga el listado de eventos del mes.
function cargarMes(mG,aG,dG,lang,dkcomp,opc,mesHoy,anyoActual){
	var refeventosVec=new Array(); //PARA GUARDAR LOS EVENTOS DEL MES DEL CALENDARIO
	var refeventos=eval("eventos"+dkcomp);
	var refeventosXDia=eval("eventosXDia"+dkcomp); //VECTOR PARA LA REFERENCIA POR DIA
	var mesHoy=mesHoy+1;
	for(var i=0; i < refeventos.length; i++)
	{
		if(opc=="M"){
			if((refeventos[i].mesIni == mG) && (refeventos[i].anioIni == aG))
			{ 
				refeventosVec.push(refeventos[i]); 
			}
		}else if(opc=="E"){
    (refeventos[i].diaIni >= dG) && (refeventos[i].mesIni == mG) && (refeventos[i].anioIni == aG)
    if(((refeventos[i].diaIni >= dG) && (refeventos[i].mesIni == mesHoy) && (refeventos[i].anioIni == anyoActual)&& (refeventos[i].mesIni == mG) && (refeventos[i].anioIni == aG))||((mesHoy<refeventos[i].mesIni)&&(anyoActual==refeventos[i].anioIni)&& (refeventos[i].mesIni == mG) && (refeventos[i].anioIni == aG))||((anyoActual<refeventos[i].anioIni)&& (refeventos[i].mesIni == mG) && (refeventos[i].anioIni == aG)))//(anyoActual < aG)||(mesHoy < mG && anyoActual == aG && refeventos[i].diaIni >= dG)||(
			{
				refeventosVec.push(refeventos[i]);
			}
		}else{
			if((refeventos[i].diaIni == dG) && (refeventos[i].mesIni == mG) && (refeventos[i].anioIni == aG))		
			{
				refeventosVec.push(refeventos[i]);
			}
		}
	}
	
	if(opc=="M"){
		vectregActual="eventosXMes";
		eval("eventosXMes"+dkcomp+"=new Array(); eventosXMes"+dkcomp+"=refeventosVec;");
	}else if(opc=="E"){
		vectregActual="eventosXMes";
		eval("eventosXMes"+dkcomp+"=new Array(); eventosXMes"+dkcomp+"=refeventosVec;");
	}else{
		vectregActual="eventosXDia";
		eval("eventosXDia"+dkcomp+"=new Array(); eventosXDia"+dkcomp+"=refeventosVec;");
	}
	printEventsItens(0,dkcomp,vectregActual);
}
			

//PAGINA INICIAL
var vectregActual="eventos";
function primeraPagina(dkcomp){
	printEventsItens(0,dkcomp,vectregActual);
}
//FUNCION DE PINTADO Y PAGINACION
function printEventsItens(pagepos,dkey,vectActEtk)
{
	//VECTOR DE ITEMS DE COMPONENTES
	var myarray= eval(vectActEtk+dkey);
	//CONTENEDOR DE ITEMS DEL LISTADO
	var idcontainer="";	
	
	if(myarray.length>0)
	{
		
		var myitem= eval("nitem"+dkey);
		//var mybullet=eval("bullet"+dkey);		
		var paginacion=eval("numitems"+dkey);
		var maskpage=pagepos+1;		
		if(paginacion == "null"){ paginacion= myarray.length; }else{ paginacion=parseInt(paginacion); }
		var initval=pagepos*paginacion;
		var top=initval+paginacion;
		if(top >=myarray.length){ top= myarray.length; }
		var npages=Math.ceil(myarray.length/paginacion);	 	
		var liclass="";
		
		//GENERAMOS LOS ITEMS DEL LISTADO		
		idcontainer="";
		for(var i=initval;i<top;i++)
		{
			liclass="";
			if(i== (top-1)){ liclass=" class='fin'"; }														
			idcontainer+=myarray[i].html(); 
		}
		idcontainer+="";
		document.getElementById("nodata"+dkey).className="generica ocultar";
		document.getElementById("simpleList"+dkey).className="list";
		document.getElementById("simpleList"+dkey).innerHTML=idcontainer;
    document.getElementById("datoscalendar"+dkey).className="calendarTit";
		//SI EL NUMERO DE REGISTROS EN EL VECTOR ES MENOR O IGUAL AL DE LISTADO EN PAGINACION OCULTAMOS EL PAGINADO
		if(myarray.length<=paginacion){ document.getElementById("paginacionsecundaria"+dkey).className="paginacion2 ocultar";  }else{ document.getElementById("paginacionsecundaria"+dkey).className="paginacion2";  }
		
		//PAGINACION
		if(npages>1)
		{
			//GENERAMOS EL MOSTRANDO DESDE - HASTA
			if(myarray.length>0)
			{
				var cpatern="aeiou";
				var terminacion=myitem.substring(myitem.length -1);
				if(cpatern.indexOf(terminacion)>=0 || (idiomajs == "en")){myitem+="s.";}
				else{myitem+="es.";}
			}						
			document.getElementById("showingFromTo"+dkey).innerHTML="<strong>"+((pagepos*parseInt(paginacion))+1)+"</strong> "+ mostrar_mensaje(45)+" <strong>"+top+"</strong> "+mostrar_mensaje('47') +" <strong>"+myarray.length+"</strong> "+myitem+"</div>";			
						
			//ACTULIZAMOS LA FUNCION DEL BOTON DE PAGINA ANTERIOR
			if (pagepos>0)
			{
				var prevpage=pagepos-1;
				document.getElementById("primerapag"+dkey).className="Pprev";
				document.getElementById("paganterior"+dkey).className="prev";
				
				if(verificIE()){
					document.getElementById("paganterior"+dkey).setAttribute("onclick","printEventsItens("+prevpage+","+dkey+",'"+vectActEtk+"')");
				}else{
					document.getElementById("paganterior"+dkey)['onclick']=new Function("printEventsItens("+prevpage+","+dkey+",'"+vectActEtk+"')");
				}			
			}
			else
			{
				document.getElementById("primerapag"+dkey).className="Pprev ocultar";
				document.getElementById("paganterior"+dkey).className="prev ocultar"; 			
			}			
			
			//GENERACION DE NUMEROS DE PAGINA
			var clase=''; var inicio = 0; var fin = npages;			
			var maxPaginas = 5;
			//VALIDACION DE LIMITE DE NUMERACION
			if(npages>maxPaginas) 
			{
				// Cuando las paginas son mas del limite
				fin = maxPaginas;
				var limInternoInf = Math.floor(maxPaginas / 2);
				var limInternoSup = npages - Math.ceil(maxPaginas / 2);
				if(pagepos>limInternoInf && pagepos<limInternoSup)
				{
					inicio = pagepos - Math.floor(maxPaginas / 2);
					fin = pagepos + Math.ceil(maxPaginas / 2);
				}
				else if(pagepos>=limInternoSup)
				{
					inicio = npages - maxPaginas;
					fin = npages;
				}
			}
			//CONTENEDOR DE NUMEROS DE PAGINA
			var numerospagina="";			
			//GENERACION DE PAGINAS
			for (var i=inicio;i<fin;i++)
			{
				if (i==pagepos){clase='class="selected"';}
				else{clase='';}
				numerospagina+='<div '+clase+' onClick="printEventsItens('+i+','+dkey+',\''+vectActEtk+'\')"><span class="cursor" onclick="javascript:;">'+(i+1)+'</span></div>';
			}
			document.getElementById("numerosdepagina"+dkey).innerHTML=numerospagina;
			
			//ACTULIZAMOS LA FUNCION DEL BOTON DE PAGINA SIGUIENTE Y ULTIMA PAGINA			
			if (npages>(pagepos+1))  
			{
				document.getElementById("pagsiguiente"+dkey).className="next";
				document.getElementById("ultimapag"+dkey).className="Nnext";
				if(verificIE()){
					var auxop=pagepos+1;			
					document.getElementById("pagsiguiente"+dkey).setAttribute("onclick","printEventsItens("+auxop+","+dkey+",'"+vectActEtk+"')");
					auxop=npages-1;
					document.getElementById("ultimapag"+dkey).setAttribute("onclick","printEventsItens("+auxop+","+dkey+",'"+vectActEtk+"')");
				}else{
					var auxop=pagepos+1;				
					document.getElementById("pagsiguiente"+dkey)['onclick']=new Function("printEventsItens("+auxop+","+dkey+",'"+vectActEtk+"')");
					auxop=npages-1;
					document.getElementById("ultimapag"+dkey)['onclick']=new Function("printEventsItens("+auxop+","+dkey+",'"+vectActEtk+"')")
				} 
			}			 
			else
			{
				document.getElementById("pagsiguiente"+dkey).className="next ocultar";
				document.getElementById("ultimapag"+dkey).className="Nnext ocultar";
			}			
		}
	}
	else
	{
		document.getElementById("nodata"+dkey).className="generica ocultar";
		document.getElementById("simpleList"+dkey).className="list ocultar";
		document.getElementById("paginacionsecundaria"+dkey).className="paginacion2 ocultar";
    document.getElementById("datoscalendar"+dkey).className="calendarTit ocultar";
	}
}

