From: Subject: =?Windows-1252?Q?ScienceDirect_-_Zeitschrift_f=FCr_Evidenz=2C_Fortbildung?= =?Windows-1252?Q?_und_Qualit=E4t_im_Gesundheitswesen_:_Was_ist_Evidenzbas?= =?Windows-1252?Q?ierte_Medizin_auch_noch=3F?= Date: Wed, 20 Oct 2010 15:01:49 +0200 MIME-Version: 1.0 Content-Type: multipart/related; type="text/html"; boundary="----=_NextPart_000_0000_01CB7067.B8A11D20" X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5931 This is a multi-part message in MIME format. ------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.sciencedirect.com/science?_ob=ArticleURL&_udi=B8JJB-5172KR1-2&_user=1527793&_coverDate=10%2F12%2F2010&_rdoc=1&_fmt=high&_orig=search&_origin=search&_sort=d&_docanchor=&view=c&_acct=C000053539&_version=1&_urlVersion=0&_userid=1527793&md5=e70afb4bdb566178318c2641f1d59e63&searchtype=a =EF=BB=BF ScienceDirect - Zeitschrift f=C3=BCr Evidenz, = Fortbildung und Qualit=C3=A4t im Gesundheitswesen : Was ist = Evidenzbasierte Medizin auch noch? =20
=
=20
Remember me
=20
Forgotten your username or password?
3D""=20 =
=20 =
Articles     Author Advanced=20 search
Images =20     Journal/Book title
=20 Search tips =
Font = Size:   = =20
=20
3D"=20 3D"=20
3D"=20
Related = Articles
=20
3D""=20 &nb= sp;View=20 more related = articles
3D"=20
3D""=20=20 3D""=20=20
3D""=20=20
Cited by = (0)
=20
 3D""=20 Th= is=20 article has not yet been cited.
Provided=20 by Scopus
3D""
3D"PANGAEA
Thumbnails - = selected | F= ull-Size=20 images 
Thumbnails=20 - selected | Full-Size=20 images 
3D""
Article -=20 selected
3D""=20
3D""
Figures/Tables - = selected
3D""
References - = selected
3D"
3D"
3D"
3D""=20doi:10.1016/j.zefq.2010.09.022 | How to Cite or Link Using = DOI
Copyright =C2=A9 2010=20 Published by Elsevier GmbH.
3D""=20&= nbsp; Permissions & = Reprints

Schwerpunkt

Was ist Evidenzbasierte Medizin auch noch? =

What else is Evidence-based Medicine?

Dr. Johannes=20 Hauswaldt MPH<= /A>,=20 a,=20

a Institut f=C3=BCr = Allgemeinmedizin,=20 Medizinische Hochschule Hannover


Available online 12 October 2010. =

Zusammenfassung

Praktizierte evidenzbasierte Medizin verbindet die individuelle = klinische=20 Erfahrung des Arztes mit externer Evidenz. Seltsamerweise wird im=20 wissenschaftlichen Diskurs fast ausschlie=C3=9Flich externe Evidenz = thematisiert,=20 nicht jedoch ihr Pendant, die individuelle klinische Erfahrung.

Neben dem Fehlen geeigneter intellektueller Instrumente daf=C3=BCr = mag ein Grund=20 in der gegenseitigen Verborgenheit von Denken und Handeln, Wahrnehmen = und=20 Bewegen (Dreht=C3=BCrprinzip, Viktor von Weizs=C3=A4cker) liegen. = Dahinter stehen,=20 unkommensurabel, die Welt des Physikalischen und die des Biologischen = mit einem=20 Ich-begabten Wesen, also das Dilemma des mit einem Bewusstsein = ausgestatteten=20 Subjekts in einer Welt von Objekten.

Im Praktizieren von Medizin wird dieses Dilemma des Selbstbezugs = allein=20 angemessen in einem ganzheitlichen Handlungsansatz aufgel=C3=B6st, dem = neben=20 rationalen und extern-evidenten Gesichtspunkten auch biografische, = spirituelle,=20 emotionale und vor-rationale Elemente zugrunde liegen, welche in der=20 individuellen klinischen Erfahrung des Arztes versammelt sind.

Summary

The practice of evidence-based medicine means integrating individual = clinical=20 expertise with the best available external clinical evidence. Strange = enough,=20 scientific discussion focuses on external evidence from systematic = research, but=20 neglects its counterpart, i.e., individual clinical expertise.

Apart from a lack of appropriate intellectual tools for approaching = the=20 latter, this might be due to the mutual concealment of thought and = action, of=20 sensor and motor activity (Viktor von Weizsaecker's principle of the = revolving=20 door). Behind this, and incommensurably different from each other, lie = the world=20 of physics and the world of biology with an ego animal, that is, the = dilemma of=20 the self-conscious subject in a world of objects.

When practicing medicine, this dilemma of self-reference is being = resolved=20 but only through a holistic approach combining rational and external = evidence=20 with biographical, spiritual, emotional and pre-rational elements = represented in=20 the physician's individual clinical expertise.

Schl=C3=BCsselw=C3=B6rter: Evidenzbasierte Medizin; = Individuelle=20 klinische Erfahrung; Subjekt, Arzt-Patient-Beziehung; = Ganzheitlich


Key words: evidence-based medicine; individual = clinical=20 expertise; subject; doctor-patient relationship; holistic

Article Outline

Fragen
Subjekt=20 in einer Welt der Objekte
Eigenes=20 Wissen und das der Anderen
Umfassendes=20 Wissen zum gemeinsamen Handeln
References
<= !-- articleText -->

Fragen

=E2=80=9EWas genau ist = eigentlich=20 Evidenzbasierte Medizin? Wieviel Raum l=C3=A4sst sie f=C3=BCr Empathie = oder gar f=C3=BCr=20 g=C3=A4nzlich =E2=80=9Eunwissenschaftliche=E2=80=9C Intuition? Kann EbM, = im Sinne David Sacketts,=20 dazu beitragen, Vertrauen und Transparenz in der gemeinsamen=20 Entscheidungsfindung von Arzt und Patient zu schaffen, oder ist sie = dabei=20 hinderlich?=E2=80=9C

Fragen wie diese, gestellt von S=C3=B6nnichsen in seiner Einladung = zum Salzburger=20 Kongress =E2=80=9EEbM =E2=80=93 ein Gewinn f=C3=BCr die = Arzt-Patienten-Beziehung?=E2=80=9C im Februar 2010,=20 lassen sich am besten angehen, wenn zun=C3=A4chst die =E2=80=9EMagna = charta=E2=80=9C der EbM=20 herangezogen wird (siehe [Kasten=20 1] and [Kasten=20 2]) [1].


Kasten 1. Was ist = Evidenzbasierte=20 Medizin?

=E2=80=9E=E2=80=A6 The practice of evidence based medicine means = integrating individual=20 clinical expertise with the best available external clinical evidence = from=20 systematic research.

By individual clinical expertise we mean the proficiency and judgment = that=20 individual clinicians acquire through clinical experience and clinical = practice.=20 Increased expertise is reflected in many ways, but especially in more = effective=20 and efficient diagnosis and in the more thoughtful identification and=20 compassionate use of individual patients=E2=80=99 predicaments, rights, = and preferences=20 in making clinical decisions about their care.

By best available external clinical evidence we mean clinically = relevant=20 research, often from the basic sciences of medicine, but especially from = patient=20 centred clinical research into the accuracy and precision of diagnostic = tests=20 (including the clinical examination), the power of prognostic markers, = and the=20 efficacy and safety of therapeutic, rehabilitative, and preventive = regimens =E2=80=A6=E2=80=9C=20 [1]

=E2=80=9EPraktizieren von Evidenzbasierter Medizin hei=C3=9Ft, = individuelle klinische=20 Erfahrung zu verbinden mit der bestens verf=C3=BCgbaren externen = klinischen Evidenz=20 aus systematischer Forschung.

Mit =E2=80=9Eindividueller klinischer Erfahrung=E2=80=9C meinen wir = Meisterschaft und=20 Urteilskraft, die der einzelne Kliniker durch klinisch Erfahrung und = Praxis=20 erwirbt. Gewachsene Erfahrung spiegelt sich in vielerlei Weise wider,=20 insbesondere aber in schnellerer und besserer Diagnosestellung sowie in = einer=20 =C3=BCberlegteren Wahrnehmung und in einem angemesseneren Gebrauch der=20 patientenindividuellen Gegebenheiten, seiner Rechte und W=C3=BCnsche bei = der=20 klinischen Entscheidung =C3=BCber seine medizinische Versorgung.

Mit der =E2=80=9Ebestens verf=C3=BCgbaren externen klinischen = Evidenz=E2=80=9C meinen wir klinisch=20 bedeutsame Forschungsergebnisse, oftmals aus den medizinischen=20 Grundlagenf=C3=A4chern, insbesondere aber aus patientenzentrierter = Beforschung der=20 Empfindlichkeit und Genauigkeit von diagnostischen Tests = (einschlie=C3=9Flich der=20 klinischen Untersuchung), der Aussagekraft prognostischer Faktoren, und = der=20 Wirksamkeit und Sicherheit von therapeutischen, rehabilitativen und = pr=C3=A4ventiven=20 Anwendungen.=E2=80=9C [=C3=9Cbersetzung JH]


Kasten 2. Individuelle klinische Expertise und externe Evidenz =

=E2=80=9E=E2=80=A6 Good doctors use both individual clinical = expertise and the best available=20 external evidence, and neither alone is enough.

Without clinical expertise, practice risks becoming tyrannised by = evidence,=20 for even excellent external evidence may be inapplicable to or = inappropriate for=20 an individual patient.

Without current best evidence, practice risks becoming rapidly out of = date,=20 to the detriment of patients.=E2=80=9C [1]

=E2=80=9EDer gute Arzt macht Gebrauch von Beidem, von der = individuellen klinischen=20 Erfahrung und von der bestens verf=C3=BCgbaren externen Evidenz, denn = keine von=20 Beiden ist allein ausreichend.

Ohne klinische Erfahrung wird medizinischem Handeln durch Studien=20 m=C3=B6glicherweise Gewalt angetan, denn auch hervorragende = Studienergebnisse m=C3=B6gen=20 nicht anwendbar oder angemessen f=C3=BCr den einzelnen Patienten = sein.

Ohne die gegenw=C3=A4rtig beste Erkenntnis droht =C3=A4rztliche = Praxis schnell zu=20 veralten, zum Schaden des Patienten.=E2=80=9C [=C3=9Cbersetzung = JH]


Praktizierte evidenzbasierte Medizin, so also Sackett, verbindet die=20 individuelle klinische Erfahrung des Arztes mit externer Evidenz.

Seltsamerweise jedoch ist, wenn von =E2=80=9Eevidenzbasierter = Medizin=E2=80=9C (EbM) im=20 wissenschaftlichen Diskurs gesprochen wird, fast ausschlie=C3=9Flich = externe Evidenz=20 gemeint. Das gleichwertige Pendant, n=C3=A4mlich die individuelle = klinische=20 Erfahrung, sozusagen die =E2=80=9EInterne Evidenz=E2=80=9C des Arztes, = hingegen wird gar nicht=20 betrachtet, sondern ausgeblendet, oder als = =E2=80=9Eunwissenschaftlich=E2=80=9C=20 diskreditiert.

K=C3=B6nnte ein Grund daf=C3=BCr in einem verengten oder einseitigen=20 Wissenschaftsbegriff liegen? Oder daran, dass es uns an intellektuellen=20 Instrumenten gebricht, diese andere Seite der Medaille zu umfassen und = zu=20 (be-)greifen? Trifft gar das Bild vom Betrunkenen zu, der nachts seinen=20 Hausschl=C3=BCssel unter der Stra=C3=9Fenlaterne sucht, weil er dort = besser sehen kann,=20 anstatt dort, wo er ihn verloren haben k=C3=B6nnte?

Jeden Arzt und jede =C3=84rztin ergreift Unbehagen, sollte er/sie = das, was ihm/ihr=20 allt=C3=A4glich begegnet, allein mit den Mitteln der=20 naturwissenschaftlich-materialistischen Denkungsart abbilden und angehen = (siehe=20 noch einmal Kasten=20 2).

Klinische Praktiker ahnen, dass es etwas geben muss, das = zus=C3=A4tzlich,=20 =E2=80=9Esenkrecht=E2=80=9C auf der Ebene der =C3=A4u=C3=9Feren Evidenz = aufsetzt =E2=80=93 sie ahnen den =E2=80=9Ezweiten=20 Bierdeckel=E2=80=9C, den Kamps und Harms als Metapher in ihrer Skizze = haus=C3=A4rztlicher=20 Semiotik anf=C3=BChren, =E2=80=9E=E2=80=A6 zwei um 90 Grad verdrehte = Fl=C3=A4chen: schaut man die eine=20 Fl=C3=A4che an, sieht man die andere nur im Profil und umgekehrt = =E2=80=A6 ein Ganzes mit=20 zwei unterschiedlichen Perspektiven =E2=80=A6 ein Oloid=E2=80=9C, mit = welcher Metapher diese auf=20 das Gemessene, das Angemessene und das Erlebte in der Begegnung von Arzt = und=20 Patient deuten [2].

Doch w=C3=A4hrend die Welt der externen Evidenz einfach = zug=C3=A4nglich in einem=20 trivialen Sinne ist, sind Versuche, die =E2=80=9Einnere = Wahrheit=E2=80=9C des handelnden Arztes=20 (und gar des Patienten) an's Tageslicht zu bringen, zu externalisieren,=20 m=C3=BChevoll, aber auch notwendig, zwar vielfach gemacht, jedoch = unvollst=C3=A4ndig und=20 immer unvollendet. Warum dem so ist, soll im Folgenden nachgegangen=20 werden.

Subjekt in einer Welt der Objekte

Die Welt der =E2=80=9Eexternen Evidenz=E2=80=9C ist per definitionem = die Welt, der der=20 Beobachter und Denkende gegen=C3=BCbersteht, und die f=C3=BCr ihn zum = =E2=80=9EObjekt=E2=80=9C wird, die=20 er auch =E2=80=9Ebehandeln=E2=80=9C kann. Die Welt der individuellen = klinischen Erfahrung=20 hingegen, der professionell-biografischen Expertise des einzelnen = Arztes, hier=20 zun=C3=A4chst auch als Beobachter verstanden, ist f=C3=BCr diesen nicht = allein Objekt,=20 vielmehr ist er gleichzeitig wesentlich und untrennbar auch Subjekt in = dieser =E2=80=93=20 eine g=C3=A4nzlich andere, seltsam gebrochene, die Fallen des = Selbstbezugs und der=20 Selbstt=C3=A4uschung enthaltende Welt. Zudem ist auch der Andere = gegen=C3=BCber, der=20 Patient, ganz sicherlich nicht allein Objekt, sondern ebenfalls = wesentlich=20 Subjekt.

Viktor von Weizs=C3=A4cker untersucht dieses eigenartige = Aufeinanderstehen, diese=20 Inkommensurabilit=C3=A4t der Welt des Physikalischen und der des = Biologischen mit=20 einem Ich-begabten Wesen genauer. Klassische =E2=80=9EPhysik setzt = voraus, dass in der=20 Forschung ein Erkenntnis-Ich einer Welt als einem von ihr = unabh=C3=A4ngigen=20 Gegenstand gegen=C3=BCbergestellt sei. Biologie erf=C3=A4hrt, dass das = Lebende sich in=20 einer Bestimmung befindet, deren Grund selbst nicht Gegenstand werden = kann.=E2=80=9C=20 Dieses von ihm als =E2=80=9EGrundverh=C3=A4ltnis=E2=80=9C in der = Biologie Bezeichnete =E2=80=9Eist also=20 eigentlich das Verhalten zu einem unobjektivierbaren Grund, und nicht, = wie bei=20 Kausalit=C3=A4t, ein Verh=C3=A4ltnis zwischen erkennbaren Dingen, so = etwa zwischen Ursache=20 und Wirkung=E2=80=9C [3,Seite=20 188].

Weizs=C3=A4cker entfaltet daraus zudem die eigent=C3=BCmliche = Unm=C3=B6glichkeit,=20 gleichzeitig handeln und =C3=BCber das Handeln nachdenken zu wollen oder = zu k=C3=B6nnen,=20 und bezeichnet diese gegenseitige Verborgenheit von Wahrnehmen und = Bewegen als=20 =E2=80=9EDreht=C3=BCrprinzip=E2=80=9C [3,Seite=20 21]. Praktiker l=C3=B6sen dieses Dilemma der gegenseitigen = Verborgenheit von=20 Denken und Tun =E2=80=93 die vermutlich einen Schutz vor der Aporie im = unendlichen=20 Rekurs darstellt =E2=80=93 konkret und f=C3=BCr den individuellen = Patienten auf, indem sie=20 sozusagen =E2=80=9Efortw=C3=A4hrend oszillieren=E2=80=9C zwischen den = beiden Welten, zwischen den=20 beiden =E2=80=9EBierdeckeln=E2=80=9C und deren Vorder- und = R=C3=BCckseite.

Dem Arzt, der diese Welten des Physikalischen und des Biologischen = zum Wohle=20 des individuellen Patienten verbinden muss, wird dies nicht gelingen, = solange er=20 nur =E2=80=9Eau=C3=9Fen vor=E2=80=9C, =E2=80=9Eobjektiv=E2=80=9C bleibt; = er muss sich vielmehr hineinbegeben,=20 teilhaben, Partei ergreifen und sich einbinden lassen. F=C3=BCr das = Anteil nehmende=20 Subjekt f=C3=BChrt Weizs=C3=A4cker den Begriff des = =E2=80=9EPathischen=E2=80=9C, neben dem des=20 =E2=80=9EOntischen=E2=80=9C, ein und meint damit =E2=80=9E... die Seite = der biologischen Existenz, in=20 der diese Existenz nicht als Daseiende gegeben, sondern als = =E2=80=9Ewill=E2=80=9C, =E2=80=9Ekann=E2=80=9C,=20 =E2=80=9Edarf=E2=80=9C, =E2=80=9Esoll=E2=80=9C, = =E2=80=9Emu=C3=9F=E2=80=9C zur Entscheidung aufgegeben ist=E2=80=9C [3,Seiten=20 183ff, Seite 202].

Dies gilt gleicherma=C3=9Fen f=C3=BCr den Forscher in der Medizin: = =E2=80=9EUm Lebendes zu=20 erforschen, muss man sich am Leben beteiligen.=E2=80=9C [3,V] Wenn = =E2=80=9E... wir den=20 =C3=A4u=C3=9Ferlich-substantiellen Dualismus von Psyche und Physis durch = den polar=20 gebundenen Unitarismus von Subjekt und Objekt ersetzen ... gibt [es] = keinen=20 erh=C3=B6hten Ort, der aus der Vogelperspektive die Komposition aller = Akte zu=20 =C3=BCberschauen gestattet; wir m=C3=BCssen uns in die Lebensbewegung = immer wieder selbst=20 verstricken lassen, um auch nur St=C3=BCcke von ihr zu begreifen. Die = Voraussetzungen=20 aber f=C3=BCr eine Begegnung von Subjekt und Objekt ... sind = erf=C3=BCllt, wenn das, was=20 vom Subjekt her bewirkt erscheint, n=C3=A4mlich Bewegung und = Wahrnehmung, mit dem was=20 vom Objekt her bewirkt erscheint, n=C3=A4mlich die physische = Gesetzm=C3=A4=C3=9Figkeit,=20 einander begegnen. Das geschieht, wenn die organischen Akte den = =C3=A4u=C3=9Feren=20 Naturvorg=C3=A4ngen kongruieren und diese ebenso den Bedingungen des = Organismus sich=20 einf=C3=BCgen. Es folgt daraus das, was die Biologie seit Darwin als = Anpassung=20 bezeichnet=E2=80=9C [3,Seite=20 182].

Eigenes Wissen und das der Anderen

Externe Evidenz ist auch externalisierte Evidenz, explizites Wissen, = von=20 Dritten erzeugt. Externalisiert hei=C3=9Ft auch rationalisiert und = verbalisiert.=20 Dieses Wissen ist daher auch lehrbar, ist = =E2=80=9ELehrbuchwissen=E2=80=9C, ist =E2=80=9Eformal body of=20 science=E2=80=9C (textbook knowledge). Das Pendant bezeichnet Sackett zu = Recht nicht als=20 =E2=80=9Einterne Evidenz=E2=80=9C, vielmehr als =E2=80=9Eindividuelle = klinische Erfahrung=E2=80=9C des Arztes,=20 ein w=C3=A4hrend dessen (professioneller) Biografie spezifisch = erworbenes und=20 internalisiertes Erfahrungswissen. Denn mag auch f=C3=BCr das Subjekt, = den Arzt, das,=20 was er wei=C3=9F oder zu wissen glaubt, intern =E2=80=9Eevident=E2=80=9C = sein und eine ausreichend=20 sichere Grundlage f=C3=BCr sein Handeln bilden, so bleibt es doch = infolge seines=20 impliziten Charakters verborgen, jedenfalls f=C3=BCr den Anderen, den = Patienten, den=20 Studenten, den wissenschaftlichen Kollegen, letztlich aber weitgehend = auch f=C3=BCr=20 das Subjekt, den Arzt selbst, und tr=C3=A4gt damit die Gefahr des = subjektiven Irrens=20 und des Selbstbezugs (Solipsismus) in sich.

W=C3=A4hrend =E2=80=9Eexterne Evidenz=E2=80=9C aus einem = m=C3=B6glichst umfassenden Querschnitt des=20 gegenw=C3=A4rtigen Weltwissens (medizinischen Wissens) besteht, = Vergangenes nur=20 insofern umfasst, als es nicht =C3=BCberholt ist, und ohne weiteres = abnimmt=20 (=E2=80=9EHalbwertszeit medizinischen Wissens=E2=80=9C), beinhaltet = =E2=80=9Eindividuelle klinische=20 Erfahrung=E2=80=9C einen L=C3=A4ngsschnitt aus lebenslang erworbenem = Wissen des Einzelnen und=20 nimmt in aller Regel stets zu. Zwar vergisst auch jeder Arzt = selbstverst=C3=A4ndlich=20 fortw=C3=A4hrend, jedoch w=C3=A4chst (bestenfalls) fortw=C3=A4hrend sein = Wissen bez=C3=BCglich=20 seiner Aufgaben als Praktiker und durch sie.

Die Generierung externer Evidenz geschieht in einem fortlaufenden, = wenn auch=20 nicht unbedingt gradlinigen Prozess. Das Nachvollziehen, = =E2=80=9ENachbilden=E2=80=9C dieser=20 externen Evidenz, und damit auch das Generieren von =E2=80=9Einterner = Evidenz=E2=80=9C, erfolgt=20 bei jedem Mediziner ebenfalls fortlaufend, insbesondere im Rahmen seiner = Ausbildung als Medizinstudent und junger Arzt, allerdings individuell=20 verschieden.

Dieser individuelle Prozess hat den Charakter einer = =E2=80=9EEnt-fremdung=E2=80=9C von sich=20 selbst (eigentlich Ver-Fremdung, Fremdwerdung). Wenn =C3=A4rztliche Aus- = und=20 Weiterbildung vom Naiven =C3=BCber den Mediziner zum Arzt in Stufen = gesehen wird,=20 entspricht dies der zweiten Stufe eines Entwicklungsprozesses (siehe Tabelle=20 1), den Gebsattel allerdings f=C3=BCr jede =E2=80=9EBegegnung von = Arzt und Krankem und=20 das sich zwischen beiden entfaltende Verh=C3=A4ltnis=E2=80=9C benennt [4,Seiten=20 246 ff].

Tabelle 1.

Zur Sinnstruktur der =C3=84rztlichen Handlung [4].


1. Stufe
2. Stufe
3. Stufe
Beschreibung Die = elementar-sympathetische=20 Sinnstufe des Angerufenseins durch die Not eines Begegnenden Die Sinnstufe des = eigentlich=20 =C3=A4rztlichen =C3=9Cberlegens, Planens, Handelns Eine die = vorhergehenden Weisen=20 der Begegnung umfassende Sinnstufe der Partnerschaft von Arzt und=20 Krankem
Benennung Unmittelbarkeitsstufe Entfremdungsstufe die personale Stufe = des=20 Verh=C3=A4ltnisses von
Arzt und Krankem
Der Arzt als = Mitmensch,
als der durch=20 die Not eines Mitmenschen berufene Teilhaber an dieser Not
als der technische = Vollstrecker=20 dieser Berufung im Sinne der = =E2=80=9ENotbek=C3=A4mpfung=E2=80=9C:
der =E2=80=9EArzt=E2=80=9C im=20 landl=C3=A4ufigen Gebrauch des Wortes
als der personale = Partner der=20 Kranken,
N=C3=A4chster eines N=C3=A4chsten,
auf dem = Hintergrund der=20 Solidarit=C3=A4t des Menschengeschlechtes in seinem = Verh=C3=A4ltnis zum=20 Transzendenten,
das Schuld, Leiden, Tod und Liebe = einbegreift
Gefahr T=C3=A4uschung Irrtum Schuld

View=20 Within=20 Article

Diese immer wieder irritierend erlebte Entfremdung haben Bombeke und=20 Mitarbeiter in der psychischen Entwicklung von guten Medizinstudenten = untersucht=20 und beschrieben [5].=20 Doch auch der erfahrene Praktiker ben=C3=B6tigt von Zeit zu Zeit das = Heraustreten aus=20 dem allt=C3=A4glichen Handeln, auch als Schutzfunktion, um ein Verharren = in fehler-=20 und schuldhafter Routine zu vermeiden (=E2=80=9Ereflective = practitioner=E2=80=9C [6]=20 and [7]).

Umfassendes Wissen zum gemeinsamen Handeln

=E2=80=9EIndividuelle klinische Erfahrung=E2=80=9C ist jedoch nicht = allein internalisierte=20 externe Evidenz, sondern umfasst wesentlich auch geistige und eventuell=20 religi=C3=B6se, seelische und emotionale, sowie vor-rationale Elemente, = die der Arzt=20 sowohl in seiner professionellen Aus- und Weiterbildung und Praxis als = auch=20 w=C3=A4hrend seines gesamten pers=C3=B6nlichen Lebenswegs = aufnimmt.

Eine umfassende (=E2=80=9Eholistische=E2=80=9C) Betrachtung der in = praxi tats=C3=A4chlich=20 stattfindenden Arzt-Patienten-Begegnung muss ebenfalls neben = rationalisierbaren=20 auch ihre emotionalen und intuitiven Anteile integrieren. F=C3=BCr = letztere=20 beispielhaft seien Bauchentscheidungen genannt (=E2=80=9Egut = feelings=E2=80=9C) [8]=20 and [9],=20 denen wir alle unterliegen. Auf Seiten des Arztes beschreiben Stolper = und=20 Mitarbeiter ein =E2=80=9EAlarmgef=C3=BChl=E2=80=9C (Sense of Alarm) und = ein =E2=80=9EGef=C3=BChl der Sicherheit=E2=80=9C=20 (Sense of Reassurance) als Formen klinischen Wissens [10]=20 and [11].

Die Betrachtung geht dann =C3=BCber die Dyade von Arzt und Patient = hinaus, sie=20 bezieht zus=C3=A4tzlich sowohl die Begegnung selbst von Arzt und Patient = in ihrer=20 Singularit=C3=A4t mit ein, als auch das Umfeld (kontextuale Faktoren), = als auch deren=20 aller Interaktionen und Interferenzen, interpersonal und=20 situativ-generisch.

Im gl=C3=BCcklichen Fall m=C3=B6gen daraus kognitive und emotionale = =E2=80=9EEmpathie=E2=80=9C auf=20 Seiten des Arztes und =E2=80=9EVertrauen=E2=80=9C von Patient und Arzt = zueinander erwachsen,=20 deren neurostrukturelle und neurophysiologische Grundlagen wir gerade zu = verstehen beginnen [12]=20 and [13].

Wenn die Arzt-Patienten-Begegnung auf dieser internen Evidenz = gegr=C3=BCndet ist,=20 ebenso wie auf externer Evidenz, letztere auch zum =E2=80=9ELob des = Zweifels=E2=80=9C [14],=20 dann ist EbM ein Gewinn f=C3=BCr die = Arzt-Patienten-Beziehung.
Danksagung

Herrn Prof. Klaus Gahl, Braunschweig, sei f=C3=BCr mehrmalige = kritische Durchsicht=20 des Manuskripts gedankt.Erkl=C3=A4rung zu Interessenkonflikten

Hiermit erkl=C3=A4re ich, dass kein Interessenkonflikt in = finanzieller oder=20 immaterieller Hinsicht vorliegt, d.h. kein Interessenkonflikt = gem=C3=A4=C3=9F Uniform=20 Requirements for Manuscripts Submitted to Biomedical Journals (Stand = Oktober=20 2004).

References

[1]=20 D.L. Sackett, W.M.C. Rosenberg, J.A. Muir Gray, R.B. Haynes and W. Scott = Richardson, Evidence based medicine: What it is and what it = isn=E2=80=99t, BMJ=20 312 (1996), pp. 71=E2=80=9372. View Record in Scopus | Cited By in Scopus (3171)

[2]=20 H. Kamps and D. Harms, Die medizinische Theorie passt auf zwei = Bierdeckel =E2=80=93=20 Skizzen einer haus=C3=A4rztlichen Semiotik, Z Allg Med = 86=20 (2010), pp. 140=E2=80=93143. View Record in Scopus | Cited By in Scopus (1)

[3]=20 von Weizs=C3=A4cker V. Der Gestaltkreis: Theorie der Einheit von = Wahrnehmen und=20 Bewegen. Thieme Verlag, Stuttgart, New York; 6. unver=C3=A4nderte = Auflage=20 1996.

[4]=20 V.E. von Gebsattel, Zur Sinnstruktur der =C3=84rztlichen Handlung, = Studium=20 Generale 6 (1953), pp. = 461=E2=80=93471.

[5]=20 K. Bombeke, L. Symons, L. Debaene, B. De Winter, S. Schol and P. Van = Royen,=20 Help, I=E2=80=99m losing patient-centredness! Experiences of medical = students and their=20 teachers, Med Educ 44 (2010), pp. = 662=E2=80=93673. Full Text via CrossRef | View Record in Scopus | Cited By in Scopus (1)

[6]=20 D. Sch=C3=B6n, The Reflective Practitioner =E2=80=93 How Professionals = Think In Action, Basic=20 Books, New York (1983).

[7]=20 D. Sch=C3=B6n, Educating the Reflective Practitioner =E2=80=93 Toward a = New Design for=20 Teaching and Learning in the Professions, Jossey-Bass, San Francisco=20 (1987).

[8]=20 Gigerenzer G, Todd P, and the ABC Research Group. Simple Heuristics That = Make Us=20 Smart. Oxford University Press, New York 1999. Paperback edition=20 2001.

[9]=20 Gigerenzer G. Bauchentscheidungen: Die Intelligenz des Unbewussten und = die Macht=20 der Intuition. 1. Aufl, M=C3=BCnchen, 2008.

[10]=20 E. Stolper, M. van Bokhoven, P. Houben, P. Van Royen, M. van de Wiel and = T. van=20 der Weijden et al., The diagnostic role of gut feelings in = general=20 practice. A focus group study of the concept and its determinants, = BMC Family=20 Practice 10 (2009), p. 17 10.1186/1471-2296-10-17. Full Text via CrossRef | View Record in Scopus | Cited By in Scopus (6)

[11]=20 E. Stolper, P. Van Royen, M. van de Wiel, M. van Bokhoven, P. Houben and = T. van=20 der Weijden et al., Consensus on gut feelings in general = practice, BMC=20 Family Practice 10 (2009), p. 66 10.1186/1471-2296-10-66. Full Text via CrossRef | View Record in Scopus | Cited By in Scopus (4)

[12]=20 L. Cattaneo and G. Rizzolatti, The Mirror Neuron System, Arch = Neurol=20 66 (5) (2009), pp. 557=E2=80=93560. Full Text via CrossRef | View Record in Scopus | Cited By in Scopus (16)

[13]=20 J. Zaki, J. Weber, N. Bolger and K. Ochsner, The neural bases of = empathic=20 accuracy, PNAS 106 (27) (2009), pp. = 11382=E2=80=9311387. Full Text via CrossRef | View Record in Scopus | Cited By in Scopus (8)

[14]=20 Brecht B. Lob des Zweifels. In: Bertold Brechts Gedichte und Lieder, = Auswahl=20 Peter Suhrkamp. Suhrkamp Verlag, Berlin/Frankfurt a.M.=20 1970:22=E2=80=9325.


<= /A>Institut=20 f=C3=BCr Allgemeinmedizin Medizinische Hochschule Hannover = Carl-Neuberg-Strasse 1=20 30625 Hannover.

Note to users: The section = "Articles in=20 Press" contains peer reviewed accepted articles to be published in = this=20 journal. When the final article is assigned to an issue of the = journal,=20 the "Article in Press" version will be removed from this section = and will=20 appear in the associated published journal issue. The date it was = first=20 made available online will be carried over. Please be aware that = although=20 "Articles in Press" do not have all bibliographic details = available yet,=20 they can already be cited using the year of online publication and = the DOI=20 as follows: Author(s), Article Title, Journal (Year), DOI. Please = consult=20 the journal's reference style for the exact appearance of these = elements,=20 abbreviation of journal names and the use of punctuation. =
There are three types of "Articles in Press":
  • Accepted manuscripts: these are articles that have = been peer=20 reviewed and accepted for publication by the Editorial Board. = The=20 articles have not yet been copy edited and/or formatted in the = journal=20 house style.=20
  • Uncorrected proofs: these are copy edited and = formatted=20 articles that are not yet finalized and that will be corrected = by the=20 authors. Therefore the text could change before final = publication.=20
  • Corrected proofs: these are articles containing the = authors'=20 corrections and may, or may not yet have specific issue and page = numbers=20 assigned.

Zeitsch= rift=20 f=C3=BCr Evidenz, Fortbildung und Qualit=C3=A4t im = Gesundheitswesen
Article in Press, Corrected = Proof -=20 Note=20 to users=20
3D"
3D"
3D"
 
Copyright =C2=A9 2010 Elsevier B.V. All rights reserved. SciVerse=C2=AE is = a registered=20 trademark of Elsevier Properties S.A., used under license. = ScienceDirect=C2=AE is a=20 registered trademark of Elsevier B.V.
------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.sciencedirect.com/scidirimg/logo_SciVerse.gif R0lGODlhagBYAOZwADeZRgpoNpfJPMnLLJmZmRGZSf///2mydPL4883l0J+fn5vMovn5+b3ELJu+ M0OfURycR7TYuZmyLrOzs5ilgYK/i0OrRGS3QDKlRVClXZe3Xo7GPJick1SxQjSVRRp6PJfGQRV0 OhVuNeby55irdr3HLW2yOsDfxdnZ2QxrN4S4NiaGQJfDR7+/vxmcSCGfR4GlL5ifjdnr3GmZMZix aiF0NIbDPXW9P5e9U1ysaFarPjqoRCuMQiCAPszMzObm5pioeyifRTGSRJiih4+7NUqoP1GNMpfA TaysrLm5uRJxOTmAM47Flo2sL0WGMqW4LX3APqfSrg9uOC6PQ226QD+lQdPT0y16NCiJQabBMfPz 85e0ZOzs7KamprG+LXWfMFy0Qd/f37LEL3i1OHW4fyODP8bGxl2TMUuuQxh3OyqiRjOiQ5iucJe6 WWGuPB19Pf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5 BAEAAHAALAAAAABqAFgAAAf/gHCCg4SCYQSIJAKLAhcFj2slA5MDXk4BmJmYUm88AJ+goaKgQmUh mpo1EpSTbo8FFowCbYgELYW4uYVcComyjo86rANfIqgBKR9To8zNpGVSxwFnDawqr7GMGrUout6E DEiIQ7+vJqwNl6gpPR7O7+8r0ag1T6xZEI/Zi1u1XN/fkiCKAYIRsAIqWD2pcawdvIfx5mmCcS8f LFkkEClgADAXilpHGN14lZASDGOaQgiByNKZhx7HjFTUxwjEEERJOhbS0ovAFkZQXDxywwrGujIt kzqbogSVTEr4Hl1gdIQDIis6B01ARIHRBjXBiqJSskyp2VEePqC6Um3StUdQ/xj1I7Ax6yECHFgw sgBJbEp3ZwOLKuOUlYlHLzYwooDoVkcGXRD9XETlEQQxlJqg+iC4s6gVhSlVebSDEQurBH509DHO q9ACRCg9QYmJs+fbn0Br+kKphEUqjGggmgCQQU8cjHYMpdSAYSbbuHHrzrRqEpFHLhQLABEDUTdv rAkAEWlZ0iR1mEJEXw9gegARbQcUeYRGG6Iu3owj0rsILMLMmkgBGHu4qZWJE71ZZAMj3RHwHS5W IDLeIsBUwRxtAZRFIG4eNJVJE5QcdtEi2xBAXC6REYDcIi884gAlRmiC1IbrTZFCJjXEF8QjCy7S 4D+F3EUOhY9YOIkEKdFIIP9MmcxAyVv7CGcLLgIRoAEjGLhIyRKaaKhkdB6+pyOPi7CgEUeDMIAI BwUJAEVfR2oC3ZfR8aCJk5OI2AEjQHhHyEcEKLIIGo+UNAB6KQxIZ3SnYALfJCUgZh8BOQ1SZRuM CAUBJV5o8saiBNqZCW+T6PDIDYuAUAshPTFSWQHCTHKGJiuByl6jAdRAyXUjCtAnAWEI8oOEez0S 2yTOBZCGrQS6Z88k+bwwqRmChDeZAC1uOskTmmDBLIE3YnIGJaYWEJcAZhKAhCBbERCSADY8UgQl s2KSwrcEGpjrk4+AwSAiHLVKZAFjUHLFc/iyh4UmXkwiBml8IvKDFlwxQmj/AS8O0EC3gj3AxAEJ g+LBRJTs6EJwVw0bKJaPAJiJogAsIIMBBiRQwTsR0HzACAhkEMoDMiCQw5e4PiXfI9rh0Fh4NDAC 5wAzZCKFKDPTbDXIzeRsQAU0RxEK1wYs8OUbmVwR4qllDhfeihvISwl6y4IC9ggLRIBAz854fMAD CBgwQigJ0Oyzkgtnsmu/jGjU7oojFXDOJFxi0gPgNJPRzAERJHDCzRmcwAQAWlsOQAY0J/BJBSck EAHWoJ/Q+QkPeJxAAkw8AArmmt8MiqiYNDyAA4/s6eNwiLTZ+OMDaLIC5QbIwLrcVne9AM0A5EBz BJ9MvzXo0W9/AM19G0BG/9Xg2w621diDokl1kRZQ2iKMmYgIIx1oOYkmnoDCRPQIRDD496UbgQEi oL1PzAwBthMgAmJ2vQUEzgAHAKAB+qc9GQgQggBMQN1oJrZPaAJEk3gEBhZTi/kton4Ym8TGMpE/ UEShe9s7wQSHBoC9FRAAYKuA9Qzgtb51EACBO0EGbac92x3gczI0XfYmCIow4WkAIiRhCelnPyRl olahyIDMrLbAronihnyrmdYyAEAZzC4BFwQg1jLQNwREYXA0G8EZq4Y1XD0xiouQUi2omMIBWBET 78hB+AD4wyUaABRa65vpJNg95+kMFBnQGg8BAEPwDc6OlMCjAPRoQgGgMP9jfwwAPOgoQBl8kXqf 2CHNOLfKUOxNjaCw3QO0VwEBpi+VgwMAJkNYgBHmsYQE4CMoaRWK/W3uANpb4AsNIEQmJIAMN/zE BRFowAku4AC1HCAsAfDCZ5KBg8tcHRkC97dP7BKKvUTZFE9ovxViooUAkCEMPxfG6J0gmgDY3wBv V8lrPjKeMNxb+KKnRAA4MZPphB/xgsnOPiaPhaHIgTzBp7vqPdBvOTgAAk7ws6DlEgBkuKDfbvaA EYzAdgB4gCQRoLscXBQBC0ApAD6IUF8KIH7tMt4jkKc8ZkSQhqIg40dbktGhjuIBERwFGYGqPupA CmIKlZ+KFnG8LWViciH/Ww/vAvAs4BVAeAJokBkQsaJ4FWBe58lE3LKKm8Jh4nAF8NciNMI0pxVg DZSI2ibYGh0mBcBseUIbuoajMjawrAAuwwTM+HqWolFiPgXokdJsQTECdGURfClAFlTIMcZ2hmST MJk6fQAHgTXiEQWbxMFq41nBuDUAvnuY+yKWGji0611mResA6oWM1gZGX7pyC+KGRwCOWIsR2ZJN Z32blHBNg1xwSZu6hEUszBqLEsmaE3Mf4ixKRGtag9gjZcIiK2JuFyK4Cu4AeLWPXwVLEJfKVAG0 VQlNYPW879gqqQZQLuAsAjV/8oV1/wO5TCQKv+/A1aMG0D5pLYIWlALH/5ra9KYCGMmPnkJwM7Zq tDEEj7YPgi8irrSILDk0cpjAooabyLCSkWk7ZwpSawZ24VCqZ8WgIEyT+NUrKTmmEClaEbbsN4AY ZWJGKxaCcxc8gB1F9l8EAFIhwiOo01r4Qgb2En7DFAAQDsDDvSrRunKhHwLwZ8iwocQXNKGExfpW XwFYQoJeHFY/6YLK5ClAEMxzKE2sdbvuYXK56kOi+3yjzEJWTgGIosJkBUC7nnVPlynh1exAOcS5 CM9lBbCB12RsALORE3Ml/cQSONm/m0TEmA/dExJbGQJ8NoqoIx2aSUD2fehCjWo6Aig2JedpA5C1 Wt3MLEnLmRJgtnRUK/+lk3ZNiNMtgpVfMqEEFTMrLWuJD68KgKpC00ULWYEDTyQDlNekdhLCttfy vsUUVCwhPlGJq2lQg5VwwyFCeHmXAF5FYHQfIw3WVpJfM2G0AcR7HwK4iYnsbamBtMnK/QY1hpDh EMJJZFQzmS0jMkIXNDEcMhUzCEnQgWIDV1yruMqECKoziXirQTsCKFFtGT4IXgh4YNJmRTGOkYI3 BNwsHoCGNJwQnwGowCIvnxQB6k3zQQBqZSIvEp8rUXI290DLEBHCCtIgjVx5ObD6gHlVGtN0XDzd sAZ5TRA+fSRHryMEPcACD9w8BR704AMXR4UIZlD0EoyGJlRBzYnKXoj/sd7cTdF23DCCvdquO/7x Kuf7MIhgkQJMJfCq9jjhCdGCWlSZ04rWM9uPZGTIm75sFBmGGCBbgBecy9vq0vzmOV8LIDxcAGB4 zVkxM4wGwMAJEz992b7gO1aUwASV3wHMBTCX2M/eG08fgr7hZeJg8H7xEviCExrv+BosYQZNKHpv kP+KF6B6Oxw3keyfXwgU9IQDrqZM4mE1+sU3QAL4zz/+n7V4SoiB/K/QAct3BAo3JewHEDYnIbfn SbqnZ2Nwff0XgRFYAirAevrQI3KBGkt3gDrBAO2CF5giCxsABvOnZ25ABFMngYvnAGPwd6/gAhaA gWUSP3QhZRzYEfjG/xVn5iqh9wp6VgQmoAIOUH9ZMIQmoAMu6INqAAbLtx2clATrd4PfwAXi4Hk7 uAgbcAE96INc2IVeqAZo8HqyoAEaqADvJYUMZwU9kQhXKBIdgAEN6IVdCIYXIIM1oQEN0hhRiIYd 2HklRAJCJguMYAM3AAYd8IYYkIiJiAaHeANiKIjowgYaaCK7xoeEpwV+WAsxwAbTB4me+ImCCAIa UICEZYkHiIlrOBBs0AYLCIqgiAM0QIqlaIo3yAAoUIXANAQkQAM40ImeyAI4sAVsQIMl1AVmAG60 aIlaYAa4CEy1MAQUEI3SSAGT6IwK0AJnmIzJqAUo0AIp4ozgCI4KMB4BVmCD2niOafIDPmAGE9CM ztgFE5AEPhAG5niOgQAAOw== ------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.sciencedirect.com/scidirimg/logo_ScienceDirect.gif R0lGODlhUQBQANUAAP////n5+fX48vPz8+zy5ezs7OPs2Obm5trmy9/f39HgvtnZ2dPT08fasczM zL7UpMbGxrXOmL+/v6zHi7m5uaPBfrOzs5m7caysrJC1ZKampoevV5+fn5mZmX6pSpaZkpOZjJCZ hY2af4qaeIiacoWaa3WjPYKbZX+bXnybWHecS3qbUXScRHGcPmydMW6cNwAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAAAALAAAAABRAFAAAAb/QIBw SCwaj8VCwgGxOJ8WiGNxQFqv2Gw20ex4v+CwFwNJBLTo9FbCEbvfX8rirK6jA442fA/nSAZ2gUcD Em8fIicrKi6MjYwvKiklInB/goJ4emAhJyyOn6COKyUgbhJ0l2gJGmEfJZ6hsbIrI2IcDKlZAYVg HycvssHBLSRiFoC5RwWsX77AwtCyxGEcCclFC5odIy3R3sEqpWAO10IMvSnf6rIvJWES17xeId3r 9qErH2DwqfIdJM/uCXTEIsS+Sw7AkBjI8NMLg1/41VmgsKHFRg/BQKhToOLFjxm/LEgTgNm/jyhd vBDXgUMBNBS+hAiY0iILfWO0JGhWr+bH/xTjsmha4bNmsS8vrYAZUbTmyi8WrvBsWnMFGGtHNJ2g 6pOSFw1IvoCgyfWiCjAji2hKV7am1w5RizQj29biWaRyvZSo6xNiB4kANPXk+/MLByIyCTu9OuQL CsU1a3nZGPgLLMgfUXwBC0As5pQswAD6wvQzSpwdVn3Zavrj24RfFrW+eCIOmMGzB2r2YgFMbrNv Gm1ooKBCqAkZLnpQgABBBA+MHkBXN8EEo7thQDDyIABA9+SfHky4mAGAAQLeN5hAsGEdgPEuQosR waj8BRcZrHt4gGA8chcmTIDAA9Zl8EAEDdznwn79MVKBAtLhB0ByGwhggAvS7VdBAwvyB/9fgAOa 0IB507lB34LmVWCdCd11t0FzLiAAAHoGmBABEfm1CMAGD8zonQflgddjkOUBgACLPj4Qo3fvKTBj ifMJ14AAAlQwAQD3QdfcBgA0YCAAFdzoAZcRXJmlC+ZlcGUEQToIwI0ZlOffexnIWJ6S073ZiBva OWKCAQbc6EhzRQ4xgaBoRoAoikSwOWF0E07Y5o1EXAkeI3q6gF0HJjESoAkmEGDAleMltyUAeCrg AaJvXmlccgAoAGADG7SZgQAIEPmopfgpwCWH6iV6HRi9eVFfpaEO4QGMMgohwKoAYBoBkkLsN4QA cRIhQK2SPkqtkUsKYVymmxbbASwZKAr/XoARGFcBeIdW58IG8EXQno3tOqgodKsq+hwjz63aCL7G MRKvdf+6UNtXEMT2W0Pu8HaOF6w9LNBbEBxAmsUDgYFLMxzfI58XVWBgWcjr7OaFEA1TjLI6fsW1 kxd9vgxNCx4PocllNsuicgfIACDPQj0HwxIGRGjsxQd0Fc2IVSIVYVLFTjvyFgeoCEHR0k33vClg Oq9WtSN+AX3ExF7g1vPPYBNh0olOv4AaB0EbMbMXjzn9VgfkXGHuuUX/zNkVA2gyls2bdlDFFpt0 3dpNQaHhD9EWP/UF0iSZ/AXluYXkBdZ1lLSU43yxwFJLSXGkzUytqYCaF6nbUYA2H8gGe9nPXqR1 yexhUN3WC5IZtnguAWguk+1cpfA66uUAEEBMYZCgNkoq7D1G3eWgrdD0DFXvBmXNE1GA8UuxxdAL KJy+2fDhF5GHGx9wrg4KwYsBQdZo8KG/Gzx7s/D+AAygADuQN3Usb4AITKAXiLIOBTpQgUyzR/0e GIYgAAA7 ------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.mh-hannover.de/uploads/pics/Logobib2.gif R0lGODlhygAvAIAAAAAAAP///ywAAAAAygAvAAAC/4yPqcvtD6OctNqLs968+w8ConiN42eSUQqA 7gsHrDV7NXTH+l7lq68BMoS8ohHBakmSyg5R8TxKdcxlEpWymqbcI7PZ+GK3P3L3HBM7vuBNFJlF y13stdoZx+XnfHd9wdYWtGdn1ndYskVoECiY8XYAiTgJpZgzI6l1UrZJ6am3eZmVyakC2vmZCmhW 07o49OraaKhay2gYJ4tauHtLNvtq+7nXGBlcSesbCtwrPEz7p2z6IKQL7CxMGC1znFCdyzyN/dxb BZcMi55JOt4Vu7j+jr46394XrN593hxfbz+Hj58+Y/n87RP379BAes0YIuRmkGDDhHIWIpvoTR7G g/6OKFaM6LDjxYf9NnqcYjEjSIgCV7I7uSMlR2mzQmp6CNPdSpXLwtksJXJQE4ydTIJ6hJNl0DDg fI5cKjEpr11FpVaFehTDRJlRlYQjafElzWlXCxGkAcZoOqZqear46qikVLbK6NpFmnau2TRhufIo u/auVrJ6BdPpu9MIYIhniZkqR1UWS4YqJdpA3Fbx481D7yxWevWXua6dS49RKzbmW8KlTfs6Czty Xs6xaTM+XRg0pSvnYNd2ffu17+C3UfUkjselX9WigAtfbJx179/TU1PDnNvL6tnDi9smHp37b97W p2LVPQn69+ffw08Xzt5cebaol1Npv947cPfD+U9vJZEZUDedp91++R0HH3/wgbcdXQGektt8L/Rk IH7OIdifdAu69qB5A+7GW4KerTeaNBuyxkp+OR2mDW2OOVcXZQy2cUNoK96IY4467lAAADs= ------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.sciencedirect.com/scidirimg/sci_dir/reduce_font.gif R0lGODlhEAAQAOZFAMvXvGydMTVqKlWHLuPm3yNZJ16QL1uCXuTm4aa6otfc1pCueNPcyKa5p1CC M4Wna3GXYkJxP1mKM1eCTpCqjmSQSt3i27TIrPL28H+kaunp56S3pTFlLrTHoW2Pb26bQ5aulT5v O77Pqdne2WCLUD9zK46yY7jNqHCfP7bGsNXdyrbEuEB0LZSskrTCtsPNxMfTumaYMISsVKi8oLPF pIehiuPl4bvOpdXdzHSXbeDj3+Ll36O/gUJyQISiftrh0l2LQoaginGaUr/KwXeiR+vr6wAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5 BAEAAEUALAAAAAAQABAAAAdvgEWCg4MEAIeHDISLBDIBjwE3i4s7QgMDNJOTOhMJmp+TKiI/oIMa JgE8pYI4KDFECKsdBh8GMKsPEicDC6UWDhkYFUA2oDMlEBckLCmgOQLQ0D6fChEhLSAUHD0jmhsF HoMHBQ2aKzUvg0NBLpqBADs= ------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.sciencedirect.com/scidirimg/sci_dir/increase_font.gif R0lGODlhEAAQAOZJADFmKTdsKl+RL7jFukV5LFmLLj5yKytgKCFXJzVqKrvIumydMVOFLkx/LWSW MCVbJ2maMdTb09PcyJKqlcvXvP///1WHLr3NsNHY0uPm342tddng05y6dzFjM9vh1I6wak56TIWj f97i37LHmdLZ0l2MOn2mUkByNoanepKvh4Onbn6fc6O3orfHr3+dfbrNpa+/rj1tP0l2S3SiPZ64 lXObVavBmK3Eoo+ve7nNsF6NOpmxls/Yx6G9iUJzNfT38tfd02yOcKK5l1WFOMjSxuLl34yrdF6I TsTPxuvr6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5 BAEAAEkALAAAAAAQABAAAAeRgEmCSRIUFIOEMxyISRkLjx6CPDoWFhqILxCaI0kRJwmgCSGDHw6m JoyMRQKsrBupgxcFBT2zNrCCRgwMPyUMNbhJQw0qFTgNDUCwLQQENxU5zUKwKwYGKDQp1kewPgHf 4N8RjEQA5ufnO4wuBwcsCvAw7SCMMQ8djDIPDySICAhBGE34NwHRgAEYGIk4iARRIAA7 ------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.sciencedirect.com/scidirimg/rc_box_bottom.gif R0lGODlhVwEGAMQAAPn5+f39/fv7+/7+/u7u7vr6+vj4+PLy8vX19enp6ebm5vDw8OPj45ycnPf3 9+Li4vT09NjY2LW1tbu7u729vfz8/NfX1+Hh4fb29u3t7Zubm////wAAAAAAAAAAAAAAACH5BAAA AAAALAAAAABXAQYAAAXIYGVoW2meaKqubOu+cCzPdG3feK7vvKspC0MAQIkMesikcslsOp9Q5CAi SRwAgQJj0tB4v+CweEwum8/otHrNbrvf8Lh8Tq+PGxILAVEYCAAQBAkKDA8Xh4iJiouMjY6PkJGS k5SVlpeYmZqbnJ2eFw8MCgkEEAACAwF/CAcLBBmwsbKztLW2t7i5uru8vb6/wMHCw8TFxsexBAsH CKcBG6kCBQAGDhjX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7YDgYABQIBAyEAOw== ------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.sciencedirect.com/scidirimg/rc_header_left.gif R0lGODlhBQAgAMQAAP7+/ry8vPr6+vv7++fn5////+Tk5Pn5+fj4+JycnPf3983Nzf39/fb29vz8 /Jubm+jo6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAA AAAALAAAAAAFACAAAAUvYAEwgzAaQQIMwUIwwgNBzCFDDnI7yt74wJnjJyTijMPgUZksMpHQp9RJ XVabkBAAOw== ------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.sciencedirect.com/scidirimg/rc_header_right.gif R0lGODlhBgAgAMQAAPv7++7u7v39/fj4+Pr6+re3t+fn5/X19d/f3/7+/s7OzuLi4uPj4+bm5vf3 9+np6fDw8JycnPLy8rm5ufPz8/n5+eHh4fb29u3t7Zubm+jo6AAAAAAAAAAAAAAAAAAAACH5BAAA AAAALAAAAAAGACAAAAU+4FARgJBEE1KVhlJQq6ZlwUHI2SNVeAMNOEbAgVtgLjjLMbmcKZHOZubJ hE6l1Kg1e91iv95wdawld83cZwgAOw== ------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.sciencedirect.com/scidirimg/bullet_square.gif R0lGODlhAwAEAIAAAGZmZgAAACH5BAAAAAAALAAAAAADAAQAAAIDhI9WADs= ------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.sciencedirect.com/scidirimg/btn_xclose.gif R0lGODlhDQANAOYAAMXExc/Pz/Hx8cTExMTFxcrJydXV1uPk47OzsxAQEOvr6g4ODtzd3N3c3fz7 +9XW1fb397y7u8nJyaqrqri5ufz7/MXExM/P0PHx8MjIx3Nzc2xrax8fH2NjY+rq6oaGhlNTU9zd 3eTj5MHBweTk5OTk48bGxa+vr0dHRysrK3JycmBgYNXV1dTU1Pf29sTFxE5OTjs7O8nJyvf39/z8 +2RkZNra2urq64CBgdHQ0SwsLKGioeTj4yEhIff39vv8++vq69zc3LCwsOPk5FBRUBwcHOrr6nl5 eiAgIMnKycXFxGFhYf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5 BAAAAAAALAAAAAANAA0AAAeGgE2Cg4SETIeIiUyCFR9NFDQOPw41TTaCPiw9CSYzLhpNHRCCAgIj CUg5OE0rGAKCHkYKEU0cTTA3QAqCQwc8IkeCLQckJYJBIQxCTTpNMQ0MDYIPBhMLKRkqTSgGD4IB CEULCAEBS00gF4ISG007BTIFSURNJ4IEAxYASi8DAPgACgkcFAgAOw== ------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.sciencedirect.com/scidirimg/sci_dir/jrn_sub.gif R0lGODlhEAAQANUAAP///5S7m2maMbjFuk+CLSFXJ6vEjmWWMGCSLyduMyBaKSJfK1uNL1WHLrvO pVd/WGOKWiNjLkh8LCVpMIquYDtvKnugXX+lXil0NSpfKFqCWWyTW4erX4OoXsTPxjVqKlR8WGeO Wit6OEJ1Ky9kKSVbJ16GWnacXXGYXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAQABAAAAZ6QIdh SCwWHRSBcslkUjiHqHQ65XQQ2KxW27kwvoCwWPy9WBrogHq9RltOhLh8Pj+hJKKxHiCSoDYjGGyD ARgjGyEVCYuMjYsVIRAfE3tjEx8QJiQRhGwRJCYaGQukpaakGRoPJQqtrq+tJQ8gBbW2t7cgHgO8 vb6+HkEAOw== ------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.sciencedirect.com/scidirimg/icon_pdf.gif R0lGODlhEwATANU/AOvY2Y2Mkf8vNN7d3EA/P9XV1OWQlfkEBu3u7K2truvr8ebm5eVZWt7e4MC9 yeZ+e4oCBB4eHr+9xcvNzL29vP9ESeqqqtlRTv0WGP95ef/+/v5oZXR1d+Li4cbFxeZJR8TFyOLi 5Pn2+fb2+O/u8Kenq7a2tqysqubn6Obn4tuChvf5+O///+7j6eG5u6cDBN/u8dbU2dfV1dHLz/1T VuJwctNlaL2/xvX794CAf+Lk49waIeQABN47PP4NEP///yH5BAEAAD8ALAAAAAATABMAAAbMwJ9w SCwaj8hiIcE8MZmdJAUkuUlMpUDjNChmNrSKWEDe5TSNUoOYIft8hzjvxdGgE6jhRoDBwOUQARwc OQEFQzsQiouLCxMeFJBGDgUzEw0XDQMyMSAyJpMNMg0jFzoIKQMTIQlGNyEDCAA9BiIKKAULrUUO Cx0rDwoGFiMLAym7RBIkCgAfFhYfHwwqJCeTCCQMLgAkLDAuNrquLQy1CAsLmpfXvDU1CCEhDQX1 FEtGFBo4COgdA/U8FGhHhAKBCAgTJiQAKolDIUEAADs= ------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.sciencedirect.com/scidirimg/bulletTriang.gif R0lGODlhBAAJAIABAGZmZv///yH5BAEAAAEALAAAAAAEAAkAAAIKRG6YwMHfmjvzFAA7 ------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.sciencedirect.com/scidirimg/rc_box_top.gif R0lGODlhVwEFAMQAAP7+/v39/fv7+/n5+fr6+vj4+Pf395ycnLy8vPX19d/f37m5ue7u7re3t+Tk 5PPz89zc3N3d3fb29vz8/Jubm////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAA AAAALAAAAABXAQUAAAWUYFUBQBBMaKqubOu+cCzPdG3feK7vfO//LRNJVBIQBgWDZMlsOp/QqHRK rVqv2Kx2y+16v+CwmGkoDAiCACngQBwo8Lh8Tq/b7/i8fs/v+/+AgYKDhIWGh3UHCwoDaQACCBAA IpSVlpeYmZqbnJ2en6ChoqOkpaanqKmqmQARDQ+NAQQUq7W2t7i5uru8vbkUDAkEIQA7 ------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Location: http://linkinghub.pangaea.de/elsevier/supplementBanner/10.1016%2Fj.zefq.2010.09.022 R0lGODlhAQABAJEAAP////////4BAgAAACH5BAQUAP8ALAAAAAABAAEAAAICRAEAOw== ------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.sciencedirect.com/scidirimg/text.gif R0lGODlhEAAQAPcAAAAAAIAAAACAAICAAAAAgIAAgACAgICAgMDAwP8AAAD/AP//AAAA//8A/wD/ /////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAZgAAmQAAzAAA/wAzAAAzMwAzZgAzmQAzzAAz/wBm AABmMwBmZgBmmQBmzABm/wCZAACZMwCZZgCZmQCZzACZ/wDMAADMMwDMZgDMmQDMzADM/wD/AAD/ MwD/ZgD/mQD/zAD//zMAADMAMzMAZjMAmTMAzDMA/zMzADMzMzMzZjMzmTMzzDMz/zNmADNmMzNm ZjNmmTNmzDNm/zOZADOZMzOZZjOZmTOZzDOZ/zPMADPMMzPMZjPMmTPMzDPM/zP/ADP/MzP/ZjP/ mTP/zDP//2YAAGYAM2YAZmYAmWYAzGYA/2YzAGYzM2YzZmYzmWYzzGYz/2ZmAGZmM2ZmZmZmmWZm zGZm/2aZAGaZM2aZZmaZmWaZzGaZ/2bMAGbMM2bMZmbMmWbMzGbM/2b/AGb/M2b/Zmb/mWb/zGb/ /5kAAJkAM5kAZpkAmZkAzJkA/5kzAJkzM5kzZpkzmZkzzJkz/5lmAJlmM5lmZplmmZlmzJlm/5mZ AJmZM5mZZpmZmZmZzJmZ/5nMAJnMM5nMZpnMmZnMzJnM/5n/AJn/M5n/Zpn/mZn/zJn//8wAAMwA M8wAZswAmcwAzMwA/8wzAMwzM8wzZswzmcwzzMwz/8xmAMxmM8xmZsxmmcxmzMxm/8yZAMyZM8yZ ZsyZmcyZzMyZ/8zMAMzMM8zMZszMmczMzMzM/8z/AMz/M8z/Zsz/mcz/zMz///8AAP8AM/8AZv8A mf8AzP8A//8zAP8zM/8zZv8zmf8zzP8z//9mAP9mM/9mZv9mmf9mzP9m//+ZAP+ZM/+ZZv+Zmf+Z zP+Z///MAP/MM//MZv/Mmf/MzP/M////AP//M///Zv//mf//zP///yH5BAEAABAALAAAAAAQABAA AAh6AP8JHEiwoEAUCBMqHJjvoL6HCB/qQ1FwosSIEPU1FCgRIoqO+giCxChRZEeSD/1M8fNv5EeJ eASubLnPo0SW/6hRm1IQoUCcOv3EPKgQKDU/LDf+24iHZ1CeBv/54YdiylGcDH/y60d1ylCDU7ly xSpQ6ZSzKqEqDQgAOw== ------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.sciencedirect.com/scidirimg/plus.gif R0lGODlhCQAJALMPAAAAAIAAAACAAICAAAAAgIAAgACAgMDAwICAgP8AAAD/AP//AAAA//8A/wD/ /////yH5BAEAAA8ALAAAAAAJAAkAQAQYEMlJK30g5yefBx6HhKDXheGJpePHomkEADs= ------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://reflect.cbs.dtu.dk/img/throbber.gif R0lGODlhEAAQAPIAAN/f3wAAAKqqqjk5OQAAAFZWVnJycoCAgCH/C05FVFNDQVBFMi4wAwEAAAAh /hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAEAAQAAADMwi63P4wyklr E2MIOggZnAdOmGYJRbExwroUmcG2LmDEwnHQLVsYOd2mBzkYDAdKa+dIAAAh+QQJCgAAACwAAAAA EAAQAAADNAi63P5OjCEgG4QMu7DmikRxQlFUYDEZIGBMRVsaqHwctXXf7WEYB4Ag1xjihkMZsiUk KhIAIfkECQoAAAAsAAAAABAAEAAAAzYIujIjK8pByJDMlFYvBoVjHA70GU7xSUJhmKtwHPAKzLO9 HMaoKwJZ7Rf8AYPDDzKpZBqfvwQAIfkECQoAAAAsAAAAABAAEAAAAzMIumIlK8oyhpHsnFZfhYum CYUhDAQxRIdhHBGqRoKw0R8DYlJd8z0fMDgsGo/IpHI5TAAAIfkECQoAAAAsAAAAABAAEAAAAzII unInK0rnZBTwGPNMgQwmdsNgXGJUlIWEuR5oWUIpz8pAEAMe6TwfwyYsGo/IpFKSAAAh+QQJCgAA ACwAAAAAEAAQAAADMwi6IMKQORfjdOe82p4wGccc4CEuQradylesojEMBgsUc2G7sDX3lQGBMLAJ ibufbSlKAAAh+QQJCgAAACwAAAAAEAAQAAADMgi63P7wCRHZnFVdmgHu2nFwlWCI3WGc3TSWhUFG xTAUkGCbtgENBMJAEJsxgMLWzpEAACH5BAkKAAAALAAAAAAQABAAAAMyCLrc/jDKSatlQtScKdce CAjDII7HcQ4EMTCpyrCuUBjCYRgHVtqlAiB1YhiCnlsRkAAAOwAAAAAAAAAAAA== ------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: image/png Content-Transfer-Encoding: base64 Content-Location: http://www.sciencedirect.com/scidirimg/tab_off_left.png iVBORw0KGgoAAAANSUhEUgAAAAQAAAAfCAYAAADA4GwmAAAABGdBTUEAALGOfPtRkwAAACBjSFJN AACHDwAAjA8AAP1SAACBQAAAfXkAAOmLAAA85QAAGcxzPIV3AAAKOWlDQ1BQaG90b3Nob3AgSUND IHByb2ZpbGUAAEjHnZZ3VFTXFofPvXd6oc0wAlKG3rvAANJ7k15FYZgZYCgDDjM0sSGiAhFFRJoi SFDEgNFQJFZEsRAUVLAHJAgoMRhFVCxvRtaLrqy89/Ly++Osb+2z97n77L3PWhcAkqcvl5cGSwGQ yhPwgzyc6RGRUXTsAIABHmCAKQBMVka6X7B7CBDJy82FniFyAl8EAfB6WLwCcNPQM4BOB/+fpFnp fIHomAARm7M5GSwRF4g4JUuQLrbPipgalyxmGCVmvihBEcuJOWGRDT77LLKjmNmpPLaIxTmns1PZ Yu4V8bZMIUfEiK+ICzO5nCwR3xKxRoowlSviN+LYVA4zAwAUSWwXcFiJIjYRMYkfEuQi4uUA4EgJ X3HcVyzgZAvEl3JJS8/hcxMSBXQdli7d1NqaQffkZKVwBALDACYrmcln013SUtOZvBwAFu/8WTLi 2tJFRbY0tba0NDQzMv2qUP91829K3NtFehn4uWcQrf+L7a/80hoAYMyJarPziy2uCoDOLQDI3fti 0zgAgKSobx3Xv7oPTTwviQJBuo2xcVZWlhGXwzISF/QP/U+Hv6GvvmckPu6P8tBdOfFMYYqALq4b Ky0lTcinZ6QzWRy64Z+H+B8H/nUeBkGceA6fwxNFhImmjMtLELWbx+YKuGk8Opf3n5r4D8P+pMW5 FonS+BFQY4yA1HUqQH7tBygKESDR+8Vd/6NvvvgwIH554SqTi3P/7zf9Z8Gl4iWDm/A5ziUohM4S 8jMX98TPEqABAUgCKpAHykAd6ABDYAasgC1wBG7AG/iDEBAJVgMWSASpgA+yQB7YBApBMdgJ9oBq UAcaQTNoBcdBJzgFzoNL4Bq4AW6D+2AUTIBnYBa8BgsQBGEhMkSB5CEVSBPSh8wgBmQPuUG+UBAU CcVCCRAPEkJ50GaoGCqDqqF6qBn6HjoJnYeuQIPQXWgMmoZ+h97BCEyCqbASrAUbwwzYCfaBQ+BV cAK8Bs6FC+AdcCXcAB+FO+Dz8DX4NjwKP4PnEIAQERqiihgiDMQF8UeikHiEj6xHipAKpAFpRbqR PuQmMorMIG9RGBQFRUcZomxRnqhQFAu1BrUeVYKqRh1GdaB6UTdRY6hZ1Ec0Ga2I1kfboL3QEegE dBa6EF2BbkK3oy+ib6Mn0K8xGAwNo42xwnhiIjFJmLWYEsw+TBvmHGYQM46Zw2Kx8lh9rB3WH8vE CrCF2CrsUexZ7BB2AvsGR8Sp4Mxw7rgoHA+Xj6vAHcGdwQ3hJnELeCm8Jt4G749n43PwpfhGfDf+ On4Cv0CQJmgT7AghhCTCJkIloZVwkfCA8JJIJKoRrYmBRC5xI7GSeIx4mThGfEuSIemRXEjRJCFp B+kQ6RzpLuklmUzWIjuSo8gC8g5yM/kC+RH5jQRFwkjCS4ItsUGiRqJDYkjiuSReUlPSSXK1ZK5k heQJyeuSM1J4KS0pFymm1HqpGqmTUiNSc9IUaVNpf+lU6RLpI9JXpKdksDJaMm4ybJkCmYMyF2TG KQhFneJCYVE2UxopFykTVAxVm+pFTaIWU7+jDlBnZWVkl8mGyWbL1sielh2lITQtmhcthVZKO04b pr1borTEaQlnyfYlrUuGlszLLZVzlOPIFcm1yd2WeydPl3eTT5bfJd8p/1ABpaCnEKiQpbBf4aLC zFLqUtulrKVFS48vvacIK+opBimuVTyo2K84p6Ss5KGUrlSldEFpRpmm7KicpFyufEZ5WoWiYq/C VSlXOavylC5Ld6Kn0CvpvfRZVUVVT1Whar3qgOqCmrZaqFq+WpvaQ3WCOkM9Xr1cvUd9VkNFw08j T6NF454mXpOhmai5V7NPc15LWytca6tWp9aUtpy2l3audov2Ax2yjoPOGp0GnVu6GF2GbrLuPt0b erCehV6iXo3edX1Y31Kfq79Pf9AAbWBtwDNoMBgxJBk6GWYathiOGdGMfI3yjTqNnhtrGEcZ7zLu M/5oYmGSYtJoct9UxtTbNN+02/R3Mz0zllmN2S1zsrm7+QbzLvMXy/SXcZbtX3bHgmLhZ7HVosfi g6WVJd+y1XLaSsMq1qrWaoRBZQQwShiXrdHWztYbrE9Zv7WxtBHYHLf5zdbQNtn2iO3Ucu3lnOWN y8ft1OyYdvV2o/Z0+1j7A/ajDqoOTIcGh8eO6o5sxybHSSddpySno07PnU2c+c7tzvMuNi7rXM65 Iq4erkWuA24ybqFu1W6P3NXcE9xb3Gc9LDzWepzzRHv6eO7yHPFS8mJ5NXvNelt5r/Pu9SH5BPtU +zz21fPl+3b7wX7efrv9HqzQXMFb0ekP/L38d/s/DNAOWBPwYyAmMCCwJvBJkGlQXlBfMCU4JvhI 8OsQ55DSkPuhOqHC0J4wybDosOaw+XDX8LLw0QjjiHUR1yIVIrmRXVHYqLCopqi5lW4r96yciLaI LoweXqW9KnvVldUKq1NWn46RjGHGnIhFx4bHHol9z/RnNjDn4rziauNmWS6svaxnbEd2OXuaY8cp 40zG28WXxU8l2CXsTphOdEisSJzhunCruS+SPJPqkuaT/ZMPJX9KCU9pS8Wlxqae5Mnwknm9acpp 2WmD6frphemja2zW7Fkzy/fhN2VAGasyugRU0c9Uv1BHuEU4lmmfWZP5Jiss60S2dDYvuz9HL2d7 zmSue+63a1FrWWt78lTzNuWNrXNaV78eWh+3vmeD+oaCDRMbPTYe3kTYlLzpp3yT/LL8V5vDN3cX KBVsLBjf4rGlpVCikF84stV2a9021DbutoHt5turtn8sYhddLTYprih+X8IqufqN6TeV33zaEb9j oNSydP9OzE7ezuFdDrsOl0mX5ZaN7/bb3VFOLy8qf7UnZs+VimUVdXsJe4V7Ryt9K7uqNKp2Vr2v Tqy+XeNc01arWLu9dn4fe9/Qfsf9rXVKdcV17w5wD9yp96jvaNBqqDiIOZh58EljWGPft4xvm5sU moqbPhziHRo9HHS4t9mqufmI4pHSFrhF2DJ9NProje9cv+tqNWytb6O1FR8Dx4THnn4f+/3wcZ/j PScYJ1p/0Pyhtp3SXtQBdeR0zHYmdo52RXYNnvQ+2dNt293+o9GPh06pnqo5LXu69AzhTMGZT2dz z86dSz83cz7h/HhPTM/9CxEXbvUG9g5c9Ll4+ZL7pQt9Tn1nL9tdPnXF5srJq4yrndcsr3X0W/S3 /2TxU/uA5UDHdavrXTesb3QPLh88M+QwdP6m681Lt7xuXbu94vbgcOjwnZHokdE77DtTd1PuvriX eW/h/sYH6AdFD6UeVjxSfNTws+7PbaOWo6fHXMf6Hwc/vj/OGn/2S8Yv7ycKnpCfVEyqTDZPmU2d mnafvvF05dOJZ+nPFmYKf5X+tfa5zvMffnP8rX82YnbiBf/Fp99LXsq/PPRq2aueuYC5R69TXy/M F72Rf3P4LeNt37vwd5MLWe+x7ys/6H7o/ujz8cGn1E+f/gUDmPP8usTo0wAAAAlwSFlzAAALEwAA CxMBAJqcGAAAAGtJREFUKFNjlJSUZGRgYIBhJgagAPOUKVNsZs6cuXT27NnvQAKsIM7t27f///jx 4z9IgB0o8x8GQAKc6ALc6AI86AK8owKIIASyGFDCg1oCwJj7/+fPHzBmABk6bdq0/9++fQNjsADI WhgGAGWxW/M6XCG0AAAAAElFTkSuQmCC ------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: image/png Content-Transfer-Encoding: base64 Content-Location: http://www.sciencedirect.com/scidirimg/tab_off_right.png iVBORw0KGgoAAAANSUhEUgAAAAYAAAAfCAYAAADEFbwbAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ bWFnZVJlYWR5ccllPAAAAJpJREFUeNpilJSU5GBgYPgPxP+gGMT+z9zX1/fKzs5Ow8DA4OXJkydf MEAAI1NcXJygo6NjLC8vbzpQgBWImYGYiYmdnZ1BXV2dgY2NLQYowA7ELGAJBlSA0IEmwYJLAiwI thxNAiyITQJFxajEsJRg+fv3L5jx798/WCoBY5Zfv36BJUAK/v//D0pwbKBEzTh79uz/2IwCCDAA YbIkfKRA0GgAAAAASUVORK5CYII= ------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: image/png Content-Transfer-Encoding: base64 Content-Location: http://www.sciencedirect.com/scidirimg/tab_on_left.png iVBORw0KGgoAAAANSUhEUgAAAAQAAAAfCAYAAADA4GwmAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ bWFnZVJlYWR5ccllPAAAAF1JREFUeNpilJSUZGRgYIBhJhYQUV1dbcnKyprJxMTkCRYAcZycnKJk ZWUZwAJAEKWiosIAAkxQDAdYBRgJCjCMCiAEnj179pkahv779w9V4O/fv6gCwLiFCwAEGABrMw9x fd2t/wAAAABJRU5ErkJggg== ------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: image/png Content-Transfer-Encoding: base64 Content-Location: http://www.sciencedirect.com/scidirimg/tab_on_right.png iVBORw0KGgoAAAANSUhEUgAAAAYAAAAfCAYAAADEFbwbAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ bWFnZVJlYWR5ccllPAAAAJdJREFUeNpilJSU5GBgYPgPxP+gGMT+z9zX1/fKzs5Ow8DA4OXJkydf MEAAI1NcXJygo6NjLC8vbzpQgBWImYGYiYmdnZ1BXV2dgY2NLQYowA7ELGAJBlSA0IEmwYJLAiwI thxNAiyITQJFxajE8Jb49+8fLJWAMQtM4u/fvwz///8HJTg2UKJmBHJAqZthzpw5KEYBBBgAMl4h lR+lNosAAAAASUVORK5CYII= ------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: image/png Content-Transfer-Encoding: base64 Content-Location: http://www.sciencedirect.com/scidirimg/ac_topleft.png iVBORw0KGgoAAAANSUhEUgAAAAMAAAADCAYAAABWKLW/AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ bWFnZVJlYWR5ccllPAAAABxJREFUeNpilJSUZIACRiYYA8YBMxoaGqYBBBgAENICbLYidW0AAAAA SUVORK5CYII= ------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: image/png Content-Transfer-Encoding: base64 Content-Location: http://www.sciencedirect.com/scidirimg/container_top.png iVBORw0KGgoAAAANSUhEUgAAAAUAAAADCAYAAABbNsX4AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ bWFnZVJlYWR5ccllPAAAAB9JREFUeNpilJSUZGZAAyxAzI4uyDh79uz/6IIAAQYASEcDLPIbuu0A AAAASUVORK5CYII= ------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: image/png Content-Transfer-Encoding: base64 Content-Location: http://www.sciencedirect.com/scidirimg/ac_topright.png iVBORw0KGgoAAAANSUhEUgAAAAUAAAADCAYAAABbNsX4AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ bWFnZVJlYWR5ccllPAAAACxJREFUeNpilJSUZGJgYPjPAAFgmgWK/0EFQDQDU11d3VQgzQpiQzED QIABAPmRB2qi2j0hAAAAAElFTkSuQmCC ------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.sciencedirect.com/scidirimg/focus_on.gif R0lGODlhFQAZAMQAALXca7XbbbPXcazLgbDSd6rHhbHVdK/Qe7TZb6vIg67Nfvf39/z8/Ojo6KvI hLDReb7To7LWc63Mf7Tab9fX12eLOfX19eDg4HqlRP///wAAAAAAAAAAAAAAAAAAAAAAACH5BAAA AAAALAAAAAAVABkAAAWRICaOZEkuDJatbOuuWLOob81il0XbNW5VlKBwOLzlKrwWxfjLAAIIgYFw UAwShcwSdnRCpVQrVstEPqPT6jW7zfiQyVX7HZeXvejwmsxt1uddZ2BqY4B+cYZmExEPEg4QLol1 fG5df3eCaWJsd5d9Zl+ae5KelT8VqKmqqiQ5Cw0XsbKztLEyDAsWuru8vbooIQA7 ------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.sciencedirect.com/scidirimg/focus_off.gif R0lGODlhFQAZANUAALXca67NfrPXcbTZb7HVdKrHha/Qe7DSd6zLgavIg7XbbZ+fn6Sjo62srKio qPf394OCgpaWlpKRkYCAgIaFhY2NjZuamomJiejo6Pz8/K3Mf77To7Tab7DReavIhLLWc7q5ube2 trSzs7GwsLu6uvX19eDg4H9/f////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAVABkAAAbKQJJw SCwSHxmQcslsMjGPkHRKrVJNJZF2y+1ysaOweEweYxuotHqtbrjdWAcKoBgICAdDAJEooByAgFgM c3V3eXt9KAyMjFgLhXZ4enx+C5eXWBZsnGkWn59YEZ2cEaamWBKRh5SKEq+vWBWkbBW2tlgXq5OJ fhe/v1gUtGsUxsZYEHMcHx0aHhtsENPTWBPEahPa2lgn2Gkn4eHdu4iVKOLjJd7f6SfkdJLmiu7k 7end7vr7WA8YJgADChwIEEqGByUSKlzIMCGSIAA7 ------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.sciencedirect.com/scidirimg/clear.gif R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAIBRAA7 ------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.sciencedirect.com/scidirimg/permissions_reprints.gif R0lGODlhDQAMAOYAACUhdj45isjF2jAsfpaOzqGbyeLj4+Pk5N/g4aOeycPA4MrG5KCbyc7O3z85 i0M+jvj6+z04ijUwgZ+Zyv///kQ/jsG+35eOzsnG5CopeyUidoF7ts/P3CkleaWgy5SNy2h2oUdC kEhDkMjF4+De6JyXyTEtf0M9jUI9jZiQzqSfyt7f4MG935iQz5+ay0M/jN7f4SIkd6GcyaKdyePj 5N3b5OPl601IlTAqfuXn7S4ofcbD2ai4ySsofMvH5B0jcsXE2CQfdy8rfYaPpjEtgPP29/7+/+Xk 6lRej8TA4aCazMvI3////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5 BAAAAAAALAAAAAANAAwAAAd1gEyCTCQMKR40g4oUTDAFBAkGikxLQzlMCAwEM5KCNiExQIIrBRcJ B0w1SBk4AoMIMi0qRxtBEgOugwcTH0ouRCa4igovQjdGJT06O4NJARonI4IgPw2CLA4AFT6DRTwQ TAoBACgLk4IW4w8Y50wcER0i5oOBADs= ------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.sciencedirect.com/scidirimg/entities/REcor.gif R0lGODlhEAAQAMQfAEB0Ky9lKVR9WCheKDhsKkl9LGiZMLrIur7Lu2GTMH6kXsXPxlKFLbzJumyd MZy6d2qZPNDZyMvVx77NsJq0i3ifXdPcyLvLr3KeR8vXvG+YUYamdKS/g6i+mODk3+vr6yH5BAEA AB8ALAAAAAAQABAAAAVI4CeOZGme6GhlKck5ztOKRm3MH5YkEB4pisnsUmEwNJ0UpcBsbk4egHQq lZgQhKw2izA1AuAwuGE6DM7o88G0ELjf7gVu3goBADs= ------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.sciencedirect.com/scidirimg/entities/REemail.gif R0lGODlhEAAQANUiACthKFqDXTVqKj9zK8vXvGydMUp+LF6QL2aYMFWHLtPcyMLVscXYsb/SsLvO sMjasZW0fbfKr+Ls2HCePaC/fmCPO2iXPEt8OKPCf9/o2Jm3idvl15u6fVWGOcPTseHq2N3n10Jz N+vr6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAACIALAAAAAAQABAAAAZdQJFw SCwaj8ikkcBsNhVFBaZArVIfHuJEQkF4vwwGgniwfDiH9GGxSBMTiUoGAm804AmiYd8BaRwOe3tE A4UDFxsRhoVEAo6OIY+PRACVlpeVRAGbnJ2bSqChokRBADs= ------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: image/png Content-Transfer-Encoding: base64 Content-Location: http://www.sciencedirect.com/scidirimg/ac_bottomleft.png iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ bWFnZVJlYWR5ccllPAAAADJJREFUeNpikJSUZAJitunTp89mBDIYGRgYmIGYhYkBAv4B8V8WIPEf KgDmMMAEAAIMABqMCFPnKOv9AAAAAElFTkSuQmCC ------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: image/png Content-Transfer-Encoding: base64 Content-Location: http://www.sciencedirect.com/scidirimg/container_bottom.png iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ bWFnZVJlYWR5ccllPAAAACVJREFUeNpinD179n8GNMAoKSmpiC7IAsSfsQl+wyb4E10QIMAAskMG LVWRwb0AAAAASUVORK5CYII= ------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: image/png Content-Transfer-Encoding: base64 Content-Location: http://www.sciencedirect.com/scidirimg/ac_bottomright.png iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ bWFnZVJlYWR5ccllPAAAAEhJREFUeNpinjhx4uKLFy8e4eXlZQZiRiBmYJSUlBRlYGD4CcS/gfgP EP9lARLfQQyowD8g/g8S/AXjQGkGFqgKkAADjAYIMAAowBZAFENiyQAAAABJRU5ErkJggg== ------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.sciencedirect.com/scidirimg/logo_Elsevier.gif R0lGODlhQQBIAPcAAOuaNO7KmXh4eO7x8dzc3N/f3+zs7Obm5m5ubk1NTfB0AIWFhe9qANra2u+9 gisrK1FRUfHq4mhoaOrq6np6eu2EC15eXnZ2duTk5PGbSHJycu3NoO/l0WVlZWxsbPDk1GpqauyM Gu7x6+/ZvO7p3XR0dGRkZO3hxfGVO/Do2T09Pe/izkhISHx8fPFZAO3SrPBuAO9wAEFBQfF6A+/h ye/XumFhYWBgYPDt5e3o2e65ee7Aiu9jAO+dQ+7DjvHFmeyUKe7cwe/Flu3aufG7hFhYWOzo1fHm 2zExMe22cVtbW+yhQ/FjAO/x7SMjI+/WtVxcXO+NIkVFRfG1efDUtO2kTO3TpzU1NfHJouupU+3G kVZWVu6qWvDx7PHPq1RUVPCJIO6JFu21bOiyXuqgPBoaGu/s4e9+Be7exe2xYjk5Oe19AOuuWuuy Ze7q3/GYPu2vYu3Jle94APF+Cu3dv/DJnu/CkOu0Z+uvXvCBCpKSkoGBgcbGxqSkpHBwcNfX1/Dx 8aGhoaWlpYuLi4+Pj6ioqJycnJSUlLW1tbm5uZubm5eXl5qamqysrJWVlZOTk4eHh4aGhpGRkZaW ltbW1oqKipmZmZ+fn6+vr6urq729vdPT05iYmL+/v4ODg52dnaampre3t4mJiZCQkNDQ0KKion9/ f+jo6KOjo9LS0sHBwdjY2I6Ojp6enoKCgr6+vtnZ2ampqfDw8KCgoNHR0dXV1aenp8rKyrCwsMPD w7S0tM/Pz8vLy8LCws3Nzbi4uI2NjdTU1Ly8vLa2toCAgODg4MjIyK2treLi4oiIiM7Ozru7u8zM zLq6usTExH5+foyMjLOzs7GxsbKysqqqquHh4XFxccnJycXFxa6uru/v78DAwO7u7unp6cfHx+Pj 4+/v6O3Zt+y8e/CJG++kU+24dezs2vCRK+zjyPDx8OisTO7Bhe7x5/HYvuuqWPDAj+2qXuyuXet7 AO3kzu/GlevdwO/awO7fyPHu6u+FF+2xZvCUNfG3gOuwYvG8ivHx8SH5BAAAAAAALAAAAABBAEgA AAj/AP8JHNhtoMF/2TR1IpVr079Cif4tI/WH2L9imwIJxDUL0j9elP61SoTskgFWfLCh+meg0MBd fw4alIXpn6OQ2FgWoIBIQisPDSzpuYWrVSFFgUxs47MKCh8+Fkz8Q9WJQrZGt/T4wvXvwCIQg/7J kvSPgoFAkZzJ/HdKpKU9xv5J6IaI1T9Y2wZdSATqVBFRpRZ1OFRAkaBFhW4IuCvJkq5Qt0y0aKTk XyNfnyYJukTp0T9vlfpkGraNGaoDAgUMg1zpkKJty6T929OAgIYWpPpAeaaHACQNqxb8Q4QkmKoi 174Zs1TI1rRBFhpNO3bIkIFLpkKVYEbMlCBGowwp/7kVTJDBVnsglUBQoBMrP4IGQeMzqdOwSsuc 6RFZjVaRUIvYsIAwFoRyDCUEqOJBI6UUMYgs/1wAyi8a6LGKHgaQEkkviADDgiaB6IFaV6Zw0skj vvxDCDPZ6EIIJn6gMo0EeoDCyi+lWOCBNK38cQgyxuxySR+z9PIPLpUU8ZE3tATiDDWr9GELKKMg sAcqvUQzTR+MLCMML4YIhExEIf4TyDGDJDNKH3xIU8Bd0ljwiiq66EEIMswc8s8fEvwjCC2GMHLJ HoxYAooAtlygyC+NyDKIHqH0kYono0RTSgtFXJJKB5b0IRA3/3BDwD+pWIILMX90oEkfoeziCTZV Qv/ixzL/+DIJJ5H8UwArjEggACGI2PJHL8cs8g82lmCyiAkI8OGIJAi4Uow3F/ghgFoCZONJMAJV Qg0pnBBQRCr/IGDAAQLoQUovQqVXEyEUsFLJLZtwcoAih6RSyiSNLGNJNalYIIw0yvxjZyP/2KKM J8RgMoofiDQyyT+x8EtQK6Ac4kkmgrxiHijKeDYLH78ko8ki27QCzCAChHKNBJ3kkowBkqjyR54C CLMKIpG4IgofnyAwCSGtLMKHBgsMk40qBPzhhx7GJMKHQKtIoAQtuLACTQd6WCLIHqJoAs0yek6z jCQt8KJHIMb08UVHhuzhygV6dBLMHoZQoAcfAkT/sosgGkQySiOQTLBHJgLs8U8yErDSSSMxnYJA KaSUW80ezfQCSRG4bHLMHgscgAw1SkCECi+w3ILJBcYowsjUonhwSiIu4aLHNK4gEs0ngvABgiXJ NCAALY6E0osom7jiiEyJIPAPASVQcIwtekDwTy+7LHtIMoaMBqMrn+wySyyJILIHLN548E8iFPAB SibZLALJAozsgU0qoBDyiCTAJDPLI4QYxDUY8Q9tGMQU/xCAIEqRgER4IBvAIIQeNOANbMTCGH5w WSVsIABY/OMVCHhGMEpBAV9dghWkWMAgAuG8f0AiFIHARS1QgYoW2MIGjzCAn1yliE4ZRBuxAIYp /1CRCWE0IhKM8EDFEpAJAvBBFxL4RTS4sYdX/OMRfECALmjBiEdQgBflCQQjupGKQkjDEKmAxKMI QABUWOMYBjAGJ/rgmj5Y8R+YiMU/FJEAlhRCAoS4xT8usYhI8AIaB4AFAqwhC0RQIBf/kEQiSvGI T7QgF5A4wCGuoQRf3GIWpyBANG4QCAv0QRmDsYQzHiEBbRDAD4NIRSWaIZt/NIMCtiAELLCzDFoo QwO8MNgeMOGISljiFYeAxjZgUYRPAMMP1ugEJRDAiQLE4hRbiIQhivAFV3ijG6LARC4YsY11NawX gbgAIQ4RimrgAhsaGNE/jjEKGRAAGRKM4gVoZf8BW90tb7YIhCho0SdO7EEaelBFAvZwjUpIQBYe 2QUnEuGHZkTiFJkwgSFqoQtBxMIXC4jELbCxBRPEZSCRAEUfhqEHSvDxE6UohadcUQo9DMNMGugE JwwhjdY0Qxd9oEZpKsGHK0yNF7rQBCoo8gtHLKAFoGjFWyhQxX90gAL/6IQ2R6GJWnmCAMXowyOI YQtTGEIAFHiFIpQRC7k5oxCE8EAwjvEFaXjAALTYxn5+gQwByGAavECEK0IhDAGJwhfVKAAwnqGI URSiEbtIRAsOMaQ9SCAR3zAIJApxC08IAhObEIYocAEMCfBhF3wQRSUaAQwNMEgDfLgAIjrhgT// YEIZICiGKlyBAFbsQQMI0MMisEGKaByiBdBIWjewIQDoSGIYz4ilcAQSiFEYwBPIsAEoOIGKAuBq aNAQgC8UYQhHCMADHSiF4hYgAEp4gBKU8QMhPOEHCNjiH3xY4QJMYAtiCGMB0FDGLFRRDOX1Qg+H cAQi+KBDlgikFahAhHwR4Q1GDCIslViMJtArCFAkYBCvIMssisCJWGhgDzJIhga28Q9QvGIXoiBE TPzwj1DkIkeGQM0CiCGIXxSCN205CCX+YIxJHKAEzhiFBhyBgG/IQhSWEIUqRiQJPUgCGhexASou QQELLGATT+SFKiJxAAiEhBMT+wUhJuEIY+Bi/w+X2MVDEiHAg6SCD9UwRU0EEI1ixIIPBHxFNDTx h0TsoRDGEsgoSvAHShDqAlfcJS2m2AphFIMAkSCAIiohElWoRRKbyARXVIQBISeAGIU4AK+uAQtU iGI4nLDAP2S9jT6xYDH/CGomkJGVY/gCBLYggB4QgAxNZOMzCJAALVLRiILQ+CB5lkklEaEaZrjC FLbgRjUY24kLCEMYmmDGLGziBIFg49iKEAZMWQmh5Z0aFtXoSa4fwAyBjOogEJIJLhIgqExIgBot CJM2OlAIQzRUAEVwyuecEJJ/EIMaXOrAFlrRCxuYQNbU2MMz/KSLTkChBZ5Zi8ht6QcbWHwTqP9Q 3isC4QgW3iABlqjFISCJDBVk4h+ryJU2NPALCRx7Ac3yQwsEAglLHMAQq0iAFK4xcpksohMCMYYM glyMUDTDAKFQhFQocAFNPGISlgBBNATyjU+0wiEyCAQmCqACVQCj1NqwgC4G4YECKAMJz266QDoh gFXgAhaLIMunBiKJXgi+ERKQBCuMMQo+KOIftLAAK3ZRAAGFghoHaEYZ1MKIWQTDBjCbtaz1ruhE MIIAwehDkBuRgAWA4h/dEMAnIPDqfxhiFoIggCG+gYA+jEIYLZCEID7xDwx8AhELSEAvJDCIzhAi FQaAwAXurfcJXMAUmuBFMxbhKSWlYhCv/0f/CQJBAQ38IxeXyAQCKqGKPQgAFELsxAFEoQQl/YMT jriCBfQwi2+o5RkX8EikJxBKAA2QkAnNkAieMF5fYADFMAjZwAufUAzK8CulUAgX4AuIsAjRwDcd owzb1wGNgAmk4Al64AeXgCydAAz/IAXJsAhqMYCWQQgtACHJcHNGAnmswAnTsAgygAgGMAm7EAqQ MA2QgADB8Ay6gAj/4AEskACykAwg0AF7QAEmAgLTcEUeAA164BIyKBCuIADVQAx3ZBDfcAsP8A/S 8AUSIQlOMA2bYANbQAGJEBIm8AxB1gERgQm1QAqQcAqLoASSgAoJ0CcyeAuFwAkJ4Aeesham/wAC 3GABi+AQESEQN2ADv6AIo/IFEyMTCGABiKAEGkAI0BAJHiAVA8gLHnAJC1AE+bYWt1AGZfCKB/EK iYALr0AKEKACv5AWA/EMgfAFfJBhgSABlyAALaR3iuAEC2AB1qN31QAqIpeFi2AKpbAAzaAJEJAI i6EIxKAKkIAMyWQKjuAJX4BreqcLy1MLFkAuXygTrDAMOTMKsZALkxAKflJqwOABxGcLn3AIIOAB yUZ6BhALfUIAF+BB73gQqFEKCKAK1mABnnAMzqALAmEJSDAJueAHEgAMfcAJ1iAAtLgWpyABkLaQ TTcaniABy6ABo+AIvGBA2vAHhGZyvyAKi/8wCAggjSjZkwJxAJBkA6YwC45wAZJgDRohEJtQXmn3 D8FgNT4ZlQLxegWAcC3gPDs3IrgQCH0AFv9gCokjlSKXCcVQbzJhQAnzD8gABQnADcMwC8NQBDHx D5FQDAjgDLI2CZOAjmIpELUgAZ9gA15oEKdgAxMQC/tRLpWxJ2o5EFuAARdwCmqgAewkAUEmloKw AB1gLa4gCNxiEBOwDLqRmH6QjAZRC+ZhPX1gDXuQJH35lR0gAdaAAI+wCiM3CLPAgrnmB4aQbKhR EKvgEiyAGn5QBEpgiGJZCwkADcngB9lgA60wct7gCYLUhEpACJ8ASQgwAbb1D2loMDZgAZz/loM+ qQnGgAoU0Ap9kAA24Aq1IBMGQC7HoAnH0A0lAAHUQD20MAh9QAnDYABXIBCzqQS6wAhjZxAE4I4D aAGgSAECkAk3wJAaoQyKcAmT4GXWVAhSYAHEQAE2oAisUACn8Acy8DwdkABb4AmGoFoDIQEJEAkI wISkNw0ggABPZQGvWAAEUB0UUAg39w9hgQnNIBBX8ISHIAkdoALXAAl9YgwS4AF6AAkCgAq5EAue 8Agy8Al+wAlmuRbI8A+bIAgFsDkl8AidcAqqMAuX4AT7wQcpKhC5cAqTsAqXgAQ69AixqQFFYAP/ 4AoW0AyFBQEeMJslEAmwkAyssAxTUw16/yQT12AAoKAJn4AJrGANX2ABgaABKoAEEucJZIcEqvAP u6AHWHoRCPAFmkAAoqABpvCjfrAHKuANyVAEe2oDRWACEFACm0kJjsAHudBgz/MMDWABhSALgpCQ syYBmDALmhALySAAo3AMBcMNXfUKN4ersmEBHWAKopBSnkABSqAjjNBHfWABe+ABz0ABHRAVDOoH fsACpYCKlmF+/+BQ2vAKoyAQFFAL2tByO6ULf0AA1CAN0UANhRCqv8AIrkAM6AGmB8AMvnIBEPAM rFAM/8AMLNACjCAJHnABFrBIEvCxfGqbDVAGD3AFSKAGKuAEDyADTlAGKqACZSADKvAAKf97BZt6 BVKQADXLshBwBU6ABCqAskKLszIgtEiws2XAsg+wqUjAAi07tAnwAB0wELJgM5RACqSwCbAQDBRR C7tQC3/gC5uwCpSwCZtACrRAC55EEX+wCSDRAG9LCcumDLRQC7WwCn+wCqTADGJLAKsgtqsQDLBQ C5QQuL7wJq+5uIzbuI77uJD7DzRwDyJgDzVwuSnwD+EADisQBAcBCDrgAG4guRwADiNwuSOAA3SA AylwAgLRBXSQAnQQBJxLAykQBCKABpdbAx+guW7gBk/wBDkACAaRAkvAA0ngAA6gAwoACFbAA+dg BAaRDnLwAkMAAzowAFEQA8rrAG1QAeH/wAPjwA4CAQg+wADm8AJMAAQkAA7wwAT6sAOhGwMRYAQK kAdUsA5ykAfEOxArwAADMBD1wAH/oAAbcBBLkAYC4QZk8A9E0LwDUQf/wAUQLBD0oAUCAQNYIBBN wAMGwQFP8A8o8AblywRZYBD2AAMBLBA48A+AoAABcBBVoAAr3A7/MAUV7ML/MAA8IMECEQIDAQM/ IBA5wACv2MIivA8CMQBn0MADMQIxcA8fcARiIAQurABx8LkxAAPhMBBTIAcksAJHkAUEDAj7UAHE +wLuEMRD/A85AAO8ewQ6QAQCsQ8Z4MJe4AKuOxBBoAB4EA93sAZecMVZfBADEAYusAQB/8wPctAG bNAP8oDENOACBAwESPwPQkzECuAOeBDI7yAQGTAOYgAGQNAEBzECKszBVkDIIpcEiQwIODwQ6LAC 5bsG5DAAAGAQmezGDDAQgODDKIACgBAGZyATKWzKvvzCMTwQ83DAAqEDTAAID9y/AmEGFqwAZNC7 bEzEDEACBoEPIkzCAxADZ0DN//C/KywQbFDAziwQYwAA6VDNHuwPOQwOY1C+MQAG5qzBAiECHmwQ 6vAPb4ACS8wDPTAQJAAHcyAOQrADWhAGXnACedADAWAHO7AGKbABZzAEaDAOTzAAPZAPPmAHFo3R AwEHISwQ6bABc1AFbiACSTAD5dDQ9BYQBTsgAmAQBeggEBwAA/0QuUD9DwEBADs= ------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: text/css; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.sciencedirect.com/science/page/static/stylesheets/css_gen_v01.css BODY { MARGIN: 0px } DIV { FONT-FAMILY: arial, verdana, helvetica, sans-serif; FONT-SIZE: 1em } HTML { FONT-FAMILY: arial, verdana, helvetica, sans-serif; FONT-SIZE: 1em } IMG { FONT-FAMILY: arial, verdana, helvetica, sans-serif; FONT-SIZE: 1em } INPUT { FONT-FAMILY: arial, verdana, helvetica, sans-serif; FONT-SIZE: 1em } SELECT { FONT-FAMILY: arial, verdana, helvetica, sans-serif; FONT-SIZE: 1em } TABLE { FONT-FAMILY: arial, verdana, helvetica, sans-serif; FONT-SIZE: 1em } TD { FONT-FAMILY: arial, verdana, helvetica, sans-serif; FONT-SIZE: 1em } LI { FONT-FAMILY: arial, verdana, helvetica, sans-serif; FONT-SIZE: 1em } .pageText { FONT-FAMILY: arial, verdana, helvetica, sans-serif; FONT-SIZE: 1em } .alertMsg { COLOR: #ff0000; FONT-WEIGHT: bold } .errMsg { COLOR: #ff0000; FONT-WEIGHT: bold } DIV.refMsg { DISPLAY: none } DIV.msgBox { BORDER-BOTTOM: #dedede 1px solid; BORDER-LEFT: #dedede 1px solid; = PADDING-BOTTOM: 6px; PADDING-LEFT: 5px; WIDTH: 80%; PADDING-RIGHT: 5px; = BORDER-TOP: #dedede 1px solid; BORDER-RIGHT: #dedede 1px solid; = PADDING-TOP: 6px } DIV.msgBoxExcerpt { BORDER-BOTTOM: #dedede 1px solid; BORDER-LEFT: #dedede 1px solid; = PADDING-BOTTOM: 6px; PADDING-LEFT: 5px; WIDTH: 70%; PADDING-RIGHT: 5px; = BORDER-TOP: #dedede 1px solid; BORDER-RIGHT: #dedede 1px solid; = PADDING-TOP: 6px } DIV.imgIcon { PADDING-RIGHT: 5px; FLOAT: left; COLOR: #ff0000; FONT-WEIGHT: bold } DIV.imgIcon H3 { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: = 0px; FONT-SIZE: 1em; PADDING-TOP: 0px } DIV.errMsgText { PADDING-LEFT: 26px; COLOR: #ff0000; FONT-WEIGHT: bold } DIV.alertMsgText { PADDING-LEFT: 26px; COLOR: #ff0000; FONT-WEIGHT: bold } DIV.confirmMsgText { COLOR: #000000; FONT-WEIGHT: bold } DIV.infoMsgText { PADDING-LEFT: 26px; COLOR: #000000; FONT-WEIGHT: bold } DIV.msgText { PADDING-LEFT: 50px; COLOR: #000000; FONT-WEIGHT: normal } DIV.errMsgText A { COLOR: #ff0000; FONT-WEIGHT: bold } DIV.alertMsgText A { COLOR: #ff0000; FONT-WEIGHT: bold } DIV.confirmMsgText A { COLOR: #000000; FONT-WEIGHT: bold } DIV.infoMsgText A { COLOR: #000000; FONT-WEIGHT: bold } DIV.msgText A { FONT-WEIGHT: normal } .textZone { BORDER-BOTTOM: #9c9c9c 1px solid; BORDER-LEFT: #9c9c9c 1px solid; = PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #efefef; MARGIN-TOP: 10px; = PADDING-LEFT: 10px; WIDTH: 582px; PADDING-RIGHT: 10px; MARGIN-BOTTOM: = 10px; BORDER-TOP: #9c9c9c 1px solid; BORDER-RIGHT: #9c9c9c 1px solid; = PADDING-TOP: 10px } .OriginalArticle { COLOR: #7e7e7e; FONT-SIZE: 0.92em } .pageHeading { MARGIN: 5px 0px; FONT-FAMILY: arial, verdana, helvetica, sans-serif; = COLOR: #000000; FONT-SIZE: 150%; FONT-WEIGHT: bold } .pageHeadingBlack { MARGIN: 5px 0px 0px 5px; FONT-FAMILY: arial, helvetica, sans-serif; = COLOR: #000000; FONT-SIZE: 150%; FONT-WEIGHT: bold } .pageContent { MARGIN: 10px 5px 5px 0px } #sdLoginBox { PADDING-BOTTOM: 0.1em; BACKGROUND-COLOR: #dddddd; PADDING-LEFT: 0.1em; = WIDTH: 29.5em; PADDING-RIGHT: 0.1em; BACKGROUND-REPEAT: repeat-x; = BACKGROUND-POSITION: left bottom; HEIGHT: 6.7em; FONT-SIZE: 0.8em; = OVERFLOW: hidden; PADDING-TOP: 0.1em } #sdLoginBox INPUT { FONT-SIZE: 0.9em } #sdLoginBox DIV { FONT-FAMILY: arial, verdana, helvetica, sans-serif; FONT-SIZE: 1em } #sdLoginBox HTML { FONT-FAMILY: arial, verdana, helvetica, sans-serif; FONT-SIZE: 1em } #sdLoginBox IMG { FONT-FAMILY: arial, verdana, helvetica, sans-serif; FONT-SIZE: 1em } #sdLoginBox INPUT { FONT-FAMILY: arial, verdana, helvetica, sans-serif; FONT-SIZE: 1em } #sdLoginBox SELECT { FONT-FAMILY: arial, verdana, helvetica, sans-serif; FONT-SIZE: 1em } #sdLoginBox TABLE { FONT-FAMILY: arial, verdana, helvetica, sans-serif; FONT-SIZE: 1em } #sdLoginBox TD { FONT-FAMILY: arial, verdana, helvetica, sans-serif; FONT-SIZE: 1em } #sdLoginBoxFold { TEXT-ALIGN: right; OVERFLOW: hidden } #qsTitle { PADDING-LEFT: 12px } #sdQuickSearch { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 12px; PADDING-RIGHT: = 12px; BACKGROUND: url(/scidirimg/bg_QuickSearch.gif) repeat-x; HEIGHT: = 54px; FONT-SIZE: 75%; PADDING-TOP: 0px } #sdQuickSearch TABLE { FONT-SIZE: 1em } #sdQuickSearch LABEL { PADDING-RIGHT: 5px } #sdQuickSearch INPUT.textbox { BORDER-BOTTOM: #b2b2b2 1px solid; BORDER-LEFT: #b2b2b2 1px solid; = MARGIN: 1px 0px; FONT-SIZE: 1em; BORDER-TOP: #b2b2b2 1px solid; = BORDER-RIGHT: #b2b2b2 1px solid } #sdQuickSearch INPUT.button { FONT-FAMILY: Arial, verdana, helvetica, sans-serif; COLOR: #000000; = MARGIN-LEFT: 14px; FONT-SIZE: 1em; FONT-WEIGHT: bold } #sdQuickSearch TD { FONT-FAMILY: arial, verdana, helvetica, sans-serif } #sdBody { FONT-FAMILY: arial, verdana, helvetica, sans-serif; FONT-SIZE: 75% } A.ActionButton { TEXT-DECORATION: none } A.ActionButton:hover { TEXT-DECORATION: underline } A.ActionButton:hover:visited { TEXT-DECORATION: underline } #a:link .Active { TEXT-DECORATION: underline } A:visited .Active { TEXT-DECORATION: underline } .ActionButtonDisabled { COLOR: #9b9b9b; TEXT-DECORATION: none } A { COLOR: #0156aa; TEXT-DECORATION: none } A:link { COLOR: #0156aa; TEXT-DECORATION: none } A:visited { COLOR: #840084 } A:active { COLOR: #333333; TEXT-DECORATION: underline } A:hover { COLOR: #0156aa; TEXT-DECORATION: underline } A:focus { COLOR: #0156aa; TEXT-DECORATION: underline } A.linkclosed:hover { BACKGROUND-COLOR: #777777; COLOR: white; TEXT-DECORATION: none } A.linkopen { BACKGROUND-COLOR: #777777; COLOR: white; TEXT-DECORATION: none } A.linkopen:link { BACKGROUND-COLOR: #777777; COLOR: white; TEXT-DECORATION: none } A.linkopen:visited { BACKGROUND-COLOR: #777777; COLOR: white; TEXT-DECORATION: none } A.linkopen:active { BACKGROUND-COLOR: #777777; COLOR: white; TEXT-DECORATION: none } SPAN.linkopen { BACKGROUND-COLOR: #777777; COLOR: white; TEXT-DECORATION: none } .linknoborder IMG { BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; BORDER-TOP: = medium none; BORDER-RIGHT: medium none } .linkdisabled { COLOR: #9b9b9b } INPUT.xpstyle { BORDER-BOTTOM: #b2b2b2 1px solid; BORDER-LEFT: #b2b2b2 1px solid; = BORDER-TOP: #b2b2b2 1px solid; BORDER-RIGHT: #b2b2b2 1px solid } INPUT.qsinput { PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = FONT-FAMILY: arial, verdana, helvetica, sans-serif; HEIGHT: 1.6em; = PADDING-TOP: 0px } TABLE.sdMainNav { BORDER-BOTTOM: black 0.1em solid; MARGIN-TOP: 0.2em; WIDTH: 100%; = BACKGROUND-REPEAT: repeat-x; BACKGROUND-POSITION: left top; HEIGHT: 2em; = FONT-SIZE: 1em } TD.sdMainNav { BACKGROUND-REPEAT: repeat-x; BACKGROUND-POSITION: left top } .sci_dirNav { BACKGROUND-COLOR: #6c9d31 } .sci_dirNavActive { =09 } .blueNav { BACKGROUND-COLOR: #0000aa } .blueNavActive { BACKGROUND-COLOR: #bad3f3; COLOR: #0000aa } .redNav { BACKGROUND-COLOR: #990000 } .redNavActive { BACKGROUND-COLOR: #f7cece; COLOR: #990000 } .greyNav { BACKGROUND-COLOR: #7f7f7f } .greyNavActive { BACKGROUND-COLOR: #e6e6e6; COLOR: #7f7f7f } .greenNav { BACKGROUND-COLOR: #007703 } .greenNavActive { BACKGROUND-COLOR: #c2edc0; COLOR: #007703 } .orangeNav { BACKGROUND-COLOR: #cc5200 } .orangeNavActive { BACKGROUND-COLOR: #ffdfca; COLOR: #cc5200 } TABLE.sdMainNav A:hover { TEXT-DECORATION: none } TABLE.sdMainNavCenter TD { BORDER-LEFT: white 0.01em solid; HEIGHT: 1.82em; FONT-SIZE: 1em } TABLE.sdMainNavCenter TBODY { FONT-SIZE: 1em } TD { FONT-SIZE: 1em } TR { FONT-SIZE: 1em } DIV { FONT-SIZE: 1em } TABLE.sdMainNavCenter { HEIGHT: 1.82em; BORDER-RIGHT: white 0.01em solid } TABLE.sdMainNav A { PADDING-BOTTOM: 0.33em; HEIGHT: 1.82em; COLOR: white; VERTICAL-ALIGN: = middle; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0.19em } TABLE.sdMainNav A:link { PADDING-BOTTOM: 0.33em; HEIGHT: 1.82em; COLOR: white; VERTICAL-ALIGN: = middle; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0.19em } TABLE.sdMainNav A:visited { PADDING-BOTTOM: 0.33em; HEIGHT: 1.82em; COLOR: white; VERTICAL-ALIGN: = middle; FONT-WEIGHT: normal; TEXT-DECORATION: none; PADDING-TOP: 0.19em } DIV.sdMainNavPadding { PADDING-LEFT: 1em; PADDING-RIGHT: 1em } .alphaDivider { POSITION: relative; PADDING-BOTTOM: 4px; PADDING-LEFT: 4px; WIDTH: 0px; = PADDING-RIGHT: 4px; DISPLAY: inline; HEIGHT: 0px; PADDING-TOP: 4px } .alphaSelect { POSITION: absolute; BACKGROUND-COLOR: #777777; HEIGHT: 11px; TOP: 6px; = LEFT: 4px } .libBannerText { FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; FONT-SIZE: smaller } .sci_dirBtn { BACKGROUND-COLOR: #7aa544 } .sci_dirBtnHov { BACKGROUND-COLOR: #1d6b2f; COLOR: #ffffff } .blueBtn { BACKGROUND-COLOR: #0000aa } .blueBtnHov { BACKGROUND-COLOR: #bad3f3; COLOR: #0000aa } .greenBtn { BACKGROUND-COLOR: #007703 } .greenBtnHov { BACKGROUND-COLOR: #c2edc0; COLOR: #007703 } .greyBtn { BACKGROUND-COLOR: #7f7f7f } .greyBtnHov { BACKGROUND-COLOR: #e6e6e6; COLOR: #7f7f7f } .redBtn { BACKGROUND-COLOR: #990000 } .redBtnHov { BACKGROUND-COLOR: #f7cece; COLOR: #990000 } .orangeBtn { BACKGROUND-COLOR: #cc5200 } .orangeBtnHov { BACKGROUND-COLOR: #ffdfca; COLOR: #cc5200 } INPUT.btn { BORDER-BOTTOM: #666666 1px solid; BORDER-LEFT: #666666 1px solid; = PADDING-BOTTOM: 0px; MARGIN: 0px 1px 0px 0px; PADDING-LEFT: 1px; WIDTH: = auto; PADDING-RIGHT: 1px; COLOR: #ffffff; FONT-SIZE: 12px; = VERTICAL-ALIGN: middle; OVERFLOW: visible; BORDER-TOP: #666666 1px = solid; CURSOR: pointer; FONT-WEIGHT: bold; BORDER-RIGHT: #666666 1px = solid; TEXT-DECORATION: none; PADDING-TOP: 0px } INPUT.btnhov { BORDER-BOTTOM: #666666 1px solid; BORDER-LEFT: #666666 1px solid; = PADDING-BOTTOM: 0px; MARGIN: 0px 1px 0px 0px; PADDING-LEFT: 1px; WIDTH: = auto; PADDING-RIGHT: 1px; FONT-SIZE: 12px; VERTICAL-ALIGN: middle; = OVERFLOW: visible; BORDER-TOP: #666666 1px solid; CURSOR: pointer; = FONT-WEIGHT: bold; BORDER-RIGHT: #666666 1px solid; TEXT-DECORATION: = none; PADDING-TOP: 0px } A.articleBtn { BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: = 1px; BACKGROUND-COLOR: #999999; MARGIN: 0px; PADDING-LEFT: 20px; = PADDING-RIGHT: 20px; COLOR: #ffffff; FONT-SIZE: 12px; BORDER-TOP: medium = none; CURSOR: pointer; FONT-WEIGHT: bold; BORDER-RIGHT: medium none; = TEXT-DECORATION: none; PADDING-TOP: 1px } A.articleBtn:hover { BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: = 1px; BACKGROUND-COLOR: #999999; MARGIN: 0px; PADDING-LEFT: 20px; = PADDING-RIGHT: 20px; COLOR: #ffffff; FONT-SIZE: 12px; BORDER-TOP: medium = none; CURSOR: pointer; FONT-WEIGHT: bold; BORDER-RIGHT: medium none; = TEXT-DECORATION: none; PADDING-TOP: 1px } A.articleBtnActive { BACKGROUND-COLOR: #7aa544; CURSOR: default; TEXT-DECORATION: none } A.articleBtnActive:hover { BACKGROUND-COLOR: #7aa544; CURSOR: default; TEXT-DECORATION: none } A.articleBtn:hover { BACKGROUND-COLOR: #7aa544 } A.btn { BORDER-BOTTOM: #666666 1px solid; BORDER-LEFT: #666666 1px solid; = PADDING-BOTTOM: 1px; MARGIN: 0px 1px 0px 0px; PADDING-LEFT: 5px; = PADDING-RIGHT: 5px; FONT-FAMILY: arial, verdana, helvetica, sans-serif; = HEIGHT: 1.17em; COLOR: #ffffff; FONT-SIZE: 12px; VERTICAL-ALIGN: middle; = BORDER-TOP: #666666 1px solid; FONT-WEIGHT: bold; BORDER-RIGHT: #666666 = 1px solid; TEXT-DECORATION: none; PADDING-TOP: 1px } A.btn:hover { BORDER-BOTTOM: #666666 1px solid; BORDER-LEFT: #666666 1px solid; = PADDING-BOTTOM: 1px; MARGIN: 0px 1px 0px 0px; PADDING-LEFT: 5px; = PADDING-RIGHT: 5px; FONT-FAMILY: arial, verdana, helvetica, sans-serif; = HEIGHT: 1.17em; COLOR: #ffffff; FONT-SIZE: 12px; VERTICAL-ALIGN: middle; = BORDER-TOP: #666666 1px solid; FONT-WEIGHT: bold; BORDER-RIGHT: #666666 = 1px solid; TEXT-DECORATION: none; PADDING-TOP: 1px } A.sci_dirBtn { BACKGROUND-COLOR: #7aa544 } A.sci_dirBtn:hover { BACKGROUND-COLOR: #1d6b2f; COLOR: #ffffff } A.blueBtn { BACKGROUND-COLOR: #0000aa } A.blueBtn:hover { BACKGROUND-COLOR: #bad3f3; COLOR: #0000aa } A.greenBtn { BACKGROUND-COLOR: #007703 } A.greenBtn:hover { BACKGROUND-COLOR: #c2edc0; COLOR: #007703 } A.greyBtn { BACKGROUND-COLOR: #7f7f7f } A.greyBtn:hover { BACKGROUND-COLOR: #e6e6e6; COLOR: #7f7f7f } A.redBtn { BACKGROUND-COLOR: #990000 } A.redBtn:hover { BACKGROUND-COLOR: #f7cece; COLOR: #990000 } A.orangeBtn { BACKGROUND-COLOR: #cc5200 } A.orangeBtn:hover { BACKGROUND-COLOR: #ffdfca; COLOR: #cc5200 } .tableFmBgGray { BORDER-BOTTOM: #9c9c9c 1px solid; BORDER-LEFT: #9c9c9c 1px solid; = BACKGROUND-COLOR: #efefef; FONT-FAMILY: arial, helvetica, sans-serif; = FONT-SIZE: 1em; BORDER-TOP: #9c9c9c 1px solid; BORDER-RIGHT: #9c9c9c 1px = solid } .tableFmBgGray2 { BORDER-BOTTOM: #9c9c9c 1px solid; PADDING-BOTTOM: 8px; = BACKGROUND-COLOR: #efefef; PADDING-LEFT: 8px; PADDING-RIGHT: 8px; = FONT-FAMILY: arial, helvetica, sans-serif; FONT-SIZE: 1em; PADDING-TOP: = 8px } .tableFmBgGrayNoCell { BORDER-BOTTOM: #9c9c9c 1px solid; BORDER-LEFT: #9c9c9c 1px solid; = PADDING-BOTTOM: 8px; BACKGROUND-COLOR: #efefef; PADDING-LEFT: 8px; = PADDING-RIGHT: 8px; FONT-FAMILY: arial, helvetica, sans-serif; = FONT-SIZE: 1em; BORDER-TOP: #9c9c9c 1px solid; BORDER-RIGHT: #9c9c9c 1px = solid; PADDING-TOP: 8px } .tableFmBgPad { PADDING-BOTTOM: 5px; BACKGROUND-COLOR: #efefef; MARGIN-TOP: 5px; = MARGIN-BOTTOM: 5px; PADDING-TOP: 5px } .tableFmCell { TEXT-ALIGN: right; PADDING-BOTTOM: 3px; PADDING-LEFT: 10px; = MARGIN-LEFT: 10px; VERTICAL-ALIGN: top; FONT-WEIGHT: bold; PADDING-TOP: = 3px } .tableFmCellTop { TEXT-ALIGN: right; VERTICAL-ALIGN: top; FONT-WEIGHT: bold; PADDING-TOP: = 0px } .tableFmCellAbove { TEXT-ALIGN: left; PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; = PADDING-RIGHT: 5px; FONT-WEIGHT: bold; PADDING-TOP: 5px } .tableFmCellL { TEXT-ALIGN: left; PADDING-BOTTOM: 3px; PADDING-LEFT: 10px; MARGIN-LEFT: = 10px; VERTICAL-ALIGN: top; FONT-WEIGHT: bold; PADDING-TOP: 3px } .tableFmDivider { PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #9b9b9b; MARGIN: 0px; = PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; HEIGHT: 2px; = PADDING-TOP: 0px } .redtableFmDivider { PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #990000; MARGIN: 0px; = PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; HEIGHT: 2px; = PADDING-TOP: 0px } .SDtxtLarger { FONT-FAMILY: arial, helvetica, sans-serif; FONT-SIZE: larger; = FONT-WEIGHT: bold } .SDtxtSmall { FONT-FAMILY: arial, helvetica, sans-serif; COLOR: #000000; FONT-SIZE: = xx-small } .SDtxtSmallBold { FONT-SIZE: 0.9em; FONT-WEIGHT: bold } .SDtxtNote { FONT-FAMILY: arial, helvetica, sans-serif; COLOR: #000000; FONT-SIZE: = 1em; FONT-WEIGHT: normal } .SDtxtNoteSmall { FONT-FAMILY: arial, helvetica, sans-serif; COLOR: #000000; FONT-SIZE: = 10px; FONT-WEIGHT: normal } .SDtxtPgTitleBlack { FONT-FAMILY: arial, helvetica, sans-serif; COLOR: #000000; FONT-SIZE: = 150%; FONT-WEIGHT: bold } A.errMsg { COLOR: #ff0000; TEXT-DECORATION: none } A.errMsg:hover { TEXT-DECORATION: underline } .boldText { FONT-WEIGHT: bold } .tablePlainWhite { PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #ffffff; PADDING-LEFT: 0px; = PADDING-RIGHT: 0px; PADDING-TOP: 0px } .tablePlainWhite TD { BORDER-BOTTOM: #9c9c9c 1px solid } .inputBox { BORDER-BOTTOM: #b2b2b2 1px solid; BORDER-LEFT: #b2b2b2 1px solid; = BACKGROUND-COLOR: #ffffff; FONT-SIZE: 1em; VERTICAL-ALIGN: top; = BORDER-TOP: #b2b2b2 1px solid; BORDER-RIGHT: #b2b2b2 1px solid } .textBoxMultipleRow { BACKGROUND-COLOR: #ffffff; FONT-FAMILY: Arial, Helvetica, sans-serif; = FONT-SIZE: 1em } A.nextPrev { MARGIN: 0px 10px; WIDTH: 1%; COLOR: #ffffff; FONT-SIZE: 1em; = TEXT-DECORATION: none } A.nextPrev:hover { MARGIN: 0px 10px; WIDTH: 1%; COLOR: #ffffff; FONT-SIZE: 1em; = TEXT-DECORATION: underline } INPUT.nextPrev { BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: = 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px 0px 2px; PADDING-LEFT: = 1px; WIDTH: auto; PADDING-RIGHT: 1px; COLOR: #0156aa; FONT-SIZE: 1em; = VERTICAL-ALIGN: middle; OVERFLOW: visible; BORDER-TOP: medium none; = BORDER-RIGHT: medium none; TEXT-DECORATION: none; PADDING-TOP: 0px } INPUT.nextPrevHov { BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: = 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px 0px 2px; PADDING-LEFT: = 0px; WIDTH: auto; PADDING-RIGHT: 0px; COLOR: #0156aa; FONT-SIZE: 1em; = VERTICAL-ALIGN: middle; OVERFLOW: visible; BORDER-TOP: medium none; = CURSOR: pointer; BORDER-RIGHT: medium none; TEXT-DECORATION: underline; = PADDING-TOP: 0px } INPUT.listAction { BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: = 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px 7px 0px 5px; = PADDING-LEFT: 0px; WIDTH: auto; PADDING-RIGHT: 0px; COLOR: #0156aa; = FONT-SIZE: 0.95em; VERTICAL-ALIGN: middle; OVERFLOW: visible; = BORDER-TOP: medium none; CURSOR: pointer; BORDER-RIGHT: medium none; = TEXT-DECORATION: none; PADDING-TOP: 0px } INPUT.listAction:hover { BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: = 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px 7px 0px 5px; = PADDING-LEFT: 0px; WIDTH: auto; PADDING-RIGHT: 0px; COLOR: #0156aa; = FONT-SIZE: 0.95em; VERTICAL-ALIGN: middle; OVERFLOW: visible; = BORDER-TOP: medium none; CURSOR: pointer; BORDER-RIGHT: medium none; = TEXT-DECORATION: none; PADDING-TOP: 0px } INPUT.listAction:hover { TEXT-DECORATION: underline } .smCaps { FONT-VARIANT: small-caps } .nowrap { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: = 0px; WHITE-SPACE: nowrap; PADDING-TOP: 0px } SPAN.hit { BACKGROUND-COLOR: #ffff99; MARGIN: 0px 2px } SPAN.bf { FONT-WEIGHT: bold } SPAN.it { FONT-STYLE: italic } SPAN.monospace { FONT-FAMILY: courier } SPAN.sans-serif { FONT-FAMILY: sans-serif } SPAN.underline { TEXT-DECORATION: underline } SPAN.pit { FONT-FAMILY: arial, verdana, helvetica, sans-serif; COLOR: #737373; = FONT-SIZE: 0.9em } .charImg { BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; VERTICAL-ALIGN: = baseline; BORDER-TOP: medium none; BORDER-RIGHT: medium none } SPAN.cross-out { TEXT-DECORATION: line-through } .h1 { FONT-FAMILY: arial,verdana,helvetica,sans-serif; FONT-SIZE: 2em; = FONT-WEIGHT: bold } .h2 { FONT-FAMILY: arial,verdana,helvetica,sans-serif; FONT-SIZE: 1.3em; = FONT-WEIGHT: bold } .h3 { FONT-FAMILY: arial,verdana,helvetica,sans-serif; FONT-SIZE: 1.2em; = FONT-WEIGHT: bold } .h4 { FONT-FAMILY: arial,verdana,helvetica,sans-serif; FONT-SIZE: 1.1em; = FONT-WEIGHT: bold } .h5 { FONT-FAMILY: arial,verdana,helvetica,sans-serif; FONT-SIZE: 1em; = FONT-WEIGHT: bold } .ImageScroller { WIDTH: 100%; OVERFLOW: auto } .ImageScrollerPurchHist { WIDTH: 455px; OVERFLOW: auto } .ImageScrollerPurchCurr { WIDTH: 415px; OVERFLOW: auto } DIV.auto_complete { Z-INDEX: 99 !important; BORDER-BOTTOM: #888 1px solid; POSITION: = absolute; BORDER-LEFT: #888 1px solid; PADDING-BOTTOM: 0px; = BACKGROUND-COLOR: white; MARGIN: 0px; PADDING-LEFT: 0px; WIDTH: 250px; = PADDING-RIGHT: 0px; BORDER-TOP: #888 1px solid; BORDER-RIGHT: #888 1px = solid; PADDING-TOP: 0px } DIV.auto_complete UL { PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: = 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px } DIV.auto_complete UL LI.selected { BACKGROUND-COLOR: blue; COLOR: white } DIV.auto_complete UL LI { PADDING-BOTTOM: 2px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: = 2px; PADDING-RIGHT: 2px; DISPLAY: block; CURSOR: pointer; PADDING-TOP: = 2px } .previewBox { BORDER-BOTTOM: #9b9b9b 1px solid; BORDER-LEFT: #9b9b9b 1px solid; = PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #efefef; PADDING-LEFT: 10px; = WIDTH: 95%; PADDING-RIGHT: 10px; ZOOM: 1; DISPLAY: none; FONT-SIZE: = 12px; BORDER-TOP: #9b9b9b 1px solid; BORDER-RIGHT: #9b9b9b 1px solid; = PADDING-TOP: 10px } .previewBar1 { PADDING-BOTTOM: 0.5em; BACKGROUND-COLOR: #ffffff; PADDING-LEFT: 0.5em; = PADDING-RIGHT: 0.5em; DISPLAY: block; FLOAT: none; CLEAR: both; = PADDING-TOP: 0.5em } .previewBar2 { BORDER-BOTTOM: #cccccc 1px solid; WIDTH: 100%; DISPLAY: block; HEIGHT: = 20px; FONT-WEIGHT: bold } .previewContent { PADDING-BOTTOM: 0.5em; BACKGROUND-COLOR: #ffffff; PADDING-LEFT: 0.5em; = PADDING-RIGHT: 0.5em; HEIGHT: 280px; OVERFLOW: auto; PADDING-TOP: 0.5em } .txtHidden { POSITION: absolute; WIDTH: 1px; HEIGHT: 1px; OVERFLOW: hidden; TOP: = -500px; LEFT: 0px } .font1 { FONT-SIZE: 0.8em } .font2 { FONT-SIZE: 0.9em } .font3 { FONT-SIZE: 1em } .font4 { FONT-SIZE: 1.1em } .font5 { FONT-SIZE: 1.2em } .resultRow { PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: = 0px; BORDER-TOP: #9b9b9b 1px solid; PADDING-TOP: 0px } .resultRow TD DIV.txt { FONT-SIZE: 11px; PADDING-TOP: 5px } .resultRow TD DIV.txt IMG { VERTICAL-ALIGN: middle } .resultRow TD DIV.txt IMG.mmcIcon { VERTICAL-ALIGN: top } A.blackLink { FONT-SIZE: 0.95em } .issueBanner { POSITION: relative; PADDING-BOTTOM: 7px; BACKGROUND-COLOR: #7aa544; = PADDING-LEFT: 4px; PADDING-RIGHT: 4px; COLOR: #ffffff; PADDING-TOP: 7px } A.issueBannerLink { COLOR: #ffffff; TEXT-DECORATION: underline } .txtSmall { FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; FONT-SIZE: xx-small } .modalWindow { Z-INDEX: 100; BORDER-BOTTOM: 0px; POSITION: absolute; FILTER: = alpha(opacity=3D80); BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; = PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; BACKGROUND: #cccccc = 0px 0px; HEIGHT: 100%; COLOR: #cccccc; BORDER-TOP: 0px; TOP: 0%; = BORDER-RIGHT: 0px; PADDING-TOP: 0px; LEFT: 0%; opacity: 0.8 } .modalWindowMsgBox { Z-INDEX: 999; BORDER-BOTTOM: #999999 1px solid; POSITION: absolute; = BORDER-LEFT: #999999 1px solid; PADDING-BOTTOM: 8px; BACKGROUND-COLOR: = #ffffff; PADDING-LEFT: 8px; WIDTH: 500px; PADDING-RIGHT: 8px; = FONT-FAMILY: Arial,Verdana,Helvetica,Sans-serif; HEIGHT: auto; = FONT-SIZE: 1em; BORDER-TOP: #999999 1px solid; TOP: 40%; BORDER-RIGHT: = #999999 1px solid; PADDING-TOP: 8px; LEFT: 250px } #header { HEIGHT: 137px; FONT-SIZE: 0.8em } #content-container { MARGIN-LEFT: 8px; FONT-SIZE: 0.8em; MARGIN-RIGHT: 8px } .content { PADDING-BOTTOM: 10px; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; = PADDING-TOP: 10px } #footer { FONT-SIZE: 0.8em } #footer .padding { PADDING-BOTTOM: 11px; PADDING-LEFT: 12px; PADDING-RIGHT: 12px; = FONT-SIZE: 0.95em; PADDING-TOP: 7px; important:=20 } #linkArea { BORDER-BOTTOM: #d9d9d9 1px solid; BORDER-LEFT: #d9d9d9 1px solid; = MARGIN: 0px 0px 1px; WHITE-SPACE: nowrap; BACKGROUND: #f1f1f1; COLOR: = #707070; FONT-SIZE: 0.92em; BORDER-TOP: #d9d9d9 1px solid; BORDER-RIGHT: = #d9d9d9 1px solid } #linkArea .padding { PADDING-BOTTOM: 8px; PADDING-LEFT: 16px; PADDING-RIGHT: 16px; = PADDING-TOP: 9px } #linkArea UL { PADDING-BOTTOM: 0px; MARGIN: 0px 63px 0px 0px; PADDING-LEFT: 0px; = WIDTH: 157px; PADDING-RIGHT: 0px; FLOAT: left; PADDING-TOP: 0px } #linkArea UL LI UL { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: = 0px; PADDING-TOP: 0px } #linkArea UL LI { LIST-STYLE-POSITION: outside; LIST-STYLE-TYPE: none; MARGIN: 0px } #linkArea A { COLOR: #0156aa; TEXT-DECORATION: none } #copyrightArea A { COLOR: #0156aa; TEXT-DECORATION: none } #linkArea A:hover { TEXT-DECORATION: underline } #copyrightArea A:hover { TEXT-DECORATION: underline } #linkArea A:visited { COLOR: #840084 } #copyrightArea A:visited { COLOR: #840084 } #linkArea IMG { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: = 0px } #linkArea .col3 { MARGIN: 0px 80px 0px 0px } #linkArea .col4 { MARGIN: 1px 0px 0px; WIDTH: 70px } #copyrightArea { BORDER-BOTTOM: #d9d9d9 1px solid; BORDER-LEFT: #d9d9d9 1px solid; = BACKGROUND: #f1f1f1; COLOR: #707070; FONT-SIZE: 0.92em; BORDER-TOP: = #d9d9d9 1px solid; BORDER-RIGHT: #d9d9d9 1px solid } #copyrightArea .padding { PADDING-BOTTOM: 8px; PADDING-LEFT: 16px; PADDING-RIGHT: 16px; = PADDING-TOP: 11px } #copyrightArea P { MARGIN: 0px } #masthead { POSITION: relative; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: = 0px; WIDTH: 179px; PADDING-RIGHT: 0px; HEIGHT: 102px; PADDING-TOP: 0px; = LEFT: 13px } #logoSciVerse { BORDER-BOTTOM: 0px; POSITION: relative; BORDER-LEFT: 0px; MARGIN: 0px; = WIDTH: 106px; DISPLAY: block; HEIGHT: 88px; BORDER-TOP: 0px; = BORDER-RIGHT: 0px } #logoScienceDirect { BORDER-BOTTOM: 0px; POSITION: absolute; BORDER-LEFT: 0px; MARGIN: 0px; = WIDTH: 81px; DISPLAY: block; HEIGHT: 80px; BORDER-TOP: 0px; TOP: 26px; = BORDER-RIGHT: 0px; LEFT: 100px } #logoSD { BORDER-BOTTOM: 0px; POSITION: absolute; BORDER-LEFT: 0px; MARGIN-TOP: = 12px; DISPLAY: block; BORDER-TOP: 0px; BORDER-RIGHT: 0px } #masthead IMG { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: = 0px } #suites { POSITION: absolute; FONT-SIZE: 1.05em; TOP: 12px; LEFT: 200px } #suites UL.suites { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: = 0px; PADDING-TOP: 0px } #suites UL.suites LI { PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: = 0px; PADDING-RIGHT: 0px; FLOAT: left; PADDING-TOP: 0px } #suites UL.suites LI A { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 12px; PADDING-RIGHT: = 12px; WHITE-SPACE: nowrap; COLOR: #000000; BORDER-RIGHT: #d8d8d8 1px = solid; TEXT-DECORATION: none; PADDING-TOP: 0px } #suites UL.suites LI A.selected { FONT-WEIGHT: bold } #suites UL.suites LI A:hover { TEXT-DECORATION: underline } #suites UL.suites LI A.last { BORDER-RIGHT: medium none } #login { Z-INDEX: 5; POSITION: absolute; BACKGROUND: #fff; FONT-SIZE: 12px; TOP: = 12px; RIGHT: 3px } #login UL { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 10px; PADDING-RIGHT: = 0px; PADDING-TOP: 0px } #login UL LI { PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: = 0px; PADDING-RIGHT: 0px; FLOAT: left; BORDER-RIGHT: #000000 1px solid; = PADDING-TOP: 0px } #login UL LI A { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 12px; PADDING-RIGHT: = 12px; WHITE-SPACE: nowrap; PADDING-TOP: 0px } #login UL LI.selected { FONT-WEIGHT: bold } #login UL LI.last { BORDER-RIGHT: medium none } #login UL LI.login { MARGIN-LEFT: 1px } #login UL LI A.plus { BORDER-BOTTOM: 0px; POSITION: relative; BORDER-LEFT: 0px; = PADDING-BOTTOM: 6px; OUTLINE-STYLE: none; OUTLINE-COLOR: invert; = PADDING-LEFT: 12px; OUTLINE-WIDTH: medium; PADDING-RIGHT: 28px; = BACKGROUND: url(/scidirimg/login_expand.gif) no-repeat 50px 50%; = BORDER-TOP: 0px; RIGHT: 1px; BORDER-RIGHT: 0px; PADDING-TOP: 6px } #login UL LI A.minus { Z-INDEX: 2; POSITION: relative; BORDER-LEFT: #ccd1d6 1px solid; = PADDING-BOTTOM: 4px; OUTLINE-STYLE: none; OUTLINE-COLOR: invert; = PADDING-LEFT: 10px; OUTLINE-WIDTH: medium; PADDING-RIGHT: 28px; = BACKGROUND: url(/scidirimg/login_collapse.gif) #e5f3cc no-repeat 50px = 50%; BORDER-TOP: #ccd1d6 1px solid; RIGHT: 1px; BORDER-RIGHT: #ccd1d6 = 1px solid; PADDING-TOP: 4px } #logout { Z-INDEX: 5; POSITION: absolute; BACKGROUND: #fff; FONT-SIZE: 12px; TOP: = 12px; RIGHT: 3px } #logout UL { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 10px; PADDING-RIGHT: = 0px; PADDING-TOP: 0px } #logout UL LI { PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: = 0px; PADDING-RIGHT: 0px; FLOAT: left; BORDER-RIGHT: #000000 1px solid; = PADDING-TOP: 0px } #logout UL LI A { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 12px; PADDING-RIGHT: = 12px; WHITE-SPACE: nowrap; PADDING-TOP: 0px } #logout UL LI.selected { FONT-WEIGHT: bold } #logout UL LI.last { BORDER-RIGHT: medium none } #logout UL LI.logout { BACKGROUND: url(/scidirimg/divider_login1.gif) no-repeat 99% 50% } #logout UL LI.details A.logoutPlus { BORDER-BOTTOM: 0px; POSITION: relative; BORDER-LEFT: 0px; = PADDING-BOTTOM: 5px; OUTLINE-STYLE: none; OUTLINE-COLOR: invert; = PADDING-LEFT: 10px; OUTLINE-WIDTH: medium; PADDING-RIGHT: 10px; = BACKGROUND: url(/scidirimg/login_expand.gif) no-repeat 40% 50%; = BORDER-TOP: 0px; BORDER-RIGHT: 0px; PADDING-TOP: 4px; LEFT: 0px } #logout UL LI A.logoutMinus { POSITION: relative; BORDER-LEFT: #ccd1d6 1px solid; PADDING-BOTTOM: = 3px; OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 9px; = OUTLINE-WIDTH: medium; PADDING-RIGHT: 9px; BACKGROUND: = url(/scidirimg/login_collapse.gif) #e5f3cc no-repeat 50% 50%; = BORDER-TOP: #ccd1d6 1px solid; BORDER-RIGHT: #ccd1d6 1px solid; = PADDING-TOP: 3px; LEFT: 0px } #logout UL LI SPAN { PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = PADDING-TOP: 0px } #logout UL LI SPAN SPAN { MARGIN-LEFT: 4px } #logout UL LI SPAN A.userPlus { BORDER-BOTTOM: 0px; POSITION: relative; BORDER-LEFT: 0px; = PADDING-BOTTOM: 5px; OUTLINE-STYLE: none; OUTLINE-COLOR: invert; = PADDING-LEFT: 10px; OUTLINE-WIDTH: medium; PADDING-RIGHT: 10px; = BACKGROUND: url(/scidirimg/login_expand.gif) no-repeat 40% 50%; = BORDER-TOP: 0px; BORDER-RIGHT: 0px; PADDING-TOP: 4px; LEFT: 0px } #logout UL LI SPAN A.userMinus { POSITION: relative; BORDER-LEFT: #ccd1d6 1px solid; PADDING-BOTTOM: = 3px; OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 9px; = OUTLINE-WIDTH: medium; PADDING-RIGHT: 9px; BACKGROUND: = url(/scidirimg/login_collapse.gif) #e5f3cc no-repeat 50% 50%; = BORDER-TOP: #ccd1d6 1px solid; BORDER-RIGHT: #ccd1d6 1px solid; = TEXT-DECORATION: none; PADDING-TOP: 3px; LEFT: 0px } #loginBox { Z-INDEX: 3; BORDER-BOTTOM: #ccd1d6 1px solid; POSITION: absolute; = BORDER-LEFT: #ccd1d6 1px solid; WIDTH: 258px; BACKGROUND: #e5f3cc; = FONT-SIZE: 12px; BORDER-TOP: #ccd1d6 1px solid; TOP: 30px; RIGHT: 126px; = BORDER-RIGHT: #ccd1d6 1px solid } * HTML > BODY #loginBox { TOP: 27px } x:unknown { TOP: 27px } #loginBox .padding { PADDING-BOTTOM: 0px; PADDING-LEFT: 14px; PADDING-RIGHT: 0px; = PADDING-TOP: 14px } #loginBox A { COLOR: #0156aa; TEXT-DECORATION: none } #loginBox A:hover { TEXT-DECORATION: underline } #login-box-form { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: = 0px; PADDING-TOP: 0px } #login-box-form P { MARGIN: 0px 0px 2px } #login-box-form LABEL { TEXT-ALIGN: right } #login-box-form LABEL SPAN { MARGIN: 0px; WIDTH: 64px; DISPLAY: inline-block; CURSOR: default } * HTML > BODY #login-box-form LABEL SPAN { =09 } x:unknown { =09 } #login-box-form LABEL INPUT { WIDTH: 128px } #login-box-form DIV.remember { PADDING-BOTTOM: 0px; MARGIN: 10px 0px 0px 64px; PADDING-LEFT: 0px; = PADDING-RIGHT: 0px; PADDING-TOP: 0px } #login-box-form DIV.remember INPUT { MARGIN: 0px 0px 0px 4px; FONT-SIZE: 1em; FONT-WEIGHT: bold } #login-box-form DIV.remember LABEL { MARGIN: 0px } #login-box-form DIV.submit { PADDING-BOTTOM: 0px; LINE-HEIGHT: 0; MARGIN: 16px 0px 0px 64px; = PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px } #login-box-form DIV.submit INPUT.button { MARGIN: 0px; FONT-SIZE: 1em; FONT-WEIGHT: bold } #loginBox DIV.forgotpass { MARGIN: 10px 0px } #loginBox DIV.institutiontext { PADDING-BOTTOM: 14px; MARGIN: 0px; PADDING-LEFT: 14px; PADDING-RIGHT: = 0px; BORDER-TOP: #9b9b9b 1px solid; PADDING-TOP: 10px } .notRegistered { MARGIN-TOP: 10px; FLOAT: left } #userBox { Z-INDEX: 3; BORDER-BOTTOM: #ccd1d6 1px solid; POSITION: absolute; = BORDER-LEFT: #ccd1d6 1px solid; WIDTH: 250px; BACKGROUND: #e5f3cc; = BORDER-TOP: #ccd1d6 1px solid; TOP: 29px; RIGHT: 67px; BORDER-RIGHT: = #ccd1d6 1px solid } * HTML > BODY #userBox { TOP: 28px } x:unknown { TOP: 28px } #userBox .padding { PADDING-BOTTOM: 14px; PADDING-LEFT: 14px; PADDING-RIGHT: 14px; = PADDING-TOP: 14px } #userBox A { COLOR: #0156aa; TEXT-DECORATION: none } #userBox A:hover { TEXT-DECORATION: underline } #banner-top { POSITION: absolute; TEXT-ALIGN: center; WIDTH: 234px; PADDING-RIGHT: = 3px; HEIGHT: 60px; COLOR: #000000; OVERFLOW: hidden; TOP: 34px; RIGHT: = 12px } #banner-bottom { MARGIN-TOP: 2px; FLOAT: right } .floatR { FLOAT: right } #navigationTop { BORDER-BOTTOM: #d7d7d7 2px solid; WIDTH: 100%; BACKGROUND: #6c9d31; = COLOR: #fff; FONT-SIZE: 1.14em; BORDER-TOP: #999999 4px solid } #navigationBottom { BORDER-BOTTOM: #d7d7d7 2px solid; WIDTH: 100%; BACKGROUND: #6c9d31; = COLOR: #fff; FONT-SIZE: 1.14em; BORDER-TOP: #999999 4px solid } UL.main { FLOAT: left; HEIGHT: 29px } UL.misc { FLOAT: right; HEIGHT: 29px } UL.nav { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: = 0px; PADDING-TOP: 0px } UL.nav LI { PADDING-BOTTOM: 8px; LINE-HEIGHT: 13px; LIST-STYLE-TYPE: none; MARGIN: = 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BACKGROUND: = url(/scidirimg/divider_nav.gif) no-repeat left center; FLOAT: left; = PADDING-TOP: 8px } UL.nav LI A { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 12px; PADDING-RIGHT: = 12px; WHITE-SPACE: nowrap; COLOR: #ffffff !important; FONT-SIZE: 14px; = TEXT-DECORATION: none; PADDING-TOP: 0px } UL.nav LI A:hover { COLOR: #ffffff; TEXT-DECORATION: underline; important:=20 } UL.nav LI A.selected { FONT-WEIGHT: bold } UL.nav LI.last { BACKGROUND: none transparent scroll repeat 0% 0% } .clearfix:after { DISPLAY: block; HEIGHT: 0px; VISIBILITY: hidden; CLEAR: both } .clear { CLEAR: both } .logonBox { BORDER-BOTTOM: #9c9c9c 1px solid; BORDER-LEFT: #9c9c9c 1px solid; = PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #efefef; PADDING-LEFT: 10px; = WIDTH: 600px; PADDING-RIGHT: 10px; BORDER-TOP: #9c9c9c 1px solid; = BORDER-RIGHT: #9c9c9c 1px solid; PADDING-TOP: 10px } #sdHeader { PADDING-BOTTOM: 18px; PADDING-LEFT: 14px; PADDING-RIGHT: 14px; = PADDING-TOP: 18px } .amtResults { PADDING-BOTTOM: 9px; BACKGROUND-COLOR: #e5f3cc; PADDING-LEFT: 9px; = PADDING-RIGHT: 9px; MARGIN-BOTTOM: 9px; PADDING-TOP: 9px } .googleAd { PADDING-BOTTOM: 0px; MARGIN: 0px 0px -10px; PADDING-LEFT: 5px; = PADDING-RIGHT: 5px; PADDING-TOP: 0px } .button { FONT-FAMILY: Arial, verdana, Helvetica, sans-serif; COLOR: #000000; = FONT-SIZE: 12px; FONT-WEIGHT: bold } .orgName { TEXT-ALIGN: left; PADDING-BOTTOM: 10px; PADDING-LEFT: 10px; = PADDING-RIGHT: 10px; FONT-FAMILY: Arial, verdana, Helvetica, sans-serif; = FONT-SIZE: 12px; FONT-WEIGHT: bold; PADDING-TOP: 10px } .changeOrg { TEXT-ALIGN: left; MARGIN-TOP: 5px; FONT-FAMILY: Arial, verdana, = Helvetica, sans-serif; FONT-SIZE: 11px; FONT-WEIGHT: normal; = TEXT-DECORATION: none } .outerWrapper { MIN-WIDTH: 960px } .fontSizer { BORDER-BOTTOM: #e8e8e8 4px solid; BORDER-LEFT: 0px; PADDING-BOTTOM: = 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; HEIGHT: 37px; BORDER-TOP: = 0px; BORDER-RIGHT: 0px; PADDING-TOP: 0px } .fontSizer TD { PADDING-BOTTOM: 7px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: = 0px; PADDING-TOP: 0px } .contentMain { BORDER-BOTTOM: #fcfcfc 1px solid; POSITION: relative; BORDER-LEFT: = #fcfcfc 1px solid; BACKGROUND-COLOR: #f6f6f6; BORDER-TOP: #fcfcfc 1px = solid; BORDER-RIGHT: #fcfcfc 1px solid } .contentMain .contentShadow { BORDER-BOTTOM: #ededed 1px solid; POSITION: relative; BORDER-LEFT: = #ededed 1px solid; BACKGROUND-COLOR: #e1e1e1; BORDER-TOP: #ededed 1px = solid; TOP: -1px; BORDER-RIGHT: #ededed 1px solid; LEFT: -1px } .contentMain .contentBorders { BORDER-BOTTOM: #9b9b9b 1px solid; POSITION: relative; BORDER-LEFT: = #9b9b9b 1px solid; ZOOM: 1; BACKGROUND: #fff; BORDER-TOP: #9b9b9b 1px = solid; TOP: -1px; BORDER-RIGHT: #9b9b9b 1px solid; LEFT: -1px } .contentMain .contentPadding { PADDING-BOTTOM: 8px; PADDING-LEFT: 8px; PADDING-RIGHT: 8px; = PADDING-TOP: 8px } A.tabActive { BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: = 1px; MARGIN: 0px 2px 0px 0px; PADDING-LEFT: 20px; PADDING-RIGHT: 20px; = COLOR: #ffffff; FONT-SIZE: 1em; BORDER-TOP: medium none; FONT-WEIGHT: = bold; BORDER-RIGHT: medium none; TEXT-DECORATION: none; PADDING-TOP: 1px } A.tabActive:hover { BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: = 1px; MARGIN: 0px 2px 0px 0px; PADDING-LEFT: 20px; PADDING-RIGHT: 20px; = COLOR: #ffffff; FONT-SIZE: 1em; BORDER-TOP: medium none; FONT-WEIGHT: = bold; BORDER-RIGHT: medium none; TEXT-DECORATION: none; PADDING-TOP: 1px } A.tab { BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: = 1px; BACKGROUND-COLOR: #999999; MARGIN: 0px 2px 0px 0px; PADDING-LEFT: = 20px; PADDING-RIGHT: 20px; COLOR: #ffffff; FONT-SIZE: 1em; BORDER-TOP: = medium none; FONT-WEIGHT: bold; BORDER-RIGHT: medium none; = TEXT-DECORATION: none; PADDING-TOP: 1px } A.tab:hover { BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: = 1px; BACKGROUND-COLOR: #999999; MARGIN: 0px 2px 0px 0px; PADDING-LEFT: = 20px; PADDING-RIGHT: 20px; COLOR: #ffffff; FONT-SIZE: 1em; BORDER-TOP: = medium none; FONT-WEIGHT: bold; BORDER-RIGHT: medium none; = TEXT-DECORATION: none; PADDING-TOP: 1px } A.sci_dirTabActive { BACKGROUND-COLOR: #7aa544; CURSOR: default; TEXT-DECORATION: none } A.sci_dirTabActive:hover { BACKGROUND-COLOR: #7aa544; CURSOR: default; TEXT-DECORATION: none } A.sci_dirTab:hover { BACKGROUND-COLOR: #7aa544 } .cartSubIcons { MARGIN-TOP: 10px; MARGIN-BOTTOM: 10px; FLOAT: left; MARGIN-LEFT: 15px } .cartViewPur { MARGIN-TOP: 10px; MARGIN-BOTTOM: 10px; FLOAT: right; MARGIN-RIGHT: 5px } .cartHeader { BORDER-BOTTOM: #c8c8c8 1px solid; PADDING-BOTTOM: 10px; PADDING-TOP: = 10px } .cartRemPad { PADDING-LEFT: 70px } .cartContMain { MARGIN-TOP: 8px } .cartNoItem { PADDING-BOTTOM: 10px; PADDING-LEFT: 15px; PADDING-TOP: 10px } .cartTermsPad { PADDING-LEFT: 25px } #shoppingCartFlow { POSITION: relative; CURSOR: default } #shoppingCartFlow UL { PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: = 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px } #shoppingCartFlow UL LI { POSITION: relative; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: = 0px; PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-TOP: 0px } #shoppingCartFlow UL LI#twoBilling { POSITION: relative; TOP: -3px; LEFT: -2px } #shoppingCartFlow UL LI#threePayment { POSITION: relative; TOP: -3px; LEFT: -4px } #shoppingCartFlow UL LI#fourConfirm { POSITION: relative; TOP: -3px; LEFT: -6px } #shoppingCartFlow UL LI#fiveReceipt { POSITION: relative; TOP: -3px; LEFT: -8px } .purHistTable { BORDER-BOTTOM: #c8c8c8 1px solid; TEXT-ALIGN: left; BORDER-LEFT: = #c8c8c8 1px solid; BORDER-TOP: #c8c8c8 1px solid; BORDER-RIGHT: #c8c8c8 = 1px solid } .purHistTable TR TD.header { BORDER-BOTTOM: #c8c8c8 1px solid; PADDING-BOTTOM: 0px; = BACKGROUND-COLOR: #efefef; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; = HEIGHT: 25px; PADDING-TOP: 0px } .purHistTable TR TD.contentText { PADDING-BOTTOM: 10px; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; = PADDING-TOP: 10px } .searchAlertFm { BORDER-BOTTOM: #9c9c9c 1px solid; BORDER-LEFT: #9c9c9c 1px solid; = BORDER-TOP: #9c9c9c 1px solid; BORDER-RIGHT: #9c9c9c 1px solid } .alertListHeader TR TH { BORDER-BOTTOM: #9b9b9b 1px solid; PADDING-BOTTOM: 0px; = BACKGROUND-COLOR: #e8e8e8; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; = HEIGHT: 36px; VERTICAL-ALIGN: middle; BORDER-TOP: #9b9b9b 1px solid; = PADDING-TOP: 0px } .alertListHeader TR TD { BORDER-BOTTOM: #9b9b9b 1px solid; PADDING-BOTTOM: 4px; = BACKGROUND-COLOR: #ffffff; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; = VERTICAL-ALIGN: middle; PADDING-TOP: 4px } .tableLastRow { PADDING-BOTTOM: 0px !important; BACKGROUND-COLOR: #efefef !important; = PADDING-LEFT: 0px !important; PADDING-RIGHT: 0px !important; HEIGHT: = 24px; PADDING-TOP: 0px !important } .noAlertMsgBox { PADDING-BOTTOM: 10px; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; = PADDING-TOP: 10px } .information { BACKGROUND-IMAGE: url(/scidirimg/infoIcon.gif); BORDER-BOTTOM: #dedede = 1px solid; BORDER-LEFT: #dedede 1px solid; PADDING-BOTTOM: 6px; MARGIN: = 1em 0px; PADDING-LEFT: 30px; WIDTH: 580px; PADDING-RIGHT: 5px; = BACKGROUND-REPEAT: no-repeat; FONT-FAMILY: arial,verdana,sans-serif; = BACKGROUND-POSITION: 4px 5px; COLOR: black; FONT-SIZE: 1em; BORDER-TOP: = #dedede 1px solid; BORDER-RIGHT: #dedede 1px solid; PADDING-TOP: 6px } .sci_diriconAddFav { PADDING-BOTTOM: 2px; LINE-HEIGHT: 18px; PADDING-LEFT: 20px; = PADDING-RIGHT: 7px; BACKGROUND: = url(/scidirimg/sci_dir/icon_favorites_a.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .sci_diriconAddFav:hover { PADDING-BOTTOM: 2px; LINE-HEIGHT: 18px; PADDING-LEFT: 20px; = PADDING-RIGHT: 7px; BACKGROUND: = url(/scidirimg/sci_dir/icon_favorites_b.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .iconQlinksci_dir { PADDING-BOTTOM: 2px; LINE-HEIGHT: 20px; PADDING-LEFT: 20px; = PADDING-RIGHT: 7px; BACKGROUND: = url(/scidirimg/sci_dir/addQuickLink_off.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .iconQlinksci_dir:hover { PADDING-BOTTOM: 2px; LINE-HEIGHT: 20px; PADDING-LEFT: 20px; = PADDING-RIGHT: 7px; BACKGROUND: = url(/scidirimg/sci_dir/addQuickLink_on.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .sdiconSearchEdit { PADDING-BOTTOM: 2px; LINE-HEIGHT: 20px; PADDING-LEFT: 20px; = PADDING-RIGHT: 7px; BACKGROUND: url(/scidirimg/sci_dir/btn_edit1.gif) = no-repeat 0px 0px; PADDING-TOP: 2px } .sdiconSearchEdit:hover { PADDING-BOTTOM: 2px; LINE-HEIGHT: 20px; PADDING-LEFT: 20px; = PADDING-RIGHT: 7px; BACKGROUND: url(/scidirimg/sci_dir/btn_edit2.gif) = no-repeat 0px 0px; PADDING-TOP: 2px } .iconSearchEditsci_dir { PADDING-BOTTOM: 2px; LINE-HEIGHT: 20px; PADDING-LEFT: 20px; = PADDING-RIGHT: 7px; BACKGROUND: url(/scidirimg/sci_dir/btn_edit1.gif) = no-repeat 0px 0px; PADDING-TOP: 2px } .iconSearchEditsci_dir:hover { PADDING-BOTTOM: 2px; LINE-HEIGHT: 20px; PADDING-LEFT: 20px; = PADDING-RIGHT: 7px; BACKGROUND: url(/scidirimg/sci_dir/btn_edit2.gif) = no-repeat 0px 0px; PADDING-TOP: 2px } .sdiconSearchDel { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/sci_dir/delete_a.gif) no-repeat 0px 0px; = MARGIN-LEFT: 5px; PADDING-TOP: 2px } .sdiconSearchDel:hover { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/sci_dir/delete_b.gif) no-repeat 0px 0px; = MARGIN-LEFT: 5px; PADDING-TOP: 2px } .iconQlinkblue { PADDING-BOTTOM: 2px; LINE-HEIGHT: 20px; PADDING-LEFT: 20px; = PADDING-RIGHT: 7px; BACKGROUND: = url(/scidirimg/blue/addQuickLink_off.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .iconQlinkblue:hover { PADDING-BOTTOM: 2px; LINE-HEIGHT: 20px; PADDING-LEFT: 20px; = PADDING-RIGHT: 7px; BACKGROUND: url(/scidirimg/blue/addQuickLink_on.gif) = no-repeat 0px 0px; PADDING-TOP: 2px } .iconQlinkgreen { PADDING-BOTTOM: 2px; LINE-HEIGHT: 20px; PADDING-LEFT: 20px; = PADDING-RIGHT: 7px; BACKGROUND: = url(/scidirimg/green/addQuickLink_off.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .iconQlinkgreen:hover { PADDING-BOTTOM: 2px; LINE-HEIGHT: 20px; PADDING-LEFT: 20px; = PADDING-RIGHT: 7px; BACKGROUND: = url(/scidirimg/green/addQuickLink_on.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .iconQlinkgrey { PADDING-BOTTOM: 2px; LINE-HEIGHT: 20px; PADDING-LEFT: 20px; = PADDING-RIGHT: 7px; BACKGROUND: = url(/scidirimg/grey/addQuickLink_off.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .iconQlinkgrey:hover { PADDING-BOTTOM: 2px; LINE-HEIGHT: 20px; PADDING-LEFT: 20px; = PADDING-RIGHT: 7px; BACKGROUND: url(/scidirimg/grey/addQuickLink_on.gif) = no-repeat 0px 0px; PADDING-TOP: 2px } .iconQlinkred { PADDING-BOTTOM: 2px; LINE-HEIGHT: 20px; PADDING-LEFT: 20px; = PADDING-RIGHT: 7px; BACKGROUND: url(/scidirimg/red/addQuickLink_off.gif) = no-repeat 0px 0px; PADDING-TOP: 2px } .iconQlinkred:hover { PADDING-BOTTOM: 2px; LINE-HEIGHT: 20px; PADDING-LEFT: 20px; = PADDING-RIGHT: 7px; BACKGROUND: url(/scidirimg/red/addQuickLink_on.gif) = no-repeat 0px 0px; PADDING-TOP: 2px } .iconQlinkorange { PADDING-BOTTOM: 2px; LINE-HEIGHT: 20px; PADDING-LEFT: 20px; = PADDING-RIGHT: 7px; BACKGROUND: = url(/scidirimg/orange/addQuickLink_off.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .iconQlinkorange:hover { PADDING-BOTTOM: 2px; LINE-HEIGHT: 20px; PADDING-LEFT: 20px; = PADDING-RIGHT: 7px; BACKGROUND: = url(/scidirimg/orange/addQuickLink_on.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .rediconAddFav { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/red/btn_edit1.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .rediconAddFav:hover { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/red/btn_edit1.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } A.iconSearchEdit { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/sci_dir/btn_edit1.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } A.iconSearchEdit:hover { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/sci_dir/btn_edit2.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } A.iconSearchDel { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/sci_dir/delete_a.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } A.iconSearchDel:hover { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/sci_dir/delete_b.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .icon_pdf { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/icon_pdf.gif) no-repeat 0px 50%; PADDING-TOP: = 2px } .icon_rsscite { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/rsscite.gif) no-repeat 0px 0px; PADDING-TOP: = 2px } .icon_orderdocsci_dir { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/sci_dir/orderdoc_a.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .icon_orderdocsci_dir:hover { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/sci_dir/orderdoc_b.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .icon_exportarticlesci_dir { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/sci_dir/exportarticle_a.gif) no-repeat 0px = 0px; PADDING-TOP: 2px } .icon_exportarticlesci_dir:hover { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/sci_dir/exportarticle_b.gif) no-repeat 0px = 0px; PADDING-TOP: 2px } .icon_emailarticlesci_dir { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/sci_dir/emailarticle_a.gif) no-repeat 0px = 0px; PADDING-TOP: 2px } .icon_emailarticlesci_dir:hover { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/sci_dir/emailarticle_b.gif) no-repeat 0px = 0px; PADDING-TOP: 2px } .icon_saveascitationalertsci_dir { PADDING-BOTTOM: 2px; LINE-HEIGHT: 18px; PADDING-LEFT: 20px; = PADDING-RIGHT: 7px; BACKGROUND: = url(/scidirimg/sci_dir/icon_saveascitationalert_a.gif) no-repeat 0px = 0px; PADDING-TOP: 2px } .icon_saveascitationalertsci_dir:hover { PADDING-BOTTOM: 2px; LINE-HEIGHT: 18px; PADDING-LEFT: 20px; = PADDING-RIGHT: 7px; BACKGROUND: = url(/scidirimg/sci_dir/icon_saveascitationalert_b.gif) no-repeat 0px = 0px; PADDING-TOP: 2px } .icon_citedbysci_dir { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/sci_dir/citedby_a.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .icon_citedbysci_dir:hover { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/sci_dir/citedby_b.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .icon_saveSrchsci_dir { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/sci_dir/save_a.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .icon_saveSrchsci_dir:hover { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/sci_dir/save_b.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .icon_qmarkHelpsci_dir { PADDING-BOTTOM: 2px; LINE-HEIGHT: 20px; PADDING-LEFT: 20px; = PADDING-RIGHT: 7px; BACKGROUND: url(/scidirimg/qmark_gray_a.gif) = no-repeat 0px 0px; PADDING-TOP: 2px } .icon_qmarkHelpsci_dir:hover { PADDING-BOTTOM: 2px; LINE-HEIGHT: 20px; PADDING-LEFT: 20px; = PADDING-RIGHT: 7px; BACKGROUND: url(/scidirimg/qmark_gray_b.gif) = no-repeat 0px 0px; PADDING-TOP: 2px } .icon_orderdocblue { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/blue/orderdoc_a.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .icon_orderdocblue:hover { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/blue/orderdoc_b.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .icon_exportarticleblue { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/blue/exportarticle_a.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .icon_exportarticleblue:hover { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/blue/exportarticle_b.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .icon_emailarticleblue { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/blue/emailarticle_a.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .icon_emailarticleblue:hover { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/blue/emailarticle_b.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .icon_saveascitationalertblue { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/blue/icon_saveascitationalert_a.gif) = no-repeat 0px 0px; PADDING-TOP: 2px } .icon_saveascitationalertblue:hover { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/blue/icon_saveascitationalert_b.gif) = no-repeat 0px 0px; PADDING-TOP: 2px } .icon_citedbyblue { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/blue/citedby_a.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .icon_citedbyblue:hover { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/blue/citedby_b.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .icon_orderdocgreen { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/green/orderdoc_a.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .icon_orderdocgreen:hover { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/green/orderdoc_b.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .icon_exportarticlegreen { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/green/exportarticle_a.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .icon_exportarticlegreen:hover { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/green/exportarticle_b.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .icon_emailarticlegreen { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/green/emailarticle_a.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .icon_emailarticlegreen:hover { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/green/emailarticle_b.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .icon_saveascitationalertgreen { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/green/icon_saveascitationalert_a.gif) = no-repeat 0px 0px; PADDING-TOP: 2px } .icon_saveascitationalertgreen:hover { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/green/icon_saveascitationalert_b.gif) = no-repeat 0px 0px; PADDING-TOP: 2px } .icon_citedbygreen { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/green/citedby_a.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .icon_citedbygreen:hover { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/green/citedby_b.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .icon_orderdocgrey { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/grey/orderdoc_a.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .icon_orderdocgrey:hover { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/grey/orderdoc_b.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .icon_exportarticlegrey { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/grey/exportarticle_a.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .icon_exportarticlegrey:hover { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/grey/exportarticle_b.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .icon_emailarticlegrey { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/grey/emailarticle_a.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .icon_emailarticlegrey:hover { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/grey/emailarticle_b.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .icon_saveascitationalertgrey { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/grey/icon_saveascitationalert_a.gif) = no-repeat 0px 0px; PADDING-TOP: 2px } .icon_saveascitationalertgrey:hover { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/grey/icon_saveascitationalert_b.gif) = no-repeat 0px 0px; PADDING-TOP: 2px } .icon_citedbygrey { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/grey/citedby_a.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .icon_citedbygrey:hover { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/grey/citedby_b.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .icon_orderdocorange { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/orange/orderdoc_a.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .icon_orderdocorange:hover { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/orange/orderdoc_b.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .icon_exportarticleorange { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/orange/exportarticle_a.gif) no-repeat 0px = 0px; PADDING-TOP: 2px } .icon_exportarticleorange:hover { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/orange/exportarticle_b.gif) no-repeat 0px = 0px; PADDING-TOP: 2px } .icon_emailarticleorange { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/orange/emailarticle_a.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .icon_emailarticleorange:hover { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/orange/emailarticle_b.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .icon_saveascitationalertorange { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/orange/icon_saveascitationalert_a.gif) = no-repeat 0px 0px; PADDING-TOP: 2px } .icon_saveascitationalertorange:hover { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/orange/icon_saveascitationalert_b.gif) = no-repeat 0px 0px; PADDING-TOP: 2px } .icon_citedbyorange { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/orange/citedby_a.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .icon_citedbyorange:hover { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/orange/citedby_b.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .icon_orderdocred { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/red/orderdoc_a.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .icon_orderdocred:hover { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/red/orderdoc_b.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .icon_exportarticlered { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/red/exportarticle_a.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .icon_exportarticlered:hover { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/red/exportarticle_b.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .icon_emailarticlered { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/red/emailarticle_a.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .icon_emailarticlered:hover { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/red/emailarticle_b.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .icon_saveascitationalertred { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/red/icon_saveascitationalert_a.gif) no-repeat = 0px 0px; PADDING-TOP: 2px } .icon_saveascitationalertred:hover { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/red/icon_saveascitationalert_b.gif) no-repeat = 0px 0px; PADDING-TOP: 2px } .icon_citedbyred { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/red/citedby_a.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .icon_citedbyred:hover { PADDING-BOTTOM: 2px; PADDING-LEFT: 20px; PADDING-RIGHT: 7px; = BACKGROUND: url(/scidirimg/red/citedby_b.gif) no-repeat 0px 0px; = PADDING-TOP: 2px } .pageSubHead { MARGIN: 10px 0px; WIDTH: 80%; FONT-SIZE: 0.95em } .divTableRow { WIDTH: 100% } .divTableColF { TEXT-ALIGN: right; PADDING-BOTTOM: 2px; PADDING-LEFT: 10px; WIDTH: 18%; = PADDING-RIGHT: 0px; FLOAT: left; VERTICAL-ALIGN: top; FONT-WEIGHT: bold; = PADDING-TOP: 2px } .divTableColS { TEXT-ALIGN: left; PADDING-BOTTOM: 2px; PADDING-LEFT: 10px; WIDTH: 72%; = PADDING-RIGHT: 0px; FLOAT: left; VERTICAL-ALIGN: top; FONT-WEIGHT: bold; = PADDING-TOP: 2px } .astPad { TEXT-ALIGN: left; PADDING-LEFT: 5px } .divSectDivider { BORDER-BOTTOM: #9b9b9b 1px solid; LINE-HEIGHT: 1px; MARGIN-TOP: 5px; = WIDTH: 102%; MARGIN-BOTTOM: 5px } .divTextRow { PADDING-BOTTOM: 2px; PADDING-LEFT: 10px; PADDING-RIGHT: 0px; = PADDING-TOP: 2px } .divBtnHolder { PADDING-BOTTOM: 2px; LINE-HEIGHT: 16px; MARGIN-TOP: 10px; PADDING-LEFT: = 10px; WIDTH: 100%; PADDING-RIGHT: 0px; MARGIN-BOTTOM: 15px; PADDING-TOP: = 2px } .divContactColF { TEXT-ALIGN: right; PADDING-BOTTOM: 2px; PADDING-LEFT: 10px; WIDTH: 20%; = PADDING-RIGHT: 0px; FLOAT: left; VERTICAL-ALIGN: top; FONT-WEIGHT: bold; = PADDING-TOP: 2px } #alphaLinks { PADDING-RIGHT: 10px; MAX-WIDTH: 215px; FONT-SIZE: 0.9em; FONT-WEIGHT: = normal } #alphaLinks SPAN SPAN { PADDING-BOTTOM: 0px; PADDING-LEFT: 4px; PADDING-RIGHT: 4px; = PADDING-TOP: 0px } #skyscraper DIV { WIDTH: 120px } .wrap { WORD-WRAP: break-word } .iconLinks { ; WIDTH: expression(((document.compatMode && =0A= document.compatMode=3D=3D'CSS1Compat') ? =0A= this.offsetWidth : =0A= this.offsetWidth) =0A= > 420 ? "44%" : "auto"); MAX-WIDTH: 44%; FLOAT: left } .chooseOrgExpand { MARGIN: 0px; BORDER-TOP: #9b9b9b 1px solid } .divRegTableColF { TEXT-ALIGN: right; PADDING-BOTTOM: 5px; PADDING-LEFT: 26px; WIDTH: 16%; = PADDING-RIGHT: 0px; FLOAT: left; FONT-SIZE: 1em; VERTICAL-ALIGN: top; = PADDING-TOP: 8px } .divRegTableColS { TEXT-ALIGN: left; PADDING-BOTTOM: 5px; PADDING-LEFT: 8px; WIDTH: 74%; = PADDING-RIGHT: 0px; FLOAT: left; FONT-SIZE: 1em; VERTICAL-ALIGN: top; = PADDING-TOP: 5px } .divRegTextRow { PADDING-BOTTOM: 5px; PADDING-LEFT: 26px; WIDTH: 100%; PADDING-RIGHT: = 0px; FONT-SIZE: 1em; PADDING-TOP: 5px } .divRegBtnHolder { PADDING-BOTTOM: 5px; LINE-HEIGHT: 16px; MARGIN-TOP: 10px; PADDING-LEFT: = 10px; WIDTH: 100%; PADDING-RIGHT: 0px; MARGIN-BOTTOM: 15px; PADDING-TOP: = 2px } .astRegPad { PADDING-LEFT: 3px; FONT-SIZE: 1.5em; font-color: #ff0000 } .divRegSectDivider { BORDER-BOTTOM: #9b9b9b 1px solid; LINE-HEIGHT: 1px; MARGIN-TOP: 15px; = WIDTH: 102%; MARGIN-BOTTOM: 15px } .elsevierProd { BORDER-BOTTOM: #0156aa 1px dashed; COLOR: #0156aa; FONT-SIZE: 1em } .elsevierProd:hover { BORDER-BOTTOM: medium none } .privacyPolicy { FONT-SIZE: 0.92em; TEXT-DECORATION: none; font-color: #0156aa } .inputRegBox { BORDER-BOTTOM: #b2b2b2 1px solid; BORDER-LEFT: #b2b2b2 1px solid; = BACKGROUND-COLOR: #ffffff; WIDTH: 240px; HEIGHT: 21px; FONT-SIZE: 1em; = VERTICAL-ALIGN: top; BORDER-TOP: #b2b2b2 1px solid; BORDER-RIGHT: = #b2b2b2 1px solid } DIV.errMsgRegText { PADDING-LEFT: 26px; COLOR: #ae0123; FONT-SIZE: 0.92em } .tooltip3link { Z-INDEX: 24; BORDER-BOTTOM: #0156aa 1px dashed; POSITION: relative; = OUTLINE-STYLE: none; OUTLINE-COLOR: invert; OUTLINE-WIDTH: medium; = TEXT-DECORATION: none; font-color: #0156aa; -moz-outline-style: none } A.tooltip3link:hover { Z-INDEX: 25; BORDER-BOTTOM: medium none; POSITION: relative; = OUTLINE-STYLE: none; OUTLINE-COLOR: invert; OUTLINE-WIDTH: medium; = TEXT-DECORATION: none; -moz-outline-style: none } .ElseProdContainer { POSITION: absolute; DISPLAY: none; TOP: 200px; LEFT: 360px } .hoverBox1 { Z-INDEX: 98; POSITION: relative; WIDTH: 31px; BACKGROUND: = url(/scidirimg/explanation_arrow.gif) no-repeat; HEIGHT: 21px; = MARGIN-LEFT: 15px } .ElseProd { BORDER-BOTTOM: #9b9b9b 1px solid; BORDER-LEFT: #9b9b9b 1px solid; = PADDING-BOTTOM: 3px; MARGIN-TOP: -5px; PADDING-LEFT: 3px; PADDING-RIGHT: = 3px; DISPLAY: block; BACKGROUND: #efefef; BORDER-TOP: #9b9b9b 1px solid; = BORDER-RIGHT: #9b9b9b 1px solid; PADDING-TOP: 3px } #dImageGrid { BACKGROUND-COLOR: #ffffff } #dImageGrid UL { POSITION: relative; PADDING-BOTTOM: 0em; LIST-STYLE-TYPE: none; MARGIN: = 0em; PADDING-LEFT: 10px; PADDING-RIGHT: 0em; FLOAT: left; PADDING-TOP: = 10px } #dImageGrid UL LI { BORDER-BOTTOM: #e8e8e8 1px solid; BORDER-LEFT: #e8e8e8 1px solid; = PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; WIDTH: 235px; PADDING-RIGHT: = 0px; MARGIN-BOTTOM: 10px; FLOAT: left; BORDER-TOP: #e8e8e8 1px solid; = CURSOR: default; MARGIN-RIGHT: 10px; BORDER-RIGHT: #e8e8e8 1px solid; = PADDING-TOP: 0px } #dImageGrid UL LI .innerMedia IMG { BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: = 2px; ; MARGIN-TOP: expression(-0.5 * (this.offsetHeight)); PADDING-LEFT: = 2px; ; WIDTH: expression(this.offsetWidth > 175 ? "175px" : "auto"); = PADDING-RIGHT: 2px; MAX-WIDTH: 175px; ; HEIGHT: = expression(this.offsetHeight > 90 ? "90px" : "auto"); MAX-HEIGHT: 90px; = ; MARGIN-LEFT: expression(-0.5 * (this.offsetWidth)); FONT-SIZE: 12px; = BORDER-TOP: medium none; TOP: 50%; CURSOR: pointer; BORDER-RIGHT: medium = none; PADDING-TOP: 2px; LEFT: 50% } #dImageGrid UL LI DIV { PADDING-BOTTOM: 0px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; = PADDING-TOP: 0px } #dImageGrid UL LI .innerHead { PADDING-BOTTOM: 2px; PADDING-LEFT: 1px; PADDING-TOP: 2px } #dImageGrid UL LI .innerMedia { TEXT-ALIGN: center; WIDTH: 213px; DISPLAY: table-cell; HEIGHT: 100px; = VERTICAL-ALIGN: middle; OVERFLOW: hidden } #dImageGrid UL LI .innerCaption { BORDER-BOTTOM: #e8e8e8 1px solid; PADDING-BOTTOM: 2px; PADDING-LEFT: = 2px; PADDING-RIGHT: 2px; FONT-FAMILY: Arial; OVERFLOW: hidden; = PADDING-TOP: 2px } #dImageGrid UL LI .innerBottom { PADDING-BOTTOM: 5px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px; FONT-SIZE: = 12px; PADDING-TOP: 5px } #dImageGrid .innerBottom IMG { PADDING-RIGHT: 1px; BACKGROUND: white 0px 0px; VERTICAL-ALIGN: middle } .dImageGridMlkt UL { POSITION: relative; PADDING-BOTTOM: 0em; LIST-STYLE-TYPE: none; MARGIN: = 0em; PADDING-LEFT: 10px; PADDING-RIGHT: 0em; FLOAT: left; PADDING-TOP: = 10px } .dImageGridMlkt UL LI { BORDER-BOTTOM: #e8e8e8 1px solid; BORDER-LEFT: #e8e8e8 1px solid; = PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; WIDTH: 235px; PADDING-RIGHT: = 0px; MARGIN-BOTTOM: 10px; FLOAT: left; HEIGHT: 200px; BORDER-TOP: = #e8e8e8 1px solid; CURSOR: default; MARGIN-RIGHT: 10px; BORDER-RIGHT: = #e8e8e8 1px solid; PADDING-TOP: 0px } .dImageGridMlkt UL LI .innerMedia IMG { BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: = 2px; ; MARGIN-TOP: expression(-0.5 * (this.offsetHeight)); PADDING-LEFT: = 2px; ; WIDTH: expression(this.offsetWidth > 175 ? "175px" : "auto"); = PADDING-RIGHT: 2px; MAX-WIDTH: 175px; ; HEIGHT: = expression(this.offsetHeight > 90 ? "90px" : "auto"); MAX-HEIGHT: 90px; = ; MARGIN-LEFT: expression(-0.5 * (this.offsetWidth)); BORDER-TOP: medium = none; TOP: 50%; CURSOR: pointer; BORDER-RIGHT: medium none; PADDING-TOP: = 2px; LEFT: 50% } .dImageGridMlkt UL LI DIV { PADDING-BOTTOM: 0px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; = PADDING-TOP: 0px } .dImageGridMlkt UL LI .innerHead { PADDING-TOP: 5px } .dImageGridMlkt UL LI .innerMedia { TEXT-ALIGN: center; PADDING-BOTTOM: 4px; WIDTH: 213px; DISPLAY: = table-cell; HEIGHT: 100px; VERTICAL-ALIGN: middle; OVERFLOW: hidden; = PADDING-TOP: 5px } .dImageGridMlkt UL LI .innerCaption { BORDER-BOTTOM: #d0d0d0 1px solid; PADDING-BOTTOM: 2px; PADDING-LEFT: = 2px; PADDING-RIGHT: 2px; FONT-FAMILY: Arial; HEIGHT: 50px; OVERFLOW: = hidden; PADDING-TOP: 2px } .dImageGridMlkt UL LI .innerBottom { PADDING-LEFT: 6px; PADDING-RIGHT: 6px; FONT-SIZE: 12px; PADDING-TOP: = 5px } .dImageGridMlkt .clearFloat { CLEAR: both } .dImageGrid .clearFloat { CLEAR: both } .dImageGridMlkt .innerBottom IMG { PADDING-RIGHT: 1px; BACKGROUND: white 0px 0px; VERTICAL-ALIGN: middle } #dhtmltooltip { Z-INDEX: 9999; POSITION: absolute; BACKGROUND-COLOR: #ffffff; WIDTH: = 150px; VISIBILITY: hidden; COLOR: #000000 } #dhtmltooltip UL LI { LIST-STYLE-TYPE: none } .captionTop { ; HEIGHT: expression(this.offsetHeight > 135 ? "135px" : "auto"); = MAX-HEIGHT: 135px } .captionBot { COLOR: #9b9b9b } .height1 { HEIGHT: 216px } .height2 { HEIGHT: 220px } .height3 { HEIGHT: 225px } .height4 { HEIGHT: 230px } .height5 { HEIGHT: 244px } .heightCapt1 { HEIGHT: 41px } .heightCapt2 { HEIGHT: 44px } .heightCapt3 { HEIGHT: 48px } .heightCapt4 { HEIGHT: 53px } .heightCapt5 { HEIGHT: 67px } .artRadio { POSITION: relative; MARGIN-TOP: 0px; MARGIN-LEFT: 1px; VERTICAL-ALIGN: = inherit; TOP: 0px } .artImages { POSITION: relative; MARGIN-TOP: 0px; MARGIN-LEFT: 0px; VERTICAL-ALIGN: = inherit; TOP: 0px } #navigationTopSoc { WIDTH: 100%; COLOR: #fff } #navigationBottomSoc { WIDTH: 100%; COLOR: #fff } UL.mainSoc { FLOAT: left; HEIGHT: 29px } UL.miscSoc { FLOAT: right; HEIGHT: 29px } UL.navSoc { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: = 0px; PADDING-TOP: 0px } UL.navSoc LI { PADDING-BOTTOM: 8px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: = 0px; PADDING-RIGHT: 0px; BACKGROUND: url(/scidirimg/divider_nav.gif) = no-repeat left center; FLOAT: left; PADDING-TOP: 7px } UL.navSoc LI A { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 12px; PADDING-RIGHT: = 12px; WHITE-SPACE: nowrap; COLOR: #ffffff !important; FONT-SIZE: 14px; = TEXT-DECORATION: none; PADDING-TOP: 0px } UL.navSoc LI A:hover { COLOR: #ffffff; TEXT-DECORATION: underline; important:=20 } UL.navSoc LI A.selected { FONT-WEIGHT: bold } UL.navSoc LI.last { BACKGROUND: none transparent scroll repeat 0% 0% } .pdfImageLink { BACKGROUND: white } .chooseOrgCheck { MARGIN-TOP: 4px; FLOAT: left } .rememberOrg { MARGIN-LEFT: 10px; VERTICAL-ALIGN: middle } .emailLabel { POSITION: relative; TOP: -2px } .emailRadio { MARGIN-TOP: 2px } .expRadio { MARGIN-LEFT: 5px } .downBtn { LINE-HEIGHT: 16px; MARGIN-BOTTOM: 10px; MARGIN-LEFT: 125px } A.novisit { COLOR: #0156aa; TEXT-DECORATION: none } A.novisit:hover { TEXT-DECORATION: underline } A.novisit:visited { COLOR: #0156aa !important } #activator { COLOR: #0156aa } #suites UL.suites LI SPAN { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 12px; PADDING-RIGHT: = 12px; WHITE-SPACE: nowrap; COLOR: #000000; FONT-WEIGHT: bold; = BORDER-RIGHT: #d8d8d8 1px solid; TEXT-DECORATION: none; PADDING-TOP: 0px } activator { COLOR: #0156aa } .allRadio { POSITION: relative; MARGIN: 0px; VERTICAL-ALIGN: inherit; TOP: 2px } .allCheck { POSITION: relative; MARGIN: 0px; VERTICAL-ALIGN: inherit; TOP: 0px } .top2fix { TOP: 2px } .emailGatherBtn { LINE-HEIGHT: 16px; MARGIN-LEFT: 140px; PADDING-TOP: 10px } #newFeedPub A:visited { COLOR: #0156aa } .chooseOrgfooterHide { Z-INDEX: 100; BORDER-BOTTOM: 0px; POSITION: absolute; FILTER: = alpha(opacity=3D0); BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; = PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; BACKGROUND: #cccccc = 0px 0px; HEIGHT: 146px; COLOR: #cccccc; BORDER-TOP: 0px; BORDER-RIGHT: = 0px; PADDING-TOP: 0px; opacity: 0 } .chooseOrgheaderHide { Z-INDEX: 100; BORDER-BOTTOM: 0px; POSITION: absolute; FILTER: = alpha(opacity=3D0); BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; = PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; BACKGROUND: #cccccc = 0px 0px; HEIGHT: 102px; COLOR: #cccccc; BORDER-TOP: 0px; BORDER-RIGHT: = 0px; PADDING-TOP: 0px; opacity: 0 } ------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: text/css; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.sciencedirect.com/science/page/static/stylesheets/css_art_v01.css .articleText DL DD DL { MARGIN-TOP: 2px; MARGIN-LEFT: 10px } .articleText DL DD DL DT { PADDING-BOTTOM: 0px; LINE-HEIGHT: 14pt; PADDING-LEFT: 0px; = PADDING-RIGHT: 0px; DISPLAY: block; MARGIN-LEFT: 45px; PADDING-TOP: 0px } .articleText DL DD { MARGIN-LEFT: 12px } .featuresRow UL { PADDING-BOTTOM: 3px; LINE-HEIGHT: 0px; LIST-STYLE-TYPE: none; MARGIN: = 0px; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; BACKGROUND: = url(/scidirimg/features_border.gif) 0px bottom; PADDING-TOP: 0px } .featuresRow UL LI { POSITION: relative; PADDING-BOTTOM: 0px; LINE-HEIGHT: 30px; MARGIN: = 0px; PADDING-LEFT: 7px; PADDING-RIGHT: 0px; DISPLAY: inline; = FONT-FAMILY: arial; BACKGROUND: url(/scidirimg/divider_login.gif) = no-repeat right center; HEIGHT: 30px; FONT-SIZE: 11px; PADDING-TOP: 0px } .featuresRow UL LI A { LINE-HEIGHT: 30px; MARGIN: 0px; WHITE-SPACE: nowrap } .featuresRow UL LI A.big { FONT-SIZE: 14px; FONT-WEIGHT: bold } .featuresRow UL LI A.last { BACKGROUND: none transparent scroll repeat 0% 0%; BORDER-RIGHT: medium = none } .clearFloat { HEIGHT: 1px; CLEAR: both; OVERFLOW: hidden } .articleLeftCol { PADDING-BOTTOM: 8px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = MARGIN-RIGHT: 361px; PADDING-TOP: 0px } * HTML .articleLeftCol { HEIGHT: 1% } .articleRightCol { PADDING-BOTTOM: 1px; MARGIN: 0px; PADDING-LEFT: 0px; WIDTH: 346px; = PADDING-RIGHT: 0px; FLOAT: right; PADDING-TOP: 1px } .rightFmDivider { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; WIDTH: 100%; = PADDING-RIGHT: 0px; HEIGHT: 20px !important; PADDING-TOP: 0px } A.articleHeaderInner:hover { TEXT-DECORATION: underline } P { LINE-HEIGHT: 150% } .articleTitle { DISPLAY: inline; FONT-FAMILY: Arial, Helvetica, sans-serif; FONT-SIZE: = 1.75em; FONT-WEIGHT: bold } #articleContent A IMG { MARGIN-BOTTOM: 0px } #articleContent IMG { MARGIN-BOTTOM: 5px } .articleText { LINE-HEIGHT: 150%; DISPLAY: inline } #articleFade { Z-INDEX: 100; BORDER-BOTTOM: 0px; POSITION: absolute; FILTER: = alpha(opacity=3D0); BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; = PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; DISPLAY: none; = BACKGROUND: #cccccc 0px 0px; HEIGHT: 100%; COLOR: #cccccc; BORDER-TOP: = 0px; TOP: 0%; BORDER-RIGHT: 0px; PADDING-TOP: 0px; LEFT: 0%; opacity: 0 } .articleNoFade { Z-INDEX: 999; POSITION: relative } .graphText { LINE-HEIGHT: 150%; DISPLAY: inline } .graphTextOnly { LINE-HEIGHT: 150%; DISPLAY: inline } .refText { LINE-HEIGHT: 150%; DISPLAY: inline } .articleToc { LINE-HEIGHT: 150% } * { BOX-SIZING: border-box; -moz-box-sizing: border-box } .infobubble-container { Z-INDEX: 60; POSITION: relative } .infobubble_top { POSITION: relative; WIDTH: 308px; HEIGHT: 15px } .infobubble_mid { BACKGROUND-IMAGE: url(/scidirimg/ra_top.gif); Z-INDEX: 60; POSITION: = relative; PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; WIDTH: 308px; = PADDING-RIGHT: 0px; BACKGROUND-REPEAT: no-repeat; PADDING-TOP: 3px } .infobubble_border { BORDER-LEFT: #9b9b9b 1px solid; PADDING-BOTTOM: 2px; WIDTH: 308px; = BORDER-RIGHT: #9b9b9b 1px solid; PADDING-TOP: 7px } .infobubble_doclinks { PADDING-BOTTOM: 0px; PADDING-LEFT: 11px; PADDING-RIGHT: 11px; = PADDING-TOP: 0px } .infobubble_bottom { BACKGROUND-IMAGE: url(/scidirimg/ra_bottom.gif); Z-INDEX: 60; POSITION: = relative; WIDTH: 308px; BACKGROUND-REPEAT: no-repeat; = BACKGROUND-POSITION: center top; HEIGHT: 3px; OVERFLOW: hidden } .infobubble { Z-INDEX: 60; POSITION: absolute; BACKGROUND-COLOR: #ffffff; = TEXT-INDENT: 0px; WIDTH: 315px; DISPLAY: none; TOP: 0px; LEFT: -322px } .mlktScroll { BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; = BACKGROUND-COLOR: #ffffff; HEIGHT: 100px; OVERFLOW: auto; BORDER-TOP: = #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid } .mlktLink { BORDER-BOTTOM: #ffffff 1px solid; BORDER-LEFT: #ffffff 1px solid; = PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #ffffff; MARGIN: 3px 5px; = PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: #ffffff 1px solid; = BORDER-RIGHT: #ffffff 1px solid; PADDING-TOP: 2px } .mlktEmpty { PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; BACKGROUND: = url(/scidirimg/rc_box_mid.gif) repeat-y 0px 0px; PADDING-TOP: 5px } .mlktContentBody { BACKGROUND: url(/scidirimg/rc_box_mid.gif) repeat-y 0px 0px } #raViewMore_Art TR TD { PADDING-BOTTOM: 3px; PADDING-LEFT: 10px; PADDING-RIGHT: 0px; = PADDING-TOP: 10px } #raViewMore_Ref TR TD { PADDING-BOTTOM: 3px; PADDING-LEFT: 10px; PADDING-RIGHT: 0px; = PADDING-TOP: 10px } #raViewMore_Cite TR TD { PADDING-BOTTOM: 3px; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; = PADDING-TOP: 1px } .outerPage { PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = PADDING-TOP: 5px } .sci_dirBackgroundColor { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; WIDTH: 100%; = PADDING-RIGHT: 0px; BACKGROUND: none transparent scroll repeat 0% 0%; = BORDER-TOP: #e8e8e8 4px solid; PADDING-TOP: 0px } .blueBackgroundColor { WIDTH: 100%; BORDER-TOP: #e8e8e8 4px solid } .greenBackgroundColor { WIDTH: 100%; BORDER-TOP: #e8e8e8 4px solid } .greyBackgroundColor { WIDTH: 100%; BORDER-TOP: #e8e8e8 4px solid } .redBackgroundColor { WIDTH: 100%; BORDER-TOP: #e8e8e8 4px solid } .orangeBackgroundColor { WIDTH: 100%; BORDER-TOP: #e8e8e8 4px solid } #articleBox { PADDING-BOTTOM: 0px; MARGIN: -2px 0px 0px; PADDING-LEFT: 0px; = PADDING-RIGHT: 0px; BORDER-TOP: #9b9b9b 1px solid; PADDING-TOP: 0px } .articleBox { MARGIN-BOTTOM: -5px; BORDER-TOP: #ffffff 1px solid } #articleBody { POSITION: relative; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: = 0px; PADDING-RIGHT: 0px; CLEAR: left; TOP: -6px !important; PADDING-TOP: = 0px; LEFT: -1px } .articleBoxBorderHide { POSITION: relative; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: = 0px; PADDING-RIGHT: 0px; DISPLAY: block; TOP: 36px; PADDING-TOP: 0px } .articleHeaderInner { POSITION: relative; MARGIN: 0px 5px 0px 3px; LEFT: 1px } .FATTABInner { BACKGROUND-COLOR: #f6f6f6; PADDING-LEFT: 0px; WIDTH: 350px; = PADDING-RIGHT: 0px; DISPLAY: block; FLOAT: right; HEIGHT: 100%; = FONT-SIZE: 0.9em } .refersTable { LINE-HEIGHT: 16px; BACKGROUND-COLOR: #ffffff; FONT-FAMILY: arial, = helvetica, sans-serif; FONT-SIZE: 1em } .refersLeftColumn { TEXT-ALIGN: right; PADDING-LEFT: 5px; WIDTH: 55px; VERTICAL-ALIGN: top; = FONT-WEIGHT: bold } .refersDivider { PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #ffffff; MARGIN: 0px; = PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; HEIGHT: 10px; = PADDING-TOP: 0px } .refPreview { Z-INDEX: 1000; PADDING-BOTTOM: 8px; BACKGROUND-COLOR: #eeeeee; = PADDING-LEFT: 8px; WIDTH: 300px; PADDING-RIGHT: 8px; DISPLAY: none; = PADDING-TOP: 8px } .greyTable { PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #ffffff; PADDING-LEFT: 0px; = PADDING-RIGHT: 0px; PADDING-TOP: 0px } .greyTab { BORDER-BOTTOM: #c2c2c2 0px; BORDER-LEFT: #c2c2c2 1px solid; = PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #ffffff; PADDING-LEFT: 0px; = PADDING-RIGHT: 0px; FONT-SIZE: 0.9em; BORDER-TOP: #c2c2c2 0px solid; = BORDER-RIGHT: #c2c2c2 1px solid; PADDING-TOP: 0px } .greyHeader { BACKGROUND-IMAGE: url(/scidirimg/rc_header_mid.gif); POSITION: = relative; PADDING-BOTTOM: 0px; PADDING-LEFT: 8px; WIDTH: 332px; = PADDING-RIGHT: 8px; BACKGROUND-REPEAT: repeat-x; FONT-FAMILY: Arial; = FLOAT: left; HEIGHT: 32px; COLOR: #000000; FONT-SIZE: 1.35em; = FONT-WEIGHT: bold; PADDING-TOP: 8px } .articleTabs { Z-INDEX: 50; POSITION: relative; TEXT-ALIGN: left; MARGIN: 0px; = DISPLAY: inline; WHITE-SPACE: nowrap; FLOAT: left; HEIGHT: 40px; = PADDING-TOP: 6px } .articleTabsNoFade { Z-INDEX: 1000; POSITION: relative } .imgToogleNoFade { Z-INDEX: 1000; POSITION: relative } .tabSelectedOuter { POSITION: relative; DISPLAY: inline; WHITE-SPACE: nowrap; HEIGHT: 31px } .tabUnselectedOuter { POSITION: relative; DISPLAY: inline; WHITE-SPACE: nowrap; HEIGHT: 31px } .tabSelectedInner { POSITION: relative; PADDING-BOTTOM: 0px; PADDING-LEFT: 6px; = PADDING-RIGHT: 6px; FONT-FAMILY: arial; FLOAT: left; HEIGHT: 31px; = COLOR: #000000; FONT-SIZE: 16px; FONT-WEIGHT: bold; PADDING-TOP: 8px } .tabUnselectedInner { POSITION: relative; PADDING-BOTTOM: 0px; PADDING-LEFT: 6px; = PADDING-RIGHT: 6px; FONT-FAMILY: arial,verdana,helvetica,sans-serif; = FLOAT: left; HEIGHT: 31px; COLOR: #000000; FONT-SIZE: 1em; PADDING-TOP: = 9px } .tabUnselectedOuter:hover { CURSOR: pointer } .tabUnselectedInner:hover { CURSOR: pointer } .disabledTabLink { COLOR: #bcbcbc } .bottomArticle { BACKGROUND-COLOR: #ffffff } .footerArticle { BACKGROUND-COLOR: #ffffff } .ppvMSG { Z-INDEX: 1000; PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; PADDING-RIGHT: = 5px; DISPLAY: block; FLOAT: right; PADDING-TOP: 5px } .ppvMSG IMG { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 5px; = PADDING-LEFT: 5px; PADDING-RIGHT: 5px; BORDER-TOP: 0px; BORDER-RIGHT: = 0px; PADDING-TOP: 5px } .authorsNoEnt P { MARGIN: 2px } .authorVitaeLink { FONT-STYLE: italic; FONT-SIZE: 0.84em } .figTblUpiOuter { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-LEFT: 0px; PADDING-RIGHT: 0px; MARGIN-LEFT: 15px; BORDER-TOP: = 0px; BORDER-RIGHT: 0px; PADDING-TOP: 0px } .tblScroll { PADDING-BOTTOM: 17px; OVERFLOW-Y: visible; PADDING-LEFT: 0px; WIDTH: = 100%; PADDING-RIGHT: 0px; OVERFLOW: auto; PADDING-TOP: 0px } .tblScrollBox { =09 } .tblScrollLink { DISPLAY: inline } .eqImgScroll { TEXT-ALIGN: left; PADDING-BOTTOM: 17px; OVERFLOW-Y: visible; = PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; VERTICAL-ALIGN: = middle; OVERFLOW: auto; PADDING-TOP: 0px } .eqImgScroll IMG { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: = 0px } .eqImgScroll A { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: = 0px } .eqImgScroll A:hover { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: = 0px } .inlMMLBox { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; = PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; BORDER-TOP: 0px; = BORDER-RIGHT: 0px; PADDING-TOP: 0px } .fdBox { BORDER-BOTTOM: 0px; POSITION: relative; BORDER-LEFT: 0px; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; WIDTH: 100%; = PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: 0px; PADDING-TOP: 0px } .fdNoLabel { TEXT-ALIGN: center; VERTICAL-ALIGN: middle } .fdWithLabel { TEXT-ALIGN: center; VERTICAL-ALIGN: middle; MARGIN-RIGHT: 10% } .fdLabel { POSITION: absolute; TEXT-ALIGN: right; WIDTH: 10%; TOP: 45%; RIGHT: 0px } .fdLabelTxt { VERTICAL-ALIGN: super } .sizeImg { MAX-WIDTH: 100%; HEIGHT: auto } .sizeImgBox { =09 } .sizeImgLink { DISPLAY: inline } .viewWithinBtn:hover { BORDER-BOTTOM: #666666 1px solid; BORDER-LEFT: #666666 1px solid; = PADDING-BOTTOM: 1px; BACKGROUND-COLOR: #eeeeee; MARGIN: 0px; = PADDING-LEFT: 10px; WIDTH: auto; PADDING-RIGHT: 10px; DISPLAY: inline; = HEIGHT: 19px; COLOR: #666666; FONT-SIZE: 11px; BORDER-TOP: #666666 1px = solid; FONT-WEIGHT: bold; BORDER-RIGHT: #666666 1px solid; = TEXT-DECORATION: none; PADDING-TOP: 1px } .viewWithinBtn { BORDER-BOTTOM: #666666 1px solid; BORDER-LEFT: #666666 1px solid; = PADDING-BOTTOM: 1px; BACKGROUND-COLOR: #eeeeee; MARGIN: 0px; = PADDING-LEFT: 10px; WIDTH: auto; PADDING-RIGHT: 10px; DISPLAY: inline; = HEIGHT: 19px; COLOR: #666666; FONT-SIZE: 11px; BORDER-TOP: #666666 1px = solid; FONT-WEIGHT: bold; BORDER-RIGHT: #666666 1px solid; = TEXT-DECORATION: none; PADDING-TOP: 1px } .graphTextOnly A:hover { TEXT-DECORATION: none } .outwardBox { TEXT-ALIGN: left; PADDING-BOTTOM: 7px; MARGIN: 0px; PADDING-LEFT: 10px; = PADDING-RIGHT: 10px; BACKGROUND: url(/scidirimg/rc_box_mid.gif) repeat-y = 0px 0px; FONT-SIZE: 0.9em; PADDING-TOP: 7px } .outwardBox TD { PADDING-BOTTOM: 3px; PADDING-LEFT: 3px; PADDING-RIGHT: 3px; = PADDING-TOP: 3px } .outward A { COLOR: #0156aa } #BookMarkBoxContent A { COLOR: #0156aa; CURSOR: pointer } .collabBox { TEXT-ALIGN: center; BORDER-LEFT: #c2c2c2 1px solid; BACKGROUND-COLOR: = #ffffff; WIDTH: 340px; BORDER-RIGHT: #c2c2c2 1px solid } .NextBiovRow { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; = PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: = 0px; PADDING-TOP: 0px } .MMCvRow { Z-INDEX: 3; POSITION: relative; MARGIN: 0px; PADDING-LEFT: 5px; WIDTH: = 343px; BACKGROUND: url(/scidirimg/rc_box_mid.gif) repeat-y 0px 0px; = FLOAT: right } .MMCvOuter { Z-INDEX: 3; BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; = OVERFLOW-X: hidden; OVERFLOW-Y: hidden; BACKGROUND-COLOR: #ffffff; = MARGIN: 0px; PADDING-LEFT: 0px; WIDTH: 332px; PADDING-RIGHT: 0px; = DISPLAY: block; FONT-SIZE: 0.9em; OVERFLOW: hidden; BORDER-TOP: 0px; = BORDER-RIGHT: 0px; PADDING-TOP: 5px } .MMCvTitleBox { BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 2px 2px 12px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = BORDER-TOP: 0px; FONT-WEIGHT: bold; BORDER-RIGHT: 0px; PADDING-TOP: 0px } .MMCvRefHovs { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; = PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: = 0px; PADDING-TOP: 0px } .MMCvTabs { BORDER-BOTTOM: #cccccc 1px solid; PADDING-BOTTOM: 2px; MARGIN: 0px; = PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 2px } .MMCvNoTabs { MARGIN-TOP: -1px; BORDER-TOP: #cccccc 1px solid } .MMCvTab { BORDER-BOTTOM: 0px; TEXT-ALIGN: center; BORDER-LEFT: #cccccc 1px solid; = PADDING-BOTTOM: 2px; BACKGROUND-COLOR: #ffffff; MARGIN: 0px 5px 0px 0px; = PADDING-LEFT: 9px; PADDING-RIGHT: 9px; COLOR: #0156aa; BORDER-TOP: = #cccccc 1px solid; CURSOR: pointer; FONT-WEIGHT: bold; BORDER-RIGHT: = #cccccc 1px solid; PADDING-TOP: 2px } .MMCvTab:hover { TEXT-DECORATION: underline } .MMCvTabActive { BORDER-BOTTOM: 0px; TEXT-ALIGN: center; BORDER-LEFT: #cccccc 1px solid; = PADDING-BOTTOM: 3px; BACKGROUND-COLOR: #f2f2f2; MARGIN: 0px 5px 0px 0px; = PADDING-LEFT: 9px; PADDING-RIGHT: 9px; BORDER-TOP: #cccccc 1px solid; = FONT-WEIGHT: bold; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 2px } .MMCvTabActive A:hover { TEXT-DECORATION: none } .MMCvSelector { BORDER-BOTTOM: 0px; TEXT-ALIGN: right; BORDER-LEFT: #cccccc 1px solid; = PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #f2f2f2; MARGIN: 0px; = PADDING-LEFT: 0px; WIDTH: 332px; PADDING-RIGHT: 5px; BORDER-TOP: 0px; = BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 0px } .MMCvSelectDiv { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 3px; MARGIN: 0px; = PADDING-LEFT: 3px; PADDING-RIGHT: 3px; BORDER-TOP: 0px; BORDER-RIGHT: = 0px; PADDING-TOP: 3px } .MMCvSelectorItem { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; = PADDING-LEFT: 0px; PADDING-RIGHT: 0px; COLOR: #0156aa; BORDER-TOP: 0px; = CURSOR: pointer; BORDER-RIGHT: 0px; PADDING-TOP: 0px } .MMCvSelectorCollapseItem { CURSOR: pointer } .MMCvSelRover { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; = PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; FONT-SIZE: 145%; = BORDER-TOP: 0px; BORDER-RIGHT: 0px; PADDING-TOP: 0px } .MMCvSelRover IMG { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; = PADDING-LEFT: 0px; PADDING-RIGHT: 0px; VERTICAL-ALIGN: -4px; BORDER-TOP: = 0px; BORDER-RIGHT: 0px; PADDING-TOP: 0px } .MMCvViewBacking { BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; = PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #f2f2f2; MARGIN: 0px; = PADDING-LEFT: 8px; WIDTH: 332px; PADDING-RIGHT: 8px; BORDER-TOP: medium = none; BORDER-RIGHT: #cccccc 1px solid } .MMCvViewer { BORDER-BOTTOM: medium none; POSITION: absolute; PADDING-BOTTOM: 0px; = OVERFLOW-X: hidden; OVERFLOW-Y: hidden; BACKGROUND-COLOR: #ffffff; = MARGIN: 0px; PADDING-LEFT: 0px; WIDTH: 320px; PADDING-RIGHT: 0px; = OVERFLOW: hidden; BORDER-TOP: #cccccc 1px solid; PADDING-TOP: 0px } .MMCvVideoComponent { POSITION: absolute; PADDING-BOTTOM: 0px; MARGIN: 0px 195px 0px 0px; = PADDING-LEFT: 0px; WIDTH: 320px; PADDING-RIGHT: 0px; DISPLAY: block; = TOP: 0px; PADDING-TOP: 0px; LEFT: 345px } .MMCvAudioComponent { POSITION: absolute; PADDING-BOTTOM: 0px; MARGIN: 0px 195px 0px 0px; = PADDING-LEFT: 0px; WIDTH: 320px; PADDING-RIGHT: 0px; DISPLAY: block; = TOP: 0px; PADDING-TOP: 0px; LEFT: 345px } .MMCvOtherComponent { POSITION: absolute; PADDING-BOTTOM: 0px; MARGIN: 0px 195px 0px 0px; = PADDING-LEFT: 0px; WIDTH: 320px; PADDING-RIGHT: 0px; DISPLAY: block; = TOP: 0px; PADDING-TOP: 0px; LEFT: 345px } .MMCvCaptionArea { OVERFLOW-X: hidden; OVERFLOW-Y: hidden; MARGIN: 0px; WIDTH: 245px; = DISPLAY: block; FLOAT: right; OVERFLOW: hidden } .MMCvAudioOtherWrapper { BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; = OVERFLOW-X: hidden; OVERFLOW-Y: hidden; MARGIN: 0px; WIDTH: 320px; = DISPLAY: block; OVERFLOW: hidden; BORDER-TOP: medium none; BORDER-RIGHT: = #cccccc 1px solid } .MMCvCaptionWrapper { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 4px; OVERFLOW-X: = hidden; OVERFLOW-Y: hidden; MARGIN: 0px; PADDING-LEFT: 4px; WIDTH: = 245px; PADDING-RIGHT: 4px; DISPLAY: block; OVERFLOW: hidden; BORDER-TOP: = 0px; BORDER-RIGHT: 0px; PADDING-TOP: 0px } .MMCvCaption { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 6px; MARGIN: 0px; = PADDING-LEFT: 6px; WIDTH: 245px; PADDING-RIGHT: 6px; DISPLAY: block; = BORDER-TOP: 0px; BORDER-RIGHT: 0px; PADDING-TOP: 6px } .MMCvVideoCaptionArea { PADDING-BOTTOM: 0px; OVERFLOW-X: hidden; OVERFLOW-Y: hidden; MARGIN: = 0px; PADDING-LEFT: 0px; WIDTH: 320px; PADDING-RIGHT: 0px; DISPLAY: = block; OVERFLOW: hidden; PADDING-TOP: 0px } .MMCvVideoCaptionWrapper { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 4px; OVERFLOW-X: = hidden; OVERFLOW-Y: hidden; MARGIN: 0px; PADDING-LEFT: 4px; WIDTH: = 320px; PADDING-RIGHT: 4px; DISPLAY: block; OVERFLOW: hidden; BORDER-TOP: = 0px; BORDER-RIGHT: 0px; PADDING-TOP: 0px } .MMCvVideoCaption { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 6px; MARGIN: 0px; = PADDING-LEFT: 6px; WIDTH: 320px; PADDING-RIGHT: 6px; DISPLAY: block; = BORDER-TOP: 0px; BORDER-RIGHT: 0px; PADDING-TOP: 6px } .MMCvVideoPlayerArea { PADDING-BOTTOM: 0px; OVERFLOW-X: hidden; OVERFLOW-Y: hidden; MARGIN: = 0px; PADDING-LEFT: 0px; WIDTH: 320px; PADDING-RIGHT: 0px; DISPLAY: = block; HEIGHT: 265px; OVERFLOW: hidden; PADDING-TOP: 0px } .MMCvVideoPlayerWrapper { BORDER-BOTTOM: 0px; POSITION: relative; BORDER-LEFT: 0px; = PADDING-BOTTOM: 0px; OVERFLOW-X: hidden; OVERFLOW-Y: hidden; MARGIN: = 0px; PADDING-LEFT: 0px; WIDTH: 320px; PADDING-RIGHT: 0px; DISPLAY: = block; HEIGHT: 265px; OVERFLOW: hidden; BORDER-TOP: 0px; BORDER-RIGHT: = 0px; PADDING-TOP: 0px } .MMCvVideoPlayer { BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; = MARGIN: 0px; WIDTH: 320px; DISPLAY: block; HEIGHT: 265px; = VERTICAL-ALIGN: middle; BORDER-RIGHT: #cccccc 1px solid } .MMCvAudioPlayerWrapper { PADDING-BOTTOM: 0px; OVERFLOW-X: hidden; OVERFLOW-Y: hidden; MARGIN: = 0px; PADDING-LEFT: 0px; WIDTH: 320px; PADDING-RIGHT: 0px; DISPLAY: = block; HEIGHT: 28px; OVERFLOW: hidden; PADDING-TOP: 0px } .MMCvAudioPlayer { BORDER-BOTTOM: 0px; TEXT-ALIGN: center; BORDER-LEFT: 0px; MARGIN: 0px; = WIDTH: 320px; DISPLAY: block; HEIGHT: 28px; BORDER-TOP: 0px; = BORDER-RIGHT: 0px } .MMCvErrorArea { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; OVERFLOW-X: = hidden; OVERFLOW-Y: hidden; MARGIN: 0px; PADDING-LEFT: 0px; WIDTH: = 300px; PADDING-RIGHT: 0px; DISPLAY: block; HEIGHT: 260px; = VERTICAL-ALIGN: middle; OVERFLOW: hidden; BORDER-TOP: 0px; BORDER-RIGHT: = 0px; PADDING-TOP: 0px } .MMCvError { POSITION: absolute; TEXT-ALIGN: center; WIDTH: 320px; FONT-SIZE: 1.1em; = TOP: 50px } .MMCvAudioError { BORDER-BOTTOM: #cccccc 1px dotted; TEXT-ALIGN: center; PADDING-BOTTOM: = 10px; PADDING-LEFT: 10px; WIDTH: 320px; PADDING-RIGHT: 10px; FONT-SIZE: = 1.1em; PADDING-TOP: 10px } .MMCvAudioErrorNoCaption { BORDER-BOTTOM: #cccccc 1px solid; TEXT-ALIGN: center; BORDER-LEFT: = #cccccc 1px solid; PADDING-BOTTOM: 8px; PADDING-LEFT: 8px; WIDTH: 320px; = PADDING-RIGHT: 8px; FONT-SIZE: 1.1em; BORDER-TOP: medium none; = BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 8px } .MMCvMoreSpacer { BORDER-BOTTOM: #000000 1px dashed; BORDER-LEFT: 0px; PADDING-BOTTOM: = 2px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: = 0px; BORDER-RIGHT: 0px; PADDING-TOP: 0px } .MMCvMoreWrapper { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; = PADDING-LEFT: 9px; WIDTH: 195px; PADDING-RIGHT: 9px; DISPLAY: none; = COLOR: #0156aa; BORDER-TOP: 0px; CURSOR: pointer; BORDER-RIGHT: 0px; = PADDING-TOP: 0px } .MMCvLessWrapper { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; = PADDING-LEFT: 9px; WIDTH: 195px; PADDING-RIGHT: 9px; DISPLAY: none; = COLOR: #0156aa; BORDER-TOP: 0px; CURSOR: pointer; BORDER-RIGHT: 0px; = PADDING-TOP: 0px } .MMCvImageArea { PADDING-BOTTOM: 8px; MARGIN: 0px; PADDING-LEFT: 8px; WIDTH: 58px; = PADDING-RIGHT: 8px; PADDING-TOP: 8px } .MMCvDownload { MARGIN: 0px; DISPLAY: block; FLOAT: right } .MMCvViewWithin { MARGIN: 0px; DISPLAY: block } .MMCvViewDownloadWrapper { PADDING-BOTTOM: 5px; BACKGROUND-COLOR: #f2f2f2; PADDING-LEFT: 0px; = WIDTH: 320px; PADDING-RIGHT: 0px; DISPLAY: block; PADDING-TOP: 5px } .MMCvImage { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; = PADDING-LEFT: 0px; WIDTH: 50px; PADDING-RIGHT: 0px; HEIGHT: 50px; = BORDER-TOP: 0px; BORDER-RIGHT: 0px; PADDING-TOP: 0px } #shadow-container { POSITION: relative; PADDING-BOTTOM: 10px; PADDING-RIGHT: 10px; = MARGIN-BOTTOM: 3px; FLOAT: left; TOP: 3px; MARGIN-RIGHT: 3px; = PADDING-TOP: 10px; LEFT: 3px } .shadow1 { POSITION: relative; WIDTH: 220px; TOP: -1px; LEFT: -1px } .shadow2 { POSITION: relative; WIDTH: 220px; TOP: -1px; LEFT: -1px } .shadow3 { POSITION: relative; WIDTH: 220px; TOP: -1px; LEFT: -1px } .container { POSITION: relative; WIDTH: 220px; TOP: -1px; LEFT: -1px } .shadow1 { WIDTH: 220px; BACKGROUND: #f1f1f1 } .shadow2 { BACKGROUND: #dbdadb } .shadow3 { BACKGROUND: #b8b6b8 } .container { PADDING-BOTTOM: 8px; BACKGROUND-COLOR: #f2f2f2; PADDING-LEFT: 8px; = WIDTH: 220px; PADDING-RIGHT: 8px; FONT-FAMILY: Geneva, Arial, Helvetica, = sans-serif; COLOR: #555555; FONT-SIZE: 1.1em; PADDING-TOP: 8px } .MMCvVideoImageArea { BORDER-BOTTOM: #cccccc 1px solid; TEXT-ALIGN: center; BORDER-LEFT: = #cccccc 1px solid; WIDTH: 320px; DISPLAY: table; HEIGHT: 180px; = BORDER-TOP: medium none; BORDER-RIGHT: #cccccc 1px solid } .MMCvInstallFP { PADDING-BOTTOM: 4px; PADDING-LEFT: 4px; PADDING-RIGHT: 4px; DISPLAY: = block; PADDING-TOP: 4px } .MMCvVideoImageWrapper { DISPLAY: table-cell; VERTICAL-ALIGN: middle } .MMCvInstallFP { PADDING-BOTTOM: 4px; PADDING-LEFT: 4px; PADDING-RIGHT: 4px; DISPLAY: = block; PADDING-TOP: 4px } > .MMCvVideoImageArea { DISPLAY: block } .MMCvVideoImageWrapper { POSITION: relative; ZOOM: 1; HEIGHT: auto; TOP: 50% } .MMCvVideoImage { POSITION: relative; ZOOM: 1; HEIGHT: auto; TOP: -50% } UNKNOWN { BORDER-BOTTOM: #cccccc 1px dashed; PADDING-BOTTOM: 0px; MARGIN: 1px; = FONT-SIZE: 1.2em; FONT-WEIGHT: bold } UL.artAlphaNavBar { DISPLAY: block } UL.artAlphaNavBar LI { BORDER-LEFT: #999999 1px solid; LIST-STYLE-TYPE: none; PADDING-LEFT: = 3px; PADDING-RIGHT: 3px; DISPLAY: inline } DL DL DL { PADDING-BOTTOM: 0px; LINE-HEIGHT: 100%; MARGIN: 0px; PADDING-LEFT: 0px; = PADDING-RIGHT: 0px; PADDING-TOP: 0px } DL { LINE-HEIGHT: 100%; MARGIN-TOP: 10px } DT { PADDING-BOTTOM: 0px; LINE-HEIGHT: 14pt; PADDING-LEFT: 0px; = PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-TOP: 0px } DD DL DT { PADDING-BOTTOM: 0px; LINE-HEIGHT: 14pt; PADDING-LEFT: 0px; = PADDING-RIGHT: 0px; DISPLAY: block; PADDING-TOP: 0px } DD { PADDING-BOTTOM: 0px; LINE-HEIGHT: 150%; PADDING-LEFT: 0px; = PADDING-RIGHT: 0px; PADDING-TOP: 0px } DL P { LINE-HEIGHT: 100%; MARGIN-LEFT: 0px } DT P { LINE-HEIGHT: 100%; MARGIN-LEFT: 0px } DD P { LINE-HEIGHT: 100%; MARGIN-LEFT: 0px } #pdfArea OBJECT { BORDER-BOTTOM: #666 1px solid; BORDER-LEFT: #666 1px solid; DISPLAY: = block; BORDER-TOP: #666 1px solid; BORDER-RIGHT: #666 1px solid } #pdfPage { WIDTH: 100%; DISPLAY: block; HEIGHT: 820px; OVERFLOW: auto } .loadWindow { BORDER-BOTTOM: grey 1px solid; BORDER-LEFT: grey 1px solid; = PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; WIDTH: 600px; PADDING-RIGHT: = 5px; HEIGHT: 820px; BORDER-TOP: grey 1px solid; BORDER-RIGHT: grey 1px = solid; PADDING-TOP: 5px } .reRunStyle { BORDER-BOTTOM: #6c9d31 1px solid; POSITION: relative; BORDER-LEFT: = #6c9d31 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #e5f3cc; = PADDING-LEFT: 4px; PADDING-RIGHT: 4px; MARGIN-BOTTOM: 2px; FLOAT: left; = BORDER-TOP: #6c9d31 1px solid; BORDER-RIGHT: #6c9d31 1px solid; = PADDING-TOP: 4px } .artiHead { FONT-SIZE: 0.9em } .referenceText { DISPLAY: block; MARGIN-LEFT: 15px } .articleText_indent { PADDING-LEFT: 15px } .articleText_indent H3 { MARGIN: 15px 0px 0px -15px } .articleText_indent H4 { MARGIN: 15px 0px 0px -15px } .articleText_indent H5 { MARGIN: 15px 0px 0px -15px } .articleText_indent P { MARGIN: 0px } .articleText_indent DL { MARGIN: 0px } .articleText_indent DT { MARGIN: 0px } .imgToggle { PADDING-BOTTOM: 0.85em; PADDING-LEFT: 0.1em; PADDING-RIGHT: 0.1em; = FLOAT: right; PADDING-TOP: 0.85em } .articleInnerPage { PADDING-BOTTOM: 15px; PADDING-LEFT: 10px; WIDTH: 100%; PADDING-RIGHT: = 15px; MARGIN-RIGHT: -100em; PADDING-TOP: 15px } HTML > BODY .articleInnerPage { PADDING-RIGHT: 10px } #figevent { DISPLAY: none } #figSelect { DISPLAY: none } #refevent { DISPLAY: none } #absTabOn { DISPLAY: inline } #fullTabOn { DISPLAY: inline } #graphTabOn { DISPLAY: inline } #refTabOn { DISPLAY: inline } #absTabOff { DISPLAY: inline } #fullTabOff { DISPLAY: inline } #graphTabOff { DISPLAY: inline } #refTabOff { DISPLAY: inline } #TabOff { DISPLAY: inline } HTML > BODY #absTabOn { DISPLAY: inline-block } HTML > BODY #fullTabOn { DISPLAY: inline-block } HTML > BODY #graphTabOn { DISPLAY: inline-block } HTML > BODY #refTabOn { DISPLAY: inline-block } HTML > BODY #absTabOff { DISPLAY: inline-block } HTML > BODY #fullTabOff { DISPLAY: inline-block } HTML > BODY #graphTabOff { DISPLAY: inline-block } HTML > BODY #refTabOff { DISPLAY: inline-block } HTML > BODY #TabOff { DISPLAY: inline-block } .On { VISIBILITY: visible; OVERFLOW: auto; TOP: 0px; LEFT: 0px } .Off { POSITION: absolute; VISIBILITY: hidden !important; OVERFLOW: hidden; = TOP: -2000px; LEFT: -2000px } .multiMediaBottom { Z-INDEX: 2; POSITION: relative; TOP: -1px } #embedAPCModule { PADDING-BOTTOM: 15px; PADDING-TOP: 15px } #embedAPBModule { PADDING-BOTTOM: 20px; WIDTH: 340px } #embedAPAModule { PADDING-BOTTOM: 20px; WIDTH: 340px } .articleTabs:after { MARGIN: 0px; DISPLAY: block; HEIGHT: 0px; VISIBILITY: hidden; CLEAR: = both } .articleTabsNoFade:after { MARGIN: 0px; DISPLAY: block; HEIGHT: 0px; VISIBILITY: hidden; CLEAR: = both } .articlePage:after { MARGIN: 0px; DISPLAY: block; HEIGHT: 0px; VISIBILITY: hidden; CLEAR: = both } .articleLeftCol:after { MARGIN: 0px; DISPLAY: block; HEIGHT: 0px; VISIBILITY: hidden; CLEAR: = both } HTML > BODY #articleBody { TOP: -3px !important } x:unknown { TOP: -3px !important } HTML > BODY #articleBody { TOP: -6px !important } x:unknown { TOP: -6px !important } x:unknown { TOP: -6px !important } HTML > BODY .articleTabs { =09 } x:unknown { =09 } HTML > BODY .articleTabs { HEIGHT: 40px } x:unknown { HEIGHT: 40px } x:unknown { HEIGHT: 40px } HTML > BODY #articleBox { BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; MARGIN-TOP: 0px; = BACKGROUND: none transparent scroll repeat 0% 0%; BORDER-TOP: medium = none; BORDER-RIGHT: medium none } HTML > BODY .articleBox { BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; MARGIN-TOP: 0px; = BACKGROUND: none transparent scroll repeat 0% 0%; BORDER-TOP: medium = none; BORDER-RIGHT: medium none } HTML > BODY .articleBoxBorderHide { BORDER-BOTTOM: #9b9b9b 1px solid; WIDTH: 99%; MARGIN-LEFT: 2px } .rdivImg { POSITION: relative; PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; = PADDING-RIGHT: 0px; BACKGROUND: url(/scidirimg/container_right.png) = repeat-y 100% 100%; RIGHT: -1px; PADDING-TOP: 0px } .ldivImg { POSITION: relative; PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; = PADDING-RIGHT: 0px; BACKGROUND: url(/scidirimg/container_left.png) = repeat-y 0px 0px; PADDING-TOP: 0px; LEFT: -1px } .tdivImg { WIDTH: 100%; BACKGROUND: url(/scidirimg/container_top.png) repeat-x } .bdivImg { WIDTH: 100%; BACKGROUND: url(/scidirimg/container_bottom.png) repeat-x } #toppagination { TEXT-ALIGN: left; PADDING-BOTTOM: 8px; PADDING-LEFT: 14px; = PADDING-RIGHT: 26px; VERTICAL-ALIGN: bottom; PADDING-TOP: 18px } #fontsize { TEXT-ALIGN: right; PADDING-BOTTOM: 8px; PADDING-LEFT: 14px; = PADDING-RIGHT: 0px; VERTICAL-ALIGN: top; PADDING-TOP: 0px } #bottompagination { TEXT-ALIGN: left; PADDING-BOTTOM: 18px; PADDING-LEFT: 14px; = PADDING-RIGHT: 26px; VERTICAL-ALIGN: top; PADDING-TOP: 8px } .seperatorline { BACKGROUND-COLOR: #e8e8e8; MARGIN: 0px 26px 0px 14px; HEIGHT: 4px; = COLOR: #e8e8e8 } #articlePage { PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = PADDING-TOP: 10px } EMBED.hidden { POSITION: absolute; WIDTH: 1px; HEIGHT: 1px; TOP: -1000px; LEFT: = -1000px } OBJECT.hidden { POSITION: absolute; WIDTH: 1px; HEIGHT: 1px; TOP: -1000px; LEFT: = -1000px } .seperatorlineReflect { MARGIN: 8px 0px 4px; WIDTH: 213px; COLOR: #dddddd } LI.highLight_attach { BACKGROUND-COLOR: #ffffff; DISPLAY: block; FONT-FAMILY: arial; COLOR: = #0156aa; FONT-SIZE: 1.17em; TEXT-DECORATION: none } A.highLight_attach { LINE-HEIGHT: 15px; DISPLAY: block; FONT-FAMILY: arial; HEIGHT: 20px; = COLOR: #0156aa; FONT-SIZE: 1.17em; TEXT-DECORATION: none } A.highLight_attach:visited { LINE-HEIGHT: 15px; DISPLAY: block; FONT-FAMILY: arial; HEIGHT: 20px; = COLOR: #0156aa; FONT-SIZE: 1.17em; TEXT-DECORATION: none } A.highLight_attach { BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; BORDER-TOP: = medium none; BORDER-RIGHT: medium none } A.highLight_attach:visited { BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; BORDER-TOP: = medium none; BORDER-RIGHT: medium none } #nohiglink { =09 } #reflink { LINE-HEIGHT: 40px } #nextbiolink { FONT-WEIGHT: bold } A.subText { FONT-FAMILY: arial; COLOR: #0156aa; FONT-SIZE: 1em; TEXT-DECORATION: = none } A.subText:visited { FONT-FAMILY: arial; COLOR: #0156aa; FONT-SIZE: 1em; TEXT-DECORATION: = none } #subpadding1 { LINE-HEIGHT: 25px; PADDING-LEFT: 26px } #subpadding2 { LINE-HEIGHT: 17px; PADDING-LEFT: 26px } LI#highLight_attach_menu_parent { POSITION: relative; WHITE-SPACE: nowrap; BACKGROUND: none transparent = scroll repeat 0% 0%; HEIGHT: 29px; PADDING-TOP: 8px } UL#highLight_attach_menu_child { BORDER-BOTTOM: #9b9b9b 1px solid; POSITION: absolute; BORDER-LEFT: = #9b9b9b 1px solid; PADDING-BOTTOM: 0px; LINE-HEIGHT: 15px; MARGIN-TOP: = -2px; PADDING-LEFT: 5px; WIDTH: 223px; PADDING-RIGHT: 0px; BACKGROUND: = white; HEIGHT: 126px; VISIBILITY: hidden; TOP: 23px; BORDER-RIGHT: = #9b9b9b 1px solid; PADDING-TOP: 0px; LEFT: -1px; opacity: 1.0 } UL#highLight_attach_menu_child_no_nextBio { BORDER-BOTTOM: #9b9b9b 1px solid; POSITION: absolute; BORDER-LEFT: = #9b9b9b 1px solid; PADDING-BOTTOM: 0px; LINE-HEIGHT: 15px; MARGIN-TOP: = -2px; PADDING-LEFT: 5px; WIDTH: 223px; PADDING-RIGHT: 0px; BACKGROUND: = white; HEIGHT: 85px; VISIBILITY: hidden; TOP: 23px; BORDER-RIGHT: = #9b9b9b 1px solid; PADDING-TOP: 0px; LEFT: -1px; opacity: 1.0 } #menulist { POSITION: absolute; PADDING-BOTTOM: 0px; LINE-HEIGHT: 0px; MARGIN: 0px; = PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BACKGROUND: none transparent = scroll repeat 0% 0%; PADDING-TOP: 0px } #highlightKwds { Z-INDEX: 10; POSITION: relative; PADDING-BOTTOM: 0px; PADDING-LEFT: = 2px; PADDING-RIGHT: 0px; DISPLAY: inline; FONT-FAMILY: arial; FONT-SIZE: = 11px; PADDING-TOP: 0px } .noul { TEXT-DECORATION: none !important } ------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: text/css; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.sciencedirect.com/science/page/static/stylesheets/css_art_Ie8_v01.css .featuresRow UL { PADDING-BOTTOM: 3px; LINE-HEIGHT: 0px; LIST-STYLE-TYPE: none; MARGIN: = 0px; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; BACKGROUND: = url(/scidirimg/features_border.gif) 0px bottom; PADDING-TOP: 0px } .featuresRow UL LI { POSITION: relative; PADDING-BOTTOM: 0px; LINE-HEIGHT: 30px; MARGIN: = 0px; PADDING-LEFT: 7px; PADDING-RIGHT: 0px; DISPLAY: inline; = FONT-FAMILY: arial; BACKGROUND: url(/scidirimg/divider_login.gif) = no-repeat right center; HEIGHT: 30px; FONT-SIZE: 11px; PADDING-TOP: 0px } .featuresRow UL LI A { LINE-HEIGHT: 30px; MARGIN: 0px; WHITE-SPACE: nowrap } .featuresRow UL LI A.big { FONT-SIZE: 14px; FONT-WEIGHT: bold } .featuresRow UL LI A.last { BACKGROUND: none transparent scroll repeat 0% 0%; BORDER-RIGHT: medium = none } .clearFloat { HEIGHT: 1px; CLEAR: both; OVERFLOW: hidden } .articleLeftCol { PADDING-BOTTOM: 8px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = MARGIN-RIGHT: 361px; PADDING-TOP: 0px } * HTML .articleLeftCol { HEIGHT: 1% } .articleRightCol { PADDING-BOTTOM: 1px; MARGIN: 0px; PADDING-LEFT: 0px; WIDTH: 346px; = PADDING-RIGHT: 0px; FLOAT: right; PADDING-TOP: 1px } .rightFmDivider { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; WIDTH: 100%; = PADDING-RIGHT: 0px; HEIGHT: 20px !important; PADDING-TOP: 0px } A.articleHeaderInner:hover { TEXT-DECORATION: underline } P { LINE-HEIGHT: 150% } .articleTitle { DISPLAY: inline; FONT-FAMILY: Arial, Helvetica, sans-serif; FONT-SIZE: = 1.75em; FONT-WEIGHT: bold } #articleContent A IMG { MARGIN-BOTTOM: 0px } #articleContent IMG { MARGIN-BOTTOM: 5px } .articleText { LINE-HEIGHT: 150%; DISPLAY: inline } #articleFade { Z-INDEX: 100; BORDER-BOTTOM: 0px; POSITION: absolute; FILTER: = alpha(opacity=3D0); BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; = PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; DISPLAY: none; = BACKGROUND: #cccccc 0px 0px; HEIGHT: 100%; COLOR: #cccccc; BORDER-TOP: = 0px; TOP: 0%; BORDER-RIGHT: 0px; PADDING-TOP: 0px; LEFT: 0%; opacity: 0 } .articleNoFade { Z-INDEX: 999; POSITION: relative } .graphText { LINE-HEIGHT: 150%; DISPLAY: inline } .graphTextOnly { LINE-HEIGHT: 150%; DISPLAY: inline } .refText { LINE-HEIGHT: 150%; DISPLAY: inline } .articleToc { LINE-HEIGHT: 150% } * { BOX-SIZING: border-box; -moz-box-sizing: border-box } .infobubble-container { Z-INDEX: 60; POSITION: relative } .infobubble_top { POSITION: relative; WIDTH: 308px; HEIGHT: 15px } .infobubble_mid { BACKGROUND-IMAGE: url(/scidirimg/ra_top.gif); Z-INDEX: 60; POSITION: = relative; PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; WIDTH: 308px; = PADDING-RIGHT: 0px; BACKGROUND-REPEAT: no-repeat; PADDING-TOP: 3px } .infobubble_border { BORDER-LEFT: #9b9b9b 1px solid; PADDING-BOTTOM: 2px; WIDTH: 308px; = BORDER-RIGHT: #9b9b9b 1px solid; PADDING-TOP: 7px } .infobubble_doclinks { PADDING-BOTTOM: 0px; PADDING-LEFT: 11px; PADDING-RIGHT: 11px; = PADDING-TOP: 0px } .infobubble_bottom { BACKGROUND-IMAGE: url(/scidirimg/ra_bottom.gif); Z-INDEX: 60; POSITION: = relative; WIDTH: 308px; BACKGROUND-REPEAT: no-repeat; = BACKGROUND-POSITION: center top; HEIGHT: 3px; OVERFLOW: hidden } .infobubble { Z-INDEX: 60; POSITION: absolute; BACKGROUND-COLOR: #ffffff; = TEXT-INDENT: 0px; WIDTH: 315px; DISPLAY: none; TOP: 0px; LEFT: -322px } .mlktScroll { BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; = BACKGROUND-COLOR: #ffffff; HEIGHT: 100px; OVERFLOW: auto; BORDER-TOP: = #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid } .mlktLink { BORDER-BOTTOM: #ffffff 1px solid; BORDER-LEFT: #ffffff 1px solid; = PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #ffffff; MARGIN: 3px 5px; = PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: #ffffff 1px solid; = BORDER-RIGHT: #ffffff 1px solid; PADDING-TOP: 2px } .mlktEmpty { PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; BACKGROUND: = url(/scidirimg/rc_box_mid.gif) repeat-y 0px 0px; PADDING-TOP: 5px } .mlktContentBody { BACKGROUND: url(/scidirimg/rc_box_mid.gif) repeat-y 0px 0px } #raViewMore_Art TR TD { PADDING-BOTTOM: 3px; PADDING-LEFT: 10px; PADDING-RIGHT: 0px; = PADDING-TOP: 10px } #raViewMore_Ref TR TD { PADDING-BOTTOM: 3px; PADDING-LEFT: 10px; PADDING-RIGHT: 0px; = PADDING-TOP: 10px } #raViewMore_Cite TR TD { PADDING-BOTTOM: 3px; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; = PADDING-TOP: 1px } .outerPage { PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = PADDING-TOP: 5px } .sci_dirBackgroundColor { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; WIDTH: 100%; = PADDING-RIGHT: 0px; BACKGROUND: none transparent scroll repeat 0% 0%; = BORDER-TOP: #e8e8e8 4px solid; PADDING-TOP: 0px } .blueBackgroundColor { WIDTH: 100%; BORDER-TOP: #e8e8e8 4px solid } .greenBackgroundColor { WIDTH: 100%; BORDER-TOP: #e8e8e8 4px solid } .greyBackgroundColor { WIDTH: 100%; BORDER-TOP: #e8e8e8 4px solid } .redBackgroundColor { WIDTH: 100%; BORDER-TOP: #e8e8e8 4px solid } .orangeBackgroundColor { WIDTH: 100%; BORDER-TOP: #e8e8e8 4px solid } #articleBox { PADDING-BOTTOM: 0px; MARGIN: -2px 0px 0px; PADDING-LEFT: 0px; = PADDING-RIGHT: 0px; BORDER-TOP: #9b9b9b 1px solid; PADDING-TOP: 0px } .articleBox { MARGIN-BOTTOM: -5px; BORDER-TOP: #ffffff 1px solid } #articleBody { POSITION: relative; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: = 0px; PADDING-RIGHT: 0px; CLEAR: left; TOP: -6px !important; PADDING-TOP: = 0px; LEFT: -1px } .articleBoxBorderHide { POSITION: relative; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: = 0px; PADDING-RIGHT: 0px; DISPLAY: block; TOP: 36px; PADDING-TOP: 0px } .articleHeaderInner { POSITION: relative; MARGIN: 0px 5px 0px 3px; LEFT: 1px } .FATTABInner { BACKGROUND-COLOR: #f6f6f6; PADDING-LEFT: 0px; WIDTH: 350px; = PADDING-RIGHT: 0px; DISPLAY: block; FLOAT: right; HEIGHT: 100%; = FONT-SIZE: 0.9em } .refersTable { LINE-HEIGHT: 16px; BACKGROUND-COLOR: #ffffff; FONT-FAMILY: arial, = helvetica, sans-serif; FONT-SIZE: 1em } .refersLeftColumn { TEXT-ALIGN: right; PADDING-LEFT: 5px; WIDTH: 55px; VERTICAL-ALIGN: top; = FONT-WEIGHT: bold } .refersDivider { PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #ffffff; MARGIN: 0px; = PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; HEIGHT: 10px; = PADDING-TOP: 0px } .refPreview { Z-INDEX: 1000; PADDING-BOTTOM: 8px; BACKGROUND-COLOR: #eeeeee; = PADDING-LEFT: 8px; WIDTH: 300px; PADDING-RIGHT: 8px; DISPLAY: none; = PADDING-TOP: 8px } .greyTable { PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #ffffff; PADDING-LEFT: 0px; = PADDING-RIGHT: 0px; PADDING-TOP: 0px } .greyTab { BORDER-BOTTOM: #c2c2c2 0px; BORDER-LEFT: #c2c2c2 1px solid; = PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #ffffff; PADDING-LEFT: 0px; = PADDING-RIGHT: 0px; FONT-SIZE: 0.9em; BORDER-TOP: #c2c2c2 0px solid; = BORDER-RIGHT: #c2c2c2 1px solid; PADDING-TOP: 0px } .greyHeader { BACKGROUND-IMAGE: url(/scidirimg/rc_header_mid.gif); POSITION: = relative; PADDING-BOTTOM: 0px; PADDING-LEFT: 8px; WIDTH: 332px; = PADDING-RIGHT: 8px; BACKGROUND-REPEAT: repeat-x; FONT-FAMILY: Arial; = FLOAT: left; HEIGHT: 32px; COLOR: #000000; FONT-SIZE: 1.35em; = FONT-WEIGHT: bold; PADDING-TOP: 8px } .articleTabs { Z-INDEX: 50; POSITION: relative; TEXT-ALIGN: left; MARGIN: 0px; = DISPLAY: inline; WHITE-SPACE: nowrap; FLOAT: left; HEIGHT: 40px; = PADDING-TOP: 6px } .articleTabsNoFade { Z-INDEX: 1000; POSITION: relative } .imgToogleNoFade { Z-INDEX: 1000; POSITION: relative } .tabSelectedOuter { POSITION: relative; DISPLAY: inline; WHITE-SPACE: nowrap; HEIGHT: 31px } .tabUnselectedOuter { POSITION: relative; DISPLAY: inline; WHITE-SPACE: nowrap; HEIGHT: 31px } .tabSelectedInner { POSITION: relative; PADDING-BOTTOM: 0px; PADDING-LEFT: 6px; = PADDING-RIGHT: 6px; FONT-FAMILY: arial; FLOAT: left; HEIGHT: 31px; = COLOR: #000000; FONT-SIZE: 16px; FONT-WEIGHT: bold; PADDING-TOP: 8px } .tabUnselectedInner { POSITION: relative; PADDING-BOTTOM: 0px; PADDING-LEFT: 6px; = PADDING-RIGHT: 6px; FONT-FAMILY: arial,verdana,helvetica,sans-serif; = FLOAT: left; HEIGHT: 31px; COLOR: #000000; FONT-SIZE: 1em; PADDING-TOP: = 9px } .tabUnselectedOuter:hover { CURSOR: pointer } .tabUnselectedInner:hover { CURSOR: pointer } .disabledTabLink { COLOR: #bcbcbc } .bottomArticle { BACKGROUND-COLOR: #ffffff } .footerArticle { BACKGROUND-COLOR: #ffffff } .ppvMSG { Z-INDEX: 1000; PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; PADDING-RIGHT: = 5px; DISPLAY: block; FLOAT: right; PADDING-TOP: 5px } .ppvMSG IMG { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 5px; = PADDING-LEFT: 5px; PADDING-RIGHT: 5px; BORDER-TOP: 0px; BORDER-RIGHT: = 0px; PADDING-TOP: 5px } .authorsNoEnt P { MARGIN: 2px } .authorVitaeLink { FONT-STYLE: italic; FONT-SIZE: 0.84em } .figTblUpiOuter { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-LEFT: 0px; PADDING-RIGHT: 0px; MARGIN-LEFT: 15px; BORDER-TOP: = 0px; BORDER-RIGHT: 0px; PADDING-TOP: 0px } .tblScroll { PADDING-BOTTOM: 17px; OVERFLOW-Y: visible; PADDING-LEFT: 0px; WIDTH: = 100%; PADDING-RIGHT: 0px; OVERFLOW: auto; PADDING-TOP: 0px } .tblScrollBox { =09 } .tblScrollLink { DISPLAY: inline } .eqImgScroll { TEXT-ALIGN: left; PADDING-BOTTOM: 17px; OVERFLOW-Y: visible; = PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; VERTICAL-ALIGN: = middle; OVERFLOW: auto; PADDING-TOP: 0px } .eqImgScroll IMG { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: = 0px } .eqImgScroll A { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: = 0px } .eqImgScroll A:hover { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: = 0px } .inlMMLBox { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; = PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; BORDER-TOP: 0px; = BORDER-RIGHT: 0px; PADDING-TOP: 0px } .fdBox { BORDER-BOTTOM: 0px; POSITION: relative; BORDER-LEFT: 0px; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; WIDTH: 100%; = PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: 0px; PADDING-TOP: 0px } .fdNoLabel { TEXT-ALIGN: center; VERTICAL-ALIGN: middle } .fdWithLabel { TEXT-ALIGN: center; VERTICAL-ALIGN: middle; MARGIN-RIGHT: 10% } .fdLabel { POSITION: absolute; TEXT-ALIGN: right; WIDTH: 10%; TOP: 45%; RIGHT: 0px } .fdLabelTxt { VERTICAL-ALIGN: super } .sizeImg { MAX-WIDTH: 100%; HEIGHT: auto } .sizeImgBox { =09 } .sizeImgLink { DISPLAY: inline } .viewWithinBtn:hover { BORDER-BOTTOM: #666666 1px solid; BORDER-LEFT: #666666 1px solid; = PADDING-BOTTOM: 1px; BACKGROUND-COLOR: #eeeeee; MARGIN: 0px; = PADDING-LEFT: 10px; WIDTH: auto; PADDING-RIGHT: 10px; DISPLAY: inline; = HEIGHT: 19px; COLOR: #666666; FONT-SIZE: 11px; BORDER-TOP: #666666 1px = solid; FONT-WEIGHT: bold; BORDER-RIGHT: #666666 1px solid; = TEXT-DECORATION: none; PADDING-TOP: 1px } .viewWithinBtn { BORDER-BOTTOM: #666666 1px solid; BORDER-LEFT: #666666 1px solid; = PADDING-BOTTOM: 1px; BACKGROUND-COLOR: #eeeeee; MARGIN: 0px; = PADDING-LEFT: 10px; WIDTH: auto; PADDING-RIGHT: 10px; DISPLAY: inline; = HEIGHT: 19px; COLOR: #666666; FONT-SIZE: 11px; BORDER-TOP: #666666 1px = solid; FONT-WEIGHT: bold; BORDER-RIGHT: #666666 1px solid; = TEXT-DECORATION: none; PADDING-TOP: 1px } .graphTextOnly A:hover { TEXT-DECORATION: none } .outwardBox { TEXT-ALIGN: left; PADDING-BOTTOM: 7px; MARGIN: 0px; PADDING-LEFT: 10px; = PADDING-RIGHT: 10px; BACKGROUND: url(/scidirimg/rc_box_mid.gif) repeat-y = 0px 0px; FONT-SIZE: 0.9em; PADDING-TOP: 7px } .outwardBox TD { PADDING-BOTTOM: 3px; PADDING-LEFT: 3px; PADDING-RIGHT: 3px; = PADDING-TOP: 3px } .outward A { COLOR: #0156aa } #BookMarkBoxContent A { COLOR: #0156aa; CURSOR: pointer } .collabBox { TEXT-ALIGN: center; BORDER-LEFT: #c2c2c2 1px solid; BACKGROUND-COLOR: = #ffffff; WIDTH: 340px; BORDER-RIGHT: #c2c2c2 1px solid } .NextBiovRow { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; = PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: = 0px; PADDING-TOP: 0px } .MMCvRow { Z-INDEX: 3; POSITION: relative; MARGIN: 0px; PADDING-LEFT: 5px; WIDTH: = 343px; BACKGROUND: url(/scidirimg/rc_box_mid.gif) repeat-y 0px 0px; = FLOAT: right } .MMCvOuter { Z-INDEX: 3; BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; = OVERFLOW-X: hidden; OVERFLOW-Y: hidden; BACKGROUND-COLOR: #ffffff; = MARGIN: 0px; PADDING-LEFT: 0px; WIDTH: 332px; PADDING-RIGHT: 0px; = DISPLAY: block; FONT-SIZE: 0.9em; OVERFLOW: hidden; BORDER-TOP: 0px; = BORDER-RIGHT: 0px; PADDING-TOP: 5px } .MMCvTitleBox { BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 2px 2px 12px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = BORDER-TOP: 0px; FONT-WEIGHT: bold; BORDER-RIGHT: 0px; PADDING-TOP: 0px } .MMCvRefHovs { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; = PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: = 0px; PADDING-TOP: 0px } .MMCvTabs { BORDER-BOTTOM: #cccccc 1px solid; PADDING-BOTTOM: 2px; MARGIN: 0px; = PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 2px } .MMCvNoTabs { MARGIN-TOP: -1px; BORDER-TOP: #cccccc 1px solid } .MMCvTab { BORDER-BOTTOM: 0px; TEXT-ALIGN: center; BORDER-LEFT: #cccccc 1px solid; = PADDING-BOTTOM: 2px; BACKGROUND-COLOR: #ffffff; MARGIN: 0px 5px 0px 0px; = PADDING-LEFT: 9px; PADDING-RIGHT: 9px; COLOR: #0156aa; BORDER-TOP: = #cccccc 1px solid; CURSOR: pointer; FONT-WEIGHT: bold; BORDER-RIGHT: = #cccccc 1px solid; PADDING-TOP: 2px } .MMCvTab:hover { TEXT-DECORATION: underline } .MMCvTabActive { BORDER-BOTTOM: 0px; TEXT-ALIGN: center; BORDER-LEFT: #cccccc 1px solid; = PADDING-BOTTOM: 3px; BACKGROUND-COLOR: #f2f2f2; MARGIN: 0px 5px 0px 0px; = PADDING-LEFT: 9px; PADDING-RIGHT: 9px; BORDER-TOP: #cccccc 1px solid; = FONT-WEIGHT: bold; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 2px } .MMCvTabActive A:hover { TEXT-DECORATION: none } .MMCvSelector { BORDER-BOTTOM: 0px; TEXT-ALIGN: right; BORDER-LEFT: #cccccc 1px solid; = PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #f2f2f2; MARGIN: 0px; = PADDING-LEFT: 0px; WIDTH: 332px; PADDING-RIGHT: 5px; BORDER-TOP: 0px; = BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 0px } .MMCvSelectDiv { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 3px; MARGIN: 0px; = PADDING-LEFT: 3px; PADDING-RIGHT: 3px; BORDER-TOP: 0px; BORDER-RIGHT: = 0px; PADDING-TOP: 3px } .MMCvSelectorItem { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; = PADDING-LEFT: 0px; PADDING-RIGHT: 0px; COLOR: #0156aa; BORDER-TOP: 0px; = CURSOR: pointer; BORDER-RIGHT: 0px; PADDING-TOP: 0px } .MMCvSelectorCollapseItem { CURSOR: pointer } .MMCvSelRover { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; = PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; FONT-SIZE: 145%; = BORDER-TOP: 0px; BORDER-RIGHT: 0px; PADDING-TOP: 0px } .MMCvSelRover IMG { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; = PADDING-LEFT: 0px; PADDING-RIGHT: 0px; VERTICAL-ALIGN: -4px; BORDER-TOP: = 0px; BORDER-RIGHT: 0px; PADDING-TOP: 0px } .MMCvViewBacking { BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; = PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #f2f2f2; MARGIN: 0px; = PADDING-LEFT: 8px; WIDTH: 332px; PADDING-RIGHT: 8px; BORDER-TOP: medium = none; BORDER-RIGHT: #cccccc 1px solid } .MMCvViewer { BORDER-BOTTOM: medium none; POSITION: absolute; PADDING-BOTTOM: 0px; = OVERFLOW-X: hidden; OVERFLOW-Y: hidden; BACKGROUND-COLOR: #ffffff; = MARGIN: 0px; PADDING-LEFT: 0px; WIDTH: 320px; PADDING-RIGHT: 0px; = OVERFLOW: hidden; BORDER-TOP: #cccccc 1px solid; PADDING-TOP: 0px } .MMCvVideoComponent { POSITION: absolute; PADDING-BOTTOM: 0px; MARGIN: 0px 195px 0px 0px; = PADDING-LEFT: 0px; WIDTH: 320px; PADDING-RIGHT: 0px; DISPLAY: block; = TOP: 0px; PADDING-TOP: 0px; LEFT: 345px } .MMCvAudioComponent { POSITION: absolute; PADDING-BOTTOM: 0px; MARGIN: 0px 195px 0px 0px; = PADDING-LEFT: 0px; WIDTH: 320px; PADDING-RIGHT: 0px; DISPLAY: block; = TOP: 0px; PADDING-TOP: 0px; LEFT: 345px } .MMCvOtherComponent { POSITION: absolute; PADDING-BOTTOM: 0px; MARGIN: 0px 195px 0px 0px; = PADDING-LEFT: 0px; WIDTH: 320px; PADDING-RIGHT: 0px; DISPLAY: block; = TOP: 0px; PADDING-TOP: 0px; LEFT: 345px } .MMCvCaptionArea { OVERFLOW-X: hidden; OVERFLOW-Y: hidden; MARGIN: 0px; WIDTH: 245px; = DISPLAY: block; FLOAT: right; OVERFLOW: hidden } .MMCvAudioOtherWrapper { BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; = OVERFLOW-X: hidden; OVERFLOW-Y: hidden; MARGIN: 0px; WIDTH: 320px; = DISPLAY: block; OVERFLOW: hidden; BORDER-TOP: medium none; BORDER-RIGHT: = #cccccc 1px solid } .MMCvCaptionWrapper { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 4px; OVERFLOW-X: = hidden; OVERFLOW-Y: hidden; MARGIN: 0px; PADDING-LEFT: 4px; WIDTH: = 245px; PADDING-RIGHT: 4px; DISPLAY: block; OVERFLOW: hidden; BORDER-TOP: = 0px; BORDER-RIGHT: 0px; PADDING-TOP: 0px } .MMCvCaption { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 6px; MARGIN: 0px; = PADDING-LEFT: 6px; WIDTH: 245px; PADDING-RIGHT: 6px; DISPLAY: block; = BORDER-TOP: 0px; BORDER-RIGHT: 0px; PADDING-TOP: 6px } .MMCvVideoCaptionArea { PADDING-BOTTOM: 0px; OVERFLOW-X: hidden; OVERFLOW-Y: hidden; MARGIN: = 0px; PADDING-LEFT: 0px; WIDTH: 320px; PADDING-RIGHT: 0px; DISPLAY: = block; OVERFLOW: hidden; PADDING-TOP: 0px } .MMCvVideoCaptionWrapper { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 4px; OVERFLOW-X: = hidden; OVERFLOW-Y: hidden; MARGIN: 0px; PADDING-LEFT: 4px; WIDTH: = 320px; PADDING-RIGHT: 4px; DISPLAY: block; OVERFLOW: hidden; BORDER-TOP: = 0px; BORDER-RIGHT: 0px; PADDING-TOP: 0px } .MMCvVideoCaption { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 6px; MARGIN: 0px; = PADDING-LEFT: 6px; WIDTH: 320px; PADDING-RIGHT: 6px; DISPLAY: block; = BORDER-TOP: 0px; BORDER-RIGHT: 0px; PADDING-TOP: 6px } .MMCvVideoPlayerArea { PADDING-BOTTOM: 0px; OVERFLOW-X: hidden; OVERFLOW-Y: hidden; MARGIN: = 0px; PADDING-LEFT: 0px; WIDTH: 320px; PADDING-RIGHT: 0px; DISPLAY: = block; HEIGHT: 265px; OVERFLOW: hidden; PADDING-TOP: 0px } .MMCvVideoPlayerWrapper { BORDER-BOTTOM: 0px; POSITION: relative; BORDER-LEFT: 0px; = PADDING-BOTTOM: 0px; OVERFLOW-X: hidden; OVERFLOW-Y: hidden; MARGIN: = 0px; PADDING-LEFT: 0px; WIDTH: 320px; PADDING-RIGHT: 0px; DISPLAY: = block; HEIGHT: 265px; OVERFLOW: hidden; BORDER-TOP: 0px; BORDER-RIGHT: = 0px; PADDING-TOP: 0px } .MMCvVideoPlayer { BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; = MARGIN: 0px; WIDTH: 320px; DISPLAY: block; HEIGHT: 265px; = VERTICAL-ALIGN: middle; BORDER-RIGHT: #cccccc 1px solid } .MMCvAudioPlayerWrapper { PADDING-BOTTOM: 0px; OVERFLOW-X: hidden; OVERFLOW-Y: hidden; MARGIN: = 0px; PADDING-LEFT: 0px; WIDTH: 320px; PADDING-RIGHT: 0px; DISPLAY: = block; HEIGHT: 28px; OVERFLOW: hidden; PADDING-TOP: 0px } .MMCvAudioPlayer { BORDER-BOTTOM: 0px; TEXT-ALIGN: center; BORDER-LEFT: 0px; MARGIN: 0px; = WIDTH: 320px; DISPLAY: block; HEIGHT: 28px; BORDER-TOP: 0px; = BORDER-RIGHT: 0px } .MMCvErrorArea { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; OVERFLOW-X: = hidden; OVERFLOW-Y: hidden; MARGIN: 0px; PADDING-LEFT: 0px; WIDTH: = 300px; PADDING-RIGHT: 0px; DISPLAY: block; HEIGHT: 260px; = VERTICAL-ALIGN: middle; OVERFLOW: hidden; BORDER-TOP: 0px; BORDER-RIGHT: = 0px; PADDING-TOP: 0px } .MMCvError { POSITION: absolute; TEXT-ALIGN: center; WIDTH: 320px; FONT-SIZE: 1.1em; = TOP: 50px } .MMCvAudioError { BORDER-BOTTOM: #cccccc 1px dotted; TEXT-ALIGN: center; PADDING-BOTTOM: = 10px; PADDING-LEFT: 10px; WIDTH: 320px; PADDING-RIGHT: 10px; FONT-SIZE: = 1.1em; PADDING-TOP: 10px } .MMCvAudioErrorNoCaption { BORDER-BOTTOM: #cccccc 1px solid; TEXT-ALIGN: center; BORDER-LEFT: = #cccccc 1px solid; PADDING-BOTTOM: 8px; PADDING-LEFT: 8px; WIDTH: 320px; = PADDING-RIGHT: 8px; FONT-SIZE: 1.1em; BORDER-TOP: medium none; = BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 8px } .MMCvMoreSpacer { BORDER-BOTTOM: #000000 1px dashed; BORDER-LEFT: 0px; PADDING-BOTTOM: = 2px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: = 0px; BORDER-RIGHT: 0px; PADDING-TOP: 0px } .MMCvMoreWrapper { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; = PADDING-LEFT: 9px; WIDTH: 195px; PADDING-RIGHT: 9px; DISPLAY: none; = COLOR: #0156aa; BORDER-TOP: 0px; CURSOR: pointer; BORDER-RIGHT: 0px; = PADDING-TOP: 0px } .MMCvLessWrapper { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; = PADDING-LEFT: 9px; WIDTH: 195px; PADDING-RIGHT: 9px; DISPLAY: none; = COLOR: #0156aa; BORDER-TOP: 0px; CURSOR: pointer; BORDER-RIGHT: 0px; = PADDING-TOP: 0px } .MMCvImageArea { PADDING-BOTTOM: 8px; MARGIN: 0px; PADDING-LEFT: 8px; WIDTH: 58px; = PADDING-RIGHT: 8px; PADDING-TOP: 8px } .MMCvDownload { MARGIN: 0px; DISPLAY: block; FLOAT: right } .MMCvViewWithin { MARGIN: 0px; DISPLAY: block } .MMCvViewDownloadWrapper { PADDING-BOTTOM: 5px; BACKGROUND-COLOR: #f2f2f2; PADDING-LEFT: 0px; = WIDTH: 320px; PADDING-RIGHT: 0px; DISPLAY: block; PADDING-TOP: 5px } .MMCvImage { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; = PADDING-LEFT: 0px; WIDTH: 50px; PADDING-RIGHT: 0px; HEIGHT: 50px; = BORDER-TOP: 0px; BORDER-RIGHT: 0px; PADDING-TOP: 0px } #shadow-container { POSITION: relative; PADDING-BOTTOM: 10px; PADDING-RIGHT: 10px; = MARGIN-BOTTOM: 3px; FLOAT: left; TOP: 3px; MARGIN-RIGHT: 3px; = PADDING-TOP: 10px; LEFT: 3px } .shadow1 { POSITION: relative; WIDTH: 220px; TOP: -1px; LEFT: -1px } .shadow2 { POSITION: relative; WIDTH: 220px; TOP: -1px; LEFT: -1px } .shadow3 { POSITION: relative; WIDTH: 220px; TOP: -1px; LEFT: -1px } .container { POSITION: relative; WIDTH: 220px; TOP: -1px; LEFT: -1px } .shadow1 { WIDTH: 220px; BACKGROUND: #f1f1f1 } .shadow2 { BACKGROUND: #dbdadb } .shadow3 { BACKGROUND: #b8b6b8 } .container { PADDING-BOTTOM: 8px; BACKGROUND-COLOR: #f2f2f2; PADDING-LEFT: 8px; = WIDTH: 220px; PADDING-RIGHT: 8px; FONT-FAMILY: Geneva, Arial, Helvetica, = sans-serif; COLOR: #555555; FONT-SIZE: 1.1em; PADDING-TOP: 8px } .MMCvVideoImageArea { BORDER-BOTTOM: #cccccc 1px solid; TEXT-ALIGN: center; BORDER-LEFT: = #cccccc 1px solid; WIDTH: 320px; DISPLAY: table; HEIGHT: 180px; = BORDER-TOP: medium none; BORDER-RIGHT: #cccccc 1px solid } .MMCvInstallFP { PADDING-BOTTOM: 4px; PADDING-LEFT: 4px; PADDING-RIGHT: 4px; DISPLAY: = block; PADDING-TOP: 4px } .MMCvVideoImageWrapper { DISPLAY: table-cell; VERTICAL-ALIGN: middle } .MMCvInstallFP { PADDING-BOTTOM: 4px; PADDING-LEFT: 4px; PADDING-RIGHT: 4px; DISPLAY: = block; PADDING-TOP: 4px } > .MMCvVideoImageArea { DISPLAY: block } .MMCvVideoImageWrapper { POSITION: relative; ZOOM: 1; HEIGHT: auto; TOP: 50% } .MMCvVideoImage { POSITION: relative; ZOOM: 1; HEIGHT: auto; TOP: -50% } UNKNOWN { BORDER-BOTTOM: #cccccc 1px dashed; PADDING-BOTTOM: 0px; MARGIN: 1px; = FONT-SIZE: 1.2em; FONT-WEIGHT: bold } UL.artAlphaNavBar { DISPLAY: block } UL.artAlphaNavBar LI { BORDER-LEFT: #999999 1px solid; LIST-STYLE-TYPE: none; PADDING-LEFT: = 3px; PADDING-RIGHT: 3px; DISPLAY: inline } DL DL DL { PADDING-BOTTOM: 0px; LINE-HEIGHT: 100%; MARGIN: 0px; PADDING-LEFT: 0px; = PADDING-RIGHT: 0px; PADDING-TOP: 0px } DL { LINE-HEIGHT: 100%; MARGIN-TOP: 10px } DT { PADDING-BOTTOM: 0px; LINE-HEIGHT: 14pt; PADDING-LEFT: 0px; = PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-TOP: 0px } DD { PADDING-BOTTOM: 0px; LINE-HEIGHT: 150%; PADDING-LEFT: 0px; = PADDING-RIGHT: 0px; PADDING-TOP: 0px } DL P { LINE-HEIGHT: 100%; MARGIN-LEFT: 0px } DT P { LINE-HEIGHT: 100%; MARGIN-LEFT: 0px } DD P { LINE-HEIGHT: 100%; MARGIN-LEFT: 0px } #pdfArea OBJECT { BORDER-BOTTOM: #666 1px solid; BORDER-LEFT: #666 1px solid; DISPLAY: = block; BORDER-TOP: #666 1px solid; BORDER-RIGHT: #666 1px solid } #pdfPage { WIDTH: 100%; DISPLAY: block; HEIGHT: 820px; OVERFLOW: auto } .loadWindow { BORDER-BOTTOM: grey 1px solid; BORDER-LEFT: grey 1px solid; = PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; WIDTH: 600px; PADDING-RIGHT: = 5px; HEIGHT: 820px; BORDER-TOP: grey 1px solid; BORDER-RIGHT: grey 1px = solid; PADDING-TOP: 5px } .reRunStyle { BORDER-BOTTOM: #6c9d31 1px solid; POSITION: relative; BORDER-LEFT: = #6c9d31 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #e5f3cc; = PADDING-LEFT: 4px; PADDING-RIGHT: 4px; MARGIN-BOTTOM: 2px; FLOAT: left; = BORDER-TOP: #6c9d31 1px solid; BORDER-RIGHT: #6c9d31 1px solid; = PADDING-TOP: 4px } .artiHead { FONT-SIZE: 0.9em } .referenceText { DISPLAY: block; MARGIN-LEFT: 15px } .articleText_indent { PADDING-LEFT: 15px } .articleText_indent H3 { MARGIN: 15px 0px 0px -15px } .articleText_indent H4 { MARGIN: 15px 0px 0px -15px } .articleText_indent H5 { MARGIN: 15px 0px 0px -15px } .articleText_indent P { MARGIN: 0px } .articleText_indent DL { MARGIN: 0px } .articleText_indent DT { MARGIN: 0px } .imgToggle { PADDING-BOTTOM: 0.85em; PADDING-LEFT: 0.1em; PADDING-RIGHT: 0.1em; = FLOAT: right; PADDING-TOP: 0.85em } .articleInnerPage { PADDING-BOTTOM: 15px; PADDING-LEFT: 10px; WIDTH: 100%; PADDING-RIGHT: = 15px; MARGIN-RIGHT: -100em; PADDING-TOP: 15px } HTML > BODY .articleInnerPage { PADDING-RIGHT: 10px } #figevent { DISPLAY: none } #figSelect { DISPLAY: none } #refevent { DISPLAY: none } #absTabOn { DISPLAY: inline } #fullTabOn { DISPLAY: inline } #graphTabOn { DISPLAY: inline } #refTabOn { DISPLAY: inline } #absTabOff { DISPLAY: inline } #fullTabOff { DISPLAY: inline } #graphTabOff { DISPLAY: inline } #refTabOff { DISPLAY: inline } #TabOff { DISPLAY: inline } HTML > BODY #absTabOn { DISPLAY: inline-block } HTML > BODY #fullTabOn { DISPLAY: inline-block } HTML > BODY #graphTabOn { DISPLAY: inline-block } HTML > BODY #refTabOn { DISPLAY: inline-block } HTML > BODY #absTabOff { DISPLAY: inline-block } HTML > BODY #fullTabOff { DISPLAY: inline-block } HTML > BODY #graphTabOff { DISPLAY: inline-block } HTML > BODY #refTabOff { DISPLAY: inline-block } HTML > BODY #TabOff { DISPLAY: inline-block } .On { VISIBILITY: visible; OVERFLOW: auto; TOP: 0px; LEFT: 0px } .Off { POSITION: absolute; VISIBILITY: hidden !important; OVERFLOW: hidden; = TOP: -2000px; LEFT: -2000px } .multiMediaBottom { Z-INDEX: 2; POSITION: relative; TOP: -1px } #embedAPCModule { PADDING-BOTTOM: 15px; PADDING-TOP: 15px } #embedAPBModule { PADDING-BOTTOM: 20px; WIDTH: 340px } #embedAPAModule { PADDING-BOTTOM: 20px; WIDTH: 340px } .articleTabs:after { MARGIN: 0px; DISPLAY: block; HEIGHT: 0px; VISIBILITY: hidden; CLEAR: = both } .articleTabsNoFade:after { MARGIN: 0px; DISPLAY: block; HEIGHT: 0px; VISIBILITY: hidden; CLEAR: = both } .articlePage:after { MARGIN: 0px; DISPLAY: block; HEIGHT: 0px; VISIBILITY: hidden; CLEAR: = both } .articleLeftCol:after { MARGIN: 0px; DISPLAY: block; HEIGHT: 0px; VISIBILITY: hidden; CLEAR: = both } HTML > BODY #articleBody { TOP: -3px !important } x:unknown { TOP: -3px !important } HTML > BODY #articleBody { TOP: -6px !important } x:unknown { TOP: -6px !important } x:unknown { TOP: -6px !important } HTML > BODY .articleTabs { =09 } x:unknown { =09 } HTML > BODY .articleTabs { HEIGHT: 40px } x:unknown { HEIGHT: 40px } x:unknown { HEIGHT: 40px } HTML > BODY #articleBox { BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; MARGIN-TOP: 0px; = BACKGROUND: none transparent scroll repeat 0% 0%; BORDER-TOP: medium = none; BORDER-RIGHT: medium none } HTML > BODY .articleBox { BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; MARGIN-TOP: 0px; = BACKGROUND: none transparent scroll repeat 0% 0%; BORDER-TOP: medium = none; BORDER-RIGHT: medium none } HTML > BODY .articleBoxBorderHide { BORDER-BOTTOM: #9b9b9b 1px solid; WIDTH: 99%; MARGIN-LEFT: 2px } .rdivImg { POSITION: relative; PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; = PADDING-RIGHT: 0px; BACKGROUND: url(/scidirimg/container_right.png) = repeat-y 100% 100%; RIGHT: -1px; PADDING-TOP: 0px } .ldivImg { POSITION: relative; PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; = PADDING-RIGHT: 0px; BACKGROUND: url(/scidirimg/container_left.png) = repeat-y 0px 0px; PADDING-TOP: 0px; LEFT: -1px } .tdivImg { WIDTH: 100%; BACKGROUND: url(/scidirimg/container_top.png) repeat-x } .bdivImg { WIDTH: 100%; BACKGROUND: url(/scidirimg/container_bottom.png) repeat-x } #toppagination { TEXT-ALIGN: left; PADDING-BOTTOM: 8px; PADDING-LEFT: 14px; = PADDING-RIGHT: 26px; VERTICAL-ALIGN: bottom; PADDING-TOP: 18px } #fontsize { TEXT-ALIGN: right; PADDING-BOTTOM: 8px; PADDING-LEFT: 14px; = PADDING-RIGHT: 0px; VERTICAL-ALIGN: top; PADDING-TOP: 0px } #bottompagination { TEXT-ALIGN: left; PADDING-BOTTOM: 18px; PADDING-LEFT: 14px; = PADDING-RIGHT: 26px; VERTICAL-ALIGN: top; PADDING-TOP: 8px } .seperatorline { BACKGROUND-COLOR: #e8e8e8; MARGIN: 0px 26px 0px 14px; HEIGHT: 4px; = COLOR: #e8e8e8 } #articlePage { PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = PADDING-TOP: 10px } .seperatorlineReflect { MARGIN: 0px 4px 0px -3px; WIDTH: 100%; COLOR: #dddddd } LI.highLight_attach { BACKGROUND-COLOR: #ffffff; DISPLAY: block; FONT-FAMILY: arial; COLOR: = #0156aa; FONT-SIZE: 1.17em; TEXT-DECORATION: none } A.highLight_attach { LINE-HEIGHT: 15px; DISPLAY: block; FONT-FAMILY: arial; HEIGHT: 20px; = COLOR: #0156aa; FONT-SIZE: 1.17em; TEXT-DECORATION: none } A.highLight_attach:visited { LINE-HEIGHT: 15px; DISPLAY: block; FONT-FAMILY: arial; HEIGHT: 20px; = COLOR: #0156aa; FONT-SIZE: 1.17em; TEXT-DECORATION: none } A.highLight_attach { BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; BORDER-TOP: = medium none; BORDER-RIGHT: medium none } A.highLight_attach:visited { BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; BORDER-TOP: = medium none; BORDER-RIGHT: medium none } #nohiglink { =09 } #reflink { PADDING-TOP: 4px } #nextbiolink { PADDING-TOP: 10px } A.subText { FONT-FAMILY: arial; COLOR: #0156aa; FONT-SIZE: 1em; TEXT-DECORATION: = none } A.subText:visited { FONT-FAMILY: arial; COLOR: #0156aa; FONT-SIZE: 1em; TEXT-DECORATION: = none } #subpadding1 { LINE-HEIGHT: 11px; PADDING-LEFT: 25px } #subpadding2 { LINE-HEIGHT: 11px; PADDING-LEFT: 25px } LI#highLight_attach_menu_parent { BACKGROUND: none transparent scroll repeat 0% 0%; HEIGHT: 29px; = PADDING-TOP: 8px } UL#highLight_attach_menu_child { BORDER-BOTTOM: #9b9b9b 1px solid; POSITION: absolute; BORDER-LEFT: = #9b9b9b 1px solid; PADDING-BOTTOM: 0px; LINE-HEIGHT: 15px; PADDING-LEFT: = 6px; WIDTH: 220px; PADDING-RIGHT: 0px; BACKGROUND: white; HEIGHT: 126px; = VISIBILITY: hidden; TOP: 24px; BORDER-RIGHT: #9b9b9b 1px solid; = PADDING-TOP: 0px; LEFT: -1px; opacity: 1.0 } UL#highLight_attach_menu_child_no_nextBio { BORDER-BOTTOM: #9b9b9b 1px solid; POSITION: absolute; BORDER-LEFT: = #9b9b9b 1px solid; PADDING-BOTTOM: 0px; LINE-HEIGHT: 15px; PADDING-LEFT: = 6px; WIDTH: 220px; PADDING-RIGHT: 0px; BACKGROUND: white; HEIGHT: 85px; = VISIBILITY: hidden; TOP: 24px; BORDER-RIGHT: #9b9b9b 1px solid; = PADDING-TOP: 0px; LEFT: -1px; opacity: 1.0 } #menulist { POSITION: absolute; PADDING-BOTTOM: 0px; LINE-HEIGHT: 0px; MARGIN: 0px; = PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BACKGROUND: none transparent = scroll repeat 0% 0%; PADDING-TOP: 0px } #highlightKwds { PADDING-BOTTOM: 0px; PADDING-LEFT: 2px; PADDING-RIGHT: 0px; DISPLAY: = inline; FONT-FAMILY: arial; HEIGHT: 16px; FONT-SIZE: 11px; PADDING-TOP: = 0px } ------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://sciencedirect.nextbio.com/e/script/include.nb?type=css&name=tagCloud,elsevier&apiKey=F70C5A70-D194-4150-9F99-C8FC2266B65F .nbApiNormalLink { FONT-FAMILY: 'Arial'; COLOR: #000000; FONT-SIZE: 9pt } .nbApiNormalLink A { FONT-FAMILY: 'Arial'; COLOR: #0000ff; FONT-SIZE: 9pt; CURSOR: pointer; = TEXT-DECORATION: none } .nbApiNormalLink A:hover { TEXT-DECORATION: underline } .nbApiTagCloudHeader { PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; = FONT-FAMILY: arial, verdana, helvetica, sans-serif; COLOR: #000000; = FONT-SIZE: 8pt; VERTICAL-ALIGN: middle; FONT-WEIGHT: bold; PADDING-TOP: = 5px } .nbApiTagCloud A { FONT-FAMILY: 'Arial'; COLOR: #0000ff; CURSOR: pointer; TEXT-DECORATION: = none } .nbApiTagCloud A:hover { TEXT-DECORATION: underline } .nbApiMapHolder { BACKGROUND-COLOR: rgb(229,227,223); MARGIN: 10px 10px 5px; WIDTH: = 715px; HEIGHT: 350px } .nbApiTagCloudGroup { BORDER-BOTTOM: #ccc 1px solid; PADDING-BOTTOM: 4px; MARGIN: 7px 5px 4px } .nbApiTagCloudGroupLast { BORDER-BOTTOM: medium none; PADDING-BOTTOM: 0px } .nbApiTagCloudGroupHead { TEXT-TRANSFORM: capitalize; COLOR: #666; FONT-SIZE: 14px; FONT-WEIGHT: = bold } .nbApiTagCloudGroupCount { COLOR: #aaa; FONT-SIZE: 9pt } .nbApiTagCloudGroup TABLE { WIDTH: 100%; FONT-SIZE: 9pt } .nbApiTagCloudShowLess .nbApiTagCloudMore { DISPLAY: none } .nbApiTagCloudShowMore .nbApiTagCloudLess { DISPLAY: none } .nbApiTagCloudMoreLink IMG { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: = 0px } .nbApiTagCloudMoreLink A { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; TEXT-TRANSFORM: none; COLOR: = #1c94c1; FONT-SIZE: 8pt; BORDER-TOP: 0px; BORDER-RIGHT: 0px; = TEXT-DECORATION: none } .nbApiTagCloudMoreLink A:hover { TEXT-DECORATION: underline } .nbApiHeader .nbApiSpacer { PADDING-TOP: 8px } .nbApiHeader .nbApiSpacerNew { PADDING-TOP: 15px } .nbApiH1 { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: = 0px; FONT-FAMILY: Arial, Helvetica, sans-serif; LETTER-SPACING: -1px; = FONT-SIZE: 14px; FONT-WEIGHT: bold; PADDING-TOP: 0px } .nbApiH2 { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: = 0px; FONT-FAMILY: Arial, Helvetica, sans-serif; LETTER-SPACING: 0px; = FONT-SIZE: 16px; FONT-WEIGHT: bold; PADDING-TOP: 0px } .nbApiFinePrint { PADDING-BOTTOM: 0px; MARGIN: 5px 0px 0px; PADDING-LEFT: 0px; = PADDING-RIGHT: 0px; LETTER-SPACING: 0px; COLOR: #666666; FONT-SIZE: = 11px; PADDING-TOP: 0px } .nbApiExplain { PADDING-BOTTOM: 0px; MARGIN: 5px 0px 0px; PADDING-LEFT: 0px; = PADDING-RIGHT: 0px; LETTER-SPACING: 0px; COLOR: #666666; FONT-SIZE: = 12px; PADDING-TOP: 0px } .nbApiExplainHilite { PADDING-BOTTOM: 0px; MARGIN: 5px 0px 0px; PADDING-LEFT: 0px; = PADDING-RIGHT: 0px; LETTER-SPACING: 0px; COLOR: #000000; FONT-SIZE: = 12px; FONT-WEIGHT: bold; PADDING-TOP: 0px } .nbApiFoot { PADDING-BOTTOM: 3px; PADDING-LEFT: 15px; PADDING-RIGHT: 15px; COLOR: = #000000; FONT-SIZE: 9pt; PADDING-TOP: 3px } .nbApiClasp { TEXT-ALIGN: left; PADDING-BOTTOM: 1px; PADDING-LEFT: 13px; = PADDING-RIGHT: 13px; PADDING-TOP: 3px } .nbApiClasp A { COLOR: #7aa544; FONT-SIZE: 12px; FONT-WEIGHT: bold } .nbApiClasp A:hover { BORDER-BOTTOM: #7aa544 1px solid; TEXT-DECORATION: none } .nbApiNextbioTagCloud_2 { MARGIN-TOP: 5px; WIDTH: 341px } .nbApiImgc { BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; MARGIN-LEFT: 6px; = BORDER-TOP: medium none; BORDER-RIGHT: medium none } .nbApiImgo { BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; MARGIN-LEFT: 6px; = BORDER-TOP: medium none; BORDER-RIGHT: medium none } .nbApiImgo { BACKGROUND-IMAGE: url(../s/img3/framed/nb_34.png); BORDER-BOTTOM: = medium none; POSITION: relative; BORDER-LEFT: medium none; = BACKGROUND-REPEAT: no-repeat; HEIGHT: 9px; MARGIN-LEFT: 6px; BORDER-TOP: = medium none; BORDER-RIGHT: medium none } .nbApiImgc { BACKGROUND-IMAGE: url(../s/img3/framed/nb_14.png); BORDER-BOTTOM: = medium none; POSITION: relative; BORDER-LEFT: medium none; = BACKGROUND-REPEAT: no-repeat; HEIGHT: 9px; MARGIN-LEFT: 6px; BORDER-TOP: = medium none; BORDER-RIGHT: medium none } .nbApiBeta { BACKGROUND-IMAGE: url(../s/img3/framed/nb_06.png); POSITION: relative; = BACKGROUND-REPEAT: no-repeat; MARGIN-BOTTOM: 8px; HEIGHT: 18px; = MARGIN-LEFT: 10px } .nbApiBox { MARGIN-LEFT: 10px } .nbApiBoxTop { BACKGROUND-IMAGE: url(../s/img3/framed/nb_10.png); BACKGROUND-REPEAT: = no-repeat; HEIGHT: 18px; OVERFLOW: hidden } .nbApiBoxBody { BACKGROUND-IMAGE: url(../s/img3/framed/nb_18.png); PADDING-BOTTOM: 1px; = BACKGROUND-REPEAT: repeat-y; BACKGROUND-POSITION: left 50% } .nbApiEmphO { BACKGROUND-IMAGE: url(../s/img3/framed/nb_34.png); PADDING-RIGHT: 20px; = BACKGROUND-REPEAT: no-repeat; BACKGROUND-POSITION: right 50%; FONT-SIZE: = 15px } .nbApiEmphC { BACKGROUND-IMAGE: url(../s/img3/framed/nb_14.png); PADDING-RIGHT: 20px; = BACKGROUND-REPEAT: no-repeat; BACKGROUND-POSITION: right 50%; FONT-SIZE: = 15px } .nbApiHead { PADDING-BOTTOM: 3px; PADDING-LEFT: 13px; PADDING-RIGHT: 13px; COLOR: = #7aa544; FONT-SIZE: 12px; FONT-WEIGHT: bold; PADDING-TOP: 0px } .nbApiFrameTop { BACKGROUND-IMAGE: url(../s/img3/framed/nb_19.png); PADDING-BOTTOM: 0px; = MARGIN: 0px 13px; PADDING-LEFT: 4px; WIDTH: 305px; PADDING-RIGHT: 4px; = BACKGROUND-REPEAT: no-repeat; FONT-FAMILY: = arial,verdana,helvetica,sans-serif; HEIGHT: 17px; FONT-SIZE: 11px; = PADDING-TOP: 4px } .nbApiFrame { BACKGROUND-IMAGE: url(../s/img3/framed/nb_25.png); PADDING-BOTTOM: 0px; = MARGIN: 0px 13px; PADDING-LEFT: 5px; WIDTH: 305px; PADDING-RIGHT: 5px; = BACKGROUND-REPEAT: repeat-y; PADDING-TOP: 0px } .nbApiFrameBottom { BACKGROUND-IMAGE: url(../s/img3/framed/nb_27.png); TEXT-ALIGN: right; = PADDING-BOTTOM: 0px; MARGIN: 0px 13px 10px; PADDING-LEFT: 5px; WIDTH: = 305px; PADDING-RIGHT: 15px; BACKGROUND-REPEAT: no-repeat; HEIGHT: 20px; = COLOR: #0000ff; FONT-SIZE: 11px; PADDING-TOP: 0px } .nbApiDivider { BACKGROUND-IMAGE: url(../s/img3/framed/nb_33.png); MARGIN: 6px 0px 6px = 1px; WIDTH: 329px; BACKGROUND-REPEAT: no-repeat; HEIGHT: 2px; OVERFLOW: = hidden } .nbApiBoxBottom { BACKGROUND-IMAGE: url(../s/img3/framed/nb_38.png); BACKGROUND-REPEAT: = no-repeat } .nbApiTagCloudActiveImage { BACKGROUND-IMAGE: url(../s/img3/framed/icon_arrow_active.gif); = PADDING-LEFT: 8px; BACKGROUND-REPEAT: no-repeat; BACKGROUND-POSITION: = left 50%; MARGIN-LEFT: 10px } .nbApiTagCloudMoreLink { PADDING-RIGHT: 10px } .nbApiDefaultImg { BACKGROUND-IMAGE: url(../s/img3/icons/ico.gif); WIDTH: 1px; = PADDING-RIGHT: 20px; BACKGROUND-REPEAT: no-repeat; FONT-SIZE: 16px } .nbApiGeneImg { BACKGROUND-IMAGE: url(../s/img3/icons/gene.png); WIDTH: 1px; = PADDING-RIGHT: 20px; BACKGROUND-REPEAT: no-repeat; FONT-SIZE: 16px } .nbApiTissueImg { BACKGROUND-IMAGE: url(../s/img3/icons/tissue.png); WIDTH: 1px; = PADDING-RIGHT: 20px; BACKGROUND-REPEAT: no-repeat; FONT-SIZE: 16px } .nbApiTreatmentImg { BACKGROUND-IMAGE: url(../s/img3/icons/treatment.png); WIDTH: 1px; = PADDING-RIGHT: 20px; BACKGROUND-REPEAT: no-repeat; FONT-SIZE: 16px } .nbApiDiseaseImg { BACKGROUND-IMAGE: url(../s/img3/icons/disease.png); WIDTH: 1px; = PADDING-RIGHT: 20px; BACKGROUND-REPEAT: no-repeat; FONT-SIZE: 16px } .nbApiBiosetImg { BACKGROUND-IMAGE: url(../s/img3/icons/bioset.png); WIDTH: 1px; = PADDING-RIGHT: 20px; BACKGROUND-REPEAT: no-repeat; FONT-SIZE: 16px } .nbApiBiogroupImg { BACKGROUND-IMAGE: url(../s/img3/icons/biogroup.png); WIDTH: 1px; = PADDING-RIGHT: 20px; BACKGROUND-REPEAT: no-repeat; FONT-SIZE: 16px } .nbApiNewsImg { BACKGROUND-IMAGE: url(../s/img3/icons/news.png); WIDTH: 1px; = PADDING-RIGHT: 20px; BACKGROUND-REPEAT: no-repeat; FONT-SIZE: 16px } .nbApiAuthorImg { BACKGROUND-IMAGE: url(../s/img3/icons/author.png); WIDTH: 1px; = PADDING-RIGHT: 20px; BACKGROUND-REPEAT: no-repeat; FONT-SIZE: 16px } .nbApiArticleImg { BACKGROUND-IMAGE: url(../s/img3/icons/article.png); WIDTH: 1px; = PADDING-RIGHT: 20px; BACKGROUND-REPEAT: no-repeat; FONT-SIZE: 16px } .nbApiClinicTrialImg { BACKGROUND-IMAGE: url(../s/img3/icons/clinicTrial.png); WIDTH: 1px; = PADDING-RIGHT: 20px; BACKGROUND-REPEAT: no-repeat; FONT-SIZE: 16px } .nbApiStudyImg { BACKGROUND-IMAGE: url(../s/img3/icons/study.png); WIDTH: 1px; = PADDING-RIGHT: 20px; BACKGROUND-REPEAT: no-repeat; FONT-SIZE: 16px } .nbApiSnpImg { BACKGROUND-IMAGE: url(../s/img3/icons/snp.png); WIDTH: 1px; = PADDING-RIGHT: 20px; BACKGROUND-REPEAT: no-repeat; FONT-SIZE: 16px } .nbApiOrganismImg { BACKGROUND-IMAGE: url(../s/img3/icons/organism.png); WIDTH: 1px; = PADDING-RIGHT: 20px; BACKGROUND-REPEAT: no-repeat; FONT-SIZE: 16px } .nbApiProfileImg { BACKGROUND-IMAGE: url(../s/img3/icons/profile.png); WIDTH: 1px; = PADDING-RIGHT: 20px; BACKGROUND-REPEAT: no-repeat; FONT-SIZE: 16px } .nbApiVendorHomeImg { BACKGROUND-IMAGE: url(../s/img3/icons/icon-vendorhome.gif); WIDTH: 1px; = PADDING-RIGHT: 20px; BACKGROUND-REPEAT: no-repeat; FONT-SIZE: 16px } .nbApiHelpBackground { Z-INDEX: 9999; POSITION: absolute; FILTER: alpha(opacity=3D40); = BACKGROUND-COLOR: #666666; TOP: 0px; LEFT: 0px; opacity: 0.4 } .nbApiPopupBox { Z-INDEX: 10000; BORDER-BOTTOM: #303030 2px solid; POSITION: absolute; = BORDER-LEFT: #303030 2px solid; PADDING-BOTTOM: 2px; PADDING-LEFT: 2px; = WIDTH: 450px; PADDING-RIGHT: 2px; DISPLAY: none; BACKGROUND: #ffffff; = BORDER-TOP: #303030 2px solid; BORDER-RIGHT: #303030 2px solid; = PADDING-TOP: 2px } .nbApiPopupText { PADDING-BOTTOM: 7px; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; = FONT-FAMILY: arial, verdana, helvetica, sans-serif; COLOR: #000000; = FONT-SIZE: 10pt; FONT-WEIGHT: normal; PADDING-TOP: 3px } .nbApiPopupTitle { FONT-FAMILY: arial, verdana, helvetica, sans-serif; COLOR: #000000; = FONT-SIZE: 18px; FONT-WEIGHT: bold } .nbApiCloseBox { BACKGROUND-IMAGE: url(../s/images2/common/delete.png); WIDTH: 16px; = BACKGROUND-REPEAT: no-repeat; FONT-SIZE: 16px } .nbApiNextbioLogoImg { BACKGROUND-IMAGE: url(../s/img3/nextbio_tiny.png); WIDTH: 1px; = PADDING-RIGHT: 95px; BACKGROUND-REPEAT: no-repeat; FONT-SIZE: 9px } .nbApiPoweredBy { LETTER-SPACING: 0px; COLOR: #8d9c95; FONT-SIZE: 11px; FONT-WEIGHT: = bold; PADDING-TOP: 5px } .nbApiSubsetIcon { BACKGROUND-IMAGE: url(../s/img3/icons/subset.png); WIDTH: 16px; = BACKGROUND-REPEAT: no-repeat; HEIGHT: 16px; OVERFLOW: hidden; CURSOR: = pointer } .nbApiHighlight { BORDER-BOTTOM: blue 1px dashed; CURSOR: pointer } SPAN.nbApiHighlight:hover { BACKGROUND: #c0c0ff } SPAN.nbApiHighlightMo { BACKGROUND: #c0c0ff } .nbApiTagCloudGroup .nbApiHighlight { BORDER-BOTTOM: medium none } .nbApiExPopup { Z-INDEX: 1000; POSITION: absolute; TEXT-ALIGN: left; WIDTH: 508px; = DISPLAY: none; FONT-FAMILY: Arial, Helvetica, Geneva, sans-serif; = BACKGROUND: url(../s/img3/framed/nextbio_popup.png) no-repeat; HEIGHT: = 401px; FONT-SIZE: 12px } .nbApiPopupClear { WIDTH: 100%; HEIGHT: 0px; CLEAR: both; FONT-SIZE: 0px; OVERFLOW: hidden } .nbApiExPopupInner { PADDING-BOTTOM: 17px; PADDING-LEFT: 4px; PADDING-RIGHT: 10px; = PADDING-TOP: 8px } .nbApiExPopupContainer { POSITION: relative; BORDER-LEFT: #b7b7b7 1px solid; BACKGROUND: #fff; = HEIGHT: 376px; BORDER-RIGHT: #b7b7b7 1px solid } .nbApiExPopupTitle { PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; PADDING-LEFT: 10px; = PADDING-RIGHT: 10px; HEIGHT: 28px; COLOR: #2f2f2f; OVERFLOW: hidden; = PADDING-TOP: 0px } .nbApiExPopupTitle STRONG { PADDING-RIGHT: 5px; COLOR: #ee3024; FONT-SIZE: 17px } .nbApiExPopupClose { Z-INDEX: 1001; POSITION: absolute; WIDTH: 15px; BACKGROUND: = url(../s/img3/framed/nextbio_popup.png) #878585 no-repeat -4px -8px; = HEIGHT: 15px; OVERFLOW: hidden; TOP: 10px; CURSOR: pointer; RIGHT: 17px } .nbApiExPopup A { COLOR: #0f6786; TEXT-DECORATION: none } .nbApiExPopup A:hover { COLOR: #0f6786; TEXT-DECORATION: none } .nbApiExPopupReport { PADDING-BOTTOM: 0px; LINE-HEIGHT: 12px; FONT-STYLE: italic; MARGIN: 0px = 0px 5px; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; HEIGHT: 16px; = FONT-SIZE: 11px; OVERFLOW: hidden; PADDING-TOP: 0px } .nbApiExPopupDisableHl { PADDING-BOTTOM: 0px; LINE-HEIGHT: 12px; FONT-STYLE: italic; MARGIN: 0px = 0px 5px; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; HEIGHT: 16px; = FONT-SIZE: 11px; OVERFLOW: hidden; PADDING-TOP: 0px } .nbApiExPopupReport A { COLOR: #6c6c6c !important; TEXT-DECORATION: underline !important } .nbApiExPopupReport A:hover { COLOR: #6c6c6c !important; TEXT-DECORATION: underline !important } .nbApiExPopupDisableHl A { COLOR: #6c6c6c !important; TEXT-DECORATION: underline !important } .nbApiExPopupDisableHl A:hover { COLOR: #6c6c6c !important; TEXT-DECORATION: underline !important } .nbApiExPopupTabs { BORDER-BOTTOM: #ccc 1px solid; PADDING-BOTTOM: 0px; PADDING-LEFT: 10px; = PADDING-RIGHT: 10px; BACKGROUND: #fff; FONT-SIZE: 11px; PADDING-TOP: 0px } .nbApiExPopupTabs UL { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; WIDTH: 100%; = PADDING-RIGHT: 0px; HEIGHT: 38px; PADDING-TOP: 0px } .nbApiExPopupTabs UL LI { PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px -1px 0px 0px; = PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FLOAT: left; CURSOR: pointer; = PADDING-TOP: 0px } .nbApiExPopupTabs UL LI A { PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 16px; = BACKGROUND: url(../s/img3/framed/nextbio_popup.png) no-repeat 100% = -412px; FLOAT: left; HEIGHT: 38px; OVERFLOW: hidden; CURSOR: pointer; = PADDING-TOP: 0px } .nbApiExPopupTabs UL LI A { OUTLINE-STYLE: none; OUTLINE-COLOR: invert; OUTLINE-WIDTH: medium; = COLOR: #0f6786; TEXT-DECORATION: none } .nbApiExPopupTabs UL LI A:hover { OUTLINE-STYLE: none; OUTLINE-COLOR: invert; OUTLINE-WIDTH: medium; = COLOR: #0f6786; TEXT-DECORATION: none } .nbApiExPopupTabs UL LI A SPAN { PADDING-BOTTOM: 0px; PADDING-LEFT: 16px; PADDING-RIGHT: 0px; = BACKGROUND: url(../s/img3/framed/nextbio_popup.png) no-repeat 0px = -412px; FLOAT: left; HEIGHT: 38px; CURSOR: pointer; PADDING-TOP: 6px } .nbApiExPopupTabs UL LI A.selected { POSITION: relative; MARGIN: 0px 0px -1px; BACKGROUND: = url(../s/img3/framed/nextbio_popup.png) #e1e1e1 no-repeat 100% -450px; = HEIGHT: 39px } .nbApiExPopupTabs UL LI A.selected { COLOR: #000 } .nbApiExPopupTabs UL LI A.selected:hover { COLOR: #000 } .nbApiExPopupTabs UL LI A.selected SPAN { BACKGROUND: url(../s/img3/framed/nextbio_popup.png) no-repeat 0px = -450px; HEIGHT: 39px } .nbApiExPopupContentWrap { BACKGROUND: #e1e1e1; OVERFLOW: hidden } .nbApiExPopupContent { PADDING-BOTTOM: 0px; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; = BACKGROUND: #e1e1e1; OVERFLOW: hidden; PADDING-TOP: 0px } .nbApiExPopupMatchesTitle { LINE-HEIGHT: 35px; HEIGHT: 30px; COLOR: #000; FONT-SIZE: 11px; = OVERFLOW: hidden } .nbApiExPopupSubTabs { FONT-SIZE: 11px } .nbApiExPopupSubTabs UL { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: = 0px; HEIGHT: 23px; PADDING-TOP: 0px } .nbApiExPopupSubTabs UL LI { PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px -1px 0px 0px; = PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FLOAT: left; CURSOR: pointer; = PADDING-TOP: 0px } .nbApiExPopupSubTabs UL LI A { PADDING-BOTTOM: 0px; OUTLINE-STYLE: none; OUTLINE-COLOR: invert; = PADDING-LEFT: 0px; OUTLINE-WIDTH: medium; PADDING-RIGHT: 12px; FLOAT: = left; HEIGHT: 23px; OVERFLOW: hidden; CURSOR: pointer; PADDING-TOP: 0px } .nbApiExPopupSubTabs UL LI A SPAN { PADDING-BOTTOM: 0px; PADDING-LEFT: 12px; PADDING-RIGHT: 0px; FLOAT: = left; HEIGHT: 23px; CURSOR: pointer; PADDING-TOP: 6px } .nbApiExPopupSubTabs UL LI A.selected { POSITION: relative; MARGIN: 0px 0px -1px; BACKGROUND: = url(../s/img3/framed/nextbio_popup.png) #e1e1e1 no-repeat 100% -489px; = HEIGHT: 24px } .nbApiExPopupSubTabs UL LI A.selected { COLOR: #000 } .nbApiExPopupSubTabs UL LI A.selected:hover { COLOR: #000 } .nbApiExPopupSubTabs UL LI A.selected SPAN { BACKGROUND: url(../s/img3/framed/nextbio_popup.png) no-repeat 0px = -489px; HEIGHT: 24px } .nbApiExPopupRelatedText { BORDER-LEFT: #ccc 1px solid; BACKGROUND: #fff; HEIGHT: 181px; OVERFLOW: = auto; BORDER-RIGHT: #ccc 1px solid } .nbApiExPopupSummaryText { BORDER-LEFT: #ccc 1px solid; BACKGROUND: #fff; HEIGHT: 224px; OVERFLOW: = auto; BORDER-RIGHT: #ccc 1px solid } .nbApiExPopupTextWrap { BORDER-BOTTOM: #ccc 1px solid; MARGIN: 10px 0px 0px; BORDER-TOP: #ccc = 1px solid } .nbApiExPopupRelatedTextWrap { BORDER-BOTTOM: #ccc 1px solid; BORDER-TOP: #ccc 1px solid } .nbApiExPopupExperimText { BORDER-LEFT: #ccc 1px solid; PADDING-BOTTOM: 0px; PADDING-LEFT: 10px; = PADDING-RIGHT: 0px; BACKGROUND: #fff; HEIGHT: 181px; BORDER-RIGHT: #ccc = 1px solid; PADDING-TOP: 0px } .nbApiExPopup P { LINE-HEIGHT: normal; MARGIN: 0px } .nbApiExPopupHR { BORDER-BOTTOM: #ccc 1px solid; MARGIN: 0px 0px 10px; HEIGHT: 10px; = FONT-SIZE: 0px; OVERFLOW: hidden } .nbApiExPopupNav { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: = 0px; FLOAT: left; HEIGHT: 44px; PADDING-TOP: 0px } .nbApiExPopupNav LI { PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: = 0px; PADDING-RIGHT: 0px; FLOAT: left; PADDING-TOP: 0px } .nbApiExPopupNav LI A { BACKGROUND-IMAGE: url(../s/img3/framed/nextbio_popup.png); POSITION: = relative; BACKGROUND-COLOR: #cbcbcb; TEXT-INDENT: -9999em; = OUTLINE-STYLE: none; OUTLINE-COLOR: invert; OUTLINE-WIDTH: medium; = WIDTH: 44px; FLOAT: left; HEIGHT: 44px } .nbApiExPopupNav LI A SPAN { Z-INDEX: 1003; BORDER-BOTTOM: #cdcdcd 1px solid; POSITION: absolute; = BORDER-LEFT: #cdcdcd 1px solid; PADDING-BOTTOM: 5px; TEXT-INDENT: 0px; = PADDING-LEFT: 5px; BOTTOM: 43px; PADDING-RIGHT: 5px; DISPLAY: none; = WHITE-SPACE: nowrap; BACKGROUND: #fffca8; COLOR: #666543; FONT-SIZE: = 10px; BORDER-TOP: #cdcdcd 1px solid; CURSOR: default; BORDER-RIGHT: = #cdcdcd 1px solid; PADDING-TOP: 5px; LEFT: 0px } .nbApiExPopupNav LI A:hover SPAN { DISPLAY: block } .nbApiExPopupNav LI A SPAN STRONG { DISPLAY: block; FONT-SIZE: 11px } .nbApiExPopupNav LI A SPAN EM { POSITION: absolute; MARGIN: 0px 0px 0px -6px; WIDTH: 11px; BOTTOM: = -6px; DISPLAY: block; BACKGROUND: = url(../s/img3/framed/nextbio_popup.png) #fffca8 no-repeat -169px -46px; = HEIGHT: 6px; OVERFLOW: hidden; LEFT: 50% } .nbApiExPopupNav LI A.nbApiExPopupNav1 { BACKGROUND-POSITION: -4px -29px } .nbApiExPopupNav LI A.nbApiExPopupNav2 { BACKGROUND-POSITION: -48px -29px } .nbApiExPopupNav LI A.nbApiExPopupNav3 { WIDTH: 45px; BACKGROUND-POSITION: -92px -29px } .nbApiExPopupNav LI A.nbApiExPopupNav1 SPAN { LEFT: -28px } .nbApiExPopupNav LI A.nbApiExPopupNav2 SPAN { LEFT: -18px } .nbApiExPopupNav LI A.nbApiExPopupNav3 SPAN { LEFT: -14px } .nbApiExPopupStyledButton { PADDING-BOTTOM: 0px; LINE-HEIGHT: 22px; MARGIN: 8px 0px 4px; = PADDING-LEFT: 0px; PADDING-RIGHT: 11px; BACKGROUND: = url(../s/img3/framed/nextbio_popup.png) #dfdfdf no-repeat 100% -513px; = FLOAT: right; HEIGHT: 24px; FONT-SIZE: 10px; CURSOR: pointer; = PADDING-TOP: 0px } .nbApiExPopupStyledButton { OUTLINE-STYLE: none; OUTLINE-COLOR: invert; OUTLINE-WIDTH: medium; = COLOR: #0f6786; TEXT-DECORATION: none } .nbApiExPopupStyledButton:hover { OUTLINE-STYLE: none; OUTLINE-COLOR: invert; OUTLINE-WIDTH: medium; = COLOR: #0f6786; TEXT-DECORATION: none } .nbApiExPopupStyledButton SPAN { PADDING-BOTTOM: 0px; PADDING-LEFT: 18px; PADDING-RIGHT: 0px; = BACKGROUND: url(../s/img3/framed/nextbio_popup.png) no-repeat 0px = -513px; FLOAT: left; HEIGHT: 24px; PADDING-TOP: 0px } .nbApiExPopupFooter { PADDING-BOTTOM: 0px; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; = BACKGROUND: #e1e1e1; HEIGHT: 52px; TOP: 324px; PADDING-TOP: 0px; LEFT: = 0px } .nbApiExPopupButtons { PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 10px; HEIGHT: = 52px; OVERFLOW: hidden; PADDING-TOP: 0px } .nbApiExPopupCopyright { POSITION: absolute; BOTTOM: 21px; FONT-SIZE: 11px; RIGHT: 22px } .nbApiExPopupCopyright { COLOR: #7a7a7a } .nbApiExPopupCopyright A { COLOR: #7a7a7a } .nbApiExPopupCopyright A { TEXT-DECORATION: none } .nbApiExPopupCopyright A:hover { COLOR: red; TEXT-DECORATION: none } .nbApiExPopupArticles { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 10px; PADDING-RIGHT: = 10px; PADDING-TOP: 0px } .nbApiExPopupArticles LI { BORDER-BOTTOM: #ccc 1px dotted; PADDING-BOTTOM: 8px; LIST-STYLE-TYPE: = none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: = 8px } .nbApiExPopupArticles LI H5 { PADDING-BOTTOM: 0px; MARGIN: 0px 0px 3px; PADDING-LEFT: 0px; = PADDING-RIGHT: 0px; FONT-SIZE: 12px; FONT-WEIGHT: 400; PADDING-TOP: 0px } .nbApiExPopupArticles LI P { MARGIN: 0px; FONT-SIZE: 11px } .nbApiExPopupArticles LI P A { COLOR: #4e52ef } .nbApiExPopupArticles LI P A:hover { COLOR: #4e52ef } .nbApiExPopupArticles LI CITE { FONT-STYLE: normal; MARGIN: 0px; DISPLAY: block; COLOR: #54b553; = FONT-SIZE: 11px; FONT-WEIGHT: 700 } .nbApiExPopupArticles LI CITE A { COLOR: #54b553 } .nbApiExPopupArticles LI CITE A:hover { COLOR: #54b553 } .nbApiExPopupArticles LI CITE SMALL { COLOR: #000; FONT-WEIGHT: 400 } .nbApiExPopupInfoList { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: = 0px; FONT-SIZE: 11px; PADDING-TOP: 0px } .nbApiExPopupInfoList DT { MARGIN: 0px -70px 2px 0px; WIDTH: 70px; FLOAT: left; COLOR: #7f7f7f; = FONT-WEIGHT: 400 } .nbApiExPopupInfoList DD { MARGIN: 0px 0px 1px 70px } .nbApiExPopupInfoList A { COLOR: #4e52ef } .nbApiExPopupInfoList A:hover { COLOR: #4e52ef } .nbApiExPopupExperimTable { TEXT-ALIGN: left; WIDTH: 100%; FONT-SIZE: 11px } .nbApiExPopupExperimTable TH { BORDER-BOTTOM: #ccc 2px solid; FONT-STYLE: italic; HEIGHT: 22px; COLOR: = #666; VERTICAL-ALIGN: middle; FONT-WEIGHT: 400 } .nbApiExPopupExperimTable TD { BORDER-BOTTOM: #e5e5e5 1px solid; PADDING-BOTTOM: 3px; PADDING-LEFT: = 0px; PADDING-RIGHT: 0px; PADDING-TOP: 3px } .nbApiExPopupExperimTable TD A { COLOR: #4e52ef } .nbApiExPopupExperimTable TD A:hover { COLOR: #4e52ef } .nbApiExPopupExperimTable .First { WIDTH: 314px } .nbApiExPopupExperimTextIn { HEIGHT: 159px; OVERFLOW: auto } .nbApiExPopupViewAll { PADDING-BOTTOM: 12px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-SIZE: = 10px; PADDING-TOP: 12px } .nbApiExPopupViewAll A { PADDING-BOTTOM: 0px; PADDING-LEFT: 10px; PADDING-RIGHT: 0px; = BACKGROUND: url(../s/img3/framed/nextbio_popup.png) no-repeat -4px = -76px; PADDING-TOP: 0px } .nbApiExPopupClinicalTrials { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 10px; PADDING-RIGHT: = 10px; PADDING-TOP: 0px } .nbApiExPopupClinicalTrials LI { BORDER-BOTTOM: #ccc 1px dotted; PADDING-BOTTOM: 8px; LIST-STYLE-TYPE: = none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: = 8px } .nbApiExPopupClinicalTrials LI H5 { PADDING-BOTTOM: 0px; MARGIN: 0px 0px 3px; PADDING-LEFT: 0px; = PADDING-RIGHT: 0px; FONT-SIZE: 12px; FONT-WEIGHT: 400; PADDING-TOP: 0px } .nbApiExPopupClinicalTrials LI H5 SMALL { DISPLAY: block; COLOR: #666 } .nbApiExPopupClinicalTrials .ItemTable { MARGIN: 0px; WIDTH: 100%; COLOR: #4c4c4c; FONT-SIZE: 12px } .nbApiExPopupClinicalTrials .ItemTable TD { BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: = 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 10px; FONT-SIZE: 11px; = VERTICAL-ALIGN: top; BORDER-TOP: medium none; FONT-WEIGHT: 400; = BORDER-RIGHT: medium none; PADDING-TOP: 2px } .nbApiExPopupClinicalTrials .ItemTable TD.Name { COLOR: #7f7f7f } .nbApiExPopupClinicalTrials .ItemTable TD.Sponsor { COLOR: #98d398 } .nbApiExPopupGreen { COLOR: #00b139 !important } .nbApiExPopupGreen:hover { COLOR: #00b139 !important } .nbApiExPopupRed { COLOR: red !important } .nbApiExPopupRed:hover { COLOR: red !important } .nbApiExPopupLegendIcon { POSITION: relative; MARGIN: -3px 2px; WIDTH: 15px; DISPLAY: = inline-block; BACKGROUND: url(../s/img3/framed/nextbio_popup.png) #ccc = no-repeat -19px -8px; HEIGHT: 15px; OVERFLOW: hidden; CURSOR: pointer } .nbApiExPopupLegend { Z-INDEX: 1002; POSITION: absolute; BORDER-LEFT: #ccc 1px solid; WIDTH: = 319px; DISPLAY: none; BACKGROUND: #fafafa; HEIGHT: 182px; FONT-SIZE: = 11px; TOP: 141px; RIGHT: 11px } .nbApiExPopupLegendInner { PADDING-BOTTOM: 8px; PADDING-LEFT: 13px; PADDING-RIGHT: 13px; = BORDER-TOP: #ccc 1px solid; PADDING-TOP: 8px } .nbApiExPopupLegendClose { POSITION: absolute; COLOR: #f2645b; TOP: 8px; CURSOR: pointer; RIGHT: = 10px } .nbApiExPopupLegend H4 { PADDING-BOTTOM: 0px; MARGIN: 0px 0px 10px; PADDING-LEFT: 0px; = PADDING-RIGHT: 0px; COLOR: #000; FONT-SIZE: 11px; FONT-WEIGHT: 400; = PADDING-TOP: 0px } .nbApiExPopupLegendList { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: = 0px; PADDING-TOP: 0px } .nbApiExPopupLegendListLeft { MARGIN: 0px -150px 0px 0px; WIDTH: 150px; FLOAT: left } .nbApiExPopupLegendListRight { MARGIN: 0px 0px 0px 150px } .nbApiExPopupLegendList LI { LIST-STYLE-TYPE: none; MARGIN: 0px 0px 4px } .nbApiExPopupLegendList LI IMG { MARGIN: 0px 3px 0px 0px; VERTICAL-ALIGN: middle } * HTML .nbApiExPopup { ; FILTER: expression((runtimeStyle.filter=3D=3D'') ? = runtimeStyle.filter=3D'progid:DXImageTransform.Microsoft.AlphaImageLoader= (src=3D'+currentStyle.backgroundImage.split('\"')[1]+',sizingMethod=3Dcro= p)':runtimeStyle.filter,runtimeStyle.backgroundImage=3D'none') } .nbApiExPopupContentWrap { OVERFLOW: hidden } .nbApiExPopupContent { OVERFLOW: hidden } .nbApiExPopupTabs { HEIGHT: 25px; OVERFLOW: hidden } .nbApiExPopupTabs { PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px -1px 0px 0px; = PADDING-LEFT: 10px; PADDING-RIGHT: 0px; CURSOR: pointer; PADDING-TOP: = 0px } .nbApiExPopupTabs A { PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 10px; = BACKGROUND: url(../s/img3/framed/nextbio_popup.png) no-repeat 100% = -412px; FLOAT: left; HEIGHT: 25px; OVERFLOW: hidden; CURSOR: pointer; = PADDING-TOP: 0px } .nbApiExPopupTabs A { OUTLINE-STYLE: none; OUTLINE-COLOR: invert; OUTLINE-WIDTH: medium; = COLOR: #0f6786; TEXT-DECORATION: none } .nbApiExPopupTabs A:hover { OUTLINE-STYLE: none; OUTLINE-COLOR: invert; OUTLINE-WIDTH: medium; = COLOR: #0f6786; TEXT-DECORATION: none } .nbApiExPopupTabs A SPAN { PADDING-BOTTOM: 0px; PADDING-LEFT: 10px; PADDING-RIGHT: 0px; = BACKGROUND: url(../s/img3/framed/nextbio_popup.png) no-repeat 0px = -412px; FLOAT: left; HEIGHT: 25px; CURSOR: pointer; PADDING-TOP: 6px } .nbApiExPopupTabs A.nbApiExSelectedTab { POSITION: relative; MARGIN: 0px 0px -1px; BACKGROUND: = url(../s/img3/framed/nextbio_popup.png) #e1e1e1 no-repeat 100% -450px; = HEIGHT: 26px } .nbApiExPopupTabs A.nbApiExSelectedTab { COLOR: #000 } .nbApiExPopupTabs A.nbApiExSelectedTab SPAN { BACKGROUND: url(../s/img3/framed/nextbio_popup.png) no-repeat 0px = -450px; HEIGHT: 26px } .nbApiExPopupSubTabs { BACKGROUND: #e1e1e1; HEIGHT: 23px } .nbApiExPopupSubTabs { PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px -1px 0px 0px; = PADDING-LEFT: 10px; PADDING-RIGHT: 0px; FLOAT: left; CURSOR: pointer; = PADDING-TOP: 0px } .nbApiExPopupSubTabs A { PADDING-BOTTOM: 0px; OUTLINE-STYLE: none; OUTLINE-COLOR: invert; = PADDING-LEFT: 0px; OUTLINE-WIDTH: medium; PADDING-RIGHT: 12px; FLOAT: = left; HEIGHT: 23px; OVERFLOW: hidden; CURSOR: pointer; PADDING-TOP: 0px } .nbApiExPopupSubTabs A SPAN { PADDING-BOTTOM: 0px; PADDING-LEFT: 12px; PADDING-RIGHT: 0px; FLOAT: = left; HEIGHT: 23px; CURSOR: pointer; PADDING-TOP: 6px } .nbApiExPopupSubTabs A.nbApiExSelectedSubTab { POSITION: relative; MARGIN: 0px 0px -1px; BACKGROUND: = url(../s/img3/framed/nextbio_popup.png) #e1e1e1 no-repeat 100% -489px; = HEIGHT: 24px } .nbApiExPopupSubTabs A.nbApiExSelectedSubTab { COLOR: #000 } .nbApiExPopupSubTabs A.nbApiExSelectedSubTab SPAN { BACKGROUND: url(../s/img3/framed/nextbio_popup.png) no-repeat 0px = -489px; HEIGHT: 24px } .nbApiExPopupContent { CLEAR: both } .nbApiExPopupTextCont { POSITION: relative; WIDTH: 460px; BACKGROUND: #ffffff; HEIGHT: 212px; = CLEAR: both; OVERFLOW: auto } .nbApiExPopupText { POSITION: relative; PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; = PADDING-RIGHT: 5px; BACKGROUND: #ffffff; CLEAR: both; PADDING-TOP: 5px } .nbApiExPopupTextNoSubTabs { POSITION: relative; PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; = PADDING-RIGHT: 5px; BACKGROUND: #ffffff; CLEAR: both; PADDING-TOP: 5px } .nbApiExPopupTabs A.nbApiExTab { BORDER-BOTTOM: #cccccc 1px solid } .nbApiExPopupTextInner { PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = PADDING-TOP: 0px } .nbApiExPopupTextInner DIV { POSITION: relative } .nbApiExPopupTextInner IMG { BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; BORDER-TOP: = medium none; BORDER-RIGHT: medium none } .nbApiExPopupInfoList DT { POSITION: relative; MARGIN: 0px -170px 2px 0px; WIDTH: 170px; FLOAT: = left; COLOR: #7f7f7f; FONT-WEIGHT: 400 } .nbApiExPopupInfoList DD { MARGIN: 0px 0px 1px 170px } .nbApiExPopupInfoList { FONT-SIZE: 12px } .nbApiExPopupTextCont P { FONT-SIZE: 12px } .nbApiResultsList { PADDING-BOTTOM: 0px; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; COLOR: = #000000; FONT-SIZE: 10px; PADDING-TOP: 0px } .nbApiResultsList .nbApiResult .nbApiAuthors A { COLOR: #0076c0 } .nbApiExPopupFooter { PADDING-BOTTOM: 0px; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; = BACKGROUND: #e1e1e1; HEIGHT: auto; TOP: 324px; PADDING-TOP: 0px; LEFT: = 0px } .nbApiExPopupDetailedButton { BACKGROUND: #e1e1e1; HEIGHT: 36px; PADDING-TOP: 5px } .nbApiExPopupCopyright { POSITION: absolute; BOTTOM: 17px; FONT-SIZE: 11px; RIGHT: 25px } .nbApiExPopupCopyright SPAN.nbApiExPopupNBLogo { WIDTH: 78px; BACKGROUND: url(../s/img3/framed/nextbio_logo.png) = no-repeat 0px 50%; HEIGHT: 14px; OVERFLOW: hidden } .nbApiExPopupCopyrightTop { BOTTOM: auto; TOP: 40px; RIGHT: 15px } .nbApiExPopupCopyrightTop SPAN.nbApiExPopupNBLogo { WIDTH: 78px; BACKGROUND: url(../s/img3/framed/nextbio_logo_w.png) = no-repeat 0px 50%; HEIGHT: 14px } .nbApiExPopupReport { POSITION: absolute; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: = 0px; BOTTOM: 17px; PADDING-RIGHT: 0px; PADDING-TOP: 0px; LEFT: 20px } .nbApiExPopupDisableHl { POSITION: absolute; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: = 0px; BOTTOM: 37px; PADDING-RIGHT: 0px; PADDING-TOP: 0px; LEFT: 20px } .nbApiExPopupMatchesTitle { POSITION: relative; LINE-HEIGHT: 35px; WIDTH: 100%; WHITE-SPACE: = nowrap; HEIGHT: 30px; COLOR: #000; FONT-SIZE: 12px; OVERFLOW: hidden } .nbApiExPopupContainer { BACKGROUND: #e1e1e1 } .nbApiExPopupTitle { BACKGROUND: #ffffff } .nbApiExPopupBarEditBox { PADDING-BOTTOM: 3px; PADDING-LEFT: 3px; PADDING-RIGHT: 3px; HEIGHT: = 22px; FONT-SIZE: 11px; PADDING-TOP: 3px } .nbApiExPopupButton { PADDING-BOTTOM: 5px; PADDING-LEFT: 0px; PADDING-RIGHT: 5px; BACKGROUND: = url(../s/img3/framed/button-right.png) no-repeat right 50%; HEIGHT: = 24px; FONT-SIZE: 11px; CURSOR: pointer; PADDING-TOP: 5px } A.nbApiExPopupButton { PADDING-BOTTOM: 5px; PADDING-LEFT: 0px; PADDING-RIGHT: 5px; BACKGROUND: = url(../s/img3/framed/button-right.png) no-repeat right 50%; HEIGHT: = 24px; FONT-SIZE: 11px; CURSOR: pointer; PADDING-TOP: 5px } .nbApiExPopupButton { OUTLINE-STYLE: none; OUTLINE-COLOR: invert; OUTLINE-WIDTH: medium; = COLOR: #0f6786; TEXT-DECORATION: none } A.nbApiExPopupButton:hover { OUTLINE-STYLE: none; OUTLINE-COLOR: invert; OUTLINE-WIDTH: medium; = COLOR: #0f6786; TEXT-DECORATION: none } .nbApiExPopupButton SPAN { PADDING-BOTTOM: 5px; PADDING-LEFT: 18px; PADDING-RIGHT: 11px; = BACKGROUND: url(../s/img3/framed/button-left.png) no-repeat left 50%; = HEIGHT: 24px; PADDING-TOP: 5px } .nbApiExPopupDefaultButton { PADDING-BOTTOM: 5px; PADDING-LEFT: 0px; PADDING-RIGHT: 5px; BACKGROUND: = url(../s/img3/framed/button-right.png) no-repeat right 50%; HEIGHT: = 24px; FONT-SIZE: 11px; CURSOR: pointer; PADDING-TOP: 5px } A.nbApiExPopupDefaultButton { PADDING-BOTTOM: 5px; PADDING-LEFT: 0px; PADDING-RIGHT: 5px; BACKGROUND: = url(../s/img3/framed/button-right.png) no-repeat right 50%; HEIGHT: = 24px; FONT-SIZE: 11px; CURSOR: pointer; PADDING-TOP: 5px } .nbApiExPopupDefaultButton { OUTLINE-STYLE: none; OUTLINE-COLOR: invert; OUTLINE-WIDTH: medium; = COLOR: #0f6786; TEXT-DECORATION: none } A.nbApiExPopupDefaultButton:hover { OUTLINE-STYLE: none; OUTLINE-COLOR: invert; OUTLINE-WIDTH: medium; = COLOR: #0f6786; TEXT-DECORATION: none } .nbApiExPopupDefaultButton SPAN { PADDING-BOTTOM: 5px; PADDING-LEFT: 18px; PADDING-RIGHT: 11px; = BACKGROUND: url(../s/img3/framed/button-left.png) no-repeat left 50%; = HEIGHT: 24px; PADDING-TOP: 5px } .nbApiExPopupStyledButton { MARGIN-TOP: 0px } .nbApiExPopupExperimTable { FONT-SIZE: 12px } .nbApiExPopupContent .nbApiTabContent { PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; = PADDING-TOP: 5px } .nbApiExPopupContent .AnnotationTitle { FONT-WEIGHT: bold } .nbApiExPopupContent .SectionText { COLOR: #000000; FONT-SIZE: 9pt; FONT-WEIGHT: normal; PADDING-TOP: 10px } .nbApiExPopupContent TR.AnnotationTitle TD { PADDING-RIGHT: 10px; FONT-SIZE: 9pt } .nbApiExPopupContent TR.AnnotationText TD { PADDING-BOTTOM: 15px; PADDING-RIGHT: 10px; FONT-SIZE: 9pt; = VERTICAL-ALIGN: top; PADDING-TOP: 5px } .nbApiResultsList { COLOR: #000000; FONT-SIZE: 10px } .nbApiResultsList .nbApiResult { FONT-SIZE: 13px } .nbApiResultsList .nbApiResult A { CURSOR: pointer; TEXT-DECORATION: none } .nbApiResultsList A:hover { TEXT-DECORATION: underline } .nbApiResultsList .nbApiResult .nbApiTitle A { COLOR: #0000ff; FONT-SIZE: 13px } .nbApiResultsList DIV.nbApiResult { BORDER-BOTTOM: #ccc 1px solid; PADDING-BOTTOM: 5px; PADDING-TOP: 5px } .nbApiResultsList .nbApiResult .nbApiSubtitle { FONT-SIZE: 11px } .nbApiResultsList .nbApiResult .nbApiAuthors { FONT-SIZE: 12px } .nbApiResultsList .nbApiResult .nbApiAuthors A { COLOR: #0040c0 } .nbApiResultsList .nbApiResult .nbApiSource { COLOR: #009020; FONT-SIZE: 12px } .nbApiMatchingSentences { MARGIN: 10px } .nbApiMatchingSentences LI { MARGIN-BOTTOM: 4px } .nbApiMatchingSentences TD { MARGIN-BOTTOM: 10px; FONT-SIZE: 12px; VERTICAL-ALIGN: top } .nbApiMatchingSentences DIV.nbApiExpand { PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; WIDTH: 11px; PADDING-RIGHT: = 0px; BACKGROUND: url(../s/img3/framed/expand.png) no-repeat 50% top; = HEIGHT: 14px; OVERFLOW: hidden; CURSOR: pointer; PADDING-TOP: 0px } .nbApiMatchingSentences DIV.nbApiCollapse { PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; WIDTH: 11px; PADDING-RIGHT: = 0px; BACKGROUND: url(../s/img3/framed/collapse.png) no-repeat 50% top; = HEIGHT: 14px; OVERFLOW: hidden; CURSOR: pointer; PADDING-TOP: 0px } .nbApiMatchingSentences DIV.nbApiBlackBullet { PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; WIDTH: 11px; PADDING-RIGHT: = 0px; BACKGROUND: url(../s/img3/framed/blackBullet.png) no-repeat 50% = top; HEIGHT: 14px; OVERFLOW: hidden; PADDING-TOP: 0px } .nbApiMatchingSentences .NextbioSentenceHighlight { BACKGROUND-COLOR: #fbfabd } .nbApiExS1 A { PADDING-RIGHT: 10px; FONT-SIZE: 11px !important } .nbApiExS2 A { PADDING-RIGHT: 10px; FONT-SIZE: 12px !important } .nbApiExS3 A { PADDING-RIGHT: 10px; FONT-SIZE: 14px !important } .nbApiExS4 A { PADDING-RIGHT: 10px; FONT-SIZE: 16px !important } .nbApiExS5 A { PADDING-RIGHT: 10px; FONT-SIZE: 19px !important } .nbApiExS6 A { PADDING-RIGHT: 10px; FONT-SIZE: 22px !important } .nbApiExS7 A { PADDING-RIGHT: 10px; FONT-SIZE: 28px !important } P.nbApiPreInfo { COLOR: #6c6c6c; FONT-SIZE: 0.85em } P.nbApiPreInfo IMG { VERTICAL-ALIGN: middle } P.nbApiPreInfo { VERTICAL-ALIGN: bottom } .nbApiResult P.nbApiPreInfo { CLEAR: both } .nbApiResultsList .nbApiResult P { FONT-SIZE: 12px } .nbApiLoading { PADDING-BOTTOM: 20px; PADDING-LEFT: 170px; PADDING-RIGHT: 20px; = BACKGROUND: url(../s/img3//busy.gif) no-repeat 20px 20px; PADDING-TOP: = 20px } .nbApiHeader { PADDING-BOTTOM: 0px; PADDING-LEFT: 12px; WIDTH: 336px; PADDING-RIGHT: = 14px; HEIGHT: 60px; PADDING-TOP: 0px } .nbApiHeaderBack { BACKGROUND-IMAGE: url(../s/img3/framed/nb_header.png); = BACKGROUND-REPEAT: no-repeat } .nbApiHeaderNarrowBack { BACKGROUND-IMAGE: url(../s/img3/framed/nb_header_narrow.png); = BACKGROUND-REPEAT: no-repeat } .nbApiHeaderNewBack { BACKGROUND-IMAGE: url(../s/img3/framed/nb_header_new.png); = BACKGROUND-REPEAT: no-repeat } .nbApiHeaderNewNarrowBack { BACKGROUND-IMAGE: url(../s/img3/framed/nb_header_narrow_new.png); = BACKGROUND-REPEAT: no-repeat } .nbApiContainer { BACKGROUND-IMAGE: url(../s/img3/framed/nb_bg_container.png); = PADDING-BOTTOM: 2px; PADDING-LEFT: 12px; WIDTH: 336px; PADDING-RIGHT: = 14px; BACKGROUND-REPEAT: repeat-y; PADDING-TOP: 10px } .nbApiContainerNarrow { BACKGROUND-IMAGE: url(../s/img3/framed/nb_bg_container_narrow.png); = PADDING-BOTTOM: 2px; PADDING-LEFT: 12px; WIDTH: 188px; PADDING-RIGHT: = 14px; BACKGROUND-REPEAT: repeat-y; PADDING-TOP: 10px } .nbApiBottom { BACKGROUND-IMAGE: url(../s/img3/framed/nb_bottom_grey.png); POSITION: = relative; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; WIDTH: = 336px; PADDING-RIGHT: 0px; BACKGROUND-REPEAT: no-repeat; HEIGHT: 25px; = TOP: 0px; PADDING-TOP: 0px } .nbApiBottomNarrow { BACKGROUND-IMAGE: url(../s/img3/framed/nb_bottom_narrow_grey.png); = POSITION: relative; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; = WIDTH: 208px; PADDING-RIGHT: 0px; BACKGROUND-REPEAT: no-repeat; HEIGHT: = 25px; TOP: 0px; PADDING-TOP: 0px } .TagCloudControlsContainer { DISPLAY: none } .nbApiTagCloudMoreLink { FLOAT: right } .nbApiSpacer { WIDTH: 316px } .TagCloudControlsContainer { WHITE-SPACE: nowrap } ------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://sciencedirect.nextbio.com/e/script/include.nb?type=css&name=tagCloud,elsevier&apiKey=F70C5A70-D194-4150-9F99-C8FC2266B65F .nbApiNormalLink { FONT-FAMILY: 'Arial'; COLOR: #000000; FONT-SIZE: 9pt } .nbApiNormalLink A { FONT-FAMILY: 'Arial'; COLOR: #0000ff; FONT-SIZE: 9pt; CURSOR: pointer; = TEXT-DECORATION: none } .nbApiNormalLink A:hover { TEXT-DECORATION: underline } .nbApiTagCloudHeader { PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; = FONT-FAMILY: arial, verdana, helvetica, sans-serif; COLOR: #000000; = FONT-SIZE: 8pt; VERTICAL-ALIGN: middle; FONT-WEIGHT: bold; PADDING-TOP: = 5px } .nbApiTagCloud A { FONT-FAMILY: 'Arial'; COLOR: #0000ff; CURSOR: pointer; TEXT-DECORATION: = none } .nbApiTagCloud A:hover { TEXT-DECORATION: underline } .nbApiMapHolder { BACKGROUND-COLOR: rgb(229,227,223); MARGIN: 10px 10px 5px; WIDTH: = 715px; HEIGHT: 350px } .nbApiTagCloudGroup { BORDER-BOTTOM: #ccc 1px solid; PADDING-BOTTOM: 4px; MARGIN: 7px 5px 4px } .nbApiTagCloudGroupLast { BORDER-BOTTOM: medium none; PADDING-BOTTOM: 0px } .nbApiTagCloudGroupHead { TEXT-TRANSFORM: capitalize; COLOR: #666; FONT-SIZE: 14px; FONT-WEIGHT: = bold } .nbApiTagCloudGroupCount { COLOR: #aaa; FONT-SIZE: 9pt } .nbApiTagCloudGroup TABLE { WIDTH: 100%; FONT-SIZE: 9pt } .nbApiTagCloudShowLess .nbApiTagCloudMore { DISPLAY: none } .nbApiTagCloudShowMore .nbApiTagCloudLess { DISPLAY: none } .nbApiTagCloudMoreLink IMG { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: = 0px } .nbApiTagCloudMoreLink A { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; TEXT-TRANSFORM: none; COLOR: = #1c94c1; FONT-SIZE: 8pt; BORDER-TOP: 0px; BORDER-RIGHT: 0px; = TEXT-DECORATION: none } .nbApiTagCloudMoreLink A:hover { TEXT-DECORATION: underline } .nbApiHeader .nbApiSpacer { PADDING-TOP: 8px } .nbApiHeader .nbApiSpacerNew { PADDING-TOP: 15px } .nbApiH1 { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: = 0px; FONT-FAMILY: Arial, Helvetica, sans-serif; LETTER-SPACING: -1px; = FONT-SIZE: 14px; FONT-WEIGHT: bold; PADDING-TOP: 0px } .nbApiH2 { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: = 0px; FONT-FAMILY: Arial, Helvetica, sans-serif; LETTER-SPACING: 0px; = FONT-SIZE: 16px; FONT-WEIGHT: bold; PADDING-TOP: 0px } .nbApiFinePrint { PADDING-BOTTOM: 0px; MARGIN: 5px 0px 0px; PADDING-LEFT: 0px; = PADDING-RIGHT: 0px; LETTER-SPACING: 0px; COLOR: #666666; FONT-SIZE: = 11px; PADDING-TOP: 0px } .nbApiExplain { PADDING-BOTTOM: 0px; MARGIN: 5px 0px 0px; PADDING-LEFT: 0px; = PADDING-RIGHT: 0px; LETTER-SPACING: 0px; COLOR: #666666; FONT-SIZE: = 12px; PADDING-TOP: 0px } .nbApiExplainHilite { PADDING-BOTTOM: 0px; MARGIN: 5px 0px 0px; PADDING-LEFT: 0px; = PADDING-RIGHT: 0px; LETTER-SPACING: 0px; COLOR: #000000; FONT-SIZE: = 12px; FONT-WEIGHT: bold; PADDING-TOP: 0px } .nbApiFoot { PADDING-BOTTOM: 3px; PADDING-LEFT: 15px; PADDING-RIGHT: 15px; COLOR: = #000000; FONT-SIZE: 9pt; PADDING-TOP: 3px } .nbApiClasp { TEXT-ALIGN: left; PADDING-BOTTOM: 1px; PADDING-LEFT: 13px; = PADDING-RIGHT: 13px; PADDING-TOP: 3px } .nbApiClasp A { COLOR: #7aa544; FONT-SIZE: 12px; FONT-WEIGHT: bold } .nbApiClasp A:hover { BORDER-BOTTOM: #7aa544 1px solid; TEXT-DECORATION: none } .nbApiNextbioTagCloud_2 { MARGIN-TOP: 5px; WIDTH: 341px } .nbApiImgc { BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; MARGIN-LEFT: 6px; = BORDER-TOP: medium none; BORDER-RIGHT: medium none } .nbApiImgo { BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; MARGIN-LEFT: 6px; = BORDER-TOP: medium none; BORDER-RIGHT: medium none } .nbApiImgo { BACKGROUND-IMAGE: url(../s/img3/framed/nb_34.png); BORDER-BOTTOM: = medium none; POSITION: relative; BORDER-LEFT: medium none; = BACKGROUND-REPEAT: no-repeat; HEIGHT: 9px; MARGIN-LEFT: 6px; BORDER-TOP: = medium none; BORDER-RIGHT: medium none } .nbApiImgc { BACKGROUND-IMAGE: url(../s/img3/framed/nb_14.png); BORDER-BOTTOM: = medium none; POSITION: relative; BORDER-LEFT: medium none; = BACKGROUND-REPEAT: no-repeat; HEIGHT: 9px; MARGIN-LEFT: 6px; BORDER-TOP: = medium none; BORDER-RIGHT: medium none } .nbApiBeta { BACKGROUND-IMAGE: url(../s/img3/framed/nb_06.png); POSITION: relative; = BACKGROUND-REPEAT: no-repeat; MARGIN-BOTTOM: 8px; HEIGHT: 18px; = MARGIN-LEFT: 10px } .nbApiBox { MARGIN-LEFT: 10px } .nbApiBoxTop { BACKGROUND-IMAGE: url(../s/img3/framed/nb_10.png); BACKGROUND-REPEAT: = no-repeat; HEIGHT: 18px; OVERFLOW: hidden } .nbApiBoxBody { BACKGROUND-IMAGE: url(../s/img3/framed/nb_18.png); PADDING-BOTTOM: 1px; = BACKGROUND-REPEAT: repeat-y; BACKGROUND-POSITION: left 50% } .nbApiEmphO { BACKGROUND-IMAGE: url(../s/img3/framed/nb_34.png); PADDING-RIGHT: 20px; = BACKGROUND-REPEAT: no-repeat; BACKGROUND-POSITION: right 50%; FONT-SIZE: = 15px } .nbApiEmphC { BACKGROUND-IMAGE: url(../s/img3/framed/nb_14.png); PADDING-RIGHT: 20px; = BACKGROUND-REPEAT: no-repeat; BACKGROUND-POSITION: right 50%; FONT-SIZE: = 15px } .nbApiHead { PADDING-BOTTOM: 3px; PADDING-LEFT: 13px; PADDING-RIGHT: 13px; COLOR: = #7aa544; FONT-SIZE: 12px; FONT-WEIGHT: bold; PADDING-TOP: 0px } .nbApiFrameTop { BACKGROUND-IMAGE: url(../s/img3/framed/nb_19.png); PADDING-BOTTOM: 0px; = MARGIN: 0px 13px; PADDING-LEFT: 4px; WIDTH: 305px; PADDING-RIGHT: 4px; = BACKGROUND-REPEAT: no-repeat; FONT-FAMILY: = arial,verdana,helvetica,sans-serif; HEIGHT: 17px; FONT-SIZE: 11px; = PADDING-TOP: 4px } .nbApiFrame { BACKGROUND-IMAGE: url(../s/img3/framed/nb_25.png); PADDING-BOTTOM: 0px; = MARGIN: 0px 13px; PADDING-LEFT: 5px; WIDTH: 305px; PADDING-RIGHT: 5px; = BACKGROUND-REPEAT: repeat-y; PADDING-TOP: 0px } .nbApiFrameBottom { BACKGROUND-IMAGE: url(../s/img3/framed/nb_27.png); TEXT-ALIGN: right; = PADDING-BOTTOM: 0px; MARGIN: 0px 13px 10px; PADDING-LEFT: 5px; WIDTH: = 305px; PADDING-RIGHT: 15px; BACKGROUND-REPEAT: no-repeat; HEIGHT: 20px; = COLOR: #0000ff; FONT-SIZE: 11px; PADDING-TOP: 0px } .nbApiDivider { BACKGROUND-IMAGE: url(../s/img3/framed/nb_33.png); MARGIN: 6px 0px 6px = 1px; WIDTH: 329px; BACKGROUND-REPEAT: no-repeat; HEIGHT: 2px; OVERFLOW: = hidden } .nbApiBoxBottom { BACKGROUND-IMAGE: url(../s/img3/framed/nb_38.png); BACKGROUND-REPEAT: = no-repeat } .nbApiTagCloudActiveImage { BACKGROUND-IMAGE: url(../s/img3/framed/icon_arrow_active.gif); = PADDING-LEFT: 8px; BACKGROUND-REPEAT: no-repeat; BACKGROUND-POSITION: = left 50%; MARGIN-LEFT: 10px } .nbApiTagCloudMoreLink { PADDING-RIGHT: 10px } .nbApiDefaultImg { BACKGROUND-IMAGE: url(../s/img3/icons/ico.gif); WIDTH: 1px; = PADDING-RIGHT: 20px; BACKGROUND-REPEAT: no-repeat; FONT-SIZE: 16px } .nbApiGeneImg { BACKGROUND-IMAGE: url(../s/img3/icons/gene.png); WIDTH: 1px; = PADDING-RIGHT: 20px; BACKGROUND-REPEAT: no-repeat; FONT-SIZE: 16px } .nbApiTissueImg { BACKGROUND-IMAGE: url(../s/img3/icons/tissue.png); WIDTH: 1px; = PADDING-RIGHT: 20px; BACKGROUND-REPEAT: no-repeat; FONT-SIZE: 16px } .nbApiTreatmentImg { BACKGROUND-IMAGE: url(../s/img3/icons/treatment.png); WIDTH: 1px; = PADDING-RIGHT: 20px; BACKGROUND-REPEAT: no-repeat; FONT-SIZE: 16px } .nbApiDiseaseImg { BACKGROUND-IMAGE: url(../s/img3/icons/disease.png); WIDTH: 1px; = PADDING-RIGHT: 20px; BACKGROUND-REPEAT: no-repeat; FONT-SIZE: 16px } .nbApiBiosetImg { BACKGROUND-IMAGE: url(../s/img3/icons/bioset.png); WIDTH: 1px; = PADDING-RIGHT: 20px; BACKGROUND-REPEAT: no-repeat; FONT-SIZE: 16px } .nbApiBiogroupImg { BACKGROUND-IMAGE: url(../s/img3/icons/biogroup.png); WIDTH: 1px; = PADDING-RIGHT: 20px; BACKGROUND-REPEAT: no-repeat; FONT-SIZE: 16px } .nbApiNewsImg { BACKGROUND-IMAGE: url(../s/img3/icons/news.png); WIDTH: 1px; = PADDING-RIGHT: 20px; BACKGROUND-REPEAT: no-repeat; FONT-SIZE: 16px } .nbApiAuthorImg { BACKGROUND-IMAGE: url(../s/img3/icons/author.png); WIDTH: 1px; = PADDING-RIGHT: 20px; BACKGROUND-REPEAT: no-repeat; FONT-SIZE: 16px } .nbApiArticleImg { BACKGROUND-IMAGE: url(../s/img3/icons/article.png); WIDTH: 1px; = PADDING-RIGHT: 20px; BACKGROUND-REPEAT: no-repeat; FONT-SIZE: 16px } .nbApiClinicTrialImg { BACKGROUND-IMAGE: url(../s/img3/icons/clinicTrial.png); WIDTH: 1px; = PADDING-RIGHT: 20px; BACKGROUND-REPEAT: no-repeat; FONT-SIZE: 16px } .nbApiStudyImg { BACKGROUND-IMAGE: url(../s/img3/icons/study.png); WIDTH: 1px; = PADDING-RIGHT: 20px; BACKGROUND-REPEAT: no-repeat; FONT-SIZE: 16px } .nbApiSnpImg { BACKGROUND-IMAGE: url(../s/img3/icons/snp.png); WIDTH: 1px; = PADDING-RIGHT: 20px; BACKGROUND-REPEAT: no-repeat; FONT-SIZE: 16px } .nbApiOrganismImg { BACKGROUND-IMAGE: url(../s/img3/icons/organism.png); WIDTH: 1px; = PADDING-RIGHT: 20px; BACKGROUND-REPEAT: no-repeat; FONT-SIZE: 16px } .nbApiProfileImg { BACKGROUND-IMAGE: url(../s/img3/icons/profile.png); WIDTH: 1px; = PADDING-RIGHT: 20px; BACKGROUND-REPEAT: no-repeat; FONT-SIZE: 16px } .nbApiVendorHomeImg { BACKGROUND-IMAGE: url(../s/img3/icons/icon-vendorhome.gif); WIDTH: 1px; = PADDING-RIGHT: 20px; BACKGROUND-REPEAT: no-repeat; FONT-SIZE: 16px } .nbApiHelpBackground { Z-INDEX: 9999; POSITION: absolute; FILTER: alpha(opacity=3D40); = BACKGROUND-COLOR: #666666; TOP: 0px; LEFT: 0px; opacity: 0.4 } .nbApiPopupBox { Z-INDEX: 10000; BORDER-BOTTOM: #303030 2px solid; POSITION: absolute; = BORDER-LEFT: #303030 2px solid; PADDING-BOTTOM: 2px; PADDING-LEFT: 2px; = WIDTH: 450px; PADDING-RIGHT: 2px; DISPLAY: none; BACKGROUND: #ffffff; = BORDER-TOP: #303030 2px solid; BORDER-RIGHT: #303030 2px solid; = PADDING-TOP: 2px } .nbApiPopupText { PADDING-BOTTOM: 7px; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; = FONT-FAMILY: arial, verdana, helvetica, sans-serif; COLOR: #000000; = FONT-SIZE: 10pt; FONT-WEIGHT: normal; PADDING-TOP: 3px } .nbApiPopupTitle { FONT-FAMILY: arial, verdana, helvetica, sans-serif; COLOR: #000000; = FONT-SIZE: 18px; FONT-WEIGHT: bold } .nbApiCloseBox { BACKGROUND-IMAGE: url(../s/images2/common/delete.png); WIDTH: 16px; = BACKGROUND-REPEAT: no-repeat; FONT-SIZE: 16px } .nbApiNextbioLogoImg { BACKGROUND-IMAGE: url(../s/img3/nextbio_tiny.png); WIDTH: 1px; = PADDING-RIGHT: 95px; BACKGROUND-REPEAT: no-repeat; FONT-SIZE: 9px } .nbApiPoweredBy { LETTER-SPACING: 0px; COLOR: #8d9c95; FONT-SIZE: 11px; FONT-WEIGHT: = bold; PADDING-TOP: 5px } .nbApiSubsetIcon { BACKGROUND-IMAGE: url(../s/img3/icons/subset.png); WIDTH: 16px; = BACKGROUND-REPEAT: no-repeat; HEIGHT: 16px; OVERFLOW: hidden; CURSOR: = pointer } .nbApiHighlight { BORDER-BOTTOM: blue 1px dashed; CURSOR: pointer } SPAN.nbApiHighlight:hover { BACKGROUND: #c0c0ff } SPAN.nbApiHighlightMo { BACKGROUND: #c0c0ff } .nbApiTagCloudGroup .nbApiHighlight { BORDER-BOTTOM: medium none } .nbApiExPopup { Z-INDEX: 1000; POSITION: absolute; TEXT-ALIGN: left; WIDTH: 508px; = DISPLAY: none; FONT-FAMILY: Arial, Helvetica, Geneva, sans-serif; = BACKGROUND: url(../s/img3/framed/nextbio_popup.png) no-repeat; HEIGHT: = 401px; FONT-SIZE: 12px } .nbApiPopupClear { WIDTH: 100%; HEIGHT: 0px; CLEAR: both; FONT-SIZE: 0px; OVERFLOW: hidden } .nbApiExPopupInner { PADDING-BOTTOM: 17px; PADDING-LEFT: 4px; PADDING-RIGHT: 10px; = PADDING-TOP: 8px } .nbApiExPopupContainer { POSITION: relative; BORDER-LEFT: #b7b7b7 1px solid; BACKGROUND: #fff; = HEIGHT: 376px; BORDER-RIGHT: #b7b7b7 1px solid } .nbApiExPopupTitle { PADDING-BOTTOM: 0px; LINE-HEIGHT: 28px; PADDING-LEFT: 10px; = PADDING-RIGHT: 10px; HEIGHT: 28px; COLOR: #2f2f2f; OVERFLOW: hidden; = PADDING-TOP: 0px } .nbApiExPopupTitle STRONG { PADDING-RIGHT: 5px; COLOR: #ee3024; FONT-SIZE: 17px } .nbApiExPopupClose { Z-INDEX: 1001; POSITION: absolute; WIDTH: 15px; BACKGROUND: = url(../s/img3/framed/nextbio_popup.png) #878585 no-repeat -4px -8px; = HEIGHT: 15px; OVERFLOW: hidden; TOP: 10px; CURSOR: pointer; RIGHT: 17px } .nbApiExPopup A { COLOR: #0f6786; TEXT-DECORATION: none } .nbApiExPopup A:hover { COLOR: #0f6786; TEXT-DECORATION: none } .nbApiExPopupReport { PADDING-BOTTOM: 0px; LINE-HEIGHT: 12px; FONT-STYLE: italic; MARGIN: 0px = 0px 5px; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; HEIGHT: 16px; = FONT-SIZE: 11px; OVERFLOW: hidden; PADDING-TOP: 0px } .nbApiExPopupDisableHl { PADDING-BOTTOM: 0px; LINE-HEIGHT: 12px; FONT-STYLE: italic; MARGIN: 0px = 0px 5px; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; HEIGHT: 16px; = FONT-SIZE: 11px; OVERFLOW: hidden; PADDING-TOP: 0px } .nbApiExPopupReport A { COLOR: #6c6c6c !important; TEXT-DECORATION: underline !important } .nbApiExPopupReport A:hover { COLOR: #6c6c6c !important; TEXT-DECORATION: underline !important } .nbApiExPopupDisableHl A { COLOR: #6c6c6c !important; TEXT-DECORATION: underline !important } .nbApiExPopupDisableHl A:hover { COLOR: #6c6c6c !important; TEXT-DECORATION: underline !important } .nbApiExPopupTabs { BORDER-BOTTOM: #ccc 1px solid; PADDING-BOTTOM: 0px; PADDING-LEFT: 10px; = PADDING-RIGHT: 10px; BACKGROUND: #fff; FONT-SIZE: 11px; PADDING-TOP: 0px } .nbApiExPopupTabs UL { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; WIDTH: 100%; = PADDING-RIGHT: 0px; HEIGHT: 38px; PADDING-TOP: 0px } .nbApiExPopupTabs UL LI { PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px -1px 0px 0px; = PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FLOAT: left; CURSOR: pointer; = PADDING-TOP: 0px } .nbApiExPopupTabs UL LI A { PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 16px; = BACKGROUND: url(../s/img3/framed/nextbio_popup.png) no-repeat 100% = -412px; FLOAT: left; HEIGHT: 38px; OVERFLOW: hidden; CURSOR: pointer; = PADDING-TOP: 0px } .nbApiExPopupTabs UL LI A { OUTLINE-STYLE: none; OUTLINE-COLOR: invert; OUTLINE-WIDTH: medium; = COLOR: #0f6786; TEXT-DECORATION: none } .nbApiExPopupTabs UL LI A:hover { OUTLINE-STYLE: none; OUTLINE-COLOR: invert; OUTLINE-WIDTH: medium; = COLOR: #0f6786; TEXT-DECORATION: none } .nbApiExPopupTabs UL LI A SPAN { PADDING-BOTTOM: 0px; PADDING-LEFT: 16px; PADDING-RIGHT: 0px; = BACKGROUND: url(../s/img3/framed/nextbio_popup.png) no-repeat 0px = -412px; FLOAT: left; HEIGHT: 38px; CURSOR: pointer; PADDING-TOP: 6px } .nbApiExPopupTabs UL LI A.selected { POSITION: relative; MARGIN: 0px 0px -1px; BACKGROUND: = url(../s/img3/framed/nextbio_popup.png) #e1e1e1 no-repeat 100% -450px; = HEIGHT: 39px } .nbApiExPopupTabs UL LI A.selected { COLOR: #000 } .nbApiExPopupTabs UL LI A.selected:hover { COLOR: #000 } .nbApiExPopupTabs UL LI A.selected SPAN { BACKGROUND: url(../s/img3/framed/nextbio_popup.png) no-repeat 0px = -450px; HEIGHT: 39px } .nbApiExPopupContentWrap { BACKGROUND: #e1e1e1; OVERFLOW: hidden } .nbApiExPopupContent { PADDING-BOTTOM: 0px; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; = BACKGROUND: #e1e1e1; OVERFLOW: hidden; PADDING-TOP: 0px } .nbApiExPopupMatchesTitle { LINE-HEIGHT: 35px; HEIGHT: 30px; COLOR: #000; FONT-SIZE: 11px; = OVERFLOW: hidden } .nbApiExPopupSubTabs { FONT-SIZE: 11px } .nbApiExPopupSubTabs UL { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: = 0px; HEIGHT: 23px; PADDING-TOP: 0px } .nbApiExPopupSubTabs UL LI { PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px -1px 0px 0px; = PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FLOAT: left; CURSOR: pointer; = PADDING-TOP: 0px } .nbApiExPopupSubTabs UL LI A { PADDING-BOTTOM: 0px; OUTLINE-STYLE: none; OUTLINE-COLOR: invert; = PADDING-LEFT: 0px; OUTLINE-WIDTH: medium; PADDING-RIGHT: 12px; FLOAT: = left; HEIGHT: 23px; OVERFLOW: hidden; CURSOR: pointer; PADDING-TOP: 0px } .nbApiExPopupSubTabs UL LI A SPAN { PADDING-BOTTOM: 0px; PADDING-LEFT: 12px; PADDING-RIGHT: 0px; FLOAT: = left; HEIGHT: 23px; CURSOR: pointer; PADDING-TOP: 6px } .nbApiExPopupSubTabs UL LI A.selected { POSITION: relative; MARGIN: 0px 0px -1px; BACKGROUND: = url(../s/img3/framed/nextbio_popup.png) #e1e1e1 no-repeat 100% -489px; = HEIGHT: 24px } .nbApiExPopupSubTabs UL LI A.selected { COLOR: #000 } .nbApiExPopupSubTabs UL LI A.selected:hover { COLOR: #000 } .nbApiExPopupSubTabs UL LI A.selected SPAN { BACKGROUND: url(../s/img3/framed/nextbio_popup.png) no-repeat 0px = -489px; HEIGHT: 24px } .nbApiExPopupRelatedText { BORDER-LEFT: #ccc 1px solid; BACKGROUND: #fff; HEIGHT: 181px; OVERFLOW: = auto; BORDER-RIGHT: #ccc 1px solid } .nbApiExPopupSummaryText { BORDER-LEFT: #ccc 1px solid; BACKGROUND: #fff; HEIGHT: 224px; OVERFLOW: = auto; BORDER-RIGHT: #ccc 1px solid } .nbApiExPopupTextWrap { BORDER-BOTTOM: #ccc 1px solid; MARGIN: 10px 0px 0px; BORDER-TOP: #ccc = 1px solid } .nbApiExPopupRelatedTextWrap { BORDER-BOTTOM: #ccc 1px solid; BORDER-TOP: #ccc 1px solid } .nbApiExPopupExperimText { BORDER-LEFT: #ccc 1px solid; PADDING-BOTTOM: 0px; PADDING-LEFT: 10px; = PADDING-RIGHT: 0px; BACKGROUND: #fff; HEIGHT: 181px; BORDER-RIGHT: #ccc = 1px solid; PADDING-TOP: 0px } .nbApiExPopup P { LINE-HEIGHT: normal; MARGIN: 0px } .nbApiExPopupHR { BORDER-BOTTOM: #ccc 1px solid; MARGIN: 0px 0px 10px; HEIGHT: 10px; = FONT-SIZE: 0px; OVERFLOW: hidden } .nbApiExPopupNav { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: = 0px; FLOAT: left; HEIGHT: 44px; PADDING-TOP: 0px } .nbApiExPopupNav LI { PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: = 0px; PADDING-RIGHT: 0px; FLOAT: left; PADDING-TOP: 0px } .nbApiExPopupNav LI A { BACKGROUND-IMAGE: url(../s/img3/framed/nextbio_popup.png); POSITION: = relative; BACKGROUND-COLOR: #cbcbcb; TEXT-INDENT: -9999em; = OUTLINE-STYLE: none; OUTLINE-COLOR: invert; OUTLINE-WIDTH: medium; = WIDTH: 44px; FLOAT: left; HEIGHT: 44px } .nbApiExPopupNav LI A SPAN { Z-INDEX: 1003; BORDER-BOTTOM: #cdcdcd 1px solid; POSITION: absolute; = BORDER-LEFT: #cdcdcd 1px solid; PADDING-BOTTOM: 5px; TEXT-INDENT: 0px; = PADDING-LEFT: 5px; BOTTOM: 43px; PADDING-RIGHT: 5px; DISPLAY: none; = WHITE-SPACE: nowrap; BACKGROUND: #fffca8; COLOR: #666543; FONT-SIZE: = 10px; BORDER-TOP: #cdcdcd 1px solid; CURSOR: default; BORDER-RIGHT: = #cdcdcd 1px solid; PADDING-TOP: 5px; LEFT: 0px } .nbApiExPopupNav LI A:hover SPAN { DISPLAY: block } .nbApiExPopupNav LI A SPAN STRONG { DISPLAY: block; FONT-SIZE: 11px } .nbApiExPopupNav LI A SPAN EM { POSITION: absolute; MARGIN: 0px 0px 0px -6px; WIDTH: 11px; BOTTOM: = -6px; DISPLAY: block; BACKGROUND: = url(../s/img3/framed/nextbio_popup.png) #fffca8 no-repeat -169px -46px; = HEIGHT: 6px; OVERFLOW: hidden; LEFT: 50% } .nbApiExPopupNav LI A.nbApiExPopupNav1 { BACKGROUND-POSITION: -4px -29px } .nbApiExPopupNav LI A.nbApiExPopupNav2 { BACKGROUND-POSITION: -48px -29px } .nbApiExPopupNav LI A.nbApiExPopupNav3 { WIDTH: 45px; BACKGROUND-POSITION: -92px -29px } .nbApiExPopupNav LI A.nbApiExPopupNav1 SPAN { LEFT: -28px } .nbApiExPopupNav LI A.nbApiExPopupNav2 SPAN { LEFT: -18px } .nbApiExPopupNav LI A.nbApiExPopupNav3 SPAN { LEFT: -14px } .nbApiExPopupStyledButton { PADDING-BOTTOM: 0px; LINE-HEIGHT: 22px; MARGIN: 8px 0px 4px; = PADDING-LEFT: 0px; PADDING-RIGHT: 11px; BACKGROUND: = url(../s/img3/framed/nextbio_popup.png) #dfdfdf no-repeat 100% -513px; = FLOAT: right; HEIGHT: 24px; FONT-SIZE: 10px; CURSOR: pointer; = PADDING-TOP: 0px } .nbApiExPopupStyledButton { OUTLINE-STYLE: none; OUTLINE-COLOR: invert; OUTLINE-WIDTH: medium; = COLOR: #0f6786; TEXT-DECORATION: none } .nbApiExPopupStyledButton:hover { OUTLINE-STYLE: none; OUTLINE-COLOR: invert; OUTLINE-WIDTH: medium; = COLOR: #0f6786; TEXT-DECORATION: none } .nbApiExPopupStyledButton SPAN { PADDING-BOTTOM: 0px; PADDING-LEFT: 18px; PADDING-RIGHT: 0px; = BACKGROUND: url(../s/img3/framed/nextbio_popup.png) no-repeat 0px = -513px; FLOAT: left; HEIGHT: 24px; PADDING-TOP: 0px } .nbApiExPopupFooter { PADDING-BOTTOM: 0px; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; = BACKGROUND: #e1e1e1; HEIGHT: 52px; TOP: 324px; PADDING-TOP: 0px; LEFT: = 0px } .nbApiExPopupButtons { PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 10px; HEIGHT: = 52px; OVERFLOW: hidden; PADDING-TOP: 0px } .nbApiExPopupCopyright { POSITION: absolute; BOTTOM: 21px; FONT-SIZE: 11px; RIGHT: 22px } .nbApiExPopupCopyright { COLOR: #7a7a7a } .nbApiExPopupCopyright A { COLOR: #7a7a7a } .nbApiExPopupCopyright A { TEXT-DECORATION: none } .nbApiExPopupCopyright A:hover { COLOR: red; TEXT-DECORATION: none } .nbApiExPopupArticles { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 10px; PADDING-RIGHT: = 10px; PADDING-TOP: 0px } .nbApiExPopupArticles LI { BORDER-BOTTOM: #ccc 1px dotted; PADDING-BOTTOM: 8px; LIST-STYLE-TYPE: = none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: = 8px } .nbApiExPopupArticles LI H5 { PADDING-BOTTOM: 0px; MARGIN: 0px 0px 3px; PADDING-LEFT: 0px; = PADDING-RIGHT: 0px; FONT-SIZE: 12px; FONT-WEIGHT: 400; PADDING-TOP: 0px } .nbApiExPopupArticles LI P { MARGIN: 0px; FONT-SIZE: 11px } .nbApiExPopupArticles LI P A { COLOR: #4e52ef } .nbApiExPopupArticles LI P A:hover { COLOR: #4e52ef } .nbApiExPopupArticles LI CITE { FONT-STYLE: normal; MARGIN: 0px; DISPLAY: block; COLOR: #54b553; = FONT-SIZE: 11px; FONT-WEIGHT: 700 } .nbApiExPopupArticles LI CITE A { COLOR: #54b553 } .nbApiExPopupArticles LI CITE A:hover { COLOR: #54b553 } .nbApiExPopupArticles LI CITE SMALL { COLOR: #000; FONT-WEIGHT: 400 } .nbApiExPopupInfoList { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: = 0px; FONT-SIZE: 11px; PADDING-TOP: 0px } .nbApiExPopupInfoList DT { MARGIN: 0px -70px 2px 0px; WIDTH: 70px; FLOAT: left; COLOR: #7f7f7f; = FONT-WEIGHT: 400 } .nbApiExPopupInfoList DD { MARGIN: 0px 0px 1px 70px } .nbApiExPopupInfoList A { COLOR: #4e52ef } .nbApiExPopupInfoList A:hover { COLOR: #4e52ef } .nbApiExPopupExperimTable { TEXT-ALIGN: left; WIDTH: 100%; FONT-SIZE: 11px } .nbApiExPopupExperimTable TH { BORDER-BOTTOM: #ccc 2px solid; FONT-STYLE: italic; HEIGHT: 22px; COLOR: = #666; VERTICAL-ALIGN: middle; FONT-WEIGHT: 400 } .nbApiExPopupExperimTable TD { BORDER-BOTTOM: #e5e5e5 1px solid; PADDING-BOTTOM: 3px; PADDING-LEFT: = 0px; PADDING-RIGHT: 0px; PADDING-TOP: 3px } .nbApiExPopupExperimTable TD A { COLOR: #4e52ef } .nbApiExPopupExperimTable TD A:hover { COLOR: #4e52ef } .nbApiExPopupExperimTable .First { WIDTH: 314px } .nbApiExPopupExperimTextIn { HEIGHT: 159px; OVERFLOW: auto } .nbApiExPopupViewAll { PADDING-BOTTOM: 12px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-SIZE: = 10px; PADDING-TOP: 12px } .nbApiExPopupViewAll A { PADDING-BOTTOM: 0px; PADDING-LEFT: 10px; PADDING-RIGHT: 0px; = BACKGROUND: url(../s/img3/framed/nextbio_popup.png) no-repeat -4px = -76px; PADDING-TOP: 0px } .nbApiExPopupClinicalTrials { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 10px; PADDING-RIGHT: = 10px; PADDING-TOP: 0px } .nbApiExPopupClinicalTrials LI { BORDER-BOTTOM: #ccc 1px dotted; PADDING-BOTTOM: 8px; LIST-STYLE-TYPE: = none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: = 8px } .nbApiExPopupClinicalTrials LI H5 { PADDING-BOTTOM: 0px; MARGIN: 0px 0px 3px; PADDING-LEFT: 0px; = PADDING-RIGHT: 0px; FONT-SIZE: 12px; FONT-WEIGHT: 400; PADDING-TOP: 0px } .nbApiExPopupClinicalTrials LI H5 SMALL { DISPLAY: block; COLOR: #666 } .nbApiExPopupClinicalTrials .ItemTable { MARGIN: 0px; WIDTH: 100%; COLOR: #4c4c4c; FONT-SIZE: 12px } .nbApiExPopupClinicalTrials .ItemTable TD { BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: = 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 10px; FONT-SIZE: 11px; = VERTICAL-ALIGN: top; BORDER-TOP: medium none; FONT-WEIGHT: 400; = BORDER-RIGHT: medium none; PADDING-TOP: 2px } .nbApiExPopupClinicalTrials .ItemTable TD.Name { COLOR: #7f7f7f } .nbApiExPopupClinicalTrials .ItemTable TD.Sponsor { COLOR: #98d398 } .nbApiExPopupGreen { COLOR: #00b139 !important } .nbApiExPopupGreen:hover { COLOR: #00b139 !important } .nbApiExPopupRed { COLOR: red !important } .nbApiExPopupRed:hover { COLOR: red !important } .nbApiExPopupLegendIcon { POSITION: relative; MARGIN: -3px 2px; WIDTH: 15px; DISPLAY: = inline-block; BACKGROUND: url(../s/img3/framed/nextbio_popup.png) #ccc = no-repeat -19px -8px; HEIGHT: 15px; OVERFLOW: hidden; CURSOR: pointer } .nbApiExPopupLegend { Z-INDEX: 1002; POSITION: absolute; BORDER-LEFT: #ccc 1px solid; WIDTH: = 319px; DISPLAY: none; BACKGROUND: #fafafa; HEIGHT: 182px; FONT-SIZE: = 11px; TOP: 141px; RIGHT: 11px } .nbApiExPopupLegendInner { PADDING-BOTTOM: 8px; PADDING-LEFT: 13px; PADDING-RIGHT: 13px; = BORDER-TOP: #ccc 1px solid; PADDING-TOP: 8px } .nbApiExPopupLegendClose { POSITION: absolute; COLOR: #f2645b; TOP: 8px; CURSOR: pointer; RIGHT: = 10px } .nbApiExPopupLegend H4 { PADDING-BOTTOM: 0px; MARGIN: 0px 0px 10px; PADDING-LEFT: 0px; = PADDING-RIGHT: 0px; COLOR: #000; FONT-SIZE: 11px; FONT-WEIGHT: 400; = PADDING-TOP: 0px } .nbApiExPopupLegendList { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: = 0px; PADDING-TOP: 0px } .nbApiExPopupLegendListLeft { MARGIN: 0px -150px 0px 0px; WIDTH: 150px; FLOAT: left } .nbApiExPopupLegendListRight { MARGIN: 0px 0px 0px 150px } .nbApiExPopupLegendList LI { LIST-STYLE-TYPE: none; MARGIN: 0px 0px 4px } .nbApiExPopupLegendList LI IMG { MARGIN: 0px 3px 0px 0px; VERTICAL-ALIGN: middle } * HTML .nbApiExPopup { ; FILTER: expression((runtimeStyle.filter=3D=3D'') ? = runtimeStyle.filter=3D'progid:DXImageTransform.Microsoft.AlphaImageLoader= (src=3D'+currentStyle.backgroundImage.split('\"')[1]+',sizingMethod=3Dcro= p)':runtimeStyle.filter,runtimeStyle.backgroundImage=3D'none') } .nbApiExPopupContentWrap { OVERFLOW: hidden } .nbApiExPopupContent { OVERFLOW: hidden } .nbApiExPopupTabs { HEIGHT: 25px; OVERFLOW: hidden } .nbApiExPopupTabs { PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px -1px 0px 0px; = PADDING-LEFT: 10px; PADDING-RIGHT: 0px; CURSOR: pointer; PADDING-TOP: = 0px } .nbApiExPopupTabs A { PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 10px; = BACKGROUND: url(../s/img3/framed/nextbio_popup.png) no-repeat 100% = -412px; FLOAT: left; HEIGHT: 25px; OVERFLOW: hidden; CURSOR: pointer; = PADDING-TOP: 0px } .nbApiExPopupTabs A { OUTLINE-STYLE: none; OUTLINE-COLOR: invert; OUTLINE-WIDTH: medium; = COLOR: #0f6786; TEXT-DECORATION: none } .nbApiExPopupTabs A:hover { OUTLINE-STYLE: none; OUTLINE-COLOR: invert; OUTLINE-WIDTH: medium; = COLOR: #0f6786; TEXT-DECORATION: none } .nbApiExPopupTabs A SPAN { PADDING-BOTTOM: 0px; PADDING-LEFT: 10px; PADDING-RIGHT: 0px; = BACKGROUND: url(../s/img3/framed/nextbio_popup.png) no-repeat 0px = -412px; FLOAT: left; HEIGHT: 25px; CURSOR: pointer; PADDING-TOP: 6px } .nbApiExPopupTabs A.nbApiExSelectedTab { POSITION: relative; MARGIN: 0px 0px -1px; BACKGROUND: = url(../s/img3/framed/nextbio_popup.png) #e1e1e1 no-repeat 100% -450px; = HEIGHT: 26px } .nbApiExPopupTabs A.nbApiExSelectedTab { COLOR: #000 } .nbApiExPopupTabs A.nbApiExSelectedTab SPAN { BACKGROUND: url(../s/img3/framed/nextbio_popup.png) no-repeat 0px = -450px; HEIGHT: 26px } .nbApiExPopupSubTabs { BACKGROUND: #e1e1e1; HEIGHT: 23px } .nbApiExPopupSubTabs { PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px -1px 0px 0px; = PADDING-LEFT: 10px; PADDING-RIGHT: 0px; FLOAT: left; CURSOR: pointer; = PADDING-TOP: 0px } .nbApiExPopupSubTabs A { PADDING-BOTTOM: 0px; OUTLINE-STYLE: none; OUTLINE-COLOR: invert; = PADDING-LEFT: 0px; OUTLINE-WIDTH: medium; PADDING-RIGHT: 12px; FLOAT: = left; HEIGHT: 23px; OVERFLOW: hidden; CURSOR: pointer; PADDING-TOP: 0px } .nbApiExPopupSubTabs A SPAN { PADDING-BOTTOM: 0px; PADDING-LEFT: 12px; PADDING-RIGHT: 0px; FLOAT: = left; HEIGHT: 23px; CURSOR: pointer; PADDING-TOP: 6px } .nbApiExPopupSubTabs A.nbApiExSelectedSubTab { POSITION: relative; MARGIN: 0px 0px -1px; BACKGROUND: = url(../s/img3/framed/nextbio_popup.png) #e1e1e1 no-repeat 100% -489px; = HEIGHT: 24px } .nbApiExPopupSubTabs A.nbApiExSelectedSubTab { COLOR: #000 } .nbApiExPopupSubTabs A.nbApiExSelectedSubTab SPAN { BACKGROUND: url(../s/img3/framed/nextbio_popup.png) no-repeat 0px = -489px; HEIGHT: 24px } .nbApiExPopupContent { CLEAR: both } .nbApiExPopupTextCont { POSITION: relative; WIDTH: 460px; BACKGROUND: #ffffff; HEIGHT: 212px; = CLEAR: both; OVERFLOW: auto } .nbApiExPopupText { POSITION: relative; PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; = PADDING-RIGHT: 5px; BACKGROUND: #ffffff; CLEAR: both; PADDING-TOP: 5px } .nbApiExPopupTextNoSubTabs { POSITION: relative; PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; = PADDING-RIGHT: 5px; BACKGROUND: #ffffff; CLEAR: both; PADDING-TOP: 5px } .nbApiExPopupTabs A.nbApiExTab { BORDER-BOTTOM: #cccccc 1px solid } .nbApiExPopupTextInner { PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = PADDING-TOP: 0px } .nbApiExPopupTextInner DIV { POSITION: relative } .nbApiExPopupTextInner IMG { BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; BORDER-TOP: = medium none; BORDER-RIGHT: medium none } .nbApiExPopupInfoList DT { POSITION: relative; MARGIN: 0px -170px 2px 0px; WIDTH: 170px; FLOAT: = left; COLOR: #7f7f7f; FONT-WEIGHT: 400 } .nbApiExPopupInfoList DD { MARGIN: 0px 0px 1px 170px } .nbApiExPopupInfoList { FONT-SIZE: 12px } .nbApiExPopupTextCont P { FONT-SIZE: 12px } .nbApiResultsList { PADDING-BOTTOM: 0px; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; COLOR: = #000000; FONT-SIZE: 10px; PADDING-TOP: 0px } .nbApiResultsList .nbApiResult .nbApiAuthors A { COLOR: #0076c0 } .nbApiExPopupFooter { PADDING-BOTTOM: 0px; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; = BACKGROUND: #e1e1e1; HEIGHT: auto; TOP: 324px; PADDING-TOP: 0px; LEFT: = 0px } .nbApiExPopupDetailedButton { BACKGROUND: #e1e1e1; HEIGHT: 36px; PADDING-TOP: 5px } .nbApiExPopupCopyright { POSITION: absolute; BOTTOM: 17px; FONT-SIZE: 11px; RIGHT: 25px } .nbApiExPopupCopyright SPAN.nbApiExPopupNBLogo { WIDTH: 78px; BACKGROUND: url(../s/img3/framed/nextbio_logo.png) = no-repeat 0px 50%; HEIGHT: 14px; OVERFLOW: hidden } .nbApiExPopupCopyrightTop { BOTTOM: auto; TOP: 40px; RIGHT: 15px } .nbApiExPopupCopyrightTop SPAN.nbApiExPopupNBLogo { WIDTH: 78px; BACKGROUND: url(../s/img3/framed/nextbio_logo_w.png) = no-repeat 0px 50%; HEIGHT: 14px } .nbApiExPopupReport { POSITION: absolute; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: = 0px; BOTTOM: 17px; PADDING-RIGHT: 0px; PADDING-TOP: 0px; LEFT: 20px } .nbApiExPopupDisableHl { POSITION: absolute; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: = 0px; BOTTOM: 37px; PADDING-RIGHT: 0px; PADDING-TOP: 0px; LEFT: 20px } .nbApiExPopupMatchesTitle { POSITION: relative; LINE-HEIGHT: 35px; WIDTH: 100%; WHITE-SPACE: = nowrap; HEIGHT: 30px; COLOR: #000; FONT-SIZE: 12px; OVERFLOW: hidden } .nbApiExPopupContainer { BACKGROUND: #e1e1e1 } .nbApiExPopupTitle { BACKGROUND: #ffffff } .nbApiExPopupBarEditBox { PADDING-BOTTOM: 3px; PADDING-LEFT: 3px; PADDING-RIGHT: 3px; HEIGHT: = 22px; FONT-SIZE: 11px; PADDING-TOP: 3px } .nbApiExPopupButton { PADDING-BOTTOM: 5px; PADDING-LEFT: 0px; PADDING-RIGHT: 5px; BACKGROUND: = url(../s/img3/framed/button-right.png) no-repeat right 50%; HEIGHT: = 24px; FONT-SIZE: 11px; CURSOR: pointer; PADDING-TOP: 5px } A.nbApiExPopupButton { PADDING-BOTTOM: 5px; PADDING-LEFT: 0px; PADDING-RIGHT: 5px; BACKGROUND: = url(../s/img3/framed/button-right.png) no-repeat right 50%; HEIGHT: = 24px; FONT-SIZE: 11px; CURSOR: pointer; PADDING-TOP: 5px } .nbApiExPopupButton { OUTLINE-STYLE: none; OUTLINE-COLOR: invert; OUTLINE-WIDTH: medium; = COLOR: #0f6786; TEXT-DECORATION: none } A.nbApiExPopupButton:hover { OUTLINE-STYLE: none; OUTLINE-COLOR: invert; OUTLINE-WIDTH: medium; = COLOR: #0f6786; TEXT-DECORATION: none } .nbApiExPopupButton SPAN { PADDING-BOTTOM: 5px; PADDING-LEFT: 18px; PADDING-RIGHT: 11px; = BACKGROUND: url(../s/img3/framed/button-left.png) no-repeat left 50%; = HEIGHT: 24px; PADDING-TOP: 5px } .nbApiExPopupDefaultButton { PADDING-BOTTOM: 5px; PADDING-LEFT: 0px; PADDING-RIGHT: 5px; BACKGROUND: = url(../s/img3/framed/button-right.png) no-repeat right 50%; HEIGHT: = 24px; FONT-SIZE: 11px; CURSOR: pointer; PADDING-TOP: 5px } A.nbApiExPopupDefaultButton { PADDING-BOTTOM: 5px; PADDING-LEFT: 0px; PADDING-RIGHT: 5px; BACKGROUND: = url(../s/img3/framed/button-right.png) no-repeat right 50%; HEIGHT: = 24px; FONT-SIZE: 11px; CURSOR: pointer; PADDING-TOP: 5px } .nbApiExPopupDefaultButton { OUTLINE-STYLE: none; OUTLINE-COLOR: invert; OUTLINE-WIDTH: medium; = COLOR: #0f6786; TEXT-DECORATION: none } A.nbApiExPopupDefaultButton:hover { OUTLINE-STYLE: none; OUTLINE-COLOR: invert; OUTLINE-WIDTH: medium; = COLOR: #0f6786; TEXT-DECORATION: none } .nbApiExPopupDefaultButton SPAN { PADDING-BOTTOM: 5px; PADDING-LEFT: 18px; PADDING-RIGHT: 11px; = BACKGROUND: url(../s/img3/framed/button-left.png) no-repeat left 50%; = HEIGHT: 24px; PADDING-TOP: 5px } .nbApiExPopupStyledButton { MARGIN-TOP: 0px } .nbApiExPopupExperimTable { FONT-SIZE: 12px } .nbApiExPopupContent .nbApiTabContent { PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; = PADDING-TOP: 5px } .nbApiExPopupContent .AnnotationTitle { FONT-WEIGHT: bold } .nbApiExPopupContent .SectionText { COLOR: #000000; FONT-SIZE: 9pt; FONT-WEIGHT: normal; PADDING-TOP: 10px } .nbApiExPopupContent TR.AnnotationTitle TD { PADDING-RIGHT: 10px; FONT-SIZE: 9pt } .nbApiExPopupContent TR.AnnotationText TD { PADDING-BOTTOM: 15px; PADDING-RIGHT: 10px; FONT-SIZE: 9pt; = VERTICAL-ALIGN: top; PADDING-TOP: 5px } .nbApiResultsList { COLOR: #000000; FONT-SIZE: 10px } .nbApiResultsList .nbApiResult { FONT-SIZE: 13px } .nbApiResultsList .nbApiResult A { CURSOR: pointer; TEXT-DECORATION: none } .nbApiResultsList A:hover { TEXT-DECORATION: underline } .nbApiResultsList .nbApiResult .nbApiTitle A { COLOR: #0000ff; FONT-SIZE: 13px } .nbApiResultsList DIV.nbApiResult { BORDER-BOTTOM: #ccc 1px solid; PADDING-BOTTOM: 5px; PADDING-TOP: 5px } .nbApiResultsList .nbApiResult .nbApiSubtitle { FONT-SIZE: 11px } .nbApiResultsList .nbApiResult .nbApiAuthors { FONT-SIZE: 12px } .nbApiResultsList .nbApiResult .nbApiAuthors A { COLOR: #0040c0 } .nbApiResultsList .nbApiResult .nbApiSource { COLOR: #009020; FONT-SIZE: 12px } .nbApiMatchingSentences { MARGIN: 10px } .nbApiMatchingSentences LI { MARGIN-BOTTOM: 4px } .nbApiMatchingSentences TD { MARGIN-BOTTOM: 10px; FONT-SIZE: 12px; VERTICAL-ALIGN: top } .nbApiMatchingSentences DIV.nbApiExpand { PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; WIDTH: 11px; PADDING-RIGHT: = 0px; BACKGROUND: url(../s/img3/framed/expand.png) no-repeat 50% top; = HEIGHT: 14px; OVERFLOW: hidden; CURSOR: pointer; PADDING-TOP: 0px } .nbApiMatchingSentences DIV.nbApiCollapse { PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; WIDTH: 11px; PADDING-RIGHT: = 0px; BACKGROUND: url(../s/img3/framed/collapse.png) no-repeat 50% top; = HEIGHT: 14px; OVERFLOW: hidden; CURSOR: pointer; PADDING-TOP: 0px } .nbApiMatchingSentences DIV.nbApiBlackBullet { PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; WIDTH: 11px; PADDING-RIGHT: = 0px; BACKGROUND: url(../s/img3/framed/blackBullet.png) no-repeat 50% = top; HEIGHT: 14px; OVERFLOW: hidden; PADDING-TOP: 0px } .nbApiMatchingSentences .NextbioSentenceHighlight { BACKGROUND-COLOR: #fbfabd } .nbApiExS1 A { PADDING-RIGHT: 10px; FONT-SIZE: 11px !important } .nbApiExS2 A { PADDING-RIGHT: 10px; FONT-SIZE: 12px !important } .nbApiExS3 A { PADDING-RIGHT: 10px; FONT-SIZE: 14px !important } .nbApiExS4 A { PADDING-RIGHT: 10px; FONT-SIZE: 16px !important } .nbApiExS5 A { PADDING-RIGHT: 10px; FONT-SIZE: 19px !important } .nbApiExS6 A { PADDING-RIGHT: 10px; FONT-SIZE: 22px !important } .nbApiExS7 A { PADDING-RIGHT: 10px; FONT-SIZE: 28px !important } P.nbApiPreInfo { COLOR: #6c6c6c; FONT-SIZE: 0.85em } P.nbApiPreInfo IMG { VERTICAL-ALIGN: middle } P.nbApiPreInfo { VERTICAL-ALIGN: bottom } .nbApiResult P.nbApiPreInfo { CLEAR: both } .nbApiResultsList .nbApiResult P { FONT-SIZE: 12px } .nbApiLoading { PADDING-BOTTOM: 20px; PADDING-LEFT: 170px; PADDING-RIGHT: 20px; = BACKGROUND: url(../s/img3//busy.gif) no-repeat 20px 20px; PADDING-TOP: = 20px } .nbApiHeader { PADDING-BOTTOM: 0px; PADDING-LEFT: 12px; WIDTH: 336px; PADDING-RIGHT: = 14px; HEIGHT: 60px; PADDING-TOP: 0px } .nbApiHeaderBack { BACKGROUND-IMAGE: url(../s/img3/framed/nb_header.png); = BACKGROUND-REPEAT: no-repeat } .nbApiHeaderNarrowBack { BACKGROUND-IMAGE: url(../s/img3/framed/nb_header_narrow.png); = BACKGROUND-REPEAT: no-repeat } .nbApiHeaderNewBack { BACKGROUND-IMAGE: url(../s/img3/framed/nb_header_new.png); = BACKGROUND-REPEAT: no-repeat } .nbApiHeaderNewNarrowBack { BACKGROUND-IMAGE: url(../s/img3/framed/nb_header_narrow_new.png); = BACKGROUND-REPEAT: no-repeat } .nbApiContainer { BACKGROUND-IMAGE: url(../s/img3/framed/nb_bg_container.png); = PADDING-BOTTOM: 2px; PADDING-LEFT: 12px; WIDTH: 336px; PADDING-RIGHT: = 14px; BACKGROUND-REPEAT: repeat-y; PADDING-TOP: 10px } .nbApiContainerNarrow { BACKGROUND-IMAGE: url(../s/img3/framed/nb_bg_container_narrow.png); = PADDING-BOTTOM: 2px; PADDING-LEFT: 12px; WIDTH: 188px; PADDING-RIGHT: = 14px; BACKGROUND-REPEAT: repeat-y; PADDING-TOP: 10px } .nbApiBottom { BACKGROUND-IMAGE: url(../s/img3/framed/nb_bottom_grey.png); POSITION: = relative; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; WIDTH: = 336px; PADDING-RIGHT: 0px; BACKGROUND-REPEAT: no-repeat; HEIGHT: 25px; = TOP: 0px; PADDING-TOP: 0px } .nbApiBottomNarrow { BACKGROUND-IMAGE: url(../s/img3/framed/nb_bottom_narrow_grey.png); = POSITION: relative; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; = WIDTH: 208px; PADDING-RIGHT: 0px; BACKGROUND-REPEAT: no-repeat; HEIGHT: = 25px; TOP: 0px; PADDING-TOP: 0px } .TagCloudControlsContainer { DISPLAY: none } .nbApiTagCloudMoreLink { FLOAT: right } .nbApiSpacer { WIDTH: 316px } .TagCloudControlsContainer { WHITE-SPACE: nowrap } ------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.sciencedirect.com/science/page/javascript/swfobject.js /*! SWFObject v2.2 alpha6 Copyright (c) 2007-2008 Geoff Stearns, Michael Williams, and Bobby van = der Sluis This software is released under the MIT License = */ =20 var swfobject =3D function() { =20 var UNDEF =3D "undefined", OBJECT =3D "object", SHOCKWAVE_FLASH =3D "Shockwave Flash", SHOCKWAVE_FLASH_AX =3D "ShockwaveFlash.ShockwaveFlash", FLASH_MIME_TYPE =3D "application/x-shockwave-flash", EXPRESS_INSTALL_ID =3D "SWFObjectExprInst", =20 win =3D window, doc =3D document, nav =3D navigator, =20 plugin =3D false, domLoadFnArr =3D [main], regObjArr =3D [], objIdArr =3D [], listenersArr =3D [], storedAltContent =3D null, storedAltContentId =3D null, isDomLoaded =3D false, isExpressInstallActive =3D false, dynamicStylesheet =3D null, dynamicStylesheetMedia =3D null; =20 /* Centralized function for browser feature detection - Proprietary feature detection (conditional compiling) is used to = detect Internet Explorer's features - User agent string detection is only used when no alternative is = possible - Is executed directly for optimal performance */=20 var ua =3D function() { var w3cdom =3D typeof doc.getElementById !=3D UNDEF && typeof = doc.getElementsByTagName !=3D UNDEF && typeof doc.createElement !=3D = UNDEF, playerVersion =3D [0,0,0], d =3D null; if (typeof nav.plugins !=3D UNDEF && typeof = nav.plugins[SHOCKWAVE_FLASH] =3D=3D OBJECT) { d =3D nav.plugins[SHOCKWAVE_FLASH].description; if (d && !(typeof nav.mimeTypes !=3D UNDEF && = nav.mimeTypes[FLASH_MIME_TYPE] && = !nav.mimeTypes[FLASH_MIME_TYPE].enabledPlugin)) { // = navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin = indicates whether plug-ins are enabled or disabled in Safari 3+ plugin =3D true; d =3D d.replace(/^.*\s+(\S+\s+\S+$)/, "$1"); playerVersion[0] =3D parseInt(d.replace(/^(.*)\..*$/, "$1"), 10); playerVersion[1] =3D parseInt(d.replace(/^.*\.(.*)\s.*$/, "$1"), 10); playerVersion[2] =3D /r/.test(d) ? parseInt(d.replace(/^.*r(.*)$/, = "$1"), 10) : 0; } } else if (typeof win.ActiveXObject !=3D UNDEF) { try { var a =3D new ActiveXObject(SHOCKWAVE_FLASH_AX); if (a) { // a will return null when ActiveX is disabled d =3D a.GetVariable("$version"); if (d) { d =3D d.split(" ")[1].split(","); playerVersion =3D [parseInt(d[0], 10), parseInt(d[1], 10), = parseInt(d[2], 10)]; } } } catch(e) {} } var u =3D nav.userAgent.toLowerCase(), p =3D nav.platform.toLowerCase(), webkit =3D /webkit/.test(u) ? = parseFloat(u.replace(/^.*webkit\/(\d+(\.\d+)?).*$/, "$1")) : false, // = returns either the webkit version or false if not webkit ie =3D false, windows =3D p ? /win/.test(p) : /win/.test(u), mac =3D p ? /mac/.test(p) : /mac/.test(u); /*@cc_on ie =3D true; @if (@_win32) windows =3D true; @elif (@_mac) mac =3D true; @end @*/ return { w3cdom:w3cdom, pv:playerVersion, webkit:webkit, ie:ie, = win:windows, mac:mac }; }(); =20 /* Cross-browser onDomLoad - Will fire an event as soon as the DOM of a web page is loaded - Internet Explorer workaround based on Diego Perini's solution: = http://javascript.nwbox.com/IEContentLoaded/ - Regular onload serves as fallback */ var onDomLoad =3D function() { if (!ua.w3cdom) { return; } if ((typeof doc.readyState !=3D UNDEF && doc.readyState =3D=3D = "complete") || (typeof doc.readyState =3D=3D UNDEF && = (doc.getElementsByTagName("body")[0] || doc.body))) { // function is = fired after onload, e.g. when script is inserted dynamically callDomLoadFunctions(); } if (!isDomLoaded) { if (typeof doc.addEventListener !=3D UNDEF) { doc.addEventListener("DOMContentLoaded", callDomLoadFunctions, false); }=20 if (ua.ie && ua.win) { doc.attachEvent("onreadystatechange", function() { if (doc.readyState =3D=3D "complete") { doc.detachEvent("onreadystatechange", arguments.callee); callDomLoadFunctions(); } }); if (win =3D=3D top) { // if not inside an iframe (function(){ if (isDomLoaded) { return; } try { doc.documentElement.doScroll("left"); } catch(e) { setTimeout(arguments.callee, 0); return; } callDomLoadFunctions(); })(); } } if (ua.webkit) { (function(){ if (isDomLoaded) { return; } if (!/loaded|complete/.test(doc.readyState)) { setTimeout(arguments.callee, 0); return; } callDomLoadFunctions(); })(); } addLoadEvent(callDomLoadFunctions); } }(); =20 function callDomLoadFunctions() { if (isDomLoaded) { return; } try { // test if we can really add/remove elements to/from the DOM; we = don't want to fire it too early var t =3D = doc.getElementsByTagName("body")[0].appendChild(createElement("span")); t.parentNode.removeChild(t); } catch (e) { return; } isDomLoaded =3D true; var dl =3D domLoadFnArr.length; for (var i =3D 0; i < dl; i++) { domLoadFnArr[i](); } } =20 function addDomLoadEvent(fn) { if (isDomLoaded) { fn(); } else { domLoadFnArr[domLoadFnArr.length] =3D fn; // Array.push() is only = available in IE5.5+ } } =20 /* Cross-browser onload - Based on James Edwards' solution: = http://brothercake.com/site/resources/scripts/onload/ - Will fire an event as soon as a web page including all of its assets = are loaded */ function addLoadEvent(fn) { if (typeof win.addEventListener !=3D UNDEF) { win.addEventListener("load", fn, false); } else if (typeof doc.addEventListener !=3D UNDEF) { doc.addEventListener("load", fn, false); } else if (typeof win.attachEvent !=3D UNDEF) { addListener(win, "onload", fn); } else if (typeof win.onload =3D=3D "function") { var fnOld =3D win.onload; win.onload =3D function() { fnOld(); fn(); }; } else { win.onload =3D fn; } } =20 /* Main function - Will preferably execute onDomLoad, otherwise onload (as a fallback) */ function main() { if (plugin) { testPlayerVersion(); } else { matchVersions(); } } =20 /* Detect the Flash Player version for non-Internet Explorer browsers - Detecting the plug-in version via the object element is more precise = than using the plugins collection item's description: a. Both release and build numbers can be detected b. Avoid wrong descriptions by corrupt installers provided by Adobe c. Avoid wrong descriptions by multiple Flash Player entries in the = plugin Array, caused by incorrect browser imports - Disadvantage of this method is that it depends on the availability of = the DOM, while the plugins collection is immediately available */ function testPlayerVersion() { var b =3D doc.getElementsByTagName("body")[0]; var o =3D createElement("object"); o.setAttribute("type", FLASH_MIME_TYPE); var t =3D b.appendChild(o); if (t) { var counter =3D 0; (function(){ if (typeof t.GetVariable !=3D "undefined") { var d =3D t.GetVariable("$version"); if (d) { d =3D d.split(" ")[1].split(","); ua.pv =3D [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)]; } } else if (counter < 10) { counter++; setTimeout(arguments.callee, 10); return; } b.removeChild(o); t =3D null; matchVersions(); })(); } else { matchVersions(); } } =20 /* Perform Flash Player and SWF version matching; static publishing = only */ function matchVersions() { var rl =3D regObjArr.length; if (rl > 0) { for (var i =3D 0; i < rl; i++) { // for each registered object element var id =3D regObjArr[i].id; if (ua.pv[0] > 0) { var obj =3D getElementById(id); if (obj) { regObjArr[i].width =3D obj.getAttribute("width") || "0"; regObjArr[i].height =3D obj.getAttribute("height") || "0"; if (hasPlayerVersion(regObjArr[i].swfVersion) && !(ua.webkit && = ua.webkit < 312)) { // Flash Player version >=3D published SWF version: = Houston, we have a match! setVisibility(id, true); } else if (regObjArr[i].expressInstall && !isExpressInstallActive && = hasPlayerVersion("6.0.65") && (ua.win || ua.mac) && !(ua.webkit && = ua.webkit < 312)) { // show the Adobe Express Install dialog if set by = the web page author and if supported (fp6.0.65+ on Win/Mac OS only) showExpressInstall(regObjArr[i]); } else { // Flash Player and SWF version mismatch or an older Webkit = engine that ignores the HTML object element's nested param elements: = display alternative content instead of SWF displayAltContent(obj); } } } else { // if no Flash Player is installed or the fp version cannot be = detected we let the HTML object element do its job (either show a SWF or = alternative content) setVisibility(id, true); } } } } =20 /* Show the Adobe Express Install dialog - Reference: = http://www.adobe.com/cfusion/knowledgebase/index.cfm?id=3D6a253b75 */ function showExpressInstall(regObj) { isExpressInstallActive =3D true; var obj =3D getElementById(regObj.id); if (obj) { if (regObj.altContentId) { var ac =3D getElementById(regObj.altContentId); if (ac) { storedAltContent =3D ac; storedAltContentId =3D regObj.altContentId; } } else { storedAltContent =3D abstractAltContent(obj); } if (!(/%$/.test(regObj.width)) && parseInt(regObj.width, 10) < 310) { regObj.width =3D "310"; } if (!(/%$/.test(regObj.height)) && parseInt(regObj.height, 10) < 137) { regObj.height =3D "137"; } doc.title =3D doc.title.slice(0, 47) + " - Flash Player Installation"; var pt =3D ua.ie && ua.win ? "ActiveX" : "PlugIn", dt =3D doc.title, fv =3D "MMredirectURL=3D" + win.location + "&MMplayerType=3D" + pt + = "&MMdoctitle=3D" + dt, replaceId =3D regObj.id; // For IE when a SWF is loading (AND: not available in cache) wait for = the onload event to fire to remove the original object element // In IE you cannot properly cancel a loading SWF file without breaking = browser load references, also obj.onreadystatechange doesn't work if (ua.ie && ua.win && obj.readyState !=3D 4) { var newObj =3D createElement("div"); replaceId +=3D "SWFObjectNew"; newObj.setAttribute("id", replaceId); obj.parentNode.insertBefore(newObj, obj); // Insert placeholder div = that will be replaced by the object element that loads = expressinstall.swf obj.style.display =3D "none"; var fn =3D function() { obj.parentNode.removeChild(obj); }; addListener(win, "onload", fn); } createSWF({ data:regObj.expressInstall, id:EXPRESS_INSTALL_ID, = width:regObj.width, height:regObj.height }, { flashvars:fv }, = replaceId); } } =20 /* Functions to abstract and display alternative content */ function displayAltContent(obj) { if (ua.ie && ua.win && obj.readyState !=3D 4) { // For IE when a SWF is loading (AND: not available in cache) wait for = the onload event to fire to remove the original object element // In IE you cannot properly cancel a loading SWF file without breaking = browser load references, also obj.onreadystatechange doesn't work var el =3D createElement("div"); obj.parentNode.insertBefore(el, obj); // Insert placeholder div that = will be replaced by the alternative content el.parentNode.replaceChild(abstractAltContent(obj), el); obj.style.display =3D "none"; var fn =3D function() { obj.parentNode.removeChild(obj); }; addListener(win, "onload", fn); } else { obj.parentNode.replaceChild(abstractAltContent(obj), obj); } } =20 function abstractAltContent(obj) { var ac =3D createElement("div"); if (ua.win && ua.ie) { ac.innerHTML =3D obj.innerHTML; } else { var nestedObj =3D obj.getElementsByTagName(OBJECT)[0]; if (nestedObj) { var c =3D nestedObj.childNodes; if (c) { var cl =3D c.length; for (var i =3D 0; i < cl; i++) { if (!(c[i].nodeType =3D=3D 1 && c[i].nodeName =3D=3D "PARAM") && = !(c[i].nodeType =3D=3D 8)) { ac.appendChild(c[i].cloneNode(true)); } } } } } return ac; } =20 /* Cross-browser dynamic SWF creation */ function createSWF(attObj, parObj, id) { if (ua.webkit && ua.webkit < 312) { return false; } var r, el =3D getElementById(id); if (el) { if (typeof attObj.id =3D=3D UNDEF) { // if no 'id' is defined for the = object element, it will inherit the 'id' from the alternative content attObj.id =3D id; } if (ua.ie && ua.win) { // Internet Explorer + the HTML object element + = W3C DOM methods do not combine: fall back to outerHTML var att =3D ""; for (var i in attObj) { if (attObj[i] !=3D Object.prototype[i]) { // filter out prototype = additions from other potential libraries if (i.toLowerCase() =3D=3D "data") { parObj.movie =3D attObj[i]; } else if (i.toLowerCase() =3D=3D "styleclass") { // 'class' is an ECMA4 = reserved keyword att +=3D ' class=3D"' + attObj[i] + '"'; } else if (i.toLowerCase() !=3D "classid") { att +=3D ' ' + i + '=3D"' + attObj[i] + '"'; } } } var par =3D ""; for (var j in parObj) { if (parObj[j] !=3D Object.prototype[j]) { // filter out prototype = additions from other potential libraries par +=3D ''; } } el.outerHTML =3D '' + = par + ''; objIdArr[objIdArr.length] =3D attObj.id; // stored to fix object = 'leaks' on unload (dynamic publishing only) r =3D getElementById(attObj.id);=20 } else { // well-behaving browsers var o =3D createElement(OBJECT); o.setAttribute("type", FLASH_MIME_TYPE); for (var m in attObj) { if (attObj[m] !=3D Object.prototype[m]) { // filter out prototype = additions from other potential libraries if (m.toLowerCase() =3D=3D "styleclass") { // 'class' is an ECMA4 = reserved keyword o.setAttribute("class", attObj[m]); } else if (m.toLowerCase() !=3D "classid") { // filter out IE specific = attribute o.setAttribute(m, attObj[m]); } } } for (var n in parObj) { if (parObj[n] !=3D Object.prototype[n] && n.toLowerCase() !=3D "movie") = { // filter out prototype additions from other potential libraries and = IE specific param element createObjParam(o, n, parObj[n]); } } el.parentNode.replaceChild(o, el); r =3D o; } } return r; } =20 function createObjParam(el, pName, pValue) { var p =3D createElement("param"); p.setAttribute("name", pName);=20 p.setAttribute("value", pValue); el.appendChild(p); } =20 /* Cross-browser SWF removal - Especially needed to safely and completely remove a SWF in Internet = Explorer */ function removeSWF(id) { var obj =3D getElementById(id); if (obj && (obj.nodeName =3D=3D "OBJECT" || obj.nodeName =3D=3D = "EMBED")) { if (ua.ie && ua.win) { if (obj.readyState =3D=3D 4) { removeObjectInIE(id); } else { win.attachEvent("onload", function() { removeObjectInIE(id); }); } } else { obj.parentNode.removeChild(obj); } } } =20 function removeObjectInIE(id) { var obj =3D getElementById(id); if (obj) { for (var i in obj) { if (typeof obj[i] =3D=3D "function") { obj[i] =3D null; } } obj.parentNode.removeChild(obj); } } =20 /* Functions to optimize JavaScript compression */ function getElementById(id) { var el =3D null; try { el =3D doc.getElementById(id); } catch (e) {} return el; } =20 function createElement(el) { return doc.createElement(el); } =20 /* Updated attachEvent function for Internet Explorer - Stores attachEvent information in an Array, so on unload the = detachEvent functions can be called to avoid memory leaks */=20 function addListener(target, eventType, fn) { target.attachEvent(eventType, fn); listenersArr[listenersArr.length] =3D [target, eventType, fn]; } =20 /* Flash Player and SWF content version matching */ function hasPlayerVersion(rv) { var pv =3D ua.pv, v =3D rv.split("."); v[0] =3D parseInt(v[0], 10); v[1] =3D parseInt(v[1], 10) || 0; // supports short notation, e.g. "9" = instead of "9.0.0" v[2] =3D parseInt(v[2], 10) || 0; return (pv[0] > v[0] || (pv[0] =3D=3D v[0] && pv[1] > v[1]) || (pv[0] = =3D=3D v[0] && pv[1] =3D=3D v[1] && pv[2] >=3D v[2])) ? true : false; } =20 /* Cross-browser dynamic CSS creation - Based on Bobby van der Sluis' solution: = http://www.bobbyvandersluis.com/articles/dynamicCSS.php */=20 function createCSS(sel, decl, media, newStyle) { if (ua.ie && ua.mac) { return; } var h =3D doc.getElementsByTagName("head")[0]; if (!h) { return; } // to also support badly authored HTML pages that = lack a head element var m =3D (media && typeof media =3D=3D "string") ? media : "screen"; if (newStyle || (dynamicStylesheet && !dynamicStylesheet.parentNode)) { = // test if style element hasn't been removed externally dynamicStylesheet =3D null; dynamicStylesheetMedia =3D null; } if (!dynamicStylesheet || dynamicStylesheetMedia !=3D m) {=20 // create dynamic stylesheet + get a global reference to it var s =3D createElement("style"); s.setAttribute("type", "text/css"); s.setAttribute("media", m); dynamicStylesheet =3D h.appendChild(s); if (ua.ie && ua.win && typeof doc.styleSheets !=3D UNDEF && = doc.styleSheets.length > 0) { dynamicStylesheet =3D doc.styleSheets[doc.styleSheets.length - 1]; } dynamicStylesheetMedia =3D m; } // add style rule if (ua.ie && ua.win) { if (dynamicStylesheet && typeof dynamicStylesheet.addRule =3D=3D = OBJECT) { dynamicStylesheet.addRule(sel, decl); } } else { if (dynamicStylesheet && typeof doc.createTextNode !=3D UNDEF) { dynamicStylesheet.appendChild(doc.createTextNode(sel + " {" + decl + = "}")); } } } =20 function setVisibility(id, isVisible) { var v =3D isVisible ? "visible" : "hidden"; if (isDomLoaded && getElementById(id)) { getElementById(id).style.visibility =3D v; } else { createCSS("#" + id, "visibility:" + v); } } =20 /* Filter to avoid XSS attacks=20 */ function urlEncodeIfNecessary(s) { var regex =3D /[\\\"<>\.;]/; var hasBadChars =3D regex.exec(s) !=3D null; return hasBadChars ? encodeURIComponent(s) : s; } =20 /* Release memory to avoid memory leaks caused by closures, fix hanging = audio/video threads and force open sockets/NetConnections to disconnect = (Internet Explorer only) */ var cleanup =3D function() { if (ua.ie && ua.win) { window.attachEvent("onunload", function() { // remove listeners to avoid memory leaks var ll =3D listenersArr.length; for (var i =3D 0; i < ll; i++) { listenersArr[i][0].detachEvent(listenersArr[i][1], listenersArr[i][2]); } // cleanup dynamically embedded objects to fix audio/video threads and = force open sockets and NetConnections to disconnect var il =3D objIdArr.length; for (var j =3D 0; j < il; j++) { removeSWF(objIdArr[j]); } // cleanup library's main closures to avoid memory leaks for (var k in ua) { ua[k] =3D null; } ua =3D null; for (var l in swfobject) { swfobject[l] =3D null; } swfobject =3D null; }); } }(); =20 return { /* Public API - Reference: http://code.google.com/p/swfobject/wiki/documentation */=20 registerObject: function(objectIdStr, swfVersionStr, xiSwfUrlStr) { if (!ua.w3cdom || !objectIdStr || !swfVersionStr) { return; } var regObj =3D {}; regObj.id =3D objectIdStr; regObj.swfVersion =3D swfVersionStr; regObj.expressInstall =3D xiSwfUrlStr; regObjArr[regObjArr.length] =3D regObj; setVisibility(objectIdStr, false); }, =20 getObjectById: function(objectIdStr) { var r =3D null; if (ua.w3cdom) { var o =3D getElementById(objectIdStr); if (o) { var n =3D o.getElementsByTagName(OBJECT)[0]; if (!n || (n && typeof o.SetVariable !=3D UNDEF)) { r =3D o; } else if (typeof n.SetVariable !=3D UNDEF) { r =3D n; } } } return r; }, =20 embedSWF: function(swfUrlStr, replaceElemIdStr, widthStr, heightStr, = swfVersionStr, xiSwfUrlStr, flashvarsObj, parObj, attObj) { if (!ua.w3cdom || !swfUrlStr || !replaceElemIdStr || !widthStr || = !heightStr || !swfVersionStr || (ua.webkit && ua.webkit < 312)) { = return; } widthStr +=3D ""; // auto-convert to string heightStr +=3D ""; setVisibility(replaceElemIdStr, false); addDomLoadEvent(function() { if (hasPlayerVersion(swfVersionStr)) { // create SWF var att =3D {}; if (attObj && typeof attObj =3D=3D=3D OBJECT) { for (var i in attObj) { // copy object to avoid the use of references, = because web authors often reuse attObj for multiple SWFs att[i] =3D attObj[i]; } } att.data =3D swfUrlStr; att.width =3D widthStr; att.height =3D heightStr; var par =3D {};=20 if (parObj && typeof parObj =3D=3D=3D OBJECT) { for (var j in parObj) { // copy object to avoid the use of references, = because web authors often reuse parObj for multiple SWFs par[j] =3D parObj[j]; } } if (flashvarsObj && typeof flashvarsObj =3D=3D=3D OBJECT) { for (var k in flashvarsObj) { // copy object to avoid the use of = references, because web authors often reuse flashvarsObj for multiple = SWFs if (typeof par.flashvars !=3D UNDEF) { par.flashvars +=3D "&" + k + "=3D" + flashvarsObj[k]; } else { par.flashvars =3D k + "=3D" + flashvarsObj[k]; } } } createSWF(att, par, replaceElemIdStr); if (att.id =3D=3D replaceElemIdStr) { setVisibility(replaceElemIdStr, true); } } else if (xiSwfUrlStr && !isExpressInstallActive && = hasPlayerVersion("6.0.65") && (ua.win || ua.mac)) { // show Adobe = Express Install isExpressInstallActive =3D true; var regObj =3D {}; regObj.id =3D regObj.altContentId =3D replaceElemIdStr; regObj.width =3D widthStr; regObj.height =3D heightStr; regObj.expressInstall =3D xiSwfUrlStr; showExpressInstall(regObj); } else { setVisibility(replaceElemIdStr, true); // show alternative content } }); }, =20 getFlashPlayerVersion: function() { return { major:ua.pv[0], minor:ua.pv[1], release:ua.pv[2] }; }, =20 hasFlashPlayerVersion: hasPlayerVersion, =20 createSWF: function(attObj, parObj, replaceElemIdStr) { if (ua.w3cdom) { return createSWF(attObj, parObj, replaceElemIdStr); } else { return undefined; } }, =20 removeSWF: function(objElemIdStr) { if (ua.w3cdom) { removeSWF(objElemIdStr); } }, =20 createCSS: function(selStr, declStr, mediaStr, newStyleBoolean) { if (ua.w3cdom) { createCSS(selStr, declStr, mediaStr, newStyleBoolean); } }, =20 addDomLoadEvent: addDomLoadEvent, =20 addLoadEvent: addLoadEvent, =20 getQueryParamValue: function(param) { var q =3D doc.location.search || doc.location.hash; if (param =3D=3D null) { return urlEncodeIfNecessary(q); } if (q) { var pairs =3D q.substring(1).split("&"); for (var i =3D 0; i < pairs.length; i++) { if (pairs[i].substring(0, pairs[i].indexOf("=3D")) =3D=3D param) { return urlEncodeIfNecessary(pairs[i].substring((pairs[i].indexOf("=3D") = + 1))); } } } return ""; }, =20 // For internal usage only expressInstallCallback: function() { if (isExpressInstallActive && storedAltContent) { var obj =3D getElementById(EXPRESS_INSTALL_ID); if (obj) { obj.parentNode.replaceChild(storedAltContent, obj); if (storedAltContentId) { setVisibility(storedAltContentId, true); if (ua.ie && ua.win) { storedAltContent.style.display =3D "block"; } } storedAltContent =3D null; storedAltContentId =3D null; isExpressInstallActive =3D false; } }=20 } }; }(); ------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.sciencedirect.com/science/page/javascript/article.js //infoBubble.js=0A= var OPAC =3D 0;=0A= var aFrame;=0A= var frameWidth =3D 10;=0A= var InfoBubble =3D {=0A= =0A= bubbleTimeout: 1,=0A= currentBubble: null,=0A= timeoutBubbleID: null,=0A= currentLink: null,=0A= =0A= show: function(aID, bID,fID) {=0A= var disableFade =3D 0;=0A= if(this.currentBubble) {=0A= disableFade =3D 1;=0A= }=0A= var aBubble =3D document.getElementById(aID);=0A= aFrame=3Ddocument.getElementById(fID);=0A= if(aBubble && aBubble !=3D this.currentBubble) {=0A= this.hide();=0A= var aBubbleLink =3D document.getElementById(bID);=0A= aBubbleLink.style.background =3D '#efefef ';=0A= aBubbleLink.style.border =3D '1px solid #E4E4E4';=0A= aBubbleLink.style.margin =3D '3px 5px 3px 5px';=0A= this.currentLink =3D aBubbleLink;=0A= aBubble.style.display =3D 'block';=0A= var heightFromTop =3D findPosY(aBubble) - document.body.scrollTop;=0A= if(getWindowHeight() < (aBubble.offsetHeight + heightFromTop)) {=0A= aBubble.style.top =3D (getWindowHeight() - (aBubble.offsetHeight = + heightFromTop)) - 5;=0A= }=0A= else {=0A= if(heightFromTop < 0) {=0A= aBubble.style.top =3D (Math.abs(heightFromTop)) + 5;=0A= }=0A= else {=0A= aBubble.style.top =3D 0;=0A= }=0A= }=0A= if(aFrame){=0A= aFrame.style.top =3D aBubble.offsetTop + "px";=0A= aFrame.style.left =3D -(aBubble.offsetWidth+frameWidth) + "px";=0A= aFrame.style.width =3D aBubble.offsetWidth + "px";=0A= aFrame.style.height =3D aBubble.offsetHeight + "px";=0A= aFrame.style.display =3D "block";=0A= this.currentFrame =3D aFrame;=0A= }=0A= this.currentBubble =3D aBubble;=0A= }=0A= =0A= if(this.timeoutBubbleID) {=0A= clearTimeout(this.timeoutBubbleID);=0A= }=0A= },=0A= =0A= hide: function() {=0A= if(this.currentBubble) {=0A= this.currentLink.style.background =3D '#FFFFFF';=0A= this.currentLink.style.border =3D '1px solid #FFFFFF';=0A= this.currentLink.style.margin =3D'3px 5px 3px 5px';=0A= this.currentBubble.style.display =3D 'none';=0A= if(aFrame){=0A= this.currentFrame.style.display =3D 'none';=0A= }=0A= this.currentBubble.style.top =3D 0;=0A= this.currentBubble =3D null;=0A= if(this.timeoutBubbleID) {=0A= clearTimeout(this.timeoutBubbleID);=0A= }=0A= }=0A= },=0A= =0A= timeout: function() {=0A= this.timeoutBubbleID =3D setTimeout('InfoBubble.hide()', = this.bubbleTimeout * 1000);=0A= },=0A= =0A= fadeIn: function() {=0A= if(this.currentBubble) {=0A= OPAC =3D OPAC + .10;=0A= OPAC =3D (OPAC>1)?1:OPAC;=0A= this.currentBubble.style.filter =3D = 'alpha(opacity=3D'+parseInt(100*OPAC)+')';=0A= this.currentBubble.style.opacity =3D OPAC;=0A= if(OPAC<1) {=0A= setTimeout('InfoBubble.fadeIn()',25);=0A= }=0A= }=0A= }=0A= }=0A= =0A= function findPosY(obj) {=0A= var curtop =3D 0;=0A= if(obj.offsetParent) {=0A= while(1) {=0A= curtop +=3D obj.offsetTop;=0A= if(!obj.offsetParent) { break; }=0A= obj =3D obj.offsetParent;=0A= }=0A= }=0A= else if(obj.y) {=0A= curtop +=3D obj.y;=0A= }=0A= return curtop;=0A= }=0A= =0A= function getWindowHeight() {=0A= var windowHeight=3D0;=0A= if(typeof(window.innerHeight) =3D=3D 'number') {=0A= windowHeight =3D window.innerHeight;=0A= }=0A= else {=0A= if(document.documentElement && = document.documentElement.clientHeight) {=0A= windowHeight =3D document.documentElement.clientHeight;=0A= }=0A= else {=0A= if(document.body && document.body.clientHeight) {=0A= windowHeight =3D document.body.clientHeight;=0A= }=0A= }=0A= }=0A= return windowHeight;=0A= }=0A= =0A= function toggleMLKT(uoi, imgDefault, imgFlip, urlPrefix) {=0A= var mlktItems =3D document.getElementById('mlkt');=0A= if(mlktItems.style.display =3D=3D "none") {=0A= var mlktList =3D document.getElementById('mlktList');=0A= mlktItems.style.display =3D '';=0A= document.getElementById('mlktArrow').src =3D imgDefault;=0A= if(mlktList.innerHTML.length =3D=3D 0) {=0A= mlktList.innerHTML =3D 'LOADING...';=0A= =0A= new Ajax.Updater('mlktList', urlPrefix+'/mlkt/2/'+uoi, = {method:'get'});=0A= }=0A= else {=0A= new Ajax.Request(urlPrefix+'/mlkt/1', {method:'get'});=0A= }=0A= }=0A= else {=0A= mlktItems.style.display =3D 'none';=0A= document.getElementById('mlktArrow').src =3D imgFlip;=0A= new Ajax.Request(urlPrefix+'/mlkt/0', {method:'get'});=0A= }=0A= }=0A= =0A= function mlktHover(hoverOver, imgPrefix) {=0A= var mlktItems =3D document.getElementById('mlkt');=0A= var mlktImg =3D document.getElementById('mlktArrow');=0A= if(mlktItems.style.display =3D=3D "none") {=0A= if(hoverOver =3D=3D 1) {=0A= mlktImg.src =3D imgPrefix + 'btn_arrow_down_on.gif';=0A= }=0A= else {=0A= mlktImg.src =3D imgPrefix + 'btn_arrow_down_off.gif';=0A= }=0A= }=0A= else {=0A= if(hoverOver =3D=3D 1) {=0A= mlktImg.src =3D imgPrefix + 'btn_arrow_up_on.gif';=0A= }=0A= else {=0A= mlktImg.src =3D imgPrefix + 'btn_arrow_up_off.gif';=0A= }=0A= }=0A= }=0A= =0A= // referenceBubble.js=0A= var RefPreview =3D {=0A= =0A= previewTimeout: 1,=0A= currentPreview: null,=0A= timeoutPreviewID: null,=0A= =0A= showRef: function(event, elemId, boxId) {=0A= var disableFade =3D 0;=0A= if(this.currentPreview) {=0A= disableFade =3D 1;=0A= }=0A= var refPrev =3D document.getElementById(boxId);=0A= var reference =3D document.getElementById(elemId);=0A= if(reference =3D=3D null || reference.innerHTML.length <=3D 0) { = return; }=0A= =0A= if (document.getElementById('refCon') !=3D null) {=0A= var d =3D document.getElementById('refCon');=0A= d.parentNode.removeChild( d );=0A= }=0A= =0A= var newSpan =3D document.createElement("span");=0A= newSpan.setAttribute('id', 'refCon');=0A= newSpan.innerHTML =3D reference.innerHTML;=0A= refPrev.appendChild(newSpan);=0A= =0A= if(refPrev !=3D this.currentPreview) {=0A= this.hide();=0A= if(disableFade =3D=3D 0) {=0A= refPrev.style.filter =3D 'alpha(opacity=3D0)';=0A= refPrev.style.opacity =3D 0;=0A= }=0A= else {=0A= refPrev.style.filter =3D '';=0A= refPrev.style.opacity =3D '';=0A= }=0A= var x =3D 0;=0A= var y =3D 0;=0A= =0A= var maxX;=0A= var maxY;=0A= =0A= refPrev.style.position=3D"absolute";=0A= refPrev.style.display =3D "block";=0A= var divX =3D refPrev.offsetWidth;=0A= var divY =3D refPrev.offsetHeight;=0A= =0A= if (document.all && !window.opera) {=0A= if (document.documentElement && = document.documentElement.scrollTop) {=0A= maxX =3D document.documentElement.clientWidth + = document.documentElement.scrollLeft - divX;=0A= maxY =3D document.documentElement.clientHeight + = document.documentElement.scrollTop - divY;=0A= y =3D event.clientY + document.documentElement.scrollTop - 340;=0A= x =3D event.clientX + document.documentElement.scrollLeft + 15;=0A= } else {=0A= maxX =3D document.body.clientWidth + document.body.scrollLeft = - divX;=0A= maxY =3D document.body.clientHeight + document.body.scrollTop = - divY;=0A= =0A= y =3D event.clientY + document.body.scrollTop - 340 ; =0A= x =3D event.clientX + document.body.scrollLeft + 15;=0A= }=0A= } else {=0A= maxX =3D window.innerWidth + window.pageXOffset - divX;=0A= maxY =3D window.innerHeight + window.pageYOffset - divY;=0A= =0A= y =3D event.pageY - 340;=0A= x =3D event.pageX + 15;=0A= }=0A= =0A= if (x > maxX) {=0A= x =3D maxX - 25;=0A= }=0A= if (y > maxY) {=0A= y =3D maxY - 30;=0A= }=0A= =0A= refPrev.style.top =3D y + "px";=0A= refPrev.style.left =3D x + "px";=0A= =0A= this.currentPreview =3D refPrev;=0A= if(disableFade =3D=3D 0) {=0A= setTimeout('RefPreview.fadeIn()',100);=0A= OPAC =3D 0;=0A= }=0A= }=0A= =0A= if(this.timeoutPreviewID) {=0A= clearTimeout(this.timeoutPreviewID);=0A= }=0A= },=0A= =0A= hide: function() {=0A= if(this.currentPreview) {=0A= this.currentPreview.style.display =3D 'none';=0A= this.currentPreview =3D null;=0A= if(this.timeoutPreviewID) {=0A= clearTimeout(this.timeoutPreviewID);=0A= }=0A= }=0A= },=0A= =0A= hideRef: function() {=0A= if(OPAC =3D=3D 0) {=0A= RefPreview.hide();=0A= }=0A= else {=0A= this.timeoutPreviewID =3D setTimeout('RefPreview.hide()', = this.previewTimeout * 2000);=0A= }=0A= },=0A= =0A= fadeIn: function() {=0A= if(this.currentPreview) {=0A= OPAC =3D OPAC + .10;=0A= OPAC =3D (OPAC>1)?1:OPAC;=0A= this.currentPreview.style.filter =3D = 'alpha(opacity=3D'+parseInt(100*OPAC)+')';=0A= this.currentPreview.style.opacity =3D OPAC;=0A= if(OPAC<1) {=0A= setTimeout('RefPreview.fadeIn()',25);=0A= }=0A= }=0A= }=0A= }=0A= =0A= // resizableImages.js=0A= //_____________ The following arrays are synched with each other...=0A= var resizableImages =3D new Array();=0A= var resizableImageBaseWidth =3D new Array();=0A= var resizableImageLinks =3D new Array();=0A= //_____________ End of synched arrays=0A= =0A= var resizableRefsInitilized =3D 0;=0A= var NaturalWidthSupported =3D 0;=0A= =0A= =0A= // RESIZE_CLIENT_ADJUST_PX=0A= // -- reflects the amount of space for the FAT TAB Inner div=0A= // and misc margins (...).=0A= var RESIZE_CLIENT_ADJUST_PX =3D 405;=0A= =0A= function setNaturalWidthSupported(inResizableImage) {=0A= if (inResizableImage.naturalWidth)=0A= {=0A= NaturalWidthSupported =3D 1;=0A= } else {=0A= NaturalWidthSupported =3D 0;=0A= }=0A= }=0A= =0A= function getBaseWidth(inImage) {=0A= var baseWidth =3D 0;=0A= if (inImage.naturalWidth)=0A= {=0A= baseWidth =3D inImage.naturalWidth;=0A= } else {=0A= var imageTargetWidth;=0A= var imgClone =3D inImage.cloneNode(0);=0A= inImage.className =3D '';=0A= inImage.style.width =3D 'auto';=0A= inImage.style.height =3D 'auto';=0A= inImage.style.borderWidth =3D '0';=0A= inImage.style.padding =3D '0';=0A= inImage.removeAttribute('width');=0A= inImage.removeAttribute('height');=0A= baseWidth =3D parseInt(inImage.width);=0A= if ((parseInt(document.body.clientWidth)- RESIZE_CLIENT_ADJUST_PX)=0A= < baseWidth)=0A= {=0A= imageTargetWidth =3D parseInt(document.body.clientWidth)-=0A= RESIZE_CLIENT_ADJUST_PX;=0A= }=0A= else=0A= {=0A= imageTargetWidth =3D baseWidth;=0A= }=0A= inImage.setAttribute('width' , '' + imageTargetWidth + 'px' );=0A= inImage.setAttribute('height', 'auto' );=0A= inImage.setAttribute('height', imgClone.getAttribute('height') );=0A= inImage.style.width =3D "" + imageTargetWidth + "px";=0A= inImage.style.height =3D 'auto';=0A= inImage.className =3D imgClone.className ;=0A= inImage.style.padding =3D imgClone.style.padding ;=0A= inImage.style.borderWidth=3D imgClone.style.borderWidth ;=0A= }=0A= return(baseWidth);=0A= }=0A= =0A= function initResizableRefs() {=0A= if (! resizableRefsInitilized)=0A= {=0A= var resizableContainers;=0A= var currentResizableImages; // should be collection of 1=0A= var currentResizableLinks; // should be collection of 1=0A= =0A= resizableContainers =3D getElementsByClassName(document,=0A= 'DIV',=0A= 'sizeImgBox');=0A= for(var k=3D0;k 0) &&=0A= (currentResizableLinks.length > 0))=0A= {=0A= resizableImages.push(currentResizableImages[0]);=0A= resizableImageLinks.push(currentResizableLinks[0]);=0A= resizableImageBaseWidth.push(=0A= getBaseWidth(currentResizableImages[0],=0A= resizableContainers[k]));=0A= if (resizableImages.length =3D=3D 1)=0A= {=0A= setNaturalWidthSupported(currentResizableImages[0]);=0A= }=0A= }=0A= }=0A= }=0A= resizableRefsInitilized =3D 1;=0A= }=0A= =0A= function setVisibilityOfResizableImageLinks() {=0A= var currentResizableImage;=0A= var currentResizableLink;=0A= =0A= initResizableRefs();=0A= for(var k=3D0;k 0) &&=0A= (currentScrollableTableLinks.length > 0))=0A= {=0A= currentScrollableTables =3D getElementsByClassName(=0A= = currentScrollableTableDivs[0],=0A= 'TABLE',=0A= '*');=0A= if (currentScrollableTables.length > 0) {=0A= scrollableTableDivs.push(currentScrollableTableDivs[0]);=0A= scrollableTables.push(currentScrollableTables[0]);=0A= scrollableTableLinks.push(currentScrollableTableLinks[0]);=0A= }=0A= currentScrollableImg =3D getElementsByClassName(=0A= = currentScrollableTableDivs[0],=0A= 'IMG',=0A= '*');=0A= if(currentScrollableImg.length > 0){=0A= scrollableTableDivs.push(currentScrollableTableDivs[0]);=0A= scrollableTables.push(currentScrollableImg[0]);=0A= scrollableTableLinks.push(currentScrollableTableLinks[0]);=0A= }=0A= } =0A= }=0A= }=0A= scrollableTableRefsInitilized =3D 1;=0A= }=0A= =0A= function setVisibilityOfScrollableTableLinks() {=0A= initScrollableTableRefs();=0A= =0A= for(var k=3D0;k parseFloat(reqMajorVer)) {=0A= return "supported";=0A= } else if (versionMajor =3D=3D parseFloat(reqMajorVer)) {=0A= if (versionMinor > parseFloat(reqMinorVer))=0A= return "supported";=0A= else if (versionMinor =3D=3D parseFloat(reqMinorVer)) {=0A= if (versionRevision >=3D parseFloat(reqRelease)){=0A= return "supported";=0A= }else{ =0A= return "version_mismatch";=0A= } =0A= } else {=0A= return "version_mismatch";=0A= }=0A= }=0A= }=0A= }=0A= function MMCvArtTabSwitch(inTabName)=0A= { if (MMCvContentExists())=0A= {=0A= if (('graphTab' =3D=3D inTabName)=0A= || ('refTab' =3D=3D inTabName))=0A= { MMCvHide(); }=0A= else =0A= { MMCvShow(); }=0A= }=0A= }=0A= function bookmarkKE(domain) {=0A= var url;=0A= url =3D bookMarkEventURL;=0A= url +=3D domain;=0A= new Ajax.Request(url, {method:'get'});=0A= }=0A= function getDomain(str)=0A= {=0A= var startPattern =3D null;=0A= if ( str.match("http://") ) {=0A= startPattern =3D "http://";=0A= } else if( str.match("https://") ) {=0A= startPattern =3D "https://";=0A= }=0A= if (startPattern !=3D null) {=0A= var i =3D str.indexOf(startPattern);=0A= var endPattern =3D "/";=0A= var j =3D str.indexOf(endPattern, i+startPattern.length);=0A= var domain =3D str.substring(i+startPattern.length, j);=0A= return domain;=0A= } else {=0A= return null;=0A= }=0A= }=0A= function bookmarkEvent(event){=0A= var url;=0A= if (navigator.userAgent.indexOf("MSIE")!=3D-1) {=0A= if (event.srcElement !=3D '') {=0A= if(event.srcElement =3D=3D '[object]'){=0A= url =3D event.srcElement.parentNode.href+'';=0A= } else {=0A= url =3D event.srcElement+'';=0A= }=0A= } else { =0A= //will get the action from the form element=0A= url =3D event.srcElement.nextSibling.nextSibling.action;=0A= }=0A= } else {=0A= if (event.target !=3D '') {=0A= if (event.target =3D=3D '[object HTMLImageElement]'){=0A= url=3D event.target.parentNode.href+'';=0A= } else {=0A= url=3D event.target+'';=0A= }=0A= } else {=0A= //will get the action from the form element=0A= url =3D event.target.nextSibling.nextSibling.action;=0A= }=0A= } =0A= if( url !=3D null){=0A= var domain =3D getDomain(url);=0A= if (domain !=3Dnull){=0A= bookmarkKE(domain);=0A= }=0A= } =0A= }=0A= function $Id(id){return document.getElementById(id);}=0A= var isFadeOn =3D 0;=0A= function focusArticle(focusOn) {=0A= var imgToolBox =3D $('imgToggleBox');=0A= var artTabs =3D $('artTabs');=0A= var articleBody =3D $('articleBody');=0A= var focusEnable =3D $Id('focusOn');=0A= var focusDisable =3D $Id('focusOff'); =0A= var articleFade =3D $Id('articleFade');=0A= if(isFadeOn || focusOn) {=0A= articleFade.style.display=3D'inline';=0A= articleFade.style.height =3D 1050 + 'px';=0A= var maxheight =3D parseInt(document.body.scrollHeight);=0A= articleFade.style.height =3D (maxheight+20)+'px';=0A= articleFade.style.width =3D = (parseInt(document.body.scrollWidth))+'px';=0A= artTabs.addClassName('articleTabsNoFade');=0A= if (imgToolBox !=3D null) {=0A= imgToolBox.addClassName('imgToogleNoFade');=0A= }=0A= articleBody.addClassName('articleNoFade');=0A= focusEnable.style.display =3D 'inline';=0A= focusDisable.style.display =3D 'none';=0A= =0A= var url;=0A= url =3D focusKeyEventURL;=0A= new Ajax.Request(url, {method:'get'});=0A= isFadeOn =3D 1;=0A= }=0A= else {=0A= articleFade.style.height =3D '0px';=0A= articleFade.style.display=3D'none';=0A= artTabs.removeClassName('articleTabsNoFade');=0A= if (imgToolBox !=3D null) {=0A= imgToolBox.removeClassName('imgToogleNoFade');=0A= }=0A= articleBody.removeClassName('articleNoFade');=0A= focusEnable.style.display =3D 'none';=0A= focusDisable.style.display =3D 'inline';=0A= isFadeOn =3D 0;=0A= }=0A= }=0A= var focusOpac=3D0;=0A= function setOpacInc() {=0A= var articleFade =3D $Id('articleFade');=0A= focusOpac =3D focusOpac + 20;=0A= focusOpac =3D (focusOpac>80)?80 :focusOpac;=0A= articleFade.style.filter =3D 'alpha(opacity=3D'+focusOpac+')';=0A= articleFade.style.opacity =3D focusOpac/100;=0A= if(focusOpac<80) {=0A= setTimeout('setOpacInc()',62.5);=0A= }=0A= }=0A= function setOpacDec() {=0A= var articleFade =3D $Id('articleFade');=0A= focusOpac =3D focusOpac - 20;=0A= focusOpac =3D (focusOpac>0)?focusOpac :0;=0A= articleFade.style.filter =3D 'alpha(opacity=3D'+focusOpac+')';=0A= articleFade.style.opacity =3D focusOpac/100;=0A= if (focusOpac > 0) {=0A= setTimeout('setOpacDec()',62.5);=0A= }=0A= else {=0A= focusArticle(0);=0A= }=0A= }=0A= function fadeIn(eID) {=0A= focusArticle(1);=0A= isFadeOn =3D 1;=0A= setOpacInc();=0A= }=0A= function fadeOut(eID) {=0A= isFadeOn =3D 0;=0A= setOpacDec();=0A= }=0A= var resizePage =3D {=0A= currWidth: null,=0A= init: function() {=0A= var tabs =3D document.getElementById('artTabs');=0A= var tab =3D getElementsByClassName(tabs, 'DIV', 'On');=0A= var tabWidth =3D 0;=0A= var numTabs =3D tab.length;=0A= var appVer_b =3D /Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent);=0A= var appVer =3D new Number(RegExp.$1);=0A= if(navigator.appName =3D=3D"Netscape" && appVer =3D=3D 2) {=0A= tab =3D tabs.getElementsByTagName('DIV');=0A= for(var i =3D0 ; i < tab.length; i++) {=0A= if (tab[i].id !=3D "" ) {=0A= tabWidth +=3D $(tab[i].id).getDimensions().width;=0A= }=0A= }=0A= if ($('TabOff') !=3D null) {=0A= tabWidth +=3D 63;=0A= }else {=0A= tabWidth -=3D 40;=0A= }=0A= }else {=0A= for(var i =3D0 ; i < numTabs; i++) {=0A= tabWidth +=3D $(tab[i].id).getDimensions().width;=0A= }=0A= }=0A= this.currWidth =3D tabWidth + 40;=0A= }=0A= }=0A= function resizeTabs() {=0A= =0A= var featureRow =3D = getElementsByClassName(document,'LI','featureCount');=0A= var fCnt =3D featureRow.length;=0A= featureRow[fCnt-1].style.background =3D "none";=0A= =0A= if (document.all && (document.body.scrollHeight > 32000)) {=0A= var focusIcon =3D document.getElementById('focusButton');=0A= focusIcon.style.display =3D 'none';=0A= }=0A= resizePage.init();=0A= document.getElementById('artTabs').style.width =3D = resizePage.currWidth;=0A= var winWidth =3D document.viewport.getWidth();=0A= var currWidth =3D resizePage.currWidth + 410; =0A= if (winWidth < currWidth ) {=0A= document.getElementById('articlePage').style.width =3D = resizePage.currWidth + 400;=0A= }else {=0A= document.getElementById('articlePage').style.width =3D '100%';=0A= }=0A= }=0A= =0A= function resizeWindow() {=0A= checkWidget();=0A= resizeImgs(); =0A= resetScrollableTables(); =0A= resizeTabs();=0A= }=0A= =0A= // Reflect=0A= /* to restore original html */=0A= var articleHtml =3D '';=0A= var isNextBioOn =3D '';=0A= var isReflectOn =3D '';=0A= var super_ref=3D"";=0A= var sub_ref=3D"";=0A= var reflectHtmlProcessing =3D '';=0A= var highlightKeyWdsMenu =3D '';=0A= var htmlLength =3D '';=0A= var highlite=3D"";=0A= var lodingref=3D"false";=0A= var outflage=3D"false";=0A= var outcount=3D0;=0A= var shr=3D'';=0A= var reflectTimer =3D '';=0A= function HighlightKeyWdsMenu() {=0A= var self =3D this;=0A= this.sup =3D document.getElementById('highLight_attach_menu_parent');=0A= this.higLytOnPadVal =3D '64px';=0A= this.higLytOffPadVal =3D '79px';=0A= this.statusImg =3D '';=0A= this.highlite=3D"true";=0A= this.updateMenuText =3D function(highLytOn) {=0A= if (highLytOn =3D=3D "true") {=0A= if(document.getElementById('linktext').innerHTML !=3D null) {=0A= document.getElementById('linktext').innerHTML =3D '';=0A= document.getElementById('linktext').innerHTML =3D "Highlight = keywords on";=0A= var pBorder =3D = document.getElementById('highLight_attach_menu_parent');=0A= if (pBorder) {=0A= pBorder.style.paddingRight=3Dself.higLytOnPadVal;=0A= }=0A= }=0A= } else {=0A= if(document.getElementById('linktext').innerHTML !=3D null) {=0A= document.getElementById('linktext').innerHTML =3D '';=0A= document.getElementById('linktext').innerHTML =3D "Highlight = keywords";=0A= var pBorder =3D = document.getElementById('highLight_attach_menu_parent');=0A= if (pBorder) {=0A= pBorder.style.paddingRight=3Dself.higLytOffPadVal;=0A= }=0A= }=0A= }=0A= };=0A= =0A= this.reflectStatusupdate =3D function(statusText) {=0A= if (statusText =3D=3D "processing"){=0A= document.getElementById('ReflectText').style.display =3D 'inline';=0A= document.getElementById('ReflectText').style.fontSize =3D '12px';=0A= document.getElementById('ReflectText').style.color =3D "#555555";=0A= document.getElementById('ReflectText').firstChild.nodeValue =3D " = loading ";=0A= = document.getElementById('reflectThrobber').style.display=3D'inline';=0A= document.getElementById('reflectMainText').style.fontWeight =3D = 'bold';=0A= highlite=3D"false";=0A= self.updateMenuText(highlite);=0A= if (self.sup.addEventListener && self.sup.compareDocumentPosition) = {=0A= = self.sup.removeEventListener("mouseout",self.mouseLeaveHandler,false);=0A= }=0A= else if (self.sup.attachEvent) {=0A= for(var x=3D0; x < outcount;x++)=0A= {=0A= self.sup.detachEvent("onmouseleave",this.at_hide);=0A= }=0A= }=0A= lodingref=3D"true";=0A= } else if(statusText =3D=3D "success") {=0A= document.getElementById('reflectThrobber').style.display=3D'none';=0A= document.getElementById('ReflectText').style.display =3D 'none';=0A= highlite=3D"true";=0A= self.updateMenuText(highlite);=0A= self.outListener();=0A= } else if(statusText =3D=3D "error") {=0A= document.getElementById('reflectThrobber').style.display=3D'none';=0A= document.getElementById('ReflectText').style.color =3D "#ff0000";=0A= document.getElementById('ReflectText').firstChild.nodeValue =3D " = service unavailable";=0A= document.getElementById('ReflectText').style.fontSize =3D '12px';=0A= document.getElementById('ReflectText').style.display =3D 'inline';=0A= document.getElementById('reflectmenu').disabled =3D true;=0A= document.getElementById('reflectmenu').style.opacity=3D'0.4';=0A= document.getElementById('reflectMainText').style.color = =3D"#555555";=0A= document.getElementById('reflectMainText').style.fontWeight =3D = 'normal';=0A= document.getElementById('reflectSubText').style.color =3D"#555555";=0A= document.getElementById('noHighLight').checked=3D"checked";=0A= highlite=3D"false";=0A= self.updateMenuText(highlite);=0A= self.outListener();=0A= } else if(statusText =3D=3D "NoReflectMatching") {=0A= document.getElementById('reflectThrobber').style.display=3D'none';=0A= document.getElementById('ReflectText').style.display =3D 'none';=0A= document.getElementById('reflectmenu').disabled =3D true;=0A= document.getElementById('reflectmenu').style.opacity=3D'0.4';=0A= document.getElementById('reflectMainText').style.color = =3D"#555555";=0A= document.getElementById('reflectMainText').style.fontWeight =3D = 'normal';=0A= document.getElementById('reflectSubText').firstChild.nodeValue =3D = "no proteins and chemicals to highlight";=0A= document.getElementById('reflectSubText').style.color =3D"#555555";=0A= document.getElementById('noHighLight').checked=3D"checked";=0A= highlite=3D"false";=0A= self.updateMenuText(highlite);=0A= self.outListener();=0A= }=0A= };=0A= this.showBorders =3D function () {=0A= var pBorder =3D = document.getElementById('highLight_attach_menu_parent');=0A= if (pBorder) {=0A= pBorder.style.borderLeft =3D '1px solid #9b9b9b';=0A= pBorder.style.borderRight =3D '1px solid #9b9b9b';=0A= pBorder.style.borderTop =3D '1px solid #9b9b9b';=0A= self.statusImg=3D document.getElementById('state_image');=0A= self.statusImg.src=3D"/scidirimg/minus.gif";=0A= self.statusImg.alt=3D"close menu";=0A= self.updateMenuText(highlite);=0A= }=0A= };=0A= =0A= this.hideBorders =3D function() {=0A= var pBorder =3D = document.getElementById('highLight_attach_menu_parent');=0A= if (pBorder) {=0A= pBorder.style.border =3D 'none';=0A= self.statusImg=3Ddocument.getElementById('state_image');=0A= self.statusImg.src=3D"/scidirimg/plus.gif";=0A= self.statusImg.alt=3D"open menu";=0A= var featureCountLi =3D = getElementsByClassName(document,'LI','featureCount');=0A= for (i=3D0;i=3D 150){=0A= bufWidth +=3D = featureCountLi[i].getElementsByTagName("a")[0].offsetWidth +7;=0A= lastWidth=3D = featureCountLi[i].getElementsByTagName("a")[0].offsetWidth +7;=0A= }else{=0A= bufWidth +=3D featureCountLi[i].offsetWidth;=0A= lastWidth=3DfeatureCountLi[i].offsetWidth;=0A= }=0A= if(bufWidth >=3D totWidth){=0A= bufWidth =3D lastWidth;=0A= excede=3D1;=0A= }=0A= if(featureCountLi[i].id =3D=3D "highLight_attach_menu_parent"){=0A= if(excede=3D=3D1){=0A= if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){=0A= featureCountLi[i-1].style.display =3D "inline";=0A= } else {=0A= featureCountLi[i-1].style.display =3D "inline-block";=0A= }=0A= featureCountLi[i-1].style.marginRight =3D = Math.abs(totWidth - bufTest)-3+ "px";=0A= }=0A= break;=0A= }=0A= }=0A= self.at_show_aux(p, c);=0A= self.statusImg=3D document.getElementById('state_image');=0A= self.statusImg.src=3D"/scidirimg/minus.gif";=0A= self.statusImg.alt=3D"close menu";=0A= if(lodingref=3D=3D"false"){=0A= self.outListener();=0A= }=0A= }=0A= else {=0A= c.style.visibility =3D "hidden";=0A= self.statusImg=3Ddocument.getElementById('state_image');=0A= self.statusImg.src=3D"/scidirimg/plus.gif";=0A= self.statusImg.alt=3D"open menu";=0A= self.hideBorders();=0A= }=0A= return false;=0A= };=0A= }=0A= // This function will verify whether widget is open or not when window = is resized.=0A= function checkWidget()=0A= {=0A= if (isNextBioOn || isReflectOn) {=0A= var menuChldElemnt =3D "highLight_attach_menu_child_no_nextBio";=0A= if (isNextBioOn && isReflectOn) {=0A= menuChldElemnt =3D "highLight_attach_menu_child";=0A= }=0A= var c=3Ddocument.getElementById(menuChldElemnt);=0A= if(c && (c.style.visibility=3D=3D"visible"))=0A= {=0A= c.style.visibility =3D "hidden";=0A= = highlightKeyWdsMenu.statusImg=3Ddocument.getElementById('state_image');=0A= highlightKeyWdsMenu.statusImg.src=3D"/scidirimg/plus.gif";=0A= highlightKeyWdsMenu.statusImg.alt=3D"open menu";=0A= highlightKeyWdsMenu.hideBorders();=0A= }=0A= }=0A= }=0A= function at_attach(parent, child, showtype, position, cursor)=0A= {=0A= highlightKeyWdsMenu =3D new HighlightKeyWdsMenu();=0A= var p =3D document.getElementById(parent);=0A= var c =3D document.getElementById(child);=0A= super_ref=3Dp;=0A= sub_ref=3Dc;=0A= p.style.cursor=3D"pointer";=0A= switch (showtype)=0A= {=0A= case "click":=0A= p.onclick =3D highlightKeyWdsMenu.at_click;=0A= break;=0A= case "hover":=0A= break;=0A= }=0A= if(isNextBioOn) {=0A= highlite=3D"true";=0A= highlightKeyWdsMenu.updateMenuText(highlite);=0A= document.getElementById('nextbioMainText').style.fontWeight =3D = 'bold';=0A= } else {=0A= highlite=3D"false";=0A= highlightKeyWdsMenu.updateMenuText(highlite);=0A= }=0A= =0A= }=0A= =0A= Array.prototype.getOccur =3D function (value)=0A= {=0A= var occur =3D new Array();=0A= var idx =3D 0;=0A= for (var i=3D0;i 0) {=0A= self.processDivs[idx] =3D divname;=0A= idx =3D idx +1;=0A= articleHTML =3D articleHTML + self.delimtr + = innerHtml;=0A= }=0A= }=0A= }=0A= i++;=0A= currentElementChild=3DcurrentElement.childNodes[i];=0A= }=0A= if(articleHTML !=3D null) {=0A= return articleHTML;=0A= }=0A= };=0A= this.updateReflectedHTML =3D function(currentElement) {=0A= if(currentElement =3D=3D null) {=0A= return;=0A= }=0A= var processedDivs =3D new Array();=0A= processedDivs =3D [];=0A= var firstdelimtr =3D currentElement.substr(0,self.delimtr.length);=0A= if (firstdelimtr =3D=3D self.delimtr) {=0A= currentElement =3D currentElement.substr(self.delimtr.length);=0A= }=0A= var innerHtml =3D currentElement.split(self.delimtr);=0A= if (innerHtml.length !=3D self.processDivs.length) {=0A= return ;=0A= }=0A= =0A= processedDivs =3D self.processDivs.getUnique();=0A= var divElements =3D = document.getElementById('articleContent').getElementsByTagName('DIV');=0A= =0A= for (var i=3D0;i';=0A= var postField =3D emptyHead + htmlCode;=0A= var hrefT =3D location.href;=0A= var tmppostParams =3D = 'document=3D'+encodeURIComponent(postField)+'&URI=3D'+encodeURIComponent(= hrefT)+'&autodetectDOI=3D'+encodeURIComponent('0');=0A= var postParams =3D 'SDProxyParam=3D' + = encodeURIComponent(tmppostParams);=0A= ajaxRequest(reflectPostUrl,postParams);=0A= }=0A= =0A= function removeReflectHighlight(){=0A= if(isReflectOn) {=0A= document.getElementById('reflectMainText').style.fontWeight =3D = 'normal';=0A= document.getElementById('reflectThrobber').style.display=3D'none';=0A= document.getElementById('ReflectText').style.display =3D 'none';=0A= if(articleHtml) {=0A= document.getElementById('articleContent').innerHTML =3D articleHtml;=0A= }=0A= }=0A= }=0A= function removeNextBioHighlighting() {=0A= if(isNextBioOn) {=0A= nbApi.disableHl();=0A= document.getElementById('nextbioMainText').style.fontWeight =3D = 'normal';=0A= document.getElementById('nextBioThrobber').style.display=3D'none';=0A= }=0A= }=0A= function enableNextBioHighlighting(){=0A= removeReflectHighlight();=0A= if(lodingref=3D=3D"true" && outflage=3D=3D"false"){=0A= highlightKeyWdsMenu.outListener();=0A= outflage=3D"true";=0A= }=0A= if(isNextBioOn) {=0A= document.getElementById('nextBioThrobber').style.display=3D'inline';=0A= nbApi.enableHl();=0A= document.getElementById('nextbioMainText').style.fontWeight =3D = 'bold';=0A= highlite=3D"true";=0A= highlightKeyWdsMenu.updateMenuText(highlite);=0A= document.getElementById('nextBioThrobber').style.display=3D'none';=0A= }=0A= }=0A= function removeHighlighting() {=0A= removeReflectHighlight();=0A= removeNextBioHighlighting();=0A= if(lodingref=3D=3D"true" && outflage=3D=3D"false"){=0A= highlightKeyWdsMenu.outListener();=0A= outflage=3D"true";=0A= }=0A= document.getElementById('noHighLight').checked =3D true;=0A= highlite=3D"false";=0A= highlightKeyWdsMenu.updateMenuText(highlite);=0A= }=0A= // End Reflect=0A= =0A= //Author Hover start=0A= var ajaxReq;=0A= var hoverId;=0A= var timerId;=0A= var linkBufObj;=0A= var authId;=0A= var timerIdAuth;=0A= =0A= function clearAuthTimeout()=0A= {=0A= if(hoverId !=3D null) {=0A= clearTimeout(hoverId);=0A= clearTimeout(timerIdAuth);=0A= document.getElementById('authorLinkHover').style.display =3D = "block";=0A= }=0A= }=0A= =0A= function closeAuth()=0A= {=0A= if (timerId !=3D null) {=0A= clearTimeout(timerId);=0A= }=0A= =0A= if (timerIdAuth !=3D null) {=0A= clearTimeout(timerIdAuth);=0A= }=0A= =0A= hoverId =3D setTimeout("closeAuthHover()", 200);=0A= }=0A= =0A= =0A= function closeAuthHover()=0A= {=0A= document.getElementById('authorLinkHover').style.display =3D "none";=0A= }=0A= =0A= function displayAuth (url,obj)=0A= {=0A= =0A= if (hoverId !=3D null) {=0A= clearTimeout(hoverId);=0A= }=0A= =0A= linkBufObj =3D obj;=0A= var str =3D 'displayAuthHover("'+url+'")';=0A= timerIdAuth =3D setTimeout(str, 200);=0A= timerId =3D setTimeout('displayErrorMsg("'+obj+'")', 10000);=0A= }=0A= =0A= function displayErrorMsg(obj)=0A= {=0A= clearTimeout(timerId);=0A= ajaxReq.transport.onreadystatechange =3D Prototype.emptyFunction;=0A= // abort the XHR=0A= ajaxReq.transport.abort();=0A= //update the request counter=0A= Ajax.activeRequestCount--;=0A= var d =3D document.getElementById('authorLinkHover');=0A= =0A= if(d.length < 1) { return; }=0A= d.innerHTML =3D '
Author = details are not currently available
Provided by Scopus
';=0A= }=0A= =0A= var objAuth =3D new Object();=0A= =0A= function displayAuthHover(url)=0A= {=0A= if (ajaxReq !=3D null) {=0A= ajaxReq.transport.onreadystatechange =3D Prototype.emptyFunction;=0A= // abort the XHR=0A= ajaxReq.transport.abort();=0A= //update the request counter=0A= Ajax.activeRequestCount--;=0A= }=0A= var d =3D document.getElementById('authorLinkHover');=0A= if(d.length < 1) { return; }=0A= assignPosition(d);=0A= d.style.display=3D"block";=0A= =0A= var temp =3D url.split("/");=0A= authName =3D temp[4];=0A= =0A= var decodeAuthName =3D decodeURIComponent(authName);=0A= =0A= var temp1, authFullName;=0A= if (decodeAuthName.indexOf(",") !=3D -1) {=0A= var temp1 =3D decodeAuthName.split(", ");=0A= var lastName =3D temp1[0];=0A= var firstName =3D temp1[1];=0A= authFullName =3D firstName + " " + lastName;=0A= } else {=0A= authFullName =3D decodeAuthName;=0A= }=0A= var authNameEncoded =3D encodeURIComponent(authFullName);=0A= =0A= temp[4] =3D authNameEncoded;=0A= var finalURL =3D = temp[0]+"/"+temp[1]+"/"+temp[2]+"/"+temp[3]+"/"+temp[4]; =0A= var decodeUrl =3D decodeURIComponent(finalURL);=0A= =0A= //Get author name from url=0A= var startAuthPos =3D decodeUrl.lastIndexOf("/");=0A= var authorName =3D decodeUrl.substring(startAuthPos+1);=0A= =0A= //Get author id from url=0A= var endPos =3D finalURL.lastIndexOf("/");=0A= var startPos =3D finalURL.lastIndexOf("/", endPos-1);=0A= =0A= authId =3D finalURL.substring(startPos+1, endPos);=0A= =0A= var resText =3D "";=0A= if (objAuth["'"+authId+"'"] !=3D null && = objAuth["'"+authId+"'"].length > 0) {=0A= resText =3D objAuth["'"+authId+"'"];=0A= }=0A= =0A= if (resText.length =3D=3D 0) {=0A= =0A= document.getElementById('authorLinkHover').innerHTML =3D '
Articles (...)|References (...)|Cited by (...)
Author profile of '+ authorName +'
Provided by = Scopus
';=0A= }=0A= =0A= //for performance=0A= if (resText.length > 0) {=0A= clearTimeout(timerId);=0A= var d =3D document.getElementById('authorLinkHover');=0A= if(d.length < 1) { return; }=0A= d.innerHTML=3DresText;=0A= assignPosition(d);=0A= return;=0A= }=0A= =0A= ajaxReq =3D new Ajax.Request(url, { =0A= method: 'get', =0A= onSuccess: function(response) { =0A= var d =3D $('authorLinkHover');=0A= clearTimeout(timerId);=0A= if(d.length < 1) { return; }=0A= objAuth["'"+authId+"'"] =3D response.responseText;=0A= d.innerHTML=3Dresponse.responseText;=0A= assignPosition(d);=0A= }=0A= });=0A= =0A= }=0A= =0A= function assignPosition(d)=0A= {=0A= if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) {=0A= d.style.left =3D Number(linkBufObj.offsetLeft + 22) + "px";=0A= var linkId =3D linkBufObj.id;=0A= var linkNum =3D linkId.substring(9,linkId.length);=0A= var numPrev =3D Number(linkNum) - 1;=0A= var numPrevs =3D Number(linkNum) - 2;=0A= var numNext =3D Number(linkNum) + 1;=0A= var prevEle =3D document.getElementById("authname_" + numPrev);=0A= var nextEle =3D document.getElementById("authname_" + numNext);=0A= var prevestEle =3D document.getElementById("authname_" + numPrevs);=0A= var posPrev;=0A= var posNext;=0A= if(prevEle !=3D null){=0A= posPrev =3D findPosY(prevEle);=0A= } else {=0A= posPrev =3D findPosY(linkBufObj);=0A= }=0A= if(posPrev =3D=3D findPosY(linkBufObj)){=0A= d.style.top =3D findPosY(linkBufObj) + linkBufObj.offsetHeight + 8 = + "px";=0A= } else {=0A= if(nextEle !=3D null){=0A= posNext =3D findPosY(nextEle);=0A= } else {=0A= if(prevestEle !=3D null && posPrev =3D=3D findPosY(prevestEle) ){=0A= posNext =3D findPosY(linkBufObj) + 27;=0A= } else {=0A= posNext =3D findPosY(linkBufObj);=0A= }=0A= }=0A= d.style.top =3D posNext + linkBufObj.offsetHeight + 8 + "px";=0A= }=0A= d.style.display =3D "block";=0A= =0A= } else {=0A= d.style.left =3D Number(linkBufObj.offsetLeft + 22) + "px";=0A= d.style.top =3D findPosY(linkBufObj) + linkBufObj.offsetHeight + 5 = + "px";=0A= d.style.display =3D "block";=0A= =0A= }=0A= }=0A= function findPosY(obj) {=0A= var curtop =3D 0;=0A= if(obj.offsetParent) {=0A= while(1) {=0A= curtop +=3D obj.offsetTop;=0A= if(!obj.offsetParent) { break; }=0A= obj =3D obj.offsetParent;=0A= }=0A= }=0A= else if(obj.y) {=0A= curtop +=3D obj.y;=0A= }=0A= return curtop;=0A= }=0A= =0A= //Auth hover End=0A= //-->=0A= ------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.sciencedirect.com/science/page/javascript/reflect_sd.js /*=0A= // Reflect JavaScript Library=0A= // = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=0A= //=0A= // Written by: Sven Haag | EMBL=0A= // Version: 1.2 from Nov. 24, 2009=0A= // Homepage: http://reflect.ws=0A= // Purpose: Reflect a webpage (without using a plugin)=0A= //=0A= // This script basically provides 2 functions to Reflect a webpage:=0A= //=0A= // 1.) reflectByProxy=0A= // Reflect a webpage by using a CGI script that you have to = provide on your webserver.=0A= // This function sends the webpage content (body.innerHTML) to = the CGI, that returns the Reflected version.=0A= // Afterwards the webpage will be modified to show the result.=0A= // Warning: The CGI script have to be in the same domain or = sub-domain as the webpage that should be Reflected,=0A= // to successfully dispose the JavaScript HTTP requesst. = (AJAX-Cross-Domain issue)=0A= // Example 1: Reflect.reflectByProxy(); = <=3D=3D Use default parameters=0A= // Example 2: = Reflect.reflectByProxy('/cgi/reflect_by_proxy.cgi'); <=3D=3D Use = different CGI path=0A= //=0A= // 2.) reflectByJS=0A= // Reflect a webpage by just calling this function.=0A= // Therefore the webpage has to be publicly accessible!=0A= // Example 1: Reflect.reflectByJS(); = <=3D=3D Default=0A= // Example 2: Reflect.reflectByJS('username', 'password'); = <=3D=3D Access a password protected webpage with credentials=0A= //=0A= */=0A= =0A= var Reflect =3D {=0A= /* Append all given Scripts (JS or CSS) to the document header */=0A= appendScriptsToHeader : function(headerData) {=0A= try {=0A= var headNode =3D document.getElementsByTagName('head')[0];=0A= =0A= //Check if a head node exists. If not append one.=0A= if(!headNode) =0A= { =0A= //html page without "head"=0A= head =3D document.createElement('head');=0A= document.appendChild(head);=0A= headNode =3D document.getElementsByTagName('head')[0];=0A= }=0A= =0A= //Append all javascript and css files to the html header=0A= var script =3D null;=0A= var strRegex =3D "https?://[a-zA-Z0-9-_ = \+\?\.\(\)\&/~]*(js|css)[\"|']";=0A= var re =3D new RegExp(strRegex, "ig");=0A= var reJS =3Dnew RegExp(".js[\"|']", "ig");=0A= var reCSS =3D new RegExp(".css[\"|']", "ig");=0A= var arrMatch =3D headerData.match(re);=0A= for(var i=3D0; i"; //"Close "=0A= if (typeof ol_hpos=3D=3D'undefined') var ol_hpos=3DRIGHT;=0A= if (typeof ol_status=3D=3D'undefined') var ol_status=3D"";=0A= if (typeof ol_autostatus=3D=3D'undefined') var ol_autostatus=3D0;=0A= if (typeof ol_height=3D=3D'undefined') var ol_height=3D-1;=0A= if (typeof ol_snapx=3D=3D'undefined') var ol_snapx=3D0;=0A= if (typeof ol_snapy=3D=3D'undefined') var ol_snapy=3D0;=0A= if (typeof ol_fixx=3D=3D'undefined') var ol_fixx=3D-1;=0A= if (typeof ol_fixy=3D=3D'undefined') var ol_fixy=3D-1;=0A= if (typeof ol_relx=3D=3D'undefined') var ol_relx=3Dnull;=0A= if (typeof ol_rely=3D=3D'undefined') var ol_rely=3Dnull;=0A= if (typeof ol_fgbackground=3D=3D'undefined') var ol_fgbackground=3D"";=0A= if (typeof ol_bgbackground=3D=3D'undefined') var ol_bgbackground=3D"";=0A= if (typeof ol_padxl=3D=3D'undefined') var ol_padxl=3D1;=0A= if (typeof ol_padxr=3D=3D'undefined') var ol_padxr=3D1;=0A= if (typeof ol_padyt=3D=3D'undefined') var ol_padyt=3D1;=0A= if (typeof ol_padyb=3D=3D'undefined') var ol_padyb=3D1;=0A= if (typeof ol_fullhtml=3D=3D'undefined') var ol_fullhtml=3D0;=0A= if (typeof ol_vpos=3D=3D'undefined') var ol_vpos=3DBELOW;=0A= if (typeof ol_aboveheight=3D=3D'undefined') var ol_aboveheight=3D0;=0A= if (typeof ol_capicon=3D=3D'undefined') var ol_capicon=3D"";=0A= if (typeof ol_frame=3D=3D'undefined') var ol_frame=3Dself;=0A= if (typeof ol_timeout=3D=3D'undefined') var ol_timeout=3D0;=0A= if (typeof ol_function=3D=3D'undefined') var ol_function=3Dnull;=0A= if (typeof ol_delay=3D=3D'undefined') var ol_delay=3D0;=0A= if (typeof ol_hauto=3D=3D'undefined') var ol_hauto=3D0;=0A= if (typeof ol_vauto=3D=3D'undefined') var ol_vauto=3D0;=0A= if (typeof ol_closeclick=3D=3D'undefined') var ol_closeclick=3D0;=0A= if (typeof ol_wrap=3D=3D'undefined') var ol_wrap=3D0;=0A= if (typeof ol_followmouse=3D=3D'undefined') var ol_followmouse=3D1;=0A= if (typeof ol_mouseoff=3D=3D'undefined') var ol_mouseoff=3D0;=0A= if (typeof ol_closetitle=3D=3D'undefined') var ol_closetitle=3D'Close';=0A= if (typeof ol_css=3D=3D'undefined') var ol_css=3DCSSOFF;=0A= if (typeof ol_compatmode=3D=3D'undefined') var ol_compatmode=3D0;=0A= if (typeof ol_fgclass=3D=3D'undefined') var ol_fgclass=3D"";=0A= if (typeof ol_bgclass=3D=3D'undefined') var ol_bgclass=3D"";=0A= if (typeof ol_textfontclass=3D=3D'undefined') var ol_textfontclass=3D"";=0A= if (typeof ol_captionfontclass=3D=3D'undefined') var = ol_captionfontclass=3D"";=0A= if (typeof ol_closefontclass=3D=3D'undefined') var = ol_closefontclass=3D"";=0A= ////////=0A= // ARRAY CONFIGURATION=0A= ////////=0A= if (typeof ol_texts=3D=3D'undefined') var ol_texts=3Dnew Array("Text = 0","Text 1");=0A= if (typeof ol_caps=3D=3D'undefined') var ol_caps=3Dnew Array("Caption = 0","Caption 1");=0A= ////////=0A= // END OF CONFIGURATION=0A= // Don't change anything below this line, all configuration is above.=0A= ////////=0A= ////////=0A= // INIT=0A= ////////=0A= // Runtime variables init. Don't change for config!=0A= var o3_text=3D"";=0A= var o3_cap=3D"";=0A= var o3_sticky=3D0;=0A= var o3_background=3D"";=0A= var o3_close=3D"Close";=0A= var o3_hpos=3DRIGHT;=0A= var o3_offsetx=3D2;=0A= var o3_offsety=3D2;=0A= var o3_fgcolor=3D"";=0A= var o3_bgcolor=3D"";=0A= var o3_textcolor=3D"";=0A= var o3_capcolor=3D"";=0A= var o3_closecolor=3D"";=0A= var o3_width=3D100;=0A= var o3_border=3D1;=0A= var o3_cellpad=3D2;=0A= var o3_status=3D"";=0A= var o3_autostatus=3D0;=0A= var o3_height=3D-1;=0A= var o3_snapx=3D0;=0A= var o3_snapy=3D0;=0A= var o3_fixx=3D-1;=0A= var o3_fixy=3D-1;=0A= var o3_relx=3Dnull;=0A= var o3_rely=3Dnull;=0A= var o3_fgbackground=3D"";=0A= var o3_bgbackground=3D"";=0A= var o3_padxl=3D0;=0A= var o3_padxr=3D0;=0A= var o3_padyt=3D0;=0A= var o3_padyb=3D0;=0A= var o3_fullhtml=3D0;=0A= var o3_vpos=3DBELOW;=0A= var o3_aboveheight=3D0;=0A= var o3_capicon=3D"";=0A= var o3_textfont=3D"Verdana,Arial,Helvetica";=0A= var o3_captionfont=3D"Verdana,Arial,Helvetica";=0A= var o3_closefont=3D"Verdana,Arial,Helvetica";=0A= var o3_textsize=3D"1";=0A= var o3_captionsize=3D"1";=0A= var o3_closesize=3D"1";=0A= var o3_frame=3Dself;=0A= var o3_timeout=3D0;=0A= var o3_timerid=3D0;=0A= var o3_allowmove=3D0;=0A= var o3_function=3Dnull; =0A= var o3_delay=3D0;=0A= var o3_delayid=3D0;=0A= var o3_hauto=3D0;=0A= var o3_vauto=3D0;=0A= var o3_closeclick=3D0;=0A= var o3_wrap=3D0;=0A= var o3_followmouse=3D1;=0A= var o3_mouseoff=3D0;=0A= var o3_closetitle=3D'';=0A= var o3_css=3DCSSOFF;=0A= var o3_compatmode=3D0;=0A= var o3_fgclass=3D"";=0A= var o3_bgclass=3D"";=0A= var o3_textfontclass=3D"";=0A= var o3_captionfontclass=3D"";=0A= var o3_closefontclass=3D"";=0A= // Display state variables=0A= var o3_x=3D0;=0A= var o3_y=3D0;=0A= var o3_showingsticky=3D0;=0A= var o3_removecounter=3D0;=0A= // Our layer=0A= var over=3Dnull;=0A= var fnRef, hoveringSwitch=3Dfalse;=0A= var isMac=3D(navigator.userAgent.indexOf("Mac")!=3D-1);=0A= var olHideDelay;=0A= // Decide browser version=0A= var olOp=3D(navigator.userAgent.toLowerCase().indexOf('opera') > -1 && = document.createTextNode); // Opera 7=0A= var = olNs4=3D(navigator.appName=3D=3D'Netscape'&&parseInt(navigator.appVersion= )=3D=3D4);=0A= var olNs6=3D(document.getElementById)? true : false;=0A= var olKq=3DolNs6&&/konqueror/i.test(navigator.userAgent);=0A= var olIe4=3D(document.all) ? true : false;=0A= var olIe5=3Dfalse;=0A= var olIe55=3Dfalse;=0A= var docRoot=3D'document.body';=0A= // Resize fix for NS4.x to keep track of layer=0A= if (olNs4) {=0A= var oW=3Dwindow.innerWidth;=0A= var oH=3Dwindow.innerHeight;=0A= window.onresize=3Dfunction () {if = (oW!=3Dwindow.innerWidth||oH!=3Dwindow.innerHeight) location.reload(); }=0A= }=0A= // Microsoft Stupidity Check(tm).=0A= if (olIe4) {=0A= var agent=3Dnavigator.userAgent;=0A= if (/MSIE/.test(agent)) {=0A= var versNum=3DparseFloat(agent.match(/MSIE[ ](\d\.\d+)\.*/)[1]);=0A= if (versNum >=3D 5){=0A= olIe5=3Dtrue;=0A= olIe55=3D(versNum>=3D5.5&&!olOp) ? true : false;=0A= if (olNs6) olNs6=3Dfalse;=0A= }=0A= }=0A= if (olNs6) olIe4=3Dfalse;=0A= }=0A= if(document.compatMode && document.compatMode=3D=3D'CSS1Compat') = docRoot=3D ((olIe4&&!olOp) ? 'document.documentElement' : docRoot);=0A= if(window.addEventListener) = window.addEventListener("load",OLonLoad_handler,false);=0A= else if (window.attachEvent) = window.attachEvent("onload",OLonLoad_handler);=0A= // Capture events,alt. diffuses the overlib function.=0A= var capExtent;=0A= ////////=0A= // PUBLIC FUNCTIONS=0A= ////////=0A= // overlib(arg0,...,argN)=0A= // Loads parameters into global runtime variables.=0A= function overlib() {=0A= if(!olLoaded||isExclusive(arguments)) return true;=0A= if(olCheckMouseCapture) olMouseCapture();=0A= if (over) {=0A= over =3D (typeof over.id !=3D 'string') ? = o3_frame.document.all['overDiv'] : over;=0A= cClick();=0A= }=0A= // Load defaults to runtime.=0A= olHideDelay=3D0;=0A= o3_text=3Dol_text;=0A= o3_cap=3Dol_cap;=0A= o3_sticky=3Dol_sticky;=0A= o3_background=3Dol_background;=0A= o3_close=3Dol_close;=0A= o3_hpos=3Dol_hpos;=0A= o3_offsetx=3Dol_offsetx;=0A= o3_offsety=3Dol_offsety;=0A= o3_fgcolor=3Dol_fgcolor;=0A= o3_bgcolor=3Dol_bgcolor;=0A= o3_textcolor=3Dol_textcolor;=0A= o3_capcolor=3Dol_capcolor;=0A= o3_closecolor=3Dol_closecolor;=0A= o3_width=3Dol_width;=0A= o3_border=3Dol_border;=0A= o3_cellpad=3Dol_cellpad;=0A= o3_status=3Dol_status;=0A= o3_autostatus=3Dol_autostatus;=0A= o3_height=3Dol_height;=0A= o3_snapx=3Dol_snapx;=0A= o3_snapy=3Dol_snapy;=0A= o3_fixx=3Dol_fixx;=0A= o3_fixy=3Dol_fixy;=0A= o3_relx=3Dol_relx;=0A= o3_rely=3Dol_rely;=0A= o3_fgbackground=3Dol_fgbackground;=0A= o3_bgbackground=3Dol_bgbackground;=0A= o3_padxl=3Dol_padxl;=0A= o3_padxr=3Dol_padxr;=0A= o3_padyt=3Dol_padyt;=0A= o3_padyb=3Dol_padyb;=0A= o3_fullhtml=3Dol_fullhtml;=0A= o3_vpos=3Dol_vpos;=0A= o3_aboveheight=3Dol_aboveheight;=0A= o3_capicon=3Dol_capicon;=0A= o3_textfont=3Dol_textfont;=0A= o3_captionfont=3Dol_captionfont;=0A= o3_closefont=3Dol_closefont;=0A= o3_textsize=3Dol_textsize;=0A= o3_captionsize=3Dol_captionsize;=0A= o3_closesize=3Dol_closesize;=0A= o3_timeout=3Dol_timeout;=0A= o3_function=3Dol_function;=0A= o3_delay=3Dol_delay;=0A= o3_hauto=3Dol_hauto;=0A= o3_vauto=3Dol_vauto;=0A= o3_closeclick=3Dol_closeclick;=0A= o3_wrap=3Dol_wrap; =0A= o3_followmouse=3Dol_followmouse;=0A= o3_mouseoff=3Dol_mouseoff;=0A= o3_closetitle=3Dol_closetitle;=0A= o3_css=3Dol_css;=0A= o3_compatmode=3Dol_compatmode;=0A= o3_fgclass=3Dol_fgclass;=0A= o3_bgclass=3Dol_bgclass;=0A= o3_textfontclass=3Dol_textfontclass;=0A= o3_captionfontclass=3Dol_captionfontclass;=0A= o3_closefontclass=3Dol_closefontclass;=0A= setRunTimeVariables();=0A= fnRef=3D'' =0A= // Special for frame support,over must be reset...=0A= o3_frame=3Dol_frame;=0A= if(!(over=3DcreateDivContainer())) return false;=0A= parseTokens('o3_',arguments);=0A= if (!postParseChecks('o3_',arguments)) return false;=0A= if (o3_delay=3D=3D0) {=0A= return runHook("olMain",FREPLACE);=0A= } else {=0A= o3_delayid=3DsetTimeout("runHook('olMain',FREPLACE)",o3_delay);=0A= return false;=0A= }=0A= }=0A= //=0A= // 2008-09-11 Heiko=0A= // Removed nearly every clause from nd(), but this seems to work=0A= //=0A= // Clears popups if appropriate=0A= function nd(time) {=0A= // console.log("over: "+over+"\nolLoaded: "+olLoaded+"\nisExclusve: = "+isExclusive()+"\no3_removecounter: "+o3_removecounter); =0A= if(over&&olLoaded&&!isExclusive()) {=0A= // hideDelay(time);=0A= // if ( o3_removecounter >=3D 1 ) { o3_showingsticky=3D0 };=0A= // if ( o3_showingsticky=3D=3D0 ) {=0A= // o3_allowmove=3D0;=0A= // if (over!=3Dnull&&(o3_compatmode ? 1 : o3_timerid=3D=3D0)){=0A= runHook("hideObject",FREPLACE,over);=0A= // }=0A= // } else o3_removecounter++;=0A= }=0A= return true;=0A= }=0A= // The Close onMouseOver function for stickies=0A= function cClick() {=0A= if(olLoaded) {=0A= runHook("hideObject",FREPLACE,over);=0A= o3_showingsticky=3D0;=0A= }=0A= return false;=0A= }=0A= // Method for setting page specific defaults.=0A= function overlib_pagedefaults() {=0A= parseTokens('ol_',arguments);=0A= }=0A= ////////=0A= // OVERLIB MAIN FUNCTION=0A= ////////=0A= function olMain() {=0A= // Make layer content=0A= var layerhtml,styleType;=0A= runHook("olMain",FBEFORE);=0A= if (o3_background!=3D""||o3_fullhtml) {=0A= // Use background instead of box.=0A= = layerhtml=3DrunHook('ol_content_background',FALTERNATE,o3_css,o3_text,o3_= background,o3_fullhtml);=0A= } else {=0A= // They want a popup box.=0A= // Prepare popup background=0A= if (o3_fgbackground!=3D"") = o3_fgbackground=3D"background=3D\""+o3_fgbackground+"\"";=0A= = styleType=3D(pms[o3_css-1-pmStart]=3D=3D"cssoff"||pms[o3_css-1-pmStart]=3D= =3D"cssclass");=0A= if (o3_bgbackground!=3D"") o3_bgbackground=3D( styleType ? = "background=3D\""+o3_bgbackground+"\"" : o3_bgbackground);=0A= // Prepare popup colors=0A= if (o3_fgcolor!=3D"") o3_fgcolor=3D(styleType ? = "bgcolor=3D\""+o3_fgcolor+"\"" : o3_fgcolor);=0A= if (o3_bgcolor!=3D"") o3_bgcolor=3D(styleType ? = "bgcolor=3D\""+o3_bgcolor+"\"" : o3_bgcolor);=0A= // Prepare popup height=0A= if (o3_height > 0) o3_height=3D(styleType ? = "height=3D\""+o3_height+"\"" : o3_height);=0A= else o3_height=3D"";=0A= // Decide which kinda box.=0A= if (o3_cap=3D=3D"") {=0A= // Plain=0A= layerhtml=3DrunHook('ol_content_simple',FALTERNATE,o3_css,o3_text);=0A= } else {=0A= // With caption=0A= if (o3_sticky) {=0A= // Show close text=0A= = layerhtml=3DrunHook('ol_content_caption',FALTERNATE,o3_css,o3_text,o3_cap= ,o3_close);=0A= } else {=0A= // No close text=0A= = layerhtml=3DrunHook('ol_content_caption',FALTERNATE,o3_css,o3_text,o3_cap= ,"");=0A= }=0A= }=0A= } =0A= // We want it to stick!=0A= if (o3_sticky) {=0A= if (o3_timerid > 0) {=0A= clearTimeout(o3_timerid);=0A= o3_timerid=3D0;=0A= }=0A= o3_showingsticky=3D1;=0A= o3_removecounter=3D0;=0A= }=0A= // Created a separate routine to generate the popup to make it easier=0A= // to implement a plugin capability=0A= if(!runHook("olCreatePopup",FREPLACE,layerhtml)) return false;=0A= // Prepare status bar=0A= if (o3_autostatus > 0) {=0A= o3_status=3Do3_text;=0A= if (o3_autostatus > 1) o3_status=3Do3_cap;=0A= if (o3_wrap) o3_status=3Do3_status.replace(/ /g,' ');=0A= }=0A= // When placing the layer the first time, even stickies may be moved.=0A= o3_allowmove =3D 0;=0A= // Initiate a timer for timeout=0A= if (o3_timeout > 0) { =0A= if (o3_timerid > 0) clearTimeout(o3_timerid);=0A= o3_timerid=3DsetTimeout("cClick()",o3_timeout);=0A= }=0A= // Show layer=0A= runHook("disp",FREPLACE,o3_status);=0A= runHook("olMain",FAFTER);=0A= return (olOp && event && event.type=3D=3D'mouseover' && !o3_status) ? = '' : (o3_status!=3D'');=0A= }=0A= ////////=0A= // LAYER GENERATION FUNCTIONS=0A= ////////=0A= // These functions just handle popup content with tags that should = adhere to the W3C standards specification.=0A= function ol_content_simple(text) {=0A= var cpIsMultiple=3D/,/.test(o3_cellpad);=0A= var txt=3D'
' : ((!olNs4&&cpIsMultiple) ? ' = style=3D"'+setCellPadStr(o3_cellpad)+'">' : '>'))+(o3_textfontclass ? '' = : wrapStr(0,o3_textsize,'text'))+text+(o3_textfontclass ? '' : = wrapStr(1,o3_textsize))+'
';=0A= set_background("");=0A= return txt;=0A= }=0A= // Makes table with caption and optional close link=0A= function ol_content_caption(text,title,close) {=0A= var nameId, txt, cpIsMultiple=3D/,/.test(o3_cellpad);=0A= var closing=3D"";=0A= var closeevent=3D"onmouseover";=0A= if (o3_closeclick=3D=3D1) closeevent=3D (o3_closetitle ? "title=3D'" + = o3_closetitle +"'" : "") + " onclick";=0A= if (o3_capicon!=3D"") {=0A= nameId=3D' hspace=3D\"5\"'+' align=3D\"middle\" alt=3D\"\"';=0A= if (typeof o3_dragimg!=3D'undefined'&&o3_dragimg) nameId=3D' = hspace=3D\"5\"'+' name=3D\"'+o3_dragimg+'\" id=3D\"'+o3_dragimg+'\" = align=3D\"middle\" alt=3D\"Drag Enabled\" title=3D\"Drag Enabled\"';=0A= o3_capicon=3D'';=0A= }=0A= =0A= //modified by Evangelos, 31.March.2008, set the outer table border to = "1" and caption-row-and-cells-background to "reflect_bgcolor"=0A= var reflect_bgcolor =3D "#cccccc";=0A= if (close!=3D"")=0A= //closing=3D''+(o3_closefontclass ? '' : = wrapStr(0,o3_closesize,'close'))+close+(o3_closefontclass ? '' : = wrapStr(1,o3_closesize,'close'))+'';=0A= closing=3D''+close+'';=0A= =0A= //txt=3D'
'+closing+'
' : '>')+(o3_captionfontclass ? '' : = ''+wrapStr(0,o3_captionsize,'caption'))+o3_capicon+title+(o3_captionfo= ntclass ? '' : = wrapStr(1,o3_captionsize)+'')+'
' :((!olNs4&&cpIsMultiple) ? ' = style=3D"'+setCellPadStr(o3_cellpad)+'">' : '>'))+(o3_textfontclass ? '' = : wrapStr(0,o3_textsize,'text'))+text+(o3_textfontclass ? '' : = wrapStr(1,o3_textsize)) + '
';=0A= //txt=3D'
'+closing+'
' : '>')+(o3_captionfontclass ? '' : = ''+wrapStr(0,o3_captionsize,'caption'))+o3_capicon+title+(o3_captionfo= ntclass ? '' : = wrapStr(1,o3_captionsize)+'')+'
' :((!olNs4&&cpIsMultiple) ? ' = style=3D"'+setCellPadStr(o3_cellpad)+'">' : '>'))+(o3_textfontclass ? '' = : wrapStr(0,o3_textsize,'text'))+text+(o3_textfontclass ? '' : = wrapStr(1,o3_textsize)) + '
';=0A= //txt=3D'
'+closing+'
' : '>')+(o3_captionfontclass ? '' : = ''+wrapStr(0,o3_captionsize,'caption'))+o3_capicon+title+(o3_captionfo= ntclass ? '' : = wrapStr(1,o3_captionsize)+'')+'
' = :((!olNs4&&cpIsMultiple) ? ' style=3D"'+setCellPadStr(o3_cellpad)+'">' : = '>'))+(o3_textfontclass ? '' : = wrapStr(0,o3_textsize,'text'))+text+(o3_textfontclass ? '' : = wrapStr(1,o3_textsize)) + '
';=0A= =0A= /* exterior table */ =0A= /*hhorn 21.10.2008: moved width for table into css to be save = from css from sites the popup is embedded*/=0A= /*hhorn 04.11.2008: replaced string "closing" with image*/=0A= txt =3D '';=0A= txt +=3D '';=0A= txt +=3D '';=0A= txt +=3D '';=0A= txt +=3D '
';=0A= =0A= /* title table */ =0A= txt +=3D '';=0A= txt +=3D '';=0A= txt +=3D '';=0A= txt +=3D closing;=0A= txt +=3D '';=0A= txt +=3D '
' : '>')+(o3_captionfontclass ? '' : = ''+wrapStr(0,o3_captionsize,'caption'))+o3_capicon+title+(o3_captionfo= ntclass ? '' : wrapStr(1,o3_captionsize)+'');=0A= txt +=3D '
';=0A= =0A= /* content table */ =0A= txt +=3D '';=0A= txt +=3D '';=0A= txt +=3D '';=0A= txt +=3D '';=0A= txt +=3D '
' = :((!olNs4&&cpIsMultiple) ? ' style=3D"'+setCellPadStr(o3_cellpad)+'">' : = '>'))+(o3_textfontclass ? '' : = wrapStr(0,o3_textsize,'text'))+text+(o3_textfontclass ? '' : = wrapStr(1,o3_textsize));=0A= txt +=3D '
';=0A= txt +=3D '
';=0A= set_background("");=0A= return txt;=0A= }=0A= // Sets the background picture,padding and lots more. :)=0A= function ol_content_background(text,picture,hasfullhtml) {=0A= var txt;=0A= if (hasfullhtml) {=0A= txt=3Dtext;=0A= } else {=0A= txt=3D'
'+(o3_textfontclass ? '' : = wrapStr(0,o3_textsize,'text'))+text+(o3_textfontclass ? '' : = wrapStr(1,o3_textsize))+'
';=0A= }=0A= set_background(picture);=0A= return txt;=0A= }=0A= // Loads a picture into the div.=0A= function set_background(pic) {=0A= if (pic=3D=3D"") {=0A= if (olNs4) over.background.src=3Dnull; =0A= else if (over.style) over.style.backgroundImage=3D"none";=0A= } else {=0A= if (olNs4) {=0A= over.background.src=3Dpic;=0A= } else if (over.style) {=0A= over.style.width=3Do3_width+'px';=0A= over.style.backgroundImage=3D"url("+pic+")";=0A= }=0A= }=0A= }=0A= ////////=0A= // HANDLING FUNCTIONS=0A= ////////=0A= var olShowId=3D-1;=0A= // Displays the popup=0A= function disp(statustext) {=0A= // call any routine needed before showing popup=0A= runHook("disp",FBEFORE,statustext);=0A= if (o3_allowmove=3D=3D0) {=0A= runHook("placeLayer",FREPLACE);=0A= (olNs6&&olShowId<0) ? olShowId=3DsetTimeout("runHook('showObject', = FREPLACE, over)", 1) : runHook("showObject", FREPLACE, over);=0A= o3_allowmove=3D(o3_sticky||!o3_followmouse) ? 0 : 1;=0A= }=0A= runHook("disp",FAFTER,statustext);=0A= if (statustext!=3D"") self.status=3Dstatustext;=0A= }=0A= // Creates the actual popup structure=0A= function olCreatePopup(lyrContent){=0A= // Write layer=0A= runHook("olCreatePopup",FBEFORE,lyrContent);=0A= if (o3_wrap) {=0A= var wd,ww,theObj=3D(olNs4 ? over : over.style);=0A= theObj.top=3DtheObj.left=3D((olIe4&&!olOp) ? 0 : -10000) + (!olNs4 ? = 'px' : 0);=0A= layerWrite(lyrContent);=0A= wd =3D (olNs4 ? over.clip.width : over.offsetWidth);=0A= if (wd > (ww=3DwindowWidth())) {=0A= lyrContent=3DlyrContent.replace(/\ /g, ' ');=0A= o3_width=3Dww;=0A= o3_wrap=3D0;=0A= } =0A= }=0A= layerWrite(lyrContent);=0A= // have to set o3_width for placeLayer() routine if o3_wrap is turned on=0A= if (o3_wrap) o3_width=3D(olNs4 ? over.clip.width : over.offsetWidth);=0A= runHook("olCreatePopup",FAFTER,lyrContent);=0A= return true;=0A= }=0A= // Decides where we want the popup.=0A= function placeLayer() {=0A= var placeX,placeY,iwidth,iheight,widthFix,winoffset,scrolloffset;=0A= iwidth=3Diheight=3DwidthFix=3D0;=0A= if (o3_frame.innerWidth) widthFix=3D18;=0A= iwidth =3D windowWidth(); =0A= // Horizontal scroll offset=0A= winoffset=3D(olIe4) ? eval('o3_frame.'+docRoot+'.scrollLeft') : = o3_frame.pageXOffset;=0A= placeX =3D = runHook('horizontalPlacement',FCHAIN,iwidth,winoffset,widthFix);=0A= if (o3_frame.innerHeight) iheight=3Do3_frame.innerHeight;=0A= else if (eval('o3_frame.'+docRoot)&&eval("typeof = o3_frame."+docRoot+".clientHeight=3D=3D'number'")&&eval('o3_frame.'+docRo= ot+'.clientHeight')) =0A= iheight=3Deval('o3_frame.'+docRoot+'.clientHeight'); =0A= // Vertical scroll offset=0A= scrolloffset=3D(olIe4) ? eval('o3_frame.'+docRoot+'.scrollTop') : = o3_frame.pageYOffset;=0A= placeY =3D runHook('verticalPlacement',FCHAIN,iheight,scrolloffset);=0A= // Actually move the object.=0A= repositionTo(over,placeX,placeY);=0A= }=0A= // Moves the layer=0A= function olMouseMove(e) {=0A= e=3D(e)? e : event;=0A= if (e.pageX) {o3_x=3De.pageX; o3_y=3D e.pageY;}=0A= else if (e.clientX) { = o3_x=3Deval('e.clientX+o3_frame.'+docRoot+'.scrollLeft'); = o3_y=3Deval('e.clientY+o3_frame.'+docRoot+'.scrollTop'); }=0A= if (o3_allowmove=3D=3D1) runHook("placeLayer",FREPLACE);=0A= // MouseOut handler=0A= if (hoveringSwitch&&!olNs4&&runHook("cursorOff",FREPLACE)) {=0A= (olHideDelay ? hideDelay(olHideDelay) : cClick());=0A= hoveringSwitch=3D!hoveringSwitch;=0A= }=0A= } =0A= // Fake function for 3.0 users.=0A= function no_overlib() { return ver3fix; }=0A= // Capture the mouse and chain other scripts.=0A= function olMouseCapture() {=0A= capExtent =3D document;=0A= var fN, str=3D'', l, k, f, wMv, sS, mseHandler =3D olMouseMove;=0A= var re =3D /function[ ]*(\w*)\(/;=0A= =0A= wMv =3D (!olIe4 && window.onmousemove);=0A= if (document.onmousemove || wMv) {=0A= if (wMv) capExtent =3D window;=0A= f =3D capExtent.onmousemove.toString();=0A= fN =3D f.match(re);=0A= if (fN=3D=3Dnull) {=0A= str=3Df+'(e); ';=0A= } else if (fN[1] =3D=3D 'anonymous' || fN[1] =3D=3D 'olMouseMove' || = (wMv && fN[1] =3D=3D 'onmousemove')) {=0A= if (!olOp && wMv) {=0A= l=3Df.indexOf('{')+1;=0A= k=3Df.lastIndexOf('}');=0A= sS =3D f.substring(l,k);=0A= if ((l =3D sS.indexOf('(')) !=3D -1) {=0A= sS =3D sS.substring(0,l).replace(/^\s+/,'').replace(/\s+$/,'');=0A= if (eval("typeof " + sS + " =3D=3D 'undefined'")) = window.onmousemove =3D null;=0A= else str =3D sS + '(e);';=0A= }=0A= }=0A= if (!str) {=0A= olCheckMouseCapture =3D false;=0A= return;=0A= }=0A= } else {=0A= if (fN[1]) str =3D fN[1]+'(e); ';=0A= else {=0A= l=3Df.indexOf('{')+1;=0A= k=3Df.lastIndexOf('}');=0A= str=3Df.substring(l,k) + '\n';=0A= }=0A= }=0A= str +=3D 'olMouseMove(e); ';=0A= mseHandler =3D new Function('e', str);=0A= }=0A= =0A= capExtent.onmousemove =3D mseHandler;=0A= if (olNs4) capExtent.captureEvents(Event.MOUSEMOVE);=0A= }=0A= ////////=0A= // PARSING FUNCTIONS=0A= ////////=0A= // Does the actual command parsing.=0A= function parseTokens(pf,ar) {=0A= // What the next argument is expected to be.=0A= var v,i,md=3D-1,par=3D(pf!=3D'ol_'); =0A= var fnMark=3D(par&&!ar.length ? 1 : 0);=0A= for (i=3D0; i < ar.length; i++) {=0A= if (md < 0) {=0A= // Arg is maintext,unless its a number between pmStart and pmUpper=0A= // then its a command.=0A= if (typeof ar[i]=3D=3D'number'&&ar[i]>pmStart&&ar[i]=3DpmCount||ar[i]=3D=3DDONOTHING) { continue; }=0A= if (ar[i]=3D=3DINARRAY) { fnMark=3D0; = eval(pf+'text=3Dol_texts['+ar[++i]+'].toString()'); continue; }=0A= if (ar[i]=3D=3DCAPARRAY) { = eval(pf+'cap=3Dol_caps['+ar[++i]+'].toString()'); continue; }=0A= if (ar[i]=3D=3DSTICKY) { if (pf!=3D'ol_') eval(pf+'sticky=3D1'); = continue; }=0A= if (ar[i]=3D=3DBACKGROUND) { eval(pf+'background=3D"'+ar[++i]+'"'); = continue; }=0A= if (ar[i]=3D=3DNOCLOSE) { if (pf!=3D'ol_') opt_NOCLOSE(); continue; }=0A= if (ar[i]=3D=3DCAPTION) { = eval(pf+"cap=3D'"+escSglQuote(ar[++i])+"'"); continue; }=0A= if (ar[i]=3D=3DCENTER||ar[i]=3D=3DLEFT||ar[i]=3D=3DRIGHT) { = eval(pf+'hpos=3D'+ar[i]); if(pf!=3D'ol_') olHautoFlag=3D1; continue; }=0A= if (ar[i]=3D=3DOFFSETX) { eval(pf+'offsetx=3D'+ar[++i]); continue; }=0A= if (ar[i]=3D=3DOFFSETY) { eval(pf+'offsety=3D'+ar[++i]); continue; }=0A= if (ar[i]=3D=3DFGCOLOR) { eval(pf+'fgcolor=3D"'+ar[++i]+'"'); = continue; }=0A= if (ar[i]=3D=3DBGCOLOR) { eval(pf+'bgcolor=3D"'+ar[++i]+'"'); = continue; }=0A= if (ar[i]=3D=3DTEXTCOLOR) { eval(pf+'textcolor=3D"'+ar[++i]+'"'); = continue; }=0A= if (ar[i]=3D=3DCAPCOLOR) { eval(pf+'capcolor=3D"'+ar[++i]+'"'); = continue; }=0A= if (ar[i]=3D=3DCLOSECOLOR) { eval(pf+'closecolor=3D"'+ar[++i]+'"'); = continue; }=0A= if (ar[i]=3D=3DWIDTH) { eval(pf+'width=3D'+ar[++i]); continue; }=0A= if (ar[i]=3D=3DBORDER) { eval(pf+'border=3D'+ar[++i]); continue; }=0A= if (ar[i]=3D=3DCELLPAD) { = i=3Dopt_MULTIPLEARGS(++i,ar,(pf+'cellpad')); continue; }=0A= if (ar[i]=3D=3DSTATUS) { = eval(pf+"status=3D'"+escSglQuote(ar[++i])+"'"); continue; }=0A= if (ar[i]=3D=3DAUTOSTATUS) { eval(pf = +'autostatus=3D('+pf+'autostatus=3D=3D1) ? 0 : 1'); continue; }=0A= if (ar[i]=3D=3DAUTOSTATUSCAP) { eval(pf = +'autostatus=3D('+pf+'autostatus=3D=3D2) ? 0 : 2'); continue; }=0A= if (ar[i]=3D=3DHEIGHT) { = eval(pf+'height=3D'+pf+'aboveheight=3D'+ar[++i]); continue; } // Same = param again.=0A= if (ar[i]=3D=3DCLOSETEXT) { = eval(pf+"close=3D'"+escSglQuote(ar[++i])+"'"); continue; }=0A= if (ar[i]=3D=3DSNAPX) { eval(pf+'snapx=3D'+ar[++i]); continue; }=0A= if (ar[i]=3D=3DSNAPY) { eval(pf+'snapy=3D'+ar[++i]); continue; }=0A= if (ar[i]=3D=3DFIXX) { eval(pf+'fixx=3D'+ar[++i]); continue; }=0A= if (ar[i]=3D=3DFIXY) { eval(pf+'fixy=3D'+ar[++i]); continue; }=0A= if (ar[i]=3D=3DRELX) { eval(pf+'relx=3D'+ar[++i]); continue; }=0A= if (ar[i]=3D=3DRELY) { eval(pf+'rely=3D'+ar[++i]); continue; }=0A= if (ar[i]=3D=3DFGBACKGROUND) { = eval(pf+'fgbackground=3D"'+ar[++i]+'"'); continue; }=0A= if (ar[i]=3D=3DBGBACKGROUND) { = eval(pf+'bgbackground=3D"'+ar[++i]+'"'); continue; }=0A= if (ar[i]=3D=3DPADX) { eval(pf+'padxl=3D'+ar[++i]); = eval(pf+'padxr=3D'+ar[++i]); continue; }=0A= if (ar[i]=3D=3DPADY) { eval(pf+'padyt=3D'+ar[++i]); = eval(pf+'padyb=3D'+ar[++i]); continue; }=0A= if (ar[i]=3D=3DFULLHTML) { if (pf!=3D'ol_') eval(pf+'fullhtml=3D1'); = continue; }=0A= if (ar[i]=3D=3DBELOW||ar[i]=3D=3DABOVE) { eval(pf+'vpos=3D'+ar[i]); = if (pf!=3D'ol_') olVautoFlag=3D1; continue; }=0A= if (ar[i]=3D=3DCAPICON) { eval(pf+'capicon=3D"'+ar[++i]+'"'); = continue; }=0A= if (ar[i]=3D=3DTEXTFONT) { = eval(pf+"textfont=3D'"+escSglQuote(ar[++i])+"'"); continue; }=0A= if (ar[i]=3D=3DCAPTIONFONT) { = eval(pf+"captionfont=3D'"+escSglQuote(ar[++i])+"'"); continue; }=0A= if (ar[i]=3D=3DCLOSEFONT) { = eval(pf+"closefont=3D'"+escSglQuote(ar[++i])+"'"); continue; }=0A= if (ar[i]=3D=3DTEXTSIZE) { eval(pf+'textsize=3D"'+ar[++i]+'"'); = continue; }=0A= if (ar[i]=3D=3DCAPTIONSIZE) { eval(pf+'captionsize=3D"'+ar[++i]+'"'); = continue; }=0A= if (ar[i]=3D=3DCLOSESIZE) { eval(pf+'closesize=3D"'+ar[++i]+'"'); = continue; }=0A= if (ar[i]=3D=3DTIMEOUT) { eval(pf+'timeout=3D'+ar[++i]); continue; }=0A= if (ar[i]=3D=3DFUNCTION) { if (pf=3D=3D'ol_') { if (typeof = ar[i+1]!=3D'number') { v=3Dar[++i]; ol_function=3D(typeof = v=3D=3D'function' ? v : null); }} else {fnMark=3D0; v=3Dnull; if (typeof = ar[i+1]!=3D'number') v=3Dar[++i]; opt_FUNCTION(v); } continue; }=0A= if (ar[i]=3D=3DDELAY) { eval(pf+'delay=3D'+ar[++i]); continue; }=0A= if (ar[i]=3D=3DHAUTO) { eval(pf+'hauto=3D('+pf+'hauto=3D=3D0) ? 1 : = 0'); continue; }=0A= if (ar[i]=3D=3DVAUTO) { eval(pf+'vauto=3D('+pf+'vauto=3D=3D0) ? 1 : = 0'); continue; }=0A= if (ar[i]=3D=3DCLOSECLICK) { eval(pf = +'closeclick=3D('+pf+'closeclick=3D=3D0) ? 1 : 0'); continue; }=0A= if (ar[i]=3D=3DWRAP) { eval(pf +'wrap=3D('+pf+'wrap=3D=3D0) ? 1 : = 0'); continue; }=0A= if (ar[i]=3D=3DFOLLOWMOUSE) { eval(pf = +'followmouse=3D('+pf+'followmouse=3D=3D1) ? 0 : 1'); continue; }=0A= if (ar[i]=3D=3DMOUSEOFF) { eval(pf = +'mouseoff=3D('+pf+'mouseoff=3D=3D0) ? 1 : 0'); v=3Dar[i+1]; if (pf !=3D = 'ol_' && eval(pf+'mouseoff') && typeof v =3D=3D 'number' && (v < pmStart = || v > pmUpper)) olHideDelay=3Dar[++i]; continue; }=0A= if (ar[i]=3D=3DCLOSETITLE) { = eval(pf+"closetitle=3D'"+escSglQuote(ar[++i])+"'"); continue; }=0A= if (ar[i]=3D=3DCSSOFF||ar[i]=3D=3DCSSCLASS) { = eval(pf+'css=3D'+ar[i]); continue; }=0A= if (ar[i]=3D=3DCOMPATMODE) { = eval(pf+'compatmode=3D('+pf+'compatmode=3D=3D0) ? 1 : 0'); continue; }=0A= if (ar[i]=3D=3DFGCLASS) { eval(pf+'fgclass=3D"'+ar[++i]+'"'); = continue; }=0A= if (ar[i]=3D=3DBGCLASS) { eval(pf+'bgclass=3D"'+ar[++i]+'"'); = continue; }=0A= if (ar[i]=3D=3DTEXTFONTCLASS) { = eval(pf+'textfontclass=3D"'+ar[++i]+'"'); continue; }=0A= if (ar[i]=3D=3DCAPTIONFONTCLASS) { = eval(pf+'captionfontclass=3D"'+ar[++i]+'"'); continue; }=0A= if (ar[i]=3D=3DCLOSEFONTCLASS) { = eval(pf+'closefontclass=3D"'+ar[++i]+'"'); continue; }=0A= i=3DparseCmdLine(pf,i,ar);=0A= }=0A= }=0A= if (fnMark&&o3_function) o3_text=3Do3_function();=0A= if ((pf=3D=3D'o3_')&&o3_wrap) {=0A= o3_width=3D0;=0A= var tReg=3D/<.*\n*>/ig;=0A= if(!tReg.test(o3_text)) o3_text=3Do3_text.replace(/[ ]+/g,' ');=0A= if(!tReg.test(o3_cap))o3_cap=3Do3_cap.replace(/[ ]+/g,' ');=0A= }=0A= if ((pf=3D=3D'o3_')&&o3_sticky) {=0A= if(!o3_close&&(o3_frame!=3Dol_frame)) o3_close=3Dol_close;=0A= if (o3_mouseoff&&(o3_frame=3D=3Dol_frame)) opt_NOCLOSE(' ');=0A= }=0A= }=0A= ////////=0A= // LAYER FUNCTIONS=0A= ////////=0A= // Writes to a layer=0A= function layerWrite(txt) {=0A= txt +=3D "\n";=0A= if (olNs4) {=0A= var lyr=3Do3_frame.document.layers['overDiv'].document=0A= lyr.write(txt)=0A= lyr.close()=0A= } else if (typeof over.innerHTML !=3D 'undefined') {=0A= if(olIe5&&isMac) over.innerHTML=3D''=0A= over.innerHTML=3Dtxt=0A= } else {=0A= range=3Do3_frame.document.createRange();=0A= range.setStartAfter(over);=0A= domfrag=3Drange.createContextualFragment(txt);=0A= while (over.hasChildNodes()) {over.removeChild(over.lastChild);}=0A= over.appendChild(domfrag);=0A= }=0A= }=0A= // Make an object visible=0A= function showObject(obj) {=0A= runHook("showObject",FBEFORE,obj);=0A= var theObj=3D(olNs4 ? obj : obj.style);=0A= theObj.visibility=3D'visible';=0A= runHook("showObject",FAFTER,obj);=0A= }=0A= // Hides an object=0A= function hideObject(obj) {=0A= runHook("hideObject",FBEFORE,obj);=0A= var theObj=3D(olNs4 ? obj : obj.style);=0A= if (olNs6 && olShowId>0) { clearTimeout(olShowId); olShowId=3D0; }=0A= theObj.visibility=3D'hidden';=0A= theObj.top=3DtheObj.left=3D((olIe4&&!olOp) ? 0 : -10000) + (!olNs4 ? = 'px' : 0);=0A= if (o3_timerid > 0) clearTimeout(o3_timerid);=0A= if (o3_delayid > 0) clearTimeout(o3_delayid);=0A= o3_timerid=3D0;=0A= o3_delayid=3D0;=0A= self.status=3D"";=0A= if (obj.onmouseout||obj.onmouseover) {=0A= if(olNs4) obj.releaseEvents(Event.MOUSEOUT||Event.MOUSEOVER);=0A= obj.onmouseout=3Dobj.onmouseover=3Dnull;=0A= }=0A= runHook("hideObject",FAFTER,obj);=0A= }=0A= // Move a layer=0A= function repositionTo(obj,xL,yL) {=0A= var theObj=3D(olNs4 ? obj : obj.style);=0A= theObj.left=3DxL + (!olNs4 ? 'px' : 0);=0A= theObj.top=3DyL + (!olNs4 ? 'px' : 0);=0A= }=0A= // Check position of cursor relative to overDiv DIVision; mouseOut = function=0A= function cursorOff(e) {=0A= //09-11-2008 heiko=0A= //injected call to get actual mouseposition=0A= if(e){=0A= olMouseMove(e);=0A= }=0A= //stop heiko=0A= var left=3D parseInt(over.style.left);=0A= var top=3DparseInt(over.style.top);=0A= var right=3Dleft+(over.offsetWidth>=3DparseInt(o3_width) ? = over.offsetWidth : parseInt(o3_width));=0A= var bottom=3Dtop+(over.offsetHeight>=3Do3_aboveheight ? = over.offsetHeight : o3_aboveheight);=0A= if (o3_x < left||o3_x > right||o3_y < top||o3_y > bottom) return true;=0A= return false;=0A= }=0A= ////////=0A= // COMMAND FUNCTIONS=0A= ////////=0A= // Calls callme or the default function.=0A= function opt_FUNCTION(callme) {=0A= o3_text=3D(callme ? (typeof callme=3D=3D'string' ? = (/.+\(.*\)/.test(callme) ? eval(callme) : callme) : callme()) : = (o3_function ? o3_function() : 'No Function'));=0A= return 0;=0A= }=0A= // Handle hovering=0A= function opt_NOCLOSE(unused) {=0A= if(!unused) o3_close=3D"";=0A= if (olNs4) {=0A= over.captureEvents(Event.MOUSEOUT||Event.MOUSEOVER);=0A= over.onmouseover=3Dfunction () {if(o3_timerid > 0) = {clearTimeout(o3_timerid); o3_timerid=3D0;}}=0A= over.onmouseout=3Dfunction (e) { if (olHideDelay) = hideDelay(olHideDelay); else cClick(e); }=0A= } else =0A= over.onmouseover=3Dfunction () {hoveringSwitch=3Dtrue; if(o3_timerid > = 0) {clearTimeout(o3_timerid); o3_timerid=3D0;}}=0A= return 0;=0A= }=0A= // Function to scan command line arguments for multiples=0A= function opt_MULTIPLEARGS(i, args, parameter) {=0A= var k=3Di,re,pV,str=3D'';=0A= for(k=3Di; kpmStart) break;=0A= str +=3D args[k] + ',';=0A= }=0A= if (str) str=3Dstr.substring(0,--str.length);=0A= k--; // reduce by one so the for loop this is in works correctly=0A= pV=3D(olNs4&&/cellpad/i.test(parameter)) ? str.split(',')[0] : str;=0A= eval(parameter+'=3D"' + pV + '"');=0A= return k;=0A= }=0A= // Remove   in texts when done.=0A= function nbspCleanup() {=0A= if (o3_wrap) {=0A= o3_text=3Do3_text.replace(/\ /g,' ');=0A= o3_cap=3Do3_cap.replace(/\ /g,' ');=0A= }=0A= }=0A= // Escape embedded single quotes in text strings=0A= function escSglQuote(str) {=0A= return str.toString().replace(/'/g,"\\'");=0A= }=0A= =0A= // Onload handler for window onload event=0A= function OLonLoad_handler(e) {=0A= var re =3D /\w+\(.*\)[;\s]+/g, olre =3D /overlib\(|nd\(|cClick\(/, fn, = l, i;=0A= if(!olLoaded) olLoaded=3D1;=0A= if(window.removeEventListener && e.eventPhase =3D=3D 3) = window.removeEventListener("load",OLonLoad_handler,false);=0A= else if(window.detachEvent) {=0A= window.detachEvent("onload",OLonLoad_handler);=0A= var fN =3D document.body.getAttribute('onload');=0A= if (fN) {=0A= fN=3DfN.toString().match(re);=0A= if (fN && fN.length) {=0A= for (i=3D0; i' : '
') = : '';=0A= else {=0A= fontStr=3D'o3_'+whichString+'font';=0A= fontColor=3D'o3_'+((whichString=3D=3D'caption')? 'cap' : = whichString)+'color';=0A= return (hasDims&&!olNs4) ? (isClose ? '' : '
') : '7 ? '7' : = fontSizeStr)+'">';=0A= }=0A= }=0A= // Quotes Multi word font names; needed for CSS Standards adherence in = font-family=0A= // This is suggested but not required, multi-word font names can be kept = unquoted=0A= function quoteMultiNameFonts(theFont) {=0A= var v, pM=3DtheFont.split(',');=0A= for (var i=3D0; i 0) clearTimeout(o3_timerid);=0A= o3_timerid=3DsetTimeout("cClick()",(o3_timeout=3Dtime));=0A= }=0A= }=0A= // Was originally in the placeLayer() routine; separated out for future = ease=0A= function horizontalPlacement(browserWidth, horizontalScrollAmount, = widthFix) {=0A= var placeX, iwidth=3DbrowserWidth, winoffset=3DhorizontalScrollAmount;=0A= // HORIZONTAL PLACEMENT=0A= var parsedWidth=3DparseInt(o3_width);=0A= if (o3_fixx > -1||o3_relx!=3Dnull) {=0A= // Fixed position=0A= placeX=3D(o3_relx!=3Dnull ? ( o3_relx < 0 ? winoffset +o3_relx+ iwidth = - parsedWidth - widthFix : winoffset+o3_relx) : o3_fixx);=0A= } else { =0A= // If HAUTO,decide what to use.=0A= if (o3_hauto=3D=3D1) {=0A= if = ((o3_x-winoffset)>(iwidth/2)&&o3_hpos=3D=3DRIGHT&&((o3_x-winoffset)-(pars= edWidth+o3_offsetx-iwidth>(iwidth-widthFix)))) {=0A= o3_hpos=3DLEFT;=0A= } else if = (o3_hpos=3D=3DLEFT&&((o3_x-o3_offsetx-parsedWidth) (winoffset+iwidth - widthFix)) {=0A= placeX=3Diwidth+winoffset - parsedWidth - widthFix;=0A= if (placeX < 0) placeX=3D0;=0A= }=0A= }=0A= if (o3_hpos=3D=3DLEFT) { // Left=0A= placeX=3Do3_x-o3_offsetx-parsedWidth;=0A= if (placeX < winoffset) placeX=3Dwinoffset;=0A= }=0A= // Snapping!=0A= if (o3_snapx > 1) {=0A= var snapping=3DplaceX % o3_snapx;=0A= if (o3_hpos=3D=3DLEFT) {=0A= placeX=3DplaceX - (o3_snapx+snapping);=0A= } else {=0A= // CENTER and RIGHT=0A= placeX=3DplaceX+(o3_snapx - snapping);=0A= }=0A= if (placeX < winoffset) placeX=3Dwinoffset;=0A= }=0A= } =0A= return placeX;=0A= }=0A= // was originally in the placeLayer() routine; separated out for future = ease=0A= function verticalPlacement(browserHeight,verticalScrollAmount) {=0A= var placeY, iheight=3DbrowserHeight, = scrolloffset=3DverticalScrollAmount;=0A= // VERTICAL PLACEMENT=0A= var parsedHeight=3D(o3_aboveheight ? parseInt(o3_aboveheight) : (olNs4 = ? over.clip.height : over.offsetHeight));=0A= if (o3_fixy > -1||o3_rely!=3Dnull) {=0A= // Fixed position=0A= placeY=3D(o3_rely!=3Dnull ? (o3_rely < 0 ? = scrolloffset+o3_rely+iheight - parsedHeight : scrolloffset+o3_rely) : = o3_fixy);=0A= } else {=0A= // If VAUTO,decide what to use.=0A= if (o3_vauto=3D=3D1) {=0A= if = ((o3_y-scrolloffset)>(iheight/2)&&o3_vpos=3D=3DBELOW&&(o3_y+parsedHeight+= o3_offsety-(scrolloffset+iheight)>0)) {=0A= o3_vpos=3DABOVE;=0A= } else if = (o3_vpos=3D=3DABOVE&&(o3_y-(parsedHeight+o3_offsety)-scrolloffset<0)) {=0A= o3_vpos=3DBELOW;=0A= }=0A= }=0A= // From mouse=0A= if (o3_vpos=3D=3DABOVE) {=0A= if (o3_aboveheight=3D=3D0) o3_aboveheight=3DparsedHeight; =0A= placeY=3Do3_y - (o3_aboveheight+o3_offsety);=0A= if (placeY < scrolloffset) placeY=3Dscrolloffset;=0A= } else {=0A= // BELOW=0A= placeY=3Do3_y+o3_offsety;=0A= } =0A= // Snapping!=0A= if (o3_snapy > 1) {=0A= var snapping=3DplaceY % o3_snapy; =0A= if (o3_aboveheight > 0&&o3_vpos=3D=3DABOVE) {=0A= placeY=3DplaceY - (o3_snapy+snapping);=0A= } else {=0A= placeY=3DplaceY+(o3_snapy - snapping);=0A= } =0A= if (placeY < scrolloffset) placeY=3Dscrolloffset;=0A= }=0A= }=0A= return placeY;=0A= }=0A= // checks positioning flags=0A= function checkPositionFlags() {=0A= if (olHautoFlag) olHautoFlag =3D o3_hauto=3D0;=0A= if (olVautoFlag) olVautoFlag =3D o3_vauto=3D0;=0A= return true;=0A= }=0A= // get Browser window width=0A= function windowWidth() {=0A= var w;=0A= if (o3_frame.innerWidth) w=3Do3_frame.innerWidth;=0A= else if (eval('o3_frame.'+docRoot)&&eval("typeof = o3_frame."+docRoot+".clientWidth=3D=3D'number'")&&eval('o3_frame.'+docRoo= t+'.clientWidth')) =0A= w=3Deval('o3_frame.'+docRoot+'.clientWidth');=0A= return w; =0A= }=0A= // create the div container for popup content if it doesn't exist=0A= function createDivContainer(id,frm,zVal) {=0A= id=3D(id||'overDiv'), frm=3D(frm||o3_frame), zVal=3D(zVal||1000);=0A= var objRef, divContainer =3D layerReference(id);=0A= if (divContainer=3D=3Dnull) {=0A= if (olNs4) {=0A= divContainer=3Dfrm.document.layers[id]=3Dnew = Layer(window.innerWidth,frm);=0A= objRef=3DdivContainer;=0A= } else {=0A= var body =3D (olIe4 ? frm.document.all.tags('BODY')[0] : = frm.document.getElementsByTagName("BODY")[0]);=0A= if (olIe4&&!document.getElementById) {=0A= body.insertAdjacentHTML("beforeEnd",'
');=0A= divContainer=3DlayerReference(id);=0A= } else {=0A= divContainer=3Dfrm.document.createElement("DIV");=0A= divContainer.id =3D id;=0A= body.appendChild(divContainer);=0A= }=0A= objRef=3DdivContainer.style;=0A= }=0A= objRef.position=3D'absolute';=0A= objRef.visibility=3D'hidden';=0A= objRef.zIndex=3DzVal;=0A= if (olIe4&&!olOp) objRef.left =3D objRef.top =3D '0px';=0A= else objRef.left =3D objRef.top =3D -10000 + (!olNs4 ? 'px' : 0);=0A= }=0A= return divContainer;=0A= }=0A= =0A= // get reference to a layer of ID=3Did=0A= function layerReference(id) {=0A= return (olNs4 ? o3_frame.document.layers[id] : (document.all ? = o3_frame.document.all[id] : o3_frame.document.getElementById(id)));=0A= }=0A= ////////=0A= // PLUGIN ACTIVATION FUNCTIONS=0A= ////////=0A= // Runs plugin functions to set runtime variables.=0A= function setRunTimeVariables(){=0A= if(typeof runTime!=3D'undefined'&&runTime.length) =0A= for (var k=3D0; k-1) {i=3Dj; break;}=0A= }=0A= }=0A= return i;=0A= }=0A= // Runs plugin functions to do things after parse.=0A= function postParseChecks(pf,args){=0A= if (typeof postParse!=3D'undefined'&&postParse.length) {=0A= for (var k=3D0; k jS) {=0A= for (var k=3DjS; k -1) = hookPt.alt[pms[CSSOFF-1-pmStart]]=3DfnRef; =0A= } else if (hookType =3D=3D FBEFORE || hookType =3D=3D FAFTER) {=0A= hookPt=3D(hookType=3D=3D1 ? hookPt.before : hookPt.after);=0A= if (typeof fnRef=3D=3D'object') hookPt=3DhookPt.concat(fnRef);=0A= else hookPt[hookPt.length++]=3DfnRef;=0A= if (optPm) hookPt=3DreOrder(hookPt,fnRef,optPm);=0A= } else if (hookType =3D=3D FALTERNATE) {=0A= if (last=3D=3D'number') hookPt.alt[pms[optPm-1-pmStart]]=3DfnRef;=0A= } else if (hookType =3D=3D FCHAIN) {=0A= hookPt =3D hookPt.chain; =0A= if (typeof fnRef=3D=3D'object') hookPt=3DhookPt.concat(fnRef); // add = other functions =0A= else hookPt[hookPt.length++]=3DfnRef;=0A= }=0A= return;=0A= }=0A= }=0A= // Register a function that will set runtime variables.=0A= function registerRunTimeFunction(fn) {=0A= if (isFunction(fn)) {=0A= if (typeof fn=3D=3D'object') runTime=3DrunTime.concat(fn);=0A= else runTime[runTime.length++]=3Dfn;=0A= }=0A= }=0A= // Register a function that will handle command parsing.=0A= function registerCmdLineFunction(fn){=0A= if (isFunction(fn)) {=0A= if (typeof fn=3D=3D'object') cmdLine=3DcmdLine.concat(fn);=0A= else cmdLine[cmdLine.length++]=3Dfn;=0A= }=0A= }=0A= // Register a function that does things after command parsing. =0A= function registerPostParseFunction(fn){=0A= if (isFunction(fn)) {=0A= if (typeof fn=3D=3D'object') postParse=3DpostParse.concat(fn);=0A= else postParse[postParse.length++]=3Dfn;=0A= }=0A= }=0A= ////////=0A= // PLUGIN REGISTRATION FUNCTIONS=0A= ////////=0A= // Runs any hooks registered.=0A= function runHook(fnHookTo,hookType) {=0A= var l,k,rtnVal=3Dnull,optPm,arS,ar=3Darguments;=0A= l =3D hookPts[fnHookTo];=0A= if (hookType =3D=3D FREPLACE) {=0A= arS=3DargToString(ar,2);=0A= if (typeof l=3D=3D'undefined'||!(l=3Dl.ovload)) = rtnVal=3Deval(fnHookTo+'('+arS+')');=0A= else rtnVal=3Deval('l('+arS+')');=0A= } else if (hookType =3D=3D FBEFORE || hookType =3D=3D FAFTER) {=0A= if (typeof l!=3D'undefined') {=0A= l=3D(hookType=3D=3D1 ? l.before : l.after);=0A= if (l.length) { =0A= arS=3DargToString(ar,2);=0A= for (k=3D0; k < l.length; k++) eval('l[k]('+arS+')');=0A= }=0A= }=0A= } else if (hookType =3D=3D FALTERNATE) {=0A= optPm=3Dar[2];=0A= arS=3DargToString(ar,3);=0A= if(typeof = l=3D=3D'undefined'||(l=3Dl.alt[pms[optPm-1-pmStart]])=3D=3D'undefined') = rtnVal=3Deval(fnHookTo+'('+arS+')');=0A= else rtnVal=3Deval('l('+arS+')');=0A= } else if (hookType =3D=3D FCHAIN) {=0A= arS=3DargToString(ar,2);=0A= l=3Dl.chain;=0A= for (k=3Dl.length; k > 0; k--) = if((rtnVal=3Deval('l[k-1]('+arS+')'))!=3Dvoid(0)) break;=0A= }=0A= return rtnVal;=0A= }=0A= ////////=0A= // OBJECT CONSTRUCTORS=0A= ////////=0A= // Object for handling hooks.=0A= function FunctionReference() {=0A= this.ovload=3Dnull;=0A= this.before=3Dnew Array();=0A= this.after=3Dnew Array();=0A= this.alt=3Dnew Array();=0A= this.chain=3Dnew Array();=0A= }=0A= // checks for Core Version required=0A= function meets(reqdVersion) {=0A= return (!reqdVersion) ? false : this.simpleversion >=3D = Math.round(100*parseFloat(reqdVersion));=0A= }=0A= // Object for simple access to the overLIB version used.=0A= // Examples: simpleversion:351 major:3 minor:5 revision:1=0A= function Info(version, prerelease) {=0A= this.version =3D version;=0A= this.prerelease =3D prerelease;=0A= =0A= this.simpleversion =3D Math.round(this.version*100);=0A= this.major =3D parseInt(this.simpleversion / 100);=0A= this.minor =3D parseInt(this.simpleversion / 10) - this.major * 10;=0A= this.revision =3D parseInt(this.simpleversion) - this.major * 100 - = this.minor * 10;=0A= this.meets =3D meets;=0A= }=0A= ////////=0A= // STANDARD REGISTRATIONS=0A= ////////=0A= registerHook("ol_content_simple",ol_content_simple,FALTERNATE,CSSOFF);=0A= registerHook("ol_content_caption",ol_content_caption,FALTERNATE,CSSOFF);=0A= registerHook("ol_content_background",ol_content_background,FALTERNATE,CSS= OFF);=0A= registerHook("ol_content_simple",ol_content_simple,FALTERNATE,CSSCLASS);=0A= registerHook("ol_content_caption",ol_content_caption,FALTERNATE,CSSCLASS)= ;=0A= registerHook("ol_content_background",ol_content_background,FALTERNATE,CSS= CLASS);=0A= registerPostParseFunction(checkPositionFlags);=0A= registerHook("hideObject",nbspCleanup,FAFTER);=0A= registerHook("horizontalPlacement", horizontalPlacement, FCHAIN);=0A= registerHook("verticalPlacement", verticalPlacement, FCHAIN);=0A= if(olNs4||(olIe5&&isMac)||olKq) olLoaded=3D1;=0A= registerNoParameterCommands('sticky,autostatus,autostatuscap,fullhtml,hau= to,vauto,closeclick,wrap,followmouse,mouseoff,compatmode');=0A= //////=0A= // ESTABLISH MOUSECAPTURING=0A= //////=0A= var olCheckMouseCapture=3Dtrue;=0A= if ((olNs4||olNs6||olIe4)) olMouseCapture();=0A= else {=0A= overlib=3Dno_overlib;=0A= nd=3Dno_overlib;=0A= ver3fix=3Dtrue;=0A= }=0A= ------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.sciencedirect.com/science/page/javascript/fontSizeChanger.js function fontSizeAdd(elemId, fontURL) {=0A= var active =3D getFontStyle(elemId);=0A= switch (active) {=0A= case 'font1' :=0A= setActiveStyle('font2', elemId, fontURL);=0A= break;=0A= case 'font2' :=0A= setActiveStyle('font3', elemId, fontURL);=0A= break;=0A= case 'font3' :=0A= setActiveStyle('font4', elemId, fontURL);=0A= break;=0A= case 'font4' :=0A= setActiveStyle('font5', elemId, fontURL);=0A= break;=0A= case 'font5' :=0A= break;=0A= default :=0A= setActiveStyle('font3', elemId, fontURL);=0A= break;=0A= }=0A= }=0A= =0A= function fontSizeMinus(elemId, fontURL) {=0A= var active =3D getFontStyle(elemId);=0A= switch (active) {=0A= case 'font5' :=0A= setActiveStyle('font4', elemId, fontURL);=0A= break;=0A= case 'font4' :=0A= setActiveStyle('font3', elemId, fontURL);=0A= break;=0A= case 'font3' :=0A= setActiveStyle('font2', elemId, fontURL);=0A= break;=0A= case 'font2' :=0A= setActiveStyle('font1', elemId, fontURL);=0A= break;=0A= case 'font1' :=0A= break;=0A= default :=0A= setActiveStyle('font3', elemId, fontURL);=0A= break;=0A= }=0A= }=0A= =0A= function getFontStyle(elemId) {=0A= var x =3D document.getElementById(elemId);=0A= if(!x) {return 'fontDefault';}=0A= var z =3D x.className;=0A= return z;=0A= }=0A= =0A= function setActiveStyle(fontClass, elemId, fontURL) {=0A= var x =3D document.getElementById(elemId);=0A= if(!x) {return;}=0A= var z =3D x.className;=0A= if(z !=3D fontClass) {=0A= var fontId;=0A= switch (fontClass) {=0A= case 'font5' :=0A= fontId =3D 5;=0A= break;=0A= case 'font4' :=0A= fontId =3D 4;=0A= break;=0A= case 'font3' :=0A= fontId =3D 3;=0A= break;=0A= case 'font2' :=0A= fontId =3D 2;=0A= break;=0A= case 'font1' :=0A= fontId =3D 1;=0A= break;=0A= default :=0A= fontId =3D 3;=0A= break;=0A= }=0A= var url =3D "/" + fontURL + "/fontsize/" + fontId;=0A= new Ajax.Request(url);=0A= x.className=3DfontClass;=0A= }=0A= }=0A= document.getElementsByClassName =3D function(cl) {=0A= var retnode =3D [];=0A= var myclass =3D new RegExp('\\b'+cl+'\\b');=0A= var elem =3D this.getElementsByTagName('*');=0A= for (var i =3D 0; i < elem.length; i++) {=0A= var classes =3D elem[i].className;=0A= if (myclass.test(classes)) = retnode.push(elem[i]);=0A= }=0A= return retnode;=0A= };=0A= =0A= function fontSizeAddIm(elemId, fontURL) {=0A= var active =3D getFontStyle(elemId);=0A= var obj;=0A= var captObj;=0A= switch (active) {=0A= case 'font1' :=0A= obj =3D document.getElementsByClassName("height1");=0A= captObj =3D document.getElementsByClassName("innerCaption = heightCapt1");=0A= for(j=3D0;j=0A= ------=_NextPart_000_0000_01CB7067.B8A11D20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://sciencedirect.nextbio.com/e/script/include.nb?type=js&name=tagCloud,elsevier&apiKey=F70C5A70-D194-4150-9F99-C8FC2266B65F =20 =20 // NextBio name space=20 var nbApi; if (!nbApi) nbApi =3D {debug: false}; nbApi.apiKey =3D "F70C5A70-D194-4150-9F99-C8FC2266B65F"; nbApi.nameSpace =3D "nbApi"; nbApi.debug =3D false; nbApi.sessionId =3D "7d502b4e491b43a395b16c9f354541e7"; nbApi.timeStamp =3D "f4181df79abf1bf68b52a5d687db5424"; nbApi.timeoutStamp =3D "4d5cf4bf56670591"; if (!nbApi.urlContext) { nbApi.urlContext =3D "http://sciencedirect.nextbio.com/e"; =20 } nbApi.imgContext =3D "http://sciencedirect.nextbio.com/e/s/img3"; nbApi.debugMode =3D function(debug) { =20 nbApi.setDebugMode(debug); }; nbApi.setDebugMode =3D function(debug) { =20 nbApi.debug =3D debug =3D=3D true; }; nbApi.getDebugMode =3D function() { =20 return nbApi.debug =3D=3D true; }; =20 =20 // NextBio API utility functions // requires jsApi.jsp =20 // LoadFrame(config, bAlert) - load from server in an iFrame=20 // configuration parameters: // config.target - required. Id of a div, span, td, etc. to receive = results loaded from server =20 // config.url - required. URL of a web service processing AJAX call =20 // config.query - optional. List of parameters for the URL (see above) // config.success - optional. A callback function that will be excuted = in case of a successfull call, after results are loaded to the target=20 // success(args) - where args is described below.=20 // config.failure - optional. A callback function that will be = executed in case of a failed call: =20 // failure(args) - where args is described below.=20 // config.args - optional. A string that will be passsed as a = parameter to success() and/or failure() callbacks if either one is = specified. // bAlert - optional. True if we want to display alerts. nbApi.loadFrame =3D function(config) { var bAlert =3D nbApi.getDebugMode(); if (config =3D=3D null) { if (bAlert) alert("Nextbio API: No configuration object."); return false; } if (config.url =3D=3D null) { if (bAlert) alert("Nextbio API: Configuration object contains no URL."); return false; } =20 var target =3D document.getElementById(config.target); if (target =3D=3D null) { if (bAlert) alert("Nextbio API: Target with id=3D" + congig.target + " was = not found on this page."); return; }=20 var id =3D "nbTagCloud_" + config.target; var url =3D config.url; if (config.query !=3D null) url +=3D "?" + config.query;=20 var target =3D document.getElementById(config.target); target.innerHTML =3D ""; target =3D document.getElementById(id); target.src =3D url; }; // LoadScript(config) - load from server as a javascript script // configuration parameters: // config.target - required. Id of a div, span, td, etc. to receive = results loaded from server =20 // config.url - required. URL of a web service processing AJAX call =20 // config.query - optional. List of parameters for the URL (see above) // config.success - optional. A callback function that will be excuted = in case of a successfull call, after results are loaded to the target=20 // success(args) - where args is described below.=20 // config.failure - optional. A callback function that will be = executed in case of a failed call: =20 // failure(args) - where args is described below.=20 // config.args - optional. A string that will be passsed as a = parameter to success() and/or failure() callbacks if either one is = specified. // config.scriptTarget - optional. If id of parent to load script = into. When using wz_tooltip library, should not be in the tooltip = popup. Solves DE4705 nbApi.loadScript =3D function(config) { var bAlert =3D nbApi.getDebugMode(); if (config =3D=3D null) { if (bAlert) alert("Nextbio API: No configuration object."); return false; } var target =3D document.getElementById(config.target); if (target =3D=3D null) { if (bAlert) alert("Nextbio API: Target doesn't exist."); return false; } if (config.url =3D=3D null) { if (bAlert) alert("Nextbio API: Configuration object contains no URL."); return false; } =20 var message; if (config.message !=3D null) { if (config.messageStyle =3D=3D null) message =3D config.message;=20 else message =3D '' + = config.message + ''; message =3D ' ' + message; nbApi.setInnerHtml(config.target, message); target.style.cursor =3D "wait"; } var url =3D config.url; var params =3D "containerId=3D" + config.containerId + = "&targetId=3D" + config.target + "&callback=3D" + config.callbackName;=20 // setup timeout callback var timeoutId =3D null; if (config.timeout !=3D null && config.timeout > 0) { timeoutId =3D nbApi.createId("nextbioTimeout"); =20 var timeout =3D = setTimeout(function(){nbApi.loadTimeoutHandler(config.target, timeoutId, = config.timeoutCallback)}, config.timeout); target.setAttribute(timeoutId, timeout); params +=3D "&timeoutId=3D" + timeoutId; if (config.timeoutTerminate =3D=3D true) { params +=3D "&timeoutTerminate=3Dtrue"; } } =20 =20 if (config.query =3D=3D null) config.query =3D params; else config.query +=3D "&" + params; url +=3D "?" + config.query;=20 target.nextbioScriptCallback =3D config.callback; target.nbApi_highlight =3D config.highlight; nbApi.importScript(url, config.iFrameId, = config.scriptTarget||config.target); }; nbApi.updateTargetHTML =3D function(json) { if (json =3D=3D null || json.target =3D=3D null)=20 return; var target =3D document.getElementById(json.target); if (target =3D=3D null) return; =20 if (json.timeoutId !=3D null) { var timeoutId =3D target.getAttribute(json.timeoutId); if (timeoutId =3D=3D null || timeoutId.length =3D=3D 0) { if (json.timeoutTerminate =3D=3D true) { return; } } else { clearTimeout(timeoutId); target.setAttribute(json.timeoutId, null); } }=20 target.innerHTML =3D ""; target.nextbioIsLoaded =3D false; =20 var bLoaded =3D json.response !=3D null && json.response.length > 0; var body =3D null; if (bLoaded) { target.nextbioIsLoaded =3D true; if (target.nextbioHeader !=3D null && target.nextbioHeader.length = > 0) { var header =3D document.createElement("div"); if (target.nextbioHeaderClassName !=3D null) header.className =3D target.nextbioHeaderClassName; header.innerHTML =3D target.nextbioHeader; target.appendChild(header); } body =3D document.createElement("div"); body.className =3D target.nextbioTargetClassName; body.innerHTML =3D json.response; target.appendChild(body); if (target.nextbioFooter !=3D null && target.nextbioFooter.length = > 0) { var footer =3D document.createElement("div"); if (target.nextbioFooterClassName !=3D null) footer.className =3D target.nextbioFooterClassName; footer.innerHTML =3D target.nextbioFooter; target.appendChild(footer); } } target.style.cursor =3D "auto"; =20 if (target.nextbioScriptCallback !=3D null) target.nextbioScriptCallback(json.target, bLoaded, json); if (body && target.nbApi_highlight) nbApi.highlight(body); }; nbApi.updateTargetText =3D function(json) { if (json =3D=3D null || json.target =3D=3D null || json.response = =3D=3D null) return; var target =3D document.getElementbyId(json.target); if (json.timeoutId !=3D null) { var timeoutId =3D target.getAttribute(json.timeoutId); if (timeoutId =3D=3D null || timeoutId.length =3D=3D 0) { if (json.timeoutTerminate =3D=3D true) { return; } } else { clearTimeout(timeoutId); target.setAttribute(json.timeoutId, null); } }=20 target.innerText =3D json.response; target.textContent =3D json.response; target.style.cursor =3D "auto"; }; =20 nbApi.setInnerHtml =3D function(id, html) { if (id =3D=3D null || html =3D=3D null) return; var el =3D document.getElementById(id); if (el =3D=3D null) return; el.innerHTML =3D html; }; nbApi.setInnerText =3D function(id, text) { if (id =3D=3D null || text =3D=3D null) return; var el =3D document.getElementById(id); if (el =3D=3D null) return; el.innerText =3D text; el.textContent =3D text; }; nbApi.getInnerText =3D function(obj) { if (obj =3D=3D null) return null; var el =3D obj; if (typeof(obj) !=3D "object") { el =3D document.getElementById(obj); } if (el =3D=3D null) return null; if (el.innerText) return el.innerText; else return el.textContent; }; nbApi.setAttr =3D function(id, attr, text) { if (id =3D=3D null || attr =3D=3D null) return; var el; if (typeof(id) !=3D "object") el =3D document.getElementById(id); else el =3D id; =20 =20 if (el =3D=3D null) return; if (!text) el.removeAttribute(attr); else el.setAttribute(attr, text); }; nbApi.normalizeString =3D function(str) { if (str =3D=3D null) return ""; str =3D str.replace(/^\s+/, ""); =20 str =3D str.replace(/\s+$/, ""); =20 str =3D str.replace(/\s+/g, " "); return str; =20 }; nbApi.trim =3D function(str) { if (str =3D=3D null) return ""; str =3D str.replace(/^\s+/, ""); =20 str =3D str.replace(/\s+$/, ""); =20 return str; =20 }; // Adds one or more CSS classes to the element. Duplicate classes are = automatically filtered out. nbApi.addClass =3D function(element, newClassName) { if (element =3D=3D null) return; var className =3D element.className; if (className =3D=3D null || className.length =3D=3D 0) { element.className =3D newClassName; return; } var nameArray =3D element.className.split(/\s+/); var out =3D newClassName; for (i =3D 0; i < nameArray.length; i++) { if (nameArray[i] !=3D newClassName) { out +=3D " " + nameArray[i]; } =20 } out =3D nbApi.trim(out); element.className =3D out; }; nbApi.removeClass =3D function(element, className) { if (element =3D=3D null) return; if (className =3D=3D null) return; =20 var nameArray =3D element.className.split(/\s+/); var out =3D ""; for (i =3D 0; i < nameArray.length; i++) { if (nameArray[i] !=3D className) { if (i > 0) out +=3D " "; out +=3D nameArray[i]; } =20 } out =3D nbApi.trim(out); if (out.length > 0) element.className =3D out; else element.className =3D null; }; =20 nbApi.getWindowHeight =3D function()=20 { var myHeight =3D 0; if( typeof( window.innerWidth ) =3D=3D 'number' ) { //Non-IE myHeight =3D window.innerHeight; } else if( document.documentElement && ( document.documentElement.clientWidth || = document.documentElement.clientHeight ) ) { //IE 6+ in 'standards compliant mode' myHeight =3D document.documentElement.clientHeight; } else if( document.body && ( document.body.clientWidth || = document.body.clientHeight ) ) { //IE 4 compatible myHeight =3D document.body.clientHeight; } return myHeight; }; =20 nbApi.getWindowWidth =3D function()=20 { var myWidth =3D 0; if( typeof( window.innerWidth ) =3D=3D 'number' ) { //Non-IE myWidth =3D window.innerWidth; } else if( document.documentElement && ( document.documentElement.clientWidth || = document.documentElement.clientHeight ) ) { //IE 6+ in 'standards compliant mode' myWidth =3D document.documentElement.clientWidth; } else if( document.body && ( document.body.clientWidth || = document.body.clientHeight ) ) { //IE 4 compatible myWidth =3D document.body.clientWidth; } return myWidth; }; =20 nbApi.getElementLeft =3D function(eElement)=20 { if (!eElement && this) // if argument is invalid { // (not specified, is = null or is 0) eElement =3D this; // and function is a = method } // identify the element = as the method owner =20 var bIE =3D document.all ? true : false; // initialize var to = identify IE =20 var nLeftPos =3D eElement.offsetLeft; // initialize var to = store calculations var eParElement =3D eElement.offsetParent; // identify first = offset parent element =20 while (eParElement !=3D null) { // move up through = element hierarchy =20 if(bIE) // if browser is IE, then... { if( (eParElement.tagName !=3D "TABLE") && = (eParElement.tagName !=3D "BODY") ) { // if parent is not a = table or the body, then... nLeftPos +=3D eParElement.clientLeft; // append cell = border width to calcs } } else // if browser is Gecko, = then... { if(eParElement.tagName =3D=3D "TABLE") // if parent is a = table, then... { // get its border as a = number var nParBorder =3D parseInt(eParElement.border); if(isNaN(nParBorder)) // if no valid border = attribute, then... { // check the table's = frame attribute var nParFrame =3D eParElement.getAttribute('frame'); if(nParFrame !=3D null) // if frame has ANY = value, then... { nLeftPos +=3D 1; // append one pixel to = counter } } else if(nParBorder > 0) // if a border width is = specified, then... { nLeftPos +=3D nParBorder; // append the border = width to counter } } } nLeftPos +=3D eParElement.offsetLeft; // append left offset = of parent eParElement =3D eParElement.offsetParent; // and move up the = element hierarchy } // until no more offset = parents exist if (scroll) { eParElement =3D eElement; while (eParElement) { if (eParElement.scrollLeft) { nLeftPos -=3D eParElement.scrollLeft; } eParElement =3D eParElement.parentNode; } } return nLeftPos; // return the number = calculated }; =20 =20 // get the top offset of the element. If scroll is true, take = scrolling into account nbApi.getElementTop =3D function(eElement, scroll)=20 { if (!eElement && this) // if argument is invalid { // (not specified, is = null or is 0) eElement =3D this; // and function is a = method } // identify the element = as the method owner =20 var bIE =3D document.all ? true : false; // initialize var to = identify IE =20 var nTopPos =3D eElement.offsetTop; // initialize var to = store calculations var eParElement =3D eElement.offsetParent; // identify first = offset parent element =20 while (eParElement !=3D null) { // move up through = element hierarchy if(bIE) // if browser is IE, then... { if( (eParElement.tagName !=3D "TABLE") && = (eParElement.tagName !=3D "BODY") ) { // if parent a table = cell, then... nTopPos +=3D eParElement.clientTop; // append cell border = width to calcs } } else // if browser is Gecko, = then... { if(eParElement.tagName =3D=3D "TABLE") // if parent is a = table, then... { // get its border as a = number var nParBorder =3D parseInt(eParElement.border); if(isNaN(nParBorder)) // if no valid border = attribute, then... { // check the table's = frame attribute var nParFrame =3D eParElement.getAttribute('frame'); if(nParFrame !=3D null) // if frame has ANY = value, then... { nTopPos +=3D 1; // append one pixel to = counter } } else if(nParBorder > 0) // if a border width is = specified, then... { nTopPos +=3D nParBorder; // append the border = width to counter } } } =20 nTopPos +=3D eParElement.offsetTop; // append top offset of = parent eParElement =3D eParElement.offsetParent; // and move up the = element hierarchy } // until no more offset = parents exist if (scroll) { eParElement =3D eElement; while (eParElement) { if (eParElement.scrollTop) { nTopPos -=3D eParElement.scrollTop; } eParElement =3D eParElement.parentNode; } } return nTopPos; // return the number = calculated }; // get scroll factor for the element nbApi.getScrollLeft =3D function() { if (typeof( window.pageXOffset ) =3D=3D 'number') return window.pageXOffset; if (document.body !=3D null && document.body.scrollLeft) return document.body.scrollLeft; =20 if (document.documentElement !=3D null && = document.documentElement.scrollLeft) return document.documentElement.scrollLeft; return 0; =20 }; =20 nbApi.getScrollTop =3D function() { if (typeof( window.pageYOffset ) =3D=3D 'number') return window.pageYOffset; if (document.body !=3D null && document.body.scrollTop) return document.body.scrollTop; =20 if (document.documentElement !=3D null && = document.documentElement.scrollTop) return document.documentElement.scrollTop; return 0; =20 }; =20 nbApi.onEvent =3D function(event, popupObj, param, extra) { if (event =3D=3D null || popupObj =3D=3D null) return; var containerId =3D null; var isObj =3D typeof(popupObj) =3D=3D "object"; if (isObj =3D=3D true) containerId =3D popupObj.containerId; else containerId =3D popupObj; if (containerId =3D=3D null) return; var container =3D document.getElementById(containerId); if (container =3D=3D null) return; =20 if (event.type.toLowerCase() =3D=3D "click") { if (container.nextbioOnClick !=3D null)=20 { if (isObj =3D=3D true) return container.nextbioOnClick(event, popupObj); else return container.nextbioOnClick(event, containerId, param, = extra, container.nextbioUrlContext); } } else if (event.type.toLowerCase() =3D=3D "mouseover") { if (container.nextbioOnMouseOver !=3D null) { if (isObj =3D=3D true) container.nextbioOnMouseOver(event, popupObj); else container.nextbioOnMouseOver(event, containerId, param, extra, = container.nextbioUrlContext); } } else if (event.type.toLowerCase() =3D=3D "mouseout") { if (container.nextbioOnMouseOut !=3D null) { if (isObj =3D=3D true) container.nextbioOnMouseOut(event, popupObj); else container.nextbioOnMouseOut(event, containerId, param, extra, = container.nextbioUrlContext); } } }; nbApi.showFrame =3D function(event, popupObj, param, extra, = urlContext) { if (event =3D=3D null || popupObj =3D=3D null) return false; var redirect =3D false; var popupId =3D null; var owner =3D null; if (typeof(popupObj) =3D=3D "object") { popupId =3D popupObj.containerId; param =3D popupObj.tagName; extra =3D popupObj.customParam; urlContext =3D popupObj.urlContext; redirect =3D popupObj.redir; owner =3D popupObj.owner; if (urlContext =3D=3D null && nbApi.consumer !=3D null) urlContext =3D nbApi.consumer.targetUrl; } else popupId =3D popupObj; if (popupId =3D=3D null) return false; if (param =3D=3D null) return false; var url; if (urlContext =3D=3D null) urlContext =3D "http://sciencedirect.nextbio.com/e"; var context =3D "ov";=20 if (!popupObj.isFakeId && nbApi.consumer && nbApi.consumer.name = =3D=3D "elsevier.sciencedirect") { context =3D "ft"; } if ("" =3D=3D "1.0.ui2") { url =3D urlContext + "/home/home.nb?q=3D" + = encodeURIComponent(param) + "&" + extra; } else if (param.indexOf('%') >=3D 0 || param.indexOf('/') >=3D 0 || = param.indexOf('+') >=3D 0) { url =3D urlContext + "/search/" + context + ".nb?q=3D" + = encodeURIComponent(param) + "&" + extra; } else { if (event.urlContext !=3D null) context =3D event.urlContext; url =3D urlContext + "/search/" + context + "/" + = encodeURIComponent(param) + "?" + extra; } if (redirect) { var targetUrl =3D encodeURIComponent(url); var campaignParam =3D ""; campaignParam +=3D "NextBio|"; campaignParam +=3D "tagType=3D" + popupObj.type + "|"; var viewMore =3D popupObj.viewMore=3D=3D"yes"?"yes":"no"; campaignParam +=3D "viewMore=3D" + viewMore + "|"; campaignParam +=3D "sessionId=3D" + popupObj.sessionId + "|"; campaignParam +=3D "pii=3D" + popupObj.pii + "|"; campaignParam +=3D "uiStrategy=3D" + popupObj.strategy + "|"; campaignParam +=3D "tagName=3D" + popupObj.tagName + "|"; campaignParam +=3D "cloudSize=3D" + popupObj.size + "|"; campaignParam +=3D "version=3D" + nbApi.consumer.version; campaignParam =3D encodeURIComponent(campaignParam); url =3D nbApi.consumer.redirectUrl + "?campaign_par=3D" + = campaignParam + "&targetURL=3D" + targetUrl; =20 } var container =3D document.getElementById(popupId + = "_frame_container"); var frameProperties =3D nbApi.getFrameProperties(popupId); if (frameProperties =3D=3D null) { if (container =3D=3D null) return false;=20 nbApi.removeFrame(popupId); var frame =3D document.createElement("iframe"); frame.id =3D popupId + "_frame"; frame.style.top =3D "0px"; frame.style.left =3D "0px"; // frame.style.width =3D "100%"; // frame.style.height =3D "100%"; frame.style.width =3D container.style.width; frame.style.height =3D container.style.height; frame.frameBorder =3D 1; container.appendChild(frame); frame.src =3D url;=20 return false; } if (frameProperties.iFrame =3D=3D "true" || frameProperties.iFrame = =3D=3D true) { if (container =3D=3D null) return false;=20 nbApi.removeFrame(popupId); var winWidth =3D nbApi.getWindowWidth(); var winHeight =3D nbApi.getWindowHeight(); // var frameWidth =3D Math.min(winWidth - 50, = frameProperties.width); // var frameHeight =3D Math.min(winHeight - 50, = frameProperties.height); // frameWidth =3D Math.max(frameWidth, 200); // frameHeight =3D Math.max(frameHeight, 150); var frameTop =3D Math.floor((winHeight - frameHeight)/2) + = nbApi.getScrollTop() - 20;=20 var frameLeft =3D Math.floor((winWidth - frameWidth)/2) + = nbApi.getScrollLeft() - 10;=20 frameTop =3D Math.max(frameTop, 0); frameLeft =3D Math.max(frameLeft, 0); =20 // container.style.position =3D "absolute"; // container.style.top =3D frameTop + "px"; // container.style.left =3D frameLeft + "px"; var frame =3D document.createElement("iframe"); frame.id =3D popupId + "_frame"; frame.frameBorder =3D 0; container.appendChild(frame); container.style.display =3D ""; frame.style.position =3D "relative"; frame.style.top =3D "0px"; frame.style.left =3D "0px"; // frame.style.width =3D "100%"; // frame.style.height =3D "100%"; frame.style.width =3D container.style.width; frame.style.height =3D container.style.height; frame.frameBorder =3D 1; frame.src =3D url;=20 return false; } =20 var target =3D frameProperties.target; if (owner && (!target)) { if (frameProperties.targetName) { owner.target =3D frameProperties.targetName; } owner.href =3D url; return true; } =20 =20 var screenWidth =3D screen.availWidth !=3D null ? screen.availWidth = : screen.width; var screenHeight =3D screen.availHeight !=3D null ? = screen.availHeight : screen.height - 100; // to account for non-client = area of a window.=20 var frameWidth =3D Math.min(screenWidth - 50, = frameProperties.width); var frameHeight =3D Math.min(screenHeight - 50, = frameProperties.height); frameWidth =3D Math.max(frameWidth, 200); frameHeight =3D Math.max(frameHeight, 200); var frameTop =3D frameProperties.top < 0 ? Math.floor((screenHeight = - frameHeight)/2) : frameProperties.top;=20 var frameLeft =3D frameProperties.left < 0 ? Math.floor((screenWidth = - frameWidth)/2) : frameProperties.left;=20 frameTop =3D Math.max(frameTop, 0); frameLeft =3D Math.max(frameLeft, 0); =20 var winParams =3D = "resizable=3Dyes,scrollbars=3Dyes,status=3Dyes,toolbar=3Dyes,location=3Dy= es,menubar=3Dno,top=3D" + frameTop + ",left=3D" + frameLeft + = ",width=3D" + frameWidth + ",height=3D" + frameHeight; try { if (window[target] !=3D null) window[target].close(); } catch (error){} var newWindow =3D window.open(url, frameProperties.targetName, = winParams); if (target !=3D null) window[target] =3D newWindow;=20 return false; }; nbApi.hideFrame =3D function(popupId) { if (popupId =3D=3D null) return; var popup =3D document.getElementById(popupId + "_frame_popup"); if (popup =3D=3D null) return; =20 popup.style.display =3D "none"; nbApi.removeFrame(popupId); }; nbApi.removeFrame =3D function(popupId) { if (popupId =3D=3D null) return; var frame =3D document.getElementById(popupId + "_frame"); if (frame =3D=3D null) return; var container =3D frame.parentNode; if (container =3D=3D null) return; container.removeChild(frame); }; nbApi.getFrameProperties =3D function(popupId) { if (popupId =3D=3D null) return null; var popup =3D document.getElementById(popupId); =20 if (popup =3D=3D null) return null; var properties =3D { target: popup.nextbioTarget, targetName: popup.nextbioTargetName, iFrame: popup.getAttribute("nextbioIFrame"), top: popup.nextbioTop, left: popup.nextbioLeft, width: popup.nextbioWidth,=20 height: popup.nextbioHeight }; return properties; }; =20 // importScript(url) - load javascript dynamically // url - url of a javascript file nbApi.importScript =3D function(url, iFrameId, targetId) { var bAlert =3D nbApi.getDebugMode(); if (url =3D=3D null) { if (bAlert) alert("Nextbio API: importScript: No URL."); return; } var target =3D null; if (iFrameId !=3D null) { var iFrame =3D document.getElementById(iFrameId); if (iFrame =3D=3D null) { if (bAlert) alert("Nextbio API: importScript: iFrame with id '" + iFrameId = + "' not found."); return; } var script =3D = iFrame.contentWindow.document.createElement("script"); script.type =3D "text/javascript"; if (targetId) target =3D = iFrame.contentWindow.document.getElementById(targetId); if (!target) target =3D iFrame.contentWindow.document.body; target.appendChild(script); script.src =3D url; } else=20 { var script =3D document.createElement("script"); script.type =3D "text/javascript"; if (targetId) target =3D document.getElementById(targetId); if (!target) target =3D document.body; target.appendChild(script); script.src =3D url; } }; =20 //=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D extensions = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D nbApi.findParentByClassName =3D function(obj, className) { if (obj =3D=3D null || className =3D=3D null) return null; while (obj !=3D null) { if (obj.nodeType =3D=3D 1 && obj.className !=3D null) { var names =3D obj.className.split(" "); for (var i =3D 0; i < names.length; i++) { if (nbApi.trim(names[i]) =3D=3D className) { return obj; } } } =20 obj =3D obj.parentNode; } =20 return null; }; =20 nbApi.findParentByTagName =3D function(obj, tagName) { if (obj =3D=3D null || tagName =3D=3D null) return null; tagName =3D tagName.toLowerCase(); obj =3D obj.parentNode; while (obj !=3D null) { =20 var objTagName =3D nbApi.trim(obj.tagName); if (objTagName !=3D null) objTagName =3D objTagName.toLowerCase(); if (obj.nodeType =3D=3D 1 && objTagName =3D=3D tagName) return obj; =20 obj =3D obj.parentNode; } =20 return null; }; =20 nbApi.show =3D function (targetId, bShow) { var element =3D document.getElementById(targetId); if (element !=3D null) element.style.display =3D bShow?"inline":"none"; }; =20 nbApi.findElementsByName =3D function(name, type) { var group =3D document.getElementsByName(name); if ((group =3D=3D null || group.length =3D=3D 0) && type !=3D null) group =3D document.getElementsByTagName(type); if (group =3D=3D null || group.length =3D=3D 0) return group; var out =3D new Array(); var j =3D 0; =20 for (i =3D 0; i < group.length; i++) { var nameAttr =3D group[i].getAttribute("name"); if (nameAttr =3D=3D name) { out[j] =3D group[i]; j++; } } return out; }; =20 nbApi.findPosition =3D function(obj)=20 { var left =3D 0; var top =3D 0; var iter =3D obj; if (obj.offsetParent)=20 { do=20 { left +=3D obj.offsetLeft; top +=3D obj.offsetTop; } while (obj =3D obj.offsetParent); } else { left =3D obj.offsetLeft; top =3D obj.offsetTop; =20 } =20 while (iter)=20 { if (iter.tagName && iter.tagName.toLowerCase() =3D=3D "body") { break; } if (iter.scrollLeft)=20 { left -=3D iter.scrollLeft; } if (iter.scrollTop)=20 { top -=3D iter.scrollTop; } iter =3D iter.parentNode; } return {left: left, top: top}; }; =20 nbApi.createId =3D function(id)=20 { var date1 =3D new Date(); date1.setFullYear(2000,1,1); var date2 =3D new Date(); id +=3D date2.getTime() - date1.getTime(); return id; }; =20 nbApi.loadTimeoutHandler =3D function(targetId, timeoutId, = timeoutCallback) { var bAlert =3D nbApi.getDebugMode(); if (targetId =3D=3D null) { if (bAlert) alert("Nextbio API: Timeout Handler: No target id."); return false; } if (timeoutId =3D=3D null) { if (bAlert) alert("Nextbio API: Timeout Handler: No timeout id."); return false; } var target =3D document.getElementById(targetId); if (target =3D=3D null) { if (bAlert) alert("Nextbio API: Timeout Handler: Target doesn't exist."); return false; } target.setAttribute(timeoutId, null); =20 if (timeoutCallback =3D=3D null) { return true; } return timeoutCallback(target); }; nbApi.setCookie =3D function(cookieName, value, time) { var cookie=3DcookieName + "=3D" + escape(value) + ";path=3D/;"; if (time !=3D null) { var date=3Dnew Date(); date.setFullYear(date.getFullYear() + time); cookie +=3D ";expires=3D" + date.toGMTString(); } document.cookie=3Dcookie; } nbApi.getCookie =3D function(cookieName) { if (document.cookie.length > 0) { cookieStart =3D document.cookie.indexOf(cookieName + "=3D"); if (cookieStart !=3D -1) {=20 cookieStart =3D cookieStart + cookieName.length + 1;=20 cookieEnd =3D document.cookie.indexOf(";", cookieStart); if (cookieEnd =3D=3D -1) cookieEnd =3D document.cookie.length; return unescape(document.cookie.substring(cookieStart, = cookieEnd)); }=20 } return ""; } nbApi.hidePopup =3D function(name) { =20 var elements =3D nbApi.findElementsByName(name, "div"); if (elements) { =20 for (i =3D 0; i < elements.length; i++) { elements[i].style.display=3D"none"; } } var back =3D document.getElementById("nbApiHelpBackId"); if (back) { document.body.removeChild(back); } } nbApi.showPopup =3D function(config) { =20 if (!config) return; var pos =3D nbApi.findPosition(config.owner); =20 var elements =3D nbApi.findElementsByName(config.helpBoxId, "div"); if (elements =3D=3D null) return; var helpBox =3D elements[0]; if (config.bModal) { var back =3D document.createElement("div"); back.id=3D"nbApiHelpBackId"; back.onclick =3D function() { helpBox.style.display=3D"none";=20 document.body.removeChild(back); }; back.className =3D "nbApiHelpBackground"; var pageSize =3D nbApi.pageSize(); back.style.width =3D pageSize.width + "px"; back.style.height =3D pageSize.height + "px"; document.body.appendChild(back); } helpBox.style.display =3D "block"; var winWidth =3D nbApi.getWindowWidth(); var winHeight =3D nbApi.getWindowHeight(); var top =3D 0; var left =3D 0; if (config.align =3D=3D "center") { top =3D (winHeight - helpBox.offsetHeight)/2; if (top < 0) top =3D 0; top +=3D nbApi.getScrollTop(); left =3D (winWidth - helpBox.offsetWidth)/2; if (left < 0) left =3D 0; left +=3D nbApi.getScrollLeft(); } else { top =3D (pos.top + helpBox.offsetHeight) < winHeight ? pos.top : = (winHeight - helpBox.offsetHeight); if (top < 0) top =3D 0; top +=3D nbApi.getScrollTop(); left =3D (pos.left + helpBox.offsetWidth) < winWidth ? pos.left : = (winWidth - helpBox.offsetWidth - 25); left +=3D nbApi.getScrollLeft(); } helpBox.style.top =3D top + "px"; helpBox.style.left =3D left + "px"; nbApi.trackUrl("/interact/help/"+config.helpBoxId); =20 } =20 nbApi.showHelp =3D function(config) { if (!config) return false; if (!config.owner || !config.name) return false; config.owner.href =3D = "http://sciencedirect.nextbio.com/e/help/download.nb?f=3D" + config.name = + ".pdf"; return true; } nbApi.pageSize =3D function() { var pageWidth =3D 0; var pageHeight =3D 0; if( window.innerHeight && window.scrollMaxY ) // Firefox=20 { pageWidth =3D window.innerWidth + window.scrollMaxX; pageHeight =3D window.innerHeight + window.scrollMaxY; } else if( document.body.scrollHeight > document.body.offsetHeight ) = // all but Explorer Mac { pageWidth =3D document.body.scrollWidth; pageHeight =3D document.body.scrollHeight; } else // works in Explorer 6 Strict, Mozilla (not FF) and Safari {=20 pageWidth =3D document.body.offsetWidth + = document.body.offsetLeft;=20 pageHeight =3D document.body.offsetHeight + = document.body.offsetTop;=20 } return {width: pageWidth, height: pageHeight}; } =20 nbApi.getElementsByClassName =3D function(el, clazz, tag) { var a =3D []; var re =3D new RegExp('\\b' + clazz + '\\b'); var els =3D el.getElementsByTagName(tag||"*"); for(var i=3D0,j=3Dels.length; i 0)=20 { begin =3D str.indexOf("&" + paramHead); // make sure we found exact = match if (begin < 0) // str doesn't have this param - return null return null; begin++; // skip "&" } var end =3D str.indexOf("&", begin); =20 if (end < 0) // this is the last param=20 { end =3D str.length; } var result =3D str.substring(begin + paramHead.length, end); return result; } // make sure that the element's position is within window bounds nbApi.getAdjustedPosition =3D function(element, y, x, rightBound, = bottomBound) { if (element =3D=3D null) =20 return; var left =3D x; =20 var top =3D y - element.offsetHeight; // x, y are coords of bottom = left corner =20 var bottom =3D bottomBound, right =3D rightBound; if (bottom =3D=3D null) bottom =3D nbApi.getWindowHeight() - 10;=20 if (right =3D=3D null) right =3D nbApi.getWindowWidth() - 10;=20 =20 var deltaY =3D top; var deltaX =3D right - (left + element.offsetWidth); scrollTop =3D nbApi.getScrollTop(); top +=3D scrollTop; // to account for page scrolling =20 if (deltaY < 0) { top -=3D deltaY;=20 if (top < scrollTop) top =3D scrollTop + 5;=20 } var newY =3D top + element.offsetHeight; scrollLeft =3D nbApi.getScrollLeft(); left +=3D scrollLeft; // to account for page scrolling =20 if (deltaX < 0) { left +=3D deltaX; if (left < scrollLeft) left =3D scrollLeft; } return {x: left, y: newY}; } nbApi.truncateWithEllipses =3D function(str, maxSize, terminator) { if (str =3D=3D null || maxSize =3D=3D null) return null; if (terminator =3D=3D null) terminator =3D "..."; =20 var out =3D str.substr(0, maxSize); if (maxSize < str.length) { out +=3D terminator; } return out;=20 } nbApi.cancelEvent =3D function(event) { if (!event)=20 event =3D window.event; if (event) { event.cancelBubble =3D true; if (event.stopPropagation) {=20 event.stopPropagation(); } } } /** * Return the standard icon for a given type * @param type, type, e.g. "gene", "biogroup" * @param opaque if true, use IE6 opaque icons if available. These = icons will work on a white * background. This should only be set if the use of the Png class = doesn't prevent * blue backgrounds * @return base url for the icon */ nbApi.getIcon =3D function(type, root, bLabel, opaque)=20 { if (type =3D=3D null || root =3D=3D null) return null; type =3D type.toLowerCase(); if (bLabel =3D=3D true) root +=3D "/labels/"; else root +=3D "/icons/"; =20 =20 opaque =3D (opaque && navigator.userAgent.indexOf("MSIE 6") > = 0)?"_opq":""; if (type =3D=3D "gene" || type =3D=3D "feature" || type =3D=3D = "genes") return root + "gene" + opaque + ".png"; if (type =3D=3D "tissue" || type =3D=3D "tissues") return root + = "tissue" + opaque + ".png"; if (type =3D=3D "treatment" || type =3D=3D "compound" || type =3D=3D = "treatments") return root + "treatment" + opaque + ".png"; if (type =3D=3D "disease" || type =3D=3D "diseases") return root + = "disease" + opaque + ".png"; if (type =3D=3D "bioset") return root + "bioset" + opaque + ".png"; if (type =3D=3D "biogroup" || type =3D=3D "biogroups") return root + = "biogroup" + opaque + ".png"; if (type =3D=3D "biosource") return root + "biosource.png"; if (type =3D=3D "biodesign") return root + "biodesign.png"; if (type =3D=3D "genemode") return root + "genemode.png"; if (type =3D=3D "snp") return root + "snp" + opaque + ".png"; if (type =3D=3D "author") return root + "author" + opaque + ".png"; if (type =3D=3D "study") return root + "study" + opaque + ".png"; if (type =3D=3D "organism") return root + "organism" + opaque + = ".png"; return root + "unknown.png"; }; nbApi.addEvent =3D function(elem, evtType, func, capture)=20 { capture =3D (capture) ? capture : false; if (elem.addEventListener)=20 { elem.addEventListener(evtType, func, capture); return true; }=20 if (elem.attachEvent)=20 { elem.attachEvent("on" + evtType, func); return true; }=20 return false; }=20 nbApi.addEventHandler =3D function(element, eventName, handler)=20 { nbApi.removeEvent(element, eventName, handler, false) var rc =3D nbApi.addEvent(element, eventName, handler, false); if (rc) return; eventName =3D "on" + eventName; =20 var chain =3D (element[eventName]) ? element[eventName] : = function(){}; element[eventName] =3D function(event)=20 { chain(event); handler(event); } } nbApi.removeEvent =3D function(elem, evtType, handler, capture)=20 { capture =3D (capture) ? capture : false; if (elem.removeEventListener)=20 { elem.removeEventListener(evtType, handler, capture); }=20 else if (elem.attachEvent)=20 { elem.detachEvent("on" + evtType, handler); }=20 else=20 { elem["on" + evtType] =3D null; } } nbApi.showSection =3D function(targetId, bShow) { var element =3D document.getElementById(targetId); if (element !=3D null) element.style.display =3D bShow?"block":"none"; } nbApi.visibility =3D function(targetId, bShow) { var element =3D document.getElementById(targetId); if (element !=3D null) element.style.visibility =3D bShow?"visible":"hidden"; } nbApi.updateSNPLink =3D function(obj)=20 { var popup =3D nbApi.findParentByClassName(obj, "nbApiExPopup"); if (popup && obj){ var it =3D popup.getAttribute("nbItemTitle"); var url =3D obj.getAttribute("url"); if (url && it){ var urlAry =3D []; urlAry =3D url.split('?'); if (urlAry.length < 2) url =3D url + '?' + it; else url =3D url + '&' + it; obj.setAttribute("href",url);=20 return true; } } =09 return false; } nbApi.trackUrl =3D function(url,key) { try { =20 if (document.readyState && document.readyState !=3D "complete") { setTimeout(function () {nbApi.trackUrl(url,key)}, 200); return; } if (!nbApi.trackIframe || key) { var iframe =3D document.createElement("iframe"); =20 iframe.style.display=3D"none"; document.body.appendChild(iframe); var ifrcont =3D iframe.contentWindow || = ifrm.contentDocument.document || ifrm.contentDocument; if (!key) { nbApi.trackIframe =3D iframe; nbApi.trackIframeContent =3D ifrcont; } var doc =3D ifrcont.document; doc.open(); var gaJsHost =3D (("https:" =3D=3D document.location.protocol) ? = "https://ssl." : "http://www."); var qJsHost =3D (("https:" =3D=3D document.location.protocol) ? = "https://secure" : "http://edge"); doc.write(''+unescape("%3Cscript src=3D'" + gaJsHost + = "google-analytics.com/ga.js' type=3D'text/javascript'%3E%3C/script%3E")+ ''+ ''); doc.close(); } else if (nbApi.trackIframeContent.pageTracker){ nbApi.trackIframeContent.pageTracker._trackPageview(url); } } catch (e) {if (doc) doc.close()} } nbApi.trackExtUrl =3D function(x) { try { x =3D x.href || x; =20 x =3D x.replace(/.*\/\//,"").replace(/\/.*/, ""); =20 nbApi.trackUrl("/external/"+x+"/popup"); } catch (e) {} } nbApi.imgTrack =3D function(args) { var url =3D = "http://sciencedirect.nextbio.com/e/t.nb?"+args+"&t=3D"+(new = Date()).getTime(); var img =3D document.getElementById("nbApiimgTrk"); if (img) { img.src =3D url; } else { img =3D document.createElement("img"); img.style.position=3D"absolute"; img.style.width =3D img.style.height =3D "1px"; img.style.left =3D img.style.top =3D "-999px"; img.style.visibility =3D "hidden"; img.id=3D"nbApiimgTrk"; img.src =3D url; document.body.appendChild(img); } } nbApi.whichElement =3D function(e) { var target; if (!e) var e =3D window.event; if (e.target) target =3D e.target; else if (e.srcElement) target =3D e.srcElement; if (target.nodeType =3D=3D 3) // work around Safari bug target =3D target.parentNode; return target; } nbApi.loadCss =3D function(url) { if(document.createStyleSheet) { document.createStyleSheet(url); } else { var styles =3D "@import url('"+url+"');"; var newSS=3Ddocument.createElement('link'); newSS.rel=3D'stylesheet'; newSS.href=3D'data:text/css,'+escape(styles); document.getElementsByTagName("head")[0].appendChild(newSS); } } /** * Determine the URL for a given search. When calling from code that = only runs within the nextbio * context, consider using searchUrl() instead. * @param root The root for the current contect e.g. "/b" * @param page The search page, e.g. "disc" or "lit" * @param searchTerm The term being searched for e.g. "esr1" * @param query the query arguments to appear after the ?, e.g. = "id=3D1234&type=3Dgene" * @return search URL */ nbApi.searchUrl =3D function(root,page,searchTerm,query, doNotEncode)=20 { var encTerm =3D doNotEncode ? searchTerm : = encodeURIComponent(searchTerm); // there is a problem on our server if the url contains an encoded % = (%25) or / (%2F) // if the search term contains a %, included it as part of the q, = otherwise // we include it as part of the URL if (searchTerm.indexOf('%') >=3D 0 || searchTerm.indexOf('/') >=3D 0 = || searchTerm.indexOf('+') >=3D 0) { return root + "/search/" + page + ".nb?" + = _nextbio_setParam(query,"q",encTerm); } if (query =3D=3D null || query.length =3D=3D 0) { query =3D ""; } else { query =3D "?" + query; } return root + "/search/" + page + "/" + encTerm + query; }; nbApi.sendFeedback =3D function(config) { var target =3D "nextbio_feedback"; if (config && config.target) target =3D config.target; = =20 var url =3D nbApi.urlContext + "/corp/feedback.nb?url=3D" + = encodeURIComponent(window.location.href); =20 var winParams =3D = "resizable=3Dyes,scrollbars=3Dyes,status=3Dyes,toolbar=3Dyes,location=3Dy= es,menubar=3Dyes"; try { if (window[target] !=3D null) window[target].close(); } catch (error){} var newWindow =3D window.open(url, target, winParams); if (target) window[target] =3D newWindow;=20 return false; } nbApi.getComputedStyle =3D function(el, style) { var computedStyle; if (typeof el.currentStyle !=3D 'undefined') { computedStyle =3D el.currentStyle; } else { computedStyle =3D document.defaultView.getComputedStyle(el, null); = } return computedStyle[style]; } =20 =20 // NextBio Tag Cloud Support JavaScript Library // requires jsApi.jsp, jsUtils.jsp // all the internal function names and global variables should begin = with _nextbio_ (as in _nextbio_Load()). =20 // _nextbio_TagTypes - collection of predefined tag types (subtabs) nbApi.tagTypes =3D {literature: "literature", fullText: "fullText", = clinicalTrials: "clinicalTrials"}; // _nextbio_GetTagTypes() - returns collection of predefined tag types nbApi.getTagTypes =3D function() { return nbApi.tagTypes; }; // NbTagCloudTypes - collection of predefined tag cloud types (data = sources) nbApi.tagCloudTypes =3D {literature: "literature", fullText: = "fullText", clinicalTrials: "clinicalTrials"}; // NbTagCloudTypes() - returns collection of predefined tag types nbApi.getTagCloudTypes =3D function() { return nbApi.tagCloudTypes; }; =20 // nbCreateTagCloud(tagType, key, bAlert) - create basic cloud = configuration object // tagType - type of tags (_nextbio_TagTypes.literature, = _nextbio_TagTypes.fullText, _nextbio_TagTypes.clinicalTrials ) // bAlert - optional. True if we want to display alerts. nbApi.createTagCloud =3D function(type) { var bAlert =3D nbApi.getDebugMode(); if (type =3D=3D null) { if (bAlert) alert("Nextbio Tag Cloud: Tag cloud type is not specified."); return null; } var tagTypes =3D nbApi.getTagTypes(); if (tagTypes[type] =3D=3D null) { if (bAlert) alert("Nextbio Tag Cloud: Illegal tag type value."); return null; } var tagCloud =3D { attributes:=20 { tagCloudType: true, // one of the values defined in = _nextbio_TagTypes: literature, clinicalTrials, etc. tagType: true, // tag filter: "bioset", "study", "compound", = etc. query: true, // a search string=20 id: true, // an object id source: true, // search source. Default "nextbio" source means = NextBio general Search and assumes that query is a string of search = terms extra: true, // additional parameters to clarify meaning of = query and id className: true, // css style urlContext: true, // context to prepend to relative url =20 header: true, // header to display on top of the cloud headerClassName: true, // CSS class to display header headerStyle: true, // style to display header footer: true, // header to display on top of the cloud footerClassName: true, // CSS class to display header footerStyle: true, // style to display header message: true, // message to display while the cloud is loaded messageClassName: true, // CSS class to display message messageStyle: true, // style to display message frameTarget: true, // target name for a new popup window. If = null - open in old browser window frameTargetName: true, // name for a window target property iFrame: true, // If true - open popup in an iFrame, otherwise = - open in a new browser window frameTop: true, // popup position frameLeft: true, // popup position frameWidth: true, // popup width frameHeight: true, // popup height onClick: true, // customer defined function to be executed = when onclick event fires up: onClick(event, tagName, customOnClickParam) onClickParam: true, // customer defined parameter string to be = passed to onClick(event, tagName, customOnClickParams) onMouseOver: true, // customer defined function to be executed = when onmouseover event fires up: onMouseOver(event, tagName, = onMouseOverParam) onMouseOverParam: true, // customer defined parameter string = to be passed to onMouseOver(event, tagName, onMouseOverParam) onMouseOut: true, // customer defined function to be executed = when onmouseover event fires up: onMouseOut(event, tagName, = onMouseOutParam) onMouseOutParam: true, // customer defined parameter string to = be passed to onMouseOut(event, tagName, onMouseOutParam) callback: true, // pointer to callback to be executed after = cloud is loaded with a standard (Nextbio provided) function = (updateTargetHTML())=20 callbackName: true, // name of a callback to be executed after = cloud is loaded - currently through dynamic script tag timeout: true, // if loading time exceeds the timeout, timeout = callback is invoked (if specified) timeoutTerminate: true, // if true, don't load the tag cloud = after loading time exceeds the timeout=20 timeoutCallback: true, // callback function to be executed = after if loading time is more than timeout. = timeoutCallBack(targetObject); delay: true, // for testing only. instructs server to sleep = for specified time (milliseconds) report: true, // for testing only. generate a report. iFrameId: true, // id of an iFrame to be used in = loadScript/importScript functions (for concurrent execution) cloudSize: true // how many tags to display }, tagCloudType: type,=20 tagType: "ALL",=20 source: "nextbio", frameTarget: "nextbio_popup_frame", // target name for a new = popup window. If null - open in old browser window iFrame: false, // If true - open popup in an iFrame, otherwise - = open in a new browser window frameTop: -1, // popup position frameLeft: -1, // popup position frameWidth: 790 + 240, // popup width frameHeight: 700, // popup height className: "nbApiTagCloud", headerClassName: "nbApiTagCloudHeader", urlContext: "http://sciencedirect.nextbio.com/e", messageStyle: "font-family: Arial, Helvetica, sans-serif; = font-size: 8pt; font-weight: bold; color: #808080;", onClick: function (event, containerId, tagName, customParam, = urlContext){return nbApi.showFrame(event, containerId, tagName, = customParam, urlContext);}, callbackName: "nbApi.updateTargetHTML", delay: 0, cloudSize: 40 // how many tags to display }; tagCloud.setAttribute =3D function(attrName, attrValue) { nbApi.setTagCloudAttribute(tagCloud, attrName, attrValue); } tagCloud.load =3D function(targetId) { nbApi.loadTagCloud(targetId, tagCloud); } return tagCloud; }; // nbSetTagCloudAttribute(tagCloud, attrName, attrValue, bAlert, = bEncode) - convenience function that sets attribute values // makes sure that attrName is a known attribute name and can be = modified // tagCloud - tag cloud object // attrName, attrValue - attribute name/value pair // bEncode - optional. True if we need to URI encode attribute's value nbApi.setTagCloudAttribute =3D function(tagCloud, attrName, attrValue, = bEncode) { var bAlert =3D nbApi.getDebugMode(); if (tagCloud =3D=3D null) { if (bAlert) alert("Nextbio Tag Cloud: tagCloud is not specified."); return tagCloud; } if (tagCloud.attributes =3D=3D null) { if (bAlert) alert("Nextbio Tag Cloud: Not a legitimate tag cloud object."); return tagCloud; } if (tagCloud.attributes[attrName] !=3D true) { if (bAlert) alert("Nextbio Tag Cloud: Illegal or unknown attribute name."); return tagCloud; } if (bEncode =3D=3D true) attrValue =3D encodeURIComponent(attrValue); =20 tagCloud[attrName] =3D attrValue; return tagCloud; }; // nbLoadTagCloud(targetId, tagCloud, bAlert) // load tag cloud and insert results in a target=20 // targetId - HTML id of a div, span, etc. that will contain tag cloud // tagCloud - a tag cloud object created with nbCreateTagCloud() and = configured with nbSetTagCloudAttribute() methods // bAlert - optional. True if we want to display alerts. nbApi.loadTagCloud =3D function(targetId, tagCloud) { var bAlert =3D nbApi.getDebugMode(); if (targetId =3D=3D null) { if (bAlert) alert("Nextbio Tag Cloud: target id is not specified."); return; } if (tagCloud =3D=3D null) { if (bAlert) alert("Nextbio Tag Cloud: tagCloud is not specified."); return tagCloud; } if (nbApi.apiKey =3D=3D null) { if (bAlert) alert("Nextbio Tag Cloud: API key is not specified."); return; } if (tagCloud.tagCloudType =3D=3D null) { if (bAlert) alert("Nextbio Tag Cloud: Tag cloud type is not specified."); return; } if (tagCloud.source =3D=3D null) { if (bAlert) alert("Nextbio Tag Cloud: Source is not specified."); return; } var element =3D document.getElementById(targetId); if (element =3D=3D null) { if (bAlert) alert("Nextbio Tag Cloud: target not found."); return; } element.nextbioOnClick =3D tagCloud.onClick; element.nextbioOnClickParam =3D tagCloud.onClickParam; element.nextbioOnMouseOver =3D tagCloud.onMouseOver; element.nextbioOnMouseOverParam =3D = tagCloud.nextbioOnMouseOverParam; element.nextbioOnMouseOut =3D tagCloud.onMouseOut; element.nextbioOnMouseOutParam =3D tagCloud.nextbioOnMouseOutParam; element.nextbioUrlContext =3D tagCloud.urlContext; element.nextbioTarget =3D tagCloud.frameTarget; element.nextbioTargetName =3D tagCloud.frameTargetName; element.setAttribute("nextbioIFrame", tagCloud.iFrame); element.nextbioTop =3D tagCloud.frameTop; element.nextbioLeft =3D tagCloud.frameLeft; element.nextbioWidth =3D tagCloud.frameWidth; element.nextbioHeight =3D tagCloud.frameHeight; element.nextbioTargetClassName =3D tagCloud.className; element.nextbioHeaderClassName =3D tagCloud.headerClassName; element.nextbioHeader =3D tagCloud.header; element.nextbioFooterClassName =3D tagCloud.footerClassName; element.nextbioFooter =3D tagCloud.footer; =20 if (tagCloud.message !=3D null) nbApi.addClass(element, tagCloud.className); var query =3D "type=3D" + tagCloud.tagCloudType + "&apiKey=3D" + = nbApi.apiKey + "&source=3D" + tagCloud.source + "&tagType=3D" + = tagCloud.tagType; query +=3D "&sid=3D" + nbApi.sessionId; query +=3D "&ts=3D" + nbApi.timeStamp; query +=3D "&tos=3D" + nbApi.timeoutStamp; =20 query +=3D "&dpId=3D" + 1; =20 =20 if (tagCloud.query !=3D null) query +=3D "&query=3D" + encodeURIComponent(tagCloud.query); if (tagCloud.id !=3D null) query +=3D "&id=3D" + encodeURIComponent(tagCloud.id); if (tagCloud.extra !=3D null) query +=3D "&extra=3D" + encodeURIComponent(tagCloud.extra); query +=3D "&nameSpace=3D" + "nbApi"; if (tagCloud.delay > 0) query +=3D "&delay=3D" + tagCloud.delay; if (tagCloud.report =3D=3D true) query +=3D "&report=3Dtrue"; if (tagCloud.iFrameId !=3D null) query +=3D "&framed=3Dtrue"; if (tagCloud.cloudSize !=3D null) query +=3D "&tagCloudSize=3D" + tagCloud.cloudSize; =20 query +=3D "&ehighlight=3Dtrue"; =20 =20 var url =3D tagCloud.urlContext; if (url =3D=3D null) url =3D "http://sciencedirect.nextbio.com/e"; url +=3D "/service/tags.nb"; =20 var config =3D=20 { target: targetId, callbackName: tagCloud.callbackName, callback: tagCloud.callback, url: url, query: query, timeout: tagCloud.timeout, timeoutCallback: tagCloud.timeoutCallback, timeoutTerminate: tagCloud.timeoutTerminate, message: tagCloud.message, messageStyle: tagCloud.messageStyle, report: tagCloud.report, iFrameId: tagCloud.iFrameId }; =20 config.highlight =3D true; nbApi.loadScript(config); =20 }; nbApi.tagCloudShowLess=3Dfunction(type) { var el =3D document.getElementById("nbApitagCloud"+type); nbApi.addClass(el,"nbApiTagCloudShowLess"); nbApi.removeClass(el,"nbApiTagCloudShowMore"); } nbApi.tagCloudShowMore=3Dfunction(type) { var el =3D document.getElementById("nbApitagCloud"+type); nbApi.addClass(el,"nbApiTagCloudShowMore"); nbApi.removeClass(el,"nbApiTagCloudShowLess"); if (el) el.nbExpand =3D "yes"; } nbApi.tagCloudReportFromId =3D function(div, id, search, iFrameId) { var tagCloud =3D nbApi.createTagCloud(nbApi.getTagTypes().fullText); tagCloud.setAttribute("id", id); tagCloud.setAttribute("query", search); tagCloud.setAttribute("iFrameId", iFrameId); tagCloud.setAttribute("report", true); tagCloud.load(div); }; =20 =20 // NextBio effects JavaScript library=20 // requires jsApi.jsp, jsUtils.jsp nbApi.highlightSteps =3D 25; nbApi.highlightColor =3D "#93B6E0"; nbApi.highlightDuration =3D 1000; /** * Highlight an element by color-flashing it's background * @param el, element, e.g.
, * @param step, step number in the highlight sequence. For internal = use only. =20 */ nbApi.highlight =3D function(el, step, target, startTime)=20 {=20 if (el =3D=3D null) { return; } if (step =3D=3D null || step < 1) =20 step =3D 0; if (target =3D=3D null) { target =3D document.createElement("div"); target.className =3D "nbApiHighlightTarget"; target.style.display =3D "none"; target.style.position =3D "absolute"; el.appendChild(target); target.style.background =3D nbApi.highlightColor; target.style.display =3D "inline"; } var position =3D nbApi.findPosition(el); target.style.top =3D position.top + "px"; target.style.left =3D position.left + "px"; target.style.width =3D el.offsetWidth + "px"; target.style.height =3D el.offsetHeight + "px"; var date =3D new Date(); var time =3D 0;=20 var timeLeft =3D 0; if (startTime =3D=3D null) { startTime =3D date; } timeLeft =3D nbApi.highlightDuration - (date.getTime() - = startTime.getTime()); if (timeLeft < 0) timeLeft =3D 0; var stepTime =3D nbApi.highlightDuration / nbApi.highlightSteps; var stepsLeft =3D timeLeft / stepTime; var opacity =3D stepsLeft / nbApi.highlightSteps; if (opacity !=3D 0) { target.style.opacity =3D new = Number(opacity).toFixed(2).toString(); target.style["-ms-filter"] =3D = "progid:DXImageTransform.Microsoft.Alpha(Opacity=3D" + new = Number(opacity * 100).toFixed(0).toString() + ")"; target.style.filter =3D "alpha(opacity=3D" + new Number(opacity * = 100).toFixed(0).toString() + ")"; } if (timeLeft < 1 || stepsLeft < 1) { if (target !=3D null) el.removeChild(target); return; } var nextStep =3D step + 1; =20 var timeout =3D setTimeout(function(){nbApi.highlight(el, nextStep, = target, startTime)}, stepTime); }; =20 /** * Convert RGB string to a JSON object with R, G and B values * @param rgb, RGB string, i.e. "#ffeebb" */ nbApi.rgb2json =3D function(rgb) { if (rgb =3D=3D null || rgb.length =3D=3D 0 || rgb.indexOf("#") !=3D = 0) return {r: 0, g: 0, b: 0}; var rStr, gStr, bStr; rStr =3D gStr =3D bStr =3D"00"; rStr =3D rgb.substr(1, 2);=20 if (rgb.length > 3) =20 gStr =3D rgb.substr(3, 2); if (rgb.length > 5) =20 bStr =3D rgb.substr(5, 2); =20 var json =3D {r: parseInt(rStr, 16), g: parseInt(gStr, 16), b: = parseInt(bStr, 16)}; return json; =20 } /** * Convert RGB values to a JSON object with H, S and L (hue, = saturation and luminosity) values * @param R, R-value, integer * @param G, G-value, integer * @param B, B-value, integer */ nbApi.rgb2hsl =3D function(R, G, B) { =20 var H, S, L; var var_R =3D ( R / 255 ); //RGB from 0 to 255 var var_G =3D ( G / 255 ); var var_B =3D ( B / 255 ); =20 var var_Min =3D Math.min( var_R, var_G, var_B ); //Min. value of = RGB var var_Max =3D Math.max( var_R, var_G, var_B ); //Max. value of = RGB var del_Max =3D var_Max - var_Min; //Delta RGB value =20 L =3D ( var_Max + var_Min ) / 2 ; if ( del_Max =3D=3D 0 ) //This is a gray, no = chroma... { H =3D 0; //HSL results from 0 to 1 S =3D 0; } else //Chromatic data... { if ( L < 0.5 )=20 S =3D del_Max / ( var_Max + var_Min ); else =20 S =3D del_Max / ( 2 - var_Max - var_Min ); =20 var del_R =3D ( ( ( var_Max - var_R ) / 6 ) + ( del_Max / 2 ) ) / = del_Max; var del_G =3D ( ( ( var_Max - var_G ) / 6 ) + ( del_Max / 2 ) ) / = del_Max; var del_B =3D ( ( ( var_Max - var_B ) / 6 ) + ( del_Max / 2 ) ) / = del_Max; =20 if ( var_R =3D=3D var_Max )=20 H =3D del_B - del_G; else if ( var_G =3D=3D var_Max )=20 H =3D ( 1 / 3 ) + del_R - del_B; else if ( var_B =3D=3D var_Max )=20 H =3D ( 2 / 3 ) + del_G - del_R; =20 if ( H < 0 )=20 H +=3D 1; if ( H > 1 ) H -=3D 1; } =20 return {h: H, s: S, l: L} } =20 =20 /** * Convert HSL values to a JSON object with R, G and B values * @param H, H-value, integer * @param S, S-value, integer * @param L, L-value, integer */ nbApi.hsl2rgb =3D function(H, S, L) { var R, G, B, var_1, var_2; if ( S =3D=3D 0 ) //HSL from 0 to 1 { R =3D L * 255; //RGB results from 0 to 255 G =3D L * 255; B =3D L * 255; } else { if ( L < 0.5 )=20 var_2 =3D L * ( 1 + S ); else =20 var_2 =3D ( L + S ) - ( S * L ); =20 var_1 =3D 2 * L - var_2; =20 R =3D 255 * nbApi.Hue_2_RGB( var_1, var_2, H + ( 1 / 3 ) ); G =3D 255 * nbApi.Hue_2_RGB( var_1, var_2, H ); B =3D 255 * nbApi.Hue_2_RGB( var_1, var_2, H - ( 1 / 3 ) ); } return {r: new Number(R).toFixed(0), g: new Number(G).toFixed(0), b: = new Number(B).toFixed(0)};=20 } /** * Internal helper function */ nbApi.Hue_2_RGB =3D function( v1, v2, vH ) //Function = Hue_2_RGB { if ( vH < 0 )=20 vH +=3D 1; if ( vH > 1 )=20 vH -=3D 1; if ( ( 6 * vH ) < 1 )=20 return v1 + ( v2 - v1 ) * 6 * vH; if ( ( 2 * vH ) < 1 )=20 return v2; if ( ( 3 * vH ) < 2 )=20 return v1 + ( v2 - v1 ) * ( ( 2 / 3 ) - vH ) * 6; return v1; } =20 =20 // Functions related to popup windows. =20 nbApi.nextbio_popupId; // visible popup id nbApi.popupMisc =3D {}; nbApi.popupMisc.FAKE_ID =3D 1000000000; nbApi.popupEvenHandlers =3D {}; nbApi.popupEvenHandlers.onmouseover =3D = function(event){nbApi.cancelTimeout();}; nbApi.popupEvenHandlers.onclick =3D function(event) { nbApi.popupEvenHandlers.stopMove(event); nbApi.closePopup(); }; nbApi.popupEvenHandlers.startMove =3D function(event, objId) { objId =3D "WzTtDiV"; var clientY =3D event.clientY; var clientX =3D event.clientX; nbApi[objId + "_y"] =3D clientY; nbApi[objId + "_x"] =3D clientX; var obj =3D document.getElementById(objId);=20 nbApi[objId] =3D obj; if (!obj) return; var pos =3D nbApi.findPosition(obj); nbApi[objId + "_pos"] =3D pos; } nbApi.popupEvenHandlers.stopMove =3D function(event, objId) { objId =3D "WzTtDiV"; nbApi[objId] =3D null; } nbApi.popupEvenHandlers.move =3D function(event, objId) { objId =3D "WzTtDiV"; var obj =3D nbApi[objId]; if (!obj) return; var newY =3D event.clientY; var newX =3D event.clientX; var oldY =3D nbApi[objId + "_y"]; var oldX =3D nbApi[objId + "_x"]; var pos =3D nbApi[objId + "_pos"]; var top =3D pos.top + (newY - oldY); var left =3D pos.left + (newX - oldX); obj.style.top =3D top + "px"; obj.style.left =3D left + "px"; } nbApi.popupEvenHandlers.onmouseover2 =3D function(){ nbApi.clearHideTimeout(); } nbApi.popupEvenHandlers.onmouseout2 =3D function(){ nbApi.clearHideTimeout; nbApi.popupWindow.hideTimeout =3D setTimeout(nbApi.closePopup, 400); } nbApi.clearHideTimeout =3D function() { if (nbApi.popupWindow.hideTimeout) { clearTimeout(nbApi.popupWindow.hideTimeout); nbApi.popupWindow.hideTimeout =3D null; } } // load and display data in a "popup". Intended to work with a = popupLink.tag =20 // popupId - popupId used in popupLink tag // url - ajax call url // paramList - ajax call url parameters=20 // y. x, height , width - desired position and size of a popup window // forceLoad - force reload of the popup (ajax call) every time we = display it // valid values: "hard" - unconditional reload, "soft" - = reload if popupId changed since last call // quickHide -- if true, popup pops down if the mouse moves out of = initial element and popup for long time nbApi.displayPopup =3D function(eventSource, popupId, url, paramList, = event, height, width, forceLoad, forwardUrl, title, prefix, bPersistent, = quickHide) {=20 nbApi.closePopup(); var popup =3D document.getElementById(popupId); window.nextbioPopup =3D popup; if (popup =3D=3D null) return; popup.setAttribute("nbSwitchTab", "true"); =20 var termName; if (eventSource && typeof(eventSource) =3D=3D "object") { termName =3D popup.getAttribute("nbTermName"); // explicitly set = nbTermName overrides source content if (!termName) { termName =3D eventSource.getAttribute("nbApiTag"); // explicitly = set nbTermName overrides source content if (!termName) termName =3D nbApi.getInnerText(eventSource); } popup.setAttribute("nbName", termName); popup.setAttribute("nbTermFilter", "tf=3D" + = encodeURIComponent(termName)); var termArr =3D nbApi.findElementsByName(popupId + "_term", "span"); if (termArr && termArr.length) { for (var i =3D 0; i < termArr.length; i++) { termArr[i].innerHTML =3D nbApi.truncateWithEllipses(termName, = 15); } } } nbApi.nextbio_popupId =3D popupId; popup.style.display =3D "none"; if (paramList =3D=3D null) =20 paramList =3D ""; var type =3D nbApi.getParam(paramList, "type"); var searchTerm =3D paramList.indexOf("linkOutSearchTerm"); var subTitle; if (title !=3D null && searchTerm < 0) =20 { var titleEnd =3D title.indexOf(","); =09 if (titleEnd < 0 ) subTitle =3D title; else subTitle =3D title.substring(0, titleEnd); // strip replace {comma} with ","=09 if (subTitle.length > 1) subTitle =3D subTitle.replace(/\{comma\}/g, ","); paramList +=3D "&linkOutSearchTerm=3D" + encodeURIComponent(subTitle); } var query =3D null; if (subTitle !=3D null) =20 { query =3D subTitle; paramList +=3D "&q=3D" + encodeURIComponent(query); } if (query !=3D null && ("treatment" =3D=3D type || "tissue" =3D=3D = type || "disease" =3D=3D type)) =20 { paramList +=3D "&synonym=3D" + encodeURIComponent(query); } =20 var scrollTop =3D nbApi.getScrollTop(); var scrollLeft =3D nbApi.getScrollLeft(); var clientY =3D event.clientY; var clientX =3D event.clientX; =20 if (quickHide) { nbApi.addEventHandler(popup, "mouseover", = nbApi.popupEvenHandlers.onmouseover2); nbApi.addEventHandler(eventSource, "mouseover", = nbApi.popupEvenHandlers.onmouseover2); nbApi.addEventHandler(popup, "mouseout", = nbApi.popupEvenHandlers.onmouseout2); nbApi.addEventHandler(eventSource, "mouseout", = nbApi.popupEvenHandlers.onmouseout2); nbApi.popupWindow.eventSource =3D eventSource; } var bForceLoad =3D (forceLoad =3D=3D "hard") || (forceLoad =3D=3D = "soft" && nbApi.nextbio_popupId !=3D popupId); if (bForceLoad =3D=3D true || popup.loaded =3D=3D null || popup.loaded = =3D=3D false) { popup.loaded =3D true; var targetId =3D popupId + "_content"; popup.setAttribute("nbDynamicUrl", nbApi.urlContext + url); popup.setAttribute("nbDynamicQuery", paramList); var sdUrl =3D popup.getAttribute("sdUrl"); var publicationId =3D popup.getAttribute("publicationId"); nbApi.enablePopupTabs =3D true; nbApi.addEventHandler(document.body, "click", = nbApi.popupEvenHandlers.onclick); nbApi.TagToTip(popupId,=20 BGCOLOR, '',=20 BORDERWIDTH, 0, =20 PADDING, 0, ABOVE, true,=20 FIX, [-5000, -5000], FONTSIZE, '', COPYCONTENT, false, STICKY, true ); var pos =3D nbApi.getAdjustedPosition(popup, clientY - 10, = clientX + 10); nbApi.TagToTip(popupId,=20 BGCOLOR, '',=20 BORDERWIDTH, 0, PADDING, 0, ABOVE, true,=20 FIX, [pos.x, pos.y], FONTSIZE, '', COPYCONTENT, false, STICKY, true ); nbApi.updatePopupEx({popupId: popupId, initial:true, callback: = function(target, bLoaded, json){ nbApi.trackUrl("/interact/popup/"+type+"/"+query); }}); }=20 else { nbApi.addEventHandler(document.body, = "click",nbApi.popupEvenHandlers.onclick); nbApi.TagToTip(popupId,=20 BGCOLOR, '',=20 BORDERWIDTH, 3, PADDING, 0, ABOVE, true,=20 OFFSETX, -10, FONTSIZE, '', COPYCONTENT, false, STICKY, true, SHADOW, true ); }=20 if (forwardUrl !=3D null) { var modParamList =3D = paramList.replace("type=3Dtreatment","type=3Dcompound"); // DE2561 var href =3D forwardUrl + "?" + modParamList; nbApi.setInnerHtml(popupId + "_forwardText" , "VIEW COMPLETE = DETAILS"); nbApi.setAttr(popupId + "_forwardUrl" , "href", href); } if (termName) title =3D termName; if (title !=3D null) { title =3D title.replace(/,/g, ", "); title =3D title.replace(/\{comma\}/g, ","); title =3D nbApi.normalizeString(title); var shortTitle =3D nbApi.truncateWithEllipses(title, 45);=20 // nbApi.setAttr(popupId + "_title" , "title", title); nbApi.setInnerText(popupId + "_title" , shortTitle); } if (prefix !=3D null) { prefix =3D prefix.toLowerCase(); if (prefix =3D=3D "feature") prefix =3D "gene"; if (prefix =3D=3D "treatment") prefix =3D "compound"; nbApi.setInnerHtml(popupId + "_prefix" , prefix); =20 } var icon =3D document.getElementById(popupId+"_img"); if (icon) icon.src =3D nbApi.getIcon(prefix, nbApi.imgContext, null, true); =20 return popup; } nbApi.closePopup =3D function() { nbApi.UnTip(true); nbApi.clearHideTimeout(); if (nbApi.popupWindow.eventSource) { nbApi.removeEvent(nbApi.popupWindow.eventSource, "mouseover", = nbApi.popupEvenHandlers.onmouseover2, false); nbApi.removeEvent(nbApi.popupWindow.eventSource, "mouseout", = nbApi.popupEvenHandlers.onmouseout2, false); nbApi.popupWindow.eventSource =3D null; } =20 } nbApi.cancelTimeout =3D function() { if (nbApi.popupWindow.pendingTimeoutId !=3D null) clearTimeout(nbApi.popupWindow.pendingTimeoutId); nbApi.popupWindow.pendingTimeoutId =3D null; } // pops up a list of items from itemList or an item popup if there is = only one item in the list nbApi.popupItems =3D function(/* eventSource, popupId, url, itemsList, = event, bNow, delay, popupCb, quickHide */) { // old index doesn't provide eventSource // this is a hack to get around this problem var eventSource; var popupId; var url; var itemsList; var event; var bNow; var delay; var popupCb; var quickHide; // if true, hide popup on mouse out instead of = requiring a click eventSource =3D popupId =3D url =3D itemsList =3D event =3D bNow =3D = delay =3D filter =3D popupCb =3D quickHide =3D null; var i =3D 0; =20 if (typeof(arguments[0]) =3D=3D "object") { eventSource =3D arguments[i++]; } if (i < arguments.length) { popupId =3D arguments[i++]; =20 } if (i < arguments.length) { url =3D arguments[i++]; =20 } if (i < arguments.length) { itemsList =3D arguments[i++]; =20 } if (i < arguments.length) { event =3D arguments[i++]; =20 } if (i < arguments.length) { bNow =3D arguments[i++]; =20 } if (i < arguments.length) { delay =3D arguments[i++]; =20 } if (i < arguments.length) { popupCb =3D arguments[i++]; =20 } if (i < arguments.length) { quickHide =3D arguments[i++]; =20 } // end hack nbApi.cancelEvent(event); if (delay =3D=3D null) delay =3D 500; if (bNow !=3D true) { nbApi.cancelTimeout(); // document.body.onmouseover =3D = function(event){nbApi.cancelTimeout();}; nbApi.addEventHandler(document.body, "mouseover", = nbApi.popupEvenHandlers.onmouseover); var myEvent =3D new Object(); myEvent.clientX =3D event.clientX; myEvent.clientY =3D event.clientY; myEvent.nbEvent =3D true; =20 nbApi.popupWindow.pendingTimeoutId =3D = setTimeout(function(){nbApi.popupItems(eventSource, popupId, url, = itemsList, myEvent, true, null, popupCb, quickHide)}, delay); this.onmouseout =3D function() { nbApi.cancelTimeout(); }; return; } if (popupId =3D=3D null || url =3D=3D null || itemsList =3D=3D null || = itemsList.length =3D=3D 0) return; =20 if (popupCb) popupCb(); // if there is a callback when we actually = popup up the popup, call it. url =3D nbApi.urlContext + url; =20 var item; if (itemsList.length =3D=3D 1) { item =3D itemsList[0]; var query =3D "id=3D" + item[1] + "&type=3D" + item[0]; nbApi.popupMisc[popupId + "_termId"] =3D item[1]; var popup =3D nbApi.displayPopup(eventSource, popupId, url, query, = event, null, null, "hard", nbApi.urlContext + "/search/ov.nb", item[2], = item[0], false, quickHide); return; } var html =3D "
"; for (i =3D 0; i < itemsList.length; i++) {=20 var item =3D itemsList[i]; var itemId =3D item[1]; var itemType =3D item[0]; var itemTitle =3D item[2].replace(/\'/g, "\\x27"); itemTitle =3D itemTitle.replace(/\"/g, "\\x22");=20 itemTitle =3D nbApi.normalizeString(itemTitle); =20 var image; =20 var bPopup =3D true; image =3D nbApi.getIcon(itemType, nbApi.imgContext, true); =20 var doPopup; var title =3D item[2]; if (title.length > 1) title =3D title.replace(/\{comma\}/g, ","); if (bPopup) { doPopup =3D 'nbApi.displayPopup(null, "' + popupId + '","' + url + = '","id=3D' + itemId + '&type=3D' + itemType +=20 '",event,null,null, "hard", nbApi.urlContext + "/search/ov.nb", = "' + itemTitle + '", "' + itemType + '", false, quickHide);'; } else { doPopup =3D 'submitFilter(\"' + itemTitle + '\");'; title =3D "filter by " + title + ""; } if (bPopup =3D=3D false && _noFilter) break; if (bPopup =3D=3D false || i < 10) { html +=3D "
"; html +=3D "3D'' " + title; html +=3D "
"; } } html +=3D "
"; var dlg =3D nbApi.createPopupWindow(eventSource, "_popupList", = "NbPopupList", html); =20 } nbApi.popupWindow =3D new Object; nbApi.createPopupWindow =3D function(eventSource, id, className, html) { // create a dialog if we don't already have one nbApi.Tip(html,=20 BGCOLOR, '',=20 BORDERWIDTH, 0, PADDING, 0, ABOVE, true,=20 OFFSETX, 0, JUMPHORZ, true, JUMPVERT, true,=20 FONTSIZE, '', COPYCONTENT, false, STICKY, true, CLICKCLOSE, true ); } // hide tabs that are not supposed to be displayed for this publication // config=3D{tabs:tabs, publicationId: publicationId} nbApi.hideInvalidTabs =3D function(config) { if (!config || !config.popup) return; =20 var tabs =3D config.tabs; if (!tabs || tabs.length =3D=3D 0) return; var publicationId =3D config.popup.getAttribute("nbPublicationId"); =20 for (var i =3D 0; i < tabs.length; i++) { var realIdOnly =3D tabs[i].getAttribute("nbRealIdOnly"); if ("true" =3D=3D realIdOnly && publicationId && publicationId >=3D = nbApi.popupMisc.FAKE_ID) { tabs[i].style.display =3D "none"; } else { var subTabs =3D document.getElementsByName(tabs[i] + "_subTab"); nbApi.hideInvalidTabs({tabs: subTabs, popup: config.popup}); }=20 } return; }=20 // deselect all tabs and return default tab index nbApi.deselectTabs =3D function(tabs) { if (!tabs || tabs.length =3D=3D 0) return null; var theTab =3D 0; =20 for (var i =3D 0; i < tabs.length; i++) { var isDefaultTab =3D tabs[i].getAttribute("nbDefault"); if ("true" =3D=3D isDefaultTab && tabs[i].style.display !=3D "none") { theTab =3D i; } tabs[i].className =3D "nbApiExTab"; } return tabs[theTab]; }=20 // deselect all subtabs and return default tab=20 // if config.subTabId is not null, return matching tab nbApi.deselectSubTabs =3D function(config) { if (!config || !config.popupId || !config.tabId) return null; var subTabsContainer =3D document.getElementById(config.popupId + = "_SubTabs"); =20 if (!subTabsContainer || !subTabsContainer.childNodes) return null; =20 var subTabs =3D new Array(); var j =3D 0; for (var i =3D 0; i < subTabsContainer.childNodes.length; i++) { var tabId; if (!subTabsContainer.childNodes[i].getAttribute) continue; tabId =3D subTabsContainer.childNodes[i].getAttribute("tabId"); if (!tabId || tabId !=3D config.tabId) continue; subTabs[j++] =3D subTabsContainer.childNodes[i]; } if (subTabs.length =3D=3D 0) return null; var theSubTab =3D 0; for (var i =3D 0; i < subTabs.length; i++) { var isDefaultSubTab =3D subTabs[i].getAttribute("nbDefault"); if (!config.subTabId && "true" =3D=3D isDefaultSubTab && = subTabs[i].style.display !=3D "none" || subTabs[i].id =3D=3D = config.subTabId) { theSubTab =3D i; } subTabs[i].className =3D "nbApiExSubTab"; } return subTabs[theSubTab]; } //select tab nbApi.selectTab =3D function(tab) { if (!tab) return; tab.className =3D "nbApiExSelectedTab"; tab.style.display=3D""; } //select subtab nbApi.selectSubTab =3D function(tab) { if (!tab) return; tab.className =3D "nbApiExSelectedSubTab"; // setTimeout(function() {tab.blur()},0); } nbApi.showSubTabs =3D function(popupId, tab, subTabs) { if (!popupId || !tab) return; var tabConts =3D nbApi.findElementsByName(popupId + = "_subTabContainer", "div"); var tabContainer =3D document.getElementById(popupId + "_SubTabs"); var subTabsId =3D tab.id + "_subTabs"; var showSubTabs =3D false; if (tabConts !=3D null && tabConts.length > 0) { =20 for (var i =3D 0; i < tabConts.length; i++) { var contId =3D tabConts[i].id;=20 if (subTabs && contId =3D=3D subTabsId) { tabContainer.innerHTML =3D tabConts[i].innerHTML; showSubTabs =3D true; break; } } } =20 tabContainer.style.display =3D showSubTabs?"":"none"; var content =3D document.getElementById(popupId + "_content"); if (content && showSubTabs) { tabContainer.style.display =3D ""; content.className =3D "nbApiExPopupText"; } else { tabContainer.style.display =3D "none"; content.className =3D "nbApiExPopupTextNoSubTabs"; } } /** * find and select tab and subtab. If config doesn't have this = information - use default tab/subtab *=20 * config.popupId - popup id=20 * config.tabId - tab to select=20 * config.subTabId - subtab to select=20 */ =20 nbApi.setPopupTabEx =3D function(config) =20 { if (!config.popupId) return null; var tabs =3D document.getElementsByName(config.popupId + "_tab"); if (!tabs || tabs.length =3D=3D 0) return null; nbApi.hideInvalidTabs({popup: config.popup, tabs: tabs}); =20 if (!config.tabId && !config.subTabId) // use default tab and subtab { // find default tab. If none - use first available var theTab =3D nbApi.deselectTabs(tabs); if (!theTab) return null; nbApi.selectTab(theTab); config.tabId =3D theTab.id; //get subtabs var subTabs =3D document.getElementsByName(theTab.id + "_subTab"); = =20 // show subtabs nbApi.showSubTabs(config.popupId, theTab, subTabs && = subTabs.length); // if no subtabs - return main tab if (!subTabs || subTabs.length =3D=3D 0) return theTab; var theSubTab =3D nbApi.deselectSubTabs(config);=20 nbApi.selectSubTab(theSubTab); return theSubTab; } if (config.tabId && !config.subTabId) // use default subtab { nbApi.deselectTabs(tabs); var theTab =3D document.getElementById(config.tabId); if (!theTab) return null;=20 nbApi.selectTab(theTab); config.tabId =3D theTab.id; //get subtabs var subTabs =3D document.getElementsByName(theTab.id + "_subTab"); = =20 // show subtabs var theSubTab =3D nbApi.showSubTabs(config.popupId, theTab, subTabs = && subTabs.length); if (!subTabs || subTabs.length =3D=3D 0) return theTab; var theSubTab =3D nbApi.deselectSubTabs(config);=20 nbApi.selectSubTab(theSubTab); return theSubTab; } if (config.tabId && config.subTabId)=20 { nbApi.deselectTabs(tabs); var theTab =3D document.getElementById(config.tabId); if (!theTab) return null;=20 nbApi.selectTab(theTab); config.tabId =3D theTab.id; //get subtabs var subTabs =3D document.getElementsByName(theTab.id + "_subTab"); = =20 // show subtabs var theSubTab =3D nbApi.showSubTabs(config.popupId, theTab, subTabs = && subTabs.length); if (!subTabs || subTabs.length =3D=3D 0) return theTab; var theSubTab =3D nbApi.deselectSubTabs(config);=20 nbApi.selectSubTab(theSubTab); return theSubTab; } } /** * Update content section of a popup * popupId - id of a popup * tabId - id of a tab * subTabId - id of a subTab=20 * url - url to update from * paramList - query part of the url * limit - max number of entries to return * filter - if true, use filter * switchTabs - if true, swutch tabs=20 *=20 */ =20 nbApi.updatePopupEx =3D function(config) {=20 if (!nbApi.enablePopupTabs) return; if (!config) return; if (!config.popupId) return; if (config.updateTabs =3D=3D null) config.updateTabs =3D true; =20 var popup =3D config.popup; if (!popup) { popup =3D window.nextbioPopup; config.popup =3D popup; } if (!popup) { popup =3D document.getElementById(config.popupId); config.popup =3D popup; } if (config.initial) { var switchable =3D popup.getAttribute("nbSwitchable"); nbApi.visibility(popup.id + "_tabBar", (switchable =3D=3D "false")); = =20 } if (config.updateTabs) { var tab =3D nbApi.setPopupTabEx(config); // select tab or subtab if (!tab) return; popup.setAttribute("nbSelectedTabId", tab.id); =20 config.currentTabId =3D tab.id; =20 config.tabMessage =3D "Please wait while the information is loaded." nbApi.setTabMessage(config); =20 nbApi.visibility(popup.id + "_buttonBar", false); =20 nbApi.setButtonBar(config); if (!config.url) // load default tab =20 { tab.onclick(); if (config.callback) config.callback(); return false; } } if (!config.paramList) =20 paramList =3D ""; var modUrl =3D config.url; if (config.fixUrl) modUrl =3D nbApi.urlContext + config.url; var targetId =3D config.popupId + "_content"; var target =3D document.getElementById(targetId); if (target) { target.innerHTML =3D " Loading..."; } var modParamList =3D config.paramList; if (config.fixQuery) { if (config.limit && config.limit > 0) modParamList +=3D "&maxNumRow=3D" + config.limit; if (config.filter) modParamList +=3D "&tf=3D" + = encodeURIComponent(popup.getAttribute("nbName")); modParamList +=3D "&nameSpace=3D" + "nbApi"; modParamList +=3D "&js=3De"; modParamList +=3D "&small=3D" + popup.getAttribute("small"); modParamList +=3D "&log=3Dtrue&logType=3DPOPUPTAB"; var tracking =3D popup.getAttribute("nbTracking"); if (tracking) { modParamList +=3D "&"+tracking + "&logTagName=3D" + = encodeURIComponent(popup.getAttribute("nbName")); } if (config.tabId) { modParamList +=3D "&logTab=3D" + = config.tabId.replace(config.popupId+"_",""); } if (config.subTabId) { modParamList +=3D "&logSubtab=3D" + = config.subTabId.replace(config.popupId+"_",""); } else if (config.menuId) { modParamList +=3D "&logSubTab=3D" + config.menuId; } } if (navigator.userAgent.indexOf("MSIE 6") >=3D 0 || = navigator.userAgent.indexOf("MSIE 7") >=3D 0) { =20 var charset =3D document.charset; if (charset) { modParamList +=3D "&charset=3D" + charset; } } var switchCfg =3D {popupId: config.popupId, force: true}; switchCfg.timeout =3D = setTimeout(function(){nbApi.switchTab(switchCfg)}, 5000); var callback =3D function(targetId, bLoaded, json) { if (switchCfg.timeout)=20 { clearTimeout(switchCfg.timeout); switchCfg.timeout =3D null; =20 }=20 else =20 return; if (nbApi.switchTab(config)) return; config.tabMessage =3D null; nbApi.setTabMessage(config); =20 nbApi.visibility(popup.id + "_tabBar", true); =20 nbApi.dynamicSubTabs(targetId, bLoaded, json); if (config.callback) { config.callback(targetId, bLoaded, json); } nbApi.checkButtonBar(); nbApi.visibility(popup.id + "_buttonBar", true); =20 } // save parameters for posible future use popup.setAttribute("nbLastUrl", modUrl); popup.setAttribute("nbLastQuery", modParamList); =20 if (config.iFrameId) popup.setAttribute("nbIFrameId", config.iFrameId); nbApi.loadScript({containerId: config.popupId, target: targetId, = scriptTarget: config.popupId+"_script", iFrameId: config.iFrameId, url: = modUrl, query: modParamList, callbackName: "nbApi.updateTargetHTML", = callback: callback}); if (!config.initial) { var u =3D "/interact/popupTab/"; if (config.tabId) { u +=3D config.tabId.replace(config.popupId+"_",""); } if (config.subTabId) { u +=3D "/"+config.subTabId.replace(config.popupId+"_",""); } else if (config.menuId) { u +=3D config.menuId; } nbApi.trackUrl(u); } =20 } nbApi.checkButtonBar =3D function() { var obb =3D document.getElementById("nextbio_overrideButtonBar0"); if (obb) { nbApi.setButtonBar({buttonBarId: "nextbio_overrideButtonBar0", = element: obb});=20 } else { obb =3D document.getElementById("nextbio_overrideButtonBar"); if (obb) { nbApi.setButtonBar({buttonBarId: "nextbio_overrideButtonBar", = element: obb});=20 } } } // see if there is a fallback request withing the last loaded tab // if there is on - switch to that tab nbApi.switchTab =3D function(config)=20 { if (!config) return false; config.timeout =3D null; =20 var popup =3D window.nextbioPopup; if (!popup) popup =3D document.getElementById(config.popupId); if (!popup) return false; var nbSwitchTab =3D popup.getAttribute("nbSwitchTab"); if (config.switchTabs =3D=3D "false" || (nbSwitchTab !=3D "true")) return false; =20 popup.removeAttribute("nbSwitchTab"); if (!config.force) { var tabSwitcher =3D document.getElementById("nextbio_tabSwitcher"); if (!tabSwitcher) return false; } var selectedTabId =3D popup.getAttribute("nbSelectedTabId"); if (!selectedTabId || !selectedTabId.length) return false; var selectedTab =3D document.getElementById(selectedTabId);=20 if (!selectedTab)=20 return false; var nextTabId =3D selectedTab.getAttribute("nbNextTabId"); if (!nextTabId || !nextTabId.length) return false; var nextTab =3D document.getElementById(nextTabId);=20 if (!nextTab) return false; selectedTab.style.display=3D"none"; nextTab.onclick(); =20 return true; } nbApi.updateMenuEx =3D function(config) { if (!config ||!config.menuId || !config.itemId) return; var items =3D document.getElementsByName(config.menuId + "_menuItem"); if (!items) return; var selectedMenu; for (var i =3D 0; i < items.length; i++) { if (items[i].id =3D=3D config.itemId) { items[i].className =3D "nbApiExSelectedSubTab"; selectedMenu =3D items[i]; } else { items[i].className =3D "nbApiExSubTab"; } } =20 // nbApi.updatePopupTerm({element: selectedMenu}); nbApi.setTabMessage({currentTabId: selectedMenu.id, element: = selectedMenu});=20 nbApi.setButtonBar({currentTabId: selectedMenu.id, element: = selectedMenu});=20 } /** * Build dynamic query string * config.query: query string * config.dQuery: list of attribute names containing query strings * config.popupId - id of a popup */=20 nbApi.buildPopupQuery =3D function(config) { var dQuery =3D ""; =20 if (!config) return dQuery; var popup; if (config.popup) { popup =3D config.popup; } else if (window.nextbioPopup) { popup =3D window.nextbioPopup; } else if (config.element)=20 { popup =3D nbApi.findParentByClassName(config.element, = "nbApiExPopup"); } else if (config.popupId && config.popupId.length)=20 { popup =3D document.getElementById(config.popupId); } if (!popup) return dQuery; if (config.dQuery && config.dQuery.length) { var qArray =3D config.dQuery.split(","); for (var i =3D 0; i < qArray.length; i++) { var dynamicQuery =3D popup.getAttribute(nbApi.trim(qArray[i])); if (dynamicQuery && dynamicQuery.length) { if (i > 0) dQuery +=3D "&"; =20 dQuery +=3D dynamicQuery; } } } var query =3D ""; if (dQuery.length) query =3D dQuery; if (dQuery.length && config.query && config.query.length)=20 query +=3D "&"; if (config.query && config.query.length) query +=3D config.query; var hash =3D ""; if (config.dHash && config.dHash.length) { var qArray =3D config.dHash.split(","); for (var i =3D 0; i < qArray.length; i++) { var dynamicHash =3D popup.getAttribute(nbApi.trim(qArray[i])); if (dynamicHash && dynamicHash.length) { if (i > 0) hash +=3D "&"; =20 hash +=3D dynamicHash; } } } if (hash.length)=20 { query +=3D "#"; query +=3D hash; } return query; } /** * Build a URL out of url, query and dynamic query, if any. Fix URL if = needed * if config.obj is provided, set obj.href to new url value=20 * config.url - url * config.query: query string * config.dQuery: list of attribute names containing query strings * congig.popupId - popup id * config.fixUrl - prepend urlContext, if true =20 * config.obj - anchor that requests new url=20 * =20 */=20 nbApi.buildPopupUrl =3D function(config) { if (!config) return ""; var url =3D config.url; if (config.fixUrl) { url =3D nbApi.urlContext + url; } var query =3D nbApi.buildPopupQuery(config); if (query && query.length) url +=3D "?" + query; if (config.element) config.element.href =3D url; return url; } /** * find dynamically defined menu and set it instead of current sub tabs */=20 nbApi.dynamicSubTabs =3D function() { var menuArr =3D nbApi.getElementsByClassName(document, = "nbApiExPopupMenu", "div"); if (!menuArr || !menuArr.length) return; var menu =3D menuArr[0]; =20 var popup =3D window.nextbioPopup; if (!popup) { popup =3D nbApi.findParentByClassName(menu, "nbApiExPopup"); } var text =3D nbApi.findParentByClassName(menu, = "nbApiExPopupTextNoSubTabs"); if (popup) { nbApi.updatePopupTerm({popup:popup, menuId: menu.id}); var subTabs =3D document.getElementById(popup.id + "_SubTabs"); if (subTabs) { subTabs.innerHTML =3D menu.innerHTML; subTabs.style.display=3D""; if (text) text.className =3D "nbApiExPopupText"; } var menuItemArr =3D document.getElementsByName(menu.id + = "_menuItem"); =20 if (!menuItemArr || !menuItemArr.length) return; for (var i =3D 0; i < menuItemArr.length; i++) { if (menuItemArr[i].className =3D=3D "nbApiExSelectedSubTab") { nbApi.setTabMessage({currentTabId: menuItemArr[i].id, popup: = popup});=20 nbApi.setButtonBar({currentTabId: menuItemArr[i].id, popup: = popup});=20 break; } } } } /** * find and set tab message for the tab * config.tabId - id of a tab=20 * config.popupId=20 * config.element - oject that requests this operation=20 */=20 nbApi.setTabMessage =3D function(config) { if (!config || !config.currentTabId) return; =20 var popup =3D window.nextbioPopup; if (!config.popup) config.popup =3D popup; =20 if (!config.popupId && !config.popup && !config.element) =20 return;=20 if (!config.popupId && config.popup && config.popup.id) config.popupId =3D config.popup.id;=20 if (!config.popupId)=20 { var popup =3D nbApi.findParentByClassName(config.element, = "nbApiExPopup"); config.popupId =3D popup.id; } var tabTitle =3D document.getElementById(config.popupId + = "_PopupTabTitle"); if (!tabTitle) return; if (config.tabMessage) { tabTitle.innerHTML =3D config.tabMessage; } else { =20 var tabMessage =3D document.getElementById(config.currentTabId + = "_message"); if (tabMessage) tabTitle.innerHTML =3D tabMessage.innerHTML; else tabTitle.innerHTML =3D " "; } =20 } nbApi.setButtonBar =3D function(config) { if (!config || (!config.currentTabId && !config.buttonBarId)) return; =20 var popup =3D window.nextbioPopup; if (!config.popup) config.popup =3D popup; if ((!config.popupId || !config.popupId.length) && config.popup && = config.popup.id) config.popupId =3D config.popup.id;=20 if (!config.popupId && !config.element) =20 return;=20 if (!config.popupId || !config.popupId.length)=20 { var popup =3D nbApi.findParentByClassName(config.element, = "nbApiExPopup"); config.popupId =3D popup.id; } var tabButtonBar =3D document.getElementById(config.buttonBarId || = (config.currentTabId + "_buttonBar")); var buttonBar =3D document.getElementById(config.popupId + = "_buttonBar"); if (!buttonBar) return; buttonBar.innerHTML =3D ""; if (!tabButtonBar) return; buttonBar.innerHTML =3D tabButtonBar.innerHTML; } // updates popup's content area. Fixes url and query // config.updateTabs - if true or null - update tabs in a regular way. = Otherwise - do not update tabs. nbApi.simpleUpdateEx =3D function(config) { var popup =3D window.nextbioPopup; if (!popup) return; nbApi.updatePopupEx({popupId: popup.id, popup: popup,=20 tabId: config.tabId,=20 subTabId: config.subTabId,=20 url: config.url,=20 paramList: = nbApi.buildPopupQuery({popupId: popup.id, query: config.query, dQuery: = config.dQuery}),=20 filter: config.filter,=20 fixUrl:true,=20 fixQuery:true, switchTabs: config.switchTabs,=20 updateTabs: config.updateTabs}); =20 } nbApi.updatePopupTerm =3D function(config) { var popup; if (config.popup) { popup =3D config.popup; } else if (window.nextbioPopup) { popup =3D window.nextbioPopup; } else if (config.element)=20 { popup =3D nbApi.findParentByClassName(config.element, = "nbApiExPopup"); } else if (config.popupId)=20 { popup =3D document.getElementById(popupId); } else return; var termName =3D popup.getAttribute("nbName"); termName =3D nbApi.truncateWithEllipses(termName, 15); =20 var id =3D config.menuId?config.menuId:popup.id;=20 var termArr =3D nbApi.findElementsByName(id + "_term", "span"); if (!termArr && termArr.length) return; =20 for (var i =3D 0; i < termArr.length; i++) { termArr[i].innerHTML =3D termName; } =20 } //report false positive term nbApi.reportFalseTerm =3D function(config){ if (!confirm ("Would you like to report this term as false = positive?")) { return false; }=20 var pageUrl =3D document.URL; =20 var paramList; var modurl; if(config && config.target){ modurl =3D "http://sciencedirect.nextbio.com/e" + config.url; paramList =3D "term=3D" + config.term + "&type=3D" + config.type + = "&article=3D" +config.article + "&publicationId=3D" = +config.publicationId + "&pageUrl=3D" +pageUrl; nbApi.loadScript({target: config.target, url: modurl, query: = paramList, scriptTarget:config.scriptTarget}); alert("An email has been sent. Thank you for reporting."); } =20 =20 } /** * load matching sentences filtered by a string of space separated = terms * =20 * config.element - tag that calls this function * config.targetId - id of a target div * config.filterId - id of an that contains the filter string * =20 */ =20 nbApi.filterSentences =3D function(config) { // find filter string if (!config || !config.event) return; if (config.event.type =3D=3D "keypress" && config.event.keyCode !=3D = 13) return; =20 var filter =3D document.getElementsByName(config.filterName); if (!filter || !filter.length) return; var value =3D ""; for (var i =3D 0; i < filter.length; i++) { if (filter[i].value && filter[i].value.length) { if (config.clear) { filter[i].value =3D ""; } else { value =3D nbApi.normalizeString(filter[i].value); filter[i].value =3D value; break; } } } var query =3D config.query; if (value.length) query +=3D "&filter=3D" + encodeURIComponent(value); nbApi.simpleUpdateEx( =20 { tabId: config.tabId,=20 url: config.url,=20 query: query, dQuery: config.dQuery, filter: true, switchTabs: "false", updateTabs: false }); return; } /** * expand or collapse a matching sentence * config.element - element that requested the operation * config.targetId - id of an elemen that will receive the new content * config.number number of the sentence being updated * config.padding - number of the sentences before and afer the = sentence in question * config.url - url of the sentence server * config.query - query =20 */ =20 nbApi.updateSentence =3D function(config) { if (!config || !config.element) return; var popup =3D window.nextbioPopup; if (!popup) return; =20 var url =3D popup.getAttribute("nbLastUrl"); var query =3D popup.getAttribute("nbLastQuery"); var iFrameId =3D popup.getAttribute("nbIFrameId"); if (!query) query =3D ""; query +=3D "&encNum=3D" + config.encryptedNumber;=20 if (config.encryptedDocumentId) query +=3D "&encId=3D" + config.encryptedDocumentId; var expanded =3D config.element.getAttribute("nbExpanded"); var target =3D document.getElementById(config.targetId); var original =3D document.getElementById(config.targetId + = "_collapsed"); if ("true" =3D=3D expanded) { config.element.className =3D "nbApiExpand"; config.element.setAttribute("nbExpanded", "false"); target.style.display =3D "none"; if (original) { original.style.display =3D ""; } }=20 else { original.style.display =3D "none"; config.element.className =3D "nbApiCollapse"; config.element.className =3D "nbApiCollapse"; config.element.setAttribute("nbExpanded", "true"); var loaded =3D config.element.getAttribute("nbLoaded"); if (loaded =3D=3D "true") { target.style.display =3D ""; return; } target.innerHTML =3D " Loading..."; target.style.display =3D ""; config.element.setAttribute("nbLoaded", "true"); var callback =3D function() { } nbApi.loadScript({containerId: popup.id, target: config.targetId, = scriptTarget:config.popupId+"_script", iFrameId: iFrameId, url: url, = query: query, callbackName: "nbApi.updateTargetHTML", callback: = callback}); } } =20 =20 nbApi.WzTooltip =3D function() { /* The following is based on the Walter Zorn tooltip library, and is = subject to its own copyright */ /* This notice must be untouched at all times.=0A= Copyright (c) 2002-2008 Walter Zorn. All rights reserved.=0A= =0A= wz_tooltip.js v. 5.31=0A= =0A= The latest version is available at=0A= http://www.walterzorn.com=0A= or http://www.devira.com=0A= or http://www.walterzorn.de=0A= =0A= Created 1.12.2002 by Walter Zorn (Web: http://www.walterzorn.com )=0A= Last modified: 7.11.2008=0A= =0A= Easy-to-use cross-browser tooltips.=0A= Just include the script at the beginning of the section, and = invoke=0A= Tip('Tooltip text') to show and UnTip() to hide the tooltip, from the = desired=0A= HTML eventhandlers. Example:=0A= My home page=0A= No container DIV required.=0A= By default, width and height of tooltips are automatically adapted to = content.=0A= Is even capable of dynamically converting arbitrary HTML elements to = tooltips=0A= by calling TagToTip('ID_of_HTML_element_to_be_converted') instead of = Tip(),=0A= which means you can put important, search-engine-relevant stuff into = tooltips.=0A= Appearance & behaviour of tooltips can be individually configured=0A= via commands passed to Tip() or TagToTip().=0A= =0A= Tab Width: 4=0A= LICENSE: LGPL=0A= =0A= This library is free software; you can redistribute it and/or=0A= modify it under the terms of the GNU Lesser General Public=0A= License (LGPL) as published by the Free Software Foundation; either=0A= version 2.1 of the License, or (at your option) any later version.=0A= =0A= This library is distributed in the hope that it will be useful,=0A= but WITHOUT ANY WARRANTY; without even the implied warranty of=0A= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.=0A= =0A= For more details on the GNU Lesser General Public License,=0A= see http://www.gnu.org/copyleft/lesser.html=0A= */=0A= =0A= var config =3D new Object();=0A= =0A= =0A= //=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D GLOBAL = TOOLTIP CONFIGURATION = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= //=0A= var tt_Debug =3D false // false or true - recommended: false once you = release your page to the public=0A= var tt_Enabled =3D true // Allows to (temporarily) suppress tooltips, = e.g. by providing the user with a button that sets this global variable = to false=0A= var TagsToTip =3D false // false or true - if true, HTML elements to be = converted to tooltips via TagToTip() are automatically hidden;=0A= // if false, you should hide those HTML elements yourself=0A= =0A= // For each of the following config variables there exists a command, = which is=0A= // just the variablename in uppercase, to be passed to Tip() or = TagToTip() to=0A= // configure tooltips individually. Individual commands override global=0A= // configuration. Order of commands is arbitrary.=0A= // Example: onmouseover=3D"Tip('Tooltip text', LEFT, true, BGCOLOR, = '#FF9900', FADEIN, 400)"=0A= =0A= config. Above =3D false // false or true - tooltip above mousepointer=0A= config. BgColor =3D '#E9F2FF' // Background colour (HTML colour value, = in quotes)=0A= config. BgImg =3D '' // Path to background image, none if empty = string ''=0A= config. BorderColor =3D '#8EAACE'=0A= config. BorderStyle =3D 'solid' // Any permitted CSS value, but I = recommend 'solid', 'dotted' or 'dashed'=0A= config. BorderWidth =3D 1=0A= config. CenterMouse =3D false // false or true - center the tip = horizontally below (or above) the mousepointer=0A= config. ClickClose =3D false // false or true - close tooltip if the = user clicks somewhere=0A= config. ClickSticky =3D false // false or true - make tooltip sticky = if user left-clicks on the hovered element while the tooltip is active=0A= config. CloseBtn =3D false // false or true - closebutton in titlebar=0A= config. CloseBtnColors =3D ['#990000', '#FFFFFF', '#DD3333', '#FFFFFF'] = // [Background, text, hovered background, hovered text] - use empty = strings '' to inherit title colours=0A= config. CloseBtnText =3D ' X ' // Close button text (may also = be an image tag)=0A= config. CopyContent =3D true // When converting a HTML element to a = tooltip, copy only the element's content, rather than converting the = element by its own=0A= config. Delay =3D 400 // Time span in ms until tooltip shows up=0A= config. Duration =3D 0 // Time span in ms after which the tooltip = disappears; 0 for infinite duration, < 0 for delay in ms _after_ the = onmouseout until the tooltip disappears=0A= config. Exclusive =3D false // false or true - no other tooltip can = appear until the current one has actively been closed=0A= config. FadeIn =3D 100 // Fade-in duration in ms, e.g. 400; 0 for no = animation=0A= config. FadeOut =3D 100=0A= config. FadeInterval =3D 30 // Duration of each fade step in ms = (recommended: 30) - shorter is smoother but causes more CPU-load=0A= config. Fix =3D null // Fixated position, two modes. Mode 1: x- an = y-coordinates in brackets, e.g. [210, 480]. Mode 2: Show tooltip at a = position related to an HTML element: [ID of HTML element, x-offset, = y-offset from HTML element], e.g. ['SomeID', 10, 30]. Value null = (default) for no fixated positioning.=0A= config. FollowMouse =3D true // false or true - tooltip follows the = mouse=0A= config. FontColor =3D '#000044'=0A= config. FontFace =3D 'Arial,Helvetica,sans-serif'=0A= config. FontSize =3D '8pt' // E.g. '9pt' or '12px' - unit is mandatory=0A= config. FontWeight =3D 'normal' // 'normal' or 'bold';=0A= config. Height =3D 0 // Tooltip height; 0 for automatic adaption to = tooltip content, < 0 (e.g. -100) for a maximum for automatic adaption=0A= config. JumpHorz =3D false // false or true - jump horizontally to = other side of mouse if tooltip would extend past clientarea boundary=0A= config. JumpVert =3D true // false or true - jump vertically "=0A= config. Left =3D false // false or true - tooltip on the left of the = mouse=0A= config. OffsetX =3D 14 // Horizontal offset of left-top corner from = mousepointer=0A= config. OffsetY =3D 8 // Vertical offset=0A= config. Opacity =3D 100 // Integer between 0 and 100 - opacity of = tooltip in percent=0A= config. Padding =3D 3 // Spacing between border and content=0A= config. Shadow =3D false // false or true=0A= config. ShadowColor =3D '#D7D7D7'=0A= config. ShadowWidth =3D 1=0A= config. Sticky =3D false // false or true - fixate tip, ie. don't = follow the mouse and don't hide on mouseout=0A= config. TextAlign =3D 'left' // 'left', 'right' or 'justify'=0A= config. Title =3D '' // Default title text applied to all tips (no = default title: empty string '')=0A= config. TitleAlign =3D 'left' // 'left' or 'right' - text alignment = inside the title bar=0A= config. TitleBgColor =3D '' // If empty string '', BorderColor will be = used=0A= config. TitleFontColor =3D '#FFFFFF' // Color of title text - if '', = BgColor (of tooltip body) will be used=0A= config. TitleFontFace =3D '' // If '' use FontFace (boldified)=0A= config. TitleFontSize =3D '' // If '' use FontSize=0A= config. TitlePadding =3D 2=0A= config. Width =3D 0 // Tooltip width; 0 for automatic adaption to = tooltip content; < -1 (e.g. -240) for a maximum width for that automatic = adaption;=0A= // -1: tooltip width confined to the width required for the = titlebar=0A= //=3D=3D=3D=3D=3D=3D=3D END OF TOOLTIP CONFIG, DO NOT CHANGE ANYTHING = BELOW =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D//=0A= =0A= =0A= =0A= =0A= //=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D = PUBLIC = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D//=0A= function Tip()=0A= {=0A= tt_Tip(arguments, null);=0A= }=0A= function TagToTip()=0A= {=0A= var t2t =3D tt_GetElt(arguments[0]);=0A= if(t2t)=0A= tt_Tip(arguments, t2t);=0A= }=0A= function UnTip(force)=0A= {=0A= tt_OpReHref();=0A= if(tt_aV[DURATION] < 0 && (tt_iState & 0x2))=0A= tt_tDurt.Timer("tt_HideInit()", -tt_aV[DURATION], true);=0A= else if(force || !(tt_aV[STICKY] && (tt_iState & 0x2)))=0A= tt_HideInit();=0A= }=0A= =0A= //=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D PUBLIC PLUGIN = API = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D//=0A= // Extension eventhandlers currently supported:=0A= // OnLoadConfig, OnCreateContentString, OnSubDivsCreated, OnShow, = OnMoveBefore,=0A= // OnMoveAfter, OnHideInit, OnHide, OnKill=0A= =0A= var tt_aElt =3D new Array(10), // Container DIV, outer title & body = DIVs, inner title & body TDs, closebutton SPAN, shadow DIVs, and IFRAME = to cover windowed elements in IE=0A= tt_aV =3D new Array(), // Caches and enumerates config data for = currently active tooltip=0A= tt_sContent, // Inner tooltip text or HTML=0A= tt_t2t, tt_t2tDad, // Tag converted to tip, and its DOM parent element=0A= tt_musX, tt_musY,=0A= tt_over,=0A= tt_x, tt_y, tt_w, tt_h; // Position, width and height of currently = displayed tooltip=0A= =0A= function tt_Extension()=0A= {=0A= tt_ExtCmdEnum();=0A= tt_aExt[tt_aExt.length] =3D this;=0A= return this;=0A= }=0A= function tt_SetTipPos(x, y)=0A= {=0A= var css =3D tt_aElt[0].style;=0A= =0A= tt_x =3D x;=0A= tt_y =3D y;=0A= css.left =3D x + "px";=0A= css.top =3D y + "px";=0A= if(tt_ie56)=0A= {=0A= var ifrm =3D tt_aElt[tt_aElt.length - 1];=0A= if(ifrm)=0A= {=0A= ifrm.style.left =3D css.left;=0A= ifrm.style.top =3D css.top;=0A= }=0A= }=0A= }=0A= function tt_HideInit()=0A= {=0A= if(tt_iState)=0A= {=0A= tt_ExtCallFncs(0, "HideInit");=0A= tt_iState &=3D ~(0x4 | 0x8);=0A= if(tt_flagOpa && tt_aV[FADEOUT])=0A= {=0A= tt_tFade.EndTimer();=0A= if(tt_opa)=0A= {=0A= var n =3D Math.round(tt_aV[FADEOUT] / (tt_aV[FADEINTERVAL] * = (tt_aV[OPACITY] / tt_opa)));=0A= tt_Fade(tt_opa, tt_opa, 0, n);=0A= return;=0A= }=0A= }=0A= tt_tHide.Timer("tt_Hide();", 1, false);=0A= }=0A= }=0A= function tt_Hide()=0A= {=0A= if(tt_db && tt_iState)=0A= {=0A= tt_OpReHref();=0A= if(tt_iState & 0x2)=0A= {=0A= tt_aElt[0].style.visibility =3D "hidden";=0A= tt_ExtCallFncs(0, "Hide");=0A= }=0A= tt_tShow.EndTimer();=0A= tt_tHide.EndTimer();=0A= tt_tDurt.EndTimer();=0A= tt_tFade.EndTimer();=0A= if(!tt_op && !tt_ie)=0A= {=0A= tt_tWaitMov.EndTimer();=0A= tt_bWait =3D false;=0A= }=0A= if(tt_aV[CLICKCLOSE] || tt_aV[CLICKSTICKY])=0A= tt_RemEvtFnc(document, "mouseup", tt_OnLClick);=0A= tt_ExtCallFncs(0, "Kill");=0A= // In case of a TagToTip tip, hide converted DOM node and=0A= // re-insert it into DOM=0A= if(tt_t2t && !tt_aV[COPYCONTENT])=0A= tt_UnEl2Tip();=0A= tt_iState =3D 0;=0A= tt_over =3D null;=0A= tt_ResetMainDiv();=0A= if(tt_aElt[tt_aElt.length - 1])=0A= tt_aElt[tt_aElt.length - 1].style.display =3D "none";=0A= }=0A= }=0A= function tt_GetElt(id)=0A= {=0A= return(document.getElementById ? document.getElementById(id)=0A= : document.all ? document.all[id]=0A= : null);=0A= }=0A= function tt_GetDivW(el)=0A= {=0A= return(el ? (el.offsetWidth || el.style.pixelWidth || 0) : 0);=0A= }=0A= function tt_GetDivH(el)=0A= {=0A= return(el ? (el.offsetHeight || el.style.pixelHeight || 0) : 0);=0A= }=0A= function tt_GetScrollX()=0A= {=0A= return(window.pageXOffset || (tt_db ? (tt_db.scrollLeft || 0) : 0));=0A= }=0A= function tt_GetScrollY()=0A= {=0A= return(window.pageYOffset || (tt_db ? (tt_db.scrollTop || 0) : 0));=0A= }=0A= function tt_GetClientW()=0A= {=0A= return tt_GetWndCliSiz("Width");=0A= }=0A= function tt_GetClientH()=0A= {=0A= return tt_GetWndCliSiz("Height");=0A= }=0A= function tt_GetEvtX(e)=0A= {=0A= return (e ? ((typeof(e.pageX) !=3D tt_u) ? e.pageX : (e.clientX + = tt_GetScrollX())) : 0);=0A= }=0A= function tt_GetEvtY(e)=0A= {=0A= return (e ? ((typeof(e.pageY) !=3D tt_u) ? e.pageY : (e.clientY + = tt_GetScrollY())) : 0);=0A= }=0A= function tt_AddEvtFnc(el, sEvt, PFnc)=0A= {=0A= if(el)=0A= {=0A= if(el.addEventListener)=0A= el.addEventListener(sEvt, PFnc, false);=0A= else=0A= el.attachEvent("on" + sEvt, PFnc);=0A= }=0A= }=0A= function tt_RemEvtFnc(el, sEvt, PFnc)=0A= {=0A= if(el)=0A= {=0A= if(el.removeEventListener)=0A= el.removeEventListener(sEvt, PFnc, false);=0A= else=0A= el.detachEvent("on" + sEvt, PFnc);=0A= }=0A= }=0A= function tt_GetDad(el)=0A= {=0A= return(el.parentNode || el.parentElement || el.offsetParent);=0A= }=0A= function tt_MovDomNode(el, dadFrom, dadTo)=0A= {=0A= if(dadFrom)=0A= dadFrom.removeChild(el);=0A= if(dadTo)=0A= dadTo.appendChild(el);=0A= }=0A= =0A= //=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D = PRIVATE = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D//=0A= var tt_aExt =3D new Array(), // Array of extension objects=0A= =0A= tt_db, tt_op, tt_ie, tt_ie56, tt_bBoxOld, // Browser flags=0A= tt_body,=0A= tt_ovr_, // HTML element the mouse is currently over=0A= tt_flagOpa, // Opacity support: 1=3DIE, 2=3DKhtml, 3=3DKHTML, = 4=3DMoz, 5=3DW3C=0A= tt_maxPosX, tt_maxPosY,=0A= tt_iState =3D 0, // Tooltip active |=3D 1, shown |=3D 2, move with = mouse |=3D 4, exclusive |=3D 8=0A= tt_opa, // Currently applied opacity=0A= tt_bJmpVert, tt_bJmpHorz,// Tip temporarily on other side of mouse=0A= tt_elDeHref, // The tag from which we've removed the href attribute=0A= // Timer=0A= tt_tShow =3D new Number(0), tt_tHide =3D new Number(0), tt_tDurt =3D new = Number(0),=0A= tt_tFade =3D new Number(0), tt_tWaitMov =3D new Number(0),=0A= tt_bWait =3D false,=0A= tt_u =3D "undefined";=0A= =0A= =0A= function tt_Init()=0A= {=0A= tt_MkCmdEnum();=0A= // Send old browsers instantly to hell=0A= if(!tt_Browser() || !tt_MkMainDiv())=0A= return;=0A= tt_IsW3cBox();=0A= tt_OpaSupport();=0A= tt_AddEvtFnc(document, "mousemove", tt_Move);=0A= // In Debug mode we search for TagToTip() calls in order to notify=0A= // the user if they've forgotten to set the TagsToTip config flag=0A= if(TagsToTip || tt_Debug)=0A= tt_SetOnloadFnc();=0A= // Ensure the tip be hidden when the page unloads=0A= tt_AddEvtFnc(window, "unload", tt_Hide);=0A= }=0A= // Creates command names by translating config variable names to upper = case=0A= function tt_MkCmdEnum()=0A= {=0A= var n =3D 0;=0A= for(var i in config)=0A= eval("window." + i.toString().toUpperCase() + " =3D " + n++);=0A= tt_aV.length =3D n;=0A= }=0A= function tt_Browser()=0A= {=0A= var n, nv, n6, w3c;=0A= =0A= n =3D navigator.userAgent.toLowerCase(),=0A= nv =3D navigator.appVersion;=0A= tt_op =3D (document.defaultView && typeof(eval("w" + "indow" + "." + = "o" + "p" + "er" + "a")) !=3D tt_u);=0A= tt_ie =3D n.indexOf("msie") !=3D -1 && document.all && !tt_op;=0A= if(tt_ie)=0A= {=0A= var ieOld =3D (!document.compatMode || document.compatMode =3D=3D = "BackCompat");=0A= tt_db =3D !ieOld ? document.documentElement : (document.body || null);=0A= if(tt_db)=0A= tt_ie56 =3D parseFloat(nv.substring(nv.indexOf("MSIE") + 5)) >=3D 5.5=0A= && typeof document.body.style.maxHeight =3D=3D tt_u;=0A= }=0A= else=0A= {=0A= tt_db =3D document.documentElement || document.body ||=0A= (document.getElementsByTagName ? = document.getElementsByTagName("body")[0]=0A= : null);=0A= if(!tt_op)=0A= {=0A= n6 =3D document.defaultView && typeof = document.defaultView.getComputedStyle !=3D tt_u;=0A= w3c =3D !n6 && document.getElementById;=0A= }=0A= }=0A= tt_body =3D (document.getElementsByTagName ? = document.getElementsByTagName("body")[0]=0A= : (document.body || null));=0A= if(tt_ie || n6 || tt_op || w3c)=0A= {=0A= if(tt_body && tt_db)=0A= {=0A= if(document.attachEvent || document.addEventListener)=0A= return true;=0A= }=0A= else=0A= tt_Err("wz_tooltip.js must be included INSIDE the body section,"=0A= + " immediately after the opening tag.", false);=0A= }=0A= tt_db =3D null;=0A= return false;=0A= }=0A= function tt_MkMainDiv()=0A= {=0A= // Create the tooltip DIV=0A= if(tt_body.insertAdjacentHTML)=0A= tt_body.insertAdjacentHTML("afterBegin", tt_MkMainDivHtm());=0A= else if(typeof tt_body.innerHTML !=3D tt_u && document.createElement && = tt_body.appendChild)=0A= tt_body.appendChild(tt_MkMainDivDom());=0A= if(window.tt_GetMainDivRefs /* FireFox Alzheimer */ && = tt_GetMainDivRefs())=0A= return true;=0A= tt_db =3D null;=0A= return false;=0A= }=0A= function tt_MkMainDivHtm()=0A= {=0A= return(=0A= '
' +=0A= (tt_ie56 ? ('')=0A= : '')=0A= );=0A= }=0A= function tt_MkMainDivDom()=0A= {=0A= var el =3D document.createElement("div");=0A= if(el)=0A= el.id =3D "WzTtDiV";=0A= return el;=0A= }=0A= function tt_GetMainDivRefs()=0A= {=0A= tt_aElt[0] =3D tt_GetElt("WzTtDiV");=0A= if(tt_ie56 && tt_aElt[0])=0A= {=0A= tt_aElt[tt_aElt.length - 1] =3D tt_GetElt("WzTtIfRm");=0A= if(!tt_aElt[tt_aElt.length - 1])=0A= tt_aElt[0] =3D null;=0A= }=0A= if(tt_aElt[0])=0A= {=0A= var css =3D tt_aElt[0].style;=0A= =0A= css.visibility =3D "hidden";=0A= css.position =3D "absolute";=0A= css.overflow =3D "hidden";=0A= return true;=0A= }=0A= return false;=0A= }=0A= function tt_ResetMainDiv()=0A= {=0A= tt_SetTipPos(0, 0);=0A= tt_aElt[0].innerHTML =3D "";=0A= tt_aElt[0].style.width =3D "0px";=0A= tt_h =3D 0;=0A= }=0A= function tt_IsW3cBox()=0A= {=0A= var css =3D tt_aElt[0].style;=0A= =0A= css.padding =3D "10px";=0A= css.width =3D "40px";=0A= tt_bBoxOld =3D (tt_GetDivW(tt_aElt[0]) =3D=3D 40);=0A= css.padding =3D "0px";=0A= tt_ResetMainDiv();=0A= }=0A= function tt_OpaSupport()=0A= {=0A= var css =3D tt_body.style;=0A= =0A= tt_flagOpa =3D (typeof(css.KhtmlOpacity) !=3D tt_u) ? 2=0A= : (typeof(css.KHTMLOpacity) !=3D tt_u) ? 3=0A= : (typeof(css.MozOpacity) !=3D tt_u) ? 4=0A= : (typeof(css.opacity) !=3D tt_u) ? 5=0A= : (typeof(css.filter) !=3D tt_u) ? 1=0A= : 0;=0A= }=0A= // Ported from http://dean.edwards.name/weblog/2006/06/again/=0A= // (Dean Edwards et al.)=0A= function tt_SetOnloadFnc()=0A= {=0A= tt_AddEvtFnc(document, "DOMContentLoaded", tt_HideSrcTags);=0A= tt_AddEvtFnc(window, "load", tt_HideSrcTags);=0A= if(tt_body.attachEvent)=0A= tt_body.attachEvent("onreadystatechange",=0A= function() {=0A= if(tt_body.readyState =3D=3D "complete")=0A= tt_HideSrcTags();=0A= } );=0A= if(/WebKit|KHTML/i.test(navigator.userAgent))=0A= {=0A= var t =3D setInterval(function() {=0A= if(/loaded|complete/.test(document.readyState))=0A= {=0A= clearInterval(t);=0A= tt_HideSrcTags();=0A= }=0A= }, 10);=0A= }=0A= }=0A= function tt_HideSrcTags()=0A= {=0A= if(!window.tt_HideSrcTags || window.tt_HideSrcTags.done)=0A= return;=0A= window.tt_HideSrcTags.done =3D true;=0A= if(!tt_HideSrcTagsRecurs(tt_body))=0A= tt_Err("There are HTML elements to be converted to tooltips.\nIf you"=0A= + " want these HTML elements to be automatically hidden, you"=0A= + " must edit wz_tooltip.js, and set TagsToTip in the global"=0A= + " tooltip configuration to true.", true);=0A= }=0A= function tt_HideSrcTagsRecurs(dad)=0A= {=0A= var ovr, asT2t;=0A= // Walk the DOM tree for tags that have an onmouseover or onclick = attribute=0A= // containing a TagToTip('...') call.=0A= // (.childNodes first since .children is bugous in Safari)=0A= var a =3D dad.childNodes || dad.children || null;=0A= =0A= for(var i =3D a ? a.length : 0; i;)=0A= {--i;=0A= if(!tt_HideSrcTagsRecurs(a[i]))=0A= return false;=0A= ovr =3D a[i].getAttribute ? (a[i].getAttribute("onmouseover") || = a[i].getAttribute("onclick"))=0A= : (typeof a[i].onmouseover =3D=3D "function") ? (a[i].onmouseover || = a[i].onclick)=0A= : null;=0A= if(ovr)=0A= {=0A= asT2t =3D ovr.toString().match(/TagToTip\s*\(\s*'[^'.]+'\s*[\),]/);=0A= if(asT2t && asT2t.length)=0A= {=0A= if(!tt_HideSrcTag(asT2t[0]))=0A= return false;=0A= }=0A= }=0A= }=0A= return true;=0A= }=0A= function tt_HideSrcTag(sT2t)=0A= {=0A= var id, el;=0A= =0A= // The ID passed to the found TagToTip() call identifies an HTML element=0A= // to be converted to a tooltip, so hide that element=0A= id =3D sT2t.replace(/.+'([^'.]+)'.+/, "$1");=0A= el =3D tt_GetElt(id);=0A= if(el)=0A= {=0A= if(tt_Debug && !TagsToTip)=0A= return false;=0A= else=0A= el.style.display =3D "none";=0A= }=0A= else=0A= tt_Err("Invalid ID\n'" + id + "'\npassed to TagToTip()."=0A= + " There exists no HTML element with that ID.", true);=0A= return true;=0A= }=0A= function tt_Tip(arg, t2t)=0A= {=0A= if(!tt_db || (tt_iState & 0x8))=0A= return;=0A= if(tt_iState)=0A= tt_Hide();=0A= if(!tt_Enabled)=0A= return;=0A= tt_t2t =3D t2t;=0A= if(!tt_ReadCmds(arg))=0A= return;=0A= tt_iState =3D 0x1 | 0x4;=0A= tt_AdaptConfig1();=0A= tt_MkTipContent(arg);=0A= tt_MkTipSubDivs();=0A= tt_FormatTip();=0A= tt_bJmpVert =3D false;=0A= tt_bJmpHorz =3D false;=0A= tt_maxPosX =3D tt_GetClientW() + tt_GetScrollX() - tt_w - 1;=0A= tt_maxPosY =3D tt_GetClientH() + tt_GetScrollY() - tt_h - 1;=0A= tt_AdaptConfig2();=0A= // Ensure the tip be shown and positioned before the first onmousemove=0A= tt_OverInit();=0A= tt_ShowInit();=0A= tt_Move();=0A= }=0A= function tt_ReadCmds(a)=0A= {=0A= var i;=0A= =0A= // First load the global config values, to initialize also values=0A= // for which no command is passed=0A= i =3D 0;=0A= for(var j in config)=0A= tt_aV[i++] =3D config[j];=0A= // Then replace each cached config value for which a command is=0A= // passed (ensure the # of command args plus value args be even)=0A= if(a.length & 1)=0A= {=0A= for(i =3D a.length - 1; i > 0; i -=3D 2)=0A= tt_aV[a[i - 1]] =3D a[i];=0A= return true;=0A= }=0A= tt_Err("Incorrect call of Tip() or TagToTip().\n"=0A= + "Each command must be followed by a value.", true);=0A= return false;=0A= }=0A= function tt_AdaptConfig1()=0A= {=0A= tt_ExtCallFncs(0, "LoadConfig");=0A= // Inherit unspecified title formattings from body=0A= if(!tt_aV[TITLEBGCOLOR].length)=0A= tt_aV[TITLEBGCOLOR] =3D tt_aV[BORDERCOLOR];=0A= if(!tt_aV[TITLEFONTCOLOR].length)=0A= tt_aV[TITLEFONTCOLOR] =3D tt_aV[BGCOLOR];=0A= if(!tt_aV[TITLEFONTFACE].length)=0A= tt_aV[TITLEFONTFACE] =3D tt_aV[FONTFACE];=0A= if(!tt_aV[TITLEFONTSIZE].length)=0A= tt_aV[TITLEFONTSIZE] =3D tt_aV[FONTSIZE];=0A= if(tt_aV[CLOSEBTN])=0A= {=0A= // Use title colours for non-specified closebutton colours=0A= if(!tt_aV[CLOSEBTNCOLORS])=0A= tt_aV[CLOSEBTNCOLORS] =3D new Array("", "", "", "");=0A= for(var i =3D 4; i;)=0A= {--i;=0A= if(!tt_aV[CLOSEBTNCOLORS][i].length)=0A= tt_aV[CLOSEBTNCOLORS][i] =3D (i & 1) ? tt_aV[TITLEFONTCOLOR] : = tt_aV[TITLEBGCOLOR];=0A= }=0A= // Enforce titlebar be shown=0A= if(!tt_aV[TITLE].length)=0A= tt_aV[TITLE] =3D " ";=0A= }=0A= // Circumvents broken display of images and fade-in flicker in Geckos < = 1.8=0A= if(tt_aV[OPACITY] =3D=3D 100 && typeof tt_aElt[0].style.MozOpacity !=3D = tt_u && !Array.every)=0A= tt_aV[OPACITY] =3D 99;=0A= // Smartly shorten the delay for fade-in tooltips=0A= if(tt_aV[FADEIN] && tt_flagOpa && tt_aV[DELAY] > 100)=0A= tt_aV[DELAY] =3D Math.max(tt_aV[DELAY] - tt_aV[FADEIN], 100);=0A= }=0A= function tt_AdaptConfig2()=0A= {=0A= if(tt_aV[CENTERMOUSE])=0A= {=0A= tt_aV[OFFSETX] -=3D ((tt_w - (tt_aV[SHADOW] ? tt_aV[SHADOWWIDTH] : 0)) = >> 1);=0A= tt_aV[JUMPHORZ] =3D false;=0A= }=0A= }=0A= // Expose content globally so extensions can modify it=0A= function tt_MkTipContent(a)=0A= {=0A= if(tt_t2t)=0A= {=0A= if(tt_aV[COPYCONTENT])=0A= tt_sContent =3D tt_t2t.innerHTML;=0A= else=0A= tt_sContent =3D "";=0A= }=0A= else=0A= tt_sContent =3D a[0];=0A= tt_ExtCallFncs(0, "CreateContentString");=0A= }=0A= function tt_MkTipSubDivs()=0A= {=0A= var sCss =3D = 'position:relative;margin:0px;padding:0px;border-width:0px;left:0px;top:0= px;line-height:normal;width:auto;',=0A= sTbTrTd =3D ' cellspacing=3D"0" cellpadding=3D"0" border=3D"0" = style=3D"' + sCss + '">'=0A= + ''=0A= + tt_aV[TITLE]=0A= + ''=0A= + (tt_aV[CLOSEBTN] ?=0A= ('')=0A= : '')=0A= + '
'=0A= + ''=0A= + tt_aV[CLOSEBTNTEXT]=0A= + '
')=0A= : '')=0A= + '
'=0A= + ''=0A= + tt_sContent=0A= + '
'=0A= + (tt_aV[SHADOW]=0A= ? ('
'=0A= + '
')=0A= : '')=0A= );=0A= tt_GetSubDivRefs();=0A= // Convert DOM node to tip=0A= if(tt_t2t && !tt_aV[COPYCONTENT])=0A= tt_El2Tip();=0A= tt_ExtCallFncs(0, "SubDivsCreated");=0A= }=0A= function tt_GetSubDivRefs()=0A= {=0A= var aId =3D new Array("WzTiTl", "WzTiTlTb", "WzTiTlI", "WzClOsE", = "WzBoDy", "WzBoDyI", "WzTtShDwB", "WzTtShDwR");=0A= =0A= for(var i =3D aId.length; i; --i)=0A= tt_aElt[i] =3D tt_GetElt(aId[i - 1]);=0A= }=0A= function tt_FormatTip()=0A= {=0A= var css, w, h, pad =3D tt_aV[PADDING], padT, wBrd =3D = tt_aV[BORDERWIDTH],=0A= iOffY, iOffSh, iAdd =3D (pad + wBrd) << 1;=0A= =0A= //--------- Title DIV ----------=0A= if(tt_aV[TITLE].length)=0A= {=0A= padT =3D tt_aV[TITLEPADDING];=0A= css =3D tt_aElt[1].style;=0A= css.background =3D tt_aV[TITLEBGCOLOR];=0A= css.paddingTop =3D css.paddingBottom =3D padT + "px";=0A= css.paddingLeft =3D css.paddingRight =3D (padT + 2) + "px";=0A= css =3D tt_aElt[3].style;=0A= css.color =3D tt_aV[TITLEFONTCOLOR];=0A= if(tt_aV[WIDTH] =3D=3D -1)=0A= css.whiteSpace =3D "nowrap";=0A= css.fontFamily =3D tt_aV[TITLEFONTFACE];=0A= css.fontSize =3D tt_aV[TITLEFONTSIZE];=0A= css.fontWeight =3D "bold";=0A= css.textAlign =3D tt_aV[TITLEALIGN];=0A= // Close button DIV=0A= if(tt_aElt[4])=0A= {=0A= css =3D tt_aElt[4].style;=0A= css.background =3D tt_aV[CLOSEBTNCOLORS][0];=0A= css.color =3D tt_aV[CLOSEBTNCOLORS][1];=0A= css.fontFamily =3D tt_aV[TITLEFONTFACE];=0A= css.fontSize =3D tt_aV[TITLEFONTSIZE];=0A= css.fontWeight =3D "bold";=0A= }=0A= if(tt_aV[WIDTH] > 0)=0A= tt_w =3D tt_aV[WIDTH];=0A= else=0A= {=0A= tt_w =3D tt_GetDivW(tt_aElt[3]) + tt_GetDivW(tt_aElt[4]);=0A= // Some spacing between title DIV and closebutton=0A= if(tt_aElt[4])=0A= tt_w +=3D pad;=0A= // Restrict auto width to max width=0A= if(tt_aV[WIDTH] < -1 && tt_w > -tt_aV[WIDTH])=0A= tt_w =3D -tt_aV[WIDTH];=0A= }=0A= // Ensure the top border of the body DIV be covered by the title DIV=0A= iOffY =3D -wBrd;=0A= }=0A= else=0A= {=0A= tt_w =3D 0;=0A= iOffY =3D 0;=0A= }=0A= =0A= //-------- Body DIV ------------=0A= css =3D tt_aElt[5].style;=0A= css.top =3D iOffY + "px";=0A= if(wBrd)=0A= {=0A= css.borderColor =3D tt_aV[BORDERCOLOR];=0A= css.borderStyle =3D tt_aV[BORDERSTYLE];=0A= css.borderWidth =3D wBrd + "px";=0A= }=0A= if(tt_aV[BGCOLOR].length)=0A= css.background =3D tt_aV[BGCOLOR];=0A= if(tt_aV[BGIMG].length)=0A= css.backgroundImage =3D "url(" + tt_aV[BGIMG] + ")";=0A= css.padding =3D pad + "px";=0A= css.textAlign =3D tt_aV[TEXTALIGN];=0A= if(tt_aV[HEIGHT])=0A= {=0A= css.overflow =3D "auto";=0A= if(tt_aV[HEIGHT] > 0)=0A= css.height =3D (tt_aV[HEIGHT] + iAdd) + "px";=0A= else=0A= tt_h =3D iAdd - tt_aV[HEIGHT];=0A= }=0A= // TD inside body DIV=0A= css =3D tt_aElt[6].style;=0A= css.color =3D tt_aV[FONTCOLOR];=0A= css.fontFamily =3D tt_aV[FONTFACE];=0A= css.fontSize =3D tt_aV[FONTSIZE];=0A= css.fontWeight =3D tt_aV[FONTWEIGHT];=0A= css.textAlign =3D tt_aV[TEXTALIGN];=0A= if(tt_aV[WIDTH] > 0)=0A= w =3D tt_aV[WIDTH];=0A= // Width like title (if existent)=0A= else if(tt_aV[WIDTH] =3D=3D -1 && tt_w)=0A= w =3D tt_w;=0A= else=0A= {=0A= // Measure width of the body's inner TD, as some browsers would expand=0A= // the container and outer body DIV to 100%=0A= w =3D tt_GetDivW(tt_aElt[6]);=0A= // Restrict auto width to max width=0A= if(tt_aV[WIDTH] < -1 && w > -tt_aV[WIDTH])=0A= w =3D -tt_aV[WIDTH];=0A= }=0A= if(w > tt_w)=0A= tt_w =3D w;=0A= tt_w +=3D iAdd;=0A= =0A= //--------- Shadow DIVs ------------=0A= if(tt_aV[SHADOW])=0A= {=0A= tt_w +=3D tt_aV[SHADOWWIDTH];=0A= iOffSh =3D Math.floor((tt_aV[SHADOWWIDTH] * 4) / 3);=0A= // Bottom shadow=0A= css =3D tt_aElt[7].style;=0A= css.top =3D iOffY + "px";=0A= css.left =3D iOffSh + "px";=0A= css.width =3D (tt_w - iOffSh - tt_aV[SHADOWWIDTH]) + "px";=0A= css.height =3D tt_aV[SHADOWWIDTH] + "px";=0A= css.background =3D tt_aV[SHADOWCOLOR];=0A= // Right shadow=0A= css =3D tt_aElt[8].style;=0A= css.top =3D iOffSh + "px";=0A= css.left =3D (tt_w - tt_aV[SHADOWWIDTH]) + "px";=0A= css.width =3D tt_aV[SHADOWWIDTH] + "px";=0A= css.background =3D tt_aV[SHADOWCOLOR];=0A= }=0A= else=0A= iOffSh =3D 0;=0A= =0A= //-------- Container DIV -------=0A= tt_SetTipOpa(tt_aV[FADEIN] ? 0 : tt_aV[OPACITY]);=0A= tt_FixSize(iOffY, iOffSh);=0A= }=0A= // Fixate the size so it can't dynamically change while the tooltip is = moving.=0A= function tt_FixSize(iOffY, iOffSh)=0A= {=0A= var wIn, wOut, h, add, pad =3D tt_aV[PADDING], wBrd =3D = tt_aV[BORDERWIDTH], i;=0A= =0A= tt_aElt[0].style.width =3D tt_w + "px";=0A= tt_aElt[0].style.pixelWidth =3D tt_w;=0A= wOut =3D tt_w - ((tt_aV[SHADOW]) ? tt_aV[SHADOWWIDTH] : 0);=0A= // Body=0A= wIn =3D wOut;=0A= if(!tt_bBoxOld)=0A= wIn -=3D (pad + wBrd) << 1;=0A= tt_aElt[5].style.width =3D wIn + "px";=0A= // Title=0A= if(tt_aElt[1])=0A= {=0A= wIn =3D wOut - ((tt_aV[TITLEPADDING] + 2) << 1);=0A= if(!tt_bBoxOld)=0A= wOut =3D wIn;=0A= tt_aElt[1].style.width =3D wOut + "px";=0A= tt_aElt[2].style.width =3D wIn + "px";=0A= }=0A= // Max height specified=0A= if(tt_h)=0A= {=0A= h =3D tt_GetDivH(tt_aElt[5]);=0A= if(h > tt_h)=0A= {=0A= if(!tt_bBoxOld)=0A= tt_h -=3D (pad + wBrd) << 1;=0A= tt_aElt[5].style.height =3D tt_h + "px";=0A= }=0A= }=0A= tt_h =3D tt_GetDivH(tt_aElt[0]) + iOffY;=0A= // Right shadow=0A= if(tt_aElt[8])=0A= tt_aElt[8].style.height =3D (tt_h - iOffSh) + "px";=0A= i =3D tt_aElt.length - 1;=0A= if(tt_aElt[i])=0A= {=0A= tt_aElt[i].style.width =3D tt_w + "px";=0A= tt_aElt[i].style.height =3D tt_h + "px";=0A= }=0A= }=0A= function tt_DeAlt(el)=0A= {=0A= var aKid;=0A= =0A= if(el)=0A= {=0A= if(el.alt)=0A= el.alt =3D "";=0A= if(el.title)=0A= el.title =3D "";=0A= aKid =3D el.childNodes || el.children || null;=0A= if(aKid)=0A= {=0A= for(var i =3D aKid.length; i;)=0A= tt_DeAlt(aKid[--i]);=0A= }=0A= }=0A= }=0A= // This hack removes the native tooltips over links in Opera=0A= function tt_OpDeHref(el)=0A= {=0A= if(!tt_op)=0A= return;=0A= if(tt_elDeHref)=0A= tt_OpReHref();=0A= while(el)=0A= {=0A= if(el.hasAttribute && el.hasAttribute("href"))=0A= {=0A= el.t_href =3D el.getAttribute("href");=0A= el.t_stats =3D window.status;=0A= el.removeAttribute("href");=0A= el.style.cursor =3D "hand";=0A= tt_AddEvtFnc(el, "mousedown", tt_OpReHref);=0A= window.status =3D el.t_href;=0A= tt_elDeHref =3D el;=0A= break;=0A= }=0A= el =3D tt_GetDad(el);=0A= }=0A= }=0A= function tt_OpReHref()=0A= {=0A= if(tt_elDeHref)=0A= {=0A= tt_elDeHref.setAttribute("href", tt_elDeHref.t_href);=0A= tt_RemEvtFnc(tt_elDeHref, "mousedown", tt_OpReHref);=0A= window.status =3D tt_elDeHref.t_stats;=0A= tt_elDeHref =3D null;=0A= }=0A= }=0A= function tt_El2Tip()=0A= {=0A= var css =3D tt_t2t.style;=0A= =0A= // Store previous positioning=0A= tt_t2t.t_cp =3D css.position;=0A= tt_t2t.t_cl =3D css.left;=0A= tt_t2t.t_ct =3D css.top;=0A= tt_t2t.t_cd =3D css.display;=0A= // Store the tag's parent element so we can restore that DOM branch=0A= // when the tooltip is being hidden=0A= tt_t2tDad =3D tt_GetDad(tt_t2t);=0A= tt_MovDomNode(tt_t2t, tt_t2tDad, tt_aElt[6]);=0A= css.display =3D "block";=0A= css.position =3D "static";=0A= css.left =3D css.top =3D css.marginLeft =3D css.marginTop =3D "0px";=0A= }=0A= function tt_UnEl2Tip()=0A= {=0A= // Restore positioning and display=0A= var css =3D tt_t2t.style;=0A= =0A= css.display =3D tt_t2t.t_cd;=0A= tt_MovDomNode(tt_t2t, tt_GetDad(tt_t2t), tt_t2tDad);=0A= css.position =3D tt_t2t.t_cp;=0A= css.left =3D tt_t2t.t_cl;=0A= css.top =3D tt_t2t.t_ct;=0A= tt_t2tDad =3D null;=0A= }=0A= function tt_OverInit()=0A= {=0A= if(window.event)=0A= tt_over =3D window.event.target || window.event.srcElement;=0A= else=0A= tt_over =3D tt_ovr_;=0A= tt_DeAlt(tt_over);=0A= tt_OpDeHref(tt_over);=0A= }=0A= function tt_ShowInit()=0A= {=0A= tt_tShow.Timer("tt_Show()", tt_aV[DELAY], true);=0A= if(tt_aV[CLICKCLOSE] || tt_aV[CLICKSTICKY])=0A= tt_AddEvtFnc(document, "mouseup", tt_OnLClick);=0A= }=0A= function tt_Show()=0A= {=0A= var css =3D tt_aElt[0].style;=0A= =0A= // Override the z-index of the topmost wz_dragdrop.js D&D item=0A= // joel@nextbio: Change zIndex from 1010 to 100010 for DE4801=0A= css.zIndex =3D Math.max((window.dd && dd.z) ? (dd.z + 2) : 0, 100010);=0A= if(tt_aV[STICKY] || !tt_aV[FOLLOWMOUSE])=0A= tt_iState &=3D ~0x4;=0A= if(tt_aV[EXCLUSIVE])=0A= tt_iState |=3D 0x8;=0A= if(tt_aV[DURATION] > 0)=0A= tt_tDurt.Timer("tt_HideInit()", tt_aV[DURATION], true);=0A= tt_ExtCallFncs(0, "Show")=0A= css.visibility =3D "visible";=0A= tt_iState |=3D 0x2;=0A= if(tt_aV[FADEIN])=0A= tt_Fade(0, 0, tt_aV[OPACITY], Math.round(tt_aV[FADEIN] / = tt_aV[FADEINTERVAL]));=0A= tt_ShowIfrm();=0A= }=0A= function tt_ShowIfrm()=0A= {=0A= if(tt_ie56)=0A= {=0A= var ifrm =3D tt_aElt[tt_aElt.length - 1];=0A= if(ifrm)=0A= {=0A= var css =3D ifrm.style;=0A= css.zIndex =3D tt_aElt[0].style.zIndex - 1;=0A= css.display =3D "block";=0A= }=0A= }=0A= }=0A= function tt_Move(e)=0A= {=0A= if(e)=0A= tt_ovr_ =3D e.target || e.srcElement;=0A= e =3D e || window.event;=0A= if(e)=0A= {=0A= tt_musX =3D tt_GetEvtX(e);=0A= tt_musY =3D tt_GetEvtY(e);=0A= }=0A= if(tt_iState & 0x4)=0A= {=0A= // Prevent jam of mousemove events=0A= if(!tt_op && !tt_ie)=0A= {=0A= if(tt_bWait)=0A= return;=0A= tt_bWait =3D true;=0A= tt_tWaitMov.Timer("tt_bWait =3D false;", 1, true);=0A= }=0A= if(tt_aV[FIX])=0A= {=0A= tt_iState &=3D ~0x4;=0A= tt_PosFix();=0A= }=0A= else if(!tt_ExtCallFncs(e, "MoveBefore"))=0A= tt_SetTipPos(tt_Pos(0), tt_Pos(1));=0A= tt_ExtCallFncs([tt_musX, tt_musY], "MoveAfter")=0A= }=0A= }=0A= function tt_Pos(iDim)=0A= {=0A= var iX, bJmpMod, cmdAlt, cmdOff, cx, iMax, iScrl, iMus, bJmp;=0A= =0A= // Map values according to dimension to calculate=0A= if(iDim)=0A= {=0A= bJmpMod =3D tt_aV[JUMPVERT];=0A= cmdAlt =3D ABOVE;=0A= cmdOff =3D OFFSETY;=0A= cx =3D tt_h;=0A= iMax =3D tt_maxPosY;=0A= iScrl =3D tt_GetScrollY();=0A= iMus =3D tt_musY;=0A= bJmp =3D tt_bJmpVert;=0A= }=0A= else=0A= {=0A= bJmpMod =3D tt_aV[JUMPHORZ];=0A= cmdAlt =3D LEFT;=0A= cmdOff =3D OFFSETX;=0A= cx =3D tt_w;=0A= iMax =3D tt_maxPosX;=0A= iScrl =3D tt_GetScrollX();=0A= iMus =3D tt_musX;=0A= bJmp =3D tt_bJmpHorz;=0A= }=0A= if(bJmpMod)=0A= {=0A= if(tt_aV[cmdAlt] && (!bJmp || tt_CalcPosAlt(iDim) >=3D iScrl + 16))=0A= iX =3D tt_PosAlt(iDim);=0A= else if(!tt_aV[cmdAlt] && bJmp && tt_CalcPosDef(iDim) > iMax - 16)=0A= iX =3D tt_PosAlt(iDim);=0A= else=0A= iX =3D tt_PosDef(iDim);=0A= }=0A= else=0A= {=0A= iX =3D iMus;=0A= if(tt_aV[cmdAlt])=0A= iX -=3D cx + tt_aV[cmdOff] - (tt_aV[SHADOW] ? tt_aV[SHADOWWIDTH] : 0);=0A= else=0A= iX +=3D tt_aV[cmdOff];=0A= }=0A= // Prevent tip from extending past clientarea boundary=0A= if(iX > iMax)=0A= iX =3D bJmpMod ? tt_PosAlt(iDim) : iMax;=0A= // In case of insufficient space on both sides, ensure the left/upper = part=0A= // of the tip be visible=0A= if(iX < iScrl)=0A= iX =3D bJmpMod ? tt_PosDef(iDim) : iScrl;=0A= return iX;=0A= }=0A= function tt_PosDef(iDim)=0A= {=0A= if(iDim)=0A= tt_bJmpVert =3D tt_aV[ABOVE];=0A= else=0A= tt_bJmpHorz =3D tt_aV[LEFT];=0A= return tt_CalcPosDef(iDim);=0A= }=0A= function tt_PosAlt(iDim)=0A= {=0A= if(iDim)=0A= tt_bJmpVert =3D !tt_aV[ABOVE];=0A= else=0A= tt_bJmpHorz =3D !tt_aV[LEFT];=0A= return tt_CalcPosAlt(iDim);=0A= }=0A= function tt_CalcPosDef(iDim)=0A= {=0A= return iDim ? (tt_musY + tt_aV[OFFSETY]) : (tt_musX + tt_aV[OFFSETX]);=0A= }=0A= function tt_CalcPosAlt(iDim)=0A= {=0A= var cmdOff =3D iDim ? OFFSETY : OFFSETX;=0A= var dx =3D tt_aV[cmdOff] - (tt_aV[SHADOW] ? tt_aV[SHADOWWIDTH] : 0);=0A= if(tt_aV[cmdOff] > 0 && dx <=3D 0)=0A= dx =3D 1;=0A= return((iDim ? (tt_musY - tt_h) : (tt_musX - tt_w)) - dx);=0A= }=0A= function tt_PosFix()=0A= {=0A= var iX, iY;=0A= =0A= if(typeof(tt_aV[FIX][0]) =3D=3D "number")=0A= {=0A= iX =3D tt_aV[FIX][0];=0A= iY =3D tt_aV[FIX][1];=0A= }=0A= else=0A= {=0A= if(typeof(tt_aV[FIX][0]) =3D=3D "string")=0A= el =3D tt_GetElt(tt_aV[FIX][0]);=0A= // First slot in array is direct reference to HTML element=0A= else=0A= el =3D tt_aV[FIX][0];=0A= iX =3D tt_aV[FIX][1];=0A= iY =3D tt_aV[FIX][2];=0A= // By default, vert pos is related to bottom edge of HTML element=0A= if(!tt_aV[ABOVE] && el)=0A= iY +=3D tt_GetDivH(el);=0A= for(; el; el =3D el.offsetParent)=0A= {=0A= iX +=3D el.offsetLeft || 0;=0A= iY +=3D el.offsetTop || 0;=0A= }=0A= }=0A= // For a fixed tip positioned above the mouse, use the bottom edge as = anchor=0A= // (recommended by Christophe Rebeschini, 31.1.2008)=0A= if(tt_aV[ABOVE])=0A= iY -=3D tt_h;=0A= tt_SetTipPos(iX, iY);=0A= }=0A= function tt_Fade(a, now, z, n)=0A= {=0A= if(n)=0A= {=0A= now +=3D Math.round((z - now) / n);=0A= if((z > a) ? (now >=3D z) : (now <=3D z))=0A= now =3D z;=0A= else=0A= tt_tFade.Timer(=0A= "tt_Fade("=0A= + a + "," + now + "," + z + "," + (n - 1)=0A= + ")",=0A= tt_aV[FADEINTERVAL],=0A= true=0A= );=0A= }=0A= now ? tt_SetTipOpa(now) : tt_Hide();=0A= }=0A= function tt_SetTipOpa(opa)=0A= {=0A= // To circumvent the opacity nesting flaws of IE, we set the opacity=0A= // for each sub-DIV separately, rather than for the container DIV.=0A= tt_SetOpa(tt_aElt[5], opa);=0A= if(tt_aElt[1])=0A= tt_SetOpa(tt_aElt[1], opa);=0A= if(tt_aV[SHADOW])=0A= {=0A= opa =3D Math.round(opa * 0.8);=0A= tt_SetOpa(tt_aElt[7], opa);=0A= tt_SetOpa(tt_aElt[8], opa);=0A= }=0A= }=0A= function tt_OnCloseBtnOver(iOver)=0A= {=0A= var css =3D tt_aElt[4].style;=0A= =0A= iOver <<=3D 1;=0A= css.background =3D tt_aV[CLOSEBTNCOLORS][iOver];=0A= css.color =3D tt_aV[CLOSEBTNCOLORS][iOver + 1];=0A= }=0A= function tt_OnLClick(e)=0A= {=0A= // Ignore right-clicks=0A= e =3D e || window.event;=0A= if(!((e.button && e.button & 2) || (e.which && e.which =3D=3D 3)))=0A= {=0A= if(tt_aV[CLICKSTICKY] && (tt_iState & 0x4))=0A= {=0A= tt_aV[STICKY] =3D true;=0A= tt_iState &=3D ~0x4;=0A= }=0A= else if(tt_aV[CLICKCLOSE])=0A= tt_HideInit();=0A= }=0A= }=0A= function tt_Int(x)=0A= {=0A= var y;=0A= =0A= return(isNaN(y =3D parseInt(x)) ? 0 : y);=0A= }=0A= Number.prototype.Timer =3D function(s, iT, bUrge)=0A= {=0A= if(!this.value || bUrge)=0A= this.value =3D window.setTimeout(s, iT);=0A= }=0A= Number.prototype.EndTimer =3D function()=0A= {=0A= if(this.value)=0A= {=0A= window.clearTimeout(this.value);=0A= this.value =3D 0;=0A= }=0A= }=0A= function tt_GetWndCliSiz(s)=0A= {=0A= var db, y =3D window["inner" + s], sC =3D "client" + s, sN =3D "number";=0A= if(typeof y =3D=3D sN)=0A= {=0A= var y2;=0A= return(=0A= // Gecko or Opera with scrollbar=0A= // ... quirks mode=0A= ((db =3D document.body) && typeof(y2 =3D db[sC]) =3D=3D sN && y2 && = y2 <=3D y) ? y2 =0A= // ... strict mode=0A= : ((db =3D document.documentElement) && typeof(y2 =3D db[sC]) =3D=3D = sN && y2 && y2 <=3D y) ? y2=0A= // No scrollbar, or clientarea size =3D=3D 0, or other browser (KHTML = etc.)=0A= : y=0A= );=0A= }=0A= // IE=0A= return(=0A= // document.documentElement.client+s functional, returns > 0=0A= ((db =3D document.documentElement) && (y =3D db[sC])) ? y=0A= // ... not functional, in which case document.body.client+s =0A= // is the clientarea size, fortunately=0A= : document.body[sC]=0A= );=0A= }=0A= function tt_SetOpa(el, opa)=0A= {=0A= var css =3D el.style;=0A= =0A= tt_opa =3D opa;=0A= if(tt_flagOpa =3D=3D 1)=0A= {=0A= if(opa < 100)=0A= {=0A= // Hacks for bugs of IE:=0A= // 1.) Once a CSS filter has been applied, fonts are no longer=0A= // anti-aliased, so we store the previous 'non-filter' to be=0A= // able to restore it=0A= if(typeof(el.filtNo) =3D=3D tt_u)=0A= el.filtNo =3D css.filter;=0A= // 2.) A DIV cannot be made visible in a single step if an=0A= // opacity < 100 has been applied while the DIV was hidden=0A= var bVis =3D css.visibility !=3D "hidden";=0A= // 3.) In IE6, applying an opacity < 100 has no effect if the=0A= // element has no layout (position, size, zoom, ...)=0A= css.zoom =3D "100%";=0A= if(!bVis)=0A= css.visibility =3D "visible";=0A= css.filter =3D "alpha(opacity=3D" + opa + ")";=0A= if(!bVis)=0A= css.visibility =3D "hidden";=0A= }=0A= else if(typeof(el.filtNo) !=3D tt_u)=0A= // Restore 'non-filter'=0A= css.filter =3D el.filtNo;=0A= }=0A= else=0A= {=0A= opa /=3D 100.0;=0A= switch(tt_flagOpa)=0A= {=0A= case 2:=0A= css.KhtmlOpacity =3D opa; break;=0A= case 3:=0A= css.KHTMLOpacity =3D opa; break;=0A= case 4:=0A= css.MozOpacity =3D opa; break;=0A= case 5:=0A= css.opacity =3D opa; break;=0A= }=0A= }=0A= }=0A= function tt_Err(sErr, bIfDebug)=0A= {=0A= if(tt_Debug || !bIfDebug)=0A= alert("Tooltip Script Error Message:\n\n" + sErr);=0A= }=0A= =0A= //=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D EXTENSION (PLUGIN) MANAGER = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D//=0A= function tt_ExtCmdEnum()=0A= {=0A= var s;=0A= =0A= // Add new command(s) to the commands enum=0A= for(var i in config)=0A= {=0A= s =3D "window." + i.toString().toUpperCase();=0A= if(eval("typeof(" + s + ") =3D=3D tt_u"))=0A= {=0A= eval(s + " =3D " + tt_aV.length);=0A= tt_aV[tt_aV.length] =3D null;=0A= }=0A= }=0A= }=0A= function tt_ExtCallFncs(arg, sFnc)=0A= {=0A= var b =3D false;=0A= for(var i =3D tt_aExt.length; i;)=0A= {--i;=0A= var fnc =3D tt_aExt[i]["On" + sFnc];=0A= // Call the method the extension has defined for this event=0A= if(fnc && fnc(arg))=0A= b =3D true;=0A= }=0A= return b;=0A= }=0A= =0A= tt_Init();=0A= /* End of Walter Zorn tooltip library */ Number.prototype.Timer =3D function(s, iT, bUrge) { if(!this.value || bUrge) this.value =3D window.setTimeout(function() {eval(s)}, iT); } =20 function tt_Err(){} this.Tip =3D Tip; this.UnTip =3D UnTip; this.TagToTip =3D TagToTip; } if (window.tt_GetMainDivRefs =3D=3D null) { window.tt_GetMainDivRefs =3D true; } nbApi.wzTooltip =3D new nbApi.WzTooltip; nbApi.Tip =3D nbApi.wzTooltip.Tip; nbApi.UnTip =3D nbApi.wzTooltip.UnTip; nbApi.TagToTip =3D nbApi.wzTooltip.TagToTip; =20 =20 nbApi.getBody =3D function() { =20 return document.body; } nbApi.highlightPopupDiv =3D null; nbApi.highlightPopup =3D function(evt) { evt =3D evt || event; if (evt) { var span =3D evt.target || evt.srcElement; if (span) { =20 var ok=3Dfalse; if (span.className.indexOf('nbApiHighlightEl') >=3D 0) { ok =3D true; } else { var o =3D span.o; while (o && o.group) { if = (document.body.className.indexOf('nbApiShowHighlight'+o.group) >=3D 0) { ok =3D true; } o =3D o.next; } } ok=3Dtrue; if (ok) { if (nbApi.highlightPopupDiv =3D=3D null) { var tagCloudArray =3D nbApi.getElementsByClassName(document, = "nbApiTagCloudBody", "div"); nbApi.highlightPopupDiv =3D = tagCloudArray[0].getAttribute("nextbioId"); } if (nbApi.highlightPopupDiv) { var pup =3D document.getElementById(nbApi.highlightPopupDiv + = '_popup'); o =3D span.o; var syn =3D o.syn||""; =20 var text =3D nbApi.getInnerText(span); if (text && text.toLowerCase() !=3D o.tag.toLowerCase()) { syn +=3D "|"+o.tag; } var nbNav =3D "id0=3D" + o.id + "&t0=3D" + o.group + "&q0=3D" = + o.tag; function popupCb() { pup.setAttribute("nbNav", nbNav); if (syn) { pup.setAttribute("nbSyn", "syn=3D"+syn); } else { pup.removeAttribute("nbSyn"); } } nbApi.popupItems(span, pup.id, '/search/anno.nb', [[o.group, = o.id, o.tag] ], evt, true, 0, popupCb, false); evt.cancelBubble=3Dtrue; } } } } } nbApi.prepHighlightState =3D 0;=20 nbApi.pendingHighlight =3D []; =20 nbApi.highlightTries =3D 0; =20 nbApi.prepHighlight =3D function() { var highlightFirst =3D false; // if true, we will only highlight the = first instance of any term =20 if (document.getElementById("articleBody") =3D=3D null && = nbApi.highlightTries++ < 10) { setTimeout(nbApi.prepHighlight, 500); return; } if (nbApi.prepHighlightState) return; if (nbApi.getCookie("nbApiNoHighlight") =3D=3D "1") { // highlighting is disabled document.getElementById("nbApidisableHl").style.display=3D"none"; document.getElementById("nbApienableHl").style.display=3D""; return; } nbApi.prepHighlightState =3D 1; document.getElementById("nbApidisableHl").style.display=3D""; document.getElementById("nbApienableHl").style.display=3D"none"; =20 var map =3D {}; var links =3D nbApi.getElementsByClassName(document,"nbApiTagLink", = "a"); for (var i=3D0; i=3D 0) { maxlen =3D 500; } var ab=3D[]; for (var i=3D0; i<4; i++) { =20 if (aa[i].length) { var s=3D""; for (var j=3D0; j maxlen) { =20 s =3D s.replace(/ /g,'\\s+'); =20 ab.push(((i%2=3D=3D0)?'':'\\b') + "(" + s + ")" + = (i>1?'\\b':'')); s=3D''; } } if (s) { s =3D s.replace(/ /g,'\\s+'); =20 ab.push(((i%2=3D=3D0)?'':'\\b') + "(" + s + ")" + = (i>1?'\\b':'')); } } } var index =3D 0; var re; doRe(); =20 =20 function doRe() { if (index < ab.length) { re =3D new RegExp(ab[index++],'i'); doHighlight(nbApi.getBody()); for (var i=3D0; i 0) { = frag.appendChild(document.createTextNode(text.substr(0,r.index))); } if (highlightFirst && o.seen) { // we don't want to add an = underline if we've already seen it, just append the text frag.appendChild(document.createTextNode(r[0])); } else { o.seen =3D true; var span =3D document.createElement("span"); span.className =3D getClass(s); span.o =3D o; span.appendChild(document.createTextNode(r[0])); =20 if (span.addEventListener) { span.addEventListener("click", nbApi.highlightPopup, = false); } else if (span.attachEvent) { span.attachEvent("onclick", nbApi.highlightPopup); } else { span.onclick=3DnbApi.highlightPopup; } =20 if (navigator.userAgent.indexOf("MSIE") >=3D 0 && = span.attachEvent) { span.attachEvent("onmouseover", nbApi.highlightMOver); span.attachEvent("onmouseout", nbApi.highlightMOut); } frag.appendChild(span); } text =3D text.substr(r.index+r[0].length); r =3D text.match(re); } if (text) { frag.appendChild(document.createTextNode(text)); } el.parentNode.replaceChild(frag,el); } } } else if (el.tagName=3D=3D'SPAN' && el.title && (r =3D = el.title.match(re)) !=3D null && r[0] =3D=3D el.title) { =20 nbApi.addClass(el, getClass(el.title)); el.o =3D map[el.title.toLowerCase()]; } else if (el.hasChildNodes()) { if (el.className.indexOf('nbApiNoHighlight') >=3D 0 || = el.className.indexOf('nbApiHighlight') >=3D 0 || el.className =3D=3D = "refText" || (highlightFirst && = nbApi.getComputedStyle(el,'display')=3D=3D"none")) { =20 =20 =20 =20 return; } switch (el.tagName) { case 'SCRIPT': case 'STYLE': case 'OBJECT': case 'EMBED': = return; case 'A': if (el.href) return; =20 default: =20 var a=3D[]; for (var i=3D0; i -1,=0A= Gecko: navigator.userAgent.indexOf('Gecko') > -1 && = navigator.userAgent.indexOf('KHTML') =3D=3D -1,=0A= MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/)=0A= },=0A= =0A= BrowserFeatures: {=0A= XPath: !!document.evaluate,=0A= ElementExtensions: !!window.HTMLElement,=0A= SpecificElementExtensions:=0A= document.createElement('div').__proto__ &&=0A= document.createElement('div').__proto__ !=3D=3D=0A= document.createElement('form').__proto__=0A= },=0A= =0A= ScriptFragment: ']*>([\\S\\s]*?)<\/script>',=0A= JSONFilter: /^\/\*-secure-([\s\S]*)\*\/\s*$/,=0A= =0A= emptyFunction: function() { },=0A= K: function(x) { return x }=0A= };=0A= =0A= if (Prototype.Browser.MobileSafari)=0A= Prototype.BrowserFeatures.SpecificElementExtensions =3D false;=0A= =0A= if (Prototype.Browser.WebKit)=0A= Prototype.BrowserFeatures.XPath =3D false;=0A= =0A= /* Based on Alex Arnell's inheritance implementation. */=0A= var Class =3D {=0A= create: function() {=0A= var parent =3D null, properties =3D $A(arguments);=0A= if (Object.isFunction(properties[0]))=0A= parent =3D properties.shift();=0A= =0A= function klass() {=0A= this.initialize.apply(this, arguments);=0A= }=0A= =0A= Object.extend(klass, Class.Methods);=0A= klass.superclass =3D parent;=0A= klass.subclasses =3D [];=0A= =0A= if (parent) {=0A= var subclass =3D function() { };=0A= subclass.prototype =3D parent.prototype;=0A= klass.prototype =3D new subclass;=0A= parent.subclasses.push(klass);=0A= }=0A= =0A= for (var i =3D 0; i < properties.length; i++)=0A= klass.addMethods(properties[i]);=0A= =0A= if (!klass.prototype.initialize)=0A= klass.prototype.initialize =3D Prototype.emptyFunction;=0A= =0A= klass.prototype.constructor =3D klass;=0A= =0A= return klass;=0A= }=0A= };=0A= =0A= Class.Methods =3D {=0A= addMethods: function(source) {=0A= var ancestor =3D this.superclass && this.superclass.prototype;=0A= var properties =3D Object.keys(source);=0A= =0A= if (!Object.keys({ toString: true }).length)=0A= properties.push("toString", "valueOf");=0A= =0A= for (var i =3D 0, length =3D properties.length; i < length; i++) {=0A= var property =3D properties[i], value =3D source[property];=0A= if (ancestor && Object.isFunction(value) &&=0A= value.argumentNames().first() =3D=3D "$super") {=0A= var method =3D value, value =3D Object.extend((function(m) {=0A= return function() { return ancestor[m].apply(this, arguments) = };=0A= })(property).wrap(method), {=0A= valueOf: function() { return method },=0A= toString: function() { return method.toString() }=0A= });=0A= }=0A= this.prototype[property] =3D value;=0A= }=0A= =0A= return this;=0A= }=0A= };=0A= =0A= var Abstract =3D { };=0A= =0A= Object.extend =3D function(destination, source) {=0A= for (var property in source)=0A= destination[property] =3D source[property];=0A= return destination;=0A= };=0A= =0A= Object.extend(Object, {=0A= inspect: function(object) {=0A= try {=0A= if (object =3D=3D=3D undefined) return 'undefined';=0A= if (object =3D=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= toJSON: function(object) {=0A= var type =3D typeof object;=0A= switch (type) {=0A= case 'undefined':=0A= case 'function':=0A= case 'unknown': return;=0A= case 'boolean': return object.toString();=0A= }=0A= =0A= if (object =3D=3D=3D null) return 'null';=0A= if (object.toJSON) return object.toJSON();=0A= if (Object.isElement(object)) return;=0A= =0A= var results =3D [];=0A= for (var property in object) {=0A= var value =3D Object.toJSON(object[property]);=0A= if (value !=3D=3D undefined)=0A= results.push(property.toJSON() + ': ' + value);=0A= }=0A= =0A= return '{' + results.join(', ') + '}';=0A= },=0A= =0A= toQueryString: function(object) {=0A= return $H(object).toQueryString();=0A= },=0A= =0A= toHTML: function(object) {=0A= return object && object.toHTML ? object.toHTML() : = String.interpret(object);=0A= },=0A= =0A= keys: function(object) {=0A= var keys =3D [];=0A= for (var property in object)=0A= keys.push(property);=0A= return keys;=0A= },=0A= =0A= values: function(object) {=0A= var values =3D [];=0A= for (var property in object)=0A= values.push(object[property]);=0A= return values;=0A= },=0A= =0A= clone: function(object) {=0A= return Object.extend({ }, object);=0A= },=0A= =0A= isElement: function(object) {=0A= return object && object.nodeType =3D=3D 1;=0A= },=0A= =0A= isArray: function(object) {=0A= return object && object.constructor =3D=3D=3D Array;=0A= },=0A= =0A= isHash: function(object) {=0A= return object instanceof Hash;=0A= },=0A= =0A= isFunction: function(object) {=0A= return typeof object =3D=3D "function";=0A= },=0A= =0A= isString: function(object) {=0A= return typeof object =3D=3D "string";=0A= },=0A= =0A= isNumber: function(object) {=0A= return typeof object =3D=3D "number";=0A= },=0A= =0A= isUndefined: function(object) {=0A= return typeof object =3D=3D "undefined";=0A= }=0A= });=0A= =0A= Object.extend(Function.prototype, {=0A= argumentNames: function() {=0A= var names =3D = this.toString().match(/^[\s\(]*function[^(]*\((.*?)\)/)[1].split(",").inv= oke("strip");=0A= return names.length =3D=3D 1 && !names[0] ? [] : names;=0A= },=0A= =0A= bind: function() {=0A= if (arguments.length < 2 && arguments[0] =3D=3D=3D undefined) return = this;=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= bindAsEventListener: function() {=0A= var __method =3D this, args =3D $A(arguments), object =3D = args.shift();=0A= return function(event) {=0A= return __method.apply(object, [event || = window.event].concat(args));=0A= }=0A= },=0A= =0A= curry: function() {=0A= if (!arguments.length) return this;=0A= var __method =3D this, args =3D $A(arguments);=0A= return function() {=0A= return __method.apply(this, args.concat($A(arguments)));=0A= }=0A= },=0A= =0A= delay: function() {=0A= var __method =3D this, args =3D $A(arguments), timeout =3D = args.shift() * 1000;=0A= return window.setTimeout(function() {=0A= return __method.apply(__method, args);=0A= }, timeout);=0A= },=0A= =0A= wrap: function(wrapper) {=0A= var __method =3D this;=0A= return function() {=0A= return wrapper.apply(this, = [__method.bind(this)].concat($A(arguments)));=0A= }=0A= },=0A= =0A= methodize: function() {=0A= if (this._methodized) return this._methodized;=0A= var __method =3D this;=0A= return this._methodized =3D function() {=0A= return __method.apply(null, [this].concat($A(arguments)));=0A= };=0A= }=0A= });=0A= =0A= Function.prototype.defer =3D Function.prototype.delay.curry(0.01);=0A= =0A= Date.prototype.toJSON =3D function() {=0A= return '"' + this.getUTCFullYear() + '-' +=0A= (this.getUTCMonth() + 1).toPaddedString(2) + '-' +=0A= this.getUTCDate().toPaddedString(2) + 'T' +=0A= this.getUTCHours().toPaddedString(2) + ':' +=0A= this.getUTCMinutes().toPaddedString(2) + ':' +=0A= this.getUTCSeconds().toPaddedString(2) + 'Z"';=0A= };=0A= =0A= var Try =3D {=0A= these: function() {=0A= var returnValue;=0A= =0A= for (var i =3D 0, length =3D arguments.length; i < 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= RegExp.prototype.match =3D RegExp.prototype.test;=0A= =0A= RegExp.escape =3D function(str) {=0A= return String(str).replace(/([.*+?^=3D!:${}()|[\]\/\\])/g, '\\$1');=0A= };=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= var PeriodicalExecuter =3D Class.create({=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= this.timer =3D setInterval(this.onTimerEvent.bind(this), = this.frequency * 1000);=0A= },=0A= =0A= execute: function() {=0A= this.callback(this);=0A= },=0A= =0A= stop: function() {=0A= if (!this.timer) return;=0A= clearInterval(this.timer);=0A= this.timer =3D null;=0A= },=0A= =0A= onTimerEvent: function() {=0A= if (!this.currentlyExecuting) {=0A= try {=0A= this.currentlyExecuting =3D true;=0A= this.execute();=0A= } finally {=0A= this.currentlyExecuting =3D false;=0A= }=0A= }=0A= }=0A= });=0A= Object.extend(String, {=0A= interpret: function(value) {=0A= return value =3D=3D null ? '' : String(value);=0A= },=0A= specialChar: {=0A= '\b': '\\b',=0A= '\t': '\\t',=0A= '\n': '\\n',=0A= '\f': '\\f',=0A= '\r': '\\r',=0A= '\\': '\\\\'=0A= }=0A= });=0A= =0A= Object.extend(String.prototype, {=0A= gsub: function(pattern, replacement) {=0A= var result =3D '', source =3D this, match;=0A= replacement =3D arguments.callee.prepareReplacement(replacement);=0A= =0A= while (source.length > 0) {=0A= if (match =3D source.match(pattern)) {=0A= result +=3D source.slice(0, match.index);=0A= result +=3D String.interpret(replacement(match));=0A= source =3D source.slice(match.index + match[0].length);=0A= } else {=0A= result +=3D source, source =3D '';=0A= }=0A= }=0A= return result;=0A= },=0A= =0A= sub: function(pattern, replacement, count) {=0A= replacement =3D this.gsub.prepareReplacement(replacement);=0A= count =3D count =3D=3D=3D undefined ? 1 : count;=0A= =0A= return this.gsub(pattern, function(match) {=0A= if (--count < 0) return match[0];=0A= return replacement(match);=0A= });=0A= },=0A= =0A= scan: function(pattern, iterator) {=0A= this.gsub(pattern, iterator);=0A= return String(this);=0A= },=0A= =0A= truncate: function(length, truncation) {=0A= length =3D length || 30;=0A= truncation =3D truncation =3D=3D=3D undefined ? '...' : truncation;=0A= return this.length > length ?=0A= this.slice(0, length - truncation.length) + truncation : = String(this);=0A= },=0A= =0A= strip: function() {=0A= return this.replace(/^\s+/, '').replace(/\s+$/, '');=0A= },=0A= =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(function(script) { return = eval(script) });=0A= },=0A= =0A= escapeHTML: function() {=0A= var self =3D arguments.callee;=0A= self.text.data =3D this;=0A= return self.div.innerHTML;=0A= },=0A= =0A= unescapeHTML: function() {=0A= var div =3D new Element('div');=0A= div.innerHTML =3D this.stripTags();=0A= return div.childNodes[0] ? (div.childNodes.length > 1 ?=0A= $A(div.childNodes).inject('', function(memo, node) { return = memo+node.nodeValue }) :=0A= div.childNodes[0].nodeValue) : '';=0A= },=0A= =0A= toQueryParams: function(separator) {=0A= var match =3D this.strip().match(/([^?#]*)(#.*)?$/);=0A= if (!match) return { };=0A= =0A= return match[1].split(separator || '&').inject({ }, function(hash, = pair) {=0A= if ((pair =3D pair.split('=3D'))[0]) {=0A= var key =3D decodeURIComponent(pair.shift());=0A= var value =3D pair.length > 1 ? pair.join('=3D') : pair[0];=0A= if (value !=3D undefined) value =3D decodeURIComponent(value);=0A= =0A= if (key in hash) {=0A= if (!Object.isArray(hash[key])) hash[key] =3D [hash[key]];=0A= hash[key].push(value);=0A= }=0A= else hash[key] =3D value;=0A= }=0A= return hash;=0A= });=0A= },=0A= =0A= toArray: function() {=0A= return this.split('');=0A= },=0A= =0A= succ: function() {=0A= return this.slice(0, this.length - 1) +=0A= String.fromCharCode(this.charCodeAt(this.length - 1) + 1);=0A= },=0A= =0A= times: function(count) {=0A= return count < 1 ? '' : new Array(count + 1).join(this);=0A= },=0A= =0A= camelize: function() {=0A= var parts =3D this.split('-'), len =3D parts.length;=0A= if (len =3D=3D 1) return parts[0];=0A= =0A= var camelized =3D this.charAt(0) =3D=3D '-'=0A= ? parts[0].charAt(0).toUpperCase() + parts[0].substring(1)=0A= : parts[0];=0A= =0A= for (var i =3D 1; i < len; i++)=0A= camelized +=3D parts[i].charAt(0).toUpperCase() + = parts[i].substring(1);=0A= =0A= return camelized;=0A= },=0A= =0A= capitalize: function() {=0A= return this.charAt(0).toUpperCase() + = this.substring(1).toLowerCase();=0A= },=0A= =0A= underscore: function() {=0A= return this.gsub(/::/, = '/').gsub(/([A-Z]+)([A-Z][a-z])/,'#{1}_#{2}').gsub(/([a-z\d])([A-Z])/,'#{= 1}_#{2}').gsub(/-/,'_').toLowerCase();=0A= },=0A= =0A= dasherize: function() {=0A= return this.gsub(/_/,'-');=0A= },=0A= =0A= inspect: function(useDoubleQuotes) {=0A= var escapedString =3D this.gsub(/[\x00-\x1f\\]/, function(match) {=0A= var character =3D String.specialChar[match[0]];=0A= return character ? character : '\\u00' + = match[0].charCodeAt().toPaddedString(2, 16);=0A= });=0A= if (useDoubleQuotes) return '"' + escapedString.replace(/"/g, '\\"') = + '"';=0A= return "'" + escapedString.replace(/'/g, '\\\'') + "'";=0A= },=0A= =0A= toJSON: function() {=0A= return this.inspect(true);=0A= },=0A= =0A= unfilterJSON: function(filter) {=0A= return this.sub(filter || Prototype.JSONFilter, '#{1}');=0A= },=0A= =0A= isJSON: function() {=0A= var str =3D this.replace(/\\./g, '@').replace(/"[^"\\\n\r]*"/g, '');=0A= return (/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(str);=0A= },=0A= =0A= evalJSON: function(sanitize) {=0A= var json =3D this.unfilterJSON();=0A= try {=0A= if (!sanitize || json.isJSON()) return eval('(' + json + ')');=0A= } catch (e) { }=0A= throw new SyntaxError('Badly formed JSON string: ' + this.inspect());=0A= },=0A= =0A= include: function(pattern) {=0A= return this.indexOf(pattern) > -1;=0A= },=0A= =0A= startsWith: function(pattern) {=0A= return this.indexOf(pattern) =3D=3D=3D 0;=0A= },=0A= =0A= endsWith: function(pattern) {=0A= var d =3D this.length - pattern.length;=0A= return d >=3D 0 && this.lastIndexOf(pattern) =3D=3D=3D d;=0A= },=0A= =0A= empty: function() {=0A= return this =3D=3D '';=0A= },=0A= =0A= blank: function() {=0A= return /^\s*$/.test(this);=0A= },=0A= =0A= interpolate: function(object, pattern) {=0A= return new Template(this, pattern).evaluate(object);=0A= }=0A= });=0A= =0A= if (Prototype.Browser.WebKit || Prototype.Browser.IE) = Object.extend(String.prototype, {=0A= escapeHTML: function() {=0A= return = this.replace(/&/g,'&').replace(//g,'>');=0A= },=0A= unescapeHTML: function() {=0A= return = this.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>');=0A= }=0A= });=0A= =0A= String.prototype.gsub.prepareReplacement =3D function(replacement) {=0A= if (Object.isFunction(replacement)) return replacement;=0A= var template =3D new Template(replacement);=0A= return function(match) { return template.evaluate(match) };=0A= };=0A= =0A= String.prototype.parseQuery =3D String.prototype.toQueryParams;=0A= =0A= Object.extend(String.prototype.escapeHTML, {=0A= div: document.createElement('div'),=0A= text: document.createTextNode('')=0A= });=0A= =0A= with (String.prototype.escapeHTML) div.appendChild(text);=0A= =0A= var Template =3D Class.create({=0A= initialize: function(template, pattern) {=0A= this.template =3D template.toString();=0A= this.pattern =3D pattern || Template.Pattern;=0A= },=0A= =0A= evaluate: function(object) {=0A= if (Object.isFunction(object.toTemplateReplacements))=0A= object =3D object.toTemplateReplacements();=0A= =0A= return this.template.gsub(this.pattern, function(match) {=0A= if (object =3D=3D null) return '';=0A= =0A= var before =3D match[1] || '';=0A= if (before =3D=3D '\\') return match[2];=0A= =0A= var ctx =3D object, expr =3D match[3];=0A= var pattern =3D /^([^.[]+|\[((?:.*?[^\\])?)\])(\.|\[|$)/, match = =3D pattern.exec(expr);=0A= if (match =3D=3D null) return before;=0A= =0A= while (match !=3D null) {=0A= var comp =3D match[1].startsWith('[') ? match[2].gsub('\\\\]', = ']') : match[1];=0A= ctx =3D ctx[comp];=0A= if (null =3D=3D ctx || '' =3D=3D match[3]) break;=0A= expr =3D expr.substring('[' =3D=3D match[3] ? match[1].length : = match[0].length);=0A= match =3D pattern.exec(expr);=0A= }=0A= =0A= return before + String.interpret(ctx);=0A= }.bind(this));=0A= }=0A= });=0A= Template.Pattern =3D /(^|.|\r|\n)(#\{(.*?)\})/;=0A= =0A= var $break =3D { };=0A= =0A= var Enumerable =3D {=0A= each: function(iterator, context) {=0A= var index =3D 0;=0A= iterator =3D iterator.bind(context);=0A= try {=0A= this._each(function(value) {=0A= iterator(value, index++);=0A= });=0A= } catch (e) {=0A= if (e !=3D $break) throw e;=0A= }=0A= return this;=0A= },=0A= =0A= eachSlice: function(number, iterator, context) {=0A= iterator =3D iterator ? iterator.bind(context) : Prototype.K;=0A= var index =3D -number, slices =3D [], array =3D this.toArray();=0A= while ((index +=3D number) < array.length)=0A= slices.push(array.slice(index, index+number));=0A= return slices.collect(iterator, context);=0A= },=0A= =0A= all: function(iterator, context) {=0A= iterator =3D iterator ? iterator.bind(context) : Prototype.K;=0A= var result =3D true;=0A= this.each(function(value, index) {=0A= result =3D result && !!iterator(value, index);=0A= if (!result) throw $break;=0A= });=0A= return result;=0A= },=0A= =0A= any: function(iterator, context) {=0A= iterator =3D iterator ? iterator.bind(context) : Prototype.K;=0A= var result =3D false;=0A= this.each(function(value, index) {=0A= if (result =3D !!iterator(value, index))=0A= throw $break;=0A= });=0A= return result;=0A= },=0A= =0A= collect: function(iterator, context) {=0A= iterator =3D iterator ? iterator.bind(context) : Prototype.K;=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, context) {=0A= iterator =3D iterator.bind(context);=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, context) {=0A= iterator =3D iterator.bind(context);=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(filter, iterator, context) {=0A= iterator =3D iterator ? iterator.bind(context) : Prototype.K;=0A= var results =3D [];=0A= =0A= if (Object.isString(filter))=0A= filter =3D new RegExp(filter);=0A= =0A= this.each(function(value, index) {=0A= if (filter.match(value))=0A= results.push(iterator(value, index));=0A= });=0A= return results;=0A= },=0A= =0A= include: function(object) {=0A= if (Object.isFunction(this.indexOf))=0A= if (this.indexOf(object) !=3D -1) return true;=0A= =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= inGroupsOf: function(number, fillWith) {=0A= fillWith =3D fillWith =3D=3D=3D undefined ? null : fillWith;=0A= return this.eachSlice(number, function(slice) {=0A= while(slice.length < number) slice.push(fillWith);=0A= return slice;=0A= });=0A= },=0A= =0A= inject: function(memo, iterator, context) {=0A= iterator =3D iterator.bind(context);=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.map(function(value) {=0A= return value[method].apply(value, args);=0A= });=0A= },=0A= =0A= max: function(iterator, context) {=0A= iterator =3D iterator ? iterator.bind(context) : Prototype.K;=0A= var result;=0A= this.each(function(value, index) {=0A= value =3D iterator(value, index);=0A= if (result =3D=3D undefined || value >=3D result)=0A= result =3D value;=0A= });=0A= return result;=0A= },=0A= =0A= min: function(iterator, context) {=0A= iterator =3D iterator ? iterator.bind(context) : Prototype.K;=0A= var result;=0A= this.each(function(value, index) {=0A= value =3D iterator(value, index);=0A= if (result =3D=3D undefined || value < result)=0A= result =3D value;=0A= });=0A= return result;=0A= },=0A= =0A= partition: function(iterator, context) {=0A= iterator =3D iterator ? iterator.bind(context) : Prototype.K;=0A= var trues =3D [], falses =3D [];=0A= this.each(function(value, index) {=0A= (iterator(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) {=0A= results.push(value[property]);=0A= });=0A= return results;=0A= },=0A= =0A= reject: function(iterator, context) {=0A= iterator =3D iterator.bind(context);=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, context) {=0A= iterator =3D iterator.bind(context);=0A= return this.map(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.map();=0A= },=0A= =0A= zip: function() {=0A= var iterator =3D Prototype.K, args =3D $A(arguments);=0A= if (Object.isFunction(args.last()))=0A= iterator =3D args.pop();=0A= =0A= var collections =3D [this].concat(args).map($A);=0A= return this.map(function(value, index) {=0A= return iterator(collections.pluck(index));=0A= });=0A= },=0A= =0A= size: function() {=0A= return this.toArray().length;=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= filter: Enumerable.findAll,=0A= member: Enumerable.include,=0A= entries: Enumerable.toArray,=0A= every: Enumerable.all,=0A= some: Enumerable.any=0A= });=0A= function $A(iterable) {=0A= if (!iterable) return [];=0A= if (iterable.toArray) return iterable.toArray();=0A= var length =3D iterable.length, results =3D new Array(length);=0A= while (length--) results[length] =3D iterable[length];=0A= return results;=0A= }=0A= =0A= if (Prototype.Browser.WebKit) {=0A= function $A(iterable) {=0A= if (!iterable) return [];=0A= if (!(Object.isFunction(iterable) && iterable =3D=3D '[object = NodeList]') &&=0A= iterable.toArray) return iterable.toArray();=0A= var length =3D iterable.length, results =3D new Array(length);=0A= while (length--) results[length] =3D iterable[length];=0A= return results;=0A= }=0A= }=0A= =0A= Array.from =3D $A;=0A= =0A= Object.extend(Array.prototype, Enumerable);=0A= =0A= if (!Array.prototype._reverse) Array.prototype._reverse =3D = Array.prototype.reverse;=0A= =0A= Object.extend(Array.prototype, {=0A= _each: function(iterator) {=0A= for (var i =3D 0, length =3D this.length; i < 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 null;=0A= });=0A= },=0A= =0A= flatten: function() {=0A= return this.inject([], function(array, value) {=0A= return array.concat(Object.isArray(value) ?=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= reverse: function(inline) {=0A= return (inline !=3D=3D false ? this : this.toArray())._reverse();=0A= },=0A= =0A= reduce: function() {=0A= return this.length > 1 ? this : this[0];=0A= },=0A= =0A= uniq: function(sorted) {=0A= return this.inject([], function(array, value, index) {=0A= if (0 =3D=3D index || (sorted ? array.last() !=3D value : = !array.include(value)))=0A= array.push(value);=0A= return array;=0A= });=0A= },=0A= =0A= intersect: function(array) {=0A= return this.uniq().findAll(function(item) {=0A= return array.detect(function(value) { return item =3D=3D=3D value = });=0A= });=0A= },=0A= =0A= clone: function() {=0A= return [].concat(this);=0A= },=0A= =0A= size: function() {=0A= return this.length;=0A= },=0A= =0A= inspect: function() {=0A= return '[' + this.map(Object.inspect).join(', ') + ']';=0A= },=0A= =0A= toJSON: function() {=0A= var results =3D [];=0A= this.each(function(object) {=0A= var value =3D Object.toJSON(object);=0A= if (value !=3D=3D undefined) results.push(value);=0A= });=0A= return '[' + results.join(', ') + ']';=0A= }=0A= });=0A= =0A= // use native browser JS 1.6 implementation if available=0A= if (Object.isFunction(Array.prototype.forEach))=0A= Array.prototype._each =3D Array.prototype.forEach;=0A= =0A= if (!Array.prototype.indexOf) Array.prototype.indexOf =3D function(item, = i) {=0A= i || (i =3D 0);=0A= var length =3D this.length;=0A= if (i < 0) i =3D length + i;=0A= for (; i < length; i++)=0A= if (this[i] =3D=3D=3D item) return i;=0A= return -1;=0A= };=0A= =0A= if (!Array.prototype.lastIndexOf) Array.prototype.lastIndexOf =3D = function(item, i) {=0A= i =3D isNaN(i) ? this.length : (i < 0 ? this.length + i : i) + 1;=0A= var n =3D this.slice(0, i).reverse().indexOf(item);=0A= return (n < 0) ? n : i - n - 1;=0A= };=0A= =0A= Array.prototype.toArray =3D Array.prototype.clone;=0A= =0A= function $w(string) {=0A= if (!Object.isString(string)) return [];=0A= string =3D string.strip();=0A= return string ? string.split(/\s+/) : [];=0A= }=0A= =0A= if (Prototype.Browser.Opera){=0A= Array.prototype.concat =3D function() {=0A= var array =3D [];=0A= for (var i =3D 0, length =3D this.length; i < length; i++) = array.push(this[i]);=0A= for (var i =3D 0, length =3D arguments.length; i < length; i++) {=0A= if (Object.isArray(arguments[i])) {=0A= for (var j =3D 0, arrayLength =3D arguments[i].length; j < = arrayLength; j++)=0A= array.push(arguments[i][j]);=0A= } else {=0A= array.push(arguments[i]);=0A= }=0A= }=0A= return array;=0A= };=0A= }=0A= Object.extend(Number.prototype, {=0A= toColorPart: function() {=0A= return this.toPaddedString(2, 16);=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= toPaddedString: function(length, radix) {=0A= var string =3D this.toString(radix || 10);=0A= return '0'.times(length - string.length) + string;=0A= },=0A= =0A= toJSON: function() {=0A= return isFinite(this) ? this.toString() : 'null';=0A= }=0A= });=0A= =0A= $w('abs round ceil floor').each(function(method){=0A= Number.prototype[method] =3D Math[method].methodize();=0A= });=0A= function $H(object) {=0A= return new Hash(object);=0A= };=0A= =0A= var Hash =3D Class.create(Enumerable, (function() {=0A= if (function() {=0A= var i =3D 0, Test =3D function(value) { this.key =3D value };=0A= Test.prototype.key =3D 'foo';=0A= for (var property in new Test('bar')) i++;=0A= return i > 1;=0A= }()) {=0A= function each(iterator) {=0A= var cache =3D [];=0A= for (var key in this._object) {=0A= var value =3D this._object[key];=0A= if (cache.include(key)) continue;=0A= cache.push(key);=0A= var pair =3D [key, value];=0A= pair.key =3D key;=0A= pair.value =3D value;=0A= iterator(pair);=0A= }=0A= }=0A= } else {=0A= function each(iterator) {=0A= for (var key in this._object) {=0A= var value =3D this._object[key], pair =3D [key, value];=0A= pair.key =3D key;=0A= pair.value =3D value;=0A= iterator(pair);=0A= }=0A= }=0A= }=0A= =0A= function toQueryPair(key, value) {=0A= if (Object.isUndefined(value)) return key;=0A= return key + '=3D' + encodeURIComponent(String.interpret(value));=0A= }=0A= =0A= return {=0A= initialize: function(object) {=0A= this._object =3D Object.isHash(object) ? object.toObject() : = Object.clone(object);=0A= },=0A= =0A= _each: each,=0A= =0A= set: function(key, value) {=0A= return this._object[key] =3D value;=0A= },=0A= =0A= get: function(key) {=0A= return this._object[key];=0A= },=0A= =0A= unset: function(key) {=0A= var value =3D this._object[key];=0A= delete this._object[key];=0A= return value;=0A= },=0A= =0A= toObject: function() {=0A= return Object.clone(this._object);=0A= },=0A= =0A= keys: function() {=0A= return this.pluck('key');=0A= },=0A= =0A= values: function() {=0A= return this.pluck('value');=0A= },=0A= =0A= index: function(value) {=0A= var match =3D this.detect(function(pair) {=0A= return pair.value =3D=3D=3D value;=0A= });=0A= return match && match.key;=0A= },=0A= =0A= merge: function(object) {=0A= return this.clone().update(object);=0A= },=0A= =0A= update: function(object) {=0A= return new Hash(object).inject(this, function(result, pair) {=0A= result.set(pair.key, pair.value);=0A= return result;=0A= });=0A= },=0A= =0A= toQueryString: function() {=0A= return this.map(function(pair) {=0A= var key =3D encodeURIComponent(pair.key), values =3D pair.value;=0A= =0A= if (values && typeof values =3D=3D 'object') {=0A= if (Object.isArray(values))=0A= return values.map(toQueryPair.curry(key)).join('&');=0A= }=0A= return toQueryPair(key, values);=0A= }).join('&');=0A= },=0A= =0A= inspect: function() {=0A= return '#';=0A= },=0A= =0A= toJSON: function() {=0A= return Object.toJSON(this.toObject());=0A= },=0A= =0A= clone: function() {=0A= return new Hash(this);=0A= }=0A= }=0A= })());=0A= =0A= Hash.prototype.toTemplateReplacements =3D Hash.prototype.toObject;=0A= Hash.from =3D $H;=0A= var ObjectRange =3D Class.create(Enumerable, {=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= while (this.include(value)) {=0A= iterator(value);=0A= value =3D value.succ();=0A= }=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 XMLHttpRequest()},=0A= function() {return new ActiveXObject('Msxml2.XMLHTTP')},=0A= function() {return new ActiveXObject('Microsoft.XMLHTTP')}=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(responder) {=0A= if (!this.include(responder))=0A= this.responders.push(responder);=0A= },=0A= =0A= unregister: function(responder) {=0A= this.responders =3D this.responders.without(responder);=0A= },=0A= =0A= dispatch: function(callback, request, transport, json) {=0A= this.each(function(responder) {=0A= if (Object.isFunction(responder[callback])) {=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() { Ajax.activeRequestCount++ },=0A= onComplete: function() { Ajax.activeRequestCount-- }=0A= });=0A= =0A= Ajax.Base =3D Class.create({=0A= initialize: function(options) {=0A= this.options =3D {=0A= method: 'post',=0A= asynchronous: true,=0A= contentType: 'application/x-www-form-urlencoded',=0A= encoding: 'UTF-8',=0A= parameters: '',=0A= evalJSON: true,=0A= evalJS: true=0A= };=0A= Object.extend(this.options, options || { });=0A= =0A= this.options.method =3D this.options.method.toLowerCase();=0A= if (Object.isString(this.options.parameters))=0A= this.options.parameters =3D = this.options.parameters.toQueryParams();=0A= }=0A= });=0A= =0A= Ajax.Request =3D Class.create(Ajax.Base, {=0A= _complete: false,=0A= =0A= initialize: function($super, url, options) {=0A= $super(options);=0A= this.transport =3D Ajax.getTransport();=0A= this.request(url);=0A= },=0A= =0A= request: function(url) {=0A= this.url =3D url;=0A= this.method =3D this.options.method;=0A= var params =3D Object.clone(this.options.parameters);=0A= =0A= if (!['get', 'post'].include(this.method)) {=0A= // simulate other verbs over post=0A= params['_method'] =3D this.method;=0A= this.method =3D 'post';=0A= }=0A= =0A= this.parameters =3D params;=0A= =0A= if (params =3D Object.toQueryString(params)) {=0A= // when GET, append parameters to URL=0A= if (this.method =3D=3D 'get')=0A= this.url +=3D (this.url.include('?') ? '&' : '?') + params;=0A= else if (/Konqueror|Safari|KHTML/.test(navigator.userAgent))=0A= params +=3D '&_=3D';=0A= }=0A= =0A= try {=0A= var response =3D new Ajax.Response(this);=0A= if (this.options.onCreate) this.options.onCreate(response);=0A= Ajax.Responders.dispatch('onCreate', this, response);=0A= =0A= this.transport.open(this.method.toUpperCase(), this.url,=0A= this.options.asynchronous);=0A= =0A= if (this.options.asynchronous) = this.respondToReadyState.bind(this).defer(1);=0A= =0A= this.transport.onreadystatechange =3D = this.onStateChange.bind(this);=0A= this.setRequestHeaders();=0A= =0A= this.body =3D this.method =3D=3D 'post' ? (this.options.postBody = || params) : null;=0A= this.transport.send(this.body);=0A= =0A= /* Force Firefox to handle ready state 4 for synchronous requests = */=0A= if (!this.options.asynchronous && this.transport.overrideMimeType)=0A= this.onStateChange();=0A= =0A= }=0A= catch (e) {=0A= this.dispatchException(e);=0A= }=0A= },=0A= =0A= onStateChange: function() {=0A= var readyState =3D this.transport.readyState;=0A= if (readyState > 1 && !((readyState =3D=3D 4) && this._complete))=0A= this.respondToReadyState(this.transport.readyState);=0A= },=0A= =0A= setRequestHeaders: function() {=0A= var headers =3D {=0A= 'X-Requested-With': 'XMLHttpRequest',=0A= 'X-Prototype-Version': Prototype.Version,=0A= 'Accept': 'text/javascript, text/html, application/xml, text/xml, = */*'=0A= };=0A= =0A= if (this.method =3D=3D 'post') {=0A= headers['Content-type'] =3D this.options.contentType +=0A= (this.options.encoding ? '; charset=3D' + this.options.encoding = : '');=0A= =0A= /* Force "Connection: close" for older Mozilla browsers to work=0A= * around a bug where XMLHttpRequest sends an incorrect=0A= * Content-length header. See Mozilla Bugzilla #246651.=0A= */=0A= if (this.transport.overrideMimeType &&=0A= (navigator.userAgent.match(/Gecko\/(\d{4})/) || [0,2005])[1] < = 2005)=0A= headers['Connection'] =3D 'close';=0A= }=0A= =0A= // user-defined headers=0A= if (typeof this.options.requestHeaders =3D=3D 'object') {=0A= var extras =3D this.options.requestHeaders;=0A= =0A= if (Object.isFunction(extras.push))=0A= for (var i =3D 0, length =3D extras.length; i < length; i +=3D 2)=0A= headers[extras[i]] =3D extras[i+1];=0A= else=0A= $H(extras).each(function(pair) { headers[pair.key] =3D = pair.value });=0A= }=0A= =0A= for (var name in headers)=0A= this.transport.setRequestHeader(name, headers[name]);=0A= },=0A= =0A= success: function() {=0A= var status =3D this.getStatus();=0A= return !status || (status >=3D 200 && status < 300);=0A= },=0A= =0A= getStatus: function() {=0A= try {=0A= return this.transport.status || 0;=0A= } catch (e) { return 0 }=0A= },=0A= =0A= respondToReadyState: function(readyState) {=0A= var state =3D Ajax.Request.Events[readyState], response =3D new = Ajax.Response(this);=0A= =0A= if (state =3D=3D 'Complete') {=0A= try {=0A= this._complete =3D true;=0A= (this.options['on' + response.status]=0A= || this.options['on' + (this.success() ? 'Success' : 'Failure')]=0A= || Prototype.emptyFunction)(response, response.headerJSON);=0A= } catch (e) {=0A= this.dispatchException(e);=0A= }=0A= =0A= var contentType =3D response.getHeader('Content-type');=0A= if (this.options.evalJS =3D=3D 'force'=0A= || (this.options.evalJS && contentType=0A= && = contentType.match(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)?\s= *$/i)))=0A= this.evalResponse();=0A= }=0A= =0A= try {=0A= (this.options['on' + state] || Prototype.emptyFunction)(response, = response.headerJSON);=0A= Ajax.Responders.dispatch('on' + state, this, response, = response.headerJSON);=0A= } catch (e) {=0A= this.dispatchException(e);=0A= }=0A= =0A= if (state =3D=3D 'Complete') {=0A= // avoid memory leak in MSIE: clean up=0A= this.transport.onreadystatechange =3D Prototype.emptyFunction;=0A= }=0A= },=0A= =0A= getHeader: function(name) {=0A= try {=0A= return this.transport.getResponseHeader(name);=0A= } catch (e) { return null }=0A= },=0A= =0A= evalResponse: function() {=0A= try {=0A= return eval((this.transport.responseText || '').unfilterJSON());=0A= } catch (e) {=0A= this.dispatchException(e);=0A= }=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.Request.Events =3D=0A= ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'];=0A= =0A= Ajax.Response =3D Class.create({=0A= initialize: function(request){=0A= this.request =3D request;=0A= var transport =3D this.transport =3D request.transport,=0A= readyState =3D this.readyState =3D transport.readyState;=0A= =0A= if((readyState > 2 && !Prototype.Browser.IE) || readyState =3D=3D 4) = {=0A= this.status =3D this.getStatus();=0A= this.statusText =3D this.getStatusText();=0A= this.responseText =3D String.interpret(transport.responseText);=0A= this.headerJSON =3D this._getHeaderJSON();=0A= }=0A= =0A= if(readyState =3D=3D 4) {=0A= var xml =3D transport.responseXML;=0A= this.responseXML =3D xml =3D=3D=3D undefined ? null : xml;=0A= this.responseJSON =3D this._getResponseJSON();=0A= }=0A= },=0A= =0A= status: 0,=0A= statusText: '',=0A= =0A= getStatus: Ajax.Request.prototype.getStatus,=0A= =0A= getStatusText: function() {=0A= try {=0A= return this.transport.statusText || '';=0A= } catch (e) { return '' }=0A= },=0A= =0A= getHeader: Ajax.Request.prototype.getHeader,=0A= =0A= getAllHeaders: function() {=0A= try {=0A= return this.getAllResponseHeaders();=0A= } catch (e) { return null }=0A= },=0A= =0A= getResponseHeader: function(name) {=0A= return this.transport.getResponseHeader(name);=0A= },=0A= =0A= getAllResponseHeaders: function() {=0A= return this.transport.getAllResponseHeaders();=0A= },=0A= =0A= _getHeaderJSON: function() {=0A= var json =3D this.getHeader('X-JSON');=0A= if (!json) return null;=0A= json =3D decodeURIComponent(escape(json));=0A= try {=0A= return json.evalJSON(this.request.options.sanitizeJSON);=0A= } catch (e) {=0A= this.request.dispatchException(e);=0A= }=0A= },=0A= =0A= _getResponseJSON: function() {=0A= var options =3D this.request.options;=0A= if (!options.evalJSON || (options.evalJSON !=3D 'force' &&=0A= !(this.getHeader('Content-type') || = '').include('application/json')))=0A= return null;=0A= try {=0A= return this.transport.responseText.evalJSON(options.sanitizeJSON);=0A= } catch (e) {=0A= this.request.dispatchException(e);=0A= }=0A= }=0A= });=0A= =0A= Ajax.Updater =3D Class.create(Ajax.Request, {=0A= initialize: function($super, container, url, options) {=0A= this.container =3D {=0A= success: (container.success || container),=0A= failure: (container.failure || (container.success ? null : = container))=0A= };=0A= =0A= options =3D options || { };=0A= var onComplete =3D options.onComplete;=0A= options.onComplete =3D (function(response, param) {=0A= this.updateContent(response.responseText);=0A= if (Object.isFunction(onComplete)) onComplete(response, param);=0A= }).bind(this);=0A= =0A= $super(url, options);=0A= },=0A= =0A= updateContent: function(responseText) {=0A= var receiver =3D this.container[this.success() ? 'success' : = 'failure'],=0A= options =3D this.options;=0A= =0A= if (!options.evalScripts) responseText =3D = responseText.stripScripts();=0A= =0A= if (receiver =3D $(receiver)) {=0A= if (options.insertion) {=0A= if (Object.isString(options.insertion)) {=0A= var insertion =3D { }; insertion[options.insertion] =3D = responseText;=0A= receiver.insert(insertion);=0A= }=0A= else options.insertion(receiver, responseText);=0A= }=0A= else receiver.update(responseText);=0A= }=0A= =0A= if (this.success()) {=0A= if (this.onComplete) this.onComplete.bind(this).defer();=0A= }=0A= }=0A= });=0A= =0A= Ajax.PeriodicalUpdater =3D Class.create(Ajax.Base, {=0A= initialize: function($super, container, url, options) {=0A= $super(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.options.onComplete =3D undefined;=0A= clearTimeout(this.timer);=0A= (this.onComplete || Prototype.emptyFunction).apply(this, arguments);=0A= },=0A= =0A= updateComplete: function(response) {=0A= if (this.options.decay) {=0A= this.decay =3D (response.responseText =3D=3D this.lastText ?=0A= this.decay * this.options.decay : 1);=0A= =0A= this.lastText =3D response.responseText;=0A= }=0A= this.timer =3D this.onTimerEvent.bind(this).delay(this.decay * = this.frequency);=0A= },=0A= =0A= onTimerEvent: function() {=0A= this.updater =3D new Ajax.Updater(this.container, this.url, = this.options);=0A= }=0A= });=0A= function $(element) {=0A= if (arguments.length > 1) {=0A= for (var i =3D 0, elements =3D [], length =3D arguments.length; i < = length; i++)=0A= elements.push($(arguments[i]));=0A= return elements;=0A= }=0A= if (Object.isString(element))=0A= element =3D document.getElementById(element);=0A= return Element.extend(element);=0A= }=0A= =0A= if (Prototype.BrowserFeatures.XPath) {=0A= document._getElementsByXPath =3D function(expression, parentElement) {=0A= var results =3D [];=0A= var query =3D document.evaluate(expression, $(parentElement) || = document,=0A= null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);=0A= for (var i =3D 0, length =3D query.snapshotLength; i < length; i++)=0A= results.push(Element.extend(query.snapshotItem(i)));=0A= return results;=0A= };=0A= }=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= if (!window.Node) var Node =3D { };=0A= =0A= if (!Node.ELEMENT_NODE) {=0A= // DOM level 2 ECMAScript Language Binding=0A= Object.extend(Node, {=0A= ELEMENT_NODE: 1,=0A= ATTRIBUTE_NODE: 2,=0A= TEXT_NODE: 3,=0A= CDATA_SECTION_NODE: 4,=0A= ENTITY_REFERENCE_NODE: 5,=0A= ENTITY_NODE: 6,=0A= PROCESSING_INSTRUCTION_NODE: 7,=0A= COMMENT_NODE: 8,=0A= DOCUMENT_NODE: 9,=0A= DOCUMENT_TYPE_NODE: 10,=0A= DOCUMENT_FRAGMENT_NODE: 11,=0A= NOTATION_NODE: 12=0A= });=0A= }=0A= =0A= (function() {=0A= var element =3D this.Element;=0A= this.Element =3D function(tagName, attributes) {=0A= attributes =3D attributes || { };=0A= tagName =3D tagName.toLowerCase();=0A= var cache =3D Element.cache;=0A= if (Prototype.Browser.IE && attributes.name) {=0A= tagName =3D '<' + tagName + ' name=3D"' + attributes.name + '">';=0A= delete attributes.name;=0A= return Element.writeAttribute(document.createElement(tagName), = attributes);=0A= }=0A= if (!cache[tagName]) cache[tagName] =3D = Element.extend(document.createElement(tagName));=0A= return Element.writeAttribute(cache[tagName].cloneNode(false), = attributes);=0A= };=0A= Object.extend(this.Element, element || { });=0A= }).call(window);=0A= =0A= Element.cache =3D { };=0A= =0A= Element.Methods =3D {=0A= visible: function(element) {=0A= return $(element).style.display !=3D 'none';=0A= },=0A= =0A= toggle: function(element) {=0A= element =3D $(element);=0A= Element[Element.visible(element) ? 'hide' : 'show'](element);=0A= return element;=0A= },=0A= =0A= hide: function(element) {=0A= $(element).style.display =3D 'none';=0A= return element;=0A= },=0A= =0A= show: function(element) {=0A= $(element).style.display =3D '';=0A= return element;=0A= },=0A= =0A= remove: function(element) {=0A= element =3D $(element);=0A= element.parentNode.removeChild(element);=0A= return element;=0A= },=0A= =0A= update: function(element, content) {=0A= element =3D $(element);=0A= if (content && content.toElement) content =3D content.toElement();=0A= if (Object.isElement(content)) return = element.update().insert(content);=0A= content =3D Object.toHTML(content);=0A= element.innerHTML =3D content.stripScripts();=0A= content.evalScripts.bind(content).defer();=0A= return element;=0A= },=0A= =0A= replace: function(element, content) {=0A= element =3D $(element);=0A= if (content && content.toElement) content =3D content.toElement();=0A= else if (!Object.isElement(content)) {=0A= content =3D Object.toHTML(content);=0A= var range =3D element.ownerDocument.createRange();=0A= range.selectNode(element);=0A= content.evalScripts.bind(content).defer();=0A= content =3D range.createContextualFragment(content.stripScripts());=0A= }=0A= element.parentNode.replaceChild(content, element);=0A= return element;=0A= },=0A= =0A= insert: function(element, insertions) {=0A= element =3D $(element);=0A= =0A= if (Object.isString(insertions) || Object.isNumber(insertions) ||=0A= Object.isElement(insertions) || (insertions && = (insertions.toElement || insertions.toHTML)))=0A= insertions =3D {bottom:insertions};=0A= =0A= var content, t, range;=0A= =0A= for (position in insertions) {=0A= content =3D insertions[position];=0A= position =3D position.toLowerCase();=0A= t =3D Element._insertionTranslations[position];=0A= =0A= if (content && content.toElement) content =3D content.toElement();=0A= if (Object.isElement(content)) {=0A= t.insert(element, content);=0A= continue;=0A= }=0A= =0A= content =3D Object.toHTML(content);=0A= =0A= range =3D element.ownerDocument.createRange();=0A= t.initializeRange(element, range);=0A= t.insert(element, = range.createContextualFragment(content.stripScripts()));=0A= =0A= content.evalScripts.bind(content).defer();=0A= }=0A= =0A= return element;=0A= },=0A= =0A= wrap: function(element, wrapper, attributes) {=0A= element =3D $(element);=0A= if (Object.isElement(wrapper))=0A= $(wrapper).writeAttribute(attributes || { });=0A= else if (Object.isString(wrapper)) wrapper =3D new Element(wrapper, = attributes);=0A= else wrapper =3D new Element('div', wrapper);=0A= if (element.parentNode)=0A= element.parentNode.replaceChild(wrapper, element);=0A= wrapper.appendChild(element);=0A= return wrapper;=0A= },=0A= =0A= inspect: function(element) {=0A= element =3D $(element);=0A= var result =3D '<' + element.tagName.toLowerCase();=0A= $H({'id': 'id', 'className': 'class'}).each(function(pair) {=0A= var property =3D pair.first(), attribute =3D pair.last();=0A= var value =3D (element[property] || '').toString();=0A= if (value) result +=3D ' ' + attribute + '=3D' + = value.inspect(true);=0A= });=0A= return result + '>';=0A= },=0A= =0A= recursivelyCollect: function(element, property) {=0A= element =3D $(element);=0A= var elements =3D [];=0A= while (element =3D element[property])=0A= if (element.nodeType =3D=3D 1)=0A= elements.push(Element.extend(element));=0A= return elements;=0A= },=0A= =0A= ancestors: function(element) {=0A= return $(element).recursivelyCollect('parentNode');=0A= },=0A= =0A= descendants: function(element) {=0A= return $A($(element).getElementsByTagName('*')).each(Element.extend);=0A= },=0A= =0A= firstDescendant: function(element) {=0A= element =3D $(element).firstChild;=0A= while (element && element.nodeType !=3D 1) element =3D = element.nextSibling;=0A= return $(element);=0A= },=0A= =0A= immediateDescendants: function(element) {=0A= if (!(element =3D $(element).firstChild)) return [];=0A= while (element && element.nodeType !=3D 1) element =3D = element.nextSibling;=0A= if (element) return [element].concat($(element).nextSiblings());=0A= return [];=0A= },=0A= =0A= previousSiblings: function(element) {=0A= return $(element).recursivelyCollect('previousSibling');=0A= },=0A= =0A= nextSiblings: function(element) {=0A= return $(element).recursivelyCollect('nextSibling');=0A= },=0A= =0A= siblings: function(element) {=0A= element =3D $(element);=0A= return = element.previousSiblings().reverse().concat(element.nextSiblings());=0A= },=0A= =0A= match: function(element, selector) {=0A= if (Object.isString(selector))=0A= selector =3D new Selector(selector);=0A= return selector.match($(element));=0A= },=0A= =0A= up: function(element, expression, index) {=0A= element =3D $(element);=0A= if (arguments.length =3D=3D 1) return $(element.parentNode);=0A= var ancestors =3D element.ancestors();=0A= return expression ? Selector.findElement(ancestors, expression, = index) :=0A= ancestors[index || 0];=0A= },=0A= =0A= down: function(element, expression, index) {=0A= element =3D $(element);=0A= if (arguments.length =3D=3D 1) return element.firstDescendant();=0A= var descendants =3D element.descendants();=0A= return expression ? Selector.findElement(descendants, expression, = index) :=0A= descendants[index || 0];=0A= },=0A= =0A= previous: function(element, expression, index) {=0A= element =3D $(element);=0A= if (arguments.length =3D=3D 1) return = $(Selector.handlers.previousElementSibling(element));=0A= var previousSiblings =3D element.previousSiblings();=0A= return expression ? Selector.findElement(previousSiblings, = expression, index) :=0A= previousSiblings[index || 0];=0A= },=0A= =0A= next: function(element, expression, index) {=0A= element =3D $(element);=0A= if (arguments.length =3D=3D 1) return = $(Selector.handlers.nextElementSibling(element));=0A= var nextSiblings =3D element.nextSiblings();=0A= return expression ? Selector.findElement(nextSiblings, expression, = index) :=0A= nextSiblings[index || 0];=0A= },=0A= =0A= select: function() {=0A= var args =3D $A(arguments), element =3D $(args.shift());=0A= return Selector.findChildElements(element, args);=0A= },=0A= =0A= adjacent: function() {=0A= var args =3D $A(arguments), element =3D $(args.shift());=0A= return Selector.findChildElements(element.parentNode, = args).without(element);=0A= },=0A= =0A= identify: function(element) {=0A= element =3D $(element);=0A= var id =3D element.readAttribute('id'), self =3D arguments.callee;=0A= if (id) return id;=0A= do { id =3D 'anonymous_element_' + self.counter++ } while ($(id));=0A= element.writeAttribute('id', id);=0A= return id;=0A= },=0A= =0A= readAttribute: function(element, name) {=0A= element =3D $(element);=0A= if (Prototype.Browser.IE) {=0A= var t =3D Element._attributeTranslations.read;=0A= if (t.values[name]) return t.values[name](element, name);=0A= if (t.names[name]) name =3D t.names[name];=0A= if (name.include(':')) {=0A= return (!element.attributes || !element.attributes[name]) ? null = :=0A= element.attributes[name].value;=0A= }=0A= }=0A= return element.getAttribute(name);=0A= },=0A= =0A= writeAttribute: function(element, name, value) {=0A= element =3D $(element);=0A= var attributes =3D { }, t =3D Element._attributeTranslations.write;=0A= =0A= if (typeof name =3D=3D 'object') attributes =3D name;=0A= else attributes[name] =3D value =3D=3D=3D undefined ? true : value;=0A= =0A= for (var attr in attributes) {=0A= var name =3D t.names[attr] || attr, value =3D attributes[attr];=0A= if (t.values[attr]) name =3D t.values[attr](element, value);=0A= if (value =3D=3D=3D false || value =3D=3D=3D null)=0A= element.removeAttribute(name);=0A= else if (value =3D=3D=3D true)=0A= element.setAttribute(name, name);=0A= else element.setAttribute(name, value);=0A= }=0A= return element;=0A= },=0A= =0A= getHeight: function(element) {=0A= return $(element).getDimensions().height;=0A= },=0A= =0A= getWidth: function(element) {=0A= return $(element).getDimensions().width;=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= var elementClassName =3D element.className;=0A= return (elementClassName.length > 0 && (elementClassName =3D=3D = className ||=0A= new RegExp("(^|\\s)" + className + = "(\\s|$)").test(elementClassName)));=0A= },=0A= =0A= addClassName: function(element, className) {=0A= if (!(element =3D $(element))) return;=0A= if (!element.hasClassName(className))=0A= element.className +=3D (element.className ? ' ' : '') + className;=0A= return element;=0A= },=0A= =0A= removeClassName: function(element, className) {=0A= if (!(element =3D $(element))) return;=0A= element.className =3D element.className.replace(=0A= new RegExp("(^|\\s+)" + className + "(\\s+|$)"), ' ').strip();=0A= return element;=0A= },=0A= =0A= toggleClassName: function(element, className) {=0A= if (!(element =3D $(element))) return;=0A= return element[element.hasClassName(className) ?=0A= 'removeClassName' : 'addClassName'](className);=0A= },=0A= =0A= // removes whitespace-only text node children=0A= cleanWhitespace: function(element) {=0A= element =3D $(element);=0A= var node =3D element.firstChild;=0A= while (node) {=0A= var nextNode =3D node.nextSibling;=0A= if (node.nodeType =3D=3D 3 && !/\S/.test(node.nodeValue))=0A= element.removeChild(node);=0A= node =3D nextNode;=0A= }=0A= return element;=0A= },=0A= =0A= empty: function(element) {=0A= return $(element).innerHTML.blank();=0A= },=0A= =0A= descendantOf: function(element, ancestor) {=0A= element =3D $(element), ancestor =3D $(ancestor);=0A= =0A= if (element.compareDocumentPosition)=0A= return (element.compareDocumentPosition(ancestor) & 8) =3D=3D=3D 8;=0A= =0A= if (element.sourceIndex && !Prototype.Browser.Opera) {=0A= var e =3D element.sourceIndex, a =3D ancestor.sourceIndex,=0A= nextAncestor =3D ancestor.nextSibling;=0A= if (!nextAncestor) {=0A= do { ancestor =3D ancestor.parentNode; }=0A= while (!(nextAncestor =3D ancestor.nextSibling) && = ancestor.parentNode);=0A= }=0A= if (nextAncestor) return (e > a && e < nextAncestor.sourceIndex);=0A= }=0A= =0A= while (element =3D element.parentNode)=0A= if (element =3D=3D ancestor) return true;=0A= return false;=0A= },=0A= =0A= scrollTo: function(element) {=0A= element =3D $(element);=0A= var pos =3D element.cumulativeOffset();=0A= window.scrollTo(pos[0], pos[1]);=0A= return element;=0A= },=0A= =0A= getStyle: function(element, style) {=0A= element =3D $(element);=0A= style =3D style =3D=3D 'float' ? 'cssFloat' : style.camelize();=0A= var value =3D element.style[style];=0A= if (!value) {=0A= var css =3D document.defaultView.getComputedStyle(element, null);=0A= value =3D css ? css[style] : null;=0A= }=0A= if (style =3D=3D 'opacity') return value ? parseFloat(value) : 1.0;=0A= return value =3D=3D 'auto' ? null : value;=0A= },=0A= =0A= getOpacity: function(element) {=0A= return $(element).getStyle('opacity');=0A= },=0A= =0A= setStyle: function(element, styles) {=0A= element =3D $(element);=0A= var elementStyle =3D element.style, match;=0A= if (Object.isString(styles)) {=0A= element.style.cssText +=3D ';' + styles;=0A= return styles.include('opacity') ?=0A= element.setOpacity(styles.match(/opacity:\s*(\d?\.?\d*)/)[1]) : = element;=0A= }=0A= for (var property in styles)=0A= if (property =3D=3D 'opacity') = element.setOpacity(styles[property]);=0A= else=0A= elementStyle[(property =3D=3D 'float' || property =3D=3D = 'cssFloat') ?=0A= (elementStyle.styleFloat =3D=3D=3D undefined ? 'cssFloat' : = 'styleFloat') :=0A= property] =3D styles[property];=0A= =0A= return element;=0A= },=0A= =0A= setOpacity: function(element, value) {=0A= element =3D $(element);=0A= element.style.opacity =3D (value =3D=3D 1 || value =3D=3D=3D '') ? = '' :=0A= (value < 0.00001) ? 0 : value;=0A= return element;=0A= },=0A= =0A= getDimensions: function(element) {=0A= element =3D $(element);=0A= var display =3D $(element).getStyle('display');=0A= if (display !=3D 'none' && display !=3D null) // Safari bug=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= var originalDisplay =3D els.display;=0A= els.visibility =3D 'hidden';=0A= els.position =3D 'absolute';=0A= els.display =3D 'block';=0A= var originalWidth =3D element.clientWidth;=0A= var originalHeight =3D element.clientHeight;=0A= els.display =3D originalDisplay;=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= return element;=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= return element;=0A= },=0A= =0A= makeClipping: function(element) {=0A= element =3D $(element);=0A= if (element._overflow) return element;=0A= element._overflow =3D Element.getStyle(element, 'overflow') || = 'auto';=0A= if (element._overflow !=3D=3D 'hidden')=0A= element.style.overflow =3D 'hidden';=0A= return element;=0A= },=0A= =0A= undoClipping: function(element) {=0A= element =3D $(element);=0A= if (!element._overflow) return element;=0A= element.style.overflow =3D element._overflow =3D=3D 'auto' ? '' : = element._overflow;=0A= element._overflow =3D null;=0A= return element;=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 Element._returnOffset(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= if (element.tagName =3D=3D 'BODY') break;=0A= var p =3D Element.getStyle(element, 'position');=0A= if (p =3D=3D 'relative' || p =3D=3D 'absolute') break;=0A= }=0A= } while (element);=0A= return Element._returnOffset(valueL, valueT);=0A= },=0A= =0A= absolutize: function(element) {=0A= element =3D $(element);=0A= if (element.getStyle('position') =3D=3D 'absolute') return;=0A= // Position.prepare(); // To be done manually by Scripty when it = needs it.=0A= =0A= var offsets =3D element.positionedOffset();=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= return element;=0A= },=0A= =0A= relativize: function(element) {=0A= element =3D $(element);=0A= if (element.getStyle('position') =3D=3D 'relative') return;=0A= // Position.prepare(); // To be done manually by Scripty when it = needs it.=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= return element;=0A= },=0A= =0A= cumulativeScrollOffset: 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 Element._returnOffset(valueL, valueT);=0A= },=0A= =0A= getOffsetParent: 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= viewportOffset: 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=3D document.body &&=0A= Element.getStyle(element, 'position') =3D=3D 'absolute') break;=0A= =0A= } while (element =3D element.offsetParent);=0A= =0A= element =3D forElement;=0A= do {=0A= if (!Prototype.Browser.Opera || element.tagName =3D=3D 'BODY') {=0A= valueT -=3D element.scrollTop || 0;=0A= valueL -=3D element.scrollLeft || 0;=0A= }=0A= } while (element =3D element.parentNode);=0A= =0A= return Element._returnOffset(valueL, valueT);=0A= },=0A= =0A= clonePosition: function(element, source) {=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 source.viewportOffset();=0A= =0A= // find coordinate system to use=0A= element =3D $(element);=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(element, 'position') =3D=3D 'absolute') {=0A= parent =3D element.getOffsetParent();=0A= delta =3D parent.viewportOffset();=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) element.style.left =3D (p[0] - delta[0] + = options.offsetLeft) + 'px';=0A= if (options.setTop) element.style.top =3D (p[1] - delta[1] + = options.offsetTop) + 'px';=0A= if (options.setWidth) element.style.width =3D source.offsetWidth + = 'px';=0A= if (options.setHeight) element.style.height =3D source.offsetHeight = + 'px';=0A= return element;=0A= }=0A= };=0A= =0A= Element.Methods.identify.counter =3D 1;=0A= =0A= Object.extend(Element.Methods, {=0A= getElementsBySelector: Element.Methods.select,=0A= childElements: Element.Methods.immediateDescendants=0A= });=0A= =0A= Element._attributeTranslations =3D {=0A= write: {=0A= names: {=0A= className: 'class',=0A= htmlFor: 'for'=0A= },=0A= values: { }=0A= }=0A= };=0A= =0A= =0A= if (!document.createRange || Prototype.Browser.Opera) {=0A= Element.Methods.insert =3D function(element, insertions) {=0A= element =3D $(element);=0A= =0A= if (Object.isString(insertions) || Object.isNumber(insertions) ||=0A= Object.isElement(insertions) || (insertions && = (insertions.toElement || insertions.toHTML)))=0A= insertions =3D { bottom: insertions };=0A= =0A= var t =3D Element._insertionTranslations, content, position, pos, = tagName;=0A= =0A= for (position in insertions) {=0A= content =3D insertions[position];=0A= position =3D position.toLowerCase();=0A= pos =3D t[position];=0A= =0A= if (content && content.toElement) content =3D content.toElement();=0A= if (Object.isElement(content)) {=0A= pos.insert(element, content);=0A= continue;=0A= }=0A= =0A= content =3D Object.toHTML(content);=0A= tagName =3D ((position =3D=3D 'before' || position =3D=3D 'after')=0A= ? element.parentNode : element).tagName.toUpperCase();=0A= =0A= if (t.tags[tagName]) {=0A= var fragments =3D = Element._getContentFromAnonymousElement(tagName, content.stripScripts());=0A= if (position =3D=3D 'top' || position =3D=3D 'after') = fragments.reverse();=0A= fragments.each(pos.insert.curry(element));=0A= }=0A= else element.insertAdjacentHTML(pos.adjacency, = content.stripScripts());=0A= =0A= content.evalScripts.bind(content).defer();=0A= }=0A= =0A= return element;=0A= };=0A= }=0A= =0A= if (Prototype.Browser.Opera) {=0A= Element.Methods._getStyle =3D Element.Methods.getStyle;=0A= Element.Methods.getStyle =3D function(element, style) {=0A= switch(style) {=0A= case 'left':=0A= case 'top':=0A= case 'right':=0A= case 'bottom':=0A= if (Element._getStyle(element, 'position') =3D=3D 'static') = return null;=0A= default: return Element._getStyle(element, style);=0A= }=0A= };=0A= Element.Methods._readAttribute =3D Element.Methods.readAttribute;=0A= Element.Methods.readAttribute =3D function(element, attribute) {=0A= if (attribute =3D=3D 'title') return element.title;=0A= return Element._readAttribute(element, attribute);=0A= };=0A= }=0A= =0A= else if (Prototype.Browser.IE) {=0A= $w('positionedOffset getOffsetParent = viewportOffset').each(function(method) {=0A= Element.Methods[method] =3D Element.Methods[method].wrap(=0A= function(proceed, element) {=0A= element =3D $(element);=0A= var position =3D element.getStyle('position');=0A= if (position !=3D 'static') return proceed(element);=0A= element.setStyle({ position: 'relative' });=0A= var value =3D proceed(element);=0A= element.setStyle({ position: position });=0A= return value;=0A= }=0A= );=0A= });=0A= =0A= Element.Methods.getStyle =3D function(element, style) {=0A= element =3D $(element);=0A= style =3D (style =3D=3D 'float' || style =3D=3D 'cssFloat') ? = 'styleFloat' : style.camelize();=0A= var value =3D element.style[style];=0A= if (!value && element.currentStyle) value =3D = element.currentStyle[style];=0A= =0A= if (style =3D=3D 'opacity') {=0A= if (value =3D (element.getStyle('filter') || = '').match(/alpha\(opacity=3D(.*)\)/))=0A= if (value[1]) return parseFloat(value[1]) / 100;=0A= return 1.0;=0A= }=0A= =0A= if (value =3D=3D 'auto') {=0A= if ((style =3D=3D 'width' || style =3D=3D 'height') && = (element.getStyle('display') !=3D 'none'))=0A= return element['offset' + style.capitalize()] + 'px';=0A= return null;=0A= }=0A= return value;=0A= };=0A= =0A= Element.Methods.setOpacity =3D function(element, value) {=0A= function stripAlpha(filter){=0A= return filter.replace(/alpha\([^\)]*\)/gi,'');=0A= }=0A= element =3D $(element);=0A= var currentStyle =3D element.currentStyle;=0A= if ((currentStyle && !currentStyle.hasLayout) ||=0A= (!currentStyle && element.style.zoom =3D=3D 'normal'))=0A= element.style.zoom =3D 1;=0A= =0A= var filter =3D element.getStyle('filter'), style =3D element.style;=0A= if (value =3D=3D 1 || value =3D=3D=3D '') {=0A= (filter =3D stripAlpha(filter)) ?=0A= style.filter =3D filter : style.removeAttribute('filter');=0A= return element;=0A= } else if (value < 0.00001) value =3D 0;=0A= style.filter =3D stripAlpha(filter) +=0A= 'alpha(opacity=3D' + (value * 100) + ')';=0A= return element;=0A= };=0A= =0A= Element._attributeTranslations =3D {=0A= read: {=0A= names: {=0A= 'class': 'className',=0A= 'for': 'htmlFor'=0A= },=0A= values: {=0A= _getAttr: function(element, attribute) {=0A= return element.getAttribute(attribute, 2);=0A= },=0A= _getAttrNode: function(element, attribute) {=0A= var node =3D element.getAttributeNode(attribute);=0A= return node ? node.value : "";=0A= },=0A= _getEv: function(element, attribute) {=0A= var attribute =3D element.getAttribute(attribute);=0A= return attribute ? attribute.toString().slice(23, -2) : null;=0A= },=0A= _flag: function(element, attribute) {=0A= return $(element).hasAttribute(attribute) ? attribute : null;=0A= },=0A= style: function(element) {=0A= return element.style.cssText.toLowerCase();=0A= },=0A= title: function(element) {=0A= return element.title;=0A= }=0A= }=0A= }=0A= };=0A= =0A= Element._attributeTranslations.write =3D {=0A= names: Object.clone(Element._attributeTranslations.read.names),=0A= values: {=0A= checked: function(element, value) {=0A= element.checked =3D !!value;=0A= },=0A= =0A= style: function(element, value) {=0A= element.style.cssText =3D value ? value : '';=0A= }=0A= }=0A= };=0A= =0A= Element._attributeTranslations.has =3D {};=0A= =0A= $w('colSpan rowSpan vAlign dateTime accessKey tabIndex ' +=0A= 'encType maxLength readOnly longDesc').each(function(attr) {=0A= Element._attributeTranslations.write.names[attr.toLowerCase()] =3D = attr;=0A= Element._attributeTranslations.has[attr.toLowerCase()] =3D attr;=0A= });=0A= =0A= (function(v) {=0A= Object.extend(v, {=0A= href: v._getAttr,=0A= src: v._getAttr,=0A= type: v._getAttr,=0A= action: v._getAttrNode,=0A= disabled: v._flag,=0A= checked: v._flag,=0A= readonly: v._flag,=0A= multiple: v._flag,=0A= onload: v._getEv,=0A= onunload: v._getEv,=0A= onclick: v._getEv,=0A= ondblclick: v._getEv,=0A= onmousedown: v._getEv,=0A= onmouseup: v._getEv,=0A= onmouseover: v._getEv,=0A= onmousemove: v._getEv,=0A= onmouseout: v._getEv,=0A= onfocus: v._getEv,=0A= onblur: v._getEv,=0A= onkeypress: v._getEv,=0A= onkeydown: v._getEv,=0A= onkeyup: v._getEv,=0A= onsubmit: v._getEv,=0A= onreset: v._getEv,=0A= onselect: v._getEv,=0A= onchange: v._getEv=0A= });=0A= })(Element._attributeTranslations.read.values);=0A= }=0A= =0A= else if (Prototype.Browser.Gecko && = /rv:1\.8\.0/.test(navigator.userAgent)) {=0A= Element.Methods.setOpacity =3D function(element, value) {=0A= element =3D $(element);=0A= element.style.opacity =3D (value =3D=3D 1) ? 0.999999 :=0A= (value =3D=3D=3D '') ? '' : (value < 0.00001) ? 0 : value;=0A= return element;=0A= };=0A= }=0A= =0A= else if (Prototype.Browser.WebKit) {=0A= Element.Methods.setOpacity =3D function(element, value) {=0A= element =3D $(element);=0A= element.style.opacity =3D (value =3D=3D 1 || value =3D=3D=3D '') ? = '' :=0A= (value < 0.00001) ? 0 : value;=0A= =0A= if (value =3D=3D 1)=0A= if(element.tagName =3D=3D 'IMG' && element.width) {=0A= element.width++; element.width--;=0A= } else try {=0A= var n =3D document.createTextNode(' ');=0A= element.appendChild(n);=0A= element.removeChild(n);=0A= } catch (e) { }=0A= =0A= return element;=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= Element.Methods.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 Element._returnOffset(valueL, valueT);=0A= };=0A= }=0A= =0A= if (Prototype.Browser.IE || Prototype.Browser.Opera) {=0A= // IE and Opera are missing .innerHTML support for TABLE-related and = SELECT elements=0A= Element.Methods.update =3D function(element, content) {=0A= element =3D $(element);=0A= =0A= if (content && content.toElement) content =3D content.toElement();=0A= if (Object.isElement(content)) return = element.update().insert(content);=0A= =0A= content =3D Object.toHTML(content);=0A= var tagName =3D element.tagName.toUpperCase();=0A= =0A= if (tagName in Element._insertionTranslations.tags) {=0A= $A(element.childNodes).each(function(node) { = element.removeChild(node) });=0A= Element._getContentFromAnonymousElement(tagName, = content.stripScripts())=0A= .each(function(node) { element.appendChild(node) });=0A= }=0A= else element.innerHTML =3D content.stripScripts();=0A= =0A= content.evalScripts.bind(content).defer();=0A= return element;=0A= };=0A= }=0A= =0A= if (document.createElement('div').outerHTML) {=0A= Element.Methods.replace =3D function(element, content) {=0A= element =3D $(element);=0A= =0A= if (content && content.toElement) content =3D content.toElement();=0A= if (Object.isElement(content)) {=0A= element.parentNode.replaceChild(content, element);=0A= return element;=0A= }=0A= =0A= content =3D Object.toHTML(content);=0A= var parent =3D element.parentNode, tagName =3D = parent.tagName.toUpperCase();=0A= =0A= if (Element._insertionTranslations.tags[tagName]) {=0A= var nextSibling =3D element.next();=0A= var fragments =3D Element._getContentFromAnonymousElement(tagName, = content.stripScripts());=0A= parent.removeChild(element);=0A= if (nextSibling)=0A= fragments.each(function(node) { parent.insertBefore(node, = nextSibling) });=0A= else=0A= fragments.each(function(node) { parent.appendChild(node) });=0A= }=0A= else element.outerHTML =3D content.stripScripts();=0A= =0A= content.evalScripts.bind(content).defer();=0A= return element;=0A= };=0A= }=0A= =0A= Element._returnOffset =3D function(l, t) {=0A= var result =3D [l, t];=0A= result.left =3D l;=0A= result.top =3D t;=0A= return result;=0A= };=0A= =0A= Element._getContentFromAnonymousElement =3D function(tagName, html) {=0A= var div =3D new Element('div'), t =3D = Element._insertionTranslations.tags[tagName];=0A= div.innerHTML =3D t[0] + html + t[1];=0A= t[2].times(function() { div =3D div.firstChild });=0A= return $A(div.childNodes);=0A= };=0A= =0A= Element._insertionTranslations =3D {=0A= before: {=0A= adjacency: 'beforeBegin',=0A= insert: function(element, node) {=0A= element.parentNode.insertBefore(node, element);=0A= },=0A= initializeRange: function(element, range) {=0A= range.setStartBefore(element);=0A= }=0A= },=0A= top: {=0A= adjacency: 'afterBegin',=0A= insert: function(element, node) {=0A= element.insertBefore(node, element.firstChild);=0A= },=0A= initializeRange: function(element, range) {=0A= range.selectNodeContents(element);=0A= range.collapse(true);=0A= }=0A= },=0A= bottom: {=0A= adjacency: 'beforeEnd',=0A= insert: function(element, node) {=0A= element.appendChild(node);=0A= }=0A= },=0A= after: {=0A= adjacency: 'afterEnd',=0A= insert: function(element, node) {=0A= element.parentNode.insertBefore(node, element.nextSibling);=0A= },=0A= initializeRange: function(element, range) {=0A= range.setStartAfter(element);=0A= }=0A= },=0A= tags: {=0A= TABLE: ['', '
', 1],=0A= TBODY: ['', '
', 2],=0A= TR: ['', '
', 3],=0A= TD: ['
', '
', 4],=0A= SELECT: ['', 1]=0A= }=0A= };=0A= =0A= (function() {=0A= this.bottom.initializeRange =3D this.top.initializeRange;=0A= Object.extend(this.tags, {=0A= THEAD: this.tags.TBODY,=0A= TFOOT: this.tags.TBODY,=0A= TH: this.tags.TD=0A= });=0A= }).call(Element._insertionTranslations);=0A= =0A= Element.Methods.Simulated =3D {=0A= hasAttribute: function(element, attribute) {=0A= attribute =3D Element._attributeTranslations.has[attribute] || = attribute;=0A= var node =3D $(element).getAttributeNode(attribute);=0A= return node && node.specified;=0A= }=0A= };=0A= =0A= Element.Methods.ByTag =3D { };=0A= =0A= Object.extend(Element, Element.Methods);=0A= =0A= if (!Prototype.BrowserFeatures.ElementExtensions &&=0A= document.createElement('div').__proto__) {=0A= window.HTMLElement =3D { };=0A= window.HTMLElement.prototype =3D = document.createElement('div').__proto__;=0A= Prototype.BrowserFeatures.ElementExtensions =3D true;=0A= }=0A= =0A= Element.extend =3D (function() {=0A= if (Prototype.BrowserFeatures.SpecificElementExtensions)=0A= return Prototype.K;=0A= =0A= var Methods =3D { }, ByTag =3D Element.Methods.ByTag;=0A= =0A= var extend =3D Object.extend(function(element) {=0A= if (!element || element._extendedByPrototype ||=0A= element.nodeType !=3D 1 || element =3D=3D window) return element;=0A= =0A= var methods =3D Object.clone(Methods),=0A= tagName =3D element.tagName, property, value;=0A= =0A= // extend methods for specific tags=0A= if (ByTag[tagName]) Object.extend(methods, ByTag[tagName]);=0A= =0A= for (property in methods) {=0A= value =3D methods[property];=0A= if (Object.isFunction(value) && !(property in element))=0A= element[property] =3D value.methodize();=0A= }=0A= =0A= element._extendedByPrototype =3D Prototype.emptyFunction;=0A= return element;=0A= =0A= }, {=0A= refresh: function() {=0A= // extend methods for all tags (Safari doesn't need this)=0A= if (!Prototype.BrowserFeatures.ElementExtensions) {=0A= Object.extend(Methods, Element.Methods);=0A= Object.extend(Methods, Element.Methods.Simulated);=0A= }=0A= }=0A= });=0A= =0A= extend.refresh();=0A= return extend;=0A= })();=0A= =0A= Element.hasAttribute =3D function(element, attribute) {=0A= if (element.hasAttribute) return element.hasAttribute(attribute);=0A= return Element.Methods.Simulated.hasAttribute(element, attribute);=0A= };=0A= =0A= Element.addMethods =3D function(methods) {=0A= var F =3D Prototype.BrowserFeatures, T =3D Element.Methods.ByTag;=0A= =0A= if (!methods) {=0A= Object.extend(Form, Form.Methods);=0A= Object.extend(Form.Element, Form.Element.Methods);=0A= Object.extend(Element.Methods.ByTag, {=0A= "FORM": Object.clone(Form.Methods),=0A= "INPUT": Object.clone(Form.Element.Methods),=0A= "SELECT": Object.clone(Form.Element.Methods),=0A= "TEXTAREA": Object.clone(Form.Element.Methods)=0A= });=0A= }=0A= =0A= if (arguments.length =3D=3D 2) {=0A= var tagName =3D methods;=0A= methods =3D arguments[1];=0A= }=0A= =0A= if (!tagName) Object.extend(Element.Methods, methods || { });=0A= else {=0A= if (Object.isArray(tagName)) tagName.each(extend);=0A= else extend(tagName);=0A= }=0A= =0A= function extend(tagName) {=0A= tagName =3D tagName.toUpperCase();=0A= if (!Element.Methods.ByTag[tagName])=0A= Element.Methods.ByTag[tagName] =3D { };=0A= Object.extend(Element.Methods.ByTag[tagName], methods);=0A= }=0A= =0A= function copy(methods, destination, onlyIfAbsent) {=0A= onlyIfAbsent =3D onlyIfAbsent || false;=0A= for (var property in methods) {=0A= var value =3D methods[property];=0A= if (!Object.isFunction(value)) continue;=0A= if (!onlyIfAbsent || !(property in destination))=0A= destination[property] =3D value.methodize();=0A= }=0A= }=0A= =0A= function findDOMClass(tagName) {=0A= var klass;=0A= var trans =3D {=0A= "OPTGROUP": "OptGroup", "TEXTAREA": "TextArea", "P": "Paragraph",=0A= "FIELDSET": "FieldSet", "UL": "UList", "OL": "OList", "DL": = "DList",=0A= "DIR": "Directory", "H1": "Heading", "H2": "Heading", "H3": = "Heading",=0A= "H4": "Heading", "H5": "Heading", "H6": "Heading", "Q": "Quote",=0A= "INS": "Mod", "DEL": "Mod", "A": "Anchor", "IMG": "Image", = "CAPTION":=0A= "TableCaption", "COL": "TableCol", "COLGROUP": "TableCol", "THEAD":=0A= "TableSection", "TFOOT": "TableSection", "TBODY": "TableSection", = "TR":=0A= "TableRow", "TH": "TableCell", "TD": "TableCell", "FRAMESET":=0A= "FrameSet", "IFRAME": "IFrame"=0A= };=0A= if (trans[tagName]) klass =3D 'HTML' + trans[tagName] + 'Element';=0A= if (window[klass]) return window[klass];=0A= klass =3D 'HTML' + tagName + 'Element';=0A= if (window[klass]) return window[klass];=0A= klass =3D 'HTML' + tagName.capitalize() + 'Element';=0A= if (window[klass]) return window[klass];=0A= =0A= window[klass] =3D { };=0A= window[klass].prototype =3D = document.createElement(tagName).__proto__;=0A= return window[klass];=0A= }=0A= =0A= if (F.ElementExtensions) {=0A= copy(Element.Methods, HTMLElement.prototype);=0A= copy(Element.Methods.Simulated, HTMLElement.prototype, true);=0A= }=0A= =0A= if (F.SpecificElementExtensions) {=0A= for (var tag in Element.Methods.ByTag) {=0A= var klass =3D findDOMClass(tag);=0A= if (Object.isUndefined(klass)) continue;=0A= copy(T[tag], klass.prototype);=0A= }=0A= }=0A= =0A= Object.extend(Element, Element.Methods);=0A= delete Element.ByTag;=0A= =0A= if (Element.extend.refresh) Element.extend.refresh();=0A= Element.cache =3D { };=0A= };=0A= =0A= document.viewport =3D {=0A= getDimensions: function() {=0A= var dimensions =3D { };=0A= $w('width height').each(function(d) {=0A= var D =3D d.capitalize();=0A= dimensions[d] =3D self['inner' + D] ||=0A= (document.documentElement['client' + D] || document.body['client' = + D]);=0A= });=0A= return dimensions;=0A= },=0A= =0A= getWidth: function() {=0A= return this.getDimensions().width;=0A= },=0A= =0A= getHeight: function() {=0A= return this.getDimensions().height;=0A= },=0A= =0A= getScrollOffsets: function() {=0A= return Element._returnOffset(=0A= window.pageXOffset || document.documentElement.scrollLeft || = document.body.scrollLeft,=0A= window.pageYOffset || document.documentElement.scrollTop || = document.body.scrollTop);=0A= }=0A= };=0A= /* Portions of the Selector class are derived from Jack Slocum=E2=80=99s = DomQuery,=0A= * part of YUI-Ext version 0.40, distributed under the terms of an = MIT-style=0A= * license. Please see http://www.yui-ext.com/ for more information. */=0A= =0A= var Selector =3D Class.create({=0A= initialize: function(expression) {=0A= this.expression =3D expression.strip();=0A= this.compileMatcher();=0A= },=0A= =0A= compileMatcher: function() {=0A= // Selectors with namespaced attributes can't use the XPath version=0A= if (Prototype.BrowserFeatures.XPath && = !(/(\[[\w-]*?:|:checked)/).test(this.expression))=0A= return this.compileXPathMatcher();=0A= =0A= var e =3D this.expression, ps =3D Selector.patterns, h =3D = Selector.handlers,=0A= c =3D Selector.criteria, le, p, m;=0A= =0A= if (Selector._cache[e]) {=0A= this.matcher =3D Selector._cache[e];=0A= return;=0A= }=0A= =0A= this.matcher =3D ["this.matcher =3D function(root) {",=0A= "var r =3D root, h =3D Selector.handlers, c =3D = false, n;"];=0A= =0A= while (e && le !=3D e && (/\S/).test(e)) {=0A= le =3D e;=0A= for (var i in ps) {=0A= p =3D ps[i];=0A= if (m =3D e.match(p)) {=0A= this.matcher.push(Object.isFunction(c[i]) ? c[i](m) :=0A= new Template(c[i]).evaluate(m));=0A= e =3D e.replace(m[0], '');=0A= break;=0A= }=0A= }=0A= }=0A= =0A= this.matcher.push("return h.unique(n);\n}");=0A= eval(this.matcher.join('\n'));=0A= Selector._cache[this.expression] =3D this.matcher;=0A= },=0A= =0A= compileXPathMatcher: function() {=0A= var e =3D this.expression, ps =3D Selector.patterns,=0A= x =3D Selector.xpath, le, m;=0A= =0A= if (Selector._cache[e]) {=0A= this.xpath =3D Selector._cache[e]; return;=0A= }=0A= =0A= this.matcher =3D ['.//*'];=0A= while (e && le !=3D e && (/\S/).test(e)) {=0A= le =3D e;=0A= for (var i in ps) {=0A= if (m =3D e.match(ps[i])) {=0A= this.matcher.push(Object.isFunction(x[i]) ? x[i](m) :=0A= new Template(x[i]).evaluate(m));=0A= e =3D e.replace(m[0], '');=0A= break;=0A= }=0A= }=0A= }=0A= =0A= this.xpath =3D this.matcher.join('');=0A= Selector._cache[this.expression] =3D this.xpath;=0A= },=0A= =0A= findElements: function(root) {=0A= root =3D root || document;=0A= if (this.xpath) return document._getElementsByXPath(this.xpath, = root);=0A= return this.matcher(root);=0A= },=0A= =0A= match: function(element) {=0A= this.tokens =3D [];=0A= =0A= var e =3D this.expression, ps =3D Selector.patterns, as =3D = Selector.assertions;=0A= var le, p, m;=0A= =0A= while (e && le !=3D=3D e && (/\S/).test(e)) {=0A= le =3D e;=0A= for (var i in ps) {=0A= p =3D ps[i];=0A= if (m =3D e.match(p)) {=0A= // use the Selector.assertions methods unless the selector=0A= // is too complex.=0A= if (as[i]) {=0A= this.tokens.push([i, Object.clone(m)]);=0A= e =3D e.replace(m[0], '');=0A= } else {=0A= // reluctantly do a document-wide search=0A= // and look for a match in the array=0A= return this.findElements(document).include(element);=0A= }=0A= }=0A= }=0A= }=0A= =0A= var match =3D true, name, matches;=0A= for (var i =3D 0, token; token =3D this.tokens[i]; i++) {=0A= name =3D token[0], matches =3D token[1];=0A= if (!Selector.assertions[name](element, matches)) {=0A= match =3D false; break;=0A= }=0A= }=0A= =0A= return match;=0A= },=0A= =0A= toString: function() {=0A= return this.expression;=0A= },=0A= =0A= inspect: function() {=0A= return "#";=0A= }=0A= });=0A= =0A= Object.extend(Selector, {=0A= _cache: { },=0A= =0A= xpath: {=0A= descendant: "//*",=0A= child: "/*",=0A= adjacent: "/following-sibling::*[1]",=0A= laterSibling: '/following-sibling::*',=0A= tagName: function(m) {=0A= if (m[1] =3D=3D '*') return '';=0A= return "[local-name()=3D'" + m[1].toLowerCase() +=0A= "' or local-name()=3D'" + m[1].toUpperCase() + "']";=0A= },=0A= className: "[contains(concat(' ', @class, ' '), ' #{1} ')]",=0A= id: "[@id=3D'#{1}']",=0A= attrPresence: "[@#{1}]",=0A= attr: function(m) {=0A= m[3] =3D m[5] || m[6];=0A= return new Template(Selector.xpath.operators[m[2]]).evaluate(m);=0A= },=0A= pseudo: function(m) {=0A= var h =3D Selector.xpath.pseudos[m[1]];=0A= if (!h) return '';=0A= if (Object.isFunction(h)) return h(m);=0A= return new Template(Selector.xpath.pseudos[m[1]]).evaluate(m);=0A= },=0A= operators: {=0A= '=3D': "[@#{1}=3D'#{3}']",=0A= '!=3D': "[@#{1}!=3D'#{3}']",=0A= '^=3D': "[starts-with(@#{1}, '#{3}')]",=0A= '$=3D': "[substring(@#{1}, (string-length(@#{1}) - = string-length('#{3}') + 1))=3D'#{3}']",=0A= '*=3D': "[contains(@#{1}, '#{3}')]",=0A= '~=3D': "[contains(concat(' ', @#{1}, ' '), ' #{3} ')]",=0A= '|=3D': "[contains(concat('-', @#{1}, '-'), '-#{3}-')]"=0A= },=0A= pseudos: {=0A= 'first-child': '[not(preceding-sibling::*)]',=0A= 'last-child': '[not(following-sibling::*)]',=0A= 'only-child': '[not(preceding-sibling::* or = following-sibling::*)]',=0A= 'empty': "[count(*) =3D 0 and (count(text()) =3D 0 or = translate(text(), ' \t\r\n', '') =3D '')]",=0A= 'checked': "[@checked]",=0A= 'disabled': "[@disabled]",=0A= 'enabled': "[not(@disabled)]",=0A= 'not': function(m) {=0A= var e =3D m[6], p =3D Selector.patterns,=0A= x =3D Selector.xpath, le, m, v;=0A= =0A= var exclusion =3D [];=0A= while (e && le !=3D e && (/\S/).test(e)) {=0A= le =3D e;=0A= for (var i in p) {=0A= if (m =3D e.match(p[i])) {=0A= v =3D Object.isFunction(x[i]) ? x[i](m) : new = Template(x[i]).evaluate(m);=0A= exclusion.push("(" + v.substring(1, v.length - 1) + ")");=0A= e =3D e.replace(m[0], '');=0A= break;=0A= }=0A= }=0A= }=0A= return "[not(" + exclusion.join(" and ") + ")]";=0A= },=0A= 'nth-child': function(m) {=0A= return = Selector.xpath.pseudos.nth("(count(./preceding-sibling::*) + 1) ", m);=0A= },=0A= 'nth-last-child': function(m) {=0A= return = Selector.xpath.pseudos.nth("(count(./following-sibling::*) + 1) ", m);=0A= },=0A= 'nth-of-type': function(m) {=0A= return Selector.xpath.pseudos.nth("position() ", m);=0A= },=0A= 'nth-last-of-type': function(m) {=0A= return Selector.xpath.pseudos.nth("(last() + 1 - position()) ", = m);=0A= },=0A= 'first-of-type': function(m) {=0A= m[6] =3D "1"; return Selector.xpath.pseudos['nth-of-type'](m);=0A= },=0A= 'last-of-type': function(m) {=0A= m[6] =3D "1"; return = Selector.xpath.pseudos['nth-last-of-type'](m);=0A= },=0A= 'only-of-type': function(m) {=0A= var p =3D Selector.xpath.pseudos; return p['first-of-type'](m) + = p['last-of-type'](m);=0A= },=0A= nth: function(fragment, m) {=0A= var mm, formula =3D m[6], predicate;=0A= if (formula =3D=3D 'even') formula =3D '2n+0';=0A= if (formula =3D=3D 'odd') formula =3D '2n+1';=0A= if (mm =3D formula.match(/^(\d+)$/)) // digit only=0A= return '[' + fragment + "=3D " + mm[1] + ']';=0A= if (mm =3D formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b=0A= if (mm[1] =3D=3D "-") mm[1] =3D -1;=0A= var a =3D mm[1] ? Number(mm[1]) : 1;=0A= var b =3D mm[2] ? Number(mm[2]) : 0;=0A= predicate =3D "[((#{fragment} - #{b}) mod #{a} =3D 0) and " +=0A= "((#{fragment} - #{b}) div #{a} >=3D 0)]";=0A= return new Template(predicate).evaluate({=0A= fragment: fragment, a: a, b: b });=0A= }=0A= }=0A= }=0A= },=0A= =0A= criteria: {=0A= tagName: 'n =3D h.tagName(n, r, "#{1}", c); c =3D false;',=0A= className: 'n =3D h.className(n, r, "#{1}", c); c =3D false;',=0A= id: 'n =3D h.id(n, r, "#{1}", c); c =3D false;',=0A= attrPresence: 'n =3D h.attrPresence(n, r, "#{1}"); c =3D false;',=0A= attr: function(m) {=0A= m[3] =3D (m[5] || m[6]);=0A= return new Template('n =3D h.attr(n, r, "#{1}", "#{3}", "#{2}"); c = =3D false;').evaluate(m);=0A= },=0A= pseudo: function(m) {=0A= if (m[6]) m[6] =3D m[6].replace(/"/g, '\\"');=0A= return new Template('n =3D h.pseudo(n, "#{1}", "#{6}", r, c); c = =3D false;').evaluate(m);=0A= },=0A= descendant: 'c =3D "descendant";',=0A= child: 'c =3D "child";',=0A= adjacent: 'c =3D "adjacent";',=0A= laterSibling: 'c =3D "laterSibling";'=0A= },=0A= =0A= patterns: {=0A= // combinators must be listed first=0A= // (and descendant needs to be last combinator)=0A= laterSibling: /^\s*~\s*/,=0A= child: /^\s*>\s*/,=0A= adjacent: /^\s*\+\s*/,=0A= descendant: /^\s/,=0A= =0A= // selectors follow=0A= tagName: /^\s*(\*|[\w\-]+)(\b|$)?/,=0A= id: /^#([\w\-\*]+)(\b|$)/,=0A= className: /^\.([\w\-\*]+)(\b|$)/,=0A= pseudo: = /^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis= )abled|not)(\((.*?)\))?(\b|$|(?=3D\s)|(?=3D:))/,=0A= attrPresence: /^\[([\w]+)\]/,=0A= attr: = /\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=3D)\s*((['"])([^\4]*?)\4|([^'"][^= \]]*?)))?\]/=0A= },=0A= =0A= // for Selector.match and Element#match=0A= assertions: {=0A= tagName: function(element, matches) {=0A= return matches[1].toUpperCase() =3D=3D = element.tagName.toUpperCase();=0A= },=0A= =0A= className: function(element, matches) {=0A= return Element.hasClassName(element, matches[1]);=0A= },=0A= =0A= id: function(element, matches) {=0A= return element.id =3D=3D=3D matches[1];=0A= },=0A= =0A= attrPresence: function(element, matches) {=0A= return Element.hasAttribute(element, matches[1]);=0A= },=0A= =0A= attr: function(element, matches) {=0A= var nodeValue =3D Element.readAttribute(element, matches[1]);=0A= return Selector.operators[matches[2]](nodeValue, matches[3]);=0A= }=0A= },=0A= =0A= handlers: {=0A= // UTILITY FUNCTIONS=0A= // joins two collections=0A= concat: function(a, b) {=0A= for (var i =3D 0, node; node =3D b[i]; i++)=0A= a.push(node);=0A= return a;=0A= },=0A= =0A= // marks an array of nodes for counting=0A= mark: function(nodes) {=0A= for (var i =3D 0, node; node =3D nodes[i]; i++)=0A= node._counted =3D true;=0A= return nodes;=0A= },=0A= =0A= unmark: function(nodes) {=0A= for (var i =3D 0, node; node =3D nodes[i]; i++)=0A= node._counted =3D undefined;=0A= return nodes;=0A= },=0A= =0A= // mark each child node with its position (for nth calls)=0A= // "ofType" flag indicates whether we're indexing for nth-of-type=0A= // rather than nth-child=0A= index: function(parentNode, reverse, ofType) {=0A= parentNode._counted =3D true;=0A= if (reverse) {=0A= for (var nodes =3D parentNode.childNodes, i =3D nodes.length - = 1, j =3D 1; i >=3D 0; i--) {=0A= var node =3D nodes[i];=0A= if (node.nodeType =3D=3D 1 && (!ofType || node._counted)) = node.nodeIndex =3D j++;=0A= }=0A= } else {=0A= for (var i =3D 0, j =3D 1, nodes =3D parentNode.childNodes; node = =3D nodes[i]; i++)=0A= if (node.nodeType =3D=3D 1 && (!ofType || node._counted)) = node.nodeIndex =3D j++;=0A= }=0A= },=0A= =0A= // filters out duplicates and extends all nodes=0A= unique: function(nodes) {=0A= if (nodes.length =3D=3D 0) return nodes;=0A= var results =3D [], n;=0A= for (var i =3D 0, l =3D nodes.length; i < l; i++)=0A= if (!(n =3D nodes[i])._counted) {=0A= n._counted =3D true;=0A= results.push(Element.extend(n));=0A= }=0A= return Selector.handlers.unmark(results);=0A= },=0A= =0A= // COMBINATOR FUNCTIONS=0A= descendant: function(nodes) {=0A= var h =3D Selector.handlers;=0A= for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++)=0A= h.concat(results, node.getElementsByTagName('*'));=0A= return results;=0A= },=0A= =0A= child: function(nodes) {=0A= var h =3D Selector.handlers;=0A= for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++) {=0A= for (var j =3D 0, children =3D [], child; child =3D = node.childNodes[j]; j++)=0A= if (child.nodeType =3D=3D 1 && child.tagName !=3D '!') = results.push(child);=0A= }=0A= return results;=0A= },=0A= =0A= adjacent: function(nodes) {=0A= for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++) {=0A= var next =3D this.nextElementSibling(node);=0A= if (next) results.push(next);=0A= }=0A= return results;=0A= },=0A= =0A= laterSibling: function(nodes) {=0A= var h =3D Selector.handlers;=0A= for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++)=0A= h.concat(results, Element.nextSiblings(node));=0A= return results;=0A= },=0A= =0A= nextElementSibling: function(node) {=0A= while (node =3D node.nextSibling)=0A= if (node.nodeType =3D=3D 1) return node;=0A= return null;=0A= },=0A= =0A= previousElementSibling: function(node) {=0A= while (node =3D node.previousSibling)=0A= if (node.nodeType =3D=3D 1) return node;=0A= return null;=0A= },=0A= =0A= // TOKEN FUNCTIONS=0A= tagName: function(nodes, root, tagName, combinator) {=0A= tagName =3D tagName.toUpperCase();=0A= var results =3D [], h =3D Selector.handlers;=0A= if (nodes) {=0A= if (combinator) {=0A= // fastlane for ordinary descendant combinators=0A= if (combinator =3D=3D "descendant") {=0A= for (var i =3D 0, node; node =3D nodes[i]; i++)=0A= h.concat(results, node.getElementsByTagName(tagName));=0A= return results;=0A= } else nodes =3D this[combinator](nodes);=0A= if (tagName =3D=3D "*") return nodes;=0A= }=0A= for (var i =3D 0, node; node =3D nodes[i]; i++)=0A= if (node.tagName.toUpperCase() =3D=3D tagName) = results.push(node);=0A= return results;=0A= } else return root.getElementsByTagName(tagName);=0A= },=0A= =0A= id: function(nodes, root, id, combinator) {=0A= var targetNode =3D $(id), h =3D Selector.handlers;=0A= if (!targetNode) return [];=0A= if (!nodes && root =3D=3D document) return [targetNode];=0A= if (nodes) {=0A= if (combinator) {=0A= if (combinator =3D=3D 'child') {=0A= for (var i =3D 0, node; node =3D nodes[i]; i++)=0A= if (targetNode.parentNode =3D=3D node) return [targetNode];=0A= } else if (combinator =3D=3D 'descendant') {=0A= for (var i =3D 0, node; node =3D nodes[i]; i++)=0A= if (Element.descendantOf(targetNode, node)) return = [targetNode];=0A= } else if (combinator =3D=3D 'adjacent') {=0A= for (var i =3D 0, node; node =3D nodes[i]; i++)=0A= if (Selector.handlers.previousElementSibling(targetNode) = =3D=3D node)=0A= return [targetNode];=0A= } else nodes =3D h[combinator](nodes);=0A= }=0A= for (var i =3D 0, node; node =3D nodes[i]; i++)=0A= if (node =3D=3D targetNode) return [targetNode];=0A= return [];=0A= }=0A= return (targetNode && Element.descendantOf(targetNode, root)) ? = [targetNode] : [];=0A= },=0A= =0A= className: function(nodes, root, className, combinator) {=0A= if (nodes && combinator) nodes =3D this[combinator](nodes);=0A= return Selector.handlers.byClassName(nodes, root, className);=0A= },=0A= =0A= byClassName: function(nodes, root, className) {=0A= if (!nodes) nodes =3D Selector.handlers.descendant([root]);=0A= var needle =3D ' ' + className + ' ';=0A= for (var i =3D 0, results =3D [], node, nodeClassName; node =3D = nodes[i]; i++) {=0A= nodeClassName =3D node.className;=0A= if (nodeClassName.length =3D=3D 0) continue;=0A= if (nodeClassName =3D=3D className || (' ' + nodeClassName + ' = ').include(needle))=0A= results.push(node);=0A= }=0A= return results;=0A= },=0A= =0A= attrPresence: function(nodes, root, attr) {=0A= if (!nodes) nodes =3D root.getElementsByTagName("*");=0A= var results =3D [];=0A= for (var i =3D 0, node; node =3D nodes[i]; i++)=0A= if (Element.hasAttribute(node, attr)) results.push(node);=0A= return results;=0A= },=0A= =0A= attr: function(nodes, root, attr, value, operator) {=0A= if (!nodes) nodes =3D root.getElementsByTagName("*");=0A= var handler =3D Selector.operators[operator], results =3D [];=0A= for (var i =3D 0, node; node =3D nodes[i]; i++) {=0A= var nodeValue =3D Element.readAttribute(node, attr);=0A= if (nodeValue =3D=3D=3D null) continue;=0A= if (handler(nodeValue, value)) results.push(node);=0A= }=0A= return results;=0A= },=0A= =0A= pseudo: function(nodes, name, value, root, combinator) {=0A= if (nodes && combinator) nodes =3D this[combinator](nodes);=0A= if (!nodes) nodes =3D root.getElementsByTagName("*");=0A= return Selector.pseudos[name](nodes, value, root);=0A= }=0A= },=0A= =0A= pseudos: {=0A= 'first-child': function(nodes, value, root) {=0A= for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++) {=0A= if (Selector.handlers.previousElementSibling(node)) continue;=0A= results.push(node);=0A= }=0A= return results;=0A= },=0A= 'last-child': function(nodes, value, root) {=0A= for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++) {=0A= if (Selector.handlers.nextElementSibling(node)) continue;=0A= results.push(node);=0A= }=0A= return results;=0A= },=0A= 'only-child': function(nodes, value, root) {=0A= var h =3D Selector.handlers;=0A= for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++)=0A= if (!h.previousElementSibling(node) && = !h.nextElementSibling(node))=0A= results.push(node);=0A= return results;=0A= },=0A= 'nth-child': function(nodes, formula, root) {=0A= return Selector.pseudos.nth(nodes, formula, root);=0A= },=0A= 'nth-last-child': function(nodes, formula, root) {=0A= return Selector.pseudos.nth(nodes, formula, root, true);=0A= },=0A= 'nth-of-type': function(nodes, formula, root) {=0A= return Selector.pseudos.nth(nodes, formula, root, false, true);=0A= },=0A= 'nth-last-of-type': function(nodes, formula, root) {=0A= return Selector.pseudos.nth(nodes, formula, root, true, true);=0A= },=0A= 'first-of-type': function(nodes, formula, root) {=0A= return Selector.pseudos.nth(nodes, "1", root, false, true);=0A= },=0A= 'last-of-type': function(nodes, formula, root) {=0A= return Selector.pseudos.nth(nodes, "1", root, true, true);=0A= },=0A= 'only-of-type': function(nodes, formula, root) {=0A= var p =3D Selector.pseudos;=0A= return p['last-of-type'](p['first-of-type'](nodes, formula, root), = formula, root);=0A= },=0A= =0A= // handles the an+b logic=0A= getIndices: function(a, b, total) {=0A= if (a =3D=3D 0) return b > 0 ? [b] : [];=0A= return $R(1, total).inject([], function(memo, i) {=0A= if (0 =3D=3D (i - b) % a && (i - b) / a >=3D 0) memo.push(i);=0A= return memo;=0A= });=0A= },=0A= =0A= // handles nth(-last)-child, nth(-last)-of-type, and = (first|last)-of-type=0A= nth: function(nodes, formula, root, reverse, ofType) {=0A= if (nodes.length =3D=3D 0) return [];=0A= if (formula =3D=3D 'even') formula =3D '2n+0';=0A= if (formula =3D=3D 'odd') formula =3D '2n+1';=0A= var h =3D Selector.handlers, results =3D [], indexed =3D [], m;=0A= h.mark(nodes);=0A= for (var i =3D 0, node; node =3D nodes[i]; i++) {=0A= if (!node.parentNode._counted) {=0A= h.index(node.parentNode, reverse, ofType);=0A= indexed.push(node.parentNode);=0A= }=0A= }=0A= if (formula.match(/^\d+$/)) { // just a number=0A= formula =3D Number(formula);=0A= for (var i =3D 0, node; node =3D nodes[i]; i++)=0A= if (node.nodeIndex =3D=3D formula) results.push(node);=0A= } else if (m =3D formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // = an+b=0A= if (m[1] =3D=3D "-") m[1] =3D -1;=0A= var a =3D m[1] ? Number(m[1]) : 1;=0A= var b =3D m[2] ? Number(m[2]) : 0;=0A= var indices =3D Selector.pseudos.getIndices(a, b, nodes.length);=0A= for (var i =3D 0, node, l =3D indices.length; node =3D nodes[i]; = i++) {=0A= for (var j =3D 0; j < l; j++)=0A= if (node.nodeIndex =3D=3D indices[j]) results.push(node);=0A= }=0A= }=0A= h.unmark(nodes);=0A= h.unmark(indexed);=0A= return results;=0A= },=0A= =0A= 'empty': function(nodes, value, root) {=0A= for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++) {=0A= // IE treats comments as element nodes=0A= if (node.tagName =3D=3D '!' || (node.firstChild && = !node.innerHTML.match(/^\s*$/))) continue;=0A= results.push(node);=0A= }=0A= return results;=0A= },=0A= =0A= 'not': function(nodes, selector, root) {=0A= var h =3D Selector.handlers, selectorType, m;=0A= var exclusions =3D new Selector(selector).findElements(root);=0A= h.mark(exclusions);=0A= for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++)=0A= if (!node._counted) results.push(node);=0A= h.unmark(exclusions);=0A= return results;=0A= },=0A= =0A= 'enabled': function(nodes, value, root) {=0A= for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++)=0A= if (!node.disabled) results.push(node);=0A= return results;=0A= },=0A= =0A= 'disabled': function(nodes, value, root) {=0A= for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++)=0A= if (node.disabled) results.push(node);=0A= return results;=0A= },=0A= =0A= 'checked': function(nodes, value, root) {=0A= for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++)=0A= if (node.checked) results.push(node);=0A= return results;=0A= }=0A= },=0A= =0A= operators: {=0A= '=3D': function(nv, v) { return nv =3D=3D v; },=0A= '!=3D': function(nv, v) { return nv !=3D v; },=0A= '^=3D': function(nv, v) { return nv.startsWith(v); },=0A= '$=3D': function(nv, v) { return nv.endsWith(v); },=0A= '*=3D': function(nv, v) { return nv.include(v); },=0A= '~=3D': function(nv, v) { return (' ' + nv + ' ').include(' ' + v + = ' '); },=0A= '|=3D': function(nv, v) { return ('-' + nv.toUpperCase() + = '-').include('-' + v.toUpperCase() + '-'); }=0A= },=0A= =0A= matchElements: function(elements, expression) {=0A= var matches =3D new Selector(expression).findElements(), h =3D = Selector.handlers;=0A= h.mark(matches);=0A= for (var i =3D 0, results =3D [], element; element =3D elements[i]; = i++)=0A= if (element._counted) results.push(element);=0A= h.unmark(matches);=0A= return results;=0A= },=0A= =0A= findElement: function(elements, expression, index) {=0A= if (Object.isNumber(expression)) {=0A= index =3D expression; expression =3D false;=0A= }=0A= return Selector.matchElements(elements, expression || '*')[index || = 0];=0A= },=0A= =0A= findChildElements: function(element, expressions) {=0A= var exprs =3D expressions.join(','), expressions =3D [];=0A= exprs.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/, function(m) {=0A= expressions.push(m[1].strip());=0A= });=0A= var results =3D [], h =3D Selector.handlers;=0A= for (var i =3D 0, l =3D expressions.length, selector; i < l; i++) {=0A= selector =3D new Selector(expressions[i].strip());=0A= h.concat(results, selector.findElements(element));=0A= }=0A= return (l > 1) ? h.unique(results) : results;=0A= }=0A= });=0A= =0A= function $$() {=0A= return Selector.findChildElements(document, $A(arguments));=0A= }=0A= var Form =3D {=0A= reset: function(form) {=0A= $(form).reset();=0A= return form;=0A= },=0A= =0A= serializeElements: function(elements, options) {=0A= if (typeof options !=3D 'object') options =3D { hash: !!options };=0A= else if (options.hash =3D=3D=3D undefined) options.hash =3D true;=0A= var key, value, submitted =3D false, submit =3D options.submit;=0A= =0A= var data =3D elements.inject({ }, function(result, element) {=0A= if (!element.disabled && element.name) {=0A= key =3D element.name; value =3D $(element).getValue();=0A= if (value !=3D null && (element.type !=3D 'submit' || = (!submitted &&=0A= submit !=3D=3D false && (!submit || key =3D=3D submit) && = (submitted =3D true)))) {=0A= if (key in result) {=0A= // a key is already present; construct an array of values=0A= if (!Object.isArray(result[key])) result[key] =3D = [result[key]];=0A= result[key].push(value);=0A= }=0A= else result[key] =3D value;=0A= }=0A= }=0A= return result;=0A= });=0A= =0A= return options.hash ? data : Object.toQueryString(data);=0A= }=0A= };=0A= =0A= Form.Methods =3D {=0A= serialize: function(form, options) {=0A= return Form.serializeElements(Form.getElements(form), options);=0A= },=0A= =0A= getElements: function(form) {=0A= return $A($(form).getElementsByTagName('*')).inject([],=0A= function(elements, child) {=0A= if (Form.Element.Serializers[child.tagName.toLowerCase()])=0A= elements.push(Element.extend(child));=0A= return elements;=0A= }=0A= );=0A= },=0A= =0A= getInputs: function(form, typeName, name) {=0A= form =3D $(form);=0A= var inputs =3D form.getElementsByTagName('input');=0A= =0A= if (!typeName && !name) return $A(inputs).map(Element.extend);=0A= =0A= for (var i =3D 0, matchingInputs =3D [], length =3D inputs.length; i = < length; i++) {=0A= var input =3D inputs[i];=0A= if ((typeName && input.type !=3D typeName) || (name && input.name = !=3D name))=0A= continue;=0A= matchingInputs.push(Element.extend(input));=0A= }=0A= =0A= return matchingInputs;=0A= },=0A= =0A= disable: function(form) {=0A= form =3D $(form);=0A= Form.getElements(form).invoke('disable');=0A= return form;=0A= },=0A= =0A= enable: function(form) {=0A= form =3D $(form);=0A= Form.getElements(form).invoke('enable');=0A= return form;=0A= },=0A= =0A= findFirstElement: function(form) {=0A= var elements =3D $(form).getElements().findAll(function(element) {=0A= return 'hidden' !=3D element.type && !element.disabled;=0A= });=0A= var firstByIndex =3D elements.findAll(function(element) {=0A= return element.hasAttribute('tabIndex') && element.tabIndex >=3D 0;=0A= }).sortBy(function(element) { return element.tabIndex }).first();=0A= =0A= return firstByIndex ? firstByIndex : elements.find(function(element) = {=0A= return ['input', 'select', = 'textarea'].include(element.tagName.toLowerCase());=0A= });=0A= },=0A= =0A= focusFirstElement: function(form) {=0A= form =3D $(form);=0A= form.findFirstElement().activate();=0A= return form;=0A= },=0A= =0A= request: function(form, options) {=0A= form =3D $(form), options =3D Object.clone(options || { });=0A= =0A= var params =3D options.parameters, action =3D = form.readAttribute('action') || '';=0A= if (action.blank()) action =3D window.location.href;=0A= options.parameters =3D form.serialize(true);=0A= =0A= if (params) {=0A= if (Object.isString(params)) params =3D params.toQueryParams();=0A= Object.extend(options.parameters, params);=0A= }=0A= =0A= if (form.hasAttribute('method') && !options.method)=0A= options.method =3D form.method;=0A= =0A= return new Ajax.Request(action, options);=0A= }=0A= };=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= Form.Element =3D {=0A= focus: function(element) {=0A= $(element).focus();=0A= return element;=0A= },=0A= =0A= select: function(element) {=0A= $(element).select();=0A= return element;=0A= }=0A= };=0A= =0A= Form.Element.Methods =3D {=0A= serialize: function(element) {=0A= element =3D $(element);=0A= if (!element.disabled && element.name) {=0A= var value =3D element.getValue();=0A= if (value !=3D undefined) {=0A= var pair =3D { };=0A= pair[element.name] =3D value;=0A= return Object.toQueryString(pair);=0A= }=0A= }=0A= return '';=0A= },=0A= =0A= getValue: function(element) {=0A= element =3D $(element);=0A= var method =3D element.tagName.toLowerCase();=0A= return Form.Element.Serializers[method](element);=0A= },=0A= =0A= setValue: function(element, value) {=0A= element =3D $(element);=0A= var method =3D element.tagName.toLowerCase();=0A= Form.Element.Serializers[method](element, value);=0A= return element;=0A= },=0A= =0A= clear: function(element) {=0A= $(element).value =3D '';=0A= return element;=0A= },=0A= =0A= present: function(element) {=0A= return $(element).value !=3D '';=0A= },=0A= =0A= activate: function(element) {=0A= element =3D $(element);=0A= try {=0A= element.focus();=0A= if (element.select && (element.tagName.toLowerCase() !=3D 'input' = ||=0A= !['button', 'reset', 'submit'].include(element.type)))=0A= element.select();=0A= } catch (e) { }=0A= return element;=0A= },=0A= =0A= disable: function(element) {=0A= element =3D $(element);=0A= element.blur();=0A= element.disabled =3D true;=0A= return element;=0A= },=0A= =0A= enable: function(element) {=0A= element =3D $(element);=0A= element.disabled =3D false;=0A= return element;=0A= }=0A= };=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= var Field =3D Form.Element;=0A= var $F =3D Form.Element.Methods.getValue;=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= Form.Element.Serializers =3D {=0A= input: function(element, value) {=0A= switch (element.type.toLowerCase()) {=0A= case 'checkbox':=0A= case 'radio':=0A= return Form.Element.Serializers.inputSelector(element, value);=0A= default:=0A= return Form.Element.Serializers.textarea(element, value);=0A= }=0A= },=0A= =0A= inputSelector: function(element, value) {=0A= if (value =3D=3D=3D undefined) return element.checked ? = element.value : null;=0A= else element.checked =3D !!value;=0A= },=0A= =0A= textarea: function(element, value) {=0A= if (value =3D=3D=3D undefined) return element.value;=0A= else element.value =3D value;=0A= },=0A= =0A= select: function(element, index) {=0A= if (index =3D=3D=3D undefined)=0A= return this[element.type =3D=3D 'select-one' ?=0A= 'selectOne' : 'selectMany'](element);=0A= else {=0A= var opt, value, single =3D !Object.isArray(index);=0A= for (var i =3D 0, length =3D element.length; i < length; i++) {=0A= opt =3D element.options[i];=0A= value =3D this.optionValue(opt);=0A= if (single) {=0A= if (value =3D=3D index) {=0A= opt.selected =3D true;=0A= return;=0A= }=0A= }=0A= else opt.selected =3D index.include(value);=0A= }=0A= }=0A= },=0A= =0A= selectOne: function(element) {=0A= var index =3D element.selectedIndex;=0A= return index >=3D 0 ? this.optionValue(element.options[index]) : = null;=0A= },=0A= =0A= selectMany: function(element) {=0A= var values, length =3D element.length;=0A= if (!length) return null;=0A= =0A= for (var i =3D 0, values =3D []; i < length; i++) {=0A= var opt =3D element.options[i];=0A= if (opt.selected) values.push(this.optionValue(opt));=0A= }=0A= return values;=0A= },=0A= =0A= optionValue: function(opt) {=0A= // extend element because hasAttribute may not be native=0A= return Element.extend(opt).hasAttribute('value') ? opt.value : = opt.text;=0A= }=0A= };=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= Abstract.TimedObserver =3D Class.create(PeriodicalExecuter, {=0A= initialize: function($super, element, frequency, callback) {=0A= $super(callback, frequency);=0A= this.element =3D $(element);=0A= this.lastValue =3D this.getValue();=0A= },=0A= =0A= execute: function() {=0A= var value =3D this.getValue();=0A= if (Object.isString(this.lastValue) && Object.isString(value) ?=0A= this.lastValue !=3D value : String(this.lastValue) !=3D = String(value)) {=0A= this.callback(this.element, value);=0A= this.lastValue =3D value;=0A= }=0A= }=0A= });=0A= =0A= Form.Element.Observer =3D Class.create(Abstract.TimedObserver, {=0A= getValue: function() {=0A= return Form.Element.getValue(this.element);=0A= }=0A= });=0A= =0A= Form.Observer =3D Class.create(Abstract.TimedObserver, {=0A= getValue: function() {=0A= return Form.serialize(this.element);=0A= }=0A= });=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= Abstract.EventObserver =3D Class.create({=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= Form.getElements(this.element).each(this.registerCallback, this);=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= default:=0A= Event.observe(element, 'change', = this.onElementEvent.bind(this));=0A= break;=0A= }=0A= }=0A= }=0A= });=0A= =0A= Form.Element.EventObserver =3D Class.create(Abstract.EventObserver, {=0A= getValue: function() {=0A= return Form.Element.getValue(this.element);=0A= }=0A= });=0A= =0A= Form.EventObserver =3D Class.create(Abstract.EventObserver, {=0A= getValue: function() {=0A= return Form.serialize(this.element);=0A= }=0A= });=0A= if (!window.Event) var Event =3D { };=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= KEY_HOME: 36,=0A= KEY_END: 35,=0A= KEY_PAGEUP: 33,=0A= KEY_PAGEDOWN: 34,=0A= KEY_INSERT: 45,=0A= =0A= cache: { },=0A= =0A= relatedTarget: function(event) {=0A= var element;=0A= switch(event.type) {=0A= case 'mouseover': element =3D event.fromElement; break;=0A= case 'mouseout': element =3D event.toElement; break;=0A= default: return null;=0A= }=0A= return Element.extend(element);=0A= }=0A= });=0A= =0A= Event.Methods =3D (function() {=0A= var isButton;=0A= =0A= if (Prototype.Browser.IE) {=0A= var buttonMap =3D { 0: 1, 1: 4, 2: 2 };=0A= isButton =3D function(event, code) {=0A= return event.button =3D=3D buttonMap[code];=0A= };=0A= =0A= } else if (Prototype.Browser.WebKit) {=0A= isButton =3D function(event, code) {=0A= switch (code) {=0A= case 0: return event.which =3D=3D 1 && !event.metaKey;=0A= case 1: return event.which =3D=3D 1 && event.metaKey;=0A= default: return false;=0A= }=0A= };=0A= =0A= } else {=0A= isButton =3D function(event, code) {=0A= return event.which ? (event.which =3D=3D=3D code + 1) : = (event.button =3D=3D=3D code);=0A= };=0A= }=0A= =0A= return {=0A= isLeftClick: function(event) { return isButton(event, 0) },=0A= isMiddleClick: function(event) { return isButton(event, 1) },=0A= isRightClick: function(event) { return isButton(event, 2) },=0A= =0A= element: function(event) {=0A= var node =3D Event.extend(event).target;=0A= return Element.extend(node.nodeType =3D=3D Node.TEXT_NODE ? = node.parentNode : node);=0A= },=0A= =0A= findElement: function(event, expression) {=0A= var element =3D Event.element(event);=0A= return element.match(expression) ? element : = element.up(expression);=0A= },=0A= =0A= pointer: function(event) {=0A= return {=0A= x: event.pageX || (event.clientX +=0A= (document.documentElement.scrollLeft || = document.body.scrollLeft)),=0A= y: event.pageY || (event.clientY +=0A= (document.documentElement.scrollTop || = document.body.scrollTop))=0A= };=0A= },=0A= =0A= pointerX: function(event) { return Event.pointer(event).x },=0A= pointerY: function(event) { return Event.pointer(event).y },=0A= =0A= stop: function(event) {=0A= Event.extend(event);=0A= event.preventDefault();=0A= event.stopPropagation();=0A= event.stopped =3D true;=0A= }=0A= };=0A= })();=0A= =0A= Event.extend =3D (function() {=0A= var methods =3D Object.keys(Event.Methods).inject({ }, function(m, = name) {=0A= m[name] =3D Event.Methods[name].methodize();=0A= return m;=0A= });=0A= =0A= if (Prototype.Browser.IE) {=0A= Object.extend(methods, {=0A= stopPropagation: function() { this.cancelBubble =3D true },=0A= preventDefault: function() { this.returnValue =3D false },=0A= inspect: function() { return "[object Event]" }=0A= });=0A= =0A= return function(event) {=0A= if (!event) return false;=0A= if (event._extendedByPrototype) return event;=0A= =0A= event._extendedByPrototype =3D Prototype.emptyFunction;=0A= var pointer =3D Event.pointer(event);=0A= Object.extend(event, {=0A= target: event.srcElement,=0A= relatedTarget: Event.relatedTarget(event),=0A= pageX: pointer.x,=0A= pageY: pointer.y=0A= });=0A= return Object.extend(event, methods);=0A= };=0A= =0A= } else {=0A= Event.prototype =3D Event.prototype || = document.createEvent("HTMLEvents").__proto__;=0A= Object.extend(Event.prototype, methods);=0A= return Prototype.K;=0A= }=0A= })();=0A= =0A= Object.extend(Event, (function() {=0A= var cache =3D Event.cache;=0A= =0A= function getEventID(element) {=0A= if (element._eventID) return element._eventID;=0A= arguments.callee.id =3D arguments.callee.id || 1;=0A= return element._eventID =3D ++arguments.callee.id;=0A= }=0A= =0A= function getDOMEventName(eventName) {=0A= if (eventName && eventName.include(':')) return "dataavailable";=0A= return eventName;=0A= }=0A= =0A= function getCacheForID(id) {=0A= return cache[id] =3D cache[id] || { };=0A= }=0A= =0A= function getWrappersForEventName(id, eventName) {=0A= var c =3D getCacheForID(id);=0A= return c[eventName] =3D c[eventName] || [];=0A= }=0A= =0A= function createWrapper(element, eventName, handler) {=0A= var id =3D getEventID(element);=0A= var c =3D getWrappersForEventName(id, eventName);=0A= if (c.pluck("handler").include(handler)) return false;=0A= =0A= var wrapper =3D function(event) {=0A= if (!Event || !Event.extend ||=0A= (event.eventName && event.eventName !=3D eventName))=0A= return false;=0A= =0A= Event.extend(event);=0A= handler.call(element, event)=0A= };=0A= =0A= wrapper.handler =3D handler;=0A= c.push(wrapper);=0A= return wrapper;=0A= }=0A= =0A= function findWrapper(id, eventName, handler) {=0A= var c =3D getWrappersForEventName(id, eventName);=0A= return c.find(function(wrapper) { return wrapper.handler =3D=3D = handler });=0A= }=0A= =0A= function destroyWrapper(id, eventName, handler) {=0A= var c =3D getCacheForID(id);=0A= if (!c[eventName]) return false;=0A= c[eventName] =3D c[eventName].without(findWrapper(id, eventName, = handler));=0A= }=0A= =0A= function destroyCache() {=0A= for (var id in cache)=0A= for (var eventName in cache[id])=0A= cache[id][eventName] =3D null;=0A= }=0A= =0A= if (window.attachEvent) {=0A= window.attachEvent("onunload", destroyCache);=0A= }=0A= =0A= return {=0A= observe: function(element, eventName, handler) {=0A= element =3D $(element);=0A= var name =3D getDOMEventName(eventName);=0A= =0A= var wrapper =3D createWrapper(element, eventName, handler);=0A= if (!wrapper) return element;=0A= =0A= if (element.addEventListener) {=0A= element.addEventListener(name, wrapper, false);=0A= } else {=0A= element.attachEvent("on" + name, wrapper);=0A= }=0A= =0A= return element;=0A= },=0A= =0A= stopObserving: function(element, eventName, handler) {=0A= element =3D $(element);=0A= var id =3D getEventID(element), name =3D = getDOMEventName(eventName);=0A= =0A= if (!handler && eventName) {=0A= getWrappersForEventName(id, eventName).each(function(wrapper) {=0A= element.stopObserving(eventName, wrapper.handler);=0A= });=0A= return element;=0A= =0A= } else if (!eventName) {=0A= Object.keys(getCacheForID(id)).each(function(eventName) {=0A= element.stopObserving(eventName);=0A= });=0A= return element;=0A= }=0A= =0A= var wrapper =3D findWrapper(id, eventName, handler);=0A= if (!wrapper) return element;=0A= =0A= if (element.removeEventListener) {=0A= element.removeEventListener(name, wrapper, false);=0A= } else {=0A= element.detachEvent("on" + name, wrapper);=0A= }=0A= =0A= destroyWrapper(id, eventName, handler);=0A= =0A= return element;=0A= },=0A= =0A= fire: function(element, eventName, memo) {=0A= element =3D $(element);=0A= if (element =3D=3D document && document.createEvent && = !element.dispatchEvent)=0A= element =3D document.documentElement;=0A= =0A= if (document.createEvent) {=0A= var event =3D document.createEvent("HTMLEvents");=0A= event.initEvent("dataavailable", true, true);=0A= } else {=0A= var event =3D document.createEventObject();=0A= event.eventType =3D "ondataavailable";=0A= }=0A= =0A= event.eventName =3D eventName;=0A= event.memo =3D memo || { };=0A= =0A= if (document.createEvent) {=0A= element.dispatchEvent(event);=0A= } else {=0A= element.fireEvent(event.eventType, event);=0A= }=0A= =0A= return event;=0A= }=0A= };=0A= })());=0A= =0A= Object.extend(Event, Event.Methods);=0A= =0A= Element.addMethods({=0A= fire: Event.fire,=0A= observe: Event.observe,=0A= stopObserving: Event.stopObserving=0A= });=0A= =0A= Object.extend(document, {=0A= fire: Element.Methods.fire.methodize(),=0A= observe: Element.Methods.observe.methodize(),=0A= stopObserving: Element.Methods.stopObserving.methodize()=0A= });=0A= =0A= (function() {=0A= /* Support for the DOMContentLoaded event is based on work by Dan Webb,=0A= Matthias Miller, Dean Edwards and John Resig. */=0A= =0A= var timer, fired =3D false;=0A= =0A= function fireContentLoadedEvent() {=0A= if (fired) return;=0A= if (timer) window.clearInterval(timer);=0A= document.fire("dom:loaded");=0A= fired =3D true;=0A= }=0A= =0A= if (document.addEventListener) {=0A= if (Prototype.Browser.WebKit) {=0A= timer =3D window.setInterval(function() {=0A= if (/loaded|complete/.test(document.readyState))=0A= fireContentLoadedEvent();=0A= }, 0);=0A= =0A= Event.observe(window, "load", fireContentLoadedEvent);=0A= =0A= } else {=0A= document.addEventListener("DOMContentLoaded",=0A= fireContentLoadedEvent, false);=0A= }=0A= =0A= } else {=0A= document.write("