Ciao, ignora la mia risposta precedente che è la risposta giusta alla domanda sbagliata!
Dunque, no non devi separare nulla...
all'interno della tua function, per ogni "pseudo-link", devi richiamarti una funzione esterna simile a questa
[CODE]
function historyChangeUrl(id_link){//devi passargli qualcosa per sapere quale elemento è stato cliccato - va bene anche il link
if(history.pushState){//controlli che il browser possa gestire gli url, cerca in rete (è un pochino diversa)
var link;
switch id_link//ti ricavi il nuovo link
case ... case... case...//in base ai vari casi
history.pushState('','',link)//QUESTA è LA FUNZIONE CHE MODIFICA IL LINK NELLA BARRA URL
}
fatto questo di devi preoccupare di altre 2 cose:
se l'utente scrive www.tuosito.it/nuovourl.html
devi fare in modo di fare un redirect 404 (che conservi le variabili, è macchinoso ma su server linux si può fare, non so su windows) verso la pagina reale, e con il js leggere l'url e se corrisponde a una pagina del tuo sito ('fittizzia') allora fai partire le animazioni.
poi, visto che quando scrivi gli url con questo metodo la pressione dei pulsanti avanti e indietro del browser non funziona (anche se l'url cambia nella pagina non cambia nulla e non viene modificata) devi intercettare l'evento in cui l'url cambi in automatico, puoi usare window.onpopstate per farlo (tenendo conto che su safari tale evento viene rilevato anche durante la normale navigazione tra i link, è più facile da capire durante il debug)
EDIT
L'istruzione corretta per controllare se la history api è attiva sul browser è questa
if (window.history && history.pushState)