function setToday() {
	var now   = new Date();
	var day   = now.getDate();
	var month = now.getMonth();
	var year  = now.getYear();
	if (year < 2000)    // Y2K Fix, Isaac Powell
	year = year + 1900; // http://onyx.idbsu.edu/~ipowell
	this.focusDay = day;
	document.calControl.month.selectedIndex = month;
	document.calControl.year.value = year;
	displayCalendar(month, year);
}
function isFourDigitYear(year) {
	if (year.length != 4) {
	alert ("Sorry, the year must be four-digits in length.");
	document.calControl.year.select();
	document.calControl.year.focus();
	} else { return true; }
}
function selectDate() {
	var year  = document.calControl.year.value;
	if (isFourDigitYear(year)) {
	var day   = 0;
	var month = document.calControl.month.selectedIndex;
	displayCalendar(month, year);
		}
}

function messagebox_open(message) {
	
   document.getElementById('sitebanner').setAttribute('style', 'z-index: 799');
   goojax_msg_save();
   document.getElementById('imageboxspan').innerHTML = '<table border="0" border="0" cellpadding="0" cellspacing="0"><tr><td colspan="2"><div style="color:#000; background:#fff;">'+message+'</div></td></tr><td nowrap align="right" class="bodytext-white"><h1><a href="javascript:goojax_imagebox_close()" style="color:#000;">Close</a></h1></td></tr></table>';
      goojax_imagebox_open('');  
	  
	  //<img id="img1" src="/googlobal/site_imagedis.php?img=lg_'+imglist+'&w='+w+'" width="'+w+'" onload="goojax_imagebox_open()"/>
}

function setPreviousYear() {
	var year  = document.calControl.year.value;
	if (isFourDigitYear(year)) {
	var day   = 0;
	var month = document.calControl.month.selectedIndex;
	year--;
	document.calControl.year.value = year;
	displayCalendar(month, year);
	   }
}
function setPreviousMonth() {
	var year  = document.calControl.year.value;
	if (isFourDigitYear(year)) {
	var day   = 0;
	var month = document.calControl.month.selectedIndex;
	if (month == 0) {
	month = 11;
	if (year > 1000) {
	year--;
	document.calControl.year.value = year;
	}
	} else { month--; }
	document.calControl.month.selectedIndex = month;
	displayCalendar(month, year);
	   }
}
function setNextMonth() {
	var year  = document.calControl.year.value;
	if (isFourDigitYear(year)) {
	var day   = 0;
	var month = document.calControl.month.selectedIndex;
	if (month == 11) {
	month = 0;
	year++;
	document.calControl.year.value = year;
	} else { month++; }
	document.calControl.month.selectedIndex = month;
	displayCalendar(month, year);
	   }
}
function setNextYear() {
	var year = document.calControl.year.value;
	if (isFourDigitYear(year)) {
	var day = 0;
	var month = document.calControl.month.selectedIndex;
	year++;
	document.calControl.year.value = year;
	displayCalendar(month, year);
	   }
}
function displayCalendar_sm(month, year) {       
	var today = new Date ();
	var todaym = today.getMonth()+1;
	var todayd = today.getDate();
	var todayy = today.getFullYear();
	var daymax = '';
	var dayset = document.getElementById(document.getElementById('goo_datalistvar').value+'_dayset').value;
	var displaytype = document.getElementById('goo_displaytype').value;
	month = parseInt(month);
	month = month-1;
	year = parseInt(year);
	var i = 0;
	var calPage = document.getElementById('calPage');
	var days = getDaysInMonth(month+1,year);
	var firstOfMonth = new Date (year, month, 1);
	var startingPos = firstOfMonth.getDay();
	var weekar=setWeekArray((month+1),dayset,year);
	days += startingPos;
	caldata = "<div class='week'>S</div><div class='week'>M</div><div class='week'>T</div><div class='week'>W</div><div class='week'>T</div><div class='week'>F</div><div class='week'>S</div>";
	for (i = 0; i < startingPos; i++) {
	//if ( i%7 == 0 ) caldata += "\n ";
	caldata += "<div class='fill'></div>";
	}
	for (i = startingPos; i < days; i++) {
	//if ( i%7 == 0 ) caldata += "\n ";
	caldatad = '';
	if (i-startingPos+1 < 10)
	caldatad += "0";
	caldatad += i-startingPos+1;
	day = i-startingPos+1;
	var chkdate = (month+1)+'/'+day+'/'+year;
	if ((displaytype==1&&day==dayset)||(displaytype==2&&checkarray(weekar,chkdate)!=-1)) {
	   caldata += "<div class='dayc'><a href='javascript:displayCalendarDay("+day+")'>"+caldatad+"</a></div>";
	} else if((month+1)==todaym&&year==todayy&&day==todayd) {
	   caldata += "<div class='today'><a href='javascript:displayCalendarDay("+day+")'>"+caldatad+"</a></div>";
	} else {
	   caldata += "<div class='day'><a href='javascript:displayCalendarDay("+day+")'>"+caldatad+"</a></div>";
	}
	}
	if (days<=35) { daymax=35; } else if (days>35) { daymax=42; }
	for (i=days; i<daymax; i++)  {
	//if ( i%7 == 0 ) caldata += "\n ";
	caldata += "<div class='fill'></div>";
	}
	calPage.innerHTML=caldata;
	
	//calControl.Go.focus();
}


function displayCalendar_lg(month,year,dataset) {      
	var today = new Date ();
	var todaym = today.getMonth()+1;
	var todayd = today.getDate();
	var todayy = today.getFullYear();
	month = parseInt(month);
	month = month-1;
	year = parseInt(year);
	var i = 0;
	var calPage = document.getElementById('calPage_lg');
	var days = getDaysInMonth(month+1,year);
	var firstOfMonth = new Date (year, month, 1);
	var startingPos = firstOfMonth.getDay();
	days += startingPos;
	var boxwidth = document.getElementById('goo_lg_cal_wrapper').offsetWidth;
	var cellwidth = Math.floor(boxwidth/7-2);
	caldata = "<div class='week' style='width:"+cellwidth+"px'>Sun</div><div class='week' style='width:"+cellwidth+"px'>Mon</div><div class='week' style='width:"+cellwidth+"px'>Tue</div><div class='week' style='width:"+cellwidth+"px'>Wed</div><div class='week' style='width:"+cellwidth+"px'>Thr</div><div class='week' style='width:"+cellwidth+"px'>Fri</div><div class='week' style='width:"+cellwidth+"px'>Sat</div>";
	for (i = 0; i < startingPos; i++) {
	//if ( i%7 == 0 ) caldata += "\n ";
	caldata += "<div class='fill' style='width:"+cellwidth+"px'></div>";
	}
	for (i = startingPos; i < days; i++) {
	//if ( i%7 == 0 ) caldata += "\n ";
	caldatad = '';
	if (i-startingPos+1 < 10)
	caldatad += "0";
	caldatad += i-startingPos+1;
	day = i-startingPos+1;
	var entries='';
	var moreentries = '';
	if (dataset[day] ) entries=dataset[day];
	var entriesar = [];
	entriesar = entries.split('<div class="entrybox">');
	if (entriesar.length > 5) //only display 4 entries, with a 'more' link. first entry is garbage.
	{
		entries = '';
		for (var j=1; j < 5; j++) {
			entries += '<div class="entrybox">' + entriesar[j];
		//	console.info('<div class="entrybox">' + entriesar[j]);
		}
		for (var j=1; j < entriesar.length; j++)
		{
			entriesar[j] = unescape(entriesar[j]);
			entriesar[j] = entriesar[j].replace(/<span class="infopop">.*<\/span>/, '');
			entriesar[j] = entriesar[j].replace(/<a href=".*<\/a>/, '');
			entriesar[j] = entriesar[j].replace('infopopparent ', 'moreinfo ');
			moreentries += '<div class="entrybox">' + entriesar[j];
		}
		moreentries = moreentries.replace(/<h2>/g,'<div>');
		moreentries = moreentries.replace(/<\/h2>/g,'</div>');
		moreentries = moreentries.replace(/'/g,'\\\'');
		
		entries += '<div class="entrybox"><h2><a href="javascript:messagebox_open(\''+escape(moreentries)+'\')">Show All</a></h2></div>';
	}
	
	if((month+1)==todaym&&year==todayy&&day==todayd) {
	   caldata += "<div class='today infopopcontainer' style='width:"+cellwidth+"px'><h1><a href='javascript:displayCalendarDay("+day+")'>"+caldatad+"</a></h1>"+entries+"</div>";
	} else {
	   caldata += "<div class='day infopopcontainer' style='width:"+cellwidth+"px'><h1><a href='javascript:displayCalendarDay("+day+")'>"+caldatad+"</a></h1>"+entries+"</div>";
	}
	}
	var skip='';
	for (i=days; i<42; i++)  {
	if (i==35) skip=1;
	if (!skip) {
	   caldata += "<div class='fill' style='width:"+cellwidth+"px'></div>";
	}
	}
	calPage.innerHTML=caldata;
	//calControl.Go.focus();
}
function displayCalendar_event(month,dayset,year,span) {       
	var month_ar = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
	var today = new Date ();
	var todaym = today.getMonth()+1;
	var todayd = today.getDate();
	var todayy = today.getFullYear();
	month = parseInt(month);
	month = month-1;
	year = parseInt(year);
	dayset = parseInt(dayset);
	var i = 0;
	var calPage = document.getElementById(span);
	var days = getDaysInMonth(month+1,year);
	var firstOfMonth = new Date (year, month, 1);
	var startingPos = firstOfMonth.getDay();
	var weekar=setWeekArray((month+1),dayset,year);
	days += startingPos;
	caldata = "<div class='week'>S</div><div class='week'>M</div><div class='week'>T</div><div class='week'>W</div><div class='week'>T</div><div class='week'>F</div><div class='week'>S</div>";
	for (i = 0; i < startingPos; i++) {
	//if ( i%7 == 0 ) caldata += "\n ";
	caldata += "<div class='fill'></div>";
	}
	for (i = startingPos; i < days; i++) {
	//if ( i%7 == 0 ) caldata += "\n ";
	caldatad = '';
	if (i-startingPos+1 < 10)
	caldatad += "0";
	caldatad += i-startingPos+1;
	day = i-startingPos+1;
	var chkdate = (month+1)+'/'+day+'/'+year;
	if (day==dayset) {
	   caldata += "<a href='javascript:displayCalendarDay_event("+(month+1)+","+day+","+year+")'><div class='dayc'>"+caldatad+"</div></a>";
	} else {
	   caldata += "<a href='javascript:displayCalendarDay_event("+(month+1)+","+day+","+year+")'><div class='day'>"+caldatad+"</div></a>";
	}
	}
	for (i=days; i<42; i++)  {
	//if ( i%7 == 0 ) caldata += "\n ";
	caldata += "<div class='fill'></div>";
	}

	return "<div id='goo_sm_cal'><h1>"+month_ar[month]+" "+year+"</h1>"+caldata+"</div>";
	//calControl.Go.focus();
}
function getDaysInMonth(month,year)  {
	var days;
	if (month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12)  days=31;
	else if (month==4 || month==6 || month==9 || month==11) days=30;
	else if (month==2)  {
	if (isLeapYear(year)) { days=29; }
	else { days=28; }
	}
	return (days);
	}
	function isLeapYear (Year) {
	if (((Year % 4)==0) && ((Year % 100)!=0) || ((Year % 400)==0)) {
	return (true);
	} else { return (false); }
}
function displayCalendarDay(day) {
   document.getElementById(document.getElementById('goo_datalistvar').value+'_dayset').value=day;
   var displaytype=document.getElementById('goo_displaytype').value;
   if (displaytype==0||displaytype==3) displaytype=1;
   displayPagesList('',displaytype);
}
function displayCalendarDay_event(mon,day,year) {  
   var pageid = document.getElementById('page_id').value;
   var calurl = document.getElementById('calurl').value;
   goo_createCookie('goo_cal_month_'+pageid,mon);
   goo_createCookie('goo_cal_year_'+pageid,year);
   goo_createCookie('goo_cal_day_'+pageid,day);
   goo_createCookie('goo_cal_view_'+pageid,1);
   goo_eraseCookie('goo_cal_filter_str_'+pageid);
   goo_eraseCookie('goo_cal_filter_id_'+pageid);
   window.location = calurl;
}
function getTheDay(aText) {
	myDays=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"];
	myDate=new Date(eval('"'+aText+'"'));
	return myDays[myDate.getDay()];
}
function setWeekArray(mon,day,year) {
	dates=mon+'/'+day+'/'+year;
    myDate=new Date(eval('"'+dates+'"'));
	wday=myDate.getDay();
	fday=day-wday;
	var weekar=new Array();
	if (fday<1) {
	   mon=mon-1;
	   if (mon==0) {
	      mon=12;
		  year=year-1;
	   }
	   fday=getDaysInMonth(mon,year)+fday;	
	}
	mdays=getDaysInMonth(mon,year);
	for (i=0;i<=6;i++) {
	   weekar.push(mon+'/'+fday+'/'+year);
	   if (fday==mdays) { 
	      fday=0;
		  mon=parseFloat(mon)+1;
		  if (mon==13) {
		     mon=1;
			 year=parseFloat(year)+1;
		  }
	   }
	   fday=fday+1;
	}
	return weekar;
}
function checkarray(myArray,chk) {
  return(myArray.join().indexOf(chk));
}

function displayWeek(monthset,yearset,dayset,superWeekArray)
{
	// <div id="goo_week_cal_wrapper"><div id="goo_week_cal"><span id="calPage_week"></span></div></div>
	var calPage = document.getElementById('calPage_week');
	
	var caldata = '<div id="weekview_grid_wrapper"><table id="weekview_grid" valign="top" height="100%" border="0" cellspacing="0" cellpadding="0" >'; // fill this in!
	caldata += weekviewheader();
	
	var startdayindex = 13;
	var starttimeindex = 18;
	var eventstring = '';
	var firstrow = -1;
	var lastrow = -1;
	var noevents = true;
	var alldayevents = false;
	
	for (var time = 0; time <= 24; time++)
	{
		
		for (var day=0; day < 7; day++)
		{	
			if (superWeekArray[time]!=undefined)
			{
				if(superWeekArray[time][day]!=undefined)
				{
					if (firstrow == -1) firstrow = time;
					if (time!=24) lastrow = time;
					noevents = false;
					if(time==24) {
						alldayevents = true;
					}
				}
			}
		}
		
		
	}
	
	if (noevents){
		firstrow = 8;
		lastrow = 17;
	}
	
	if(alldayevents) {
		var time = 24;
		eventstring+='<tr class="weekviewweek ">';
		eventstring+='<td class="weekviewtime"><p>All Day</p></td>';
		for (var day=0; day < 7; day++)
		{
			if(superWeekArray[time][day]!=undefined)	
				{
					eventstring+='<td class="weekviewevent"';
					eventstring+='>'+weekviewdisplayevent(superWeekArray[time][day])+'</td>';
				}
			else eventstring+='<td class="weekviewblank"></td>';	
		}
		eventstring+='</tr>';
		caldata += eventstring;
		eventstring = '';	
	}
	
	for (var time = 0; time < 24; time++)
	{
		eventstring+='<tr class="weekviewweek ">';
		eventstring+='<td class="weekviewtime"><p>'+weekdisplaytime(parseInt(time))+'</p></td>';
		for (var day=0; day < 7; day++)
		{	
			if (superWeekArray[time]!=undefined)
			{
				if(superWeekArray[time][day]!=undefined)
				{
					eventstring+='<td class="weekviewevent"';
					eventstring+='>'+weekviewdisplayevent(superWeekArray[time][day])+'</td>';
					
				}
			else eventstring+='<td class="weekviewblank"></td>';
		}
			else eventstring+='<td class="weekviewblank"></td>';
		}
		eventstring+='</tr>';
		
		if((time >= firstrow && time <= lastrow))caldata += eventstring;
		eventstring = '';
	}
	caldata+='</div></div>';	
	calPage.innerHTML=caldata;
	jqueryinfopop(); // load infopops.

}

function jqueryinfopop()
{
// jquery infopop:

$(".infopopparent").mouseenter(function () {
	var infopop = $(this).parent().find('div.infopop');
    infopop.css("display", "block");
	var theoverflow = parseInt(infopop.offset().left+infopop.width())-$(window).width();
	if (theoverflow > 0 ) {
		theoverflow+='px';
		infopop.animate({"left":'-=25px' }, 'fast');
	}
});

$(".infopopparent").mouseleave(function () {	
	$(this).parent().find('div.infopop').css("display", "none");
	$(this).parent().find('.infopop').css("left", "");
});

$(".infopop").mouseenter(function () {
	$(this).css("display", "block");
});

$(".infopop").mouseleave(function () {
	$(this).css("display", "none");
	$(this).css("left", "");
});

}

function jqueryinfopopmonth()
{
// jquery infopop:
$(".infopopparent").mouseenter(function () {
	var infopop = $(this).parent().find('.infopop');
	infopop.html(unescape(infopop.html()));
	infopop.show();
	var theoverflow = parseInt(infopop.offset().left+infopop.width())-$(window).width();
	if (theoverflow > 0 ) {
		infopop.animate({"left":'-='+(theoverflow+5) });
		}

});

$(".infopopparent").mouseleave(function () {	
	$(this).parent().find('.infopop').css("display", "none");
	$(this).parent().find('.infopop').css("left", "");
});

$(".infopop").mouseenter(function () {
	$(this).css("display", "block");
});

$(".infopop").mouseleave(function () {
	$(this).css("display", "none");
	$(this).css("left", "");
});

}

function weekviewdisplayevent(theevents)
{
	var starttimeindex = 18;
	var endtimeindex = 19;
	var string = '';
	var evar;
	var theurl;
	string +='<div class="weekviewdaysevents">';
	for (var i=0; i < theevents.length; i++)
	{
		string +='<div class="weekviewoneevent">';
		string += '<p class="weekviewtitle weekviewstarttime">'+weekviewformattime(theevents[i])+'</p>';
		string += '<div><a class="infopopparent" href="/calendar/'+theevents[i][10]+'/'+theevents[i][0]+'/">'+theevents[i][2]+'</a><div class="infopopcontainer"><div class="infopop weekviewinfopop" ><a  href="/calendar/'+theevents[i][10]+'/'+theevents[i][0]+'/" style="color:#000;">'+theevents[i][29]+'</a></div></div>';		
		string +='</div></div>';		
	}
	string +='</div>';
	return string;
}

function weekviewformattime(e)
{
	var starttimeindex = 18;
	var endtimeindex = 19;
	var alldayindex = 20;
	
	if (e[alldayindex]==1) return '';
	
	if (e[endtimeindex]!='' && e[starttimeindex] != e[endtimeindex]) return e[starttimeindex]+' - '+e[endtimeindex];

	
	return e[starttimeindex];
}


function weekdisplaytime(time)
{
	if (time==0) return "12a";
	if (time == 12) return "12p";
	if (time > 12) return time-12;
	else return time;
}

function weekviewheader()
{
var string ='<tr id="weekview_header"><td class="weekviewheader weekviewheadertime">Time</td><td class="weekviewheader">Sun</td><td class="weekviewheader">Mon</td><td class="weekviewheader">Tue</td><td class="weekviewheader">Wed</td><td class="weekviewheader">Thu</td><td class="weekviewheader">Fri</td><td class="weekviewheader">Sat</td></tr>';
var yearset = document.getElementById(document.getElementById('goo_datalistvar').value+'_yearset').value;
var monthset = document.getElementById(document.getElementById('goo_datalistvar').value+'_monthset').value;
var dayset = document.getElementById(document.getElementById('goo_datalistvar').value+'_dayset').value;
var mydate=new Date(yearset,monthset-1,dayset);	
mydate.setDate(mydate.getDate()-(mydate.getDay())); // go back to Sunday.
string += '<tr><td class="weekviewheadertime"></td>';
for (var i=0; i < 7; i++)
{
	string += '<td class="weekviewheaderdate">'+(mydate.getMonth()+1)+'.'+mydate.getDate()+'.'+mydate.getFullYear()+'</td>';
	mydate.setDate(mydate.getDate()+1);
}
string +='</tr>';
return string;
}


function superWeekArrayPush(superWeekArray, theevent)
{


	var eventstartday = 13;
	var eventstartmonth = 12;
	var eventstartyear = 14;
	var eventstarttime = 18;
	var alldayindex = 20;
	var timeindex = 0;
	
	var tempdate = new Date();
	tempdate.setFullYear(theevent[eventstartyear],theevent[eventstartmonth]-1,theevent[eventstartday]);
	var dayindex = tempdate.getDay();
		

	var temp = theevent[eventstarttime].split(":"); 
	timeindex = temp[0];
	if (theevent[eventstarttime].match(/am/) && parseInt(timeindex)==12) timeindex = parseInt(timeindex)-12; //correct for a.m.
	if (theevent[eventstarttime].match(/pm/) && parseInt(timeindex)!=12) timeindex = parseInt(timeindex)+12; //correct for p.m.
	if (theevent[alldayindex]==1 || !theevent[eventstarttime]) {
			//alert('all day event');
			theevent[alldayindex]=1;
	timeindex=24;
	}
	
	if (!superWeekArray[timeindex])superWeekArray[timeindex]=Array();
	
	if (!superWeekArray[timeindex][dayindex])superWeekArray[timeindex][dayindex]=Array();
	
	superWeekArray[timeindex][dayindex].push(theevent);
	
	return superWeekArray;
}

