var $checkPhoneDialog

function initCheckPhoneDialog()
{
		$checkPhoneDialog = $('<div></div>')
	  .html('<p>Для проверки сервиса укажите номер мобильного телефона, на который будет осуществлена отправка тестового сообщения</p><ul><li>Вводите номер в международном формате, т.е. <b>74951234567</b></li></ul><form action="#" method="post" id="checkPhoneForm"><input type="text" name="phone" id="idPhone" class="notnull phone"/><br /></form>')
		.dialog({
			autoOpen: false,
			modal: true,
			resizable: false,
			height:300,
			width:450,
			buttons: {
				'Отменить': function() {
						$(this).dialog('close');
				},
				'Проверить':  function() {
					var checkout = validateForm($(this).attr('id'),	null);

					if(checkout == true){
						document.getElementById('checkPhoneForm').submit();
						$(this).dialog('close');
					}
				}
			},
			title: 'Проверка сервиса'
		});
}

function checkPhone() {
		$checkPhoneDialog.dialog('open');
		// prevent the default action, e.g., following a link
		return false;
}



$(document).ready(function() {
	initCheckPhoneDialog();
})

$(document).ready(function(){
	$('#activationForm').submit(function(){
		return validateForm($(this).attr('id'),	null)
	});

	var errors_remind = '';

	$("#idEmail").click(function() {
		$('#idEmail_enter').attr('disabled','');
		$('#idEmail_enter').addClass('notnull');
		$('#idEmail_enter').focus();
		$('#idPhone_enter').attr('disabled','disabled');

		$('#idPhone').removeAttr('checked');
		$('#idEmail').attr('checked','checked');
		$('#type_vars').val('email');
	});

	$('#idPhone').click(function() {
		$('#idPhone_enter').attr('disabled','');
		$('#idPhone_enter').addClass('notnull');
		$('#idPhone_enter').focus();
		$('#idEmail_enter').attr('disabled','disabled');

		$('#idPhone').attr('checked','checked');
		$('#idEmail').removeAttr('checked');
		$('#type_vars').val('phone');
	});

	$('#remindForm').submit(function(){

		if($('#type_vars').val() == 'phone'){
			if ($('#idPhone_enter').val().trim().length == 0) {
				errors_remind += 'Необходимо заполнить поле Телефон\n';
			}

			errors_remind += validatePhone($('#idPhone_enter'));
		}

		if($('#type_vars').val() == 'email'){
			if ($('#idEmail_enter').val().trim().length == 0) {
				errors_remind = 'Необходимо заполнить поле Email';
			}
		}

		// если есть ошибки при заполнении
		if (errors_remind.length != 0) {
			alert(errors_remind);
			errors_remind = '';
			return false;
		}

		return true;
	});
});


function validateForm(id, additionalCheck) {
	var errors = '';

	$('form#' + id + ' :input').filter('.notnull').each(function(){
		// проверяем строку на пустое значение
		errors += validateNotNull($(this));
	});

	$('form#' + id + ' :input').filter('.phone').each(function(){
		// проверяем строку на пустое значение
		if(errors=='') {
			errors += validatePhone($(this));
		}
	});

	$('form#' + id + ' :input').filter('.login').each(function(){
		// проверяем строку на пустое значение
		errors += validateLogin($(this));
	});

	// производим дополнительную проверку
	if (typeof(additionalCheck) != "undefined" && additionalCheck != null) {
		errors += additionalCheck();
	}

	// если есть ошибки при заполнении
	if (errors.length != 0) {
		alert("При заполнении формы возникли следующие ошибки:\n\n" + errors);
		return false;
	}

	return true;
}

function validatePhone(obj) {
	// корректный номер
	if (obj.val().substring(0,1)!=7 || obj.val().length!=11) {
	obj.addClass('error');
	obj.change(function(){
		obj.removeClass('error');
	});

	return ' - Номер телефона должен начинаться с 7 и содержать 11 знаков. Например, 71234567891';
	}

	return '';
}

function validateLogin(obj) {
	// корректный номер
	var error_login = '';
	var login = obj.val();
    var reg = new RegExp(/[^@\-\.A-Za-z0-9_]/);
///[^@#!\'\"\%\$\&\s\(\)\.{},\/;:=<>?_`\+\-|\*A-Za-z0-9]/gi,'');
	if (reg.test(login)) {
		obj.addClass('error');
		obj.change(function(){
			obj.removeClass('error');
		});

		error_login = ' - Логин может содержать только латинские буквы и знак "-" и "."';
	}

	return error_login;
}
/**
 * Функция проверяем значение элемента формы на пустоту.
 * @param obj Объект jQuery, описывающий элемент формы для проверки.
 */
function validateNotNull(obj)
{
	if (obj.val().trim().length == 0) {
		obj.addClass('error');
		obj.change(function(){
			obj.removeClass('error');
		});

		return ' - Необходимо заполнить обязательное поле: "'
			+ obj.parent().prev().text() + '"\n';
	}

	return '';
}
