
function NP_jscalendar_Init(idTabComp)
{
		eval('initCalendarVariable' + idTabComp + '()');
		var d = new Date();
		dispInfo(d, idTabComp);
}

function dispInfo(dat, idTabComp)
{
	var div_date = document.getElementById('div_date_viewer_date' + idTabComp);
	dat.setHours(0,0,0,0);
//	alert("ladate"+dat.toLocaleString());
	div_date.innerHTML = dat.toLocaleString().replace("00:00:00", "");

	var div_dicton = document.getElementById('div_date_viewer_dicton' + idTabComp);
	div_dicton.innerHTML = eval('arrDicton'+dat.getMonth() + '[dat.getDate()-1];');

	var div_saint = document.getElementById('div_date_viewer_saint' + idTabComp);
	div_saint.innerHTML = eval('arrSaint'+dat.getMonth() + '[dat.getDate()-1];');
}

function calendar(name,strMonth,getDateFct, idTabComp)
{
	this.name = name;
	this.title = document.getElementById(name + "_" + idTabComp + "_title" );
	this.dat = new Date();
	this.dat.setHours(0,0,0,0);
	this.month = this.dat.getMonth();
	this.year = this.dat.getYear();
	if(window.XMLHttpRequest)
		this.year = this.year +1900;
	this.strMonth = strMonth;
	this.getDateFct = getDateFct;
	this.idTabComp = idTabComp;
	this.displayMonth();
}

calendar.prototype.displayMonth = function()
{
	var dat = new Date();
	dat.setHours(0,0,0,0);
	var lmonth = this.month;
	var dayNum = 1;
	var week;var day;var td;
	this.title.innerHTML = this.strMonth[lmonth] + " " + this.year;
	for(var i=0;i<7;i++)
	{
		td = document.getElementById(this.name + "_" + this.idTabComp + "_W0_D"+i);
		td.innerHTML = "";
		td = document.getElementById(this.name + "_" + this.idTabComp + "_W4_D"+i);
		td.innerHTML = "";
		td = document.getElementById(this.name + "_" + this.idTabComp + "_W5_D"+i);
		td.innerHTML = "";
	}

	dat.setFullYear(this.year,this.month,1);
	while(lmonth == dat.getMonth())
	{
		week = this.getWeekOfMonth(dat);
		day = dat.getDay();
		td = document.getElementById(this.name + "_" + this.idTabComp + "_W"+week+"_D"+day);
		if(this.dat.toString() == dat.toString())
		{
			td.style.color = "#FF0000";
			td.style.fontWeight = "bold";
		}
		else
		{
			td.style.color = "black";
			td.style.fontWeight = "normal";
		}
		td.innerHTML = dayNum;
		dayNum++;
		dat.setMonth(this.month,dayNum);
	}
}

calendar.prototype.getWeekOfMonth = function(dat)
{
	var ldat = new Date(dat.getFullYear(),dat.getMonth(),1);
	var dayNb = dat.getDate()+ldat.getDay()-1;
	return 	parseInt(dayNb/7);
}

calendar.prototype.changeMonth = function(delta)
{
	this.month+=delta;
	if(this.month<0)
	{
		this.month = 12+this.month;
		this.year = this.year-1;
	}
	if(this.month>11)
	{
		this.month = 12-this.month;
		this.year++;
	}

	this.displayMonth();
}

calendar.prototype.getDate = function(w,d,td)
{
	if(td.innerHTML != "")
	{
		var dat = new Date();
		dat.setFullYear(this.year,this.month,1);
		var day = w*7+d;
		var day1 = dat.getDay();
		var selDate = new Date(this.year,this.month,day-day1+1);
		if(day-day1+1>0 && selDate.getMonth() == dat.getMonth())
			this.getDateFct(selDate, this.idTabComp);
	}
}