/*
monstar-lab.com
*/

function findById(parents) {
	var results = [];
	objLI = document.getElementsByTagName('LI');
	objRegex = new RegExp(parents);
	for(i=0; i < objLI.length; i++){
		if(objLI[i].id.match(objRegex)){
			results.push(objLI[i]);
		}
	}
	return results;
}

/*------------CUSTOM START------------------
 * 基本コピーで、変更が必要なところだけ書き換え
 */
//□カテゴリ・ナビゲーション
var KsGMapCategoryNavi = new function(){
	this.id			= "";
	this.html		= "";
	this.group		= {};
	// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
	this.template		= {};
	this.template.outer	= "<ul id=\"ksgmsp--categoryNavi-select\">%html%</ul>";
	this.template.group	= "";
	this.template.inner	= "<li id=\"ksgmsp--categoryNavi-listItem-%html_id%\" class=\"%selected%\" onmouseover=\"onMouseOn(this)\" onmouseout=\"onMouseOut(this)\"><a href=\"javascript:KsGMapCategoryNavi.click('%category_id%');\" >%name%</a></li>";

	this.innerUndefined		= "<option id=\"ksgmsp--categoryNavi-listItem--undefined\" value=\"-\" selected>%ksgmap_category_name%を選択して下さい。</option>";
	this.innerSearchUnmatch	= "<option id=\"ksgmsp--categoryNavi-listItem--undefined\" value=\"%category_id%\" selected>%ksgmap_category_name%を選択して下さい。</option>";
	// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
	this.init	= KsGMapCategoryNavi_init;
	this.add	= KsGMapCategoryNavi_add;
	this.change	= KsGMapCategoryNavi_change;
	this.make	= KsGMapCategoryNavi_make;
	this.clear	= KsGMapCategoryNavi_clear;
	this.create	= KsGMapCategoryNavi_create;
	this.click	= KsGMapCategoryNavi_click;
}

//□カテゴリ・ナビゲーション - クリック
function KsGMapCategoryNavi_click( value ){
	if( value == "_geocodingSearch" ){ KsGMapSearch.geocoding();  return; }
	if( ksgmap_focus_category == value ){ return ; }	//同じだと最初のクリック（onchangeにしていないのは、IEでマウスホイールのバグがある為）
	ksgmap_category[ value ].change();
	// スタイルの更新
	lis = findById("ksgmsp--categoryNavi-listItem-[^-]+");
	for(i=0; i<lis.length; i++) {
		if(lis[i].id == "ksgmsp--categoryNavi-listItem-" + value) {
			lis[i].className = "selected";
			lis[i].style.backgroundImage = 'url(../images/gourmet_cursor_1.gif)';
		} else {
			lis[i].className = "noselected";
			lis[i].style.backgroundImage = 'none';
		}
	}
	
}

//□カテゴリ・ナビゲーション - 追加
function KsGMapCategoryNavi_add( category_id ){
	if( !this.id || category_id == "clear" ){ return ; }
	if( category_id == "_all" && ksgmap_category_all == 0 && ksgmap_focus_category != "_all" ){ return ;}
	if( category_id == "_map" && ksgmap_category_map == 0 && ksgmap_focus_category != "_map" ){ return ;}

	var replace_list = {};
	replace_list[ "category_id" ] = category_id;
	replace_list[ "name" ] = ( category_id != "_geocodingSearch" ? ksgmap_category[ category_id ].name : "住所検索結果" ); 
	replace_list[ "selected" ] = ( category_id == ksgmap_focus_category ? "selected" : "" ); 
	replace_list[ "html_id" ] = category_id.replace( /^_/ , "-" );

	var html = KsGMapCommon.String.convTemplate( this.template.inner , replace_list );
	if( ksgmap_category[ category_id ] && ksgmap_category[ category_id ].group ){
		if( !this.group[ ksgmap_category[ category_id ].group ] ){ this.group[ ksgmap_category[ category_id ].group ] = ""; }
		this.group[ ksgmap_category[ category_id ].group ] += html;
	} else {
		this.html += html;
	}
}
/*----------EUSTOM END----------------------*/

ksgmap_import_file					= "gourmet_map.xml";		//インポートするXMLファイル
ksgmap_import_path					= "../gourmet/xml/";					//インポートするXMLファイルのパス

ksgmap_default_category				= "southern_east";			//初期カテゴリ：指定が存在するのにしないと、地図が表示されない
ksgmap_default_zoom					= 17;						//初期尺度（0が広域）

ksgmap_item_name					= "食事処";					//アイテムの名称
ksgmap_category_name				= "地域";					//カテゴリの名称

ksgmap_category_all_label			= "すべて表示<br/>（若干時間がかかります） ";	// 一行でおさめたほうが美しい

ksgmap_html_categoryNavi			= "categoryNavi";			//カテゴリ ナビナビゲーション HTMLのID
ksgmap_html_itemNavi				= "itemNavi";				//アイテム ナビゲーション HTMLのID

//ksgmap_itemNavi_thirdRow			= "genreLabel %s";			//★アイテムナビの3列目の値★	

KsGMapDataNarrowCondition( "genre_ramen", 	" %genre% != 'ramen' " );	//genre が 'restaurant' 以外（以下同様）
KsGMapDataNarrowCondition( "genre_chinese", " %genre% != 'chinese'" );
KsGMapDataNarrowCondition( "genre_western", " %genre% != 'western'" );
KsGMapDataNarrowCondition( "genre_japanese"," %genre% != 'japanese'" );
KsGMapDataNarrowCondition( "genre_tesyoku", " %genre% != 'tesyoku'" );
KsGMapDataNarrowCondition( "genre_pasta", " %genre% != 'pasta'" );
KsGMapDataNarrowCondition( "genre_pan", " %genre% != 'pan'" );
KsGMapDataNarrowCondition( "genre_else", " %genre% != 'else'" );

//写真の格納場所
var imagePath = "../gourmet/image/";

var onMouseOn = function(obj) {
	obj.style.backgroundImage = 'url(../images/gourmet_cursor.gif)';
}
var onMouseOut = function(obj) {
	var objRegex = new RegExp(".*-([^-]*)");
	var value = obj.id.match(objRegex);
	if(value && value[1] && ksgmap_focus_category == value[1]) {
		obj.style.backgroundImage = 'url(../images/gourmet_cursor_1.gif)';
	} else {
		obj.style.backgroundImage = 'none';
	}
}

// =====HTML生成のための関数=====
function rank2Label(rank_id) {
	var rank = "";
	if(rank_id) {
		rank = rank_id
		if(rank_id == 'rank0') { rank = "☆☆☆☆☆"; }
		if(rank_id == 'rank1') { rank = "★☆☆☆☆"; }
		if(rank_id == 'rank2') { rank = "★★☆☆☆"; }
		if(rank_id == 'rank3') { rank = "★★★☆☆"; }
		if(rank_id == 'rank4') { rank = "★★★★☆"; }
		if(rank_id == 'rank5') { rank = "★★★★★"; }
	}
	return rank;
}

function createImageUrl(picture) {
	return imagePath + picture;
}

function createImageTag(imageUrl, width, height) {
	var html = '<img src="' + imageUrl + '"'; 
	if(width) {
		html += ' width="' + width + '"';
	}
	if(height) {
		html += ' height="' + height + '"';
	}
	html += '/>';
	return html;
}

function createDivBoxCenter(html) {
	return '<div style="text-align: center;">' + html + '</div>';
}

function createMenuBox(data) {
	var menu_name = new Array();
	var menu_pict = new Array();
	var menu_rect = new Array();
	var label = "", pict = "";
	var index;
	var html = "";
	
	for(index=1; index <= 3; index++) {
		label = "menu_name_" + index;
		pict = "menu_" + index;
		rect = "menu_" + index + "_rect"
		if(data[label] && data[label] != "") {
			menu_name.push(data[label]);
			if(data[pict]) {
				menu_pict.push(data[pict]);
				menu_rect.push(data[rect]);
			}
		} else {
			break;
		}
	}
	
	html = '<table>';
	if(data["menu_desc"] && data["menu_desc"] != "") {
		html += '<tr><td colspan="2">' + unescape(data["menu_desc"]) + '</td></tr>';
	}
	if(menu_name.length > 0) {
		for(index=0; index<menu_name.length; index++) {
			html += '<tr><td>' + unescape(menu_name[index]) + "</td><td class=\"imageBox\">";
			if(menu_pict[index] != "") {
				if(menu_rect[index] == '1') {
					html += createImageTag(createImageUrl(menu_pict[index]),80,108);
				} else {
					html += createImageTag(createImageUrl(menu_pict[index]),108,80);
				}
			}
			html += "</td></tr>";
		}
	}
	html += "</table>";
	
	return html;
}

function unescape(line) {
	var str = new String(line);
	str = str.replace(/\\n/g, "<br/>");
	str = str.replace(/&gt;/g, ">");
	str = str.replace(/&lt;/g, "<");
	return str;
}

// Override:詳細ポップアップＨＴＭＬの生成器
function user_KsGMapItem_makeHTML( data ){
	var tdata = new Array();
	var html = "";
	
	tdata["name"] = data["name"];
	tdata["rank"] = rank2Label(data["rank"]);
	tdata["subtitle"] = unescape(data["subtitle"]);
	if(data["picture"] && data["picture"] != "") {
		if(data["picture_rect"] == "1") {
			tdata["picture"] = createImageTag(createImageUrl(data["picture"]), 160,216);
		} else {
			tdata["picture"] = createImageTag(createImageUrl(data["picture"]), 216,160);
		}
	} else {
		tdata["picture"] = "";
	}
	if(data["address"] && data["address"] != "") {
		tdata["address"] = "<div class=\"alignRight\">" + unescape(data["address"]) + "</div>";
	} else {
		tdata["address"] = "";
	}
	if(data["comment"]) {
		tdata["comment"] = unescape(data["comment"]);
	} else {
		tdata["comment"] = "";
	}
	tdata["menu"] = createMenuBox(data);
	
	html = KsGMapCommon.Data.convTemplate( tdata );
	
	return html;
}

