1) the x axis is not seen because the automatic x axis is created from [0, 0] to [1, 0]. Important to note is that it is created at y = 0. That is not visible since your graph starts at y = 350. So you need to create your own axes and place them appropriately:
var brd1 = JXG.JSXGraph.initBoard('box1', {boundingbox: [-0.1, 400, 1.1,350 ], axis: false, grid: false, keepaspectratio: false});
var x = brd1.create('axis', [[0, 355], [1, 355]], {name: 'x'});
var y = brd1.create('axis', [[0, 0], [0, 1]], {name: 'y'});
2) what do you mean by "shaded area"? The box with the border surrounding both box1 and box2? That's because you apply the border to the div surrounding both box1 and box2 but not to the boxes themselves.