//---------------------------------------------------
// timetable.aspxのためのJS関数集
//
// ※1 UcJouKouLabelで使用するJSを実装
// ※2 UcConditionForDiaSearchで使用するJSを実装
// ※3 UcDecideJouKouEkiで使用するJSを実装
// 2009/01/29 フォームから値を取得し、別ウィンドウで駅別時刻表を表示するJSを追加
// 2009/02/10 I/F変更によりSetJoukouEkiForDirectが乗車・降車に分割
//            AJAXの非同期通信タイムアウトエラー関数追加
// 2009/03/01 表示する駅別時刻表URLの取得方法を見直し
//              (ダイヤ世代選択ボタンをHTMLコントロールからaspのRadioButtonに変更)
//---------------------------------------------------
//---------------------------------------------------
// AJAXの非同期通信タイムアウトエラーを制御する関数
//---------------------------------------------------
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function (sender, args) {
if (args.get_error() && args.get_response().get_timedOut()) {
alert('ご迷惑をおかけしております。\nただいまサービスがご利用いただけません。');
// remember to set errorHandled = true to keep from getting a popup from the AJAX library itself
args.set_errorHandled(true);
}
});

//---------------------------------------------------
// ラジオボタンから選択項目を取り出す関数
//---------------------------------------------------
    function ExtractCheckedElement(rbl){
        var i;

        // ラジオボタンリストの選択項目の確認
        if (rbl.length){
            for (i=0; i<=rbl.length-1; i++){
                if (rbl[i].checked){
                    return rbl[i];
                }
            }
        }else{
                if (rbl.checked){
                    return rbl;
                }
        }
    }
    
//---------------------------------------------------
// セレクトボックスから選択項目を取り出す関数
//---------------------------------------------------
    function ExtractSelectedElement(ddl){
        var i;

        // セレクトボックスの選択項目の確認
        i = ddl.selectedIndex;

        return ddl.options[i];
    }
    
//---------------------------------------------------
// 乗降車ラベルUCクラス
//---------------------------------------------------
    var UcJouKouLabel = function(){
        var lbl_Jousha_Id = "ctl00_ContentPlaceHolder1_UcJouKouLabel1_lbl_Jousha";
        var hdn_Jousha_Id = "ctl00_ContentPlaceHolder1_UcJouKouLabel1_hdn_Jousha";
        var lbl_Kousha_Id = "ctl00_ContentPlaceHolder1_UcJouKouLabel1_lbl_Kousha";
        var hdn_Kousha_Id = "ctl00_ContentPlaceHolder1_UcJouKouLabel1_hdn_Kousha";
        
        this.Lbl_JoushaEki = document.getElementById(lbl_Jousha_Id);
        this.Hdn_JoushaEki = document.getElementById(hdn_Jousha_Id);
        this.Lbl_KoushaEki = document.getElementById(lbl_Kousha_Id);
        this.Hdn_KoushaEki = document.getElementById(hdn_Kousha_Id);
    }

//---------------------------------------------------
// 最適列車検索付加条件UCクラス
//---------------------------------------------------
    var UcConditionForDiaSearch = function(){
        var lbl_ErrorMessage_Id = "ctl00_ContentPlaceHolder1_UcConditionForDiaSearch1_vld_Jikoku";
        var ddl_Month_Id = "ctl00_ContentPlaceHolder1_UcConditionForDiaSearch1_ddl_Jikoku_Month";
        var ddl_Day_Id = "ctl00_ContentPlaceHolder1_UcConditionForDiaSearch1_ddl_Jikoku_Day";
        var ddl_Hour_Id = "ctl00_ContentPlaceHolder1_UcConditionForDiaSearch1_ddl_Jikoku_Hour";
        var ddl_Minute_Id = "ctl00_ContentPlaceHolder1_UcConditionForDiaSearch1_ddl_Jikoku_Minute";

        this.Lbl_ErrorMessage = document.getElementById(lbl_ErrorMessage_Id);
        this.Ddl_Month = document.getElementById(ddl_Month_Id);
        this.Ddl_Day = document.getElementById(ddl_Day_Id);
        this.Ddl_Hour = document.getElementById(ddl_Hour_Id);
        this.Ddl_Minute = document.getElementById(ddl_Minute_Id);
        
        this.Rbl_JouKou=document.aspnetForm.ctl00$ContentPlaceHolder1$UcConditionForDiaSearch1$JK;
        this.Rbl_MuSky=document.aspnetForm.ctl00$ContentPlaceHolder1$UcConditionForDiaSearch1$Mu;
        this.Rbl_Norikae=document.aspnetForm.ctl00$ContentPlaceHolder1$UcConditionForDiaSearch1$Norikae;
    }

//---------------------------------------------------
// 路線図タブのクラス
//---------------------------------------------------
    var TabRosenzu = function(){
//        var rbl_JouKou_Id = "";
        
        this.Rbl_JouKou=document.aspnetForm.InOut;
    }
    

//---------------------------------------------------
// 乗降車ラベルUCの乗車駅と降車駅の内容を入れ替える関数
//---------------------------------------------------
    function ExchangeJouKouEki(){
//        alert("ExchangeJouKouEki Start");
        var joukouLabel = new UcJouKouLabel();//90;
        var joumei;
        var joucode;
       
        joumei=joukouLabel.Lbl_JoushaEki.innerHTML;
        joucode=joukouLabel.Hdn_JoushaEki.value;
        
        joukouLabel.Lbl_JoushaEki.innerHTML = joukouLabel.Lbl_KoushaEki.innerHTML;
        joukouLabel.Hdn_JoushaEki.value = joukouLabel.Hdn_KoushaEki.value;
        
        joukouLabel.Lbl_KoushaEki.innerHTML = joumei;
        joukouLabel.Hdn_KoushaEki.value = joucode;
//        alert("ExchangeJouKouEki End");
    }

////---------------------------------------------------
//// 駅別時刻表検索結果画面に遷移する関数
//// SetJouKouEkiForDirect(),SetJoushaForPrincipal(),
//// SetJoushaForSyllabary(),SetJoushaForRosenMei()から呼び出される
////---------------------------------------------------
    function RequestSearchResult(){
        var joukouLabel = new UcJouKouLabel();
        var jmei = joukouLabel.Lbl_JoushaEki.innerHTML;
        var jmei_enc = encodeURI(jmei);
        var jcode = joukouLabel.Hdn_JoushaEki.value;
        
        //乗車駅の確認
        if (!jmei) {
                //乗車駅が選択されていない場合
//                alert("乗車駅を選択してください。");
            //処理を離脱する
            return 0;/**/
        }
        
        var params = "";
        
//        params = params + "?jmei=" + jmei_enc;
        params = params + "?jcode=" + jcode;
        
//        alert(params);
//        document.aspnetForm.action = "./SearchSaitekiRessha2.aspx" + params;
        location.href="./timetable2.aspx"+params;
    }

//---------------------------------------------------
// 乗降車ラベルUCに乗車駅名とコードをセットする関数
//---------------------------------------------------
    function SetJousha(ekimei, ekicode){
        //alert("SetJousha Start");
        var joukouLabel = new UcJouKouLabel();//90;
        joukouLabel.Lbl_JoushaEki.innerHTML = ekimei;
        joukouLabel.Hdn_JoushaEki.value = ekicode;
            /*SetEkimei("ctl00_ContentPlaceHolder1_lbl_Jousha", ekimei);
            SetEkicode("ctl00_ContentPlaceHolder1_hdn_Jousha", ekicode);*/
        //alert("SetJousha End");
    }

//---------------------------------------------------
// 乗降車ラベルUCに降車駅名とコードをセットする関数
//---------------------------------------------------
    function SetKousha(ekimei, ekicode){
//        alert("start");
        var joukouLabel = new UcJouKouLabel();//90;
        joukouLabel.Lbl_KoushaEki.innerHTML = ekimei;
        joukouLabel.Hdn_KoushaEki.value = ekicode;
            /*SetEkimei("ctl00_ContentPlaceHolder1_lbl_Kousha", ekimei);
            SetEkicode("ctl00_ContentPlaceHolder1_hdn_Kousha", ekicode);*/
//        alert("end");
    }
    
//---------------------------------------------------
// 乗降車ラベルUCに駅候補リストから乗車駅名とコードをセットする関数
//---------------------------------------------------
    function SetJouKouFromKouhoList(id_select, is_jousha){
        var select;
        var idx;
        //alert("SetJouKouFromKouhoList Start");
        
        // 指定の駅候補のリストボックスの要素を取得する
        select=document.getElementById(id_select);

        //駅候補リストで選択されている項目のインデックスを取得する
        idx=select.selectedIndex;

        //インデックスの値の確認
        if (idx>=0) {
            //項目が選択されている場合

// ＊＊＊＊＊　↓今回追加ここから↓　＊＊＊＊＊
            //空項目か確認
            if (select.options[idx].value == "0000") {
                //空の場合

                if (true==is_jousha) {
                    alert("乗車駅を選択してください。");
                    return;
                }
            }
//  ＊＊＊＊＊　↑今回追加ここまで↑　＊＊＊＊＊            
            if (true==is_jousha) {
                SetJousha(select.options[idx].text, select.options[idx].value);
            }
        }
        else{
            //項目が選択されていない場合
            if (true==is_jousha) {
                alert("乗車駅を選択してください。");
            }
        }
        //alert("SetJouKouFromKouhoList End");
    }
    
//---------------------------------------------------
// 直接入力用のための、乗降車ラベルUCに乗降車駅情報をセットする関数
//---------------------------------------------------
    function SetJouKouEkiForDirect(){
//        alert("start");
        // 直接入力の乗車駅候補リストで選択されている項目を乗車駅ラベルに代入する
        SetJouKouFromKouhoList("ctl00_ContentPlaceHolder1_UcDecideJouKouEki1_TabContainer1_TabPanel1_lbx_Jousha",true);

        // 直接入力の降車駅候補リストで選択されている項目を降車駅ラベルに代入する
//        SetJouKouFromKouhoList("ctl00_ContentPlaceHolder1_UcDecideJouKouEki1_TabContainer1_TabPanel1_lbx_Kousha",false);
//        alert("end");
        RequestSearchResult();
        
        //乗降車ラベルUC内のアンカーに移動する
        location.href = "#a_JouKou";
    }

//---------------------------------------------------
// 直接入力用のための、乗降車ラベルUCに乗車駅情報をセットする関数
//---------------------------------------------------
    function SetJoushaForDirect(){
//        alert("start");
        // 直接入力の乗車駅候補リストで選択されている項目を乗車駅ラベルに代入する
        SetJouKouFromKouhoList("ctl00_ContentPlaceHolder1_UcDecideJouKouEki1_TabContainer1_TabPanel1_lbx_Jousha",true);
        
        RequestSearchResult();

        //乗降車ラベルUC内のアンカーに移動する
        location.href = "#a_JouKou";
//        alert("end");
    }
    
//---------------------------------------------------
// 主要駅から選択のための、乗車ラベルUCに乗車駅情報をセットする関数
//---------------------------------------------------
    function SetJoushaForPrincipal(){
        //alert("start");
        // 主要駅から選ぶの乗車駅候補リストで選択されている項目を乗車駅ラベルに代入する
        SetJouKouFromKouhoList("ctl00_ContentPlaceHolder1_UcDecideJouKouEki1_TabContainer1_TabPanel_MainStation_lbx_PrincipalEki",true);
       //alert("end"); 
        RequestSearchResult();
        
        //乗降車ラベルUC内のアンカーに移動する
        location.href = "#a_JouKou";
    }


//---------------------------------------------------
// 50音から選択のための、乗降車ラベルUCに乗車駅情報をセットする関数
//---------------------------------------------------
    function SetJoushaForSyllabary(){
        //alert("start");
        // 50音から選ぶの乗車駅候補リストで選択されている項目を乗車駅ラベルに代入する
        SetJouKouFromKouhoList("ctl00_ContentPlaceHolder1_UcDecideJouKouEki1_TabContainer1_TabPanel_50On_lbx_Syllabary",true);
       //alert("end"); 
        
        RequestSearchResult();
        
        //乗降車ラベルUC内のアンカーに移動する
        location.href = "#a_JouKou";
    }

//---------------------------------------------------
// 路線名から選択のための、乗車ラベルUCに乗降車駅情報をセットする関数
//---------------------------------------------------
    function SetJoushaForRosenMei(){
        //alert("start");
        // 路線名から選ぶの乗車駅候補リストで選択されている項目を乗車駅ラベルに代入する
        SetJouKouFromKouhoList("ctl00_ContentPlaceHolder1_UcDecideJouKouEki1_TabContainer1_TabPanel_RosenName_lbx_RosenMei",true);
       //alert("end"); 
        RequestSearchResult();
        
        //乗降車ラベルUC内のアンカーに移動する
        location.href = "#a_JouKou";
    }

//---------------------------------------------------
// 路線図から選択のための、タブクリック時に路線図がメインに映るように移動するための関数
//---------------------------------------------------
    function TransferRosenzuTop(sender, args){
	//駅別時刻表では特に何もしない
/*        alert(sender.get_activeTabIndex());
        var tab_index;
        tab_index = sender.get_activeTabIndex();
        if (tab_index == 4){
            //路線図を選ぶタブの時だけページ内遷移
            location.href = "#a_RosenzuTop";
        }
        switch(tab_index){
            //路線図を選ぶタブの時だけページ内遷移
            case 4: location.href = "#a_RosenzuTop"; break;
        }*/
        
    }

//---------------------------------------------------
// 路線図から選択のための、乗降車ラベルUCに乗降車駅情報をセットする関数
//---------------------------------------------------
    function SetEkiInfoForRosenzu(rosenmei, rosencode){
        var rosenzu = new TabRosenzu();
        var joukou = new UcJouKouLabel();
        var selected;
        selected = true;
        selected.value = 1;
        //alert("Flashクリック" + rosenmei + rosencode);
                joukou.Lbl_JoushaEki.innerHTML=rosenmei;
                joukou.Hdn_JoushaEki.value=rosencode;
        
//        // ラジオボタンリストの選択項目値の確認
//        alert(document.aspnetForm.InOut.length);
//        if (selected){
//            //alert("selected");
//            if (selected.value==1){
//                //alert("jousha");
//                joukou.Lbl_JoushaEki.innerHTML=rosenmei;
//                joukou.Hdn_JoushaEki.value=rosencode;
//            }
//        }
        RequestSearchResult();

//        if (selected){
            //乗降ラベルのアニメーションを駆動するためのボタンを押す
//            var btnAnima;
//            var btnAnima_ID = "ctl00_ContentPlaceHolder1_UcDecideJouKouEki1_TabContainer1_TabPanel2_btn_AnimateJouKouLabelForRosenzu";
//            btnAnima = document.getElementById(btnAnima_ID);
//            btnAnima.click();
//        }        
        
        //乗降車ラベルUC内のアンカーに移動する
        location.href = "#a_JouKou";
    }
    
    function CheckSelectedDirectJouKou(){
        var idx_j;
        var idx_k;
        var value_j;
        var value_k;
        
        // 乗車駅候補のリストボックスで選択されている項目のインデックスを取得する
        idx_j=document.getElementById("ctl00_ContentPlaceHolder1_UcDecideJouKouEki1_TabContainer1_TabPanel1_lbx_Jousha").selectedIndex;

        //インデックスの値の確認
        if (idx_j>=0) {
            //項目が選択されている場合
            document.getElementById("img_DecideEki").disabled=false;
        }
        else{
            //項目が選択されていない場合→何もしない
        }
        
//        // 降車駅候補のリストボックスで選択されている項目のインデックスを取得する
//        idx_k=document.getElementById("ctl00_ContentPlaceHolder1_UcDecideJouKouEki1_TabContainer1_TabPanel1_lbx_Kousha").selectedIndex;

//        //インデックスの値の確認
//        if (idx_k>=0) {
//            //項目が選択されている場合
//            document.getElementById("img_DecideEki").disabled=false;
//        }
//        else{
//            //項目が選択されていない場合→何もしない
//        }
        RequestSearchResult();
        
        
        //乗降車ラベルUC内のアンカーに移動する
        location.href = "#a_JouKou";
   }

//---------------------------------------------------
// フォームから駅別時刻表検索へのＵＲＬを取得し、別ウィンドウで開く関数
//---------------------------------------------------
    function setEkibetsu(){
        var jcode;
        var homen;
        var homenIdx;
        var homenValue;
        var sedai;
        var sedaiIdx;
        var sedaiValue;
        var heiq;
        var heiqValue       
        var i;
        var ekibetsuURL; //駅別時刻表へのＵＲＬを格納
        var rbArraySedai;
        var rbSedai;
        //乗車駅コードの取得
        jcode = document.getElementById("ctl00_ContentPlaceHolder1_UcJouKouLabel1_hdn_Jousha").value;
        
        //選択した方面番号の取得
        homen=document.aspnetForm.Homen;
        if(homen.length){
            for (i = 0; i < homen.length; i++){
                if (homen[i].checked){
                    homenValue=homen[i].value;
                }
            }
        } else {
        //方面が1つの場合
            if (homen.checked) {
                homenValue=homen.value;
            }
        }
        
        //方面のValueが異常な値なら警告
        if ((homenValue.length == 1 || homenValue.length == 2)){
        } else{
           alert("方面を選択してください");
           return;
        }
        
        //平休区分の取得
        heiq=document.aspnetForm.Heiq;
        if(heiq.length){
            for (i = 0; i < heiq.length; i++){
                if (heiq[i].checked){
                    heiqValue=heiq[i].value;
                }
            }
        } else {
            if (heiq.checked) {
            }
        }

        if (heiqValue.length != 1){
           alert("平日／休日を選択してください");
           return;
        }
        
        //世代区分の取得
        //ダイヤ改正前で、世代区分のラジオボタンがある場合のみ世代区分の選択された値を取得
        //ダイヤ改正前後選択ラジオボタンをHTMLコントロールからaspxのコントロールに変更
        //→参照するＩＤを変更
        if(document.aspnetForm.ctl00$ContentPlaceHolder1$Sedai){
          rbArraySedai = document.aspnetForm.ctl00$ContentPlaceHolder1$Sedai;
          rbSedai = ExtractCheckedElement(rbArraySedai);
          sedai = rbSedai.value;
        }else{
          sedai = "";
        }

        //世代区分がある場合：sedaiValueがRadioSedaiBefore1なら現行世代、RadioSedaiAfter1なら改正後の時刻表を表示する
        //世代区分が無い場合：現行世代の時刻表を表示する
        if (sedai== "RadioSedaiBefore1"){
//            alert("発駅コード：" + jcode + ",方面：" + homenValue  + ",平休：" + heiqValue + ",世代：" + sedaiValue);     
            ekibetsuURL = document.getElementById("ctl00_ContentPlaceHolder1_HiddenEkibetsu").value + jcode + homenValue + heiqValue + ".html";
        }else if(sedai== "RadioSedaiAfter1"){
            ekibetsuURL = document.getElementById("ctl00_ContentPlaceHolder1_HiddenEkibetsuNew").value + jcode + homenValue + heiqValue + ".html";
        } else{
//            alert("発駅コード：" + jcode + ",方面：" + homenValue + ",平休：" + heiqValue);
            ekibetsuURL = document.getElementById("ctl00_ContentPlaceHolder1_HiddenEkibetsu").value + jcode + homenValue + heiqValue + ".html";
        }
        window.open(ekibetsuURL,"_blank");
    }

//　表示させているエラー情報を非表示にする
    function hideErrorLabel(){
        if(document.getElementById("ctl00_ContentPlaceHolder1_PanelSearchNG")){
        document.getElementById("divSearchCondition").style.display="none";
        document.getElementById("ctl00_ContentPlaceHolder1_PanelSearchNG").style.display="none";
        }else{
        true;
        }
}