/**
 * タブ切り替え。
 */
function chgTab(num) {
    var topLeft = document.getElementById("topLeft");
    var topCenter = document.getElementById("topCenter");
    var topRight = document.getElementById("topRight");

    var tabIdx = document.getElementById("tabIndex");
    var tabArea = document.getElementById("main_search_middle_inner_area");
    var tabLine = document.getElementById("main_search_middle_inner_line");
    var tabMap = document.getElementById("main_search_middle_inner_map");
    var scOpt = document.getElementById("main_search_middle_inner_sc");
    var estab = document.getElementById("main_search_middle_inner_estab");

    // 地域タブが選択された場合
    if (num == 1) {
        topLeft.src = "/img/label_tiiki_act.png";
        topCenter.src = "/img/label_ensen_deact.png";
        topRight.src = "/img/label_tizu_deact.png";

        tabIdx.value = 1;
        tabArea.style.display = "block";
        tabLine.style.display = "none";
        tabMap.style.display = "none";
        scOpt.style.display = "block";
        estab.style.display = "block";

    // 路線タブが選択された場合
    } else if (num == 2) {
        topLeft.src = "/img/label_tiiki_deact.png";
        topCenter.src = "/img/label_ensen_act.png";
        topRight.src = "/img/label_tizu_deact.png";

        tabIdx.value = 2;
        tabArea.style.display = "none";
        tabLine.style.display = "block";
        tabMap.style.display = "none";
        scOpt.style.display = "block";
        estab.style.display = "block";

    // 地図タブが選択された場合
    } else if (num == 3) {
        topLeft.src = "/img/label_tiiki_deact.png";
        topCenter.src = "/img/label_ensen_deact.png";
        topRight.src = "/img/label_tizu_act.png";

        tabIdx.value = 3;
        tabArea.style.display = "none";
        tabLine.style.display = "none";
        tabMap.style.display = "block";
        scOpt.style.display = "none";
        estab.style.display = "none";
    }
}

/**
 * 市区町村を取得する。
 */
function getCitySel() {
    // リクエストの発行
    new Ajax.Request(
        "/c/sc/getCity",
        {
            "method" : "get",
            "parameters" : "data[Sc][aPrefCd]=" + document.getElementById("aPrefCd").value,
            "onComplete" : _setCitySel
        }
    );
}

/**
 * 市区町村をセットする。
 * @param req
 */
function _setCitySel(req) {

    // レスポンス取得
    var resTxt = req.responseText;

    // 配列取得
    var resArr = resTxt.split(",");

    // レスポンスが空の場合
    if(resArr == null || resArr.length == 0) {
        return;
    }

    _setOption(resArr, "aCityId");
}

/**
 * 路線を取得する。
 */
function getLineSel() {
    // リクエストの発行
    new Ajax.Request(
        "/c/sc/getLine",
        {
            "method" : "get",
            "parameters" : "data[Sc][lPrefCd]=" + document.getElementById("lPrefCd").value,
            "onComplete" : _setLineSel
        }
    );

    // 駅リストの取得
    var stsLst = document.getElementById("stationId");

    // 駅リストの削除
    while (stsLst.lastChild) {
        // 項目削除
        stsLst.removeChild(stsLst.lastChild);
    }

    // リストボックスに追加
    stsLst.options[0] = new Option("沿線を選択してください", "");
}

/**
 * 路線をセットする。
 * @param req
 */
function _setLineSel(req) {

    // レスポンス取得
    var resTxt = req.responseText;

    // 配列取得
    var resArr = resTxt.split(",");

    // レスポンスが空の場合
    if(resArr == null || resArr.length == 0) {
        return;
    }

    _setOption(resArr, "lineId");
}

/**
 * 駅を取得する。
 */
function getStationSel() {
    // リクエストの発行
    new Ajax.Request(
        "/c/sc/getStation",
        {
            "method" : "get",
            "parameters" : "data[Sc][lineId]=" + document.getElementById("lineId").value,
            "onComplete" : _setStationSel
        }
    );
}

/**
 * 駅をセットする。
 * @param req
 */
function _setStationSel(req) {

    // レスポンス取得
    var resTxt = req.responseText;

    // 配列取得
    var resArr = resTxt.split(",");

    // レスポンスが空の場合
    if(resArr == null || resArr.length == 0) {
        return;
    }

    _setOption(resArr, "stationId");
}

/**
 * セレクトボックスを生成します。
 * @param dataList セレクトボックスに設定するデータ
 * @param itemIde 対象ID
 */
function _setOption(dataList, itemId) {

    // 対象リストの取得
    var option = document.getElementById(itemId);

    // リストの削除
    while (option.lastChild) {
        // 項目削除
        option.removeChild(option.lastChild);
    }

    // リスト追加
    for(i = 0; i < dataList.length; i++) {

        // 配列取得
        val = dataList[i].split(":");

        // 終了判定
        if (val[0] == "last") {
            break;
        }

        // リストボックスに追加
        option.options[i] = new Option(val[1], val[0]);
    }
}

/**
 * マップをロードします。
 */
function load() {
    var geocoder = new GClientGeocoder();
    var address = "東京";

    if (GBrowserIsCompatible()) {
        // 地図を作成
        var map = new GMap2(document.getElementById("map"));

        geocoder.getLatLng(
            address,
            function(point) {
                if (point) {
                    // 地図属性の設定
                    map.clearOverlays();
                    map.setCenter(point, 15);
                    var marker = new GMarker(point);
                    map.addOverlay(marker);
                    map.addControl(new GLargeMapControl());
                    map.addControl(new GMapTypeControl());
                    map.enableContinuousZoom();
                    map.enableScrollWheelZoom();

                }
            }
        );
    }
}

/**
 * 施設名の標準表示を行います。
 */
function initEstab() {
    // 施設名
    var estab = document.getElementById("estab");
    // 初期フラグ
    var estabIn = document.getElementById("estabIn");
    // エレメントがある、入力値なし
    if (estab != null && estabIn != null && estab.value == "") {
        estab.value = "病院名、クリニック名を入力してください";
        estab.style.color = "gray";
        estabIn.value = "0";
    }
}

/**
 * 施設名を入力状態にします。
 */
function inputEstab() {
    // 施設名
    var estab = document.getElementById("estab");
    // 初期フラグ
    var estabIn = document.getElementById("estabIn");
    // エレメントがある
    if (estab != null && estabIn != null && estabIn.value == "0") {
        estab.value = "";
        estab.style.color = "black";
        estab.style.fontWeight = "";
        estabIn.value = "1";
    }
}

