/********************************************************************************************/
// Variables globales
/********************************************************************************************/
var sitear='http://corporate.renault-trucks.com';
var squarear='http://corporate.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://corporate.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://corporate.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