function action_func(f_actions, f_id) // выполняет последовательность действий с группой объектов. 1-й аргумет -- действие или массив действий, 2-й аргумент -- id или массив id
{
	if (typeof f_actions == 'string') // если первый аргумент -- строка, преобразуем в массив
	{
		var f_actions = new Array(f_actions);
	}

	if (typeof f_id == 'string') // если второй аргумент -- строка, преобразуем в массив
	{
		var f_id = new Array(f_id);
	}

	for (i = 0; i < f_id.length; i++)
	{
		for (var j = 0; j < f_actions.length; j++)
		{
			eval('document.getElementById("' + f_id[i] + '").' + f_actions[j]);
		}
	}
}

function intval(e) // при нажитии кнопки внутри текстового поля вовращает false, если нажаты не 0-9, tab, enter, backspace, delete, left, right
{

	if(e.keyCode)
	{
		var button = e.keyCode;
	}
	else
	{
		var button = e.charCode;
	}

	if (button)
	{
		button_array = new Array('48', '49', '50', '51', '52', '53', '54', '55' ,'56' ,'57' ,'37', '39' ,'8', '13', '9', '46');

		for (i = 0; i < button_array.length; i++)
		{
			if (button_array[i] == button)
			{
				return true;
			}
		}
		return false;
	}
}

function send_form(begin_msg, fields) // если нет ошибок -- отправляет форму, иначе нет
{
	var f_error = "";
	for (var i = 0; i < fields.length; i++)
	{
		f_error += (field_check(fields[i][0], fields[i][1]) != true) ? fields[i][2] : '';
	}

	if (f_error)
	{
		alert(begin_msg + f_error);
		return false;
	}

	else
	{
		return true;
	}
}


function field_check(f_type, f_id) // проверка полей формы перед отправкой
{
	if (f_type == 'f_blank' && document.getElementById(f_id)) // для проверки на заполнение поля
	{
		return (document.getElementById(f_id).value != '') ? true : false;
	}

	if (f_type == 'f_email' && document.getElementById(f_id)) // для проверки email на валидность
	{
		var regexp = /[\w-]{1,255}@[\w-\.]{1,255}\.[a-zA-Z]{2,4}/;
		return regexp.test(document.getElementById(f_id).value);
	}

	if (f_type == 'f_radio') // для радиокнопок, передаем name, а не id
	{
		for (var i = 0; i < document.getElementsByName(f_id).length; i++)
		{
			if (document.getElementsByName(f_id)[i] && document.getElementsByName(f_id)[i].checked == true)
			{
				
				return true;
			}
		}
	return false;
	}

	if (f_type == 'f_password') // для сравнения пароля и подтверждания пароля, вместо id передаем массив из 2-х id
	{
		return (document.getElementById(f_id[0]).value == document.getElementById(f_id[1]).value) ? true : false;
	}

	if (f_type.indexOf('f_length') != -1) // для проверки длины строки. Значение передается как "f_length:число", где "число" необходимая длина строки
	{
		return (document.getElementById(f_id).value.length >= f_type.substr(9)) ? true : false;
	}

	return false;
}

function preload_images(dir) //прелоадер картинок, первый параметр фукнции -- путь до папки с картинками, остальное имена картинок
{
	var picture_gallery = new Array;

	for(var i = 1; i < preload_images.arguments.length; i++)
	{
		picture_gallery[preload_images.arguments[i]] = new Image();
		picture_gallery[preload_images.arguments[i]].src = dir + preload_images.arguments[i];
	}
}