function checkFormError(obj, arr) {
	var errorFlag = false;
	var errorText = '';
	var errorType = '';
	for (c=0;c<arr.length;c++) {
		if (arr[c] == 'required' && obj.val().length < 1) {
			errorFlag = true;
			errorType = arr[c];
			errorText = 'Užpildykite lauką';
		}
		var regemail = new RegExp("^[0-9a-z_\.\-]+@[0-9a-z_^\\.\-]+\\.[a-z]{2,6}$", 'i');
		if (!errorFlag && arr[c] == 'email' && obj.val() && !regemail.test(obj.val())) {
			errorFlag = true;
			errorType = arr[c];
			errorText = 'Neteisingas el-paštas';
		}
		if (!errorFlag && arr[c] == 'number' && parseInt(obj.val()) != obj.val()) {
			errorFlag = true;
			errorType = arr[c];
			errorText = 'Įveskite skaičius';
		}
		if (!errorFlag && arr[c].indexOf('min') == 0 && parseInt(obj.val()) < arr[c].substr(3, arr[c].length - 3))
		{
			errorFlag = true;
			errorType = arr[c];
			errorText = 'Число не меньше <a href="#" onmousedown="pasteErrorValue(this);" onclick="return false;">' + arr[c].substr(3, arr[c].length - 3) + '</a>';
		}
		if (!errorFlag && arr[c].indexOf('max') == 0 && parseInt(obj.val()) > arr[c].substr(3, arr[c].length - 3))
		{
			errorFlag = true;
			errorType = arr[c];
			errorText = 'Число не больше <a href="#" onmousedown="pasteErrorValue(this);" onclick="pasteErrorValue(this); return false;">' + arr[c].substr(3, arr[c].length - 3) + '</a>';
		}
		if (!errorFlag && arr[c].indexOf('file_') == 0)
		{
			var val = obj.val();
			var extensions = arr[c].split(' ');
			var badExtension = true;
			for (j=0;j<extensions.length;j++)
				if (extensions[j].indexOf('file_') == 0) {
					var checkExt = extensions[j].substr(5, extensions[j].length - 5);
					var fileExt;
					var posExt = val.lastIndexOf('.');
					if (posExt >= 0) fileExt = val.substr(posExt + 1, val.length - posExt - 1);
					if (fileExt) fileExt = fileExt.toLowerCase();
					if (fileExt == checkExt) badExtension = false;
				}
			if (badExtension) {
				errorFlag = true;
				errorType = arr[c];
				errorText = 'Выбранный Вами тип файла не поддерживается.';
			}
		}
		if (!errorFlag && arr[c] == 'length')
		{
			var val = obj.val();
			var classes = obj.attr('class').split(' ');
			var badLength = false;
			for (j=0;j<classes.length;j++)
				if (classes[j].indexOf('min_length') == 0) {
					var minlength = classes[j].substr(10, classes[j].length - 10);
					if (val.length > 0 && val.length < minlength) badLength = true;
				}
			if (badLength) {
				errorFlag = true;
				errorType = arr[c];
				errorText = 'Символов, не менее: '+minlength;
			}
		}
		if (!errorFlag && arr[c] == 'password')
		{
			var fields = obj.parent().parent().find('input[type=password]');
			for (j=0;j<fields.length;j++)
				if (fields.eq(j).val() != '' && fields.eq(j).val() != obj.val()) {
					errorFlag = true;
					errorType = arr[c];
					errorText = 'Пароли не совпадают';
				}
		}
	}
	if (errorFlag) {
		if (errorType == 'password') {
			obj.parents('tr').removeClass('error').addClass('valid');
			$('p.error_'+obj.attr('name'), obj.parent()).remove();
			obj = obj.parent().parent().find('input[type=password]:last');
		}
		if (!obj.parents('tr').hasClass('error')) {
			obj.parents('tr').removeClass('valid').addClass('error');
            //obj.after($('<p class="message error error_type_'+errorType+' error_'+obj.attr('name')+'">'+errorText+'</p>'));
            obj.next().after($('<p class="infoForm message error error_type_'+errorType+' error_'+obj.attr('name')+'">'+errorText+'</p>'));
		} else {
			$('p.error_'+obj.attr('name'), obj.parent()).html(errorText);
		}
	} else {
		if (obj.hasClass('val_password')) {
			var fields = obj.parent().parent().find('input[type=password]');
			for (j=0;j<fields.length;j++)
				if ($('p.error_'+fields.eq(j).attr('name')).text() == 'Пароли не совпадают') {
					$('p.error_'+fields.eq(j).attr('name')).parent().removeClass('error').addClass('valid');
					$('p.error_'+fields.eq(j).attr('name')).remove();
				}
		}
		if (!obj.parents('tr').hasClass('valid')) {
			obj.parents('tr').removeClass('error').addClass('valid');
//            $('p.error_'+obj.attr('name'), obj.parent()).remove();
            $('p.error', obj.parent().parent()).remove();
		}
	}
	return errorFlag;
}

function checkSubmitBtn(btn, arr) {
	var errorFlag = false;
	$('.popupData').removeClass('step-error').addClass('step-valid');	
	for (c=0;c<arr.length;c++) {
		if (arr[c].parents('tr').hasClass('error')) {
			errorFlag = true;
			arr[c].parents('.popupData').addClass('step-error').removeClass('step-valid');
		}
	}
	if (!errorFlag) {
		btn.removeAttr('disabled').removeClass('disabled');
		btn.parent().removeClass('disabled');
	}
	else {
		btn.attr('disabled', 'disabled');
		if (!btn.hasClass('disabled')) btn.addClass('disabled');
		if (!btn.parent().hasClass('disabled')) btn.parent().addClass('disabled');
	}
	/*$('.formStep a').removeClass('complite');
	$('.popupData').each(function(i, val) {
		if ($(this).hasClass('step-valid')) {
			$('.formStep .step'+(i+1)).addClass('complite');
		}
	});*/
	//$('.popupData.step-valid').find('.btn1 input[type=button]')
	$('.popupData.step-valid').find('.btn1 input[type=button]').removeAttr('disabled').removeClass('disabled').parent().removeClass('disabled');
	$('.popupData.step-error').find('.btn1 input[type=button]').attr('disabled', 'disabled').addClass('disabled').parent().addClass('disabled');
}

var needValidate = new Array();
var checkArray = new Array();

function feedformval(formClass, ajaxSubmit, alertError, notSendForm) {
	
	if (!formClass || !$('.'+formClass).length) return false;

	if (ajaxSubmit) $('.'+formClass+' .block_hidden').append('<input name="ajax" value="" type="hidden" />');

	var form = $("."+formClass);
	var inputs = $("input[type='text'], input[type='password'], textarea", form);
	var btn = $('input[type=submit]', form);


	if (inputs.length) {
		var i = -1;
		needValidate[formClass] = new Array();
		inputs.each(function(){
			if ($(this).hasClass('val_required') || $(this).hasClass('val_email') || $(this).hasClass('val_number') || $(this).hasClass('val_length') || $(this).hasClass('val_password')) {
				i++;
				needValidate[formClass][i] = $(this);
			}
		});

		if (needValidate[formClass].length) {
			btn.attr('disabled', 'disabled').addClass('disabled');
			btn.parent().addClass('disabled');

			//$('.btn1 input[type=button]', form).attr('disabled', 'disabled').addClass('disabled');
			//$('.btn1 input[type=button]', form).parent().addClass('disabled');

			for (var j_counter = 0; j_counter < needValidate[formClass].length; j_counter++) {
				$(needValidate[formClass][j_counter]).bind('keyup paste focus blur change', function() {
					i = -1;
					checkArray = new Array();

					if ($(this).hasClass('val_required')) {i++;checkArray[i] = 'required';}
					if ($(this).hasClass('val_email')) {i++;checkArray[i] = 'email';}
					if ($(this).hasClass('val_number')) {i++;checkArray[i] = 'number';}
					if ($(this).hasClass('val_length')) {i++;checkArray[i] = 'length';}
					if ($(this).hasClass('val_password')) {i++;checkArray[i] = 'password';}
					checkFormError($(this), checkArray);

					var elem = $(this).parentsUntil('form');
					elem = elem.eq(elem.length - 1).parent();
					//console.log(elem);
					checkSubmitBtn($('input[type=submit]', elem), needValidate[formClass]);
				});
				$(needValidate[formClass][j_counter]).blur();
			}
		}
		
		if (btn.hasClass('disabled')) {
			if (alertError)
				alert('Patikrinkite užpildyti laukus');
			return false;
		} else if (!notSendForm) {
			if (ajaxSubmit) {
				$('input:submit', form).attr('disabled','disabled').addClass('disabled');
				$('input:submit', form).parent().addClass('disabled');
				var formClass = form.attr('class');
				$.post(
					'/feedback.php',
					form.serializeArray(),
					function(xmlObj) {
						var obj = $('.'+formClass);
						var alertMsg = null;
						var flagError = false;
						if ($('redirect', xmlObj).length) window.location = $('redirect', xmlObj).text();
						if ($('success', xmlObj).length) alertMsg = $('success', xmlObj).text();
						if ($('error', xmlObj).length) {
							flagError = true;
							alertMsg = $('error', xmlObj).text();
						}
						if (!flagError) {
							$( 'p.error', obj ).remove();
							$( '.error', obj ).removeClass('error');
							$( '.valid', obj ).removeClass('valid');
							document.getElementById( obj.attr('id') ).reset();
							if($(".forOverlay").length)
								$('.forOverlay').hide();
						}
						if (alertMsg != null && alertMsg != '') alert(alertMsg);
						for (j = 0; j < needValidate[formClass].length; j++) {
							$(needValidate[formClass][j]).blur();
						}
					});
				return false;
			} else {
				return true;
			}
		} else {
			return true;
		}
	}
		
}

function resetSubmitButton(btn) {
	btn.removeAttr('disabled').removeClass('disabled').parent().removeClass('disabled');
}



