function stripLeadZero(s) {
	retVal = s;
	
	if(s.substr(0,1)==0)
		retVal = s.substr(1,1);
	
	return retVal;
}

function isValidDay(day, month, year) {
	dd = parseInt(stripLeadZero(day));
	mm = parseInt(stripLeadZero(month));
	yyyy = parseInt(stripLeadZero(year));

	retVal = false;

	if(mm==4 || mm==6 || mm==9 || mm==11) {
		if(dd>0 && dd<31)
			retVal = true;
	}else if(mm==1 || mm==3 || mm==5 || mm==7 || mm==8 || mm==10 || mm==12) {
		if(dd>0 && dd<32) {
			retVal =  true;
		}
	}else if(mm==2) {
		if(yyyy%4==0) {
			if(dd>0 && dd<30)
				retVal = true;
		}else{
			if(dd>0 && dd<29)
				retVal = true;
		}
	}

	return retVal;
}

function isValidMonth(month) {
	mm = parseInt(stripLeadZero(month));

	retVal = true;
	
	if((mm<1) || (mm>12)) {
		retVal = false;
	}
	
	return retVal;
}

function isDate(ctrl) {
	s = ctrl.value.trim();
	msg = '';

	if(s.length!=10) {
		msg = 'invalid ' + ctrl.name;
	}

	if(isNaN(s.substr(6, 4)) && msg=='') {
		msg = ctrl.name + '\ninvalid year';
	}

	if(s.substr(5, 1)!='/' && msg=='') {
		msg = ctrl.name + '\ninvalid date separator';
	}

	if(isNaN(s.substr(3, 2)) || !isValidMonth(s.substr(3, 2)) && msg=='') {
		msg = ctrl.name + '\ninvalid month';
	}

	if(s.substr(2, 1)!='/' && msg=='') {
		msg = ctrl.name + '\ninvalid date separator';
	}

	if(isNaN(s.substr(0, 2)) || !isValidDay(s.substr(0, 2), s.substr(3, 2), s.substr(6, 4)) && msg=='') {
		msg = ctrl.name + '\ninvalid day';
	}
	
	return (msg!='')?false:true;
}