//选择地区的二级分类
function selNext(oj, v) {
    var newobj = oj.options;
    var selv = parseInt(v);
    var maxv = parseInt(v) + 500;
    while(newobj.length > 0) {
        oj.remove(0);
    }
    clear(oj);
    if (selv==0) {
        aOption = document.createElement('OPTION');
        aOption.text = '具体地区';
        aOption.value = '0';
        oj.options.add(aOption);
        return;
    } else {
        aOption = document.createElement('OPTION');
        aOption.text = '具体地区';
        aOption.value = '0';
        oj.options.add(aOption);
    }
    var str = '';
    for (i=selv+1; i < maxv; i++) {
        if (!em_nativeplaces[i]) continue;
        aOption = document.createElement('OPTION');
        aOption.text = em_nativeplaces[i];
        aOption.value = i;
        oj.options.add(aOption);
    }
}
//子类改变事件
function ChangeSon() {
    //由于支持3级联动,所以这里需要对自己改变进行重构
    var emname = this.name.replace('_son', '');
    if (document.getElementById(emname+'_sec')) {
        var oj = document.getElementById(emname + '_sec');
    } else {
        var oj  = document.createElement('select');
        oj.name = emname + '_sec';
        oj.id   = emname + '_sec';
        oj.className = "form-control admin-input-sm mr-2";
        oj.onchange = ChangeSec;
    }
    var v = this.options[this.selectedIndex].value;
    document.getElementById('hidden_'+emname).value = v;
    var newobj = oj.options;
    var selarr = eval('em_'+emname+'s');
    var selv = parseInt(v);
    var maxv = parseInt(v) + 0.5;
    i = 0;
    while(newobj && newobj.length > 0) oj.remove(0);
    clear(oj);
    if (selv == 0) {
        aOption = document.createElement('OPTION');
        aOption.text = '请选择..';
        aOption.value = '0';
        oj.options.add(aOption);
        return;
    } else {
        aOption = document.createElement('OPTION');
        aOption.text = '请选择..';
        aOption.value = '0';
        oj.options.add(aOption);
    }
    var str = '';
    var j=0;
    for (i = selv + 0.001; i < maxv; i = FloatAdd(i, 0.001)) {
        if (!selarr[i]) continue;
        aOption = document.createElement('OPTION');
        aOption.text = selarr[i];
        aOption.value = i;
        oj.options.add(aOption);
        j++;
    }
    if (j > 0) document.getElementById('span_'+emname+'_sec').appendChild(oj);
    else document.getElementById('span_'+emname+'_sec').innerHTML = "";
}
//改变第三级的事件
function ChangeSec() {
    var emname = this.name.replace('_sec', '');
    var topSelObj = document.getElementById(emname+'_top');
    if (this.options[this.selectedIndex].value==0) {
        document.getElementById('hidden_'+emname).value = topSelObj.options[topSelObj.selectedIndex].value;
    } else {
        document.getElementById('hidden_'+emname).value = this.options[this.selectedIndex].value;
    }
}
//顶级类改变事件
function selNextSon() {
    var emname = this.name.replace('_top', '');
    if (document.getElementById(emname+'_son')) {
        var oj = document.getElementById(emname + '_son');
    } else {
        var oj  = document.createElement('select');
        oj.name = emname + '_son';
        oj.id   = emname + '_son';
        oj.className = "form-control admin-input-sm mr-2";
        oj.onchange = ChangeSon;
    }
    var v = this.options[this.selectedIndex].value;
    document.getElementById('hidden_'+emname).value = v;
    var newobj = oj.options;
    var selarr = eval('em_'+emname+'s');
    var selv = parseInt(v);
    var maxv = parseInt(v) + 500;
    while(newobj && newobj.length > 0) oj.remove(0);
    clear(oj);
    if (selv==0) {
        aOption = document.createElement('OPTION');
        aOption.text = '请选择..';
        aOption.value = '0';
        oj.options.add(aOption);
        return;
    } else {
        aOption = document.createElement('OPTION');
        aOption.text = '请选择..';
        aOption.value = '0';
        oj.options.add(aOption);
    }
    var str = '';
    for (i=selv+1; i < maxv; i++) {
        if (!selarr[i]) continue;
        aOption = document.createElement('OPTION');
        aOption.text = selarr[i];
        aOption.value = i;
        oj.options.add(aOption);
    }
    document.getElementById('span_'+emname+'_son').appendChild(oj);
}
//根据数组生成多级联动菜单
function MakeTopSelect(emname, selvalue) {
    var selectFormHtml = '';
    var aOption = null;
    var selObj = document.createElement("select");
    selObj.name = emname + '_top';
    selObj.id   = emname + '_top';
    selObj.className = "form-control admin-input-sm mr-2";
    selObj.onchange = selNextSon;
    var selarr = eval('em_'+emname+'s');
    var topvalue = 0;
    var sonvalue = 0;
    var secvalue = 0;
    aOption = document.createElement('OPTION');
    aOption.text = '请选择..';
    aOption.value = 0;
    selObj.options.add(aOption);
    if (selvalue % 500 == 0 ) {
        topvalue = selvalue;
    }
    //如果是小数,则依次取出顶级数值,二级数值以及三级数值
    else if (!!(selvalue % 1)) {
        secvalue = selvalue;
        sonvalue = Math.floor(selvalue);
        topvalue = sonvalue - (sonvalue % 500);
        //alert(secvalue);
    } else {
        sonvalue = selvalue;
        topvalue = selvalue - (selvalue % 500);
    }
    for (i = 500; i <= selarr.length; i += 500) {
        if (!selarr[i]) continue;
        aOption = document.createElement('OPTION');
        if (i == topvalue) {
            aOption = document.createElement('OPTION');
            aOption.text = selarr[i];
            aOption.value = i;
            selObj.options.add(aOption);            
            aOption.selected = true;
        } else {
            aOption = document.createElement('OPTION');
            aOption.text = selarr[i];
            aOption.value = i;
            selObj.options.add(aOption);
        }
    }
    document.getElementById('span_'+emname).appendChild(selObj);
    //如果子类存在值，创建子类
    selObj = document.createElement("select");
    selObj.name = emname + '_son';
    selObj.id   = emname + '_son';
    selObj.className = "form-control admin-input-sm mr-2";
    selObj.onchange = ChangeSon;
    aOption = document.createElement('OPTION');
    aOption.text = '请选择..';
    aOption.value = 0;
    selObj.options.add(aOption);
    //当大类有值输出子类
    if (topvalue > 0) {
        var selv = topvalue;
        var maxv = parseInt(topvalue) + 500;
        for (i = selv + 1; i < maxv; i++) {
            if (!selarr[i]) continue;
            aOption = document.createElement('OPTION');
            if (i == sonvalue) {
                aOption = document.createElement('OPTION');
                aOption.text = selarr[i];
                aOption.value = i;
                selObj.options.add(aOption);
                aOption.selected = true;
            } else {
                aOption = document.createElement('OPTION');
                aOption.text = selarr[i];
                aOption.value = i;
                selObj.options.add(aOption);
            }
        }
    }
    document.getElementById('span_'+emname+'_son').appendChild(selObj);
    //若存在第三级则创建
    if (secvalue > 0) {
        selObj = document.createElement("select");
        selObj.name = emname + '_sec';
        selObj.id   = emname + '_sec';
        selObj.onchange = ChangeSec;
        aOption = document.createElement('OPTION');
        aOption.text = '请选择..';
        selObj.className = "form-control admin-input-sm mr-2";
        aOption.value = 0;
        selObj.options.add(aOption);
        var selv = sonvalue;
        var maxv = parseInt(sonvalue) + 0.5;
        i = 0;
        for (i = selv + 0.001; i < maxv; i = FloatAdd(i, 0.001)) {
            if (!selarr[i]) continue;
            aOption = document.createElement('OPTION');
            if (i == secvalue) {
                aOption = document.createElement('OPTION');
                aOption.text = selarr[i];
                aOption.value = i;
                selObj.options.add(aOption);
                aOption.selected = true;
            } else {
                aOption = document.createElement('OPTION');
                aOption.text = selarr[i];
                aOption.value = i;
                selObj.options.add(aOption);
            }
        }
    }
    document.getElementById('span_'+emname+'_sec').appendChild(selObj);
}
//两个小数相加进度计算
function FloatAdd(arg1, arg2) {
    var r1,r2,m;
    try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
    try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
    m=Math.pow(10,Math.max(r1,r2))
    return (arg1*m+arg2*m)/m
}
//清除旧对象
function clear(o) {
    l=o.length;
    for (i = 0; i< l; i++) {
        o.options[1]=null;
    }
}