$(document).ready(function(){
	$("ul > li").hover(
		function() {
			$(this).addClass("over");
		},function() {
			$(this).removeClass("over");
		}
	);
	
	$("form p").hover(
		function(){
			$(this).addClass("over");
		}, function(){
			$(this).removeClass("over");
		}
	)
	$( "#dialog:ui-dialog" ).dialog( "destroy" );
	
	
	var usrLogin = $( "#usrLogin" ),
			usrEmail = $( "#usrEmail" ),
			usrPassword = $( "#usrPassword" ),
			usrPassword2 = $( "#usrPassword2" ),
			allFields = $( [] ).add(usrLogin).add(usrEmail).add(usrPassword).add(usrPassword2),
			tips = $( ".validateTips" );

		function updateTips( t ) {
			tips
				.text( t )
				.addClass( "ui-state-highlight" );
			setTimeout(function() {
				tips.removeClass( "ui-state-highlight", 1500 );
			}, 500 );
		}

		function checkLength( o, n, min, max ) {
			if ( o.val().length > max || o.val().length < min ) {
				o.addClass( "ui-state-error" );
				updateTips( n + " debe estar entre " + min + " y " + max + " caracteres." );
				return false;
			} else {
				return true;
			}
		}

		function checkRegexp( o, regexp, n ) {
			if ( !( regexp.test( o.val() ) ) ) {
				o.addClass( "ui-state-error" );
				updateTips( n );
				return false;
			} else {
				return true;
			}
		}
		
		function repeatPasswrod( o, o2, n){
			if (o.val()!=o2.val()){
				o.addClass( "ui-state-error" );
				o2.addClass( "ui-state-error" );
				updateTips( n );
				return false;
			}else{
				return true
			}
		}
		
		$( "#dialog-form" ).dialog({
			autoOpen: false,
			height: 300,
			width: 350,
			modal: true,
			buttons: {
				"Crear cuenta de usuario": function() {
					var bValid = true;
					allFields.removeClass( "ui-state-error" );

					bValid = bValid && checkLength( usrLogin, "Usuario", 6, 16 );
					bValid = bValid && checkLength( usrEmail, "Email", 6, 80 );
					bValid = bValid && checkLength( usrPassword, "Password", 8, 16 );

					bValid = bValid && checkRegexp( usrLogin, /^[a-z]([0-9a-z_])+$/i, "Usuario sólo puede tener letras, dígitos y guión bajo." );
					bValid = bValid && checkRegexp( usrEmail, /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i, "No es un correo válido" );
					bValid = bValid && checkRegexp( usrPassword, /^([0-9a-zA-Z])+$/, "La password sólo puede tener letras y dígitos" );
					bValid = bValid && repeatPasswrod ( usrPassword, usrPassword2, "Las passwords no coinciden" );

					if ( bValid ) {
						$( "#users tbody" ).append( "<tr>" +
							"<td>" + usrLogin.val() + "</td>" + 
							"<td>" + usrEmail.val() + "</td>" + 
							"<td>" + usrPassword.val() + "</td>" +
						"</tr>" ); 
						
						txtLogin = $("#usrLogin").val();
						txtMail = $("#usrEmail").val();
						txtpassword = $("#usrPassword").val();
						
						$.post("/util.registro.php", { 'usrLogin':txtLogin, 'mail':txtMail, 'password':txtpassword },
							function(data){
								jsonData = eval('(' + data + ')');
								//alert(jsonData.esOk + ", " + jsonData.title + ", " + jsonData.texto);
								//$( "#dialog-form" ).dialog( "close" );

								$( "#dialogMessage" ).attr("title",jsonData.title);
								if (jsonData.esOk){
									$( "#dialogMessage .ui-icon" ).addClass('ui-icon-circle-check');
									$( "#dialogMessage .ui-icon" ).removeClass('ui-icon-alert');
								}else{
									$( "#dialogMessage .ui-icon" ).removeClass('ui-icon-circle-check');
									$( "#dialogMessage .ui-icon" ).addClass('ui-icon-alert');
								}
								$( "#dialogMessage .mensaje" ).text(jsonData.texto);
								$( "#dialog:ui-dialog" ).dialog( "destroy" );
								$( "#dialogMessage" ).dialog({
									modal: true,
									buttons: {
										Ok: function() {
											$( this ).dialog( "close" );
										}
									}
								});
							});
							
						$( "#dialog-form" ).dialog( "close" );
					}
				},
				Cancel: function() {
					$( this ).dialog( "close" );
				}
			},
			close: function() {
				allFields.val( "" ).removeClass( "ui-state-error" );
			}
		});

		$( "#btnRegistro" )
			.click(function() {
				$( "#dialog-form" ).dialog( "open" );
				return false;
		});
		
		if (error!=''){
			mostrarError(error);
		}
});

/* *************************************************** */
/* ****  Funciones para la suscripcion al boletin **** */
/* *************************************************** */
function validarEmail(valor) {
	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(valor)){
		return true;
	} else {
		return false;
	}
}

function codificarCadena(texto){
	var texto = texto.toLowerCase();
	for (i=0; i<texto.length; i++){
		texto=texto.replace('á','a');
		texto=texto.replace('é','e');
		texto=texto.replace('í','i');
		texto=texto.replace('ó','o');
		texto=texto.replace('ú','u');
		texto=texto.replace('ñ','n');
		texto=texto.replace(' ','_');
	}
	return texto;
}

function decodificarCadena(texto){
	var texto = texto.toLowerCase();
	for (i=0; i<texto.length; i++){
		texto=texto.replace('_',' ');
	}
	return texto;
}


function mostrarDialogSuscripcionMessage(esOK, mensaje){
	
	if (esOK){
		$( "#dialogMessage" ).attr("title","Operación realizada con exito");
		$( "#dialogMessage .ui-icon" ).addClass('ui-icon-circle-check');
		$( "#dialogMessage .ui-icon" ).removeClass('ui-icon-alert');
	}else{
		$( "#dialogMessage" ).attr("title","Ha ocurrido un error");
		$( "#dialogMessage .ui-icon" ).removeClass('ui-icon-circle-check');
		$( "#dialogMessage .ui-icon" ).addClass('ui-icon-alert');
	}
	$( "#dialogMessage .mensaje" ).text(mensaje);
	$( "#dialog:ui-dialog" ).dialog( "destroy" );
	$( "#dialogMessage" ).dialog({
		modal: true,
		buttons: {
			Ok: function() {
				$( this ).dialog( "close" );
			}
		}
	});
}


function mostrarError(mensaje){
	if (mensaje!=null && mensaje!=""){
		mostrarDialogSuscripcionMessage(false,mensaje);
	}
}

function suscribir(){
	if (!validarEmail($('#emailSuscripcion').val())){
		mostrarDialogSuscripcionMessage(false, 'La dirección de email es incorrecta o está mal formada' );
	}else{
		$.post("/util.suscribir.php", { email: $('#emailSuscripcion').val() },
			function(data){
				//alert($('#emailSuscripcion').val()+"xxx"+data+"xxx");
				jsonData = eval('(' + data + ')');
				mostrarDialogSuscripcionMessage(jsonData.ok, jsonData.mensaje );
			});
	}
}

function capturaTeclaSuscribir(e){
	if(document.all){
		tecla=e.keyCode;
	}else{
		tecla=e.which;
	}
	if(tecla==13){
		e.stopPropagation();
		e.preventDefault();
		suscribir();
	}
}

function getSiguienteAnterior(aListado,id){
	for (i=0; i<aListado.length; i++){
		if (aListado[i]==id){
			if (i+1<aListado.length){
				stSiguiente = aListado[i+1];
			}
			if (i-1>-1){
				stAnterior = aListado[i-1];
			}
			break;
		}
	}
}

function validar_fComentario() {
	nombre     = $('#fComentario #nombre').val();
	email      = $('#fComentario #email').val();
	comentario = $('#fComentario #comentario').val();
	
	if (nombre=='' || email=='' || comentario ==''){
		mostrarDialogSuscripcionMessage(false, 'Para enviar un comentario debe rellenar los campos marcados con *' );
	}else if (!validarEmail(email)){
		mostrarDialogSuscripcionMessage(false, 'La dirección de email es incorrecta o está mal formada' );
	}else{
		mostrarDialogSuscripcionMessage(true, 'Su comentario se ha enviado correctamente. Queda pendiente de moderación' );
		$('#fComentario').submit();
	}

}

 

