/********************************************************************************************/ // Variables globales /********************************************************************************************/ var sitear='http://www.renault-trucks.dk'; var squarear='http://www.renault-trucks.dk/cafecentral'; /********************************************************************************************/ ////////////////////////////////////////////////////////////////////////////////////////////// // Loading Ajax ////////////////////////////////////////////////////////////////////////////////////////////// /********************************************************************************************/ /********************************************************************************************/ // 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'; } } /********************************************************************************************/ // 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)}}); } /********************************************************************************************/ ////////////////////////////////////////////////////////////////////////////////////////////// // Post ////////////////////////////////////////////////////////////////////////////////////////////// /********************************************************************************************/ /********************************************************************************************/ // Post comment /********************************************************************************************/ function poston(objet, onobjet) { // A la fin, on load quoi ? loadthis=sitear+'/node.php?ajx=refresh&what=make_'+objet+onobjet; // Notre formulaire et notre liste form='form'+objet+'on'+onobjet; list='listof'+objet+'on'+onobjet; // Ce que je fais // alert('je post '+form+' et rafraichis '+list+' puis j\'appelle '+loadthis); // aller, on poste en ajax post(form, sitear+'/node.php?pageclef=form', null, true, null, loadthis, list); } /********************************************************************************************/ // 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;} } /********************************************************************************************/ ////////////////////////////////////////////////////////////////////////////////////////////// // Champs et formulaires ////////////////////////////////////////////////////////////////////////////////////////////// /********************************************************************************************/ /********************************************************************************************/ // Vérifier les formulaires /********************************************************************************************/ // Quelques fonctions de vérification function is_ko(fieldid) { // Ssi le champ existe if (field=document.getElementById(fieldid)) { // Récupérer le type de champ type=getfieldtype(fieldid); // Et vérifier le champ en fonction du type switch (type) { // Checkboxes ? case 'checkbox' : // Boucler pour voir si au moins une est cochée var ok=null; i=0; while (document.getElementById(fieldid+i)) { if (document.getElementById(fieldid+i).checked === true ) {ok=true;} i=i+1; } if (!ok) {return true;} break; // Email ? case 'email' : if (field.value.indexOf('@')<0 || field.value.indexOf('.')<0 || field.value==0) {return true;} break; // Unique case 'unique' : break; // Capcha case 'captcha' : if (field.value!=captcha) {return true;} break; // Date ? case 'date' : // Boucler pour voir si les trois (jour, mois, année) sont remplis var mydate = field.getElementsByTagName('select'); var ko=false; var year = mydate[2].options[mydate[2].selectedIndex].value; var month = mydate[1].options[mydate[1].selectedIndex].value; var day = mydate[0].options[mydate[0].selectedIndex].value; if (day == '00') {ko=true;} if (month == '00') {ko=true;} if (year == '0000') {ko=true;} source_date = new Date(year,month-1,day); //alert(source_date); if(year != source_date.getFullYear()) { ko=true; } if(month-1 != source_date.getMonth()) { ko=true; } if(day != source_date.getDate()) { ko=true; } //alert(ko); if (ko) {return true;} break; // Password & email check case 'password_check' : case 'email_check' : // Trouver le nom du champs qui est vérifié checkedfield=fieldid.replace('_check', ''); // Si le champs qu'on vérifie est vide if (document.getElementById(checkedfield).value==0) {return true;} // Si le champs qu'on vérifie est rempli, mais qu'ils ne sont pas identiques else if (document.getElementById(checkedfield) && field.value!=document.getElementById(checkedfield).value) {return true;} break; // Password (Comme une chaine) case 'password' : // Pour les chaines et tout le reste default: // Pour les chaines avec taille limite (min ou max) control=type.substr(0,3); if (control=='min' || control=='max') { // Limite ? limit=type.substr(3); if (control=='min' && field.value.lengthlimit) {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; 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; } } /********************************************************************************************/ ////////////////////////////////////////////////////////////////////////////////////////////// // Popup ////////////////////////////////////////////////////////////////////////////////////////////// /********************************************************************************************/ /********************************************************************************************/ // Remplir une popup avec une alerte /********************************************************************************************/ function popupalerte(clef) { // Lancer la fenêtre vide popup(sitear+'/node.php?ajx=alerte&clef='+clef); } /********************************************************************************************/ // Remplir une popup avec une page ajax /********************************************************************************************/ var donewithpopup=false; function popup(url, width, height, top, popupsysteme) { // Popup pour le site par défaut if (typeof(systeme)=="undefined") {systeme='site';} if (typeof(popupsysteme)=="undefined") {popupsysteme=systeme;} // Si le code n'est pas dans la page, l'ajouter if (!donewithpopup) { // Code à insérer var popup= // Popup Builder.node('div', {id:'popup', className:popupsysteme, style:'display:none'}, [ // Overlay Builder.node('div', {id:'popupoverlay', onclick:'closepopup()'}), // Boite Builder.node('div', {id:'popupbox', style:'display:none'}, [ // Close button (width a space for ie6) Builder.node('a', {id:'popupclose', href:'javascript:closepopup();'}, ' '), // Welcome Ajax content Builder.node('div', {id:'popupcontent'}), ]), ]); // Insérer document.getElementsByTagName("body").item(0).appendChild(popup); document.getElementById("body").setAttribute("onkeypress", "keyPressHandler(event);"); // Hauteur du overlay document.getElementById('popupoverlay').style.height=document.viewport.getHeight()+'px'; // Et voilà donewithpopup=true; } // Trouver sa position top if (typeof(top)=="undefined") {var top=130;} var scrolled=document.viewport.getScrollOffsets().top; var displayhere=parseInt(top)+parseInt(scrolled); // Top, Hauteur et largeur if (displayhere) {document.getElementById('popupbox').style.top=displayhere+'px';} if (width) {document.getElementById('popupbox').style.width=width;} if (height=='auto') {height=document.viewport.getHeight()*0.9+'px';} if (height) {document.getElementById('popupbox').style.height=height;} // Afficher le popup showit('popup', 1, true); Effect.Grow('popupbox', {duration:0.2, direction:'bottom-left'}); // Loader le contenu load (url, 'popupcontent'); } function keyPressHandler(e) { var kC = (window.event) ? // MSIE or Firefox? event.keyCode : e.keyCode; var Esc = (window.event) ? 27 : e.DOM_VK_ESCAPE // MSIE : Firefox if(kC==Esc) {closepopup();} } /********************************************************************************************/ // Fermer un popup /********************************************************************************************/ function closepopup() { Effect.Shrink('popupbox', {duration:0.2, direction:'bottom-left'}); Effect.Fade('popup'); // Loading Cafe Central if (window.pumpitdown) {pumpitdown();} } /********************************************************************************************/ ////////////////////////////////////////////////////////////////////////////////////////////// // Travail sur les objets ////////////////////////////////////////////////////////////////////////////////////////////// /********************************************************************************************/ /********************************************************************************************/ // Afficher le lexique /********************************************************************************************/ function showlexique(articleid, lexiqueid) { // ID de la bulle de lexique var dfn="dfn"; // Si besoin, Constuire la bulle de reception if (!document.getElementById(dfn)) { var lexique=Builder.node('div', {id:dfn, style:"display:none", onmouseout:"hidelexique()"}); document.getElementsByTagName("body").item(0).appendChild(lexique); } // La repositionner var pos=findPos(document.getElementById('lexique'+lexiqueid+'_'+articleid)); document.getElementById(dfn).style.top=pos[1]+'px'; document.getElementById(dfn).style.left=pos[0]+'px'; // Et ajouter le texte (avec l'ornement) new Ajax.Request( sitear+'/node.php?ajx=lexique&articleid='+articleid, { method:'get', evalScripts:true, onLoading:function () {loading(targetid)}, onComplete:function () {loading(targetid)}, onSuccess: function(r) { document.getElementById(dfn).innerHTML=r.responseText+''; } } ); 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 ////////////////////////////////////////////////////////////////////////////////////////////// /********************************************************************************************/ /********************************************************************************************/ // Poser une note /********************************************************************************************/ function note() { } /********************************************************************************************/ ////////////////////////////////////////////////////////////////////////////////////////////// // 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.renault-trucks.dk/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.renault-trucks.dk/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 ////////////////////////////////////////////////////////////////////////////////////////////// /********************************************************************************************/ /********************************************************************************************/ // 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