Event.observe(window, 'load', function() {
	// подписи в полях
	var inputs = $$('input.label, textarea.label').each( function(el){
		el.label = el.getValue();
		el.onfocus = hide_default_value;
		el.onblur = show_default_value;
	});
	
	// убрать подчеркивание последнего элемента списка (с классом last)
	$$('div.last').each( function(elem) {
		elem.removeClassName('underdotted');
	});
	
	// для таблиц области контента
	//if (!$$('table').hasClassName('cleartable')) {
	$$('div.content table tr:nth-child(odd)').each(function(el) {
		el.addClassName('odd');
	});
	//}
	$$('div.content table.cleartable tr:nth-child(odd)').each(function(el) {
		el.removeClassName('odd');
	});
	// #для таблиц области контента

	if ($('form-search')) $('form-search').onsubmit = checkSearchForm;
	if ($('form-search-2')) $('form-search-2').onsubmit = checkSearchForm;
	if ($('form-receipt')) $('form-receipt').onsubmit = checkReceiptForm;
	if ($('form-question')) $('form-question').onsubmit = checkQuestionForm;
	if ($('form-order-service')) $('form-order-service').onsubmit = checkOrderServiceForm;
	if ($('form-order-verb')) $('form-order-verb').onsubmit = checkOrderServiceForm;
	if ($('form-wmz-pay')) $('form-wmz-pay').onsubmit = checkWmzPayForm;
// английская версия
	if ($('form-en-receipt')) $('form-en-receipt').onsubmit = checkEnReceiptForm;
	if ($('form-en-question')) $('form-en-question').onsubmit = checkEnQuestionForm;
	if ($('form-en-order-service')) $('form-en-order-service').onsubmit = checkEnOrderServiceForm;
	if ($('form-en-order-verb')) $('form-en-order-verb').onsubmit = checkEnOrderServiceForm;
	if ($('form-en-wmz-pay')) $('form-en-wmz-pay').onsubmit = checkEnWmzPayForm;


/* Калькулятор */
	if ($('form-calc')) $('form-calc').onsubmit = checkCalcForm;
	if ($('form-en-calc')) $('form-en-calc').onsubmit = checkEnCalcForm;
	
// установка селектов в форме заказа перевода
	if ($('lang_from') && $('lang_to')) {
		var params_obj = location.href.toQueryParams();
		
		if (typeof(params_obj.from) != 'undefined' && typeof(params_obj.to) != 'undefined') {
			$('lang_from').setValue(params_obj.from);
			$('lang_to').setValue(params_obj.to);
		}
	}
	
// ссылка на форму заказа
	if ($('lang-from-calc') && $('lang-to-calc')) {
		if ($('calc-order-link')) $('calc-order-link').onclick = goToOrderForm;
		else if ($('calc-en-order-link')) $('calc-en-order-link').onclick = goToEnOrderForm;	// английская версия
	}
/* #Калькулятор */

});

// подписи в полях
function hide_default_value(){
	if ($(this).getValue() == this.label) this.value = '';
}
function show_default_value(){
	if ($(this).getValue().blank()) this.value = this.label;
}

// проверка заполненности текстового поля
function check_field(field){
	field = $(field);
	if (!field) return true;		// использование одной функции проверки для нескольких форм
	var value = field.getValue();
	var label = field.label;
	if (value.blank() || (typeof(label) != 'undefined' && value == label)) return false;
	return true;
}

// форма поиска
function checkSearchForm() {
	if (check_field(this['search_string'])) return true;
		//alert('Что ищем?');
		this['search_string'].focus();
	return false;
}


/*********** Русская версия. ***********/

// форма оплаты услуг
function checkReceiptForm(){
	try{
		var errors = new Array();
		if (!check_field(this['payer']))
			errors.push('<li>Укажите ФИО.</li>');
		if (!check_field(this['payer_address']))
			errors.push('<li>Впишите ваш адрес.</li>');
		if (!check_field(this['contract_number']) )
			errors.push('<li>Не указан номер договора.</li>');

		if (errors.length == 0) return true;
			//alert( errors.join("\n") );
			 $('form-receipt-errors').update('<strong>Ошибка при заполнении формы</strong><ul>' + errors.join('') + '</ul>').show();

	}catch(e){ alert(e); }
	return false;
};

// форма "Задать вопрос"
function checkQuestionForm(){
	try{
		var errors = new Array();
		if (!check_field(this['nick']))
			errors.push('<li>Заполните поле "Представьтесь, пожалуйста".</li>');
		if (!check_field(this['email']))
			errors.push('<li>Заполните поле "Как с Вами связаться".</li>');
		if (!check_field(this['title']))
			errors.push('<li>Заполните поле "Заголовок".</li>');
		if (!check_field(this['question']) )
			errors.push('<li>Заполните поле "Ваш вопрос".</li>');

		if (errors.length == 0) return true;
			//alert( errors.join("\n") );
			$('form-question-errors').update('<strong>Ошибка при заполнении формы</strong><ul>' + errors.join('') + '</ul>').show();

	}catch(e){ alert(e); }
	return false;
};

// форма заказа перевода
function checkOrderServiceForm(){
	//try{
		var errors = new Array();
		if (!check_field(this['client_name_write']) || !check_field(this['client_name_site']) || !check_field(this['client_name_verb']))
			errors.push('<li>Заполните поле "Представьтесь, пожалуйста".</li>');
		if (!check_field(this['client_contacts_write']) || !check_field(this['client_contacts_site']) || !check_field(this['client_contacts_verb']))
			errors.push('<li>Заполните поле "Как с Вами связаться"</li>');
		if (!check_field(this['url_site']))
			errors.push('<li>Заполните поле "Адрес сайта".</li>');
		if (!check_field(this['lang_from']))
			errors.push('<li>Выберите язык оригинала.</li>');
		if (!check_field(this['lang_to']))
			errors.push('<li>Выберите язык перевода.</li>');
		if (this['lang_from'] && this['lang_to'])
			if (this['lang_from'].getValue() == this['lang_to'].getValue())
				errors.push('<li>Выберите разные языки.</li>');
		if (errors.length == 0) return true;
			//alert( errors.join("\n") );
			$('form-order-service-errors').update('<strong>Ошибка при заполнении формы</strong><ul>' + errors.join('') + '</ul>').show();

	//}catch(e){ alert(e);}
	return false;
};


var calc_but_disabled = false;

// Форма калькулятора переводов. Проверка корректности ввода.
function checkCalcForm() {
		try{
		var errors = new Array();
		if (!check_field(this['lang-from-calc']))
			errors.push('<li>Выберите язык оригинала.</li>');
		if (!check_field(this['lang-to-calc']))
			errors.push('<li>Выберите язык перевода.</li>');
		if (this['lang-from-calc'].getValue() == this['lang-to-calc'].getValue())
			errors.push('<li>Выберите разные языки.</li>');
		if (!check_field(this['text-calc']) )
			errors.push('<li>Введите текст.</li>');

		if (errors.length == 0) {
			$('form-calc-errors').update('').hide();
			if (!calc_but_disabled) return calcFormDo();
			return false;
		}
		
			$('form-calc-errors').update('<strong>Ошибка при заполнении формы</strong><ul>' + errors.join('') + '</ul>').show();

	}catch(e){ alert(e); }
	return false;
}

// Форма калькулятора переводов. Расчет стоимости перевода.
function calcFormDo() {
	var char_num = $F('text-calc').replace(/[\n,\r]/g, '').length;			// перевод строки не считается
	var langs = new Array($F('lang-from-calc'), $F('lang-to-calc'));
	
	new Ajax.Updater(
			{success: 'calc-translate-cost'},
			'/tariffs/item/', {
			method: 'get',
			parameters: {name: langs.join('_'), num: char_num},
			onLoading: function() {
				calc_but_disabled = true;
				$('form-calc-result').hide();
				$('form-calc-wait').update('Запрос стоимости...').show();
				},
			onSuccess: function() {
				$('form-calc-wait').update('').hide();
				$('form-calc-result').show();
				$('calc-order-button').show();
				},
			onComplete: function() {
				calc_but_disabled = false;
				}
			});
	
	$('form-calc-chars').update('Количество введенных символов: ' + char_num).show();
	
	return false;
}

// Перенаправление на форму заказа перевода.
function goToOrderForm() {
	document.location.href = '/write_translation/write_order/?from=' + $F('lang-from-calc') + '&to=' + $F('lang-to-calc');
	return false;
}

// Оплата через webmoney. Формирование поля с описанием.
function checkWmzPayForm() {
	try{
		var errors = new Array();
		if (!check_field(this['wmz_payer_name']))
			errors.push('<li>Представьтесь.</li>');
		if (!check_field(this['wmz_contract_num']))
			errors.push('<li>Ваш номер договора.</li>');
		if (!check_field(this['LMI_PAYMENT_AMOUNT']))
			errors.push('<li>Сумма платежа.</li>');

		if (errors.length == 0) {
			var wmz_arr = new Array();
	
			wmz_arr.push('ФИО плательщика: ');
			wmz_arr.push(this['wmz_payer_name'].value);
			wmz_arr.push('<br />');
			wmz_arr.push('Номер договора: ');
			wmz_arr.push(this['wmz_contract_num'].value);
			
			this['LMI_PAYMENT_DESC_BASE64'].value = Base64.encode(wmz_arr.join(''));
			
			return true;
		}
			//alert( errors.join("\n") );
			$('form-wmz-errors').update('<strong>Ошибка при заполнении формы</strong><ul>' + errors.join('') + '</ul>').show();

	}catch(e){ alert(e); }
	return false;
}


/*********** Английская версия. ***********/

// Форма "Задать вопрос".
function checkEnQuestionForm(){
	try{
		var errors = new Array();
		if (!check_field(this['nick']))
			errors.push('<li>Your name.</li>');
		if (!check_field(this['email']))
			errors.push('<li>Contact info.</li>');
		if (!check_field(this['title']))
			errors.push('<li>Title.</li>');
		if (!check_field(this['question']) )
			errors.push('<li>Your question.</li>');

		if (errors.length == 0) return true;
			//alert( errors.join("\n") );
			$('form-en-question-errors').update('<strong>Errors of form filling</strong><ul>' + errors.join('') + '</ul>').show();

	}catch(e){ alert(e); }
	return false;
};

// Форма заказа перевода.
function checkEnOrderServiceForm(){
	//try{
		var errors = new Array();
		if (!check_field(this['client_name_write_eng']) || !check_field(this['client_name_site_eng']) || !check_field(this['client_name_verb_eng']))
			errors.push('<li>Your name.</li>');
		if (!check_field(this['client_contacts_write_eng']) || !check_field(this['client_contacts_site_eng']) || !check_field(this['client_contacts_verb_eng']))
			errors.push('<li>Contact info.</li>');
		if (!check_field(this['url_site_eng']))
			errors.push('<li>The site address.</li>');
		if (!check_field(this['lang_from']))
			errors.push('<li>Source language.</li>');
		if (!check_field(this['lang_to']))
			errors.push('<li>Target language.</li>');
		if (this['lang_from'] && this['lang_to'])
			if (this['lang_from'].getValue() == this['lang_to'].getValue())
				errors.push('<li>Choose different languages.</li>');
		if( errors.length == 0) return true;
			//alert( errors.join("\n") );
			$('form-en-order-service-errors').update('<strong>Errors of form filling</strong><ul>' + errors.join('') + '</ul>').show();

	//}catch(e){ alert(e);}
	return false;
};

// Форма оплаты услуг.
function checkEnReceiptForm(){
	try{
		var errors = new Array();
		if (!check_field(this['payer_eng']))
			errors.push('<li>Your name.</li>');
		if (!check_field(this['payer_address_eng']))
			errors.push('<li>Address.</li>');
		if (!check_field(this['contract_number_eng']) )
			errors.push('<li>Contract number.</li>');

		if (errors.length == 0) return true;
			//alert( errors.join("\n") );
			 $('form-en-receipt-errors').update('<strong>Errors of form filling</strong><ul>' + errors.join('') + '</ul>').show();

	}catch(e){ alert(e); }
	return false;
};

// Форма калькулятора переводов. Проверка корректности ввода.
function checkEnCalcForm() {
		try{
		var errors = new Array();
		if (!check_field(this['lang-from-calc']))
			errors.push('<li>Source language.</li>');
		if (!check_field(this['lang-to-calc']))
			errors.push('<li>Target language.</li>');
		if (this['lang-from-calc'].getValue() == this['lang-to-calc'].getValue())
			errors.push('<li>Choose different languages.</li>');
		if (!check_field(this['text-calc']) )
			errors.push('<li>Enter text.</li>');

		if (errors.length == 0) {
			$('form-en-calc-errors').update('').hide();
			if (!calc_but_disabled) return calcFormDo();
			return false;
		}
		
			$('form-en-calc-errors').update('<strong>Errors of form filling</strong><ul>' + errors.join('') + '</ul>').show();

	}catch(e){ alert(e); }
	return false;
}

// Перенаправление на форму заказа перевода.
function goToEnOrderForm() {
	document.location.href = '/en/write_translation/write_order/?from=' + $F('lang-from-calc') + '&to=' + $F('lang-to-calc');
	return false;
}

// Оплата через webmoney. Формирование поля с описанием.
function checkEnWmzPayForm() {
	try{
		var errors = new Array();
		if (!check_field(this['wmz_payer_name']))
			errors.push('<li>Your name.</li>');
		if (!check_field(this['wmz_contract_num']))
			errors.push('<li>Contract number.</li>');
		if (!check_field(this['LMI_PAYMENT_AMOUNT']))
			errors.push('<li>Payment sum.</li>');

		if (errors.length == 0) {
			var wmz_arr = new Array();
	
			wmz_arr.push('ФИО плательщика: ');
			wmz_arr.push(this['wmz_payer_name'].value);
			wmz_arr.push('<br />');
			wmz_arr.push('Номер договора: ');
			wmz_arr.push(this['wmz_contract_num'].value);
			
			this['LMI_PAYMENT_DESC_BASE64'].value = Base64.encode(wmz_arr.join(''));
			
			return true;
		}
			//alert( errors.join("\n") );
			$('form-en-wmz-errors').update('<strong>Errors of form filling</strong><ul>' + errors.join('') + '</ul>').show();

	}catch(e){ alert(e); }
	return false;
}

