function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);


function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_showHideLayers() { //v3.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
    obj.visibility=v; }
}

var Now = new Date();
Form = document.checkdate;

function initCalendar()
{
	Form = document.checkdate;
	Form.averagecyc.value = 28;
	Form.averagemenses.value = 5;
	Form.Year.value = Now.getYear();
	Form.Month.value = Now.getMonth() + 1;
	Form.Day.value = Now.getDate();

	getCalendar(1,0);
	document.all.Calendar1.outerHTML = calendarStr;
	getCalendar(2,0);
	document.all.Calendar2.outerHTML = calendarStr;
	
}

function resetInput()
{
	Form.reset();
}

function getMonthDate(year,month)
{
	var monthDays = new Array(12);
	monthDays[0] = 31;
	monthDays[1] = 28;
	monthDays[2] = 31;
	monthDays[3] = 30;
	monthDays[4] = 31;
	monthDays[5] = 30;
	monthDays[6] = 31;
	monthDays[7] = 31;
	monthDays[8] = 30;
	monthDays[9] = 31;
	monthDays[10] = 30;
	monthDays[11] = 31;

	if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0))
	{
		monthDays[1] = 29;
	}
	
	return monthDays[month];
}

function showMsg(event,msg,id)
{
	if (document.all && document.readyState=="complete")
	{
		eval("var messages=document.all.messages" + id + ";");
		messages.innerHTML='' + msg;
		messages.style.pixelLeft=event.clientX + document.body.scrollLeft - 20;
		messages.style.pixelTop=event.clientY + document.body.scrollTop + 20;
		messages.style.visibility="visible";
	}
}

function hideMsg(id)
{
	eval("document.all.messages" + id + ".style.visibility='hidden';");
}

function getCalendar(calendarID,flag)
{
	calendarStr = "";		
	var currYear = Form.Year.value;
	var currMonth = parseInt(Form.Month.value) + calendarID - 1;
	if(currMonth > 12)
	{
		currYear = parseInt(Form.Year.value) + 1;
		currMonth = currMonth % 12;
	}
	
	calendarStr = calendarStr + "<table width='100%' border='0' cellspacing='0' cellpadding='2' class='box3' id='Calendar" + calendarID + "'>";
	calendarStr = calendarStr + "<tr bgcolor='#9FEF3F' align='center'><td colspan='7' class='bt'>" + currYear+' 年 ' + currMonth +' 月</td></tr>';
	calendarStr = calendarStr + "<tr><td align='center' bgcolor='#CCCCCC' class='bt'>日</td><td align='center' bgcolor='#CCCCCC' class='bt'>一</td><td align='center' bgcolor='#CCCCCC' class='bt'>二</td><td align='center' bgcolor='#CCCCCC' class='bt'>三</td><td align='center' bgcolor='#CCCCCC' class='bt'>四</td><td align='center' bgcolor='#CCCCCC' class='bt'>五</td><td align='center' bgcolor='#CCCCCC' class='bt'>六</td></tr>";
	calendarStr = calendarStr + "<tr>";

	var startDate = new Date(Date.UTC(Form.Year.value,parseInt(Form.Month.value)-2+calendarID,1));
	startDay = startDate.getDay();
	
	var Ln = 1;
  var Col = 0;
	for (i=0;i<startDay;i++)
	{
		calendarStr = calendarStr + "<td></td>";
		Col++;
	}

	var mensesDate = new Date(Date.UTC(Form.Year.value,parseInt(Form.Month.value)-1,Form.Day.value))	
	myMonthDate = getMonthDate(currYear,currMonth-1);
	
	for (i=1;i<=myMonthDate;i++)
	{
		var trBgcolor = "";
		if(Ln % 2 == 0)
		{
			trBgcolor = "#F7F7E6";
		}
		calendarStr = calendarStr + "<td align='center' class='bt' bgcolor=" + trBgcolor + ">";
		var color = "#019934";
		
		if(flag)
		{	
			var msgStr ="";
			var myDate = new Date(Date.UTC(currYear,currMonth-1,i));
			var myavgCyc = parseInt(Form.averagecyc.value);
			var myavgMenses = parseInt(Form.averagemenses.value);
			var myTime = Math.floor((myDate.getTime() - mensesDate.getTime()) / (24 * 60 * 60 * 1000));
			var someDate = (myTime % myavgCyc + myavgCyc) % myavgCyc;

			if (someDate>=0 && someDate<=(myavgMenses-1))
			{	color = "#000000";
				msgStr = "这是月经期，要注意经期卫生，避免性事！"
			}
			if (someDate>=myavgMenses && someDate<=(myavgCyc-20))
			{	color = "#019934";
				msgStr = "这是安全期，性事一般不会受孕，您放心吧！";	
			}
			if (someDate>=(myavgCyc-19) && someDate<=(myavgCyc-10))
			{	color = "#FF3300";
				msgStr = "这是危险期，亦称排卵期，性事受孕可能性大，千万要注意！";
			}
			if (someDate>=(myavgCyc-9) && someDate<=(myavgCyc-1))	
			{	color = "#019934";
				msgStr = "这是安全期，性事一般不会受孕，您放心吧！";	
			}
		
			msgID = 100 * calendarID + i;

			msgStr = "<table cellPadding=1 cellSpacing=1>" + "<tr><td bgcolor=#FFFFCC style=font-size:12px;color:" + color + ";>" + msgStr + "</td></tr></table>";
						
			calendarStr = calendarStr + "<div id='messages" + msgID + "' style='position:absolute;visibility:hidden;clip:rect(0 200 200 0);width:200px;background-color:#666666;'></div>";
			
			calendarStr = calendarStr + "<a href='#' onMouseOver=\"showMsg(event,'" + msgStr + "'," + msgID + ")\" onMouseOut=\"hideMsg(" + msgID + ")\">";
		}
		
		calendarStr = calendarStr + "<span style='color:" + color + "'>" + i + "</span></td>";

		Col++;
		
		if (Col == 7)
		{
			calendarStr = calendarStr + "</tr><tr>"; 
			Col = 0;
			Ln++;
		}
	}
  
	var endDate = new Date(Date.UTC(Form.Year.value,(parseInt(Form.Month.value)-2+calendarID),myMonthDate));
	endDay = endDate.getDay();
	for (i=endDay;i<6;i++)
	{
		calendarStr = calendarStr + "<td></td>";
	}
	
	calendarStr = calendarStr + "</tr></table>";
}

function showCalendar()
{
	if(isNaN(Form.averagecyc.value) || Form.averagecyc.value.length == 0)
	{
		alert("请正确输入平均月经周期！");
		Form.averagecyc.focus();
		return false;
	}
	if(parseInt(Form.averagecyc.value) > 35 || parseInt(Form.averagecyc.value) < 26 )
	{
		alert("月经周期一般为26-35天。您的月经周期不在此范围，请注意调理。")
		Form.averagecyc.focus();
		return false;
	}
	if(isNaN(Form.averagemenses.value) || Form.averagemenses.value.length == 0)
	{
		alert("请正确输入平均行经期！");
		Form.averagemenses.focus();
		return false;
	}
	if(parseInt(Form.averagemenses.value) > 8 || parseInt(Form.averagemenses.value) < 3)
	{
		alert("行经期一般为3-8天。您的行经期不在此范围，请注意调理。")
		Form.averagemenses.focus();
		return false;
	}
	if (isNaN(Form.Year.value) || Form.Year.value < 1970)
	{
		alert("请正确输入年份！");
		Form.Year.focus();
		return false;
	}
	if (isNaN(Form.Month.value) || Form.Month.value < 1 || Form.Month.value > 12)
	{
		alert("请正确输入月份！")
		Form.Month.focus();
		return false;
	}
	if (isNaN(Form.Day.value) || Form.Day.value < 1 || Form.Day.value > myMonthDate)
	{
		alert("请正确输入日子！")
		Form.Day.focus();
		return false;
	}
	var mensesDate = new Date(Date.UTC(Form.Year.value,(parseInt(Form.Month.value)-1),Form.Day.value))	
	if ((Now.getTime() - mensesDate.getTime()) < 0)
	{
		alert("请正确输入上次月经时间！")
		Form.Year.focus();
		return false;
	}	

	getCalendar(1,1);
	document.all.Calendar1.outerHTML = calendarStr;
	getCalendar(2,1);
	document.all.Calendar2.outerHTML = calendarStr;	
}