/*for use on pages using CalendarPopup.js -- the following code disables all weekends and holidays for GCC*/

var now = new Date();
var cal = new CalendarPopup("popupcalendar",-150,0);
cal.addDisabledDates(null,formatDate(now,"yyyy-MM-dd"));
function takeYear(theDate) {
	x = theDate.getYear();
	var y = x % 100;
	y += (y < 38) ? 2000 : 1900;
	return y;
}
var myDate = new Date();
year = takeYear(myDate);
nextyear = year + 1;
lastyear = year - 1;
myDate.setYear(nextyear);
myDate = formatDate(myDate, "MM/dd/yyyy");
/*disabling all dates over a year away*/
	cal.addDisabledDates(myDate,null);
/*disabling Saturday/Sunday*/
	cal.setDisabledWeekDays(0,6);
/*disabling Winter Break, 12/24-1/1 */
	cal.addDisabledDates("12/24/"+lastyear,"1/1/"+year);
	cal.addDisabledDates("12/24/"+year,"1/1/"+nextyear);
/*disabling Thanksgiving; 4=Thursday, 10=November*/
	nTargetday=4
	nMonth=10
	/* 4th Thursday minus 1 = (3) */
	nEarliestDate = 1 + 7 * (3)
	d = new Date(year,nMonth,nEarliestDate);
	nWeekday = d.getDay();
	if( nTargetday==nWeekday ) nOffset = 0;
	else
	{
	  if( nTargetday<nWeekday ) nOffset = nTargetday + (7 - nWeekday);
	  else nOffset = (nTargetday + (7 - nWeekday)) - 7;
	}
	tHolidayDate = new Date(year,nMonth,nEarliestDate + nOffset);
	myDate = formatDate(tHolidayDate, "MM/dd/yyyy");
	dayafter = tHolidayDate;
	dayafterd = tHolidayDate.getDate();
	dayafterd = dayafterd+1;
	dayafter.setDate(dayafterd);
	dayafter = formatDate(dayafter, "MM/dd/yyyy");
	cal.addDisabledDates(myDate,dayafter);
	/*following year*/
	d = new Date(nextyear,nMonth,nEarliestDate);
	nWeekday = d.getDay();
	if( nTargetday==nWeekday ) nOffset = 0;
	else
	{
	  if( nTargetday<nWeekday ) nOffset = nTargetday + (7 - nWeekday);
	  else nOffset = (nTargetday + (7 - nWeekday)) - 7;
	}
	tHolidayDate = new Date(nextyear,nMonth,nEarliestDate + nOffset);
	myDate = formatDate(tHolidayDate, "MM/dd/yyyy");
	dayafter = tHolidayDate;
	dayafterd = tHolidayDate.getDate();
	dayafterd = dayafterd+1;
	dayafter.setDate(dayafterd);
	dayafter = formatDate(dayafter, "MM/dd/yyyy");
	cal.addDisabledDates(myDate,dayafter);
/*disabling MLK day - 3rd Monday of January*; 1=Monday, 0=January */
	nTargetday=1
	nMonth=0
	/* 3rd Monday minus 1 = (2) */
	nEarliestDate = 1 + 7 * (2)
	d = new Date(year,nMonth,nEarliestDate);
	nWeekday = d.getDay();
	if( nTargetday==nWeekday ) nOffset = 0;
	else
	{
	  if( nTargetday<nWeekday ) nOffset = nTargetday + (7 - nWeekday);
	  else nOffset = (nTargetday + (7 - nWeekday)) - 7;
	}
	tHolidayDate = new Date(year,nMonth,nEarliestDate + nOffset);
	myDate = formatDate(tHolidayDate, "MM/dd/yyyy");
	cal.addDisabledDates(myDate);
	/*following year*/
	d = new Date(nextyear,nMonth,nEarliestDate);
	nWeekday = d.getDay();
	if( nTargetday==nWeekday ) nOffset = 0;
	else
	{
	  if( nTargetday<nWeekday ) nOffset = nTargetday + (7 - nWeekday);
	  else nOffset = (nTargetday + (7 - nWeekday)) - 7;
	}
	tHolidayDate = new Date(nextyear,nMonth,nEarliestDate + nOffset);
	myDate = formatDate(tHolidayDate, "MM/dd/yyyy");
	cal.addDisabledDates(myDate);
/*disabling Presidents Day - 3rd Monday of February*; 1=Monday, 1=February */
	nTargetday=1
	nMonth=1
	/* 3rd Monday minus 1 = (2) */
	nEarliestDate = 1 + 7 * (2)
	d = new Date(year,nMonth,nEarliestDate);
	nWeekday = d.getDay();
	if( nTargetday==nWeekday ) nOffset = 0;
	else
	{
	  if( nTargetday<nWeekday ) nOffset = nTargetday + (7 - nWeekday);
	  else nOffset = (nTargetday + (7 - nWeekday)) - 7;
	}
	tHolidayDate = new Date(year,nMonth,nEarliestDate + nOffset);
	myDate = formatDate(tHolidayDate, "MM/dd/yyyy");
	cal.addDisabledDates(myDate);
	/*following year*/
	d = new Date(nextyear,nMonth,nEarliestDate);
	nWeekday = d.getDay();
	if( nTargetday==nWeekday ) nOffset = 0;
	else
	{
	  if( nTargetday<nWeekday ) nOffset = nTargetday + (7 - nWeekday);
	  else nOffset = (nTargetday + (7 - nWeekday)) - 7;
	}
	tHolidayDate = new Date(nextyear,nMonth,nEarliestDate + nOffset);
	myDate = formatDate(tHolidayDate, "MM/dd/yyyy");
	cal.addDisabledDates(myDate);
/* Disabling employees' spring break - Thursday-Friday after 2nd Monday of March*/
	nTargetday=1
	nMonth=2
	/* 2nd Monday minus 1 = (1) plus 3 for Thursday */
	nEarliestDate = 1 + 7 * (1) + 3
	d = new Date(year,nMonth,nEarliestDate);
	nWeekday = d.getDay();
	nTargetday=4
	if( nTargetday==nWeekday ) nOffset = 0;
	else
	{
	  if( nTargetday<nWeekday ) nOffset = nTargetday + (7 - nWeekday);
	  else nOffset = (nTargetday + (7 - nWeekday)) - 7;
	}
	tHolidayDate = new Date(year,nMonth,nEarliestDate + nOffset);
	tHolidayDate2 = new Date(year,nMonth,nEarliestDate + nOffset + 1);
	myDate = formatDate(tHolidayDate, "MM/dd/yyyy");
	dayafter = formatDate(tHolidayDate2, "MM/dd/yyyy");
	cal.addDisabledDates(myDate,dayafter);
	/*following year*/
	d = new Date(nextyear,nMonth,nEarliestDate);
	nWeekday = d.getDay();
	if( nTargetday==nWeekday ) nOffset = 0;
	else
	{
	  if( nTargetday<nWeekday ) nOffset = nTargetday + (7 - nWeekday);
	  else nOffset = (nTargetday + (7 - nWeekday)) - 7;
	}
	tHolidayDate = new Date(nextyear,nMonth,nEarliestDate + nOffset);
	myDate = formatDate(tHolidayDate, "MM/dd/yyyy");
	dayafter = tHolidayDate;
	dayafterd = tHolidayDate.getDate();
	dayafterd = dayafterd+1;
	dayafter.setDate(dayafterd);
	dayafter = formatDate(dayafter, "MM/dd/yyyy");
	cal.addDisabledDates(myDate,dayafter);
/* disabling Memorial Day - Last Monday in May */
	nTargetday=1
	nMonth=4	
	/* Last Monday (5 or 4) minus 1 equals either (4) or (3) depending on year */
	ld = new Date("May 31, "+year);
	ldd = ld.getDay();
	if( ld==(1|2|3) )
	nEarliestDate = 1 + 7 * (4);
	else nEarliestDate = 1 + 7 * (3);
	d = new Date(year,nMonth,nEarliestDate);
	nWeekday = d.getDay();
	if( nTargetday==nWeekday ) nOffset = 0;
	else
	{
	  if( nTargetday<nWeekday ) nOffset = nTargetday + (7 - nWeekday);
	  else nOffset = (nTargetday + (7 - nWeekday)) - 7;
	}
	tHolidayDate = new Date(year,nMonth,nEarliestDate + nOffset);
	myDate = formatDate(tHolidayDate, "MM/dd/yyyy");
	dayafter = tHolidayDate;
	dayafterd = tHolidayDate.getDate();
	dayafterd = dayafterd+1;
	dayafter.setDate(dayafterd);
	dayafter = formatDate(dayafter, "MM/dd/yyyy");
	cal.addDisabledDates(myDate,dayafter);
	/*following year*/
	d = new Date(nextyear,nMonth,nEarliestDate);
	nWeekday = d.getDay();
	if( nTargetday==nWeekday ) nOffset = 0;
	else
	{
	  if( nTargetday<nWeekday ) nOffset = nTargetday + (7 - nWeekday);
	  else nOffset = (nTargetday + (7 - nWeekday)) - 7;
	}
	tHolidayDate = new Date(nextyear,nMonth,nEarliestDate + nOffset);
	myDate = formatDate(tHolidayDate, "MM/dd/yyyy");
	cal.addDisabledDates(myDate);
/*disabling Labor Day - first Monday (1) in September (8) */
	nTargetday=1
	nMonth=8
	/* 1st Monday minus 1 = (0) */
	nEarliestDate = 1 + 7 * (0)
	d = new Date(year,nMonth,nEarliestDate);
	nWeekday = d.getDay();
	if( nTargetday==nWeekday ) nOffset = 0;
	else
	{
	  if( nTargetday<nWeekday ) nOffset = nTargetday + (7 - nWeekday);
	  else nOffset = (nTargetday + (7 - nWeekday)) - 7;
	}
	tHolidayDate = new Date(year,nMonth,nEarliestDate + nOffset);
	myDate = formatDate(tHolidayDate, "MM/dd/yyyy");
	cal.addDisabledDates(myDate);
	/*following year*/
	d = new Date(nextyear,nMonth,nEarliestDate);
	nWeekday = d.getDay();
	if( nTargetday==nWeekday ) nOffset = 0;
	else
	{
	  if( nTargetday<nWeekday ) nOffset = nTargetday + (7 - nWeekday);
	  else nOffset = (nTargetday + (7 - nWeekday)) - 7;
	}
	tHolidayDate = new Date(nextyear,nMonth,nEarliestDate + nOffset);
	myDate = formatDate(tHolidayDate, "MM/dd/yyyy");
	cal.addDisabledDates(myDate);
/*disabling July 4 - or if on Sat/Sun, the Monday following*/
	ld = new Date(year,6,4);
	ldd = ld.getDay();
	if( ldd==0 )
	cal.addDisabledDates("7/5/"+year);
	else
	if( ldd==6 )
	cal.addDisabledDates("7/6/"+year);
	else
	cal.addDisabledDates("7/4/"+year);
	/*following year*/
	ld = new Date(nextyear,6,4);
	ldd = ld.getDay();
	if( ldd==0 )
	cal.addDisabledDates("7/5/"+nextyear);
	else
	if( ldd==6 )
	cal.addDisabledDates("7/6/"+nextyear);
	else
	cal.addDisabledDates("7/4/"+nextyear);
/*disabling Veterans Day, Nov. 11 - or if on Sun, Nov. 12 (Mon); if on Sat, Nov. 10 (Fri)*/
	ld = new Date(year,10,11);
	ldd = ld.getDay();
	if( ldd==0 )
	cal.addDisabledDates("11/12/"+year);
	else
	if( ldd==6 )
	cal.addDisabledDates("11/10/"+year);
	else
	cal.addDisabledDates("11/11/"+year);
	/*following year*/
	ld = new Date(nextyear,10,11);
	ldd = ld.getDay();
	if( ldd==0 )
	cal.addDisabledDates("11/12/"+nextyear);
	else
	if( ldd==6 )
	cal.addDisabledDates("11/10/"+nextyear);
	else
	cal.addDisabledDates("11/11/"+nextyear);
	
	
	/*disabling Monday and Wednesday except June and July*/
	
	for(var i=0; i<=11; i++) {
		if ((i>6)||(i<5)) {
			if (i==1){
				for (var x=1; x<=28; x++){
					var thisdate = new Date(year, i, x);
					if ((thisdate.getDay()==1)||(thisdate.getDay()==3)){
						var thismonth = i+1;
						cal.addDisabledDates(thismonth+"/"+x+"/"+year);
					}
					var nextdate = new Date(nextyear, i, x);
					if ((nextdate.getDay()==1)||(nextdate.getDay()==3)){
						var nextmonth = i+1;
						cal.addDisabledDates(nextmonth+"/"+x+"/"+nextyear);
					}
				}
			}
			else if ((i==2)||(i==3)||(i==8)||(i==10)){
				for (var x=1; x<=30; x++){
					var thisdate = new Date(year, i, x);
					if ((thisdate.getDay()==1)||(thisdate.getDay()==3)){
						var thismonth = i+1;
						cal.addDisabledDates(thismonth+"/"+x+"/"+year);
					}
					var nextdate = new Date(nextyear, i, x);
					if ((nextdate.getDay()==1)||(nextdate.getDay()==3)){
						var nextmonth = i+1;
						cal.addDisabledDates(nextmonth+"/"+x+"/"+nextyear);
					}
				}
			}
			else 
			for(var x=1; x<=31; x++){
					var thisdate = new Date(year, i, x);
					if ((thisdate.getDay()==1)||(thisdate.getDay()==3)){
						var thismonth = i+1;
						cal.addDisabledDates(thismonth+"/"+x+"/"+year);
					}
					var nextdate = new Date(nextyear, i, x);
					if ((nextdate.getDay()==1)||(nextdate.getDay()==3)){
						var nextmonth = i+1;
						cal.addDisabledDates(nextmonth+"/"+x+"/"+nextyear);
					}
				}
		}
		else 
			for(var x=1; x<=31; x++){
				if(i==6||x<=30){
					var thisdate = new Date(year, i, x);
					if (thisdate.getDay()==5){
						var thismonth = i+1;
						cal.addDisabledDates(thismonth+"/"+x+"/"+year);
					}
					var nextdate = new Date(nextyear, i, x);
					if (nextdate.getDay()==5){
						var nextmonth = i+1;
						cal.addDisabledDates(nextmonth+"/"+x+"/"+nextyear);
					}
				}
			}
		}
	