// JavaScript Document

var lmpD = -1
var lmpM
var lmpY

var edcD 
var edcM
var edcY

var id0
var innerHTML0

function writeDate(dd,mm,yyyy){
var monthName = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
var strDate = monthName[mm] + " " + dd + ", " + yyyy
return strDate
}


function addDays(myDate,days) {
    return new Date(myDate.getTime() + days*24*60*60*1000);
}


function maxDays(mm, yyyy){
var mDay;
	if((mm == 3) || (mm == 5) || (mm == 8) || (mm == 10)){ 
		mDay = 30;
  	}
  	else{
  		mDay = 31
  		if(mm == 1){
   			if (yyyy/4 - parseInt(yyyy/4) != 0){
   				mDay = 28
   			}
		   	else{
   				mDay = 29
  			}
		}
  }
return mDay; 
}

function writeCalendar(index){
var now = new Date
var dd = now.getDate()
var mm = now.getMonth()
var dow = now.getDay()
var yyyy = now.getFullYear()

if (index == 1){
	lmpD = dd
	lmpM = mm
	lmpY = yyyy
	var lmpDate = new Date (lmpY, lmpM, lmpD, 0, 0, 0);

	var edcDate = new Date()
	edcDate = addDays(lmpDate,280)
	edcD = edcDate.getDate()
	edcM = edcDate.getMonth()
	edcY = edcDate.getFullYear()		
}

var arrM = new Array("January","February","March","April","May","June","July","August","September","October","November","December")
var arrY = new Array()
	for (ii=0;ii<=4;ii++){
		arrY[ii] = yyyy + ii -2
	}
var arrD = new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat")

var arrH = new Array()
arrH[1] = "First Day of the Last Menstrual Period"
arrH[2] = "Estimated Date of Confinement"

var text = ""
text = "<form name=calForm"+index+ ">"
text += "<table>"
text += "<tr><td align=center><span class=header1>"+arrH[index]+"</span></td></tr>"
text += "<tr><td>"
text += "<table width=100%>"
text += "<tr><td align=left>"
text += "<select name=selMonth onChange='changeCal(\"" + index + "\")'>"
	for (ii=0;ii<=11;ii++){
		if (ii==mm){
			text += "<option value= " + ii + " Selected>" + arrM[ii] + "</option>"
		}
		else{
			text += "<option value= " + ii + ">" + arrM[ii] + "</option>"
		}
	}
text += "</select>"
text += "</td>"

text += "<td align=right>"
text += "<select name=selYear onChange='changeCal(\"" + index + "\")'>"
	for (ii=0;ii<=4;ii++){
		if (arrY[ii]==yyyy){
			text += "<option value= " + arrY[ii] + " Selected>" + arrY[ii] + "</option>"
		}
		else{		
			text += "<option value= " + arrY[ii] + ">" + arrY[ii] + "</option>"
		}
	}
text += "</select>"
text += "</td></tr>"
text += "</table>"

text += "</td></tr>"

text += "<tr><td>"
text += "<table style='border:1px solid #3c7faf;'>"
text += "<tr>"
	for (ii=0;ii<=6;ii++){
		text += "<td align=center Valign=middle class=label style='border-right:1px solid #9999cc; border-bottom:1px solid #9999cc; background:#0077bc;'>" + arrD[ii] + "</td>"
	}
text += "</tr>"
aa = 0
	for (kk=0;kk<=5;kk++){
		text += "<tr>"
		for (ii=0;ii<=6;ii++){
			if (index==1){
				text += "<td align=center id=td" + index + "_" + aa + "><a href=" + aa + " ID=" + index + "_" + aa + " class=cal onClick='changeBg(this.id,this.innerHTML);this.blur();return false'>1</a></td>"
			}
			else{
				text += "<td align=center id=td" + index + "_" + aa + "><a href=" + aa + " ID=" + index + "_" + aa + " class=cal onClick='this.blur();return false'>1</a></td>"
			}			
		aa += 1
		}
		text += "</tr>"
	}
text += "</table>"
text += "</td></tr>"
text += "</table>"
text += "</form>"
document.write(text)
changeCal(index)
}

function changeCal(index){
var currM = parseInt(eval("document.calForm"+index+".selMonth.value"))
var prevM
	if (currM!=0){
		prevM = currM - 1
	}
	else{
		prevM = 11
	}
	
var currY = parseInt(eval("document.calForm"+index+".selYear.value"))

var mmyyyy = new Date()
mmyyyy.setFullYear(currY,currM,1)

var day1 = mmyyyy.getDay()
	if (day1 == 0){
		day1 = 7
	}

var arrN = new Array(41)
var aa

	for (ii=0;ii<day1;ii++){
		arrN[ii] = maxDays((prevM),currY) - day1 + ii + 1
		arrN[ii] = "&nbsp;"
	}

	aa = 1
	for (ii=day1;ii<=day1+maxDays(currM,currY)-1;ii++){	
		arrN[ii] = aa
		aa += 1
	}
	
	aa = 1
	for (ii=day1+maxDays(currM,currY);ii<=41;ii++){
		arrN[ii] = aa
		arrN[ii] = "&nbsp;"
		aa += 1
	}
	
	for (ii=0;ii<=41;ii++){		
		eval("document.getElementById('td" + index + "_" +ii+"')").style.backgroundColor = "#ffffff"
	}	
	

var dCount = 0
	for (ii=0;ii<=41;ii++){		
		if (((ii<7)&&(arrN[ii]>20))||((ii>27)&&(arrN[ii]<20))){
			eval("document.getElementById('" + index + "_" +ii+"')").innerHTML = arrN[ii]
			eval("document.getElementById('" + index + "_" +ii+"')").style.color = "#FFF"
			eval("document.getElementById('" + index + "_" +ii+"')").style.fontWeight = "normal"	
		}
		else{
			eval("document.getElementById('" + index + "_" +ii+"')").innerHTML = arrN[ii]
			if ((dCount==0)||(dCount==6)){
				eval("document.getElementById('" + index + "_" +ii+"')").style.color = "#FF0000"				
				eval("document.getElementById('" + index + "_" +ii+"')").style.fontWeight = "bold"				
			}
			else{
				eval("document.getElementById('" + index + "_" +ii+"')").style.color = "#000000"
				eval("document.getElementById('" + index + "_" +ii+"')").style.fontWeight = "bold"
			}
			if (index==1){
				if ((arrN[ii]==lmpD)&&(currM==lmpM)&&(currY==lmpY)){
					eval("document.getElementById('td" + index + "_" +ii+"')").style.backgroundColor = "#ffb5f5"	
					id0 = "1_" + ii
					innerHTML0 = "" + lmpD	
				}
			}
			if (index==2){
				if ((arrN[ii]==edcD)&&(currM==edcM)&&(currY==edcY)){
					eval("document.getElementById('td" + index + "_" +ii+"')").style.backgroundColor = "#ffb5f5"
				}
			}			
		}
		
	dCount += 1
		if (dCount>6){
			dCount=0
		}						
	}		
}

function changeBg(id,innerHTML){
	if ((innerHTML=="&nbsp;")||(innerHTML.charCodeAt(0) == 160)){
	}
	else{
		lmpD = parseInt(innerHTML)
		lmpM = parseInt(document.calForm1.selMonth.value)
		lmpY = parseInt(document.calForm1.selYear.value)

		for (ii=0;ii<=41;ii++){
			eval("document.getElementById('td" + 1 + "_" +ii+"')").style.backgroundColor = "#ffffff"
			eval("document.getElementById('td" + 2 + "_" +ii+"')").style.backgroundColor = "#ffffff"
		}
		
		eval("document.getElementById('td" + id +"')").style.backgroundColor = "#bdd6f5"
			
		var lmpDate = new Date (lmpY, lmpM, lmpD, 0, 0, 0);

		var edcDate = new Date()
		edcDate = addDays(lmpDate,280)
		edcD = edcDate.getDate()
		edcM = edcDate.getMonth()
		edcY = edcDate.getFullYear()	
		
		document.calForm2.selMonth.value = edcM
		document.calForm2.selYear.value = edcY
		changeCal(2)	
		
		document.getElementById('spLMP').innerHTML = writeDate(lmpD,lmpM,lmpY)	
		document.getElementById('spEDC1').innerHTML = writeDate(edcD,edcM,edcY)
		document.getElementById('spEDC2').innerHTML = writeDate(edcD,edcM,edcY)	
	}
}

function writePregnancyCalendar(){
//document.write("<table><tr><td><h2><font color=blue>Pregnancy Calendar</font></h2></td></tr></table>")
document.write("<table>")
document.write("<tr>")
document.write("<td>")
writeCalendar(1)
document.write("</td>")
document.write("</tr><tr>")
document.write("<td>")
writeCalendar(2)
document.write("</td>")
document.write("</tr>")
document.write("</table>")

document.write("<div align='center' style='margin: 0 5px;'><span class=header1>First Day of the Last Menstrual Period:&nbsp;&nbsp;&nbsp;</span><span id=spLMP class=report1></span><hr>")
document.write("<span class=header1>Estimated Date of Confinement:&nbsp;&nbsp;&nbsp;</span><span id=spEDC1 class=report2></span><hr>")
document.write("<span class=header1>Delivery is likely to be on&nbsp;&nbsp;</span><br><span id=spEDC2 class=report2></span><span class=header1>&nbsp;&nbsp;+ (or) - 2 weeks.</span><hr>")
document.write("<span class=disclaimer>Disclaimer: this pregnancy calendar was designed for educational purposes only. Please see your Dr. for a practical advice.</span></div>")

changeBg(id0,innerHTML0)
}