function dynamicSelect(id1, id2) {
        
        // Сперва необходимо проверить поддержку W3C DOM в браузере
        if (document.getElementById && document.getElementsByTagName) {
            
            // Определение переменных, ссылающихся на списки

            var sel1 = document.getElementById(id1);
            var sel2 = document.getElementById(id2);
            
            var sel3 = new Array(0);
            
            for (var i = 0; i < sel2.length; i++) {
                sel3[sel2[i].value] = sel2[i].selected;
            }

            // Клонирование динамического списка

            var clone = sel2.cloneNode(true);
            
            // Определение переменных для клонированных элементов списка
            var clonedOptions = clone.getElementsByTagName("option");
            //var clonedOptions = sel2;
            
            /*for (var i = 0; i < clonedOptions.length; i++) {
                //if(clonedOptions[i].className == '1') { alert(clonedOptions[i].text); }
                if (clonedOptions[i].text == 'T5 Multivan'){ alert(clonedOptions[i].text); }  
            }*/
            
            // Вызов функции собирающей вызываемый список
            refreshDynamicSelectOptions(sel1, sel2, clonedOptions, sel3);

            // При изменении выбранного элемента в первом списке: // вызов функции пересобирающей вызываемый список
            sel1.onchange = function() {
                refreshDynamicSelectOptions(sel1, sel2, clonedOptions, sel3);
            }
        }
    }

    // Функция для сборки динамического списка

    function refreshDynamicSelectOptions(sel1, sel2, clonedOptions, sel3) {
        
        // Удаление всех элементов динамического списка
        
        while (sel2.options.length) {
            sel2.remove(0);
        }
        
        var pattern1 = /( |^)(select)( |$)/;
        var pattern2 = new RegExp("( |^)(" + sel1.options[sel1.selectedIndex].value + ")( |$)");

        // Перебор клонированных элементов списка
        for (var i = 0; i < clonedOptions.length; i++) {
             //if (clonedOptions[i].text == 'T5 Multivan'){ alert(clonedOptions[i].text); }  
            // Если название класса клонированного option эквивалентно "select" // либо эквивалентно значению option первого списка
             
            if (clonedOptions[i].className.match(pattern1) ||
            clonedOptions[i].className.match(pattern2)) {
                
                // его нужно клонировать в динамически создаваемый список
                //alert(clonedOptions[i].text+'|'+clonedOptions[i].selected);
            
                if(sel3[clonedOptions[i].value] == true){
                    clonedOptions[i].selected = sel3[clonedOptions[i].value];
                }
                
                //if (clonedOptions[i].className == '1'){ alert(clonedOptions[i].text); }
                
                sel2.appendChild(clonedOptions[i]);
                
            }
        }
        
    }