//// Показать/спрятать поле 'Другой город' в зависимости от значения поля 'Город'
// id - ID элемента для отображения/скрытия
// city - поле 'Город'
function field_other_display(id, city)
{
	var element = document.getElementById(id);
	if( city.options[city.selectedIndex].value != 1 )
	{	element.style.display = 'none';
		if( is_warning_after_element(element) )
			document.getElementById('warning_'+element.name).style.display = 'none';
	}
	else
	{	element.style.display = 'block';
		if( is_warning_after_element(element) )
			document.getElementById('warning_'+element.name).style.display = 'block';
		element.focus();
	}
}


//// Показать/спрятать поле 'Другая специальность'
// id - ID элемента для отображения/скрытия
// profession - поле 'Специальность'
function field_other_profession_display(id, profession)
{
	var element = document.getElementById(id);

	if( (profession.options[profession.selectedIndex].value != 139) && (profession.options[profession.selectedIndex].value != 140) && (profession.options[profession.selectedIndex].value != 141))
	{	element.style.display = 'none';
		if( is_warning_after_element(element) )
			document.getElementById('warning_'+element.name).style.display = 'none';
	}
	else
	{	element.style.display = 'block';
		if( is_warning_after_element(element) )
			document.getElementById('warning_'+element.name).style.display = 'block';
		element.focus();
	}
}

//// Очистка всех полей формы добавления объявления
// w - тип формы ('vacancy', 'resume')
//function clear_search_form(w)
//{
//	with( document.getElementById('form') )
//	{
//		id.value = '';
//		key_words.selectedIndex = 0;
//		key_string.value = '';
//		category.selectedIndex = 0;
//		city.selectedIndex = 0;
//		city_other.value = '';
//		city_other.style.display = 'none';
//		employment.selectedIndex = 0;
//		pay_min.value = '';
//		pay_max.value = '';
//		pay_money.selectedIndex = 1;
//		sex.selectedIndex = 0;
//		education.selectedIndex = 0;
//		experience.selectedIndex = 0;
//		residence.selectedIndex = 0;
//		residence_other.value = '';
//		residence_other.style.display = 'none';
//		period.selectedIndex = 0;
//		sort_by.selectedIndex = 0;
//		sort_direction.selectedIndex = 0;
//		show_by.value = rows_on_page.value;
//
//		if( w == 'vacancy' )
//		{
//			age.value = '';
//			employer.selectedIndex = 0;
//		}
//		else if( w == 'resume' )
//		{
//			age_min.value = '';
//			age_max.value = '';
//			work_outside.selectedIndex = 0;
//		}
//
//		id.focus();
//	}
//}

/* ----- Функции проверки формы ------ */

//// Проверка поля 'email пользователя'
//// Если всё в порядке удаляется ранее показанное предупреждение, иначе выводится предупреждение
// email - поле 'Название организации'
// Возвращает - true, если всё в порядке, иначе false
function check_email(email)
{
	if( !is_empty(email) && !is_email(email.value) )
	{	warning_after_element(email, 'add', EMAIL_WARNING);
		email.focus();
		return false;
	}
	else
	{	warning_after_element(email, 'remove');
		return true;
	}
}

//// Проверка промежутка значений в элементах (минимальный меньше максимального)
//// Если всё в порядке удаляется ранее показанное предупреждение, иначе выводится предупреждение
// min - input тип text
// max - input тип text
// wrnmsg - сообщение об ошибке
// Возвращает - true, если всё в порядке, иначе false
function check_range(min, max, wrnmsg)
{
	if( !is_empty(min) && !is_empty(max) && (parseInt(min.value) > parseInt(max.value)) )
	{	warning_after_element(max, 'add', wrnmsg);
		return false;
	}
	else
	{	warning_after_element(max, 'remove');
		return true;
	}
}


//// Проверка максимального значения в поле 'Показывать по'
//// Если всё в порядке удаляется ранее показанное предупреждение, иначе выводится предупреждение
// show_by - input тип text 'Показывать по'
// Возвращает - true, если всё в порядке, иначе false
function check_show_by(show_by)
{
	var e = document.getElementById('form').rows_on_page_max;

	if( Number(show_by.value) > Number(e.value) )
	{	warning_after_element(show_by, 'add', SHOW_BY_WARNING + e.value );
		return false;
	}
	else
	{	warning_after_element(show_by, 'remove');
		return true;
	}
}

//// Проверка всей формы поиска объявлений
// what - тип формы поиска ('vacancy', 'resume')
// Возвращает - true, если всё в порядке, иначе false
function check_search_form(what, show_by)
{
	if( what != 'vacancy' && what != 'resume' )
		return false;

	var ok = true;
	var form = document.getElementById('form');

	// Проверка полей 'Зарплата от' и 'Зарплата до'
	if( !check_range( form['search[pay_min]'], form['search[pay_max]'], PAY_RANGE_WARNING ) && ok == true )
	{	ok = false;
		form['search[pay_min]'].focus();
	}

	// Проверка поля 'Другой город'
	if( !check_city_other( form['search[city_other]'], form['search[city]'] ) && ok == true )
	{	ok = false;
		form['search[city_other]'].focus();
	}

	// Проверка полей 'Поиск резюме'
	if( what == 'resume' )
	{
		// Проверка полей 'Возраст от' и 'Возраст до'
		if( !check_range( form['search[age_min]'], form['search[age_max]'], AGE_RANGE_WARNING ) && ok == true )
		{	ok = false;
			form['search[age_min]'].focus();
		}
	}

	// Проверка поля 'Показывать по'
	if( show_by === true )
		if( !check_show_by( form['search[show_by]'] ) && ok == true )
		{	ok = false;
			form['search[show_by]'].focus();
		}

	return ok;
}

function enable_disable(el, value)
{
	el.disabled = value;
}