function JSValidator () {
	this.ValidateField = function (elem, validate) {
		var field_expr = $(elem).attr('field_expr');
		var field_length = $(elem).attr('field_length');
		var field_req = $(elem).attr('field_req');
		
		var error = false;
		if (1 == field_req && !$(elem).attr('value'))
			error = $(elem).attr('field_req_error');
		else if ($(elem).attr('value') && 0 != field_expr && !$(elem).attr('value').match (new RegExp(field_expr)))
			error = $(elem).attr('field_regex_error');
		else if (0 != field_length && (new String ( $(elem).attr('value') )).length > field_length)
			error = $(elem).attr('field_length_error');
		
		if (error == $(elem).attr('field_req_error')&&!validate)
			return error;
		
		dlclass = error ? 'warn' : 0 != field_req ? 'ok_form' : '';

		try {
			if (null != $(elem).parents('dl').attr('class').match(/h_bord/)) {
				$(elem).parents('dl').removeClass();$(elem).parents('dl').addClass('h_bord');
			} else
				$(elem).parents('dl').removeClass();
		} catch (e) {
			$(elem).parents('dl').removeClass();
		}
						
		$(elem).parents('dl').addClass(dlclass);		
		$(elem).parents("div[class='field']").children('div').remove();
		
		if (error)
			$(elem).after ('<div id="warn_tooltip" class="hidden"><div class="arrow_tool left"></div><p class="left">' + error + '</p></div>');
		return error;
	}
	
	this.hideValidateError= function (elem) {
		
		dlclass = '';

		try {
			if (null != $(elem).attr('class').match(/h_bord/)) {
				$(elem).removeClass();$(elem).addClass('h_bord');
			} else
				$(elem).removeClass();
		} catch (e) {
			$(elem).removeClass();
		}
		//console.log($(elem).parent());
		//$(elem).addClass(dlclass);		
		$(elem).parent().children('div').remove();
		
	}
	
	this.passwordvalidate = function (params_arr) {
		var id_form = params_arr[0];
		var is_req = params_arr[1];
		
		var pass = $('#'+id_form).find("input[name='password']");
		var repass = $('#'+id_form).find("input[name='repassword']");
		repass.parents("div[class='field']").children('div').remove();
		if (is_req && '' == pass.val() && '' == repass.val()) {
			error = 'Пароль не может быть пустым!';//pass.parents('dl').removeClass();pass.parents('dl').addClass('warn');
			//repass.parents('dl').removeClass();repass.parents('dl').addClass('warn');
			repass.after ('<div id="warn_tooltip" class="hidden"><div class="arrow_tool left"></div><p class="left">' + error + '</p></div>');
			return;
		}
		if (pass.val() != repass.val()) {
			error = 'Введенные пароли не совпадают!';pass.parents('dl').removeClass();pass.parents('dl').addClass('warn');
			
			//repass.parents('dl').removeClass();repass.parents('dl').addClass('warn');
			repass.after ('<div id="warn_tooltip" class="hidden"><div class="arrow_tool left"></div><p class="left">' + error + '</p></div>');
			return;
		}
		if (pass.val() == repass.val() && 'warn' == jQuery.trim(pass.parents('dl').attr('class'))) {
			pass.parents('dl').removeClass();pass.parents('dl').addClass('ok_form');
			repass.parents('dl').removeClass();	repass.parents('dl').addClass('ok_form');
		}
	}
}


function validateDate(yy, mm, dd)
{
	
	d1 = new Date(parseInt(yy)+"/"+parseInt(mm)+"/"+parseInt(dd));
	s1 = parseInt(yy)+"/"+parseInt(mm)+"/"+parseInt(dd);
	s2 = d1.getFullYear()+"/"+(d1.getMonth()+1)+"/"+d1.getDate();
	
	return (s1==s2);
	
}

