function photoselect(){
	var ps = $("photoselect");
	retrieveGETqs();
	var strNum=AddZero(ps.options[0].value,3);
	if (qsParm["soft"]){
		strNum=AddZero(qsParm["soft"],3);
		for(i=0;i<ps.options.length;i++){
			if(ps.options[i].value==qsParm["soft"]){
				ps.options.selectedIndex = i;
				break;
			}
		}
	}
	var url="data/softball_p" + strNum + ".html";
	new Ajax.Request(url, { method: "get", onComplete: function(httpObj){
			$("photogallary").innerHTML = httpObj.responseText;
		}
	});
}
var qsParm = new Array(); 
  
function retrieveGETqs() { 
	var query = window.location.search.substring(1); 
	var parms = query.split('&'); 
	for (var i=0; i<parms.length; i++) { 
		var pos = parms[i].indexOf('='); 
		if (pos > 0) { 
			var key = parms[i].substring(0,pos); 
			var val = parms[i].substring(pos+1); 
			qsParm[key] = val; 
		} 
	}
}
//ZERO詰め（指定された桁数まで頭に付加）
function AddZero(in_str,in_maxlen){
  //0の付加個数
  var add_len = in_maxlen - in_str.length;
  var result = "";
  for(i=0;i<add_len;i++){
	result+="0";
  }
  //付加個数分0を付加する
//	  for (i=0;i<add_len;i++){
//	    result += "0";
//	  }
  return result+in_str;
}
function changeOption(){
	var ps = $("photoselect");
	var strNum = AddZero(ps.options[ps.options.selectedIndex].value,3);
	var url="data/softball_p" + strNum + ".html";
	new Ajax.Request(url, { method: "get", onComplete: function(httpObj){
			$("photogallary").innerHTML = httpObj.responseText;
		}
	});
}
function changeMsgOption(){
	var ps = $("messageselect");
	var strNum = ps.options[ps.options.selectedIndex].value;
	if (strNum == 0){
		strNum="new";
	}
	var url="member/" + strNum + ".html";
	new Ajax.Request(url, { method: "get", onComplete: function(httpObj){
			$("memberMsg").innerHTML = httpObj.responseText;
		}
	});
}

//_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
//_/
//_/ CopyRight(C) K.Tsunoda(AddinBox) 2001 All Rights Reserved.
//_/ ( http://www.h3.dion.ne.jp/~sakatsu/index.htm )
//_/
//_/   この祝日判定コードは『Excel:kt関数アドイン』で使用している
//_/   ＶＢＡマクロを[JavaScript]に移植したものです。
//_/   この関数では、２００７年施行の改正祝日法(昭和の日)までを
//_/ 　サポートしています(９月の国民の休日を含む)。
//_/
//_/ (*1)このコードを引用するに当たっては、必ずこのコメントも
//_/ 一緒に引用する事とします。
//_/ (*2)他サイト上で本マクロを直接引用する事は、ご遠慮願います。
//_/ 【 http://www.h3.dion.ne.jp/~sakatsu/holiday_logic.htm 】
//_/ へのリンクによる紹介で対応して下さい。
//_/ (*3)[ktHolidayName]という関数名そのものは、各自の環境に
//_/ おける命名規則に沿って変更しても構いません。
//_/ 
//_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

MONDAY = 1;
TUESDAY = 2;
WEDNESDAY = 3;

// JavaScriptで扱える日付は1970/1/1～のみ
//cstImplementTheLawOfHoliday = new Date("1948/7/20");  // 祝日法施行
//cstAkihitoKekkon = new Date("1959/4/10");              // 明仁親王の結婚の儀
cstShowaTaiso = new Date("1989/2/24");                // 昭和天皇大喪の礼
cstNorihitoKekkon = new Date("1993/6/9");            // 徳仁親王の結婚の儀
cstSokuireiseiden = new Date("1990/11/12");          // 即位礼正殿の儀
cstImplementHoliday = new Date("1973/4/12");        // 振替休日施行

// [prmDate]には "yyyy/m/d"形式の日付文字列を渡す
function ktHolidayName(prmDate)
{
  MyDate = new Date(prmDate);
  HolidayName = prvHolidayChk(MyDate);
  if (HolidayName == "") {
	  if (MyDate.getDay() == MONDAY) {
		  // 月曜以外は振替休日判定不要
		  // 5/6(火,水)の判定はprvHolidayChkで処理済
		  // 5/6(月)はここで判定する
		  if (MyDate.getTime() >= cstImplementHoliday.getTime()) {
			  YesterDay = new Date(MyDate.getFullYear(), MyDate.getMonth(),(MyDate.getDate()-1));
			  HolidayName = prvHolidayChk(YesterDay);
			  if (HolidayName != "") {
				  HolidayName_ret = "振替休日";
			  } else {
				  HolidayName_ret = "";
			  }
		  } else {
			  HolidayName_ret = "";
		  }
	  } else {
		  HolidayName_ret = "";
	  }
  } else {
	  HolidayName_ret = HolidayName;
  }

  return HolidayName_ret;
}

//===============================================================

function prvHolidayChk(MyDate)
{
  MyYear = MyDate.getFullYear();
  MyMonth = MyDate.getMonth() + 1;    // MyMonth:1～12
  MyDay = MyDate.getDate();

// JavaScriptで扱える日付は1970/1/1～のみで祝日法施行後なので下記は不要
// if (MyDate.getTime() < cstImplementTheLawOfHoliday.getTime()) {
// 　　return ""; // 祝日法施行(1948/7/20)以前
// } else;

  Result = "";
  switch (MyMonth) {
// １月 //
  case 1:
	  if (MyDay == 1) {
		  Result = "元日";
	  } else {
		  if (MyYear >= 2000) {
			  NumberOfWeek = Math.floor((MyDay - 1) / 7) + 1;
			  if ((NumberOfWeek == 2) && (MyDate.getDay() == MONDAY)) {
				  Result = "成人の日";
			  } else;
		  } else {
			  if (MyDay == 15) {
				  Result = "成人の日";
			  } else;
		  }
	  }
	  break;
// ２月 //
  case 2:
	  if (MyDay == 11) {
		  if (MyYear >= 1967) {
			  Result = "建国記念の日";
		  } else;
	  } else {
		  if (MyDate.getTime() == cstShowaTaiso.getTime()) {
			  Result = "昭和天皇の大喪の礼";
		  } else;
	  }
	  break;
// ３月 //
  case 3:
	  if (MyDay == prvDayOfSpringEquinox(MyYear)) {  // 1948～2150以外は[99]
		  Result = "春分の日";                       // が返るので､必ず≠になる
	  } else;
	  break;
// ４月 //
  case 4:
	  if (MyDay == 29) {
		  if (MyYear >= 2007) {
			  Result = "昭和の日";
		  } else {
			  if (MyYear >= 1989) {
				  Result = "みどりの日";
			  } else {
				Result = "天皇誕生日";
			  }
		  }
	  } else {
		  // JavaScriptで扱える日付は1970/1/1～のみなので下記は不要
		  // if (MyDate.getTime() == cstAkihitoKekkon.getTime()) {
		  // 　　Result = "皇太子明仁親王の結婚の儀";　　// (=1959/4/10)
		  // } else;
	  }
	  break;
// ５月 //
  case 5:
	  switch ( MyDay ) {
		case 3:  // ５月３日
		  Result = "憲法記念日";
		  break;
		case 4:  // ５月４日
		  if (MyYear >= 2007) {
			  Result = "みどりの日";
		  } else {
			  if (MyYear >= 1986) {
				  if (MyDate.getDay() > MONDAY) {
				  // 5/4が日曜日は『只の日曜』､月曜日は『憲法記念日の振替休日』(～2006年)
					  Result = "国民の休日";
				  } else;
			  } else;
		  }
		  break;
		case 5:  // ５月５日
		  Result = "こどもの日";
		  break;
		case 6:  // ５月６日
		  if (MyYear >= 2007) {
			  if ((MyDate.getDay() == TUESDAY) || (MyDate.getDay() == WEDNESDAY)) {
				  Result = "振替休日";    // [5/3,5/4が日曜]ケースのみ、ここで判定
			  } else;
		  } else;
		  break;
	  }
	  break;
// ６月 //
  case 6:
	  if (MyDate.getTime() == cstNorihitoKekkon.getTime()) {
		  Result = "皇太子徳仁親王の結婚の儀";
	  } else;
	  break;
// ７月 //
  case 7:
	  if (MyYear >= 2003) {
		  NumberOfWeek = Math.floor((MyDay - 1) / 7) + 1;
		  if ((NumberOfWeek == 3) && (MyDate.getDay() == MONDAY)) {
			  Result = "海の日";
		  } else;
	  } else {
		  if (MyYear >= 1996) {
			  if (MyDay == 20) {
				  Result = "海の日";
			  } else;
		  } else;
	  }
	  break;
// ９月 //
  case 9:
	  //第３月曜日(15～21)と秋分日(22～24)が重なる事はない
	  MyAutumnEquinox = prvDayOfAutumnEquinox(MyYear);
	  if (MyDay == MyAutumnEquinox) {    // 1948～2150以外は[99]
		  Result = "秋分の日";           // が返るので､必ず≠になる
	  } else {
		  if (MyYear >= 2003) {
			  NumberOfWeek = Math.floor((MyDay - 1) / 7) + 1;
			  if ((NumberOfWeek == 3) && (MyDate.getDay() == MONDAY)) {
				  Result = "敬老の日";
			  } else {
				  if (MyDate.getDay() == TUESDAY) {
					  if (MyDay == (MyAutumnEquinox - 1)) {
						  Result = "国民の休日";
					  } else;
				  } else;
			  }
		  } else {
			  if (MyYear >= 1966) {
				  if (MyDay == 15) {
					  Result = "敬老の日";
				  } else;
			  } else;
		  }
	  }
	  break;
// １０月 //
  case 10:
	  if (MyYear >= 2000) {
		  NumberOfWeek = Math.floor(( MyDay - 1) / 7) + 1;
		  if ((NumberOfWeek == 2) && (MyDate.getDay() == MONDAY)) {
			  Result = "体育の日";
		  } else;
	  } else {
		  if (MyYear >= 1966) {
			  if (MyDay == 10) {
				  Result = "体育の日";
			  } else;
		  } else;
	  }
	  break;
// １１月 //
  case 11:
	  if (MyDay == 3) {
		  Result = "文化の日";
	  } else {
		  if (MyDay == 23) {
			  Result = "勤労感謝の日";
		  } else {
			  if (MyDate.getTime() == cstSokuireiseiden.getTime()) {
				  Result = "即位礼正殿の儀";
			  } else;
		  }
	  }
	  break;
// １２月 //
  case 12:
	  if (MyDay == 23) {
		  if (MyYear >= 1989) {
			  Result = "天皇誕生日";
		  } else;
	  } else;
	  break;
  }

  return Result;
}

//===================================================================
// 春分/秋分日の略算式は
// 『海上保安庁水路部 暦計算研究会編 新こよみ便利帳』
// で紹介されている式です。
function prvDayOfSpringEquinox(MyYear)
{
  if (MyYear <= 1947) {
	  SpringEquinox_ret = 99;    //祝日法施行前
  } else {
	  if (MyYear <= 1979) {
		  // Math.floor 関数は[VBAのInt関数]に相当
		  SpringEquinox_ret = Math.floor(20.8357 + 
			(0.242194 * (MyYear - 1980)) - Math.floor((MyYear - 1980) / 4));
	  } else {
		  if (MyYear <= 2099) {
			  SpringEquinox_ret = Math.floor(20.8431 + 
				(0.242194 * (MyYear - 1980)) - Math.floor((MyYear - 1980) / 4));
		  } else {
			  if (MyYear <= 2150) {
				  SpringEquinox_ret = Math.floor(21.851 + 
					(0.242194 * (MyYear - 1980)) - Math.floor((MyYear - 1980) / 4));
			  } else {
				  SpringEquinox_ret = 99;    //2151年以降は略算式が無いので不明
			  }
		  }
	  }
  }
  return SpringEquinox_ret;
}

//=====================================================================
function prvDayOfAutumnEquinox(MyYear)
{
  if (MyYear <= 1947) {
	  AutumnEquinox_ret = 99; //祝日法施行前
  } else {
	  if (MyYear <= 1979) {
		  // Math.floor 関数は[VBAのInt関数]に相当
		  AutumnEquinox_ret = Math.floor(23.2588 + 
			(0.242194 * (MyYear - 1980)) - Math.floor((MyYear - 1980) / 4));
	  } else {
		  if (MyYear <= 2099) {
			  AutumnEquinox_ret = Math.floor(23.2488 + 
				(0.242194 * (MyYear - 1980)) - Math.floor((MyYear - 1980) / 4));
		  } else {
			  if (MyYear <= 2150) {
				  AutumnEquinox_ret = Math.floor(24.2488 + 
					(0.242194 * (MyYear - 1980)) - Math.floor((MyYear - 1980) / 4));
			  } else {
				  AutumnEquinox_ret = 99;    //2151年以降は略算式が無いので不明
			  }
		  }
	  }
  }
  return AutumnEquinox_ret;
}

//_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
//_/ CopyRight(C) K.Tsunoda(AddinBox) 2001 All Rights Reserved.
//_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
var dataArray;
var cnt;
var dateYear;
var dateMonth;
function myOnLoad() {
	myDate    = new Date();                                    // 今日の日付データ取得
	dateYear = myDate.getFullYear();                                 // 下２桁の西暦取得
	//dateYear = (dateYear<2000) ? (1900+dateYear) : (dateYear);         // ４桁の西暦に変換
	dateMonth = myDate.getMonth();                               // 月を取得(0月～11月)
	//SetCalendar(dateYear, dateMonth);

	new Ajax.Request("./data/softball.txt", { method: 'get', onComplete: getSchedule});
}
function ChangeMonth(num) {
	if (dateMonth + num < 0){
		dateMonth = 11;
		dateYear = dateYear + num;
	} else if (dateMonth + num > 11){
		dateMonth = 0;
		dateYear = dateYear + num;
	} else {
		dateMonth = dateMonth + num;
	}
	SetCalendar(dateYear, dateMonth);
	SetSchedule();
}
function getSchedule(httpObj){
	var result = httpObj.responseText.split("\n");
	if(result.length>0){
		var s = "{";
		cnt = 0;
		for (i=1;i<result.length;i++){
			if(result[i].length>0){
				if (cnt != 0){
					s+=",";
				}
				var temp;
				temp = result[i].split(",");
				s+= cnt + ":[" + result[i] + "]";
				cnt++;
			}
		}
		s+="};";
		eval("dataArray=" + s);
		SetCalendar(dateYear, dateMonth);
		SetSchedule();
	}
}
function SetSchedule(){
	if(cnt>0){
		var scheObj="";
		var scheCnt=0;
		scheObj += "<table>";
		scheObj += "<tr><th width='15%'>日付</th><th width='18%'>時間</th><th width='40%'>内容</th><th width='27%'>場所</th></tr>";
		
		for(i=0;i<cnt;i++){
			var dDate = new Date(dataArray[i][0]);
			if ((dDate.getFullYear()==dateYear)&&(dDate.getMonth()==dateMonth)){
				scheObj += "<tr>";
				scheObj += "<td>" + dataArray[i][0] + "</td>";
				scheObj += "<td>" + dataArray[i][1] + "</td>";
				scheObj += "<td>" + dataArray[i][2] + "</td>";
				scheObj += "<td>" + dataArray[i][3] + "</td>";
				scheObj += "</tr>";
				scheCnt++;
			}
		}
		scheObj += "</table>";
		if (scheCnt == 0){
			scheObj = "";
		}
		$("schedule").innerHTML=scheObj;
	}
}
function SetCalendar(myYear, myMonth) {
	calObj = "";
	// ****************
	// **   下準備   **
	// ****************
	myDate    = new Date();                                    // 今日の日付データ取得
	myWeekTbl = new Array("日","月","火","水","木","金","土");  // 曜日テーブル定義
	myMonthTbl= new Array(31,28,31,30,31,30,31,31,30,31,30,31);// 月テーブル定義
	//myYear = myDate.getYear();                                 // 下２桁の西暦取得
	//myYear = (myYear<2000) ? (1900+myYear) : (myYear);         // ４桁の西暦に変換
	if (((myYear%4)==0 && (myYear%100)!=0) || (myYear%400)==0) // うるう年だったら...
	   myMonthTbl[1] = 29;                                     // 　２月を２９日とする
	//myMonth = myDate.getMonth();                               // 月を取得(0月～11月)
	myToday = myDate.getDate();                                // 今日の'日'を退避
	myDate.setDate(1);                                         // 日付を'１日'に変えて、
	dDate = new Date(myYear + "/" + (myMonth + 1) + "/" + 1);
	myWeek = dDate.getDay();                                  // 　'１日'の曜日を取得
	myTblLine = Math.ceil((myWeek+myMonthTbl[myMonth])/7);     // カレンダーの行数
	myTable   = new Array(7*myTblLine);                        // 表のセル数分定義
	
	for(i=0; i<7*myTblLine; i++) myTable[i]="　";              // myTableを掃除する
	for(i=0; i<myMonthTbl[myMonth]; i++)myTable[i+myWeek]=i+1; // 日付を埋め込む
	
	// ***********************
	// **  カレンダーの表示  **
	// ***********************
	calObj += "<table border='0' cellspacing='0' cellpadding='0' ";      // 表の作成開始
	calObj += "bordercolor='#808080'>";
	
	calObj += "<tr><th><a href='#' onclick='ChangeMonth(-1);'>&lt;&lt;前月</a></th><th colspan='5' style='width:200px; margin:0 auto;'>";  // 見出し行セット
	calObj += "<strong>" + myYear + "年" + (myMonth+1) + "月</strong>";
	calObj += "</th><th><a href='#' onclick='ChangeMonth(1);'>次月&gt;&gt;</a></th></tr>";
	
	calObj += "<tr>";                                    // 曜日見出しセット
	for(i=0; i<7; i++){                                        // 一行(１週間)ループ
		 calObj += "<td align='center' ";
		 if(i==0){
			calObj += "class='title_sun'>";           // 日曜のセルの色
		 }else if(i==6){
			calObj += "class='title_sat'>";           // 土曜のセルの色
		 }else{
			calObj += "class='title_weekday'>";           // 月～金のセルの色
		 }
		 calObj += "<strong>" + myWeekTbl[i] + "</strong>";    // '日'から'土'の表示
		 calObj += "</td>";
	}
	calObj += "</tr>";
	
	var ballFlg=0;
	for(i=0; i<myTblLine; i++){                                // 表の「行」のループ
		 calObj += "<tr>";                                 // 行の開始
		 for(j=0; j<7; j++){                                     // 表の「列」のループ
				calObj += "<td align='center' ";               // 列(セル)の作成
				myDat = myTable[j+(i*7)];                            // 書きこむ内容の取得
				tempDate = new Date(myYear + "/" + (myMonth + 1) + "/" + myDat);
				for(k=0;k<cnt;k++){
					tableDate = new Date(dataArray[k][0]);
					if (tempDate.toDateString()==tableDate.toDateString()){
						ballFlg=1;
						break;
					}
				}
				var chkDay = myYear + "/" + (myMonth + 1) + "/" + myDat;
				
				if (myYear + "/" + myMonth + "/" + myDat==myDate.getFullYear() + "/" + myDate.getMonth() + "/" + myToday){
					if(ballFlg==0){
						calObj += "class='day_today'>"; // 今日のセルの色
					}else{
						calObj += "class='day_today_b'>"; // 今日のセルの色
						ballFlg=0;
					}
				}else if(ktHolidayName(chkDay)!=""){
					if(ballFlg==0){
						calObj += "class='day_sun'>"; // 日曜のセルの色
					}else{
						calObj += "class='day_sun_b'>"; // 日曜のセルの色
						ballFlg=0;
					}
				}else if(j==0){
					if(ballFlg==0){
						calObj += "class='day_sun'>"; // 日曜のセルの色
					}else{
						calObj += "class='day_sun_b'>"; // 日曜のセルの色
						ballFlg=0;
					}
				}else if(j==6){
					if(ballFlg==0){
						calObj += "class='day_sat'>"; // 土曜のセルの色
					}else{
						calObj += "class='day_sat_b'>"; // 土曜のセルの色
						ballFlg=0;
					}
				}else{
					if(ballFlg==0){
						calObj += "class='day_weekday'>"; // 平日のセルの色
					}else{
						calObj += "class='day_weekday_b'>"; // 平日のセルの色
						ballFlg=0;
					}
				}
				//calObj += "<strong>" + myDat + "</strong>";        // 日付セット
				calObj += myDat;        // 日付セット
				calObj += "</td>";                             // 列(セル)の終わり
		 }
		 calObj += "</tr>";                                // 行の終わり
	}
	calObj += "</table>";                                // 表の終わり
	//alert(calObj);
	$("calendar").innerHTML=calObj;
}
