<!--
//Funcion que limpia el formulario. Vale para campos select, text, textarea y password.
function limpiarFormulario() {
  document.formulario.reset();
}

//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 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 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;

}

//Hora en formato correcto
function chkHora(campo){

var plantilla = new RegExp(/^\d+\:\d+$/gi);
var dospuntos = campo.value.indexOf(":");
if ((dospuntos > -1)) {
    var hora=parseInt(campo.value.substring(0,dospuntos));
    var min=parseInt(campo.value.substring(dospuntos+1,campo.value.length));
    }
 else if (!isNaN(campo.value)) {
    var temp=campo.value+":00";
    campo.value=temp;
    dospuntos = campo.value.indexOf(":");
    var hora=parseInt(campo.value.substring(0,dospuntos));
    var min=parseInt(campo.value.substring(dospuntos+1,campo.value.length));
 }
 else
   {alert("Debe introducir una hora completas con el formato 'hh:mm'");
    campo.focus();
    campo.blur();
    campo.select();
    return false;}

if (plantilla.test(campo.value) && horaCorrecta(hora,min))
        return true;
else
     {alert("Debe introducir una hora valida en el formato 'hh:mm'");
      campo.focus();
      campo.blur();
      campo.select();
      return false;}
}


//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;
	  }
}


//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
}

//Comprueba que alguna de las opciones de un radiobutton esta seleccionada
function comprobarRadio(botonRadio,opcion)
{
var seleccionadoAlguno = false;
// Bucle de 0 al numero de opciones "radio" menos 1
for (i=0; i<botonRadio.length; i++)
{	// Si una opcion de radio esta seleccionada devuelve true
	if (botonRadio[i].checked)
		seleccionadoAlguno = true; 
	}
if (!seleccionadoAlguno)
{
	alert("Se ha dejado "+ opcion +" sin responder.")
	return (false);
}
return (true);
}


//-->

