var version = "other"      
browserName = navigator.appName;
browserVer = parseInt(navigator.appVersion);
if (browserName == "Netscape" && browserVer >= 3)version = "n3";    
else if (browserName == "Netscape" && browserVer < 3)version = "n2";   
else if (browserName == "Microsoft Internet Explorer" && browserVer >= 4)version = "e4";   
else if (browserName == "Microsoft Internet Explorer" && browserVer < 4)version = "e3"; 

var arrMonthDays = new Array("31","28","31","30","31","30","31","31","30","31","30","31");
var arrDayNames = new Array("Sun","Mon", "Tue","Wed", "Thu", "Fri", "Sat");
var arrMonthNames = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct",	"Nov", "Dec"); 

function stopError()
{
  return true;
}
window.onerror = stopError;



function result(theDate,numDays,type) 
{
// Version comaptibility for IE
if (version=="e4"){
	var today = new Date();
	var lmp = new Date(theDate);
	var lmpYear = lmp.getYear();
	var calcDate = lmp.getTime() + (numDays * 24*60*60*1000);
	var calc = new Date();
	calc.setTime(calcDate);
	calc.setHours(12);	// set the time to 12:00 pm

	var calcDay = arrDayNames[calc.getDay()];
	var calcMonth = arrMonthNames[calc.getMonth()];
	var calcYear = calc.getYear();


	//  Y2k test
	if (lmpYear < 200) 
	{
		lmpYear = lmpYear + 2000
	}
	if (calcYear < 200) 
	{
		calcYear = calcYear + 2000
	}

	yearChoice = calcYear - 2010;  // Set the index to the index of calcYear

	var calcResult = calcDay + ", " + calcMonth + " " + calc.getDate() + ", " + calcYear;

	if (type == "EDD")
	{
		document.eddForm.month.selectedIndex = calc.getMonth();
		document.eddForm.date.selectedIndex = calc.getDate() - 1;
		document.eddForm.year.selectedIndex = yearChoice;
	}

	if (type == "LMP") 
	{
		document.DueDate.month.selectedIndex = calc.getMonth();
		document.DueDate.date.selectedIndex = calc.getDate() - 1;
		document.DueDate.year.selectedIndex = yearChoice;
	}

	return calcResult;
}
// End of Version comaptibility for IE

// Version comaptibility for Netscape / Firefox
if (version=="n3"){
	var today = new Date();
	var lmp = new Date(theDate);
	var lmpYear = lmp.getYear();
	var calcDate = lmp.getTime() + (numDays * 24*60*60*1000);
	var calc = new Date();
	calc.setTime(calcDate);
	calc.setHours(12);	// set the time to 12:00 pm

	var calcDay = arrDayNames[calc.getDay()];
	var calcMonth = arrMonthNames[calc.getMonth()];
	var calcYear = calc.getYear();


	//  Y2k test
	if (lmpYear < 200) 
	{
		lmpYear = lmpYear + 1900
	}
	if (calcYear < 200) 
	{
		calcYear = calcYear + 1900
	}

	yearChoice = calcYear - 1910;  // Set the index to the index of calcYear

	var calcResult = calcDay + ", " + calcMonth + " " + calc.getDate() + ", " + calcYear;

	if (type == "EDD")
	{
		document.eddForm.month.selectedIndex = calc.getMonth();
		document.eddForm.date.selectedIndex = calc.getDate() - 1;
		document.eddForm.year.selectedIndex = yearChoice;
	}

	if (type == "LMP") 
	{
		document.DueDate.month.selectedIndex = calc.getMonth();
		document.DueDate.date.selectedIndex = calc.getDate() - 1;
		document.DueDate.year.selectedIndex = yearChoice;
	}

	return calcResult;
}
// End of Version comaptibility for Netscape / Firefox
}

function getLMP(form) 
{
	var EDDmonth = form.month.selectedIndex;
	var EDDdate = form.date.selectedIndex + 1;
	if (form.year.selectedIndex == -1) 
	{
		alert("Please select a year for Estimated Due Date.");
		form.year.focus();
		return false;
	}

	var EDDyear = form.year.options[form.year.selectedIndex].value

	if (!checkDate(EDDmonth,EDDdate,EDDyear)) 
	{
		alert(arrMonthNames[EDDmonth] + " only has " + arrMonthDays[EDDmonth] + " days.");
		form.date.focus();
		return false;
	}
	
	var edd = new Date(arrMonthNames[EDDmonth] + " " + EDDdate + ", " + EDDyear + " 12:00:00");

	var lmp = -280;		// estimated due date
	var conception = -266;	// conception (2 weeks)
	var secondtrim = -196;	// begining of second trimester
	var nt1 = -203;	// nt start
	var nt2 = -189;	//nt end
	var book = -140;	// class book date
	var thirdtrim = -91;	// begining of third trimester

	document.DueDate.conception.value = result(edd.getTime(),conception,"");
	document.DueDate.secondtrim.value = result(edd.getTime(),secondtrim,"");
	document.nt1.value = result(edd.getTime(),nt1,"");
	document.nt2.value = result(edd.getTime(),nt2,"");
	document.DueDate.book.value = result(edd.getTime(),book,"");
	document.DueDate.thirdtrim.value = result(edd.getTime(),thirdtrim,"");
	result(edd.getTime(),lmp,"LMP");
	return true;
}

function getEDD(form) 
{
	var LMPmonth = form.month.selectedIndex;
	var LMPdate = form.date.selectedIndex + 1;
	if (form.year.selectedIndex == -1) 
	{
		alert("Please select a year for last menstrual period.");
		form.year.focus();
		return false;
	}

        var LMPyear = form.year.options[form.year.selectedIndex].value

	if (!checkDate(LMPmonth,LMPdate,LMPyear)) 
	{
		alert(arrMonthNames[LMPmonth] + " only has " + arrMonthDays[LMPmonth] + " days.");
		form.date.focus();
		return false;
	}
	
	var lmp = new Date(arrMonthNames[LMPmonth] + " " + LMPdate + ", " + LMPyear + " 12:00:00");

	var edd = 280;		// estimated due date
	var conception = 14;	// conception (2 weeks)
	var secondtrim = 84;	// begining of second trimester
	var nt1 = 77;	// nt start
	var nt2 = 91;	//nt end
	var triple1 = 105;	//triple screening test start
	var triple2 = 147;	//triple screening test end
	var target1 = 126;	//targeted scan start
	var target2 = 140;	//targeted scan end
	var thirdtrim = 189;	// begining of third trimester
	//var book = 140;		// class book date	

	form.conception.value = result(lmp.getTime(),conception,"");
	form.secondtrim.value = result(lmp.getTime(),secondtrim,"");
	form.nt1.value = result(lmp.getTime(),nt1,"");
	form.nt2.value = result(lmp.getTime(),nt2,"");
	form.triple1.value = result(lmp.getTime(),triple1,"");
	form.triple2.value = result(lmp.getTime(),triple2,"");
	form.target1.value = result(lmp.getTime(),target1,"");
	form.target2.value = result(lmp.getTime(),target2,"");
	form.thirdtrim.value = result(lmp.getTime(),thirdtrim,"");
	form.edd.value = result(lmp.getTime(),edd,"");
	result(lmp.getTime(),edd,"EDD");
	return true;
	//form.book.value = result(lmp.getTime(),book,"");
}

function checkDate(intMonth,intDay,intYear) 
{
	//  Reset February
	arrMonthDays[1] = 28;

	if ((intMonth == 1) && ((intYear % 4) == 0)) 
	//  Check leap year
	//  years divisible by 100 are not leap years except for the ones divisible by 400.
	{
		if (((intYear % 100) == 0) && ((intYear % 400) != 0)) 
		{
			arrMonthDays[1] = 28;
		} 
		else 
		{
			arrMonthDays[1] = 29;
		}
	}
	if (intDay > arrMonthDays[intMonth]) 
	{
		return false;
	}
	return true;
}


function resetCalcDays()
{
	document.DueDate.conception.value = ""
	document.DueDate.secondtrim.value = ""
	document.DueDate.nt1.value = ""
	document.DueDate.nt2.value = ""
	document.DueDate.triple1.value = ""
	document.DueDate.triple2.value = ""
	document.DueDate.target1.value = ""
	document.DueDate.target2.value = ""
	document.DueDate.thirdtrim.value = ""
	//document.DueDate.book.value = ""
	
	return true
}
