var dayName = new Array("nedjelja", "ponedjeljak", "utorak", "srijeda", "četvrtak", "petak", "subota");
var monName = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
var mjesec = new Array("siječanj", "veljača", "ožujak", "travanj", "svibanj", "lipanj", "srpanj", "kolovoz", "rujan", "listopad", "studeni", "prosinac"); 
 var maxDays = new Array(12);
	maxDays[0] = 31;
	maxDays[1] = 28;
	maxDays[2] = 31;
	maxDays[3] = 30;
	maxDays[4] = 31;
	maxDays[5] = 30;
	maxDays[6] = 31;
	maxDays[7] = 31;
	maxDays[8] = 30;
	maxDays[9] = 31;
	maxDays[10] = 30;
	maxDays[11] = 31;

function whatDay(form,isEdd) {
	var month = form.month.selectedIndex;
	var date = form.date.selectedIndex + 1;
	var year = form.year.selectedIndex;
	var today = new Date();
	thisYear = today.getYear();
	//   2000 test
	if (thisYear < 300) {
		thisYear = thisYear + 1900
	}
	//  Koja godina?
	
	if (year == 0) {
		year = thisYear - 1;	// prošla
	} else {
		if ((isEdd == 2) && (year == 2)) {
			year = thisYear + 1	// naredna
		} else {
			year = thisYear;	// ova
		}
	}

	if (isEdd == 1) {	//  The choices for EDD year are 
				//  off by 1, compared to LMP choices
		year = year + 1
	}


	var whatDate = new Date(monName[month] + " " + date + ", " +
		year + " 12:00:00");

	form.day.selectedIndex = whatDate.getDay();

	if (isEdd == 2) {
		return true
	} else {
//		document.tjedni_t.trajanje_t.value = 0
			//  još se ne može izračunati,

	}

	//  Reset 

	document.Termin_p.p_men.value = ""
	document.Termin_p.k_men.value = ""
	document.Termin_p.k_nep.value = "" 
	document.Termin_p.p_plod.value = ""
	document.Termin_p.koncep_k.value = ""
	document.Termin_p.koncep_d.value = ""
	document.Termin_p.k_plod.value = ""
	document.Termin_p.p_neplo.value = ""
	document.Termin_p.p_men_k.value = ""
	document.Termin_p.p_men_d.value = ""
	document.Termin_p.porod.value = ""
	return true
}

function termin_p(form) {
	var LMPmonth = form.month.selectedIndex;
	var LMPdate = form.date.selectedIndex + 1;
	var LMPyear = form.year.selectedIndex;
	var kr = Number(form.kratki.value);
	var du = Number(form.dugi.value);

	if (LMPyear == -1) {
		alert("Molim, izaberite godinu.");
		form.year.focus();
		return false;
	}

//	document.tjedni_t.trajanje_t.value = 1;
		//  Now that we're calculating EDD, we may also calculate EGA later

	var today = new Date();
	thisYear = today.getYear();

	//   2000 test
	if (thisYear < 300) {
		thisYear = thisYear + 1900
	}


	//  Koja godina?
	
	if (LMPyear == 0) {
		LMPyear = thisYear - 1;	// Last year
	} else {
		LMPyear = thisYear;	// This year
	}


	if (!checkDate(LMPmonth,LMPdate,LMPyear)) {
		alert(mjesec[LMPmonth] + " ima " + maxDays[LMPmonth] + 
			" dana.");
		form.date.focus();
		return false;
	}
	
	var lmp = new Date(monName[LMPmonth] + " " + LMPdate + ", " +
		LMPyear + " 12:00:00");

	form.day.selectedIndex = lmp.getDay();
	form.theDate.value = lmp.getTime();

	var p_men = 0;	    // prvi dan m
	var k_men = 4;	   // kraj mens
	var k_nep = kr-19;   // kraj neplodnih
	var p_plod = kr-18;   // pocetak plodnih
	var koncep_k = kr-15;   // koncepcija
	var koncep_d = du-15;   // koncepcija
	var k_plod = du-13;   // kraj plodnih
	var p_neplo = du-12;   // pocetak neplodnih
	var p_men_k = kr-1;   // pocetak men kr
	var p_men_d = du-1;   // pocetak men dugi
	var porod = 280 + (du-kr)/2;   // pocetak men dugi

	if (k_men >= k_nep) {
		k_men = k_nep;
	} 
	if (kr == du) {
			var koncep_k = kr-16;   // koncepcija
	                var koncep_d = du-15;   // koncepcija
	} 


	form.p_men.value = display(lmp.getTime(),p_men,0,0);
	form.k_men.value = display(lmp.getTime(),k_men,0,0);
	form.k_nep.value = display(lmp.getTime(),k_nep,0,0);
	form.p_plod.value = display(lmp.getTime(),p_plod,0,0);
	form.koncep_k.value = display(lmp.getTime(),koncep_k,0,0);
	form.koncep_d.value = display(lmp.getTime(),koncep_d,0,0);
	form.k_plod.value = display(lmp.getTime(),k_plod,0,0);
	form.p_neplo.value = display(lmp.getTime(),p_neplo,0,0);
	form.p_men_k.value = display(lmp.getTime(),p_men_k,0,0);
	form.p_men_d.value = display(lmp.getTime(),p_men_d,0,0);
	form.porod.value = display(lmp.getTime(),porod,0,0);


	//  The '1' at the end indicates this is EDD
//	display(lmp.getTime(),edd,1,0);

	return true;
}


function display(whatDate,numDays,isEdd,isLMP) {
	var today = new Date();
	var lmp = new Date(whatDate);

	var futureDate = lmp.getTime() + (numDays * 24*60*60*1000);
		//  convert lmp to milliseconds, and add appropriate msec

	var future = new Date();
	future.setTime(futureDate);  // convert from msec to actual date
	future.setHours(12);		// set the time to 12:00 pm

	var futureDay = dayName[future.getDay()];
	var futureMonth = mjesec[future.getMonth()];
	var futureYear = future.getYear();

	if (isEdd == 1) {		// Change the EDD selection boxes
		var yearChoice = 0;

		//  Do we need to change the displayed EDD year?

	if ((lmp.getYear() == today.getYear()) && (today.getYear() != futureYear)) {
		yearChoice = 1;
	}

	if (futureYear < today.getYear()) {
		yearChoice = -1;
	}	

	document.zadnja_m.day.selectedIndex = future.getDay();
	document.zadnja_m.month.selectedIndex = future.getMonth();
	document.zadnja_m.date.selectedIndex = future.getDate() - 1;
	document.zadnja_m.year.selectedIndex = yearChoice;
	document.zadnja_m.theDate.value = future.getTime();

	}


	if (isLMP == 1) {		// Change the LMP selection boxes
		var yearChoice = 1;

		//  Do we need to change the displayed LMP year?

	if ((lmp.getYear() == today.getYear()) && (today.getYear() != futureYear)) {
		yearChoice = 0;
	}

	if (today.getYear() < futureYear) {
		yearChoice = -1;
	}

	document.Termin_p.day.selectedIndex = future.getDay();
	document.Termin_p.month.selectedIndex = future.getMonth();
	document.Termin_p.date.selectedIndex = future.getDate() - 1;
	document.Termin_p.year.selectedIndex = yearChoice;
	document.Termin_p.theDate.value = future.getTime();
	}


	//  Računanje trajanja trudnoće u tjednima na današnji dan
	if ((isEdd == 1) || (isLMP == 1)) {
		// prvo resetira sve

//		document.tjedni_t.month.selectedIndex = today.getMonth();
//		document.tjedni_t.date.selectedIndex = today.getDate()-1;
//		document.tjedni_t.year.selectedIndex = 1;
//		document.tjedni_t.day.selectedIndex = today.getDay();
//		document.tjedni_t.tjedni_u.value = "";
//		document.tjedni_t.duljina.value = "";  //*

		today.setHours(13);
			/* Since LMP is set to 12:00 noon, we must set
			   today's time temporarily to 1:00 pm, so that
			   if today date = LMP date, then 
			   today's time is GREATER than LMP time
			*/

		var todaydate = today.getTime();
		var lmpdate = document.Termin_p.theDate.value;
		var edd = document.zadnja_m.theDate.value;
		edd = Number(edd) + 10 *7*24*60*60*1000;
				//  Allow for up to 50 weeks EGA

		if ((todaydate > lmpdate) && 
			(todaydate < edd)) {
				// Check that today's date is BETWEEN 
				// the LMP and EDD
//		document.tjedni_t.tjedni_u.value = calcEGA(lmpdate,todaydate);
//		document.tjedni_t.duljina.value = duljina(lmpdate,todaydate);
		}			
		return true
	}		


	//  2000  test
	if (futureYear < 300) {
		futureYear = futureYear + 1900
	}

	var futureDisplay = futureDay + ", " +  future.getDate() + "." + futureMonth + " " + futureYear;

	return futureDisplay;
}


function checkDate(month,day,year) {
	//  Reset February's "maxdays"
	maxDays[1] = 28;

	//  Check February leap year
	//  Years divisible by 100 are NOT leap years (1700, 1800, 1900), 
	//  	except years divisible by 400 (2000, 2400) are leap years.

	if ((month == 1) && ((year % 4) == 0)) {
		if (((year % 100) == 0) && ((year % 400) != 0)) {
			maxDays[1] = 28;
		} else {
			maxDays[1] = 29;
		}
	}

	if (day > maxDays[month]) {
		return false;
	}

	return true;
}



function datum_tjedni(form) {
	if (document.tjedni_t.trajanje_t.value == 0) {
		alert("Izračunajte ili odredite najprije termin porođaja.");
		return false
	}

	var desiredMonth = form.month.selectedIndex;
	var desiredDate = form.date.selectedIndex + 1;
	var desiredYear = form.year.selectedIndex;

	var today = new Date();
	thisYear = today.getYear();

	//  Year 2000 test
	if (thisYear < 300) {
		thisYear = thisYear + 1900
	}

	//  What year was selected?
	
	desiredYear = thisYear + desiredYear - 1;

	if (!checkDate(desiredMonth,desiredDate,desiredYear)) {
		alert(mjesec[desiredMonth] + " ima " + 
			maxDays[desiredMonth] + " dana.");
		form.date.focus();
		return false;
	}
	
	var des = new Date(monName[desiredMonth] + " " + desiredDate +
		", " + desiredYear + " 14:00:00");
	form.day.selectedIndex = des.getDay();

	var lmpDate = document.Termin_p.theDate.value;
	var eddDate = document.zadnja_m.theDate.value;
	eddDate = Number(eddDate) + 10 *7*24*60*60*1000;
			// Allow EDD to be 50 weeks for maximum
	var desDate = des.getTime();

	//  Check that desired date is BETWEEN LMP and EDD

	if ((desDate < lmpDate) || (desDate > eddDate)) {
		alert("Izaberite datum između zadnje menstruacije i porođaja!");
		return false;
	}

	form.tjedni_u.value = calcEGA(lmpDate,desDate);
	form.duljina.value = duljina(lmpDate,desDate);
	return true
}


function calcEGA(lmpDate,desDate) {
	var daysEGA = (desDate - lmpDate) / (1000*60*60*24);
	var EGA = Math.floor(daysEGA / 7);
	var EGAfrac = Math.round(daysEGA % 7);
		//  Daylight Savings Time (DST) makes this calculation
		//  veer slightly off from being integer.

	if (EGAfrac == 7) {	//  korekcija za DST
		EGAfrac = 0;
		EGA = EGA + 1;
	}

	if (EGAfrac == 0) {
		return EGA
	}
		
	EGA = EGA + " " + EGAfrac + "/7";
	return EGA
}




function resetForm() {
	document.Termin_p.reset();


	return true
}


function dateSelect(Month,dd,Year,isEdd) {

var today = new Date();
document.writeln("<select name=\"day\" " + "class=\"porod\" " +
	"onChange=\"whatDay(this.form," + isEdd + ")\">");
for (var i=0; i < 7; i++) {
	if (i == today.getDay()) {
		document.writeln("<option selected>" +
		dayName[i]);
	} else {
		document.writeln("<option>" + 
		dayName[i]);
	}
}
document.writeln("</select>,");
document.writeln("<select name=\"date\" " + "class=\"porod\" " +
	"onChange=\"whatDay(this.form," + isEdd + ")\">");
for (var d = 1; d < 32; d++) {
	if (d == dd) {
		document.writeln("<option selected>" + dd);
	} else {
		document.writeln("<option>" + d);
	}
}

document.writeln("</select>. ");
document.writeln("<select name=\"month\" " +"class=\"porod\" " +
	"onChange=\"whatDay(this.form," + isEdd + ")\">");
for (var i=0; i < 12; i++) {
	if (i == Month) {
		document.writeln("<option selected>" +
		mjesec[i]);
	} else {
		document.writeln("<option>" + 
		mjesec[i]);
	}
}
document.writeln("</select>");
document.writeln("<select name=\"year\" " + "class=\"porod\" " +
	"onChange=\"whatDay(this.form," + isEdd + ")\">");
if (Year < 300) {
	Year = Year + 1900
	}
var checkYr = today.getYear();
if (checkYr < 300) {
	checkYr = checkYr + 1900
	}
var Year1 = Year - 1;
if (isEdd == 2) {Year = Year + 1} 
for (var yrCount = Year1; yrCount < (Year + 1); yrCount++) {
	if (yrCount == checkYr) {
		document.writeln("<option selected>" + yrCount)
	} else {
		document.writeln("<option>" + yrCount)
	}
}
document.writeln("</select>");
return true;
}
