/*　エンコード＝UTF-8で保存すること　*/
	
	//----------------------------------------------------------------------------------------------
	//　定数・変数
	//----------------------------------------------------------------------------------------------
	/*　コントローラ　*/
	var CONTROLLER	= "../php/controller/ShopGuideController.php";
	var DATA		= "data";	// XMLタグ
	var ROW			= "row";	// XMLタグ
	
	// 画像ファイルパス
	var URL_IMG_FUNC  = "images/";				// 店舗検索機能用画像
	var URL_IMG_SHOP  = "images/shop/";			// 店舗画像
	var URL_IMG_GUIDE = "images/guidance/";		// 店舗ごあんない情報画像
	var URL_IMG_PRDCT = "../product/images/t2_product_image/";	// 製品画像
	
	// 店舗アイコン画像ファイル名
	var ICO_SHOWROOM_S	= "icon_G.gif";
	var ICO_SHOWROOM_L	= "point_G.gif";
	var ICO_IF			= "point_ifl.gif";
	var ICO_SHOP		= "point_shop.gif";
	
	/*　店舗選択時のズーム率　*/
	var SHOP_ZOOM			= 16;
	var SHOP_ZOOM_PULUS_Y	= 0.0006;	// 吹き出し分の緯度をずらしておく
	var SHOP_ZOOM_PULUS_X	= 0.002;	// 吹き出し分の経度をずらしておく
	
	/*　地域検索パラメータ　*/
	var areaPalams = new Array(	
						//地域コード	地域名			緯度、	経度、	尺度
						 new Array(0,	"全国",			38.5,	140.5,	5)
						,new Array(1,	"北海道",		42.5,	145.0,	6)
						,new Array(2,	"東北",			38.5,	142.0,	6)
						,new Array(3,	"関東",			36.0,	140.5,	7)
						,new Array(4,	"信越・北陸",	37.0,	137.5,	7)
						,new Array(5,	"東海",			35.5,	138.3,	7)
						,new Array(6,	"近畿",			35.0,	136.0,	7)
						,new Array(7,	"中国",			35.0,	133.5,	7)
						,new Array(8,	"四国",			33.5,	134.5,	7)
						,new Array(9,	"九州",			32.5,	131.5,	7)
						,new Array(10,	"沖縄",			27.0,	129.0,	7)
	);
	
	/*　種別検索パラメータ　*/
	var kindPalams = new Array(	
						//種別コード	種別名
						 new Array(0,	"全て")
						,new Array(1,	"ショールーム")
						//,new Array(2,	"if（直営店舗）")
						,new Array(3,	"取り扱い店舗")
	);
	
	/*　検索条件　*/
	var searchAreaCd		= 0;	// 地域コード
	var searchAreaNm		= "";	// 地域名
	var searchPointY		= 0;	// 地域緯度
	var searchPointX		= 0;	// 地域経度
	var searchZoom			= 0;	// 地域ズーム
	var searchKindCd		= 0;	// 種別コード
	var searchKindNm		= "";	// 象種別名
	var searchKeyWd			= "";	// キーワード
	
	/*　検索店舗データ　*/
	var shopDataList		= null;	// データリスト
	var shopDataIconList	= null;	// アイコンリスト
	var shopDataMarkerList	= null;	// マーカーリスト
	
	/*　選択店舗　*/
	var selectData  = null;	// データ
	var selectMaker = null;	// マーカー
	
	/*　Google　*/
	var map = null;
	var geocoder = null;
	
	//----------------------------------------------------------------------------------------------
	//　共通関数
	//----------------------------------------------------------------------------------------------
	/*　画像取得(店舗画像)　*/
	function img_shop(img_file){
		return URL_IMG_SHOP + img_file;
	}
	
	/*　画像取得(店舗ごあんない情報画像)　*/
	function img_guide(img_file){
		return URL_IMG_GUIDE + img_file;
	}
	
	/*　画像取得(製品画像)　*/
	function img_prdct(img_file){
		return URL_IMG_PRDCT + img_file;
	}
	
	/*　アイコン画像取得　*/
	function ico(kind,small){
		
		// ショールーム
		if(kind==1){
			if(small==true){return URL_IMG_FUNC + ICO_SHOWROOM_S;}
			else{return URL_IMG_FUNC + ICO_SHOWROOM_L;}
		}
		// if
		if(kind==2)return URL_IMG_FUNC + ICO_IF;
		// 取扱点
		if(kind==3)return URL_IMG_FUNC + ICO_SHOP;
	}
	
	/*　地域ボタン色設定　*/
	function setAreaButtonImg(area,on){
		var classNm = "";
		if(on)classNm = "select";
		$("btnArea" + area).className = classNm;
	}
	
	/*　種別ボタン色設定　*/
	function setKindButtonImg(kind,on){
		var className = "";
		if(on)className = "select";
		$("btnKind" + kind).className = className;
	}
	
	/*　選択ボタン色ON　*/
	function setButtonColorOn() {
		setAreaButtonImg(searchAreaCd,true);
		setKindButtonImg(searchKindCd,true);
	}
	
	/*　選択ボタン色OFF　*/
	function setButtonColorOff() {
		setAreaButtonImg(searchAreaCd,false);
		setKindButtonImg(searchKindCd,false);
	}
	
	/*　文字列トリム　*/
	function trim(str) {
		return str.replace(/^[ 　]+/,"").replace(/[ 　]+$/,"");
	}
	
	/*　エラー表示　*/
	function showErrMsg(){
		alert("err");
	}
	
	/*　店舗選択データ取得　*/
	function sel(tag){
		return (selectData.getAttribute(tag));
	}
	
	/*　画像ズームウインドウ表示　*/
	function showZoomWindow(img_file) {
		window.open(img_file,"");
	}
	
	/*　GETパラメータ取得　*/
	function getGETPalams(){
		var palamsList = {};
		if (location.search) {
			var palamsStr = location.search.substr(1).split("&");
			for (var i=0; i<palamsStr.length; i++) {
				var palam = palamsStr[i].split("=");
				palamsList[palam[0]] = palam[1];
			}
		}
		return palamsList;
	}
	
	//----------------------------------------------------------------------------------------------
	//　初期処理
	//----------------------------------------------------------------------------------------------
	/*　初期処理　*/
	function initialize() {
		location.href = "#";
		
		// メニューボタン表示
		showMenu();
		
		// Googleマップ表示
		showGoogleMap();
		
		// 画面の初期化
		setDefault();
		
		// Googleマップ表示後にUI表示
		$("menuArea").style.display = "block";
		$("searchReult").style.display = "block";
		
		// 検索
		search();
	}
	
	/*　Googleマップ表示　*/
	function showGoogleMap() {
		if (GBrowserIsCompatible()) {
			map = new GMap2($("map"));
			geocoder = new GClientGeocoder();
			// 尺度変更コントローラ
			map.addControl(new GLargeMapControl(), new GControlPosition(G_ANCHOR_BOTTOM_LEFT));
			// 尺度表示
			map.addControl(new GScaleControl());
			// 地図写真切替ボタン
			map.addControl(new GMapTypeControl(), new GControlPosition(G_ANCHOR_BOTTOM_RIGHT));
		}
	}
	
	/*　画面の初期化　*/
	function setDefault() {
		setArea(0);
		setKind(0);
		setKywd("");
		map.setCenter(new GLatLng(searchPointY,searchPointX), searchZoom);
	}
	
	/*　メニュー文字列表示　*/
	function showMenu() {
		// 地域
		var label = "<ul>";
		areaPalams.each( function(palam){
			label += "<li><a id='btnArea"+palam[0]
				  + "' href='javascript:searchByArea("+palam[0]+")'>・"+palam[1]+"</a></li>";
		});
		label += "</ul>";
		$("btnArea").innerHTML = label;
		
		// 種別
		var label = "<ul>";
		kindPalams.each( function(palam){
			label += "<li><a id='btnKind"+palam[0]
				  +"' href='javascript:searchByKind("+palam[0]+")'>・"+palam[1]+"</a></li>";
		});
		label += "</ul>";
		$("btnKind").innerHTML = label;
	}
	
	//----------------------------------------------------------------------------------------------
	//　店舗検索
	//----------------------------------------------------------------------------------------------
	/*　エリア検索　*/
	function searchByArea(areacd) {
		setButtonColorOff();
		setArea(areacd);
		search();
	}
	
	/*　種別検索　*/
	function searchByKind(kindcd) {
		setButtonColorOff();
		setKind(kindcd);
		search();
	}
	
	/*　検索対象地域を設定　*/
	function setArea(areacd) {
		searchAreaCd = areacd;
		areaPalams.each( function(palam){
			if(palam[0]==areacd){
				searchAreaNm = palam[1];
				searchPointY = palam[2];
				searchPointX = palam[3];
				searchZoom   = palam[4];
			}
		});
	}
	
	/*　検索対象種別を設定　*/
	function setKind(kindcd) {
		searchKindCd = kindcd;
		kindPalams.each( function(palam){
			if(palam[0]==kindcd){
				searchKindNm = palam[1];
			}
		});
	}
	
	/*　検索対象キーワードを設定　*/
	function setKywd(keyword) {
		searchKeyWd = trim(keyword);
		$("txtKeyword").value = searchKeyWd;
	}
	
	/*　キーワード入力（エンター押下にて検索）　*/
	function inputKeyWord(){
		if(event.keyCode == Event.KEY_RETURN)search();
	}
	
	/*　検索　*/
	function search() {
		
		clearSearch();					// 前回検索情報消去
		setKywd($F("txtKeyword"));		// キーワード格納
		setButtonColorOn();				// 選択ボタン色変更
		
		// 検索条件表示
		showSearchCondition(searchAreaNm,searchKindNm,searchKeyWd);
		
		// 検索実行
		var palams = 'event_id=search&area='+searchAreaCd+'&kind='+searchKindCd+'&kywd='+searchKeyWd;
		new Ajax.Request(CONTROLLER,
		{
			method: "post",
			onSuccess: showResult,
			onFailure: showErrMsg,
			parameters: palams
		});
	}
	
	/*　検索条件表示　*/
	function showSearchCondition(areanm,kindnm,keyword) {
		$("condition_Area").innerHTML = areanm;
		$("condition_Kind").innerHTML = kindnm;
		$("condition_Kywd").innerHTML = keyword;
	}
	
	//----------------------------------------------------------------------------------------------
	//　検索結果表示
	//----------------------------------------------------------------------------------------------
	/*　検索結果表示　*/
	function showResult(httpObj) {
		
		// 検索対象地域へズーム
		map.setCenter(new GLatLng(searchPointY,searchPointX), searchZoom);
		
		shopDataList = httpObj.responseXML.getElementsByTagName(DATA)[0].getElementsByTagName(ROW);
		shopDataIconList = new Array(shopDataList.length);
		shopDataMarkerList = new Array(shopDataList.length);
		
		// 検索結果一覧表示
		var label = "";
		if( shopDataList.length > 0 ){
			label += "<a name='result'><ul>";
			for(i=0;i<shopDataList.length;i++){
				label += "<li><img src='" + ico(shopDataList[i].getAttribute("kind_code"),true) + "' height=12 width=12>";
				label += "<a href='javascript:selectShop(" + i + ");'>" ;
				label += shopDataList[i].getAttribute("shop_name") + "</a></li>";
				// マーカー配置
				setMaker(i);
			}
			label += "</ul>";
		}else{
			label += "<br>　　該当店舗なし";
		}
		$("resultList").innerHTML = label;
		$("resultList").scrollTop = 0;
		
	}
	
	/*　マーカー配置　*/
	function setMaker(i){
		shopDataIconList[i] = getIcon(shopDataList[i].getAttribute("kind_code"));
		var point = new GPoint(shopDataList[i].getAttribute("point_x")
							 , shopDataList[i].getAttribute("point_y"));
		shopDataMarkerList[i] = new GMarker(point, shopDataIconList[i]);
		map.addOverlay(shopDataMarkerList[i]);
		GEvent.addListener(shopDataMarkerList[i], "click", function() {
			selectShop(i);
		});
	}
	
	/*　マーカー用アイコン　*/
	function getIcon(kind_code) {
		var zoomIcon = new GIcon();
		zoomIcon.image = ico(kind_code);
		zoomIcon.iconSize = new GSize(25, 25);
		zoomIcon.shadowSize = new GSize(37, 34);
		zoomIcon.iconAnchor = new GPoint(9, 34);
		zoomIcon.infoWindowAnchor = new GPoint(9, 2);
		zoomIcon.infoShadowAnchor = new GPoint(18, 25);
		return zoomIcon;
	}
	
	//----------------------------------------------------------------------------------------------
	//　店舗選択
	//----------------------------------------------------------------------------------------------
	/*　店舗選択　*/
	function selectShop(i) {
		
		// 前回選択店舗情報クリア
		clearSelect();
		
		// 選択店舗情報取得
		getSelectShopData(shopDataList[i].getAttribute("shop_id"));
	}
	
	/*　選択店舗情報取得　*/
	function getSelectShopData(shopid){
		
		var palams = "event_id=select&shopid="+shopid;
		new Ajax.Request(CONTROLLER,
		{
			method: "post",
			onSuccess: showSelectShopData,
			onFailure: showErrMsg,
			parameters: palams
		});
	}
	
	/*　選択店舗情報表示　*/
	function showSelectShopData(httpObj){
		
		// データ取得
		selectData = httpObj.responseXML.getElementsByTagName(DATA)[0].getElementsByTagName(ROW)[0];
		
		// 店舗へズーム
		var point_y = parseFloat(sel("point_y")) + SHOP_ZOOM_PULUS_Y;	// 吹き出し分の緯度をずらしておく
		var point_x = parseFloat(sel("point_x")) + SHOP_ZOOM_PULUS_X;	// 吹き出し分の経度をずらしておく
		map.setCenter(new GLatLng(point_y,point_x), SHOP_ZOOM);	
		
		// 選択店舗用マーカー配置
		setZoomMaker();
		
		// 吹き出し情報作成
		selectMaker.openInfoWindowHtml(createLabel());
		GEvent.addListener(selectMaker, "click", function() {
			selectMaker.openInfoWindowHtml(createLabel());
		});
		
		// 店舗情報表示
		showShopInfo();
	}
	
	/*　選択店舗用マーカー配置　*/
	function setZoomMaker() {
		var point = new GPoint(sel("point_x"), sel("point_y"));
		var zoomIcon = getIcon(sel("kind_code"));
		selectMaker = new GMarker(point, zoomIcon);
		map.addOverlay(selectMaker);
	}
	
	/*　吹き出し用店舗情報作成　*/
	function createLabel() {
		
		var label = "<table><tr><td>";
		label += "<a href='javascript:showShopDetail();'>";
		label += "<img src='" + ico(sel("kind_code")) + "' height='25'>";
		label += "<b><font size=4 color='green'> " + sel("shop_name") + "</font></b>";
		label += "</a>";
		label += "<br><font size=2>" + sel("address1") ;
		if( sel("address2")!="" ){
			label += "<br>" + sel("address2");
		}
		label += "<br>Tel " 		+ sel("tel") + "　Fax " + sel("fax");
		label += "<br>営業時間：" + sel("business_hours");
		label += "<br>定休日：" + sel("holiday");
		label += "</td><td><a href='javascript:showShopDetail();'>";
		//label += "<img src='" + img_shop(sel("image_file")) + "' height='100' width='100'></a>";
		label += "</td></tr></table><br>";
		
		return label;
	}
	
	/*　店舗からのお知らせ(最新情報)表示　*/
	function showShopInfo() {
		var label = "<ul><li>";
		label += "<img src='"+ico(sel("kind_code"),true)+"' width='12' height='12' alt=''>";
		label += "<a href='javascript:showShopDetail();'>"+sel("shop_name")+"</a>";
		label += "</li></ul>";
		label += "<p>"+sel("news")+"</p>";
		label += "<div class='tCenter'>";
		label += "<a href='javascript:showShopDetail();'>";
		label += "<img src='"+img_shop(sel("image_file"))+"' width='100' height='60' alt='"+sel("shop_name")+"'></div><br>";
		label += "</a>";
		$("shopNews").innerHTML = label;
		$("shopNews").style.visibility = "visible";
		$("shopNews").scrollTop = 0;
	}
	
	//----------------------------------------------------------------------------------------------
	//　店舗詳細画面
	//----------------------------------------------------------------------------------------------
	/*　店舗詳細画面_表示　*/
	function showShopDetail() {
		
		location.href = "#";
		
		// 親画面を非表示
		$("title").style.display = "none";
		$("contents").style.display = "none";
		
		// 店舗基本情報表示
		showShopDetail_Basic();
		
		// 店舗ごあんない情報取得
		var palams1 = 'event_id=guidance&shop_id=' + sel("shop_id") ;
		new Ajax.Request(CONTROLLER,
		{
			method: "post",
			onSuccess: showGuidance,
			onFailure: showErrMsg,
			parameters: palams1
		});
		
		// 店舗おすすめ製品情報取得
		var palams2 = 'event_id=recommend&shop_id=' + sel("shop_id") ;
		new Ajax.Request(CONTROLLER,
		{
			method: "post",
			onSuccess: showRecommend,
			onFailure: showErrMsg,
			parameters: palams2
		});
	}
	
	/*　店舗詳細画面_店舗基本情報表示　*/
	function showShopDetail_Basic() {
		
		$("detail_Name").innerHTML = sel("shop_name") ;
		$("detail_Icon").src = ico(sel("kind_code"));
		$("detail_title").style.display = "block";
		
		$("detail_Image").innerHTML = ""
			+ "<a href='javascript:showZoomWindow(\"" + img_shop(sel("image_file")) + "\")'>"
			+ "<img width='200' height='152' src='" + img_shop(sel("image_file")) + "' alt='"+sel("shop_name")+"'>"
			+ "</a>";
		
		$("detail_address").innerHTML = "〒" + sel("zipcode") + "<br>" + sel("address1");
		if( sel("address2")!="" ){
			$("detail_address").innerHTML += "<br>" + sel("address2");
		}
		
		$("detail_tel").innerHTML = sel("tel") ;
		$("detail_fax").innerHTML = sel("fax") ;
		$("detail_business_hours").innerHTML = sel("business_hours") ;
		$("detail_holiday").innerHTML = sel("holiday") ;
		$("detail_paking").innerHTML = sel("parking") ;
		$("detail_access").innerHTML = sel("access") ;
		$("detail_homepage").innerHTML = "<a href='" + sel("url") + "'>" + sel("url") + "</a>";
		
		$("detail_news_contents").innerHTML = sel("news") ;
	}
	
	/*　店舗詳細画面_ごあんない情報表示　*/
	function showGuidance(httpObj) {
		
		var guidanceList = httpObj.responseXML.getElementsByTagName(DATA)[0].getElementsByTagName(ROW);
		
		var label = "";
		if( guidanceList.length > 0 ){
			for(i=0;i<guidanceList.length;i++){
				if(guidanceList[i].getAttribute("guidance_title") != ""){
					label += "<h3>" + guidanceList[i].getAttribute("guidance_title") + "</h3>";
				}
				if(guidanceList[i].getAttribute("guidance_text") != ""){
					label += "<p>" + guidanceList[i].getAttribute("guidance_text") + "</p>";
				}
				label += "<div class='photo after w375'>";
				label += "<table width='500'><tr>"
				if(guidanceList[i].getAttribute("guidance_img1") != ""){
					
					label += "<td align='center'><a href='javascript:showZoomWindow(\"" + img_guide(guidanceList[i].getAttribute("guidance_img1")) + "\")'>";
					label += "<img src='" + img_guide(guidanceList[i].getAttribute("guidance_img1")) + "' height='120' >";
					label += "</a></td>";
				}
				if(guidanceList[i].getAttribute("guidance_img2") != ""){
					label += "";
					label += "<td align='center'><a href='javascript:showZoomWindow(\"" + img_guide(guidanceList[i].getAttribute("guidance_img2")) + "\")'>";
					label += "<img src='" + img_guide(guidanceList[i].getAttribute("guidance_img2")) + "' height='120' >";
					label += "</a></td>";
					
				}
				label += "</tr></table>"
				label += "</div>";
			}
		}
		$("guidance_contents").innerHTML = label;
		
		$("detail").style.display = "block";
	}
	
	/*　店舗詳細画面_店舗おすすめ製品情報表示　*/
	function showRecommend(httpObj) {
		
		var recommendList = httpObj.responseXML.getElementsByTagName(DATA)[0].getElementsByTagName(ROW);
		var label = "";
		if( recommendList.length > 0 ){
			label += "<table><tr>";
			for(i=0;i<recommendList.length;i++){
				
				label += "<td width=100 align=center>";
				label += "<a href='../product/Product.php";
				label += "?product_id=" + recommendList[i].getAttribute("product_id");
				label += "' >";
				
				if(recommendList[i].getAttribute("t2_product_image_file_name") != ""){
					label += "<img src='" + img_prdct(recommendList[i].getAttribute("t2_product_image_file_name"));
					label += "' onclick='' target='_blank' height='50' ><br>";
				}
				if(recommendList[i].getAttribute("product_name_jp") != ""){
					label += recommendList[i].getAttribute("product_name_jp");
				}
				label += "</a></td>";
			}
			label += "</tr></table>";
		}
		$("recommend_contents").innerHTML = label;
	}
	
	//----------------------------------------------------------------------------------------------
	//　画面クリア
	//----------------------------------------------------------------------------------------------
	/*　店舗詳細情報クリア　*/
	function clearDetail() {
		if($("detail_title").style.display == "block"){
			location.href = "#";
			
			// 詳細画面非表示
			$("detail_title").style.display = "none";
			$("detail").style.display = "none";
			
			// 親画面表示
			$("title").style.display = "block";
			$("contents").style.display = "block";
		}
	}
	
	/*　店舗選択情報クリア　*/
	function clearSelect() {
		if(selectMaker!=null){
			clearDetail();	// 店舗詳細情報クリア
			$("shopNews").style.visibility = "hidden";
			map.removeOverlay(selectMaker);
			selectData = null;
		}
	}
	
	/*　前回検索情報クリア　*/
	function clearSearch() {
		
		clearSelect();	// 店舗選択情報クリア
		showSearchCondition("","","");	// 検索条件表示
		$("resultList").innerHTML = "";
		
		map.clearOverlays();
		map.closeInfoWindow();
	}
	
	/*　クリアボタン押下　*/
	function doClear() {
		clearSearch();
		setButtonColorOff();
		setDefault();
	}
	
	//----------------------------------------------------------------------------------------------
	//　印刷用マップウインドウ
	//----------------------------------------------------------------------------------------------
	/*　印刷用マップウインドウ_表示　*/
	function showMapWindow(){
		window.open("map.html?shopid="+sel("shop_id"),"");
	}
	
	/*　印刷用マップウインドウ_情報取得　*/
	function getMapData(){
		
		// 選択店舗情報取得
		var palamsList = getGETPalams();
		var shopid = palamsList.shopid;
		var palams = "event_id=select&shopid="+shopid;
		new Ajax.Request(CONTROLLER,
		{
			method: "post",
			onSuccess: showMapData,
			onFailure: showErrMsg,
			parameters: palams
		});
	}
	
	/*　印刷用マップウインドウ_情報表示　*/
	function showMapData(httpObj){
		
		shopDataList = httpObj.responseXML.getElementsByTagName(DATA)[0].getElementsByTagName(ROW);
		selectData = shopDataList[0];
		
		// 店舗基本情報表示
		showShopDetail_Basic();
		
		// Googleマップ表示
		showGoogleMap();
		
		// 店舗へズーム
		map.setCenter(new GLatLng(sel("point_y"),sel("point_x")), SHOP_ZOOM);
		
		// 選択店舗用マーカー配置
		setZoomMaker();
		
		$("detail").style.display = "block";
	}
	
