$(document).ready(
		function(){
			$("#lphead").append('<div class="l-page-header" style="height: 57px;">'
								+'<h2 class="l-page-title" style="margin-top: 9px;  height: 12px;">'
								+'<span>Perfil Usuario</span></h2></div>');
			componentesEventos();
		});

function componentesEventos(){
	$("#inputCorreo").change(function() {
		var patron = /[A-Za-z0-9+@[a-z]+\.[a-z]+/;
		
		if(patron.test($("#inputCorreo").val())){
			//console.log('Coincide.');
		}else {
			//console.log('No coincide.');
			showWarn("El correo electr\u00F3nico ingresado no tiene formato de correo electr\u00F3nico.");
		}
	});	
	
	$("#inputNuevaContrasena").keyup(function(){
		
		var result = cambiaColorSugerencias($(this).val());
		
		if(!result || $(this).val() !== $("#inputConfirmarContrasena").val()) {
			//$( "#buttonContrasena" ).prop( "disabled", true );
		}
	});
	
	$("#inputConfirmarContrasena").change(function() {
		
		var inputNC = $("#inputConfirmarContrasena").val();
		
		if(inputNC.length >= 8) {
			if(inputNC === $("#inputNuevaContrasena").val()){
				//console.log('validación: Coincide contrasena con contrasena previa y formato');
				//$( "#buttonContrasena" ).prop( "disabled", false );
			}else {
				showWarn("Las contrase\u00F1as no son iguales. ");
			}
		}else {
			showWarn("Revise las contrase\u00F1as. ");
		}
	
	});
	
	$( "#buttonCorreo" ).click(function() {
		llamaActualizaPropiedades("correo");
	});
	
	$( "#buttonContrasena" ).click(function() {
		if(validacionInicial()) {
			llamaActualizaPropiedades("contrasena");
		}else {
			showWarn("Revise las contrase\u00F1as. ");
		}
	});
	
}

function validacionInicial(){
	var inc = $("#inputNuevaContrasena").val();
	var icc = $("#inputConfirmarContrasena").val();
	var vi = (inc.length >= 8 && icc.length >= 8) && inc === icc;
	console.log("vi : ", vi)
	return vi;
}

function cambiaColorSugerencias(cadena){
	cambiaColor((cadena.length >= 8), "#sminimo");
	cambiaColor(validaMayuscula(cadena), "#sletra");
	cambiaColor(validaNumero(cadena), "#snumero");
	cambiaColor(validaSimbolo(cadena), "#scaracter");
	return (cadena.length >= 8);
}

function cambiaColor(cierto, selector){
	if(cierto){
		$(selector).removeClass("rojos");
	}else {
		$(selector).addClass("rojos");
	}
}

function validaMayuscula(cadena){
	var patron = /^(?=.*[A-Z]).*$/;
	return patron.test(cadena);
}

function validaNumero(cadena) {
	var patron = /^(?=.*\d).*$/;
	return  patron.test(cadena);
}

function validaSimbolo(cadena) {
	var patron = /^(?=.*\W+).*$/;
	return  patron.test(cadena);
}

function callActionAjax(actionRoute, jsonActionParameter, functionProcessor){
	
	 $.ajax({
	     url: contextPath + actionRoute,
	     type: 'POST',
	     data:  jsonActionParameter, 
		 dataType: "json",
	     success:function(response){ 
	    	 functionProcessor(response);    
	     },
	     error:function(jqXhr, textStatus, errorThrown){
	         console.error("Error: " + textStatus + " ::: " + errorThrown + " ::: " + jqXhr);
	         showError("Problemas al enviar los datos.");
	     }
	 });
	
}

function procesaActualizaPropiedades(jsonData) {
	//console.info(JSON.stringify(jsonData));
	if(jsonData.exito){
		if(jsonData.operacion == "correo") {
			showMessage("Se actualizo correctamente su correo.");
		}else {
			showMessage("Se actualizo correctamente su contrase\u00F1a.");
		}
		
	}else {
		if(jsonData.operacion == "correo") {
			showError("No se pudo actualizar su correo.");
		}else {
			showError("No se pudo actualizar su contrase\u00F1a.");
		}
		
	}
}

function llamaActualizaPropiedades(operacion) {
	var jsonString = '{"correoElectronico" : "'+ $('#inputCorreo').val() + '", "contrasena" : "' + $('#inputNuevaContrasena').val() + '", "operacion" : "' + operacion +'"}';
	var stringJson = JSON.parse(jsonString);
	callActionAjax( "/admin/usuarios/perfil/llamaActualizaPropiedades", stringJson, procesaActualizaPropiedades);
}
