/* IGS JS Library
 * (c) Copyright 2008  By IGS-Inter Corp.
 */

/* Requirement
 * JQuery(1.2.6 or higher)：下位のバージョンでも動作すると思いますが…
 */

/* Version History
 * 2008-11-06	ver.1.0a	By Muimu Nakayama
 * 				開発を開始
 * 2008-12-29	ver.1.1a	By Muimu Nakayama
 * 				SSLサイトへの対処を追加
 * 				→リンクURLの前半はこのファイル中に絶対pathで記述する
 * 				  これにより，引数は２つに減った
 * 2008-12-30	ver.1.1b	By Muimu Nakayama
 * 				他のJSライブラリと競合するので，jQueryを使わないように変更
 * 				さらに衝突を避けるため，window.onloadのオーバーライドを実施
 * 2008-01-03	ver.1.1		By Muimu Nakayama
 * 				SSLサイトでの読み込みができるようにdomainを一致させる処理
 * 				を追加した（CRNTの指定を導入）
 * 2008-01-03	ver.1.2a		By Muimu Nakayama
 * 				喜びの声・合格体験記のサンプルページ（トップからのリンク）の
 * 				表示するものを差し替える処理の追加
 */

/* How to use
 *１．このファイル中での設定
 *(1)loadMenus関数冒頭のpathの指定を書き換え
 *		→テスト環境と本物でドキュメントルートが異なるので
 *
 *２．各HTMLファイルの設定（PHPから生成する分はテンプレートを書き換え）
 *(1)ヘッダ末尾（</head>の直前）に以下のコードを挿入

<!-- ここから：共通部分の読み込み処理用の設定 -->
<!-- インクルードするjsファイルのパスに注意（commonの前がルートとなるようにする） -->
<script src="../common/js/igs-lib.js" type="text/javascript"></script>
<script type="text/javascript">
    oldonload = window.onload;
    window.onload = function(){
        if( (oldonload != undefined) && (oldonload != null) ){
            oldonload();
        }
        // 第１引数：ハイライトにする大項目（上からの番号，TOPが1）
        // 第２引数：ハイライトにする小項目（上からの番号，教育理念が1）
        //   →第１・第２引数ともハイライトなしの場合は，0を指定
        loadMenus(4, 6);
    };
</script>
<!-- ここまで：共通部分の読み込み処理用の設定 -->

 *(2)[header_right][footerMenu][menuContents]のタグの中身を「読み込み中…」
 *   のような表示に書き換え
 * 		→ajaxで書き換えているので，元のままでも動作に支障はないが。
 * 
 *【注意】
 * window.onloadを他で用いている場合，競合するので，上記関数中からの呼び出しに
 * 書き換えが必要となる
 */

/* URLの指定（実際の配置に合わせて書き換え必要） */
	var URL_NORMAL = "http://www.igs-inter.com";
	var URL_SSL = "https://sv54.wadax.ne.jp/~igs-inter-com";
	var SITE_DIR = ""; // 直下の場合
//	var SITE_DIR = "/test2";

function loadMenus(iTitle, iItem){
	// ドキュメントルートの指定
	var sUrlNormal = URL_NORMAL + SITE_DIR;
	var sUrlSSL = URL_SSL + SITE_DIR;
	var sRoot;
	var bSSL;
	if((document.URL).substr(0, 6) == "https:"){
		sRoot = sUrlSSL;
		bSSL = true;
	}else{
		sRoot = sUrlNormal;
		bSSL = false;
	}
	// ヘッダの読み込み
	loadFile(sRoot + "/common/header.txt", function(data){
		data = replacePath(data, sUrlNormal, sUrlSSL, bSSL);
		document.getElementById("header_right").innerHTML = data;
	});
	
	// フッタの読み込み
	loadFile(sRoot + "/common/footer.txt", function(data){
		data = replacePath(data, sUrlNormal, sUrlSSL, bSSL);
		document.getElementById("footerMenu").innerHTML = data;
	});
	
	// 左サイドメニュー（leftContents）の読み込み
	loadFile(sRoot + "/common/leftmenu.txt", function(data){
		// 大項目のハイライト指定
		if(isNaN(iTitle) || iTitle < 0 || iTitle > 6){
			alert("設定が正しくありません（大項目の指定）");
			iTitle = 0;
		}
		re = new RegExp("a"); // インスタンスを先に作成しておく
		if(iTitle == 0){
			// どの項目もハイライトなし（サイトマップ等）
		}else if(iTitle == 1){
			// TOPだけ特別（他と記述の仕方が大きく異なる）なので，記述を差し替え
			re.compile("<p id=\"top\"><a href=\"PATH/index.html\"><span>top</span></a></p>");
			data = data.replace(re, "<a href=\"./\" id=\"top2\"><span>top</span></a>");
		}else{
			// 他（2-5）は該当箇所のid指定の書き換え
			re.compile("title" + "00ABCDE".charAt(iTitle));
			data = data.replace(re, "title" + "00ABCDE".charAt(iTitle) + "2");
		}
		// 小項目のハイライト指定
		if(isNaN(iItem) || iItem < 0 || iItem > 12){
			alert("設定が正しくありません（小項目の指定）");
			iItem = 0;
		}
		if(iItem != 0){
			// 1-12の場合のみ，処理を行う
			re.compile("id=\"item" + "0ABCDEFGHIJKL".charAt(iItem) + "\"");
			data = data.replace(re, "class=\"active\"");
		}
		data = replacePath(data, sUrlNormal, sUrlSSL, bSSL);
		document.getElementById("leftContents").innerHTML = data;
		if(iTitle == 1){
			// TOPだけ特別（バナーをなしにする）
			document.getElementById("mini_banner").innerHTML = "";
		}
	});
}

function replacePath(sData, sUrlNormal, sUrlSSL, bSSL){
		re = new RegExp(/PATH/g);
		sData = sData.replace(re, sUrlNormal);
		re = /SSLP/g;
		sData = sData.replace(re, sUrlSSL);
		re = /CRTP/g;
		if(bSSL){
			sData = sData.replace(re, sUrlSSL);
		}else{
			sData = sData.replace(re, sUrlNormal);
		}
		return sData;
}

/* ------------------------------------------------------------------------
 * 喜びの声・合格体験記サンプルページの読み込み
 * ------------------------------------------------------------------------
 * 
 */
function randomLoad(){
	// 喜びの声のリストファイルを読み込み
	// ドキュメントルートの指定
	var sUrlNormal = URL_NORMAL + SITE_DIR;
	var sUrlSSL = URL_SSL + SITE_DIR;
	var sRoot;
	var bSSL;
	if((document.URL).substr(0, 6) == "https:"){
		sRoot = sUrlSSL;
		bSSL = true;
	}else{
		sRoot = sUrlNormal;
		bSSL = false;
	}
	loadFile(sRoot + "/results/yorokobi_list_seito.txt", function(data){
		arYoro = data.split("SEPARATOR");
		var y1 = Math.floor(Math.random()*(arYoro.length));
		document.getElementById("yoro_left").innerHTML = arYoro[y1];
	});
	loadFile(sRoot + "/results/yorokobi_list_hogosha.txt", function(data){
		arYoro = data.split("SEPARATOR");
		var y2 = Math.floor(Math.random()*(arYoro.length - 1));
		document.getElementById("yoro_right").innerHTML = arYoro[y2] + arYoro[arYoro.length - 1];
	});
	loadFile(sRoot + "/results/taikenki_list_high.txt", function(data){
		arTaiken = data.split("SEPARATOR");
		var t1 = Math.floor(Math.random()*(arTaiken.length));
		document.getElementById("taiken1").innerHTML = arTaiken[t1];
	});
	loadFile(sRoot + "/results/taikenki_list_univ.txt", function(data){
		arTaiken = data.split("SEPARATOR");
		var t2 = Math.floor(Math.random()*(arTaiken.length - 1));
		document.getElementById("taiken2").innerHTML = arTaiken[t2] + arTaiken[arTaiken.length - 1];
	});
}





/* ========================================================================
 * ajax読み込み関数：jQueryの$.getと同等の動作
 * ------------------------------------------------------------------------
 *   sURL	：読み込むファイルの指定
 *   func	：読み込み後のコールバック関数
 */

function loadFile(sURL, func){
	var xmlhttp = createXMLHttp();
	if (xmlhttp){
		xmlhttp.onreadystatechange = function(){
			if(xmlhttp.readyState == 4){
				setPageData(xmlhttp, func);
			}
		};
		xmlhttp.open('GET', sURL, true);
		xmlhttp.send(null);
	}else{
		func("読み込みエラー(XMLHttpRequest: object unavialble)");
	}
}

function createXMLHttp(){
	var XMLHttpObj = null;
	try {
		XMLHttpObj = new ActiveXObject ("Microsoft.XMLHTTP");
		return XMLHttpObj;
	}catch(e){
		try {
			XMLHttpObj = new XMLHttpRequest();
			return XMLHttpObj;
		}catch(e) {
			return null;
		}
	}
	return null;
}

function setPageData(xho, func){
	if (xho.status == 200){
		func(xho.responseText);
	}else{
		func("読み込みエラー(XMLHttpRequest: failed in loading)");
	}
}



