Конечно сворачивается, вы же переходите на новую страницу, откуда ей знать, что на предыдущей странице меню было развернуто. В DOMContentLoaded (onreadystatechange для IE) вызовите вашу функцию ShowOrHide. Хотя, тогда получается что вам нужно разворачивать меню не на всех страницах? Тогда нужно организовать проверку
if (#на этой странице нужно развернуть меню#) {
ShowOrHide('menu1');
}