/** * @file share.js * @brief 行き先選択を行う際、地域に対応した国、国に対応した目的地を取得する
複数行き先がある場合は、 * 国・地域・目的地を分けないといけないので3つ用意 * 行き先選択機能を纏め * version */ /** * @brief 各要素初期化 ジェネレートされて来るファイルが行き先毎に関数を作っているのでその数分初期化関数を作る */ function Country1(name, value, cities, num) { this.name = name; this.value = value; this.cities = cities; this.num = num; } function City1(name, value) { this.name = name; this.value = value; } function Country2(name, value, cities, num) { this.name = name; this.value = value; this.cities = cities; this.num = num; } function City2(name, value) { this.name = name; this.value = value; } function Country3(name, value, cities, num) { this.name = name; this.value = value; this.cities = cities; this.num = num; } function City3(name, value) { this.name = name; this.value = value; } // ページ判定 var page_id = ''; // 何個都市が選択されているかのカウント var usr_select_count = 0; // 行き先1の最下層要素 var dept_lo_ele1 = ''; var dept_lo_ele2 = ''; var dept_lo_ele3 = ''; // エラー処理用フラグ 0 -> 正常 1 -> エラー var dest_err_flag = new Array(); dest_err_flag['areacd1'] = 0; dest_err_flag['areacd2'] = 0; dest_err_flag['areacd3'] = 0; dest_err_flag['countrycd1'] = 0; dest_err_flag['countrycd2'] = 0; dest_err_flag['countrycd3'] = 0; // エリア名をグローバルに持っておく var area_cd_name = new Array(); area_cd_name['0100'] = 'アジア'; area_cd_name['0200'] = 'ハワイ'; area_cd_name['0300'] = 'グアム、サイパン他'; area_cd_name['0400'] = 'オセアニア'; area_cd_name['0500'] = 'アメリカ、カナダ'; area_cd_name['0600'] = 'ヨーロッパ'; area_cd_name['0700'] = '中東、アフリカ'; area_cd_name['0800'] = '中南米、カリブ'; /** * @brief js処理の初期処理を扱う関数 ロード時に呼び出される * @param num_form 何個目の行き先フォームかを指定(int型) */ function shareInit(page) { // Smarty側PHPの配列をJSの配列に格納するプログラムがプリントしてある getParametar(); page_id = page; var area_cd = ''; var country_cd = ''; var city_cd = ''; // 行き先が指定されているかの判定フラグ var set_dest = 0; var form_obj = document.OPS_SEARCH; // 地域パラメータが渡ってきていたら、地域に対応して国のプルダウンの中身を変更する if (_js_param['areacd'] != ''){ setDestParametar(form_obj.areacd1, 'areacd', 'countrycd1', 'citycd1'); set_dest = 1; }else if(_js_param['areacd1'] != ''){ setDestParametar(form_obj.areacd1, 'areacd1', 'countrycd1', 'citycd1'); set_dest = 1; }else{ if (form_obj.areacd1) { form_obj.areacd1.options[0].selected = true; form_obj.countrycd1.options[0].selected = true; form_obj.citycd1.options[0].selected = true; } } // 二つ目の地域パラメータが渡されていた時の処理 if(_js_param['areacd2'] != ""){ setDestParametar(form_obj.areacd2, 'areacd2', 'countrycd2', 'citycd2'); set_dest = 1; }else{ if(form_obj.areacd2){ if (_js_param['recmid'] != "1" && _js_param['recmid'] != "2") { form_obj.areacd2.options[0].selected = true; form_obj.countrycd2.options[0].selected = true; form_obj.citycd2.options[0].selected = true; } } } // 三つ目の地域パラメータが渡されていた時の処理 if(_js_param['areacd3'] != ""){ setDestParametar(form_obj.areacd3, 'areacd3', 'countrycd3', 'citycd3'); set_dest = 1; }else{ if(form_obj.areacd3){ if (_js_param['recmid'] != 1 && _js_param['recmid'] != 2) { form_obj.areacd3.options[0].selected = true; form_obj.countrycd3.options[0].selected = true; form_obj.citycd3.options[0].selected = true; } } } if (page_id == 'atour_search' && set_dest == 0) { if (document.getElementById('js_add_dest_id_01')) { document.getElementById('js_add_dest_id_01').innerHTML = '指定なし'; } } } /** * @brief パラメータが渡ってきた時の処理 */ function setDestParametar(obj, area_cd, country_cd, city_cd) { if (obj) { // 一旦ここでフラグをエラー扱いにする dest_err_flag[area_cd] = 1; for (i = 0; i < obj.length; i++) { if (obj.options[i].value == _js_param[area_cd]) { obj.options[i].selected = true; if (area_cd == 'areacd') { area_cd = 'areacd1'; } // エラー解除 dest_err_flag[area_cd] = 0; selectArea(area_cd, country_cd, city_cd); // 条件指定ページのみの処理(→行き先2・行き先3の場合のみ) if (page_id == 'ops' && (area_cd == "areacd2" || area_cd == "areacd3")) { displayDestination(); } // オススメツアー if (_js_param['recmid'] == 1 || _js_param['recmid'] == 2) { if (_js_param['areacd2'] == '') { document.OPS_SEARCH.areacd2.options[i].selected = true; } if (_js_param['areacd3'] == '') { document.OPS_SEARCH.areacd3.options[i].selected = true; } // エリアまでのオススメツアーの場合はロード // 国までの場合はページ軽減の為ロードしない if (_js_param['areacd2'] == '') { if (area_cd == 'areacd1') { selectArea('areacd2', 'countrycd2', 'citycd2'); } } if (_js_param['areacd3'] == '') { if (area_cd == 'areacd1') { selectArea('areacd3', 'countrycd3', 'citycd3'); } } } break; } else { continue; } } } else { return; } } /** * @brief 地域が選択された際、その地域に対応した国を取得する */ function selectArea(area_cd,country_cd,city_cd) { var form_obj = document.OPS_SEARCH; // エリアが選択されていればエリアに対応した国データを取得する if(document.OPS_SEARCH.elements[area_cd].value != ""){ // エリアコードの値と処理する内容をshareDynamicLoadに渡す shareDynamicLoad(form_obj.elements[area_cd].options[form_obj.elements[area_cd].selectedIndex].value, area_cd); }else{ // 「地域を選択」を選んだ場合、全てのプルダウンを初期化 form_obj.elements[country_cd].options.length = 1; form_obj.elements[city_cd].options.length = 1; form_obj.elements[country_cd].options[0].selected = true; form_obj.elements[city_cd].options[0].selected = true; if (page_id != 'ops') { // pop_out.js offIsNotFlag(); } } } /** * @brief 1つ目の行き先に対して呼び出す先の関数を選択する * コースリスト結果の場合は行き先のcheckboxを生成する関数へ * その他は、セレクトボックスの一つ目の行き先生成関数作成 */ function selectArea1() { if(page_id == 'atour_search'){ checkDestBox('areacd1', countries1, 'countrycd1', 'citycd1', 'js_add_dest_id_01', 'dest_check1'); } selectAreaAcq(document.OPS_SEARCH.countrycd1, document.OPS_SEARCH.citycd1, countries1, 'countrycd1', 'areacd1'); } /** * @brief 2つ目の行き先に対して呼び出す先の関数を選択する */ function selectArea2() { if(page_id == 'atour_search'){ checkDestBox('areacd2', countries2, 'countrycd2', 'citycd2', 'js_add_dest_id_02', 'dest_check2'); } selectAreaAcq(document.OPS_SEARCH.countrycd2, document.OPS_SEARCH.citycd2, countries2, 'countrycd2', 'areacd2'); } /** * @brief 3つ目の行き先に対して呼び出す先の関数を選択する */ function selectArea3() { if(page_id == 'atour_search'){ checkDestBox('areacd3', countries3, 'countrycd3', 'citycd3', 'js_add_dest_id_03', 'dest_check3'); } selectAreaAcq(document.OPS_SEARCH.countrycd3, document.OPS_SEARCH.citycd3, countries3, 'countrycd3', 'areacd3'); } /** * @brief 行き先の国情報を取得する関数。 * @param country_obj 国オブジェクト * @param city_obj 都市オブジェクト * @param country_arr 国・都市データが入っている配列 * @param country_param パラメータ名 * @param areacd エリアコード */ function selectAreaAcq(country_obj, city_obj, country_arr, country_param, areacd) { if (page_id != 'ops') { // pop_out.js offIsNotFlag(); } country_obj.options.length = 1; city_obj.options.length = 1; country_obj.options.length = country_arr.length + 1; // 国情報取得 for(i = 0; i < country_arr.length; i++){ country_obj.options[i+1] = new Option(country_arr[i].name, country_arr[i].value); } var rec_flag = 0; // パラメータ判定 if(_js_param[country_param] != '' && dest_err_flag[areacd] == 0){ for(i = 1; i < country_obj.length; i++){ // パラメータの国コードが存在していたら、その国をフォーカスにする if(country_obj.options[i].value == _js_param[country_param]){ country_obj.options[i].selected = true; rec_flag = 1; selectCountry(country_obj, city_obj, country_param); _js_param[country_param] = ''; dest_err_flag[country_param] = 0; break; } } }else if(_js_param['countrycd'] != '' && country_param == 'countrycd1' && dest_err_flag[areacd] == 0){ for(i = 1; i < country_obj.length; i++){ if(country_obj.options[i].value == _js_param['countrycd']){ country_obj.options[i].selected = true; selectCountry(country_obj, city_obj, country_param); _js_param['countrycd'] = ''; dest_err_flag[country_param] = 0; break; } } }else{ if (_js_param['recmid'] != 1 && _js_param['recmid'] != 2){ country_obj.options[0].selected = true; city_obj.options[0].selected = true; dest_err_flag[country_param] = 1; } } // オススメツアー(国までの指定の場合) if ((_js_param['recmid'] == 2 && _js_param['countrycd2'] == '') && (rec_flag == 0 && areacd == 'areacd2')) { for(i = 1; i < country_obj.length; i++){ if(country_obj.options[i].value == _js_param['rec_country']){ country_obj.options[i].selected = true; selectCountry(country_obj, city_obj, country_param); break; } } } if ((_js_param['recmid'] == 2 && _js_param['countrycd3'] == '') && (rec_flag == 0 && areacd == 'areacd3')) { for(i = 1; i < country_obj.length; i++){ if(country_obj.options[i].value == _js_param['rec_country']){ country_obj.options[i].selected = true; selectCountry(country_obj, city_obj, country_param); break; } } } } /** * @brief 国が選択された際、その国に対応した都市を取得する * @param country_obj 国オブジェクト * @param city_obj 都市オブジェクト * @param country_param 国パラメータ名 */ function selectCountry(country_obj, city_obj, country_param, is_sort) { if(typeof is_sort === 'undefined') is_sort = 0; var idx = country_obj.options.selectedIndex; // 配列の指定 if(country_param == 'countrycd1'){ countries = countries1[idx-1]; }else if(country_param == 'countrycd2'){ countries = countries2[idx-1]; }else{ countries = countries3[idx-1]; } // 都市選択部の初期化 city_obj.options.length = 1; // 選択された国により、都市情報取得 if(idx > 0){ //ソート if(is_sort == 1){ countries.cities.sort(function(a,b){ var aName = a["name"]; var bName = b["name"]; if( aName < bName ) return -1; if( aName > bName ) return 1; return 0; }); } city_obj.length = countries.cities.length + 1; for(i = 0; i < countries.cities.length; i++){ city_obj.options[i+1] = new Option(countries.cities[i].name, countries.cities[i].value); } }else{ city_obj.options.length = 1; } // パラメータに都市情報があった時 if(_js_param[city_obj.name] != '' && dest_err_flag[country_param] == 0){ for(i = 0; i < city_obj.length; i++){ if(city_obj.options[i].value == _js_param[city_obj.name]){ city_obj.options[i].selected = true; _js_param[city_obj.name] = ''; break; } } }else if(_js_param['citycd'] != '' && dest_err_flag[country_param] == 0){ for(i = 0; i < city_obj.length; i++){ if(city_obj.options[i].value == _js_param['citycd']){ city_obj.options[i].selected = true; _js_param[city_obj.name] = ''; break; } } } // ポップアウトを閉じる処理 if (page_id != 'ops') { // pop_out.js offIsNotFlag(); } } // ポップアウトを閉じる為に用意 function selectCity() { if (page_id != 'ops') { // pop_out.js offIsNotFlag(); } else { return } } /** * @brief プルダウンに出す国一覧を動的に変更する関数 * 呼び出すタイミングの問題があるので、share.js専用のshareDynamicLoadを用意します */ function shareDynamicLoad(jsFileName, area_cd) { var id = ''; var num = 0; if(area_cd == 'areacd1'){ id = 'dynld1'; num = 1; } else if(area_cd == 'areacd2'){ id = 'dynld2'; num = 2; }else{ id = 'dynld3'; num = 3; } // 日付取得 var date = new Date(); var getData = '/abroad-tour/js/' + num + jsFileName + '?nc=' + date.getTime(); if(document.all){ // IE用 if(navigator.userAgent.indexOf("Win") != -1){ var cnode = document.getElementById(id); var nnode = document.createElement('script'); nnode.src = getData; nnode.id = id; nnode.charset = 'euc-jp'; cnode.parentNode.replaceChild(nnode,cnode); // Mac用 }else if(navigator.userAgent.indexOf("Mac") != -1){ document.body.insertAdjacentHTML('BeforeEnd', ''); } } // Netscape, Mozilla用 else if(document.getElementById){ // 地域指定があったら、その地域に含まれる国の情報をセットする。 var cnode = document.getElementById(id); var nnode = document.createElement('script'); nnode.src = getData; nnode.id = id; nnode.charset = 'euc-jp'; cnode.parentNode.replaceChild(nnode,cnode); } // 上記以外のブラウザ else{ if(document.images){ var datasrc = new Image(); datasrc.src = getData; location.href = datasrc.src; } } } /** * @brief 行き先フォーム追加処理を行う関数。追加は2つまで */ function displayDestination() { if(document.getElementById("dest2").style.display == 'block'){ document.getElementById("dest3").style.display = 'block'; // フォームを三つとも開いたら行き先追加ボタンを隠す document.getElementById("dest_button").style.display = 'none'; }else{ document.getElementById("dest2").style.display = 'block'; } } /** * @brief (atour_search用)パラメータが渡ってきた時、都市のチェックボックスを表示する為の制御を行う関数 * @brief area_name エリアパラメータ名 * @brief country_arr 国配列 * @brief country_param 国パラメータ名 * @brief city_param 都市パラメータ名 * @brief add_obj_id 追加する先のオブジェクト名 * @brief dest_check checkboxのvalue値 */ function checkDestBox(area_param, country_arr, country_param, city_param, add_obj_id, dest_check) { if (_js_param[area_param] == '' && _js_param['areacd'] == '') { return; } var area_name = ''; var country_name = ''; var city_name = ''; var country_arr_count = 0; // チェックボックス生成の際に付ける名前 var check_box_text = ''; // エリア取得 if (area_param == 'areacd1' && _js_param['areacd'] != '') { area_name = area_cd_name[_js_param['areacd']]; } else { if (_js_param[area_param] != '') { area_name = area_cd_name[_js_param[area_param]]; } else { area_name = ''; } } // 国 for(i = 0; i < country_arr.length; i++){ if(_js_param[country_param] == country_arr[i].value){ country_name = country_arr[i].name; country_arr_count = i; } else if (_js_param['countrycd'] == country_arr[i].value) { country_name = country_arr[i].name; country_arr_count = i; } } // 都市 for(j = 0; j < country_arr[country_arr_count].cities.length; j++){ if(_js_param[city_param] == country_arr[country_arr_count].cities[j].value){ city_name = country_arr[country_arr_count].cities[j].name; } else if (_js_param['citycd'] == country_arr[country_arr_count].cities[j].value) { city_name = country_arr[country_arr_count].cities[j].name; } } if (city_name != '') { check_box_text = city_name; } else if (country_name != '') { check_box_text = country_name; } else if (area_name != '') { check_box_text = area_name; } else { check_box_text = ''; } if (area_param == 'areacd1' || area_param == 'areacd') { dept_lo_ele1 = check_box_text; dept_lo_ele2 = ''; dept_lo_ele3 = ''; } else if (area_param == 'areacd2') { if (dept_lo_ele1 == check_box_text) { check_box_text = ''; dept_lo_ele2 = ''; } else { dept_lo_ele2 = check_box_text; } } else if (area_param == 'areacd3') { if (dept_lo_ele1 == check_box_text || dept_lo_ele2 == check_box_text) { check_box_text = ''; dept_lo_ele3 = ''; } else { dept_lo_ele3 = check_box_text; } } // チェックボックス生成 if (check_box_text != '') { makeDestStr(add_obj_id, dest_check, dest_check, check_box_text); //document.getElementById(add_obj_id).style.display = "block"; usr_select_count++; } // オススメツアーの時、行き先をテキスト化する if (_js_param['recmid'] == 1 && (area_param == 'areacd1' || area_param == 'areacd')) { displayAreaText(area_name, ''); } if (_js_param['recmid'] == 2 && (country_param == 'countrycd1' || country_param == 'countrycd')) { displayAreaText(area_name, country_name); } // 行き先が2個以上の時のみすべてに行くなどの文言表示 if (usr_select_count == 2 && document.getElementById('js_add_text')) { if (_js_param['ao'] == 'a') { aoCheck(1, usr_select_count); } else { aoCheck(0, usr_select_count); } } _js_param[area_param] = ''; _js_param['areacd'] = ''; } /** * @brief atour_search用、チェックボックスを生成する * @param add_obj_id チェックボックスを組み込むオブジェクトのID * check_value checkboxのvalue値 * check_name checkboxのname * text_node checkboxに付随させるテキスト */ function makeDestStr(add_obj_id, check_value, check_name, text_node) { if(document.getElementById(add_obj_id)){ // base.js str = makeCheckBoxStr(check_name, check_value, check_name, text_node, 1); str += makeCheckLabelStr(check_name, text_node, ''); var add_dept_id = document.getElementById(add_obj_id); add_dept_id.innerHTML = str; }else{ return; } } /** * @brief ポップアウトで選択した内容を反映する関数 * (GETパラメータに渡す際は、エリアコード等も渡さないといけない為) * 表示のチェックボックス側は表示だけで、値はポップアウト内のセレクトボックスで持ちます */ function changeDest() { var form_obj = document.OPS_SEARCH; var isTrue = 0; var dest_count = 0; isTrue = controlChangeDest(form_obj.areacd1, form_obj.countrycd1, form_obj.citycd1, 'js_add_dest_id_01', 'dest_check1'); if (isTrue == 1) { dest_count++; } isTrue = controlChangeDest(form_obj.areacd2, form_obj.countrycd2, form_obj.citycd2, 'js_add_dest_id_02', 'dest_check2'); if (isTrue == 1) { dest_count++; } isTrue = controlChangeDest(form_obj.areacd3, form_obj.countrycd3, form_obj.citycd3, 'js_add_dest_id_03', 'dest_check3'); if (isTrue == 1) { dest_count++; } // 周遊かどうかの文言を出す if(form_obj.elements['ao'][1].checked){ aoCheck(1, dest_count); }else{ aoCheck(0, dest_count); } // 何も指定が入らなかったら指定無しの文言 if (dest_count == 0) { if (document.getElementById('js_add_dest_id_01')) { document.getElementById('js_add_dest_id_01').innerHTML = '指定なし'; } } } /** * @brief 周遊かそうじゃないかの判定 * @param check_flag 周遊かどうかの判定 * @param dest_count 選択された行き先の数 */ function aoCheck(check_flag, dest_count) { if (check_flag == 1) { if (document.getElementById('atour_ao_all')) { document.getElementById('atour_ao_all').checked = true; } if (document.getElementById('js_add_text')) { if (dest_count >= 2) { document.getElementById('js_add_text').innerHTML = '(すべてに行く)'; } else { document.getElementById('js_add_text').innerHTML = ' '; } } } else { if (document.getElementById('atour_ao_or')) { document.getElementById('atour_ao_or').checked = true; } if (document.getElementById('js_add_text')) { if (dest_count >= 2) { document.getElementById('js_add_text').innerHTML = '(いずれかに行く)'; } else { document.getElementById('js_add_text').innerHTML = ' '; } } } } /** * @brief (atour_search用)ポップアウトで選択された要素を抽出し、チェックボックス生成を行う関数 * 対象のセレクトボックスオブジェクト(areacd,countrycd,city)を渡して、表示用データを生成する * @param area_obj エリアオブジェクト * @param country_obj 国オブジェクト * @param city_obj 都市オブジェクト * @param add_id 追加する場所のID * @param check_box_id チェックボックスに付けるID */ function controlChangeDest(area_obj, country_obj, city_obj, add_id, check_box_id) { var area_idx = area_obj.options.selectedIndex; var country_idx = country_obj.options.selectedIndex; var city_idx = city_obj.options.selectedIndex; // 選択されたものがあれば1 なければ0 var isTrue = 0; if (area_obj == document.OPS_SEARCH.areacd1) { dept_lo_ele1 = ''; dept_lo_ele2 = ''; dept_lo_ele3 = ''; } var elements = ''; if (city_idx > 0) { elements = city_obj.options[city_idx]; } else if (country_idx > 0) { elements = country_obj.options[country_idx]; } else if (area_idx > 0) { elements = area_obj.options[area_idx]; } else { elements = ''; } if (area_obj == document.OPS_SEARCH.areacd1) { dept_lo_ele1 = elements.value; } else if (area_obj == document.OPS_SEARCH.areacd2) { if (dept_lo_ele1 == elements.value) { elements = ''; dept_lo_ele2 = ''; } else { dept_lo_ele2 = elements.value; } } else if (area_obj == document.OPS_SEARCH.areacd3) { if (dept_lo_ele1 == elements.value || dept_lo_ele2 == elements.value) { elements = ''; dept_lo_ele3 = ''; } else { dept_lo_ele3 = elements.value; } } if (elements != '') { makeDestStr(add_id, elements.value, check_box_id, elements.text); isTrue = 1; } else { document.getElementById(add_id).innerHTML = ''; } return isTrue; } /** * @brief エリア名をテキストで表示する(ポップアウトウィンドウ内) */ function displayAreaText(area_name, country_name) { // エリアのみ if (_js_param['recmid'] == 1) { document.getElementById('pop_out_select_areacd1').style.display = 'none'; document.getElementById('pop_out_text_areacd1').style.display = 'block'; document.getElementById('pop_out_select_areacd2').style.display = 'none'; document.getElementById('pop_out_text_areacd2').style.display = 'block'; document.getElementById('pop_out_select_areacd3').style.display = 'none'; document.getElementById('pop_out_text_areacd3').style.display = 'block'; document.getElementById('pop_out_text_areacd1_value').innerHTML = area_name; document.getElementById('pop_out_text_areacd2_value').innerHTML = area_name; document.getElementById('pop_out_text_areacd3_value').innerHTML = area_name; } // 国まで if (_js_param['recmid'] == 2) { document.getElementById('pop_out_select_areacd1').style.display = 'none'; document.getElementById('pop_out_text_areacd1').style.display = 'block'; document.getElementById('pop_out_select_areacd2').style.display = 'none'; document.getElementById('pop_out_text_areacd2').style.display = 'block'; document.getElementById('pop_out_select_areacd3').style.display = 'none'; document.getElementById('pop_out_text_areacd3').style.display = 'block'; document.getElementById('pop_out_select_countrycd1').style.display = 'none'; document.getElementById('pop_out_text_countrycd1').style.display = 'block'; document.getElementById('pop_out_select_countrycd2').style.display = 'none'; document.getElementById('pop_out_text_countrycd2').style.display = 'block'; document.getElementById('pop_out_select_countrycd3').style.display = 'none'; document.getElementById('pop_out_text_countrycd3').style.display = 'block'; document.getElementById('pop_out_text_areacd1_value').innerHTML = area_name; document.getElementById('pop_out_text_areacd2_value').innerHTML = area_name; document.getElementById('pop_out_text_areacd3_value').innerHTML = area_name; document.getElementById('pop_out_text_countrycd1_value').innerHTML = country_name; document.getElementById('pop_out_text_countrycd2_value').innerHTML = country_name; document.getElementById('pop_out_text_countrycd3_value').innerHTML = country_name; } } /** * @brief さらに詳しい条件で検索を押した際に、行き先のチェックボックスを見て * チェックが入っているものだけパラメータ送信するようにする(atour_search用) */ function finalCheckDest() { var form_obj = document.OPS_SEARCH; //if(document.getElementById('dest_check1')){ if (document.getElementById('js_add_dest_id_01')) { if (document.getElementById('dest_check1')) { if (form_obj.dest_check1.checked == false) { form_obj.areacd1.options[0].selected = true; form_obj.countrycd1.options[0].selected = true; form_obj.citycd1.options[0].selected = true; } } document.getElementById('js_add_dest_id_01').innerHTML = ''; } if (document.getElementById('js_add_dest_id_02')) { if (document.getElementById('dest_check2')) { if (form_obj.dest_check2.checked == false) { form_obj.areacd2.options[0].selected = true; form_obj.countrycd2.options[0].selected = true; form_obj.citycd2.options[0].selected = true; } } document.getElementById('js_add_dest_id_02').innerHTML = ''; } if (document.getElementById('js_add_dest_id_03')) { if (document.getElementById('dest_check3')) { if (form_obj.dest_check3.checked == false) { form_obj.areacd3.options[0].selected = true; form_obj.countrycd3.options[0].selected = true; form_obj.citycd3.options[0].selected = true; } } document.getElementById('js_add_dest_id_03').innerHTML = ''; } } /** * @brief 出発地のチェックボックス制御(とりあえず東京のみ) * */ function deptCheckBoxControll(param) { var form_obj = document.OPS_SEARCH; if(param=='TYO'){ //他の処理の都合でid名とか変更できないでの出発地の値を全部取得して処理する。 for (var i = 0; i < form_obj.ap.length; i++) { //東京にチェックが入ったら、成田、羽田にも入れる処理 if (form_obj.ap[i].value=='TYO' && form_obj.ap[i].checked==true) { //めんどうだがもう1度はじめからループ・・・ for (var j = 0; j < form_obj.ap.length; j++) { //表示されている時のみチェック(hiddenIDがある場合のみ) if(document.getElementById("js_hidden_HND")==true){ if ((form_obj.ap[j].value == 'NRT' && document.getElementById("js_hidden_NRT").style.display == 'block') || (form_obj.ap[j].value == 'HND' && document.getElementById("js_hidden_HND").style.display == 'block')) { form_obj.ap[j].checked = true; } }else{ //(hiddenIDがあるない時) if (form_obj.ap[j].value == 'NRT' || form_obj.ap[j].value == 'HND') { form_obj.ap[j].checked = true; } } } //東京のチェックがはずれたら、成田、羽田もはずす処理 }else if (form_obj.ap[i].value=='TYO' && form_obj.ap[i].checked==false) { //めんどうだがもう1度はじめからループ・・・ for (var j = 0; j < form_obj.ap.length; j++) { //表示されている時のみチェックはずす(hiddenIDがある場合のみ) if(document.getElementById("js_hidden_HND")==true){ if ((form_obj.ap[j].value == 'NRT' && document.getElementById("js_hidden_NRT").style.display == 'block') || (form_obj.ap[j].value == 'HND' && document.getElementById("js_hidden_HND").style.display == 'block')) { form_obj.ap[j].checked = false; } //(hiddenIDがあるない時) }else{ if (form_obj.ap[j].value == 'NRT' || form_obj.ap[j].value == 'HND') { form_obj.ap[j].checked = false; } } } } } } if(param=='NRT' || param=='HND'){ var NRT_flag=false; var HND_flag=false; //他の処理の都合でid名とか変更できないでの出発地の値を全部取得して処理する。 for (var i = 0; i < form_obj.ap.length; i++) { if(form_obj.ap[i].value=='NRT' && form_obj.ap[i].checked==true){ NRT_flag=true; } if(form_obj.ap[i].value=='HND' && form_obj.ap[i].checked==true){ HND_flag=true; } //成田、羽田のいづれかのチェックが外れたら、東京もはずす処理 if ((form_obj.ap[i].value=='NRT' && form_obj.ap[i].checked==false) || (form_obj.ap[i].value=='HND' && form_obj.ap[i].checked==false)) { //めんどうだがもう1度はじめからループ・・・ for (var j = 0; j < form_obj.ap.length; j++) { if (form_obj.ap[j].value == 'TYO') { form_obj.ap[j].checked = false; } } //成田、羽田両方のチェックが入ったら、東京にも入れる処理 }else if(NRT_flag==true && HND_flag==true) { //めんどうだがもう1度はじめからループ・・・ for (var j = 0; j < form_obj.ap.length; j++) { if (form_obj.ap[j].value == 'TYO') { form_obj.ap[j].checked = true; } } } } } } // if(param=='TYO'){ // if(document.getElementsByName('TYO').checked == true){ // document.getElementsByName('NRT').checked=true; // document.getElementsByName('HND').checked=true; // }else if(document.getElementsByName('TYO').checked == false){ // document.getElementsByName('NRT').checked=false; // document.getElementsByName('HND').checked=false; // } // } // if(param=='NRT' || param=='HND'){ // if (document.getElementsByName('NRT').checked == false || document.getElementsByName('HND').checked == false){ // document.getElementsByName('TYO').checked = false; // }else if (document.getElementsByName('TYO').checked == false && document.getElementsByName('NRT').checked == true && document.getElementsByName('HND').checked == true){ // document.getElementsByName('TYO').checked = true; // } // } //要素自体を削除したい時はこれ↓ // var dom_obj=document.getElementById('NRT'); // var dom_obj_parent=dom_obj.parentNode; // dom_obj_parent.removeChild(dom_obj); document.write(''); document.write(''); document.write('');