var cont = 0;       // contador
    
function marcarCheck(literal,id,o_hidden,bloquear,nBloqueo) {


    var cadena = "";    // cadena de valores
    var b = id;         //  valor que se quiere añadir o quitar
    var o_check = document.getElementById(literal+id); // check que se marca o desmarca
    var o_check_hidden = document.getElementById(o_hidden); // campo oculto que contiene los valores marcados
                        // bloquear --> si se bloqueara la inserción de datos cuando se llega al valor nBloqueo
    var bInsert = true;
    var bRestar = false;
                        
    if (o_check_hidden) { cadena = o_check_hidden.value; }          
    var arr_valores = cadena.split(",");                      
        
    cont += 1;
    var cadena_original = cadena;
    
    if (cadena=="") {       
        if (bloquear) {
            if (cont>nBloqueo) {
                cont = parseInt(nBloqueo);
                bInsert = false;
                o_check.checked = false;
                alert("No se pueden seleccionar más datos " + cont);
            }                         
        }
        
    } else {
       
        var arr_valores = cadena.split(",");  
        cadena = "";         
        for (i=0;i<=arr_valores.length-1;i++) {       
            if (o_check.checked) {	                      	
	            if (bloquear) {
	                if (cont>nBloqueo) {
	                   cont = parseInt(nBloqueo);
	                   bInsert = false;
	                   o_check.checked = false;
	                   cadena = cadena_original;
	                   alert("No se pueden seleccionar más datos");
	                   break;
	                } 
	            }
	            if (bInsert) { 
	                cadena += arr_valores[i] + ","; 
	            }	
            } else {  
                bInsert = false;
                bRestar = true;
                if (parseFloat(b) != parseFloat(arr_valores[i])) {
                    cadena += arr_valores[i] + ",";	                    
                } else {
                    if (arr_valores.length==1) {                        
                        cadena = "";
                    }
                }         
            }            
        }
    }
    
    if (bInsert) { 
        cadena += id + ",";      
    } else {
        if (bRestar) {
            cont -= 2; // porque ya le sumé uno
        }
    }   

    if (cadena.substring(cadena.length,cadena.length - 1)==",") { cadena = cadena.substring(0,cadena.length - 1); } // por si acaba en coma (,)
    o_check_hidden.value = cadena;
}    
