function nInputDescripted(obj, description, classDefault, classChanged) {
	nDynamic(obj);
	obj.nName = 'nInputDescripted';
	
	obj.configure({
		description: description,
		classDefault: classDefault,
		classChanged: classChanged
	});

	obj.change = function() {
		if (obj.value == description) {
			obj.value = '';
			if (obj.config.classChanged && obj.config.classDefault) {
				obj.dropClass(obj.config.classDefault);
				obj.addClass(obj.config.classChanged);
			}
		} else if (obj.value.search('^[\\s\\t\\n\\r]*$') >= 0) {
			obj.value = description;
			if (obj.config.classChanged && obj.config.classDefault) {
				obj.dropClass(obj.config.classChanged);
				obj.addClass(obj.config.classDefault);
			}
		}
	}
	
	nConfig.addEvent(obj, 'focus', obj.change);
	nConfig.addEvent(obj, 'blur', obj.change);
}
