function validarRequerido(v)
{
	if (v=='')
		return false;
    return true;
}

function validarNumero(v)
{
	var regex = /^\d+$/; // Cadena regular que representa el formato que debe tener la fecha
    if(!regex.test(v))
	    return false;
    return true;
}

function validarFecha(v)
{
	var regex = /^(\d{2})\/(\d{2})\/(\d{4})$/; // Cadena regular que representa el formato que debe tener la fecha
    if(!regex.test(v))
	    return false;
    
    var d = new Date(v.replace(regex, '$2/$1/$3')); // Esta linea hay que dejarla tal cual esta, pq sino puede que de una fecha invalida
    if (!(( parseInt(RegExp.$2, 10) == (1+d.getMonth()) ) && 
    		(parseInt(RegExp.$1, 10) == d.getDate()) &&
           (parseInt(RegExp.$3, 10) == d.getFullYear() )))
	    return false;
	return true;
}

/* Funciones para experiencia */
function cargarExperiencia()
{
	$('#ind_exp').show('fast');
	var nom = $('#exp_nom').val();
    var fec = $('#exp_fec').val();
    var acc_exp = $('#acc_exp').val();
    var id_exp = $('#id_exp').val();
    var dat_arr_exp = $('#dat_arr_exp').val();
    var error = 0;
    
    // Validacion de campos
    if (!validarRequerido(nom))
    {
    	$('#exp_nom').addClass("error");
    	$('#err_exp_nom').css({'display':'block' });    	
    	error = 1;
    }    
    if (fec != '' && !validarFecha(fec))
	{
		$('#exp_fec').addClass("error");
 		$('#err_exp_fec').css({'display':'block' });    
 		error = 1;
    }     
    
    // Devolvemos falso en el caso de haber errores
    if (error==1)
    {
    	$('#ind_exp').hide('slow');
    	return false;
    }
        
    var peticion = $.ajax({
    	async: true,        
	    url:  '/demanda/experiencia',
	    type: 'POST',
	    data: { acc_exp: acc_exp, nom: nom, fec: fec, dat_arr_exp: dat_arr_exp, id_exp: id_exp },
        success: function(html){
	        $("#div_exp").html(html);
	        limpiarExperiencia();
	        $('#ind_exp').hide('slow');
	      },
	    error: function(html){
	             alert("El proceso cargarExperiencia ha fallado!");
	        }
	  });		
}

function editarExperiencia(id)
{    
	$('#ind_exp').show('fast');
	var id_exp = id;
	var dat_arr_exp = $('#dat_arr_exp').val();
	
	var peticion = $.ajax({
        async: true,        
        url:  '/demanda/editarExperiencia',
        type: 'POST',
        data: { id_exp: id_exp, dat_arr_exp: dat_arr_exp },
        success: function(html){
            $("#div_form_exp").html(html);       
            $('#acc_exp').attr('value','edi');
            $('#id_exp').attr('value',id);
            $('#ind_exp').hide('slow');
          },
        error: function(html){
                 alert("El proceso editarExperiencia ha fallado!");
            }
      });   
}

function eliminarExperiencia(id)
{    
	$('#ind_exp').show('fast');
	var id_exp = id;
    var dat_arr_exp = $('#dat_arr_exp').val();
    
    var peticion = $.ajax({
        async: true,        
        url:  '/demanda/eliminarExperiencia',
        type: 'POST',
        data: { id_exp: id_exp, dat_arr_exp: dat_arr_exp },
        success: function(html){
            $("#div_exp").html(html); 
            $('#ind_exp').hide('slow');
          },
        error: function(html){
                 alert("El proceso eliminarExperiencia ha fallado!");
            }
      });   
}

function limpiarExperiencia()
{
	$('#ind_exp').show('fast');
	$('#exp_nom').attr('value','');
	$('#err_exp_nom').css({'display':'none' });
	$('#exp_nom').removeClass("error");
    $('#exp_fec').attr('value','');
    $('#exp_fec').removeClass("error");
    $('#err_exp_fec').css({'display':'none' });
    $('#acc_exp').attr('value','new');
    $('#id_exp').attr('value','');
    $('#ind_exp').hide('slow');
    
}

/* Funciones para formacion reglada */
function cargarFormacionReglada()
{
	$('#ind_for_reg').show('fast');
	var nom = $('#for_reg_nom').val();
    var fec = $('#for_reg_fec').val();
    var acc_for_reg = $('#acc_for_reg').val();
    var id_for_reg = $('#id_for_reg').val();
    var dat_arr_for_reg = $('#dat_arr_for_reg').val();
    var error = 0;
    
    // Validacion de campos
    if (!validarRequerido(nom))
    {
    	$('#for_reg_nom').addClass("error");
    	$('#err_for_reg_nom').css({'display':'block' });    	
    	error = 1;
    }    
    if (fec != '' && !validarFecha(fec))
	{
		$('#for_reg_fec').addClass("error");
 		$('#err_for_reg_fec').css({'display':'block' });    
 		error = 1;
    }     
    
    // Devolvemos falso en el caso de haber errores
    if (error==1)
    {
    	$('#ind_for_reg').hide('slow');
    	return false;    
    }
    
    var peticion = $.ajax({
    	async: true,        
	    url:  '/demanda/formacionReglada',
	    type: 'POST',
	    data: { acc_for_reg: acc_for_reg, nom: nom, fec: fec, dat_arr_for_reg: dat_arr_for_reg, id_for_reg: id_for_reg },
        success: function(html){
	        $("#div_for_reg").html(html);
	        limpiarFormacionReglada();
	        $('#ind_for_reg').hide('slow');
	      },
	    error: function(html){
	             alert("El proceso cargarFormacionReglada ha fallado!");
	        }
	  });		
}

function editarFormacionReglada(id)
{    
	$('#ind_for_reg').show('fast');
	var id_for_reg = id;
	var dat_arr_for_reg = $('#dat_arr_for_reg').val();
	
	var peticion = $.ajax({
        async: true,        
        url:  '/demanda/editarFormacionReglada',
        type: 'POST',
        data: { id_for_reg: id_for_reg, dat_arr_for_reg: dat_arr_for_reg },
        success: function(html){
            $("#div_form_for_reg").html(html);       
            $('#acc_for_reg').attr('value','edi');
            $('#id_for_reg').attr('value',id);
            $('#ind_for_reg').hide('slow');
          },
        error: function(html){
                 alert("El proceso editarFormacionReglada ha fallado!");
            }
      });   
}

function eliminarFormacionReglada(id)
{    
	$('#ind_for_reg').show('fast');
	var id_for_reg = id;
    var dat_arr_for_reg = $('#dat_arr_for_reg').val();
    
    var peticion = $.ajax({
        async: true,        
        url:  '/demanda/eliminarFormacionReglada',
        type: 'POST',
        data: { id_for_reg: id_for_reg, dat_arr_for_reg: dat_arr_for_reg },
        success: function(html){
            $("#div_for_reg").html(html);   
            $('#ind_for_reg').hide('slow');
          },
        error: function(html){
                 alert("El proceso eliminarFormacionReglada ha fallado!");
            }
      });   
}

function limpiarFormacionReglada()
{
	$('#ind_for_reg').show('fast');
	$('#for_reg_nom').attr('value','');
	$('#err_for_reg_nom').css({'display':'none' });
	$('#for_reg_nom').removeClass("error");
    $('#for_reg_fec').attr('value','');
    $('#err_for_reg_fec').css({'display':'none' });
	$('#for_reg_fec').removeClass("error");
    $('#acc_for_reg').attr('value','new');
    $('#id_for_reg').attr('value','');
    $('#ind_for_reg').hide('slow');    
}


/* Funciones para formacion NO reglada */
function cargarFormacionNoReglada()
{
	$('#ind_for_no_reg').show('fast');
	var nom = $('#for_no_reg_nom').val();
    var hor = $('#for_no_reg_hor').val();
    var acc_for_no_reg = $('#acc_for_no_reg').val();
    var id_for_no_reg = $('#id_for_no_reg').val();
    var dat_arr_for_no_reg = $('#dat_arr_for_no_reg').val();
    var error = 0;
    
    // Validacion de campos
    if (!validarRequerido(nom))
    {
    	$('#for_no_reg_nom').addClass("error");
    	$('#err_for_no_reg_nom').css({'display':'block' });    	
    	error = 1;
    }    
    if (!validarRequerido(hor) || !validarNumero(hor))
	{
    	$('#for_no_reg_hor').addClass("error");
 		$('#err_for_no_reg_hor').css({'display':'block' });    
 		error = 1;
    }     
    
    // Devolvemos falso en el caso de haber errores
    if (error==1)
    {
    	$('#ind_for_no_reg').hide('slow');
    	return false;    
    }
    
    var peticion = $.ajax({
    	async: true,        
	    url:  '/demanda/formacionNoReglada',
	    type: 'POST',
	    data: { acc_for_no_reg: acc_for_no_reg, nom: nom, hor: hor, dat_arr_for_no_reg: dat_arr_for_no_reg, id_for_no_reg: id_for_no_reg },
        success: function(html){
	        $("#div_for_no_reg").html(html);
	        limpiarFormacionNoReglada();
	        $('#ind_for_no_reg').hide('slow');
	      },
	    error: function(html){
	             alert("El proceso cargarFormacionNoReglada ha fallado!");
	        }
	  });		
}

function editarFormacionNoReglada(id)
{    
	$('#ind_for_no_reg').show('fast');
	var id_for_no_reg = id;
	var dat_arr_for_no_reg = $('#dat_arr_for_no_reg').val();
	
	var peticion = $.ajax({
        async: true,        
        url:  '/demanda/editarFormacionNoReglada',
        type: 'POST',
        data: { id_for_no_reg: id_for_no_reg, dat_arr_for_no_reg: dat_arr_for_no_reg },
        success: function(html){
            $("#div_form_for_no_reg").html(html);       
            $('#acc_for_no_reg').attr('value','edi');
            $('#id_for_no_reg').attr('value',id);
            $('#ind_for_no_reg').hide('slow');
          },
        error: function(html){
                 alert("El proceso editarFormacionNoReglada ha fallado!");
            }
      });   
}

function eliminarFormacionNoReglada(id)
{    
	$('#ind_for_no_reg').show('fast');
	var id_for_no_reg = id;
    var dat_arr_for_no_reg = $('#dat_arr_for_no_reg').val();
    
    var peticion = $.ajax({
        async: true,        
        url:  '/demanda/eliminarFormacionNoReglada',
        type: 'POST',
        data: { id_for_no_reg: id_for_no_reg, dat_arr_for_no_reg: dat_arr_for_no_reg },
        success: function(html){
            $("#div_for_no_reg").html(html);  
            $('#ind_for_no_reg').hide('slow');
          },
        error: function(html){
                 alert("El proceso eliminarFormacionNoReglada ha fallado!");
            }
      });   
}

function limpiarFormacionNoReglada()
{
	$('#ind_for_no_reg').show('fast');
	$('#for_no_reg_nom').attr('value','');
	$('#err_for_no_reg_nom').css({'display':'none' });
	$('#for_no_reg_nom').removeClass("error");
    $('#for_no_reg_hor').attr('value','');
    $('#err_for_no_reg_hor').css({'display':'none' });
	$('#for_no_reg_hor').removeClass("error");
    $('#acc_for_no_reg').attr('value','new');
    $('#id_for_no_reg').attr('value','');
    $('#ind_for_no_reg').hide('slow');
}


/* Funciones para IDIOMA */
function cargarIdioma()
{
	$('#ind_idi').show('fast');
	var nom = $('#idi_nom').val();
    var niv_hab = $('#idi_niv_hab').val();
    var niv_esc = $('#idi_niv_esc').val();
    var niv_tra = $('#idi_niv_tra').val();    
    var acc_idi = $('#acc_idi').val();
    var id_idi = $('#id_idi').val();
    var dat_arr_idi = $('#dat_arr_idi').val();
    var error = 0;
    
    // Validacion de campos
    if (!validarRequerido(nom))
    {
    	$('#idi_nom').addClass("error");
    	$('#err_idi_nom').css({'display':'block' });    	
    	error = 1;
    }    
    if (!validarRequerido(niv_hab))
	{
    	$('#idi_niv_hab').addClass("error");
 		$('#err_idi_niv_hab').css({'display':'block' });    
 		error = 1;
    } 
    if (!validarRequerido(niv_esc))
	{
    	$('#idi_niv_esc').addClass("error");
 		$('#err_idi_niv_esc').css({'display':'block' });    
 		error = 1;
    }
    if (!validarRequerido(niv_tra))
	{
    	$('#idi_niv_tra').addClass("error");
 		$('#err_idi_niv_tra').css({'display':'block' });    
 		error = 1;
    }
    
    // Devolvemos falso en el caso de haber errores
    if (error==1)
    {
    	$('#ind_idi').hide('slow');
    	return false;    
    }
    
    var peticion = $.ajax({
    	async: true,        
	    url:  '/demanda/idioma',
	    type: 'POST',
	    data: { acc_idi: acc_idi, nom: nom, niv_hab: niv_hab, niv_esc: niv_esc, niv_tra: niv_tra, dat_arr_idi: dat_arr_idi, id_idi: id_idi },
        success: function(html){
	        $("#div_idi").html(html);
	        limpiarIdioma();
	        $('#ind_idi').hide('slow');
	      },
	    error: function(html){
	             alert("El proceso cargarIdioma ha fallado!");
	        }
	  });		
}

function editarIdioma(id)
{    
	$('#ind_idi').show('fast');
	var id_idi = id;
	var dat_arr_idi = $('#dat_arr_idi').val();
	
	var peticion = $.ajax({
        async: true,        
        url:  '/demanda/editarIdioma',
        type: 'POST',
        data: { id_idi: id_idi, dat_arr_idi: dat_arr_idi },
        success: function(html){
            $("#div_form_idi").html(html);       
            $('#acc_idi').attr('value','edi');
            $('#id_idi').attr('value',id);
            $('#ind_idi').hide('slow');
          },
        error: function(html){
                 alert("El proceso editarIdioma ha fallado!");
            }
      });   
}

function eliminarIdioma(id)
{    
	$('#ind_idi').show('fast');
	var id_idi = id;
    var dat_arr_idi = $('#dat_arr_idi').val();
    
    var peticion = $.ajax({
        async: true,        
        url:  '/demanda/eliminarIdioma',
        type: 'POST',
        data: { id_idi: id_idi, dat_arr_idi: dat_arr_idi },
        success: function(html){
            $("#div_idi").html(html);      
            $('#ind_idi').hide('slow');
          },
        error: function(html){
                 alert("El proceso eliminarIdioma ha fallado!");
            }
      });   
}

function limpiarIdioma()
{	
	$('#ind_idi').show('fast');
	$('#idi_nom option[value=""]').attr("selected",true);
	$('#err_idi_nom').css({'display':'none' });
	$('#idi_nom').removeClass("error");
    $('#idi_niv_hab option[value=""]').attr("selected",true);
    $('#err_idi_niv_hab').css({'display':'none' });
	$('#idi_niv_hab').removeClass("error");
    $('#idi_niv_esc option[value=""]').attr("selected",true);
    $('#err_idi_niv_esc').css({'display':'none' });
	$('#idi_niv_esc').removeClass("error");
    $('#idi_niv_tra option[value=""]').attr("selected",true);
    $('#err_idi_niv_tra').css({'display':'none' });
	$('#idi_niv_tra').removeClass("error");
    $('#acc_idi').attr('value','new');
    $('#id_idi').attr('value','');
    $('#ind_idi').hide('slow');
}


/* Funciones para INFORMATICA */
function cargarInformatica()
{
	$('#ind_inf').show('fast');
	var nom = $('#inf_nom').val();
    var niv = $('#inf_niv').val();    
    var acc_inf = $('#acc_inf').val();
    var id_inf = $('#id_inf').val();
    var dat_arr_inf = $('#dat_arr_inf').val();
    var error = 0;
    
    // Validacion de campos
    if (!validarRequerido(nom))
    {
    	$('#inf_nom').addClass("error");
    	$('#err_inf_nom').css({'display':'block' });    	
    	error = 1;
    }    
    if (!validarRequerido(niv))
	{
    	$('#inf_niv').addClass("error");
 		$('#err_inf_niv').css({'display':'block' });    
 		error = 1;
    } 
    
    // Devolvemos falso en el caso de haber errores
    if (error==1)
    {
    	$('#ind_inf').hide('slow');
    	return false;    
    }
    
    var peticion = $.ajax({
    	async: true,        
	    url:  '/demanda/informatica',
	    type: 'POST',
	    data: { acc_inf: acc_inf, nom: nom, niv: niv, dat_arr_inf: dat_arr_inf, id_inf: id_inf },
        success: function(html){
	        $("#div_inf").html(html);
	        limpiarInformatica();
	        $('#ind_inf').hide('slow');
	      },
	    error: function(html){
	             alert("El proceso cargarInformatica ha fallado!");
	        }
	  });		
}

function editarInformatica(id)
{    
	$('#ind_inf').show('fast');
	var id_inf = id;
	var dat_arr_inf = $('#dat_arr_inf').val();
	
	var peticion = $.ajax({
        async: true,        
        url:  '/demanda/editarInformatica',
        type: 'POST',
        data: { id_inf: id_inf, dat_arr_inf: dat_arr_inf },
        success: function(html){
            $("#div_form_inf").html(html);       
            $('#acc_inf').attr('value','edi');
            $('#id_inf').attr('value',id);
            $('#ind_inf').hide('slow');
          },
        error: function(html){
                 alert("El proceso editarInformatica ha fallado!");
            }
      });   
}

function eliminarInformatica(id)
{    
	$('#ind_inf').show('fast');
	var id_inf = id;
    var dat_arr_inf = $('#dat_arr_inf').val();
    
    var peticion = $.ajax({
        async: true,        
        url:  '/demanda/eliminarInformatica',
        type: 'POST',
        data: { id_inf: id_inf, dat_arr_inf: dat_arr_inf },
        success: function(html){
            $("#div_inf").html(html);  
            $('#ind_inf').hide('slow');
          },
        error: function(html){
                 alert("El proceso eliminarInformatica ha fallado!");
            }
      });   
}

function limpiarInformatica()
{	
	$('#ind_inf').show('fast');
	$('#inf_nom').attr('value','');
	$('#err_inf_nom').css({'display':'none' });
	$('#inf_nom').removeClass("error");
    $('#inf_niv option[value=""]').attr("selected",true);
    $('#err_inf_niv').css({'display':'none' });
	$('#inf_niv').removeClass("error");
    $('#acc_inf').attr('value','new');
    $('#id_inf').attr('value','');
    $('#ind_inf').hide('slow');
}


$(document).ready(function()
{
    // Validar formulario demanda
	$("#formDem").validate({		
		messages: {
			'demanda[nom]': "Campo obligatorio",
			'demanda[ape]': "Campo obligatorio",
			'demanda[nif]': "Campo obligatorio",
			'demanda[fec_nac]': {
				required: "Campo obligatorio",				
				date: "Formato de fecha incorrecto (dd/mm/aaaa)"
			},
			'demanda[tel_001]': {
				required: "Campo obligatorio",				
				number: "Formato incorrecto, solo numeros.",
				minlength: "Introducir 9 digitos"
			},
			'demanda[cp]': {								
				number: "Formato incorrecto, solo numeros.",
				minlength: "Introducir 5 digitos"
			},
			'demanda[pro]': "Campo obligatorio",
			'demanda[ema]': {								
				email: "Formato incorrecto."
			},
			'demanda[tel_002]': {
				required: "Campo obligatorio",				
				number: "Formato incorrecto, solo numeros.",
				minlength: "Introducir 9 digitos"
			}
		}
	});

	// Validar formulario oferta
	$("#formOfe").validate({		
		messages: {
			'oferta[emp]': "Campo obligatorio",
			'oferta[ntr]': {
				number: "Formato incorrecto, solo numeros."
			},	
			'oferta[per_con]': "Campo obligatorio",
			'oferta[pro]': "Campo obligatorio",
			'oferta[nom_pue]': "Campo obligatorio",
			'oferta[tip_con]': "Campo obligatorio",
			'oferta[req_for]': "Campo obligatorio",
			'oferta[ema]': {								
				email: "Formato incorrecto."
			},
			'oferta[tel_001]': {							
				number: "Formato incorrecto, solo numeros.",
				minlength: "Introducir 9 digitos"
			},
			'oferta[tel_002]': {								
				number: "Formato incorrecto, solo numeros.",
				minlength: "Introducir 9 digitos"
			},
			'oferta[pue_nom]': "Campo obligatorio",
			'oferta[pue_num]': {								
				number: "Formato incorrecto, solo numeros."				
			},
			'oferta[con_tip]': "Campo obligatorio"
		}
	});

	
	// EXPERIENCIA PROFESIONAL
    $("#bot_exp").click(cargarExperiencia); 
    $("#bot_limp_exp").click(limpiarExperiencia); 
    // FORMACION REGLADA
    $("#bot_for_reg").click(cargarFormacionReglada); 
    $("#bot_limp_for_reg").click(limpiarFormacionReglada); 
    // FORMACION REGLADA
    $("#bot_for_no_reg").click(cargarFormacionNoReglada); 
    $("#bot_limp_for_no_reg").click(limpiarFormacionNoReglada); 
    // IDIOMA
    $("#bot_idi").click(cargarIdioma); 
    $("#bot_limp_idi").click(limpiarIdioma); 
    // INFORMATICA
    $("#bot_inf").click(cargarInformatica); 
    $("#bot_limp_inf").click(limpiarInformatica); 
    
    // Lo pongo porque sino al actualizar la pagina directamente, en el caso de editar se queda marcado el editar
    $('#acc_exp').attr('value','new');
    $('#id_exp').attr('value','');  
    $('#acc_for_reg').attr('value','new');
    $('#id_for_reg').attr('value','');
    $('#acc_for_no_reg').attr('value','new');
    $('#id_for_no_reg').attr('value','');
    $('#acc_idi').attr('value','new');
    $('#id_idi').attr('value','');
    $('#acc_inf').attr('value','new');
    $('#id_inf').attr('value','');
});
