dob_mc.input_txt.onChanged = function():Void
{
	var len:Number = this.text.length;
	var pieces:Array = this.text.split('/', 3);
	
	this.maxChars = 10;
	Selection.setFocus(this);
	
	if (len == 0 || (pieces.length < 3 && pieces.length > 1))
	{
		this.text = 'mm/dd/yyyy';
		Selection.setSelection(0, 2);
	} else if (len < 10 || isNaN(Number(pieces[0])) || isNaN(Number(pieces[1])) || isNaN(Number(pieces[2]))) {
		var selStart:Number = 0;
		var selEnd:Number = 10;
		
		// year
		if (isNaN(Number(pieces[2].charAt(0))))
		{
			pieces[2] = 'yyyy';
			selStart = 6;
			selEnd = 10;
		} else if (isNaN(Number(pieces[2].charAt(1)))) {
			pieces[2] = pieces[2].charAt(0) + 'yyy';
			selStart = 7;
			selEnd = 10;
		} else if (isNaN(Number(pieces[2].charAt(2)))) {
			pieces[2] = pieces[2].charAt(0) + pieces[2].charAt(1) + 'yy';
			selStart = 8;
			selEnd = 10;
		} else if (isNaN(Number(pieces[2].charAt(3)))) {
			pieces[2] = pieces[2].charAt(0) + pieces[2].charAt(1) + pieces[2].charAt(2) + 'y';
			selStart = 9;
			selEnd = 10;
		}
		
		// day
		if (isNaN(Number(pieces[1].charAt(0))))
		{
			pieces[1] = 'dd';
			selStart = 3;
			selEnd = 5;
		} else if (isNaN(Number(pieces[1].charAt(1)))) {
			pieces[1] = pieces[1].charAt(0) + 'd';
			selStart = 4;
			selEnd = 5;
		}
		
		// month
		if (isNaN(Number(pieces[0].charAt(0))))
		{
			pieces[0] = 'mm';
			selStart = 0;
			selEnd = 2;
		} else if (isNaN(Number(pieces[0].charAt(1)))) {
			pieces[0] = pieces[0].charAt(0) + 'm';
			selStart = 1;
			selEnd = 2;
		}
		
		this.text = pieces[0] + '/' + pieces[1] + '/' + pieces[2];
		Selection.setSelection(selStart, selEnd);
	} else {
		// calculate age
		var today:Date = new Date();
		var from:Date = new Date(Number(pieces[2]), Number(pieces[0]) - 1, Number(pieces[1]));
		
		var vDate:Date = new Date(today.getFullYear(), 2, 0);
		var diff:Number = today - from;
		
		// had to divide by 1000 because flash counts miliseconds
		var age:Number = Math.floor((diff / 31556926) / 1000) + ((vDate.getDate()) == 29 ? 1 : 0);
		
		this._parent._parent.age_mc.input_txt.text = age;
	}
}