$(document).ready(
	function(){
		var calc= new _calc();
		$('.imgGOriginal').lightBox();
	}
);

function _calc() {

	var obj = this;
	var formError = false;
	var formData = new Array;

	init = function(){
		$('.calc_a').click(function(){
			checkForm();
			if(!formError){
				var diff = trim($('#napPrice').val())-trim($('#napSeb').val());
				var dd = trim($('#sellInDay').val())*trim($('#dayInMonth').val());
				var sVal = diff*dd;
				var rent = trim($('#rent').val());
				var price = trim($('#price').val());
				var nalog = trim($('#nalog').val());

				var po = price / ( sVal - rent - 15*(sVal-rent)/100 );
				$('#result').val(Math.round(po*100)/100);
			}
			return false;
		});

	}

	var checkForm = function(){
		var edObjs = $(".calc .fm");
		formError = false;
		edObjs.each(function(){
			var validation = $(this).attr('validation');
			//console.warn($(this).attr('label') +' = '+ validation);
			if( validation ){
				var funcs = validation.split(' ');
				//console.info(funcs);
				//var error = call_user_func_array(validation);
				for(var i=0; i<funcs.length; i++){
					 //пробуем получить параметры валидации
					var tryFuncArr = funcs[i].split('(');
					if(tryFuncArr.length > 1){
						var param = tryFuncArr[1].replace(')','');
						var error = call_user_func_array(tryFuncArr[0]);
					} else {
						var error = call_user_func_array(funcs[i],[$(this)]);
					}
					if(error){
						formError = true;
						break;
					}
				}
			} else {
			}
			if(error){
				$(this).parents('tr').find('.error').html(error);
			} else {
				$(this).parents('tr').find('.error').html('');
			}
		});
	}

	notEmpty = function(objToCheck){
		var val = trim( objToCheck.val() );
		if(!val){
			return 'Необходимо заполнить поле';
		}
		return false;
	}

	isValidEmail = function(objToCheck){
		var val = trim( objToCheck.val() );
		if( val && !emailValidate(val) ){
			return 'Неправильный формат email';
		}
		return false;
	}

	notNull = function(objToCheck){
		var val =objToCheck.val();
		if(!val || val == 0){
			return 'Выберите значение';
		}
		return false;
	}

	moreNull = function(objToCheck){
		var val =objToCheck.val();
		if(!val || val == 0){
			return 'Значение должно быть больше нуля';
		}
		return false;
	}

	_int = function(objToCheck){
		var val =objToCheck.val();
		var IsInt = /^-?\d+$/.test(val);
		if(!IsInt){
			return 'Это не число';
		}
		return false;
	}

	init();
}

function notEmptyrt(objToCheck){
		var val = trim( objToCheck.val() );
		if(!val){
			return 'Необходимо заполнить поле';
		}
		return false;
	}
