<!--
//Funcion que limpia el formulario. Vale para campos select, text, textarea y password.
function limpiarFormulario() {
  document.formulario.reset();
}

// Funcion que obtiene el valor de un radio button
function getCheckedValue(radioObj) {
	
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;

	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}

// Funcion que obtiene el valor de un select
function getSelectedValue(selectObj) {
	if(!selectObj)
		return "";
	return selectObj.options[selectObj.selectedIndex].value;
}



//Campo numerico de al menos 9 digitos
function chkTelefono(campo) {
	if (isNaN(campo.value) || (campo.value.length < 9)){
		alert("Debe introducir un n?mero de tel?fono v?lido");
		campo.focus();
		campo.blur();
		campo.select();
		return false;
	}else{
		return true;
	}
}

//Campo numerico que no contenga un .
function chkEntero(campo){
	if (!isNaN(campo.value)) {
		// es un numero 
		var numero = campo.value;
		if (numero.indexOf(".") != -1) {
			alert("Debe introducir un numero entero");
			campo.focus();
			campo.blur();
			campo.select();
			return false;
		}else{
			return true;
	}
  } else {
  	return false;
  }
}
		 

//Campo numerico de al menos 5 digitos
function chkCP(campo){
	if (isNaN(campo.value) || (campo.value.length < 5)){
		alert("Debe introducir un C?digo Postal v?lido de 5 cifras");
		campo.focus();
		campo.blur();
		campo.select();
		return false;
	}else{
		return true;
	}

}

//Campo numerico
function chkNumero(campo){
	if (isNaN(campo.value)){
		alert("Debe introducir un n?mero v?lido");
		campo.focus();
		campo.blur();
		campo.select();
		return false;
	}else{
		return true;
	}
}

//Campo sigue estructura de direccion email
function chkEmail(campo){
  var emailReg = "^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$";
  var regex = new RegExp(emailReg);
  	if (!regex.test(campo.value)) {
   		alert("Debe introducir una direcci?n de correo v?lida");
		   campo.focus();
		   campo.blur();
		   campo.select();
		   return false;
	  }else{
		   return true;
	  }
}

//Campo no en blanco
function chk(campo){
	if (campo.value == ""){
		 alert("Debe introducir un valor en el campo seleccionado");
//alert("Es necesario introducir todos los datos");
		 campo.focus();
		 campo.blur();
		 campo.select();
		 return false;
	}else{
		 return true;
	}
}

//Campo no en blanco sin sacar un mensaje
function chkSinMensaje(campo){
	if (campo.value == "")	 
		return false;
	else
		 return true;
}

//Campo no vacio
function chkVacio(campo){

	return campo.value == "" ? 1: 0 ;

}

//Anyo dado es bisiesto
function esBisiesto(anio) {
return (((anio % 4 == 0) && (anio % 100 != 0)) || (anio % 400 == 0)) ? 1 : 0;
}

//Comprueba fecha existente
function diaCorrecto(dia,mes,anio){

var dias=new Array(31,28,31,30,31,30,31,31,30,31,30,31);

	dias[1]=dias[1]+esBisiesto(anio);
	return ((anio>1900) && (mes<13)  && (dia<=dias[mes-1]));
//	return ((anio>1900) && (mes<13)  && (dia<=dias[mes-1])) ? 1:0;
}

//Comprueba hora existente en formato 24h
function horaCorrecta(hora,min){
	return ((hora<24) && (min<60) && (hora>=0) && (min>=0));
}

//Fecha en formato correcto
function chkFecha(campo){

var plantilla = new RegExp(/^\d+\/\d+\/\d{4}$/gi) ;
var primero = campo.value.indexOf("/");
var segundo = campo.value.indexOf("/",primero+1);
if ((primero > -1) && (segundo > -1)) {
    var dia=parseInt(campo.value.substring(0,primero),10);
    var mes=parseInt(campo.value.substring(primero+1,segundo),10);
    var anio=parseInt(campo.value.substring(segundo+1,10),10);}
 else
   {alert("Debe introducir una fecha completa usando como caracter de separacion la barra '/'");
    campo.focus();
    campo.blur();
    campo.select();
    return false;}

if ((!plantilla.test(campo.value)) || (!diaCorrecto(dia,mes,anio)))
             {alert("Debe introducir una fecha valida en el formato dd/mm/aaaa");
	      campo.focus();
	      campo.blur();
	      campo.select();
	      return false;}
else
	return true;

}


//Timestamp en formato correcto
function chkTimestamp(campo){

var plantilla = new RegExp(/^\d+\/\d+\/\d{4} \d+\:\d+$/gi);
var primero = campo.value.indexOf("/");
var segundo = campo.value.indexOf("/",primero+1);
var espacio = campo.value.indexOf(" ");
var dospuntos = campo.value.indexOf(":");
if ((primero > -1) && (segundo > -1) && (espacio > -1) && (dospuntos > -1)) {
    var dia=parseInt(campo.value.substring(0,primero),10);
    var mes=parseInt(campo.value.substring(primero+1,segundo),10);
    var anio=parseInt(campo.value.substring(segundo+1,10),10);
    var hora=parseInt(campo.value.substring(espacio,dospuntos));
    var min=parseInt(campo.value.substring(dospuntos+1,campo.value.length));
    }
 else
   {alert("Debe introducir una fecha y hora completas con el formato 'dd/mm/yyyy hh:mm'");
    campo.focus();
    campo.blur();
    campo.select();
    return false;}

//    alert("uno="+plantilla.test(campo.value)+" dos="+diaCorrecto(dia,mes,anio)+" tres="+horaCorrecta(hora,min));
//alert (plantilla.test(campo.value) && diaCorrecto(dia,mes,anio) && horaCorrecta(hora,min))


if (plantilla.test(campo.value) && diaCorrecto(dia,mes,anio) && horaCorrecta(hora,min))
        return true;
else
     {alert("Debe introducir una fecha valida en el formato 'dd/mm/aaaa hh:mm'");
      campo.focus();
      campo.blur();
      campo.select();
      return false;}
}


//Cuenta bancaria en formato correcto
function chkCCC(campo){

var plantilla = new RegExp(/^\d{4}\-\d{4}\-\d{2}\-\d{10}$/gi) ;
var primero = campo.value.indexOf("-");
var segundo = campo.value.indexOf("-",primero+1);
var tercero = campo.value.indexOf("-",segundo+1);
if ((primero > -1) && (segundo > -1) && (tercero > -1)) {
    var entidad=parseInt(campo.value.substring(0,primero),10);
    var sucursal=parseInt(campo.value.substring(primero+1,segundo),10);
    var codigo=parseInt(campo.value.substring(segundo+1,tercero),10);
    var cuenta=parseInt(campo.value.substring(tercero+1,23),10);
    }
else
   {alert("El C.C.C. introducido no se ajusta al formato\n'XXXX-XXXX-XX-XXXXXXXXXX'");
    campo.focus();
    campo.blur();
    campo.select();
    return false;}

if (!plantilla.test(campo.value))
             {alert("Debe introducir  c?digo de cuenta cliente en formato\n'XXXX-XXXX-XX-XXXXXXXXXX'");
	      campo.focus();
	      campo.blur();
	      campo.select();
	      return false;}

else
        return true;

}





//Campo no contiene comillas
function chkComillas(campo){
  var comillasReg = "\.*\'\.*";
  var regex = new RegExp(comillasReg);
  	if (regex.test(campo.value)) {
   		alert("No se permite usar comillas en los campos de formulario.");
		   campo.focus();
		   campo.blur();
		   campo.select();
		   return false;
	  }else{
		   return true;
	  }
}

function chkComillasDobles(campo){
  var comillasReg = "\.*\"\.*";
  var regex = new RegExp(comillasReg);
  	if (regex.test(campo.value)) {
   		alert("No se permite usar comillas en los campos de formulario.");
		   campo.focus();
		   campo.blur();
		   campo.select();
		   return false;
	  }else{
		   return true;
	  }
}


//Campo no tiene valor = "nada"
function chkNada(campo){
	if (campo.options[campo.options.selectedIndex].value == "nada"){
		 alert("Debe seleccionar un valor en el desplegable.");
		 campo.focus();
		 return false;
	}else{
		 return true;
	}
}

//Longitud del campo no sobrepasa limite
function chkNumChars(campo,limite){
	if (campo.value.length > limite) {
		alert("Este valor no admite mas de " + limite + " caracteres.");
		campo.focus();
		campo.blur();
		campo.select();
		return false;
	}else{
		return true;
	}

}

//Longitud del campo es mayor que limite
function chkMinChars(campo,limite){
	if (campo.value.length < limite) {
		alert("Este valor debe tener al menos una longitud de " + limite + " caracteres.");
		campo.focus();
		campo.blur();
		campo.select();
		return false;
	}else{
		return true;
	}

}

//Campos iguales numerico
function chkClaves(campo1,campo2){
	if (campo1.value!=campo2.value){
		alert("La confirmacion de la clave no coincide con el original");
		campo1.focus();
		campo1.blur();
		campo1.select();
		return false;
	}else{
		return true;
	}
}


//fecha2 es posterior o igual a fecha1
function fechaPosterior(campo1,campo2){
    var primero = campo1.value.indexOf("/");
    var segundo = campo1.value.indexOf("/",primero+1);
    var dia=campo1.value.substring(0,primero);
    var mes=campo1.value.substring(primero+1,segundo);
    var anio=campo1.value.substring(segundo+1,10);
    var fecha1=anio+mes+dia;
    primero = campo2.value.indexOf("/");
    segundo = campo2.value.indexOf("/",primero+1);
    dia=campo2.value.substring(0,primero);
    mes=campo2.value.substring(primero+1,segundo);
    anio=campo2.value.substring(segundo+1,10);
    fecha2=anio+mes+dia;
if (fecha2<fecha1) {
		alert("Esta fecha debe ser igual o posterior.");
		campo2.focus();
		campo2.blur();
		campo2.select();
		return false;
	}else{
		return true;
	}
}



<!-- Devuelve el maximo de dos valores -->
function max (uno, dos) {
if (uno>dos)
   return uno
else return dos
}

// CIF Correcto
// Que hay algo escrito y es un CIF valido
// Si el CIF empieza por P,Q o S, el digito de control debe ser letra, no digito
function chkCIF (campoCIF) {
	var CIF = campoCIF.value;
	var esNIF = chkNIF(campoCIF,false);
	if (esNIF)
		return true;
	// un cif debe tener 9 cifras
	// la primera indica el tipo de sociedad
	// el ultimo digito indica el digito de control
	// comprobamos la longitud del CIF
	// ademas de comprobar si el campo no esta vacio
	if (!isNaN(parseInt(CIF.substring(0,1)))) {
		alert ('NIF incorrecto o el primer digito de un CIF tiene que ser una letra');
		return false;
	}
	var letraInicial = CIF.substring(0,1).toUpperCase();
	if (chkMinChars(campoCIF,9) && chkNumChars(campoCIF,9) && chk(campoCIF)) {
	// primero comprobamos que los numeros sean validos
	var seguir = new Boolean(true);
	var esNumeroUltimoElemento = new Boolean (true);
	for (var i=1;((i<CIF.length) && (seguir));i++) 
        // comprobamos que el caracter sea un caracter
		if (isNaN(parseInt(CIF.substring(i,i+1)))) 
			seguir = false; 
			
		// comprobamos el tipo de letra inicial
		if ((letraInicial != 'P') && (letraInicial != 'Q') && (letraInicial != 'S')) 
			esNumeroUltimoElemento = !isNaN(parseInt(CIF.substring(8,9)));
			
		// si es un numero el ultimo elemento
		if (!((seguir) && (esNumeroUltimoElemento))) {
				alert ("El CIF introducido no es correcto, debe tener el formato A99999999");
				return false;
		}
			// el numero sigue siendo correcto
		else {
				// primero sumamos los digitos pares
				// se van a verificar los digitos del 2 al 8
				var sumaDigitosPares = parseInt(CIF.substring(2,3));
				sumaDigitosPares += parseInt(CIF.substring(4,5)); 
				sumaDigitosPares += parseInt(CIF.substring(6,7));
				// tratamos las posiciones impares
				var sumaDigitosImpares = 0;
				// primer digito impar
				var digitoImpar = parseInt(CIF.substring(1,2))* 2;
				// si el digitoImpar es mayor que 10 ,debemos sumar sus partes
				if (digitoImpar >= 10)
				 	sumaDigitosImpares += parseInt(String(digitoImpar).substring(0,1)) +  parseInt(String(digitoImpar).substring(1,2));	
				else
					sumaDigitosImpares += digitoImpar;
			    // segundo digito impar
				digitoImpar = parseInt(CIF.substring(3,4))* 2;
				// si el digitoImpar es mayor que 10 ,debemos sumar sus partes
				if (digitoImpar >= 10)
				 	sumaDigitosImpares += parseInt(String(digitoImpar).substring(0,1)) +  parseInt(String(digitoImpar).substring(1,2));	
				else
					sumaDigitosImpares += digitoImpar;	
				// tercer digito impar
				digitoImpar = parseInt(CIF.substring(5,6))* 2;
				// si el digitoImpar es mayor que 10 ,debemos sumar sus partes
				if (digitoImpar >= 10)
				 	sumaDigitosImpares += parseInt(String(digitoImpar).substring(0,1)) +  parseInt(String(digitoImpar).substring(1,2));	
				else
					sumaDigitosImpares += digitoImpar;
				// cuarto digito impar
				digitoImpar = parseInt(CIF.substring(7,8))* 2;
				// si el digitoImpar es mayor que 10 ,debemos sumar sus partes
				if (digitoImpar >= 10)
				 	sumaDigitosImpares += parseInt(String(digitoImpar).substring(0,1)) +  parseInt(String(digitoImpar).substring(1,2));	
				else
					sumaDigitosImpares += digitoImpar;
				
				var sumaParcial = sumaDigitosPares + sumaDigitosImpares;
				sumaParcial = sumaParcial % 10;
				sumaParcial = 10 - sumaParcial;
				if ((letraInicial == 'P') && (letraInicial == 'Q') && (letraInicial == 'S')) {
					suma = suma + 64;
					// pasamos el valor de la suma a caracter
					if ((CIF.substring(8,9).toUpperCase()) == (String.fromCharCode(sumaParcial).toUpperCase()))
						return true;
					else
						alert ("El CIF introducido no es correcto, debe tener el formato A99999999");
				}
					else if (parseInt(CIF.substring(8,9)) == (String(sumaParcial).substring(String(sumaParcial).length -1,String(sumaParcial).length)))
						return true;
					else
						alert ("El CIF introducido no es correcto, debe tener el formato A99999999");	
			}	
	}
	else 
		return false;
		
}

// NIF Correcto
// Que hay algo escrito y es un NIF valido
// Si el NIF empieza por X tambi?n vale
 function chkNIF(campo, mensaje) {
  var nifReg = "^[X]?\\d{8}\\w$";
  var regex = new RegExp(nifReg);
  	if (!regex.test(campo.value)) {
  		if (mensaje) {
   		alert("Debe introducir un NIF en formato 99999999A o X99999999A");
		   campo.focus();
		   campo.blur();
		   campo.select();
		   }
		   return false;
	  } 
 
  var letras = 'TRWAGMYFPDXBNJZSQVHLCKE';
  var dni = campo.value.substring((campo.value.indexOf('X')+1)%9, campo.value.length-1);
  var numero = dni%23;
  return letras.substring(numero,numero+1)==campo.value.substring(campo.value.length-1,campo.value.length);
 }

//-->
function onlyLettersAndNumbers( string )
	{
		chars = string.toString();
		
		for ( var i = 0; i < chars.length; i++ )
		{
			var char = chars.charAt( i );
			
			if ( ( char < "0" ) ||
			     ( char > "9" && char < "A" ) ||
			     ( char > "Z" && char < "a" ) ||
			     ( char > "z" ) )
				return false;
		}
		
		return true;
	}

//-->

