/** Only one open at a time, no toggling */
function montre_1(id) {
    var d = document.getElementById(id);
	for (var i = 1; i<=10; i++) {
		if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';}
	}
    if (d) {
        d.style.display='block'; 
        saveNavigationState();
    }
}

/** At most one open at a time, with toggling */
function montre_2(id) {
    var d = document.getElementById(id);
    var dState = (d && d.style.display == 'block' ? 'none' : 'block');
    
	for (var i = 1; i<=10; i++) {
		if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';}
	}
    if (d) {
        d.style.display = dState;
         saveNavigationState();
    }
}

/** Just plain old toggling */
function montre_3(id) {
    var d = document.getElementById(id);
    var dState = (d && d.style.display == 'block' ? 'none' : 'block');
    
    if (d) {
        d.style.display = dState;
        saveNavigationState();
    } else {
        for (var i = 1; i<=10; i++) {
		    if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';}
        }
    }   
}

/** Switcher */
function changeNavBehavior(evt) {
   montre = eval(evt.value.toString());
   montre();
}

/** State Persistance */
function saveNavigationState() {
   try {
        var defaults = new UserDefaults("/");
        var navState = "";
        
        var id;
        var displayState;
        
         for (var i = 1; i<=10; i++) {
            id = 'smenu'+i;
		    if (document.getElementById(id)) {
		        displayState = document.getElementById(id).style.display;
		        navState += ((i == 1 ? "" : " ") + id + " " + displayState);
		     }
        }
        
        var expDate = new Date();
        expDate.setDate( expDate.getDate() + 1 ); //Set Nav Cookie to expire tomorrow.
        defaults.set("netsmartz_menustate", navState, expDate);
   }
   catch(e) {
        alert(e.message);
   }
}

function restoreNavigationState() {
   try {
        var defaults = new UserDefaults("/");
        var navState = defaults.get("netsmartz_menustate");
        
        if(navState == null) 
            return;
        
        var pairs = navState.split(" ");
        var id;
        var displayState;
        
        for(var i = 0; i < pairs.length; i+=2) {
            id = pairs[i];
            displayState = pairs[i+1];
            
            if( document.getElementById(id) ) {
                document.getElementById(id).style.display=displayState;
            } 
        }
   }
   catch(e) {
        alert(e.message);
   }
}

/** Bootstrap */
montre = montre_1;
window.onload = function() { montre(); restoreNavigationState();};