var blvalidator={
	getValue: function(el) {
		switch(el.get('tag'))
		{
		case 'input':
		case 'textarea':
		case 'select':
			return el.getProperty('value');
			
		default:
			return null;
		}
	},
	
	validate: function(parent, msgel, lang, hints) {
		var required=parent.getElements('.blv_required');
		
		var result=false;
		var This=this;
		
		var FIELDS_EMPTY	= 0;
		
		function showMessage(id) {
			switch(id)
			{
			case FIELDS_EMPTY:
				if (lang=='en') text='Fill the required fields';
				if (lang=='pl') text='Wypełnij wymagane pola';				
				break;
			}
			
			msgel.set('text', text);
		}
		
		result=required.every(function(o) {
			var value=This.getValue(o);
			
			if (value!=null && value.length>0)
			{
				var key=o.name;
				
				if (hints[key]!=value) return true;
			}

			showMessage(FIELDS_EMPTY);
			return false;
		});

		return result;
	}
}
