var map				= null;							// GoogleMapsオブジェクト
var cross_marker	= null;							// クロスマーカーオブジェクト

var event_list		= null;
var marker_list		= null;
var infowindow_list	= null;

var backup_event_id;
var backup_venue_id;

////////////////////////////////
// イベント画面
////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
// 画面を開いたと同時にコールされる関数
///////////////////////////////////////////////////////////////////////////////
function index_init()
{
	// デフォルトの緯度･経度オブジェクトを取得する
	var index_map_latObj		= document.getElementById("index_map_lat");
	var index_map_lngObj		= document.getElementById("index_map_lng");

	// GoogleMapsの領域の取得とオプション値の設定
	var mapdiv = document.getElementById('map_canvas');
	var myOptions = {
	    zoom: 15,
	    center: new google.maps.LatLng(index_map_latObj.value, index_map_lngObj.value),
	    mapTypeId: google.maps.MapTypeId.ROADMAP,
	    scaleControl: true
	};

	// GoogleMapsの呼び出し
	map = new google.maps.Map(mapdiv, myOptions);

	// カレンダー初期化
	// システム日付を取得し、その年月のカレンダー表示を指示する
	var now=new Date();
	view_calendar((now.getYear()<2000?now.getYear() + 1900:now.getYear()),now.getMonth() + 1);
	view_event_list();
}

///////////////////////////////////////////////////////////////////////////////
// カレンダーで次月アンカーがクリックされた時の動作
///////////////////////////////////////////////////////////////////////////////
function next_calendar()
{
	// 隠し持っている現在表示しているカレンダーの年月を取得する
	var index_calendar_year_hidObj		= document.getElementById("index_calendar_year_hid");
	var index_calendar_month_hidObj		= document.getElementById("index_calendar_month_hid");

	// 現在が12月の場合は次月は来年の1月となる制御
	if (index_calendar_month_hidObj.value == 12)
	{
		index_calendar_year_hidObj.value		= Number(index_calendar_year_hidObj.value) + 1;
		index_calendar_month_hidObj.value		= 1;
	}
	else
	{
		index_calendar_month_hidObj.value		= Number(index_calendar_month_hidObj.value) + 1;
	}

	// カレンダー表示処理呼び出し
	view_calendar(index_calendar_year_hidObj.value,index_calendar_month_hidObj.value);
	change_calendar_day_color();
}

///////////////////////////////////////////////////////////////////////////////
// カレンダーで前月アンカーがクリックされた時の動作
///////////////////////////////////////////////////////////////////////////////
function prev_calendar()
{
	// 隠し持っている現在表示しているカレンダーの年月を取得する
	var index_calendar_year_hidObj		= document.getElementById("index_calendar_year_hid");
	var index_calendar_month_hidObj		= document.getElementById("index_calendar_month_hid");

	// 現在が1月の場合は前月は去年の12月となる制御
	if (index_calendar_month_hidObj.value == 1)
	{
		index_calendar_year_hidObj.value		= Number(index_calendar_year_hidObj.value) - 1;
		index_calendar_month_hidObj.value		= 12;
	}
	else
	{
		index_calendar_month_hidObj.value		= Number(index_calendar_month_hidObj.value) - 1;
	}

	// カレンダー表示処理呼び出し
	view_calendar(index_calendar_year_hidObj.value,index_calendar_month_hidObj.value);
	change_calendar_day_color();
}

function change_calendar_day_color()
{
	var index_event_list_modeObj			= document.getElementById("index_event_list_mode");
	if (index_event_list_modeObj.value != "calendar"){return;}

	var index_calendar_year_hidObj			= document.getElementById("index_calendar_year_hid");
	var index_calendar_month_hidObj			= document.getElementById("index_calendar_month_hid");

	var index_event_list_calendar_yearObj	= document.getElementById("index_event_list_calendar_year");
	var index_event_list_calendar_monthObj	= document.getElementById("index_event_list_calendar_month");
	var index_event_list_calendar_dayObj	= document.getElementById("index_event_list_calendar_day");

	if (index_calendar_year_hidObj.value == index_event_list_calendar_yearObj.value && index_calendar_month_hidObj.value == index_event_list_calendar_monthObj.value)
	{
		var index_calendarObj					= document.getElementById("index_calendar");
		for (var cnt = 0 ; cnt < index_calendarObj.getElementsByTagName("a").length ; cnt++)
		{
			var anchorObj						= index_calendarObj.getElementsByTagName("a")[cnt];
			if (!(anchorObj.innerHTML == "&lt;&lt;" || anchorObj.innerHTML == "&gt;&gt;"))
			{
				if (anchorObj.innerHTML == index_event_list_calendar_dayObj.value)
				{
					setStyle(anchorObj,"background: #990066;");
				}
				else
				{
					setStyle(anchorObj,"background: #0066CC;");
				}
			}
			
		}
	}
}

function clear_calendar_day_color()
{
	var index_calendarObj					= document.getElementById("index_calendar");
	for (var cnt = 0 ; cnt < index_calendarObj.getElementsByTagName("a").length ; cnt++)
	{
		var anchorObj						= index_calendarObj.getElementsByTagName("a")[cnt];
		if (!(anchorObj.innerHTML == "&lt;&lt;" || anchorObj.innerHTML == "&gt;&gt;"))
		{
			setStyle(anchorObj,"background: #0066CC;");
		}
		
	}
}

// 一時的に保管しておく年月の領域定義
var g_year = null;
var g_month = null;

///////////////////////////////////////////////////////////////////////////////
// カレンダーの表示
///////////////////////////////////////////////////////////////////////////////
function view_calendar(year,month)
{
	// グローバル変数に表示したいカレンダーの年月を渡しておく
	g_year		= year;
	g_month		= month;

	// 対象年月に登録されているイベント情報を取得するDOMをコールする
	var param  = "index_calendar_year=" + year;
		param += "&index_calendar_month=" + month;
	dom_getResult("index_calendar_get_proc.php",view_calendar_proc,param,"");
}

///////////////////////////////////////////////////////////////////////////////
// カレンダーの表示(後続処理)
///////////////////////////////////////////////////////////////////////////////
function view_calendar_proc(request)
{
	// 結果XMLを取得する
	var resultXmlObj = request.responseXML;

	// XML解析
	// 日別にイベント情報の有無を格納する連想配列の定義
	var arr_day_event = new Array();

	// XMLを解析しながら、イベント登録日を取得する
	for (var cnt = 0 ; cnt < resultXmlObj.getElementsByTagName("contents").length ; cnt++ )
	{
		// Contentsオブジェクトの取得(基本的にこれは一つしか存在しないはす)
		var contentsObj = resultXmlObj.getElementsByTagName("contents").item(cnt);

		// 一日一日にイベント有無を取得
		for(var cnt2 = 0 ; cnt2 < contentsObj.getElementsByTagName("day_event").length ; cnt2++ )
		{
			var day_eventObj	= contentsObj.getElementsByTagName("day_event").item(cnt2);

			// 日付とイベント有無をXMLから取得
			var day				= getTextContent(day_eventObj.getElementsByTagName("day"));
			var event			= getTextContent(day_eventObj.getElementsByTagName("event"));

			// 日付を連想配列のキーとしてイベント有無情報を登録する
			arr_day_event[day]		= event;
		}
	}

	// グローバル変数から年月を取得
	year		= g_year;
	month		= g_month;

	// カレンダーテーブルオブジェクトの取得
	var index_calendarObj				= document.getElementById("index_calendar");

	// 月・年の表示
	var index_calendar_monthObj			= document.getElementById("index_calendar_month");
	var index_calendar_yearObj			= document.getElementById("index_calendar_year");
	var index_calendar_month_hidObj		= document.getElementById("index_calendar_month_hid");
	var index_calendar_year_hidObj		= document.getElementById("index_calendar_year_hid");

	// 現在表示しているカレンダー年月に年･月を格納する
	index_calendar_year_hidObj.value	= year;
	index_calendar_month_hidObj.value	= month;

	// カレンダーの上部にある年・月の表示制御
	index_calendar_yearObj.innerHTML	= year;
	var month_eng						= "";
	switch(Number(month))
	{
		case 1:month_eng = "January";break;
		case 2:month_eng = "February";break;
		case 3:month_eng = "March";break;
		case 4:month_eng = "April";break;
		case 5:month_eng = "May";break;
		case 6:month_eng = "Jun";break;
		case 7:month_eng = "July";break;
		case 8:month_eng = "August";break;
		case 9:month_eng = "September";break;
		case 10:month_eng = "October";break;
		case 11:month_eng = "November";break;
		case 12:month_eng = "December";break;
		default:month_eng = "";break;
	}
	index_calendar_monthObj.innerHTML	= month_eng;

	// カレンダー部分の表示
	var calendarDate					= new Date(year,month - 1,1);
	for (var cnt = 2 ; cnt < index_calendarObj.rows.length ;)
	{
		index_calendarObj.deleteRow(cnt);
	}
	var month_start_w					= calendarDate.getDay();
	var start_flag						= false;
	var month_end						= (new Date(year, month, 0).getDate());
	var now_day							= 1;

	while(now_day <= month_end)
	{
		var index_calendar_tr			= index_calendarObj.insertRow(index_calendarObj.rows.length);
		index_calendar_tr.className		= "calendar_day";
		for (var cnt = 0 ; cnt < 7 ; cnt++)
		{
			if (!start_flag)
			{
				if (cnt == month_start_w){start_flag = true;}
			}

			var index_calendar_td		= index_calendar_tr.insertCell(cnt);

			if (start_flag)
			{
				if (now_day <= month_end)
				{
					// イベント設定日の判定
					if (arr_day_event[now_day] == "0")
					{
						// イベントが無い場合は単純に日付のみを表示
						index_calendar_td.appendChild(document.createTextNode(now_day));
					}
					else
					{
						// イベントが有る場合はアンカーを設定しつつ日付を表示
						var day_anchor			= document.createElement("a");
						day_anchor.href			= "javascript:void(0);";
						setJavascriptFunction(day_anchor,"onclick","on_click_calendar_day(this," + year + "," + month + "," + now_day + ");");
						day_anchor.appendChild(document.createTextNode(now_day));
						index_calendar_td.appendChild(day_anchor);
					}
				}
				now_day++;
			}
			else
			{
				index_calendar_td.appendChild(document.createTextNode(""));
			}
		}
	}
}

///////////////////////////////////////////////////////////////////////////////
// イベント一覧を現在の制御モードに従って表示する(基本的に内部からコールされる)
///////////////////////////////////////////////////////////////////////////////
function view_event_list()
{
	// イベント一覧の現在の制御モードの取得
	var index_event_list_modeObj			= document.getElementById("index_event_list_mode");
	var index_mode_viewObj					= document.getElementById("index_mode_view");

	// モードが設定されていない場合は初期処理として本日以降のイベントを取得＆表示する
	if (index_event_list_modeObj.value == "")
	{
		// モードが設定されていない場合は初期処理として、本日日付以降のイベントを全て取得
		index_mode_viewObj.innerHTML		= "イベント一覧(本日以降のイベント)";
		index_event_get_init();
	}
	else if (index_event_list_modeObj.value == "calendar")
	{
		// モードがカレンダーの場合は選択されている日付のイベントを全て表示する
		var index_event_list_calendar_yearObj	= document.getElementById("index_event_list_calendar_year");
		var index_event_list_calendar_monthObj	= document.getElementById("index_event_list_calendar_month");
		var index_event_list_calendar_dayObj	= document.getElementById("index_event_list_calendar_day");
	
		index_mode_viewObj.innerHTML		= "イベント一覧(" + index_event_list_calendar_monthObj.value + "月" + index_event_list_calendar_dayObj.value + "日のイベント)";
		index_event_get_day();
	}
	else if (index_event_list_modeObj.value == "search")
	{
		// モードが検索の場合は、検索対象に該当する結果イベントを表示する
		index_mode_viewObj.innerHTML		= "イベント一覧(検索結果)";
		index_event_get_search();
	}
}

///////////////////////////////////////////////////////////////////////////////
// カレンダー上の日付を直接クリックされた場合の制御
///////////////////////////////////////////////////////////////////////////////
function on_click_calendar_day(obj,year,month,day)
{
	// イベント一覧を現在の制御モードをカレンダーに変更
	var index_event_list_modeObj			= document.getElementById("index_event_list_mode");
	index_event_list_modeObj.value 			= "calendar";

	// 選択された日付を保存する領域のオブジェクトを取得
	var index_event_list_calendar_yearObj	= document.getElementById("index_event_list_calendar_year");
	var index_event_list_calendar_monthObj	= document.getElementById("index_event_list_calendar_month");
	var index_event_list_calendar_dayObj	= document.getElementById("index_event_list_calendar_day");

	// 選択された日付を保存
	index_event_list_calendar_yearObj.value	= year;
	index_event_list_calendar_monthObj.value= month;
	index_event_list_calendar_dayObj.value	= day;

	// 選択された日付に色を着色する
	change_calendar_day_color();

	// イベント一覧を取得し表示する
	view_event_list();
}

///////////////////////////////////////////////////////////////////////////////
// 検索ボタンをクリックされた場合の制御
///////////////////////////////////////////////////////////////////////////////
function on_click_search()
{
	// イベント一覧を現在の制御モードをカレンダーに変更
	var index_event_list_modeObj			= document.getElementById("index_event_list_mode");
	index_event_list_modeObj.value 			= "search";

	// 
	clear_calendar_day_color();

	// イベント一覧を取得し表示する
	view_event_list();
}

///////////////////////////////////////////////////////////////////////////////
// イベント一覧取得(本日以降)
///////////////////////////////////////////////////////////////////////////////
function index_event_get_init()
{
	// 対象イベント取得DOMコール
	dom_getResult("index_event_get_init_proc.php",index_event_get_proc);
}

function index_event_get_day()
{
	dom_getResult("index_event_get_day_proc.php",index_event_get_proc);
}

function index_event_get_search()
{
	dom_getResult("index_event_get_search_proc.php",index_event_get_proc);
}

///////////////////////////////////////////////////////////////////////////////
// イベント一覧取得(本日以降)(後続処理)
///////////////////////////////////////////////////////////////////////////////
function index_event_get_proc(request)
{
	index_all_close_marker();
	index_all_close_infoWindow();

	// 結果XMLを取得する
	var resultXmlObj 	= request.responseXML;

	event_list			= new Array();
	marker_list			= new Object();
	infowindow_list		= new Object();

	// XML解析
	var venue_list		= new Object();
	for (var cnt = 0 ; cnt < resultXmlObj.getElementsByTagName("contents").length ; cnt++ )
	{
		// Contentsオブジェクトの取得(基本的にこれは一つしか存在しないはす)
		var contentsObj = resultXmlObj.getElementsByTagName("contents").item(cnt);

		for(var cnt2 = 0 ; cnt2 < contentsObj.getElementsByTagName("event").length ; cnt2++ )
		{
			// イベント情報の取得
			var eventObj		= contentsObj.getElementsByTagName("event").item(cnt2);

			var event_id		= getTextContent(eventObj.getElementsByTagName("event_id"));
			var title			= getTextContent(eventObj.getElementsByTagName("title"));
			var venue_id		= getTextContent(eventObj.getElementsByTagName("venue_id"));
			var venue_name		= getTextContent(eventObj.getElementsByTagName("venue_name"));
			var map_lat			= getTextContent(eventObj.getElementsByTagName("map_lat"));
			var map_lng			= getTextContent(eventObj.getElementsByTagName("map_lng"));

			var event_info		= {event_id:event_id ,title:title ,venue_id:venue_id ,venue_name:venue_name ,map_lat:map_lat ,map_lng:map_lng};
			event_list[cnt2]	= event_info;

			// イベント会場情報の登録
			var venue_info		= {venue_id:venue_id ,venue_name:venue_name ,map_lat:map_lat ,map_lng:map_lng};
			venue_list[venue_id]= venue_info;
		}
	}

	for( key in venue_list )
	{
		venue_info			= venue_list[key];
		var ret				= index_create_marker(venue_info['map_lat'], venue_info['map_lng'], venue_info['venue_name'], key);
		marker_list[venue_info['venue_id']]		= ret['marker'];
		infowindow_list[venue_info['venue_id']]	= ret['infowindow'];
	}

	var index_event_list_pageObj			= document.getElementById("index_event_list_page");
	index_event_list_pageObj.value = 0;

	index_event_view_event_list();
}

function index_create_marker(lat,lng,title,venue_id)
{
	var infowindow_html		= '';
	infowindow_html	+= '<table width="415px" height="90px" border="1" style="width:415px;" id="venue_' + venue_id + '">';
	infowindow_html	+= '	<tr><td style="border:1px solid #ffffff;"><div class="subject"><span style="font-size: 13px;color: #FF6600;line-height: 1.2;font-weight: bold;padding-top: 8px;" id="area_title_' + venue_id + '">イベント名</span></div></td></tr>';
	infowindow_html	+= '	<tr>';
	infowindow_html	+= '		<td>';
	infowindow_html	+= '			<div style="background-color: #FFF;margin: 0px 0 0px 0;padding: 10px;width: 385px;height: 90px;overflow: auto;vertical-align: top;">';
	infowindow_html	+= '				<div class="balloonTitle">実施日</div>';
	infowindow_html	+= '				<div id="area_date_' + venue_id + '"></div>';
	infowindow_html	+= '				<div class="balloonTitle">場所</div>';
	infowindow_html	+= '				<div id="area_address_' + venue_id + '">' + title + '</div>';
	infowindow_html	+= '				<div class="balloonTitle">詳細</div>';
	infowindow_html	+= '				<div id="area_detail_' + venue_id + '"></div>';
	infowindow_html	+= '				<div class="balloonTitle">会場</div>';
	infowindow_html	+= '				<div id="area_venue_name_' + venue_id + '"></div>';
	infowindow_html	+= '				<div class="balloonTitle">お問い合わせ</div>';
	infowindow_html	+= '				<div id="area_contact_recital_' + venue_id + '"></div>';
	infowindow_html	+= '				<img id="area_picture" src="" width="320" style="display:none;">';
	infowindow_html	+= '			</div>';
	infowindow_html	+= '		</td>';
	infowindow_html	+= '	</tr>';
	infowindow_html	+= '</table>';
	infowindow_html	+= '<table width="415px" height="30px" border="1" style="width:415px;">';
	infowindow_html	+= '	<tr>';
	infowindow_html	+= '		<td width="80%"><a href="javascript:void(0);"><img id="area_more" src="./img/btn_more.gif"  border="0"></a>&nbsp;</td>';
	infowindow_html	+= '		<td width="10%" style="border:1px solid #ffffff;"><a href="javascript:void(0);"><img id="area_prev" src="./img/btn_left.gif"  border="0"></a>&nbsp;</td>';
	infowindow_html	+= '		<td width="10%" style="border:1px solid #ffffff;"><a href="javascript:void(0);"><img id="area_next" src="./img/btn_right.gif" border="0"></a>&nbsp;</td>';
	infowindow_html	+= '	</tr>';
	infowindow_html	+= '</table>';

	var marker			= new google.maps.Marker({position: new google.maps.LatLng(lat, lng), map:map, title:title});
	var infowindow		= new google.maps.InfoWindow({content: infowindow_html, size:new google.maps.Size(390, 160)});

	google.maps.event.addListener(marker, "click", function(){index_all_close_infoWindow();index_marker_click(venue_id);/*map.setCenter(marker.getPosition());infowindow.open(map,marker);*/});

	return {'marker':marker, 'infowindow':infowindow};
}

function index_marker_click(venue_id)
{
	var target_event_id			= "";
	var target_venue_id			= "";
	
	for (var cnt = 0 ; cnt < event_list.length ; cnt++)
	{
		var event_info						= event_list[cnt];

		if (event_info["venue_id"] == venue_id)
		{
			target_event_id		= event_info["event_id"]
			target_venue_id		= event_info["venue_id"];
			break;
		}
	}

	index_click_event_list_name(target_event_id,target_venue_id);
}

function index_all_close_marker()
{
	if (marker_list != null)
	{
		for (key in marker_list)
		{
			marker_list[key].setMap(null);
		}
	}
}

function index_all_close_infoWindow()
{
	if (infowindow_list != null)
	{
		for( key in infowindow_list )
		{
			infowindow			= infowindow_list[key];
			infowindow.close();
		}
	}
}

function index_event_view_event_list()
{
	// イベントリストの初期化
	for (var cnt = 0 ; cnt < 8 ; cnt++)
	{
		var index_event_list_noObj			= document.getElementById("index_event_list_no" + (cnt + 1));
		var index_event_list_titleObj		= document.getElementById("index_event_list_title" + (cnt + 1));
		index_event_list_noObj.innerHTML	= "";
		index_event_list_titleObj.innerHTML	= "";
	}

	// 現在のページオブジェクト取得
	var index_event_list_pageObj			= document.getElementById("index_event_list_page");
	if (index_event_list_pageObj.value == ""){index_event_list_pageObj.value = 0;}

	for (var cnt = 0 ; event_list.length > (parseInt(cnt) + parseInt(index_event_list_pageObj.value) * 8) ; cnt++)
	{
		// リストは最大8件まで表示
		if (cnt >= 8){break;}

		// 配列から該当データを取得
		var event_info						= event_list[parseInt(cnt) + parseInt(index_event_list_pageObj.value) * 8];

		// リストの内容を作成
		var index_event_list_noObj			= document.getElementById("index_event_list_no" + (cnt + 1));
		var index_event_list_titleObj		= document.getElementById("index_event_list_title" + (cnt + 1));
		index_event_list_noObj.innerHTML	= ((parseInt(cnt) + parseInt(index_event_list_pageObj.value) * 8) + 1) + ".";
		index_event_list_titleObj.innerHTML	= event_info["title"];
		index_event_list_titleObj.href		= "javascript:void(0);";
		setJavascriptFunction(index_event_list_titleObj,"onclick","index_click_event_list_name('" + event_info["event_id"] + "','" + event_info["venue_id"] + "');");
	}

	// 前ページ表示制御
	var index_event_prevObj					= document.getElementById("index_event_prev");
	if (parseInt(index_event_list_pageObj.value) == 0 )
	{
		index_event_prevObj.innerHTML		= "";
	}
	else
	{
		index_event_prevObj.innerHTML		= "&lt;&lt;";
	}

	// 次ページ表示制御
	var index_event_nextObj					= document.getElementById("index_event_next");
	if ( ((parseInt(index_event_list_pageObj.value) + 1) * 8) + 1 > event_list.length)
	{
		index_event_nextObj.innerHTML		= "";
	}
	else
	{
		index_event_nextObj.innerHTML		= "&gt;&gt;";
	}
}


function index_click_event_list_name(event_id,venue_id)
{
	backup_event_id		= event_id;
	backup_venue_id		= venue_id;

	var marker			= marker_list[venue_id];
	var infowindow		= infowindow_list[venue_id];

	index_all_close_infoWindow();
	map.setCenter(marker.getPosition());
	// infowindow.content = "a";
	// infowindow.open(map,marker);

	dom_getResult("index_event_get_proc.php",index_event_infowindow_view,"event_id=" + event_id,"");
}

function index_event_infowindow_view(request)
{
	/*
	var infowindowObj				= document.getElementById("venue_" + backup_venue_id);
	var area_titleObj				= document.getElementById("area_title_" + backup_venue_id);
	var area_dateObj				= document.getElementById("area_date_" + backup_venue_id);
	var area_addressObj				= document.getElementById("area_address_" + backup_venue_id);
	var area_detailObj				= document.getElementById("area_detail_" + backup_venue_id);
	var area_venue_nameObj			= document.getElementById("area_venue_name_" + backup_venue_id);
	var area_contact_recitalObj		= document.getElementById("area_contact_recital_" + backup_venue_id);
	var area_pictureObj				= document.getElementById("area_picture");
	var area_moreObj				= document.getElementById("area_more");
	var area_prevObj				= document.getElementById("area_prev");
	var area_nextObj				= document.getElementById("area_next");
	*/

	var event_id		= "";
	var venue_id		= "";
	var title			= "";
	var detail			= "";
	var start_date		= "";
	var end_date		= "";
	var start_time		= "";
	var end_time		= "";
	var venue_recital	= "";
	var group_id		= "";
	var contact_recital	= "";
	var price_recital	= "";
	var etc_recital		= "";
	var event_url		= "";

	var has_picture		= "";
	var picture_width	= "";
	var picture_height	= "";

	var has_prev_flag	= "";
	var has_next_flag	= "";

	// 結果XMLを取得する
	var resultXmlObj 	= request.responseXML;

	// XML解析
	for (var cnt = 0 ; cnt < resultXmlObj.getElementsByTagName("contents").length ; cnt++ )
	{
		// Contentsオブジェクトの取得(基本的にこれは一つしか存在しないはす)
		var contentsObj = resultXmlObj.getElementsByTagName("contents").item(cnt);

		for(var cnt2 = 0 ; cnt2 < contentsObj.getElementsByTagName("event").length ; cnt2++ )
		{
			// イベント情報の取得
			var eventObj		= contentsObj.getElementsByTagName("event").item(cnt2);

			event_id		= getTextContent(eventObj.getElementsByTagName("event_id"));
			venue_id		= getTextContent(eventObj.getElementsByTagName("venue_id"));
			title			= getTextContent(eventObj.getElementsByTagName("title"));
			detail			= replaceSpaceToNBSP(replaceReturnToBR(getTextContent(eventObj.getElementsByTagName("detail"))));
			start_date		= getTextContent(eventObj.getElementsByTagName("start_date"));
			end_date		= getTextContent(eventObj.getElementsByTagName("end_date"));
			start_time		= getTextContent(eventObj.getElementsByTagName("start_time"));
			end_time		= getTextContent(eventObj.getElementsByTagName("end_time"));
			venue_recital	= replaceSpaceToNBSP(replaceReturnToBR(getTextContent(eventObj.getElementsByTagName("venue_recital"))));
			group_id		= getTextContent(eventObj.getElementsByTagName("group_id"));
			contact_recital	= replaceSpaceToNBSP(replaceReturnToBR(getTextContent(eventObj.getElementsByTagName("contact_recital"))));
			price_recital	= replaceSpaceToNBSP(replaceReturnToBR(getTextContent(eventObj.getElementsByTagName("price_recital"))));
			etc_recital		= replaceSpaceToNBSP(replaceReturnToBR(getTextContent(eventObj.getElementsByTagName("etc_recital"))));
			event_url		= getTextContent(eventObj.getElementsByTagName("event_url"));

			has_picture		= getTextContent(eventObj.getElementsByTagName("has_picture"));
			picture_width	= getTextContent(eventObj.getElementsByTagName("picture_width"));
			picture_height	= getTextContent(eventObj.getElementsByTagName("picture_height"));

/*
			area_titleObj.innerHTML				= title;
			area_dateObj.innerHTML				= start_date.replace("-","/").replace("-","/") + "&nbsp;" + start_time + "&nbsp;～&nbsp;" + end_date.replace("-","/").replace("-","/") + "&nbsp;" + end_time;
			//area_addressObj.innerHTML			= venue_recital;
			area_detailObj.innerHTML			= detail;
			area_venue_nameObj.innerHTML		= venue_recital;
			area_contact_recitalObj.innerHTML	= contact_recital;

			if (has_picture == "1")
			{
				setStyle(area_pictureObj,"display:block;");
				area_pictureObj.src				= "./imageview.php?event_id=" + event_id;
			}
			else
			{
				setStyle(area_pictureObj,"display:none;");
			}

			if (event_url != "")
			{
				area_moreObj.src	="./img/btn_more.gif";
				setJavascriptFunction(area_moreObj,"onclick","window.open('" + event_url + "');");
			}
			else
			{
				area_moreObj.src	="./img/btn_more_nothing.gif";
				setJavascriptFunction(area_moreObj,"onclick","");
			}
*/
		}

		for(var cnt2 = 0 ; cnt2 < contentsObj.getElementsByTagName("has_prev").length ; cnt2++ )
		{
			var has_prevObj		= contentsObj.getElementsByTagName("has_prev").item(cnt2);
			has_prev_flag		= getTextContent(has_prevObj.getElementsByTagName("has_flag"));
/*
			if (has_flag == "1")
			{
				area_prevObj.src	="./img/btn_left.gif";
				setJavascriptFunction(area_prevObj,"onclick","index_event_infowindow_prev('" + event_id + "','" + venue_id + "');");
			}
			else
			{
				area_prevObj.src	="./img/btn_left_nothing.gif";
				setJavascriptFunction(area_prevObj,"onclick","");
			}
*/
		}

		for(var cnt2 = 0 ; cnt2 < contentsObj.getElementsByTagName("has_next").length ; cnt2++ )
		{
			var has_nextObj		= contentsObj.getElementsByTagName("has_next").item(cnt2);
			has_next_flag		= getTextContent(has_nextObj.getElementsByTagName("has_flag"));
/*
			if (has_flag == "1")
			{
				area_nextObj.src	="./img/btn_right.gif";
				setJavascriptFunction(area_nextObj,"onclick","index_event_infowindow_next('" + event_id + "','" + venue_id + "');");
			}
			else
			{
				area_nextObj.src	="./img/btn_right_nothing.gif";
				setJavascriptFunction(area_nextObj,"onclick","");
			}
*/
		}
	}

	var marker			= marker_list[backup_venue_id];
	var infowindow		= infowindow_list[backup_venue_id];

	var infowindow_html		= '';
	infowindow_html	+= '<table width="415px" height="90px" border="1" style="width:415px;" id="venue_' + backup_venue_id + '">';
	infowindow_html	+= '	<tr><td style="border:1px solid #ffffff;"><div class="subject"><span style="font-size: 13px;color: #FF6600;line-height: 1.2;font-weight: bold;padding-top: 8px;" id="area_title_' + backup_venue_id + '">' + title + '</span></div></td></tr>';
	infowindow_html	+= '	<tr>';
	infowindow_html	+= '		<td>';
	infowindow_html	+= '			<div style="background-color: #FFF;margin: 0px 0 0px 0;padding: 10px;width: 385px;height: 90px;overflow: auto;vertical-align: top;">';
	infowindow_html	+= '				<div class="balloonTitle">実施日</div>';
	infowindow_html	+= '				<div id="area_date_' + backup_venue_id + '">' + start_date.replace("-","/").replace("-","/") + "&nbsp;" + start_time + "&nbsp;～&nbsp;" + end_date.replace("-","/").replace("-","/") + "&nbsp;" + end_time + '</div>';
	infowindow_html	+= '				<div class="balloonTitle">場所</div>';
	infowindow_html	+= '				<div id="area_address_' + backup_venue_id + '">' + title + '</div>';
	infowindow_html	+= '				<div class="balloonTitle">詳細</div>';
	infowindow_html	+= '				<div id="area_detail_' + backup_venue_id + '">' + detail + '</div>';
	infowindow_html	+= '				<div class="balloonTitle">会場</div>';
	infowindow_html	+= '				<div id="area_venue_name_' + backup_venue_id + '">' + venue_recital + '</div>';
	infowindow_html	+= '				<div class="balloonTitle">お問い合わせ</div>';
	infowindow_html	+= '				<div id="area_contact_recital_' + backup_venue_id + '">' + contact_recital + '</div>';
	
	if (has_picture == "1")
	{
		infowindow_html	+= '				<img id="area_picture" src="' + './imageview.php?event_id=' + event_id + '" width="320" style="display:block;">';
	}
	else
	{
		infowindow_html	+= '				<img id="area_picture" src="" width="320" style="display:none;">';
	}

	infowindow_html	+= '			</div>';
	infowindow_html	+= '		</td>';
	infowindow_html	+= '	</tr>';
	infowindow_html	+= '</table>';
	infowindow_html	+= '<table width="415px" height="30px" border="1" style="width:415px;">';
	infowindow_html	+= '	<tr>';
	
	if (event_url != "")
	{
		var temp_url = "window.open('" + event_url + "');";
		infowindow_html	+= '		<td width="80%"><a href="javascript:void(0);"><img id="area_more_' + backup_venue_id + '" src="./img/btn_more.gif"  border="0" onclick="' + temp_url + '"></a>&nbsp;</td>';
	}
	else
	{
		infowindow_html	+= '		<td width="80%"><img id="area_more_' + backup_venue_id + '" src="./img/btn_more_nothing.gif"  border="0">&nbsp;</td>';
	}

	if (has_prev_flag == "1")
	{
		var click_action = "index_event_infowindow_prev('" + event_id + "','" + venue_id + "');";
		infowindow_html	+= '		<td width="10%" style="border:1px solid #ffffff;"><a href="javascript:void(0);"><img id="area_prev_' + backup_venue_id + '" src="./img/btn_left.gif"  border="0" onclick="' + click_action + '"></a>&nbsp;</td>';
	}
	else
	{
		infowindow_html	+= '		<td width="10%" style="border:1px solid #ffffff;"><img id="area_prev_' + backup_venue_id + '" src="./img/btn_left_nothing.gif"  border="0">&nbsp;</td>';
	}

	if (has_next_flag == "1")
	{
		var click_action = "index_event_infowindow_next('" + event_id + "','" + venue_id + "');";
		infowindow_html	+= '		<td width="10%" style="border:1px solid #ffffff;"><a href="javascript:void(0);"><img id="area_next_' + backup_venue_id + '" src="./img/btn_right.gif" border="0" onclick="' + click_action + '"></a>&nbsp;</td>';
	}
	else
	{
		infowindow_html	+= '		<td width="10%" style="border:1px solid #ffffff;"><img id="area_next_' + backup_venue_id + '" src="./img/btn_right_nothing.gif" border="0">&nbsp;</td>';
	}


	infowindow_html	+= '	</tr>';
	infowindow_html	+= '</table>';

	infowindow.content = infowindow_html;

	infowindow.open(map,marker);
}

function index_event_infowindow_prev(event_id,venue_id)
{
	dom_getResult("index_event_move_proc.php",index_event_infowindow_view,"event_id=" + event_id + "&venue_id=" + venue_id + "&move=prev","");
}

function index_event_infowindow_next(event_id,venue_id)
{
	dom_getResult("index_event_move_proc.php",index_event_infowindow_view,"event_id=" + event_id + "&venue_id=" + venue_id + "&move=next","");
}

function index_event_list_prev()
{
	var index_event_list_pageObj			= document.getElementById("index_event_list_page");
	index_event_list_pageObj.value			= parseInt(index_event_list_pageObj.value) - 1;

	index_event_view_event_list();
}

function index_event_list_next()
{
	var index_event_list_pageObj			= document.getElementById("index_event_list_page");
	index_event_list_pageObj.value			= parseInt(index_event_list_pageObj.value) + 1;

	index_event_view_event_list();
}

////////////////////////////////
// ログイン画面
////////////////////////////////
function admin_login_submit()
{
	dom_getResult("admin_index_login_proc.php",admin_index_login_proc);
}

function admin_index_login_proc(request)
{
	// 結果XMLを取得する
	var resultXmlObj = request.responseXML;

	// XML解析
	var login_result		= "false";
	for (var cnt = 0 ; cnt < resultXmlObj.getElementsByTagName("contents").length ; cnt++ )
	{
		var contentsObj 				= resultXmlObj.getElementsByTagName("contents").item(cnt);
			login_result				= getTextContent(contentsObj.getElementsByTagName("login_result"));
	}
	
	if (login_result == "true")
	{
		document.cookie					= "vl_event=login;";
		location.href					= '?act=admin_event_list';
	}
	else
	{
		alert("ログインに失敗しました。");
	}
}

function admin_login_clear()
{
	var admin_login_passwordObj			= document.getElementById("admin_login_password");
	admin_login_passwordObj.value		= "";
}

////////////////////////////////
// イベント画面
////////////////////////////////
function admin_event_list_regist()
{
	location.href			= '?act=admin_event';
}
function admin_event_list_update(event_id)
{
	location.href			= '?act=admin_event&event_id=' + event_id;;
}
function admin_event_list_delete(event_id)
{
	if (confirm("削除してもよろしいですか？"))
	{
		dom_getResult("admin_event_list_delete_proc.php",admin_event_list_delete_proc,"event_id=" + event_id);
	}
}
function admin_event_list_delete_proc(request)
{
	alert("イベントを削除しました。");
	location.href			= '?act=admin_event_list';
}

function admin_event_list_search()
{
	var admin_event_search_dateObj				= document.getElementById("admin_event_search_date");
	var admin_event_search_regist_userObj		= document.getElementById("admin_event_search_regist_user");
	var admin_event_search_permission_flagObj	= document.getElementById("admin_event_search_permission_flag");
	var admin_event_search_venue_idObj			= document.getElementById("admin_event_search_venue_id");
	var admin_event_search_group_idObj			= document.getElementById("admin_event_search_group_id");
	var admin_event_search_freewordObj			= document.getElementById("admin_event_search_freeword");

	var param				= "";
	
	if (admin_event_search_dateObj[admin_event_search_dateObj.selectedIndex].value != "")
	{
		param				+= "&search_date=" + admin_event_search_dateObj[admin_event_search_dateObj.selectedIndex].value;
	}
	if (admin_event_search_regist_userObj[admin_event_search_regist_userObj.selectedIndex].value != "")
	{
		param				+= "&search_regist_user=" + admin_event_search_regist_userObj[admin_event_search_regist_userObj.selectedIndex].value;
	}
	if (admin_event_search_permission_flagObj[admin_event_search_permission_flagObj.selectedIndex].value != "")
	{
		param				+= "&search_permission_flag=" + admin_event_search_permission_flagObj[admin_event_search_permission_flagObj.selectedIndex].value;
	}
	if (admin_event_search_venue_idObj[admin_event_search_venue_idObj.selectedIndex].value != "")
	{
		param				+= "&search_venue_id=" + admin_event_search_venue_idObj[admin_event_search_venue_idObj.selectedIndex].value;
	}
	if (admin_event_search_group_idObj[admin_event_search_group_idObj.selectedIndex].value != "")
	{
		param				+= "&search_group_id=" + admin_event_search_group_idObj[admin_event_search_group_idObj.selectedIndex].value;
	}
	if (admin_event_search_freewordObj.value != "")
	{
		param				+= "&search_freeword=" + encodeURI(admin_event_search_freewordObj.value);
	}

	location.href			= "./?act=admin_event_list" + param;
}


function admin_event_init()
{
	dom_getResult("admin_event_init_proc.php",admin_event_init_proc);
}
function admin_event_init_proc(request){}

function admin_event_regist()
{
	dom_getResult("admin_event_regist_proc.php",admin_event_regist_proc);
}
function admin_event_regist_proc(request)
{
	alert("イベントを登録しました。");
	location.href			= '?act=admin_event_list';
}

function admin_event_update()
{
	dom_getResult("admin_event_update_proc.php",admin_event_update_proc);
}
function admin_event_update_proc(request)
{
	alert("イベントを更新しました。");
	location.href			= '?act=admin_event_list';
}

function admin_event_cancel()
{
	location.href			= '?act=admin_event_list';
}

function imageupload_event(event_id)
{
	window.open('./imageupload_event.php?event_id=' + event_id,'imageupload','width=400,height=280,menubar=no,toolbar=no,scrollbars=no');
}

function imageupload_event_after(param)
{
	if (param != "")
	{
		var admin_item_imageObj 		= document.getElementById("event_image");
		var admin_item_image_selectObj	= document.getElementById("event_image_select");

		now = new Date();
		admin_item_imageObj.style.display = 'block';
		admin_item_imageObj.src = "./imageview.php?event_id=" + param + "&" + now.getHours() + now.getMinutes() + now.getSeconds();
		admin_item_imageObj.setAttribute("width","120px");
		admin_item_image_selectObj.value = param;
	}
}

function imagedelete_event(mapdata_id)
{
	var mapdata_imageObj		= document.getElementById("event_image");
	var mapdata_image_selectObj	= document.getElementById("event_image_select");

	mapdata_imageObj.style.display = "none";
	mapdata_image_selectObj.value  = "-1";
}

////////////////////////////////
// 会場画面
////////////////////////////////
function admin_venue_list_regist()
{
	location.href			= '?act=admin_venue';
}
function admin_venue_list_update(venue_id)
{
	location.href			= '?act=admin_venue&venue_id=' + venue_id;
}
function admin_venue_list_delete(venue_id)
{
	if (confirm("削除してもよろしいですか？"))
	{
		dom_getResult("admin_venue_list_delete_proc.php",admin_venue_list_delete_proc,"venue_id=" + venue_id);
	}
}
function admin_venue_list_delete_proc(request)
{
	alert("会場を削除しました。");
	location.href			= '?act=admin_venue_list';
}

function admin_venue_regist()
{
	dom_getResult("admin_venue_regist_proc.php",admin_venue_regist_proc);
}
function admin_venue_regist_proc(request)
{
	alert("会場を登録しました。");
	location.href			= '?act=admin_venue_list';
}

function admin_venue_update()
{
	dom_getResult("admin_venue_update_proc.php",admin_venue_update_proc);
}
function admin_venue_update_proc(request)
{
	alert("会場を更新しました。");
	location.href			= '?act=admin_venue_list';
}

function admin_venue_cancel()
{
	location.href			= '?act=admin_venue_list';
}

function imageupload(venue_id)
{
	window.open('./imageupload.php?venue_id=' + venue_id,'imageupload','width=400,height=280,menubar=no,toolbar=no,scrollbars=no');
}

function imageupload_after(param)
{
	if (param != "")
	{
		var admin_item_imageObj 		= document.getElementById("venue_image");
		var admin_item_image_selectObj	= document.getElementById("venue_image_select");

		now = new Date();
		admin_item_imageObj.style.display = 'block';
		admin_item_imageObj.src = "./imageview.php?venue_id=" + param + "&" + now.getHours() + now.getMinutes() + now.getSeconds();
		admin_item_imageObj.setAttribute("width","120px");
		admin_item_image_selectObj.value = param;
	}
}

function imagedelete(mapdata_id)
{
	var mapdata_imageObj		= document.getElementById("venue_image");
	var mapdata_image_selectObj	= document.getElementById("venue_image_select");

	mapdata_imageObj.style.display = "none";
	mapdata_image_selectObj.value  = "-1";
}

function admin_venue_get_city()
{
	var admin_venue_pref_idObj				= document.getElementById("admin_venue_pref_id");
	var admin_venue_pref_id					= admin_venue_pref_idObj[admin_venue_pref_idObj.selectedIndex].value;

	dom_getResult("admin_venue_get_city_proc.php",admin_venue_get_city_proc,"admin_venue_pref_id=" + admin_venue_pref_id,"");
}

function admin_venue_get_city_proc(request)
{
	var admin_venue_city_idObj				= document.getElementById("admin_venue_city_id");

	// 全ての子要素の削除
	while(admin_venue_city_idObj.hasChildNodes())
	{
		admin_venue_city_idObj.removeChild(admin_venue_city_idObj.firstChild);
	}

	// 結果XMLを取得する
	var resultXmlObj = request.responseXML;

	// XML解析
	for (var cnt = 0 ; cnt < resultXmlObj.getElementsByTagName("contents").length ; cnt++ )
	{
		// 要素を一つ一つ取得する
		var contentsObj = resultXmlObj.getElementsByTagName("contents").item(cnt);
		var city_id				= getTextContent(contentsObj.getElementsByTagName("city_id"));
		var city_name			= getTextContent(contentsObj.getElementsByTagName("city_name"));

		var optionObj			= document.createElement("option");

		optionObj.setAttribute("value",city_id);
		optionObj.appendChild(document.createTextNode(city_name));

		admin_venue_city_idObj.appendChild(optionObj);
	}
}

function admin_venue_init()
{
	var admin_venue_default_map_latObj			= document.getElementById("admin_venue_default_map_lat");
	var admin_venue_default_map_lngObj			= document.getElementById("admin_venue_default_map_lng");

	var lat		= admin_venue_default_map_latObj.value;
	var lng		= admin_venue_default_map_lngObj.value;

	var admin_venue_map_latObj			= document.getElementById("admin_venue_map_lat");
	var admin_venue_map_lngObj			= document.getElementById("admin_venue_map_lng");

	if (admin_venue_map_latObj.value != ""){lat		= admin_venue_map_latObj.value;}
	if (admin_venue_map_lngObj.value != ""){lng		= admin_venue_map_lngObj.value;}

	var mapdiv = document.getElementById('map_canvas');
	var myOptions = {
	    zoom: 17,
	    center: new google.maps.LatLng(lat, lng),
	    mapTypeId: google.maps.MapTypeId.ROADMAP,
	    scaleControl: true
	};

	map = new google.maps.Map(mapdiv, myOptions);

	// 中心座標を表すクロスマーカーの定義
	cross_marker = new google.maps.Marker(
	{
		map: map,
		position: new google.maps.LatLng((map.getCenter()).lat(), (map.getCenter()).lng()),
		icon: "./img/cross_marker.gif"
	});
	
	// 移動イベント後の処理追加
	google.maps.event.addListener(map, 'idle', onIdle);

	dom_getResult("admin_venue_init_proc.php",admin_venue_init_proc,"","");
}
function admin_venue_init_proc(request){}

// 移動イベント後関数
function onIdle()
{
	// 中心緯度・経度の取得
	var map_center			= map.getCenter();

	// 緯度・経度を格納するオブジェクトの取得
	var admin_venue_map_latObj			= document.getElementById("admin_venue_map_lat");
	var admin_venue_map_lngObj			= document.getElementById("admin_venue_map_lng");

	// 緯度・経度の文字列をオブジェクトに格納
	admin_venue_map_latObj.value		= map_center.lat();
	admin_venue_map_lngObj.value		= map_center.lng();

	innerCrossMakerCenter();
}

function innerCrossMakerCenter()
{
	// 中心緯度・経度の取得
	var map_center			= map.getCenter();

	// マーカーの中心座標への移動
	cross_marker.setVisible(false);
	cross_marker = new google.maps.Marker({
		position: map_center,
		icon: "./img/cross_marker.gif",
		map: map
	});
}

////////////////////////////////
// 分類画面
////////////////////////////////
function admin_group_list_regist()
{
	var validateparam =  "&admin_group_list_group_name__validate=イベント分類名:isRequired();maxLength(80);";

	dom_getResult("admin_group_list_regist_proc.php",admin_group_list_regist_proc,autoGetParam(),validateparam);
}
function admin_group_list_regist_proc(request)
{
	alert("イベント分類を登録しました。");
	location.href	= "./?act=admin_group_list";
}

function admin_group_list_update(group_id)
{
	var admin_group_list_target_idObj		= document.getElementById("admin_group_list_target_id");
	admin_group_list_target_idObj.value		= group_id;

    var validateparam =  "&admin_group_list_name_" + group_id + "__validate=イベント分類名:isRequired();maxLength(80);";

	dom_getResult("admin_group_list_update_proc.php",admin_group_list_update_proc,autoGetParam(),validateparam);
}
function admin_group_list_update_proc(request)
{
	alert("イベント分類を更新しました。");
	location.href	= "./?act=admin_group_list";
}

function admin_group_list_delete(group_id)
{
	var admin_group_list_target_idObj		= document.getElementById("admin_group_list_target_id");
	admin_group_list_target_idObj.value		= group_id;

	dom_getResult("admin_group_list_delete_proc.php",admin_group_list_delete_proc);
}
function admin_group_list_delete_proc(request)
{
	alert("イベント分類を削除しました。");
	location.href	= "./?act=admin_group_list";
}

////////////////////////////////
// セッティング
////////////////////////////////
function admin_setting_regist()
{
	dom_getResult("admin_setting_regist_proc.php",admin_setting_regist_proc);
}
function admin_setting_regist_proc(request)
{
	alert("管理者情報を登録しました。");
	location.href			= '?act=admin_setting';
}

////////////////////////////////
// 共通
////////////////////////////////
function admin_logout_submit()
{
	location.href			= './?act=admin_login';
}

