
//変数宣言 -------------------------------------------------------------------------------------

var n = new Number();										//汎用数値型
var level = '';												//階層
var head = document.getElementsByTagName('head')[0];		//HEADタグ
var ujp;													//JSファイルのパス
var jic;													//JSファイルの初期化コード


//JSファイル初期化コード・ファイル名対応
var fn = [
	[ '0', 'common.js',    '',         '',               '']
	,['1', 'index.js',     '',         'index.html',     'shared/include/index.js']
	,['2', 'news.js',      'news',     'index.html',     'shared/include/news.js']
	,['3', 'event.js',     'event',    'index.html',     'shared/include/event.js']
	,['4', 'schedule.js',  'schedule', 'index.html',     'shared/include/schedule.js']
	,['5', 'timetable.js', 'schedule', 'timetable.html', 'shared/include/timetable.js']
];

/* ------------------------------------------------------------------------------------------ */


//JSファイルを読み込んだ時点で動作させるイベントを定義
(function(){
	n = arguments.length;
	ujp = getJSFileName(location.pathname.split('/'));

	//ライブラリ読み込み -----------------------------------------------------------------------
	tempArray = ujp.split('/');
	jic = getJSFileInitCode(tempArray[tempArray.length - 1]);
	if(jic != 1){
		level = '../';
	}
	document.open();
	for(var i = 0; i < n; i++){
		document.write('<script type="text/javascript" src="' + level + arguments[i] + '"></script>');
	}
	document.close();
})(
	//ライブラリ -------------------------------------------------------------------------------
	
	/* jsloader.js(http://labs.37to.net/javascript/jsloader/)
	 * (c) Blog.37to.net | 37to
	 * -------------------------------------------------------------------------------------- */
	'shared/include/jsloader.js'
	
	
	/* dateformat.js(http://www.enjoyxstudy.com/javascript/dateformat/)
	 * (c) Enjoy*Study | onozaty
	 * -------------------------------------------------------------------------------------- */
	,'shared/include/dateformat.js'
	
	
	/* prototype.js(http://www.prototypejs.org/)
	 * (c) Prototype JavaScript framework | Sam Stephenson
	 * -------------------------------------------------------------------------------------- */
	,'shared/include/prototype.js'
	
	
	/* xmlparser.js(http://ecs.amonya.com/download/javascript/xmlxmlparserjs.html)
	 * (c) Amonya.com | shizumaru
	 * -------------------------------------------------------------------------------------- */
	,'shared/include/xmlparser.js'
);


/* ------------------------------------------------------------------------------------------ */


//画面を読み込み終えた時点で動作させるイベントを定義
if(window.addEventListener){
	window.addEventListener("load",initpackage,false);
}else if(window.attachEvent){
	window.attachEvent("onload",initpackage);
}


/* ------------------------------------------------------------------------------------------ */


/**
 * package.jsの初期化処理
 * 当該ファイル内で必要な初期化をします。
 */
function initpackage(){
	jsl = new JSLoader();
	jsl.next(level + 'shared/include/common.js');
	jsl.next(function(){
		//common.jsの初期化
		initcommon();
	});
	jsl.next(level + ujp);
	jsl.next(function(){
		//各画面のユニークなJSファイルの初期化
		if(jic == 1)initindex();
		if(jic == 2)initnews();
		if(jic == 3)initevent();
		if(jic == 4)initschedule();
		if(jic == 5)inittimetable();
	});
	jsl.start();
}


/**
 * JSファイル名取得
 * パス名を当該画面で読み込むJSファイル名に変換して返却します。
 * パス名に定義済みの機能名と画面名が含まれない場合、Webサイトのルートとして扱います。
 * @param  パス名
 * @return JSファイル名
 */
function getJSFileName(path){
	var max = fn.length;
	var p = path.length;

	//末尾が/であればWebサイトのルートと判断
	if(path[p - 1] == null || ''){
		return fn[1][4];
	}else{
		var str = path[p - 2];
		if(str.length > 0){
			for(var i = 0; i < max; i++){

				//機能名一致
				if(fn[i][2] == str){

					//画面名一致
					if(fn[i][3] == path[p - 1]){
						return fn[i][4];
					}
				}
			}
		}
		//機能名と画面名で一致しなければWebサイトのルート
		return fn[1][4];
	}
}


/**
 * JSファイル初期化コード取得
 * JSファイル名をJSファイルを区別する初期化コードに変換して返却します。
 * 引数のファイル名がコード対応に存在しない場合は99を返却します。
 * @param  JSファイル名
 * @return JSファイル初期化コード
 */
function getJSFileInitCode(name){
	var max = fn.length;
	for(var i = 0; i < max; i++){
		if(fn[i][1] == name){
			return new Number(fn[i][0]);
		}
	}
	return 99;
}

