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