
	// validar tipos de campo en el evento	ejm: onKeyDown="return evtValidateSet(event,'0123456789')"
		function evtValidateSet(event,set) {
			var theKey;
			var bolRet=false;
			//alert(event.keyCode);	
			if (navigator.appName.toLowerCase().indexOf("explorer") != -1
					|| navigator.appName.toLowerCase().indexOf("microsoft") != -1 ) {
					theKey = event.keyCode;
			} else {
					theKey=event.which;
			}
			if ((theKey==8) ||
				(theKey==9) || 
				(theKey==0)||
				(theKey==16)||
				(theKey==111)||
				(theKey==188)||
				(theKey==190) || 
				(theKey==46) ||  //tecla suprimir
				(theKey==37) ||  //flecha izquierda
				(theKey==39) ||  //flecha derecha
				(theKey>95 && theKey<106)) {
					bolRet=true;
			} else {
					for(i=0;(!bolRet) && (i<set.length);++i) {
						bolRet = (set.substr(i,1)==String.fromCharCode(theKey));
					}
			}
			if (navigator.appName.indexOf("Explorer",0) != -1) {
					if (!bolRet) {
							event.keyCode = "";
					}
			}
			return bolRet;
		}

function validarNISS(source, args)
{
	var esValido = false;
	if (args.Value.length==12) 
	{ 
        var prov = parseInt(args.Value.substr(0,2));		
		if ((prov>0)&&(prov<54))
		{
			var dc = parseInt(args.Value.substr(10,2));		
			var dividendo = 0;
			var resultado = 0;			
			if (args.Value.substr(2,1)=="0")
			{                                 				
               dividendo = parseInt(args.Value.substr(0,2)+args.Value.substr(3,7));
			}else{
			   dividendo = parseInt(args.Value.substr(0,10));
			}			
			esValido = (dividendo % 97== dc) ;
		 }
	}
    else
    {
        alert('El campo NISS debe tener un tamaņo de 12 digitos');
    }
    args.IsValid=esValido;
}
function validarNISS2(source, args)
{
	var arg = args.Value;
	var esValido = false;
	if (arg.length==12) { 
		var prov = arg.substr(0,2) * 1;
		if ((prov>0)&&(prov<54)){
			var dc = arg.substr(10,2) * 1 ;
			var divisor = 97;
			var dividendo = 0;
			var a="";
			if (arg.substr(2,1)=="0"){
				a = arg.substr(0,2)+arg.substr(3,7);
			}else{
				a = arg.substr(0,10);
			}
			dividendo = a * 1;
			esValido = (dividendo % divisor == dc) ;
		}
	}
	args.IsValid=esValido;
}
/*************************************************************************************
ALVAROLC-25/9/2008
Comentado, no acepta los nuevos CIF/NIF
***************************************************************************************
function validarCifNif(source, args)
{
	
	if (/[AaBbCcDdEeFfGgHhKkLlMmNnPpQqSs][0-9]{7}[AaBbCcDdEeFfGgHhIiJj0123456789]$/.test(args.Value))
	{
		// empieza con letra, no X => es un CIF
		validarCif(source, args);
	} else if (/[Xx0123456789][0-9]{0,7}[TtRrWwAaGgMmYyFfPpDdXxBbNnJjZzSsQqVvHhLlCcKkEeTt]$/.test(args.Value))
	{
		// empieza con numero o con X => es un NIF
		validarNif(source, args);
	} else if(/[A-Za-z0-9]{10}$/.test(args.Value))
	{
		//10 digitos, es un pasaporte
		args.IsValid = true;
	}
	else{
		// no tiene un formato correcto
		args.IsValid = false;
	}
}
function validarCif(source, args)
{

	var letras = "JABCDEFGHI";
	var elCIF = args.Value;
	var tamanho = elCIF.length;
	if(tamanho!=9)
		{
		args.IsValid = false;
		return;
		}
	elCIF = elCIF.toUpperCase();
	//alert(elCIF.substr(8,1));
	if(letras.indexOf(elCIF.substr(8,1)) != -1){
		//alert(letras.indexOf(elCIF.substr(8,1)));
		elCIF = elCIF.substr(0,8) + (letras.indexOf(elCIF.substr(8,1)));
	}
	//alert(elCIF);
	var v1 = new Array(0,2,4,6,8,1,3,5,7,9); 
	var temp = 0; 
	var temp1;

	for( i = 2; i <= 6; i += 2 ) 
	{
		temp = temp + v1[ parseInt(elCIF.substr(i-1,1)) ];
		temp = temp + parseInt(elCIF.substr(i,1));
	};

	temp = temp + v1[ parseInt(elCIF.substr(7,1)) ];

	temp = (10 - ( temp % 10));

	if( temp == 10 ) temp = 0;

	args.IsValid = temp == elCIF.substr(8,1);
}
//calcular letra NIF
function validarNif(source,args)
{

	var dni = args.Value;
	var tamanho = dni.length;
	// Permite introducir pasaportes (10 caracteres) sin validarlos.
	if(tamanho==10)
		{
		args.IsValid=true;
		return;
		}
	if(tamanho!=9)
		{
		args.IsValid=false;
		return;
		}
		
	dni = dni.toUpperCase();
	if (dni.substr(0,1) == "X") {
		dni = dni.substr(1,tamanho - 1);
		tamanho--;
	}	
	var letra = dni.substr(tamanho-1,1);

	var chequeo = 1 * dni.substr(0,tamanho-1);
	var letra;
	var letras = "TRWAGMYFPDXBNJZSQVHLCKET";
	
	if(!isNaN(chequeo))
		{
		ASC = chequeo%23;
		args.IsValid = letra == letras.substr(ASC,1);
		} 
	else 
		{
		args.IsValid = false;
		}		
}  
*/

/*************************************************************************************
ALVAROLC-25/9/2008
Nuevas validaciones traidas del control de Presentacion TEXTBOXNIF
***************************************************************************************/
			function validarCifNif(source, args)
			{
				if (/[AaBbCcDdEeFfGgHhKkLlMmNnPpQqSsJjUuVvWwRr][0-9]{7}[AaBbCcDdEeFfGgHhIiJj0123456789]$/.test(args.Value))
				{
					// empieza con letra, no X, Y, Z => es un CIF
					validarCif(source, args);
				} else if (/[XxYyZzKkLlMm0123456789][0-9]{0,7}[TtRrWwAaGgMmYyFfPpDdXxBbNnJjZzSsQqVvHhLlCcKkEeTt]$/.test(args.Value))
				{
					// empieza con numero o con X, Y, Z => es un NIF
					validarNif(source, args);
				} else {
					// no tiene un formato correcto !?
					args.IsValid = false;
				}

				if(/[A-Za-z0-9]{10}$/.test(args.Value))
				{
					//10 digitos, es un pasaporte
					args.IsValid = true;
				}
			}

			function validarCif(source, args)
			{
				var letras = "JABCDEFGHI";
				var elCIF = args.Value;
				var tamanho = elCIF.length;
				if(tamanho!=9)
					{
					args.IsValid = false;
					return;
					}
				elCIF = elCIF.toUpperCase();
				if(letras.indexOf(elCIF.substr(8,1)) != -1){
					//alert(letras.indexOf(elCIF.substr(8,1)));
					elCIF = elCIF.substr(0,8) + (letras.indexOf(elCIF.substr(8,1)));
				}
				var v1 = new Array(0,2,4,6,8,1,3,5,7,9); 
				var temp = 0; 
				var temp1;
				for( i = 2; i <= 6; i += 2 ) {
					temp = temp + v1[ parseInt(elCIF.substr(i-1,1)) ];
					temp = temp + parseInt(elCIF.substr(i,1));
				}
				temp = temp + v1[ parseInt(elCIF.substr(7,1)) ];
				temp = (10 - ( temp % 10));
				if( temp == 10 ) temp = 0;
				args.IsValid = temp == elCIF.substr(8,1);
			}

			function validarNif(source,args)
			{
				var dni = args.Value;
				var tamanho = dni.length;
				if(tamanho!=9){
					args.IsValid=false;
					return;
				}
				dni = dni.toUpperCase();
				var letraInicial=dni.substr(0,1);
				if (letraInicial == "X" || letraInicial == "K" || letraInicial == "L" || letraInicial == "M")
				{
					dni = dni.substr(1,tamanho - 1);
					//tamanho--;
					//dni = ""0"" + dni.Substring(1, dni.length - 1);
					dni = "0" + dni;
				}
				else if (letraInicial == "Y" || letraInicial == "Z")
				{
					dni = dni.substr(1, dni.length - 1);
					if (letraInicial == "Y")
						dni = "1" + dni;
					else if (letraInicial == "Z")
						dni = "2" + dni;
				}
				var letra = dni.substr(tamanho-1,1);
				var chequeo = 1 * dni.substr(0,tamanho-1);
				var letra;
				var letras = "TRWAGMYFPDXBNJZSQVHLCKET";
				if(!isNaN(chequeo)){
					ASC = chequeo%23;
					args.IsValid = letra == letras.substr(ASC,1);
				} else {
					args.IsValid = false;
				}
			}  



