/**
 * 店舗検索
 *
 * @description	検索URLを作成し、店舗検索を実行します。
 * @param grp, sType(検索種別)
 * @return 検索用URL(リダイレクト)
 */
function searchShop(grp, sType) {
	var url = ""; // 検索用URL

	if (sType == 'kw') {
		// キーワード店舗検索用URL
		url += "/map/uc/PoiAttr?grp=" + grp + "&vo=mbml&srt=disp_order&pm=500";

		var kw = document.getElementsByName("q")[0].value;

		if ((kw != "キーワードで検索") && (kw != "")) {
			// URIエンコード(UTF8)を行い、URLに追加
			url += "&q=" + encodeURI(kw);
		}
	} else {
		var eki = document.getElementsByName("eki")[0].value;			// 駅名(検索表示用)
		var poi_name = document.getElementsByName("eki")[0].value;		// 駅名(検索用)
		var rosen = document.getElementsByName("rosen")[0].value;		// 路線名(検索表示用)
		var genre1_name = document.getElementsByName("rosen")[0].value;	// 路線名(検索用)

		// 駅・路線のテキストボックスでエンターキーを押した際の初期化(この処理いらないかも？)
		if (eki == "") {eki = "駅名を入力";}
		if (rosen == "") {rosen = "路線名を入力";}

		// 店舗検索、および駅名・路線名検索のベースとなるURLを振り分ける
		if ((eki != "駅名を入力") || (rosen != "路線名を入力"))  {
			// 駅名・路線名検索用URL	
			url += "/map/uc/PoiAttr?grp=" + grp + "&vo=mbml&sgrp=st01&srt=genre1_code,genre_relate_order&ndist=1500&pm=500&fla_style=0&ngrp=" + grp;
		} else {
			// 店舗検索用URL
			url += "/map/uc/PoiAttr?grp=" + grp + "&vo=mbml&srt=disp_order&pm=500";
			// 店舗スタイル・お取り扱いアイテムにチェックが無い場合はフラッシュを表示しないのでURLにfla_style=0を付与
			var leftSearchCheckStatus = "false";
			for (var i = 0; i < document.getElementsByName("chk").length; i++) {
				if (document.getElementsByName("chk")[i].checked) {
					leftSearchCheckStatus = "true";
					break;
				}
			}
			if (leftSearchCheckStatus == "false") {
				if (document.forms[1].exp8.value != "都道府県を選択") {
					url += "&fla_style=0";
				}
			}
		}
	
		// selectボックスで都道府県を指定した場合はURLに追加
		var kenCode = document.forms[1].exp8.value;
		if (kenCode != "都道府県を選択") {
			url += "&kencode=" + kenCode;
		}

		// selectボックスで市区町村を指定した場合はURLに追加
		var cityCode = document.forms[1].exp9.value;
		if (cityCode != "none") {
			url += "&citycode=" + cityCode;
			url += "&cityname=" + encodeURI(document.getElementById('exp9').firstChild.innerHTML);
		}

		// 駅名検索を入力した場合はURLに追加
		if ((eki != "駅名を入力") && (eki != "")) {
			// 前方後方一致検索するため、検索キーワード前後に % を付与
			eki = "%" + eki + "%";
			if (poi_name.match(/駅$/)) {
				poi_name = "%" + poi_name.replace(/駅$/, '') + "%";
			} else {
				poi_name = "%" + poi_name + "%";
			}
			// URIエンコード(UTF8)を行い、URLに追加
			url += "&eki=" + encodeURI(eki) + "&poi_name=" + encodeURI(poi_name);
		}

		// 路線検索を入力した場合はURLに追加
		if ((rosen != "路線名を入力") && (rosen != "")) {
			// 前方後方一致検索するため、検索キーワード前後に % を付与
			rosen = "%" + rosen + "%";
			genre1_name = "%" + genre1_name + "%";
			// URIエンコード(UTF8)を行い、URLに追加
			url += "&rosen=" + encodeURI(rosen) + "&genre1_name=" + encodeURI(genre1_name);
		}

		// 店舗スタイルをチェックした場合はURLに追加
		var storeDiv = ""
		var storeCheckCnt = 0;
		for (var i = 0; i < 10; i++) {
			if (document.getElementsByName("chk")[i].checked) {
				storeCheckCnt++;
				// パラメータstore_divの値を作成
				if (storeCheckCnt > 1) {
					// store_divのチェックが複数ある場合は値を スペース で連結する(例 item_code=%D001% %D002% %D003%)
					storeDiv += " " + document.getElementsByName("chk")[i].value;
				} else {
					// 1件の場合はそのまま値を格納
					storeDiv += document.getElementsByName("chk")[i].value;
				}
			}
		}
		// URLに追加
		if (storeCheckCnt > 0) {
			url += "&store_div=" + encodeURI(storeDiv);
		}
	
		// お取り扱いアイテムをチェックした場合はURLに追加
		var item = ""
		var itemCheckCnt = 0;
		for (var i = 9; i < document.getElementsByName("chk").length; i++) {
			if (document.getElementsByName("chk")[i].checked) {
				itemCheckCnt++;
				// パラメータitemの値を作成
				if (itemCheckCnt > 1) {
					// itemのチェックが複数ある場合は値を スペース で連結する(例 item=%I001% %I002% %I003%)
					item += " " + document.getElementsByName("chk")[i].value;
				} else {
					// 1件の場合はそのまま値を格納
					item += document.getElementsByName("chk")[i].value;
				}
			}
		}
		// URLに追加
		if (itemCheckCnt > 0) {
			url += "&item=" + encodeURI(item);
		}
	}

	// 検索の実行(設定したURLへ遷移)
//	alert('url=' + url);
	location.href = url;
};

/**
 * 市区町村リストのセット
 *
 * @description	市区町村リストを作成するmakeCityListを呼び出して、市区町村リストをセットする。
 * @param
 * @return
 */
function setCityList(){
	// 県コードをセット
	var kencode = "";
	if (document.forms[1].exp8.value != "都道府県を検索") {
		kencode = document.forms[1].exp8.value;
	}
	// PoiCountで市区町村を取得するためのURL作成(makeCityListで市区町村リストを動的に作成)
	var poiCount = "/map/uc/PoiCount?grp=muji&vo=mbml&json=1&callback=makeCityList&grpby=city&kencode=" + kencode;

	if (this.jsopTag){
		if(this.jsopTag.timerID){
			this.jsopTag.clearTimeoutFunc();
		}
		clearTimeout(this.timerID);
		this.jsopTag.removeScriptTag();
	}
	// JSON取得
	this.jsopTag = new JSONscriptRequest(poiCount,"utf-8");
	this.jsopTag.buildScriptTag();
	this.jsopTag.addScriptTag();
};

/**
 * 市区町村リストの作成(selectタブ内)
 *
 * @description	県コードから市区町村リストを動的に作成する。
 * @param
 * @return
 */
function makeCityList(obj){
	var cityopt_span = document.getElementById("city_span");
	var str = "";	// 市区町村selectタグのHTML文字列
	var cityId = "";
	var cityName = "";
	var selectedCityName = "";

	// 市区町村リストを初期化
	// exp9のdivを削除(jquery対応)
	cityopt_span.removeChild(document.getElementById("exp9"));

	// 市区町村リストの1番目に 市区町村を選択 を追加
	str = '<select class="select20_city" name="exp9" width="245" rows="6">';
	str += '<option value="none">市区町村を選択</option>';

	// 市区町村リストの作成
	if (obj.mbml.CountList.Count != undefined) {
		if (obj.mbml.CountList.Count instanceof Array) {
			// 市区町村が複数ある場合(配列)はループさせて市区町村リストを作成
			for (var i= 0; i < obj.mbml.CountList.Count.length; i++) {
				cityId = obj.mbml.CountList.Count[i].count_id;
				cityName = obj.mbml.CountList.Count[i].count_name;
				if (cityId == CITY_CODE) {
					str += '<option selected value="' + cityId + '">' + cityName + '</option>';
					selectedCityName = cityName;
				} else {
					str += '<option value="' + cityId + '">' + cityName + '</option>';

				}
			}
		} else {
			//市区町村が1件の場合(非配列) は1件のみ市区町村リストを作成
			cityId = obj.mbml.CountList.Count.count_id;
			cityName = obj.mbml.CountList.Count.count_name;
			if (cityId == CITY_CODE) {
				str += '<option selected value="' + cityId + '">' + cityName + '</option>';
				selectedCityName = cityName;
			} else {
				str += '<option value="' + cityId + '">' + cityName + '</option>';
			}

		}
	}

	// 市区町村リストの表示
	str += '</select>';
	cityopt_span.innerHTML = str;

	// Jcombox表示用のjqueryを再ロード
	loadCityJcombox();
};

/**
 * Flashに送るshowcodeを取得する
 *
 * @description	検索パラメータから店舗スタイル・お取り扱いアイテムでチェックされたものをshowcodeとして作成する。
 * @param
 * @return showCode
 */
function getShowCode() {
	var showCode = "";
	var store_div = "";
	var item = "";
	
	// 検索パラメータから店舗スタイル・お取り扱いアイテムを取得
	var urlParam = location.search.substring(1).split("&");
	for (var i = 0; i < urlParam.length; i++) {
		var param = urlParam[i].split("=");
		if (param[0] == "store_div") {
			store_div = decodeURI(param[1]);
		} else if (param[0] == "item") {
			item = decodeURI(param[1]);
		}
	}
	// showcodeに値をセット
	if (store_div != "") {
		// 
		showCode = store_div.split(" ");
		showCode = showCode[0].replace(/%/g, '');
	} else if (item != "") {
		showCode = item.split(" ");
		showCode = showCode[0].replace(/%/g, '');

	} else {
		// デフォルト値
		showCode = "";
	}

	return showCode;
};

