// calendarfun.js
// 18mar10 =s= initial
// 31mar10 =s= white background for today

// y2k ok leap year test by =sam=
function leapYear(year) {
	if ((year % 400 == 0) || ((year % 100 != 0) && (year % 4 == 0)))
		   	  return true 
			  /* else */ // else not needed when statement is "return"
			  return false // is NOT leap year
}

// how many days in the month?
function getDays(month, year) {
         var ar = new Array(12)
         ar[0] = 31 
         ar[1] = (leapYear(year)) ? 29 : 28 
         ar[2] = 31
         ar[3] = 30
         ar[4] = 31
         ar[5] = 30
         ar[6] = 31
         ar[7] = 31
         ar[8] = 30
         ar[9] = 31
         ar[10] = 30
         ar[11] = 31
         return ar[month-1]
 }

 // return name of specified month (parameter)
 function getMonthName(month) {
         var ar = new Array(12)
         ar[0] = "January"
         ar[1] = "February"
         ar[2] = "March"
         ar[3] = "April"
         ar[4] = "May"
         ar[5] = "June"
         ar[6] = "July"
         ar[7] = "August"
         ar[8] = "September"
         ar[9] = "October"
         ar[10] = "November"
         ar[11] = "December"
         return ar[month-1]
 }

 
// fill the month table with column headings
function day_title(day_name){
     document.write("<TD ALIGN=center WIDTH=35>"+day_name+"</TD>")
}

// fills the month table with numbers
function fill_month(nowish, wkdy,mno,year)
{ 
	month=getMonthName(mno);
	month_length=getDays(mno,year);
  day=1
  // begin the new month table
  document.write("<TABLE BORDER=3 CELLSPACING=3 CELLPADDING=%3  BGCOLOR=#fffacd><TR>")
  document.write("<TD COLSPAN=7 ALIGN=center><B>"+month+"   "+year+"</B><TR>")
  // column headings
  
  day_title("Mon")
  day_title("Tue")
  day_title("Wed")
  day_title("Thu")
  day_title("Fri")
  day_title("Sat")
  day_title("<b>Sun</b>")
  // pad cells before first day of month
  document.write("</TR><TR>")
  var i, daystring, daybkgnd;
  for (i=1;i<wkdy;i++){
        document.write("<TD></td>")
  }
  
  // fill the remaining weeks
  while (day <= month_length) {
     for ( ;i<=7 && day<=month_length;i++){
	 	 daystring=day;
		 if (i<6) {
			daybkgnd="lightblue";
		 } else
		 if (i==6) {
			daybkgnd="lightgrey";
		 } else
         // last Sunday Jan-Nov  OR 2nd Sunday in Dec
		 if ((mno<12 && day>month_length-7) || (mno==12 && day>7 && day<15)) { 
		 	daystring="<font color=black><strong>"+day+"</strong></font>";
			daybkgnd="gold";
		 } else {
			daybkgnd="lightgrey";
		 }
		 var tooday=year+" "+(mno-1)+" "+day;
		 if (tooday==nowish)
			daybkgnd="#FFFFFF";
		 
         document.write("<TD ALIGN=center BGCOLOR='"+daybkgnd+"'>"+daystring+"</TD>")
		 day++
     }
     if (i>7)
	 	i=1;
	 document.write("</TR><TR>")
  }
  document.write("</TR></TABLE><BR>")
  // return the first day of the next month
  return i;
}

function bannerbuilder(now) {
	<!-- // when is the NEXT market?
	//var now   = new Date();
	//var now = new Date("dec, 16 2009");
	var dat   = now.getDate();		// todays date
	var mon   = now.getMonth();
	var year  = now.getYear();
	if (year <= 1000)
		year+=1900;					// Firefox, Netscape Commmunicator 4.7 gets it wrong!
	var dow = now.getDay();			// 0=sun, 1=mon
	var dtm = getDays(mon+1, year); // days this month
	var mnm = getMonthName(mon+1);
	var eom = new Date(mnm+","+dtm+" "+year);	
	
	var dem = eom.getDay();			// day of week of end of month
	var k = dtm-dem;				// date of the last sunday
	if (mon==11) {
		while (k>14)
			k-=7;
	}
	var mesg ="";
	if (k==dat)
		mesg=" TODAY, ";
	else
	if (k<dat) {
		// its next month
		mesg="next month, on ";
		mon++;
		if (mon==12){
			mon=0;
			year++;
		}
		dtm= getDays(mon+1, year);
		mnm= getMonthName(mon+1);
		eom = new Date(mnm+","+dtm+" "+year);	
	
		dem = eom.getDay();
		k = dtm-dem;
		if (mon==11) {
			while (k>14)
				k-=7;
		}
	} else {
		dem = k-dat;
		if(dem==1)
			mesg=" TOMORROW, ";
		else
			mesg="in "+dem+" days, on ";
	}
	//document.write(mesg+"Sunday "+k+" "+mnm+" "+year);
	return (mesg+"Sunday "+k+" "+mnm+" "+year);
}

function calendarbuilder(now) {
		//OK, now the calendars.. 
		//var now   = new Date();		
		var dat   = now.getDate();		// todays date
		var mon   = now.getMonth();
		var year  = now.getYear();
		if (year <= 1000)
			year+=1900;					// Firefox, Netscape Commmunicator 4.7 gets it wrong!
		
		var mnm = getMonthName(mon+1);
			now = new Date(mnm+",1 "+year);
		var dow = now.getDay();
		if (dow == 0)
			dow = 7;				 // shift sunday to last day of week
		
		//for (var j=mon;j<mon+12;j++){   // 12 mnths
		for (var j=mon;j<mon+3;j++){  //3 mnths
			var k=(j%12)+1;
			dow = fill_month(year+" "+mon+" "+dat, dow,k,year+(k<=j));
		}	
}

//*end*

