// autocompletes date
// onblur="this.value = formatDate(this.value);"
function  nextChunk(s,start){
	a = s.indexOf('/', start);
	b = s.indexOf('.', start);
	c = s.indexOf(' ', start);
	d = s.indexOf("-", start);
	var n = -1;
	if (a > n){
		n = a;
	}
	if ( b > 0 ){
		if ( n < 0) {
			n = b;
		} if ( b < n) {
			n = b;
		}
	}
	if ( c > 0 ){
		if ( n < 0) {
			n = c;
		} if ( c < n) {
			n = c;
		}
	}
	if ( d > 0 ){
		if ( n < 0) {
			n = d;
		} if ( d < n) {
			n = d;
		}
	}
	return n;
}

function formatDateControl( ctl) {
	ctl.value= formatDate(ctl.value);
}

function MonthAbbvToNumber( monthstr) {
	if( -1 != monthstr.search(/jan/i) ){
		return 0;
	}else if( -1 != monthstr.search(/feb/i)) {
		return 1;
	} else if( -1 != monthstr.search(/Mar/i) ){
		return 2;
	} else if( -1 != monthstr.search(/Apr/i) ){
		return 3;
	}  else if( -1 != monthstr.search(/may/i) ){
		return 4;
	}   else if( -1 != monthstr.search(/jun/i) ){
		return 5;
	}   else if( -1 != monthstr.search(/jul/i) ){
		return 6;
	}   else if( -1 != monthstr.search(/aug/i) ){
		return 7;
	}   else if( -1 != monthstr.search(/sep/i) ){
		return 8;
	}   else if( -1 != monthstr.search(/oct/i) ){
		return 9;
	}   else if( -1 != monthstr.search(/nov/i) ){
		return 10;
	}   else if( -1 != monthstr.search(/dec/i) ){
		return 11;
	} 
	return -1; 
}

function MonthNumberToAbbv( monthnum ) {
	switch ( monthnum ) {
	case 0:
		return "Jan";
		break;
	case 1:
		return "Feb";
		break;
	case 2:
		return "Mar";
		break;
	case 3:
		return "Apr";
		break;
	case 4:
		return "May";
		break;
	case 5:
		return "Jun";
		break;
	case 6:
		return "Jul";
		break;
	case 7:
		return "Aug";
		break;
	case 8:
		return "Sep";
		break;
	case 9:
		return "Oct";
		break;
	case 10:
		return "Nov";
		break;
	case 11:
		return "Dec";
		break;
		}
}


function MonthNumberToMonthName( monthnum ) {
	switch ( monthnum ) {
	case 0:
		return "January";
		break;
	case 1:
		return "February";
		break;
	case 2:
		return "March";
		break;
	case 3:
		return "April";
		break;
	case 4:
		return "May";
		break;
	case 5:
		return "June";
		break;
	case 6:
		return "July";
		break;
	case 7:
		return "August";
		break;
	case 8:
		return "September";
		break;
	case 9:
		return "October";
		break;
	case 10:
		return "November";
		break;
	case 11:
		return "December";
		break;
		}
}
	
function formatDate(data)
{
	var dlen = data.length;
	while ( dlen > 0) {
		dlen = data.length -1;
		if( data.charAt(dlen) == ' '){
			data=data.substr(0,dlen);
			dlen = dlen -1;
		} else {
			dlen =0;
		}
	}
	if ( data.length ==0){
		return "";
	}
	if (data.toUpperCase().indexOf("NA") > -1 ) {
		return "DNA";
	}
	if (data.toUpperCase().indexOf("TEL") > -1 ) {
		return "TELEX";
	}
	var normdate = true;
	var d = new Date();
	var a = nextChunk(data,0);
	if( a < 0){
		d.setDate( parseInt(data) );

	} else {

		var strs = new Array();
		strs[0]= data.substr(0,a); // first string
		monum = parseInt( strs[0]);
		datenum = -1;
		
		var b = nextChunk(data,a +1);
		a= a+1;
		if ( b < 0) { // two strings, not three
			strs[1] = data.substr( a);
			datenum = parseInt( strs[1] );
			if( isNaN( datenum )) { // day-MONTH
				normdate = false;
				datenum = monum; // day was first
				monum = MonthAbbvToNumber( strs[1]);
			} else {		// M/D
				monum = monum -1; // javascript is 0-11 months
			}
		} else { // three strings
			strs[1] = data.substr( a, b-a);
			
			datenum = parseInt( strs[1] );
			if( isNaN(datenum)) { // day-MONTH
				normdate = false;
				datenum = monum; // day was first
				monum = MonthAbbvToNumber( strs[1]);
			} else {		// M/D
				monum = monum -1; // javascript is 0-11 months
			}
			
			strs[2] = data.substr( b +1);
			if ( strs[2].charAt(0) == '0'){
				strs[2] = data.substr( b +2);
			}
			var yr = parseInt(strs[2]);
			if ( yr < 1000) {
				yr = yr + 2000;
			} else if ( yr < 100) {
				yr = yr + 1900;
			}
			d.setYear( yr );
		}
		// set month and day
		d.setDate( 1 );
		d.setMonth( monum );
		d.setDate( datenum );
	}

//	alert('[0] ' + strs[0]);
//	alert('[1] ' + strs[1]);
//	alert('[2] ' + strs[2]);
	if( isNaN( d.getDate() ) ){
		return '';
	}
	if ( normdate ) {
		nudate = d.getMonth() +1 + '/' + d.getDate() + '/' + d.getFullYear();
	} else {
		nudate = d.getDate() +'-' + MonthNumberToAbbv( d.getMonth());
		var y = d.getFullYear();
		var now = new Date();
		if ( y != now.getFullYear()){
			nudate = nudate + "-" + d.getFullYear();
		}
	}
	return nudate;
}

function DateToDateString( dateVal ){
	var moname = MonthNumberToMonthName(dateVal.getMonth());
	var rslt = moname + ' ' + dateVal.getDate() +', ' + dateVal.getFullYear();
	return rslt;
}

function GetTodaysDateString(){
	return DateToDateString( new Date());
}