/* Функция проверки кол-ва полей ввода в блоке прикрепленных файлов */

function checkAttached(name,inputs,min,max)
{	
	var oAdd=document.getElementById("add_"+name); // Кнопка "Добавить"
	var oDelete=document.getElementById("delete_"+name); // Кнопка "Удалить"
	var oHeader=document.getElementById("header_"+name); // Заголовок
	
	if(min<0) min=0; // Обрезаем минимум по 0
	
	if (inputs<max) oAdd.style.display="inline"; // Если число полей ввода для загрузки файлов меньше максимального, то активирум кнопку "Добавить"
	else oAdd.style.display="none"; // Иначе - дезактивируем
	
	if(inputs>min) oDelete.style.display="inline"; // Если число полей ввода для загрузки файлов больше минимального, то активируем кнопку "Удалить"
	else oDelete.style.display="none"; // Иначе - дезактивируем
	
	if(inputs) oHeader.style.display="block"; // Если есть поля ввода для загрузки файлов, показываем заголовок
	else oHeader.style.display="none"; // Иначе - скрываем
}

/* Функции добавления поля для загрузки файла */

function attachBlockAdd(name,min,max,title_enabled)
{
	var inputs=document.getElementById("block_"+name).getElementsByTagName("*").length/2; // Кол-во полей ввода для загрузки файлов
	var files=document.getElementsByName(name).length; // Кол-во прикрепленных файлов
	
	createInput("block_"+name,"","title_"+name+"[]","text",300,"",!title_enabled); // Создание поля ввода описания
	createInput("block_"+name,"",name+"[]","file",300); // Создание поля ввода для загрузки файла
	
	checkAttached(name,inputs+1,min-files,max-files); // Проверка кол-ва прикрепленных файлов и полей ввода для загрузки файлов
}

/* Функции удаления поля для загрузки файла */

function attachBlockDelete(name,min,max,delIfEmpty)
{
	var oParent=document.getElementById("block_"+name); // Родительский блок
	var inputs=document.getElementById("block_"+name).getElementsByTagName("*").length/2; // Кол-во полей ввода для загрузки файлов
	var files=document.getElementsByName(name).length; // Кол-во прикрепленных файлов
	
	if(inputs>max) inputs=max; // Обрезаем кол-во полей ввода для загрузки файлов по максимуму
	
	var lastFileChild=document.getElementById("block_"+name).getElementsByTagName("*")[inputs*2-1]; // Последнее поле ввода описания
	var lastTextChild=document.getElementById("block_"+name).getElementsByTagName("*")[inputs*2-2]; // Последнее поле ввода для загрузки файлов

	if(!delIfEmpty || delIfEmpty && lastFileChild.value=="") // Если не выбрана опция "Удалять, если поле пустое", или если она выбрана и поле пустое
	{
		oParent.removeChild(lastTextChild); // Удаление последнего поля ввода описания
		oParent.removeChild(lastFileChild); // Удаление последнего поля для загрузки файлов
		
		checkAttached(name,inputs-1,min-files,max-files); // Проверка кол-ва прикрепленных файлов и полей ввода для загрузки файлов
	}
}

/* Помещение прикрепленного файла(изображения) в список на удаление */

function deleteAttached(oLink,name,path,bigPath,min,max,title_enabled)
{
	var oList=document.getElementById("list_"+name); // Список удаляемых фалов
	var oLinks=document.getElementById("links_"+name); // Список прикрепленных файлов
	
	oList.value+=oList.value?",":""; // Добавление запятой в список удаляемых фалов, если нужно
	
	oList.value+=path; // Добавление файла в список удаляемых файлов
	if(bigPath) oList.value+=","+bigPath; // Добавление большого изображения, если есть, в список
	
	oLinks.removeChild(oLink); // Удаление файла из списка прикрепленных файлов
	
	var links=((oLinks.getElementsByTagName("*").length-2)/2); // Кол-во элементов в списке прикрепленных файлов
	
	if(!links) oLinks.style.display="none"; // Если в списке прикрепленных файлов нет элементов, список скрывается
	
	var inputs=document.getElementById("block_"+name).getElementsByTagName("*").length/2; // Кол-во полей ввода для загрузки файлов
	var files=document.getElementsByName(name).length; // Кол-во прикрепленных файлов
	
	if(files<min) // Если кол-во прикрепленных файлов меньше минимума
	{
		attachBlockAdd(name,min,max,title_enabled); // Добавление поле ввода для загрузки файлов
		checkAttached(name,inputs+1,min-files,max-files); // Проверка кол-ва прикрепленных файлов и полей ввода для загрузки файлов
	}
	else
		checkAttached(name,inputs,min-files,max-files); // Проверка кол-ва прикрепленных файлов и полей ввода для загрузки файлов
}

/* Функция удаления пустых полей выбора файла */

function deleteEmptyFields(name,min)
{
	var inputs=document.getElementById("block_"+name).getElementsByTagName("*").length/2; // Кол-во полей ввода для загрузки файлов
	var files=document.getElementsByName(name).length; // Кол-во прикрепленных файлов
	
	for(var i=inputs+files; i>min; i--)
		attachBlockDelete(name,min,i,true); // Удаление пустых полей ввода для загрузки файлов
}
