var apodr;
var astud;
var aelem;
var default_form_name;
var init=0;

function Podr(id_podr, name, id_parent)
{
	this.id_podr=id_podr
	this.name=name;
	this.id_parent=id_parent;
	return this;
}

function Stud(id_pers, lname, fname, mname, id_podr)
{
	this.id_pers=id_pers;
	this.lname=lname;
	this.fname=fname;
	this.mname=mname;
	this.id_podr=id_podr;
	return this;
}

function Podr_Init(form_name)
{
	if(form_name==null) form_name=default_form_name;

	init=1;
	Podr_Fill(apodr.length-2, 0, form_name);
	Podr_onChange(apodr.length-2, form_name);
	init=0;
}

function Podr_Select(level, id_podr, form_name)
{
	if(form_name==null) form_name=default_form_name;

	var aindex=Array();					// Идентификатор
	var aparent=Array();				

	var id_podr0=id_podr;

	for (var i=level; i<apodr.length-1; i++)
	{
		aindex[i]=id_podr0;
   	for(var j=0; j<apodr[i].length-1; j++)
		{
			if(apodr[i][j].id_podr==id_podr0)
			{
				id_podr0=apodr[i][j].id_parent;
			}
		}
	}


	for (var i=apodr.length-2; i>=0; i--)
	{
		var str=aelem[i];
 		if(i==apodr.length-2)
		{
			Podr_Fill(i, 0);	
		} else {
			Podr_Fill(i, aindex[i+1]);	
		}
		for(var j=0; j<document.forms[form_name].elements[str].length; j++)
		{
			if(document.forms[form_name].elements[str][j].value==aindex[i])
				document.forms[form_name].elements[str].selectedIndex=j;
		}
//		
	}
					 
}

//Заполнение списков
function Podr_Fill(level, id_parent, form_name)
{
	if(form_name==null) form_name=default_form_name;

	var str=aelem[level];
	var len=0;
	
	// Подсчитываю количество подразделений, у которых id_parent равен указанному
	for(var i=0; i<apodr[level].length-1; i++) 
		if(apodr[level][i].id_parent==id_parent) 
			len++;

	// Измению количество <option> в соответствии с подсчитанным кол-вом подразделений
	document.forms[form_name].elements[str].length=len;
	for(var j=0,i=0; i<apodr[level].length-1; i++) 
	{
		if(apodr[level][i].id_parent==id_parent) 
		{
			document.forms[form_name].elements[str][j].value=apodr[level][i].id_podr;
			document.forms[form_name].elements[str][j].text=apodr[level][i].name;
			j++;
		}
	}
}

// Функция реакции на изменение (onChange)
function Podr_onChange(level, form_name)
{
	if(level<1) return;
	
	if(form_name==null) form_name=default_form_name;

	var str=aelem[level];

	if(document.forms[form_name].elements[str].selectedIndex>=0)
		Podr_Fill(level-1,
			document.forms[form_name].elements[str][
				document.forms[form_name].elements[str].selectedIndex
			].value, form_name
		);
	
	Podr_onChange(level-1, form_name);
}