/* file name : calculate_age.js */
/* create by :  Piek@user */
/* create date : 28/10/2548 */

/*
example : jsp
	<kpi:strutscalendar 
		property="birthdate" 
		styleId="birthdate" 
		size="15" 
		src="/images/common/calendar42.gif" 
		format="dateonly" 
		calDateDiff="this.form.age" />
	<html:text 
		property="age" 
		styleId="age" 
		style="text-align: center" 
		readonly="true" />
*/

/*
	@param obj1 - text box object of kpi:structCalendar tag in format dd/mm/yyyy and the year is Budda.
	@param obj2 - object to print output
*/
function calDateDiff(obj1, obj2)
{
	if(obj1.value != '')
	{
		date = parseBuddaDate(obj1.value);
		age = calDiff (new Date() , date);
		if (age < 0){alert('กรุณาระบุวันให้ถูกต้อง');	obj2.value = ''; obj1.value = '';	return '';} else {obj2.value = age;}
	} else {obj2.value = '';}
}

function parseBuddaDate(str)
{
	// input format 'dd/mm/yyyy' in Budda year
	dd = str.substring(0,2); mm = str.substring(3,5); yyyy = str.substring(6, 10);
	m = mm - 1;	yy = yyyy - 543;
	return new Date(yy,m,dd);
}

function calDiff(d1,d2)
{
	diff_day = d1.getDate() - d2.getDate();
	diff_month = d1.getMonth() - d2.getMonth();
	diff_year = (d1.getYear() < 2000 ? d1.getYear() + 1900 : d1.getYear()) - (d2.getYear() < 2000 ? d2.getYear() + 1900 : d2.getYear());
	if (diff_day < 0){	diff_month--;	diff_day += 30;}
	if (diff_month < 0){	diff_year--;	diff_month += 12;}
	return diff_year;
}
