/*
calendar.js - is used to navigate the wccCalendar.php selecting a day will
display all the events for that day.

selecting an event will display the details for the event.

Two arrays will be kept one by event id the next by event date. The event
date will roll up the events for the date selected and display a list.

Three object areas are expected: calDailyList, calEvent, calEventDesc;


*/

/*
	Browser Detection 
*/
popups = new Array();
serviceTimesHttp="/site1/general_info/services.php";


if (document.all) {n=0;ie=1;ns6=0;}//ie
else if (document.getElementById){n=0;ie=0;ns6=1;}//ns6
else if (document.layers) {n=1;ie=0;ns6=0;}//ns4

/*
	 configuration variables
*/
var TABLE_COLOR = "#f5f5f5";
var BORDER_COLOR = "#336699";
var MONTHYEAR_TEXT_COLOR = "#000000";
var WEEKDAYS_BGCOLOR = "#d3d3d3";
var WEEKDAYS_TEXT_COLOR = "#dc143c";
var CURRENT_DATE_BGCOLOR = "#C0C0C0";
var DATE_BGCOLOR = "#ffffff";
var DATE_TEXT_COLOR = "#000000";
var cFilter="ALL";

function getDayAbbrev(day_num){
        switch(day_num){
                case 0: return "Sun";
                case 1: return "Mon";
                case 2: return "Tue";
                case 3: return "Wed";
                case 4: return "Thur";
                case 5: return "Fri";
                case 6: return "Sat";
                default: return false;
        }
}
 
function getDayStr(day_num){
        switch(day_num){
                case 0: return "Sunday";
                case 1: return "Monday";
                case 2: return "Tuesday";
                case 3: return "Wednesday";
                case 4: return "Thursday";
                case 5: return "Friday";
                case 6: return "Saturday";
                default: return false;
        }
}

function getMonthStr(month_num){
        switch(month_num){
                case 0: return "January";
                case 1: return "February";
                case 2: return "March";
                case 3: return "April";
                case 4: return "May";
                case 5: return "June";
                case 6: return "July";
                case 7: return "August";
                case 8: return "September";
                case 9: return "October";
                case 10: return "November";
                case 11: return "December";
                default: return false;
        }
}

function getDaysInMonth(month_num, year_num){
        switch(month_num){
                case 0: return 31;
                case 1: if((year_num % 4) == 0){return 29;}else{return 28;}
                case 2: return 31;
                case 3: return 30;
                case 4: return 31;
                case 5: return 30;
                case 6: return 31;
                case 7: return 31;
                case 8: return 30;
                case 9: return 31;
                case 10: return 30;
                case 11: return 31;
                default: return false;
        }
}

function bubbleWeeksEvents(){
		today = new Date();
    numDay  = today.getDay();
  
	startdate = DateAdd(today, 0 - numDay,0,0);
	eventStr = '<tr>';
	//debug('eventStr = ' + eventStr);
	dateStr='';
	row1Str= ''
	for (x=0;x<7;x++){
		cdate = DateAdd(startdate,x,0,0);
		key   = getDBDateKey(cdate);
		row1Str += '<tr><td align="center"><b>' + getDayStr(x) + '.</b></td>';
		monthNum = key.substring(5,7) ;
		monthStr = getMonthStr(monthNum-1);
		dayNum = key.substring(8);
		if (x==0) {dateRngStr = '<b>' + monthStr + ' ' + dayNum + ' ' ;}
		dateStr = '<td valign="top" align="left" >';
		eStr = '';
		//debug('key=' + key);
		devents = eventHashTable[key];
		if (devents == null){
			eStr +=  key.substring(5);
		}else{
		  eStr +=  '<a href="/site1/assets/calendar/wccWklyCalendar.php" onmouseover="return overlib(getEvents(' +"'"+ key +"'" + ',10) ,BUBBLE, BUBBLETYPE,' + "'pushpin',ADJBUBBLE)" +';" onmouseout="nd();" >';
      eStr +=  monthStr + ' ' + dayNum + '</a>' ;
		}		
		dateStr += eStr + '</td>';
		row1Str += dateStr + '</tr>';
	}
  dateRngStr += ' - ' + monthStr + ' ' + dayNum  + '</b>' ;
  //row1Str += '</tr>';
	eventStr +=  '</tr>';
	htmlStr = dateRngStr + '<br><br><table border ="1">';
	htmlStr += row1Str + eventStr;	
	htmlStr += '</table>';
	
	return htmlStr;
	
}

function scrollWeeksEvents(){
	today = new Date();
    numDay  = today.getDay();
  
	startdate = DateAdd(today, 0 - numDay,0,0);
	eventStr = '';
	row1Str= '<tr><td width="20%" valign="top" align="center">'
	for (x=0;x<7;x++){
		cdate = DateAdd(startdate,x,0,0);
		key   = getDBDateKey(cdate);
		row1Str += '<td>' + getDayAbbrev(x) + '</td>';
		eventStr += '<tr><td width="20%" valign="top" align="left" >';
		//eventStr += '<font size="2">'+ key +'</font>';;
		eventStr +=   key  ;
		eventStr += '</td><td>';
		eStr = '';
		devents = eventHashTable[key];
		if (devents == null){
			eStr += '&nbsp;';
		}else{
			for (i=0;i< devents.events.length;i++){
				eStr += devents.events[i].buildEventAnchor(0);
				
				eStr +='<br>';
				}
		}		
				
		//eventStr += '<font size="2">'+ eStr +'</font>';
		eventStr +=   eStr  ;
		eventStr += '</td></tr>';
	}
	htmlStr = '<table border ="1">';
	htmlStr +=eventStr;	
	htmlStr += '</table>';
				
	return htmlStr;
}

function writeWeeksEvents(){
	today = new Date();
    numDay  = today.getDay();
  
	startdate = DateAdd(today, 1 - numDay,0,0);
	eventStr = '<tr>';
	for (x=0;x<7;x++){
		eventStr += '<td width="10%" valign="top" align="left" >' + getDayStr(x) + '</td>';
		enddate =  DateAdd(startdate,x,0,0);
	}
	eventStr += '</tr><tr>';
	mon = startdate.getMonth() + 1;
	yr = startdate.getYear() + 1900;
	weekDates = '<a href="wccCalendar.php?cf=ALL&mon=' + mon + '&yr=' + yr + '" title="Click for full month veiow.">';
	weekDates += getMonthStr(startdate.getMonth()) + '</a> ' + startdate.getDate() + ' - ' ;
	weekDates += getMonthStr(enddate.getMonth()) + ' ' + enddate.getDate() ;
	eventStr = '<tr><td colspan="7">' + weekDates + '</td></tr>' + eventStr;
	
	/*for (x=0;x<7;x++){
		cdate =  DateAdd(startdate,x,0,0);
		cdateKey = getDateKey(cdate);
		eventStr += '<td width="10%" valign="top" align="left" >' + cdateKey + '</td>';
	}
	eventStr += '</tr><tr>';*/
	for (x=0;x<7;x++){
		cdate = DateAdd(startdate,x,0,0);
		key   = getDBDateKey(cdate);
		eventStr += '<td width="10%" valign="top" align="left" >';
		eStr = '';
		devents = eventHashTable[key];
		if (devents == null){
			eStr += '&nbsp;';
		}else{
			for (i=0;i< devents.events.length;i++){
				eStr += devents.events[i].buildEventAnchor(1);
				eStr +='<br><br>';
			} // end for all events
		}// end else		
				
		eventStr +=   eStr  ;
		eventStr += '</td>';
	} // end for day
	eventStr += '</tr>';
	
	htmlStr = '<table width="85%" align="center" border="1">';
	htmlStr +=eventStr;	
	htmlStr += '<tr><td valign="top">Event Detail:<br> Click on an<br> event above<br> to display detail</td>';
	htmlStr += '<td colspan="6"><div id="calEventDetail">&nbsp;</div></td></tr>';
	htmlStr += '</table>';
				
	document.writeln(htmlStr);
}

function writeCalendar(calMonthNum,yearNum,filter){
	htmlStr = '';
	htmlStr = showCalendar(calMonthNum,yearNum,filter);
	
	document.writeln('<DIV ID="wccCalendar">');
	document.writeln(htmlStr);
	document.writeln("</DIV>");
	
	document.close();
	return true;
	
}
function replaceCalendar(calMonthNum,yearNum,filter){
	location='wccCalendar.php?cf=' + filter + '&mon=' + calMonthNum + '&yr=' + yearNum;
	return true;
}
	
	
function showCalendar(calMonthNum, yearNum,filter){
			
	// date functions work with a zero based array for 
	// processing so monthNum = 0 = January.
	// same is true for new Date(yy,mm,dd) constructor.
	
	monthNum = calMonthNum -1;
	if (yearNum < 49) { yearNum += 2000; }
	var startDate = new Date(yearNum, monthNum, 1);
	var monthStr = getMonthStr(monthNum);
	
	var startNum = startDate.getDay();
	var daysInMonth = getDaysInMonth(monthNum, yearNum);
// Setup for previous month scrolling.	
	pMonthNum = calMonthNum - 1;
	if(calMonthNum == 1){
	   	pYearNum = yearNum - 1;
		pMonthNum = 12;
	} else
		pYearNum = yearNum;
	pMonthStr = getMonthStr((pMonthNum-1));
// setup for next month scrolling.	
	nMonthNum = calMonthNum + 1;
	if (calMonthNum == 12){
		nYearNum = yearNum + 1;
		nMonthNum = 1;
	} else
		nYearNum = yearNum;
		
	nMonthStr = getMonthStr(calMonthNum%12);		
	
	var htmlStr = '';
	 htmlStr += '<table width = "100%" border="1" cellspacing="0" cellpadding="0" bordercolorlight="'+BORDER_COLOR+'" bordercolordark="'+BORDER_COLOR+'">';
	htmlStr += '<tr><td colspan="2">';
//	htmlStr += '<a href="" LANGUAGE="Javascript" onclick="replaceCalendar(pMonthNum,pYearNum,filter);return false;"> <b>&lt;&lt;</b>' + pMonthStr + '</a></td>';
  htmlStr += '<a href="wccCalendar.php?cf=' + filter + '&mon=' + pMonthNum + '&yr=' + pYearNum +'"> <b>&lt;&lt;</b>' + pMonthStr + '</a></td>';
	htmlStr +=  '<td align="center" colspan="4"><h1>' + monthStr + ' ' + yearNum + '</h1></td>';
	htmlStr += '<td align="right" colspan="2">';
//	htmlStr += '<a href="" LANGUAGE="Javascript" onclick="replaceCalendar(nMonthNum,nYearNum,filter);return false;">' + nMonthStr + '<b>&gt;&gt;</b></a></td>';
  htmlStr += '<a href="wccCalendar.php?cf=' + filter + '&mon=' + nMonthNum + '&yr=' + nYearNum +'"> ' + nMonthStr + ' <b>&gt;&gt;</b></a></td>';
		htmlStr += '</td></tr> ';
	//htmlStr += '</table>';
	//htmlStr += '<br><br>';
	/* htmlStr += '<table  width="100%" border="0" cellspacing="0" cellpadding="1">';
	htmlStr +=  '<tr>';
	htmlStr +=  '<td colspan="3"><h1>' + monthStr + ' ' + yearNum + '</h1></td>';
	htmlStr += '</tr></table>';
	
	 htmlStr += '<table border="1" bordercolor="' + TABLE_COLOR + '" cellspacing="0" cellpadding="1">';
	 */
	htmlStr += '<tr height="40">';
	htmlStr += '<td bgcolor="' + TABLE_COLOR + '" width="96px" height="40" align="left">';
	htmlStr += '<b>Sun.</b></td>';
	htmlStr += '<td bgcolor="' + TABLE_COLOR + '" width="96px" height="40" align="left">';
	htmlStr += '<b>Mon.</b></td>';
	htmlStr += '<td  bgcolor="' + TABLE_COLOR + '" width="96px" height="40" align="left">';
	htmlStr += '<b>Tue.</b></td>';
	htmlStr += '<td bgcolor="' + TABLE_COLOR + '" width="96px" height="40" align="left">';
	htmlStr += '<b>Wed.</b></td>';
	htmlStr += '<td bgcolor="' + TABLE_COLOR + '" width="96px" height="40" align="left">';
	htmlStr += '<b>Thur.</b></td>';
	htmlStr += '<td bgcolor="' + TABLE_COLOR + '" width="96px" height="40" align="left">';
	htmlStr += '<b>Fri.</b></td>';
	htmlStr += '<td  bgcolor="' + TABLE_COLOR + '" width="96px" height="40" align="left">';
	htmlStr += '<b>Sat.</b></td>';
 htmlStr += '<td  bgcolor="' + TABLE_COLOR + '" width="102px" height="40" valign="top" align="left" >';
 htmlStr += '<b>Event Detail&nbsp;&nbsp;&nbsp;&nbsp;</b></td>';
	
	htmlStr += '</tr><tr>';
	//insert the blank boxes before day one on row 1.
	// currow = number of week in the month we are processing.
	currow=1;
	for (x=0; x < startNum; x++){
	        htmlStr +='<td width="96px" height="50" bgcolor="'+TABLE_COLOR+'" valign="top"></td>';
	}
	if (calMonthNum < 10){calMonthNum = '0' + calMonthNum;}
	//insert the days
	for (x=1; x <= daysInMonth; x++){
		if (x<10 ) {dd='0' + x;} else {dd=x;}
			calKey = yearNum+'-'+calMonthNum+'-'+dd;
	        eventStr = '<td border="1" width="96px" height="50" bgcolor="'+DATE_BGCOLOR+'" valign="top" align="left" >';
			eventStr += x +'<br>';
			eventStr += listDaysEvents(calKey) ;
			//eventStr += 'calkey=' + calKey;
		  eventStr += '</td>';
			htmlStr +=eventStr;		
			
	        if (((x+startNum) % 7 == 0) && (x != daysInMonth)){
	        	if(currow == 1){
	        		htmlStr += '<td valign="top" rowspan="5"  ><div id="calEventDetail" style="z-index:100;">&nbsp;</div></td>';
	        	}
	        	currow++;
	         htmlStr +="</tr><tr>";
	     }
	}
	//insert the blank boxes after the last day of the month.
	if ((daysInMonth+startNum) % 7 != 0){
	     if (daysInMonth+startNum+1 > 35){
	         var boxes = 42;
	     }else{
	      var boxes = 35;
	     }
	     for (x=daysInMonth+startNum; x < boxes; x++){
	         htmlStr +='<td width="96px" height="50" bgcolor="'+TABLE_COLOR+'" valign="top"></td>';
	     }
	}
	htmlStr +='</tr></table>';
	 htmlStr += '<table width = "100%" border="0" cellspacing="0" cellpadding="0" bordercolorlight="'+BORDER_COLOR+'" bordercolordark="'+BORDER_COLOR+'">';
	htmlStr += '<tr><td>';
	  htmlStr += '<a href="wccCalendar.php?cf=' + filter + '&mon=' + pMonthNum + '&yr=' + pYearNum +'"> <b>&lt;&lt;</b>' + pMonthStr + '</a></td>';

	// htmlStr += '<a href="" LANGUAGE="Javascript" onclick="replaceCalendar(pMonthNum,pYearNum,filter);return false;"> <b>&lt;&lt;</b>' + pMonthStr + '</a></td>';
	htmlStr += '<td align="right">';
//	htmlStr += '<a href="" LANGUAGE="Javascript" onclick="replaceCalendar(nMonthNum,nYearNum,filter);return false;">' + nMonthStr + '<b>&gt;&gt;</b></a></td>';
  htmlStr += '<a href="wccCalendar.php?cf=' + filter + '&mon=' + nMonthNum + '&yr=' + nYearNum +'"> ' + nMonthStr + ' <b>&gt;&gt;</b></a></td>';

	htmlStr += '</td></tr> </table>';

	return htmlStr;
}