var d;
var cal;

function show_today()
{
  cal = document.getElementById('calendar');
	d = new Date();
	
	show_calendar( 0 );
}

function show_calendar( month_offset  )
{
  today = new Date();
	
  d.setMonth( d.getMonth() + month_offset );	
	with ( new Date( d.getFullYear(), d.getMonth(), 1) )
	{
    month = "jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec".split(',')[getMonth()];
    document.getElementById('calendar.title').innerHTML = month + ' ' + getFullYear();
    
		setDate( getDate() - getDay() );

		while ( cal.rows.length > 1 )
		{
		  cal.deleteRow(1);
		}

		outside = true;
		below = false;
		for ( row = 0; row < 4 || getDate() > 7; row++ )
		{
		  cal.insertRow(row+1);
		  
			for ( dow = 0; dow < 7; dow++ )
			{
			  cal.rows[row+1].insertCell(dow);

				if ( (outside ^= (getDate() == 1)) )
				{			
				  cell = (row == 0 || getDate() <= dow) ? getDate() : "";
					style = "outer";
				}
				else
				{
				  cell = getDate();
					style = "inner";
				}

				var e = events.get( getFullYear() );
				if ( e )
				{
				  var event = e.get( "bla" );
				  event = e.get( getFullYear() + "-" + (getMonth() + 1) + "-" + getDate() );
          if ( event )
					{			  
					  cell = "<a class=\"cal_link\" " 
						     + "href=\"http://" + event.getUrl() + "\" "
								 + "onmouseover=\"return overlib('" + event.getName() + "',WRAP);\" "
								 + "onmouseout=\"return nd();\">" + cell + "</a>";
						style = style + "_party";
					}
				}

	      if ( today.getFullYear() == getFullYear() && today.getMonth() == getMonth() && today.getDate() == getDate() )
				{
				  style = style + "_today";
				}		
							
			  cal.rows[row+1].cells[dow].innerHTML = "<div class=\"cal_" + style + "\">" + cell + "</div>";
				setDate( getDate() + 1 );
			}
			below = outside;
	  }
	}
}

