sono ignorante anche io e non ho ben capito che cosa significhi questa riga:
document.onmouseup = new Function("curElement=null")

però credo che proprio li dovresti chiamare una funzione per scrivere un cookie che salvi la posizione

Codice PHP:
function salva (id) {
  
SetCookie(id+"-pos-x",newleft,30);
  
SetCookie(id+"-pos-y",newtop,30);
  
curElement=null;  // non sono sicuro che questo sia corretto
  
}
function 
SetCookie(cookieName,cookieValue,nDays) {
    var 
today = new Date();
    var 
expire = new Date();
    if (
nDays==null || nDays==0nDays=1;
    
expire.setTime(today.getTime() + 3600000*24*nDays);
    
document.cookie cookieName +"="escape(cookieValue) +";expires="expire.toGMTString();
}
function 
ReadCookie(cookieName) {
    var 
theCookie=""+document.cookie;
    var 
ind=theCookie.indexOf(cookieName);
    if (
ind==-|| cookieName=="") return ""
    var 
ind1=theCookie.indexOf(';',ind);
    if (
ind1==-1ind1=theCookie.length
    return 
unescape(theCookie.substring(ind+cookieName.length+1,ind1));


hai anche bisogno di una funzione che ti legga i cookie
Codice PHP:
function riordina(el-id) {
   var 
newleft ReadCookie(id+"-pos-x");
   var 
newtop ReadCookie(id+"-pos-y");
   var 
el document.getElementById(el-id);
   if (
newleft)  el.style.pixelLeft newleft;
   if (
newtop)  el.style.pixelTop newtop;

da chiamare quando la pagina e tutti gli elementi da riordinare sono stati caricati

riordina("id dell'oggetto");


a dire la verità non ho capito molto del codice postato, ne sono riuscito a farlo funzionare, ma mi sembra di capire che lavori sugli elementi selezionati senza che sia necessario specificarne l'id. invece per salvare la posizione di un oggetto direi che l'id lo devi sapere. perciò tutto il codice va aggiustato di conseguenza.
non so se esista una funzione che faccia l'inverso di getElementById(), ma penso che farebbe al caso