var Zend = Zend || { };

Zend.Validate = {
	Required: function(el, parameters){
		if(parameters.required){
			if(el.value.length==0) return false;
			else return true;
		}
		else{
			return true;
		}
	},

	NotEmpty: function(el, parameters)
	{
		//alert(el.value);
		if(el.value != '')
			return true;

		return false;
	},

	Regex: function(el, parameters){
		return el.value.match(parameters.regexp);
	},

	Between: function(el, parameters){
		//alert('gfgf');

		if (parameters.Inclusive){
            if (parameters.min > el.value || el.value > parameters.max) {
                return false;
            }
        } else {
            if (parameters.min >= el.value || el.value >= parameters.max) {
                return false;
            }
        }
        return true;
	},
	GreaterThan: function(el, parameters){

		if (parameters.Inclusive){
            if (parameters.min > el.value) {
            	return false;
        	}
        } else {
            if (parameters.min >= el.value) {
            	return false;
        	}
        }
        return true;
	},
	LessThan: function(el, parameters){

		if (parameters.Inclusive){
            if (parameters.max < el.value) {
            	return false;
        	}
        } else {
            if (parameters.max <= el.value) {
            	return false;
        	}
        }
        return true;
	},
	Oneof: function(el, parameters){
						
		var fields = Object.values(parameters.fields);		
		var count = 0;
				
		for(var item=0; item<fields.length;item++){			
			//alert($(parameters.substance+'-'+fields[item]).value.length);
			if($(parameters.data_table+'-'+fields[item]).type == 'checkbox'){			
				if($(parameters.data_table+'-'+fields[item]).checked){
				 	//alert($(parameters.data_table+'-'+fields[item]).name+' checked');
					count++;
				}
				//else alert($(parameters.data_table+'-'+fields[item]).name+' no checked');					
			}	
			else{			
				if($(parameters.data_table+'-'+fields[item]).value.length>0) count++;
			}			
		}							
		
		/*
		alert(parameters.rule+'<='+count);		
		if(parameters.rule<=count) alert('true');
		else alert('false');			
		*/			
					
		if(parameters.rule<=count) return true;
		else return false;
	},
	
	MultiSelectOne: function (el, parameters) {
		//alert('asdasdasdasd');
		//alert('id = ' + el.id);
		
		
		//return false;
	},
	
	Length: function(el, parameters){
				
		var fields = Object.values(parameters.fields);		
		var count = 0;		
		for(var item=0; item<fields.length;item++){						
			count = count + $(parameters.data_table+'-'+fields[item]).value.length;			
		}								
		if(parameters.rule==count || count==0) return true;
		else return false;
	}	
};
