var memo_obj = new Array(); var url_chargee = new Array(); var xhr_actifs = {}; function findObj_test_forcer(n, forcer) { var p,i,x; // Voir si on n'a pas deja memorise cet element if (memo_obj[n] && !forcer) { return memo_obj[n]; } var d = document; if((p = n.indexOf("?"))>0 && parent.frames.length) { d = parent.frames[n.substring(p+1)].document; n = n.substring(0,p); } if(!(x = d[n]) && d.all) { x = d.all[n]; } for (i = 0; !x && i:first",target); //set the element receiving the ajax post target = doc.body; } jQuery(trig).ajaxSubmit({"target":target, "after":function(res,status){ if(valid) searching_img.remove(); if(status=='error') return this.html('Erreur HTTP'); callback(res,status); }, "before":function (vars){ vars.push({"name":"var_ajaxcharset","value":"utf-8"}); if (valid) vars.push({"name":"transformer_xml","value":"valider_xml"}); return true; }}); return true; } function AjaxRet(res,status, target, callback) { if (res.aborted) return; if (status=='error') return jQuery(target).html('HTTP Error'); if (this.evalScripts) // Inject the HTML into all the matched elements jQuery(target).html(res.responseText) // Execute all the scripts inside of the newly-injected HTML .evalScripts() // Execute callback .each( callback, [res.responseText, status] ); //callback(res,status); else // jQuery v1.1.4 jQuery(target).html(res.responseText).each( callback, [res.responseText, status] ); } // Comme AjaxSqueeze, // mais avec un cache sur le noeud et un cache sur la reponse // et une memorisation des greffes en attente afin de les abandonner // (utile surtout a la frappe interactive au clavier) // De plus, la fonction optionnelle n'a pas besoin de greffer la reponse. function charger_id_url(myUrl, myField, jjscript, event) { var Field = findObj_forcer(myField); if (!Field) return true; if (!myUrl) { jQuery(Field).empty(); retour_id_url(Field, jjscript); return true; // url vide, c'est un self complet } else return charger_node_url(myUrl, Field, jjscript, findObj_forcer('img_' + myField), event); } // La suite function charger_node_url(myUrl, Field, jjscript, img, event) { // disponible en cache ? if (url_chargee[myUrl]) { var el = jQuery(Field).html(url_chargee[myUrl])[0]; retour_id_url(el, jjscript); triggerAjaxLoad(el); return false; } else { if (img) img.style.visibility = "visible"; if (xhr_actifs[Field]) { xhr_actifs[Field].aborted = true;xhr_actifs[Field].abort(); } xhr_actifs[Field] = AjaxSqueezeNode(myUrl, Field, function (r) { xhr_actifs[Field] = undefined; if (img) img.style.visibility = "hidden"; url_chargee[myUrl] = r; retour_id_url(Field, jjscript); }, event); return false; } } function retour_id_url(Field, jjscript) { jQuery(Field).css({'visibility':'visible','display':'block'}); if (jjscript) jjscript(); } function charger_node_url_si_vide(url, noeud, gifanime, jjscript,event) { if (noeud.style.display !='none') { noeud.style.display='none';} else {if (noeud.innerHTML != "") { noeud.style.visibility = "visible"; noeud.style.display = "block"; } else { charger_node_url(url, noeud,'',gifanime,event); } } return false; } function charger_id_url_si_vide (myUrl, myField, jjscript, event) { var Field = findObj_forcer(myField); // selects the given element if (!Field) return; if (Field.innerHTML == "") { charger_id_url(myUrl, myField, jjscript, event) } else { Field.style.visibility = "visible"; Field.style.display = "block"; } }