﻿var keywordValue;
var curLineNum = 0; //当前选中序号
var nextLineNum = 0; //目标序号
var totalLine = 0; //总行数
var selectCss = "xg2";
var notSelectCss = "xg1";


var drop_curpage = 1;
var drop_totalPages = 0;
var drop_leftPages = 0;
var drop_datas = new Array();

var txt_keyword = jQuery("#" + txt_keywordId)



function divdispy(obj) {
    return typeof (obj) == "string" ? document.getElementById(obj) : obj;
}
function divdispy_Onclick() {

    if (document.activeElement.id != txt_keyword.attr("id")) {
        divdispy(dropdownDiv).style.display = 'none';
    }
}

if (isFirefox = navigator.userAgent.indexOf("Firefox") > 0) {
    txt_keyword.blur(function() {
        jQuery("#dropdownDiv").hide();
    });
}
else {
    window.document.onclick = divdispy_Onclick;
}

txt_keyword.focus(function() {
    if (txt_keyword.val() == '') {
        jQuery(this).val("");
    }
    jQuery("#dropdownDiv").show();
});

txt_keyword.keydown(function(evt) {
    input_down(evt, jQuery(this).val());
});

txt_keyword.keyup(function() {
    if (keywordValue != jQuery(this).val()) {
        keywordValue = jQuery(this).val();
        repaintList();
    }
});

var getKeyCode = function(e) { e = e || window.event; return e.keyCode; };

var input_down = function(e, valuestr) {
    var keyCode = getKeyCode(e);
    //alert(keyCode+';'+valuestr);
    //←↑→↓ 37 38 39 40 
    //Enter 13
    //Tab 9
    var curLine, nextLine;
    if (keyCode == 40) {
        //选中下一个，如果是最后一个选第一个
        if (curLineNum < totalLine - 1) {
            nextLineNum = curLineNum + 1;
            curLine = "rowline" + curLineNum;
            nextLine = "rowline" + nextLineNum;
            replaceCss(curLine, nextLine);
        }
    }
    if (keyCode == 38) {
        if (curLineNum > 0) {
            nextLineNum = curLineNum - 1;
        }
        else {
            curLineNum = 1;
            nextLineNum = 0;
        }
        replaceCss(curLine, nextLine);
    }
    if (keyCode == 13 || keyCode == 39) {
        jQuery("#dropdownDiv").hide();
        var modelname = jQuery("#rowline" + curLineNum).text();
        keywordValue = modelname;
        setModel(modelname);
        document.getElementById("Header1_btn_search").click();
        return false;
    }
    //    if (keyCode == 13 || keyCode == 38 || keyCode == 40 || keyCode == 39) {
    //        setModel(jQuery("#rowline" + curLineNum).text());
    //    }

    if (keyCode != 13 && keyCode != 38 && keyCode != 40 && keyCode != 39) {
        curLineNum = 0;
        nextLineNum = 0;
    }
}

function replaceCss() {
    var curLine = "rowline" + curLineNum;
    var nextLine = "rowline" + nextLineNum;
    if (jQuery("#" + nextLine)) {
        mout(curLine);
        mon(nextLine);
        curLineNum = nextLineNum;
    }
}


function setModel(modelname) {
    if (modelname != "")
        txt_keyword.val(modelname);
}

function selectM(modelname) {
    jQuery("#dropdownDiv").hide();
    setModel(modelname);
}

function mon(obj) {
    curLineNum = obj.replace("rowline", "");
    jQuery("#rowline0").removeClass(selectCss);
    jQuery("#rowline0").addClass(notSelectCss);

    jQuery("#" + obj).removeClass(notSelectCss);
    jQuery("#" + obj).addClass(selectCss);
    scrolldiv(obj);
}
function scrolldiv(obj) {
    var p = jQuery("#" + obj).position();
    var h = jQuery("#xgss").height();
    var h2 = jQuery("#" + obj).height();
    if (p.top > h - h2) {
        jQuery("#xgss").scrollTop(jQuery("#xgss").scrollTop() + h - h2);
        //2009-8-10 add
        appendPage();
    }
    if (p.top < 0) {
        jQuery("#xgss").scrollTop(jQuery("#xgss").scrollTop() - h + h2);
    }

}
function mout(obj) {
    jQuery("#" + obj).removeClass(selectCss)
    jQuery("#" + obj).addClass(notSelectCss)
}

//2009-8-10 add
jQuery("#xgss").scroll(function() {
    var h = this.scrollHeight;
    var t = this.scrollTop;
    var h2 = this.clientHeight;
    if (t + h2 == h) {
        //alert(h+':'+t+':'+h2+drop_datas[drop_curpage]);
        appendPage();
    }
});

//2009-8-10 add
function appendPage() {
    if (drop_leftPages > 0) {
        jQuery("#listTable").append(drop_datas[drop_curpage]);
        drop_leftPages--;
        drop_curpage++;
    }
}

function repaintList() {
    if (jQuery("#listTable")) {
        jQuery("#listTable").html("");
    }
    var data = "";
    var keywordArray = new Array();
    var i, j, k;
    keywordArray = keywordValue.split(" ");

    j = 0;

    //init page vars
    var pageIndex = 0;
    drop_totalPages = 1;
    drop_leftPages = 0;
    drop_curPage = 0;
    drop_datas = new Array();

    for (i = 0; i < carlist.length; i++) {
        var arrs = carlist[i].split(";");
        //var newoption=new Option(arrs[1],arrs[1],false,false);
        //jQuery('modelname').options[i+1]=newoption;
        var existkeyword = false;
        if (keywordValue == "") {
            existkeyword = true;
        }
        else {
            for (k = 0; k < keywordArray.length; k++) {
                if (carlist[i].toUpperCase().indexOf(keywordArray[k].toUpperCase()) >= 0) {
                    existkeyword = true;
                }
                else {
                    existkeyword = false;
                    break;
                }
            }
        }

        if (existkeyword) {
            data += "<div id=\"rowline" + j + "\" class=\"xg1\" onmouseover=\"mon('rowline" + j + "');\" onmouseout=\"mout('rowline" + j + "');\" onmousedown=\"selectM('" + arrs[2] + "');\">";
            data += arrs[1];
            data += "</div>";
            data = data.replace("undefined", "");
            j++;
            drop_datas[pageIndex] = data;
            if (((j % 20) == 0)) {
                pageIndex++;
                data = "";
            }
        }
    }
    drop_totalPages = drop_datas.length;
    drop_leftPages = drop_totalPages - 1;
    data = drop_datas[0];

    totalLine = j;
    //alert(data);
    if (jQuery("#dropdownDiv").css("display") == "none") {
        jQuery("#dropdownDiv").show();
    }
    jQuery("#listTable").html(data);
    jQuery("#xgss").scrollTop(0);
    //jQuery("#rowline0").removeClass(notSelectCss); //选中条目
    //jQuery("#rowline0").addClass(selectCss); //选中条目
    jQuery("#dropdownDiv div").addClass(notSelectCss);
    curLineNum = -1;
}



function da(oResult, refObj) {

    var ref = jQuery('#' + refObj);
    var obj = jQuery('#' + oResult);

    var p = ref.position();
    if (ref) {
        obj.css('left', p.left);
        obj.css('top', p.top + ref.innerHeight() + 4);
        obj.css('width', ref.width() + 100);
    }
}
function db(oResult, refObj) {

    var ref = jQuery('#' + refObj);
    var obj = jQuery('#' + oResult);
    var p = ref.position();
    if (ref) {
        obj.css('left', p.left - 5);
        obj.css('top', p.top + ref.innerHeight() + 4);

    }
}

function SubmitKeyClick() {

    if (event.keyCode == 13) {
        //document.getElementById("Header1_btn_search").focus();
        //search();

    }
}

//搜索
var _sidHs = {};
var _sidTxt = '';
var _sidCode = '';
var _midHs = {};
var _midTxt = '';
var _midCode = '';
var _areaCode = '';
var _areaTxt = '';
var ddl_area = '';
var _cl = '';
var _kw = '';
function search() {
    var kw_val = document.getElementById(txt_keywordId).value.toUpperCase();
    var txt_area = document.getElementById(txt_locationId).value;

    //编号
    var num = '';
    var numRegex = /^\d{4,5}$/;
    num = kw_val.match(numRegex);
    if (num != '' && num != null) {
        num = parseInt(num);
        if (num < 20000 && num > 5000) {
            window.open("http://www.1car1.cn/usedcar/" + num + ".htm");
            return false;
        }
    }

    //系列
    var _sl = kw_serial.concat(kw_short_s);
    for (var i = 0; i < _sl.length; i++) {
        if (kw_val.indexOf(_sl[i][1].toUpperCase()) != -1) {
            _sidHs[_sl[i][1]] = _sl[i][0];
            _sidTxt += _sl[i][1] + ",";
        }
    }
    _sidCode = contain(_sidTxt, "s");

    //制造商
    var _mk = kw_maker.concat(kw_short_m);
    for (var j = 0; j < _mk.length; j++) {
        if (kw_val.indexOf(_mk[j][1].toUpperCase()) != -1) {
            _midHs[_mk[j][1]] = _mk[j][0];
            _midTxt += _mk[j][1] + ",";
        }
    }
    _midCode = contain(_midTxt, "m");

    //地区
    if (txt_area == "") {
        for (var k = 0; k < kw_area.length; k++) {
            if (kw_val.indexOf(kw_area[k][1].toUpperCase()) != -1) {
                _areaCode = kw_area[k][0];
                _areaTxt = kw_area[k][1];
            }
        }
    }
    _areaCode = cityormaker(_areaCode, _areaTxt, _midTxt + _sidTxt);

    //颜色
    for (var l = 0; l < kw_cl.length; l++) {
        if (kw_val.indexOf(kw_cl[l]) != -1) {
            _cl = kw_cl[l];
        }
    }
    _cl = encodeURI(_cl);

    //排量
    var pl = '';
    var regex = /\d\.\d(l|L)?/;
    if (regex.test(kw_val)) {
        regex = /\d\.\d/;
        pl = kw_val.match(regex) + 'L';
    }

    //车型年份
    var age = '';
    var regex2 = /\d{4}/;
    age = kw_val.match(regex2);
    if (age != '' && age != null) {
        age = parseInt(age);
        if (age < 1990 || age > 2010) {
            age = '';
        }
    }
    else
        age = '';

    if (_sidCode + _midCode + _cl + _areaCode + age + pl == '') {
        _kw = 'kw=' + encodeURI(kw_val) + ' ' + txt_area;
    }
    else {
        if (_sidCode != '')//优先显示系列
            _kw = 'sid=' + _sidCode + '&area=' + _areaCode + '&cl=' + _cl + '&kw=' + pl + ' ' + txt_area + ' ' + age;
        else
            _kw = 'mid=' + _midCode + '&area=' + _areaCode + '&cl=' + _cl + '&kw=' + pl + ' ' + txt_area + ' ' + age;
    }
    document.getElementById(txt_kwId).value = '/usedcar/carlist.aspx?' + _kw;
}

function search_cooperate() {
    var kw_val = "";
    if (!flgnull) {
        kw_val = document.getElementById(txt_keywordId).value.toUpperCase();
    }
    var brand_val = document.getElementById(ddl_brandId).value;
    var area_val = document.getElementById(ddl_areaId).value;
  
    //系列
    var _sl = kw_serial.concat(kw_short_s);
    for (var i = 0; i < _sl.length; i++) {
        if (kw_val.indexOf(_sl[i][1].toUpperCase()) != -1) {
            _sidHs[_sl[i][1]] = _sl[i][0];
            _sidTxt += _sl[i][1] + ",";
        }
    }
    _sidCode = contain(_sidTxt, "s");

    //制造商
    var _mk = kw_maker.concat(kw_short_m);
    for (var j = 0; j < _mk.length; j++) {
        if (kw_val.indexOf(_mk[j][1].toUpperCase()) != -1) {
            _midHs[_mk[j][1]] = _mk[j][0];
            _midTxt += _mk[j][1] + ",";
        }
    }
    _midCode = contain(_midTxt, "m");

    //地区

    for (var k = 0; k < kw_area.length; k++) {
        if (kw_val.indexOf(kw_area[k][1].toUpperCase()) != -1) {
            _areaCode = kw_area[k][0];
            _areaTxt = kw_area[k][1];
        }
    }

    _areaCode = cityormaker(_areaCode, _areaTxt, _midTxt + _sidTxt);

    //颜色
    for (var l = 0; l < kw_cl.length; l++) {
        if (kw_val.indexOf(kw_cl[l]) != -1) {
            _cl = kw_cl[l];
        }
    }
    _cl = encodeURI(_cl);

    //排量
    var pl = '';
    var regex = /\d\.\d(l|L)?/;
    if (regex.test(kw_val)) {
        regex = /\d\.\d/;
        pl = kw_val.match(regex) + 'L';
    }

    //车型年份
    var age = '';
    var regex2 = /\d{4}/;
    age = kw_val.match(regex2);
    if (age != '' && age != null) {
        age = parseInt(age);
        if (age < 1990 || age > 2010) {
            age = '';
        }
    }
    else
        age = '';



    if (area_val != "")
        _areaCode = area_val;
    if (brand_val+_sidCode + _midCode + _cl + _areaCode + age + pl == '') {
        _kw = 'kw=' + encodeURI(kw_val);
    }
    else {
        if (_sidCode != '')//优先显示系列
            _kw = 'bid=' + brand_val + '&sid=' + _sidCode + '&area=' + _areaCode + '&cl=' + _cl + '&kw=' + pl + ' ' + age;
        else
            _kw = 'bid=' + brand_val + '&mid=' + _midCode + '&area=' + _areaCode + '&cl=' + _cl + '&kw=' + pl + ' ' + age;
    }
    document.getElementById(txt_kwId).value = '/usedcar/carlist.aspx?' + _kw;

}

//document.form1.onsubmit = function() { return false; }
document.form1.onkeydown = function() {
    if (event.keyCode == 13)
        return false;
}

//去包含
function contain(obj, type) {
    var tempHs = {};
    if (obj.length > 0) {
        var output = '';
        var input = obj.split(',');
        for (var i = 0; i < input.length; i++) {
            for (var j = 0; j < input.length; j++) {
                if (i != j) {
                    if (input[i].indexOf(input[j]) != -1) {
                        input[j] = '';
                    }
                }
            }
        }
        if (type == "m")
            tempHs = _midHs;
        else
            tempHs = _sidHs;
        for (var k = 0; k < input.length; k++) {
            if (input[k] != '') {
                output += tempHs[input[k]] + ',';
            }
        }
        return output;
    }
    else
        return '';
}

//去城市和制造商或系列重复
function cityormaker(_cityCode, _city, _makerTxt) {
    var val = _cityCode;
    var mkTxt = _makerTxt.split(',');
    for (var i = 0; i < mkTxt.length; i++) {
        if (mkTxt[i].indexOf(_city) != -1)
            val = '';
    }
    return val;
}
//function bind() {
//    var kw = jQuery.query.get("kw");
//    var arr;
//    var arr2;
//    var hash = {};
//    if (typeof (kw) != "undefined" && kw != "") {
//        arr = kw.replace(/\s+/g, ' ').split(' ');
//        for (var i = 0; i < arr.length; i++) {
//            hash[arr[i]] = i;
//        }
//        var r;
//        for (var i = 0; i < areas.length; i++) {

//            for (var j = 0; j < areas[i].length; j++) {
//                r += areas[i][j] + ',';
//            }
//        }
//        arr2 = [r];
//        alert(arr2);
//    }
//}
//bind();
