

function ComprobarTexto(cadena){
//verifica si contiene < y > ó ' ó todas las anteriores
var v1 = "<";
//var v2 = ">";
var v3 = "'";
var v4 = "&#34";
var v5 = "&#60!--";

if (cadena == ""){
alert("No debe quedar ningún campo vacío. Revise el formulario. Gracias.");
return false;
}

if (cadena.search("€") != -1)
 { alert("No se permite el caracter: €");
   return false;
 }

//if (( cadena.search(v1) != -1 ) ||( cadena.search(v2) != -1 ) ||
if (( cadena.search(v1) != -1 ) ||( cadena.search(v3) != -1 )||( cadena.search(v4) != -1 )||( cadena.search(v5) != -1 )){
	alert("No se permiten los siguientes caracteres: <, >, ' o <!--");
	return false;
}else{
	return true;
	}
}

function Comprobarbiblioteca(cadena){
//verifica si contiene < y > ó ' ó todas las anteriores
var v1 = "<";
var v2 = ">";
var v3 = "'";
var v4 = "&#34";
var v5 = "&#60!--";


//if ((( cadena.search(v1) != -1 ) && ( cadena.search(v2) != -1 )) ||
if (( cadena.search(v1) != -1 ) ||( cadena.search(v3) != -1 )||( cadena.search(v4) != -1 )||( cadena.search(v5) != -1 )){

	alert("No se permiten los siguientes caracteres: <, >, ' o <!--");
	return false;
	}
	else
	{
	return true;
	}
}


function Compruebanum(valor)
{
	var ch;
	
	if (valor == "") {
			alert("debe introducir un valor numerico");
			return false;
	    } //si el usuario lo ha dejado en blanco
	if (isNaN(valor)) 
	{
		alert("El valor introducido debe ser un número");
		return false;
	}
	return true;
}

function CompruebaFecha(valor)
{ //formato aceptado: dd/mm/aa
	if (valor == "") 
	{
			alert("debe introducir un valor en el campo fecha, use: DD/MM/AA (ej: 01/10/00)");
			return false;
	    }
	if ((valor.charAt(0)>"3")  || (valor.charAt(0)<"0") ||
	    (valor.charAt(1)>"9")  || (valor.charAt(1)<"0") ||
	    (valor.charAt(2)!="/") ||
	    (valor.charAt(3)>"1")  || (valor.charAt(3)<"0") ||
	    (valor.charAt(4)>"9")  || (valor.charAt(4)<"0") ||
	    (valor.charAt(5)!="/") ||
	    (valor.charAt(6)>"9")  || (valor.charAt(6)<"0") ||
	    (valor.charAt(7)>"9")  || (valor.charAt(7)<"0") ||
	    (parseInt(valor.substring(0,2),10)>31) ||
	    (parseInt(valor.substring(3,5),10)>12))
	    {
			alert("El formato de la fecha no es válido, use: DD/MM/AA (ej: 01/10/00)");
			return false;
	    }
	else {
		var mes=parseInt(valor.substring(3,5),10);
		if(mes==4||mes==6||mes==9||mes==11){
			if(parseInt(valor.substring(0,2),10)>30){
				alert("El formato de la fecha no es válido, use: DD/MM/AA (ej: 01/10/00)");
				return false;
			}else{return true;}
		}else{
			if(mes==2){
				var anno=parseInt(valor.substring(6,8),10);
				if((anno%4)==0) {
					if(parseInt(valor.substring(0,2),10)>29){
						alert("El formato de la fecha no es válido, use: DD/MM/AA (ej: 01/10/00)");
						return false;
					}else{return true;}
				}else{
					if(parseInt(valor.substring(0,2),10)>28){
						alert("El formato de la fecha no es válido, use: DD/MM/AA (ej: 01/10/00)");
						return false;
					}else{return true;}
				}
			}else{return true;}
		}
	}
}

function ComprobarUrl(cadena){

//verifica si contiene el encabezado http en las direcciones web introducidas

//var v1 = "http:";

	if (cadena.search("http:")!=0 ) {
		alert("Debe cumplimentar la dirección web con el formato: http://direccionweb");
		return false;
	}else{
		return true;
		}
	}



	function Search(cad, valor)
     { // Devuelve la posición (entre 0 y la long - 1) donde valor
       //   se encuentra en cad.
       //   Ejemplo: Search ("HOLA", "O") ==> 1
       //            Search ("HOLA", "J") ==> -1
       var i;
      
       for (i=0; i<cad.length; i++)
           {
             if (cad.charAt(i)==valor)
                 return i;
           }
       
       return -1;
     }
     
	 function ComprobarEmail(cadena){
		//verifica si contiene @ y .
		var v1 = "@";
		var v2 = ".";
			//alert("la cadena es:" + cadena);
			//alert("la funcion cadena.search(v1) devuelve:"+ cadena.search(v1));
			if (( Search(cadena,v2) == -1 )){
				alert("El campo en el que se indica el E-mail no es correcto");
				return false;
			}
			if (Search(cadena,v1) == -1){
				alert("El campo en el que se indica el E-mail no es correcto");
				return false;
			}
			return true;
		}
		
		
	   function pasarEntero(cad){
			//Esta función pasa una cadena a número entero, teniendo en cuenta si es negativo
	   var num, i, signo ;
			num = new String();
			num = cad;
			    
			while(num.length > 0 && num.charAt(0) == ' ')
				num = num.substr(1,num.length-1);
			//Ya tenemos el número, pero comprobamos que es un nùmero de verdad
			
			if (num=="")
			    return "NaN";
			    
		
			signo = '';
			if (num.charAt(0) == '-'){
				signo = '-';
				num = num.substr(1,num.length -1); 
			}
			else if (num.charAt(0) == '+'){
				signo = '+';
				num = num.substr(1,num.length -1); 
			}
			else {
				signo = '';
			}
			//Quito los espacios que haya entre el signo y la primera cifra
			while(num.length > 0 && num.charAt(0) == ' ')
				num = num.substr(1,num.length-1);
			if (isNaN(num))
				return "NaN";
			// si el número es de la forma .999 devuelvo 0
			if (num.charAt(0) == '.')
				return 0;
			
			//Ahora quitaremos los ceros que haya a la izquierda
			while(num.length > 1 && num.charAt(0) == '0' && num.charAt(1) != '.')
				num = num.substr(1,num.length-1);
							
			posComa = Search(num,'.');
			if (posComa == -1)
				num = signo + num;
			else
				num = signo + num.substr(0,posComa);
			return parseInt(num);
	   }
	   
	   	
	   function ReplaceTodo (cad, viejo, nuevo){
	     // cad : string
         // viejo : char
         // nuevo : char
           
        var res;        
        var primercaracter;
        var i
        
         if (cad.length==0)
              return cad;
          
         primercaracter=cad.charAt(0);
//         alert('REPLACE ALL (' + cad + ',<' + viejo + '>,<' + nuevo+'>)')
         
         fin=0;
         res='';

         
          for (i=0; i<cad.length; i++)
            {
              primercaracter=cad.charAt(i);
              if (primercaracter==viejo)
                  primercaracter=nuevo;
              
              res=res+primercaracter;
              
            }
         return res;
        
      }

    

    function NumeroRepeticiones(cad, caracter)
      {
        var i;
        var res;
        
        res=0;
        
        for (i=0;i<cad.length;i++)
            if (cad.charAt(i)==caracter)
                 res++;
        
        return res;
        
      }

    function calcularedondeo(num)
     { // Redondea el num a lo siguiente: (num se supone son decimales)
        //   3123 ==> 3
        //   35   ==> 4
        //   345  ==> 4
        //   349  ==> 4
        //   343  ==> 3
       var i;
       var anterior;
       var siguiente;       
       
       if (num.length<1)
           return 0;
       
       if (num.length==1)
            return num;       
       
       siguiente=num.charAt(num.length-2);
       
//       alert("ANTES DEL BUCLE:" + siguiente);
       
       for (i=num.length-2; i>=0; i--)
          {             
          
             if (siguiente>4)                 
                  anterior=parseInt(num.charAt(i))+1;
             else
                  anterior=num.charAt(i);
             
             siguiente=anterior; 
//             alert("->" + siguiente);
                 
          }
        
        return siguiente;
        
     }

    function FormatearAEuros(cad)
     { // cad = 999.99  o  999,99 (el punto o la coma indica los decimales)
       var poscoma;  
       var i;
       var a;  // parte entera
       var b;  // parte decimal (primeros dos decimales)
       var c;  // parte decimal (a partir del tercer decimal)
       var NumB;
       var NumA;         
                  
         cad=ReplaceTodo(cad, ',', '.');
         
         if (NumeroRepeticiones(cad, '.')>1)
             {
             alert('Introduzca un precio. El precio debe ser un número mayor que cero.');
             return 0;             
             }
         
         if (cad.length>0 && cad.charAt(cad.length-1)=='.')
             cad=cad.substr(0, cad.length-1);
         
         if (isNaN(cad))
          { //alert(cad);
            alert('El precio debe ser un número mayor que cero.');
            return 0;
          }
         
         if (parseFloat(cad) <= 0){
			alert('El precio debe ser un número mayor que cero.');
			return 0;
         }
         
         cad=ReplaceTodo(cad, '.', ',');
         
         if (cad.length==0)
           {
             alert('Introduzca un precio. El precio debe ser un número mayor que cero.');
             return 0;
           }

      // Quitar los 0 de la izquierdas (0's irrelevantes)
                  
	     while( cad.length > 1 && cad.charAt(0)  == '0' && cad.charAt(1)  != ',')
			   cad = cad.substr(1,cad.length-1);			
		                              
          poscoma=Search(cad,',');

          
          if (poscoma==-1) // Si no tiene comas, lo dejo tal como está
              return cad+',00';
          
          if (cad.length==poscoma) // la coma está al final
              return cad + '00';
          
          
          if (cad.length-poscoma==2) 
              return cad + '0';

          if (cad.length-poscoma==3) 
              return cad;          

		  if (cad.length-poscoma>3)
		      {  // Se redondea
		         //   5,34499 ==> 5,35
				 a = cad.substr(0,poscoma);
				 b = cad.substr(poscoma+1,2);
				 c = cad.substring(poscoma+3, cad.length);
				 
				 //alert('cad='+cad+' | a='+a+'| b='+b+'|c='+c);
		        i=calcularedondeo(c);
		        
		        if (i>=5)
		           {
		           NumB = pasarEntero(b)+1;
		           b=NumB;
		           alert('NumB :' + NumB);
		            if (b.length==1)
		                b='0'+b;
		           } 
		        
		        if (NumB>=100)
		            {
		              NumB=0;
		              b='00';
		              NumA=pasarEntero(a)+1;
		              }
		        else
					NumA=a;


				a=NumA;		        
		        return a + ',' + b;
		      }
     }


    function CalcularLetraDNI(Dni)
     {
     var Resto
     var Letra
	  var i
	  var c
            
       for (i=0; i< Dni.length; i++)
          { c = Dni.substring(i,i+1)
            if (c<'0' || c>'9')
               return ""
          }
       
//       alert(Dni.indexOf("a"))
//       alert(Dni.substring(2,4))
//       alert(Dni.charAt(0))
      
       if (Dni.length == 8)       
        {
         Resto = (Dni % 23)+1
		 if (Resto==1)
			 Letra = "T"
         else if (Resto==2)
             Letra="R"
         else if (Resto==3)
             Letra="W"
         else if (Resto==4)
             Letra="A"
         else if (Resto==5)
             Letra="G"
         else if (Resto==6)
             Letra="M"
         else if (Resto==7)
             Letra="Y"
         else if (Resto==8)
             Letra="F"
         else if (Resto==9)
             Letra="P"
         else if (Resto==10)
             Letra="D"
         else if (Resto==11)
             Letra="X"
         else if (Resto==12)
             Letra="B"
         else if (Resto==13)
             Letra="N"
         else if (Resto==14)
             Letra="J"
         else if (Resto==15)
             Letra="Z"
         else if (Resto==16)
             Letra="S"
         else if (Resto==17)
             Letra="Q"
         else if (Resto==18)
             Letra="V"
         else if (Resto==19)
             Letra="H"
         else if (Resto==20)
             Letra="L"
         else if (Resto==21)
             Letra="C"
         else if (Resto==22)
             Letra="K"
         else if (Resto==23)
             Letra="E"
         else if (Resto==24)
             Letra="O"
            		
// Right(Left("TRWAGMYFPDXBNJZSQVHLCKEO", ((DNI Mod 23) + 1)), 1)

         return (Dni + Letra)
          
        }
      else
         return ""
     }

function urlCheck (urlStr)
{ var protocolo = "http[s]?://"
  var nombre = "[0123456789abcdefghijklmnopqrstuvwxyz_-]+"
  var maquina = "("+nombre+")(\\."+nombre+")*"
  var directorio = "(/"+nombre+")*"
  var archivo = "(/" + nombre + ")?"

  //var reg = /^http[s]?://\w[\.\w]+$/i
  //var reg = new RegExp("^http[s]?://\w[\.\w]+$", "i");
  // --> var reg = new RegExp("^http[s]?://[0-9,a-z]+(\.[0-9,a-z]+)+$", "i");
  // ---->var reg = new RegExp("^http[s]?://[0-9a-z]+(\.[0-9a-z]+)+(/[0-9a-z]+)*/?$", "i");
  //var reg = new RegExp("^http[s]?://\w+(\.\w)+(/(\w)+)*/?$", "i");
  var reg = new RegExp("^" + protocolo + maquina + directorio + archivo + "$","i");
//    var reg = new RegExp("^\.$", "i");
	
//   alert(reg.test(urlStr));
  
    if (urlStr.search(reg)){
	  alert("La url parece incorrecta")
	  return false	
    }
  
  return true;
}

function emailCheck (emailStr, mostrarerror) {
	/* Verificar si el email tiene el formato user@dominio. */
	var emailPat=/^(.+)@(.+)$/ 
	
	/* Verificar la existencia de caracteres. ( ) < > @ , ; : \ " . [ ] */
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]" 
	
	/* Verifica los caracteres que son válidos en una dirección de email */
	var validChars="\[^\\s" + specialChars + "\]" 
	
	var quotedUser="(\"[^\"]*\")" 
	
	/* Verifica si la dirección de email está representada con una dirección IP Válida */ 
	
	
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	
	
	/* Verificar caracteres inválidos */ 
	
	var atom=validChars + '+'
	var word="(" + atom + "|" + quotedUser + ")"
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
	/*domain, as opposed to ipDomainPat, shown above. */
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
	
	if(!CadenaValida(emailStr, true))
	  {
	   if (mostrarerror)
	       alert("No introduzca comillas simples ni dobles en la dirección de Email.");
	   return false;
	  }
	
	
	var matchArray=emailStr.match(emailPat)
	if (matchArray==null) {
	  if (mostrarerror)
	    alert("La dirección de Email parece incorrecta (comprueba @ y .'s)")
	  return false
	}
	var user=matchArray[1]
	var domain=matchArray[2]
	
	// Si el user "user" es valido 
	if (user.match(userPat)==null) {
	// Si no
	  if (mostrarerror)
	     alert("El nombre de usuario del Email no es válido.")
	  return false
	}
	
	/* Si la dirección IP es válida */
	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) {
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
			   if (mostrarerror)
			      alert("IP de destino inválida")
			return false
			}
		}
		return true
	}
	
	var domainArray=domain.match(domainPat)
		if (domainArray==null) {
		alert("El dominio parece no ser válido.")
		return false
	}
	
	var atomPat=new RegExp(atom,"g")
	var domArr=domain.match(atomPat)
	var len=domArr.length
	
	if (domArr[domArr.length-1].length<2 || 
		domArr[domArr.length-1].length>3) { 
		
		alert("La dirección debe tener 3 letras si es .com o 2 si es de algún pais.")
		return false
	}
	
	if (len<2) {
		var errStr="La dirección es erronea"
		alert(errStr)
		return false
	}
	
	// La dirección de email ingresada es Válida
	return true;
}


function CadenaValida (Cadena, PermiteAcentos)
 {
   Cadena = Cadena.toUpperCase()

   if (Cadena.indexOf("€")>=0)
       return false;
 
   if (Cadena.indexOf("'")>=0)
       return false;
   
   if (Cadena.indexOf('"')>=0)
       return false;
   
   if (!PermiteAcentos) {
   	
      if (Cadena.indexOf("Á")>=0)
          return false;
          
      if (Cadena.indexOf("É")>=0)
          return false;

      if (Cadena.indexOf("Í")>=0)
          return false;

      if (Cadena.indexOf("Ó")>=0)
          return false;
          
      if (Cadena.indexOf("Ú")>=0)
          return false;

      if (Cadena.indexOf("À")>=0)
          return false;
          
      if (Cadena.indexOf("È")>=0)
          return false;

      if (Cadena.indexOf("Ì")>=0)
          return false;

      if (Cadena.indexOf("Ò")>=0)
          return false;
          
      if (Cadena.indexOf("Ù")>=0)
          return false;

      if (Cadena.indexOf("Ä")>=0)
          return false;
          
      if (Cadena.indexOf("Ë")>=0)
          return false;

      if (Cadena.indexOf("Ï")>=0)
          return false;

      if (Cadena.indexOf("Ö")>=0)
          return false;
          
      if (Cadena.indexOf("Ü")>=0)
          return false;
          
      if (Cadena.indexOf("Â")>=0)
          return false;
          
      if (Cadena.indexOf("Ê")>=0)
          return false;

      if (Cadena.indexOf("Î")>=0)
          return false;

      if (Cadena.indexOf("Ô")>=0)
          return false;
          
      if (Cadena.indexOf("Û")>=0)
          return false;
      }    
//	  if (Cadena.indexOf("ñ")>=0)
//		  return false;
//
//	  if (Cadena.indexOf("Ñ")>=0)
//		  return false;          
            
   return true;
   
 }

function DNIValido(Dni)
 {
  var i
  var c

 if (Dni.length != 8)
     return false;
              
  for (i=0; i< Dni.length; i++)
       { c = Dni.substring(i,i+1)
         if (c<'0' || c>'9')
            return false;
       }
  return true;
  
 }
    

function EsDia (Fecha)
 {
 //el formato de fecha debe ser DD/MM/YYYY  o DD/MM/YY
   var longitud
  var Mes 
  var Dia 
  var Anno 
  var Correcta

  Correcta=false

   longitud = Fecha.length

   if (Fecha.indexOf("-") >= 0 ||
       Fecha.indexOf("+") >= 0)
      // Contiene "-" o "+", luego la fecha no es válida
        return false
	             
    if (longitud==8)
	  Fecha = Fecha.substring(0,6) + '20' + Fecha.substring(6,8)           


   longitud =  Fecha.length
   
   if (longitud != 10)
		return false;            


    if (Fecha.charAt(2)!='/' || Fecha.charAt(5) != '/')
         return false;


    if (isNaN(Fecha.substring(0,2)))
         return false;
    

    if (isNaN(Fecha.substring(3,5)))
         return false;
         
    if (isNaN(Fecha.substring(6,10)))
	    return false;



   Dia = pasarEntero(Fecha.substring(0,2))
   Mes = pasarEntero(Fecha.substring(3,5))
   Anno = pasarEntero(Fecha.substring(6,10))

   if ((Anno<1901) || (Anno>2078))
   		return false;

   else
          if (Mes<1 || Mes>12)
	return false;

        else
           if (Dia < 1 || Dia > 31)
              return false;

        else 
           if ((Mes==1)||(Mes==3)||(Mes==5)||(Mes==7)||(Mes==8)||(Mes==10)||(Mes==12))
	  {
	    if (Dia>31)
		return false;
	  }
   else

          if ((Mes==4)||(Mes==6)||(Mes==9)||(Mes==11))
	 {
	  if (Dia>30)
		return false;
	 }
   else

     if (Mes==2)
	{ 
	if ((Anno % 4)==0)
	  {
	   if (Dia>29)
                     return false;	  
	  }
	else
	  {
	   if (Dia>28)
		{
		  return false;
		}
	  }
	}
   else
           { 
	return false;
	}


 return true;
       
}


function FechaValida (oDia, oMes, oAnno, obligatorio)
 {
	var Dia
	var Mes
	var Anno
	var cadenaDia
	var cadenaMes
	var cadenaAnno

	cadenaDia= trim(oDia.value)
	cadenaMes= trim(oMes.value)
	cadenaAnno= trim(oAnno.value)

	if ( (Search(cadenaDia,".")>=0) || (Search(cadenaDia, ",")>=0) || (Search(cadenaDia, "+")>=0) ) {
		alert("Introduzca un día válido.");
		oDia.focus();
		oDia.select();
		return false;
	}

	if ( (Search(cadenaMes,".")>=0) || (Search(cadenaMes, ",")>=0) || (Search(cadenaMes, "+")>=0) )
	{
		alert("Introduzca un mes válido.");
		oMes.focus();
		oMes.select();
		return false;
	}

	if ( (Search(cadenaAnno,".")>=0) || (Search(cadenaAnno, ",")>=0) || (Search(cadenaAnno, "+")>=0) )	{
		alert("Introduzca un año válido.");
		oAnno.focus();
		oAnno.select();
		return false;
	}
//        if (trim(oDia.value)=="" && trim(oMes.value)=="" && trim(oAnno.value=="")) 
	if (cadenaDia=="" && cadenaMes=="" && cadenaAnno=="")
	{ 
		if (obligatorio) { 
			alert("Es necesario que indique esta fecha.")
			oDia.focus();
			return false;
		}
		else
		return true;
	}
	
	if (cadenaDia.indexOf("-") >= 0 || cadenaDia.indexOf("+")>=0)
	{
		alert("No introduzca + y - en el día.")
		oDia.focus();
		oDia.select();
		return false;
	}

	if (cadenaMes.indexOf("-") >= 0 || cadenaMes.indexOf("+")>=0)
	     {
		alert("No introduzca + y - en el mes.")
		oMes.focus();
        oMes.select();
		return false;
	     }

	if (cadenaAnno.indexOf("-") >= 0 || cadenaAnno.indexOf("+")>=0)
	     {
		alert("No introduzca + y - en el año.")
		oAnno.focus();
        oAnno.select();
		return false;
	     }	   

       if (isNaN(oDia.value))
		{ alert("Introduzca un día válido.");		  
		  oDia.focus();
		  oDia.select();	   
		  return false;
		}

       if (isNaN(oMes.value))
	  { alert("Introduzca un mes válido.");
	    oMes.focus();
	    oMes.select();
        return false;
	  }
       
       if (isNaN(oAnno.value))
	  { alert("Introduzca un año válido.");
	    oAnno.focus();
	    oAnno.select();
        return false;
	  }
    


     Dia = oDia.value
     Mes = oMes.value
     Anno = oAnno.value
	
	 if (Dia<1||Dia>31) {
		 alert("Introduzca un día entre 1 y 31.")
		 oDia.focus();
		 oDia.select();
		 return false;
    }
	   else
             if (Mes<1 || Mes>12)
		{
		 alert("Introduzca un mes entre 01 y 12.")
		 oMes.focus();
		 oMes.select();
		 return false;
		}

	 else
	 
     if ((Anno<1901) || (Anno>2078))
		{
		  alert("Introduzca un año entre 1901 y 2078.")
		  oAnno.focus();
		  oAnno.select();
          return false;
		}

           else 
              if ((Mes==1)||(Mes==3)||(Mes==5)||(Mes==7)||(Mes==8)||(Mes==10)||(Mes==12))
		  {
  		    if (Dia>31)
			{
			 alert("Introduzca un día entre 1 y 31.")
			 oDia.focus();
			 oDia.select();
			 return false;
			}
		  }
	   else

             if ((Mes==4)||(Mes==6)||(Mes==9)||(Mes==11))
		 {
		  if (Dia>30)
			{
			 alert("Introduzca un día entre 1 y 30.")
			 oDia.focus();
			 oDia.select();
			 return false;
			}
 		 }
	   else

	     if (Mes==2)
		{ 
		if ((Anno % 4)==0)
		  {
		   if (Dia>29)
			{
			 alert("Introduzca un día entre 1 y 29.")
			 oDia.focus();
			 oDia.select();
			 return false;
			}

		  }
		else
		  {
		   if (Dia>28)
			{
			 alert("Introduzca un día entre 1 y 28.")
			 oDia.focus();
			 oDia.select();
			 return false;
			}
		  }
		}
	   else
			{ // Esta rama nunca debe ejecutarse
			 alert("Introduzca una fecha válida.")
			 oDia.focus();
			 oDia.select();
			 return false;
			}


       return true;
             
    }

   function comprobarFechaNumerica(Dia,Mes,Anno) 
   {	 
	 
	 if (isNaN(Dia))
		{ alert("Introduzca un día válido.");		  		
		  return false;
		}

     if (isNaN(Mes))
	  { alert("Introduzca un mes válido.");	    
        return false;
	  }
	  
	  if (isNaN(Anno))
	  { alert("Introduzca un año válido.");	    
        return false;
	  }
	 
	 if (Dia<1||Dia>31) 
	 {
		 alert("Introduzca un día entre 1 y 31.")
		 return false;
     }
	 else if (Mes<1 || Mes>12)
	 {
		 alert("Introduzca un mes entre 01 y 12.")
		 return false;
	 }
	 else if (Anno<1901 || Anno>2078)
	 {
		  alert("Introduzca un año entre 1901 y 2078.")
		  return false;
	 }
     else if ((Mes==1)||(Mes==3)||(Mes==5)||(Mes==7)||(Mes==8)||(Mes==10)||(Mes==12))
	 {
  		if (Dia>31)
		{
		    alert("Introduzca un día entre 1 y 31.")
		    return false;
		}
	 }
	 else if ((Mes==4)||(Mes==6)||(Mes==9)||(Mes==11))
	 {
	    if (Dia>30)
	    {
		    alert("Introduzca un día entre 1 y 30.")
		    return false;
		}
 	 }
	 else if (Mes==2)
	 { 
	    if ((Anno % 4)==0)
	    {
	        if (Dia>29)
	        {
			     alert("Introduzca un día entre 1 y 29.")
			     return false;
			}
		}
		else
		{
		    if (Dia>28)
		    {
				alert("Introduzca un día entre 1 y 28.")
				return false;
			}
		}
	 }

      
	 return true;
             
   }


   function trim(cad)
     {
      var res;
      var i;
      var IndiceInferior;
      var IndiceSuperior;
      
      res="";
      IndiceInferior=0;
      IndiceSuperior=0;
      
      if (cad.length==0) // cadena vacía
          return res;
      
      i=0;
      while (i<cad.length && cad.charAt(i)==" ")
         i++;
         
      IndiceInferior=i;
      
      if (i==cad.length) // cadena con solo espacios
          return res;
      
      i=cad.length-1;
      while (i>IndiceInferior && cad.charAt(i)==" ")
          i--;
      
      IndiceSuperior=i+1;

      return cad.substring(IndiceInferior, IndiceSuperior);      
     }

   function CodigoPostalValido(cp)
    { var i;
    
       if (cp.length!=5)
           return false;
       
       for (i=0; i<5; i++)
           if (cp.charAt(i)<'0' || cp.charAt(i)>'9')
               return false;

	   if (cp.substring(0,2)<1 || cp.substring(0,2)>52)
	      return false;
	           
       return true;
    }
  
   function TelefonoValido(tel)
     { var i;
     
       if (tel.length<9)
           return false;
           
       if ((tel.charAt(0)<'0' || tel.charAt(0)>'9') && (tel.charAt(0) != '+'))
			return false;
       
       for (i=1; i<tel.length; i++)
           if (tel.charAt(i)<'0' || tel.charAt(i)>'9') 
               return false;
       
       return true;
     }


///////////// FORMATEA A DECIMAL CON N DECIMALES ///////////////////////

    function CaracterRepetido(car,veces)
     {
      var res="";
      var i;
      
      for (i=0;i<veces;i++)
         res=res+car;
      
      return res;
     }

    function FormatearNDecimal(cad,numdec)
     { // cad = 999.99  o  999,99 (el punto o la coma indica los decimales)
       var poscoma;  
       var i;
       var a;  // parte entera
       var b;  // parte decimal (primeros dos decimales)
       var c;  // parte decimal (a partir del tercer decimal)
       var NumB;
       var NumA;
       var signo;
       
         if(cad.charAt(0)=='-')
             { signo='-';
               cad=cad.substr(1,cad.length-1);
             }
         else
             signo='';

         cad=ReplaceTodo(cad, ',', '.');
         
         if (NumeroRepeticiones(cad, '.')>1)
             {
             return NaN;
             }
         
         if (cad.length>0 && cad.charAt(cad.length-1)=='.')
             cad=cad.substr(0, cad.length-1);
         
         if (isNaN(cad))
          { 
            return NaN;
          }

         cad=ReplaceTodo(cad, '.', ',');

         if (cad.length==0)
           {
             return NaN;
           }

      // Quitar los 0 de la izquierdas (0's irrelevantes)

	     while( cad.length > 1 && cad.charAt(0)  == '0' && cad.charAt(1)  != ',')
			   cad = cad.substr(1,cad.length-1);			

          poscoma=Search(cad,',');

          if (numdec<1) // Si no pide decimales, se redondea
            {
              if (poscoma==-1) // No hay comas
                      return signo+cad;                
              else
                {
				 a = cad.substr(0,poscoma);
				 b = cad.substr(poscoma+1,cad.length);
		         i=calcularedondeo(b);
                 if (i>=5)
                   {
                    a=pasarEntero(a)+1;
                   }
                 return signo+a;
                }
            }
		  
          if (poscoma==-1) // Si no tiene comas, lo dejo tal como está
              return signo+cad+','+CaracterRepetido('0',numdec);

          if (cad.length-poscoma-1<=numdec)
            { // Si tiene entre 1 y numdec decimales
              return signo+cad+CaracterRepetido('0',numdec-cad.length+poscoma+1);
            }
          
		  if (cad.length-poscoma>numdec+1)
		      {  // Se redondea
		         //   5,34499 ==> 5,35
				 a = cad.substr(0,poscoma);
				 b = cad.substr(poscoma+1,numdec);
				 c = cad.substring(poscoma+numdec+1, cad.length);

		        i=calcularedondeo(c);

		        if (i>=5)
		           {
		           NumB = pasarEntero(b)+1;
		           b=NumB.toString(); // pasamos a cadena
		           b=CaracterRepetido('0',numdec-b.length)+b;
		           } 

		        if (NumB>=Math.pow(10,numdec))
		            {
		              NumB=0;
		              b=CaracterRepetido('0',numdec);
		              NumA=pasarEntero(a)+1;
		              }
		        else
					NumA=a;

				a=NumA;
		        return signo + a + ',' + b;
		      }              
     }


function ComprobarSO()
{
var i,j;
var temp = "";
var arrayObj;
	
	for (i=1; i<=6; i++)
	{
		var arrayObj = document.getElementsByName('sis_'+i);
	
		 for (j=0;j<arrayObj.length;j++) 
		 {
		
		  if (arrayObj[j].checked)
		  {
			if (temp.indexOf(arrayObj[j].value) >=0) { 
				return false;
			} else {
				temp += arrayObj[j].value+',';
		    }	
		  }
		}	
	}
	if (temp.length!=0)
	{
	 temp.substr(0,temp.length-1);
	}
			
	return true;
}

