function modtimetable_get_free_block ()
{
	var i;
	
	if (modtimetable_blocks.length < modtimetable_max_blocks)
		return modtimetable_blocks.length;
	else
		for (i in modtimetable_blocks)
			if (modtimetable_blocks[i] == false)
				return i;
	return -1;
}

function modtimetable_create_block ()
{
	var block_id;
	
	block_id = modtimetable_get_free_block();
	if (block_id == -1)
		return -1;
	
	if (modtimetable_render_block(block_id) == -1)
		return -1;
	
	if (modtimetable_blocks.length == block_id)
		modtimetable_blocks.push(true);
	else
		modtimetable_blocks[block_id] = true;
	
	return block_id;
}

function modtimetable_add_block ()
{
	var block_id;
	
	block_id = modtimetable_create_block();
	if (block_id == -1)
		return -1;
	
	modtimetable_last_inserted.push(block_id);
	return 0;
}

function modtimetable_destroy_block (block_id)
{
	var container = document.getElementById('modtimetable_container');
	var block = document.getElementById('modtimetable_block_' + block_id);
	
	if (container && block)
	{
		container.removeChild(block);
		modtimetable_blocks[block_id] = false;
		return 0;
	}
	return -1;
}

function modtimetable_remove_block (block_id)
{
	var res, i, li = -1;
	
	res = modtimetable_destroy_block(block_id);
	if (res == -1)
		return -1;
	
	for (i = 0; i < modtimetable_last_inserted.length; i++)
		if (modtimetable_last_inserted[i] == block_id)
		{
			li = i;
			break;
		}
	if (li == -1)
		return -1;
	
	for (i = li; i < modtimetable_last_inserted.length - 1; i++)
		modtimetable_last_inserted[i] = modtimetable_last_inserted[i+1];
	modtimetable_last_inserted.pop();
	
	return 0;
}

function modtimetable_remove_block_link (block_id)
{
	modtimetable_remove_block(block_id);
}

function modtimetable_render_block (block_id)
{
	var container = document.getElementById('modtimetable_container');
	var block = document.createElement('div');
	var i, select, option, a, div, cdiv;
	
	if (!(container && block))
		return -1;
	
	block.id = "modtimetable_block_" + block_id;
	
	div = document.createElement('div');
	div.className = "modtimetable_control";
	
	cdiv = document.createElement('div');
	cdiv.className = "modtimetable_selects";
	
	/* == Селекты == */
	select = document.createElement('select');
	select.id = "modtimetable_transport_" + block_id;
	select.onchange = function () { modtimetable_select_changed(this) };
	select.className = "modtimetable_transport";
	
	option = document.createElement('option');
	option.value = -1;
	option.appendChild(document.createTextNode('---Тип транспорта---'));
	option.selected = true;
	
	select.appendChild(option);
	
	/* Заполняем список типов транспорта */
	for (i in modtimetable_transtypes)
	{
		option = document.createElement('option');
		option.appendChild(document.createTextNode(modtimetable_transtypes[i].description));
		option.value = modtimetable_transtypes[i].id;
		select.appendChild(option);
	}
	
	cdiv.appendChild(select);
	
	select = document.createElement('select');
	select.id = "modtimetable_marshrut_" + block_id;
	select.onchange = function () { modtimetable_select_changed(this) };
	select.className = "modtimetable_marshrut";
	select.disabled = true;
	
	option = document.createElement('option');
	option.value = -1;
	option.appendChild(document.createTextNode('---Маршрут---'));
	option.selected = true;
	
	select.appendChild(option);
	
	cdiv.appendChild(select);
	
	select = document.createElement('select');
	select.id = "modtimetable_ostanovka_" + block_id;
	select.onchange = function () { modtimetable_select_changed(this) };
	select.className = "modtimetable_ostanovka";
	select.disabled = true;
	
	option = document.createElement('option');
	option.value = -1;
	option.appendChild(document.createTextNode('---Остановка---'));
	option.selected = true;
	
	select.appendChild(option);
	
	cdiv.appendChild(select);
	
	div.appendChild(cdiv);
	
	/* == Кнопка закрытия блока == */
	cdiv = document.createElement('div');
	cdiv.className = "modtimetable_closediv";
	
	cdiv.appendChild(document.createTextNode('['));
	
	a = document.createElement('a');
	a.href = "javascript:modtimetable_remove_block_link (" + block_id + ")";
	a.className = "modtimetable_closelink";
	a.appendChild(document.createTextNode('X'));
	cdiv.appendChild(a);
	
	cdiv.appendChild(document.createTextNode(']'));
	
	div.appendChild(cdiv);
	
	block.appendChild(div);
	
	/* == Информационные дивы == */
	div = document.createElement('div');
	div.className = "modtimetable_leftcolumn";
	
	cdiv = document.createElement('div');
	cdiv.id = "modtimetable_raspisanie_" + block_id;
	cdiv.className = "modtimetable_raspisanie";
	
	div.appendChild(cdiv);
	
	block.appendChild(div);
	
	div = document.createElement('div');
	div.className = "modtimetable_rightcolumn";
	
	cdiv = document.createElement('div');
	cdiv.id = "modtimetable_bliz_" + block_id;
	cdiv.className = "modtimetable_bliz";
	
	div.appendChild(cdiv);
	
	cdiv = document.createElement('div');
	cdiv.id = "modtimetable_map_" + block_id;
	cdiv.className = "modtimetable_map";
	
	div.appendChild(cdiv);
	
	block.appendChild(div);
	
	container.appendChild(block);
	return 0;
}
