ALFANUMERICO="alfanumerico";ANCHO_MAXIMO="anchoMaximo";ANCHO_MINIMO="anchoMinimo";
EMAIL="email";FECHA="fecha";HORA="hora";MAYOR_O_IGUAL_QUE="mayorOIgualQue";MAYOR_QUE="mayorQue";
NIF="nif";NIE="nie";CIF="cif";FILTRO_FECHA="filtroFecha";PASAPORTE="pasaporte";NIFNIE="nifNie";
NIFNIE_AVISO="nifNieAviso";NIFNIECIF="nifNieCif";NIFNIECIF_AVISO="nifNieCifAviso";
NIFNIEPAS="nifNiePas";NIFNIEPAS_AVISO="nifNiePasAviso";NUMERO_ENTERO="numeroEntero";
NUMERO_REAL="numeroReal";OBLIGATORIO="obligatorio";OBLIGATORIO_1_DE_N="obligatorio1DeN";
OBLIGATORIO_RADIO="obligatorioRadio";TARJETA_CREDITO="tarjetaCredito";VALOR_MAXIMO="valorMaximo";
VALOR_MINIMO="valorMinimo";var _valIdInterno=0;var __validacion=[];Validacion=function Validacion(B,C,A){if(typeof (jsnMensajesVal)==="undefined"){alert("Error\nNo se encuentra el fichero de mensajes de las validaciones (ValidacionMensajes.js).");
return false;}this._reglasDeValidacion=C;this._idFormulario=B;this._etiquetas=[];
this._idioma=A.toLowerCase();this._idiomaPorDefecto="en";if(typeof (jsnMensajesVal[this._idioma])==="undefined"){this._idioma=this._idiomaPorDefecto;
}this._agregarValidacion(ALFANUMERICO,TipoValidacion.prototype._validarAlfanumerico);
this._agregarValidacion(ANCHO_MINIMO,TipoValidacion.prototype._validarAnchoMinimo);
this._agregarValidacion(ANCHO_MAXIMO,TipoValidacion.prototype._validarAnchoMaximo);
this._agregarValidacion(EMAIL,TipoValidacion.prototype._validarEmail);this._agregarValidacion(FECHA,TipoValidacion.prototype._validarFecha);
this._agregarValidacion(FILTRO_FECHA,TipoValidacion.prototype._validarFiltroFecha);
this._agregarValidacion(HORA,TipoValidacion.prototype._validarHora);this._agregarValidacion(MAYOR_QUE,TipoValidacion.prototype._validarMayorQue);
this._agregarValidacion(MAYOR_O_IGUAL_QUE,TipoValidacion.prototype._validarMayorOIgualQue);
this._agregarValidacion(NIF,TipoValidacion.prototype._validarNif);this._agregarValidacion(NIE,TipoValidacion.prototype._validarNie);
this._agregarValidacion(CIF,TipoValidacion.prototype._validarCif);this._agregarValidacion(PASAPORTE,TipoValidacion.prototype._validarPasaporte);
this._agregarValidacion(NIFNIE,TipoValidacion.prototype._validarNifNie);this._agregarValidacion(NIFNIE_AVISO,TipoValidacion.prototype._validarNifNieAviso,true);
this._agregarValidacion(NIFNIECIF,TipoValidacion.prototype._validarNifNieCif);this._agregarValidacion(NIFNIECIF_AVISO,TipoValidacion.prototype._validarNifNieCifAviso,true);
this._agregarValidacion(NIFNIEPAS,TipoValidacion.prototype._validarNifNiePas);this._agregarValidacion(NIFNIEPAS_AVISO,TipoValidacion.prototype._validarNifNiePasAviso,true);
this._agregarValidacion(NUMERO_ENTERO,TipoValidacion.prototype._validarNumeroEntero);
this._agregarValidacion(NUMERO_REAL,TipoValidacion.prototype._validarNumeroReal);
this._agregarValidacion(OBLIGATORIO,TipoValidacion.prototype._validarObligatorio);
this._agregarValidacion(OBLIGATORIO_1_DE_N,TipoValidacion.prototype._validarObligatorio1DeN);
this._agregarValidacion(OBLIGATORIO_RADIO,TipoValidacion.prototype._validarObligatorioRadio);
this._agregarValidacion(TARJETA_CREDITO,TipoValidacion.prototype._validarTarjetaCredito);
this._agregarValidacion(VALOR_MAXIMO,TipoValidacion.prototype._validarValorMaximo);
this._agregarValidacion(VALOR_MINIMO,TipoValidacion.prototype._validarValorMinimo);
__validacion[_valIdInterno]=this;_valIdInterno++;$(document).ready(function(){for(var D in __validacion){__validacion[D]._indexarEtiquetas();
}});};Validacion.prototype.validar=function(){var C;if(this._reglasDeValidacion){for(var E in this._reglasDeValidacion){C=this._reglasDeValidacion[E];
if(!(C instanceof Array)){C=String(this._reglasDeValidacion[E]).split(",");}for(var B in C){try{if(!C[B]||C[B]===""){throw new Error("Error de definició de les regles de validació.");
}this._validacionActual=this._trim(C[B]);posEspacio=this._validacionActual.indexOf(" ");
parametro=null;if(posEspacio!==-1){parametro=this._validacionActual.substr(posEspacio);
this._validacionActual=this._validacionActual.substr(0,this._validacionActual.length-parametro.length);
parametro=String(this._trim(parametro," "));}var D=this.tiposValidaciones[this._validacionActual].ejecutar(E,parametro);
if(!D){if(!this.tiposValidaciones[this._validacionActual]._tipoAviso){this._mostrarError(E,parametro);
}var A=$("#"+E);if(A.is("._masked")){A=A.prev();}A.addClass("errorCampo");A.prev().addClass("errorCampo");
A.one("keypress",function(){$(this).removeClass("errorCampo");$(this).prev().removeClass("errorCampo");
});A.one("change",function(){$(this).removeClass("errorCampo");$(this).prev().removeClass("errorCampo");
});return false;}}catch(F){alert(F.message);throw F;}}}}return true;};Validacion.prototype.validarYEnviar=function(){if(this.validar()){if(document.getElementById(this._idFormulario)){document.getElementById(this._idFormulario).submit();
}}return false;};Validacion.prototype.setReglaDeValidacion=function(A,B){this._reglasDeValidacion[A]=B;
};Validacion.prototype.setEtiqueta=function(A,B){this._etiquetas[A]=B;};Validacion.prototype._indexarEtiquetas=function(){var A=this;
$("label","#"+this._idFormulario).each(function(){var C=this.getAttribute("for");
if(C==null){C=this.getAttribute("htmlfor");}if(C!=null){var B=$(this).attr("title");
if(typeof (B)==="undefined"||B==""){B=$(this).text();}A._etiquetas[C]=B.replace(/<[^>]*>/g,"");
}});$("input","#"+this._idFormulario).each(function(){var C=this.id;if(C&&!A._etiquetas[C]){var B=$(this).attr("title");
if(B){A._etiquetas[C]=B.replace(/<[^>]*>/g,"");}}});};Validacion.prototype.tiposValidaciones=[];
Validacion.prototype._agregarValidacion=function(B,C,D){var A=new TipoValidacion(C);
A._idioma=this._idioma;if(D){A._tipoAviso=D;}Validacion.prototype.tiposValidaciones[B]=A;
};Validacion.prototype._trim=function(B,A){return this._ltrim(this._rtrim(B,A),A);
};Validacion.prototype._ltrim=function(B,A){A=A||"\\s";return B.replace(new RegExp("^["+A+"]+","g"),"");
};Validacion.prototype._rtrim=function(B,A){A=A||"\\s";return B.replace(new RegExp("["+A+"]+$","g"),"");
};Validacion.prototype._mostrarError=function(E,D){msj=jsnMensajesVal[this._idioma][this._validacionActual];
if(!msj){msj=jsnMensajesVal[this._idiomaPorDefecto][this._validacionActual];}if(msj===""){return ;
}msj=msj.replace(/\$\{campo\}/,"'"+this._etiquetas[E]+"'");if(D!==null){msj=msj.replace(/\$\{parametro\}/,D);
msj=msj.replace(/\$\{parametroCampo\}/,this._etiquetas[D]);}arrayCampos=E.replace(/ /g,"").split(",");
var B="";if(arrayCampos.length>1){primeraIteracion=true;for(var C in arrayCampos){if(!primeraIteracion){B+=", ";
}primeraIteracion=false;B+="'"+this._etiquetas[arrayCampos[C]]+"'";}}msj=msj.replace(/\$\{campos\}/,B);
alert(msj);var A=document.getElementById(arrayCampos[0]);if($(A).is("._masked")){A=$(A).prev().get(0);
}if(A&&A.type!=="hidden"){A.focus();}};TipoValidacion=function(A){this._funcionValidacion=A;
this._idioma=null;this._tipoAviso=false;};TipoValidacion.prototype.ejecutar=function(B,A){return this._funcionValidacion(B,A);
};TipoValidacion.prototype._validarAlfanumerico=function(B){var A=$("#"+B).val();
if(A!==""){var C=/^[\w]{1,}$/;return C.test(A);}else{return true;}};TipoValidacion.prototype._validarAnchoMinimo=function(B,C){var A=$("#"+B).val();
return this._validarComparacion(A.length.toString(),C,">=");};TipoValidacion.prototype._validarAnchoMaximo=function(C,E){var A=$("#"+C).val();
var B=A.length;try{i=A.match(/[^\n]*\n[^\n]*/gi).length;}catch(D){i=0;}B+=i;return this._validarComparacion(B.toString(),E,"<=");
};TipoValidacion.prototype._validarEmail=function(C){var B=$("#"+C).val();if(B!==""){var A=/^[\w-\.]{1,}\@([\da-zA-Z-]{1,}\.){1,}[\da-zA-Z-]{2,}$/;
return A.test(B);}else{return true;}};TipoValidacion.prototype._validarFecha=function(B){var A=$("#"+B).val();
return this._esFecha(A);};TipoValidacion.prototype._validarFiltroFecha=function(D,C){var B=$("#"+D).val();
if(B!==""&&C!==""){var A=this._obtenerFecha(B);return this._checkCron(A,C);}else{return true;
}};TipoValidacion.prototype._validarHora=function(B){var A=$("#"+B).val();return this._esHora(A);
};TipoValidacion.prototype._validarMayorQue=function(C,B){var A=$("#"+C).val();B=$("#"+B).val();
if(A!==""&&B!==""){return this._validarComparacion(A,B,">");}else{return true;}};
TipoValidacion.prototype._validarMayorOIgualQue=function(D,C){var B=$("#"+D).val();
var A=$("#"+C).val();if(B!==""&&A!==""){return this._validarComparacion(B,A,">=");
}else{return true;}};TipoValidacion.prototype._validarNif=function(C){if(!$("#"+C)){throw new Error("Error de programació. No s'ha trobat el camp amb l'identificador '"+C+"'");
}var B;var D=$("#"+C).val();D=this._reformatearNifNie(D);if(D===""){$("#"+C).val(D);
return true;}B=D.substring(0,D.length-1);if(!B.match(/^\d+$/)){return false;}var A=D.substring(D.length-1).toUpperCase();
if(A!="TRWAGMYFPDXBNJZSQVHLCKE".substr(parseInt(B,10)%23,1)){return false;}$("#"+C).val(D);
return true;};TipoValidacion.prototype._validarNie=function(C){if(!$("#"+C)){throw new Error("Error de programació. No s'ha trobat el camp amb l'identificador '"+C+"'");
}var B;var D=$("#"+C).val();D=this._reformatearNifNie(D);if(D===""){$("#"+C).val(D);
return true;}if(D.length<3){return false;}if(D.substring(0,1).toUpperCase()!=="X"){return false;
}B=D.substring(1,D.length-1);if(!B.match(/^\d+$/)){return false;}var A=D.substring(D.length-1).toUpperCase();
if(A!="TRWAGMYFPDXBNJZSQVHLCKE".substr(parseInt(B,10)%23,1)){return false;}$("#"+C).val(D);
return true;};TipoValidacion.prototype._validarCif=function(C){if(!$("#"+C)){throw new Error("Error de programació. No s'ha trobat el camp amb l'identificador '"+C+"'");
}var G=0;var I=0;var D;var H;var K;var E=["J","A","B","C","D","E","F","G","H","I"];
var B;var F=$("#"+C).val();if(F===""){return true;}F=F.toUpperCase();var A=new RegExp(/^[ABCDEFGHKLMNPQS]\d\d\d\d\d\d\d[0-9,A-J]$/g);
if(!A.exec(F)){return false;}H=F.substr(8,1);for(var J=1;J<7;J++){B=(2*parseInt(F.substr(J++,1),10)).toString()+"0";
I+=parseInt(B.substr(0,1),10)+parseInt(B.substr(1,1),10);G+=parseInt(F.substr(J,1),10);
}B=(2*parseInt(F.substr(J,1),10)).toString()+"0";I+=parseInt(B.substr(0,1),10)+parseInt(B.substr(1,1),10);
D=(G+I).toString();K=parseInt(D.substr(D.length-1,1),10);K=(10-K).toString();if(K==10){K=0;
}if((H==K)||(H==E[K])){return true;}else{return false;}};TipoValidacion.prototype._validarPasaporte=function(B){if(!$("#"+B)){throw new Error("Error de programació. No s'ha trobat el camp amb l'identificador '"+B+"'");
}var A=$("#"+B).val();A=this._reformatearNifNiePas(A);if(A===""){$("#"+B).val(A);
return true;}A=A.toUpperCase();if(A.substring(0,1)=="P"){$("#"+B).val(A);return true;
}else{return false;}};TipoValidacion.prototype._validarNifNie=function(A){if(this._validarNif(A)){return true;
}else{if(this._validarNie(A)){return true;}else{return false;}}};TipoValidacion.prototype._validarNifNieAviso=function(B){if(!this._validarNifNie(B)){var A=jsnMensajesVal[this._idioma][NIFNIE_AVISO];
return confirm(A);}else{return true;}};TipoValidacion.prototype._validarNifNieCif=function(A){if(this._validarNif(A)){return true;
}else{if(this._validarNie(A)){return true;}else{if(this._validarCif(A)){return true;
}else{return false;}}}};TipoValidacion.prototype._validarNifNieCifAviso=function(B){if(!this._validarNifNieCif(B)){var A=jsnMensajesVal[this._idioma][NIFNIECIF_AVISO];
return confirm(A);}else{return true;}};TipoValidacion.prototype._validarNifNiePas=function(A){if(this._validarNifNie(A)){return true;
}else{if(this._validarPasaporte(A)){return true;}else{return false;}}};TipoValidacion.prototype._validarNifNiePasAviso=function(B){if(!this._validarNifNiePas(B)){var A=jsnMensajesVal[this._idioma][NIFNIEPAS_AVISO];
return confirm(A);}else{return true;}};TipoValidacion.prototype._validarNumeroEntero=function(B){var A=$("#"+B).val();
if(A!==""){return A.indexOf(" ")===-1&&A*1===parseInt(A,10);}else{return true;}};
TipoValidacion.prototype._validarNumeroReal=function(A){return this._esNumeroReal($("#"+A).val());
};TipoValidacion.prototype._validarObligatorio=function(B){if(!$("#"+B)){throw new Error("No s'ha trobat el camp.");
}var A=$("#"+B).val();return A!==""&&A!==null;};TipoValidacion.prototype._validarObligatorio1DeN=function(E){var B=E.replace(/ /g,"").split(",");
for(var D in B){var A=$("#"+B[D]).get(0);if(A.type=="checkbox"){if(A.checked){return true;
}}else{var C=A.value;if(C!==""&&C!==null){return true;}}}return false;};TipoValidacion.prototype._validarObligatorioRadio=function(D){var A=document.getElementById(D).name;
var C=document.getElementsByName(A);if(C!==null){for(var B=0;B<C.length;B++){if(C[B].checked===true){return true;
}}}return false;};TipoValidacion.prototype._validarTarjetaCredito=function(B){if(!$("#"+B)){throw new Error("Error de definició de la validació del camp amb l'identificador '"+B+"'");
}var I=$("#"+B).val();if(I===""){return true;}var E=I.toString();var H=E.length;var C=null;
var A=null;var D=0;for(var G=0;G<H;G+=2){C=parseInt(E.charAt(G),10)*2;if(C>9){A=C.toString();
C=parseInt(A.charAt(0),10)+parseInt(A.charAt(1),10);}D+=C;}for(var F=1;F<H;F+=2){D+=parseInt(E.charAt(F),10);
}return(D%10)===0;};TipoValidacion.prototype._validarValorMaximo=function(C,B){var A=$("#"+C).val();
if(A===""){return true;}else{return this._validarComparacion(A,B,"<=");}};TipoValidacion.prototype._validarValorMinimo=function(C,B){var A=$("#"+C).val();
if(A===""){return true;}else{return this._validarComparacion(A,B,">=");}};TipoValidacion.prototype._esNumeroReal=function(A){if(A!==""){return A.indexOf(" ")===-1&&A*1===parseFloat(A);
}else{return true;}};TipoValidacion.prototype._esHora=function(C){if(C!==""){var D=C.split(":");
var A=D[0];var B=D[1];return !isNaN(A)&&!isNaN(B)&&parseInt(A,10)>=0&&parseInt(A,10)<=24&&parseInt(B,10)>=0&&parseInt(B,10)<=59;
}else{return false;}};TipoValidacion.prototype._esFecha=function(B){if(B!==""){var A=B.split("/");
if(A.length===3){return this._esAnyo(A[2])&&this._esMes(A[1])&&this._esDia(A[0],A[1],A[2]);
}else{return false;}}else{return true;}};TipoValidacion.prototype._esAnyo=function(A){return !isNaN(A)&&A.length===4&&parseInt(A,10)>0;
};TipoValidacion.prototype._esMes=function(A){return !isNaN(A)&&parseInt(A,10)>0&&parseInt(A,10)<13;
};TipoValidacion.prototype._esDia=function(D,B,C){function A(E,F){var G;switch(E){case 1:G=31;
break;case 2:G=28;break;case 3:G=31;break;case 4:G=30;break;case 5:G=31;break;case 6:G=30;
break;case 7:G=31;break;case 8:G=31;break;case 9:G=30;break;case 10:G=31;break;case 11:G=30;
break;case 12:G=31;break;}return G+(((E===2)&&(F%4)===0)?1:0);}return !isNaN(D)&&D.length===2&&parseInt(D,10)<=A(parseInt(B,10),parseInt(C,10))&&parseInt(D,10)>0;
};TipoValidacion.prototype._validarComparacionNumero=function(B,C,A){return this._ejecutarComparacion(parseFloat(B),parseFloat(C),A);
};TipoValidacion.prototype._convertirFechaAEntero=function(A){return parseInt(A.substr(6)+A.substr(3,2)+A.substr(0,2),10);
};TipoValidacion.prototype._validarComparacionFecha=function(C,B,A){return this._ejecutarComparacion(this._convertirFechaAEntero(C),this._convertirFechaAEntero(B),A);
};TipoValidacion.prototype._convertirHoraAEntero=function(A){return parseInt(A.substr(0,2)+A.substr(3),10);
};TipoValidacion.prototype._validarComparacionHora=function(B,C,A){return this._ejecutarComparacion(this._convertirHoraAEntero(B),this._convertirHoraAEntero(C),A);
};TipoValidacion.prototype._ejecutarComparacion=function(C,B,A){switch(A){case">":return C>B;
case">=":return C>=B;case"<=":return C<=B;case"<":return C<B;default:return false;
}};TipoValidacion.prototype._validarComparacion=function(C,B,A){if(this._esNumeroReal(C)){return this._validarComparacionNumero(C,B,A);
}else{if(this._esHora(C)){return this._validarComparacionHora(C,B,A);}else{if(this._esFecha(C)){return this._validarComparacionFecha(C,B,A);
}else{return false;}}}};TipoValidacion.prototype._reformatearNifNie=function(C){var B;
C=C.replace(/[ \-\._]/g,"").toUpperCase();var A=C.substring(C.length-1);if(A>="A"&&A<="Z"){if(C.substring(0,1)!="X1"){B=C.substring(0,C.length-1);
if(B.match(/^\d+$/)){C=""+B+A;}}}return C;};TipoValidacion.prototype._reformatearNifNiePas=function(C){var B;
C=C.replace(/[ \-\._]/g,"").toUpperCase();if(C.substring(0,1)=="P"){return C;}else{var A=C.substring(C.length-1);
if(A>="A"&&A<="Z"){if(C.substring(0,1)!="X"){B=C.substring(0,C.length-1);if(B.match(/^\d+$/)){C=""+B+A;
}}}}return C;};TipoValidacion.prototype._reformatearNifNieCif=function(C){var B;C=C.replace(/[ \-\._]/g,"").toUpperCase();
if(!C.substring(0,1).match(/^\d+$/)&&C.substring(0,1)!="X"){return C;}else{var A=C.substring(C.length-1);
if(A>="A"&&A<="Z"){if(C.substring(0,1)!="X"){B=C.substring(0,C.length-1);if(B.match(/^\d+$/)){C=""+B+A;
}}}}return C;};TipoValidacion.prototype._obtenerFecha=function(H){var E="/";var F=H.indexOf(E);
if(F==-1){E="-";F=H.indexOf(E);}if(F==-1){return null;}var G=H.substr(0,F);var C=H.substr(F+1);
F=C.indexOf(E);if(F==-1){return null;}var B=C.substr(0,F)-1;var D=C.substr(F+1);if(D.length<4&&parseInt(D)<10){D="20"+D;
}if(parseInt(G)==-1||parseInt(B)==-1||parseInt(D)==-1){return null;}if(G.length>2||B.length>2||D.length>4){return null;
}if(parseInt(G)>31||parseInt(B)>12){return null;}var A=new Date(D,B,G);return A;};
TipoValidacion.prototype._isBisiesto=function(A){return(((A%4==0)&&(A%100!=0))||(A%400==0))?1:0;
};TipoValidacion.prototype._ultimoDiaMes=function(A,D){var B=new Array("31","28","31","30","31","30","31","31","30","31","30","31");
var C=new Array("31","29","31","30","31","30","31","31","30","31","30","31");if(this._isBisiesto(D)){return C[A];
}else{return B[A];}};TipoValidacion.prototype._checkCron=function(A,C){var F=[A.getDate(),A.getMonth()+1,A.getDay()];
C=C.replace("31",this._ultimoDiaMes(A.getMonth(),A.getFullYear()));var D=C.split(" ");
var E=0;for(var B=0;B<D.length;B++){if(this._testElementoCron(D[B],F[B])){E++;}}return E==3;
};TipoValidacion.prototype._testElementoCron=function(E,A){if(E==="*"){return true;
}if(/^\d+$/.test(E)){return(E==A);}var B=E.split("-");if(B.length>1){var F=parseInt(A);
return(F>=parseInt(B[0])&&F<=parseInt(B[1]));}var D=E.split(",");if(D.length>1){for(var C=0;
C<D.length;C++){if(D[C]==A){return true;}}}return false;};