  <!-- Original:  Ronnie T. Moore, Editor -->
<!-- Web Site:  The JavaScript Source -->

<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->

<!-- Begin
function isValidDate(dateStr) {
// Date validation function courtesty of 
// Sandeep V. Tamhankar (stamhankar@hotmail.com) -->

// Checks for the following valid date formats:
// MM/DD/YY   MM/DD/YYYY   MM-DD-YY   MM-DD-YYYY

var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/; // requires 4 digit year

var matchArray = dateStr.match(datePat); // is the format ok?
if (matchArray == null) {
alert("Date is not in a valid format.")
return false;
}
month = matchArray[1]; // parse date into variables
day = matchArray[3];
year = matchArray[4];
if (month < 1 || month > 12) { // check month range
alert("Month must be between 1 and 12.");
return false;
}
if (day < 1 || day > 31) {
alert("Day must be between 1 and 31.");
return false;
}
if ((month==4 || month==6 || month==9 || month==11) && day==31) {
alert("Month "+month+" doesn't have 31 days!")
return false;
}
if (month == 2) { // check for february 29th
var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
if (day>29 || (day==29 && !isleap)) {
alert("February " + year + " doesn't have " + day + " days!");
return false;
   }
}
return true;
}

function dispDate(dateObj) {
month = dateObj.getMonth()+1;
month = (month < 10) ? "0" + month : month;

day   = dateObj.getDate();
day = (day < 10) ? "0" + day : day;

year  = dateObj.getYear();
if (year < 2000) year += 1900;

return (month + "/" + day + "/" + year);
}

function pregnancyCalc(pregform) {
menstrual = new Date(); // creates new date objects
ovulation = new Date();
expdate = new Date();
duedate = new Date();
today = new Date();
 


if (isValidDate(pregform.menstrual.value)) { // Validates menstual date 
menstrualinput = new Date(pregform.menstrual.value);
menstrual.setTime(menstrualinput.getTime())
}
else return false; // otherwise exits



if (isValidDate(pregform.expdate.value)) { // Validates exposure date 
expdateinput = new Date(pregform.expdate.value);
expdate.setTime(expdateinput.getTime())
}
else return false; // otherwise exits


 pregform.organs.value =""

duedate.setTime(menstrual.getTime() + 280*86400000);
pregform.duedate.value = dispDate(duedate);

// sets fetal age to 14 + 266 (pregnancy time) - time left
var fetalage = 280 - ((duedate - today) / 86400000);
weeks = parseInt(fetalage / 7); // sets weeks to whole number of weeks
days = Math.floor(fetalage % 7); // sets days to the whole number remainder

 duedate.setTime(menstrual.getTime() + 280*86400000);
pregform.duedate.value = dispDate(duedate);

 // sets fetal age to 14 + 266 (pregnancy time) - time left
var efetalage = 266 - ((duedate - expdate) / 86400000);
eweeks = parseInt(efetalage / 7); // sets weeks to whole number of weeks
edays = Math.floor(efetalage % 7); // sets days to the whole number remainder






if(efetalage >= 14 && efetalage <= 38){
pregform.organs.value = pregform.organs.value + "The central nervous system."+"<BR>";
}
if(efetalage >= 18 && efetalage <= 42){
pregform.organs.value = pregform.organs.value + "The heart."+"<BR>";
}
if(efetalage >= 22 && efetalage <= 60){
pregform.organs.value = pregform.organs.value + "The ears."+"<BR>";
}
if(efetalage >= 24 && efetalage <= 56){
pregform.organs.value = pregform.organs.value + "The eyes."+"<BR>";
}
if(efetalage >= 25 && efetalage <= 53){
pregform.organs.value = pregform.organs.value + "The limbs."+"<BR>";
}
if(efetalage >= 30 && efetalage <= 40){
pregform.organs.value = pregform.organs.value + "The lip."+"<BR>";
}
if(efetalage >= 40 && efetalage <= 57){
pregform.organs.value = pregform.organs.value + "The teeth."+"<BR>";
}
if(efetalage >= 40 && efetalage <= 60){
pregform.organs.value = pregform.organs.value + "The palate."+"<BR>";
}
if(efetalage >= 44 && efetalage <= 63){
pregform.organs.value = pregform.organs.value + "The external genitalia.";
}




 if(efetalage <=0 ){
var suscep = "Conception had not occurred.";
}

 if(efetalage >0 && efetalage <= 14){
var suscep = "Preorganogenesis.";
}

 if(efetalage > 14 && efetalage <= 56){
var suscep = "The following would have been susceptible to major malformations at that time:";
}
 if(efetalage > 56 ){
var suscep = "The central nervous system, ears, eyes, teeth, and external genitalia would have been susceptible to following would have been susceptible funtional defects and minor malformations at that time:";
}
 


var state=""


 if(efetalage <=56){
var state = "embryo";
}
 
 if(efetalage >56){
var state = "fetus";
}




// fetal age message, automatically includes 's' on week and day if necessary
fetalage = weeks + " week" + (weeks > 1 ? "s" : "") + ", " + days + " days";
pregform.fetalage.value = fetalage;





  // fetal age message, automatically includes 's' on week and day if necessary
efetalage = eweeks + " week" + (eweeks > 1 ? "s" : "") + ", " + edays + " days";
pregform.efetalage.value = efetalage;


 


 
 
 
 
 


 
 
 
 win = window.open("","results","width=560,height=380,left=0,top=0,menubar=yes")



 



 



	 win.document.writeln ( "<html><head><title>Development at Time of Exposure</title></head>" ) 

	

 win.document.writeln ('<body>')
  	 win.document.writeln('<P ALIGN=JUSTIFY><FONT SIZE=+1><FONT FACE=ARIAL>The mother is now '+ '<BR>' + pregform.fetalage.value + ' pregnant.</FONT></FONT>')
	
	win.document.writeln('<P ALIGN=JUSTIFY><FONT SIZE=+1><FONT FACE=ARIAL>At the time of exposure, '+ pregform.expdate.value + ', the '+ state + ' was '+ '<BR>' + pregform.efetalage.value + ' old.</FONT></FONT>')
 
	
	win.document.writeln('<P ALIGN=JUSTIFY><FONT SIZE=+1><FONT FACE=ARIAL>'+ suscep + '<BR>' + pregform.organs.value +'</FONT></FONT>')
	
   	

	win.document.writeln ( "</body></html>" )



 







 



 



 win.document.close()
 
 
 
 



 return false; // form should never submit, returns false








}








//  End -->
