// ф-ция, возвращающая массив по заданной строке
function getArrayFromString(index,aName)
{
	var sValues = eval(aName+'['+index+']');
    return sValues.split(","); // преобразуем строку в массив 
}

// главная ф-ция, выводящая динамически список 

function MkListValues(obj,formName,selectNameLinked,selectNameLinkedTop,selectNameLinkedBottom,selectNameLinkedMiddle,isThreeLevels,isThirdLevel)
{
    var index = obj.selectedIndex;
	if(isThirdLevel == true)
    {
    	var indexValue = document.forms[formName].elements[selectNameLinkedTop].selectedIndex;
    	var aCurrTexts = getArrayFromString(index,'aMicroRayonTexts'+indexValue);
	    var aCurrValues = getArrayFromString(index,'aMicroRayonValues'+indexValue);
    }
    else
    {
		var aCurrTexts = getArrayFromString(index,'aRayonTexts');
	    var aCurrValues = getArrayFromString(index,'aRayonValues');
	 }
    var nCurrValuesCnt = aCurrValues.length;

   	var oList = document.forms[formName].elements[selectNameLinked];
   	var oListVal = oList.value;
   //	alert   	(oListVal);
    var oListOptionsCnt = oList.options.length;
    oList.length = 0; // удаляем все элементы из списка 
    for (i = 0; i < nCurrValuesCnt; i++){
        // далее добавляем необходимые значения в список
        if (document.createElement){
            var newListOption = document.createElement("OPTION");
            newListOption.text = aCurrTexts[i];
            newListOption.value = aCurrValues[i];
            //alert(oListVal +' = '+ newListOption.text +' = '+ newListOption.value);
            if (oListVal == newListOption.value)	 newListOption.selected = true;
            else  newListOption.selected = false;
            // тут используем для добавления элемента либо метод IE, либо DOM, которые, alas, не совпадают по параметрам…
            (oList.options.add) ? oList.options.add(newListOption) : oList.add(newListOption, null);
        }else{
            // для NN3.x-4.x
             if (oListVal == newListOption.value)   oList.options[i] = new Option(aCurrValues[i], aCurrValues[i], false, true);
             else   oList.options[i] = new Option(aCurrValues[i], aCurrValues[i], false, false);
        }
    }
    
    if(isThreeLevels == true)
    {
	    //document.forms["advertise"].elements[selectNameLinkedBottom].options.length = 0; // удаляем все элементы из списка 
	    MkListValues(document.forms[formName].elements[selectNameLinkedMiddle],formName,selectNameLinkedBottom,selectNameLinkedTop,selectNameLinkedBottom,selectNameLinkedMiddle,false,true)
    }
}
