﻿function GetObj(objName) {
    if (document.getElementById) { return eval('document.getElementById("' + objName + '")') }
    else
    { return eval('document.all.' + objName) }
}
//清空Select集合
function ClearSelectOptions(coll) {
    var length = coll.length;
    for (var i = length; i >= 0; i--)
        coll.remove(i);
}
//添加Select项
function AddSelectOption(coll, text, value) {
    coll.add(new Option(text, value));
}

//ajax request.
var http_request = false;
function send_request(method, url, content, responseType, callback) {//
    http_request = false;
    if (window.XMLHttpRequest)//Molzila Browers.
    {
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType)
            http_request.overrideMimeType("text/html");
    }
    else
        if (window.ActiveXObject)//IE Browers.
    {
        try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e) {
            try {
                http_request = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e) {
            }
        }
    }
    if (!http_request) {
        window.alert("Cann't initialize the instance of The XMLHttpRequest!");
        return false;
    }
    if (responseType.toLowerCase() == "text") {
        http_request.onreadystatechange = callback;
    }
    else
        if (responseType.toLowerCase() == "xml")
        http_request.onreadystatechange = callback;
    else {
        window.alert("Response parameters is wrong!");
        return false;
    }
    if (method.toLowerCase() == "get")
        http_request.open(method, url, true);
    else
        if (method.toLowerCase() == "post") {
        http_request.open(method, url, true);
        http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    }
    else {
        window.alert("Http request type parameters is wrong!");
        return false;
    }
    http_request.send(content);
}

function GetStartCity() {
    var province = GetObj("ddlStartProvince");
    if (province == null)
        return;
    if (province.value == "0") {
        var city = GetObj("ddlStartCity");
        var coll = city.options;
        ClearSelectOptions(coll);
        AddSelectOption(coll, "都市をお選びください。", "0");
    }
    GetObj("ddlArrivalProvince").disabled = "disabled";
    var url = window.location.href;
    var index = url.indexOf(".jp/");
    if (index < 0)
        index = url.indexOf("/jp/");
    if (index < 0)
        index = url.indexOf("Web/");
    if (index < 0) {
        alert("Invalid request!");
        return;
    }
    url = url.substring(index + 4);
    var root = url.split('/').length - 1;
    
    var WebRoot = "";
    for (var i = 1; i <= root; i++) {
        WebRoot += "../";
    }
//    http_request = false;
//    send_request("get", "../server/getcity.ashx?ProvinceID=" + province.value, null, "text", ShowDepartureCityInfo);
    var action = "ProvinceID=" + province.value;
    var options = {
        method: "get",
        parameters: action,
        onComplete: ShowDepartureCityInfo
    };
    new Ajax.Request(WebRoot + "server/getcity.ashx?no-cache=" + Math.random(), options);
}

function GetArrivalCity() {
    var province = GetObj("ddlArrivalProvince");
    if (province == null)
        return;
    if (province.value == "0") {
        var city = GetObj("ddlArrivalCity");
        var coll = city.options;
        ClearSelectOptions(coll);
        AddSelectOption(coll, "都市をお選びください。", "0");
    }
    GetObj("ddlStartProvince").disabled = "disabled";
//    http_request = false;
//    send_request("get", "../server/getcity.ashx?ProvinceID=" + province.value, null, "text", ShowArrivalCityInfo);
    var url = window.location.href;
    var index = url.indexOf(".jp/");
    if (index < 0)
        index = url.indexOf("/jp/");
    if (index < 0)
        index = url.indexOf("Web/");
    if (index < 0) {
        alert("Invalid request!");
        return;
    }
    url = url.substring(index + 4);
    var root = url.split('/').length - 1;
    var WebRoot = "";
    for (var i = 1; i <= root; i++) {
        WebRoot += "../";
    }
    var action = "ProvinceID=" + province.value;
    var options = {
        method: "get",
        parameters: action,
        onComplete: ShowArrivalCityInfo
    };
    new Ajax.Request(WebRoot + "server/getcity.ashx?no-cache=" + Math.random(), options);
}

function ShowDepartureCityInfo(response) {
    var value = response.responseText
    if (value.indexOf("??") > -1) {
        alert("获取发生错误！");
        return;
    }
    var departureCity = GetObj("ddlStartCity");
    if (departureCity == null)
        return;
    var collection = departureCity.options;
    ClearSelectOptions(collection);
    AddSelectOption(collection, "都市をお選びください。", "0");
    var result = value.split('|');
    for (var i = 0; i < result.length; i++) {
        var col = result[i].split('&');
        if (col.length != 2)
            continue;
        AddSelectOption(collection, col[0], col[1]);
    }
    GetObj("ddlArrivalProvince").disabled = "";

}
function ShowArrivalCityInfo(response) {
    var value = response.responseText
    if (value.indexOf("??") > -1) {
        alert("获取发生错误！");
        return;
    }
    var departureCity = GetObj("ddlArrivalCity");
    if (departureCity == null)
        return;
    var collection = departureCity.options;
    ClearSelectOptions(collection);
    AddSelectOption(collection, "都市をお選びください。", "0");
    var result = value.split('|');
    for (var i = 0; i < result.length; i++) {
        var col = result[i].split('&');
        if (col.length != 2)
            continue;
        AddSelectOption(collection, col[0], col[1]);
    }
    GetObj("ddlStartProvince").disabled = "";
}
