var HtmlForm = function(formId) {
	var jForm = $("#"+formId);
	
	//все чекбоксы и радиокнопки
	var jChecks = $(":radio,:checkbox", jForm);
	
	jChecks.click(function() {
		if(this.type == "checkbox")
			updateRelPanel(this.name, this.value, this.checked);
		else {
			var jItems = $("input[name="+this.name+"]");
			var count = jItems.length;
			for(var i=0; i<count; i++) {
				updateRelPanel(jItems[i].name, jItems[i].value, jItems[i].checked);
			} 
		}
	});
	
	//все селекты
	var jSelects = $("select", jForm);
	jSelects.bind("change",function(){
		var count = this.options.length;
		for(var i=0; i<count; i++) {
			updateRelPanel(this.name, this.options[i].value, this.options[i].selected);
		}
	});
	
	function updateRelPanel(name, value, isShow) {
		if(name.substr(name.length-2) == "[]")
			name = name.substr(0,name.length-2);	
		var relClass = ".j_rf_"+name+"_"+value;
		var jRel = $(relClass, jForm);
		if(jRel.length) {
			if(jRel[0].style.display == "none" && isShow) {
				jRel[0].style.display = "";
			} else if(jRel[0].style.display != "none" && !isShow) {
				jRel[0].style.display = "none";
			}
		}
	}
	
	//проверка при отправке формы
	jForm.bind("submit",function(){
		//поля, обяз. для заполнения
		var jNeeds = $(".j_need",jForm);
		for(var i=0; i<jNeeds.length; i++) {
			var val = jNeeds[i].value.replace(/^\s+/,'').replace(/\s+$/,'');
			if(!val.length) {
				alert("Поле обязательно для заполнения");
				jNeeds[i].focus();
				return false;
			}
		} 
		//дата
		var jDates = $(".j_check_date",jForm);
		for(var i=0; i<jDates.length; i++) {
			var re = /\d{2}\.\d{2}\.\d{4}/
			if(jDates[i].value.length && !re.test(jDates[i].value)) {
				alert("Неверный формат даты");
				jDates[i].focus();
				return false;
			}
		}
		//числовые поля
		var jNums = $(".j_check_num",jForm);
		for(var i=0; i<jNums.length; i++) {
			if(jNums[i].value.length && isNaN(jNums[i].value)) {
				alert("Введите число");
				jNums[i].focus();
				return false;
			}
		}
		//E-mail
		var jMails =  $(".j_check_email",jForm);
		for(var i=0; i<jMails.length; i++) {
			var re = /^[\.\-_A-Za-z0-9]+?@[\.\-A-Za-z0-9]+?\.[A-Za-z0-9]{2,5}$/;
			var val = jMails[i].value.replace(/^\s+/,'').replace(/\s+$/,'');
			if(val.length && !re.test(val)){
				alert("Неверный e-mail");
				jMails[i].focus();
				return false;
			}
		}
		//проверка совпадния паролей
		var jPasswords = $("input[type=password]", jForm);
		for(var i=0; i<jPasswords.length; i++) {
			if($(jPasswords[i]).hasClass("j_confirm"))
				continue;
			var conf = $("input[name="+jPasswords[i].name+"_c]").val();
			if(conf != jPasswords[i].value) {
				alert("Пароль и подтверждение пароля не совпадают");
				jPasswords[i].focus();
				return false;
			}
		}
		//проверка согласия с лицензионным соглешениея
		var jLicence = $("#licence_agree");
		if(jLicence.length > 0 && !jLicence[0].checked) {
			alert("Вы должны принять условия Пользовательского соглашения");
			return false;
		}
	});
}
