
var min_year = 1900;
var max_year = 2011;


var weekday_showing = false;

var dayofweek_returned_as_number = false;

var month_returned_as_number = true;

if (min_year <= 400)
	alert("Não posso começar antes dos 400 anos.");
	

function _strMonth() {
	var months = new Array("Janeiro", "Fevereiro", "Março", "Abril",
	   "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", 
	   "Novembro", "Dezembro");
return months[this.getMonth()];
}

function _strDay() {
	var days= new Array("Domingo", "Segunda", "Terça", "Quarta", 
	    "Quinta", "Sexta", "Sábado");
return days[this.getDay()];
}

function _weekOf() {
	sunday = ((arguments[0]==null) || (!arguments[0])); // Check for optional argument
return (new Date(this - ((this.getDay() - ((sunday) ? 0 : 1)) *24*60*60*1000)));
}


Date.prototype.weekOf = _weekOf;
Date.prototype.strMonth = _strMonth;
Date.prototype.strDay = _strDay;

function changeDays(numb,date_form,aname) {
	MonthCtrl = eval("date_form." + aname +"month");
	DayCtrl = eval("date_form." + aname +"day");
	YearCtrl = eval("date_form." + aname +"year");
	
	mth = eval(MonthCtrl.selectedIndex);
	sel = eval(YearCtrl.selectedIndex);
	yr = eval(YearCtrl.options[sel].text);

	if (numb != 1) {
		numDays = numDaysIn(mth,yr);
		eval("date_form." + aname +"day.options.length="+numDays) ;
		for (i=27;i<numDays;i++) {
			j=i+1;
			eval("date_form." + aname +"day.options["+i+"].text = "+j);
		}
	}
}
	
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];
	}
}

weekdays = new arr("Dom..","Seg.","Ter.","Quar.", "Quin.","Sex.","Sab.");
 
months = new arr("Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro");
 
var cur = new Date();

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;
	return parseInt((1 + diff + (diff / 4) - (diff / 100) + (diff / 400)) % 7);
}

// corrige bug no Netscape 2 e 3
function getFullYear(d) { // d é um objecto data
	yr = d.getYear();
	if (yr < 1000)
		yr+=1900;
	return yr;
}


function datedrop(myname,feeddate){
	//alert (feeddate);
	if(!feeddate)
	{
		d=new Date();
		edmonth=d.getMonth();
		edday=d.getDate();
		edyear=d.getFullYear();
	}
	else
	{
		d=new Date(feeddate)
		edmonth=d.getMonth();
		edday=d.getDate();
		edyear=d.getFullYear();
	}

	// write month element
	
	// write day element
	document.write("<select id=SmallInput  name="+myname+"day size=1 onChange='changeDays(0,this.form,"+'"'+myname+'"'+")'>\n");
	for (i=1;i<=numDaysIn(d.getMonth(),getFullYear(d));i++)
	 document.write("<option"+(edday==i?" selected":"")+">"+i+"\n");

	document.write("</select>&nbsp;&nbsp;");

	document.write("<select id=SmallInput name="+myname+"month size=1 onChange='changeDays(0,this.form,"+'"'+myname+'"'+")'>");
	for (i=1;i<13;i++)
	 document.write("<option"+(month_returned_as_number?" value="+i:"")
	  +(edmonth==i-1?" selected":"")+">"+months[i-1]+"\n");

	document.write("</select>&nbsp;&nbsp;");

	// write year element
	document.write("<select  id=SmallInput name="+myname+"year size=1 onChange='changeDays(0,this.form,"+'"'+myname+'"'+")'>\n");
	for (i=min_year;i<max_year;i++)
	 document.write("<option"+(edyear==i?" selected":"")+">"+i+"\n");
	document.write("</select>");
}	
