calendar = function( szdate , szdiv , mark)
{
	this.date = new Date() ;
	this.mark = mark;
	this.div = szdiv;
	this.backImg = "<img src='"+szdbfp+"/media/arrow_left.gif/$file/arrow_left.gif' border='0' />";
	this.forwardImg = "<img src='"+szdbfp+"/media/arrow_right.gif/$file/arrow_right.gif' border='0' />";
	this.MonthDays = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
	this.MonthNames = new Array('Januar','Februar','Mars','April','Mai','Juni','Juli','August','September','Oktober','November','Desember');
	if (szdate != null && szdate != "")
	{
		var daten = szdate.split(".");
		this.date.setFullYear( daten[0],daten[1]-1, 1 );
	}else
	{
		this.date.setDate( 1 );
	}
 
	this.paint = function()
	{
		var year =  this.date.getFullYear();
		var month =  this.date.getMonth();
		var tmpDate = new Date();
		var today = tmpDate.getDate();
		var thisMonth = tmpDate.getMonth() + 1;
		var sztoday = year + "." + (thisMonth < 10 ? ""+ thisMonth:thisMonth) + "." + (today < 10 ? ""+ today:today);
		var day = this.date.getDay() -1;
		if (day == -1){day=6;}
 		if (month  == 1)
		{
			// check for leepyear
			var e = new Date();
			e.setDate(29);
			e.setMonth(1);
			e.setYear(year);
			if ( month == e.getMonth() )
			{
				this.MonthDays[1] = 29; 
			}else
			{
				this.MonthDays[1] = 28;
			}
		}
		var nextmonth = (month == 11?1:(month+2));
		nextmonth = (nextmonth.length == 1 ? ""+ nextmonth:nextmonth );
		nextmonth = (nextmonth < 10 ? ""+ nextmonth :nextmonth );
		var nextyear = (nextmonth == 1?(year+1):(year));
		var premonth = (month == 0?12:(month));
		premonth = (premonth < 10 ? ""+ premonth:premonth);
 		var preyear = (premonth == 12?(year-1):(year));
 		var szNewPath = location.pathname;
 		if(szNewPath == "/" || szNewPath == ""){szNewPath = szdbfp}
		var szreturn = "";
		szreturn  = szreturn  + "<table id='table_calendar' cellspacing='3' summary='This month's calendar'>"
		szreturn  = szreturn  + "<caption><div id='month'><div id='prevMonth'><a href='"+szNewPath+"?" + szlocationsearch + "&date="+ preyear +"."+premonth + "' title='previous month' class='nav'>"+this.backImg+"</a></div><div id='monthName'>"+ this.MonthNames[month].toUpperCase() + " " + year 
+ "</div><div id='nextMonth'><a href='"+szNewPath+"?"+  szlocationsearch + "&date="+ nextyear
+"."+nextmonth + "' title='next month' class='nav'>"+this.forwardImg+"</a></div></div></caption>"
		szreturn  = szreturn  + " <tr>"
		szreturn  = szreturn  + "<th scope='col' abbr='Monday' title='Mandag'>M</th>"
		szreturn  = szreturn  + "<th scope='col' abbr='Tuesday' title='Tirsdag'>T</th>"
		szreturn  = szreturn  + "<th scope='col' abbr='Wednesday' title='Onsdag'>O</th>"
		szreturn  = szreturn  + "<th scope='col' abbr='Thursday' title='Torsdag'>T</th>"
		szreturn  = szreturn  + "<th scope='col' abbr='Friday' title='Fredag'>F</th>"
		szreturn  = szreturn  + "<th scope='col' abbr='Saturday' title='Lørdag'>L</th>"
		szreturn  = szreturn  + "<th scope='col' abbr='Sunday' title='Søndag'>S</th>"
		szreturn  = szreturn  + " </tr>"
		for (  i = 0 ; i < day  ; i++ )
		{
			szreturn  = szreturn  + "<td class='noShow'>&nbsp;</td>"
		}
		
		for (  i = 0 ; i < this.MonthDays[ month ]  ; i++ )
		{
			//if(sztoday == (year + "." + (month + 1 < 10 ? "0"+ (month + 1):month + 1) + "." + ((i+1) < 10 ? "0"+ (i+1):(i+1)))){
			if(sztoday == (year + "." + (month + 1) + "." + (i+1))){
				szTodayClass = " class='today'";
			}else{
				szTodayClass = "";
			}
			if ( (this.mark.indexOf("," +  (i+1).toString()+",") != -1 ) || (this.mark.indexOf("," + "0" + (i+1).toString()+",") != -1))
			{
				var szdayurl = szactivities + "?open"+szqm+"&date=" + year + "." + (month + 1 < 10 ? ""+ (month + 1):month + 1)+"&showdate=" + year + "." + (month + 1 < 10 ? "0"+ (month + 1):month + 1) + "." + ((i+1) < 10 ? "0"+ (i+1):(i+1))+"|"+category;
 
 /*************** skal ikke kunne klikke på gamle aktiviteter*********/
/*
if( sztoday > (year + "." + (month + 1 < 10 ? "0"+ (month + 1):month + 1) + "." + ((i+1) < 10 ? "0"+ (i+1):(i+1)))){
				szreturn  = szreturn  + "<td" + szTodayClass + ">"+(i+1) +"</td>"
}else{
				szreturn  = szreturn  + "<td" + szTodayClass + "><a href='" + szdayurl + "'>"+(i+1) +"</a></td>"
}
*/
				szlink = "<a href='" + szdayurl + "'>"+(i+1) +"</a>";
				if( thisMonth > (month+1)){
				      szlink = (i+1) ;
				}
				else if( (thisMonth > (month+1)) && (today > (i+1)) ){
				      szlink = (i+1) ;
				}
				szreturn  = szreturn  + "<td" + szTodayClass + ">"+szlink+"</td>"
			}else
			{
				szreturn  = szreturn  + "<td" + szTodayClass + ">"+(i+1) +"</td>"
			}
			if (day == 6)
			{
				day = 0;
				szreturn  = szreturn  + " </tr>"
				szreturn  = szreturn  + " <tr>"
			}else
			{
				day++;
			}
		}
 
		if (day == 0){day = 200;}
		for (  i = day ; i < 7 ; i++ )
		{
			szreturn  = szreturn  + "<td class='noShow'>&nbsp;</td>"
		}
		szreturn  = szreturn  + " </tr>"
		szreturn  = szreturn  + "</table>"
		var obj = SYM.util.dom.getObject(this.div );
		obj.innerHTML = szreturn  ;
	}
}

