function buildCal(m, y, cM, cH, cDW, cD, brdr, eventAff, url){

	var mn=['Jan','Feb','March','April','May','June','July','Aug','Sept','Oct','Nov','Dec'];
	var dim=[31,0,31,30,31,30,31,31,30,31,30,31];
	var date;
	var count=1;


	var todaydate=new Date();
	//todaydate.setFullYear(2006,9,23); 
	var scanfortoday=(y==todaydate.getFullYear() && m==todaydate.getMonth()+1)? todaydate.getDate() : 0;
	var thismonth = todaydate.getMonth()+1;
	var oD = todaydate;
	oD.od=todaydate.getDay()+1;

	dim[1]=(((oD.getFullYear()%100!=0)&&(oD.getFullYear()%4==0))||(oD.getFullYear()%400==0))?29:28;
	
	
	var t='<div class="'+cM+'"><table class="'+cM+'" cols="7" cellpadding="0" border="'+brdr+'" cellspacing="0"><tr align="center">';

	for(s=0;s<7;s++)t+='<td class="'+cDW+' daysofweek_colors">'+"SMTWTFS".substr(s,1)+'</td>';

	t+='</tr><tr align="center" valign="top">';

	
	for (i=0;i<todaydate.getDay(); i++) {
		if ((count == 1) || (count == 7)) {
			t+='<td class="weekends weekends_colors">&nbsp;</td>';
		} else {
			t+='<td class="'+cD+' days_colors">&nbsp;</td>';
		}
	}

	var prevdays = i;
	count = prevdays;
	var extradays = 1;
	
	for (k=0;k<(14-prevdays);k++) {

		var day = todaydate;
		var x = todaydate.getDate()+k;
		date = x;
		
		//increment month if necessary
		if (date > dim[m-1]) {
			if (extradays == 1) {
				m++;
			}
			x = extradays;
			date = x;
			
			if ((count == 1) || (count == 7)) {
					t+='<td class="weekends weekends_colors"><a href="' + url + '/sp?aff=' + eventAff + '&date='+m+'/'+date+'/'+y+'">'+x+'</a></td>';
			} else {
				t+='<td class="'+cD+' days_colors"><a href="' + url + '/sp?aff=' + eventAff + '&date='+m+'/'+date+'/'+y+'">'+x+'</a></td>';
			}	
			
			extradays++;
	
		} else {
			
			if (x == scanfortoday) {
				x='<span class="today today_colors">'+x+'</span>' 		
			}
			
			if (x < scanfortoday) {
				
				if ((count == 1) || (count == 7)) {
					t+='<td class="weekends weekends_colors">'+x+'</td>';
				} else {
					t+='<td class="'+cD+' days_colors">'+x+'</td>';
				}
						
			} else {
			
				if ((count == 1) || (count == 7)) {
					t+='<td class="weekends weekends_colors"><a href="' + url + '/sp?aff=' + eventAff + '&date='+m+'/'+date+'/'+y+'">'+x+'</a></td>';
				} else {
					t+='<td class="'+cD+' days_colors"><a href="' + url + '/sp?aff=' + eventAff + '&date='+m+'/'+date+'/'+y+'">'+x+'</a></td>';
				}
			}
		}
		
		count++;
		if(count == 7){
			t+='</tr><tr align="center">';
			count=0;
		}
		
	}
	
	return t+='</tr></table></div>';
}

function updatecalendar(theselection, eventAff, url){
	var themonth=parseInt(theselection[theselection.selectedIndex].value)+1
	var calendarstr=buildCal(themonth, curyear, "main", "month", "daysofweek", "days", 0, eventAff, url)
	if (document.getElementById)
	document.getElementById("calendar").innerHTML=calendarstr
}

function skip(Direction, eventAff, url) {
   if (Direction == '+') {
      if (selected_month == 12) {
         selected_month = 1;
         selected_year++;
      }
      else {
         selected_month++;
      }
   }
   else {
      if (selected_month == 1) {
         selected_month = 12;
         selected_year--;
      }
      else {
         selected_month--;
      }
   }
   
   	var calendarstr=buildCal(selected_month, selected_year, "main", "month", "daysofweek", "days", 0, eventAff, url)
	if (document.getElementById)
		document.getElementById("calendar").innerHTML=calendarstr
}




