// Variables a utilizar en las funciones

var digits="0123456789";
var digits1="0123456789.";
var digits2="0123456789,";
var digits3="0123456789.,";
var textchars="/'\"[]{}()*&^%$#@!~?<>-_+=|\\ \r\t\n.,:;`";
var lwr="abcdefghijklmnopqrstuvwxyz";
var upr="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var diac_lwr='áàâäåéèëêìíîïòóôõöøùúûüýñæßç';
var diac_upr='ÁÀÂÄÅÉÈËÊÌÍÎÏÒÓÔÕÖØÙÚÛÜÝÑÆßÇ';
var espacio=" ";
var whitespace=" \t\n\r";                     
var decimalPointDelimiter=".";                  
var phoneNumberDelimiters="()- ";  
var ZIPCodeDelimiters=".";

var MinPassLength=6;
var MaxPassLength=10;
var MinLoginLength=6;
var MaxLoginLength=10;

var bgcolor_normal = "#ffffff";

var validPhoneChars=digits + phoneNumberDelimiters;
var validDNIChars=digits + upr + lwr;
var validZIPCodeChars=digits;

var digitsInPhoneNumber=9;
var digitsInDNI=9;
var digitsInZIPCode1=5;


/**********************************************************************/
// esVacio
// Función para comprobar si el valor está vacio. 
/**********************************************************************/

function esVacio(s){
    return((s==null)||(s.length==0))
}

/**********************************************************************/
// esValido
// Función para comprobar si el valor es válido comparandolo con los valores pasados. 
/**********************************************************************/

function esValido(parm,val){
    if(parm=="")return true;
    for(i=0;i<parm.length;i++){
	if(val.indexOf(parm.charAt(i),0)==-1)return false;
    }
    return true;
}

/**********************************************************************/
// esLetra
// Función para comprobar si el valor es una letra. 
/**********************************************************************/

function esLetra(c){
    return (((c>="a")&&(c<="z"))||((c>="A")&&(c<="Z")))
}

/**********************************************************************/
// esDigito
// Función para comprobar si el valor es un dígito. 
/**********************************************************************/

function esDigito(c){
    return ((c>="0")&&(c<="9"))
}


/**********************************************************************/
// esEspacio
// Función para comprobar si el valor es un espacio. 
/**********************************************************************/

function esEspacio(s){
    for(i=0;i< s.length;i++){
	c=s.charAt(i);
	if(whitespace.indexOf(c)==-1) return false;
    } 
    return true;
}

/**********************************************************************/
// esEntero
// Función para comprobar si el valor es un número entero. 
/**********************************************************************/

function esEntero(valor){ 
    i;
    if(esVacio(valor)){
	if(esEntero.arguments.length==1) return false;
	else return (esEntero.arguments[1]==true); 
    }
    for(i=0;i< valor.length;i++){ 
	c=valor.charAt(i); 
	if(!esDigito(c)) return false; 
    } 
    return true;
}

/**********************************************************************/
// esDNI
// Funcion para comprobar si el valor es un DNI correcto. 
/**********************************************************************/
function esDNI(valor){
    if (esValido(valor,validDNIChars) && valor.length==digitsInDNI) {
	for(var i=0; i<(valor.length)-1;i++){
	    if(esDigito(valor.charAt(i))==false) {
		return false;
	    }
	}
	if (esLetra(valor.charAt(i))){
	    // Ahora compruebo si es un DNI correcto, es decir, si es la letra correcta.
	    var numero = valor.substr(0,valor.length-1);
	    var letra = valor.substr(valor.length-1,1);
	    numero = numero % 23;
	    var cadena='TRWAGMYFPDXBNJZSQVHLCKET';
	    cadena=cadena.substring(numero,numero+1);
	    return (cadena==letra.toUpperCase()); 
	} else return false;
    } else return false;
}

function esCIF(texto){
        
    var pares = 0;
    var impares = 0;
    var suma;
    var ultima;
    var unumero;
    var uletra = new Array("J", "A", "B", "C", "D", "E", "F", "G", "H", "I");
    var xxx;
        
    texto = texto.toUpperCase();
        
    var regular = new RegExp(/^[ABCDEFGHKLMNPQS]\d\d\d\d\d\d\d[0-9,A-J]$/g);
    if (!regular.exec(texto)) return false;
             
    ultima = texto.substr(8,1);

    for (var cont = 1 ; cont < 7 ; cont ++){
	xxx = (2 * parseInt(texto.substr(cont++,1))).toString() + "0";
	impares += parseInt(xxx.substr(0,1)) + parseInt(xxx.substr(1,1));
	pares += parseInt(texto.substr(cont,1));
    }
    xxx = (2 * parseInt(texto.substr(cont,1))).toString() + "0";
    impares += parseInt(xxx.substr(0,1)) + parseInt(xxx.substr(1,1));
         
    suma = (pares + impares).toString();
    unumero = parseInt(suma.substr(suma.length - 1, 1));
    unumero = (10 - unumero).toString();
    if(unumero == 10) unumero = 0;
         
    if ((ultima == unumero) || (ultima == uletra[unumero]))
	return true;
    else
	return false;
}
/**********************************************************************/
// esEmail
// Funcion para comprobar si el valor es un DNI correcto. 
/**********************************************************************/

function esEmail(s){
    if(esVacio(s))
	if(esEmail.arguments.length==1) return false;
	else return(isEmail.arguments[1]==true);
		
    if(esEspacio(s)) return false;
    i=1;
    sLength=s.length;
    while((i<sLength) && (s.charAt(i) !="@")){
	i++
    };
    if((i >=sLength) || (s.charAt(i) !="@")) return false;
    else i +=2;
    while((i < sLength) && (s.charAt(i) !=".")){
	i++
    };
    if((i >=sLength - 1) || (s.charAt(i) !=".")) return false;
    else return true;
}

/**********************************************************************/
// es_telefono
// Funcion para comprobar si el valor es un teléfono. 
/**********************************************************************/

function es_telefono(numero)
{
    return (es_entero(numero)&& numero.length==digitsInPhoneNumber);
}

/**********************************************************************/
// esCodigoPostal
// Funcion para comprobar si el valor es un teléfono. 
/**********************************************************************/

function esCodigoPostal(s){
    return (esValido(s,validZIPCodeChars) && s.length==digitsInZIPCode1);
}

/**********************************************************************/
/* Esta función valida el formulario de Acceso Privado de la página.  */
/* 																      */
/**********************************************************************/

function validar_login()
{
    // Ponemos todas las casillas sin fondo
    document.form_login.login.style.background=bgcolor_normal;
    document.form_login.pass.style.background=bgcolor_normal;
    var error="";
		
    if (vacio(document.form_login.login.value)) 
    {
	error+="Debe introducir el usuario.\n";
	document.form_login.login.style.background=bgcolor_error;
    }
    else
    {
	if (!es_valido(document.form_login.login.value))
	{
	    error+="El usuario contiene caracteres no válidos.\n";
	    document.form_login.login.style.background=bgcolor_error;
	}
    }	

    if (vacio(document.form_login.pass.value)) 
    {
	error+="Debe introducir la clave.\n";
	document.form_login.pass.style.background=bgcolor_error;
    }
    else
    {
	if (!es_valido(document.form_login.pass.value))
	{
	    error+="La clave contiene caracteres no válidos.\n";
	}
    }	

    if (!error)
    {
	document.form_login.action="login.php";
	document.form_login.submit();
    }
    else alert(error);
}
/**********************************************************************/
/* Esta función valida el formulario de envio de los pedids de la página.        */
/* 																      */
/**********************************************************************/

function validar_datos_pedido(op)
{
    // Ponemos todas las casillas sin fondo
    document.formulario.nombre.style.background=bgcolor_normal;
    document.formulario.apellidos.style.background=bgcolor_normal;
    document.formulario.direccion.style.background=bgcolor_normal;
    document.formulario.cp.style.background=bgcolor_normal;
    document.formulario.provincia.style.background=bgcolor_normal;
    document.formulario.ciudad.style.background=bgcolor_normal;
    document.formulario.pais.style.background=bgcolor_normal;
    document.formulario.email.style.background=bgcolor_normal;
    var error="";
    var linea=1;	
    if (vacio(document.formulario.nombre.value)) 
    {
	linea++;
	error+="Debe introducir el nombre.<br />";
	document.formulario.nombre.style.background=bgcolor_error;
    }
    if (vacio(document.formulario.apellidos.value)) 
    {
	linea++;
	error+="Debe introducir los apellidos.<br />";
	document.formulario.apellidos.style.background=bgcolor_error;
    }
    if (vacio(document.formulario.direccion.value)) 
    {
	linea++;
	error+="Debe introducir la dirección.<br />";
	document.formulario.direccion.style.background=bgcolor_error;
    }
    if (vacio(document.formulario.ciudad.value)) 
    {
	linea++;
	error+="Debe introducir la ciudad.<br />";
	document.formulario.ciudad.style.background=bgcolor_error;
    }
    //		if (vacio(document.formulario.provincia.value)) 
    //	{
    //		linea++;
    //		error+="Debe introducir la provincia.<br />";
    //		document.formulario.provincia.style.background=bgcolor_error;
    //	}
    if (vacio(document.formulario.dni.value)) 
    {
	linea++;
	error+="Debe introducir el dni.<br />";
	document.formulario.dni.style.background=bgcolor_error;
    }
    //if (vacio(document.formulario.cp.value)) {
    //			linea++;
    //			error+="Debe introducir el código postal.<br />";
    //			document.formulario.cp.style.background=bgcolor_error;
    //	}else{
    //		if (!esCodigoPostal(document.formulario.cp.value)) {
    //			linea++;
    //			error+="El Código Postal tiene que ser un número de "+digitsInZIPCode1+" dígitos.<br />";
    //			document.formulario.cp.style.background=bgcolor_error;
    //		}
    //	}

    if (document.formulario.pais.value==0) {
	linea++;
	error+="Debe seleccionar un pais.<br />";
	document.formulario.pais.style.background=bgcolor_error;
    } 		
    if (vacio(document.formulario.email.value)) 
    {
	linea++;
	error+="Debe introducir una dirección de correo electrónico.<br />";
	document.formulario.email.style.background=bgcolor_error;
    }
    else
    {
		
	if (!es_correo(document.formulario.email.value))
	{
	    linea++;
	    error+="El email debe ser una dirección de correo electrónico válida.<br />";
	    document.formulario.email.style.background=bgcolor_error;
	}
    }
		
	
	
	
	
    if (!error)
    {
	if(op==3){
	    return true;
	    document.formulario.action="ver_carro.php?op="+op;
	    document.formulario.submit();
	}else{
	    document.formulario.action="ver_carro.php?op="+op;
	    document.formulario.submit();
	}
    }
    else {
	alert("Rellene los campos marcados")
		
    }
}
/**********************************************************************/
/* Esta función valida el formulario de Contacto de la página.        */
/* 																      */
/**********************************************************************/

function validar_contacto()
{
    // Ponemos todas las casillas sin fondo
    document.formulario.nombre.style.background=bgcolor_normal;
    document.formulario.empresa.style.background=bgcolor_normal;
    document.formulario.telefono.style.background=bgcolor_normal;
    document.formulario.email.style.background=bgcolor_normal;
    document.formulario.localidad.style.background=bgcolor_normal;
    document.formulario.pais.style.background=bgcolor_normal;
    document.formulario.descripcion.style.background=bgcolor_normal;

    var error="";
    var linea=1;	
    if (vacio(document.formulario.nombre.value)) 
    {
	linea++;
	error+="Debe introducir el nombre.<br />";
	document.formulario.nombre.style.background=bgcolor_error;
    }

    /*	else
	{
		if (!es_campo_valido(document.formulario.nombre.value))
		{
			error+="El nombre debe ser solamente carácteres alfabéticos.\n";
		document.formulario.nombre.style.background=bgcolor_error;
		}
	}	
	if (vacio(document.formulario.empresa.value)) 
	{
		error+="Debe introducir los apellidos.\n";
		document.formulario.empresa.style.background=bgcolor_error;
	}*/
	
    if (!vacio(document.formulario.telefono.value)) 
    {
	if (!es_telefono(document.formulario.telefono.value))
	{
	    linea++;
	    error+="El Teléfono debe ser un teléfono válido de "+digitsInPhoneNumber+" caracteres.<br />";
	    document.formulario.telefono.style.background=bgcolor_error;
	}
		
	
    }
	
			
    if (vacio(document.formulario.email.value)) 
    {
	linea++;
	error+="Debe introducir una dirección de correo electrónico.<br />";
	document.formulario.email.style.background=bgcolor_error;
    }
    else
    {
		
	if (!es_correo(document.formulario.email.value))
	{
	    linea++;
	    error+="El email debe ser una dirección de correo electrónico válida.<br />";
	    document.formulario.email.style.background=bgcolor_error;
	}
    }
		
    if (vacio(document.formulario.localidad.value)) 
    {
	linea++;
	error+="Debe introducir la localidad.<br />";
	document.formulario.localidad.style.background=bgcolor_error;
    }
	
    if (vacio(document.formulario.pais.value)) 
    {
	linea++;
	error+="Debe introducir el país.<br />";
	document.formulario.pais.style.background=bgcolor_error;
    }
	
    if (vacio(document.formulario.descripcion.value)) 
    {
	linea++;
	error+="Debe introducir texto en el comentario.<br />";
	document.formulario.descripcion.style.background=bgcolor_error;
    }
	
    if (document.formulario.aceptar.checked!=true) {
	linea++;
	error+="Debe aceptar la politica legal y de privacidad.<br />";
    }
	
    if (!error)
    {
	document.formulario.action="contacto.php";
	document.formulario.submit();
    }
    else {
	error="<br /><br />"+ error;
	GB_showCenter('Aviso', 'http://www.icteduca.com/serv/mensaje.php?op=4&mensaje='+error,240,486);
		
    //GB_showCenter('Formulario de contacto', 'http://dev.aicor.local/alecop/serv/mensaje.php?op=4&mensaje='+error,100+(linea*4),480);
		
		
    }
}


/**********************************************************************/
/* Esta función valida el formulario de Registro de la página.        */
/* 																      */
/**********************************************************************/

function validar_registro()
{

    // Ponemos todas las casillas sin fondo
    document.form_reg.login.style.background=bgcolor_normal;
    document.form_reg.password.style.background=bgcolor_normal;
    document.form_reg.rpassword.style.background=bgcolor_normal;
    document.form_reg.nombre.style.background=bgcolor_normal;
    document.form_reg.apellido_1.style.background=bgcolor_normal;
    document.form_reg.cif.style.background=bgcolor_normal;
    document.form_reg.cp.style.background=bgcolor_normal;
    document.form_reg.direccion.style.background=bgcolor_normal;
    document.form_reg.localidad.style.background=bgcolor_normal;
    document.form_reg.provincia.style.background=bgcolor_normal;
    //document.form_reg.telf_1.style.background=bgcolor_normal;
    document.form_reg.telf_2.style.background=bgcolor_normal;
    document.form_reg.telf_3.style.background=bgcolor_normal;
    document.form_reg.email.style.background=bgcolor_normal;

    var error="";
    var linea=1;
    if (vacio(document.form_reg.login.value)) {
	linea++;
	error+="Debe introducir el usuario.<br />";
	document.form_reg.login.style.background=bgcolor_error;
    } else if (!es_valido(document.form_reg.login.value))	{
	linea++;
	error+="El usuario contiene caracteres no válidos.<br />";
	document.form_reg.login.style.background=bgcolor_error;
    } else if(document.form_reg.login.value.length<MinLoginLength || document.form_reg.login.value.length>MaxLoginLength) {
	linea++;
	error+="El nombre de usuario debe de tener entre "+MinLoginLength+" y "+MaxLoginLength+" caracteres.<br />";
	document.form_reg.login.style.background=bgcolor_error;
    }

    if (vacio(document.form_reg.password.value)) {
	linea++;
	error+="Debe introducir la clave.<br />";
	document.form_reg.password.style.background=bgcolor_error;
    } else if (!es_valido(document.form_reg.password.value)) {
	linea++;
	error+="La clave contiene caracteres no válidos.<br />";
	document.form_reg.password.style.background=bgcolor_error;
    }
	
    if (vacio(document.form_reg.rpassword.value)) {
	error+="Debe confirmar la clave.<br />";
	document.form_reg.rpassword.style.background=bgcolor_error;
    } else if (!es_valido(document.form_reg.rpassword.value)) {
	linea++;
	error+="La confirmación de la clave contiene caracteres no válidos.<br />";
	document.form_reg.rpassword.style.background=bgcolor_error;
    } else if (document.form_reg.password.value!=document.form_reg.rpassword.value) {
	linea++;
	error+="La confirmación de la contraseña no coincide con la contraseña.<br />";
	document.form_reg.password.style.background=bgcolor_error;
	document.form_reg.rpassword.style.background=bgcolor_error;
    } else if(document.form_reg.password.value.length<MinPassLength || document.form_reg.password.value.length>MaxPassLength) {
	linea++;
	error+="La contraseña debe de tener entre "+MinPassLength+" y "+MaxPassLength+" caracteres.<br />";
	document.form_reg.password.style.background=bgcolor_error;
	document.form_reg.rpassword.style.background=bgcolor_error;
    }
	
    if (vacio(document.form_reg.nombre.value)) {
	linea++;
	error+="Debe introducir el nombre.<br />";
	document.form_reg.nombre.style.background=bgcolor_error;
    } 
	
    if (vacio(document.form_reg.apellido_1.value)) {
	linea++;
	error+="Debe introducir el primer apellido.<br />";
	document.form_reg.apellido_1.style.background=bgcolor_error;
    }
	
    if(document.form_reg.pais.value=='ES'){
	if (!vacio(document.form_reg.cif.value)) {
	    if (!esDNI(document.form_reg.cif.value) && !esCIF(document.form_reg.cif.value)) {
		linea++;
		error+="Debe introducir el D.N.I./N.I.F. Correcto<br />";
		document.form_reg.cif.style.background=bgcolor_error;
	    }
	}
	
    }	
    if (!vacio(document.form_reg.cp.value)) {
	if (!esCodigoPostal(document.form_reg.cp.value)) {
	    linea++;
	    error+="El Código Postal tiene que ser un número de "+digitsInZIPCode1+" dígitos.<br />";
	    document.form_reg.cp.style.background=bgcolor_error;
	}
    }

    if (vacio(document.form_reg.localidad.value)) {
	linea++;
	error+="Debe introducir el localidad.<br />";
	document.form_reg.localidad.style.background=bgcolor_error;
    }
    if (document.form_reg.pais.value==0) {
	linea++;
	error+="Debe seleccionar un pais.<br />";
	document.form_reg.pais.style.background=bgcolor_error;
    } 
  
	
    if (vacio(document.form_reg.telf_2.value)) {
	linea++;
	error+="Debe introducir el Teléfono.<br />";
	document.form_reg.telf_2.style.background=bgcolor_error;
    } else if (!es_telefono(document.form_reg.telf_2.value)) {
	linea++;
	error+="El Tfno. debe ser un número de teléfono válido de "+digitsInPhoneNumber+" dígitos.<br />";
	document.form_reg.telf_2.style.background=bgcolor_error;
    }
	
    if (!es_telefono(document.form_reg.telf_3.value) && !esVacio(document.form_reg.telf_3.value)) {
	linea++;
	error+="El Fax debe ser un número de fax válido de "+digitsInPhoneNumber+" dígitos.<br />";
	document.form_reg.telf_3.style.background=bgcolor_error;
    }
	
    if (vacio(document.form_reg.email.value)) {
	linea++;
	error+="Debe introducir el E-mail.<br />";
	document.form_reg.email.style.background=bgcolor_error;
    } else if (!es_correo(document.form_reg.email.value)) {
	linea++;
	error+="El E-mail debe ser una dirección de correo electrónico válida.<br />";
	document.form_reg.email.style.background=bgcolor_error;
    }
	
    if (document.form_reg.aceptar.checked!=true) {
	linea++;
	error+="Debe aceptar la politica legal y de privacidad.	";
    }
	
    if (!error)
    {
	document.form_reg.action="registro.php";
	document.form_reg.submit();
    }
    else{
		
	if(linea<11)
	    error="<br /><br />"+error;
	//alert(error);
	GB_showCenter('Aviso', 'http://www.icteduca.com/serv/mensaje.php?op=4&mensaje='+error,240,486);
    //GB_showCenter('Formulario de Registro', 'http://dev.aicor.local/alecop/serv/mensaje.php?op=4&mensaje='+error,100+(linea*9),480);
		
    }


}
var val_email=0;
var val_login=0;
var usuario_actualizado=0;
var login_valido=0;
function  validar_email_perfil(email){
    $.ajax({
	url: 'verificar_email.php',
	data: {
	    email:email
	},
	type: 'post',
	dataType: 'json',
	success: function (data) {	  
	    // return data.result.toString();
	    val_email=data.result;
	   
	 
	},
	error: function(data) {
	    alert(1);
	    return false;
	}
    });    
}
function validar_mi_perfil()
{

    // Ponemos todas las casillas sin fondo    
    document.form_reg.nombre.style.background=bgcolor_normal;
    document.form_reg.apellidos.style.background=bgcolor_normal;
    document.form_reg.dni.style.background=bgcolor_normal;
    document.form_reg.cp.style.background=bgcolor_normal;
    document.form_reg.direccion.style.background=bgcolor_normal;
    document.form_reg.ciudad.style.background=bgcolor_normal;
    document.form_reg.provincia.style.background=bgcolor_normal;
    document.form_reg.telefono.style.background=bgcolor_normal;
    document.form_reg.fax.style.background=bgcolor_normal;
    document.form_reg.email.style.background=bgcolor_normal;
    
    var error="";	
    
    if(document.form_reg.pais.value=='ES'){
	if (!vacio(document.form_reg.dni.value)) {
	    if (!esDNI(document.form_reg.dni.value) && !esCIF(document.form_reg.dni.value)) {		
		error+="Debe introducir el D.N.I./N.I.F. Correcto\n";
		document.form_reg.dni.style.background=bgcolor_error;
	    }
	}	
    }
    
    if (!vacio(document.form_reg.cp.value)) {
	if (!esCodigoPostal(document.form_reg.cp.value)) {	
	    error+="El Código Postal tiene que ser un número de "+digitsInZIPCode1+" dígitos.\n";
	    document.form_reg.cp.style.background=bgcolor_error;
	}
    }

    if (vacio(document.form_reg.ciudad.value)) {
	error+="Debe introducir el localidad.\n";
	document.form_reg.ciudad.style.background=bgcolor_error;
    }
  
    if (document.form_reg.pais.value==0) {
	error+="Debe seleccionar un pais.\n";
	document.form_reg.pais.style.background=bgcolor_error;
    }   
	
    if (vacio(document.form_reg.telefono.value)) {
	error+="Debe introducir el Teléfono.\n";
	document.form_reg.telefono.style.background=bgcolor_error;
    } else if (!es_telefono(document.form_reg.telefono.value)) {
	error+="El Tfno. debe ser un número de teléfono válido de "+digitsInPhoneNumber+" dígitos.\n";
	document.form_reg.telefono.style.background=bgcolor_error;
    }
	
    if (!es_telefono(document.form_reg.fax.value) && !esVacio(document.form_reg.fax.value)) {
	error+="El Fax debe ser un número de fax válido de "+digitsInPhoneNumber+" dígitos.\n";
	document.form_reg.fax.style.background=bgcolor_error;
    }
	
    if (vacio(document.form_reg.email.value)) {
	error+="Debe introducir el E-mail.\n";
	document.form_reg.email.style.background=bgcolor_error;
    } else {
	if (!es_correo(document.form_reg.email.value)) {
	    error+="El E-mail debe ser una dirección de correo electrónico válida.\n";
	    document.form_reg.email.style.background=bgcolor_error;
	}else{	
	    validar_email_perfil(document.form_reg.email.value);
	    if(val_email==1)
		error+="El E-mail introducido pertenece a otro usuario.\n";	
	}
    }  
	
    if (!error){	
	actualizar_usuario(document.form_reg);
	if(usuario_actualizado==0){
	    alert("Su perfil ha sido actualizado correctamente");
	    parent.parent.location.href='../privado.php';
	}else{
	    alert("Ha ocurrido un error al actualizar su perfil")
	}
    }
    else{	
	alert(error);		
    }
}

function actualizar_usuario(form){
    $.ajax({
	url: 'actualizar_usuario.php',
	data: {
	    email:form.email.value,
	    nombre:form.nombre.value,
	    apellidos:form.apellidos.value,
	    empresa:form.empresa.value,
	    dni:form.dni.value,
	    cargo:form.cargo.value,
	    direccion:form.direccion.value,
	    cp:form.cp.value,
	    ciudad:form.ciudad.value,
	    provincia:form.provincia.value,
	    pais:form.pais.value,
	    telefono:form.telefono.value,
	    fax:form.fax.value,
	    email:form.email.value	    
	},
	type: 'post',
	dataType: 'json',
	success: function (data) {  
	    usuario_actualizado=data.result;
	},
	error: function(data) {	   
	    return false;
	}
    });   
}
function  validar_login_perfil(login){
    $.ajax({
	url: 'verificar_login.php',
	data: {
	    login:login
	},
	type: 'post',
	dataType: 'json',
	success: function (data) {	  
	    val_login=data.result;
	},
	error: function(data) {
	    alert(1);
	    return false;
	}
    });    
}
function validar_datos_de_acceso(){
    // Ponemos todas las casillas sin fondo
    document.form_reg.login.style.background=bgcolor_normal;
    document.form_reg.password.style.background=bgcolor_normal;
    document.form_reg.rpassword.style.background=bgcolor_normal;
    var error="";
    if (vacio(document.form_reg.login.value)) {
	error+="Debe introducir el usuario.\n";
	document.form_reg.login.style.background=bgcolor_error;
    } else if (!es_valido(document.form_reg.login.value))	{
	error+="El usuario contiene caracteres no válidos.\n";
	document.form_reg.login.style.background=bgcolor_error;
    } else if(document.form_reg.login.value.length<MinLoginLength || document.form_reg.login.value.length>MaxLoginLength) {
	error+="El nombre de usuario debe de tener entre "+MinLoginLength+" y "+MaxLoginLength+" caracteres.\n";
	document.form_reg.login.style.background=bgcolor_error;
    } else{
	
	validar_login_perfil(document.form_reg.login.value);
	
	if(val_login==1){
	    error+="El Login introducido pertenece a otro usuario.\n";
	    document.form_reg.login.style.background=bgcolor_error;
	
	}
    }

    if (vacio(document.form_reg.password.value)) {
	error+="Debe introducir la clave.\n";
	document.form_reg.password.style.background=bgcolor_error;
    } else if (!es_valido(document.form_reg.password.value)) {
	error+="La clave contiene caracteres no válidos.\n";
	document.form_reg.password.style.background=bgcolor_error;
    }
	
    if (vacio(document.form_reg.rpassword.value)) {
	error+="Debe confirmar la clave.\n";
	document.form_reg.rpassword.style.background=bgcolor_error;
    } else if (!es_valido(document.form_reg.rpassword.value)) {
	error+="La confirmación de la clave contiene caracteres no válidos.\n";
	document.form_reg.rpassword.style.background=bgcolor_error;
    } else if (document.form_reg.password.value!=document.form_reg.rpassword.value) {
	error+="La confirmación de la contraseña no coincide con la contraseña.\n";
	document.form_reg.password.style.background=bgcolor_error;
	document.form_reg.rpassword.style.background=bgcolor_error;
    } else if(document.form_reg.password.value.length<MinPassLength || document.form_reg.password.value.length>MaxPassLength) {
	error+="La contraseña debe de tener entre "+MinPassLength+" y "+MaxPassLength+" caracteres.\n";
	document.form_reg.password.style.background=bgcolor_error;
	document.form_reg.rpassword.style.background=bgcolor_error;
    }    
	
    if (!error){	
	actualizar_datos_de_acceso(document.form_reg);
	if(usuario_actualizado==0){
	    alert("Su perfil ha sido actualizado correctamente");
	    parent.parent.location.href='../privado.php';
	}else{
	    alert("Ha ocurrido un error al actualizar su perfil")
	}
    }
    else{	
	alert(error);		
    }
}
function actualizar_datos_de_acceso(form){
    $.ajax({
	url: 'actualizar_datos_de_acceso.php',
	data: {
	    login:form.login.value,
	    password:form.password.value	    
	},
	type: 'post',
	dataType: 'json',
	success: function (data) {  
	    usuario_actualizado=data.result;
	},
	error: function(data) {	   
	    return false;
	}
    });   
}
/**********************************************************************/
/* Esta función devuelve verdadero si el valor pasado como argumento  */
/* es una cadena vacia.						      */
/**********************************************************************/


function vacio(valor)
{
    if (valor=="")
    {
	return(true);
    }
    else
    {
	return(false);
    }
}


/**********************************************************************/
/*  Esta funcion comprobará si el valor introducido en la variable    */
/*  'valor' tiene el número de caracteres introducidos en la          */
/*   variable 'num'.                                                  */   
/**********************************************************************/


function num_caracteres(valor,num)
{
    if (valor.length==num) 
			
	return true;
			
    else
			
	return false;
			
		
}
	


/**********************************************************************/	
/* La siguiente función toma como argumento una cadena de caracteres  */
/* y nos devuelve verdadero si la variable introducida está compuesta */
/* sólo por dígitos.                                                  */
/**********************************************************************/

function es_entero(numero)
{
    cadena2="1234567890";
    valido=true;			
    cadena=numero;			
    for (i=0;i<cadena.length;i++)
    {
	ch=cadena.charAt(i);
	for (j=0;j<cadena2.length;j++)
	{						
	    if (ch==cadena2.charAt(j)) break;								
							
	}
	if (j == cadena2.length) 
	{ 
	    valido = false; 
	    break; 
	}														
    }
			
	
    if (valido==false)
    {	
	return(false);		
    }
    else
    {
	return(true);
    }		

}


/**********************************************************************/	
/* La siguiente función toma como argumento una cadena de caracteres  */
/* y nos devuelve verdadero si la variable introducida está compuesta */
/* sólo por dígitos y una coma.                                                  */
/**********************************************************************/

function es_real(numero)
{
    cadena2="1234567890.";
    contador=0;
    valido=true;			
    cadena=numero;			
    longitud=cadena.length;
    for (i=0;i<cadena.length;i++)
    {
	ch=cadena.charAt(i);
	if (ch==".") 
	{
	    ++contador;
	}
					
				
	for (j=0;j<cadena2.length;j++)
	{						
	    if (ch==cadena2.charAt(j)) break;								
							
	}
	if (j == cadena2.length) 
	{ 
	    valido = false; 
	    break; 
	}														
    }
	
    if (contador>=2 || cadena.charAt(longitud-1)==".")
    {
	valido=false;
    }
		
		
    if (valido==false)
    {	
	return(false);		
    }
    else
    {
	return(true);
    }		

}

/**********************************************************************/	
/* La siguiente función toma como argumento una cadena de caracteres  */
/* y nos devuelve verdadero si la variable introducida está compuesta */
/* sólo por caracteres válidos para hacer una inserción en una base   */	
/* de datos.                                                          */
/**********************************************************************/

function es_valido(valor)
{
    cadena2="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890_-.";
    valido=true;
    cadena=valor;
    for (i=0;i<cadena.length;i++)
    {
	ch=cadena.charAt(i);
	for (j=0;j<cadena2.length;j++)
	{
	    if (ch==cadena2.charAt(j)) break;
							
	}
	if (j == cadena2.length)
	{
	    valido = false;
	    break;
	}
    }
			
	
    if (valido==false)
    {	
	return(false);		
    }
    else
    {
	return(true);
    }		

}


function es_campo_valido(valor)
{
    cadena2="AÁÀÂÃÄBCDEÉÈÊËFGHIÍÌÎÏJKLMNÑOÓÒÔÖÕPQRSTUÚÙÛÜVWXYZaáàâãäbcdeéèêëfghiíìîïjklmnñoóòôöõpqrstuúùûüvwxyz1234567890_- ,.";
    valido=true;
    cadena=valor;
    for (i=0;i<cadena.length;i++)
    {
	ch=cadena.charAt(i);
	for (j=0;j<cadena2.length;j++)
	{
	    if (ch==cadena2.charAt(j)) break;
							
	}
	if (j == cadena2.length)
	{
	    valido = false;
	    break;
	}
    }
			
	
    if (valido==false)
    {	
	return(false);		
    }
    else
    {
	return(true);
    }		

}

/**********************************************************************/
/*  Esta función recibe como argumento una cadena de caracteres       */
/* y devuelve verdadero si la cadena posée los caracteres '@' y '.'   */
/**********************************************************************/

function es_correo(email)
{		
    if ((email.indexOf("@") == -1) || (email.indexOf(".") == -1))
    {
	return(false);
    }
    else
    {
	return(true);
    }
}
/**********************************************************************/
/*Esta función valida si una fecha introducida es válida              */
/*    Ej: mm/dd/yyyy o mm-dd-yyyy o mm.dd.yyyy                      */
/*    								      */
/* 								      */
/**********************************************************************/	
function validar_fecha( strValue ) {

    var objRegExp = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/
 
    //Revisa si está en el formato correcto
    if(!objRegExp.test(strValue))
	return false; //no se ajusta al patron, fecha no valida
    else{
	var strSeparator = strValue.substring(2,3) //encuentra separador de fechas
	var arrayDate = strValue.split(strSeparator); //separa la fecha en dia, mes y año
	//crea un vector con los meses no iguales a febrero
	var arrayLookup = {
	    '01' : 31,
	    '03' : 31,
	    '04' : 30,
	    '05' : 31,
	    '06' : 30,
	    '07' : 31,
	    '08' : 31,
	    '09' : 30,
	    '10' : 31,
	    '11' : 30,
	    '12' : 31
	}
	var intDay = arrayDate[1]-0; 
	//revisa si el valor del día y del mes son válidos
	if(arrayLookup[arrayDate[0]] != null) {
	    if(intDay <= arrayLookup[arrayDate[0]] && intDay != 0)
		return true; //encontrado en el vector, fecha valida
	}
    
	//revisa febrero
	var intYear = arrayDate[2]-0;
	var intMonth = arrayDate[0]-0;
	if( ((intYear % 4 == 0 && intDay <= 29) || (intYear % 4 != 0 && intDay <=28)) && intDay !=0)
	    return true; //Feb. tiene un número valido de días
    }
    return false; //cualquier otro valor, fecha no valida
}
	
	
/**********************************************************************/
//Validar fecha
//Este codigo JavaScript Permite validar la fecha en formato 00/00/0000. 
//formato fecha: dd/mm/yyyy
//Valida bisiestos y meses de 30 y 31 dias, 
//asegurandose demás de que la fecha sea mayor de 1900.
/**********************************************************************/

function fecha_correcta(fecha)
{ 
    if(fecha)
    {
	borrar = fecha;
	if ((fecha.substr(2,1) == "/") && (fecha.substr(5,1) == "/"))
	{      
	    for (i=0; i<10; i++)
	    {	
		if (((fecha.substr(i,1)<"0") || (fecha.substr(i,1)>"9")) && (i != 2) && (i != 5))
		{
		    borrar = '';
		    break;  
		}  
	    }
	    if (borrar)
	    { 
		a = fecha.substr(6,4);
		m = fecha.substr(3,2);
		d = fecha.substr(0,2);
		//		    if((a < 1900) || (a > 2050) || (m < 1) || (m > 12) || (d < 1) || (d > 31))
		if((a < 1900) || (m < 1) || (m > 12) || (d < 1) || (d > 31))
		{
		    borrar = '';
		}
		else
		{
		    if((a%4 != 0) && (m == 2) && (d > 28))	 
		    {  
			borrar = ''; // Año no biciesto y es febrero y el dia es mayor a 28
		    }
		    else	
		    {
			if ((((m == 4) || (m == 6) || (m == 9) || (m==11)) && (d>30)) || ((m==2) && (d>29)))
			{
			    borrar = '';	    
			}	 
		    }  // else
		} // fin else
	    } // if (error)
	} // if ((fecha.substr(2,1) == "/") && (fecha.substr(5,1) == "/"))			    			
	else
	{
	    borrar = '';
	}
    } // if (fecha)   
    if (borrar == '')  return false;
    else	return true;
}

/**********************************************************************/
//limitar el número de los textarea
//Este codigo JavaScript Permite limitar el número de caracteres de los. 
//campos textarea
/**********************************************************************/

function cuenta(nombre,numero)
{ 
    var cadena="";
	
    if (eval("document.formulario." + nombre + ".value.length>" + numero))
    {
	for (i=0;i<numero;i++)
	{
	    eval("cadena+=document.formulario." + nombre + ".value.charAt(" + i + ")");
	}
		
	eval("document.formulario." + nombre + ".value=cadena");
    }
}

/**********************************************************************/
// enviar
// Este codigo JavaScript permite devolver la ruta del archivo subido al 
// servidor.
/**********************************************************************/
function enviar_datos(valor, campo, directorio)
{
    var elemento = window.opener.document.getElementById(campo);
    var imagen = window.opener.document.getElementById(campo + '_img');
	
    if(elemento != null) elemento.value = valor;
    if(imagen != null) imagen.src = directorio + valor;
} 

function cerrarwindows(valor, campo, directorio)
{ 
    var elemento = window.opener.document.getElementById(campo);
    var imagen = window.opener.document.getElementById(campo + '_img');
	
    if(elemento != null) elemento.value = valor;
    if(imagen != null) imagen.src = directorio + valor;

    window.close();
}

/**********************************************************************/
// Ampliar foto
// Este codigo JavaScript abre un pop-up con una imagen. 
/**********************************************************************/

function abrir(archivo,foto,referencia)
{   
    nueva_ventana=window.open(archivo+ "?foto=" + foto + "&referencia=" + referencia, "" ,"scrollbars=no,toolbar=no,directories=no,menubar=no,left=15,top=15,resizable=no,status=no,width=660,height=550");
}

function passwordLevel (p){
    document.getElementById('nivel_seguridad_cont').style.display='inline';
    pass=document.mform1.password.value;
    l=0;
    v1 = 'aeiou1234567890';
    v2 = 'AEIOUbcdfghjklmnpqrst';
    v3 = 'vxyzBCDFGHJKLMNPQRST';
    v4 = 'VXYZ$@#';
    for (i = 0; i < pass.length; i++){
	if (v1.indexOf(pass[i]) != -1) l += 1;
	else if (v2.indexOf(pass[i]) != -1) l += 2;
	else if (v3.indexOf(pass[i]) != -1) l += 3;
	else if (v4.indexOf(pass[i]) != -1) l += 4;
	else l += 5;
    }

    l *= 3;

    if(l<60){
	document.getElementById('nivel_seguridad').style.backgroundColor="#ff0000"
	j=0;
    }else{
	if(l<80){
	    document.getElementById('nivel_seguridad').style.backgroundColor="#FF9900"	
	}else{
	    document.getElementById('nivel_seguridad').style.backgroundColor="#00CC00"
	}
	j=1;
    }

    if(l > 100){
	document.getElementById('nivel_seguridad').style.width="100%";

    }
    else{
	document.getElementById('nivel_seguridad').style.width=l+"%";	
    }
	


    return j;


}

/**********************************************************************/
// restablecer
// Restablecemos el color de fondo de un input. 
/**********************************************************************/


function restablecer(ele){
    ele.style.background=bgcolor_normal;
}

