
	function parseDate(datein, dateout)
	{
		if(datein == "")
		{
			alert("I need a date input!"); return -1;
		}
		var date = datein.value;
		if(date == "") return -1;
		
		var month, day, year, newdate;
		var endmonth, endday;
		var i;
		var c;
		var err = "";
		
		month = day = year = newdate = "";
		endmonth = endday = false;
		
		for(i = 0; i < date.length; i++)
		{
			c = date.charAt(i);
			if(c ==	'\\' || c == '/' || c == ' ' || c == '-' || c == ',')
			{
				if(!endmonth) endmonth = true;
				else if(!endday) endday = true;
				else break;
			}
			else if(!endmonth)
			{
				month+=c;
			}
			else if(!endday)
			{
				day+=c;
			}
			else
			{
				year+=c;
			}
		}
		
		if(month.length == 8 && month == date && date > 19900101 && date < 21000101)
		{
			if(dateout != "")
			{
				dateout.value = date;
			}
			return 0; //date was already good (probably)
		}
		
		if(month.length == 1) month = "0"+month;
		if(day.length == 1) day = "0"+day;
		if(year.length == 1) year = "200"+year;
		else if(year.length == 2) year = "20"+year;
		else if(year.length == 3) year = "2"+year;

		newdate = year+month+day;
		
		//check for critical errors
		if(newdate.length != 8)
			err+="The final date ("+newdate+") is not 8 characters!\n";
		if(month == "" || month <= 0 || month > 12)
			err+="The month ("+month+") is clearly wrong.\n";
		if(day == "" || day <= 0 || day > 31)
			err+="The day ("+day+") is clearly wrong.\n";
		if(year == "" || year < 1990 || year > 2100)
			err+="The year ("+year+") is clearly wrong.\n";
		
		if(err != "")
		{
			err+="There were some errors reading the date!  Please try to enter the date again!\n";
			//err+="Critical errors encountered!  I set the date to 20000101.\n";
			//newdate = "20000101";
		}
		
		//non critical errors
		if(i < date.length - 1)
			err+="Just so you know, there was some extra stuff left over I didn't use to read the date\n";
		if(dateout != "")
			dateout.value = newdate;
		if(err)
		{
			//alert(err);
			 newdate = -1;
		}
		return newdate;
	}

