/********************************************************************************************/ // Variables globales /********************************************************************************************/ var sitear='http://www.truckdriverclub.renault-trucks.com'; var squarear='http://www.truckdriverclub.renault-trucks.com/cafecentral'; /********************************************************************************************/ ////////////////////////////////////////////////////////////////////////////////////////////// // Loading Ajax ////////////////////////////////////////////////////////////////////////////////////////////// /********************************************************************************************/ /********************************************************************************************/ // AJAX permet de charcher le contenu d un fichier dans un
/********************************************************************************************/ function load(url, targetid) { // Sans autre instruction, utiliser le jardin if (!targetid) {var targetid='backyard';} var myAjax = new Ajax.Updater(targetid, url, {method:'get', evalScripts:true, onLoading:function () {loading(targetid)}, onComplete:function () {loading(targetid)}}); } /********************************************************************************************/ // Aficher / cacher le loading /********************************************************************************************/ function loading(targetid) { var chaine=document.getElementById(targetid).className; // Si en train de loader, cacher le loader if (chaine.indexOf('loading')!=-1) { var reg=new RegExp("(loading)", "gi"); document.getElementById(targetid).className = chaine.replace(reg,''); } // Sinon, afficher le loader else { document.getElementById(targetid).className=chaine+' loading'; } } /********************************************************************************************/ ////////////////////////////////////////////////////////////////////////////////////////////// // Post ////////////////////////////////////////////////////////////////////////////////////////////// /********************************************************************************************/ /********************************************************************************************/ // AJAX permet de envoyer un formulaire sans reloader une page /********************************************************************************************/ // Poster un formulaire function post(form, url, etat, asynchronous, gohere, loadthat, loadithere, dothat) { // Quel formulaire on envoie ? if (!form){form='main';} // Si le formulaire existe if (document.getElementById(form)) { // Loading ? if (loading) { var complete = function(objet) {loading(loading);} } // Si AJAX trouve la page var success = function(objet) { // DEBUG : Voilà le retour // alert('Dont panic, just a test: '+objet.responseText); // Se rendre à l'objet ? if (gohere=='reach') {location.href=objet.responseText;} // Si gohere de n'importe quelle url, y aller else if (gohere || loadthat || dothat) { // Voilà ce que je fais // alert(loadthat+' here '+loadithere); if (loadthat) {load(loadthat+'&alerteclef='+objet.responseText, loadithere);} if (gohere) {location.href=gohere;} if (dothat) {eval(dothat);} } // Ou montrer le contenu retourné ? else if (objet.responseText) {alert(objet.responseText);} // Sous Café Central : Pumpitdown pumpitdown(); } // Si AJAX retourne un echec var failure = function(objet) { alert('Error ' + objet.status + ' : ' + objet.statusText); } // Special TinyMCE : sauvegarder le contenu if (typeof(tinyMCE)!='undefined') {tinyMCE.triggerSave();} // On récupère les valeurs des champs var content = Form.serialize(form); // On ajoute l'etat demandé if (etat) { var table=document.getElementById('table').value; content=content+'&'+table+'_setetat='+etat; } // Doit-on atteindre l'objet à la fin ? if (gohere=='reach') { content=content+'&return=reach'; } // On envoie là où le form le demande if (!url) {var url=document.getElementById(form).action;} // Asynchrone par defaut if (!asynchronous) {var asynchronous=true;} // Et voilà var query = new Ajax.Request( url, { asynchronous:asynchronous, evalScripts:true, method:'post', parameters:content, onComplete:complete, onSuccess:success, onFailure:failure /*pas de virgule ici pour ie6*/ } ); } // Si le formulaire n'existe pas mais qu'on a un goto else if (gohere) {location.href=gohere;} } /********************************************************************************************/ // Post comment or post /********************************************************************************************/ function poston(objet, onobjet, onobjetid) { // Si on ne poste pas sur un objet en particulier if (!onobjetid) {onobjetid='';} // Notre formulaire et notre liste form='form'+objet+'on'+onobjet+onobjetid; list='listof'+objet+'on'+onobjet+onobjetid; // Reconduire certains arguments option=new Array('objet', 'onobjet', 'onobjetid', 'ascdesc', 'recurse', 'recascdesc', 'tag'); var arg=''; for (var i=0; i < option.length; i++) { if ($('R'+form+'_'+option[i])) { arg+='&option['+option[i]+']='+$('R'+form+'_'+option[i]).value; } } // A la fin, on load quoi ? loadthis=sitear+'/node.php?ajx=refresh&what=make_discussionlist'+arg; // Ce que je fais // alert('je post '+form+' et rafraichis '+list+' puis j\'appelle '+loadthis); // Si la liste à rafraichir n'existe pas, aller à la bonne page if (!$(list) && $(form+'_objetid')) {gohere=sitear+'/node.php?'+onobjet+'id='+$(form+'_objetid').value;} else {gohere=null;} // aller, on poste en ajax post(form, sitear+'/node.php?pageclef=form', null, true, gohere, loadthis, list); } /********************************************************************************************/ // Post comment /********************************************************************************************/ function checkandposton(formid, objet, onobjet, onobjetid, ondummy) { // Si le formulaire est complet if (check(formid)) { // Envoyer... poston(objet, onobjet, onobjetid); // Si on utilise une fausse table if (ondummy) {objet=ondummy;} // Cacher le attach hideit(formid+'_attach'); // ...et recharger les champs FORMfields=document.getElementById(formid).getElementsByTagName("li"); // Pour chaque ligne for (var i=0; i ou un , lui redonner son id for (var cpt=0; cptlimit) {return true;} if (control=='text' && limit && field.value.length!=limit) {return true;} } // Les autres chaines ne doivent pas être vides else if (field.value==0 || (field.value==field.title && field.value.indexOf('flush')==-1)) {return true;} break; } } } /********************************************************************************************/ // Récupérer le type d'un champ dans un formulaire standard Café Central /********************************************************************************************/ function getfieldtype(fieldid) { // SSI le li a la bonne id if (document.getElementById(fieldid).parentNode) { type=document.getElementById(fieldid).parentNode.className.replace('compulsory', ''); type=type.replace(' ', ''); return type; } } /********************************************************************************************/ // Savoir si un champ est obligatoire ou pas /********************************************************************************************/ function is_compulsory(fieldid) { // SSI le li a la bonne id if (document.getElementById(fieldid).parentNode) { if (document.getElementById(fieldid).parentNode.className.indexOf('compulsory')!=-1) {return true;} } } /********************************************************************************************/ // Fonction de vérification des formulaires (lit les lignes avec la class "compulsory") /********************************************************************************************/ var firstkofield=null; function check(formid) { // SSi le form existe if (document.getElementById(formid)) { // Récupérer la liste des champs compulsory FORMfields=document.getElementById(formid).getElementsByTagName("li"); // Construire le tableau des champs compulsory COMPULSORYfield = new Array(); for (var i=0; i textarea.clientHeight && !window.opera) {textarea.rows += 1}; } /********************************************************************************************/ // Changer une class /********************************************************************************************/ function switchclass(id, newclass) { var chaine=document.getElementById(id).className; // Si la classe est déjà montée, l'enlever if (chaine.indexOf(newclass)!=-1) { chaine=document.getElementById(id).className=chaine.replace(newclass, ''); chaine=document.getElementById(id).className=chaine.replace(' '+newclass, ''); } // Sinon, l'ajouter else {document.getElementById(id).className = chaine+' '+newclass;} } /********************************************************************************************/ // Ajouter une bulle d'aide à un champ mal rempli /********************************************************************************************/ function appendhelp(fieldid) { // SSi l'alerte n'est pas déjà là if (!document.getElementById(fieldid+'_alerte')) { // Récupérer le type du champs type=getfieldtype(fieldid); if (document.getElementById(fieldid).parentNode) { ligne=document.getElementById(fieldid).parentNode; id=fieldid+"_alerte"; var THISalerte=Builder.node('div', {id:id, className:"alerte", style:"display:none"}); ligne.appendChild(THISalerte); // Et mettre le texte (avec l'ornement) new Ajax.Request( sitear+'/node.php?ajx=constant&constant=form_ko_'+type, { method:'get', evalScripts:true, onLoading:function () {loading(targetid)}, onComplete:function () {loading(targetid)}, onSuccess: function(r) { THISalerte.innerHTML=r.responseText+'
'; } } ); // Et faire apparaître showit(id); } } } /********************************************************************************************/ // Changer les états des champs /********************************************************************************************/ function switchfield(fieldid, event) { var field=document.getElementById(fieldid); var chaine=field.className; // Marre des doubles espace document.getElementById(fieldid).className=chaine.replace(' ', ' '); switch(event) { // ONBLUR : S'il est onfocus, le remettre sans onfocus, ni ko case 'onblur': // Si le champs n'a pas été rempli, lui rendre son préremplissage if (field.className.indexOf('flush')!=-1 && field.value=="") {document.getElementById(fieldid).value=field.title;} // Si le champ n'a pas ce qu'il veut, le dire if (is_compulsory(fieldid) && is_ko(fieldid)) { appendhelp(fieldid); chaine=document.getElementById(fieldid).className=chaine.replace(' ok', ''); if (chaine.indexOf('ko')==-1) {switchfield(fieldid, 'ko');} } // Si le champ a ce qu'il veut, tout va bien else { // Cacher eventuellement l'alerte if (document.getElementById(fieldid+'_alerte')) { document.getElementById(fieldid).parentNode.removeChild(document.getElementById(fieldid+'_alerte')); } // Passer tout au vert chaine=document.getElementById(fieldid).className=chaine.replace(' onfocus', ''); chaine=document.getElementById(fieldid).className=chaine.replace(' ko', ''); if (chaine.indexOf('ok')==-1) {switchfield(fieldid, 'ok');} } // Dans les deux cas, on a modifié le formulaire THISform_modified=true; break; // ONMOUSEEVENT : S'il est onfocus ou ko, ne rien faire case 'onmouseout': case 'onmouseover': if (chaine.indexOf('onfocus')!=-1 || chaine.indexOf('ko')!=-1) {break;} // Dans tous les autres cas : default: // ONFOCUS : s'il est flush, le vider de son préremplissage if (event=="onfocus" && field.className.indexOf('flush')!=-1 && field.value==field.title) {document.getElementById(fieldid).value="";} // Ajouter la class à la chaine if (chaine.indexOf('onmouseout')!=-1 || chaine.indexOf('onmouseover')!=-1 || chaine.indexOf('onfocus')!=-1 || chaine.indexOf('onblur')!=-1) { chaine=chaine.substring(0, chaine.lastIndexOf(" ")); } if (chaine.indexOf(event)==-1) {document.getElementById(fieldid).className = chaine+' '+event;} if (event=='ko' && is_ko(fieldid)) {appendhelp(fieldid)}; break; } } /********************************************************************************************/ // Switch discussion attachment /********************************************************************************************/ function discussionattach(type, form) { // Voir si y'a pas une valeur de passée if (document.getElementById(form+'_attach_'+type)) {value = document.getElementById(form+'_attach_'+type).value;} else {value='';} // Charger le truc load(sitear+'/node.php?ajx=switchdiscussionattach&type='+type+'&form='+form+'&value='+value, form+'_attach'); } /********************************************************************************************/ // Choose a picutre /********************************************************************************************/ function discussionattachlink_urlimage(field, image, url) { // off tout le monde list=document.getElementById(field+'s').childNodes; for (var i=0; i'; } } ); var timing=500; if (stop!=null) {clearTimeout(stop);} stop=setTimeout('showit(\'dfn\');', timing); } /********************************************************************************************/ // Cacher le lexique /********************************************************************************************/ function hidelexique() { var timing=400; if (stop!=null) {clearTimeout(stop);} stop=setTimeout('hideit(\'dfn\');', timing); } /********************************************************************************************/ ////////////////////////////////////////////////////////////////////////////////////////////// // Notes ////////////////////////////////////////////////////////////////////////////////////////////// /********************************************************************************************/ /********************************************************************************************/ // Commencer / Terminer le mode note /********************************************************************************************/ function modenote(objet, objetid) { var chaine=document.getElementById('ccnote').className; // Si mode enclenché, l'arrêter if (chaine.indexOf('on')!=-1) {endnote();} // Sinon, enclencher le mode else {startnote(objet, objetid);} } /********************************************************************************************/ // Commencer le mode note /********************************************************************************************/ function startnote(objet, objetid) { document.getElementById('ccnote').className='on'; Event.observe(document, 'dblclick', function(e){addnote(null, objet, objetid, Event.pointerY(e), Event.pointerX(e));}); // Enregistrer la preference load(squarear+'/ajx.php?action=node_mode&modenote=on'); } /********************************************************************************************/ // Terminer le mode note (ATTENTION, enlève TOUS les evenements click ! /********************************************************************************************/ function endnote() { document.getElementById('ccnote').className='off'; // Event.stopObserving(document, 'click', addnote); comprends pas http://www.prototypejs.org/api/event/stopObserving) Event.stopObserving(document, 'dblclick'); // Enregistrer la preference load(squarear+'/ajx.php?action=node_mode&modenote=off'); } /********************************************************************************************/ // Poser une note /********************************************************************************************/ function addnote(id, objet, objetid, top, left) { // Pas d'id passer, on créer une nouvelle note ! if (!id) {id='';} // Créer la note sur l'écran load(squarear+'/ajx.php?action=note_create&id='+id+'&objet='+objet+'&objetid='+objetid+'&top='+top+'&left='+left); } /********************************************************************************************/ // Sauver une note /********************************************************************************************/ function savenote(noteid) { // Récuperer la position top=document.getElementById(noteid).style.top.replace('px' ,''); document.getElementById(noteid+'_top').value=top; left=document.getElementById(noteid).style.left.replace('px' ,''); document.getElementById(noteid+'_left').value=left; // Poster, donc post(noteid, squarear+'/routines/sql_queries.php'); } /********************************************************************************************/ // Effacer une note /********************************************************************************************/ function deletenote(noteid) { new Effect.Shrink(noteid, {direction:"center", duration:"0.4"}); // $(noteid).remove(); load(squarear+'/ajx.php?action=note_delete¬eid='+noteid.replace('note','')); } /********************************************************************************************/ // Retailler une note /********************************************************************************************/ function resizenote(noteid) { var chaine=document.getElementById(noteid).className; // Si mode enclenché, l'arrêter if (chaine.indexOf('asleep')!=-1) {activenote(noteid);} // Sinon, enclencher le mode else {asleepnote(noteid);} // Changer l'etat load(squarear+'/ajx.php?action=note_etat¬eid='+noteid+'&etat='+etat); } /********************************************************************************************/ // Activer une note /********************************************************************************************/ function activenote(noteid) { var chaine=document.getElementById(noteid).className; document.getElementById(noteid).className=chaine.replace('asleep', ''); etat='active'; } /********************************************************************************************/ // Passer une note en sommeil /********************************************************************************************/ function asleepnote(noteid) { var chaine=document.getElementById(noteid).className; document.getElementById(noteid).className=chaine+' asleep'; etat='asleep'; } /********************************************************************************************/ // Options d'une note /********************************************************************************************/ function optionnote(noteid) { alert('options!'); } /********************************************************************************************/ // Faire dancer les notes /********************************************************************************************/ function movenote(id) { // -1 for MacBookPro > 5.1 var mac = 1; window.addEventListener("MozOrientation", function(e) { var rotate = 'rotate(' + (mac * -e.x * 30) + 'deg)'; document.getElementById(id).style.MozTransform = rotate; }, true); } /********************************************************************************************/ ////////////////////////////////////////////////////////////////////////////////////////////// // Favoris ////////////////////////////////////////////////////////////////////////////////////////////// /********************************************************************************************/ /********************************************************************************************/ // Ajouter aux favoris /********************************************************************************************/ function addtofav(objet, objetid, key) { // Construire la CSSid (éventuellement avec une clef) if (key) {id = objet+objetid+'_faver_'+key;} else {id = objet+objetid+'_faver';} // Trouver les classes var chaine=document.getElementById(id).className; // Mais ne travailler seulement si le truc n'est pas déjà favori if (chaine.indexOf('faved')==-1) { // Pour dire qu'un objet a été mis en favoris function faved(id) { // Dire qu'il est favori document.getElementById(id).className=chaine+' faved'; if (document.getElementById('countfav')) {new Effect.Bounce('countfav');} new Effect.Bounce(id); // Et mettre à jour aussi le countfav, s'il existe if (document.getElementById('countfav')) {load('http://www.truckdriverclub.renault-trucks.com/node.php?ajx=countfav', 'countfav');;} } // Ajax var myAjax = new Ajax.Updater('backyard', sitear+'/node.php?ajx=addtofav&objet='+objet+'&objetid='+objetid, {method:'get', evalScripts:true, onComplete:function () {faved(id)}}); } } /********************************************************************************************/ // Supprimer aux favoris /********************************************************************************************/ function deletefromfav(objet, objetid) { // Pour dire qu'un objet a été mis en favoris function deleted(objet, objetid) { // Dire qu'il est effacé new Effect.DropOut('userfav'+objet+objetid); // Et mettre à jour aussi le countfav, s'il existe if (document.getElementById('countfav')) {load('http://www.truckdriverclub.renault-trucks.com/node.php?ajx=countfav', 'countfav');;} new Effect.Highlight('countfav'); } // Ajax var myAjax = new Ajax.Updater('backyard', sitear+'/node.php?ajx=deletefromfav&objet='+objet+'&objetid='+objetid, {method:'get', evalScripts:true, onComplete:function () {deleted(objet, objetid)}}); } /********************************************************************************************/ ////////////////////////////////////////////////////////////////////////////////////////////// // Amis ////////////////////////////////////////////////////////////////////////////////////////////// /********************************************************************************************/ /********************************************************************************************/ // Ajouter aux amis /********************************************************************************************/ function addasfriend(userid) { // Pour dire qu'un objet a été demandé comme ami function added(userid) { var id='addasfriend'+userid; new Effect.Highlight(id); var chaine=document.getElementById(id).className; document.getElementById(id).className=chaine+' added'; document.getElementById(id).href=null; document.getElementById(id).innerHTML=''; } // Ajax var myAjax = new Ajax.Updater('backyard', sitear+'/node.php?ajx=addasfriend&userid='+userid, {method:'get', evalScripts:true, onComplete:function () {added(userid)}}); } /********************************************************************************************/ // Supprimer un ami /********************************************************************************************/ function deletefriend(userid) { // Pour dire qu'un ami a été supprimé function deleted(userid) { var id='listofactivefriends'+userid; new Effect.DropOut(id); } // Ajax var myAjax = new Ajax.Updater('backyard', sitear+'/node.php?ajx=deletefriend&userid='+userid, {method:'get', evalScripts:true, onComplete:function () {deleted(userid)}}); } /********************************************************************************************/ // Refuser un ami /********************************************************************************************/ function refusefriend(userid) { // Pour dire qu'un ami a été refusé function refused(userid) { var id='listofstandbyfriends'+userid; new Effect.DropOut(id); } // Ajax var myAjax = new Ajax.Updater('backyard', sitear+'/node.php?ajx=refusefriend&userid='+userid, {method:'get', evalScripts:true, onComplete:function () {refused(userid)}}); } /********************************************************************************************/ // Accepter un ami /********************************************************************************************/ function acceptfriend(userid) { // Pour dire qu'un ami a été accepté function accepted(userid) { var id='listofstandbyfriends'+userid; var chaine=document.getElementById(id).className; document.getElementById(id).className=chaine+' accepted'; new Effect.Highlight(id); } // Ajax var myAjax = new Ajax.Updater('backyard', sitear+'/node.php?ajx=acceptfriend&userid='+userid, {method:'get', evalScripts:true, onComplete:function () {accepted(userid)}}); } /********************************************************************************************/ ////////////////////////////////////////////////////////////////////////////////////////////// // Objets ////////////////////////////////////////////////////////////////////////////////////////////// /********************************************************************************************/ /********************************************************************************************/ // Discutter un objet (mettre un comment ou un post) /********************************************************************************************/ function discussobjet(objet, objetid, cssid) { form='form'+objet+'on'+objet+objetid+'container'; showhide(form); // scrollto(form); } /********************************************************************************************/ // Effacer un objet /********************************************************************************************/ function deleteobjet(objet, objetid, cssid) { // Loading loading(cssid); // Pour dire qu'un objet a été effacé function deleted(cssid) { new Effect.DropOut(cssid); } // Ajax var myAjax = new Ajax.Updater('backyard', sitear+'/node.php?ajx=delete&objet='+objet+'&objetid='+objetid, {method:'get', evalScripts:true, onComplete:function () {deleted(cssid)}}); } /********************************************************************************************/ // Signaler un objet /********************************************************************************************/ function reportobjet(objet, objetid, cssid) { // Pour dire qu'un objet a été mis en favoris function reported(cssid) { var chaine=document.getElementById(cssid).className; document.getElementById(cssid).className=chaine+' reported'; new Effect.Pulsate(cssid, {pulses:3, duration:1}) } // Ajax var myAjax = new Ajax.Updater('backyard', sitear+'/node.php?ajx=report&objet='+objet+'&objetid='+objetid, {method:'get', evalScripts:true, onComplete:function () {reported(cssid)}}); } /********************************************************************************************/ // Changer l'etat d'un objet /********************************************************************************************/ function changeetat(newetat, objet, objetid, cssid) { // Pour dire qu'un ami a été supprimé function changed(cssid) { new Effect.DropOut(cssid); } // Ajax var myAjax = new Ajax.Updater('backyard', sitear+'/node.php?ajx='+newetat+'&objet='+objet+'&objetid='+objetid, {method:'get', evalScripts:true, onComplete:function () {changed(cssid)}}); } /********************************************************************************************/ // Rate /********************************************************************************************/ function rate(objet, objetid, rate, key) { // Construire la CSSid (éventuellement avec une clef) if (key) { rater = objet+objetid+'_rater_'+key; currentrating=objet+objetid+'_currentrating_'+key; confirm=objet+objetid+'_confirm_'+key; } else { rater = objet+objetid+'_rater'; currentrating=objet+objetid+'_currentrating'; confirm=objet+objetid+'_confirm'; } // Trouver les classes var chaine=document.getElementById(rater).className; // Mais ne travailler seulement si le truc n'est pas déjà noté if (chaine.indexOf('rated')==-1) { // Pour dire qu'un objet a été noté function rated(response, rater, confirm) { // Dire qu'il est favori document.getElementById(rater).className=chaine+' rated'; // Nouvelle note var newrating=response.responseText; document.getElementById(currentrating).style.width=newrating*20+'%'; // Afficher la confirmation, puis la cacher showit(confirm); var timing=3000; if (stop!=null) {clearTimeout(stop);} stop=setTimeout('hideit(\''+confirm+'\');', timing); // Rated document.getElementById(rater).className=chaine+' rated'; new Effect.Pulsate(rater, {pulses:3, duration:1}); // Eventuellement rafraichir le nombre de votes if (document.getElementById('ratinghit')) { load(sitear+'/node.php?ajx=countvotes&objet='+objet+'&objetid='+objetid, 'ratinghit'); } } // Ajax var myAjax = new Ajax.Updater('backyard', sitear+'/node.php?ajx=rate&objet='+objet+'&objetid='+objetid+'&rate='+rate, {method:'get', evalScripts:true, onComplete:function (response) {rated(response, rater, confirm)}}); } } /********************************************************************************************/ ////////////////////////////////////////////////////////////////////////////////////////////// // Show/Hide ////////////////////////////////////////////////////////////////////////////////////////////// /********************************************************************************************/ /********************************************************************************************/ // show/hide Scriptaculous /********************************************************************************************/ showhide = function(element, opacity, noeffect) { // Si invisible : afficher if(document.getElementById(element).style.display == 'none') {new showit(element, opacity, noeffect);} // Si visible : le cacher else {new hideit(element, noeffect);} } /********************************************************************************************/ // Show /********************************************************************************************/ showit = function(element, opacity, noeffect) { // Passer outre les effets if (noeffect==true) {document.getElementById(element).style.display='block';} // Utiliser les effets else { // opacité if (!opacity) {opacity=1;} new Effect.Appear(element, {duration: 0.2, queue:'end', to:opacity}); } } /********************************************************************************************/ // Hide /********************************************************************************************/ hideit = function(element, noeffect) { // ssi l'element existe if (document.getElementById(element)) { // Passer outre les effets if (noeffect==true) {document.getElementById(element).style.display='none';} // Utiliser les effets else {new Effect.Fade(element, {duration: 0.1});} } } /********************************************************************************************/ ////////////////////////////////////////////////////////////////////////////////////////////// // Checkbox & order ////////////////////////////////////////////////////////////////////////////////////////////// /********************************************************************************************/ /********************************************************************************************/ /** * Rendre un checkbox & order droppable /********************************************************************************************/ function cbo_makedroppable(Fid, Fobjet, Ftable) { Droppables.add(Fid+'_droppable', {accept:Fid, onDrop:function(element){cbo_insert(Fid, Fobjet, Ftable, element.id);}, hoverclass:'ready'}); } /********************************************************************************************/ // Rendre sortable /********************************************************************************************/ function cbo_makesortable(Fid, Fobjet) { Sortable.create(Fid+'_selected', {handle:'handle', onUpdate:function(){cbo_order(Fid, Fobjet);}}); } /********************************************************************************************/ // Ordonner les sélectionnés /********************************************************************************************/ function cbo_order(Fid, Fobjet) { var liste=Sortable.serialize(Fid+'_selected'); load(squarear+'/ajx.php?action=checkboxorder_order&field='+Fid+'&objet='+Fobjet+'&objetclef='+cbo_clef+'&'+liste); } /********************************************************************************************/ // Mettre à jour les listes /********************************************************************************************/ function cbo_update(Fid, Fobjet, Fwhat) { load(squarear+'/ajx.php?action=checkboxorder_update&field='+Fid+'&objet='+Fobjet+'&objetclef='+cbo_clef+'&type='+Fwhat, Fid+'_'+Fwhat); } /********************************************************************************************/ // Ajouter un truc /********************************************************************************************/ function cbo_insert(Fid, Fobjet, Ftable, Finsertid) { load(squarear+'/ajx.php?action=checkboxorder_insert&field='+Fid+'&objet='+Fobjet+'&table='+Ftable+'&objetclef='+cbo_clef+'&type=selected&insertid='+Finsertid, Fid+'_selected'); } /********************************************************************************************/ // Ajouter un truc dans un embranchement /********************************************************************************************/ function cbo_insertintree(Fid, nodeid, insertid) { alert('insert in node '+nodeid+' id '+insertid); // load(''.$_SESSION['square']['absoluteroot'].'/ajx.php?action=checkboxorder_insert&field='+Fid+'&objet='.$THISpage['table'].'&objetclef='.$clef.'&type=selected&table='.$FNTvalues['table'].'&insertid='+insertid, Fid+'_selected'); } /********************************************************************************************/ // Supprimer un truc /********************************************************************************************/ function cbo_delete(Fid, Fobjet, Fdeleteid) { load(squarear+'/ajx.php?action=checkboxorder_delete&field='+Fid+'&objet='+Fobjet+'&objetclef='+cbo_clef+'&type=selected&deleteid='+Fdeleteid); } /********************************************************************************************/ // Scrollto /********************************************************************************************/ function scrollto(id, noeffect) { // Si l'id existe if (document.getElementById(id)) { new Effect.ScrollTo(id, {offset: -200}); // Highlight if (id!='body' && noeffect!=true) {new Effect.Highlight(id, {duration: 3});}; } } /********************************************************************************************/ // Ne pas quitter la page avec un formulaire commencé... /********************************************************************************************/ var THISform_modified=null; var THISform_saved=null; function confirmexit() { if (THISform_modified && !THISform_saved) {return 'Si vous quittez ce formulaire, tous vos changements seront perdus.';} } /********************************************************************************************/ // Créer des légendes aux images qui portent la classe "captioned" /********************************************************************************************/ function createcaptions() { if (!document.getElementsByTagName) return false; if (!document.createElement) return false; var images = document.getElementsByTagName("img"); if (images.length < 1) return false; for (var i=0; i