/*
 * Copyright (c) Cyria creation 2004, 2005, 2006, 2007, 2008
 */
Global.etendre=function(a,b){Debug.assert(typeof a!='undefined');Debug.assert(typeof b!='undefined');for(var c in b){Debug.assert(typeof a[c]=='undefined');a[c]=b[c]}};function Objet(){if(Classe.estDefinition())return;this.initialiser.call(this,arguments)};Objet.etendre=function(a,b){Debug.assert(typeof this=='function');Debug.assert(typeof a=='object');Debug.assert(typeof b=='undefined'||typeof b=='object');var c=function(){};Global.heriter(c,this);Global.etendre(c.prototype,a);Global.etendre(c,{etendre:this.etendre});Global.etendre(c,b||{});return c};Objet.prototype.initialiser=function(){};Objet.prototype.initialiserDepuisDictionaire=function(a){Debug.assert(typeof a=='object');Debug.erreurNonImplemente()};Objet.prototype.estEgalA=function(a){if(!(a instanceof this.constructor))return false;for(var b in this){var c=this[b];var d=a[b];if(c&&typeof c.estEgalA=='function'){if(!c.estEgalA(d))return false}else{if(c!=d)return false}}return true};function Classe(a){if(Classe.estDefinition())return;var b=function(){if(Classe.estDefinition())return;this.initialiser.apply(this,arguments)};b._classe=this;this.heriterDe(a);this._constructeur=b};Classe._est_definition=false;Classe.estDefinition=function(){Debug.assert(typeof Classe._est_definition=='boolean');return Classe._est_definition};Classe.prototype.allouerInstance=function(){Debug.assert(!Classe.estDefinition());Classe._est_definition=true;new this.valConstructeur();Classe._est_definition=false};Classe.prototype.valConstructeur=function(){Debug.assert(this._constructeur);return this._constructeur};Classe.prototype.implemente=function(){};Classe.prototype.heriterDe=function(a,b){Debug.assert(!Classe.estDefinition());Debug.assert(a);Debug.assert(a.prototype);Debug.assert(b);Debug.assert(b.prototype);Debug.assert(a!=b);Classe._est_definition=true;a.prototype=new b;Classe._est_definition=false;a.prototype.constructor=a};function Debug(){};Debug.DEBOGGAGE_ACTIF=true;Debug._nomFonctionSource=function(a){Debug.assert(typeof a=='function');var b=a.toString().match(/function(\s*)(\w*)/);if(b[2])return b[2];return undefined};Debug._nomFonctionContexte=function(a,b){Debug.assert(typeof a=='function');Debug.assert(typeof b=='object'||typeof b=='function');for(var c in b){var d=b[c];if(d==a){return c}else if(c=='prototype'||(c!='constructor'&&typeof d=='function'&&Function.prototype[c]!=d)){var f;try{f=Debug._nomFonctionContexte(a,d)}catch(e){}if(typeof f!='undefined')return c+'.'+f}}return undefined};Debug.nomFonction=function(a){Debug.assert(typeof a=='function');var b=Debug._nomFonctionSource(a);if(typeof b!='undefined')return b;else return Debug._nomFonctionContexte(a,Global._contexte)};Debug.pileAppels=function(){var a=[];var b=Debug.pileAppels.caller;while(b){a.unshift(b);b=b.caller}return a};Debug._descriptionPileAppels=function(a){Debug.assert(a instanceof Array);var b=[];for(var c=0;c<a.length;c++){b.push(Debug.nomFonction(a[c]))}return b.join('\n')};Debug.erreur=function(a){if(!Debug.DEBOGGAGE_ACTIF)return;if(typeof console!='undefined'&&typeof console.warn=='function'){console.warn(a)}else if(typeof console!='undefined'&&typeof console.log=='function'){console.log(a)}else{Debug.journal(a)}};Debug.erreurNonImplemente=function(){Debug.erreur(Debug.nomFonction(Debug.erreurNonImplemente.caller)+' : methode non implementee !')};Debug.assert=function(a,b){if(!a){Debug.erreur('l\'assertion '+(b?'"'+b+'" ':'')+'a echoue dans :\n'+(Debug.nomFonction(Debug.assert.caller)||Debug.assert.caller))}};if(!Debug.DEBOGGAGE_ACTIF)Debug.assert=function(){};Debug.assertType=function(a,b){if(typeof a!=b){var c=Debug._descriptionPileAppels(Debug.pileAppels());Debug.erreur('assertion '+'"Type invalide"'+'failed in :\n'+c)}};Debug.assertInstanceDe=function(a,b){if(a.constructor==b){var c=Debug._descriptionPileAppels(Debug.pileAppels());Debug.erreur('assertion '+'"Classe invalide"'+'failed in :\n'+c)}};Debug.assertParametres=function(a,b){for(nom in b){}};Debug.journal=function(a){if(typeof console!='undefined'&&typeof console.log=='function'){console.log(a)}else{var b=window.open('','journal');if(!b){alert('Echec d\'ouverture de la fenetre '+'du journal de deboggage');return}var c=new Date().toLocaleTimeString();b.document.write(c+' '+a+'<br />')}};function Global(){};Global._contexte=this;Global.publier=function(a,b){Debug.assert(a);Debug.assert(b);Global._contexte[a]=b};Global.publierContexte=function(a){Debug.assert(a);for(var b in a){if(b=='toXMLRPC')continue;if(b.indexOf('_')!=0)Global._contexte[b]=a[b]}};Global._est_definition=false;Global.estDefinition=function(){return Global._est_definition};Global.allouer=function(a){Debug.assert(!Global.estDefinition());Debug.assert(typeof a=='function');Global._est_definition=true;var b=new a;Global._est_definition=false;return b};Global.heriter=function(a,b){Debug.assert(!Global.estDefinition());Debug.assert(typeof a=='function');Debug.assert(a.prototype);Debug.assert(typeof b=='function');Debug.assert(b.prototype);Debug.assert(a!=b);Global._est_definition=true;a.prototype=new b;Global._est_definition=false;a.prototype.constructor=a;for(var c=2;c<arguments.length;c++){b=arguments[c];for(var d in b.prototype){if(d=='prototype'||d=='constructor')continue;Debug.assert(typeof a.prototype[d]=='undefined'||a.prototype[d]==b.prototype[d]);a.prototype[d]=b.prototype[d]}}};function Init(){};Init._rappels=new Array();Init._rappels_fixes=new Array();Init._temporisation=null;Init._page_est_chargee=false;Init._pageEstChargee=function(){return Init._page_est_chargee};Init.ajouterRappel=function(a,b){Debug.assert(Init._rappels);Debug.assert(Init._rappels_fixes);if(b)Init._rappels_fixes.push(a);else Init._rappels.push(a)};Init._init=function(){Debug.assert(Init._rappels);Debug.assert(Init._rappels_fixes);Debug.assert(Init._pageEstChargee());Debug.assert(typeof Module=='undefined'||Module.chargementsSontTermines());for(var a=0;a<Init._rappels.length;a++){Init._rappels[a]()}Init._rappels=new Array();for(var a=0;a<Init._rappels_fixes.length;a++){Init._rappels_fixes[a]()}Init._page_est_chargee=false};Init.lancerTemporisation=function(){if(!Init._pageEstChargee()||(typeof Module!='undefined'&&!Module.chargementsSontTermines()))return;if(Init._temporisation)Init.arreterTemporisation();Init._temporisation=setTimeout(Init._init,0)};Init.arreterTemporisation=function(){if(Init._temporisation)clearTimeout(Init._temporisation);Init._temporisation=null};Init.finChargementPage=function(){Init._page_est_chargee=true;Init.lancerTemporisation()};Global.instanceDe=function(a,b){Debug.assert(a);Debug.assert(a.constructor);Debug.assert(b);Debug.assert(b.prototype);return a.constructor==b};Math.EPSILON=0.000000005;Math.epsilonRelatifA=function(a){Debug.assert(typeof Math.EPSILON=='number');Debug.assert(typeof a=='number');return(a?Math.abs(a)*Math.EPSILON:Math.EPSILON)};Number.prototype.contraindreA=function(a,b){Debug.assert(typeof a=='number');Debug.assert(typeof b=='number');Debug.assert(a<=b);return Math.max(Math.min(this,b),a)};Number.prototype.interpolationAvec=function(a,b){Debug.assert(typeof a=='number');Debug.assert(typeof b=='number');return this*(1-b)+a*b};String.prototype.capitaliser=function(){if(this=='')return'';else return this.charAt(0).toUpperCase()+this.substring(1)};String.prototype.nomSouligne=function(){var a=[];var b=0;for(var c=0;c<this.length;c++){var d=this.charAt(c);if(d.match(/\w/)&&!d.match(/[0-9_]/)&&d.toUpperCase()==d){a.push(this.substring(b,c));if(c!=0)a.push('_');a.push(d.toLowerCase());b=c+1}else if(d.match(/\s/)){a.push(this.substring(b,c));a.push('_');b=c+1}}a.push(this.substring(b));return a.join('')};String.prototype.camelcase=function(){};String.prototype.traduction=function(a,b){Debug.assert(typeof a=='string');Debug.assert(typeof b=='string'&&b.length==a.length);var c={};for(var d=0;d<a.length;d++){c[a.charAt(d)]=b.charAt(d)}var f=[];var g=0;for(var d=0;d<this.length;d++){var h=this.charAt(d);if(h in c){f.push(this.substring(g,d));f.push(c[h]);g=d+1}}f.push(this.substring(g));return f.join('')};String.prototype.sansDiacritique=function(){return this.traduction('ŠŒŽšœžŸ¥µÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿ','SOZsozYYuAAAAAAACEEEEIIIIDNOOOOOOUUUUYsaaaaaaaceeeeiiiionoooooouuuuyy')};String.prototype.nomClasse=function(){return this.sansDiacritique().toLowerCase().replace(/[\W_]+/g,'_')};String.prototype.hash=function(){var a=0;for(var b=0;b<this.length;b++){a+=Number.MIN_VALUE+this.charCodeAt(b);a+=(a<<10);a^=(a>>6)}a+=(a<<3);a^=(a>>11);a+=(a<<15);return Math.abs(a)};Function.prototype.associerA=function(c){Debug.assert(typeof this=='function');Debug.assert(c);var d=this;var f=new Array();for(var g=1;g<arguments.length;g++)f.push(arguments[g]);return function(){var a=f.slice(0);for(var b=0;b<arguments.length;b++)a.push(arguments[b]);return d.apply(c,a)}};function I18n(){if(Global.estDefinition())return;this._dictionnaire_traductions=new Object()};I18n.prototype.locale=function(){return navigator.language||navigator.browserLanguage};I18n.prototype.etendreTraductionsLocale=function(a,b){Debug.assert(typeof this._dictionnaire_traductions=='object');Debug.assert(typeof a=='string'&&a);Debug.assert(typeof b=='object');var c=this._dictionnaire_traductions;if(typeof c[a]=='undefined')c[a]=new Object();var d=c[a];Debug.assert(typeof d=='object');for(var f in b){Debug.assert(typeof d[f]=='undefined');d[f]=b[f]}};I18n.prototype.gettext=function(a){Debug.assert(typeof this._dictionnaire_traductions=='object');Debug.assert(typeof a=='string');var b=this._dictionnaire_traductions;var c=this.locale();if(typeof b[c]!='undefined'&&typeof b[c][a]!='undefined')return b[c][a];else return a};var I18n=new I18n();var _=function(a){return I18n.gettext(a)};function Iterateur(){if(Global.estDefinition())return};Iterateur.prototype.suivant=function(){Debug.erreurNonImplemente('Iterateur.suivant')};Iterateur.prototype.enumerer=function(){var a=0;while(this.suivant())a++;return a};Iterateur.prototype.jointure=function(a){Debug.assert(typeof a=='string');var b='';var c;while(c=this.suivant()){if(b)b+=a+c;else b+=c}return b};Iterateur.prototype.trouver=function(a){Debug.assert(typeof a=='function');var b;while(b=this.suivant()){if(a(b))return b}return undefined};Iterateur.prototype.unVerifie=function(a){Debug.assert(typeof a=='function');var b;while(b=this.suivant()){if(a(b))return true}return false};Iterateur.prototype.contient=function(a){Debug.assert(a&&typeof a.estEgalA=='function');return this.unVerifie(a.estEgalA.associerA(a))};Iterateur.prototype.tousVerifient=function(a){Debug.assert(typeof a=='function');var b;while(b=this.suivant()){if(!a(b))return false}return true};Iterateur.prototype.reduire=function(a,b){Debug.assert(typeof a=='function');var c=b;var d;while(d=this.suivant())c=a(c,d);return c};Iterateur.prototype.unique=function(){var a=this.suivant();Debug.assert(typeof a=='undefined'||!this.suivant());return a};Iterateur.prototype.estEgalA=function(a){if(!(a instanceof Iterateur))return false;var b;do{b=this.suivant();var c=a.suivant();if(b&&typeof b.estEgalA=='function'){if(!b.estEgalA(c))return false}else{if(b!=c)return false}}while(b);return true};function IterateurApplicatif(a,b){if(Global.estDefinition())return;Debug.assert(a instanceof Iterateur);Debug.assert(typeof b=='function');Iterateur.call(this);this._iterateur=a;this._application=b};Global.heriter(IterateurApplicatif,Iterateur);IterateurApplicatif.prototype.suivant=function(){Debug.assert(this._iterateur instanceof Iterateur);Debug.assert(typeof this._application=='function');var suivant=this._iterateur.suivant();if(suivant)return this._application(suivant);else return undefined};function IterateurFiltrage(a,b){if(Global.estDefinition())return;Debug.assert(a instanceof Iterateur);Debug.assert(typeof b=='function');Iterateur.call(this);this._iterateur=a;this._filtre=b};Global.heriter(IterateurFiltrage,Iterateur);IterateurFiltrage.prototype.suivant=function(){Debug.assert(this._iterateur instanceof Iterateur);Debug.assert(typeof this._filtre=='function');var a;do{a=this._iterateur.suivant()}while(a&&!this._filtre(a))return a};function IterateurChaine(a){if(Global.estDefinition())return;Debug.assert(a instanceof Iterateur);Iterateur.call(this);this._iterateur_groupe=a;this._iterateur_courant=this._iterateur_groupe.suivant()};Global.heriter(IterateurChaine,Iterateur);IterateurChaine.prototype.suivant=function(){Debug.assert(this._iterateur_groupe instanceof Iterateur);Debug.assert(!this._iterateur_courant||this._iterateur_courant instanceof Iterateur);var a=this._iterateur_courant;while(a){var b=a.suivant();if(b){return b}else{a=this._iterateur_groupe.suivant();this._iterateur_courant=a}}return undefined};function IterateurUnion(){if(Global.estDefinition())return;var a=new Array();for(var b=0;b<arguments.length;b++)a.push(arguments[b]);IterateurChaine.call(this,a.iterateur())};Global.heriter(IterateurUnion,IterateurChaine);function IterateurPerpetuel(a){if(Global.estDefinition())return;Debug.assert(a);Iterateur.call(this);this._valeur=a};Global.heriter(IterateurPerpetuel,Iterateur);IterateurPerpetuel.prototype.suivant=function(){Debug.assert(this._valeur);return this._valeur};Array.Iterateur=function(a){if(Global.estDefinition())return;Debug.assert(a instanceof Array);Iterateur.call(this);this._tableau=a;this._i=0};Global.heriter(Array.Iterateur,Iterateur);Array.Iterateur.prototype.suivant=function(){Debug.assert(this._tableau instanceof Array);Debug.assert(typeof this._i=='number'&&this._i>=0&&this._i<=this._tableau.length);if(this._i<this._tableau.length)return this._tableau[this._i++];else return undefined};Array.Iterateur.prototype.enumerer=function(){Debug.assert(this._tableau instanceof Array);Debug.assert(typeof this._i=='number'&&this._i==0);this._i=this._tableau.length;return this._tableau.length};Array.Iterateur.prototype.jointure=function(a){Debug.assert(this._tableau instanceof Array);Debug.assert(typeof this._i=='number'&&this._i==0);Debug.assert(typeof a=='string');return this._tableau.join(a)};Array.prototype.iterateur=function(){return new Array.Iterateur(this)};Array.prototype.estEgalA=function(a){if(!(a instanceof Array)||a.length!=this.length)return false;for(var b=0;b<this.length;b++){var c=this[b];var d=a[b];if(c&&typeof c.estEgalA=='function'){if(!c.estEgalA(d))return false}else{if(c!=d)return false}}return true};Array.prototype.indexDeFiltre=function(a){Debug.assert(a);for(var b=0;b<this.length;b++){if(a(this[b]))return b}return-1};Array.prototype.indexDe=function(b){Debug.assert(b);return this.indexDeFiltre(function(a){return a==b})};Array.prototype.supprimer=function(a){Debug.assert(a);var b=this.indexDe(a);Debug.assert(b!=-1);this.splice(b,1)};function DictionnaireBase(){if(Global.estDefinition())return;Objet.call(this)};Global.heriter(DictionnaireBase,Objet);DictionnaireBase.prototype.longueur=function(){return this.iterateurValeurs().enumerer()};DictionnaireBase.prototype.iterateurClefs=function(){Debug.erreurNonImplemente()};DictionnaireBase.prototype.iterateurValeurs=function(){return new IterateurApplicatif(this.iterateurClefs(),function(clef){return this.valeurDe(clef)}.associerA(this))};DictionnaireBase.prototype.ajouter=function(a,b){Debug.erreurNonImplemente()};DictionnaireBase.prototype.contient=function(a){Debug.erreurNonImplemente()};DictionnaireBase.prototype.valeurDe=function(a){Debug.erreurNonImplemente()};DictionnaireBase.prototype.supprimer=function(a){Debug.erreurNonImplemente()};function DictionnaireChaine(){if(Global.estDefinition())return;DictionnaireBase.call(this);this._valeurs={}};Global.heriter(DictionnaireChaine,DictionnaireBase);DictionnaireChaine.prototype.longueur=function(){return this._iterateurValeurs().longueur()};DictionnaireChaine.prototype.iterateurClefs=function(){Debug.assert(typeof this._valeurs=='object');var a=this._valeurs;var b=[];for(var c in a)b.push(c);return b.iterateur()};DictionnaireChaine.prototype.ajouter=function(a,b){Debug.assert(typeof this._valeurs=='object');Debug.assert(typeof a=='string');this._valeurs[a]=b};DictionnaireChaine.prototype.contient=function(a){Debug.assert(typeof this._valeurs=='object');Debug.assert(typeof a=='string');return a in this._valeurs};DictionnaireChaine.prototype.valeurDe=function(a){Debug.assert(typeof this._valeurs=='object');Debug.assert(typeof a=='string');Debug.assert(a in this._valeurs);return this._valeurs[a]};DictionnaireChaine.prototype.supprimer=function(a){Debug.assert(typeof this._valeurs=='object');Debug.assert(typeof a=='string');delete this._valeurs[a]};function DictionnaireObjet(){if(Global.estDefinition())return;DictionnaireBase.call(this);this._liste_clefs=new Array();this._liste_valeurs=new Array()};Global.heriter(DictionnaireObjet,DictionnaireBase);DictionnaireObjet.prototype._valListeClefs=function(){Debug.assert(this._liste_clefs);return this._liste_clefs};DictionnaireObjet.prototype._valListeValeurs=function(){Debug.assert(this._liste_valeurs);return this._liste_valeurs};DictionnaireObjet.prototype.longueur=function(){return this._valListeClefs().length};DictionnaireObjet.prototype.iterateurClefs=function(){return this._valListeClefs().iterateur()};DictionnaireObjet.prototype.iterateurValeurs=function(){return this._valListeValeurs().iterateur()};DictionnaireObjet.prototype.ajouter=function(a,b){Debug.assert(a instanceof Objet);Debug.assert(b);var c=this._valListeClefs();var d=this._valListeValeurs();Debug.assert(c.length==d.length);c.push(a);d.push(b)};DictionnaireObjet.prototype._indexDe=function(a){Debug.assert(a instanceof Objet);return this._valListeClefs().indexDe(a)};DictionnaireObjet.prototype.contient=function(a){Debug.assert(a instanceof Objet);return this._indexDe(a)!=-1};DictionnaireObjet.prototype.valeurDe=function(a){Debug.assert(a instanceof Objet);var b=this._indexDe(a);Debug.assert(b!=-1);return this._valListeValeurs()[b]};DictionnaireObjet.prototype.supprimer=function(a){Debug.assert(a instanceof Objet);var b=this._indexDe(a);Debug.assert(b!=-1);var c=this._valListeClefs();var d=this._valListeValeurs();Debug.assert(c.length==d.length);c.splice(b,1);d.splice(b,1)};function Cookie(){};Cookie.modifier=function(a,b,c){Debug.assert(a);if(c){var d=new Date();d.setTime(d.getTime()+c);b+='; expires='+d.toGMTString()}document.cookie=a+'='+escape(b)+'; path=/'};Cookie.valeurDe=function(a){Debug.assert(a);var b=document.cookie.split(';');for(var c=0;c<b.length;c++){var d=b[c];var f=new RegExp('^\\s*'+a+'=(.*)\\s*$');var g=f.exec(d);if(g)return unescape(g[1])}return undefined};Cookie.effacer=function(a){Debug.assert(a);Cookie.modifier(a,'',-1)};function Ajax(){};Ajax.creerXMLHttpRequest=function(){if(typeof XMLHttpRequest!='undefined'){return new XMLHttpRequest()}try{return new ActiveXObject('Msxml2.XMLHTTP')}catch(e){}try{return new ActiveXObject('Microsoft.XMLHTTP')}catch(e){}alert('Votre navigateur ne peut pas creer de requete HTTP');return null};Ajax.construireURL=function(a){Debug.assert(typeof a=='string'&&a);Debug.assert(arguments.length%2==1);for(var b=1;b<arguments.length;b+=2){a+=(b==1?'?':'&')+arguments[b]+'='+escape(arguments[b+1])}return a};Ajax.envoyer=function(a,b,c,d,f,g,h){Debug.assert(typeof a=='string'&&a);Debug.assert(typeof b=='string'&&b);Debug.assert(typeof c=='boolean');Debug.assert(d==null||typeof d=='function');Debug.assert(f==null||typeof f=='function');Debug.assert(g==null||typeof g=='string');Debug.assert(h==null||typeof h=='object');var i=Ajax.creerXMLHttpRequest();i.open(a,b,c);for(titre in h)i.setRequestHeader(titre,h[titre]);i.onreadystatechange=function(){if(i.readyState!=4)return;if(i.status==200||i.status==0){if(d)d(i)}else{Debug.erreur('Status renvoye "'+i.statusText+'" ('+i.status+') invalide '+'pour l\'adresse : '+b+'.');if(f)f(i);if(!f)window.alert('Un problème est survenu lors '+'de la synchronisation avec '+'le serveur.')}};i.send(g)};Ajax.donneesFormulaire=function(a){Debug.assert(a&&a.tagName=='FORM');var b={};for(var c=0;c<a.elements.length;c++){var d=a.elements[c];if(d.name&&!d.disabled&&d.type!='file'){var f=(d.type=='checkbox'||d.type=='radio'?(d.checked?d.value:null):d.value);Debug.assert(typeof b[d.name]=='undefined');b[d.name]=f}}return b};Ajax.chargerJavascript=function(b,c,d){Debug.assert(typeof b=='string'&&b);Debug.assert(c==null||typeof c=='function');Debug.assert(d==null||typeof d=='function');function f(a){Debug.assert(a);Debug.assert(a.responseText);c(eval(a.responseText))}Ajax.envoyer('GET',b,true,f,d)};Ajax.appeler=function(a,b,c){Debug.assert(typeof a=='string'&&a);Debug.assert(b==null||typeof b=='function');Debug.assert(c==null||typeof c=='function');Ajax.envoyer('GET',a,true,b,c)};function Evenement(a,b){if(Global.estDefinition())return;Debug.assert(a);this._evenement_dom=a;if(!a.currentTarget)this._cible_courante=b};Evenement.TOUCHE_EFFACEMENT_ARRIERE=8;Evenement.TOUCHE_TABULATION=9;Evenement.TOUCHE_RETOUR=13;Evenement.TOUCHE_MAJUSCULE=16;Evenement.TOUCHE_CONTROLE=17;Evenement.TOUCHE_ALTERNATIVE=18;Evenement.TOUCHE_PAUSE=19;Evenement.TOUCHE_ECHAPPEMENT=27;Evenement.TOUCHE_PAGE_PRECEDENTE=33;Evenement.TOUCHE_PAGE_SUIVANTE=34;Evenement.TOUCHE_FIN=35;Evenement.TOUCHE_DEBUT=36;Evenement.TOUCHE_GAUCHE=37;Evenement.TOUCHE_HAUT=38;Evenement.TOUCHE_DROITE=39;Evenement.TOUCHE_BAS=40;Evenement.TOUCHE_INSERTION=45;Evenement.TOUCHE_SUPPRESSION=46;Evenement.desactiverSelection=function(a){Debug.assert(a);if(typeof a.onselectstart!='undefined'){Debug.assert(!a.onselectstart);a.onselectstart=function(){return false}}else if(typeof a.style.MozUserSelect!='undefined'){Debug.assert(!a.style.MozUserSelect);a.style.MozUserSelect='none'}else{Debug.assert(!a.onmousedown);a.onmousedown=function(){return false}}};Evenement.prototype.valEvenementDom=function(){Debug.assert(this._evenement_dom);return this._evenement_dom};Evenement.prototype.valPosition=function(){var a=this.valEvenementDom();return new Position(a.pageX||(a.clientX+scroll_x()),a.pageY||(a.clientY+scroll_y()))};Evenement.prototype.estClicGauche=function(){var a=this.valEvenementDom();return(a.which||a.button)==0};Evenement.prototype.valCible=function(){var a=this.valEvenementDom();return a.target||a.srcElement};Evenement.prototype.valCibleCourante=function(){var a=this.valEvenementDom();return a.currentTarget||this._cible_courante};Evenement.prototype.valFenetre=function(){var a=this.valEvenementDom();return a.view||this.valCible().ownerDocument.parentWindow};Evenement.prototype.survole=function(a){Debug.assert(a);var b=this.valPosition();return new RectangleElement(a).estSurvolePar(b)};Evenement.prototype.arreterPropagation=function(){var a=this.valEvenementDom();if(a.stopPropagation)a.stopPropagation();else a.cancelBubble=true};Evenement.prototype.arreterDefaut=function(){var a=this.valEvenementDom();if(a.preventDefault)a.preventDefault();else a.returnValue=false};Function.prototype.attacherAEvenement=function(b,c,d){Debug.assert(b);Debug.assert(c);Debug.assert(!/^on/.test(c));Debug.assert(!b['_'+c+this]);if(!d)d=b;var f=this;var g=function(a){if(!a){if(b.ownerDocument)a=b.ownerDocument.parentWindow.event;else if(b.parentWindow)a=b.parentWindow.event;else if(b.event)a=b.event}return f.call(d,new Evenement(a,this))};Debug.assert(!b['on'+c]);b['on'+c]=g;b['_'+c+this]=g};Function.prototype.detacherDeEvenement=function(a,b){Debug.assert(a);Debug.assert(b);Debug.assert(!/^on/.test(b));var c=a['_'+b+this];Debug.assert(c);Debug.assert(a['on'+b]==c);a['on'+b]=null;a['_'+b+this]=undefined};function serialiser(a){var b='';for(var c=0;c<a.childNodes.length;c++)b+=serialiser(a.childNodes[c]);var d='';for(var c=0;a.attributes&&c<a.attributes.length;c++){if(!/^on/.test(a.attributes[c].name)&&a.attributes[c].value)d+=' '+a.attributes[c].name+'='+a.attributes[c].value}return'<'+a.tagName+' ('+a.nodeName+')'+d+'>\n'+(a.data?a.data:'')+b+'</'+a.tagName+'>\n'};function style(a,b){Debug.assert(a);Debug.assert(b);Debug.assert(b.indexOf('-')==-1);if(a.style[b]){return a.style[b]}else if(document.defaultView){var c=document.defaultView.getComputedStyle(a,'');return c.getPropertyValue(b)}else if(a.currentStyle){return a.currentStyle[b]}};function scroll_x(){return window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft};function scroll_y(){return window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop};function min_x(a){Debug.assert(a);Debug.assert(a.parentNode);var b=a;var c=0;while(a.offsetParent){c+=a.offsetLeft||0;if(style(a,'position')=='fixed')c+=scroll_x();a=a.offsetParent}a=b;while(a.parentNode&&a.parentNode.tagName!='BODY'){c-=a.parentNode.scrollLeft||0;a=a.parentNode}return c};function max_x(a){Debug.assert(a);Debug.assert(a.parentNode);return min_x(a)+a.offsetWidth};function min_y(a){Debug.assert(a);Debug.assert(a.parentNode);var b=a;var c=0;while(a.offsetParent){c+=a.offsetTop||0;if(style(a,'position')=='fixed')c+=scroll_y();a=a.offsetParent}a=b;while(a.parentNode&&a.parentNode.tagName!='BODY'){c-=a.parentNode.scrollTop||0;a=a.parentNode}return c};function max_y(a){Debug.assert(a);Debug.assert(a.parentNode);return min_y(a)+a.offsetHeight};function contient(a,b){return min_x(a)<=min_x(b)&&max_x(a)>=max_x(b)&&min_y(a)<=min_y(b)&&max_y(a)>=max_y(b)};function chevauche(a,b){return!(max_x(a)<=min_x(b)||max_x(b)<=min_x(a)||max_y(a)<=min_y(b)||max_y(b)<=min_y(a))};function changer_opacite(a,b){a.style.opacity=b;a.style.MozOpacity=b;if(a.filters)a.style.filter='alpha(opacity='+b*100+')'};function frame_x(a){var b=0;while(a.frameElement){b+=min_x(a.frameElement);a=a.parent}return b};function frame_y(a){var b=0;while(a.frameElement){b+=min_y(a.frameElement);a=a.parent}return b};function MinuteurBase(a,b){if(Global.estDefinition())return;Debug.assert(typeof a=='number'&&a>0);Debug.assert(typeof b=='function'&&b);this._interval=a;this._rappel=b;this._est_demarre=false;this._est_termine=false};MinuteurBase.prototype._valInterval=function(){Debug.assert(typeof this._interval=='number'&&this._interval>0);return this._interval};MinuteurBase.prototype.estDemarre=function(){Debug.assert(typeof this._est_demarre=='boolean');return this._est_demarre};MinuteurBase.prototype.estTermine=function(){Debug.assert(typeof this._est_termine=='boolean');return this._est_termine};MinuteurBase.prototype._executerRappel=function(){Debug.assert(typeof this._rappel=='function'&&this._rappel);Debug.assert(this.estDemarre());Debug.assert(!this.estTermine());this._rappel(this)};MinuteurBase.prototype._creerTimeout=function(a){Debug.erreurNonImplemente('MinuteurBase._creerTimeout')};MinuteurBase.prototype._supprimerTimeout=function(){Debug.erreurNonImplemente('MinuteurBase._creerTimeout')};MinuteurBase.prototype.demarrer=function(){Debug.assert(!this.estDemarre());this._est_demarre=true;this._est_termine=false;var a=this._executerRappel.associerA(this);this._creerTimeout(a)};MinuteurBase.prototype.arreter=function(){Debug.assert(this.estDemarre());this._supprimerTimeout();this._est_demarre=false;this._est_termine=true};MinuteurBase.prototype.reinitialiser=function(){this.arreter();this.demarrer()};function Declencheur(a,b){if(Global.estDefinition())return;Debug.assert(typeof a=='number'&&a>0);Debug.assert(typeof b=='function'&&b);MinuteurBase.call(this,a,b);this._tmp1=null};Global.heriter(Declencheur,MinuteurBase);Declencheur.prototype._valDelai=function(){return this._valInterval()};Declencheur.prototype._executerRappel=function(){Debug.assert(this.estDemarre());Debug.assert(this._tmp1);MinuteurBase.prototype._executerRappel.call(this);this._est_termine=true};Declencheur.prototype._creerTimeout=function(a){Debug.assert(!this._tmp1);Debug.assert(a);this._tmp1=setTimeout(a,this._valDelai())};Declencheur.prototype._supprimerTimeout=function(){Debug.assert(this._tmp1);clearTimeout(this._tmp1);this._tmp1=null};function Minuteur(a,b){if(Global.estDefinition())return;Debug.assert(typeof a=='number'&&a>0);Debug.assert(typeof b=='function'&&b);MinuteurBase.call(this,a,b);this._tmp2=null};Global.heriter(Minuteur,MinuteurBase);Minuteur.prototype._creerTimeout=function(a){Debug.assert(!this._tmp2);Debug.assert(a);this._tmp2=setInterval(a,this._valInterval())};Minuteur.prototype._supprimerTimeout=function(){Debug.assert(this._tmp2);clearInterval(this._tmp2);this._tmp2=null};function Element(a){if(Global.estDefinition())return;Debug.assert(a);this._element_dom=a};Element.prototype.valElement=function(){Debug.assert(this._element_dom);return this._element_dom};Element.prototype.rectangle=function(){var a=this.valElementDom();return new Rectangle(min_x(a),max_x(a),element.offsetWidth,element.offsetHeight)};Element.prototype.contient=function(a){Debug.assert(a instanceof Element);return this.rectangle().contient(a.rectangle())};Element.prototype.chevauche=function(a){Debug.assert(a instanceof Element);return this.rectangle().chevauche(a.rectangle())};Element.prototype.cacher=function(){this.valElementDom().style.display='hidden'};Element.prototype.afficher=function(){this.valElementDom().style.display=''};Element.prototype.ajouterClasse=function(a){Debug.assert(typeof a=='string'&&a);this.valElementDom().className+=' '+a};Element.prototype.supprimerClasse=function(a){Debug.assert(typeof a=='string'&&a);var b=this.valElementDom();b.className+=b.className.replace(new RegEx('\s*'+a+'\b','g'),'')};Element.prototype.changerOpacite=function(a){Debug.assert(typeof a=='number'&&a>=0.0&&a<=1.0);var b=this.valELementDom();b.style.opacity=a;b.style.MozOpacity=a;if(b.filters)b.style.filter='alpha(opacity='+a*100+')'};Element.prototype.style=function(a){Debug.assert(typeof a=='string'&&a&&a.indexOf('-')==-1);return style(this.valElementDom(),a)};Element.prototype.serialiser=function(){return serialiser(this.valElementDom())};Element.prototype.adjoindreTexte=function(a){Debug.assert(typeof a=='string');var b=this.valElementDom();var c=b.ownerDocument;var d=c.createTextNode(a);b.appendChild(d)};Element.prototype.adjoindreVue=function(a){Debug.assert(a instanceof Vue);var b=a.valElementDom();var c=a.valElement().valElementDom();Debug.assert(b.ownerDocument==c.ownerDocument);b.appendChild(c)};function Serialisation(){};Serialisation.NonSerialisable=function(){};Serialisation.Reference=function(a){if(Global.estDefinition())return;Debug.assert(typeof a=='string'&&a);this._uid=a};Serialisation.Reference.prototype.valUid=function(){Debug.assert(typeof this._uid=='string'&&this._uid);return this._uid};Serialisation._persistance=undefined;Serialisation._activerPersistance=function(){Debug.assert(Serialisation._persistance==undefined);Serialisation._persistance=new Object()};Serialisation._aPersistance=function(){return Serialisation._persistance!=undefined};Serialisation._valPersistance=function(){Debug.assert(typeof Serialisation._persistance=='object');return Serialisation._persistance};Serialisation._deserialiserPersistance=function(a,b){Debug.assert(typeof a=='object');Debug.assert(typeof b=='string'&&b);Debug.assert(b.indexOf('volatil-')==-1);var c=Serialisation._valPersistance();if(c[b]==undefined||c[b]instanceof Serialisation.NonSerialisable){c[b]=a[b]}else{Debug.assert(a[b].constructor==c[b].constructor);for(var d in a[b]){if(d!='_liste_observateurs'&&(c[b][d]!=a[b][d])){c[b][d]=a[b][d]}}a[b]=c[b]}};Serialisation._deserialiserObjet=function(a,b){Debug.assert(typeof a=='object');Debug.assert(b);for(var c in b){var d=b[c];if(d instanceof Serialisation.Reference)b[c]=a[d.valUid()];else if(d instanceof Array)Serialisation._deserialiserObjet(a,d)}};Serialisation._assignerUid=function(a,b){Debug.assert(typeof a=='string'&&a);Debug.assert(b);Debug.assert(typeof b._valUid=='undefined');if(a.indexOf('volatil-')==-1){var a=parseInt(a);Debug.assert(typeof a=='number');Debug.assert(!isNaN(a));b._valUid=function(){Debug.assert(typeof a=='number');Debug.assert(!isNaN(a));return a}}};Serialisation.deserialiser=function(a,b){Debug.assert(typeof a=='object');Debug.assert(typeof b=='boolean');var c=Serialisation._aPersistance();if(c){for(var d in a){if(d.indexOf('volatil-')==-1){Serialisation._deserialiserPersistance(a,d)}}}for(var d in a){var f=a[d];Serialisation._deserialiserObjet(a,f);if(b&&(!c||!f._valUid))Serialisation._assignerUid(d,f)}return a};function Observateur(){if(Global.estDefinition())return;Objet.call(this);this._liste_observables=new Array()};Global.heriter(Observateur,Objet);Observateur.prototype._valListeObservables=function(){Debug.assert(this._liste_observables);return this._liste_observables};Observateur.prototype._detacherDe=function(a){Debug.assert(a instanceof ObservableBase);a.detacherObservateur(this);var b=this._valListeObservables();b.supprimer(a)};Observateur.prototype._abonnerA=function(a){Debug.assert(a instanceof ObservableBase);a.abonnerObservateur(this);var b=this._valListeObservables();b.push(a)};Observateur.prototype.detacher=function(){var a=this._valListeObservables();var b;while(b=a.iterateur().suivant())this._detacherDe(b)};Observateur.prototype.synchroniser=undefined;function ObservableBase(){if(Global.estDefinition())return;Objet.call(this)};Global.heriter(ObservableBase,Objet);ObservableBase.prototype.abonnerObservateur=function(a){Debug.erreurNonImplemente()};ObservableBase.prototype.detacherObservateur=function(a){Debug.erreurNonImplemente()};function ObservableImmuable(){if(Global.estDefinition())return;ObservableBase.call(this)};Global.heriter(ObservableImmuable,ObservableBase);ObservableImmuable.prototype.abonnerObservateur=function(a){Debug.assert(a instanceof Observateur)};ObservableImmuable.prototype.detacherObservateur=function(a){Debug.assert(a instanceof Observateur)};function Observable(){if(Global.estDefinition())return;ObservableBase.call(this);this._liste_observateurs=new Array()};Global.heriter(Observable,ObservableBase);Observable.prototype._valListeObservateurs=function(){Debug.assert(this._liste_observateurs instanceof Array);return this._liste_observateurs};Observable.prototype.abonnerObservateur=function(a){Debug.assert(a instanceof Observateur);var b=this._valListeObservateurs();b.push(a)};Observable.prototype.detacherObservateur=function(a){Debug.assert(a instanceof Observateur);var b=this._valListeObservateurs();b.supprimer(a)};Observable.prototype._notifierSignal=function(a){Debug.assert(!a||typeof a=='string');var b;if(a)b=('synchroniser'+a.capitaliser());var c=new Array();for(var d=1;d<arguments.length;d++)c.push(arguments[d]);var f=this._valListeObservateurs().iterateur();var g;while(g=f.suivant()){if(b&&g[b])g[b].apply(g,c);else g.synchroniser()}};Observable.prototype._notifierModification=function(){this._notifierSignal()};Observable.prototype.mettreAJourAvec=function(a){Debug.assert(a.constructor===this.constructor);var b=false;for(var c in this){if(!c in a){delete this[c];b=true}}for(var c in a){var d=a[c];if(this[c]===d||c=='_liste_observateurs')continue;if(typeof this[c].mettreAJourAvec=='function'){this[c].mettreAJourAvec(d)}else if(typeof this[c]!='object'){this[c]=d;b=true}else{Debug.erreur('Impossible de mettre a jour '+'l\'attribut')}}if(b)this._notifierModification()};function ObservableCourantBase(){if(Global.estDefinition())return;Observable.call(this);this._observable=null};Global.heriter(ObservableCourantBase,Observable);ObservableCourantBase.prototype._verifieContrainte=function(a){Debug.assert(a instanceof ObservableBase);return true};ObservableCourantBase.prototype.estDefini=function(){return this._observable!=null};ObservableCourantBase.prototype.val=function(){Debug.assert(this._observable instanceof ObservableBase);Debug.assert(this._verifieContrainte(this._observable));return this._observable};ObservableCourantBase.prototype._supprimer=function(){Debug.assert(this._observable instanceof ObservableBase);this._observable=null;this._notifierModification()};ObservableCourantBase.prototype._modifier=function(a){Debug.assert(a instanceof ObservableBase);Debug.assert(this._verifieContrainte(a));this._observable=a;this._notifierModification()};function ObservableCourant(){if(Global.estDefinition())return;ObservableCourantBase.call(this)};Global.heriter(ObservableCourant,ObservableCourantBase);ObservableCourant.prototype.modifier=function(a){Debug.assert(a instanceof ObservableBase);Debug.assert(this._verifieContrainte(a));if(this.estDefini()&&this.val()==a)this._supprimer();else this._modifier(a)};function Conteneur(){if(Global.estDefinition())return;Observable.call(this)};Global.heriter(Conteneur,Observable);Conteneur.prototype._notifierAjout=function(a){Debug.assert(a instanceof ObservableBase);this._notifierSignal('ajout',a)};Conteneur.prototype._notifierSuppression=function(a){Debug.assert(a instanceof ObservableBase);this._notifierSignal('suppression',a)};function Controlleur(a){if(Global.estDefinition())return;Debug.assert(a);Observateur.call(this);this._observable=a};Global.heriter(Controlleur,Observateur);Controlleur.prototype._valObservable=function(){Debug.assert(this._observable instanceof ObservableBase);return this._observable};function VueTransitoire(a){if(Global.estDefinition())return;Debug.assert(a instanceof ObservableBase);Observateur.call(this);this._observable=a};Global.heriter(VueTransitoire,Observateur);VueTransitoire.prototype._valObservable=function(){Debug.assert(this._observable instanceof ObservableBase);return this._observable};function Constructeur(a){if(Global.estDefinition())return;Debug.assert(a);Objet.call(this);this._document=a};Global.heriter(Constructeur,Objet);Constructeur.prototype._valDocument=function(){Debug.assert(this._document);return this._document};Constructeur.prototype.creerFragment=function(){return this._valDocument().createDocumentFragment()};Constructeur.prototype.creerElementRacine=function(a,b){Debug.assert(typeof a=='string'&&a);Debug.assert(!b||typeof b=='object');var c=this._valDocument();var d=c.createElement(a.toUpperCase());for(var f in b){var g=b[f];if(/^on/.test(f)){Debug.assert(typeof g=='function');g.attacherAEvenement(d,f.replace(/^on/,''))}else{d[f]=g}}return d};Constructeur.prototype.ajouterElementA=function(a,b,c){Debug.assert(a);Debug.assert(typeof b=='string'&&b);Debug.assert(!c||typeof c=='object');var d=this.creerElementRacine(b,c);a.appendChild(d);return d};Constructeur.prototype.ajouterTexteA=function(a,b){Debug.assert(a);Debug.assert(typeof b=='string');var c=this._valDocument();var d=c.createTextNode(b);a.appendChild(d);return d};Constructeur.prototype.ajouterVueA=function(a,b){Debug.assert(a);Debug.assert(b instanceof Vue);var c=b.valElement();Debug.assert(a.ownerDocument==c.ownerDocument);a.appendChild(c);return c};function supprimer_noeud(a,b){Debug.assert(a);Debug.assert(b);Debug.assert(b.parentNode==a);a.removeChild(b);if(document.all){var c=document.getElementById('decharge_correctif_fuite_memoire_ie');if(!c){c=document.createElement('div');c.id='decharge_correctif_fuite_memoire_ie';c.style.display='none';document.body.appendChild(c)}c.appendChild(b);c.innerHTML=''}};Constructeur.prototype.supprimerVueDe=function(a,b){Debug.assert(a);Debug.assert(b instanceof Vue);supprimer_noeud(a,b.valElement())};function ConstructeurNS(a,b){if(Global.estDefinition())return;Debug.assert(typeof b=='string'&&b);Constructeur.call(this,a);this._espace_nommage=b};Global.heriter(ConstructeurNS,Constructeur);ConstructeurNS.prototype._valEspaceNommage=function(){Debug.assert(typeof this._espace_nommage=='string'&&this._espace_nommage);return this._espace_nommage};ConstructeurNS.prototype.creerElementRacine=function(a,b){Debug.assert(typeof a=='string'&&a);Debug.assert(!b||typeof b=='object');var c=this._valDocument();var d=this._valEspaceNommage();var f=c.createElementNS(d,a);for(var g in b){var h=b[g];if(/^on/.test(g)){Debug.assert(typeof h=='function');h.attacherAEvenement(f,g.replace(/^on/,''))}else{f.setAttribute(g,h)}}return f};function Vue(a){if(Global.estDefinition())return;Debug.assert(a instanceof ObservableBase);VueTransitoire.call(this,a);this._element=null;this._abonnerA(a)};Global.heriter(Vue,VueTransitoire);Vue.CONSTRUCTEUR_LOCAL=new Constructeur(window.document);Vue.CONSTRUCTEUR_SVG_LOCAL=new ConstructeurNS(window.document,'http://www.w3.org/2000/svg');Vue.prototype._valConstructeur=function(){Debug.assert(Vue.CONSTRUCTEUR_LOCAL instanceof Constructeur);return Vue.CONSTRUCTEUR_LOCAL};Vue.prototype.detacher=function(){VueTransitoire.prototype.detacher.call(this);if(document.all){var a=this.valElement();for(var b=0;b<a.attributes.length;b++){var c=a.attributes[b].name;if(typeof a[c]=='function'){a[c]=null}}for(var c in this){if(this[c]&&typeof this[c].nodeType=='number'){this[c]=null}}Debug.assert(this._element==null)}};Vue.prototype.valElement=function(){Debug.assert(typeof this._creerElement=='function');if(!this._element){var a=this._creerElement();Debug.assert(a);this._element=a;if(this.synchroniser)this.synchroniser()}return this._element};function VueMaitre(a){if(Global.estDefinition())return;Debug.assert(a instanceof ObservableBase);Vue.call(this,a);this._sous_vues=new Array()};Global.heriter(VueMaitre,Vue);VueMaitre.prototype.detacher=function(){Debug.assert(this._sous_vues instanceof Array);Vue.prototype.detacher.call(this);var a=this._sous_vues.iterateur();var b;while(b=a.suivant())b.detacher()};VueMaitre.prototype._supprimerSousVue=function(a){Debug.assert(this._sous_vues instanceof Array);Debug.assert(a instanceof VueTransitoire);a.detacher();this._sous_vues.supprimer(a)};VueMaitre.prototype._ajouterSousVue=function(a){Debug.assert(this._sous_vues instanceof Array);Debug.assert(a instanceof VueTransitoire);this._sous_vues.push(a)};function VueObservableCourant(a){if(Global.estDefinition())return;Debug.assert(a instanceof ObservableCourantBase);Vue.call(this,a);this._sous_vue=null};Global.heriter(VueObservableCourant,Vue);VueObservableCourant.prototype._valObservableCourant=function(){return this._valObservable()};VueObservableCourant.prototype._valSousVue=function(){Debug.assert(this._sous_vue==null||this._sous_vue);return this._sous_vue};VueObservableCourant.prototype.detacher=function(){Vue.prototype.detacher.call(this);var a=this._valSousVue();if(a)a.detacher()};VueObservableCourant.prototype._creerSousVue=function(a){Debug.assert(a instanceof ObservableBase);Debug.erreurNonImplemente()};VueObservableCourant.prototype._creerElement=function(){Debug.assert(!this._element);return this._valConstructeur().creerElementRacine('div')};VueObservableCourant.prototype.synchroniser=function(){var a=this.valElement();var b=this._valSousVue();if(b){this._valConstructeur().supprimerVueDe(a,b);b.detacher();this._sous_vue=null}var c=this._valObservableCourant();if(c.estDefini()){var d=c.val();var b=this._creerSousVue(d);if(b){var f=this._valConstructeur();f.ajouterVueA(a,b);this._sous_vue=b}}};function VueConteneurBase(a){if(Global.estDefinition())return;Debug.assert(a instanceof ObservableBase);Vue.call(this,a);this._dictionnaire_sous_vues=new DictionnaireObjet()};Global.heriter(VueConteneurBase,Vue);VueConteneurBase.prototype._valDictionnaireSousVues=function(){Debug.assert(this._dictionnaire_sous_vues instanceof DictionnaireObjet);return this._dictionnaire_sous_vues};VueConteneurBase.prototype.detacher=function(){Vue.prototype.detacher.call(this);var a=this._valDictionnaireSousVues();var b=a.iterateurValeurs();var c;while(c=b.suivant())c.detacher()};VueConteneurBase.prototype._supprimerSousVue=function(a){Debug.assert(a instanceof VueTransitoire);var b=a._valObservable();a.detacher();var c=this._valDictionnaireSousVues();c.supprimer(b)};VueConteneurBase.prototype._ajouterSousVue=function(a){Debug.assert(a instanceof VueTransitoire);var b=a._valObservable();var c=this._valDictionnaireSousVues();c.ajouter(b,a)};VueConteneurBase.prototype._contientVueDe=function(a){Debug.assert(a instanceof ObservableBase);var b=this._valDictionnaireSousVues();return b.contient(a)};VueConteneurBase.prototype._recupererVueDe=function(a){Debug.assert(a instanceof ObservableBase);var b=this._valDictionnaireSousVues();return b.valeurDe(a)};VueConteneurBase.prototype.valElement=function(){Debug.assert(typeof this._creerElement=='function');if(!this._element){var a=this._creerElement();Debug.assert(a);this._element=a;if(this._creerSousVues)this._creerSousVues();if(this.synchroniser)this.synchroniser()}return this._element};VueConteneurBase.prototype._creerSousVues=undefined;VueConteneurBase.prototype.synchroniserAjout=undefined;VueConteneurBase.prototype.synchroniserSuppression=undefined;function VueConteneur(a){if(Global.estDefinition())return;Debug.assert(a instanceof ObservableBase);VueConteneurBase.call(this,a)};Global.heriter(VueConteneur,VueConteneurBase);VueConteneur.prototype._iterateurContenus=function(){Debug.erreurNonImplemente()};VueConteneur.prototype._valElementContenus=function(){return this.valElement()};VueConteneur.prototype._creerSousVues=function(){var a=this._iterateurContenus();var b;while(b=a.suivant())this.synchroniserAjout(b)};VueConteneur.prototype.synchroniserAjout=function(a){Debug.assert(a instanceof ObservableBase);var b=this._creerVueDe(a);if(b){var c=this._valConstructeur();var d=this._valElementContenus();this._ajouterSousVue(b);c.ajouterVueA(d,b)}};VueConteneur.prototype.synchroniserSuppression=function(a){Debug.assert(a instanceof ObservableBase);if(this._contientVueDe(a)){var b=this._recupererVueDe(a);var c=this._valElementContenus();this._valConstructeur().supprimerVueDe(c,b);this._supprimerSousVue(b)}};function VueListe(a){if(Global.estDefinition())return;Debug.assert(a instanceof ObservableBase);VueConteneur.call(this,a)};Global.heriter(VueListe,VueConteneur);VueListe.prototype._creerElementVue=function(a){Debug.assert(a instanceof Vue);var b=this._valConstructeur();var c=b.creerElementRacine('li');b.ajouterVueA(c,a);return c};VueListe.prototype.synchroniserAjout=function(a){Debug.assert(a instanceof ObservableBase);var b=this._creerVueDe(a);if(b){this._ajouterSousVue(b);var c=this._valElementContenus();var d=this._creerElementVue(b);c.appendChild(d)}};VueListe.prototype.synchroniserSuppression=function(a){Debug.assert(a instanceof ObservableBase);if(this._contientVueDe(a)){var b=this._recupererVueDe(a);var c=this._valElementContenus();var d=b.valElement().parentNode;Debug.assert(d.tagName=='LI');this._valConstructeur().supprimerVueDe(d,b);supprimer_noeud(c,d);this._supprimerSousVue(b)}};VueListe.prototype._creerElement=function(){Debug.assert(!this._element);var a=this._valConstructeur();var b=a.creerElementRacine('ul');return b};function VueDeportee(a,b){if(Global.estDefinition())return;Debug.assert(a instanceof ObservableBase);Debug.assert(b instanceof Constructeur);Vue.call(this,a);this._constructeur=b};Global.heriter(VueDeportee,Vue);VueDeportee.prototype._valConstructeur=function(){Debug.assert(this._constructeur instanceof Constructeur);return this._constructeur};function VueDeporteeConteneurBase(a,b){if(Global.estDefinition())return;Debug.assert(a instanceof ObservableBase);Debug.assert(b instanceof Constructeur);VueConteneurBase.call(this,a);this._constructeur=b};Global.heriter(VueDeporteeConteneur,VueConteneurBase);VueDeporteeConteneur.prototype._valConstructeur=function(){Debug.assert(this._constructeur instanceof Constructeur);return this._constructeur};function VueDeporteeConteneur(a,b){if(Global.estDefinition())return;Debug.assert(a instanceof ObservableBase);Debug.assert(b instanceof Constructeur);VueConteneur.call(this,a);this._constructeur=b};Global.heriter(VueDeporteeConteneur,VueConteneur);VueDeporteeConteneur.prototype._valConstructeur=function(){Debug.assert(this._constructeur instanceof Constructeur);return this._constructeur};function VueDeporteeListe(a,b){if(Global.estDefinition())return;Debug.assert(a instanceof ObservableBase);Debug.assert(b instanceof Constructeur);VueListe.call(this,a);this._constructeur=b};Global.heriter(VueDeporteeListe,VueListe);VueDeporteeListe.prototype._valConstructeur=function(){Debug.assert(this._constructeur instanceof Constructeur);return this._constructeur};function DeplacementBase(a){if(Global.estDefinition())return;Debug.assert(a instanceof Observable);Vue.call(this,a);this._dx=null;this._dy=null};Global.heriter(DeplacementBase,Vue);DeplacementBase.prototype._valDx=function(){Debug.assert(typeof this._dx=='number');return this._dx};DeplacementBase.prototype._valDy=function(){Debug.assert(typeof this._dy=='number');return this._dy};DeplacementBase.prototype._estPositionValide=function(a){Debug.assert(a instanceof Evenement);return true};DeplacementBase.prototype._rappelDeplacement=function(a){Debug.assert(a instanceof Evenement);var b=this.valElement();var c=a.valPosition();b.style.left=(c.valX()-this._valDx()+'px');b.style.top=(c.valY()-this._valDy()+'px');return false};DeplacementBase.prototype._terminer=function(a){Debug.assert(a instanceof Evenement);if(this._estPositionValide(a)){var b=this.valElement();this._rappelDeplacement.detacherDeEvenement(document,'mousemove');this._terminer.detacherDeEvenement(b,'click');this._valConstructeur().supprimerVueDe(b.parentNode,this)}return false};DeplacementBase.prototype.commencer=function(a,b,c){Debug.assert(a instanceof Evenement);Debug.assert(!b||typeof b=='number');Debug.assert(!c||typeof c=='number');var d=this.valElement();document.body.appendChild(d);this._dx=b||d.offsetWidth/2;this._dy=c||d.offsetHeight/2;this._rappelDeplacement.attacherAEvenement(document,'mousemove',this);this._terminer.attacherAEvenement(d,'click',this);d._className_sauvegarde=d.className;this._rappelDeplacement(a);return false};function MatriceBase(){if(Global.estDefinition())return;Objet.call(this);this._valeurs=new Array(arguments.length);for(var a=0;a<arguments.length;a++){Debug.assert(typeof arguments[a]=='number');this._valeurs[a]=arguments[a]}};Global.heriter(MatriceBase,Objet);MatriceBase.prototype.largeur=function(){Debug.erreurNonImplemente()};MatriceBase.prototype.hauteur=function(){Debug.erreurNonImplemente()};MatriceBase.prototype.valA=function(a,b){Debug.assert(this._valeurs instanceof Array);Debug.assert(typeof a=='number'&&a>=0&&a<this.largeur());Debug.assert(typeof b=='number'&&b>=0&&b<this.largeur());return this._valeurs[a+this.largeur()*b]};MatriceBase.prototype.opposer=function(){Debug.assert(this._valeurs instanceof Array);for(var a=0;a<this._valeurs.length;a++)this._valeurs[a]=-this._valeurs[a]};MatriceBase.prototype.multiplierPar=function(a){Debug.assert(this._valeurs instanceof Array);Debug.assert(typeof a=='number');for(var b=0;b<this._valeurs.length;b++)this._valeurs[b]*=a};MatriceBase.prototype.diviserPar=function(a){Debug.assert(this._valeurs instanceof Array);Debug.assert(typeof a=='number'&&a!=0);for(var b=0;b<this._valeurs.length;b++)this._valeurs[b]/=a};MatriceBase.prototype.ajouter=function(a){Debug.assert(this._valeurs instanceof Array);Debug.assert(a instanceof MatriceBase);Debug.assert(a._valeurs instanceof Array);Debug.assert(a.largeur()==this.largeur()&&a.hauteur()==a.hauteur());for(var b=0;b<this._valeurs.length;b++)this._valeurs[b]+=a._valeurs[b]};MatriceBase.prototype.soustraire=function(a){Debug.assert(this._valeurs instanceof Array);Debug.assert(a instanceof MatriceBase);Debug.assert(a._valeurs instanceof Array);Debug.assert(a.largeur()==this.largeur()&&a.hauteur()==a.hauteur());for(var b=0;b<this._valeurs.length;b++)this._valeurs[b]-=a._valeurs[b]};MatriceBase.prototype.multiplicationAvec=function(a){Debug.assert(this._valeurs instanceof Array);Debug.assert(a instanceof MatriceBase);Debug.assert(a._valeurs instanceof Array);Debug.assert(a.largeur()==this.hauteur());var b=this.largeur();var c=this.hauteur();var d=a.hauteur();var f=new Array(b*d);for(var g=0;g<c;g++){for(var h=0;h<c;h++){var i=0.0;for(var j=0;j<b;j++)i+=(this._valeurs[j+g*b]*a._valeurs[h+j*c]);f[h+g*b]=i}}var a=Global.allouer(Matrice);Matrice.apply(a,[b,d].concat(f));return a};MatriceBase.prototype.transposee=function(){Debug.assert(this._valeurs instanceof Array);var a=this.largeur();var b=this.hauteur();var c=new Array(this._valeurs.length);for(var d=0;d<b;d++){for(var f=0;f<a;f++){c[d+f*b]=this._valeurs[f+d*a]}}var g=Global.allouer(Matrice);Matrice.apply(g,[b,a].concat(c));return g};function Matrice(a,b){if(Global.estDefinition())return;Debug.assert(typeof a=='number'&&a>0);Debug.assert(typeof b=='number'&&b>0);var c=new Array(arguments.length-2);for(var d=2;d<arguments.length;d++)c[d-2]=arguments[d];MatriceBase.apply(this,c);this._largeur=a;this._hauteur=b};Global.heriter(Matrice,MatriceBase);Matrice.prototype.largeur=function(){Debug.assert(typeof this._largeur=='number'&&this._largeur>0);return this._largeur};Matrice.prototype.hauteur=function(){Debug.assert(typeof this._hauteur=='number'&&this._hauteur>0);return this._hauteur};function TransformationSimple(){if(Global.estDefinition())return;Debug.assert(arguments.length==9);Debug.assert(arguments[6]==0&&arguments[7]==0&&arguments[8]==1);MatriceBase.apply(this,arguments)};Global.heriter(TransformationSimple,MatriceBase);TransformationSimple.prototype.hauteur=function(){return 3};TransformationSimple.prototype.largeur=function(){return 3};function Translation(a,b){if(Global.estDefinition())return;Debug.assert(typeof a=='number');Debug.assert(typeof b=='number');TransformationSimple.call(this,1,0,a,0,1,b,0,0,1)};Global.heriter(Translation,TransformationSimple);function Homotetie(a,b){if(Global.estDefinition())return;Debug.assert(typeof a=='number');Debug.assert(typeof b=='number');TransformationSimple.call(this,a,0,0,0,b,0,0,0,1)};Global.heriter(Homotetie,TransformationSimple);function Rotation(a){if(Global.estDefinition())return;Debug.assert(typeof a=='number');var b=Math.cos(a);var c=Math.sin(a);TransformationSimple.call(this,b,-c,0,c,b,0,0,0,1)};Global.heriter(Rotation,TransformationSimple);function Vecteur(){if(Global.estDefinition())return;MatriceBase.apply(this,arguments)};Global.heriter(Vecteur,MatriceBase);Vecteur.prototype.largeur=function(){Debug.assert(this._valeurs instanceof Array);return this._valeurs.length};Vecteur.prototype.hauteur=function(){return 1};Vecteur.prototype.valA=function(a){Debug.assert(this._valeurs instanceof Array);Debug.assert(a>=0&&a<this._valeurs.length);return this._valeurs[a]};Vecteur.prototype.norme=function(){return Math.sqrt(this.produitScalaire(this))};Vecteur.prototype.normer=function(){this.diviserPar(this.norme())};Vecteur.prototype.produitScalaire=function(a){Debug.assert(this._valeurs instanceof Array);Debug.assert(a instanceof Vecteur);Debug.assert(a._valeurs instanceof Array);Debug.assert(a._valeurs.length==this._valeurs.length);var b=0;for(var c=0;c<this._valeurs.length;c++)b+=this._valeurs[c]*a._valeurs[c];return b};Vecteur.prototype.produitVectoriel=function(a){Debug.assert(this._valeurs instanceof Array);Debug.assert(a instanceof Vecteur);Debug.assert(a._valeurs instanceof Array);Debug.assert(this._valeurs.length==3&&a._valeurs.length==3);return new Vecteur((this._valeurs[1]*a._valeurs[2]-this._valeurs[2]*a._valeurs[1]),(this._valeurs[2]*a._valeurs[0]-this._valeurs[0]*a._valeurs[2]),(this._valeurs[0]*a._valeurs[1]-this._valeurs[1]*a._valeurs[0]))};function Position(a,b){if(Global.estDefinition())return;Debug.assert(typeof a=='number');Debug.assert(typeof b=='number');Objet.call(this);this._x=a;this._y=b};Global.heriter(Position,Objet);Position.prototype.valX=function(){Debug.assert(typeof this._x=='number');return this._x};Position.prototype.valY=function(){Debug.assert(typeof this._y=='number');return this._y};Position.prototype.vecteurVers=function(a){Debug.assert(a instanceof Position);return new Vecteur(a.valX()-this.valX(),a.valY()-this.valY())};Position.prototype.distanceA=function(a){Debug.assert(a instanceof Position);var b=a.valX()-this.valX();var c=a.valY()-this.valY();return Math.sqrt(b*b+c*c)};Position.prototype.interpolationAvec=function(a,b){Debug.assert(a instanceof Position);Debug.assert(typeof b=='number');return new Position(this.valX().interpolationAvec(a.valX(),b),this.valY().interpolationAvec(a.valY(),b))};Position.prototype.translationDe=function(a){Debug.assert(a instanceof Vecteur);Debug.assert(a.largeur()==2);return new Position(this.valX()+a.valA(0),this.valY()+a.valA(1))};Position.prototype.contraindreA=function(a){Debug.assert(a instanceof RectangleBase);return new Position(this.valX().contraindreA(a.minX(),a.maxX()),this.valY().contraindreA(a.minY(),a.maxY()))};function Segment(a,b){if(Global.estDefinition())return;Debug.assert(a instanceof Position);Debug.assert(b instanceof Position);Objet.call(this);this._position1=a;this._position2=b};Global.heriter(Segment,Objet);Segment.prototype.valPosition1=function(){Debug.assert(this._position1 instanceof Position);return this._position1};Segment.prototype.valPosition2=function(){Debug.assert(this._position2 instanceof Position);return this._position2};Segment.prototype.vecteurDirecteur=function(){var a=this.valPosition1();var b=this.valPosition2();return new Vecteur(b.valX()-a.valX(),b.valY()-a.valY())};Segment.prototype.normale=function(){var a=this.valPosition1();var b=this.valPosition2();return new Vecteur(a.valY()-b.valY(),b.valX()-a.valX())};Segment.prototype.longueur=function(){return this.valPosition1().distanceA(this.valPosition2())};Segment.prototype._calculerParametrage=function(a){Debug.assert(a instanceof Position);var b=this.valPosition1();var c=this.valPosition2();var d=c.valX()-b.valX();var f=c.valY()-b.valY();Debug.assert(d!=0||f!=0);var g=(((a.valX()-b.valX())*d+(a.valY()-b.valY())*f)/(d*d+f*f));return g};Segment.prototype.plusProcheSommet=function(a){Debug.assert(a instanceof Position);var b=this._calculerParametrage(a);if(b<=0.5)return this.valPosition1();else return this.valPosition2()};Segment.prototype.plusProchePosition=function(a){Debug.assert(a instanceof Position);var b=this.valPosition1();var c=this.valPosition2();var d=c.valX()-b.valX();var f=c.valY()-b.valY();var g=this._calculerParametrage(a).contraindreA(0,1);var h=new Position(b.valX()+g*d,b.valY()+g*f);return h};Segment.prototype.distanceA=function(a){Debug.assert(a instanceof Position);var b=this.plusProchePosition(a);return b.distanceA(a)};Segment.prototype.contientPosition=function(a){Debug.assert(typeof Math.EPSILON=='number');Debug.assert(a instanceof Position);return this.distanceA(a)<Math.EPSILON};Segment.prototype.intersecteSegment=function(a){Debug.assert(a instanceof Segment);var b=this.valPosition1().valX();var c=this.valPosition2().valX();var d=a.valPosition1().valX();var f=a.valPosition2().valX();var g=this.valPosition1().valY();var h=this.valPosition2().valY();var i=a.valPosition1().valY();var j=a.valPosition2().valY();var k=(j-i)*(c-b)-(f-d)*(h-g);var l=(f-d)*(g-i)-(j-i)*(b-d);var n=(c-b)*(g-i)-(h-g)*(b-d);if(k==0)return false;var m=l/k;var o=n/k;return(m>0&&m<1&&o>0&&o<1)};function Taille(a,b){if(Global.estDefinition())return;Debug.assert(typeof a=='number'&&a>=0);Debug.assert(typeof b=='number'&&b>=0);Objet.call(this);this._largeur=a;this._hauteur=b};Global.heriter(Taille,Objet);Taille.prototype.valLargeur=function(){Debug.assert(typeof this._largeur=='number'&&this._largeur>=0);return this._largeur};Taille.prototype.valHauteur=function(){Debug.assert(typeof this._hauteur=='number'&&this._hauteur>=0);return this._hauteur};Taille.prototype.aire=function(){return this.valLargeur()*this.valHauteur()};Taille.prototype.multiplierPar=function(a){Debug.assert(typeof a=='number'&&a>=0);return new Taille(this.valLargeur()*a,this.valHauteur()*a)};function RectangleBase(){if(Global.estDefinition())return;Objet.call(this)};Global.heriter(RectangleBase,Objet);RectangleBase.prototype.minX=function(){Debug.erreurNonImplemente()};RectangleBase.prototype.minY=function(){Debug.erreurNonImplemente()};RectangleBase.prototype.largeur=function(){Debug.erreurNonImplemente()};RectangleBase.prototype.hauteur=function(){Debug.erreurNonImplemente()};RectangleBase.prototype.maxX=function(){return this.minX()+this.largeur()};RectangleBase.prototype.maxY=function(){return this.minY()+this.hauteur()};RectangleBase.prototype.aire=function(){return this.largeur()*this.hauteur()};RectangleBase.prototype.estSurvolePar=function(a){Debug.assert(a instanceof Position);return a.valX()>=this.minX()&&a.valY()>=this.minY()&&a.valX()<=this.maxX()&&a.valY()<=this.maxY()};RectangleBase.prototype.contientPosition=function(a){Debug.assert(a instanceof Position);return this.minX()<=a.valX()&&this.maxX()>=a.valX()&&this.minY()<=a.valY()&&this.maxY()>=a.valY()};RectangleBase.prototype.contientRectangle=function(a){Debug.assert(a instanceof RectangleBase);return this.minX()<=a.minX()&&this.maxX()>=a.maxX()&&this.minY()<=a.minY()&&this.maxY()>=a.maxY()};RectangleBase.prototype.chevauche=function(a){Debug.assert(a instanceof RectangleBase);return!(this.maxX()<a.minX()||this.minX()>a.maxX()||this.maxY()<a.minY()||this.minY()>a.maxY())};RectangleBase.prototype.contraindreA=function(a){Debug.assert(a instanceof RectangleBase);Debug.assert(this.largeur()<=a.largeur());Debug.assert(this.hauteur()<=a.hauteur());return new Rectangle(this.minX().contraindreA(a.minX(),a.maxX()-this.largeur()),this.minY().contraindreA(a.minY(),a.maxY()-this.hauteur()),this.largeur(),this.hauteur())};function Rectangle(a,b,c,d){if(Global.estDefinition())return;Debug.assert(typeof a=='number');Debug.assert(typeof b=='number');Debug.assert(typeof c=='number'&&c>=0);Debug.assert(typeof d=='number'&&d>=0);RectangleBase.call(this);this._origine=new Position(a,b);this._taille=new Taille(c,d)};Global.heriter(Rectangle,RectangleBase);Rectangle.prototype._valOrigine=function(){Debug.assert(this._origine instanceof Position);return this._origine};Rectangle.prototype._valTaille=function(){Debug.assert(this._taille instanceof Taille);return this._taille};Rectangle.prototype.minX=function(){return this._valOrigine().valX()};Rectangle.prototype.minY=function(){return this._valOrigine().valY()};Rectangle.prototype.largeur=function(){return this._valTaille().valLargeur()};Rectangle.prototype.hauteur=function(){return this._valTaille().valHauteur()};Rectangle.prototype.translateA=function(a){Debug.assert(a instanceof Position);var b=this._valTaille();return new Rectangle(a.valX(),a.valY(),b.valLargeur(),b.valHauteur())};function BoiteEnglobante(a,b,c,d){if(Global.estDefinition())return;Debug.assert(typeof a=='number');Debug.assert(typeof b=='number');Debug.assert(typeof c=='number'&&c>=0);Debug.assert(typeof d=='number'&&d>=0);Rectangle.call(this,a,b,c,d)};Global.heriter(BoiteEnglobante,Rectangle);BoiteEnglobante.prototype.unionAvec=function(a){Debug.assert(a instanceof BoiteEnglobante);var b=Math.min(this.minX(),a.maxX());var c=Math.min(this.minY(),a.minY());var d=(Math.max(this.maxX(),a.maxX())-b);var f=(Math.max(this.maxY(),a.maxY())-c);return new BoiteEnglobante(b,c,d,f)};function RectangleElement(a){if(Global.estDefinition())return;Debug.assert(a);RectangleBase.call(this);this._element=a};Global.heriter(RectangleElement,RectangleBase);RectangleElement.prototype._valElement=function(){Debug.assert(this._element);return this._element};RectangleElement.prototype.minX=function(){var a=this._valElement();return min_x(a)};RectangleElement.prototype.minY=function(){var a=this._valElement();return min_y(a)};RectangleElement.prototype.largeur=function(){var a=this._valElement();var b=a.style;var c=a.offsetWidth;if(c==0){var d=b.overflow;b.overflow='auto';c=a.scrollWidth;b.overflow=d}return c};RectangleElement.prototype.hauteur=function(){var a=this._valElement();var b=a.style;var c=a.offsetHeight;if(c==0){var d=b.overflow;b.overflow='auto';c=a.scrollHeight;b.overflow=d}return c};function Polygonne(a){if(Global.estDefinition())return;Debug.assert(a instanceof Array);Observable.call(this);this._liste_sommets=a};Global.heriter(Polygonne,Observable);Polygonne._IterateurSegments=function(a){if(Global.estDefinition())return;Debug.assert(a instanceof Array);Iterateur.call(this);this._liste_sommets=a;this._i=0};Global.heriter(Polygonne._IterateurSegments,Iterateur);Polygonne._IterateurSegments.prototype.suivant=function(){Debug.assert(this._liste_sommets instanceof Array);Debug.assert(typeof this._i=='number'&&this._i>=0&&this._i<=this._liste_sommets.length);var a=this._liste_sommets.length;if(this._i<a){return new Segment(this._liste_sommets[this._i++],this._liste_sommets[this._i%a])}else{return undefined}};Polygonne._IterateurEpsilonSommets=function(a){if(Global.estDefinition())return;Debug.assert(a instanceof Polygonne);Iterateur.call(this);this._polygonne=a;this._i=0};Global.heriter(Polygonne._IterateurEpsilonSommets,Iterateur);Polygonne._IterateurEpsilonSommets.prototype.suivant=function(){Debug.assert(this._polygonne instanceof Polygonne);var a=this._polygonne;Debug.assert(a._liste_sommets instanceof Array);var b=a._liste_sommets;Debug.assert(typeof this._i=='number'&&this._i>=0&&this._i<=b.length);var c=b.length;if(this._i<c){var d=b[(this._i+c-1)%c];var f=b[this._i];var g=b[(this._i+1)%c];this._i++;var h=new Segment(d,f).normale();var i=new Segment(f,g).normale();h.normer();i.normer();h.ajouter(i);h.multiplierPar(Math.EPSILON/2);var j=f.translationDe(h);if(!a.contientPosition(j)){h.opposer();j=f.translationDe(h);Debug.assert(a.contientPosition(j))}return j}else{return undefined}};Polygonne.prototype.iterateurSommets=function(){Debug.assert(this._liste_sommets instanceof Array);return this._liste_sommets.iterateur()};Polygonne.prototype.iterateurSegments=function(){Debug.assert(this._liste_sommets instanceof Array);return new Polygonne._IterateurSegments(this._liste_sommets)};Polygonne.prototype.boiteEnglobante=function(){var a=Infinity;var b=Infinity;var c=-Infinity;var d=-Infinity;var f=this.iterateurSommets();var g;while(g=f.suivant()){if(g.valX()<a)a=g.valX();if(g.valY()<b)b=g.valY();if(g.valX()>c)c=g.valX();if(g.valY()>d)d=g.valY()}return new BoiteEnglobante(a,b,c-a,d-b)};Polygonne.prototype.contientPosition=function(a){Debug.assert(this._liste_sommets instanceof Array);Debug.assert(a instanceof Position);var b=this._liste_sommets;var c=b.length;var d=a.valX();var f=a.valY();var g=false;for(var h=0,i=c-1;h<c;i=h++){var j=b[h].valX();var k=b[h].valY();var l=b[i].valX();var n=b[i].valY();if(((k<=f&&f<n)||(n<=f&&f<k))&&(d<(l-j)*(f-k)/(n-k)+j))g=!g}return g};Polygonne.prototype.contientSegment=function(b){Debug.assert(this._liste_sommets instanceof Array);Debug.assert(b instanceof Segment);if(!this.contientPosition(b.valPosition1())||!this.contientPosition(b.valPosition2()))return false;return!this.iterateurSegments().unVerifie(function(a){return b.intersecteSegment(a)})};Polygonne.prototype.aPourFrontiere=function(b){Debug.assert(this._liste_sommets instanceof Array);Debug.assert(b instanceof Position);return this.iterateurSegments().unVerifie(function(a){return a.contientPosition(b)})};Polygonne.prototype.plusProchePositionDe=function(a){Debug.assert(this._liste_sommets instanceof Array);Debug.assert(a instanceof Position);if(this.contientPosition(a))return a;var b=Infinity;var c=null;var d=this.iterateurSegments();var f;while(f=d.suivant()){var g=f.plusProchePosition(a);var h=g.distanceA(a);if(h<b){b=h;c=g}}return c};Polygonne.prototype.iterateurEpsilonSommets=function(){return new Polygonne._IterateurEpsilonSommets(this)};Polygonne.prototype.sommetEstConcave=function(a){Debug.assert(this._liste_sommets instanceof Array);var b=this._liste_sommets;var c=b.length;var d=b.indexDe(a);Debug.assert(d!=-1);var f=b[(d+c-1)%c];var g=b[d];var h=new Segment(f,g).vecteurDirecteur();h.multiplierPar(Math.EPSILON/h.norme());var i=g.translationDe(h);return this.contientPosition(i)};Polygonne.prototype.epsilonPolygonne=function(){var a=[];var b=this.iterateurEpsilonSommets();var c;while(c=b.suivant())a.push(c);return new Polygonne(a)};Polygonne.prototype.plusProcheEpsilonPositionDe=function(a){Debug.assert(a instanceof Position);return this.epsilonPolygonne().plusProchePositionDe(a)};function TasBinaire(a){if(Global.estDefinition())return;Debug.assert(typeof a=='function');Objet.call(this);this._liste_elements=new Array();this._score_element=a};Global.heriter(TasBinaire,Objet);TasBinaire.prototype._scoreDe=function(a){Debug.assert(typeof this._score_element=='function');Debug.assert(a);return this._score_element(a)};TasBinaire.prototype.taille=function(){Debug.assert(this._liste_elements instanceof Array);return this._liste_elements.length};TasBinaire.prototype.ajouter=function(a){Debug.assert(this._liste_elements instanceof Array);Debug.assert(a);this._liste_elements.push(a);this._sinkDown(this._liste_elements.length-1)};TasBinaire.prototype.depiler=function(){Debug.assert(this._liste_elements instanceof Array);var a=this._liste_elements[0];var b=this._liste_elements.pop();if(this.taille()>0){this._liste_elements[0]=b;this._bubbleUp(0)}return a};TasBinaire.prototype.supprimer=function(a){Debug.assert(this._liste_elements instanceof Array);Debug.assert(a);var b=this._liste_elements.indexDe(a);Debug.assert(b!=-1);var c=this._liste_elements.pop();if(this.taille()>0){this._liste_elements[b]=c;this._bubbleUp(b)}};TasBinaire.prototype._sinkDown=function(a){Debug.assert(this._liste_elements instanceof Array);Debug.assert(typeof a=='number'&&a>=0&&a<this._liste_elements.length);var b=this._liste_elements[a];var c=this._scoreDe(b);while(a>0){var d=Math.floor((a+1)/2)-1;var f=this._liste_elements[d];if(c<this._scoreDe(f)){this._liste_elements[d]=b;this._liste_elements[a]=f;a=d}else{break}}};TasBinaire.prototype._bubbleUp=function(a){Debug.assert(this._liste_elements instanceof Array);Debug.assert(typeof a=='number'&&a>=0&&a<this._liste_elements.length);var b=this._liste_elements.length;var c=this._liste_elements[a];var d=this._scoreDe(c);while(true){var f=(a+1)*2;var g=f-1;var h=null;if(g<b){var i=this._liste_elements[g];var j=this._scoreDe(i);if(j<d)h=g}if(f<b){var k=this._liste_elements[f];var l=this._scoreDe(k);if(l<(h==null?d:j))h=f}if(h!=null){this._liste_elements[a]=this._liste_elements[h];this._liste_elements[h]=c;a=h}else{break}}};function parcours_a_etoile(b,c,d,f){Debug.assert(b);Debug.assert(typeof b.coutTraversee=='function');Debug.assert(typeof b.estimationCout=='function');Debug.assert(typeof b.iterateurSuccesseurs=='function');Debug.assert(c);Debug.assert(d);Debug.assert(f instanceof parcours_a_etoile.ReserveNoeuds);var g=new TasBinaire(function(a){Debug.assert(a instanceof parcours_a_etoile._Noeud&&a.valEstOuvert());return(a.valCout()+b.estimationCout(a.valEmplacement(),d))});f.reinitialiser();var h=f.noeudDe(c);Debug.assert(!h.valEstOuvert());h.ouvrir(null,0);g.ajouter(h);while(g.taille()!=0){var i=g.depiler();var j=(i.valParent()?i.valParent().valEmplacement():null);var k=i.valEmplacement();if(k==d)return i.chemin();var l=b.iterateurSuccesseurs(k);var n;while(n=l.suivant()){var m=f.noeudDe(n);var o=(i.valCout()+b.coutTraversee(j,k,n));if(m.valEstFerme()){continue}else if(m.valEstOuvert()&&o<m.valCout()){m.ouvrir(i,o)}else if(!m.valEstOuvert()){m.ouvrir(i,o);g.ajouter(m)}}i.fermer()}Debug.erreur('parcours_a_etoile : aucun chemin');return undefined};parcours_a_etoile._Noeud=function(){if(Global.estDefinition())return;Objet.call(this);this._emplacement=null;this._parent=null;this._cout=null;this._est_ouvert=null;this._est_ferme=null};Global.heriter(parcours_a_etoile._Noeud,Objet);parcours_a_etoile._Noeud.prototype.reinitialiser=function(a){Debug.assert(a);this._emplacement=a;this._est_ouvert=false;this._est_ferme=false};parcours_a_etoile._Noeud.prototype.valEmplacement=function(){Debug.assert(this._emplacement);return this._emplacement};parcours_a_etoile._Noeud.prototype.valParent=function(){Debug.assert(!this._parent||this._parent instanceof parcours_a_etoile._Noeud);return this._parent};parcours_a_etoile._Noeud.prototype.valCout=function(){Debug.assert(typeof this._cout=='number'&&this._cout>=0);Debug.assert(typeof this._est_ouvert=='boolean'&&this._est_ouvert);return this._cout};parcours_a_etoile._Noeud.prototype.valEstOuvert=function(){Debug.assert(typeof this._est_ouvert=='boolean');return this._est_ouvert};parcours_a_etoile._Noeud.prototype.valEstFerme=function(){Debug.assert(typeof this._est_ferme=='boolean');return this._est_ferme};parcours_a_etoile._Noeud.prototype.ouvrir=function(a,b){Debug.assert(typeof this._est_ferme=='boolean');Debug.assert(typeof this._est_ouvert=='boolean');Debug.assert(!this._est_ferme);Debug.assert(typeof b=='number'&&b>=0);Debug.assert(!a||a instanceof parcours_a_etoile._Noeud);this._parent=a;this._cout=b;this._est_ouvert=true};parcours_a_etoile._Noeud.prototype.fermer=function(){Debug.assert(typeof this._est_ferme=='boolean');Debug.assert(typeof this._est_ouvert=='boolean');Debug.assert(this._est_ouvert&&!this._est_ferme);this._est_ouvert=false;this._est_ferme=true};parcours_a_etoile._Noeud.prototype.chemin=function(){var a=[];var b=this;while(b){a.unshift(b.valEmplacement());b=b.valParent()}return a};parcours_a_etoile.ReserveNoeuds=function(){if(Global.estDefinition())return;Objet.call(this);this._reserve_noeuds=new Array();this._dictionnaire_ouverts={}};Global.heriter(parcours_a_etoile.ReserveNoeuds,Objet);parcours_a_etoile.ReserveNoeuds.prototype.reinitialiser=function(){Debug.assert(typeof this._dictionnaire_ouverts=='object');Debug.assert(typeof this._reserve_noeuds=='object');var a=this._dictionnaire_ouverts;var b=this._reserve_noeuds;for(var c in a){b.push(a[c])}this._dictionnaire_ouverts={}};parcours_a_etoile.ReserveNoeuds.prototype._clefDe=function(a){Debug.assert(a);Debug.erreurNonImplemente('parcours_a_etoile.ReserveNoeuds::_clefDe')};parcours_a_etoile.ReserveNoeuds.prototype.noeudDe=function(a){Debug.assert(typeof this._dictionnaire_ouverts=='object');Debug.assert(typeof this._reserve_noeuds=='object');Debug.assert(a);var b=this._dictionnaire_ouverts;var c=this._reserve_noeuds;var d=this._clefDe(a);Debug.assert(typeof d=='string'&&d);var f=b[d];if(!f){if(c.length!=0)f=c.pop();else f=new parcours_a_etoile._Noeud();f.reinitialiser(a);b[d]=f}Debug.assert(f instanceof parcours_a_etoile._Noeud);return f};function Commutateur(){if(Global.estDefinition())return;Observable.call(this);this._est_active=false};Global.heriter(Commutateur,Observable);Commutateur.prototype.valEstActive=function(){Debug.assert(typeof this._est_active=='boolean');return this._est_active};Commutateur.prototype.basculer=function(){Debug.assert(typeof this._est_active=='boolean');this._est_active=!this._est_active;this._notifierModification()};function VueRetractible(a){if(Global.estDefinition())return;Debug.assert(a instanceof Commutateur);Vue.call(this,a);this._liste_vues_retractibles=new Array()};Global.heriter(VueRetractible,Vue);VueRetractible.prototype._valCommutateurOuverture=function(){return this._valObservable()};VueRetractible.prototype._iterateurVuesRetractibles=function(){Debug.assert(this._liste_vues_retractibles instanceof Array);return this._liste_vues_retractibles.iterateur()};VueRetractible.prototype.detacher=function(){Vue.prototype.detacher.call(this);if(this._liste_vues_retractibles){var a=this._iterateurVuesRetractibles();var b;while(b=a.suivant())b.detacher()}};VueRetractible.prototype._ajouterVueRetractible=function(a){Debug.assert(this._liste_vues_retractibles instanceof Array);Debug.assert(a instanceof Vue);var b=this._valConstructeur();var c=this.valElement();b.ajouterVueA(c,a)};VueRetractible.prototype._supprimerVueRetractible=function(a){Debug.assert(this._liste_vues_retractibles instanceof Array);Debug.assert(a instanceof Vue);var b=this.valElement();a.detacher();this._valConstructeur().supprimerVueDe(b,a)};VueRetractible.prototype._creerVuesRetractibles=function(){Debug.erreurNonImplemente()};VueRetractible.prototype.synchroniser=function(){var a=this._valCommutateurOuverture();var b=a.valEstActive();var c=this.valElement();if(b&&this._liste_vues_retractibles==null){this._liste_vues_retractibles=this._creerVuesRetractibles();var d=this._iterateurVuesRetractibles();var f;while(f=d.suivant())this._ajouterVueRetractible(f)}else if(!b&&this._liste_vues_retractibles!=null){var d=this._iterateurVuesRetractibles();var f;while(f=d.suivant())this._supprimerVueRetractible(f);this._liste_vues_retractibles=null}};function VueListeModifiable(a){if(Global.estDefinition())return;Debug.assert(a instanceof ObservableBase);VueListe.call(this,a);this._commutateur_modifications=new Commutateur();this._abonnerA(this._commutateur_modifications);this._element_contenus=null;this._element_modifier=null};Global.heriter(VueListeModifiable,VueListe);VueListeModifiable.prototype._valCommutateurModifications=function(){Debug.assert(this._commutateur_modifications instanceof Commutateur);return this._commutateur_modifications};VueListeModifiable.prototype._valElementContenus=function(){Debug.assert(this._element_contenus);return this._element_contenus};VueListeModifiable.prototype._valElementModifier=function(){Debug.assert(this._element_modifier);return this._element_modifier};VueListeModifiable.prototype._rappelModifier=function(){this._valCommutateurModifications().basculer();return false};VueListeModifiable.prototype._supprimer=function(a){Debug.assert(a instanceof Observable);Debug.erreurNonImplemente()};VueListeModifiable.prototype._creerElementVue=function(a){var b=this._valConstructeur();var c=VueListe.prototype._creerElementVue.call(this,a);var d;if(typeof a.valElementControles=='function')d=a.valElementControles();else d=c;b.ajouterElementA(d,'a',{'href':'#','className':'supprimer','onclick':this._supprimer.associerA(this,a._valObservable())});return c};VueListeModifiable.prototype.synchroniser=function(){var a=this._valCommutateurModifications();var b=this.valElement();var c=this._valElementModifier();if(a.valEstActive()){c.data='verrouiller';b.className+=' modification_en_cours'}else{c.data='modifier';b.className=b.className.replace(/\s*modification_en_cours\b/g,'')}};VueListeModifiable.prototype._creerElement=function(){Debug.assert(!this._element);Debug.assert(!this._element_contenus);Debug.assert(!this._element_modifier);var a=this._valConstructeur();var b=a.creerElementRacine('div');var c=a.ajouterElementA(b,'a',{'href':'#','className':'modifier','onclick':this._rappelModifier.associerA(this)});var d=a.ajouterTexteA(c,'[..]');var f=VueListe.prototype._creerElement();b.appendChild(f);this._element_contenus=f;this._element_modifier=d;return b};function Erreur(){if(Global.estDefinition())return;Observable.call(this)};Global.heriter(Erreur,Observable);Erreur.prototype.estToujoursValide=function(){return true};function ErreurOuvertureFenetre(a){if(Global.estDefinition())return;Debug.assert(a);Erreur.call(this);this._fenetre=a};Global.heriter(ErreurOuvertureFenetre,Erreur);ErreurOuvertureFenetre.prototype.estToujoursValide=function(){return this.valFenetre().estOuverte()};ErreurOuvertureFenetre.prototype.valFenetre=function(){Debug.assert(this._fenetre);return this._fenetre};function FileErreurs(){if(Global.estDefinition())return;Observable.call(this);this._liste_erreurs=new Array()};Global.heriter(FileErreurs,Observable);FileErreurs.prototype.valTete=function(){Debug.assert(this._liste_erreurs instanceof Array);return this._liste_erreurs[0]};FileErreurs.prototype.empiler=function(a){Debug.assert(this._liste_erreurs instanceof Array);Debug.assert(a instanceof Erreur);this._liste_erreurs.push(a);if(this._liste_erreurs.length==1)this._notifierModification()};FileErreurs.prototype.depiler=function(){Debug.assert(this._liste_erreurs instanceof Erreur);this._liste_erreurs.shift();while(this._liste_erreurs.length>0&&!this._liste_erreurs[0].estToujoursValide())this._liste_erreurs.shift();this._notifierModification()};function VueErreur(a,b){if(Global.estDefinition())return;Debug.assert(a instanceof Erreur);Debug.assert(b instanceof FileErreur);Vue.call(this,a);this._file_erreurs=b};Global.heriter(VueErreur,Vue);VueErreur.prototype._valErreur=function(){return this._valObservable()};VueErreur.prototype._depilerErreur=function(){var a=this._valErreur();Debug.assert(this._file_erreurs instanceof FileErreur);Debug.assert(this._file_erreurs.tete()==a);this._file_erreurs.depiler()};VueErreur.prototype._creerElement=function(){Debug.assert(!this._element);var a=this._valConstructeur();var b=a.creerElementRacine('div',{'className':'erreur'});return b};function VueErreurOuvertureFenetre(a,b){if(Global.estDefinition())return;Debug.assert(a instanceof ErreurOuvertureFenetre);Debug.assert(b instanceof FileErreurs);VueErreur.call(this,a,b)};Global.heriter(VueErreurOuvertureFenetre,VueErreur);VueErreurOuvertureFenetre.prototype._valErreurOuvertureFenetre=function(){return this._valObservable()};VueErreurOuvertureFenetre.prototype._rappelAide=function(){this._depilerErreur();return true};VueErreurOuvertureFenetre.prototype._rappelOuverture=function(){this._depilerErreur();this._valErreurOuvertureFenetre().valFenetre().ouvrir();return false};VueErreurOuvertureFenetre.prototype._creerElement=function(){Debug.assert(!this._element);var a=this._valConstructeur();var b=VueErreur.prototype._creerElement.call(this);b.className+=' erreur_ouverture_fenetre';var c=a.ajouterElementA(b,'div',{'className':'titre'});a.ajouterTexteA(c,'Votre navigateur a bloqué l\'ouverture d\'une fenêtre');var d=a.ajouterElementA(b,'a',{'href':'#','onclick':this._rappelOuverture.associerA(this)});a.ajouterTexteA(d,'ouvrir manuellement la fenêtre');return b};function VueFileErreurs(a){if(Global.estDefinition())return;Debug.assert(a instanceof FileErreur);Vue.call(this,a);this._vue_courante=null};Global.heriter(VueFileErreurs,Vue);VueFileErreurs.prototype._valFileErreurs=function(){return this._valObservable()};VueFileErreurs.prototype._aVueCourante=function(){Debug.assert(this._vue_courante==null||this._vue_courante instanceof VueErreur);return this._vue_courante!=null};VueFileErreurs.prototype._valVueCourante=function(){Debug.assert(this._vue_courante instanceof VueErreur);return this._vue_courante};VueFileErreurs.prototype._modifierVueCourante=function(a){Debug.assert(a==null||a instanceof VueErreur);if(this._aVueCourante()){var b=this._valVueCourante();var c=this.valElement();b.detacher();this._valConstructeur().supprimerVueDe(c,b)}this._vue_courante=a};VueFileErreurs.prototype.detacher=function(){Observateur.prototype.detacher.call(this);if(this._aVueCourante())this._valVueCourante().detacher()};VueFileErreurs.prototype._creerElement=function(){Debug.assert(!this._element);var a=this._valConstructeur();var b=a.creerElementRacine('div',{'className':'file_erreurs'});return b};VueFileErreurs.prototype.synchroniser=function(){var a=this._valFileErreurs();var b=file_erreurs.tete();var c;if(!b){c=null}else if(b instanceof ErreurOuvertureFenetre){c=new VueErreurOuvertureFenetre(b,file_erreurs)}else{Global.erreur('VueFileErreurs::synchroniser : '+'type d\'erreur inconnu')}this._modifierVueCourante(c);var d=this.valElement();if(c){d.className='file_erreurs';var f=this._valConstructeur();f.ajouterVueA(d,c)}else{d.className='file_erreurs cache'}};function Fenetre(a,b,c,d,f){if(Global.estDefinition())return;Debug.assert(a instanceof ObservableBase);Debug.assert(typeof b=='string'&&b);Debug.assert(typeof c=='number'&&c>0);Debug.assert(typeof d=='number'&&d>0);Debug.assert(typeof f=='boolean');VueTransitoire.call(this,a);this._fenetre=null;this._titre=b;this._largeur=c;this._hauteur=d;this._est_dialogue=f};Global.heriter(Fenetre,VueTransitoire);Fenetre.prototype._aFenetre=function(){return this._fenetre!=null};Fenetre.prototype.estOuverte=function(){return this._aFenetre()};Fenetre.prototype._valFenetre=function(){Debug.assert(this._fenetre);return this._fenetre};Fenetre.prototype._valFenetreParent=function(){return window};Fenetre.prototype._valConstructeur=function(){var a=this._valFenetre();Debug.assert(a.document);return new Constructeur(a.document)};Fenetre.prototype._valTitre=function(){Debug.assert(typeof this._titre=='titre'&&titre);return this._titre};Fenetre.prototype._valLargeur=function(){Debug.assert(typeof this._largeur=='number'&&this._largeur>0);return this._largeur};Fenetre.prototype._valHauteur=function(){Debug.assert(typeof this._hauteur=='number'&&this._hauteur>0);return this._hauteur};Fenetre.prototype._valEstDialogue=function(){Debug.assert(typeof this._est_dialogue=='boolean');return this._est_dialogue};Fenetre.prototype._rappelFermetureParent=function(){if(this._aFenetre())this.fermer()};Fenetre.prototype._rappelFermeture=function(){Debug.assert(this._aFenetre());this._fenetre=null};Fenetre.prototype._rappelChargement=function(){var a=this._valFenetre();a.document.title=this._valTitre();var b=a.document.getElementsByTagName('head');Debug.assert(b.length==1);head=b[0];var c=a.document.body;Debug.assert(c);head.appendChild(this._creerEntete());c.appendChild(this._creerCorps());evenement_attacher(a,'unload',this._rappelFermeture.associerA(this));evenement_attacher(this._valFenetreParent(),'unload',this._rappelFermetureParent.associerA(this))};Fenetre.prototype._creerEntete=function(){Debug.erreurNonImplemente('Fenetre._creerEntete')};Fenetre.prototype._creerCorps=function(){Debug.erreurNonImplemente('Fenetre._creerCorps')};Fenetre.prototype._creerFenetre=function(){Debug.assert(!this._aFenetre());var a=('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\n'+'<html xmlns="http://www.w3.org/1999/xhtml">\n'+'<head></head>\n'+'<body></body>\n'+'</html>');var b=('directories=no,location=no,menubar=no,'+'resizable=yes,scrollbars=no,status=no,toolbar=no,'+'width='+this._valLargeur()+','+'height='+this._valHauteur());if(this._valEstDialogue())b+=',dialog=yes';var c;if(this._valEstDialogue()&&window.showModelessDialog){c=window.showModelessDialog(null,null,b)}else{c=window.open('','_blank',b)}if(!c){file_erreurs.empiler(new ErreurOuvertureFenetre(this));return}c.document.write(a);c.document.close();this._fenetre=c;setTimeout(this._rappelChargement.associerA(this),0)};Fenetre.prototype.ouvrir=function(){Debug.assert(!this._aFenetre());this._creerFenetre()};Fenetre.prototype.fermer=function(){Debug.assert(this._aFenetre());this._valFenetre().close()};function Couleur(){if(Global.estDefinition())return};Couleur.prototype.representationCss=function(){Debug.erreurNonImplement('Couleur::representationCss')};function CouleurRvb(a,b,c){if(Global.estDefinition())return;Debug.assert(typeof a=='number'&&a>=0.0&&a<=1.0);Debug.assert(typeof b=='number'&&b>=0.0&&b<=1.0);Debug.assert(typeof c=='number'&&c>=0.0&&c<=1.0);Couleur.call(this);this._rouge=a;this._vert=b;this._bleu=c};Global.heriter(CouleurRvb,Couleur);CouleurRvb.prototype.valRouge=function(){Debug.assert(typeof this._rouge=='number'&&this._rouge>=0.0&&this._rouge<=1.0);return this._rouge};CouleurRvb.prototype.valVert=function(){Debug.assert(typeof this._vert=='number'&&this._vert>=0.0&&this._vert<=1.0);return this._vert};CouleurRvb.prototype.valBleu=function(){Debug.assert(typeof this._bleu=='number'&&this._bleu>=0.0&&this._bleu<=1.0);return this._bleu};CouleurRvb.prototype.representationCss=function(){return('rgb('+Math.round(255*this.valRouge())+','+Math.round(255*this.valVert())+','+Math.round(255*this.valBleu())+')')};function CouleurTsv(a,b,c){if(Global.estDefinition())return;Debug.assert(typeof a=='number'&&a>=0.0&&a<360.0);Debug.assert(typeof b=='number'&&b>=0.0&&b<=1.0);Debug.assert(typeof c=='number'&&c>=0.0&&c<=1.0);Couleur.call(this);this._teinte=a;this._saturation=b;this._valeur=c};Global.heriter(CouleurTsv,Couleur);CouleurTsv.prototype.valTeinte=function(){Debug.assert(typeof this._teinte=='number'&&this._teinte>=0.0&&this._teinte<360.0);return this._teinte};CouleurTsv.prototype.valSaturation=function(){Debug.assert(typeof this._saturation=='number'&&this._saturation>=0.0&&this._saturation<=1.0);return this._saturation};CouleurTsv.prototype.valValeur=function(){Debug.assert(typeof this._valeur=='number'&&this._valeur>=0.0&&this._valeur<=1.0);return this._valeur};CouleurTsv.prototype.couleurRvb=function(){var a=this.valTeinte();var b=this.valSaturation();var c=this.valValeur();if(b==0)return new CouleurRvb(c,c,c);var d=Math.floor(a/60);var f=a/60-d;var g=c*(1-b);var h=c*(1-f*b);var i=c*(1-(1-f)*b);var j;var k;var l;switch(d){case 0:j=c;k=i;l=g;break;case 1:j=h;k=c;l=g;break;case 2:j=g;k=c;l=i;break;case 3:j=g;k=h;l=c;break;case 4:j=i;k=g;l=c;break;case 5:j=c;k=g;l=h;break;default:Debug.erreur('Erreur interne : valeur impossible')}return new CouleurRvb(j,k,l)};CouleurTsv.prototype.representationCss=function(){return this.couleurRvb().representationCss()};function DeplacementElementListe(a){if(Global.estDefinition())return;Debug.assert(a);Objet.call(this);this._element=a};Global.heriter(DeplacementElementListe,Objet);DeplacementElementListe.prototype._valElement=function(){Debug.assert(this._element);return this._element};DeplacementElementListe.prototype._positionElement=function(){var a=this._valElement();var b=a.parentNode.childNodes;for(var c=0;c<b.length;c++){if(b[c]==a)return c}return-1};DeplacementElementListe.prototype._predecesseurPour=function(a){Debug.assert(a);var b=this._valElement();do{if(a.parentNode==b.parentNode)return a;a=a.parentNode}while(a)return null};DeplacementElementListe.prototype._rappelDeplacement=function(a){Debug.assert(a instanceof Evenement);var b=this._valElement();var c=a.valCible();var d=this._predecesseurPour(c);if(d&&d!=b){if(d.nextSibling||d.parentNode!=b.parentNode)d.parentNode.insertBefore(b,d);else d.parentNode.insertBefore(d,b)}a.arreterPropagation();return false};DeplacementElementListe.prototype._terminer=function(a){Debug.assert(a instanceof Evenement);this._rappelDeplacement.detacherDeEvenement(document,'mousemove');this._terminer.detacherDeEvenement(document,'mouseup',this);document.body.style.cursor='';a.arreterPropagation();return false};DeplacementElementListe.prototype.commencer=function(a){Debug.assert(a instanceof Evenement);var b=this._valElement();document.body.style.cursor='move';this._rappelDeplacement.attacherAEvenement(document,'mousemove',this);this._terminer.attacherAEvenement(document,'mouseup',this);this._rappelDeplacement(a);a.arreterPropagation();return false};function File(a,b){if(Global.estDefinition())return;Debug.assert(a==null||(typeof a=='string'&&a));Debug.assert(b==null||(typeof b=='string'&&b));Observable.call(this);this._contentType=a;this._data=b};Global.heriter(File,Observable);File.prototype.valContenttype=function(){Debug.assert(this._contentType==null||(typeof this._contentType=='string'&&this._contentType));return this._contentType};File.prototype.valData=function(){Debug.assert(this._data==null||(typeof this._data=='string'&&this._data));return this._data};function Image_(a,b){if(Global.estDefinition())return;Debug.assert(a==null||(typeof a=='string'&&a));Debug.assert(b==null||(typeof b=='string'&&b));File.call(this,a,b)};Global.heriter(Image_,File);function Transformation(a,b){if(Global.estDefinition())return;Debug.assert(a==null||(typeof a=='string'&&a));Debug.assert(b==null||(typeof b=='string'&&b));Image_.call(this,a,b)};Global.heriter(Transformation,Image_);function ImageComposee(a,b,c){if(Global.estDefinition())return;Debug.assert(a==null||(typeof a=='string'&&a));Debug.assert(b==null||(typeof b=='string'&&b));Debug.assert(c==null||c);Image_.call(this,a,b);this._cache_transformations=c};Global.heriter(ImageComposee,Image_);ImageComposee.prototype.valCacheTransformations=function(){Debug.assert(this._cache_transformations==null||this._cache_transformations);return this._cache_transformations};function Aventure(a,b,c){if(Global.estDefinition())return;Debug.assert(typeof a=='string'&&a);Debug.assert(b);Debug.assert(c);Observable.call(this);this._nom=a;this._parties=b;this._scenario=c};Global.heriter(Aventure,Observable);Aventure.prototype.valNom=function(){Debug.assert(typeof this._nom=='string'&&this._nom);return this._nom};Aventure.prototype.valParties=function(){Debug.assert(this._parties);return this._parties};Aventure.prototype.valScenario=function(){Debug.assert(this._scenario);return this._scenario};function Partie(a,b){if(Global.estDefinition())return;Debug.assert(a);Debug.assert(b);Observable.call(this);this._changement_scene=a;this._inventaire=b};Global.heriter(Partie,Observable);Partie.prototype.valChangementScene=function(){Debug.assert(this._changement_scene);return this._changement_scene};Partie.prototype.valInventaire=function(){Debug.assert(this._inventaire);return this._inventaire};function JetonBase(){if(Global.estDefinition())return;Observable.call(this)};Global.heriter(JetonBase,Observable);function Inhibiteur(a){if(Global.estDefinition())return;Debug.assert(a);Observable.call(this);this._jeton=a};Global.heriter(Inhibiteur,Observable);Inhibiteur.prototype.valJeton=function(){Debug.assert(this._jeton);return this._jeton};function Prerequis(a){if(Global.estDefinition())return;Debug.assert(a);Observable.call(this);this._jeton=a};Global.heriter(Prerequis,Observable);Prerequis.prototype.valJeton=function(){Debug.assert(this._jeton);return this._jeton};function ImageBase(a,b,c,d,f,g){if(Global.estDefinition())return;Debug.assert(typeof a=='string'&&a);Debug.assert(typeof b=='string'&&b);Debug.assert(typeof c=='number');Debug.assert(typeof d=='number');Debug.assert(f==null||f);Debug.assert(g==null||g);ImageComposee.call(this,a,b,f);this._largeur=c;this._hauteur=d;this._contours=g};Global.heriter(ImageBase,ImageComposee);ImageBase.prototype.valLargeur=function(){Debug.assert(typeof this._largeur=='number');return this._largeur};ImageBase.prototype.valHauteur=function(){Debug.assert(typeof this._hauteur=='number');return this._hauteur};ImageBase.prototype.iterateurContours=function(){Debug.assert(this._contours==null||this._contours);return this._contours.iterateur()};function ElementSceneConditionnelBase(a,b){if(Global.estDefinition())return;Debug.assert(a instanceof Array);Debug.assert(b instanceof Array);Observable.call(this);this._liste_inhibiteurs=a;this._liste_prerequis=b};Global.heriter(ElementSceneConditionnelBase,Observable);ElementSceneConditionnelBase.prototype.iterateurInhibiteurs=function(){Debug.assert(this._liste_inhibiteurs instanceof Array);return this._liste_inhibiteurs.iterateur()};ElementSceneConditionnelBase.prototype.iterateurPrerequis=function(){Debug.assert(this._liste_prerequis instanceof Array);return this._liste_prerequis.iterateur()};function ImageSceneBase(a,b,c){if(Global.estDefinition())return;Debug.assert(a==null||(typeof a=='string'&&a));Debug.assert(b instanceof Array);Debug.assert(c instanceof Array);ElementSceneConditionnelBase.call(this,b,c);this._nom_animation_image=a};Global.heriter(ImageSceneBase,ElementSceneConditionnelBase);ImageSceneBase.prototype.valNomAnimationImage=function(){Debug.assert(this._nom_animation_image==null||(typeof this._nom_animation_image=='string'&&this._nom_animation_image));return this._nom_animation_image};function ImageInventaire(a,b,c,d,f,g){if(Global.estDefinition())return;Debug.assert(typeof a=='string'&&a);Debug.assert(typeof b=='string'&&b);Debug.assert(typeof c=='number');Debug.assert(typeof d=='number');Debug.assert(f==null||f);Debug.assert(g==null||g);ImageBase.call(this,a,b,c,d,f,g)};Global.heriter(ImageInventaire,ImageBase);function EtatObjet(a){if(Global.estDefinition())return;Debug.assert(typeof a=='string'&&a);JetonBase.call(this);this._nom=a};Global.heriter(EtatObjet,JetonBase);EtatObjet.prototype.valNom=function(){Debug.assert(typeof this._nom=='string'&&this._nom);return this._nom};function PositionScene(a,b,c,d,f){if(Global.estDefinition())return;Debug.assert(typeof a=='number');Debug.assert(typeof b=='number');Debug.assert(typeof c=='number');Debug.assert(d instanceof Array);Debug.assert(f instanceof Array);ElementSceneConditionnelBase.call(this,d,f);this._x=a;this._y=b;this._z=c};Global.heriter(PositionScene,ElementSceneConditionnelBase);PositionScene.prototype.valX=function(){Debug.assert(typeof this._x=='number');return this._x};PositionScene.prototype.valY=function(){Debug.assert(typeof this._y=='number');return this._y};PositionScene.prototype.valZ=function(){Debug.assert(typeof this._z=='number');return this._z};function Jeton(a){if(Global.estDefinition())return;Debug.assert(typeof a=='string'&&a);JetonBase.call(this);this._nom=a};Global.heriter(Jeton,JetonBase);Jeton.prototype.valNom=function(){Debug.assert(typeof this._nom=='string'&&this._nom);return this._nom};function ImageDirectionnelleScene(a,b,c,d,f,g){if(Global.estDefinition())return;Debug.assert(typeof a=='string'&&a);Debug.assert(typeof b=='string'&&b);Debug.assert(typeof c=='number');Debug.assert(typeof d=='number');Debug.assert(f==null||f);Debug.assert(g==null||g);ImageBase.call(this,a,b,c,d,f,g)};Global.heriter(ImageDirectionnelleScene,ImageBase);function Objet_(a,b,c,d,f,g){if(Global.estDefinition())return;Debug.assert(typeof a=='string'&&a);Debug.assert(b instanceof Array);Debug.assert(c instanceof Array);Debug.assert(d instanceof Array);Debug.assert(f instanceof Array);Debug.assert(g instanceof Array);Jeton.call(this,a);this._liste_actions=b;this._liste_images_scene=c;this._liste_images_inventaire=d;this._liste_positions=f;this._liste_etats=g};Global.heriter(Objet_,Jeton);Objet_.prototype.iterateurActions=function(){Debug.assert(this._liste_actions instanceof Array);return this._liste_actions.iterateur()};Objet_.prototype.iterateurImagesScene=function(){Debug.assert(this._liste_images_scene instanceof Array);return this._liste_images_scene.iterateur()};Objet_.prototype.iterateurImagesInventaire=function(){Debug.assert(this._liste_images_inventaire instanceof Array);return this._liste_images_inventaire.iterateur()};Objet_.prototype.iterateurPositions=function(){Debug.assert(this._liste_positions instanceof Array);return this._liste_positions.iterateur()};Objet_.prototype.iterateurEtats=function(){Debug.assert(this._liste_etats instanceof Array);return this._liste_etats.iterateur()};function GroupeImagesDirectionnellesScene(a,b,c,d){if(Global.estDefinition())return;Debug.assert(a==null||(typeof a=='string'&&a));Debug.assert(b instanceof Array);Debug.assert(c instanceof Array);Debug.assert(d instanceof Array);ImageSceneBase.call(this,a,b,c);this._liste_images=d};Global.heriter(GroupeImagesDirectionnellesScene,ImageSceneBase);GroupeImagesDirectionnellesScene.prototype.iterateurImages=function(){Debug.assert(this._liste_images instanceof Array);return this._liste_images.iterateur()};function ImageScene(a,b,c,d,f,g,h,i,j){if(Global.estDefinition())return;Debug.assert(typeof a=='string'&&a);Debug.assert(typeof b=='string'&&b);Debug.assert(typeof c=='number');Debug.assert(typeof d=='number');Debug.assert(f==null||f);Debug.assert(g==null||g);Debug.assert(h==null||(typeof h=='string'&&h));Debug.assert(i instanceof Array);Debug.assert(j instanceof Array);ImageSceneBase.call(this,h,i,j);ImageBase.call(this,a,b,c,d,f,g)};Global.heriter(ImageScene,ImageSceneBase,ImageBase);function Animation(a){if(Global.estDefinition())return;Debug.assert(a instanceof Array);Observable.call(this);this._liste_elements_animation=a};Global.heriter(Animation,Observable);Animation.prototype.iterateurElementsAnimation=function(){Debug.assert(this._liste_elements_animation instanceof Array);return this._liste_elements_animation.iterateur()};function ElementAnimationBase(a,b){if(Global.estDefinition())return;Debug.assert(typeof a=='number');Debug.assert(typeof b=='number');Observable.call(this);this._debut=a;this._duree=b};Global.heriter(ElementAnimationBase,Observable);ElementAnimationBase.prototype.valDebut=function(){Debug.assert(typeof this._debut=='number');return this._debut};ElementAnimationBase.prototype.valDuree=function(){Debug.assert(typeof this._duree=='number');return this._duree};function ElementAnimationObjet(a,b,c){if(Global.estDefinition())return;Debug.assert(typeof a=='number');Debug.assert(typeof b=='number');Debug.assert(c);ElementAnimationBase.call(this,a,b);this._objet=c};Global.heriter(ElementAnimationObjet,ElementAnimationBase);ElementAnimationObjet.prototype.valObjet=function(){Debug.assert(this._objet);return this._objet};function ElementAnimationSon(a,b,c,d){if(Global.estDefinition())return;Debug.assert(typeof a=='number');Debug.assert(typeof b=='number');Debug.assert(typeof c=='string'&&c);Debug.assert(typeof d=='string'&&d);ElementAnimationBase.call(this,a,b);File.call(this,c,d)};Global.heriter(ElementAnimationSon,ElementAnimationBase,File);function ElementAnimationCamera(a,b,c,d,f,g){if(Global.estDefinition())return;Debug.assert(typeof a=='number');Debug.assert(typeof b=='number');Debug.assert(typeof c=='number');Debug.assert(typeof d=='number');Debug.assert(typeof f=='number');Debug.assert(typeof g=='number');ElementAnimationBase.call(this,a,b);this._x_initial=c;this._y_initial=d;this._x_final=f;this._y_final=g};Global.heriter(ElementAnimationCamera,ElementAnimationBase);ElementAnimationCamera.prototype.valXInitial=function(){Debug.assert(typeof this._x_initial=='number');return this._x_initial};ElementAnimationCamera.prototype.valYInitial=function(){Debug.assert(typeof this._y_initial=='number');return this._y_initial};ElementAnimationCamera.prototype.valXFinal=function(){Debug.assert(typeof this._x_final=='number');return this._x_final};ElementAnimationCamera.prototype.valYFinal=function(){Debug.assert(typeof this._y_final=='number');return this._y_final};function ElementAnimationFlash(a,b,c,d){if(Global.estDefinition())return;Debug.assert(typeof a=='number');Debug.assert(typeof b=='number');Debug.assert(typeof c=='string'&&c);Debug.assert(typeof d=='string'&&d);ElementAnimationBase.call(this,a,b);File.call(this,c,d)};Global.heriter(ElementAnimationFlash,ElementAnimationBase,File);function ElementAnimationDisparition(a,b,c){if(Global.estDefinition())return;Debug.assert(typeof a=='number');Debug.assert(typeof b=='number');Debug.assert(c);ElementAnimationObjet.call(this,a,b,c)};Global.heriter(ElementAnimationDisparition,ElementAnimationObjet);function ElementAnimationPropriete(a,b,c,d,f,g){if(Global.estDefinition())return;Debug.assert(typeof a=='number');Debug.assert(typeof b=='number');Debug.assert(typeof c=='number');Debug.assert(typeof d=='number');Debug.assert(typeof f=='string'&&f);Debug.assert(g);ElementAnimationObjet.call(this,a,b,g);this._valeur_initiale=c;this._valeur_finale=d;this._propriete=f};Global.heriter(ElementAnimationPropriete,ElementAnimationObjet);ElementAnimationPropriete.prototype.valValeurInitiale=function(){Debug.assert(typeof this._valeur_initiale=='number');return this._valeur_initiale};ElementAnimationPropriete.prototype.valValeurFinale=function(){Debug.assert(typeof this._valeur_finale=='number');return this._valeur_finale};ElementAnimationPropriete.prototype.valPropriete=function(){Debug.assert(typeof this._propriete=='string'&&this._propriete);return this._propriete};function ElementAnimationDeplacement(a,b,c,d,f,g,h){if(Global.estDefinition())return;Debug.assert(typeof a=='number');Debug.assert(typeof b=='number');Debug.assert(typeof c=='number');Debug.assert(typeof d=='number');Debug.assert(typeof f=='number');Debug.assert(typeof g=='number');Debug.assert(h);ElementAnimationObjet.call(this,a,b,h);this._x_initial=c;this._y_initial=d;this._x_final=f;this._y_final=g};Global.heriter(ElementAnimationDeplacement,ElementAnimationObjet);ElementAnimationDeplacement.prototype.valXInitial=function(){Debug.assert(typeof this._x_initial=='number');return this._x_initial};ElementAnimationDeplacement.prototype.valYInitial=function(){Debug.assert(typeof this._y_initial=='number');return this._y_initial};ElementAnimationDeplacement.prototype.valXFinal=function(){Debug.assert(typeof this._x_final=='number');return this._x_final};ElementAnimationDeplacement.prototype.valYFinal=function(){Debug.assert(typeof this._y_final=='number');return this._y_final};function ElementAnimationApparition(a,b,c){if(Global.estDefinition())return;Debug.assert(typeof a=='number');Debug.assert(typeof b=='number');Debug.assert(c);ElementAnimationObjet.call(this,a,b,c)};Global.heriter(ElementAnimationApparition,ElementAnimationObjet);function ElementAnimationStyle(a,b,c,d,f,g,h){if(Global.estDefinition())return;Debug.assert(typeof a=='number');Debug.assert(typeof b=='number');Debug.assert(typeof c=='number');Debug.assert(typeof d=='number');Debug.assert(typeof f=='string'&&f);Debug.assert(typeof g=='string'&&g);Debug.assert(h);ElementAnimationObjet.call(this,a,b,h);this._valeur_initiale=c;this._valeur_finale=d;this._style=f;this._unite=g};Global.heriter(ElementAnimationStyle,ElementAnimationObjet);ElementAnimationStyle.prototype.valValeurInitiale=function(){Debug.assert(typeof this._valeur_initiale=='number');return this._valeur_initiale};ElementAnimationStyle.prototype.valValeurFinale=function(){Debug.assert(typeof this._valeur_finale=='number');return this._valeur_finale};ElementAnimationStyle.prototype.valStyle=function(){Debug.assert(typeof this._style=='string'&&this._style);return this._style};ElementAnimationStyle.prototype.valUnite=function(){Debug.assert(typeof this._unite=='string'&&this._unite);return this._unite};function ElementAnimationImage(a,b,c,d){if(Global.estDefinition())return;Debug.assert(typeof a=='number');Debug.assert(typeof b=='number');Debug.assert(typeof c=='string'&&c);Debug.assert(d);ElementAnimationObjet.call(this,a,b,d);this._nom_animation_image=c};Global.heriter(ElementAnimationImage,ElementAnimationObjet);ElementAnimationImage.prototype.valNomAnimationImage=function(){Debug.assert(typeof this._nom_animation_image=='string'&&this._nom_animation_image);return this._nom_animation_image};function ElementAnimationChemin(a,b,c){if(Global.estDefinition())return;Debug.assert(typeof a=='number');Debug.assert(typeof b=='number');Debug.assert(c);ElementAnimationObjet.call(this,a,b,c)};Global.heriter(ElementAnimationChemin,ElementAnimationObjet);function ActionBase(a,b,c,d,f){if(Global.estDefinition())return;Debug.assert(a==null||a);Debug.assert(b instanceof Array);Debug.assert(c instanceof Array);Debug.assert(d==null||d);Debug.assert(f instanceof Array);Observable.call(this);this._animation=a;this._liste_consommations=b;this._liste_productions=c;this._changement_scene=d;this._liste_inhibiteurs=f};Global.heriter(ActionBase,Observable);ActionBase.prototype.valAnimation=function(){Debug.assert(this._animation==null||this._animation);return this._animation};ActionBase.prototype.iterateurConsommations=function(){Debug.assert(this._liste_consommations instanceof Array);return this._liste_consommations.iterateur()};ActionBase.prototype.iterateurProductions=function(){Debug.assert(this._liste_productions instanceof Array);return this._liste_productions.iterateur()};ActionBase.prototype.valChangementScene=function(){Debug.assert(this._changement_scene==null||this._changement_scene);return this._changement_scene};ActionBase.prototype.iterateurInhibiteurs=function(){Debug.assert(this._liste_inhibiteurs instanceof Array);return this._liste_inhibiteurs.iterateur()};function Production(a){if(Global.estDefinition())return;Debug.assert(a);Observable.call(this);this._jeton=a};Global.heriter(Production,Observable);Production.prototype.valJeton=function(){Debug.assert(this._jeton);return this._jeton};function Consommation(a){if(Global.estDefinition())return;Debug.assert(a);Observable.call(this);this._jeton=a};Global.heriter(Consommation,Observable);Consommation.prototype.valJeton=function(){Debug.assert(this._jeton);return this._jeton};function Action(a,b,c,d,f,g){if(Global.estDefinition())return;Debug.assert(typeof a=='string'&&a);Debug.assert(b==null||b);Debug.assert(c instanceof Array);Debug.assert(d instanceof Array);Debug.assert(f==null||f);Debug.assert(g instanceof Array);ActionBase.call(this,b,c,d,f,g);this._nom=a};Global.heriter(Action,ActionBase);Action.prototype.valNom=function(){Debug.assert(typeof this._nom=='string'&&this._nom);return this._nom};function GroupeMessages(a,b,c,d,f,g){if(Global.estDefinition())return;Debug.assert(a==null||a);Debug.assert(b instanceof Array);Debug.assert(c instanceof Array);Debug.assert(d==null||d);Debug.assert(f instanceof Array);Debug.assert(g instanceof Array);ActionBase.call(this,a,b,c,d,f);this._liste_messages=g};Global.heriter(GroupeMessages,ActionBase);GroupeMessages.prototype.iterateurMessages=function(){Debug.assert(this._liste_messages instanceof Array);return this._liste_messages.iterateur()};function MessageBase(a,b,c,d,f){if(Global.estDefinition())return;Debug.assert(a==null||a);Debug.assert(b instanceof Array);Debug.assert(c instanceof Array);Debug.assert(d==null||d);Debug.assert(f instanceof Array);ActionBase.call(this,a,b,c,d,f)};Global.heriter(MessageBase,ActionBase);function Dialogue(a,b,c,d,f,g,h){if(Global.estDefinition())return;Debug.assert(a==null||a);Debug.assert(b instanceof Array);Debug.assert(c instanceof Array);Debug.assert(d==null||d);Debug.assert(f instanceof Array);Debug.assert(typeof g=='string'&&g);Debug.assert(h instanceof Array);GroupeMessages.call(this,a,b,c,d,f,h);this._nom=g};Global.heriter(Dialogue,GroupeMessages);Dialogue.prototype.valNom=function(){Debug.assert(typeof this._nom=='string'&&this._nom);return this._nom};function Message(a,b,c,d,f,g,h){if(Global.estDefinition())return;Debug.assert(a==null||a);Debug.assert(b instanceof Array);Debug.assert(c instanceof Array);Debug.assert(d==null||d);Debug.assert(f instanceof Array);Debug.assert(typeof g=='string'&&g);Debug.assert(h);MessageBase.call(this,a,b,c,d,f);this._corps=g;this._auteur=h};Global.heriter(Message,MessageBase);Message.prototype.valCorps=function(){Debug.assert(typeof this._corps=='string'&&this._corps);return this._corps};Message.prototype.valAuteur=function(){Debug.assert(this._auteur);return this._auteur};function GroupeQuestions(a,b,c,d,f,g){if(Global.estDefinition())return;Debug.assert(a==null||a);Debug.assert(b instanceof Array);Debug.assert(c instanceof Array);Debug.assert(d==null||d);Debug.assert(f instanceof Array);Debug.assert(g instanceof Array);MessageBase.call(this,a,b,c,d,f);this._liste_questions=g};Global.heriter(GroupeQuestions,MessageBase);GroupeQuestions.prototype.iterateurQuestions=function(){Debug.assert(this._liste_questions instanceof Array);return this._liste_questions.iterateur()};function Question(a,b,c,d,f,g,h,i){if(Global.estDefinition())return;Debug.assert(a==null||a);Debug.assert(b instanceof Array);Debug.assert(c instanceof Array);Debug.assert(d==null||d);Debug.assert(f instanceof Array);Debug.assert(typeof g=='string'&&g);Debug.assert(h instanceof Array);Debug.assert(i);GroupeMessages.call(this,a,b,c,d,f,h);this._corps=g;this._auteur=i};Global.heriter(Question,GroupeMessages);Question.prototype.valCorps=function(){Debug.assert(typeof this._corps=='string'&&this._corps);return this._corps};Question.prototype.valAuteur=function(){Debug.assert(this._auteur);return this._auteur};function Personnage(a,b,c,d,f,g){if(Global.estDefinition())return;Debug.assert(typeof a=='string'&&a);Debug.assert(b instanceof Array);Debug.assert(c instanceof Array);Debug.assert(d instanceof Array);Debug.assert(f instanceof Array);Debug.assert(g instanceof Array);Objet_.call(this,a,b,c,d,f,g)};Global.heriter(Personnage,Objet_);function GroupeQuestionsRepete(a,b,c,d,f,g){if(Global.estDefinition())return;Debug.assert(a==null||a);Debug.assert(b instanceof Array);Debug.assert(c instanceof Array);Debug.assert(d==null||d);Debug.assert(f instanceof Array);Debug.assert(g instanceof Array);GroupeQuestions.call(this,a,b,c,d,f,g)};Global.heriter(GroupeQuestionsRepete,GroupeQuestions);function QuestionRetour(a,b,c,d,f,g,h,i){if(Global.estDefinition())return;Debug.assert(a==null||a);Debug.assert(b instanceof Array);Debug.assert(c instanceof Array);Debug.assert(d==null||d);Debug.assert(f instanceof Array);Debug.assert(typeof g=='string'&&g);Debug.assert(h instanceof Array);Debug.assert(i);Question.call(this,a,b,c,d,f,g,h,i)};Global.heriter(QuestionRetour,Question);function PersonnageJoueur(a,b,c,d,f,g){if(Global.estDefinition())return;Debug.assert(typeof a=='string'&&a);Debug.assert(b instanceof Array);Debug.assert(c instanceof Array);Debug.assert(d instanceof Array);Debug.assert(f instanceof Array);Debug.assert(g instanceof Array);Personnage.call(this,a,b,c,d,f,g)};Global.heriter(PersonnageJoueur,Personnage);function Scene(a,b,c){if(Global.estDefinition())return;Debug.assert(typeof a=='string'&&a);Debug.assert(b instanceof Array);Debug.assert(c==null||c);Observable.call(this);this._nom=a;this._liste_jetons=b;this._zone_deplacement=c};Global.heriter(Scene,Observable);Scene.prototype.valNom=function(){Debug.assert(typeof this._nom=='string'&&this._nom);return this._nom};Scene.prototype.iterateurJetons=function(){Debug.assert(this._liste_jetons instanceof Array);return this._liste_jetons.iterateur()};Scene.prototype.valZoneDeplacement=function(){Debug.assert(this._zone_deplacement==null||this._zone_deplacement);return this._zone_deplacement};function Chapitre(a,b){if(Global.estDefinition())return;Debug.assert(typeof a=='string'&&a);Debug.assert(b instanceof Array);Observable.call(this);this._nom=a;this._liste_scenes=b};Global.heriter(Chapitre,Observable);Chapitre.prototype.valNom=function(){Debug.assert(typeof this._nom=='string'&&this._nom);return this._nom};Chapitre.prototype.iterateurScenes=function(){Debug.assert(this._liste_scenes instanceof Array);return this._liste_scenes.iterateur()};function Scenario(a){if(Global.estDefinition())return;Debug.assert(a instanceof Array);Observable.call(this);this._liste_chapitres=a};Global.heriter(Scenario,Observable);Scenario.prototype.iterateurChapitres=function(){Debug.assert(this._liste_chapitres instanceof Array);return this._liste_chapitres.iterateur()};function ChangementSceneBase(a,b,c,d,f){if(Global.estDefinition())return;Debug.assert(a==null||typeof a=='number');Debug.assert(b==null||typeof b=='number');Debug.assert(c==null||typeof c=='number');Debug.assert(d==null||typeof d=='number');Debug.assert(f);Observable.call(this);this._x=a;this._y=b;this._z=c;this._zoom=d;this._scene=f};Global.heriter(ChangementSceneBase,Observable);ChangementSceneBase.prototype.valX=function(){Debug.assert(this._x==null||typeof this._x=='number');return this._x};ChangementSceneBase.prototype.valY=function(){Debug.assert(this._y==null||typeof this._y=='number');return this._y};ChangementSceneBase.prototype.valZ=function(){Debug.assert(this._z==null||typeof this._z=='number');return this._z};ChangementSceneBase.prototype.valZoom=function(){Debug.assert(this._zoom==null||typeof this._zoom=='number');return this._zoom};ChangementSceneBase.prototype.valScene=function(){Debug.assert(this._scene);return this._scene};function ChangementScene(a,b,c,d,f,g){if(Global.estDefinition())return;Debug.assert(a==null||typeof a=='number');Debug.assert(b==null||typeof b=='number');Debug.assert(c==null||typeof c=='number');Debug.assert(d==null||typeof d=='number');Debug.assert(f);Debug.assert(g==null||g);ChangementSceneBase.call(this,a,b,c,d,f);this._action_declanchee=g};Global.heriter(ChangementScene,ChangementSceneBase);ChangementScene.prototype.valActionDeclanchee=function(){Debug.assert(this._action_declanchee==null||this._action_declanchee);return this._action_declanchee};function ChangementChapitre(a,b,c,d,f,g,h){if(Global.estDefinition())return;Debug.assert(a==null||typeof a=='number');Debug.assert(b==null||typeof b=='number');Debug.assert(c==null||typeof c=='number');Debug.assert(d==null||typeof d=='number');Debug.assert(typeof f=='string'&&f);Debug.assert(g);Debug.assert(h);ChangementSceneBase.call(this,a,b,c,d,h);this._redirection_acces=f;this._chapitre=g};Global.heriter(ChangementChapitre,ChangementSceneBase);ChangementChapitre.prototype.valRedirectionAcces=function(){Debug.assert(typeof this._redirection_acces=='string'&&this._redirection_acces);return this._redirection_acces};ChangementChapitre.prototype.valChapitre=function(){Debug.assert(this._chapitre);return this._chapitre};function ZoneDeplacement(a){if(Global.estDefinition())return;Debug.assert(a instanceof Array);Observable.call(this);this._liste_polygonnes=a};Global.heriter(ZoneDeplacement,Observable);ZoneDeplacement.prototype.iterateurPolygonnes=function(){Debug.assert(this._liste_polygonnes instanceof Array);return this._liste_polygonnes.iterateur()};function PolygonneZoneDeplacement(a,b){if(Global.estDefinition())return;Debug.assert(typeof a=='number');Debug.assert(b instanceof Array);Observable.call(this);this._z_index=a;this._liste_sommets=b};Global.heriter(PolygonneZoneDeplacement,Observable);PolygonneZoneDeplacement.prototype.valZIndex=function(){Debug.assert(typeof this._z_index=='number');return this._z_index};PolygonneZoneDeplacement.prototype.iterateurSommets=function(){Debug.assert(this._liste_sommets instanceof Array);return this._liste_sommets.iterateur()};function SommetZoneDeplacement(a,b,c){if(Global.estDefinition())return;Debug.assert(typeof a=='number');Debug.assert(typeof b=='number');Debug.assert(typeof c=='number');Observable.call(this);this._x=a;this._y=b;this._zoom=c};Global.heriter(SommetZoneDeplacement,Observable);SommetZoneDeplacement.prototype.valX=function(){Debug.assert(typeof this._x=='number');return this._x};SommetZoneDeplacement.prototype.valY=function(){Debug.assert(typeof this._y=='number');return this._y};SommetZoneDeplacement.prototype.valZoom=function(){Debug.assert(typeof this._zoom=='number');return this._zoom};Animation.prototype.duree=function(){function d(a,b){var c=(b.valDuree()+b.valDebut());return(c>a?c:a)}return this.iterateurElementsAnimation().reduire(d,0)};ElementAnimationDeplacement.prototype.valPositionInitiale=function(){return new Position(this.valXInitial(),this.valYInitial())};ElementAnimationDeplacement.prototype.valPositionFinale=function(){return new Position(this.valXFinal(),this.valYFinal())};ElementAnimationCamera.prototype.valPositionInitiale=function(){return new Position(this.valXInitial(),this.valYInitial())};ElementAnimationCamera.prototype.valPositionFinale=function(){return new Position(this.valXFinal(),this.valYFinal())};ChangementSceneBase.prototype.aDestination=function(){Debug.assert((this._x==null&&this._y==null&&this._z==null&&this._zoom==null)||(typeof this._x=='number'&&typeof this._y=='number'&&typeof this._z=='number'&&typeof this._zoom=='number'));return this._x!=null};ChangementSceneBase.prototype.valX=undefined;ChangementSceneBase.prototype.valY=undefined;ChangementSceneBase.prototype.valPosition=function(){Debug.assert(typeof this._x=='number'&&typeof this._y=='number'&&typeof this._z=='number'&&typeof this._zoom=='number');return new Position(this._x,this._y)};ChangementSceneBase.prototype.valZ=function(){Debug.assert(typeof this._x=='number'&&typeof this._y=='number'&&typeof this._z=='number'&&typeof this._zoom=='number');return this._z};ChangementSceneBase.prototype.valZoom=function(){Debug.assert(typeof this._x=='number'&&typeof this._y=='number'&&typeof this._z=='number'&&typeof this._zoom=='number');return this._zoom};ActionBase.prototype.iterateurConsommationsExclusives=function(){var c={};var d=this.iterateurProductions();var f;while(f=d.suivant()){var g=f.valJeton()._valUid();Debug.assert(typeof c[g]=='undefined');c[g]=true}return new IterateurFiltrage(this.iterateurConsommations(),function(a){var b=a.valJeton()._valUid();return!c[b]})};ActionBase.prototype.iterateurProductionsExclusives=function(){var c={};var d=this.iterateurConsommations();var f;while(f=d.suivant()){var g=f.valJeton()._valUid();Debug.assert(typeof c[g]=='undefined');c[g]=true}return new IterateurFiltrage(this.iterateurProductions(),function(a){var b=a.valJeton()._valUid();return!c[b]})};ActionBase.prototype.estRealisable=function(b){Debug.assert(b instanceof Inventaire);function c(a){return!b.contient(a.valJeton())}function d(a){return b.contient(a.valJeton())}var f=this.iterateurInhibiteurs();var g=this.iterateurConsommations();return(f.tousVerifient(c)&&g.tousVerifient(d))};ActionBase.prototype.estRealisableAvec=function(b,c){Debug.assert(c instanceof Inventaire);if(!this.estRealisable(c))return false;var d=this.iterateurConsommations();function f(a){return a.valJeton()==b};if(b&&d.trouver(f)==null)return false;var d=this.iterateurConsommations();var g;while(g=d.suivant()){var h=g.valJeton();if((!b&&!Global.instanceDe(h,Jeton)&&!Global.instanceDe(h,EtatObjet))||(b&&!Global.instanceDe(h,Jeton)&&!Global.instanceDe(h,EtatObjet)&&h!=b))return false}return true};ActionBase.prototype._consommer=function(a){Debug.assert(a instanceof Inventaire);var b=this.iterateurConsommationsExclusives();var c;while(c=b.suivant())a.supprimer(c.valJeton())};ActionBase.prototype._produire=function(a){Debug.assert(a instanceof Inventaire);var b=this.iterateurProductionsExclusives();var c;while(c=b.suivant())a.ajouter(c.valJeton())};ActionBase.prototype._changerScene=function(a){Debug.assert(a instanceof Partie);var b=this.valChangementScene();if(b instanceof ChangementChapitre||b instanceof Serialisation.NonSerialisable){if(!jeu.estSynchronise())window.location.reload()}else if(b){a.modifierChangementScene(b);var c=b.valActionDeclanchee();if(c){new VueAction(c).realiser(jeu)}}};ActionBase.prototype._modifieEtat=function(){return(this.iterateurConsommationsExclusives().suivant()!=null||this.iterateurProductionsExclusives().suivant()!=null||this.valChangementScene()!=null)};ActionBase.prototype._synchroniserServeur=function(a){Debug.assert(this._modifieEtat());Debug.assert(a instanceof Jeu);Debug.erreurNonImplemente()};ActionBase.prototype.realiser=function(a){Debug.assert(a instanceof Jeu);var b=a.valPartie();var c=b.valInventaire();Debug.assert(this.estRealisable(c));if(this._modifieEtat()){if(a.estSynchronise())this._synchroniserServeur(a);this._consommer(c);this._produire(c);this._changerScene(b)}};Action.prototype._synchroniserServeur=function(a){Debug.assert(this._modifieEtat());Debug.assert(a instanceof Jeu);var b=a.valDialogueCourant();Debug.assert(!b.estDefini());Debug.assert(!a.doitSynchroniserServeur());a.ajouterActionASynchroniser(this);a.synchroniserServeur()};MessageBase.prototype._changerScene=function(a){Debug.assert(a instanceof Partie);window.setTimeout(Action.prototype._changerScene.associerA(this,a),10)};GroupeMessages.prototype._changerScene=MessageBase.prototype._changerScene;MessageBase.prototype._synchroniserServeur=function(a){Debug.assert(this._modifieEtat());Debug.assert(a instanceof Jeu);var b=a.valDialogueCourant();Debug.assert(this instanceof Dialogue||b.estDefini());a.ajouterActionASynchroniser(this)};GroupeMessages.prototype._synchroniserServeur=MessageBase.prototype._synchroniserServeur;Question.prototype.message=function(){Debug.assert(this._liste_consommations instanceof Array);Debug.assert(this._liste_productions instanceof Array);Debug.assert(this._liste_inhibiteurs instanceof Array);Debug.assert(typeof this._valUid=='function');var a=new Message(this.valAnimation(),this._liste_consommations,this._liste_productions,this.valChangementScene(),this._liste_inhibiteurs,this.valCorps(),this.valAuteur());a._valUid=this._valUid;return a};GroupeMessages.prototype.iterateurMessagesRealisables=function(b){Debug.assert(b instanceof Inventaire);function c(a){return a.estRealisable(b)}return new IterateurFiltrage(this.iterateurMessages(),c)};Dialogue.prototype.realiser=function(a){Debug.assert(a instanceof Jeu);ActionBase.prototype.realiser.call(this,a);var b=a.valDialogueCourant();Debug.assert(b.estTermine());b.demarrerDialogue(this,a)};GroupeQuestions.prototype.iterateurQuestionsRealisables=function(b){Debug.assert(b instanceof Inventaire);function c(a){return a.estRealisable(b)}return new IterateurFiltrage(this.iterateurQuestions(),c)};function DialogueCourant(a){if(Global.estDefinition())return;Debug.assert(a instanceof Jeu);ObservableCourantBase.call(this);this._jeu=a;this._pile_iterateurs_groupes_messages=new Array()};Global.heriter(DialogueCourant,ObservableCourantBase);DialogueCourant.prototype._verifieContrainte=function(a){Debug.assert(a);return(a instanceof Message||a instanceof GroupeQuestions)};DialogueCourant.prototype._valJeu=function(){Debug.assert(this._jeu instanceof Jeu);return this._jeu};DialogueCourant.prototype._supprimer=function(){ObservableCourant.prototype._supprimer.call(this);var a=this._valJeu();if(a.estSynchronise()&&a.doitSynchroniserServeur())a.synchroniserServeur()};DialogueCourant.prototype.estTermine=function(){Debug.assert(this._pile_iterateurs_groupes_messages instanceof Array);return this._pile_iterateurs_groupes_messages.length==0};DialogueCourant.prototype._dernierIterateurGroupeMessages=function(){Debug.assert(this._pile_iterateurs_groupes_messages instanceof Array);Debug.assert(this._pile_iterateurs_groupes_messages.length>0);var a=this._pile_iterateurs_groupes_messages.length;return this._pile_iterateurs_groupes_messages[a-1]};DialogueCourant.prototype._empilerGroupeMessages=function(a){Debug.assert(this._pile_iterateurs_groupes_messages instanceof Array);Debug.assert(a instanceof GroupeMessages);var b=a.iterateurMessagesRealisables(this._valJeu().valPartie().valInventaire());this._pile_iterateurs_groupes_messages.push(b)};DialogueCourant.prototype._empilerGroupeQuestionsRepete=function(a){Debug.assert(this._pile_iterateurs_groupes_messages instanceof Array);Debug.assert(a instanceof GroupeQuestionsRepete);var b=new IterateurPerpetuel(a);this._pile_iterateurs_groupes_messages.push(b)};DialogueCourant.prototype._depilerGroupeMessages=function(){Debug.assert(this._pile_iterateurs_groupes_messages instanceof Array);this._pile_iterateurs_groupes_messages.pop()};DialogueCourant.prototype.demarrerDialogue=function(a,b){Debug.assert(a instanceof Dialogue);Debug.assert(b instanceof Jeu);this._empilerGroupeMessages(a);this.passerMessageSuivant(b)};DialogueCourant.prototype._embrancherQuestionFin=function(a,b){Debug.assert(this.estDefini()&&this.val()instanceof GroupeQuestions);Debug.assert(a instanceof Question);Debug.assert(b instanceof Jeu);this._empilerGroupeMessages(a);this._modifier(a.message())};DialogueCourant.prototype.embrancherQuestion=function(a,b){Debug.assert(this.estDefini()&&this.val()instanceof GroupeQuestions);Debug.assert(a instanceof Question);Debug.assert(b instanceof Jeu);new VueAction(this.val()).realiser(b,this._embrancherQuestionFin.associerA(this,a,b))};DialogueCourant.prototype.embrancherQuestionRetour=function(a,b){Debug.assert(this.estDefini()&&this.val()instanceof GroupeQuestionsRepete);Debug.assert(a instanceof QuestionRetour);Debug.assert(b instanceof Jeu);this._depilerGroupeMessages();this.embrancherQuestion(a,b)};DialogueCourant.prototype._passerMessageSuivantFin=function(a){Debug.assert(a instanceof Jeu);var b=this._dernierIterateurGroupeMessages();var c=b.suivant();while(!c&&!this.estTermine()){this._depilerGroupeMessages();if(!c&&!this.estTermine()){b=this._dernierIterateurGroupeMessages();c=b.suivant()}}if(c instanceof GroupeQuestionsRepete){b=this._dernierIterateurGroupeMessages();if(!b instanceof IterateurPerpetuel||b.suivant()!=c)this._empilerGroupeQuestionsRepete(c)}if(c)this._modifier(c);else this._supprimer()};DialogueCourant.prototype.passerMessageSuivant=function(a){Debug.assert(a instanceof Jeu);if(this.estDefini()){new VueAction(this.val()).realiser(a,this._passerMessageSuivantFin.associerA(this,a))}else{this._passerMessageSuivantFin(a)}};ImageScene.prototype.aContours=function(){Debug.assert(this._contours==null||this._contours instanceof Array);return this._contours!=null};ImageInventaire.prototype.aContours=ImageScene.prototype.aContours;ImageDirectionnelleScene.prototype.aContours=ImageScene.prototype.aContours;ImageScene.prototype.valUrl=function(){return'/fichier/'+this._valUid()};ImageInventaire.prototype.valUrl=ImageScene.prototype.valUrl;ImageDirectionnelleScene.prototype.valUrl=ImageScene.prototype.valUrl;ElementAnimationSon.prototype.valUrl=ImageScene.prototype.valUrl;ElementAnimationFlash.prototype.valUrl=ImageScene.prototype.valUrl;ImageScene.prototype.valUrlMiniature=function(a){Debug.assert(typeof a=='number'&&(a==1.0||a==0.5));return this.valUrl()+'/miniature_'+(1/a)};ImageInventaire.prototype.valUrlMiniature=ImageScene.prototype.valUrlMiniature;ImageDirectionnelleScene.prototype.valUrlMiniature=ImageScene.prototype.valUrlMiniature;ImageScene.prototype.valTaille=function(){Debug.assert(typeof this._largeur=='number'&&this._largeur>0);Debug.assert(typeof this._hauteur=='number'&&this._hauteur>0);return new Taille(this._largeur,this._hauteur)};ImageInventaire.prototype.valTaile=ImageScene.prototype.valTaille;ImageDirectionnelleScene.prototype.valTaille=ImageScene.prototype.valTaille;ImageSceneBase.prototype.estAffichable=function(b){Debug.assert(b instanceof Inventaire);function c(a){return!b.contient(a.valJeton())}function d(a){return b.contient(a.valJeton())}var f=this.iterateurInhibiteurs();var g=this.iterateurPrerequis();return(f.tousVerifient(c)&&g.tousVerifient(d))};GroupeImagesDirectionnellesScene.prototype.imageDirection=function(a){Debug.assert(this._liste_images instanceof Array);Debug.assert(typeof a=='number'&&a>=-Math.PI&&a<=Math.PI);var b=this._liste_images;var c=Math.round((a+2*Math.PI)*b.length/(2*Math.PI))%b.length;Debug.assert(c>=0&&c<b.length);return b[c]};PositionScene.prototype.position=function(){return new Position(this.valX(),this.valY())};PositionScene.prototype.estAffichable=ImageSceneBase.prototype.estAffichable;Objet_.prototype._postInitialisation=function(){this._position=null;this._z=null;this._zoom=1.0;this._nom_animation_image=null};Objet_.prototype.aInteractions=function(){return this.iterateurActions().suivant()!=null};Objet_.prototype.actionModifieePar=function(b){Debug.assert(b instanceof JetonBase);function c(a){return a.valJeton()==b}var d=this.iterateurActions();var f;while(f=d.suivant()){if(f.iterateurInhibiteurs().unVerifie(c)||f.iterateurConsommations().unVerifie(c))return true}return false};Objet_.prototype.imageSceneModifieePar=function(b){Debug.assert(b instanceof JetonBase);function c(a){return a.valJeton()==b}var d=this.iterateurImagesScene();var f;while(f=d.suivant()){if(f.iterateurInhibiteurs().unVerifie(c)||f.iterateurPrerequis().unVerifie(c))return true}return false};Objet_.prototype.positionSceneModifieePar=function(b){Debug.assert(b instanceof JetonBase);function c(a){return a.valJeton()==b}var d=this.iterateurPositions();var f;while(f=d.suivant()){if(f.iterateurInhibiteurs().unVerifie(c)||f.iterateurPrerequis().unVerifie(c))return true}return false};Objet_.prototype.aPosition=function(){return this._position!=null};Objet_.prototype.valPosition=function(){Debug.assert(this._position instanceof Position);return this._position};Objet_.prototype.valZ=function(){Debug.assert(typeof this._z=='number');return this._z};Objet_.prototype.modifierPosition=function(a){Debug.assert(a instanceof Position);this._position=new Position(a.valX(),a.valY());this._notifierSignal('deplacement')};Objet_.prototype.valZoom=function(){Debug.assert(typeof this._zoom=='undefined'||(typeof this._zoom=='number'&&this._zoom>0.0));return this._zoom||1.0};Objet_.prototype.modifierZoom=function(a){Debug.assert(typeof this._zoom=='undefined'||(typeof this._zoom=='number'&&this._zoom>0.0));Debug.assert(typeof a=='number'&&a>0);this._zoom=a;this._notifierSignal('zoom')};Objet_.prototype.positionSceneCourante=function(a){Debug.assert(a instanceof Inventaire);var b=null;var c=this.iterateurPositions();var d;while(d=c.suivant()){if(d.estAffichable(a)){Debug.assert(!b,('2 positions affichables en meme temps '+'sur l\'objet '+this.valNom()));b=d}}return b};Objet_.prototype.synchroniserPositionSceneCourante=function(a){Debug.assert(a instanceof Inventaire);var b=this.positionSceneCourante(a);if(b){this._position=b.position();this._z=b.valZ()}else{this._position=null;this._z=null}};Objet_.prototype.valNomAnimationImage=function(){Debug.assert(this._nom_animation_image==null||(typeof this._nom_animation_image=='string'&&this._nom_animation_image));return this._nom_animation_image};Objet_.prototype.modifierNomAnimationImage=function(a){Debug.assert(a==null||(typeof a=='string'&&a));this._nom_animation_image=a;this._notifierSignal('image')};Objet_.prototype.imageSceneCourante=function(a){Debug.assert(a instanceof Inventaire);var b=null;var c=this.valNomAnimationImage();var d=this.iterateurImagesScene();var f;while(f=d.suivant()){if(f.valNomAnimationImage()==c&&f.estAffichable(a)){Debug.assert(!b,('2 images affichables en meme temps '+'sur l\'objet '+this.valNom()));b=f}}return b};Objet_.prototype.tailleSceneCourante=function(a){Debug.assert(a instanceof Inventaire);var b=this.imageSceneCourante(a);return b.valTaille().multiplierPar(this.valZoom())};Objet_.prototype.estInteractif=function(inventaire){Debug.assert(inventaire instanceof Inventaire);function filtre(a){return a.estRealisable(inventaire)}return this.iterateurActions().trouver(filtre)!=null};Objet_.prototype.actionRealisableAvec=function(a,b){Debug.assert(b instanceof Inventaire);var c=null;var d=this.iterateurActions();var f;while(f=d.suivant()){if(f.estRealisableAvec(a,b)&&!/^\[.*\]$/.test(this.valNom())){Debug.assert(!c,(c?(f.valNom()+' ('+f._valUid()+') realisable en meme temps que '+c.valNom()+' ('+c._valUid()+') sur l\'objet '+this.valNom()+' ('+this._valUid()+') '):null));c=f}}return c};Personnage.prototype._postInitialisation=function(){Objet_.prototype._postInitialisation.call(this);this._direction=0};Personnage.prototype.aDirection=function(){return this._direction!=null};Personnage.prototype.valDirection=function(){Debug.assert(typeof this._direction=='number'&&this._direction>=-Math.PI&&this._direction<=Math.PI);return this._direction};Personnage.prototype._modifierDirection=function(a,b){Debug.assert(typeof this._direction=='number'&&this._direction>=-Math.PI&&this._direction<=Math.PI);Debug.assert(a instanceof Position);Debug.assert(b instanceof Position);var c=b.valX()-a.valX();var d=b.valY()-a.valY();if(c==0&&d==0)return;this._direction=Math.atan2(d,c);this._notifierSignal('image')};Personnage.prototype.modifierPosition=function(a){Debug.assert(a instanceof Position);var b=this.valPosition();this._modifierDirection(b,a);Objet_.prototype.modifierPosition.call(this,a)};Personnage.prototype.modifierZ=function(a){Debug.assert(typeof this._z=='number');Debug.assert(typeof a=='number');this._z=a;this._notifierSignal('z')};Personnage.prototype.imageSceneCourante=function(a){var b=Objet_.prototype.imageSceneCourante.call(this,a);if(!b)return null;switch(b.constructor){case ImageScene:return b;case GroupeImagesDirectionnellesScene:var c=this.valDirection();return b.imageDirection(c||0);default:Debug.erreur('Personnage::imageSceneCourante : '+'type d\'image inconnu')}};PersonnageJoueur.prototype.mettreAJourPositionCamera=function(){Debug.assert(window.jeu instanceof Jeu);var a=window.jeu.valCamera();var b=a.valRectangle()._valTaille();var c=this.valPosition().translationDe(new Vecteur(-b.valLargeur()/2,-b.valHauteur()/2));a.modifierRectangle(a.valRectangle().translateA(c))};PersonnageJoueur.prototype.synchroniserPositionSceneCourante=function(a){Debug.assert(a instanceof Inventaire);Debug.assert(window.jeu);var b=window.jeu.valPartie().valChangementScene();var c=b.valScene();var d=null;var f=null;var g=null;if(b.aDestination()){d=b.valPosition();f=b.valZ();g=b.valZoom()}else if(c.aZoneDeplacement()){Debug.assert(this.iterateurPositions().suivant()==null);var h=c.valZoneDeplacement();var i=h.iterateurPolygonnes().suivant();Debug.assert(i);var j=i.iterateurSommets().suivant();Debug.assert(j);d=new Position(j.valX(),j.valY());f=i.valZIndex();g=j.valZoom()}else{position_courante=this.positionSceneCourante(a);d=position_courante.position();f=position_courante.valZ();g=1.0}this._position=d;this._z=f;this._zoom=g;if(d!=null)this.mettreAJourPositionCamera()};PersonnageJoueur.prototype.modifierPosition=function(a){Debug.assert(a instanceof Position);Personnage.prototype.modifierPosition.call(this,a);this.mettreAJourPositionCamera()};function Inventaire(a){if(Global.estDefinition())return;Debug.assert(a instanceof Array);Conteneur.call(this);this._table_hachage_jetons=new DictionnaireChaine();this._FIXME_liste_atente=a};Global.heriter(Inventaire,Conteneur);Inventaire.prototype._FIXME_ajouter_attente=function(){if(this._FIXME_liste_atente){var a=this._FIXME_liste_atente.iterateur();this._FIXME_liste_atente=undefined;var b=this._valTableHachageJetons();var c;while(c=a.suivant())b.ajouter(this._clefDe(c),c)}};Inventaire.prototype._valTableHachageJetons=function(){Debug.assert(this._table_hachage_jetons instanceof DictionnaireChaine);return this._table_hachage_jetons};Inventaire.prototype._clefDe=function(a){Debug.assert(a instanceof JetonBase&&!(a instanceof Personnage));Debug.assert(typeof a._valUid=='function');return a._valUid().toString()};Inventaire.prototype.iterateurJetons=function(){this._FIXME_ajouter_attente();return this._valTableHachageJetons().iterateurValeurs()};Inventaire.prototype.ajouter=function(a){Debug.assert(a instanceof JetonBase&&!(a instanceof Personnage));var b=this._valTableHachageJetons();var c=this._clefDe(a);Debug.assert(!b.contient(c));b.ajouter(c,a);this._notifierAjout(a)};Inventaire.prototype.contient=function(a){Debug.assert(a instanceof JetonBase&&!(a instanceof Personnage));this._FIXME_ajouter_attente();var b=this._valTableHachageJetons();var c=this._clefDe(a);return b.contient(c)};Inventaire.prototype.supprimer=function(a){Debug.assert(a instanceof JetonBase&&!(a instanceof Personnage));var b=this._valTableHachageJetons();var c=this._clefDe(a);Debug.assert(b.contient(c));b.supprimer(c);this._notifierSuppression(a)};Scene.prototype.aZoneDeplacement=function(){return this.valZoneDeplacement()!=null};Scene.prototype.valFond=function(){return new IterateurFiltrage(this.iterateurJetons(),function(a){return(a instanceof Objet_&&a.valNom()=='fond')}).unique()};Scene.prototype.valPersonnageJoueur=function(){return new IterateurFiltrage(this.iterateurJetons(),function(a){return a instanceof PersonnageJoueur}).unique()};Scene.prototype.rectangleCourant=function(a){Debug.assert(a instanceof Inventaire);var b=this.valFond();Debug.assert(b);var c=b.tailleSceneCourante(a);return new Rectangle(0,0,c.valLargeur(),c.valHauteur())};Partie.prototype.modifierChangementScene=function(a){Debug.assert(a instanceof ChangementSceneBase);this._changement_scene=a;this._notifierModification()};function Camera(a,b,c,d,f){if(Global.estDefinition())return;Debug.assert(typeof a=='number');Debug.assert(typeof b=='number');Debug.assert(typeof c=='number'&&c>0);Debug.assert(typeof d=='number'&&d>0);Debug.assert(typeof f=='number'&&f>0);Observable.call(this);this._rectangle=new Rectangle(a,b,c,d);this._zoom=f};Global.heriter(Camera,Observable);Camera.prototype.valRectangle=function(){Debug.assert(this._rectangle instanceof Rectangle);return this._rectangle};Camera.prototype.modifierRectangle=function(a){Debug.assert(a instanceof RectangleBase);this._rectangle=new Rectangle(a.minX(),a.minY(),a.largeur(),a.hauteur());this._notifierSignal('deplacement')};Camera.prototype.valZoom=function(){Debug.assert(typeof this._zoom=='number'&&this._zoom>0);return this._zoom};Camera.prototype.modifierZoom=function(a){Debug.assert(typeof a=='number'&&a>0);this._zoom=a;this._notifierSignal('zoom')};Camera.prototype.positionRelativeDe=function(a){Debug.assert(a instanceof Position);var b=this.valZoom();return new Position(a.valX()*b,a.valY()*b)};Camera.prototype.tailleRelativeDe=function(a){Debug.assert(a instanceof Taille);var b=this.valZoom();return new Taille(a.valLargeur()*b,a.valHauteur()*b)};function CameraPartie(a,b,c,d,f,g){if(Global.estDefinition())return;Debug.assert(typeof a=='number');Debug.assert(typeof b=='number');Debug.assert(typeof c=='number'&&c>0);Debug.assert(typeof d=='number'&&d>0);Debug.assert(typeof f=='number'&&f>0);Debug.assert(g instanceof Partie);Camera.call(this,a,b,c,d,f);this._partie=g};Global.heriter(CameraPartie,Camera);CameraPartie.prototype._valPartie=function(){Debug.assert(this._partie instanceof Partie);return this._partie};CameraPartie.prototype.rectangleCourantScene=function(){var a=this._valPartie();var b=a.valChangementScene().valScene();return b.rectangleCourant(a.valInventaire())};CameraPartie.prototype.modifierRectangle=function(a){Debug.assert(a instanceof RectangleBase);var b=this.valRectangle();var c=a.contraindreA(this.rectangleCourantScene());if(!b.estEgalA(c))Camera.prototype.modifierRectangle.call(this,c)};function Interactions(){if(Global.estDefinition())return;Observable.call(this);this._compteur_blocage=0;this._rappel=null};Global.heriter(Interactions,Observable);Interactions.prototype.sontBloquees=function(){Debug.assert(typeof this._compteur_blocage=='number'&&this._compteur_blocage>=0);return this._compteur_blocage!=0};Interactions.prototype.aRappel=function(){Debug.assert(this._rappel==null||typeof this._rappel=='function');return this._rappel!=null};Interactions.prototype.valRappel=function(){Debug.assert(typeof this._rappel=='function');return this._rappel};Interactions.prototype.bloquer=function(a){Debug.assert(typeof this._compteur_blocage=='number'&&this._compteur_blocage>=0);Debug.assert(this._rappel==null||typeof this._rappel=='function');Debug.assert(a==null||this._rappel==null);this._compteur_blocage++;this._rappel=a;this._notifierModification()};Interactions.prototype.retablir=function(a){Debug.assert(typeof this._compteur_blocage=='number'&&this._compteur_blocage>0);Debug.assert(this._rappel==null||typeof this._rappel=='function');Debug.assert(typeof a=='boolean');this._compteur_blocage--;if(a){Debug.assert(typeof this._rappel=='function');this._rappel=null}this._notifierModification()};function Jeu(a,b){if(Global.estDefinition())return;Debug.assert(a instanceof Partie);Debug.assert(typeof b=='boolean');Observable.call(this);this._partie=a;this._est_synchronise=b;this._interactions=new Interactions();this._dialogue_courant=new DialogueCourant(this);this._camera=new CameraPartie(0,0,1479,800,0.5,a);this._liste_actions_a_synchroniser=new Array()};Global.heriter(Jeu,Observable);Jeu.prototype.valPartie=function(){Debug.assert(this._partie instanceof Partie);return this._partie};Jeu.prototype.estSynchronise=function(){Debug.assert(typeof this._est_synchronise=='boolean');return this._est_synchronise};Jeu.prototype.valInteractions=function(){Debug.assert(this._interactions instanceof Interactions);return this._interactions};Jeu.prototype.valDialogueCourant=function(){Debug.assert(this._dialogue_courant instanceof DialogueCourant);return this._dialogue_courant};Jeu.prototype.valCamera=function(){Debug.assert(this._camera instanceof Camera);return this._camera};Jeu.prototype.doitSynchroniserServeur=function(){Debug.assert(jeu.estSynchronise());Debug.assert(this._liste_actions_a_synchroniser instanceof Array);return this._liste_actions_a_synchroniser!=0};Jeu.prototype.ajouterActionASynchroniser=function(a){Debug.assert(jeu.estSynchronise());Debug.assert(this._liste_actions_a_synchroniser instanceof Array);Debug.assert(a instanceof ActionBase);this._liste_actions_a_synchroniser.push(a)};Jeu.prototype.synchroniserServeur=function(){Debug.assert(this.estSynchronise());Debug.assert(this._liste_actions_a_synchroniser instanceof Array);function c(a){Debug.assert(a instanceof ActionBase);Debug.assert(typeof a._valUid=='function');return a._valUid()};var d=new IterateurApplicatif(this._liste_actions_a_synchroniser.iterateur(),c);var f=this._liste_actions_a_synchroniser.iterateur().unVerifie(function(a){var b=a.valChangementScene();return(b instanceof ChangementChapitre||b instanceof Serialisation.NonSerialisable)});Ajax.appeler(Ajax.construireURL('realiserActions','liste_uids:tokens',d.jointure(' ')),function(a){Debug.assert(a);if(a.responseText!=''){window.alert(_('Vous avez été déconnecté du site : '+'la sauvegarde du jeu '+'n\'a pu s\'effectuer.\n'+'Nous vous conseillons vivement de '+'recharger votre partie et de '+'laisser un rapport de bogue sur '+'le forum si le problème '+'persistait.'))}else if(f){window.location.reload()}},function(){window.alert(_('Une erreur est survenue lors de la '+'synchronisation avec le serveur.\n'+'Nous vous conseillons vivement de '+'recharger votre partie et de laisser '+'un rapport de bogue sur le forum si '+'le problème persistait.'))});this._liste_actions_a_synchroniser=new Array()};SommetZoneDeplacement.prototype.position=function(){return new Position(this.valX(),this.valY())};PolygonneZoneDeplacement.prototype.polygonne=function(){var a=[];var b=this.iterateurSommets();var c;while(c=b.suivant())a.push(c.position());return new Polygonne(a)};PolygonneZoneDeplacement.prototype.plusProcheEpsilonPositionDe=function(a){Debug.assert(a instanceof Position);return this.polygonne().plusProcheEpsilonPositionDe(a)};PolygonneZoneDeplacement.prototype.zoomA=function(a){Debug.assert(a instanceof Position);var b=0;var c=0;var d=this.polygonne();var f=this.iterateurSommets();var g=d.iterateurEpsilonSommets();var h;var i;while(h=f.suivant()){var i=g.suivant();var j=d.contientSegment(new Segment(a,i));var k=(j?h.position().distanceA(a):Number.POSITIVE_INFINITY);var l=(k>1?1/(k*k):1);b+=h.valZoom()*l;c+=l}return b/c};ZoneDeplacement.prototype.contientPosition=function(c){Debug.assert(c instanceof Position);return this.iterateurPolygonnes().unVerifie(function(a){var b=a.polygonne();return b.contientPosition(c)})};ZoneDeplacement.prototype.plusProcheEpsilonPositionDe=function(a){Debug.assert(a instanceof Position);var b=Infinity;var c=null;var d=null;var f=this.iterateurPolygonnes();var g;while(g=f.suivant()){var h=g.plusProcheEpsilonPositionDe(a);var i=h.distanceA(a);if(i<b){b=i;c=h;d=g}}return{'epsilon_position':c,'polygonne_zone_deplacement':d}};ZoneDeplacement.prototype.zoomA=function(a){Debug.assert(a instanceof Position);var b=this.plusProcheEpsilonPositionDe(a);return b['polygonne_zone_deplacement'].zoomA(b['epsilon_position'])};ZoneDeplacement.prototype._animationChemin=function(a,b){Debug.assert(a instanceof PersonnageJoueur);Debug.assert(b instanceof Array);var c=new Array();var d=b.iterateur();var f=d.suivant();var g=0;var h;while(h=d.suivant()){var i=f['zoom'];var j=h['zoom'];var k=f['position'];var l=h['position'];var n=h['z_index'];Debug.assert(typeof i=='number'&&i>0&&typeof j=='number'&&j>0&&k instanceof Position&&l instanceof Position&&typeof n=='number');var m=(k.distanceA(l)*4*2/(i+j));var o=new ElementAnimationPropriete(g,1,n,n,'z',a);c.push(o);var p=new ElementAnimationPropriete(g,m,i,j,'zoom',a);c.push(p);var q=new ElementAnimationDeplacement(g,m,k.valX(),k.valY(),l.valX(),l.valY(),a);c.push(q);f=h;g+=m}var r=new ElementAnimationImage(0,g,'deplacement',a);c.push(r);return new Animation(c)};ZoneDeplacement.prototype.animationDeplacement=function(a,b,c,d){Debug.assert(a instanceof PersonnageJoueur);Debug.assert(b instanceof GrapheDeplacement);Debug.assert(c instanceof Position);Debug.assert(d instanceof Position);var f=this.plusProcheEpsilonPositionDe(c);var g=this.plusProcheEpsilonPositionDe(d);var h=b.plusCourtChemin(f,g);return this._animationChemin(a,h)};function GrapheDeplacement(a){if(Global.estDefinition())return;Debug.assert(a instanceof ZoneDeplacement);Objet.call(this);this._liste_noeuds=this._construireListeNoeuds(a);this._reserve_noeuds=new GrapheDeplacement._ReserveNoeuds()};Global.heriter(GrapheDeplacement,Objet);GrapheDeplacement._ReserveNoeuds=function(){if(Global.estDefinition())return;parcours_a_etoile.ReserveNoeuds.call(this)};Global.heriter(GrapheDeplacement._ReserveNoeuds,parcours_a_etoile.ReserveNoeuds);GrapheDeplacement._ReserveNoeuds.prototype._clefDe=function(a){Debug.assert(a instanceof GrapheDeplacement._NoeudDeplacement);return a.valUid()};GrapheDeplacement._NoeudDeplacement=function(a,b){if(Global.estDefinition())return;Debug.assert(a instanceof Position);Debug.assert(b instanceof PolygonneZoneDeplacement);Objet.call(this);this._position=a;this._polygonne_zone_deplacement=b;this._liste_successeurs=new Array();this._uid=new Date().getTime()+'_'+Math.random()};Global.heriter(GrapheDeplacement._NoeudDeplacement,Objet);GrapheDeplacement._NoeudDeplacement.prototype.valPosition=function(){Debug.assert(this._position instanceof Position);return this._position};GrapheDeplacement._NoeudDeplacement.prototype.valPolygonneZoneDeplacement=function(){Debug.assert(this._polygonne_zone_deplacement instanceof PolygonneZoneDeplacement);return this._polygonne_zone_deplacement};GrapheDeplacement._NoeudDeplacement.prototype.iterateurSuccesseurs=function(){Debug.assert(this._liste_successeurs instanceof Array);return this._liste_successeurs.iterateur()};GrapheDeplacement._NoeudDeplacement.prototype.ajouterSuccesseur=function(a){Debug.assert(this._liste_successeurs instanceof Array);Debug.assert(a instanceof GrapheDeplacement._NoeudDeplacement);this._liste_successeurs.push(a)};GrapheDeplacement._NoeudDeplacement.prototype.valUid=function(){Debug.assert(typeof this._uid=='string'&&this._uid);return this._uid};GrapheDeplacement._ConstructeurNoeud=function(a,b,c){if(Global.estDefinition())return;Debug.assert(a instanceof Position);Debug.assert(b instanceof PolygonneZoneDeplacement);Debug.assert(typeof c=='boolean');Objet.call(this);this._noeud_deplacement=new GrapheDeplacement._NoeudDeplacement(a,b);this._est_concave=c};Global.heriter(GrapheDeplacement._ConstructeurNoeud,Objet);GrapheDeplacement._ConstructeurNoeud.prototype.valNoeudDeplacement=function(){Debug.assert(this._noeud_deplacement instanceof GrapheDeplacement._NoeudDeplacement);return this._noeud_deplacement};GrapheDeplacement._ConstructeurNoeud.prototype.valPosition=function(){return this.valNoeudDeplacement().valPosition()};GrapheDeplacement._ConstructeurNoeud.prototype.estConcave=function(){Debug.assert(typeof this._est_concave=='boolean');return this._est_concave};GrapheDeplacement._ConstructeurNoeud.prototype.estPont=function(){Debug.assert(typeof this._est_concave=='boolean');var a=this.valNoeudDeplacement().iterateurSuccesseurs();return a.suivant()!=null};GrapheDeplacement._ConstructeurNoeud.prototype.relierAvec=function(a){Debug.assert(a instanceof GrapheDeplacement._ConstructeurNoeud);Debug.assert(this.valPosition().estEgalA(constructeur.valPosition())&&this!=constructeur);this.valNoeudDeplacement().ajouterSuccesseur(a.valNoeudDeplacement())};GrapheDeplacement._GrapheParcoursAEtoile=function(a,b,c){if(Global.estDefinition())return;Debug.assert(a instanceof GrapheDeplacement._NoeudDeplacement);Debug.assert(b instanceof GrapheDeplacement._NoeudDeplacement);Debug.assert(c instanceof Array);Objet.call(this);this._noeud_depart=a;this._noeud_arrivee=b;this._liste_predecesseurs_arrivee=c};Global.heriter(GrapheDeplacement._GrapheParcoursAEtoile,Objet);GrapheDeplacement._GrapheParcoursAEtoile.prototype.coutTraversee=function(a,b,c){Debug.assert(!a||(a instanceof GrapheDeplacement._NoeudDeplacement));Debug.assert(b instanceof GrapheDeplacement._NoeudDeplacement);Debug.assert(c instanceof GrapheDeplacement._NoeudDeplacement);var d=(a?a.valPosition():null);var f=b.valPosition();var g=c.valPosition();if(!d||((d.valX()-f.valX()==f.valX()-g.valX())&&(d.valY()-f.valY()==f.valY()-g.valY())))return f.distanceA(g);else return f.distanceA(g)*1.0000001};GrapheDeplacement._GrapheParcoursAEtoile.prototype.estimationCout=function(a,b){Debug.assert(a instanceof GrapheDeplacement._NoeudDeplacement);Debug.assert(b instanceof GrapheDeplacement._NoeudDeplacement);var c=a.valPosition();var d=b.valPosition();return c.distanceA(d)};GrapheDeplacement._GrapheParcoursAEtoile.prototype.iterateurSuccesseurs=function(a){Debug.assert(this._liste_predecesseurs_arrivee instanceof Array);Debug.assert(this._noeud_arrivee instanceof GrapheDeplacement._NoeudDeplacement);Debug.assert(a instanceof GrapheDeplacement._NoeudDeplacement);if(this._liste_predecesseurs_arrivee.indexDe(a)!=-1){return new IterateurUnion(a.iterateurSuccesseurs(),[this._noeud_arrivee].iterateur())}else{return a.iterateurSuccesseurs()}};GrapheDeplacement._GrapheParcoursAEtoile.prototype.parcours=function(a){Debug.assert(this._noeud_depart instanceof GrapheDeplacement._NoeudDeplacement);Debug.assert(this._noeud_arrivee instanceof GrapheDeplacement._NoeudDeplacement);Debug.assert(a instanceof GrapheDeplacement._ReserveNoeuds);return parcours_a_etoile(this,this._noeud_depart,this._noeud_arrivee,a)};GrapheDeplacement.prototype._iterateurNoeuds=function(){Debug.assert(this._liste_noeuds instanceof Array);return this._liste_noeuds.iterateur()};GrapheDeplacement.prototype._valReserveNoeuds=function(){Debug.assert(this._reserve_noeuds instanceof GrapheDeplacement._ReserveNoeuds);return this._reserve_noeuds};GrapheDeplacement.prototype._listeConstructeurs=function(a){Debug.assert(a instanceof ZoneDeplacement);var b=new Array();var c=a.iterateurPolygonnes();var d;while(d=c.suivant()){var f=d.polygonne().epsilonPolygonne();var g=f.iterateurSommets();var h;while(h=g.suivant()){b.push(new GrapheDeplacement._ConstructeurNoeud(h,d,f.sommetEstConcave(h)))}}return b};GrapheDeplacement.prototype._relierPonts=function(a){Debug.assert(a instanceof Array);var b=new Object();var c=a.iterateur();var d;while(d=c.suivant()){var f=d.valPosition();var g=f.valX()+'_'+f.valY();if(g in b){b[g].push(d)}else{b[g]=new Array(d)}}for(var h in b){var i=b[h];for(var j=0;j<i.length;j++){var d=i[j];for(var k=0;k<i.length;k++){if(j==k)continue;constucteur.relierAvec(i[k])}}}};GrapheDeplacement.prototype._listeNoeudsUtiles=function(a){Debug.assert(a instanceof Array);var b=new Array();var c=a.iterateur();var d;while(d=c.suivant()){if(d.estPont()||d.estConcave()){b.push(d.valNoeudDeplacement())}}return b};GrapheDeplacement.prototype._reliersSommetsPolygonne=function(a){Debug.assert(a instanceof Array);var b=a.iterateur();var c;while(c=b.suivant()){var d=c.valPosition();var f=c.valPolygonneZoneDeplacement();var g=f.polygonne();var h=a.iterateur();var i;while(i=h.suivant()){if(c!=i&&(f==i.valPolygonneZoneDeplacement())&&g.contientSegment(new Segment(d,i.valPosition()))){c.ajouterSuccesseur(i)}}}};GrapheDeplacement.prototype._construireListeNoeuds=function(a){Debug.assert(a instanceof ZoneDeplacement);var b=this._listeConstructeurs(a);this._relierPonts(b);var c=this._listeNoeudsUtiles(b);this._reliersSommetsPolygonne(c);return c};GrapheDeplacement.prototype._grapheParcours=function(a,b){var c=new GrapheDeplacement._NoeudDeplacement(a['epsilon_position'],a['polygonne_zone_deplacement']);var d=new GrapheDeplacement._NoeudDeplacement(b['epsilon_position'],b['polygonne_zone_deplacement']);var f=c.valPosition();var g=c.valPolygonneZoneDeplacement();var h=g.polygonne();var i=d.valPosition();var j=d.valPolygonneZoneDeplacement();var k=j.polygonne();if((g==j)&&h.contientSegment(new Segment(f,i))){c.ajouterSuccesseur(d)}var l=new Array();var n=this._iterateurNoeuds();var m;while(m=n.suivant()){var o=m.valPosition();var p=m.valPolygonneZoneDeplacement();if((g==p)&&h.contientSegment(new Segment(f,o))){c.ajouterSuccesseur(m)}if((j==p)&&k.contientSegment(new Segment(o,i))){l.push(m)}}return new GrapheDeplacement._GrapheParcoursAEtoile(c,d,l)};GrapheDeplacement.prototype.plusCourtChemin=function(a,b){var c=this._grapheParcours(a,b).parcours(this._valReserveNoeuds());var d=[];var f=c.iterateur();var g;while(g=f.suivant()){var h=g.valPosition();var i=g.valPolygonneZoneDeplacement();d.push({'zoom':i.zoomA(h),'position':h,'z_index':i.valZIndex()})}return d};Polygonne.prototype._fun_epsilonPolygonne=Polygonne.prototype.epsilonPolygonne;Polygonne.prototype.epsilonPolygonne=function(){Debug.assert(!this._cache_epsilon_polygonne||this._cache_epsilon_polygonne instanceof Polygonne);if(!this._cache_epsilon_polygonne){this._cache_epsilon_polygonne=this._fun_epsilonPolygonne()}return this._cache_epsilon_polygonne};PolygonneZoneDeplacement.prototype._fun_polygonne=PolygonneZoneDeplacement.prototype.polygonne;PolygonneZoneDeplacement.prototype.polygonne=function(){Debug.assert(!this._cache_polygonne||this._cache_polygonne instanceof Polygonne);if(!this._cache_polygonne){this._cache_polygonne=this._fun_polygonne()}return this._cache_polygonne};function LecteurMusiques(a,b){if(Global.estDefinition())return;Debug.assert(a instanceof Partie);Debug.assert(typeof b=='object');Observateur.call(this);this._partie=a;this._dictionnaire_musiques=b;this._ancien_uid_scene=null;this._abonnerA(a)};Global.heriter(LecteurMusiques,Observateur);LecteurMusiques.prototype._valPartie=function(){Debug.assert(this._partie instanceof Partie);return this._partie};LecteurMusiques.prototype._adresseMusiqueDe=function(a){Debug.assert(typeof this._dictionnaire_musiques=='object');return this._dictionnaire_musiques[a]};LecteurMusiques.prototype._valAncienUidScene=function(){Debug.assert(this._ancien_uid_scene==null||(typeof this._ancien_uid_scene=='string'&&this._ancien_uid_scene));return this._ancien_uid_scene};LecteurMusiques.prototype.synchroniser=function(){Debug.assert(soundManager instanceof SoundManager);var a=this._valAncienUidScene();var b=this._valPartie().valChangementScene().valScene();Debug.assert(typeof b._valUid=='function');var c=b._valUid().toString();if(a){soundManager.stop(a);soundManager.destroySound(a)}var d=this._adresseMusiqueDe(c);if(d){soundManager.createSound({id:c,url:d,autoPlay:true});Debug.assert(typeof soundManager.defaultOptions=='object'&&(typeof soundManager.defaultOptions.volume=='number'));soundManager.setVolume(c,soundManager.defaultOptions.volume);this._ancien_uid_scene=c}else{this._ancien_uid_scene=null}};function VueAnimation(a){if(Global.estDefinition())return;Debug.assert(a instanceof Animation);VueTransitoire.call(this,a);this._date_initiale=null;this._liste_vues_a_animer=null;this._minuteur=new Minuteur(VueAnimation.INTERVAL_ANIMATION,this._rappelMinuteur.associerA(this));this._rappel_fin=null};Global.heriter(VueAnimation,VueTransitoire);VueAnimation.INTERVAL_ANIMATION=30;VueAnimation.prototype._valAnimation=function(){return this._valObservable()};VueAnimation.prototype._creerDateInitiale=function(){Debug.assert(this._date_initiale==null);this._date_initiale=new Date()};VueAnimation.prototype._detruireDateInitiale=function(){Debug.assert(this._date_initiale instanceof Date);this._date_initiale=null};VueAnimation.prototype._valDateInitiale=function(){Debug.assert(this._date_initiale instanceof Date);return this._date_initiale};VueAnimation.prototype._demarrerMinuteur=function(){Debug.assert(this._minuteur instanceof Minuteur);Debug.assert(!this._minuteur.estDemarre());this._minuteur.demarrer()};VueAnimation.prototype._arreterMinuteur=function(){Debug.assert(this._minuteur instanceof Minuteur);Debug.assert(this._minuteur.estDemarre());this._minuteur.arreter()};VueAnimation.prototype._aRappelFin=function(){Debug.assert(this._rappel_fin==null||typeof this._rappel_fin=='function');return this._rappel_fin!=null};VueAnimation.prototype._valRappelFin=function(){Debug.assert(typeof this._rappel_fin=='function');return this._rappel_fin};VueAnimation.prototype._creerListeVuesAAnimer=function(){Debug.assert(!this._liste_vues_a_animer);var a=new Array();var b=this._valAnimation();var c=b.iterateurElementsAnimation();var d;while(d=c.suivant()){var f;switch(d.constructor){case ElementAnimationDisparition:f=new VueElementAnimationDisparition(d);break;case ElementAnimationApparition:f=new VueElementAnimationApparition(d);break;case ElementAnimationDeplacement:f=new VueElementAnimationDeplacement(d);break;case ElementAnimationImage:f=new VueElementAnimationImage(d);break;case ElementAnimationSon:f=new VueElementAnimationSon(d);break;case ElementAnimationStyle:f=new VueElementAnimationStyle(d);break;case ElementAnimationPropriete:f=new VueElementAnimationPropriete(d);break;case ElementAnimationCamera:f=new VueElementAnimationCamera(d);break;case ElementAnimationFlash:f=new VueElementAnimationFlash(d);break;default:Debug.erreur('VueAnimation::_creerListeVuesAAnimer : '+'Type d\'element d\'animation inconnu');return}a.push(f)}this._liste_vues_a_animer=a};VueAnimation.prototype._detruireListeVuesAAnimer=function(){Debug.assert(this._liste_vues_a_animer);this._liste_vues_a_animer=null};VueAnimation.prototype._estVide=function(){Debug.assert(this._liste_vues_a_animer);return this._liste_vues_a_animer.length==0};VueAnimation.prototype._iterateurVuesAAnimer=function(){Debug.assert(this._liste_vues_a_animer);Debug.assert(this._liste_vues_a_animer.length>0);return this._liste_vues_a_animer.iterateur()};VueAnimation.prototype._supprimerVueAAnimer=function(a){Debug.assert(this._liste_vues_a_animer);Debug.assert(a);this._liste_vues_a_animer.supprimer(a)};VueAnimation.prototype._dureeExecutee=function(){return new Date().getTime()-this._valDateInitiale().getTime()};VueAnimation.prototype._rappelMinuteur=function(){var a=this._dureeExecutee();var b=[];var c=this._iterateurVuesAAnimer();var d;while(d=c.suivant()){var f=d.valElementAnimation();var g=f.valDebut();var h=f.valDuree();if(a>=g&&a<g+h){d.animer(a-g)}else if(a>=g+h){d.finaliser();b.push(d)}}for(var i=0;i<b.length;i++)this._supprimerVueAAnimer(b[i]);if(this._estVide()){this.arreter();if(this._aRappelFin()){this._valRappelFin()();this._rappel_fin=null}}};VueAnimation.prototype.estTermine=function(){return this._liste_vues_a_animer==null};VueAnimation.prototype.demarrer=function(a){Debug.assert(a==null||typeof a=='function');this._creerDateInitiale();this._creerListeVuesAAnimer();this._demarrerMinuteur();this._rappel_fin=a};VueAnimation.prototype.arreter=function(){this._detruireDateInitiale();this._detruireListeVuesAAnimer();this._arreterMinuteur()};function VueElementAnimationBase(a){if(Global.estDefinition())return;Debug.assert(a instanceof ElementAnimationBase);VueTransitoire.call(this,a)};Global.heriter(VueElementAnimationBase,VueTransitoire);VueElementAnimationBase.prototype.valElementAnimation=function(){return this._valObservable()};VueElementAnimationBase.prototype._pourcentageEffectue=function(a){var b=this.valElementAnimation();Debug.assert(typeof a=='number'&&a>=0&&a<=b.valDuree());var c=b.valDuree()||Math.EPSILON;return Math.min(1.0,a/c)};VueElementAnimationBase.prototype.animer=function(a){var b=this.valElementAnimation();Debug.assert(typeof a=='number'&&a>=0&&a<=b.valDuree());Debug.erreurNonImplemente()};VueElementAnimationBase.prototype.finaliser=function(){var a=this.valElementAnimation();this.animer(a.valDuree())};function VueElementAnimationSon(a){if(Global.estDefinition())return;Debug.assert(soundManager instanceof SoundManager);Debug.assert(a instanceof ElementAnimationSon);VueElementAnimationBase.call(this,a);soundManager.createSound({'id':a._valUid(),'url':a.valUrl(),'autoload':true});Debug.assert(typeof soundManager.defaultOptions=='object'&&typeof soundManager.defaultOptions.volume=='number');soundManager.setVolume(a._valUid(),soundManager.defaultOptions.volume)};Global.heriter(VueElementAnimationSon,VueElementAnimationBase);VueElementAnimationSon.prototype.animer=function(a){Debug.assert(soundManager instanceof SoundManager);var b=this.valElementAnimation();Debug.assert(typeof a=='number'&&a>=0&&a<=b.valDuree());var c=soundManager.getSoundById(b._valUid());if(!c.playState)c.play()};VueElementAnimationSon.prototype.finaliser=function(){Debug.assert(soundManager instanceof SoundManager);var a=this.valElementAnimation();soundManager.destroySound(a._valUid())};function VueElementAnimationFlash(a){if(Global.estDefinition())return;Debug.assert(a instanceof ElementAnimationFlash);VueElementAnimationBase.call(this,a);this._element_flash=null};Global.heriter(VueElementAnimationFlash,VueElementAnimationBase);VueElementAnimationFlash.prototype._valConstructeur=Vue.prototype._valConstructeur;VueElementAnimationFlash.prototype.animer=function(a){var b=this.valElementAnimation();Debug.assert(typeof a=='number'&&a>=0&&a<=b.valDuree());if(!this._element_flash){Debug.assert(typeof b._valUid=='function');var c=b._valUid();Debug.assert(!document.getElementById(c));var d=document.getElementById('masque');Debug.assert(d);var f=this._valConstructeur();var g=f.ajouterElementA(d,'div',{'id':c});swfobject.embedSWF(b.valUrl(),c,'100%','100%','8.0.0');this._element_flash=document.getElementById(c);Debug.assert(soundManager instanceof SoundManager);soundManager.stopAll()}};VueElementAnimationFlash.prototype.finaliser=function(){Debug.assert(this._element_flash);var a=this._element_flash;supprimer_noeud(a.parentNode,a)};function VueElementAnimationImage(a){if(Global.estDefinition())return;Debug.assert(a instanceof ElementAnimationImage);VueElementAnimationBase.call(this,a)};Global.heriter(VueElementAnimationImage,VueElementAnimationBase);VueElementAnimationImage.prototype.animer=function(a){var b=this.valElementAnimation();var c=b.valObjet();var d=b.valNomAnimationImage();Debug.assert(typeof a=='number'&&a>=0&&a<=b.valDuree());if(c.valNomAnimationImage()!=d)c.modifierNomAnimationImage(d)};VueElementAnimationImage.prototype.finaliser=function(){var a=this.valElementAnimation();a.valObjet().modifierNomAnimationImage(null)};function VueElementAnimationProgression(a,b,c){if(Global.estDefinition())return;Debug.assert(a instanceof ElementAnimationBase);Debug.assert(typeof b!='undefined');Debug.assert(b.interpolationAvec);Debug.assert(typeof c!='undefined');Debug.assert(c.interpolationAvec);VueElementAnimationBase.call(this,a);this._valeur_initiale=b;this._valeur_finale=c};Global.heriter(VueElementAnimationProgression,VueElementAnimationBase);VueElementAnimationProgression.prototype._valValeurInitiale=function(){Debug.assert(typeof this._valeur_initiale!='undefined');Debug.assert(this._valeur_initiale.interpolationAvec);return this._valeur_initiale};VueElementAnimationProgression.prototype._valValeurFinale=function(){Debug.assert(typeof this._valeur_finale!='undefined');Debug.assert(this._valeur_finale.interpolationAvec);return this._valeur_finale};VueElementAnimationProgression.prototype._animerAvec=function(a){Debug.assert(a);Debug.erreurNonImplemente()};VueElementAnimationProgression.prototype.animer=function(a){var b=this.valElementAnimation();Debug.assert(typeof a=='number'&&a>=0&&a<=b.valDuree());var c=this._pourcentageEffectue(a);var d=this._valValeurInitiale();var f=this._valValeurFinale();var g=d.interpolationAvec(f,c);this._animerAvec(g)};function VueElementAnimationProgressionObjet(a,b,c){if(Global.estDefinition())return;Debug.assert(a instanceof ElementAnimationObjet);Debug.assert(typeof b!='undefined');Debug.assert(b.interpolationAvec);Debug.assert(typeof c!='undefined');Debug.assert(c.interpolationAvec);VueElementAnimationProgression.call(this,a,b,c);var d=a.valObjet();this._element_cible=document.getElementById(d._valUid())};Global.heriter(VueElementAnimationProgressionObjet,VueElementAnimationProgression);VueElementAnimationProgressionObjet.prototype._elementCible=function(){Debug.assert(this._element_cible);return this._element_cible};function VueElementAnimationPropriete(a){if(Global.estDefinition())return;VueElementAnimationProgressionObjet.call(this,a,a.valValeurInitiale(),a.valValeurFinale())};Global.heriter(VueElementAnimationPropriete,VueElementAnimationProgressionObjet);VueElementAnimationPropriete.prototype._animerAvec=function(a){Debug.assert(typeof a!='undefined');var b=this.valElementAnimation();var c=b.valObjet();var d=b.valPropriete();var f='modifier'+d.capitaliser();if(typeof c[f]=='function'){c[f].call(c,a)}else if(typeof c[d]!='undefined'){c[d]=a;c._notifierModification()}else if(typeof c['_'+f]=='function'||typeof c['_'+d]!='undefined'){Debug.erreur('Propriete non accessible')}else{Debug.erreur('Propriete innexistante')}};function VueElementAnimationStyle(a){if(Global.estDefinition())return;Debug.assert(a instanceof ElementAnimationStyle);VueElementAnimationProgressionObjet.call(this,a,a.valValeurInitiale(),a.valValeurFinale())};Global.heriter(VueElementAnimationStyle,VueElementAnimationProgressionObjet);VueElementAnimationStyle.prototype._animerAvec=function(a){Debug.assert(typeof a!='undefined');var b=this.valElementAnimation();var c=b.valStyle();var d=this._elementCible();d.style[c]=a+b.valUnite()};function VueElementAnimationApparition(a){if(Global.estDefinition())return;Debug.assert(a instanceof ElementAnimationApparition);VueElementAnimationProgressionObjet.call(this,a,0.0,1.0)};Global.heriter(VueElementAnimationApparition,VueElementAnimationProgressionObjet);VueElementAnimationApparition.prototype._animerAvec=function(a){var b=this._elementCible();changer_opacite(b,a)};function VueElementAnimationDisparition(a){if(Global.estDefinition())return;Debug.assert(a instanceof ElementAnimationDisparition);VueElementAnimationProgressionObjet.call(this,a,1.0,0.0)};Global.heriter(VueElementAnimationDisparition,VueElementAnimationProgressionObjet);VueElementAnimationDisparition.prototype._animerAvec=function(a){var b=this._elementCible();changer_opacite(b,a)};function VueElementAnimationDeplacement(a){if(Global.estDefinition())return;Debug.assert(a instanceof ElementAnimationDeplacement);VueElementAnimationProgressionObjet.call(this,a,a.valPositionInitiale(),a.valPositionFinale())};Global.heriter(VueElementAnimationDeplacement,VueElementAnimationProgressionObjet);VueElementAnimationDeplacement.prototype._animerAvec=function(a){Debug.assert(a instanceof Position);this.valElementAnimation().valObjet().modifierPosition(a)};function VueElementAnimationCamera(a){if(Global.estDefinition())return;Debug.assert(a instanceof ElementAnimationCamera);VueElementAnimationProgression.call(this,a,a.valPositionInitiale(),a.valPositionFinale())};Global.heriter(VueElementAnimationCamera,VueElementAnimationProgression);VueElementAnimationCamera.prototype._animerAvec=function(a){Debug.assert(a instanceof Position);Debug.assert(window.jeu);var b=window.jeu.valCamera();b.modifierRectangle(b.valRectangle().translateA(a))};function VueAction(a){if(Global.estDefinition())return;Debug.assert(a instanceof ActionBase);VueTransitoire.call(this,a)};Global.heriter(VueAction,VueTransitoire);VueAction.prototype._valAction=function(){return this._valObservable()};VueAction.prototype._realiserFin=function(a,b){Debug.assert(a instanceof Jeu);Debug.assert(b==null||typeof b=='function');Debug.assert(window.jeu instanceof Jeu);var c=window.jeu.valInteractions();var d=this._valAction();Debug.assert(document.body.style.cursor=='wait');document.body.style.cursor='';c.retablir(false);d.realiser(a);if(b!=null)b()};VueAction.prototype.realiser=function(a,b){Debug.assert(a instanceof Jeu);Debug.assert(b==null||typeof b=='function');Debug.assert(window.jeu instanceof Jeu);var c=window.jeu.valInteractions();var d=this._valAction();var f=d.valAnimation();if(f){c.bloquer(null);Debug.assert(!document.body.style.cursor);document.body.style.cursor='wait';var g=new VueAnimation(f);g.demarrer(this._realiserFin.associerA(this,a,b))}else{d.realiser(a);if(b!=null)b()}};function VueMessage(a,b,c){if(Global.estDefinition())return;Debug.assert(a instanceof Message);Debug.assert(b instanceof Inventaire);Debug.assert(c instanceof Camera);Vue.call(this,a);this._inventaire=b;this._camera=c};Global.heriter(VueMessage,Vue);VueMessage.prototype._valMessage=function(){return this._valObservable()};VueMessage.prototype._valInventaire=function(){Debug.assert(this._inventaire instanceof Inventaire);return this._inventaire};VueMessage.prototype._valCamera=function(){Debug.assert(this._camera instanceof Camera);return this._camera};VueMessage.prototype._couleurAuteur=function(){var a=this._valMessage().valAuteur();var b=a.valNom().hash()%359;return new CouleurTsv(b,0.50,0.75)};VueMessage.prototype._positionner=function(a){Debug.assert(a);var b=this._valMessage().valAuteur();var c=this._valInventaire();var d=this._valCamera();var f=b.valPosition();var g=b.tailleSceneCourante(c);document.getElementById('jeu').appendChild(a);var h=new Taille(a.firstChild.offsetWidth/d.valZoom(),a.firstChild.offsetHeight/d.valZoom());document.getElementById('jeu').removeChild(a);var i=f.translationDe(new Vecteur(-(h.valLargeur()-g.valLargeur())/2,-h.valHauteur()));var j=new Rectangle(i.valX(),i.valY(),h.valLargeur(),h.valHauteur()).contraindreA(d.valRectangle());var k=d.positionRelativeDe(j._valOrigine());a.style.left=k.valX()+'px';a.style.top=k.valY()+'px'};VueMessage.prototype._creerElement=function(){Debug.assert(!this._element);var a=this._valConstructeur();var b=this._valMessage();var c=this._couleurAuteur();var d=a.creerElementRacine('div',{'className':'message'});var f=b.valCorps().replace(/\n/g,'<br />');var g=a.ajouterElementA(d,'div',{'className':'contenu','innerHTML':f});g.style.color=c.representationCss();var h=2;for(var i=-h;i<=h;i++){for(var j=-h;j<=h;j++){var k=a.ajouterElementA(d,'div',{'className':'ombre','innerHTML':f});k.style.left=i+'px';k.style.top=j+'px'}}this._positionner(d);return d};VueMessage.prototype.synchroniser=function(){};function VueQuestion(a,b,c){if(Global.estDefinition())return;Debug.assert(a instanceof Question);Debug.assert(b instanceof DialogueCourant);Debug.assert(c instanceof Jeu);Vue.call(this,a);this._dialogue_courant=b;this._jeu=c};Global.heriter(VueQuestion,Vue);VueQuestion.prototype._valQuestion=function(){return this._valObservable()};VueQuestion.prototype._valDialogueCourant=function(){Debug.assert(this._dialogue_courant instanceof DialogueCourant);return this._dialogue_courant};VueQuestion.prototype._valJeu=function(){Debug.assert(this._jeu instanceof Jeu);return this._jeu};VueQuestion.prototype._messageRappel=function(){var a=this._valQuestion();var b=this._valDialogueCourant();var c=this._valJeu();b.embrancherQuestion(a,c);return false};VueQuestion.prototype._creerElement=function(){Debug.assert(!this._element);var a=this._valConstructeur();var b=this._valQuestion();var c=a.creerElementRacine('a',{'href':'#','className':'question','onclick':this._messageRappel.associerA(this)});a.ajouterTexteA(c,b.valCorps());return c};function VueQuestionRetour(a,b,c){if(Global.estDefinition())return;Debug.assert(a instanceof QuestionRetour);Debug.assert(b instanceof DialogueCourant);Debug.assert(c instanceof Jeu);VueQuestion.call(this,a,b,c)};Global.heriter(VueQuestionRetour,VueQuestion);VueQuestionRetour.prototype._valQuestionRetour=function(){return this._valObservable()};VueQuestionRetour.prototype._messageRappel=function(){var a=this._valQuestionRetour();var b=this._valDialogueCourant();var c=this._valJeu();b.embrancherQuestionRetour(a,c);return false};VueQuestionRetour.prototype._creerElement=function(){Debug.assert(!this._element);var a=VueQuestion.prototype._creerElement.call(this);a.className+=' question_retour';return a};function VueGroupeQuestions(a,b,c){if(Global.estDefinition())return;Debug.assert(a instanceof GroupeQuestions);Debug.assert(b instanceof DialogueCourant);Debug.assert(c instanceof Jeu);VueListe.call(this,a);this._dialogue_courant=b;this._jeu=c};Global.heriter(VueGroupeQuestions,VueListe);VueGroupeQuestions.prototype._valGroupeQuestions=function(){return this._valObservable()};VueGroupeQuestions.prototype._valDialogueCourant=function(){Debug.assert(this._dialogue_courant instanceof DialogueCourant);return this._dialogue_courant};VueGroupeQuestions.prototype._valJeu=function(){Debug.assert(this._jeu instanceof Jeu);return this._jeu};VueGroupeQuestions.prototype._iterateurContenus=function(){var a=this._valGroupeQuestions();var b=this._valJeu().valPartie().valInventaire();return a.iterateurQuestionsRealisables(b)};VueGroupeQuestions.prototype._creerElementVue=function(a){Debug.assert(a instanceof Vue);var b=VueListe.prototype._creerElementVue.call(this,a);if(a instanceof VueQuestionRetour)b.className+=' retour';return b};VueGroupeQuestions.prototype._creerVueDe=function(a){Debug.assert(a);var b=this._valDialogueCourant();var c=this._valJeu();var d=c.valPartie().valInventaire();Debug.assert(a.estRealisable(d));switch(a.constructor){case Question:return new VueQuestion(a,b,c);default:Debug.erreur('VueGroupeQuestions::_creerSousVue : '+'type de message inconnu')}};VueGroupeQuestions.prototype._creerElement=function(){Debug.assert(!this._element);var a=VueListe.prototype._creerElement.call(this);a.className+=' groupe_questions';return a};function VueGroupeQuestionsRepete(a,b,c){if(Global.estDefinition())return;Debug.assert(a instanceof GroupeQuestionsRepete);Debug.assert(b instanceof DialogueCourant);Debug.assert(c instanceof Jeu);VueGroupeQuestions.call(this,a,b,c)};Global.heriter(VueGroupeQuestionsRepete,VueGroupeQuestions);VueGroupeQuestionsRepete.prototype.valGroupeQuestionsRepete=function(){return this._valObservable()};VueGroupeQuestionsRepete.prototype._creerVueDe=function(a){Debug.assert(a);var b=this._valDialogueCourant();var c=this._valJeu();var d=c.valPartie().valInventaire();Debug.assert(a.estRealisable(d));switch(a.constructor){case Question:return new VueQuestion(a,b,c);case QuestionRetour:return new VueQuestionRetour(a,b,c);default:Debug.erreur('VueGroupeQuestionsRepete::_creerSousVue : '+'type de message inconnu')}};function VueMessageCourant(a,b,c){if(Global.estDefinition())return;Debug.assert(a instanceof DialogueCourant);Debug.assert(b instanceof Jeu);Debug.assert(c instanceof VueJeu);VueObservableCourant.call(this,a);this._jeu=b;this._vue_jeu=c};Global.heriter(VueMessageCourant,VueObservableCourant);VueMessageCourant.prototype._valDialogueCourant=function(){return this._valObservable()};VueMessageCourant.prototype._valJeu=function(){Debug.assert(this._jeu instanceof Jeu);return this._jeu};VueMessageCourant.prototype._valVueJeu=function(){Debug.assert(this._vue_jeu instanceof VueJeu);return this._vue_jeu};VueMessageCourant.prototype._actionRappel=function(){var a=this._valDialogueCourant();var b=this._valJeu();var c=b.valInteractions();c.retablir(true);a.passerMessageSuivant(b);return false};VueMessageCourant.prototype._creerSousVue=function(a){Debug.assert(a);var b=this._valJeu();var c=b.valInteractions();var d=b.valPartie().valInventaire();var f=b.valCamera();var g=this._valVueJeu();switch(a.constructor){case Message:c.bloquer(this._actionRappel.associerA(this));return new VueMessage(a,d,f);case GroupeQuestionsRepete:case GroupeQuestions:return null;default:Debug.erreur('VueMessageCourant::_creerSousVue : '+'type de message inconnu')}};function VueGroupeQuestionsCourant(a,b,c){if(Global.estDefinition())return;Debug.assert(a instanceof DialogueCourant);Debug.assert(b instanceof Jeu);Debug.assert(c instanceof VueJeu);VueObservableCourant.call(this,a);this._jeu=b;this._vue_jeu=c};Global.heriter(VueGroupeQuestionsCourant,VueObservableCourant);VueGroupeQuestionsCourant.prototype._valDialogueCourant=function(){return this._valObservable()};VueGroupeQuestionsCourant.prototype._valJeu=function(){Debug.assert(this._jeu instanceof Jeu);return this._jeu};VueGroupeQuestionsCourant.prototype._valVueJeu=function(){Debug.assert(this._vue_jeu instanceof VueJeu);return this._vue_jeu};VueGroupeQuestionsCourant.prototype._creerSousVue=function(a){Debug.assert(a);var b=this._valDialogueCourant();var c=this._valJeu();var d=c.valInteractions();var f=this._valVueJeu();switch(a.constructor){case Message:return null;case GroupeQuestionsRepete:d.bloquer(null);return new VueGroupeQuestionsRepete(a,b,c);case GroupeQuestions:d.bloquer(null);return new VueGroupeQuestions(a,b,c);default:Debug.erreur('VueGroupeQuestionsCourant::_creerSousVue : '+'type de message inconnu')}};VueGroupeQuestionsCourant.prototype.synchroniser=function(){if(this._valSousVue())this._valJeu().valInteractions().retablir(false);VueObservableCourant.prototype.synchroniser.call(this)};function ObservateurInventaireFiltre(a,b){if(Global.estDefinition())return;Debug.assert(a instanceof Inventaire);Debug.assert(b instanceof VueObjet||b instanceof VueInteractionsObjet);Observateur.call(this);this._abonnerA(a);this._inventaire=a;this._vue_objet=b};Global.heriter(ObservateurInventaireFiltre,Observateur);ObservateurInventaireFiltre.prototype._valInventaire=function(){Debug.assert(this._inventaire instanceof Inventaire);return this._inventaire};ObservateurInventaireFiltre.prototype._valVueObjet=function(){Debug.assert(this._vue_objet instanceof VueObjet||this._vue_objet instanceof VueInteractionsObjet);return this._vue_objet};ObservateurInventaireFiltre.prototype.synchroniserAjout=function(a){Debug.assert(a instanceof JetonBase);var b=this._valInventaire();var c=this._valVueObjet();var d=c._valObjet();if(d.positionSceneModifieePar(a)){d.synchroniserPositionSceneCourante(b);c.synchroniser()}else if(d.actionModifieePar(a)||d.imageSceneModifieePar(a)){c.synchroniser()}};ObservateurInventaireFiltre.prototype.synchroniserSuppression=function(a){Debug.assert(a instanceof JetonBase);this.synchroniserAjout(a)};function ObservateurCameraFiltre(a,b){if(Global.estDefinition())return;Debug.assert(a instanceof Camera);Debug.assert(b instanceof VueObjet||b instanceof VueInteractionsObjet||b instanceof VueScene||b instanceof VueInteractionsScene);Observateur.call(this);this._abonnerA(a);this._camera=a;this._vue=b};Global.heriter(ObservateurCameraFiltre,Observateur);ObservateurCameraFiltre.prototype._valVue=function(){Debug.assert(this._vue instanceof VueObjet||this._vue instanceof VueInteractionsObjet||this._vue instanceof VueScene||this._vue instanceof VueInteractionsScene);return this._vue};ObservateurCameraFiltre.prototype.synchroniserZoom=function(){this._valVue().synchroniser()};ObservateurCameraFiltre.prototype.synchroniser=function(){};function VueObjet(a,b,c){if(Global.estDefinition())return;Debug.assert(a instanceof Objet_);Debug.assert(b instanceof Inventaire);Debug.assert(c instanceof Camera);a._postInitialisation();a.synchroniserPositionSceneCourante(b);Vue.call(this,a);this._inventaire=b;this._camera=c;this._observateur_inventaire_filtre=new ObservateurInventaireFiltre(b,this);this._observateur_camera_filtre=new ObservateurCameraFiltre(c,this);this._element_image=null};Global.heriter(VueObjet,Vue);VueObjet.prototype.detacher=function(){Debug.assert(this._observateur_inventaire_filtre instanceof ObservateurInventaireFiltre);Debug.assert(this._observateur_camera_filtre instanceof ObservateurCameraFiltre);Vue.prototype.detacher.call(this);this._observateur_inventaire_filtre.detacher();this._observateur_camera_filtre.detacher()};VueObjet.prototype._valObjet=function(){return this._valObservable()};VueObjet.prototype._valInventaire=function(){Debug.assert(this._inventaire instanceof Inventaire);return this._inventaire};VueObjet.prototype._valCamera=function(){Debug.assert(this._camera instanceof Camera);return this._camera};VueObjet.prototype._aElementImage=function(){return this._element_image!=null};VueObjet.prototype._valElementImage=function(){Debug.assert(this._element_image);return this._element_image};VueObjet.prototype.synchroniserZoom=function(){var a=this._valInventaire();var b=this._valCamera().tailleRelativeDe(this._valObjet().tailleSceneCourante(a));var c=this.valElement();var d=c.getElementsByTagName('img');Debug.assert(d.length==1);var f=d[0];f.width=0.5+b.valLargeur();f.height=0.5+b.valHauteur()};VueObjet.prototype.synchroniserZ=function(){var a=this._valObjet();var b=this.valElement();b.style.zIndex=a.valZ()};VueObjet.prototype.synchroniserDeplacement=function(){var a=this._valCamera().positionRelativeDe(this._valObjet().valPosition());var b=this.valElement();b.style.left=a.valX()+'px';b.style.top=a.valY()+'px'};VueObjet.prototype.synchroniserImage=function(){var a=this._valObjet();var b=this._valInventaire();var c=this._valCamera().valZoom();var d=a.imageSceneCourante(b);var f=this._valElementImage();var g=d.valUrlMiniature(c);if(f.src.indexOf(g)!=f.src.length-g.length){f.src=g}};VueObjet.prototype.synchroniser=function(){var a=this._valObjet();var b=this._valInventaire();var c=a.imageSceneCourante(b);var d=this._valConstructeur();var f=this.valElement();if(!c&&this._aElementImage()){supprimer_noeud(f,this._valElementImage());this._element_image=null}else if(c&&!this._aElementImage()){var g=d.ajouterElementA(f,'img');this._element_image=g}if(c){this.synchroniserImage();this.synchroniserZoom();this.synchroniserZ();this.synchroniserDeplacement()}};VueObjet.prototype._creerElement=function(){Debug.assert(!this._element);var a=this._valConstructeur();var b=this._valObjet();var c=a.creerElementRacine('div',{'id':b._valUid(),'className':'objet'});return c};function PrechargementScene(a,b){if(Global.estDefinition())return;Debug.assert(a instanceof Scene);Observateur.call(this,b);this._camera=b;this._liste_images=new Array();this._prechargerScene(a)};Global.heriter(PrechargementScene,Observateur);PrechargementScene.prototype._valCamera=function(){Debug.assert(this._camera instanceof Camera);return this._camera};PrechargementScene.prototype._prechargerImage=function(a){Debug.assert(this._liste_images instanceof Array);Debug.assert(a instanceof ImageInventaire||a instanceof ImageScene||a instanceof ImageDirectionnelleScene);var b=this._valCamera().valZoom();var c=new Image();c.src=a.valUrlMiniature(b);this._liste_images.push(c)};PrechargementScene.prototype._prechargerGroupeImages=function(a){Debug.assert(a instanceof GroupeImagesDirectionnellesScene);var b=a.iterateurImages();var c;while(c=b.suivant())this._prechargerImage(c)};PrechargementScene.prototype._prechargerObjet=function(a){Debug.assert(a instanceof Objet_);var b=new IterateurUnion(a.iterateurImagesScene(),a.iterateurImagesInventaire());var c;while(c=b.suivant()){if(c instanceof GroupeImagesDirectionnellesScene){this._prechargerGroupeImages(c)}else{this._prechargerImage(c)}}};PrechargementScene.prototype._prechargerScene=function(a){Debug.assert(a instanceof Scene);var b=a.iterateurJetons();var c;while(c=b.suivant()){if(c instanceof Objet_)this._prechargerObjet(c)}};function VueScene(a,b,c){if(Global.estDefinition())return;Debug.assert(a instanceof Scene);Debug.assert(b instanceof Inventaire);Debug.assert(c instanceof Camera);VueConteneur.call(this,a);this._inventaire=b;this._camera=c;this._prechargement=new PrechargementScene(a,c);this._observateur_camera_filtre=new ObservateurCameraFiltre(c,this)};Global.heriter(VueScene,VueConteneur);VueScene.prototype.detacher=function(){Debug.assert(this._observateur_camera_filtre instanceof ObservateurCameraFiltre);VueConteneur.prototype.detacher.call(this);this._observateur_camera_filtre.detacher()};VueScene.prototype.iterateurVuesObjets=function(){return this._valDictionnaireSousVues().iterateurValeurs()};VueScene.prototype._valScene=function(){return this._valObservable()};VueScene.prototype._iterateurContenus=function(){return this._valScene().iterateurJetons()};VueScene.prototype._valInventaire=function(){Debug.assert(this._inventaire instanceof Inventaire);return this._inventaire};VueScene.prototype._valCamera=function(){Debug.assert(this._camera instanceof Camera);return this._camera};VueScene.prototype._creerVueDe=function(a){Debug.assert(a instanceof JetonBase);var b=this._valInventaire();var c=this._valCamera();switch(a.constructor){case Jeton:case EtatObjet:return null;case Objet_:case Personnage:case PersonnageJoueur:return new VueObjet(a,b,c);default:Debug.erreur('VueScene::_creerVueDe : '+'type de contenu de scene inconnu')}};VueScene.prototype.synchroniser=function(){var a=this._valInventaire();var b=this._valCamera().tailleRelativeDe(this._valScene().rectangleCourant(a)._valTaille());var c=this.valElement();c.style.width=b.valLargeur()+'px';c.style.height=b.valHauteur()+'px'};VueScene.prototype._creerElement=function(){Debug.assert(!this._element);var a=this._valConstructeur();var b=a.creerElementRacine('div',{'id':'scene'});return b};function VueInteractionsObjet(a,b,c){if(Global.estDefinition())return;Debug.assert(a instanceof Objet_);Debug.assert(b instanceof Jeu);Debug.assert(c instanceof VueInteractionsScene);var d=b.valPartie().valInventaire();var f=b.valCamera();a._postInitialisation();a.synchroniserPositionSceneCourante(d);Vue.call(this,a);this._jeu=b;this._vue_interactions_scene=c;this._observateur_inventaire_filtre=new ObservateurInventaireFiltre(d,this);this._observateur_camera_filtre=new ObservateurCameraFiltre(f,this)};Global.heriter(VueInteractionsObjet,Vue);VueInteractionsObjet.prototype.detacher=function(){Debug.assert(this._observateur_inventaire_filtre instanceof ObservateurInventaireFiltre);Debug.assert(this._observateur_camera_filtre instanceof ObservateurCameraFiltre);Vue.prototype.detacher.call(this);this._observateur_inventaire_filtre.detacher();this._observateur_camera_filtre.detacher()};VueInteractionsObjet.prototype._valObjet=function(){return this._valObservable()};VueInteractionsObjet.prototype._valJeu=function(){Debug.assert(this._jeu instanceof Jeu);return this._jeu};VueInteractionsObjet.prototype._valVueInteractionsScene=function(){Debug.assert(this._vue_interactions_scene instanceof VueInteractionsScene);return this._vue_interactions_scene};VueInteractionsObjet.prototype._actionRappel=function(a){Debug.assert(a instanceof Evenement);var b=this._valObjet();var c=this._valVueInteractionsScene();c.realiserAction(b,null);a.arreterPropagation();a.arreterDefaut();return false};VueInteractionsObjet.prototype.synchroniserZ=function(){var a=this._valObjet();var b=(a.aPosition()?a.valZ():-1);var c=this.valElement();c.z_index=b;var d=c.parentNode;if(d){Debug.assert(d.tagName=='MAP');supprimer_noeud(d,c);var f=d.firstChild;while(f&&!c.parentNode){Debug.assert(f.tagName=='AREA');if(b>=f.z_index)d.insertBefore(c,f);f=f.nextSibling}if(!c.parentNode)d.appendChild(c)}};VueInteractionsObjet.prototype.synchroniser=function(){var a=this._valObjet();var b=this._valJeu().valPartie().valInventaire();var c=a.actionRealisableAvec(null,b);var d=a.imageSceneCourante(b);var f=this._valConstructeur();var g=this.valElement();this.synchroniserZ();if(!d){Debug.assert(!c,(c?(c.valNom()+' ('+c._valUid()+') realisable alors que '+a.valNom()+' ('+a._valUid()+') n\'est pas visible'):null));g.shape='circle';g.coords='0,0,0'}else if(d.aContours()){var h=this._valJeu().valCamera();var i=h.positionRelativeDe(a.valPosition());var j=i.valX();var k=i.valY();var l=a.valZoom();var n=this._valJeu().valCamera().valZoom();var m=new Array();Debug.assert(d._contours.length%2==0);for(var o=0;o<d._contours.length;o+=2){m.push((d._contours[o]*l*n)+j);m.push((d._contours[o+1]*l*n)+k)}g.shape='poly';g.coords=m.join(',')}else{var h=this._valJeu().valCamera();var i=h.positionRelativeDe(a.valPosition());var p=h.tailleRelativeDe(d.valTaille().multiplierPar(a.valZoom()));g.shape='rect';g.coords=(i.valX()+','+i.valY()+','+(i.valX()+p.valLargeur())+','+(i.valY()+p.valHauteur()))}g.className=g.className.replace(/\s*action_\b/g,'');if(c)g.className+=(' action_'+c.valNom().nomClasse());if(c&&!g.href){g.href='#';this._actionRappel.attacherAEvenement(g,'click',this)}else if(!c&&g.href){g.removeAttribute('href');this._actionRappel.detacherDeEvenement(g,'click',this)}};VueInteractionsObjet.prototype._creerElement=function(){Debug.assert(!this._element);var a=this._valConstructeur();return a.creerElementRacine('area')};function VueInteractionsJoueur(a,b,c,d){if(Global.estDefinition())return;Debug.assert(a instanceof PersonnageJoueur);Debug.assert(b instanceof Jeu);Debug.assert(c instanceof VueInteractionsScene);Debug.assert(d instanceof ZoneDeplacement);VueTransitoire.call(this,a);this._jeu=b;this._vue_interactions_scene=c;this._zone_deplacement=d;this._graphe_deplacement=new GrapheDeplacement(d);this._vue_animation_deplacement=null};Global.heriter(VueInteractionsJoueur,VueTransitoire);VueInteractionsJoueur.prototype._valPersonnageJoueur=function(){return this._valObservable()};VueInteractionsJoueur.prototype._valJeu=function(){Debug.assert(this._jeu instanceof Jeu);return this._jeu};VueInteractionsJoueur.prototype._valVueInteractionsScene=function(){Debug.assert(this._vue_interactions_scene instanceof VueInteractionsScene);return this._vue_interactions_scene};VueInteractionsJoueur.prototype._valZoneDeplacement=function(){Debug.assert(this._zone_deplacement instanceof ZoneDeplacement);return this._zone_deplacement};VueInteractionsJoueur.prototype._valGrapheDeplacement=function(){Debug.assert(this._graphe_deplacement instanceof GrapheDeplacement);return this._graphe_deplacement};VueInteractionsJoueur.prototype._aDeplacement=function(){return this._vue_animation_deplacement!=null};VueInteractionsJoueur.prototype._demarerDeplacement=function(a,b){Debug.assert(!this._vue_animation_deplacement);Debug.assert(a instanceof Animation);Debug.assert(b==null||typeof b=='function');this._vue_animation_deplacement=new VueAnimation(a);this._vue_animation_deplacement.demarrer(b)};VueInteractionsJoueur.prototype._arreterDeplacement=function(){Debug.assert(this._vue_animation_deplacement instanceof VueAnimation);if(!this._vue_animation_deplacement.estTermine())this._vue_animation_deplacement.arreter();this._vue_animation_deplacement=null};VueInteractionsJoueur.prototype.allerA=function(a,b){Debug.assert(a instanceof Position);Debug.assert(b==null||typeof b=='function');var c=this._valZoneDeplacement();var d=this._valJeu().valPartie().valInventaire();var f=this._valPersonnageJoueur();var g=this._valGrapheDeplacement();var h=f.imageSceneCourante(d);var i=f.valPosition();var j=0.8;var k;var l;var n=0;do{n++;k=a.translationDe(new Vecteur(-h.valLargeur()/2*j,-h.valHauteur()*j));j=c.zoomA(k);l=k.translationDe(new Vecteur(h.valLargeur()/2*j,h.valHauteur()*j))}while(l.distanceA(a)>10&&n<4);var m=c.animationDeplacement(f,g,i,k);if(this._aDeplacement())this._arreterDeplacement();this._demarerDeplacement(m,b);return m};VueInteractionsJoueur.prototype._positionActionSur=function(a){Debug.assert(a instanceof Objet_);var b=this._valJeu();var c=b.valPartie().valInventaire();var d=a.valPosition();var f=a.imageSceneCourante(c);var g=f.valLargeur();var h=f.valHauteur();var i=this._valZoneDeplacement();if(a instanceof Personnage){var j=d.translationDe(new Vecteur(-20,h/2));if(i.contientPosition(j))return j;var j=d.translationDe(new Vecteur(g+20,h/2));if(i.contientPosition(j))return j;var j=d.translationDe(new Vecteur(g/2,-20));if(i.contientPosition(j))return j}return d.translationDe(new Vecteur(g/2,h))};VueInteractionsJoueur.prototype._dialogueCombinaisonImpossible=function(a){Debug.assert(a instanceof Objet_);var b=this._valPersonnageJoueur();var c;if(a instanceof Personnage)c=_('Je dois parler à cette personne '+'si je veux lui donner un objet.');else c=_('Ça ne marche pas.');return new Dialogue(null,[],[],null,[],'[defaut]',[new Message(null,[],[],null,[],c,b)])};VueInteractionsJoueur.prototype.realiserAction=function(a,b){Debug.assert(a instanceof Objet_);Debug.assert(!b||b instanceof Objet_);var c=this._valJeu();var d=c.valPartie().valInventaire();var f=this._positionActionSur(a);var g=a.actionRealisableAvec(b,d);if(!g&&b)g=this._dialogueCombinaisonImpossible(a);if(g){var h=new VueAction(g);var i=this.allerA(f,h.realiser.associerA(h,c))}else{Debug.erreur('VueInteractionsJoueur::realiserAction : '+'aucune action realisable.')}};function VueInteractionsScene(a,b){if(Global.estDefinition())return;Debug.assert(a instanceof Scene);Debug.assert(b instanceof Jeu);VueConteneurBase.call(this,a);this._jeu=b;this._element_map;this._vue_interactions_joueur=null;this._abonnerA(b.valInteractions());this._observateur_camera_filtre=new ObservateurCameraFiltre(b.valCamera(),this)};Global.heriter(VueInteractionsScene,VueConteneurBase);VueInteractionsScene.prototype.detacher=function(){Debug.assert(this._observateur_camera_filtre instanceof ObservateurCameraFiltre);VueConteneurBase.prototype.detacher.call(this);this._observateur_camera_filtre.detacher();var a=this._valElementMap();this._deplacementRappel.detacherDeEvenement(a,'click',this);while(a.firstChild)supprimer_noeud(a,a.firstChild)};VueInteractionsScene.prototype._valScene=function(){return this._valObservable()};VueInteractionsScene.prototype._iterateurContenus=function(){return this._valScene().iterateurJetons()};VueInteractionsScene.prototype._valJeu=function(){Debug.assert(this._jeu instanceof Jeu);return this._jeu};VueInteractionsScene.prototype._aVueInteractionsJoueur=function(){return this._vue_interactions_joueur!=null};VueInteractionsScene.prototype._valVueInteractionsJoueur=function(){Debug.assert(this._vue_interactions_joueur instanceof VueInteractionsJoueur);return this._vue_interactions_joueur};VueInteractionsScene.prototype._valElementMap=function(){if(!this._element_map){var a=document.getElementsByTagName('map');Debug.assert(a.length==1);this._element_map=a[0]}return this._element_map};VueInteractionsScene.prototype.realiserAction=function(a,b){Debug.assert(a instanceof Objet_);Debug.assert(!b||b instanceof Objet_);if(this._aVueInteractionsJoueur()){var c=this._valVueInteractionsJoueur();c.realiserAction(a,b)}else{var d=this._valJeu();var f=d.valPartie().valInventaire();var g=a.actionRealisableAvec(b,f);Debug.assert(g);new VueAction(g).realiser(d)}};VueInteractionsScene.prototype._deplacementRappel=function(a){Debug.assert(a instanceof Evenement);if(!this._aVueInteractionsJoueur())return;var b=this._valVueInteractionsJoueur();var c=a.valPosition();var d=this._valJeu().valCamera().valZoom();var f=this.valElement();var g=c.translationDe(new Vecteur(-min_x(f),-min_y(f)));b.allerA(new Position(g.valX()/d,g.valY()/d));return false};VueInteractionsScene.prototype._creerVueDe=function(a){Debug.assert(a instanceof JetonBase);var b=this._valJeu();switch(a.constructor){case Jeton:case EtatObjet:return null;case Objet_:case Personnage:return new VueInteractionsObjet(a,b,this);case PersonnageJoueur:Debug.assert(!this._vue_interactions_joueur);var c=this._valScene().valZoneDeplacement();if(c){this._vue_interactions_joueur=new VueInteractionsJoueur(a,b,this,c);return null}else{return new VueInteractionsObjet(a,b,this)}default:Debug.erreur('VueInteractionsScene::_creerVueDe : '+'type de contenu de scene inconnu')}};VueInteractionsScene.prototype._creerSousVues=function(){var a=this._iterateurContenus();var b;while(b=a.suivant())this.synchroniserAjout(b)};VueInteractionsScene.prototype.synchroniserAjout=function(a){Debug.assert(a instanceof Observable);var b=this._creerVueDe(a);if(b){var c=this._valConstructeur();var d=this._valElementMap();this._ajouterSousVue(b);c.ajouterVueA(d,b);Debug.assert(b instanceof VueInteractionsObjet);b.synchroniserZ()}};VueInteractionsScene.prototype.synchroniserSuppression=function(a){Debug.assert(a instanceof Observable);if(this._contientVueDe(a)){var b=this._recupererVueDe(a);var c=this._valElementMap();this._valConstructeur().supprimerVuDe(c,b);this._supprimerSousVue(b)}};VueInteractionsScene.prototype.synchroniser=function(){var a=this._valJeu();var b=a.valInteractions();var c=a.valPartie().valInventaire();var d=a.valCamera().tailleRelativeDe(this._valScene().rectangleCourant(c)._valTaille());var f=this.valElement();f.style.width=d.valLargeur()+'px';f.style.height=d.valHauteur()+'px';if(b.sontBloquees()){f.style.visibility='hidden'}else{f.style.visibility=''}};VueInteractionsScene.prototype._creerElement=function(){Debug.assert(!this._element);var a=this._valConstructeur();var b=this._valElementMap();var c=a.creerElementRacine('img',{'id':'interactions_scene','src':'/@@/cyriacrea.aventure/images/transparent.gif','useMap':'#'+b.name});this._deplacementRappel.attacherAEvenement(b,'click',this);return c};function VueCamera(a,b){if(Global.estDefinition())return;Debug.assert(a instanceof Camera);Debug.assert(b);VueTransitoire.call(this,a);this._abonnerA(a);this._element_scene=b};Global.heriter(VueCamera,VueTransitoire);VueCamera.prototype._valCamera=function(){return this._valObservable()};VueCamera.prototype._valElementScene=function(){Debug.assert(this._element_scene);return this._element_scene};VueCamera.prototype.synchroniser=function(){var a=this._valCamera();var b=a.positionRelativeDe(a.valRectangle()._valOrigine());var c=this._valElementScene();window.setTimeout(function(){c.scrollLeft=b.valX();c.scrollTop=b.valY()},10)};function VueContenuInventaire(a,b){if(Global.estDefinition())return;Debug.assert(a instanceof Objet_);Debug.assert(b instanceof Jeu);Vue.call(this,a);this._jeu=b};Global.heriter(VueContenuInventaire,Vue);VueContenuInventaire.prototype._valObjet=function(){return this._valObservable()};VueContenuInventaire.prototype._valJeu=function(){Debug.assert(this._jeu instanceof Jeu);return this._jeu};VueContenuInventaire.prototype._actionRappel=function(a){Debug.assert(a instanceof Evenement);var b=this._valObjet();var c=this._valJeu();var d=new DeplacementObjet(b,c);d.commencer(a);return false};VueContenuInventaire.prototype._creerElement=function(){Debug.assert(!this._element);var a=this._valConstructeur();var b=this._valObjet();var c=this._valJeu();var d=c.valPartie().valInventaire();var f=1.0;var g=b.iterateurImagesInventaire().suivant();var h=a.creerElementRacine('a',{'href':'#','onclick':this._actionRappel.associerA(this)});var i=a.ajouterElementA(h,'img',{'src':g.valUrlMiniature(f)});return h};function VueInventaire(a,b){if(Global.estDefinition())return;Debug.assert(a instanceof Inventaire);Debug.assert(b instanceof Jeu);VueListe.call(this,a);this._jeu=b};Global.heriter(VueInventaire,VueListe);VueInventaire.prototype._valInventaire=function(){return this._valObservable()};VueInventaire.prototype._valJeu=function(){Debug.assert(this._jeu instanceof Jeu);return this._jeu};VueInventaire.prototype._iterateurContenus=function(){return this._valInventaire().iterateurJetons()};VueInventaire.prototype._creerVueDe=function(a){Debug.assert(a instanceof JetonBase);switch(a.constructor){case Jeton:case EtatObjet:return null;case Objet_:var b=this._valJeu();return new VueContenuInventaire(a,b);default:Debug.erreur('VueInventaire::_creerVueDe : '+'type de contenu d\'inventaire inconnu')}};VueInventaire.prototype._creerElement=function(){Debug.assert(!this._element);var a=VueListe.prototype._creerElement.call(this);a.className+=' inventaire';return a};function VueSceneOptionnelle(a){if(Global.estDefinition())return;Debug.assert(a instanceof Jeu);Vue.call(this,a.valPartie());this._jeu=a;this._vue_scene=null;this._vue_interactions_scene=null};Global.heriter(VueSceneOptionnelle,Vue);VueSceneOptionnelle.prototype._valPartie=function(){return this._valObservable()};VueSceneOptionnelle.prototype._valJeu=function(){Debug.assert(this._jeu instanceof Jeu);return this._jeu};VueSceneOptionnelle.prototype.detacher=function(){Vue.prototype.detacher.call(this);if(this._vue_scene){Debug.assert(this._vue_interactions_scene);this._vue_scene.detacher();this._vue_interactions_scene.detacher()}};VueSceneOptionnelle.prototype.synchroniser=function(){var a=this._valConstructeur();var b=this.valElement();var c=this._vue_scene;var d=this._vue_interactions_scene;if(c){Debug.assert(d);this._valConstructeur().supprimerVueDe(b,c);c.detacher();this._valConstructeur().supprimerVueDe(b,d);d.detacher();this._vue_scene=null;this._vue_interactions_scene=null;window.vue_scene=null;window.vue_interactions_scene=null}var f=this._valPartie();var g=f.valChangementScene();if(g){var h=g.valScene();var i=this._valJeu();var j=i.valPartie().valInventaire();var k=i.valInteractions();var l=i.valCamera();c=new VueScene(h,j,l);a.ajouterVueA(b,c);d=new VueInteractionsScene(h,i);a.ajouterVueA(b,d);this._vue_scene=c;this._vue_interactions_scene=d;window.vue_scene=c;window.vue_interactions_scene=d}};VueSceneOptionnelle.prototype._creerElement=function(){Debug.assert(!this._element);return this._valConstructeur().creerElementRacine('div')};function VueJeu(a){if(Global.estDefinition())return;Debug.assert(a instanceof Jeu);VueMaitre.call(this,a);this._interactions_sont_bloquees=false;this._element_masque=null;this._abonnerA(a.valInteractions());this._abonnerA(a.valCamera())};Global.heriter(VueJeu,VueMaitre);VueJeu.prototype._valJeu=function(){return this._valObservable()};VueJeu.prototype.synchroniser=function(){var a=this._valJeu().valInteractions();element_masque=this._element_masque;if(element_masque)supprimer_noeud(element_masque.parentNode,element_masque);if(a.sontBloquees()){var b=this._valConstructeur();if(a.aRappel()){var c=b.ajouterElementA(this.valElement(),'a',{'href':'#','onclick':a.valRappel()})}else{var c=b.ajouterElementA(this.valElement(),'div')}c.id='masque';this._element_masque=c}else{this._element_masque=null}};VueJeu.prototype.synchroniserDeplacement=function(){};VueJeu.prototype.synchroniserZoom=function(){var a=this._valJeu().valCamera();var b=this.valElement();b.className=(b.className.replace(/\s*zoom\S+/g,'')+' zoom'+(1/a.valZoom()))};VueJeu.prototype._creerElement=function(){Debug.assert(!this._element);var a=this._valJeu();var b=a.valPartie().valInventaire();var c=a.valCamera();var d=a.valDialogueCourant();var f=this._valConstructeur();var g=f.creerElementRacine('div',{'id':'jeu'});var h=new VueInventaire(b,a);f.ajouterVueA(g,h);this._ajouterSousVue(h);var i=f.ajouterElementA(g,'div',{'id':'cadre_scene'});var j=new VueCamera(c,i);this._ajouterSousVue(j);setTimeout(c._notifierSignal.associerA(c,'deplacement'),10);setTimeout(c._notifierSignal.associerA(c,'zoom'),10);var k=new VueSceneOptionnelle(a);this._ajouterSousVue(k);f.ajouterVueA(i,k);var l=new VueMessageCourant(d,a,this);this._ajouterSousVue(l);f.ajouterVueA(i,l);var n=new VueGroupeQuestionsCourant(d,a,this);this._ajouterSousVue(n);f.ajouterVueA(g,n);Evenement.desactiverSelection(g);return g};function DeplacementObjet(a,b){if(Global.estDefinition())return;Debug.assert(a instanceof Objet_);Debug.assert(b instanceof Jeu);Vue.call(this,a);this._jeu=b};Global.heriter(DeplacementObjet,DeplacementBase);DeplacementObjet.prototype._valObjet=function(){return this._valObservable()};DeplacementObjet.prototype._valJeu=function(){Debug.assert(this._jeu instanceof Jeu);return this._jeu};DeplacementObjet.prototype._creerElement=function(){Debug.assert(!this._element);var a=this._valConstructeur();var b=this._valObjet();var c=this._valJeu();var d=c.valPartie().valInventaire();var f=1.0;var g=b.iterateurImagesInventaire().suivant();var h=a.creerElementRacine('a',{'id':'deplacement','href':'#'});h.style.position='absolute';a.ajouterElementA(h,'img',{'src':g.valUrlMiniature(f)});return h};DeplacementObjet.prototype._objetSurvoleAvecInteractions=function(a){Debug.assert(a instanceof Evenement);var b=this._valObjet();var c=this._valJeu().valPartie().valInventaire();Debug.assert(window.vue_scene instanceof VueScene);var d=window.vue_scene;var f=null;var g=d.iterateurVuesObjets();var h;while(h=g.suivant()){var i=h.valElement();if(!i||!a.survole(i))continue;var j=h._valObjet();if(j.aInteractions()&&(!f||j.valZ()>f.valZ())){f=j}}return f};DeplacementObjet.prototype._terminer=function(a){Debug.assert(a instanceof Evenement);DeplacementBase.prototype._terminer.call(this,a);Debug.assert(window.vue_interactions_scene instanceof VueInteractionsScene);var b=window.vue_interactions_scene;var c=this._objetSurvoleAvecInteractions(a);if(c){var d=this._valObjet();b.realiserAction(c,d)}return false};