
// retorna el mes anterior, actual o seguent en funcio del parametre "mes"
function retornaMes(mes,pos) {
	// mes = mes actual
	// pos sera -1,0,1
	// -1 = mes anterior
	//  0 = mes actual
	//  1 = mes seguent
	
	if ( mes < 0 || mes > 11 ){
		return 12;
	}
	if ( pos < -1 || pos > 1 ) {
			return 12;
	}
	if ( mes>0 || mes<11 ){
		return mes+pos;
	}
	else{
		if ( mes==11 && pos==1 ){
			mes = 0;
		}
		if ( mes==0 && pos==-1 ){
			mes = 11;
		}
		return mes;
	}
	
	//return mes+pos;
	
}

// retorna el nom del dia de la setmana
function nomDia (pos) {
	var diesSetmana = new Array("Diumenge","Dilluns","Dimarts","Dimecres","Dijous","Divendres","Dissabte");
	if ( pos < 0 || pos > 6 ) {
		return -1;
	}
	else return diesSetmana[pos];
}

// retorna el nom del mes del any
function nomMes (pos) {
	var mesosAny = new Array("gener","febrer","març","abril","maig","juny","juliol","agost","setembre","octubre","novembre","desembre");
	if ( pos < 0 || pos > 11 ) {
		return -1;
	}
	else {
		return mesosAny[pos];
	}
}

// retorna quants dies te el mes que passem per parametre, tenint en compte si es any bisiesto
function diesMes(mes,any) {
	if(mes<0 || mes>=12) return 0;
	
	if(mes==0 
	|| mes==2
	|| mes==4
	|| mes==6
	|| mes==7
	|| mes==9
	|| mes==11) return 31;
	
	if(mes==3
	|| mes==5
	|| mes==8
	|| mes==10) return 30;
	
	if(mes==1) {
		if( (any % 400 == 0) || (any % 4 == 0) && (any % 100 != 0) ) return 29; 		// mes == 1 i any bisiesto
		return 28;
		// mes ==1 i any NO bisiesto
	}
}

// retorna el nom del primer dia del mes
function nomDiaInicial(mes,any) {
	
	var nomDiaSet;
	var fecha = new Date();
	
	if ( isNaN(mes) ) {
		mes=fecha.getMonth();
	}
	if ( isNaN(any) ){
		any=fecha.getFullYear();
	}
	fecha.setMonth(mes);
	fecha.setYear(any);
	fecha.setDate(1);
	nomDiaSet = nomDia(fecha.getDay());
	
	return nomDiaSet;
}

function numDiaInicial(mes,any){
	
	var numDiaSet;
	var fecha = new Date();
	
	if ( isNaN(mes) ) {
		mes=fecha.getMonth();
	}
	if ( isNaN(any) ){
		any=fecha.getFullYear();
	}
	fecha.setMonth(mes);
	fecha.setYear(any);
	fecha.setDate(1);
	numDiaSet = fecha.getDay(); // numDiaSet tindra un valor enter de 0 a 6
	
	return numDiaSet;
	
}

function numForats (mes,any) {
	
	var forats=0;
	var fecha = new Date();
	
	if ( isNaN(mes) ) {
		mes=fecha.getMonth();
	}
	if ( isNaN(any) ){
		any=fecha.getFullYear();
	}
	fecha.setMonth(mes);
	fecha.setYear(any);
	fecha.setDate(1);
	
	numDiaSet = fecha.getDay();
	forats = numDiaSet-1;	// sera -1 pq dibuixarem el calendari començant per dilluns
	// seria -2 si comencessim a dibuixar el calendari per diumenge
	return forats;
	
}


function diaNegreta(dia,mes,any){
	var fechaReal = new Date();
	var fechaParam = new Date();
	
	fechaParam.setMonth(mes);
	fechaParam.setYear(any);
	fechaParam.setDate(dia);
	
	if(fechaReal.getYear()==fechaParam.getYear()){						// si el any real es igual al any del parametre
		if(fechaReal.getMonth()==fechaParam.getMonth()){				// 	comparem mesos, si son iguals
			if(fechaParam.getDate()<fechaReal.getDate()){					// 		i el dia del parametre es mes petit ke el dia real => no negreta
				return false;
			}
			else {																						// 		si dia parametre >= dia real =>>> NEGRETA
				return true;
			}
		}
		else if(fechaReal.getMonth()>fechaParam.getMonth()) {		// 	sino si el mes real > mes parametre llavors =>>> NO negreta
			return false;
		}
		else {																							//		sino NEGRETA
			return true;
		}
	}
	else if(fechaReal.getYear()>fechaParam.getYear()) {					//sino si any real > any parametre =>>> llavors NO negreta
		return false;
	}
	else {																								// sino NEGRETA
		return true;
	}
}


//funcio ke dibuixa el logo del calendari al formulari
function logoCal() {
	document.write("<img src='img/calendari_p.jpg' style='CURSOR: hand' onClick=window.open('calendari.htm','popWindow','status=yes,scrollbars=no,width=180,height=380')>");
	return true;
}


function cerrar(dia,mes,any) {
var tranMes = new Array("gener","febrer","març","abril","maig","juny","juliol","agost","setembre","octubre","novembre","desembre");
window.opener.document.forms.Reserves.dataRes.value=dia+'/'+tranMes[mes]+'/'+any;
window.close();
}


// dibuixa el calendari del mes i any que li passem per parametres
function calendari(mes,any){

	var fecha= new Date();
	
	fecha.setDate(1); //*************
	fecha.setMonth(mes);
	fecha.setYear(any);
	var diaFinal;
	var forats=0;
	var i=0;
	var j=0;
	var contador = 0; // conta columnes escrites cada setmana, si arriba a 6 sa de fikar a 0 altre cop
	var mesSeg,mesAnt;
	
	document.write("<table>");
		document.write("<tr>");
			document.write("<td class=mesCal>"+nomMes(mes)+"&nbsp;&nbsp;"+fecha.getFullYear()+"</td>");		// escriu mes
		document.write("</tr>");
	document.write("</table>");
	document.write("<table>");
		document.write("<tr>");
			document.write("<td>L</td><td>M</td><td>X</td><td>J</td><td>V</td><td>S</td><td>D</td>");
		document.write("</tr>");
		forats = numForats(mes,any);
		document.write("<tr>");
		for (i=0;  i<forats; i++) {								// dibuixem forats
				document.write("<td>  </td>");
				contador = contador + 1;
		}	
		diaFinal = diesMes(mes,any);
		diaPrimer = numDiaInicial(mes,any);
		for (j=1;  j<=diaFinal; j++) {					// comencem a escriure dies, a partir del primer "no forat"	
			if(contador < 6){
				
				if(diaNegreta(j,mes,any)){
					//document.write("<td><b>"+j+"</b></td>");
					document.write('<td class=calendari2>');
					document.write('<a href="reserves.htm"');
					document.write('onClick="cerrar('+j+','+mes+','+any+')">'+j+'</a></td>');
				}
				else {
					//document.write("<td>"+j+"</td>");
					document.write("<td class=calendari2>"+j+"</td>");
				}
				contador = contador + 1;
				if (contador == 6) {							// quan arriba a dissabte fiquem el contador a 0 per escriure diumenge...
					contador = 0;									// ... ja que els dies van de  diumenge=0 fins dissabte=6
					j++;
					if(j<=diaFinal){
					
						if(diaNegreta(j,mes,any)){
							//document.write("<td><b>"+j+"</b></td>");
							document.write('<td class=calendari2>');
							document.write('<a href="reserves.htm"');
							document.write('onClick="cerrar('+j+','+mes+','+any+')">'+j+'</a></td>');
						}
						else {
							//document.write("<td>"+j+"</td>");
							document.write("<td class=calendari2>"+j+"</td>");
						}
					
						document.write("</tr>");
						document.write("<tr>");
					}
				}
			}
		}
		document.write("</tr>");
		document.write("<tr>");
		document.write("<td></td>");
		document.write("</tr>");
		document.write("</table>");
		
		//no funciona be pero pot ser molt util
		mesAnt=retornaMes(mes,-1);
		mesSeg=retornaMes(mes,1);
		//document.write("<a onClick='javascript:calendari("+mesAnt+","+any+");'>anterior...  </a>");
		//document.write("<a onClick='javascript:calendari("+mesSeg+","+any+");'>  ...seguent</a>");
		//document.write("mesAnt="+mesAnt+"   "+any+"      ");
		//document.write("mesSeg="+mesSeg+"   "+any);
		//document.write("<a onClick='javascript:calendari(3,2005);'>  ...prova...</a>");
		//document.write('<a href="'+"javascript:calendari("+(fecha.getMonth()-1)+", 2005);"+'"> anteriorBB </a>');
		//document.write('<a href="'+"javascript:calendari("+(fecha.getMonth()+1)+", 2005);"+'"> anteriorCC </a>');
}
