/* ◎◇ */
/* WEB */

var c_strCGI = "/cgi/search_n.cgi";
var c_strResultMAP = "/cgi/routemap.cgi";
var c_strResultGraph = "/cgi/graphimg.cgi";
var c_nGraphH = -11;
var c_nGraphW = 255 + 11;
//var c_nGraphH = 0;
//var c_nGraphW = 690;

var c_nGraphH_k = 0;
var c_nGraphW_k = 673;

// icon_*のサイズ(px)
var c_nSizeIcon = 7;
var c_nSizeIconW = 9;
var c_nSizeIconH = 31;
var c_nSizeIconJCT = 37;

var c_nZMapMargin = 4;
var c_nZMapMargin_tmp_y = 50;
//var c_szDefPoint = '139.7702822-35.6777878';
var c_nZMapMargin_kiyaku_x= 120;

var c_szDefPoint_map = new Array(23);
c_szDefPoint_map[0] = '139.5538330078-35.858865683';
c_szDefPoint_map[1] = '139.6575164794-35.858865683';
c_szDefPoint_map[2] = '139.7567367553-35.858865683';
c_szDefPoint_map[3] = '139.8563003540-35.858865683';
c_szDefPoint_map[4] = '139.9500274658-35.858865683';
c_szDefPoint_map[5] = '139.5538330078-35.769357790';
c_szDefPoint_map[6] = '139.6575164794-35.769357790';
c_szDefPoint_map[7] = '139.7567367553-35.769357790';
c_szDefPoint_map[8] = '139.8563003540-35.769357790';
c_szDefPoint_map[9] = '139.9500274658-35.769357790';
c_szDefPoint_map[10] = '139.5538330078-35.681143423';
c_szDefPoint_map[11] = '139.6575164794-35.681143423';
c_szDefPoint_map[12] = '139.7567367553-35.681143423';
c_szDefPoint_map[13] = '139.8563003540-35.681143423';
c_szDefPoint_map[14] = '139.9500274658-35.681143423';
c_szDefPoint_map[15] = '139.5538330078-35.576776900';
c_szDefPoint_map[16] = '139.6575164794-35.576776900';
c_szDefPoint_map[17] = '139.7567367553-35.576776900';
c_szDefPoint_map[18] = '139.5538330078-35.490306453';
c_szDefPoint_map[19] = '139.6575164794-35.490306453';
c_szDefPoint_map[20] = '139.7567367553-35.490306453';
c_szDefPoint_map[21] = '139.5538330078-35.372114840';
c_szDefPoint_map[22] = '139.6575164794-35.372114840';

var io_num ='0';
var executeRouteSearch_scale = '10';
var loadZdcMap_scale = '10';
var selectmap_on_point;
var map_number;
/*{'
-------------------------------------------------------------------------------
Type:Function
Topic.
	フォーム内のエレメントを取得
Parameter
	prm -- エレメント名またはエレメント
Return
	エレメント
MakeBy
	1.00	2006/12/13	hical_satow
-------------------------------------------------------------------------------
}*/
function	formElement( prm )
{
	if ( 'string' != typeof prm ) {
		return ( prm );
	}
	return ( document.forms[ 'ZERO' ].elements[ prm ] );
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	マップ上の座標を取得
Parameter
	ic -- IC
	nOffX, nOffY -- IC定義上の座標からのオフセット
		nOffY を省略すると、中心点(nOffXと等価)
Return
	{ x: X座標, y:Y座標 }
MakeBy
	1.00	2006/12/13	hical_satow
-------------------------------------------------------------------------------
}*/
function	mapOnPos( ic, nOffX, nOffY )
{
	var elemMap = DHTML.rawObject( 'MAP' );
	var nPosX = DHTML.objectLeft( elemMap );
	var nPosY = DHTML.objectTop( elemMap );
	if ( ! ic ) {
		var pos = { 
			x: nPosX, 
			y: nPosY
		};
		return ( pos );
	}
	if ( null == nOffY || undefined == nOffY ) {
		nOffY = nOffX;
	}
	nPosX += ic.x + nOffX;
	nPosY += ic.y + nOffY;
	var pos = { 
		x: nPosX, 
		y: nPosY
	};
	return ( pos );
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	マップの左上からの座標を取得
Parameter
		nOffX, nOffY -- IC定義上の座標からのオフセット
		nOffY を省略すると、中心点(nOffXと等価)
Return
	{ x: X座標, y:Y座標 }
MakeBy
	1.00	2007/12/19	MATSUNO@JPZ
-------------------------------------------------------------------------------
}*/
function	mapOnPos_l( nOffX, nOffY )
{
	var elemMap = DHTML.rawObject( 'MAP' );
	var nPosX = DHTML.objectLeft( elemMap );
	var nPosY = DHTML.objectTop( elemMap );
	if ( null == nOffY || undefined == nOffY ) {
		nOffY = nOffX;
	}
	var pos = { 
		x: nPosX + nOffX, 
		y: nPosY + nOffY
	};
	return ( pos );
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	マップ上の右下からの座標を取得
Parameter
	nOffX, nOffY -- IC定義上の座標からのオフセット
		nOffY を省略すると、中心点(nOffXと等価)
Return
	{ x: X座標, y:Y座標 }
MakeBy
	1.00	2007/02/28	hical_satow
-------------------------------------------------------------------------------
}*/
function	mapOnPos_r( nOffX, nOffY )
{
	var elemMap = DHTML.rawObject( 'MAP' );
	var nPosX = DHTML.objectLeft( elemMap );
	var nPosY = DHTML.objectTop( elemMap );
	var nW = DHTML.objectWidth( elemMap );
	var nH = DHTML.objectHeight( elemMap );
	if ( null == nOffY || undefined == nOffY ) {
		nOffY = nOffX;
	}
	var pos = { 
		x: nPosX + nW - nOffX, 
		y: nPosY + nH - nOffY
	};
	return ( pos );
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	アイコン点滅
Parameter
	IconFlickerAdd
	IconFlickerDel
		prm -- オブジェクト名またはオブジェクト
MakeBy
	1.00	2006/12/13	hical_satow
-------------------------------------------------------------------------------
}*/
var m_intervalIcon = undefined;

var m_aIconFlicker = [];

function	IconFlickerAdd( prm )
{
	var obj = DHTML.rawObject( prm );
	for ( var nIdx = 0 ; nIdx < m_aIconFlicker.length ; nIdx++ ) {
		if ( ! m_aIconFlicker[ nIdx ] ) {
			continue ;
		}
		if ( obj.id == m_aIconFlicker[ nIdx ].id ) {
			return ;
		}
	}
	for ( var nIdx = 0 ; nIdx < m_aIconFlicker.length ; nIdx++ ) {
		if ( ! m_aIconFlicker[ nIdx ] ) {
			m_aIconFlicker[ nIdx ] = obj;
			return ;
		}
	}
	m_aIconFlicker.push( obj );
}

function	IconFlickerDel( prm )
{
	var obj = DHTML.rawObject( prm );
	for ( var nIdx = 0 ; nIdx < m_aIconFlicker.length - 1 ; nIdx++ ) {
		if ( ! m_aIconFlicker[ nIdx ] ) {
			continue ;
		}
		if ( obj.id == m_aIconFlicker[ nIdx ].id ) {
			 m_aIconFlicker[ nIdx ] = undefined;
			 return ;
		}
	}
	if ( m_aIconFlicker.length <= 0 ) {
		return ;
	}
	if ( ! m_aIconFlicker[ m_aIconFlicker.length - 1 ] || obj.id == m_aIconFlicker[ m_aIconFlicker.length - 1 ].id ) {
		m_aIconFlicker.pop(  );
	}
}

function	OnTimerIconFlicker(  )
{
	for ( var nIdx = 0 ; nIdx < m_aIconFlicker.length ; nIdx++ ) {
		if ( ! m_aIconFlicker[ nIdx ] ) {
			continue ;
		}
		if ( 'hidden' == DHTML.objectStyle( m_aIconFlicker[ nIdx ] ).visibility ) {
			DHTML.objectShow( m_aIconFlicker[ nIdx ] );
		}
		else {
			DHTML.objectHide( m_aIconFlicker[ nIdx ] );
		}
	}
}

/*{
-------------------------------------------------------------------------------
Type:Value
Topic.
	経由地
MakeBy
	1.00	2006/12/13	hical_satow
-------------------------------------------------------------------------------
}*/
var m_icVia = [ '', '', '' ];


/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	出発地
Parameter
	ic -- ICのID
MakeBy
	1.00	2006/12/13	hical_satow
-------------------------------------------------------------------------------
}*/
var m_icIn = undefined;
var m_icInName = undefined;

function	icInSet( ic )
{
	m_icIn = MetroEWY.icID( ic );
	var pos = mapOnPos( ic, - c_nSizeIconW / 2, - c_nSizeIconH / 2 );
	DHTML.shiftTo( 'ICON_IN', pos );
	DHTML.objectShow( 'ICON_IMG_IN' );
	IconFlickerAdd( 'ICON_IMG_IN' );
}

function	icInClear(  )
{
	var ic = MetroEWY.ic_from_id( m_icIn );
	m_icIn = undefined;
	m_icInName = undefined;
	IconFlickerDel( 'ICON_IMG_IN' );
	DHTML.objectHide( 'ICON_IMG_IN' );
	var pos = mapOnPos(  );
	DHTML.shiftTo( 'ICON_IN', pos );
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	到着地
Parameter
	ic -- ICのID
MakeBy
	1.00	2006/12/13	hical_satow
-------------------------------------------------------------------------------
}*/
var m_icOut = undefined;
var m_icOutName = undefined;

function	icOutSet( ic )
{
	m_icOut = MetroEWY.icID( ic );
	var pos = mapOnPos( ic, - c_nSizeIconW / 2, - c_nSizeIconH / 2 );
	DHTML.shiftTo( 'ICON_OUT', pos );
	DHTML.objectShow( 'ICON_IMG_OUT' );
	IconFlickerAdd( 'ICON_IMG_OUT' );
}

function	icOutClear(  )
{
	var ic = MetroEWY.ic_from_id( m_icOut );
	m_icOut = undefined;
	m_icOutName = undefined;
	IconFlickerDel( 'ICON_IMG_OUT' );
	DHTML.objectHide( 'ICON_IMG_OUT' );
	var pos = mapOnPos(  );
	DHTML.shiftTo( 'ICON_OUT', pos );
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	出発地、到着地が指定されたら、時間指定などを表示
MakeBy
	1.00	2006/12/18	hical_satow
	1.01	2009/07/07	iwa@JPZ
-------------------------------------------------------------------------------
}*/
function	onMenuMetShow(  )
{
	if ( m_icIn && m_icOut ) {
		DHTML.objectShow( 'SEARCH_MET1', 'table-row' );
		DHTML.objectShow( 'SEARCH_MET2', 'table-row' );
		DHTML.objectShow( 'SEARCH_MET3', 'table-row' );
		DHTML.objectShow( 'SEARCH_MET4', 'table-row' );
		DHTML.objectShow( 'SEARCH_MET5', 'table-row' );
		DHTML.objectShow( 'SEARCH_MET6', 'table-row' );
		DHTML.objectShow( 'SEARCH_MET7', 'table-row' );
		DHTML.objectShow( 'SEARCH_MET8', 'table-row' );	//ver1.01 add
		DHTML.objectShow( 'SEARCH_MET9', 'table-row' );	//ver1.01 add
	}
}

function	onMenuMetHide(  )
{
	if ( ! m_icIn && ! m_icOut ) {
		DHTML.objectHide( 'SEARCH_MET1', 'none' );
		DHTML.objectHide( 'SEARCH_MET2', 'none' );
		DHTML.objectHide( 'SEARCH_MET3', 'none' );
		DHTML.objectHide( 'SEARCH_MET4', 'none' );
		DHTML.objectHide( 'SEARCH_MET5', 'none' );
		DHTML.objectHide( 'SEARCH_MET6', 'none' );
		DHTML.objectHide( 'SEARCH_MET7', 'none' );
		DHTML.objectHide( 'SEARCH_MET8', 'none' );	//ver1.01 add
		DHTML.objectHide( 'SEARCH_MET9', 'none' );	//ver1.01 add
	}
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	ポップアップメニュー → 出発地に設定
Parameter
	id -- ICのID
MakeBy
	1.00	2006/12/13	hical_satow
-------------------------------------------------------------------------------
}*/
function	onInMenu( id )
{
	var ic = MetroEWY.ic_from_id( id );
	if ( ic ) {
		icInSet( ic );
		formElement( 'txt_in' ).value = MetroEWY.RouteICName( ic );
		DHTML.objectShow( formElement( 'txt_in' ), 'block' );
		DHTML.objectHide( formElement( 'cmb_in' ), 'none' );
		DHTML.objectShow( 'SEARCH_IMG_IN', 'inline' );
		DHTML.objectHide( 'RESET_IMG_IN', 'none' );
		onMenuMetShow(  );
	}
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	ポップアップメニュー → 到着地に設定
Parameter
	id -- ICのID
MakeBy
	1.00	2006/12/13	hical_satow
-------------------------------------------------------------------------------
}*/
function	onOutMenu( id )
{
	var ic = MetroEWY.ic_from_id( id );
	if ( ic ) {
		icOutSet( ic );
		formElement( 'txt_out' ).value = MetroEWY.RouteICName( ic );
		DHTML.objectShow( formElement( 'txt_out' ), 'block' );
		DHTML.objectHide( formElement( 'cmb_out' ), 'none' );
		DHTML.objectShow( 'SEARCH_IMG_OUT', 'inline' );
		DHTML.objectHide( 'RESET_IMG_OUT', 'none' );
		onMenuMetShow(  );
	}
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	ポップアップメニュー → 経由地に設定
Parameter
	idx -- 経由地の番号
	id -- ICのID
MakeBy
	1.00	2006/12/13	hical_satow
-------------------------------------------------------------------------------
}*/
function	onViaMenu( idx, id )
{
	var ic = MetroEWY.ic_from_id( id );
	if ( ic ) {
		m_icVia[ idx ] = MetroEWY.icID( ic );
		var pos = mapOnPos( ic, -c_nSizeIcon / 2 );
		var strNameIcon = 'ICON_VIA' + idx;
		var strNameIconImg = 'ICON_IMG_VIA' + idx;
		DHTML.shiftTo( strNameIcon, pos );
		DHTML.objectShow( strNameIconImg );
		IconFlickerAdd( strNameIconImg );
	
		var strNameDisp = 'TXT_VIA' + idx;
		DHTML.innerHTMLSet( strNameDisp,   MetroEWY.RouteICName( ic ) );
		var strNameRow = 'TR_VIA' + idx;
		DHTML.objectShow( strNameRow, 'table-row' );
	}
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	経由地を解除
Parameter
	idx -- 経由地の番号
MakeBy
	1.00	2006/12/13	hical_satow
-------------------------------------------------------------------------------
}*/
function	viadel( idx )
{
	m_icVia[ idx ] = null;
	var strNameRow = 'TR_VIA' + idx;
	DHTML.objectHide( strNameRow, 'none' );
	var strNameIcon = 'ICON_VIA' + idx;
	var strNameIconImg = 'ICON_IMG_VIA' + idx;
	IconFlickerDel( strNameIconImg );
	DHTML.objectHide( strNameIconImg );
	var pos = mapOnPos(  );
	DHTML.shiftTo( strNameIcon, pos );
	return ( 0 );
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	ポップアップニューを非表示
MakeBy
	1.00	2006/12/13	hical_satow
-------------------------------------------------------------------------------
}*/
function	popupmenuHide(  )
{
	DHTML.objectHide( 'POPUPMENU' );
	DHTML.objectHide( 'POPUPMENU_R' );
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	ICクリック→メニュー表示
MakeBy
	1.00	2006/12/13	hical_satow
-------------------------------------------------------------------------------
}*/
function	onICClick( evt )
{
	var objTarget = DHTML.eventTarget( evt );
	if ( ! objTarget ) {
		return ;
	}
	var ic = MetroEWY.ic_from_id( objTarget.id );
	if ( ! ic ) {
		return ;
	}
	arrowHide(  );
	var ok_in = MetroEWY.icID( ic );
	var ok_out = MetroEWY.icID( ic );
	if ( m_icIn ) {
		ok_in = MetroEWY.ok_search( m_icIn, MetroEWY.icID( ic ) );
		if ( ok_in ) {
			ok_in = MetroEWY.ng_search( m_icIn, MetroEWY.icID( ic ) );
		}
	}
	if ( m_icOut ) {
		ok_out = MetroEWY.ok_search( MetroEWY.icID( ic ), m_icOut );
		if ( ok_out ) {
			ok_out = MetroEWY.ng_search( MetroEWY.icID( ic ), m_icOut );
		}
	}
	var strAlt = new String( objTarget.alt );
	var aNames = strAlt.split( ':', 2 );
	var strICName = aNames[ 1 ];
	var strLayer = new String(  );
	strLayer += strICName + "<br>"
	if ( ok_out ) {
		strLayer += '<img border="0" height="11" width="11" src="../common/img/icon_in.png" alt="in" ><a href="javascript:void%200" onclick="onInMenu(\'' + ic.id + '\');popupmenuHide();return(false);" ' + ' >' + '出発地(入口)' + ( ( ! m_icIn ) ? 'に設定' : 'を変更' ) + '</a><br>';
	}
	if ( m_icIn && m_icOut ) {
		strLayer += '<img src="../common/img/icon_via.png" ><a href="javascript:void%200" onclick="onViaMenu(0,\'' + ic.id + '\');popupmenuHide();return(false);" ' + ' >' + '経由地1' + ( ( ! m_icVia[ 0 ] ) ? 'に設定' : 'を変更' ) + '</a><br>';
		strLayer += '<img src="../common/img/icon_via.png" ><a href="javascript:void%200" onclick="onViaMenu(1,\'' + ic.id + '\');popupmenuHide();return(false);" ' + ' >' + '経由地2' + ( ( ! m_icVia[ 1 ] ) ? 'に設定' : 'を変更' ) + '</a><br>';
		strLayer += '<img src="../common/img/icon_via.png" ><a href="javascript:void%200" onclick="onViaMenu(2,\'' + ic.id + '\');popupmenuHide();return(false);" ' + ' >' + '経由地3' + ( ( ! m_icVia[ 2 ] ) ? 'に設定' : 'を変更' ) + '</a><br>';
	}
	if ( ok_in ) {
		strLayer += '<img border="0" height="11" width="11" src="../common/img/icon_out.png" alt="out" ><a href="javascript:void%200" onclick="onOutMenu(\'' + ic.id + '\');popupmenuHide();return(false);" ' + ' >' + '到着地(出口)' + ( ( ! m_icOut ) ? 'に設定' : 'を変更' ) + '</a><br>';
	}
	var fReverse = ( ic.y < DHTML.objectHeight( 'POPUPMENU' ) || DHTML.objectWidth( 'MAP' ) - DHTML.objectWidth( 'POPUPMENU' ) < ic.x );
	var elmPopupmenu = DHTML.rawObject( fReverse ? 'POPUPMENU_R' : 'POPUPMENU' );
	var elmPopupmenuR = DHTML.rawObject( fReverse ? 'POPUPMENU' : 'POPUPMENU_R' );
	var elmPopupmenuIn = DHTML.rawObject( fReverse ? 'POPUPMENU_R_IN' : 'POPUPMENU_IN' );
	DHTML.objectHide( elmPopupmenuR );
	DHTML.innerHTMLSet( elmPopupmenuIn, strLayer );
	var pos = undefined;
	if ( fReverse ) {
		pos = mapOnPos( ic, -180, 0 );
	}
	else {
		pos = mapOnPos( ic, -28, -152 );
	}
	DHTML.shiftTo( elmPopupmenu, pos );
	DHTML.objectShow( elmPopupmenu, 'block' );
	return ;
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	ICマークを非表示
MakeBy
	1.00	2006/12/13	hical_satow
-------------------------------------------------------------------------------
}*/
function	arrowHide(  )
{
	DHTML.objectHide( 'ICON_ARROW' );
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	ICマークを表示
MakeBy
	1.00	2006/12/13	hical_satow
-------------------------------------------------------------------------------
}*/
function	arrowShow( ic )
{
	var strSrc = '../common/img/mark/' + ic.mark + '.png';
	if ( ! isPngBrowser(  ) ) {
		strSrc = '../common/img/mark/' + ic.mark + '.gif';
	}
	var strAlt = ic.roadname + ':' + ic.icname;
	var strID = 'MARK_IMG:' + ic.id;
	var strIDMarkOut = 'MARKOUT_IMG:' + ic.id;
	var strIDMarkIn = 'MARKIN_IMG:' + ic.id;
	var strCliccable = 
		'<map name="MARK_CLICK" >' + 
		'<area href="javascript:void%200" shape="circle" coords="13,13,5" id="' + strIDMarkIn + '" alt="' + strAlt + '" >' +
		'<area href="javascript:void%200" shape="rect" coords="0,0,27,27" id="' + strIDMarkOut + '" alt="' + strAlt + '" >' +
		'</map>';
	var strHTML = '<img id="' + strID + '" border="0" height="27" width="27" src="' + strSrc + '" usemap="#MARK_CLICK" alt="' + strAlt + '" >';
	strHTML += strCliccable;
	var elemMark = DHTML.rawObject( 'ICON_ARROW' );
	if ( ! elemMark ) {
		return ;
	}
	DHTML.innerHTMLSet( elemMark, strHTML );
	var elemMarkOut = DHTML.rawObject( strIDMarkOut );
	var elemMarkIn = DHTML.rawObject( strIDMarkIn );
	elemMarkOut.onmouseover = arrowHide;
	elemMarkOut.onmousedown = onICClick;
	elemMarkIn.onmousedown = onICClick;
	var pos = mapOnPos( ic, -2 - 9 );
	DHTML.shiftTo( elemMark, pos );
	DHTML.objectShow( elemMark );
	DHTML.rawObject( strID ).onmousedown = onICClick;
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	マウス乗る/降りる
MakeBy
	1.00	2006/12/13	hical_satow
-------------------------------------------------------------------------------
}*/
function	onICMouseOver( evt )
{
	var objTarget = DHTML.eventTarget( evt );
	if ( ! objTarget ) {
		return ;
	}
	arrowHide(  );
	var ic = MetroEWY.ic_from_id( objTarget.id );
	if ( ic ) {
		arrowShow( ic );
	}
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	ICメニュー表示
Parameter
Return
MakeBy
	1.00	2007/02/15	hical_satow
-------------------------------------------------------------------------------
}*/
function	ICMenuShow( ic, strAlt, isVia )
{
	arrowHide(  );
	var ok_in = MetroEWY.icID( ic );
	var ok_out = MetroEWY.icID( ic );
	if ( m_icIn ) {
		ok_in = MetroEWY.ok_search( m_icIn, MetroEWY.icID( ic ) );
		if ( ok_in ) {
			ok_in = MetroEWY.ng_search( m_icIn, MetroEWY.icID( ic ) );
		}
	}
	if ( m_icOut ) {
		ok_out = MetroEWY.ok_search( MetroEWY.icID( ic ), m_icOut );
		if ( ok_out ) {
			ok_out = MetroEWY.ng_search( MetroEWY.icID( ic ), m_icOut );
		}
	}
	var aNames = strAlt.split( ':', 2 );
	var strICName = aNames[ 1 ];
	var strLayer = new String(  );
	strLayer += strICName + "<br>"
	if ( ok_out ) {
		strLayer += '<img border="0" height="11" width="11" src="../common/img/icon_in.png" alt="in" ><a href="javascript:void%200" onclick="onInMenu(\'' + ic.id + '\');popupmenuHide();return(false);" ' + ' >' + '出発地(入口)' + ( ( ! m_icIn ) ? 'に設定' : 'を変更' ) + '</a><br>';
	}
	if ( m_icIn && m_icOut && isVia ) {
		strLayer += '<img src="../common/img/icon_via.png" ><a href="javascript:void%200" onclick="onViaMenu(0,\'' + ic.id + '\');popupmenuHide();return(false);" ' + ' >' + '経由地1' + ( ( ! m_icVia[ 0 ] ) ? 'に設定' : 'を変更' ) + '</a><br>';
		strLayer += '<img src="../common/img/icon_via.png" ><a href="javascript:void%200" onclick="onViaMenu(1,\'' + ic.id + '\');popupmenuHide();return(false);" ' + ' >' + '経由地2' + ( ( ! m_icVia[ 1 ] ) ? 'に設定' : 'を変更' ) + '</a><br>';
		strLayer += '<img src="../common/img/icon_via.png" ><a href="javascript:void%200" onclick="onViaMenu(2,\'' + ic.id + '\');popupmenuHide();return(false);" ' + ' >' + '経由地3' + ( ( ! m_icVia[ 2 ] ) ? 'に設定' : 'を変更' ) + '</a><br>';
	}
	if ( ok_in ) {
		strLayer += '<img border="0" height="11" width="11" src="../common/img/icon_out.png" alt="out" ><a href="javascript:void%200" onclick="onOutMenu(\'' + ic.id + '\');popupmenuHide();return(false);" ' + ' >' + '到着地(出口)' + ( ( ! m_icOut ) ? 'に設定' : 'を変更' ) + '</a><br>';
	}
	var fReverse = ( ic.y < DHTML.objectHeight( 'POPUPMENU' ) || DHTML.objectWidth( 'MAP' ) - DHTML.objectWidth( 'POPUPMENU' ) < ic.x );
	var elmPopupmenu = DHTML.rawObject( fReverse ? 'POPUPMENU_R' : 'POPUPMENU' );
	var elmPopupmenuR = DHTML.rawObject( fReverse ? 'POPUPMENU' : 'POPUPMENU_R' );
	var elmPopupmenuIn = DHTML.rawObject( fReverse ? 'POPUPMENU_R_IN' : 'POPUPMENU_IN' );
	DHTML.objectHide( elmPopupmenuR );
	DHTML.innerHTMLSet( elmPopupmenuIn, strLayer );
	var pos = undefined;
	if ( fReverse ) {
		pos = mapOnPos( ic, -180, 0 );
	}
	else {
		pos = mapOnPos( ic, -28, -152 );
	}
	DHTML.shiftTo( elmPopupmenu, pos );
	DHTML.objectShow( elmPopupmenu, 'block' );
	return ;
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	ICクリック→メニュー表示
MakeBy
	1.00	2006/12/13	hical_satow
-------------------------------------------------------------------------------
}*/
function	onICClick( evt )
{
	var objTarget = DHTML.eventTarget( evt );
	if ( ! objTarget ) {
		return ;
	}
	var ic = MetroEWY.ic_from_id( objTarget.id );
	if ( ! ic ) {
		return ;
	}
	var strAlt = new String( objTarget.alt );
	ICMenuShow( ic, strAlt, true );
	return ;
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	入力エリア
		(入力されたらアイコンを解除)
MakeBy
	1.00	2006/12/13	hical_satow
-------------------------------------------------------------------------------
}*/
function	onChangeICTxt( evt )
{
	var objTarget = DHTML.eventTarget( evt );
	if ( ! objTarget ) {
		return ;
	}
	if ( 'txt_in' == objTarget.name ) {
		icInClear(  );
	}
	else if ( 'txt_out' == objTarget.name ) {
		icOutClear(  );
	}
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	IC選択コンボボックスが変更された場合の処理
MakeBy
	1.00	2006/12/13	hical_satow
-------------------------------------------------------------------------------
}*/
function	onChangeICCmb( evt )
{
	var objTarget = DHTML.eventTarget( evt );
	if ( ! objTarget ) {
		return ;
	}
	if ( 'cmb_in' == objTarget.name ) {
		id = objTarget.value;
		var ic = MetroEWY.ic_from_id( id );
		if ( ! ic ) {
			icInClear(  );
			loadZdcMapIn(  );
		}
		else {
			icInSet( ic )
			onMenuMetShow(  );
		}
	}
	else if ( 'cmb_out' == objTarget.name ) {
		id = objTarget.value;
		var ic = MetroEWY.ic_from_id( id );
		if ( ! ic ) {
			icOutClear(  );
			loadZdcMapOut(  );
		}
		else {
			icOutSet( ic )
			onMenuMetShow(  );
		}
	}
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	IC選択コンボボックス設定
MakeBy
	1.00	2006/12/13	hical_satow
	1.10	2007/11/15	MATSUNO@JPZ
		ZENRIN API 対応
-------------------------------------------------------------------------------
}*/
function	comboboxInSet(  )
{
	var strSearch = formElement( 'txt_in' ).value;
	if ( formElement( 'IN_RAMPIC' ).checked ) {
		var aList = MetroEWY.grep( strSearch );
		if ( ! aList || aList.length < 0 ) {
			SearchPoiIn( strSearch, '00110', '00220' );
			return ;
		}
		if ( 1 == aList.length ) {
			onInMenu( aList[ 0 ].id );
			return ;
		}
		formElement( 'cmb_in' ).options.length = 0;
		var strGuide = ( ( '' == strSearch ) ? '<全IC>' : '<「' + strSearch + '」の検索結果>' );
		formElement( 'cmb_in' ).options[ 0 ] = new Option( strGuide, strValue );
		for ( var nIdx = 0 ; nIdx < aList.length ; nIdx++ ) {
			var strValue = MetroEWY.icID( aList[ nIdx ] );
			var strName = MetroEWY.RouteICName( aList[ nIdx ] );
			formElement( 'cmb_in' ).options[ nIdx + 1 ] = new Option( strName, strValue );
		}
		DHTML.objectHide( formElement( 'txt_in' ), 'none' );
		DHTML.objectShow( formElement( 'cmb_in' ), 'inline' );
		DHTML.objectHide( 'SEARCH_IMG_IN', 'none' );
		DHTML.objectShow( 'RESET_IMG_IN', 'inline' );
	}
	else if ( formElement( 'IN_ADDR' ).checked && '' != strSearch ) {
		SearchAddressIn( strSearch );
	}
	else if ( formElement( 'IN_ZIP' ).checked && '' != strSearch ) {
		SearchZipIn( strSearch );
	}
	else if ( formElement( 'IN_LEISURE' ).checked && '' != strSearch ) {
		SearchPoiIn( strSearch, '00120', '00110,00150,00140,00160,00170,00180' );
	}
	else if ( formElement( 'IN_SHOP' ).checked && '' != strSearch ) {
		SearchPoiIn( strSearch, '00140', '00160' );
	}
	else if ( formElement( 'IN_PUBLIC' ).checked && '' != strSearch ) {
		SearchPoiIn( strSearch, '00160,00220,00250', '' );
	}
}

function	comboboxOutSet(  )
{
	var strSearch = formElement( 'txt_out' ).value;
	if ( formElement( 'OUT_RAMPIC' ).checked ) {
		var aList = MetroEWY.grep( strSearch );
		if ( ! aList || aList.length < 0 ) {
			SearchPoiOut( strSearch, '00110', '00220' );
			return ;
		}
		if ( 1 == aList.length ) {
			onOutMenu( aList[ 0 ].id );
			return ;
		}
		formElement( 'cmb_out' ).options.length = 0;
		var strGuide = ( ( '' == strSearch ) ? '<全IC>' : '<「' + strSearch + '」の検索結果>' );
		formElement( 'cmb_out' ).options[ 0 ] = new Option( strGuide, strValue );
		for ( var nIdx = 0 ; nIdx < aList.length ; nIdx++ ) {
			var strValue = MetroEWY.icID( aList[ nIdx ] );
			var strName = MetroEWY.RouteICName( aList[ nIdx ] );
			formElement( 'cmb_out' ).options[ nIdx + 1 ] = new Option( strName, strValue );
		}
		DHTML.objectHide( formElement( 'txt_out' ), 'none' );
		DHTML.objectShow( formElement( 'cmb_out' ), 'inline' );
		DHTML.objectHide( 'SEARCH_IMG_OUT', 'none' );
		DHTML.objectShow( 'RESET_IMG_OUT', 'inline' );
	}
	else if ( formElement( 'OUT_ADDR' ).checked && '' != strSearch ) {
		SearchAddressOut( strSearch );
	}
	else if ( formElement( 'OUT_ZIP' ).checked && '' != strSearch ) {
		SearchZipOut( strSearch );
	}
	else if ( formElement( 'OUT_LEISURE' ).checked && '' != strSearch ) {
		SearchPoiOut( strSearch, '00120', '00110,00150,00140,00160,00170,00180' );
	}
	else if ( formElement( 'OUT_SHOP' ).checked && '' != strSearch ) {
		SearchPoiOut( strSearch, '00140', '00160' );
	}
	else if ( formElement( 'OUT_PUBLIC' ).checked && '' != strSearch ) {
		SearchPoiOut( strSearch, '00160,00220,00250', '' );
	}
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	IC選択コンボボックスリセット
MakeBy
	1.00	2007/12/19	MATSUNO@JPZ
-------------------------------------------------------------------------------
}*/
function	comboboxInReset(  )
{
	icInClear(  );
	deleteZdcMap(  );
	formElement( 'txt_in' ).value = '';
	DHTML.objectShow( formElement( 'txt_in' ), 'block' );
	DHTML.objectHide( formElement( 'cmb_in' ), 'none' );
	DHTML.objectShow( 'SEARCH_IMG_IN', 'inline' );
	DHTML.objectHide( 'RESET_IMG_IN', 'none' );
}

function	comboboxOutReset(  )
{
	icOutClear(  );
	deleteZdcMap(  );
	formElement( 'txt_out' ).value = '';
	DHTML.objectShow( formElement( 'txt_out' ), 'block' );
	DHTML.objectHide( formElement( 'cmb_out' ), 'none' );
	DHTML.objectShow( 'SEARCH_IMG_OUT', 'inline' );
	DHTML.objectHide( 'RESET_IMG_OUT', 'none' );
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	IC選択コンボボックス初期化
MakeBy
	1.00	2006/12/13	hical_satow
-------------------------------------------------------------------------------
}*/
function	CmbboxInit(  )
{
	DHTML.objectHide( formElement( 'cmb_in'  ), 'none' );
	DHTML.objectHide( formElement( 'cmb_out' ), 'none' );
	DHTML.objectHide( 'RESET_IMG_IN',  'none' );
	DHTML.objectHide( 'RESET_IMG_OUT', 'none' );
	formElement( 'cmb_in' ).onchange = onChangeICCmb;
	formElement( 'cmb_out' ).onchange = onChangeICCmb;
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	検索条件ラジオボタン初期化
MakeBy
	1.00	2007/11/24	MATSUNO@JPZ
-------------------------------------------------------------------------------
}*/
function	onChangeRadioIn(  )
{
	icInClear(  );
	deleteZdcMap(  );
	formElement( 'txt_in' ).value = '';
	DHTML.objectShow( formElement( 'txt_in' ), 'block' );
	DHTML.objectHide( formElement( 'cmb_in' ), 'none' );
	DHTML.objectShow( 'SEARCH_IMG_IN', 'inline' );
	DHTML.objectHide( 'RESET_IMG_IN', 'none' );
}

function	onChangeRadioOut(  )
{
	icOutClear(  );
	deleteZdcMap(  );
	formElement( 'txt_out' ).value = '';
	DHTML.objectShow( formElement( 'txt_out' ), 'block' );
	DHTML.objectHide( formElement( 'cmb_out' ), 'none' );
	DHTML.objectShow( 'SEARCH_IMG_OUT', 'inline' );
	DHTML.objectHide( 'RESET_IMG_OUT', 'none' );
}

function	RadiobtnInit(  )
{
	formElement( 'IN_RAMPIC' ).checked = true;
	formElement( 'OUT_RAMPIC' ).checked = true;
	formElement( 'IN_ADDR' ).checked = false;
	formElement( 'OUT_ADDR' ).checked = false;
	formElement( 'IN_ZIP' ).checked = false;
	formElement( 'OUT_ZIP' ).checked = false;
	formElement( 'IN_LEISURE' ).checked = false;
	formElement( 'OUT_LEISURE' ).checked = false;
	formElement( 'IN_SHOP' ).checked = false;
	formElement( 'OUT_SHOP' ).checked = false;
	formElement( 'IN_PUBLIC' ).checked = false;
	formElement( 'OUT_PUBLIC' ).checked = false;
	formElement( 'IN_RAMPIC' ).onchange = onChangeRadioIn;
	formElement( 'OUT_RAMPIC' ).onchange = onChangeRadioOut;
	formElement( 'IN_ADDR' ).onchange = onChangeRadioIn;
	formElement( 'OUT_ADDR' ).onchange = onChangeRadioOut;
	formElement( 'IN_ZIP' ).onchange = onChangeRadioIn;
	formElement( 'OUT_ZIP' ).onchange = onChangeRadioOut;
	formElement( 'IN_LEISURE' ).onchange = onChangeRadioIn;
	formElement( 'OUT_LEISURE' ).onchange = onChangeRadioOut;
	formElement( 'IN_SHOP' ).onchange = onChangeRadioIn;
	formElement( 'OUT_SHOP' ).onchange = onChangeRadioOut;
	formElement( 'IN_PUBLIC' ).onchange = onChangeRadioIn;
	formElement( 'OUT_PUBLIC' ).onchange = onChangeRadioOut;
}

/*{
-------------------------------------------------------------------------------
Type:Fucntion
Topic.
	[ZdcPoint]⇔[経度-緯度]変換
MakeBy
	1.00	2007/11/24	MATSUNO@JPZ
-------------------------------------------------------------------------------
}*/
function	ZdcPoint2Geo( point )
{
	var geo = '';
	if ( point ) {
		geo = point.lon + '-' + point.lat;
	}
	return ( geo );
}
function	Geo2ZdcPoint( geo )
{
	var lon = '';
	var lat = '';
	if ( '' != geo ) {
		var astr = geo.split( '-' );
		lon = astr[ 0 ];
		lat = astr[ 1 ];
	}
	point = new ZdcPoint( lon, lat );
	return ( point );
}


/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	施設名入力文字検索
MakeBy
	1.00	2007/11/15	MATSUNO@JPZ
-------------------------------------------------------------------------------
}*/
function SearchPoiIn( strSearch, strGenreMenu, strGenre )
{
	var poi = new ZdcSearchPoi(  );
	var opts = new ZdcSearchPoiOptions( strSearch );
	opts.genreMenuCode = strGenreMenu;
	opts.genreCode = strGenre;
	opts.pointFlg = '1';
	opts.todCode = '08,11,12,13,14';
	ZdcEvent.addListener( poi, 'end', SearchPoiResultIn );
	poi.search( opts );
	formElement( 'txt_in' ).value = '検索中です';
}

function SearchPoiResultIn( result )
{
	if ( '0' == result.status ) {
		if ( 1 == result.recCount ) {
			
		}
		formElement( 'cmb_in' ).options.length = 0;
		var nIdxC = 0;
		for ( var nIdx = 0; nIdx < result.recCount ; nIdx++ ) {
			var lat = result.items[ nIdx ].lat;
			var lon = result.items[ nIdx ].lon;
			if ( 'undefined' == lat || 'undefined' == lon || 0 == lat || 0 == lon ) {
				continue ;
			}
			var strValue = lon + "-" + lat;
			var strName = result.items[ nIdx ].poiName;
			if ( -1 != strName.indexOf( 'JCT' ) ) {
				continue ;
			}
			formElement( 'cmb_in' ).options[ nIdxC ] = new Option( strName, strValue );
			nIdxC++;
		}
		if ( formElement( 'cmb_in' ).options.length > 0 ) {
			DHTML.objectHide( formElement( 'txt_in' ), 'none' );
			DHTML.objectShow( formElement( 'cmb_in' ), 'inline' );
			DHTML.objectHide( 'SEARCH_IMG_IN', 'none' );
			DHTML.objectShow( 'RESET_IMG_IN', 'inline' );
			loadZdcMapIn(  );
			return ;
		}
	}
	formElement( 'txt_in' ).value = '検索に失敗しました。';
}

function SearchPoiOut( strSearch, strGenreMenu, strGenre )
{
	var poi = new ZdcSearchPoi(  );
	var opts = new ZdcSearchPoiOptions( strSearch );
	opts.genreMenuCode = strGenreMenu;
	opts.genreCode = strGenre;
	opts.pointFlg = '1';
	opts.todCode = '08,11,12,13,14';
	ZdcEvent.addListener( poi, 'end', SearchPoiResultOut );
	poi.search( opts );
	formElement( 'txt_out' ).value = '検索中です';
}

function SearchPoiResultOut( result )
{
	if ( '0' == result.status ) {
		formElement( 'cmb_out' ).options.length = 0;
		var nIdxC = 0;
		for ( var nIdx = 0; nIdx < result.recCount ; nIdx++ ) {
			var lat = result.items[ nIdx ].lat;
			var lon = result.items[ nIdx ].lon;
			if ( 'undefined' == lat || 'undefined' == lon || 0 == lat || 0 == lon ) {
				continue ;
			}
			var strValue = lon + "-" + lat;
			var strName = result.items[ nIdx ].poiName;
			if ( -1 != strName.indexOf( 'JCT' ) ) {
				continue ;
			}
			formElement( 'cmb_out' ).options[ nIdxC ] = new Option( strName, strValue );
			nIdxC++;
		}
		if ( formElement( 'cmb_out' ).options.length > 0 ) {
			DHTML.objectHide( formElement( 'txt_out' ), 'none' );
			DHTML.objectShow( formElement( 'cmb_out' ), 'inline' );
			DHTML.objectHide( 'SEARCH_IMG_OUT', 'none' );
			DHTML.objectShow( 'RESET_IMG_OUT', 'inline' );
			loadZdcMapOut(  );
			return ;
		}
	}
	formElement( 'txt_out' ).value = '検索に失敗しました。';
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	住所入力文字検索
MakeBy
	1.00	2007/11/15	MATSUNO@JPZ
-------------------------------------------------------------------------------
}*/
function SearchAddressIn( strSearch )
{
	var addr = new ZdcSearchAddress(  );
	var opts = new ZdcSearchAddressOptions( strSearch );
	opts.pointFlg = '1';
	opts.todCode = '08,11,12,13,14';
	ZdcEvent.addListener( addr, 'end', SearchAddressResultIn );
	addr.search( opts );
	formElement( 'txt_in' ).value = '検索中です';
}

function SearchAddressResultIn( result )
{
	if ( '0' == result.status ) {
		formElement( 'cmb_in' ).options.length = 0;
		var nIdxC = 0;
		for ( var nIdx = 0; nIdx < result.recCount ; nIdx++ ) {
			var lat = result.items[ nIdx ].lat;
			var lon = result.items[ nIdx ].lon;
			if ( 'undefined' == lat || 'undefined' == lon || 0 == lat || 0 == lon ) {
				continue ;
			}
			var strValue = lon + "-" + lat;
			var strName = result.items[ nIdx ].address;
			formElement( 'cmb_in' ).options[ nIdxC ] = new Option( strName, strValue );
			nIdxC++;
		}
		if ( formElement( 'cmb_in' ).options.length > 0 ) {
			DHTML.objectHide( formElement( 'txt_in' ), 'none' );
			DHTML.objectShow( formElement( 'cmb_in' ), 'inline' );
			DHTML.objectHide( 'SEARCH_IMG_IN', 'none' );
			DHTML.objectShow( 'RESET_IMG_IN', 'inline' );
			loadZdcMapIn(  );
			return ;
		}
	}
	formElement( 'txt_in' ).value = '検索に失敗しました。';
}

function SearchAddressOut( strSearch )
{
	var addr = new ZdcSearchAddress(  );
	var opts = new ZdcSearchAddressOptions( strSearch );
	opts.pointFlg = '1';
	opts.todCode = '08,11,12,13,14';
	ZdcEvent.addListener( addr, 'end', SearchAddressResultOut );
	addr.search( opts );
	formElement( 'txt_out' ).value = '検索中です';
}

function SearchAddressResultOut( result )
{
	if ( '0' == result.status ) {
		formElement( 'cmb_out' ).options.length = 0;
		var nIdxC = 0;
		for ( var nIdx = 0; nIdx < result.recCount ; nIdx++ ) {
			var lat = result.items[ nIdx ].lat;
			var lon = result.items[ nIdx ].lon;
			if ( 'undefined' == lat || 'undefined' == lon || 0 == lat || 0 == lon ) {
				continue ;
			}
			var strValue = lon + "-" + lat;
			var strName = result.items[ nIdx ].address;
			formElement( 'cmb_out' ).options[ nIdxC ] = new Option( strName, strValue );
			nIdxC++;
		}
		if ( formElement( 'cmb_out' ).options.length > 0 ) {
			DHTML.objectHide( formElement( 'txt_out' ), 'none' );
			DHTML.objectShow( formElement( 'cmb_out' ), 'inline' );
			DHTML.objectHide( 'SEARCH_IMG_OUT', 'none' );
			DHTML.objectShow( 'RESET_IMG_OUT', 'inline' );
			loadZdcMapOut(  );
			return ;
		}
	}
	formElement( 'txt_out' ).value = '検索に失敗しました。';
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	郵便番号検索
MakeBy
	1.00	2007/11/21	MATSUNO@JPZ
-------------------------------------------------------------------------------
}*/
function	SearchZipIn( strSearch )
{
	var zip = new ZdcSearchZip(  );
	var opts = new ZdcSearchZipOptions( strSearch );
	opts.pointFlg = '1';
	ZdcEvent.addListener( zip, 'end', SearchZipResultIn );
	zip.search( opts );
	formElement( 'txt_in' ).value = '検索中です。';
}

function	SearchZipResultIn( result )
{
	if ( '0' == result.status ) {
		var nIdxC = 0;
		formElement( 'cmb_in' ).options.length = 0;
		for ( var nIdx = 0 ; nIdx < result.recCount ; nIdx++ ) {
			var lat = result.items[ nIdx ].lat;
			var lon = result.items[ nIdx ].lon;
			if ( 'undefined' == lat || 'undefined' == lon || 0 == lat || 0 == lon ) {
				continue ;
			}
			var strValue = lon + "-" + lat;
			var strName = result.items[ nIdx ].address;
			formElement( 'cmb_in' ).options[ nIdxC ] = new Option( strName, strValue );
			nIdxC++;
		}
		if ( formElement( 'cmb_in' ).options.length > 0 ) {
			DHTML.objectHide( formElement( 'txt_in' ), 'none' );
			DHTML.objectShow( formElement( 'cmb_in' ), 'inline' );
			DHTML.objectHide( 'SEARCH_IMG_IN', 'none' );
			DHTML.objectShow( 'RESET_IMG_IN', 'inline' );
			loadZdcMapIn(  );
			return ;
		}
	}
	formElement( 'txt_in' ).value = '検索に失敗しました。';
}

function	SearchZipOut( strSearch )
{
	var zip = new ZdcSearchZip(  );
	var opts = new ZdcSearchZipOptions( strSearch );
	opts.pointFlg = '1';
	ZdcEvent.addListener( zip, 'end', SearchZipResultOut );
	zip.search( opts );
	formElement( 'txt_out' ).value = '検索中です。';
}

function	SearchZipResultOut( result )
{
	if ( '0' == result.status ) {
		var nIdxC = 0;
		formElement( 'cmb_out' ).options.length = 0;
		for ( var nIdx = 0 ; nIdx < result.recCount ; nIdx++ ) {
			var lat = result.items[ nIdx ].lat;
			var lon = result.items[ nIdx ].lon;
			if ( 'undefined' == lat || 'undefined' == lon || 0 == lat || 0 == lon ) {
				continue ;
			}
			var strValue = lon + "-" + lat;
			var strName = result.items[ nIdx ].address;
			formElement( 'cmb_out' ).options[ nIdxC ] = new Option( strName, strValue );
			nIdxC++;
		}
		if ( formElement( 'cmb_out' ).options.length > 0 ) {
			DHTML.objectHide( formElement( 'txt_out' ), 'none' );
			DHTML.objectShow( formElement( 'cmb_out' ), 'inline' );
			DHTML.objectHide( 'SEARCH_IMG_OUT', 'none' );
			DHTML.objectShow( 'RESET_IMG_OUT', 'inline' );
			loadZdcMapOut(  );
			return ;
		}
	}
	formElement( 'txt_out' ).value = '検索に失敗しました。';
}

/*{
-------------------------------------------------------------------------------
Type:Value
Topic.
	ゼンリンMAP表示オブジェクト
MakeBy
	1.00	2007/11/16	MATSUNO@JPZ
-------------------------------------------------------------------------------
}*/
var m_zmap = null;
var m_zulay = null;
var m_zmark = null;
var m_zmark_geo = '';
var m_zmark_adr = '';

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	ゼンリンMAP表示
MakeBy
	1.00	2007/11/20	MATSUNO@JPZ
-------------------------------------------------------------------------------
}*/
function	initZdcMapObjects(  )
{
	if ( null != m_zmap ) {
		m_zmap.removeRouteSearch(  );
		if ( m_zmap.msgopenstatus ) {
			m_zmap.closeMsgWindow(  );
		}
	}
	if ( null != m_zulay ) {
		m_zmap.removeUserLayer( m_zulay );
		m_zmap.clearUserLayer(  );
		m_zulay.removeMarker( m_zmark );
	}
}

function	loadZdcMap( geo )
{
	if ( '' == geo ) {
		return ;
	}
	var point = Geo2ZdcPoint( geo );
	initZdcMapObjects(  );
	m_zmap = new ZdcMap( DHTML.rawObject( 'ZMAP' ) );
//	m_zmap.setMapLocation( point, 15 );
	m_zmap.setMapLocation( point, loadZdcMap_scale );
//	m_zmap.setMapZoomLimit(8 ,13);					//拡大率の設定
	m_zmap.setMapZoomLimit(loadZdcMap_scale ,13);	//拡大率の設定ver.20090227
	m_zmap.addMapScaleBar( new ZdcScaleBar(  ) );
	m_zmap.addMapControl( new ZdcControl(  ) );
	ZMapObjectShow(  );
	ZMapObjectShow_c(  );
	ZMapObjectShow2(  );
}

function	loadZdcMapIn(  )
{
	var strGeo = formElement( 'cmb_in' ).value;
	if ( '' == strGeo || 'undefined' == strGeo ) {
		return ;
	}
	var point = Geo2ZdcPoint( strGeo );
	initZdcMapObjects(  );
	m_zmap = new ZdcMap( DHTML.rawObject( 'ZMAP' ) );
	m_zulay = new ZdcUserLayer(  );
	m_zulay.setLayerScale( 1, 18 );
	m_zulay.setLayerType( 'manual' );
	m_zmark = new ZdcMarker( point, new ZdcIcon(  ) );
	m_zmark.point = point;
	m_zulay.addMarker( m_zmark );
	m_zmap.addUserLayer( m_zulay );
	m_zmap.setMapLocation( point, 10 );
	m_zmap.addMapScaleBar( new ZdcScaleBar(  ) );
	m_zmap.addMapControl( new ZdcControl(  ) );
//	ZdcEvent.addListener( m_zmap, 'clickmapnomove', onclickZdcMapIn );
	ZMapObjectShow(  );
	ZMapObjectShow_c(  );
	ZMapObjectShow2(  );
	
	var title = document.createTextNode( formElement( 'cmb_in' ).options[ formElement( 'cmb_in' ).selectedIndex ].text );
	var node = document.createElement( 'div' );
	var link = document.createElement( 'a' );
	link.setAttribute( 'href', 'javascript:void%200' );
	if ( isInternetExplorer(  ) ) {
		link.setAttribute( 'onclick', new Function( "setZdcMapInPoint();return(0);" ) );
	}
	else {
		link.setAttribute( 'onclick', 'setZdcMapInPoint();return(0);' );
	}
	link.appendChild( document.createTextNode( 'この地点を出発地とする。' ) );
	node.appendChild( document.createTextNode( formElement( 'cmb_in' ).options[ formElement( 'cmb_in' ).selectedIndex ].text ) );
	node.appendChild( document.createElement('br') );
	node.appendChild( link );
	if ( m_zmap.msgopenstatus ) {
		m_zmap.closeMsgWindow(  );
	}
	m_zmark.openMsgWindow( point, title, node, 'ture' );
	m_zmark_geo = formElement( 'cmb_in' ).value;
	m_zmark_adr = formElement( 'cmb_in' ).options[ formElement( 'cmb_in' ).selectedIndex ].text;
}

function	loadZdcMapOut(  )
{
	var strGeo = formElement( 'cmb_out' ).value;
	if ( '' == strGeo || 'undefined' == strGeo ) {
		return ;
	}
	var point = Geo2ZdcPoint( strGeo );
	initZdcMapObjects(  );
	m_zmap = new ZdcMap( DHTML.rawObject( 'ZMAP' ) );
	m_zulay = new ZdcUserLayer(  );
	m_zulay.setLayerScale( 1, 18 );
	m_zulay.setLayerType( 'manual' );
	m_zmark = new ZdcMarker( point, new ZdcIcon(  ) );
	m_zmark.point = point;
	m_zulay.addMarker( m_zmark );
	m_zmap.addUserLayer( m_zulay );
	m_zmap.setMapLocation( point, 10 );
	m_zmap.addMapScaleBar( new ZdcScaleBar(  ) );
	m_zmap.addMapControl( new ZdcControl(  ) );
	ZdcEvent.addListener( m_zmap, 'clickmapnomove', onclickZdcMapOut );
	ZMapObjectShow(  );
	ZMapObjectShow_c(  );
	ZMapObjectShow2(  );
	
	var title = document.createTextNode( formElement( 'cmb_out' ).options[ formElement( 'cmb_out' ).selectedIndex ].text );
	var node = document.createElement( 'div' );
	var link = document.createElement( 'a' );
	link.setAttribute( 'href', 'javascript:void%200' );
	if ( isInternetExplorer(  ) ) {
		link.setAttribute( 'onclick', new Function( "setZdcMapOutPoint();return(0);" ) );
	}
	else {
		link.setAttribute( 'onclick', 'setZdcMapOutPoint();return(0);' );
	}
	link.appendChild( document.createTextNode( 'この地点を到着地とする。' ) );
	node.appendChild( document.createTextNode( formElement( 'cmb_out' ).options[ formElement( 'cmb_out' ).selectedIndex ].text ) );
	node.appendChild( document.createElement('br') );
	node.appendChild( link );
	if ( m_zmap.msgopenstatus ) {
		m_zmap.closeMsgWindow(  );
	}
	m_zmark.openMsgWindow( point, title, node, 'ture' );
	m_zmark_geo = formElement( 'cmb_out' ).value;
	m_zmark_adr = formElement( 'cmb_out' ).options[ formElement( 'cmb_out' ).selectedIndex ].text;
}

//function	loadZdcMapInDef(  )
//{
//	initZdcMapObjects(  );
//	var point = Geo2ZdcPoint( c_szDefPoint );
//	m_zmap = new ZdcMap( DHTML.rawObject( 'ZMAP' ) );
//	m_zulay = new ZdcUserLayer(  );
//	m_zulay.setLayerScale( 1, 18 );
//	m_zulay.setLayerType( 'manual' );
//	m_zmap.addUserLayer( m_zulay );
//	m_zmap.setMapLocation( point, 10 );
//	m_zmap.addMapScaleBar( new ZdcScaleBar(  ) );
//	m_zmap.addMapControl( new ZdcControl(  ) );
//	ZdcEvent.addListener( m_zmap, 'clickmapnomove', onclickZdcMapIn );
//	ZMapObjectShow(  );
//	ZMapObjectShow_c(  );
//	ZMapObjectShow2(  );
//}

function	loadZdcMapDef(map_num)
{

//	initZdcMapObjects(  );
	c_szDefPoint = c_szDefPoint_map[map_num];

	map_number = map_num;

	var point = Geo2ZdcPoint( c_szDefPoint );
	m_zmap = new ZdcMap( DHTML.rawObject( 'ZMAP' ) );
	m_zulay = new ZdcUserLayer(  );
	m_zulay.setLayerScale( 1, 18 );
	m_zulay.setLayerType( 'manual' );
	m_zmap.addUserLayer( m_zulay );
	m_zmap.setMapLocation( point, 10 );
//	m_zmap.setMapZoomLimit(8 ,13);					//拡大率の設定
	m_zmap.setMapZoomLimit(loadZdcMap_scale ,13);	//拡大率の設定ver.20090227
//	m_zmap.addMapScaleBar( new ZdcScaleBar( ) );	//ver.20090227
//	m_zmap.addMapControl( new ZdcControl(  ) );		//ver.20090227
	m_zmap.saveMapLocation(point);
	m_zmap.dragOff();
	if (io_num == 0) {
//		ZdcEvent.addListener( m_zmap, 'clickmapnomove', onclickZdcMapIn );
		ZdcEvent.addListener( m_zmap, 'clickmapnodrag', onclickZdcMapIn );	//ver.20090227
	}
	else {
//		ZdcEvent.addListener( m_zmap, 'clickmapnomove', onclickZdcMapOut );
		ZdcEvent.addListener( m_zmap, 'clickmapnodrag', onclickZdcMapOut );	//ver.20090227
	}
	ZdcEvent.addListener( m_zmap, 'dragmapend', scrollZdcMapLimit );
	ZdcEvent.addListener( m_zmap, 'scrollmapstart', scrollZdcMapLimit );

	ZMapObjectShow(  );
	selectmap_on_point = m_zmap.getMapLocation();
	ZMapObjectShow_c(  );
	ZMapObjectShow2(  );

}

//function	loadZdcMapOutDef(  )
//{
//	initZdcMapObjects(  );
//	var point = Geo2ZdcPoint( c_szDefPoint );
//	m_zmap = new ZdcMap( DHTML.rawObject( 'ZMAP' ) );
//	m_zulay = new ZdcUserLayer(  );
//	m_zulay.setLayerScale( 1, 18 );
//	m_zulay.setLayerType( 'manual' );
//	m_zmap.addUserLayer( m_zulay );
//	m_zmap.setMapLocation( point, 10 );
//	m_zmap.addMapScaleBar( new ZdcScaleBar(  ) );
//	m_zmap.addMapControl( new ZdcControl(  ) );
//	ZdcEvent.addListener( m_zmap, 'clickmapnomove', onclickZdcMapOut );
//	ZMapObjectShow(  );
//	ZMapObjectShow_c(  );
//	ZMapObjectShow2(  );
//}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	ゼンリンMAPクリック時処理
MakeBy
	1.00	2007/11/20	MATSUNO@JPZ
-------------------------------------------------------------------------------
}*/
function	onclickZdcMapIn(  )
{

	if ( m_zmap.msgopenstatus ) {
		m_zmap.closeMsgWindow(  );
	}
	var point = new ZdcPoint( m_zmap.MouseLon, m_zmap.MouseLat );
	m_zulay.removeMarker( m_zmark );
	m_zmark = new ZdcMarker( point, new ZdcIcon(  ) );
	m_zmark.point = point;
	m_zulay.addMarker( m_zmark );
	var addr = new ZdcGetAddressStringGik(  );
	var opts = new ZdcGetAddressStringGikOptions( point );
	opts.matchLevel = 3;
	ZdcEvent.addListener( addr, 'end', GetAddressStringGikIn );
	addr.search( opts );
}

function	scrollZdcMapLimit(  )			//IWA@JPZ
{

	var tmp_scale = '';

	tmp_scale = m_zmap.getMapScale();
	new_pos = m_zmap.getMapLocation();

	if (dragZdcMapScrollLimit_dec(new_pos)) {
		alert('MAPのスクロール範囲外です。');
//		m_zmap.setMapLocation( old_pos, tmp_scale );		//locationを前の位置まで戻す
		m_zmap.setMapLocation( new ZdcPoint(old_pos.lon ,old_pos.lat), tmp_scale );	//locationを前の位置まで戻す
	}
	else {
//		old_pos = new ZdcPoint( new_pos.lon, new_pos.lat);
		old_pos = new_pos;			//範囲内の場合はpositionを保持
	}

}

function	dragZdcMapScrollLimit_dec(val)
{

	var limit_lat_nw ;		//スクロールの制限座標-左上：緯度
	var limit_lon_nw ;		//スクロールの制限座標-左上：経度
	var limit_lat_ne ;		//スクロールの制限座標-右上
	var limit_lon_ne ;
	var limit_lat_sw ;		//スクロールの制限座標-左下
	var limit_lon_sw ;
	var limit_lat_se ;		//スクロールの制限座標-右下
	var limit_lon_se ;
	var limit_truth ='0';

	if (0 <= map_number && map_number <= 4) {
	 	limit_lat_nw = selectmap_on_point.lat + 0.04;
		limit_lat_ne = selectmap_on_point.lat + 0.04;
	}
	else {
		limit_lat_nw = selectmap_on_point.lat + 0.135;
		limit_lat_ne = selectmap_on_point.lat + 0.135;
	}
	limit_lat_sw = selectmap_on_point.lat - 0.135;
	limit_lat_se = selectmap_on_point.lat - 0.135;
	limit_lon_nw = selectmap_on_point.lon - 0.162;
	limit_lon_ne = selectmap_on_point.lon + 0.162;
	limit_lon_sw = selectmap_on_point.lon - 0.162;
	limit_lon_se = selectmap_on_point.lon + 0.162;

//	var	tmp_msg = 'now_val:' + val.lat + ' / ' + val.lon + '\n';
//		tmp_msg = tmp_msg + '_limit_:' + limit_lat_nw + ' / ' + limit_lon_nw + '\n';
//	alert(tmp_msg);

	//範囲の判定
	if (val.lat <= limit_lat_nw && val.lon >= limit_lon_nw &&
		val.lat <= limit_lat_ne && val.lon <= limit_lon_ne &&
		val.lat >= limit_lat_sw && val.lon >= limit_lon_sw &&
		val.lat >= limit_lat_se && val.lon <= limit_lon_se) {
		limit_truth = 0;
	}
	else {
		limit_truth = 1;
	}

	return (limit_truth);

}

function	onclickZdcMapOut(  )
{
	if ( m_zmap.msgopenstatus ) {
		m_zmap.closeMsgWindow(  );
	}
	var point = new ZdcPoint( m_zmap.MouseLon, m_zmap.MouseLat );
	m_zulay.removeMarker( m_zmark );
	m_zmark = new ZdcMarker( point, new ZdcIcon(  ) );
	m_zmark.point = point;
	m_zulay.addMarker( m_zmark );
	
	var addr = new ZdcGetAddressStringGik(  );
	var opts = new ZdcGetAddressStringGikOptions( point );
	opts.matchLevel = 3;
	ZdcEvent.addListener( addr, 'end', GetAddressStringGikOut );
	addr.search( opts );
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	住所逆引き検索
MakeBy
	1.00	2007/11/20	MATSUNO@JPZ
-------------------------------------------------------------------------------
}*/
function	GetAddressStringGikIn( result )
{
	if ( '0' == result.status && result.recCount > 0 ) {
		var title = document.createTextNode( result.items[ 0 ].address );
		var node = document.createElement( 'div' );
		var link = document.createElement( 'a' );
		link.setAttribute( 'href', 'javascript:void%200' );
		if ( isInternetExplorer(  ) ) {
			link.setAttribute( 'onclick', new Function( "setZdcMapInPoint();return(0);" ) );		        
		}
		else {
		        link.setAttribute( 'onclick', 'setZdcMapInPoint();return(0);' );
		}
		link.appendChild( document.createTextNode( 'この地点を出発地とする。' ) );
		node.appendChild( document.createTextNode( result.items[ 0 ].address ) );
		node.appendChild( document.createElement('br') );
		node.appendChild( link );
		m_zmark.openMsgWindow( m_zmark.point, title, node, 'ture' );
		m_zmark_geo = result.options.point.lon + '-' + result.options.point.lat;
		m_zmark_adr = result.items[ 0 ].address;
	}
	else {
		var title = document.createTextNode( '検索失敗' );
		var node = document.createTextNode( '指定された地点の検索に失敗しました。' );
		m_zmark.openMsgWindow( m_zmark.point, title, node, 'ture' );
		m_zmark_geo = '';
		m_zmark_adr = '';
	}
}

function	GetAddressStringGikOut( result )
{
	if ( '0' == result.status ) {
		var title = document.createTextNode( result.items[ 0 ].address );
		var node = document.createElement( 'div' );
		var link = document.createElement( 'a' );
		link.setAttribute( 'href', 'javascript:void%200' );
		if ( isInternetExplorer(  ) ) {
			link.setAttribute( 'onclick', new Function( "setZdcMapOutPoint();return(0);" ) );
		}
		else {
			link.setAttribute( 'onclick', 'setZdcMapOutPoint();return(0);' );
		}
		link.appendChild( document.createTextNode( 'この地点を到着地とする。' ) );
		node.appendChild( document.createTextNode( result.items[ 0 ].address ) );
		node.appendChild( document.createElement('br') );
		node.appendChild( link );
		m_zmark.openMsgWindow( m_zmark.point, title, node, 'ture' );
		m_zmark_geo = result.options.point.lon + '-' + result.options.point.lat;
		m_zmark_adr = result.items[ 0 ].address;
	}
	else {
		var title = document.createTextNode( '検索失敗' );
		var node = document.createTextNode( '指定された地点の検索に失敗しました。' );
		m_zmark.openMsgWindow( m_zmark.point, title, node, 'ture' );
		m_zmark_geo = '';
		m_zmark_adr = '';
	}
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	
MakeBy
	1.00	2007/11/20	MATSUNO@JPZ
-------------------------------------------------------------------------------
}*/
function	setZdcMapInPoint(  )
{
	icInClear(  );
	m_icIn = m_zmark_geo;
	formElement( 'txt_in' ).value = m_zmark_adr;
	DHTML.objectShow( formElement( 'txt_in' ), 'block' );
	DHTML.objectHide( formElement( 'cmb_in' ), 'none' );
	DHTML.objectShow( 'SEARCH_IMG_IN', 'inline' );
	DHTML.objectHide( 'RESET_IMG_IN', 'none' );
	onMenuMetShow(  );
	deleteZdcMap(  );
}

function	setZdcMapOutPoint(  )
{
	icOutClear(  );
	m_icOut = m_zmark_geo;
	formElement( 'txt_out' ).value = m_zmark_adr;
	DHTML.objectShow( formElement( 'txt_out' ), 'block' );
	DHTML.objectHide( formElement( 'cmb_out' ), 'none' );
	DHTML.objectShow( 'SEARCH_IMG_OUT', 'inline' );
	DHTML.objectHide( 'RESET_IMG_OUT', 'none' );
	onMenuMetShow(  );
	deleteZdcMap(  );
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topc.
	ゼンリンAPIでルートサーチ
MakeBy
	1.00	2007/11/25	MATSUNO@JPZ
	1.10	2009/01/20	IWA@JPZ
			縮尺制限を追加
--------------------------------------------------------------------------------
}*/
function	ExecuteZdcRouteSearch( geo_in, geo_out )
{
	initZdcMapObjects(  );
	var point_in = Geo2ZdcPoint( geo_in );
	var point_out = Geo2ZdcPoint( geo_out );
	var route = new ZdcRouteSearch();
	var opts = new ZdcRouteSearchOptions();
	opts.pointFlag = '1';
	opts.chg = '1';
	opts.dtf = '0';
	opts.str = '1';
	opts.departurePoint = point_in;
	opts.arrivalPoint = point_out;
	ZdcEvent.addListener( route, 'end', ExecuteZdcRouteSearchResult );
	m_zmap = new ZdcMap( DHTML.rawObject( 'ZMAP' ) );
	m_zmap.dragOff();								//add 20090312
//	m_zmap.setMapLocation( point_in, 15 );
	m_zmap.setMapLocation( point_in, executeRouteSearch_scale );		//mod rev1.10
//	m_zmap.setMapZoomLimit(8 ,13);					//拡大率の設定
	m_zmap.setMapZoomLimit(loadZdcMap_scale ,13);	//拡大率の設定ver.20090227
//	m_zmap.addMapScaleBar( new ZdcScaleBar(  ) );	//del 20090312
//	m_zmap.addMapControl( new ZdcControl(  ) );		//del 20090312
	ZMapObjectShow(  );
	ZMapObjectShow_c(  );
	ZMapObjectShow2(  );
	m_zmap.addRouteSearch( route );
	route.search( opts );
}

function	ExecuteZdcRouteSearchResult( result )
{
	if ( '0' == result.status ) {
	}
	else {
		alert( '検索に失敗しました。' );
	}
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	dummy画面の表示
MakeBy
	1.00	209/01/20	IWA@JPZ
-------------------------------------------------------------------------------
}*/
function	initLoadAllMap(num)
{
	deleteZdcMap();
	io_num = num;		//io_num: in=0 .out=1
//	alert(io_num);

//	document.getElementById('I_MAP').innerHTML = '<img src = "../common/img/map000.jpg" usemap"#map_all">';
	var allmap = '<img src = "../common/img/dmap000.jpg" usemap="#map_all">';
	var pos = mapOnPos_l( c_nZMapMargin );
	var elemImg = DHTML.rawObject( 'DMAP' );
	DHTML.innerHTMLSet( elemImg, allmap );
	DHTML.shiftTo( elemImg, pos );
	DHTML.objectShow( 'DMAP' );

	ZMapObjectShow_c(  );
	ZMapObjectShow2(  );

}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	ゼンリンMAPを表示
MakeBy
	1.00	2008/02/01	MATSUNO@JPZ
--------------------------------------------------------------------------------
}*/
function	ZMapObjectShow(  )
{
	var pos = mapOnPos_l( c_nZMapMargin );
	var elemImg = DHTML.rawObject( 'ZMAP' );
	DHTML.shiftTo( elemImg, pos );
	DHTML.objectShow( 'ZMAP' );
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	ゼンリンMAP閉じるボタン表示
MakeBy
	1.00	2008/10/31	IWA@JPZ
--------------------------------------------------------------------------------
}*/
function	ZMapObjectShow_c(  )
{
	var pos = mapOnPos_l( 4 ,-25 );
	var elemZBtn = DHTML.rawObject( 'ZMAP_BTN' );
	DHTML.shiftTo( elemZBtn, pos );
	DHTML.objectShow( 'ZMAP_BTN' );
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	ゼンリンMAP地図利用規約表示
MakeBy
	1.00	2008/10/31	IWA@JPZ
--------------------------------------------------------------------------------
}*/
function	ZMapObjectShow2(  )
{
	var pos = mapOnPos_l( 120 ,-25 );
	var elemZBtn = DHTML.rawObject( 'ZMAP_BTN2' );
	DHTML.shiftTo( elemZBtn, pos );
	DHTML.objectShow( 'ZMAP_BTN2' );
}


/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	ゼンリンMAPを消す
MakeBy
	1.00	2007/11/20	MATSUNO@JPZ
	1.10	2008/10/31	IWA@JPZ
	1.20	2009/01/19	IWA@JPZ
-------------------------------------------------------------------------------
}*/
function	deleteZdcMap(  )
{
	initZdcMapObjects(  );
	var elemZMap = DHTML.rawObject( 'ZMAP' );
	DHTML.innerHTMLSet( elemZMap, '' );
	DHTML.objectHide( 'DMAP' );
	DHTML.objectHide( 'ZMAP' );
	DHTML.objectHide( 'ZMAP_BTN' );
	DHTML.objectHide( 'ZMAP_BTN2' );
	m_zmap = null;
	m_zulay = null;
	m_zmark = null;
	m_zmark_geo = '';
	m_zmark_adr = '';
}

/*{
-------------------------------------------------------------------------------
Type:Value
Topic.
	非同期通信オブジェクト
MakeBy
	1.00	2006/12/13	hical_satow
-------------------------------------------------------------------------------
}*/

var m_oRequest = undefined;
var m_oRequestResultExists = undefined;

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	非同期通信中はカーソルを砂時計にする
MakeBy
	1.00	2006/12/18	hical_satow
-------------------------------------------------------------------------------
}*/
function 	CursorChg(  )
{
	document.body.style.cursor = ( ( m_oRequest || m_oRequestResultExists ) ? 'progress' : 'auto' );
}

/*{
-------------------------------------------------------------------------------
Type:Value
Topic.
	現在の状態
Parameter
Return
MakeBy
	1.00	2007/02/15	hical_satow
-------------------------------------------------------------------------------
}*/
var	m_nMode = 0;

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	検索結果表示
MakeBy
	1.00	2006/12/13	hical_satow
	1.10	2009/04/22	iwaiwa
			NEXCOドライブコンパスへのリンク対応
-------------------------------------------------------------------------------
}*/

function	fncResult(  )
{
	var elem = DHTML.rawObject( 'RESULT' );
	if ( ! elem ) {
		return ;
	}
	var nStatus = async.showHTML( elem, m_oRequest );
	if ( 0 < nStatus ) {
		return ;
	}
	if ( nStatus < 0 ) {
		m_oRequest = null;
		elem.innerHTML = 'エラーでした(' + -nStatus + ')';
		DHTML.objectShow( 'RESULT_BTN_DIV', 'block' );
		CursorChg(  );
		return ;
	}
	m_oRequest = null;
	var icIn = MetroEWY.ic_from_id( m_icIn );
	var icOut = MetroEWY.ic_from_id( m_icOut );
	if ( icIn ) {
		DHTML.innerHTMLSet( 'RH_INIC', icIn.icname );
		DHTML.innerHTMLSet( 'OUTSIDE_ORG0', icIn.icname );
		DHTML.innerHTMLSet( 'OUTSIDE_ORG1', icIn.icname );
		DHTML.innerHTMLSet( 'OUTSIDE_ORG2', icIn.icname );
	}
	else {
		DHTML.innerHTMLSet( 'RH_INIC', m_icInName );
		DHTML.innerHTMLSet( 'OUTSIDE_ORG0', m_icInName );
		DHTML.innerHTMLSet( 'OUTSIDE_ORG1', m_icInName );
		DHTML.innerHTMLSet( 'OUTSIDE_ORG2', m_icInName );
	}
	if ( icOut ) {
		DHTML.innerHTMLSet( 'RH_OUTIC', icOut.icname );
		DHTML.innerHTMLSet( 'OUTSIDE_DST0', icOut.icname );
		DHTML.innerHTMLSet( 'OUTSIDE_DST1', icOut.icname );
		DHTML.innerHTMLSet( 'OUTSIDE_DST2', icOut.icname );
	}
	else {
		DHTML.innerHTMLSet( 'RH_OUTIC', m_icOutName );
		DHTML.innerHTMLSet( 'OUTSIDE_DST0', m_icOutName );
		DHTML.innerHTMLSet( 'OUTSIDE_DST1', m_icOutName );
		DHTML.innerHTMLSet( 'OUTSIDE_DST2', m_icOutName );
	}
	DHTML.objectShow( 'RESULT_BTN_DIV', 'block' );
	CursorChg(  );
	m_nMode = 2;
	
//1.10ここから-----
	if (icIn) {var ic_in_name = icIn.icname;}else {var ic_in_name = "NG";}
	if (icOut) {var ic_out_name= icOut.icname;}else {var ic_out_name = "NG";}
	if (ic_in_name != "NG" && ic_out_name != "NG") {	//MAP上のOD選択時のみOK
		if ((ic_in_name.indexOf("IC",0) > 0 || ic_out_name.indexOf("IC",0) > 0)) {
			var ic_in = ic_in_name.replace("IC","");
			var ic_out= ic_out_name.replace("IC","");
			var nexco_msg0 = "NEXCO料金については";
//			var http_0 = "<a href=\"http://kousokubiyori.jp/sys/DriveCompass.html?optCrTp=2&a_aimai=true";
			//05月25日以降に変更のアドレス
			var http_0 = "<a href=\"http://dc.kousokubiyori.jp/dc/DriveCompass.html?optCrTp=2&a_aimai=true";
			var http_i = "&s_aimai=" + encodeURIComponent(ic_in);
			var http_o = "&e_aimai=" + encodeURIComponent(ic_out);
//			var http_1 = "&mini=MEX\" target=\"_blank\"><img onmouseover=\"this.src=\'../common/img/nexco_search_on.gif\'\" onmouseout=\"this.src=\'../common/img/nexco_search_off.gif\'\" src=\"../common/img/nexco_search_off.gif\"></a>";
			var http_1 = "&mini=MEX\" target=\"_blank\">NEXCO中日本｢高速日和｣</a>をご覧ください。";
			var http_link = nexco_msg0 + http_0 + http_i + http_o + http_1;
			DHTML.innerHTMLSet( 'NEXCO_LINK_0', http_link);
		}
	}
//-----1.10ここまで

}
/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	数字を3桁毎にコンマで区切る
Parameter
	val -- 数字
Return
	コンマ付きの数字
MakeBy
	1.00	2009/04/08	iwaiwa
-------------------------------------------------------------------------------
}*/
function	add_comma(val)
{
	return val.toString().replace(/([0-9]+?)(?=(?:[0-9]{3})+$)/g ,'$1,');
}
/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	URL文字列を連結
Parameter
	url -- URL文字列
	name, val -- CGI引数
Return
	新しいURL文字列
MakeBy
	1.00	2006/12/18	hical_satow
-------------------------------------------------------------------------------
}*/
function	urlPrmAdd( url, name, val )
{
	if ( undefined != val && '' != val ) {
		if ( '' != url && '?' != url.charAt( url.length - 1 ) ) {
			url += '&';
		}
		url += name + '=' + val;
	}
	return ( url );
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	[OK]
MakeBy
	1.00	2006/12/13	hical_satow
	1.01	2009/07/07	iwa@JPZ
-------------------------------------------------------------------------------
}*/
var	g_strParam = undefined;
var	m_strResultInit = undefined;

function	ExecuteSearch( prmSub, prmStop, prmReal )
{
	var strTime = new String(  );
	strTime += formElement( 'yyyymm' ).value;
	strTime += formElement( 'dd' ).value;
	strTime += formElement( 'hh' ).value;
	strTime += formElement( 'mi' ).value;
	strTime += '00';
	var strURL = new String( c_strCGI );
	g_strParam = '';
	g_strParam = urlPrmAdd( g_strParam, 'o', m_icIn );
	g_strParam = urlPrmAdd( g_strParam, 'd', m_icOut );
	m_icInName = formElement( 'txt_in' ).value;
	m_icOutName = formElement( 'txt_out' ).value;
	g_strParam = urlPrmAdd( g_strParam, 'v0', m_icVia[ 0 ] );
	g_strParam = urlPrmAdd( g_strParam, 'v1', m_icVia[ 1 ] );
	g_strParam = urlPrmAdd( g_strParam, 'v2', m_icVia[ 2 ] );
	var nRadioCar = ( formElement( 'CAR_0' ).checked ? '0' : ( formElement( 'CAR_1' ).checked ? '1' : undefined ) );
	g_strParam = urlPrmAdd( g_strParam, 'ty', nRadioCar );
	var nPtile = ( formElement( 'ptile_0' ).checked ? '0' : ( formElement( 'ptile_1' ).checked ? '1' : ( formElement( 'ptile_2' ).checked ? '2' : ( formElement( 'ptile_3' ).checked ? '3' : undefined ) )));	//ver1.01 add
	g_strParam = urlPrmAdd( g_strParam, 'ptv', nPtile );	//ver1.01 add
	if ( 1 == prmReal ) {
		strTime = TimeStampGet(  );
		g_strParam = urlPrmAdd( g_strParam, 'sw', '1' );
	}
	else {
		var nRadio1 = ( formElement( 'R1_1' ).checked ? '1' : ( formElement( 'R1_2' ).checked ? '2' : undefined ) );
		g_strParam = urlPrmAdd( g_strParam, 'sw', nRadio1 );
	}
	g_strParam = urlPrmAdd( g_strParam, 'time', strTime );
	g_strParam = urlPrmAdd( g_strParam, 's',   prmSub );
	g_strParam = urlPrmAdd( g_strParam, 'rtf', prmReal );
	g_strParam = urlPrmAdd( g_strParam, 'esf', prmStop );
	g_strParam = urlPrmAdd( g_strParam, 'paf', '0' );
	strURL += '?';
	strURL += g_strParam;
	DHTML.innerHTMLSet( 'RESULT', m_strResultInit );
	DHTML.objectHide( 'ZERO', 'none' );
	DHTML.objectShow( 'RESULT', 'block' );
	var pos = mapOnPos(  );
	var posGraph = mapOnPos_r( c_nGraphW, c_nGraphH );
	for ( var nIdx = 0 ; nIdx < 3 ; nIdx++ ) {
		var elemImg = DHTML.rawObject( 'RESULT_IMG' + nIdx );
		DHTML.objectHide( elemImg );
		DHTML.innerHTMLSet( elemImg, '<img src="../common/img/loading.gif">' );
		DHTML.shiftTo( elemImg, pos );
		var elemGraph = DHTML.rawObject( 'RESULT_GRAPH' + nIdx );
		DHTML.objectHide( elemGraph );
		DHTML.innerHTMLSet( elemGraph, '' );
		DHTML.shiftTo( elemGraph, posGraph );
	}
	m_nMode = 1;
	m_nResultRequest = 0;
	CursorChg(  );
	m_oRequest = async.get( strURL, fncResult );
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	ルートサーチ
MakeBy
	1.00	2008/09/03	MATSUNO@JPZ
-------------------------------------------------------------------------------
}*/
var m_prmReal = '0';

function	onExecute()
{
	popupmenuHide( );
	arrowHide( );
	var now = new Date(  );
	var yyyymm = parseInt( formElement( 'yyyymm' ).value );
	var yy = Math.floor( yyyymm / 100 );
	var mm = yyyymm % 100;
	var dd = formElement( 'dd' ).value;
	var hh = formElement( 'hh' ).value;
	var mi = formElement( 'mi' ).value;
	var date = new Date( yy, mm - 1, dd, hh, mi, 0 );
	if ( ! m_icIn || ! m_icOut ) {
		if ( ! m_icIn ) {
			//comboboxInSet(  );
			alert( '出発地を指定してください。' );
		}
		else if ( ! m_icOut ) {
			//comboboxOutSet(  );
			alert( '到着地を指定してください。' );
		}
	}
	else if ( now.getTime(  ) > date.getTime(  ) ) {
		//alert( '過去の時刻が選択されています。' );
		InitDate(  );
		ExecuteSearch( 0 );
	}
	else if ( m_icIn == m_icOut ) {
		alert( '出入口の指定が同じです。' );
	}
	else if ( '000000' == formElement( 'yyyymm' ).value ) {
		alert( '<年月>を選択してください。' )
	}
	else if ( '00' == formElement( 'dd' ).value ) {
		alert( '<日>を選択してください。' )
	}
	else if ( '99' == formElement( 'hh' ).value ) {
		alert( '<時間>を選択してください。' )
	}
	else if ( '99' == formElement( 'mi' ).value ) {
		alert( '<分>を選択してください。' )
	}
	else {
		m_prmReal = '0';
		ExecuteSearch( 0, 0, 0 );
	}
}

function	onExecute2(  )
{
	ExecuteSearch( 1, 0, m_prmReal );
}

function	onExecute3(  )
{
	ExecuteSearch( 1, 1, m_prmReal );
}

function	onExecuteReal(  )
{
	popupmenuHide( );
	arrowHide( );
	if ( ! m_icIn || ! m_icOut ) {
		if ( ! m_icIn ) {
			//comboboxInSet(  );
			alert( '出発地を指定してください。' );
		}
		else if ( ! m_icOut ) {
			//comboboxOutSet(  );
			alert( '到着地を指定してください。' );
		}
	}
	else if ( m_icIn == m_icOut ) {
		alert( '出入口の指定が同じです。' );
	}
	else {
		m_prmReal = '1';
		ExecuteSearch( 0, 0, 1 );
	}
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	検索結果の有無
Parameter
Return
MakeBy
	1.00	2007/02/15	hical_satow
-------------------------------------------------------------------------------
}*/
var m_intervalResult = undefined;

function	fncResultExists(  )
{
	if ( ! m_oRequestResultExists ) {
		return ;
	}
	if ( 4 != m_oRequestResultExists.readyState ) {
		return ;
	}
	if ( 200 != m_oRequestResultExists.status ) {
		return ;
	}
	var txt = m_oRequestResultExists.responseText;
	m_oRequestResultExists = null;
	m_nResultRequest = parseInt( txt );
	if ( 200 == m_nResultRequest ) {
		m_nMode = 3;
		if ( ! isFireFox(  ) ) {
			var pos = mapOnPos(  );
			var posGraph = mapOnPos_r( c_nGraphW, c_nGraphH );
			var dateTime = new Date(  );
			for ( var nIdx = 0 ; nIdx < 3 ; nIdx++ ) {
				var elemImg = DHTML.rawObject( 'RESULT_IMG' + nIdx );
				DHTML.objectHide( elemImg );
				DHTML.innerHTMLSet( elemImg, '<img src="' + c_strResultMAP + '?i=' + nIdx + '&tm=' + dateTime.getTime(  ) + '" >' );
				DHTML.shiftTo( elemImg, pos );
				
				var elemGraph = DHTML.rawObject( 'RESULT_GRAPH' + nIdx );
				DHTML.objectHide( elemGraph );
				// TODO:
				var strGraphHTML = '<img src="' + c_strResultGraph + '?i=' + nIdx + '&tm=' + dateTime.getTime(  ) + '" >';
				if ( '1' == m_prmReal ) {
					strGraphHTML = strGraphHTML + '<br><div><font color="red">赤線</font>：本日の過去データ<br><font color="green">緑線</font>：過去の統計値</div>'
				}
				DHTML.innerHTMLSet( elemGraph, strGraphHTML );
				DHTML.shiftTo( elemGraph, posGraph );
			}
		}
		onselRoute( ( ! DHTML.rawObject( 'RI_ROW0_2' ) ) ? '0' : '2' );
	}
	CursorChg(  );
}

function	ResultExists(  )
{
	if ( 2 != m_nMode ) {
		return ;
	}
	if ( m_oRequestResultExists || m_oRequest ) {
		return ;
	}
	var strParam = '';
	strParam = urlPrmAdd( strParam, 'exists', 1 );
	var dateTime = new Date(  );
	strParam = urlPrmAdd( strParam, 'tm', dateTime.getTime(  ) );
	var strURL = new String( c_strCGI );
	strURL += '?';
	strURL += strParam;
	CursorChg(  );
	m_oRequestResultExists = async.get( strURL, fncResultExists );
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	[時間を変更してルートサーチ]
MakeBy
	1.00	2007/02/02	MATSUNO@JPZ
-------------------------------------------------------------------------------
}*/
function	onExecuteChangeTime( msec )
{
	var yyyymm = parseInt( formElement( 'yyyymm' ).value );
	var yy = Math.floor( yyyymm / 100 );
	var mm = yyyymm % 100;
	var dd = formElement( 'dd' ).value;
	var hh = formElement( 'hh' ).value;
	var mi = formElement( 'mi' ).value;
	var date = new Date( yy, mm - 1, dd, hh, mi, 0 );
	date.setTime( date.getTime(  ) + msec );
	yy = date.getYear(  );
	if ( yy < 2000 ) {
		yy += 1900;
	}
	if ( yy < 2007 ) {
		alert( 'PAST' );
	}
	else if ( yy > 2008 ) {
		alert( 'FUTURE' );
	}
	else {
		mm = date.getMonth(  ) + 1;
		dd = date.getDate(  );
		hh = date.getHours(  );
		mi = date.getMinutes(  );
		var str_yyyymm = "" + yy;
		str_yyyymm += ZeroPadding( mm );
		formElement( 'yyyymm' ).value = str_yyyymm;
		formElement( 'dd' ).value = ZeroPadding( dd );
		formElement( 'hh' ).value = ZeroPadding( hh );
		formElement( 'mi' ).value = ZeroPadding( mi );
		ExecuteSearch( 0 );
	}
}

function	onExecuteChangeMin( min )
{
	DHTML.objectHide( 'ICON_IMG_JCT' );
	onExecuteChangeTime( min * 60 * 1000 );
}

function	ZeroPadding( value )
{
	var strValue = "";
	if ( value < 10 ) {
		strValue += "0"
	}
	strValue += value;
	return ( strValue );
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	[リセット]
MakeBy
	1.00	2007/01/27	hical_satow
	1.01	2009/07/07	iwa@JPZ
-------------------------------------------------------------------------------
}*/
function	onReset(  )
{
	formElement( 'txt_in' ).value = '';
	formElement( 'txt_out' ).value = '';
	DHTML.objectShow( formElement( 'txt_in' ), 'block' );
	DHTML.objectHide( formElement( 'cmb_in' ), 'none' );
	DHTML.objectShow( formElement( 'txt_out' ), 'block' );
	DHTML.objectHide( formElement( 'cmb_out' ), 'none' );
	DHTML.objectShow( 'SEARCH_IMG_IN', 'inline' );
	DHTML.objectHide( 'RESET_IMG_IN', 'none' );
	DHTML.objectShow( 'SEARCH_IMG_OUT', 'inline' );
	DHTML.objectHide( 'RESET_IMG_OUT', 'none' );
	icInClear(  );
	icOutClear(  );
	viadel( 2 );
	viadel( 1 );
	viadel( 0 );
	onMenuMetHide(  );
	formElement( 'R1_1' ).checked = true;
	formElement( 'R1_2' ).checked = false;
	InitDate(  );
	formElement( 'CAR_0' ).checked = true;
	formElement( 'CAR_1' ).checked = false;
//	formElement( 'REAL_0' ).checked = true;
//	formElement( 'REAL_1' ).checked = false;
	formElement( 'ptile_0' ).checked = false;	//ver1.01 add
	formElement( 'ptile_1' ).checked = false;	//ver1.01 add
	formElement( 'ptile_2' ).checked = true;	//ver1.01 add
	formElement( 'ptile_3' ).checked = false;	//ver1.01 add
	deleteZdcMap(  );
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	検索結果のルートを変更
MakeBy
	1.00	2006/12/20	hical_satow
-------------------------------------------------------------------------------
}*/
var m_strIDRouteVisible;
var m_nIdxRouteVisible;
var m_nCountRowRoute = 10;

function	onselRoute( idx )
{
	deleteZdcMap(  );
	DHTML.objectHide( 'ICON_IMG_JCT' );
	if ( m_strIDRouteVisible ) {
		DHTML.objectHide( m_strIDRouteVisible, 'none' );
		DHTML.styleChg( 'RI_ROW_' + m_nIdxRouteVisible, 'val' );
		for ( var nIdxRow = 0 ; nIdxRow < m_nCountRowRoute ; nIdxRow++ ) {
			var strClassName  = ( ( nIdxRow < m_nCountRowRoute - 1 ) ? 'val'   : 'val_b' );
			DHTML.styleChg( 'RI_ROW' + nIdxRow + '_' + m_nIdxRouteVisible, strClassName );
			DHTML.styleChg( 'RI_ROW' + nIdxRow + '_' + m_nIdxRouteVisible + '_C', 'val_c' );
		}
		DHTML.objectHide( 'RESULT_IMG' + m_nIdxRouteVisible );
		DHTML.objectHide( 'RESULT_GRAPH' + m_nIdxRouteVisible );
		m_nIdxRouteVisible = -1;
		m_strIDRouteVisible = undefined;
	}
	var strRouteName = 'RESULT_ROUTE_' + idx;
	var elem = DHTML.rawObject( strRouteName );
	DHTML.objectShow( strRouteName, 'block' );
	DHTML.styleChg( 'RI_ROW_' + idx, 'valsel' );
	for ( var nIdxRow = 0 ; nIdxRow < m_nCountRowRoute ; nIdxRow++ ) {
		var strClassName  = ( ( nIdxRow < m_nCountRowRoute - 1 ) ? 'valsel'   : 'valsel_b' );
		DHTML.styleChg( 'RI_ROW' + nIdxRow + '_' + idx, strClassName );
		DHTML.styleChg( 'RI_ROW' + nIdxRow + '_' + idx + '_C', 'valsel_c' );
	}
	if ( isFireFox(  ) ) {
		var elemImg = DHTML.rawObject( 'RESULT_IMG' + idx );
		var elemGraph = DHTML.rawObject( 'RESULT_GRAPH' + idx );
		if ( elemImg.innerHTML.indexOf( '<img src="' + c_strResultMAP ) < 0 ) {
			var dateTime = new Date(  );
			var pos = mapOnPos(  );
			var posGraph = mapOnPos_r( c_nGraphW, c_nGraphH );
			DHTML.innerHTMLSet( elemImg, '<img src="' + c_strResultMAP + '?i=' + idx + '&tm' + dateTime.getTime(  ) + '">' );
			DHTML.shiftTo( elemImg, pos );
			// TODO:
			var strGraphHTML = '<img src="' + c_strResultGraph + '?i=' + idx + '&tm=' + dateTime.getTime(  ) + '" >';
			if ( '1' == m_prmReal ) {
					strGraphHTML = strGraphHTML + '<br><font color="red">赤線</font>：本日の過去データ<br><font color="green">緑線</font>：過去の統計値'
			}
			DHTML.innerHTMLSet( elemGraph, strGraphHTML );
			DHTML.shiftTo( elemGraph, posGraph );
		}
		DHTML.objectShow( elemImg );
		DHTML.objectShow( elemGraph );
	}
	else {
		DHTML.objectShow( 'RESULT_IMG' + idx );
		DHTML.objectShow( 'RESULT_GRAPH' + idx );
	}
	var elemJump = DHTML.rawObject( 'JUMP_PRINT' );
	var strParam = g_strParam;
	strParam = urlPrmAdd( strParam, 'prt', parseInt( idx ) + 1 );
	var strURL = new String( c_strCGI );
	strURL += '?';
	strURL += strParam;
	elemJump.href = strURL;
	m_strIDRouteVisible = strRouteName;
	m_nIdxRouteVisible = idx;
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	距離別料金詳細表示
MakeBy
	1.00	2007/12/16	MATSUNO@JPZ
-------------------------------------------------------------------------------
}*/
function	ChargeDetailShow(  )
{
	DHTML.objectShow('CHG_DETAIL0', 'table-row');
	DHTML.objectShow('CHG_DETAIL1', 'table-row');
	DHTML.objectShow('CHG_DETAIL2', 'table-row');
	DHTML.objectShow('CHG_DETAIL3', 'table-row');
	DHTML.objectShow('CHG_DETAIL4', 'table-row');
	DHTML.objectShow('CHG_DETAIL5', 'table-row');
	DHTML.objectShow('CHG_INFO', 'table-row');
	DHTML.objectHide('CHG_DEFAULT', 'none');
}

function	ChargeDetailHide(  )
{
	DHTML.objectShow('CHG_DEFAULT', 'table-row');
	DHTML.objectHide('CHG_DETAIL0', 'none');
	DHTML.objectHide('CHG_DETAIL1', 'none');
	DHTML.objectHide('CHG_DETAIL2', 'none');
	DHTML.objectHide('CHG_DETAIL3', 'none');
	DHTML.objectHide('CHG_DETAIL4', 'none');
	DHTML.objectHide('CHG_DETAIL5', 'none');
	DHTML.objectHide('CHG_INFO', 'none');
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	[再検索]
MakeBy
	1.00	2006/12/13	hical_satow
-------------------------------------------------------------------------------
}*/
function	onResearch(  )
{
	deleteZdcMap(  );
	DHTML.objectShow( 'ZERO', 'block' );
	DHTML.objectHide( 'RESULT', 'none' );
	DHTML.objectHide( 'RESULT_BTN_DIV' );
	DHTML.objectHide( 'RESULT_IMG0' );
	DHTML.objectHide( 'RESULT_IMG1' );
	DHTML.objectHide( 'RESULT_IMG2' );
	DHTML.objectHide( 'RESULT_GRAPH0' );
	DHTML.objectHide( 'RESULT_GRAPH1' );
	DHTML.objectHide( 'RESULT_GRAPH2' );
	DHTML.objectHide( 'ICON_IMG_JCT' );
	m_nMode = 0;
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	[帰路]
MakeBy
	1.00	2007/01/16	hical_satow
-------------------------------------------------------------------------------
}*/
function	onReverseResearch(  )
{
	deleteZdcMap(  );
	DHTML.objectShow( 'ZERO', 'block' );
	DHTML.objectHide( 'RESULT', 'none' );
	DHTML.objectHide( 'RESULT_BTN_DIV' );
	DHTML.objectHide( 'RESULT_IMG0' );
	DHTML.objectHide( 'RESULT_IMG1' );
	DHTML.objectHide( 'RESULT_IMG2' );
	DHTML.objectHide( 'RESULT_GRAPH0' );
	DHTML.objectHide( 'RESULT_GRAPH1' );
	DHTML.objectHide( 'RESULT_GRAPH2' );
	DHTML.objectHide( 'ICON_IMG_JCT' );
	var icOrgIn = m_icIn;
	var icOrgOut = m_icOut;
	var icOrgVia0 = m_icVia[ 0 ];
	var icOrgVia2 = m_icVia[ 2 ];
	onInMenu( icOrgOut );
	onOutMenu( icOrgIn );
	viadel( 0 );
	viadel( 2 );
	onViaMenu( 0, icOrgVia2 );
	onViaMenu( 2, icOrgVia0 );
	InitDate(  );
	m_nMode = 0;
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	タイマ初期化
		(アイコン点滅)
MakeBy
	1.00	2006/12/13	hical_satow
-------------------------------------------------------------------------------
}*/
function TimerInit(  )
{
	if ( m_intervalResult ) {
		clearInterval( m_intervalResult );
	}
	m_intervalResult = setInterval( "ResultExists()", 1000 );
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	地図の<area>を初期化
MakeBy
	1.00	2006/12/11	hical_satow
-------------------------------------------------------------------------------
}*/
function InitIC(  )
{
	var strCliccable = new String( '' );
	for ( var idx = 0 ; idx < MetroEWY.m_ictbl.length ; idx++ ) {
		var ic = MetroEWY.m_ictbl[ idx ];
		if ( "9" == MetroEWY.icID( ic ).substring( 0, 1 ) ) {
			continue ;
		}
		var strAlt = ic.roadname + ':' + ic.icname;
		var strCoords = MetroEWY.cliccableIC( ic );
		if ( strCoords ) {
			var strID = MetroEWY.icID( ic );
			strCliccable += '<area href="javascript:void%200" shape="circle" coords="' + strCoords + '" id="' + strID + '" alt="' + strAlt + '" >' + "\n";
		}
		var strCoordsLabel = MetroEWY.cliccableICLabel( ic );
		if ( strCoordsLabel ) {
			var strID = MetroEWY.labelID( ic );
			strCliccable += '<area href="javascript:void%200" shape="rect" coords="' + strCoordsLabel + '" id="' + strID + '" alt="' + strAlt + '" >' + "\n";
		}
	}
	DHTML.innerHTMLSet( 'MAPCLICCABLE', strCliccable );
	for ( var idx = 0 ; idx < MetroEWY.m_ictbl.length ; idx++ ) {
		var ic = MetroEWY.m_ictbl[ idx ];
		if ( "9" == MetroEWY.icID( ic ).substring( 0, 1 ) ) {
			continue ;
		}
		var elemIC = DHTML.rawObject( MetroEWY.icID( ic ) );
		elemIC.onmouseover = onICMouseOver;
		elemIC.onmousedown = onICClick;
		if ( MetroEWY.labelID( ic ) ) {
			var elemIC_Box = DHTML.rawObject( MetroEWY.labelID( ic ) );
			elemIC_Box.onmouseover = onICMouseOver;
			elemIC_Box.onmousedown = onICClick;
		}
	}
}


/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	初期化
MakeBy
	1.00	2006/12/18	hical_satow
-------------------------------------------------------------------------------
}*/
function	OnInit(  )
{
	DHTML.initialize(  );
	var elemMap = DHTML.rawObject( 'MAP' );
	if ( ! DHTML.m_fIE4 ) {
		elemMap.onmouseover = arrowHide;
	}
	if ( ! DHTML.m_fIE4 ) {
		elemMap.onmousedown = popupmenuHide;
	}
	InitIC(  );
	TimerInit(  );

	formElement( 'txt_in' ).value = '';
	formElement( 'txt_out' ).value = '';
	formElement( 'txt_in' ).onchange = onChangeICTxt;
	formElement( 'txt_out' ).onchange = onChangeICTxt;
	CmbboxInit(  );
	RadiobtnInit(  );

	m_strResultInit = DHTML.rawObject( 'RESULT' ).innerHTML;

	DHTML.objectHide( 'POPUPMENU' );
	DHTML.objectHide( 'POPUPMENU_R' );

	DHTML.objectHide( 'ICON_ARROW' );
	DHTML.objectHide( 'ICON_IMG_IN' );
	DHTML.objectHide( 'ICON_VIA0' );
	DHTML.objectHide( 'ICON_VIA1' );
	DHTML.objectHide( 'ICON_VIA2' );
	DHTML.objectHide( 'ICON_IMG_OUT' );
	DHTML.objectHide( 'ICON_IMG_JCT' );

	var cache_in = formElement( 'cache_txt_in' ).value;
	var cache_out = formElement( 'cache_txt_out' ).value;
	onInMenu( cache_in );
	onOutMenu( cache_out );

	DHTML.rawObject( 'POPUPMENU_SHADOW_R' ).onmousedown = popupmenuHide;
	DHTML.rawObject( 'POPUPMENU_SHADOW_B' ).onmousedown = popupmenuHide;
	DHTML.rawObject( 'POPUPMENU_R_SHADOW_R' ).onmousedown = popupmenuHide;
	DHTML.rawObject( 'POPUPMENU_R_SHADOW_B' ).onmousedown = popupmenuHide;
	DHTML.rawObject( 'POPUPMENU_X' ).onmousedown = popupmenuHide;
	DHTML.rawObject( 'POPUPMENU_R_X' ).onmousedown = popupmenuHide;
	InitDate(  );
	m_nMode = 0;
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	タイムスタンプを取得
MakeBy
	1.00	2008/04/10	MATSUNO@JPZ
-------------------------------------------------------------------------------
}*/
function	TimeStampGet(  )
{
	var now = new Date(  );
	var yy = now.getYear(  );
	if ( yy < 2000 ) {
		yy += 1900;
	}
	var mm = ZeroPadding( now.getMonth(  ) + 1 );
	var dd = ZeroPadding( now.getDate(  ) );
	var hh = ZeroPadding( now.getHours(  ) );
	var mi = ZeroPadding( now.getMinutes(  ) );
	var ss = ZeroPadding( now.getSeconds(  ) );
	return ( yy + mm + dd + hh + mi + ss );
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	時間初期化
MakeBy
	1.00	2007/02/08	MATSUNO@JPZ
-------------------------------------------------------------------------------
}*/
function	InitDate(  )
{
	var now = new Date(  );
	now.setTime( now.getTime(  ) + 599 * 1000 );
	var now_yy = now.getYear(  );
	var now_mm = now.getMonth(  ) + 1;
	var now_dd = now.getDate(  );
	var now_hh = now.getHours(  );
	var now_mi = Math.floor( now.getMinutes(  ) / 10 ) * 10;
	if ( now_yy < 2000 ) {
		now_yy += 1900;
	}
	InitSelectMonth(  );
	var str_yymm = new String( now_yy );
	str_yymm += ZeroPadding( now_mm );
	InitSelectDay( now_yy, now_mm );
	formElement( 'yyyymm' ).value = str_yymm;
	formElement( 'dd' ).value = ZeroPadding( now_dd );
	formElement( 'hh' ).value = ZeroPadding( now_hh );
	formElement( 'mi' ).value = ZeroPadding( now_mi );
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	セレクトボックス変更時
MakeBy
	1.00	2007/02/08	MATSUNO@JPZ
-------------------------------------------------------------------------------
}*/
function	onSelectMonth( value )
{
	if ( '000000' == value ) {
		return ;
	}
	var year = Math.floor( parseInt( value ) / 100 );
	var mon  = parseInt( value ) % 100;
	InitSelectDay( year, mon );
}

/*{
-------------------------------------------------------------------------------
Type:Function
Topic.
	セレクトボックス変更
MakeBy
	1.00	2007/02/08	MATSUNO@JPZ
-------------------------------------------------------------------------------
}*/
function	InitSelectMonth(  )
{
	var now = new Date(  );
	var now_yy = now.getYear(  );
	var now_mm = now.getMonth(  ) + 1;
	if ( now_yy < 2000 ) {
		now_yy += 1900;
	}
	formElement( 'yyyymm' ).options.length = 0;
	formElement( 'yyyymm' ).options[ 0 ] = new Option( '<年月>', '000000' );
	for ( var nIdx = 0 ; nIdx < 12 ; nIdx++ ) {
		var date = new Date( now_yy, now_mm + nIdx - 1, 1 );
		var yy = date.getYear(  );
		var mm = date.getMonth(  ) + 1;
		if ( yy < 2000 ) {
			yy += 1900;
		}
		var strName = new String( yy + "年" + ZeroPadding( mm ) + "月" );
		var strValue = new String( yy + ZeroPadding( mm ) );
		formElement( 'yyyymm' ).options[ nIdx + 1 ] = new Option( strName, strValue );
	}
}
function	InitSelectDay( yy, mm )
{
	var dd = formElement( 'dd' ).value;
	var now = new Date(  );
	now.setTime( now.getTime(  ) + 599 * 1000 );
	var now_yy = now.getYear(  );
	var now_mm = now.getMonth(  ) + 1;
	var now_dd = now.getDate(  );
	if ( now_yy < 2000 ) {
		now_yy += 1900;
	}
	formElement( 'dd' ).options.length = 0;
	formElement( 'dd' ).options[ 0 ] = new Option( '<日>', '00' );
	formElement( 'dd' ).value = '00';
	var nIdxDay = 1;
	for ( var nIdx = 1 ; nIdx < 33 ; nIdx++ ) {
		var date = new Date( yy, mm - 1, nIdx );
		if ( nIdx != date.getDate(  ) ) {
			break ;
		}
		if ( now_yy == yy && now_mm == mm && nIdx < now_dd ) {
			continue ;
		}
		var strName = new String( ZeroPadding( date.getDate(  ) ) + "日" );
		var strValue = new String( ZeroPadding( date.getDate(  ) ) );
		formElement( 'dd' ).options[ nIdxDay ] = new Option( strName, strValue );
		formElement( 'dd' ).options[ nIdxDay ].style.color = "#000000";
		switch ( date.getDay(  ) ) {
		  case 0 :
			formElement( 'dd' ).options[ nIdxDay ].style.color = "#ff0000";
			break ;
		  case 6 :
			formElement( 'dd' ).options[ nIdxDay ].style.color = "#0000ff";
		  default :
			if ( isPublicHoliday( yy, mm, nIdx, date.getDay(  ) ) ) {
				formElement( 'dd' ).options[ nIdxDay ].style.color = "#ff0000";
			}
			break ;
		}
		if ( dd == nIdx ) {
			formElement( 'dd' ).value = dd;
		}
		nIdxDay++;
	}
}

/*{
--------------------------------------------------------------------------------
Type:Function
Topic.
	JCTアイコン表示
MakeBy
	1.00	2007/02/27	MATSUNO@JPZ
--------------------------------------------------------------------------------
}*/
function	onJunctionClick( x, y )
{
	var pos = mapOnPos(  );
	pos.x += ( x - c_nSizeIconJCT / 2 );
	pos.y += ( y - c_nSizeIconJCT / 2 );
	DHTML.shiftTo( 'ICON_JCT', pos );
	DHTML.objectShow( 'ICON_IMG_JCT' );
}

/*{
--------------------------------------------------------------------------------
Type:Function
Topic.
	祝日判定(国民の休日未対応)
MakeBy
	1.00	2007/02/08	MATSUNO@JPZ
	1.10	2009/04/14	iwaiwa
			春分、秋分の日、国民の休日対応
--------------------------------------------------------------------------------
}*/
function	isPublicHoliday( year, mon, day, wday )
{
	if ( 1 == mon ) {
		if ( 1 == day || ( 2 == day && 1 == wday ) ) return ( true );
		if ( 1 == Math.floor( ( day - 1 ) / 7 ) && 1 == wday ) return ( true );
	}
	else if ( 2 == mon ) {
		if ( 11 == day || ( 12 == day && 1 == wday ) ) return ( true );
	}
	else if ( 3 == mon && year < 2023 ) {
//		if ( year % 4 < 2 ) {
//			if ( 20 == day || ( 21 == day && 1 == wday ) ) return ( true );
//		}
//		else {
//			if ( 21 == day || ( 22 == day && 1 == wday ) ) return ( true );
//		}
		//春分の日(1980-2099対応版)
		if (day == (Math.floor(20.8431+0.242194*(year-1980))-Math.floor((year-1980)/4))){
			return ( true );
		}
		//振り替え休日(春分の日)
		if (day -1 ==(Math.floor(20.8431+0.242194*(year-1980))-Math.floor((year-1980)/4)) && 1== wday) {
			return ( true );
		}
	}
	else if ( 4 == mon ) {
		if ( 29 == day || ( 30 == day && 1 == wday ) ) return ( true );
	}
	else if ( 5 == mon ) {
//		if ( 3 == day || 4 == day || 5 == day || ( 6 == day && 1 == wday ) ) {return ( true )};
//	}
		if ( 3 == day || 4 == day || 5 == day || ( 6 == day && (1 == wday || 2 == wday || 3 == wday) )) {
			return ( true );
		}
	}
	else if ( 7 == mon ) {
		if ( 2 == Math.floor( ( day - 1 ) / 7 ) && 1 == wday ) return ( true );
	}
	else if ( 9 == mon ) {
		if ( 2 == Math.floor( ( day - 1 ) / 7 ) && 1 == wday ) return ( true );
//		if ( year < 2009 ) {
//			if ( 23 == day || ( 24 == day && 1 == wday ) ) return ( true );
//		}
		//秋分の日(1980-2099対応版)
		if (day == (Math.floor(23.2488+0.242194*(year-1980))-Math.floor((year-1980)/4))){
			return ( true );
		}
		//振り替え休日(秋分の日)
		if (day -1 ==(Math.floor(23.2488+0.242194*(year-1980))-Math.floor((year-1980)/4)) && 1== wday) {
			return ( true );
		}
		//国民の休日
		if ( wday == 2 && day+1 == (Math.floor(23.2488+0.242194*(year-1980))-Math.floor((year-1980)/4))) {
			return ( true );
		}
	}
	else if ( 10 == mon ) {
		if ( 1 == Math.floor( ( day - 1 ) / 7 ) && 1 == wday ) return ( true );
	}
	else if ( 11 == mon ) {
		if (  3 == day || (  4 == day && 1 == wday ) ) return ( true );
		if ( 23 == day || ( 24 == day && 1 == wday ) ) return ( true );
	}
	else if ( 12 == mon ) {
		if ( 23 == day || ( 24 == day && 1 == wday ) ) return ( true );
	}
	return ( false );
}

/*{
--------------------------------------------------------------------------------
Type:Function
Topic.
	透過png対応ブラウザ判定
MakeBy
	1.00	2007/02/09	MATSUNO@JPZ
--------------------------------------------------------------------------------
}*/
var c_strOS      = "";
var c_strBrowser = "";
var c_nVersion   = 0;

function	isPngBrowser(  )
{
	if ( 0 == c_nVersion ) {
		BrowserEnvGet(  );
	}
	if ( 'IE' == c_strBrowser && c_nVersion < 7 ) return ( false );
	return ( true );
}

function	isFireFox(  )
{
	if ( 0 == c_nVersion ) {
		BrowserEnvGet(  );
	}
	if ( 'FF' == c_strBrowser ) return ( true );
	return ( false );
}

function	isInternetExplorer(  )
{
	if ( 0 == c_nVersion ) {
		BrowserEnvGet(  );
	}
	if ( 'IE' == c_strBrowser ) return ( true );
	return ( false );
}

function	BrowserEnvGet(  )
{
	var ua  = navigator.userAgent.toUpperCase(  );
	var app = navigator.appName.toUpperCase(  );
	if ( ua.indexOf( 'MAC' ) >= 0 ) c_strOS = 'MAC';
	else if ( ua.indexOf( 'WIN' ) >= 0 ) c_strOS = 'WIN';
	else if ( ua.indexOf( 'X11' ) >= 0 ) c_strOS = 'UNIX'
	if ( ua.indexOf( 'SAFARI' ) >= 0 ) {
		c_strBrowser = 'SF';
		c_nVersion = 1;
		var nIdx = ua.indexOf( 'SAFARI/', 0 );
		var nNo  = perseInt( ua.substring( nIdx + 7, nIdx + 99 ) );
		if ( nNo >= 400 ) {
			c_nVersion = 2;
		}
	}
	else if ( ua.indexOf( 'OPERA' ) >= 0 ) {
		c_strBrower = 'OP';
		var nIdx  = ua.indexOf( 'OPERA', 0 ) + 6;
		var nIdx2 = ua.indexOf( ' ', nIdx );
		c_nVersion = parseFloat( ua.substring( nIdx, nIdx2 ) );
	}
	else if ( ua.indexOf( 'FIREFOX' ) >= 0 ) {
		c_strBrowser = 'FF';
		var nIdx = ua.indexOf( 'FIREFOX', 0 ) + 8;
		c_nVersion = parseFloat( ua.substring( nIdx, nIdx + 3 ) );
	}
	else if ( app.indexOf( 'NETSCAPE' ) >= 0 ) { 
		c_strBrowser = 'NN';
		var nIdx = navigator.appVersion.indexOf( ' ', 0 );
		c_nVersion = eval( navigator.appVersion.subString( 0, nIdx ) );
		if ( c_nVersioni >= 5 ) {
			c_nVersion++;
		}
	}
	else if ( app.indexOf( 'MICROSOFT' ) >= 0 ) {
		c_strBrowser = 'IE';
		var nIdx  = navigator.appVersion.indexOf( 'MSIE ', 0 ) + 5;
		var nIdx2 = navigator.appVersion.indexOf( ';', nIdx );
		c_nVersion = eval( navigator.appVersion.substring( nIdx, nIdx2 ) );
	}
}

