var cPrimerAny = 2006;
var cDarrerAny = 2009;

var festius = new Array();
festius[2009] = [ /*Gener   */ [1,6] 
                ,/*Febrer  */ []
                ,/*Març    */ []
                ,/*Abril   */ [10,13]
                ,/*Maig    */ [1]
                ,/*Juny    */ [24]
                ,/*Juliol  */ []
                ,/*Agost   */ [15]
                ,/*Setembre*/ [11]
                ,/*Octubre */ [12]
                ,/*Novembre*/ []
                ,/*Desembre*/ [8,25,26]];

function esFestiu(dia,mes,an) {
  if (typeof(festius[an])=="object") {
    var i=0;
    for(i=0;i<festius[an][mes].length;i++) {
        if (festius[an][mes][i] == dia)
            return true; 
    } 
  }  
  return false;
}

function anyTraspas(anyBuscar) {
if (anyBuscar % 4 == 0) // basic rule
return true // is leap year
return false // is not leap year
}

function obtenirDies(mes, anyBuscar) {
var mesos = new Array(12)
mesos[0] = 31
mesos[1] = (anyTraspas(anyBuscar)) ? 29 : 28 // February
mesos[2] = 31
mesos[3] = 30
mesos[4] = 31
mesos[5] = 30
mesos[6] = 31
mesos[7] = 31
mesos[8] = 30
mesos[9] = 31
mesos[10] = 30
mesos[11] = 31
return mesos[mes]
}

function textMesActual (mesActual, mesPintar, nomsMesos) {
	var text = ""
	text += '<option value="' + mesPintar + '"'
	if (mesActual == mesPintar) {
		text += ' selected="true"'
	}
	text += '>' + nomsMesos[mesPintar] + '</option>'	
	
	return text;
}

function posarZeros (numero) {
	var text = numero
	
	if (numero < 10)
		text = '0' + numero
	
	return text;
}

function pintaCalendariGeneric (diaMostrar, mesMostrar, anyMostrar ) {
  pintaCalendari(diesSetmana, mesos, diaMostrar, mesMostrar, anyMostrar)
}

/*
Funció que s'encarrega de pintar el calendari
Pinta amb la data d'avui
nomsDies és un array 0 .. 6 amb els noms que es vol pintar dels dies de la setmana
nomsMesos és un array  0 .. 11 amb els noms dels mesos
*/
function pintaCalendari (nomsDies, nomsMesos, diaMostrar, mesMostrar, anyMostrar) {
  var text = ""
  var anyActual
  var ara;
  var diaMes
  var numDies
  var cellaActual
  var primerDia

  ara = new Date(anyMostrar, mesMostrar, diaMostrar)
  anyActual = ara.getYear()
  if (anyActual < 1900)
    anyActual += 1900
  text += '<table cellpadding="0" cellspacing="1" class="calendari" border="1">'
  // Pintar el mes i l'any
  text += '<tr>'
  text += '<td colspan="7" class="calAny">' + anyActual + '</td>'
  text += '</tr>'
  
  text += '<tr>'
  //text += '<td align="center" valign="top" colspan="7">'
  //text += nomsMesos[ara.getMonth()] + ' ' + anyActual 
  text += '<td colspan="7" class="calMes">'
  if (mesMostrar >0) {
  	text += '<a href="../' + anyActual + '/' + anyActual + posarZeros(mesMostrar) + posarZeros(1) +'.html">'
  	text += '<img src="../img/icona-fletxae2c.gif" width="19" height="19" class="cal_fletxa" alt="Mes anterior" /></a>'
  } else  if (mesMostrar == 0 && anyActual > cPrimerAny) {
  	text += '<a href="../' + (anyActual-1) + '/' + (anyActual-1) + posarZeros(12) + posarZeros(1) +'.html">'
  	text += '<img src="../img/icona-fletxae2c.gif" width="19" height="19" class="cal_fletxa" alt="Mes anterior" /></a>'
  } else {
  	//text += '<a href="#">'
  	text += '<img src="../img/icona-fletxae2c.gif" width="19" height="19" class="cal_fletxa" alt="Mes anterior" />'//</a>'
  }
  text += '\n<select name="mes" size="1" dir="ltr" class="form_calendari_sel1" onchange="location.href=\'../' + anyActual + '/' + anyActual + '\'+posarZeros(parseInt(mes.value)+1)+\'' + posarZeros(1) + '.html\'">'
  text += textMesActual(ara.getMonth(), 0, nomsMesos)
  text += textMesActual(ara.getMonth(), 1, nomsMesos)
  text += textMesActual(ara.getMonth(), 2, nomsMesos)
  text += textMesActual(ara.getMonth(), 3, nomsMesos)
  text += textMesActual(ara.getMonth(), 4, nomsMesos)
  text += textMesActual(ara.getMonth(), 5, nomsMesos)
  text += textMesActual(ara.getMonth(), 6, nomsMesos)
  text += textMesActual(ara.getMonth(), 7, nomsMesos)
  text += textMesActual(ara.getMonth(), 8, nomsMesos)
  text += textMesActual(ara.getMonth(), 9, nomsMesos)
  text += textMesActual(ara.getMonth(), 10, nomsMesos)
  text += textMesActual(ara.getMonth(), 11, nomsMesos)
  text += '</select>\n'
  if (mesMostrar < 11) {
  	text += '<a href="../' + anyActual + '/' + anyActual + posarZeros(mesMostrar+2) + posarZeros(1) +'.html">'
  	text += '<img src="../img/icona-fletxad2c.gif" width="19" height="19" class="cal_fletxa" alt="Mes següent" /></a> </td>'
  } else  if (mesMostrar == 11 && anyActual < cDarrerAny) {
  	text += '<a href="../' + (anyActual+1) + '/' + (anyActual+1) + posarZeros(1) + posarZeros(1) +'.html">'
  	text += '<img src="../img/icona-fletxad2c.gif" width="19" height="19" class="cal_fletxa" alt="Mes següent" /></a>'
  } else {
  	text += '<img src="../img/icona-fletxad2c.gif" width="19" height="19" class="cal_fletxa" alt="Mes següent" /> </td>'
  }
  text += '</tr>'
  // Pintar la capçalera dels dies
  text += '<tr>'
  for (var diaSetmana = 0; diaSetmana < 7; diaSetmana++) {
    text += '<td class="calDiaSet">' + nomsDies[diaSetmana] + '</td>'
  }
  text += '</tr>'
  // Pintar el calendari pròpiament dit
  diaMes = 1
  numDies = obtenirDies (ara.getMonth())
  cellaActual = 1
  var firstDayInstance = new Date(anyActual, ara.getMonth(), 1)
  var primerDia = firstDayInstance.getDay()
  if (primerDia == 0)
  	primerDia = 7
  firstDayInstance = null

  for (var fila = 1; fila <= Math.ceil((numDies+primerDia) / 7); fila++) {
    text += '<tr>'
    for (var columna = 1; columna <= 7; columna++) {
      if (diaMes > numDies)
        break
      if (cellaActual < primerDia) {
        text += '<td>&nbsp;</td>'
        cellaActual++
      } else {
        if (diaMes == ara.getDate()) {
          text += '<td class="calenDia"><a href="../' + anyActual + '/' + anyActual + posarZeros(ara.getMonth()+1) + posarZeros(diaMes) +'.html">' + diaMes + '</a></td>'
        } else {
          if (columna == 7 || esFestiu(diaMes,ara.getMonth(),anyActual))
          	text += '<td class="calDg"><a href="../' + anyActual + '/' + anyActual + posarZeros(ara.getMonth()+1) + posarZeros(diaMes) +'.html">' + diaMes + '</a></td>'
          else
          	text += '<td class="calFons"><a href="../' + anyActual + '/' + anyActual + posarZeros(ara.getMonth()+1) + posarZeros(diaMes) +'.html">' + diaMes + '</a></td>'
        }
        diaMes++
      }
    }
    text += '</tr>'
  }

  text += '</table>'
  document.write(text);
}