//////////////////////////////////////////////////////////////////
/// 初期設定
//////////////////////////////////////////////////////////////////
/*xmlファイルパス
--------------------------------------------------*/
var xml_path="/en/common/xml/faq.xml";

/*最新一覧件数
--------------------------------------------------*/
var limit_num01=5;


//////////////////////////////////////////////////////////////////
/// xml読み込み
//////////////////////////////////////////////////////////////////

var loadFaq=function(category,subCategory){
	var dIdInfo=document.getElementById("INFO_AREA");
	var msec=(new Date()).getTime();
	new Ajax.Request(xml_path,{
		method:"get",
		parameters:"cache="+msec,
		onSuccess:function(httpObj){
			var xmlDoc=httpObj.responseXML;
			faqAll(xmlDoc,dIdInfo,category,subCategory);
		},
		onFailure:function(httpObj){
			var source='';
			dIdInfo.innerHTML=source;
		}
	});
};

//////////////////////////////////////////////////////////////////
/// 一覧表示
//////////////////////////////////////////////////////////////////

var faqAll=function(xmlDoc,dIdInfo,category,subCategory){
/*データ配列生成
--------------------------------------------------*/
	arrData=new Array();
	arrData=makeArr(xmlDoc);

/*カテゴリ=dir対応配列生成
--------------------------------------------------*/
	arrCateRef=new Array();
	arrCateRef=makeArrCateRef(xmlDoc);

/*カテゴリ配列生成
--------------------------------------------------*/
	arrCate=new Array();
	arrCate=makeArrCate(arrData);

/*タブ出力
--------------------------------------------------*/
	var source;
	source=makeTab(category,arrCateRef,arrCate);

/*一覧出力
--------------------------------------------------*/
	source+=makeListAll(category,arrData,arrCateRef,arrCate,subCategory);

/*結果出力
--------------------------------------------------*/
	dIdInfo.innerHTML=source;
}



//////////////////////////////////////////////////////////////////
///  sub function
//////////////////////////////////////////////////////////////////

/*データ配列生成 sub function
--------------------------------------------------*/
var makeArr=function(xmlDoc){
	var xTnItem=xmlDoc.getElementsByTagName("item");
	for(var i=0;i<xTnItem.length;i++){
		var xTnCate=xTnItem.item(i).getElementsByTagName("category");
		var xTnCateName=xTnCate.item(0).getElementsByTagName("name").item(0).firstChild.nodeValue;
		var xTnCateHead=xTnCate.item(0).getElementsByTagName("heading").item(0).firstChild.nodeValue;
		if(xTnCate.item(0).getElementsByTagName("subHeading").item(0).firstChild){
			var xTnCateSubHead=xTnCate.item(0).getElementsByTagName("subHeading").item(0).firstChild.nodeValue;
		}else{
			var xTnCateSubHead="";
		}
		var xTnTitle=xTnItem.item(i).getElementsByTagName("title").item(0).firstChild.nodeValue;
		var xTnLink=xTnItem.item(i).getElementsByTagName("link").item(0).firstChild.nodeValue;
		var xTnPDate=xTnItem.item(i).getElementsByTagName("pubDate").item(0).firstChild.nodeValue;
		arrData[i]=new Array(xTnCateName,xTnCateHead,xTnCateSubHead,xTnTitle,xTnLink,xTnPDate);
	}
	return arrData;
};

/*カテゴリ=dir対応配列生成 sub function
--------------------------------------------------*/
var makeArrCateRef=function(xmlDoc){
	var xTnCCate=xmlDoc.getElementsByTagName("categoryId");
	arrCate=new Array();
	arrSubCate=new Array();
	for(var i=0;i<xTnCCate.length;i++){
		var xTnCName=xTnCCate.item(i).getElementsByTagName("name").item(0).firstChild.nodeValue;
		var xTnCDir=xTnCCate.item(i).getElementsByTagName("dir").item(0).firstChild.nodeValue;
		if(xTnCCate.item(i).getElementsByTagName("subCategoryId").item(0)){
			var xTnCSubCate=xTnCCate.item(i).getElementsByTagName("subCategoryId");
			for(var j=0;j<xTnCSubCate.length;j++){
					var xTnCSubName=xTnCSubCate.item(j).getElementsByTagName("subName").item(0).firstChild.nodeValue;
					var xTnCSubLink=xTnCSubCate.item(j).getElementsByTagName("subLink").item(0).firstChild.nodeValue;
					arrSubCate[j]=new Array(xTnCSubName,xTnCSubLink);
			}
		}else{
			var arrSubCate="";
		}
		arrCateRef[i]=new Array(xTnCName,xTnCDir,arrSubCate);
	}
	return arrCateRef;
};

/*カテゴリ配列生成 sub function
--------------------------------------------------*/
var makeArrCate=function(arrData){
	arrCate=new Array();
	var j=0;
	for(var i=0;i<arrData.length;i++){
		if(arrCate.indexOf(arrData[i][0])==-1){
			arrCate[j]=arrData[i][0];
			j++;
		}
	}
	return arrCate;
};

/*カテゴリ=dir対応出力 sub function
--------------------------------------------------*/
var matchDir=function(name){
	for(var i=0;i<arrCateRef.length;i++){
		if(arrCateRef[i][0]==name){
			var dir=arrCateRef[i][1];
		}
	}
	return dir;
};

/*カテゴリ=subCategoryId対応出力 sub function
--------------------------------------------------*/
var matchSubCat=function(name,bigHeading){
	for(var i=0;i<arrCateRef.length;i++){
		if(arrCateRef[i][0]==name){
			for(var j=0;j<arrCateRef[i][2].length;j++){
				if(arrCateRef[i][2][j][0]==bigHeading){
					var subCat=arrCateRef[i][2][j][1];
				}
			}
		}
	}
	return subCat;
};

/*タブ出力 sub function
--------------------------------------------------*/
var makeTab=function(vl,arrCateRef,arrCate){
	source='<ul class="tabAll clearFix">\n';
	if(vl) source+='<li><a href="/en/faq/"><span class="inner">All Questions</span></a></li>\n';
	else source+='<li class="all toptabwhite"><span class="inner">All Questions</span></li>\n';
	for(var i=0;i<arrCate.length;i++){
		for(var j=0;j<arrCateRef.length;j++){
			if(arrCate[i]==arrCateRef[j][0]){
				if(vl&&deleteBr(arrCate[i])==vl) source+='<li class="'+arrCateRef[j][1]+' toptabwhite"><span class="inner">'+arrCate[i]+'</span></li>\n';
				else source+='<li><a href="/en/faq/'+matchDir(arrCate[i])+'/"><span class="inner">'+arrCate[i]+'</span></a></li>\n';
			}
		}
	}
	source+='</ul>\n';
	return source;
};

/*大見出し配列生成 sub function
--------------------------------------------------*/
var makeArrBigHeading=function(arrData,category){
	var j=0;
	for(var i=0;i<arrData.length;i++){
		if(arrData[i][0]==category){
			if(arrBigHeading.indexOf(arrData[i][1])==-1){
				arrBigHeading[j]=arrData[i][1];
				j++;
			}
		}
	}
	return arrBigHeading;
};

/*中見出し配列生成 sub function
--------------------------------------------------*/
var makeArrMidHeading=function(arrData,category,bigHeading){
	var j=0;
	for(var i=0;i<arrData.length;i++){
		if(arrData[i][0]==category){
			if(arrData[i][1]==bigHeading){
				if(arrMidHeading.indexOf(arrData[i][2])==-1){
					arrMidHeading[j]=arrData[i][2];
					j++;
				}
			}
		}
	}
	return arrMidHeading;
};

/*一覧生成 sub function
--------------------------------------------------*/
var makeArrLists=function(arrData,category,bigHeading,midHeading){
	var j=0;
	for(var i=0;i<arrData.length;i++){
		if(arrData[i][0]==category){
			if(arrData[i][1]==bigHeading){
				if(!midHeading||(midHeading&&arrData[i][2]==midHeading)){
					arrLists[j]=new Array(arrData[i][3],arrData[i][4]);
					j++;
				}
			}
		}
	}
	return arrLists;
};



/*一覧出力 sub function
--------------------------------------------------*/
var makeListAll=function(vl,arrData,arrCateRef,arrCate,suvVl){
	source="";
	for(var i=0;i<arrCate.length;i++){
		if(!vl||(vl&&vl==deleteBr(arrCate[i]))){
			source+='<div class="pb10">\n';

/*戻るリンク------------------------------*/
			if(vl){
				if(suvVl){
					source+='<p class="taRight mt10 pb14"><a href="/en/faq/less/" class="linkNormal01">Back to previous page</a></p>\n';
				}else{
					source+='<p class="taRight mt10 pb14"><a href="/en/faq/" class="linkNormal01">Back to previous page</a></p>\n';
				}
			}

/*制度カテゴリ見出し------------------------------*/
			if(!vl){
				source+='<p class="mt25">';
				source+='<img src="/en/common/image/general/icon_sys_';
				source+=matchDir(arrCate[i])+'.gif" alt="'+deleteBr(arrCate[i])+'" width="340" height="15" />';
				source+='</p>\n';
			}

/*大見出し出力------------------------------*/
			arrBigHeading=new Array();
			arrBigHeading=makeArrBigHeading(arrData,arrCate[i]);
			for(var j=0;j<arrBigHeading.length;j++){
				if(!suvVl||(suvVl&&suvVl==arrBigHeading[j])){
					source+='<div class="pb5">\n'; //source+='<div class="mt20 pb20">\n'
					if(!suvVl){
						source+='<!-- \n<div class="h201">\n<h2>';
						if(matchSubCat(arrCate[i],arrBigHeading[j])){
							source+='<a href="';
							source+=matchSubCat(arrCate[i],arrBigHeading[j]);
							source+='">';
							source+=arrBigHeading[j]+'</a>';
						}else{
							source+=arrBigHeading[j];
						}
						source+='</h2>\n</div> -->\n';
					}

/*中見出し出力------------------------------*/
					arrMidHeading=new Array();
					arrMidHeading=makeArrMidHeading(arrData,arrCate[i],arrBigHeading[j]);
					if(arrMidHeading!=""&&suvVl=="") source+='<div class="mt10" style="border-top:1px solid #b7b7b7;"><!--test-->\n';
					for(var k=0;k<arrMidHeading.length;k++){
						if(arrMidHeading!=""){
							source+='<!--h3:tit_3-->\n';
							if(suvVl=="") source+='<div style="border-bottom:1px solid #b7b7b7;">\n';
							source+='<div class="h301 mt9 pb8">\n<h3>';
							source+='<a href="';
							if(matchSubCat(arrCate[i],arrBigHeading[j])) source+=matchSubCat(arrCate[i],arrBigHeading[j]);
							else source+='/en/faq/'+matchDir(arrCate[i])+'/';
							source+='">';
							source+=arrMidHeading[k]+'</a></h3>\n';
							source+='</div>\n';
							if(suvVl=="") source+='</div>';
							source+='<!--/h3:tit_3-->\n';
						}

/*一覧生成------------------------------*/
						if(arrMidHeading==""||suvVl){
							arrLists=new Array();
							arrLists=makeArrLists(arrData,arrCate[i],arrBigHeading[j],arrMidHeading[k]);
							source+='<ul class="mt10" style="border-top:1px solid #b7b7b7;">\n';
							for(var m=0;m<arrLists.length;m++){
								source+='<li class="pt10 pb9 linkNormal02" style="border-bottom:1px solid #b7b7b7;">';
								source+='<a href="'+arrLists[m][1]+'">';
								source+=arrLists[m][0]+'</a></li>\n';
							}
							source+='</ul>\n';
						}
					}
					if(arrMidHeading!=""&&suvVl=="") source+='</div><!--/test-->\n';
					source+='</div>\n';
				}
			}
			source+='</div>\n';
		}
	}
	return source;
};



//////////////////////////////////////////////////////////////////
///  汎用
//////////////////////////////////////////////////////////////////


/*タブ改行削除
--------------------------------------------------*/
var deleteBr=function(str){
	while(str.indexOf("<br />")!=-1){
		str=str.replace("<br />","");
	}
	return str;
};

/* "/"削除
--------------------------------------------------*/
var delSlash=function(str){
	while(str.indexOf("/")!=-1){
		str=str.replace("/","");
	}
	return str;
};

/* "/"日付生成
--------------------------------------------------*/
var makeDate=function(str){
	while(str.indexOf("-")!=-1){
		str=str.replace("-","/");
	}
	return str;
};

/* "/"追加
--------------------------------------------------*/
var addSlash=function(str){
	if(str.length==8) str=str.slice(0,4)+"/"+str.slice(4,6)+"/"+str.slice(6,8);
	return str;
};

/* sort()用比較
--------------------------------------------------*/
var cateSort=function(arrCate){
	return arrCate;
};







