﻿var intMonth,intYear,objDay,objNow,strDiv = "divCalendar";
var strWeekDay,strMonth,intLanguage;
var strStyle = "font-family:arial;font-size:7pt";
/*
var monthArray = ['Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre'];
		var monthArrayShort = ['Jan','Fev','Mar','Avr','Mai','Jun','Jul','Aou','Sep','Oct','Nov','Dec'];
		var dayArray = ['Lun','Mar','Mer','Jeu','Ven','Sam','Dim'];
oct / nov / déc
		*/
//===============================================================
function getCalendar(pintYear,pintMonth,pintLanguage){
	objNow = new Date(strDate.substr(6,4),
		parseInt(strDate.substr(3,2),10)-1,parseInt(strDate.substr(0,2),10));
	if(pintLanguage == 1){
		strWeekDay = new Array('Dim','Lun','Mar','Mer','Jeu','Ven','Sam');
		strMonth = new Array('Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août',
			'Septembre','Octobre','Novembre','Décembre');
	}
	else{
		strWeekDay = new Array("CN","Hai","Ba","Tư","Năm","Sáu","Bảy");
		strMonth = new Array("T.Một","T.Hai","T.Ba","T.Tư","T.Năm","T.Sáu","T.Bảy","T.Tám",
			"T.Chín","T.Mười","T.M.Một","T.M.Hai");
	}
	intYear = pintYear;intMonth = pintMonth - 1;intLanguage = pintLanguage;
	if(intMonth == -1){
		intYear--;
		intMonth = 11;
	}
	if(intMonth == 12){
		intYear++;
		intMonth = 0;
	}
	objDay = new Date(intYear,intMonth,1);
	var strData = "<table style='" + strStyle + "' border='1' cellspacing='1'>" + 
		getTopBar() + getWeekDay() + getWeeks() + "</table>";
	document.getElementById(strDiv).innerHTML = strData;
}
//===============================================================
function getWeekDay(){
	var strData = "<tr>";
	for(var intCount = 0;intCount < 7;intCount++)
		if((objNow.getDay() == intCount) &&
			(objDay.getMonth() == objNow.getMonth()) &&
				(objDay.getYear() == objNow.getYear()))
					strData += "<td><b>" + strWeekDay[intCount] + "</b></td>";
		else
			if(intCount == 0)
				strData += "<td><font color='red'>" + 
					strWeekDay[intCount] + "</font></td>";
			else
				strData += "<td>" + strWeekDay[intCount] + "</td>";
	return strData + "</tr>";
}
//===============================================================
function getWeeks(){
	var strTr = "<tr height='20px'>"
	var strData = strTr;
	var intDayOfMonth = getDaysOfMonth(intMonth+1,intYear);
	//alert(intDayOfMonth);
	var objFirstDate = new Date(intYear,intMonth,1);
	var objEndDate = new Date(intYear,intMonth,intDayOfMonth);
	var intBlankToFirst = objFirstDate.getDay();
	var intWeekCount = 0;
	for(var intCount = 0;intCount < intBlankToFirst;intCount++)
		strData += "<td>&nbsp;</td>";
		
	for(var intCount2 = 1;intCount2 <= (7 - intBlankToFirst);intCount2++)
		strData += "<td>" + checkNow(intCount2) + "</td>";
	strData += "</tr>" + strTr;
	for(var intCount3 = (7 - intBlankToFirst + 1);intCount3 <= intDayOfMonth;intCount3++){
		strData += "<td>" + checkNow(intCount3) + "</td>";
		intWeekCount++;
		if(intWeekCount == 7){
			intWeekCount = 0;
			strData += "</tr>" + strTr;
		}
	}
	
	for(var intCount4 = 0;intCount4 < (7 - objEndDate.getDay() - 1);intCount4++)
		strData += "<td>&nbsp;</td>";
	return strData + "</tr>";
}
//===============================================================
function checkNow(pint){
	if((objNow.getDate() == pint) &&
			(objDay.getMonth() == objNow.getMonth()) &&
				(objDay.getYear() == objNow.getYear()))
		return "<div style='font-size:9pt;color:white;background-color:blue'><b><center>" + 
			pint + "<center></b></div>";
	else return pint;
}
//===============================================================
function getTopBar(){
	return "<tr><td><a href='javascript:getCalendar(intYear-1,intMonth+1,intLanguage)'>|<</a></td>" + 
		"<td><a href='javascript:getCalendar(intYear,intMonth,intLanguage)'><<</a></td>" +
		"<td colspan='3' style='font-size:8pt'>" + 
		strMonth[intMonth] + " - " + intYear + 
		"<td><a href='javascript:getCalendar(intYear,intMonth+2,intLanguage)'>>></td>" + 
		"<td><a href='javascript:getCalendar(intYear+1,intMonth+1,intLanguage)'>>|</a></td></tr>";
}
//===============================================================
function getDaysOfMonth(pintMonth,pintYear){
	var intDays = new Array(0,31,0,31,30,31,30,31,31,30,31,30,31);
	if(pintMonth != 2)
		return intDays[pintMonth];
	else
		if(isLeapYear(pintYear))
			return 29;
		else
			return 28;
}
//===============================================================
function isLeapYear(pintYear){
	if((pintYear%400 == 0) || ((pintYear%4 == 0) && (pintYear%100 != 0))) 
		return true;
	return false;
}
