<!-- hola -->
var defaultEmptyOK = false
var digits = "0123456789";
var lowercaseLetters = " abcdefghijklmnopqrstuvwxyzáéíóúñü"
var uppercaseLetters = " ABCDEFGHIJKLMNOPQRSTUVWXYZÁÉÍÓÚÑ"
var whitespace = " \t\n\r";
var doc="document.forms"

var phoneChars = "()-+ ";

function isEmpty(s)
{   return ((s == null) || (s.length == 0))
}


// Removes leading whitespaces
function lTrim( value ) {
	
	var re = /\s*((\S+\s*)*)/;
	return value.replace(re, "$1");
	
}

// Removes ending whitespaces
function rTrim( value ) {
	
	var re = /((\s*\S+)*)\s*/;
	return value.replace(re, "$1");
	
}

// Removes leading and ending whitespaces
function trim( value ) {

	return lTrim(rTrim(value));
	
}

function lPad(content,padLength,padChar){

	
    var paddedString=content.toString();
    
    for(i=content.length;i< padLength;i++)
    {
        paddedString=padChar+paddedString;
    }
    return paddedString;
}


function rPad(content,padLength,padChar){
    
    var paddedString=content.toString();    
    
    for(i=content.length+1;i<=padLength;i++){
    
        paddedString=paddedString + padChar;
    }
    return paddedString;
}




function isDigit (c)
{   return ((c >= "0") && (c <= "9"))
}

function isLetterOrDigit (c)
{   return (isLetter(c) || isDigit(c))
}
function isLetter (c){

    return( ( uppercaseLetters.indexOf( c ) != -1 ) ||
            ( lowercaseLetters.indexOf( c ) != -1 ) )

}
function ValidBlanks(frmField,strFldName,descripcion)
{
	var fieldValue = eval(''+doc+'["'+frmField+'"].'+strFldName+'.value');
		
	if (trim(fieldValue) == '' || fieldValue == null)
	{
	        alert("Debe insertar algún valor en el campo " + descripcion);
	        eval(''+doc+'["'+frmField+'"].'+strFldName+'').focus();
	        return (false);
	} 
	return (true);
}
//CAMBIO añadir esta funcion 
function BusqCaracteres(texto)
{	
	var txt = texto.toString();
	
	var valido = true;
	
	for(var i = 0;i < texto.length;i++)
	{
		var oneChar = txt.charAt(i)
		if (oneChar == "<" || oneChar == ">"  || oneChar == "#" || oneChar == "/" || oneChar == '\"'  || oneChar == "\\"  )
		{
			valido = false
		}
	}
	
	if (!valido)
		return false
	else
		return true
	
}
function ValidField(strFldName,frmField,intLength,minLength,strDtType,obligatorio,descripcion)
{
	
	switch (strDtType)
		{
			case 'string' : 
					if ((obligatorio) && (!ValidBlanks(frmField,strFldName,descripcion))) return (false);
					if (eval(''+doc+'["'+frmField+'"].'+strFldName+'.value') != "")
						//CAMBIO añadir esta primera condicion
						if(!BusqCaracteres(eval(''+doc+'["'+frmField+'"].'+strFldName+'.value')))
							{
							var charsNotValid = "<, >, #, /, \", \\";
							alert("El campo " + descripcion + " no puede contener los siguientes caracteres: " + charsNotValid);
							eval(''+doc+'["'+frmField+'"].'+strFldName+'').focus();
							return (false);				
							}
							
						if (eval(''+doc+'["'+frmField+'"].'+strFldName+'.value').length > intLength)
							{
							alert("El número máximo de caracteres del campo " + descripcion + " debe ser: "+intLength);
							eval(''+doc+'["'+frmField+'"].'+strFldName+'').focus();
							return (false);
							}
						if (eval(''+doc+'["'+frmField+'"].'+strFldName+'.value').length < minLength)
							{
							alert("El número mínimo de caracteres del campo " + descripcion + " debe ser: "+minLength);
							eval(''+doc+'["'+frmField+'"].'+strFldName+'').focus();
							return (false);
							}	
				break;
			case 'mail': 
					if ((obligatorio) && (!ValidBlanks(frmField,strFldName,descripcion))) return (false);
					
					if (eval(''+doc+'["'+frmField+'"].'+strFldName+'.value') != "")
						if (!isEmail(eval(''+doc+'["'+frmField+'"].'+strFldName+'.value')))
							{
							alert("El contenido del campo " + descripcion + " no es correcto");
							eval(''+doc+'["'+frmField+'"].'+strFldName+'').focus();
							return (false);
							}	
				break;	
			case 'nif': 
					if ((obligatorio) && (!ValidBlanks(frmField,strFldName,descripcion))) return (false);
					
					if (eval(''+doc+'["'+frmField+'"].'+strFldName+'.value') != "")
						if (!isNif(eval(''+doc+'["'+frmField+'"].'+strFldName+'.value')))
							{
							alert("El contenido del campo " + descripcion + " no es correcto");
							eval(''+doc+'["'+frmField+'"].'+strFldName+'').focus();
							return (false);
							}	
				break;				
			case 'number': 
					if ((obligatorio) && (!ValidBlanks(frmField,strFldName,descripcion))) return (false);
					
					if (eval(''+doc+'["'+frmField+'"].'+strFldName+'.value') != "")
						if (!isNumber(eval(''+doc+'["'+frmField+'"].'+strFldName+'.value')))
							{
							alert("El contenido del campo " + descripcion + " debe ser numerico");
							eval(''+doc+'["'+frmField+'"].'+strFldName+'').focus();
							return (false);
							}	
				break;
			case 'alphanumeric': 
					if ((obligatorio) && (!ValidBlanks(frmField,strFldName,descripcion))) return (false);
					
					if (eval(''+doc+'["'+frmField+'"].'+strFldName+'.value') != "")
						if (!isAlphanumeric(eval(''+doc+'["'+frmField+'"].'+strFldName+'.value')))
							{
							alert("El contenido del campo " + descripcion + " debe ser alfanumerico");
							eval(''+doc+'["'+frmField+'"].'+strFldName+'').focus();
							return (false);
							}	
				break;
			case 'char': 
				if ((obligatorio) && (!ValidBlanks(frmField,strFldName,descripcion))) return (false);
					
					if (eval(''+doc+'["'+frmField+'"].'+strFldName+'.value') != "")
						if (!isAlphabetic(eval(''+doc+'["'+frmField+'"].'+strFldName+'.value')))
							{
							alert('El contenido del campo ' + descripcion + ' solo puede contener caracteres alfabéticos [a-z]');
							eval(''+doc+'["'+frmField+'"].'+strFldName+'').focus();
							return (false);
							}	
				break;
			case 'hour': 
					if ((obligatorio) && (!ValidBlanks(frmField,strFldName,descripcion))) return (false);
								
					if (eval(''+doc+'["'+frmField+'"].'+strFldName+'.value') != "")
						if (!isHour(eval(''+doc+'["'+frmField+'"].'+strFldName+'.value')))
							{
							alert("El contenido del campo " + descripcion + " no es una hora correcta.El formato correcto es 00:00.");
							eval(''+doc+'["'+frmField+'"].'+strFldName+'').focus();
							return (false);
							}	
				break;	
			case 'date': 
					if ((obligatorio) && (!ValidBlanks(frmField,strFldName,descripcion))) return (false);
					
					if (eval(''+doc+'["'+frmField+'"].'+strFldName+'.value') != "")
						if (isDate(eval(''+doc+'["'+frmField+'"].'+strFldName+'.value'))== false)
							{
							alert("El contenido del campo " + descripcion + " no es una fecha correcta. El formato correcto es DD/MM/AAAA.");
							eval(''+doc+'["'+frmField+'"].'+strFldName+'').focus();
							return (false);
							}
				break;
			case 'list' : 
                    if ((obligatorio) && (eval(''+doc+'["'+frmField+'"].'+strFldName+'').selectedIndex==0))
                    {
                            alert("Debe rellenar " + descripcion );
                           eval(''+doc+'["'+frmField+'"].'+strFldName+'').focus();
                            return (false);
                    }
				break;

			case 'positivo' : 
					if ((obligatorio) && (!ValidBlanks(frmField,strFldName,descripcion))) return (false);
					
					if (eval(''+doc+'["'+frmField+'"].'+strFldName+'.value') != "")
						if ((!isNumber(eval(''+doc+'["'+frmField+'"].'+strFldName+'.value')))||(eval(''+doc+'["'+frmField+'"].'+strFldName+'.value')<0))
							{
							alert("El contenido del campo " + descripcion + " debe ser positivo.");
							eval(''+doc+'["'+frmField+'"].'+strFldName+'').focus();
							return (false);
							}	
				break;	
			
			case 'phone' : 
					if ((obligatorio) && (!ValidBlanks(frmField,strFldName,descripcion))) return (false);					
					if (eval(''+doc+'["'+frmField+'"].'+strFldName+'.value') != "")
						if ((eval(''+doc+'["'+frmField+'"].'+strFldName+'.value').length<9)||(eval(''+doc+'["'+frmField+'"].'+strFldName+'.value').length>11) )
							{
							alert("El contenido del campo " + descripcion + " debe tener entre 9-11 caracteres.");
							eval(''+doc+'["'+frmField+'"].'+strFldName+'.value').focus();
							return (false);
							}	
				break;				
								
		}
	return (true);
}


function isInteger (s)
{   var i;
    if (isEmpty(s)) 
       if (isInteger.arguments.length == 1) return defaultEmptyOK;
       else return (isInteger.arguments[1] == true);
    
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if( i != 0 ) {
            if (!isDigit(c)) return false;
        } else { 
            if (!isDigit(c) && (c != "-") || (c == "+")) return false;
        }
    }
    return true;
}

function isNumber (s)
{   
    var i;
    var dotAppeared;
    dotAppeared = false;
    if (isEmpty(s)) 
       if (isNumber.arguments.length == 1) return defaultEmptyOK;
       else return (isNumber.arguments[1] == true);
    
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if( i != 0 ) {
            if ( c == "," ) {
                if( !dotAppeared )
                    dotAppeared = true;
                else
                    return false;
            } else     
                if (!isDigit(c) && c != ".") return false;
        } else { 
            if ( c == "," ) {
                if( !dotAppeared )
                    dotAppeared = true;
                else
                    return false;
            } else
                if (!isDigit(c) && (c != "-") || (c == "+")) return false;
        }
    }
    return true;
}

function isAlphabetic (s)
{   var i;

    if (isEmpty(s)) 
       if (isAlphabetic.arguments.length == 1) return defaultEmptyOK;
       else return (isAlphabetic.arguments[1] == true);
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is letter.
        var c = s.charAt(i);

        if (!isLetter(c))
        return false;
    }
    return true;
}



function isAlphanumeric (s)
{   var i;

    if (isEmpty(s)) 
       if (isAlphanumeric.arguments.length == 1) return defaultEmptyOK;
       else return (isAlphanumeric.arguments[1] == true);

    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if (! (isLetter(c) || isDigit(c) ) )
        return false;
    }

    return true;
}

function isName (s)
{
    if (isEmpty(s)) 
       if (isName.arguments.length == 1) return defaultEmptyOK;
       else return (isAlphanumeric.arguments[1] == true);
    
    return( isAlphanumeric( stripCharsInBag( s, whitespace ) ) );
}

letras = new Array("t","r","w","a","g","m","y","f","p","d","x","b","n","j","z","s","q","v","h","l","c","k","e");
function isNif(nif)
{
			
            var itm=0;
            var defNif;
            var long=nif.length;
            var j=0;
            
            while((j<long) && (itm!=1)){
                        if(nif.substr(j,1)!=0){
                                   itm=1;
                        }
                        else{j++}                       
            }
            if(itm==0){
                        defNif=nif;
            }
            
            else{
                        defNif=nif.substr(j,long)
            }
            
		  defNif=defNif.toLowerCase();
		  nifcorrecto = true;
		  dni=defNif.substring(0,defNif.length-1);
		  dni=parseInt(dni);
		  letra=defNif.charAt(defNif.length-1);
		  letraCorrecta = letras[ dni % 23];
		            
		  if (dni > 99999999)
		    nifcorrecto = false;
		  if(letra!=letraCorrecta)
		    nifcorrecto = false;
		    
		   if (nifcorrecto){
		            return true;}
		   else{
		   		
		   		//Si no es un nif normal, validamos si es electronico
		   			if(nif.length!=8){
		   				return false;
		   			}
		   			else{
			   			 for (i = 0; i < nif.length; i++)
					    {   
					        var c = nif.charAt(i);					        
					        if((i==0 || i==1)&&(!isLetter(c))){					        	
					        	return false;
					        }
					        else{
					         	if(i!=0 && i!=1 && !isDigit(c)){						        	
						        	return false;
					        	}
					        }					        
					    }					   
					    return true;
				    }
		            return false;
		 }
}



function isPhoneNumber (s)
{   var modString;
    if (isEmpty(s)) 
      if (isPhoneNumber.arguments.length == 1) return defaultEmptyOK;
      else return (isPhoneNumber.arguments[1] == true);			 
    	modString = stripCharsInBag( s, phoneChars );				
			return (isInteger(modString))
}

function isEmail (s) 
{
	if (isEmpty(s))
		return false; 
	var i = 1; var sLength = s.length; 
	while ((i < sLength) && (s.charAt(i) != "@")) 
	{ 
		i++;
	}
	if ((i >= sLength) || (s.charAt(i) != "@")) 
		return false; 
	else 
		i += 2;
	
	while ((i < sLength) && (s.charAt(i) != ".")) 
	{
		i++; 
	}
	if ((i >= sLength - 1) || (s.charAt(i) != ".")) 
	 	return false; 

	
	else return true; 
} 
function isHour(s)
{
	var Horacorrecta=true
	var horas,min
	horas=parseInt(s.substring(0,2),10)
	min=parseInt(s.substring(3,5),10)
	
	if(s.length!=5) Horacorrecta=false;
	if(s.indexOf(':')==-1) Horacorrecta=false;
	if(horas>24|| horas<0) Horacorrecta=false;
	if(min>60 || min<0) Horacorrecta=false;
	if(isNaN(horas))Horacorrecta=false;
	if(isNaN(min))Horacorrecta=false;
		
	if(Horacorrecta)
		return true
	else
		return false
}
function isDate(s)
{
    var day,month,year,mod,chr
    if (s==null || s.length==0)
        return true
    if (s.length!=10)
        return false

    for (var ij=0;ij<10;ij++)
    {
        chr=s.charAt(ij)
        if (ij!=2 && ij!=5)
        {
            if (chr<"0"||chr>"9") return false
        }
        else
        {
            if (chr!="/") return false
        }
    }
    
/*    day=parseInt(s.substring(0,2),10)
    month=parseInt(s.substring(3,5),10)
    year=parseInt(s.substring(6,10),10)*/

	tempoDate=s.split("/");
	day=parseInt(tempoDate[0],10);
    month=parseInt(tempoDate[1],10);
    year=parseInt(tempoDate[2],10);

    if (1>day || day>31)
        return false
    if (1>month || month>12)
        return false
    if ((1>year)&&(year.length!=4))
        return false
    if ((month==4 || month==6 || month==9 || month==11) && day==31)
        return false
    if (month==2)
    {
        mod=year%4
    	if (mod==0)
    	{
            mod=year%100
	    if(mod==0)
	    {
                var mod2=year%400
                if(mod2==0 &&  day>29)
                    return false
                else if(mod2!=0 && day>28)
                    return false
            }
	    else if(day>29)
	        return false
        }
        else if (day>28)
            return false
    }
    return true 		
}

function compDates(s1, s2)
{
    var f1, f2	

    f1 = s1.substring(6,10) + "/";    
    f1 = f1 + s1.substring(3,5) + "/";
    f1 = f1 + s1.substring(0,2);

    f2 = s2.substring(6,10) + "/";    
    f2 = f2 + s2.substring(3,5) + "/";
    f2 = f2 + s2.substring(0,2);
	if (f1 == f2) 
		return 0
	else	
    	return (f1 < f2) + 1
}

function stripCharsInBag(origen, filtro){	
	re = new RegExp("["+filtro+"]","gi")
	var resultado = "";
  resultado = origen.replace(re,""); 	
	return resultado;
}

function valida_refage(agencia, refag) {
		
		if (refag==null){
			alert("Debe introducir una Referencia de Agencia.");				
			return false;
		} else {
	    	var codag4 = agencia.substring(0,4);
	    	var codag5 = agencia.substring(0,5);
	   
	   		// VALIDACION AGENCIAS MARSANS
			/*
				12347abc123
			*/
	    	if (codag4 == "3001" || codag4 == "3002") {	    	
		        // Calculamos el último dígito del año
				Fecha = new Date();
				Ano=""+Fecha.getFullYear();
				UltimoDigitoAno=Ano.substring(3);
			
	
				if (refag.length!=11 || 
					isNaN(refag.substring(0,4)) ||
					refag.substring(4,5)!=UltimoDigitoAno ||
					!isAlphanumeric(refag.substring(5,7)) ||
					isNaN(refag.substring(8,10))
			    ) {
				
					alert("Debe introducir una Referencia de Agencia válida. Debe introducir el número de expediente completo que se ha generado en MERCURIO");
				
					return false;
				}
	    	}
	  		// FIN VALIDACION MARSANS 
	  
	  		// VALIDACION AGENCIAS ELMONTE
			/*
				1234 / 1234567
			*/
	    	if (codag5 == "03176") {
	    		if (refag.length!=12 || 
					isNaN(refag.substring(0,4)) ||
					refag.substring(4,5)!="/" ||
					isNaN(refag.substring(5))
			    	) { 
					alert("Debe introducir una Referencia de Agencia válida. Formato de la referencia: 4digitos/7digitos");
				
					return false;
			    }
			}  
	  		// FIN VALIDACION ELMONTE
	  
	  		// VALIDACION AGENCIAS GLOBALIA (HALCON)
			/*
				999 999999 9
				ó
				A99 999999 9
			*/
	   	 	if (codag5 == "00861" || codag5 == "00862" || codag5 == "00863"
	        	|| codag5 == "00864" || codag5 == "00865" || codag5 == "00866"
	        	|| codag5 == "00867" || codag5 == "00869" || codag5 == "00880"
	        ) {
	    		if (refag.length!=10 || 
					isNaN(refag.substring(1,10))
				  ) { 
					alert("Debe introducir una Referencia de Agencia válida. Formato de la referencia: Sucursal(3 digitos),expediente(6 digitos),digito control(1 digito)");
				
					return false;
				}
			      
			   	var car1 = refag.substring(0,1); //primer caracter
			   	var car10 = refag.substring(9,10); //último caracter
			   	if (isNaN(car1)) {
			    	// primer caracter letra
			    	var carstr = "";
	             	if (car1 == "A") { carstr="10"; }
	             	if (car1 == "B") { carstr="11"; }
	             	if (car1 == "C") { carstr="12"; }
	             	if (car1 == "D") { carstr="13"; }
	             	if (car1 == "E") { carstr="14"; }
	             	if (car1 == "F") { carstr="15"; }
	            	if (car1 == "G") { carstr="16"; }
	             	if (car1 == "H") { carstr="17"; }
	             	if (car1 == "I") { carstr="18"; }
	             	if (car1 == "J") { carstr="19"; }
	             	if (car1 == "K") { carstr="20"; }
	             	if (car1 == "L") { carstr="21"; }
	             	if (car1 == "M") { carstr="22"; }
			        
					if (carstr>="10" && carstr<="22") {
						var subcadena=carstr+refag.substring(1,9);
			          	if ((subcadena % 7) != car10) {
				          	alerts("Debe introducir una Referencia de Agencia válida. Formato de la referencia: Sucursal(3 digitos), expediente(6 digitos), digito control(1 digito)");
				          
				          	return false;		        
						}
					} else {
				        alert("Debe introducir una Referencia de Agencia válida. Formato de la referencia: Sucursal(3 digitos), expediente(6 digitos), digito control(1 digito)");
				       	return false;		        
	             	}
	            
			    } else {
			        // primer caracter numérico
			        var mistring  = refag.substring(0,9); //9 primeros caracteres
			        if ((mistring % 7) != car10) {
				        alert("Debe introducir una Referencia de Agencia válida. Formato de la referencia: Sucursal(3 digitos), expediente(6 digitos), digito control(1 digito)");
				        return false;		        
	  		      	}
				}		      
			}  
		  	// FIN VALIDACION GLOBALIA (HALCON)
	  
	 		// AGENCIAS ECUADOR Y TCI CORTES
			/*
				A99 999999 9	
			*/
	  		if (codag4 == "3003" || codag4 == "3005") {  
	    		if (refag.length!=10 || 
					isNaN(refag.substring(1,10)) ||
					!isNaN(refag.substring(0,1))
				  	) { 
					alert("Debe introducir una Referencia de Agencia válida. Formato de la referencia: Sucursal(1 letra y 2 digitos), expediente(6 digitos), digito control(1 digito)");
					return false;
				}
			      
			  	var car1 = refag.substring(0,1); //primer caracter
			  	var car10 = refag.substring(9,10); //último caracter
			  	var carstr = "";
				if (car1 == "A") { carstr="10"; }
	            if (car1 == "B") { carstr="11"; }
	            if (car1 == "C") { carstr="12"; }
	            if (car1 == "D") { carstr="13"; }
	            if (car1 == "E") { carstr="14"; }
	            if (car1 == "F") { carstr="15"; }
	            if (car1 == "G") { carstr="16"; }
	            if (car1 == "H") { carstr="17"; }
	            if (car1 == "I") { carstr="18"; }
	            if (car1 == "J") { carstr="19"; }
	            if (car1 == "K") { carstr="20"; }
	            if (car1 == "L") { carstr="21"; }
	            if (car1 == "M") { carstr="22"; }
			        
				if (carstr>="10" && carstr<="22") {
					var subcadena=carstr+refag.substring(1,9);
					if ((subcadena % 7) != car10) {
				          alerts("Debe introducir una Referencia de Agencia válida. Formato de la referencia: Sucursal(1 letra y 2 digitos), expediente(6 digitos), digito control(1 digito)");
				          return false;		        
					}
				} else {
					alert("Debe introducir una Referencia de Agencia válida. Formato de la referencia: <br>Sucursal(1 letra y 2 digitos), expediente(6 digitos), digito control(1 digito)");
					return false;		        
				}
	
	 	 	}	
	  		// FIN VALIDACION ECUADOR Y TCI CORTES
	  		
	  		// VALIDACION EROSKI
            if (codag4 == "0116") {
                var cadena = "";
                var pares = 0;
                var impares = 0;
                var suma = 0;
				var complemento = 0;
				campo=refag;
				if (campo.length<8 || isNaN(campo) || campo==0) { 
					 alert("Debe introducir una Referencia de Agencia válida. Formato de la referencia: Nº Oficina (4 dígitos), Nº Expediente (mínimo 1 dígito), Nº bono (2 dígitos), Dig ctrl");
					 return false;
                }
                // toda la cadena excepto el dígito final
                cadena = campo.substring(0,campo.length-1);
                // Dígito control. Último dígito
                dc = campo.substring(campo.length-1,campo.length);
                var contador = 1;
                for(i=cadena.length-1;i >= 0;i--) {
                	if (contador%2!=0) {
                		temp = cadena.substr(i,1)*2;
                		// Sumamos cada dígito del resultado anterior
                		for(j=0;j < temp.toString().length;j++) { 
                			impares += parseInt(temp.toString().substr(j,1));
                		}
                	}  else { 
                		pares += parseInt(cadena.substr(i,1));
                	}
                	contador++;
                }
                suma = pares + impares;
                // complemento a 10 del dígito menos significativo de la suma anterior
                complemento = 10 - parseInt(suma.toString().substr(suma.toString().length-1));
                if (complemento!=dc) {
                	alert("Debe introducir una Referencia de Agencia válida. Formato de la referencia: Nº Oficina (4 dígitos), Nº Expediente (mínimo 1 dígito), Nº bono (2 dígitos), Dig ctrl");
                	return false;
                }
            }
            // FIN VALIDACION EROSKI
              
  			return true;
		}
  	}	

function validateDates(frmField, day1Field, month1Field, year1Field, actualAnyo,ageChildren ,focusField,numChild){
	
	//Fecha del niño en combo
	var day1Children   = eval(''+doc+'["'+frmField+'"].'+day1Field+'.value');
   	var month1Children = eval(''+doc+'["'+frmField+'"].'+month1Field+'.value');
	var year1Children  = eval(''+doc+'["'+frmField+'"].'+year1Field+'.value');
	var actualAnyo     = eval(''+doc+'["'+frmField+'"].'+actualAnyo+'.value');
	var ageCalculate   = getAge(day1Children, month1Children, year1Children, actualAnyo);
    var ageChild = eval(''+doc+'["'+frmField+'"].'+ageChildren+'.value');
    if(ageChild == ageCalculate 
       || ageChild == ageCalculate+1
       || ageChild == ageCalculate-1){
    return true;   
    }
    alert("La fecha de nacimiento introducida en el niño "+numChild + " no correponde a la edad introducida en distribución "+ageChild+" años" );
    eval(''+doc+'["'+frmField+'"].'+focusField+'').focus();
    return false;
}

function getAge(day1Children, month1Children, year1Children, actualAnyo){

	   //Fecha Actual
	   var fechaAct= new Date();
	   //el metodo getMonth devuelve los meses de 0-11, para que mesAct refleje la 
	   //notacion habitual (1-12) lo incrementamos en 1 unidad
	   var mesAct  = fechaAct.getMonth() + 1;
	   var diaAct  = fechaAct.getDate();
	   var anyo    = actualAnyo;
	   var ageChildren = anyo - year1Children;
	   
	   if((mesAct < month1Children )|| (mesAct == month1Children && diaAct <day1Children)){
	   		ageChildren = ageChildren-1;
	   }
	   return ageChildren;
	
}


function isDNI(dni) {
		//alert("isDNI");
		var regExp = /^\d{0,8}[TRWAGMYFPDXBNJZSQVHLCKET]$/;
		if(!dni.match(regExp)){
			return false;
		}
	
	  var numero = dni.substr(0,dni.length-1);
	  var let = dni.substr(dni.length-1,1);
	  numero = numero % 23;
	  var letra='TRWAGMYFPDXBNJZSQVHLCKET';
	  letra=letra.substring(numero,numero+1);
	  if (letra!=let){ 
	    return false;
	  }else{
	  	return true;
	  }
}


function isNIE(nie) {
		//alert("isNIE");
		var regExp = /^[xX]\d{0,8}[TRWAGMYFPDXBNJZSQVHLCKET]$/;
		if(!nie.match(regExp)){
			return false;
		}
	

	  var numero = nie.substr(1,nie.length-2);
	  var let = nie.substr(nie.length-1,1);
	  numero = numero % 23;
	  var letra='TRWAGMYFPDXBNJZSQVHLCKET';
	  letra=letra.substring(numero,numero+1);
	  if (letra!=let){ 
	    return false;
	  }else{
	  	return true;
	  }
}
