function linkClick(fieldType, mods)
{
	//если это ссылка то покажем список каталогов
	if(fieldType == 4)
	{
		$.ajax({
			async: false,
			url: '/admin.php?admincats=true&get_mods=true',
			type: 'GET',
			success: function(responseText, statusText) {
				$('#link_mod_div').html('<select name="link_mod" id="link_mod" onchange="linkModClick(this.options[this.selectedIndex].value)">' + responseText + '</select>');
				linkModClick($('form')[0].link_mod.options[0].value);
			}
		});
	}
	else
	{
		$('#link_mod_div').html('');
		$('#link_mod_field_div').html('');
	}
}

function linkModClick(mod)
{
	$.ajax({
		async: false,
		url: '/admin.php?admincats=true&get_mod_fields=true&mod_id=' + mod,
		type: 'GET',
		success: function(responseText, statusText) {
			$('#link_mod_field_div').html('<select name="link_mod_field">' + responseText + '</select>');
		}
	});
}

////////////////////////////////////////////////////////////////
// сортировка
////////////////////////////////////////////////////////////////

var sortVisible = false;

function showHideSort(modName, actFile)
{
	if(sortVisible)
	{
		$('#sort_params').html('');
		sortVisible = false;
	}
	else
	{
		sortVisible = true;
		
		if($('#sort_params').html() == "")
		{
			$.get('/admin/cats/' + modName + '/adminsort.php', {file: actFile}, function(data)
			{
				$('#sort_params').html(unescape(data));
				$('#sort_params>form').append(filterParameters);
			});
		}
	}
	
	return false;
}

////////////////////////////////////////////////////////////////
// фильтрация
////////////////////////////////////////////////////////////////

var filterVisible = false,
	filters = new Array(),
	filtersLast = -1;

function showHideFilter()
{
	if(filterVisible)
	{
		filterVisible = false;
		$('#filter_params').hide();
	}
	else
	{
		filterVisible = true;
		$('#filter_params').show();
	}
	
	return false;
}

function showFilter(id)
{
	//находим пустую ячейку а массиве filters
	var freeCell = -1;
	
	for(var i = 0; i < filters.length; i++)
	{
		if(filters[i] == '')
		{
			freeCell = i;
			break;
		}
	}
	
	if(freeCell == -1)
	{
		freeCell = filters.length;
	}
	
	filters[freeCell] = filterNames[id];
	filtersLast = freeCell;
	
	$('#_filter_add').remove();
	$('#_filter_op').remove();
	$('#_filter_submit').remove();
	
	var code = '<span style="display: block; width: 700px; text-align: left" id="_filter_' + freeCell + '">';
	code += '<select id="_filter_select_' + freeCell + '" onchange="filterSelectChange(' + freeCell + ')">' + filterOptions + '</select> ';
	code += '<select id="_filter_options_' + freeCell + '" style="width: 160px">' + getFilterOptions(id) + '</select> ';
	code += '<input type="text" id="_filter_value_' + freeCell + '" size="20" /> ';
	code += '<input type="button" id="_filter_remove_' + freeCell + '" value="-" onclick="filterRemove(' + freeCell + ')" /> ';
	code += '<input type="button" id="_filter_add" value="+" onclick="filterAdd()" /> ';
	code += '<select id="_filter_op" style="width: 50px"><option value="and">И</option><option value="or">ИЛИ</option></select>';
	code += '<input type="button" id="_filter_submit" value="Filter" onclick="filterIt()" />';
	code += '</span>';
	
	return code;
}

function getFilterOptions(id)
{
	var code = '';
	
	if(filterTypes[id] == 'int' || filterTypes[id] == 'date')
	{
		code += '<option value="equal">Равно</option>';
		code += '<option value="not_equal">Не равно</option>';
		code += '<option value="less">Меньше</option>';
		code += '<option value="greater">Больше</option>';
		code += '<option value="less_or_equal">Меньше или равно</option>';
		code += '<option value="greater_or_equal">Больше или равно</option>';
	}
	else
	if(filterTypes[id] == 'varchar')
	{
		code += '<option value="equal">Равно</option>';
		code += '<option value="not_equal">Не равно</option>';
		code += '<option value="contains">Содержит</option>';
	}
	else
	if(filterTypes[id] == 'link')
	{
		code += '<option value="equal">Равно</option>';
		code += '<option value="not_equal">Не равно</option>';
	}
	
	return code;
}

function filterSelectChange(id)
{
	var filterNewName = $('#_filter_select_' + id).val();
		filterRealId = -1;
	
	//находим индекс фильтра в массивах данных
	for(var i = 0; i < filterNames.length; i++)
	{
		if(filterNames[i] == filterNewName)
		{
			filterRealId = i;
			break;
		}
	}
	
	filters[id] = filterNewName;
	
	$('#_filter_options_' + id).html(getFilterOptions(filterRealId));
}

function filterAdd(id)
{
	$('#filter_params').append(showFilter(0));
}

function filterRemove(id)
{
	var numFilters = 0;
	
	for(var i = 0; i < filters.length; i++)
	{
		if(filters[i] != '')
		{
			numFilters++;
		}
	}
	
	if(numFilters == 1)
	{
		return;
	}
	
	filters[id] = '';
	
	$('#_filter_' + id).remove();
	
	if(id == filtersLast)
	{
		var last = $('#filter_params span:last-child'),
			lastId = last.attr('id');
		
		filtersLast = lastId.substr(8, lastId.length - 8);
		
		var code = '<input type="button" id="_filter_add" value="+" onclick="filterAdd()" /> ';
		code += '<input type="button" id="_filter_submit" value="Filter" onclick="filterIt()" />';
		
		last.append(code);
	}
}

function filterIt()
{
	var code = '<div style="dislay: none">';
	code += '<form action="' + formAct + '" method="post" id="send_form">';
	code += '<input type="hidden" name="filter" value="1" />';
	code += '<input type="hidden" name="filterop" value="' + $('#_filter_op').val() + '" />';
	
	$('input').each(function(index)
	{
		id = $(this).attr('id');
		
		if(id.substr(0, 14) == '_filter_value_')
		{
			var i = id.substr(14, id.length - 14),
				filterValue = $('#_filter_value_' + i).val(),
				filterOption = $('#_filter_options_' + i).val();
			
			code += '<input type="hidden" name="filter_' + filterNames[i] + '" value="' + filterTypes[i] + '|' + filterOption + '|' + filterValue + '" />';
		}
	});
	
	code += sortOptions;
	code += '</form></div>';
	
	$('body').append(code);
	$('#send_form').submit();
}
