From: =?Windows-1252?Q?Enregistr=E9_par_Windows_Internet_Explorer=A07?= Subject: =?Windows-1252?Q?Mus=E9um_d'histoire_naturelle_-_Neuch=E2tel?= Date: Fri, 11 Jul 2008 09:13:48 +0200 MIME-Version: 1.0 Content-Type: multipart/related; type="text/html"; boundary="----=_NextPart_000_00C1_01C8E336.6DBBC320" X-MimeOLE: Produced By Microsoft MimeOLE V6.0.6000.16545 This is a multi-part message in MIME format. ------=_NextPart_000_00C1_01C8E336.6DBBC320 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.museum-neuchatel.ch/new/navigation.php?cat=5&subcat=18&pageid=4 Mus=E9um d'histoire naturelle - Neuch=E2tel
3D""=20
3D""=20
3D""=20       3D""=20

Au fil de l=92exposition

1. L=92esprit du temps

Chaud devant, froid derri=E8re !

2. Agassiz, pionnier de la=20 glaciologie

Louis Agassiz, zoologiste, pal=E9ontologiste, glaciologue: un = des plus=20 grands savants du XIXe si=E8cle
Louis-Jean-Rodolphe Agassiz est n=E9 = =E0 M=F4tier=20 (Fribourg) en 1807, et mort =E0 Cambridge (Massachusetts, USA) en=20 1873.

Tr=E8s t=F4t passionn=E9 par l=92histoire naturelle, il =E9tudie les = poissons en=20 Allemagne, puis =E0 Paris. Nomm=E9 professeur =E0 Neuch=E2tel en 1832, = il y fonde, avec=20 Louis Coulon, le Mus=E9e d=92histoire naturelle et se fait remarquer du = monde=20 scientifique par une activit=E9 hors du commun. En 14 ans, il publie = plus de 20=20 ouvrages fondamentaux, illustr=E9s de plus de 2=92000 planches d=92une = qualit=E9=20 extraordinaire, sur les poissons actuels et fossiles, les oursins, les=20 mollusques, les glaciers, et fait de Neuch=E2tel un centre scientifique = europ=E9en.=20

Son nom reste li=E9 aux =E9tudes men=E9es sur le glacier de = l=92Unteraar dans les=20 ann=E9es 1840 et =E0 la notion d=92 =AB =E2ge glaciaire =BB. Sa prise de = position en faveur=20 de la th=E9orie glaciaire fait pencher la balance dans la controverse = qui fait=20 rage alors dans le monde scientifique.

En 1846, il quitte l=92Europe pour les Etats-Unis o=F9 il gagne une = popularit=E9=20 extraordinaire. Professeur =E0 Harvard, il fonde le Museum of = Comparative Zoology=20 de Cambridge, l=92un des plus grands mus=E9es d=92histoire naturelle. = Partisan de la=20 th=E9orie des cr=E9ations successives, il devient le principal = contradicteur de=20 Darwin et voit son influence diminuer vers la fin de sa vie. Reconnu = aujourd=92hui=20 surtout pour son r=F4le dans l=92affirmation de la science am=E9ricaine, = Agassiz=20 demeure l=92un des plus grands savants du XIXe si=E8cle.

M=E9moire d'outre glace, un film inachev=E9 de C=E9lestin=20 Quartier-Dumittan

Cette vid=E9o endommag=E9e a =E9t=E9 retrouv=E9e en ao=FBt 2006 dans = une cam=E9ra=20 abandonn=E9e sur le glacier de l=92Unteraar (Suisse). =8Cuvre d=92un = amateur passionn=E9,=20 elle est projet=E9e telle qu=92elle, en hommage =E0 la m=E9moire de son = auteur, C=E9lestin=20 Quartier-Dumittan. Parti de Neuch=E2tel en solitaire pour r=E9aliser un = film =E0 la=20 gloire de Louis Agassiz et de ses recherches sur les glaciers, il a = disparu sur=20 le glacier de l=92Unteraar durant le tournage de son film. Toutes les = recherches=20 pour le retrouver sont rest=E9es vaines. Nous pr=E9sentons ici les = images brutes de=20 cette vid=E9o, ayant en effet renonc=E9 =E0 faire un montage de ce = document=20 =E9mouvant.

3. Du D=E9luge aux glaciers, ou Louis Agassiz = et l=92=E8re=20 glaciaire

Pics sourcilleux, pr=E9cipices affreux et glaciers sublimes

=AB Autrefois il n=92y avait gu=E8re que les gens du pays ou quelques = pauvres=20 voyageurs venant d=92Italie par le glacier du Gries qui traversaient le = col du=20 Grimsel ; mais de nos jours o=F9 tout le monde =E9prouve le besoin de = faire son tour=20 de Suisse et de courir de grands dangers au bord d=92affreux = pr=E9cipices, le=20 Grimsel est devenu une station tr=E8s-fr=E9quent=E9e [=85] =BB

E. Desor Excursions et s=E9jours dans les glaciers et les hautes = r=E9gions des=20

Alpes, de M. Agassiz et de ses compagnons de voyage (1844)

Pendant des si=E8cles, les Alpes ont terroris=E9 les voyageurs. Mais = dans la=20 premi=E8re moiti=E9 du XIXe si=E8cle, le Romantisme leur conf=E8re un = attrait nouveau.=20 De plus en plus nombreux, les touristes viennent visiter les vall=E9es = suisses=20 pour y go=FBter le frisson des hauteurs.

D=E9sormais, la montagne fascine les =E9lites cosmopolites de = l=92Europe enti=E8re.=20 Un m=E9lange subtil, fait de nature hostile, immacul=E9e et = myst=E9rieuse, de beaut=E9=20 sublime et d=92un soup=E7on d=92effroi, draine vers les cimes = =E9crivains, peintres et=20 dilettantes.

Les savants ne sont pas en reste: suite =E0 la publication des = Voyages dans les=20 Alpes du Genevois Horace-B=E9n=E9dict de Saussure (1779), naturalistes, = botanistes,=20 g=E9ologues parcourent les Alpes et publient leurs observations. Le = Soleurois=20 Franz Josef Hugi (1791-1855) est l=92un des premiers =E0 =E9tudier et = =E0 mesurer les=20 glaciers.

=95 La question des blocs erratiques. Des blocs =E9tranges :=20 diluvianistes & cie

=AB Les granites ne se forment pas dans la terre comme des truffes, = et ne=20 croissent pas comme des sapins sur les roches calcaires. =BB

H.-B. de Saussure Voyages dans les Alpes (1779)

La pr=E9sence de blocs =E9normes de roches granitiques dans le Jura = calcaire a=20 depuis longtemps intrigu=E9 les savants. Comment expliquer leur = pr=E9sence si loin=20 des Alpes ? Quelle force extraordinaire a pu les transporter sur de = telles=20 distances, leur faisant m=EAme remonter des pentes ?

Aussi surprenant que cela puisse para=EEtre aujourd=92hui, c=92est = dans le r=E9cit=20 biblique du D=E9luge que de Saussure et les plus grands g=E9ologues de = l=92=E9poque ont=20 cherch=E9 la solution de cette =E9nigme (c=92est pourquoi les blocs = erratiques ont=20 longtemps =E9t=E9 qualifi=E9s de =AB mat=E9riel diluvien =BB - du mot = latin diluvium : le=20 d=E9luge). Pour eux, c=92=E9taient les vagues =E9normes du D=E9luge = biblique qui avaient=20 entra=EEn=E9 les blocs de granit loin des Alpes. Leopold von Buch avait = m=EAme calcul=E9=20 la force de courant n=E9cessaire =E0 un flot de boue pour faire remonter = les pentes=20 du Jura =E0 des blocs pesant des milliers de tonnes.

Le transport par des radeaux de glace, des d=E9b=E2cles gigantesques, = des=20 explosions de gaz projetant les blocs =E0 des centaines de kilom=E8tres, = ont aussi=20 =E9t=E9 avanc=E9s comme causes possibles de la dispersion du mat=E9riel = erratique. Ces=20 th=E9ories un peu folles n=92=E9taient gu=E8re fond=E9es sur des = observations de terrain :=20 il s=92agissait plut=F4t de sp=E9culations de cabinet. Elles ont = pourtant =E9t=E9=20 d=E9fendues jusque dans les ann=E9es 1850.

=95 La question des blocs erratiques : les pionniers de la = th=E9orie=20 glaciaire

=AB Les glaciers de nos montagnes ont eu jadis une bien plus grande = extension=20 qu=92aujourd=92hui. Toute notre vall=E9e, jusqu=92=E0 une grande hauteur = au-dessus de la=20 Drance (torrent de la vall=E9e), a =E9t=E9 occup=E9e par un vaste = glacier, qui se=20 prolongeait jusqu'=E0 Martigny, comme le prouvent les blocs de roches = qu=92on trouve=20 dans les environs de cette ville et qui sont trop gros pour que l=92eau = ait pu les=20 y amener. =BB

Jean-Pierre Perraudin, propos tenus en 1815, relat=E9s par Jean de=20 Charpentier

On consid=E8re souvent Louis Agassiz comme le =AB p=E8re =BB de la = th=E9orie glaciaire.=20 En r=E9alit=E9, il en est surtout le propagateur, car il s=92est = appuy=E9 sur les=20 travaux de pr=E9d=E9cesseurs demeur=E9s dans l=92ombre. A qui revient la = paternit=E9 de=20 l=92id=E9e du transport et de la dispersion des blocs erratiques par les = glaciers ?=20

Il est bien difficile de r=E9pondre pr=E9cis=E9ment =E0 cette = question. Sur la base=20 de ses observations personnelles, Jean-Pierre Perraudin, un paysan de = Lourtier=20 (Valais), =E9tait arriv=E9 seul =E0 la conclusion que les glaciers = avaient occup=E9=20 autrefois toute la Vall=E9e de Bagnes. En 1815, il expose ses vues =E0 = l=92ing=E9nieur=20 Ignaz Venetz, puis au g=E9ologue Jean de Charpentier, qui =E9crit alors: = =AB =85 je=20 trouvais son hypoth=E8se si extraordinaire, si extravagante m=EAme, que = je ne jugeai=20 pas qu=92elle val=FBt la peine d=92=EAtre m=E9dit=E9e et prise en = consid=E9ration. =BB.

Ignaz Venetz fournit, dans son M=E9moire sur les variations de la = temp=E9rature=20 dans les Alpes suisses (r=E9dig=E9 en 1821 mais publi=E9 en 1833 = seulement), de=20 nombreuses preuves que les glaciers avaient connu une extension bien = plus grande=20 au cours des si=E8cles pr=E9c=E9dents. Recueillies dans tout le Valais, = ses=20 observations minutieuses incit=E8rent son ami Charpentier =E0 =E9tudier = =E0 son tour le=20 mat=E9riel erratique jusque dans le Jura afin de convaincre Venetz de = son erreur.=20 Ses observations eurent l=92effet contraire : elles l=92amen=E8rent =E0 = se rallier =E0 la=20 th=E8se glaciaire. Les remarquables observations de Charpentier sont = r=E9unies dans=20 son Essai sur les glaciers et sur le terrain erratique du bassin du = Rh=F4ne=20 (1841). Venetz et Charpentier sont actuellement consid=E9r=E9s comme les = v=E9ritables=20 p=E8res de la th=E9orie glaciaire.

D=92autres savants avaient d=E9j=E0 =E9mis des id=E9es similaires = auparavant : le=20 Bernois Bernhard-Friedrich Kuhn avait publi=E9 en 1787 la premi=E8re = =E9tude traitant=20 du transport des blocs de rochers par les glaciers ; l=92Ecossais James = Hutton=20 avait =E9nonc=E9 succinctement l=92hypoth=E8se glaciaire dans un ouvrage = paru en 1795 ;=20 son compatriote John Playfair, en 1802, avait d=E9crit le pouvoir de = transport des=20 glaciers ; Jens Esmark, en 1824, avait attribu=E9 aux glaciers la = dispersion des=20 blocs erratiques dans toute la Norv=E8ge ; le po=E8te Goethe lui-m=EAme, = en 1829,=20 avait =E9voqu=E9 l=92hypoth=E8se du transport glaciaire. Ces travaux = n=92avaient pourtant=20 rencontr=E9 que peu d=92=E9cho =E0 leur publication.

=95 Le Discours sur les glaciers, texte visionnaire ou tissu = d=92erreurs=20 ?

=AB Depuis que j=92ai vu les glaciers, je suis d=92une humeur tout = =E0 fait neigeuse=20 ; je veux que toute la surface de la terre ait =E9t=E9 couverte de glace = et que=20 toutes les cr=E9ations qui ont pr=E9c=E9d=E9 la n=F4tre soient mortes de = froid. En effet=20 je suis enti=E8rement convaincu que tous les derniers changements, = survenus =E0 la=20 surface de l=92Europe, doivent =EAtre attribu=E9s =E0 l=92action de la = glace. =BB

Louis Agassiz, lettre au savant anglais Buckland, 1838

Convaincu par Charpentier du bien-fond=E9 de la th=E8se glaciaire, = Louis Agassiz=20 met tout son poids dans la bataille pour la faire triompher.

Devant l=92assembl=E9e de la Soci=E9t=E9 helv=E9tique des Sciences = naturelles r=E9unie =E0=20 Neuch=E2tel en 1837, il prononce le fameux Discours sur les glaciers, = qui provoque=20 un v=E9ritable toll=E9 parmi ses coll=E8gues et est parfois = consid=E9r=E9 =96 =E0 tort =96 comme=20 le point de d=E9part de la th=E9orie glaciaire.

En 1836, jeune savant d=E9j=E0 c=E9l=E8bre pour ses travaux = zoologiques et=20 pal=E9ontologiques, Agassiz avait pass=E9 plusieurs mois =E0 Bex, o=F9 = Charpentier lui=20 avait montr=E9 sur le terrain les traces du passage des glaciers.

S=92appuyant sur les travaux de Venetz et de Charpentier, qu=92il = enrichit par=20 des observations personnelles, Agassiz conf=E8re =E0 la th=E8se = glaciaire une=20 dimension plan=E9taire. Empruntant =E0 son ami Karl Schimper = l=92expression d=92=AB =E2ge=20 glaciaire =BB, il affirme qu=92une =E9norme calotte de glace a recouvert = jadis une=20 grande partie de l=92Europe et de l=92Am=E9rique du Nord. Il se trompe = en pla=E7ant cet=20 =AB =E2ge glaciaire =BB avant l=92=E9l=E9vation des Alpes : selon lui, = les blocs erratiques=20 seraient parvenus jusqu=92au Jura en glissant sur les pentes glac=E9es = des Alpes en=20 formation, une id=E9e vivement combattue par Charpentier.

Ses affirmations sont tr=E8s mal re=E7ues par la communaut=E9 = scientifique : =E0=20 l=92=E9poque, on =E9tait convaincu que dans les p=E9riodes g=E9ologiques = anciennes, la=20 Terre avait toujours connu un climat plus chaud. Piqu=E9 au vif, Agassiz = d=E9cide de=20 lancer une =E9tude approfondie des glaciers actuels, afin de confondre = ses=20 adversaires.

=95 Recherches sur les glaciers : le glacier de l=92Unteraar = et l=92=ABH=F4tel=20 des Neuch=E2telois=BB

=AB Depuis 60 heures il ne cesse de neiger autour de nous ; la = temp=E9rature de=20 l=92air ne s=92est pas =E9lev=E9e au-dessus de +1=B0C depuis deux jours = et la nuit nous=20 avons =964=B0C. Nous sommes tous ensevelis dans le foin sous notre tente = et c=92est =E0=20 peine si je puis tenir la plume pour vous rendre compte des observations = de la=20 derni=E8re quinzaine=85 =BB

Carl Vogt et Louis Agassiz, brouillon de lettre =E9crite depuis = l=92=AB H=F4tel des=20 Neuch=E2telois =BB

En ao=FBt 1840, sous la direction de Louis Agassiz, une =E9quipe de = six jeunes=20 savants s=92installe sur la moraine m=E9diane du glacier de = l=92Unteraar, dans la=20 r=E9gion du Grimsel. Sous la saillie d=92un =E9norme bloc de schiste = micac=E9, ils=20 am=E9nagent un abri de fortune, baptis=E9 par d=E9rision l=92 =AB = H=F4tel des Neuch=E2telois=20 =BB. Jusqu=92en 1845, les campagnes se succ=E9deront durant les mois = d=92=E9t=E9 =96 et=20 parfois m=EAme en hiver - dans cette entreprise scientifique qui n=92a = pas=20 d=92=E9quivalent pour l=92=E9poque. Dans des conditions souvent tr=E8s = difficiles, un=20 impressionnant programme d=92=E9tude est r=E9alis=E9.

Entre 1838 et 1845, Agassiz et ses compagnons sillonnent les Alpes,=20 multipliant observations, mesures et exp=E9riences diverses. Le glacier = de=20 l=92Unteraar devient rapidement le centre des recherches glaciologiques. = L=92enthousiasme contagieux et l=92extraordinaire sens de la = communication=20 d=92Agassiz, la nouveaut=E9 d=92un tel travail collectif, font de = l=92H=F4tel des=20 Neuch=E2telois un p=F4le d=92attraction pour les savants =E9trangers, = visit=E9 aussi par=20 les simples touristes.

Aux c=F4t=E9s de Louis Agassiz, ses camarades Edouard Desor, Carl = Vogt, C=E9lestin=20 Nicolet, Arnold Guyot et bien d=92autres prennent part aux recherches, = accompagn=E9s=20 par les artistes Jacob Bourckhardt et Joseph Bettanier. Les sujets = d=92=E9tude ne=20 manquent pas : formation et structure de la glace, variations de la = temp=E9rature,=20 =E9paisseur et mouvements du glacier, circulation de l=92eau, moraines, = blocs, et=20 m=EAme flore et faune microscopique du glacier. De cette importante = moisson=20 scientifique naissent d=92innombrables publications dont deux ouvrages = majeurs=20 accompagn=E9s de planches splendides, les Etudes sur les glaciers (1840) = et le=20 Syst=E8me glaciaire (1847).

=95 Louis Agassiz, proph=E8te de la = science

=AB Ainsi, l=92=E9poque de grand froid qui a pr=E9c=E9d=E9 la = cr=E9ation actuelle, n=92a =E9t=E9=20 qu=92une oscillation passag=E8re de la temp=E9rature du globe=85 Elle a = accompagn=E9 la=20 disparition des animaux de l=92=E9poque diluvienne des g=E9ologues, = comme les=20 Mammouths de Sib=E9rie l=92attestent encore, et pr=E9c=E9d=E9 le = soul=E8vement des Alpes et=20 l=92apparition des =EAtres vivant de nos jours=85 =BB

Louis Agassiz Discours sur les glaciers, 1837

Pour Agassiz, l=92=E2ge glaciaire a provoqu=E9 l=92extinction de = toutes les esp=E8ces=20 vivantes. Raclant la Terre jusqu=92au roc, les glaciers ont =E9t=E9 =AB = la charrue de=20 Dieu =BB : ils ont fait place nette pour une Cr=E9ation nouvelle =96 et = pour=20 l=92av=E8nement du r=E8gne de l=92Homme.

Partisan du =AB catastrophisme =BB de l=92illustre Georges Cuvier, = Agassiz=20 consid=E8re que les ruptures observ=E9es dans les s=E9ries g=E9ologiques = r=E9sultent de=20 cataclysmes plan=E9taires : l=92histoire de la Terre a =E9t=E9 rythm=E9e = par des=20 successions de catastrophes, qui ont ouvert =E0 chaque fois la voie =E0 = de nouvelles=20 Cr=E9ations. Avec l=92=AB =E2ge glaciaire =BB, la science du 19e = si=E8cle tient donc enfin=20 la cause concr=E8te de la derni=E8re catastrophe =96 celle qui a = pr=E9c=E9d=E9 la Cr=E9ation=20 actuelle et l=92av=E8nement du couronnement de l=92=9Cuvre de Dieu : = l=92Homme.

Les recherches glaciaires d=92Agassiz s=92inscrivent dans une = production=20 scientifique tourn=E9e toute enti=E8re vers la mise en =E9vidence d=92un = Plan divin dans=20 l=92histoire de la nature. Par ses recherches d=92embryologie, de = zoologie et de=20 pal=E9ontologie, Agassiz s=92est attach=E9 =E0 montrer que la succession = des esp=E8ces=20 r=E9pondait =E0 une progression r=E9guli=E8re, dont l=92ordre avait = =E9t=E9 d=E9fini par Dieu au=20 commencement des temps. Pour lui, la science naturelle permettait ainsi, = mieux=20 encore que l=92=E9tude de la Bible, de toucher =E0 la R=E9v=E9lation = divine. Et dans le=20 d=E9chiffrement du =AB Grand Livre de la Nature =BB, Agassiz se tenait = pour un=20 proph=E8te =96 le proph=E8te de la science.

Aux Etats-Unis, o=F9 il s=92=E9tablit en 1846, ce message sera re=E7u = avec=20 enthousiasme : au pays des pionniers puritains, Agassiz r=E9concilie les = valeurs=20 de la science avec les exigences de la religion. S=92affirmant comme le = patron de=20 la science am=E9ricaine, Agassiz y devient aussi le principal = contradicteur de=20 Darwin. Sous de nombreux aspects pourtant, ses travaux anticipaient la = th=E9orie=20 de l=92=E9volution.

Aujourd=92hui, le triomphe du darwinisme a rel=E9gu=E9 Agassiz dans = les oubliettes=20 de l=92histoire. De plus, sa renomm=E9e a beaucoup souffert de la = caution=20 scientifique qu=92il a voulu apporter au syst=E8me esclavagiste. = N=E9anmoins, par ses=20 travaux comme par son engagement pour la promotion de la science, = Agassiz=20 demeure l=92un des plus grands savants du 19e si=E8cle.

Un savant s=E9ducteur, Louis Agassiz (1807-1873) proph=E8te de la = science

Une nouvelle biographie par Marc-Antoine Kaeser est publi=E9e aux = Editions de=20 l=92Aire =E0 l=92occasion de l=92exposition.

4. Comprendre les glaciers

Bases scientifiques de la glaciologie

=95 Comment se forment les glaciers = ?=20
De neige en glace

Comment la neige, si volatile et l=E9g=E8re, peut-elle se = transformer en=20 glace ? Tout simplement par compaction, =E0 condition qu=92il fasse = assez froid l=E0=20 o=F9 elle peut s=92accumuler, sur les pentes et cirques d=92altitude (ou = aux p=F4les),=20 et se tasser sous son propre poids. La structure de la neige change, les = cristaux de neige se transforment en cristaux de glace qui deviennent de = plus en=20 plus gros avec le tassement. L=92alternance gel-d=E9gel favorise la = transformation:=20 en fondant la neige passe par l=92=E9tat liquide et recristallise en=20 glace.

Dans des conditions favorables, la glace va donc s=92accumuler en = amont, avant=20 de se mettre =E0 avancer, par simple gravit=E9, du fait de la pente. La = vitesse du=20 mouvement est fonction de l=92alimentation, de la pente, de la nature du = fond=20 (moraine ou roche) et des conditions climatiques. La vitesse de = d=E9placement est=20 plus rapide en =E9t=E9, car la pr=E9sence d=92eau de fonte acc=E9l=E8re = le mouvement en=20 servant de lubrifiant.

=95 Un glacier est-il un fleuve de glace ?=20

Qualifier un glacier de fleuve de glace est s=FBrement un peu = abusif,=20 et pourtant il avance ! S=E9racs, crevasses et moraines m=E9dianes sont = les preuves=20 visibles, sur le glacier lui-m=EAme, de ce mouvement lent mais=20 incessant.

La vitesse de d=E9placement atteint en g=E9n=E9ral quelques = centim=E8tres =E0 quelques=20 dizaines de centim=E8tres par jour, m=EAme si certains glaciers peuvent = avancer=20 quotidiennement de plusieurs m=E8tres. Le glacier Kangerlussuaq au = Groenland bat=20 tous les records avec une vitesse de 40 m=E8tres par jour, soit environ = 14=20 kilom=E8tres par an !

Le poids de la glace provoque, sous le glacier, une surpression et = une fonte=20 partielle au contact avec la roche ou la moraine de fond: cette couche = d=92eau=20 favorise le glissement du glacier sur le fond rocheux. La glace = n=92=E9tant pas un=20 liquide, ni une plaque rigide, mais une mati=E8re visqueuse, les = changements de=20 pente ou de direction provoquent la formation de fissures l=E0 ou les = tensions=20 sont tr=E8s grandes.

La dynamique globale du glacier est une question d=92=E9quilibre = entre=20 accumulation des pr=E9cipitations neigeuses dans la partie amont et = =E9vaporation et=20 fonte dans la partie aval.

=95 Pourquoi la glace des glaciers est-elle = parfois=20 bleue, parfois blanche ?

La couleur de la glace d=E9pend de la proportion d=92air = qu=92elle=20 contient. Lorsqu=92elle se forme =E0 partir de la neige, la glace est = blanche car=20 elle contient beaucoup d=92air. Dans un glacier, la teneur en air = diminue=20 continuellement et la glace devient bleue, puis transparente. =

Dans les glaciers, la couleur de la glace d=E9pend en premier lieu du = poids de=20 glace ou de neige qui la recouvre. La teneur en air diminue = continuellement au=20 cours de la transformation de la neige en glace. La neige fra=EEchement = tomb=E9e est=20 constitu=E9e d=92un empilement l=E2che de cristaux s=E9par=E9s par de = l=92air. Une nouvelle=20 chute de neige tasse l=92ancienne couche et en expulse une partie de = l=92air.

La neige poudreuse contient 90% d=92air, alors que la glace de = glacier n=92en=20 contient plus en moyenne que 2%. Les n=E9v=E9s =96 =E9tape = interm=E9diaire dans la=20 formation de la glace - en contiennent entre 50 et 80%.

Souvent la glace des glaciers est stratifi=E9e, des bandes blanches = alternent=20 avec de bandes bleu- verd=E2tre. Cette stratification est li=E9e aux = saisons. La=20 glace peu dense, avec beaucoup de bulles et de couleur blanche, se forme = en=20 hiver. La glace bleu-verd=E2tre par contre est plus dense, contient = moins d=92air et=20 se forme en =E9t=E9, quand l=92alternance gel-d=E9gel =E0 temp=E9rature = =E9lev=E9e diminue les=20 bulles d=92air.

La glace d=92un lac gel=E9 a un aspect tr=E8s diff=E9rent. L=92eau ne = contenant=20 pratiquement pas d=92air, la glace qui se forme est transparente comme = une plaque=20 d e verre. L=92eau qu=92elle recouvre peut para=EEtre sombre et m=EAme = parfois=20 pratiquement noire.

=95 N=92y a-t-il des glaciers que sur les = montagnes ?=20

Il faut monter jusqu=92=E0 2700m au moins dans les Alpes pour = que des=20 glaciers puissent se former. Mais plus on s=92approche des p=F4les, plus = on trouve=20 des glaciers =E0 basse altitude. Ils peuvent exister jusqu=92au niveau = de la mer si=20 les conditions de temp=E9rature et de pr=E9cipitations le = permettent.

Deux grands types de glaciers existent :

les glaciers alpins. Leur morphologie est d=E9pendante du relief. Ils = occupent=20 des sortes de =AB pi=E8ges =E0 glace =BB comme le fond d=92une vall=E9e = (glacier de vall=E9e),=20 le fond d=92un cirque rocheux (glacier de cirque) ou la partie sommitale = du flanc=20 ombrag=E9 d=92une montagne, le plus souvent en versant nord (glacier = suspendu).=20 Arriv=E9 en terrain libre, un glacier de vall=E9e s=92=E9largit et forme = un lobe parsem=E9=20 de crevasses (glacier de pi=E9mont).

les glaciers continentaux. De tr=E8s grande =E9tendue et de forte = =E9paisseur, ces=20 immenses amas de glace recouvrent le terrain quel que soit le relief et=20 pr=E9sentent une surface bomb=E9e. On distingue les calottes glaciaires = dont=20 l=92=E9tendue est inf=E9rieure =E0 50'000 km2 et les inlandsis (plus de = 50'000 km2). Il=20 n=92existe que deux inlandsis sur Terre, celui de l=92Antarctique et = celui du=20 Groenland.

=95 Y a-t-il des glaciers dans le Jura ? =

Les derniers glaciers ont disparu de la cha=EEne jurassienne = il y a=20 environ 10=92000 ans. Par contre, on rencontre encore localement de la = glace dans=20 le sol (perg=E9lisol) et l=92environnement souterrain = (glaci=E8re).

Le perg=E9lisol (permafrost en anglais) d=E9signe un sol gel=E9 en = permanence. Au=20 niveau plan=E9taire, il s=92=E9tend sur environ 20% des terres = =E9merg=E9es. Dans les=20 Alpes, il est pr=E9sent =E0 partir de 2500 m d=92altitude et plus = sp=E9cialement sur les=20 versants expos=E9s au nord (ubac). On estime que 5 =E0 6% du territoire = suisse est=20 occup=E9 par le perg=E9lisol. C=92est plus que les surfaces couvertes = par les=20 glaciers. Dans le Jura, il existe quelques cas de sols gel=E9s en = permanence, li=E9s=20 =E0 des conditions particuli=E8res d=92exposition et de circulation des = masses d=92air,=20 comme par exemple au fond du cirque rocheux du Creux-du-Van.

Une glaci=E8re naturelle est une cavit=E9 souterraine qui contient de = la glace=20 tout au long de l'ann=E9e, dans une r=E9gion o=F9 la temp=E9rature = moyenne annuelle est=20 plus =E9lev=E9e que z=E9ro. La glaci=E8re fonctionne comme un = cong=E9lateur naturel; l=92air=20 froid qui s=92y trouve, plus dense que l=92air ext=E9rieur, est = pi=E9g=E9 =E0 l=92int=E9rieur de=20 la grotte permettant la conservation de la glace. Il existe une = vingtaine de=20 glaci=E8res dans des grottes du Jura, dont la plus importante en volume = est la=20 glaci=E8re de Monl=E9si dans le canton de Neuch=E2tel (6'000 m3).

=95 Quelle est la principale r=E9serve = d=92eau douce de la=20 plan=E8te ?

A eux seuls, glaciers et neiges =E9ternelles constituent plus = des deux=20 tiers de toute l=92eau douce pr=E9sente sur Terre, soit plus de 24 = millions de km3.=20 Ce n=92est toutefois qu=92une goutte - ou presque - par rapport aux = 1'000 millions=20 de km3 d=92eau sal=E9e contenue dans les mers et les = oc=E9ans.

L=92eau douce est la plus pr=E9cieuse des ressources naturelles, = indispensable =E0=20 la vie des organismes vivants, plantes et animaux, et =E0 notre = bien-=EAtre. Les=20 glaces en constituent la plus importante r=E9serve: =E0 lui seul = l=92Antarctique=20 rec=E8le 61,7 % de l=92ensemble des eaux douces et le Groenland 6,7%. = Une grande=20 partie du reste est stock=E9e dans les eaux souterraines (30%). Quant = =E0 l=92eau des=20 lacs et des rivi=E8res, directement disponible, elle n=92entre que pour = une infime=20 proportion (moins de 0,27%) dans le volume total.

=95 Y a-t-il de la glace dans l=92espace = ?

La glace joue un r=F4le tr=E8s important dans l=92univers, = non seulement=20 dans l=92espace interstellaire, mais =E9galement dans la composition des = plan=E8tes.=20 Petit tour d=92horizon tr=E8s simplifi=E9 des connaissances actuelles, = de la naissance=20 des =E9toiles aux =E9ruptions de glace, en passant par les com=E8tes et = les anneaux de=20 Saturne !

=95 A quoi reconna=EEt-on un paysage = glaciaire=20 ?

Les glaciers fonctionnent comme de gigantesques rabots = donnant aux=20 vall=E9es, apr=E8s leur passage, une forme en auge ou en U bien = reconnaissable.=20 Roches moutonn=E9es, verrous et ombilics, moraines et blocs erratiques = sont les=20 autres traces caract=E9ristiques laiss=E9es dans le paysage par les=20 glaciers.

L=92=E9rosion glaciaire se fait par abrasion, arrachement, = fractionnement de la=20 roche en place. Les vall=E9es en auge sont les t=E9moins les plus = visibles de=20 l=92action des glaciers sur le paysage.

Apr=E8s le retrait du glacier, une vall=E9e pr=E9sente une alternance = de ressauts=20 (verrous glaciaires) et de d=E9pressions (ombilics), zones plus tendres, = surcreus=E9es souvent occup=E9es par des lacs. Les bancs rocheux = r=E9sistants prennent=20 l=92aspect de roches moutonn=E9es lorsqu=92ils pr=E9sentent un = arrachement vers l=92aval=20 et un poli vers l=92amont (voir sch=E9ma).

Les blocs erratiques et les moraines, d=E9p=F4ts de mat=E9riaux = rocheux divers=20 transport=E9s sur le dos des glaciers ou pouss=E9s devant eux, puis = abandonn=E9s lors=20 de leur retrait, marquent aussi le paysage de leur empreinte longtemps = apr=E8s=20 leur passage.

=95 Qu=92est-ce qu=92un bloc erratique = ?

Le mot erratique vient du latin erraticus qui veut dire = errant. Un=20 bloc erratique est donc un bloc qui s=92est d=E9plac=E9. Cependant il = n=92a pas boug=E9=20 tout seul: il a voyag=E9 sur le dos d=92un glacier.

D=E9tach=E9 d=92une paroi rocheuse et tomb=E9 sur le glacier, le bloc = progressera =E0=20 la m=EAme vitesse que la glace. Son voyage s=92arr=EAte au moment o=F9 = la glace qui le=20 porte fond. Abandonn=E9 sur place, il peut se trouver =E0 des centaines = de=20 kilom=E8tres de son point de d=E9part.

On peut parfois d=E9terminer le lieu d=92origine pr=E9cis d=92un bloc = en analysant=20 ses caract=E8res p=E9trographiques (composition, structure cristalline = et chimie des=20 min=E9raux). Plus simplement, certaines roches bien particuli=E8res ne = se=20 rencontrent que dans des r=E9gions restreintes des Alpes: ainsi les = blocs de=20 serpentinite - roche m=E9tamorphique de couleur vert fonc=E9 - = trouv=E9es dans le Jura=20 proviennent forc=E9ment du massif du Cervin et des r=E9gions = avoisinantes.

Des blocs erratiques isol=E9s peuvent servir =E0 d=E9terminer = l=92extension maximale=20 d=92un ancien glacier si une =E9rosion intense a fait dispara=EEtre les = moraines.=20 C=92est le cas du bloc erratique de la colline de la Croix-Rousse =E0 = Lyon, vestige=20 de la glaciation du Riss (=96300'000 =E0 -120'000 ans).

Le glacier du Rh=F4ne, origine des blocs erratiques du Jura

R=E9duit de nos jours =E0 l=92=E9tat de relique, ce glacier (situ=E9 = =E0 environ 3km au=20 NW du col de la Furka) occupait toute la vall=E9e du Rh=F4ne et = s=92=E9tendait jusqu=92au=20 Jura. Le long du parcours, les glaciers des vall=E9es secondaires = ajoutaient leur=20 masse de glace =E0 celle du glacier principal. Au niveau du L=E9man, le = glacier=20 prenait l=92aspect d=92un glacier de pi=E9mont. Il se divisait en deux = branches=20 distinctes au contact du Jura: l=92une passant par Gen=E8ve finissait = vers Lyon (au=20 Riss et au W=FCrm) et l=92autre passant par Neuch=E2tel se terminait peu = apr=E8s Soleure=20 =E0 Wangen an der Aare (uniquement au W=FCrm, car son extension = rissienne =E9tait=20 beaucoup plus importante).

Le glacier de l=92Aar, venait du massif du m=EAme nom, par les = actuels lacs de=20 Thoune et de Brienz. Pr=E8s de Berne, il rencontrait le glacier du = Rh=F4ne qui le=20 d=E9viait en direction de Soleure.

=95  Y a-t-il des blocs erratiques dans = le Jura=20 ?

Le Jura est parsem=E9 de blocs erratiques jusqu=92=E0 une = altitude de=20 1100m, voire 1250m au Suchet. C=92est le niveau atteint par le glacier = du Rh=F4ne=20 durant son extension maximale lors de la derni=E8re = glaciation.

Quelques blocs se trouvent =E0 une altitude sup=E9rieure ou dans des = r=E9gions qui=20 n=92ont pas =E9t=E9 atteintes par la glaciation du W=FCrm, autour de la = ville de La=20 Chaux-de-Fonds par exemple. Il s=92agit donc de cailloux d=E9pos=E9s = ant=E9rieurement,=20 lors de la glaciation du Riss.

La plupart des blocs erratiques sont des roches cristallines, = beaucoup plus=20 dures que les calcaires formant le Jura. Ce type de mat=E9riau =E9tait = tr=E8s=20 recherch=E9 pour la construction. Au 19e si=E8cle par exemple, les = =E9normes blocs de=20 granite de la r=E9gion de Noiraigue ont servi =E0 fa=E7onner les marches = d=92escalier et=20 encadrements de fen=EAtre de nombreux b=E2timents de ce village du=20 Val-de-Travers.

Mais bien longtemps auparavant, des hommes avaient taill=E9 ces = blocs, pour en=20 faire des menhirs, des meules ou des pierres =E0 cupules. Il est = extr=EAmement=20 difficile de dater ce mat=E9riel m=E9galithique. Dans certains cas = seulement, en=20 d=E9couvrant des restes arch=E9ologiques sous un dolmen, on a pu = attribuer une date=20 =E0 ces premi=E8res traces d=92exploitation qui remontent au = N=E9olithique (il y a 5'000=20 =E0 2=92500 ans).

Certains blocs erratiques sont parmi les premiers objets naturels =E0 = avoir =E9t=E9=20 plac=E9s sous protection. C=92est le cas de la Pierre-=E0-Bot au-dessus = de Neuch=E2tel.=20 Cet =E9norme bloc de granite de 3000 tonnes a =E9t=E9 class=E9 en 1838 = =AB monument=20 pr=E9cieux d=92histoire naturelle =BB suite =E0 une requ=EAte de Louis = Agassiz, et a=20 =E9chapp=E9 ainsi au d=E9bitage par les carriers.

=95 Qu=92est-ce qu=92une moraine = ?

On appelle moraine tout mat=E9riau transport=E9 par les = glaciers: les=20 amas de d=E9bris rocheux pr=E9sents =E0 leur surface, de m=EAme que les = d=E9p=F4ts qu=92ils=20 ont abandonn=E9s.

Les mat=E9riaux des moraines ne sont pas tri=E9s: poussi=E8re = de roche,=20 argiles, sables fins ou grossiers, cailloux de toutes tailles et gros = blocs y=20 voisinent dans le d=E9sordre le plus total.

L=92aspect anguleux des cailloux et des blocs permet de reconna=EEtre = facilement=20 une moraine.

Au contraire, dans les bancs de sable, de gravier ou de galets = transport=E9s=20 par les rivi=E8res ou l=92eau en g=E9n=E9ral, les =E9l=E9ments sont = toujours plus ou moins=20 tri=E9s par taille et leurs angles ont =E9t=E9 =E9mouss=E9s par le = transport (galets=20 arrondis par exemple).

On reconna=EEt quatre principaux types de moraines:

- moraine lat=E9rale: accumulation des mat=E9riaux arrach=E9s par le = glacier ou=20 tomb=E9s =E0 sa surface depuis les pentes rocheuses qui le bordent

- moraine m=E9diane: r=E9union des moraines lat=E9rales de deux = glaciers confluents=20

- moraine de fond: mat=E9riaux arrach=E9s au substrat rocheux sous le = glacier et=20 broy=E9s par les mouvements de la glace

- moraine frontale: accumulation =E0 l=92avant du glacier des = mat=E9riaux arriv=E9s =E0=20 l=92extr=E9mit=E9 de la langue

Le terme till est =E9galement souvent employ=E9 pour d=E9signer une = moraine non=20 consolid=E9e.

=95 Comment se forment les marmites = glaciaires=20 ?

Une marmite glaciaire est un trou dans la roche en forme de = marmite -=20 ou plut=F4t de chaudron - dans lequel est souvent emprisonn=E9 un gros = caillou. La=20 formation de la marmite est due =E0 l=92action de l=92eau de fonte = charg=E9e de=20 particules rocheuses abrasives.

Depuis la surface du glacier, l=92eau s=92engouffre dans des = crevasses jusqu=92=E0 sa=20 base rocheuse, y donnant naissance =E0 des torrents. A certains = endroits, des=20 tourbillons se cr=E9ent o=F9 l=92eau peut atteindre 200 km/h sous des = pressions=20 gigantesques. L=92eau charg=E9e de particules fines de sables et de = gravier =E9rode la=20 roche.

Contrairement =E0 une id=E9e r=E9pandue, ce n=92est donc pas le = mouvement du bloc=20 emprisonn=E9 qui creuse le trou. Le caillou, un peu plus petit que la = taille du=20 fond de la marmite, s=92est simplement trouv=E9 pi=E9g=E9 =E0 = l=92int=E9rieur. Plus gros il ne=20 tomberait pas dans le trou, plus petit il serait =E0 nouveau =E9ject=E9 = par la force=20 du tourbillon.

=95 Comment se forment les stries glaciaires = ?

Les stries glaciaires sont les traces, grav=E9es dans le = rocher, du=20 passage d=92un glacier. Elles sont produites par le frottement de = rochers ou de=20 fragments min=E9raux enchass=E9s dans la glace qui rayent la roche en = place. Elles=20 indiquent le sens du mouvement du glacier. Des polis glaciaires = apparaissent=20 dans les zones pass=E9es au =AB papier de verre =BB du glacier charg=E9 = de fine farine=20 de roche.

Les stries glaciaires permettent de prouver l=92existence de glaciers = =E0 des=20 p=E9riodes tr=E8s anciennes de l=92histoire de la Terre. On en a = retrouv=E9 par exemple=20 sur des roches datant du Carbonif=E8re (355 =E0 295 millions = d=92ann=E9es) en Afrique du=20 Sud, et m=EAme de l=92Ordovicien (500 =E0 440 millions d=92ann=E9es) au = Sahara. Gr=E2ce =E0=20 l=92=E9tude minutieuse de la direction des stries, on a pu d=E9finir les = mouvements=20 des calottes glaciaires pr=E9sentes durant ces deux p=E9riodes = g=E9ologiques en=20 Afrique, continent qui occupait alors une position proche du p=F4le = sud.

=95 Y a-t-il des stries glaciaires dans le = Jura ?=20

Le glacier du Rh=F4ne a effectivement =AB appos=E9 sa griffe = =BB sur les=20 roches calcaires du Jura. Dans la r=E9gion neuch=E2teloise, les dalles = stri=E9es du=20 Landeron, =E9tudi=E9es par Agassiz lors de ses recherches sur les = glaciers dans les=20 ann=E9es 1840, restent l=92un des exemples les plus connus. = Malheureusement, il n=92en=20 subsiste presque plus rien aujourd=92hui.

=95 Y a-t-il toujours eu des glaciers dans = les Alpes=20 depuis la derni=E8re =E9poque glaciaire ?

La surface occup=E9e par les glaciers a beaucoup vari=E9 depuis la = fin de la=20 derni=E8re glaciation. Des =E9tudes r=E9centes bas=E9es sur la datation = des restes=20 v=E9g=E9taux rejet=E9s par les glaciers ont montr=E9 que, au cours des = derniers 10'000=20 ans, ceux-ci ont =E9t=E9, le plus souvent, moins =E9tendus = qu=92aujourd=92hui. Des zones=20 actuellement recouvertes de glaciers ont pu =EAtre libres de glace il y = a quelques=20 milliers d=92ann=E9es.

Les troncs d=92arbre (m=E9l=E8zes et arolles surtout) rejet=E9s par = les glaciers=20 montrent que des arbres croissaient par le pass=E9 dans des zones = actuellement=20 recouvertes de glace. Il est possible de retracer l=92histoire locale de = la=20 v=E9g=E9tation et du climat d=92une r=E9gion par datation au carbone 14 = de bois ou de=20 tourbe retrouv=E9s dans des moraines d=92altitude sup=E9rieure =E0 celle = du front d=92un=20 glacier actuel. Les r=E9sultats de multiples analyses de ces bois ont = permis de=20 d=E9terminer une dizaine de phases de retrait glaciaire (=E9pisodes = chauds)=20 entrecoup=E9es d=92autant de phases de crue des glaciers.

=95 Quelle a =E9t=E9 l=92extension maximale = des glaciers=20 ?

La Suisse a subi plusieurs glaciations, mais nous n=92avons = de traces=20 tangibles que des deux derni=E8res p=E9riodes glaciaires, celle du Riss = (-300'000 =E0=20 -120'000 ans environ) et celle du W=FCrm (-80'000 =E0 -10'000 ans = environ). Dans les=20 deux cas, la majeure partie du pays a =E9t=E9 recouverte par les=20 glaces.

Puisque chaque nouvelle glaciation efface, au moins partiellement, = les traces=20 de la pr=E9c=E9dente, nous ne trouvons plus, aujourd=92hui, que les = d=E9p=F4ts pierreux,=20 moraines et blocs erratiques, des deux derni=E8res p=E9riodes = glaciaires.

L=92extension maximale des glaciers a =E9t=E9 plus importante durant = le Riss que=20 durant le W=FCrm. Le glacier du Rh=F4ne s=92=E9tendait sur l=92ensemble = du Plateau suisse.=20 Il a largement d=E9bord=E9 la haute cha=EEne du Jura et recouvert une = grande partie du=20 Jura fran=E7ais.

Le maximum du W=FCrm a eu lieu il y a 18'000 =E0 20'000 ans environ = (voir carte).=20 Le glacier du Rhin recouvrait tout le nord-est du pays. Le glacier du = Rh=F4ne a=20 une nouvelle fois occup=E9 le Plateau. Aux environs de Berne, il a = rejoint le=20 glacier de l=92Aar pour s=92=E9tendre au-del=E0 de Soleure jusqu=92=E0 = Wangen an der Aare.=20 En revanche il n=92a pas rejoint le glacier de la Reuss, laissant libre = de glace=20 le massif du Napf et la r=E9gion qui l=92entoure. Au sud des Alpes, la = r=E9gion du=20 Monte Generoso a =E9t=E9 =E9pargn=E9e.

Le Jura est rest=E9 en partie libre de glace =E0 l=92exception de la = Vall=E9e de=20 Joux, de la r=E9gion de Sainte-Croix, du Val-de-Travers et du Val de Ruz = tandis=20 que des glaciers locaux recouvraient les sommets.

=95 Quelles sont les causes de l=92avance et = du recul=20 des glaciers ?

La =AB sant=E9 =BB des glaciers d=E9pend non seulement des = temp=E9ratures=20 estivales mais =E9galement des pr=E9cipitations annuelles. Pour qu=92un = glacier reste=20 stable, l=92apport sous forme de neige dans la zone d=92accumulation = doit compenser=20 la fonte de la glace en aval. Les conditions climatiques r=E9gionales, = elles-m=EAmes=20 sous la d=E9pendance de l=92altitude et de la latitude, sont donc = primordiales, du=20 moins =E0 une =E9chelle de temps humaine.

La fonte directe de la glace =E0 la surface du glacier et =E0 = l=92extr=E9mit=E9 de la=20 langue alimente un torrent glaciaire dont le d=E9bit varie suivant la = saison et le=20 moment de la journ=E9e. De plus, lors des journ=E9es tr=E8s chaudes, la = glace se=20 transforme directement en vapeur d=92eau par sublimation (passage de = l=92=E9tat solide=20 =E0 l=92=E9tat gazeux) =E0 la surface du glacier.

Les pr=E9cipitations neigeuses peuvent compenser ces pertes si elles = sont=20 suffisamment abondantes. Une s=E9rie d=92ann=E9es froides et neigeuses = se traduit par=20 une crue du glacier. Au contraire, les =E9t=E9s tr=E8s chauds que nous = vivons depuis=20 quelques d=E9cennies ont provoqu=E9 un recul important des glaciers. Le=20 r=E9chauffement climatique actuel li=E9 =E0 l=92augmentation des gaz =E0 = effets de serre=20 d=92origine humaine en est la cause av=E9r=E9e.

=95 Les =E9boulements dans les Alpes = sont-ils li=E9s =E0 la=20 fonte des glaciers ?

Deux processus distincts, agissant =E0 des =E9chelles de = temps=20 diff=E9rentes, sont =E0 l=92=9Cuvre :

- la fonte du perg=E9lisol, qui est li=E9e au r=E9chauffement = climatique=20 d=92origine humaine observ=E9 actuellement

- le recul progressif des glaciers depuis la fin de la = derni=E8re=20 p=E9riode glaciaire il y a 20'000 ans, qui n=92est pas directement li=E9 = =E0 ce=20 r=E9chauffement

Les chutes de pierres du Cervin et l=92=E9boulement de l=92Eiger, qui = ont tous deux=20 fait les titres de l=92actualit=E9, sont des exemples de l=92un et = l=92autre de ces=20 processus.

Les chutes de pierres du Cervin, qui rendent p=E9rilleuses les = ascensions de ce=20 sommet prestigieux, sont en relation directe avec le r=E9chauffement = climatique=20 anthropog=E8ne. Au-dessus de 2500m, le sol est gel=E9 en permanence = depuis des=20 milliers d=92ann=E9es. A cause du r=E9chauffement, le =AB ciment =BB que = constituait la=20 glace se met =E0 fondre, risquant =E0 tout moment de provoquer la chute = de grosses=20 masses de pierres.

Les causes de l=92=E9boulement de l=92Eiger doivent =EAtre = recherch=E9es bien plus loin=20 dans le temps et ne sont pas en relation directe avec le r=E9chauffement = climatique r=E9cent. Depuis des millions d=92ann=E9es, les masses = rocheuses des Alpes=20 sont parcourues de failles et de fentes. Lorsque ces failles courent=20 parall=E8lement aux vall=E9es, les risques d=92=E9boulement sont grands. =

Lors de la derni=E8re glaciation, les glaciers ont creus=E9 de = profondes vall=E9es=20 et accru le risque d=92=E9boulement. Tant que les glaciers remplissent = les vall=E9es=20 il n=92y a pas de danger, mais lorsqu=92ils se retirent, les masses = rocheuses ne=20 sont plus retenues que par leur poids. Leur chute n=92est d=E8s lors = plus qu=92une=20 question de temps =96 mais de temps g=E9ologique, car il peut = s=92=E9couler des si=E8cles=20 voire des mill=E9naires jusqu=92=E0 ce qu=92elles se mettent en = mouvement.

=95 Quel =E2ge a la plus vieille glace du = monde=20 ?

La plus vieille glace trouv=E9e sur Terre est =E2g=E9e de = 900'000 ans. Elle=20 provient d=92un forage profond (3270 m=E8tres) dans la calotte glaciaire = de=20 l=92Antarctique. Il a fallu 9 ans aux foreuses dans les conditions = polaires=20 difficiles pour atteindre cette profondeur.

Cette glace a =E9t=E9 extraite au cours d=92une mission EPICA, un = projet sur 8 ans=20 de forage dans les glaces de l=92Antarctique, r=E9unissant des = scientifiques et des=20 techniciens de 10 pays europ=E9ens. Les petites bulles d=92air contenues = dans cette=20 glace sont extraites pour conna=EEtre les changements de composition de=20 l=92atmosph=E8re terrestre. Les analyses nous renseignent d=92une part = sur les=20 variations de temp=E9rature aux =E9poques pass=E9es, et, d=92autre part, = sur les=20 changements de concentration des gaz et des particules contenues dans=20 l=92atmosph=E8re au cours du temps.

5. La valse du climat, pourquoi = ?

Les causes des glaciations

Les glaciers des Alpes fondent dramatiquement. Mais il y a 200 ans, = ils=20 =E9taient en crue, d=E9truisant des p=E2turages et mena=E7ant des = alpages. Il y a 18'000=20 ans, une couche de glace de plusieurs centaines de m=E8tres recouvrait = presque=20 toute la Suisse=85

Peut-=EAtre esp=E9rez-vous une explication simple des causes des = glaciations et=20 des changements du climat ?

H=E9las, il n=92y en a pas. Aucun facteur, si important soit-il, = n=92explique =E0 lui=20 seul, et =E0 toutes les =E9chelles de temps, les bouleversements = climatiques. La=20 v=E9rit=E9 se trouve dans la combinaison de m=E9canismes que nous vous = proposons de=20 d=E9couvrir.

=95 Les myst=E8res des premi=E8res=20 glaciations

Des galets stri=E9s, trouv=E9s en Afrique du Sud, pourraient =EAtre = les premi=E8res=20 preuves d=92une glaciation sur la Terre. Ils datent de pr=E8s de 3 = milliards=20 d=92ann=E9es. Entre 2,4 et 2.2 milliards d=92ann=E9es les traces de = glaciations sont=20 nombreuses : au Canada, dans le nord de l=92Europe, en Afrique du Sud et = en=20 Australie. Puis elles disparaissent durant 1,4 milliard d=92ann=E9es, = pour=20 r=E9appara=EEtre entre 850 et 550 millions d=92ann=E9es avant le = pr=E9sent.

Les causes des glaciations les plus anciennes sont m=E9connues, tant = les=20 conditions r=E9gnant alors sur Terre diff=E8rent des actuelles. = L=92incertitude=20 r=E8gne=85

Des sc=E9narios extraordinaires ont =E9t=E9 propos=E9s. Selon Paul = Hoffmann de=20 l=92Universit=E9 de Harvard, auteur d=92une =E9tude r=E9cente, la Terre = a connu, il y a=20 700 millions d=92ann=E9es, des =E9pisodes de glaciations si intenses que = m=EAme les=20 oc=E9ans auraient gel=E9, pris sous 1400 m=E8tres de glace. Les = temp=E9ratures seraient=20 descendues =E0 =9650 degr=E9s, entra=EEnant l=92an=E9antissement de = toute vie, except=E9 pr=E8s=20 de volcans sous-marins.

C=92est le retour d=92une hypoth=E8se qui divise les scientifiques = depuis que Louis=20 Agassiz l=92a =E9mise le premier en 1837 dans son fameux discours de = Neuch=E2tel.=20 Depuis cette =E9poque, des variantes de cette id=E9e ont =E9t=E9 = d=E9battues =E0 sept=20 reprises

Faut-il imaginer les glaciations du pass=E9 =E0 la lumi=E8re de = celles du pr=E9sent ?=20 Ce vieux d=E9bat n=92a jamais cess=E9 de diviser les g=E9ologues.

=95 Le monde =E0 l=92envers : d=E9rive des=20 continents

Il y a 300 millions d=92ann=E9es, l=92Afrique et l=92Australie = =E9taient couvertes de=20 glace, pendant qu=92en Europe et en Am=E9rique du nord de luxuriantes = for=EAts et des=20 vastes mar=E9cages dominaient le paysage ; il y avait donc de la glace = l=E0 o=F9=20 s=92=E9tend aujourd=92hui le d=E9sert, et des vestiges de for=EAts = tropicales fossilis=E9es=20 se trouvent actuellement sous la glace.

C=92est la d=E9rive des plaques tectoniques - donc des continents - = qui est la=20 cause de ce =AB miracle =BB. Alfred Wegener a d=E9couvert en 1924 que = les continents=20 voyagent =E0 la surface du globe depuis des millions d=92ann=E9es. Il a = prouv=E9 que les=20 continents du sud, l'Afrique, l'Inde, l'Australie, l'Am=E9rique du Sud = et=20 l'Antarctique =E9taient r=E9unis il y a 300 millions d=92ann=E9es au = P=F4le Sud, formant=20 le =AB supercontinent =BB Gondwana.

Quelle relation avec le climat ? La distribution des continents est=20 fondamentale pour les glaciations. Il faut absolument des terres = =E9merg=E9es=20 proches des p=F4les, pour qu'une glaciation soit possible, car la glace = ne peut=20 pas s=92accumuler dans la mer. Pendant le Carbonif=E8re, la plupart des = continents=20 se trouvaient proche du P=F4le Sud, ce qui a permis une glaciation qui = s=92est=20 =E9tendue =E0 partir de l=E0 jusqu=92=E0 une latitude de 40=B0 Sud.

M=EAme si les continents ne bougent que de quelques centim=E8tres par = ann=E9e, =E0=20 l=92=E9chelle des temps g=E9ologiques leur position d=E9cide du climat. = Nous n=92en=20 ressentons pas les effets et l=92humanit=E9 aura probablement disparu = avant un=20 nouveau bouleversement de ce type. La d=E9rive des continents se = d=E9roule sur des=20 millions d=92ann=E9es.

=95 Milankovitch, l=92intuition de = l=92astronome :orbite=20 de la Terre

L'astronome serbe Milutin Milankovitch a d=E9montr=E9, entre 1920 et = 1941, que le=20 rythme des glaciations depuis 400'000 ans s=92explique par de faibles=20 irr=E9gularit=E9s du parcours de la Terre autour du Soleil.

Pour Milankovitch, les causes des glaciations r=E9sident dans les = irr=E9gularit=E9s=20 de l=92orbite terrestre. Le mouvement de la Terre autour du Soleil varie = de trois=20 mani=E8res, sous l=92influence combin=E9e des autres plan=E8tes et de la = Lune, selon des=20 cycles de 100=92000, de 40=92000 et de 20=92000 ans. Avec comme = cons=E9quence des=20 p=E9riodes plus chaudes ou plus froides, et des saisons plus ou moins=20 marqu=E9es.

La premi=E8re variation concerne l'excentricit=E9 de l'orbite de la = Terre autour=20 du Soleil. Sur une p=E9riode de 100=92000 ans, elle passe d=92une forme = presque=20 circulaire =E0 une forme l=E9g=E8rement elliptique.

La deuxi=E8me variation est celle de l'inclinaison de l'axe de = rotation de la=20 Terre par rapport au plan de son orbite. Il varie entre 22 et 25=B0 sur = une dur=E9e=20 de 41'000 ans.

La troisi=E8me variation est due =E0 la pr=E9cession, un changement = de direction de=20 l=92axe terrestre qui oscille un peu =E0 la mani=E8re d=92une toupie, = sur une dur=E9e de=20 21'000 ans.

Excentricit=E9, inclinaison et pr=E9cession induisent chacune une = courbe=20 d=92insolation particuli=E8re. Une fois combin=E9es, ces courbes = correspondent de=20 mani=E8re tr=E8s pr=E9cise aux glaciations et p=E9riodes chaudes, ce qui = confirme=20 l=92intuition g=E9niale de l=92astronome.

=95 Une panne de chauffage : courants=20 oc=E9aniques

Il y 10'000 ans, au terme de la derni=E8re glaciation, le climat en = Europe=20 s'est tant r=E9chauff=E9 qu'il faisait alors plus chaud qu'aujourd'hui. = 2 degr=E9s de=20 plus en moyenne, qui permettaient aux for=EAts d'atteindre l=92altitude = de 2500m=20 dans les Alpes, l=E0 o=F9 seules de maigres pelouses poussent = actuellement. Puis=20 brutalement, il y a 8200 ans, le froid est revenu. Une baisse terrible = de pr=E8s=20 de 4 =B0 qui va durer 200 ans.

La cause de ce refroidissement se trouve en Am=E9rique du Nord : = c=92est un lac=20 immense, aujourd=92hui disparu. Nomm=E9 lac Agassiz en l=92honneur du = savant, il =E9tait=20 grand comme 9 fois la Suisse. Ses eaux =E9taient endigu=E9es par = l'=E9norme calotte=20 glaciaire qui couvrait le nord du Canada, emp=EAchant les fleuves de se = d=E9verser=20 vers la baie d'Hudson.

Suite au retrait des glaciers nord-am=E9ricains, il y a environ 8200 = ans, la=20 digue glaciaire c=E8de et, en un temps tr=E8s bref, pratiquement tout le = lac se vide=20 dans l'Atlantique Nord au travers de la Baie d=92Hudson.

Les chercheurs estiment que ce colossal d=E9versement d'eau douce a = perturb=E9=20 les courants de l'Atlantique Nord. La circulation du Gulf Stream aurait = =E9t=E9=20 interrompue. L=92arr=EAt de ce courant marin, qui prend naissance dans = les eaux=20 chaudes du golfe du Mexique et traverse l'Atlantique, serait responsable = du=20 retour du froid en Europe.

Il y aurait donc eu une sorte de " panne de chauffage ", une panne = qui=20 rappelle que sans le Gulf Stream nos hivers seraient aussi rudes que = ceux des=20 Qu=E9b=E9cois, et que les ours blancs hanteraient les fjords de la = Norv=E8ge.

=95 Le r=E8gne glacial du Roi Soleil : = Activit=E9=20 solaire

Le Roi Soleil porte bien mal son nom. Le r=E8gne de Louis XIV a en = effet=20 co=EFncid=E9 avec l=92=E9pisode le plus froid du Petit Age glaciaire qui = a marqu=E9=20 l=92Europe entre 1300 et 1850 environ.

Cette p=E9riode, que les climatologues nomment le minimum de Maunder, = s=92=E9tend=20 de 1645 =E0 1715. La temp=E9rature moyenne n=92y =E9tait que de 1=B0 = inf=E9rieure =E0=20 l=92actuelle, mais les cons=E9quences furent terribles. Le froid intense = de certains=20 hivers et la famine sont rest=E9s tristement c=E9l=E8bres. Pour ne citer = qu=92elles, les=20 ann=E9es 1693 et 1694 ont vu mourir pr=E8s de deux millions de = Fran=E7ais.

La variation de l=92activit=E9 du Soleil, mesur=E9e par le nombre des = taches=20 solaires, est la cause de ces calamit=E9s. Les taches solaires faisaient = =E0=20 l=92=E9poque l=92objet d=92observations soutenues et d=92un vif d=E9bat. = Elles avaient =E9t=E9=20 =E9tudi=E9es d=E8s 1609 par Galil=E9e, l=92inventeur du t=E9lescope = astronomique. D=E8s 1645,=20 elles se firent rares ou quasiment inexistantes et ne r=E9apparurent que = 70 ans=20 plus tard, suivies de pr=E8s par une hausse de la temp=E9rature.

Plus que par une simple variation de la chaleur, c=92est par une = modification=20 du champ magn=E9tique terrestre que les humeurs du soleil semblent = interagir avec=20 le climat de notre plan=E8te.

=95 1816, l=92ann=E9e sans =E9t=E9 : = volcanisme

Lors d=92=E9ruptions volcaniques importantes, de grands nuages de = cendres sont=20 projet=E9s jusque dans la stratosph=E8re. Puis les jets streams, ces = vents rapides=20 de haute altitude, les r=E9partissent rapidement tout autour du globe. = Le temps de=20 s=E9jour des poussi=E8res en suspension en haute atmosph=E8re peut durer = plusieurs=20 ann=E9es durant lesquelles le rayonnement solaire qui atteint le sol est = r=E9duit.

L=92=E9ruption du volcan Tambora, en Indon=E9sie, le 10 avril 1815, a = ainsi caus=E9=20 un refroidissement plan=E9taire de pr=E8s de 1=B0C.

L=92ann=E9e suivante, 1816, a =E9t=E9 catastrophique. Des pluies = continuelles et de=20 la gr=EAle ont entra=EEn=E9 de mauvaises r=E9coltes et la disette. Les = vendanges ont =E9t=E9=20 les plus tardives jamais enregistr=E9es en France et en Suisse.

Durant 3 ans, les radiations solaires sont rest=E9es inf=E9rieures = =E0 la normale,=20 voil=E9e par une brume s=E8che acide, dont les glaces du Groenland = gardent la trace=20 jusqu=92en 1818.

Une seule =E9ruption ne suffit pas =E0 provoquer un changement =E0 = long terme. Mais=20 les plus grands =E9v=E9nements volcaniques de l=92histoire de la Terre = ont=20 probablement =E9t=E9 la cause d=92=E9pisodes glaciaires.

=95 Pourquoi la banquise du p=F4le nord = est-elle si=20 menac=E9e ? Alb=E9do terrestre

Pour s=92=EAtre une fois br=FBl=E9 les cuisses sur un si=E8ge de = voiture parqu=E9e au=20 soleil en =E9t=E9, chacun sait que des si=E8ges noirs absorbent bien = plus de chaleur=20 que des si=E8ges blancs. Mais savez-vous que la Terre r=E9agit de m=EAme = et que cette=20 notion qui s=92applique =E0 tout objet non lumineux, se nomme alb=E9do ? =

L=92alb=E9do d=92un miroir est de 100% car il renvoie la lumi=E8re en = totalit=E9. A=20 l=92inverse, l=92alb=E9do d=92un objet noir qui ne r=E9fl=E9chit aucune = lumi=E8re visible,=20 mais seulement de la chaleur, est de 0% .

Dans le cas de la Terre, l=92alb=E9do est tr=E8s variable. Il est de = 75 =E0 95% pour=20 la neige fra=EEche, de 40 =E0 60% pour la glace, de 30 =E0 40% pour la = mer, de 15 =E0 25=20 % pour des cultures et de 5 =E0 15% pour un sol sombre.

L=92alb=E9do terrestre joue un r=F4le primordial dans l=92=E9quilibre = du climat. La=20 variation de l=92alb=E9do est toujours la cons=E9quence d=92un = refroidissement ou d=92un=20 r=E9chauffement de la plan=E8te. Mais ce facteur vient renforcer le = d=E9r=E8glement :=20 lors d=92un refroidissement, l=92augmentation des surfaces neigeuses ou = glac=E9es=20 augmente l=92alb=E9do, et diminue la part de chaleur solaire = emmagasin=E9e par la=20 Terre. Inversement, lors d=92un r=E9chauffement, la Terre absorbe = d=92autant plus de=20 chaleur que la neige tend =E0 dispara=EEtre ! D=92o=F9 une fonte encore = accrue.

La fonte actuelle de la calotte polaire arctique pourrait ainsi = s=92emballer,=20 si une mer qui absorbe la lumi=E8re vient remplacer une banquise qui la = r=E9fl=E9chit=20 !

=95 La plan=E8te se r=E9chauffe : Le CO2 et = les gaz =E0=20 effet de serre

Depuis 150 ans, le r=E9chauffement de la plan=E8te se monte =E0 = 0.7=B0. Mais il est=20 plus marqu=E9 dans l=92h=E9misph=E8re nord et surtout aux latitudes = =E9lev=E9es. La cause de=20 ce r=E9chauffement ne fait plus de doute. C=92est l=92augmentation des = gaz =E0 effet de=20 serre, cons=E9quence du d=E9veloppement industriel :

Le m=E9thane, par exemple, qui provient des rizi=E8res, des = =E9levages ou des=20 fuites de gaz[graphe)]. Mais surtout le CO2 . Le gaz carbonique produit = par la=20 combustion des =E9nergies fossiles : les chauffages, les v=E9hicules, = les centrales=20 =E9nerg=E9tiques.

Chaque ann=E9e, 7 milliards de tonne de gaz carbonique sont = rel=E2ch=E9es dans=20 l=92atmosph=E8re. La moiti=E9 sont reprises par la v=E9g=E9tation ou les = oc=E9ans, mais=20 l=92autre moiti=E9 s=92accumule dans l=92atmosph=E8re. Le r=E9sultat est = dramatique : la=20 teneur en CO2 a augment=E9 de 30% depuis le d=E9but de la p=E9riode = industrielle.

On n=92y coupera pas : pour esp=E9rer combattre le r=E9chauffement, = il n=92y a pas=20 d=92autre solution. Il faut r=E9duire par tous les moyens les = =E9missions de gaz=20 carbonique.

=95 Le futur des glaciers ?

La glace recule partout : les glaciers et les n=E9v=E9s alpins se = r=E9duisent comme=20 peau de chagrin. Les banquises arctiques se d=E9sagr=E8gent. De nouveaux = rivages=20 naissent en Antarctique, o=F9 un radeau de glace, long comme la moiti=E9 = de la=20 Suisse, a rompu ses amarres.

Mais est-ce pour autant la fin des glaciers?

La fin de l=92humanit=E9, peut-=EAtre. Elle pourrait ne pas survivre, = ou alors en=20 bien petit nombre, dans un environnement ravag=E9 par la mont=E9e du = niveau des mers=20 et la d=E9sertification des continents.

Mais la fin des glaciations? Ce serait bien pr=E9somptueux de le = croire. Elles=20 reviendront dans quelques dizaines de milliers d=92ann=E9es, croyez-en = les=20 g=E9ologues, aussi certainement que la Terre continuera de se permettre = quelques=20 fantaisies dans sa danse autour du Soleil.

6. En guise de conclusion : optimisme ou pessimisme = ?

Je continue le combat pour la plan=E8te et pour l=92homme sans la = moindre=20 perspective de succ=E8s. Par habitude. Par devoir. Mais sans autre = esp=E9rance que=20 d=92en rire ou d=92en pleurer =96 tel le musicien du Titanic en train de = jouer Plus=20 pr=E8s de toi, mon Dieu, de l=92eau jusqu=92au genou.

Yves Paccalet L=92humanit=E9 dispara=EEtra, bon d=E9barras ! 2006

Au moment o=F9 la glace recule partout et o=F9 le r=E9chauffement du = climat est=20 devenu un sujet de pr=E9occupation mondial, faut-il penser pour autant = que les=20 glaciers vont dispara=EEtre =E0 jamais?

Certainement pas. Ce n=92est pas pour les glaciers qu=92il faut = craindre car il y=20 aura =E0 coup s=FBr de nouvelles glaciations, mais bien pour = l=92humanit=E9. Elle=20 pourrait ne pas survivre au r=E9chauffement du climat, ou alors en bien = petit=20 nombre et dans des conditions peu enviables. Un r=E9chauffement que = l=92humanit=E9=20 engendre, c=92est d=E9sormais certain, en lib=E9rant dans = l=92atmosph=E8re chaque ann=E9e=20 des milliards de tonnes de CO2.

Sommes-nous capables de mettre un terme =E0 la consommation = fr=E9n=E9tique des=20 combustibles fossiles ? Faut-il esp=E9rer une issue heureuse?

Apr=E8s plus de dix ans de tentatives peu fructueuses en Suisse et = dans=20 quelques pays d=92Europe et l=92absence de mesures concr=E8tes dans le = reste de la=20 plan=E8te, il est permis d=92=EAtre pessimiste.

  Version imprimable
                           
=20
=20
=20
=20
------=_NextPart_000_00C1_01C8E336.6DBBC320 Content-Type: image/jpeg Content-Transfer-Encoding: base64 Content-Location: http://www.museum-neuchatel.ch/new/images/dynamic/category/logo-expos.jpg /9j/4AAQSkZJRgABAgEASABIAAD/4QnKRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUA AAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAbAAAAcgEyAAIAAAAUAAAAjYdp AAQAAAABAAAApAAAANAAAABIAAAAAQAAAEgAAAABQWRvYmUgUGhvdG9zaG9wIENTIFdpbmRvd3MA MjAwNzowNDoyNCAxMzozNjo1MwAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAZKADAAQAAAAB AAAAlgAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAAAAEAAAEmASgAAwAAAAEA AgAAAgEABAAAAAEAAAEuAgIABAAAAAEAAAiUAAAAAAAAAEgAAAABAAAASAAAAAH/2P/gABBKRklG AAECAQBIAEgAAP/tAAxBZG9iZV9DTQAB/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBEL CgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsN Dg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM DAwM/8AAEQgAlgBkAwEiAAIRAQMRAf/dAAQAB//EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYH CAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQh EjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXi ZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIE BAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKy gwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dX Z3eHl6e3x//aAAwDAQACEQMRAD8AzAnUU6pPPMkkwTwkpeE4TQnSQunTBOkpSdJIBJC6SSdFSoKS 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 AGxmZgAGAAAAAAABAC9mZgABAKGZmgAGAAAAAAABADIAAAABAFoAAAAGAAAAAAABADUAAAABAC0A AAAGAAAAAAABOEJJTQP4AAAAAABwAAD/////////////////////////////A+gAAAAA//////// /////////////////////wPoAAAAAP////////////////////////////8D6AAAAAD///////// ////////////////////A+gAADhCSU0EAAAAAAAAAgABOEJJTQQCAAAAAAAGAAAAAAAAOEJJTQQI AAAAAAAQAAAAAQAAAkAAAAJAAAAAADhCSU0EHgAAAAAABAAAAAA4QklNBBoAAAAAA0kAAAAGAAAA AAAAAAAAAACWAAAAZAAAAAoAbABvAGcAbwAtAGUAeABwAG8AcwAAAAEAAAAAAAAAAAAAAAAAAAAA AAAAAQAAAAAAAAAAAAAAZAAAAJYAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAQ AAAAAQAAAAAAAG51bGwAAAACAAAABmJvdW5kc09iamMAAAABAAAAAAAAUmN0MQAAAAQAAAAAVG9w IGxvbmcAAAAAAAAAAExlZnRsb25nAAAAAAAAAABCdG9tbG9uZwAAAJYAAAAAUmdodGxvbmcAAABk AAAABnNsaWNlc1ZsTHMAAAABT2JqYwAAAAEAAAAAAAVzbGljZQAAABIAAAAHc2xpY2VJRGxvbmcA AAAAAAAAB2dyb3VwSURsb25nAAAAAAAAAAZvcmlnaW5lbnVtAAAADEVTbGljZU9yaWdpbgAAAA1h dXRvR2VuZXJhdGVkAAAAAFR5cGVlbnVtAAAACkVTbGljZVR5cGUAAAAASW1nIAAAAAZib3VuZHNP YmpjAAAAAQAAAAAAAFJjdDEAAAAEAAAAAFRvcCBsb25nAAAAAAAAAABMZWZ0bG9uZwAAAAAAAAAA QnRvbWxvbmcAAACWAAAAAFJnaHRsb25nAAAAZAAAAAN1cmxURVhUAAAAAQAAAAAAAG51bGxURVhU AAAAAQAAAAAAAE1zZ2VURVhUAAAAAQAAAAAABmFsdFRhZ1RFWFQAAAABAAAAAAAOY2VsbFRleHRJ c0hUTUxib29sAQAAAAhjZWxsVGV4dFRFWFQAAAABAAAAAAAJaG9yekFsaWduZW51bQAAAA9FU2xp Y2VIb3J6QWxpZ24AAAAHZGVmYXVsdAAAAAl2ZXJ0QWxpZ25lbnVtAAAAD0VTbGljZVZlcnRBbGln bgAAAAdkZWZhdWx0AAAAC2JnQ29sb3JUeXBlZW51bQAAABFFU2xpY2VCR0NvbG9yVHlwZQAAAABO b25lAAAACXRvcE91dHNldGxvbmcAAAAAAAAACmxlZnRPdXRzZXRsb25nAAAAAAAAAAxib3R0b21P dXRzZXRsb25nAAAAAAAAAAtyaWdodE91dHNldGxvbmcAAAAAADhCSU0EKAAAAAAADAAAAAE/8AAA AAAAADhCSU0EFAAAAAAABAAAAAM4QklNBAwAAAAACLAAAAABAAAAZAAAAJYAAAEsAACvyAAACJQA GAAB/9j/4AAQSkZJRgABAgEASABIAAD/7QAMQWRvYmVfQ00AAf/uAA5BZG9iZQBkgAAAAAH/2wCE AAwICAgJCAwJCQwRCwoLERUPDAwPFRgTExUTExgRDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwM DAwMDAwMDAwBDQsLDQ4NEA4OEBQODg4UFA4ODg4UEQwMDAwMEREMDAwMDAwRDAwMDAwMDAwMDAwM DAwMDAwMDAwMDAwMDAwMDP/AABEIAJYAZAMBIgACEQEDEQH/3QAEAAf/xAE/AAABBQEBAQEBAQAA AAAAAAADAAECBAUGBwgJCgsBAAEFAQEBAQEBAAAAAAAAAAEAAgMEBQYHCAkKCxAAAQQBAwIEAgUH BggFAwwzAQACEQMEIRIxBUFRYRMicYEyBhSRobFCIyQVUsFiMzRygtFDByWSU/Dh8WNzNRaisoMm RJNUZEXCo3Q2F9JV4mXys4TD03Xj80YnlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vY3R1dnd4eX p7fH1+f3EQACAgECBAQDBAUGBwcGBTUBAAIRAyExEgRBUWFxIhMFMoGRFKGxQiPBUtHwMyRi4XKC kkNTFWNzNPElBhaisoMHJjXC0kSTVKMXZEVVNnRl4vKzhMPTdePzRpSkhbSVxNTk9KW1xdXl9VZm doaWprbG1ub2JzdHV2d3h5ent8f/2gAMAwEAAhEDEQA/AMwJ1FOqTzzJJME8JKXhOE0J0kLp0wTp KUnSSASQukknRUqCkkkkp//Qy06ScKk88pPKQCeElKTptU4BSQuE4SAUg0wkqiVk6W1KElEKCdMn CSFJJJJKf//RywnBTBOAqTzzNglQsyaqshlFztht/mTH0nR/NOd+Zud9BErXP9Yz8qzqTaMFrhaw t2vA9xewlzdn9ROxi5a7NrlcYnIgjSjbfyevYmOdm15sEy0iI+9VB9adrjNIc380boPz0VXqfTOu WtrtyKLL3wS7IYC4Ok7tjtg+lW7csqnGvvs9OpjnvgnaASdOdFOMcOgbkOVw1dX9XpLer5Iw7Mq1 jKWPZFDNzt5efowAq3TesdXxW25NZa8PGtbwHOf+65v5+xm5Z93T8mrHax9NtjrCHMdtcA380t/O 3Ocr2H9WeqGsZNdJfazVrJAE/fu3NRAA2DKMeKI0ATYPW+s9Rtsaba2mqt1jnGtokN/N9q3MO5+R h03vG11jQ4gea53o+Fk1vzMO+qyi+5rKyXgiGudNjYP+kr+iuocwVD0gNor9u3wjSFDl32aXOxA2 AF7EMZSTJ1G56pSShJJD/9LLCcJk6pPPM2uhTZXSbPU2AWHQvgTHxQkStJfCRBp3HZFGKwOse2pg 9rSTGvZrVj4HTMduTm9Ta0tOcSK2kQWtcZsc3+u5aWRj15NAruYLWAh0OE6jgqQJMT2Vzeuzpg1H TqjvxKn4LcVwLqxEyTJIO6S5u1WscNbW1jRAaAAPIKDjolU6E6qK2yWvm2E9XwqW1uJEuNgbLQPN 30fao9VrDbw4cvbJ+Wittsa2w2OMKln2m2wO4EQB5SocwHCT3LHzNHH5NJOm7p5VdzVJJJJIf//T y08pgnhUnnV5RGFDU2JJju9FjNloRnY7DqRqnwq5rafIK4atFbDrxGgcqyoN4VdxcONFpX1KlZWj qtIaxnuq+SfcPh/FW3MKp5X0wPJRZvlYeY/my1zylKYpKBzV0kkklP8A/9TLCdMkqTzrKVIGBKgo X2bKz4wgV0Bcg910pgfQw/yQtL7Ppwsv6sXsycCmxpn2gHyI0cF0jahtWhAWA68dg4uTjwFmXVAL oM2oAFYuSACUSEFzbBCzss/pPkFo3nlZeQ4OeSOOPuVbPt9WvzWkPqhSSSUDnLpJkkkP/9XKTpk6 ovPLyqmY6RCtOMBAqxbMy81sIaGAve88Bo76fSTZyEQSTQDPy2OU5iMRxSOwbv1d61k9JtJaPUoe f0lR/wCqb+65ejdO+svSMysRcKbO9dvtP+d9By80d080tZaLQ6hzgx1ha5paf5THjcrjsI1Vue65 oqABa+DDp/NYhj58QAF3E7CpX/ddAYOZiZAQvh1l6oUI1xcXFxfJ/XfQ82+hzNzbGOHiHArmuodR waZNl9bY7bgT/mtXNZGFVtrLsxjBcJr0dr8f3WqozpLw6w5VjaGVO2FzpdLvpQxrfpe1Sn4ljI0H 28X930jh9S44s43gB/hwlGOnH65cX6v0/vt/J6wMh5rxQQ082HQ/2WqJ0aAo0dOc25lTXNe2wbmW DghHyaBU0EP3SY2wWn7nKE8zGcwDLWQuIAP8otTmMOcwlMxqGM8Mjcd9Pl9Xr+eHyIEk0pSpXPXS SSSQ/wD/1spOmSVF55jYYCBidQfh5DrGjc17Sx7ZLSQf3Xt+g5TvOiokS5MnESBjIWDu3OUlLGRO JqUdQXUt6pTc1jDVY5gcHPFlznSB+b/JR3dXqta+t+ODSQ0V17oDCJ9zYasdgRgIUH3fHoKOm3qk 2zzueyeIerSXox+qPy8MvT8vqdfJdXRjYxtpqvNbA2d+odJO3aw+9iBVmG31Bl1+s2x/qaHaWujb 7D/VVOuuTKssaAEYcvGvVqbvi9Ua14vT6vR/gsWf4hO/RUY0I8BEJiXDH2/1no/Wen/ONsZTPUYf SHpVtLWVzxP52/8AeT5GWLaxW1pAB3S9xcfgCVWSUowYwYyo3HbWTUlzueUZwMhw5Pn9EL6eni4f TD0R9C6SZOFI1lJJJIqf/9fJTpgUidFReea95VcN1R7QSUMNTC28ekV2hFYySmYyVZY0BIBZkyVs uxkBSSST2sTa6SaU6SF0k0p5SUpJJJJT/9DJSK4BJUXnnu3BncqEMnlcOkmlljt1e9Zt7FEC8+ST gxy3fQkl56kktfQ0tV54kkh9DTrztJJT6IkvO0klP//ZOEJJTQQhAAAAAABTAAAAAQEAAAAPAEEA ZABvAGIAZQAgAFAAaABvAHQAbwBzAGgAbwBwAAAAEgBBAGQAbwBiAGUAIABQAGgAbwB0AG8AcwBo AG8AcAAgAEMAUwAAAAEAOEJJTQQGAAAAAAAHAAQAAAABAQD/4Rk0aHR0cDovL25zLmFkb2JlLmNv bS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49J++7vycgaWQ9J1c1TTBNcENlaGlIenJlU3pOVGN6 a2M5ZCc/Pgo8eDp4bXBtZXRhIHhtbG5zOng9J2Fkb2JlOm5zOm1ldGEvJyB4OnhtcHRrPSdYTVAg dG9vbGtpdCAzLjAtMjgsIGZyYW1ld29yayAxLjYnPgo8cmRmOlJERiB4bWxuczpyZGY9J2h0dHA6 Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMnIHhtbG5zOmlYPSdodHRwOi8v bnMuYWRvYmUuY29tL2lYLzEuMC8nPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSd1dWlk OmFjYWY3NzMzLWYyNTctMTFkYi04OTRhLWFmMzFjODA5ZGNmMCcKICB4bWxuczpleGlmPSdodHRw Oi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyc+CiAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNv bG9yU3BhY2U+CiAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjEwMDwvZXhpZjpQaXhlbFhEaW1lbnNp b24+CiAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjE1MDwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiA8 L3JkZjpEZXNjcmlwdGlvbj4KCiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0ndXVpZDphY2Fm NzczMy1mMjU3LTExZGItODk0YS1hZjMxYzgwOWRjZjAnCiAgeG1sbnM6cGRmPSdodHRwOi8vbnMu YWRvYmUuY29tL3BkZi8xLjMvJz4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6RGVzY3JpcHRp b24gcmRmOmFib3V0PSd1dWlkOmFjYWY3NzMzLWYyNTctMTFkYi04OTRhLWFmMzFjODA5ZGNmMCcK ICB4bWxuczpwaG90b3Nob3A9J2h0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8nPgog IDxwaG90b3Nob3A6SGlzdG9yeT48L3Bob3Rvc2hvcDpIaXN0b3J5PgogPC9yZGY6RGVzY3JpcHRp b24+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9J3V1aWQ6YWNhZjc3MzMtZjI1Ny0xMWRi LTg5NGEtYWYzMWM4MDlkY2YwJwogIHhtbG5zOnRpZmY9J2h0dHA6Ly9ucy5hZG9iZS5jb20vdGlm Zi8xLjAvJz4KICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogIDx0aWZm OlhSZXNvbHV0aW9uPjcyLzE8L3RpZmY6WFJlc29sdXRpb24+CiAgPHRpZmY6WVJlc29sdXRpb24+ NzIvMTwvdGlmZjpZUmVzb2x1dGlvbj4KICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJl c29sdXRpb25Vbml0PgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6 YWJvdXQ9J3V1aWQ6YWNhZjc3MzMtZjI1Ny0xMWRiLTg5NGEtYWYzMWM4MDlkY2YwJwogIHhtbG5z OnhhcD0naHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyc+CiAgPHhhcDpDcmVhdGVEYXRlPjIw MDctMDQtMjRUMTM6MzY6NTMrMDE6MDA8L3hhcDpDcmVhdGVEYXRlPgogIDx4YXA6TW9kaWZ5RGF0 ZT4yMDA3LTA0LTI0VDEzOjM2OjUzKzAxOjAwPC94YXA6TW9kaWZ5RGF0ZT4KICA8eGFwOk1ldGFk YXRhRGF0ZT4yMDA3LTA0LTI0VDEzOjM2OjUzKzAxOjAwPC94YXA6TWV0YWRhdGFEYXRlPgogIDx4 YXA6Q3JlYXRvclRvb2w+QWRvYmUgUGhvdG9zaG9wIENTIFdpbmRvd3M8L3hhcDpDcmVhdG9yVG9v bD4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSd1dWlk OmFjYWY3NzMzLWYyNTctMTFkYi04OTRhLWFmMzFjODA5ZGNmMCcKICB4bWxuczpzdFJlZj0naHR0 cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIycKICB4bWxuczp4YXBN TT0naHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyc+CiAgPHhhcE1NOkRlcml2ZWRGcm9t IHJkZjpwYXJzZVR5cGU9J1Jlc291cmNlJz4KICAgPHN0UmVmOmluc3RhbmNlSUQ+dXVpZDphY2Fm NzcyZi1mMjU3LTExZGItODk0YS1hZjMxYzgwOWRjZjA8L3N0UmVmOmluc3RhbmNlSUQ+CiAgIDxz dFJlZjpkb2N1bWVudElEPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDphY2FmNzcyZS1mMjU3LTExZGIt ODk0YS1hZjMxYzgwOWRjZjA8L3N0UmVmOmRvY3VtZW50SUQ+CiAgPC94YXBNTTpEZXJpdmVkRnJv bT4KICA8eGFwTU06RG9jdW1lbnRJRD5hZG9iZTpkb2NpZDpwaG90b3Nob3A6YWNhZjc3MzItZjI1 Ny0xMWRiLTg5NGEtYWYzMWM4MDlkY2YwPC94YXBNTTpEb2N1bWVudElEPgogPC9yZGY6RGVzY3Jp cHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9J3V1aWQ6YWNhZjc3MzMtZjI1Ny0x MWRiLTg5NGEtYWYzMWM4MDlkY2YwJwogIHhtbG5zOmRjPSdodHRwOi8vcHVybC5vcmcvZGMvZWxl bWVudHMvMS4xLyc+CiAgPGRjOmZvcm1hdD5pbWFnZS9qcGVnPC9kYzpmb3JtYXQ+CiA8L3JkZjpE ZXNjcmlwdGlvbj4KCjwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSd3Jz8+/+IMWElDQ19Q Uk9GSUxFAAEBAAAMSExpbm8CEAAAbW50clJHQiBYWVogB84AAgAJAAYAMQAAYWNzcE1TRlQAAAAA SUVDIHNSR0IAAAAAAAAAAAAAAAAAAPbWAAEAAAAA0y1IUCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARY3BydAAAAVAAAAAzZGVzYwAAAYQAAABsd3RwdAAA AfAAAAAUYmtwdAAAAgQAAAAUclhZWgAAAhgAAAAUZ1hZWgAAAiwAAAAUYlhZWgAAAkAAAAAUZG1u ZAAAAlQAAABwZG1kZAAAAsQAAACIdnVlZAAAA0wAAACGdmlldwAAA9QAAAAkbHVtaQAAA/gAAAAU bWVhcwAABAwAAAAkdGVjaAAABDAAAAAMclRSQwAABDwAAAgMZ1RSQwAABDwAAAgMYlRSQwAABDwA AAgMdGV4dAAAAABDb3B5cmlnaHQgKGMpIDE5OTggSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkAAGRl c2MAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAA AADzUQABAAAAARbMWFlaIAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAAb6IAADj1AAADkFhZWiAA AAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9kZXNjAAAAAAAAABZJRUMgaHR0cDov L3d3dy5pZWMuY2gAAAAAAAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAuSUVDIDYxOTY2LTIu MSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAuSUVDIDYxOTY2LTIu MSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRl c2MAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAA AAAAAAAAACxSZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAB2aWV3AAAAAAATpP4AFF8uABDPFAAD7cwABBMLAANcngAAAAFY WVogAAAAAABMCVYAUAAAAFcf521lYXMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAKPAAAAAnNp ZyAAAAAAQ1JUIGN1cnYAAAAAAAAEAAAAAAUACgAPABQAGQAeACMAKAAtADIANwA7AEAARQBKAE8A VABZAF4AYwBoAG0AcgB3AHwAgQCGAIsAkACVAJoAnwCkAKkArgCyALcAvADBAMYAywDQANUA2wDg AOUA6wDwAPYA+wEBAQcBDQETARkBHwElASsBMgE4AT4BRQFMAVIBWQFgAWcBbgF1AXwBgwGLAZIB mgGhAakBsQG5AcEByQHRAdkB4QHpAfIB+gIDAgwCFAIdAiYCLwI4AkECSwJUAl0CZwJxAnoChAKO ApgCogKsArYCwQLLAtUC4ALrAvUDAAMLAxYDIQMtAzgDQwNPA1oDZgNyA34DigOWA6IDrgO6A8cD 0wPgA+wD+QQGBBMEIAQtBDsESARVBGMEcQR+BIwEmgSoBLYExATTBOEE8AT+BQ0FHAUrBToFSQVY BWcFdwWGBZYFpgW1BcUF1QXlBfYGBgYWBicGNwZIBlkGagZ7BowGnQavBsAG0QbjBvUHBwcZBysH PQdPB2EHdAeGB5kHrAe/B9IH5Qf4CAsIHwgyCEYIWghuCIIIlgiqCL4I0gjnCPsJEAklCToJTwlk CXkJjwmkCboJzwnlCfsKEQonCj0KVApqCoEKmAquCsUK3ArzCwsLIgs5C1ELaQuAC5gLsAvIC+EL +QwSDCoMQwxcDHUMjgynDMAM2QzzDQ0NJg1ADVoNdA2ODakNww3eDfgOEw4uDkkOZA5/DpsOtg7S Du4PCQ8lD0EPXg96D5YPsw/PD+wQCRAmEEMQYRB+EJsQuRDXEPURExExEU8RbRGMEaoRyRHoEgcS JhJFEmQShBKjEsMS4xMDEyMTQxNjE4MTpBPFE+UUBhQnFEkUahSLFK0UzhTwFRIVNBVWFXgVmxW9 FeAWAxYmFkkWbBaPFrIW1hb6Fx0XQRdlF4kXrhfSF/cYGxhAGGUYihivGNUY+hkgGUUZaxmRGbcZ 3RoEGioaURp3Gp4axRrsGxQbOxtjG4obshvaHAIcKhxSHHscoxzMHPUdHh1HHXAdmR3DHeweFh5A HmoelB6+HukfEx8+H2kflB+/H+ogFSBBIGwgmCDEIPAhHCFIIXUhoSHOIfsiJyJVIoIiryLdIwoj OCNmI5QjwiPwJB8kTSR8JKsk2iUJJTglaCWXJccl9yYnJlcmhya3JugnGCdJJ3onqyfcKA0oPyhx KKIo1CkGKTgpaymdKdAqAio1KmgqmyrPKwIrNitpK50r0SwFLDksbiyiLNctDC1BLXYtqy3hLhYu TC6CLrcu7i8kL1ovkS/HL/4wNTBsMKQw2zESMUoxgjG6MfIyKjJjMpsy1DMNM0YzfzO4M/E0KzRl NJ402DUTNU01hzXCNf02NzZyNq426TckN2A3nDfXOBQ4UDiMOMg5BTlCOX85vDn5OjY6dDqyOu87 LTtrO6o76DwnPGU8pDzjPSI9YT2hPeA+ID5gPqA+4D8hP2E/oj/iQCNAZECmQOdBKUFqQaxB7kIw QnJCtUL3QzpDfUPARANER0SKRM5FEkVVRZpF3kYiRmdGq0bwRzVHe0fASAVIS0iRSNdJHUljSalJ 8Eo3Sn1KxEsMS1NLmkviTCpMcky6TQJNSk2TTdxOJU5uTrdPAE9JT5NP3VAnUHFQu1EGUVBRm1Hm UjFSfFLHUxNTX1OqU/ZUQlSPVNtVKFV1VcJWD1ZcVqlW91dEV5JX4FgvWH1Yy1kaWWlZuFoHWlZa plr1W0VblVvlXDVchlzWXSddeF3JXhpebF69Xw9fYV+zYAVgV2CqYPxhT2GiYfViSWKcYvBjQ2OX Y+tkQGSUZOllPWWSZedmPWaSZuhnPWeTZ+loP2iWaOxpQ2maafFqSGqfavdrT2una/9sV2yvbQht YG25bhJua27Ebx5veG/RcCtwhnDgcTpxlXHwcktypnMBc11zuHQUdHB0zHUodYV14XY+dpt2+HdW d7N4EXhueMx5KnmJeed6RnqlewR7Y3vCfCF8gXzhfUF9oX4BfmJ+wn8jf4R/5YBHgKiBCoFrgc2C MIKSgvSDV4O6hB2EgITjhUeFq4YOhnKG14c7h5+IBIhpiM6JM4mZif6KZIrKizCLlov8jGOMyo0x jZiN/45mjs6PNo+ekAaQbpDWkT+RqJIRknqS45NNk7aUIJSKlPSVX5XJljSWn5cKl3WX4JhMmLiZ JJmQmfyaaJrVm0Kbr5wcnImc951kndKeQJ6unx2fi5/6oGmg2KFHobaiJqKWowajdqPmpFakx6U4 pammGqaLpv2nbqfgqFKoxKk3qamqHKqPqwKrdavprFys0K1ErbiuLa6hrxavi7AAsHWw6rFgsday S7LCszizrrQltJy1E7WKtgG2ebbwt2i34LhZuNG5SrnCuju6tbsuu6e8IbybvRW9j74KvoS+/796 v/XAcMDswWfB48JfwtvDWMPUxFHEzsVLxcjGRsbDx0HHv8g9yLzJOsm5yjjKt8s2y7bMNcy1zTXN tc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp22vvbgNwF 3IrdEN2W3hzeot8p36/gNuC94UThzOJT4tvjY+Pr5HPk/OWE5g3mlucf56noMui86Ubp0Opb6uXr cOv77IbtEe2c7ijutO9A78zwWPDl8XLx//KM8xnzp/Q09ML1UPXe9m32+/eK+Bn4qPk4+cf6V/rn +3f8B/yY/Sn9uv5L/tz/bf///+4ADkFkb2JlAGQAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgG BggLDAoKCwoKDBAMDAwMDAwQDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAEHBwcNDA0YEBAY FA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AA EQgAlgBkAwERAAIRAQMRAf/dAAQADf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEA AgIDAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEG E2EicYEUMpGhBxWxQiPBUtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZ hJRFRqS0VtNVKBry4/PE1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiI mKi4yNjo+Ck5SVlpeYmZqbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhED BCESMUEFURNhIgZxgZEyobHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZ JjZFGidkdFU38qOzwygp0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH 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 VvemKC32xVvFW9/oxV//2Q== ------=_NextPart_000_00C1_01C8E336.6DBBC320 Content-Type: image/png Content-Transfer-Encoding: base64 Content-Location: http://www.museum-neuchatel.ch/new/images/logo.png iVBORw0KGgoAAAANSUhEUgAAAFAAAAApCAMAAACV4l6WAAAACXBIWXMAABcSAAAXEgFnn9JSAAAA BGdBTUEAANjr9RwUqgAAACBjSFJNAABtmAAAc44AAPJxAACDbAAAg7sAANTIAAAyjAAAGUerQetI AAADAFBMVEUAAAD////////////////////////////////////7+/34+Pn29vj09Pbw8PLu7vDs 7O7q6uwvMTcnKS+ipKqYmqCUlpyQkpjc3uLY2t7U1trP0dTNz9PLzdHJy8/Hyc3Fx8vDxcnBw8e/ wcW7vcG3ub2ztbmxs7eoqq6kpqqgoqYvMzktMTcpLTMlKS8hJSsfIylSVlxOUlhITFJGSlBESE5C RkxBREo/Qkg9QUY7P0Q5PUI1OT8zNz1/g4l9gYd7f4V3e4Fzd31xdXtvc3ltcXdrb3VpbXNna3Fk Z21iZmtgZGleYmdcYGZaXmRYXGJWWmBUWF6OkpiLjpSHi5CFiY45PUExNTkrLzMnKy8lKS0jJytm aW1KTlKsr7OqrrGorK+mqq6eoqacoKSanqKYnKCUmJyQlJiOkpaMkJSLjpKDh4uBhYl7f4N5fYG3 u7/09vjw8vTs7vDo6uzm6Ork5uji5Obg4uTe4OLc3uDa3N7Y2tzW2NrU1tjT1NbR09TJy81MUlZE Sk5BRkp7gYV1e39nbXFkaW1cYmbR1NbLz9HDx8m/w8W9wcO7v8G3u721ubv///////////////// ///////9///7/f35+/v4+fny9PTm6Oj///////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvL0qAAAAoXRSTlP///////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////ALGggoYAAAdKSURBVHjazJZrUJTX HcZ/592F5bIsIipiYUEpF8Fg1CJ4Hac16qhjJxPTxraIRQsGooJYBXNx2pgU8K6AEGHVcXqLGVux bb7Uy2izeCmiyAIiF+UOgsICC+wu+/bDC8TMdGqc6YecL+875zzn+V/PeQ7i1Yb+5EsAEq80fL1f hhDiVfjUK8taXwJ5NQ/j/P4nXxGgEvhKw4Aq4PBFAEJc+oDYH18HwKD7idcaIwCe2lizJcY0AhRV JV8HEbtOAXl69QNk1t8ECda9A7Bj9qBiZkoIwN1rSkbOlF+oLkoDYLJf5azW6uMAfVOcAXVplbJl wlyAIqOLEnL//WOA2W2Psmq1A3jOUmz3tCQ9mRUKQHL4fK/SUicAnfU+IOtGS7S0ORWoe/JHQKJI DGWBqqxyx4vpkJVPgkje0n8jAYBcOWjb8PDm/5I7nTADNxgAJKxlEWHgY5ebvlH9TgCOqi+HOI9O JZnaUlO1RQDmF41CU0S5ipOyPBeQaI0YnpRPeOD0xm94OEWJv9bLdc5BZSpXKr58JWIQQKcYHcU6 d3vN8OfmNO/nBpBolPUVxpxJS6f1FirrkS8S917qCT7nq+yPsHQ/e8PtxTCeArAjQNsbxkjHo8Ft INGgObLhwb1mL8vwkAIzAcidY7ueLAwJV4riaG5p2h+vUMmApJ8IwAVHYFVzsH3BTyNTQSr0amcg 1OITf+X1xwD49AIu/V4AHEqEJItWCZlj47455gLJ1UpvmRuTW1yiqoODRz4HKalrOsHVpiDervgc AG+HHmJVivHf3UwnrclH8dAkCg0GAOKj/pxOYVnEWgBWTHbYG02Dm7c+ngqqlIc1z4pXuhZxZ3hR FUBl1HC0W3PMcQAOlKuCLJZ/2gBW3a+4U+pzyw5Q5Vsdc23APx9A6EYaeLfjkY253W1IYa1r4PxN sIsYpbAr5lsnDxYooSUvtlntMQMANEfP0c9rcwAwYAqyevScVvI5cyEcWX4Cyme/6m3zLcZ3n1BS x8YVkJ/JXskjzfBBYX7iIfzi/HHdkriLAh0HN+XxUdwHQNpU8jLg1ymkxx2RMnLy9+Afmk9W6FTe dybdnR2xQSdAldIv3W4ylT2bnXjn9hccL5lyvi/5e2Fv9btfWby++XHPiGdXaejla1b4Uc+GzluN uA1XbWy4mN1wNLSm6p27Vy2O589tUrstvMXcGTRvn4xkGDo7/bcdDVTdDZ9IhCG+b2dhdumM1knn Hj+0WOVCyWyhe3UK4NDe/ks4niNPXRI81sXLDoc33ctWIb+eVhgBF36J40mXkyIBTuY+u2TX1i+Q yxMLvrqbIjretfnCl4el1bK6bhGesz8GzpTO91az3snzE7pUPJXpwqdhIiP63wjsvGlHqj09BNIB +1JbJoiIg4NCRBa8tak5S+LIkcGkhJnt0j8SApd+iKYsENgisvvlE/XG8AYmw71Nd+4UDoQPoWr0 k6vX5Mp9acMzwnIA6aO9QghRpDvtWmBIFc4HUsVp3WkhPtQfFy5uRamGXYadgXuEELkpQmhddELs NKRqhNj3vjBopTSRFrhb7NY7afXummw/ZyH+/23Dd72x1YX7nloBNGkHrao9wrBZ+LyX15I5Aieb Mh1AfpbT0O73SA3/FbDT0APgmnQIctpxCMlyKLdVgDx1W27LARuoLi1YcRsg49LPjbpOp8A/eZ/r q9TW2WD5YdkO3pL/A597HehqawCvyAcAG2vrYN7Fh49qqt0flDepbzxUnes3ad8oAQnbjbix2LcI Z78EfQZJJgGwEnjTb5Lv/p955IxKkugGOGZt10J251NHyKopCHFz1eqAZ6MINTL3ZtSPZcDvE4C8 BbVAbhSkfxmdC7BpVDRlb4CsybOiTzHcwcSrXwBy54GvVVXCKXCWdu8Y4VmDSlU0+p8MlIQoUhiP kCTp2GgJIwO8HjgDqjZFbBMNx1RFCASgRtiigytTjoJMYWDAZ/MdlWOSWwGWLscovdUrij9EeXQA ulbL1el+9SATUwWyaDKKDTaomKb0obQ9u/lfGjuCzWhei6wPGaVoaAHVzPGGdbi7u2ubAZbr6vr0 keNKL+SOukiNHSKUHCKwLPn7srPLAGI+hUSSzjmA5yv/yvCT8f6yXAHWTACNql9PzPldB5GnFQMw 53oBIAsBSMhAlrltqiwDZwDIEVsB7f1sftCkGz8CAHIE7K8JW7iwgscglAeLGBUrZEBSgI2zR0zy eKWeMQjqfwe64Wb/oStwyglZHntW/F4qLr5UvPhyHrQpQjmimKw4BahESEs7UL6uNci4oGFzeLT7 eqM1pPZt8zT72u3c2mpctKRvXknHSEhrOzBz8FHGo41/s1ltNQEXB4/W+t+FCa4zV7utrbJ6ui1Z FlUh4bIQgJiJKj4TJqPRrIGS79/rVJnTgY9X9prmmV/LQ78IwFlDs18GQO+EVDz04cAvpncZ+yZt xSpEyVeqry8H9eHtL5xxjVP/2G+OsyXl218O/xkAibXNvE4ThUAAAAAASUVORK5CYII= ------=_NextPart_000_00C1_01C8E336.6DBBC320 Content-Type: image/png Content-Transfer-Encoding: base64 Content-Location: http://www.museum-neuchatel.ch/new/images/home.png iVBORw0KGgoAAAANSUhEUgAAABoAAAAwCAMAAAA4o5qsAAAACXBIWXMAABcSAAAXEgFnn9JSAAAA BGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VG AAADAFBMVEUAAAD///8jHyAkICEjICEoJSYnJCUsKSosKisyMDIwLjA3NTc6OTo5ODk9PD47Ojw6 OTs5ODpAP0E/PkBZWVxYWFtUVFdHR0lGRkhDQ0VAQEJTU1VPT1FOTlBNTU9MTE5LS01ISEpYWFpV VVdUVFY7OzxFRUZDQ0RAQEH9/f76+vv4+Pn39/j29vf19fbz8/Tx8fLw8PHv7/Du7u/s7O3r6+zo 6OlgYWRcXWBtbnFrbG9pam1lZmlkZWhjZGd6e354eXx3eHt2d3p1dnlzdHdyc3ZwcXSGh4q5ur24 ubxSU1VOT1FNTlBMTU9cXV9bXF5ZWlxYWVtXWFpWV1lVVlhUVVdTVFZmZ2llZmhkZWdjZGZdXmBv cHJtbnBsbW9rbG7e3+HX2NrW19nT1NbR0tTNztDLzM7Ky83Jysx5e354en13eXx2eHt1d3pzdXiJ i46HiYyFh4qEhomDhYh+gIN8foGanJ+Ymp2XmZyVl5qUlpmTlZiSlJeRk5aMjpGwsrWrrbCqrK+p q66oqq2mqKulp6qjpaiipKegoqWfoaSeoKOdn6K6vL+5u764ur23ubyytLdsbnBrbW9oamxkZmhj ZWd4enx3eXt2eHp0dnhzdXdydHZxc3VvcXOKjI6GiIqEhoiAgoR/gYN9f4Glp6mipKaho6WeoKKc nqCZm52SlJaPkZNJSkvFx8nExsi+wMK7vb+6vL65u724ury3ubu2uLq1t7mytLarra+qrK6nqavN z9HKzM7v8PHq6+zn6Onm5+jj5OXi4+Th4uPg4eLf4OHe3+Da29zZ2tuZnJ6SlZevsrSqra+prK6g o6WdoKLe4OHW2NnT1dbS1NXP0dL9/v77/Pz6+/v5+vr4+fn3+Pj29/fy8/Px8vLv8PDs7e3r7Ozq 6+vo6ekjICD9/f38/Pz7+/v6+vr5+fn4+Pj39/f29vb///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACvRXfCAAAA7XRSTlP///////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////wDq QUQKAAADLklEQVR42mySXWzTZRTGf+fdP35g3CpsiCzIAq0IBaUjOD/aAaPUAEbaBmaEZCq4IFni jMnkwqiJF8QqgUWo0Zhg9GLTWhYCG0Zli+u/Y8LMYNpmm60fLGOmM2HVRI0G9nrxb9eR9Vyd533y nHPe8xwRes9WJZLOpBOnJJwR6iGyqjIyRIl07Cm/5JOSRa7F0bWLDfEZRnRNdaz0zglc0VfHZU64 KpqFxvkZKRIDC6+qwKaN5GLU25JP6dU+dUx359Bv5q/HBvPUCjeqKQ8ywVPdbTVtM7puBX8AsObT qy1Lg583hCxCs5nOimERkd8bqmIiIqdvuyQiImcCTpXyAPzYbn6yAWDHZw/ndB3Kjg1Ge0PzN1gv /vZDhwCwGVyGdV/6Pzzwt6AjoM15r72y935NnZFeCx9F+h7Z/OKNyYWlk8vNgY+nq25BzKThMDUP QM/KITvAhcZrLgeApy4//K3GTquXxMYAwvQY2gRg3nUhdnH5sgfF2pvP1ArKAFqNKH0twX52zuxK iUcAGq/DvZCAPw8CEBelyQIIv6AVTigNAXzlzqq0VVCXrODnaYZodwHQhE3ZrcJ3JMJvl12RsVBt bFmul/He7V6Au96ZGtenNwX+ev+tHfk5OoPDxQ7gSHlGaavX3KhTUpxweDoUeItypk1hzqB90VmU h5zLAOfNkZt0ypFX9QdT/xXew8DWigkREfnW9rpvyfHd4XDt7qcHRc4ERo2mEwA8u2X//m2nppxl Vx6/kfwOdNxmWPrLG1843DXiTAJw8AdIu7VKATz31LvNjGAxVCfBgSgHsP78yw1LCiN8L5ACBfDP 1jdjcz+tUgiJ1vpdhZ/z5CpwgLKbGji6Z+83SVZa1MnVoONZJdY2jmyvnzy63u/3l/sXHFeQdgeN fJXWlw4Pv7GIi+s4MF0CdhM6c9sQOaG+mGVlIKO0J+/YvuaBWX5RZ6QL8PlMIdf0GPfFr+Xh6pus xFj6daqoyw9NUX13qMhBJR/7QES6dj3zaFrVXNCCfqILqFlw9t/EYFutCCf7xyYqAdxxYFwq3X3e n7bUIQIkbUjWRrYM7zkv57w99wD8PwD9ngl666SThAAAAABJRU5ErkJggg== ------=_NextPart_000_00C1_01C8E336.6DBBC320 Content-Type: image/png Content-Transfer-Encoding: base64 Content-Location: http://www.museum-neuchatel.ch/new/images/corner-lt.png iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAACXBIWXMAABcSAAAXEgFnn9JSAAAA BGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VG AAADAFBMVEUAAAD///8cHBscGxscHBwbGxv///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgVLoIAAAAB3RSTlP///////8AGksD RgAAAExJREFUeNrckTEOwEAIw+Lc/5985IbuZUCtqma2CGDQbZbVpAPogDw/Yb7k7oD5o+ZXfAF4 QVaNXWRcYfiBLLEcIjYKlFHicoW6gDMAKr0TRBZSOJcAAAAASUVORK5CYII= ------=_NextPart_000_00C1_01C8E336.6DBBC320 Content-Type: image/png Content-Transfer-Encoding: base64 Content-Location: http://www.museum-neuchatel.ch/new/images/corner-rt.png iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAACXBIWXMAABcSAAAXEgFnn9JSAAAA BGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VG AAADAFBMVEUAAAD///8cHBscGxscHBwbGxv///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgVLoIAAAAB3RSTlP///////8AGksD RgAAAE1JREFUeNrUkTsOwDAMQgH3/jeO6VB1rQcUqfH8hPmwGp8nYQA8AYwVkL6oWGH2kPeQp9AP Yjo22fsVvH+LE4DrTdPiEvjUQqwyaBr3ABtXEE4f3JZ8AAAAAElFTkSuQmCC ------=_NextPart_000_00C1_01C8E336.6DBBC320 Content-Type: image/png Content-Transfer-Encoding: base64 Content-Location: http://www.museum-neuchatel.ch/new/images/corner-lb.png iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAACXBIWXMAABcSAAAXEgFnn9JSAAAA BGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VG AAADAFBMVEUAAAD///8cHBscGxscHBwbGxv///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgVLoIAAAAB3RSTlP///////8AGksD RgAAAE9JREFUeNrck0EKADEIAye6//9xzR56rwcpLOtNGCJJUA+yjFZiAGQqXbHYqzhP8AMgOsAd oPGJuq+gMcA4qLrfhT9gM8cKjF30OXTfHe8ADOoTRy8eZE8AAAAASUVORK5CYII= ------=_NextPart_000_00C1_01C8E336.6DBBC320 Content-Type: image/png Content-Transfer-Encoding: base64 Content-Location: http://www.museum-neuchatel.ch/new/images/corner-rb.png iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAACXBIWXMAABcSAAAXEgFnn9JSAAAA BGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VG AAADAFBMVEUAAAD///8cHBscGxscHBwbGxv///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgVLoIAAAAB3RSTlP///////8AGksD RgAAAExJREFUeNrckjEOwEAIw5zw/y+TLl0rBnpDy2wRhCMBgCO3WyLtRKSCotYNPI75AlADUOOG KcM6H8H2BucXNtedrHVhXvjkXtZ53dcADt4PUYkrKMMAAAAASUVORK5CYII= ------=_NextPart_000_00C1_01C8E336.6DBBC320 Content-Type: image/png Content-Transfer-Encoding: base64 Content-Location: http://www.museum-neuchatel.ch/new/images/printer.png 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 AAAAAElFTkSuQmCC ------=_NextPart_000_00C1_01C8E336.6DBBC320 Content-Type: image/jpeg Content-Transfer-Encoding: base64 Content-Location: http://www.museum-neuchatel.ch/new/images/dynamic/pages/3/2.jpg-thumb.jpg /9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcg SlBFRyB2NjIpLCBkZWZhdWx0IHF1YWxpdHkK/9sAQwAIBgYHBgUIBwcHCQkICgwUDQwLCwwZEhMP FB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy/9sAQwEJCQkMCwwYDQ0YMiEc ITIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy/8AAEQgA UAA1AwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMC BAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYn KCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeY mZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5 +v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwAB AgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpD REVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ip qrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMR AD8A8cTVNWaNWGu3Sk9QZ2/xpv8Aa+s8ldbu2HOMXDcnBPr7frXpi/DPQD/Dc/8Afz/61TL8LvD5 6rc/9/f/AK1Rr3Nuenp7v4nlh1vXFniiOt32HxyLh+M/jStrWsgR7tavwX/vTvgcjvmvVf8AhVnh 7+5df9/f/rUjfC3w+Oi3P/f3/wCtQLmjr7v4nl51DVj11679eZm/x7VVj1TWZoy/9rXSqDj5rhv8 a9Tf4ZaAOi3P/f3/AOtVZ/h1oajhbj/v5/8AWoV+45Tptq0LfM8yk1XV0IB1O7YkZ4nY4or0R/AO ig4C3H/fz/61FUZtxvoj0iOPmrkcfHSubTxE6jH2Qf8Afz/61aFjrF7fS+Vaaa00mMlUYnA9TxRZ k3NsRcU14uKmt7bWJGCzWdvAfR58n8gDWh/ZuI90km49wgwB+NSM56WKs6dBzV3XribTcSRwCSE9 WLYKn34rlp/Ech4+zr/33/8AWqkmIuSJ81FYcniB93+pX86KYhIpDMSEBbHXHau3+HPmp4gmDx4V rZupBzyp6Z9M15nbQbrjzxKY1I+ZVb7v+cE/jXa/DSa7Hjm2WQv9mYSIrOp+YbD36HkVPO2yuU9N urtXmk2BVIOMise6vWUsfM3Bfc1d1iLyHZ0BHUdPesYHADSRkj0AzmqsTchaeS7/AHIhV0k+U7+n 5V5dqsiWupXVuDgRSsn5EivZLG2je9jlCFVBGQa8m1u3tpfEWptEUmkN3KXRjgAbz+nBob5UCXMZ Udtc3UYlhiJQnAYkAH6Z60Voq9qlxPDczNIiN+6WNgqop5AAoqedj5UUtPCX2/5okURlmVzzkZJG 3v1xXYeFr/7Hrmn3EjNsjmUHHQAnB/nXD2elXds8VxdIY2xgRl8nn2rXlAW2kCMyMVycHGaSRTZ7 VrbA3JUsdvJ9qwGZlk4fIHTNMt9cXV/D9nfu48wpslycfOOD+oz+NcvqPjHTrMuHulkdeNsXzH6e 1aGbO7tr+NZFG8Ejkk145q8nnXU7ktiZ2Jx7k0698bX1yCtlbiDPWRzub8un86xobiSVWaRmJZuQ x6UmOKsW4702csjNLmSXDMQOPzxz/wDqorB1G+SQrFIjKY3baUzkqQuM4oqHEq5d1HXbozkQsuwH J384+lVrbV9V1CYxWzR8dW28VfXw7Fc+HY797p98pLLGqjhe2fesGwvn08yIMKJVA5GOhzVIRduo tSNsyT6jjGWEBb5c/QcZrKtnlAId2XK5UhgPzq1JO1xKzbmY4zn/AA9avRGFtJWKIq5Tk7lwVz/P 8aYFbS0SXVY7fVZriC2YH54yMqcZHUVpapp+n2kgFvqNxLEOSzsAKzSEkkwH+UbSSRhj06dqr3kZ 81MfMT6nOBn0pXHYmthzI4yA5zj0oqBLu6hJRrfkehoqGmUmj//Z ------=_NextPart_000_00C1_01C8E336.6DBBC320 Content-Type: image/jpeg Content-Transfer-Encoding: base64 Content-Location: http://www.museum-neuchatel.ch/new/images/dynamic/pages/3/3.jpg-thumb.jpg /9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcg SlBFRyB2NjIpLCBkZWZhdWx0IHF1YWxpdHkK/9sAQwAIBgYHBgUIBwcHCQkICgwUDQwLCwwZEhMP FB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy/9sAQwEJCQkMCwwYDQ0YMiEc ITIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy/8AAEQgA UACMAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMC BAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYn KCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeY mZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5 +v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwAB AgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpD REVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ip qrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMR AD8A8ODU4PUINOBoAsBqduquGp+6ncCQvUbSVGz1A8lFwLqWmoSKGSyndT0Kxkg04WOp/wDQPuf+ /Tf4V654dMVv4Y06WRQd8eAMZJ57VvRXWnttAeEMxxhuCDWfNLoh+6jwgadqp/5h1z+MTf4U86bq oH/IPuf+/Tf4V7tNbxx3C+Y0KFhkBmxkUjW58oSIilG5BxRzT7CvE8I/s7VP+gbdf9+W/wAKhltN Qi5ksp4x3LxsAPzr3cLj/lmv5VzPiwKdHuX2AEL2H0pc0k9Rrlex5SslSq9Z6yGrCPWtxFvfSFqi DUFqLgOZqZuppNNzRcBgNOBpgpc0gHg0uaYDS5oARzVdutTtUTLmgD3nQIVbwpoOSQWhbkdua02t LdpSJY9+RxnnpWdoTkeEtEwGJWFugz3q414N2HJDA9D3H0qUtBlm1t7dLwmKKN12j5XUMP1qwWuE dkRI9meUAwPqPSq9rcQQlpPPjVgQArHB/DNF3qFuGDeciuOmGFGoaGhJHbxWzNLGyyAfdHNcL4uk ik8NXkkXTH9RXRyasHgKySKwDYHNcv4lKt4RviOuT/MUPoJJLY8aHWp0NRhakUVQEoNKTTM0ZoAX NJmkzRmgDvzp/wAOARjW5WHQ/wCjTD05/n+X406LTPhy0QMmvSLIR0FrKQDx1OfrXndLXV9bn2j/ AOAx/wAjL2Me7+9ndy6f4FW3keLVt8in5UMco3jHY/l1xUUlh4NEQaLVEZ8fMjJKO3Y4OfTtXE5p apY2S+xH/wABRPsF/M/vZ2Elj4UBXZfxuCuTzIMH05FNuLPwnHah47sSSEHKLvyPTqOc1yOaXNX9 fdrezh/4ChfV/wC8/vPd/CWpWkHhvT0kuIA6R/dZwCDk10H9s2THJuLYn/fH+NedWdjajwvbzvqe mxkoNyeUGlUc5zz16VxMl/biRgjFkBwG2EZrh5Wup0XPev7XsRnE0Byc/wCsH+NV31ayBJ8y3OfV wa8M+3w+/wD3yaab2E9//HTSs+47+R7RcXWlzLho7Rj6/LXOeI3tDoNzDG0SRtjIU9BkZNedw3Ns 86LJJsUn7xUkD610mow2a+Hbh1FqbgIRujCqT+A5otZp3uLcz4NK8MTHDajDF/vyP/hUsmg+G0xs 1ezkJOMLOwxxnuB9K4ykzXe8drf2cPuOf2H95/edkNF8NmNm/tSDerY2efyR6g4xj8c09/D/AIcU 4/tW3PTkXSmuJoo+vr/n1D7v+CH1f++/vO8i8K+G5CwbX7KMhcjN2uD7cCkk8KeHkbA12yf3W9T/ AArhM0VP13/p3H7h+w/vP7xKKD1NFcRuLRSUUALS02loA1oYIZblxNKYx2IXOTWiulWoI/0psH/p nVjT9HEmJ3G8uMhPatm30yNWz5YTHQGuGrieWVos6oUk17xhHSbTODdMD6GI0f2PAThbrJ9PJIrp ms07oBjv3FIbBHXICsay+uTL9jA5ObRFUH/SF/74NZTRiK5ZQc/uX5/A13TWBUHy9pb0PAH4Vh6t pSwwy3ZPzrGykAY7elbUcVzStIzqUUleJydJRSV2nMLSUUUAFFFJQAp+8frSUrfeP1pKQxaKSloA KWkpaAPS9KuJI7OFHVVG0bWA6j3rTVHzzyx7+1U9KZm063VFAxGOe5qzvfdtAO4+teLKPvs71shw b5iDx24qOaINgCQKO+BVhLYffkO9v7tRzea4A8vCjoMdKXKO5Te3jjXczZHXNZmuJjSJ2DZG3pWy IAR8wLH+7WN4hjZNJnO35cY+lVS/ix9RTfus4CiiivZOAKSiigAooooEf//Z ------=_NextPart_000_00C1_01C8E336.6DBBC320 Content-Type: image/jpeg Content-Transfer-Encoding: base64 Content-Location: http://www.museum-neuchatel.ch/new/images/dynamic/pages/3/4.JPG-thumb.jpg /9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcg SlBFRyB2NjIpLCBkZWZhdWx0IHF1YWxpdHkK/9sAQwAIBgYHBgUIBwcHCQkICgwUDQwLCwwZEhMP FB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy/9sAQwEJCQkMCwwYDQ0YMiEc ITIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy/8AAEQgA UAB4AwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMC BAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYn KCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeY mZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5 +v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwAB AgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpD REVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ip qrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMR AD8A5+RiX46Uq8Dk1GjZOTU42N16+1eYdYKqbsjk1KDmouAeOlSDiquKw4A54qVRnmowfSpV7UDJ FLbevFPX7vvTQBzQzCKJnYcKM0ANkmER2jBc9vT61PAkkqFihPv0rBivGmv2ZscNgCumgmCKDuXD dBmuWdRp6HfSw8XG8iGOVfMMTKyuP4WGOKsAVHeRiRN4AyvIIqG0ud21Cc5HWrhVvuZVaKj8JbC5 OKTy8GrKwEHn8qUxAHmtLmCKbqAMYoqxLjp0opAcmFCdTz6U5WAqHkmnitLGZMOak/hqJemar316 LO33nljwBQMsTXkVsuXJz2UdTVVfEVujYlikQepGa0dL02Ce38+5w8jjJLfyqhqml2A3Oq4PYBsC s1VjezNvZOxs2s0dzCssRBVuQaq63Obex+X7zMBWD4dumt9Te13ExuMqp7GtDxA06NkZKkfL7GtJ KxnHcwWvbiFpPs64dnOSVyR3x+taug/bb+K6hvWKyhN0J6bT6nFZun3IQlVUEZ5yOtWVu5pNS3Q3 hhUrtZUHP4e9ZyX2bfM7adrczfyNTTNI1eG4zNMSAc8uef6YxV2ASW9wyv0B4NW7a6SYLGkzSEIN 27r9aytRE0F4WVsq5Cgdwaz1k9RzikvdO0ikSVA4OQe9OYZPH50yyt/ItI05JC8k+tSkEiqOQozI N/X8KKnlVSDiiqEcOpqUGq653VYXpWhiSLxXP69KXuFjwQFHHvW+h9ap6nbW88HmTOYwnO4U4uzG WETz7SDMpCBRlfXiqF2sE2oSAvwEG3B6cVat5UijFs8m2SL5SemcVRulVZGPmBsjtWEdJHZo0S6F ZpNqcswyFixj3NdPeWgvLWSEnGRwfes7QLQQWrMAd7nLZ/StteelbNnK9zzaUPp960T4Xb6djWL9 qkklaQtgk5wOAK9fudNtb1GE0SsWGCcc1wNr4J87eRqcLlSR5anB6+pq4VIR1kU1UmrR1L/h3W5H tzb3LtI0bAxsTk49M1tQaVLd+JILxXKqQpcfSsTQ/Dd1bao8bpIxyNgIxx6k9K9FGlx2di8jyhZV G5pCcAAdvpWU7c75NjW79mufcunA4phZcdRXEx+ObT7XJFvZIh92VhkN/UVqw+JdOcnzL61A9fMF J05IzUkzcbYw6c0Vkf8ACR6N0/tK3/77opcsgujl1NSqeKiRSegqjq2ofYYAqH9+/wB0eg9a1Sbd kYl65vYbOPdK4HoO5rn7/VGvdoClYlOdpPWsuSd5pN0rs7HuTT9wIrdU0iOa50usNOWFwlsjRNGr CRc9Md6yo7sld6qoYdAece9dFoF2J9GVQ2Li1b819D7Gubnna4vJZyMGRskAdOelYQ3cWtjaTdk0 9y5aaneQXLT+exkb72453V0Nr4lDMBcQlfVlP9K5LgArnJU4zV+3UsqHHX9aqSRKPQfM8y0Z4AHJ QlOeCccc1yujxr5yslvFCxOf3xJJ/OqJ8VxaPDLagG4JU7UzgIT6n09qi0LVIjMIyEJZRv8AOHzH PIIrCrTly3OrDTipWPQoblldXUYAHIHcVx/jzxO0kp0e0kPlKAZ2H8R6hfpWrcamun2bzu25FGQQ evtXnWo3rapeSXM+BI5/h7DsKeEi279AxjWncou3FMDFm9qZJHKJMs3yDoRTg6BTt7V6J51xS3NF RbuPrRRYLnpbFYwT0AFcLqF0bu9kmzwThc9hXW6tL5Ol3DbsErtH41wwPJFYUVuy59h6/M9TKear Kfn+tTBufQ1syEaFhfSWVyJEPBG1h6iti60fzIRe2kmY3G7Y3b6GucB4rZ0/Uf8ARTaSHjqvPeue rFr3om1Np+6ynu2eY7cY659ap3GsSGJorcmNT1bv+HpV3UXH2KTvgdfc1zvatKaUldk1G1ohyRmW RI15Z2Cj6mupvDb3OpG2MyQpbW/lwsWx8wx/n8K57TXVL+OWT7sYLfkKbc5nBmY8kliQe5qpR5mT F2RKL24miKTTF1DfdzxTS4Bwcj61mK7I2QatfafNHzfe9fWr5UtiXJvctZLDAxg1C0JwduAfSow5 xwaN2DkmnYVxnnDgBenXNFDoQ25TweoIopiP/9k= ------=_NextPart_000_00C1_01C8E336.6DBBC320 Content-Type: image/jpeg Content-Transfer-Encoding: base64 Content-Location: http://www.museum-neuchatel.ch/new/images/dynamic/pages/3/5.JPG-thumb.jpg /9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcg SlBFRyB2NjIpLCBkZWZhdWx0IHF1YWxpdHkK/9sAQwAIBgYHBgUIBwcHCQkICgwUDQwLCwwZEhMP FB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy/9sAQwEJCQkMCwwYDQ0YMiEc ITIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy/8AAEQgA UAB4AwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMC BAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYn KCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeY mZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5 +v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwAB AgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpD REVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ip qrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMR AD8A7C31PUBc273LxyWrKwkEZOduOMZ7g8H2PtWkmufZgcTBFAwFYlwPrisOUosWVuodyjCkscE/ hTBcoyIVkRnAwWUnk/XFMR0LeJCYf9MtIXhkyGOflx7gj608a9Hs3WkEEZOQCFwSB9cVhru3I/mZ jjO4D73P0rR0/wAmRxceTJMx5WQsMD220gJX1jUpVkhhniMgiLZEW7Bx1Pbr7dqxrLXNZeELvXyv umTyyrEkcjjHT9OlW9XfVk1OO5s03JFtyiLjcMHII7g5rTmjtZFgmuENvNKu7yzgkHHU4x+tAzJi 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 x3+QZooA/9k= ------=_NextPart_000_00C1_01C8E336.6DBBC320 Content-Type: image/jpeg Content-Transfer-Encoding: base64 Content-Location: http://www.museum-neuchatel.ch/new/images/dynamic/pages/3/6.JPg-thumb.jpg /9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcg SlBFRyB2NjIpLCBkZWZhdWx0IHF1YWxpdHkK/9sAQwAIBgYHBgUIBwcHCQkICgwUDQwLCwwZEhMP FB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy/9sAQwEJCQkMCwwYDQ0YMiEc ITIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy/8AAEQgA UAB4AwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMC BAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYn KCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeY mZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5 +v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwAB AgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpD REVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ip qrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMR AD8A6y+h/sqXAZnVxuG84Knnk/8A1veqpkMih0dzEvIAbPQdD7YzXfXunW+oweVMvHZgeRWGfCzw I7xyjeueTxvH9KCbnFh1tr6JWy1rJnO3sTxkeh6fnUmhXj2VyN8kzReZsDBuo4wPXv8ArW2LuyhD p9iRXXOQexFRXejW2qwpcWLrG+3c0MZ/M/XpQM6bz4XkZo5CgQshVpOCQOvPTt71JbS7hHIspHm8 hHPIOMkZ7/8A1qx9NtnTT3a6nZz8rZz2A2HnJqKG4uTM3lQrNDvKhkPGAePx5zQB1Nyttf27RzRo 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 ------=_NextPart_000_00C1_01C8E336.6DBBC320 Content-Type: image/jpeg Content-Transfer-Encoding: base64 Content-Location: http://www.museum-neuchatel.ch/new/images/dynamic/pages/3/7.JPG-thumb.jpg /9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcg SlBFRyB2NjIpLCBkZWZhdWx0IHF1YWxpdHkK/9sAQwAIBgYHBgUIBwcHCQkICgwUDQwLCwwZEhMP FB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy/9sAQwEJCQkMCwwYDQ0YMiEc ITIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy/8AAEQgA UABqAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMC BAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYn KCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeY mZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5 +v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwAB AgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpD REVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ip qrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMR AD8A9KupraSUbgzDJ2qDx+Jp4v4xBiGFYz6s2cf1rnpdQlnTKgRxgd+pPemLrkFrZrNd7fKaTYM8 ZOM1z2ZdzoJ2urmFWV42A6hcj9aqXEPlESPay7f4ijc1yGg+ILv+3rhtSuQlkUMjDPyxjIwOPqRj v70zxH4vkLF/Dc6SJGuJZGXnPooIos0x2e1tTqDbRzKDCcPjoxBz9agkt54RkzLg/wC13qpHdST6 dHdTDyxJGH3D3Ge3/wCusyyvGu7x4Gm3LtZhhenTHOeev/6qpNi5G1dHT29wkY+YbmB65OQauOQ0 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 tx/tCm7rI8h48f71AH//2Q== ------=_NextPart_000_00C1_01C8E336.6DBBC320 Content-Type: image/jpeg Content-Transfer-Encoding: base64 Content-Location: http://www.museum-neuchatel.ch/new/images/dynamic/pages/3/8.jpg-thumb.jpg /9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcg SlBFRyB2NjIpLCBkZWZhdWx0IHF1YWxpdHkK/9sAQwAIBgYHBgUIBwcHCQkICgwUDQwLCwwZEhMP FB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy/9sAQwEJCQkMCwwYDQ0YMiEc ITIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy/8AAEQgA UAB7AwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMC BAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYn KCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeY mZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5 +v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwAB AgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpD REVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ip qrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMR AD8A89xiirq6tOy4ljtph38yBCT/AMCxn9aX7XZSf63TlX3glZf/AELdXKfUKT7FGirhXTZPuy3U J9GRZB+YI/lTTZxkZivLeT2JKH/x4AfrQPmRVpelWPsF0RlYHkUfxRjePzGarkFSQQQR2NA7p7BQ ASQAMk9hTlQsCQCQOuBmtPTbJpsliYVB+Zg4DY93PC/hk0OVjCrWjT03ZFaaeZZxE0Uk056W8P3v +BHooro7LQZLqMi4VZ4o+TbW0gjtoj/01mPBPqBzV21it4bcW9naiZDyRzHAfr/HJ9Tge1XzatcR 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 JCPapldSBxVcjFSq42jOPxFDXYbP/9k= ------=_NextPart_000_00C1_01C8E336.6DBBC320 Content-Type: image/jpeg Content-Transfer-Encoding: base64 Content-Location: http://www.museum-neuchatel.ch/new/images/dynamic/pages/3/9.jpg-thumb.jpg /9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcg SlBFRyB2NjIpLCBkZWZhdWx0IHF1YWxpdHkK/9sAQwAIBgYHBgUIBwcHCQkICgwUDQwLCwwZEhMP FB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy/9sAQwEJCQkMCwwYDQ0YMiEc ITIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy/8AAEQgA UAB5AwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMC BAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYn KCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeY mZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5 +v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwAB AgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpD REVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ip qrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMR AD8A7vT/AIh2GpMyLbyRuDwrsOV7Grv/AAk8c0hiiaJZByV3ZOK8WsHClDvYFVyGzgkVpQzkTJLb yfvAc5z3pWGetxaw+8GQlvYACtMXRNt9oMLiL+9is7w99kXR47lpEMs8YLdznuPzzW19sDxhI1IB XqRkY6dKLBcqJqVvtzyPwqVb+Fugc/RasNb2ktqI5I1eMc4xjB9eKctpaS2/kRxKidQe4NKwXIxM sg4VvyppznoRUtpbRQK1vI26RxnIGOPal+ykB0EvzjkZHGKLBcgbJ6AfjVWRZAx+Un6DNPayuN2W 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 X/1qAP/Z ------=_NextPart_000_00C1_01C8E336.6DBBC320 Content-Type: image/jpeg Content-Transfer-Encoding: base64 Content-Location: http://www.museum-neuchatel.ch/new/images/dynamic/pages/3/10.jpg-thumb.jpg /9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcg SlBFRyB2NjIpLCBkZWZhdWx0IHF1YWxpdHkK/9sAQwAIBgYHBgUIBwcHCQkICgwUDQwLCwwZEhMP FB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy/9sAQwEJCQkMCwwYDQ0YMiEc ITIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy/8AAEQgA UAB3AwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMC BAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYn KCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeY mZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5 +v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwAB AgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpD REVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ip qrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMR AD8A9Fiie3Ecq3kvmhQAzEn5QQcH2yP1rTS91FSMSQTtjcQMAnttz9efwrlNG122u5UtbjZHdIuc EZVl710LPGZykccoCsAY1GAxx1+lUBNceIJls9otcXXGG6r1HP0+9+lakOpx3kBe2TLHPysQCB2J HpWZIG3q7leG/wBUAMAe/wCOOKilt4XcOFHzABSPlHfI+nApAbJuBbmOO5ZE3khcDjgZNSCS1W3E pZRE2cHAwcZz1+h/KuXvmjs5QX3O/IEZOT7/AErJnZ7h8yn5c/KnZfSlYDsbfV9J1KPy4l3f7Dpt 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 47L2oo0A/9k= ------=_NextPart_000_00C1_01C8E336.6DBBC320 Content-Type: image/jpeg Content-Transfer-Encoding: base64 Content-Location: http://www.museum-neuchatel.ch/new/images/dynamic/pages/3/11.jpg-thumb.jpg /9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcg SlBFRyB2NjIpLCBkZWZhdWx0IHF1YWxpdHkK/9sAQwAIBgYHBgUIBwcHCQkICgwUDQwLCwwZEhMP FB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy/9sAQwEJCQkMCwwYDQ0YMiEc ITIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy/8AAEQgA UAB4AwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMC BAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYn KCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeY mZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5 +v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwAB AgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpD REVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ip qrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMR AD8AuW1lNHG3BKgnLMealk82BTiN2bbkDOB0z1NZMstzPalog0eVztxliP6A+pqG31fX7iGURWtq iImT5vAY/p+dcto7kW7mndWd3IIn2bCxKyE4YID0xmq1zpYWBilurOw27mIG8fifxpvhOS/1q3uB qN39mlilZYTGR8+O+SK2J9CtLmIyyPIPlwzTDI/LOKHZAcv4ThtILC7tdUimuLp5W2IX4Vc9Ae/b pWnc2NsEe1trzyQfmW2TIAGP4jj+dXLSPSGUWdvGZHXIykYHQ9cjA+n0p505lAVYlWFRkFiFIIHA 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 PvRSGf/Z ------=_NextPart_000_00C1_01C8E336.6DBBC320 Content-Type: image/jpeg Content-Transfer-Encoding: base64 Content-Location: http://www.museum-neuchatel.ch/new/images/dynamic/pages/3/12.jpg-thumb.jpg /9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcg SlBFRyB2NjIpLCBkZWZhdWx0IHF1YWxpdHkK/9sAQwAIBgYHBgUIBwcHCQkICgwUDQwLCwwZEhMP FB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy/9sAQwEJCQkMCwwYDQ0YMiEc ITIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy/8AAEQgA UAA1AwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMC BAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYn KCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeY mZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5 +v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwAB AgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpD REVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ip qrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMR AD8A8a0cbtWt1/2j/I17nfW8ph8sbmyRtUjjvzjsa80sItIbWLCKDTvKeVMh/NY4OD2Ne5va2bRi 4w20oMKe/rmpuaSRxT6OZLlFSHc5HYe/cd6st4bli1AJLDJC5wxQx4ropLlbKF7iGJBhSUAHoPzr zyw+J+v3OtRJOodPOCfI5GRn9a6KWHqVU3FHNOUI7mtq/haSOEvtBbkj5eB/hXMRaV9m1GMuCqnH UYyTXsWq6u4gMZWNs8YZAciuI1KS1ugG8hYpUljVSjHBy3oe/Wudjgk5aHilxEFlIoqS7P740VB1 s6ixsWj1+w2tuKkoPptOK90t5ZLGyUxjcrJgq65xjv8A/qrybTLDGu6FEOtzbmVj7gN/hXr94fKj 8lnhhWIEEsxHQdfrWljOT7GVdSM6h5wJVbqD6f54rBg0KzuLsyw6fbqu/cAqhcd+MU3UdTBKxoH8 teAe7k+gq1Y6otmnnNywH3ByRVxnOPws55W6mrqMplQ7wM55z2rno7Jb/UYIy4jHnLuI7YzW9qH+ mJb3CuoMq4Yjpn1OOlc9cwNLcxwR4+Z+WU8GoauXT0dzxW5OZm+popZ1/fN9TRUcpvzHoukX6y+K /D6j/llamP8AEq/+Nel+JYlQiVZAdyMx78dvx4/lXmuhWsY8Z+HwRw0AZv8Avlq9f1S3ga6mjMYK glhgZzz0+laSIZ5lqRks5IjGQcA7CBnBIx39M8Vj+URdAMyiZRncpOa0fE9zLb+IBbWYUqEBYSKc jk5/mKqSQ6jtedo4E2g4chsfpXTTukjjqRu2zvdLeK40yCMAIyrt6nk9yfr/AFqlLGLGUSEbtjAZ 6d6j8JNM1ksNywEjSkNgZI4/z+VaWpQp5TkAsrNgEnPQj+lYS0kdENkfP1x/r3/3jRS3XFzKP9s/ zoqDQ9M8PgHxtoWOSIQAP+AtXtN9L5t2DEER8/TI9K8Y8MhT4+0Vcf8ALFf5GvW9YX7M5EZ3Ffm4 H3ck/p/jVTBnkfiV0/4TC/mVW+WRsLnds6Y579MVnjxHKkyPcK81qDloSo+bjqPTufaqXiq6Fr4w eEyMisU3l+OoHP071FcC2hjaR7iI7VG3MldUbNI55K0tTv8AwFfWl/Ldpc74nY7k74A42/mRW5rE PkWzszDGMqcYyM1yvw1ijSyN22WLSsoDdQCc5ye5rrPFNxHNZs0OdmCvfjFc9R3ndGsVZWPnq5TN 3N/10b+dFXpYAbqf/ro386K5+c6OQ77woC3xL0ZQOfITr/u16b4iYq8yqGaTJ3DHQVwngu2Vvidp ikfMlsrY+iZrtfFgeCWcq0u1iVL4JySc4z/nvW0jKR4/4k0KbV9XWbf+8KCMRhclh259fwqpB4Ul uWEKW4GB8zuyjAA7nH8q62fIZiCSyuRu6HB6Cp9OjCs+0bXCdSen+eaFNoz6ml4S0ya0061t41j2 pGwwq43HJJJ46+laOsxL/Z8645Ck5NafhWSe11GyWOVds/yvGU/h/oazPEMiNLfJHjy977QOnJpF njMwAvLkHtK38zRUd87Lqd4MdJnH/jxormcWdfMj/9k= ------=_NextPart_000_00C1_01C8E336.6DBBC320 Content-Type: image/jpeg Content-Transfer-Encoding: base64 Content-Location: http://www.museum-neuchatel.ch/new/images/dynamic/pages/3/13.jpg-thumb.jpg /9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcg SlBFRyB2NjIpLCBkZWZhdWx0IHF1YWxpdHkK/9sAQwAIBgYHBgUIBwcHCQkICgwUDQwLCwwZEhMP FB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy/9sAQwEJCQkMCwwYDQ0YMiEc ITIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy/8AAEQgA UAA1AwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMC BAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYn KCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeY mZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5 +v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwAB AgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpD REVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ip qrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMR AD8A6qK4QfKwDEgH8xT41iMjM+AD0FYGjapcX9ikl06NKCQzFQvP4U+S5ukuwYPLcBdxUnBwPTPU +wraFXTUylT10PPrbxVeE+ReXkkaKzEyKN7llzxywGCD+YHrW34fvZNT+0yTsZI1KiN3UAkEHsOl bc/iZZs7vPldONskasByBxk9+O1Rpcm+uFSC1jSZ1LYjgWPcB1JwMHqBk1m5JvcpRJrdY0ZsYHGK rXO1pGO5fzp9sR+/DBlZXKEEcgg4IP41SlIZyfeoYxDHz1FFRlRRSGadvbmxN0omjMbys6KBgqCe BUF3BPdTwTW8qqyIysrruVs47ZHI7VUh89owx3cjvU1tMY5gGbvjrWEHJL3jpmovYdPAHV4b6IGA qc7ow4PGQMd+cd6TQrj7JcX0WnKtvblyRlQGZdo6DJPXI4POBXQrps95BCIkxK6k/M/BHbArNh0C 7inlluh5KI20tGwLg9sD8RW+t7IwXLuyEyOrzrNIZpQTuZnyT2B5+n6VUK55rYktAsDNNutos4EG CGZieCc5yD6U2eK6tpUae1hnnlXylhYcRjPXKH6cmm4yK5YvZ/1/W5jlaKs3ElpZRQRzRztOUzJt kXjn6cf/AKqKhytoUqE5K6tb1QkQea1WGFC8hbgKMk10Ok+EELrcakwZuohXoPqe9aWm6fbabEEg Tnu7csfxrQ86RcMpXaOx70ON9yOe2xK8D+fhIdmECrIpHGe3qOlUr62jtbKTzZcs8mAzdW4H+Bqd NRxszFJhz97tnj9Kr3lxZXFwGaBZdoyJN2AGHPHvWtNXlsYTkuXRjY1Zp7dMq4kUA71Ddz61Uazh WRpkjImiXasiueAe2KsW92t7qUUscyrDEdpTaNzEjtjpyajubpAwtY1JMp3F8MVHtyB/k13qGmqO J1GnoznfssEE0rzbJzI2VLQ52j0oqp4l1mDQJLaK4jZmkQnCnpjHP6/pRXFKpFSaR2RhUkk2deJ9 g/elQfQfy96l83mqVzcJa273LLyg4IqtpWoQ6hEZUl3NyCn93Bx+P1rPlbjzdDTmV+VmztFwRuJG DkYOKzdR1MvOtjbJmHeC7beMjOQT6VfhbDCqFnbR/ZbiYNIgJOV4Iz1Na4e17syrLTTqaKzrpsDt HBbosjKEVQAFPUk+nb86x4me2kAuZY2KtvCxkkMuOOfeqmqX/wBrvmTzmjAJKqVzleO/rWL4o1X+ zNHnliZVklURoR1yf8Bk11VnyU79Wc1KPPO3Y4TxVrTa1r09yxXy0/dRAdAo9Pqcn8aKz9Psftwk ZjgKQBRXk8rep6/NGOh7nqMBms1+XegPzp1z+HesdVm02MTpEIlVTtBTByR0x7VvxMssTRMeCPyr L1JoAAo+eRCNysxJA989Oa9CjLTlPPqx15iDTNZuL9TDKSuWIWTG0sPf9a2Xvbm3j8pbdI40w3mq QA2e/rniuckuPKKSxqm5Rnrn6Zx/nis+LW7t9SYyO7oxJkVh8uOwrV0lduK0MvaOyTepuzeY0TCX BjU4Q8EHmvNPG+oJPqq2cLZhtlwfTcev6YrsdXmg02xmuVMgCgttZ8j2AryvdJe3eXJaSZ8sfUk8 1x4id3ZHXhoWu2b2lxeVYJxy/wAx/GirigKoUdAMCioWxT1Z/9k= ------=_NextPart_000_00C1_01C8E336.6DBBC320 Content-Type: image/jpeg Content-Transfer-Encoding: base64 Content-Location: http://www.museum-neuchatel.ch/new/images/dynamic/pages/3/14.jpg-thumb.jpg /9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcg SlBFRyB2NjIpLCBkZWZhdWx0IHF1YWxpdHkK/9sAQwAIBgYHBgUIBwcHCQkICgwUDQwLCwwZEhMP FB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy/9sAQwEJCQkMCwwYDQ0YMiEc ITIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy/8AAEQgA UAAyAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMC BAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYn KCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeY mZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5 +v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwAB AgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpD REVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ip qrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMR AD8ASyjiS3QMrOdmMkjr+VacQtw/MDEbvUen0qlEm23Df7BNQ/2pbMcLdR9ezD0qlBvZE81tzYE1 rEqloSv3eTIBnn6VPBNDKdqRI5O7GJOf51jG3fUGgngv4lhiGXicFll9sDr3/OplZhrK3Kp9mtIk ZiscDJEvy8sc96LJLzFqzqrCzVnLS2kzJwfldaffi0hndFtpY8fws4PFJHLLFp7Tm4QL5e4NsIAG M1QguDqaLcFxIJEJDL0Ix2pIbOP2n+8fzoqf7PL/AHDRTsTcsxyxtYKwzhoiRlSKzNKmhhjWK7sZ ldCcSo0bZ78giksVu2062EqOCIfnB5OeOtXPIdjkH+L+lNSa2HZPcmsWe4HmMsisTwJAucZ4+7xW z9jNzZy27s4SVSjbSAQCDyKybQSxEb4iQAOQRj9a1IL2OKLzGBSNSC5C5O3vwOtTcZgP4IgmsRaP rOsNbKMiE3IKDn024rqtJtY9O06C0iZmSCLy1LdSBgc+/Fatq2g/Zmke4ViVOA7Fcfh1rJWRZUMk X3GJ24z0P15pvQm9zN8z6UVY+xP6UUgsZUTYts9whrk/FGoz2WpWzyXV1DatGA3lEqmcnkke3aum hkja1JWRDlCRg+1V55Lc2zm6CNGoBbeMjj/9f60RlroU13MXwzrsV/qTQrc3DEQFwskjMCOOee4/ rXV+eMFMcGuWg1aBr1haWkUMeSC6KAzCuih2NAHMUn3sk7xyPpjrXRLD1ZNe6YqvTV1cCkTZ3IuA OTite01CC209AQPl5wCOAM1WeHTprb9xczptBYh4wcfXBqkFT+z5WZvuA5zx61jUpSpq8ioVIzbU TZHivTSAd6f99L/jRXFRLGYkICkFRRXPzG/IM0zEdtGqcYQgVneK7l44bS3LYWQlmx7Yx/P9Kt2I cBAMkbcAAe5qPxTp095YLLHE+6A5PBHy45qsNJe0j6lYiL5GZ2hwyXl5FbwYMkh4ycD869Gh0ybT Y4XvtrQtwxjJIX68V5v4W1iHSL6KW5gWZF6EAbkPqDXbal43ttU0yS0t4ZVZyPmcjGAQf6V9BL2n OkloeH7iTbepWvJ1+1Mls2AcgHJHH4VCbsixmiO1gVOQRnPBp+m2kk8PnkMQ54wucYz/AI1Hc2Dx qVkVkZgeGGP514eZVuas0tketgKVqSb3ZjLfFUCi2gAAwAEFFP8A7OYdz+VFeTc9LQ6rSbdLOF7t 0HyDEYx3ql/ajs2GmfG4ltx7Vq6hA6olrH91Ryc1zl3Abfbg7j04Gc/jXq0KXJFI8+rU5pNmfceH 7O9naWzkNtlsMm3Kg+w7Vr6T4VtkhWe4naY5AKD5Rz/+qs21huY7sK3G/lVH0NdLaCaDTYwQAG7n rxnp+ddyrVbct9DldKm9bam5CqwxqkJZFAAVF4AFWPGFl9q00zxjM1sueO645/x/Cq9qj3MccnTb gjsT9fat/UiEv5ImGN/BBrkqw51Zm9OXK7o8e+1+wort5PAUUkrul0yIzEqoA+UelFeV9Xq9j0Pb U+5//9k= ------=_NextPart_000_00C1_01C8E336.6DBBC320 Content-Type: image/png Content-Transfer-Encoding: base64 Content-Location: http://www.museum-neuchatel.ch/new/images/arrow-left.png iVBORw0KGgoAAAANSUhEUgAAAA0AAABQCAIAAABNmWgCAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA BGdBTUEAANjr9RwUqgAAACBjSFJNAABtmAAAc44AAPJxAACDbAAAg7sAANTIAAAyjAAAGUerQetI AAABCklEQVR42mL8//8/AxGAcZioY2IgDoyqG1U3qm5UHa3UseCRe//j3YFHhy+8uxGs5IVF3Z9/ v08+O334+amZL48/+Pd7t162npguirqrr68de35qw/Oj2769ZGBgYGBmPWJUYi1jxcDAwPKf4f+9 9/fOvrq47dnRhZ/uMfz7C9e2XScdooiBgYHlxNOTnVcXbPz6DNMBYlyiCP+aSBjPtmnarp9TJGLE y8LOwAgvkRmvv7uFvXx+9OnRkScndr04sfDzPYZ//xgYGDbrZvioeGEvx3///X37/Z29jw9te3Vm x893O3Uz3BRd8ZX3X359Of/ywvGX54KUvEbrhVF1o+pG1Y2qG5zqAAMAlp+FLVAwaTgAAAAASUVO RK5CYII= ------=_NextPart_000_00C1_01C8E336.6DBBC320 Content-Type: image/png Content-Transfer-Encoding: base64 Content-Location: http://www.museum-neuchatel.ch/new/images/arrow-right.png iVBORw0KGgoAAAANSUhEUgAAAA0AAABQCAIAAABNmWgCAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA BGdBTUEAANjr9RwUqgAAACBjSFJNAABtmAAAc44AAPJxAACDbAAAg7sAANTIAAAyjAAAGUerQetI AAAA/klEQVR42mL8//8/AxGAiYE4MKpuVN2oulF1o+qopO7OuztdZyYdfnzky68veNQx/v//f9f9 3e6XZ3iwC3mJmTjL2qkKqrAys2JRx8DAsOXONt/LMxgYGBiYmOJ5ldwkLGxkLOT45NDVMTAwLL22 MubWMgYIl5GBl5k9VUDbVdrKWMJAgF0Qoe7ci/PGx+sxXebPLVWuncAC57/69hrVh8zxfEpeUtbG YvpKgkpQdUefHPO8MhPC9uISD5C0tpI00xbVQnHfngd7XS9NVWBiTRe3tJU0M5cyZWHC8O/Fl5fW 3ttmIKThIGcryCGEL/xG09+oulF1o+pG1dFPHWAAAzZPuOY0YCcAAAAASUVORK5CYII= ------=_NextPart_000_00C1_01C8E336.6DBBC320 Content-Type: image/png Content-Transfer-Encoding: base64 Content-Location: http://www.museum-neuchatel.ch/new/images/arrow-up.png iVBORw0KGgoAAAANSUhEUgAAAAkAAAANCAYAAAB7AEQGAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA BGdBTUEAANjr9RwUqgAAACBjSFJNAABtmAAAc44AAPJxAACDbAAAg7sAANTIAAAyjAAAGUerQetI AAAA+0lEQVR42nzQwUvCABTH8a9G/0rXzv0Zdexv6G8IuuWxY3RJ6ByOaJHWRd1m2SCDBbFYMG06 oyZqkZvb61Cwjazf7T0+8OM9JJNwHoreMySRJLuWIpmMZgEl6xAncLJrcsgc3KK8e5jDzt+o9qwD oHraYuSOXQ5GFgDlsYP1cv8bNXstJvHse0hi9P51HkVxRHXQAkkrKn2NeRKlyA4eKU/yF6kfPlde O0WX3TokCRQKOdj4qSxOwynq8AaAo5VNzLUdzla3YGmZfd8g+HyDutsQlA05sU9zX252NUFZl+OH ilBq78m5U5VFqT1dyLaxK9ivtvyXjn8nXwMAjAnWyKnsJyAAAAAASUVORK5CYII= ------=_NextPart_000_00C1_01C8E336.6DBBC320 Content-Type: image/png Content-Transfer-Encoding: base64 Content-Location: http://www.museum-neuchatel.ch/new/images/arrow-down.png iVBORw0KGgoAAAANSUhEUgAAAAkAAAANCAYAAAB7AEQGAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA BGdBTUEAANjr9RwUqgAAACBjSFJNAABtmAAAc44AAPJxAACDbAAAg7sAANTIAAAyjAAAGUerQetI AAABIElEQVR42nzRO0tCcRjH8e+5VYhKCnrSSkIKIhtCytQuEGaXs9QLCJxCegm+ipaC3kBTtIXR hbZsTRukPFSDi4Jnq0DEf4Pg4Rj0mz/PjYdyoyL+S61VE+rle5Hmd5PNqQyDuf2447lVRV7wz5Kt nPJYLznAlVlk++WMlB5Hsn5aIn5/xGe3w/V8nqArQNV64+D1nB2XzsXGMapvxE9eT1GoP7BbPum1 kSQAjOAi7iE3MsBaKOFcRgiQZTKT6wA9tBxewnDpDpfzRJnxTdtIlTX2Qyu2kGBrLImmaDYCSIcS ICsAeJRhVieS/Zo+igXmyHmjAByOxoh4I38RgBHujcyOpwcPsWNapti7yYvmV8PxGgfqiq4o1Z9E u9N2oN8BAMukm6uHQI5FAAAAAElFTkSuQmCC ------=_NextPart_000_00C1_01C8E336.6DBBC320 Content-Type: text/css; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.museum-neuchatel.ch/new/style.css BODY { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 10pt; PADDING-BOTTOM: = 0px; MARGIN: 0px; OVERFLOW: hidden; PADDING-TOP: 0px; FONT-FAMILY: = "Courier New", Courier, Monaco, monospace; TEXT-ALIGN: justify } BODY.print { OVERFLOW: auto } P { FONT-SIZE: small; FONT-FAMILY: "Courier New", Courier, Monaco, = monospace; TEXT-ALIGN: justify } TD { FONT-SIZE: small; FONT-FAMILY: "Courier New", Courier, Monaco, = monospace } H1 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 24pt; PADDING-BOTTOM: = 0px; MARGIN: 0px; LINE-HEIGHT: normal; PADDING-TOP: 0px; TEXT-ALIGN: = left } H2 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; LINE-HEIGHT: normal; PADDING-TOP: 0px; TEXT-ALIGN: left } H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; LINE-HEIGHT: normal; PADDING-TOP: 0px; TEXT-ALIGN: left } H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 12pt; PADDING-BOTTOM: 0px; MARGIN: 0px; LINE-HEIGHT: normal; = PADDING-TOP: 0px; TEXT-ALIGN: left } H5 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; LINE-HEIGHT: normal; PADDING-TOP: 0px; TEXT-ALIGN: left } TD { TEXT-ALIGN: left } LI { LIST-STYLE-TYPE: disc } LI.noindent { PADDING-RIGHT: 0pt; PADDING-LEFT: 0pt; LIST-STYLE-POSITION: inside; = PADDING-BOTTOM: 0pt; MARGIN: 0pt; TEXT-INDENT: 0pt; PADDING-TOP: 0pt; = LIST-STYLE-TYPE: disc } UL.noindent { PADDING-RIGHT: 0pt; PADDING-LEFT: 0pt; PADDING-BOTTOM: 0pt; MARGIN: = 0pt; TEXT-INDENT: 0pt; PADDING-TOP: 0pt } A { FONT-WEIGHT: normal; FONT-SIZE: small; COLOR: #1ba050; FONT-FAMILY: = "Courier New", Courier, Monaco, monospace; TEXT-DECORATION: none } A:link { FONT-WEIGHT: normal; FONT-SIZE: small; COLOR: #1ba050; FONT-FAMILY: = "Courier New", Courier, Monaco, monospace; TEXT-DECORATION: none } A:visited { FONT-WEIGHT: normal; FONT-SIZE: small; COLOR: #1ba050; FONT-FAMILY: = "Courier New", Courier, Monaco, monospace; TEXT-DECORATION: none } .icone { LEFT: 0px; WIDTH: 100px; POSITION: absolute; TOP: 0px; HEIGHT: 150px } .logo-museum { LEFT: 104px; WIDTH: 80px; POSITION: absolute; TOP: 0px; HEIGHT: 41px } .logo-museum-print { LEFT: 10px; WIDTH: 80px; POSITION: absolute; TOP: 5px; HEIGHT: 41px } .home { LEFT: 104px; WIDTH: 26px; POSITION: absolute; TOP: 100px; HEIGHT: 48px } .menu1 { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = FONT-WEIGHT: bold; BORDER-LEFT-WIDTH: 0px; LEFT: 282px; FLOAT: left; = BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: = 764px; PADDING-TOP: 0px; POSITION: absolute; TOP: 5px; HEIGHT: 20px; = BORDER-RIGHT-WIDTH: 0px; outline-width: 0 } A.menu1:link { FONT-WEIGHT: bold; FONT-SIZE: small; COLOR: #1ba050; FONT-FAMILY: = "Courier New", Courier, Monaco, monospace; TEXT-DECORATION: none } A.menu1:visited { FONT-WEIGHT: bold; FONT-SIZE: small; COLOR: #1ba050; FONT-FAMILY: = "Courier New", Courier, Monaco, monospace; TEXT-DECORATION: none } .menu2 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: xx-small; Z-INDEX: = 10; LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; OVERFLOW: hidden; = WIDTH: 240px; COLOR: black; PADDING-TOP: 0px; FONT-FAMILY: "Courier = New", Courier, Monaco, monospace; POSITION: absolute; TOP: 210px; = HEIGHT: 200px; TEXT-ALIGN: left } LI.menu2-1 { BORDER-TOP-WIDTH: 1px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = BORDER-LEFT-WIDTH: 1px; FONT-SIZE: xx-small; BORDER-LEFT-COLOR: #666; = LEFT: 0px; LIST-STYLE-IMAGE: url(images/arrow-off.png); = BORDER-BOTTOM-WIDTH: 1px; BORDER-BOTTOM-COLOR: #666; PADDING-BOTTOM: = 0px; MARGIN: 0px; BORDER-TOP-COLOR: #666; TEXT-INDENT: 0px; PADDING-TOP: = 0px; LIST-STYLE-TYPE: none; POSITION: static; TOP: 0px; = BORDER-RIGHT-WIDTH: 1px; BORDER-RIGHT-COLOR: #666; outline-width: 0 } A.menu2-1:link { FONT-SIZE: small; COLOR: black; FONT-FAMILY: "Courier New", Courier, = Monaco, monospace; TEXT-DECORATION: none } A.menu2-1:visited { FONT-SIZE: small; COLOR: black; FONT-FAMILY: "Courier New", Courier, = Monaco, monospace; TEXT-DECORATION: none } A.menu2-1-on:link { FONT-SIZE: small; COLOR: #1ba050; FONT-FAMILY: "Courier New", Courier, = Monaco, monospace; TEXT-DECORATION: none } A.menu2-1-on:visited { FONT-SIZE: small; COLOR: #1ba050; FONT-FAMILY: "Courier New", Courier, = Monaco, monospace; TEXT-DECORATION: none } LI.menu2-1-on { BORDER-TOP-WIDTH: 1px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = BORDER-LEFT-WIDTH: 1px; FONT-SIZE: xx-small; BORDER-LEFT-COLOR: #666; = LEFT: 0px; LIST-STYLE-IMAGE: url(images/arrow-on.png); = BORDER-BOTTOM-WIDTH: 1px; BORDER-BOTTOM-COLOR: #666; PADDING-BOTTOM: = 0px; MARGIN: 0px; BORDER-TOP-COLOR: #666; TEXT-INDENT: 0px; PADDING-TOP: = 0px; LIST-STYLE-TYPE: none; POSITION: static; TOP: 0px; = BORDER-RIGHT-WIDTH: 1px; BORDER-RIGHT-COLOR: #666; outline-width: 0 } .content-header { BORDER-TOP-WIDTH: 1px; BORDER-LEFT-WIDTH: 1px; LEFT: 250px; = BORDER-BOTTOM-WIDTH: 1px; MARGIN: 0px; WIDTH: 764px; POSITION: absolute; = TOP: 118px; HEIGHT: 32px; BORDER-RIGHT-WIDTH: 1px } .content { PADDING-RIGHT: 25px; LEFT: 300px; WIDTH: 644px; POSITION: absolute; = TOP: 150px; HEIGHT: 60% } .content-print { MARGIN-TOP: 10px; FLOAT: none; MARGIN-LEFT: 10px; WIDTH: 800px; = POSITION: static } .content-footer { BORDER-TOP-WIDTH: 1px; BORDER-LEFT-WIDTH: 1px; LEFT: 250px; = BORDER-BOTTOM-WIDTH: 1px; MARGIN: 0px; WIDTH: 764px; BOTTOM: 100px; = POSITION: absolute; HEIGHT: 32px; BORDER-RIGHT-WIDTH: 1px } .diaporama { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; LEFT: 0px; PADDING-BOTTOM: 0px; = MARGIN: 0px auto; OVERFLOW: hidden; WIDTH: 1024px; BOTTOM: 0px; = PADDING-TOP: 0px; POSITION: absolute; HEIGHT: 85px; TEXT-ALIGN: center } .language_selector { POSITION: absolute; TOP: 150px } .printpage { POSITION: absolute; TOP: 170px } .gallery-arrow-right { LEFT: 1011px; BOTTOM: 5px; POSITION: absolute } .gallery-arrow-left { BOTTOM: 5px; POSITION: absolute } .menu2-arrow-up { LEFT: 100px; POSITION: absolute; TOP: 195px } .menu2-arrow-down { LEFT: 100px; BOTTOM: 115px; POSITION: absolute } .imageleft { DISPLAY: inline; MARGIN-RIGHT: 10px; TEXT-ALIGN: left } .imageright { DISPLAY: inline; MARGIN-LEFT: 10px; TEXT-ALIGN: right } .rightshiftedtext { LEFT: 200px; POSITION: absolute } P.rightshiftedtext { LEFT: 200px; POSITION: absolute } ------=_NextPart_000_00C1_01C8E336.6DBBC320 Content-Type: text/css; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.museum-neuchatel.ch/new/style-ie.css BODY { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 10pt; PADDING-BOTTOM: = 0px; MARGIN: 0px; OVERFLOW: hidden; PADDING-TOP: 0px; FONT-FAMILY: = "Courier New", Courier, Monaco, monospace } P { FONT-SIZE: 10pt; FONT-FAMILY: "Courier New", Courier, Monaco, monospace } TD { FONT-SIZE: 10pt; FONT-FAMILY: "Courier New", Courier, Monaco, monospace } H1 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; LINE-HEIGHT: normal; PADDING-TOP: 0px; TEXT-ALIGN: left } H2 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; LINE-HEIGHT: normal; PADDING-TOP: 0px; TEXT-ALIGN: left } H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; LINE-HEIGHT: normal; PADDING-TOP: 0px; TEXT-ALIGN: left } H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; LINE-HEIGHT: normal; PADDING-TOP: 0px; TEXT-ALIGN: left } H5 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; LINE-HEIGHT: normal; PADDING-TOP: 0px; TEXT-ALIGN: left } LI { LIST-STYLE-TYPE: square } A { FONT-WEIGHT: normal; FONT-SIZE: 10pt; COLOR: #1ba050; FONT-FAMILY: = "Courier New", Courier, Monaco, monospace; TEXT-DECORATION: none } A:link { FONT-WEIGHT: normal; FONT-SIZE: 10pt; COLOR: #1ba050; FONT-FAMILY: = "Courier New", Courier, Monaco, monospace; TEXT-DECORATION: none } A:visited { FONT-WEIGHT: normal; FONT-SIZE: 10pt; COLOR: #1ba050; FONT-FAMILY: = "Courier New", Courier, Monaco, monospace; TEXT-DECORATION: none } .icone { LEFT: 0px; WIDTH: 100px; POSITION: absolute; TOP: 0px; HEIGHT: 150px } .logo-museum { LEFT: 104px; WIDTH: 80px; POSITION: absolute; TOP: 0px; HEIGHT: 41px } .logo-museum-print { LEFT: 10px; WIDTH: 80px; POSITION: absolute; TOP: 5px; HEIGHT: 41px } .home { LEFT: 104px; WIDTH: 26px; POSITION: absolute; TOP: 100px; HEIGHT: 48px } .menu1 { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = FONT-WEIGHT: bold; BORDER-LEFT-WIDTH: 0px; LEFT: 282px; FLOAT: left; = BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: = 764px; PADDING-TOP: 0px; POSITION: absolute; TOP: 5px; HEIGHT: 20px; = BORDER-RIGHT-WIDTH: 0px; outline-width: 0 } A.menu1:link { FONT-WEIGHT: bold; FONT-SIZE: 10pt; COLOR: #1ba050; FONT-FAMILY: = "Courier New", Courier, Monaco, monospace; TEXT-DECORATION: none } A.menu1:visited { FONT-WEIGHT: bold; FONT-SIZE: 10pt; COLOR: #1ba050; FONT-FAMILY: = "Courier New", Courier, Monaco, monospace; TEXT-DECORATION: none } .menu2 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 10pt; LEFT: 0px; = PADDING-BOTTOM: 0px; MARGIN: 0px; OVERFLOW: hidden; WIDTH: 240px; COLOR: = black; PADDING-TOP: 0px; FONT-FAMILY: "Courier New", Courier, Monaco, = monospace; POSITION: absolute; TOP: 210px; HEIGHT: 200px; TEXT-ALIGN: = left } LI.menu2-1 { BORDER-TOP-WIDTH: 1px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = BORDER-LEFT-WIDTH: 1px; FONT-SIZE: 5pt; BORDER-LEFT-COLOR: #666; LEFT: = 0px; LIST-STYLE-IMAGE: url(images/arrow-off.png); BORDER-BOTTOM-WIDTH: = 1px; BORDER-BOTTOM-COLOR: #666; PADDING-BOTTOM: 0px; MARGIN: 0px; = BORDER-TOP-COLOR: #666; TEXT-INDENT: 0px; PADDING-TOP: 0px; = LIST-STYLE-TYPE: none; POSITION: static; TOP: 0px; BORDER-RIGHT-WIDTH: = 1px; BORDER-RIGHT-COLOR: #666; outline-width: 0 } A.menu2-1:link { FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: "Courier New", Courier, = Monaco, monospace; TEXT-DECORATION: none } A.menu2-1:visited { FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: "Courier New", Courier, = Monaco, monospace; TEXT-DECORATION: none } A.menu2-1-on:link { FONT-SIZE: 10pt; COLOR: #1ba050; FONT-FAMILY: "Courier New", Courier, = Monaco, monospace; TEXT-DECORATION: none } A.menu2-1-on:visited { FONT-SIZE: 10pt; COLOR: #1ba050; FONT-FAMILY: "Courier New", Courier, = Monaco, monospace; TEXT-DECORATION: none } LI.menu2-1-on { BORDER-TOP-WIDTH: 1px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = BORDER-LEFT-WIDTH: 1px; FONT-SIZE: xx-small; BORDER-LEFT-COLOR: #666; = LEFT: 0px; LIST-STYLE-IMAGE: url(images/arrow-on.png); = BORDER-BOTTOM-WIDTH: 1px; BORDER-BOTTOM-COLOR: #666; PADDING-BOTTOM: = 0px; MARGIN: 0px; BORDER-TOP-COLOR: #666; TEXT-INDENT: 0px; PADDING-TOP: = 0px; LIST-STYLE-TYPE: none; POSITION: static; TOP: 0px; = BORDER-RIGHT-WIDTH: 1px; BORDER-RIGHT-COLOR: #666; outline-width: 0 } .content-header { BORDER-TOP-WIDTH: 1px; BORDER-LEFT-WIDTH: 1px; Z-INDEX: -1; LEFT: = 250px; BORDER-BOTTOM-WIDTH: 1px; MARGIN: 0px; WIDTH: 764px; POSITION: = absolute; TOP: 118px; HEIGHT: 32px; BORDER-RIGHT-WIDTH: 1px } .content { PADDING-RIGHT: 25px; Z-INDEX: -1; LEFT: 300px; WIDTH: 644px; POSITION: = absolute; TOP: 150px; HEIGHT: 60% } .content-print { PADDING-RIGHT: 25px; LEFT: 10px; WIDTH: 800px; POSITION: absolute; TOP: = 60px } .content-footer { BORDER-TOP-WIDTH: 1px; BORDER-LEFT-WIDTH: 1px; Z-INDEX: -1; LEFT: = 250px; BORDER-BOTTOM-WIDTH: 1px; MARGIN: 0px; WIDTH: 764px; BOTTOM: = 100px; POSITION: absolute; HEIGHT: 32px; BORDER-RIGHT-WIDTH: 1px } .diaporama { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; Z-INDEX: -1; LEFT: 0px; = PADDING-BOTTOM: 0px; MARGIN: 0px auto; OVERFLOW: hidden; WIDTH: 1024px; = BOTTOM: 0px; PADDING-TOP: 0px; POSITION: absolute; HEIGHT: 85px; = TEXT-ALIGN: center } .language_selector { POSITION: absolute; TOP: 150px } .printpage { POSITION: absolute; TOP: 170px } .gallery-arrow-right { LEFT: 1011px; BOTTOM: 5px; POSITION: absolute } .gallery-arrow-left { BOTTOM: 5px; POSITION: absolute } .menu2-arrow-up { LEFT: 100px; POSITION: absolute; TOP: 195px } .menu2-arrow-down { LEFT: 100px; BOTTOM: 115px; POSITION: absolute } .imageleft { DISPLAY: inline; MARGIN-RIGHT: 10px; TEXT-ALIGN: left } .imageright { DISPLAY: inline; MARGIN-LEFT: 10px; TEXT-ALIGN: right } .rightshiftedtext { LEFT: 200px; POSITION: absolute } P.rightshiftedtext { LEFT: 200px; POSITION: absolute } ------=_NextPart_000_00C1_01C8E336.6DBBC320 Content-Type: text/css; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.museum-neuchatel.ch/new/lightbox.css #lightbox { Z-INDEX: 100; LEFT: 0px; WIDTH: 100%; LINE-HEIGHT: 0; POSITION: = absolute; TEXT-ALIGN: center } #lightbox A IMG { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium = none; BORDER-BOTTOM: medium none } #outerImageContainer { MARGIN: 0px auto; WIDTH: 250px; POSITION: relative; HEIGHT: 250px; = BACKGROUND-COLOR: #fff } #imageContainer { PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; = PADDING-TOP: 10px } #loading { LEFT: 0%; WIDTH: 100%; LINE-HEIGHT: 0; POSITION: absolute; TOP: 40%; = HEIGHT: 25%; TEXT-ALIGN: center } #hoverNav { Z-INDEX: 10; LEFT: 0px; WIDTH: 100%; POSITION: absolute; TOP: 0px; = HEIGHT: 100% } #imageContainer > #hoverNav { LEFT: 0px } #hoverNav A { outline: none } #prevLink { DISPLAY: block; BACKGROUND: url(../images/blank.gif) no-repeat; WIDTH: = 49%; HEIGHT: 100% } #nextLink { DISPLAY: block; BACKGROUND: url(../images/blank.gif) no-repeat; WIDTH: = 49%; HEIGHT: 100% } #prevLink { LEFT: 0px; FLOAT: left } #nextLink { RIGHT: 0px; FLOAT: right } #prevLink:hover { BACKGROUND: url(./images/prevlabel.gif) no-repeat left 15% } #prevLink:hover:visited { BACKGROUND: url(./images/prevlabel.gif) no-repeat left 15% } #nextLink:hover { BACKGROUND: url(./images/nextlabel.gif) no-repeat right 15% } #nextLink:hover:visited { BACKGROUND: url(./images/nextlabel.gif) no-repeat right 15% } #imageDataContainer { MARGIN: 0px auto; FONT: 10px/1.4em Verdana, Helvetica, sans-serif; = OVERFLOW: auto; WIDTH: 100%; BACKGROUND-COLOR: #fff } #imageData { PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 0px; COLOR: = #666; PADDING-TOP: 0px } #imageData #imageDetails { FLOAT: left; WIDTH: 70%; TEXT-ALIGN: left } #imageData #caption { FONT-WEIGHT: bold } #imageData #numberDisplay { CLEAR: left; DISPLAY: block; PADDING-BOTTOM: 1em } #imageData #bottomNavClose { FLOAT: right; PADDING-BOTTOM: 0.7em; WIDTH: 66px } #overlay { Z-INDEX: 90; LEFT: 0px; WIDTH: 100%; POSITION: absolute; TOP: 0px; = HEIGHT: 500px; BACKGROUND-COLOR: #000 } ------=_NextPart_000_00C1_01C8E336.6DBBC320 Content-Type: text/css; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.museum-neuchatel.ch/new/menu.css .yuimenu .yuimenu { VISIBILITY: hidden; POSITION: absolute } .yuimenubar .yuimenu { VISIBILITY: hidden; POSITION: absolute } .yuimenubar LI { LIST-STYLE-TYPE: none } .yuimenu LI { LIST-STYLE-TYPE: none } .yuimenubar UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } .yuimenu UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } .yuimenubar LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } .yuimenu LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } .yuimenu H6 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } .yuimenubar H6 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } .yuimenuitemlabel { WHITE-SPACE: nowrap } .yuimenubaritemlabel { WHITE-SPACE: nowrap } .yui-menu-shadow { Z-INDEX: -1; POSITION: absolute } .hide-scrollbars * { OVERFLOW: hidden } .hide-scrollbars SELECT { DISPLAY: none } .show-scrollbars { OVERFLOW: visible } .hide-scrollbars .yui-menu-shadow { OVERFLOW: hidden } .show-scrollbars .yui-menu-shadow { OVERFLOW: auto } .yui-skin-sam .yuimenubar .bd { ZOOM: 1 } .yui-skin-sam .yuimenubar UL { ZOOM: 1 } .yui-skin-sam .yuimenubar > .bd > UL:unknown { CLEAR: both; DISPLAY: block; VISIBILITY: hidden; LINE-HEIGHT: 0; = HEIGHT: 0px; content: "." } .yui-skin-sam .yuimenubaritem { FLOAT: left } .yui-skin-sam .yuimenubarnav .yuimenubaritem { BORDER-RIGHT: #ccc 1px solid } .yui-skin-sam .yuimenubaritemlabel { BORDER-RIGHT: #999999 0px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #999999 0px solid; DISPLAY: inline-block; PADDING-LEFT: 5px; = FONT-WEIGHT: bold; PADDING-BOTTOM: 0px; MARGIN: -1px 0px; BORDER-LEFT: = #999999 1px solid; CURSOR: default; COLOR: #1ba050; LINE-HEIGHT: 1.4; = PADDING-TOP: 0px; BORDER-BOTTOM: #999999 0px solid; POSITION: relative; = TEXT-DECORATION: none; outline: none } .yui-skin-sam .first-of-type { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: = 0px; BORDER-RIGHT-WIDTH: 0px } .yui-skin-sam .yuimenubaritem A:visited { FONT-WEIGHT: bold; COLOR: #1ba050 } .yui-skin-sam .yuimenubaritem A.current:visited { COLOR: #ffffff } .yui-skin-sam .current { BACKGROUND: #999999; COLOR: #ffffff } .yui-skin-sam .first-of-type { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: = 0px; BORDER-RIGHT-WIDTH: 0px } .yui-skin-sam .yuimenubarnav .yuimenubaritemlabel { PADDING-RIGHT: 20px } .yui-skin-sam .yuimenubaritemlabel .submenuindicator { LEFT: 0px; WIDTH: 1px; TOP: 0px; HEIGHT: 1px } .yui-skin-sam .yuimenubarnav .yuimenubaritemlabel .submenuindicator { BACKGROUND-POSITION: -16px -856px; MARGIN-TOP: -3px; RIGHT: 8px; LEFT: = auto; WIDTH: 7px; TEXT-INDENT: 8px; TOP: 50%; HEIGHT: 4px } .yui-skin-sam .yuimenubarnav .yuimenubaritem A.selected { BORDER-LEFT-WIDTH: 1px; LEFT: -1px; MARGIN-LEFT: -1px } .yui-skin-sam .yuimenubar A.selected .submenuindicator { BACKGROUND: none transparent scroll repeat 0% 0% } .yui-skin-sam .yuimenubarnav A.selected .submenuindicator { BACKGROUND: url(./images/sprite.png) repeat-x -16px -856px } .yui-skin-sam .yuimenubaritem A.disabled { CURSOR: default; COLOR: #a6a6a6 } .yui-skin-sam .yuimenubarnav .yuimenubaritem A.disabled = .submenuindicator { BACKGROUND-POSITION: -16px -881px } .yui-skin-sam .yuimenu .bd { BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; = BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; = BACKGROUND-COLOR: #fff } .yui-skin-sam .yuimenu UL { BORDER-RIGHT: #ccc 0px solid; PADDING-RIGHT: 0px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 3px; BORDER-LEFT: #ccc 0px = solid; PADDING-TOP: 3px; BORDER-BOTTOM: #ccc 0px solid } .yui-skin-sam .yuimenu UL.first-of-type { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: = 0px; BORDER-RIGHT-WIDTH: 0px } .yui-skin-sam .yuimenu H6 { BORDER-RIGHT: #ccc 0px solid; PADDING-RIGHT: 10px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 10px; FONT-WEIGHT: bold; PADDING-BOTTOM: 0px; = BORDER-LEFT: #ccc 0px solid; COLOR: #a4a4a4; LINE-HEIGHT: 1.45; = PADDING-TOP: 3px; BORDER-BOTTOM: #ccc 0px solid } .yui-skin-sam .yuimenu UL.hastitle { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: = 0px; BORDER-RIGHT-WIDTH: 0px } .yui-skin-sam .yuimenu H6.first-of-type { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: = 0px; BORDER-RIGHT-WIDTH: 0px } .yui-skin-sam .yuimenu .yui-menu-body-scrolled { BORDER-LEFT-COLOR: #808080; BORDER-BOTTOM-COLOR: #ccc; OVERFLOW: = hidden; BORDER-TOP-COLOR: #ccc; BORDER-RIGHT-COLOR: #808080 } .yui-skin-sam .yuimenu .topscrollbar { BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; = BACKGROUND: url(./images/sprite.png) #fff no-repeat 0px 0px; = BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; = HEIGHT: 16px } .yui-skin-sam .yuimenu .bottomscrollbar { BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; = BACKGROUND: url(./images/sprite.png) #fff no-repeat 0px 0px; = BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; = HEIGHT: 16px } .yui-skin-sam .yuimenu .topscrollbar { BACKGROUND-POSITION: center -950px; BORDER-BOTTOM-WIDTH: 0px } .yui-skin-sam .yuimenu .topscrollbar_disabled { BACKGROUND-POSITION: center -975px } .yui-skin-sam .yuimenu .bottomscrollbar { BORDER-TOP-WIDTH: 0px; BACKGROUND-POSITION: center -850px } .yui-skin-sam .yuimenu .bottomscrollbar_disabled { BACKGROUND-POSITION: center -875px } .yui-skin-sam .yuimenuitemlabel { PADDING-RIGHT: 20px; DISPLAY: block; PADDING-LEFT: 20px; = PADDING-BOTTOM: 0px; CURSOR: default; COLOR: #000; LINE-HEIGHT: 1.45; = PADDING-TOP: 0px; POSITION: static; TEXT-DECORATION: none; outline: none } .yui-skin-sam .yuimenuitemlabel .helptext { DISPLAY: block; MARGIN: -1.45em 0px 0px 10em; FONT-STYLE: normal } .yui-skin-sam .yuimenuitemlabel .submenuindicator { BACKGROUND: url(./images/sprite.png) no-repeat; OVERFLOW: hidden; = POSITION: absolute } .yui-skin-sam .yuimenuitemlabel .checkedindicator { BACKGROUND: url(./images/sprite.png) no-repeat; OVERFLOW: hidden; = POSITION: absolute } .yui-skin-sam .yuimenubaritemlabel .submenuindicator { BACKGROUND: url(./images/sprite.png) no-repeat; OVERFLOW: hidden; = POSITION: absolute } .yui-skin-sam .yuimenuitemlabel .submenuindicator { DISPLAY: inline-block; POSITION: static } .yui-skin-sam .yuimenuitemlabel .checkedindicator { DISPLAY: inline-block; POSITION: static } .yui-skin-sam .yuimenuitemlabel .submenuindicator { BACKGROUND-POSITION: 0px -906px; MARGIN-TOP: -3px; RIGHT: 8px; WIDTH: = 4px; TEXT-INDENT: 5px; TOP: 50%; HEIGHT: 7px } .yui-skin-sam .yuimenuitemlabel .checkedindicator { BACKGROUND-POSITION: 0px -1006px; MARGIN-TOP: -3px; LEFT: 8px; WIDTH: = 7px; TEXT-INDENT: 8px; TOP: 50%; HEIGHT: 7px } .yui-skin-sam .visible .yuimenuitemlabel .submenuindicator { FLOAT: right; MARGIN: -1em 8px 0px } .yui-skin-sam .visible .yuimenuitem .hassubmenu { PADDING-RIGHT: 0px } .yui-skin-sam .visible .yuimenuitemlabel .checkedindicator { FLOAT: left; MARGIN: -1em 0px 0px -12px } .yui-skin-sam .yui-menu-shadow-visible { RIGHT: -3px; FILTER: alpha(opacity=3D12); LEFT: -3px; VISIBILITY: = visible; BOTTOM: -3px; TOP: 2px; BACKGROUND-COLOR: #000; opacity: .12 } .yui-skin-sam .visible .bd { ZOOM: 1 } .yui-skin-sam .visible .yuimenuitem { ZOOM: 1 } .yui-skin-sam .visible .yuimenuitemlabel { ZOOM: 1 } .yui-skin-sam .yuimenuitem A:visited { FONT-WEIGHT: normal; COLOR: #000000 } .yui-skin-sam .yuimenuitem A.selected { FONT-WEIGHT: bold; BACKGROUND: #999999; COLOR: #ffffff } .yui-skin-sam .yuimenubar .yuimenuitem A.selected .submenuindicator { =09 } .yui-skin-sam .yuimenubarnav .yuimenuitem A.selected { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; LEFT: 0px; = BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; BORDER-RIGHT-WIDTH: 0px } .yui-skin-sam .yuimenuitem A.disabled { CURSOR: default; COLOR: #a6a6a6 } .yui-skin-sam .yuimenuitem A.disabled .submenuindicator { BACKGROUND-POSITION: 0px -931px } .yui-skin-sam .yuimenuitem A.disabled .checkedindicator { BACKGROUND-POSITION: 0px -1031px } ------=_NextPart_000_00C1_01C8E336.6DBBC320 Content-Type: text/css; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.museum-neuchatel.ch/new/calendar.css .yui-calcontainer { FLOAT: left; OVERFLOW: hidden; POSITION: relative } .yui-calcontainer IFRAME { BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; = PADDING-LEFT: 0px; LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; = BORDER-LEFT: medium none; WIDTH: 100%; PADDING-TOP: 0px; BORDER-BOTTOM: = medium none; POSITION: absolute; TOP: 0px; HEIGHT: 100% } .yui-calcontainer IFRAME.fixedsize { LEFT: -1px; WIDTH: 50em; TOP: -1px; HEIGHT: 50em } .multi .groupcal { Z-INDEX: 1; FLOAT: left; POSITION: relative } .yui-calcontainer .title { Z-INDEX: 1; POSITION: relative } .yui-calcontainer .close-icon { Z-INDEX: 1; POSITION: absolute } .yui-calendar { POSITION: relative } .yui-calendar .calnavleft { Z-INDEX: 1; POSITION: absolute } .yui-calendar .calnavright { Z-INDEX: 1; POSITION: absolute } .yui-calendar .calheader { WIDTH: 100%; POSITION: relative; TEXT-ALIGN: center } .yui-calendar .calbody A:hover { BACKGROUND: none transparent scroll repeat 0% 0% } P#clear { CLEAR: left; PADDING-TOP: 10px } .yui-skin-sam .yui-calcontainer { BORDER-RIGHT: #808080 1px solid; PADDING-RIGHT: 10px; BORDER-TOP: = #808080 1px solid; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; = BORDER-LEFT: #808080 1px solid; PADDING-TOP: 10px; BORDER-BOTTOM: = #808080 1px solid; BACKGROUND-COLOR: #f2f2f2 } .yui-skin-sam .multi { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } .yui-skin-sam .multi .groupcal { BORDER-RIGHT: medium none; PADDING-RIGHT: 5px; BORDER-TOP: medium none; = PADDING-LEFT: 5px; PADDING-BOTTOM: 10px; MARGIN: 0px; BORDER-LEFT: = medium none; PADDING-TOP: 10px; BORDER-BOTTOM: medium none; = BACKGROUND-COLOR: transparent } .yui-skin-sam .yui-calcontainer .title { PADDING-RIGHT: 0.4em; PADDING-LEFT: 0.4em; BACKGROUND: = url(../../../../assets/skins/sam/sprite.png) repeat-x 0px 0px; LEFT: = 0px; PADDING-BOTTOM: 0.4em; MARGIN: 0px -10px 10px; FONT: bold 100% = sans-serif; COLOR: #000; PADDING-TOP: 0.4em; BORDER-BOTTOM: #cccccc 1px = solid; TOP: 0px; HEIGHT: auto; TEXT-ALIGN: left } .yui-skin-sam .multi .title { MARGIN: 0px -5px } .yui-skin-sam .withtitle { PADDING-TOP: 0px } .yui-skin-sam .yui-calcontainer .calclose { RIGHT: 0.4em; BACKGROUND: url(../../../../assets/skins/sam/sprite.png) = no-repeat 0px -300px; WIDTH: 25px; CURSOR: pointer; TOP: 0.4em; HEIGHT: = 15px } .yui-skin-sam .yui-calendar { FONT: 100% sans-serif; BORDER-COLLAPSE: collapse; TEXT-ALIGN: center; = border-spacing: 0 } .yui-skin-sam .yui-calendar .calhead { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BACKGROUND: none = transparent scroll repeat 0% 0%; VERTICAL-ALIGN: middle; BORDER-LEFT: = medium none; BORDER-BOTTOM: medium none } .yui-skin-sam .yui-calendar .calheader { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; BACKGROUND: = none transparent scroll repeat 0% 0%; PADDING-BOTTOM: 0.6em; = PADDING-TOP: 0px; TEXT-ALIGN: center } .yui-skin-sam .yui-calendar .calheader IMG { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium = none; BORDER-BOTTOM: medium none } .yui-skin-sam .yui-calendar .calnavleft { BACKGROUND: url(../../../../assets/skins/sam/sprite.png) no-repeat 0px = -450px; LEFT: -10px; MARGIN-LEFT: 0.4em; WIDTH: 25px; CURSOR: pointer; = BOTTOM: 0px; TOP: 0px; HEIGHT: 15px } .yui-skin-sam .yui-calendar .calnavright { RIGHT: -10px; BACKGROUND: url(../../../../assets/skins/sam/sprite.png) = no-repeat 0px -500px; WIDTH: 25px; CURSOR: pointer; BOTTOM: 0px; = MARGIN-RIGHT: 0.4em; TOP: 0px; HEIGHT: 15px } .yui-skin-sam .yui-calendar .calweekdayrow { HEIGHT: 2em } .yui-skin-sam .yui-calendar .calweekdaycell { FONT-WEIGHT: bold; WIDTH: 2em; COLOR: #000; TEXT-ALIGN: center } .yui-skin-sam .yui-calendar .calfoot { BACKGROUND-COLOR: #f2f2f2 } .yui-skin-sam .yui-calendar .calrowhead { FONT-WEIGHT: normal; FONT-SIZE: 85%; COLOR: #a6a6a6; FONT-STYLE: normal } .yui-skin-sam .yui-calendar .calrowfoot { FONT-WEIGHT: normal; FONT-SIZE: 85%; COLOR: #a6a6a6; FONT-STYLE: normal } .yui-skin-sam .yui-calendar .calrowhead { PADDING-RIGHT: 2px; TEXT-ALIGN: right } .yui-skin-sam .yui-calendar .calrowfoot { PADDING-LEFT: 2px; TEXT-ALIGN: left } .yui-skin-sam .yui-calendar TD.calcell { BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: = #cccccc 1px solid; PADDING-LEFT: 1px; BACKGROUND: #fff; PADDING-BOTTOM: = 1px; BORDER-LEFT: #cccccc 1px solid; LINE-HEIGHT: 1.6em; PADDING-TOP: = 1px; BORDER-BOTTOM: #cccccc 1px solid; WHITE-SPACE: nowrap; HEIGHT: = 1.6em; TEXT-ALIGN: center } .yui-skin-sam .yui-calendar TD.calcell A { DISPLAY: block; COLOR: #0066cc; HEIGHT: 100%; TEXT-DECORATION: none } .yui-skin-sam .yui-calendar TD.today { BACKGROUND-COLOR: #000 } .yui-skin-sam .yui-calendar TD.today A { BACKGROUND-COLOR: #fff } .yui-skin-sam .yui-calendar TD.oom { CURSOR: default; COLOR: #a6a6a6; BACKGROUND-COLOR: #cccccc } .yui-skin-sam .yui-calendar TD.selected { COLOR: #000; BACKGROUND-COLOR: #fff } .yui-skin-sam .yui-calendar TD.selected A { COLOR: #000; BACKGROUND-COLOR: #b3d4ff } .yui-skin-sam .yui-calendar TD.calcellhover { CURSOR: pointer; COLOR: #fff; BACKGROUND-COLOR: #426fd9 } .yui-skin-sam .yui-calendar TD.calcellhover A { COLOR: #fff; BACKGROUND-COLOR: #426fd9 } .yui-skin-sam .yui-calendar TD.previous { COLOR: #e0e0e0 } .yui-skin-sam .yui-calendar TD.restricted { TEXT-DECORATION: line-through } .yui-skin-sam .yui-calendar TD.highlight1 { BACKGROUND-COLOR: #ccff99 } .yui-skin-sam .yui-calendar TD.highlight2 { BACKGROUND-COLOR: #99ccff } .yui-skin-sam .yui-calendar TD.highlight3 { BACKGROUND-COLOR: #ffcccc } .yui-skin-sam .yui-calendar TD.highlight4 { BACKGROUND-COLOR: #ccff99 } ------=_NextPart_000_00C1_01C8E336.6DBBC320 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.museum-neuchatel.ch/new/js/prototype.js /* Prototype JavaScript framework, version 1.4.0=0A= * (c) 2005 Sam Stephenson =0A= *=0A= * THIS FILE IS AUTOMATICALLY GENERATED. When sending patches, please = diff=0A= * against the source tree, available from the Prototype darcs = repository.=0A= *=0A= * Prototype is freely distributable under the terms of an MIT-style = license.=0A= *=0A= * For details, see the Prototype web site: http://prototype.conio.net/=0A= *=0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= var Prototype =3D {=0A= Version: '1.4.0',=0A= ScriptFragment: '(?:)((\n|\r|.)*?)(?:<\/script>)',=0A= =0A= emptyFunction: function() {},=0A= K: function(x) {return x}=0A= }=0A= =0A= var Class =3D {=0A= create: function() {=0A= return function() {=0A= this.initialize.apply(this, arguments);=0A= }=0A= }=0A= }=0A= =0A= var Abstract =3D new Object();=0A= =0A= Object.extend =3D function(destination, source) {=0A= for (property in source) {=0A= destination[property] =3D source[property];=0A= }=0A= return destination;=0A= }=0A= =0A= Object.inspect =3D function(object) {=0A= try {=0A= if (object =3D=3D undefined) return 'undefined';=0A= if (object =3D=3D null) return 'null';=0A= return object.inspect ? object.inspect() : object.toString();=0A= } catch (e) {=0A= if (e instanceof RangeError) return '...';=0A= throw e;=0A= }=0A= }=0A= =0A= Function.prototype.bind =3D function() {=0A= var __method =3D this, args =3D $A(arguments), object =3D args.shift();=0A= return function() {=0A= return __method.apply(object, args.concat($A(arguments)));=0A= }=0A= }=0A= =0A= Function.prototype.bindAsEventListener =3D function(object) {=0A= var __method =3D this;=0A= return function(event) {=0A= return __method.call(object, event || window.event);=0A= }=0A= }=0A= =0A= Object.extend(Number.prototype, {=0A= toColorPart: function() {=0A= var digits =3D this.toString(16);=0A= if (this < 16) return '0' + digits;=0A= return digits;=0A= },=0A= =0A= succ: function() {=0A= return this + 1;=0A= },=0A= =0A= times: function(iterator) {=0A= $R(0, this, true).each(iterator);=0A= return this;=0A= }=0A= });=0A= =0A= var Try =3D {=0A= these: function() {=0A= var returnValue;=0A= =0A= for (var i =3D 0; i < arguments.length; i++) {=0A= var lambda =3D arguments[i];=0A= try {=0A= returnValue =3D lambda();=0A= break;=0A= } catch (e) {}=0A= }=0A= =0A= return returnValue;=0A= }=0A= }=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= var PeriodicalExecuter =3D Class.create();=0A= PeriodicalExecuter.prototype =3D {=0A= initialize: function(callback, frequency) {=0A= this.callback =3D callback;=0A= this.frequency =3D frequency;=0A= this.currentlyExecuting =3D false;=0A= =0A= this.registerCallback();=0A= },=0A= =0A= registerCallback: function() {=0A= setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);=0A= },=0A= =0A= onTimerEvent: function() {=0A= if (!this.currentlyExecuting) {=0A= try {=0A= this.currentlyExecuting =3D true;=0A= this.callback();=0A= } finally {=0A= this.currentlyExecuting =3D false;=0A= }=0A= }=0A= }=0A= }=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= function $() {=0A= var elements =3D new Array();=0A= =0A= for (var i =3D 0; i < arguments.length; i++) {=0A= var element =3D arguments[i];=0A= if (typeof element =3D=3D 'string')=0A= element =3D document.getElementById(element);=0A= =0A= if (arguments.length =3D=3D 1)=0A= return element;=0A= =0A= elements.push(element);=0A= }=0A= =0A= return elements;=0A= }=0A= Object.extend(String.prototype, {=0A= stripTags: function() {=0A= return this.replace(/<\/?[^>]+>/gi, '');=0A= },=0A= =0A= stripScripts: function() {=0A= return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), '');=0A= },=0A= =0A= extractScripts: function() {=0A= var matchAll =3D new RegExp(Prototype.ScriptFragment, 'img');=0A= var matchOne =3D new RegExp(Prototype.ScriptFragment, 'im');=0A= return (this.match(matchAll) || []).map(function(scriptTag) {=0A= return (scriptTag.match(matchOne) || ['', ''])[1];=0A= });=0A= },=0A= =0A= evalScripts: function() {=0A= return this.extractScripts().map(eval);=0A= },=0A= =0A= escapeHTML: function() {=0A= var div =3D document.createElement('div');=0A= var text =3D document.createTextNode(this);=0A= div.appendChild(text);=0A= return div.innerHTML;=0A= },=0A= =0A= unescapeHTML: function() {=0A= var div =3D document.createElement('div');=0A= div.innerHTML =3D this.stripTags();=0A= return div.childNodes[0] ? div.childNodes[0].nodeValue : '';=0A= },=0A= =0A= toQueryParams: function() {=0A= var pairs =3D this.match(/^\??(.*)$/)[1].split('&');=0A= return pairs.inject({}, function(params, pairString) {=0A= var pair =3D pairString.split('=3D');=0A= params[pair[0]] =3D pair[1];=0A= return params;=0A= });=0A= },=0A= =0A= toArray: function() {=0A= return this.split('');=0A= },=0A= =0A= camelize: function() {=0A= var oStringList =3D this.split('-');=0A= if (oStringList.length =3D=3D 1) return oStringList[0];=0A= =0A= var camelizedString =3D this.indexOf('-') =3D=3D 0=0A= ? oStringList[0].charAt(0).toUpperCase() + = oStringList[0].substring(1)=0A= : oStringList[0];=0A= =0A= for (var i =3D 1, len =3D oStringList.length; i < len; i++) {=0A= var s =3D oStringList[i];=0A= camelizedString +=3D s.charAt(0).toUpperCase() + s.substring(1);=0A= }=0A= =0A= return camelizedString;=0A= },=0A= =0A= inspect: function() {=0A= return "'" + this.replace('\\', '\\\\').replace("'", '\\\'') + "'";=0A= }=0A= });=0A= =0A= String.prototype.parseQuery =3D String.prototype.toQueryParams;=0A= =0A= var $break =3D new Object();=0A= var $continue =3D new Object();=0A= =0A= var Enumerable =3D {=0A= each: function(iterator) {=0A= var index =3D 0;=0A= try {=0A= this._each(function(value) {=0A= try {=0A= iterator(value, index++);=0A= } catch (e) {=0A= if (e !=3D $continue) throw e;=0A= }=0A= });=0A= } catch (e) {=0A= if (e !=3D $break) throw e;=0A= }=0A= },=0A= =0A= all: function(iterator) {=0A= var result =3D true;=0A= this.each(function(value, index) {=0A= result =3D result && !!(iterator || Prototype.K)(value, index);=0A= if (!result) throw $break;=0A= });=0A= return result;=0A= },=0A= =0A= any: function(iterator) {=0A= var result =3D true;=0A= this.each(function(value, index) {=0A= if (result =3D !!(iterator || Prototype.K)(value, index))=0A= throw $break;=0A= });=0A= return result;=0A= },=0A= =0A= collect: function(iterator) {=0A= var results =3D [];=0A= this.each(function(value, index) {=0A= results.push(iterator(value, index));=0A= });=0A= return results;=0A= },=0A= =0A= detect: function (iterator) {=0A= var result;=0A= this.each(function(value, index) {=0A= if (iterator(value, index)) {=0A= result =3D value;=0A= throw $break;=0A= }=0A= });=0A= return result;=0A= },=0A= =0A= findAll: function(iterator) {=0A= var results =3D [];=0A= this.each(function(value, index) {=0A= if (iterator(value, index))=0A= results.push(value);=0A= });=0A= return results;=0A= },=0A= =0A= grep: function(pattern, iterator) {=0A= var results =3D [];=0A= this.each(function(value, index) {=0A= var stringValue =3D value.toString();=0A= if (stringValue.match(pattern))=0A= results.push((iterator || Prototype.K)(value, index));=0A= })=0A= return results;=0A= },=0A= =0A= include: function(object) {=0A= var found =3D false;=0A= this.each(function(value) {=0A= if (value =3D=3D object) {=0A= found =3D true;=0A= throw $break;=0A= }=0A= });=0A= return found;=0A= },=0A= =0A= inject: function(memo, iterator) {=0A= this.each(function(value, index) {=0A= memo =3D iterator(memo, value, index);=0A= });=0A= return memo;=0A= },=0A= =0A= invoke: function(method) {=0A= var args =3D $A(arguments).slice(1);=0A= return this.collect(function(value) {=0A= return value[method].apply(value, args);=0A= });=0A= },=0A= =0A= max: function(iterator) {=0A= var result;=0A= this.each(function(value, index) {=0A= value =3D (iterator || Prototype.K)(value, index);=0A= if (value >=3D (result || value))=0A= result =3D value;=0A= });=0A= return result;=0A= },=0A= =0A= min: function(iterator) {=0A= var result;=0A= this.each(function(value, index) {=0A= value =3D (iterator || Prototype.K)(value, index);=0A= if (value <=3D (result || value))=0A= result =3D value;=0A= });=0A= return result;=0A= },=0A= =0A= partition: function(iterator) {=0A= var trues =3D [], falses =3D [];=0A= this.each(function(value, index) {=0A= ((iterator || Prototype.K)(value, index) ?=0A= trues : falses).push(value);=0A= });=0A= return [trues, falses];=0A= },=0A= =0A= pluck: function(property) {=0A= var results =3D [];=0A= this.each(function(value, index) {=0A= results.push(value[property]);=0A= });=0A= return results;=0A= },=0A= =0A= reject: function(iterator) {=0A= var results =3D [];=0A= this.each(function(value, index) {=0A= if (!iterator(value, index))=0A= results.push(value);=0A= });=0A= return results;=0A= },=0A= =0A= sortBy: function(iterator) {=0A= return this.collect(function(value, index) {=0A= return {value: value, criteria: iterator(value, index)};=0A= }).sort(function(left, right) {=0A= var a =3D left.criteria, b =3D right.criteria;=0A= return a < b ? -1 : a > b ? 1 : 0;=0A= }).pluck('value');=0A= },=0A= =0A= toArray: function() {=0A= return this.collect(Prototype.K);=0A= },=0A= =0A= zip: function() {=0A= var iterator =3D Prototype.K, args =3D $A(arguments);=0A= if (typeof args.last() =3D=3D 'function')=0A= iterator =3D args.pop();=0A= =0A= var collections =3D [this].concat(args).map($A);=0A= return this.map(function(value, index) {=0A= iterator(value =3D collections.pluck(index));=0A= return value;=0A= });=0A= },=0A= =0A= inspect: function() {=0A= return '#';=0A= }=0A= }=0A= =0A= Object.extend(Enumerable, {=0A= map: Enumerable.collect,=0A= find: Enumerable.detect,=0A= select: Enumerable.findAll,=0A= member: Enumerable.include,=0A= entries: Enumerable.toArray=0A= });=0A= var $A =3D Array.from =3D function(iterable) {=0A= if (!iterable) return [];=0A= if (iterable.toArray) {=0A= return iterable.toArray();=0A= } else {=0A= var results =3D [];=0A= for (var i =3D 0; i < iterable.length; i++)=0A= results.push(iterable[i]);=0A= return results;=0A= }=0A= }=0A= =0A= Object.extend(Array.prototype, Enumerable);=0A= =0A= Array.prototype._reverse =3D Array.prototype.reverse;=0A= =0A= Object.extend(Array.prototype, {=0A= _each: function(iterator) {=0A= for (var i =3D 0; i < this.length; i++)=0A= iterator(this[i]);=0A= },=0A= =0A= clear: function() {=0A= this.length =3D 0;=0A= return this;=0A= },=0A= =0A= first: function() {=0A= return this[0];=0A= },=0A= =0A= last: function() {=0A= return this[this.length - 1];=0A= },=0A= =0A= compact: function() {=0A= return this.select(function(value) {=0A= return value !=3D undefined || value !=3D null;=0A= });=0A= },=0A= =0A= flatten: function() {=0A= return this.inject([], function(array, value) {=0A= return array.concat(value.constructor =3D=3D Array ?=0A= value.flatten() : [value]);=0A= });=0A= },=0A= =0A= without: function() {=0A= var values =3D $A(arguments);=0A= return this.select(function(value) {=0A= return !values.include(value);=0A= });=0A= },=0A= =0A= indexOf: function(object) {=0A= for (var i =3D 0; i < this.length; i++)=0A= if (this[i] =3D=3D object) return i;=0A= return -1;=0A= },=0A= =0A= reverse: function(inline) {=0A= return (inline !=3D=3D false ? this : this.toArray())._reverse();=0A= },=0A= =0A= shift: function() {=0A= var result =3D this[0];=0A= for (var i =3D 0; i < this.length - 1; i++)=0A= this[i] =3D this[i + 1];=0A= this.length--;=0A= return result;=0A= },=0A= =0A= inspect: function() {=0A= return '[' + this.map(Object.inspect).join(', ') + ']';=0A= }=0A= });=0A= var Hash =3D {=0A= _each: function(iterator) {=0A= for (key in this) {=0A= var value =3D this[key];=0A= if (typeof value =3D=3D 'function') continue;=0A= =0A= var pair =3D [key, value];=0A= pair.key =3D key;=0A= pair.value =3D value;=0A= iterator(pair);=0A= }=0A= },=0A= =0A= keys: function() {=0A= return this.pluck('key');=0A= },=0A= =0A= values: function() {=0A= return this.pluck('value');=0A= },=0A= =0A= merge: function(hash) {=0A= return $H(hash).inject($H(this), function(mergedHash, pair) {=0A= mergedHash[pair.key] =3D pair.value;=0A= return mergedHash;=0A= });=0A= },=0A= =0A= toQueryString: function() {=0A= return this.map(function(pair) {=0A= return pair.map(encodeURIComponent).join('=3D');=0A= }).join('&');=0A= },=0A= =0A= inspect: function() {=0A= return '#';=0A= }=0A= }=0A= =0A= function $H(object) {=0A= var hash =3D Object.extend({}, object || {});=0A= Object.extend(hash, Enumerable);=0A= Object.extend(hash, Hash);=0A= return hash;=0A= }=0A= ObjectRange =3D Class.create();=0A= Object.extend(ObjectRange.prototype, Enumerable);=0A= Object.extend(ObjectRange.prototype, {=0A= initialize: function(start, end, exclusive) {=0A= this.start =3D start;=0A= this.end =3D end;=0A= this.exclusive =3D exclusive;=0A= },=0A= =0A= _each: function(iterator) {=0A= var value =3D this.start;=0A= do {=0A= iterator(value);=0A= value =3D value.succ();=0A= } while (this.include(value));=0A= },=0A= =0A= include: function(value) {=0A= if (value < this.start)=0A= return false;=0A= if (this.exclusive)=0A= return value < this.end;=0A= return value <=3D this.end;=0A= }=0A= });=0A= =0A= var $R =3D function(start, end, exclusive) {=0A= return new ObjectRange(start, end, exclusive);=0A= }=0A= =0A= var Ajax =3D {=0A= getTransport: function() {=0A= return Try.these(=0A= function() {return new ActiveXObject('Msxml2.XMLHTTP')},=0A= function() {return new ActiveXObject('Microsoft.XMLHTTP')},=0A= function() {return new XMLHttpRequest()}=0A= ) || false;=0A= },=0A= =0A= activeRequestCount: 0=0A= }=0A= =0A= Ajax.Responders =3D {=0A= responders: [],=0A= =0A= _each: function(iterator) {=0A= this.responders._each(iterator);=0A= },=0A= =0A= register: function(responderToAdd) {=0A= if (!this.include(responderToAdd))=0A= this.responders.push(responderToAdd);=0A= },=0A= =0A= unregister: function(responderToRemove) {=0A= this.responders =3D this.responders.without(responderToRemove);=0A= },=0A= =0A= dispatch: function(callback, request, transport, json) {=0A= this.each(function(responder) {=0A= if (responder[callback] && typeof responder[callback] =3D=3D = 'function') {=0A= try {=0A= responder[callback].apply(responder, [request, transport, = json]);=0A= } catch (e) {}=0A= }=0A= });=0A= }=0A= };=0A= =0A= Object.extend(Ajax.Responders, Enumerable);=0A= =0A= Ajax.Responders.register({=0A= onCreate: function() {=0A= Ajax.activeRequestCount++;=0A= },=0A= =0A= onComplete: function() {=0A= Ajax.activeRequestCount--;=0A= }=0A= });=0A= =0A= Ajax.Base =3D function() {};=0A= Ajax.Base.prototype =3D {=0A= setOptions: function(options) {=0A= this.options =3D {=0A= method: 'post',=0A= asynchronous: true,=0A= parameters: ''=0A= }=0A= Object.extend(this.options, options || {});=0A= },=0A= =0A= responseIsSuccess: function() {=0A= return this.transport.status =3D=3D undefined=0A= || this.transport.status =3D=3D 0=0A= || (this.transport.status >=3D 200 && this.transport.status < = 300);=0A= },=0A= =0A= responseIsFailure: function() {=0A= return !this.responseIsSuccess();=0A= }=0A= }=0A= =0A= Ajax.Request =3D Class.create();=0A= Ajax.Request.Events =3D=0A= ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'];=0A= =0A= Ajax.Request.prototype =3D Object.extend(new Ajax.Base(), {=0A= initialize: function(url, options) {=0A= this.transport =3D Ajax.getTransport();=0A= this.setOptions(options);=0A= this.request(url);=0A= },=0A= =0A= request: function(url) {=0A= var parameters =3D this.options.parameters || '';=0A= if (parameters.length > 0) parameters +=3D '&_=3D';=0A= =0A= try {=0A= this.url =3D url;=0A= if (this.options.method =3D=3D 'get' && parameters.length > 0)=0A= this.url +=3D (this.url.match(/\?/) ? '&' : '?') + parameters;=0A= =0A= Ajax.Responders.dispatch('onCreate', this, this.transport);=0A= =0A= this.transport.open(this.options.method, this.url,=0A= this.options.asynchronous);=0A= =0A= if (this.options.asynchronous) {=0A= this.transport.onreadystatechange =3D = this.onStateChange.bind(this);=0A= setTimeout((function() = {this.respondToReadyState(1)}).bind(this), 10);=0A= }=0A= =0A= this.setRequestHeaders();=0A= =0A= var body =3D this.options.postBody ? this.options.postBody : = parameters;=0A= this.transport.send(this.options.method =3D=3D 'post' ? body : = null);=0A= =0A= } catch (e) {=0A= this.dispatchException(e);=0A= }=0A= },=0A= =0A= setRequestHeaders: function() {=0A= var requestHeaders =3D=0A= ['X-Requested-With', 'XMLHttpRequest',=0A= 'X-Prototype-Version', Prototype.Version];=0A= =0A= if (this.options.method =3D=3D 'post') {=0A= requestHeaders.push('Content-type',=0A= 'application/x-www-form-urlencoded');=0A= =0A= /* Force "Connection: close" for Mozilla browsers to work around=0A= * a bug where XMLHttpReqeuest sends an incorrect Content-length=0A= * header. See Mozilla Bugzilla #246651.=0A= */=0A= if (this.transport.overrideMimeType)=0A= requestHeaders.push('Connection', 'close');=0A= }=0A= =0A= if (this.options.requestHeaders)=0A= requestHeaders.push.apply(requestHeaders, = this.options.requestHeaders);=0A= =0A= for (var i =3D 0; i < requestHeaders.length; i +=3D 2)=0A= this.transport.setRequestHeader(requestHeaders[i], = requestHeaders[i+1]);=0A= },=0A= =0A= onStateChange: function() {=0A= var readyState =3D this.transport.readyState;=0A= if (readyState !=3D 1)=0A= this.respondToReadyState(this.transport.readyState);=0A= },=0A= =0A= header: function(name) {=0A= try {=0A= return this.transport.getResponseHeader(name);=0A= } catch (e) {}=0A= },=0A= =0A= evalJSON: function() {=0A= try {=0A= return eval(this.header('X-JSON'));=0A= } catch (e) {}=0A= },=0A= =0A= evalResponse: function() {=0A= try {=0A= return eval(this.transport.responseText);=0A= } catch (e) {=0A= this.dispatchException(e);=0A= }=0A= },=0A= =0A= respondToReadyState: function(readyState) {=0A= var event =3D Ajax.Request.Events[readyState];=0A= var transport =3D this.transport, json =3D this.evalJSON();=0A= =0A= if (event =3D=3D 'Complete') {=0A= try {=0A= (this.options['on' + this.transport.status]=0A= || this.options['on' + (this.responseIsSuccess() ? 'Success' : = 'Failure')]=0A= || Prototype.emptyFunction)(transport, json);=0A= } catch (e) {=0A= this.dispatchException(e);=0A= }=0A= =0A= if ((this.header('Content-type') || = '').match(/^text\/javascript/i))=0A= this.evalResponse();=0A= }=0A= =0A= try {=0A= (this.options['on' + event] || Prototype.emptyFunction)(transport, = json);=0A= Ajax.Responders.dispatch('on' + event, this, transport, json);=0A= } catch (e) {=0A= this.dispatchException(e);=0A= }=0A= =0A= /* Avoid memory leak in MSIE: clean up the oncomplete event handler = */=0A= if (event =3D=3D 'Complete')=0A= this.transport.onreadystatechange =3D Prototype.emptyFunction;=0A= },=0A= =0A= dispatchException: function(exception) {=0A= (this.options.onException || Prototype.emptyFunction)(this, = exception);=0A= Ajax.Responders.dispatch('onException', this, exception);=0A= }=0A= });=0A= =0A= Ajax.Updater =3D Class.create();=0A= =0A= Object.extend(Object.extend(Ajax.Updater.prototype, = Ajax.Request.prototype), {=0A= initialize: function(container, url, options) {=0A= this.containers =3D {=0A= success: container.success ? $(container.success) : $(container),=0A= failure: container.failure ? $(container.failure) :=0A= (container.success ? null : $(container))=0A= }=0A= =0A= this.transport =3D Ajax.getTransport();=0A= this.setOptions(options);=0A= =0A= var onComplete =3D this.options.onComplete || = Prototype.emptyFunction;=0A= this.options.onComplete =3D (function(transport, object) {=0A= this.updateContent();=0A= onComplete(transport, object);=0A= }).bind(this);=0A= =0A= this.request(url);=0A= },=0A= =0A= updateContent: function() {=0A= var receiver =3D this.responseIsSuccess() ?=0A= this.containers.success : this.containers.failure;=0A= var response =3D this.transport.responseText;=0A= =0A= if (!this.options.evalScripts)=0A= response =3D response.stripScripts();=0A= =0A= if (receiver) {=0A= if (this.options.insertion) {=0A= new this.options.insertion(receiver, response);=0A= } else {=0A= Element.update(receiver, response);=0A= }=0A= }=0A= =0A= if (this.responseIsSuccess()) {=0A= if (this.onComplete)=0A= setTimeout(this.onComplete.bind(this), 10);=0A= }=0A= }=0A= });=0A= =0A= Ajax.PeriodicalUpdater =3D Class.create();=0A= Ajax.PeriodicalUpdater.prototype =3D Object.extend(new Ajax.Base(), {=0A= initialize: function(container, url, options) {=0A= this.setOptions(options);=0A= this.onComplete =3D this.options.onComplete;=0A= =0A= this.frequency =3D (this.options.frequency || 2);=0A= this.decay =3D (this.options.decay || 1);=0A= =0A= this.updater =3D {};=0A= this.container =3D container;=0A= this.url =3D url;=0A= =0A= this.start();=0A= },=0A= =0A= start: function() {=0A= this.options.onComplete =3D this.updateComplete.bind(this);=0A= this.onTimerEvent();=0A= },=0A= =0A= stop: function() {=0A= this.updater.onComplete =3D undefined;=0A= clearTimeout(this.timer);=0A= (this.onComplete || Prototype.emptyFunction).apply(this, arguments);=0A= },=0A= =0A= updateComplete: function(request) {=0A= if (this.options.decay) {=0A= this.decay =3D (request.responseText =3D=3D this.lastText ?=0A= this.decay * this.options.decay : 1);=0A= =0A= this.lastText =3D request.responseText;=0A= }=0A= this.timer =3D setTimeout(this.onTimerEvent.bind(this),=0A= this.decay * this.frequency * 1000);=0A= },=0A= =0A= onTimerEvent: function() {=0A= this.updater =3D new Ajax.Updater(this.container, this.url, = this.options);=0A= }=0A= });=0A= document.getElementsByClassName =3D function(className, parentElement) {=0A= var children =3D ($(parentElement) || = document.body).getElementsByTagName('*');=0A= return $A(children).inject([], function(elements, child) {=0A= if (child.className.match(new RegExp("(^|\\s)" + className + = "(\\s|$)")))=0A= elements.push(child);=0A= return elements;=0A= });=0A= }=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= if (!window.Element) {=0A= var Element =3D new Object();=0A= }=0A= =0A= Object.extend(Element, {=0A= visible: function(element) {=0A= return $(element).style.display !=3D 'none';=0A= },=0A= =0A= toggle: function() {=0A= for (var i =3D 0; i < arguments.length; i++) {=0A= var element =3D $(arguments[i]);=0A= Element[Element.visible(element) ? 'hide' : 'show'](element);=0A= }=0A= },=0A= =0A= hide: function() {=0A= for (var i =3D 0; i < arguments.length; i++) {=0A= var element =3D $(arguments[i]);=0A= element.style.display =3D 'none';=0A= }=0A= },=0A= =0A= show: function() {=0A= for (var i =3D 0; i < arguments.length; i++) {=0A= var element =3D $(arguments[i]);=0A= element.style.display =3D '';=0A= }=0A= },=0A= =0A= remove: function(element) {=0A= element =3D $(element);=0A= element.parentNode.removeChild(element);=0A= },=0A= =0A= update: function(element, html) {=0A= $(element).innerHTML =3D html.stripScripts();=0A= setTimeout(function() {html.evalScripts()}, 10);=0A= },=0A= =0A= getHeight: function(element) {=0A= element =3D $(element);=0A= return element.offsetHeight;=0A= },=0A= =0A= classNames: function(element) {=0A= return new Element.ClassNames(element);=0A= },=0A= =0A= hasClassName: function(element, className) {=0A= if (!(element =3D $(element))) return;=0A= return Element.classNames(element).include(className);=0A= },=0A= =0A= addClassName: function(element, className) {=0A= if (!(element =3D $(element))) return;=0A= return Element.classNames(element).add(className);=0A= },=0A= =0A= removeClassName: function(element, className) {=0A= if (!(element =3D $(element))) return;=0A= return Element.classNames(element).remove(className);=0A= },=0A= =0A= // removes whitespace-only text node children=0A= cleanWhitespace: function(element) {=0A= element =3D $(element);=0A= for (var i =3D 0; i < element.childNodes.length; i++) {=0A= var node =3D element.childNodes[i];=0A= if (node.nodeType =3D=3D 3 && !/\S/.test(node.nodeValue))=0A= Element.remove(node);=0A= }=0A= },=0A= =0A= empty: function(element) {=0A= return $(element).innerHTML.match(/^\s*$/);=0A= },=0A= =0A= scrollTo: function(element) {=0A= element =3D $(element);=0A= var x =3D element.x ? element.x : element.offsetLeft,=0A= y =3D element.y ? element.y : element.offsetTop;=0A= window.scrollTo(x, y);=0A= },=0A= =0A= getStyle: function(element, style) {=0A= element =3D $(element);=0A= var value =3D element.style[style.camelize()];=0A= if (!value) {=0A= if (document.defaultView && document.defaultView.getComputedStyle) = {=0A= var css =3D document.defaultView.getComputedStyle(element, null);=0A= value =3D css ? css.getPropertyValue(style) : null;=0A= } else if (element.currentStyle) {=0A= value =3D element.currentStyle[style.camelize()];=0A= }=0A= }=0A= =0A= if (window.opera && ['left', 'top', 'right', = 'bottom'].include(style))=0A= if (Element.getStyle(element, 'position') =3D=3D 'static') value = =3D 'auto';=0A= =0A= return value =3D=3D 'auto' ? null : value;=0A= },=0A= =0A= setStyle: function(element, style) {=0A= element =3D $(element);=0A= for (name in style)=0A= element.style[name.camelize()] =3D style[name];=0A= },=0A= =0A= getDimensions: function(element) {=0A= element =3D $(element);=0A= if (Element.getStyle(element, 'display') !=3D 'none')=0A= return {width: element.offsetWidth, height: element.offsetHeight};=0A= =0A= // All *Width and *Height properties give 0 on elements with display = none,=0A= // so enable the element temporarily=0A= var els =3D element.style;=0A= var originalVisibility =3D els.visibility;=0A= var originalPosition =3D els.position;=0A= els.visibility =3D 'hidden';=0A= els.position =3D 'absolute';=0A= els.display =3D '';=0A= var originalWidth =3D element.clientWidth;=0A= var originalHeight =3D element.clientHeight;=0A= els.display =3D 'none';=0A= els.position =3D originalPosition;=0A= els.visibility =3D originalVisibility;=0A= return {width: originalWidth, height: originalHeight};=0A= },=0A= =0A= makePositioned: function(element) {=0A= element =3D $(element);=0A= var pos =3D Element.getStyle(element, 'position');=0A= if (pos =3D=3D 'static' || !pos) {=0A= element._madePositioned =3D true;=0A= element.style.position =3D 'relative';=0A= // Opera returns the offset relative to the positioning context, = when an=0A= // element is position relative but top and left have not been = defined=0A= if (window.opera) {=0A= element.style.top =3D 0;=0A= element.style.left =3D 0;=0A= }=0A= }=0A= },=0A= =0A= undoPositioned: function(element) {=0A= element =3D $(element);=0A= if (element._madePositioned) {=0A= element._madePositioned =3D undefined;=0A= element.style.position =3D=0A= element.style.top =3D=0A= element.style.left =3D=0A= element.style.bottom =3D=0A= element.style.right =3D '';=0A= }=0A= },=0A= =0A= makeClipping: function(element) {=0A= element =3D $(element);=0A= if (element._overflow) return;=0A= element._overflow =3D element.style.overflow;=0A= if ((Element.getStyle(element, 'overflow') || 'visible') !=3D = 'hidden')=0A= element.style.overflow =3D 'hidden';=0A= },=0A= =0A= undoClipping: function(element) {=0A= element =3D $(element);=0A= if (element._overflow) return;=0A= element.style.overflow =3D element._overflow;=0A= element._overflow =3D undefined;=0A= }=0A= });=0A= =0A= var Toggle =3D new Object();=0A= Toggle.display =3D Element.toggle;=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= Abstract.Insertion =3D function(adjacency) {=0A= this.adjacency =3D adjacency;=0A= }=0A= =0A= Abstract.Insertion.prototype =3D {=0A= initialize: function(element, content) {=0A= this.element =3D $(element);=0A= this.content =3D content.stripScripts();=0A= =0A= if (this.adjacency && this.element.insertAdjacentHTML) {=0A= try {=0A= this.element.insertAdjacentHTML(this.adjacency, this.content);=0A= } catch (e) {=0A= if (this.element.tagName.toLowerCase() =3D=3D 'tbody') {=0A= this.insertContent(this.contentFromAnonymousTable());=0A= } else {=0A= throw e;=0A= }=0A= }=0A= } else {=0A= this.range =3D this.element.ownerDocument.createRange();=0A= if (this.initializeRange) this.initializeRange();=0A= = this.insertContent([this.range.createContextualFragment(this.content)]);=0A= }=0A= =0A= setTimeout(function() {content.evalScripts()}, 10);=0A= },=0A= =0A= contentFromAnonymousTable: function() {=0A= var div =3D document.createElement('div');=0A= div.innerHTML =3D '' + this.content + = '
';=0A= return $A(div.childNodes[0].childNodes[0].childNodes);=0A= }=0A= }=0A= =0A= var Insertion =3D new Object();=0A= =0A= Insertion.Before =3D Class.create();=0A= Insertion.Before.prototype =3D Object.extend(new = Abstract.Insertion('beforeBegin'), {=0A= initializeRange: function() {=0A= this.range.setStartBefore(this.element);=0A= },=0A= =0A= insertContent: function(fragments) {=0A= fragments.each((function(fragment) {=0A= this.element.parentNode.insertBefore(fragment, this.element);=0A= }).bind(this));=0A= }=0A= });=0A= =0A= Insertion.Top =3D Class.create();=0A= Insertion.Top.prototype =3D Object.extend(new = Abstract.Insertion('afterBegin'), {=0A= initializeRange: function() {=0A= this.range.selectNodeContents(this.element);=0A= this.range.collapse(true);=0A= },=0A= =0A= insertContent: function(fragments) {=0A= fragments.reverse(false).each((function(fragment) {=0A= this.element.insertBefore(fragment, this.element.firstChild);=0A= }).bind(this));=0A= }=0A= });=0A= =0A= Insertion.Bottom =3D Class.create();=0A= Insertion.Bottom.prototype =3D Object.extend(new = Abstract.Insertion('beforeEnd'), {=0A= initializeRange: function() {=0A= this.range.selectNodeContents(this.element);=0A= this.range.collapse(this.element);=0A= },=0A= =0A= insertContent: function(fragments) {=0A= fragments.each((function(fragment) {=0A= this.element.appendChild(fragment);=0A= }).bind(this));=0A= }=0A= });=0A= =0A= Insertion.After =3D Class.create();=0A= Insertion.After.prototype =3D Object.extend(new = Abstract.Insertion('afterEnd'), {=0A= initializeRange: function() {=0A= this.range.setStartAfter(this.element);=0A= },=0A= =0A= insertContent: function(fragments) {=0A= fragments.each((function(fragment) {=0A= this.element.parentNode.insertBefore(fragment,=0A= this.element.nextSibling);=0A= }).bind(this));=0A= }=0A= });=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= Element.ClassNames =3D Class.create();=0A= Element.ClassNames.prototype =3D {=0A= initialize: function(element) {=0A= this.element =3D $(element);=0A= },=0A= =0A= _each: function(iterator) {=0A= this.element.className.split(/\s+/).select(function(name) {=0A= return name.length > 0;=0A= })._each(iterator);=0A= },=0A= =0A= set: function(className) {=0A= this.element.className =3D className;=0A= },=0A= =0A= add: function(classNameToAdd) {=0A= if (this.include(classNameToAdd)) return;=0A= this.set(this.toArray().concat(classNameToAdd).join(' '));=0A= },=0A= =0A= remove: function(classNameToRemove) {=0A= if (!this.include(classNameToRemove)) return;=0A= this.set(this.select(function(className) {=0A= return className !=3D classNameToRemove;=0A= }).join(' '));=0A= },=0A= =0A= toString: function() {=0A= return this.toArray().join(' ');=0A= }=0A= }=0A= =0A= Object.extend(Element.ClassNames.prototype, Enumerable);=0A= var Field =3D {=0A= clear: function() {=0A= for (var i =3D 0; i < arguments.length; i++)=0A= $(arguments[i]).value =3D '';=0A= },=0A= =0A= focus: function(element) {=0A= $(element).focus();=0A= },=0A= =0A= present: function() {=0A= for (var i =3D 0; i < arguments.length; i++)=0A= if ($(arguments[i]).value =3D=3D '') return false;=0A= return true;=0A= },=0A= =0A= select: function(element) {=0A= $(element).select();=0A= },=0A= =0A= activate: function(element) {=0A= element =3D $(element);=0A= element.focus();=0A= if (element.select)=0A= element.select();=0A= }=0A= }=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= var Form =3D {=0A= serialize: function(form) {=0A= var elements =3D Form.getElements($(form));=0A= var queryComponents =3D new Array();=0A= =0A= for (var i =3D 0; i < elements.length; i++) {=0A= var queryComponent =3D Form.Element.serialize(elements[i]);=0A= if (queryComponent)=0A= queryComponents.push(queryComponent);=0A= }=0A= =0A= return queryComponents.join('&');=0A= },=0A= =0A= getElements: function(form) {=0A= form =3D $(form);=0A= var elements =3D new Array();=0A= =0A= for (tagName in Form.Element.Serializers) {=0A= var tagElements =3D form.getElementsByTagName(tagName);=0A= for (var j =3D 0; j < tagElements.length; j++)=0A= elements.push(tagElements[j]);=0A= }=0A= return elements;=0A= },=0A= =0A= getInputs: function(form, typeName, name) {=0A= form =3D $(form);=0A= var inputs =3D form.getElementsByTagName('input');=0A= =0A= if (!typeName && !name)=0A= return inputs;=0A= =0A= var matchingInputs =3D new Array();=0A= for (var i =3D 0; i < inputs.length; i++) {=0A= var input =3D inputs[i];=0A= if ((typeName && input.type !=3D typeName) ||=0A= (name && input.name !=3D name))=0A= continue;=0A= matchingInputs.push(input);=0A= }=0A= =0A= return matchingInputs;=0A= },=0A= =0A= disable: function(form) {=0A= var elements =3D Form.getElements(form);=0A= for (var i =3D 0; i < elements.length; i++) {=0A= var element =3D elements[i];=0A= element.blur();=0A= element.disabled =3D 'true';=0A= }=0A= },=0A= =0A= enable: function(form) {=0A= var elements =3D Form.getElements(form);=0A= for (var i =3D 0; i < elements.length; i++) {=0A= var element =3D elements[i];=0A= element.disabled =3D '';=0A= }=0A= },=0A= =0A= findFirstElement: function(form) {=0A= return Form.getElements(form).find(function(element) {=0A= return element.type !=3D 'hidden' && !element.disabled &&=0A= ['input', 'select', = 'textarea'].include(element.tagName.toLowerCase());=0A= });=0A= },=0A= =0A= focusFirstElement: function(form) {=0A= Field.activate(Form.findFirstElement(form));=0A= },=0A= =0A= reset: function(form) {=0A= $(form).reset();=0A= }=0A= }=0A= =0A= Form.Element =3D {=0A= serialize: function(element) {=0A= element =3D $(element);=0A= var method =3D element.tagName.toLowerCase();=0A= var parameter =3D Form.Element.Serializers[method](element);=0A= =0A= if (parameter) {=0A= var key =3D encodeURIComponent(parameter[0]);=0A= if (key.length =3D=3D 0) return;=0A= =0A= if (parameter[1].constructor !=3D Array)=0A= parameter[1] =3D [parameter[1]];=0A= =0A= return parameter[1].map(function(value) {=0A= return key + '=3D' + encodeURIComponent(value);=0A= }).join('&');=0A= }=0A= },=0A= =0A= getValue: function(element) {=0A= element =3D $(element);=0A= var method =3D element.tagName.toLowerCase();=0A= var parameter =3D Form.Element.Serializers[method](element);=0A= =0A= if (parameter)=0A= return parameter[1];=0A= }=0A= }=0A= =0A= Form.Element.Serializers =3D {=0A= input: function(element) {=0A= switch (element.type.toLowerCase()) {=0A= case 'submit':=0A= case 'hidden':=0A= case 'password':=0A= case 'text':=0A= return Form.Element.Serializers.textarea(element);=0A= case 'checkbox':=0A= case 'radio':=0A= return Form.Element.Serializers.inputSelector(element);=0A= }=0A= return false;=0A= },=0A= =0A= inputSelector: function(element) {=0A= if (element.checked)=0A= return [element.name, element.value];=0A= },=0A= =0A= textarea: function(element) {=0A= return [element.name, element.value];=0A= },=0A= =0A= select: function(element) {=0A= return Form.Element.Serializers[element.type =3D=3D 'select-one' ?=0A= 'selectOne' : 'selectMany'](element);=0A= },=0A= =0A= selectOne: function(element) {=0A= var value =3D '', opt, index =3D element.selectedIndex;=0A= if (index >=3D 0) {=0A= opt =3D element.options[index];=0A= value =3D opt.value;=0A= if (!value && !('value' in opt))=0A= value =3D opt.text;=0A= }=0A= return [element.name, value];=0A= },=0A= =0A= selectMany: function(element) {=0A= var value =3D new Array();=0A= for (var i =3D 0; i < element.length; i++) {=0A= var opt =3D element.options[i];=0A= if (opt.selected) {=0A= var optValue =3D opt.value;=0A= if (!optValue && !('value' in opt))=0A= optValue =3D opt.text;=0A= value.push(optValue);=0A= }=0A= }=0A= return [element.name, value];=0A= }=0A= }=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= var $F =3D Form.Element.getValue;=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= Abstract.TimedObserver =3D function() {}=0A= Abstract.TimedObserver.prototype =3D {=0A= initialize: function(element, frequency, callback) {=0A= this.frequency =3D frequency;=0A= this.element =3D $(element);=0A= this.callback =3D callback;=0A= =0A= this.lastValue =3D this.getValue();=0A= this.registerCallback();=0A= },=0A= =0A= registerCallback: function() {=0A= setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);=0A= },=0A= =0A= onTimerEvent: function() {=0A= var value =3D this.getValue();=0A= if (this.lastValue !=3D value) {=0A= this.callback(this.element, value);=0A= this.lastValue =3D value;=0A= }=0A= }=0A= }=0A= =0A= Form.Element.Observer =3D Class.create();=0A= Form.Element.Observer.prototype =3D Object.extend(new = Abstract.TimedObserver(), {=0A= getValue: function() {=0A= return Form.Element.getValue(this.element);=0A= }=0A= });=0A= =0A= Form.Observer =3D Class.create();=0A= Form.Observer.prototype =3D Object.extend(new Abstract.TimedObserver(), {=0A= getValue: function() {=0A= return Form.serialize(this.element);=0A= }=0A= });=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= Abstract.EventObserver =3D function() {}=0A= Abstract.EventObserver.prototype =3D {=0A= initialize: function(element, callback) {=0A= this.element =3D $(element);=0A= this.callback =3D callback;=0A= =0A= this.lastValue =3D this.getValue();=0A= if (this.element.tagName.toLowerCase() =3D=3D 'form')=0A= this.registerFormCallbacks();=0A= else=0A= this.registerCallback(this.element);=0A= },=0A= =0A= onElementEvent: function() {=0A= var value =3D this.getValue();=0A= if (this.lastValue !=3D value) {=0A= this.callback(this.element, value);=0A= this.lastValue =3D value;=0A= }=0A= },=0A= =0A= registerFormCallbacks: function() {=0A= var elements =3D Form.getElements(this.element);=0A= for (var i =3D 0; i < elements.length; i++)=0A= this.registerCallback(elements[i]);=0A= },=0A= =0A= registerCallback: function(element) {=0A= if (element.type) {=0A= switch (element.type.toLowerCase()) {=0A= case 'checkbox':=0A= case 'radio':=0A= Event.observe(element, 'click', = this.onElementEvent.bind(this));=0A= break;=0A= case 'password':=0A= case 'text':=0A= case 'textarea':=0A= case 'select-one':=0A= case 'select-multiple':=0A= Event.observe(element, 'change', = this.onElementEvent.bind(this));=0A= break;=0A= }=0A= }=0A= }=0A= }=0A= =0A= Form.Element.EventObserver =3D Class.create();=0A= Form.Element.EventObserver.prototype =3D Object.extend(new = Abstract.EventObserver(), {=0A= getValue: function() {=0A= return Form.Element.getValue(this.element);=0A= }=0A= });=0A= =0A= Form.EventObserver =3D Class.create();=0A= Form.EventObserver.prototype =3D Object.extend(new = Abstract.EventObserver(), {=0A= getValue: function() {=0A= return Form.serialize(this.element);=0A= }=0A= });=0A= if (!window.Event) {=0A= var Event =3D new Object();=0A= }=0A= =0A= Object.extend(Event, {=0A= KEY_BACKSPACE: 8,=0A= KEY_TAB: 9,=0A= KEY_RETURN: 13,=0A= KEY_ESC: 27,=0A= KEY_LEFT: 37,=0A= KEY_UP: 38,=0A= KEY_RIGHT: 39,=0A= KEY_DOWN: 40,=0A= KEY_DELETE: 46,=0A= =0A= element: function(event) {=0A= return event.target || event.srcElement;=0A= },=0A= =0A= isLeftClick: function(event) {=0A= return (((event.which) && (event.which =3D=3D 1)) ||=0A= ((event.button) && (event.button =3D=3D 1)));=0A= },=0A= =0A= pointerX: function(event) {=0A= return event.pageX || (event.clientX +=0A= (document.documentElement.scrollLeft || document.body.scrollLeft));=0A= },=0A= =0A= pointerY: function(event) {=0A= return event.pageY || (event.clientY +=0A= (document.documentElement.scrollTop || document.body.scrollTop));=0A= },=0A= =0A= stop: function(event) {=0A= if (event.preventDefault) {=0A= event.preventDefault();=0A= event.stopPropagation();=0A= } else {=0A= event.returnValue =3D false;=0A= event.cancelBubble =3D true;=0A= }=0A= },=0A= =0A= // find the first node with the given tagName, starting from the=0A= // node the event was triggered on; traverses the DOM upwards=0A= findElement: function(event, tagName) {=0A= var element =3D Event.element(event);=0A= while (element.parentNode && (!element.tagName ||=0A= (element.tagName.toUpperCase() !=3D tagName.toUpperCase())))=0A= element =3D element.parentNode;=0A= return element;=0A= },=0A= =0A= observers: false,=0A= =0A= _observeAndCache: function(element, name, observer, useCapture) {=0A= if (!this.observers) this.observers =3D [];=0A= if (element.addEventListener) {=0A= this.observers.push([element, name, observer, useCapture]);=0A= element.addEventListener(name, observer, useCapture);=0A= } else if (element.attachEvent) {=0A= this.observers.push([element, name, observer, useCapture]);=0A= element.attachEvent('on' + name, observer);=0A= }=0A= },=0A= =0A= unloadCache: function() {=0A= if (!Event.observers) return;=0A= for (var i =3D 0; i < Event.observers.length; i++) {=0A= Event.stopObserving.apply(this, Event.observers[i]);=0A= Event.observers[i][0] =3D null;=0A= }=0A= Event.observers =3D false;=0A= },=0A= =0A= observe: function(element, name, observer, useCapture) {=0A= var element =3D $(element);=0A= useCapture =3D useCapture || false;=0A= =0A= if (name =3D=3D 'keypress' &&=0A= (navigator.appVersion.match(/Konqueror|Safari|KHTML/)=0A= || element.attachEvent))=0A= name =3D 'keydown';=0A= =0A= this._observeAndCache(element, name, observer, useCapture);=0A= },=0A= =0A= stopObserving: function(element, name, observer, useCapture) {=0A= var element =3D $(element);=0A= useCapture =3D useCapture || false;=0A= =0A= if (name =3D=3D 'keypress' &&=0A= (navigator.appVersion.match(/Konqueror|Safari|KHTML/)=0A= || element.detachEvent))=0A= name =3D 'keydown';=0A= =0A= if (element.removeEventListener) {=0A= element.removeEventListener(name, observer, useCapture);=0A= } else if (element.detachEvent) {=0A= element.detachEvent('on' + name, observer);=0A= }=0A= }=0A= });=0A= =0A= /* prevent memory leaks in IE */=0A= Event.observe(window, 'unload', Event.unloadCache, false);=0A= var Position =3D {=0A= // set to true if needed, warning: firefox performance problems=0A= // NOT neeeded for page scrolling, only if draggable contained in=0A= // scrollable elements=0A= includeScrollOffsets: false,=0A= =0A= // must be called before calling withinIncludingScrolloffset, every = time the=0A= // page is scrolled=0A= prepare: function() {=0A= this.deltaX =3D window.pageXOffset=0A= || document.documentElement.scrollLeft=0A= || document.body.scrollLeft=0A= || 0;=0A= this.deltaY =3D window.pageYOffset=0A= || document.documentElement.scrollTop=0A= || document.body.scrollTop=0A= || 0;=0A= },=0A= =0A= realOffset: function(element) {=0A= var valueT =3D 0, valueL =3D 0;=0A= do {=0A= valueT +=3D element.scrollTop || 0;=0A= valueL +=3D element.scrollLeft || 0;=0A= element =3D element.parentNode;=0A= } while (element);=0A= return [valueL, valueT];=0A= },=0A= =0A= cumulativeOffset: function(element) {=0A= var valueT =3D 0, valueL =3D 0;=0A= do {=0A= valueT +=3D element.offsetTop || 0;=0A= valueL +=3D element.offsetLeft || 0;=0A= element =3D element.offsetParent;=0A= } while (element);=0A= return [valueL, valueT];=0A= },=0A= =0A= positionedOffset: function(element) {=0A= var valueT =3D 0, valueL =3D 0;=0A= do {=0A= valueT +=3D element.offsetTop || 0;=0A= valueL +=3D element.offsetLeft || 0;=0A= element =3D element.offsetParent;=0A= if (element) {=0A= p =3D Element.getStyle(element, 'position');=0A= if (p =3D=3D 'relative' || p =3D=3D 'absolute') break;=0A= }=0A= } while (element);=0A= return [valueL, valueT];=0A= },=0A= =0A= offsetParent: function(element) {=0A= if (element.offsetParent) return element.offsetParent;=0A= if (element =3D=3D document.body) return element;=0A= =0A= while ((element =3D element.parentNode) && element !=3D = document.body)=0A= if (Element.getStyle(element, 'position') !=3D 'static')=0A= return element;=0A= =0A= return document.body;=0A= },=0A= =0A= // caches x/y coordinate pair to use with overlap=0A= within: function(element, x, y) {=0A= if (this.includeScrollOffsets)=0A= return this.withinIncludingScrolloffsets(element, x, y);=0A= this.xcomp =3D x;=0A= this.ycomp =3D y;=0A= this.offset =3D this.cumulativeOffset(element);=0A= =0A= return (y >=3D this.offset[1] &&=0A= y < this.offset[1] + element.offsetHeight &&=0A= x >=3D this.offset[0] &&=0A= x < this.offset[0] + element.offsetWidth);=0A= },=0A= =0A= withinIncludingScrolloffsets: function(element, x, y) {=0A= var offsetcache =3D this.realOffset(element);=0A= =0A= this.xcomp =3D x + offsetcache[0] - this.deltaX;=0A= this.ycomp =3D y + offsetcache[1] - this.deltaY;=0A= this.offset =3D this.cumulativeOffset(element);=0A= =0A= return (this.ycomp >=3D this.offset[1] &&=0A= this.ycomp < this.offset[1] + element.offsetHeight &&=0A= this.xcomp >=3D this.offset[0] &&=0A= this.xcomp < this.offset[0] + element.offsetWidth);=0A= },=0A= =0A= // within must be called directly before=0A= overlap: function(mode, element) {=0A= if (!mode) return 0;=0A= if (mode =3D=3D 'vertical')=0A= return ((this.offset[1] + element.offsetHeight) - this.ycomp) /=0A= element.offsetHeight;=0A= if (mode =3D=3D 'horizontal')=0A= return ((this.offset[0] + element.offsetWidth) - this.xcomp) /=0A= element.offsetWidth;=0A= },=0A= =0A= clone: function(source, target) {=0A= source =3D $(source);=0A= target =3D $(target);=0A= target.style.position =3D 'absolute';=0A= var offsets =3D this.cumulativeOffset(source);=0A= target.style.top =3D offsets[1] + 'px';=0A= target.style.left =3D offsets[0] + 'px';=0A= target.style.width =3D source.offsetWidth + 'px';=0A= target.style.height =3D source.offsetHeight + 'px';=0A= },=0A= =0A= page: function(forElement) {=0A= var valueT =3D 0, valueL =3D 0;=0A= =0A= var element =3D forElement;=0A= do {=0A= valueT +=3D element.offsetTop || 0;=0A= valueL +=3D element.offsetLeft || 0;=0A= =0A= // Safari fix=0A= if (element.offsetParent=3D=3Ddocument.body)=0A= if (Element.getStyle(element,'position')=3D=3D'absolute') break;=0A= =0A= } while (element =3D element.offsetParent);=0A= =0A= element =3D forElement;=0A= do {=0A= valueT -=3D element.scrollTop || 0;=0A= valueL -=3D element.scrollLeft || 0;=0A= } while (element =3D element.parentNode);=0A= =0A= return [valueL, valueT];=0A= },=0A= =0A= clone: function(source, target) {=0A= var options =3D Object.extend({=0A= setLeft: true,=0A= setTop: true,=0A= setWidth: true,=0A= setHeight: true,=0A= offsetTop: 0,=0A= offsetLeft: 0=0A= }, arguments[2] || {})=0A= =0A= // find page position of source=0A= source =3D $(source);=0A= var p =3D Position.page(source);=0A= =0A= // find coordinate system to use=0A= target =3D $(target);=0A= var delta =3D [0, 0];=0A= var parent =3D null;=0A= // delta [0,0] will do fine with position: fixed elements,=0A= // position:absolute needs offsetParent deltas=0A= if (Element.getStyle(target,'position') =3D=3D 'absolute') {=0A= parent =3D Position.offsetParent(target);=0A= delta =3D Position.page(parent);=0A= }=0A= =0A= // correct by body offsets (fixes Safari)=0A= if (parent =3D=3D document.body) {=0A= delta[0] -=3D document.body.offsetLeft;=0A= delta[1] -=3D document.body.offsetTop;=0A= }=0A= =0A= // set position=0A= if(options.setLeft) target.style.left =3D (p[0] - delta[0] + = options.offsetLeft) + 'px';=0A= if(options.setTop) target.style.top =3D (p[1] - delta[1] + = options.offsetTop) + 'px';=0A= if(options.setWidth) target.style.width =3D source.offsetWidth + = 'px';=0A= if(options.setHeight) target.style.height =3D source.offsetHeight + = 'px';=0A= },=0A= =0A= absolutize: function(element) {=0A= element =3D $(element);=0A= if (element.style.position =3D=3D 'absolute') return;=0A= Position.prepare();=0A= =0A= var offsets =3D Position.positionedOffset(element);=0A= var top =3D offsets[1];=0A= var left =3D offsets[0];=0A= var width =3D element.clientWidth;=0A= var height =3D element.clientHeight;=0A= =0A= element._originalLeft =3D left - parseFloat(element.style.left || = 0);=0A= element._originalTop =3D top - parseFloat(element.style.top || = 0);=0A= element._originalWidth =3D element.style.width;=0A= element._originalHeight =3D element.style.height;=0A= =0A= element.style.position =3D 'absolute';=0A= element.style.top =3D top + 'px';;=0A= element.style.left =3D left + 'px';;=0A= element.style.width =3D width + 'px';;=0A= element.style.height =3D height + 'px';;=0A= },=0A= =0A= relativize: function(element) {=0A= element =3D $(element);=0A= if (element.style.position =3D=3D 'relative') return;=0A= Position.prepare();=0A= =0A= element.style.position =3D 'relative';=0A= var top =3D parseFloat(element.style.top || 0) - = (element._originalTop || 0);=0A= var left =3D parseFloat(element.style.left || 0) - = (element._originalLeft || 0);=0A= =0A= element.style.top =3D top + 'px';=0A= element.style.left =3D left + 'px';=0A= element.style.height =3D element._originalHeight;=0A= element.style.width =3D element._originalWidth;=0A= }=0A= }=0A= =0A= // Safari returns margins on body which is incorrect if the child is = absolutely=0A= // positioned. For performance reasons, redefine = Position.cumulativeOffset for=0A= // KHTML/WebKit only.=0A= if (/Konqueror|Safari|KHTML/.test(navigator.userAgent)) {=0A= Position.cumulativeOffset =3D function(element) {=0A= var valueT =3D 0, valueL =3D 0;=0A= do {=0A= valueT +=3D element.offsetTop || 0;=0A= valueL +=3D element.offsetLeft || 0;=0A= if (element.offsetParent =3D=3D document.body)=0A= if (Element.getStyle(element, 'position') =3D=3D 'absolute') = break;=0A= =0A= element =3D element.offsetParent;=0A= } while (element);=0A= =0A= return [valueL, valueT];=0A= }=0A= } ------=_NextPart_000_00C1_01C8E336.6DBBC320 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.museum-neuchatel.ch/new/js/scriptaculous.js?load=effects // Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, = http://mir.aculo.us)=0A= // =0A= // Permission is hereby granted, free of charge, to any person obtaining=0A= // a copy of this software and associated documentation files (the=0A= // "Software"), to deal in the Software without restriction, including=0A= // without limitation the rights to use, copy, modify, merge, publish,=0A= // distribute, sublicense, and/or sell copies of the Software, and to=0A= // permit persons to whom the Software is furnished to do so, subject to=0A= // the following conditions:=0A= // =0A= // The above copyright notice and this permission notice shall be=0A= // included in all copies or substantial portions of the Software.=0A= //=0A= // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,=0A= // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF=0A= // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND=0A= // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE=0A= // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION=0A= // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION=0A= // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.=0A= =0A= var Scriptaculous =3D {=0A= Version: '1.5.1',=0A= require: function(libraryName) {=0A= // inserting via DOM fails in Safari 2.0, so brute force approach=0A= document.write('');=0A= },=0A= load: function() {=0A= if((typeof Prototype=3D=3D'undefined') ||=0A= parseFloat(Prototype.Version.split(".")[0] + "." +=0A= Prototype.Version.split(".")[1]) < 1.4)=0A= throw("script.aculo.us requires the Prototype JavaScript framework = >=3D 1.4.0");=0A= =0A= $A(document.getElementsByTagName("script")).findAll( function(s) {=0A= return (s.src && s.src.match(/scriptaculous\.js(\?.*)?$/))=0A= }).each( function(s) {=0A= var path =3D s.src.replace(/scriptaculous\.js(\?.*)?$/,'');=0A= var includes =3D s.src.match(/\?.*load=3D([a-z,]*)/);=0A= (includes ? includes[1] : = 'builder,effects,dragdrop,controls,slider').split(',').each(=0A= function(include) { Scriptaculous.require(path+include+'.js') });=0A= });=0A= }=0A= }=0A= =0A= Scriptaculous.load(); ------=_NextPart_000_00C1_01C8E336.6DBBC320 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.museum-neuchatel.ch/new/js/lightbox.js // = -------------------------------------------------------------------------= ----------=0A= //=0A= // Lightbox v2.03.3=0A= // by Lokesh Dhakar - http://www.huddletogether.com=0A= // 5/21/06=0A= //=0A= // For more information on this script, visit:=0A= // http://huddletogether.com/projects/lightbox2/=0A= //=0A= // Licensed under the Creative Commons Attribution 2.5 License - = http://creativecommons.org/licenses/by/2.5/=0A= // =0A= // Credit also due to those who have helped, inspired, and made their = code available to the public.=0A= // Including: Scott Upton(uptonic.com), Peter-Paul Koch(quirksmode.com), = Thomas Fuchs(mir.aculo.us), and others.=0A= //=0A= //=0A= // = -------------------------------------------------------------------------= ----------=0A= /*=0A= =0A= Table of Contents=0A= -----------------=0A= Configuration=0A= Global Variables=0A= =0A= Extending Built-in Objects =0A= - Object.extend(Element)=0A= - Array.prototype.removeDuplicates()=0A= - Array.prototype.empty()=0A= =0A= Lightbox Class Declaration=0A= - initialize()=0A= - updateImageList()=0A= - start()=0A= - changeImage()=0A= - resizeImageContainer()=0A= - showImage()=0A= - updateDetails()=0A= - updateNav()=0A= - enableKeyboardNav()=0A= - disableKeyboardNav()=0A= - keyboardAction()=0A= - preloadNeighborImages()=0A= - end()=0A= =0A= Miscellaneous Functions=0A= - getPageScroll()=0A= - getPageSize()=0A= - getKey()=0A= - listenKey()=0A= - showSelectBoxes()=0A= - hideSelectBoxes()=0A= - showFlash()=0A= - hideFlash()=0A= - pause()=0A= - initLightbox()=0A= =0A= Function Calls=0A= - addLoadEvent(initLightbox)=0A= =0A= */=0A= // = -------------------------------------------------------------------------= ----------=0A= =0A= //=0A= // Configuration=0A= //=0A= var fileLoadingImage =3D "images/loading.gif"; =0A= var fileBottomNavCloseImage =3D "images/closelabel.gif";=0A= =0A= var overlayOpacity =3D 0.8; // controls transparency of shadow overlay=0A= =0A= var animate =3D true; // toggles resizing animations=0A= var resizeSpeed =3D 7; // controls the speed of the image resizing = animations (1=3Dslowest and 10=3Dfastest)=0A= =0A= var borderSize =3D 10; //if you adjust the padding in the CSS, you will = need to update this variable=0A= =0A= // = -------------------------------------------------------------------------= ----------=0A= =0A= //=0A= // Global Variables=0A= //=0A= var imageArray =3D new Array;=0A= var activeImage;=0A= var myLightbox;=0A= if(animate =3D=3D true){=0A= overlayDuration =3D 0.2; // shadow fade in/out duration=0A= if(resizeSpeed > 10){ resizeSpeed =3D 10;}=0A= if(resizeSpeed < 1){ resizeSpeed =3D 1;}=0A= resizeDuration =3D (11 - resizeSpeed) * 0.15;=0A= } else { =0A= overlayDuration =3D 0;=0A= resizeDuration =3D 0;=0A= }=0A= =0A= // = -------------------------------------------------------------------------= ----------=0A= =0A= //=0A= // Additional methods for Element added by SU, Couloir=0A= // - further additions by Lokesh Dhakar (huddletogether.com)=0A= //=0A= Object.extend(Element, {=0A= getWidth: function(element) {=0A= element =3D $(element);=0A= return element.offsetWidth; =0A= },=0A= setWidth: function(element,w) {=0A= element =3D $(element);=0A= element.style.width =3D w +"px";=0A= },=0A= setHeight: function(element,h) {=0A= element =3D $(element);=0A= element.style.height =3D h +"px";=0A= },=0A= setTop: function(element,t) {=0A= element =3D $(element);=0A= element.style.top =3D t +"px";=0A= },=0A= setLeft: function(element,l) {=0A= element =3D $(element);=0A= element.style.left =3D l +"px";=0A= },=0A= setSrc: function(element,src) {=0A= element =3D $(element);=0A= element.src =3D src; =0A= },=0A= setHref: function(element,href) {=0A= element =3D $(element);=0A= element.href =3D href; =0A= },=0A= setInnerHTML: function(element,content) {=0A= element =3D $(element);=0A= element.innerHTML =3D content;=0A= }=0A= });=0A= =0A= // = -------------------------------------------------------------------------= ----------=0A= =0A= //=0A= // Extending built-in Array object=0A= // - array.removeDuplicates()=0A= // - array.empty()=0A= //=0A= Array.prototype.removeDuplicates =3D function () {=0A= for(i =3D 0; i < this.length; i++){=0A= for(j =3D this.length-1; j>i; j--){ =0A= if(this[i][0] =3D=3D this[j][0]){=0A= this.splice(j,1);=0A= }=0A= }=0A= }=0A= }=0A= =0A= // = -------------------------------------------------------------------------= ----------=0A= =0A= Array.prototype.empty =3D function () {=0A= for(i =3D 0; i <=3D this.length; i++){=0A= this.shift();=0A= }=0A= }=0A= =0A= // = -------------------------------------------------------------------------= ----------=0A= =0A= //=0A= // Lightbox Class Declaration=0A= // - initialize()=0A= // - start()=0A= // - changeImage()=0A= // - resizeImageContainer()=0A= // - showImage()=0A= // - updateDetails()=0A= // - updateNav()=0A= // - enableKeyboardNav()=0A= // - disableKeyboardNav()=0A= // - keyboardNavAction()=0A= // - preloadNeighborImages()=0A= // - end()=0A= //=0A= // Structuring of code inspired by Scott Upton (http://www.uptonic.com/)=0A= //=0A= var Lightbox =3D Class.create();=0A= =0A= Lightbox.prototype =3D {=0A= =0A= // initialize()=0A= // Constructor runs on completion of the DOM loading. Calls = updateImageList and then=0A= // the function inserts html at the bottom of the page which is used to = display the shadow =0A= // overlay and the image container.=0A= //=0A= initialize: function() { =0A= =0A= this.updateImageList();=0A= =0A= // Code inserts html at the bottom of the page that looks similar to = this:=0A= //=0A= //
=0A= //
=0A= //
=0A= //
=0A= // =0A= //
=0A= // =0A= // =0A= //
=0A= //
=0A= // =0A= // =0A= // =0A= //
=0A= //
=0A= //
=0A= //
=0A= //
=0A= //
=0A= // =0A= // =0A= //
=0A= //
=0A= // =0A= // =0A= // =0A= //
=0A= //
=0A= //
=0A= //
=0A= =0A= =0A= var objBody =3D document.getElementsByTagName("body").item(0);=0A= =0A= var objOverlay =3D document.createElement("div");=0A= objOverlay.setAttribute('id','overlay');=0A= objOverlay.style.display =3D 'none';=0A= objOverlay.onclick =3D function() { myLightbox.end(); }=0A= objBody.appendChild(objOverlay);=0A= =0A= var objLightbox =3D document.createElement("div");=0A= objLightbox.setAttribute('id','lightbox');=0A= objLightbox.style.display =3D 'none';=0A= objLightbox.onclick =3D function(e) { // close Lightbox is user clicks = shadow overlay=0A= if (!e) var e =3D window.event;=0A= var clickObj =3D Event.element(e).id;=0A= if ( clickObj =3D=3D 'lightbox') {=0A= myLightbox.end();=0A= }=0A= };=0A= objBody.appendChild(objLightbox);=0A= =0A= var objOuterImageContainer =3D document.createElement("div");=0A= objOuterImageContainer.setAttribute('id','outerImageContainer');=0A= objLightbox.appendChild(objOuterImageContainer);=0A= =0A= // When Lightbox starts it will resize itself from 250 by 250 to the = current image dimension.=0A= // If animations are turned off, it will be hidden as to prevent a = flicker of a=0A= // white 250 by 250 box.=0A= if(animate){=0A= Element.setWidth('outerImageContainer', 250);=0A= Element.setHeight('outerImageContainer', 250); =0A= } else {=0A= Element.setWidth('outerImageContainer', 1);=0A= Element.setHeight('outerImageContainer', 1); =0A= }=0A= =0A= var objImageContainer =3D document.createElement("div");=0A= objImageContainer.setAttribute('id','imageContainer');=0A= objOuterImageContainer.appendChild(objImageContainer);=0A= =0A= var objLightboxImage =3D document.createElement("img");=0A= objLightboxImage.setAttribute('id','lightboxImage');=0A= objImageContainer.appendChild(objLightboxImage);=0A= =0A= var objHoverNav =3D document.createElement("div");=0A= objHoverNav.setAttribute('id','hoverNav');=0A= objImageContainer.appendChild(objHoverNav);=0A= =0A= var objPrevLink =3D document.createElement("a");=0A= objPrevLink.setAttribute('id','prevLink');=0A= objPrevLink.setAttribute('href','#');=0A= objHoverNav.appendChild(objPrevLink);=0A= =0A= var objNextLink =3D document.createElement("a");=0A= objNextLink.setAttribute('id','nextLink');=0A= objNextLink.setAttribute('href','#');=0A= objHoverNav.appendChild(objNextLink);=0A= =0A= var objLoading =3D document.createElement("div");=0A= objLoading.setAttribute('id','loading');=0A= objImageContainer.appendChild(objLoading);=0A= =0A= var objLoadingLink =3D document.createElement("a");=0A= objLoadingLink.setAttribute('id','loadingLink');=0A= objLoadingLink.setAttribute('href','#');=0A= objLoadingLink.onclick =3D function() { myLightbox.end(); return = false; }=0A= objLoading.appendChild(objLoadingLink);=0A= =0A= var objLoadingImage =3D document.createElement("img");=0A= objLoadingImage.setAttribute('src', fileLoadingImage);=0A= objLoadingLink.appendChild(objLoadingImage);=0A= =0A= var objImageDataContainer =3D document.createElement("div");=0A= objImageDataContainer.setAttribute('id','imageDataContainer');=0A= objLightbox.appendChild(objImageDataContainer);=0A= =0A= var objImageData =3D document.createElement("div");=0A= objImageData.setAttribute('id','imageData');=0A= objImageDataContainer.appendChild(objImageData);=0A= =0A= var objImageDetails =3D document.createElement("div");=0A= objImageDetails.setAttribute('id','imageDetails');=0A= objImageData.appendChild(objImageDetails);=0A= =0A= var objCaption =3D document.createElement("span");=0A= objCaption.setAttribute('id','caption');=0A= objImageDetails.appendChild(objCaption);=0A= =0A= var objNumberDisplay =3D document.createElement("span");=0A= objNumberDisplay.setAttribute('id','numberDisplay');=0A= objImageDetails.appendChild(objNumberDisplay);=0A= =0A= var objBottomNav =3D document.createElement("div");=0A= objBottomNav.setAttribute('id','bottomNav');=0A= objImageData.appendChild(objBottomNav);=0A= =0A= var objBottomNavCloseLink =3D document.createElement("a");=0A= objBottomNavCloseLink.setAttribute('id','bottomNavClose');=0A= objBottomNavCloseLink.setAttribute('href','#');=0A= objBottomNavCloseLink.onclick =3D function() { myLightbox.end(); = return false; }=0A= objBottomNav.appendChild(objBottomNavCloseLink);=0A= =0A= var objBottomNavCloseImage =3D document.createElement("img");=0A= objBottomNavCloseImage.setAttribute('src', fileBottomNavCloseImage);=0A= objBottomNavCloseLink.appendChild(objBottomNavCloseImage);=0A= },=0A= =0A= =0A= //=0A= // updateImageList()=0A= // Loops through anchor tags looking for 'lightbox' references and = applies onclick=0A= // events to appropriate links. You can rerun after dynamically adding = images w/ajax.=0A= //=0A= updateImageList: function() { =0A= if (!document.getElementsByTagName){ return; }=0A= var anchors =3D document.getElementsByTagName('a');=0A= var areas =3D document.getElementsByTagName('area');=0A= =0A= // loop through all anchor tags=0A= for (var i=3D0; i 1){=0A= Element.show('numberDisplay');=0A= Element.setInnerHTML( 'numberDisplay', eval(activeImage + 1) + " / " = + imageArray.length);=0A= }=0A= =0A= new Effect.Parallel(=0A= [ new Effect.SlideDown( 'imageDataContainer', { sync: true, duration: = resizeDuration, from: 0.0, to: 1.0 }), =0A= new Effect.Appear('imageDataContainer', { sync: true, duration: = resizeDuration }) ], =0A= { duration: resizeDuration, afterFinish: function() {=0A= // update overlay size and update nav=0A= var arrayPageSize =3D getPageSize();=0A= Element.setHeight('overlay', arrayPageSize[1]);=0A= myLightbox.updateNav();=0A= }=0A= } =0A= );=0A= },=0A= =0A= //=0A= // updateNav()=0A= // Display appropriate previous and next hover navigation.=0A= //=0A= updateNav: function() {=0A= =0A= Element.show('hoverNav'); =0A= =0A= // if not first image in set, display prev image button=0A= if(activeImage !=3D 0){=0A= Element.show('prevLink');=0A= document.getElementById('prevLink').onclick =3D function() {=0A= myLightbox.changeImage(activeImage - 1); return false;=0A= }=0A= }=0A= =0A= // if not last image in set, display next image button=0A= if(activeImage !=3D (imageArray.length - 1)){=0A= Element.show('nextLink');=0A= document.getElementById('nextLink').onclick =3D function() {=0A= myLightbox.changeImage(activeImage + 1); return false;=0A= }=0A= }=0A= =0A= this.enableKeyboardNav();=0A= },=0A= =0A= //=0A= // enableKeyboardNav()=0A= //=0A= enableKeyboardNav: function() {=0A= document.onkeydown =3D this.keyboardAction; =0A= },=0A= =0A= //=0A= // disableKeyboardNav()=0A= //=0A= disableKeyboardNav: function() {=0A= document.onkeydown =3D '';=0A= },=0A= =0A= //=0A= // keyboardAction()=0A= //=0A= keyboardAction: function(e) {=0A= if (e =3D=3D null) { // ie=0A= keycode =3D event.keyCode;=0A= escapeKey =3D 27;=0A= } else { // mozilla=0A= keycode =3D e.keyCode;=0A= escapeKey =3D e.DOM_VK_ESCAPE;=0A= }=0A= =0A= key =3D String.fromCharCode(keycode).toLowerCase();=0A= =0A= if((key =3D=3D 'x') || (key =3D=3D 'o') || (key =3D=3D 'c') || = (keycode =3D=3D escapeKey)){ // close lightbox=0A= myLightbox.end();=0A= } else if((key =3D=3D 'p') || (keycode =3D=3D 37)){ // display = previous image=0A= if(activeImage !=3D 0){=0A= myLightbox.disableKeyboardNav();=0A= myLightbox.changeImage(activeImage - 1);=0A= }=0A= } else if((key =3D=3D 'n') || (keycode =3D=3D 39)){ // display next = image=0A= if(activeImage !=3D (imageArray.length - 1)){=0A= myLightbox.disableKeyboardNav();=0A= myLightbox.changeImage(activeImage + 1);=0A= }=0A= }=0A= =0A= },=0A= =0A= //=0A= // preloadNeighborImages()=0A= // Preload previous and next images.=0A= //=0A= preloadNeighborImages: function(){=0A= =0A= if((imageArray.length - 1) > activeImage){=0A= preloadNextImage =3D new Image();=0A= preloadNextImage.src =3D imageArray[activeImage + 1][0];=0A= }=0A= if(activeImage > 0){=0A= preloadPrevImage =3D new Image();=0A= preloadPrevImage.src =3D imageArray[activeImage - 1][0];=0A= }=0A= =0A= },=0A= =0A= //=0A= // end()=0A= //=0A= end: function() {=0A= this.disableKeyboardNav();=0A= Element.hide('lightbox');=0A= new Effect.Fade('overlay', { duration: overlayDuration});=0A= showSelectBoxes();=0A= showFlash();=0A= // Hack : Put scrollbars backin order to prevent a bug in Firefox = for mac=0A= document.getElementById('content').style.overflow =3D 'auto';=0A= =0A= }=0A= }=0A= =0A= // = -------------------------------------------------------------------------= ----------=0A= =0A= //=0A= // getPageScroll()=0A= // Returns array with x,y page scroll values.=0A= // Core code from - quirksmode.com=0A= //=0A= function getPageScroll(){=0A= =0A= var xScroll, yScroll;=0A= =0A= if (self.pageYOffset) {=0A= yScroll =3D self.pageYOffset;=0A= xScroll =3D self.pageXOffset;=0A= } else if (document.documentElement && = document.documentElement.scrollTop){ // Explorer 6 Strict=0A= yScroll =3D document.documentElement.scrollTop;=0A= xScroll =3D document.documentElement.scrollLeft;=0A= } else if (document.body) {// all other Explorers=0A= yScroll =3D document.body.scrollTop;=0A= xScroll =3D document.body.scrollLeft; =0A= }=0A= =0A= arrayPageScroll =3D new Array(xScroll,yScroll) =0A= return arrayPageScroll;=0A= }=0A= =0A= // = -------------------------------------------------------------------------= ----------=0A= =0A= //=0A= // getPageSize()=0A= // Returns array with page width, height and window width, height=0A= // Core code from - quirksmode.com=0A= // Edit for Firefox by pHaez=0A= //=0A= function getPageSize(){=0A= =0A= var xScroll, yScroll;=0A= =0A= if (window.innerHeight && window.scrollMaxY) { =0A= xScroll =3D window.innerWidth + window.scrollMaxX;=0A= yScroll =3D window.innerHeight + window.scrollMaxY;=0A= } else if (document.body.scrollHeight > document.body.offsetHeight){ // = all but Explorer Mac=0A= xScroll =3D document.body.scrollWidth;=0A= yScroll =3D document.body.scrollHeight;=0A= } else { // Explorer Mac...would also work in Explorer 6 Strict, = Mozilla and Safari=0A= xScroll =3D document.body.offsetWidth;=0A= yScroll =3D document.body.offsetHeight;=0A= }=0A= =0A= var windowWidth, windowHeight;=0A= =0A= // console.log(self.innerWidth);=0A= // console.log(document.documentElement.clientWidth);=0A= =0A= if (self.innerHeight) { // all except Explorer=0A= if(document.documentElement.clientWidth){=0A= windowWidth =3D document.documentElement.clientWidth; =0A= } else {=0A= windowWidth =3D self.innerWidth;=0A= }=0A= windowHeight =3D self.innerHeight;=0A= } else if (document.documentElement && = document.documentElement.clientHeight) { // Explorer 6 Strict Mode=0A= windowWidth =3D document.documentElement.clientWidth;=0A= windowHeight =3D document.documentElement.clientHeight;=0A= } else if (document.body) { // other Explorers=0A= windowWidth =3D document.body.clientWidth;=0A= windowHeight =3D document.body.clientHeight;=0A= } =0A= =0A= // for small pages with total height less then height of the viewport=0A= if(yScroll < windowHeight){=0A= pageHeight =3D windowHeight;=0A= } else { =0A= pageHeight =3D yScroll;=0A= }=0A= =0A= // console.log("xScroll " + xScroll)=0A= // console.log("windowWidth " + windowWidth)=0A= =0A= // for small pages with total width less then width of the viewport=0A= if(xScroll < windowWidth){ =0A= pageWidth =3D xScroll; =0A= } else {=0A= pageWidth =3D windowWidth;=0A= }=0A= // console.log("pageWidth " + pageWidth)=0A= =0A= arrayPageSize =3D new = Array(pageWidth,pageHeight,windowWidth,windowHeight) =0A= return arrayPageSize;=0A= }=0A= =0A= // = -------------------------------------------------------------------------= ----------=0A= =0A= //=0A= // getKey(key)=0A= // Gets keycode. If 'x' is pressed then it hides the lightbox.=0A= //=0A= function getKey(e){=0A= if (e =3D=3D null) { // ie=0A= keycode =3D event.keyCode;=0A= } else { // mozilla=0A= keycode =3D e.which;=0A= }=0A= key =3D String.fromCharCode(keycode).toLowerCase();=0A= =0A= if(key =3D=3D 'x'){=0A= }=0A= }=0A= =0A= // = -------------------------------------------------------------------------= ----------=0A= =0A= //=0A= // listenKey()=0A= //=0A= function listenKey () { document.onkeypress =3D getKey; }=0A= =0A= // ---------------------------------------------------=0A= =0A= function showSelectBoxes(){=0A= var selects =3D document.getElementsByTagName("select");=0A= for (i =3D 0; i !=3D selects.length; i++) {=0A= selects[i].style.visibility =3D "visible";=0A= }=0A= }=0A= =0A= // ---------------------------------------------------=0A= =0A= function hideSelectBoxes(){=0A= var selects =3D document.getElementsByTagName("select");=0A= for (i =3D 0; i !=3D selects.length; i++) {=0A= selects[i].style.visibility =3D "hidden";=0A= }=0A= }=0A= =0A= // ---------------------------------------------------=0A= =0A= function showFlash(){=0A= var flashObjects =3D document.getElementsByTagName("object");=0A= for (i =3D 0; i < flashObjects.length; i++) {=0A= flashObjects[i].style.visibility =3D "visible";=0A= }=0A= =0A= var flashEmbeds =3D document.getElementsByTagName("embed");=0A= for (i =3D 0; i < flashEmbeds.length; i++) {=0A= flashEmbeds[i].style.visibility =3D "visible";=0A= }=0A= }=0A= =0A= // ---------------------------------------------------=0A= =0A= function hideFlash(){=0A= var flashObjects =3D document.getElementsByTagName("object");=0A= for (i =3D 0; i < flashObjects.length; i++) {=0A= flashObjects[i].style.visibility =3D "hidden";=0A= }=0A= =0A= var flashEmbeds =3D document.getElementsByTagName("embed");=0A= for (i =3D 0; i < flashEmbeds.length; i++) {=0A= flashEmbeds[i].style.visibility =3D "hidden";=0A= }=0A= =0A= }=0A= =0A= =0A= // ---------------------------------------------------=0A= =0A= //=0A= // pause(numberMillis)=0A= // Pauses code execution for specified time. Uses busy code, not good.=0A= // Help from Ran Bar-On [ran2103@gmail.com]=0A= //=0A= =0A= function pause(ms){=0A= var date =3D new Date();=0A= curDate =3D null;=0A= do{var curDate =3D new Date();}=0A= while( curDate - date < ms);=0A= }=0A= /*=0A= function pause(numberMillis) {=0A= var curently =3D new Date().getTime() + sender;=0A= while (new Date().getTime(); =0A= }=0A= */=0A= // ---------------------------------------------------=0A= =0A= =0A= =0A= function initLightbox() { myLightbox =3D new Lightbox(); }=0A= Event.observe(window, 'load', initLightbox, false); ------=_NextPart_000_00C1_01C8E336.6DBBC320 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.museum-neuchatel.ch/new/js/boutique.js function read_cookie(nom) =0A= {=0A= var deb,fin=0A= deb =3D document.cookie.indexOf(nom + "=3D");=0A= if (deb >=3D 0) =0A= {=0A= deb +=3D nom.length + 1;=0A= fin =3D document.cookie.indexOf(";",deb);=0A= if (fin < 0) fin =3D document.cookie.length;=0A= return unescape(document.cookie.substring(deb,fin));=0A= }=0A= return 0;=0A= }=0A= =0A= function orderSingle(id)=0A= {=0A= oldquantity =3D read_cookie('cart_'+id);=0A= quantity =3D parseInt(oldquantity) + 1;=0A= document.cookie =3D 'cart_'+id+'=3D'+quantity;=0A= updateCart();=0A= alert("L'article souhait=E9 a =E9t=E9 plac=E9 dans votre panier.");=0A= }=0A= =0A= function orderMultiple(id)=0A= {=0A= oldquantity =3D read_cookie('cart_'+id);=0A= quantity =3D prompt("Quantit=E9 :", 1);=0A= quantity =3D parseInt(oldquantity) + parseInt(quantity); =0A= document.cookie =3D 'cart_'+id+'=3D'+quantity;=0A= updateCart();=0A= alert("Articles ajout=E9s au panier.");=0A= }=0A= function updateCart()=0A= {=0A= document.getElementById('diaporama').innerHTML =3D 'Un instant svp, = mise à jour du panier';=0A= document.getElementById('diaporama').style.left =3D 300; =0A= document.getElementById('diaporama').style.width =3D 644; =0A= new Ajax.Updater('diaporama', 'cart.php', {=0A= parameters: 'short=3Dtrue'=0A= });=0A= }=0A= function viewCart()=0A= {=0A= document.getElementById('content').innerHTML =3D 'Chargement du = panier...';=0A= new Ajax.Updater('content', 'cart.php', {=0A= parameters: ''=0A= });=0A= }=0A= function removeFromCart(id)=0A= {=0A= document.cookie =3D 'cart_'+id+'=3D0;expires=3DWed, 31-Dec-1997 = 23:59:59 GMT';=0A= updateCart();=0A= viewCart();=0A= }=0A= function updateCartQuantities()=0A= {=0A= new Ajax.Updater('content', 'cart.php', {=0A= parameters: Form.serialize('change_quantity')=0A= });=0A= updateCart(); =0A= }=0A= function submitOrder()=0A= {=0A= new Ajax.Updater('content', 'cart.php', {=0A= parameters: Form.serialize('order'),=0A= evalScripts: true=0A= });=0A= }=0A= function emptyCart()=0A= {=0A= Cookies =3D document.cookie.split('; ');=0A= for (i=3D0; i < Cookies.length; ++i)=0A= {=0A= cookie =3D Cookies[i].split('=3D');=0A= if (cookie[0].indexOf('cart') =3D=3D 0)=0A= {=0A= document.cookie =3D cookie[0]+'=3D0;expires=3DWed, 31-Dec-1997 = 23:59:59 GMT'=0A= }=0A= }=0A= updateCart();=0A= viewCart();=0A= }=0A= =0A= ------=_NextPart_000_00C1_01C8E336.6DBBC320 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.museum-neuchatel.ch/new/js/forms.js function submitAmuseForm()=0A= {=0A= new Ajax.Updater('content', 'form-mailer.php', {=0A= parameters: Form.serialize('amuse'),=0A= evalScripts: true=0A= });=0A= =0A= }=0A= function submitHallForm()=0A= {=0A= new Ajax.Updater('content', 'form-mailer.php', {=0A= parameters: Form.serialize('hall'),=0A= evalScripts: true=0A= });=0A= =0A= }=0A= function submitAuditoireForm()=0A= {=0A= new Ajax.Updater('content', 'form-mailer.php', {=0A= parameters: Form.serialize('auditoire'),=0A= evalScripts: true=0A= });=0A= =0A= } ------=_NextPart_000_00C1_01C8E336.6DBBC320 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.museum-neuchatel.ch/new/js/calendar.js var cal1; =0A= function init() { =0A= if (document.getElementById("cal1Container"))=0A= {=0A= cal1 =3D new YAHOO.widget.Calendar("cal1","cal1Container", = {START_WEEKDAY: 1}); =0A= cal1.cfg.setProperty("DATE_FIELD_DELIMITER", "."); =0A= cal1.cfg.setProperty("MDY_DAY_POSITION", 1); =0A= cal1.cfg.setProperty("MDY_MONTH_POSITION", 2); =0A= cal1.cfg.setProperty("MDY_YEAR_POSITION", 3); =0A= cal1.cfg.setProperty("MONTHS_SHORT", ["Jan", "F=E9v", = "Mar", "Avr", "Mai", "Juin", "Juil", "Aou", "Sep", "Oct", "Nov", = "D=E9c"]); =0A= cal1.cfg.setProperty("MONTHS_LONG", ["Janvier", = "F=E9vrier", "Mars", "Avril", "Mai", "Juin", "Juillet", "Ao=FBt", = "Septembre", "Octobre", "Novembre", "D=E9cembre"]); =0A= cal1.cfg.setProperty("WEEKDAYS_1CHAR", ["D", "L", "M", = "M", "J", "V", "S"]); =0A= cal1.cfg.setProperty("WEEKDAYS_SHORT", ["Di", "Lu", "Ma", = "Me", "Je", "Ve", "Sa"]); =0A= cal1.cfg.setProperty("WEEKDAYS_MEDIUM",["Dim", "Lun", = "Mar", "Mer", "Jeu", "Ven", "Sam"]); =0A= cal1.cfg.setProperty("WEEKDAYS_LONG", ["Dimanche", = "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Dimanche"]); =0A= cal1.render(); =0A= cal1.selectEvent.subscribe(handleSelect, cal1, true);=0A= // IE Bug=0A= setTimeout("toggleCalendar()",200);=0A= }=0A= } =0A= function handleSelect(type,args,obj) =0A= { =0A= var dates =3D args[0]; =0A= var date =3D dates[0]; =0A= var year =3D date[0], month =3D date[1], day =3D date[2]; =0A= =0A= var txtDate1 =3D document.getElementById("date"); =0A= txtDate1.value =3D day + "." + month + "." + year;=0A= = document.getElementById('cal1Container').style.visibility=3D'hidden';=0A= }=0A= function toggleCalendar()=0A= {=0A= calenderDiv =3D document.getElementById('cal1Container');=0A= if (calenderDiv.style.visibility =3D=3D 'hidden') =0A= {=0A= calenderDiv.style.visibility =3D 'visible';=0A= }=0A= else=0A= {=0A= calenderDiv.style.visibility =3D 'hidden';=0A= }=0A= }=0A= =0A= ------=_NextPart_000_00C1_01C8E336.6DBBC320 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.museum-neuchatel.ch/new/js/yui/build/yahoo-dom-event/yahoo-dom-event.js /*=0A= Copyright (c) 2007, Yahoo! Inc. All rights reserved.=0A= Code licensed under the BSD License:=0A= http://developer.yahoo.net/yui/license.txt=0A= version: 2.3.0=0A= */=0A= =0A= if(typeof YAHOO=3D=3D"undefined"){var YAHOO=3D{};}=0A= YAHOO.namespace=3Dfunction(){var = a=3Darguments,o=3Dnull,i,j,d;for(i=3D0;i ';if(!l.isObject(o)||o instanceof Date||("nodeType"in = o&&"tagName"in o)){return o;}else if(l.isFunction(o)){return FUN;}=0A= d=3D(l.isNumber(d))?d:3;if(l.isArray(o)){s.push("[");for(i=3D0,len=3Do.le= ngth;i0)?l.dump(o[i],d-1):OB= J);}else{s.push(o[i]);}=0A= s.push(COMMA);}=0A= if(s.length>1){s.pop();}=0A= s.push("]");}else{s.push("{");for(i in = o){if(l.hasOwnProperty(o,i)){s.push(i+ARROW);if(l.isObject(o[i])){s.push(= (d>0)?l.dump(o[i],d-1):OBJ);}else{s.push(o[i]);}=0A= s.push(COMMA);}}=0A= if(s.length>1){s.pop();}=0A= s.push("}");}=0A= return s.join("");},substitute:function(s,o,f){var = i,j,k,key,v,meta,l=3DYAHOO.lang,saved=3D[],token,DUMP=3D'dump',SPACE=3D' = ',LBRACE=3D'{',RBRACE=3D'}';for(;;){i=3Ds.lastIndexOf(LBRACE);if(i<0){bre= ak;}=0A= j=3Ds.indexOf(RBRACE,i);if(i+1>=3Dj){break;}=0A= token=3Ds.substring(i+1,j);key=3Dtoken;meta=3Dnull;k=3Dkey.indexOf(SPACE)= ;if(k>-1){meta=3Dkey.substring(k+1);key=3Dkey.substring(0,k);}=0A= v=3Do[key];if(f){v=3Df(key,v,meta);}=0A= if(l.isObject(v)){if(l.isArray(v)){v=3Dl.dump(v,parseInt(meta,10));}else{= meta=3Dmeta||"";var = dump=3Dmeta.indexOf(DUMP);if(dump>-1){meta=3Dmeta.substring(4);}=0A= if(v.toString=3D=3D=3DObject.prototype.toString||dump>-1){v=3Dl.dump(v,pa= rseInt(meta,10));}else{v=3Dv.toString();}}}else = if(!l.isString(v)&&!l.isNumber(v)){v=3D"~-"+saved.length+"-~";saved[saved= .length]=3Dtoken;}=0A= s=3Ds.substring(0,i)+v+s.substring(j+1);}=0A= for(i=3Dsaved.length-1;i>=3D0;i=3Di-1){s=3Ds.replace(new = RegExp("~-"+i+"-~"),"{"+saved[i]+"}","g");}=0A= return s;},trim:function(s){try{return = s.replace(/^\s+|\s+$/g,"");}catch(e){return s;}},merge:function(){var = o=3D{},a=3Darguments,i;for(i=3D0;i=3Dthis.left&®ion.right<=3Dthis.right&&= region.top>=3Dthis.top&®ion.bottom<=3Dthis.bottom);};YAHOO.util.Region= .prototype.getArea=3Dfunction(){return((this.bottom-this.top)*(this.right= -this.left));};YAHOO.util.Region.prototype.intersect=3Dfunction(region){v= ar t=3DMath.max(this.top,region.top);var = r=3DMath.min(this.right,region.right);var = b=3DMath.min(this.bottom,region.bottom);var = l=3DMath.max(this.left,region.left);if(b>=3Dt&&r>=3Dl){return new = YAHOO.util.Region(t,r,b,l);}else{return = null;}};YAHOO.util.Region.prototype.union=3Dfunction(region){var = t=3DMath.min(this.top,region.top);var = r=3DMath.max(this.right,region.right);var = b=3DMath.max(this.bottom,region.bottom);var = l=3DMath.min(this.left,region.left);return new = YAHOO.util.Region(t,r,b,l);};YAHOO.util.Region.prototype.toString=3Dfunct= ion(){return("Region {"+"top: "+this.top+", right: "+this.right+", = bottom: "+this.bottom+", left: = "+this.left+"}");};YAHOO.util.Region.getRegion=3Dfunction(el){var = p=3DYAHOO.util.Dom.getXY(el);var t=3Dp[1];var = r=3Dp[0]+el.offsetWidth;var b=3Dp[1]+el.offsetHeight;var l=3Dp[0];return = new = YAHOO.util.Region(t,r,b,l);};YAHOO.util.Point=3Dfunction(x,y){if(YAHOO.la= ng.isArray(x)){y=3Dx[1];x=3Dx[0];}=0A= this.x=3Dthis.right=3Dthis.left=3Dthis[0]=3Dx;this.y=3Dthis.top=3Dthis.bo= ttom=3Dthis[1]=3Dy;};YAHOO.util.Point.prototype=3Dnew = YAHOO.util.Region();YAHOO.register("dom",YAHOO.util.Dom,{version:"2.3.0",= build:"442"});=0A= YAHOO.util.CustomEvent=3Dfunction(type,oScope,silent,signature){this.type= =3Dtype;this.scope=3DoScope||window;this.silent=3Dsilent;this.signature=3D= signature||YAHOO.util.CustomEvent.LIST;this.subscribers=3D[];if(!this.sil= ent){}=0A= var = onsubscribeType=3D"_YUICEOnSubscribe";if(type!=3D=3DonsubscribeType){this= .subscribeEvent=3Dnew = YAHOO.util.CustomEvent(onsubscribeType,this,true);}};YAHOO.util.CustomEve= nt.LIST=3D0;YAHOO.util.CustomEvent.FLAT=3D1;YAHOO.util.CustomEvent.protot= ype=3D{subscribe:function(fn,obj,override){if(!fn){throw new = Error("Invalid callback for subscriber to '"+this.type+"'");}=0A= if(this.subscribeEvent){this.subscribeEvent.fire(fn,obj,override);}=0A= this.subscribers.push(new = YAHOO.util.Subscriber(fn,obj,override));},unsubscribe:function(fn,obj){if= (!fn){return this.unsubscribeAll();}=0A= var found=3Dfalse;for(var = i=3D0,len=3Dthis.subscribers.length;i0){param=3Dargs[0];}=0A= ret=3Ds.fn.call(scope,param,s.obj);}else{ret=3Ds.fn.call(scope,this.type,= args,s.obj);}=0A= if(false=3D=3D=3Dret){if(!this.silent){}=0A= return false;}}}=0A= if(rebuild){var = newlist=3D[],subs=3Dthis.subscribers;for(i=3D0,len=3Dsubs.length;i=3D0){cacheItem=3Dlisteners[index];}=0A= if(!el||!cacheItem){return false;}=0A= if(this.useLegacyEvent(el,sType)){var = legacyIndex=3Dthis.getLegacyIndex(el,sType);var = llist=3DlegacyHandlers[legacyIndex];if(llist){for(i=3D0,len=3Dllist.lengt= h;i0);}=0A= var notAvail=3D[];var executeItem=3Dfunction(el,item){var = scope=3Del;if(item.override){if(item.override=3D=3D=3Dtrue){scope=3Ditem.= obj;}else{scope=3Ditem.override;}}=0A= item.fn.call(scope,item.obj);};var = i,len,item,el;for(i=3D0,len=3DonAvailStack.length;i0){for(var = i=3D0,len=3DsearchList.length;i0){j=3Dlisteners.le= ngth;while(j){index=3Dj-1;l=3Dlisteners[index];if(l){EU.removeListener(l[= EU.EL],l[EU.TYPE],l[EU.FN],index);}=0A= j=3Dj-1;}=0A= l=3Dnull;EU.clearCache();}=0A= for(i=3D0,len=3DlegacyEvents.length;i<'+'/script>');el=3Ddocument.getElementById("_yui_eu_dr");}=0A= if(el){el.onreadystatechange=3Dfunction(){if("complete"=3D=3D=3Dthis.read= yState){this.parentNode.removeChild(this);YAHOO.util.Event._ready();}};}e= lse{}=0A= el=3Dnull;}else if(EU.webkit){EU._drwatch=3DsetInterval(function(){var = rs=3Ddocument.readyState;if("loaded"=3D=3Drs||"complete"=3D=3Drs){clearIn= terval(EU._drwatch);EU._drwatch=3Dnull;EU._ready();}},EU.POLL_INTERVAL);}= else{EU._simpleAdd(document,"DOMContentLoaded",EU._ready);}=0A= EU._simpleAdd(window,"load",EU._load);EU._simpleAdd(window,"unload",EU._u= nload);EU._tryPreloadAttach();})();}=0A= YAHOO.util.EventProvider=3Dfunction(){};YAHOO.util.EventProvider.prototyp= e=3D{__yui_events:null,__yui_subscribers:null,subscribe:function(p_type,p= _fn,p_obj,p_override){this.__yui_events=3Dthis.__yui_events||{};var = ce=3Dthis.__yui_events[p_type];if(ce){ce.subscribe(p_fn,p_obj,p_override)= ;}else{this.__yui_subscribers=3Dthis.__yui_subscribers||{};var = subs=3Dthis.__yui_subscribers;if(!subs[p_type]){subs[p_type]=3D[];}=0A= subs[p_type].push({fn:p_fn,obj:p_obj,override:p_override});}},unsubscribe= :function(p_type,p_fn,p_obj){this.__yui_events=3Dthis.__yui_events||{};va= r evts=3Dthis.__yui_events;if(p_type){var = ce=3Devts[p_type];if(ce){return = ce.unsubscribe(p_fn,p_obj);}}else{for(var i in evts){var = ret=3Dtrue;if(YAHOO.lang.hasOwnProperty(evts,i)){ret=3Dret&&evts[i].unsub= scribe(p_fn,p_obj);}}=0A= return ret;}=0A= return false;},unsubscribeAll:function(p_type){return = this.unsubscribe(p_type);},createEvent:function(p_type,p_config){this.__y= ui_events=3Dthis.__yui_events||{};var opts=3Dp_config||{};var = events=3Dthis.__yui_events;if(events[p_type]){}else{var = scope=3Dopts.scope||this;var silent=3D(opts.silent);var ce=3Dnew = YAHOO.util.CustomEvent(p_type,scope,silent,YAHOO.util.CustomEvent.FLAT);e= vents[p_type]=3Dce;if(opts.onSubscribeCallback){ce.subscribeEvent.subscri= be(opts.onSubscribeCallback);}=0A= this.__yui_subscribers=3Dthis.__yui_subscribers||{};var = qs=3Dthis.__yui_subscribers[p_type];if(qs){for(var = i=3D0;i0){i=3DnSub= scribers-1;do{subsc=3Devt.subscribers[i];if(subsc&&subsc.obj=3D=3Dobj&&su= bsc.fn=3D=3Dfn){return true;}}=0A= while(i--);}=0A= return = false;};YAHOO.lang.augmentProto(Config,YAHOO.util.EventProvider);}());(fu= nction(){YAHOO.widget.Module=3Dfunction(el,userConfig){if(el){this.init(e= l,userConfig);}else{}};var = Dom=3DYAHOO.util.Dom,Config=3DYAHOO.util.Config,Event=3DYAHOO.util.Event,= CustomEvent=3DYAHOO.util.CustomEvent,Module=3DYAHOO.widget.Module,m_oModu= leTemplate,m_oHeaderTemplate,m_oBodyTemplate,m_oFooterTemplate,EVENT_TYPE= S=3D{"BEFORE_INIT":"beforeInit","INIT":"init","APPEND":"append","BEFORE_R= ENDER":"beforeRender","RENDER":"render","CHANGE_HEADER":"changeHeader","C= HANGE_BODY":"changeBody","CHANGE_FOOTER":"changeFooter","CHANGE_CONTENT":= "changeContent","DESTORY":"destroy","BEFORE_SHOW":"beforeShow","SHOW":"sh= ow","BEFORE_HIDE":"beforeHide","HIDE":"hide"},DEFAULT_CONFIG=3D{"VISIBLE"= :{key:"visible",value:true,validator:YAHOO.lang.isBoolean},"EFFECT":{key:= "effect",suppressEvent:true,supercedes:["visible"]},"MONITOR_RESIZE":{key= :"monitorresize",value:true}};Module.IMG_ROOT=3Dnull;Module.IMG_ROOT_SSL=3D= null;Module.CSS_MODULE=3D"yui-module";Module.CSS_HEADER=3D"hd";Module.CSS= _BODY=3D"bd";Module.CSS_FOOTER=3D"ft";Module.RESIZE_MONITOR_SECURE_URL=3D= "javascript:false;";Module.textResizeEvent=3Dnew = CustomEvent("textResize");function = createModuleTemplate(){if(!m_oModuleTemplate){m_oModuleTemplate=3Ddocumen= t.createElement("div");m_oModuleTemplate.innerHTML=3D("
"+"
");m_oHeaderTemplate=3Dm_oModuleTemplate.firs= tChild;m_oBodyTemplate=3Dm_oHeaderTemplate.nextSibling;m_oFooterTemplate=3D= m_oBodyTemplate.nextSibling;}=0A= return m_oModuleTemplate;}=0A= function createHeader(){if(!m_oHeaderTemplate){createModuleTemplate();}=0A= return(m_oHeaderTemplate.cloneNode(false));}=0A= function createBody(){if(!m_oBodyTemplate){createModuleTemplate();}=0A= return(m_oBodyTemplate.cloneNode(false));}=0A= function createFooter(){if(!m_oFooterTemplate){createModuleTemplate();}=0A= return(m_oFooterTemplate.cloneNode(false));}=0A= Module.prototype=3D{constructor:Module,element:null,header:null,body:null= ,footer:null,id:null,imageRoot:Module.IMG_ROOT,initEvents:function(){var = SIGNATURE=3DCustomEvent.LIST;this.beforeInitEvent=3Dthis.createEvent(EVEN= T_TYPES.BEFORE_INIT);this.beforeInitEvent.signature=3DSIGNATURE;this.init= Event=3Dthis.createEvent(EVENT_TYPES.INIT);this.initEvent.signature=3DSIG= NATURE;this.appendEvent=3Dthis.createEvent(EVENT_TYPES.APPEND);this.appen= dEvent.signature=3DSIGNATURE;this.beforeRenderEvent=3Dthis.createEvent(EV= ENT_TYPES.BEFORE_RENDER);this.beforeRenderEvent.signature=3DSIGNATURE;thi= s.renderEvent=3Dthis.createEvent(EVENT_TYPES.RENDER);this.renderEvent.sig= nature=3DSIGNATURE;this.changeHeaderEvent=3Dthis.createEvent(EVENT_TYPES.= CHANGE_HEADER);this.changeHeaderEvent.signature=3DSIGNATURE;this.changeBo= dyEvent=3Dthis.createEvent(EVENT_TYPES.CHANGE_BODY);this.changeBodyEvent.= signature=3DSIGNATURE;this.changeFooterEvent=3Dthis.createEvent(EVENT_TYP= ES.CHANGE_FOOTER);this.changeFooterEvent.signature=3DSIGNATURE;this.chang= eContentEvent=3Dthis.createEvent(EVENT_TYPES.CHANGE_CONTENT);this.changeC= ontentEvent.signature=3DSIGNATURE;this.destroyEvent=3Dthis.createEvent(EV= ENT_TYPES.DESTORY);this.destroyEvent.signature=3DSIGNATURE;this.beforeSho= wEvent=3Dthis.createEvent(EVENT_TYPES.BEFORE_SHOW);this.beforeShowEvent.s= ignature=3DSIGNATURE;this.showEvent=3Dthis.createEvent(EVENT_TYPES.SHOW);= this.showEvent.signature=3DSIGNATURE;this.beforeHideEvent=3Dthis.createEv= ent(EVENT_TYPES.BEFORE_HIDE);this.beforeHideEvent.signature=3DSIGNATURE;t= his.hideEvent=3Dthis.createEvent(EVENT_TYPES.HIDE);this.hideEvent.signatu= re=3DSIGNATURE;},platform:function(){var = ua=3Dnavigator.userAgent.toLowerCase();if(ua.indexOf("windows")!=3D-1||ua= .indexOf("win32")!=3D-1){return"windows";}else = if(ua.indexOf("macintosh")!=3D-1){return"mac";}else{return = false;}}(),browser:function(){var = ua=3Dnavigator.userAgent.toLowerCase();if(ua.indexOf('opera')!=3D-1){retu= rn'opera';}else if(ua.indexOf('msie 7')!=3D-1){return'ie7';}else = if(ua.indexOf('msie')!=3D-1){return'ie';}else = if(ua.indexOf('safari')!=3D-1){return'safari';}else = if(ua.indexOf('gecko')!=3D-1){return'gecko';}else{return = false;}}(),isSecure:function(){if(window.location.href.toLowerCase().inde= xOf("https")=3D=3D=3D0){return true;}else{return = false;}}(),initDefaultConfig:function(){this.cfg.addProperty(DEFAULT_CONF= IG.VISIBLE.key,{handler:this.configVisible,value:DEFAULT_CONFIG.VISIBLE.v= alue,validator:DEFAULT_CONFIG.VISIBLE.validator});this.cfg.addProperty(DE= FAULT_CONFIG.EFFECT.key,{suppressEvent:DEFAULT_CONFIG.EFFECT.suppressEven= t,supercedes:DEFAULT_CONFIG.EFFECT.supercedes});this.cfg.addProperty(DEFA= ULT_CONFIG.MONITOR_RESIZE.key,{handler:this.configMonitorResize,value:DEF= AULT_CONFIG.MONITOR_RESIZE.value});},init:function(el,userConfig){var = elId,i,child;this.initEvents();this.beforeInitEvent.fire(Module);this.cfg= =3Dnew = Config(this);if(this.isSecure){this.imageRoot=3DModule.IMG_ROOT_SSL;}=0A= if(typeof = el=3D=3D"string"){elId=3Del;el=3Ddocument.getElementById(el);if(!el){el=3D= (createModuleTemplate()).cloneNode(false);el.id=3DelId;}}=0A= this.element=3Del;if(el.id){this.id=3Del.id;}=0A= child=3Dthis.element.firstChild;if(child){do{switch(child.className){case= Module.CSS_HEADER:this.header=3Dchild;break;case = Module.CSS_BODY:this.body=3Dchild;break;case = Module.CSS_FOOTER:this.footer=3Dchild;break;}}while((child=3Dchild.nextSi= bling));}=0A= this.initDefaultConfig();Dom.addClass(this.element,Module.CSS_MODULE);if(= userConfig){this.cfg.applyConfig(userConfig,true);}=0A= if(!Config.alreadySubscribed(this.renderEvent,this.cfg.fireQueue,this.cfg= )){this.renderEvent.subscribe(this.cfg.fireQueue,this.cfg,true);}=0A= this.initEvent.fire(Module);},initResizeMonitor:function(){var = oDoc,oIFrame,sHTML;function = fireTextResize(){Module.textResizeEvent.fire();}=0A= if(!YAHOO.env.ua.opera){oIFrame=3DDom.get("_yuiResizeMonitor");if(!oIFram= e){oIFrame=3Ddocument.createElement("iframe");if(this.isSecure&&Module.RE= SIZE_MONITOR_SECURE_URL&&YAHOO.env.ua.ie){oIFrame.src=3DModule.RESIZE_MON= ITOR_SECURE_URL;}=0A= if(YAHOO.env.ua.gecko){sHTML=3D""+"= ";oIFrame.src=3D"data:text/html;charset=3Dutf-8,"+=0A= encodeURIComponent(sHTML);}=0A= oIFrame.id=3D"_yuiResizeMonitor";oIFrame.style.position=3D"absolute";oIFr= ame.style.visibility=3D"hidden";document.body.appendChild(oIFrame);oIFram= e.style.width=3D"10em";oIFrame.style.height=3D"10em";oIFrame.style.top=3D= (-1*oIFrame.offsetHeight)+"px";oIFrame.style.left=3D(-1*oIFrame.offsetWid= th)+"px";oIFrame.style.borderWidth=3D"0";oIFrame.style.visibility=3D"visi= ble";if(YAHOO.env.ua.webkit){oDoc=3DoIFrame.contentWindow.document;oDoc.o= pen();oDoc.close();}}=0A= if(oIFrame&&oIFrame.contentWindow){Module.textResizeEvent.subscribe(this.= onDomResize,this,true);if(!Module.textResizeInitialized){if(!Event.on(oIF= rame.contentWindow,"resize",fireTextResize)){Event.on(oIFrame,"resize",fi= reTextResize);}=0A= Module.textResizeInitialized=3Dtrue;}=0A= this.resizeMonitor=3DoIFrame;}}},onDomResize:function(e,obj){var = nLeft=3D-1*this.resizeMonitor.offsetWidth,nTop=3D-1*this.resizeMonitor.of= fsetHeight;this.resizeMonitor.style.top=3DnTop+"px";this.resizeMonitor.st= yle.left=3DnLeft+"px";},setHeader:function(headerContent){var = oHeader=3Dthis.header||(this.header=3DcreateHeader());if(typeof = headerContent=3D=3D"string"){oHeader.innerHTML=3DheaderContent;}else{oHea= der.innerHTML=3D"";oHeader.appendChild(headerContent);}=0A= this.changeHeaderEvent.fire(headerContent);this.changeContentEvent.fire()= ;},appendToHeader:function(element){var = oHeader=3Dthis.header||(this.header=3DcreateHeader());oHeader.appendChild= (element);this.changeHeaderEvent.fire(element);this.changeContentEvent.fi= re();},setBody:function(bodyContent){var = oBody=3Dthis.body||(this.body=3DcreateBody());if(typeof = bodyContent=3D=3D"string"){oBody.innerHTML=3DbodyContent;}else{oBody.inne= rHTML=3D"";oBody.appendChild(bodyContent);}=0A= this.changeBodyEvent.fire(bodyContent);this.changeContentEvent.fire();},a= ppendToBody:function(element){var = oBody=3Dthis.body||(this.body=3DcreateBody());oBody.appendChild(element);= this.changeBodyEvent.fire(element);this.changeContentEvent.fire();},setFo= oter:function(footerContent){var = oFooter=3Dthis.footer||(this.footer=3DcreateFooter());if(typeof = footerContent=3D=3D"string"){oFooter.innerHTML=3DfooterContent;}else{oFoo= ter.innerHTML=3D"";oFooter.appendChild(footerContent);}=0A= this.changeFooterEvent.fire(footerContent);this.changeContentEvent.fire()= ;},appendToFooter:function(element){var = oFooter=3Dthis.footer||(this.footer=3DcreateFooter());oFooter.appendChild= (element);this.changeFooterEvent.fire(element);this.changeContentEvent.fi= re();},render:function(appendToNode,moduleElement){var = me=3Dthis,firstChild;function appendTo(element){if(typeof = element=3D=3D"string"){element=3Ddocument.getElementById(element);}=0A= if(element){element.appendChild(me.element);me.appendEvent.fire();}}=0A= this.beforeRenderEvent.fire();if(!moduleElement){moduleElement=3Dthis.ele= ment;}=0A= if(appendToNode){appendTo(appendToNode);}else{if(!Dom.inDocument(this.ele= ment)){return false;}}=0A= if(this.header&&!Dom.inDocument(this.header)){firstChild=3DmoduleElement.= firstChild;if(firstChild){moduleElement.insertBefore(this.header,firstChi= ld);}else{moduleElement.appendChild(this.header);}}=0A= if(this.body&&!Dom.inDocument(this.body)){if(this.footer&&Dom.isAncestor(= this.moduleElement,this.footer)){moduleElement.insertBefore(this.body,thi= s.footer);}else{moduleElement.appendChild(this.body);}}=0A= if(this.footer&&!Dom.inDocument(this.footer)){moduleElement.appendChild(t= his.footer);}=0A= this.renderEvent.fire();return true;},destroy:function(){var = parent,e;if(this.element){Event.purgeElement(this.element,true);parent=3D= this.element.parentNode;}=0A= if(parent){parent.removeChild(this.element);}=0A= this.element=3Dnull;this.header=3Dnull;this.body=3Dnull;this.footer=3Dnul= l;Module.textResizeEvent.unsubscribe(this.onDomResize,this);this.cfg.dest= roy();this.cfg=3Dnull;this.destroyEvent.fire();for(e in this){if(e = instanceof = CustomEvent){e.unsubscribeAll();}}},show:function(){this.cfg.setProperty(= "visible",true);},hide:function(){this.cfg.setProperty("visible",false);}= ,configVisible:function(type,args,obj){var = visible=3Dargs[0];if(visible){this.beforeShowEvent.fire();Dom.setStyle(th= is.element,"display","block");this.showEvent.fire();}else{this.beforeHide= Event.fire();Dom.setStyle(this.element,"display","none");this.hideEvent.f= ire();}},configMonitorResize:function(type,args,obj){var = monitor=3Dargs[0];if(monitor){this.initResizeMonitor();}else{Module.textR= esizeEvent.unsubscribe(this.onDomResize,this,true);this.resizeMonitor=3Dn= ull;}},toString:function(){return"Module = "+this.id;}};YAHOO.lang.augmentProto(Module,YAHOO.util.EventProvider);}()= );(function(){YAHOO.widget.Overlay=3Dfunction(el,userConfig){YAHOO.widget= .Overlay.superclass.constructor.call(this,el,userConfig);};var = Lang=3DYAHOO.lang,CustomEvent=3DYAHOO.util.CustomEvent,Module=3DYAHOO.wid= get.Module,Event=3DYAHOO.util.Event,Dom=3DYAHOO.util.Dom,Config=3DYAHOO.u= til.Config,Overlay=3DYAHOO.widget.Overlay,m_oIFrameTemplate,EVENT_TYPES=3D= {"BEFORE_MOVE":"beforeMove","MOVE":"move"},DEFAULT_CONFIG=3D{"X":{key:"x"= ,validator:Lang.isNumber,suppressEvent:true,supercedes:["iframe"]},"Y":{k= ey:"y",validator:Lang.isNumber,suppressEvent:true,supercedes:["iframe"]},= "XY":{key:"xy",suppressEvent:true,supercedes:["iframe"]},"CONTEXT":{key:"= context",suppressEvent:true,supercedes:["iframe"]},"FIXED_CENTER":{key:"f= ixedcenter",value:false,validator:Lang.isBoolean,supercedes:["iframe","vi= sible"]},"WIDTH":{key:"width",suppressEvent:true,supercedes:["context","f= ixedcenter","iframe"]},"HEIGHT":{key:"height",suppressEvent:true,superced= es:["context","fixedcenter","iframe"]},"ZINDEX":{key:"zindex",value:null}= ,"CONSTRAIN_TO_VIEWPORT":{key:"constraintoviewport",value:false,validator= :Lang.isBoolean,supercedes:["iframe","x","y","xy"]},"IFRAME":{key:"iframe= ",value:(YAHOO.env.ua.ie=3D=3D6?true:false),validator:Lang.isBoolean,supe= rcedes:["zindex"]}};Overlay.IFRAME_SRC=3D"javascript:false;";Overlay.IFRA= ME_OFFSET=3D3;Overlay.TOP_LEFT=3D"tl";Overlay.TOP_RIGHT=3D"tr";Overlay.BO= TTOM_LEFT=3D"bl";Overlay.BOTTOM_RIGHT=3D"br";Overlay.CSS_OVERLAY=3D"yui-o= verlay";Overlay.windowScrollEvent=3Dnew = CustomEvent("windowScroll");Overlay.windowResizeEvent=3Dnew = CustomEvent("windowResize");Overlay.windowScrollHandler=3Dfunction(e){if(= YAHOO.env.ua.ie){if(!window.scrollEnd){window.scrollEnd=3D-1;}=0A= clearTimeout(window.scrollEnd);window.scrollEnd=3DsetTimeout(function(){O= verlay.windowScrollEvent.fire();},1);}else{Overlay.windowScrollEvent.fire= ();}};Overlay.windowResizeHandler=3Dfunction(e){if(YAHOO.env.ua.ie){if(!w= indow.resizeEnd){window.resizeEnd=3D-1;}=0A= clearTimeout(window.resizeEnd);window.resizeEnd=3DsetTimeout(function(){O= verlay.windowResizeEvent.fire();},100);}else{Overlay.windowResizeEvent.fi= re();}};Overlay._initialized=3Dnull;if(Overlay._initialized=3D=3D=3Dnull)= {Event.on(window,"scroll",Overlay.windowScrollHandler);Event.on(window,"r= esize",Overlay.windowResizeHandler);Overlay._initialized=3Dtrue;}=0A= YAHOO.extend(Overlay,Module,{init:function(el,userConfig){Overlay.supercl= ass.init.call(this,el);this.beforeInitEvent.fire(Overlay);Dom.addClass(th= is.element,Overlay.CSS_OVERLAY);if(userConfig){this.cfg.applyConfig(userC= onfig,true);}=0A= if(this.platform=3D=3D"mac"&&YAHOO.env.ua.gecko){if(!Config.alreadySubscr= ibed(this.showEvent,this.showMacGeckoScrollbars,this)){this.showEvent.sub= scribe(this.showMacGeckoScrollbars,this,true);}=0A= if(!Config.alreadySubscribed(this.hideEvent,this.hideMacGeckoScrollbars,t= his)){this.hideEvent.subscribe(this.hideMacGeckoScrollbars,this,true);}}=0A= this.initEvent.fire(Overlay);},initEvents:function(){Overlay.superclass.i= nitEvents.call(this);var = SIGNATURE=3DCustomEvent.LIST;this.beforeMoveEvent=3Dthis.createEvent(EVEN= T_TYPES.BEFORE_MOVE);this.beforeMoveEvent.signature=3DSIGNATURE;this.move= Event=3Dthis.createEvent(EVENT_TYPES.MOVE);this.moveEvent.signature=3DSIG= NATURE;},initDefaultConfig:function(){Overlay.superclass.initDefaultConfi= g.call(this);this.cfg.addProperty(DEFAULT_CONFIG.X.key,{handler:this.conf= igX,validator:DEFAULT_CONFIG.X.validator,suppressEvent:DEFAULT_CONFIG.X.s= uppressEvent,supercedes:DEFAULT_CONFIG.X.supercedes});this.cfg.addPropert= y(DEFAULT_CONFIG.Y.key,{handler:this.configY,validator:DEFAULT_CONFIG.Y.v= alidator,suppressEvent:DEFAULT_CONFIG.Y.suppressEvent,supercedes:DEFAULT_= CONFIG.Y.supercedes});this.cfg.addProperty(DEFAULT_CONFIG.XY.key,{handler= :this.configXY,suppressEvent:DEFAULT_CONFIG.XY.suppressEvent,supercedes:D= EFAULT_CONFIG.XY.supercedes});this.cfg.addProperty(DEFAULT_CONFIG.CONTEXT= .key,{handler:this.configContext,suppressEvent:DEFAULT_CONFIG.CONTEXT.sup= pressEvent,supercedes:DEFAULT_CONFIG.CONTEXT.supercedes});this.cfg.addPro= perty(DEFAULT_CONFIG.FIXED_CENTER.key,{handler:this.configFixedCenter,val= ue:DEFAULT_CONFIG.FIXED_CENTER.value,validator:DEFAULT_CONFIG.FIXED_CENTE= R.validator,supercedes:DEFAULT_CONFIG.FIXED_CENTER.supercedes});this.cfg.= addProperty(DEFAULT_CONFIG.WIDTH.key,{handler:this.configWidth,suppressEv= ent:DEFAULT_CONFIG.WIDTH.suppressEvent,supercedes:DEFAULT_CONFIG.WIDTH.su= percedes});this.cfg.addProperty(DEFAULT_CONFIG.HEIGHT.key,{handler:this.c= onfigHeight,suppressEvent:DEFAULT_CONFIG.HEIGHT.suppressEvent,supercedes:= DEFAULT_CONFIG.HEIGHT.supercedes});this.cfg.addProperty(DEFAULT_CONFIG.ZI= NDEX.key,{handler:this.configzIndex,value:DEFAULT_CONFIG.ZINDEX.value});t= his.cfg.addProperty(DEFAULT_CONFIG.CONSTRAIN_TO_VIEWPORT.key,{handler:thi= s.configConstrainToViewport,value:DEFAULT_CONFIG.CONSTRAIN_TO_VIEWPORT.va= lue,validator:DEFAULT_CONFIG.CONSTRAIN_TO_VIEWPORT.validator,supercedes:D= EFAULT_CONFIG.CONSTRAIN_TO_VIEWPORT.supercedes});this.cfg.addProperty(DEF= AULT_CONFIG.IFRAME.key,{handler:this.configIframe,value:DEFAULT_CONFIG.IF= RAME.value,validator:DEFAULT_CONFIG.IFRAME.validator,supercedes:DEFAULT_C= ONFIG.IFRAME.supercedes});},moveTo:function(x,y){this.cfg.setProperty("xy= ",[x,y]);},hideMacGeckoScrollbars:function(){Dom.removeClass(this.element= ,"show-scrollbars");Dom.addClass(this.element,"hide-scrollbars");},showMa= cGeckoScrollbars:function(){Dom.removeClass(this.element,"hide-scrollbars= ");Dom.addClass(this.element,"show-scrollbars");},configVisible:function(= type,args,obj){var = visible=3Dargs[0],currentVis=3DDom.getStyle(this.element,"visibility"),ef= fect=3Dthis.cfg.getProperty("effect"),effectInstances=3D[],isMacGecko=3D(= this.platform=3D=3D"mac"&&YAHOO.env.ua.gecko),alreadySubscribed=3DConfig.= alreadySubscribed,eff,ei,e,i,j,k,h,nEffects,nEffectInstances;if(currentVi= s=3D=3D"inherit"){e=3Dthis.element.parentNode;while(e.nodeType!=3D9&&e.no= deType!=3D11){currentVis=3DDom.getStyle(e,"visibility");if(currentVis!=3D= "inherit"){break;}=0A= e=3De.parentNode;}=0A= if(currentVis=3D=3D"inherit"){currentVis=3D"visible";}}=0A= if(effect){if(effect instanceof = Array){nEffects=3Deffect.length;for(i=3D0;irightConstraint){x=3DrightConstraint;}=0A= if(ybottomConstraint){y=3DbottomConstraint;}=0A= this.cfg.setProperty("x",x,true);this.cfg.setProperty("y",y,true);this.cf= g.setProperty("xy",[x,y],true);},center:function(){var = scrollX=3DDom.getDocumentScrollLeft(),scrollY=3DDom.getDocumentScrollTop(= ),viewPortWidth=3DDom.getClientWidth(),viewPortHeight=3DDom.getClientHeig= ht(),elementWidth=3Dthis.element.offsetWidth,elementHeight=3Dthis.element= .offsetHeight,x=3D(viewPortWidth/2)-(elementWidth/2)+scrollX,y=3D(viewPor= tHeight/2)-(elementHeight/2)+scrollY;this.cfg.setProperty("xy",[parseInt(= x,10),parseInt(y,10)]);this.cfg.refireEvent("iframe");},syncPosition:func= tion(){var = pos=3DDom.getXY(this.element);this.cfg.setProperty("x",pos[0],true);this.= cfg.setProperty("y",pos[1],true);this.cfg.setProperty("xy",pos,true);},on= DomResize:function(e,obj){var = me=3Dthis;Overlay.superclass.onDomResize.call(this,e,obj);setTimeout(func= tion(){me.syncPosition();me.cfg.refireEvent("iframe");me.cfg.refireEvent(= "context");},0);},bringToTop:function(){var = aOverlays=3D[],oElement=3Dthis.element;function = compareZIndexDesc(p_oOverlay1,p_oOverlay2){var = sZIndex1=3DDom.getStyle(p_oOverlay1,"zIndex"),sZIndex2=3DDom.getStyle(p_o= Overlay2,"zIndex"),nZIndex1=3D(!sZIndex1||isNaN(sZIndex1))?0:parseInt(sZI= ndex1,10),nZIndex2=3D(!sZIndex2||isNaN(sZIndex2))?0:parseInt(sZIndex2,10)= ;if(nZIndex1>nZIndex2){return-1;}else if(nZIndex10){i=3DnOverlays-1;do{thi= s.overlays[i].blur();}=0A= while(i--);}};this._onOverlayBlur=3Dfunction(p_sType,p_aArgs){activeOverl= ay=3Dnull;};var = overlays=3Dthis.cfg.getProperty("overlays");if(!this.overlays){this.overl= ays=3D[];}=0A= if(overlays){this.register(overlays);this.overlays.sort(this.compareZInde= xDesc);}},_onOverlayElementFocus:function(p_oEvent){var = oTarget=3DEvent.getTarget(p_oEvent),oClose=3Dthis.close;if(oClose&&(oTarg= et=3D=3DoClose||Dom.isAncestor(oClose,oTarget))){this.blur();}=0A= else{this.focus();}},_onOverlayDestroy:function(p_sType,p_aArgs,p_oOverla= y){this.remove(p_oOverlay);},register:function(overlay){var = mgr=3Dthis,zIndex,regcount,i,nOverlays;if(overlay instanceof = Overlay){overlay.cfg.addProperty("manager",{value:this});overlay.focusEve= nt=3Doverlay.createEvent("focus");overlay.focusEvent.signature=3DCustomEv= ent.LIST;overlay.blurEvent=3Doverlay.createEvent("blur");overlay.blurEven= t.signature=3DCustomEvent.LIST;overlay.focus=3Dfunction(){mgr.focus(this)= ;};overlay.blur=3Dfunction(){if(mgr.getActive()=3D=3Dthis){Dom.removeClas= s(this.element,OverlayManager.CSS_FOCUSED);this.blurEvent.fire();}};overl= ay.blurEvent.subscribe(mgr._onOverlayBlur);overlay.hideEvent.subscribe(ov= erlay.blur);overlay.destroyEvent.subscribe(this._onOverlayDestroy,overlay= ,this);Event.on(overlay.element,this.cfg.getProperty("focusevent"),this._= onOverlayElementFocus,null,overlay);zIndex=3DDom.getStyle(overlay.element= ,"zIndex");if(!isNaN(zIndex)){overlay.cfg.setProperty("zIndex",parseInt(z= Index,10));}else{overlay.cfg.setProperty("zIndex",0);}=0A= this.overlays.push(overlay);this.bringToTop(overlay);return true;}else = if(overlay instanceof = Array){regcount=3D0;nOverlays=3Doverlay.length;for(i=3D0;i0){return true;}}else{return = false;}},bringToTop:function(p_oOverlay){var = oOverlay=3Dthis.find(p_oOverlay),nTopZIndex,oTopOverlay,aOverlays;if(oOve= rlay){aOverlays=3Dthis.overlays;aOverlays.sort(this.compareZIndexDesc);oT= opOverlay=3DaOverlays[0];if(oTopOverlay){nTopZIndex=3DDom.getStyle(oTopOv= erlay.element,"zIndex");if(!isNaN(nTopZIndex)&&oTopOverlay!=3DoOverlay){o= Overlay.cfg.setProperty("zIndex",(parseInt(nTopZIndex,10)+2));}=0A= aOverlays.sort(this.compareZIndexDesc);}}},find:function(overlay){var = aOverlays=3Dthis.overlays,nOverlays=3DaOverlays.length,i;if(nOverlays>0){= i=3DnOverlays-1;if(overlay instanceof = Overlay){do{if(aOverlays[i]=3D=3Doverlay){return aOverlays[i];}}=0A= while(i--);}else if(typeof = overlay=3D=3D"string"){do{if(aOverlays[i].id=3D=3Doverlay){return = aOverlays[i];}}=0A= while(i--);}=0A= return null;}},compareZIndexDesc:function(o1,o2){var = zIndex1=3Do1.cfg.getProperty("zIndex"),zIndex2=3Do2.cfg.getProperty("zInd= ex");if(zIndex1>zIndex2){return-1;}else if(zIndex10){= i=3DnOverlays-1;do{aOverlays[i].show();}=0A= while(i--);}},hideAll:function(){var = aOverlays=3Dthis.overlays,nOverlays=3DaOverlays.length,i;if(nOverlays>0){= i=3DnOverlays-1;do{aOverlays[i].hide();}=0A= while(i--);}},toString:function(){return"OverlayManager";}};}());(functio= n(){YAHOO.widget.ContainerEffect=3Dfunction(overlay,attrIn,attrOut,target= Element,animClass){if(!animClass){animClass=3DYAHOO.util.Anim;}=0A= this.overlay=3Doverlay;this.attrIn=3DattrIn;this.attrOut=3DattrOut;this.t= argetElement=3DtargetElement||overlay.element;this.animClass=3DanimClass;= };var = Dom=3DYAHOO.util.Dom,CustomEvent=3DYAHOO.util.CustomEvent,Easing=3DYAHOO.= util.Easing,ContainerEffect=3DYAHOO.widget.ContainerEffect;ContainerEffec= t.FADE=3Dfunction(overlay,dur){var fade=3Dnew = ContainerEffect(overlay,{attributes:{opacity:{from:0,to:1}},duration:dur,= method:Easing.easeIn},{attributes:{opacity:{to:0}},duration:dur,method:Ea= sing.easeOut},overlay.element);fade.handleStartAnimateIn=3Dfunction(type,= args,obj){Dom.addClass(obj.overlay.element,"hide-select");if(!obj.overlay= .underlay){obj.overlay.cfg.refireEvent("underlay");}=0A= if(obj.overlay.underlay){obj.initialUnderlayOpacity=3DDom.getStyle(obj.ov= erlay.underlay,"opacity");obj.overlay.underlay.style.filter=3Dnull;}=0A= Dom.setStyle(obj.overlay.element,"visibility","visible");Dom.setStyle(obj= .overlay.element,"opacity",0);};fade.handleCompleteAnimateIn=3Dfunction(t= ype,args,obj){Dom.removeClass(obj.overlay.element,"hide-select");if(obj.o= verlay.element.style.filter){obj.overlay.element.style.filter=3Dnull;}=0A= if(obj.overlay.underlay){Dom.setStyle(obj.overlay.underlay,"opacity",obj.= initialUnderlayOpacity);}=0A= obj.overlay.cfg.refireEvent("iframe");obj.animateInCompleteEvent.fire();}= ;fade.handleStartAnimateOut=3Dfunction(type,args,obj){Dom.addClass(obj.ov= erlay.element,"hide-select");if(obj.overlay.underlay){obj.overlay.underla= y.style.filter=3Dnull;}};fade.handleCompleteAnimateOut=3Dfunction(type,ar= gs,obj){Dom.removeClass(obj.overlay.element,"hide-select");if(obj.overlay= .element.style.filter){obj.overlay.element.style.filter=3Dnull;}=0A= Dom.setStyle(obj.overlay.element,"visibility","hidden");Dom.setStyle(obj.= overlay.element,"opacity",1);obj.overlay.cfg.refireEvent("iframe");obj.an= imateOutCompleteEvent.fire();};fade.init();return = fade;};ContainerEffect.SLIDE=3Dfunction(overlay,dur){var = x=3Doverlay.cfg.getProperty("x")||Dom.getX(overlay.element),y=3Doverlay.c= fg.getProperty("y")||Dom.getY(overlay.element),clientWidth=3DDom.getClien= tWidth(),offsetWidth=3Doverlay.element.offsetWidth,slide=3Dnew = ContainerEffect(overlay,{attributes:{points:{to:[x,y]}},duration:dur,meth= od:Easing.easeIn},{attributes:{points:{to:[(clientWidth+25),y]}},duration= :dur,method:Easing.easeOut},overlay.element,YAHOO.util.Motion);slide.hand= leStartAnimateIn=3Dfunction(type,args,obj){obj.overlay.element.style.left= =3D((-25)-offsetWidth)+"px";obj.overlay.element.style.top=3Dy+"px";};slid= e.handleTweenAnimateIn=3Dfunction(type,args,obj){var = pos=3DDom.getXY(obj.overlay.element),currentX=3Dpos[0],currentY=3Dpos[1];= if(Dom.getStyle(obj.overlay.element,"visibility")=3D=3D"hidden"&¤tX= Usage: var myAnim =3D new YAHOO.util.Anim(el, { width: { from: 10, = to: 100 } }, 1, YAHOO.util.Easing.easeOut);

=0A= * @class Anim=0A= * @namespace YAHOO.util=0A= * @requires YAHOO.util.AnimMgr=0A= * @requires YAHOO.util.Easing=0A= * @requires YAHOO.util.Dom=0A= * @requires YAHOO.util.Event=0A= * @requires YAHOO.util.CustomEvent=0A= * @constructor=0A= * @param {String | HTMLElement} el Reference to the element that will = be animated=0A= * @param {Object} attributes The attribute(s) to be animated. =0A= * Each attribute is an object with at minimum a "to" or "by" member = defined. =0A= * Additional optional members are "from" (defaults to current value), = "units" (defaults to "px"). =0A= * All attribute names use camelCase.=0A= * @param {Number} duration (optional, defaults to 1 second) Length of = animation (frames or seconds), defaults to time-based=0A= * @param {Function} method (optional, defaults to = YAHOO.util.Easing.easeNone) Computes the values that are applied to the = attributes per frame (generally a YAHOO.util.Easing method)=0A= */=0A= =0A= YAHOO.util.Anim =3D function(el, attributes, duration, method) {=0A= if (!el) {=0A= }=0A= this.init(el, attributes, duration, method); =0A= };=0A= =0A= YAHOO.util.Anim.prototype =3D {=0A= /**=0A= * Provides a readable name for the Anim instance.=0A= * @method toString=0A= * @return {String}=0A= */=0A= toString: function() {=0A= var el =3D this.getEl();=0A= var id =3D el.id || el.tagName || el;=0A= return ("Anim " + id);=0A= },=0A= =0A= patterns: { // cached for performance=0A= noNegatives: /width|height|opacity|padding/i, // keep at = zero or above=0A= offsetAttribute: /^((width|height)|(top|left))$/, // use = offsetValue as default=0A= defaultUnit: /width|height|top$|bottom$|left$|right$/i, = // use 'px' by default=0A= offsetUnit: /\d+(em|%|en|ex|pt|in|cm|mm|pc)$/i // IE may = return these, so convert these to offset=0A= },=0A= =0A= /**=0A= * Returns the value computed by the animation's "method".=0A= * @method doMethod=0A= * @param {String} attr The name of the attribute.=0A= * @param {Number} start The value this attribute should start from = for this animation.=0A= * @param {Number} end The value this attribute should end at for = this animation.=0A= * @return {Number} The Value to be applied to the attribute.=0A= */=0A= doMethod: function(attr, start, end) {=0A= return this.method(this.currentFrame, start, end - start, = this.totalFrames);=0A= },=0A= =0A= /**=0A= * Applies a value to an attribute.=0A= * @method setAttribute=0A= * @param {String} attr The name of the attribute.=0A= * @param {Number} val The value to be applied to the attribute.=0A= * @param {String} unit The unit ('px', '%', etc.) of the value.=0A= */=0A= setAttribute: function(attr, val, unit) {=0A= if ( this.patterns.noNegatives.test(attr) ) {=0A= val =3D (val > 0) ? val : 0;=0A= }=0A= =0A= YAHOO.util.Dom.setStyle(this.getEl(), attr, val + unit);=0A= }, =0A= =0A= /**=0A= * Returns current value of the attribute.=0A= * @method getAttribute=0A= * @param {String} attr The name of the attribute.=0A= * @return {Number} val The current value of the attribute.=0A= */=0A= getAttribute: function(attr) {=0A= var el =3D this.getEl();=0A= var val =3D YAHOO.util.Dom.getStyle(el, attr);=0A= =0A= if (val !=3D=3D 'auto' && !this.patterns.offsetUnit.test(val)) {=0A= return parseFloat(val);=0A= }=0A= =0A= var a =3D this.patterns.offsetAttribute.exec(attr) || [];=0A= var pos =3D !!( a[3] ); // top or left=0A= var box =3D !!( a[2] ); // width or height=0A= =0A= // use offsets for width/height and abs pos top/left=0A= if ( box || (YAHOO.util.Dom.getStyle(el, 'position') =3D=3D = 'absolute' && pos) ) {=0A= val =3D el['offset' + a[0].charAt(0).toUpperCase() + = a[0].substr(1)];=0A= } else { // default to zero for other 'auto'=0A= val =3D 0;=0A= }=0A= =0A= return val;=0A= },=0A= =0A= /**=0A= * Returns the unit to use when none is supplied.=0A= * @method getDefaultUnit=0A= * @param {attr} attr The name of the attribute.=0A= * @return {String} The default unit to be used.=0A= */=0A= getDefaultUnit: function(attr) {=0A= if ( this.patterns.defaultUnit.test(attr) ) {=0A= return 'px';=0A= }=0A= =0A= return '';=0A= },=0A= =0A= /**=0A= * Sets the actual values to be used during the animation. Should = only be needed for subclass use.=0A= * @method setRuntimeAttribute=0A= * @param {Object} attr The attribute object=0A= * @private =0A= */=0A= setRuntimeAttribute: function(attr) {=0A= var start;=0A= var end;=0A= var attributes =3D this.attributes;=0A= =0A= this.runtimeAttributes[attr] =3D {};=0A= =0A= var isset =3D function(prop) {=0A= return (typeof prop !=3D=3D 'undefined');=0A= };=0A= =0A= if ( !isset(attributes[attr]['to']) && = !isset(attributes[attr]['by']) ) {=0A= return false; // note return; nothing to animate to=0A= }=0A= =0A= start =3D ( isset(attributes[attr]['from']) ) ? = attributes[attr]['from'] : this.getAttribute(attr);=0A= =0A= // To beats by, per SMIL 2.1 spec=0A= if ( isset(attributes[attr]['to']) ) {=0A= end =3D attributes[attr]['to'];=0A= } else if ( isset(attributes[attr]['by']) ) {=0A= if (start.constructor =3D=3D Array) {=0A= end =3D [];=0A= for (var i =3D 0, len =3D start.length; i < len; ++i) {=0A= end[i] =3D start[i] + attributes[attr]['by'][i] * 1; = // times 1 to cast "by" =0A= }=0A= } else {=0A= end =3D start + attributes[attr]['by'] * 1;=0A= }=0A= }=0A= =0A= this.runtimeAttributes[attr].start =3D start;=0A= this.runtimeAttributes[attr].end =3D end;=0A= =0A= // set units if needed=0A= this.runtimeAttributes[attr].unit =3D ( = isset(attributes[attr].unit) ) ?=0A= attributes[attr]['unit'] : this.getDefaultUnit(attr);=0A= return true;=0A= },=0A= =0A= /**=0A= * Constructor for Anim instance.=0A= * @method init=0A= * @param {String | HTMLElement} el Reference to the element that = will be animated=0A= * @param {Object} attributes The attribute(s) to be animated. =0A= * Each attribute is an object with at minimum a "to" or "by" member = defined. =0A= * Additional optional members are "from" (defaults to current = value), "units" (defaults to "px"). =0A= * All attribute names use camelCase.=0A= * @param {Number} duration (optional, defaults to 1 second) Length = of animation (frames or seconds), defaults to time-based=0A= * @param {Function} method (optional, defaults to = YAHOO.util.Easing.easeNone) Computes the values that are applied to the = attributes per frame (generally a YAHOO.util.Easing method)=0A= */ =0A= init: function(el, attributes, duration, method) {=0A= /**=0A= * Whether or not the animation is running.=0A= * @property isAnimated=0A= * @private=0A= * @type Boolean=0A= */=0A= var isAnimated =3D false;=0A= =0A= /**=0A= * A Date object that is created when the animation begins.=0A= * @property startTime=0A= * @private=0A= * @type Date=0A= */=0A= var startTime =3D null;=0A= =0A= /**=0A= * The number of frames this animation was able to execute.=0A= * @property actualFrames=0A= * @private=0A= * @type Int=0A= */=0A= var actualFrames =3D 0; =0A= =0A= /**=0A= * The element to be animated.=0A= * @property el=0A= * @private=0A= * @type HTMLElement=0A= */=0A= el =3D YAHOO.util.Dom.get(el);=0A= =0A= /**=0A= * The collection of attributes to be animated. =0A= * Each attribute must have at least a "to" or "by" defined in = order to animate. =0A= * If "to" is supplied, the animation will end with the = attribute at that value. =0A= * If "by" is supplied, the animation will end at that value = plus its starting value. =0A= * If both are supplied, "to" is used, and "by" is ignored. =0A= * Optional additional member include "from" (the value the = attribute should start animating from, defaults to current value), and = "unit" (the units to apply to the values).=0A= * @property attributes=0A= * @type Object=0A= */=0A= this.attributes =3D attributes || {};=0A= =0A= /**=0A= * The length of the animation. Defaults to "1" (second).=0A= * @property duration=0A= * @type Number=0A= */=0A= this.duration =3D !YAHOO.lang.isUndefined(duration) ? duration : = 1;=0A= =0A= /**=0A= * The method that will provide values to the attribute(s) = during the animation. =0A= * Defaults to "YAHOO.util.Easing.easeNone".=0A= * @property method=0A= * @type Function=0A= */=0A= this.method =3D method || YAHOO.util.Easing.easeNone;=0A= =0A= /**=0A= * Whether or not the duration should be treated as seconds.=0A= * Defaults to true.=0A= * @property useSeconds=0A= * @type Boolean=0A= */=0A= this.useSeconds =3D true; // default to seconds=0A= =0A= /**=0A= * The location of the current animation on the timeline.=0A= * In time-based animations, this is used by AnimMgr to ensure = the animation finishes on time.=0A= * @property currentFrame=0A= * @type Int=0A= */=0A= this.currentFrame =3D 0;=0A= =0A= /**=0A= * The total number of frames to be executed.=0A= * In time-based animations, this is used by AnimMgr to ensure = the animation finishes on time.=0A= * @property totalFrames=0A= * @type Int=0A= */=0A= this.totalFrames =3D YAHOO.util.AnimMgr.fps;=0A= =0A= /**=0A= * Changes the animated element=0A= * @method setEl=0A= */=0A= this.setEl =3D function(element) {=0A= el =3D YAHOO.util.Dom.get(element);=0A= };=0A= =0A= /**=0A= * Returns a reference to the animated element.=0A= * @method getEl=0A= * @return {HTMLElement}=0A= */=0A= this.getEl =3D function() { return el; };=0A= =0A= /**=0A= * Checks whether the element is currently animated.=0A= * @method isAnimated=0A= * @return {Boolean} current value of isAnimated. =0A= */=0A= this.isAnimated =3D function() {=0A= return isAnimated;=0A= };=0A= =0A= /**=0A= * Returns the animation start time.=0A= * @method getStartTime=0A= * @return {Date} current value of startTime. =0A= */=0A= this.getStartTime =3D function() {=0A= return startTime;=0A= }; =0A= =0A= this.runtimeAttributes =3D {};=0A= =0A= =0A= =0A= /**=0A= * Starts the animation by registering it with the animation = manager. =0A= * @method animate =0A= */=0A= this.animate =3D function() {=0A= if ( this.isAnimated() ) {=0A= return false;=0A= }=0A= =0A= this.currentFrame =3D 0;=0A= =0A= this.totalFrames =3D ( this.useSeconds ) ? = Math.ceil(YAHOO.util.AnimMgr.fps * this.duration) : this.duration;=0A= =0A= if (this.duration =3D=3D=3D 0 && this.useSeconds) {=0A= this.totalFrames =3D 1; // jump to last frame if no = duration=0A= }=0A= YAHOO.util.AnimMgr.registerElement(this);=0A= return true;=0A= };=0A= =0A= /**=0A= * Stops the animation. Normally called by AnimMgr when = animation completes.=0A= * @method stop=0A= * @param {Boolean} finish (optional) If true, animation will = jump to final frame.=0A= */ =0A= this.stop =3D function(finish) {=0A= if (finish) {=0A= this.currentFrame =3D this.totalFrames;=0A= this._onTween.fire();=0A= }=0A= YAHOO.util.AnimMgr.stop(this);=0A= };=0A= =0A= var onStart =3D function() { =0A= this.onStart.fire();=0A= =0A= this.runtimeAttributes =3D {};=0A= for (var attr in this.attributes) {=0A= this.setRuntimeAttribute(attr);=0A= }=0A= =0A= isAnimated =3D true;=0A= actualFrames =3D 0;=0A= startTime =3D new Date(); =0A= };=0A= =0A= /**=0A= * Feeds the starting and ending values for each animated = attribute to doMethod once per frame, then applies the resulting value = to the attribute(s).=0A= * @private=0A= */=0A= =0A= var onTween =3D function() {=0A= var data =3D {=0A= duration: new Date() - this.getStartTime(),=0A= currentFrame: this.currentFrame=0A= };=0A= =0A= data.toString =3D function() {=0A= return (=0A= 'duration: ' + data.duration +=0A= ', currentFrame: ' + data.currentFrame=0A= );=0A= };=0A= =0A= this.onTween.fire(data);=0A= =0A= var runtimeAttributes =3D this.runtimeAttributes;=0A= =0A= for (var attr in runtimeAttributes) {=0A= this.setAttribute(attr, this.doMethod(attr, = runtimeAttributes[attr].start, runtimeAttributes[attr].end), = runtimeAttributes[attr].unit); =0A= }=0A= =0A= actualFrames +=3D 1;=0A= };=0A= =0A= var onComplete =3D function() {=0A= var actual_duration =3D (new Date() - startTime) / 1000 ;=0A= =0A= var data =3D {=0A= duration: actual_duration,=0A= frames: actualFrames,=0A= fps: actualFrames / actual_duration=0A= };=0A= =0A= data.toString =3D function() {=0A= return (=0A= 'duration: ' + data.duration +=0A= ', frames: ' + data.frames +=0A= ', fps: ' + data.fps=0A= );=0A= };=0A= =0A= isAnimated =3D false;=0A= actualFrames =3D 0;=0A= this.onComplete.fire(data);=0A= };=0A= =0A= /**=0A= * Custom event that fires after onStart, useful in subclassing=0A= * @private=0A= */ =0A= this._onStart =3D new YAHOO.util.CustomEvent('_start', this, = true);=0A= =0A= /**=0A= * Custom event that fires when animation begins=0A= * Listen via subscribe method (e.g. = myAnim.onStart.subscribe(someFunction)=0A= * @event onStart=0A= */ =0A= this.onStart =3D new YAHOO.util.CustomEvent('start', this);=0A= =0A= /**=0A= * Custom event that fires between each frame=0A= * Listen via subscribe method (e.g. = myAnim.onTween.subscribe(someFunction)=0A= * @event onTween=0A= */=0A= this.onTween =3D new YAHOO.util.CustomEvent('tween', this);=0A= =0A= /**=0A= * Custom event that fires after onTween=0A= * @private=0A= */=0A= this._onTween =3D new YAHOO.util.CustomEvent('_tween', this, = true);=0A= =0A= /**=0A= * Custom event that fires when animation ends=0A= * Listen via subscribe method (e.g. = myAnim.onComplete.subscribe(someFunction)=0A= * @event onComplete=0A= */=0A= this.onComplete =3D new YAHOO.util.CustomEvent('complete', this);=0A= /**=0A= * Custom event that fires after onComplete=0A= * @private=0A= */=0A= this._onComplete =3D new YAHOO.util.CustomEvent('_complete', = this, true);=0A= =0A= this._onStart.subscribe(onStart);=0A= this._onTween.subscribe(onTween);=0A= this._onComplete.subscribe(onComplete);=0A= }=0A= };=0A= =0A= /**=0A= * Handles animation queueing and threading.=0A= * Used by Anim and subclasses.=0A= * @class AnimMgr=0A= * @namespace YAHOO.util=0A= */=0A= YAHOO.util.AnimMgr =3D new function() {=0A= /** =0A= * Reference to the animation Interval.=0A= * @property thread=0A= * @private=0A= * @type Int=0A= */=0A= var thread =3D null;=0A= =0A= /** =0A= * The current queue of registered animation objects.=0A= * @property queue=0A= * @private=0A= * @type Array=0A= */ =0A= var queue =3D [];=0A= =0A= /** =0A= * The number of active animations.=0A= * @property tweenCount=0A= * @private=0A= * @type Int=0A= */ =0A= var tweenCount =3D 0;=0A= =0A= /** =0A= * Base frame rate (frames per second). =0A= * Arbitrarily high for better x-browser calibration (slower = browsers drop more frames).=0A= * @property fps=0A= * @type Int=0A= * =0A= */=0A= this.fps =3D 1000;=0A= =0A= /** =0A= * Interval delay in milliseconds, defaults to fastest possible.=0A= * @property delay=0A= * @type Int=0A= * =0A= */=0A= this.delay =3D 1;=0A= =0A= /**=0A= * Adds an animation instance to the animation queue.=0A= * All animation instances must be registered in order to animate.=0A= * @method registerElement=0A= * @param {object} tween The Anim instance to be be registered=0A= */=0A= this.registerElement =3D function(tween) {=0A= queue[queue.length] =3D tween;=0A= tweenCount +=3D 1;=0A= tween._onStart.fire();=0A= this.start();=0A= };=0A= =0A= /**=0A= * removes an animation instance from the animation queue.=0A= * All animation instances must be registered in order to animate.=0A= * @method unRegister=0A= * @param {object} tween The Anim instance to be be registered=0A= * @param {Int} index The index of the Anim instance=0A= * @private=0A= */=0A= this.unRegister =3D function(tween, index) {=0A= tween._onComplete.fire();=0A= index =3D index || getIndex(tween);=0A= if (index =3D=3D -1) {=0A= return false;=0A= }=0A= =0A= queue.splice(index, 1);=0A= =0A= tweenCount -=3D 1;=0A= if (tweenCount <=3D 0) {=0A= this.stop();=0A= }=0A= =0A= return true;=0A= };=0A= =0A= /**=0A= * Starts the animation thread.=0A= * Only one thread can run at a time.=0A= * @method start=0A= */ =0A= this.start =3D function() {=0A= if (thread =3D=3D=3D null) {=0A= thread =3D setInterval(this.run, this.delay);=0A= }=0A= };=0A= =0A= /**=0A= * Stops the animation thread or a specific animation instance.=0A= * @method stop=0A= * @param {object} tween A specific Anim instance to stop (optional)=0A= * If no instance given, Manager stops thread and all animations.=0A= */ =0A= this.stop =3D function(tween) {=0A= if (!tween) {=0A= clearInterval(thread);=0A= =0A= for (var i =3D 0, len =3D queue.length; i < len; ++i) {=0A= if ( queue[0].isAnimated() ) {=0A= this.unRegister(queue[0], 0); =0A= }=0A= }=0A= =0A= queue =3D [];=0A= thread =3D null;=0A= tweenCount =3D 0;=0A= }=0A= else {=0A= this.unRegister(tween);=0A= }=0A= };=0A= =0A= /**=0A= * Called per Interval to handle each animation frame.=0A= * @method run=0A= */ =0A= this.run =3D function() {=0A= for (var i =3D 0, len =3D queue.length; i < len; ++i) {=0A= var tween =3D queue[i];=0A= if ( !tween || !tween.isAnimated() ) { continue; }=0A= =0A= if (tween.currentFrame < tween.totalFrames || = tween.totalFrames =3D=3D=3D null)=0A= {=0A= tween.currentFrame +=3D 1;=0A= =0A= if (tween.useSeconds) {=0A= correctFrame(tween);=0A= }=0A= tween._onTween.fire(); =0A= }=0A= else { YAHOO.util.AnimMgr.stop(tween, i); }=0A= }=0A= };=0A= =0A= var getIndex =3D function(anim) {=0A= for (var i =3D 0, len =3D queue.length; i < len; ++i) {=0A= if (queue[i] =3D=3D anim) {=0A= return i; // note return;=0A= }=0A= }=0A= return -1;=0A= };=0A= =0A= /**=0A= * On the fly frame correction to keep animation on time.=0A= * @method correctFrame=0A= * @private=0A= * @param {Object} tween The Anim instance being corrected.=0A= */=0A= var correctFrame =3D function(tween) {=0A= var frames =3D tween.totalFrames;=0A= var frame =3D tween.currentFrame;=0A= var expected =3D (tween.currentFrame * tween.duration * 1000 / = tween.totalFrames);=0A= var elapsed =3D (new Date() - tween.getStartTime());=0A= var tweak =3D 0;=0A= =0A= if (elapsed < tween.duration * 1000) { // check if falling behind=0A= tweak =3D Math.round((elapsed / expected - 1) * = tween.currentFrame);=0A= } else { // went over duration, so jump to end=0A= tweak =3D frames - (frame + 1); =0A= }=0A= if (tweak > 0 && isFinite(tweak)) { // adjust if needed=0A= if (tween.currentFrame + tweak >=3D frames) {// dont go past = last frame=0A= tweak =3D frames - (frame + 1);=0A= }=0A= =0A= tween.currentFrame +=3D tweak; =0A= }=0A= };=0A= };=0A= /**=0A= * Used to calculate Bezier splines for any number of control points.=0A= * @class Bezier=0A= * @namespace YAHOO.util=0A= *=0A= */=0A= YAHOO.util.Bezier =3D new function() {=0A= /**=0A= * Get the current position of the animated element based on t.=0A= * Each point is an array of "x" and "y" values (0 =3D x, 1 =3D y)=0A= * At least 2 points are required (start and end).=0A= * First point is start. Last point is end.=0A= * Additional control points are optional. =0A= * @method getPosition=0A= * @param {Array} points An array containing Bezier points=0A= * @param {Number} t A number between 0 and 1 which is the basis for = determining current position=0A= * @return {Array} An array containing int x and y member data=0A= */=0A= this.getPosition =3D function(points, t) { =0A= var n =3D points.length;=0A= var tmp =3D [];=0A= =0A= for (var i =3D 0; i < n; ++i){=0A= tmp[i] =3D [points[i][0], points[i][1]]; // save input=0A= }=0A= =0A= for (var j =3D 1; j < n; ++j) {=0A= for (i =3D 0; i < n - j; ++i) {=0A= tmp[i][0] =3D (1 - t) * tmp[i][0] + t * tmp[parseInt(i + = 1, 10)][0];=0A= tmp[i][1] =3D (1 - t) * tmp[i][1] + t * tmp[parseInt(i + = 1, 10)][1]; =0A= }=0A= }=0A= =0A= return [ tmp[0][0], tmp[0][1] ]; =0A= =0A= };=0A= };=0A= (function() {=0A= /**=0A= * Anim subclass for color transitions.=0A= *

Usage: var myAnim =3D new Y.ColorAnim(el, { backgroundColor: = { from: '#FF0000', to: '#FFFFFF' } }, 1, Y.Easing.easeOut); Color = values can be specified with either 112233, #112233, =0A= * [255,255,255], or rgb(255,255,255)

=0A= * @class ColorAnim=0A= * @namespace YAHOO.util=0A= * @requires YAHOO.util.Anim=0A= * @requires YAHOO.util.AnimMgr=0A= * @requires YAHOO.util.Easing=0A= * @requires YAHOO.util.Bezier=0A= * @requires YAHOO.util.Dom=0A= * @requires YAHOO.util.Event=0A= * @constructor=0A= * @extends YAHOO.util.Anim=0A= * @param {HTMLElement | String} el Reference to the element that will = be animated=0A= * @param {Object} attributes The attribute(s) to be animated.=0A= * Each attribute is an object with at minimum a "to" or "by" member = defined.=0A= * Additional optional members are "from" (defaults to current value), = "units" (defaults to "px").=0A= * All attribute names use camelCase.=0A= * @param {Number} duration (optional, defaults to 1 second) Length of = animation (frames or seconds), defaults to time-based=0A= * @param {Function} method (optional, defaults to = YAHOO.util.Easing.easeNone) Computes the values that are applied to the = attributes per frame (generally a YAHOO.util.Easing method)=0A= */=0A= YAHOO.util.ColorAnim =3D function(el, attributes, duration, method) = {=0A= YAHOO.util.ColorAnim.superclass.constructor.call(this, el, = attributes, duration, method);=0A= };=0A= =0A= YAHOO.extend(YAHOO.util.ColorAnim, YAHOO.util.Anim);=0A= =0A= // shorthand=0A= var Y =3D YAHOO.util;=0A= var superclass =3D Y.ColorAnim.superclass;=0A= var proto =3D Y.ColorAnim.prototype;=0A= =0A= proto.toString =3D function() {=0A= var el =3D this.getEl();=0A= var id =3D el.id || el.tagName;=0A= return ("ColorAnim " + id);=0A= };=0A= =0A= proto.patterns.color =3D /color$/i;=0A= proto.patterns.rgb =3D = /^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i;=0A= proto.patterns.hex =3D = /^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i;=0A= proto.patterns.hex3 =3D = /^#?([0-9A-F]{1})([0-9A-F]{1})([0-9A-F]{1})$/i;=0A= proto.patterns.transparent =3D /^transparent|rgba\(0, 0, 0, 0\)$/; = // need rgba for safari=0A= =0A= /**=0A= * Attempts to parse the given string and return a 3-tuple.=0A= * @method parseColor=0A= * @param {String} s The string to parse.=0A= * @return {Array} The 3-tuple of rgb values.=0A= */=0A= proto.parseColor =3D function(s) {=0A= if (s.length =3D=3D 3) { return s; }=0A= =0A= var c =3D this.patterns.hex.exec(s);=0A= if (c && c.length =3D=3D 4) {=0A= return [ parseInt(c[1], 16), parseInt(c[2], 16), = parseInt(c[3], 16) ];=0A= }=0A= =0A= c =3D this.patterns.rgb.exec(s);=0A= if (c && c.length =3D=3D 4) {=0A= return [ parseInt(c[1], 10), parseInt(c[2], 10), = parseInt(c[3], 10) ];=0A= }=0A= =0A= c =3D this.patterns.hex3.exec(s);=0A= if (c && c.length =3D=3D 4) {=0A= return [ parseInt(c[1] + c[1], 16), parseInt(c[2] + c[2], = 16), parseInt(c[3] + c[3], 16) ];=0A= }=0A= =0A= return null;=0A= };=0A= =0A= proto.getAttribute =3D function(attr) {=0A= var el =3D this.getEl();=0A= if ( this.patterns.color.test(attr) ) {=0A= var val =3D YAHOO.util.Dom.getStyle(el, attr);=0A= =0A= if (this.patterns.transparent.test(val)) { // bgcolor default=0A= var parent =3D el.parentNode; // try and get from an = ancestor=0A= val =3D Y.Dom.getStyle(parent, attr);=0A= =0A= while (parent && this.patterns.transparent.test(val)) {=0A= parent =3D parent.parentNode;=0A= val =3D Y.Dom.getStyle(parent, attr);=0A= if (parent.tagName.toUpperCase() =3D=3D 'HTML') {=0A= val =3D '#fff';=0A= }=0A= }=0A= }=0A= } else {=0A= val =3D superclass.getAttribute.call(this, attr);=0A= }=0A= =0A= return val;=0A= };=0A= =0A= proto.doMethod =3D function(attr, start, end) {=0A= var val;=0A= =0A= if ( this.patterns.color.test(attr) ) {=0A= val =3D [];=0A= for (var i =3D 0, len =3D start.length; i < len; ++i) {=0A= val[i] =3D superclass.doMethod.call(this, attr, = start[i], end[i]);=0A= }=0A= =0A= val =3D = 'rgb('+Math.floor(val[0])+','+Math.floor(val[1])+','+Math.floor(val[2])+'= )';=0A= }=0A= else {=0A= val =3D superclass.doMethod.call(this, attr, start, end);=0A= }=0A= =0A= return val;=0A= };=0A= =0A= proto.setRuntimeAttribute =3D function(attr) {=0A= superclass.setRuntimeAttribute.call(this, attr);=0A= =0A= if ( this.patterns.color.test(attr) ) {=0A= var attributes =3D this.attributes;=0A= var start =3D = this.parseColor(this.runtimeAttributes[attr].start);=0A= var end =3D = this.parseColor(this.runtimeAttributes[attr].end);=0A= // fix colors if going "by"=0A= if ( typeof attributes[attr]['to'] =3D=3D=3D 'undefined' && = typeof attributes[attr]['by'] !=3D=3D 'undefined' ) {=0A= end =3D this.parseColor(attributes[attr].by);=0A= =0A= for (var i =3D 0, len =3D start.length; i < len; ++i) {=0A= end[i] =3D start[i] + end[i];=0A= }=0A= }=0A= =0A= this.runtimeAttributes[attr].start =3D start;=0A= this.runtimeAttributes[attr].end =3D end;=0A= }=0A= };=0A= })();=0A= /*=0A= TERMS OF USE - EASING EQUATIONS=0A= Open source under the BSD License.=0A= Copyright 2001 Robert Penner All rights reserved.=0A= =0A= Redistribution and use in source and binary forms, with or without = modification, are permitted provided that the following conditions are = met:=0A= =0A= * Redistributions of source code must retain the above copyright = notice, this list of conditions and the following disclaimer.=0A= * Redistributions in binary form must reproduce the above copyright = notice, this list of conditions and the following disclaimer in the = documentation and/or other materials provided with the distribution.=0A= * Neither the name of the author nor the names of contributors may be = used to endorse or promote products derived from this software without = specific prior written permission.=0A= =0A= THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS = IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED = TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A = PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER = OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, = EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, = PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR = PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF = LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING = NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS = SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.=0A= */=0A= =0A= /**=0A= * Singleton that determines how an animation proceeds from start to end.=0A= * @class Easing=0A= * @namespace YAHOO.util=0A= */=0A= =0A= YAHOO.util.Easing =3D {=0A= =0A= /**=0A= * Uniform speed between points.=0A= * @method easeNone=0A= * @param {Number} t Time value used to compute current value=0A= * @param {Number} b Starting value=0A= * @param {Number} c Delta between start and end values=0A= * @param {Number} d Total length of animation=0A= * @return {Number} The computed value for the current animation = frame=0A= */=0A= easeNone: function (t, b, c, d) {=0A= return c*t/d + b;=0A= },=0A= =0A= /**=0A= * Begins slowly and accelerates towards end. (quadratic)=0A= * @method easeIn=0A= * @param {Number} t Time value used to compute current value=0A= * @param {Number} b Starting value=0A= * @param {Number} c Delta between start and end values=0A= * @param {Number} d Total length of animation=0A= * @return {Number} The computed value for the current animation = frame=0A= */=0A= easeIn: function (t, b, c, d) {=0A= return c*(t/=3Dd)*t + b;=0A= },=0A= =0A= /**=0A= * Begins quickly and decelerates towards end. (quadratic)=0A= * @method easeOut=0A= * @param {Number} t Time value used to compute current value=0A= * @param {Number} b Starting value=0A= * @param {Number} c Delta between start and end values=0A= * @param {Number} d Total length of animation=0A= * @return {Number} The computed value for the current animation = frame=0A= */=0A= easeOut: function (t, b, c, d) {=0A= return -c *(t/=3Dd)*(t-2) + b;=0A= },=0A= =0A= /**=0A= * Begins slowly and decelerates towards end. (quadratic)=0A= * @method easeBoth=0A= * @param {Number} t Time value used to compute current value=0A= * @param {Number} b Starting value=0A= * @param {Number} c Delta between start and end values=0A= * @param {Number} d Total length of animation=0A= * @return {Number} The computed value for the current animation = frame=0A= */=0A= easeBoth: function (t, b, c, d) {=0A= if ((t/=3Dd/2) < 1) {=0A= return c/2*t*t + b;=0A= }=0A= =0A= return -c/2 * ((--t)*(t-2) - 1) + b;=0A= },=0A= =0A= /**=0A= * Begins slowly and accelerates towards end. (quartic)=0A= * @method easeInStrong=0A= * @param {Number} t Time value used to compute current value=0A= * @param {Number} b Starting value=0A= * @param {Number} c Delta between start and end values=0A= * @param {Number} d Total length of animation=0A= * @return {Number} The computed value for the current animation = frame=0A= */=0A= easeInStrong: function (t, b, c, d) {=0A= return c*(t/=3Dd)*t*t*t + b;=0A= },=0A= =0A= /**=0A= * Begins quickly and decelerates towards end. (quartic)=0A= * @method easeOutStrong=0A= * @param {Number} t Time value used to compute current value=0A= * @param {Number} b Starting value=0A= * @param {Number} c Delta between start and end values=0A= * @param {Number} d Total length of animation=0A= * @return {Number} The computed value for the current animation = frame=0A= */=0A= easeOutStrong: function (t, b, c, d) {=0A= return -c * ((t=3Dt/d-1)*t*t*t - 1) + b;=0A= },=0A= =0A= /**=0A= * Begins slowly and decelerates towards end. (quartic)=0A= * @method easeBothStrong=0A= * @param {Number} t Time value used to compute current value=0A= * @param {Number} b Starting value=0A= * @param {Number} c Delta between start and end values=0A= * @param {Number} d Total length of animation=0A= * @return {Number} The computed value for the current animation = frame=0A= */=0A= easeBothStrong: function (t, b, c, d) {=0A= if ((t/=3Dd/2) < 1) {=0A= return c/2*t*t*t*t + b;=0A= }=0A= =0A= return -c/2 * ((t-=3D2)*t*t*t - 2) + b;=0A= },=0A= =0A= /**=0A= * Snap in elastic effect.=0A= * @method elasticIn=0A= * @param {Number} t Time value used to compute current value=0A= * @param {Number} b Starting value=0A= * @param {Number} c Delta between start and end values=0A= * @param {Number} d Total length of animation=0A= * @param {Number} a Amplitude (optional)=0A= * @param {Number} p Period (optional)=0A= * @return {Number} The computed value for the current animation = frame=0A= */=0A= =0A= elasticIn: function (t, b, c, d, a, p) {=0A= if (t =3D=3D 0) {=0A= return b;=0A= }=0A= if ( (t /=3D d) =3D=3D 1 ) {=0A= return b+c;=0A= }=0A= if (!p) {=0A= p=3Dd*.3;=0A= }=0A= =0A= if (!a || a < Math.abs(c)) {=0A= a =3D c; =0A= var s =3D p/4;=0A= }=0A= else {=0A= var s =3D p/(2*Math.PI) * Math.asin (c/a);=0A= }=0A= =0A= return -(a*Math.pow(2,10*(t-=3D1)) * Math.sin( = (t*d-s)*(2*Math.PI)/p )) + b;=0A= },=0A= =0A= /**=0A= * Snap out elastic effect.=0A= * @method elasticOut=0A= * @param {Number} t Time value used to compute current value=0A= * @param {Number} b Starting value=0A= * @param {Number} c Delta between start and end values=0A= * @param {Number} d Total length of animation=0A= * @param {Number} a Amplitude (optional)=0A= * @param {Number} p Period (optional)=0A= * @return {Number} The computed value for the current animation = frame=0A= */=0A= elasticOut: function (t, b, c, d, a, p) {=0A= if (t =3D=3D 0) {=0A= return b;=0A= }=0A= if ( (t /=3D d) =3D=3D 1 ) {=0A= return b+c;=0A= }=0A= if (!p) {=0A= p=3Dd*.3;=0A= }=0A= =0A= if (!a || a < Math.abs(c)) {=0A= a =3D c;=0A= var s =3D p / 4;=0A= }=0A= else {=0A= var s =3D p/(2*Math.PI) * Math.asin (c/a);=0A= }=0A= =0A= return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c = + b;=0A= },=0A= =0A= /**=0A= * Snap both elastic effect.=0A= * @method elasticBoth=0A= * @param {Number} t Time value used to compute current value=0A= * @param {Number} b Starting value=0A= * @param {Number} c Delta between start and end values=0A= * @param {Number} d Total length of animation=0A= * @param {Number} a Amplitude (optional)=0A= * @param {Number} p Period (optional)=0A= * @return {Number} The computed value for the current animation = frame=0A= */=0A= elasticBoth: function (t, b, c, d, a, p) {=0A= if (t =3D=3D 0) {=0A= return b;=0A= }=0A= =0A= if ( (t /=3D d/2) =3D=3D 2 ) {=0A= return b+c;=0A= }=0A= =0A= if (!p) {=0A= p =3D d*(.3*1.5);=0A= }=0A= =0A= if ( !a || a < Math.abs(c) ) {=0A= a =3D c; =0A= var s =3D p/4;=0A= }=0A= else {=0A= var s =3D p/(2*Math.PI) * Math.asin (c/a);=0A= }=0A= =0A= if (t < 1) {=0A= return -.5*(a*Math.pow(2,10*(t-=3D1)) * =0A= Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;=0A= }=0A= return a*Math.pow(2,-10*(t-=3D1)) * =0A= Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;=0A= },=0A= =0A= =0A= /**=0A= * Backtracks slightly, then reverses direction and moves to end.=0A= * @method backIn=0A= * @param {Number} t Time value used to compute current value=0A= * @param {Number} b Starting value=0A= * @param {Number} c Delta between start and end values=0A= * @param {Number} d Total length of animation=0A= * @param {Number} s Overshoot (optional)=0A= * @return {Number} The computed value for the current animation = frame=0A= */=0A= backIn: function (t, b, c, d, s) {=0A= if (typeof s =3D=3D 'undefined') {=0A= s =3D 1.70158;=0A= }=0A= return c*(t/=3Dd)*t*((s+1)*t - s) + b;=0A= },=0A= =0A= /**=0A= * Overshoots end, then reverses and comes back to end.=0A= * @method backOut=0A= * @param {Number} t Time value used to compute current value=0A= * @param {Number} b Starting value=0A= * @param {Number} c Delta between start and end values=0A= * @param {Number} d Total length of animation=0A= * @param {Number} s Overshoot (optional)=0A= * @return {Number} The computed value for the current animation = frame=0A= */=0A= backOut: function (t, b, c, d, s) {=0A= if (typeof s =3D=3D 'undefined') {=0A= s =3D 1.70158;=0A= }=0A= return c*((t=3Dt/d-1)*t*((s+1)*t + s) + 1) + b;=0A= },=0A= =0A= /**=0A= * Backtracks slightly, then reverses direction, overshoots end, =0A= * then reverses and comes back to end.=0A= * @method backBoth=0A= * @param {Number} t Time value used to compute current value=0A= * @param {Number} b Starting value=0A= * @param {Number} c Delta between start and end values=0A= * @param {Number} d Total length of animation=0A= * @param {Number} s Overshoot (optional)=0A= * @return {Number} The computed value for the current animation = frame=0A= */=0A= backBoth: function (t, b, c, d, s) {=0A= if (typeof s =3D=3D 'undefined') {=0A= s =3D 1.70158; =0A= }=0A= =0A= if ((t /=3D d/2 ) < 1) {=0A= return c/2*(t*t*(((s*=3D(1.525))+1)*t - s)) + b;=0A= }=0A= return c/2*((t-=3D2)*t*(((s*=3D(1.525))+1)*t + s) + 2) + b;=0A= },=0A= =0A= /**=0A= * Bounce off of start.=0A= * @method bounceIn=0A= * @param {Number} t Time value used to compute current value=0A= * @param {Number} b Starting value=0A= * @param {Number} c Delta between start and end values=0A= * @param {Number} d Total length of animation=0A= * @return {Number} The computed value for the current animation = frame=0A= */=0A= bounceIn: function (t, b, c, d) {=0A= return c - YAHOO.util.Easing.bounceOut(d-t, 0, c, d) + b;=0A= },=0A= =0A= /**=0A= * Bounces off end.=0A= * @method bounceOut=0A= * @param {Number} t Time value used to compute current value=0A= * @param {Number} b Starting value=0A= * @param {Number} c Delta between start and end values=0A= * @param {Number} d Total length of animation=0A= * @return {Number} The computed value for the current animation = frame=0A= */=0A= bounceOut: function (t, b, c, d) {=0A= if ((t/=3Dd) < (1/2.75)) {=0A= return c*(7.5625*t*t) + b;=0A= } else if (t < (2/2.75)) {=0A= return c*(7.5625*(t-=3D(1.5/2.75))*t + .75) + b;=0A= } else if (t < (2.5/2.75)) {=0A= return c*(7.5625*(t-=3D(2.25/2.75))*t + .9375) + b;=0A= }=0A= return c*(7.5625*(t-=3D(2.625/2.75))*t + .984375) + b;=0A= },=0A= =0A= /**=0A= * Bounces off start and end.=0A= * @method bounceBoth=0A= * @param {Number} t Time value used to compute current value=0A= * @param {Number} b Starting value=0A= * @param {Number} c Delta between start and end values=0A= * @param {Number} d Total length of animation=0A= * @return {Number} The computed value for the current animation = frame=0A= */=0A= bounceBoth: function (t, b, c, d) {=0A= if (t < d/2) {=0A= return YAHOO.util.Easing.bounceIn(t*2, 0, c, d) * .5 + b;=0A= }=0A= return YAHOO.util.Easing.bounceOut(t*2-d, 0, c, d) * .5 + c*.5 + b;=0A= }=0A= };=0A= =0A= (function() {=0A= /**=0A= * Anim subclass for moving elements along a path defined by the = "points" =0A= * member of "attributes". All "points" are arrays with x, y = coordinates.=0A= *

Usage: var myAnim =3D new YAHOO.util.Motion(el, { points: { = to: [800, 800] } }, 1, YAHOO.util.Easing.easeOut);

=0A= * @class Motion=0A= * @namespace YAHOO.util=0A= * @requires YAHOO.util.Anim=0A= * @requires YAHOO.util.AnimMgr=0A= * @requires YAHOO.util.Easing=0A= * @requires YAHOO.util.Bezier=0A= * @requires YAHOO.util.Dom=0A= * @requires YAHOO.util.Event=0A= * @requires YAHOO.util.CustomEvent =0A= * @constructor=0A= * @extends YAHOO.util.Anim=0A= * @param {String | HTMLElement} el Reference to the element that will = be animated=0A= * @param {Object} attributes The attribute(s) to be animated. =0A= * Each attribute is an object with at minimum a "to" or "by" member = defined. =0A= * Additional optional members are "from" (defaults to current value), = "units" (defaults to "px"). =0A= * All attribute names use camelCase.=0A= * @param {Number} duration (optional, defaults to 1 second) Length of = animation (frames or seconds), defaults to time-based=0A= * @param {Function} method (optional, defaults to = YAHOO.util.Easing.easeNone) Computes the values that are applied to the = attributes per frame (generally a YAHOO.util.Easing method)=0A= */=0A= YAHOO.util.Motion =3D function(el, attributes, duration, method) {=0A= if (el) { // dont break existing subclasses not using = YAHOO.extend=0A= YAHOO.util.Motion.superclass.constructor.call(this, el, = attributes, duration, method);=0A= }=0A= };=0A= =0A= YAHOO.extend(YAHOO.util.Motion, YAHOO.util.ColorAnim);=0A= =0A= // shorthand=0A= var Y =3D YAHOO.util;=0A= var superclass =3D Y.Motion.superclass;=0A= var proto =3D Y.Motion.prototype;=0A= =0A= proto.toString =3D function() {=0A= var el =3D this.getEl();=0A= var id =3D el.id || el.tagName;=0A= return ("Motion " + id);=0A= };=0A= =0A= proto.patterns.points =3D /^points$/i;=0A= =0A= proto.setAttribute =3D function(attr, val, unit) {=0A= if ( this.patterns.points.test(attr) ) {=0A= unit =3D unit || 'px';=0A= superclass.setAttribute.call(this, 'left', val[0], unit);=0A= superclass.setAttribute.call(this, 'top', val[1], unit);=0A= } else {=0A= superclass.setAttribute.call(this, attr, val, unit);=0A= }=0A= };=0A= =0A= proto.getAttribute =3D function(attr) {=0A= if ( this.patterns.points.test(attr) ) {=0A= var val =3D [=0A= superclass.getAttribute.call(this, 'left'),=0A= superclass.getAttribute.call(this, 'top')=0A= ];=0A= } else {=0A= val =3D superclass.getAttribute.call(this, attr);=0A= }=0A= =0A= return val;=0A= };=0A= =0A= proto.doMethod =3D function(attr, start, end) {=0A= var val =3D null;=0A= =0A= if ( this.patterns.points.test(attr) ) {=0A= var t =3D this.method(this.currentFrame, 0, 100, = this.totalFrames) / 100; =0A= val =3D Y.Bezier.getPosition(this.runtimeAttributes[attr], = t);=0A= } else {=0A= val =3D superclass.doMethod.call(this, attr, start, end);=0A= }=0A= return val;=0A= };=0A= =0A= proto.setRuntimeAttribute =3D function(attr) {=0A= if ( this.patterns.points.test(attr) ) {=0A= var el =3D this.getEl();=0A= var attributes =3D this.attributes;=0A= var start;=0A= var control =3D attributes['points']['control'] || [];=0A= var end;=0A= var i, len;=0A= =0A= if (control.length > 0 && !(control[0] instanceof Array) ) { = // could be single point or array of points=0A= control =3D [control];=0A= } else { // break reference to attributes.points.control=0A= var tmp =3D []; =0A= for (i =3D 0, len =3D control.length; i< len; ++i) {=0A= tmp[i] =3D control[i];=0A= }=0A= control =3D tmp;=0A= }=0A= =0A= if (Y.Dom.getStyle(el, 'position') =3D=3D 'static') { // = default to relative=0A= Y.Dom.setStyle(el, 'position', 'relative');=0A= }=0A= =0A= if ( isset(attributes['points']['from']) ) {=0A= Y.Dom.setXY(el, attributes['points']['from']); // set = position to from point=0A= } =0A= else { Y.Dom.setXY( el, Y.Dom.getXY(el) ); } // set it to = current position=0A= =0A= start =3D this.getAttribute('points'); // get actual top & = left=0A= =0A= // TO beats BY, per SMIL 2.1 spec=0A= if ( isset(attributes['points']['to']) ) {=0A= end =3D translateValues.call(this, = attributes['points']['to'], start);=0A= =0A= var pageXY =3D Y.Dom.getXY(this.getEl());=0A= for (i =3D 0, len =3D control.length; i < len; ++i) {=0A= control[i] =3D translateValues.call(this, = control[i], start);=0A= }=0A= =0A= =0A= } else if ( isset(attributes['points']['by']) ) {=0A= end =3D [ start[0] + attributes['points']['by'][0], = start[1] + attributes['points']['by'][1] ];=0A= =0A= for (i =3D 0, len =3D control.length; i < len; ++i) {=0A= control[i] =3D [ start[0] + control[i][0], start[1] = + control[i][1] ];=0A= }=0A= }=0A= =0A= this.runtimeAttributes[attr] =3D [start];=0A= =0A= if (control.length > 0) {=0A= this.runtimeAttributes[attr] =3D = this.runtimeAttributes[attr].concat(control); =0A= }=0A= =0A= = this.runtimeAttributes[attr][this.runtimeAttributes[attr].length] =3D = end;=0A= }=0A= else {=0A= superclass.setRuntimeAttribute.call(this, attr);=0A= }=0A= };=0A= =0A= var translateValues =3D function(val, start) {=0A= var pageXY =3D Y.Dom.getXY(this.getEl());=0A= val =3D [ val[0] - pageXY[0] + start[0], val[1] - pageXY[1] + = start[1] ];=0A= =0A= return val; =0A= };=0A= =0A= var isset =3D function(prop) {=0A= return (typeof prop !=3D=3D 'undefined');=0A= };=0A= })();=0A= (function() {=0A= /**=0A= * Anim subclass for scrolling elements to a position defined by the = "scroll"=0A= * member of "attributes". All "scroll" members are arrays with x, y = scroll positions.=0A= *

Usage: var myAnim =3D new YAHOO.util.Scroll(el, { scroll: { = to: [0, 800] } }, 1, YAHOO.util.Easing.easeOut);

=0A= * @class Scroll=0A= * @namespace YAHOO.util=0A= * @requires YAHOO.util.Anim=0A= * @requires YAHOO.util.AnimMgr=0A= * @requires YAHOO.util.Easing=0A= * @requires YAHOO.util.Bezier=0A= * @requires YAHOO.util.Dom=0A= * @requires YAHOO.util.Event=0A= * @requires YAHOO.util.CustomEvent =0A= * @extends YAHOO.util.Anim=0A= * @constructor=0A= * @param {String or HTMLElement} el Reference to the element that will = be animated=0A= * @param {Object} attributes The attribute(s) to be animated. =0A= * Each attribute is an object with at minimum a "to" or "by" member = defined. =0A= * Additional optional members are "from" (defaults to current value), = "units" (defaults to "px"). =0A= * All attribute names use camelCase.=0A= * @param {Number} duration (optional, defaults to 1 second) Length of = animation (frames or seconds), defaults to time-based=0A= * @param {Function} method (optional, defaults to = YAHOO.util.Easing.easeNone) Computes the values that are applied to the = attributes per frame (generally a YAHOO.util.Easing method)=0A= */=0A= YAHOO.util.Scroll =3D function(el, attributes, duration, method) {=0A= if (el) { // dont break existing subclasses not using = YAHOO.extend=0A= YAHOO.util.Scroll.superclass.constructor.call(this, el, = attributes, duration, method);=0A= }=0A= };=0A= =0A= YAHOO.extend(YAHOO.util.Scroll, YAHOO.util.ColorAnim);=0A= =0A= // shorthand=0A= var Y =3D YAHOO.util;=0A= var superclass =3D Y.Scroll.superclass;=0A= var proto =3D Y.Scroll.prototype;=0A= =0A= proto.toString =3D function() {=0A= var el =3D this.getEl();=0A= var id =3D el.id || el.tagName;=0A= return ("Scroll " + id);=0A= };=0A= =0A= proto.doMethod =3D function(attr, start, end) {=0A= var val =3D null;=0A= =0A= if (attr =3D=3D 'scroll') {=0A= val =3D [=0A= this.method(this.currentFrame, start[0], end[0] - = start[0], this.totalFrames),=0A= this.method(this.currentFrame, start[1], end[1] - = start[1], this.totalFrames)=0A= ];=0A= =0A= } else {=0A= val =3D superclass.doMethod.call(this, attr, start, end);=0A= }=0A= return val;=0A= };=0A= =0A= proto.getAttribute =3D function(attr) {=0A= var val =3D null;=0A= var el =3D this.getEl();=0A= =0A= if (attr =3D=3D 'scroll') {=0A= val =3D [ el.scrollLeft, el.scrollTop ];=0A= } else {=0A= val =3D superclass.getAttribute.call(this, attr);=0A= }=0A= =0A= return val;=0A= };=0A= =0A= proto.setAttribute =3D function(attr, val, unit) {=0A= var el =3D this.getEl();=0A= =0A= if (attr =3D=3D 'scroll') {=0A= el.scrollLeft =3D val[0];=0A= el.scrollTop =3D val[1];=0A= } else {=0A= superclass.setAttribute.call(this, attr, val, unit);=0A= }=0A= };=0A= })();=0A= YAHOO.register("animation", YAHOO.util.Anim, {version: "2.3.0", build: = "442"});=0A= ------=_NextPart_000_00C1_01C8E336.6DBBC320 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://yui.yahooapis.com/2.3.1/build/calendar/calendar-min.js /*=0A= Copyright (c) 2007, Yahoo! Inc. All rights reserved.=0A= Code licensed under the BSD License:=0A= http://developer.yahoo.net/yui/license.txt=0A= version: 2.3.1=0A= */=0A= (function(){YAHOO.util.Config=3Dfunction(D){if(D){this.init(D);}if(!D){}}= ;var = B=3DYAHOO.lang,C=3DYAHOO.util.CustomEvent,A=3DYAHOO.util.Config;A.CONFIG_= CHANGED_EVENT=3D"configChanged";A.BOOLEAN_TYPE=3D"boolean";A.prototype=3D= {owner:null,queueInProgress:false,config:null,initialConfig:null,eventQue= ue:null,configChangedEvent:null,init:function(D){this.owner=3DD;this.conf= igChangedEvent=3Dthis.createEvent(A.CONFIG_CHANGED_EVENT);this.configChan= gedEvent.signature=3DC.LIST;this.queueInProgress=3Dfalse;this.config=3D{}= ;this.initialConfig=3D{};this.eventQueue=3D[];},checkBoolean:function(D){= return(typeof = D=3D=3DA.BOOLEAN_TYPE);},checkNumber:function(D){return(!isNaN(D));},fire= Event:function(D,F){var = E=3Dthis.config[D];if(E&&E.event){E.event.fire(F);}},addProperty:function= (E,D){E=3DE.toLowerCase();this.config[E]=3DD;D.event=3Dthis.createEvent(E= ,{scope:this.owner});D.event.signature=3DC.LIST;D.key=3DE;if(D.handler){D= .event.subscribe(D.handler,this.owner);}this.setProperty(E,D.value,true);= if(!D.suppressEvent){this.queueProperty(E,D.value);}},getConfig:function(= ){var D=3D{},F,E;for(F in = this.config){E=3Dthis.config[F];if(E&&E.event){D[F]=3DE.value;}}return = D;},getProperty:function(D){var = E=3Dthis.config[D.toLowerCase()];if(E&&E.event){return = E.value;}else{return = undefined;}},resetProperty:function(D){D=3DD.toLowerCase();var = E=3Dthis.config[D];if(E&&E.event){if(this.initialConfig[D]&&!B.isUndefine= d(this.initialConfig[D])){this.setProperty(D,this.initialConfig[D]);retur= n true;}}else{return false;}},setProperty:function(E,G,D){var = F;E=3DE.toLowerCase();if(this.queueInProgress&&!D){this.queueProperty(E,G= );return = true;}else{F=3Dthis.config[E];if(F&&F.event){if(F.validator&&!F.validator= (G)){return = false;}else{F.value=3DG;if(!D){this.fireEvent(E,G);this.configChangedEven= t.fire([E,G]);}return true;}}else{return = false;}}},queueProperty:function(S,P){S=3DS.toLowerCase();var = R=3Dthis.config[S],K=3Dfalse,J,G,H,I,O,Q,F,M,N,D,L,T,E;if(R&&R.event){if(= !B.isUndefined(P)&&R.validator&&!R.validator(P)){return = false;}else{if(!B.isUndefined(P)){R.value=3DP;}else{P=3DR.value;}K=3Dfals= e;J=3Dthis.eventQueue.length;for(L=3D0;L0){G=3DF-1;do{D=3DE.subscribers[G];if(D= &&D.obj=3D=3DI&&D.fn=3D=3DH){return true;}}while(G--);}return = false;};YAHOO.lang.augmentProto(A,YAHOO.util.EventProvider);}());YAHOO.wi= dget.DateMath=3D{DAY:"D",WEEK:"W",YEAR:"Y",MONTH:"M",ONE_DAY_MS:1000*60*6= 0*24,add:function(A,D,C){var F=3Dnew Date(A.getTime());switch(D){case = this.MONTH:var E=3DA.getMonth()+C;var = B=3D0;if(E<0){while(E<0){E+=3D12;B-=3D1;}}else{if(E>11){while(E>11){E-=3D= 12;B+=3D1;}}}F.setMonth(E);F.setFullYear(A.getFullYear()+B);break;case = this.DAY:F.setDate(A.getDate()+C);break;case = this.YEAR:F.setFullYear(A.getFullYear()+C);break;case = this.WEEK:F.setDate(A.getDate()+(C*7));break;}return = F;},subtract:function(A,C,B){return = this.add(A,C,(B*-1));},before:function(C,B){var = A=3DB.getTime();if(C.getTime()A){return true;}else{return = false;}},between:function(B,A,C){if(this.after(B,A)&&this.before(B,C)){re= turn true;}else{return false;}},getJan1:function(A){return new = Date(A,0,1);},getDayOffset:function(B,D){var C=3Dthis.getJan1(D);var = A=3DMath.ceil((B.getTime()-C.getTime())/this.ONE_DAY_MS);return = A;},getWeekNumber:function(C,F){C=3Dthis.clearTime(C);var E=3Dnew = Date(C.getTime()+(4*this.ONE_DAY_MS)-((C.getDay())*this.ONE_DAY_MS));var = B=3Dnew Date(E.getFullYear(),0,1);var = A=3D((E.getTime()-B.getTime())/this.ONE_DAY_MS)-1;var = D=3DMath.ceil((A)/7);return D;},isYearOverlapWeek:function(A){var = C=3Dfalse;var = B=3Dthis.add(A,this.DAY,6);if(B.getFullYear()!=3DA.getFullYear()){C=3Dtru= e;}return C;},isMonthOverlapWeek:function(A){var C=3Dfalse;var = B=3Dthis.add(A,this.DAY,6);if(B.getMonth()!=3DA.getMonth()){C=3Dtrue;}ret= urn C;},findMonthStart:function(A){var B=3Dnew = Date(A.getFullYear(),A.getMonth(),1);return = B;},findMonthEnd:function(B){var D=3Dthis.findMonthStart(B);var = C=3Dthis.add(D,this.MONTH,1);var A=3Dthis.subtract(C,this.DAY,1);return = A;},clearTime:function(A){A.setHours(12,0,0,0);=0A= return = A;}};YAHOO.widget.Calendar=3Dfunction(C,A,B){this.init(C,A,B);};YAHOO.wid= get.Calendar.IMG_ROOT=3Dnull;YAHOO.widget.Calendar.DATE=3D"D";YAHOO.widge= t.Calendar.MONTH_DAY=3D"MD";YAHOO.widget.Calendar.WEEKDAY=3D"WD";YAHOO.wi= dget.Calendar.RANGE=3D"R";YAHOO.widget.Calendar.MONTH=3D"M";YAHOO.widget.= Calendar.DISPLAY_DAYS=3D42;YAHOO.widget.Calendar.STOP_RENDER=3D"S";YAHOO.= widget.Calendar.SHORT=3D"short";YAHOO.widget.Calendar.LONG=3D"long";YAHOO= .widget.Calendar.MEDIUM=3D"medium";YAHOO.widget.Calendar.ONE_CHAR=3D"1cha= r";YAHOO.widget.Calendar._DEFAULT_CONFIG=3D{PAGEDATE:{key:"pagedate",valu= e:null},SELECTED:{key:"selected",value:null},TITLE:{key:"title",value:""}= ,CLOSE:{key:"close",value:false},IFRAME:{key:"iframe",value:(YAHOO.env.ua= .ie&&YAHOO.env.ua.ie<=3D6)?true:false},MINDATE:{key:"mindate",value:null}= ,MAXDATE:{key:"maxdate",value:null},MULTI_SELECT:{key:"multi_select",valu= e:false},START_WEEKDAY:{key:"start_weekday",value:0},SHOW_WEEKDAYS:{key:"= show_weekdays",value:true},SHOW_WEEK_HEADER:{key:"show_week_header",value= :false},SHOW_WEEK_FOOTER:{key:"show_week_footer",value:false},HIDE_BLANK_= WEEKS:{key:"hide_blank_weeks",value:false},NAV_ARROW_LEFT:{key:"nav_arrow= _left",value:null},NAV_ARROW_RIGHT:{key:"nav_arrow_right",value:null},MON= THS_SHORT:{key:"months_short",value:["Jan","Feb","Mar","Apr","May","Jun",= "Jul","Aug","Sep","Oct","Nov","Dec"]},MONTHS_LONG:{key:"months_long",valu= e:["January","February","March","April","May","June","July","August","Sep= tember","October","November","December"]},WEEKDAYS_1CHAR:{key:"weekdays_1= char",value:["S","M","T","W","T","F","S"]},WEEKDAYS_SHORT:{key:"weekdays_= short",value:["Su","Mo","Tu","We","Th","Fr","Sa"]},WEEKDAYS_MEDIUM:{key:"= weekdays_medium",value:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},WEEKD= AYS_LONG:{key:"weekdays_long",value:["Sunday","Monday","Tuesday","Wednesd= ay","Thursday","Friday","Saturday"]},LOCALE_MONTHS:{key:"locale_months",v= alue:"long"},LOCALE_WEEKDAYS:{key:"locale_weekdays",value:"short"},DATE_D= ELIMITER:{key:"date_delimiter",value:","},DATE_FIELD_DELIMITER:{key:"date= _field_delimiter",value:"/"},DATE_RANGE_DELIMITER:{key:"date_range_delimi= ter",value:"-"},MY_MONTH_POSITION:{key:"my_month_position",value:1},MY_YE= AR_POSITION:{key:"my_year_position",value:2},MD_MONTH_POSITION:{key:"md_m= onth_position",value:1},MD_DAY_POSITION:{key:"md_day_position",value:2},M= DY_MONTH_POSITION:{key:"mdy_month_position",value:1},MDY_DAY_POSITION:{ke= y:"mdy_day_position",value:2},MDY_YEAR_POSITION:{key:"mdy_year_position",= value:3},MY_LABEL_MONTH_POSITION:{key:"my_label_month_position",value:1},= MY_LABEL_YEAR_POSITION:{key:"my_label_year_position",value:2},MY_LABEL_MO= NTH_SUFFIX:{key:"my_label_month_suffix",value:" = "},MY_LABEL_YEAR_SUFFIX:{key:"my_label_year_suffix",value:""}};YAHOO.widg= et.Calendar._EVENT_TYPES=3D{BEFORE_SELECT:"beforeSelect",SELECT:"select",= BEFORE_DESELECT:"beforeDeselect",DESELECT:"deselect",CHANGE_PAGE:"changeP= age",BEFORE_RENDER:"beforeRender",RENDER:"render",RESET:"reset",CLEAR:"cl= ear"};YAHOO.widget.Calendar._STYLES=3D{CSS_ROW_HEADER:"calrowhead",CSS_RO= W_FOOTER:"calrowfoot",CSS_CELL:"calcell",CSS_CELL_SELECTOR:"selector",CSS= _CELL_SELECTED:"selected",CSS_CELL_SELECTABLE:"selectable",CSS_CELL_RESTR= ICTED:"restricted",CSS_CELL_TODAY:"today",CSS_CELL_OOM:"oom",CSS_CELL_OOB= :"previous",CSS_HEADER:"calheader",CSS_HEADER_TEXT:"calhead",CSS_BODY:"ca= lbody",CSS_WEEKDAY_CELL:"calweekdaycell",CSS_WEEKDAY_ROW:"calweekdayrow",= CSS_FOOTER:"calfoot",CSS_CALENDAR:"yui-calendar",CSS_SINGLE:"single",CSS_= CONTAINER:"yui-calcontainer",CSS_NAV_LEFT:"calnavleft",CSS_NAV_RIGHT:"cal= navright",CSS_CLOSE:"calclose",CSS_CELL_TOP:"calcelltop",CSS_CELL_LEFT:"c= alcellleft",CSS_CELL_RIGHT:"calcellright",CSS_CELL_BOTTOM:"calcellbottom"= ,CSS_CELL_HOVER:"calcellhover",CSS_CELL_HIGHLIGHT1:"highlight1",CSS_CELL_= HIGHLIGHT2:"highlight2",CSS_CELL_HIGHLIGHT3:"highlight3",CSS_CELL_HIGHLIG= HT4:"highlight4"};YAHOO.widget.Calendar.prototype=3D{Config:null,parent:n= ull,index:-1,cells:null,cellDates:null,id:null,oDomContainer:null,today:n= ull,renderStack:null,_renderStack:null,_selectedDates:null,domEventMap:nu= ll};YAHOO.widget.Calendar.prototype.init=3Dfunction(C,A,B){this.initEvent= s();this.today=3Dnew = Date();YAHOO.widget.DateMath.clearTime(this.today);this.id=3DC;this.oDomC= ontainer=3Ddocument.getElementById(A);this.cfg=3Dnew = YAHOO.util.Config(this);this.Options=3D{};this.Locale=3D{};this.initStyle= s();YAHOO.util.Dom.addClass(this.oDomContainer,this.Style.CSS_CONTAINER);= YAHOO.util.Dom.addClass(this.oDomContainer,this.Style.CSS_SINGLE);this.ce= llDates=3D[];this.cells=3D[];this.renderStack=3D[];this._renderStack=3D[]= ;this.setupConfig();if(B){this.cfg.applyConfig(B,true);}this.cfg.fireQueu= e();};YAHOO.widget.Calendar.prototype.configIframe=3Dfunction(C,B,D){var = A=3DB[0];if(!this.parent){if(YAHOO.util.Dom.inDocument(this.oDomContainer= )){if(A){var = E=3DYAHOO.util.Dom.getStyle(this.oDomContainer,"position");if(E=3D=3D"abs= olute"||E=3D=3D"relative"){if(!YAHOO.util.Dom.inDocument(this.iframe)){th= is.iframe=3Ddocument.createElement("iframe");this.iframe.src=3D"javascrip= t:false;";YAHOO.util.Dom.setStyle(this.iframe,"opacity","0");if(YAHOO.env= .ua.ie&&YAHOO.env.ua.ie<=3D6){YAHOO.util.Dom.addClass(this.iframe,"fixeds= ize");}this.oDomContainer.insertBefore(this.iframe,this.oDomContainer.fir= stChild);}}}else{if(this.iframe){if(this.iframe.parentNode){this.iframe.p= arentNode.removeChild(this.iframe);}this.iframe=3Dnull;}}}}};YAHOO.widget= .Calendar.prototype.configTitle=3Dfunction(B,A,C){var = E=3DA[0],F;if(E){this.createTitleBar(E);}else{var = D=3Dthis.cfg.getProperty(YAHOO.widget.Calendar._DEFAULT_CONFIG.CLOSE.key)= ;if(!D){this.removeTitleBar();}else{this.createTitleBar(" ");}}};YAH= OO.widget.Calendar.prototype.configClose=3Dfunction(B,A,C){var = E=3DA[0],D=3Dthis.cfg.getProperty(YAHOO.widget.Calendar._DEFAULT_CONFIG.T= ITLE.key);if(E){if(!D){this.createTitleBar(" ");}this.createCloseBut= ton();}else{this.removeCloseButton();if(!D){this.removeTitleBar();}}};YAH= OO.widget.Calendar.prototype.initEvents=3Dfunction(){var = A=3DYAHOO.widget.Calendar._EVENT_TYPES;this.beforeSelectEvent=3Dnew = YAHOO.util.CustomEvent(A.BEFORE_SELECT);this.selectEvent=3Dnew = YAHOO.util.CustomEvent(A.SELECT);=0A= this.beforeDeselectEvent=3Dnew = YAHOO.util.CustomEvent(A.BEFORE_DESELECT);this.deselectEvent=3Dnew = YAHOO.util.CustomEvent(A.DESELECT);this.changePageEvent=3Dnew = YAHOO.util.CustomEvent(A.CHANGE_PAGE);this.beforeRenderEvent=3Dnew = YAHOO.util.CustomEvent(A.BEFORE_RENDER);this.renderEvent=3Dnew = YAHOO.util.CustomEvent(A.RENDER);this.resetEvent=3Dnew = YAHOO.util.CustomEvent(A.RESET);this.clearEvent=3Dnew = YAHOO.util.CustomEvent(A.CLEAR);this.beforeSelectEvent.subscribe(this.onB= eforeSelect,this,true);this.selectEvent.subscribe(this.onSelect,this,true= );this.beforeDeselectEvent.subscribe(this.onBeforeDeselect,this,true);thi= s.deselectEvent.subscribe(this.onDeselect,this,true);this.changePageEvent= .subscribe(this.onChangePage,this,true);this.renderEvent.subscribe(this.o= nRender,this,true);this.resetEvent.subscribe(this.onReset,this,true);this= .clearEvent.subscribe(this.onClear,this,true);};YAHOO.widget.Calendar.pro= totype.doSelectCell=3Dfunction(G,A){var L,F,I,C;var = H=3DYAHOO.util.Event.getTarget(G);var B=3DH.tagName.toLowerCase();var = E=3Dfalse;while(B!=3D"td"&&!YAHOO.util.Dom.hasClass(H,A.Style.CSS_CELL_SE= LECTABLE)){if(!E&&B=3D=3D"a"&&YAHOO.util.Dom.hasClass(H,A.Style.CSS_CELL_= SELECTOR)){E=3Dtrue;}H=3DH.parentNode;B=3DH.tagName.toLowerCase();if(B=3D= =3D"html"){return = ;}}if(E){YAHOO.util.Event.preventDefault(G);}L=3DH;if(YAHOO.util.Dom.hasC= lass(L,A.Style.CSS_CELL_SELECTABLE)){F=3DL.id.split("cell")[1];I=3DA.cell= Dates[F];C=3Dnew Date(I[0],I[1]-1,I[2]);var = K;if(A.Options.MULTI_SELECT){K=3DL.getElementsByTagName("a")[0];if(K){K.b= lur();}var D=3DA.cellDates[F];var = J=3DA._indexOfSelectedFieldArray(D);if(J>-1){A.deselectCell(F);}else{A.se= lectCell(F);}}else{K=3DL.getElementsByTagName("a")[0];if(K){K.blur();}A.s= electCell(F);}}};YAHOO.widget.Calendar.prototype.doCellMouseOver=3Dfuncti= on(C,B){var = A;if(C){A=3DYAHOO.util.Event.getTarget(C);}else{A=3Dthis;}while(A.tagName= .toLowerCase()!=3D"td"){A=3DA.parentNode;if(A.tagName.toLowerCase()=3D=3D= "html"){return = ;}}if(YAHOO.util.Dom.hasClass(A,B.Style.CSS_CELL_SELECTABLE)){YAHOO.util.= Dom.addClass(A,B.Style.CSS_CELL_HOVER);}};YAHOO.widget.Calendar.prototype= .doCellMouseOut=3Dfunction(C,B){var = A;if(C){A=3DYAHOO.util.Event.getTarget(C);}else{A=3Dthis;}while(A.tagName= .toLowerCase()!=3D"td"){A=3DA.parentNode;if(A.tagName.toLowerCase()=3D=3D= "html"){return = ;}}if(YAHOO.util.Dom.hasClass(A,B.Style.CSS_CELL_SELECTABLE)){YAHOO.util.= Dom.removeClass(A,B.Style.CSS_CELL_HOVER);}};YAHOO.widget.Calendar.protot= ype.setupConfig=3Dfunction(){var = A=3DYAHOO.widget.Calendar._DEFAULT_CONFIG;this.cfg.addProperty(A.PAGEDATE= .key,{value:new = Date(),handler:this.configPageDate});this.cfg.addProperty(A.SELECTED.key,= {value:[],handler:this.configSelected});this.cfg.addProperty(A.TITLE.key,= {value:A.TITLE.value,handler:this.configTitle});this.cfg.addProperty(A.CL= OSE.key,{value:A.CLOSE.value,handler:this.configClose});this.cfg.addPrope= rty(A.IFRAME.key,{value:A.IFRAME.value,handler:this.configIframe,validato= r:this.cfg.checkBoolean});this.cfg.addProperty(A.MINDATE.key,{value:A.MIN= DATE.value,handler:this.configMinDate});this.cfg.addProperty(A.MAXDATE.ke= y,{value:A.MAXDATE.value,handler:this.configMaxDate});this.cfg.addPropert= y(A.MULTI_SELECT.key,{value:A.MULTI_SELECT.value,handler:this.configOptio= ns,validator:this.cfg.checkBoolean});this.cfg.addProperty(A.START_WEEKDAY= .key,{value:A.START_WEEKDAY.value,handler:this.configOptions,validator:th= is.cfg.checkNumber});this.cfg.addProperty(A.SHOW_WEEKDAYS.key,{value:A.SH= OW_WEEKDAYS.value,handler:this.configOptions,validator:this.cfg.checkBool= ean});this.cfg.addProperty(A.SHOW_WEEK_HEADER.key,{value:A.SHOW_WEEK_HEAD= ER.value,handler:this.configOptions,validator:this.cfg.checkBoolean});thi= s.cfg.addProperty(A.SHOW_WEEK_FOOTER.key,{value:A.SHOW_WEEK_FOOTER.value,= handler:this.configOptions,validator:this.cfg.checkBoolean});this.cfg.add= Property(A.HIDE_BLANK_WEEKS.key,{value:A.HIDE_BLANK_WEEKS.value,handler:t= his.configOptions,validator:this.cfg.checkBoolean});this.cfg.addProperty(= A.NAV_ARROW_LEFT.key,{value:A.NAV_ARROW_LEFT.value,handler:this.configOpt= ions});this.cfg.addProperty(A.NAV_ARROW_RIGHT.key,{value:A.NAV_ARROW_RIGH= T.value,handler:this.configOptions});this.cfg.addProperty(A.MONTHS_SHORT.= key,{value:A.MONTHS_SHORT.value,handler:this.configLocale});this.cfg.addP= roperty(A.MONTHS_LONG.key,{value:A.MONTHS_LONG.value,handler:this.configL= ocale});this.cfg.addProperty(A.WEEKDAYS_1CHAR.key,{value:A.WEEKDAYS_1CHAR= .value,handler:this.configLocale});this.cfg.addProperty(A.WEEKDAYS_SHORT.= key,{value:A.WEEKDAYS_SHORT.value,handler:this.configLocale});this.cfg.ad= dProperty(A.WEEKDAYS_MEDIUM.key,{value:A.WEEKDAYS_MEDIUM.value,handler:th= is.configLocale});this.cfg.addProperty(A.WEEKDAYS_LONG.key,{value:A.WEEKD= AYS_LONG.value,handler:this.configLocale});var = B=3Dfunction(){this.cfg.refireEvent(A.LOCALE_MONTHS.key);this.cfg.refireE= vent(A.LOCALE_WEEKDAYS.key);};this.cfg.subscribeToConfigEvent(A.START_WEE= KDAY.key,B,this,true);this.cfg.subscribeToConfigEvent(A.MONTHS_SHORT.key,= B,this,true);this.cfg.subscribeToConfigEvent(A.MONTHS_LONG.key,B,this,tru= e);this.cfg.subscribeToConfigEvent(A.WEEKDAYS_1CHAR.key,B,this,true);this= .cfg.subscribeToConfigEvent(A.WEEKDAYS_SHORT.key,B,this,true);this.cfg.su= bscribeToConfigEvent(A.WEEKDAYS_MEDIUM.key,B,this,true);this.cfg.subscrib= eToConfigEvent(A.WEEKDAYS_LONG.key,B,this,true);this.cfg.addProperty(A.LO= CALE_MONTHS.key,{value:A.LOCALE_MONTHS.value,handler:this.configLocaleVal= ues});this.cfg.addProperty(A.LOCALE_WEEKDAYS.key,{value:A.LOCALE_WEEKDAYS= .value,handler:this.configLocaleValues});this.cfg.addProperty(A.DATE_DELI= MITER.key,{value:A.DATE_DELIMITER.value,handler:this.configLocale});this.= cfg.addProperty(A.DATE_FIELD_DELIMITER.key,{value:A.DATE_FIELD_DELIMITER.= value,handler:this.configLocale});this.cfg.addProperty(A.DATE_RANGE_DELIM= ITER.key,{value:A.DATE_RANGE_DELIMITER.value,handler:this.configLocale});= this.cfg.addProperty(A.MY_MONTH_POSITION.key,{value:A.MY_MONTH_POSITION.v= alue,handler:this.configLocale,validator:this.cfg.checkNumber});this.cfg.= addProperty(A.MY_YEAR_POSITION.key,{value:A.MY_YEAR_POSITION.value,handle= r:this.configLocale,validator:this.cfg.checkNumber});=0A= this.cfg.addProperty(A.MD_MONTH_POSITION.key,{value:A.MD_MONTH_POSITION.v= alue,handler:this.configLocale,validator:this.cfg.checkNumber});this.cfg.= addProperty(A.MD_DAY_POSITION.key,{value:A.MD_DAY_POSITION.value,handler:= this.configLocale,validator:this.cfg.checkNumber});this.cfg.addProperty(A= .MDY_MONTH_POSITION.key,{value:A.MDY_MONTH_POSITION.value,handler:this.co= nfigLocale,validator:this.cfg.checkNumber});this.cfg.addProperty(A.MDY_DA= Y_POSITION.key,{value:A.MDY_DAY_POSITION.value,handler:this.configLocale,= validator:this.cfg.checkNumber});this.cfg.addProperty(A.MDY_YEAR_POSITION= .key,{value:A.MDY_YEAR_POSITION.value,handler:this.configLocale,validator= :this.cfg.checkNumber});this.cfg.addProperty(A.MY_LABEL_MONTH_POSITION.ke= y,{value:A.MY_LABEL_MONTH_POSITION.value,handler:this.configLocale,valida= tor:this.cfg.checkNumber});this.cfg.addProperty(A.MY_LABEL_YEAR_POSITION.= key,{value:A.MY_LABEL_YEAR_POSITION.value,handler:this.configLocale,valid= ator:this.cfg.checkNumber});this.cfg.addProperty(A.MY_LABEL_MONTH_SUFFIX.= key,{value:A.MY_LABEL_MONTH_SUFFIX.value,handler:this.configLocale});this= .cfg.addProperty(A.MY_LABEL_YEAR_SUFFIX.key,{value:A.MY_LABEL_YEAR_SUFFIX= .value,handler:this.configLocale});};YAHOO.widget.Calendar.prototype.conf= igPageDate=3Dfunction(B,A,C){this.cfg.setProperty(YAHOO.widget.Calendar._= DEFAULT_CONFIG.PAGEDATE.key,this._parsePageDate(A[0]),true);};YAHOO.widge= t.Calendar.prototype.configMinDate=3Dfunction(B,A,C){var = D=3DA[0];if(YAHOO.lang.isString(D)){D=3Dthis._parseDate(D);this.cfg.setPr= operty(YAHOO.widget.Calendar._DEFAULT_CONFIG.MINDATE.key,new = Date(D[0],(D[1]-1),D[2]));}};YAHOO.widget.Calendar.prototype.configMaxDat= e=3Dfunction(B,A,C){var = D=3DA[0];if(YAHOO.lang.isString(D)){D=3Dthis._parseDate(D);this.cfg.setPr= operty(YAHOO.widget.Calendar._DEFAULT_CONFIG.MAXDATE.key,new = Date(D[0],(D[1]-1),D[2]));}};YAHOO.widget.Calendar.prototype.configSelect= ed=3Dfunction(C,A,E){var B=3DA[0];var = D=3DYAHOO.widget.Calendar._DEFAULT_CONFIG.SELECTED.key;if(B){if(YAHOO.lan= g.isString(B)){this.cfg.setProperty(D,this._parseDates(B),true);}}if(!thi= s._selectedDates){this._selectedDates=3Dthis.cfg.getProperty(D);}};YAHOO.= widget.Calendar.prototype.configOptions=3Dfunction(B,A,C){this.Options[B.= toUpperCase()]=3DA[0];};YAHOO.widget.Calendar.prototype.configLocale=3Dfu= nction(C,B,D){var = A=3DYAHOO.widget.Calendar._DEFAULT_CONFIG;this.Locale[C.toUpperCase()]=3D= B[0];this.cfg.refireEvent(A.LOCALE_MONTHS.key);this.cfg.refireEvent(A.LOC= ALE_WEEKDAYS.key);};YAHOO.widget.Calendar.prototype.configLocaleValues=3D= function(D,C,E){var = B=3DYAHOO.widget.Calendar._DEFAULT_CONFIG;D=3DD.toLowerCase();var = G=3DC[0];switch(D){case B.LOCALE_MONTHS.key:switch(G){case = YAHOO.widget.Calendar.SHORT:this.Locale.LOCALE_MONTHS=3Dthis.cfg.getPrope= rty(B.MONTHS_SHORT.key).concat();break;case = YAHOO.widget.Calendar.LONG:this.Locale.LOCALE_MONTHS=3Dthis.cfg.getProper= ty(B.MONTHS_LONG.key).concat();break;}break;case = B.LOCALE_WEEKDAYS.key:switch(G){case = YAHOO.widget.Calendar.ONE_CHAR:this.Locale.LOCALE_WEEKDAYS=3Dthis.cfg.get= Property(B.WEEKDAYS_1CHAR.key).concat();break;case = YAHOO.widget.Calendar.SHORT:this.Locale.LOCALE_WEEKDAYS=3Dthis.cfg.getPro= perty(B.WEEKDAYS_SHORT.key).concat();break;case = YAHOO.widget.Calendar.MEDIUM:this.Locale.LOCALE_WEEKDAYS=3Dthis.cfg.getPr= operty(B.WEEKDAYS_MEDIUM.key).concat();break;case = YAHOO.widget.Calendar.LONG:this.Locale.LOCALE_WEEKDAYS=3Dthis.cfg.getProp= erty(B.WEEKDAYS_LONG.key).concat();break;}var = F=3Dthis.cfg.getProperty(B.START_WEEKDAY.key);if(F>0){for(var = A=3D0;A";}this.oDomContainer.appendChild(E);re= turn = E;};YAHOO.widget.Calendar.prototype.removeCloseButton=3Dfunction(){var = A=3DYAHOO.util.Dom.getElementsByClassName("link-close","a",this.oDomConta= iner)[0]||null;if(A){YAHOO.util.Event.purgeElement(A);this.oDomContainer.= removeChild(A);}};YAHOO.widget.Calendar.prototype.renderHeader=3Dfunction= (E){var H=3D7;var F=3D"us/tr/callt.gif";var G=3D"us/tr/calrt.gif";var = L=3DYAHOO.widget.Calendar._DEFAULT_CONFIG;if(this.cfg.getProperty(L.SHOW_= WEEK_HEADER.key)){H+=3D1;}if(this.cfg.getProperty(L.SHOW_WEEK_FOOTER.key)= ){H+=3D1;}E[E.length]=3D"";E[E.length]=3D"";E[E.length]=3D"";E[E.length]=3D"
";var = J,K=3Dfalse;if(this.parent){if(this.index=3D=3D=3D0){J=3Dtrue;}if(this.in= dex=3D=3D(this.parent.cfg.getProperty("pages")-1)){K=3Dtrue;}}else{J=3Dtr= ue;K=3Dtrue;}var B=3Dthis.parent||this;if(J){var = A=3Dthis.cfg.getProperty(L.NAV_ARROW_LEFT.key);if(A=3D=3D=3Dnull&&YAHOO.w= idget.Calendar.IMG_ROOT!=3D=3Dnull){A=3DYAHOO.widget.Calendar.IMG_ROOT+F;= }var C=3D(A=3D=3D=3Dnull)?"":" = style=3D\"background-image:url("+A+")\"";E[E.length]=3D" ";}E[E.length]=3Dthis.buildMonthLabel();if(K){var = D=3Dthis.cfg.getProperty(L.NAV_ARROW_RIGHT.key);if(D=3D=3D=3Dnull&&YAHOO.= widget.Calendar.IMG_ROOT!=3D=3Dnull){D=3DYAHOO.widget.Calendar.IMG_ROOT+G= ;}var I=3D(D=3D=3D=3Dnull)?"":" = style=3D\"background-image:url("+D+")\"";E[E.length]=3D" ";}E[E.length]=3D"
\n\n";if(this.cfg.getPropert= y(L.SHOW_WEEKDAYS.key)){E=3Dthis.buildWeekdays(E);}E[E.length]=3D"";return = E;};YAHOO.widget.Calendar.prototype.buildWeekdays=3Dfunction(C){var = A=3DYAHOO.widget.Calendar._DEFAULT_CONFIG;C[C.length]=3D"";if(this.cfg.getProperty(A.SH= OW_WEEK_HEADER.key)){C[C.length]=3D" ";}for(var = B=3D0;B"+this.Locale.LOCALE_WEEKDAYS[B]+"";}if(t= his.cfg.getProperty(A.SHOW_WEEK_FOOTER.key)){C[C.length]=3D" ";}C[C.length]=3D"";return = C;};YAHOO.widget.Calendar.prototype.renderBody=3Dfunction(c,a){var = m=3DYAHOO.widget.Calendar._DEFAULT_CONFIG;var = AC=3Dthis.cfg.getProperty(m.START_WEEKDAY.key);this.preMonthDays=3Dc.getD= ay();if(AC>0){this.preMonthDays-=3DAC;}if(this.preMonthDays<0){this.preMo= nthDays+=3D7;}this.monthDays=3DYAHOO.widget.DateMath.findMonthEnd(c).getD= ate();this.postMonthDays=3DYAHOO.widget.Calendar.DISPLAY_DAYS-this.preMon= thDays-this.monthDays;c=3DYAHOO.widget.DateMath.subtract(c,YAHOO.widget.D= ateMath.DAY,this.preMonthDays);var Q,H;var G=3D"w";var W=3D"_cell";var = U=3D"wd";var k=3D"d";var I;var h;var O=3Dthis.today.getFullYear();var = j=3Dthis.today.getMonth();var D=3Dthis.today.getDate();var = q=3Dthis.cfg.getProperty(m.PAGEDATE.key);var = C=3Dthis.cfg.getProperty(m.HIDE_BLANK_WEEKS.key);var = Z=3Dthis.cfg.getProperty(m.SHOW_WEEK_FOOTER.key);var = T=3Dthis.cfg.getProperty(m.SHOW_WEEK_HEADER.key);var = M=3Dthis.cfg.getProperty(m.MINDATE.key);var = S=3Dthis.cfg.getProperty(m.MAXDATE.key);if(M){M=3DYAHOO.widget.DateMath.c= learTime(M);}if(S){S=3DYAHOO.widget.DateMath.clearTime(S);}a[a.length]=3D= "";var = AA=3D0;var J=3Ddocument.createElement("div");var = b=3Ddocument.createElement("td");J.appendChild(b);var z=3Dnew = Date(q.getFullYear(),0,1);var o=3Dthis.parent||this;for(var = u=3D0;u<6;u++){Q=3DYAHOO.widget.DateMath.getWeekNumber(c,q.getFullYear(),= AC);H=3DG+Q;if(u!=3D=3D0&&C=3D=3D=3Dtrue&&c.getMonth()!=3Dq.getMonth()){b= reak;}else{a[a.length]=3D"";if(T){a=3Dthis.renderRowHeader(Q,a);}for(var = AB=3D0;AB<7;AB++){I=3D[];h=3Dnull;this.clearElement(b);b.className=3Dthis= .Style.CSS_CELL;b.id=3Dthis.id+W+AA;if(c.getDate()=3D=3DD&&c.getMonth()=3D= =3Dj&&c.getFullYear()=3D=3DO){I[I.length]=3Do.renderCellStyleToday;}var = R=3D[c.getFullYear(),c.getMonth()+1,c.getDate()];this.cellDates[this.cell= Dates.length]=3DR;if(c.getMonth()!=3Dq.getMonth()){I[I.length]=3Do.render= CellNotThisMonth;}else{YAHOO.util.Dom.addClass(b,U+c.getDay());YAHOO.util= .Dom.addClass(b,k+c.getDate());for(var = t=3D0;t=3Dy.getTime()&&c.getTime()<=3Dw.getTime()){= h=3Dl[2];if(c.getTime()=3D=3Dw.getTime()){this.renderStack.splice(t,1);}}= break;case YAHOO.widget.Calendar.WEEKDAY:var = K=3Dl[1][0];if(c.getDay()+1=3D=3DK){h=3Dl[2];}break;case = YAHOO.widget.Calendar.MONTH:B=3Dl[1][0];if(c.getMonth()+1=3D=3DB){h=3Dl[2= ];}break;}if(h){I[I.length]=3Dh;}}}if(this._indexOfSelectedFieldArray(R)>= -1){I[I.length]=3Do.renderCellStyleSelected;}if((M&&(c.getTime()S.getTime()))){I[I.length]=3Do.renderOutOfBoundsD= ate;}else{I[I.length]=3Do.styleCellDefault;I[I.length]=3Do.renderCellDefa= ult;}for(var = n=3D0;n=3D0&&AA<=3D6){YAHOO.util.Dom.addClass(b,this.Style.CSS_CELL_TOP);}= if((AA%7)=3D=3D=3D0){YAHOO.util.Dom.addClass(b,this.Style.CSS_CELL_LEFT);= }if(((AA+1)%7)=3D=3D=3D0){YAHOO.util.Dom.addClass(b,this.Style.CSS_CELL_R= IGHT);}var f=3Dthis.postMonthDays;if(C&&f>=3D7){var = N=3DMath.floor(f/7);for(var v=3D0;=0A= v=3D((this.preMonthDays+f+this.monthDays)-7)){YAHO= O.util.Dom.addClass(b,this.Style.CSS_CELL_BOTTOM);}a[a.length]=3DJ.innerH= TML;AA++;}if(Z){a=3Dthis.renderRowFooter(Q,a);}a[a.length]=3D"";}}a[= a.length]=3D"";return = a;};YAHOO.widget.Calendar.prototype.renderFooter=3Dfunction(A){return = A;};YAHOO.widget.Calendar.prototype.render=3Dfunction(){this.beforeRender= Event.fire();var A=3DYAHOO.widget.Calendar._DEFAULT_CONFIG;var = C=3DYAHOO.widget.DateMath.findMonthStart(this.cfg.getProperty(A.PAGEDATE.= key));this.resetRenderers();this.cellDates.length=3D0;YAHOO.util.Event.pu= rgeElement(this.oDomContainer,true);var B=3D[];B[B.length]=3D"";B=3Dthis.renderHeader(B);B=3Dthis.renderBody(C,B);= B=3Dthis.renderFooter(B);B[B.length]=3D"
";this.oDomContainer.inne= rHTML=3DB.join("\n");this.applyListeners();this.cells=3Dthis.oDomContaine= r.getElementsByTagName("td");this.cfg.refireEvent(A.TITLE.key);this.cfg.r= efireEvent(A.CLOSE.key);this.cfg.refireEvent(A.IFRAME.key);this.renderEve= nt.fire();};YAHOO.widget.Calendar.prototype.applyListeners=3Dfunction(){v= ar K=3Dthis.oDomContainer;var B=3Dthis.parent||this;var G=3D"a";var = D=3D"mousedown";var = H=3DYAHOO.util.Dom.getElementsByClassName(this.Style.CSS_NAV_LEFT,G,K);va= r = C=3DYAHOO.util.Dom.getElementsByClassName(this.Style.CSS_NAV_RIGHT,G,K);i= f(H&&H.length>0){this.linkLeft=3DH[0];YAHOO.util.Event.addListener(this.l= inkLeft,D,B.previousMonth,B,true);}if(C&&C.length>0){this.linkRight=3DC[0= ];YAHOO.util.Event.addListener(this.linkRight,D,B.nextMonth,B,true);}if(t= his.domEventMap){var E,A;for(var M in = this.domEventMap){if(YAHOO.lang.hasOwnProperty(this.domEventMap,M)){var = I=3Dthis.domEventMap[M];if(!(I instanceof Array)){I=3D[I];}for(var = F=3D0;F"+B+"";return = A;};YAHOO.widget.Calendar.prototype.renderRowFooter=3Dfunction(B,A){A[A.l= ength]=3D""+B+"";return = A;};YAHOO.widget.Calendar.prototype.renderCellDefault=3Dfunction(B,A){A.i= nnerHTML=3D""+this.buildDayLabel(B)+"";};YAHOO.widget.Calendar.prototype.styleCellDefault=3Dfunction(B,A){YAH= OO.util.Dom.addClass(A,this.Style.CSS_CELL_SELECTABLE);};YAHOO.widget.Cal= endar.prototype.renderCellStyleHighlight1=3Dfunction(B,A){YAHOO.util.Dom.= addClass(A,this.Style.CSS_CELL_HIGHLIGHT1);};YAHOO.widget.Calendar.protot= ype.renderCellStyleHighlight2=3Dfunction(B,A){YAHOO.util.Dom.addClass(A,t= his.Style.CSS_CELL_HIGHLIGHT2);};YAHOO.widget.Calendar.prototype.renderCe= llStyleHighlight3=3Dfunction(B,A){YAHOO.util.Dom.addClass(A,this.Style.CS= S_CELL_HIGHLIGHT3);};YAHOO.widget.Calendar.prototype.renderCellStyleHighl= ight4=3Dfunction(B,A){YAHOO.util.Dom.addClass(A,this.Style.CSS_CELL_HIGHL= IGHT4);};YAHOO.widget.Calendar.prototype.renderCellStyleToday=3Dfunction(= B,A){YAHOO.util.Dom.addClass(A,this.Style.CSS_CELL_TODAY);};YAHOO.widget.= Calendar.prototype.renderCellStyleSelected=3Dfunction(B,A){YAHOO.util.Dom= .addClass(A,this.Style.CSS_CELL_SELECTED);};YAHOO.widget.Calendar.prototy= pe.renderCellNotThisMonth=3Dfunction(B,A){YAHOO.util.Dom.addClass(A,this.= Style.CSS_CELL_OOM);A.innerHTML=3DB.getDate();return = YAHOO.widget.Calendar.STOP_RENDER;};YAHOO.widget.Calendar.prototype.rende= rBodyCellRestricted=3Dfunction(B,A){YAHOO.util.Dom.addClass(A,this.Style.= CSS_CELL);YAHOO.util.Dom.addClass(A,this.Style.CSS_CELL_RESTRICTED);A.inn= erHTML=3DB.getDate();return = YAHOO.widget.Calendar.STOP_RENDER;};YAHOO.widget.Calendar.prototype.addMo= nths=3Dfunction(B){var = A=3DYAHOO.widget.Calendar._DEFAULT_CONFIG.PAGEDATE.key;this.cfg.setProper= ty(A,YAHOO.widget.DateMath.add(this.cfg.getProperty(A),YAHOO.widget.DateM= ath.MONTH,B));this.resetRenderers();this.changePageEvent.fire();};YAHOO.w= idget.Calendar.prototype.subtractMonths=3Dfunction(B){var = A=3DYAHOO.widget.Calendar._DEFAULT_CONFIG.PAGEDATE.key;this.cfg.setProper= ty(A,YAHOO.widget.DateMath.subtract(this.cfg.getProperty(A),YAHOO.widget.= DateMath.MONTH,B));this.resetRenderers();this.changePageEvent.fire();};YA= HOO.widget.Calendar.prototype.addYears=3Dfunction(B){var = A=3DYAHOO.widget.Calendar._DEFAULT_CONFIG.PAGEDATE.key;this.cfg.setProper= ty(A,YAHOO.widget.DateMath.add(this.cfg.getProperty(A),YAHOO.widget.DateM= ath.YEAR,B));this.resetRenderers();this.changePageEvent.fire();};YAHOO.wi= dget.Calendar.prototype.subtractYears=3Dfunction(B){var = A=3DYAHOO.widget.Calendar._DEFAULT_CONFIG.PAGEDATE.key;this.cfg.setProper= ty(A,YAHOO.widget.DateMath.subtract(this.cfg.getProperty(A),YAHOO.widget.= DateMath.YEAR,B));this.resetRenderers();this.changePageEvent.fire();};YAH= OO.widget.Calendar.prototype.nextMonth=3Dfunction(){this.addMonths(1);};Y= AHOO.widget.Calendar.prototype.previousMonth=3Dfunction(){this.subtractMo= nths(1);};YAHOO.widget.Calendar.prototype.nextYear=3Dfunction(){this.addY= ears(1);};YAHOO.widget.Calendar.prototype.previousYear=3Dfunction(){this.= subtractYears(1);};YAHOO.widget.Calendar.prototype.reset=3Dfunction(){var= = A=3DYAHOO.widget.Calendar._DEFAULT_CONFIG;this.cfg.resetProperty(A.SELECT= ED.key);this.cfg.resetProperty(A.PAGEDATE.key);this.resetEvent.fire();=0A= };YAHOO.widget.Calendar.prototype.clear=3Dfunction(){var = A=3DYAHOO.widget.Calendar._DEFAULT_CONFIG;this.cfg.setProperty(A.SELECTED= .key,[]);this.cfg.setProperty(A.PAGEDATE.key,new = Date(this.today.getTime()));this.clearEvent.fire();};YAHOO.widget.Calenda= r.prototype.select=3Dfunction(C){var F=3Dthis._toFieldArray(C);var = B=3D[];var E=3D[];var = G=3DYAHOO.widget.Calendar._DEFAULT_CONFIG.SELECTED.key;for(var = A=3D0;A0){= if(this.parent){this.parent.cfg.setProperty(G,E);}else{this.cfg.setProper= ty(G,E);}this.selectEvent.fire(B);}return = this.getSelectedDates();};YAHOO.widget.Calendar.prototype.selectCell=3Dfu= nction(D){var B=3Dthis.cells[D];var H=3Dthis.cellDates[D];var = G=3Dthis._toDate(H);var = C=3DYAHOO.util.Dom.hasClass(B,this.Style.CSS_CELL_SELECTABLE);if(C){this.= beforeSelectEvent.fire();var = F=3DYAHOO.widget.Calendar._DEFAULT_CONFIG.SELECTED.key;var = E=3Dthis.cfg.getProperty(F);var = A=3DH.concat();if(this._indexOfSelectedFieldArray(A)=3D=3D-1){E[E.length]= =3DA;}if(this.parent){this.parent.cfg.setProperty(F,E);}else{this.cfg.set= Property(F,E);}this.renderCellStyleSelected(G,B);this.selectEvent.fire([A= ]);this.doCellMouseOut.call(B,null,this);}return = this.getSelectedDates();};YAHOO.widget.Calendar.prototype.deselect=3Dfunc= tion(E){var A=3Dthis._toFieldArray(E);var D=3D[];var G=3D[];var = H=3DYAHOO.widget.Calendar._DEFAULT_CONFIG.SELECTED.key;for(var = B=3D0;B0){if(this.parent){this.parent.cfg.setProperty(H,G);}else{this.cfg= .setProperty(H,G);}this.deselectEvent.fire(D);}return = this.getSelectedDates();};YAHOO.widget.Calendar.prototype.deselectCell=3D= function(E){var H=3Dthis.cells[E];var B=3Dthis.cellDates[E];var = F=3Dthis._indexOfSelectedFieldArray(B);var = G=3DYAHOO.util.Dom.hasClass(H,this.Style.CSS_CELL_SELECTABLE);if(G){this.= beforeDeselectEvent.fire();var = I=3DYAHOO.widget.Calendar._DEFAULT_CONFIG;var = D=3Dthis.cfg.getProperty(I.SELECTED.key);var C=3Dthis._toDate(B);var = A=3DB.concat();if(F>-1){if(this.cfg.getProperty(I.PAGEDATE.key).getMonth(= )=3D=3DC.getMonth()&&this.cfg.getProperty(I.PAGEDATE.key).getFullYear()=3D= =3DC.getFullYear()){YAHOO.util.Dom.removeClass(H,this.Style.CSS_CELL_SELE= CTED);}D.splice(F,1);}if(this.parent){this.parent.cfg.setProperty(I.SELEC= TED.key,D);}else{this.cfg.setProperty(I.SELECTED.key,D);}this.deselectEve= nt.fire(A);}return = this.getSelectedDates();};YAHOO.widget.Calendar.prototype.deselectAll=3Df= unction(){this.beforeDeselectEvent.fire();var = D=3DYAHOO.widget.Calendar._DEFAULT_CONFIG.SELECTED.key;var = A=3Dthis.cfg.getProperty(D);var B=3DA.length;var = C=3DA.concat();if(this.parent){this.parent.cfg.setProperty(D,[]);}else{th= is.cfg.setProperty(D,[]);}if(B>0){this.deselectEvent.fire(C);}return = this.getSelectedDates();};YAHOO.widget.Calendar.prototype._toFieldArray=3D= function(B){var A=3D[];if(B instanceof = Date){A=3D[[B.getFullYear(),B.getMonth()+1,B.getDate()]];}else{if(YAHOO.l= ang.isString(B)){A=3Dthis._parseDates(B);}else{if(YAHOO.lang.isArray(B)){= for(var C=3D0;CF.getTime()));};YAHOO.widget.Calendar.prototype._parsePa= geDate=3Dfunction(B){var E;var = A=3DYAHOO.widget.Calendar._DEFAULT_CONFIG;if(B){if(B instanceof = Date){E=3DYAHOO.widget.DateMath.findMonthStart(B);}else{var = F,D,C;C=3DB.split(this.cfg.getProperty(A.DATE_FIELD_DELIMITER.key));F=3Dp= arseInt(C[this.cfg.getProperty(A.MY_MONTH_POSITION.key)-1],10)-1;D=3Dpars= eInt(C[this.cfg.getProperty(A.MY_YEAR_POSITION.key)-1],10);E=3Dnew = Date(D,F,1);}}else{E=3Dnew = Date(this.today.getFullYear(),this.today.getMonth(),1);}return = E;};YAHOO.widget.Calendar.prototype.onBeforeSelect=3Dfunction(){if(this.c= fg.getProperty(YAHOO.widget.Calendar._DEFAULT_CONFIG.MULTI_SELECT.key)=3D= =3D=3Dfalse){if(this.parent){this.parent.callChildFunction("clearAllBodyC= ellStyles",this.Style.CSS_CELL_SELECTED);this.parent.deselectAll();}else{= this.clearAllBodyCellStyles(this.Style.CSS_CELL_SELECTED);this.deselectAl= l();}}};YAHOO.widget.Calendar.prototype.onSelect=3Dfunction(A){};YAHOO.wi= dget.Calendar.prototype.onBeforeDeselect=3Dfunction(){};YAHOO.widget.Cale= ndar.prototype.onDeselect=3Dfunction(A){};YAHOO.widget.Calendar.prototype= .onChangePage=3Dfunction(){this.render();};YAHOO.widget.Calendar.prototyp= e.onRender=3Dfunction(){};YAHOO.widget.Calendar.prototype.onReset=3Dfunct= ion(){this.render();};YAHOO.widget.Calendar.prototype.onClear=3Dfunction(= ){this.render();};YAHOO.widget.Calendar.prototype.validate=3Dfunction(){r= eturn = true;};YAHOO.widget.Calendar.prototype._parseDate=3Dfunction(C){var = D=3DC.split(this.Locale.DATE_FIELD_DELIMITER);var = A;if(D.length=3D=3D2){A=3D[D[this.Locale.MD_MONTH_POSITION-1],D[this.Loca= le.MD_DAY_POSITION-1]];A.type=3DYAHOO.widget.Calendar.MONTH_DAY;}else{A=3D= [D[this.Locale.MDY_YEAR_POSITION-1],D[this.Locale.MDY_MONTH_POSITION-1],D= [this.Locale.MDY_DAY_POSITION-1]];=0A= A.type=3DYAHOO.widget.Calendar.DATE;}for(var = B=3D0;B0)?this.pages[0].cfg.getProperty(D):[];this.cfg.se= tProperty(D,B,true);};YAHOO.widget.CalendarGroup.prototype.delegateConfig= =3Dfunction(B,A,E){var F=3DA[0];var D;for(var = C=3D0;C0){C+=3D1;}D.setYe= ar(C);}};YAHOO.widget.CalendarGroup.prototype.render=3Dfunction(){this.re= nderHeader();for(var B=3D0;B=3D0;--B){var = A=3Dthis.pages[B];A.previousMonth();}};YAHOO.widget.CalendarGroup.prototy= pe.nextYear=3Dfunction(){for(var B=3D0;B11)){var = B=3DYAHOO.widget.DateMath;var = A=3DB.add(C,B.MONTH,D-C.getMonth());C.setTime(A.getTime());}else{C.setMon= th(D);}};YAHOO.widget.CalendarGroup.prototype._fixWidth=3Dfunction(){var = B=3Dthis.oDomContainer.offsetWidth;var A=3D0;for(var = D=3D0;D0){this.oDomCont= ainer.style.width=3DA+"px";}};YAHOO.widget.CalendarGroup.CSS_CONTAINER=3D= "yui-calcontainer";YAHOO.widget.CalendarGroup.CSS_MULTI_UP=3D"multi";YAHO= O.widget.CalendarGroup.CSS_2UPTITLE=3D"title";YAHOO.widget.CalendarGroup.= CSS_2UPCLOSE=3D"close-icon";YAHOO.lang.augmentProto(YAHOO.widget.Calendar= Group,YAHOO.widget.Calendar,"buildDayLabel","buildMonthLabel","renderOutO= fBoundsDate","renderRowHeader","renderRowFooter","renderCellDefault","sty= leCellDefault","renderCellStyleHighlight1","renderCellStyleHighlight2","r= enderCellStyleHighlight3","renderCellStyleHighlight4","renderCellStyleTod= ay","renderCellStyleSelected","renderCellNotThisMonth","renderBodyCellRes= tricted","initStyles","configTitle","configClose","configIframe","createT= itleBar","createCloseButton","removeTitleBar","removeCloseButton","hide",= "browser");YAHOO.widget.CalendarGroup._DEFAULT_CONFIG=3DYAHOO.widget.Cale= ndar._DEFAULT_CONFIG;YAHOO.widget.CalendarGroup._DEFAULT_CONFIG.PAGES=3D{= key:"pages",value:2};YAHOO.widget.CalendarGroup.prototype.toString=3Dfunc= tion(){return"CalendarGroup = "+this.id;};YAHOO.widget.CalGrp=3DYAHOO.widget.CalendarGroup;YAHOO.widget= .Calendar2up=3Dfunction(C,A,B){this.init(C,A,B);};YAHOO.extend(YAHOO.widg= et.Calendar2up,YAHOO.widget.CalendarGroup);YAHOO.widget.Cal2up=3DYAHOO.wi= dget.Calendar2up;YAHOO.register("calendar",YAHOO.widget.Calendar,{version= :"2.3.1",build:"541"}); ------=_NextPart_000_00C1_01C8E336.6DBBC320 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.museum-neuchatel.ch/new/js/yui/build/menu/menu-min.js /*=0A= Copyright (c) 2007, Yahoo! Inc. All rights reserved.=0A= Code licensed under the BSD License:=0A= http://developer.yahoo.net/yui/license.txt=0A= version: 2.3.0=0A= */=0A= =0A= (function(){var = Dom=3DYAHOO.util.Dom,Event=3DYAHOO.util.Event;YAHOO.widget.MenuManager=3D= function(){var = m_bInitializedEventHandlers=3Dfalse,m_oMenus=3D{},m_oVisibleMenus=3D{},m_= oItems=3D{},m_oEventTypes=3D{"click":"clickEvent","mousedown":"mouseDownE= vent","mouseup":"mouseUpEvent","mouseover":"mouseOverEvent","mouseout":"m= ouseOutEvent","keydown":"keyDownEvent","keyup":"keyUpEvent","keypress":"k= eyPressEvent"},m_oFocusedMenuItem=3Dnull;function = getMenuRootElement(p_oElement){var = oParentNode;if(p_oElement&&p_oElement.tagName){switch(p_oElement.tagName.= toUpperCase()){case"DIV":oParentNode=3Dp_oElement.parentNode;if((Dom.hasC= lass(p_oElement,"hd")||Dom.hasClass(p_oElement,"bd")||Dom.hasClass(p_oEle= ment,"ft"))&&oParentNode&&oParentNode.tagName&&oParentNode.tagName.toUppe= rCase()=3D=3D"DIV")=0A= {return oParentNode;}=0A= else{return p_oElement;}=0A= break;case"LI":return = p_oElement;default:oParentNode=3Dp_oElement.parentNode;if(oParentNode){re= turn getMenuRootElement(oParentNode);}=0A= break;}}}=0A= function onDOMEvent(p_oEvent){var = oTarget=3DEvent.getTarget(p_oEvent),oElement=3DgetMenuRootElement(oTarget= ),sCustomEventType,sTagName,sId,oMenuItem,oMenu;if(oElement){sTagName=3Do= Element.tagName.toUpperCase();if(sTagName=3D=3D"LI"){sId=3DoElement.id;if= (sId&&m_oItems[sId]){oMenuItem=3Dm_oItems[sId];oMenu=3DoMenuItem.parent;}= }=0A= else = if(sTagName=3D=3D"DIV"){if(oElement.id){oMenu=3Dm_oMenus[oElement.id];}}}=0A= if(oMenu){sCustomEventType=3Dm_oEventTypes[p_oEvent.type];if(oMenuItem&&!= oMenuItem.cfg.getProperty("disabled")){oMenuItem[sCustomEventType].fire(p= _oEvent);if(p_oEvent.type=3D=3D"keyup"||p_oEvent.type=3D=3D"mousedown")=0A= {if(m_oFocusedMenuItem!=3DoMenuItem){if(m_oFocusedMenuItem){m_oFocusedMen= uItem.blurEvent.fire();}=0A= oMenuItem.focusEvent.fire();}}}=0A= oMenu[sCustomEventType].fire(p_oEvent,oMenuItem);}=0A= else = if(p_oEvent.type=3D=3D"mousedown"){if(m_oFocusedMenuItem){m_oFocusedMenuI= tem.blurEvent.fire();m_oFocusedMenuItem=3Dnull;}=0A= for(var i in = m_oMenus){if(YAHOO.lang.hasOwnProperty(m_oMenus,i)){oMenu=3Dm_oMenus[i];i= f(oMenu.cfg.getProperty("clicktohide")&&!(oMenu instanceof = YAHOO.widget.MenuBar)&&oMenu.cfg.getProperty("position")=3D=3D"dynamic"){= oMenu.hide();}=0A= else{oMenu.clearActiveItem(true);}}}}=0A= else = if(p_oEvent.type=3D=3D"keyup"){if(m_oFocusedMenuItem){m_oFocusedMenuItem.= blurEvent.fire();m_oFocusedMenuItem=3Dnull;}}}=0A= function = onMenuDestroy(p_sType,p_aArgs,p_oMenu){if(m_oMenus[p_oMenu.id]){this.remo= veMenu(p_oMenu);}}=0A= function onMenuFocus(p_sType,p_aArgs){var = oItem=3Dp_aArgs[0];if(oItem){m_oFocusedMenuItem=3DoItem;}}=0A= function onMenuBlur(p_sType,p_aArgs){m_oFocusedMenuItem=3Dnull;}=0A= function onMenuVisibleConfigChange(p_sType,p_aArgs){var = bVisible=3Dp_aArgs[0],sId=3Dthis.id;if(bVisible){m_oVisibleMenus[sId]=3Dt= his;}=0A= else if(m_oVisibleMenus[sId]){delete m_oVisibleMenus[sId];}}=0A= function onItemDestroy(p_sType,p_aArgs){var = sId=3Dthis.id;if(sId&&m_oItems[sId]){if(m_oFocusedMenuItem=3D=3Dthis){m_o= FocusedMenuItem=3Dnull;}=0A= delete m_oItems[sId];}}=0A= function onItemAdded(p_sType,p_aArgs){var = oItem=3Dp_aArgs[0],sId;if(oItem instanceof = YAHOO.widget.MenuItem){sId=3DoItem.id;if(!m_oItems[sId]){m_oItems[sId]=3D= oItem;oItem.destroyEvent.subscribe(onItemDestroy);}}}=0A= return{addMenu:function(p_oMenu){var oDoc;if(p_oMenu instanceof = YAHOO.widget.Menu&&p_oMenu.id&&!m_oMenus[p_oMenu.id]){m_oMenus[p_oMenu.id= ]=3Dp_oMenu;if(!m_bInitializedEventHandlers){oDoc=3Ddocument;Event.on(oDo= c,"mouseover",onDOMEvent,this,true);Event.on(oDoc,"mouseout",onDOMEvent,t= his,true);Event.on(oDoc,"mousedown",onDOMEvent,this,true);Event.on(oDoc,"= mouseup",onDOMEvent,this,true);Event.on(oDoc,"click",onDOMEvent,this,true= );Event.on(oDoc,"keydown",onDOMEvent,this,true);Event.on(oDoc,"keyup",onD= OMEvent,this,true);Event.on(oDoc,"keypress",onDOMEvent,this,true);m_bInit= ializedEventHandlers=3Dtrue;}=0A= p_oMenu.destroyEvent.subscribe(onMenuDestroy,p_oMenu,this);p_oMenu.cfg.su= bscribeToConfigEvent("visible",onMenuVisibleConfigChange);p_oMenu.itemAdd= edEvent.subscribe(onItemAdded);p_oMenu.focusEvent.subscribe(onMenuFocus);= p_oMenu.blurEvent.subscribe(onMenuBlur);}},removeMenu:function(p_oMenu){v= ar = sId;if(p_oMenu){sId=3Dp_oMenu.id;if(m_oMenus[sId]=3D=3Dp_oMenu){delete = m_oMenus[sId];if(m_oVisibleMenus[sId]=3D=3Dp_oMenu){delete = m_oVisibleMenus[sId];}}}},hideVisible:function(){var oMenu;for(var i in = m_oVisibleMenus){if(YAHOO.lang.hasOwnProperty(m_oVisibleMenus,i)){oMenu=3D= m_oVisibleMenus[i];if(!(oMenu instanceof = YAHOO.widget.MenuBar)&&oMenu.cfg.getProperty("position")=3D=3D"dynamic"){= oMenu.hide();}}}},getMenus:function(){return = m_oMenus;},getMenu:function(p_sId){var = oMenu=3Dm_oMenus[p_sId];if(oMenu){return = oMenu;}},getMenuItem:function(p_sId){var = oItem=3Dm_oItems[p_sId];if(oItem){return = oItem;}},getMenuItemGroup:function(p_sId){var = oUL=3DDom.get(p_sId),aItems,oNode,oItem,sId;if(oUL&&oUL.tagName&&oUL.tagN= ame.toUpperCase()=3D=3D"UL"){oNode=3DoUL.firstChild;if(oNode){aItems=3D[]= ;do{sId=3DoNode.id;if(sId){oItem=3Dthis.getMenuItem(sId);if(oItem){aItems= [aItems.length]=3DoItem;}}}=0A= while((oNode=3DoNode.nextSibling));if(aItems.length>0){return = aItems;}}}},getFocusedMenuItem:function(){return = m_oFocusedMenuItem;},getFocusedMenu:function(){if(m_oFocusedMenuItem){ret= urn(m_oFocusedMenuItem.parent.getRoot());}},toString:function(){return"Me= nuManager";}};}();})();(function(){YAHOO.widget.Menu=3Dfunction(p_oElemen= t,p_oConfig){if(p_oConfig){this.parent=3Dp_oConfig.parent;this.lazyLoad=3D= p_oConfig.lazyLoad||p_oConfig.lazyload;this.itemData=3Dp_oConfig.itemData= ||p_oConfig.itemdata;}=0A= YAHOO.widget.Menu.superclass.constructor.call(this,p_oElement,p_oConfig);= };function checkPosition(p_sPosition){if(typeof = p_sPosition=3D=3D"string"){return("dynamic,static".indexOf((p_sPosition.t= oLowerCase()))!=3D-1);}}=0A= var = Dom=3DYAHOO.util.Dom,Event=3DYAHOO.util.Event,Module=3DYAHOO.widget.Modul= e,Overlay=3DYAHOO.widget.Overlay,Menu=3DYAHOO.widget.Menu,MenuManager=3DY= AHOO.widget.MenuManager,CustomEvent=3DYAHOO.util.CustomEvent,Lang=3DYAHOO= .lang,m_oShadowTemplate,EVENT_TYPES=3D{"MOUSE_OVER":"mouseover","MOUSE_OU= T":"mouseout","MOUSE_DOWN":"mousedown","MOUSE_UP":"mouseup","CLICK":"clic= k","KEY_PRESS":"keypress","KEY_DOWN":"keydown","KEY_UP":"keyup","FOCUS":"= focus","BLUR":"blur","ITEM_ADDED":"itemAdded","ITEM_REMOVED":"itemRemoved= "},DEFAULT_CONFIG=3D{"VISIBLE":{key:"visible",value:false,validator:Lang.= isBoolean},"CONSTRAIN_TO_VIEWPORT":{key:"constraintoviewport",value:true,= validator:Lang.isBoolean,supercedes:["iframe","x","y","xy"]},"POSITION":{= key:"position",value:"dynamic",validator:checkPosition,supercedes:["visib= le","iframe"]},"SUBMENU_ALIGNMENT":{key:"submenualignment",value:["tl","t= r"]},"AUTO_SUBMENU_DISPLAY":{key:"autosubmenudisplay",value:true,validato= r:Lang.isBoolean},"SHOW_DELAY":{key:"showdelay",value:250,validator:Lang.= isNumber},"HIDE_DELAY":{key:"hidedelay",value:0,validator:Lang.isNumber,s= uppressEvent:true},"SUBMENU_HIDE_DELAY":{key:"submenuhidedelay",value:250= ,validator:Lang.isNumber},"CLICK_TO_HIDE":{key:"clicktohide",value:true,v= alidator:Lang.isBoolean},"CONTAINER":{key:"container"},"MAX_HEIGHT":{key:= "maxheight",value:0,validator:Lang.isNumber,supercedes:["iframe"]},"CLASS= _NAME":{key:"classname",value:null,validator:Lang.isString},"DISABLED":{k= ey:"disabled",value:false,validator:Lang.isBoolean}};YAHOO.lang.extend(Me= nu,Overlay,{CSS_CLASS_NAME:"yuimenu",ITEM_TYPE:null,GROUP_TITLE_TAG_NAME:= "h6",_nHideDelayId:null,_nShowDelayId:null,_nSubmenuHideDelayId:null,_nBo= dyScrollId:null,_bHideDelayEventHandlersAssigned:false,_bHandledMouseOver= Event:false,_bHandledMouseOutEvent:false,_aGroupTitleElements:null,_aItem= Groups:null,_aListElements:null,_nCurrentMouseX:0,_nMaxHeight:-1,_bStopMo= useEventHandlers:false,_sClassName:null,_bDisabled:false,lazyLoad:false,i= temData:null,activeItem:null,parent:null,srcElement:null,mouseOverEvent:n= ull,mouseOutEvent:null,mouseDownEvent:null,mouseUpEvent:null,clickEvent:n= ull,keyPressEvent:null,keyDownEvent:null,keyUpEvent:null,itemAddedEvent:n= ull,itemRemovedEvent:null,init:function(p_oElement,p_oConfig){this._aItem= Groups=3D[];this._aListElements=3D[];this._aGroupTitleElements=3D[];if(!t= his.ITEM_TYPE){this.ITEM_TYPE=3DYAHOO.widget.MenuItem;}=0A= var oElement;if(typeof = p_oElement=3D=3D"string"){oElement=3Ddocument.getElementById(p_oElement);= }=0A= else if(p_oElement.tagName){oElement=3Dp_oElement;}=0A= if(oElement&&oElement.tagName){switch(oElement.tagName.toUpperCase()){cas= e"DIV":this.srcElement=3DoElement;if(!oElement.id){oElement.setAttribute(= "id",Dom.generateId());}=0A= Menu.superclass.init.call(this,oElement);this.beforeInitEvent.fire(Menu);= break;case"SELECT":this.srcElement=3DoElement;Menu.superclass.init.call(t= his,Dom.generateId());this.beforeInitEvent.fire(Menu);break;}}=0A= else{Menu.superclass.init.call(this,p_oElement);this.beforeInitEvent.fire= (Menu);}=0A= if(this.element){Dom.addClass(this.element,this.CSS_CLASS_NAME);this.init= Event.subscribe(this._onInit);this.beforeRenderEvent.subscribe(this._onBe= foreRender);this.renderEvent.subscribe(this._onRender);this.renderEvent.s= ubscribe(this.onRender);this.beforeShowEvent.subscribe(this._onBeforeShow= );this.showEvent.subscribe(this._onShow);this.beforeHideEvent.subscribe(t= his._onBeforeHide);this.hideEvent.subscribe(this._onHide);this.mouseOverE= vent.subscribe(this._onMouseOver);this.mouseOutEvent.subscribe(this._onMo= useOut);this.clickEvent.subscribe(this._onClick);this.keyDownEvent.subscr= ibe(this._onKeyDown);this.keyPressEvent.subscribe(this._onKeyPress);Modul= e.textResizeEvent.subscribe(this._onTextResize,this,true);if(p_oConfig){t= his.cfg.applyConfig(p_oConfig,true);}=0A= MenuManager.addMenu(this);this.initEvent.fire(Menu);}},_initSubTree:funct= ion(){var = oSrcElement=3Dthis.srcElement,sSrcElementTagName,nGroup,sGroupTitleTagNam= e,oNode,aListElements,nListElements,i;if(oSrcElement){sSrcElementTagName=3D= (oSrcElement.tagName&&oSrcElement.tagName.toUpperCase());if(sSrcElementTa= gName=3D=3D"DIV"){oNode=3Dthis.body.firstChild;if(oNode){nGroup=3D0;sGrou= pTitleTagName=3Dthis.GROUP_TITLE_TAG_NAME.toUpperCase();do{if(oNode&&oNod= e.tagName){switch(oNode.tagName.toUpperCase()){case = sGroupTitleTagName:this._aGroupTitleElements[nGroup]=3DoNode;break;case"U= L":this._aListElements[nGroup]=3DoNode;this._aItemGroups[nGroup]=3D[];nGr= oup++;break;}}}=0A= while((oNode=3DoNode.nextSibling));if(this._aListElements[0]){Dom.addClas= s(this._aListElements[0],"first-of-type");}}}=0A= oNode=3Dnull;if(sSrcElementTagName){switch(sSrcElementTagName){case"DIV":= aListElements=3Dthis._aListElements;nListElements=3DaListElements.length;= if(nListElements>0){i=3DnListElements-1;do{oNode=3DaListElements[i].first= Child;if(oNode){do{if(oNode&&oNode.tagName&&oNode.tagName.toUpperCase()=3D= =3D"LI"){this.addItem(new this.ITEM_TYPE(oNode,{parent:this}),i);}}=0A= while((oNode=3DoNode.nextSibling));}}=0A= while(i--);}=0A= break;case"SELECT":oNode=3DoSrcElement.firstChild;do{if(oNode&&oNode.tagN= ame){switch(oNode.tagName.toUpperCase()){case"OPTGROUP":case"OPTION":this= .addItem(new this.ITEM_TYPE(oNode,{parent:this}));break;}}}=0A= while((oNode=3DoNode.nextSibling));break;}}}},_getFirstEnabledItem:functi= on(){var aItems=3Dthis.getItems(),nItems=3DaItems.length,oItem;for(var = i=3D0;i=3DaGroup.length);if(= aGroup[p_nItemIndex]){aGroup.splice(p_nItemIndex,0,oItem);}=0A= else{aGroup[p_nItemIndex]=3DoItem;}=0A= oGroupItem=3DaGroup[p_nItemIndex];if(oGroupItem){if(bAppend&&(!oGroupItem= .element.parentNode||oGroupItem.element.parentNode.nodeType=3D=3D11)){thi= s._aListElements[nGroupIndex].appendChild(oGroupItem.element);}=0A= else{oNextItemSibling=3DgetNextItemSibling(aGroup,(p_nItemIndex+1));if(oN= extItemSibling&&(!oGroupItem.element.parentNode||oGroupItem.element.paren= tNode.nodeType=3D=3D11)){this._aListElements[nGroupIndex].insertBefore(oG= roupItem.element,oNextItemSibling.element);}}=0A= oGroupItem.parent=3Dthis;this._subscribeToItemEvents(oGroupItem);this._co= nfigureSubmenu(oGroupItem);this._updateItemProperties(nGroupIndex);this.i= temAddedEvent.fire(oGroupItem);this.changeContentEvent.fire();return = oGroupItem;}}=0A= else{nItemIndex=3DaGroup.length;aGroup[nItemIndex]=3DoItem;oGroupItem=3Da= Group[nItemIndex];if(oGroupItem){if(!Dom.isAncestor(this._aListElements[n= GroupIndex],oGroupItem.element)){this._aListElements[nGroupIndex].appendC= hild(oGroupItem.element);}=0A= oGroupItem.element.setAttribute("groupindex",nGroupIndex);oGroupItem.elem= ent.setAttribute("index",nItemIndex);oGroupItem.parent=3Dthis;oGroupItem.= index=3DnItemIndex;oGroupItem.groupIndex=3DnGroupIndex;this._subscribeToI= temEvents(oGroupItem);this._configureSubmenu(oGroupItem);if(nItemIndex=3D= =3D=3D0){Dom.addClass(oGroupItem.element,"first-of-type");}=0A= this.itemAddedEvent.fire(oGroupItem);this.changeContentEvent.fire();retur= n = oGroupItem;}}}},_removeItemFromGroupByIndex:function(p_nGroupIndex,p_nIte= mIndex){var nGroupIndex=3Dtypeof = p_nGroupIndex=3D=3D"number"?p_nGroupIndex:0,aGroup=3Dthis._getItemGroup(n= GroupIndex),aArray,oItem,oUL;if(aGroup){aArray=3DaGroup.splice(p_nItemInd= ex,1);oItem=3DaArray[0];if(oItem){this._updateItemProperties(nGroupIndex)= ;if(aGroup.length=3D=3D=3D0){oUL=3Dthis._aListElements[nGroupIndex];if(th= is.body&&oUL){this.body.removeChild(oUL);}=0A= this._aItemGroups.splice(nGroupIndex,1);this._aListElements.splice(nGroup= Index,1);oUL=3Dthis._aListElements[0];if(oUL){Dom.addClass(oUL,"first-of-= type");}}=0A= this.itemRemovedEvent.fire(oItem);this.changeContentEvent.fire();return = oItem;}}},_removeItemFromGroupByValue:function(p_nGroupIndex,p_oItem){var= = aGroup=3Dthis._getItemGroup(p_nGroupIndex),nItems,nItemIndex,i;if(aGroup)= {nItems=3DaGroup.length;nItemIndex=3D-1;if(nItems>0){i=3DnItems-1;do{if(a= Group[i]=3D=3Dp_oItem){nItemIndex=3Di;break;}}=0A= while(i--);if(nItemIndex>-1){return(this._removeItemFromGroupByIndex(p_nG= roupIndex,nItemIndex));}}}},_updateItemProperties:function(p_nGroupIndex)= {var = aGroup=3Dthis._getItemGroup(p_nGroupIndex),nItems=3DaGroup.length,oItem,o= LI,i;if(nItems>0){i=3DnItems-1;do{oItem=3DaGroup[i];if(oItem){oLI=3DoItem= .element;oItem.index=3Di;oItem.groupIndex=3Dp_nGroupIndex;oLI.setAttribut= e("groupindex",p_nGroupIndex);oLI.setAttribute("index",i);Dom.removeClass= (oLI,"first-of-type");}}=0A= while(i--);if(oLI){Dom.addClass(oLI,"first-of-type");}}},_createItemGroup= :function(p_nIndex){var = oUL;if(!this._aItemGroups[p_nIndex]){this._aItemGroups[p_nIndex]=3D[];oUL= =3Ddocument.createElement("ul");this._aListElements[p_nIndex]=3DoUL;retur= n this._aItemGroups[p_nIndex];}},_getItemGroup:function(p_nIndex){var = nIndex=3D((typeof p_nIndex=3D=3D"number")?p_nIndex:0);return = this._aItemGroups[nIndex];},_configureSubmenu:function(p_oItem){var = oSubmenu=3Dp_oItem.cfg.getProperty("submenu");if(oSubmenu){this.cfg.confi= gChangedEvent.subscribe(this._onParentMenuConfigChange,oSubmenu,true);thi= s.renderEvent.subscribe(this._onParentMenuRender,oSubmenu,true);oSubmenu.= beforeShowEvent.subscribe(this._onSubmenuBeforeShow,null,oSubmenu);oSubme= nu.showEvent.subscribe(this._onSubmenuShow,null,p_oItem);oSubmenu.hideEve= nt.subscribe(this._onSubmenuHide,null,p_oItem);}},_subscribeToItemEvents:= function(p_oItem){p_oItem.focusEvent.subscribe(this._onMenuItemFocus);p_o= Item.blurEvent.subscribe(this._onMenuItemBlur);p_oItem.cfg.configChangedE= vent.subscribe(this._onMenuItemConfigChange,p_oItem,this);},_getOffsetWid= th:function(){var = oClone=3Dthis.element.cloneNode(true);Dom.removeClass(oClone,"visible");D= om.setStyle(oClone,"width","");document.body.appendChild(oClone);var = sWidth=3DoClone.offsetWidth;document.body.removeChild(oClone);return = sWidth;},_setWidth:function(){var = oElement=3Dthis.element,bVisible=3Dfalse,sWidth;if(oElement.parentNode.ta= gName.toUpperCase()=3D=3D"BODY"){if(YAHOO.env.ua.opera){sWidth=3Dthis._ge= tOffsetWidth();}=0A= else{if(Dom.hasClass(oElement,"visible")){bVisible=3Dtrue;Dom.removeClass= (oElement,"visible");}=0A= Dom.setStyle(oElement,"width","auto");sWidth=3DoElement.offsetWidth;}}=0A= else{sWidth=3Dthis._getOffsetWidth();}=0A= this.cfg.setProperty("width",(sWidth+"px"));if(bVisible){Dom.addClass(oEl= ement,"visible");}},_onWidthChange:function(p_sType,p_aArgs){var = sWidth=3Dp_aArgs[0];if(sWidth&&!this._hasSetWidthHandlers){this.itemAdded= Event.subscribe(this._setWidth);this.itemRemovedEvent.subscribe(this._set= Width);this._hasSetWidthHandlers=3Dtrue;}=0A= else = if(this._hasSetWidthHandlers){this.itemAddedEvent.unsubscribe(this._setWi= dth);this.itemRemovedEvent.unsubscribe(this._setWidth);this._hasSetWidthH= andlers=3Dfalse;}},_onVisibleChange:function(p_sType,p_aArgs){var = bVisible=3Dp_aArgs[0];if(bVisible){Dom.addClass(this.element,"visible");}=0A= else{Dom.removeClass(this.element,"visible");}},_cancelHideDelay:function= (){var = oRoot=3Dthis.getRoot();if(oRoot._nHideDelayId){window.clearTimeout(oRoot.= _nHideDelayId);}},_execHideDelay:function(){this._cancelHideDelay();var = oRoot=3Dthis.getRoot(),me=3Dthis;function = hideMenu(){if(oRoot.activeItem){oRoot.clearActiveItem();}=0A= if(oRoot=3D=3Dme&&!(me instanceof = YAHOO.widget.MenuBar)&&me.cfg.getProperty("position")=3D=3D"dynamic"){me.= hide();}}=0A= oRoot._nHideDelayId=3Dwindow.setTimeout(hideMenu,oRoot.cfg.getProperty("h= idedelay"));},_cancelShowDelay:function(){var = oRoot=3Dthis.getRoot();if(oRoot._nShowDelayId){window.clearTimeout(oRoot.= _nShowDelayId);}},_execShowDelay:function(p_oMenu){var = oRoot=3Dthis.getRoot();function = showMenu(){if(p_oMenu.parent.cfg.getProperty("selected")){p_oMenu.show();= }}=0A= oRoot._nShowDelayId=3Dwindow.setTimeout(showMenu,oRoot.cfg.getProperty("s= howdelay"));},_execSubmenuHideDelay:function(p_oSubmenu,p_nMouseX,p_nHide= Delay){var = me=3Dthis;p_oSubmenu._nSubmenuHideDelayId=3Dwindow.setTimeout(function(){= if(me._nCurrentMouseX>(p_nMouseX+10)){p_oSubmenu._nSubmenuHideDelayId=3Dw= indow.setTimeout(function(){p_oSubmenu.hide();},p_nHideDelay);}=0A= else{p_oSubmenu.hide();}},50);},_disableScrollHeader:function(){if(!this.= _bHeaderDisabled){Dom.addClass(this.header,"topscrollbar_disabled");this.= _bHeaderDisabled=3Dtrue;}},_disableScrollFooter:function(){if(!this._bFoo= terDisabled){Dom.addClass(this.footer,"bottomscrollbar_disabled");this._b= FooterDisabled=3Dtrue;}},_enableScrollHeader:function(){if(this._bHeaderD= isabled){Dom.removeClass(this.header,"topscrollbar_disabled");this._bHead= erDisabled=3Dfalse;}},_enableScrollFooter:function(){if(this._bFooterDisa= bled){Dom.removeClass(this.footer,"bottomscrollbar_disabled");this._bFoot= erDisabled=3Dfalse;}},_onMouseOver:function(p_sType,p_aArgs){if(this._bSt= opMouseEventHandlers){return false;}=0A= var = oEvent=3Dp_aArgs[0],oItem=3Dp_aArgs[1],oTarget=3DEvent.getTarget(oEvent),= oParentMenu,nShowDelay,bShowDelay,oActiveItem,oItemCfg,oSubmenu;if(!this.= _bHandledMouseOverEvent&&(oTarget=3D=3Dthis.element||Dom.isAncestor(this.= element,oTarget))){this._nCurrentMouseX=3D0;Event.on(this.element,"mousem= ove",this._onMouseMove,this,true);this.clearActiveItem();if(this.parent&&= this._nSubmenuHideDelayId){window.clearTimeout(this._nSubmenuHideDelayId)= ;this.parent.cfg.setProperty("selected",true);oParentMenu=3Dthis.parent.p= arent;oParentMenu._bHandledMouseOutEvent=3Dtrue;oParentMenu._bHandledMous= eOverEvent=3Dfalse;}=0A= this._bHandledMouseOverEvent=3Dtrue;this._bHandledMouseOutEvent=3Dfalse;}=0A= if(oItem&&!oItem.handledMouseOverEvent&&!oItem.cfg.getProperty("disabled"= )&&(oTarget=3D=3DoItem.element||Dom.isAncestor(oItem.element,oTarget))){n= ShowDelay=3Dthis.cfg.getProperty("showdelay");bShowDelay=3D(nShowDelay>0)= ;if(bShowDelay){this._cancelShowDelay();}=0A= oActiveItem=3Dthis.activeItem;if(oActiveItem){oActiveItem.cfg.setProperty= ("selected",false);}=0A= oItemCfg=3DoItem.cfg;oItemCfg.setProperty("selected",true);if(this.hasFoc= us()){oItem.focus();}=0A= if(this.cfg.getProperty("autosubmenudisplay")){oSubmenu=3DoItemCfg.getPro= perty("submenu");if(oSubmenu){if(bShowDelay){this._execShowDelay(oSubmenu= );}=0A= else{oSubmenu.show();}}}=0A= oItem.handledMouseOverEvent=3Dtrue;oItem.handledMouseOutEvent=3Dfalse;}},= _onMouseOut:function(p_sType,p_aArgs){if(this._bStopMouseEventHandlers){r= eturn false;}=0A= var = oEvent=3Dp_aArgs[0],oItem=3Dp_aArgs[1],oRelatedTarget=3DEvent.getRelatedT= arget(oEvent),bMovingToSubmenu=3Dfalse,oItemCfg,oSubmenu,nSubmenuHideDela= y,nShowDelay;if(oItem&&!oItem.cfg.getProperty("disabled")){oItemCfg=3DoIt= em.cfg;oSubmenu=3DoItemCfg.getProperty("submenu");if(oSubmenu&&(oRelatedT= arget=3D=3DoSubmenu.element||Dom.isAncestor(oSubmenu.element,oRelatedTarg= et))){bMovingToSubmenu=3Dtrue;}=0A= if(!oItem.handledMouseOutEvent&&((oRelatedTarget!=3DoItem.element&&!Dom.i= sAncestor(oItem.element,oRelatedTarget))||bMovingToSubmenu)){if(!bMovingT= oSubmenu){oItem.cfg.setProperty("selected",false);if(oSubmenu){nSubmenuHi= deDelay=3Dthis.cfg.getProperty("submenuhidedelay");nShowDelay=3Dthis.cfg.= getProperty("showdelay");if(!(this instanceof = YAHOO.widget.MenuBar)&&nSubmenuHideDelay>0&&nShowDelay>=3DnSubmenuHideDel= ay){this._execSubmenuHideDelay(oSubmenu,Event.getPageX(oEvent),nSubmenuHi= deDelay);}=0A= else{oSubmenu.hide();}}}=0A= oItem.handledMouseOutEvent=3Dtrue;oItem.handledMouseOverEvent=3Dfalse;}}=0A= if(!this._bHandledMouseOutEvent&&((oRelatedTarget!=3Dthis.element&&!Dom.i= sAncestor(this.element,oRelatedTarget))||bMovingToSubmenu)){Event.removeL= istener(this.element,"mousemove",this._onMouseMove);this._nCurrentMouseX=3D= Event.getPageX(oEvent);this._bHandledMouseOutEvent=3Dtrue;this._bHandledM= ouseOverEvent=3Dfalse;}},_onMouseMove:function(p_oEvent,p_oMenu){if(this.= _bStopMouseEventHandlers){return false;}=0A= this._nCurrentMouseX=3DEvent.getPageX(p_oEvent);},_onClick:function(p_sTy= pe,p_aArgs){var = oEvent=3Dp_aArgs[0],oItem=3Dp_aArgs[1],oTarget,oItemCfg,oSubmenu,sURL,oRo= ot;if(oItem&&!oItem.cfg.getProperty("disabled")){oTarget=3DEvent.getTarge= t(oEvent);oItemCfg=3DoItem.cfg;oSubmenu=3DoItemCfg.getProperty("submenu")= ;if(oTarget=3D=3DoItem.submenuIndicator&&oSubmenu){if(oSubmenu.cfg.getPro= perty("visible")){oSubmenu.hide();oSubmenu.parent.focus();}=0A= else{this.clearActiveItem();oItemCfg.setProperty("selected",true);oSubmen= u.show();oSubmenu.setInitialFocus();}=0A= Event.preventDefault(oEvent);}=0A= else{sURL=3DoItemCfg.getProperty("url");if((sURL.substr((sURL.length-1),1= )=3D=3D"#")){Event.preventDefault(oEvent);oItem.focus();}=0A= if(!oSubmenu){oRoot=3Dthis.getRoot();if(oRoot instanceof = YAHOO.widget.MenuBar||oRoot.cfg.getProperty("position")=3D=3D"static"){oR= oot.clearActiveItem();}=0A= else = if(oRoot.cfg.getProperty("clicktohide")){oRoot.hide();}}}}},_onKeyDown:fu= nction(p_sType,p_aArgs){var = oEvent=3Dp_aArgs[0],oItem=3Dp_aArgs[1],me=3Dthis,oSubmenu,oItemCfg,oParen= tItem,oRoot,oNextItem,oBody,nBodyScrollTop,nBodyOffsetHeight,aItems,nItem= s,nNextItemOffsetTop,nScrollTarget,oParentMenu;function = stopMouseEventHandlers(){me._bStopMouseEventHandlers=3Dtrue;window.setTim= eout(function(){me._bStopMouseEventHandlers=3Dfalse;},10);}=0A= if(oItem&&!oItem.cfg.getProperty("disabled")){oItemCfg=3DoItem.cfg;oParen= tItem=3Dthis.parent;switch(oEvent.keyCode){case 38:case = 40:oNextItem=3D(oEvent.keyCode=3D=3D38)?oItem.getPreviousEnabledSibling()= :oItem.getNextEnabledSibling();if(oNextItem){this.clearActiveItem();oNext= Item.cfg.setProperty("selected",true);oNextItem.focus();if(this.cfg.getPr= operty("maxheight")>0){oBody=3Dthis.body;nBodyScrollTop=3DoBody.scrollTop= ;nBodyOffsetHeight=3DoBody.offsetHeight;aItems=3Dthis.getItems();nItems=3D= aItems.length-1;nNextItemOffsetTop=3DoNextItem.element.offsetTop;if(oEven= t.keyCode=3D=3D40){if(nNextItemOffsetTop>=3D(nBodyOffsetHeight+nBodyScrol= lTop)){oBody.scrollTop=3DnNextItemOffsetTop-nBodyOffsetHeight;}=0A= else if(nNextItemOffsetTop<=3DnBodyScrollTop){oBody.scrollTop=3D0;}=0A= if(oNextItem=3D=3DaItems[nItems]){oBody.scrollTop=3DoNextItem.element.off= setTop;}}=0A= else{if(nNextItemOffsetTop<=3DnBodyScrollTop){oBody.scrollTop=3DnNextItem= OffsetTop-oNextItem.element.offsetHeight;}=0A= else = if(nNextItemOffsetTop>=3D(nBodyScrollTop+nBodyOffsetHeight)){oBody.scroll= Top=3DnNextItemOffsetTop;}=0A= if(oNextItem=3D=3DaItems[0]){oBody.scrollTop=3D0;}}=0A= nBodyScrollTop=3DoBody.scrollTop;nScrollTarget=3DoBody.scrollHeight-oBody= .offsetHeight;if(nBodyScrollTop=3D=3D=3D0){this._disableScrollHeader();th= is._enableScrollFooter();}=0A= else = if(nBodyScrollTop=3D=3DnScrollTarget){this._enableScrollHeader();this._di= sableScrollFooter();}=0A= else{this._enableScrollHeader();this._enableScrollFooter();}}}=0A= Event.preventDefault(oEvent);stopMouseEventHandlers();break;case = 39:oSubmenu=3DoItemCfg.getProperty("submenu");if(oSubmenu){if(!oItemCfg.g= etProperty("selected")){oItemCfg.setProperty("selected",true);}=0A= oSubmenu.show();oSubmenu.setInitialFocus();oSubmenu.setInitialSelection()= ;}=0A= else{oRoot=3Dthis.getRoot();if(oRoot instanceof = YAHOO.widget.MenuBar){oNextItem=3DoRoot.activeItem.getNextEnabledSibling(= );if(oNextItem){oRoot.clearActiveItem();oNextItem.cfg.setProperty("select= ed",true);oSubmenu=3DoNextItem.cfg.getProperty("submenu");if(oSubmenu){oS= ubmenu.show();}=0A= oNextItem.focus();}}}=0A= Event.preventDefault(oEvent);stopMouseEventHandlers();break;case = 37:if(oParentItem){oParentMenu=3DoParentItem.parent;if(oParentMenu = instanceof = YAHOO.widget.MenuBar){oNextItem=3DoParentMenu.activeItem.getPreviousEnabl= edSibling();if(oNextItem){oParentMenu.clearActiveItem();oNextItem.cfg.set= Property("selected",true);oSubmenu=3DoNextItem.cfg.getProperty("submenu")= ;if(oSubmenu){oSubmenu.show();}=0A= oNextItem.focus();}}=0A= else{this.hide();oParentItem.focus();}}=0A= Event.preventDefault(oEvent);stopMouseEventHandlers();break;}}=0A= if(oEvent.keyCode=3D=3D27){if(this.cfg.getProperty("position")=3D=3D"dyna= mic"){this.hide();if(this.parent){this.parent.focus();}}=0A= else = if(this.activeItem){oSubmenu=3Dthis.activeItem.cfg.getProperty("submenu")= ;if(oSubmenu&&oSubmenu.cfg.getProperty("visible")){oSubmenu.hide();this.a= ctiveItem.focus();}=0A= else{this.activeItem.blur();this.activeItem.cfg.setProperty("selected",fa= lse);}}=0A= Event.preventDefault(oEvent);}},_onKeyPress:function(p_sType,p_aArgs){var= = oEvent=3Dp_aArgs[0];if(oEvent.keyCode=3D=3D40||oEvent.keyCode=3D=3D38){Ev= ent.preventDefault(oEvent);}},_onTextResize:function(p_sType,p_aArgs,p_oM= enu){if(YAHOO.env.ua.gecko&&!this._handleResize){this._handleResize=3Dtru= e;return;}=0A= var = oConfig=3Dthis.cfg;if(oConfig.getProperty("position")=3D=3D"dynamic"){oCo= nfig.setProperty("width",(this._getOffsetWidth()+"px"));}},_onScrollTarge= tMouseOver:function(p_oEvent,p_oMenu){this._cancelHideDelay();var = oTarget=3DEvent.getTarget(p_oEvent),oBody=3Dthis.body,me=3Dthis,nScrollTa= rget,fnScrollFunction;function scrollBodyDown(){var = nScrollTop=3DoBody.scrollTop;if(nScrollTop0){oBody.scrollTop=3D(nScrollT= op-1);me._enableScrollFooter();}=0A= else{oBody.scrollTop=3D0;window.clearInterval(me._nBodyScrollId);me._disa= bleScrollHeader();}}=0A= if(Dom.hasClass(oTarget,"hd")){fnScrollFunction=3DscrollBodyUp;}=0A= else{nScrollTarget=3DoBody.scrollHeight-oBody.offsetHeight;fnScrollFuncti= on=3DscrollBodyDown;}=0A= this._nBodyScrollId=3Dwindow.setInterval(fnScrollFunction,10);},_onScroll= TargetMouseOut:function(p_oEvent,p_oMenu){window.clearInterval(this._nBod= yScrollId);this._cancelHideDelay();},_onInit:function(p_sType,p_aArgs){th= is.cfg.subscribeToConfigEvent("width",this._onWidthChange);this.cfg.subsc= ribeToConfigEvent("visible",this._onVisibleChange);var = bRootMenu=3D!this.parent,bLazyLoad=3Dthis.lazyLoad;if(((bRootMenu&&!bLazy= Load)||(bRootMenu&&(this.cfg.getProperty("visible")||this.cfg.getProperty= ("position")=3D=3D"static"))||(!bRootMenu&&!bLazyLoad))&&this.getItemGrou= ps().length=3D=3D=3D0){if(this.srcElement){this._initSubTree();}=0A= if(this.itemData){this.addItems(this.itemData);}}=0A= else = if(bLazyLoad){this.cfg.fireQueue();}},_onBeforeRender:function(p_sType,p_= aArgs){var = oConfig=3Dthis.cfg,oEl=3Dthis.element,nListElements=3Dthis._aListElements= .length,bFirstList=3Dtrue,i=3D0,oUL,oGroupTitle;if(nListElements>0){do{oU= L=3Dthis._aListElements[i];if(oUL){if(bFirstList){Dom.addClass(oUL,"first= -of-type");bFirstList=3Dfalse;}=0A= if(!Dom.isAncestor(oEl,oUL)){this.appendToBody(oUL);}=0A= oGroupTitle=3Dthis._aGroupTitleElements[i];if(oGroupTitle){if(!Dom.isAnce= stor(oEl,oGroupTitle)){oUL.parentNode.insertBefore(oGroupTitle,oUL);}=0A= Dom.addClass(oUL,"hastitle");}}=0A= i++;}=0A= while(i=3DnViewportHeight){nMaxHeight=3Dthis.cfg.ge= tProperty("maxheight");this._nMaxHeight=3DnMaxHeight;this.cfg.setProperty= ("maxheight",(nViewportHeight-20));}=0A= if(this.cfg.getProperty("maxheight")>0){oBody=3Dthis.body;if(oBody.scroll= Top>0){oBody.scrollTop=3D0;}=0A= this._disableScrollHeader();this._enableScrollFooter();}}},_onShow:functi= on(p_sType,p_aArgs){var = oParent=3Dthis.parent,oParentMenu,aParentAlignment,aAlignment;function = disableAutoSubmenuDisplay(p_oEvent){var = oTarget;if(p_oEvent.type=3D=3D"mousedown"||(p_oEvent.type=3D=3D"keydown"&= &p_oEvent.keyCode=3D=3D27)){oTarget=3DEvent.getTarget(p_oEvent);if(oTarge= t!=3DoParentMenu.element||!Dom.isAncestor(oParentMenu.element,oTarget)){o= ParentMenu.cfg.setProperty("autosubmenudisplay",false);Event.removeListen= er(document,"mousedown",disableAutoSubmenuDisplay);Event.removeListener(d= ocument,"keydown",disableAutoSubmenuDisplay);}}}=0A= if(oParent){oParentMenu=3DoParent.parent;aParentAlignment=3DoParentMenu.c= fg.getProperty("submenualignment");aAlignment=3Dthis.cfg.getProperty("sub= menualignment");if((aParentAlignment[0]!=3DaAlignment[0])&&(aParentAlignm= ent[1]!=3DaAlignment[1])){this.cfg.setProperty("submenualignment",[aParen= tAlignment[0],aParentAlignment[1]]);}=0A= if(!oParentMenu.cfg.getProperty("autosubmenudisplay")&&(oParentMenu = instanceof = YAHOO.widget.MenuBar||oParentMenu.cfg.getProperty("position")=3D=3D"stati= c")){oParentMenu.cfg.setProperty("autosubmenudisplay",true);Event.on(docu= ment,"mousedown",disableAutoSubmenuDisplay);Event.on(document,"keydown",d= isableAutoSubmenuDisplay);}}},_onBeforeHide:function(p_sType,p_aArgs){var= = oActiveItem=3Dthis.activeItem,oConfig,oSubmenu;if(oActiveItem){oConfig=3D= oActiveItem.cfg;oConfig.setProperty("selected",false);oSubmenu=3DoConfig.= getProperty("submenu");if(oSubmenu){oSubmenu.hide();}}=0A= if(this.getRoot()=3D=3Dthis){this.blur();}},_onHide:function(p_sType,p_aA= rgs){if(this._nMaxHeight!=3D-1){this.cfg.setProperty("maxheight",this._nM= axHeight);this._nMaxHeight=3D-1;}},_onParentMenuConfigChange:function(p_s= Type,p_aArgs,p_oSubmenu){var = sPropertyName=3Dp_aArgs[0][0],oPropertyValue=3Dp_aArgs[0][1];switch(sProp= ertyName){case"iframe":case"constraintoviewport":case"hidedelay":case"sho= wdelay":case"submenuhidedelay":case"clicktohide":case"effect":case"classn= ame":p_oSubmenu.cfg.setProperty(sPropertyName,oPropertyValue);break;}},_o= nParentMenuRender:function(p_sType,p_aArgs,p_oSubmenu){var = oParentMenu=3Dp_oSubmenu.parent.parent,oConfig=3D{constraintoviewport:oPa= rentMenu.cfg.getProperty("constraintoviewport"),xy:[0,0],clicktohide:oPar= entMenu.cfg.getProperty("clicktohide"),effect:oParentMenu.cfg.getProperty= ("effect"),showdelay:oParentMenu.cfg.getProperty("showdelay"),hidedelay:o= ParentMenu.cfg.getProperty("hidedelay"),submenuhidedelay:oParentMenu.cfg.= getProperty("submenuhidedelay"),classname:oParentMenu.cfg.getProperty("cl= assname")},oLI;if(this.cfg.getProperty("position")=3D=3DoParentMenu.cfg.g= etProperty("position")){oConfig.iframe=3DoParentMenu.cfg.getProperty("ifr= ame");}=0A= p_oSubmenu.cfg.applyConfig(oConfig);if(!this.lazyLoad){oLI=3Dthis.parent.= element;if(this.element.parentNode=3D=3DoLI){this.render();}=0A= else{this.render(oLI);}}},_onSubmenuBeforeShow:function(p_sType,p_aArgs){= var = oParent=3Dthis.parent,aAlignment=3DoParent.parent.cfg.getProperty("submen= ualignment");this.cfg.setProperty("context",[oParent.element,aAlignment[0= ],aAlignment[1]]);var = nScrollTop=3DoParent.parent.body.scrollTop;if((YAHOO.env.ua.gecko||YAHOO.= env.ua.webkit)&&nScrollTop>0){this.cfg.setProperty("y",(this.cfg.getPrope= rty("y")-nScrollTop));}},_onSubmenuShow:function(p_sType,p_aArgs){this.su= bmenuIndicator.innerHTML=3Dthis.EXPANDED_SUBMENU_INDICATOR_TEXT;},_onSubm= enuHide:function(p_sType,p_aArgs){this.submenuIndicator.innerHTML=3Dthis.= COLLAPSED_SUBMENU_INDICATOR_TEXT;},_onMenuItemFocus:function(p_sType,p_aA= rgs){this.parent.focusEvent.fire(this);},_onMenuItemBlur:function(p_sType= ,p_aArgs){this.parent.blurEvent.fire(this);},_onMenuItemConfigChange:func= tion(p_sType,p_aArgs,p_oItem){var = sPropertyName=3Dp_aArgs[0][0],oPropertyValue=3Dp_aArgs[0][1],sWidth,oSubm= enu;switch(sPropertyName){case"selected":if(oPropertyValue=3D=3D=3Dtrue){= this.activeItem=3Dp_oItem;}=0A= break;case"submenu":oSubmenu=3Dp_aArgs[0][1];if(oSubmenu){this._configure= Submenu(p_oItem);}=0A= break;case"text":case"helptext":if(this.element.style.width){sWidth=3Dthi= s._getOffsetWidth()+"px";Dom.setStyle(this.element,"width",sWidth);}=0A= break;}},enforceConstraints:function(type,args,obj){var = oParentMenuItem=3Dthis.parent,oElement,oConfig,pos,x,y,offsetHeight,offse= tWidth,viewPortWidth,viewPortHeight,scrollX,scrollY,nPadding,topConstrain= t,leftConstraint,bottomConstraint,rightConstraint,aContext,oContextElemen= t;if(oParentMenuItem&&!(oParentMenuItem.parent instanceof = YAHOO.widget.MenuBar)){oElement=3Dthis.element;oConfig=3Dthis.cfg;pos=3Da= rgs[0];x=3Dpos[0];y=3Dpos[1];offsetHeight=3DoElement.offsetHeight;offsetW= idth=3DoElement.offsetWidth;viewPortWidth=3DDom.getViewportWidth();viewPo= rtHeight=3DDom.getViewportHeight();scrollX=3DDom.getDocumentScrollLeft();= scrollY=3DDom.getDocumentScrollTop();nPadding=3D(oParentMenuItem.parent = instanceof = YAHOO.widget.MenuBar)?0:10;topConstraint=3DscrollY+nPadding;leftConstrain= t=3DscrollX+nPadding;bottomConstraint=3DscrollY+viewPortHeight-offsetHeig= ht-nPadding;rightConstraint=3DscrollX+viewPortWidth-offsetWidth-nPadding;= aContext=3DoConfig.getProperty("context");oContextElement=3DaContext?aCon= text[0]:null;if(x<10){x=3DleftConstraint;}else = if((x+offsetWidth)>viewPortWidth){if(oContextElement&&((x-oContextElement= .offsetWidth)>offsetWidth)){x=3D(x-(oContextElement.offsetWidth+offsetWid= th));}=0A= else{x=3DrightConstraint;}}=0A= if(y<10){y=3DtopConstraint;}else = if(y>bottomConstraint){if(oContextElement&&(y>offsetHeight)){y=3D((y+oCon= textElement.offsetHeight)-offsetHeight);}=0A= else{y=3DbottomConstraint;}}=0A= oConfig.setProperty("x",x,true);oConfig.setProperty("y",y,true);oConfig.s= etProperty("xy",[x,y],true);}=0A= else = if(this=3D=3Dthis.getRoot()&&this.cfg.getProperty("position")=3D=3D"dynam= ic"){Menu.superclass.enforceConstraints.call(this,type,args,obj);}},confi= gVisible:function(p_sType,p_aArgs,p_oMenu){var = bVisible,sDisplay;if(this.cfg.getProperty("position")=3D=3D"dynamic"){Men= u.superclass.configVisible.call(this,p_sType,p_aArgs,p_oMenu);}=0A= else{bVisible=3Dp_aArgs[0];sDisplay=3DDom.getStyle(this.element,"display"= );if(bVisible){if(sDisplay!=3D"block"){this.beforeShowEvent.fire();Dom.se= tStyle(this.element,"display","block");this.showEvent.fire();}}=0A= else{if(sDisplay=3D=3D"block"){this.beforeHideEvent.fire();Dom.setStyle(t= his.element,"display","none");this.hideEvent.fire();}}}},configPosition:f= unction(p_sType,p_aArgs,p_oMenu){var = oElement=3Dthis.element,sCSSPosition=3Dp_aArgs[0]=3D=3D"static"?"static":= "absolute",sCurrentPosition=3DDom.getStyle(oElement,"position"),oCfg=3Dth= is.cfg,nZIndex;Dom.setStyle(this.element,"position",sCSSPosition);if(sCSS= Position=3D=3D"static"){oCfg.setProperty("iframe",false);Dom.setStyle(thi= s.element,"display","block");oCfg.setProperty("visible",true);}=0A= else{if(sCurrentPosition!=3D"absolute"){oCfg.setProperty("iframe",(YAHOO.= env.ua.ie=3D=3D6?true:false));}=0A= Dom.setStyle(this.element,"visibility","hidden");}=0A= if(sCSSPosition=3D=3D"absolute"){nZIndex=3DoCfg.getProperty("zindex");if(= !nZIndex||nZIndex=3D=3D=3D0){nZIndex=3Dthis.parent?(this.parent.parent.cf= g.getProperty("zindex")+1):1;oCfg.setProperty("zindex",nZIndex);}}},confi= gIframe:function(p_sType,p_aArgs,p_oMenu){if(this.cfg.getProperty("positi= on")=3D=3D"dynamic"){Menu.superclass.configIframe.call(this,p_sType,p_aAr= gs,p_oMenu);}},configHideDelay:function(p_sType,p_aArgs,p_oMenu){var = nHideDelay=3Dp_aArgs[0],oMouseOutEvent=3Dthis.mouseOutEvent,oMouseOverEve= nt=3Dthis.mouseOverEvent,oKeyDownEvent=3Dthis.keyDownEvent;if(nHideDelay>= 0){if(!this._bHideDelayEventHandlersAssigned){oMouseOutEvent.subscribe(th= is._execHideDelay);oMouseOverEvent.subscribe(this._cancelHideDelay);oKeyD= ownEvent.subscribe(this._cancelHideDelay);this._bHideDelayEventHandlersAs= signed=3Dtrue;}}=0A= else{oMouseOutEvent.unsubscribe(this._execHideDelay);oMouseOverEvent.unsu= bscribe(this._cancelHideDelay);oKeyDownEvent.unsubscribe(this._cancelHide= Delay);this._bHideDelayEventHandlersAssigned=3Dfalse;}},configContainer:f= unction(p_sType,p_aArgs,p_oMenu){var oElement=3Dp_aArgs[0];if(typeof = oElement=3D=3D'string'){this.cfg.setProperty("container",document.getElem= entById(oElement),true);}},_setMaxHeight:function(p_sType,p_aArgs,p_nMaxH= eight){this.cfg.setProperty("maxheight",p_nMaxHeight);this.renderEvent.un= subscribe(this._setMaxHeight);},configMaxHeight:function(p_sType,p_aArgs,= p_oMenu){var = nMaxHeight=3Dp_aArgs[0],oBody=3Dthis.body,oHeader=3Dthis.header,oFooter=3D= this.footer,fnMouseOver=3Dthis._onScrollTargetMouseOver,fnMouseOut=3Dthis= ._onScrollTargetMouseOut,nHeight;if(this.lazyLoad&&!oBody){this.renderEve= nt.unsubscribe(this._setMaxHeight);if(nMaxHeight>0){this.renderEvent.subs= cribe(this._setMaxHeight,nMaxHeight,this);}=0A= return;}=0A= Dom.setStyle(oBody,"height","auto");Dom.setStyle(oBody,"overflow","visibl= e");if((nMaxHeight>0)&&(oBody.offsetHeight>nMaxHeight)){if(!this.cfg.getP= roperty("width")){this._setWidth();}=0A= if(!oHeader&&!oFooter){this.setHeader(" ");this.setFooter(" ");oH= eader=3Dthis.header;oFooter=3Dthis.footer;Dom.addClass(oHeader,"topscroll= bar");Dom.addClass(oFooter,"bottomscrollbar");this.element.insertBefore(o= Header,oBody);this.element.appendChild(oFooter);Event.on(oHeader,"mouseov= er",fnMouseOver,this,true);Event.on(oHeader,"mouseout",fnMouseOut,this,tr= ue);Event.on(oFooter,"mouseover",fnMouseOver,this,true);Event.on(oFooter,= "mouseout",fnMouseOut,this,true);}=0A= nHeight=3D(nMaxHeight-(this.footer.offsetHeight+=0A= this.header.offsetHeight));Dom.setStyle(oBody,"height",(nHeight+"px"));Do= m.setStyle(oBody,"overflow","hidden");}=0A= else = if(oHeader&&oFooter){Dom.setStyle(oBody,"height","auto");Dom.setStyle(oBo= dy,"overflow","visible");Event.removeListener(oHeader,"mouseover",fnMouse= Over);Event.removeListener(oHeader,"mouseout",fnMouseOut);Event.removeLis= tener(oFooter,"mouseover",fnMouseOver);Event.removeListener(oFooter,"mous= eout",fnMouseOut);this.element.removeChild(oHeader);this.element.removeCh= ild(oFooter);this.header=3Dnull;this.footer=3Dnull;}=0A= this.cfg.refireEvent("iframe");},configClassName:function(p_sType,p_aArgs= ,p_oMenu){var = sClassName=3Dp_aArgs[0];if(this._sClassName){Dom.removeClass(this.element= ,this._sClassName);}=0A= Dom.addClass(this.element,sClassName);this._sClassName=3DsClassName;},_on= ItemAdded:function(p_sType,p_aArgs){var = oItem=3Dp_aArgs[0];if(oItem){oItem.cfg.setProperty("disabled",true);}},co= nfigDisabled:function(p_sType,p_aArgs,p_oMenu){var = bDisabled=3Dp_aArgs[0],aItems,nItems,i;if(this._bDisabled!=3DbDisabled){a= Items=3Dthis.getItems();nItems=3DaItems.length;if(nItems>0){i=3DnItems-1;= do{aItems[i].cfg.setProperty("disabled",bDisabled);}=0A= while(i--);}=0A= Dom[(bDisabled?"addClass":"removeClass")](this.element,"disabled");this.i= temAddedEvent[(bDisabled?"subscribe":"unsubscribe")](this._onItemAdded);t= his._bDisabled=3DbDisabled;}},onRender:function(p_sType,p_aArgs){function= sizeShadow(){var = oElement=3Dthis.element,oShadow=3Dthis._shadow;if(oShadow){oShadow.style.= width=3D(oElement.offsetWidth+6)+"px";oShadow.style.height=3D(oElement.of= fsetHeight+1)+"px";}}=0A= function = addShadowVisibleClass(){Dom.addClass(this._shadow,"yui-menu-shadow-visibl= e");}=0A= function = removeShadowVisibleClass(){Dom.removeClass(this._shadow,"yui-menu-shadow-= visible");}=0A= function createShadow(){var = oShadow=3Dthis._shadow,oElement,me;if(!oShadow){oElement=3Dthis.element;m= e=3Dthis;if(!m_oShadowTemplate){m_oShadowTemplate=3Ddocument.createElemen= t("div");m_oShadowTemplate.className=3D"yui-menu-shadow";}=0A= oShadow=3Dm_oShadowTemplate.cloneNode(false);oElement.appendChild(oShadow= );this._shadow=3DoShadow;addShadowVisibleClass.call(this);this.beforeShow= Event.subscribe(addShadowVisibleClass);this.beforeHideEvent.subscribe(rem= oveShadowVisibleClass);if(YAHOO.env.ua.ie){window.setTimeout(function(){s= izeShadow.call(me);me.syncIframe();},0);this.cfg.subscribeToConfigEvent("= width",sizeShadow);this.cfg.subscribeToConfigEvent("height",sizeShadow);t= his.changeContentEvent.subscribe(sizeShadow);Module.textResizeEvent.subsc= ribe(sizeShadow,me,true);this.destroyEvent.subscribe(function(){Module.te= xtResizeEvent.unsubscribe(sizeShadow,me);});}}}=0A= function = onBeforeShow(){createShadow.call(this);this.beforeShowEvent.unsubscribe(o= nBeforeShow);}=0A= if(this.cfg.getProperty("position")=3D=3D"dynamic"){if(this.cfg.getProper= ty("visible")){createShadow.call(this);}=0A= else{this.beforeShowEvent.subscribe(onBeforeShow);}}},initEvents:function= (){Menu.superclass.initEvents.call(this);var = SIGNATURE=3DCustomEvent.LIST;this.mouseOverEvent=3Dthis.createEvent(EVENT= _TYPES.MOUSE_OVER);this.mouseOverEvent.signature=3DSIGNATURE;this.mouseOu= tEvent=3Dthis.createEvent(EVENT_TYPES.MOUSE_OUT);this.mouseOutEvent.signa= ture=3DSIGNATURE;this.mouseDownEvent=3Dthis.createEvent(EVENT_TYPES.MOUSE= _DOWN);this.mouseDownEvent.signature=3DSIGNATURE;this.mouseUpEvent=3Dthis= .createEvent(EVENT_TYPES.MOUSE_UP);this.mouseUpEvent.signature=3DSIGNATUR= E;this.clickEvent=3Dthis.createEvent(EVENT_TYPES.CLICK);this.clickEvent.s= ignature=3DSIGNATURE;this.keyPressEvent=3Dthis.createEvent(EVENT_TYPES.KE= Y_PRESS);this.keyPressEvent.signature=3DSIGNATURE;this.keyDownEvent=3Dthi= s.createEvent(EVENT_TYPES.KEY_DOWN);this.keyDownEvent.signature=3DSIGNATU= RE;this.keyUpEvent=3Dthis.createEvent(EVENT_TYPES.KEY_UP);this.keyUpEvent= .signature=3DSIGNATURE;this.focusEvent=3Dthis.createEvent(EVENT_TYPES.FOC= US);this.focusEvent.signature=3DSIGNATURE;this.blurEvent=3Dthis.createEve= nt(EVENT_TYPES.BLUR);this.blurEvent.signature=3DSIGNATURE;this.itemAddedE= vent=3Dthis.createEvent(EVENT_TYPES.ITEM_ADDED);this.itemAddedEvent.signa= ture=3DSIGNATURE;this.itemRemovedEvent=3Dthis.createEvent(EVENT_TYPES.ITE= M_REMOVED);this.itemRemovedEvent.signature=3DSIGNATURE;},getRoot:function= (){var = oItem=3Dthis.parent,oParentMenu;if(oItem){oParentMenu=3DoItem.parent;retu= rn oParentMenu?oParentMenu.getRoot():this;}=0A= else{return this;}},toString:function(){var = sReturnVal=3D"Menu",sId=3Dthis.id;if(sId){sReturnVal+=3D(" "+sId);}=0A= return = sReturnVal;},setItemGroupTitle:function(p_sGroupTitle,p_nGroupIndex){var = nGroupIndex,oTitle,i,nFirstIndex;if(typeof = p_sGroupTitle=3D=3D"string"&&p_sGroupTitle.length>0){nGroupIndex=3Dtypeof= = p_nGroupIndex=3D=3D"number"?p_nGroupIndex:0;oTitle=3Dthis._aGroupTitleEle= ments[nGroupIndex];if(oTitle){oTitle.innerHTML=3Dp_sGroupTitle;}=0A= else{oTitle=3Ddocument.createElement(this.GROUP_TITLE_TAG_NAME);oTitle.in= nerHTML=3Dp_sGroupTitle;this._aGroupTitleElements[nGroupIndex]=3DoTitle;}=0A= i=3Dthis._aGroupTitleElements.length-1;do{if(this._aGroupTitleElements[i]= ){Dom.removeClass(this._aGroupTitleElements[i],"first-of-type");nFirstInd= ex=3Di;}}=0A= while(i--);if(nFirstIndex!=3D=3Dnull){Dom.addClass(this._aGroupTitleEleme= nts[nFirstIndex],"first-of-type");}=0A= this.changeContentEvent.fire();}},addItem:function(p_oItem,p_nGroupIndex)= {if(p_oItem){return = this._addItemToGroup(p_nGroupIndex,p_oItem);}},addItems:function(p_aItems= ,p_nGroupIndex){var = nItems,aItems,oItem,i;if(Lang.isArray(p_aItems)){nItems=3Dp_aItems.length= ;aItems=3D[];for(i=3D0;i0){aSubmenus=3D[];for(i=3D0;i0){i=3DnItems-1;do{oItem=3DaItems[i];if(oItem){oSubmenu=3D= oItem.cfg.getProperty("submenu");if(oSubmenu){this.cfg.configChangedEvent= .unsubscribe(this._onParentMenuConfigChange,oSubmenu);this.renderEvent.un= subscribe(this._onParentMenuRender,oSubmenu);}=0A= this.removeItem(oItem);}}=0A= while(i--);}=0A= if(oHeader){Event.purgeElement(oHeader);oElement.removeChild(oHeader);}=0A= if(oFooter){Event.purgeElement(oFooter);oElement.removeChild(oFooter);}=0A= if(oBody){Event.purgeElement(oBody);oBody.innerHTML=3D"";}=0A= this._aItemGroups=3D[];this._aListElements=3D[];this._aGroupTitleElements= =3D[];this.cfg.setProperty("width",null);},destroy:function(){Module.text= ResizeEvent.unsubscribe(this._onTextResize,this);this.clearContent();this= ._aItemGroups=3Dnull;this._aListElements=3Dnull;this._aGroupTitleElements= =3Dnull;Menu.superclass.destroy.call(this);},setInitialFocus:function(){v= ar = oItem=3Dthis._getFirstEnabledItem();if(oItem){oItem.focus();}},setInitial= Selection:function(){var = oItem=3Dthis._getFirstEnabledItem();if(oItem){oItem.cfg.setProperty("sele= cted",true);}},clearActiveItem:function(p_bBlur){if(this.cfg.getProperty(= "showdelay")>0){this._cancelShowDelay();}=0A= var = oActiveItem=3Dthis.activeItem,oConfig,oSubmenu;if(oActiveItem){oConfig=3D= oActiveItem.cfg;if(p_bBlur){oActiveItem.blur();}=0A= oConfig.setProperty("selected",false);oSubmenu=3DoConfig.getProperty("sub= menu");if(oSubmenu){oSubmenu.hide();}=0A= this.activeItem=3Dnull;}},focus:function(){if(!this.hasFocus()){this.setI= nitialFocus();}},blur:function(){var = oItem;if(this.hasFocus()){oItem=3DMenuManager.getFocusedMenuItem();if(oIt= em){oItem.blur();}}},hasFocus:function(){return(MenuManager.getFocusedMen= u()=3D=3Dthis.getRoot());},subscribe:function(){function = onItemAdded(p_sType,p_aArgs,p_oObject){var = oItem=3Dp_aArgs[0],oSubmenu=3DoItem.cfg.getProperty("submenu");if(oSubmen= u){oSubmenu.subscribe.apply(oSubmenu,p_oObject);}}=0A= Menu.superclass.subscribe.apply(this,arguments);Menu.superclass.subscribe= .call(this,"itemAdded",onItemAdded,arguments);var = aSubmenus=3Dthis.getSubmenus(),nSubmenus,oSubmenu,i;if(aSubmenus){nSubmen= us=3DaSubmenus.length;if(nSubmenus>0){i=3DnSubmenus-1;do{oSubmenu=3DaSubm= enus[i];oSubmenu.subscribe.apply(oSubmenu,arguments);}=0A= while(i--);}}},initDefaultConfig:function(){Menu.superclass.initDefaultCo= nfig.call(this);var = oConfig=3Dthis.cfg;oConfig.addProperty(DEFAULT_CONFIG.VISIBLE.key,{handle= r:this.configVisible,value:DEFAULT_CONFIG.VISIBLE.value,validator:DEFAULT= _CONFIG.VISIBLE.validator});oConfig.addProperty(DEFAULT_CONFIG.CONSTRAIN_= TO_VIEWPORT.key,{handler:this.configConstrainToViewport,value:DEFAULT_CON= FIG.CONSTRAIN_TO_VIEWPORT.value,validator:DEFAULT_CONFIG.CONSTRAIN_TO_VIE= WPORT.validator,supercedes:DEFAULT_CONFIG.CONSTRAIN_TO_VIEWPORT.supercede= s});oConfig.addProperty(DEFAULT_CONFIG.POSITION.key,{handler:this.configP= osition,value:DEFAULT_CONFIG.POSITION.value,validator:DEFAULT_CONFIG.POSI= TION.validator,supercedes:DEFAULT_CONFIG.POSITION.supercedes});oConfig.ad= dProperty(DEFAULT_CONFIG.SUBMENU_ALIGNMENT.key,{value:DEFAULT_CONFIG.SUBM= ENU_ALIGNMENT.value});oConfig.addProperty(DEFAULT_CONFIG.AUTO_SUBMENU_DIS= PLAY.key,{value:DEFAULT_CONFIG.AUTO_SUBMENU_DISPLAY.value,validator:DEFAU= LT_CONFIG.AUTO_SUBMENU_DISPLAY.validator});oConfig.addProperty(DEFAULT_CO= NFIG.SHOW_DELAY.key,{value:DEFAULT_CONFIG.SHOW_DELAY.value,validator:DEFA= ULT_CONFIG.SHOW_DELAY.validator});oConfig.addProperty(DEFAULT_CONFIG.HIDE= _DELAY.key,{handler:this.configHideDelay,value:DEFAULT_CONFIG.HIDE_DELAY.= value,validator:DEFAULT_CONFIG.HIDE_DELAY.validator,suppressEvent:DEFAULT= _CONFIG.HIDE_DELAY.suppressEvent});oConfig.addProperty(DEFAULT_CONFIG.SUB= MENU_HIDE_DELAY.key,{value:DEFAULT_CONFIG.SUBMENU_HIDE_DELAY.value,valida= tor:DEFAULT_CONFIG.SUBMENU_HIDE_DELAY.validator});oConfig.addProperty(DEF= AULT_CONFIG.CLICK_TO_HIDE.key,{value:DEFAULT_CONFIG.CLICK_TO_HIDE.value,v= alidator:DEFAULT_CONFIG.CLICK_TO_HIDE.validator});oConfig.addProperty(DEF= AULT_CONFIG.CONTAINER.key,{handler:this.configContainer,value:document.bo= dy});oConfig.addProperty(DEFAULT_CONFIG.MAX_HEIGHT.key,{handler:this.conf= igMaxHeight,value:DEFAULT_CONFIG.MAX_HEIGHT.value,validator:DEFAULT_CONFI= G.MAX_HEIGHT.validator});oConfig.addProperty(DEFAULT_CONFIG.CLASS_NAME.ke= y,{handler:this.configClassName,value:DEFAULT_CONFIG.CLASS_NAME.value,val= idator:DEFAULT_CONFIG.CLASS_NAME.validator});oConfig.addProperty(DEFAULT_= CONFIG.DISABLED.key,{handler:this.configDisabled,value:DEFAULT_CONFIG.DIS= ABLED.value,validator:DEFAULT_CONFIG.DISABLED.validator});}});})();(funct= ion(){YAHOO.widget.MenuItem=3Dfunction(p_oObject,p_oConfig){if(p_oObject)= {if(p_oConfig){this.parent=3Dp_oConfig.parent;this.value=3Dp_oConfig.valu= e;this.id=3Dp_oConfig.id;}=0A= this.init(p_oObject,p_oConfig);}};var = Dom=3DYAHOO.util.Dom,Module=3DYAHOO.widget.Module,Menu=3DYAHOO.widget.Men= u,MenuItem=3DYAHOO.widget.MenuItem,CustomEvent=3DYAHOO.util.CustomEvent,L= ang=3DYAHOO.lang,m_oMenuItemTemplate,EVENT_TYPES=3D{"MOUSE_OVER":"mouseov= er","MOUSE_OUT":"mouseout","MOUSE_DOWN":"mousedown","MOUSE_UP":"mouseup",= "CLICK":"click","KEY_PRESS":"keypress","KEY_DOWN":"keydown","KEY_UP":"key= up","ITEM_ADDED":"itemAdded","ITEM_REMOVED":"itemRemoved","FOCUS":"focus"= ,"BLUR":"blur","DESTROY":"destroy"},DEFAULT_CONFIG=3D{"TEXT":{key:"text",= value:"",validator:Lang.isString,suppressEvent:true},"HELP_TEXT":{key:"he= lptext",supercedes:["text"]},"URL":{key:"url",value:"#",suppressEvent:tru= e},"TARGET":{key:"target",suppressEvent:true},"EMPHASIS":{key:"emphasis",= value:false,validator:Lang.isBoolean,suppressEvent:true,supercedes:["text= "]},"STRONG_EMPHASIS":{key:"strongemphasis",value:false,validator:Lang.is= Boolean,suppressEvent:true,supercedes:["text"]},"CHECKED":{key:"checked",= value:false,validator:Lang.isBoolean,suppressEvent:true,supercedes:["text= "]},"DISABLED":{key:"disabled",value:false,validator:Lang.isBoolean,suppr= essEvent:true,supercedes:["text"]},"SELECTED":{key:"selected",value:false= ,validator:Lang.isBoolean,suppressEvent:true},"SUBMENU":{key:"submenu",su= percedes:["text"]},"ONCLICK":{key:"onclick"},"CLASS_NAME":{key:"classname= ",value:null,validator:Lang.isString}};MenuItem.prototype=3D{COLLAPSED_SU= BMENU_INDICATOR_TEXT:"",EXPANDED_SUBMENU_INDICATOR_TEXT:"",DISABLED_SUBME= NU_INDICATOR_TEXT:"",CHECKED_TEXT:"Menu item = checked.",DISABLED_CHECKED_TEXT:"Checked. (Item = disabled.)",CSS_CLASS_NAME:"yuimenuitem",CSS_LABEL_CLASS_NAME:"yuimenuite= mlabel",SUBMENU_TYPE:null,_oAnchor:null,_oHelpTextEM:null,_oSubmenu:null,= _oCheckedIndicator:null,_oOnclickAttributeValue:null,_sClassName:null,con= structor:MenuItem,index:null,groupIndex:null,parent:null,element:null,src= Element:null,value:null,submenuIndicator:null,browser:Module.prototype.br= owser,id:null,destroyEvent:null,mouseOverEvent:null,mouseOutEvent:null,mo= useDownEvent:null,mouseUpEvent:null,clickEvent:null,keyPressEvent:null,ke= yDownEvent:null,keyUpEvent:null,focusEvent:null,blurEvent:null,init:funct= ion(p_oObject,p_oConfig){if(!this.SUBMENU_TYPE){this.SUBMENU_TYPE=3DMenu;= }=0A= this.cfg=3Dnew YAHOO.util.Config(this);this.initDefaultConfig();var = SIGNATURE=3DCustomEvent.LIST,oConfig=3Dthis.cfg,sURL=3D"#",oAnchor,sTarge= t,sText,sId;if(Lang.isString(p_oObject)){this._createRootNodeStructure();= oConfig.queueProperty("text",p_oObject);}=0A= else = if(p_oObject&&p_oObject.tagName){switch(p_oObject.tagName.toUpperCase()){= case"OPTION":this._createRootNodeStructure();oConfig.queueProperty("text"= ,p_oObject.text);this.srcElement=3Dp_oObject;break;case"OPTGROUP":this._c= reateRootNodeStructure();oConfig.queueProperty("text",p_oObject.label);th= is.srcElement=3Dp_oObject;this._initSubTree();break;case"LI":oAnchor=3DDo= m.getFirstChild(p_oObject);if(oAnchor){sURL=3DoAnchor.getAttribute("href"= );sTarget=3DoAnchor.getAttribute("target");sText=3DoAnchor.innerHTML;}=0A= this.srcElement=3Dp_oObject;this.element=3Dp_oObject;this._oAnchor=3DoAnc= hor;oConfig.setProperty("text",sText,true);oConfig.setProperty("url",sURL= ,true);oConfig.setProperty("target",sTarget,true);this._initSubTree();bre= ak;}}=0A= if(this.element){sId=3Dthis.element.id;if(!sId){sId=3Dthis.id||Dom.genera= teId();this.element.id=3DsId;}=0A= this.id=3DsId;Dom.addClass(this.element,this.CSS_CLASS_NAME);Dom.addClass= (this._oAnchor,this.CSS_LABEL_CLASS_NAME);this.mouseOverEvent=3Dthis.crea= teEvent(EVENT_TYPES.MOUSE_OVER);this.mouseOverEvent.signature=3DSIGNATURE= ;this.mouseOutEvent=3Dthis.createEvent(EVENT_TYPES.MOUSE_OUT);this.mouseO= utEvent.signature=3DSIGNATURE;this.mouseDownEvent=3Dthis.createEvent(EVEN= T_TYPES.MOUSE_DOWN);this.mouseDownEvent.signature=3DSIGNATURE;this.mouseU= pEvent=3Dthis.createEvent(EVENT_TYPES.MOUSE_UP);this.mouseUpEvent.signatu= re=3DSIGNATURE;this.clickEvent=3Dthis.createEvent(EVENT_TYPES.CLICK);this= .clickEvent.signature=3DSIGNATURE;this.keyPressEvent=3Dthis.createEvent(E= VENT_TYPES.KEY_PRESS);this.keyPressEvent.signature=3DSIGNATURE;this.keyDo= wnEvent=3Dthis.createEvent(EVENT_TYPES.KEY_DOWN);this.keyDownEvent.signat= ure=3DSIGNATURE;this.keyUpEvent=3Dthis.createEvent(EVENT_TYPES.KEY_UP);th= is.keyUpEvent.signature=3DSIGNATURE;this.focusEvent=3Dthis.createEvent(EV= ENT_TYPES.FOCUS);this.focusEvent.signature=3DSIGNATURE;this.blurEvent=3Dt= his.createEvent(EVENT_TYPES.BLUR);this.blurEvent.signature=3DSIGNATURE;th= is.destroyEvent=3Dthis.createEvent(EVENT_TYPES.DESTROY);this.destroyEvent= .signature=3DSIGNATURE;if(p_oConfig){oConfig.applyConfig(p_oConfig);}=0A= oConfig.fireQueue();}},_createRootNodeStructure:function(){var = oElement,oAnchor;if(!m_oMenuItemTemplate){m_oMenuItemTemplate=3Ddocument.= createElement("li");m_oMenuItemTemplate.innerHTML=3D"";}=0A= oElement=3Dm_oMenuItemTemplate.cloneNode(true);oElement.className=3Dthis.= CSS_CLASS_NAME;oAnchor=3DoElement.firstChild;oAnchor.className=3Dthis.CSS= _LABEL_CLASS_NAME;this.element=3DoElement;this._oAnchor=3DoAnchor;},_init= SubTree:function(){var = oSrcEl=3Dthis.srcElement,oConfig=3Dthis.cfg,oNode,aOptions,nOptions,oMenu= ,n;if(oSrcEl.childNodes.length>0){if(this.parent.lazyLoad&&this.parent.sr= cElement&&this.parent.srcElement.tagName.toUpperCase()=3D=3D"SELECT"){oCo= nfig.setProperty("submenu",{id:Dom.generateId(),itemdata:oSrcEl.childNode= s});}=0A= else{oNode=3DoSrcEl.firstChild;aOptions=3D[];do{if(oNode&&oNode.tagName){= switch(oNode.tagName.toUpperCase()){case"DIV":oConfig.setProperty("submen= u",oNode);break;case"OPTION":aOptions[aOptions.length]=3DoNode;break;}}}=0A= while((oNode=3DoNode.nextSibling));nOptions=3DaOptions.length;if(nOptions= >0){oMenu=3Dnew = this.SUBMENU_TYPE(Dom.generateId());oConfig.setProperty("submenu",oMenu);= for(n=3D0;n"+sHelpText+"";}=0A= if(oConfig.getProperty("checked")){sCheckHTML=3D""+=0A= this.CHECKED_TEXT+"";}=0A= if(oSubmenu){sSubmenuIndicatorHTML=3D""+=0A= ((oSubmenu instanceof = Menu&&oSubmenu.cfg.getProperty("visible"))?this.EXPANDED_SUBMENU_INDICATO= R_TEXT:this.COLLAPSED_SUBMENU_INDICATOR_TEXT)+"";}=0A= if(oConfig.getProperty("emphasis")){sEmphasisStartTag=3D"";sEmphasisE= ndTag=3D"";}=0A= if(oConfig.getProperty("strongemphasis")){sEmphasisStartTag=3D"";= sEmphasisEndTag=3D"";}=0A= oAnchor.innerHTML=3D(sEmphasisStartTag+sText+=0A= sEmphasisEndTag+sHelpTextHTML+=0A= sCheckHTML+sSubmenuIndicatorHTML);if(oSubmenu){this.submenuIndicator=3DoA= nchor.lastChild;}}},configHelpText:function(p_sType,p_aArgs,p_oItem){var = sHelpText=3Dp_aArgs[0],oAnchor=3Dthis._oAnchor;if(sHelpText){Dom.addClass= (oAnchor,"hashelptext");}=0A= else{Dom.removeClass(oAnchor,"hashelptext");}=0A= this.cfg.refireEvent("text");},configURL:function(p_sType,p_aArgs,p_oItem= ){var sURL=3Dp_aArgs[0];if(!sURL){sURL=3D"#";}=0A= this._oAnchor.setAttribute("href",sURL);},configTarget:function(p_sType,p= _aArgs,p_oItem){var = sTarget=3Dp_aArgs[0],oAnchor=3Dthis._oAnchor;if(sTarget&&sTarget.length>0= ){oAnchor.setAttribute("target",sTarget);}=0A= else{oAnchor.removeAttribute("target");}},configEmphasis:function(p_sType= ,p_aArgs,p_oItem){var = bEmphasis=3Dp_aArgs[0],oConfig=3Dthis.cfg;if(bEmphasis&&oConfig.getProper= ty("strongemphasis")){oConfig.setProperty("strongemphasis",false);}=0A= oConfig.refireEvent("text");},configStrongEmphasis:function(p_sType,p_aAr= gs,p_oItem){var = bStrongEmphasis=3Dp_aArgs[0],oConfig=3Dthis.cfg;if(bStrongEmphasis&&oConf= ig.getProperty("emphasis")){oConfig.setProperty("emphasis",false);}=0A= oConfig.refireEvent("text");},configChecked:function(p_sType,p_aArgs,p_oI= tem){var = bChecked=3Dp_aArgs[0],oAnchor=3Dthis._oAnchor;if(bChecked){Dom.addClass(o= Anchor,"checked");}=0A= else{Dom.removeClass(oAnchor,"checked");}=0A= this.cfg.refireEvent("text");},configDisabled:function(p_sType,p_aArgs,p_= oItem){var = bDisabled=3Dp_aArgs[0],oConfig=3Dthis.cfg,oAnchor=3Dthis._oAnchor;if(bDis= abled){if(oConfig.getProperty("selected")){oConfig.setProperty("selected"= ,false);}=0A= oAnchor.removeAttribute("href");Dom.addClass(oAnchor,"disabled");}=0A= else{oAnchor.setAttribute("href",oConfig.getProperty("url"));Dom.removeCl= ass(oAnchor,"disabled");}},configSelected:function(p_sType,p_aArgs,p_oIte= m){var = bSelected,oAnchor;if(!this.cfg.getProperty("disabled")){bSelected=3Dp_aAr= gs[0];oAnchor=3Dthis._oAnchor;if(bSelected){Dom.addClass(oAnchor,"selecte= d");}=0A= else{Dom.removeClass(oAnchor,"selected");}}},configSubmenu:function(p_sTy= pe,p_aArgs,p_oItem){var = oAnchor=3Dthis._oAnchor,oSubmenu=3Dp_aArgs[0],oSubmenuIndicator=3Dthis.su= bmenuIndicator,oConfig=3Dthis.cfg,bLazyLoad=3Dthis.parent&&this.parent.la= zyLoad,oMenu,sSubmenuId,oSubmenuConfig;if(oSubmenu){if(oSubmenu = instanceof = Menu){oMenu=3DoSubmenu;oMenu.parent=3Dthis;oMenu.lazyLoad=3DbLazyLoad;}=0A= else if(typeof = oSubmenu=3D=3D"object"&&oSubmenu.id&&!oSubmenu.nodeType){sSubmenuId=3DoSu= bmenu.id;oSubmenuConfig=3DoSubmenu;oSubmenuConfig.lazyload=3DbLazyLoad;oS= ubmenuConfig.parent=3Dthis;oMenu=3Dnew = this.SUBMENU_TYPE(sSubmenuId,oSubmenuConfig);this.cfg.setProperty("submen= u",oMenu,true);}=0A= else{oMenu=3Dnew = this.SUBMENU_TYPE(oSubmenu,{lazyload:bLazyLoad,parent:this});this.cfg.set= Property("submenu",oMenu,true);}=0A= if(oMenu){Dom.addClass(oAnchor,"hassubmenu");this._oSubmenu=3DoMenu;}}=0A= else{Dom.removeClass(oAnchor,"hassubmenu");if(oSubmenuIndicator){oAnchor.= removeChild(oSubmenuIndicator);}=0A= if(this._oSubmenu){this._oSubmenu.destroy();}}=0A= oConfig.refireEvent("text");},configOnClick:function(p_sType,p_aArgs,p_oI= tem){var = oObject=3Dp_aArgs[0];if(this._oOnclickAttributeValue&&(this._oOnclickAttr= ibuteValue!=3DoObject)){this.clickEvent.unsubscribe(this._oOnclickAttribu= teValue.fn,this._oOnclickAttributeValue.obj);this._oOnclickAttributeValue= =3Dnull;}=0A= if(!this._oOnclickAttributeValue&&typeof oObject=3D=3D"object"&&typeof = oObject.fn=3D=3D"function"){this.clickEvent.subscribe(oObject.fn,((!YAHOO= .lang.isUndefined(oObject.obj))?oObject.obj:this),oObject.scope);this._oO= nclickAttributeValue=3DoObject;}},configClassName:function(p_sType,p_aArg= s,p_oItem){var = sClassName=3Dp_aArgs[0];if(this._sClassName){Dom.removeClass(this.element= ,this._sClassName);}=0A= Dom.addClass(this.element,sClassName);this._sClassName=3DsClassName;},ini= tDefaultConfig:function(){var = oConfig=3Dthis.cfg;oConfig.addProperty(DEFAULT_CONFIG.TEXT.key,{handler:t= his.configText,value:DEFAULT_CONFIG.TEXT.value,validator:DEFAULT_CONFIG.T= EXT.validator,suppressEvent:DEFAULT_CONFIG.TEXT.suppressEvent});oConfig.a= ddProperty(DEFAULT_CONFIG.HELP_TEXT.key,{handler:this.configHelpText});oC= onfig.addProperty(DEFAULT_CONFIG.URL.key,{handler:this.configURL,value:DE= FAULT_CONFIG.URL.value,suppressEvent:DEFAULT_CONFIG.URL.suppressEvent});o= Config.addProperty(DEFAULT_CONFIG.TARGET.key,{handler:this.configTarget,s= uppressEvent:DEFAULT_CONFIG.TARGET.suppressEvent});oConfig.addProperty(DE= FAULT_CONFIG.EMPHASIS.key,{handler:this.configEmphasis,value:DEFAULT_CONF= IG.EMPHASIS.value,validator:DEFAULT_CONFIG.EMPHASIS.validator,suppressEve= nt:DEFAULT_CONFIG.EMPHASIS.suppressEvent});oConfig.addProperty(DEFAULT_CO= NFIG.STRONG_EMPHASIS.key,{handler:this.configStrongEmphasis,value:DEFAULT= _CONFIG.STRONG_EMPHASIS.value,validator:DEFAULT_CONFIG.STRONG_EMPHASIS.va= lidator,suppressEvent:DEFAULT_CONFIG.STRONG_EMPHASIS.suppressEvent});oCon= fig.addProperty(DEFAULT_CONFIG.CHECKED.key,{handler:this.configChecked,va= lue:DEFAULT_CONFIG.CHECKED.value,validator:DEFAULT_CONFIG.CHECKED.validat= or,suppressEvent:DEFAULT_CONFIG.CHECKED.suppressEvent,supercedes:DEFAULT_= CONFIG.CHECKED.supercedes});oConfig.addProperty(DEFAULT_CONFIG.DISABLED.k= ey,{handler:this.configDisabled,value:DEFAULT_CONFIG.DISABLED.value,valid= ator:DEFAULT_CONFIG.DISABLED.validator,suppressEvent:DEFAULT_CONFIG.DISAB= LED.suppressEvent});oConfig.addProperty(DEFAULT_CONFIG.SELECTED.key,{hand= ler:this.configSelected,value:DEFAULT_CONFIG.SELECTED.value,validator:DEF= AULT_CONFIG.SELECTED.validator,suppressEvent:DEFAULT_CONFIG.SELECTED.supp= ressEvent});oConfig.addProperty(DEFAULT_CONFIG.SUBMENU.key,{handler:this.= configSubmenu});oConfig.addProperty(DEFAULT_CONFIG.ONCLICK.key,{handler:t= his.configOnClick});oConfig.addProperty(DEFAULT_CONFIG.CLASS_NAME.key,{ha= ndler:this.configClassName,value:DEFAULT_CONFIG.CLASS_NAME.value,validato= r:DEFAULT_CONFIG.CLASS_NAME.validator});},getNextEnabledSibling:function(= ){var = nGroupIndex,aItemGroups,oNextItem,nNextGroupIndex,aNextGroup;function = getNextArrayItem(p_aArray,p_nStartIndex){return = p_aArray[p_nStartIndex]||getNextArrayItem(p_aArray,(p_nStartIndex+1));}=0A= if(this.parent instanceof = Menu){nGroupIndex=3Dthis.groupIndex;aItemGroups=3Dthis.parent.getItemGrou= ps();if(this.index<(aItemGroups[nGroupIndex].length-1)){oNextItem=3DgetNe= xtArrayItem(aItemGroups[nGroupIndex],(this.index+1));}=0A= else{if(nGroupIndex<(aItemGroups.length-1)){nNextGroupIndex=3DnGroupIndex= +1;}=0A= else{nNextGroupIndex=3D0;}=0A= aNextGroup=3DgetNextArrayItem(aItemGroups,nNextGroupIndex);oNextItem=3Dge= tNextArrayItem(aNextGroup,0);}=0A= return(oNextItem.cfg.getProperty("disabled")||oNextItem.element.style.dis= play=3D=3D"none")?oNextItem.getNextEnabledSibling():oNextItem;}},getPrevi= ousEnabledSibling:function(){var = nGroupIndex,aItemGroups,oPreviousItem,nPreviousGroupIndex,aPreviousGroup;= function getPreviousArrayItem(p_aArray,p_nStartIndex){return = p_aArray[p_nStartIndex]||getPreviousArrayItem(p_aArray,(p_nStartIndex-1))= ;}=0A= function getFirstItemIndex(p_aArray,p_nStartIndex){return = p_aArray[p_nStartIndex]?p_nStartIndex:getFirstItemIndex(p_aArray,(p_nStar= tIndex+1));}=0A= if(this.parent instanceof = Menu){nGroupIndex=3Dthis.groupIndex;aItemGroups=3Dthis.parent.getItemGrou= ps();if(this.index>getFirstItemIndex(aItemGroups[nGroupIndex],0)){oPrevio= usItem=3DgetPreviousArrayItem(aItemGroups[nGroupIndex],(this.index-1));}=0A= else{if(nGroupIndex>getFirstItemIndex(aItemGroups,0)){nPreviousGroupIndex= =3DnGroupIndex-1;}=0A= else{nPreviousGroupIndex=3DaItemGroups.length-1;}=0A= aPreviousGroup=3DgetPreviousArrayItem(aItemGroups,nPreviousGroupIndex);oP= reviousItem=3DgetPreviousArrayItem(aPreviousGroup,(aPreviousGroup.length-= 1));}=0A= return(oPreviousItem.cfg.getProperty("disabled")||oPreviousItem.element.s= tyle.display=3D=3D"none")?oPreviousItem.getPreviousEnabledSibling():oPrev= iousItem;}},focus:function(){var = oParent=3Dthis.parent,oAnchor=3Dthis._oAnchor,oActiveItem=3DoParent.activ= eItem,me=3Dthis;function = setFocus(){try{if(YAHOO.env.ua.ie&&!document.hasFocus()){return;}=0A= oAnchor.focus();}=0A= catch(e){}}=0A= if(!this.cfg.getProperty("disabled")&&oParent&&oParent.cfg.getProperty("v= isible")&&this.element.style.display!=3D"none"){if(oActiveItem){oActiveIt= em.blur();}=0A= window.setTimeout(setFocus,0);this.focusEvent.fire();}},blur:function(){v= ar = oParent=3Dthis.parent;if(!this.cfg.getProperty("disabled")&&oParent&&oPar= ent.cfg.getProperty("visible")){this._oAnchor.blur();this.blurEvent.fire(= );}},hasFocus:function(){return(YAHOO.widget.MenuManager.getFocusedMenuIt= em()=3D=3Dthis);},destroy:function(){var = oEl=3Dthis.element,oSubmenu,oParentNode;if(oEl){oSubmenu=3Dthis.cfg.getPr= operty("submenu");if(oSubmenu){oSubmenu.destroy();}=0A= this.mouseOverEvent.unsubscribeAll();this.mouseOutEvent.unsubscribeAll();= this.mouseDownEvent.unsubscribeAll();this.mouseUpEvent.unsubscribeAll();t= his.clickEvent.unsubscribeAll();this.keyPressEvent.unsubscribeAll();this.= keyDownEvent.unsubscribeAll();this.keyUpEvent.unsubscribeAll();this.focus= Event.unsubscribeAll();this.blurEvent.unsubscribeAll();this.cfg.configCha= ngedEvent.unsubscribeAll();oParentNode=3DoEl.parentNode;if(oParentNode){o= ParentNode.removeChild(oEl);this.destroyEvent.fire();}=0A= this.destroyEvent.unsubscribeAll();}},toString:function(){var = sReturnVal=3D"MenuItem",sId=3Dthis.id;if(sId){sReturnVal+=3D(" "+sId);}=0A= return = sReturnVal;}};Lang.augmentProto(MenuItem,YAHOO.util.EventProvider);})();(= function(){YAHOO.widget.ContextMenu=3Dfunction(p_oElement,p_oConfig){YAHO= O.widget.ContextMenu.superclass.constructor.call(this,p_oElement,p_oConfi= g);};var = Event=3DYAHOO.util.Event,ContextMenu=3DYAHOO.widget.ContextMenu,EVENT_TYP= ES=3D{"TRIGGER_CONTEXT_MENU":"triggerContextMenu","CONTEXT_MENU":(YAHOO.e= nv.ua.opera?"mousedown":"contextmenu"),"CLICK":"click"},DEFAULT_CONFIG=3D= {"TRIGGER":{key:"trigger"}};YAHOO.lang.extend(ContextMenu,YAHOO.widget.Me= nu,{_oTrigger:null,_bCancelled:false,contextEventTarget:null,triggerConte= xtMenuEvent:null,init:function(p_oElement,p_oConfig){if(!this.ITEM_TYPE){= this.ITEM_TYPE=3DYAHOO.widget.ContextMenuItem;}=0A= ContextMenu.superclass.init.call(this,p_oElement);this.beforeInitEvent.fi= re(ContextMenu);if(p_oConfig){this.cfg.applyConfig(p_oConfig,true);}=0A= this.initEvent.fire(ContextMenu);},initEvents:function(){ContextMenu.supe= rclass.initEvents.call(this);this.triggerContextMenuEvent=3Dthis.createEv= ent(EVENT_TYPES.TRIGGER_CONTEXT_MENU);this.triggerContextMenuEvent.signat= ure=3DYAHOO.util.CustomEvent.LIST;},cancel:function(){this._bCancelled=3D= true;},_removeEventHandlers:function(){var = oTrigger=3Dthis._oTrigger;if(oTrigger){Event.removeListener(oTrigger,EVEN= T_TYPES.CONTEXT_MENU,this._onTriggerContextMenu);if(YAHOO.env.ua.opera){E= vent.removeListener(oTrigger,EVENT_TYPES.CLICK,this._onTriggerClick);}}},= _onTriggerClick:function(p_oEvent,p_oMenu){if(p_oEvent.ctrlKey){Event.sto= pEvent(p_oEvent);}},_onTriggerContextMenu:function(p_oEvent,p_oMenu){if(p= _oEvent.type=3D=3D"mousedown"&&!p_oEvent.ctrlKey){return;}=0A= Event.stopEvent(p_oEvent);YAHOO.widget.MenuManager.hideVisible();this.con= textEventTarget=3DEvent.getTarget(p_oEvent);this.triggerContextMenuEvent.= fire(p_oEvent);if(!this._bCancelled){this.cfg.setProperty("xy",Event.getX= Y(p_oEvent));this.show();}=0A= this._bCancelled=3Dfalse;},toString:function(){var = sReturnVal=3D"ContextMenu",sId=3Dthis.id;if(sId){sReturnVal+=3D(" = "+sId);}=0A= return = sReturnVal;},initDefaultConfig:function(){ContextMenu.superclass.initDefa= ultConfig.call(this);this.cfg.addProperty(DEFAULT_CONFIG.TRIGGER.key,{han= dler:this.configTrigger});},destroy:function(){this._removeEventHandlers(= );ContextMenu.superclass.destroy.call(this);},configTrigger:function(p_sT= ype,p_aArgs,p_oMenu){var = oTrigger=3Dp_aArgs[0];if(oTrigger){if(this._oTrigger){this._removeEventHa= ndlers();}=0A= this._oTrigger=3DoTrigger;Event.on(oTrigger,EVENT_TYPES.CONTEXT_MENU,this= ._onTriggerContextMenu,this,true);if(YAHOO.env.ua.opera){Event.on(oTrigge= r,EVENT_TYPES.CLICK,this._onTriggerClick,this,true);}}=0A= else{this._removeEventHandlers();}}});}());YAHOO.widget.ContextMenuItem=3D= function(p_oObject,p_oConfig){YAHOO.widget.ContextMenuItem.superclass.con= structor.call(this,p_oObject,p_oConfig);};YAHOO.lang.extend(YAHOO.widget.= ContextMenuItem,YAHOO.widget.MenuItem,{init:function(p_oObject,p_oConfig)= {if(!this.SUBMENU_TYPE){this.SUBMENU_TYPE=3DYAHOO.widget.ContextMenu;}=0A= YAHOO.widget.ContextMenuItem.superclass.init.call(this,p_oObject);var = oConfig=3Dthis.cfg;if(p_oConfig){oConfig.applyConfig(p_oConfig,true);}=0A= oConfig.fireQueue();},toString:function(){var = sReturnVal=3D"ContextMenuItem";if(this.cfg&&this.cfg.getProperty("text"))= {sReturnVal+=3D(": "+this.cfg.getProperty("text"));}=0A= return = sReturnVal;}});(function(){YAHOO.widget.MenuBar=3Dfunction(p_oElement,p_o= Config){YAHOO.widget.MenuBar.superclass.constructor.call(this,p_oElement,= p_oConfig);};function checkPosition(p_sPosition){if(typeof = p_sPosition=3D=3D"string"){return("dynamic,static".indexOf((p_sPosition.t= oLowerCase()))!=3D-1);}}=0A= var = Event=3DYAHOO.util.Event,Dom=3DYAHOO.util.Dom,MenuBar=3DYAHOO.widget.Menu= Bar,DEFAULT_CONFIG=3D{"POSITION":{key:"position",value:"static",validator= :checkPosition,supercedes:["visible"]},"SUBMENU_ALIGNMENT":{key:"submenua= lignment",value:["tl","bl"]},"AUTO_SUBMENU_DISPLAY":{key:"autosubmenudisp= lay",value:false,validator:YAHOO.lang.isBoolean}};YAHOO.lang.extend(MenuB= ar,YAHOO.widget.Menu,{init:function(p_oElement,p_oConfig){if(!this.ITEM_T= YPE){this.ITEM_TYPE=3DYAHOO.widget.MenuBarItem;}=0A= MenuBar.superclass.init.call(this,p_oElement);this.beforeInitEvent.fire(M= enuBar);if(p_oConfig){this.cfg.applyConfig(p_oConfig,true);}=0A= this.initEvent.fire(MenuBar);},CSS_CLASS_NAME:"yuimenubar",_onKeyDown:fun= ction(p_sType,p_aArgs,p_oMenuBar){var = oEvent=3Dp_aArgs[0],oItem=3Dp_aArgs[1],oSubmenu,oItemCfg,oNextItem;if(oIt= em&&!oItem.cfg.getProperty("disabled")){oItemCfg=3DoItem.cfg;switch(oEven= t.keyCode){case 37:case = 39:if(oItem=3D=3Dthis.activeItem&&!oItemCfg.getProperty("selected")){oIte= mCfg.setProperty("selected",true);}=0A= else{oNextItem=3D(oEvent.keyCode=3D=3D37)?oItem.getPreviousEnabledSibling= ():oItem.getNextEnabledSibling();if(oNextItem){this.clearActiveItem();oNe= xtItem.cfg.setProperty("selected",true);if(this.cfg.getProperty("autosubm= enudisplay")){oSubmenu=3DoNextItem.cfg.getProperty("submenu");if(oSubmenu= ){oSubmenu.show();}}=0A= oNextItem.focus();}}=0A= Event.preventDefault(oEvent);break;case = 40:if(this.activeItem!=3DoItem){this.clearActiveItem();oItemCfg.setProper= ty("selected",true);oItem.focus();}=0A= oSubmenu=3DoItemCfg.getProperty("submenu");if(oSubmenu){if(oSubmenu.cfg.g= etProperty("visible")){oSubmenu.setInitialSelection();oSubmenu.setInitial= Focus();}=0A= else{oSubmenu.show();}}=0A= Event.preventDefault(oEvent);break;}}=0A= if(oEvent.keyCode=3D=3D27&&this.activeItem){oSubmenu=3Dthis.activeItem.cf= g.getProperty("submenu");if(oSubmenu&&oSubmenu.cfg.getProperty("visible")= ){oSubmenu.hide();this.activeItem.focus();}=0A= else{this.activeItem.cfg.setProperty("selected",false);this.activeItem.bl= ur();}=0A= Event.preventDefault(oEvent);}},_onClick:function(p_sType,p_aArgs,p_oMenu= Bar){MenuBar.superclass._onClick.call(this,p_sType,p_aArgs,p_oMenuBar);va= r = oItem=3Dp_aArgs[1],oEvent,oTarget,oActiveItem,oConfig,oSubmenu;if(oItem&&= !oItem.cfg.getProperty("disabled")){oEvent=3Dp_aArgs[0];oTarget=3DEvent.g= etTarget(oEvent);oActiveItem=3Dthis.activeItem;oConfig=3Dthis.cfg;if(oAct= iveItem&&oActiveItem!=3DoItem){this.clearActiveItem();}=0A= oItem.cfg.setProperty("selected",true);oSubmenu=3DoItem.cfg.getProperty("= submenu");if(oSubmenu&&oTarget!=3DoItem.submenuIndicator){if(oSubmenu.cfg= .getProperty("visible")){oSubmenu.hide();}=0A= else{oSubmenu.show();}}}},toString:function(){var = sReturnVal=3D"MenuBar",sId=3Dthis.id;if(sId){sReturnVal+=3D(" "+sId);}=0A= return = sReturnVal;},initDefaultConfig:function(){MenuBar.superclass.initDefaultC= onfig.call(this);var = oConfig=3Dthis.cfg;oConfig.addProperty(DEFAULT_CONFIG.POSITION.key,{handl= er:this.configPosition,value:DEFAULT_CONFIG.POSITION.value,validator:DEFA= ULT_CONFIG.POSITION.validator,supercedes:DEFAULT_CONFIG.POSITION.superced= es});oConfig.addProperty(DEFAULT_CONFIG.SUBMENU_ALIGNMENT.key,{value:DEFA= ULT_CONFIG.SUBMENU_ALIGNMENT.value});oConfig.addProperty(DEFAULT_CONFIG.A= UTO_SUBMENU_DISPLAY.key,{value:DEFAULT_CONFIG.AUTO_SUBMENU_DISPLAY.value,= validator:DEFAULT_CONFIG.AUTO_SUBMENU_DISPLAY.validator});}});}());YAHOO.= widget.MenuBarItem=3Dfunction(p_oObject,p_oConfig){YAHOO.widget.MenuBarIt= em.superclass.constructor.call(this,p_oObject,p_oConfig);};YAHOO.lang.ext= end(YAHOO.widget.MenuBarItem,YAHOO.widget.MenuItem,{init:function(p_oObje= ct,p_oConfig){if(!this.SUBMENU_TYPE){this.SUBMENU_TYPE=3DYAHOO.widget.Men= u;}=0A= YAHOO.widget.MenuBarItem.superclass.init.call(this,p_oObject);var = oConfig=3Dthis.cfg;if(p_oConfig){oConfig.applyConfig(p_oConfig,true);}=0A= oConfig.fireQueue();},CSS_CLASS_NAME:"yuimenubaritem",CSS_LABEL_CLASS_NAM= E:"yuimenubaritemlabel",toString:function(){var = sReturnVal=3D"MenuBarItem";if(this.cfg&&this.cfg.getProperty("text")){sRe= turnVal+=3D(": "+this.cfg.getProperty("text"));}=0A= return = sReturnVal;}});YAHOO.register("menu",YAHOO.widget.Menu,{version:"2.3.0",b= uild:"442"}); ------=_NextPart_000_00C1_01C8E336.6DBBC320 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.museum-neuchatel.ch/new/js/mhnn-menu.js YAHOO.example.onMenuBarReady =3D function() {=0A= =0A= // Animation object=0A= =0A= var oAnim;=0A= =0A= =0A= // Utility function used to setup animation for submenus=0A= =0A= function setupMenuAnimation(p_oMenu) {=0A= if(!p_oMenu.animationSetup) {=0A= var aItems =3D p_oMenu.getItemGroups();=0A= if(aItems && aItems[0]) {=0A= var i =3D aItems[0].length - 1;=0A= var oSubmenu;=0A= do {=0A= oSubmenu =3D = p_oMenu.getItem(i).cfg.getProperty("submenu");=0A= if(oSubmenu) {=0A= = oSubmenu.beforeShowEvent.subscribe(onMenuBeforeShow, oSubmenu, true);=0A= = oSubmenu.showEvent.subscribe(onMenuShow, oSubmenu, true);=0A= }=0A= }=0A= while(i--);=0A= }=0A= p_oMenu.animationSetup =3D true;=0A= }=0A= }=0A= =0A= // "beforeshow" event handler for each submenu of the = menu bar=0A= function onMenuBeforeShow(p_sType, p_sArgs, p_oMenu) {=0A= if(oAnim && oAnim.isAnimated()) {=0A= oAnim.stop();=0A= oAnim =3D null;=0A= }=0A= YAHOO.util.Dom.setStyle(this.element, "overflow", = "hidden");=0A= YAHOO.util.Dom.setStyle(this.body, "marginTop", ("-" = + this.body.offsetHeight + "px"));=0A= }=0A= // "show" event handler for each submenu of the menu bar=0A= =0A= function onMenuShow(p_sType, p_sArgs, p_oMenu) {=0A= =0A= oAnim =3D new YAHOO.util.Anim(=0A= this.body, =0A= { marginTop: { to: 0 } },=0A= .5, =0A= YAHOO.util.Easing.easeOut=0A= );=0A= =0A= oAnim.animate();=0A= =0A= var me =3D this;=0A= function onTween() {=0A= me.cfg.refireEvent("iframe");=0A= }=0A= =0A= function onAnimationComplete() {=0A= YAHOO.util.Dom.setStyle(me.body, "marginTop", = ("0px"));=0A= YAHOO.util.Dom.setStyle(me.element, "overflow", = "visible");=0A= setupMenuAnimation(me);=0A= }=0A= =0A= =0A= /*=0A= Refire the event handler for the "iframe" =0A= configuration property with each tween so that = the =0A= size and position of the iframe shim remain in = sync =0A= with the menu.=0A= */=0A= =0A= if(this.cfg.getProperty("iframe") =3D=3D true) {=0A= =0A= oAnim.onTween.subscribe(onTween);=0A= =0A= }=0A= =0A= oAnim.onComplete.subscribe(onAnimationComplete);=0A= =0A= }=0A= =0A= =0A= // "render" event handler for the menu bar=0A= =0A= function onMenuRender(p_sType, p_sArgs, p_oMenu) {=0A= =0A= setupMenuAnimation(p_oMenu);=0A= =0A= }=0A= =0A= =0A= // Instantiate and render the menu bar=0A= =0A= var oMenuBar =3D new YAHOO.widget.MenuBar("topmenu", { = autosubmenudisplay:true, hidedelay:750, lazyload:true, zindex:10, = iframe:true });=0A= =0A= =0A= // Subscribe to the "render" event=0A= =0A= oMenuBar.renderEvent.subscribe(onMenuRender, oMenuBar, = true);=0A= =0A= oMenuBar.render();=0A= =0A= };=0A= =0A= // Initialize and render the menu bar when it is available = in the DOM=0A= YAHOO.util.Event.onContentReady("topmenu", = YAHOO.example.onMenuBarReady);=0A= ------=_NextPart_000_00C1_01C8E336.6DBBC320 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.museum-neuchatel.ch/new/js/navigation.js var winW =3D 630, winH =3D 460;=0A= if (parseInt(navigator.appVersion)>3) {=0A= if (navigator.appName=3D=3D"Netscape") {=0A= winW =3D window.innerWidth;=0A= winH =3D window.innerHeight;=0A= }=0A= if (navigator.appName.indexOf("Microsoft")!=3D-1) {=0A= winW =3D document.body.offsetWidth ;=0A= winH =3D document.body.offsetHeight - 30;=0A= }=0A= }=0A= cookieExpiration =3D new Date;=0A= cookieExpiration.setMonth(cookieExpiration.getMonth()+1);=0A= function getCookieVal(offset)=0A= {=0A= var endstr=3Ddocument.cookie.indexOf (";", offset);=0A= if (endstr=3D=3D-1) endstr=3Ddocument.cookie.length;=0A= return unescape(document.cookie.substring(offset, = endstr));=0A= }=0A= =0A= function readCookie(name)=0A= {=0A= var arg=3Dname+"=3D";=0A= var alen=3Darg.length;=0A= var clen=3Ddocument.cookie.length;=0A= var i=3D0;=0A= while (i 2) ? argv[2] : null;=0A= var path=3D(argc > 3) ? argv[3] : null;=0A= var domain=3D(argc > 4) ? argv[4] : null;=0A= var secure=3D(argc > 5) ? argv[5] : false;=0A= document.cookie=3Dname+"=3D"+escape(valeur)+=0A= ((expires=3D=3Dnull) ? "" : ("; = expires=3D"+expires.toGMTString()))+=0A= ((path=3D=3Dnull) ? "" : ("; path=3D"+path))+=0A= ((domain=3D=3Dnull) ? "" : ("; domain=3D"+domain))+=0A= ((secure=3D=3Dtrue) ? "; secure" : "");=0A= }=0A= function updateScrolls()=0A= {=0A= menu2.style.height =3D (winH - 338) + 'px';=0A= updateGalleryScroll();=0A= updateMenu2Scroll();=0A= =0A= }=0A= function updateGalleryScroll()=0A= {=0A= if (galleryScroll <=3D 1)=0A= {=0A= = document.getElementById('gallery-arrow-left').style.visibility =3D = 'hidden';=0A= }=0A= else=0A= {=0A= = document.getElementById('gallery-arrow-left').style.visibility =3D = 'visible';=0A= }=0A= if (galleryScroll > gallery.scrollLeft)=0A= {=0A= = document.getElementById('gallery-arrow-right').style.visibility =3D = 'hidden';=0A= }=0A= else=0A= {=0A= = document.getElementById('gallery-arrow-right').style.visibility =3D = 'visible';=0A= }=0A= }=0A= function updateMenu2Scroll()=0A= {=0A= if (menu2Scroll <=3D 1)=0A= {=0A= = document.getElementById('menu2-arrow-up').style.visibility =3D 'hidden';=0A= }=0A= else=0A= {=0A= = document.getElementById('menu2-arrow-up').style.visibility =3D 'visible';=0A= }=0A= if (menu2Scroll > menu2.scrollTop)=0A= {=0A= = document.getElementById('menu2-arrow-down').style.visibility =3D = 'hidden';=0A= }=0A= else=0A= {=0A= = document.getElementById('menu2-arrow-down').style.visibility =3D = 'visible';=0A= }=0A= }=0A= =0A= function moveGalleryLeft()=0A= {=0A= galleryScroll =3D galleryScroll - steps;=0A= gallery.scrollLeft =3D galleryScroll;=0A= updateGalleryScroll();=0A= }=0A= function moveGalleryRight()=0A= {=0A= galleryScroll =3D galleryScroll + steps;=0A= gallery.scrollLeft =3D galleryScroll;=0A= updateGalleryScroll();=0A= }=0A= function moveMenu2Up()=0A= {=0A= menu2Scroll =3D menu2Scroll - steps;=0A= menu2.scrollTop =3D menu2Scroll;=0A= = writeCookie('menu2Scroll',menu2.scrollTop,cookieExpiration);=0A= updateMenu2Scroll();=0A= }=0A= function moveMenu2Down()=0A= {=0A= menu2Scroll =3D menu2Scroll + steps;=0A= menu2.scrollTop =3D menu2Scroll;=0A= = writeCookie('menu2Scroll',menu2.scrollTop,cookieExpiration);=0A= updateMenu2Scroll();=0A= } ------=_NextPart_000_00C1_01C8E336.6DBBC320--