CSValidator = function() {
	var regs = {};

	return {
		load: function(keys, callback, country) {
			var request = '';

			country = (!country) ? '' : country;
			
			for (var i = 0; i < keys.length; i++) {
				request += keys[i] + ';';
			}
			
			$.post('/admin', {cmd: 'getValidators', keys: request, country: country}, function(i) {
				regs = i.data;
				
				if (callback)
					callback();

				return i.data;
			}, 'json');
		},

		reload: function(country, callback) {
			var keys = [];
			var i = 0;

			for (var el in regs) {
				keys[i++] = el;
			}
			
			CSValidator.load(keys, callback, country);
		},

		validate: function(key, value) {
			try {
				return eval(regs[key].reg + '.test(' + value + ');');
			} catch (err) {
				return false;
			}
		},

		getRegEx: function(key) {
			try {
				return regs[key].reg;
			} catch (err) {}
		}
	}
}();
