function catorder_refresh (order_form)
{
	//var order_form = document.getElementById('order_form');
	//var region = order_form.region.value;

	var prices_ru = 0;
	var prices_euro = 0;
	var x = 0;

	for (var i = 0; i < order_form.length; i++)
	{
		var name = order_form[i].name;
		if (name.substr(0,6) == 'order[' && name.substr(name.length-8, 8) == '][price]')
			if (parseFloat(order_form[i].value.replace(',', '.')))
			{
				if (order_form[i+1].value==0)
					prices_euro += parseFloat(order_form[i].value.replace(',', '.'));
				else
					prices_ru += parseFloat(order_form[i].value.replace(',', '.'));
			}
	}

	var price_of_cargo    = document.getElementById('price_of_cargo'   );
	if (prices_ru>0){
		price_of_cargo.innerHTML = format_float(x = prices_ru)+' руб.';
		price_of_cargo.style.display = 'inline';
	}else{
		price_of_cargo.style.display = 'none';
	}
	var price_of_cargo_euro    = document.getElementById('price_of_cargo_euro'   );
	if (prices_euro>0){
		price_of_cargo_euro.innerHTML = format_float(x_e = prices_euro)+' &euro;.';
		price_of_cargo_euro.style.display = 'inline';
	}else{
		price_of_cargo_euro.style.display = 'none';
	}

	var price_of_service  = document.getElementById('price_of_service' );
	y = format_float(15 * prices_euro / 100);
	price_of_service .innerHTML = ''+y+' &euro;';
//	var price_of_delivery = document.getElementById('price_of_delivery'); price_of_delivery.innerHTML = 250;
	var price_total       = document.getElementById('price_total'      );
	if ((prices_ru>0) || (prices_euro>0)){
		price_total.innerHTML = format_float(x + price_of_delivery)+' руб.';
		price_total.style.display = 'inline';
	}else{
		price_total.style.display = 'none';
	}

	var price_total_euro  = document.getElementById('price_total_euro' );
	if (prices_euro>0){
		price_total_euro.innerHTML = format_float(x_e + y)+' &euro;.';
		price_total_euro.style.display = 'inline';
	}else{
		price_total_euro.style.display = 'none';
	}

	return false;
}

function format_float(v) { return Math.round(v * 100) / 100; }

$(function(){

	// Так как может быть несколько форм, следует учитывать префикс.
	// Для каждого такого префикса (формы) будет свой такой closure-скрипт.

	var s_prompt = 'Введите вариант ответа';
	var s_nohint = 'Ничего не найдено.';
	var num = $('.num').length;

	var catalog_list_str = '';
	for(i=1;i<catalog_list.length;i++)
	{
		catalog_list_str+='<option value="'+i+'">'+catalog_list[i]+'</option>';
	}

	var item_types_str = '';
	for(i=1;i<item_types.length;i++)
	{
		item_types_str+='<option value="'+i+'">'+item_types[i]+'</option>';
	}

/*
	$('#cat_hint')
	.livequery('change', function(){
		add_item(this,'order[new'+this.num+'][catalogue]');
	});
*/
	
	// Процедура добавления новой модели в список моделей.	
	$('.order_append')
	.livequery('click', function(){
//		var row = this; while (row && row.nodeName.toLowerCase() != 'tr') row = row.parentNode;
//		var row = document.getElementById("last_tr");
		var row = $('#last_tr');

			//var num = Math.random();
			num++;

			var struct = $(''
+'			<tr'+((num%2==1)?' class="odd"':'')+' id="order_row_new'+num+'">'
+'				<td class="num">'+num+'</td>'
+'				<td class="detail">'
+'					<table>'
+'						<tr>'
+'							<td class="order-name">Название каталога*</td>'
+'							<td class="order-value"><input type="text" name="order[new'+num+'][catalogue]" class="large input"/></td>'
+'						</tr><tr>'
+'							<td class="order-name">(выберите из списка)</td>'
+'							<td class="order-value">'
+'								<select name="cat_hint" onchange="add_item(this,\'order[new'+num+'][catalogue]\')" num="'+num+'" id="cat_hint">'
+'									<option value="0" select="selected">Выберите каталог</option>'
+'									'+catalog_list_str
+'								</select>'
+'							</td>'
+'						</tr><tr>'
+'							<td class="order-name">Страница каталога*</td>'
+'							<td class="order-value"><input type="text" name="order[new'+num+'][page]" class="short input"/></td>'
+'						</tr><tr>'
+'							<td class="order-name">Позиция на странице*</td>'
+'							<td class="order-value"><input type="text" name="order[new'+num+'][pos]" class="short input"/></td>'
+'						</tr><tr>'
+'							<td class="order-name">Название товара*</td>'
+'							<td class="order-value"><input type="text" name="order[new'+num+'][item]" class="large input"/></td>'
+'						</tr><tr>'
+'							<td class="order-name">(выберите из списка)</td>'
+'							<td class="order-value">'
+'								<select name="item_hint" onchange="add_item(this,\'order[new'+num+'][item]\')">'
+'									<option value="0" select="selected">Выберите тип предмета</option>'
+'									'+item_types_str
+'								</select>'
+'							</td>'
+'						</tr><tr>'
+'							<td class="order-name">Артикул</td>'
+'							<td class="order-value"><input type="text" name="order[new'+num+'][articul]" class="medium input"/></td>'
+'						</tr><tr>'
+'							<td class="order-name">Размер</td>'
+'							<td class="order-value"><input type="text" name="order[new'+num+'][size]" class="medium input"/></td>'
+'						</tr><tr>'
+'							<td class="order-name">Цвет</td>'
+'							<td class="order-value"><input type="text" name="order[new'+num+'][color]" class="medium input"/></td>'
+'						</tr><tr>'
+'							<td class="order-name">Цена</td>'
+'							<td class="order-value"><input type="text" name="order[new'+num+'][price]" class="short input" onChange="catorder_refresh (this.form)"/> <select name="order[new'+num+'][currency]" class="short input" onChange="catorder_refresh (this.form)"><option value="0">&euro; евро</option><option value="2">рубль</option></select></td>'
+'						</tr>'
+'					</table>'
+'				</td>'
+'				<td class="delete"><a href="#" class="order_remove"><img src="'+PUB_ROOT+'dsn/btn_delete.gif" width="15" height="15" alt="удалить из списка" title="удалить из списка"/></a></td>'
+'			</tr>'
			);
//			$('input#txt', struct).val(name);
			//$('nobr', struct).text(name);
			$(row).before(struct);

			// После добавления модели очищаем поле для ввода модели.
			$('#order_new').val('').blur().focus();
		return false;
	});

	// Процедура удаления модели из списка моделей.
	$('.order_remove')
	.livequery('click', function(){
		row = $(this).parents('tr:first');
		//var row = this; while (row && row.nodeName.toLowerCase() != 'tr') row = row.parentNode;
		if (row)
		{
			next_row = row.next();
			while ((next_row) && ($(next_row).attr('id') != 'last_tr'))
			{
				$(next_row).attr('class', $(next_row).attr('class') == 'odd' ? '' : 'odd');
				row_num = next_row.find('.num').text();
				row_num_new = row_num - 1;
				next_row.find('.num').text(row_num_new);
				next_row.find("input[name='order[new"+row_num+"][catalogue]']").attr("name", "order[new"+row_num_new+"][catalogue]");

				next_row.find("select[name='cat_hint']").unbind();
				next_row.find("select[name='cat_hint']").change(function() { add_item(this, "order[new"+row_num_new+"][catalogue]") });
				next_row.find("select[name='cat_hint']").attr("num", row_num_new);

				next_row.find("input[name='order[new"+row_num+"][page]']").attr("name", "order[new"+row_num_new+"][page]");
				next_row.find("input[name='order[new"+row_num+"][pos]']").attr("name", "order[new"+row_num_new+"][pos]");
				next_row.find("input[name='order[new"+row_num+"][item]']").attr("name", "order[new"+row_num_new+"][item]");
				next_row.find("input[name='order[new"+row_num+"][articul]']").attr("name", "order[new"+row_num_new+"][articul]");
				next_row.find("input[name='order[new"+row_num+"][size]']").attr("name", "order[new"+row_num_new+"][size]");
				next_row.find("input[name='order[new"+row_num+"][color]']").attr("name", "order[new"+row_num_new+"][color]");
				next_row.find("input[name='order[new"+row_num+"][price]']").attr("name", "order[new"+row_num_new+"][price]");
				next_row.find("select[name='order[new"+row_num+"][currency]']").attr("name", "order[new"+row_num_new+"][currency]");

				next_row.find("select[name='item_hint']").unbind();
				next_row.find("select[name='item_hint']").change(function() { add_item(this, "order[new"+row_num_new+"][item]") });
				
				next_row = next_row.next();
			}
			row.remove();
		}
		catorder_refresh (document.zak_form)
		num--;
		return false;
	});
});

	function add_item(objSel,n_add)
	{
		if(objSel.options[objSel.selectedIndex].value == 0) return;
		add_field = document.getElementsByName(n_add)[0];
		add_field.value += (add_field.value != '' ? ', ' : '');
		add_field.value += objSel.options[objSel.selectedIndex].text;
	}

