	if (!window.min_year) {
		var min_year = (new Date()).getFullYear(); // defines lowest year in year selectbox
	}
	if (!window.max_year) {
		var max_year = (new Date()).getFullYear()+2; // defines highest year in the year selectbox
	}

	if (min_year <= 400) {
		alert("Minimum year must be higher than 400 for this algorithm to work.");
	}
		

	function changeDays(numb,date_form,aname) {
		MonthCtrl = eval("document." + date_form + "." + aname +"Month");
		DayCtrl = eval("document." + date_form + "." + aname +"Day");
		YearCtrl = eval("document." + date_form + "." + aname +"Year");
		//alert(eval(DayCtrl.selectedIndex) + ', ' + eval(MonthCtrl.selectedIndex) + ', ' + eval(YearCtrl.selectedIndex));
		
		mth = eval(MonthCtrl.selectedIndex);
		sel = eval(YearCtrl.selectedIndex);
		yr = eval(YearCtrl.options[sel].value);
		day = eval(DayCtrl.selectedIndex);
		if (numb != 1) {
			numDays = numDaysIn(mth,yr);
			eval("document." + date_form + "." + aname +"Day.options.length="+(numDays+1)) ;
			for (i=27;i<=numDays;i++) {
				eval("document." + date_form + "." + aname +"Day.options["+i+"].text = "+i);
			}
		}


		var newDate = "";
		d = new Date(yr, (mth-1), day);
		if ( sel<1 || mth<0 || day<1 ) {
			newDate = "''";
		} else {
			setDay = day;
			setMonth = mth;
			setYear = yr;
			if (setMonth < 10) {
				setMonth = "0" + setMonth;
			}
			if (setDay < 10) {
				setDay = "0" + setDay;
			}
			newDate = newDate.concat(setYear, setMonth, setDay);
		}
		eval("document." + date_form + "." + aname +".value=" + newDate);
	}

	function setToFirst(date_form,aname,jsType) {
		//type 2=Month; 3=Day
		var jsStrType = "Day";
		if ( jsType == 2 ) {
			jsStrType = "Month";
		}
		eval("document." + date_form + "." + aname + jsStrType +".options[1].selected=true");
	}

		
	function numDaysIn(mth,yr) {
		if (mth==4 || mth==6 || mth==9 || mth==11) {
			return 30;
		} else if ((mth==2) && leapYear(yr)) {
			return 29;
		} else if (mth==2) {
			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];
		}
	}
	 
	months = new arr("janvier","février","mars","avril","mai","juin","juillet","août","septembre","oktobre","novembre","décembre");
	 
	var cur = new Date();

	// 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 datedrop(myname,feeddate,fromyear,toyear){
		var edyear;
		var edmonth;
		var edday;
		if (feeddate.length==8) {//--valid feeddate
			edyear = feeddate.substring(0, 4);
			edmonth = feeddate.substring(4, 6) - 1;
			edday = feeddate.substring(6);
			d = new Date(edyear, edmonth, edday);
		} else {
			d = new Date(0, 0, 0);
		}
		if (fromyear) {
			min_year = fromyear;
		}
		if (toyear) {
			max_year = toyear;
		}
		//alert(d);
		//--write day element
		document.write("<select name=" + myname + "Day size=1 onChange='changeDays(0,this.form.name,"+'"'+myname+'"'+")'>\n");
		document.write("<option value=-1 "+(edday==-1?" selected":"")+" style=\"color:#999999;\">jour</option>\n");
		for (i=1;i<=numDaysIn(d.getMonth()+1,getFullYear(d));i++) {
			document.write("<option"+(edday==i?" selected":"")+">"+i+"\n");
		}
		document.write("</select>");

		//--write month element		
		document.write("<select name=" + myname + "Month size=1 onChange='changeDays(0,this.form.name,"+'"'+myname+'"'+");'>");
		document.write("<option value=-1"+(edmonth==-1?" selected":"")+" style=\"color:#999999;\">mois</option>\n");
		for (i=0;i<12;i++) {
			document.write("<option value="+ i +(edmonth==i?" selected":"")+">"+months[i]+"\n");
		}
		document.write("</select>");

		//--write year element
		document.write("<select name=" + myname + "Year size=1 onChange='changeDays(0,this.form.name,"+'"'+myname+'"'+");'>\n");
		document.write("<option value=-1"+(edyear==-1?" selected":"")+" style=\"color:#999999;\">année</option>\n");
		for (i=max_year;i>=min_year;i--) {
			document.write("<option value=" + i + " "+(edyear==i?" selected":"")+">"+i+"\n");
		}
		document.write("</select>");
		document.write("<input type='hidden' name=" + myname + " value='" + feeddate + "' />");
	}