// ************************************************************************* //
// ******* FUNCIONES GENERALES-GLOBALES PARA LA WEB DE SEUR ************ //
// ************************************************************************* //
/*****************************************************************************/
/* RGR */
function setOculto(idElemento, sino)
{
if(sino=="S"){
document.getElementById(elemento).style.display="none";
}else{
document.getElementById(elemento).style.display="block";
}
}
/*****************************************************************************/
/* RGR */
function setInvisible(idElemento, sino)
{
if(sino=="S"){
document.getElementById(elemento).style.visibility="hidden";
}else{
document.getElementById(elemento).style.visibility="visible";
}
}
/*****************************************************************************/
/* RGR */
function setCargando(selectId, sino)
{
var claseAjaxCargando = "marcoAjaxCargando";
var elSelect = document.getElementById(selectId);
if(sino == 'S')
{
if(elSelect.className.indexOf(claseAjaxCargando) == -1)
elSelect.className = elSelect.className+' '+claseAjaxCargando;
}
else
{
var ini = elSelect.className.indexOf(claseAjaxCargando);
if(ini != -1)
{
var fin = elSelect.className.indexOf(' ', ini);
var claseVieja = elSelect.className;
var claseNueva = claseVieja.substring(0, ini);
if(fin != -1)
claseNueva += claseVieja.substring(fin, claseVieja.length);
elSelect.className = claseNueva;
}
}
}
/*****************************************************************************/
/* RGR */
function validaSoloNumeros(evt)
{
var codigoTecla = evt.keyCode;
if(evt.ctrlKey) // permite usar la tecla control (para copiar y pegar)
return true;
else
{
if((codigoTecla == 8) // 8 - borrar
|| (codigoTecla == 13) // 13 - enter
|| (codigoTecla == 9) // 9 - tab
|| (codigoTecla == 46) // 46 - suprimir
|| (codigoTecla>34 && codigoTecla<41) // 35 a 40 - inicio, fin, 4flechas
|| (codigoTecla>47 && codigoTecla<58) // 48 a 57 - numeros del 0 al 9
|| (codigoTecla>95 && codigoTecla<106) // 96 a 105 - numeros del 0 al 9 (teclado numerico)
)
{
return true;
}
else
{
// window.status = "La tecla es "+codigoTecla;
return false;
}
}
}
/*****************************************************************************/
/*
* Funcion para cargar un combo con un valor
*/
function cargarCombo(valor,combo){
for(var i=0; i < combo.length; i++){
if (combo[i].text == valor || combo[i].value == valor){
combo.selectedIndex = i;
}
}
}
/*****************************************************************************/
/*
* DGH. Funcion que limita los valores introducidos
* por teclado y SOLO permite numeros.
*/
function validaEntradaNumeros(evt)
{
//se controla si es IE o Moz
if (document.all)
{
if (event.keyCode < 48 || event.keyCode > 57)
event.returnValue = false;
}
else
{
if ((evt.which < 48 || evt.which > 57) && evt.which != 8 && evt.which != 0)
evt.preventDefault();
}
}
/*
* DGH. Funcion que limita los valores introducidos por teclado y
* permite numeros (excepto en la posicion: pos) y una coma(,).
* Ej: (12345,000).
*/
function validaEntradaDecimales(evt,texto,pos,numDec)
{
if(pos == null || pos == "" || pos == 0)
pos=5;
//se controla si es IE o Moz:
if (document.all) // IE
{
//No se deja escribir si:
if(event.keyCode==44 || event.keyCode==46)
{
//...es coma o punto y ya existe una/o o es la primera posicion.
if(texto.indexOf(",")!=-1 || texto.indexOf(".")!=-1 || texto.length==0)
event.returnValue = false;
}
else if (event.keyCode < 48 || event.keyCode > 57)
{
//...no es un numero.
event.returnValue = false;
}
else
{
//...se supera la maxima cantidad de enteros permitida.
if(texto.length==pos)
{
if((event.keyCode!=44 && event.keyCode!=46) && (texto.indexOf(",")==-1 && texto.indexOf(".")==-1))
event.returnValue = false;
}
//...el numero de decimales es mayor del permitido.
var decimales = "";
if(texto.indexOf(",")!=-1)
decimales = texto.substring(texto.indexOf(","),texto.length);
if(texto.indexOf(".")!=-1)
decimales = texto.substring(texto.indexOf("."),texto.length);
if(decimales.length>numDec)
event.returnValue = false;
}
}
else // Moz
{
if((evt.which==44 || evt.which==46) && evt.which!=8 && evt.which!=0)
{
if(texto.indexOf(",")!=-1 || texto.indexOf(".")!=-1 || texto.length==0)
evt.preventDefault();
}
else if ((evt.which < 48 || evt.which > 57) && evt.which != 8 && evt.which != 0)
{
evt.preventDefault();
}
else
{
if(texto.length==pos)
{
if((evt.which!=44 && evt.which!=46) && (texto.indexOf(",")==-1 && texto.indexOf(".")==-1) && evt.which != 8 && evt.which != 0)
evt.preventDefault();
}
var decimales = "";
if(texto.indexOf(",")!=-1)
decimales = texto.substring(texto.indexOf(","),texto.length);
if(texto.indexOf(".")!=-1)
decimales = texto.substring(texto.indexOf("."),texto.length);
if(decimales.length>numDec && evt.which != 8 && evt.which != 0)
evt.preventDefault();
}
}
}
function validarNIFCIFJS(cadena, pais) {
// alert('en validarNIFCIF, pais '+ pais);
cadena = cadena.replace(/^\s+|\s+$/g, ''); //con esto hacemos un trim del nif.
if (pais=='ES')
return validarNIFCIFES(cadena) || validarNIFCIFINT(cadena);
if (pais=='PT')
return validarNIFCIFPT(cadena);
if (pais=='FR')
return validarNIFCIFFR(cadena);
if (pais=='DT')
return validarNIFCIFDT(cadena);
if (pais=='')
return true;
}
//Funcion para validar el CIF/NIF espannol
function validacionNIF(nif,letra) {
cadenanums="TRWAGMYFPDXBNJZSQVHLCKET"
posicion = nif % 23
letraControl = cadenanums.substring(posicion,posicion+1)
if(letraControl==letra){
return true;
}else{
return false;
}
}
//Funcion para validar el CIF/NIF espannol
function validarNIFCIFES(cadena){
//alert('en validarNIFCIFES');
if(cadena!=''){
if (cadena.length>9)
return false;
cadena= cadena.toUpperCase();
var par = 0;
var non = 0;
//var letras="ABCDEFGHKLMNPQS";
var letras="ABCDEFGHIJNPQRSUVW";
var letrasNumerico = "ABEH";
var letrasAlfa = "KPQS";
var primeraPosicion = cadena.charAt(0);
if(!isNaN(primeraPosicion)){ //es un nif
var letra = cadena.charAt(cadena.length-1);
if(isNaN(letra)){
var cadenaNumerica = '00000000'+cadena.substring(0,cadena.length - 1);
cadenaNuemrica = cadenaNumerica.substring(cadenaNumerica.length - 8,cadenaNumerica.length);
if(validacionNIF(cadenaNuemrica,letra)){
return true;
}else{
//alert("");
return false;
}
}else{
//alert("");
return false;
}
}else{// es un cif
if (cadena.length!=9){
//alert("");
return false;
}
for (zz=2;zz<8;zz+=2){
par = par+parseInt(cadena.charAt(zz));
}
for (zz=1;zz<9;zz+=2){
nn = 2*parseInt(cadena.charAt(zz));
if (nn > 9) nn = 1+(nn-10);
non = non+nn;
}
var parcial = par + non;
var controlLetras = (10 - ( parcial % 10));
var control = controlLetras %10
if (letrasNumerico.indexOf(primeraPosicion,0)!=-1){ //es un CIF con digito de control numerico
if (control!=cadena.charAt(8)){
//alert("");
return false;
}
return true;
}
else if (letrasAlfa.indexOf(primeraPosicion,0)!=-1){ //es un CIF con digito de control alfabetico
if (cadena.charAt(8) ==letras.charAt(controlLetras-1) ){
return true;
}
else
{
return false;
}
}
else{ //el digito de control puede ser alfanumerico
if (control==cadena.charAt(8) || cadena.charAt(8) ==letras.charAt(controlLetras-1) ){
return true;
}
return false;
}
}
}else{
return false;
}
}
//Funcion para validar el CIF/NIF portugues
function validarNIFCIFPT(cadena){
// alert('en validarNIFCIFPT');
if(cadena!='' ){
if (isNaN(cadena)){ //alguno de los caracteres no es un nombre
//alert("");
//alert("nifInvalido");
return false;
}
var primeraPosicion = parseInt(cadena.charAt(0));
if(primeraPosicion>0 && cadena.length==9){ //tiene exactamente 9 caracteres
var suma = 0; //hallamos la suma de los digitos segun la formula... ver http://sima-pc.com/nif.php?lang=spa
for (var i = 0; i< 8; i++){
var digito = parseInt(cadena.charAt(i), 10);
digito = digito*(9-i)
suma+= digito;
}
var check =11-( suma % 11);
check = check %10;
var control = parseInt(cadena.charAt(8), 10);
if (check!=control){
//alert('digito de control incorrecto');
return false;
}
return true
}else{
//alert('longitud de nif incorrecto');
return false;
}
}else{
return false;
}
}
//Funcion para validar el CIF/NIF frances
function validarNIFCIFFR(cadena){
// alert('en validarNIFCIFFR');
if(cadena!=''){
var letras="ABCDEFGHJKLMNPQRSTUVWXYZ"; //para diferenciar entre nuevo y viejo, tenemos que comprobar si son letras o no
var numeros="0123456789"; //para diferenciar entre nuevo y viejo, tenemos que comprobar si son letras o no
var caracteresValidosControl=numeros + letras;
var digitosControl = cadena.substring(0,2);
if (cadena.length>11)
return false;
if(!isNaN(digitosControl)){ //es un nif viejo
if (isNaN(cadena ))
return false;
var codNif = parseInt(cadena.substring (2), 10);
var codControl = (codNif*100+12)%97;
if (codControl == parseInt (digitosControl), 10)
return true;
else{
//alert("");
//alert("nifInvalido");
return false;
}
}else{//nif nuevo
if (letras.indexOf(digitosControl.charAt(0))!=-1 && letras.indexOf(digitosControl.charAt(1))!=-1 ){ //ambos digitos de control son letras,
//alert("");
//alert("nifInvalido");
return false;
}
var suma = 0;
var i1 = parseInt(caracteresValidosControl.indexOf(digitosControl.charAt(0)), 10);
var i2 = parseInt(caracteresValidosControl.indexOf(digitosControl.charAt(1)), 10);
if (i1<10){
suma = i1*24+i2-10;
}
else{
suma=i1*34+i2-100
}
var check1 = suma %11;
suma = parseInt(suma/11) +1; //division entera
var codNif = parseInt(cadena.substring (2));
var check2 = (codNif + suma )%11;
if (check1==check2){
return true;
}
else{
//alert("");
//alert("nifInvalido");
return false;
}
}
}
}
//Funcion para validar el CIF/NIF de extranjeros en espanna
function validarNIFCIFINT(cadena){
//alert('en validarNIFCIFINT');
if(cadena!=''){
var par = 0;
var non = 0;
var letrasInt= "KLMX";
var letras="TRWAGMYFPDXBNJZSQVHLCKE";
var primeraPosicion = cadena.charAt(0);
if (cadena.length>9)
return false;
if (letrasInt.indexOf(primeraPosicion,0) ==-1){
//alert('no es un nif internacional');
return false;
}
var numero = cadena.substring(1,cadena.length-1);
if(!isNaN(numero)){
var letra = cadena.charAt(cadena.length-1);
if(isNaN(letra)){
numero = parseInt(numero, 10);
var suma = (numero)%23;
var digitoControl = letras.charAt(suma);
if (digitoControl != letra){
//alert ('digito de control incorrecto');
return false;
}
return true;
}else{
//alert("no hay digito de control");
return false;
}
}else{
//alert ('no es un nif valido');
return false;
}
}else{
return false;
}
}
function validarNIFCIFDT (cadena){ //NIF / CIF aleman
if (cadena!=''){
if (isNaN(cadena))
return false;
var cadenaNumerica = '00000000'+cadena.substring(0,cadena.length - 1);
cadenaNumerica = cadenaNumerica.substring(cadenaNumerica.length - 8,cadenaNumerica.length);
if (parseInt(cadenaNumerica,10)<1)
return false;
var suma = 0;
for (var i=0;i??[]?????#??!^*;,:";
// A?adida por El Codigo para poder emitir un alert en funcion de si email valido o no
var valido = true;
// verifica qie el Usuario no tenga un caracter especial
for (var Cont=0; Cont