<!-- Inicio: <<funciones Generales>> : 28/09/2011 10:19:38 -->



NS=(navigator.appName=="Netscape")?true:false;
DOM=(document.getElementById)?true:false;
IE4=(document.all)? true:false;
Mozilla=(window.navigator.userAgent.indexOf("Gecko")>1)? true:false
if (NS)
{
document.captureEvents(Event.KEYUP);
document.onKeyUp=cuenta
}

//Ocultamos el boton de acceso en el click
function Bloquear_Boton(obj){
	$('#botonentrar').hide();
}

function depura()
{
	//document.entrada.aplicacion.value=document.entrada.aplicacion2.options[document.entrada.aplicacion2.selectedIndex].value;
	//SetCookie ('aplicacion',document.entrada.aplicacion2.options[document.entrada.aplicacion2.selectedIndex].value);
	//alert(document.entrada.aplicacion.value);
	if(document.form_login.eai_user.value.length==0)
	{
		alert("Debe introducir el número de usuario")
		document.form_login.eai_user.focus();
		return false;
	}
	else 
	{
		if(document.form_login.eai_password.value.length==0)
		{
			alert("Debe introducir la password")
			document.form_login.eai_password.focus();
			return false;
		} 
		else 
		{
			var dni = document.form_login.eai_user.value;
			var letra = dni.charAt(dni.length-1);
			
			if (isNaN(dni) == false)
			{
				Bloquear_Boton("botonentrar"); 
			}
			
			if(document.form_login.eai_user.value.length==7 && (isNaN(document.form_login.eai_user.value)==false))
			{//Si el usuario introduce 7 caracteres  sin letras es un usuario de netOffice
				//alert("user:" + document.form_login.eai_user.value); 
				accesoOffice();
			}	
			else //Es un usuario de Net
			{
				aceptarTarjeta();
			}
			return false;
		}
	}
}

function cuenta()
{
if (document.form_login.eai_user.value.length>15)
document.form_login.eai_password.focus();
}

function esTarjetaFacil(bin)
{
	if (bin=="404134")
	{
		return true;
	}
	else
	{
		return false;
	}
}

function accesoOffice()
{
	document.form3.eai_password.value = document.form_login.eai_password.value.toUpperCase();
	document.form3.eai_user.value = document.form_login.eai_user.value;
	//Se cambia el origen del formulario de bbvanet a bbvanetoffice
	document.form3.origen.value = "office";
//Este campo no se modifica porque no existe en el xml, se crea posteriormente
//	document.form3.eai_tipoCP.value = "up";
	document.form3.eai_URLDestino.value = "/BBVANETOFFICE/bbvanetoffice/LogonServlet?action=index&version=2&desconexion=1" + "&" + document.form3.eai_url_params.value;
	
	document.form3.action="https://office.bbva.es/DFAUTH/slod/DFServlet"
	
		
	//Se añade el campo input "eai_tipoCP", ya que el acceso a la NET no funciona si se pasa ese campo en blanco
//Y el acceso a office no funciona si no se pasa relleno
//alert("Inicio añadir campo");
contenedor=document.createElement('input');
contenedor.id="eai_tipoCP";
contenedor.type="hidden";
contenedor.value="up";
contenedor.name="eai_tipoCP";
document.form3.appendChild(contenedor);
//alert("campo añadido");
	
		
	//Bloquear_Boton("botonentrar"); 
	document.form3.submit();
	
	registrarAccesoTransacionalIdioma("Login Entrar-OFFICE",this);
	
}

function aceptarTarjeta()
{
	document.form3.eai_password.value = document.form_login.eai_password.value.toUpperCase();
	document.form3.eai_user.value = document.form_login.eai_user.value;
numtarjeta = document.form3.eai_user.value;
//alert("Paso a mayusculas: "  + numtarjeta);

var bin = numtarjeta.substring(0,6);

//alert("los 6 primeros caracteres" + bin);

var dni = document.form3.eai_user.value;
var letra = dni.charAt(dni.length-1);
var primer_caracter = dni.charAt(0);
var numero = dni.substring(0,dni.length-1);
var numeroNie = dni.substring(1,dni.length-1);
if (isNaN(dni) == true) //Si todo son números, es decir la variable es un número se trata de una tarjeta va al else
{			//si tiene almenos una letra, será un dni o un pasaporte
	if ((isNaN(letra) == true) && (isNaN(numero)==false)) //Si el último valor es una letra, y el resto es
	{							//numero, se trata del dni
		var op = validaNif(dni);
		if (isNaN(op) == false)
		{
			if(op == 1)
			{
				var numNums = numero.length;
				for (var i=numNums; i<9;i++)
				{
					numero = "0" + numero;
				}
				var dniFinal ="0019-" + numero + letra.toUpperCase();
				document.form3.eai_user.value = dniFinal;
				Bloquear_Boton("botonentrar"); 
				document.form3.submit();
			}
			else
			{
				alert("Formato DNI no válido");
			}
		}
		else
		{
			alert(op);
			return false;
			
		}
	}
	else if (isNaN(letra) && isNaN (primer_caracter)) //Es un NIE
	{
		var op = validarNie(dni)
		if (!isNaN(op))
		{
			if(op == 1)
			{
				var numNums = numeroNie.length;
				/*for (var i=numNums; i<8;i++)
				{
					numero = "0" + numero;
				}*/
				var dniFinal ="0019-" + dni.toUpperCase();
				
				document.form3.eai_user.value = dniFinal;
				Bloquear_Boton("botonentrar"); 
				document.form3.submit();
			}
			else
			{
				alert("Formato NIE no válido");
			}
		}
		else
		{
			alert(op);
		}
		
	}
	else //Es un pasaporte
	{
		var dniFinal ="0019-" + dni.toUpperCase();
		document.form3.eai_user.value = dniFinal;
		Bloquear_Boton("botonentrar"); 
		document.form3.submit();
		
	}			
}
else
{	
	if (document.form3.eai_user.value.length == 9)
	{
		//alert("Entro en el if");
		
		var tarj = "404134" + numtarjeta;
		var par = 0;
		var impar = 0;
		var totalPar = 0;
		var totalImpar = 0;
		var totalUnaCifra = 0;
		var total = 0;
		var suma = 0;
		var cifra = 0;
		var tarjFinal = "";
		for(i=0;i<tarj.length;i++)
		{
			if(i % 2 != 0)
			{
				par=tarj.charAt(i);
				totalPar = (par*1)+(totalPar*1);
			}
			else
			{
				impar = tarj.charAt(i) * 2;
				if(impar > 9)
				{
					cadena=impar+""; 
					suma = (cadena.substring(0,1)*1) + (cadena.substring(cadena.length-1)*1);
					totalImpar = totalImpar + suma;
				}
				else
				{
					totalUnaCifra = (totalUnaCifra*1) + (impar*1);
				}
			}
		}
		total = totalPar + totalImpar + totalUnaCifra;
		sumatotal= total+"";
		if ((sumatotal.substring(sumatotal.length-1)*1) == 0)
		{
			cifra = 0;
		}
		else
		{
			cifra = (10*1) - (sumatotal.substring(sumatotal.length-1)*1);
		}
		document.form3.eai_user.value = tarj + "" + cifra;	
	}
	else
	{
		document.form3.eai_user.value = document.form3.eai_user.value;
	}
	//alert("Devuelvo: " + tarj + "" + cifr);
	document.form3.submit();
}
//alert("llamada a la función:registrarAccesoTransacionalIdioma ");	
registrarAccesoTransacionalIdioma("Login Entrar-NET",this);
}


function convertirPassAMayusculas()
{
	document.form_login.eai_password.value = document.form_login.eai_password.value.toUpperCase();
	//una vez que cambia la password actualizamos tb eai_user con lo que hay en eai_user
}

function trackSelect2(){
	
	
	depura();
}

function validaNif(minif){
  var longMax = 10;
  var cerosquefaltan = 0;
  var ceros = "";
  var convertir_nif = true;
  var hayLetra = true;
  var valido = 0;
  var mensajeNif = "";

  if (minif.length == 0)
    return; 

  if (minif.charAt(minif.length-1)< "0" || minif.charAt(minif.length-1)> "9"){
    cerosquefaltan=longMax-minif.length;
    for(var i = 1; i<=cerosquefaltan;i++) {
      ceros = ceros + "0";
    }
  }

  minif = ceros + minif;
  
  var nrodni    = minif.substring(0,longMax-1);
  var letradni  = minif.substring(longMax-1,longMax).toUpperCase();
  var cociente23        = 0;

  // comprueba que el nif sea numerico
  for (var i=0; i< nrodni.length; i++){
    var ch = nrodni.substring(i,i+1);
    if (ch < "0" || ch > "9"){
      convertir_nif = false;
	}  
  }

  if (letradni.length == 0 || letradni == null){
    //alert( "Por favor, escriba la letra del NIF" );
    mensajeNif = "Por favor, escriba la letra del NIF";
    hayLetra = false;
    //obj.focus();
    return mensajeNif;
  }

  if (convertir_nif && hayLetra){
    cociente23  = nrodni % 23;
    if (((cociente23==0) && (letradni=="T")) ||
        ((cociente23==1) && (letradni=="R")) ||
        ((cociente23==2) && (letradni=="W")) ||
        ((cociente23==3) && (letradni=="A")) ||
        ((cociente23==4) && (letradni=="G")) ||
        ((cociente23==5) && (letradni=="M")) ||
        ((cociente23==6) && (letradni=="Y")) ||
        ((cociente23==7) && (letradni=="F")) ||
        ((cociente23==8) && (letradni=="P")) ||
        ((cociente23==9) && (letradni=="D")) ||
        ((cociente23==10) && (letradni=="X")) ||
        ((cociente23==11) && (letradni=="B")) ||
        ((cociente23==12) && (letradni=="N")) ||
        ((cociente23==13) && (letradni=="J")) ||
        ((cociente23==14) && (letradni=="Z")) ||
        ((cociente23==15) && (letradni=="S")) ||
        ((cociente23==16) && (letradni=="Q")) ||
        ((cociente23==17) && (letradni=="V")) ||
        ((cociente23==18) && (letradni=="H")) ||
        ((cociente23==19) && (letradni=="L")) ||
        ((cociente23==20) && (letradni=="C")) ||
        ((cociente23==21) && (letradni=="K")) ||
        ((cociente23==22) && (letradni=="E"))){
      valido=1
      return valido;
    }else{
      //alert( "La letra del NIF es incorrecta" );
      mensajeNif+= "La letra del NIF es incorrecta";
      //obj.focus();
      return mensajeNif;
    }
  } else 
  if (!convertir_nif) {
    //alert("El NIF debe ser numérico");
    mensajeNif+= "El NIF debe ser numérico";
    //obj.value="";
    //obj.focus();
  }
   return mensajeNif;
}   // Fin de validaNif

function validarNie(numDoc)
{
	var cadena = "XJLKMYZR";
	var primeraLet = numDoc.charAt(0);
	var dni = numDoc.substring(1,numDoc.length-1);
	var let = numDoc.charAt(numDoc.length-1);
	var valido = 0;
	var mensajeNie = "";
	            
	if (cadena.indexOf(primeraLet.toUpperCase()) == -1)
	{
	  //Primera Letra de la Tarjeta Incorrecta
	   mensajeNie = "La letra del NIE es incorrecta";
	}
	else if (!isNaN(let))
	{
	  //Falta la letra
	  mensajeNie = "Por favor, escriba la letra del NIE";
	}else
	{
	  if(primeraLet.toUpperCase() == "Y")
	  {
	    dni = parseFloat(dni) + 10000000;
	  }    
	  if(primeraLet.toUpperCase() == "Z")
	  {
	    dni = parseFloat(dni) + 20000000;
	  }
	  
	  cadena = "TRWAGMYFPDXBNJZSQVHLCKET";
	  posicion = dni % 23;
	  letra = cadena.substring(posicion,posicion+1);
	  
	  if (letra!=let.toUpperCase())
	  {
	    //Tarjeta no válido
	    mensajeNie = "La letra del NIE es incorrecta";
	  }
	  else
	  {
	  	valido = 1;
	  	return valido;
	  }
	 }
return mensajeNie;
}
function enviarForm(e){
	if (e.keyCode == 13)
	{
		trackSelect2();
	}
}

function cambiarDisplay(tooltip, valor1, valor2)
{
     var element;
     var valorElem;

     element=document.getElementById(tooltip);
     valorElem=element.style.display;

      //Si el valor de display es igual a valor1 o si no está definido le hacemos que valga valor2
      if (valorElem=="" || valorElem==valor1)
     {
              element.style.display = valor2;
     }
     else //Si el valor de display es valor1 le hacemos que valga valor2 
     {
            if (valorElem==valor2)
            {
                  element.style.display = valor1;
            }
     }

//Si el valor de display es cualquier otro no se hace nada

}

function mostrar_ocultar_bocadillo()
{
     cambiarDisplay("tooltip", "none", "block");
     cambiarDisplay("tooltip2", "none", "block");
}

function focusUsuario(){

          document.form_login.eai_user.focus();
}



<!-- Fin: <<funcionesGenerales.js>> : 28/09/2011 10:19:39-->
