/*
 * @include "DDP_Framework.js"
 * @include "DDP_Search.js"
 */
 
/**
 * @fileOverview 航空TOP画面の機能を保有するファイルです。
 */

(function() {
/**
 * AirTop コンストラクタの定義
 * @class 航空TOP画面を操作するためのクラスです。
 * @constructor
 */
DDP.Search.AirTop = function() {
};
/** IDハッシュ */
DDP.Search.AirTop.idList = null;
/** 既定値ハッシュ */
DDP.Search.AirTop.def = null;
/** ANA情報 */
DDP.Search.AirTop.ANA = null;
/** リンクイベント種別 */
DDP.Search.AirTop.LinkEventType = {
	AddHotel   : 0,
	RemoveHotel: 1,
	AddCar     : 2,
	RemoveCar  : 3,
	AirReturn    : 100,
	HotelRoomMeal: 101,
	CarEnd       : 102,
	CarDetail    : 103
};
/** 入力連動種別 */
DDP.Search.AirTop.CascadeType = {
	Capacity       : 0,
	DateGo         : 10,
	DateRe         : 11,
	AirGoSeat      : 20,
	AirGoArr       : 30,
	AirBackDep     : 31,
	AirGoDep       : 32,
	AirBackArr     : 33,
	Prefecture     : 40,
	SubArea        : 41,
	CarStartArea   : 50,
	CarStartSubArea: 51,
	CarStartOffice : 52,
	CarEndArea     : 60,
	CarEndSubArea  : 61,
	SearchButton   : 100
};
/**
 * タイトル設定
 */
DDP.Search.AirTop.TitleConfigs = {
	opened: '条件を指定',
	closed: 'も追加する'
};
// local symbol
var getN = DDP.getNode, addE = DDP.addEvent, idMgr = DDP.Search.idManager, setV = DDP.setVisible,
	CT = DDP.Search.AirTop.CascadeType, LET = DDP.Search.AirTop.LinkEventType, TC = DDP.Search.AirTop.TitleConfigs;
/**
 * 航空TOP画面の初期化を行う
 */
DDP.Search.AirTop.prototype.init = function() {
	if (DDP.Search.AirTop.ANA) {
		this.moveAnaSite();
		return;
	}
	var __this = this;
	var ctrls = this.ctrls = {
		bsc: {
			headCount:{ ddl: getN(idMgr['head_count']), field: getN('head_count_field') },
			dateGo:   { ddl: getN(idMgr['date_go']),    field: getN('date_go_field') },
			dateRe:   { ddl: getN(idMgr['date_re']),    field: getN('date_re_field') }
		},
		air: {
			title: getN('h2-air'), content: getN('h2-air-table'),
			go: {
				dep:  { ddl: getN(idMgr['air_go_dep']), field: getN('air_go_dep_field') },
				arr:  { ddl: getN(idMgr['air_go_arr']), field: getN('air_go_arr_field') },
				seat: { ddl: getN(idMgr['air_go_seat']), field: null }
			},
			re: {
				field: getN('air_re_area'),
				dep:  { ddl: getN(idMgr['air_re_dep']), field: getN('air_re_dep_field') },
				arr:  { ddl: getN(idMgr['air_re_arr']), field: getN('air_re_arr_field') },
				seat: { ddl: getN(idMgr['air_re_seat']), field: null }
			},
			searchJal: getN(idMgr['search_bttn_jal']),
			searchAna: getN(idMgr['search_bttn_ana']),
			switchRe: { link: getN('air_re_opener'), fields: [getN('air_re')], hidden: getN(idMgr['air_re_opened']) }
		},
		htl: {
			title: getN('h2-stay'), content: getN('h2-stay-table'), h2: getN('stay-h2'), opened: getN(idMgr['htl_opened']),
			area: { ddl: getN(idMgr['htl_area']), field: null },
			subarea: { ddl: getN(idMgr['htl_subarea']), field: getN('htl_subarea_field') },
			capacity: { ddl: getN(idMgr['htl_capacity']), field: null },
			chargeMin: { ddl: getN(idMgr['htl_charge_min']), field: null },
			chargeMax: { ddl: getN(idMgr['htl_charge_max']), field: null },
			room: { ddl: getN(idMgr['htl_room_type']), field: null },
			meal: { ddl: getN(idMgr['htl_meal_type']), field: null },
			switchDtl: { link: getN('htl_dtl_opener'), fields: [getN('htl_dtl')], hidden: getN(idMgr['htl_dtl_opened']) }
		},
		car: {
			title: getN('h2-rent'), content: getN('h2-car-table'), h2: getN('rent-h2'), opened: getN(idMgr['car_opened']),
			start: {
				date: { ddl: getN(idMgr['car_start_date']), field: null },
				time: { ddl: getN(idMgr['car_start_time']), field: null },
				area: { ddl: getN(idMgr['car_start_area']), field: null },
				subarea: { ddl: getN(idMgr['car_start_subarea']), field: getN('car_start_subarea_field') },
				office: { ddl: getN(idMgr['car_start_office']), field: getN('car_start_office_field') }
			},
			end: {
				date: { ddl: getN(idMgr['car_end_date']), field: null },
				time: { ddl: getN(idMgr['car_end_time']), field: null },
				area: { ddl: getN(idMgr['car_end_area']), field: null },
				subarea: { ddl: getN(idMgr['car_end_subarea']), field: getN('car_end_subarea_field') },
				office: { ddl: getN(idMgr['car_end_office']), field: getN('car_end_office_field') }
			},
			switchEnd: { link: getN('car_end_opener'), fields: [getN('car_end')], hidden: getN(idMgr['car_end_opened']) },
			switchDtl: { link: getN('car_dtl_opener'), fields: [getN('car_dtl')], hidden: getN(idMgr['car_detail_opened']) }
		},
		btns: {
			air: { field: getN('air_btn'), jal: getN(idMgr['search_bttn_jal']), ana: getN(idMgr['search_bttn_ana']) },
			htl: { field: getN('htl_btn'), search: getN(idMgr['htl_reference']) },
			car: { field: getN('car_btn'), search: getN(idMgr['car_reference']) }
		},
		trgs: {
			addHotel: getN('add_hotel_link'),
			removeHotel: getN('remove_hotel_link'),
			addCar: getN('add_car_link'),
			removeCar: getN('remove_car_link')
		}
	};
	var cBsc = ctrls.bsc, cHtl = ctrls.htl, cAir = ctrls.air, cCar = ctrls.car;
	this.syncCondition = this.createSyncCondition();
	// 同期オブジェクト
	var syncMgr = this.syncManager = new DDP.Search.SyncManager(this.syncCondition);
	this.supportMap = new DDP.Search.Map('img_maps', cHtl.area.ddl.id, cHtl.subarea.ddl.id, 'map_select_link');
	// 初期化
	// interim fix
	DDP.removeOption(cAir.go.dep.ddl, DDP.Search.PullDown.getValueIndex(cAir.go.dep.ddl, 'OKD'));
	DDP.removeOption(cAir.go.dep.ddl, DDP.Search.PullDown.getValueIndex(cAir.go.dep.ddl, 'OIR'));
	DDP.removeOption(cAir.go.arr.ddl, DDP.Search.PullDown.getValueIndex(cAir.go.arr.ddl, 'OKD'));
	DDP.removeOption(cAir.go.arr.ddl, DDP.Search.PullDown.getValueIndex(cAir.go.arr.ddl, 'OIR'));
	this.setDefaultValue(cHtl.area.ddl);
	this.setDefaultValue(cHtl.subarea.ddl);
	this.setDefaultValue(cCar.start.area.ddl);
	this.setDefaultValue(cCar.start.subarea.ddl);
	this.setDefaultValue(cCar.start.office.ddl);
	this.setDefaultValue(cCar.end.area.ddl);
	this.setDefaultValue(cCar.end.subarea.ddl);
	this.setDefaultValue(cCar.end.office.ddl);
	this.supportMap.zindex = 100;
	this.supportMap.init();
	// 出発日・帰着日からレンタカー貸出・返却年月日を設定
	this.updateRentalDate();
	// 地図描画
	this.supportMap.write();
	this.setSearchButtonDisabled();

	// イベント登録
	var prm = Sys.WebForms.PageRequestManager.getInstance();
	prm.add_beginRequest(function(sender, args) { __this.onBeginRequest(sender, args); });
	prm.add_endRequest(function(sender, args) { __this.onEndRequest(sender, args); });
	// 連動select
	// 基本条件
	addE(cBsc.headCount.ddl, 'change', function() { __this.cascade(CT.Capacity); });
	addE(cBsc.dateGo.ddl,    'change', function() { __this.cascade(CT.DateGo); });
	addE(cBsc.dateRe.ddl,    'change', function() { __this.cascade(CT.DateRe); });
	// 航空条件
	addE(cAir.go.dep.ddl,  'change', function() { __this.cascade(CT.AirGoDep); });
	addE(cAir.go.arr.ddl,  'change', function() { __this.cascade(CT.AirGoArr); });
	addE(cAir.go.seat.ddl, 'change', function() { __this.cascade(CT.AirGoSeat); });
	addE(cAir.re.dep.ddl,  'change', function() { __this.cascade(CT.AirBackDep); });
	addE(cAir.re.arr.ddl,  'change', function() { __this.cascade(CT.AirBackArr); });
	// 宿泊条件
	addE(cHtl.area.ddl,    'change', function() { __this.cascade(CT.Prefecture); });
	addE(cHtl.subarea.ddl, 'change', function() { __this.cascade(CT.SubArea); });
	// レンタカー条件
	addE(cCar.start.area.ddl,    'change', function() { __this.cascade(CT.CarStartArea); });
	addE(cCar.start.subarea.ddl, 'change', function() { __this.cascade(CT.CarStartSubArea); });
	addE(cCar.start.office.ddl,  'change', function() { __this.cascade(CT.CarStartOffice); });
	addE(cCar.end.area.ddl,      'change', function() { __this.cascade(CT.CarEndArea); });
	addE(cCar.end.subarea.ddl,   'change', function() { __this.cascade(CT.CarEndSubArea); });
	// ボタン
	//addE(reference, 'click', function() { __this.cascade(CT.SearchButton); });
	
	// 開閉リンク
	addE(ctrls.trgs.addHotel,      'click', function() { __this.onLinkClickEvent(LET.AddHotel); });
	addE(ctrls.trgs.removeHotel,   'click', function() { __this.onLinkClickEvent(LET.RemoveHotel); });
	addE(ctrls.trgs.addCar,        'click', function() { __this.onLinkClickEvent(LET.AddCar); });
	addE(ctrls.trgs.removeCar,     'click', function() { __this.onLinkClickEvent(LET.RemoveCar); });
	addE(cAir.switchRe.link,       'click', function() { __this.onLinkClickEvent(LET.AirReturn); });
	addE(ctrls.htl.switchDtl.link, 'click', function() { __this.onLinkClickEvent(LET.HotelRoomMeal); });
	addE(ctrls.car.switchEnd.link, 'click', function() { __this.onLinkClickEvent(LET.CarEnd); });
	addE(ctrls.car.switchDtl.link, 'click', function() { __this.onLinkClickEvent(LET.CarDetail); });
};
/**
 * リクエスト開始時のイベント
 * @param sender イベント発生元
 * @param args イベント引数
 */
DDP.Search.AirTop.prototype.onBeginRequest = function(sender, args) {
	this.asyncPostBackId = args.get_postBackElement().id;
	this.prevValueDateGo = DDP.Search.PullDown.selectedValue(this.ctrls.bsc.dateGo.ddl);
	this.prevValueDateRe = DDP.Search.PullDown.selectedValue(this.ctrls.bsc.dateRe.ddl);
};
/**
 * リクエスト終了時のイベント
 * @param sender イベント発生元
 * @param args イベント引数
 */
DDP.Search.AirTop.prototype.onEndRequest = function(sender, args) {
	// UpdatePanel更新後の再設定
	var __this = this, bsc = this.ctrls.bsc;
	bsc.dateGo.ddl = getN(idMgr['date_go']);
	bsc.dateRe.ddl = getN(idMgr['date_re']);
	if (0 <= this.asyncPostBackId.indexOf(idMgr['SupportCalendarGo']) &&
		this.prevValueDateGo != DDP.Search.PullDown.selectedValue(bsc.dateGo.ddl)) {
		addE(bsc.dateGo.ddl, 'change', function() { __this.cascade(CT.DateGo); });
		this.cascade(CT.DateGo);
	} else if (0 <= this.asyncPostBackId.indexOf(idMgr['SupportCalendarBack']) &&
		this.prevValueDateRe != DDP.Search.PullDown.selectedValue(this.dateRe.ddl)) {
		addE(bsc.dateRe.ddl, 'change', function() { bsc.cascade(CT.DateRe); });
		this.cascade(CT.DateRe);
	}
};
DDP.Search.AirTop.prototype.setDefaultValue = function(node) {
	node.value = DDP.Search.AirTop.def[node.id];
};
/**
 * 入力コントロールの連動処理を行います。
 * @param type DDP.Search.AirTop.CascadeTypeのいずれかの値。
 */
DDP.Search.AirTop.prototype.cascade = function(type) {
	var ctrls = this.ctrls, syncMgr = this.syncManager, onlyOpenClose = true,
		_syncPDSV = DDP.syncPullDownSelectedValue,
		_chKABAC = DDP.Search.changeKenAreaByAirportCode, _chSABKA = DDP.Search.changeSubAreaByKenArea;
	// リンクなどの開閉
	switch(type) {
		// 貸出店舗と返却店舗を指定するリンク
		//case CT.CarConditionLink: this.switchRentalView(); break;
		default: onlyOpenClose = false;
	}
	if (onlyOpenClose) { return; }
	
	// 人数
	if (type == CT.Capacity) {
		if (!ctrls.htl.capacity.ddl.disabled) {
			// 部屋定員と同期
			_syncPDSV(ctrls.bsc.headCount.ddl, ctrls.htl.capacity.ddl);
		}
		return;
	}
	// 出発日・帰着日
	if (CT.DateGo <= type && type <= CT.DateRe) {
		if (type == CT.DateGo) {
			// 帰着日を出発日+nに変更
			DDP.Search.changeDateGo(ctrls.bsc.dateGo.ddl, ctrls.bsc.dateRe.ddl);
		}
		if (ctrls.bsc.dateGo.ddl.value == ctrls.bsc.dateRe.ddl.value) {
			
			return;
		}
		// 出発日・帰着日からレンタカー貸出・返却年月日を設定
		this.updateRentalDate();
		return;
	}
	// 往路搭乗クラス
	if (type == CT.AirGoSeat) {
		// 往路搭乗クラスと復路搭乗クラスを同期
		_syncPDSV(ctrls.air.go.seat.ddl, ctrls.air.re.seat.ddl);
		return;
	}
	// 往路到着空港
	if (type == CT.AirGoArr) {
		// 往路到着空港と復路出発空港の同期
		_syncPDSV(ctrls.air.go.arr.ddl, ctrls.air.re.dep.ddl);
		// 空港が所属する県によって宿泊地域を変更
		_chKABAC(ctrls.air.go.arr.ddl, ctrls.htl.area.ddl, this.supportMap);
		// 宿泊地域によって宿泊地区を変更
		_chSABKA(ctrls.htl.area.ddl, ctrls.htl.subarea.ddl);
		// 往路到着空港とレンタカー貸出店舗の同期
		syncMgr.syncRentalStartOfficeByGoArriveAirport();
	}
	// 復路出発空港
	if (type <= CT.AirBackDep) {
		// 復路出発空港とレンタカー返却店舗の同期
		syncMgr.syncRentalEndOfficeByBackDepartureAirport();
	}
	// 往路出発空港
	if (type == CT.AirGoDep) {
		// 往路出発空港と復路到着空港の同期
		_syncPDSV(ctrls.air.go.dep.ddl, ctrls.air.re.arr.ddl);
	}
	// 復路到着空港
	if (type <= CT.AirBackArr) {
		this.setSearchButtonDisabled();
		this.adaptErrorStyle(type);
		return;
	}
	// 宿泊地域
	if (type == CT.Prefecture) {
		// 宿泊地域によって宿泊地区を変更
		_chSABKA(ctrls.htl.area.ddl, ctrls.htl.subarea.ddl);
		// 宿泊地域とレンタカー貸出条件の同期
		syncMgr.syncRentalStartAreaConditionByKenArea();
		// 宿泊地域とレンタカー返却条件の同期
		syncMgr.syncRentalEndAreaConditionByKenArea();
		this.adaptErrorStyle(type);
		return;
	}
	// 宿泊地区
	if (type == CT.SubArea) {
		// 宿泊地区とレンタカー貸出条件の同期
		syncMgr.syncRentalStartCarConditionBySubArea();
		// 宿泊地区とレンタカー返却条件の同期
		syncMgr.syncRentalEndCarConditionBySubArea();
		this.adaptErrorStyle(type);
		return;
	}
	// レンタカー貸出地域
	if (type == CT.CarStartArea) {
		// レンタカー貸出地域とレンタカー貸出地区の同期
		syncMgr.syncRentalStartSubAreaByRentalStartArea();
		// レンタカー貸出地区とレンタカー貸出店舗の同期
		syncMgr.syncRentalStartOfficeByRentalStartSubtArea();
		// レンタカー貸出条件とレンタカー返却条件の同期
		syncMgr.syncRentalEndAreaByRentalStartArea();
		this.adaptErrorStyle(type);
		return;
	}
	// レンタカー貸出地区
	if (type == CT.CarStartSubArea) {
		// レンタカー貸出地区とレンタカー貸出店舗の同期
		syncMgr.syncRentalStartOfficeByRentalStartSubtArea();
		// レンタカー貸出地区とレンタカー返却地区の同期
		syncMgr.syncRentalEndSubAreaByRentalStartArea();
		this.adaptErrorStyle(type);
		return;
	}
	// レンタカー貸出店舗
	if (type == CT.CarStartOffice) {
		// レンタカー貸出店舗とレンタカー返却店舗の同期
		syncMgr.syncRentalEndOfficeByRentalStartOffice();
		this.adaptErrorStyle(type);
		return;
	}
	// レンタカー返却地域
	if (type == CT.CarEndArea) {
		// レンタカー返却地域とレンタカー返却地区の同期
		syncMgr.syncRentalEndSubAreaByRentalEndArea();
	}
	// レンタカー返却地区
	if (type <= CT.CarEndSubArea) {
		// レンタカー返却地区とレンタカー返却店舗の同期
		syncMgr.syncRentalEndOfficeByRentalEndSubtArea();
		this.adaptErrorStyle(type);
		return;
	}
	
	// 検索ボタン
	if (type == CT.SearchButton) {
		return;
	}
};
/**
 * 入力情報によりエラーStyleCssを適用します。
 * @param type DDP.Search.AirTop.CascadeTypeのいずれかの値。
 */
DDP.Search.AirTop.prototype.adaptErrorStyle = function(type) {
	var htl = this.ctrls.htl, carS = this.ctrls.car.start, carE = this.ctrls.car.end;
	DDP.setClass(htl.subarea.field,  'input_error', htl.subarea.ddl.value == '');
	DDP.setClass(carS.subarea.field, 'input_error', carS.subarea.ddl.value == '');
	DDP.setClass(carS.office.field,  'input_error', carS.office.ddl.value == '');
	DDP.setClass(carE.subarea.field, 'input_error', carE.subarea.ddl.value == '');
	DDP.setClass(carE.office.field,  'input_error', carE.office.ddl.value == '');
};
/**
 * 同期コントロールを作成します。
 */
DDP.Search.AirTop.prototype.createSyncCondition = function() {
	var c = new DDP.Search.SyncCondition(), htl = this.ctrls.htl,
		carS = this.ctrls.car.start, carE = this.ctrls.car.end,
		airG = this.ctrls.air.go, airR = this.ctrls.air.re;
	c.rentalStartArea      = carS.area.ddl.id;
	c.rentalStartSubArea   = carS.subarea.ddl.id;
	c.rentalStartOffice    = carS.office.ddl.id;
	c.rentalEndArea        = carE.area.ddl.id;
	c.rentalEndSubArea     = carE.subarea.ddl.id;
	c.rentalEndOffice      = carE.office.ddl.id;
	c.airportGoDeparture   = airG.dep.ddl.id;
	c.airportGoArrive      = airG.arr.ddl.id;
	c.airportBackDeparture = airR.dep.ddl.id;
	c.airportBackArrive    = airR.arr.ddl.id;
	c.hotelArea            = htl.area.ddl.id;
	c.hotelSubArea         = htl.subarea.ddl.id;
	return c;
};
/**
 * レンタカー貸出返却年月日を更新します。
 */
DDP.Search.AirTop.prototype.updateRentalDate = function() {
	var fromToPullDowns = new DDP.Search.FromToPullDowns(
		this.ctrls.bsc.dateGo.ddl, this.ctrls.bsc.dateRe.ddl, this.ctrls.car.start.date.ddl, this.ctrls.car.end.date.ddl);
	fromToPullDowns.update();
};
/**
 * 条件の状態から検索ボタンのdisabledを設定します。
 */
DDP.Search.AirTop.prototype.setSearchButtonDisabled = function() {
	var airG = this.ctrls.air.go, btns = this.ctrls.btns;
	this.syncManager.searchBttnCheck(airG.dep.ddl, airG.arr.ddl, btns.air.jal, btns.air.ana, true);
	var disabled = btns.air.jal.disabled;
	btns.htl.search.disabled = disabled;
	btns.car.search.disabled = disabled;
	// 組合せ時の検索ボタン
	if (disabled) {
		DDP.addClass(btns.htl.search,'opacity5');
		DDP.addClass(btns.car.search,'opacity5');
	} else {
		DDP.removeClass(btns.htl.search,'opacity5');
		DDP.removeClass(btns.car.search,'opacity5');
	}
};
/**
 * 指定した領域の表示状態を切り替えます。
 * @param switchItem 領域情報。
 * @param fieldVisible 領域を表示するかどうかを示す値。
 */
DDP.Search.AirTop.prototype.switchDisplay = function(switchItem, fieldVisible) {
	if (!switchItem) return;
	var arr = DDP.toArray(switchItem.fields), i = 0, l = arr.length;
	var fieldVisible = fieldVisible !== undefined ? fieldVisible : (switchItem.hidden.value == '0');
	switchItem.hidden.value = fieldVisible ? '1' : '0';
	DDP.addClass(switchItem.link, !fieldVisible ? 'ico-link3' : 'ico-link4');
	DDP.removeClass(switchItem.link, fieldVisible ? 'ico-link3' : 'ico-link4');
	for(; i < l; i++) {
		DDP.setVisible(arr[i], fieldVisible);
	}
};
/**
 * タイトルを切り替える
 * @param h2 h2要素
 * @param isAdding 追加リンクの場合は true
 */
DDP.Search.AirTop.prototype.switchTitle = function(h2, isAdding) {
	h2.innerHTML = h2.innerHTML.replace(
		isAdding ? TC.closed : TC.opened, !isAdding ? TC.closed : TC.opened)
};
/**
 * リンククリック時の処理を行ないます。
 * @param linkEventType リンクイベント種別
 */
DDP.Search.AirTop.prototype.onLinkClickEvent = function(linkEventType) {
	var air = this.ctrls.air, htl = this.ctrls.htl, car = this.ctrls.car,
		trgs = this.ctrls.trgs, btns = this.ctrls.btns, bsc = this.ctrls.bsc;
	switch(linkEventType) {
		case LET.AirReturn    : return this.switchDisplay(air.switchRe);
		case LET.HotelRoomMeal: return this.switchDisplay(htl.switchDtl);
		case LET.CarEnd       : return this.switchDisplay(car.switchEnd);
		case LET.CarDetail    : return this.switchDisplay(car.switchDtl);
		default               : break;
	}
	if (!(LET.AddHotel <= linkEventType && linkEventType <= LET.RemoveCar)) return;
	var isHotel = linkEventType == LET.AddHotel || linkEventType == LET.RemoveHotel,
		isRemoveHotel = linkEventType == LET.RemoveHotel,
		isAddCar = linkEventType == LET.AddCar,
		isAdding = linkEventType == LET.AddHotel || isAddCar;
	setV(btns.air.field, isRemoveHotel);
	setV(btns.htl.field, linkEventType == LET.AddHotel || linkEventType == LET.RemoveCar);
	setV(btns.car.field, isAddCar);
	this.switchTitle(isHotel ? htl.h2 : car.h2, isAdding);
	if (linkEventType != LET.RemoveCar) {
		setV(trgs.addHotel,      isRemoveHotel);
		setV(trgs.removeHotel,   !isRemoveHotel);
		setV(bsc.headCount.field, !isRemoveHotel);
		setV(air.re.field,        !isRemoveHotel);
		setV(bsc.dateRe.field,    !isRemoveHotel);
		setV(htl.content,        !isRemoveHotel);
		htl.opened.value = !isRemoveHotel ? '1' : '0';
	}
	if (linkEventType != LET.AddHotel) {
		setV(trgs.addCar,    !isAddCar);
		setV(trgs.removeCar, isAddCar);
		setV(car.content,    isAddCar);
		car.opened.value = isAddCar ? '1' : '0';
	}
};
/**
 * ANAサイトへ遷移する
 */
DDP.Search.AirTop.prototype.moveAnaSite = function() {
	var prm = DDP.Search.AirTop.ANA, anaSearch = new DDP.Search.AnaSearch({
		anaSiteUrl      :prm.AnaSiteUrl,
		connectionKind  :prm.ConnectionKind,
		activityId      :prm.ActivityId,
		returnURL       :prm.ReturnUrl,
		screenId        :prm.ScreenId,
		selectedEmbMonth:prm.SelectedEmbMonth,
		selectedEmbDay  :prm.SelectedEmbDay,
		selectedDepApo  :prm.SelectedDepApo,
		selectedArrApo  :prm.SelectedArrApo,
		seatKind        :prm.SeatKind,
		selectedDepTime :prm.SelectedDepTime,
		ttwCalFlg       :prm.TtwCalFlg,
		nowSegIndex     :prm.NowSegIndex
	});
	anaSearch.post();
};
//register
addE(window, 'load', function() {
	DDP.merge(DDP.Search.idManager, DDP.Search.AirTop.idList);
	var ins = new DDP.Search.AirTop();
	ins.init();
});
})();

