Nel setTimeout c'e` un erore di apici, per cui non passi il valore in millisecondi. Cosi` e` corretto:
setTimeout('window.location.href="loader.php" ', 5000);
setTimeout('document.location.href="loader.php?id= <? print $msg;?>" ', 5000);
Per caricare in un altro frame, al posto di document.location.href ci devi mettere
parent.NOMEFRAME.location.href