function checkCampo(sCampo, sMensaje)
{
    ctrl = document.getElementById(sCampo);
    
    if (ctrl.value.toString()=="")
    {
        alert(sMensaje);
        ctrl.focus();
        return false;
    }
    
    return true;
}

function checkCampos(txtDocumento,ddlTipoDoc,txtNombre,txtNomContacto,txtEmail,txtTel,txtDireccion,txtCP,txtPoblacion)
{
    ctrl = document.getElementById(txtDocumento);
    if (ctrl.value.toString()=="")
    {
        alert('El campo Documento es obligatorio.');
        ctrl.focus();
        return false;
    }
    
    ctrlTipoDoc = document.getElementById(ddlTipoDoc);
    var indice = ctrlTipoDoc.selectedIndex; 
    switch(ctrlTipoDoc.options[indice].value)
    {
        case 'N':
            if (!ValidarNIF(ctrl.value.toString()))
            {
                ctrl.select();
                return false;  
            }
          break;    
        case 'C':
            if (!ValidarCIF(ctrl.value.toString()))
            {
                ctrl.select();
                return false;  
            }            
          break;
        case 'E':
            if (!ValidarNIE(ctrl.value.toString()))
            {
                ctrl.select();
                return false;  
            }             
          break;
    }    
    
    ctrl = document.getElementById(txtNombre);
    if (ctrl.value.toString()=="")
    {
        alert('El campo Nombre es obligatorio.');
        ctrl.focus();
        return false;
    } 
    ctrl = document.getElementById(txtNomContacto);
    if (ctrl.value.toString()=="")
    {
        alert('El campo Contacto es obligatorio.');
        ctrl.focus();
        return false;
    }
    ctrl = document.getElementById(txtEmail);
    if (ctrl.value.toString()=="")
    {
        alert('El campo Email es obligatorio.');
        ctrl.focus();
        return false;
    }       
    ctrl = document.getElementById(txtTel);
    if (ctrl.value.toString()=="")
    {
        alert('El campo Telefono es obligatorio.');
        ctrl.focus();
        return false;
    }
    ctrl = document.getElementById(txtDireccion);
    if (ctrl.value.toString()=="")
    {
        alert('El campo Direccion es obligatorio.');
        ctrl.focus();
        return false;
    }
    ctrl = document.getElementById(txtCP);
    if (ctrl.value.toString()=="")
    {
        alert('El campo Codigo Postal es obligatorio.');
        ctrl.focus();
        return false;
    }
    ctrl = document.getElementById(txtPoblacion);
    if (ctrl.value.toString()=="")
    {
        alert('El campo Poblacion es obligatorio.');
        ctrl.focus();
        return false;
    }                
    
    return true;
}


function abrirVentana(url,height,width)
{           
    newWin=window.open(url,'',"height=" + height + ",width=" + width + ",resizable=no");    
}

function ValidarNIF(NIF)
{
    var Letra = NIF.charAt(NIF.length-1).toUpperCase();
    if (isNaN(Letra))
    {
        var LetraCorrecta = CalcularNIF(NIF.substring(0,NIF.length-1));
        if (Letra != LetraCorrecta)
        {
            alert('El NIF es incorrecto. Verifiquelo.');
            return false;
        }
    }
    else
    {
        alert('El formato del NIF es incorrecto.');
        return false;
    }

    return true;
}

function ValidarNIE(NIE)
{
    var TarjetaResidencia = NIE.substring(1,NIE.length);
    var Letra = TarjetaResidencia.charAt(TarjetaResidencia.length-1).toUpperCase();
    
    if (isNaN(Letra))
    {
        var LetraCorrecta = CalcularNIF(TarjetaResidencia.substring(0,TarjetaResidencia.length-1));
        if (Letra != LetraCorrecta)
        {
            alert('El numero de la tarjeta de residencia es incorrecto. Verifiquelo.');
            return false;
        }
    }
    else
    {
        alert('El formato del numero de la tarjeta de residencia es incorrecto.');
        return false;
    }

    return true;
}

function ValidarCIF(CIF)
{
  	var Letra = CIF.charAt(0).toUpperCase();
  	var Letras = "ABCDEFGHKLMNPQS";
  	
  	if (isNaN(Letra) && !isNaN(CIF.substring(1,CIF.length)) && CIF.length == 9)
    {
	    if (Letras.indexOf(Letra) == -1) //No es una letra de las que tngo seleccionadas
	    {
            alert("El CIF es incorrecto. Verifiquelo.");
		    return false;
	    }
	    else
	    {
	        var Control = CalcularCIF(CIF);
	        if (Control != CIF.charAt(8))
	        {
		        alert("El CIF es incorrecto. Verifiquelo.");
                return false;
	        }	        
	    }
  	}
  	else
  	{
		alert("El formato del CIF es incorrecto");
        return false;  	
  	}
  	
	return true;
}

function CalcularCIF(CIF)
{
  var suma=0, dc,j;

  suma = parseInt(CIF.substring(2,3))+parseInt(CIF.substring(4,5))+parseInt(CIF.substring(6,7));
  for(j=0;j<4;j++)
  {
      p = 2*parseInt(CIF.substring(2*j+1,2*j+2));
      suma+= parseInt((p/10)) + (p %10);
  }
  dc = suma % 10;
  dc = (dc==0) ? 0 : 10 - dc;
  if ('PQ'.indexOf(CIF.charAt(0))!=-1) return String.fromCharCode(64+dc);
  return dc;
}

function CalcularNIF(DNI)
{
  var Lista_Letras_NIF = 'TRWAGMYFPDXBNJZSQVHLCKET'; 
  return Lista_Letras_NIF.charAt((DNI-0)%23)
}

