@@ -63,7 +63,7 @@ addEventListener("load", function() {
6363 var fileList = document . querySelector ( "#files" ) ;
6464 var fileInfo = document . querySelector ( "#fileInfo" ) ;
6565
66- function selectChapter ( number ) {
66+ function selectChapter ( number , context ) {
6767 per . textContent = "" ;
6868 var chapter = getChapter ( number ) ;
6969 if ( chapter . exercises . length ) {
@@ -83,6 +83,7 @@ addEventListener("load", function() {
8383 a . href = file ;
8484 a . textContent = file . replace ( / ^ c o d e \/ / , "" ) ;
8585 } ) ;
86+ selectContext ( context || "box" ) ;
8687 }
8788
8889 function findExercise ( id , chapter ) {
@@ -167,7 +168,6 @@ addEventListener("load", function() {
167168 } ) ;
168169 chapters . addEventListener ( "change" , function ( ) {
169170 selectChapter ( chapters . value ) ;
170- selectContext ( per . value ) ;
171171 document . location . hash = "#" + chapters . value ;
172172 } ) ;
173173
@@ -180,19 +180,20 @@ addEventListener("load", function() {
180180 if ( ! chapter || valid [ 2 ] && ! exercise ) valid = null ;
181181 }
182182 if ( valid ) {
183+ var perValue = exercise ? hash : "box" , setPer = false ;
183184 if ( chapters . value != valid [ 1 ] ) {
184185 chapters . value = valid [ 1 ] ;
185- selectChapter ( Number ( valid [ 1 ] ) ) ;
186+ selectChapter ( Number ( valid [ 1 ] ) , perValue ) ;
187+ setPer = true ;
186188 }
187- var perValue = exercise ? hash : "box" ;
188189 if ( per . value != perValue ) {
189190 per . value = perValue ;
190- selectContext ( perValue ) ;
191+ if ( ! setPer ) selectContext ( perValue ) ;
191192 }
192193 return true ;
193194 }
194195 }
195196
196- parseFragment ( ) || ( selectChapter ( 0 ) && selectContext ( per . value ) ) ;
197+ parseFragment ( ) || selectChapter ( 0 , "box" ) ;
197198 addEventListener ( "hashchange" , parseFragment ) ;
198199} ) ;
0 commit comments