
// ツールバーなどを消したポップアップ窓を生成。
function popUpWindowOpen(url, name) {

	window.open(url, name, "status=no,directories=no,toolbar=no,menubar=no,scrollbars=yes");
}

// ツールバーなどを消したポップアップ窓を生成。
function popUpWindowOpenSize(url, name,size) {

	var sizeStr;
	if(size != null){
		sizeStr = size + ","
	}

	var option = sizeStr + "status=no,directories=no,toolbar=no,menubar=no,scrollbars=yes,resizable=yes";

	window.open(url, name, option);
}

// ツールバーなどを消したポップアップ窓を生成
// ダイアログで返されるreturnValueを返す(モーダル)
function popUpWindowModalSize(url, name, size) {

	var sizeStr;
	if(size != null){
		sizeStr = size + ","
	}

	var option = sizeStr + "status:no;scroll:yes;resizable:yes;";

	var result = window.showModalDialog(url, name, option);

	return result;
}

// Disabled処理
$.fn.disable = function() {
	return this.each(function() {
		if ( typeof this.disabled != "undefined") this.disabled = true;
	});
}

function getYmOptionEn(y,m) {
	var iM = parseInt(m);
	var mEn = "";
	switch(iM){
		case  1: mEn = "Jan"; break;
		case  2: mEn = "Feb"; break;
		case  3: mEn = "Mar"; break;
		case  4: mEn = "Apr"; break;
		case  5: mEn = "May"; break;
		case  6: mEn = "Jun"; break;
		case  7: mEn = "Jul"; break;
		case  8: mEn = "Aug"; break;
		case  9: mEn = "Sep"; break;
		case 10: mEn = "Oct"; break;
		case 11: mEn = "Nov"; break;
		case 12: mEn = "Dec"; break;
    }
	return new Option(mEn+" "+y, y + "" + m);
}

function isValidDate(y,m,d){
	var dt = new Date(y,m-1,d);
	if(dt.getFullYear() == y && dt.getMonth() == m-1 && dt.getDate() == d){
		return true;
	}
	return false;
}

function fmtMdhmsElm(d){
	return ( d < 10 ? "0" : "") + d;
}

//
// DP対応
//

function selectHeijitui() {
	document.getElementById("heijituKyuzenjituSetei").style.display = "inline";
	document.getElementById("yobiSetei").style.display = "none";
}

function selectYobi() {
	document.getElementById("heijituKyuzenjituSetei").style.display = "none";
	document.getElementById("yobiSetei").style.display = "inline";
}

//現在日時の取得(ホテル)
function getNowDateTime() {
	var objDate = new Date;
	return objDate.getFullYear()
		+ fmtMdhmsElm(objDate.getMonth() +1)
		+ fmtMdhmsElm(objDate.getDate())
		+ fmtMdhmsElm(objDate.getHours())
		+ fmtMdhmsElm(objDate.getMinutes())
		+ fmtMdhmsElm(objDate.getSeconds());
}

//要素の活性、非活性を設定(ホテル)
function setDisable(elementId, status) {
	if (status) {
		var obj = $('#' + elementId);
		obj.addClass('disabled');
		obj.attr('disabled',true);
	}
	else {
		var obj = $('#' + elementId);
		obj.removeClass('disabled');
		obj.attr('disabled',false);
	}
}

/**
 * 路線シートタイプ別空席表のデータを ajax を利用して取得する。
 *
 * 静的ページでも使用可能。以下のヘッダ情報を記述すること。
 *   <script src="/x/bus/share/js/jquery.min.js" type="text/javascript" ></script>
 *   <script src="/x/bus/share/js/common.js" type="text/javascript"></script>
 *
 * @param params 空席表データを取得するために必要なマップ(JSON)形式パラメータ
 *  params.uri           空席表 Action を呼び出す絶対URI
 *  params.id            取得したデータを表示する箇所の id 属性を指定する。ページ内で一意な値であること。
 *  params.rosenId       路線ID
 *  params.seattypeIds   シートタイプID(任意、カンマ区切で複数指定可)
 *  params.shupatuDtFrom 出発日(From) yyyymmdd
 *  params.shupatuDtTo   出発日(To) yyyymmdd
 *  params.hyojiKikan    表示期間
 *  params.campaignIds   キャンペーンID(任意、カンマ区切で複数指定可)
 *  params.addDate       N日後
 *  params.hyojiType     表示タイプ
 *  params.mid           マーケティングID(任意)
 *
 * 使用例：
 *	<script type="text/javascript">
 *	<!--
 *		getRosenSeattypeBetuKusekiHyo({
 *			uri           : 'http://localhost/bus/pc/3/yoyaku/rosenSeattypeBetuKusekiHyo/',
 *			id            : 'rosenA',
 *			rosenId       : '1',
 *			seattypeIds   : '',
 *			shupatuDtFrom : '20090930',
 *			shupatuDtTo   : '20091011',
 *			hyojiKikan    : '5',
 *			campaignIds   : '',
 *			addDate       : '',
 *			hyojiType     : '',
 *			mid           : '',
 *			kusekiKensakuFlg : '1',
 *			toggleFlg : ''
 *		});
 *	-->
 *	</script>
 *
 */
function getRosenSeattypeBetuKusekiHyo(params) {
	$.get(
		params.uri + (params.uri.indexOf('?') < 0 ? '?' : '&') + 't=' + new Date().getTime(),
		{
			rosenId       : params.rosenId,
			seattypeIds   : params.seattypeIds,
			shupatuDtFrom : params.shupatuDtFrom,
			shupatuDtTo   : params.shupatuDtTo,
			hyojiKikan    : params.hyojiKikan,
			campaignIds   : params.campaignIds,
			addDate       : typeof params.addDate != 'undefined' ? params.addDate : '',
			hyojiType     : typeof params.hyojiType != 'undefined' ? params.hyojiType : '',
			hayawariType  : typeof params.hayawariType != 'undefined' ? params.hayawariType : '',
			mid           : params.mid,
			kusekiKensakuFlg : typeof params.kusekiKensakuFlg != 'undefined' ? params.kusekiKensakuFlg : '1',
			toggleFlg : typeof params.toggleFlg != 'undefined' ? params.toggleFlg : ''
		},
		function(messages) {
			$('#' + params.id).replaceWith(messages);
		}
	);
}

/**
 * 路線最安値表示部品を ajax を利用して取得する。
 */
function getRosenSaiyasuneDaikin(params) {
	getRosenSeattypeBetuKusekiHyo(params);
}

//003040(【WiLL】便一覧等でのＪｓの配置についての調査 のお願い) 対応
function initPage(){
	document.aFrame.location.href = 'http://www.jejuair.net/jejuair/tourinfo/hidden.jsp?height='+document.body.scrollHeight;
}

/* Cookie への書き出し
   引数 key   : データキー （半角英数 _ のみ）
   引数 value : データの値（日本語可）
   引数 days  : データを保持する日数（ 0 の時は有効期限は省略）
   引数 path  : cookieを取得できるページの範囲を指定 */
function writeCookie(key, value, days, path) {
	var str = key + "=" + escape(value) + ";";          // 書き出す値１ : key=value
	if (days != 0) {                                    /* 日数 0 の時は省略 */
		var dt = new Date();                            // 現在の日時
		dt.setDate(dt.getDate() + days);                // days日後の日時
		str += "expires=" + dt.toGMTString() + ";";     // 書き出す値２ : 有効期限
	}
	str += "path=" + path + ";";                        // 書き出す値３ : パス
	document.cookie = str;                              // Cookie に書き出し
}

/* Cookie の読み込み
   引数 key : 求める値のキー
   戻り値   : 値（ない時は空文字""）*/
function readCookie(key) {
	var sCookie = document.cookie;                      // Cookie文字列
	var aData = sCookie.split(";");                     // ";"で区切って"キー=値"の配列にする
	var oExp = new RegExp(" ", "g");                    // すべての半角スペースを表す正規表現
	key = key.replace(oExp, "");                        // 引数keyから半角スペースを除去

	var i = 0;
	while (aData[i]) {                                  /* 語句ごとの処理 : マッチする要素を探す */
		var aWord = aData[i].split("=");                // さらに"="で区切る
		aWord[0] = aWord[0].replace(oExp, "");          // 半角スペース除去
		if (key == aWord[0]) return unescape(aWord[1]); // マッチしたら値を返す
		if (++i >= aData.length) break;                 // 要素数を超えたら抜ける
	}
	return "";                                          // 見つからない時は空文字を返す
}
