// 注意：本スクリプトを使用する際は親windowのbodyの属性にonUnload="CloseWins()"を記述すること
// 別ウインドウを開き管理するJavaScript
// Mac IEでは、open.closedで、子ウインドウが閉じられた
// 状態をcheckできない問題に対応
	ua = navigator.userAgent;
	isMac =	(ua.indexOf('Mac') >= 0) ;
	isMacIE = (isMac)&&(navigator.appName=="Microsoft Internet Explorer");
// エラーハンドラ
	// window open 用
	function onErrMacOpen(msg, url,lno) {
		winlist[btnname]=window.open(errurl, btnname , "width=300,height=200,resizable=no,scrollbars=no,status=yes") ;
		return true ;
	}
	// window close 用
	function onErrMacClose(msg, url,lno) {
		winlist[btnname] = null ;
		CloseWins() ;
		return true ;
	}

// 正常処理用
	// windowのopen状態チェック
	// windowが開いていなければ,trueが返る
	function CheckCloseWin(obj) {
		return ((obj==null)||(typeof obj!='object')||(obj.closed)) ;
	}

	// 子window管理用配列
	winlist = new Array() ;

	// 子window open管理
	var btnname;
  function OpenChildren(objname, url) {
	if(url.indexOf("studytime.html")==-1){
          url=customizeUrl(url);
	}
		btnname = objname ;
		if (isMacIE) {
			window.onerror=onErrMacOpen ;
			errurl=url ;
		}

		if (CheckCloseWin(winlist[btnname])) {
			winlist[btnname]=window.open(url, btnname , "width=1024,height=700,resizable=yes,scrollbars=no,status=yes") ;
		} else {
			winlist[btnname].focus() ;
			if((btnname=='win_student_c') || (btnname=='win_teacher_cl')){
			}else{
				winlist[btnname].location.replace(url) ;
			}
		}
	}

  // 子window open管理
  function OpenChildrenResizable(objname, url) {
          url=customizeUrl(url);
		btnname = objname ;
		if (isMacIE) {
			window.onerror=onErrMacOpen ;
			errurl=url ;
		}

		if (CheckCloseWin(winlist[btnname])) {
			winlist[btnname]=window.open(url, btnname , "resizable=yes,scrollbars=no,status=yes") ;
		} else {
			winlist[btnname].focus() ;
			if((btnname=='win_student_c') || (btnname=='win_teacher_cl')){
			}else{
				winlist[btnname].location.replace(url) ;
			}
		}
	}

  function isStudyExit(btnname){
		if(winlist[btnname].closed){
      return true;
		}
    return false;
  }

	// 子window open管理(生徒ログイン画面)
	var w = window;
	function openWin(url) {
          url=customizeUrl(url);
   		if ((w == window) || w.closed) {
      			w = open(url, "_blank", "scrollbars=yes,resizable=yes");
   		} else {
      			w.focus();
   		}
   		//return(false);
	}

	// 子window open管理(サイズ指定)

  function openInfoWindow(objname,url) {
          url=customizeUrl(url);
    btnname = "objname" ;
    if (isMacIE) {
      window.onerror=onErrMacOpen ;
      errurl=url ;
    }
    if (CheckCloseWin(winlist[btnname])) {
      winlist[btnname]=window.open(url, btnname ,"width=500,height=500,scrollbars=yes") ;
    } else {
      winlist[btnname].focus() ;
      winlist[btnname].location.replace(url) ;
    }
  }

	// 子window open管理(サイズ指定)

  function openHistogramWindow(objname,url) {
          url=customizeUrl(url);
    btnname = objname;
    if (isMacIE) {
      window.onerror=onErrMacOpen ;
      errurl=url ;
    }
    if (CheckCloseWin(winlist[btnname])) {
      winlist[btnname]=window.open(url, btnname ,"width=450,height=450,scrollbars=no,resizable=yes") ;
    } else {
      winlist[btnname].focus() ;
    }
  }
  function openCsCpWindow(objname,url) {
          url=customizeUrl(url);
    btnname = "objname" ;
    if (isMacIE) {
      window.onerror=onErrMacOpen ;
      errurl=url ;
    }
    if (CheckCloseWin(winlist[btnname])) {
      winlist[btnname]=window.open(url, btnname ,"width=666,height=360,scrollbars=no") ;
    } else {
      winlist[btnname].focus() ;
      winlist[btnname].location.replace(url) ;
    }
  }

  function openAccessWindow(objname,url) {
          url=customizeUrl(url);
    btnname = "objname" ;
    if (isMacIE) {
      window.onerror=onErrMacOpen ;
      errurl=url ;
    }
    if (CheckCloseWin(winlist[btnname])) {
      winlist[btnname]=window.open(url, btnname ,"width=610,height=600,scrollbars=yes") ;
    } else {
      winlist[btnname].focus() ;
      winlist[btnname].location.replace(url) ;
    }
  }

  function openSpUpAddclsWindow(objname,url) {
          url=customizeUrl(url);
    btnname = objname;
    if (isMacIE) {
      window.onerror=onErrMacOpen ;
      errurl=url ;
    }
    if (CheckCloseWin(winlist[btnname])) {
      winlist[btnname]=window.open(url, btnname ,"width=834,height=600,scrollbars=yes") ;
    } else {
      winlist[btnname].focus() ;
    }
  }


	// 子window close管理
	function CloseWins() {
		if (isMacIE) {
			window.onerror=onErrMacClose ;
		}
		for (field in winlist) {
			btnname = field ;
			if (CheckCloseWin(winlist[field])) {
				continue ;
			}
			winlist[field].close() ;
			winlist[field] = null ;
		}
	}

	//ログアウト
	function LogOutCheck(url){
          url=customizeUrl(url);
		if(confirm("ログアウトしますか？")){
			top.c_flg=1;
			try{top.mainFrame.CloseWins();}catch(er){}
			top.location.href=url;
		}
	}

	/* add */

	//ページを移動する時に使います
	var c_flg=0;
	function pageChanged(url){
          url=customizeUrl(url);
		top.c_flg=1;
		top.location.href=url;
	}

  //子ウインドウから親ページを移動させるときに使います
	function pageChangedOpener(url){
          url=customizeUrl(url);
		top.opener.c_flg=1;
                top.opener.location.href=url;
	}

	//フォームがSubmitされたときにセットします
	function formOnSubmit(){
		top.c_flg=1;
		return true;
	}

	//ウィンドウが閉じられた時のみログアウト処理を行う
	function closedCheck(url){
          url=customizeUrl(url);
		if(top.c_flg==0){
			top.location.href=url;
			alert("ログアウトしました");
		}
                top.c_flg=0;
	}

  //2003.9.12 CSVダウンロードがあるJSPのログアウト処理
  function closeWindow(url){
    if(top.c_flg==0){
          url=customizeUrl(url);
      top.location.href=url;
      alert("以下の理由によりログアウトしました。\n\n ・ウィンドウの「閉じる」ボタンを押した。\n ・タイムアウト設定時間以上ブラウザを開いたままにしていた。\n ・誰かが同じログイン名でログインした。\n\n作業を続けるにはもう一度ログインからはじめてください。");
    }
    top.c_flg=0;
  }

  function winCloseToclosedCheck(url){
          url=customizeUrl(url);
    CloseWins();
    closedCheck(url);
  }

	//再読込（Ctrl+R、F5）が押されるのは無効
	//82...R 17...Ctrl 116...F5
	window.document.onkeydown = getkeydown;
	window.document.onmousedown = mouseDown;
	var ctrl=0;
	function getkeydown(e){
		var code = event.keyCode;
		if(code==17){
			ctrl=code;
		}else if(code==82 && ctrl==17){
			alert("このショートカットキーは使えません");
			event.keyCode=0;
			return false;
		}else if(code==116){
			alert("このショートカットキーは使えません");
			event.keyCode=0;
			return false;
                }else if(code==8){
                        //テキストボックス以外は効かない様にする。（戻るになるから）
			var ele = document.activeElement.type;
			if(ele==null || !(ele.substr(0,4)=='text'||ele.substr(0,8)=='password')){
				event.keyCode=0;
				return false;
			}
		}else{
			ctrl=0;
		}
	}

	//右クリックメニュー禁止
	function mouseDown(e){
		if (document.all) {//IE
			if (event.button == 2 || event.button == 3){
				window.alert("左ボタンをクリックしてください");
				return false;
			}
		} else {//NN
			if (e.which == 3){
				window.alert("左ボタンをクリックしてください");
				return false;
			}
		}
	}

	// 2重押下対策機能の雛型
	// フォームデータをformタグのactionで指定されたURLにサブミットする。
	// 引数formには制御したいフォームを指定する。
	// 使用例
	// <form name="F1" action="./studylogin" method="POST">
	// <input type="button" value="LOGIN" onClick="JavaScript:submitFormData(document.F1)">
	// </form>
	var flag = false;
	function submitFormData(form){
		if(flag == false){
			flag = true;
			form.submit();
		}
	}

	// 2重押下対策機能の雛型
	// リンクをクリックした際、指定されたURLに1回だけリクエストする
	var flag_href = false;
	function requestLink(url){
          url=customizeUrl(url);
		if(confirm("ログアウトしますか？")){
			if(flag_href == false){
      	flag_href = true;try{top.mainFrame.CloseWins();}catch(er){}
				top.location.href=url;
			}
		}
	}

	function requestLinkElementary(url){
		if(flag_href == false){
			flag_href = true;
			try{
				top.mainFrame.CloseWins();
			}catch(er){}
			top.location.href=url;
		}
	}

	//==================================================================
	// 2004.04.14 追加ここから
	//==================================================================

	// 2重押下対策機能の雛型　メインフレームとナビフレームを変更する。
	function requestHref(url){
          url=customizeUrl(url);
		top.naviFrame.location.href="./blank.html"
  	top.mainFrame.location.href=url;
	}

	// 2重押下対策機能の雛型 ナビフレームを変更する。
	function requestHrefWithOutMain(url){
          url=customizeUrl(url);
		top.naviFrame.location.href=url;
	}


	//==================================================================
	// 2004.04.14 追加ここまで
	//==================================================================

	//==================================================================
	// 2004.06.07 追加ここから
	//==================================================================
	// 2重押下対策機能の雛型 ナビフレームを変更する。
	function openDummyHint(){
		window.open("DUMMY_HINT.html");
	}
	//==================================================================
	// 2004.06.07 追加ここまで
	//==================================================================

	//==================================================================
	// 2004.09.07 追加ここから
	//==================================================================
	function chDirName(url) {
          url=customizeUrl(url);
	  btnname = "dirname" ;
	  if (isMacIE) {
	    window.onerror=onErrMacOpen ;
	    errurl=url ;
	  }
	  if (CheckCloseWin(winlist[btnname])) {
	    winlist[btnname]=window.open(url, btnname ,"width=300,height=200,resizable=no,scrollbars=no");
	  } else {
	    winlist[btnname].focus() ;
	    winlist[btnname].location.replace(url) ;
	  }
	}
	//==================================================================
	// 2004.09.07 追加ここまで
	//==================================================================

/*
 * ウィンドウリサイズ
 */
function chWinSize(x,y){
  size_x = x;
  size_y = y;
  resizeTo (size_x, size_y);
}
  function customizeUrl(url){
//alert(url);
    date = new Date();
    time = date.getTime();
    if(url.indexOf("?")==-1){
      url = url + "?istime=" + time;
    }else{
      url = url + "&istime=" + time;
    }
//alert(url);
    return url;
  }
//
//2005.4.22
function requestLinkElementary(url){
  if(confirm("おわりますか？")){
    if(flag_href == false){
      flag_href = true;
      top.location.href=url;
    }
  }
}

