function day_of_first(month,year) {
	var today = new Date();	
	today.setFullYear(year,month,1);
	return today.getDay();
}

function days_in_month(month,year) {
	return 32 - new Date(year, month, 32).getDate();
}

function hideCalendar() {
	document.getElementById('scalendar').className='scalendarh';
	status = 0;
}

function getShortMonth(month) {
	var mlist = new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");	
	var month_name;

	if(month > 11) { month = 0; }
	if(month < 0) { month = 11; }

	return mlist[month];
}

function getDate(m,y) {
	var mlist = new Array("January","February","March","April","May","June","July","August","September","October","November","December");	

	return mlist[m]+' '+y;
}

function setDateSmallCalendar(day,month,year,type) {
	var idx=0;
	var now = new Date();

	for(i=now.getFullYear();i<now.getFullYear()+6;i++) {
		if(i==year) {
			break;
		}
		idx++;
	}

	idx++;
	month++;
	
	if(type==1) {
		document.getElementById('day1').selectedIndex=day - 1;
		document.getElementById('month1').selectedIndex=month - 1;
		document.getElementById('year1').selectedIndex=idx - 1;
	} else {
		document.getElementById('day2').selectedIndex=day - 1;
		document.getElementById('month2').selectedIndex=month - 1;
		document.getElementById('year2').selectedIndex=idx - 1;	
	}
	hideCalendar();
}

function smallCalendar(month,year, type) {
	if(status == 0) {
		status = 1;

		var html = "";

		var off=0;
		var day=0;

		var offset;
		var nb_days;

		offset = day_of_first(month,year);
		nb_days = days_in_month(month,year);

		var pyear = year;
		var nyear = year;
		var pmonth, nmonth;

		pmonth = month - 1;
		if(pmonth < 0) { pyear = pyear - 1; pmonth = 11; }
		
		nmonth = month + 1;
		if(nmonth > 11) { nyear = nyear + 1; nmonth = 0; }

		prev_month = getShortMonth(pmonth);
		next_month = getShortMonth(nmonth);

		html += '<div id="datepicker-date-from" class="datepicker">';
		html += '<div class="datepicker-header">';
		html += '<span title="'+prev_month+'" id="datepicker-date-from-prev" style="cursor: pointer;" onclick="status=0;smallCalendar('+pmonth+','+pyear+')"> &lt;&lt; </span>';
		html += '<span id="datepicker-date-from-header">&nbsp;&nbsp;&nbsp;'+getDate(month,year)+'&nbsp;&nbsp;&nbsp;</span>';
		html += '<span title="'+next_month+'" id="datepicker-date-from-next" style="cursor: pointer;" onclick="status=0;smallCalendar('+nmonth+','+nyear+')"> &gt;&gt; </span>';
		html += '</div>';

		html += '<div class="datepicker-calendar">';
		html += '<table id="datepicker-date-from-table">';
		html += '<tr>';
		html += '<td class="wday">Mon</td>';
		html += '<td class="wday">Tue</td>';
		html += '<td class="wday">Wed</td>';
		html += '<td class="wday">Thu</td>';
		html += '<td class="wday">Fri</td>';
		html += '<td class="wday">Sat</td>';
		html += '<td class="wday">Sun</td>';
		html += '</tr>';

		for(i=0;i<5;i++) {
			html += '<tr>';

			for(j=0;j<7;j++) {
				off++;

				if(off<offset) {
					html += '<td class="outbound">&nbsp;';
				} else {
					day++;

					if(day <= nb_days) {
						html += '<td id="date-'+day+'" onclick="setDateSmallCalendar('+day+','+month+','+year+','+type+');">'+day;
					} else {
						html += '<td class="outbound">&nbsp;';
					}
				}

				html += '</td>';
			}
			html += '</tr>';
		}

		html += '</table>';
		html += '</div>';
		html += '<div id="datepicker-date-from-footer" class="datepicker-footer" onclick="hideCalendar();">close</div>';
		html += '</div>';

		Element.update('scalendar',html);
		document.getElementById('scalendar').className='scalendarv';
	} else {
		hideCalendar();
		status = 0;
	}
}
