function pop_calendar(str_target,str_datetime,language,px,py) {
if (px>0)
	{
	var setx = px
	var sety = py
	}
else
	{
	var mouseXonScreen = null
	var mouseYonScreen = null
	if(document.all){
		mouseXonScreen = window.event.screenX 
		mouseYonScreen = window.event.screenY
	} else if(document.layers || document.getElementById ){
		mouseXonScreen = e.screenX
		mouseYonScreen = e.screenY
	}
	var setx = mouseXonScreen -230
	var sety = mouseYonScreen -100
 	}
	var lang = (language == null || language =="" ?  "E": language);
//	if (lang == "E")
//	{var arr_months = ["January", "February", "March", "April", "May", "June",
//		"July", "August", "September", "October", "November", "December"];
//	var week_days = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"];
//	var meta_str = "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">";
//	}
//	else
//	{
	var arr_months = ["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月",
		"11月","12月"];
	var week_days = ["日", "月", "火", "水", "木", "金", "土"];
	var meta_str = "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=Shift_JIS\">";
//	}
	var n_weekstart = 0; // day week starts from (normally 0 or 1)

	var pc_datetime = (str_datetime == null || str_datetime =="" ?  new Date() : str_pc(str_datetime,lang));
	var pc_prev_month = new Date(pc_datetime);
	pc_prev_month.setMonth(pc_datetime.getMonth()-1);
	var pc_next_month = new Date(pc_datetime);
	pc_next_month.setMonth(pc_datetime.getMonth()+1);
	var pc_firstday = new Date(pc_datetime);
	pc_firstday.setDate(1);
	pc_firstday.setDate(1-(7+pc_firstday.getDay()-n_weekstart)%7);
	var pc_lastday = new Date(pc_next_month);
	pc_lastday.setDate(0);
	
	var str_buffer = new String (
		"<html>\n"+
		"<head>\n"+
		"<title>Calendar</title>\n"+
		meta_str+
		"<style type=\"text/css\">\n"+
		"<!--\n"+
		".cal {font-size: 12px}\n"+
		"a:link{text-decoration:none; color:#696969}\n"+
		"a:visited{text-decoration:none; color:#696969}\n"+
		"a:active{text-decoration:none; color:#696969}\n"+
		"a:hover{text-decoration:underline; color:#696969}\n"+
		"-->\n"+
		"</style>\n"+
		"</head>\n"+
		"<body leftmargin=\"0\" marginwidth=\"0\" topmargin=\"0\" marginheight=\"0\" bgcolor=\"#C6D6C4\">\n"+
		"<table cellspacing=\"0\" border=\"0\" width=\"100%\" bgcolor=\"#C6D6C4\">\n"+
		"<tr><td>\n"+
		"<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"100%\" bgcolor=\"#C6D6C4\">\n"+
		"<tr>\n	<td align=\"center\"><a href=\"javascript:void(0)\" onClick=\"window.opener.pop_calendar('"+
		str_target+"', '"+ str_pcdt(pc_prev_month,lang)+"','"+lang+"','"+setx+"','"+sety+"');\">"+
		"<</a></td>\n"+
		"<td align=\"center\">"
	);
//	if (lang == "E")
//	str_buffer +="<font color=\"696969\" class=\"cal\"><b>"
//		+arr_months[pc_datetime.getMonth()]+" "+pc_datetime.getFullYear()+"</b></font></td>\n";
//	else
	str_buffer +="<font color=\"#696969\" class=\"cal\"><b>"
		+pc_datetime.getFullYear()+"年 "+arr_months[pc_datetime.getMonth()]+"</b></font></td>\n";
	str_buffer += " <td align=\"center\"><a href=\"javascript:void(0)\" onClick=\"window.opener.pop_calendar('"
		+str_target+"', '"+str_pcdt(pc_next_month,lang)+"','"+lang+"','"+setx+"','"+sety+"');\">"+
		"></a></td></tr></table>\n";

	var pc_current_day = new Date(pc_firstday);
	str_buffer += "<table cellspacing=\"2\" cellpadding=\"2\" border=\"0\" width=\"100%\" bgcolor=\"#C6D6C4\"><tr>\n";
	for (var n=0; n<7; n++)
		str_buffer += "	<td bgcolor=\"#FFFFFF\" width=\"14%\" align=\"center\">"+
		"<font color=\"#696969\" class=\"cal\">"+
		week_days[(n_weekstart+n)%7]+"</font></td>\n";
	str_buffer += "</tr>\n";
	while (pc_current_day.getMonth() == pc_datetime.getMonth() ||
		pc_current_day.getMonth() == pc_firstday.getMonth()) {
		str_buffer += "<tr>\n";
		for (var n_current_wday=0; n_current_wday<7; n_current_wday++) {
				if (pc_current_day.getDate() == pc_datetime.getDate() &&
					pc_current_day.getMonth() == pc_datetime.getMonth())
					str_buffer += "	<td bgcolor=\"#FF9966\" align=\"center\">";
				else if (pc_current_day.getDay() == 0 || pc_current_day.getDay() == 6)
					str_buffer += "	<td bgcolor=\"#FFFFFF\" align=\"center\">";
				else
					str_buffer += "	<td bgcolor=\"#FFFFFF\" align=\"center\">";

				if (pc_current_day.getMonth() == pc_datetime.getMonth())
					str_buffer +="<font color=\"#0000FF\" class=\"cal\">"+
					"<a href=\"javascript:window.opener."+str_target+
					".value='"+str_pcdt(pc_current_day,lang)+"'; self.close();\">"+
					pc_current_day.getDate()+"</a></font></td>\n";
				else 
					str_buffer += "<font color=\"#AAAAAA\" class=\"cal\">"+
				pc_current_day.getDate()+"</font></td>\n";
				pc_current_day.setDate(pc_current_day.getDate()+1);
		}
		str_buffer += "</tr>\n";
	}
	str_buffer +=
		"</table>\n" +
		"</td></tr></table>\n" +
		"</body>\n" +
		"</html>\n";

	var vWinCal = window.open("", "calendar", "width=190,innerWidth=190,height=168,innerHeight=168,top="+sety+",screenX="+setx+",left="+setx+",screenY="+sety+",status=no,resizable=no");
	vWinCal.opener = self;
	var calc_doc = vWinCal.document;
	calc_doc.write (str_buffer);
	calc_doc.close();
}
function str_pc (str_datetime,lang) {
	var re_date = /^(\d+)\/(\d+)\/(\d+)/;
	if (!re_date.exec(str_datetime))
		return alert("Invalid Datetime format: "+ str_datetime);
	if (lang == "E")
		return (new Date (RegExp.$3, RegExp.$1-1, RegExp.$2));
	else
		return (new Date (RegExp.$1, RegExp.$2-1, RegExp.$3));
}
function str_pcdt (pc_datetime,lang) {
	if (lang =="E")
		return (new String (
(pc_datetime.getMonth()+1)+"/"+pc_datetime.getDate()+"/"+pc_datetime.getFullYear()));
	else
		return (new String (
pc_datetime.getFullYear())+"/"+(pc_datetime.getMonth()+1)+"/"+pc_datetime.getDate());
}
function popUP(pop_h,pop_w){
var ph=pop_h;
var pw=pop_w;
pop=window.open("","popW",'width='+pw+',height='+ph);
pop.focus();
}

