var currentInput;
var speed = 10;
var searchType = 2; //1：线路，2：站点，3：站站
var resultType = 2;//1:公交,2:列车时刻
document.domain = "gongjiao.com";
$(document).ready(function() {
    $("#SearchTrain").click(function(e) { searchType = 1; settab(1); });
    $("#SearchStation").click(function(e) { searchType = 2; settab(2); });
    $("#SearchStation2Station").click(function(e) { searchType = 3; settab(3); });
    $("#station").bind("focus", StationFocus);
    $("#train").bind("focus", TrainFocus);
    $("#start").bind("focus", StartFocus);
    $("#end").bind("focus", EndFocus);
    $("#btnSearch").bind("click", SearchClick);
    $("#station").bind("blur", hideDiv);
    $("#train").bind("blur", hideDiv);
    $("#start").bind("blur", hideDiv);
    $("#end").bind("blur", hideDiv);
    $("#station").bind("keyup", StationKeyUp);
    $("#train").bind("keyup", TrainKeyUp);
    $("#start").bind("keyup", StartKeyUp);
    $("#end").bind("keyup", EndKeyUp);
    if (/chezhan/.exec(window.location.href)) {
        $("#SearchStation").trigger("click");
    }
    else if (/checi/.exec(window.location.href)) {
        $("#SearchTrain").trigger("click");
    }
    else {
        $("#SearchStation2Station").trigger("click");
    }
});

var StationFocus = function(event) {
    currentInput = event.target;
    $("#station").css("color", "#000");
    if ($("#station").val().indexOf("输入") > -1)
        $("#station").val("");
    if ($(event.target).val() == "") {
        initSmartDiv(searchType == 1 ? eval('(' + TrainJson + ')').Train : eval('(' + StationJson + ')').Station);
        ShowSmartSearch(event);
    } else {
        getStationList($(event.target).val(), event);
    }
};

var TrainFocus = function(event) {
    currentInput = event.target;
    $("#train").css("color", "#000");
    if ($("#train").val().indexOf("输入") > -1)
        $("#train").val("");
    if ($(event.target).val() == "") {
        initSmartDiv(searchType == 1 ? eval('(' + TrainJson + ')').Train : eval('(' + StationJson + ')').Station);
        ShowSmartSearch(event);
    } else {
        getTrainList($(event.target).val(), event);
    }
};

var StartFocus = function(event) {
    currentInput = event.target;
    if ($("#start").val() == "出发公交车站")
        $("#start").val("");
    $("#start").css("color", "#000");
    if ($(event.target).val() == "") {
        initSmartDiv(eval('(' + StationJson + ')').Station);
        ShowSmartSearch(event);
    } else {
        getStationList($(event.target).val(), event);
    }
    ShowSmartSearch(event);
};

var EndFocus = function(event) {
    currentInput = event.target;
    if ($("#end").val() == "到达公交车站")
        $("#end").val("");
    $("#end").css("color", "#000");
    if ($(event.target).val() == "") {
        initSmartDiv(eval('(' + StationJson + ')').Station);
        ShowSmartSearch(event);
    } else {
        getStationList($(event.target).val(), event);
    }
};

var StationKeyUp = function(event) {
    var key = window.event ? event.keyCode : event.which;
    //currentInput = event.target;
    if (key != 40 && key != 38) {
        getStationList($(event.target).val(), event);
    } else {
        if (key == 40) {
            Move(1);
        }
        if (key == 38) {
            Move(-1);
        }
    }
};

var TrainKeyUp = function(event) {
    var key = window.event ? event.keyCode : event.which;
    //currentInput = event.target;
    if (key != 40 && key != 38) {
        getTrainList($(event.target).val(), event);

    } else {
        if (key == 40) {
            Move(1);
        }
        if (key == 38) {
            Move(-1);
        }
    }
};

var StartKeyUp = function(event) {
    var key = window.event ? event.keyCode : event.which;
    //currentInput = event.target;
    if (key != 40 && key != 38) {
        getStationList($(event.target).val(), event);
    } else {
        if (key == 40) {
            Move(1);
        }
        if (key == 38) {
            Move(-1);
        }
    }
};

var EndKeyUp = function(event) {
    var key = window.event ? event.keyCode : event.which;
    //currentInput = event.target;
    if (key != 40 && key != 38) {
        getStationList($(event.target).val(), event);
    } else {
        if (key == 40) {
            Move(1);
        }
        if (key == 38) {
            Move(-1);
        }
    }

};

var SearchClick = function(event) {
    if (checkInput1()) {
        var url = "";
        if (searchType == 1) {
            url = "http://" + getcitys + ".gongjiao.com/so.html?k=pp&q=" + escape($("#train").val());
            if (resultType == 1)
                url = "http://www.58.com/huochepiao/" + encodeURI(replaceChar($("#train").val(),"\/", "|"));
        }
        if (searchType == 2) {
			            url = "http://" + getcitys + ".gongjiao.com/so.html?k=p&q=" + escape($("#station").val());
        }
        if (searchType == 3) {
            url = "http://" + getcitys + ".gongjiao.com/so.html?k=p2p&q=" + escape($("#start").val()) + "&q1=" + escape($("#end").val());
            if (resultType == 1)
                url = "http://www.58.com/huochepiao/" + encodeURI($("#start").val()) + "_" + encodeURI($("#end").val());
        }
        window.location.href = url;
    } else {
        return false;
    }
};

var replaceChar = function(str, old, nchar) {
    while (str.indexOf(old) > -1) {
        str = str.replace(old, nchar);
    };
    return str;
}

var Move = function(len) {
    if ($("#divSmartList").find("span").length < 1) return;
    var i = 0;
    var $item = $("#divSmartList span.current:eq(0)");
    var obj = new Object();
    obj.data = new Object();
    if ($("#divSmartList span").size() > 0) {
        if ($item.size() > 0) {
            $item.removeClass();
            if (len == 1 && $item.next("span")) {
                obj.data.arg = "#" + $item.next("span").attr("id");
            } else if (len == -1 && $item.prev("span")) {
                obj.data.arg = "#" + $item.prev("span").attr("id");
            }
        } else {
            obj.data.arg = "#" + $("#divSmartList span:eq(0)").attr("id");
        }
        SetColorOver(obj);
        ItemSelected(obj);
    }
}


var checkInput1 = function() {
    var station = $("#station").val();
    var train = $("#train").val();
    var start = $("#start").val();
    var end = $("#end").val();
    if (searchType == 1) if (train == "" || train == "请输入线路名称") { alert("请输入正确格式的线路名称!~"); return false; }
    if (searchType == 2) if (station == "" || station == "请输入站点名称") { alert("请输入站点名称!~"); return false; }
    if (searchType == 3) {
        if (start == "" || start == "出发公交车站") { alert("出发公交车站!~"); return false; }
        if (end == "" || end == "到达公交车站") { alert("到达公交车站!~"); return false; }
    }
    return true;
};
var isCheci = function(checi) {
    var patrn = /^([a-zA-Z]+)?\d+(\/([a-zA-Z]+)?\d+)*$/;
    if (!patrn.exec(checi)) return false;
    return true;
}

var Tab = function(input) {
    resultType = input;
    if (input == 1) {
        $("#tab1_1tab").attr("className", "tab curtab");
        $("#tab1_2tab").attr("className", "tab");
        $("#rd3").css("display", "none");
        $("#SearchStation2Station").trigger("click");
    }
    if (input == 2) {
        $("#tab1_1tab").attr("className", "tab");
        $("#tab1_2tab").attr("className", "tab curtab");
        $("#rd3").css("display", "");
    }
};

var settab = function(index) {
    if (index == 1) {
        $("#train").val($("#train").val() == "" ? "请输入线路名称" : $("#train").val());
        $("#train").css("color", $("#train").val() == "请输入线路名称" ? "#ccc" : "#000");
    }
    if (index == 2) {
        $("#station").val($("#station").val() == "" ? "请输入站点名称" : $("#station").val());
        $("#station").css("color", $("#station").val() == "请输入站点名称" ? "#ccc" : "#000");
    }
    if (index == 3) {
        $("#start").val($("#start").val() == "" ? "出发公交车站" : $("#start").val());
        $("#end").val($("#end").val() == "" ? "到达公交车站" : $("#end").val());
        $("#start").css("color", $("#start").val() == "出发公交车站" ? "#ccc" : "#000");
        $("#end").css("color", $("#end").val() == "到达公交车站" ? "#ccc" : "#000");
    }
    for (i = 1; i <= 3; i++) {
        if (i == index) {
            $('#s_box' + i).css("display", "inline");
            $("#rd" + i).addClass("selected");
        }
        else {
            $('#s_box' + i).css("display", "none");
            $("#rd" + i).removeClass("selected");
        }
    }    
};
var hideDiv = function() {
    if (searchType == 1) {
        if ($("#train").val().trim() == "") {
            $("#train").val("请输入线路名称");
            $("#train").css("color", "#ccc");
        }
    }
    if (searchType == 2) {
        if ($("#station").val().trim() == "") {
            $("#station").val("请输入站点名称");
            $("#station").css("color", "#ccc");
        }
    }
    if (searchType == 3) {
        if ($("#start").val().trim() == "") { $("#start").val("出发公交车站"); $("#start").css("color", "#ccc"); }
        if ($("#end").val().trim() == "") { $("#end").val("到达公交车站"); $("#end").css("color", "#ccc"); }
    }
    $("#divSmartList").hide();
};

var getTrainList = function(arg, target) {
    if ($.trim(arg) != "") {
        $.getJSON("http://" + getcitys + ".gongjiao.com/ajax.html", { action: "train", "num": 6, key: escape($.trim(arg)) }, function(json) {
            initSmartDiv(json.Train);
            ShowSmartSearch(target);
        });
    }
};

var getStationList = function(arg, target) {
    if ($.trim(arg) != "") {
        $.getJSON("http://" + getcitys + ".gongjiao.com/ajax.html", { action: "station","num":6, key: escape($.trim(arg)) }, function(json) {
            initSmartDiv(json.Station);
            ShowSmartSearch(target);
        });
    }
};

var initSmartDiv = function(json) {
    var title = json.length > 0 ? "" : "<span>没有找到匹配项</span>";
    $("#divSmartList").html(title);
    for (var i = 1; i <= json.length; i++) {
        var item = $("<span></span>");
        item.bind("mousedown", { arg: "#item" + i }, ItemSelected);
        item.bind("mouseover", { arg: "#item" + i }, SetColorOver);
        item.bind("mouseout", { arg: "#item" + i }, SetColorOut);
        item.html(json[i - 1].Item);
        item.attr("id", "item" + i);
        item.attr("title", json[i - 1].Item);
        $("#divSmartList").append(item);
    }
};

var ShowSmartSearch = function(event) {
    var offset = $(event.target).offset();
    $("#divSmartList").css({ top: offset.top + 8 + $(event.target).height() + "px", left: offset.left });
    $("#divSmartList").css({ width: $(event.target).width() + 8 + "px" });
    $("#divSmartList").show(speed);
    //$("#divSmartList").css({ "z-index": 9999 });
};

var ItemSelected = function(arg) {
    if ($(arg.data.arg).html())
        $(currentInput).val($(arg.data.arg).html());
};

var SetColorOver = function(arg) {
    $("#divSmartList span.current:eq(0)").removeClass();
    $(arg.data.arg).addClass("current");
};

var SetColorOut = function(arg) {
    $(arg.data.arg).removeClass();
}

//删除字符串两端的空格
String.prototype.trim = function() {
    return this.replace(/(^\s*)|(\s*$)/g, "");
}
var TrainJson = "{\"Train\":[1]}";
var StationJson = "{\"Station\":[1]}";