bplist00_WebMainResource_WebSubresources ^WebResourceURL_WebResourceMIMEType_WebResourceFrameName_WebResourceData_WebResourceTextEncodingName_/http://proteopedia.org/wiki/index.php/Main_PageYtext/htmlPO~ Main Page - Proteopedia, life in 3D

First time at Proteopedia? Click on the green links, they change the 3D image. Click and drag the molecules. Proteopedia is a 3D, interactive encyclopedia of proteins, RNA, DNA and other molecules. With a free user account, you can edit pages in Proteopedia. Visit the Main Page to learn more.

Main Page

From Proteopedia

Jump to: navigation, search
Welcome to Proteopedia,
The free, collaborative 3D encyclopedia of proteins & other molecules
About Editing Help Video Guide Table of Contents Content (Topic Pages) What's New
Currently featured article


You're missing out!

You need Java to see the 3D molecule in this box. The 3D molecules are the most important part of Proteopedia.


Install Java from www.java.com. It's free.

If you already have Java installed,
make sure Java applets are enabled
in your web browser preferences


·· large subunit on/off ·· small subunit on/off ··

·· tRNAs on/off ·· mRNA on/off ·· rRNA on/off ·· proteins on/off ··
·· Aminoacyl(A)-site tRNA on/off ·· Peptidyl(P)-site tRNA on/off ·· Exit(E)-site tRNA on/off ··

Green links change the 3D image!   Click and drag on the molecule!
by Wayne Decatur

On October 7th, 2009 the Nobel Committee announced three structural biologists would share the 2009 Nobel Prize in Chemistry for studies of the The Ribosome. The ribosome is the machine in your cells that accurately and efficiently decodes the genetic information stored in your genome and synthesizes the corresponding polypeptide chain one amino acid at a time in the process of translation. Venkatraman Ramakrishnan of the M.R.C. Laboratory of Molecular Biology in Cambridge, England; Thomas A. Steitz of Yale University; and Ada E. Yonath of the Weizmann Institute of Science in Rehovot, Israel share the prize for the first atomic-resolution structures of the two subunits that come together to form an active ribosome. These structures are considered landmarks for the fact they showed clearly the major contributions to decoding and peptide bond synthesis come from RNA and not protein, as well as for the sheer size of the structures determined. These structures represent tour-de-force efforts in understanding fundamental processes in every organism on earth and will have direct impacts on how we fight pathogenic bacteria in the immediate future. Shown here (restore initial scene) are both subunits of the ribosome, as well as mRNA and tRNA that bind in the complex during the process of translation. Read more....



Browse
Favorites
Find my protein/molecule
What's new?
  • Hemoglobin - the protein in your blood responsible for oxygen transport
  • HIV-1 protease - a protein made by the HIV virus, crucial for infection
  • Lac repressor - controls expression of bacterial enzymes involved in lactose metabolism
More...
  • All PDB entries (over 65,000) have pages
  • Go takes you directly to the page if it exists,
  • Search gives you search results
More...

Want to contribute?
Pages are easy to create and edit, and Green links are easy to make!
Step 1
Step 2
Step 3

Request an account.
(Members of the scientific community, including students and educators.)

Get started with our narrated video guide, then use our editing-help page as a reference.

Help expand existing pages like 1twc or Prion proteins; or start a new page on your favorite topic. We could use pages on DNA, Trypsin, & Myoglobin, among others.


What can Proteopedia do for me?
Scientists and Students
Educators
Structural researchers
  • Understand and communicate protein 3D structure-function relationships

(You may protect your teaching pages from editing by others.)

(You may protect such pages from editing by others or hide them from viewing pre-publication.)


Read the paper

Proteopedia - a scientific 'wiki' bridging the rift between 3D structure and function of biomacromolecules, Genome Biology 2008, 9:R121 doi:10.1186/gb-2008-9-8-r121

_

Proteopedia Page Contributors and Editors (what is this?)

Eran Hodis, Eric Martz, Joel L. Sussman, Jaime Prilusky

Personal tools
UUTF-8#(,049=CGKOSW[_cgkosw{_WebResourceResponse_>http://proteopedia.org/wiki/extensions/searchsuggest/style.cssXtext/cssObplist00 X$versionT$topY$archiverX$objects_WebResourceResponse_NSKeyedArchiver &,-345KLMNOPQRSTUVWXYZ[_`U$null  !"#$%V$classR$3R$8S$10S$11R$5R$6R$4R$7R$2R$9R$0R$1 '()$+WNS.base[NS.relative_>http://proteopedia.org/wiki/extensions/searchsuggest/style.css./01X$classesZ$classname12UNSURLXNSObject#A^D(5 6789BWNS.keysZNS.objects:;<=>?@A CDEFGHIJ]Accept-RangesVServer\Content-TypeTDate^Content-LengthTEtagZConnection]Last-ModifiedUbytes_Apache/2.2.10 (Fedora)Xtext/css_Sun, 09 May 2010 02:05:00 GMTS354_"496653b-162-48020b0d68440"Uclose_Sun, 21 Feb 2010 18:43:21 GMT./\]]^2_NSMutableDictionary\NSDictionaryb./abbc2_NSHTTPURLResponse]NSURLResponse)27:PRd KPYdgmv #)BKkod Ob#searchsuggest { text-align: left; } #searchsuggest ul{ list-style: none; margin: 0; } #searchsuggest li{ padding:2px 5px; white-space: nowrap; text-align:left; } #searchsuggest li:hover{ background:#888; color:#FFF; margin-left: 1em; text-decoration: underline; } _6http://proteopedia.org/wiki/skins/monobook/main.css?97Obplist00 X$versionT$topY$archiverX$objects_WebResourceResponse_NSKeyedArchiver &,-345MNOPQRSTUVWXYZ[\]^_cdU$null  !"#$%V$classR$3R$8S$10S$11R$5R$6R$4R$7R$2R$9R$0R$1 '()$+WNS.base[NS.relative_6http://proteopedia.org/wiki/skins/monobook/main.css?97./01X$classesZ$classname12UNSURLXNSObject#A^D)\ 6789CWNS.keysZNS.objects:;<=>?@AB DEFGHIJKL]Last-Modified]Accept-RangesVServer\Content-TypeTDate^Content-LengthTEtagUX-PadZConnection_Thu, 24 Jul 2008 14:22:08 GMTUbytes_Apache/2.2.10 (Fedora)Xtext/css_Sun, 09 May 2010 02:05:00 GMTU31663_"4a8452b-7baf-452c5c8382400"_avoid browser bugUclose./`aab2_NSMutableDictionary\NSDictionary{./effg2_NSHTTPURLResponse]NSURLResponse)27:PRd  EJS^agpy{)IOhqh*O{/* ** MediaWiki 'monobook' style sheet for CSS2-capable browsers. ** Copyright Gabriel Wicke - http://wikidev.net/ ** License: GPL (http://www.gnu.org/copyleft/gpl.html) ** ** Loosely based on http://www.positioniseverything.net/ordered-floats.html by Big John ** and the Plone 2.0 styles, see http://plone.org/ (Alexander Limi,Joe Geldart & Tom Croucher, ** Michael Zeltner and Geir Bækholt) ** All you guys rock :) */ /** * Stylesheet for screen/projection. All rules not marked media-specific are * shared with handheld.css and should be updated in tandem. The rules can't * be in the same file because old browsers like IE5 won't obey @media rules. * * Rules that are screen/projection-specific are marked with commented-out * @media rules and indentation. */ /* @media screen, projection { */ #column-content { width: 100%; float: right; margin: 0 0 .6em -12.2em; padding: 0; } #content { margin: 2.8em 0 0 12.2em; padding: 0 1em 1.5em 1em; position: relative; z-index: 2; } #column-one { padding-top: 160px; } /* } */ #content { background: white; color: black; border: 1px solid #aaa; border-right: none; line-height: 1.5em; } /* the left column width is specified in class .portlet */ /* Font size: ** We take advantage of keyword scaling- browsers won't go below 9px ** More at http://www.w3.org/2003/07/30-font-size ** http://style.cleverchimp.com/font_size_intervals/altintervals.html */ body { font: x-small sans-serif; background: #f9f9f9 url(headbg.jpg) 0 0 no-repeat; color: black; margin: 0; padding: 0; } /* scale back up to a sane default */ #globalWrapper { font-size: 127%; width: 100%; margin: 0; padding: 0; } .visualClear { clear: both; } /* general styles */ table { font-size: 100%; color: black; /* we don't want the bottom borders of

s to be visible through floated tables */ background-color: white; } a { text-decoration: none; color: #002bb8; background: none; } a:visited { color: #5a3696; } a:active { color: #faa700; } a:hover { text-decoration: underline; } a.stub { color: #772233; } a.new, #p-personal a.new { color: #ba0000; } a.new:visited, #p-personal a.new:visited { color: #a55858; } img { border: none; vertical-align: middle; } /* @media screen, projection { */ p { margin: .4em 0 .5em 0; line-height: 1.5em; } /* } */ p img { margin: 0; } hr { height: 1px; color: #aaa; background-color: #aaa; border: 0; margin: .2em 0 .2em 0; } h1, h2, h3, h4, h5, h6 { color: black; background: none; font-weight: normal; margin: 0; padding-top: .5em; padding-bottom: .17em; border-bottom: 1px solid #aaa; } h1 { font-size: 188%; } h1 .editsection { font-size: 53%; } h2 { font-size: 150%; } h2 .editsection { font-size: 67%; } h3, h4, h5, h6 { border-bottom: none; font-weight: bold; } h3 { font-size: 132%; } h3 .editsection { font-size: 76%; font-weight: normal; } h4 { font-size: 116%; } h4 .editsection { font-size: 86%; font-weight: normal; } h5 { font-size: 100%; } h5 .editsection { font-weight: normal; } h6 { font-size: 80%; } h6 .editsection { font-size: 125%; font-weight: normal; } .editsection { float: right; margin-left: 5px; } ul { line-height: 1.5em; list-style-type: square; margin: .3em 0 0 1.5em; padding: 0; list-style-image: url(bullet.gif); } ol { line-height: 1.5em; margin: .3em 0 0 3.2em; padding: 0; list-style-image: none; } li { margin-bottom: .1em; } dt { font-weight: bold; margin-bottom: .1em; } dl { margin-top: .2em; margin-bottom: .5em; } dd { line-height: 1.5em; margin-left: 2em; margin-bottom: .1em; } fieldset { border: 1px solid #2f6fab; margin: 1em 0 1em 0; padding: 0 1em 1em; line-height: 1.5em; } legend { padding: .5em; font-size: 95%; } form { border: none; margin: 0; } textarea { width: 100%; padding: .1em; } input.historysubmit { padding: 0 .3em .3em .3em !important; font-size: 94%; cursor: pointer; height: 1.7em !important; margin-left: 1.6em; } select { vertical-align: top; } abbr, acronym, .explain { border-bottom: 1px dotted black; color: black; background: none; cursor: help; } q { font-family: Times, "Times New Roman", serif; font-style: italic; } /* disabled for now blockquote { font-family: Times, "Times New Roman", serif; font-style: italic; }*/ code { background-color: #f9f9f9; } pre { padding: 1em; border: 1px dashed #2f6fab; color: black; background-color: #f9f9f9; line-height: 1.1em; } /* ** the main content area */ /* @media screen, projection { */ #siteSub { display: none; } #jump-to-nav { display: none; } /* } */ #contentSub, #contentSub2 { font-size: 84%; line-height: 1.2em; margin: 0 0 1.4em 1em; color: #7d7d7d; width: auto; } span.subpages { display: block; } /* Some space under the headers in the content area */ #bodyContent h1, #bodyContent h2 { margin-bottom: .6em; } #bodyContent h3, #bodyContent h4, #bodyContent h5 { margin-bottom: .3em; } .firstHeading { margin-bottom: .1em; } /* user notification thing */ .usermessage { background-color: #ffce7b; border: 1px solid #ffa500; color: black; font-weight: bold; margin: 2em 0 1em; padding: .5em 1em; vertical-align: middle; } #siteNotice { text-align: center; font-size: 95%; padding: 0 .9em; } #siteNotice p { margin: 0; padding: 0; } .error { color: red; font-size: larger; } .errorbox, .successbox { font-size: larger; border: 2px solid; padding: .5em 1em; float: left; margin-bottom: 2em; color: #000; } .errorbox { border-color: red; background-color: #fff2f2; } .successbox { border-color: green; background-color: #dfd; } .errorbox h2, .successbox h2 { font-size: 1em; font-weight: bold; display: inline; margin: 0 .5em 0 0; border: none; } #catlinks { border: 1px solid #aaa; background-color: #f9f9f9; padding: 5px; margin-top: 1em; clear: both; } /* currently unused, intended to be used by a metadata box in the bottom-right corner of the content area */ .documentDescription { /* The summary text describing the document */ font-weight: bold; display: block; margin: 1em 0; line-height: 1.5em; } .documentByLine { text-align: right; font-size: 90%; clear: both; font-weight: normal; color: #76797c; } /* emulate center */ .center { width: 100%; text-align: center; } *.center * { margin-left: auto; margin-right: auto; } /* small for tables and similar */ .small, .small * { font-size: 94%; } table.small { font-size: 100%; } /* ** content styles */ #toc, .toc, .mw-warning { border: 1px solid #aaa; background-color: #f9f9f9; padding: 5px; font-size: 95%; } #toc h2, .toc h2 { display: inline; border: none; padding: 0; font-size: 100%; font-weight: bold; } #toc #toctitle, .toc #toctitle, #toc .toctitle, .toc .toctitle { text-align: center; } #toc ul, .toc ul { list-style-type: none; list-style-image: none; margin-left: 0; padding-left: 0; text-align: left; } #toc ul ul, .toc ul ul { margin: 0 0 0 2em; } #toc .toctoggle, .toc .toctoggle { font-size: 94%; } .mw-warning { margin-left: 50px; margin-right: 50px; text-align: center; } /* images */ div.floatright, table.floatright { clear: right; float: right; position: relative; margin: 0 0 .5em .5em; border: 0; /* border: .5em solid white; border-width: .5em 0 .8em 1.4em; */ } div.floatright p { font-style: italic; } div.floatleft, table.floatleft { float: left; clear: left; position: relative; margin: 0 .5em .5em 0; border: 0; /* margin: .3em .5em .5em 0; border: .5em solid white; border-width: .5em 1.4em .8em 0; */ } div.floatleft p { font-style: italic; } /* thumbnails */ div.thumb { margin-bottom: .5em; border-style: solid; border-color: white; width: auto; } div.thumbinner { border: 1px solid #ccc; padding: 3px !important; background-color: #f9f9f9; font-size: 94%; text-align: center; overflow: hidden; } html .thumbimage { border: 1px solid #ccc; } html .thumbcaption { border: none; text-align: left; line-height: 1.4em; padding: 3px !important; font-size: 94%; } div.magnify { float: right; border: none !important; background: none !important; } div.magnify a, div.magnify img { display: block; border: none !important; background: none !important; } div.tright { clear: right; float: right; border-width: .5em 0 .8em 1.4em; } div.tleft { float: left; clear: left; margin-right: .5em; border-width: .5em 1.4em .8em 0; } .hiddenStructure { display: none; speak: none; } img.tex { vertical-align: middle; } span.texhtml { font-family: serif; } /* Have a checkered background on images on the description pages and in galleries to make transparency visible #file img, .gallerybox .thumb img { background: url(Checker-16x16.png) repeat; } */ /* ** classes for special content elements like town boxes ** intended to be referenced directly from the wiki src */ /* ** User styles */ /* table standards */ table.rimage { float: right; position: relative; margin-left: 1em; margin-bottom: 1em; text-align: center; } .toccolours { border: 1px solid #aaa; background-color: #f9f9f9; padding: 5px; font-size: 95%; } div.townBox { position: relative; float: right; background: white; margin-left: 1em; border: 1px solid gray; padding: .3em; width: 200px; overflow: hidden; clear: right; } div.townBox dl { padding: 0; margin: 0 0 .3em; font-size: 96%; } div.townBox dl dt { background: none; margin: .4em 0 0; } div.townBox dl dd { margin: .1em 0 0 1.1em; background-color: #f3f3f3; } /* ** edit views etc */ .special li { line-height: 1.4em; margin: 0; padding: 0; } /* Page history styling */ /* the auto-generated edit comments */ .autocomment { color: gray; } #pagehistory span.user { margin-left: 1.4em; margin-right: .4em; } #pagehistory span.minor { font-weight: bold; } #pagehistory li { border: 1px solid white; } #pagehistory li.selected { background-color: #f9f9f9; border: 1px dashed #aaa; } /* ** Diff rendering */ table.diff, td.diff-otitle, td.diff-ntitle { background-color: white; } td.diff-addedline { background: #cfc; font-size: smaller; } td.diff-deletedline { background: #ffa; font-size: smaller; } td.diff-context { background: #eee; font-size: smaller; } .diffchange { color: red; font-weight: bold; text-decoration: none; } /* ** keep the whitespace in front of the ^=, hides rule from konqueror ** this is css3, the validator doesn't like it when validating as css2 */ #bodyContent a.external, #bodyContent a[href ^="gopher://"] { background: url(external.png) center right no-repeat; padding-right: 13px; } #bodyContent a[href ^="https://"], .link-https { background: url(lock_icon.gif) center right no-repeat; padding-right: 16px; } #bodyContent a[href ^="mailto:"], .link-mailto { background: url(mail_icon.gif) center right no-repeat; padding-right: 18px; } #bodyContent a[href ^="news://"] { background: url(news_icon.png) center right no-repeat; padding-right: 18px; } #bodyContent a[href ^="ftp://"], .link-ftp { background: url(file_icon.gif) center right no-repeat; padding-right: 18px; } #bodyContent a[href ^="irc://"], .link-irc { background: url(discussionitem_icon.gif) center right no-repeat; padding-right: 18px; } #bodyContent a.external[href $=".ogg"], #bodyContent a.external[href $=".OGG"], #bodyContent a.external[href $=".mid"], #bodyContent a.external[href $=".MID"], #bodyContent a.external[href $=".midi"], #bodyContent a.external[href $=".MIDI"], #bodyContent a.external[href $=".mp3"], #bodyContent a.external[href $=".MP3"], #bodyContent a.external[href $=".wav"], #bodyContent a.external[href $=".WAV"], #bodyContent a.external[href $=".wma"], #bodyContent a.external[href $=".WMA"], .link-audio { background: url("audio.png") center right no-repeat; padding-right: 13px; } #bodyContent a.external[href $=".ogm"], #bodyContent a.external[href $=".OGM"], #bodyContent a.external[href $=".avi"], #bodyContent a.external[href $=".AVI"], #bodyContent a.external[href $=".mpeg"], #bodyContent a.external[href $=".MPEG"], #bodyContent a.external[href $=".mpg"], #bodyContent a.external[href $=".MPG"], .link-video { background: url("video.png") center right no-repeat; padding-right: 13px; } #bodyContent a.external[href $=".pdf"], #bodyContent a.external[href $=".PDF"], #bodyContent a.external[href *=".pdf#"], #bodyContent a.external[href *=".PDF#"], #bodyContent a.external[href *=".pdf?"], #bodyContent a.external[href *=".PDF?"], .link-document { background: url("document.png") center right no-repeat; padding-right: 12px; } /* disable interwiki styling */ #bodyContent a.extiw, #bodyContent a.extiw:active { color: #36b; background: none; padding: 0; } #bodyContent a.external { color: #36b; } /* this can be used in the content area to switch off special external link styling */ #bodyContent .plainlinks a { background: none !important; padding: 0 !important; } /* ** Structural Elements */ /* ** general portlet styles (elements in the quickbar) */ .portlet { border: none; margin: 0 0 .5em; padding: 0; float: none; width: 11.6em; overflow: hidden; } .portlet h4 { font-size: 95%; font-weight: normal; white-space: nowrap; } .portlet h5 { background: transparent; padding: 0 1em 0 .5em; display: inline; height: 1em; text-transform: lowercase; font-size: 91%; font-weight: normal; white-space: nowrap; } .portlet h6 { background: #ffae2e; border: 1px solid #2f6fab; border-style: solid solid none solid; padding: 0 1em 0 1em; text-transform: lowercase; display: block; font-size: 1em; height: 1.2em; font-weight: normal; white-space: nowrap; } .pBody { font-size: 95%; background-color: white; color: black; border-collapse: collapse; border: 1px solid #aaa; padding: 0 .8em .3em .5em; } .portlet h1, .portlet h2, .portlet h3, .portlet h4 { margin: 0; padding: 0; } .portlet ul { line-height: 1.5em; list-style-type: square; list-style-image: url(bullet.gif); font-size: 95%; } .portlet li { padding: 0; margin: 0; } /* ** Logo properties */ /* @media screen, projection { */ #p-logo { top: 0; left: 0; position: absolute; /*needed to use z-index */ z-index: 3; height: 155px; width: 12em; overflow: visible; } #p-logo h5 { display: none; } #p-logo a, #p-logo a:hover { display: block; height: 155px; width: 12.2em; background-repeat: no-repeat; background-position: 35% 50% !important; text-decoration: none; } /* } */ /* ** the navigation portlet */ /* @media screen, projection { */ #p-navigation { position: relative; z-index: 3; } #p-navigation a { display: block; } #p-navigation li.active a, #p-navigation li.active a:hover { display: inline; } /* } */ #p-navigation .pBody { padding-right: 0; } #p-navigation li.active a, #p-navigation li.active a:hover { text-decoration: none; font-weight: bold; } /* ** Search portlet */ /* @media screen, projection { */ #p-search { position: relative; z-index: 3; } /* } */ input.searchButton { margin-top: 1px; font-size: 95%; } #searchGoButton { padding-left: .5em; padding-right: .5em; font-weight: bold; } #searchInput { width: 10.9em; margin: 0; font-size: 95%; } #p-search .pBody { padding: .5em .4em .4em .4em; text-align: center; } /* ** the personal toolbar */ /* @media screen, projection { */ #p-personal { position: absolute; left: 0; top: 0; z-index: 0; } #p-personal { width: 100%; white-space: nowrap; padding: 0; margin: 0; border: none; background: none; overflow: visible; line-height: 1.2em; } #p-personal h5 { display: none; } #p-personal .portlet, #p-personal .pBody { z-index: 0; padding: 0; margin: 0; border: none; overflow: visible; background: none; } /* this is the ul contained in the portlet */ #p-personal ul { border: none; line-height: 1.4em; color: #2f6fab; padding: 0 2em 0 3em; margin: 0; text-align: right; list-style: none; z-index: 0; background: none; cursor: default; } #p-personal li { z-index: 0; border: none; padding: 0; display: inline; color: #2f6fab; margin-left: 1em; line-height: 1.2em; background: none; } #p-personal li a { text-decoration: none; color: #005896; padding-bottom: .2em; background: none; } #p-personal li a:hover { background-color: white; padding-bottom: .2em; text-decoration: none; } #p-personal li.active a:hover { background-color: transparent; } /* the icon in front of the user name, single quotes in bg url to hide it from iemac */ li#pt-userpage, li#pt-anonuserpage, li#pt-login { background: url(user.gif) top left no-repeat; padding-left: 20px; text-transform: none; } /* } */ #p-personal ul { text-transform: lowercase; } #p-personal li.active { font-weight: bold; } /* ** the page-related actions- page/talk, edit etc */ /* @media screen, projection { */ #p-cactions { position: absolute; top: 1.3em; left: 11.5em; margin: 0; white-space: nowrap; width: 76%; line-height: 1.1em; overflow: visible; background: none; border-collapse: collapse; padding-left: 1em; list-style: none; font-size: 95%; } #p-cactions ul { list-style: none; } #p-cactions li { display: inline; border: 1px solid #aaa; border-bottom: none; padding: 0 0 .1em 0; margin: 0 .3em 0 0; overflow: visible; background: white; } #p-cactions li.selected { border-color: #fabd23; padding: 0 0 .2em 0; font-weight: bold; } #p-cactions li a { background-color: #fbfbfb; color: #002bb8; border: none; padding: 0 .8em .3em; position: relative; z-index: 0; margin: 0; text-decoration: none; } #p-cactions li.selected a { z-index: 3; padding: 0 1em .2em!important; background-color: white; } #p-cactions .new a { color: #ba0000; } #p-cactions li a:hover { z-index: 3; text-decoration: none; background-color: white; } #p-cactions h5 { display: none; } #p-cactions li.istalk { margin-right: 0; } #p-cactions li.istalk a { padding-right: .5em; } #p-cactions #ca-addsection a { padding-left: .4em; padding-right: .4em; } /* offsets to distinguish the tab groups */ li#ca-talk { margin-right: 1.6em; } li#ca-watch, li#ca-unwatch, li#ca-varlang-0, li#ca-print { margin-left: 1.6em; } #p-cactions .pBody { font-size: 1em; background-color: transparent; color: inherit; border-collapse: inherit; border: 0; padding: 0; } /* } */ #p-cactions .hiddenStructure { display: none; } #p-cactions li a { text-transform: lowercase; } /* ** the remaining portlets */ /* @media screen, projection { */ #p-tbx, #p-lang { position: relative; z-index: 3; } /* } */ /* ** the part added by EH for tabs for authoring tools */ .jmolLink { color: green; font-weight: bold; } .jmolLink:hover { } .jmolLink:visited { color: green; } #tabmenu { color: #000; border-bottom: 1px solid #999999; margin: 0px; padding: 0px; z-index: 1; padding-left: 10px; } #tabmenu li { display: inline; overflow: hidden; list-style-type: none; border-bottom: none; } #tabmenu a, a.active { color: #000000; font: normal 12px sans-serif; border: 1px solid #999999; border-bottom: none; padding: 2px 5px 2px 5px; margin: 1px; text-decoration: none; cursor:hand; } #tabmenu a.active { background: #b2cbec; border-bottom: 1px solid #b2cbec; } #tabmenu a:hover { color: #ffffff; background: #b2cbec; cursor:pointer; } #tabmenu a:visited { } #tabmenu a.active:hover { background: #7ba2d5; color: #ffffff; } #authoringContent { font: 12px sans-serif; text-align: justify; background: #ffffff; padding: 0px; border: 1px solid #999999; border-top: none; z-index: 2; } #authoringContent a { text-decoration: none; color: blue; } #authoringContent a:hover { background: #666666; } #authoringContent legend { color: black; } #authorTable { font: 12px sans-serif; border: 0px solid #999999; } #authorTable fieldset { font: 12px sans-serif; border: 1px solid #999999; line-height: 5px; margin-left: 20px; margin-right: 20px; } #authorTable p { font: 12px sans-serif; line-height: 110%; } #authorTable p.exi { font: 10px sans-serif; color: #555555; line-height: 110%; } #authorTable p.ex { font: 10px sans-serif; color: #555555; line-height: 110%; } #authorTable textarea { border: 1px solid #999999; } #authorTable fieldset.sele { font: 12px sans-serif; border: 1px solid #ffffff; float: left; line-height: 0px; margin-left: 0px; margin-right: 0px; margin-bottom: 0px; margin-top: 0px; padding: 0px; } #authorTable fieldset.button { font: 12px sans-serif; border: 1px solid #ffffff; float: bottom; line-height: 0px; margin-left: 0px; margin-right: 0px; margin-bottom: 0px; margin-top: 0px; padding: 0px; } #authorTable label { font: 12px sans-serif; line-height: 110%; } #authorTable table.palette { background: black; } #authorTable div.hideable { display: none; } /* End added by EH * */ /* added style for tables with only outside border (called class 'infoblock') */ table.infoblock { /* J Prilusky 2008 */ border-collapse: collapse; border: 2px solid #dddddd; clear: right; float: right; position: relative; margin: 0 0 .5em .5em; } /* TODO: #t-iscite is only used by the Cite extension, come up with some * system which allows extensions to add to this file on the fly */ #t-ispermalink, #t-iscite { color: #999; } /* ** footer */ #footer { background-color: white; border-top: 1px solid #fabd23; border-bottom: 1px solid #fabd23; margin: .6em 0 1em 0; padding: .4em 0 1.2em 0; text-align: center; font-size: 90%; } #footer li { display: inline; margin: 0 1.3em; } #f-poweredbyico, #f-copyrightico { margin: 0 8px; position: relative; top: -2px; /* Bump it up just a tad */ } #f-poweredbyico { float: right; height: 1%; } #f-copyrightico { float: left; height: 1%; } /* js pref toc */ #preftoc { margin: 0; padding: 0; width: 100%; clear: both; } #preftoc li { background-color: #f0f0f0; color: #000; } /* @media screen, projection { */ #preftoc li { margin: 1px -2px 1px 2px; float: left; padding: 2px 0 3px 0; border: 1px solid #fff; border-right-color: #716f64; border-bottom: 0; position: relative; white-space: nowrap; list-style-type: none; list-style-image: none; z-index: 3; } /* } */ #preftoc li.selected { font-weight: bold; background-color: #f9f9f9; border: 1px solid #aaa; border-bottom: none; cursor: default; top: 1px; padding-top: 2px; margin-right: -3px; } #preftoc > li.selected { top: 2px; } #preftoc a, #preftoc a:active { display: block; color: #000; padding: 0 .7em; position: relative; text-decoration: none; } #preftoc li.selected a { cursor: default; text-decoration: none; } #prefcontrol { padding-top: 2em; clear: both; } #preferences { margin: 0; border: 1px solid #aaa; clear: both; padding: 1.5em; background-color: #F9F9F9; } .prefsection { border: none; padding: 0; margin: 0; } .prefsection fieldset { border: 1px solid #aaa; float: left; margin-right: 2em; } .prefsection legend { font-weight: bold; } .prefsection table, .prefsection legend { background-color: #F9F9F9; } /* @media screen, projection { */ .mainLegend { display: none; } /* } */ div.prefsectiontip { font-size: 95%; margin-top: 0; background-color: #FFC1C1; padding: .2em .7em; clear: both; } .btnSavePrefs { font-weight: bold; padding-left: .3em; padding-right: .3em; } .preferences-login { clear: both; margin-bottom: 1.5em; } .prefcache { font-size: 90%; margin-top: 2em; } div#userloginForm form, div#userlogin form#userlogin2 { margin: 0 3em 1em 0; border: 1px solid #aaa; clear: both; padding: 1.5em 2em; background-color: #f9f9f9; float: left; } div#userloginForm table, div#userlogin form#userlogin2 table { background-color: #f9f9f9; } div#userloginForm h2, div#userlogin form#userlogin2 h2 { padding-top: 0; } div#userlogin .captcha { border: 1px solid #bbb; padding: 1.5em 2em; width: 400px; background-color: white; } #userloginprompt, #languagelinks { font-size: 85%; } #login-sectiontip { font-size: 85%; line-height: 1.2; padding-top: 2em; } #userlogin .loginText, #userlogin .loginPassword { width: 12em; } #userloginlink a, #wpLoginattempt, #wpCreateaccount { font-weight: bold; } /* @media screen, projection { */ /* ** IE/Mac fixes, hope to find a validating way to move this ** to a separate stylesheet. This would work but doesn't validate: ** @import("IEMacFixes.css"); */ /* tabs: border on the a, not the div */ * > html #p-cactions li { border: none; } * > html #p-cactions li a { border: 1px solid #aaa; border-bottom: none; } * > html #p-cactions li.selected a { border-color: #fabd23; } /* footer icons need a fixed width */ * > html #f-poweredbyico, * > html #f-copyrightico { width: 88px; } * > html #bodyContent, * > html #bodyContent pre { overflow-x: auto; width: 100%; padding-bottom: 25px; } /* } */ /* more IE fixes */ /* float/negative margin brokenness */ * html #footer {margin-top: 0;} * html #column-content { display: inline; margin-bottom: 0; } * html div.editsection { font-size: smaller; } #pagehistory li.selected { position: relative; } /* Mac IE 5.0 fix; floated content turns invisible */ * > html #column-content { float: none; } * > html #column-one { position: absolute; left: 0; top: 0; } * > html #footer { margin-left: 13.2em; } .redirectText { font-size: 150%; margin: 5px; } .printfooter { display: none; } .not-patrolled { background-color: #ffa; } div.patrollink { font-size: 75%; text-align: right; } span.newpage, span.minor, span.searchmatch, span.bot { font-weight: bold; } span.unpatrolled { font-weight: bold; color: red; } span.searchmatch { color: red; } .sharedUploadNotice { font-style: italic; } span.updatedmarker { color: black; background-color: #0f0; } table.gallery { border: 1px solid #ccc; margin: 2px; padding: 2px; background-color: white; } table.gallery tr { vertical-align: top; } table.gallery td { vertical-align: top; background-color: #f9f9f9; border: solid 2px white; } /* Keep this temporarily so that cached pages will display right */ table.gallery td.galleryheader { text-align: center; font-weight: bold; } table.gallery caption { font-weight: bold; } div.gallerybox { margin: 2px; } div.gallerybox div.thumb { text-align: center; border: 1px solid #ccc; margin: 2px; } div.gallerytext { font-size: 94%; padding: 2px 4px; } span.comment { font-style: italic; } span.changedby { font-size: 95%; } .previewnote { text-indent: 3em; color: #c00; border-bottom: 1px solid #aaa; padding-bottom: 1em; margin-bottom: 1em; } .previewnote p { margin: 0; padding: 0; } .editExternally { border: 1px solid gray; background-color: #ffffff; padding: 3px; margin-top: 0.5em; float: left; font-size: small; text-align: center; } .editExternallyHelp { font-style: italic; color: gray; } li span.deleted, span.history-deleted { text-decoration: line-through; color: #888; font-style: italic; } .toggle { margin-left: 2em; text-indent: -2em; } /* Classes for EXIF data display */ table.mw_metadata { font-size: 0.8em; margin-left: 0.5em; margin-bottom: 0.5em; width: 300px; } table.mw_metadata caption { font-weight: bold; } table.mw_metadata th { font-weight: normal; } table.mw_metadata td { padding: 0.1em; } table.mw_metadata { border: none; border-collapse: collapse; } table.mw_metadata td, table.mw_metadata th { text-align: center; border: 1px solid #aaaaaa; padding-left: 0.1em; padding-right: 0.1em; } table.mw_metadata th { background-color: #f9f9f9; } table.mw_metadata td { background-color: #fcfcfc; } table.collapsed tr.collapsable { display: none; } /* filetoc */ ul#filetoc { text-align: center; border: 1px solid #aaaaaa; background-color: #f9f9f9; padding: 5px; font-size: 95%; margin-bottom: 0.5em; margin-left: 0; margin-right: 0; } #filetoc li { display: inline; list-style-type: none; padding-right: 2em; } input#wpSummary { width: 80%; } /* @bug 1714 */ input#wpSave, input#wpDiff { margin-right: 0.33em; } #editform .editOptions { display: inline; } #wpSave { font-weight: bold; } /* Classes for article validation */ table.revisionform_default { border: 1px solid #000000; } table.revisionform_focus { border: 1px solid #000000; background-color:#00BBFF; } tr.revision_tr_default { background-color:#EEEEEE; } tr.revision_tr_first { background-color:#DDDDDD; } p.revision_saved { color: green; font-weight:bold; } #mw_trackbacks { border: solid 1px #bbbbff; background-color: #eeeeff; padding: 0.2em; } /* Allmessages table */ #allmessagestable th { background-color: #b2b2ff; } #allmessagestable tr.orig { background-color: #ffe2e2; } #allmessagestable tr.new { background-color: #e2ffe2; } #allmessagestable tr.def { background-color: #f0f0ff; } /* noarticletext */ div.noarticletext { border: 1px solid #ccc; background: #fff; padding: .2em 1em; color: #000; } div#searchTargetContainer { left: 10px; top: 10px; width: 90%; background: white; } div#searchTarget { padding: 3px; margin: 5px; background: #F0F0F0; border: solid 1px blue; } div#searchTarget ul li { list-style: none; } div#searchTarget ul li:before { color: orange; content: "\00BB \0020"; } div.multipageimagenavbox { border: solid 1px silver; padding: 4px; margin: 1em; -moz-border-radius: 6px; background: #f0f0f0; } div.multipageimagenavbox div.thumb { border: none; margin-left: 2em; margin-right: 2em; } div.multipageimagenavbox hr { margin: 6px; } table.multipageimage td { text-align: center; } /** Special:Version */ table#sv-ext, table#sv-hooks { margin: 1em; padding:0em; } #sv-ext td, #sv-hooks td, #sv-ext th, #sv-hooks th { border: 1px solid #A0A0A0; padding: 0 0.15em 0 0.15em; } #sv-ext th, #sv-hooks th { background-color: #F0F0F0; color: black; padding: 0 0.15em 0 0.15em; } tr.sv-space{ height: 0.8em; border:none; } tr.sv-space td { display: none; } /* Table pager (e.g. Special:Imagelist) - remove underlines from the navigation link - collapse borders - set the borders to outsets (similar to Special:Allmessages) - remove line wrapping for all td and th, set background color - restore line wrapping for the last two table cells (description and size) */ .TablePager_nav a { text-decoration: none; } .TablePager { border-collapse: collapse; } .TablePager, .TablePager td, .TablePager th { border: 1px solid #aaaaaa; padding: 0 0.15em 0 0.15em; } .TablePager th { background-color: #eeeeff } .TablePager td { background-color: #ffffff } .TablePager tr:hover td { background-color: #eeeeff } .imagelist td, .imagelist th { white-space: nowrap } .imagelist .TablePager_col_links { background-color: #eeeeff } .imagelist .TablePager_col_img_description { white-space: normal } .imagelist th.TablePager_sort { background-color: #ccccff } .templatesUsed { margin-top: 1.5em; } .mw-summary-preview { margin: 0.1em 0; } /* Convenience links on Special:Ipblocklist */ p.mw-ipb-conveniencelinks { font-size: 90%; float: right; } /** * Here is some stuff that's ACTUALLY COMMON TO ALL SKINS. * When the day comes, it can be moved to a *real* common.css. */ .mw-plusminus-null { color: #aaa; } .texvc { direction: ltr; unicode-bidi: embed; } /* Stop floats from intruding into edit area in previews */ #toolbar, #wpTextbox1 { clear: both; } .MediaTransformError { background-color: #ccc; padding: 0.1em; } .MediaTransformError td { text-align: center; vertical-align: middle; font-size: 90%; } _5http://proteopedia.org/wiki/skins/monobook/headbg.jpgZimage/jpegObplist00 X$versionT$topY$archiverX$objects_WebResourceResponse_NSKeyedArchiver &,-345MNOPQRSTUVWXYZ[\]^_cdU$null  !"#$%V$classR$3R$8S$10S$11R$5R$6R$4R$7R$2R$9R$0R$1 '()$+WNS.base[NS.relative_5http://proteopedia.org/wiki/skins/monobook/headbg.jpg./01X$classesZ$classname12UNSURLXNSObject#A^GyN 6789CWNS.keysZNS.objects:;<=>?@AB DEFGHIJKL]Last-Modified]Accept-RangesVServer\Content-TypeTDate^Content-LengthTEtagUX-PadZConnection_Mon, 03 Apr 2006 09:22:36 GMTUbytes_Apache/2.2.10 (Fedora)Zimage/jpeg_Sun, 09 May 2010 02:05:03 GMTT7881_"4a84526-1ec9-4108354c80f00"_avoid browser bugUclose./`aab2_NSMutableDictionary\NSDictionary./effg2_NSHTTPURLResponse]NSURLResponse)27:PRd  DIR]`foxz(HNgrh*OJFIFC    "##! %*5-%'2( .?/279<<<$-BFA:F5;<9 ".!1AQa"2q#BRb?rX5"$yǕp||uacg(fa#t2q$3(F7î8 uf嗃]IV88ki<"r2,Y[?-g=+6XZ0]" `_J򜜜%_88*$q5MJi+KI !vVJ*ʣi66[8J*J(V(( QE KrllY E%$w; ,Ix~N[ubư@%cK͟9LJ?g`E, AH*)D4Qj EZN)8{L?#/8c{g]JC)'!JD2Oj9 I;eNcQipNs?n> X&Z/Ly2f˼.ytQQ-@Pq/i1?&ˊ~\O~_:GGGR=+ pPPYg PQjj%QIIE%yX(k},u1'ȴRQs BQ@R)e_P )(n`,_ke,$ S3,Ȳ[1!!b.^bIUr/?&:P J  yAQlZN)kIQE%& Q1놱<|c9yk)j2EBH O`15.qY ɓ9K̮y>yr^sPQ3̺3s+C3b197.s/gLfeCqӈj1T'(<=\YI)s+)&cjG><.pG;rZ PT&)0R*RQ0 G+e Fr,ex)(J(.Wcu (8(S %;Љ=aa9Drы!I $YO*ԚÕtTQeBJ9[,JX''&&Mm'(Z9fzOhgl8̑Q.F0TAQj EAPT%APjjj} 8b\+}BǣSPRTAs o0Fqc(+J(eJkBJT- YjrYe¢RQ@5 A =!RR{&xXKƲ蔒.'.^Tv Qa@ y7x -RbX' gZJ(fqH{7W,{R2ov\fgW>ɂ8G3O>}|#SyKH#I.Y|"-h缬tڌ)c]ajʅpZLϢy)Y{?c?oem&>x7WhBN0jIIG>]PYG * FRRE 0RQJ+qv PQIKse+-ĭ%rX(%AEYe%(ž f{$OdEf~|$X.Y;١Q` 45MMRڌhMRpgYfHDn*EI&)@%;/t-L\3-O2a6\Nz\z#rsOyo՛OGaDa>V|`c6%'28L1ټ2g4U8Ĩ{%$c9KmL8s*~[._ɾC_y2^(yu~W9^z8t!f18ǙpI.袠AB()ji)h*J(B()(˒ˀJ5J.VRŠ9,B(P )(vkq+pR)([ivڔ%%Q;C؅IEcç:Q3J! =;uxӥ- ITRTRRRL'>ڌuu5L'gR[x2'110I8> ݙX' S92}C2a chb)ϯca=lu\8̻tz8̯[K˩SQa=ވ@\(Ys9*}W_e}QFe-Ir¡IRsm q ((䵳* JdN;YjP\ %$]Q+pHAܖZ-A Beݙb dY_ss,Z^a"ۉIoTI'c*j0My&ډX&k+y鬲!Lyq|b1ƻC|('>P, @,,#ɼBoo>y6#lٶF{/#le#y]m ql'co;j\d-Ĝ*TP+KTPD @аJ)&EBJ^V䌾h@{ =Ț½lk @'c9eb.aǰq1nEI(՝J*IY{j:Aeǥ>lgOѪN,kiw#/pSrZ˩sD{XEܺF1j',q)gӉΟ_ {I0G1SRݑ̦YV1r=nܻEDT` i2_` _fkE}L%RQE-%rr>i6]KkJ9^K.$'&RrL,dZ0 keXu?€PP!KI0QVQed1** IDhNB$.]I\9|Ea)P@Gljʿc>sX-Ȉ axj:Oik|f|Ly$% )5*R2dgOv0~I {8pŬr2'8DDc6֑-G%cu233>!nb^c)_N;{II٭{x\c5aeI2'2RJ%K?+r ERQE%-R }.\(%I8S -Ĝ?EQIv* PE$RP-ɲڈ4ݦeh74EBLuy>҇h%P@P+_L?It"3I8z49Ǚoqqf'n>N>Zc>a=q0 )I$BqE 1jQ8p2{gt+L#\O:Lqx]Lu쟋(c>8D7昿+H rk,ihmGW(dS+q qvXi(X^6.37\>Dwfs;__nFxC|zF3ĽRG Dk3 9cU(ࢊ )*NU, *NBPQDRR6]%gRQS"-\"QEH1iH\XON @PG Ve//[ 2NoGƏݧ+/<2 ߥ!@xISI5Me"&SSVgDq'3\b~;1 ?hD]ͮ=\q'Dw-~\'=lq/ˌ1˻w 7=(SL)ϕpAB jQI_E}55M~SCSRFR5BkaEQE -! ))&J*anaw D IAg%/%Q@r9EBJi x (T(ib 8eA$&N}NTRD\ *(QI&hΤ⚚8𚓊j8$jE8̷LχnUl :.5$bەׄdCSSSVyeKN"yz%(2F^ce eQE%I?AIIE\+E I())P(TQ+ĔP%*.V,/(֭))BJRTS{=G)ߧPBF1˴v(TP@(J)(SST5MMMST55(e5I4F*eLJ~/kIiI 8kLrjN$I},秕ts˯tZ1L1Oɞ1쏑ZNV2{J>~gĕe ϣ}.{[jQIE! )5(ԥ俥-@)(T`a(2j3 pUrXP((Rr G%vP)(P lgiD,9u(()(MSSTSTTԜR"j(]x'uqgI)55Md5SSU~Bq5't"'{z]Xbz3rAI8L9Ӊb:3Pqc)]*=s g+ǵRQE pRQE% X\ ERQIG0e+ĔPQ@r xJ(JA@EDc(k˝rJQEQIE8$U/+3hjj)8&&jSG21Ì1$NXku{38QIEQEPjjrJmxPQE %QG /%%rQE%QIKR Q@PX %-(* n2j&%RBR{1E a PPQEQIEjQjjRjjjjkjj[qӈnXm5j&cqQEQERQEQܗG%%*(Q@`EIEQG+e”B@PPP*(eΊ\{&]Q)@@EDT(( )55MMJ * `SSSCSCSU IfS[55555)jNV((((^@ࢊJZ9QP)((PA@@ɚ(ՂJQAK PQEQEQERjQEQEQEQEQERQEQEQEP(RQE(Q@PEQ@QEQEEPQA@P*JQE EP(**  !"_5http://proteopedia.org/wiki/skins/monobook/bullet.gifYimage/gifObplist00 X$versionT$topY$archiverX$objects_WebResourceResponse_NSKeyedArchiver &,-345KLMNOPQRSTUVWXYZ[_`U$null  !"#$%V$classR$3R$8S$10S$11R$5R$6R$4R$7R$2R$9R$0R$1 '()$+WNS.base[NS.relative_5http://proteopedia.org/wiki/skins/monobook/bullet.gif./01X$classesZ$classname12UNSURLXNSObject#A^I 6789BWNS.keysZNS.objects:;<=>?@A CDEFGHIJ]Accept-RangesVServer\Content-TypeTDate^Content-LengthTEtagZConnection]Last-ModifiedUbytes_Apache/2.2.10 (Fedora)Yimage/gif_Sun, 09 May 2010 02:05:04 GMTR50_"4a84520-32-4108354c80f00"Uclose_Mon, 03 Apr 2006 09:22:36 GMT./\]]^2_NSMutableDictionary\NSDictionary2./abbc2_NSHTTPURLResponse]NSURLResponse)27:PRd BGP[^dmvx  9CcfdO2GIF89a c!,  ;$%&'_7http://proteopedia.org/wiki/skins/monobook/external.pngYimage/pngObplist00 X$versionT$topY$archiverX$objects_WebResourceResponse_NSKeyedArchiver &,-345KLMNOPQRSTUVWXYZ[_`U$null  !"#$%V$classR$3R$8S$10S$11R$5R$6R$4R$7R$2R$9R$0R$1 '()$+WNS.base[NS.relative_7http://proteopedia.org/wiki/skins/monobook/external.png./01X$classesZ$classname12UNSURLXNSObject#A^I 6789BWNS.keysZNS.objects:;<=>?@A CDEFGHIJ]Accept-RangesVServer\Content-TypeTDate^Content-LengthTEtagZConnection]Last-ModifiedUbytes_Apache/2.2.10 (Fedora)Yimage/png_Sun, 09 May 2010 02:05:04 GMTS165_"4a84523-a5-4108354c80f00"Uclose_Mon, 03 Apr 2006 09:22:36 GMT./\]]^2_NSMutableDictionary\NSDictionary./abbc2_NSHTTPURLResponse]NSURLResponse)27:PRd DIR]`foxz";EeidOPNG  IHDR ?PLTEf3̙ffDtRNSKF8IDATW%A@A"OT$xl:rBΞ!/Y5fIENDB`) *+_3http://proteopedia.org/wiki/skins/monobook/user.gifObplist00 X$versionT$topY$archiverX$objects_WebResourceResponse_NSKeyedArchiver &,-345KLMNOPQRSTUVWXYZ[_`U$null  !"#$%V$classR$3R$8S$10S$11R$5R$6R$4R$7R$2R$9R$0R$1 '()$+WNS.base[NS.relative_3http://proteopedia.org/wiki/skins/monobook/user.gif./01X$classesZ$classname12UNSURLXNSObject#A^I  6789BWNS.keysZNS.objects:;<=>?@A CDEFGHIJ]Accept-RangesVServer\Content-TypeTDate^Content-LengthTEtagZConnection]Last-ModifiedUbytes_Apache/2.2.10 (Fedora)Yimage/gif_Sun, 09 May 2010 02:05:04 GMTS923_"4a8452f-39b-430247f819fc0"Uclose_Thu, 10 May 2007 21:40:23 GMT./\]]^2_NSMutableDictionary\NSDictionary./abbc2_NSHTTPURLResponse]NSURLResponse)27:PRd @ENY\bktv} 7AaedOGIF89a[I2ZI4\H1NNNmvTd+f0g=z4s\t^pAsG{T~mwM~*,%+3al@uGMVei•ZCVVl{׆ڈϵظߛėÃʎګ!;,xwH\8XPA0A  1XB !" ÄL&F 1`A/X aACMp(L@*ЄPtԂ=Ê9ٳ;;-./_;http://proteopedia.org/wiki/skins/common/commonPrint.css?97Obplist00 X$versionT$topY$archiverX$objects_WebResourceResponse_NSKeyedArchiver &,-345MNOPQRSTUVWXYZ[\]^_cdU$null  !"#$%V$classR$3R$8S$10S$11R$5R$6R$4R$7R$2R$9R$0R$1 '()$+WNS.base[NS.relative_;http://proteopedia.org/wiki/skins/common/commonPrint.css?97./01X$classesZ$classname12UNSURLXNSObject#A^D)C 6789CWNS.keysZNS.objects:;<=>?@AB DEFGHIJKL]Last-Modified]Accept-RangesVServer\Content-TypeTDate^Content-LengthTEtagUX-PadZConnection_Wed, 23 May 2007 20:09:55 GMTUbytes_Apache/2.2.10 (Fedora)Xtext/css_Sun, 09 May 2010 02:05:00 GMTT5289_"4a844b3-14a9-43128bfe8cac0"_avoid browser bugUclose./`aab2_NSMutableDictionary\NSDictionary./effg2_NSHTTPURLResponse]NSURLResponse)27:PRd  JOXcflu~ #.NTmv  h.O/* ** MediaWiki Print style sheet for CSS2-capable browsers. ** Copyright Gabriel Wicke, http://www.aulinx.de/ ** ** Derived from the plone (http://plone.org/) styles ** Copyright Alexander Limi */ /* Thanks to A List Apart (http://alistapart.com/) for useful extras */ a.stub, a.new{ color:#ba0000; text-decoration:none; } #toc { /*border:1px solid #2f6fab;*/ border:1px solid #aaaaaa; background-color:#f9f9f9; padding:5px; } .tocindent { margin-left: 2em; } .tocline { margin-bottom: 0px; } /* images */ div.floatright { float: right; clear: right; margin: 0; position:relative; border: 0.5em solid White; border-width: 0.5em 0 0.8em 1.4em; } div.floatright p { font-style: italic;} div.floatleft { float: left; margin: 0.3em 0.5em 0.5em 0; position:relative; border: 0.5em solid White; border-width: 0.5em 1.4em 0.8em 0; } div.floatleft p { font-style: italic; } /* thumbnails */ div.thumb { margin-bottom: 0.5em; border-style: solid; border-color: White; width: auto; overflow: hidden; } div.thumb div { border:1px solid #cccccc; padding: 3px !important; background-color:#f9f9f9; font-size: 94%; text-align: center; } div.thumb div a img { border:1px solid #cccccc; } div.thumb div div.thumbcaption { border: none; padding: 0.3em 0 0.1em 0; } div.magnify { display: none; } div.tright { float: right; clear: right; border-width: 0.5em 0 0.8em 1.4em; } div.tleft { float: left; margin-right:0.5em; border-width: 0.5em 1.4em 0.8em 0; } img.thumbborder { border: 1px solid #dddddd; } /* table standards */ table.rimage { float:right; width:1pt; position:relative; margin-left:1em; margin-bottom:1em; text-align:center; } body { background: White; /*font-size: 11pt !important;*/ color: Black; margin: 0; padding: 0; } .noprint, div#jump-to-nav, div.top, div#column-one, #colophon, .editsection, .toctoggle, .tochidden, div#f-poweredbyico, div#f-copyrightico, li#viewcount, li#about, li#disclaimer, li#privacy { /* Hides all the elements irrelevant for printing */ display: none; } ul { list-style-type: square; } #content { background: none; border: none ! important; padding: 0 ! important; margin: 0 ! important; } #footer { background : white; color : black; border-top: 1px solid black; } h1, h2, h3, h4, h5, h6 { font-weight: bold; } p, .documentDescription { margin: 1em 0 ! important; line-height: 1.2em; } .tocindent p { margin: 0 0 0 0 ! important; } pre { border: 1pt dashed black; white-space: pre; font-size: 8pt; overflow: auto; padding: 1em 0; background : white; color : black; } table.listing, table.listing td { border: 1pt solid black; border-collapse: collapse; } a { color: Black !important; background: none !important; padding: 0 !important; } a:link, a:visited { color: #520; background: transparent; text-decoration: underline; } #content a.external.text:after, #content a.external.autonumber:after { /* Expand URLs for printing */ content: " (" attr(href) ") "; } #globalWrapper { width: 100% !important; min-width: 0 !important; } #content { background : white; color : black; } #column-content { margin: 0 !important; } #column-content #content { padding: 1em; margin: 0 !important; } /* MSIE/Win doesn't understand 'inherit' */ a, a.external, a.new, a.stub { color: black ! important; text-decoration: none ! important; } /* Continue ... */ a, a.external, a.new, a.stub { color: inherit ! important; text-decoration: inherit ! important; } img { border: none; } img.tex { vertical-align: middle; } span.texhtml { font-family: serif; } div.townBox { position:relative; float:right; background:White; margin-left:1em; border: 1px solid gray; padding:0.3em; width: 200px; overflow: hidden; clear: right; } div.townBox dl { padding: 0; margin: 0 0 0.3em 0; font-size: 96%; } div.townBox dl dt { background: none; margin: 0.4em 0 0 0; } div.townBox dl dd { margin: 0.1em 0 0 1.1em; background-color: #f3f3f3; } #siteNotice { display: none; } table.gallery { border: 1px solid #cccccc; margin: 2px; padding: 2px; background-color:#ffffff; } table.gallery tr { vertical-align:top; } div.gallerybox { border: 1px solid #cccccc; margin: 2px; background-color:#f9f9f9; width: 150px; } div.gallerybox div.thumb { text-align: center; border: 1px solid #cccccc; margin: 2px; } div.gallerytext { font-size: 94%; padding: 2px 4px; } /* ** Diff rendering */ table.diff { background:white; } td.diff-otitle { background:#ffffff; } td.diff-ntitle { background:#ffffff; } td.diff-addedline { background:#ccffcc; font-size: smaller; border: solid 2px black; } td.diff-deletedline { background:#ffffaa; font-size: smaller; border: dotted 2px black; } td.diff-context { background:#eeeeee; font-size: smaller; } .diffchange { color: silver; font-weight: bold; text-decoration: underline; } 123_:http://proteopedia.org/wiki/skins/monobook/handheld.css?97Obplist00 X$versionT$topY$archiverX$objects_WebResourceResponse_NSKeyedArchiver &,-345MNOPQRSTUVWXYZ[\]^_cdU$null  !"#$%V$classR$3R$8S$10S$11R$5R$6R$4R$7R$2R$9R$0R$1 '()$+WNS.base[NS.relative_:http://proteopedia.org/wiki/skins/monobook/handheld.css?97./01X$classesZ$classname12UNSURLXNSObject#A^D(r 6789CWNS.keysZNS.objects:;<=>?@AB DEFGHIJKL]Last-Modified]Accept-RangesVServer\Content-TypeTDate^Content-LengthTEtagUX-PadZConnection_Sat, 24 Nov 2007 02:58:31 GMTUbytes_Apache/2.2.10 (Fedora)Xtext/css_Sun, 09 May 2010 02:05:00 GMTU23281_"4a84525-5af1-43fa3e7fa43c0"_avoid browser bugUclose./`aab2_NSMutableDictionary\NSDictionaryZ./effg2_NSHTTPURLResponse]NSURLResponse)27:PRd  INWbekt}"-MSlu  h.OZ/* ** MediaWiki 'monobook' style sheet for CSS2-capable browsers. ** Copyright Gabriel Wicke - http://wikidev.net/ ** License: GPL (http://www.gnu.org/copyleft/gpl.html) ** ** Loosely based on http://www.positioniseverything.net/ordered-floats.html by Big John ** and the Plone 2.0 styles, see http://plone.org/ (Alexander Limi,Joe Geldart & Tom Croucher, ** Michael Zeltner and Geir Bækholt) ** All you guys rock :) */ /** * Stylesheet for handhelds. All rules not marked media-specific are shared * with main.css and should be updated in tandem. The rules can't be in the * same file because old browsers like IE5 won't obey @media rules. * * Rules that are handheld-specific are given @media rules in case old browsers * don't recognize the media attribute and load this file anyway. */ #content { background: white; color: black; border: 1px solid #aaa; border-right: none; line-height: 1.5em; } /* the left column width is specified in class .portlet */ /* Font size: ** We take advantage of keyword scaling- browsers won't go below 9px ** More at http://www.w3.org/2003/07/30-font-size ** http://style.cleverchimp.com/font_size_intervals/altintervals.html */ body { font: x-small sans-serif; background: #f9f9f9 url(headbg.jpg) 0 0 no-repeat; color: black; margin: 0; padding: 0; } /* scale back up to a sane default */ #globalWrapper { font-size: 127%; width: 100%; margin: 0; padding: 0; } .visualClear { clear: both; } /* general styles */ table { font-size: 100%; color: black; /* we don't want the bottom borders of

s to be visible through floated tables */ background-color: white; } a { text-decoration: none; color: #002bb8; background: none; } a:visited { color: #5a3696; } a:active { color: #faa700; } a:hover { text-decoration: underline; } a.stub { color: #772233; } a.new, #p-personal a.new { color: #ba0000; } a.new:visited, #p-personal a.new:visited { color: #a55858; } img { border: none; vertical-align: middle; } p img { margin: 0; } hr { height: 1px; color: #aaa; background-color: #aaa; border: 0; margin: .2em 0 .2em 0; } h1, h2, h3, h4, h5, h6 { color: black; background: none; font-weight: normal; margin: 0; padding-top: .5em; padding-bottom: .17em; border-bottom: 1px solid #aaa; } h1 { font-size: 188%; } h1 .editsection { font-size: 53%; } h2 { font-size: 150%; } h2 .editsection { font-size: 67%; } h3, h4, h5, h6 { border-bottom: none; font-weight: bold; } h3 { font-size: 132%; } h3 .editsection { font-size: 76%; font-weight: normal; } h4 { font-size: 116%; } h4 .editsection { font-size: 86%; font-weight: normal; } h5 { font-size: 100%; } h5 .editsection { font-weight: normal; } h6 { font-size: 80%; } h6 .editsection { font-size: 125%; font-weight: normal; } .editsection { float: right; margin-left: 5px; } ul { line-height: 1.5em; list-style-type: square; margin: .3em 0 0 1.5em; padding: 0; list-style-image: url(bullet.gif); } ol { line-height: 1.5em; margin: .3em 0 0 3.2em; padding: 0; list-style-image: none; } li { margin-bottom: .1em; } dt { font-weight: bold; margin-bottom: .1em; } dl { margin-top: .2em; margin-bottom: .5em; } dd { line-height: 1.5em; margin-left: 2em; margin-bottom: .1em; } fieldset { border: 1px solid #2f6fab; margin: 1em 0 1em 0; padding: 0 1em 1em; line-height: 1.5em; } legend { padding: .5em; font-size: 95%; } form { border: none; margin: 0; } textarea { width: 100%; padding: .1em; } input.historysubmit { padding: 0 .3em .3em .3em !important; font-size: 94%; cursor: pointer; height: 1.7em !important; margin-left: 1.6em; } select { vertical-align: top; } abbr, acronym, .explain { border-bottom: 1px dotted black; color: black; background: none; cursor: help; } q { font-family: Times, "Times New Roman", serif; font-style: italic; } /* disabled for now blockquote { font-family: Times, "Times New Roman", serif; font-style: italic; }*/ code { background-color: #f9f9f9; } pre { padding: 1em; border: 1px dashed #2f6fab; color: black; background-color: #f9f9f9; line-height: 1.1em; } /* ** the main content area */ #contentSub, #contentSub2 { font-size: 84%; line-height: 1.2em; margin: 0 0 1.4em 1em; color: #7d7d7d; width: auto; } span.subpages { display: block; } /* Some space under the headers in the content area */ #bodyContent h1, #bodyContent h2 { margin-bottom: .6em; } #bodyContent h3, #bodyContent h4, #bodyContent h5 { margin-bottom: .3em; } .firstHeading { margin-bottom: .1em; } /* user notification thing */ .usermessage { background-color: #ffce7b; border: 1px solid #ffa500; color: black; font-weight: bold; margin: 2em 0 1em; padding: .5em 1em; vertical-align: middle; } #siteNotice { text-align: center; font-size: 95%; padding: 0 .9em; } #siteNotice p { margin: 0; padding: 0; } .error { color: red; font-size: larger; } .errorbox, .successbox { font-size: larger; border: 2px solid; padding: .5em 1em; float: left; margin-bottom: 2em; color: #000; } .errorbox { border-color: red; background-color: #fff2f2; } .successbox { border-color: green; background-color: #dfd; } .errorbox h2, .successbox h2 { font-size: 1em; font-weight: bold; display: inline; margin: 0 .5em 0 0; border: none; } #catlinks { border: 1px solid #aaa; background-color: #f9f9f9; padding: 5px; margin-top: 1em; clear: both; } /* currently unused, intended to be used by a metadata box in the bottom-right corner of the content area */ .documentDescription { /* The summary text describing the document */ font-weight: bold; display: block; margin: 1em 0; line-height: 1.5em; } .documentByLine { text-align: right; font-size: 90%; clear: both; font-weight: normal; color: #76797c; } /* emulate center */ .center { width: 100%; text-align: center; } *.center * { margin-left: auto; margin-right: auto; } /* small for tables and similar */ .small, .small * { font-size: 94%; } table.small { font-size: 100%; } /* ** content styles */ #toc, .toc, .mw-warning { border: 1px solid #aaa; background-color: #f9f9f9; padding: 5px; font-size: 95%; } #toc h2, .toc h2 { display: inline; border: none; padding: 0; font-size: 100%; font-weight: bold; } #toc #toctitle, .toc #toctitle, #toc .toctitle, .toc .toctitle { text-align: center; } #toc ul, .toc ul { list-style-type: none; list-style-image: none; margin-left: 0; padding-left: 0; text-align: left; } #toc ul ul, .toc ul ul { margin: 0 0 0 2em; } #toc .toctoggle, .toc .toctoggle { font-size: 94%; } .mw-warning { margin-left: 50px; margin-right: 50px; text-align: center; } /* images */ div.floatright, table.floatright { clear: right; float: right; position: relative; margin: 0 0 .5em .5em; border: 0; /* border: .5em solid white; border-width: .5em 0 .8em 1.4em; */ } div.floatright p { font-style: italic; } div.floatleft, table.floatleft { float: left; clear: left; position: relative; margin: 0 .5em .5em 0; border: 0; /* margin: .3em .5em .5em 0; border: .5em solid white; border-width: .5em 1.4em .8em 0; */ } div.floatleft p { font-style: italic; } /* thumbnails */ div.thumb { margin-bottom: .5em; border-style: solid; border-color: white; width: auto; } div.thumbinner { border: 1px solid #ccc; padding: 3px !important; background-color: #f9f9f9; font-size: 94%; text-align: center; overflow: hidden; } html .thumbimage { border: 1px solid #ccc; } html .thumbcaption { border: none; text-align: left; line-height: 1.4em; padding: 3px !important; font-size: 94%; } div.magnify { float: right; border: none !important; background: none !important; } div.magnify a, div.magnify img { display: block; border: none !important; background: none !important; } div.tright { clear: right; float: right; border-width: .5em 0 .8em 1.4em; } div.tleft { float: left; clear: left; margin-right: .5em; border-width: .5em 1.4em .8em 0; } .hiddenStructure { display: none; speak: none; } img.tex { vertical-align: middle; } span.texhtml { font-family: serif; } /* ** classes for special content elements like town boxes ** intended to be referenced directly from the wiki src */ /* ** User styles */ /* table standards */ table.rimage { float: right; position: relative; margin-left: 1em; margin-bottom: 1em; text-align: center; } .toccolours { border: 1px solid #aaa; background-color: #f9f9f9; padding: 5px; font-size: 95%; } div.townBox { position: relative; float: right; background: white; margin-left: 1em; border: 1px solid gray; padding: .3em; width: 200px; overflow: hidden; clear: right; } div.townBox dl { padding: 0; margin: 0 0 .3em; font-size: 96%; } div.townBox dl dt { background: none; margin: .4em 0 0; } div.townBox dl dd { margin: .1em 0 0 1.1em; background-color: #f3f3f3; } /* ** edit views etc */ .special li { line-height: 1.4em; margin: 0; padding: 0; } /* Page history styling */ /* the auto-generated edit comments */ .autocomment { color: gray; } #pagehistory span.user { margin-left: 1.4em; margin-right: .4em; } #pagehistory span.minor { font-weight: bold; } #pagehistory li { border: 1px solid white; } #pagehistory li.selected { background-color: #f9f9f9; border: 1px dashed #aaa; } /* ** Diff rendering */ table.diff, td.diff-otitle, td.diff-ntitle { background-color: white; } td.diff-addedline { background: #cfc; font-size: smaller; } td.diff-deletedline { background: #ffa; font-size: smaller; } td.diff-context { background: #eee; font-size: smaller; } span.diffchange { color: red; font-weight: bold; } /* ** keep the whitespace in front of the ^=, hides rule from konqueror ** this is css3, the validator doesn't like it when validating as css2 */ #bodyContent a.external, #bodyContent a[href ^="gopher://"] { background: url(external.png) center right no-repeat; padding-right: 13px; } #bodyContent a[href ^="https://"], .link-https { background: url(lock_icon.gif) center right no-repeat; padding-right: 16px; } #bodyContent a[href ^="mailto:"], .link-mailto { background: url(mail_icon.gif) center right no-repeat; padding-right: 18px; } #bodyContent a[href ^="news://"] { background: url(news_icon.png) center right no-repeat; padding-right: 18px; } #bodyContent a[href ^="ftp://"], .link-ftp { background: url(file_icon.gif) center right no-repeat; padding-right: 18px; } #bodyContent a[href ^="irc://"], .link-irc { background: url(discussionitem_icon.gif) center right no-repeat; padding-right: 18px; } #bodyContent a.external[href $=".ogg"], #bodyContent a.external[href $=".OGG"], #bodyContent a.external[href $=".mid"], #bodyContent a.external[href $=".MID"], #bodyContent a.external[href $=".midi"], #bodyContent a.external[href $=".MIDI"], #bodyContent a.external[href $=".mp3"], #bodyContent a.external[href $=".MP3"], #bodyContent a.external[href $=".wav"], #bodyContent a.external[href $=".WAV"], #bodyContent a.external[href $=".wma"], #bodyContent a.external[href $=".WMA"], .link-audio { background: url("audio.png") center right no-repeat; padding-right: 13px; } #bodyContent a.external[href $=".ogm"], #bodyContent a.external[href $=".OGM"], #bodyContent a.external[href $=".avi"], #bodyContent a.external[href $=".AVI"], #bodyContent a.external[href $=".mpeg"], #bodyContent a.external[href $=".MPEG"], #bodyContent a.external[href $=".mpg"], #bodyContent a.external[href $=".MPG"], .link-video { background: url("video.png") center right no-repeat; padding-right: 13px; } #bodyContent a.external[href $=".pdf"], #bodyContent a.external[href $=".PDF"], #bodyContent a.external[href *=".pdf#"], #bodyContent a.external[href *=".PDF#"], #bodyContent a.external[href *=".pdf?"], #bodyContent a.external[href *=".PDF?"], .link-document { background: url("document.png") center right no-repeat; padding-right: 12px; } /* disable interwiki styling */ #bodyContent a.extiw, #bodyContent a.extiw:active { color: #36b; background: none; padding: 0; } #bodyContent a.external { color: #36b; } /* this can be used in the content area to switch off special external link styling */ #bodyContent .plainlinks a { background: none !important; padding: 0 !important; } /* ** Structural Elements */ /* ** general portlet styles (elements in the quickbar) */ .portlet { border: none; margin: 0 0 .5em; padding: 0; float: none; width: 11.6em; overflow: hidden; } .portlet h4 { font-size: 95%; font-weight: normal; white-space: nowrap; } .portlet h5 { background: transparent; padding: 0 1em 0 .5em; display: inline; height: 1em; text-transform: lowercase; font-size: 91%; font-weight: normal; white-space: nowrap; } .portlet h6 { background: #ffae2e; border: 1px solid #2f6fab; border-style: solid solid none solid; padding: 0 1em 0 1em; text-transform: lowercase; display: block; font-size: 1em; height: 1.2em; font-weight: normal; white-space: nowrap; } .pBody { font-size: 95%; background-color: white; color: black; border-collapse: collapse; border: 1px solid #aaa; padding: 0 .8em .3em .5em; } .portlet h1, .portlet h2, .portlet h3, .portlet h4 { margin: 0; padding: 0; } .portlet ul { line-height: 1.5em; list-style-type: square; list-style-image: url(bullet.gif); font-size: 95%; } .portlet li { padding: 0; margin: 0; } /* ** Logo properties */ @media handheld { #p-logo { display: none } } /* ** the navigation portlet */ #p-navigation .pBody { padding-right: 0; } #p-navigation li.active a, #p-navigation li.active a:hover { text-decoration: none; font-weight: bold; } /* ** Search portlet */ input.searchButton { margin-top: 1px; font-size: 95%; } #searchGoButton { padding-left: .5em; padding-right: .5em; font-weight: bold; } #searchInput { width: 10.9em; margin: 0; font-size: 95%; } #p-search .pBody { padding: .5em .4em .4em .4em; text-align: center; } /* ** the personal toolbar */ #p-personal ul { text-transform: lowercase; } #p-personal li.active { font-weight: bold; } /* ** the page-related actions- page/talk, edit etc */ #p-cactions .hiddenStructure { display: none; } #p-cactions li a { text-transform: lowercase; } /* TODO: #t-iscite is only used by the Cite extension, come up with some * system which allows extensions to add to this file on the fly */ #t-ispermalink, #t-iscite { color: #999; } /* ** footer */ #footer { background-color: white; border-top: 1px solid #fabd23; border-bottom: 1px solid #fabd23; margin: .6em 0 1em 0; padding: .4em 0 1.2em 0; text-align: center; font-size: 90%; } #footer li { display: inline; margin: 0 1.3em; } /* hide from incapable browsers */ head:first-child+body #footer li { white-space: nowrap; } #f-poweredbyico, #f-copyrightico { margin: 0 8px; position: relative; top: -2px; /* Bump it up just a tad */ } #f-poweredbyico { float: right; height: 1%; } #f-copyrightico { float: left; height: 1%; } /* js pref toc */ #preftoc { margin: 0; padding: 0; width: 100%; clear: both; } #preftoc li { background-color: #f0f0f0; color: #000; } #preftoc li.selected { font-weight: bold; background-color: #f9f9f9; border: 1px solid #aaa; border-bottom: none; cursor: default; top: 1px; padding-top: 2px; margin-right: -3px; } #preftoc > li.selected { top: 2px; } #preftoc a, #preftoc a:active { display: block; color: #000; padding: 0 .7em; position: relative; text-decoration: none; } #preftoc li.selected a { cursor: default; text-decoration: none; } #prefcontrol { padding-top: 2em; clear: both; } #preferences { margin: 0; border: 1px solid #aaa; clear: both; padding: 1.5em; background-color: #F9F9F9; } .prefsection { border: none; padding: 0; margin: 0; } .prefsection fieldset { border: 1px solid #aaa; float: left; margin-right: 2em; } .prefsection legend { font-weight: bold; } .prefsection table, .prefsection legend { background-color: #F9F9F9; } div.prefsectiontip { font-size: 95%; margin-top: 0; background-color: #FFC1C1; padding: .2em .7em; clear: both; } .btnSavePrefs { font-weight: bold; padding-left: .3em; padding-right: .3em; } .preferences-login { clear: both; margin-bottom: 1.5em; } .prefcache { font-size: 90%; margin-top: 2em; } div#userloginForm form, div#userlogin form#userlogin2 { margin: 0 3em 1em 0; border: 1px solid #aaa; clear: both; padding: 1.5em 2em; background-color: #f9f9f9; float: left; } div#userloginForm table, div#userlogin form#userlogin2 table { background-color: #f9f9f9; } div#userloginForm h2, div#userlogin form#userlogin2 h2 { padding-top: 0; } div#userlogin .captcha { border: 1px solid #bbb; padding: 1.5em 2em; width: 400px; background-color: white; } #userloginprompt, #languagelinks { font-size: 85%; } #login-sectiontip { font-size: 85%; line-height: 1.2; padding-top: 2em; } #userlogin .loginText, #userlogin .loginPassword { width: 12em; } #userloginlink a, #wpLoginattempt, #wpCreateaccount { font-weight: bold; } /* more IE fixes */ /* float/negative margin brokenness */ * html #footer {margin-top: 0;} * html #column-content { display: inline; margin-bottom: 0; } * html div.editsection { font-size: smaller; } #pagehistory li.selected { position: relative; } /* Mac IE 5.0 fix; floated content turns invisible */ * > html #column-content { float: none; } * > html #column-one { position: absolute; left: 0; top: 0; } * > html #footer { margin-left: 13.2em; } .redirectText { font-size: 150%; margin: 5px; } .printfooter { display: none; } .not-patrolled { background-color: #ffa; } div.patrollink { font-size: 75%; text-align: right; } span.newpage, span.minor, span.searchmatch, span.bot { font-weight: bold; } span.unpatrolled { font-weight: bold; color: red; } span.searchmatch { color: red; } .sharedUploadNotice { font-style: italic; } span.updatedmarker { color: black; background-color: #0f0; } span.newpageletter { font-weight: bold; color: black; background-color: yellow; } span.minoreditletter { color: black; background-color: #c5ffe6; } table.gallery { border: 1px solid #ccc; margin: 2px; padding: 2px; background-color: white; } table.gallery tr { vertical-align: top; } table.gallery td { vertical-align: top; background-color: #f9f9f9; border: solid 2px white; } table.gallery td.galleryheader { text-align: center; font-weight: bold; } div.gallerybox { margin: 2px; width: 150px; } div.gallerybox div.thumb { text-align: center; border: 1px solid #ccc; margin: 2px; } div.gallerytext { font-size: 94%; padding: 2px 4px; } span.comment { font-style: italic; } span.changedby { font-size: 95%; } .previewnote { text-indent: 3em; color: #c00; border-bottom: 1px solid #aaa; padding-bottom: 1em; margin-bottom: 1em; } .previewnote p { margin: 0; padding: 0; } .editExternally { border: 1px solid gray; background-color: #ffffff; padding: 3px; margin-top: 0.5em; float: left; font-size: small; text-align: center; } .editExternallyHelp { font-style: italic; color: gray; } li span.deleted, span.history-deleted { text-decoration: line-through; color: #888; font-style: italic; } .toggle { margin-left: 2em; text-indent: -2em; } /* Classes for EXIF data display */ table.mw_metadata { font-size: 0.8em; margin-left: 0.5em; margin-bottom: 0.5em; width: 300px; } table.mw_metadata caption { font-weight: bold; } table.mw_metadata th { font-weight: normal; } table.mw_metadata td { padding: 0.1em; } table.mw_metadata { border: none; border-collapse: collapse; } table.mw_metadata td, table.mw_metadata th { text-align: center; border: 1px solid #aaaaaa; padding-left: 0.1em; padding-right: 0.1em; } table.mw_metadata th { background-color: #f9f9f9; } table.mw_metadata td { background-color: #fcfcfc; } table.collapsed tr.collapsable { display: none; } /* filetoc */ ul#filetoc { text-align: center; border: 1px solid #aaaaaa; background-color: #f9f9f9; padding: 5px; font-size: 95%; margin-bottom: 0.5em; margin-left: 0; margin-right: 0; } #filetoc li { display: inline; list-style-type: none; padding-right: 2em; } input#wpSummary { width: 80%; } /* @bug 1714 */ input#wpSave, input#wpDiff { margin-right: 0.33em; } #editform .editOptions { display: inline; } #wpSave { font-weight: bold; } /* Classes for article validation */ table.revisionform_default { border: 1px solid #000000; } table.revisionform_focus { border: 1px solid #000000; background-color:#00BBFF; } tr.revision_tr_default { background-color:#EEEEEE; } tr.revision_tr_first { background-color:#DDDDDD; } p.revision_saved { color: green; font-weight:bold; } #mw_trackbacks { border: solid 1px #bbbbff; background-color: #eeeeff; padding: 0.2em; } /* Allmessages table */ #allmessagestable th { background-color: #b2b2ff; } #allmessagestable tr.orig { background-color: #ffe2e2; } #allmessagestable tr.new { background-color: #e2ffe2; } #allmessagestable tr.def { background-color: #f0f0ff; } /* noarticletext */ div.noarticletext { border: 1px solid #ccc; background: #fff; padding: .2em 1em; color: #000; } div#searchTargetContainer { left: 10px; top: 10px; width: 90%; background: white; } div#searchTarget { padding: 3px; margin: 5px; background: #F0F0F0; border: solid 1px blue; } div#searchTarget ul li { list-style: none; } div#searchTarget ul li:before { color: orange; content: "\00BB \0020"; } div.multipageimagenavbox { border: solid 1px silver; padding: 4px; margin: 1em; -moz-border-radius: 6px; background: #f0f0f0; } div.multipageimagenavbox div.thumb { border: none; margin-left: 2em; margin-right: 2em; } div.multipageimagenavbox hr { margin: 6px; } table.multipageimage td { text-align: center; } /** Special:Version */ table#sv-ext, table#sv-hooks { margin: 1em; padding:0em; } #sv-ext td, #sv-hooks td, #sv-ext th, #sv-hooks th { border: 1px solid #A0A0A0; padding: 0 0.15em 0 0.15em; } #sv-ext th, #sv-hooks th { background-color: #F0F0F0; color: black; padding: 0 0.15em 0 0.15em; } tr.sv-space{ height: 0.8em; border:none; } tr.sv-space td { display: none; } /* Table pager (e.g. Special:Imagelist) - remove underlines from the navigation link - collapse borders - set the borders to outsets (similar to Special:Allmessages) - remove line wrapping for all td and th, set background color - restore line wrapping for the last two table cells (description and size) */ .TablePager_nav a { text-decoration: none; } .TablePager { border-collapse: collapse; } .TablePager, .TablePager td, .TablePager th { border: 0.15em solid #777777; padding: 0 0.15em 0 0.15em; } .TablePager th { background-color: #eeeeff } .TablePager td { background-color: #ffffff } .TablePager tr:hover td { background-color: #eeeeff } .imagelist td, .imagelist th { white-space: nowrap } .imagelist .TablePager_col_links { background-color: #eeeeff } .imagelist .TablePager_col_img_description { white-space: normal } .imagelist th.TablePager_sort { background-color: #ccccff } .templatesUsed { margin-top: 1.5em; } .mw-summary-preview { margin: 0.1em 0; } #toolbar { clear: both; } .mw-plusminus-null { color: #aaa; } @media handheld { .nonessential { /* Kill big bulky stuff that will clog up the screen */ display: none; } }5678_7http://proteopedia.org/wiki/skins/common/wikibits.js?97_application/x-javascriptObplist00 X$versionT$topY$archiverX$objects_WebResourceResponse_NSKeyedArchiver &,-345KLMNOPQRSTUVWXYZ[_`U$null  !"#$%V$classR$3R$8S$10S$11R$5R$6R$4R$7R$2R$9R$0R$1 '()$+WNS.base[NS.relative_7http://proteopedia.org/wiki/skins/common/wikibits.js?97./01X$classesZ$classname12UNSURLXNSObject#A^EE 6789BWNS.keysZNS.objects:;<=>?@A CDEFGHIJ]Accept-RangesVServer\Content-TypeTDate^Content-LengthTEtagZConnection]Last-ModifiedUbytes_Apache/2.2.10 (Fedora)_application/x-javascript_Sun, 09 May 2010 02:05:01 GMTU40759_"4a844c2-9f37-437187d31c880"Uclose_Tue, 07 Aug 2007 09:17:06 GMT./\]]^2_NSMutableDictionary\NSDictionary7./abbc2_NSHTTPURLResponse]NSURLResponse)27:PRd DIR]`foxz";Vv| dO7// MediaWiki JavaScript support functions var clientPC = navigator.userAgent.toLowerCase(); // Get client info var is_gecko = ((clientPC.indexOf('gecko')!=-1) && (clientPC.indexOf('spoofer')==-1) && (clientPC.indexOf('khtml') == -1) && (clientPC.indexOf('netscape/7.0')==-1)); var is_safari = ((clientPC.indexOf('applewebkit')!=-1) && (clientPC.indexOf('spoofer')==-1)); var is_khtml = (navigator.vendor == 'KDE' || ( document.childNodes && !document.all && !navigator.taintEnabled )); // For accesskeys var is_ff2_win = (clientPC.indexOf('firefox/2')!=-1 || clientPC.indexOf('minefield/3')!=-1) && clientPC.indexOf('windows')!=-1; var is_ff2_x11 = (clientPC.indexOf('firefox/2')!=-1 || clientPC.indexOf('minefield/3')!=-1) && clientPC.indexOf('x11')!=-1; if (clientPC.indexOf('opera') != -1) { var is_opera = true; var is_opera_preseven = (window.opera && !document.childNodes); var is_opera_seven = (window.opera && document.childNodes); var is_opera_95 = (clientPC.search(/opera\/(9.[5-9]|[1-9][0-9])/)!=-1); } // Global external objects used by this script. /*extern ta, stylepath, skin */ // add any onload functions in this hook (please don't hard-code any events in the xhtml source) var doneOnloadHook; if (!window.onloadFuncts) { var onloadFuncts = []; } function addOnloadHook(hookFunct) { // Allows add-on scripts to add onload functions onloadFuncts[onloadFuncts.length] = hookFunct; } function hookEvent(hookName, hookFunct) { if (window.addEventListener) { window.addEventListener(hookName, hookFunct, false); } else if (window.attachEvent) { window.attachEvent("on" + hookName, hookFunct); } } // document.write special stylesheet links if (typeof stylepath != 'undefined' && typeof skin != 'undefined') { if (is_opera_preseven) { document.write(''); } else if (is_opera_seven && !is_opera_95) { document.write(''); } else if (is_opera_95) { document.write(''); } else if (is_khtml) { document.write(''); } } if (wgBreakFrames) { // Un-trap us from framesets if (window.top != window) { window.top.location = window.location; } } // for enhanced RecentChanges function toggleVisibility(_levelId, _otherId, _linkId) { var thisLevel = document.getElementById(_levelId); var otherLevel = document.getElementById(_otherId); var linkLevel = document.getElementById(_linkId); if (thisLevel.style.display == 'none') { thisLevel.style.display = 'block'; otherLevel.style.display = 'none'; linkLevel.style.display = 'inline'; } else { thisLevel.style.display = 'none'; otherLevel.style.display = 'inline'; linkLevel.style.display = 'none'; } } function historyRadios(parent) { var inputs = parent.getElementsByTagName('input'); var radios = []; for (var i = 0; i < inputs.length; i++) { if (inputs[i].name == "diff" || inputs[i].name == "oldid") { radios[radios.length] = inputs[i]; } } return radios; } // check selection and tweak visibility/class onclick function diffcheck() { var dli = false; // the li where the diff radio is checked var oli = false; // the li where the oldid radio is checked var hf = document.getElementById('pagehistory'); if (!hf) { return true; } var lis = hf.getElementsByTagName('li'); for (var i=0;i= 0) ? "-" : "+") + ((tzHour < 10) ? "0" : "") + tzHour + ((tzMin < 10) ? "0" : "") + tzMin; if (tz != tzString) { var junk = msg.split('$1'); document.write(junk[0] + "UTC" + tzString + junk[1]); } } function unhidetzbutton() { var tzb = document.getElementById('guesstimezonebutton'); if (tzb) { tzb.style.display = 'inline'; } } // in [-]HH:MM format... // won't yet work with non-even tzs function fetchTimezone() { // FIXME: work around Safari bug var localclock = new Date(); // returns negative offset from GMT in minutes var tzRaw = localclock.getTimezoneOffset(); var tzHour = Math.floor( Math.abs(tzRaw) / 60); var tzMin = Math.abs(tzRaw) % 60; var tzString = ((tzRaw >= 0) ? "-" : "") + ((tzHour < 10) ? "0" : "") + tzHour + ":" + ((tzMin < 10) ? "0" : "") + tzMin; return tzString; } function guessTimezone(box) { document.getElementsByName("wpHourDiff")[0].value = fetchTimezone(); } function showTocToggle() { if (document.createTextNode) { // Uses DOM calls to avoid document.write + XHTML issues var linkHolder = document.getElementById('toctitle'); if (!linkHolder) { return; } var outerSpan = document.createElement('span'); outerSpan.className = 'toctoggle'; var toggleLink = document.createElement('a'); toggleLink.id = 'togglelink'; toggleLink.className = 'internal'; toggleLink.href = 'javascript:toggleToc()'; toggleLink.appendChild(document.createTextNode(tocHideText)); outerSpan.appendChild(document.createTextNode('[')); outerSpan.appendChild(toggleLink); outerSpan.appendChild(document.createTextNode(']')); linkHolder.appendChild(document.createTextNode(' ')); linkHolder.appendChild(outerSpan); var cookiePos = document.cookie.indexOf("hidetoc="); if (cookiePos > -1 && document.cookie.charAt(cookiePos + 8) == 1) { toggleToc(); } } } function changeText(el, newText) { // Safari work around if (el.innerText) { el.innerText = newText; } else if (el.firstChild && el.firstChild.nodeValue) { el.firstChild.nodeValue = newText; } } function toggleToc() { var toc = document.getElementById('toc').getElementsByTagName('ul')[0]; var toggleLink = document.getElementById('togglelink'); if (toc && toggleLink && toc.style.display == 'none') { changeText(toggleLink, tocHideText); toc.style.display = 'block'; document.cookie = "hidetoc=0"; } else { changeText(toggleLink, tocShowText); toc.style.display = 'none'; document.cookie = "hidetoc=1"; } } var mwEditButtons = []; var mwCustomEditButtons = []; // eg to add in MediaWiki:Common.js // this function generates the actual toolbar buttons with localized text // we use it to avoid creating the toolbar where javascript is not enabled function addButton(imageFile, speedTip, tagOpen, tagClose, sampleText, imageId) { // Don't generate buttons for browsers which don't fully // support it. mwEditButtons[mwEditButtons.length] = {"imageId": imageId, "imageFile": imageFile, "speedTip": speedTip, "tagOpen": tagOpen, "tagClose": tagClose, "sampleText": sampleText}; } // this function generates the actual toolbar buttons with localized text // we use it to avoid creating the toolbar where javascript is not enabled function mwInsertEditButton(parent, item) { var image = document.createElement("img"); image.width = 23; image.height = 22; image.className = "mw-toolbar-editbutton"; if (item.imageId) image.id = item.imageId; image.src = item.imageFile; image.border = 0; image.alt = item.speedTip; image.title = item.speedTip; image.style.cursor = "pointer"; image.onclick = function() { insertTags(item.tagOpen, item.tagClose, item.sampleText); return false; }; parent.appendChild(image); return true; } function mwSetupToolbar() { var toolbar = document.getElementById('toolbar'); if (!toolbar) { return false; } var textbox = document.getElementById('wpTextbox1'); if (!textbox) { return false; } // Don't generate buttons for browsers which don't fully // support it. if (!(document.selection && document.selection.createRange) && textbox.selectionStart === null) { return false; } for (var i = 0; i < mwEditButtons.length; i++) { mwInsertEditButton(toolbar, mwEditButtons[i]); } for (var i = 0; i < mwCustomEditButtons.length; i++) { mwInsertEditButton(toolbar, mwCustomEditButtons[i]); } return true; } function escapeQuotes(text) { var re = new RegExp("'","g"); text = text.replace(re,"\\'"); re = new RegExp("\\n","g"); text = text.replace(re,"\\n"); return escapeQuotesHTML(text); } function escapeQuotesHTML(text) { var re = new RegExp('&',"g"); text = text.replace(re,"&"); re = new RegExp('"',"g"); text = text.replace(re,"""); re = new RegExp('<',"g"); text = text.replace(re,"<"); re = new RegExp('>',"g"); text = text.replace(re,">"); return text; } // apply tagOpen/tagClose to selection in textarea, // use sampleText instead of selection if there is none function insertTags(tagOpen, tagClose, sampleText) { var txtarea; if (document.editform) { txtarea = document.editform.wpTextbox1; } else { // some alternate form? take the first one we can find var areas = document.getElementsByTagName('textarea'); txtarea = areas[0]; } var selText, isSample = false; if (document.selection && document.selection.createRange) { // IE/Opera //save window scroll position if (document.documentElement && document.documentElement.scrollTop) var winScroll = document.documentElement.scrollTop else if (document.body) var winScroll = document.body.scrollTop; //get current selection txtarea.focus(); var range = document.selection.createRange(); selText = range.text; //insert tags checkSelectedText(); range.text = tagOpen + selText + tagClose; //mark sample text as selected if (isSample && range.moveStart) { if (window.opera) tagClose = tagClose.replace(/\n/g,''); range.moveStart('character', - tagClose.length - selText.length); range.moveEnd('character', - tagClose.length); } range.select(); //restore window scroll position if (document.documentElement && document.documentElement.scrollTop) document.documentElement.scrollTop = winScroll else if (document.body) document.body.scrollTop = winScroll; } else if (txtarea.selectionStart || txtarea.selectionStart == '0') { // Mozilla //save textarea scroll position var textScroll = txtarea.scrollTop; //get current selection txtarea.focus(); var startPos = txtarea.selectionStart; var endPos = txtarea.selectionEnd; selText = txtarea.value.substring(startPos, endPos); //insert tags checkSelectedText(); txtarea.value = txtarea.value.substring(0, startPos) + tagOpen + selText + tagClose + txtarea.value.substring(endPos, txtarea.value.length); //set new selection if (isSample) { txtarea.selectionStart = startPos + tagOpen.length; txtarea.selectionEnd = startPos + tagOpen.length + selText.length; } else { txtarea.selectionStart = startPos + tagOpen.length + selText.length + tagClose.length; txtarea.selectionEnd = txtarea.selectionStart; } //restore textarea scroll position txtarea.scrollTop = textScroll; } function checkSelectedText(){ if (!selText) { selText = sampleText; isSample = true; } else if (selText.charAt(selText.length - 1) == ' ') { //exclude ending space char selText = selText.substring(0, selText.length - 1); tagClose += ' ' } } } /** * Set the accesskey prefix based on browser detection. */ var tooltipAccessKeyPrefix = 'alt-'; if (is_opera) { tooltipAccessKeyPrefix = 'shift-esc-'; } else if (is_safari || navigator.userAgent.toLowerCase().indexOf('mac') != -1 || navigator.userAgent.toLowerCase().indexOf('konqueror') != -1 ) { tooltipAccessKeyPrefix = 'ctrl-'; } else if (is_ff2_x11 || is_ff2_win) { tooltipAccessKeyPrefix = 'alt-shift-'; } var tooltipAccessKeyRegexp = /\[(ctrl-)?(alt-)?(shift-)?(esc-)?.\]$/; /** * Add the appropriate prefix to the accesskey shown in the tooltip. * If the nodeList parameter is given, only those nodes are updated; * otherwise, all the nodes that will probably have accesskeys by * default are updated. * * @param Array nodeList -- list of elements to update */ function updateTooltipAccessKeys( nodeList ) { if ( !nodeList ) { // skins without a "column-one" element don't seem to have links with accesskeys either var columnOne = document.getElementById("column-one"); if ( columnOne ) updateTooltipAccessKeys( columnOne.getElementsByTagName("a") ); // these are rare enough that no such optimization is needed updateTooltipAccessKeys( document.getElementsByTagName("input") ); updateTooltipAccessKeys( document.getElementsByTagName("label") ); return; } for ( var i = 0; i < nodeList.length; i++ ) { var element = nodeList[i]; var tip = element.getAttribute("title"); var key = element.getAttribute("accesskey"); if ( key && tooltipAccessKeyRegexp.exec(tip) ) { tip = tip.replace(tooltipAccessKeyRegexp, "["+tooltipAccessKeyPrefix+key+"]"); element.setAttribute("title", tip ); } } } /** * Add a link to one of the portlet menus on the page, including: * * p-cactions: Content actions (shown as tabs above the main content in Monobook) * p-personal: Personal tools (shown at the top right of the page in Monobook) * p-navigation: Navigation * p-tb: Toolbox * * This function exists for the convenience of custom JS authors. All * but the first three parameters are optional, though providing at * least an id and a tooltip is recommended. * * By default the new link will be added to the end of the list. To * add the link before a given existing item, pass the DOM node of * that item (easily obtained with document.getElementById()) as the * nextnode parameter; to add the link _after_ an existing item, pass * the node's nextSibling instead. * * @param String portlet -- id of the target portlet ("p-cactions", "p-personal", "p-navigation" or "p-tb") * @param String href -- link URL * @param String text -- link text (will be automatically lowercased by CSS for p-cactions in Monobook) * @param String id -- id of the new item, should be unique and preferably have the appropriate prefix ("ca-", "pt-", "n-" or "t-") * @param String tooltip -- text to show when hovering over the link, without accesskey suffix * @param String accesskey -- accesskey to activate this link (one character, try to avoid conflicts) * @param Node nextnode -- the DOM node before which the new item should be added, should be another item in the same list * * @return Node -- the DOM node of the new item (an LI element) or null */ function addPortletLink(portlet, href, text, id, tooltip, accesskey, nextnode) { var node = document.getElementById(portlet); if ( !node ) return null; node = node.getElementsByTagName( "ul" )[0]; if ( !node ) return null; var link = document.createElement( "a" ); link.appendChild( document.createTextNode( text ) ); link.href = href; var item = document.createElement( "li" ); item.appendChild( link ); if ( id ) item.id = id; if ( accesskey ) { link.setAttribute( "accesskey", accesskey ); tooltip += " ["+accesskey+"]"; } if ( tooltip ) { link.setAttribute( "title", tooltip ); } if ( accesskey && tooltip ) { updateTooltipAccessKeys( new Array( link ) ); } if ( nextnode && nextnode.parentNode == node ) node.insertBefore( item, nextnode ); else node.appendChild( item ); // IE compatibility (?) return item; } /** * Set up accesskeys/tooltips from the deprecated ta array. If doId * is specified, only set up for that id. Note that this function is * deprecated and will not be supported indefinitely -- use * updateTooltipAccessKey() instead. * * @param mixed doId string or null */ function akeytt( doId ) { // A lot of user scripts (and some of the code below) break if // ta isn't defined, so we make sure it is. Explictly using // window.ta avoids a "ta is not defined" error. if (!window.ta) window.ta = new Array; // Make a local, possibly restricted, copy to avoid clobbering // the original. var ta; if ( doId ) { ta = [doId]; } else { ta = window.ta; } // Now deal with evil deprecated ta var watchCheckboxExists = document.getElementById( 'wpWatchthis' ) ? true : false; for (var id in ta) { var n = document.getElementById(id); if (n) { var a = null; var ak = ''; // Are we putting accesskey in it if (ta[id][0].length > 0) { // Is this object a object? If not assume it's the next child. if (n.nodeName.toLowerCase() == "a") { a = n; } else { a = n.childNodes[0]; } // Don't add an accesskey for the watch tab if the watch // checkbox is also available. if (a && ((id != 'ca-watch' && id != 'ca-unwatch') || !watchCheckboxExists)) { a.accessKey = ta[id][0]; ak = ' ['+tooltipAccessKeyPrefix+ta[id][0]+']'; } } else { // We don't care what type the object is when assigning tooltip a = n; ak = ''; } if (a) { a.title = ta[id][1]+ak; } } } } function setupRightClickEdit() { if (document.getElementsByTagName) { var spans = document.getElementsByTagName('span'); for (var i = 0; i < spans.length; i++) { var el = spans[i]; if(el.className == 'editsection') { addRightClickEditHandler(el); } } } } function addRightClickEditHandler(el) { for (var i = 0; i < el.childNodes.length; i++) { var link = el.childNodes[i]; if (link.nodeType == 1 && link.nodeName.toLowerCase() == 'a') { var editHref = link.getAttribute('href'); // find the enclosing (parent) header var prev = el.parentNode; if (prev && prev.nodeType == 1 && prev.nodeName.match(/^[Hh][1-6]$/)) { prev.oncontextmenu = function(e) { if (!e) { e = window.event; } // e is now the event in all browsers var targ; if (e.target) { targ = e.target; } else if (e.srcElement) { targ = e.srcElement; } if (targ.nodeType == 3) { // defeat Safari bug targ = targ.parentNode; } // targ is now the target element // We don't want to deprive the noble reader of a context menu // for the section edit link, do we? (Might want to extend this // to all 's?) if (targ.nodeName.toLowerCase() != 'a' || targ.parentNode.className != 'editsection') { document.location = editHref; return false; } return true; }; } } } } var checkboxes; var lastCheckbox; function setupCheckboxShiftClick() { checkboxes = []; lastCheckbox = null; var inputs = document.getElementsByTagName('input'); addCheckboxClickHandlers(inputs); } function addCheckboxClickHandlers(inputs, start) { if ( !start) start = 0; var finish = start + 250; if ( finish > inputs.length ) finish = inputs.length; for ( var i = start; i < finish; i++ ) { var cb = inputs[i]; if ( !cb.type || cb.type.toLowerCase() != 'checkbox' ) continue; var end = checkboxes.length; checkboxes[end] = cb; cb.index = end; cb.onclick = checkboxClickHandler; } if ( finish < inputs.length ) { setTimeout( function () { addCheckboxClickHandlers(inputs, finish); }, 200 ); } } function checkboxClickHandler(e) { if (typeof e == 'undefined') { e = window.event; } if ( !e.shiftKey || lastCheckbox === null ) { lastCheckbox = this.index; return true; } var endState = this.checked; var start, finish; if ( this.index < lastCheckbox ) { start = this.index + 1; finish = lastCheckbox; } else { start = lastCheckbox; finish = this.index - 1; } for (var i = start; i <= finish; ++i ) { checkboxes[i].checked = endState; } lastCheckbox = this.index; return true; } function toggle_element_activation(ida,idb) { if (!document.getElementById) { return; } document.getElementById(ida).disabled=true; document.getElementById(idb).disabled=false; } function toggle_element_check(ida,idb) { if (!document.getElementById) { return; } document.getElementById(ida).checked=true; document.getElementById(idb).checked=false; } /** * Restore the edit box scroll state following a preview operation, * and set up a form submission handler to remember this state */ function scrollEditBox() { var editBox = document.getElementById( 'wpTextbox1' ); var scrollTop = document.getElementById( 'wpScrolltop' ); var editForm = document.getElementById( 'editform' ); if( editBox && scrollTop ) { if( scrollTop.value ) editBox.scrollTop = scrollTop.value; addHandler( editForm, 'submit', function() { document.getElementById( 'wpScrolltop' ).value = document.getElementById( 'wpTextbox1' ).scrollTop; } ); } } hookEvent( 'load', scrollEditBox ); var allmessages_nodelist = false; var allmessages_modified = false; var allmessages_timeout = false; var allmessages_running = false; function allmessagesmodified() { allmessages_modified = !allmessages_modified; allmessagesfilter(); } function allmessagesfilter() { if ( allmessages_timeout ) window.clearTimeout( allmessages_timeout ); if ( !allmessages_running ) allmessages_timeout = window.setTimeout( 'allmessagesfilter_do();', 500 ); } function allmessagesfilter_do() { if ( !allmessages_nodelist ) return; var text = document.getElementById('allmessagesinput').value; var nodef = allmessages_modified; allmessages_running = true; for ( var name in allmessages_nodelist ) { var nodes = allmessages_nodelist[name]; var display = ( name.indexOf( text ) == -1 ? 'none' : '' ); for ( var i = 0; i < nodes.length; i++) nodes[i].style.display = ( nodes[i].className == "def" && nodef ? 'none' : display ); } if ( text != document.getElementById('allmessagesinput').value || nodef != allmessages_modified ) allmessagesfilter_do(); // repeat allmessages_running = false; } function allmessagesfilter_init() { if ( allmessages_nodelist ) return; var nodelist = new Array(); var templist = new Array(); var table = document.getElementById('allmessagestable'); if ( !table ) return; var rows = document.getElementsByTagName('tr'); for ( var i = 0; i < rows.length; i++ ) { var id = rows[i].getAttribute('id') if ( id && id.substring(0,16) != 'sp-allmessages-r' ) continue; templist[ id ] = rows[i]; } var spans = table.getElementsByTagName('span'); for ( var i = 0; i < spans.length; i++ ) { var id = spans[i].getAttribute('id') if ( id && id.substring(0,17) != 'sp-allmessages-i-' ) continue; if ( !spans[i].firstChild || spans[i].firstChild.nodeType != 3 ) continue; var nodes = new Array(); var row1 = templist[ id.replace('i', 'r1') ]; var row2 = templist[ id.replace('i', 'r2') ]; if ( row1 ) nodes[nodes.length] = row1; if ( row2 ) nodes[nodes.length] = row2; nodelist[ spans[i].firstChild.nodeValue ] = nodes; } var k = document.getElementById('allmessagesfilter'); if (k) { k.style.display = ''; } allmessages_nodelist = nodelist; } hookEvent( "load", allmessagesfilter_init ); /* Written by Jonathan Snook, http://www.snook.ca/jonathan Add-ons by Robert Nyman, http://www.robertnyman.com Author says "The credit comment is all it takes, no license. Go crazy with it!:-)" From http://www.robertnyman.com/2005/11/07/the-ultimate-getelementsbyclassname/ */ function getElementsByClassName(oElm, strTagName, oClassNames){ var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName); var arrReturnElements = new Array(); var arrRegExpClassNames = new Array(); if(typeof oClassNames == "object"){ for(var i=0; i 0) { if (table.tHead && table.tHead.rows.length > 0) { firstRow = table.tHead.rows[table.tHead.rows.length-1]; } else { firstRow = table.rows[0]; } } if (!firstRow) return; // We have a first row: assume it's the header, and make its contents clickable links for (var i = 0; i < firstRow.cells.length; i++) { var cell = firstRow.cells[i]; if ((" "+cell.className+" ").indexOf(" unsortable ") == -1) { cell.innerHTML += '  ↓'; } } if (ts_alternate_row_colors) { ts_alternate(table); } } function ts_getInnerText(el) { if (typeof el == "string") return el; if (typeof el == "undefined") { return el }; if (el.textContent) return el.textContent; // not needed but it is faster if (el.innerText) return el.innerText; // IE doesn't have textContent var str = ""; var cs = el.childNodes; var l = cs.length; for (var i = 0; i < l; i++) { switch (cs[i].nodeType) { case 1: //ELEMENT_NODE str += ts_getInnerText(cs[i]); break; case 3: //TEXT_NODE str += cs[i].nodeValue; break; } } return str; } function ts_resortTable(lnk) { // get the span var span = lnk.getElementsByTagName('span')[0]; var td = lnk.parentNode; var tr = td.parentNode; var column = td.cellIndex; var table = tr.parentNode; while (table && !(table.tagName && table.tagName.toLowerCase() == 'table')) table = table.parentNode; if (!table) return; // Work out a type for the column if (table.rows.length <= 1) return; // Skip the first row if that's where the headings are var rowStart = (table.tHead && table.tHead.rows.length > 0 ? 0 : 1); var itm = ""; for (var i = rowStart; i < table.rows.length; i++) { if (table.rows[i].cells.length > column) { itm = ts_getInnerText(table.rows[i].cells[column]); itm = itm.replace(/^[\s\xa0]+/, "").replace(/[\s\xa0]+$/, ""); if (itm != "") break; } } sortfn = ts_sort_caseinsensitive; if (itm.match(/^\d\d[\/. -][a-zA-Z]{3}[\/. -]\d\d\d\d$/)) sortfn = ts_sort_date; if (itm.match(/^\d\d[\/.-]\d\d[\/.-]\d\d\d\d$/)) sortfn = ts_sort_date; if (itm.match(/^\d\d[\/.-]\d\d[\/.-]\d\d$/)) sortfn = ts_sort_date; if (itm.match(/^[\u00a3$\u20ac]/)) // pound dollar euro sortfn = ts_sort_currency; if (itm.match(/^[\d.,]+\%?$/)) sortfn = ts_sort_numeric; var reverse = (span.getAttribute("sortdir") == 'down'); var newRows = new Array(); for (var j = rowStart; j < table.rows.length; j++) { var row = table.rows[j]; var keyText = ts_getInnerText(row.cells[column]); var oldIndex = (reverse ? -j : j); newRows[newRows.length] = new Array(row, keyText, oldIndex); } newRows.sort(sortfn); var arrowHTML; if (reverse) { arrowHTML = '↓'; newRows.reverse(); span.setAttribute('sortdir','up'); } else { arrowHTML = '↑'; span.setAttribute('sortdir','down'); } // We appendChild rows that already exist to the tbody, so it moves them rather than creating new ones // don't do sortbottom rows for (var i = 0; i < newRows.length; i++) { if ((" "+newRows[i][0].className+" ").indexOf(" sortbottom ") == -1) table.tBodies[0].appendChild(newRows[i][0]); } // do sortbottom rows only for (var i = 0; i < newRows.length; i++) { if ((" "+newRows[i][0].className+" ").indexOf(" sortbottom ") != -1) table.tBodies[0].appendChild(newRows[i][0]); } // Delete any other arrows there may be showing var spans = getElementsByClassName(tr, "span", "sortarrow"); for (var i = 0; i < spans.length; i++) { spans[i].innerHTML = '↓'; } span.innerHTML = arrowHTML; ts_alternate(table); } function ts_dateToSortKey(date) { // y2k notes: two digit years less than 50 are treated as 20XX, greater than 50 are treated as 19XX if (date.length == 11) { switch (date.substr(3,3).toLowerCase()) { case "jan": var month = "01"; break; case "feb": var month = "02"; break; case "mar": var month = "03"; break; case "apr": var month = "04"; break; case "may": var month = "05"; break; case "jun": var month = "06"; break; case "jul": var month = "07"; break; case "aug": var month = "08"; break; case "sep": var month = "09"; break; case "oct": var month = "10"; break; case "nov": var month = "11"; break; case "dec": var month = "12"; break; // default: var month = "00"; } return date.substr(7,4)+month+date.substr(0,2); } else if (date.length == 10) { if (ts_europeandate == false) { return date.substr(6,4)+date.substr(0,2)+date.substr(3,2); } else { return date.substr(6,4)+date.substr(3,2)+date.substr(0,2); } } else if (date.length == 8) { yr = date.substr(6,2); if (parseInt(yr) < 50) { yr = '20'+yr; } else { yr = '19'+yr; } if (ts_europeandate == true) { return yr+date.substr(3,2)+date.substr(0,2); } else { return yr+date.substr(0,2)+date.substr(3,2); } } return "00000000"; } function ts_parseFloat(num) { if (!num) return 0; num = parseFloat(num.replace(/,/, "")); return (isNaN(num) ? 0 : num); } function ts_sort_date(a,b) { var aa = ts_dateToSortKey(a[1]); var bb = ts_dateToSortKey(b[1]); return (aa < bb ? -1 : aa > bb ? 1 : a[2] - b[2]); } function ts_sort_currency(a,b) { var aa = ts_parseFloat(a[1].replace(/[^0-9.]/g,'')); var bb = ts_parseFloat(b[1].replace(/[^0-9.]/g,'')); return (aa != bb ? aa - bb : a[2] - b[2]); } function ts_sort_numeric(a,b) { var aa = ts_parseFloat(a[1]); var bb = ts_parseFloat(b[1]); return (aa != bb ? aa - bb : a[2] - b[2]); } function ts_sort_caseinsensitive(a,b) { var aa = a[1].toLowerCase(); var bb = b[1].toLowerCase(); return (aa < bb ? -1 : aa > bb ? 1 : a[2] - b[2]); } function ts_sort_default(a,b) { return (a[1] < b[1] ? -1 : a[1] > b[1] ? 1 : a[2] - b[2]); } function ts_alternate(table) { // Take object table and get all it's tbodies. var tableBodies = table.getElementsByTagName("tbody"); // Loop through these tbodies for (var i = 0; i < tableBodies.length; i++) { // Take the tbody, and get all it's rows var tableRows = tableBodies[i].getElementsByTagName("tr"); // Loop through these rows // Start at 1 because we want to leave the heading row untouched for (var j = 0; j < tableRows.length; j++) { // Check if j is even, and apply classes for both possible results var oldClasses = tableRows[j].className.split(" "); var newClassName = ""; for (var k = 0; k < oldClasses.length; k++) { if (oldClasses[k] != "" && oldClasses[k] != "even" && oldClasses[k] != "odd") newClassName += oldClasses[k] + " "; } tableRows[j].className = newClassName + (j % 2 == 0 ? "even" : "odd"); } } } /* * End of table sorting code */ /** * Add a cute little box at the top of the screen to inform the user of * something, replacing any preexisting message. * * @param String message HTML to be put inside the right div * @param String className Used in adding a class; should be different for each * call to allow CSS/JS to hide different boxes. null = no class used. * @return Boolean True on success, false on failure */ function jsMsg( message, className ) { if ( !document.getElementById ) { return false; } // We special-case skin structures provided by the software. Skins that // choose to abandon or significantly modify our formatting can just define // an mw-js-message div to start with. var messageDiv = document.getElementById( 'mw-js-message' ); if ( !messageDiv ) { messageDiv = document.createElement( 'div' ); if ( document.getElementById( 'column-content' ) && document.getElementById( 'content' ) ) { // MonoBook, presumably document.getElementById( 'content' ).insertBefore( messageDiv, document.getElementById( 'content' ).firstChild ); } else if ( document.getElementById('content') && document.getElementById( 'article' ) ) { // Non-Monobook but still recognizable (old-style) document.getElementById( 'article').insertBefore( messageDiv, document.getElementById( 'article' ).firstChild ); } else { return false; } } messageDiv.setAttribute( 'id', 'mw-js-message' ); if( className ) { messageDiv.setAttribute( 'class', 'mw-js-message-'+className ); } messageDiv.innerHTML = message; return true; } /** * Inject a cute little progress spinner after the specified element * * @param element Element to inject after * @param id Identifier string (for use with removeSpinner(), below) */ function injectSpinner( element, id ) { var spinner = document.createElement( "img" ); spinner.id = "mw-spinner-" + id; spinner.src = stylepath + "/common/images/spinner.gif"; spinner.alt = spinner.title = "..."; if( element.nextSibling ) { element.parentNode.insertBefore( spinner, element.nextSibling ); } else { element.parentNode.appendChild( spinner ); } } /** * Remove a progress spinner added with injectSpinner() * * @param id Identifier string */ function removeSpinner( id ) { var spinner = document.getElementById( "mw-spinner-" + id ); if( spinner ) { spinner.parentNode.removeChild( spinner ); } } function runOnloadHook() { // don't run anything below this for non-dom browsers if (doneOnloadHook || !(document.getElementById && document.getElementsByTagName)) { return; } // set this before running any hooks, since any errors below // might cause the function to terminate prematurely doneOnloadHook = true; histrowinit(); unhidetzbutton(); tabbedprefs(); updateTooltipAccessKeys( null ); akeytt( null ); scrollEditBox(); setupCheckboxShiftClick(); sortables_init(); // Run any added-on functions for (var i = 0; i < onloadFuncts.length; i++) { onloadFuncts[i](); } } /** * Add an event handler to an element * * @param Element element Element to add handler to * @param String attach Event to attach to * @param callable handler Event handler callback */ function addHandler( element, attach, handler ) { if( window.addEventListener ) { element.addEventListener( attach, handler, false ); } else if( window.attachEvent ) { element.attachEvent( 'on' + attach, handler ); } } /** * Add a click event handler to an element * * @param Element element Element to add handler to * @param callable handler Event handler callback */ function addClickHandler( element, handler ) { addHandler( element, 'click', handler ); } //note: all skins should call runOnloadHook() at the end of html output, // so the below should be redundant. It's there just in case. hookEvent("load", runOnloadHook); hookEvent("load", mwSetupToolbar); :;<_9http://proteopedia.org/wiki/skins/monobook/KHTMLFixes.cssObplist00 X$versionT$topY$archiverX$objects_WebResourceResponse_NSKeyedArchiver &,-345KLMNOPQRSTUVWXYZ[_`U$null  !"#$%V$classR$3R$8S$10S$11R$5R$6R$4R$7R$2R$9R$0R$1 '()$+WNS.base[NS.relative_9http://proteopedia.org/wiki/skins/monobook/KHTMLFixes.css./01X$classesZ$classname12UNSURLXNSObject#A^Fta 6789BWNS.keysZNS.objects:;<=>?@A CDEFGHIJ]Accept-RangesVServer\Content-TypeTDate^Content-LengthTEtagZConnection]Last-ModifiedUbytes_Apache/2.2.10 (Fedora)Xtext/css_Sun, 09 May 2010 02:05:02 GMTS107_"4a8451b-6b-3e34f6d4fcd80"Uclose_Sun, 05 Sep 2004 03:33:26 GMT./\]]^2_NSMutableDictionary\NSDictionaryk./abbc2_NSHTTPURLResponse]NSURLResponse)27:PRd FKT_bhqz|$=FfjdOk/* KHTML fix stylesheet */ /* work around the horizontal scrollbars */ #column-content { margin-left: 0; } >?@AB_Phttp://proteopedia.org/wiki/index.php?title=-&action=raw&gen=js&useskin=monobook_text/javascriptObplist00 X$versionT$topY$archiverX$objects_WebResourceResponse_NSKeyedArchiver &,-345IJKLMNOPQRSTUVW[\U$null  !"#$%V$classR$3R$8S$10S$11R$5R$6R$4R$7R$2R$9R$0R$1 '()$+WNS.base[NS.relative_Phttp://proteopedia.org/wiki/index.php?title=-&action=raw&gen=js&useskin=monobook./01X$classesZ$classname12UNSURLXNSObject#A^E|@ 6789AWNS.keysZNS.objects:;<=>?@ BCDEFGH\X-Powered-By]Cache-ControlVServer\Content-TypeTDateZConnection_Transfer-EncodingYPHP/5.2.6_%public, s-maxage=18000, max-age=18000_Apache/2.2.10 (Fedora)_text/javascript; charset=utf-8_Sun, 09 May 2010 02:05:01 GMTUcloseXIdentity./XYYZ2_NSMutableDictionary\NSDictionary=3./]^^_2_NSHTTPURLResponse]NSURLResponse)27:PRd[`itw} ,6^w`!O=3 /* generated javascript */ var skin = 'monobook'; var stylepath = '/wiki/skins'; /* MediaWiki:Common.js */ /* Any JavaScript here will be loaded for all users on every page load. */ /**/ //Overrides the function with the same name in http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/skins/common/wikibits.js //Fixes a bug: for the sorting order, takes the whole number, not the number before the second comma. //Also, removes spaces. See [[Help:Sorting]]. function ts_parseFloat(num) { if (!num) return 0; num = removeSpaces(num); num = parseFloat(num.replace(/,/g, "")); return (isNaN(num) ? 0 : num); } //Keep spaces in "currency" mode, to sort a range "70 to 80" at 70, not 7080 function ts_parseFloat_ks(num) { if (!num) return 0; num = parseFloat(num.replace(/,/g, "")); return (isNaN(num) ? 0 : num); } //Auxiliary function for function ts_resortTable(lnk) function removeSpaces(string) { var tstring = ""; string = '' + string; splitstring = string.split(" "); for(i = 0; i < splitstring.length; i++) tstring += splitstring[i]; return tstring; } //Overrides the function with the same name in http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/skins/common/wikibits.js //Changes the criteria for various sorting modes, see [[Help:Sorting]]. //For easy maintenance the difference with wikibits.js is kept limited to a few lines. function ts_resortTable(lnk) { // get the span var span = lnk.getElementsByTagName('span')[0]; var td = lnk.parentNode; var tr = td.parentNode; var column = td.cellIndex; var table = tr.parentNode; while (table && !(table.tagName && table.tagName.toLowerCase() == 'table')) table = table.parentNode; if (!table) return; // Work out a type for the column if (table.rows.length <= 1) return; // Skip the first row if that's where the headings are var rowStart = (table.tHead && table.tHead.rows.length > 0 ? 0 : 1); var itm = ""; for (var i = rowStart; i < table.rows.length; i++) { if (table.rows[i].cells.length > column) { itm = ts_getInnerText(table.rows[i].cells[column]); itm = itm.replace(/^[\s\xa0]+/, "").replace(/[\s\xa0]+$/, ""); if (itm != "") break; } } sortfn = ts_sort_caseinsensitive; itmns = removeSpaces(itm); if (itmns.match(/^[\d\.\,\-\+]+\%?$/)) sortfn = ts_sort_numeric; if (itmns.match(/^[\d\.\,\-\+]+[eE][\d\-\+]+\%?$/)) sortfn = ts_sort_numeric; if (itmns.match(/^[\d\.\,\-\+]+e[\d\-\+]+\u00d710[\d\-\+]+\%?$/)) sortfn = ts_sort_numeric; if (itm.match(/^\d\d[\/. -][a-zA-Z]{3}[\/. -]\d\d\d\d$/)) sortfn = ts_sort_date; if (itm.match(/^\d\d[\/.-]\d\d[\/.-]\d\d\d\d$/)) sortfn = ts_sort_date; if (itm.match(/^\d\d[\/.-]\d\d[\/.-]\d\d$/)) sortfn = ts_sort_date; if (itm.match(/^[\u00a3$\u20ac\u00a5]/)) // pound dollar euro yen sortfn = ts_sort_currency; if (itm.match(/sm=c$/)) sortfn = ts_sort_currency; if (itm.match(/sm=d$/)) sortfn = ts_sort_date; if (itm.match(/sm=n$/)) sortfn = ts_sort_numeric; var reverse = (span.getAttribute("sortdir") == 'down'); var newRows = new Array(); for (var j = rowStart; j < table.rows.length; j++) { var row = table.rows[j]; var keyText = ts_getInnerText(row.cells[column]); var oldIndex = (reverse ? -j : j); newRows[newRows.length] = new Array(row, keyText, oldIndex); } newRows.sort(sortfn); var arrowHTML; if (reverse) { arrowHTML = '↓'; newRows.reverse(); span.setAttribute('sortdir','up'); } else { arrowHTML = '↑'; span.setAttribute('sortdir','down'); } // We appendChild rows that already exist to the tbody, so it moves them rather than creating new ones // don't do sortbottom rows for (var i = 0; i < newRows.length; i++) { if ((" "+newRows[i][0].className+" ").indexOf(" sortbottom ") == -1) table.tBodies[0].appendChild(newRows[i][0]); } // do sortbottom rows only for (var i = 0; i < newRows.length; i++) { if ((" "+newRows[i][0].className+" ").indexOf(" sortbottom ") != -1) table.tBodies[0].appendChild(newRows[i][0]); } // Delete any other arrows there may be showing var spans = getElementsByClassName(tr, "span", "sortarrow"); for (var i = 0; i < spans.length; i++) { spans[i].innerHTML = '↓'; } span.innerHTML = arrowHTML; ts_alternate(table); } function ts_dateToSortKey(date) { // y2k notes: two digit years less than 50 are treated as 20XX, greater than 50 are treated as 19XX if (date.length > 10) { switch (date.substr(3,3).toLowerCase()) { case "jan": var month = "01"; break; case "feb": var month = "02"; break; case "mar": var month = "03"; break; case "apr": var month = "04"; break; case "may": var month = "05"; break; case "jun": var month = "06"; break; case "jul": var month = "07"; break; case "aug": var month = "08"; break; case "sep": var month = "09"; break; case "oct": var month = "10"; break; case "nov": var month = "11"; break; case "dec": var month = "12"; break; // default: var month = "00"; } return date.substr(7,4)+month+date.substr(0,2); } else if (date.length == 10) { return date.substr(6,4)+date.substr(3,2)+date.substr(0,2); } else if (date.length == 8) { yr = date.substr(6,2); if (parseInt(yr) < 50) { yr = '20'+yr; } else { yr = '19'+yr; } return yr+date.substr(3,2)+date.substr(0,2); } return "00000000"; } function ts_sort_currency(a,b) { var aa = ts_parseFloat_ks(a[1].replace(/[\u00a3$\u20ac\u00a5a-zA-Z]/g,'')); var bb = ts_parseFloat_ks(b[1].replace(/[\u00a3$\u20ac\u00a5a-zA-Z]/g,'')); return (aa != bb ? aa - bb : a[2] - b[2]); } /** Collapsible tables ********************************************************* * * Description: Allows tables to be collapsed, showing only the header. See * [[Wikipedia:NavFrame]]. * Maintainer on Wikipedia: [[User:R. Koot]] */ var autoCollapse = 2; var collapseCaption = "hide"; var expandCaption = "show"; function hasClass( element, className ) { var Classes = element.className.split( " " ); for ( var i = 0; i < Classes.length; i++ ) { if ( Classes[i] == className ) { return ( true ); } } return ( false ); } function collapseTable( tableIndex ) { var Button = document.getElementById( "collapseButton" + tableIndex ); var Table = document.getElementById( "collapsibleTable" + tableIndex ); if ( !Table || !Button ) { return false; } var Rows = Table.getElementsByTagName( "tr" ); if ( Button.firstChild.data == collapseCaption ) { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = "none"; } Button.firstChild.data = expandCaption; } else { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = Rows[0].style.display; } Button.firstChild.data = collapseCaption; } } function createCollapseButtons() { var tableIndex = 0; var NavigationBoxes = new Object(); var Tables = document.getElementsByTagName( "table" ); for ( var i = 0; i < Tables.length; i++ ) { if ( hasClass( Tables[i], "collapsible" ) ) { NavigationBoxes[ tableIndex ] = Tables[i]; Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex ); var Button = document.createElement( "span" ); var ButtonLink = document.createElement( "a" ); var ButtonText = document.createTextNode( collapseCaption ); Button.style.styleFloat = "right"; Button.style.cssFloat = "right"; Button.style.fontWeight = "normal"; Button.style.textAlign = "right"; Button.style.width = "6em"; ButtonLink.setAttribute( "id", "collapseButton" + tableIndex ); ButtonLink.setAttribute( "href", "javascript:collapseTable(" + tableIndex + ");" ); ButtonLink.appendChild( ButtonText ); Button.appendChild( document.createTextNode( "[" ) ); Button.appendChild( ButtonLink ); Button.appendChild( document.createTextNode( "]" ) ); var Header = Tables[i].getElementsByTagName( "tr" )[0].getElementsByTagName( "th" )[0]; /* only add button and increment count if there is a header row to work with */ if (Header) { Header.insertBefore( Button, Header.childNodes[0] ); tableIndex++; } } } for ( var i = 0; i < tableIndex; i++ ) { if ( hasClass( NavigationBoxes[i], "collapsed" ) || ( tableIndex >= autoCollapse && hasClass( NavigationBoxes[i], "autocollapse" ) ) ) { collapseTable( i ); } } } addOnloadHook( createCollapseButtons ); //Shuffle for election candidates function dshuf(){ var shufsets=new Object() var rx=new RegExp('dshuf'+'\\s+(dshufset\\d+)', 'i') var divs=document.getElementsByTagName("div") for (var i=0; i *** by [[m:user:Pathoschild]] *************/ function attLoader() { if(getElementsByClassName(document.getElementsByTagName('body')[0],'table','attable').length) { document.write(''); } } addOnloadHook(attLoader); /** JSconfig ************ * Global configuration options to enable/disable and configure * specific script features from [[MediaWiki:Common.js]] and * [[MediaWiki:Monobook.js]] * This framework adds config options (saved as cookies) to [[Special:Preferences]] * For a more permanent change you can override the default settings in your * [[Special:Mypage/monobook.js]] * for Example: JSconfig.keys[loadAutoInformationTemplate] = false; * * Maintainer: [[User:Dschwen]] */ var JSconfig = { prefix : 'jsconfig_', keys : {}, meta : {}, // // Register a new configuration item // * name : String, internal name // * default_value : String or Boolean (type determines configuration widget) // * description : String, text appearing next to the widget in the preferences // * prefpage : Integer (optional), section in the preferences to insert the widget: // 0 : User profile // 1 : Skin // 2 : Math // 3 : Files // 4 : Date and time // 5 : Editing // 6 : Recent changes // 7 : Watchlist // 8 : Search // 9 : Misc // // Access keys through JSconfig.keys[name] // registerKey : function( name, default_value, description, prefpage ) { if( typeof(JSconfig.keys[name]) == 'undefined' ) JSconfig.keys[name] = default_value; else { // all cookies are read as strings, // convert to the type of the default value switch( typeof(default_value) ) { case 'boolean' : JSconfig.keys[name] = ( JSconfig.keys[name] == 'true' ); break; case 'number' : JSconfig.keys[name] = JSconfig.keys[name]/1; break; } } JSconfig.meta[name] = { 'description' : description, 'page' : prefpage || 0, 'default_value' : default_value }; }, readCookies : function() { var cookies = document.cookie.split("; "); var p =JSconfig.prefix.length; var i; for( var key in cookies ) { if( cookies[key].substring(0,p) == JSconfig.prefix ) { i = cookies[key].indexOf('='); //alert( cookies[key] + ',' + key + ',' + cookies[key].substring(p,i) ); JSconfig.keys[cookies[key].substring(p,i)] = cookies[key].substring(i+1); } } }, writeCookies : function() { for( var key in JSconfig.keys ) document.cookie = JSconfig.prefix + key + '=' + JSconfig.keys[key] + '; path=/; expires=Thu, 2 Aug 2009 10:10:10 UTC'; }, evaluateForm : function() { var w_ctrl,wt; //alert('about to save JSconfig'); for( var key in JSconfig.meta ) { w_ctrl = document.getElementById( JSconfig.prefix + key ) if( w_ctrl ) { wt = typeof( JSconfig.meta[key].default_value ); switch( wt ) { case 'boolean' : JSconfig.keys[key] = w_ctrl.checked; break; case 'string' : JSconfig.keys[key] = w_ctrl.value; break; } } } JSconfig.writeCookies(); return true; }, setUpForm : function() { var prefChild = document.getElementById('preferences'); if( !prefChild ) return; prefChild = prefChild.childNodes; // // make a list of all preferences sections // var tabs = new Array; var len = prefChild.length; for( var key = 0; key < len; key++ ) { if( prefChild[key].tagName && prefChild[key].tagName.toLowerCase() == 'fieldset' ) tabs.push(prefChild[key]); } // // Create Widgets for all registered config keys // var w_div, w_label, w_ctrl, wt; for( var key in JSconfig.meta ) { w_div = document.createElement( 'DIV' ); w_label = document.createElement( 'LABEL' ); w_label.appendChild( document.createTextNode( JSconfig.meta[key].description ) ) w_label.htmlFor = JSconfig.prefix + key; wt = typeof( JSconfig.meta[key].default_value ); w_ctrl = document.createElement( 'INPUT' ); w_ctrl.id = JSconfig.prefix + key; // before insertion into the DOM tree switch( wt ) { case 'boolean' : w_ctrl.type = 'checkbox'; break; case 'string' : w_ctrl.type = 'text'; break; } w_div.appendChild( w_label ); w_div.appendChild( w_ctrl ); tabs[JSconfig.meta[key].page].appendChild( w_div ); // after insertion into the DOM tree switch( wt ) { case 'boolean' : w_ctrl.defaultChecked = w_ctrl.checked = JSconfig.keys[key]; break; case 'string' : w_ctrl.defaultValue = w_ctrl.value = JSconfig.keys[key]; break; } } addHandler(document.getElementById('preferences').parentNode, 'submit', JSconfig.evaluateForm ); } } JSconfig.readCookies(); addOnloadHook(JSconfig.setUpForm); /**/ /* MediaWiki:Monobook.js (deprecated; migrate to Common.js!) */ /* Deprecated; use [[MediaWiki:common.js]] */Uutf-8DEFB_xhttp://proteopedia.org/wiki/index.php?title=MediaWiki:Common.css&usemsgcache=yes&action=raw&ctype=text/css&smaxage=18000O"bplist00 X$versionT$topY$archiverX$objects_WebResourceResponse_NSKeyedArchiver &,-345IJKLMNOPQRSTUVW[\U$null  !"#$%V$classR$3R$8S$10S$11R$5R$6R$4R$7R$2R$9R$0R$1 '()$+WNS.base[NS.relative_xhttp://proteopedia.org/wiki/index.php?title=MediaWiki:Common.css&usemsgcache=yes&action=raw&ctype=text/css&smaxage=18000./01X$classesZ$classname12UNSURLXNSObject#A^Dg 6789AWNS.keysZNS.objects:;<=>?@ BCDEFGH\X-Powered-By]Cache-ControlVServer\Content-TypeTDateZConnection_Transfer-EncodingYPHP/5.2.6_%public, s-maxage=18000, max-age=18000_Apache/2.2.10 (Fedora)_text/css; charset=utf-8_Sun, 09 May 2010 02:05:00 GMTUcloseXIdentity./XYYZ2_NSMutableDictionary\NSDictionary[./]^^_2_NSHTTPURLResponse]NSURLResponse)27:PRd#05@T^ 4`BO[ /* ATTENTION ADMINISTRATORS: This is the CSS for all skins. Any major changes to this page or [[MediaWiki:Monobook.css|Monobook.css]] should be first proposed on the [[Wikipedia:Village pump (technical)|Village pump]]. Testing can be done on your own user Monobook.css. In [[Mozilla]] and [[Opera (web browser)|Opera]], you can also test style changes dynamically with the [http://www.squarefree.com/bookmarklets/webdevel.html test styles] bookmarklet from squarefree.com. It pops up a window for adding style rules, and updates the page as you type. Always check with the [http://tinyurl.com/28y334 W3C CSS Validation Service] ([http://tinyurl.com/2g8bsk CVS version]) after any changes. See also: [[Wikipedia:Catalogue of CSS classes|catalogue of CSS classes]]. Thank you. */ /*
 */
 
/* Main page fixes */
#interwiki-completelist {
    font-weight: bold;
}

body.page-Main_Page #ca-delete {
    display: none !important;
}

/* Add space below the toolbar */
#toolbar {
    margin-bottom: 6px;
}

/* make the list of references look smaller */
ol.references {
    font-size: 100%;
}

.references-small { font-size: 90%;}

/* VALIDATOR NOTICE: the following is correct, but the W3C validator doesn't accept it */
/* -moz-* is a vendor-specific extension (CSS 2.1 4.1.2.1) */
/* column-count is from the CSS3 module "CSS Multi-column Layout" */
/* Please ignore any validator errors caused by these two lines */
.references-2column {
    font-size: 90%;
    -moz-column-count: 2;
    -webkit-column-count: 2;
    column-count: 2;
}

.same-bg { background: none; }

/* Highlight clicked reference in blue to help navigation */
ol.references > li:target {
    background-color: #DEF;
}

sup.reference:target { 
    background-color: #DEF;
}

/* Styling for citations */
cite {
    font-style: normal;
    word-wrap: break-word;
}

/* If there is an inline link to a full citation, the full citation will turn blue when the inline link is clicked */
cite:target { 
    background-color: #DEF;
}

/* Do not expand URLs within citations for printing. The URLs should be included explicitly, to avoid confusion */

@media print {
    #content cite a.external.text:after {
        display: none;
    }
}

/* For linked citation numbers and document IDs, where the number need not be shown on a screen or a handheld, but should be included in the printed version */

@media screen, handheld, projection {
    cite *.printonly {
        display: none;
    }
}

/* wikitable/prettytable class for skinning normal tables */
table.wikitable,
table.prettytable {
    margin: 1em 1em 1em 0;
    background: #f9f9f9;
    border: 1px #aaa solid;
    border-collapse: collapse;
}

table.wikitable th, table.wikitable td,
table.prettytable th, table.prettytable td {
    border: 1px #aaa solid;
    padding: 0.2em;
}

table.wikitable th,
table.prettytable th {
    background: #f2f2f2;
    text-align: center;
}

table.wikitable caption,
table.prettytable caption {
    margin-left: inherit;
    margin-right: inherit;
    font-weight: bold;
}

table.prettytable code,
table.wikitable code {
    background-color: transparent;
}

/* default skin for navigation boxes */
table.navbox {
    background-color: #f9f9f9;
    border: 1px solid #aaa;
    clear: both;
    font-size: 90%;
    margin: 1em 0em 0em;
    padding: 2px;
    text-align: center;
    width: 100%;
}

table.navbox th {
    background-color: #ccf;
    padding-left: 1em;
    padding-right: 1em;
}

@media print {
    .navbox {
        display: none;
    }
}

/* Infobox template style */
.infobox {
    border: 1px solid #aaa;
    background-color: #f9f9f9;
    color: black;
    margin: 0.5em 0 0.5em 1em;
    padding: 0.2em;
    float: right;
    clear: right;
}
.infobox td,
.infobox th {
    vertical-align: top;
}
.infobox caption {
    font-size: larger;
    margin-left: inherit;
}
.infobox.bordered {
    border-collapse: collapse;
}
.infobox.bordered td,
.infobox.bordered th {
    border: 1px solid #aaa;
}
.infobox.bordered .borderless td,
.infobox.bordered .borderless th {
    border: 0;
}

.infobox.sisterproject {
    width: 20em;
    font-size: 90%;
}

@media print {
    .infobox.sisterproject {
        display: none;
    }
}

/* styles for bordered infobox with merged rows */
.infobox.bordered .mergedtoprow td,
.infobox.bordered .mergedtoprow th {
    border: 0;
    border-top: 1px solid #aaa;
    border-right: 1px solid #aaa;
}

.infobox.bordered .mergedrow td,
.infobox.bordered .mergedrow th {
    border: 0;
    border-right: 1px solid #aaa;
}

/* Styles for geography infoboxes, e.g. countries, country subdivisions, cities, etc. */
.infobox.geography {
    text-align: left;
    border-collapse: collapse;
    line-height: 1.2em; 
    font-size: 90%;
}

.infobox.geography  td,
.infobox.geography  th {
    border-top: solid 1px #aaa;
    padding: 0.4em 0.6em 0.4em 0.6em;
}
.infobox.geography .mergedtoprow td,
.infobox.geography .mergedtoprow th {
    border-top: solid 1px #aaa;
    padding: 0.4em 0.6em 0.2em 0.6em;
}

.infobox.geography .mergedrow td,
.infobox.geography .mergedrow th {
    border: 0;
    padding: 0 0.6em 0.2em 0.6em;
}

.infobox.geography .mergedbottomrow td,
.infobox.geography .mergedbottomrow th {
    border-top: 0;
    border-bottom: solid 1px #aaa;
    padding: 0 0.6em 0.4em 0.6em;
}

.infobox.geography .maptable td,
.infobox.geography .maptable th {
    border: 0;
    padding: 0;
}

/* Style for "notices" */
.notice {
    margin: 1em;
    padding: 0.2em;
}

#disambig {
    border-top: 1px solid #ccc; 
    border-bottom: 1px solid #ccc;
}

.spoiler {
    border-top: 2px solid #ddd;
    border-bottom: 2px solid #ddd;
}

/* Standard talk template style */

.Talk-Notice  {
    border: 1px solid #C0C090;
    background-color: #F8EABA;
    margin-bottom: 3px;
    width: 85%;
    border-spacing: 3px;
    margin-left: auto;
    margin-right: auto;
}

.Talk-Notice:after {
  content: "The CSS for this template should be changed. See [[Wikipedia:Template Standardisation]].";
}

/* Make template background appear correctly on all browsers */
.Talk-Notice td {
    background: inherit;
}

/* Persondata and other (future) metadata */
table.InChI, /* temporary */
table.persondata {
    border: 1px solid #aaa;
    display: none;
    speak: none;
}
.InChI-label, /* temporary */
.persondata-label {
    color: #aaa;
}

/* Makes redirects appear in italics in categories and on [[Special:Allpages]] */
.redirect-in-category, .allpagesredirect {
    font-style: italic;
}

/* Class for links with loudspeaker icon next to them */
/* (Used in [[Template:Audio]] and the like to make the speaker clickable) */

.audiolink a {
    background: url("http://upload.wikimedia.org/wikipedia/commons/thumb/8/8a/Loudspeaker.svg/11px-Loudspeaker.svg.png") center left no-repeat !important;
    padding-left: 16px !important;
    padding-right: 0 !important;
}

/* Icons for medialist templates [[Template:Listen]], [[Template:Multi-listen_start]], [[Template:Video]], [[Template:Multi-video_start]] */

div.listenlist {
    background: url("http://upload.wikimedia.org/wikipedia/commons/thumb/a/a6/Gnome-speakernotes.png/30px-Gnome-speakernotes.png");
    padding-left: 40px;
}

div.videolist, div.multivideolist {
    background: url("http://upload.wikimedia.org/wikipedia/en/thumb/2/20/Tango-video-x-generic.png/40px-Tango-video-x-generic.png");
    padding-left: 50px;
}

/* Style rules for media list templates */
div.medialist {
    min-height: 50px;
    margin: 1em;
    background-position: top left;
    background-repeat: no-repeat;
}

div.medialist ul {
    list-style-type: none; 
    list-style-image: none;
    margin: 0;
}

div.medialist ul li {
    padding-bottom: 0.5em;
}

div.medialist ul li li {
    font-size: 91%;
    padding-bottom: 0;
}

/* Change the external link icon to an Adobe icon for all PDF files */
/* (in browsers that support these CSS selectors, like Mozilla and Opera) */
#bodyContent a[href$=".pdf"].external, 
#bodyContent a[href*=".pdf?"].external, 
#bodyContent a[href*=".pdf#"].external,
#bodyContent a[href$=".PDF"].external, 
#bodyContent a[href*=".PDF?"].external, 
#bodyContent a[href*=".PDF#"].external,
#mw_content a[href$=".pdf"].external, 
#mw_content a[href*=".pdf?"].external, 
#mw_content a[href*=".pdf#"].external,
#mw_content a[href$=".PDF"].external, 
#mw_content a[href*=".PDF?"].external, 
#mw_content a[href*=".PDF#"].external {
    background: url(http://upload.wikimedia.org/wikipedia/commons/thumb/2/23/Icons-mini-file_acrobat.gif/15px-Icons-mini-file_acrobat.gif) center right no-repeat;
    padding-right: 16px;
}

/* Change the external link icon to an Adobe icon anywhere the PDFlink class */
/* is used (notably Template:PDFlink). This works in IE, unlike the above. */
span.PDFlink a {
    background: url(http://upload.wikimedia.org/wikipedia/commons/thumb/2/23/Icons-mini-file_acrobat.gif/15px-Icons-mini-file_acrobat.gif) center right no-repeat !important;
    padding-right: 17px !important;
}

span.geolink a {
    background: url(http://upload.wikimedia.org/wikipedia/en/a/a7/Monobook-globe.png) center right no-repeat !important;
    padding-right: 11px !important;
}

/* Content in columns with CSS instead of tables [[Template:Columns]] */
div.columns-2 div.column {
    float: left;
    width: 50%;
    min-width: 300px;
}

div.columns-3 div.column {
    float: left;
    width: 33.3%;
    min-width: 200px;
}

div.columns-4 div.column {
    float: left;
    width: 25%;
    min-width: 150px;
}

div.columns-5 div.column {
    float: left;
    width: 20%;
    min-width: 120px;
}

/*Add formatting to make sure that "external references" from [[Template:Ref]] do
  not get URL expansion, not even when printed. The mechanism up to MediaWiki 1.4 was
  that the HTML code contained a SPAN following the anchor A; this SPAN had the class
  "urlexpansion", which was not displayed on screen, but was shown when the medium was
  "print". The rules below ensure (a) that there is no extra padding to the right of
  the anchor (displayed as "[]"), (b) that there is no "external link arrow" for
  the link, and (c) that this SPAN of class "urlexpansion" is never shown.
  ~~~~
*/

.plainlinksneverexpand {
    background: none ! important;
    padding: 0 ! important;
}

.plainlinksneverexpand .urlexpansion {
    display: none ! important;
}

/* Make sure that ext links displayed within "plainlinksneverexpand" don't get
   the arrow...
*/
.plainlinksneverexpand a {
    background: none !important;
    padding: 0 !important;
}

/* With MediaWiki 1.5, the mechanism has changed: instead of a SPAN of class "urlexpansion"
   following the anchor A, the anchor itself now has class "external autonumber" and the
   expansion is inserted when printing (see the common printing style sheet at
   http://en.wikipedia.org/skins-1.5/common/commonPrint.css) using the ":after" pseudo-
   element of CSS. We have to switch this off for links due to Template:Ref!
*/
.plainlinksneverexpand a.external.text:after {
    display: none !important;
}
.plainlinksneverexpand a.external.autonumber:after {
    display: none !important;
}

/* Messagebox templates */
.messagebox {
    border: 1px solid #aaa;
    background-color: #f9f9f9;
    width: 80%;
    margin: 0 auto 1em auto;
    padding: .2em;
}
.messagebox.merge {
    border: 1px solid #c0b8cc;
    background-color: #f0e5ff;
    text-align: center;
}
.messagebox.cleanup {
    border: 1px solid #9f9fff;
    background-color: #efefff;
    text-align: center;
}
.messagebox.standard-talk {
    border: 1px solid #c0c090;
    background-color: #f8eaba;
}
.messagebox.nested-talk {
    border: 1px solid #c0c090;
    background-color: #f8eaba;
    width: 100%;
    margin: 2px 4px 2px 4px;
}
.messagebox.small {
    width: 238px;
    font-size: 85%;
    float: right;
    clear: both;
    margin: 0 0 1em 1em;
    line-height: 1.25em; 
}
.messagebox.small-talk {
    width: 238px;
    font-size: 85%;
    float: right;
    clear: both;
    margin: 0 0 1em 1em;
    line-height: 1.25em; 
    background: #F8EABA;
}

/* Article message box template styles */
table.ambox {
    margin: 0 10%;                       /* Will not overlap with other elements */
    border-collapse: collapse; 
    background: #fbfbfb; 
    border: 1px solid #aaa; 
    border-left: 10px solid #1e90ff;     /* Default "notice" blue */
}
table.ambox th.ambox-text, table.ambox td.ambox-text {      /* The message body cell(s) */
    padding: 0.25em 0.5em;            /* 0.5em left/right */
    width: 100%;                      /* Make all templates the same width regardless of text size */
}
table.ambox td.ambox-image {          /* The left image cell */
    padding: 2px 0px 2px 0.5em;       /* 0.5em left, 0px right */
    text-align: center; 
}
table.ambox td.ambox-imageright {     /* The right image cell */
    padding: 2px 4px 2px 0px;         /* 0px left, 4px right */
    text-align: center; 
}
table.ambox-notice {
    border-left: 10px solid #1e90ff;     /* Blue */
/* border-right: 10px solid #1e90ff; */  /* If you want two blue bars */
}
table.ambox-delete,
table.ambox-serious {
    border-left: 10px solid #b22222;     /* Red */
}
table.ambox-content {
    border-left: 10px solid #f28500;     /* Orange */
}
table.ambox-style {
    border-left: 10px solid #f4c430;     /* Yellow */
}
table.ambox-merge {
    border-left: 10px solid #9932cc;     /* Purple */
}
table.ambox-protection {
    border-left: 10px solid #bba;        /* Gray */
}
table.ambox.ambox-mini {                 /* Small floating box variant */
    float: right;
    clear: right;
    margin: 0 0 0 1em;
    width: 25%;
}
@media print {                           /* Do not print article message box */
    .ambox {
        display: none;
    }
}

/* Put a checker background at the image description page only visible if the image has transparent background */
#file img {
    background: url("http://upload.wikimedia.org/wikipedia/commons/5/5d/Checker-16x16.png") repeat;
}

/* Support for Template:IPA, Template:Unicode and Template:Polytonic. The inherit declaration resets the font for all browsers except MSIE6.  The empty comment must remain. Please copy any changes to [[Template:IPA fonts]] and [[Template:Unicode fonts]]. */
.IPA {
    font-family: "Chrysanthi Unicode", "Doulos SIL", Gentium, GentiumAlt, Code2000, "TITUS Cyberbit Basic", "DejaVu Sans", "Bitstream Cyberbit", "Arial Unicode MS", "Lucida Sans Unicode", "Hiragino Kaku Gothic Pro", "Matrix Unicode";
    font-family /**/:inherit;
}
.Unicode {
    font-family: Code2000, Code2001, "Free Serif", "TITUS Cyberbit Basic", "Doulos SIL", "Chrysanthi Unicode", "Bitstream Cyberbit", "Bitstream CyberBase", Thryomanes, Gentium, GentiumAlt, "Lucida Grande", "Free Sans", "Arial Unicode MS", "Microsoft Sans Serif", "Lucida Sans Unicode";
    font-family /**/:inherit;
}
.latinx {
    font-family: Code2000, Code2001, "TITUS Cyberbit Basic", "Microsoft Sans Serif";
    font-family /**/:inherit;
}
.polytonic {
    font-family: "Athena Unicode", Gentium, "Palatino Linotype", "Arial Unicode MS", "Lucida Sans Unicode", "Lucida Grande", Code2000; 
    font-family /**/:inherit;
}
.mufi {
    font-family: Alphabetum, Cardo, LeedsUni, Junicode, "TITUS Cyberbit Basic", ALPHA-Demo;
}

/* Pseudo-classes in support of [[Template:lang]]. */

:lang(he) {
    font-family: "SBL Hebrew", "Ezra SIL SR", "Ezra SIL", Cardo, "Chrysanthi Unicode", "TITUS Cyberbit Basic", "Arial Unicode MS", Narkisim, "Times New Roman";
    font-family /**/:inherit;
}
:lang(fa) {
    font-family: "Nafees Nastaleeq", "Pak Nastaleeq", PDMS_Jauhar;
    font-family /**/:inherit;
}
:lang(ps) {
    font-family: "Nafees Nastaleeq", "Pak Nastaleeq", PDMS_Jauhar;
    font-family /**/:inherit;
}
:lang(ur) {
    font-family: "Nafees Nastaleeq", "Pak Nastaleeq", PDMS_Jauhar;
    font-family /**/:inherit;
}
:lang(sux-Xsux) {
    font-family: Akkadian;
    font-family /**/:inherit;
}
:lang(ja) {
       font-family: Code2000, "Arial Unicode MS", "Bitstream Cyberbit", "Bitstream CyberCJK", IPAGothic, IPAPGothic, IPAUIGothic, "Kochi Gothic", IPAMincho, IPAPMincho;
    font-family /**/:inherit;
}
:lang(ko) {
    font-family: "Adobe Myungjo Std M", AppleMyungjo, "Baekmuk Batang", "Baekmuk Gulim", Batang, Dotum, DotumChe, Gulim, GulimChe, HYGothic-Extra, HYMyeongJo-Extra, "New Gulim", UnBatang, UnDotum, UnYetgul, UWKMJF;
    font-family /**/:inherit;
}
:lang(zh-Hans) {
    font-family: "Adobe Song Std L", "AR PL ShanHeiSun Uni", "AR PL ShanHeiSun Uni MBE", "MS Hei", "MS Song", SimHei;
    font-family /**/:inherit;
}
:lang(zh-Hant) {
    font-family: "Adobe Ming Std L", "AR PL New Sung", "AR PL ZenKai Uni", "AR PL ZenKai Uni MBE", MingLiU, PMingLiU;
    font-family /**/:inherit;
}
:lang(grc) {
    font-family: "Athena Unicode", Gentium, "Palatino Linotype", "Arial Unicode MS", "Lucida Sans Unicode", "Lucida Grande", Code2000;
    font-family /**/:inherit;
}

#wpSave {
    font-weight: bold;
}

/* class hiddenStructure is defunct. See [[Wikipedia:hiddenStructure]] */
.hiddenStructure {
    display: inline ! important;
    color: #f00; 
    background-color: #0f0;
}

/* suppress missing interwiki image links where #ifexist cannot be used due to high number of requests */
/* use restricted to rail icon management pages */
/* see .hidden-redlink on http://meta.wikimedia.org/wiki/MediaWiki:Common.css */
.check-icon a.new {
    display: none; 
    speak:none;
}

/* Removes underlines from links */
.nounderlines a { 
    text-decoration: none;
}

/* Remove underline from IPA links */
.IPA a:link, .IPA a:visited {
    text-decoration: none;
}

/* Removes useless links from printout */
@media print {
    #privacy, #about, #disclaimer {display:none;}
}

#EnWpMpBook { background-image: url(http://upload.wikimedia.org/wikipedia/en/7/7e/MP-open-book.png); }
#EnWpMpSearch { background: url(http://upload.wikimedia.org/wikipedia/en/a/ae/MP-magnifying-glass.png) no-repeat top right; }
#EnWpMpSearchInner { float: right; width: 20em; text-align: center; }
#EnWpMpBook2 { background-image: url(http://upload.wikimedia.org/wikipedia/commons/8/8e/MP-open-book2.png); }

/* Standard Navigationsleisten, aka box hiding thingy from .de.  Documentation at [[Wikipedia:NavFrame]]. */

div.Boxmerge,
div.NavFrame {
    margin: 0px;
    padding: 4px;
    border: 1px solid #aaa;
    text-align: center;
    border-collapse: collapse;
    font-size: 95%;
}
div.Boxmerge div.NavFrame {
    border-style: none;
    border-style: hidden;
}
div.NavFrame + div.NavFrame {
    border-top-style: none;
    border-top-style: hidden;
}
div.NavPic {
    background-color: #fff;
    margin: 0px;
    padding: 2px;
    float: left;
}
div.NavFrame div.NavHead {
    height: 1.6em;
    font-weight: bold;
    background-color: #ccf;
    position:relative;
}
div.NavFrame p {
    font-size: 100%;
}
div.NavFrame div.NavContent {
    font-size: 100%;
}
div.NavFrame div.NavContent p {
    font-size: 100%;
}
div.NavEnd {
    margin: 0px;
    padding: 0px;
    line-height: 1px;
    clear: both;
}
a.NavToggle {
    position:absolute;
    top:0px;
    right:3px;
    font-weight:normal;
    font-size:smaller;
}

/* Coloured watchlist numbers */
.mw-plusminus-pos {
    color: #006400; /* darkgreen */
}

/* .mw-plusminus-null currently at developer default */

.mw-plusminus-neg {
    color: #8B0000; /* darkred */
}

.dablink {
    font-style: italic;
    padding-left: 2em;
}

.dablink i {
    font-style: normal;
}

/* Style for horizontal UL lists */
.horizontal ul {
    padding: 0;
    margin: 0;
}

.horizontal li { 
    padding: 0 0.6em 0 0.4em;
    display: inline;
    border-right: 1px solid;
}

.horizontal li:last-child {
    border-right: none;
    padding-right: 0;
}

/* Geographical coordinates 

To display coordinates using the notation in the source code, write this in your User:Username/monobook.css:
   .geo-default { display: inline } .geo-nondefault { display: none } 
   .geo-dec { display: inline } .geo-dms { display: inline }

To display coordinates using decimal notation, write this in your User:Username/monobook.css:
   .geo-default { display: inline } .geo-nondefault { display: inline } 
   .geo-dec { display: inline } .geo-dms { display: none }

To display coordinates using DMS notation, write this in your User:Username/monobook.css:
   .geo-default { display: inline } .geo-nondefault { display: inline } 
   .geo-dec { display: none }   .geo-dms { display: inline }

To display coordinates in both decimal and DMS notation, write this in your User:Username/monobook.css:
   .geo-default { display: inline } .geo-nondefault { display: inline } 
   .geo-dec { display: inline }   .geo-dms { display: inline }
   .geo-multi-punct { display: inline }

See [[Template:Coor link]] for how these are used.

Note that the classes "geo", "longitude", and "latitude" are not just styles but also used by the [[Geo microformat]], so the names should not be changed.

*/

.geo-default { display: inline; }
.geo-nondefault { display: none; }
.geo-dms { display: inline; }
.geo-dec { display: inline; }
.geo-multi-punct { display: none; }

.longitude .latitude {
    white-space: nowrap;
}

/* This is used for the Geo microformat, but no style is needed for now other than .geo-dec. */
.geo { }

/***** end Geo-related */

/* When 
is used on the table of contents, the ToC will display without numbers */ .nonumtoc .tocnumber { display:none; } .nonumtoc #toc ul, .nonumtoc .toc ul { line-height: 1.5em; list-style: none; margin: .3em 0 0; padding: 0; } .nonumtoc #toc ul ul, .nonumtoc .toc ul ul { margin: 0 0 0 2em; } /* Allow limiting of which header levels are shown in a TOC;
, for instance, will limit to showing ==headings== and ===headings=== but no further (as long as there are no =headings= on the page, which there shouldn't be according to the MoS). */ .toclimit-2 .toclevel-2 {display:none;} .toclimit-3 .toclevel-3 {display:none;} .toclimit-4 .toclevel-4 {display:none;} .toclimit-5 .toclevel-5 {display:none;} .toclimit-6 .toclevel-6 {display:none;} .toclimit-7 .toclevel-7 {display:none;} /* Allow transcluded pages to display in lists rather than a table. Compatible in Firefox; incompatible in IE6. */ .listify td {display:list-item;} .listify tr {display:block;} .listify table {display:block;} /* Styling for Template:Quote */ blockquote.templatequote { margin-top: 0; } blockquote.templatequote div.templatequotecite { line-height: 1em; text-align: left; padding-left: 2em; margin-top: 0; } blockquote.templatequote div.templatequotecite cite { font-size: smaller; } div.user-block { padding: 5px; border: 1px solid #A9A9A9; background-color: #FFEFD5; } /* Prevents line breaks in links; see docs at Template:Nowraplinks */ .nowraplinks a { white-space: nowrap; } /* For template documentation */ .template-documentation { clear: both; margin: 1em 0 0 0; border: 1px solid #aaa; background-color: #ecfcf4; padding: 5px; } .thumbinner { min-width: 100px; } /* Inline div's in ImageMaps (code borrowed from de.wiki) */ .imagemap-inline div { display: inline; } /* Increase the height of the image upload box */ #wpUploadDescription { height: 13em; } /* Reduce line-height for and */ sup, sub { line-height: 1em; } /* Fix Firefox peculiarity */ li { -moz-float-edge: content-box } /*
*/HIJB_zhttp://proteopedia.org/wiki/index.php?title=MediaWiki:Monobook.css&usemsgcache=yes&action=raw&ctype=text/css&smaxage=18000Obplist00 X$versionT$topY$archiverX$objects_WebResourceResponse_NSKeyedArchiver &,-345IJKLMNOPQRSTUVW[\U$null  !"#$%V$classR$3R$8S$10S$11R$5R$6R$4R$7R$2R$9R$0R$1 '()$+WNS.base[NS.relative_zhttp://proteopedia.org/wiki/index.php?title=MediaWiki:Monobook.css&usemsgcache=yes&action=raw&ctype=text/css&smaxage=18000./01X$classesZ$classname12UNSURLXNSObject#A^D?  6789AWNS.keysZNS.objects:;<=>?@ BCDEFGH\X-Powered-By]Cache-ControlVServer\Content-TypeTDate^Content-LengthZConnectionYPHP/5.2.6_%public, s-maxage=18000, max-age=18000_Apache/2.2.10 (Fedora)_text/css; charset=utf-8_Sun, 09 May 2010 02:05:00 GMTS486Uclose./XYYZ2_NSMutableDictionary\NSDictionary./]^^_2_NSHTTPURLResponse]NSURLResponse)27:PRd%27FQ[ ,`:O /* CSS placed here will affect users of the Monobook skin */ /* Don't display some stuff on the main page */ body.page-Main_Page h1.firstHeading { display: none !important; } /* Bold 'edit this page' link to encourage newcomers */ #ca-edit a { font-weight: bold !important; } .editButtons { display: block;} /* Makes the background of a framed image white instead of gray. */ /* Only visible with transparent images. */ div.thumb div a img { background-color: #fff; }LMNB_Mhttp://proteopedia.org/wiki/index.php?title=-&action=raw&gen=css&maxage=18000Obplist00 X$versionT$topY$archiverX$objects_WebResourceResponse_NSKeyedArchiver &,-345IJKLMNOPQRSTUVW[\U$null  !"#$%V$classR$3R$8S$10S$11R$5R$6R$4R$7R$2R$9R$0R$1 '()$+WNS.base[NS.relative_Mhttp://proteopedia.org/wiki/index.php?title=-&action=raw&gen=css&maxage=18000./01X$classesZ$classname12UNSURLXNSObject#A^EE3 6789AWNS.keysZNS.objects:;<=>?@ BCDEFGH\X-Powered-By]Cache-ControlVServer\Content-TypeTDate^Content-LengthZConnectionYPHP/5.2.6_%public, s-maxage=18000, max-age=18000_Apache/2.2.10 (Fedora)_text/css; charset=utf-8_Sun, 09 May 2010 02:05:01 GMTR82Uclose./XYYZ2_NSMutableDictionary\NSDictionaryR./]^^_2_NSHTTPURLResponse]NSURLResponse)27:PRdX]fqtz $.Vo` OR /* generated user stylesheet */ a.new, #quickbar a.new { color: #CC2200; } P6QR_3http://proteopedia.org/wiki/extensions/Jmol/Jmol.jsObplist00 X$versionT$topY$archiverX$objects_WebResourceResponse_NSKeyedArchiver &,-345KLMNOPQRSTUVWXYZ[_`U$null  !"#$%V$classR$3R$8S$10S$11R$5R$6R$4R$7R$2R$9R$0R$1 '()$+WNS.base[NS.relative_3http://proteopedia.org/wiki/extensions/Jmol/Jmol.js./01X$classesZ$classname12UNSURLXNSObject#A^E] 6789BWNS.keysZNS.objects:;<=>?@A CDEFGHIJ]Accept-RangesVServer\Content-TypeTDate^Content-LengthTEtagZConnection]Last-ModifiedUbytes_Apache/2.2.10 (Fedora)_application/x-javascript_Sun, 09 May 2010 02:05:01 GMTU60493_"3ea336-ec4d-4821264fa7380"Uclose_Thu, 18 Mar 2010 12:30:22 GMT./\]]^2_NSMutableDictionary\NSDictionaryM./abbc2_NSHTTPURLResponse]NSURLResponse)27:PRd @ENY\bktv} 7RrxdOM/* Jmol 11.7 script library Jmol.js 12:17 AM 4/20/2009 Bob Hanson checkbox heirarchy -- see http://chemapps.stolaf.edu/jmol/docs/examples-11/check.htm based on: * * Copyright (C) 2004-2005 Miguel, Jmol Development, www.jmol.org * * Contact: hansonr@stolaf.edu * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA * 02111-1307 USA. */ // for documentation see www.jmol.org/jslibrary try{if(typeof(_jmol)!="undefined")exit() // place "?NOAPPLET" on your command line to check applet control action with a textarea // place "?JMOLJAR=xxxxx" to use a specific jar file // bob hanson -- jmolResize(w,h) -- resizes absolutely or by percent (w or h 0.5 means 50%) // angel herraez -- update of jmolResize(w,h,targetSuffix) so it is not tied to first applet // bob hanson -- jmolEvaluate -- evaluates molecular math 8:37 AM 2/23/2007 // bob hanson -- jmolScriptMessage -- returns all "scriptStatus" messages 8:37 AM 2/23/2007 // bob hanson -- jmolScriptEcho -- returns all "scriptEcho" messages 8:37 AM 2/23/2007 // bob hanson -- jmolScriptWait -- 11:31 AM 5/2/2006 // bob hanson -- remove trailing separatorHTML in radio groups -- 12:18 PM 5/6/2006 // bob hanson -- adds support for dynamic DOM script nodes 7:04 AM 5/19/2006 // bob hanson -- adds try/catch for wiki - multiple code passes 7:05 AM 5/19/2006 // bob hanson -- auto-initiates to defaultdir/defaultjar -- change as desired. // bob hanson -- adding save/restore orientation w/ and w/o delay 11:49 AM 5/25/2006 // bob hanson -- adding AjaxJS service 11:16 AM 6/3/2006 // bob hanson -- fix for iframes not available for finding applet // bob hanson -- added applet fake ?NOAPPLET URL flag // bob hanson -- added jmolSetCallback(calbackName, funcName) 3:32 PM 6/13/2006 // used PRIOR to jmolApplet() or jmolAppletInline() // added 4th array element in jmolRadioGroup -- title // added and id around link, checkbox, radio, menu // fixing AJAX loads for MSIE/Opera-Mozilla incompatibility // -- renamed Jmol-11.js from Jmol-new.js; JmolApplet.jar from JmolAppletProto.jar // renamed Jmol.js for Jmol 11 distribution // -- modified jmolRestoreOrientation() to be immediate, no 1-second delay // bob hanson -- jmolScriptWait always returns a string -- 11:23 AM 9/16/2006 // bh -- jmolCommandInput() // bh -- jmolSetTranslation(TF) -- forces translation even if there might be message callback issues // bh -- minor fixes suggested by Angel // bh -- adds jmolSetSyncId() and jmolGetSyncId() // bh 3/2008 -- adds jmolAppendInlineScript() and jmolAppendInlineArray() // bh 3/2008 -- fixes IE7 bug in relation to jmolLoadInlineArray() // bh 6/2008 -- adds jmolSetAppletWindow() // Angel H. 6/2008 -- added html " var t = "" if (labelHtml.toLowerCase().indexOf("")>=0) { t += eospan eospan = ""; } t += "" +eospan; if (_jmol.debugAlert) alert(t); return _jmolDocumentWrite(t); } function jmolStartNewRadioGroup() { ++_jmol.radioGroupCount; } function jmolRadioGroup(arrayOfRadioButtons, separatorHtml, groupName, id, title) { /* array: [radio1,radio2,radio3...] where radioN = ["script","label",isSelected,"id","title"] */ _jmolInitCheck(); var type = typeof arrayOfRadioButtons; if (type != "object" || type == null || ! arrayOfRadioButtons.length) { alert("invalid arrayOfRadioButtons"); return; } if (separatorHtml == undefined || separatorHtml == null) separatorHtml = "  "; var len = arrayOfRadioButtons.length; jmolStartNewRadioGroup(); if (!groupName) groupName = "jmolRadioGroup" + (_jmol.radioGroupCount - 1); var t = ""; for (var i = 0; i < len; ++i) { if (i == len - 1) separatorHtml = ""; var radio = arrayOfRadioButtons[i]; type = typeof radio; if (type == "object") { t += _jmolRadio(radio[0], radio[1], radio[2], separatorHtml, groupName, (radio.length > 3 ? radio[3]: (id ? id : groupName)+"_"+i), (radio.length > 4 ? radio[4] : 0), title); } else { t += _jmolRadio(radio, null, null, separatorHtml, groupName, (id ? id : groupName)+"_"+i, title); } } t+="" if (_jmol.debugAlert) alert(t); return _jmolDocumentWrite(t); } function jmolRadio(script, labelHtml, isChecked, separatorHtml, groupName, id, title) { _jmolInitCheck(); if (_jmol.radioGroupCount == 0) ++_jmol.radioGroupCount; var t = _jmolRadio(script, labelHtml, isChecked, separatorHtml, groupName, (id ? id : groupName + "_" + _jmol.radioCount), title ? title : 0); if (_jmol.debugAlert) alert(t); return _jmolDocumentWrite(t); } function jmolLink(script, label, id, title, jsscript) { //EH 2010, added jsscript _jmolInitCheck(); if (id == undefined || id == null) id = "jmolLink" + _jmol.linkCount; if (label == undefined || label == null) label = script.substring(0, 32); if (jsscript == undefined || jsscript == null) jsscript = ""; ++_jmol.linkCount; var scriptIndex = _jmolAddScript(script); if (jsscript == "") { var t = "" + label + ""; } else { var jsscriptIndex = _jmolAddJsScript(jsscript); var t = "" + label + ""; } if (_jmol.debugAlert) alert(t); return _jmolDocumentWrite(t); } function jmolCommandInput(label, size, id, title) { _jmolInitCheck(); if (id == undefined || id == null) id = "jmolCmd" + _jmol.cmdCount; if (label == undefined || label == null) label = "Execute"; if (size == undefined || isNaN(size)) size = 60; ++_jmol.cmdCount; var t = ""; if (_jmol.debugAlert) alert(t); return _jmolDocumentWrite(t); } function _jmolCommandKeyPress(e, id, target) { var keycode = (window.event ? window.event.keyCode : e ? e.which : 0); if (keycode == 13) { jmolScript(document.getElementById(id).value, target) } } function jmolMenu(arrayOfMenuItems, size, id, title) { _jmolInitCheck(); if (id == undefined || id == null) id = "jmolMenu" + _jmol.menuCount; ++_jmol.menuCount; var type = typeof arrayOfMenuItems; if (type != null && type == "object" && arrayOfMenuItems.length) { var len = arrayOfMenuItems.length; if (typeof size != "number" || size == 1) size = null; else if (size < 0) size = len; var sizeText = size ? " size='" + size + "' " : ""; var t = "" if (labelHtml.toLowerCase().indexOf("")>=0) { t += eospan eospan = ""; } t += "" +eospan + separatorHtml; return t; } function _jmolFindApplet(target) { // first look for the target in the current window var applet = _jmolFindAppletInWindow(_jmol.appletWindow != null ? _jmol.appletWindow : window, target); // THEN look for the target in child frames if (applet == undefined) applet = _jmolSearchFrames(window, target); // FINALLY look for the target in sibling frames if (applet == undefined) applet = _jmolSearchFrames(top, target); // look starting in top frame return applet; } function _jmolGetApplet(targetSuffix){ var target = "jmolApplet" + (targetSuffix ? targetSuffix : "0"); var applet = _jmolFindApplet(target); if (applet) return applet if(!_jmol.alerted)alert("could not find applet " + target); _jmol.alerted = true; return null } function _jmolSearchFrames(win, target) { var applet; var frames = win.frames; if (frames && frames.length) { // look in all the frames below this window try{ for (var i = 0; i < frames.length; ++i) { applet = _jmolSearchFrames(frames[i], target); if (applet) return applet; } }catch(e) { if (_jmol.debugAlert) alert("Jmol.js _jmolSearchFrames cannot access " + win.name + ".frame[" + i + "] consider using jmolSetAppletWindow()") } } return applet = _jmolFindAppletInWindow(win, target) } function _jmolFindAppletInWindow(win, target) { var doc = win.document; // getElementById fails on MacOSX Safari & Mozilla if (_jmol.useHtml4Object || _jmol.useIEObject) return doc.getElementById(target); else if (doc.applets) return doc.applets[target]; else return doc[target]; } function _jmolAddScript(script) { if (! script) return 0; var index = _jmol.scripts.length; _jmol.scripts[index] = script; return index; } function _jmolAddJsScript(jsscript) { //created by EH 2009 to allow jmol buttons to send input directly via js if (! jsscript) return 0; var index = _jmol.jsscripts.length; _jmol.jsscripts[index] = jsscript; return index; } function _jmolClick(scriptIndex, targetSuffix, elementClicked) { _jmol.element = elementClicked; jmolScript(_jmol.scripts[scriptIndex], targetSuffix); } function _jmolClickJs(scriptIndex, elementClicked) { //created by EH 2009 to allow jmol buttons to send input directly via js _jmol.element = elementClicked; eval(_jmol.jsscripts[scriptIndex]); } function _jmolMenuSelected(menuObject, targetSuffix) { var scriptIndex = menuObject.value; if (scriptIndex != undefined) { jmolScript(_jmol.scripts[scriptIndex], targetSuffix); return; } var len = menuObject.length; if (typeof len == "number") { for (var i = 0; i < len; ++i) { if (menuObject[i].selected) { _jmolClick(menuObject[i].value, targetSuffix); return; } } } alert("?Que? menu selected bug #8734"); } _jmol.checkboxMasters = {}; _jmol.checkboxItems = {}; function jmolSetCheckboxGroup(chkMaster,chkBox) { var id = chkMaster; if(typeof(id)=="number")id = "jmolCheckbox" + id; chkMaster = document.getElementById(id); if (!chkMaster)alert("jmolSetCheckboxGroup: master checkbox not found: " + id); var m = _jmol.checkboxMasters[id] = {}; m.chkMaster = chkMaster; m.chkGroup = {}; for (var i = 1; i < arguments.length; i++){ var id = arguments[i]; if(typeof(id)=="number")id = "jmolCheckbox" + id; checkboxItem = document.getElementById(id); if (!checkboxItem)alert("jmolSetCheckboxGroup: group checkbox not found: " + id); m.chkGroup[id] = checkboxItem; _jmol.checkboxItems[id] = m; } } function _jmolNotifyMaster(m){ //called when a group item is checked var allOn = true; var allOff = true; for (var chkBox in m.chkGroup){ if(m.chkGroup[chkBox].checked) allOff = false; else allOn = false; } if (allOn)m.chkMaster.checked = true; if (allOff)m.chkMaster.checked = false; if ((allOn || allOff) && _jmol.checkboxItems[m.chkMaster.id]) _jmolNotifyMaster(_jmol.checkboxItems[m.chkMaster.id]) } function _jmolNotifyGroup(m, isOn){ //called when a master item is checked for (var chkBox in m.chkGroup){ var item = m.chkGroup[chkBox] item.checked = isOn; if (_jmol.checkboxMasters[item.id]) _jmolNotifyGroup(_jmol.checkboxMasters[item.id], isOn) } } function _jmolCbClick(ckbox, whenChecked, whenUnchecked, targetSuffix) { _jmol.control = ckbox _jmolClick(ckbox.checked ? whenChecked : whenUnchecked, targetSuffix); if(_jmol.checkboxMasters[ckbox.id]) _jmolNotifyGroup(_jmol.checkboxMasters[ckbox.id], ckbox.checked) if(_jmol.checkboxItems[ckbox.id]) _jmolNotifyMaster(_jmol.checkboxItems[ckbox.id]) } function _jmolCbOver(ckbox, whenChecked, whenUnchecked) { window.status = _jmol.scripts[ckbox.checked ? whenUnchecked : whenChecked]; } function _jmolMouseOver(scriptIndex) { window.status = _jmol.scripts[scriptIndex]; } function _jmolMouseOut() { window.status = " "; return true; } function _jmolSetCodebase(codebase) { _jmol.codebase = codebase ? codebase : "."; if (_jmol.debugAlert) alert("jmolCodebase=" + _jmol.codebase); } function _jmolOnloadResetForms() { // must be evaluated ONLY once _jmol.previousOnloadHandler = window.onload; window.onload = function() { with (_jmol) { if (buttonCount+checkboxCount+menuCount+radioCount+radioGroupCount > 0) { var forms = document.forms; for (var i = forms.length; --i >= 0; ) forms[i].reset(); } if (previousOnloadHandler) previousOnloadHandler(); } } } //////////////////////////////////// /////extensions for getProperty///// //////////////////////////////////// function _jmolEvalJSON(s,key){ s=s+"" if(!s)return [] if(s.charAt(0)!="{"){ if(s.indexOf(" | ")>=0)s=s.replace(/\ \|\ /g, "\n") return s } var A = eval("("+s+")") if(!A)return if(key && A[key])A=A[key] return A } function _jmolEnumerateObject(A,key){ var sout="" if(typeof(A) == "string" && A!="null"){ sout+="\n"+key+"=\""+A+"\"" }else if(!isNaN(A)||A==null){ sout+="\n"+key+"="+(A+""==""?"null":A) }else if(A.length){ sout+=key+"=[]" for(var i=0;ib[0]?-1:0) } function _jmolSortMessages(A){ if(!A || typeof(A)!="object")return [] var B = [] for(var i=A.length-1;i>=0;i--)for(var j=0;j=0;) for(var j=0;j< Ret[i].length;j++) s+=Ret[i][j]+"\n" return s } function jmolScriptWaitOutput(script, targetSuffix) { if(!targetSuffix)targetSuffix="0" var ret = "" try{ if (script) { _jmolCheckBrowser(); var applet=_jmolGetApplet(targetSuffix); if (applet) ret += applet.scriptWaitOutput(script); } }catch(e){ } return ret; } function jmolEvaluate(molecularMath, targetSuffix) { //carries out molecular math on a model if(!targetSuffix)targetSuffix="0" var result = "" + jmolGetPropertyAsJavaObject("evaluate", molecularMath, targetSuffix); var s = result.replace(/\-*\d+/,"") if (s == "" && !isNaN(parseInt(result)))return parseInt(result); var s = result.replace(/\-*\d*\.\d*/,"") if (s == "" && !isNaN(parseFloat(result)))return parseFloat(result); return result; } function jmolScriptEcho(script, targetSuffix) { // returns a newline-separated list of all echos from a script if(!targetSuffix)targetSuffix="0" var Ret=jmolScriptWaitAsArray(script, targetSuffix) var s = "" for(var i=Ret.length;--i>=0;) for(var j=Ret[i].length;--j>=0;) if (Ret[i][j][1] == "scriptEcho")s+=Ret[i][j][3]+"\n" return s.replace(/ \| /g, "\n") } function jmolScriptMessage(script, targetSuffix) { // returns a newline-separated list of all messages from a script, ending with "script completed\n" if(!targetSuffix)targetSuffix="0" var Ret=jmolScriptWaitAsArray(script, targetSuffix) var s = "" for(var i=Ret.length;--i>=0;) for(var j=Ret[i].length;--j>=0;) if (Ret[i][j][1] == "scriptStatus")s+=Ret[i][j][3]+"\n" return s.replace(/ \| /g, "\n") } function jmolScriptWaitAsArray(script, targetSuffix) { var ret = "" try{ jmolGetStatus("scriptEcho,scriptMessage,scriptStatus,scriptError",targetSuffix) if (script) { _jmolCheckBrowser(); var applet=_jmolGetApplet(targetSuffix); if (applet) ret += applet.scriptWait(script); ret = _jmolEvalJSON(ret,"jmolStatus") if(typeof ret == "object") return ret } }catch(e){ } return [[ret]] } //////////// save/restore orientation ///////////// function jmolSaveOrientation(id, targetSuffix) { if(!targetSuffix)targetSuffix="0" return _jmol["savedOrientation"+id] = jmolGetPropertyAsArray("orientationInfo","info",targetSuffix).moveTo } function jmolRestoreOrientation(id, targetSuffix) { if(!targetSuffix)targetSuffix="0" var s=_jmol["savedOrientation"+id] if (!s || s == "")return s=s.replace(/1\.0/,"0") return jmolScriptWait(s,targetSuffix) } function jmolRestoreOrientationDelayed(id, delay, targetSuffix) { if(arguments.length < 2)delay=1; if(!targetSuffix)targetSuffix="0" var s=_jmol["savedOrientation"+id] if (!s || s == "")return s=s.replace(/1\.0/,delay) return jmolScriptWait(s,targetSuffix) } //////////// add parameter ///////////// /* * for adding callbacks or other parameters. Use: jmolSetDocument(0) var s= jmolApplet(....) s = jmolAppletAddParam(s,"messageCallback", "myFunctionName") document.write(s) jmolSetDocument(document) // if you want to then write buttons and such normally */ function jmolAppletAddParam(appletCode,name,value){ if(value == "")return appletCode return appletCode.replace(/\\n=0){ jmolApplet = function(w){ var s="" +"
" +"Applet would be here" +"

" +"

" return _jmolDocumentWrite(s) } _jmolFindApplet = function(){return jmolApplet0} jmolApplet0 = { script: function(script){document.getElementById("fakeApplet").value="\njmolScript:\n"+script} ,scriptWait: function(script){document.getElementById("fakeApplet").value="\njmolScriptWait:\n"+script} ,loadInline: function(data,script){document.getElementById("fakeApplet").value="\njmolLoadInline data:\n"+data+"\n\nscript:\n"+script} } } /////////////////////////////////////////// // This should no longer be needed, jmolResizeApplet() is better; kept for backwards compatibility /* Resizes absolutely (pixels) or by percent of window (w or h 0.5 means 50%). targetSuffix is optional and defaults to zero (first applet in page). Both w and h are optional, but needed if you want to use targetSuffix. h defaults to w w defaults to 100% of window If either w or h is between 0 and 1, then it is taken as percent/100. If either w or h is greater than 1, then it is taken as a size (pixels). */ function jmolResize(w,h,targetSuffix) { _jmol.alerted = true; var percentW = (!w ? 100 : w <= 1 && w > 0 ? w * 100 : 0); var percentH = (!h ? percentW : h <= 1 && h > 0 ? h * 100 : 0); if (_jmol.browser=="msie") { var width=document.body.clientWidth; var height=document.body.clientHeight; } else { var netscapeScrollWidth=15; var width=window.innerWidth - netscapeScrollWidth; var height=window.innerHeight-netscapeScrollWidth; } var applet = _jmolGetApplet(targetSuffix); if(!applet)return; applet.style.width = (percentW ? width * percentW/100 : w)+"px"; applet.style.height = (percentH ? height * percentH/100 : (h ? h : w))+"px"; //title=width + " " + height + " " + (new Date()); } // 13 Jun 09 -- makes jmolResize() obsolete (kept for backwards compatibility) function jmolResizeApplet(size,targetSuffix) { // See _jmolGetAppletSize() for the formats accepted as size [same used by jmolApplet()] // Special case: an empty value for width or height is accepted, meaning no change in that dimension. _jmol.alerted = true; var applet = _jmolGetApplet(targetSuffix); if(!applet)return; var sz = _jmolGetAppletSize(size, "px"); sz[0] && (applet.style.width = sz[0]); sz[1] && (applet.style.height = sz[1]); } function _jmolGetAppletSize(size, units) { /* Accepts single number or 2-value array, each one can be one of: percent (text string ending %), decimal 0 to 1 (percent/100), number, or text string (interpreted as nr.) [width, height] array of strings is returned, with units added if specified. Percent is relative to container div or element (which should have explicitly set size). */ var width, height; if ( (typeof size) == "object" && size != null ) { width = size[0]; height = size[1]; } else { width = height = size; } return [_jmolFixDim(width, units), _jmolFixDim(height, units)]; } function _jmolFixDim(x, units) { var sx = "" + x; return (sx.length == 0 ? (units ? "" : _jmol.allowedJmolSize[2]) : sx.indexOf("%") == sx.length-1 ? sx : (x = parseFloat(x)) <= 1 && x > 0 ? x * 100 + "%" : (isNaN(x = Math.floor(x)) ? _jmol.allowedJmolSize[2] : x < _jmol.allowedJmolSize[0] ? _jmol.allowedJmolSize[0] : x > _jmol.allowedJmolSize[1] ? _jmol.allowedJmolSize[1] : x) + (units ? units : "")); } T6UV_?@A CDEFGHIJ]Accept-RangesVServer\Content-TypeTDate^Content-LengthTEtagZConnection]Last-ModifiedUbytes_Apache/2.2.10 (Fedora)_application/x-javascript_Sun, 09 May 2010 02:05:01 GMTT4909_"3ea366-132d-4821257afbdc0"Uclose_Thu, 18 Mar 2010 12:26:39 GMT./\]]^2_NSMutableDictionary\NSDictionary-./abbc2_NSHTTPURLResponse]NSURLResponse)27:PRd INWbekt}!'@[{dO-/* * Copyright (C) 2006 Nicolas Vervelle, The Jmol Development Team * * Contact: nico@jmol.org, jmol-developers@lists.sf.net * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. */ /* Jaime Prilusky 2008 -- moved to Proteopedia/Support.js */ // function newAppletWindow(id) { // var sm = "" +Math.random(); // sm = sm.substring(2,10); // var url = "/wiki/extensions/Jmol/JmolPopup.html"; // if (id != undefined) { url = url + "?id=" + id + "&";} // var name = "jmol_" + sm; // var options = "menubar=yes,resizable=1,scrollbars,alwaysRaised,width=600,height=600,left=50"; // var newwindow = window.open(url,name,options); // if (window.focus) {newwindow.focus()} // return false; // } function jmolWikiPopupWindow(extensionPath, windowTitle, windowSize, windowLeft, windowTop, windowCode) { var windowWidth = parseInt(windowSize) + 15; var windowHeight = parseInt(windowSize) + 15; var opt = "width=" + windowWidth + "," + "height=" + windowHeight + "," + "toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=1," + "left=" + windowLeft + ",top=" + windowTop ; var s = "\n" + "\n" + "" + windowTitle + "\n" + "" + "\n" + ""; var w = open("", windowTitle, opt); w.document.open(); w.document.write(s); w.document.close(); w.focus(); } /* Eran Hodis Feb 2009 -- moved to Proteopedia/Support.js */ /* function for Consurf chain buttons in Structure Box */ // function ConsurfChainButton(elementClicked) { // // get the suffix of the Jmol applet on which we want to act by checking the target suffix added onto a child Jmol button's id // //var targetSuffix = String(elementClicked); // var strStart = elementClicked.lastIndexOf("_"); // var targetSuffix = elementClicked.slice(strStart + 1); // var chainLetter = elementClicked.slice(0,strStart); // strStart = chainLetter.lastIndexOf("_"); // chainLetter = chainLetter.slice(strStart + 1); // var PDBid = elementClicked.slice(0,strStart); // strStart = PDBid.lastIndexOf("_"); // PDBid = PDBid.slice(strStart + 1); // var displayOn = chainLetter + ' [x]'; // var displayOff = chainLetter + ' [ ]'; // if (document.getElementById(elementClicked).value==displayOn) { // document.getElementById(elementClicked).value=displayOff; // } else { // document.getElementById(elementClicked).value=displayOn; // } // // var jmolScriptLoadPDB = "if (loadedfileprev != \""+PDBid.toUpperCase()+"\"); set refreshing false; load /cgi-bin/getpdbz?"+PDBid+"; loadedfileprev = \""+PDBid.toUpperCase()+"\"; reloadfile=true; endif;"; // var jmolScriptColorConsurf = "select protein; define ~consurf_to_do selected; consurf_initial_scene = true; script \"/wiki/ConSurf/" + PDBid.slice(1,3) + "/" + PDBid + "_consurf.spt\"; set refreshing true;"; // // // make sure the right PDB file is loaded // jmolScript(jmolScriptLoadPDB,targetSuffix); // // make sure the right coloring and representations are used // jmolScript(jmolScriptColorConsurf,targetSuffix); // // // set the chains to match their displayed status on their Consurf buttons // var Buttons = document.getElementById(elementClicked).parentNode.parentNode.parentNode.getElementsByTagName("input"); // for (var i = 0; i < Buttons.length; i++) { // strStart = Buttons[i].value.lastIndexOf(" ["); // chainLetter = Buttons[i].value.slice(0,strStart); // if (Buttons[i].value.lastIndexOf("[x]") == -1) { // jmolScriptSetChain = "select :"+chainLetter+" and protein; spacefill off;color translucent -1; consurf_"+chainLetter+" = 1;" // jmolScript(jmolScriptSetChain,targetSuffix); // } else { // jmolScriptSetChain = "select :"+chainLetter+" and protein; spacefill on; color opaque;consurf_"+chainLetter+" = 0;"; // jmolScript(jmolScriptSetChain,targetSuffix); // } // } // } function setupCheckboxShiftClick() { return; // Solution by Angel Herraez to resume checkbox functionality // JP 2009 } X6YZ_;http://proteopedia.org/wiki/extensions/TreeAndMenu/dtree.jsObplist00 X$versionT$topY$archiverX$objects_WebResourceResponse_NSKeyedArchiver &,-345KLMNOPQRSTUVWXYZ[_`U$null  !"#$%V$classR$3R$8S$10S$11R$5R$6R$4R$7R$2R$9R$0R$1 '()$+WNS.base[NS.relative_;http://proteopedia.org/wiki/extensions/TreeAndMenu/dtree.js./01X$classesZ$classname12UNSURLXNSObject#A^F`7 6789BWNS.keysZNS.objects:;<=>?@A CDEFGHIJ]Accept-RangesVServer\Content-TypeTDate^Content-LengthTEtagZConnection]Last-ModifiedUbytes_Apache/2.2.10 (Fedora)_application/x-javascript_Sun, 09 May 2010 02:05:02 GMTU12066_"3da55c-2f22-48020b0b7ffc0"Uclose_Sun, 21 Feb 2010 18:43:19 GMT./\]]^2_NSMutableDictionary\NSDictionary/"./abbc2_NSHTTPURLResponse]NSURLResponse)27:PRd HMVadjs|~ &?ZzdO/"/*--------------------------------------------------| | dTree 2.05 | www.destroydrop.com/javascript/tree/ | |---------------------------------------------------| | Copyright (c) 2002-2003 Geir Landrö | | | | This script can be used freely as long as all | | copyright messages are intact. | | | | Updated: 17.04.2003 | |--------------------------------------------------*/ // Node object function Node(id, pid, name, url, title, target, icon, iconOpen, open) { this.id = id; this.pid = pid; this.name = name; this.url = url; this.title = title; this.target = target; this.icon = icon; this.iconOpen = iconOpen; this._io = open || false; this._is = false; this._ls = false; this._hc = false; this._ai = 0; this._p; }; // Tree object function dTree(objName) { this.config = { target : null, folderLinks : true, useSelection : true, useCookies : true, useLines : true, useIcons : true, useStatusText : false, closeSameLevel : false, inOrder : false } this.icon = { root : 'img/base.gif', folder : 'img/folder.gif', folderOpen : 'img/folderopen.gif', node : 'img/page.gif', empty : 'img/empty.gif', line : 'img/line.gif', join : 'img/join.gif', joinBottom : 'img/joinbottom.gif', plus : 'img/plus.gif', plusBottom : 'img/plusbottom.gif', minus : 'img/minus.gif', minusBottom : 'img/minusbottom.gif', nlPlus : 'img/nolines_plus.gif', nlMinus : 'img/nolines_minus.gif' }; this.obj = objName; this.aNodes = []; this.aIndent = []; this.root = new Node(-1); this.selectedNode = null; this.selectedFound = false; this.completed = false; }; // Adds a new node to the node array dTree.prototype.add = function(id, pid, name, url, title, target, icon, iconOpen, open) { this.aNodes[this.aNodes.length] = new Node(id, pid, name, url, title, target, icon, iconOpen, open); }; // Open/close all nodes dTree.prototype.openAll = function() { this.oAll(true); }; dTree.prototype.closeAll = function() { this.oAll(false); }; // Outputs the tree to the page dTree.prototype.toString = function() { var str = '
\n'; if (document.getElementById) { if (this.config.useCookies) this.selectedNode = this.getSelected(); str += this.addNode(this.root); } else str += 'Browser not supported.'; str += '
'; if (!this.selectedFound) this.selectedNode = null; this.completed = true; return str; }; // Creates the tree structure dTree.prototype.addNode = function(pNode) { var str = ''; var n=0; if (this.config.inOrder) n = pNode._ai; for (n; n'; } if (node.url) { str += ''; str += node.name; if (node.url || ((!this.config.folderLinks || !node.url) && node._hc)) str += ''; str += ''; if (node._hc) { str += '
'; str += this.addNode(node); str += '
'; } this.aIndent.pop(); return str; }; // Adds the empty and line icons dTree.prototype.indent = function(node, nodeId) { var str = ''; if (this.root.id != node.pid) { for (var n=0; n'; (node._ls) ? this.aIndent.push(0) : this.aIndent.push(1); if (node._hc) { str += ''; } else str += ''; } return str; }; // Checks if a node has any children and if it is the last sibling dTree.prototype.setCS = function(node) { var lastId; for (var n=0; n?@A CDEFGHIJ]Accept-RangesVServer\Content-TypeTDate^Content-LengthTEtagZConnection]Last-ModifiedUbytes_Apache/2.2.10 (Fedora)_application/x-javascript_Sun, 09 May 2010 02:05:02 GMTS845_"496653a-34d-48020b0d68440"Uclose_Sun, 21 Feb 2010 18:43:21 GMT./\]]^2_NSMutableDictionary\NSDictionaryM./abbc2_NSHTTPURLResponse]NSURLResponse)27:PRd RW`knt} *0Idd&OMvar ss_memory = null; function SearchCall() { var newdiv = document.getElementById("searchsuggest"); if(!newdiv){ var newdiv = document.createElement("div"); newdiv.id = "searchsuggest"; var searchdiv = document.getElementById("searchBody"); //insertAfter(newdiv,searchdiv) searchdiv.appendChild(newdiv); } var x = document.getElementById("searchInput").value; if (x== ss_memory){ return; } ss_memory =x; if (x.length < 10 && x.length > 1){ sajax_do_call( "wfAjaxSearchSuggest", [ x ], newdiv ); } } function ss_ajax_onload() { var x = document.getElementById( 'searchInput' ); x.onkeypress= function() { SearchCall(); }; } `6ab_3http://proteopedia.org/wiki/skins/common/ajax.js?97Obplist00 X$versionT$topY$archiverX$objects_WebResourceResponse_NSKeyedArchiver &,-345KLMNOPQRSTUVWXYZ[_`U$null  !"#$%V$classR$3R$8S$10S$11R$5R$6R$4R$7R$2R$9R$0R$1 '()$+WNS.base[NS.relative_3http://proteopedia.org/wiki/skins/common/ajax.js?97./01X$classesZ$classname12UNSURLXNSObject#A^F*Z 6789BWNS.keysZNS.objects:;<=>?@A CDEFGHIJ]Accept-RangesVServer\Content-TypeTDate^Content-LengthTEtagZConnection]Last-ModifiedUbytes_Apache/2.2.10 (Fedora)_application/x-javascript_Sun, 09 May 2010 02:05:02 GMTT4555_"4a844ae-11cb-434af0eea4d40"Uclose_Sat, 07 Jul 2007 16:39:41 GMT./\]]^2_NSMutableDictionary\NSDictionary./abbc2_NSHTTPURLResponse]NSURLResponse)27:PRd @ENY\bktv} 7RrwdO// remote scripting library // (c) copyright 2005 modernmethod, inc var sajax_debug_mode = false; var sajax_request_type = "GET"; /** * if sajax_debug_mode is true, this function outputs given the message into * the element with id = sajax_debug; if no such element exists in the document, * it is injected. */ function sajax_debug(text) { if (!sajax_debug_mode) return false; var e= document.getElementById('sajax_debug'); if (!e) { e= document.createElement("p"); e.className= 'sajax_debug'; e.id= 'sajax_debug'; var b= document.getElementsByTagName("body")[0]; if (b.firstChild) b.insertBefore(e, b.firstChild); else b.appendChild(e); } var m= document.createElement("div"); m.appendChild( document.createTextNode( text ) ); e.appendChild( m ); return true; } /** * compatibility wrapper for creating a new XMLHttpRequest object. */ function sajax_init_object() { sajax_debug("sajax_init_object() called..") var A; try { // Try the new style before ActiveX so we don't // unnecessarily trigger warnings in IE 7 when // set to prompt about ActiveX usage A = new XMLHttpRequest(); } catch (e) { try { A=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { A=new ActiveXObject("Microsoft.XMLHTTP"); } catch (oc) { A=null; } } } if (!A) sajax_debug("Could not create connection object."); return A; } /** * Perform an ajax call to mediawiki. Calls are handeled by AjaxDispatcher.php * func_name - the name of the function to call. Must be registered in $wgAjaxExportList * args - an array of arguments to that function * target - the target that will handle the result of the call. If this is a function, * if will be called with the XMLHttpRequest as a parameter; if it's an input * element, its value will be set to the resultText; if it's another type of * element, its innerHTML will be set to the resultText. * * Example: * sajax_do_call('doFoo', [1, 2, 3], document.getElementById("showFoo")); * * This will call the doFoo function via MediaWiki's AjaxDispatcher, with * (1, 2, 3) as the parameter list, and will show the result in the element * with id = showFoo */ function sajax_do_call(func_name, args, target) { var i, x, n; var uri; var post_data; uri = wgServer + ((wgScript == null) ? (wgScriptPath + "/index.php") : wgScript) + "?action=ajax"; if (sajax_request_type == "GET") { if (uri.indexOf("?") == -1) uri = uri + "?rs=" + encodeURIComponent(func_name); else uri = uri + "&rs=" + encodeURIComponent(func_name); for (i = 0; i < args.length; i++) uri = uri + "&rsargs[]=" + encodeURIComponent(args[i]); //uri = uri + "&rsrnd=" + new Date().getTime(); post_data = null; } else { post_data = "rs=" + encodeURIComponent(func_name); for (i = 0; i < args.length; i++) post_data = post_data + "&rsargs[]=" + encodeURIComponent(args[i]); } x = sajax_init_object(); if (!x) { alert("AJAX not supported"); return false; } try { x.open(sajax_request_type, uri, true); } catch (e) { if (window.location.hostname == "localhost") { alert("Your browser blocks XMLHttpRequest to 'localhost', try using a real hostname for development/testing."); } throw e; } if (sajax_request_type == "POST") { x.setRequestHeader("Method", "POST " + uri + " HTTP/1.1"); x.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); } x.setRequestHeader("Pragma", "cache=yes"); x.setRequestHeader("Cache-Control", "no-transform"); x.onreadystatechange = function() { if (x.readyState != 4) return; sajax_debug("received (" + x.status + " " + x.statusText + ") " + x.responseText); //if (x.status != 200) // alert("Error: " + x.status + " " + x.statusText + ": " + x.responseText); //else if ( typeof( target ) == 'function' ) { target( x ); } else if ( typeof( target ) == 'object' ) { if ( target.tagName == 'INPUT' ) { if (x.status == 200) target.value= x.responseText; //else alert("Error: " + x.status + " " + x.statusText + " (" + x.responseText + ")"); } else { if (x.status == 200) target.innerHTML = x.responseText; else target.innerHTML= "
Error: " + x.status + " " + x.statusText + " (" + x.responseText + ")
"; } } else { alert("bad target for sajax_do_call: not a function or object: " + target); } return; } sajax_debug(func_name + " uri = " + uri + " / post = " + post_data); x.send(post_data); sajax_debug(func_name + " waiting.."); delete x; return true; } d6ef_?@A CDEFGHIJ]Accept-RangesVServer\Content-TypeTDate^Content-LengthTEtagZConnection]Last-ModifiedUbytes_Apache/2.2.10 (Fedora)_application/x-javascript_Sun, 09 May 2010 02:05:03 GMTU36551_"3ea3f3-8ec7-48020b0e5c680"Uclose_Sun, 21 Feb 2010 18:43:22 GMT./\]]^2_NSMutableDictionary\NSDictionary./abbc2_NSHTTPURLResponse]NSURLResponse)27:PRd INWbekt}!'@[{dO/* This notice must be untouched at all times. Copyright (c) 2002-2008 Walter Zorn. All rights reserved. wz_tooltip.js v. 5.31 The latest version is available at http://www.walterzorn.com or http://www.devira.com or http://www.walterzorn.de Created 1.12.2002 by Walter Zorn (Web: http://www.walterzorn.com ) Last modified: 7.11.2008 Easy-to-use cross-browser tooltips. Just include the script at the beginning of the section, and invoke Tip('Tooltip text') to show and UnTip() to hide the tooltip, from the desired HTML eventhandlers. Example: My home page No container DIV required. By default, width and height of tooltips are automatically adapted to content. Is even capable of dynamically converting arbitrary HTML elements to tooltips by calling TagToTip('ID_of_HTML_element_to_be_converted') instead of Tip(), which means you can put important, search-engine-relevant stuff into tooltips. Appearance & behaviour of tooltips can be individually configured via commands passed to Tip() or TagToTip(). Tab Width: 4 LICENSE: LGPL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License (LGPL) as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For more details on the GNU Lesser General Public License, see http://www.gnu.org/copyleft/lesser.html */ var config = new Object(); //=================== GLOBAL TOOLTIP CONFIGURATION =========================// var tt_Debug = true // false or true - recommended: false once you release your page to the public var tt_Enabled = true // Allows to (temporarily) suppress tooltips, e.g. by providing the user with a button that sets this global variable to false var TagsToTip = true // false or true - if true, HTML elements to be converted to tooltips via TagToTip() are automatically hidden; // if false, you should hide those HTML elements yourself // For each of the following config variables there exists a command, which is // just the variablename in uppercase, to be passed to Tip() or TagToTip() to // configure tooltips individually. Individual commands override global // configuration. Order of commands is arbitrary. // Example: onmouseover="Tip('Tooltip text', LEFT, true, BGCOLOR, '#FF9900', FADEIN, 400)" config. Above = false // false or true - tooltip above mousepointer config. BgColor = '#E2E7FF' // Background colour (HTML colour value, in quotes) config. BgImg = '' // Path to background image, none if empty string '' config. BorderColor = '#003099' config. BorderStyle = 'solid' // Any permitted CSS value, but I recommend 'solid', 'dotted' or 'dashed' config. BorderWidth = 1 config. CenterMouse = false // false or true - center the tip horizontally below (or above) the mousepointer config. ClickClose = false // false or true - close tooltip if the user clicks somewhere config. ClickSticky = false // false or true - make tooltip sticky if user left-clicks on the hovered element while the tooltip is active config. CloseBtn = false // false or true - closebutton in titlebar config. CloseBtnColors = ['#990000', '#FFFFFF', '#DD3333', '#FFFFFF'] // [Background, text, hovered background, hovered text] - use empty strings '' to inherit title colours config. CloseBtnText = ' X ' // Close button text (may also be an image tag) config. CopyContent = true // When converting a HTML element to a tooltip, copy only the element's content, rather than converting the element by its own config. Delay = 400 // Time span in ms until tooltip shows up config. Duration = 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 config. Exclusive = false // false or true - no other tooltip can appear until the current one has actively been closed config. FadeIn = 100 // Fade-in duration in ms, e.g. 400; 0 for no animation config. FadeOut = 100 config. FadeInterval = 30 // Duration of each fade step in ms (recommended: 30) - shorter is smoother but causes more CPU-load config. Fix = 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. config. FollowMouse = true // false or true - tooltip follows the mouse config. FontColor = '#000044' config. FontFace = 'Verdana,Geneva,sans-serif' config. FontSize = '8pt' // E.g. '9pt' or '12px' - unit is mandatory config. FontWeight = 'normal' // 'normal' or 'bold'; config. Height = 0 // Tooltip height; 0 for automatic adaption to tooltip content, < 0 (e.g. -100) for a maximum for automatic adaption config. JumpHorz = false // false or true - jump horizontally to other side of mouse if tooltip would extend past clientarea boundary config. JumpVert = true // false or true - jump vertically " config. Left = false // false or true - tooltip on the left of the mouse config. OffsetX = 14 // Horizontal offset of left-top corner from mousepointer config. OffsetY = 8 // Vertical offset config. Opacity = 100 // Integer between 0 and 100 - opacity of tooltip in percent config. Padding = 3 // Spacing between border and content config. Shadow = false // false or true config. ShadowColor = '#C0C0C0' config. ShadowWidth = 5 config. Sticky = false // false or true - fixate tip, ie. don't follow the mouse and don't hide on mouseout config. TextAlign = 'left' // 'left', 'right' or 'justify' config. Title = '' // Default title text applied to all tips (no default title: empty string '') config. TitleAlign = 'left' // 'left' or 'right' - text alignment inside the title bar config. TitleBgColor = '' // If empty string '', BorderColor will be used config. TitleFontColor = '#FFFFFF' // Color of title text - if '', BgColor (of tooltip body) will be used config. TitleFontFace = '' // If '' use FontFace (boldified) config. TitleFontSize = '' // If '' use FontSize config. TitlePadding = 2 config. Width = 0 // Tooltip width; 0 for automatic adaption to tooltip content; < -1 (e.g. -240) for a maximum width for that automatic adaption; // -1: tooltip width confined to the width required for the titlebar //======= END OF TOOLTIP CONFIG, DO NOT CHANGE ANYTHING BELOW ==============// //===================== PUBLIC =============================================// function Tip() { tt_Tip(arguments, null); } function TagToTip() { var t2t = tt_GetElt(arguments[0]); if(t2t) tt_Tip(arguments, t2t); } function UnTip() { tt_OpReHref(); if(tt_aV[DURATION] < 0 && (tt_iState & 0x2)) tt_tDurt.Timer("tt_HideInit()", -tt_aV[DURATION], true); else if(!(tt_aV[STICKY] && (tt_iState & 0x2))) tt_HideInit(); } //================== PUBLIC PLUGIN API =====================================// // Extension eventhandlers currently supported: // OnLoadConfig, OnCreateContentString, OnSubDivsCreated, OnShow, OnMoveBefore, // OnMoveAfter, OnHideInit, OnHide, OnKill var tt_aElt = 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 tt_aV = new Array(), // Caches and enumerates config data for currently active tooltip tt_sContent, // Inner tooltip text or HTML tt_t2t, tt_t2tDad, // Tag converted to tip, and its DOM parent element tt_musX, tt_musY, tt_over, tt_x, tt_y, tt_w, tt_h; // Position, width and height of currently displayed tooltip function tt_Extension() { tt_ExtCmdEnum(); tt_aExt[tt_aExt.length] = this; return this; } function tt_SetTipPos(x, y) { var css = tt_aElt[0].style; tt_x = x; tt_y = y; css.left = x + "px"; css.top = y + "px"; if(tt_ie56) { var ifrm = tt_aElt[tt_aElt.length - 1]; if(ifrm) { ifrm.style.left = css.left; ifrm.style.top = css.top; } } } function tt_HideInit() { if(tt_iState) { tt_ExtCallFncs(0, "HideInit"); tt_iState &= ~(0x4 | 0x8); if(tt_flagOpa && tt_aV[FADEOUT]) { tt_tFade.EndTimer(); if(tt_opa) { var n = Math.round(tt_aV[FADEOUT] / (tt_aV[FADEINTERVAL] * (tt_aV[OPACITY] / tt_opa))); tt_Fade(tt_opa, tt_opa, 0, n); return; } } tt_tHide.Timer("tt_Hide();", 1, false); } } function tt_Hide() { if(tt_db && tt_iState) { tt_OpReHref(); if(tt_iState & 0x2) { tt_aElt[0].style.visibility = "hidden"; tt_ExtCallFncs(0, "Hide"); } tt_tShow.EndTimer(); tt_tHide.EndTimer(); tt_tDurt.EndTimer(); tt_tFade.EndTimer(); if(!tt_op && !tt_ie) { tt_tWaitMov.EndTimer(); tt_bWait = false; } if(tt_aV[CLICKCLOSE] || tt_aV[CLICKSTICKY]) tt_RemEvtFnc(document, "mouseup", tt_OnLClick); tt_ExtCallFncs(0, "Kill"); // In case of a TagToTip tip, hide converted DOM node and // re-insert it into DOM if(tt_t2t && !tt_aV[COPYCONTENT]) tt_UnEl2Tip(); tt_iState = 0; tt_over = null; tt_ResetMainDiv(); if(tt_aElt[tt_aElt.length - 1]) tt_aElt[tt_aElt.length - 1].style.display = "none"; } } function tt_GetElt(id) { return(document.getElementById ? document.getElementById(id) : document.all ? document.all[id] : null); } function tt_GetDivW(el) { return(el ? (el.offsetWidth || el.style.pixelWidth || 0) : 0); } function tt_GetDivH(el) { return(el ? (el.offsetHeight || el.style.pixelHeight || 0) : 0); } function tt_GetScrollX() { return(window.pageXOffset || (tt_db ? (tt_db.scrollLeft || 0) : 0)); } function tt_GetScrollY() { return(window.pageYOffset || (tt_db ? (tt_db.scrollTop || 0) : 0)); } function tt_GetClientW() { return tt_GetWndCliSiz("Width"); } function tt_GetClientH() { return tt_GetWndCliSiz("Height"); } function tt_GetEvtX(e) { return (e ? ((typeof(e.pageX) != tt_u) ? e.pageX : (e.clientX + tt_GetScrollX())) : 0); } function tt_GetEvtY(e) { return (e ? ((typeof(e.pageY) != tt_u) ? e.pageY : (e.clientY + tt_GetScrollY())) : 0); } function tt_AddEvtFnc(el, sEvt, PFnc) { if(el) { if(el.addEventListener) el.addEventListener(sEvt, PFnc, false); else el.attachEvent("on" + sEvt, PFnc); } } function tt_RemEvtFnc(el, sEvt, PFnc) { if(el) { if(el.removeEventListener) el.removeEventListener(sEvt, PFnc, false); else el.detachEvent("on" + sEvt, PFnc); } } function tt_GetDad(el) { return(el.parentNode || el.parentElement || el.offsetParent); } function tt_MovDomNode(el, dadFrom, dadTo) { if(dadFrom) dadFrom.removeChild(el); if(dadTo) dadTo.appendChild(el); } //====================== PRIVATE ===========================================// var tt_aExt = new Array(), // Array of extension objects tt_db, tt_op, tt_ie, tt_ie56, tt_bBoxOld, // Browser flags tt_body, tt_ovr_, // HTML element the mouse is currently over tt_flagOpa, // Opacity support: 1=IE, 2=Khtml, 3=KHTML, 4=Moz, 5=W3C tt_maxPosX, tt_maxPosY, tt_iState = 0, // Tooltip active |= 1, shown |= 2, move with mouse |= 4, exclusive |= 8 tt_opa, // Currently applied opacity tt_bJmpVert, tt_bJmpHorz,// Tip temporarily on other side of mouse tt_elDeHref, // The tag from which we've removed the href attribute // Timer tt_tShow = new Number(0), tt_tHide = new Number(0), tt_tDurt = new Number(0), tt_tFade = new Number(0), tt_tWaitMov = new Number(0), tt_bWait = false, tt_u = "undefined"; function tt_Init() { tt_MkCmdEnum(); // Send old browsers instantly to hell if(!tt_Browser() || !tt_MkMainDiv()) return; tt_IsW3cBox(); tt_OpaSupport(); tt_AddEvtFnc(document, "mousemove", tt_Move); // In Debug mode we search for TagToTip() calls in order to notify // the user if they've forgotten to set the TagsToTip config flag if(TagsToTip || tt_Debug) tt_SetOnloadFnc(); // Ensure the tip be hidden when the page unloads tt_AddEvtFnc(window, "unload", tt_Hide); } // Creates command names by translating config variable names to upper case function tt_MkCmdEnum() { var n = 0; for(var i in config) eval("window." + i.toString().toUpperCase() + " = " + n++); tt_aV.length = n; } function tt_Browser() { var n, nv, n6, w3c; n = navigator.userAgent.toLowerCase(), nv = navigator.appVersion; tt_op = (document.defaultView && typeof(eval("w" + "indow" + "." + "o" + "p" + "er" + "a")) != tt_u); tt_ie = n.indexOf("msie") != -1 && document.all && !tt_op; if(tt_ie) { var ieOld = (!document.compatMode || document.compatMode == "BackCompat"); tt_db = !ieOld ? document.documentElement : (document.body || null); if(tt_db) tt_ie56 = parseFloat(nv.substring(nv.indexOf("MSIE") + 5)) >= 5.5 && typeof document.body.style.maxHeight == tt_u; } else { tt_db = document.documentElement || document.body || (document.getElementsByTagName ? document.getElementsByTagName("body")[0] : null); if(!tt_op) { n6 = document.defaultView && typeof document.defaultView.getComputedStyle != tt_u; w3c = !n6 && document.getElementById; } } tt_body = (document.getElementsByTagName ? document.getElementsByTagName("body")[0] : (document.body || null)); if(tt_ie || n6 || tt_op || w3c) { if(tt_body && tt_db) { if(document.attachEvent || document.addEventListener) return true; } else tt_Err("wz_tooltip.js must be included INSIDE the body section," + " immediately after the opening tag.", false); } tt_db = null; return false; } function tt_MkMainDiv() { // Create the tooltip DIV if(tt_body.insertAdjacentHTML) tt_body.insertAdjacentHTML("afterBegin", tt_MkMainDivHtm()); else if(typeof tt_body.innerHTML != tt_u && document.createElement && tt_body.appendChild) tt_body.appendChild(tt_MkMainDivDom()); if(window.tt_GetMainDivRefs /* FireFox Alzheimer */ && tt_GetMainDivRefs()) return true; tt_db = null; return false; } function tt_MkMainDivHtm() { return( '
' + (tt_ie56 ? ('') : '') ); } function tt_MkMainDivDom() { var el = document.createElement("div"); if(el) el.id = "WzTtDiV"; return el; } function tt_GetMainDivRefs() { tt_aElt[0] = tt_GetElt("WzTtDiV"); if(tt_ie56 && tt_aElt[0]) { tt_aElt[tt_aElt.length - 1] = tt_GetElt("WzTtIfRm"); if(!tt_aElt[tt_aElt.length - 1]) tt_aElt[0] = null; } if(tt_aElt[0]) { var css = tt_aElt[0].style; css.visibility = "hidden"; css.position = "absolute"; css.overflow = "hidden"; return true; } return false; } function tt_ResetMainDiv() { tt_SetTipPos(0, 0); tt_aElt[0].innerHTML = ""; tt_aElt[0].style.width = "0px"; tt_h = 0; } function tt_IsW3cBox() { var css = tt_aElt[0].style; css.padding = "10px"; css.width = "40px"; tt_bBoxOld = (tt_GetDivW(tt_aElt[0]) == 40); css.padding = "0px"; tt_ResetMainDiv(); } function tt_OpaSupport() { var css = tt_body.style; tt_flagOpa = (typeof(css.KhtmlOpacity) != tt_u) ? 2 : (typeof(css.KHTMLOpacity) != tt_u) ? 3 : (typeof(css.MozOpacity) != tt_u) ? 4 : (typeof(css.opacity) != tt_u) ? 5 : (typeof(css.filter) != tt_u) ? 1 : 0; } // Ported from http://dean.edwards.name/weblog/2006/06/again/ // (Dean Edwards et al.) function tt_SetOnloadFnc() { tt_AddEvtFnc(document, "DOMContentLoaded", tt_HideSrcTags); tt_AddEvtFnc(window, "load", tt_HideSrcTags); if(tt_body.attachEvent) tt_body.attachEvent("onreadystatechange", function() { if(tt_body.readyState == "complete") tt_HideSrcTags(); } ); if(/WebKit|KHTML/i.test(navigator.userAgent)) { var t = setInterval(function() { if(/loaded|complete/.test(document.readyState)) { clearInterval(t); tt_HideSrcTags(); } }, 10); } } function tt_HideSrcTags() { if(!window.tt_HideSrcTags || window.tt_HideSrcTags.done) return; window.tt_HideSrcTags.done = true; if(!tt_HideSrcTagsRecurs(tt_body)) tt_Err("There are HTML elements to be converted to tooltips.\nIf you" + " want these HTML elements to be automatically hidden, you" + " must edit wz_tooltip.js, and set TagsToTip in the global" + " tooltip configuration to true.", true); } function tt_HideSrcTagsRecurs(dad) { var ovr, asT2t; // Walk the DOM tree for tags that have an onmouseover or onclick attribute // containing a TagToTip('...') call. // (.childNodes first since .children is bugous in Safari) var a = dad.childNodes || dad.children || null; for(var i = a ? a.length : 0; i;) {--i; if(!tt_HideSrcTagsRecurs(a[i])) return false; ovr = a[i].getAttribute ? (a[i].getAttribute("onmouseover") || a[i].getAttribute("onclick")) : (typeof a[i].onmouseover == "function") ? (a[i].onmouseover || a[i].onclick) : null; if(ovr) { asT2t = ovr.toString().match(/TagToTip\s*\(\s*'[^'.]+'\s*[\),]/); if(asT2t && asT2t.length) { if(!tt_HideSrcTag(asT2t[0])) return false; } } } return true; } function tt_HideSrcTag(sT2t) { var id, el; // The ID passed to the found TagToTip() call identifies an HTML element // to be converted to a tooltip, so hide that element id = sT2t.replace(/.+'([^'.]+)'.+/, "$1"); el = tt_GetElt(id); if(el) { if(tt_Debug && !TagsToTip) return false; else el.style.display = "none"; } else tt_Err("Invalid ID\n'" + id + "'\npassed to TagToTip()." + " There exists no HTML element with that ID.", true); return true; } function tt_Tip(arg, t2t) { if(!tt_db || (tt_iState & 0x8)) return; if(tt_iState) tt_Hide(); if(!tt_Enabled) return; tt_t2t = t2t; if(!tt_ReadCmds(arg)) return; tt_iState = 0x1 | 0x4; tt_AdaptConfig1(); tt_MkTipContent(arg); tt_MkTipSubDivs(); tt_FormatTip(); tt_bJmpVert = false; tt_bJmpHorz = false; tt_maxPosX = tt_GetClientW() + tt_GetScrollX() - tt_w - 1; tt_maxPosY = tt_GetClientH() + tt_GetScrollY() - tt_h - 1; tt_AdaptConfig2(); // Ensure the tip be shown and positioned before the first onmousemove tt_OverInit(); tt_ShowInit(); tt_Move(); } function tt_ReadCmds(a) { var i; // First load the global config values, to initialize also values // for which no command is passed i = 0; for(var j in config) tt_aV[i++] = config[j]; // Then replace each cached config value for which a command is // passed (ensure the # of command args plus value args be even) if(a.length & 1) { for(i = a.length - 1; i > 0; i -= 2) tt_aV[a[i - 1]] = a[i]; return true; } tt_Err("Incorrect call of Tip() or TagToTip().\n" + "Each command must be followed by a value.", true); return false; } function tt_AdaptConfig1() { tt_ExtCallFncs(0, "LoadConfig"); // Inherit unspecified title formattings from body if(!tt_aV[TITLEBGCOLOR].length) tt_aV[TITLEBGCOLOR] = tt_aV[BORDERCOLOR]; if(!tt_aV[TITLEFONTCOLOR].length) tt_aV[TITLEFONTCOLOR] = tt_aV[BGCOLOR]; if(!tt_aV[TITLEFONTFACE].length) tt_aV[TITLEFONTFACE] = tt_aV[FONTFACE]; if(!tt_aV[TITLEFONTSIZE].length) tt_aV[TITLEFONTSIZE] = tt_aV[FONTSIZE]; if(tt_aV[CLOSEBTN]) { // Use title colours for non-specified closebutton colours if(!tt_aV[CLOSEBTNCOLORS]) tt_aV[CLOSEBTNCOLORS] = new Array("", "", "", ""); for(var i = 4; i;) {--i; if(!tt_aV[CLOSEBTNCOLORS][i].length) tt_aV[CLOSEBTNCOLORS][i] = (i & 1) ? tt_aV[TITLEFONTCOLOR] : tt_aV[TITLEBGCOLOR]; } // Enforce titlebar be shown if(!tt_aV[TITLE].length) tt_aV[TITLE] = " "; } // Circumvents broken display of images and fade-in flicker in Geckos < 1.8 if(tt_aV[OPACITY] == 100 && typeof tt_aElt[0].style.MozOpacity != tt_u && !Array.every) tt_aV[OPACITY] = 99; // Smartly shorten the delay for fade-in tooltips if(tt_aV[FADEIN] && tt_flagOpa && tt_aV[DELAY] > 100) tt_aV[DELAY] = Math.max(tt_aV[DELAY] - tt_aV[FADEIN], 100); } function tt_AdaptConfig2() { if(tt_aV[CENTERMOUSE]) { tt_aV[OFFSETX] -= ((tt_w - (tt_aV[SHADOW] ? tt_aV[SHADOWWIDTH] : 0)) >> 1); tt_aV[JUMPHORZ] = false; } } // Expose content globally so extensions can modify it function tt_MkTipContent(a) { if(tt_t2t) { if(tt_aV[COPYCONTENT]) tt_sContent = tt_t2t.innerHTML; else tt_sContent = ""; } else tt_sContent = a[0]; tt_ExtCallFncs(0, "CreateContentString"); } function tt_MkTipSubDivs() { var sCss = 'position:relative;margin:0px;padding:0px;border-width:0px;left:0px;top:0px;line-height:normal;width:auto;', sTbTrTd = ' cellspacing="0" cellpadding="0" border="0" style="' + sCss + '">' + '' + tt_aV[TITLE] + '' + (tt_aV[CLOSEBTN] ? ('') : '') + '
' + '' + tt_aV[CLOSEBTNTEXT] + '
') : '') + '
' + '' + tt_sContent + '
' + (tt_aV[SHADOW] ? ('
' + '
') : '') ); tt_GetSubDivRefs(); // Convert DOM node to tip if(tt_t2t && !tt_aV[COPYCONTENT]) tt_El2Tip(); tt_ExtCallFncs(0, "SubDivsCreated"); } function tt_GetSubDivRefs() { var aId = new Array("WzTiTl", "WzTiTlTb", "WzTiTlI", "WzClOsE", "WzBoDy", "WzBoDyI", "WzTtShDwB", "WzTtShDwR"); for(var i = aId.length; i; --i) tt_aElt[i] = tt_GetElt(aId[i - 1]); } function tt_FormatTip() { var css, w, h, pad = tt_aV[PADDING], padT, wBrd = tt_aV[BORDERWIDTH], iOffY, iOffSh, iAdd = (pad + wBrd) << 1; //--------- Title DIV ---------- if(tt_aV[TITLE].length) { padT = tt_aV[TITLEPADDING]; css = tt_aElt[1].style; css.background = tt_aV[TITLEBGCOLOR]; css.paddingTop = css.paddingBottom = padT + "px"; css.paddingLeft = css.paddingRight = (padT + 2) + "px"; css = tt_aElt[3].style; css.color = tt_aV[TITLEFONTCOLOR]; if(tt_aV[WIDTH] == -1) css.whiteSpace = "nowrap"; css.fontFamily = tt_aV[TITLEFONTFACE]; css.fontSize = tt_aV[TITLEFONTSIZE]; css.fontWeight = "bold"; css.textAlign = tt_aV[TITLEALIGN]; // Close button DIV if(tt_aElt[4]) { css = tt_aElt[4].style; css.background = tt_aV[CLOSEBTNCOLORS][0]; css.color = tt_aV[CLOSEBTNCOLORS][1]; css.fontFamily = tt_aV[TITLEFONTFACE]; css.fontSize = tt_aV[TITLEFONTSIZE]; css.fontWeight = "bold"; } if(tt_aV[WIDTH] > 0) tt_w = tt_aV[WIDTH]; else { tt_w = tt_GetDivW(tt_aElt[3]) + tt_GetDivW(tt_aElt[4]); // Some spacing between title DIV and closebutton if(tt_aElt[4]) tt_w += pad; // Restrict auto width to max width if(tt_aV[WIDTH] < -1 && tt_w > -tt_aV[WIDTH]) tt_w = -tt_aV[WIDTH]; } // Ensure the top border of the body DIV be covered by the title DIV iOffY = -wBrd; } else { tt_w = 0; iOffY = 0; } //-------- Body DIV ------------ css = tt_aElt[5].style; css.top = iOffY + "px"; if(wBrd) { css.borderColor = tt_aV[BORDERCOLOR]; css.borderStyle = tt_aV[BORDERSTYLE]; css.borderWidth = wBrd + "px"; } if(tt_aV[BGCOLOR].length) css.background = tt_aV[BGCOLOR]; if(tt_aV[BGIMG].length) css.backgroundImage = "url(" + tt_aV[BGIMG] + ")"; css.padding = pad + "px"; css.textAlign = tt_aV[TEXTALIGN]; if(tt_aV[HEIGHT]) { css.overflow = "auto"; if(tt_aV[HEIGHT] > 0) css.height = (tt_aV[HEIGHT] + iAdd) + "px"; else tt_h = iAdd - tt_aV[HEIGHT]; } // TD inside body DIV css = tt_aElt[6].style; css.color = tt_aV[FONTCOLOR]; css.fontFamily = tt_aV[FONTFACE]; css.fontSize = tt_aV[FONTSIZE]; css.fontWeight = tt_aV[FONTWEIGHT]; css.textAlign = tt_aV[TEXTALIGN]; if(tt_aV[WIDTH] > 0) w = tt_aV[WIDTH]; // Width like title (if existent) else if(tt_aV[WIDTH] == -1 && tt_w) w = tt_w; else { // Measure width of the body's inner TD, as some browsers would expand // the container and outer body DIV to 100% w = tt_GetDivW(tt_aElt[6]); // Restrict auto width to max width if(tt_aV[WIDTH] < -1 && w > -tt_aV[WIDTH]) w = -tt_aV[WIDTH]; } if(w > tt_w) tt_w = w; tt_w += iAdd; //--------- Shadow DIVs ------------ if(tt_aV[SHADOW]) { tt_w += tt_aV[SHADOWWIDTH]; iOffSh = Math.floor((tt_aV[SHADOWWIDTH] * 4) / 3); // Bottom shadow css = tt_aElt[7].style; css.top = iOffY + "px"; css.left = iOffSh + "px"; css.width = (tt_w - iOffSh - tt_aV[SHADOWWIDTH]) + "px"; css.height = tt_aV[SHADOWWIDTH] + "px"; css.background = tt_aV[SHADOWCOLOR]; // Right shadow css = tt_aElt[8].style; css.top = iOffSh + "px"; css.left = (tt_w - tt_aV[SHADOWWIDTH]) + "px"; css.width = tt_aV[SHADOWWIDTH] + "px"; css.background = tt_aV[SHADOWCOLOR]; } else iOffSh = 0; //-------- Container DIV ------- tt_SetTipOpa(tt_aV[FADEIN] ? 0 : tt_aV[OPACITY]); tt_FixSize(iOffY, iOffSh); } // Fixate the size so it can't dynamically change while the tooltip is moving. function tt_FixSize(iOffY, iOffSh) { var wIn, wOut, h, add, pad = tt_aV[PADDING], wBrd = tt_aV[BORDERWIDTH], i; tt_aElt[0].style.width = tt_w + "px"; tt_aElt[0].style.pixelWidth = tt_w; wOut = tt_w - ((tt_aV[SHADOW]) ? tt_aV[SHADOWWIDTH] : 0); // Body wIn = wOut; if(!tt_bBoxOld) wIn -= (pad + wBrd) << 1; tt_aElt[5].style.width = wIn + "px"; // Title if(tt_aElt[1]) { wIn = wOut - ((tt_aV[TITLEPADDING] + 2) << 1); if(!tt_bBoxOld) wOut = wIn; tt_aElt[1].style.width = wOut + "px"; tt_aElt[2].style.width = wIn + "px"; } // Max height specified if(tt_h) { h = tt_GetDivH(tt_aElt[5]); if(h > tt_h) { if(!tt_bBoxOld) tt_h -= (pad + wBrd) << 1; tt_aElt[5].style.height = tt_h + "px"; } } tt_h = tt_GetDivH(tt_aElt[0]) + iOffY; // Right shadow if(tt_aElt[8]) tt_aElt[8].style.height = (tt_h - iOffSh) + "px"; i = tt_aElt.length - 1; if(tt_aElt[i]) { tt_aElt[i].style.width = tt_w + "px"; tt_aElt[i].style.height = tt_h + "px"; } } function tt_DeAlt(el) { var aKid; if(el) { if(el.alt) el.alt = ""; if(el.title) el.title = ""; aKid = el.childNodes || el.children || null; if(aKid) { for(var i = aKid.length; i;) tt_DeAlt(aKid[--i]); } } } // This hack removes the native tooltips over links in Opera function tt_OpDeHref(el) { if(!tt_op) return; if(tt_elDeHref) tt_OpReHref(); while(el) { if(el.hasAttribute && el.hasAttribute("href")) { el.t_href = el.getAttribute("href"); el.t_stats = window.status; el.removeAttribute("href"); el.style.cursor = "hand"; tt_AddEvtFnc(el, "mousedown", tt_OpReHref); window.status = el.t_href; tt_elDeHref = el; break; } el = tt_GetDad(el); } } function tt_OpReHref() { if(tt_elDeHref) { tt_elDeHref.setAttribute("href", tt_elDeHref.t_href); tt_RemEvtFnc(tt_elDeHref, "mousedown", tt_OpReHref); window.status = tt_elDeHref.t_stats; tt_elDeHref = null; } } function tt_El2Tip() { var css = tt_t2t.style; // Store previous positioning tt_t2t.t_cp = css.position; tt_t2t.t_cl = css.left; tt_t2t.t_ct = css.top; tt_t2t.t_cd = css.display; // Store the tag's parent element so we can restore that DOM branch // when the tooltip is being hidden tt_t2tDad = tt_GetDad(tt_t2t); tt_MovDomNode(tt_t2t, tt_t2tDad, tt_aElt[6]); css.display = "block"; css.position = "static"; css.left = css.top = css.marginLeft = css.marginTop = "0px"; } function tt_UnEl2Tip() { // Restore positioning and display var css = tt_t2t.style; css.display = tt_t2t.t_cd; tt_MovDomNode(tt_t2t, tt_GetDad(tt_t2t), tt_t2tDad); css.position = tt_t2t.t_cp; css.left = tt_t2t.t_cl; css.top = tt_t2t.t_ct; tt_t2tDad = null; } function tt_OverInit() { if(window.event) tt_over = window.event.target || window.event.srcElement; else tt_over = tt_ovr_; tt_DeAlt(tt_over); tt_OpDeHref(tt_over); } function tt_ShowInit() { tt_tShow.Timer("tt_Show()", tt_aV[DELAY], true); if(tt_aV[CLICKCLOSE] || tt_aV[CLICKSTICKY]) tt_AddEvtFnc(document, "mouseup", tt_OnLClick); } function tt_Show() { var css = tt_aElt[0].style; // Override the z-index of the topmost wz_dragdrop.js D&D item css.zIndex = Math.max((window.dd && dd.z) ? (dd.z + 2) : 0, 1010); if(tt_aV[STICKY] || !tt_aV[FOLLOWMOUSE]) tt_iState &= ~0x4; if(tt_aV[EXCLUSIVE]) tt_iState |= 0x8; if(tt_aV[DURATION] > 0) tt_tDurt.Timer("tt_HideInit()", tt_aV[DURATION], true); tt_ExtCallFncs(0, "Show") css.visibility = "visible"; tt_iState |= 0x2; if(tt_aV[FADEIN]) tt_Fade(0, 0, tt_aV[OPACITY], Math.round(tt_aV[FADEIN] / tt_aV[FADEINTERVAL])); tt_ShowIfrm(); } function tt_ShowIfrm() { if(tt_ie56) { var ifrm = tt_aElt[tt_aElt.length - 1]; if(ifrm) { var css = ifrm.style; css.zIndex = tt_aElt[0].style.zIndex - 1; css.display = "block"; } } } function tt_Move(e) { if(e) tt_ovr_ = e.target || e.srcElement; e = e || window.event; if(e) { tt_musX = tt_GetEvtX(e); tt_musY = tt_GetEvtY(e); } if(tt_iState & 0x4) { // Prevent jam of mousemove events if(!tt_op && !tt_ie) { if(tt_bWait) return; tt_bWait = true; tt_tWaitMov.Timer("tt_bWait = false;", 1, true); } if(tt_aV[FIX]) { tt_iState &= ~0x4; tt_PosFix(); } else if(!tt_ExtCallFncs(e, "MoveBefore")) tt_SetTipPos(tt_Pos(0), tt_Pos(1)); tt_ExtCallFncs([tt_musX, tt_musY], "MoveAfter") } } function tt_Pos(iDim) { var iX, bJmpMod, cmdAlt, cmdOff, cx, iMax, iScrl, iMus, bJmp; // Map values according to dimension to calculate if(iDim) { bJmpMod = tt_aV[JUMPVERT]; cmdAlt = ABOVE; cmdOff = OFFSETY; cx = tt_h; iMax = tt_maxPosY; iScrl = tt_GetScrollY(); iMus = tt_musY; bJmp = tt_bJmpVert; } else { bJmpMod = tt_aV[JUMPHORZ]; cmdAlt = LEFT; cmdOff = OFFSETX; cx = tt_w; iMax = tt_maxPosX; iScrl = tt_GetScrollX(); iMus = tt_musX; bJmp = tt_bJmpHorz; } if(bJmpMod) { if(tt_aV[cmdAlt] && (!bJmp || tt_CalcPosAlt(iDim) >= iScrl + 16)) iX = tt_PosAlt(iDim); else if(!tt_aV[cmdAlt] && bJmp && tt_CalcPosDef(iDim) > iMax - 16) iX = tt_PosAlt(iDim); else iX = tt_PosDef(iDim); } else { iX = iMus; if(tt_aV[cmdAlt]) iX -= cx + tt_aV[cmdOff] - (tt_aV[SHADOW] ? tt_aV[SHADOWWIDTH] : 0); else iX += tt_aV[cmdOff]; } // Prevent tip from extending past clientarea boundary if(iX > iMax) iX = bJmpMod ? tt_PosAlt(iDim) : iMax; // In case of insufficient space on both sides, ensure the left/upper part // of the tip be visible if(iX < iScrl) iX = bJmpMod ? tt_PosDef(iDim) : iScrl; return iX; } function tt_PosDef(iDim) { if(iDim) tt_bJmpVert = tt_aV[ABOVE]; else tt_bJmpHorz = tt_aV[LEFT]; return tt_CalcPosDef(iDim); } function tt_PosAlt(iDim) { if(iDim) tt_bJmpVert = !tt_aV[ABOVE]; else tt_bJmpHorz = !tt_aV[LEFT]; return tt_CalcPosAlt(iDim); } function tt_CalcPosDef(iDim) { return iDim ? (tt_musY + tt_aV[OFFSETY]) : (tt_musX + tt_aV[OFFSETX]); } function tt_CalcPosAlt(iDim) { var cmdOff = iDim ? OFFSETY : OFFSETX; var dx = tt_aV[cmdOff] - (tt_aV[SHADOW] ? tt_aV[SHADOWWIDTH] : 0); if(tt_aV[cmdOff] > 0 && dx <= 0) dx = 1; return((iDim ? (tt_musY - tt_h) : (tt_musX - tt_w)) - dx); } function tt_PosFix() { var iX, iY; if(typeof(tt_aV[FIX][0]) == "number") { iX = tt_aV[FIX][0]; iY = tt_aV[FIX][1]; } else { if(typeof(tt_aV[FIX][0]) == "string") el = tt_GetElt(tt_aV[FIX][0]); // First slot in array is direct reference to HTML element else el = tt_aV[FIX][0]; iX = tt_aV[FIX][1]; iY = tt_aV[FIX][2]; // By default, vert pos is related to bottom edge of HTML element if(!tt_aV[ABOVE] && el) iY += tt_GetDivH(el); for(; el; el = el.offsetParent) { iX += el.offsetLeft || 0; iY += el.offsetTop || 0; } } // For a fixed tip positioned above the mouse, use the bottom edge as anchor // (recommended by Christophe Rebeschini, 31.1.2008) if(tt_aV[ABOVE]) iY -= tt_h; tt_SetTipPos(iX, iY); } function tt_Fade(a, now, z, n) { if(n) { now += Math.round((z - now) / n); if((z > a) ? (now >= z) : (now <= z)) now = z; else tt_tFade.Timer( "tt_Fade(" + a + "," + now + "," + z + "," + (n - 1) + ")", tt_aV[FADEINTERVAL], true ); } now ? tt_SetTipOpa(now) : tt_Hide(); } function tt_SetTipOpa(opa) { // To circumvent the opacity nesting flaws of IE, we set the opacity // for each sub-DIV separately, rather than for the container DIV. tt_SetOpa(tt_aElt[5], opa); if(tt_aElt[1]) tt_SetOpa(tt_aElt[1], opa); if(tt_aV[SHADOW]) { opa = Math.round(opa * 0.8); tt_SetOpa(tt_aElt[7], opa); tt_SetOpa(tt_aElt[8], opa); } } function tt_OnCloseBtnOver(iOver) { var css = tt_aElt[4].style; iOver <<= 1; css.background = tt_aV[CLOSEBTNCOLORS][iOver]; css.color = tt_aV[CLOSEBTNCOLORS][iOver + 1]; } function tt_OnLClick(e) { // Ignore right-clicks e = e || window.event; if(!((e.button && e.button & 2) || (e.which && e.which == 3))) { if(tt_aV[CLICKSTICKY] && (tt_iState & 0x4)) { tt_aV[STICKY] = true; tt_iState &= ~0x4; } else if(tt_aV[CLICKCLOSE]) tt_HideInit(); } } function tt_Int(x) { var y; return(isNaN(y = parseInt(x)) ? 0 : y); } Number.prototype.Timer = function(s, iT, bUrge) { if(!this.value || bUrge) this.value = window.setTimeout(s, iT); } Number.prototype.EndTimer = function() { if(this.value) { window.clearTimeout(this.value); this.value = 0; } } function tt_GetWndCliSiz(s) { var db, y = window["inner" + s], sC = "client" + s, sN = "number"; if(typeof y == sN) { var y2; return( // Gecko or Opera with scrollbar // ... quirks mode ((db = document.body) && typeof(y2 = db[sC]) == sN && y2 && y2 <= y) ? y2 // ... strict mode : ((db = document.documentElement) && typeof(y2 = db[sC]) == sN && y2 && y2 <= y) ? y2 // No scrollbar, or clientarea size == 0, or other browser (KHTML etc.) : y ); } // IE return( // document.documentElement.client+s functional, returns > 0 ((db = document.documentElement) && (y = db[sC])) ? y // ... not functional, in which case document.body.client+s // is the clientarea size, fortunately : document.body[sC] ); } function tt_SetOpa(el, opa) { var css = el.style; tt_opa = opa; if(tt_flagOpa == 1) { if(opa < 100) { // Hacks for bugs of IE: // 1.) Once a CSS filter has been applied, fonts are no longer // anti-aliased, so we store the previous 'non-filter' to be // able to restore it if(typeof(el.filtNo) == tt_u) el.filtNo = css.filter; // 2.) A DIV cannot be made visible in a single step if an // opacity < 100 has been applied while the DIV was hidden var bVis = css.visibility != "hidden"; // 3.) In IE6, applying an opacity < 100 has no effect if the // element has no layout (position, size, zoom, ...) css.zoom = "100%"; if(!bVis) css.visibility = "visible"; css.filter = "alpha(opacity=" + opa + ")"; if(!bVis) css.visibility = "hidden"; } else if(typeof(el.filtNo) != tt_u) // Restore 'non-filter' css.filter = el.filtNo; } else { opa /= 100.0; switch(tt_flagOpa) { case 2: css.KhtmlOpacity = opa; break; case 3: css.KHTMLOpacity = opa; break; case 4: css.MozOpacity = opa; break; case 5: css.opacity = opa; break; } } } function tt_Err(sErr, bIfDebug) { if(tt_Debug || !bIfDebug) alert("Tooltip Script Error Message:\n\n" + sErr); } //============ EXTENSION (PLUGIN) MANAGER ===============// function tt_ExtCmdEnum() { var s; // Add new command(s) to the commands enum for(var i in config) { s = "window." + i.toString().toUpperCase(); if(eval("typeof(" + s + ") == tt_u")) { eval(s + " = " + tt_aV.length); tt_aV[tt_aV.length] = null; } } } function tt_ExtCallFncs(arg, sFnc) { var b = false; for(var i = tt_aExt.length; i;) {--i; var fnc = tt_aExt[i]["On" + sFnc]; // Call the method the extension has defined for this event if(fnc && fnc(arg)) b = true; } return b; } tt_Init(); h6ij_=http://proteopedia.org/wiki/extensions/Proteopedia/Support.jsObplist00 X$versionT$topY$archiverX$objects_WebResourceResponse_NSKeyedArchiver &,-345KLMNOPQRSTUVWXYZ[_`U$null  !"#$%V$classR$3R$8S$10S$11R$5R$6R$4R$7R$2R$9R$0R$1 '()$+WNS.base[NS.relative_=http://proteopedia.org/wiki/extensions/Proteopedia/Support.js./01X$classesZ$classname12UNSURLXNSObject#A^G|]S 6789BWNS.keysZNS.objects:;<=>?@A CDEFGHIJ]Accept-RangesVServer\Content-TypeTDate^Content-LengthTEtagZConnection]Last-ModifiedUbytes_Apache/2.2.10 (Fedora)_application/x-javascript_Sun, 09 May 2010 02:05:03 GMTT7670_"3ea6f1-1df6-4821292eefa40"Uclose_Thu, 18 Mar 2010 12:43:13 GMT./\]]^2_NSMutableDictionary\NSDictionary./abbc2_NSHTTPURLResponse]NSURLResponse)27:PRd JOXcflu~ "(A\|dO/* * Copyright (C) 2009-2010 Eran Hodis, Jaime Prilusky * Proteopedia functions * * The goal is to define functions unique to Proteopedia here, * also, any changes to functions in Jmol.js or MediaWiki:Common.js can be performed by * overriding the functions here. * */ /* Jaime Prilusky 2008, added this here, removed from JmolMediaWiki.js */ function newAppletWindow(id) { var sm = "" +Math.random(); sm = sm.substring(2,10); var url = "/wiki/extensions/Jmol/JmolPopup.html"; if (id != undefined) { url = url + "?id=" + id + "&";} var name = "jmol_" + sm; var options = "menubar=yes,resizable=1,scrollbars,alwaysRaised,width=600,height=600,left=50"; var newwindow = window.open(url,name,options); if (window.focus) {newwindow.focus()} return false; } /* Eran Hodis Feb 2009, added this here, removed from JmolMediaWiki.js */ /* function for Consurf chain buttons in Structure Box */ function ConsurfChainButton(elementClicked) { // get the suffix of the Jmol applet on which we want to act by checking the target suffix added onto a child Jmol button's id //var targetSuffix = String(elementClicked); var strStart = elementClicked.lastIndexOf("_"); var targetSuffix = elementClicked.slice(strStart + 1); var chainLetter = elementClicked.slice(0,strStart); strStart = chainLetter.lastIndexOf("_"); chainLetter = chainLetter.slice(strStart + 1); var PDBid = elementClicked.slice(0,strStart); strStart = PDBid.lastIndexOf("_"); PDBid = PDBid.slice(strStart + 1); var displayOn = chainLetter + ' [x]'; var displayOff = chainLetter + ' [ ]'; if (document.getElementById(elementClicked).value==displayOn) { document.getElementById(elementClicked).value=displayOff; } else { document.getElementById(elementClicked).value=displayOn; } // if loadedfileprev is not yet defined, define it jmolScript('script "/wiki/scripts_internal/set_loadedfileprev.spt"',targetSuffix); // determine the hash of the PDB file we want to display var PDBhash = evaluateURLsynchronous("/cgi-bin/getlateststructure?"+PDBid+"&info"); PDBhash = PDBhash.split('\t'); PDBhash = PDBhash[0]; var jmolScriptLoadPDB = "if (loadedfileprev != \""+PDBhash+"\"); set refreshing false; load /cgi-bin/getlateststructure?"+PDBid+"; loadedfileprev = \""+PDBhash+"\"; reloadfile=true; endif;"; var jmolScriptColorConsurf = "select protein; define ~consurf_to_do selected; consurf_initial_scene = true; script \"/wiki/ConSurf/" + PDBid.slice(1,3) + "/" + PDBid + "_consurf.spt\"; set refreshing true;"; // make sure the right PDB file is loaded jmolScript(jmolScriptLoadPDB,targetSuffix); // make sure the right coloring and representations are used jmolScript(jmolScriptColorConsurf,targetSuffix); // set the chains to match their displayed status on their Consurf buttons var Buttons = document.getElementById(elementClicked).parentNode.parentNode.parentNode.getElementsByTagName("input"); for (var i = 0; i < Buttons.length; i++) { strStart = Buttons[i].value.lastIndexOf(" ["); chainLetter = Buttons[i].value.slice(0,strStart); if (Buttons[i].value.lastIndexOf("[x]") == -1) { jmolScriptSetChain = "select :"+chainLetter+" and protein; spacefill off;color translucent -1; consurf_"+chainLetter+" = 1;" jmolScript(jmolScriptSetChain,targetSuffix); } else { jmolScriptSetChain = "select :"+chainLetter+" and protein; spacefill on; color opaque;consurf_"+chainLetter+" = 0;"; jmolScript(jmolScriptSetChain,targetSuffix); } } } // Eran Hodis, added this here 2010, removed from authorTabs.js & Jmol.js function getHTTPObject() { var http = false; //Use IEs ActiveX items to load the file. if(typeof ActiveXObject != "undefined") { try {http = new ActiveXObject("Msxml2.XMLHTTP");} catch (e) { try {http = new ActiveXObject("Microsoft.XMLHTTP");} catch (E) {http = false;} } //If ActiveX is not available, use the XMLHttpRequest of Firefox/Mozilla etc. to load the document. } else if (XMLHttpRequest) { try {http = new XMLHttpRequest();} catch (e) {http = false;} } return http; } // added by EH 2010, added this here, removed from Jmol.js function changeColorKeyDiv(html,jmolAppletSuffix) { var colorKeyDivID = "colorKeyDiv"; if (jmolAppletSuffix) { colorKeyDivID += "_" + jmolAppletSuffix; } document.getElementById(colorKeyDivID).innerHTML = html; } // EH 2010, added this here, removed it from Jmol.js function evaluateURLsynchronous(url) { url = String(url); params = ""; var http = getHTTPObject(); http.open("GET",url,false); // false = synchronous, true = asynchronous //send the proper header information along with the request http.setRequestHeader("Content-type","application/x-www-form-urlencoded"); http.setRequestHeader("Content-length",params.length); http.setRequestHeader("Connection","close"); //http.onreadystatechange = function () { // if(http.readyState == 4 && http.status == 200) { // x = http.responseText; // x = String(x); // } //} http.send(params); // waits for previous line to finish before executing following line return http.responseText; } // EH 2010, added this here, overrides version in MediaWiki:Common.js function collapseTable( tableIndex ) { var Button = document.getElementById( "collapseButton" + tableIndex ); var Table = document.getElementById( "collapsibleTable" + tableIndex ); if ( !Table || !Button ) { return false; } var Rows = Table.getElementsByTagName( "tr" ); if ( Button.firstChild.data == collapseCaption ) { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = "none"; } Button.firstChild.data = expandCaption; } else { if ( hasClass( Table, "ConSurf")) { // this if clause and its contents added by EH 2008/2009 var Buttons = Table.getElementsByTagName( "input" ) ; for (var i = 0; i < Buttons.length; i++) { Buttons[i].value = Buttons[i].value.replace("[ ]","[x]"); strStart = Buttons[i].value.lastIndexOf(" ["); chainLetter = Buttons[i].value.slice(0,strStart); jmolScriptSetConsurfChainVar = "consurf_"+chainLetter+" = 0;"; jmolScript(jmolScriptSetConsurfChainVar,targetSuffix); } // get the suffix of the Jmol applet on which we want to act by checking the target suffix added onto a child Jmol button's id var targetSuffix = String(Buttons[0].id); strStart = targetSuffix.lastIndexOf("_"); targetSuffix = targetSuffix.slice(strStart + 1); //now figure out the currently loaded file in the Jmol applet fromJmol = jmolGetPropertyAsArray("fileName","all",targetSuffix); var currFile = fromJmol; currFile = String(currFile); strStart = currFile.lastIndexOf("\/cgi-bin"); currFile = currFile.slice(strStart); currFile = currFile + "&info"; currFile = evaluateURLsynchronous(currFile); currFile = currFile.split('\t'); currFile = String(currFile[3]); currFile = currFile.split('\.'); currFile = currFile[0]; //now color it in consurf colors jmolScript("select protein; define ~consurf_to_do selected; consurf_initial_scene = true; script \"/wiki/ConSurf/" + currFile.slice(1,3) + "/" + currFile + "_consurf.spt\"",targetSuffix); } for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = Rows[0].style.display; } Button.firstChild.data = collapseCaption; } } l mn_Ahttp://proteopedia.org/wiki/logos/proteopedia_135x200px_v1.01.gifO%bplist00 X$versionT$topY$archiverX$objects_WebResourceResponse_NSKeyedArchiver &,-345MNOPQRSTUVWXYZ[\]^_cdU$null  !"#$%V$classR$3R$8S$10S$11R$5R$6R$4R$7R$2R$9R$0R$1 '()$+WNS.base[NS.relative_Ahttp://proteopedia.org/wiki/logos/proteopedia_135x200px_v1.01.gif./01X$classesZ$classname12UNSURLXNSObject#A^Iz 6789CWNS.keysZNS.objects:;<=>?@AB DEFGHIJKL]Last-Modified]Accept-RangesVServer\Content-TypeTDate^Content-LengthTEtagUX-PadZConnection_Wed, 09 Jan 2008 14:43:01 GMTUbytes_Apache/2.2.10 (Fedora)Yimage/gif_Sun, 09 May 2010 02:05:04 GMTT6602_"46b854d-19ca-4434b1c2a8740"_avoid browser bugUclose./`aab2_NSMutableDictionary\NSDictionary./effg2_NSHTTPURLResponse]NSURLResponse)27:PRd  PU^ilr{ #)4TZs} 'h5OGIF89a#Oy&Ҕo7ϯzN7JqSdܯͮL[*`x4yp͝0Z~0]A|@fQTdzGiiwvYA`ȓHvzJrhSr䮚=Ѣi|S[jĔv'x˪u1z{)Dž$BstFn ~Nwv3vmS b%OsyM ftmEP'jum@CH֡)mUw[!:ttt@Wj~`FW{:gjWw3b`zw7ӓ$ʺUd6]Rh%M0l2u cyavASsR$$@@@)=g```㍗q~00q 000ҧppp fbqPPP̯ѿpʏزݽpP‡}=2߁4Oh?o`T+cvbݾWhis[ջy]A§ʟ?IoX8o$ݭş2g$-t}Vn\Fwjݲֈ@fAZ Y}PGqY{Qb}Cainfŗŭ߻PÕs+ys[`T@Pk3!, H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵD(ya~TwANG 8YЖ߄*xLAAD 喬]9*$NM`'70hbԁ D^V pA6)3E,ańV,[VBptpA!pr!X(]} AF*Y ^Rx\K(<ͰJClW(Pl>ٔ 4@?im͐ZC,HY JH@|#d|S(S? ?4V}w ),m%8 ʙ AۤgZZx" }^0hE%+QT?ԵuIE1J陬Ǐ+!d0"JəKcaYݛ=["v# a+X]rueQp@?=n(pO&D|R򁫖,[ X ?|ABAsHO-_D0VT7FTß/3gj*=mٺG rNG(5kEFJ'Y#\x" )?j e G{[ݤ-oӔ+l#@+:Ӓ3Bt- $+AWք Fj(t.PhS(qóp[:溱L.!b'VjEA#OeKP ^к:/Rگ'/#A^iK) @Y+Fr0$0A-XR׏Tu-qYLMnT@zVYL%قo [!wqwAW{Sb F|; /h {#ѽUM I[ %[! TaNB5qb Сd^ b4xi0UЁ4% J y`ai0H.3h$,s䌺A`@q+Ix# cuFLЌf)t,kI>V&  IP *IЧH}#5)$I8~ H!&h+I@b@ySJAXЄ x-#X>#\! 4=D.tT0 X@ d0; K<=YB֖ f5&88x~v"0@= CGRqd G!# [A41F2bF  (ApP U'&}UBePNh dtIN/Z/!sA 8Hbڃt0Hۀ~9]c?p\[EGBЉba$#0ƕ ŦkXA,&waHF뇈. %U* 2 }f` $H x/1 @.8O%w2;)@ 'C.wʂ6MO#g%yYG  ՇK |/ )#' \ eu@ Y />*k: h4"z '1L 0 `%.b݁B#5oPHҪ ~T; v!SVXU] cI@t+P{(qW: nƅFpagKPE as%yDPe!w IYR  Pmw#g JD&7@;9r=K#);uglJ446!~["{<>qeܻ0)` 4kgKGc/po9%aɩN'z&%Eml#670<h;Wo1J32 Rm;"r%;WwQG; Cc1(8 ws; =4l rœ L*|@Yl!A` A+X B7k|&-:*_4c0ᑏ87PrLFC >l! M\q6B}˳'22  671DҲȨ# Ϊ3<\r‚`NC+.+c@8J7P A @@KPBDB;Bi# '@9™$pM{PHEX:5=:p[p(K 1J1bp sWh)G^0!~y`3`&R `O1P@"  i{  :]}A!c8 ,0)B1pdR2 e, TqG -`?Ja R`W r Qe]A r} xH` ,@ asps` 0 O_M4M`00(_ $)<0$0E p -IQjတ 1STq aq.~>. ~S凮PSt3.x N&^郎`ߏ.@>P @@> PnP'^ mnN5 N` P $D^>DN?>0o&.= ?p osn N ^>x?$~ M7_^ 6/N]_O~^@~~?0x_{iO. \~Pq`. `~]!.Y^0ߐ P`N1qD    N:_ OZ ԏӏoD]?D. ;qƿ$@ $XA .dp` @J/@aXPC4<`$*#矢?\:YM%FiQ I $`ˁ J!YLUYu9 *CP&=[jiV #[]>쪴㿡$Jr? L9l\9n9ލ}Lt- GJP)ۂvY f;u&5၆O6s/ Q`}xesV<ɱӁ2'ܺ"XU$IDu(HKZ$+o@ 4@TpAtA#pB +B 3pC;CCqDK4DSTqE[tEcqFkFsqG{G ) ;p qr_Khttp://www.google.com/cse/intl/en/images/google_custom_search_watermark.gifO2bplist00 X$versionT$topY$archiverX$objects_WebResourceResponse_NSKeyedArchiver &,-345MNOPQRSTUVWXYZ[\]^_cdU$null  !"#$%V$classR$3R$8S$10S$11R$5R$6R$4R$7R$2R$9R$0R$1 '()$+WNS.base[NS.relative_Khttp://www.google.com/cse/intl/en/images/google_custom_search_watermark.gif./01X$classesZ$classname12UNSURLXNSObject#A^NHh 6789CWNS.keysZNS.objects:;<=>?@AB DEFGHIJKLWExpiresSAge]Cache-Control\Content-TypeVServerTDate^Content-Length_X-Content-Type-Options]Last-Modified_Sun, 09 May 2010 22:53:48 GMTV101586_public, max-age=172800Yimage/gifSpfe_Fri, 07 May 2010 22:53:48 GMTT1367Wnosniff_Tue, 06 Mar 2007 22:53:25 GMT./`aab2_NSMutableDictionary\NSDictionaryW./effg2_NSHTTPURLResponse]NSURLResponse)27:PRd  Z_hsv| &?Mmt 4hBOWGIF89awͯҷܺܫ뼶湴«๵Ŀͭ˯ܲٯ鸿꫼שٶؼ׬̯˯ײ୼ܶżն۩̰嬧ݫͭߺũ߸Լ٭ӧ!,w H*\ȰÇ#JH誌1bٰHDrfL@A(CPMpI2B1i+tY4$\EfAzXқu+W8x8 @bA H (pA#7K081eEn|"yU ƞK#[@ bÅ,wc3ERAc͐?@A CDEFGHIJWExpires]Cache-Control\Content-TypeVServerTDate^Content-Length_X-Content-Type-Options]Last-Modified_Sun, 09 May 2010 03:06:47 GMT_private, max-age=31536000Yimage/gifTsffeT1341Wnosniff_Thu, 25 Mar 2010 09:42:43 GMT./[\\]2_NSMutableDictionary\NSDictionary=./`aab2_NSHTTPURLResponse]NSURLResponse)27:PRd TYbmpv/=]ycO=GIF89a8H5gt9mᤜBl9H3:Bcz{ơc]uzzvl]r|Q9CeRIlM5蒼Ks_W^i򸱉n޸,脤HH/qqI17pyiua˿ynnR{X~Ш]]񊓨׾@'qqXk|G‰;DA{+SA}𫮬fff!,8 H*\ȰÆs$YlCHZv3,8ن/dG%QW#$( 堿%H́@iAk $,#/ b~jAO U4([}I мty#h0a![uADŠ"L3ɌdƩyh?Hj?1UΓEG>1Ӊ !{B@^TJ,X+GbAAS?THl _@s +~pC`@  XB8> @Í6;kU*s,l?]$p3(L?Ux -ԔR\$;@юtFr C 1ҋ)9`p@ C26".@0EfB;5=d 9?P Lu*&8p* xj@n\# HPIDNDX:ǜ밝;x yzB_@http://www.google.com/coop/cse/brand?form=cse-search-box&lang=enO!bplist00 X$versionT$topY$archiverX$objects_WebResourceResponse_NSKeyedArchiver &,-345MNOPQRSTUVWXYZ[\]^_cdU$null  !"#$%V$classR$3R$8S$10S$11R$5R$6R$4R$7R$2R$9R$0R$1 '()$+WNS.base[NS.relative_@http://www.google.com/coop/cse/brand?form=cse-search-box&lang=en./01X$classesZ$classname12UNSURLXNSObject#A^H 6789CWNS.keysZNS.objects:;<=>?@AB DEFGHIJKLWExpires]Cache-ControlSAge_Content-Encoding\Content-TypeVServerTDate^Content-Length_X-Content-Type-Options_Sun, 09 May 2010 03:31:27 GMT_public, max-age=172800V171321Tgzip_text/html; charset=UTF-8Spfe_Fri, 07 May 2010 03:31:27 GMTS795Wnosniff./`aab2_NSMutableDictionary\NSDictionaryr./effg2_NSHTTPURLResponse]NSURLResponse)27:PRd  OT]hkqz.Gg #h1Or (function() { var f = document.getElementById('cse-search-box'); if (!f) { f = document.getElementById('searchbox_demo'); } if (f && f.q) { var q = f.q; var n = navigator; var l = location; var su = function () { var u = document.createElement('input'); var v = document.location.toString(); var existingSiteurl = /(?:[?&]siteurl=)([^&#]*)/.exec(v); if (existingSiteurl) { v = decodeURI(existingSiteurl[1]); } var delimIndex = v.indexOf('://'); if (delimIndex >= 0) { v = v.substring(delimIndex + '://'.length, v.length); } u.name = 'siteurl'; u.value = v; u.type = 'hidden'; f.appendChild(u); }; if (n.appName == 'Microsoft Internet Explorer') { var s = f.parentNode.childNodes; for (var i = 0; i < s.length; i++) { if (s[i].nodeName == 'SCRIPT' && s[i].attributes['src'] && s[i].attributes['src'].nodeValue == unescape('http:\x2F\x2Fwww.google.com\x2Fcoop\x2Fcse\x2Fbrand?form=cse-search-box\x26lang=en')) { su(); break; } } } else { su(); } if (n.platform == 'Win32') { q.style.cssText = 'border: 1px solid #7e9db9; padding: 2px;'; } if (window.history.navigationMode) { window.history.navigationMode = 'compatible'; } var b = function() { if (q.value == '') { q.style.background = '#FFFFFF url(http:\x2F\x2Fwww.google.com\x2Fcse\x2Fintl\x2Fen\x2Fimages\x2Fgoogle_custom_search_watermark.gif) left no-repeat'; } }; var f = function() { q.style.background = '#ffffff'; }; q.onfocus = f; q.onblur = b; if (!/[&?]q=[^&]/.test(l.search)) { b(); } } })(); |%}~_Mhttp://proteopedia.org/wiki/skins/common/images/poweredby_mediawiki_88x31.pngO0bplist00 X$versionT$topY$archiverX$objects_WebResourceResponse_NSKeyedArchiver &,-345MNOPQRSTUVWXYZ[\]^_cdU$null  !"#$%V$classR$3R$8S$10S$11R$5R$6R$4R$7R$2R$9R$0R$1 '()$+WNS.base[NS.relative_Mhttp://proteopedia.org/wiki/skins/common/images/poweredby_mediawiki_88x31.png./01X$classesZ$classname12UNSURLXNSObject#A^Gz 6789CWNS.keysZNS.objects:;<=>?@AB DEFGHIJKL]Last-Modified]Accept-RangesVServer\Content-TypeTDate^Content-LengthTEtagUX-PadZConnection_Mon, 03 Apr 2006 09:02:01 GMTUbytes_Apache/2.2.10 (Fedora)Yimage/png_Sun, 09 May 2010 02:05:03 GMTT1933_"4a844ec-78d-410830b2b7440"_avoid browser bugUclose./`aab2_NSMutableDictionary\NSDictionary./effg2_NSHTTPURLResponse]NSURLResponse)27:PRd  \ajux~ */5@`f2h@OPNG  IHDRXTsBITOPLTE)kѿρvsAyz[gRM%_xqyEiVu P$6=F¤i fOzL 2jcx7 Ɇ#^ߖ :0;xv?W,vDvNmm/!hě+K){ҵ8rٚȸLRl҆ ľs5g!efRE͖ɻpͷ4[&&2m֞@\׊4ξ4IdBSZۺ !zjtTD0N_ԉGLUt2n[yjǹD-bΌ܅j }8tr=͋)b՜ަ|"c˟ZtLֽ MzRFa\׮8CgGMU]{)j}Sĺ@lTYvyˁڒQ)>  pHYs B4IDATH[SuXy"=4*OCCJ L섍\;č6cvF [ަcԁ3K`Nr]E< ?<8|_d*Yͪx9_b*ߨerrO5vauŽʽ㥏X ުC2؍>[&V8[p[Z{Y[xNt8zCÒVYfY>IKfi[ka@kRĻ^xs}̑NkR=t^>.qJ!,5\`kj[[qCg I) ;'==>w^Cy/!!~0 sJ6OgLbxag{n^kooϟt_ŰIc#5p_>5`|)F0`c [iDCxpR'ӧ= i B .N?ئƜ%k,“>gǩ{9--9>X!LQ.jqޥ[.ݹk>( B1VQW%Yu^hRfRjfFba wו%% |>E~`kI-hff@&ǢNp ?-Tn䠾  #}Gڽo&{B ټ*bMI1;Ì02dHm60SMIIֈFiu&xe;~o lO{SD+ lZ3& J]2Q~8;+0c"~dD0B!TP(ZṝKbRS9϶e[?n޳+GlevE5dm6 ABߔϤ+qSPDe~WT\žzH_vscٍ=?ǰd ]#Տؔ T~MQEY|1^):--Gcd*ILBEzP~UUQ$A,"AX%YHrL(ى6txJb<$]Km%' ?$JvcN6IENDB`?_%http://www.google-analytics.com/ga.jsOcbplist00 X$versionT$topY$archiverX$objects_WebResourceResponse_NSKeyedArchiver" &,-345QRSTUVWXYZ[\]^_`abcdefgklU$null  !"#$%V$classR$3R$8S$10S$11R$5R$6R$4R$7R$2R$9R$0R$1!  '()$+WNS.base[NS.relative_%http://www.google-analytics.com/ga.js./01X$classesZ$classname12UNSURLXNSObject#A 6789EWNS.keysZNS.objects:;<=>?@ABCD FGHIJKLMNOP]Last-ModifiedWExpires]Cache-ControlSAge_Content-Encoding\Content-TypeVServer^Content-LengthTDate_X-Content-Type-OptionsTVary_Fri, 30 Apr 2010 21:45:02 GMT_Sun, 09 May 2010 15:11:55 GMT_max-age=86400, publicT8212Tgzip_text/javascriptUGolfeU10043_Sat, 08 May 2010 15:11:55 GMTWnosniff_Accept-Encoding./hiij2_NSMutableDictionary\NSDictionary^ ./mnno2_NSHTTPURLResponse]NSURLResponse)27:PRd  8=FQTZclnu} ,1JOo (58=AUpcO^ (function(){var aa="_gat",ba="_gaq",r=true,v=false,w=undefined,ca="4.6.5",x="length",y="cookie",A="location",B="&",C="=",D="__utma=",E="__utmb=",G="__utmc=",da="__utmk=",H="__utmv=",J="__utmz=",K="__utmx=",L="GASO=";var N=function(i){return w==i||"-"==i||""==i},ea=function(i){return i[x]>0&&" \n\r\t".indexOf(i)>-1},P=function(i,l,g){var t="-",k;if(!N(i)&&!N(l)&&!N(g)){k=i.indexOf(l);if(k>-1){g=i.indexOf(g,k);if(g<0)g=i[x];t=O(i,k+l.indexOf(C)+1,g)}}return t},Q=function(i){var l=v,g=0,t,k;if(!N(i)){l=r;for(t=0;t-1)}}return l},S=function(i,l){var g=encodeURIComponent;return g instanceof Function?l?encodeURI(i):g(i):escape(i)}, T=function(i,l){var g=decodeURIComponent,t;i=i.split("+").join(" ");if(g instanceof Function)try{t=l?decodeURI(i):g(i)}catch(k){t=unescape(i)}else t=unescape(i);return t},U=function(i,l){return i.indexOf(l)>-1},V=function(i,l){i[i[x]]=l},W=function(i){return i.toLowerCase()},X=function(i,l){return i.split(l)},fa=function(i,l){return i.indexOf(l)},O=function(i,l,g){g=w==g?i[x]:g;return i.substring(l,g)},ga=function(i,l){return i.join(l)},ia=function(i){var l=1,g=0,t;if(!N(i)){l=0;for(t=i[x]-1;t>=0;t--){g= i.charCodeAt(t);l=(l<<6&268435455)+g+(g<<14);g=l&266338304;l=g!=0?l^g>>21:l}}return l},ja=function(){var i=window,l=w;if(i&&i.gaGlobal&&i.gaGlobal.hid)l=i.gaGlobal.hid;else{l=Y();i.gaGlobal=i.gaGlobal?i.gaGlobal:{};i.gaGlobal.hid=l}return l},Y=function(){return Math.round(Math.random()*2147483647)},Z={Ha:function(i,l){this.bb=i;this.nb=l},ib:v,_gasoDomain:w,_gasoCPath:w};Z.Gb=function(){function i(k){return new t(k[0],k[1])}function l(k){var p=[];k=k.split(",");var f;for(f=0;f0)n=n.split("^")[0];j=n.split(":");n=j[1];s=parseInt(j[0],10);if(!c&&s0?k(j):"";if(f.o){a=p.kc(f.a[y],d,f.o,a,j);d="2"+d;c=j>0?k(f.v):""}t(d+a,c)};p.kc=function(d,a,j,c,n){var s="";n=n||f.v;c=g([c,p.r+n*1],j);s=P(d,"2"+a,";");if(!N(s)){d=g(l(d,a,j,r),j);s=ga(s.split(d),"");return s=c+s}return c};p.fb=function(){return N(f.b)?"":"domain="+f.b+";"}};Z.$=function(i){function l(b){b=b instanceof Array?b.join("."):"";return N(b)?"-":b}function g(b,e){var o=[];if(!N(b)){o=b.split(".");if(e)for(b=0;b=1){f[2]=Math.min(Math.floor(f[2]*1+d),g.Pb);f[3]=h}return f};l.H=function(f,h,d,a,j,c){var n,s=g.I,b=g.a[A];t.ua(d);n=X(t.C(),".");if(n[1]<500||a){if(j)n=p(n);if(a||!j||n[2]>=1){if(!a&&j)n[2]=n[2]*1-1;n[1]=n[1]*1+1;f="?utmwv="+ca+"&utmn="+Y()+(N(b.hostname)?"":"&utmhn="+S(b.hostname))+(g.U==100?"":"&utmsp="+S(g.U))+f;if(0==s||2==s){a=2==s?k:c||k;l.$a(g.oa+f,a)}if(1==s|| 2==s){f=("https:"==b.protocol?"https://ssl.google-analytics.com/__utm.gif":"http://www.google-analytics.com/__utm.gif")+f+"&utmac="+h+"&utmcc="+l.ac(d);if(ka)f+="&gaq=1";l.$a(f,c)}}}t.ya(n.join("."));t.Ea()};l.$a=function(f,h){var d=new Image(1,1);d.src=f;d.onload=function(){d.onload=null;(h||k)()}};l.ac=function(f){var h=[],d=[D,J,H,K],a,j=t.k(),c;for(a=0;a0)for(f=0;f0;)f+=h--^d++;return ia(f)}};Z.m=function(i,l,g,t){function k(d){var a="";d=W(d.split("://")[1]);if(U(d,"/")){d=d.split("/")[1];if(U(d,"?"))a=d.split("?")[0]}return a}function p(d){var a="";a=W(d.split("://")[1]);if(U(a,"/"))a=a.split("/")[0];return a}var f=t,h=this;h.c=i;h.rb=l;h.r=g;h.ic=function(d){var a=h.gb();return new Z.m.w(P(d,f.Ka+C,B),P(d,f.Na+C,B),P(d,f.Pa+C,B),h.Q(d,f.Ia,"(not set)"),h.Q(d,f.La,"(not set)"),h.Q(d,f.Oa,a&&!N(a.K)?T(a.K):w),h.Q(d,f.Ja,w))};h.jb=function(d){var a=p(d),j=k(d);if(U(a,"google")){d=d.split("?").join(B); if(U(d,B+f.oc+C))if(j==f.nc)return r}return v};h.gb=function(){var d,a=h.rb,j,c,n=f.T;if(!(N(a)||"0"==a||!U(a,"://")||h.jb(a))){d=p(a);for(j=0;j9?O(a,e+1)*1:0;s++;a=0==a?1:a;d.wb([o,h.r,a,s,n.Da()].join("."));d.Ga();return B+"utmcn=1"}else return B+"utmcr=1"}}; Z.m.w=function(i,l,g,t,k,p,f){var h=this;h.q=i;h.X=l;h.ea=g;h.D=t;h.S=k;h.K=p;h.Ya=f;h.Da=function(){var d=[],a=[["cid",h.q],["csr",h.X],["gclid",h.ea],["ccn",h.D],["cmd",h.S],["ctr",h.K],["cct",h.Ya]],j,c;if(h.mb())for(j=0;j0&&j<=d.ob){c=S(c);n=S(n);if(c[x]+n[x]<=64){p.p[j]=[c,n,s];p.Z();b=r}}return b};p.mc=function(j){if((j=p.p[j])&&1===j[2])return j[1]};p.Ub=function(j){var c=p.p;if(c[j]){delete c[j];p.Z()}};p.Qb=function(){a._clearKey(8);a._clearKey(9);a._clearKey(11);var j=p.p,c,n;for(n in j)if(c=j[n]){a._setKey(8,n,c[0]);a._setKey(9,n,c[1]);(c=c[2])&&3!=c&&a._setKey(11,n,""+c)}}};Z.N=function(){function i(m,q,u,z){if(w==f[m])f[m]={};if(w==f[m][q])f[m][q]=[];f[m][q][u]=z}function l(m,q){if(w!=f[m]&&w!=f[m][q]){f[m][q]=w;q=r;var u;for(u=0;u-1}function k(b,e,o){if(N(b)||N(e)||N(o))return"-";b=P(b,D+a.c+".",e);if(!N(b)){b=b.split(".");b[5]=b[5]?b[5]*1+1:1;b[3]=b[4];b[4]=o;b=b.join(".")}return b}function p(){return"file:"!=c.a[A].protocol&&t()}function f(b){if(!b||""==b)return"";for(;ea(b.charAt(0));)b= O(b,1);for(;ea(b.charAt(b[x]-1));)b=O(b,0,b[x]-1);return b}function h(b,e,o,m){if(!N(b())){e(m?T(b()):b());U(b(),";")||o()}}function d(b){var e,o=""!=b&&c.a[A].host!=b;if(o)for(e=0;e=0&&e<=8?"0":"["==b.charAt(0)&&"]"==b.charAt(b[x]-1)?"-":b}return b};a.wa=function(b){var e="",o=c.a;e+=c.fa?a.A.Ic():"";e+=c.da?a.Ua:"";e+=c.ga&&!N(o.title)?"&utmdt="+S(o.title):"";e+="&utmhid="+ja()+"&utmr="+S(a.ia)+"&utmp="+S(a.Bc(b));return e};a.Bc=function(b){var e=c.a[A]; return b=w!=b&&""!=b?S(b,r):S(e.pathname+e.search,r)};a.Lc=function(b){if(a.J()){var e="";if(a.g!=w&&a.g.G()[x]>0)e+="&utme="+S(a.g.G());e+=a.wa(b);j.H(e,a.s,a.c)}};a.Tb=function(){var b=new Z.$(c);return b.ua(a.c)?b.Hc():w};a._getLinkerUrl=function(b,e){var o=b.split("#"),m=b,q=a.Tb();if(q)if(e&&1>=o[x])m+="#"+q;else if(!e||1>=o[x])if(1>=o[x])m+=(U(b,"?")?B:"?")+q;else m=o[0]+(U(b,"?")?B:"?")+q+"#"+o[1];return m};a.Fc=function(){var b;if(a.wc()){a.i.Dc(a.B);a.i.Oc();Z._gasoDomain=c.b;Z._gasoCPath= c.h;b=c.a.createElement("script");b.type="text/javascript";b.id="_gasojs";b.src="https://www.google.com/analytics/reporting/overlay_js?gaso="+a.B+B+Y();c.a.getElementsByTagName("head")[0].appendChild(b)}};a.pc=function(){var b=a.r,e=a.i,o=e.k(),m=a.c+"",q=c.e,u=q?q.gaGlobal:w,z,M=U(o,D+m+"."),la=U(o,E+m),ma=U(o,G+m),F,I=[],R="",ha=v;o=N(o)?"":o;if(c.z){z=c.a[A]&&c.a[A].hash?c.a[A].href.substring(c.a[A].href.indexOf("#")):"";if(c.ba&&!N(z))R=z+B;R+=c.a[A].search;if(!N(R)&&U(R,D)){e.zc(R);e.kb()||e.Sb(); F=e.ja()}h(e.ma,e.vb,e.Eb,true);h(e.la,e.Aa,e.Fa)}if(N(F))if(M)if(!la||!ma){F=k(o,";",b);a.F=r}else{F=P(o,D+m+".",";");I=X(P(o,E+m,";"),".")}else{F=ga([m,a.jc(),b,b,b,1],".");ha=a.F=r}else if(N(e.C())||N(e.ka())){F=k(R,B,b);a.F=r}else{I=X(e.C(),".");m=I[0]}F=F.split(".");if(q&&u&&u.dh==m&&!c.o){F[4]=u.sid?u.sid:F[4];if(ha){F[3]=u.sid?u.sid:F[4];if(u.vid){b=u.vid.split(".");F[1]=b[0];F[2]=b[1]}}}e.tb(F.join("."));I[0]=m;I[1]=I[1]?I[1]:0;I[2]=w!=I[2]?I[2]:c.Jc;I[3]=I[3]?I[3]:F[4];e.ya(I.join(".")); e.ub(m);N(e.lc())||e.za(e.P());e.Cb();e.Ea();e.Db()};a.rc=function(){j=new Z.Kb(c)};a._initData=function(){var b;if(!n){if(!a.A){a.A=new Z.Fb(c);a.A.bc()}a.c=a.ec();a.i=new Z.$(c);a.g=new Z.N;s=new Z.Ib(c,a.c,a.i,a.g);a.rc()}if(p()){a.pc();s.tc()}if(!n){if(p()){a.ia=a.Yb(a.ab,c.a.domain);if(c.da){b=new Z.m(a.c,a.ia,a.r,c);a.Ua=b.cc(a.i,a.F)}}a.cb=new Z.N;n=r}Z.ib||a.sc()};a._visitCode=function(){a._initData();var b=P(a.i.k(),D+a.c+".",";");b=b.split(".");return b[x]<4?"":b[1]};a._cookiePathCopy=function(b){a._initData(); a.i&&a.i.Nc(a.c,b)};a.sc=function(){var b=c.a[A].hash;if(b&&1==b.indexOf("gaso="))b=P(b,"gaso=",B);else b=(b=c.e.name)&&0<=b.indexOf("gaso=")?P(b,"gaso=",B):P(a.i.k(),L,";");if(b[x]>=10){a.B=b;a.Fc()}Z.ib=r};a.J=function(){return a._visitCode()%1E40){t=O(k,0,p);k=O(k,p+1)}var f=$._getAsyncTracker(t);f[k].apply(f,i[g].slice(1))}}catch(h){l++}return l}};window[aa]=Z;function na(){var i=window[ba],l=v;if(i&&typeof i.push=="function"){l=i.constructor==Array;if(!l)return}window[ba]=$;l&&$.push.apply($,i)}na();})() _"http://proteopedia.org/favicon.ico\image/x-iconObplist00 X$versionT$topY$archiverX$objects_WebResourceResponse_NSKeyedArchiver #)*0"1234U$null  !"V$classR$3R$8R$5R$6R$4R$7R$2R$9R$0R$1   $%&'(WNS.base[NS.relative_"http://proteopedia.org/favicon.ico+,-.X$classesZ$classname./UNSURLXNSObject#A^XW/\image/x-iconP#+,566/]NSURLResponse)27:PRdpv'*09BOPY^a7o@ 1<KaxgmT]gp444489 99O9Y=J==>1B EEFJ(^^_c=2;u—aabf fwfffj#)4  + p_FO O@OIOSVVW3[5mm mLqW"+kv"p"y"&@@A EAJJJNT)T4TwX___kck0k9kao