Date.prototype.getDOY = function() {
 var onejan = new Date(this.getFullYear(),0,1);
 return Math.ceil((this - onejan) / 86400000)-1;
 }

var BeginDate = 83;
var EndDate = 272;
var CurrentYear = 2012;

var map1 = new Array();
var map2 = new Array();

map1[0]=1;
map2[0]=0;
map1[1]=0;
map2[1]=0;
map1[2]=0;
map2[2]=0;
map1[3]=0;
map2[3]=0;
map1[4]=0;
map2[4]=0;
map1[5]=0;
map2[5]=0;
map1[6]=0;
map2[6]=0;
map1[7]=1;
map2[7]=1;
map1[8]=0;
map2[8]=0;
map1[9]=0;
map2[9]=0;
map1[10]=0;
map2[10]=0;
map1[11]=0;
map2[11]=0;
map1[12]=0;
map2[12]=0;
map1[13]=0;
map2[13]=0;
map1[14]=1;
map2[14]=1;
map1[15]=0;
map2[15]=0;
map1[16]=0;
map2[16]=0;
map1[17]=0;
map2[17]=0;
map1[18]=0;
map2[18]=0;
map1[19]=0;
map2[19]=0;
map1[20]=0;
map2[20]=0;
map1[21]=1;
map2[21]=1;
map1[22]=0;
map2[22]=0;
map1[23]=0;
map2[23]=0;
map1[24]=0;
map2[24]=0;
map1[25]=0;
map2[25]=0;
map1[26]=0;
map2[26]=0;
map1[27]=0;
map2[27]=0;
map1[28]=1;
map2[28]=1;
map1[29]=0;
map2[29]=0;
map1[30]=0;
map2[30]=0;
map1[31]=0;
map2[31]=0;
map1[32]=0;
map2[32]=0;
map1[33]=0;
map2[33]=0;
map1[34]=0;
map2[34]=0;
map1[35]=1;
map2[35]=1;
map1[36]=0;
map2[36]=0;
map1[37]=0;
map2[37]=0;
map1[38]=0;
map2[38]=0;
map1[39]=0;
map2[39]=0;
map1[40]=0;
map2[40]=0;
map1[41]=0;
map2[41]=0;
map1[42]=1;
map2[42]=1;
map1[43]=0;
map2[43]=0;
map1[44]=0;
map2[44]=0;
map1[45]=0;
map2[45]=0;
map1[46]=0;
map2[46]=0;
map1[47]=0;
map2[47]=0;
map1[48]=0;
map2[48]=0;
map1[49]=1;
map2[49]=1;
map1[50]=0;
map2[50]=0;
map1[51]=0;
map2[51]=0;
map1[52]=0;
map2[52]=0;
map1[53]=0;
map2[53]=0;
map1[54]=0;
map2[54]=0;
map1[55]=0;
map2[55]=0;
map1[56]=1;
map2[56]=1;
map1[57]=0;
map2[57]=0;
map1[58]=0;
map2[58]=0;
map1[59]=0;
map2[59]=0;
map1[60]=0;
map2[60]=0;
map1[61]=0;
map2[61]=0;
map1[62]=0;
map2[62]=0;
map1[63]=1;
map2[63]=1;
map1[64]=0;
map2[64]=0;
map1[65]=0;
map2[65]=0;
map1[66]=0;
map2[66]=0;
map1[67]=0;
map2[67]=0;
map1[68]=0;
map2[68]=0;
map1[69]=0;
map2[69]=0;
map1[70]=1;
map2[70]=1;
map1[71]=0;
map2[71]=0;
map1[72]=0;
map2[72]=0;
map1[73]=0;
map2[73]=0;
map1[74]=0;
map2[74]=0;
map1[75]=0;
map2[75]=0;
map1[76]=0;
map2[76]=0;
map1[77]=1;
map2[77]=1;
map1[78]=0;
map2[78]=0;
map1[79]=0;
map2[79]=0;
map1[80]=0;
map2[80]=0;
map1[81]=0;
map2[81]=0;
map1[82]=0;
map2[82]=0;
map1[83]=0;
map2[83]=0;
map1[84]=1;
map2[84]=1;
map1[85]=0;
map2[85]=0;
map1[86]=0;
map2[86]=0;
map1[87]=0;
map2[87]=0;
map1[88]=0;
map2[88]=0;
map1[89]=0;
map2[89]=0;
map1[90]=0;
map2[90]=0;
map1[91]=1;
map2[91]=1;
map1[92]=0;
map2[92]=0;
map1[93]=0;
map2[93]=0;
map1[94]=0;
map2[94]=0;
map1[95]=0;
map2[95]=0;
map1[96]=0;
map2[96]=0;
map1[97]=0;
map2[97]=0;
map1[98]=1;
map2[98]=1;
map1[99]=0;
map2[99]=0;
map1[100]=0;
map2[100]=0;
map1[101]=0;
map2[101]=0;
map1[102]=0;
map2[102]=0;
map1[103]=0;
map2[103]=0;
map1[104]=0;
map2[104]=0;
map1[105]=1;
map2[105]=1;
map1[106]=0;
map2[106]=0;
map1[107]=0;
map2[107]=0;
map1[108]=0;
map2[108]=0;
map1[109]=0;
map2[109]=0;
map1[110]=0;
map2[110]=0;
map1[111]=0;
map2[111]=0;
map1[112]=1;
map2[112]=1;
map1[113]=0;
map2[113]=0;
map1[114]=0;
map2[114]=0;
map1[115]=0;
map2[115]=0;
map1[116]=0;
map2[116]=0;
map1[117]=0;
map2[117]=0;
map1[118]=0;
map2[118]=0;
map1[119]=1;
map2[119]=1;
map1[120]=0;
map2[120]=0;
map1[121]=0;
map2[121]=0;
map1[122]=0;
map2[122]=0;
map1[123]=0;
map2[123]=0;
map1[124]=0;
map2[124]=0;
map1[125]=0;
map2[125]=0;
map1[126]=1;
map2[126]=1;
map1[127]=0;
map2[127]=0;
map1[128]=0;
map2[128]=0;
map1[129]=0;
map2[129]=0;
map1[130]=0;
map2[130]=0;
map1[131]=0;
map2[131]=0;
map1[132]=0;
map2[132]=0;
map1[133]=1;
map2[133]=1;
map1[134]=0;
map2[134]=0;
map1[135]=0;
map2[135]=0;
map1[136]=0;
map2[136]=0;
map1[137]=0;
map2[137]=0;
map1[138]=0;
map2[138]=0;
map1[139]=0;
map2[139]=0;
map1[140]=1;
map2[140]=1;
map1[141]=0;
map2[141]=0;
map1[142]=0;
map2[142]=0;
map1[143]=0;
map2[143]=0;
map1[144]=0;
map2[144]=0;
map1[145]=0;
map2[145]=0;
map1[146]=0;
map2[146]=0;
map1[147]=1;
map2[147]=1;
map1[148]=0;
map2[148]=0;
map1[149]=0;
map2[149]=0;
map1[150]=0;
map2[150]=0;
map1[151]=0;
map2[151]=0;
map1[152]=0;
map2[152]=0;
map1[153]=0;
map2[153]=0;
map1[154]=1;
map2[154]=1;
map1[155]=0;
map2[155]=0;
map1[156]=0;
map2[156]=0;
map1[157]=0;
map2[157]=0;
map1[158]=0;
map2[158]=0;
map1[159]=0;
map2[159]=0;
map1[160]=0;
map2[160]=0;
map1[161]=1;
map2[161]=1;
map1[162]=0;
map2[162]=0;
map1[163]=0;
map2[163]=0;
map1[164]=0;
map2[164]=0;
map1[165]=0;
map2[165]=0;
map1[166]=0;
map2[166]=0;
map1[167]=0;
map2[167]=0;
map1[168]=1;
map2[168]=1;
map1[169]=0;
map2[169]=0;
map1[170]=0;
map2[170]=0;
map1[171]=0;
map2[171]=0;
map1[172]=0;
map2[172]=0;
map1[173]=0;
map2[173]=0;
map1[174]=0;
map2[174]=0;
map1[175]=1;
map2[175]=1;
map1[176]=0;
map2[176]=0;
map1[177]=0;
map2[177]=0;
map1[178]=0;
map2[178]=0;
map1[179]=0;
map2[179]=0;
map1[180]=0;
map2[180]=0;
map1[181]=0;
map2[181]=0;
map1[182]=1;
map2[182]=1;
map1[183]=0;
map2[183]=0;
map1[184]=0;
map2[184]=0;
map1[185]=0;
map2[185]=0;
map1[186]=0;
map2[186]=0;
map1[187]=0;
map2[187]=0;
map1[188]=0;
map2[188]=0;
map1[189]=0;
map2[189]=1;


//alert(BeginDate);

/*var CDate = {};
(function (date) {
	CDate = {
		   w: date.getDay(),
		   d: date.getDate(),
		   m: date.getMonth(),
		   y: date.getFullYear(),
		date: date,
	};
 })(new Date);
*/
//alert(BeginDate);

//alert({then});
//alert({now});
//alert({now2});

function dateStatus1 (date, y, m, d) {
   if(date.getFullYear() != CurrentYear) { // || date > 86400000) {
      return true;
   } else {
      if(date.getDOY() < BeginDate || date.getDOY() > EndDate) { // || date > 86400000) {
         return true;
      } else {
         return map1[date.getDOY()-BeginDate]==0;
      }
   }
	return false;
};

function setAlGiorno (firstcal) {
   var date = firstcal.date;
   var time = date.getTime();
// 11 is the length of "f_dalgiorno"
   if(firstcal.params.inputField.id.length > 11) {
      fname = 'f_date'+firstcal.params.inputField.id.substr(11,3)
   } else {
      fname = 'f_date';
   }
   var field = document.getElementById(fname);
   time += Date.WEEK; // substract one week
   var date2 = new Date(time);
   field.value = date2.print("%Y-%m-%d %H:%M");
};

function dateStatus2 (date, y, m, d) {
   if(date.getFullYear() != CurrentYear) { // || date > 86400000) {
      return true;
   } else {
      if(date.getDOY() < BeginDate || date.getDOY() > EndDate) { // || date > 86400000) {
         return true;
      } else {
         return map2[date.getDOY()-BeginDate]==0;
      }
   }
	return false;
};

