function buildCal(m, y, cM, cH, cDW, cD, brdr){
	var cM = 'main'; 
	var cH = 'month';
	var cDW = 'daysofweek';
	var cD = 'days';
	var brdr = 0;
	var mn=['Ιανουάριος','Φεβρουάριος','Μάρτιος','Απρίλιος','Μαϊος','Ιούνιος','Ιούλιος','Αύγουστος','Σεπτέμβριος','Οκτώβριος','Νοέμβριος','Δεκέμβριος'];
	var dim=[31,0,31,30,31,30,31,31,30,31,30,31];

	var oD = new Date(y, m-1, 1); //DD replaced line to fix date bug when current day is 31st
	oD.od=oD.getDay()+1; //DD replaced line to fix date bug when current day is 31st

	var todaydate=new Date() //DD added
	var scanfortoday=(y==todaydate.getFullYear() && m==todaydate.getMonth()+1)? todaydate.getDate() : -1 //DD added
	var year = todaydate.g

	dim[1]=(((oD.getFullYear()%100!=0)&&(oD.getFullYear()%4==0))||(oD.getFullYear()%400==0))?29:28;
	var t='<div class="'+cM+'"><table width="100%" class="'+cM+'" cols="7" cellpadding="0" border="'+brdr+'" cellspacing="0"><tr align="center">';
	t+='<td colspan="7" align="center" class="'+cH+'"><span class="previous"><a href="javascript:calGoPrevious(' + (m-1) +',' + y + ')"><img src="../../templates/default/images/previous.gif" alt="Προηγούμενος μήνας" /></a></span><span class="monthDate">'+mn[m-1]+' - '+y+'</span><span class="next"><a href="javascript:calGoNext(' + (m-1) + ',' + y + ')"><img src="../../templates/default/images/next.gif" alt="Επόμενος μήνας" /></a></span></td></tr><tr align="center">';
	
	for (s=0;s<7;s++)t+='<td class="'+cDW+'">'+"ΚΔΤΤΠΠΣ".substr(s,1)+'</td>';t+='</tr><tr align="center">';
	for (i=1;i<=42;i++){
		var x=((i-oD.od>=0)&&(i-oD.od<dim[m-1]))? i-oD.od+1 : ' ';
		if (x==scanfortoday) {
		    t+='<td id="td_'+x+'" class="curDay"><a href="javascript:calChange('+getFullDay(x-1)+','+getFullMonth(m-1)+','+y+');calActivateDay('+x+','+m+','+y+');">'+x+'</a></td>';
		} else {
			if (x==' ') {
			    t+='<td class="inactiveDay">&nbsp;</td>';
			} else {
			    t+='<td id="td_'+x+'" class="'+cD+'"><a href="javascript:calChange('+getFullDay(x-1)+','+getFullMonth(m-1)+','+y+');calActivateDay('+x+','+m+','+y+');">'+x+'</a></td>';
				}
		}
		if(((i)%7==0)&&(i<36))t+='</tr><tr align="center">';
	}
	return t+='</tr></table></div>';
}

function calActivateDay(d,m,y) {
	var dim=[31,0,31,30,31,30,31,31,30,31,30,31];

	var oD = new Date(y, m-1, 1); //DD replaced line to fix date bug when current day is 31st
	oD.od=oD.getDay()+1; //DD replaced line to fix date bug when current day is 31st
	dim[1]=(((oD.getFullYear()%100!=0)&&(oD.getFullYear()%4==0))||(oD.getFullYear()%400==0))?29:28;

	for (i=1;i<=dim[m-1];i++){
		$('td_'+i+'').className='days';
	}
	$('td_'+d+'').className='curDay';
}

function getFullMonth(iMonth) {
    var month = new Array("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12");
    return month[iMonth];
}

function getFullDay(iDay) {
    var day = new Array("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31");
    return day[iDay];
}

function calGoPrevious(curMonth, curYear) {
	if (curMonth == 0)
	{
		curMonth = 12;
		curYear = (curYear - 1); 
	} else {
		curMonth = (getFullMonth(curMonth - 1));
	}
	$('cal').innerHTML = buildCal(curMonth, curYear);
}

function calGoNext(curMonth, curYear) {
	if (curMonth == 11)
	{
		curMonth = 01;
		curYear = (curYear + 1); 
	} else {
		curMonth = (getFullMonth(curMonth + 1));	
	}
	
	$('cal').innerHTML = buildCal(curMonth, curYear);
}