function buildCal(m, y, v){
	var dim=[31,0,31,30,31,30,31,31,30,31,30,31];
	var oD = new Date(y, m-1, 0);
	oD.od=oD.getDay()+1;
	var todaydate=new Date();
	var scanfortoday=(y==todaydate.getFullYear() && m==todaydate.getMonth()+1)? todaydate.getDate() : 0;
	var ancho=24;
	var primdia=false;
	var difmonth=((curyear-curyear1)*12)+(curmonth-curmonth1);
	if(v && v.length==1){
		if(v[0]=="") v=null;
	}
	if(v){
		for(j=0;j<v.length;j++){
			v[j]=v[j].split("[:]");
		}
	}
	
	dim[1]=(((oD.getFullYear()%100!=0)&&(oD.getFullYear()%4==0))||(oD.getFullYear()%400==0))?29:28;
	var t='<div><table cellpadding="0" border="0" cellspacing="0"><tr><td><table cellpadding="0" border="0" cellspacing="0"><tr><td width="10">';
	if(difmonth>-12 || calend_bid>0) t+='<div align="right"><a class="enlace1" href="javascript:updatecalendar(-1)" title="'+t_0013+'"><img src="'+direccionorigen+'images/fizq.png" width="6" height="6" border="0" alt="'+t_0013+'" /></a>&nbsp;</div>';
	t+='</td><td>';
	t+='<font class="texto1">'+allmonth[m-1]+' '+y+'</font>';
	if(difmonth<12) t+='</td><td width="10">&nbsp;<a class="enlace1" href="javascript:updatecalendar(1)" title="'+t_0014+'"><img src="'+direccionorigen+'images/fder.png" width="6" height="6" border="0" alt="'+t_0014+'" /></a>';
	t+='</td></tr></table></td></tr>';
	t+='<tr><td><table cellpadding="0" border="0" cellspacing="0"><tr><td width="4">&nbsp;</td><td><table cellpadding="0" border="0" cellspacing="0">';
	//t+='<tr><td width="'+ancho+'"><div align="center"><font class="texto1">Lu</font></div></td><td width="'+ancho+'"><div align="center"><font class="texto1">Ma</font></div></td><td width="'+ancho+'"><div align="center"><font class="texto1">Mi</font></div></td><td width="'+ancho+'"><div align="center"><font class="texto1">Ju</font></div></td><td width="'+ancho+'"><div align="center"><font class="texto1">Vi</font></div></td><td width="'+ancho+'"><div align="center"><font class="texto1">Sa</font></div></td><td width="'+ancho+'"><div align="center"><font class="texto1">Do</font></div></td></tr>';
	t+='<tr><td width="'+ancho+'" height="5"></td><td width="'+ancho+'" height="5"></td><td width="'+ancho+'" height="5"></td><td width="'+ancho+'" height="5"></td><td width="'+ancho+'" height="5"></td><td width="'+ancho+'" height="5"></td><td width="'+ancho+'" height="5"></td></tr>';
	t+='<tr>';
	for(i=1;i<=42;i++){
		//Borra semanas vacias
		if((i-1)%7==0){
			var sem_valida=false;
			for(j=i;j<=i+7;j++){
				if((j-oD.od>=0)&&(j-oD.od<dim[m-1])){
					sem_valida=true;
					break;
				}
			}
			if(!sem_valida){
				i=i+7;
				continue;
			}
		}
		//Comprueba cada dia
		if((i-oD.od>=0)&&(i-oD.od<dim[m-1])){
			x=i-oD.od+1;
			x1=(x<10?"0"+x:x);
			var btiene=false;
			var taux='';
			var taux1='';
			var calend_bid1=(calend_bid>0 && (difmonth>0 || (difmonth==0 && curday1<=x)));
			if(x==scanfortoday){
				taux='<td height="20" width="'+ancho+'" onMouseOver="showTip(\''+t_0015+'\');" onMouseOut="hideTip();" background="'+direccionorigen+'images/cuadro_r.gif" style="background-repeat:no-repeat;background-position:center"><div align="center"><font class="texto1">';
				if(calend_bid1) taux+='<a class="enlace1" href="javascript:updatedia('+x+')">';
				taux+=x1+'</font></div></td>';
				if(calend_bid1) taux+='</a>';
				btiene=true;
			}
			if(v){
				for(j=0;j<v.length;j++){
					if(x1==v[j][0]){
						if(taux1!='') taux1+='<br>';
						taux1+=v[j][1];
						btiene=true;
						//break;
					}
				}
				if(taux1!=''){
					taux='<td height="20" width="'+ancho+'" onMouseOver="showTip(\''+taux1+'\');" onMouseOut="hideTip();" background="'+direccionorigen+'images/cuadro_'+(taux!=''?'r':'v')+'.gif" style="background-repeat:no-repeat;background-position:center"><div align="center"><font class="texto1"><a class="enlace1" href="javascript:updatedia('+x+')">'+x1+'</a></font></div></td>';
				}
			}
			if(!btiene){
				taux='<td height="20" width="'+ancho+'"><div align="center"><font class="texto1">';
				if(calend_bid1) taux+='<a class="enlace1" href="javascript:updatedia('+x+')">';
				taux+=x1+'</a></font></div></td>';
				if(calend_bid1) taux+='</a>';
			}
			else if(taux1!='' && !primdia){
				if(calend_bid>0 && !calend_bidb) updatedia(curday);
				else updatedia(x);
				primdia=true;
			}
			t+=taux;
		}
		else{
			t+='<td height="20" width="'+ancho+'"><div align="center"><font class="texto1">&nbsp;</font></div></td>';
		}
		if(((i)%7==0)&&(i<36)) t+='</tr><tr>';
	}
	return t+='</tr></table></td></tr></table></td></tr></table></div>';
}

function buildCalDia(v){
	if(v && v.length==1){
		if(v[0]=="") v=null;
	}
	if(!v) return "";
	for(j=0;j<v.length;j++){
		v[j]=v[j].split("[:]");
	}
	if(v.length>1){
		l_event_dia=new Array(v.length);
		l_event_diaact=0;
		for(j=0;j<v.length;j++){
			l_event_dia[j]=new Array(4);
			l_event_dia[j][0]=v[j][0];
			l_event_dia[j][1]=v[j][2];
			l_event_dia[j][2]=v[j][3];
			l_event_dia[j][3]=v[j][4];
			l_event_dia[j][4]=v[j][5];
		}
	}
	else l_event_dia=null;
	var t='<div><table width="100%" cellpadding="0" border="0" cellspacing="0"><tr><td><font class="texto2">'+v[0][1]+'</font></td></tr>';
	t+='<tr><td><font id="cal_dia_1" class="texto1">'+v[0][2]+'</font></td></tr>';
	t+='<tr><td height="5"><img src="'+direccionorigen+'images/cuadro.gif" width="5" height="5" /></td></tr>';
	if(v[0][3]!=''){
		t+='<tr><td><font id="cal_dia_2" class="texto1">'+v[0][3]+'</font></td></tr>';
		t+='<tr><td height="5"><img src="'+direccionorigen+'images/cuadro.gif" width="5" height="5" /></td></tr>';
	}
	t+='<tr id="cal_dia_3a"'+(v[0][4]!=''?'':' style="display:none"')+'><td><div style="position:absolute"><table border="0" cellpadding="0" cellspacing="0"><tr><td width="165" height="80" valign="bottom"><div id="cal_dia_4" align="right">'+v[0][5]+'</div></td></tr></table></div><img id="cal_dia_3"'+(v[0][4]!=''?' src="'+v[0][4]+'"':'')+' width="155" height="70" border="5" style="border-color:#FFFFFF" /></td></tr>';
	if(v[0][4]=='' && v[0][5]!='') t+='<tr><td>'+v[0][5]+'</td></tr>';

	t+='<tr height="5"><td><img src="'+direccionorigen+'images/cuadro.gif" width="5" height="5" /></td></tr>';
	t+='<tr><td><table width="100%" border="0" cellpadding="0" cellspacing="0"><tr>';
	t+='<td width="10"><div align="left"><table border="0" cellpadding="0" cellspacing="0"><tr><td><a class="enlace1" href="javascript:updatesigdia(-1)" title="'+t_0016+'"><img src="'+direccionorigen+'images/fizq.png" width="6" height="6" border="0" alt="'+t_0016+'" /></a>&nbsp;</td><td width="5"></td><td><a class="enlace1a" href="javascript:updatesigdia(-1)" title="'+t_0016+'">'+t_0018+'</a></td></tr></table></div></td>';
	t+='<td><div align="center"><font id="cal_dia_total" class="texto1">1/'+v.length+'</font></div></td>';
	t+='<td width="10"><div align="right"><table border="0" cellpadding="0" cellspacing="0"><tr><td><a class="enlace1a" href="javascript:updatesigdia(1)" title="'+t_0017+'">'+t_0019+'</a></td><td width="5"></td><td>&nbsp;<a class="enlace1" href="javascript:updatesigdia(1)" title="'+t_0017+'"><img src="'+direccionorigen+'images/fder.png" width="6" height="6" border="0" alt="'+t_0017+'" /></a></td></tr></table></div></td>';
	t+='</tr></table></td></tr>';
	t+='<tr height="10"><td><img src="'+direccionorigen+'images/cuadro.gif" width="10" height="10" /></td></tr>';
	return t+='</table></div>';
}
