Event.onReady( function() {
	DiComboBoxParser.locate("list-box", DiEComboBox);
	
	var i, N;
	for(i=0, N=DiComboBoxes.size(); i<N; i++) {
		if(DiComboBoxes[i].initVal) $(DiComboBoxes[i].name).model.setISelectedByValue(DiComboBoxes[i].initVal);
	}

	// Для "Страхователь" = "Физ. лицо" разрешаем "Количество лиц, допущенных к управлению", иначе запретить
	$('insured').model.onchange = function(){
		$('kldu_id').model.setDisabled( this.getSelectedValue()!=1 );
	}

	$('object_type_id').model.onchange = function() {
		checkKi();
		var val = this.getSelectedValue();
		if(objectTypeInfo[val]) {
			if(objectTypeInfo[val].prodByUsed==1) $('prod_by_row').show();
			else $('prod_by_row').hide();
		}
		else {
			$('prod_by_row').hide();
		}
		checkTNP();
	}
	
	Event.observe( 'vehicle_year', 'keypress', filterNumbers );
	Event.observe('vehicle_year', 'keyup', checkKi );
	Event.observe( 'price_vehicle', 'keypress', filterNumbers );
	Event.observe( 'price_vehicle', 'keyup', function(event){
		var price = this.value,
			lnp = (price <= 40000)? (price * 0.03) : (price * 0.02);
		$('lnp').innerHTML = Math.round(lnp);
	} );
	Event.observe( 'price_equipment', 'keypress', filterNumbers );
	
	// 4.1 - только если выбран 4.3
	Event.observe('is_theft_risk', 'click', function(event){
		if(!$('is_pdtl_risk').checked) $('is_pdtl_risk').checked = true;
		checkTNP();
	} );
	// 4.2. ДТП - Всегда выбран
	Event.observe('is_traffic_accident_risk', 'click', alwaysChecked );
	// 4.3
	Event.observe('is_pdtl_risk', 'click', function(event){
		if(!this.checked) $('TNP').checked = false;
		if(!this.checked && $('is_theft_risk').checked) $('is_theft_risk').checked = false;
		checkTNP();
	} );
	
	// См. 5.2
	$('traffic_accident_franchise').model.onchange = function(){
		checkTNP();
		//if(this.getSelectedValue()!=1) $('TNP').checked = false;
	}
	$('pdtl_franchise').model.onchange = function(){
		checkTNP();
		//if(this.getSelectedValue()!=1) $('TNP').checked = false;
	}
	checkTNP();
	
	// 5.1 Может быть выбрано только 5.1 или 5.2
	Event.observe('TSFF', 'click', function(e){
		if(!this.checked) {
			$('TNP').checked = false;
			$('NE').checked = false;
		}
		//if($('TNP').checked) $('TNP').checked = false;
	} );
	// 5.2 Незначительные повреждения - только если Франшиза по рискам 4.2 и 4.3 - 0%
	Event.observe('TNP', 'click', function(e){
		//if($('TSFF').checked) $('TSFF').checked = false;
		/*if(this.checked) {
			$('is_pdtl_risk').checked = true;
			$('traffic_accident_franchise').model.setISelectedByValue('1');
			$('pdtl_franchise').model.setISelectedByValue('1');
		}*/
		if(this.checked) {
			$('traffic_accident_franchise').model.setISelectedByValue('1');
			$('pdtl_franchise').model.setISelectedByValue('1');
		} else $('NE').checked = false;
		if(!$('TSFF').checked) {
			this.checked = false;
			alert('Только при выбранном пункте «Стекла, фары, фонари»');
			return false;
		}
	} );
	// «Эвакуатор» (территория Украины)
	Event.observe('NE', 'click', function(e){
		if(!$('TNP').checked) {
			this.checked = false;
			alert('Только при выбранном пункте «Незначительные повреждения»');
			return false;
		}
	} );
	// 5.5. «Без вычета износа»
	Event.observe('KI', 'click', function(e){
		onKiChanged();
	} );
	$('kv_id').model.setDisabled( true );
	
	var elems = $$('#exploitation_type input');
	for(i=0, N=elems.size(); i<N; i++)
	{
		Event.observe(elems[i], 'click', function(event){
			if(this.value==2) $('kmts').show();
			else $('kmts').hide();
			if(this.value==3) $('ksts').show();
			else $('ksts').hide();
			checkKi();
		} );
	}
} );
//---------------------------------------------------------------------------

function alwaysChecked(e)
{
	if(!this.checked) this.checked = true;
}
//---------------------------------------------------------------------------

function checkTNP(e)
{
	if( $('object_type_id').model.getSelectedValue()=="1"	// «Незначительные повреждения» только для легковых авто
		&& $('is_traffic_accident_risk').checked && $('is_pdtl_risk').checked
		/*&& $('traffic_accident_franchise').model.getSelectedValue()=="1" && $('pdtl_franchise').model.getSelectedValue()=="1"*/ ) $('TNP').disabled = false;
	else $('TNP').disabled = true;
	if($('TNP').disabled) $('TNP').checked = false;
}
//---------------------------------------------------------------------------

function checkKi(event)
{
	$('KI').disabled = true;
	new Ajax.Request('process/?getKI=1', {
		method: 'post',
		parameters: $('form_main').serialize(),
		onSuccess: function(t){
			try {
				var json = eval('(' + t.responseText + ')');
				if(json.status && json.ki) $('KI').disabled = false;
				onKiChanged();
			}
			catch (e) {  }
		}
	});
}
//---------------------------------------------------------------------------

function onKiChanged()
{
	var ki = $('KI');
	
	if(ki.disabled) ki.checked = false;
	if(!ki.checked) $('kv_id').model.setISelectedByValue('1');
	$('kv_id').model.setDisabled( !ki.checked );
}
//---------------------------------------------------------------------------

function formSubmit()
{
	this.msg = $('msg');
	this.errMsg = $('error_msg');
	$('sending').show();
	errMsg.hide();
	msg.hide();
	var params = $('form_main').serialize();
	
	new Ajax.Request('process/', {
		method: 'post',
		parameters: params,
		//onLoading: dataLoading,
		onLoaded: dataLoaded,
		onSuccess: parseResult,
		onFailure: connFailure });
}
//---------------------------------------------------------------------------

function dataLoading()
{
	$('sending_txt').innerHTML = 'идет отправка...';
}
//---------------------------------------------------------------------------

function dataLoaded(t)
{
	if(t.status==200) $('sending_txt').innerHTML = 'ожидание ответа...';
	else {
		$('sending_txt').innerHTML = 'Ошибка: '+t.statusText;
	}
}
//---------------------------------------------------------------------------

function connFailure()
{
	msg.innerHTML = 'Ошибка соединения с сервером';
}
//---------------------------------------------------------------------------

function parseResult(t)
{
	$('sending').hide();
	var json;
	try { json = eval('(' + t.responseText + ')'); }
	catch (e) { errMsg.show(); errMsg.innerHTML = 'Ошибка'; }
	if(json.status)
	{
		msg.show();
		$('msg').innerHTML = '\n<B>Транспортное средство</B><br />Страховой платеж, USD: <b>'+json.paymentTs + '</b>';
		if(json.paymentEquipment>0) $('msg').innerHTML += '<BR />\n<B>Дополнительное оборудование</B><br />Страховой платеж, USD: <b>'+json.paymentEquipment + '</b>'
			+'<BR /><B>Суммарный страховой платеж,</B> USD: <B>' + (json.paymentTs + json.paymentEquipment)+'</B>';
		if(json.calcVals) $('msg').innerHTML += ' <pre>' + json.calcVals + '</pre>';
	}
	else
	{
		errMsg.show();
		errMsg.innerHTML = '<B>Ошибка:</B> '+json.error.message;
	}
}
//---------------------------------------------------------------------------
