/**
	@file
	hyp_main_window.js <br/>
	メインウィンドウファイル <br/>
	<br/>
	DEPENDENCIES <br/>
	 - hyp_view.js <br/>
	
	@breif main
	@author m-okuda
	@version 1.0.0.0
	@since  24/07/2007
	$Revision: $
*/

var hypView = null;		//< Viewオブジェクト


/**
	Windowロード時イベント

	@brief Windowロード時イベント

*/
function initialize(){
	// Viewオブジェクト生成

	hypView = new HypView();
	// 駅名入力テキストボックス取得

	aryNode = $( 'dep_node', 'arv_node', 'via_node01', 'via_node02', 'via_node03' );
		for( i = 0 ; i < aryNode.length ; ++i ){
			if (navigator.userAgent.indexOf("MSIE")>0) {
				aryNode[ i ].autocomplete="off";
			}
			hypView.completion.setCompletion( aryNode[ i ], "searchButton" );
		}
	// 駅候補コンボボックス取得

    selectNode = $( 'inner_window_select' );
	// 初期設定
	// setIntervalは配列インデックスが変数では設定できない
	setInterval( 'hypView.setNodeName( aryNode[ 0 ] )', 500 );
	setInterval( 'hypView.setNodeName( aryNode[ 1 ] )', 500 );
	setInterval( 'hypView.setNodeName( aryNode[ 2 ] )', 500 );
	setInterval( 'hypView.setNodeName( aryNode[ 3 ] )', 500 );
	setInterval( 'hypView.setNodeName( aryNode[ 4 ] )', 500 );
	
/*--- m-okuda ADD↓--------------------------------------------------------------------------------------------------*/
	
	// GOLF検索ノード登録
	aryNodeGolf = $( 'golf_dep_node', 'golf_arv_node', 'golf_via_node01', 'golf_via_node02', 'golf_via_node03' );
	// GOLFノードが見つかった場合のみ(英語版・中国語版にはGOLFがないため)
	if(aryNodeGolf[0] != null) {
		for( var j = 0 ; j < aryNodeGolf.length ; ++j ){
			hypView.completion.setCompletion( aryNodeGolf[ j ], "golf_searchButton" );
		}
		setInterval( 'hypView.setNodeName( aryNodeGolf[ 0 ] )', 500 );
		setInterval( 'hypView.setNodeNameGolf( aryNodeGolf[ 1 ] )', 500 );
		setInterval( 'hypView.setNodeName( aryNodeGolf[ 2 ] )', 500 );
		setInterval( 'hypView.setNodeName( aryNodeGolf[ 3 ] )', 500 );
		setInterval( 'hypView.setNodeName( aryNodeGolf[ 4 ] )', 500 );
	}
	
	golfAreaNode = $( 'golf_area_node' );
	// GOLFノードが見つかった場合のみ(英語版・中国語版にはGOLFがないため)
	if(golfAreaNode != null) {
		hypView.completion.setCompletion( golfAreaNode, "golf_areaSearchButton" );
		setInterval( 'hypView.setNodeName( golfAreaNode )', 500 );
	}

/*--- m-okuda ADD↑--------------------------------------------------------------------------------------------------*/
	
	
	// 現在時刻設定
	hypView.setTime();

	// 初期Focus設定
	$('dep_node').focus();
};

/**
	経路検索実行

	@brief 経路検索実行

*/
function searchRoute(){
	if ($F('lc_lang') == 'en') {
		elementValueToUpperCase( $('dep_node') );
		elementValueToUpperCase( $('arv_node') );
		elementValueToUpperCase( $('via_node01') );
		elementValueToUpperCase( $('via_node02') );
		elementValueToUpperCase( $('via_node03') );
	}

	hypView.searchRoute();
};

function elementValueToUpperCase(element){
	if (element.value == '') return;
	element.value = element.value.toUpperCase();
};

/**
	発着駅入替
	@brief 発着駅入替
*/
function reverseNode(){
	hypView.reverseNode();
};

/**
	駅クリア
	@brief 駅クリア
*/
function clearNode(){
	hypView.clearNode();
};


/**
	駅候補インナーウィンドウを閉じる
	@brief 駅候補インナーウィンドウを閉じる
*/
function closeInnerWindow(){
	$( 'inner_window' ).hideWindow();
	var select = $( 'inner_window_select' );
	if( select != null ){
		select.length = 0;
		select.__visible = 0;
	}
};

/**
	座席料金コンボボックスが変更の時、金額の内容は変更もし。

	@brief 座席料金コンボボックスが変更の時、金額の内容は変更もし。

	@param no 経路索引（１～10）

*/
function doOnRateChange(no){
	//座席料金コンボボックスの値を取得します

	var rates = document.getElementsByName("rate_range[" + no + "]");
	var sum = 0;
	for(var i = 0; i < rates.length; i++) {
		// 座席料金コンボボックスの値は合計する

		sum += parseInt(rates[i].options[rates[i].selectedIndex].value,10);
	}
	//運賃の値を取得します、「,」は""を変更する
	var fareUnqin = $("fare_unqin"+ no).innerHTML.replace(/,/g,"");
	//料金の値は座席料金コンボボックスの合計値を設定する

	$("fare_ryokin"+ no).innerHTML = formatData(sum);
	//経路の合計値に「料金の値＋運賃の値」を設定する

	$("fare_total" + no).innerHTML = formatData(sum + parseInt(fareUnqin,10));
}

/**
	金額の内容フォーマット

	@brief 金額の内容フォーマット(例:①999,999,999;②4,500;③350)
	@param sum 金額

*/
function formatData(sum){
	var number = new Number(sum);
	var strNum = number.toString();
	//金額の長さ

	var length = strNum.length;
	var value = strNum;
	if (length > 6) {
		value = strNum.substring(0,length-6) + "," + strNum.substring(length-6,length-3) + "," + strNum.substring(length-3);
		return value;
	} else if (length > 3) {
		value = strNum.substring(0,length-3) + "," + strNum.substring(length-3);
		return value;
	} else {
		return value;
	}
}
/**
	座席料金コンボボックス初期化表示時

	@brief 全部経路の座席料金コンボボックスの座席指定の順は「指定席 → 自由席 → グリーン席 」です

*/
function initRateRangeSelect() {
	var fareTotal = $("result_count");
	if (fareTotal == null || fareTotal == undefined){
		return;
	}
	for (var i = 1; i <= fareTotal.value;i++) {
		// 該当経路の座席料金コンボボックスを取得します

		var ratesNumber = document.getElementsByName("rate_range[" + i + "]");
		// 遍歴該当経路の座席料金コンボボックス
		for(var j = 0; j < ratesNumber.length; j++) {
			var selected = -1;
			// 遍歴該当座席料金コンボボックスのオプション
			for (var k = 0; k < ratesNumber[j].length;k++) {
				//該当経路の座席料金コンボボックスのオプションのlabel属性値を取得する

				var label = ratesNumber[j].options[k].title;
				// 指定席がある場合

				if (label.indexOf("reserved") >= 0) {
					selected = k;
					break;
				}
			}
			// 指定席がない場合

			if (selected == -1) {
				for (var k = 0; k < ratesNumber[j].length;k++) {
					var label = ratesNumber[j].options[k].title;
					//自由席がある場合

					if (label.indexOf("free") >= 0) {
						selected = k;
						break;
					}
				}
			}
			//指定席と自由席がない場合

			if (selected == -1) {
				for (var k = 0; k < ratesNumber[j].length;k++) {
					var label = ratesNumber[j].options[k].title;
					// グリン席がある場合

					if (label.indexOf("green") >= 0) {
						selected = k;
						break;
					}
				}
			}
			//指定席と自由席、グリン席がないの場合

			if (selected == -1) {
				selected = 0;
			}
			ratesNumber[j].selectedIndex=selected;
		}
		doOnRateChange(i);
	}
}
/**
	定期券を表示
	@brief 定期券を表示。

	@param 定期券Id
*/
function showhide(divId) {
	var id = $(divId);
	if (id.style.display != "block")
	{
		eval("id.style.display = 'block';");
	}
	else
	{
		eval("id.style.display = 'none';");
	}
}


function closeTipOnSearch(){	
if ($("TIPFrm") != null && $("TIPFrm") != undefined){
		document.body.removeChild($("TIPFrm"));
	}

}

function closeGoogleTipOnSearch(){	
if ($("CKTIPFrm") != null && $("CKTIPFrm") != undefined){
		document.body.removeChild($("CKTIPFrm"));
	}

}

function changeTd(no){	
	showhide("reg" + no);
	showhide("link" + no);
	showhide("reg_" + no + 1);
	showhide("reg_" + no + 3);
	showhide("reg_" + no + 6);
	var nodeCount = $("node_count" + no);
	if (nodeCount == null || nodeCount == undefined){
		return;
	}
	for (var i = 1; i <= nodeCount.value;i++) {
		showhide("nodeReg_" + no + i + 1);
		showhide("nodeReg_" + no + i + 3);
		showhide("nodeReg_" + no + i + 6);
		showhide("nodeLink_" + no + i);
		if (i < nodeCount.value) {
			showhide("trainReg_" + no + i + 1);
			showhide("trainReg_" + no + i + 3);
			showhide("trainReg_" + no + i + 6);
			showhide("trainLink_" + no + i);
		}
	}
	showhide("img" + no + "1");
	showhide("img" + no + "2");	
}

/**
	検索条件を表示	
*/
function showSearch(){

	var scerchetail = $( 'search_detail' );
	if(scerchetail.style.display == "none"){
		eval("scerchetail.style.display = 'block';");
	}else if(scerchetail.style.display == "block"){		
		eval("scerchetail.style.display = 'none';");
	}
} 


/*--- m-okuda ADD↓--------------------------------------------------------------------------------------------------*/

function showSearchTarget( target ){
	var target = $( target );
	if( target.style.display == "none" ){
		eval( "target.style.display = 'block';" );
	}else if( target.style.display == "block" ){
		eval( "target.style.display = 'none';" );
	}
}


/**
	エリア検索実行
	@brief エリア検索実行
*/
function searchArea(){
	var param = hypView.getQueryGolfArea();
	if( param != '' ){
		var url = GOLF_AREA_SEARCH_PAGE + '?' + encodeURI( param );
		window.open( url, '_self' );
		return ( true );
	}
	return ( false );
}


/**
	ゴルフ経路検索実行
	@brief ゴルフ経路検索実行
*/
function searchRouteGolf(){
	var param = hypView.getQueryGolfRoute();
	if( param != '' ){
		var url = GOLF_ROUTE_SEARCH_PAGE + '?' + encodeURI( param );
		window.open( url, '_self' );
		return ( true );
	}
	return ( false );
}

/*--- m-okuda ADD↑--------------------------------------------------------------------------------------------------*/


/*
 * Copyright (c) 2007-2008 by Hitachi Systems,Ltd. All Rights Reserved.
 * Consult your license regarding permissions and restrictions.
 */

