//------------------------------ CLASE StringValidator-------------------------/

function StringValidator( nombre, maximo, minimo, noValidarBarra, noValidarBarraInvertida ) {
	this.maximo = maximo;
	this.minimo = minimo;
	this.Validator = Validator;
	this.Validator(nombre);
	this.nombre = nombre;
	this.noValidarBarra = noValidarBarra || false;
	this.noValidarBarraInvertida = noValidarBarraInvertida || false;
	this.mensaje = '('+(minimo)+' - '+(maximo)+' caracteres)';
}

StringValidator.prototype = new Validator();
StringValidator.prototype.validateOld = StringValidator.prototype.validate

StringValidator.prototype.validate = function(valor) {
	var h1 = /[\\\/]/gi
	var h2 = /[\/]/gi
	var h3 = /[\\]/gi
	
	var h = null;
	
	if(!this.noValidarBarra && !this.noValidarBarraInvertida) {
		h = h1;
	}
	else if(this.noValidarBarra && !this.noValidarBarraInvertida) {
		h = h3;
	}
	else if(!this.noValidarBarra && this.noValidarBarraInvertida) {
		h = h2;
	}
	
	if(!h || !h.test(valor)) {
		if( (valor.length >= parseInt(this.minimo,10)) && (valor.length <= parseInt(this.maximo,10)) ) {
			return true;
		}
		else {
			this.mensaje = '('+(this.minimo)+' - '+(this.maximo)+' caracteres)';
			return false;
		}
	}
	else {
		this.mensaje = '(Los siguientes caracteres no estan permitidos: ' + ((!this.noValidarBarra) ? ' \/' : '') + 
			((!this.noValidarBarraInvertida) ? ' \\' : '') + ')';
		return false;
	}
}

StringValidator.prototype.getMensaje = function() {
	return this.mensaje;
}

