/*
	Calendar JS module
	Constructs calendars for any place in application
	
	Last update: By Ignasi Lirio, 25.May.2007  at 11:00
	*/

// post identification parametros 
// 	1. m - mes
// 	2. y - year
// 	3. hoy - Today's day to be highlighted
// 	4. stCelda - style Celda
// 	1. stToday - style of current day, today
// 	1. stDestacado - 
// 	9. tW - Table width
// 	11.tableId - table id 
// 	12.tipus  - Type of calendar (small above, big one, or calendlet)

// there exists the same function in calendar 1 with more parameters ... to document which one is correct 
//	- empty (out of month) should overide the weekend or the month
  
function buildCal(m, y, hoy, stCelda, stToday, tW, tableID, tipus){
var mn=['Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'];
var dim=[31,0,31,30,31,30,31,31,30,31,30,31];
var oD = new Date(y, m-1, 1); //DD replaced line to fix date bug when current day is 31st
oD.od=oD.getDay()+1; //DD replaced line to fix date bug when current day is 31st

var tdt = hoy.split(",");
var todaydate=new Date(); //DD added
todaydate.setFullYear(tdt[0],(tdt[1]-1),tdt[2]);
var scanfortoday=(y==todaydate.getFullYear() && m==todaydate.getMonth()+1)? todaydate.getDate() : 0 //DD added
dim[1]=(((oD.getFullYear()%100!=0)&&(oD.getFullYear()%4==0))||(oD.getFullYear()%400==0))?29:28;

//var t='<table  width="'+tW+'px" cellpadding="0" cellspacing="0" id="'+tableID+'"><tr align="center" height="16">';

var t='<table width="'+tW+'px" id="'+tableID+'" summary=" "><caption></caption><thead>';

if(tipus==2) {
	t+='<td  align="center" class="txtUltraPetit" bgcolor="#eeeeee" width="20px"><img src="../../img/0/gral/arrow_previous_month.gif" align="absmiddle" onclick=moveCalendars("back",2);></td><td colspan="5" align="center" class="txtUltraPetit" bgcolor="#eeeeee">'+mn[m-1]+' - '+y+'</td><td align="center" class="txtUltraPetit" bgcolor="#eeeeee" width="20px"><img src="../../img/0/gral/arrow_next_month.gif" align="absmiddle" onclick=moveCalendars("forward",2);></td></tr>';
} else {
	
	//t+='<td  align="center" class="txtUltraPetit" bgcolor="#dddddd" width="20px"></td><td colspan="5" align="center" class="txtUltraPetit" bgcolor="#dddddd"><span style="white-space:nowrap"> '+mn[m-1]+' - '+y+'</span></td><td align="center" class="txtUltraPetit" bgcolor="#dddddd" width="20px"></td></tr>';
	t+='<tr> <th colspan="7">'+mn[m-1]+' '+y+'</th></tr>';

	if(tipus=="1") {

		var DiesSetmana=['Lunes','Martes','Miércoles','Jueves','Viernes','Sábado','Domingo'];
		t+='<tr class="head2">';
		for(s=0;s<7;s++)t+='<th scope="vertical">'+DiesSetmana[s]+'</th>';
		t+='</tr>'; 
	}
			
	t+='</thead>'
}

/*if(tipus=="1") {
	var DiesSetmana=['Lunes','Martes','Miércoles','Jueves','Viernes','Sábado','Domingo'];
	t+='<tr align="center">';
	for(s=0;s<7;s++)t+='<td width="84">'+DiesSetmana[s]+'</td>';
	t+='</tr>'; 
	t+='<tr align="right">';
}
*/

if(oD.od==1) {
	diaSet=7;
}
else {
	diaSet=oD.od-1;
}

for(i=1;i<diaSet;i++) {
	if(tipus=="1") {
		t+='<td class="'+stCelda+'"></td>';
	}
	else {
		t+='<td class="'+stCelda+'"></td>';
	}
}

for(i=diaSet;i<=(42);i++){
	var x=((i-diaSet<dim[m-1]))? i-diaSet+1: '&nbsp;';

	
	if (x==scanfortoday) {//DD added
		//displayDay='<a href="#" class="'+cD+'">'+x+'</a>';
		estilo = stToday;
	}
	else {
		estilo = stCelda;
	}//DD added

	//var idCelda = tableID+"_"+y+"_"+m+"_"+x;
	if(tipus==1) {
		var idCelda = "a"+y+"-"+m+"-"+x;
	}
	else {
		var idCelda = y+"-"+m+"-"+x;
	}


	if((i%7)==6 || (i%7)==0) {
			
			if (x!="&nbsp;") 
				t+='<td id="'+idCelda+'"  class="sd '+estilo+'"';
			else
				t+='<td id="'+idCelda+'"  class="'+estilo+'"';
	}
	else {
		if((i-diaSet+1)>dim[m-1] && tipus!=0) {  t+='<td  class="'+estilo+'" id="'+idCelda;}
		else { t+='<td class="'+estilo+'" id="'+idCelda; }
	
	}
	
	//<a href="javascript:void(0)" style="text-decoration:none">
	switch(tipus) {
		//  How to render a day with events in small calendars
		case 0:
			if (x!="&nbsp;") {
				t+='"><a  href="javascript:void(0);" onClick=abrirCita("'+idCelda+'",2);>';
					//if (x==scanfortoday) 
						t+='<span>';
				t+=x;
					//if (x==scanfortoday) 
						t+='</span>';
				t+='</a>';
			}
			else
				t+='>&nbsp';
			t+='</td>';
			break;
		case 1: // Same for the Big one
			//t+='"  align="right" valign="bottom"><div id="d'+idCelda+'" style="vertical-align:top; height:40px;border:none"></div><div class="cursor" onClick=abrirCita("'+idCelda+'",2);>'+x+'</div></td>';
			if (x!="&nbsp;") {
				t+='"><div class="icons" id="d'+idCelda+'"></div><a href="javascript:void(0);" class="cursor" onClick=abrirCita("'+idCelda+'",2);><span>'+x+'</span></a></td>';
			}
			else 	t+='>&nbsp</td>';
			break;
		case 2: // This is the date picker inside Add an appointment
			t+='"  ><span class="'+estilo+'" onClick=datePicker("'+idCelda+'");>'+x+'</span></td>';
			break;
		case 3:
			// This is for calendlets in RESUMEN
		 	var aCelda = idCelda.split("-");
			t += '" ><span class="cursor" onClick=location.href="/9/0/0/0/1/'+aCelda[0]+'/'+aCelda[1]+'/'+aCelda[2]+'">'+x+'</span></td>';
			break;
	}
	
	if(((i)%7==0)&&(i<36))t+='</tr><tr>';
	
}
return t+='</tr></tbody></table>';
}

