//fonctions generales js utiles var Prototype = { Version :'1.3.1', emptyFunction : function() { } } var Class = { create : function() { return function() { this.initialize.apply(this, arguments); } } } var Abstract = new Object(); Object.extend = function(destination, source) { for (property in source) { destination[property] = source[property]; } return destination; } function InheritObj(destination, source) { for (property in source) { if (destination[property] == undefined) { destination[property] = source[property]; } } return destination; } Object.prototype.extend = function(object) { return Object.extend.apply(this, [ this, object ]); } Array.prototype.concat = function() { var array = []; for ( var i = 0, length = this.length; i < length; i++) array.push(this[i]); for ( var i = 0, length = arguments.length; i < length; i++) { if (isArray(arguments[i])) { for ( var j = 0, arrayLength = arguments[i].length; j < arrayLength; j++) array.push(arguments[i][j]); } else { array.push(arguments[i]); } } return array; }; function $A(iterable) { if (!iterable) return []; if (iterable.toArray) return iterable.toArray(); var length = iterable.length || 0, results = new Array(length); while (length--) results[length] = iterable[length]; return results; } function isArray(object) { return object != null && typeof object == "object" && 'splice' in object && 'join' in object; } Function.prototype.bind = function() { var __method = this, args = $A(arguments), object = args.shift(); return function() { __method.apply(object, args.concat($A(arguments))); } } // class de Gestionnnaire Evt var GestEvt = Class.create(); GestEvt.prototype = { initialize : function() { // sauvegarde les fonctions de rappel this.tabFonc = new Array(); // sauvegarde les evenements ecoutes this.tabListen = new Array(); // sauvegarde les objets ecoutes, pour les appler avec la fonction de // rappel this.tabObjet = new Array(); this.nomEvt = ""; this.erreurLevee = false; this.strErreurLevee = ""; }, ajouteEcouteur : function(evt, fonction, objetRetour) { var i ; if (!objetRetour) { objetRetour = this; } var nonok = false; for (var i = 0; i < this.tabFonc.length; i++) { if (this.tabFonc[i] == evt) { nonok = true; } } if (!nonok) { this.ajouteEvenement(evt); this.ajouteEcouteur(evt, fonction, objetRetour); // alert("impossible enregister evenement:fonction inconnue"); } else { // fonctions var tabFonctemp = this.tabListen[evt]; tabFonctemp[tabFonctemp.length] = fonction; this.tabListen[evt] = tabFonctemp; // objets var tabObjtemp = this.tabObjet[evt]; tabObjtemp[tabObjtemp.length] = objetRetour; this.tabObjet[evt] = tabObjtemp; } }, ajouteUniqueEcouteur : function(evt, fonction, objetRetour) { var montableau = this.tabListen[evt]; var montableauObjet = this.tabObjet[evt]; var canAdd = true; for (var i = 0; i < montableau.length; i++) { if (montableau[i] == fonction) { canAdd = false; break; } } if (canAdd) { this.ajouteEcouteur(evt, fonction, objetRetour); } }, enleveEcouteur : function(nameEvent, fonction) { var NewTab = new Array(); var NewTabObj = new Array(); var montableau = this.tabListen[nameEvent]; var montableauObjet = this.tabObjet[nameEvent]; for (var i = 0; i < montableau.length; i++) { if (montableau[i] != fonction) { NewTab[NewTab.length] = montableau[i]; NewTabObj[NewTabObj.length] = montableauObjet[i]; } } this.tabListen[nameEvent] = NewTab; this.tabObjet[nameEvent] = NewTabObj; }, ajouteEvenement : function(nameEven) { this.tabFonc[this.tabFonc.length] = nameEven; this.tabListen[nameEven] = new Array(); this.tabObjet[nameEven] = new Array(); }, haveEvenement : function(nameEven) { for ( var i = 0; i < this.tabFonc.length; i++) { if (this.tabFonc[i] == nameEven) { return true; } } return false; }, lanceEvenement : function(nameEvent, Arretour) { this.strErreurLevee = ""; if (!Arretour) { Arretour = new Array(); } var montableau = this.tabListen[nameEvent]; var montabObjet = this.tabObjet[nameEvent]; if (typeof (Arretour) == 'string') { var Arrtmp = [ Arretour ]; Arretour = Arrtmp; } var mafonction; var monobjet; this.nomEvt = nameEvent; var ilenfn=0; try { if (montableau && montableau.length != 0) { for ( ilenfn = 0; ilenfn < montableau.length; ilenfn++) { mafonction = montableau[ilenfn]; monobjet = montabObjet[ilenfn]; // alert('fonction appel sur '+this.nomEvt+' // fonc'+mafonction); if (!(mafonction instanceof Function) && 0) { this.strErreurLevee += "erreur:l'arguement passé au gestionnaire de fonctions n'est pas une fonction"; } else { if (mafonction) { try { mafonction.apply(monobjet, Arretour); } catch (e) { try { var parameterStrings = new Array(); var object = monobjet; for ( var ia = 0; ia < Arretour.length; ia++) { parameterStrings[ia] = 'Arretour[' + ia + ']'; } object.__apply__ = mafonction; var result = eval('object.__apply__(' + parameterStrings .join(', ') + ')'); object.__apply__ = null; } catch (e) { if (nameEvent != 'DEBUGDYN') { this.strErreurLevee += "[lanceEvenement] La fonction de retour ne peut etre atteinte : \r\n" + mafonction + "\r\n e.name :" + e.name + "\r\n e.message : " + e.message + "\r\n"; // alert(this.strErreurLevee ); this.lanceEvenement("DEBUGDYN", this.strErreurLevee); throw (e); } } } } } } } } catch (e) { if (nameEvent != 'DEBUGDYN') { this.strErreurLevee =''; this.strErreurLevee += "[lanceEvenement]Problème dans la gestion de l'evenement " + nameEvent + "\r\n e.name : " + e.name + "\r\n e.message : " + e.message + "\r\n" + ' event num :'+ilenfn; ; if(typeof(console) != "undefined" ){ console.error("Erreur dans le gestionnaire evenement, evenenemt: %s erreur : %o", nameEvent,e ); console.error("PB: %s ", this.strErreurLevee ); console.error(e ); } this.lanceEvenement("DEBUGDYN", this.strErreurLevee); throw (this.strErreurLevee); } } } }; GestEvt.addEventListener = GestEvt.ajouteEcouteur; GestEvtDyn = new GestEvt(); try { parent.GestEvtDyn = GestEvtDyn; } catch (e) { window.GestEvtDyn = GestEvtDyn; } Function.prototype.lieEvenement = function(strevt) { GestEvtDyn.ajouteEcouteur(strevt, this); return 1; }; ViewerGestDyn = function() { }; ViewerGestDyn.prototype = { ecoute : function(gest, evt, fonc) { gest.ajouteEcouteur(evt, fonc, this); } } parent.legendeCharge = legendeCharge; parent.legCharge = legCharge; var legCharge = 0; function legendeCharge() { legCharge = 1; dataInitLoad(sbdatTemp); } var LAYERCONTROL_LOADED = '0'; // pour afficher la legende dynamiquement function lanceLegende(logok) { // alert('totooo'); var DivLeg = $("TheLayerID"); if (DivLeg) { if (logok == "1") { // alert('tresst'); DivLeg.innerHTML = CheminLegende; } else { DivLeg.innerHTML = ""; } } else { LAYERCONTROL_LOADED = CheminLegende; } // alert('lanceLeg'); } document._currentObjectDrawable = 0; function WriteMainMap(mapUrlFin) { document.write(mapUrlFin); } function setCurrentObjectDrawed(obj) { document._currentObjectDrawable = obj; } function getCurrentObjectDrawed() { return document._currentObjectDrawable; } function unsetCurrentObjectDrawed() { document._currentObjectDrawable = 0; } /* * function openrechRes(onglet){ * * if(typeof onglet=='undefined'){ var url_recherche = * '/dynmap/recherche/resultatrecherche.php?path_application='+path_application; * }else{ if(onglet=='rapport'){ var url_recherche = * '/dynmap/class/modules/mvccarte.php?cont=RAPPORT&event=viewListeRapport&path_application='+path_application; } } * window.open(url_recherche,'','width='+(screen.width/1.5)+',scrollbars=yes,left='+(screen.width/6)+',height=500,top='+((screen.height-500)/2)); } */