/* SCOPE LIEU */ (function(){ /* Lieu (Class) */ Lieu = { /* Fonction CheckRadio() * * @string : Element Id to check * * Coche des bouton radio simmulé par des images */ CheckRadio:function(E) { // Parcours des éléments radio $$("img[name='"+$(E).name+"']").each(function(Elem) { if(Elem.id == E) Elem.src = Elem.src.replace("Off","On"); else Elem.src = Elem.src.replace("On","Off"); }); }, /* Fonction CheckedRadio() * * @string : Element Name to check * * Coche des bouton radio simmulé par des images */ CheckedRadio:function(E) { var Result = null; // Parcours des éléments radio $$("img[name='"+E+"']").each(function(Elem) { if(Elem.src.indexOf("On")!=-1 && Elem.src.indexOf("Off")==-1) Result = Elem.id; }); return Result; }, /* Init() * * @string: Valeur par défault du champs lieu * * Initialise la Lieu */ ModelLieu:"", LibLieuMaxSize:45, EffectCallBack:null, RefreshCallback:null, OnSelectCallBack:null, Init:function(DefaultLieu) { // Valeur Par défault du champ InputLieu if(Object.isUndefined(DefaultLieu)) Lieu.DefaultLieu = "Pays, Région, Département ou Ville"; else Lieu.DefaultLieu = DefaultLieu; $("InputLieu").value = Lieu.DefaultLieu; $("InputLieu").observe('focus',function() { if($("InputLieu").value == Lieu.DefaultLieu) $("InputLieu").value =""; }); // Ajout de l'évenement d'édition du lieu if(Object.isElement($('EditLieu'))) Event.observe("EditLieu", 'click', function(){ Lieu.Edit(); }); // Recoche l'alentour choisi if(Object.isElement($('lieu'))) { // Extraction des lieux (Type¤IdLoc¤Libelle¤Latitude¤Longitude¤Around|....) var TabLieu = ($("lieu").value=="") ? Array():$("lieu").value.split('|'); // Extraction des info du premier lieu var TabCurLieu = TabLieu[0].split('¤'); // Check de l'alentour Lieu.CheckRadio('LieuAlentour'+TabCurLieu[5]); } // Ajout de l'évenement sur les boutons radio alentour // Parcours des radio alentour $$("#Alentour img[name='RadioAlentour']").each(function(Radio){ // Ajout de l'évenement Click Radio.observe('click', function(){ // Cochage de l'alentour Lieu.CheckRadio(Radio.id); // Définition de l'alentour Lieu.SetAround(Radio.id.replace('LieuAlentour','')); }); }); // Enregistrement du ModelLieu if(Object.isElement($('ModelLieu'))) Lieu.ModelLieu = $('ModelLieu').innerHTML; // Rafraichissement du lieu Lieu.Refresh(); // Ajout de l'autocompletion new Ajax.Autocompleter("InputLieu","ResultLieu","../UpdateLieu.php", { minChars:2, method:'post', paramName:'Lieu', indicator:$('loading'), updateElement:function(Li) { // Ajout du lieu Lieu.Add(Li.readAttribute('LType'),Li.readAttribute('LLoc'),Li.readAttribute('LLib'),Li.readAttribute('LLat'),Li.readAttribute('LLng')); // Vide le champs input lieu $("InputLieu").value = ""; // Appel de callback Refresh if(Lieu.OnSelectCallBack!=null) Lieu.OnSelectCallBack.call(this,Li.readAttribute('LType'),Li.readAttribute('LLoc'),Li.readAttribute('LLib'),Li.readAttribute('LLat'),Li.readAttribute('LLng')); } }); }, /* Refresh() * * @array: Tableau lieu (Optionel) * * Recalcul et rafraichi le lieu */ Refresh:function() { if(Object.isElement($('lieu'))) { // Liste des lieux actuel (Type¤IdLoc¤Libelle¤Latitude¤Longitude¤Around|....) var TabLieu = Array(); if(!Object.isUndefined(arguments[0])) TabLieu = arguments[0]; else if($("lieu").value!="") TabLieu = $("lieu").value.split('|'); // Recherche du libellé de lieu var TabLibLieu = Array(); for(var i=0;i