﻿YAHOO.namespace("ask");

var dom = YAHOO.util.Dom;

YAHOO.ask.code = [{ i: 101, n: "家装设计", l: 0, c: [{ i: 10101, n: "装修风水", l: 1 },
                                                    { i: 10102, n: "装修风格", l: 1 },
                                                    { i: 10103, n: "客厅", l: 1 },
                                                    { i: 10104, n: "玄关", l: 1 },
                                                    { i: 10105, n: "过道", l: 1 },
                                                    { i: 10106, n: "卧室", l: 1 },
                                                    { i: 10107, n: "其他", l: 1 }
                                                    ]},
                  { i: 102, n: "公装设计", l: 0, c: [{ i: 10201, n: "酒店宾馆/客房", l: 1 },
                                                    { i: 10202, n: "餐饮酒吧", l: 1 },
                                                    { i: 10203, n: "办公楼", l: 1 },
                                                    { i: 10204, n: "商场", l: 1 },
                                                    { i: 10205, n: "专卖店", l: 1 },
                                                    { i: 10206, n: "其它", l: 1 }
                                                    ]},
                  { i: 103, n: "装饰材料", l: 0, c: [{ i: 10301, n: "夹板木材", l: 1 },
                                                    { i: 10302, n: "地板", l: 1 },
                                                    { i: 10303, n: "涂料/油漆", l: 1 },
                                                    { i: 10304, n: "瓷砖/石材", l: 1 },
                                                    { i: 10305, n: "门窗", l: 1 },
                                                    { i: 10306, n: "五金", l: 1 },
                                                    { i: 10307, n: "其它", l: 1 }
                                                    ]},
                  { i: 104, n: "装修流程", l: 0, c: [{ i: 10401, n: "新房验收", l: 1 },
                                                    { i: 10402, n: "收费咨询", l: 1 },
                                                    { i: 10403, n: "装修预算", l: 1 },
                                                    { i: 10404, n: "装修合同", l: 1 },
                                                    { i: 10405, n: "施工工艺", l: 1 },
                                                    { i: 10406, n: "其它", l: 1 }
                                                    ]},
                  { i: 105, n: "家居产品", l: 0, c: [{ i: 10501, n: "家具", l: 1 },
                                                    { i: 10502, n: "卫浴设备", l: 1 },
                                                    { i: 10503, n: "灯具/照明", l: 1 },
                                                    { i: 10504, n: "儿童家具/用品", l: 1 },
                                                    { i: 10505, n: "家用电器", l: 1 },
                                                    { i: 10506, n: "其它", l: 1 }
                                                    ]},
                  { i: 106, n: "技术专区", l: 0, c: [{ i: 10601, n: "3DMAX", l: 1 },
                                                    { i: 10602, n: "VR", l: 1 },
                                                    { i: 10603, n: "LS", l: 1 },
                                                    { i: 10604, n: "AutoCAD", l: 1 },
                                                    { i: 10605, n: "Photoshop", l: 1 },
                                                    { i: 10606, n: "电脑网络", l: 1 },
                                                    { i: 10607, n: "其它", l: 1 }
                                                    ]}
                  ];
YAHOO.ask.initobj = function() {

    YAHOO.ask.setobj(arguments[0], arguments[1]);
}
YAHOO.ask.init = function() {
    YAHOO.ask.initpresel(arguments[0], arguments[1]);
}

YAHOO.ask.search = function(i, list) {
    var temp = null;
    if (list == null)
        list = YAHOO.ask.code;

    for (var j = 0; j < list.length; j++) {

        if (list[j].i == i) {
            return list[j];
        }
        else {

            if (list[j].c != null) {

                temp = YAHOO.ask.search(i, list[j].c);
                if (temp != null) {

                    return temp;
                }
            }
            else
                continue;
        }
    }
}
YAHOO.ask.setobj = function(category1, category2) {

    category1 = dom.get(category1);
    category2 = dom.get(category2);
    if (!category1 || !category2)
        return false;

    //列表对象
    YAHOO.ask.selobj = [{ 'type': 'category1', 'obj': category1 }, { 'type': 'category2', 'obj': category2}];
}

YAHOO.ask.initpresel = function(code, flag) {
    var p = YAHOO.ask.point(code);
    if (p.data == null) {
        //debugger;
        YAHOO.ask.delsel(p.index - 1, YAHOO.ask.selobj.length);
        return;
    }

    if (flag) {
        YAHOO.ask.delsel(0, p.index);

        for (var i = 0; i < p.data.length; i++) {

            YAHOO.ask.initsel(p.data[i].list, i, p.data[i].code);
        }
    }
    else {

        YAHOO.ask.delsel(p.index, YAHOO.ask.selobj.length);
        for (var i = p.index; i < YAHOO.ask.selobj.length; i++) {
            YAHOO.ask.initsel(p.data[i].list, i, p.data[i].code);
        }
    }
}

YAHOO.ask.initsel = function(data, index, code) {

    var curobj = YAHOO.ask.selobj[index];
    //var nextobj = YAHOO.ask.selobj[index + 1];
    var a;

    if (code < 1000) {

        a = 100;
    }
    else {

        a = parseInt(code.toString().substr(0, code.toString().length - 2), 10) * 100;
    }


    curobj.obj.style.display = '';
    //zx 090411
    switch (code.toString().length) {
        case 3:
            curobj.obj.options[0] = new Option("类别", a);
            break;
        case 5:
            curobj.obj.options[0] = new Option("子类别", a);
            break;
        default:
            curobj.obj.options[0] = new Option("类别", a);
            break;
    }
    //zx 090411 end
    for (var i = 0; i < data.length; i++) {

        curobj.obj.options[i + 1] = new Option(data[i].n, data[i].i);
        if (code == data[i].i)
            curobj.obj.options[i + 1].selected = true;
    }

}
YAHOO.ask.delsel = function(start, end) {

    var obj = YAHOO.ask.selobj;

    for (var i = start; i < end; i++) {
        if (obj[i] && obj[i].obj) {

            for (var j = obj[i].obj.length - 1; j > -1; j--) {

                obj[i].obj.options[j] = null;
            }
        }
    }

    for (var i = end + 1; i < obj.length; i++) {

        obj[i].obj.style.display = 'none';
    }
}

YAHOO.ask.point = function(code) {

    var category1, category2;
    var len = code.toString().length;
    var data, index
    var a, b, c, d;
    try {
        switch (len) {
            //国家	          
            case 3:
                category1 = YAHOO.ask.code;

                if (code == 100) {
                    d = 0;
                    data = [{ 'list': category1, 'code': code }, { 'list': [], 'code': parseInt(category1[d].i.toString() + '00', 10)}];
                }
                else {
                    d = code - 101;
                    data = [{ 'list': category1, 'code': code }, { 'list': category1[d].c, 'code': parseInt(category1[d].i.toString() + '00', 10)}];
                }

                index = 0;
                break;

            //省份      
            case 5:
                a = parseInt(code.toString().substr(0, 3), 10);
                b = parseInt(code.toString().substr(3, 2), 10);
                if (a == 100) {
                    category1 = { 'list': YAHOO.ask.code, 'code': 100 };

                    d = parseInt(category1.list[0].i.toString(), 10);
                    category2 = { 'list': [], 'code': d * 100 };
                }
                else {
                    if (b == 0) {
                        category1 = { 'list': YAHOO.ask.code, 'code': a };
                        category2 = { 'list': category1.list[a - 101].c, 'code': code };
                    }
                    else {
                        category1 = { 'list': YAHOO.ask.code, 'code': a };
                        category2 = { 'list': category1.list[a - 101].c, 'code': code }; ;
                    }
                }
                data = [category1, category2];

                index = 1;
                break;
        }
        return { 'index': index, 'data': data };
    }
    catch (e) {
        return { 'index': index, 'data': null }
    }
}

YAHOO.ask.onchange = function(obj, index) {

    //debugger;
    YAHOO.ask.init(obj.value, false);
}