

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));
  
  
  //alert(reg);
  
    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) {
	if (mostrarerror)
		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>4) { 

if (mostrarerror)
	alert("El email debe tener 4 letras si es .info, 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"
if (mostrarerror)
	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 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;
       
       for (i=0; 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;
		      }              
     }
     
 
 /******************************************************************************************************************************************************************************************************************************************************************************
 FUNCIÓN QUE ENLAZA CON EL PORTAL DE RESERVAS DE TUJUCA SEGÚN LOS PARÁMETROS ESPECIFICADOS
 ESTOS PARÁMETROS SE PASARÁN A CERO CUANDO NO SE DESEEN UTILIZAR
******************************************************************************************************************************************************************************************************************************************************************************/

function EnlazaTujuca(url,idioma,idalbergues,diainicio,mesinicio,annoinicio,diafin,mesfin,annofin,IndividualHombreMenor,IndividualMujerMenor,IndividualHombreMayor,IndividualMujerMayor,GrupoHombreMenor,GrupoMujerMenor,GrupoHombreMayor,GrupoMujerMayor,regimen)
{

     //ORIGEN = REAJ E IDIOMA (ELLOS REALIZAN LA CONVERSIÓN DE IDIOMA SEGÚN LO QUE NOSOSTROS PASAMOS)
     url = url + "?v_origen=REAJ&v_idioma=" + idioma;
     
     //ALBERGUE EN EL CUAL SE DESEA REALIZAR LA RESERVA. ELLOS REALIZAN LA CONVERSIÓIN DE IdAlbergue SEGUN 
     //LA TABLA QUE SE LES HA SUMINISTRADOS CON NUESTROS ID'S
     url = url + "&v_alberg=" + idalbergues;
     
     //DIA DE INICIO
     url = url + "&v_diaini=" + diainicio;
        
     //MES DE INICIO
     url = url + "&v_mesini=" + mesinicio;
     
     //AÑO DE INICIO   
     url = url + "&v_anyini=" + annoinicio;
          
     //DIA FIN
     url = url + "&v_diafin=" + diafin;
        
     //MES FIN   
     url = url + "&v_mesfin=" + mesfin;
       
     //AÑO FIN
     url = url + "&v_anyfin=" + annofin;
     
     //INDIVIDUALES HOMBRES <26
     url = url + "&v_indhmen=" + IndividualHombreMenor;
     
     //INDIVIDUALES MUJERES <26
     url = url + "&v_inddmen=" + IndividualMujerMenor;
     
     //INDIVIDUALES HOMBRES >26
     url = url + "&v_indhmaj=" + IndividualHombreMayor;

     //INDIVIDUALES MUJERES >26
     url = url + "&v_inddmaj=" + IndividualMujerMayor;



     //GRUPOS HOMBRES <26
     url = url + "&v_grphmen=" + GrupoHombreMenor;
     
     //GRUPOS MUJERES <26
     url = url + "&v_grpdmen=" + GrupoMujerMenor;
     
     //GRUPOS HOMBRES >26
     url = url + "&v_grphmaj="  + GrupoHombreMayor;

     //GRUPOS MUJERES >26
     url = url + "&v_grpdmaj=" + GrupoMujerMayor;

     //REGIMEN
     url = url + "&v_regim=" + regimen;
     
     
     //alert(url);
    
	 var win= window.open (url,"pantalla");
     win.focus();
   
}






