function getFullDate(date){
	date=parseInt(date);
	if(date<10) date="0"+date;
	return date;
}


function getMonthNo(no){
	no=parseInt(no);
	if(no<10) no="0"+no;
	return no;
}


function getMonthName(no){
	var name;
	switch(no){
		case 1:
			name="January";
			break;
		case 2:
			name="February";
			break;
		case 3:
			name="March";
			break;
		case 4:
			name="April";
			break;
		case 5:
			name="May";
			break;
		case 6:
			name="June";
			break;
		case 7:
			name="July";
			break;
		case 8:
			name="August";
			break;
		case 9:
			name="September";
			break;
		case 10:
			name="October";
			break;
		case 11:
			name="November";
			break;
		case 12:
			name="December";
			break;
	}
	return name;
}


function deleteAll(place){
	var noTurns=place.options.length;
	for(i=1;i<=noTurns;i++){
		//document.form1.text1.value+=","+i;
		place.options[1]=null;
	}
}


function isLeapYear (year) {
	if (((year % 4)==0) && ((year % 100)!=0) || ((year % 400)==0)) {
		return (true);
	} else { return (false); }
}	  


function getDaysInMonth(year,month)  {
	var days;
	if (month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12)  days=31;
	else if (month==4 || month==6 || month==9 || month==11) days=30;
	else if (month==2)  {
		if (isLeapYear(year)) { days=29; }
		else { days=28; }
	}
	return (days);
}

function changeMonth(year,mplace,dplace){
	var selMonth = parseInt(mplace.options[mplace.selectedIndex].value);
	var selMonthIndex = parseInt(mplace.selectedIndex);
	
	var maxMonth;
	year=parseInt(year);
	
	if(year==parseInt(currentYear)){
		maxMonth=parseInt(currentMonth);
	}else{
		maxMonth=12;
	}
	if(selMonth>maxMonth){
		alert('Maximum month can be selected for the selected year is ' + maxMonth);
	}
	deleteAll(mplace);	
	for(i=1;i<=maxMonth;i++){
		x=new Option(getMonthName(i),i);
		mplace.options[i]=x;
	}
	if(!isNaN(selMonth)){
		if(selMonth>maxMonth){
			mplace.options.selectedIndex=parseInt(mplace.length)-1;
		}else{
			mplace.options.selectedIndex=selMonthIndex;
		}
	}else{
		mplace.options.selectedIndex=0;
	}
	changeDays(year,mplace.value,dplace);
}

function changeDays(year,month,place){
	//document.form1.mess.value=month;
	var selDay = parseInt(place.options[place.selectedIndex].value);
	var selDayIndex = parseInt(place.selectedIndex);
	//alert(selDay);
	var maxDay;
	year=parseInt(year);
	month=parseInt(month);
	
	if((year==parseInt(currentYear))&&(month==parseInt(currentMonth))){
		maxDay=parseInt(currentDay);
	}else{
		maxDay=parseInt(getDaysInMonth(year,month));
		if(isNaN(month)) maxDay=31;
	}
	
	//alert(maxDay);
	if(selDay>maxDay){
		alert('Maximum day can be selected for the selected month is ' + maxDay);
	}
	deleteAll(place);
	for(i=1;i<=maxDay;i++){
		x=new Option(getFullDate(i),i);
		place.options[i]=x;
	}
	
	if(!isNaN(selDay)){
		if(selDay>maxDay){
			place.options.selectedIndex=parseInt(place.length)-1;
		}else{
			place.options.selectedIndex=selDayIndex;
		}
	}else{
		place.options.selectedIndex=0;
	}	
}

function initialise(yplace,mplace,dplace){
	var fromYear = currentYear - 100;
	var j = 1;
	var selYear = 0;
	for(i=fromYear;i<=currentYear;i++){
		x=new Option(i,i);
		yplace.options[j]=x;
		if(selectedYear==i) selYear = j;
		j++;
	}
	
	var j = 1;
	var selMonth = 0;
	for(i=1;i<=12;i++){
		x=new Option(getMonthName(i),i);
		mplace.options[j]=x;
		if(selectedMonth==i) selMonth = j;
		j++;
	}
	
	var j = 1;
	var selDay = 0;
	for(i=1;i<=31;i++){
		x=new Option(getFullDate(i),i);
		dplace.options[j]=x;
		if(selectedDay==i) selDay = j;
		j++;
	}
	//alert(parseInt(dplace.options[dplace.selectedIndex].value));
	yplace.options.selectedIndex=selYear;
	//changeMonth(yplace.value,mplace,dplace);
	mplace.options.selectedIndex=selMonth;
	//changeDays(yplace.value,mplace.value,dplace)
	dplace.options.selectedIndex=selDay;
}