var cadena='';
var minu = "abcdefghijklmnopqrstuvwxyzáéíóúñü. ";
var may = "ABCDEFGHIJKLMNOPQRSTUVWXYZÁÉÍÓÚÑÜ. ";
var blancos = " \t\n\r";
//var dir = /^([a-z]|[A-Z]|[0-9]|á|é|í|ó|ú|ñ|ü|#|\s|\.|-)+$/ //letras, '.' y '-' o vacio y numeros
var telefonicas="0123456789()-+ ";

////////////////////////////////////////////////////////////////////////////////////////

function isTelephone(s)
{	if (isEmpty(s))
	{	return false;	}
	for(var i=0; i < s.length; i++)
	{	var c=s.charAt(i);
		var j=telefonicas.indexOf(c);
		if (telefonicas.indexOf(c) == -1)
		{	return false;	}
	}
	return true;
}

function isInteger(n)
{   var i;
    var c=' ';
    for(i=0; i < n.length; i++)
    {   c=n.charAt(i);
	if(!isDigit(c))
	    return false;
    }
    return true;
}

function Fecha(dia,mes,anio)
{   var d=parseInt(dia);
    var m=parseInt(mes);
    var a=parseInt(anio);
    var bis=false;
    var ban=true;
    if(anio=='' || anio.length != 4 || anio==null || !isInteger(anio))
    {	return false;    }
    else
    { 	var rm4=a%4;
		var rm100=a%100;
		var rm400=a%400;
		if (rm4==0)
		{   if  (rm100==0 && rm4==0)
			{   bis=true;	}
		}		
		if(m==4 || m==6 || m==9 || m==11)
		{   if (d>30)
			{	return false;	}
		}
		else
		{   if(m==2)   
			{   if(bis==true)
				{   if(d>29)
					{	return false;	}
				}
				else
				{   if(d>28)
					{	return false;	}      
				}
			}
		}
    }
    return true;
}

function enBlanco(s)
{    var c;
     var i;
     for(i=0; i<s.length; i++)
     {   c=s.charAt(i);
	 if (!isWhitespace(c))
		return true;
     }
     return false;
}

function isName(s)
{   if (isEmpty(s) || s.lenght==0 || !isAlphabetic(s))
    {   return false;   }
    else {	return true;    }
}


function direccion(s)
{
	if(!dir.test(s)) { 
   	mensaje=mensaje+"El campo direccion no es válido\n";
		return false;
	}   	
	else
	{	return a_mayusculas(s);
	}
}

function isDigit(c)
{   return ((c >= "0") && (c <= "9"))
}

function ismail(cadena)
{
	for ( var c=0; c<cadena.lenght;c++)
	{	var letra=cadena.charAt(c);
		if (letra==" ")
		{	return false;	}
	}
	var punto = cadena.substring(cadena.lastIndexOf('.')+1,cadena.length);
	var dominio= cadena.substring(cadena.lastIndexOf('@')+1, cadena.lastIndexOf('.'));
	var usuario= cadena.substring(0,cadena.lastIndexOf('@'));
	var reserv= " @+*{}?‚¡¢£#!­[^&%,;:.";
	var reserv1= " @+*{}?‚¡¢£#!­[^&%,;:";	
	for(var cont=0; cont < usuario.length;cont ++)
	{
		x=usuario.substring(cont,cont+1);
		if(reserv.indexOf(x)!=-1)
		{   return false;
		}
	}
	for(var cont=0; cont < punto.length;cont ++)
	{
		x=punto.substring(cont,cont+1);
		if(reserv.indexOf(x)!=-1)
		{	return false;
		}
	}	
	for(var cont=0; cont < dominio.length;cont ++)
	{
		x=dominio.substring(cont,cont+1);
		if(reserv1.indexOf(x)!=-1)
		{	return false;
		}
	}
	if (punto.length<2 || dominio.length<1 || cadena.lastIndexOf('.')<0 || cadena.lastIndexOf('@')<0 || usuario.length <1)
	{	return false;
	}
	return true;
}

function isEmpty(s)
{   if (s==null || s=='')
	return true;
    else
	return false;
}

function isEmpty1(s)
{   if (s==null || s=='')
	{ alert("El campo no puede ser vacio");
		return false;
	}
    else
		{return true;}
}

function quita_espacios(valor)
{	var i;
	var anterior =" ";
	var cad="";
	for (i=0;i<valor.length;i++)
	{
	    var c=valor.charAt(i);
	    if ((c==" " && anterior==" ")||(c==" " && i==(valor.length-1)))
		{ 
		  anterior=" "; 
		}
	    else
		{	
	      cad= cad+c; 
		  anterior=c;	
		}
	}
	if(cad.legth-1==" ")
	   cad=cad.subtring(cad.length-1);
      return cad;
}

function isLetter(c)
{    if( (minu.indexOf(c) != -1) || (may.indexOf(c) != -1) )//min, may son variables globales
	return true;
     else
	return false;
}

function isAlphabetic(s)
{   var i;
    for (i=0; i < s.length; i++)   
    {    if ( !isLetter(s.charAt(i)) )
	    return false;
    }
    return true;
}


function Validar(n,e,c)
{
	var b=0;
  	cadena='';
	var n=quita_espacios(n);
	var e=quita_espacios(e);
	var c=quita_espacios(c);
	if (isEmpty(n))
    {   cadena=cadena+"No puede dejar su nombre en blanco" + "\n";b=b+1}
	if (isEmpty(e))
    {   cadena=cadena+"No puede dejar su email en blanco" + "\n";b=b+1}
	if (isEmpty(c))
    {   cadena=cadena+"No puede enviar su mail en blanco" + "\n";b=b+1}
	if (b>0)
	{	alert(cadena);
		return false;}
	else
	{
		if (!ismail(e))
		 { b=b+1; cadena = cadena + "Su direccion de correo no es valida\n";}
	    if (!isAlphabetic(n))
	    {  cadena = cadena + "Su nombre debe tener solo letras\n"; b=b+1;}	
		if (b>0)
		{	alert(cadena);
			return false;}
		else
			return true;
	}
}

function Validar_registro(n,e)
{
	var b=0;
  	cadena='';
	var n=quita_espacios(n);
	var e=quita_espacios(e);
	if (isEmpty(n))
    {   cadena=cadena+"No puede dejar su nombre en blanco" + "\n";b=b+1}
	if (isEmpty(e))
    {   cadena=cadena+"No puede dejar su email en blanco" + "\n";b=b+1}
	if (b>0)
	{	alert(cadena);
		return false;}
	else
	{
		if (!ismail(e))
		 { b=b+1; cadena = cadena + "Su direccion de correo no es valida\n";}
	    if (!isAlphabetic(n))
	    {  cadena = cadena + "Su nombre debe tener solo letras\n"; b=b+1;}	
		if (b>0)
		{	alert(cadena);
			return false;}
		else
			return true;
	}
}


//funcion para validar cedula
function Ruc_publicas(n)
{	
	var por="32765432";
	var suma=0;
	var p=0;
	var i;
	var ver;
	var e=0;
	var d=0;	
	if (n.substr(9,4) != "0000")
	{	for (i=0; i<8; i++)
		{  	p=(parseInt(n.charAt(i)))*(parseInt(por.charAt(i)));
			suma=suma+p;			
		}
		var div=0;
		div=suma%11;
		if ( div==0)
		{	ver=0;	}
		else
		{  d=suma/11;
		   e=((Math.floor(d))+1)*11;
		   ver=e-suma;	   
		}   
		if (ver!=(parseInt(n.substr(8,1))))
		{ return false;}	
		else
		{	return true; }
	}
	else
	{	return false;	}
}

function Ruc_privadas(n)
{
	var por="432765432";
	var suma=0;
	var p=0;
	var i;
	var ver;
	var e=0;
	var d=0;
	for (i=0; i<9; i++)
	{  	p=(parseInt(n.charAt(i)))*(parseInt(por.charAt(i)));
		suma=suma+p;			
	}
	var div=0;
	div=suma%11;
	if ( div==0)
	{	ver=0;	}
	else
	{  d=suma/11;
	   e=((Math.floor(d))+1)*11;
	   ver=e-suma;	   
	}   
	if (ver!=(parseInt(n.substr(9,1))))
	{	 return false;	}	
	else
	{	return true;	}
}

function Ruc_naturales(n)
{
	var por="212121212";
	var suma=0;
	var p=0;
	var i;
	var ver;
	var e=0;
	var d=0;
	for (i=0; i<9; i++)
	{   p=(parseInt(n.charAt(i)))*(parseInt(por.charAt(i)));
	    if (p > 9)
		p=p-9;
	    suma=suma+p;
	}
	if ( (suma%10) == 0)
	{    ver=0;	}
	else
	{  d=suma/10;
	   e=((Math.floor(d))+1)*10;
	   ver=e-suma;
	}   
	if (ver!=(parseInt(n.substr(9,1))))
	{ 	return false;	}	
	else
	{	return true;   }
}

function Ruc(n)
{
    var ban=true;
    if (isEmpty(n))
	{	return false;   }	
    else
    {	if (n.length != 13)
        { return false;	}	
		else
		{   if (n.substr(10,12)!="000" )
			{	var i;
				var c;
				for(i=0; i < 13; i++)	
				{   c=n.charAt(i);
					if ((!isDigit(c)) || (c==' '))
					{	return false;	}		
				}
				if (ban)			
				{ 		var fijo=n.substr(2,1);
						if (fijo=="9")
						{	if (!Ruc_privadas(n))
							{	return false;	}
						}					
						else
						{	if (fijo=="6")
							{	if (!Ruc_publicas(n))
								{	return false;	}
							}
							else
							{	if (fijo=="0" || fijo=="1" || fijo=="2" || fijo=="3" || fijo=="4" || fijo=="5" )
								{	if (!Ruc_naturales(n))
									{	return false;	}
								}
								else
								{	return false;	}
							}
						}						
				}
				else
				{	return false;	}						
			}
			else
			{	return false;}			
		}
    }
    return ban;
}


function Cedula(n,v)
{   var ban=true;
    if (isEmpty(n) || isEmpty(v))
    {	//cadena=cadena+"Cedula vacia\n";
	ban=false;
    }	
    else
    {	if ((n.length != 9) || (v.length !=1) )
        { //  cadena=cadena+"Cedula tiene 10 caracteres\n";
	    ban=false;
	}	
	else
	{   if ((!isDigit(v)) || (v==' '))
	    {   //cadena=cadena+"Solo numeros y no blancos en verificador\n";
	        ban=false;
	        var i;
	        var c;
                for(i=0; i < 9; i++)	
	        {   c=n.charAt(i);
		    if ((!isDigit(c)) || (c==' '))
		    { //  cadena=cadena+"solo numeros y no blancos en numero\n";
		        ban=false;
		    }		
	        }
	    }
	    else
	    {	var por="212121212";
		var suma=0;
		var p=0;
		var i;
		var ver;
		var e=0;
		var d=0;
		for (i=0; i<9; i++)
		{   p=(parseInt(n.charAt(i)))*(parseInt(por.charAt(i)));
		    if (p > 9)
			p=p-9;
		    suma=suma+p;			
		}
		if ( (suma%10) == 0)
		    ver=0;
		else
		{  d=suma/10;
		   e=((Math.floor(d))+1)*10;
		   ver=e-suma;
		}   
		if (ver!=(parseInt(v)))
                { //  cadena=cadena+"la cedula es incorrecta\n";
	            ban=false;
		}	
	    }
	}
    }
   // alert('cedula');
    return ban;
}

function Pasaporte(n)
{
    if (isEmpty(n))
	{	return false;   }	
    else
    {	if (n.length != 14)
        { return false;	}	
		else
		{   var i;
			var c;
			for(i=0; i < 14; i++)	
			{   c=n.charAt(i);
				if ((!isDigit(c)) || (c==' '))
				{	return false;	}		
			}
		}
	}
	return true;
}

/*********************************************Validar Credijaher*********************************/

function Credijaher(tipo_identificador,identificador,ape_paterno,ape_materno,nombre,estado_civil,fecha_nac,telefono1,telefono2,email,sexo,ciudad,barrio,direccion,n_casa,ref_domicilio,vivienda,nombre_empresa,actividad_empresa,tel_empleado,fecha_ingreso,negocio)
{
	cadena='';
	var b=0;
	if (tipo_identificador[0].checked)	tipo_identificador1='CEDULA';
	if (tipo_identificador[1].checked)	tipo_identificador1='RUC';	
	if (tipo_identificador[2].checked)	tipo_identificador1='PASAPORTE';
	if (estado_civil[0].checked)	estado_civil1='SOLTERO';
	if (estado_civil[1].checked)	estado_civil1='CASADO';
	if (estado_civil[2].checked)	estado_civil1='VIUDO';
	if (estado_civil[3].checked)	estado_civil1='SEPARADO';
	if (estado_civil[4].checked)	estado_civil1='DIVORCIADO';
	if (estado_civil[5].checked)	estado_civil1='UNION LIBRE';
	if (sexo[0].checked)	sexo1='M';
	if (sexo[1].checked)	sexo1='F';
	if (vivienda[0].checked)	vivienda1='PROPIA';
	if (vivienda[1].checked)	vivienda1='ARRENDADA';
	if (vivienda[2].checked)	vivienda1='HIPOTECADA';
	if (vivienda[3].checked)	vivienda1='HERENCIA';
	if (vivienda[4].checked)	vivienda1='DE FAMILIARES';
	if (negocio[0].checked)	negocio1='S';		
	if (negocio[1].checked)	negocio1='N';		
	if (isEmpty(identificador) || isEmpty(ape_paterno) || isEmpty(ape_materno) || isEmpty(nombre) || (isEmpty(telefono1) && isEmpty(telefono2)) || isEmpty(ciudad) ||	isEmpty(barrio) || isEmpty(direccion) || isEmpty(n_casa) || isEmpty(ref_domicilio) ||  isEmpty(vivienda) || isEmpty(nombre_empresa) || isEmpty(actividad_empresa) || isEmpty(tel_empleado) || isEmpty(fecha_nac) || isEmpty(fecha_ingreso))
	{	cadena=cadena+"Los datos son obligatorios excepto el campo 'e-mail'\n";
		b=1;
	}	
	else
	{
		var identificador1=quita_espacios(identificador);
		var ape_paterno1=quita_espacios(ape_paterno);
		var ape_materno1=quita_espacios(ape_materno);
		var nombre1=quita_espacios(nombre);
		var telefono11=quita_espacios(telefono1);
		var telefono21=quita_espacios(telefono2);
		var email1=quita_espacios(email);
		var ciudad1=quita_espacios(ciudad);
		var barrio1=quita_espacios(barrio);
		var direccion1=quita_espacios(direccion);
		var n_casa1=quita_espacios(n_casa);
		var ref_domicilio1=quita_espacios(ref_domicilio);
		var nombre_empresa1=quita_espacios(nombre_empresa);
		var actividad_empresa1=quita_espacios(actividad_empresa);
		var tel_empleado1=quita_espacios(tel_empleado);
		var fecha_nac1=quita_espacios(fecha_nac);
		var fecha_ingreso1=quita_espacios(fecha_ingreso);		
/************************* identificador ***********************************/
		switch( tipo_identificador1 )
		{	case "CEDULA":
				var n;
				var v;
				n=identificador1.substring(0,identificador1.length-1);				
				v=identificador1.substring(identificador1.length-1,identificador1.length);
				if (!Cedula(n,v))
				{	cadena=cadena+"Error en la Cedula\n";
					b=1;}
				break;
			case "RUC":
				if (!Ruc(identificador1))
				{	cadena=cadena+"Error en el Ruc\n";
					b=1;}
				break;
			case "PASAPORTE":
				if (!Pasaporte(identificador1))
				{	cadena=cadena+"Error en el Pasaporte\n";
					b=1;}			
				break;
		}
//apellidos,nombres
		if (!isName(ape_paterno1) )
		{	b=1;
			cadena=cadena+"Error en el Apellido paterno\n";
		}
		if (!isName(ape_materno1) )
		{	b=1;
			cadena=cadena+"Error en el Apellido Materno\n";
		}
		if (!isName(nombre1) )
		{	b=1;
			cadena=cadena+"Error en el Apellido paterno\n";
		}
		if (!isTelephone(telefono11) &&  !isTelephone(telefono21))
		{	b=1;
			cadena=cadena+"Error en el telefono\n";
		}
		if (!isTelephone(tel_empleado1))
		{	b=1;
			cadena=cadena+"Error en el telefono del empleado\n";
		}
		if (isEmpty(fecha_nac))
		{	b=1;
			cadena=cadena+"Error en la fecha de nacimiento\n";
		}		 
		if (isEmpty(fecha_ingreso))
		{	b=1;
			cadena=cadena+"Error en la fecha de ingreso del empleado\n";
		}
		if (!isEmpty(email1))
		{	if(!ismail(email1))
			{	b=1;
				cadena=cadena+"Error en el email\n";
			}
		}
	}
	if (b==1)
	{	alert(cadena);
		return false;		
	}
	else
	{	return true;}
		

}

