var Opt = new Array() // 29..31
Opt[29] = 29;
var alldayFlag = false;

// Library Routines :

	function LZ(x) { return(x<0||x>9?"":"0")+x }
	
	function DaysInMonth(Y, M) { // M=1..12
	  with (new Date(Y,M,1,12)) { setDate(0) ; return getDate() } } // OK in NS4?
	
	// Selector control :
	
	function MonLen(Yr, Mo, Dy, Time, ele)
	{
	 var Dol, K, DiM, NsI
		
	  DiM = DaysInMonth(+Yr.options[Yr.selectedIndex].text, Mo.selectedIndex+1)
	  Dol = Dy.options.length
	  if ( (NsI = Dy.selectedIndex) >= DiM ) NsI = DiM-1
	// for (K=Dol   ; K >DiM ; K--) Dy.options[K-1] = null          // shrink
	// for (K=Dol+1 ; K<=DiM ; K++) Dy.options[K-1] = new Option(K) // or grow
	  for (K=Dol   ; K >DiM ; K--)
	    { 
				Opt[K] = Dy.options[K-1] ;
				Dy.options[K-1] = null;
			} // shrink
	  for (K=Dol+1 ; K<=DiM ; K++)
			{
				var nElement = document.createElement("option");
				nElement.value = K;
				nElement.text = K;
				Dy.add(nElement); // or grow
			}

		Dy.selectedIndex = NsI;
		updateDate(Yr, Mo, Dy, Time, ele);
	}
	
	function updateDate(yr,mo,dy,time,ele)
	{
		ele.value = mo.value + "/" + dy.value + "/" + yr.value + " " + time.value;
		checkTimeStamp();
	}
		
	function checkTimeStamp()
	{ 
		var startDate = document.getElementById("EventDateStart");
		var startMonth = document.getElementById("StartMonthSelect");
		var startDay = document.getElementById("StartDaySelect");
		var startYear = document.getElementById("StartYearSelect");
		var startTime = document.getElementById("StartTimeSelect");

		var endDate = document.getElementById("EventDateEnd");
		var endMonth = document.getElementById("EndMonthSelect");
		var endDay = document.getElementById("EndDaySelect");
		var endYear = document.getElementById("EndYearSelect");
		var endTime = document.getElementById("EndTimeSelect");
		var greater = "";	
		
		function changeThisDate()
		{
			endMonth.selectedIndex = startMonth.selectedIndex;
			endDay.selectedIndex = startDay.selectedIndex;
			endYear.selectedIndex = startYear.selectedIndex;
			//if (startTime.selectedIndex != 47)
			if (startTime.selectedIndex != 287)
			{
				endTime.selectedIndex = (startTime.selectedIndex + 1);
			} else
			{
				endTime.selectedIndex = (startTime.selectedIndex);
			}
				var Dol, K, DiM, NsI
		
				  DiM = DaysInMonth(+endYear.options[endYear.selectedIndex].text, endMonth.selectedIndex+1)
				  Dol = endDay.options.length
				  if ( (NsI = endDay.selectedIndex) >= DiM ) NsI = DiM-1
				// for (K=Dol   ; K >DiM ; K--) Dy.options[K-1] = null          // shrink
				// for (K=Dol+1 ; K<=DiM ; K++) Dy.options[K-1] = new Option(K) // or grow
				  for (K=Dol   ; K >DiM ; K--)
					{ 
							Opt[K] = endDay.options[K-1] ;
							endDay.options[K-1] = null;
						} // shrink
				  for (K=Dol+1 ; K<=DiM ; K++)
						{
							var nElement = document.createElement("option");
							nElement.value = K;
							nElement.text = K;
							endDay.add(nElement); // or grow
						}
			
					endDay.selectedIndex = NsI;
					
			endDate.value = endMonth.value + "/" + endDay.value + "/" + endYear.value + " " + endTime.value;
		}
		
		if (startYear.value > endYear.value)
		{
			changeThisDate();
		} else if (startYear.value == endYear.value)
		{ 
			if (parseInt(startMonth.value) > parseInt(endMonth.value))
			{
				changeThisDate();
			} else if (startMonth.value == endMonth.value)
			{ 					
				if (startDay.selectedIndex > endDay.selectedIndex)
				{ 
					changeThisDate();
				} else if (startDay.value == endDay.value)
				{ 
					if (startTime.selectedIndex > endTime.selectedIndex)
					{
						changeThisDate();
					} else if (startTime.selectedIndex == endTime.selectedIndex)
					{
						changeThisDate();
					}
				}
			}
		}

	}
	
	function toggleAllDay(status)
	{
	
		var startDate = document.getElementById("EventDateStart");
		var startTime = document.getElementById("StartTimeSelect");
		var endDate = document.getElementById("EventDateEnd");
		var endTime = document.getElementById("EndTimeSelect");
	
		if (status == "on")
		{
			alldayFlag = true;
			startTime.style.display = "none";
			endTime.style.display = "none";
		} else
		{
			alldayFlag = false;
			startTime.style.display = "inline";
			endTime.style.display = "inline";
		}
	}
	
	function toggleRecurring(inval)
	{
		var objRecurTable = document.getElementById("EventRecurring");	
		var objNonRecurStartTable = document.getElementById("NonRecurringEventStartTime");	
		var objNonRecurEndTable = document.getElementById("NonRecurringEventEndTime");	
		var objAllDayEvent = document.getElementById("allDayEvent");	
		
		if(inval == 1)
		{
		 	objRecurTable.style.display = "inline";
			objRecurTable.style.visibility="visible";
			
			objNonRecurStartTable.style.display = "none";
			objNonRecurStartTable.style.visibility="hidden";
			
			objNonRecurEndTable.style.display = "none";
			objNonRecurEndTable.style.visibility="hidden";
			
			objAllDayEvent.style.display = "none";
			objAllDayEvent.style.visibility="hidden";
		}
		else if(inval == 0)
		{
			objRecurTable.style.display = "none";
			objRecurTable.style.visibility="hidden";
			
			objNonRecurStartTable.style.display = "inline";
			objNonRecurStartTable.style.visibility='visible'
			
			objNonRecurEndTable.style.display = "inline";
			objNonRecurEndTable.style.visibility='visible'
			
			objAllDayEvent.style.display = "inline";
			objAllDayEvent.style.visibility="visible";
		}
	}
	
	function toggleRecurringFrequency(inval)
	{
		var objRecurDaily = document.getElementById("Dailyfrequency");	
		var objRecurWeekly = document.getElementById("Weeklyfrequency");	
		var objRecurMonthly = document.getElementById("Monthlyfrequency");	
		var objRecurYearly = document.getElementById("Yearlyfrequency");	
		
		if(inval == 1)
		{
			objRecurDaily.style.display = "inline";
			objRecurDaily.style.visibility="visible";
			
			objRecurWeekly.style.display = "none";
			objRecurWeekly.style.visibility='hidden'
			
			objRecurMonthly.style.display = "none";
			objRecurMonthly.style.visibility='hidden'
			
			objRecurYearly.style.display = "none";
			objRecurYearly.style.visibility="hidden";
		}
		else if(inval == 2)
	    {
			objRecurDaily.style.display = "none";
			objRecurDaily.style.visibility="hidden";
			
			objRecurWeekly.style.display = "inline";
			objRecurWeekly.style.visibility='visible'
			
			objRecurMonthly.style.display = "none";
			objRecurMonthly.style.visibility='hidden'
			
			objRecurYearly.style.display = "none";
			objRecurYearly.style.visibility="hidden";
		}
		else if(inval == 3)
		{
			objRecurDaily.style.display = "none";
			objRecurDaily.style.visibility="hidden";
			
			objRecurWeekly.style.display = "none";
			objRecurWeekly.style.visibility='hidden'
			
			objRecurMonthly.style.display = "inline";
			objRecurMonthly.style.visibility='visible'
			
			objRecurYearly.style.display = "none";
			objRecurYearly.style.visibility="hidden";
		}
		else if(inval == 4)
		{
			objRecurDaily.style.display = "none";
			objRecurDaily.style.visibility="hidden";
			
			objRecurWeekly.style.display = "none";
			objRecurWeekly.style.visibility='hidden'
			
			objRecurMonthly.style.display = "none";
			objRecurMonthly.style.visibility='hidden'
			
			objRecurYearly.style.display = "inline";
			objRecurYearly.style.visibility="visible";
		}
	}
	
	function toggleEndDate(inval)
	{
		var objRecurEndDate = document.getElementById("RecurrEndDate");	
		var RecurrEndDateOccourance = document.getElementById("RecurrEndDateOccourance");
		
		if(inval == 1)
		{
			objRecurEndDate.value = "";
			//RecurrEndDateOccourance.disabled = false;
		}
		else if(inval == 2)
		{
			RecurrEndDateOccourance.value = "10";
			//RecurrEndDateOccourance.disabled = true;
		}
	}
	
	function testmessage()
	{
		var objUpdateAllRecurrance = document.getElementById("editRecurringSeries");	
		if(confirm(objUpdateAllRecurrance.value))
		{
			return true;
		}
		else
		{
			return false;
		}
		
	}
	
	function editRecurranceseries()
	{
		var objEventRecurringRadioButton = document.getElementById("EventRecurringRadioButton");
		var objEventRecurring = document.getElementById("EventRecurring");
		var objNonRecurStartTable = document.getElementById("NonRecurringEventStartTime");	
		var objNonRecurEndTable = document.getElementById("NonRecurringEventEndTime");	
		var objUpdateAllRecurrance = document.getElementById("editRecurringSeries");	
		
		if(confirm("This is a recurring event.  Click 'Ok' if you want to edit all the occurences. Otherwise, click 'Cancel'."))
		{
			objUpdateAllRecurrance.value = 1;
			return true;
		}
		else
		{
			objUpdateAllRecurrance.value = 2;
			
			objEventRecurring.style.display = "none";
			objEventRecurring.style.visibility="hidden";
			
			objNonRecurStartTable.style.display = "inline";
			objNonRecurStartTable.style.visibility="visible";
			
			objNonRecurEndTable.style.display = "inline";
			objNonRecurEndTable.style.visibility="visible";
			return true;
		}
	
	}
	
	function changeNavigationstyle(inval,invaltwo)
	{
		objElem = document.getElementById("MonthNav_" + invaltwo);
		
		if(inval == 1)
		{
			objElem.className = 'NavMouseOver';
		}
		else if(inval == 2)
		{
			objElem.className = 'NavMouseOut';
		}
		else
		{ 
			return false;
		}	
	}
	
	/*function changetablestyle(inval,invaltwo,invalthree)
	{
		objElem = document.getElementById("calendarTable" + invaltwo + invalthree);
		objElemTR = document.getElementById("calendarTableTD" + invaltwo + invalthree);
		
		if(inval == 1)
		{
			objElem.className = 'NavMouseOver';
			objElemTR.className = 'NavTDMouseOver';
		}
		else if(inval == 2)
		{
			objElem.className = 'NavMouseOut';
			objElemTR.className = 'NavTDMouseOut';
		}
		else
		{ 
			return false;
		}	
	}*/
	
	function changetablestyle(inval,invaltwo,invalthree,invalfour,invalfive)
	{
		
		if(invalfour == 1)
		{
			objElem = document.getElementById("calendarTableEventTD" + invaltwo + invalthree + invalfive);
		}
		else if(invalfour == 2)
		{
			objElem = document.getElementById("calendarTableMoreTD" + invaltwo + invalthree + invalfive);
		}
		
		if(inval == 1 && invalfour == 1)
		{
			objElem.className = 'NavMouseOver';
		}
		else if(inval == 2 && invalfour == 1)
		{
			objElem.className = 'NavMouseOut';
		}
		else if(inval == 1 && invalfour == 2)
		{
			objElem.className = 'NavTDMouseOver';
		}
		else if(inval == 2 && invalfour == 2)
		{
			objElem.className = 'NavTDMouseOut';
		}
		else
		{ 
			return false;
		}	
	}
	
	function changetablestylemini(inval,invaltwo,invalthree)
	{
		
		objElem = document.getElementById("calendarTable" + invaltwo + invalthree);
		
		if(inval == 1)
		{
			objElem.className = 'NavMouseOvermini';
		}
		else if(inval == 2)
		{
			objElem.className = 'NavMouseOutmini';
		}
		else
		{ 
			return false;
		}	
	}
	
	function Left(str, n)
	{
		if (n <= 0)
			return "";
		else if (n > String(str).length)
			return str;
		else
			return String(str).substring(0,n);
	}

	
	function validatecalendarevent()
	{
		var objSubject = document.getElementById("Subject");
		var objWebsiteURL = document.getElementById("WebsiteURL");	
		var objLocation = document.getElementById("location");
		var objRecurringEventYes = document.getElementById("RecurringEventYes");
		var objRecurrenceFrequencyDaily = document.getElementById("RecurrenceFrequencyDaily");
		var objRecurrenceFrequencyWeekly = document.getElementById("RecurrenceFrequencyWeekly");
		var objRecurrenceFrequencyMonthly = document.getElementById("RecurrenceFrequencyMonthly");
		var objRecurrenceRangeEndOne = document.getElementById("RecurrenceRangeEndOne");
		var objRecurrenceRangeEndTwo = document.getElementById("RecurrenceRangeEndTwo");
		var objRecurrEndDateOccourance = document.getElementById("RecurrEndDateOccourance");
		
		if(objSubject.value == "")
		{
			alert("You must enter a Subject for this event");
			return false;
		}
		
		if(objLocation.value == "")
		{
			alert("You must enter a Location for this event");
			return false;
		}
		
		if(objWebsiteURL.value != "")
		{
			var URLValue = Left(objWebsiteURL.value, 4);
			if(URLValue != "http")
			{
				alert("The Websit URL field must start with a \"http://\" or \"https://\"");
				return false;
			}
		}
		
		if(objRecurringEventYes.checked == true)
		{
		
			if(objRecurrenceFrequencyDaily.checked == true)
			{
				var objRecurDays = document.getElementById("RecurDays");
				
				if(objRecurDays.value == "" || isNaN(parseInt(objRecurDays.value)))
				{
					alert("You must enter a numeric value for days.")
					return false;
				}
			}
			else if(objRecurrenceFrequencyWeekly.checked == true)
			{
				var objRecurWeeklyWeeks = document.getElementById("RecurWeeklyWeeks");
				var objRecurWeeklyMonday = document.getElementById("WeeklyMonday");
				var objRecurWeeklyTuesday = document.getElementById("WeeklyTuesday");
				var objRecurWeeklyWednesday = document.getElementById("WeeklyWednesday");
				var objRecurWeeklyThursday = document.getElementById("WeeklyThursday");
				var objRecurWeeklyFriday = document.getElementById("WeeklyFriday");
				var objRecurWeeklySaturday = document.getElementById("WeeklySaturday");
				var objRecurWeeklySunday = document.getElementById("WeeklySunday");
				
				if(objRecurWeeklyWeeks.value == "" || isNaN(parseInt(objRecurWeeklyWeeks.value)))
				{
					alert("You must enter a numeric value for weeks.");
					return false;
				}
				else if(objRecurWeeklyMonday.checked == false && objRecurWeeklyTuesday.checked == false && objRecurWeeklyWednesday.checked == false && objRecurWeeklyThursday.checked == false && objRecurWeeklyFriday.checked == false && objRecurWeeklySaturday.checked == false && objRecurWeeklySunday.checked == false)
				{
					alert("You must select at least one day for Weekly recurrence patterns.")
					return false;
				}
			}
			else if(objRecurrenceFrequencyMonthly.checked == true)
			{
				var objMonthlyRecurrenceTypeOne = document.getElementById("MonthlyRecurrenceTypeOne");
				var objMonthlyRecurrenceTypeTwo = document.getElementById("MonthlyRecurrenceTypeTwo");
				var objRecurMonthlyDay = document.getElementById("MonthlyDay");
				var objRecurMonthlyMonths = document.getElementById("MonthlyMonths");
				var objRecurSecondMonthlyMonths = document.getElementById("SecondMonthlyMonths");
				
				if(objMonthlyRecurrenceTypeOne.checked == true)
				{
					if(objRecurMonthlyDay.value == "" || isNaN(parseInt(objRecurMonthlyDay.value)) || objRecurMonthlyMonths.value == "" || isNaN(parseInt(objRecurMonthlyMonths.value)))
					{
						alert("You must enter numeric values for Day and Months.");
						return false;
					}
				}
				else if(objMonthlyRecurrenceTypeTwo.checked == true) 
				{
					if(objRecurSecondMonthlyMonths.value == "" || isNaN(parseInt(objRecurSecondMonthlyMonths.value)))
					{
						alert("You must enter a numeric value for Months.");
						return false;
					}
				}
			}
		
			if(objRecurrenceRangeEndOne.checked == true)
			{
				if(objRecurrEndDateOccourance.value == "" || isNaN(parseInt(objRecurrEndDateOccourance.value)))
				{
					alert("You must enter a numeric value for Occurences.");
					return false;
				}
				else
				{
					
					return true;
				}
			}
			else
			{
				var objRecurrStartDate = document.getElementById("RecurrStartDate");
				var objRecurrEndDate = document.getElementById("RecurrEndDate");
				
				if (Date.parse(objRecurrStartDate.value) <= Date.parse(objRecurrEndDate.value)) 
				{
					return true;
				}
				else 
				{
					if (objRecurrStartDate.value == "" || objRecurrEndDate.value == "") 
					{
						alert("Both dates must be entered.");
						return false;
					}
					else 
					{
						alert("End date must occur after the Start date.");
						return false;
					}
		   		}
				
			}
		}
		else
		{
			return true;
		}
	}
	
	
