// Parametros para validar el formulario
jQuery.validator.addMethod("time",function(value,element){
	return this.optional(element) || /^(0[9]|1\d|2[0-3]):([0-5]\d)/.test(value); 
});

function funcionValidacion(){
	lugar_entrega =  $('#lugarEntregaList').val();
	total_pedido  = parseFloat( $('#carro_total_pedido').val() );
	pedido_minimo = parseFloat( $('#carro_importe_minimo').val() );
	return lugar_entrega == 'domicilio' && total_pedido > pedido_minimo;
}
reglasValidacion = {
		nombre: {required: true, minlength: 2}, 
		tipoVia: {required: funcionValidacion, minlength: 2},
		nombreVia: {required: funcionValidacion, minlength: 2}, 
		numero: {required: funcionValidacion, minlength: 1, number: true}, 
		codigoPostal: {required: funcionValidacion, minlength: 5}, 
		localidadList: {required: funcionValidacion, minlength: 2}, 
		telefono: {required: funcionValidacion, minlength: 9},
		movil: {required: true, minlength: 9},
		horaDe: {required:funcionValidacion, time:true}
}
	
	
$(document).ready(function(){
	
	//valida el formulario
	$("#datos").validate({
       rules: reglasValidacion,
	   errorContainer: "#error",
	   submitHandler:function(form){ 
			$(form).ajaxSubmit({
				url: 'carro_graba_datos_usuario.php',
				//dataType: 'json',
				success: function() { 
					location.replace("14_pedidos_online_compra3.php"); 
					} 
				}
			);	
	   	}
	});

	// Al entrar en la pagina recupera datos
	$.getJSON('carro_recupera_datos_usuario.php', function(datos) {
		valorMovil = $('#movil').attr('value')
		valorHoraDe = $('.horaDe').attr("value")
		
		$('#datos').populate(datos);	
		if(datos.provinciaList){
			$('#provinciaList').val([datos.provinciaList]);	
		}else{
			$('#provinciaList').val(['Pontevedra']);
		}
		
		if ( $('#lugarEntregaList').val() == "local" || ! $('#lugarEntregaList').val()){
			$('.entregaDomicilio').hide()
			$('.entregaLocal').show()
		}else{
			$('.entregaDomicilio').show()
			$('.entregaLocal').hide()
		} 
		
		if ( $('#movil').val() == '') $('#movil').val( valorMovil)
		if ( $('.horaDe').val() == '')$('.horaDe').val(valorHoraDe)


										                 			
	});	
														
	// Al avanzar de  pagina graba datos
	$('#compra3, a#tabCompra3').click(function(e){
		if ( $('#movil').val() == valorMovil )			$('#movil').val('')
		if ( $('.horaDe').val() == valorHoraDe )		$('.horaDe').val('')
		if ( $('#lugarEntregaList').val() == "local")	$('.horaA').val('')
		
		$('#datos').submit();
		e.preventDefault();
	});
		
	//Si se pulsa "A mi mismo" recupera datos de usuario registrado
	$('#ami').click(function(){
		$.getJSON('carro_recupera_datos_usuario.php', {aquien:'ami'}, function(datos) {
			$('#datos').populate(datos);	
			$('#provinciaList').val([datos.provinciaList]);									                 			
		});	
	});
	
	//borra el formulario
	$("#borrar").click(function(){
		$("#datos").clearForm();
		return false;
	});
	
	//Si escoje local domicilio muestra opciones
	var lugarEntrega = $('#lugarEntregaList');
	lugarEntrega.click(function(){
		if (lugarEntrega.val() == "local"){
			$('.entregaDomicilio').hide()
			$('.entregaLocal').show()
		}else{
			$('.entregaDomicilio').show()
			$('.entregaLocal').hide()
		} 
	});
	
	
	//regula textos informativos
	movil = $('#movil');
	valor_movil = movil.attr("value");
	movil.focus(function(){
		if( $(this).val() ==  valorMovil) $(this).val('');
	});
	movil.blur(function(){
		if($(this).val() == '') $(this).val(valor_movil);
	});
	
	horaDe = $('.horaDe');
	valor_horaDe = horaDe.attr("value");
	horaDe.focus(function(){
		if($(this).val() == valorHoraDe) $(this).val('');
	});
	
	//Valida hora de entrega
	horaDe.blur(function(e){
		if($(this).val() == ''){
			$(this).val(valor_horaDe)
		}else{
			//Correciones control hora
			$(this).val( $.trim( $(this).val() ) );
			$horaDe = $(this).val()
			var timeExpression = /^(0[1-9]|1\d|2[0-3]):([0-5]\d)/;
			var valresult = $horaDe.match(timeExpression);
			if (valresult==null) {
				e.preventDefault;
				alert("Hora o formato de hora incorrecto. \nIntroduzca una hora con el formato hh:mm \n(ejemplo 09:05)");
				return false;
			}else if( valresult[1] < 9 || valresult[1] > 23 ){
				alert( 'fuera del horario de entrega' )
			}else{
				var $horaA = Date.parse($horaDe).addMinutes(30).toString("HH:mm tt")
				$('#horaA').val($horaA)
			}
		} 
	});
	
	
	
});
