/*
* JavaScript функции необходимые для проверки на валидность
*/

// для убирания подкраски текста при фокусе поля
function FieldOnFocus(field)
{
	if(field.value==field.getAttribute('markText'))
	{
		field.value='';

	}
}

// для подкраски текстом при уводе фокуса с поля
function FieldOffFocus(field)
{
	if(field.value=='')
	{
		field.value=field.getAttribute('markText');
		field.className = 'field';
	}
}

//очищает форму от ненужной информации (от масок (перед отправкой))
function clearForm()
{
	var list = document.getElementsByTagName("input");
	for(var i = 0;i<list.length;i++){
		if(list[i].getAttribute('markText') && list[i].value==list[i].getAttribute('markText'))
			list[i].value="";
	}

}

//метод проверяет правильно или нет введено значение в поле
function validateField(field, type) {
	if (field) {
		// if (required && field.value.length<=0) {return false;}
		switch( type ) {
			case 'integer':
				if (!field.value.match (/^[0-9]*$/)) {return false;}
			break;

			case 'phone':
				if (!field.value.match (/^[0-9()\-+.,\:]*$/)) {return false;}
			break;

			case 'email':
				if (!field.value.match (/^([^@]+@([^@\.]{2,}\.)+[^@\.]{2,})?$/i)) {return false;}
			break;

			case 'string':
				if( !field.value.match(/^[a-zA-Zа-яА-ЯЁё0-9!@#$%^&*()_\-+\.,: ]*$/) ) {return false;}
			break;

			case 'string_no_num':
				if( !field.value.match(/^[a-zA-Zа-яА-ЯЁё!@#$%^&*()_\-+\.,: ]*$/) ) {return false;}
			break;

			case 'text':
				if( !field.value.match(/^[a-zA-Zа-яА-ЯёЁ0-9!@#$%^&*()_\-+\.,: ]*$/) ) {return false;}
			break;
		}
	}else
		return false;
	return true;
}

/*
* метод подкрашивает поле в зависимости от значения переменной valid
*/
function markField(field, valid) {
	if (field) {
		if (valid) {
			field.className='field';
		} else {
			field.className='field redBgr';
		}
	}
}

//метод для проверки поля на валидность и подкраски его если все плохо он подкполе
function blurValid (field) {
	var valid = validateField(field, field.getAttribute('fieldType'));
	markField(field,valid);
}


//метод выводит отчет о том как заполнеы поля формы
function formValid(){
	var text         = "";     // содержит отчет о проверки на валидность
	var requireText  = "";     // содержит отчет о проверки на заполнение обяз полей
	var flag         = false;  // нашли или нет косяки в заполнении
	var requireflag  = false;  // нашли или нет косяки в проверке на заполнение обяз полей
	var valid        = false;
	var error        = new Array();
	//расшифровка ошибок
	error['text']     =" может содержать только буквы и цифры";
	error['string']   =" может содержать только буквы и цифры";
	error['integer']  =" может содержать только цифры";
	error['email']    =" должно содержать правильный адресс почты Пример: www@exsample.com";
    error['phone']    =" может содержать цифры и знаки + - ( )";
    error['string_no_num'] =" может содержать только буквы";
	requireText="Не все обязательные поля заполнены !!! <br>";
	text  = "введены ошибочные данные: <br>";

	for(j=1;j<3;j++){
		//пробегаем по всем полям формы и проверяем верно ли введены данные
		var list;
		//сначало пробегаем по всем полям ввода
		if(j==1)
			list = document.getElementsByTagName("input");
			
		//потом по всем textarea
		if(j==2)
			list = document.getElementsByTagName("textarea");
		for(var i = 0;i<list.length;i++){
			//проверяем все ли обязательные поля заполнены
			if( list[i].getAttribute('require') &&
			(list[i].getAttribute('markText') && list[i].value==list[i].getAttribute('markText')||
			!list[i].getAttribute('markText') && list[i].value==""))
			{
				requireflag = true;
				requireText+="Поле '"+list[i].id+"' должно быть заполнено,<br>";
			}

			if(list[i].getAttribute('fieldType') &&
			(list[i].getAttribute('markText') && list[i].value!=list[i].getAttribute('markText')||
			!list[i].getAttribute('markText') && list[i].value!="") )
			{
				valid = validateField(list[i], list[i].getAttribute('fieldType') );
				if(!valid){
					flag=true;
					text+="Поле '"+list[i].id+"' "+error[list[i].getAttribute('fieldType')]+"<br>";
				}
			}
		}
	}
	//сначало выводим сообщение о том что типо не все заполнено
	if(requireflag)
	{
		document.getElementById('monitor').innerHTML="<font class=\"red\">"+requireText+"</font>";
		return false;
	}
	else
		document.getElementById('monitor').innerHTML="";

	//далее не плохо было бы озадачить пользователя что он не так все заполнел
	if(flag){
		document.getElementById('monitor').innerHTML="<font class=\"red\">"+text+"</font>";
		return false;
	}
	else
		document.getElementById('monitor').innerHTML="";


	return true;
}

function ch()
{
    var inputs = document.getElementsByTagName("input");
    var anyCheck = 0;
    for (var i=0; i<inputs.length; i++)
    {
        var inp = inputs[i];
        if ("checkbox"==inp.type && inp.checked && "Confirm"==inp.id) { anyCheck=1; break; }
    }
    
    if(anyCheck!=1){
    	alert("Кредит не может быть предоставлен без провреки.");
    	return false;
    }
	else{
		return true;
	}
	
}
