// JavaScript Document
//DW-JAVA
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

// Hiroshima-city.gifの先読み
var cityimage = new Image();
cityimage.src = "./images/map_hiroshima-city.gif";


var data;
// キャッシュ制御用タイムスタンプ変数
var date = new Date();
var timestamp = date.getTime();

// QueryStringを配列に取得する
var QS = new Array;

if (location.search.length > 1) {
	var m_Array = location.search.substr(1).split("&"); 
	for (idx = 0; idx < m_Array.length; idx++) {
		var res = m_Array[idx].split("=");
		if(res[1]){
			res[1] = decodeURIComponent(res[1]);
			QS.push(res);
		}
	}
}

// 抽出用文字列の作成（県名）
var RegPref = "";
for (iRegPref = 0; iRegPref < QS.length; iRegPref++){
	if(QS[iRegPref][0].match(/pref.*/i)){
		RegPref += QS[iRegPref][1];
	}
}
if(RegPref){
	var oRegPref = new RegExp("[" + RegPref + "]","i");
}else{
	var oRegPref = new RegExp(".*","i");
}
// 抽出用文字列の作成（業種）
var RegBunya = "";
for (iRegBunya = 0; iRegBunya < QS.length; iRegBunya++){
	if(QS[iRegBunya][0].match(/bunya.*/i)){
		RegBunya += "(_"+QS[iRegBunya][1]+"_)";
	}
}
if(RegBunya){
	RegBunya = RegBunya.replace(/\u0029\u0028/g, ")|(");
	var oRegBunya = new RegExp(RegBunya,"i");
}else{
	var oRegBunya = new RegExp(".*","i");
}
// 抽出用文字列の作成（外国語）
var RegWorld = "";
for (iRegWorld = 0; iRegWorld < QS.length; iRegWorld++){
	if(QS[iRegWorld][0].match(/world/i)){
		if(QS[iRegWorld][1] == "0"){
			RegWorld += "^$";
		}else if(QS[iRegWorld][1] == "1"){
			RegWorld += ".+";
		}else{
			RegWorld += ".*";
		}
	}
}
if(RegWorld){
	var oRegWorld = new RegExp(RegWorld,"i");
}else{
	var oRegWorld = new RegExp(".*","i");
}
// 抽出用文字列の作成（体験）
var RegTaiken = "";
for (iRegTaiken = 0; iRegTaiken < QS.length; iRegTaiken++){
	if(QS[iRegTaiken][0].match(/taiken/i)){
		if(QS[iRegTaiken][1] == "0"){
			RegTaiken += "^$";
		}else if(QS[iRegTaiken][1] == "1"){
			RegTaiken += ".+";
		}else{
			RegTaiken += ".*";
		}
	}
}
if(RegTaiken){
	var oRegTaiken = new RegExp(RegTaiken,"i");
}else{
	var oRegTaiken = new RegExp(".*","i");
}
// 抽出用文字列の作成（対象）
var RegTaisho = "";
for (iRegTaisho = 0; iRegTaisho < QS.length; iRegTaisho++){
	if(QS[iRegTaisho][0].match(/taisho.*/i)){
		RegTaisho += "(_"+QS[iRegTaisho][1]+"_)";
	}
}
if(RegTaisho){
	RegTaisho = RegTaisho.replace(/\u0029\u0028/g, ")|(");
	var oRegTaisho = new RegExp(RegTaisho,"i");
}else{
	var oRegTaisho = new RegExp(".*","i");
}

/*----------------------------------------------------------------------------------------------
各テンプレートの読み込み(prototype.jp)
※同期通信
----------------------------------------------------------------------------------------------*/
function GetTplFindList(){
	// 詳細ページ用テンプレートのファイル名（日本語）
	var strTplFile = "../../tpl/tpl_findlist.html?time="+timestamp;
	var tplHtml="";
	var myAjax = new Ajax.Request(strTplFile, {asynchronous : false, method: 'get', 
									onComplete: function(responseHttpObj){
										var InSource = responseHttpObj.responseText;
										tplHtml = InSource;
									},
									onFailure: function(responseHttpObj) {
										alert('読み込みに失敗しました');
									},
									onException: function (responseHttpObj) {
										alert('読み込み中にエラーが発生しました');
									}
					});
	return tplHtml;
}

function GetHeaderPref(iPref){
	// 県別表示用テンプレートのファイル名（日本語）
	var strTplFilePref = new Array(6);
	var tplHtmlPref;
	// 置換前地図画像パス
	var strPreImg = new RegExp("\.\./jp/chugoku/images/map_", "g");
	// 置換五地図画像パス
	var strAftImg = "images/map_";
	
	strTplFilePref[0] = "../../tpl/tpl_hiroshima_city.html?time="+timestamp;
	strTplFilePref[1] = "../../tpl/tpl_tottori.html?time="+timestamp;
	strTplFilePref[2] = "../../tpl/tpl_shimane.html?time="+timestamp;
	strTplFilePref[3] = "../../tpl/tpl_okayama.html?time="+timestamp;
	strTplFilePref[4] = "../../tpl/tpl_hiroshima.html?time="+timestamp;
	strTplFilePref[5] = "../../tpl/tpl_yamaguchi.html?time="+timestamp;
	
	var ajaxPref = new Ajax.Request(strTplFilePref[iPref], {asynchronous : false, method: 'get', 
												onComplete: function(responseHttpObj){
													tplHtmlPref = responseHttpObj.responseText;
												},
												onFailure: function(responseHttpObj) {
													alert('読み込みに失敗しました');
												},
												onException: function (responseHttpObj) {
													alert('読み込み中にエラーが発生しました');
												}
					});
	tplHtmlPref = tplHtmlPref.replace(strPreImg, strAftImg);
	return tplHtmlPref;
}
/*----------------------------------------------------------------------------------------------*/

// data内の表示用正規化
// data内の改行をBRに変換
function ReplaceNormal(text){
	var ret;
	text = text + "";
	if(text.length > 0 || typeof text != 'undefined'){
		ret = text.replace(/\x0D\x0A|\x0D|\x0A/g,"<br>");
	}else{
		ret = "&nbsp;";
	}
	return ret;
}

// 業種番号を表示用に変換
function ReplaceBunya(text){
	var ret;
	var aryStr;
	text = text + "";
	aryStr = text.split("_");
	for(iStr = 0; iStr < aryStr.length; iStr++){
		if(ret) ret = ret + "&nbsp;/&nbsp;";
		switch(text){
			case "1":
				ret = "エネルギー・環境";
				break;
			case "2":
				ret = "交通";
				break;
			case "3":
				ret = "食品";
				break;
			case "4":
				ret = "製造";
				break;
			case "5":
				ret = "伝統工芸";
				break;
			case "6":
				ret = "農林漁業";
				break;
			case "7":
				ret = "ミュージアム・町並み等";
				break;
			case "8":
				ret = "放送・新聞";
				break;
			case "9":
				ret = "医療機器・バイオ";
				break;
			case "10":
				ret = "IT関連";
				break;
			default:
				ret = "&nbsp;";
				break;
		}
	}
	if(ret){
		ret = ret.substring(0, ret.length - 13);
	}else{
		ret = "&nbsp;";
	}
	
	return ret;
}

// 所要時間を表示用に変換
function ReplaceTime(text){
	var ret;
	text = text + "";
	switch(text){
		case "1":
			ret = "30分以内";
			break;
		case "2":
			ret = "30分～1時間";
			break;
		case "3":
			ret = "1時間～2時間";
			break;
		case "4":
			ret = "2時間以上";
			break;
		default:
			ret = "&nbsp;";
			break;
	}
	return ret;
}

// ありなしを表示用に変換
function ReplaceYesNo(text){
	var ret;
	text = text + "";
	switch(text){
		case "1":
			ret = "有り";
			break;
		case "2":
			ret = "無し";
			break;
		default:
			ret = "&nbsp;";
			break;
	}
	return ret;
}

// CSVファイルの読み込み
function loadDataFile(fName){
	var url = fName+"?time="+timestamp;
	var http = new JKL.ParseXML.CSV( url );
	data = http.parse();
}

// データを画面に表示
function displayData(sort_no){
	var flg;
	var retText="";
	
	flg = parseTabText(sort_no);
	
	if(flg == 0){
		retText += "<div style=\"width:700; height:100%; text-align:center;\">";
		retText += "<br />";
		retText += "<br />";
		retText += "指定された条件にあてはまる施設は見つかりませんでした。";
		retText += "<br />";
		retText += "<br />";
		retText += "<a href=\"../../index.html\">&lt;&lt; 戻る</a>";
		retText += "</div>";
		$("result").innerHTML = retText;
	}
}


// 表示
function parseTabText(sort_no){
	// テンプレートの取得
	var tplHtml = GetTplFindList();
	
	var prefText="";
	var resultText="";
	var curPref=0;
	var sPref="";
	var curTime="";
	var row = 0;
	var classname="";
	// 表示用データ配列の作成（2行目から取得）
	var ret=Array();
	for (var i=1; i < data.length; i++)	{
		if(data[i].length > 1){
			// 分野データの調整
			if(data[i][1] != ""){
				data[i][1] = "_"+data[i][1]+"_";
			}

			// 対象データの調整
			if(data[i][8] != ""){
				data[i][8] = "_"+data[i][8]+"_";
			}

			// 抽出
			if(data[i][11] == ""){
				var sRegPref = "";
			}else{
				var sRegPref = data[i][11] + "";
			}
			if(data[i][1] == ""){
				var sRegBunya = "";
			}else{
				var sRegBunya = data[i][1] + 0;
			}
			if(data[i][25] == ""){
				var sRegWorld = "";
			}else{
				var sRegWorld = data[i][25] + "";
			}
			if(data[i][36] == ""){
				var sRegTaiken = "";
			}else{
				var sRegTaiken = data[i][36] + "";
			}
			if(data[i][8] == ""){
				var sRegTaisho = "";
			}else{
				var sRegTaisho = data[i][8] + "";
			}
			
			if(sRegPref.match(oRegPref) && sRegBunya.match(oRegBunya) && sRegWorld.match(oRegWorld) && sRegTaiken.match(oRegTaiken) && sRegTaisho.match(oRegTaisho)){
				ret[row]=data[i];
				row++;
			}
		}
	}
	
	// 表示用DIVの作成
	var txtDiv = "";
	var iColCount = 60;
	for (var i=0; i < ret.length; i++)	{
		txtDiv += '<div id="contents'+i+'"></div>';
	}
	$("result").innerHTML = txtDiv;
	
	// undefinedの処理
	for(i = 0; i< ret.length; i++){
		if(ret[i].length < iColCount){
			var iTmp = iColCount - ret[i].length;
			for(iPush = 0; iPush < iTmp; iPush++){
				ret[i].push("");
			}
		}
		
		for(j = 0; j < iColCount; j++){
			ret[i][j] = ret[i][j].replace(/^\s$/g, "");
			if(!ret[i][j]){
				ret[i][j] = "";
			}
		}
		// ソート用に数値にする
		ret[i][11] = ret[i][11] - 0;
		ret[i][0] = ret[i][0] - 0;
	}
	
	// ソート
	//alert(sort_no);
	if(sort_no){
		//都道府県[11]->sort_no[ ]
		ret.sort(
			function(a, b) {
				sort_no = sort_no-0;
				if(a[11] == b[11]){
					return (a[sort_no] > b[sort_no]) ? 1 : -1;
				}
				return (a[11] > b[11]) ? 1 : -1;
			}
		);
	}else{
		// 都道府県[11]->登録No[0]（標準）
		ret.sort(
			function(a, b) {
				if(a[11] == b[11]){
					return (a[0] > b[0]) ? 1 : -1;
				}
				return (a[11] > b[11]) ? 1 : -1;
			}
		);
	}

	for (var i=0; i < ret.length; i++)	{
		if(ret[i].length > 1){
			// 出力
			resultText = '<div style="width:700px">';
			// 県名タイトル
			if(curPref != (ret[i][11])){
				switch(ret[i][11]-0){
					case 1:
						sPref = "鳥取県";
						classname = "tottori-h2";
						break;
					case 2:
						sPref = "島根県";
						classname = "shimane-h2";
						break;
					case 3:
						sPref = "岡山県";
						classname = "okayama-h2";
						break;
					case 4:
						sPref = "広島県";
						classname = "hiroshima-h2";
						break;
					case 5:
						sPref = "山口県";
						classname = "yamaguchi-h2";
						break;
				}
				
				resultText += "<h2 class=\""+classname+"\"><span class=\"kenmei\">" + sPref + "</span></h2>";
			}
			
			// 時間タイトル
			if(sort_no == 33){
				if(curTime != (ret[i][33])){
					if(ret[i][33] == 99){
						resultText += "<h5 class=\"time-title\">指定なし</h5>";
					}else if(ret[i][33] == 0){
						resultText += "<h5 class=\"time-title\">30分以内</h5>";
					}else if(ret[i][33] == 1){
						resultText += "<h5 class=\"time-title\">30分～1時間</h5>";
					}else if(ret[i][33] == 2){
						resultText += "<h5 class=\"time-title\">1時間～2時間</h5>";
					}else if(ret[i][33] == 3){
						resultText += "<h5 class=\"time-title\">2時間以上</h5>";
					}
				}
			}
			
			// テンプレートから出力データを作成
			var iTpl = 0;
			resultText += tplHtml;
			
			// テンプレート内をデータと置換
			for(iTpl = 0; iTpl < iColCount; iTpl++){
				strBef = new RegExp("::"+iTpl+"::", "g");

				if(iTpl == 1){
					strAft = ReplaceBunya(ret[i][iTpl]);
				}else if(iTpl == 11){
					strAft = sPref;
				}else if(iTpl == 15){
					if(ret[i][iTpl] == 1){
						strAft = '<image src="../images/tour.gif" border=0 alt="見学コース有り">';
					}else{
						strAft = "&nbsp;";
					}
				}else if(iTpl == 19){
					strAft = ReplaceNormal(ret[i][iTpl]);
				}else if(iTpl == 49){
					if(ret[i][iTpl]){
						strAft = '<a href="javascript:void(0);" onclick="ImagePopup(\''+ret[i][4]+'\', \''+ret[i][iTpl]+'\', \''+ret[i][iTpl+1]+'\')"><image src="../../img_common/photo.gif" border=0 alt="写真01"></a>';
						strAft += '<image id="oImage" src="../../img_common/'+ret[i][iTpl]+'" border=0 width="0" height="0">'
					}else{
						strAft = "&nbsp;";
					}
				}else if(iTpl == 52){
					if(ret[i][iTpl]){
						strAft = '<a href="javascript:void(0);" onclick="ImagePopup(\''+ret[i][4]+'\', \''+ret[i][iTpl]+'\', \''+ret[i][iTpl+1]+'\')"><image src="../../img_common/photo.gif" border=0 alt="写真02"></a>';
						strAft += '<image id="oImage" src="../../img_common/'+ret[i][iTpl]+'" border=0 width="0" height="0">'
					}else{
						strAft = "&nbsp;";
					}
				}else if(iTpl == 55){
					if(ret[i][iTpl]){
						strAft = '<a href="javascript:void(0);" onclick="ImagePopup(\''+ret[i][4]+'\', \''+ret[i][iTpl]+'\', \''+ret[i][iTpl+1]+'\')"><image src="../../img_common/photo.gif" border=0 alt="写真03"></a>';
						strAft += '<image id="oImage" src="../../img_common/'+ret[i][iTpl]+'" border=0 width="0" height="0">'
					}else{
						strAft = "&nbsp;";
					}
				}else{
					if(ret[i][iTpl]){
						strAft = ret[i][iTpl];
					}else{
						strAft = "&nbsp;";
					}
				}
				
				resultText = resultText.replace(strBef, strAft);
			}
			
			resultText = resultText.replace(/(\r\n|\n|\r)|\t/g, "");
			txtId = "contents"+i;
			$(txtId).innerHTML = resultText;
			//id = setTimeout("PrintHTML('" + resultText + "', "+i+")", 10);
			resultText = "";
			curPref = ret[i][11];
			curTime = ret[i][33];
			row = row + 1;
		}
	}
	
	if (ret.length > 0){
		// ハッシュの処理
		strHash = window.location.hash;
		if(strHash){
			strHash = strHash.replace("#", "");
			window.location.hash = strHash;
		}
		return 1;
	}else{
		return 0;
	}
	
}

//画面描画
function PrintHTML(htmlText, intNo){
	//$("result").innerHTML += "<div><div id='contents"+intNo+"'></div></div>";
	txtId = "contents"+intNo;
	$(txtId).innerHTML = htmlText;
	//$("contents"+intNo).outerHTML = htmlText;
	//document.open();
	//document.writeln(htmlText);
	//document.close();
}

/////
///// 都道府県別用
/////

//地図画像の切り替え
function ChangePrefImage(){
	switch(RegPref){
		case "1":
			var tplHtmlPref = GetHeaderPref(RegPref);
			$("pref-head").innerHTML = tplHtmlPref;
			document.getElementById("pref-title-h2").className = "tottori-h2";
			break;
		case "2":
			var tplHtmlPref = GetHeaderPref(RegPref);
			$("pref-head").innerHTML = tplHtmlPref;
			document.getElementById("pref-title-h2").className = "shimane-h2";
			break;
		case "3":
			var tplHtmlPref = GetHeaderPref(RegPref);
			$("pref-head").innerHTML = tplHtmlPref;
			document.getElementById("pref-title-h2").className = "okayama-h2";
			break;
		case "4":
			var tplHtmlPref = GetHeaderPref(RegPref);
			$("pref-head").innerHTML = tplHtmlPref;
			document.getElementById("pref-title-h2").className = "hiroshima-h2";
			break;
		case "5":
			var tplHtmlPref = GetHeaderPref(RegPref);
			$("pref-head").innerHTML = tplHtmlPref;
			document.getElementById("pref-title-h2").className = "yamaguchi-h2";
			break;
	}
	$("go-chart").innerHTML = "<a href=\"findlist.html?pref="+RegPref+"\">一覧ページへ&gt;&gt;&gt;</a>";
}

function displayPrefData(){
	// undefinedの処理
	for(i = 0; i< data.length; i++){
		for(j = 0; j < 14; j++){
			if(!data[i][j]){
				data[i][j] = "&nbsp;";
			}
		}
	}
	
	$("result").innerHTML = parsePrefTabText();
}

// CSVファイルを解析して表示
function parsePrefTabText(){
	var resultText="";
	var curPref;
	var sPref="";
	var row = 1;
	var col = 0;
	// ソート
	for(var line in data){
		data[line][0] = data[line][0] - 0;
	}
	
	data.sort(
		function(a, b) {
			if(a[0] == b[0]){
				return (a[0] > b[0]) ? 1 : -1;
			}
			return (a[0] > b[0]) ? 1 : -1;
		}
	);

	resultText += "<table border=\"0\" cellspacing=\"1\" cellpadding=\"5\" width=\"700\" align=\"center\" class=\"sangyo-table\">\n";
	resultText += "<tr>\n";
	
	for (var i=0; i<data.length; i++){
		if(data[i].length > 1){
			// 抽出
			if(data[i][11] == "&nbsp;"){
				var sRegPref = "";
			}else{
				var sRegPref = data[i][11] + "";
			}
			if(sRegPref.match(oRegPref)){
				if(i > 0 && col % 2 == 0){
					resultText += "  </tr>\n";
					resultText += "  <tr>\n";
					col = 0;
				}
				resultText += "   <th width=\"30\">"+data[i][0]+"</th>\n";
				resultText += "   <td width=\"320\"><a href=\"findlist.html?pref="+RegPref+"#"+data[i][0]+"\">"+data[i][4]+"</a></td>\n";
				col = col + 1;
				row = row + 1;
			}
		}
	}
	if(col % 2 != 0){
		resultText += "<th width=\"30\"></th>\n<td width=\"320\"></td>\n";
	}
	resultText += "</tr>\n</table>\n";

	return resultText;
}


/////
///// index用
/////

// 都道府県のチェック
function PrefChkBox(bol,obj){
	for(iChk = 2; iChk <= 6; iChk++){
		var objChk = obj.elements[iChk];
		
		if(bol == 1){
			objChk.checked = true;
		}else{
			objChk.checked = false;
		}
	}
}

// 業種のチェック
function BunyaChkBox(bol,obj){
	for(iChk = 9; iChk <= 18; iChk++){
		var objChk = obj.elements[iChk];
		
		if(bol == 1){
			objChk.checked = true;
		}else{
			objChk.checked = false;
		}
	}
}

// 対象のチェック
function TaishoChkBox(bol,obj){
	for(iChk = 21; iChk <= 32; iChk++){
		var objChk = obj.elements[iChk];
		
		if(bol == 1){
			objChk.checked = true;
		}else{
			objChk.checked = false;
		}
	}
}

function ChkForm(obj){
	iRow = obj.length - 6;
	var flgChk = false;
	for(iChk = 0; iChk < iRow; iChk++){
		var objChk = obj.elements[iChk ];
		
		if(objChk.checked){
			flgChk = true;
		}
	}
	
	if(flgChk){
		return true;
	}else{
    	//alert("地域、業種、対象が未選択です");
	    //return false ;
		return true;
	}
		
}

function ImagePopup(strTitle, strImage, strNote){
	var oImage=new Image(); //イメージオブジェクト生成
	oImage.src=('../../img_common/'+strImage);
	//iHeight = oImage.height;

	win = new Window("imgpopup", {className: "alphacube", title: strTitle, width:350, height:300, destroyOnClose: true, minimizable:false, maximizable:false, recenterAuto:false, draggable:false});
	win.getContent().innerHTML='<div id="image_contents"></div>';
	win.getContent().innerHTML = '<p style="text-align:center"><image id="photo" src="../../img_common/'+strImage+'" border=0 alt="写真"></p><table width="80%" border="0" align="center" cellpadding="0" cellspacing="0"><tr><td>'+strNote+'</td></tr></table>';
						//strAft += '<div id="popup_tmp" style="width:0px; height:0px"><p style="text-align:center"><image id="oImage" src="../../img_common/'+strImage+'" border=0 alt="写真"></p><table width="80%" border="0" align="center" cellpadding="0" cellspacing="0"><tr><td>'+strNote+'</td></tr></table></div>'
	win.showCenter(true);
	document.photo = oImage;
	
}

function OpenHiroshimaC(){
	// 広島市テンプレートの読み込み
	tplHtml = GetHeaderPref(0);
	
	// ポップアップ表示
	win = new Window("city", {className: "alphacube", title: "広島市", width:640, height:600, destroyOnClose: true, minimizable:false, maximizable:false, recenterAuto:false, draggable:false});
	win.getContent().innerHTML=tplHtml;
	win.showCenter(true);
	
}





	
