//javascript charset=utf-8
//説明：お知らせページの<div id="osirase">内にある<li class="newlist">を読み込んで指定divに表示します。
//　　　<li class="newlist">が表示する件数以下しかないときは続けてそれ以外の記事を表示します。
//		<li class="newlist_imp">の記事があれば最優先して表示します。
//注意：お知らせページの<div id="osirase">内に別のdivの終了タグがあると、そこまでしか読み込めなくなります。
//注意：このjsを指定するHTMLファイルと同じディレクトリにloading.gifを置いてください。
//必要ライブラリ：prototype.js, jQuery.js


jQuery(function () {

//*****パラメータ*****

//読み込むお知らせページ（index.htmlからの相対パス）
	var osirase_url = '03gyosei/00listpage/osirase.html';//03gyosei/00listpage内であること
//結果を表示するdivタグのid
	var osirase_result = $("osirase_result");//(prototype)
//表示する件数（お知らせページの記事順になります）
	var osirasecount = 4;
//読込中に表示するメッセージ
	osirase_result.innerHTML ="<img src='loading.gif' />　読込中・・・\n";
//読込失敗時メッセージ
	var falsemsg_o = "データを取得できませんでした。お知らせ情報は、「お知らせ一覧...」からご覧ください。\n";


//*****以下処理部*****

//表示のクリア
function clearDisp() {
  osirase_result.innerHTML = "";
}

//お知らせ情報の取得・編集・出力
osiraseDisp();

function osiraseDisp() {

//ajax通信(prototype)
	new Ajax.Request(osirase_url,{
		method: "get",
		parameters: "cache="+ (new Date()).getTime(),
		onSuccess:getOsiraseData,
		onFailure:showErrMsg_o,
		onException:showExcMsg_o
});

//取得したHTMLデータのdiv id="osirase"から、li class="newlist"のデータを取り出す
	function getOsiraseData(data){
		var namadata = data.responseText;
		var namd2 = namadata.replace(/[\r\n]/g, "");//正しくマッチさせるために取得データからまず改行を除去
		var namd3 = namd2.match(/<div id="osirase">.+?<\/div>/g);//<div id="osirase">から次の</div>までを取り出す（一つしかないはず）
		namd3[0] = namd3[0].replace(/【確認中】/g, "");//記事リスト中の【確認中】文字列を削除しておく。
		var lists = namd3[0].match(/<li class="newlist_imp">.+?<\/li>/g);//namd3からli class="newlist_imp"をあるだけ取り出す
		var lists2 = namd3[0].match(/<li class="newlist">.+?<\/li>/g);//namd3からさらにli class="newlist"をあるだけ取り出す
		var lists3 = namd3[0].match(/<li>.+?<\/li>/g);
//		alert(lists);//namd3からそれ以外のliをあるだけ取り出す
//		alert(lists[0] +"," + lists[1] +"," + lists[2] +"," + lists[3] +"," + lists[4] +"," + lists[5]);

		if(lists){lists = lists.concat(lists2);lists = lists.concat(lists3);}
		//li class="newlist_imp"があるときはそれらを最優先し、次にnewlist、次にその他の記事の順に配列化
		else{lists = lists2;lists = lists.concat(lists3);}
		//li class="newlist_imp"がないときはlists2とlists3として抽出した記事のみをnewlist記事を優先して配列化
		
		
//取り出したliデータをul内に格納して結果を表示するdiv内に挿入。	
		var htmltp = "";
			htmltp = "<ul>";
			for(i=0; i<osirasecount/*lists.length*/ ; i++){// i<lists.length のとき：newlist全件表示
				if (lists[i] == undefined){//配列listsに空の要素があるときは無視し、データがあるものだけ表示
					continue;
				}else{
					//タグ部分を除く表示文字部分が指定文字数を超える場合、超えた文字を省略して ...を末尾に加え指定文字数にする
					var list_atag = lists[i].match(/<a href.+?>/);//データから<a>開始タグを取り出す
					list_atag[0] = list_atag[0].replace("../../", "");//<a>開始タグ内のリンク先URLはディレクトリの違うページからの相対パスであるため、正しいパスに直す(../は03gyosei/に置換、ただし../../の場合は削除)
					list_atag[0] = list_atag[0].replace("..","03gyosei");
					
					lists[i] = lists[i].stripTags();//データからタグを取り除いてテキストだけにする(prototype)
					lists[i] = lists[i].truncate(21, " ..."); //残りの文字列を指定文字数に丸めて ...を付加(prototype)
					htmltp += "<li>" + list_atag[0] + lists[i] + "</a></li>";//文字列にタグをつけなおして追加
				}
			}
			htmltp += "</ul>"
		osirase_result.innerHTML = htmltp;
	}

//通信失敗時
	function showErrMsg_o() {
//		alert("通信失敗");
		clearDisp();
		osirase_result.innerHTML = falsemsg_o;
	}
//例外時
	function showExcMsg_o() {
//		alert("例外");
		clearDisp();
		osirase_result.innerHTML = falsemsg_o;
	}
}

		   });