function setImage(node, type)
{
	var inodes = document.getElementsByName("i_" + node);	
	inodes[0].src = '/_img/' + type + '.gif';
}

function getComboBoxOption(node)
{
	var nodes = document.getElementsByName(node);
	if (nodes[0].selectedIndex >= 0)
		return nodes[0].options[nodes[0].selectedIndex].text;
	else 
		return '';
}

function checkComboBox(node)
{
	return getComboBoxOption(node) != '';
}

function getInputBoxValue(node)
{
	var nodes = document.getElementsByName(node);
	return nodes[0].value;
}

function checkInputBox(node)
{
	return getInputBoxValue(node) != '';
}

function defaultCheckInputBox(field)
{
	var result = checkInputBox(field);
	if (result)
		setImage(field, 'ok');
	else
		setImage(field, 'error');
	return result;
}

function defaultCheckComboBox(field)
{
	var result = checkComboBox(field);
	if (result == false)
		setImage(field, 'error');
	else
		setImage(field, 'ok');
	return result;
}

function checkEMailAndTelephone()
{
	var emailField = 'email';
	var telephoneField = 'telephone';
	
	var result = true;
	
	if (getComboBoxOption('deliveryKind') == 'Самовывоз со склада в Москве' ||
		getComboBoxOption('deliveryKind') == 'Самовывоз со склада в Москве (зарезервировать товар)' ||
		getComboBoxOption('deliveryKind') == 'Самовывоз со склада в Санкт-Петербурге (зарезервировать товар)')
	
	{
		setImage(emailField, 'none');
		setImage(telephoneField, 'none');
	}
	else 
	if (getComboBoxOption('deliveryKind') == 'Курьером по Москве' ||
		getComboBoxOption('deliveryKind') == 'Курьером по Санкт-Петербургу')
	{
		setImage(emailField, 'none');
		
		var result = checkInputBox(telephoneField);
		if (result == false)
			setImage(telephoneField, 'error');
		else
			setImage(telephoneField, 'ok');
	}
	else
	{
		var reg 		= /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
		var email 		= reg.test(getInputBoxValue(emailField));
		var telephone 	= checkInputBox(telephoneField);
		
		result = email || telephone;
		
		if (result == false)
		{
			setImage(emailField, 'error');
			setImage(telephoneField, 'error');
		}
		else
		{
			if (telephone == true)
				setImage(telephoneField, 'ok');
			else
				setImage(telephoneField, 'none');
			
			if (email == true)
				setImage(emailField, 'ok');
			else
				setImage(emailField, 'none');
		}
	}
	return result;
}

function checkCompany()
{
	var field = 'company';
	var result = checkInputBox(field);
	
	if (result)
		setImage(field, 'ok');
	else
	{
		if (getComboBoxOption('payKind') == 'Оплата безналом (для фирм и ИП)' ||
			checkInputBox('firm_inn') || checkInputBox('firm_address'))
			setImage(field, 'error');
		else
		{
			result = true;
			setImage(field, 'none');
		}
	}
	
	return result;
}

function checkInn()
{
	var field 	= 'firm_inn';
	var result 	= checkInputBox(field);
	
	if (result)
		setImage(field, 'ok');
	else
	{
		if (getComboBoxOption('payKind') == 'Оплата безналом (для фирм и ИП)' ||
			checkInputBox('company') || checkInputBox('firm_address'))
			setImage(field, 'error');
		else
		{
			result = true;
			setImage(field, 'none');
		}
	}
	
	return result;
}

function checkFirmAddress()
{
	var field 	= 'firm_address';
	var result 	= checkInputBox(field);
	
	if (result)
		setImage(field, 'ok');
	else
	{
		if (getComboBoxOption('payKind') == 'Оплата безналом (для фирм и ИП)' ||
			checkInputBox('company') || checkInputBox('firm_inn'))
			setImage(field, 'error');
		else
		{
			result = true;
			setImage(field, 'none');
		}
	}
	
	return result;
}

function checkSettlement()
{
	var field 	= 'settlement';
	var result 	= checkInputBox(field);
	var regionList = document.getElementById("region");
	
	if (result)
		setImage(field, 'ok');
	else
	{
		if (regionList.value == '0' || /city/.test(regionList.value) == false)
			setImage(field, 'error');
		else
		{
			result = true;
			setImage(field, 'none');
		}
	}
	
	return result;
}

function checkIndex()
{
	var field 	= 'index';
	var index = document.getElementById(field);
	var regionList = document.getElementById("region");
	var result = /\d{5,}/.test(index.value);
	
	if (result)
		setImage(field, 'ok');
	else
	{
		if (regionList.options[regionList.selectedIndex].text == 'Москва')
		{
			result = true;
			setImage(field, 'none');
		}
		else
			setImage(field, 'error');
	}
	
	return result;
}

function checkComments()
{
	return true;
}

function isFormError()
{
	defaultCheckComboBox('country');
	defaultCheckInputBox('i');
	defaultCheckInputBox('f');
	checkEMailAndTelephone();
	defaultCheckComboBox('deliveryKind');
	defaultCheckComboBox('payKind');
	defaultCheckComboBox('region');
	checkCompany();
	checkInn();
	checkFirmAddress();
	checkSettlement();
	checkIndex();
	defaultCheckInputBox('address');
	checkComments();
} 

function checkForm()
{
	var isOk 	 = true;
	var errorStr = 'Пожалуйста введите следующие поля:\n';
	
	curr = defaultCheckInputBox('i');
	if (curr == false)
		errorStr += '* Имя \n';
	isOk = isOk && curr;
	
	curr = defaultCheckInputBox('f');
	if (curr == false)
		errorStr += '* Фамилию \n';
	isOk = isOk && curr;
	
	curr = checkEMailAndTelephone();
	if (curr == false)
		errorStr += '* Телефон или email \n';
	isOk = isOk && curr;
	
	curr = defaultCheckComboBox('deliveryKind');
	if (curr == false)
		errorStr += '* Способ доставки \n';
	isOk = isOk && curr;
	
	curr = defaultCheckComboBox('payKind');
	if (curr == false)
		errorStr += '* Способ оплаты \n';
	isOk = isOk && curr;
	
	curr = defaultCheckComboBox('country');
	if (curr == false)
		errorStr += '* Страну доставки\n';
	isOk = isOk && curr;
	
	curr = defaultCheckComboBox('region');
	if (curr == false)
		errorStr += '* Регион доставки\n';
	isOk = isOk && curr;
	
	curr = checkSettlement();
	if (curr == false)
		errorStr += '* Населенный пункт \n';
	isOk = isOk && curr;
	
	curr = checkIndex();
	if (curr == false)
		errorStr += '* Индекс \n';
	isOk = isOk && curr;
	
	curr = defaultCheckInputBox('address');
	if (curr == false)
		errorStr += '* Адрес \n';
	isOk = isOk && curr;
	
	curr = checkComments();
	if (curr == false)
		errorStr += '* Комментарий по доставке \n';
	isOk = isOk && curr;
	
	curr = checkCompany();
	if (curr == false)
		errorStr += '* Название фирмы \n';
	isOk = isOk && curr;
	
	curr = checkInn();
	if (curr == false)
		errorStr += '* ИНН фирмы \n';
	isOk = isOk && curr;
	
	curr = checkFirmAddress();
	if (curr == false)
		errorStr += '* Юридический адрес \n';
	isOk = isOk && curr;
	
	if (isOk == false)
		window.alert(errorStr);
		
	return isOk;
}
