function validar(elemento, mensajeCorrecto, opciones){
	var lv = new LiveValidation(elemento, {
		validMessage: mensajeCorrecto, 
		onValid: function(){
			if (this.element.id == 'numeroTarjeta') {
				$('credit_card_number_is_valid').value = '1';
			}
			this.element.removeClassName("errorCampo"); 
			this.insertMessage(this.createMessageSpan()); 
			this.addFieldClass();
		},
		onInvalid: function(){ 
			if (this.element.id == 'numeroTarjeta') {
				$('credit_card_number_is_valid').value = '0';
			}
			this.element.addClassName("errorCampo"); 
			this.insertMessage(this.createMessageSpan()); 
			this.addFieldClass();
		}
	});
	if( opciones.presencia ){ lv.add(Validate.Presence, { failureMessage: opciones.presencia } ); }
	if( opciones.seleccionado ){ lv.add(Validate.Exlusion, { failureMessage: opciones.seleccionado, within: [""] } ); }
	if( opciones.correo ){ lv.add(Validate.Email, { failureMessage: opciones.correo } ); }
	if( opciones.numero ){ lv.add(Validate.Numericality, { notAnIntegerMessage: opciones.numero, onlyInteger: true }); }
	if( opciones.decimal ){ lv.add(Validate.Numericality, { notAnIntegerMessage: opciones.numero }); }
	if( opciones.longitudExacta ){ lv.add(Validate.Length, { wrongLengthMessage: opciones.longitudExacta.mensaje, is: opciones.longitudExacta.longitud }); }
	if( opciones.longitudMinima ){ lv.add(Validate.Length, { tooShortMessage: opciones.longitudMinima.mensaje, minimum: opciones.longitudMinima.longitud }); }
	if( opciones.longitudMaxima ){ lv.add(Validate.Length, { tooLongMessage: opciones.longitudMaxima.mensaje, maximun: opciones.longitudMaxima.longitud }); }
	if( opciones.confirmar ){ lv.add(Validate.Confirmation, { failureMessage: opciones.confirmar.mensaje, match: opciones.confirmar.campo }); }
	if( opciones.CIF ){lv.add(Validate.Format, {failureMessage:opciones.CIF, pattern: /[A-HK-NPQS][0-9]{7}[A-J0-9]/i }); }
  /*if( opciones.tarjeta ){lv.add(Validate.Format, {failureMessage:opciones.tarjeta, pattern: /^((67\d{2})|(4\d{3})|(5[1-5]\d{2})|(6011))(-?\s?\d{4}){3}|(3[4,7])\ d{2}-?\s?\d{6}-?\s?\d{5}$/ }); }*/
	if( opciones.tarjeta1 ){lv.add(Validate.Format, {failureMessage:opciones.tarjeta1, pattern: /^([4])([0-9]{15})$/ }); }
	if( opciones.tarjeta2 ){lv.add(Validate.Format, {failureMessage:opciones.tarjeta2, pattern: /^([5])([0-9]{15})$/ }); }
	if( opciones.tarjeta3 ){lv.add(Validate.Format, {failureMessage:opciones.tarjeta3, pattern: /^([3])([0-9]{14})$/ }); }
	return lv;
}
