window.onload = function() {
    a.metro_s = document.forms.search.metro_s;
    a.metromap = document.getElementById('metromap');
    a["metro[]"] = document.forms.search["metro[]"];
 
    left_list = document.forms.search["metro_s"];
    right_list = document.forms.search["metro[]"];
};
 

 
function add_m() {
    var left_sel = left_list.options.selectedIndex;
 
    if (left_sel != -1) {
        var src = left_list.options[left_sel];
        var len_right = right_list.options.length;
 
        var is_added = false;
        for (i = 0; i < len_right; i++)
        if (right_list.options[i].value == src.value) {
            is_added = true;
            break;
        }
 
        if (!is_added)
        right_list.options[len_right] = new Option(src.text, src.value);
 
        metro[src.value][1] = 1;
        if (mimg[src.value])
        a.metromap.appendChild(mimg[src.value]);
    }
}
 
function del_m() {
    var right_sel = right_list.options.selectedIndex;
 
    if (right_sel != -1) {
        var right_val = right_list.options[right_sel].value;
 
        right_list.remove(right_sel);
 
        metro[right_val][1] = 0;
        if (mimg[right_val])
        metromap.removeChild(mimg[right_val]);
    }
}
 
function checkpoint(map_sel) {
    metro[map_sel][1] = 0 + !metro[map_sel][1]; // toggle
 
    var right_len = right_list.options.length;
 
    if (metro[map_sel][1] == 1) {
        var left_idx = -1;
        for (i = 0; i < left_list.options.length; i++)
        if (left_list.options[i].value == map_sel) {
            left_idx = i;
            break;
        }
 
        if (left_idx != -1) {
            right_list.options[right_len] = new Option(left_list.options[left_idx].text, left_list.options[left_idx].value);
            if (mimg[map_sel])
            metromap.appendChild(mimg[map_sel]);
        }
    }
    else {
        if (mimg[map_sel])
        metromap.removeChild(mimg[map_sel]);
 
        var right_idx = -1;
        for (i = 0; i < right_len; i++)
        if (right_list.options[i].value == map_sel) {
            right_idx = i;
            break;
        }
 
        if (right_idx != -1)
        right_list.remove(right_idx);
    }
}
 
function fsubmit() {
    left_list.value = null;
    for (i = 0; i < right_list.options.length; i++)
    right_list.options[i].selected = true;
    document.forms[0].submit();
}
 
function freset() {
    while (right_list.options.length > 0) {
        var right_val = right_list.options[0].value;
 
        right_list.remove(0);
 
        metro[right_val][1] = 0;
        if (mimg[right_val])
        metromap.removeChild(mimg[right_val]);
    }
}
 