﻿//--------------------------------------------------------------------------------------------------//
//																									//
//	Functions																						//
//	copyright(C)2009 lcc inc. all rights reserved													//
//--------------------------------------------------------------------------------------------------//
var xmlModule 		= "./_xml.asp";
var xmlRetry		= new Array(99);	//xml RetryCount
var xmlRetryLimt	= 3;				//xml Retry Limit
var xmlRetryTimeout	= 5000;				//xml Retry Timeout

var loadNews_n	= 0;
var getGpNews_n	= 1;
var dateSort_n	= 2;
var getContentsData_n = 3;

//================================================================================================== ready
$().ready(function(){
	for (i=0; i<xmlRetry.length; i++) xmlRetry[i]=0 ;

	//------------------------------------------------------------ 全グループの最新記事を取得
	if (document.getElementById("gpList1")) {	//グループリストが存在する場合
		loadNews();								//ページ読み込み時に全グループの最新記事を取得
	}

	//------------------------------------------------------------ クリックされたグループの記事一覧を取得 (便りを全て表示)
	$("p[id*='gp']").each(function(idx, elm) {
		$("#gp"+(idx+1)).click(function () {
			if ($("#gpToggle"+(idx+1)).is(':hidden')) {	//記事が閉じられているか
				getGpNews(idx);							//グループの記事一覧を取得
			} else {
				$("#gpToggle"+(idx+1)).slideUp("fast");
			}
		});
	});

	//------------------------------------------------------------ 全グループの最新記事を表示 (全てを開く)
	$(".opBtn").click(function () {
		loadNews();
	});
	//------------------------------------------------------------ 全グループの記事を閉じる (全てを閉じる)
	$(".clBtn").click(function () {
		for (var i=1;i<10; i++) $("#gpToggle"+i).slideUp("fast");   //slideUp
	});

	//------------------------------------------------------------ 新着順表示に切り替え (新着順)
	$(".dtBtn").click(function () {
		dateSort();
	});

	//------------------------------------------------------------ グループ順の記事を表示 (グループ順)
	$(".gpBtn").click(function () {
		$("#dateSort").slideUp("slow");	//新着順非表示
		$("#dateSort ul").remove();		//新着順をremove
		$("#gpSort").slideDown("slow");	//グループ順表示
		$(".tglPanel").toggle("slow");	//ボタンのtoggle
	});

	//------------------------------------------------------------ グループ順・新着順・全てを開く・閉じるのhover
	$(".tglPanel img").hover(
		function () {
			$(this).addClass("ocBtnHver");
		},
		function () {
			$(this).removeClass("ocBtnHver");
		}
	);

	//------------------------------------------------------------ グループ名のhover
	$(".gpTitle").hover(
		function () {
			$(this).addClass("gpTitleHver");
		},
		function () {
			$(this).removeClass("gpTitleHver");
		}
	);

});



//================================================================================================== ajax 読み込み時
	function loadNews() {																	//loadNews
		new $.ajax({									//ページ読み込み時に全グループの最新記事を取得
			url: xmlModule+'?'+"_xsid="+$("#_xsid").val() +
				"&_fn=dist_group"+
				"&yc="+encodeURI($("#yc").val())+
				"&cache=" + (new Date()).getTime(),
			type: 'POST',
			dataType: 'xml',
			timeout: xmlRetryTimeout,
			error: function(){
				xmlRetry[loadNews_n]++ ;
				if(xmlRetry[loadNews_n]>(xmlRetryLimt-1))
					alert("情報の取得に失敗しました。\n最新の情報に更新してください。\nxml failed loadNews");
				else {
					alert("情報の取得に失敗しました"+loadNews_n);
					loadNews();
				}
			},success: function(xml) {
				xmlRetry[loadNews_n]=0;
				var xmlRcS = xml.getElementsByTagName("record");
				SetAllList(xmlRcS) ;										//記事一覧を表示
				for (var i=1;i<10; i++) $("#gpToggle"+i).slideDown("fast");	//slideDown
			}
		});
	}

	function getGpNews(idx) {																//getGpNews
		$.ajax({										//グループの記事一覧を取得
			url: xmlModule+'?'+"_xsid="+$("#_xsid").val() +
				"&_fn=dist_group"+
				"&yc="+encodeURI($("#yc").val())+
				"&gp="+(idx+1)+
				"&cache=" + (new Date()).getTime(),
			type: 'POST',
			dataType: 'xml',
			timeout: xmlRetryTimeout,
			error: function(){
				xmlRetry[getGpNews_n]++ ;
				if(xmlRetry[getGpNews_n]>(xmlRetryLimt-1))
					alert("情報の取得に失敗しました。\n最新の情報に更新してください。\nxml failed getGpNews");
				else {
					alert("情報の取得に失敗しました"+getGpNews_n);
					getGpNews(idx);
				}
			},success: function(xml) {
				xmlRetry[getGpNews_n]=0;
				var xmlRcS = xml.getElementsByTagName("record");
				tgt=$("#gpList"+(idx+1)) ;
				SetList(tgt,xmlRcS) ;
				$("#gpToggle"+(idx+1)).slideDown("fast");
			}
		});
	}

	function dateSort() {																//dateSort
		$.ajax({
			url: xmlModule+'?'+"_xsid="+$("#_xsid").val() +
				"&_fn=dist_dateSort"+
				"&yc="+encodeURI($("#yc").val())+
				"&cache=" + (new Date()).getTime(),
			type: 'POST',
			dataType: 'xml',
			timeout: xmlRetryTimeout,
			error: function(){
				xmlRetry[dateSort_n]++ ;
				if(xmlRetry[dateSort_n]>(xmlRetryLimt-1))
					alert("情報の取得に失敗しました。\n最新の情報に更新してください。\nxml failed dateSort");
				else {
					alert("情報の取得に失敗しました"+dateSort_n);
					dateSort();
				}
			},success: function(xml){
				xmlRetry[dateSort_n]=0;
				var lst = '\n';
				var xmlRcS = xml.getElementsByTagName("record");
				lst = lst+'								<ul>\n';
				for (i=0; i<xmlRcS.length; i++) {
					lst = lst+listValue(xmlRcS, i);
				}
				lst = lst+'								</ul>\n';
				$("#dateSort").html(lst);
				$("#gpSort").slideUp("slow");		//グループ順非表示
				$("#dateSort").slideDown("slow");	//新着順表示
				$(".tglPanel").toggle("slow");		//ボタンのtoggle
			}
		});
	}


//================================================================================================== 記事サマリー
	function SetList(tgt, xmlRcS) {														//SetList   読み込んだグループ記事一覧を表示
		var i, lst = '\n' ;
		if (xmlRcS.length < 1) {
				lst = lst+'							<li>現在、便りは未登録です</li>\n';
		} else {
			for (i=0; i<xmlRcS.length; i++) {
				lst = lst+listValue(xmlRcS, i);
			}
		}
		tgt.html(lst);
	}
	
	function SetAllList(xmlRcS) {														//SetAllList   全てのグループ記事を表示
		var i, j=0, g, flg, type ;
		for (g=1; g<10; g++) {
			flg=false;
			for (i=0; i<xmlRcS.length; i++) {
				type = xmlRcS[i].getElementsByTagName("Type")[0].firstChild.nodeValue;
				if (type == g) {
					$("#gpList"+g).html(listValue(xmlRcS, i));
					$("#gpAllViw"+g).html('<a href="#"><img src="images/gp_allviw.gif" alt="便りを全て表示" onmouseover="setImgHvr(this);" onmouseout="setImg(this);" /></a>');
					getAllList(g);
					flg=true;
					break;
				}
			}
			if (!flg) $("#gpList"+g).html('							<li>現在、便りは未登録です</li>\n');
		}
	}
	function getAllList(i) {															//getAllList   記事一覧を取得
		$("#gpAllViw"+i+" a").click(function () {
			$("#gpToggle"+i).slideUp("fast");
			getGpNews(i-1);			//グループの記事一覧を読み込み
		});
	}


	function listValue(xmlRcS, i) {														//listValue   記事のサマリーを返す
		var lst='\n' ;
		lst = lst+'									<li>\n';
		lst = lst+'										'+xmlRcS[i].getElementsByTagName("DateRel")[0].firstChild.nodeValue.substr(5,5)+'&nbsp;<a href="#" onclick="getContents('+xmlRcS[i].getElementsByTagName("ID")[0].firstChild.nodeValue+','+xmlRcS[i].getElementsByTagName("Type")[0].firstChild.nodeValue+','+i+') ; return false;">'+xmlRcS[i].getElementsByTagName("Caption")[0].firstChild.nodeValue+'</a>\n';
		lst = lst+'										<div class="listCnt" id="listCont'+xmlRcS[i].getElementsByTagName("Type")[0].firstChild.nodeValue+'-'+i+'"></div>\n';
		lst = lst+'									</li>\n';
		return lst;
	}


//================================================================================================== 記事詳細
	function getContents(cd,type,i) {													//getContents   記事詳細を取得
		if ($("#listCont"+type+"-"+i).is(':hidden')) {	//記事詳細が閉じられているか
			$(".listCnt").slideUp("fast");				//他に開いている記事詳細を閉じる
			getContentsData(cd,type,i);
		} else {										//記事詳細が開いていたら閉じる
			$("#listCont"+type+"-"+i).slideUp("fast");
		}
	}
	function getContentsData(cd,type,i) {													//getContentsData   記事詳細のデータを取得
		$.ajax({
			url: xmlModule+'?'+"_xsid="+$("#_xsid").val() +
				"&_fn=dist_contents"+
				"&cd="+cd+
				"&cache=" + (new Date()).getTime(),
			type: 'POST',
			dataType: 'xml',
			timeout: xmlRetryTimeout,
			error: function(){
				xmlRetry[getContentsData_n]++ ;
				if(xmlRetry[getContentsData_n]>(xmlRetryLimt-1))
					alert("情報の取得に失敗しました。\n最新の情報に更新してください。\nxml failed getContentsData");
				else {
					alert("情報の取得に失敗しました"+getContentsData_n);
					getContentsData(cd,type,i);
				}
			},success: function(xml){
				xmlRetry[getContentsData_n]=0;
				var xmlRcS = xml.getElementsByTagName("record");
				var tgt = $("#listCont"+type+"-"+i) ;
				SetContents(tgt,xmlRcS) ;
				$("#listCont"+type+"-"+i).slideDown("fast");
			}
		});
	}


	//読み込んだ記事詳細を表示
	function SetContents(tgt, xmlRcS) {
		var doc = '\n' ;
		var Comment = xmlRcS[0].getElementsByTagName("Comment")[0].firstChild.nodeValue;
		var Caption = xmlRcS[0].getElementsByTagName("Caption")[0].firstChild.nodeValue;
		var Path = xmlRcS[0].getElementsByTagName("Path")[0].firstChild.nodeValue;
		var Subj = xmlRcS[0].getElementsByTagName("Subj")[0].firstChild.nodeValue;

		doc=doc+'											<table id="evt" border="0" width="100%">\n';
		doc=doc+'												<tr><td id="evtSummary" colspan="2">'+Comment+'</td></tr>\n';
		if (Caption != "　") doc=doc+'												<tr bgcolor=""#405b81""><td colspan=""2"" class=""p16LFFFB"">'+Caption+'</td></tr>\n';
		doc=doc+'												<tr>\n';
		if (Path != "　") doc=doc+'													<td><img src="/ImgDat/Event/'+Path+'" align="center" border="0"></td>\n';
		if (Subj != "　") doc=doc+'													<td>'+Subj+'</td>\n';
		doc=doc+'												</tr>\n';
		doc=doc+'											</table>\n';

		tgt.html(doc);
	}

//================================================================================================== ボタン画像
	//便りを全て表示の画像
	function setImg(tgt) {
		$(tgt).attr({ src: 'images/gp_allviw.gif'});
	}
	//便りを全て表示の画像 hover
	function setImgHvr(tgt) {
		$(tgt).attr({ src: 'images/gp_allviw2.gif'});
	}
