var min_year = new Date().getFullYear(); 		// defines lowest year in year menu (min = 400)
var max_year = min_year + 3; 		// defines highest year in the year menu
var weekday_showing = false	// make this false = no weekday
var month_as_nr = true;		// true makes month return a number (0-11)

var cur = new Date();
	

weekdays = new arr("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
months = new arr("NotMonth","January","February","March","April","May","June","July","August","September","October","November","December");


function changeDays(numb,theSwitch) {

	if (theSwitch == 1) {
		var mth = document.forms[0].month1.selectedIndex;
		var sel = document.forms[0].year1.selectedIndex;
		var yr = document.forms[0].year1.options[sel].text;
		var dy = document.forms[0].day1;
	} else if (theSwitch == 2) {
		var mth = document.forms[0].month2.selectedIndex;
		var sel = document.forms[0].year2.selectedIndex;
		var yr = document.forms[0].year2.options[sel].text;
		var dy = document.forms[0].day2;
	} else if (theSwitch == 3) {
		var mth = document.forms[0].month3.selectedIndex;
		var sel = document.forms[0].year3.selectedIndex;
		var yr = document.forms[0].year3.options[sel].text;
		var dy = document.forms[0].day3;
	}

	
	if (numb != 1) {
		numDays = numDaysIn(mth,yr);
		dy.options.length = numDays;
		for (i = 27; i < numDays; i++) dy.options[i].text = i + 1 + "";
		if (dy.selectedIndex < 0) dy.selectedIndex = 0;
	}
	var day = dy.selectedIndex + 1;
	if (weekday_showing) theForm.dayofweek.value = weekdays[getWeekDay(mth,day,yr)];
}

function numDaysIn(mth,yr) {

	if (mth==3 || mth==5 || mth==8 || mth==10) return 30;
	else if ((mth == 1) && leapYear(yr)) return 29;
	else if (mth == 1) return 28;
	else return 31;
}

function leapYear(yr) {
	
	if (((yr % 4 == 0) && yr % 100 != 0) || yr % 400 == 0) return true;
	else return false;
}

function arr() {

	this.length = arr.arguments.length;
	for (n = 0;n < arr.arguments.length;n++) this[n] = arr.arguments[n];
}

function getWeekDay(mth,day,yr) {
	
	first_day = firstDayOfYear(yr);
	for (num = 0; num < mth; num++) {
		first_day += numDaysIn(num,yr);
	}
	first_day += day - 1;
	return first_day % 7;
}
 
function firstDayOfYear(yr) {

	diff = yr - 401;
	daReturn = parseInt((1 + diff + (diff / 4) - (diff / 100) + (diff / 400)) % 7);
	if (leapYear(yr - 1)) 
		if ((daReturn + 1) < 7) return daReturn + 1
		else return 0
	else return daReturn 
}

// fixes a Netscape 2 and 3 bug
function getFullYear(d) { // d is a date object

	yr = d.getYear();
	if (yr < 1000) yr += 1900;
	return yr;
}

function timeAsNr(i,w) {
	daReturn = "";
	if (w) daReturn = "value=" + i;
	return daReturn;
}

function writeYears(){
	var minusYrs = 20;
	var startYear = parseInt(cur.getFullYear());
	var docStr = '<select name="caryr" id="caryr"><option value="'+startYear+'" selected="true">'+startYear+'</option>';
	for(var i=1;i<minusYrs;i++){
		var theYear = startYear-i;
		docStr += '<option value="'+theYear+'">'+theYear+'</option>';
	}
	docStr += "</select>";
	document.write(docStr);
}
	
function writeForm(formName) {
	var i;
	var theStr ="";
	var formDy = 'name="day' + formName + '" onChange="changeDays(1,' + formName + ')"';
	var formMo = 'name="month' + formName + '" onChange="changeDays(0,' + formName + ')"';
	var formYr = 'name="year' + formName + '" onChange="changeDays(0,' + formName + ')"';
//	var fCall1 = "changeDays(0," + formName + ")";
//	var fCall2 = "changeDays(1," + formName + ")";

	if (weekday_showing) {
		var daDay = cur.getDay();
		theStr += '<input readonly type="text" name="dayofweek" size="3" value=' + weekdays[daDay] + '/>'
	}

// write day element

	theStr += '<select size="1" ' + formDy + ' style="margin-right:3px" id="day'+formName+'">'
	for (i = 1; i <= numDaysIn(cur.getMonth(),getFullYear(cur));i++) {
		var selDate = (cur.getDate() == i ?" selected":"")
		theStr += '<option '+ selDate +' value=' + i + '>' + i + '' + '</option>'
	}
	theStr += '</select>'


// write month element

	theStr += '<select size="1" ' + formMo + ' style="margin-right:3px;width:75px">'
	for (i = 1;i < 13;i++) { 
		var daValue = timeAsNr(i,month_as_nr);
		var selMonth = (cur.getMonth() + 1 == i?" selected":"")
		theStr += '<option '+ daValue + selMonth + ' />' + months[i] +'</option>'
	}
	theStr += '</select>';
		
// write year element

	theStr += '<select size="1" ' + formYr + '>'
	for (i = min_year; i <= max_year; i++) {
		var selYear = (getFullYear(cur) == i ?" selected":"")
		theStr += '<option' + selYear +' value='+ i +' />' + i + '</option>'
	}
	theStr += '</select>'
	return theStr;
}

function fillForm(endForm){
	endForm.option1_day.value 	= document.serviceForm.day1.selectedIndex + 1;
	endForm.option1_mth.value 	= document.serviceForm.month1.selectedIndex + 1;
	endForm.option1_yr.value 	= document.serviceForm.year1.options[document.serviceForm.year1.selectedIndex].text;
	endForm.option2_day.value 	= document.serviceForm.day2.selectedIndex + 1;
	endForm.option2_mth.value 	= document.serviceForm.month2.selectedIndex + 1;
	endForm.option2_yr.value 	= document.serviceForm.year2.options[document.serviceForm.year2.selectedIndex].text;
	endForm.option3_day.value 	= document.serviceForm.day3.selectedIndex + 1;
	endForm.option3_mth.value 	= document.serviceForm.month3.selectedIndex + 1;
	endForm.option3_yr.value 	= document.serviceForm.year3.options[document.serviceForm.year3.selectedIndex].text;
}




