Non esiste una funzione replace() in javascript... esiste il metodo .replace() di un oggetto stringa...
url = url.replace("\?","\?tm="+(new Date().getTime().toString())+"&");
rivedi pero' tutta la logica del tuo script... se avesse funzionato avrebbe aggiunto un'infinita' di date...
ciao