
var fhClasse={creer:function(proto){var shClasse=function(){if((this.initialise)&&(arguments.callee.caller!=fhClasse.etendre)){this.__classe__=arguments.callee.prototype;fhObjet.etendre(this,{SUPER:function(){var methode=fhClasse.recupMethode(this.__classe__,arguments);fhClasse.appeleSuper(this.__super__,this,methode,arguments);}});this.initialise.apply(this,arguments);}};shClasse.prototype=proto||{};shClasse.etendre=fhClasse.etendre;return shClasse;},etendre:function(subobj){var subproto=new this;fhObjet.etendre(subproto,subobj);subproto.__super__=this.prototype;return fhClasse.creer(subproto);},recupMethode:function(shClasse,args){var c=args.callee.caller;for(var methode in shClasse)if(shClasse[methode]==c)return methode;return null;},appeleSuper:function(superclasse,self,methode,args){if(superclasse&&superclasse[methode]){var __classe__=self.__classe__;self.__classe__=superclasse;self.__super__=superclasse.__super__;try{superclasse[methode].apply(self,args);}catch(e){}finally{self.__classe__=__classe__;self.__super__=superclasse;}}}};