$().ready(function() {

    // MANIPULACIÓN DEL SELECT MULTIPLE

    $.getJSON("/candidatos/alta/ajaxcategorias", function(p_categorias) {
        var categoriasWrapperHtml = '<select size="16" class="select_multi" multiple="multiple" name="categorias_sel[]" id="categorias_sel">' +
                    '</select>';
        $("#categoriasWrapper").html(categoriasWrapperHtml);

        var aContenedor = new Array;
        for (i = 0; i < p_categorias.length; i++) {
            aContenedor[i] = new Object();
            aContenedor[i].text = p_categorias[i]["VALOR"];
            aContenedor[i].value = p_categorias[i]["ID_CATEGORIA"];
            aContenedor[i].padre = p_categorias[i]["VALOR_PADRE"];
            aContenedor[i].id_padre = p_categorias[i]["FK_ID_CATEGORIA"];
            aContenedor[i].from = true;
            aContenedor[i].to = false;
            aContenedor[i].hijas = p_categorias[i]["HIJAS"];
        }

        $("#p_categorias").dblclick(function(){
            moverSelect(aContenedor, $("#p_categorias option:selected").val(), "p_categorias", "categorias_sel", false, true, "select_group");
        });
        $("#btnCategoriasAdd").click(function(){
            moverTodosSelect(aContenedor, "p_categorias", "p_categorias", "categorias_sel", false, true, "select_group");
        });
        $("#categorias_sel").dblclick(function(){
            moverSelect(aContenedor, $("#categorias_sel option:selected").val(), "p_categorias", "categorias_sel", true, false, "select_group");
        });
        $("#btnCategoriasRemove").click(function(){
            moverTodosSelect(aContenedor, "categorias_sel", "p_categorias", "categorias_sel", true, false, "select_group");
        });
        $("#submitForm").click(function(){
            moverTodosSelect(aContenedor, "p_categorias", "p_categorias", "categorias_sel", false, true, "select_group");
            $("#categorias_sel").each(function(){
                $("#categorias_sel option").attr("selected","selected");
            });
        });
        moverTodosSelect(aContenedor, "p_categorias", "p_categorias", "categorias_sel", false, true, "select_group");
    });

    $.getJSON("/candidatos/alta/ajaxprovincias", function(p_provincias) {
        var provinciasWrapperHtml = '<select size="5" multiple="multiple" name="provincias_sel[]" id="provincias_sel" class="select_multi">' +
                    '</select>';
        $("#provinciasWrapper").html(provinciasWrapperHtml);

        var aContenedor = new Array;
        for (i = 0; i < p_provincias.length; i++) {
            aContenedor[i] = new Object();
            aContenedor[i].text = p_provincias[i]["VALOR"];
            aContenedor[i].value = p_provincias[i]["ID_PROVINCIA"];
            aContenedor[i].from = true;
            aContenedor[i].to = false;
        }

        $("#p_provincias").dblclick(function(){
            moverSelect(aContenedor, $("#p_provincias option:selected").val(), "p_provincias", "provincias_sel", false, true);
        });
        $("#btnProvinciasAdd").click(function(){
            moverTodosSelect(aContenedor, "p_provincias", "p_provincias", "provincias_sel", false, true);
        });
        $("#provincias_sel").dblclick(function(){
            moverSelect(aContenedor, $("#provincias_sel option:selected").val(), "p_provincias", "provincias_sel", true, false);
        });
        $("#btnProvinciasRemove").click(function(){
            moverTodosSelect(aContenedor, "provincias_sel", "p_provincias", "provincias_sel", true, false);
        });
        $("#submitForm").click(function(){
            moverTodosSelect(aContenedor, "p_provincias", "p_provincias", "provincias_sel", false, true);
            $("#provincias_sel").each(function(){
                $("#provincias_sel option").attr("selected","selected");
            });
        });
        moverTodosSelect(aContenedor, "p_provincias", "p_provincias", "provincias_sel", false, true);
    });

    // VALIDACIÓN DEL FORMULARIO
    $("#p_email").focus();
    var errorWrapperHtml = '<div id="error"><span id="errorForm"></span></div>';
    $("#errorWrapper").html(errorWrapperHtml);
    $("#errorWrapper").hide();
    $("#formulario").validate({
        onkeyup: false,
        onfocusout: false,
        onclick: false,
		rules: {
			p_email: {
				required: true,
				email: true,
				maxlength: 255
			},
			"categorias_sel[]": {
			    required: true
			},
			"provincias_sel[]": {
			    required: true
			}
		},
		messages: {
			p_email: {
			    required: "&#8226; " + aErrores['ERR0001'],
			    email: "&#8226; " + aErrores['ERR0001'],
			    maxlength: "&#8226; " + jQuery.format(aErrores['ERR0003'], $("label[for='p_email']").attr("title"))
			},
			"categorias_sel[]": {
			    required: "&#8226; " + aErrores['ERR0006']
			},
			"provincias_sel[]": {
			    required: "&#8226; " + aErrores['ERR0007']
			}
		},
		errorLabelContainer: "#errorForm",
		errorElement: "p",
        showErrors: function(errorMap, errorList) {
            $("#errorWrapper").hide();
            $("#errorFormWrapper").hide();
            $("#errorForm").html("");
            if (this.numberOfInvalids() > 0) {
                $("#errorWrapper").show();
        	    this.defaultShowErrors();
        	    window.location.hash="form";
            } else {
                $("#submitForm").attr("disabled", "disabled");
            }
        }
    });
});
