function multiple_select_combo(name,value){
if (!value) return;
    var combo=document.getElementsByName(name)[0];
    var n=combo.options.length;
    for (var i=0;i<n;i++){
        if (value.indexOf("|"+combo.options[i].value+"|")!=-1){
            combo.options[i].selected=true;
            if (value!=0) combo.options[i].className='listSelected';
        }else combo.options[i].selected=false;
    }
}

function get_combo_selection(name){
    var combo=document.getElementsByName(name)[0];
    var n=combo.options.length;
    result="|";
    for (var i=0;i<n;i++){
        if (combo.options[i].selected){
            result+=combo.options[i].value+"|";
        }
    }
    return result;
}

function select_combo(name,value){
if (!value) return;
    var combo=document.getElementsByName(name)[0];
    var n=combo.options.length;
    for (var i=0;i<n;i++){
        if (combo.options[i].value==value){
            combo.options[i].selected=true;
            if (value!=0) combo.options[i].className='listSelected';
            break;
        }
    }

    s=combo.onchange+"";
    s=s.substring(s.indexOf("{")+1,s.lastIndexOf("}")-1);
    function_to_call=s.replace(/this.value/g,value);
    eval(function_to_call);
}

function combo_add_option(combo,text,value,selected){
/*            var option = document.createElement("OPTION");
       combo.options.add(option);
       option.innerText = text;
       option.value = value;
       option.selected=selected;
*/        var option = new Option(text,value);
//       combo.options.add(option);
//       option.innerText = text;
  //     option.value = value;
       option.selected=selected;

    var len = combo.length;
    combo.options[len] = option;
}

function make_combo_filtered_combo(combo_name,data_array,filter_value,make_unselected,add_new){
    var n=data_array.length;
    var combo=document.getElementsByName(combo_name)[0];
    var option = document.createElement("OPTION");
    combo.options.length=0;

    s=combo.onchange+"";
    s=s.substring(s.indexOf("{")+1,s.lastIndexOf("}")-1);
    function_to_call=s.replace(/this.value/g,"0");

    if (make_unselected) {
       combo_add_option(combo,_not_assigned,"0",true);
    }

    if (!filter_value||filter_value=="0") {
        eval(function_to_call);
        combo.disabled=true;
        return;
    }
    var option = document.createElement("OPTION");
/*    if (add_new){
       combo.options.add(option);
       option.innerText = " +  Nuovo valore  + ";
       option.value = "add_new";
    }
*/
    disabled=true;
    combo.disabled=false;
    for (var i=0; i<n; i++){
        if (data_array[i][0]==filter_value){
            combo_add_option(combo,data_array[i][2].replace( /&acute;/g,"'" ),data_array[i][1],false);
            disabled=false;
        }
    }
    combo.disabled=disabled;

    eval(function_to_call);
}