Javascript (ES6ES7 Draft) 115
f=l=>[['O |/\\-'[y^x?z+~x^y?y^l?x^l?1:2:5:3:x^l&&4]for(x in _)].join('')for(y in _=[...Array(z=2*l+1)])].join('\n')
// Snippet demo: (Firefox only)
for(var X of [0,1,2,3,4,5])
document.write('<pre>' + f(X) + '</pre><br />');