function calendar(p_year, p_month)
{
	var date = new Date();
	var current_year = date.getYear();
	if(current_year<2000)
	   current_year += 1900;
	var current_month = date.getMonth()+1;
	var current_date = date.getDate();
	var year = (p_year) ? p_year : current_year;
	var month = (p_month) ? p_month : current_month;
	var prev_year = (month!=1)?year:(year-1);
	var prev_month = (month!=1)?(month-1):12;
	var next_year = (month!=12)?year:(year+1);
	var next_month = (month!=12)?(month+1):1;
	var first_day = new Date(year, month-1, 1);
	var first_dow = first_day.getDay();
	var month_arr = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
	var lastday = month_arr[month-1];
	if (month == 2){
		if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)){
			lastday++;
		}
	}
	var month_table = new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
	var dat_table = '<tr><td class="sunday">S</td><td>M</td><td>Tu</td><td>W</td><td>Th</td><td>F</td><td class="saturday">Sat</td></tr>';
	var cal = '<div id="calendar"><table width="100%" height="100%" border="0">';
	cal += '<tr><td colspan="7" class="navi" nowrap>';
	cal += ' <a href="javascript:void(0)" onclick="calendar(' + (year-1) + ', ' + month + ')">&lt;&lt;</a> ';
	cal += ' <a href="javascript:void(0)" onclick="calendar(' + prev_year + ', ' + prev_month + ')">&lt;</a> ';
	cal += month_table[month-1] + '. ' + year;
	if(year==current_year && month==current_month) {
		cal += ' &gt; ';
	  	cal += ' &gt;&gt; ';
	} 
	else {
		cal += ' <a href="javascript:void(0)" onclick="calendar(' + next_year + ', ' + next_month + ')">&gt;</a> ';
		cal += ' <a href="javascript:void(0)" onclick="calendar(' + (year+1) + ', ' + month + ')">&gt;&gt;</a> ';
	}
	cal += '</td></tr>';
	cal += '<tr class="week"><td>S</td><td>M</td><td>T</td><td>W</td><td>T</td><td>F</td><td>S</td></tr>';
	var col_count = 0;
	cal += '<tr>';
	for (i=0; i<first_dow; i++) {
		cal += '<td><br></td>';
		col_count++;
  }
	for (i=1; i<=lastday; i++) {
		var dow = (first_dow + (i-1)) % 7;
		var cls = 'day' + dow;
		if (dow==0) {
			col_count = 0;
			cal += '</tr><tr>';
		}
		cal += '<td class="' + cls + '">';
		var ymd = year.toString() + (month<10?'0':'') + month.toString() + (i<10?'0':'') + i.toString();
		if(link_arr[ymd]) {
			var testoutx ="http://click.dtiserv2.com/eDirect/9101998-101-us3702/eng/";  // caribbean.com
			var testouts = link_arr[ymd].split(".com/eng/");
			testoutx += testouts[1];
			cal += '<a target="_blank" href="' + testoutx + '" class="calen_link">';
		}
		if (year == current_year && month == current_month && current_date == i) {
			cal += i.toString().bold();
		}
		else {
			cal += i.toString();
		}
		if(link_arr[ymd])
			cal += '</a>';
		cal += '</td>';
		col_count++;
	}
	for (i=col_count; i<7; i++)
		cal += '<td><br></td>';
	cal += '</tr></table></div>';

	document.getElementById('calendar').innerHTML = cal;
}
