/*
wwww.tigir.com (дата последней модификации - 30.11.2007)
Библиотека linkedselect.js из статьи "Javascript SELECT - динамические списки" - http://www.tigir.com/linked_select.htm

syncList - "класс" связанных списков
*/
function syncList(){} //Определяем функцию конструктор

//Определяем методы

//Метод sync() - принимает список из значений атрибутов id элементов SELECT, образующих связанный список и запускает их синхронизацию
syncList.prototype.sync = function()
{
	//Перебираем аргументы (id элементов SELECT) и назначаем событиям onChange селектов, с соответствующими id, функцию-обработчик. 
	//В качестве обработчика выступает второй метод объекта syncList - _sync (напрямую его вызывать не нужно) 
	//Обработчик назначается всем элементам SELECT кроме последнего в списке аргументов, т.к. последний не влияет ни на какой другой элемент SELECT и с ним не нужно синхронизироваться.
	for (var i=0; i < arguments.length-1; i++)	document.getElementById(arguments[i]).onchange = (function (o,id1,id2){return function(){o._sync(id1,id2);};})(this, arguments[i], arguments[i+1]);
	document.getElementById(arguments[0]).onchange();//запускаем обработчик onchange первого селекта, чтобы при загрузке страницы заполнить дочерние селекты значениями.
}
//служебный метод _sync - срабатывает при смене выбранного элемента в текущем (старшем) элементе SELECT (по его событию onChange) и изменяет содержимое зависимого селекта на основании значения выбранного в старшем селекте.
syncList.prototype._sync = function (firstSelectId, secondSelectId)
{
	var firstSelect = document.getElementById(firstSelectId);
	var secondSelect = document.getElementById(secondSelectId);

	secondSelect.length = 0; //обнуляем второй (подчиненный) SELECT
	
	if (firstSelect.length>0)//если первый (старший) SELECT не пуст
	{
		//из свойства dataList, с данными для заполнения подчиненных селектов, берем ту часть данных, которая соответствует именно значению элемента, 
		//выбранного в первом селекте, и определяет содержимое подчиненного элемента SELECT.
		var optionData = this.dataList[ firstSelect.options[firstSelect.selectedIndex==-1 ? 0 : firstSelect.selectedIndex].value ];
		//заполняем второй (подчиненный) селект значениями (создаем элементы option)
		for (var key in optionData || null) secondSelect.options[secondSelect.length] = new Option(optionData[key], key);
		
		//если в старшем SELECT-е нет выделенного пункта, выделяем первый
		if (firstSelect.selectedIndex == -1) setTimeout( function(){ firstSelect.options[0].selected = true;}, 1 );
		//если во втором списке нет выделенного пункта, выделяем первый его пункт
		if (secondSelect.length>0) setTimeout( function(){ secondSelect.options[0].selected = true;}, 1 );
	}
	//если второй (подчиненный) селект имеет в свою очередь свои подчиненные селекты (те, для которых он главный), 
	//то запускаем его обработчик onchange, чтобы изменить его подчиненные селекты
	secondSelect.onchange && secondSelect.onchange();
};



function Fill_rez() {

var error1='';

    //var rez = document.getElementById('rez');
	var pipe_len=document.getElementById('pipe_length').value;
	var pipe_kol=document.getElementById('pipe_kol').value;
	var pipe_tot=document.getElementById('pipe_length_rez').value;	
	
if (pipe_len == '' || pipe_kol == '' || pipe_tot == '') 
	{
	error1=1;
	}
	
if (pipe_len == '' && pipe_kol == '' && pipe_tot != '') { error1=0; var length1=pipe_tot; document.getElementById('massa_trub').style.display='none';}
else if (pipe_len != '' && pipe_kol != '' && pipe_tot == '') { 
		error1=0; 
		var length1=(document.getElementById('pipe_kol').value*document.getElementById('pipe_length').value); 
		document.getElementById('massa_trub').style.display='block';}
else error1=1;

	

	if (error1 != 1)
	{
	document.getElementById('rez').style.display="block";
	document.getElementById('error1').style.display="none";	
	
	var objSel = document.Form1.List2;
	var objSel2 = document.Form1.List3;	
	
	var R_out=(objSel.options[objSel.selectedIndex].value/2)/1000;
	var R_in=(objSel2.options[objSel2.selectedIndex].value)/1000;
	
	var V_out=Math.pow(R_out,2)*Math.PI;
	var V_in=Math.pow((R_out - R_in),2)*Math.PI;
	var V_all=V_out-V_in;
	
	var mass_1m = 7850 * V_all;
	var mass_1t = mass_1m * document.getElementById('pipe_length').value;
	
	// 7850 кг/м3;
		
		document.getElementById('pipe_1m_mass').value=mass_1m;
		document.getElementById('pipe_1t_mass').value=mass_1t;	
		if (pipe_kol!='') document.getElementById('pipe_mass').value=document.getElementById('pipe_kol').value*mass_1t;
		else document.getElementById('pipe_mass').value=document.getElementById('pipe_length_rez').value*mass_1m;
		document.getElementById('pipe_length_total').value=length1;		
	
	}
	else 
	{
	document.getElementById('error1').style.display="block";
	document.getElementById('rez').style.display="none";
	}


}


function key_validator() {
// if ((event.keyCode < 48) || (event.keyCode > 57)) event.returnValue = false;

if (document.getElementById('pipe_length_rez').value != '') 
	{
	document.getElementById('pipe_length').value='';
	document.getElementById('pipe_kol').value='';	
	}
}

function hide1() {
document.getElementById('length_kol').style.display='block';
document.getElementById('length_all').style.display='none';
document.getElementById('pipe_length_rez').value='';

}

function hide2() {
document.getElementById('length_kol').style.display='none';
document.getElementById('length_all').style.display='block';
document.getElementById('pipe_length').value='';
document.getElementById('pipe_kol').value='';
}
