/******************************************************************************************/
// Работа с формой
/******************************************************************************************/
function wizardForm(form, arField, fFocus) 
{
	var requiredFields = new Array();
	var fFocus2 = true;
	var vFocus = null;

	if (form) {
		for(var i in arField) {
			id = arField[i]['name']+'-id';
			vr = document.getElementById(id);
			if (!arField.hasOwnProperty(i) || vr == undefined) continue;

            if (vr.value.length == 0 || vr.value == 0 || vr.value == '') {
 				requiredFields.push(arField[i]['caption']);
				if (fFocus2 && fFocus) {
					fFocus2 = false;
					vFocus = vr;
				}
            }
			else if(arField[i]['func'] == 'email') {
				if (!checkMail(vr.value)) {
					if (fFocus) {vr.focus();}
					return false;
				}
			}
			else if(arField[i]['func'] == 'password') {
				if (!checkPassword(arField[i]['name'])) {
					if (fFocus) {vr.focus();}
					return false;
				}
			}
			else if(arField[i]['func'] == 'url') {
				if (!checkUrl(arField[i]['name'])) {
					if (fFocus) {vr.focus();}
					return false;
				}
			}
		}	
	}
	
	if (requiredFields.length > 0) {
    	alert('Заполните обязательные поля:\n\n- ' + requiredFields.join('\n- '));
		if (fFocus) {vFocus.focus();}
		return false;
	}
	return true;
}

/******************************************************************************************/
// Проверка правильного пароля с подтверждением
/******************************************************************************************/
function checkPassword(nameid) 
{
	var oPassword = document.getElementById(nameid+'-id');
	var oConfirm  = document.getElementById(nameid+'_repeat-id');
	var reSymbols = /[^\w]/i;

	if (oPassword.value.length < 1) {
		alert('Введите пароль');
		return false;
	}
	if (oPassword.value.length < 5) {
		alert('Пароль должен быть длиннее 4х символов');
		return false;
	}
	if (reSymbols.test(oPassword.value)) {
		alert('Пароль может содержать только буквы латинского алфавита, цифры и символ "_"');
		return false;
	}
	if (oPassword.value != oConfirm.value) {
		alert('Подтвержденный пароль не совпадает');
		return false;
	}
	return true;
}

/******************************************************************************************/
// Проверка правильного email
/******************************************************************************************/
function checkMail(value) 
{
	reg = /^([\w\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/i;
	if (!value.match(reg)) {
		alert("Пожалуйста, введите свой настоящий e-mail"); 
		return false; 
	}
	return true;
}

/******************************************************************************************/
// Проверка правильного url
/******************************************************************************************/
function checkUrl(value) 
{
    var reg = /^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/;
	if (!value.match(reg) && value.length!=0) {
		alert('Введите корректный адрес cайта');
		return false;
	}
}
