$(document).ready(function() {
	
	var doc = this;
	$('form.formoo').submit(function() {
		var id = $(this).attr('id');
		var form = $('form#'+id);
		var formLog = $('div#log_'+form.attr('id'));
		var formValid = true;
		doc.start_check(form);
		formLog.html('');
		
		var input_values = new Object;
		input_values['form'] = form.get(0).id;
		
		$(':input', form).each(function(i) {
			var type = this.type;
			var value = this.value;
			var name = this.name;
			var object = $(this);
			if(type == 'checkbox') {	// TODO check this logic
				value = $('#' + form.get(0).id + ' :checkbox[name=' + name + ']:checked').size();
			}
			input_values[name] = value;
		});
		
		$.ajax({
			url: config.siteRoot+'3rd-party/Forms/lib/ValidateAJAX.php',
			data: input_values,
			async: false,
			type: 'POST',
			dataType: "json",
			success: function(ret) {
				for (elem in ret) {
					element = $(':input[name='+elem+']', form);
					span = $('#'+elem+'_errorspan', form);
					if (ret[elem] === false) {
						element.attr('class', 'formooFieldValid');
						span.html('');
					} else {
						element.attr('class', 'formooFieldInvalid');
						span.html(ret[elem]);
						formValid  = false;
					}
				}
			},
			error: function(e) {}
		});
		
		doc.end_check(form);
		form.blur();
		return formValid;
	});
	
	this.start_check = function(form)
	{
		form.find(':input[type="submit"]')
			.attr('disabled', true)
			.css({'padding': '2px 20px 2px 2px', 'background': '#FFFFFF url(/3rd-party/Forms/images/loader.gif) no-repeat right 3px'});
		
	}
	this.end_check = function(form)
	{
		form.find(':input[type="submit"]')
			.attr('disabled', false)
			.css({'padding': '', 'background': ''});
		
	}
})