

var keys = new Array();
var keysrep = new Array();

var tabs = new Array();




function initWidget() {
	Spry.$$(".CollapsiblePanelGroup").forEach(function(n) {
		window[n.id] = new Spry.Widget.CollapsiblePanelGroup(n, {contentIsOpen:false, duration:1000});
	});
}






var dsParentRep = new Spry.Data.XMLDataSet("./data/userreport.xml", "UserData/Category");

dsParentRep.addObserver({ onPostLoad: function() {
	var rows = dsParentRep.getData();
	for (var i = 0; i < rows.length; i++) {
		var row = rows[i];
		keyCode = row["@CategoryName"];
		if (keysrep[keyCode] == null) {
			keysrep[keyCode] = keyCode;
		}
	}
}} );




var dsElem = new Spry.Data.XMLDataSet("data/userprop.xml", "UserData/Category", { subPaths: ["DetailData", "DetailData/Elem"] });
dsElem.setColumnType("DetailData/Elem", "html");

var myFilterKey = function(dataSet, row, rowNumber)
{
	if (row["DetailData/@Visible"] == "true" && row["DetailData/Elem/@KeyName"] == "物件名")
		return row;
	return null;
}
dsElem.filter(myFilterKey);

dsElem.addObserver({ onPostLoad: function() {
	var rows = dsElem.getData();
	var str = "<ul>";
	var first = "";
	var flg = false;

	for (var i = 0; i < rows.length; i++) {
		var row = rows[i];
		var keyCode = row["DetailData/@KeyCode"];
		var target = row["DetailData/Elem"];
		if (keys[keyCode] == null) {
			keys[keyCode] = target;

			if (keysrep[keyCode] == keyCode) {
				str += "<li><a href=JavaScript:setCurrentReport('" + row["DetailData/@KeyCode"] + "')>" + row["DetailData/Elem"] + "</a></li>";
				if (flg == false) {
					first = keyCode;
					flg = true;
				}
			}
		}
	}
	str += "</ul>";

	document.getElementById("dynswitchreport").innerHTML = str;



	var rowsp = dsParentRep.getData();
	for (var j = 0; j < rowsp.length; j++) {
		var rowp = rowsp[j];
		keyCode = rowp["@CategoryName"];

		for (var k in keys) {
			if (k == keyCode) {
				rowp["propName"] = keys[k];
			}
		}
	}


	createDynReport();
	initWidget();


	var data = location.href.split("?")[1];
	if (data == null || data == "undefined") {
		return;
	}
	data = data.split("#")[0];
	if (data == null || data == "undefined") {
		return;
	}
	setCurrentReport(data.split("=")[1]);
}} );






var dsRepTmp = new Spry.Data.XMLDataSet("./data/userreport.xml", "UserData/Category", {subPaths: ["DetailData", "DetailData/Elem"]});
dsRepTmp.setColumnType("DetailData/Elem", "html");

var dsImgTmp = new Spry.Data.XMLDataSet("./data/userreport.xml", "UserData/Category", {subPaths: ["DetailData", "DetailData/Img"]});


var dsRepWk = new Spry.Data.XMLDataSet("./data/userreport.xml", "UserData/Category", {subPaths: "DetailData"});

var myFilterRepWk = function(dataSet, row, rowNumber)
{
	if (row["DetailData/@Visible"] == "true") {
		setRowDatas(row);
		return row;
	}
	return null;
}
dsRepWk.filter(myFilterRepWk);


function setRowDatas(curRow) {

	var keyCode = curRow["@CategoryName"];
	var id = curRow["DetailData/@id"];

	var rows = dsRepTmp.getData();

	for (var i = 0; i < rows.length; i++) {
		var row = rows[i];
		if (row["@CategoryName"] == keyCode && row["DetailData/@id"] == id) {
			if (row["DetailData/Elem/@KeyName"] == "タイトル") {
				curRow["タイトル"] = row["DetailData/Elem"];
			} else if (row["DetailData/Elem/@KeyName"] == "日付") {
				curRow["日付"] = row["DetailData/Elem"];
			} else if (row["DetailData/Elem/@KeyName"] == "コメント") {
				curRow["コメント"] = row["DetailData/Elem"];
			}
		}
	}
}








function createDynReport() {

	var rows = dsParentRep.getData();
	var str = "";
	var flgFirst = true;
	var tabNum = 0;

	str += "<div class='CollapsiblePanelGroup'>";

	// sort by keys array(not dsParentRep)
	for (var k in keys) {

		for (var i = 0; i < rows.length; i++) {
			var row = rows[i];
			var keyCode = row["@CategoryName"];


			if (keyCode == k) {

				tabs[keyCode] = tabNum;

				str += "<div class='CollapsiblePanel'>"

				str += "<div class='CollapsiblePanelTab' tabindex=' + tabNum + '><h4>" + row["propName"] + "</h4></div>";

				str += "<div class='CollapsiblePanelContentRep'>"


				var rReps = dsRepWk.getData();

				for (var j = 0; j < rReps.length; j++) {
					var rRep = rReps[j];
					if (rRep["@CategoryName"] == keyCode) {

						str += "<h5>" + rRep["日付"] + "&nbsp;&nbsp;" + rRep["タイトル"] + "</h5>";

						if (flgFirst) {
							str += "<p class='click_me'><a href='./object_detail.html?keyCode=" + keyCode + "'>物件の詳しい情報はコチラをご覧下さい。</a></p>";
							str += "<p>※詳しくは、<a href='./contact.html' title='お問い合わせ'>お電話・FAX・メールにてお問い合わせください！</a></p>";
							flgFirst = false;
						}


						str += "<div class='sentence'><p>" + rRep["コメント"] + "</p></div>";


						str += getImgStrings(keyCode, rRep["DetailData/@id"]);


						str += "<p class='gotop'><a href='#container' title='ページトップへ戻る'>ページトップへ戻る▲</a></p>";
					}
				}
				if (rReps.length > 0) {
					str += "<p class='contact'><a href='./contact.html' title='物件についてのお問い合わせはこちらから'>物件についてのお問い合わせはこちらから</a></p>";
				}

				str += "</div></div>";

				flgFirst = true;

			}
		}

		tabNum++;

	}


	str += "</div>";


	document.getElementById("dynreport").innerHTML = str;

}


function getImgStrings(keyCode, detailId) {

	var rImgs = dsImgTmp.getData();
	var str = "";

	for (var i = 0; i < rImgs.length; i++) {
		var row = rImgs[i];
		if (row["@CategoryName"] == keyCode && row["DetailData/@id"] == detailId) {
			if (str == "") str += "<div class='sect_photo'>";

			str += "<img src='data/" + keyCode + "/images/" + row["DetailData/Img"] + "' width='280' height='210' />";

		}
	}
	if (str != "") str += "</div>";

	return str;
}






function setCurrentReport(key) {

	Spry.$$(".CollapsiblePanelGroup").forEach(function(n) {
		window[n.id].closeAllPanels();
		window[n.id].openPanel(tabs[key]);
	});
}






function setCurrentReportt(key) {
	var rows = dsParentRep.getData();
	var rownum = -1;
	var str = "";
	var sName = "";

	for (var obj in keys) {
		if (keys[obj] == key) sName = obj;
	}
	for (var i = 0; i < rows.length; i++) {
		var row = rows[i];
		if (row["@CategoryName"] == key) {
			rownum = i;
		}
	}

	if (rownum != -1) {
		dsParentRep.setCurrentRow(rownum);

	} else {
		str = "<p>選択された物件の「現場からのレポート」のデータがみつかりませんでした。</p>";
		str += "<p class='click_me'><a href='./object_detail.html?keyCode=" + key + "'>" + sName + "についてはコチラをご覧下さい。</a></p>"
		str += "<p>※詳しくは、<a href='./contact.html' title='お問い合わせ'>お電話・FAX・メールにてお問い合わせください！</a></p>";
		str += "<p class='gotop'><a href='#container' title='ページトップへ戻る'>ページトップへ戻る▲</a></p>";
		document.getElementById("dynreport").innerHTML = str;
	}
//	window.location = "#report";
}


function setCurrentReportFirst(key) {
	var rows = dsParentRep.getData();
	var rownum = -1;
	var str = "";
	var sName = "";

	for (var obj in keys) {
		if (keys[obj] == key) sName = obj;
	}
	for (var i = 0; i < rows.length; i++) {
		var row = rows[i];
		if (row["@CategoryName"] == key) {
			rownum = i;
		}
	}

	if (rownum != -1) {
		dsParentRep.setCurrentRow(rownum);

	} else {
		str = "<p>選択された物件の「現場からのレポート」のデータがみつかりませんでした。</p>";
		str += "<p class='click_me'><a href='./object_detail.html?keyCode=" + key + "'>" + sName + "についてはコチラをご覧下さい。</a></p>"
		str += "<p>※詳しくは、<a href='./contact.html' title='お問い合わせ'>お電話・FAX・メールにてお問い合わせください！</a></p>";
		str += "<p class='gotop'><a href='#container' title='ページトップへ戻る'>ページトップへ戻る▲</a></p>";
		document.getElementById("dynreport").innerHTML = str;
	}
}


