/**
	@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();
	
	setRequestValue();
    
	hypView.setProgressBar();
	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 );
	// 現在時刻設定

	//hypView.setTime();

	
};

function reverseNode(){
	hypView.reverseNode();
};

function setRequestValue(){
	var urlParts = document.URL.split("?"); 
	var parameterParts = urlParts[1].split("&"); 
	var argusArray = new Array();
	while(parameterParts.length >0){  
		var cellValue = parameterParts.shift();
		var pairParts = cellValue.split("="); 
		var pairName = pairParts[0];
		var pairValue = pairParts[1];
		
		argusArray[pairName] = decodeURIComponent(pairValue);		
	}

	$( 'title1' ).innerHTML = getInfoHtml(argusArray);
	$( 'dep_node').value=argusArray["dep_node"];
	$( 'arv_node').value=argusArray["arv_node"];
	$( 'via_node01').value=argusArray["via_node01"];
	$( 'via_node02').value=argusArray["via_node02"];
	$( 'via_node03').value=argusArray["via_node03"];
	$( 'sort').selectedIndex=argusArray["sort"];
	$( 'search_way').selectedIndex=argusArray["search_way"];
	$( 'max_route').selectedIndex=(argusArray["max_route"])-1;
	$( 'search_type').selectedIndex=argusArray["search_type"];

	if( argusArray["airplane"] == "off" ){ $( 'airplane' ).checked = false; }
	if( argusArray["ship"] == "off" ){ $( 'ship' ).checked = false; }
	if( argusArray["sprexprs"] == "off" ){ $( 'sprexprs' ).checked = false; }
	if( argusArray["sprnozomi"] == "off" ){ $( 'sprnozomi' ).checked = false; }
	if( argusArray["utrexprs"] == "off" ){ $( 'utrexprs' ).checked = false; }
	if( argusArray["slputr"] == "off" ){ $( 'slputr' ).checked = false; }
	if( argusArray["exprs"] == "off" ){ $( 'exprs' ).checked = false; }
	if( argusArray["slpexprs"] == "off" ){ $( 'slpexprs' ).checked = false; }
	if( argusArray["liner"] == "off" ){ $( 'liner' ).checked = false; }
	if( argusArray["regular"] == "off" ){ $( 'regular' ).checked = false; }
	if( argusArray["bus"] == "off" ){ $( 'bus' ).checked = false; }
	if( argusArray["walk"] == "off" ){ $( 'walk' ).checked = false; }
	if( argusArray["jr"] == "off" ){ $( 'jr' ).checked = false; }
	if( argusArray["privately"] == "off" ){ $( 'privately' ).checked = false; }

//	var datenow = new Date();
//	var year = datenow.getYear();
//	
//	if( year < 2000 ){ year += 1900; }
//	// 年
//	var selectYear = $( 'year' );
//	selectYear.options[ 0 ] = new Option( year - 1, year - 1 );
//	selectYear.options[ 1 ] = new Option( year, year );
//	selectYear.options[ 2 ] = new Option( year + 1, year + 1 );
//	if(argusArray["year"] == (year - 1)){
//		selectYear.selectedIndex = 0;
//	}
//	if(argusArray["year"] == year ){
//		selectYear.selectedIndex = 1;
//	}
//	if(argusArray["year"] == (year + 1) ){
//		selectYear.selectedIndex = 2;
//	}
//	
//	$( 'month' ).selectedIndex = argusArray["month"]-1;
//	$( 'day' ).selectedIndex = argusArray["day"]-1;
//	$( 'hour' ).selectedIndex = argusArray["hour"];
//	$( 'minute' ).selectedIndex = argusArray["minute"];
	
	$('ymSel').value = argusArray["year"] + argusArray["month"];

	var lc_lang = $F('lc_lang');
	var hdc = new HypDateCombo(lc_lang);

	var daySel = $('day');
	hdc.adjustMaxDay( $( 'ymSel' ).value, daySel );
	daySel.value = argusArray["day"];
	
	$('hour').value = argusArray["hour"];
	$('minute').value = argusArray["minute"];

	setYearMonthElm();
};

function getInfoHtml(argusArray) {
	var lc_lang = $F('lc_lang');
	var locale = new HypLocale(lc_lang);

	var info = '<span class="text_b_indent">' + argusArray["dep_node"] + 
					' - ' + argusArray["arv_node"] + '</span>&nbsp;&nbsp;&nbsp;';

	switch(lc_lang) {
	case 'ja':
	case 'zh':
	 	info += argusArray["year"] + YEAR + argusArray["month"] + MONTH
	 				 + argusArray["day"] + DAY ;
	 	info += argusArray["hour"] + HOUR+ argusArray["minute"] + MINUTE;
	 	break;
	 case 'en':
	 	var m = parseInt(argusArray["hour"],10);
	 	var mChar = locale.hourCharConverter(m);
	 	mChar = (mChar < 10) ? "0" + mChar : mChar;
	 	info += mChar + ':' + argusArray["minute"] + '&nbsp;';
	 	if (m < 12) {
		 	info += locale.amHourChr;
		} else {
		 	info += locale.pmHourChr;
		}
		info += "&nbsp;&nbsp;";
		info += locale.monthCharConverter(parseInt(argusArray["month"],10)) + '/';
		info += argusArray["year"] + '/' + argusArray["day"];
		break;
	default:
		break;
	}

	if (argusArray["search_type"] == 0) {
		info += "&nbsp;&nbsp;" + DEP;
	}
	if (argusArray["search_type"] == 1) {
		info += "&nbsp;&nbsp;" + ARV;
	}
	if (argusArray["search_type"] == 2) {
		info += "&nbsp;&nbsp;" + AVE;
	}

	return info;
};

/**
	経路検索実行
	@brief 経路検索実行
*/
function searchShowRoute(){
	hypView.searchShowRoute();
	
};

function elementValueToUpperCase(element){
	if (element.value == '') return;
	element.value = element.value.toUpperCase();
};

function searchShowRouteNoGoogleAgain() {
	if ($F('lc_lang') == 'en') {
		elementValueToUpperCase( $('dep_node') );
		elementValueToUpperCase( $('arv_node') );
		elementValueToUpperCase( $('via_node01') );
		elementValueToUpperCase( $('via_node02') );
		elementValueToUpperCase( $('via_node03') );
	}

	hypView.searchShowRouteNoGoogleAgain();
};

function searchShowRouteAgain(){
	hypView.searchShowRouteAgain();
	
};

function returnIndex(){
	if (window.history.length > 0)
		window.history.back();
	else
		window.location.href= INDEX_HTML;
};

/**
	座席料金コンボボックスが変更の時、金額の内容は変更もし。
	@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 = document.getElementById(divId);
	var isie = document.all?true:false;
	if (id != null && id != undefined) {
		if (id.style.display == "none")
		{
			if (isie){
				eval("id.style.display = 'block';");
			} else {
				eval("id.style.display = 'table-cell';");
			}
		}
		else
		{
			eval("id.style.display = 'none';");
		}
	}
}

function changeTd(no){	
	showhide("reg" + no);
	showhide("link" + no);
	showhide("reg_" + no + 1);
	showhide("reg_" + no + 3);
	showhide("reg_" + no + 6);
	for(var i = 1;i<=4;i++) {
		showhide("nodeStart" + no + i);
		showhide("nodeLast" + no + i);
		showhide("special" + no + "0" + i);
		showhide("special" + no + "1" + i);
	}
	
	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 closeTipOnSearch(){	
if ($("TIPFrm") != null && $("TIPFrm") != undefined){
		document.body.removeChild($("TIPFrm"));
	}

}

function closeGoogleTipOnSearch(){	
if ($("CKTIPFrm") != null && $("CKTIPFrm") != undefined){
		document.body.removeChild($("CKTIPFrm"));
	}

}

/*
 * Copyright (c) 2007-2008 by Hitachi Systems,Ltd. All Rights Reserved.
 * Consult your license regarding permissions and restrictions.
 */

