ct.left, e.clientY - canvas_rect.top);
        }
    }, false);

    solver.addEventListener('mousedown', function(e){
        invalidate_solver_2(e.clientX, e.clientY);
        var canvas_rect = solver.getBoundingClientRect();
        solver_2_eq_temp_id = find_nearest_eqution_id("solver_2", e.clientX - canvas_rect.left, e.clientY - canvas_rect.top);
    }, false);
    
    solver.addEventListener('mouseup', function(e){
        invalidate_solver_2(e.clientX, e.clientY);
    }, false);

    solver.addEvent