﻿
// Archivo JScript

//Valida que los datos introducidos sean sólo números
function validarEntero(valor)
   { 
      //intento convertir a entero. 
     //si era un entero no le afecta, si no lo era lo intenta convertir 
   
     valor = parseInt(valor) 

      //Compruebo si es un valor numérico 
      if (isNaN(valor)) 
      { 
            //entonces (no es numero) devuelvo el valor cadena vacia 
           return "";
            
      }
      else
      { 
            //En caso contrario (Si era un número) devuelvo el valor 
            return valor;
      } 
    
   }
   
   //Pasándole la longitud de una cadena, valida que ésta no sea inferior a un mínimo dado
function validarNumeros(tam,min)
{

    ok=true;
    tamanio=tam;
    if(tamanio<min)
    {
    ok=false;
    }
    return ok;
} 

 //Bloquea el teclado si se introducen caracteres q no sean números
function soloNumeros(obj,e)
 { 
    tecla=(document.all)?e.keyCode:e.which; 
    if((tecla>47 && tecla<58) || (tecla>95 && tecla<106))
      return true;
    else
      return false;
} 
 

function validarCP(CP)
{
var validacion=/^[0-9]{0,5}$/;
return validacion.test(CP);
}

function validarTelefono(telefono)
{
    var validacion=/^[0-9\s\-]{8,15}$/;
    return validacion.test(telefono);
}

function validarEMail(correo)
{
    var validacion=/^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
    return validacion.test(correo);
}

function validar_cif_nif(dni)
        {     
           
         var txtCif=dni;
         if(txtCif.length>9)
         {
         return "";
         }
         else
         {
         var res=padleft(txtCif,'0',9);
          return res;
         }
            
       }   
       
function ValidarNif(dni)
    {
    
    
     ok=true;
     var res=validar_cif_nif(dni)
     if(res.length!=0)   
      { 
        var abc=Trim(dni.toUpperCase());
        var dni=abc.substring(0,abc.length-1);   
        if(dni.length!=8)
          {
            ok=false;
            return ok;
          }
        var let=abc.charAt(abc.length-1);
        if (!isNaN(let))
          {
            ok=false;
            return ok;
      }
     
     var cadena="TRWAGMYFPDXBNJZSQVHLCKET"
     var posicion = dni % 23;
     
     var vletra = cadena.substring(posicion,posicion+1)
     
     if(let.toUpperCase()!=vletra)
    {
      ok=false;
    }  
      
    else ok=true;
    }
    return ok;
   }
   
function ValidarNIE(nie)
    {
   
     ok=true;
     var txtCif=nie;
     if(isNaN(txtCif.charAt(0)))
        {            
        //Quitamos la primera y la ultima cifra
            var scif = txtCif.substring(1,8);
            if (isNaN(scif))
                {
                    ok=false;
                    return ok;
                }            
            tipo = txtCif.substring(0,1).toUpperCase();
            if(tipo=="X")//NIE, i.e, NIf para extranjeros,
                {
                    // valor=txtCif.substring(1,9);
                    nie="0"+txtCif.substring(1,txtCif.length);
                    return ValidarNif(nie);
                }   
            if(tipo=="Y")
             {
               nie="1"+txtCif.substring(1,txtCif.length);
               return ValidarNif(nie);
             }
            else
             {
             ok=false;                    
             }                       
         }
    else
         {
          ok=false;                     
         }
    return ok;
   }
         
         
 /* Valida si el valor del argumento es un CIF/NIE válido*/
function ValidarCif(cif)
    {
        var ok=true;
        var txtCif=cif;
        if(isNaN(txtCif.charAt(0)))
            {            
            //CIF
            //Quitamos la primera y la ultima cifra
            var scif = txtCif.substring(1,8);
            if (isNaN(scif))
                {
                    ok=false;
                    return ok;
                }
                        
                tipo = txtCif.substring(0,1).toUpperCase();                      
            //Sumamos las cifras pares                       
                sumapar=parseInt(scif.charAt(1))+ parseInt(scif.charAt(3))+parseInt(scif.charAt(5));
                sumaimpar=new Array();
                j=0;
                for(i=0;i<4;i++)
                    {
                        sumaimpar[i]=parseInt(scif.charAt(j))*2;
                        if(sumaimpar[i]>=10)
                            {
                                sumaimpar[i]=parseInt(sumaimpar[i] % 10) + parseInt(sumaimpar[i] / 10);
                            }
                        //Y volvemos a sumar esos resultados a la suma anterior
                        sumapar=parseInt(sumapar)+parseInt(sumaimpar[i]);
                        j+=2;
                    }
                        //Nos quedamos con la cifra de las unidades
                digito = parseInt(sumapar % 10);
                        //Restamos esta cifra de las unidades 10, dándonos el código de control para todos los tipos de sociedades exceptuando la X y la P
                control=(digito - 10) * (-1);
                        //Para las sociedades X y P, habria que sumar un 64 al digito de control que hemos calculado para hallar el ASCII de la letra de control                       
                dc = txtCif.substring(8,9).toUpperCase();
                     
                if(tipo=="P")// P--> Corporaciones Locales(Ayuntamientos,Diputaciones, etc..)
                    {                       
                        c = 64 + parseInt(control);
                        res=String.fromCharCode(c).toUpperCase();
                    }
                else
                    {
                        res=control;
                    }
                if (dc==res)
                    {
                        ok=true;
                            //    errorProvider1.SetError(tbCif,"");
                    }
                else
                    {
                        ok=false;
                    }                          
            }
        else
            {
                ok=false;
            }
          

 }
         
   function padleft(val, ch, num) 
 {
            var re = new RegExp(".{" + num + "}$");
            var pad = "";

            do  {
                pad += ch;
            }while(pad.length < num)

            return re.exec(pad + val)[0];
  }
  
   /* Quita caracteres en blanco de una cadena*/   
    function Trim(cadena)
        {
        	for(i=0; i<cadena.length; )
	        {
		    if(cadena.charAt(i)==" ")
			    cadena=cadena.substring(i+1, cadena.length);
		    else
			    break;
	        }

	        for(i=cadena.length-1; i>=0; i=cadena.length-1)
	        {
		    if(cadena.charAt(i)==" ")
			    cadena=cadena.substring(0,i);
		    else
			    break;
	    }	
	    return cadena;
    }

function validarImagenes(imagen)
{
var validar=/^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w].*))+(.JPG|.jpg|.GIF|.gif|.PNG|.png|.JPEG|.jpeg)$/;
return validar.test(imagen);
}
/*function validarCP(CP)
{
var validacion=/^[0-9]{0,5}$/;
return validacion.test(CP);
}*/

function todook(nombre,apellidos,telef,movil,mail,DNI,direccion,numero,piso,CP,localidad,provincia,pais,mes,anio,envio,pago,gastos,compra)
{

/*string nombre,string apellidos, string telef,string movil,string mail,string DNI,string direccion,string numero,string piso,string CP,string localidad,string provincia,string pais,ArrayList cesta)*/
   PageMethods.EnviarCorreo(nombre,apellidos,telef,movil,mail,DNI,direccion,numero,piso,CP,localidad,provincia,pais,mes,anio,envio,pago,gastos,compra,OnSucceeded, OnFailed);
}

/*Con adjunto*/
function todookLogo(nombre,apellidos,telef,movil,mail,DNI,direccion,numero,piso,CP,localidad,provincia,pais,mes,anio,envio,pago,compra,logo)
{

/*string nombre,string apellidos, string telef,string movil,string mail,string DNI,string direccion,string numero,string piso,string CP,string localidad,string provincia,string pais,ArrayList cesta)*/
   PageMethods.EnviarCorreo(nombre,apellidos,telef,movil,mail,DNI,direccion,numero,piso,CP,localidad,provincia,pais,mes,anio,envio,pago,compra,logo,OnSucceeded, OnFailed);
}  


    //Formulario contactar
function CorreoContactar(nombre,mail,consulta)
{

PageMethods.EnviarContacto(nombre,mail,consulta,OnSucceeded, OnFailed);
 
};
   
   
    function OnSucceeded(result, userContext, methodName) 
 {
 window.location='confirmarCorreo.aspx';
 };
 
  // Callback function invoked on failure 
  // of the page method.
 function OnFailed(error, userContext, methodName) 
   {
         alert("Error SW controlado, imposible continuar");
   };
   
   
   
   /* Devuelve true si los DC de una cuenta son válidos*/ 
 function ValidarCuentaBancaria(banco,sucursal,dc,cuenta)
 {
  if (banco== ""  ||sucursal == "" ||
      dc == "" || cuenta == "")
      {
      return true;//porque saltaran las otras validaciones
      
      }

        if (!(obtenerDigito("00" + banco + sucursal) ==
              parseInt(dc.charAt(0))) || 
            !(obtenerDigito(cuenta) ==
              parseInt(dc.charAt(1))))
              {
          /*alert("Los dígitos de control no se corresponden con los demás"
            + " números de la cuenta");*/
                  return false;
            }
	    else
	    {
	    return true;
	    
	    }
             
}
////////////////////////////////////////////////////////////////////////////////////////////////////

/*Obtiene el dígito correspondien al valor que se le pasa como parámetro,
 se utiliza desde el método que valida la cuenta bancaria*/
function obtenerDigito(valor)
{
  valores = new Array(1, 2, 4, 8, 5, 10, 9, 7, 3, 6);
  control = 0;
  for (i=0; i<=9; i++)
    control += parseInt(valor.charAt(i)) * valores[i];
  control = 11 - (control % 11);
  if (control == 11) control = 0;
  else if (control == 10) control = 1;
  return control;
}
