From: Subject: Drag Show 2007 aims to provide more education - Scene Date: Sun, 3 Jun 2007 14:24:37 -0700 MIME-Version: 1.0 Content-Type: multipart/related; type="text/html"; boundary="----=_NextPart_000_0020_01C7A5EA.EA8F7930" X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3028 This is a multi-part message in MIME format. ------=_NextPart_000_0020_01C7A5EA.EA8F7930 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Location: mhtml:file://C:\Documents and Settings\ASG\My Documents\Drag Show 2007 01.mht =EF=BB=BF Drag Show 2007 = aims to provide more education - Scene

Current issue:

Home > Scene =

Drag Show 2007 aims to provide more education

Skits and lip-syncs break down barriers

By Alexa=20 Dijulio

Issue date: 5/3/07 = Section: SceneOriginally=20 published: 5/3/07 at 12:13 AM PST
Last update: 5/3/07 at 12:12 AM = PST
=20
  • Page 1 of 1
May GASPED and GALA have your attention, ladies = and=20 gentlemen -- or ladies dressed as gentlemen -- or gentlemen dressed as = ladies?=20 The 6th annual Santa Clara Drag Show will be breaking down gender = stereotypes=20 left and right, say participants and organizers, tomorrow, May 4, at 8 = p.m. in=20 the California Mission Room.

Downstairs Benson Center will be=20 transformed into an eccentric staging area full of students dressed in = drag.=20 Along with the usual lip-syncs and dances, there will be some new = elements that=20 organizers hope might make you think.

Representatives from Gay = &=20 Straight People for the Education of Diversity and Gay and Lesbian = Alliance, as=20 well as from Santa Clara Community Action Program, say they have worked = hard to=20 ensure that this year's show incorporates more elements of education = about the=20 lesbian, gay, bisexual, transgender/transsexual/two-spirited and=20 queer/questioning communities. This year, skits and interviews about the = history=20 of transgender prejudice that will be incorporated into the show. =

Though=20 James Servino, program coordinator of GASPED, said Santa Clara has a = history of=20 support for the LGBTQ community, the support is not absolute. "Santa = Clara=20 students are aloof to this community unless they actually know and = associate=20 with a gay or lesbian person," he said.

Servino said the LGBTQ = community=20 at Santa Clara seems to have more outward support from women. Servino = said the=20 Drag Show needs more male straight allies to help the show continue with = success=20 in the future.

Last spring after the Drag Show, three hate = e-mails were=20 sent to SCCAP, the overseer of GASPED. The e-mails were never officially = reported to the university because the responses were not the first of = their=20 kind since the Drag Show began, were not physically threatening, and = were not=20 aimed at a specific person. However, the e-mails sparked a panel = discussion=20 sponsored by SCAAP.

Servino hopes that the showing at this year's = panel,=20 which will be held on Monday at 7:30 p.m. in the Williman Room in = Benson, will=20 be larger thanks to the educational skits that will intertwined with the = performances.

Mairead Burke, a senior in the communication and = women and=20 gender studies departments who has helped plan the show, sees the = shock-value of=20 the performances as a great way to attract people to the Drag Show, = which=20 ultimately showcases a community that is often overlooked.

The=20 exhilaration that comes from viewing a show like this often is a product = of=20 Burke's mentioned shock-value, especially at a Jesuit university. Emory = Lynch,=20 senior out-going director of SCCAP and member of GASPED, wants to make = sure that=20 this shock acts as a means for breaking stereotypes down instead of = reinforcing=20 them.

Max Voltage, who is responsible for starting the Drag Show = at=20 Santa Clara, said to performers, "Take risks, push boundaries, challenge = your=20 audience. But also, find that line to walk, between risky art and = oppressive=20 crap," in an essay written for The Third National Gay, Lesbian, = Bisexual,=20 Transgender & Ally Conference for Jesuit Colleges.

The = conference,=20 which was hosted at Santa Clara last summer, is held for Jesuit = universities to=20 facilitate discussion and action within the LGBTQ communities. According = to=20 Voltage, if performers, or "stars," as they are referred to in planning=20 meetings, are successful, they will empower both men and women without = demeaning=20 either gender with sexist or oppressive stereotypes.

"Homophobia = is=20 really tied to sexism," said Servino.

Prizes will be awarded to = those who=20 show up in drag, but no pressure -- attendance by those who do not wish = to work=20 it from the other side is equally encouraged.

Peter Keating, a = junior=20 GASPED member who is involved in the planning of the show, said, "You = will get=20 as much out of this as you wish to get." Regardless, performers will be = breaking=20 it down -- in more ways than one -- to Justin Timberlake, Shakira and = many, many=20 more.

Contact Alexa Dijulio at adijulio@scu.edu
Page 1 of 1

Article Tools

Share:
  • Facebook=20
  • Blogger=20
  • del.icio.us=20
  • digg=20
  • newsvine<= /A>=20
Subscribe:
  • My Yahoo!=20
  • Google

    Viewing Comments 1 - 1 of 4

      Cathy Dawson

      posted 5/10/07 @ 9:57 AM EST

      Isn't this inconsistent with the school's Catholic identity? The = Church=20 teaches that homosexual sex is a grave sin.

      (3 replies)   Details=20   Reply=20 to this comment

      Post a Comment

      • =20
      • =20
      • NOTE: = Email=20 address will not be published=20

      3D"Email Email notify will not work because you are not = currently logged=20 in.
      Click=20 here to quickly login or create a free account.

      Type your comment below (html not allowed)

       =20 I=20 understand posting spam or other comments that are unrelated to this = article=20 will cause my comment to be flagged for deletion and possibly cause my = IP=20 address to be permanently banned from this server.

      =20

      National = College=20 Advertising and Marketing
      Privacy = Policy=20     Article=20 Syndication     RSS = Terms of=20 Use

      Advertisement

      Poll

      Should Santa Clara get rid of short = classes on the=20 first day of fall quarter?
      =20
      =20
      Submit Vote=20

      View=20 Results

      Advertisement

      ------=_NextPart_000_0020_01C7A5EA.EA8F7930 Content-Type: image/png Content-Transfer-Encoding: base64 Content-Location: http://media.collegepublisher.com/media/weatherbug/weatherbugsforchannelbar/95051.png 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 E3lI8C/oC885FK5YMQAAAABJRU5ErkJggg== ------=_NextPart_000_0020_01C7A5EA.EA8F7930 Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Location: http://stats.broadbandpublisher.com/pageCounter.adp?iPaper_id=946&random=&uid= R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw== ------=_NextPart_000_0020_01C7A5EA.EA8F7930 Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Location: http://admanager3.collegepublisher.com/runtime/noScriptAdImpDisplay.cfm?iposition=11&ipaper_id=946 R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw== ------=_NextPart_000_0020_01C7A5EA.EA8F7930 Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Location: http://admanager2.broadbandpublisher.com/storyImage.adp?iStory_ID=2893140 R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw== ------=_NextPart_000_0020_01C7A5EA.EA8F7930 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.thesantaclara.com/media/assets/icons/alert.gif R0lGODlhEAAQANUvAKh0IdqnKxgYGP/ghP/MM/7KM+yzL/vGMvO7MPa/MeWpLvfAMfrGMtydLNiX K+etLt+hLfjCMu60MPC5MO61L/nEMvzGMtORKuCkLeesLumuL/G6MP7KMuaqLffCMe+3MOOmLfrF MuOnLv3KM+uwLvzJM96fLf3JMvS+MeKlLvO8MdmaK/zIM9aVK9ubK////wAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAC8ALAAAAAAQABAAAAZkwJdw SCwahYHA8ZhcFgMDAsA5hEqpL+voMHVCBYJIlxkFJybj56AARkjS1SgL/CEp4NnBKQQ2ZFJwUAUW HioUGiIQLmlQJRUoYB0YDQ5jUBwMCxsGDyAmKy0XXQEApaanplhGQQA7 ------=_NextPart_000_0020_01C7A5EA.EA8F7930 Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Location: http://admanager3.collegepublisher.com/runtime/noScriptAdImpDisplay.cfm?iposition=2&ipaper_id=946 R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw== ------=_NextPart_000_0020_01C7A5EA.EA8F7930 Content-Type: image/png Content-Transfer-Encoding: base64 Content-Location: http://media.collegepublisher.com/media/paper946/thumbs/t_v0u40xv5.png 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 CmGmubqKPVYHTgN7oXBAxwtQ0p5JHETD7Dn2DYbZOiUxhuPOUTLiON25H63f7Yn2dz4HJcmSh81n 6uzVefpmo8BUGD0zuHdsF+YD43fr2U+nix8V+BtcmqY1dGx5bKvIOrIJvAeB/zTkAG/AG/CGkt+0 pFhSLCngIDgIDjb1a+rX1E8fpA/SB8Ft4DZwG4ubxc3ipq/X1+vrkcvIZeQyv4pfxa9Cl6JL0aXk WnItuZYdwA5gB5AhZAgZQhwljhJHW9Aju8AusIuMIWPIGCAFUiBF2iJtkbbUJVAT3WAJWAKWoClo CpoCYkEsiP3jZRJjibHEWPIX+Yv8hZ3DzmHnnCucK5wriDwij8hr2UkP9EBPVYm3rKHOMx/MB/Nb KtuPQxokjMwlm8jyuBFdtb2zFn1cT5yAPE77B/vENjxQbVNf05TkhJchsW87YJ3uR/2KXdVqqXqC 4knJVo07Bulr4VtQmcVFmdCwteD5lVN3pp886FouZnML4EL0GPpZVdu8Xq0r2Vk6tqJNOac8rUat YSifKCML1hS0KhdWPCruVjZwwvP+RwdHCOtYOkBjra2dVPq1dpgDd2ypKnVP8W/zPjnqUmwXLSR+ L0ni3+fNFo7Ri8zZ5iTiKF3tuDPVPq643/Egjl+I55JoTw++660QnssRYfEUZlBQpCjmGKHkJP4E 5TdrcxVH9e0sUw0xZkstgb0kFjaHNTyrk1R0t5Rb0tDlXFd+O165R5iXj2iO4AjnOVptukd0off+ gWquoqsOJr20fmQW922+YVwEx9ID+CugReRs4zfGB+iS80U1M/fho3YACElyAT1UsBQVuzwQpECD fOcH7ggebB1rGqUJNnY1DNeFmB6ZD+hVTk8skKgjvhLPyeNQhrOLcwk9lZ5DH4ysANvgiYb52rMW KRMIO4gTFCmcZaw1XoDlgcgSxngP8vZvcdyRcE+o778WcnwAH8AHak7OPdg92D3YHbgDd6BIVCQq EqtTqlOqUyheUJaT5WQ5KdSydqB2oHYgby1vLW+t51bPrZ5bleuU65TrLHGWOEsc/Bx+Dj9XXFVc VVy177fvt+836Uw6k44SqbButm62bnZvdG90b6xeVr2sepl2uHa4dnjoydCToSdtVpvVZuU84Tzh PFH5qHxUPqx8Vj4rn15IL6QXGq4arhquYkJMiAllfWR9ZH2Un5SflJ+gFCgFSpHJZDKZrMHQYGgw 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 THwwsfBb4bfCb4U9CnsU9pj/c/7P+T/rEuoS6hLe3H1z983d7AHZA7IHvHz68unLpy9NL00vTV9m f5n9ZfbrzNeZrzPTfNJ80nxSranWVOvnQ58PfT6UtyBvQd6C722+t/nepuUeNxIbiY3UsjpJnaRO wqyYFbP+qSEiyUgykuhP9Cf64x/wD/iHlvUupAvpQuwh9hB7yFQylUwlMAIjMHIWOYucRQ18/9qq eFe8K95V+1j7WPvYes96z3qPSCPSiDRtnDZOG+c46zjrONuyJ4ETONFynWeJs8RZ4ivxlfj6p2dE UVp2JbuSXclqspqsxhfiC/GF+B58D77H2cnZydlJvU29Tb0NbUKb0CbKUYhkIplIbjlDG6IN0YYc T44nxxPjifHE+JZTl5PlZDm1qF+lX6Vf9afb6Ev2JfsSJUQJUUJVEv1p60PyIfmwZbmSrCQrSS/S i/QiE8gEMoGaV/4bf0shUogUIogIIoJaVn0iP5GfiCXEEmIJ+W8a+Nd3xbvgXfAu/2QfDMdwjFrG dmI7sZ3vkt8lv0v+dy+LsoqwirCKsG8Tv038NvE/d4a/ab5IIpKIJLoR3Yhu1BpVP1U/VT+iPdGe aF+zvmZ9zfq6rXVb67a23MVabC229k+naEW2Ilu1LFNNn0VkEX9yYkog9HHbx20fty29W3q39O4/ abe+eF+8r/WI9Yj1CLmcXE4u/+s+jmGOYY5hP5N+Jv1MopR2W+6okqgkKv/hqdPINDKNmk76m62+ pC/p+28030ByIDnwjyuMi4yLjIuyD2YfzD5I5BP5RP6/cpqS7JLskuxGVaOqUfWnpzOVmEpMpZIE 1BoTZIJMUH1jfWN9I2kkjaSRSin+ozP/Gw79r5tWrVVr1RWlFaUVpf/6UblrctfkrrFPtU+1T81b m7c2b+1f9yF8CV/i33kA/4I11zfXN9dTyy8NLw0vDVeyr2RfyTYnmBPMCdR6S5OlydJElRS0NHSO KceU88fzmE+bT5tPUyxQh38d/nX414cdH3Z82CHPlmfLs7+f+H7i+wmz3Cw3y803zDfMNwxDDUMN Q8mR5Ehy5LOLzy4+u/jjwo8LPy5QZzO+M74zvsNWYiuxldY+1j7WPlRuvn5X/a76FtdUHlMeU7Zc j+6i7qLuovWw9bD1cMvWWGWsMvZPVzjdPN08HW+Pt8fbW2gWmoXWsmELuYXcQq1BL6OX0cvOIGeQ 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 WLhYuHhv0t6kvUkDpAOkA6TiMHGYOOx5zfOa5zVde3Xt1bWXuq26rbpts7pZ3ay2L7Mvsy9r+tr0 tekrYz1jPWO9/aX9pf1l05CmIU1DbKNso2yjLPss+yz7vHO9c71zX2x+sfnFZtYv1i/WL/Z39nf2 d2OBscBYgO3D9mH7jAeMB4wHKGp6ESSCRNDJiJMRJyM85nnM85hXNaJqRNUIxhrGGsYa22XbZdvl PI88jzwP1jXWNdY17xzvHO+cpqqmqqYqNA/NQ/M6zeg0o9OMGrQGrUF54bxwXjg1sUXh7KFJ0CRo UgtETAAEQPAvZTla4pg4Io6Io5Z/Vf2q+lWV4Zfhl+H3vzZ+/Rszk2bS/McVX5Z8WfJlCabH9Jie yja8VbxVvFW82/tu77u9WDesG9btf37Ku5/vfr772fTZ9Nn0+a9bqSlZfBY+C59F+pP+pH/VpqpN VZtsZ2xnbGeofcqiy6LLoo03jDeMN8x3zHfMdwzDDMMMwyxfLF8sXygiyfIV5SvKVzjmOuY65hoP GQ8ZDxl+GX4ZflkOWw5bDtt8bb42X22GNkObUaGp0FRoWnhIqET9d/I7+R2fh8/D51m2WbZZtlnD reHWcEs/Sz9LP8sbyxvLG7PELDFLzKvMq8yr6grrCusKVV9UX1RfWq5QUaYoU9itdqvdiu5Gd6O7 a8bXjK9pyV1YI6wR1ghLhaXCUmHdb91v3W/taO1o7Wi1Wq1Wq6XKUmWpsmy1bLVstVZYK6wVFrqF bqETb4g3xBvzKPMo8yjqPHa6nW6n64frh+uHG7ON2cZsfa4+V5/bIrUqI2WkrGxH2Y6yHWQimUgm WgdbB1sH2zvZO9k7YTbMhtl0CboEXYJ+nn6efh6ajqaj6XpID+kheR95H3kf6l90Np1NZzOOM44z jjOpTWqTmgwjw8gwcjW5mlxNOkkn6SRREiXRvz7NfzYo/Ep+Jf+cMJpBzCBmkPvIfeQ+/Ah+BD/S Ahj6if/Ef7aIZJ7Hz+PnqQoLTINpMA3eHe+Od8cP4gfxgzgH5+AcbCm2FFtKHCQOEgf/+rcUEylJ qRW1+DX5hfzyjy4TT8KT8CR8ND4aH91ynXSCTtCpTEvLmgaigWggehI9iZ5/cuj+6v7q/pT00X/x Zfw/YsQAYgAx4B9uTiaTyf9klun/G+3vHPoF+YJ8QaVI0Fg0Fo0tzyzPLM9sEd404SbcRBUC/S/4 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 /vPr/wGMxqR+HcSQLwAAAABJRU5ErkJggg== ------=_NextPart_000_0020_01C7A5EA.EA8F7930 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://media.collegepublisher.com/media/paper946/template/templatemedia/ap_logo.gif R0lGODlhYQA5APfwADs7O7KystDQ0Hd3dw4ODh0dHWhoaMHBwd/f38nJycTExCcnJ0pKSiwsLFlZ WSUlJYWFhZSUlKOjo9vb2zMzM7iTk7CwsK+vr87OzmxsbD09Pd7OzjUfHxUKCgcHB9PT09LS0tTU 1N7W1tra2ufn57uVlQgICBISEgwMDAQEBOzr6+jn5wICAubm5i4uLox6epF9fbScnCAgIMfHx+vq 6p+EhLe3t62trRYWFpZ/f2lpaaurq3t7e8rKyiQkJB8fH7yhoY6OjqysrCIiIsPDwwEBAcjIyNfL y9LJyRcXF4BbW6mLi66uruvr6zAwMEI9PcbDwzkwMBIHB8zMzHxfX72iogMAAHxlZXVYWFxcXHVo aHZ2dtjV1SYaGioqKr6+vlNTU5qamhQUFNjExNHPz+Th4bmRkebj49rKyhIICKSHh72WltjR0UIt LSYTE+Xl5WdnZzgkJI14eA0NDbuenrqTk3x8fOHY2Lmbm83NzYV5edvZ2evo6DYdHdjY2D0rKwoK CjojIxcMDFhYWI+AgMS4uGVFRUguLhAQEN3c3F5eXqWKigoGBsbGxg4NDY5+ft3LywsLC7GwsN/W 1hEQEOLX1+DX18i+vqGTk7abm2JISNPDw6ypqaCDg01NTUAqKgIAAMvJyVM9Penk5Dc0NJeFhejo 6Ip5eZ6IiN7V1bOxsba2trS0tDIyMjk5OdnNzdDMzFc6OiYYGJyUlJp6etXV1QUFBYZpaREREeLa 2sO4uNXGxkFBQTYfH5J4eIp+fu3s7DUqKuTg4NfFxXtPT6GKiuPj41VPT9zLy2BgYKSkpAMBAXpp ab29vby8vN3W1hgYGKikpEtLS9zV1QYGBjgtLd7b29za2tnZ2Z+bm93d3Xh4eJ2Dgz8/P6ihoeLg 4Do6OhoODiwgIBMSEuzs7AEAANPPz4h3dzYtLb+YmFFRUYuIiLazs5SDg455eQAAAO7u7gAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAPAALAAAAABhADkA AAj/AOEJHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDMitOZLR4aPH+HM0EiypEFYmgBoWLnSlTOT MEvqeEezJk0mMXNeBELJps0LOoNK3DPE50+hSBuuuGX0aNKnCLNJaVoTKNSrA1O5oFq1CbYJYMOK nZCID1aSWFhwpfnlgxMKcOPKbUWKGDNJuc5a9La2Zo9GfW06amOgh16JSA4FfpeAyGKfOJaYOuxQ hYPHCRQ89mnCgDDKDOlEwqx5s01qtFSATgiiy+bMpn2mUbX6oLYsRj3gINAUdlMUJ3CdWNuttkE7 How+uLHVqG+fScLYYGVjXSyq48YYH2hhuE8Pakb4/+hd2qeXEQQrGWpq69eK7cbANfUED8QD8k0X CCh4CVpTHiRsx0NTiFgADwb3OVeeTfoZpEFTg/hh3A0oNJXMGwcm6NNzDO5XEABNKYLeaiTwUoRR fwwjEIL4GdUgQZbE0ZQ0IKymQgZNFRHNQCwqmJ+HA8UASFPbtLAaEGI0xYguykiwiwAa2sRhTfqR I9ArswRC1RZGUvaNOFQt44YHHujxQZQ1TUnTAtNU4cMDsqRAVTmZAEMZDVqYEBgqIaBJk5rvLCBC HYHJMOJhmISzWClntuiToCUEdgVobPhJFSGN+uiiCJGu9cMmoCmxWTF9Osogp2uxEARonMj5WDuZ bv+4IJWTpMOVDKtSdkQ1ri72SKmaPsrFOU39QAUUqx0DilFWPLHIKdzk8EINMMhhhH2mUhnCDO7A UMMLOXSCRy00rBZDckaJ8kxCPcr643YGhdJLUyawo1C7Us66JpDwwnMGGFSps1AeRRllhL6B8gvv Gp9w4PDDfQSTwELmRDEHARhjjMIUjrmo8HZoILPByCRDUgZDoxRygQUssywECc28229QF8g8c047 2HwzTELovHNJOSv38c8ZrSJIB0gnjQ4ZRMN0jRkVRC11BXc0bfXV/RoAwNYAGBABAA0NAMABF31t EAISJHTA2AKtvfUAQzekNcZdD/AOQwjQ5EDZYBf/xEDfBwXwTgACCV4AiAVYtLVAdjtAwADwSNBA AREQBME7BRCAADwQNEAAA/AE4DkAmxtQQANpH3AZAwiYPUDmDhyAsQEHMFDAAAgg4DgDgxf+DuSX CQAAAwQEYAABDgiAAPGow+PA6ZALtDg8dkMAIjwEdP3O5gJNHsE7lRPQgNgCTC62BJc7wLsAzw/w uN3CD8C7BAVQbvvl6L/Tee+hYw4iAfDAnNf0VwAHXM4ADjCA4BigvoFMz27UG9w7GtAA8LXtHdmb oPNoAgAB2G2CtbvbAfT3uYFA0HQ0CcDi/PcOrTUggoTr3+FoF0DI8Q4A9RMAbwgAAXgUQG8O7BsE wOH3DgZYr3Ib3NoPJTAACBjgdwMwQPqeGAC7ia4B5RuAFVv4PRW+sH4S6NoTBcC7GAouegL5HTye KIG/RcBrIKoiBMooPSHe7YQ0KcDmEJC9CzoARBgUwBNpIoED/LCI8IgAbwZnt7zVRAKXAYAiaXIA 2WGQf2ckiBoNSRMIjJAmrFvkC9tGNngIgHCnFAgCYgiPVQIpAGRLpUBkWTggrXJzqbxlAJQHy8Jx z5UB+OUuCTLMtr0SSJXEmjKXqZCAAAA7 ------=_NextPart_000_0020_01C7A5EA.EA8F7930 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://media.collegepublisher.com/media/paper946/template/templatemedia/acp_logo.gif R0lGODlhMgBPAPf2AOzs7Onp6ZqZmejo6M3NzZ+enuPj48XFxSklJiUhIsvKyuDg4EpHSFBNTq6s rd/f3zUxMi8rLNLS0ubm5mtoaefn55KRkU1KS7Szs3t4ednY2Lu6uqGfoJGPjzg1NjUyM+Df31xZ WVRRUi4qK+rq6jMvMLGwsXd0dUxJSoqIiLOysra1tZuams3MzDs3OExIScLBwrCvr6mnqMfGxpOR kjEtLqalpXt5euHh4d3d3dzc3Nra2jo3N9DPz4iGh2pnaF5bXGRiYk9MTNzb29bW1peWllJPUF1a W5KQkJWTlComJzYyM8jHx8XExJaUlKqpqV9cXauqqjAsLZ6cnCgkJUA9Prm4uLW0tOvr64KAgFNQ UHFvb2hmZmdkZVdUVd7e3kA8PYuJinNxclZTVLi3t8PCwsTDwz87PMzLy0dERKOiomBdXVFOTzcz NDg0Nb69vp2bnEE+P3p3eISCg3x6ejw5Oq+ursnJyVtYWdHQ0HJvcJaVlW5rbHh2dsbFxqKhoYqJ iZ6dnU5LTHZzdI+Njr28vNTT0z47O1hVVn98fb++vi0pKnNwcbGvsMrJynd1ds7OzoeEhZmXmGtp aqSjo0lGR1xZWlhVVdXV1W9tbjw4OYaEhGBeXtPS09jX1358fK6trZSSkyQgIaakpEI/QEM/QLy7 u9nZ2aCen1pXWOXl5bq5ucHAwGViY5qYmH17ezk2N6KgoD06O0hFRs/OzqqoqS0qK5yam62rrIWD g4OBgisnKNXU1NfW12NgYTEuL7m4ubW0tWxqaqempm1qazIuL8nIyCcjJGFeX4mHh728vY6NjY6M jFVSU3BubllWVyYiI7e2tkhERYF/f1RRUdvb2+Tj46WjpJCOj0RAQYOAgWlmZ6yrq+Li4piWl7Kx scHBwYeFhktISGdlZXVzc42LizQwMURBQn99fnRycsC/v1BMTYB+f2JfYKinp0VCQ29sbXl3d+Tk 5CwoKWZjZCMfIO7u7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAPYALAAAAAAyAE8A AAj/AO0JHEiwAhMOKRImZGHlAcGH9gZE2ZJGikUeyGhIgMhR4AJKmapQqUeyJMk2W0wAgDiKgcmX tgZ56jiQhAVNL3OaFLFhYA4uJqlQSZBTlh2aGhDpTFCjygidVMrZ23GBZIk+je44UhZKy8sEezie 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 ggTCUIkqsGA4AQEAOw== ------=_NextPart_000_0020_01C7A5EA.EA8F7930 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://media.collegepublisher.com/media/paper946/template/templatemedia/scu_logo.gif R0lGODlhSABgAPf/APT09C0pKlBNTs7OzhwYGZ6dndnY2HRycmBeXoeFhqalpV1aW8XExI6MjNra 2vn5+W9sbe7u7oB+f2hmZqKhoWtoabm4uX98fUA9PmRhYnd1dpaUlJGPj4KAgL28vaqoqXt4eWdk ZYiGh1RRUpCOjoyKi/f397Curra0tBUREoSCg2NgYXh2dsfGxkM/QLq5ubW0tZiWl7i3t8C/v66s rbu6ui8rLE5LTJWTlJSSk1NQUCklJjg1NmZjZEdERExISXNwcUpHSE1KS0VCQ1dUVRkVFjg0NTw4 OT06OxoWFzQwMSAcHUtISBsXGDo2NyckJRgUFQ8KCyIeH9TT05qYmSUhItHQ0Ojo6MPCwuzs7Pz8 /Orq6uvr6zczNN7e3isnKLSzs3JvcCcjJHBubqSjo7KxsSgkJbGvsKinp+Xl5V9cXSomJzMvMMHB wSQgIcjHx6+urjIuL83NzdDPz9bW1uPj41hVVaWjpNfW1yEdHtXV1eDf3/39/ZORkllWVzAsLYqI iIqJidPS025rbEZDRLe2th8aG/r6+jUyM0RBQkxJSt/f35eWlhgTFCYiI0lGR52bnFtYWcbFxtzb 283MzMnJyXFvb+bl5t3d3cLBwlZTVL++vubm5q2rrF5bXJuamuDg4MnIyDYyMzUxMjEuL8TDw0RA Qf7+/ry7u5mXmLGwsamnqJqZmbOyss7NzmpnaOnp6djX1+Tk5IuJiqyrq6OiouHh4VhVVsrJyvLy 8vHx8Z+entXU1H99fnp3eL69vuTj46GfoE9MTGJfYFJPUMzLy5yamz47O6uqquLi4j87PPPz8zEt LvDw8EhERUhFRsHAwEpHR4OBgnt5esLBwXVzc/v7+5uZmufn5+Xk5KCenzw5Otzc3NLS0lpXWO/v 787NzeTj5PX19fDv8L69vSwoKba1tTc0NTMwMSMgIeno6b27vCIfIJ2cnLi4t9fW1iAbHerp6R8c HOHg4Do3N/v6+m9tbsnIyfPy83Bub6emptXU1YmHhyMfIP///+7u7iH5BAEAAP8ALAAAAABIAGAA AAj/AP8JHEiwYMEWSgYYXMiwocOHEA326TeNU8SLGDM2zEKvn409GkOKvAinnKqRKFMaxEQqlMqX KV/YsACzZkYvK+BJcdLHps+Hg/oF+fIkT7ufSAuCssGEWgASRpBcSUp1UoAF98S4s5NOENWkmGxE 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 ------=_NextPart_000_0020_01C7A5EA.EA8F7930 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.thesantaclara.com/media/css/global.css?v43 BODY { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } A { TEXT-DECORATION: none } STRONG { FONT-WEIGHT: bold } IMG { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: = 0px; BORDER-RIGHT-WIDTH: 0px } #cprightcol A { DISPLAY: block } #cpleftcol A { DISPLAY: block } #cprightcol H2 { DISPLAY: none } #cpleftcol H2 { DISPLAY: none } A.subnav:link { PADDING-LEFT: 1em; FONT-SIZE: 11px } A.subnav:visited { PADDING-LEFT: 1em; FONT-SIZE: 11px } BODY { MARGIN: 0px } BODY { FONT: 12px/14px Arial, Helvetica, sans-serif; COLOR: #333 } P { FONT: 12px/14px Arial, Helvetica, sans-serif; COLOR: #333 } TD { FONT: 12px/14px Arial, Helvetica, sans-serif; COLOR: #333 } LI { FONT: 12px/14px Arial, Helvetica, sans-serif; COLOR: #333 } H1 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = 0px 0.2em; PADDING-TOP: 0px } H2 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = 0px 0.2em; PADDING-TOP: 0px } H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = 0px 4px; FONT: bold 18px/1.2em Arial, Helvetica, sans-serif; = PADDING-TOP: 4px } H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = 0px 10px; PADDING-TOP: 0px } H5 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = 0px 10px; PADDING-TOP: 0px } P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = 0px 10px; PADDING-TOP: 0px } .smalltext { FONT-SIZE: 0.8em } .nobottommargin { MARGIN-TOP: 1em; MARGIN-BOTTOM: 0px } .graybox { PADDING-RIGHT: 8px; BORDER-TOP: #aaa 1px solid; PADDING-LEFT: 8px; = BACKGROUND: #eee; PADDING-BOTTOM: 8px; MARGIN: 0px; PADDING-TOP: 8px; = BORDER-BOTTOM: #aaa 1px solid } .note { BORDER-RIGHT: #aaa 1px dashed; PADDING-RIGHT: 8px; BORDER-TOP: #aaa 1px = dashed; PADDING-LEFT: 8px; BACKGROUND: #fff; PADDING-BOTTOM: 8px; = MARGIN: 0px; BORDER-LEFT: #aaa 1px dashed; PADDING-TOP: 8px; = BORDER-BOTTOM: #aaa 1px dashed } .smallnote { BORDER-RIGHT: #aaa 1px dashed; PADDING-RIGHT: 8px; BORDER-TOP: #aaa 1px = dashed; PADDING-LEFT: 8px; FONT-SIZE: 0.8em; BACKGROUND: #fff; = PADDING-BOTTOM: 8px; MARGIN: 0px; BORDER-LEFT: #aaa 1px dashed; = PADDING-TOP: 8px; BORDER-BOTTOM: #aaa 1px dashed } A.button:link { BORDER-RIGHT: #eee 1px outset; PADDING-RIGHT: 8px; BORDER-TOP: #eee 1px = outset; DISPLAY: inline; PADDING-LEFT: 8px; BACKGROUND: #eee; = PADDING-BOTTOM: 2px; MARGIN: 0px; BORDER-LEFT: #eee 1px outset; = PADDING-TOP: 4px; BORDER-BOTTOM: #eee 1px outset; TEXT-ALIGN: center; = TEXT-DECORATION: none } A.button:visited { BORDER-RIGHT: #eee 1px outset; PADDING-RIGHT: 8px; BORDER-TOP: #eee 1px = outset; DISPLAY: inline; PADDING-LEFT: 8px; BACKGROUND: #eee; = PADDING-BOTTOM: 2px; MARGIN: 0px; BORDER-LEFT: #eee 1px outset; = PADDING-TOP: 4px; BORDER-BOTTOM: #eee 1px outset; TEXT-ALIGN: center; = TEXT-DECORATION: none } A.button:hover { BACKGROUND: #ccc } A.button:active { BORDER-RIGHT: #eee 1px inset; BORDER-TOP: #eee 1px inset; BACKGROUND: = #eee; BORDER-LEFT: #eee 1px inset; BORDER-BOTTOM: #eee 1px inset } INPUT.liquid { WIDTH: 95% } TEXTAREA.liquid { WIDTH: 95% } FORM TABLE.form_table TD { PADDING-BOTTOM: 5px } .form_error { BORDER-RIGHT: #cc0000 1px dotted; PADDING-RIGHT: 5px; BORDER-TOP: = #cc0000 1px dotted; PADDING-LEFT: 5px; FONT-SIZE: 15px; PADDING-BOTTOM: = 5px; MARGIN: 5px 5px 15px; BORDER-LEFT: #cc0000 1px dotted; COLOR: = black; PADDING-TOP: 5px; BORDER-BOTTOM: #cc0000 1px dotted } .validation_error { COLOR: #cc0000 } .validation_note { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; BACKGROUND: #cc0000; = MARGIN-BOTTOM: 4px; PADDING-BOTTOM: 2px; COLOR: #fff; PADDING-TOP: 2px } FORM { MARGIN-BOTTOM: 0px } .top_bar { BACKGROUND: #eeeeee; BORDER-BOTTOM: #999999 1px solid } .evenrow { PADDING-RIGHT: 8px; PADDING-LEFT: 8px; BACKGROUND: #edf3fe; = PADDING-BOTTOM: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: #999999 1px solid } TR.evenrow { BORDER-TOP: #aaa 1px solid; BORDER-BOTTOM: #aaa 1px solid } .oddrow { PADDING-RIGHT: 8px; PADDING-LEFT: 8px; BACKGROUND: #fff; = PADDING-BOTTOM: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: #999999 1px solid } .forumname { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = 0px 10px; COLOR: blue; PADDING-TOP: 0px } .adminbutton { FONT-SIZE: 12px; WIDTH: 85px; FONT-FAMILY: arial, verdana, sans-serif } #cp_pdf_results LI { PADDING-RIGHT: 10px; PADDING-LEFT: 30px; LIST-STYLE-POSITION: inside; = FONT-SIZE: 1.1em; PADDING-BOTTOM: 10px; MARGIN: 0px; PADDING-TOP: 10px; = BORDER-BOTTOM: #666 1px solid; LIST-STYLE-TYPE: none } LI.pdf_oddrow { BACKGROUND: = url(http://media.collegepublisher.com/media/assets/images/pdfimage.gif) = #f5f5f5 no-repeat 5px 50% } LI.pdf_evenrow { BACKGROUND: = url(http://media.collegepublisher.com/media/assets/images/pdfimage.gif) = #edf3fe no-repeat 5px 50% } H4.cp_link_underline { FONT-SIZE: 11px; COLOR: #666; TEXT-ALIGN: right } H4.cp_link_underline A { COLOR: #666; TEXT-DECORATION: underline } #calendar_header { PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; = PADDING-TOP: 10px } .calendar_dark { BACKGROUND: #666666; COLOR: #c9c9c9 } #calendar_border { BORDER-BOTTOM: #aaa 1px solid } #forum .graybox { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 8px; = PADDING-TOP: 8px } #forum .originalmessage { PADDING-RIGHT: 8px; PADDING-LEFT: 8px; BACKGROUND: #eeeeee; = PADDING-BOTTOM: 8px; MARGIN: 0px; PADDING-TOP: 8px; BORDER-BOTTOM: = #999999 1px solid; TEXT-DECORATION: none } #forum .replymessage_even { PADDING-RIGHT: 8px; BORDER-TOP: black 1px solid; PADDING-LEFT: 8px; = BACKGROUND: #eee; PADDING-BOTTOM: 8px; MARGIN: 0px; PADDING-TOP: 8px; = TEXT-DECORATION: none } #forum .replymessage_odd { PADDING-RIGHT: 8px; BORDER-TOP: black 1px solid; PADDING-LEFT: 8px; = BACKGROUND: #fff; PADDING-BOTTOM: 8px; MARGIN: 0px; PADDING-TOP: 8px; = TEXT-DECORATION: none } .recordSetBrowser TH { BACKGROUND: #eee; TEXT-ALIGN: left } .hilite_table { BORDER-RIGHT: #666 1px solid; BORDER-TOP: #666 1px solid; BACKGROUND: = #f3f3f3; BORDER-LEFT: #666 1px solid; BORDER-BOTTOM: #666 1px solid } #searchResults H1 { MARGIN: -4px 0px 4px; FONT: bold 13px arial, verdana, sans-serif } #searchResults H2 { MARGIN: 0px 0px 4px; FONT: bold 11px arial, verdana, sans-serif } #searchResults { MARGIN: 0px 0px 6px; FONT: 11px arial, verdana, sans-serif } #searchResults P { MARGIN: 0px 0px 6px; FONT: 11px arial, verdana, sans-serif } #searchResults TD { MARGIN: 0px 0px 6px; FONT: 11px arial, verdana, sans-serif } #searchResults .oddrow { BACKGROUND: #edf3fe } #searchResults .evenrow { BACKGROUND: #eee } #searchResults TD { PADDING-RIGHT: 8px; PADDING-LEFT: 8px; PADDING-BOTTOM: 8px; = PADDING-TOP: 8px } #searchResults TH { PADDING-LEFT: 7px; BACKGROUND: = url(http://media.collegepublisher.com/media/images/search_header.gif) = repeat-x 50% bottom; FONT: bold 11px arial, verdana, sans-serif; COLOR: = #4b4b4b; HEIGHT: 18px; TEXT-ALIGN: left } #searchResults .scorebar { BORDER-RIGHT: #999 1px solid; BORDER-TOP: #999 1px solid; BACKGROUND: = #fff; BORDER-LEFT: #999 1px solid; WIDTH: 50px; BORDER-BOTTOM: #999 1px = solid } #post_form { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; = PADDING-TOP: 5px } #post_form TD { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; = PADDING-TOP: 5px } #post_form_inner { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #aaa 1px solid; BORDER-LEFT: = #aaa 1px solid; BORDER-BOTTOM: #aaa 1px solid } DL#post_form_inner { MARGIN: 0px 5px 5px } #post_form_inner DD { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; = PADDING-TOP: 5px } #post_form_inner DT { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; = PADDING-TOP: 5px } .graybox DL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; BORDER-TOP-STYLE: none; PADDING-TOP: 0px; BORDER-RIGHT-STYLE: none; = BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none } .graybox DT { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; BORDER-TOP-STYLE: none; PADDING-TOP: 0px; BORDER-RIGHT-STYLE: none; = BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none } .graybox DD { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; BORDER-TOP-STYLE: none; PADDING-TOP: 0px; BORDER-RIGHT-STYLE: none; = BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none } #search_directions_body { DISPLAY: none } .middletd { PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; = PADDING-TOP: 10px } .texttd { PADDING-RIGHT: 4px; BORDER-TOP: #fff 1px solid; PADDING-LEFT: 4px; = FONT-SIZE: 11px; PADDING-BOTTOM: 4px; COLOR: #58595b; PADDING-TOP: 4px; = FONT-FAMILY: Arial, Helvetica, sans-serif } .toptd { BORDER-RIGHT: #fff 1px solid; BORDER-TOP: #fff 1px solid; BORDER-LEFT: = #fff 1px solid; BORDER-BOTTOM: #fff 1px solid; FONT-FAMILY: Arial, = Helvetica, sans-serif } .buttons { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; PADDING-BOTTOM: 3px } UL#address { MARGIN: 15px 0px } UL#address { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px; LIST-STYLE-TYPE: none } #address LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px; LIST-STYLE-TYPE: none } #login FIELDSET { BORDER-RIGHT: #666 1px solid; PADDING-RIGHT: 10px; BORDER-TOP: #666 1px = solid; PADDING-LEFT: 10px; BACKGROUND: #ccc; PADDING-BOTTOM: 10px; = BORDER-LEFT: #666 1px solid; PADDING-TOP: 10px; BORDER-BOTTOM: #666 1px = solid } #login DL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } #login DT { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } #login DD { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } .graybox DL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } .niceFont { FONT-SIZE: 10px; FONT-FAMILY: arial, helvetica, sans-serif } #fullcalendar { BORDER-RIGHT: #aaa 1px solid; BACKGROUND: #eee; BORDER-BOTTOM: #aaa 1px = solid } #fullcalendar TD { BORDER-TOP: #aaa 1px solid; FONT-SIZE: 10px; BORDER-BOTTOM-WIDTH: 1px; = BORDER-BOTTOM-COLOR: #aaa; BORDER-LEFT: #aaa 1px solid; FONT-FAMILY: = arial, helvetica, sans-serif; BORDER-RIGHT-WIDTH: 1px; = BORDER-RIGHT-COLOR: #aaa } #fullcalendar TD TD { BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: = none; BORDER-BOTTOM-STYLE: none } #cal_header { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; BACKGROUND: #666; = PADDING-BOTTOM: 3px; COLOR: #ccc; PADDING-TOP: 3px } .dark_head { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; BACKGROUND: #666; = PADDING-BOTTOM: 3px; COLOR: #ccc; PADDING-TOP: 3px } #cal_header STRONG { COLOR: #ccc } #cal_header A { COLOR: #fff } #loggedin_bar { BORDER-RIGHT: #eee 1px outset; BORDER-TOP: #eee 1px outset; BACKGROUND: = #eee; BORDER-LEFT: #eee 1px outset; BORDER-BOTTOM: #eee 1px outset } #loggedin_bar IMG { PADDING-RIGHT: 4px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } #loggedin_bar TD { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 2px; = PADDING-TOP: 2px } #ncbar { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; BORDER-BOTTOM: #fff 2px ridge } #agent99 { BORDER-TOP-WIDTH: 1px; BORDER-RIGHT: #6a6a6a 1px solid; PADDING-RIGHT: = 10px; PADDING-LEFT: 14px; Z-INDEX: 99; RIGHT: 444px; LEFT: 158px; = VISIBILITY: hidden; PADDING-BOTTOM: 0px; BORDER-LEFT: #6a6a6a 1px solid; = WIDTH: 291px; BORDER-TOP-COLOR: #6a6a6a; LINE-HEIGHT: 1.4em; = PADDING-TOP: 10px; BORDER-BOTTOM: #6a6a6a 1px solid; POSITION: absolute; = TOP: 31px; BACKGROUND-COLOR: #f0f0f0 } #agent99 TABLE { FONT: 12px/14px Arial, Helvetica, sans-serif } #agent99 A:link { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: = 0px; BORDER-RIGHT-WIDTH: 0px } #agent99 A:hover { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: = 0px; BORDER-RIGHT-WIDTH: 0px } #agent99 A:active { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: = 0px; BORDER-RIGHT-WIDTH: 0px } #agent99 A:visited { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: = 0px; BORDER-RIGHT-WIDTH: 0px } #formtext { WIDTH: 202px } #search { WIDTH: 54px } #cp_extras { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 6px; FONT: 11px = Arial, Arial, Helvetica, sans-serif; PADDING-TOP: 6px } #cp_extras A:link { FONT-WEIGHT: bold; COLOR: #000 } #cp_extras A:visited { FONT-WEIGHT: bold; COLOR: #000 } #cp_extras A:active { FONT-WEIGHT: bold; COLOR: #000 } #cp_extras A:hover { FONT-WEIGHT: bold; COLOR: #900 } A#stafflogin { BORDER-RIGHT: #bbdff9 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #bbdff9 1px solid; DISPLAY: block; PADDING-LEFT: 5px; FONT-SIZE: 16px; = BACKGROUND: = url(http://media.collegepublisher.com/media/assets/images/over.jpg) #fff = repeat-x left bottom; PADDING-BOTTOM: 5px; BORDER-LEFT: #bbdff9 1px = solid; COLOR: #1a3787; LINE-HEIGHT: 24px; PADDING-TOP: 5px; = BORDER-BOTTOM: #bbdff9 1px solid; TEXT-ALIGN: center; TEXT-DECORATION: = none } A#stafflogin:hover { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #aaa 1px solid; BACKGROUND: = url(http://media.collegepublisher.com/media/assets/images/click.jpg) = #fff repeat-x left bottom; BORDER-LEFT: #aaa 1px solid; COLOR: #666; = BORDER-BOTTOM: #aaa 1px solid } #log_left { FLOAT: left; WIDTH: 230px } #log_right { FLOAT: left; MARGIN: 0px 0px 0px 10px; WIDTH: 230px } #log_both { FLOAT: left; MARGIN: 0px 0px 25px } FORM#login { MARGIN: 0px } A.faux_button { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 4px; BACKGROUND: = url(http://media.collegepublisher.com/media/assets/images/vote.gif) #fff = repeat-x left bottom; PADDING-BOTTOM: 5px; FONT: 12px/12px = arial,sans-serif; BORDER-LEFT: #ccc 1px solid; WIDTH: 75px; COLOR: #666; = PADDING-TOP: 5px; BORDER-BOTTOM: #ccc 1px solid; TEXT-ALIGN: center; = TEXT-DECORATION: none } A.faux_button:hover { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #aaa 1px solid; BACKGROUND: = url(http://media.collegepublisher.com/media/assets/images/click.jpg) = #fff repeat-x left bottom; BORDER-LEFT: #aaa 1px solid; COLOR: #666; = BORDER-BOTTOM: #aaa 1px solid } #poll A { MARGIN: 5px 5px 0px } .hidden { DISPLAY: none } #fplead { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 8px; MARGIN: 0px = 0px 8px; PADDING-TOP: 0px; BORDER-BOTTOM: gray 1px dashed } TD.fparticle { VERTICAL-ALIGN: top; TEXT-ALIGN: left } .lead_right .fparticle { PADDING-RIGHT: 8px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } .lead_center .fparticle { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 8px } .fpimage P { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; MARGIN: = 0px; FONT: 10px/1.1em Arial, Helvetica, sans-serif; PADDING-TOP: 4px } .fpimage IMG { DISPLAY: block } #cpcentercol { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 10px } #fpaio_3 #sidebar IMG { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #aaa 1px solid; BORDER-LEFT: = #aaa 1px solid; BORDER-BOTTOM: #aaa 1px solid } #fp_feat_1 .fp_feat { CLEAR: left; FLOAT: left; MARGIN: 0px 0px 15px } #fp_feat_1 DL { BACKGROUND: #ddd; FLOAT: left; MARGIN: 0px 8px 0px 0px } #fp_feat_1 DD { BACKGROUND: #ddd; FLOAT: left; MARGIN: 0px 8px 0px 0px } #fp_feat_1 DT { BACKGROUND: #ddd; FLOAT: left; MARGIN: 0px 8px 0px 0px } #fp_feat_1 DD { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } #fp_feat_1 DT { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } #fptemplate2 #fplead { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 8px; PADDING-LEFT: 0px; = BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; = VERTICAL-ALIGN: top; PADDING-TOP: 0px; TEXT-ALIGN: left; = BORDER-RIGHT-WIDTH: 0px } #fptemplate2 #fpfeatured { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 8px; PADDING-LEFT: 0px; = BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; = VERTICAL-ALIGN: top; PADDING-TOP: 0px; TEXT-ALIGN: left; = BORDER-RIGHT-WIDTH: 0px } #fptemplate2 #fpfeatured { PADDING-RIGHT: 0px; PADDING-LEFT: 8px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } #fptemplate2 #fpfeatured H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = 0px 4px; FONT: bold 16px/1.1em Arial, Helvetica, sans-serif; = PADDING-TOP: 4px; BORDER-BOTTOM: black 1px solid } #fptemplate2 H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 20px; BACKGROUND: = url(images/digiarrow.gif) no-repeat 0px 5px; PADDING-BOTTOM: 2px; = MARGIN: 0px; FONT: bold 14px/1.1em Arial, Helvetica, sans-serif; = PADDING-TOP: 2px } #fptemplate3 #fplead { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 8px; PADDING-LEFT: 0px; = BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; = VERTICAL-ALIGN: top; PADDING-TOP: 0px; TEXT-ALIGN: left; = BORDER-RIGHT-WIDTH: 0px } #fptemplate3 #fpfeatured { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 8px; PADDING-LEFT: 0px; = BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; = VERTICAL-ALIGN: top; PADDING-TOP: 0px; TEXT-ALIGN: left; = BORDER-RIGHT-WIDTH: 0px } #fptemplate3 #fpfeatured { PADDING-RIGHT: 0px; PADDING-LEFT: 8px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } #fptemplate3 #fpfeatured H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = 0px 4px; FONT: bold 16px/1.1em Arial, Helvetica, sans-serif; = PADDING-TOP: 4px; BORDER-BOTTOM: black 1px solid } #fptemplate3 H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 20px; BACKGROUND: = url(images/digiarrow.gif) no-repeat 0px 5px; PADDING-BOTTOM: 2px; = MARGIN: 0px; FONT: bold 14px/1.1em Arial, Helvetica, sans-serif; = PADDING-TOP: 2px } #fplead H2 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 4px; MARGIN: = 0px; FONT: bold 18px/1.1em Arial, Helvetica, sans-serif; PADDING-TOP: = 0px } #fplead P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0.5em; MARGIN: = 0px; FONT: 11px/1.1em Arial, Helvetica, sans-serif; PADDING-TOP: 0px } #fpfeatured H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 4px; MARGIN: = 0px; FONT: bold 16px/1.1em Arial, Helvetica, sans-serif; PADDING-TOP: = 0px } #fpfeatured P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0.5em; MARGIN: = 0px; FONT: 11px/1.1em Arial, Helvetica, sans-serif; PADDING-TOP: 0px } .article_byline { FONT: 9px/1.1em Arial, Helvetica, sans-serif; COLOR: #666 } .article_byline A .image_byline { FONT: 9px/1.1em Arial, Helvetica, sans-serif; COLOR: #666 } .image_byline A { FONT: 9px/1.1em Arial, Helvetica, sans-serif; COLOR: #666 } #profile_button { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; BACKGROUND: = url(/media/assets/images/profile.gif) repeat-x; PADDING-BOTTOM: 3px; = COLOR: white; PADDING-TOP: 3px } #fplead TD { PADDING-BOTTOM: 25px } .lead_left { MARGIN: 0px 0px 15px; TEXT-ALIGN: left } .lead_right { MARGIN: 0px 0px 15px; TEXT-ALIGN: left } .lead_center { MARGIN: 0px 0px 15px; TEXT-ALIGN: left } .lead_left TD + TD { PADDING-RIGHT: 0px; PADDING-LEFT: 8px; PADDING-BOTTOM: 0px; WIDTH: = 100%; PADDING-TOP: 0px } .lead_right TD { PADDING-RIGHT: 8px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; WIDTH: = 100%; PADDING-TOP: 0px } .lead_center .summary { MARGIN: 0px 0px 25px } .lead_center .fpimage { MARGIN: 0px 0px 8px } #fp_feat H4 { MARGIN: 0px 0px 7px } #fp_feat H5 { MARGIN: 0px 0px 7px } #fp_feat .article_byline { MARGIN: 0px 0px 7px } .article { CLEAR: left; FLOAT: left; MARGIN: 0px 0px 25px; WIDTH: 100% } #fp_feat_1 .summary { MARGIN: 0px 0px 0px 83px } .float_thumbnail { FLOAT: left; MARGIN: 0px 8px 0px 0px; WIDTH: 75px } #fp_feat_2 TD { PADDING-BOTTOM: 25px; WIDTH: 50% } #fp_feat_2 TD + TD { PADDING-RIGHT: 0px; PADDING-LEFT: 15px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } #fp_feat_3 TD { PADDING-BOTTOM: 25px; WIDTH: 33% } #fp_feat_3 TD + TD { PADDING-RIGHT: 0px; PADDING-LEFT: 15px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } #sidebar P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } #sidebar H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } #sidebar H5 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } #sidebar H4 { MARGIN: 0px 0px 5px } #sidebar P { MARGIN: 0px 0px 5px } #sidebar H5 { MARGIN: 0px 0px 5px } #fpaio_3 TD { VERTICAL-ALIGN: top } #fpaio_3 TD + TD { PADDING-RIGHT: 0px; PADDING-LEFT: 15px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } #fpaio_3 .fpimage { MARGIN: 0px 0px 15px } #fpaio_3 #sidebar UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = 0px 15px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } #fpaio_3 #sidebar LI { PADDING-RIGHT: 0px; PADDING-LEFT: 17px; BACKGROUND: = url(http://media.collegepublisher.com/media/images/digiarrow.gif) = no-repeat left 3px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; = LIST-STYLE-TYPE: none } #fpaio_3 .featured { MARGIN: 0px 0px 15px } #fpaio_2 TD { VERTICAL-ALIGN: top } #fpaio_2 TD + TD { PADDING-RIGHT: 0px; PADDING-LEFT: 15px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } #fpaio_2 .fpimage { MARGIN: 0px 0px 15px } #fpaio_2 H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 4px; = PADDING-TOP: 0px; BORDER-BOTTOM: #aaa 1px solid } #fpaio_2 #sidebar UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = 0px 25px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } #fpaio_2 #sidebar LI { PADDING-RIGHT: 0px; PADDING-LEFT: 17px; BACKGROUND: = url(http://media.collegepublisher.com/media/images/digiarrow.gif) = no-repeat left 3px; PADDING-BOTTOM: 0px; LINE-HEIGHT: 1.5em; = PADDING-TOP: 0px; LIST-STYLE-TYPE: none } #fpaio_2 .featured { MARGIN: 0px 0px 15px } #fpaio_1 TD { VERTICAL-ALIGN: top } #fpaio_1 TD + TD { PADDING-RIGHT: 0px; PADDING-LEFT: 15px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } #fpaio_1 .fpimage { MARGIN: 0px 0px 15px } #fpaio_1 .featured { MARGIN: 0px 0px 15px } #article H2 { MARGIN: 0px 0px 7px } #article H4 { MARGIN: 0px 0px 7px } #meta { MARGIN: 0px 0px 7px } #article H3 { MARGIN: 0px 0px 7px; COLOR: #666 } TD.toptd { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: = 0px; BORDER-RIGHT-WIDTH: 0px } .toptd A { COLOR: #666 } #poll { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 5px; BACKGROUND: #eee; PADDING-BOTTOM: 5px; MARGIN: = 15px 5px 0px; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 5px; = BORDER-BOTTOM: #ccc 1px solid; TEXT-ALIGN: left } P#view_results { MARGIN: 5px 0px 0px } #cp_poll_legend { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 4px; = PADDING-TOP: 4px } #cp_poll_legend TD { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; BACKGROUND: white; = PADDING-BOTTOM: 4px; VERTICAL-ALIGN: top; PADDING-TOP: 4px; TEXT-ALIGN: = left } .cp_poll_color DIV { BORDER-RIGHT: #666 1px solid; BORDER-TOP: #666 1px solid; BORDER-LEFT: = #666 1px solid; WIDTH: 1em; BORDER-BOTTOM: #666 1px solid; HEIGHT: 1em } #cp_poll_color_1 { BACKGROUND: #bc0303 } #cp_poll_color_2 { BACKGROUND: #0064d1 } #cp_poll_color_3 { BACKGROUND: #ff9800 } #cp_poll_color_4 { BACKGROUND: #108b00 } #cp_poll_color_5 { BACKGROUND: #6435b1 } #cp_poll_color_6 { BACKGROUND: #0614ca } #cp_poll_color_7 { BACKGROUND: #36c947 } #cp_poll_color_8 { BACKGROUND: #b23da8 } #cp_poll_color_9 { BACKGROUND: #746137 } #cp_poll_color_10 { BACKGROUND: #ec008c } #object9975 { TEXT-ALIGN: center } #object9974 { TEXT-ALIGN: center } #object9973 { TEXT-ALIGN: center } #banner_client_1 { TEXT-ALIGN: center } #banner_network_6 { TEXT-ALIGN: center } #weather { BORDER-RIGHT: #666 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #666 1px = solid; PADDING-LEFT: 1px; BACKGROUND: #fff; PADDING-BOTTOM: 1px; MARGIN: = 0px auto; BORDER-LEFT: #666 1px solid; WIDTH: 120px; PADDING-TOP: 1px; = BORDER-BOTTOM: #666 1px solid } #weatherblock { PADDING-RIGHT: 3px; BORDER-TOP: #ccc 1px solid; PADDING-LEFT: 3px; = PADDING-BOTTOM: 3px; MARGIN: 1px 0px 0px; PADDING-TOP: 3px } .art { MARGIN: 0px 0px 15px } #breadcrumb { FONT-SIZE: 10px; MARGIN: 0px 0px 7px } #breadcrumb A { FONT-SIZE: 10px; MARGIN: 0px 0px 7px } #banner_network_1 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 10px; = PADDING-TOP: 0px } #loggedin_controlbar { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 10px; = PADDING-TOP: 0px } #article { TEXT-ALIGN: left } #article H2 { LINE-HEIGHT: 1.2em } UL#user_art_list_but { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = 0px 15px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } .user_art_list UL { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 15px; = BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: #ccc 1px = solid } .user_art_list STRONG { MARGIN: 0px 0px 5px } .user_art_list LI { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 3px; = PADDING-TOP: 3px; LIST-STYLE-TYPE: none } .user_art_list LI.even { BACKGROUND: #f5f5f5 } .arch_group A { COLOR: #333 } .arch_group { BORDER-TOP: #aaa 1px solid; BORDER-BOTTOM: #aaa 1px solid; TEXT-ALIGN: = left } .arch_group STRONG { DISPLAY: block } .arch_group .evenrow { CLEAR: left; PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: = 0px; PADDING-TOP: 0px } .arch_group .oddrow { CLEAR: left; PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: = 0px; PADDING-TOP: 0px } H2 { LINE-HEIGHT: 1.2em; TEXT-ALIGN: left } H3 { LINE-HEIGHT: 1.2em; TEXT-ALIGN: left } #banner_loc_3 { PADDING-RIGHT: 0px; PADDING-LEFT: 15px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } .textad-container .textad { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 4px; BACKGROUND: #eee; PADDING-BOTTOM: 4px; = BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 4px; BORDER-BOTTOM: #ccc 1px = solid; TEXT-ALIGN: left } .textad-container .textad H1 { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; DISPLAY: block; = PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; = PADDING-BOTTOM: 0px; MARGIN: 0px; FONT: 12px/1.1em Arial, Helvetica, = sans-serif; COLOR: #00f; PADDING-TOP: 0px; BORDER-RIGHT-WIDTH: 0px; = TEXT-DECORATION: underline } .textad-container .textad H1 A { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; DISPLAY: block; = PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; = PADDING-BOTTOM: 0px; MARGIN: 0px; FONT: 12px/1.1em Arial, Helvetica, = sans-serif; COLOR: #00f; PADDING-TOP: 0px; BORDER-RIGHT-WIDTH: 0px; = TEXT-DECORATION: underline } .textad-container .textad P { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; DISPLAY: block; = PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; = PADDING-BOTTOM: 0px; MARGIN: 0px; FONT: 12px/1.1em Arial, Helvetica, = sans-serif; COLOR: #000; PADDING-TOP: 0px; BORDER-RIGHT-WIDTH: 0px; = TEXT-DECORATION: none } .textad-container .textad P A { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; DISPLAY: block; = PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; = PADDING-BOTTOM: 0px; MARGIN: 0px; FONT: 12px/1.1em Arial, Helvetica, = sans-serif; COLOR: #000; PADDING-TOP: 0px; BORDER-RIGHT-WIDTH: 0px; = TEXT-DECORATION: none } .textad-container .textad P.url { COLOR: #3f9f3f; TEXT-DECORATION: none } .textad-container .textad P.url A { COLOR: #3f9f3f; TEXT-DECORATION: none } .textad-container .caption A { FONT: 10px/1.1em Arial, Helvetica, sans-serif; COLOR: #999 } #flan_article_top { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; = PADDING-BOTTOM: 0px! important; MARGIN: 0px 0px 15px; PADDING-TOP: 10px! = important; BORDER-BOTTOM: #ccc 1px solid } #flan_article_top UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } #flan_article_tools UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } #flan_article_bottom UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } #flan_article_bottom { MARGIN: 15px 0px } #flan_article_top UL { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; = PADDING-BOTTOM: 0px! important; MARGIN: 0px; PADDING-TOP: 0px! important } #flan_article_top LI { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; FONT-SIZE: = 11px; PADDING-BOTTOM: 0px! important; MARGIN: 0px; LINE-HEIGHT: 17px; = PADDING-TOP: 0px! important; LIST-STYLE-TYPE: none } #flan_article_bottom LI { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; FONT-SIZE: = 11px; PADDING-BOTTOM: 0px! important; MARGIN: 0px; LINE-HEIGHT: 17px; = PADDING-TOP: 0px! important; LIST-STYLE-TYPE: none } #flan_story_bot_nav { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; FONT-SIZE: = 11px; PADDING-BOTTOM: 0px! important; MARGIN: 0px; LINE-HEIGHT: 17px; = PADDING-TOP: 0px! important; LIST-STYLE-TYPE: none } #flan_article_top LI A { COLOR: #333333! important } #flan_article_bottom LI A { COLOR: #333333! important } #flan_story_bot_nav A { COLOR: #333333! important } #flan_article_top LI A:hover { COLOR: #000000! important } #flan_article_bottom A:hover { COLOR: #000000! important } #flan_article_top_left { FLOAT: left; WIDTH: 230px } #flan_article_top_left LI { DISPLAY: inline; MARGIN: 0px 5px 0px 0px } #flan_article_top_right { FLOAT: right; WIDTH: 190px; TEXT-ALIGN: right } #flan_article_bottom_right { FLOAT: right; WIDTH: 190px; TEXT-ALIGN: right } LI#flan_article_discuss A { PADDING-RIGHT: 0px; PADDING-LEFT: 17px; BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/discuss.gif) = no-repeat left -1px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px } LI#flan_article_print A { PADDING-RIGHT: 0px; PADDING-LEFT: 17px; BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/print.gif) = no-repeat left 50%; PADDING-BOTTOM: 0px; PADDING-TOP: 0px } LI#flan_article_email A { PADDING-RIGHT: 0px; PADDING-LEFT: 17px; BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/email.gif) = no-repeat left 50%; PADDING-BOTTOM: 0px; PADDING-TOP: 0px } LI#flan_article_more A { PADDING-RIGHT: 0px; PADDING-LEFT: 17px; BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/down.gif) = no-repeat left 50%; PADDING-BOTTOM: 0px; PADDING-TOP: 0px } LI#flan_article_blog A { BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/blogger.gif) = no-repeat left 50% } LI#flan_article_live A { BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/livejournal.gif)= no-repeat left 50% } LI#flan_article_digg A { BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/digg.gif) = no-repeat left 50% } LI#flan_article_news A { BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/newsvine.gif) = no-repeat left 50% } LI#flan_article_deli A { BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/delicious.gif) = no-repeat left 50% } LI#flan_article_yaho A { BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/yahoo.gif) = no-repeat left 50% } LI#flan_article_goog A { BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/google.gif) = no-repeat left 0px } LI.flan_article_page DIV { PADDING-RIGHT: 0px; PADDING-LEFT: 17px; BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/page.gif) = no-repeat left center; FLOAT: right; PADDING-BOTTOM: 0px; PADDING-TOP: = 0px } #flan_story_text { MARGIN: 0px 0px 15px } #flan_article_tools { BORDER-TOP: #ccc 1px solid; BACKGROUND: #f5f5f5; MARGIN: 0px 0px 25px } P.flan_article_more_tools { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; = FONT-WEIGHT: bold! important; FONT-SIZE: 12px! important; = PADDING-BOTTOM: 0px! important; MARGIN: 0px; PADDING-TOP: 0px! important } P.flan_article_tools_header { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; = FONT-WEIGHT: bold! important; FONT-SIZE: 11px; PADDING-BOTTOM: 0px! = important; MARGIN: 0px 0px 8px; PADDING-TOP: 0px! important } #flan_article_tools .flan_article_gutter { PADDING-RIGHT: 5px! important; PADDING-LEFT: 5px! important; = PADDING-BOTTOM: 5px! important; PADDING-TOP: 5px! important } #flan_article_tools UL { PADDING-RIGHT: 0px! important; DISPLAY: inline! important; = PADDING-LEFT: 0px! important; PADDING-BOTTOM: 0px! important; MARGIN: = 0px; PADDING-TOP: 0px! important; LIST-STYLE-TYPE: none! important } #flan_article_tools LI { PADDING-RIGHT: 0px! important; DISPLAY: inline! important; = PADDING-LEFT: 0px! important; PADDING-BOTTOM: 0px! important; MARGIN: = 0px; PADDING-TOP: 0px! important; LIST-STYLE-TYPE: none! important } #flan_article_tools LI A { PADDING-RIGHT: 0px! important; DISPLAY: inline! important; = PADDING-LEFT: 17px! important; FONT-SIZE: 10px! important; = PADDING-BOTTOM: 3px! important; MARGIN: 0px 3px 0px 0px; PADDING-TOP: = 3px! important } #flan_article_tools LI A { DISPLAY: inline! important; FONT-SIZE: 10px! important } #flan_article_tools_book { MARGIN: 0px 0px 0px 85px; BORDER-LEFT: #fff 1px solid } #flan_article_tools_blog { FLOAT: left! important; WIDTH: 85px! important } #flan_article_tools_rss { FLOAT: right! important; BORDER-LEFT: #fff 1px solid; WIDTH: 150px! = important } #flan_story_bot_nav { MARGIN: 0px 0px 15px; TEXT-ALIGN: right } #flan_continued { FONT-SIZE: 11px; MARGIN: 0px 0px 15px; LINE-HEIGHT: 17px } * HTML #flan_article_tools { HEIGHT: 47px } #cp_article_top { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; = PADDING-BOTTOM: 0px! important; MARGIN: 0px 0px 15px; PADDING-TOP: 10px! = important; BORDER-BOTTOM: #ccc 1px solid } #cp_article_top UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } #cp_article_tools UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } #cp_article_bottom UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } #cp_article_bottom { MARGIN: 15px 0px } #cp_article_top UL { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; = PADDING-BOTTOM: 0px! important; MARGIN: 0px; PADDING-TOP: 0px! important } #cp_article_top LI { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; FONT-SIZE: = 11px; PADDING-BOTTOM: 0px! important; MARGIN: 0px; LINE-HEIGHT: 17px; = PADDING-TOP: 0px! important; LIST-STYLE-TYPE: none } #cp_article_bottom LI { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; FONT-SIZE: = 11px; PADDING-BOTTOM: 0px! important; MARGIN: 0px; LINE-HEIGHT: 17px; = PADDING-TOP: 0px! important; LIST-STYLE-TYPE: none } #cp_story_bot_nav { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; FONT-SIZE: = 11px; PADDING-BOTTOM: 0px! important; MARGIN: 0px; LINE-HEIGHT: 17px; = PADDING-TOP: 0px! important; LIST-STYLE-TYPE: none } #cp_article_top LI A { COLOR: #333333! important } #cp_article_bottom LI A { COLOR: #333333! important } #cp_story_bot_nav A { COLOR: #333333! important } #cp_article_top LI A:hover { COLOR: #000000! important } #cp_article_bottom A:hover { COLOR: #000000! important } #cp_article_top_left { FLOAT: left; WIDTH: 60% } #cp_article_top_left LI { DISPLAY: inline; MARGIN: 0px 5px 0px 0px } #cp_article_top_right { FLOAT: right; WIDTH: 190px; TEXT-ALIGN: right } #cp_article_bottom_right { FLOAT: right; WIDTH: 190px; TEXT-ALIGN: right } LI#cp_article_discuss A { PADDING-RIGHT: 0px; PADDING-LEFT: 17px; BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/discuss.gif) = no-repeat left -1px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px } LI#cp_article_print A { PADDING-RIGHT: 0px; PADDING-LEFT: 17px; BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/print.gif) = no-repeat left 50%; PADDING-BOTTOM: 0px; PADDING-TOP: 0px } LI#cp_article_email A { PADDING-RIGHT: 0px; PADDING-LEFT: 17px; BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/email.gif) = no-repeat left 50%; PADDING-BOTTOM: 0px; PADDING-TOP: 0px } LI#cp_article_more A { PADDING-RIGHT: 0px; PADDING-LEFT: 17px; BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/down.gif) = no-repeat left 50%; PADDING-BOTTOM: 0px; PADDING-TOP: 0px } #cp_article_tools { MARGIN: 1em 0px 25px } #cp_article_tools H4 { MARGIN: 0px } #cp_article_tools H5 { FONT-SIZE: 11px; MARGIN: 0px } #cp_at_content { PADDING-RIGHT: 0px; BORDER-TOP: #ccc 1px solid; PADDING-LEFT: 0px; = BACKGROUND: = url(http://media.collegepublisher.com/media/assets/images/article_bkg.gif= ) #f5f5f5 repeat-x right bottom; PADDING-BOTTOM: 7px; PADDING-TOP: 5px } #cp_at_share { PADDING-RIGHT: 0px; PADDING-LEFT: 5px; FLOAT: left; PADDING-BOTTOM: = 0px; WIDTH: 70%; PADDING-TOP: 0px } #cp_at_rss { PADDING-RIGHT: 0px; PADDING-LEFT: 5px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } #cp_article_tools #cp_at_content UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } #cp_at_content LI { DISPLAY: inline; MARGIN: 0px 8px 0px 0px; LIST-STYLE-TYPE: none } #cp_at_content LI A { PADDING-RIGHT: 0px; PADDING-LEFT: 17px; FONT-SIZE: 10px; = PADDING-BOTTOM: 3px; PADDING-TOP: 3px } LI#cp_at_blog A { BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/blogger.gif) = no-repeat left 50% } LI#cp_at_facebook A { BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/facebook.gif) = no-repeat left 50% } LI#cp_at_live A { BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/livejournal.gif)= no-repeat left 50% } LI#cp_at_digg A { BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/digg.gif) = no-repeat left 50% } LI#cp_at_news A { BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/newsvine.gif) = no-repeat left 50% } LI#cp_at_deli A { BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/delicious.gif) = no-repeat left 50% } LI#cp_at_yaho A { BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/yahoo.gif) = no-repeat left 50% } LI#cp_at_goog A { BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/google.gif) = no-repeat left 0px } #net_bar * { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; TEXT-ALIGN: left } #net_bar A { outline: none } #net_bar A:active { outline: none } :focus { -moz-outline-style: none } #net_bar UL { LIST-STYLE-TYPE: none } #net_bar LI { LIST-STYLE-TYPE: none } #net_bar FIELDSET { BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: = none; BORDER-BOTTOM-STYLE: none } .hide { DISPLAY: none } .show { DISPLAY: block } #net_bar { BACKGROUND: #e0e0e0; FONT: 12px/1em Trebuchet MS, arial, verdana, = sans-serif; BORDER-BOTTOM: #7d87a2 1px solid; HEIGHT: 33px } #net_cp_a { Z-INDEX: 2; LEFT: 5px; WIDTH: 165px; TEXT-INDENT: -1000px; LINE-HEIGHT: = 26px; POSITION: absolute; TOP: 4px; HEIGHT: 26px } #net_cp_a A { DISPLAY: block; BACKGROUND: = url(http://media.collegepublisher.com/media/images/net_cp2.gif) = no-repeat left top; WIDTH: 165px; TEXT-INDENT: -1000px; LINE-HEIGHT: = 26px; HEIGHT: 26px } #net_cp_a A:hover { BACKGROUND-POSITION: 0px -26px } .unselected#net_cp_a A:hover { BACKGROUND-POSITION: 0px -26px } .selected#net_cp_a A { BACKGROUND-POSITION: 0px -52px } .selected#net_cp_a A:hover { BACKGROUND-POSITION: 0px -52px } #net_cp_a A:active { BACKGROUND-POSITION: 0px -52px } .unselected#net_cp_a A { BACKGROUND-POSITION: 0px 0px } #net_cp_nav_list { Z-INDEX: 1; LEFT: 5px; POSITION: absolute; TOP: 28px } UL#net_cp_nav_list { BORDER-RIGHT: #7d87a2 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #7d87a2 1px solid; PADDING-LEFT: 5px; BACKGROUND: #fff; PADDING-BOTTOM: = 3px; BORDER-LEFT: #7d87a2 1px solid; WIDTH: 225px; PADDING-TOP: 5px; = BORDER-BOTTOM: #7d87a2 1px solid; LIST-STYLE-TYPE: none } UL#net_cp_nav_list LI A { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #ccc 1px = solid; DISPLAY: block; PADDING-LEFT: 5px; BACKGROUND: #f5f5f5; = PADDING-BOTTOM: 5px; MARGIN: 0px 0px 5px; FONT: 12px/1em Trebuchet MS, = arial, verdana, sans-serif; BORDER-LEFT: #ccc 1px solid; COLOR: #666; = PADDING-TOP: 5px; BORDER-BOTTOM: #ccc 1px solid; TEXT-DECORATION: none } UL#net_cp_nav_list LI A:hover { BACKGROUND: #fff; COLOR: #303030 } #net_search { VISIBILITY: visible } #net_search_input { FONT-SIZE: 12px; LEFT: 180px; WIDTH: 125px; POSITION: absolute; TOP: = 7px } #net_search_choose_link { Z-INDEX: 2; LEFT: 313px; WIDTH: 16px; TEXT-INDENT: -1000px; = LINE-HEIGHT: 22px; POSITION: absolute; TOP: 6px; HEIGHT: 23px } #net_search_choose_link A { DISPLAY: block; BACKGROUND: = url(http://media.collegepublisher.com/media/images/dropdown.png) = no-repeat left top; WIDTH: 16px; TEXT-INDENT: -1000px; LINE-HEIGHT: = 22px; HEIGHT: 22px } #net_search_choose_link A:hover { BACKGROUND-POSITION: 0px -22px } #net_bar .unselected#net_search_choose_link A:hover { BACKGROUND-POSITION: 0px -22px } #net_bar .selected#net_search_choose_link A { BACKGROUND-POSITION: 0px -44px } #net_bar .selected#net_search_choose_link A:hover { BACKGROUND-POSITION: 0px -44px } #net_bar #net_search_choose_link A:active { BACKGROUND-POSITION: 0px -44px } #net_bar .unselected#net_search_choose_link A { BACKGROUND-POSITION: 0px 0px } #net_search_choose_options { Z-INDEX: 1; LEFT: 313px; POSITION: absolute; TOP: 25px } UL#net_search_choose_options { BORDER-RIGHT: #7d87a2 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #7d87a2 1px solid; PADDING-LEFT: 5px; BACKGROUND: #fff; PADDING-BOTTOM: = 0px; BORDER-LEFT: #7d87a2 1px solid; WIDTH: 175px; PADDING-TOP: 5px; = BORDER-BOTTOM: #7d87a2 1px solid; LIST-STYLE-TYPE: none } UL#net_search_choose_options LI { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; MARGIN: 0px 0px 5px; = FONT: 12px/1em Trebuchet MS, arial, verdana, sans-serif; BORDER-LEFT: = #ccc 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: #ccc 1px solid } #net_search_choose_submit { Z-INDEX: 2; BACKGROUND: = url(http://media.collegepublisher.com/media/images/button_bg.png) = no-repeat right top; LEFT: 329px; OVERFLOW: hidden; POSITION: absolute; = TOP: 6px } #net_search_choose_submit A { MARGIN: 0px 6px 0px 4px; FONT: 11px/21px Trebuchet MS, arial, verdana, = sans-serif; COLOR: #333; TEXT-DECORATION: none } #net_channels { RIGHT: 200px; WIDTH: 375px; POSITION: absolute; TOP: 12px } #net_channels { WIDTH: auto } #net_channels UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } #net_channels LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: = url(http://media.collegepublisher.com/media/images/nav_right_1.png) = no-repeat right top; FLOAT: left; PADDING-BOTTOM: 0px; MARGIN: 0px 0px = 0px 2px; PADDING-TOP: 0px } #net_channels A { PADDING-RIGHT: 4px; DISPLAY: block; PADDING-LEFT: 4px; BACKGROUND: = url(http://media.collegepublisher.com/media/images/nav_left_1.png) = no-repeat left top; FLOAT: left; PADDING-BOTTOM: 4px; FONT: 11px/1em = Trebuchet MS, arial, verdana, sans-serif; COLOR: #303030; PADDING-TOP: = 4px; TEXT-DECORATION: none } #net_channels A { FLOAT: none } UL#net_cp_nav_list LI { MARGIN: 0px 0px -3px; HEIGHT: 1% } #net_weather { RIGHT: 0px; POSITION: absolute; TOP: 1px } #flan_pods H2 { MARGIN: 0px 0px 1em } #flan_pods .flan_pods_channels { MARGIN: 0px 0px 1em } #flan_pods .flan_pods_gutter { PADDING-RIGHT: 10px; PADDING-LEFT: 10px; BACKGROUND: #f5f5f5; = PADDING-BOTTOM: 10px; PADDING-TOP: 10px } #flan_pods UL { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; = PADDING-BOTTOM: 0px! important; MARGIN: 0px; PADDING-TOP: 0px! important } #flan_pods UL LI { LIST-STYLE-POSITION: outside; LIST-STYLE-TYPE: none } #flan_pods H3 { MARGIN: 0px 0px 0.5em } #flan_pods H5 { FONT-SIZE: 10px; MARGIN: 0px 0px 3px; TEXT-TRANSFORM: uppercase; COLOR: = #999; BORDER-BOTTOM: #999 1px solid } #flan_pods IMG { BORDER-RIGHT: #d8d8d8 1px solid; BORDER-TOP: #d8d8d8 1px solid; FLOAT: = right; MARGIN: 0px 0em 1em 1em; BORDER-LEFT: #d8d8d8 1px solid; = BORDER-BOTTOM: #d8d8d8 1px solid } .flan_pods_info { CLEAR: both; MARGIN: 0px 0px 1em } .flan_pods_tracklist { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } .flan_pods_list_even { BACKGROUND: #edf3fe } .flan_pods_list_odd { BACKGROUND: #fff } .flan_pods_list_odd:hover { BACKGROUND: #ffc } .flan_pods_list_even:hover { BACKGROUND: #ffc } .flan_pods_tracklist LI { PADDING-RIGHT: 10px; DISPLAY: block; PADDING-LEFT: 10px; = PADDING-BOTTOM: 8px; PADDING-TOP: 10px } .flan_pods_tracklist LI P.flan_pods_title { DISPLAY: inline; FLOAT: left; MARGIN: 0px; LINE-HEIGHT: 17px } .flan_pods_tracklist LI P.flan_pods_description { FONT-SIZE: 0.9em; MARGIN: 0.5em 0px 0px } A.flan_pods_listen { DISPLAY: block; BACKGROUND: = url(http://media.collegepublisher.com/media/assets/images/podcast.gif) = no-repeat left top; FLOAT: right; MARGIN: 0px; WIDTH: 37px; TEXT-INDENT: = -1000em; HEIGHT: 17px } A.flan_pods_listen:hover { BACKGROUND-POSITION: left bottom } .flan_pods_channels .more { FONT-SIZE: 1.2em; MARGIN: 0.5em 0px 0px; TEXT-ALIGN: right } .flan_pods_channels .more A { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; = LINE-HEIGHT: 1.2em; PADDING-TOP: 5px } .flan_pods_subscription_links { TEXT-ALIGN: right } .flan_pods_subscription_links LI { DISPLAY: inline; MARGIN: 0px 10px 0px 0px } .flan_pods_subscription_links LI A { PADDING-RIGHT: 0px; PADDING-LEFT: 17px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } .flan_pods_rss A { BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/rss11.gif) = no-repeat left center } .flan_pods_m3u A { BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/plus.gif) = no-repeat left center } .flan_pods_rss_itunes A { BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/podcast_icon_ori= ginal.png) no-repeat left center } .flan_pods_subscription_links LI.flan_pods_xspf { MARGIN: 0px } .flan_pods_xspf A { BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/plus.gif) = no-repeat left center } .flan_pods_all A { BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/arrow_right.gif)= no-repeat left center } HTML > BODY .flan_pods_tracklist LI P.flan_pods_title { FLOAT: none } #flan_ads { FLOAT: right; WIDTH: 300px } .box { CLEAR: both; MARGIN: 0px 0px 10px; WIDTH: 300px } #flan_ads .cp_ad { CLEAR: both; MARGIN: 0px 0px 10px; WIDTH: 300px } #flan_ads .content .gutter { PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; = PADDING-TOP: 10px } #flan_ads .gutter P { MARGIN: 0px 0px 10px } #advertisements { MARGIN: 0px 0px 10px } #flan_ads .content { CLEAR: both; BORDER-RIGHT: #d8d8d8 1px solid; BORDER-TOP: #d8d8d8 1px = solid; MARGIN: 0px 0px 10px; FONT: 90%/1.2em arial, verdana, sans-serif; = BORDER-LEFT: #d8d8d8 1px solid; BORDER-BOTTOM: #d8d8d8 1px solid } #advertisements { CLEAR: both; BORDER-RIGHT: #d8d8d8 1px solid; BORDER-TOP: #d8d8d8 1px = solid; MARGIN: 0px 0px 10px; FONT: 90%/1.2em arial, verdana, sans-serif; = BORDER-LEFT: #d8d8d8 1px solid; BORDER-BOTTOM: #d8d8d8 1px solid } #flan_ads .content_300 { CLEAR: both; MARGIN: 0px 0px 10px; FONT: 90%/1.2em arial, verdana, = sans-serif } #advertisements { CLEAR: both; MARGIN: 0px 0px 10px; FONT: 90%/1.2em arial, verdana, = sans-serif } #flan_ads .content H4 { PADDING-RIGHT: 3px; PADDING-LEFT: 7px; BACKGROUND: #f5f5f5; = PADDING-BOTTOM: 3px; FONT: 14px/1em arial, verdana, sans-serif; = TEXT-TRANSFORM: uppercase; COLOR: #333333; PADDING-TOP: 3px; = BORDER-BOTTOM: #d8d8d8 1px solid } #advertisements H4 { PADDING-RIGHT: 3px; PADDING-LEFT: 7px; BACKGROUND: #f5f5f5; = PADDING-BOTTOM: 3px; FONT: 14px/1em arial, verdana, sans-serif; = TEXT-TRANSFORM: uppercase; COLOR: #333333; PADDING-TOP: 3px; = BORDER-BOTTOM: #d8d8d8 1px solid } #flan_ads .content A { COLOR: #333; BORDER-BOTTOM: #ccc 1px solid; TEXT-DECORATION: none } #flan_ads .content A:hover { BACKGROUND: #ffc } #flan_ads .content OL { LIST-STYLE-POSITION: inside } #flan_ads .content OL LI { MARGIN: 0px 0px 5px; LINE-HEIGHT: 1.2em } #box_120_240 { BACKGROUND: #f5f5f5 } #box_120_240 .banner { BORDER-RIGHT: #fff 10px solid; FLOAT: left; MARGIN: 0px 10px 0px 0px; = WIDTH: 120px } #box_120_600_loc .banner { BORDER-RIGHT: #fff 10px solid; FLOAT: left; MARGIN: 0px 10px 0px 0px; = WIDTH: 120px } #box_120_600 { BACKGROUND: #f5f5f5 } #box_120_600 .banner { BORDER-RIGHT: #fff 10px solid; FLOAT: left; MARGIN: 0px 10px 0px 0px; = WIDTH: 120px } #box_120_600_loc .banner { BORDER-RIGHT: #fff 10px solid; FLOAT: left; MARGIN: 0px 10px 0px 0px; = WIDTH: 120px } #box_160_600 { BACKGROUND: #f5f5f5 } #box_160_600 .banner { BORDER-RIGHT: #fff 10px solid; FLOAT: left; MARGIN: 0px 10px 0px 0px; = WIDTH: 160px } #box_160_600_loc .banner { BORDER-RIGHT: #fff 10px solid; FLOAT: left; MARGIN: 0px 10px 0px 0px; = WIDTH: 160px } #advertisements * { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } #advertisements H4 { MARGIN: 0px 0px 10px } #advertisements { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 10px; WIDTH: 298px; PADDING-TOP: 0px } #advertisements .left { BORDER-RIGHT: #e1e1e1 1px solid; FLOAT: left; WIDTH: 150px; TEXT-ALIGN: = center } #advertisements .right { TEXT-ALIGN: center } #flan_ads .content * { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } #flan_nav .content * { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } #flan_ads .content FORM { PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; MARGIN: = 0px; PADDING-TOP: 10px } #flan_ads .content DIV { MARGIN: 0px 0px 5px } #flan_ads .pollquestionstyle { FONT: bold 13px/1.2em arial, verdana, sans-serif } #flan_ads .content_answers { FONT-SIZE: 11px; MARGIN: 7px 0px 0px } #flan_ads .content_answers DIV { MARGIN: 0px 0px 7px } #flan_ads .content A.faux_button { PADDING-RIGHT: 3px; DISPLAY: block; PADDING-LEFT: 3px; PADDING-BOTTOM: = 3px; MARGIN: 7px 0px 0px; PADDING-TOP: 3px } #flan_ads .content P#view_results { MARGIN: 7px 0px 0px } #flan_content UL { MARGIN: 1em } #dn_content UL { MARGIN: 1em } #flan_content OL { MARGIN: 1em } #dn_content OL { MARGIN: 1em } #flan_content P { MARGIN: 0px 0px 1em } #dn_content P { MARGIN: 0px 0px 1em } #flan_text_ads * { MARGIN: 0px } #flan_text_ads { BORDER-RIGHT: #999999 1px solid; BORDER-TOP: #999999 1px solid; MARGIN: = 0px 0px 10px; BORDER-LEFT: #999999 1px solid; BORDER-BOTTOM: #999999 1px = solid } .flan_text_ad { BORDER-BOTTOM: #d8d8d8 1px solid } .flan_text_ad_title { COLOR: blue; TEXT-DECORATION: underline } .flan_text_ad_action { COLOR: blue } .flan_text_ad A { PADDING-RIGHT: 5px! important; DISPLAY: block; PADDING-LEFT: 5px! = important; BACKGROUND: #fff; PADDING-BOTTOM: 5px! important; = PADDING-TOP: 5px! important } .flan_text_ad A:hover { BACKGROUND: #f5f5f5 } .flan_text_ad_bar { PADDING-RIGHT: 3px! important; PADDING-LEFT: 3px! important; FONT-SIZE: = 0.9em! important; BACKGROUND: #d8d8d8; PADDING-BOTTOM: 3px! important; = PADDING-TOP: 3px! important; TEXT-ALIGN: center! important } .flan_comment { BACKGROUND: #edf3fe; MARGIN: 0px 0px 0.5em; OVERFLOW: auto } .flan_comment_response { BACKGROUND: #f5f5f5; MARGIN: 0px 0px 0.5em } .flan_comment_response BLOCKQUOTE { BORDER-RIGHT: #ffcc33 1px solid; PADDING-RIGHT: 10px; BORDER-TOP: = #ffcc33 1px solid; PADDING-LEFT: 10px; BACKGROUND: #ffff99; = PADDING-BOTTOM: 10px; MARGIN: 0px 0px 1em; BORDER-LEFT: #ffcc33 1px = solid; PADDING-TOP: 10px; BORDER-BOTTOM: #ffcc33 1px solid } .flan_comment_gutter { PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; = PADDING-TOP: 10px } .flan_comment_body { MARGIN: 0px 0px 1em } .flan_comment_reply { TEXT-ALIGN: right } .flan_comment_read { TEXT-ALIGN: right } .flan_comment_reply A { PADDING-RIGHT: 0px; PADDING-LEFT: 13px; BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/plus.gif) = no-repeat left center; PADDING-BOTTOM: 0px; PADDING-TOP: 0px } .flan_comment_post A { PADDING-RIGHT: 0px; PADDING-LEFT: 13px; BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/plus.gif) = no-repeat left center; PADDING-BOTTOM: 0px; PADDING-TOP: 0px } .flan_comment_article A { PADDING-RIGHT: 0px; PADDING-LEFT: 12px; BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/page.gif) = no-repeat left center; PADDING-BOTTOM: 0px; PADDING-TOP: 0px } .flan_comment_all A { PADDING-RIGHT: 0px; PADDING-LEFT: 12px; BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/arrow_right.gif)= no-repeat left center; PADDING-BOTTOM: 0px; PADDING-TOP: 0px } .flan_comment_read A { PADDING-RIGHT: 0px; PADDING-LEFT: 12px; BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/arrow_right.gif)= no-repeat left center; PADDING-BOTTOM: 0px; PADDING-TOP: 0px } UL.flan_comment_nav { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; = PADDING-BOTTOM: 0px! important; MARGIN: 0px 0px 1em; PADDING-TOP: 0px! = important } #maincontent UL.flan_comment_nav { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; = PADDING-BOTTOM: 0px! important; MARGIN: 0px 0px 1em; PADDING-TOP: 0px! = important } UL.flan_comment_nav LI.previous { PADDING-RIGHT: 0px; PADDING-LEFT: 13px; BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/minus.gif) = no-repeat left center; PADDING-BOTTOM: 0px; PADDING-TOP: 0px } UL.flan_comment_nav LI.next { PADDING-RIGHT: 0px; PADDING-LEFT: 13px; BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/plus.gif) = no-repeat left center; LEFT: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; = POSITION: relative; TEXT-ALIGN: right } .flan_comment_nav LI { DISPLAY: inline; MARGIN: 0px 1em 0px 0px } .flan_comment_valid_img { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0.5em; = PADDING-TOP: 0px } .flan_comment_valid FIELDSET { BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: = none; BORDER-BOTTOM-STYLE: none } .flan_comment_valid LABEL { DISPLAY: block; MARGIN: 0px 0px 0.5em } .flan_comment_valid INPUT { DISPLAY: block; MARGIN: 0px 0px 0.5em } .flan_disabled { COLOR: #999 } .post_comment_button { MARGIN: 1.5em 0px; TEXT-ALIGN: center } .post_comment_no { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; BACKGROUND: #cc0000; = PADDING-BOTTOM: 2px; MARGIN: 0px 0px 1.5em; COLOR: #fff; PADDING-TOP: = 2px } .post_comment_no A { COLOR: #fff! important; TEXT-DECORATION: underline } .cpfooter { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 80%; PADDING-BOTTOM: = 2em; PADDING-TOP: 2em } UL.flan_breadcrumb { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; = PADDING-BOTTOM: 0px! important; MARGIN: 0px 0px 1em; PADDING-TOP: 0px! = important; LIST-STYLE-TYPE: none } .flan_breadcrumb LI { DISPLAY: inline; FONT-SIZE: 0.9em; MARGIN: 0px 1px 0px 0px } .flan_breadcrumb LI.flan_breadcrumb_parent { DISPLAY: inline; BACKGROUND: url(/media/assets/icons/arrow_right.gif) = no-repeat left center } .flan_breadcrumb LI { DISPLAY: inline; BACKGROUND: = url(/media/assets/icons/arrow_right_light.gif) no-repeat left center } #flan_syndication_feeds LI { LIST-STYLE-TYPE: none } .flan_rss { PADDING-RIGHT: 0px; PADDING-LEFT: 14px; BACKGROUND: = url(/media/assets/icons/rss11.gif) no-repeat left center; = PADDING-BOTTOM: 0px; PADDING-TOP: 0px } .flan_article_clear { CLEAR: both } .flan_clear { CLEAR: both } .cp_clear { CLEAR: both } .cp_article_clear { CLEAR: both } .flan_clear_auto:unknown { CLEAR: both; DISPLAY: block; VISIBILITY: hidden; HEIGHT: 0px; content: = "." } .cp_clear:unknown { CLEAR: both; DISPLAY: block; VISIBILITY: hidden; HEIGHT: 0px; content: = "." } .flan_clear_auto { DISPLAY: inline-block } .cp_clear { DISPLAY: inline-block } .flan_clear_auto { DISPLAY: block } .cp_clear { DISPLAY: block } * HTML .flan_clear_auto { HEIGHT: 1% } * HTML .cp_clear { HEIGHT: 1% } .cp_light { COLOR: #999999 } .cp_light P { COLOR: #999999 } .cp_small { FONT-SIZE: 0.9em; LINE-HEIGHT: 1.4em } .cp_small P { FONT-SIZE: 0.9em; LINE-HEIGHT: 1.4em } .cp_medium { FONT-SIZE: 1em; LINE-HEIGHT: 1.4em } .cp_medium P { FONT-SIZE: 1em; LINE-HEIGHT: 1.4em } .cp_large { FONT-SIZE: 1.3em; LINE-HEIGHT: 1.4em } .cp_large P { FONT-SIZE: 1.3em; LINE-HEIGHT: 1.4em } .cp_rss { PADDING-RIGHT: 0px; PADDING-LEFT: 14px; BACKGROUND: = url(/media/assets/icons/rss11.gif) no-repeat left center; = PADDING-BOTTOM: 0px; PADDING-TOP: 0px } .cp_table { BORDER-RIGHT: #d8d8d8 1px solid; BORDER-TOP: #d8d8d8 1px solid; MARGIN: = 0px 0px 1em; BORDER-LEFT: #d8d8d8 1px solid; WIDTH: 100%; BORDER-BOTTOM: = #d8d8d8 1px solid } .cp_table TH { PADDING-RIGHT: 7px; PADDING-LEFT: 7px; BACKGROUND: #cccccc; = PADDING-BOTTOM: 7px; PADDING-TOP: 7px; TEXT-ALIGN: left } .cp_table TD { PADDING-RIGHT: 7px; PADDING-LEFT: 7px; PADDING-BOTTOM: 7px; = PADDING-TOP: 7px } .cp_table P { MARGIN: 0px 0px 0.5em } .cp_even { BACKGROUND: #f5f5f5 } .cp_odd { BACKGROUND: #edf3fe } BLOCKQUOTE { BORDER-RIGHT: #d8d8d8 1px solid; PADDING-RIGHT: 10px; BORDER-TOP: = #d8d8d8 1px solid; PADDING-LEFT: 10px; BACKGROUND: #ffffff; = PADDING-BOTTOM: 10px; MARGIN: 0px 0px 1em; BORDER-LEFT: #d8d8d8 1px = solid; PADDING-TOP: 10px; BORDER-BOTTOM: #d8d8d8 1px solid } BLOCKQUOTE EM { DISPLAY: block; FONT-WEIGHT: bold; MARGIN: 0px 0px 0.3em; = BORDER-BOTTOM: #e9e9e9 1px solid } .cp_left_right { MARGIN: 0px 0px 1em } .cp_left { FLOAT: left } .cp_right { FLOAT: right } .callout_left { FLOAT: left; MARGIN: 0px 1em 1em 0px; WIDTH: 33% } .callout_right { FLOAT: right; MARGIN: 0px 0px 1em 1em; WIDTH: 33% } A.cp_reply { PADDING-RIGHT: 0px; PADDING-LEFT: 13px; BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/plus.gif) = no-repeat left center; PADDING-BOTTOM: 0px; PADDING-TOP: 0px } .cp_warn { PADDING-RIGHT: 5px; PADDING-LEFT: 27px; BACKGROUND: = url(/media/assets/icons/alert.gif) #ffff99 no-repeat 5px 4px; = PADDING-BOTTOM: 5px; MARGIN: 0px 0px 1em; FONT: 1em/1.2em arial, = verdana, sans-serif; PADDING-TOP: 5px } .cp_warn STRONG { COLOR: #af0000! important } .cp_warn P { MARGIN: 0px; COLOR: #000000! important } .cp_alert { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; BACKGROUND: #ffff99; = PADDING-BOTTOM: 5px; MARGIN: 0px 0px 1em; FONT: 1em/1.2em arial, = verdana, sans-serif; COLOR: #af0000; PADDING-TOP: 5px } .cp_hide { DISPLAY: none } .cp_forum_trail { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; = PADDING-BOTTOM: 0px! important; MARGIN: 0px 0px 1em; PADDING-TOP: 0px! = important } .cp_forum_trail LI { DISPLAY: inline; FONT-SIZE: 1.2em } .cp_forum_trail LI.cp_forum_trail_parent { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: none transparent = scroll repeat 0% 0%; PADDING-BOTTOM: 0px; PADDING-TOP: 0px } .cp_form FIELDSET { BORDER-RIGHT: #d8d8d8 1px solid; PADDING-RIGHT: 10px; BORDER-TOP: = #d8d8d8 1px solid; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; MARGIN: 0px = 0px 1em; BORDER-LEFT: #d8d8d8 1px solid; PADDING-TOP: 5px; = BORDER-BOTTOM: #d8d8d8 1px solid } .cp_form LEGEND { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 0px; MARGIN: 0px 0px 0px 15px; COLOR: #000000; = PADDING-TOP: 0px } .cp_form UL { LIST-STYLE-TYPE: none } .cp_form LI { CLEAR: left; PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: = 5px; MARGIN: 0px 0px 5px; PADDING-TOP: 5px } .cp_form LABEL { PADDING-RIGHT: 10px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 0px; WIDTH: 120px; PADDING-TOP: 3px; TEXT-ALIGN: right } .cp_form INPUT { FLOAT: left; MARGIN: 0px 0px 3px; WIDTH: 250px } .cp_form SELECT { FLOAT: left; MARGIN: 0px 0px 3px; WIDTH: 250px } .cp_form TEXTAREA { FLOAT: left; MARGIN: 0px 0px 3px; WIDTH: 250px } .cp_small_form INPUT { MARGIN: 0px 3px; WIDTH: 500px } .cp_small_form SELECT { MARGIN: 0px 3px; WIDTH: 500px } .cp_form IMG { FLOAT: left; MARGIN: 1px 0px 0px 3px } .cp_form .cp_alert { CLEAR: both; MARGIN: 0px 0px 0px 130px; WIDTH: 240px } .cp_form .cp_radio { FLOAT: left; MARGIN: 0px 0px 3px; WIDTH: 250px; BORDER-TOP-STYLE: none; = BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: = none } .cp_form .cp_radio INPUT { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: = 0px; MARGIN: 0px; WIDTH: auto; PADDING-TOP: 0px } .cp_form .cp_check INPUT { FLOAT: none; MARGIN: 0px 5px 0px 0px; WIDTH: auto } .cp_form .cp_image_verify IMG { MARGIN: 0px 10px 0px 0px } .cp_form .cp_image_verify LI { LIST-STYLE-POSITION: outside } .cp_form .cp_image_verify INPUT { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; FLOAT: = none; PADDING-BOTTOM: 0px! important; MARGIN: 0px; WIDTH: 250px; = PADDING-TOP: 0px! important; TEXT-ALIGN: left } .cp_form .cp_image_verify LABEL { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; FLOAT: = none; PADDING-BOTTOM: 0px! important; MARGIN: 0px; WIDTH: 250px; = PADDING-TOP: 0px! important; TEXT-ALIGN: left } .cp_form .cp_submit { TEXT-ALIGN: center } .cp_form .cp_submit INPUT { FLOAT: none; WIDTH: auto } #cp_staff { BORDER-TOP: #ccc 1px solid } #cp_staff .staff_member { CLEAR: left; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; = PADDING-BOTTOM: 1em; WIDTH: 100%; PADDING-TOP: 1em; BORDER-BOTTOM: #ccc = 1px solid } #cp_staff .staff_member IMG { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; FLOAT: left; = BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px 1em 0px 0px; WIDTH: 75px; = BORDER-RIGHT-WIDTH: 0px } #cp_staff .staff_member .cp_staff_name { FLOAT: left; WIDTH: 50% } #cp_staff .staff_member .cp_staff_name DT { FONT-SIZE: 1.5em; MARGIN: 0px 0px 0.2em } #cp_staff .staff_member .cp_staff_name DD { FONT-SIZE: 1.2em } #cp_staff .staff_member .cp_staff_contact { FLOAT: left } #cp_staff .staff_member .cp_staff_contact DT { FONT-WEIGHT: bold } #cp_staff .staff_member .cp_staff_contact DD { MARGIN: 0px 0px 0.2em } IFRAME { BORDER-TOP-WIDTH: 0px! important; BORDER-LEFT-WIDTH: 0px! important; = BORDER-BOTTOM-WIDTH: 0px! important; OVERFLOW: hidden! important; = BORDER-RIGHT-WIDTH: 0px! important } #cp_bn_wrap { FONT: 1em/1.4em arial, sans-serif } #cp_bn_wrap * { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } #cp_bn_wrap A { BORDER-RIGHT: #900000 5px solid; BORDER-TOP: #900000 5px solid; = DISPLAY: block; BACKGROUND: = url(http://media.collegepublisher.com/media/assets/images/breaking_news_b= kg.jpg) #900000 repeat-x 0px 0px; MARGIN: 0px 0px 10px; BORDER-LEFT: = #900000 5px solid; BORDER-BOTTOM: #900000 5px solid; TEXT-DECORATION: = none } #cp_bn_wrap A:hover { BORDER-RIGHT: #de0000 5px solid; BORDER-TOP: #de0000 5px solid; = BACKGROUND: #de0000; BORDER-LEFT: #de0000 5px solid; BORDER-BOTTOM: = #de0000 5px solid } #cp_bn_wrap A .gutter { BORDER-RIGHT: #fff 1px solid; PADDING-RIGHT: 7px; BORDER-TOP: #fff 1px = solid; PADDING-LEFT: 7px; BACKGROUND: none transparent scroll repeat 0% = 0%; PADDING-BOTTOM: 7px; MARGIN: 0px; BORDER-LEFT: #fff 1px solid; = PADDING-TOP: 7px; BORDER-BOTTOM: #fff 1px solid; POSITION: relative } #cp_bn_wrap A H2 { COLOR: #fff } #cp_bn_wrap A H3 { COLOR: #fff } #cp_bn_wrap A H4 { COLOR: #fff } #cp_bn_wrap A P { COLOR: #fff } #cp_bn_wrap A H2 { FONT-SIZE: 18px; MARGIN: 0px 0px 0.5em; TEXT-TRANSFORM: uppercase; = FONT-FAMILY: "Trebuchet MS", serif } #cp_bn_wrap A H3 { FONT-SIZE: 22px; MARGIN: 0px 0px 0.25em; FONT-STYLE: italic } #cp_bn_wrap A H4 { FONT-SIZE: 16px; MARGIN: 0px 0px 0.5em } #cp_bn_wrap A P { FONT-SIZE: 11px; MARGIN: 0px; LINE-HEIGHT: 13px } #cp_bn_wrap A .with_img { FLOAT: left; WIDTH: 65% } #cp_bn_wrap A IMG { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; FLOAT: right; = BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; WIDTH: 32%; BORDER-RIGHT-WIDTH: = 0px } #cp_bn_article_header { FONT-SIZE: 20px; BACKGROUND: = url(http://media.collegepublisher.com/media/assets/images/breaking_news_b= kg.jpg) #de0000 repeat-x 0px 0px; TEXT-TRANSFORM: uppercase; COLOR: = #fff; TEXT-INDENT: 0.3em; LINE-HEIGHT: 40px; FONT-FAMILY: 'trebuchet = ms', serif } BLOCKQUOTE.cp_pullquote { BORDER-TOP: #000 3px double; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM: = #000 3px double; BORDER-RIGHT-WIDTH: 0px } BLOCKQUOTE.cp_pullquote P { MARGIN: 0px; FONT: 18px/22px georgia, serif } BLOCKQUOTE.cp_pullquote P:first-letter { TEXT-TRANSFORM: uppercase } #cp_article_top { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; = PADDING-BOTTOM: 0px! important; MARGIN: 0px 0px 15px; PADDING-TOP: 10px! = important; BORDER-BOTTOM: #ccc 1px solid } #cp_article_top UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } #cp_article_tools UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } #cp_article_bottom UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } #flan_ads .cp_ad H4.ad_slug { DISPLAY: none; BACKGROUND: none transparent scroll repeat 0% 0%; FONT: = 10px/14px 'trebuchet ms', arial, sans-serif; TEXT-TRANSFORM: uppercase; = COLOR: #aaa; TEXT-ALIGN: center } #cp_article_bottom { MARGIN: 15px 0px } #cp_article_top UL { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; = PADDING-BOTTOM: 0px! important; MARGIN: 0px; PADDING-TOP: 0px! important } #cp_article_top LI { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; FONT-SIZE: = 11px; PADDING-BOTTOM: 0px! important; MARGIN: 0px; LINE-HEIGHT: 17px; = PADDING-TOP: 0px! important; LIST-STYLE-TYPE: none } #cp_article_bottom LI { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; FONT-SIZE: = 11px; PADDING-BOTTOM: 0px! important; MARGIN: 0px; LINE-HEIGHT: 17px; = PADDING-TOP: 0px! important; LIST-STYLE-TYPE: none } #cp_story_bot_nav { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; FONT-SIZE: = 11px; PADDING-BOTTOM: 0px! important; MARGIN: 0px; LINE-HEIGHT: 17px; = PADDING-TOP: 0px! important; LIST-STYLE-TYPE: none } #cp_article_top LI A { COLOR: #333333! important } #cp_article_bottom LI A { COLOR: #333333! important } #cp_story_bot_nav A { COLOR: #333333! important } #cp_article_top LI A:hover { COLOR: #000000! important } #cp_article_bottom A:hover { COLOR: #000000! important } #cp_article_top_left { FLOAT: left; WIDTH: 230px } #cp_article_top_left LI { DISPLAY: inline; MARGIN: 0px 5px 0px 0px } #cp_article_top_right { FLOAT: right; WIDTH: 190px; TEXT-ALIGN: right } #cp_article_bottom_right { FLOAT: right; WIDTH: 190px; TEXT-ALIGN: right } LI#cp_article_discuss A { PADDING-RIGHT: 0px; PADDING-LEFT: 17px; BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/discuss.gif) = no-repeat left -1px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px } LI#cp_article_print A { PADDING-RIGHT: 0px; PADDING-LEFT: 17px; BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/print.gif) = no-repeat left 50%; PADDING-BOTTOM: 0px; PADDING-TOP: 0px } LI#cp_article_email A { PADDING-RIGHT: 0px; PADDING-LEFT: 17px; BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/email.gif) = no-repeat left 50%; PADDING-BOTTOM: 0px; PADDING-TOP: 0px } LI#cp_article_more A { PADDING-RIGHT: 0px; PADDING-LEFT: 17px; BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/down.gif) = no-repeat left 50%; PADDING-BOTTOM: 0px; PADDING-TOP: 0px } LI#cp_article_blog A { BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/blogger.gif) = no-repeat left 50% } LI#cp_article_facebook A { BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/facebook.gif) = no-repeat left 50% } LI#cp_article_live A { BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/livejournal.gif)= no-repeat left 50% } LI#cp_article_digg A { BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/digg.gif) = no-repeat left 50% } LI#cp_article_news A { BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/newsvine.gif) = no-repeat left 50% } LI#cp_article_deli A { BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/delicious.gif) = no-repeat left 50% } LI#cp_article_yaho A { BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/yahoo.gif) = no-repeat left 50% } LI#cp_article_goog A { BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/google.gif) = no-repeat left 0px } LI.cp_article_page DIV { PADDING-RIGHT: 0px; PADDING-LEFT: 17px; BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/page.gif) = no-repeat left center; FLOAT: right; PADDING-BOTTOM: 0px; PADDING-TOP: = 0px } #cp_story_text { MARGIN: 0px 0px 15px } #cp_article_tools { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 5px; MARGIN: 0px = 0px 25px; PADDING-TOP: 0px } P.cp_article_more_tools { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; = FONT-WEIGHT: bold! important; FONT-SIZE: 12px! important; = PADDING-BOTTOM: 0px! important; MARGIN: 0px; PADDING-TOP: 0px! important } P.cp_article_tools_header { PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; = FONT-WEIGHT: bold! important; FONT-SIZE: 11px; PADDING-BOTTOM: 0px! = important; MARGIN: 0px 0px 8px; PADDING-TOP: 0px! important } #cp_article_tools .cp_article_gutter { PADDING-RIGHT: 5px! important; PADDING-LEFT: 5px! important; = PADDING-BOTTOM: 5px! important; PADDING-TOP: 5px! important } #cp_article_tools UL { PADDING-RIGHT: 0px! important; DISPLAY: inline! important; = PADDING-LEFT: 0px! important; PADDING-BOTTOM: 0px! important; MARGIN: = 0px; PADDING-TOP: 0px! important; LIST-STYLE-TYPE: none! important } #cp_article_tools LI { PADDING-RIGHT: 0px! important; DISPLAY: inline! important; = PADDING-LEFT: 0px! important; PADDING-BOTTOM: 0px! important; MARGIN: = 0px; PADDING-TOP: 0px! important; LIST-STYLE-TYPE: none! important } #cp_article_tools LI A { PADDING-RIGHT: 0px! important; DISPLAY: inline! important; = PADDING-LEFT: 17px! important; FONT-SIZE: 10px! important; = PADDING-BOTTOM: 3px! important; MARGIN: 0px 3px 0px 0px; PADDING-TOP: = 3px! important } #cp_article_tools LI A { DISPLAY: inline! important; FONT-SIZE: 10px! important } #cp_article_tools_book { CLEAR: left; MARGIN: -12px 0px 0px 5px } HTML > BODY #cp_article_tools_book { LEFT: 5px; MARGIN: 27px 0px 0px; POSITION: relative; TOP: -5px } #cp_article_tools_blog { FLOAT: left! important; WIDTH: 0px! important } #cp_article_tools_rss { FLOAT: right! important; BORDER-LEFT: #fff 1px solid; WIDTH: 140px! = important } HTML > BODY #cp_article_tools_rss { WIDTH: 160px! important } #cp_story_bot_nav { MARGIN: 0px 0px 15px; TEXT-ALIGN: right } #cp_continued { FONT-SIZE: 11px; MARGIN: 0px 0px 15px; LINE-HEIGHT: 17px } * HTML #cp_article_tools { HEIGHT: 47px } .RSSItemListRow { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 4px; COLOR: = #000; LINE-HEIGHT: 1.1em; PADDING-TOP: 4px } #slider2_wrap .slider2_hot { DISPLAY: block; BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/fff/lightning.pn= g) no-repeat left center; FLOAT: left; WIDTH: 19px; TEXT-INDENT: = -1000em; HEIGHT: 16px } .RSSItemListSchool { FONT-SIZE: 10px; COLOR: #666; LINE-HEIGHT: 1.3em } .FlippyEvenRow { BACKGROUND-COLOR: #eee } .ListBoxItemHover { CURSOR: pointer; COLOR: #000; BACKGROUND-COLOR: #ff9 } .SelectedListBoxItem { BACKGROUND: #ff0; COLOR: #000 } .RSSItemListFeedback { MARGIN: 75px auto auto; HEIGHT: 32px } .RSSItemListFeedback TD { FONT: 0.9em/1.4em trebuchet ms; COLOR: #666 } .ClearAll { CLEAR: both; FONT-SIZE: 0px; LINE-HEIGHT: 0; HEIGHT: 0px } .SpryHiddenRegion { VISIBILITY: hidden } #slider2_wrap { CLEAR: left; MARGIN: 10px 0px; WIDTH: 300px } #slider2_wrap H3 A { PADDING-RIGHT: 20px; DISPLAY: block; BACKGROUND: = url(/media/assets/icons/fff/bullet_go.png) no-repeat right center; = COLOR: #333! important; BORDER-BOTTOM: #ccc 1px dashed } #slider2_wrap H3 A:hover { BACKGROUND-COLOR: #ff9 } #slider2_wrap .lead_wrap { BORDER-TOP-WIDTH: 1px; BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: = 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; BORDER-LEFT: #ccc 1px = solid; BORDER-TOP-COLOR: #ccc; PADDING-TOP: 0px; BORDER-BOTTOM: #ccc 1px = solid } #slider2_wrap .contentslide { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; BACKGROUND: #fff; = PADDING-BOTTOM: 1px; PADDING-TOP: 1px; POSITION: relative; HEIGHT: 257px } #slider2_wrap .contentdiv_scroller { PADDING-RIGHT: 9px; PADDING-LEFT: 5px; BACKGROUND: #fff; = PADDING-BOTTOM: 0px; OVERFLOW: auto; PADDING-TOP: 5px; POSITION: = relative; HEIGHT: 230px } #slider2_wrap .linkbar { PADDING-RIGHT: 4px; BORDER-TOP: #ddd 1px solid; MARGIN-TOP: 1px; = PADDING-LEFT: 4px; FONT-SIZE: 0.95em; BACKGROUND: = url(http://media.collegepublisher.com/media/assets/images/box_gradient.gi= f) #fff repeat-x; PADDING-BOTTOM: 0px; VERTICAL-ALIGN: middle; COLOR: = #666; LINE-HEIGHT: 20px; PADDING-TOP: 0px; TEXT-ALIGN: right } #slider2_wrap .linkbar IMG { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: = 0px; VERTICAL-ALIGN: middle; BORDER-RIGHT-WIDTH: 0px } #slider2_wrap .linkbar A { COLOR: #fff } #slider2_wrap .linkbar A:hover { BACKGROUND: #ff9 } #slider2_wrap .contentslide .contentdiv { DISPLAY: none } #slider2_wrap .contentslide A { COLOR: #000 } #slider2_wrap .contentdiv_scroller A:hover * { DISPLAY: block; COLOR: #000; BACKGROUND-COLOR: #ff9 } #slider2_wrap DIV.pagination_wrap { PADDING-RIGHT: 0px; PADDING-LEFT: 6px; FONT-SIZE: 11px; BACKGROUND: = url(http://media.collegepublisher.com/media/assets/images/bottom_line.gif= ) #eee repeat-x left bottom; PADDING-BOTTOM: 0px; PADDING-TOP: 0px } #slider2_wrap .pagination { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; OVERFLOW: hidden; PADDING-TOP: 0px; TEXT-ALIGN: left } #slider2_wrap .pagination UL { DISPLAY: inline } #slider2_wrap .pagination LI { DISPLAY: inline } #slider2_wrap .pagination A { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: #ccc 1px = solid; DISPLAY: block; PADDING-LEFT: 4px; FLOAT: left; PADDING-BOTTOM: = 3px; FONT: 11px/20px arial, helvetica, sans-serif; BORDER-LEFT: #ccc 1px = solid; WIDTH: 16px; COLOR: #333; MARGIN-RIGHT: 3px; PADDING-TOP: 3px; = BORDER-BOTTOM: #ccc 1px solid; HEIGHT: 16px; TEXT-DECORATION: none } #slider2_wrap .pagination A SPAN { DISPLAY: block; TEXT-INDENT: -1000em } #slider2_wrap .pagination A#tab_mp SPAN { BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/fff/newspaper_po= p.png) no-repeat left top } #slider2_wrap .pagination A#tab_me SPAN { BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/fff/email_go.png= ) no-repeat left top } #slider2_wrap .pagination A#tab_mc SPAN { BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/fff/user_comment= .png) no-repeat left top } #slider2_wrap .pagination A#tab_pc SPAN { BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/fff/ipod.png) = no-repeat left top } #slider2_wrap .pagination A#tab_ce SPAN { BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/fff/date.png) = no-repeat left top } #slider2_wrap .pagination A#tab_mb SPAN { BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/fff/comments.png= ) no-repeat left top } #slider2_wrap .pagination A#tab_ci SPAN { BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/fff/newspaper_ad= d.png) no-repeat left top } #slider2_wrap .pagination A#tab_rc SPAN { BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/fff/transmit.png= ) no-repeat left top } #slider2_wrap .pagination A#tab_nc SPAN { BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/fff/transmit_blu= e.png) no-repeat left top } #slider2_wrap .pagination A:hover { BACKGROUND: = url(http://media.collegepublisher.com/media/assets/images/box_gradient.gi= f) #fff repeat-x 0px 1px; BORDER-BOTTOM: #fff 1px solid } #slider2_wrap .pagination A.selected { BACKGROUND: = url(http://media.collegepublisher.com/media/assets/images/box_gradient.gi= f) #fff repeat-x 0px 1px; BORDER-BOTTOM: #fff 1px solid } #slider2_wrap .pagination A:hover { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; BORDER-LEFT: = #ccc 1px solid; BORDER-BOTTOM: #ccc 1px solid } #slider2_wrap .pagination A.selected:hover { BORDER-BOTTOM: #fff 1px solid } #slider2_wrap .pagination A.pagination_next { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; BACKGROUND: none transparent = scroll repeat 0% 0%; PADDING-BOTTOM: 0px; FONT: 16px/22px arial, = helvetica, sans-serif; COLOR: #fff; BORDER-TOP-STYLE: none; PADDING-TOP: = 5px; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; TEXT-DECORATION: = none; BORDER-BOTTOM-STYLE: none } #slider2_wrap .pagination A.pagination_next:hover { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; BACKGROUND: none transparent = scroll repeat 0% 0%; PADDING-BOTTOM: 0px; FONT: 16px/22px arial, = helvetica, sans-serif; COLOR: #fff; BORDER-TOP-STYLE: none; PADDING-TOP: = 5px; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; TEXT-DECORATION: = none; BORDER-BOTTOM-STYLE: none } #slider2_wrap .pagination IMG { PADDING-BOTTOM: 2px; VERTICAL-ALIGN: middle; BORDER-TOP-STYLE: none; = BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: = none } .safari .box { FLOAT: none! important } .ie6 #slider2_wrap .pagination A { WIDTH: 16px; LINE-HEIGHT: 16px } .cp_local_ad { OVERFLOW: hidden } .cp_banner_client { OVERFLOW: hidden } .carousel-component { VISIBILITY: hidden; OVERFLOW: hidden; POSITION: relative } .carousel-component UL.carousel-list { Z-INDEX: 1; WIDTH: 10000000px; POSITION: relative } .carousel-component .carousel-list LI { FLOAT: left; OVERFLOW: hidden; LIST-STYLE-TYPE: none } .carousel-component .carousel-vertical LI { FLOAT: none; MARGIN-BOTTOM: 0px } .carousel-component UL.carousel-vertical { WIDTH: auto } .carousel-component .carousel-clip-region { MARGIN: 0px auto; OVERFLOW: hidden; POSITION: relative } #roo_component_wrapper { MARGIN: 0px 0px 10px; WIDTH: 300px } #roo_component_header { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #eee; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: = #c2c2c2 1px solid } #roo_component_header LI { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; BACKGROUND: = #eee; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } #roo_component_header LI A { PADDING-RIGHT: 0px; PADDING-LEFT: 4px; PADDING-BOTTOM: 0px; FONT: = 10px/23px arial, helvetica, sans-serif; COLOR: #609fdf; PADDING-TOP: 0px } #roo_component_header LI H5 { BORDER-RIGHT: #c2c2c2 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: = #c2c2c2 1px solid; PADDING-LEFT: 26px; BACKGROUND: = url(http://collegepublisher.com/media/assets/icons/fff/television.png) = #fff no-repeat 6px 1px; FLOAT: left; PADDING-BOTTOM: 3px; MARGIN: 0px = 0px 0px 6px; FONT: bold 14px/1.2em Arial, Helvetica, sans-serif; = BORDER-LEFT: #c2c2c2 1px solid; PADDING-TOP: 2px; BORDER-BOTTOM: #fff = 1px solid } .ie6 #roo_component_header LI H5 { MARGIN: 0px 0px 0px 3px } .safari #roo_component_header LI H5 { PADDING-RIGHT: 6px; PADDING-LEFT: 26px; PADDING-BOTTOM: 4px; = PADDING-TOP: 2px; BORDER-BOTTOM: #fff 1px solid } #roo_component { BORDER-RIGHT: #c2c2c2 1px solid; BORDER-TOP: #c2c2c2 0px solid; = BORDER-LEFT: #c2c2c2 1px solid; WIDTH: 298px; BORDER-BOTTOM: #c2c2c2 1px = solid } .carousel-component { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = BORDER-LEFT-WIDTH: 0px; BACKGROUND: #fff; BORDER-BOTTOM-WIDTH: 0px; = PADDING-BOTTOM: 0px; MARGIN: 0px auto; COLOR: #618cbe; PADDING-TOP: 0px; = BORDER-RIGHT-WIDTH: 0px; -moz-border-radius: 0px } .carousel-component UL.carousel-list { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } .carousel-component .carousel-prev { Z-INDEX: 3; LEFT: 0px; CURSOR: pointer; POSITION: absolute; TOP: 27px } .carousel-component .carousel-next { Z-INDEX: 3; RIGHT: 0px; CURSOR: pointer; POSITION: absolute; TOP: 27px } #roo_component .carousel-button { DISPLAY: block; WIDTH: 16px; TEXT-INDENT: -1000em; HEIGHT: 16px } #roo_component #prev-arrow { BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/fff/control_star= t_blue.png) } #roo_component #next-arrow { BACKGROUND: = url(http://media.collegepublisher.com/media/assets/icons/fff/control_end_= blue.png) } .carousel-component .carousel-list LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 4px; MARGIN: 4px = 0px 0px; FONT: 9px verdana,arial,sans-serif; WIDTH: 130px; COLOR: #666; = PADDING-TOP: 0px; TEXT-ALIGN: center } .carousel-component .carousel-vertical LI { =09 } .carousel-component UL.carousel-vertical { =09 } .carousel-component .carousel-list LI A { BORDER-RIGHT: #fff 2px solid; BORDER-TOP: #fff 2px solid; DISPLAY: = block; BORDER-LEFT: #fff 2px solid; COLOR: #000; BORDER-BOTTOM: #fff 2px = solid; HEIGHT: 55px; TEXT-DECORATION: none! important; outline: none; = -moz-outline: none } .carousel-component .carousel-list LI A:hover { BORDER-RIGHT: #fffccc 2px solid; BORDER-TOP: #fffccc 2px solid; = BACKGROUND: #fffccc; BORDER-LEFT: #fffccc 2px solid; COLOR: #000; = BORDER-BOTTOM: #fffccc 2px solid; TEXT-DECORATION: none! important } .carousel-component .carousel-list LI.active A { BORDER-RIGHT: #708fc7 2px solid; BORDER-TOP: #708fc7 2px solid; = BORDER-LEFT: #708fc7 2px solid; BORDER-BOTTOM: #708fc7 2px solid } .carousel-component .carousel-list LI STRONG { DISPLAY: block } .carousel-component .carousel-list LI { POSITION: relative } .carousel-component .carousel-list LI IMG { BORDER-RIGHT: #999 1px solid; BORDER-TOP: #999 1px solid; DISPLAY: = block; LEFT: 2px; BORDER-LEFT: #999 1px solid; WIDTH: 50px; = BORDER-BOTTOM: #999 1px solid; POSITION: absolute; TOP: 2px; HEIGHT: = 50px } .carousel-component .carousel-list LI DIV.roo_module_title { Z-INDEX: 4; RIGHT: 0px; OVERFLOW: hidden; WIDTH: 70px; COLOR: black; = LINE-HEIGHT: 1em; POSITION: absolute; TOP: 2px; TEXT-ALIGN: left; = TEXT-DECORATION: none } .carousel-component .carousel-list LI SPAN.roo_module_play { DISPLAY: block; TEXT-TRANSFORM: uppercase; COLOR: #609fdf! important; = TEXT-DECORATION: none } .carousel-component .carousel-list LI A:hover SPAN.roo_module_play { TEXT-DECORATION: underline } #cp_video { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #e1e1e1; = PADDING-BOTTOM: 1em; MARGIN: 0px; FONT: 16px/18px "trebuchet ms", = helvetica, arial, sans-serif; COLOR: #000; PADDING-TOP: 0px; TEXT-ALIGN: = center } #cp_video #cp_video_wrap { BORDER-RIGHT: #888 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #888 1px = solid; PADDING-LEFT: 0px; BACKGROUND: #fff; PADDING-BOTTOM: 0px; MARGIN: = 0px auto; BORDER-LEFT: #888 1px solid; WIDTH: 987px; PADDING-TOP: 0px; = BORDER-BOTTOM: #888 1px solid; TEXT-ALIGN: left } #cp_video .leaderboard { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #eee; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; TEXT-ALIGN: center } #cp_video .leaderboard IMG { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 5px; = PADDING-TOP: 5px } #cp_video #header { MARGIN: 0px 0px 1.5em; WIDTH: 100% } #cp_video #header H1 { FONT: bold 1.8em/1.8em georgia, "times new roman", serif; WIDTH: 100%; = TEXT-INDENT: -1000em } #cp_video #header H1 A { DISPLAY: block; HEIGHT: 107px } #cp_video #top_bar { FONT-SIZE: 80%; BACKGROUND: #2b004d; MARGIN: 10px 10px 0px; OVERFLOW: = hidden; WIDTH: 967px } #cp_video #top_bar A { COLOR: #fff; TEXT-DECORATION: underline } #cp_video #top_bar A:visited { COLOR: #fff; TEXT-DECORATION: underline } #cp_video #top_bar H3 { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 10px; = PADDING-BOTTOM: 0px; FONT: 1.1em/27px arial, helvetica, sans-serif; = COLOR: #fff; PADDING-TOP: 0px } #cp_video #video_iframe { PADDING-RIGHT: 0px; PADDING-LEFT: 5px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 0px 0px 1em; PADDING-TOP: 0px } #cp_video #roo_frame { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 0px; OVERFLOW: hidden; BORDER-TOP-STYLE: none; PADDING-TOP: = 0px; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; = BORDER-BOTTOM-STYLE: none } #cp_video #video_feed { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: = url(http://media.collegepublisher.com/media/assets/images/feed_gradient.g= if) #fff repeat-y left top; FLOAT: left; PADDING-BOTTOM: 0px; MARGIN: = 0px; OVERFLOW: hidden; WIDTH: 200px; PADDING-TOP: 0px; HEIGHT: 920px } #cp_video #video_feed H2 { PADDING-RIGHT: 0px; PADDING-LEFT: 0.5em; BACKGROUND: #e7e7e7; = PADDING-BOTTOM: 0px; FONT: bold 12px/1.6em arial, helvetica, sans-serif; = WIDTH: 100%; COLOR: #666; PADDING-TOP: 0px } #cp_video #video_feed UL { PADDING-RIGHT: 0px; PADDING-LEFT: 13px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } #cp_video #video_feed LI { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; PADDING-BOTTOM: = 5px; MARGIN: 0px; PADDING-TOP: 5px; BORDER-BOTTOM: #c2c2c2 1px solid; = LIST-STYLE-TYPE: none } #cp_video #video_feed LI:hover { BACKGROUND: #fffccc } #cp_video #video_feed IMG { BORDER-RIGHT: #c2c2c2 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #c2c2c2 1px solid; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: 0px; = MARGIN: 0px 5px 0px 0px; BORDER-LEFT: #c2c2c2 1px solid; PADDING-TOP: = 0px; BORDER-BOTTOM: #c2c2c2 1px solid } #cp_video #video_feed LI H3 { FLOAT: left; FONT: bold 1em/1.2em arial, helvetica, sans-serif; = TEXT-TRANSFORM: none; WIDTH: 45%; COLOR: #666 } #cp_video #video_feed LI H3 SPAN { DISPLAY: block; TEXT-TRANSFORM: uppercase; COLOR: #609fdf } #cp_video #video_feed LI A:hover SPAN { TEXT-DECORATION: underline } #cp_video .cp_clear { CLEAR: both } #cp_video #footer { BORDER-TOP: #2b004d 4px solid; BACKGROUND: #fff; WIDTH: 100%; = TEXT-ALIGN: left } #cp_video #footer P { PADDING-RIGHT: 0.5em; PADDING-LEFT: 0.5em; FONT-SIZE: 11px; = PADDING-BOTTOM: 0.5em; COLOR: #666; PADDING-TOP: 0.5em } #cp_video #footer P A { FONT-WEIGHT: bold; COLOR: #2b004d; TEXT-DECORATION: none } ------=_NextPart_000_0020_01C7A5EA.EA8F7930 Content-Type: application/octet-stream Content-Transfer-Encoding: 7bit Content-Location: http://media.collegepublisher.com/media/css/features_1024.css?v1 #net_search { VISIBILITY: hidden } ------=_NextPart_000_0020_01C7A5EA.EA8F7930 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://media.collegepublisher.com/media/css/popup_new.css?v12 .dialog { DISPLAY: block; POSITION: absolute; TEXT-ALIGN: left! important } .dialog TABLE.table_window { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; WIDTH: 100%; PADDING-TOP: 0px; BORDER-COLLAPSE: collapse; = border-spacing: 0 } .dialog TABLE.table_window TD { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } .dialog TABLE.table_window TH { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } .dialog .title_window { -moz-user-select: none } .dialog_close { Z-INDEX: 2000; BACKGROUND: url(/media/assets/icons/close.gif) no-repeat = 0px 0px; LEFT: 97%; WIDTH: 14px; CURSOR: pointer; POSITION: absolute; = TOP: 22px; HEIGHT: 14px } .overlay_popup { FILTER: alpha(opacity=3D50); BACKGROUND-COLOR: #000000; -moz-opacity: = 0.50; opacity: 0.50 } .overlay_dialog { FILTER: alpha(opacity=3D70); BACKGROUND-COLOR: #000000; -moz-opacity: = 0.7; opacity: 0.7 } .overlay_dialog IFRAME { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: = 0px; BORDER-RIGHT-WIDTH: 0px } .overlay___invisible__ { FILTER: alpha(opacity=3D0); BACKGROUND-COLOR: #000000; -moz-opacity: 0; = opacity: 0 } ------=_NextPart_000_0020_01C7A5EA.EA8F7930 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://media.collegepublisher.com/media/css/print.css?v1 * { BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: = none; BORDER-BOTTOM-STYLE: none } #topbar { DISPLAY: none } #topsearchform { DISPLAY: none } #cpleftcol { DISPLAY: none } #cprightcol { DISPLAY: none } #banner_network_5 { DISPLAY: none } #cpheader { DISPLAY: none } #cpleftcol { DISPLAY: none } #cprightcol { DISPLAY: none } #issuesummary { DISPLAY: none } #ncbar { DISPLAY: none } .goner { DISPLAY: none } #cpfooter { DISPLAY: none } #ncbar TD { DISPLAY: none } #agent99 { DISPLAY: none } #loggedin_bar { DISPLAY: none } #maincontent { DISPLAY: block } #cpcentercol { WIDTH: 100% } #left_cell { DISPLAY: none } IFRAME { DISPLAY: none } #banner_network_2 { DISPLAY: none } #right_cell { DISPLAY: none } #topbar { DISPLAY: none } #cpheader { DISPLAY: none } #cpfooter { DISPLAY: none } .goner { DISPLAY: none } #banner_client_1 { DISPLAY: none } #flan_header { DISPLAY: none } #flan_ads { DISPLAY: none } #flan_nav { DISPLAY: none } #weatherm { DISPLAY: none } #flan_footer { DISPLAY: none } #topbar { DISPLAY: none } #flan_content { WIDTH: 100% } ------=_NextPart_000_0020_01C7A5EA.EA8F7930 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.thesantaclara.com/media/paper946/styles.css?v13 * { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } BODY { FONT: 12px/16px arial, helvetica, sans-serif } P { FONT: 12px/16px arial, helvetica, sans-serif } H4 { MARGIN-BOTTOM: 0px } TD { FONT: 12px/16px arial, helvetica, sans-serif } LI { PADDING-LEFT: 0px; FONT: 12px/16px arial, helvetica, sans-serif } A { COLOR: #990033 } A:hover { COLOR: #0e1f0f; TEXT-DECORATION: underline } #flan_wrap { BACKGROUND: = url(http://media.collegepublisher.com/media/paper946/template/templatemed= ia/bg_side.gif) repeat-y -65px 0px; WIDTH: 975px } #flan_header_main { BACKGROUND: = url(http://media.collegepublisher.com/media/paper946/template/templatemed= ia/sc_header_bkg.gif) #e4e4e4 repeat-x; WIDTH: 975px; POSITION: = relative; HEIGHT: 70px } #flan_header_main .gutter { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } #flan_header_meta * { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } #flan_header_meta { BACKGROUND: #990033; FLOAT: left; WIDTH: 975px; BORDER-BOTTOM: gray 2px = solid; POSITION: relative; TEXT-ALIGN: right } #flan_header_meta LI { DISPLAY: inline } #flan_header_meta A { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 0px; FONT: = 1.2em/1.8em arial, helvetica, sans-serif; BORDER-LEFT: #990033 1px = solid; PADDING-TOP: 0px } #flan_header_meta .flan_no_border A { BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: = none; BORDER-BOTTOM-STYLE: none } #flan_current { PADDING-RIGHT: 0px; PADDING-LEFT: 5px; FLOAT: left; PADDING-BOTTOM: = 0px; WIDTH: 300px; COLOR: #fff; LINE-HEIGHT: 23px; PADDING-TOP: 0px; = TEXT-ALIGN: left } #flan_current A { COLOR: #fff; TEXT-DECORATION: none } #flan_wrap #flan_leader { RIGHT: 5px; BOTTOM: 5px; POSITION: absolute } H2 { FONT-WEIGHT: normal; FONT-SIZE: 22px; MARGIN: 0px 0px 15px; = LINE-HEIGHT: 1.2em; BORDER-BOTTOM: #666 1px solid } H1#flan_logo { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: = url(http://media.collegepublisher.com/media/paper946/template/templatemed= ia/sc_masthead2.gif) no-repeat left top; PADDING-BOTTOM: 0px; MARGIN: = 0px; OVERFLOW: hidden; WIDTH: 350px; TEXT-INDENT: -10000em; LINE-HEIGHT: = 70px; PADDING-TOP: 0px; HEIGHT: 70px } H1#flan_logo A { DISPLAY: block; WIDTH: 270px; TEXT-INDENT: -10000px; LINE-HEIGHT: 70px; = HEIGHT: 70px } #flan_search { FLOAT: right; WIDTH: 200px } #flan_search FORM { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; = PADDING-TOP: 1px } #flan_search FIELDSET { BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: = none; BORDER-BOTTOM-STYLE: none } #flan_search INPUT { FONT-SIZE: 0.9em } #flan_search #flan_search_box { WIDTH: 100px } #searchResults H2 { BORDER-BOTTOM-STYLE: none } #flan_body { FLOAT: left } #flan_nav { FLOAT: left } #flan_body_wrap { FLOAT: right; WIDTH: 837px } #flan_content { FLOAT: left; WIDTH: 537px } #flan_content * A { COLOR: #8f0033 } #flan_content .gutter { MARGIN: 10px } #maincontent H5 { MARGIN: 0px 0px 5px; FONT: 11px/14px Georgia, serif; TEXT-TRANSFORM: = uppercase } .flan_lead_major H2 { FONT-WEIGHT: bold; MARGIN: 0px 0px 5px; BORDER-TOP-STYLE: none; = BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: = none } .flan_lead_major H3 { FONT-WEIGHT: normal; MARGIN: 0px 0px 10px; BORDER-TOP-STYLE: none; = BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: = none } .flan_lead_major IMG { FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 110px } .flan_lead_major { MARGIN: 0px 0px 10px } #flan_minor_wrap { PADDING-RIGHT: 0px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 0px; = PADDING-BOTTOM: 0px; PADDING-TOP: 10px } #flan_minor_wrap DIV { FLOAT: left; WIDTH: 240px } #flan_minor_wrap H2 { FONT-WEIGHT: bold; FONT-SIZE: 1.2em; MARGIN: 0px 0px 5px; = BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: = none; BORDER-BOTTOM-STYLE: none } #flan_minor_wrap IMG { FLOAT: left; MARGIN: 0px 5px 5px 0px } #flan_clear { CLEAR: both } #flan_feat H4 { FONT-SIZE: 1em; MARGIN: 0px 0px 5px; COLOR: #fff; LINE-HEIGHT: 1.5em } #flan_minor_wrap .flan_right { PADDING-RIGHT: 0px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; = BORDER-LEFT: #cccccc 1px solid; PADDING-TOP: 0px } #flan_minor_wrap .flan_left { PADDING-RIGHT: 10px; PADDING-LEFT: 0px; PADDING-BOTTOM: 10px; = PADDING-TOP: 0px } #flan_feat { CLEAR: both } #flan_feat TD IMG { FLOAT: left; MARGIN: 0px 5px 5px 0px } #flan_issue_summary UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = 0px 0px 10px; PADDING-TOP: 0px } #flan_issue_summary UL LI { MARGIN: 0px 0px 5px } .flan_section { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 15px; MARGIN: = 0px 0px 15px; PADDING-TOP: 0px; BORDER-BOTTOM: #999 1px dotted } .flan_section H2 { FONT-SIZE: 2em; MARGIN: 0px; BORDER-BOTTOM-STYLE: none } #article H2 { FONT-SIZE: 2em; MARGIN: 0px; BORDER-BOTTOM-STYLE: none } .flan_section IMG { FLOAT: right; MARGIN: 0px 0px 5px 10px } .flan_section_title { FONT-WEIGHT: normal; FONT-SIZE: 22px; MARGIN: 0px 0px 15px; = LINE-HEIGHT: 1.2em; BORDER-BOTTOM: #666 1px solid } .flan_section H3 { FONT-WEIGHT: normal; FONT-SIZE: 14px; MARGIN: 0px 0px 5px; LINE-HEIGHT: = 1.2em } #article H3 { FONT-WEIGHT: normal; FONT-SIZE: 14px; MARGIN: 0px 0px 5px; LINE-HEIGHT: = 1.2em } .flan_section H4 { FONT-WEIGHT: normal; FONT-SIZE: 12px; MARGIN: 0px 0px 5px } #article H4 { FONT-WEIGHT: normal; FONT-SIZE: 12px; MARGIN: 0px 0px 5px } .flan_section H5 { MARGIN: 0px 0px 5px; FONT: 14px/1.2em Georgia, Times New Roman, serif } .flan_section P { MARGIN: 0px; FONT: 12px/16px arial, helvetica, sans-serif } #flan_footer { CLEAR: both; PADDING-RIGHT: 10px; PADDING-LEFT: 10px; BACKGROUND: = #d8d8d8; PADDING-BOTTOM: 10px; FONT: 11px/15px arial, helvetica, = sans-serif; PADDING-TOP: 10px } #flan_footer A { COLOR: #000 } #flan_footer A:hover { COLOR: #000 } #video_in_story EMBED { PADDING-RIGHT: 0px; PADDING-LEFT: 90px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px; TEXT-ALIGN: center } #flan_nav * { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #eee; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } #flan_nav UL * { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #eee; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } #flan_nav .gutter { BACKGROUND: #eee; MARGIN: 0px } #flan_nav H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 4px; BACKGROUND: #990033; = PADDING-BOTTOM: 3px; FONT: bold 12px helvetica, arial, sans-serif; = TEXT-TRANSFORM: uppercase; WIDTH: 130px; COLOR: #fff; PADDING-TOP: 5px } #flan_nav UL LI { WIDTH: 134px } #flan_nav UL LI A { PADDING-RIGHT: 4px; BORDER-TOP: #949494 1px solid; DISPLAY: block; = PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; COLOR: #000; PADDING-TOP: 4px } #flan_nav UL LI A:hover { BACKGROUND: #949494; COLOR: #fff; TEXT-DECORATION: none } #flan_pdf { MARGIN: 0px 0px 0px 7px } #flan_nav #affiliations { BACKGROUND: #eee; MARGIN: 0px 0px 0px 21px; OVERFLOW: auto; TEXT-ALIGN: = center } #flan_nav #affiliations IMG { CLEAR: left; BACKGROUND: #eee; FLOAT: left; MARGIN: 0px 0px 20px } #flan_nav #affiliations #img_b { BACKGROUND: #eee; MARGIN: 0px 0px 16px 20px } #flan_nav #affiliations #img_c { BACKGROUND: #eee; MARGIN: 0px 0px 20px 14px } #flan_ads { FLOAT: right; MARGIN: 10px 0px 0px; WIDTH: 300px } .box { CLEAR: both; FLOAT: left; MARGIN: 0px 0px 10px; WIDTH: 300px } #flan_ads .gutter { PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; = PADDING-TOP: 10px } #flan_ads .gutter P { MARGIN: 0px 0px 10px } #advertisements { MARGIN: 0px 0px 10px } #flan_ads .content { BORDER-RIGHT: #d8d8d8 1px solid; BORDER-TOP: #d8d8d8 1px solid; FONT: = 75%/1em arial, helvetica, sans-serif; BORDER-LEFT: #d8d8d8 1px solid; = BORDER-BOTTOM: #d8d8d8 1px solid } #advertisements { BORDER-RIGHT: #d8d8d8 1px solid; BORDER-TOP: #d8d8d8 1px solid; FONT: = 75%/1em arial, helvetica, sans-serif; BORDER-LEFT: #d8d8d8 1px solid; = BORDER-BOTTOM: #d8d8d8 1px solid } #flan_ads .content H4 { PADDING-RIGHT: 3px; PADDING-LEFT: 7px; BACKGROUND: #990033; = PADDING-BOTTOM: 3px; FONT: bold 1.2em/1.4em arial, helvetica, = sans-serif; TEXT-TRANSFORM: uppercase; COLOR: #fff; PADDING-TOP: 3px; = BORDER-BOTTOM: #d8d8d8 1px solid } #advertisements H4 { PADDING-RIGHT: 3px; PADDING-LEFT: 7px; BACKGROUND: #990033; = PADDING-BOTTOM: 3px; FONT: bold 1.2em/1.4em arial, helvetica, = sans-serif; TEXT-TRANSFORM: uppercase; COLOR: #fff; PADDING-TOP: 3px; = BORDER-BOTTOM: #d8d8d8 1px solid } #flan_ads .content A { COLOR: #333; BORDER-BOTTOM: #ccc 1px solid; TEXT-DECORATION: none } #flan_ads .content A:hover { BACKGROUND: #ffc } #flan_ads .content OL { LIST-STYLE-POSITION: inside } #flan_ads .content OL LI { MARGIN: 0px 0px 5px; LINE-HEIGHT: 1.2em } #box_300_250 .banner { MARGIN: 0px 0px 10px } #box_120_240_loc .banner { FLOAT: left; MARGIN: 0px 10px 0px 0px; WIDTH: 120px } #box_120_240 .banner { FLOAT: left; MARGIN: 0px 10px 0px 0px; WIDTH: 120px } #box_120_240_loc .content { MIN-HEIGHT: 238px; FLOAT: none; MARGIN: 0px; OVERFLOW: hidden; WIDTH: = 168px } #box_120_240 .content { MIN-HEIGHT: 238px; FLOAT: none; MARGIN: 0px; OVERFLOW: hidden; WIDTH: = 168px } #box_120_600 .banner { FLOAT: left; MARGIN: 0px 10px 0px 0px; WIDTH: 120px } #box_120_600_loc .banner { FLOAT: left; MARGIN: 0px 10px 0px 0px; WIDTH: 120px } #box_120_600 .content { MIN-HEIGHT: 598px; FLOAT: none; MARGIN: 0px; OVERFLOW: hidden; WIDTH: = 168px } #box_120_600_loc .content { MIN-HEIGHT: 598px; FLOAT: none; MARGIN: 0px; OVERFLOW: hidden; WIDTH: = 168px } #box_160_600 .banner { FLOAT: left; MARGIN: 0px 10px 0px 0px; WIDTH: 160px } #box_160_600_loc .banner { FLOAT: left; MARGIN: 0px 10px 0px 0px; WIDTH: 160px } #box_160_600 .content { MIN-HEIGHT: 598px; FLOAT: none; MARGIN: 0px; OVERFLOW: hidden; WIDTH: = 128px } #box_160_600_loc .content { MIN-HEIGHT: 598px; FLOAT: none; MARGIN: 0px; OVERFLOW: hidden; WIDTH: = 128px } #advertisements H4 { MARGIN: 0px 0px 10px } #advertisements { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 10px; WIDTH: 298px; PADDING-TOP: 0px } #advertisements .left { BORDER-RIGHT: #e1e1e1 1px solid; FLOAT: left; WIDTH: 150px; TEXT-ALIGN: = center } #advertisements .right { TEXT-ALIGN: center } .ad { MARGIN: 10px 0px 0px } #cp_leader { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; BACKGROUND: #eee; = PADDING-BOTTOM: 5px; PADDING-TOP: 5px; BORDER-BOTTOM: #ffffef 1px solid; = TEXT-ALIGN: center } #flan_ads #poll * { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } #flan_nav #poll * { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } #flan_ads #poll { CLEAR: left; BORDER-RIGHT: #d8d8d8 1px solid; PADDING-RIGHT: 0px; = BORDER-TOP: #d8d8d8 1px solid; PADDING-LEFT: 0px; BACKGROUND: none = transparent scroll repeat 0% 0%; PADDING-BOTTOM: 0px; MARGIN: 0px 0px = 10px; FONT: 75%/1em arial, helvetica, sans-serif; BORDER-LEFT: #d8d8d8 = 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: #d8d8d8 1px solid } #flan_nav #poll { CLEAR: left; BORDER-RIGHT: #d8d8d8 1px solid; PADDING-RIGHT: 0px; = BORDER-TOP: #d8d8d8 1px solid; PADDING-LEFT: 0px; BACKGROUND: none = transparent scroll repeat 0% 0%; PADDING-BOTTOM: 0px; MARGIN: 0px 0px = 10px; FONT: 75%/1em arial, helvetica, sans-serif; BORDER-LEFT: #d8d8d8 = 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: #d8d8d8 1px solid } #flan_nav #poll { BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: = none; BORDER-BOTTOM-STYLE: none } #flan_ads #poll H2 { PADDING-RIGHT: 3px; PADDING-LEFT: 7px; FONT-WEIGHT: bold; BACKGROUND: = #990033; PADDING-BOTTOM: 3px; COLOR: #fff; PADDING-TOP: 3px; = BORDER-BOTTOM: #d8d8d8 1px solid } #flan_ads #poll H4 { PADDING-RIGHT: 3px; PADDING-LEFT: 7px; BACKGROUND: #990033; = PADDING-BOTTOM: 3px; FONT: bold 1.2em/1.4em arial, helvetica, = sans-serif; TEXT-TRANSFORM: uppercase; COLOR: #fff; PADDING-TOP: 3px; = BORDER-BOTTOM: #d8d8d8 1px solid } #flan_ads #poll FORM { PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; MARGIN: = 0px; PADDING-TOP: 10px } #flan_ads .pollquestionstyle { FONT: bold 13px/1.2em arial, helvetica, sans-serif } #flan_ads #poll_answers { FONT-SIZE: 11px; MARGIN: 7px 0px 0px } #flan_ads #poll_answers DIV { MARGIN: 0px 0px 7px } #flan_ads #poll A.faux_button { PADDING-RIGHT: 3px; DISPLAY: block; PADDING-LEFT: 3px; PADDING-BOTTOM: = 3px; MARGIN: 7px 0px 0px; PADDING-TOP: 3px } #flan_ads #poll P#view_results { MARGIN: 7px 0px 0px } #flan_nav #poll H2 { PADDING-RIGHT: 0px; PADDING-LEFT: 7px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } #flan_nav #poll { MARGIN: 0px } #flan_nav #poll A.faux_button { PADDING-RIGHT: 3px; DISPLAY: block; PADDING-LEFT: 3px; PADDING-BOTTOM: = 3px; MARGIN: 7px 0px 0px; PADDING-TOP: 3px } #flan_nav #poll P#view_results { MARGIN: 7px 0px 0px } #flan_nav #poll FORM { PADDING-RIGHT: 7px; PADDING-LEFT: 7px; PADDING-BOTTOM: 5px; MARGIN: = 0px; PADDING-TOP: 5px } #flan_nav .pollquestionstyle { FONT: bold 13px/1.2em arial, helvetica, sans-serif } #flan_nav #poll_answers { FONT-SIZE: 11px; MARGIN: 7px 0px 0px } #flan_nav #poll_answers DIV { MARGIN: 0px 0px 7px } #flan_nav #poll #view_results A { COLOR: #2571b8; BORDER-BOTTOM: #2571b8 1px solid } #flan_ads #popularstories * { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } #flan_nav #popularstories * { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } #flan_ads #popularstories { CLEAR: left; BORDER-RIGHT: #d8d8d8 1px solid; PADDING-RIGHT: 0px; = BORDER-TOP: #d8d8d8 1px solid; PADDING-LEFT: 0px; BACKGROUND: none = transparent scroll repeat 0% 0%; PADDING-BOTTOM: 0px; MARGIN: 0px 0px = 10px; FONT: 75%/1em arial, helvetica, sans-serif; BORDER-LEFT: #d8d8d8 = 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: #d8d8d8 1px solid } #flan_nav #popularstories { CLEAR: left; BORDER-RIGHT: #d8d8d8 1px solid; PADDING-RIGHT: 0px; = BORDER-TOP: #d8d8d8 1px solid; PADDING-LEFT: 0px; BACKGROUND: none = transparent scroll repeat 0% 0%; PADDING-BOTTOM: 0px; MARGIN: 0px 0px = 10px; FONT: 75%/1em arial, helvetica, sans-serif; BORDER-LEFT: #d8d8d8 = 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: #d8d8d8 1px solid } #flan_nav #popularstories { BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: = none; BORDER-BOTTOM-STYLE: none } #flan_ads #popularstories H2 { PADDING-RIGHT: 3px; PADDING-LEFT: 7px; FONT-WEIGHT: bold; BACKGROUND: = #990033; PADDING-BOTTOM: 3px; COLOR: #fff; PADDING-TOP: 3px; = BORDER-BOTTOM: #d8d8d8 1px solid } #flan_ads #popularstories H4 { PADDING-RIGHT: 3px; PADDING-LEFT: 7px; BACKGROUND: #990033; = PADDING-BOTTOM: 3px; FONT: bold 1.2em/1.4em arial, helvetica, = sans-serif; TEXT-TRANSFORM: uppercase; COLOR: #fff; PADDING-TOP: 3px; = BORDER-BOTTOM: #d8d8d8 1px solid } #flan_ads #popularstoriestext { PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 10px } #flan_nav #popularstoriestext A { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; FONT: bold = 13px/1.4em arial, helvetica, sans-serif; COLOR: black; PADDING-TOP: 5px; = TEXT-DECORATION: none } #flan_nav #popularstoriestext .header { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; FONT: bold = 16px/1.2em arial, helvetica, sans-serif; PADDING-TOP: 0px } #flan_pdf IMG { BORDER-RIGHT: gray 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: gray 1px = solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 10px 0px; = BORDER-LEFT: gray 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: gray 1px = solid; TEXT-ALIGN: center } #maincontent { MARGIN: 0px 0px 10px } #maincontent UL { MARGIN: 1px 0px } #maincontent LI { LIST-STYLE-POSITION: inside; MARGIN: 0px 0px 0px 20px } #weather { DISPLAY: none } .cpfooter A { COLOR: #999 } .cpfooter A:hover { COLOR: #333 } * HTML #flan_nav { BACKGROUND: #eee } * HTML #flan_nav LI A { HEIGHT: 1% } * HTML #flan_header_meta { FLOAT: none } * HTML #flan_content { WIDTH: 527px } * HTML #flan_minor_wrap DIV { WIDTH: 237px } * HTML #box_120_240_loc .content { WIDTH: 165px } * HTML #box_120_240 .content { WIDTH: 165px } * HTML #box_120_600_loc .content { WIDTH: 165px } * HTML #box_120_600 .content { WIDTH: 165px } * HTML #box_160_600_loc .content { WIDTH: 125px } * HTML #box_160_600 .content { WIDTH: 125px } ------=_NextPart_000_0020_01C7A5EA.EA8F7930 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://media.collegepublisher.com/media/scripts/coda/mtvi_reporting.js /*Build Date: Wed Jan 24, 2007 13:39:48*/=0A= =0A= var = com=3D{mtvi:{util:{},logger:{},config:{},ads:{},reporting:{}}};String.pro= totype.trim=3Dfunction(){return this.replace(/^\\s+|\\s+$/g,'');}=0A= String.prototype.chop=3Dfunction(n){if(isNaN(n)){n=3Dthis.length-1;}retur= n(this.substring(0,n));}=0A= String.prototype.ucFirst=3Dfunction(){return(this.charAt(0).toUpperCase()= +this.substr(1,this.length));}=0A= if(typeof = document.getElementsByClassName=3D=3D"undefined"){document.getElementsByC= lassName=3Dfunction(s){var nodes=3D[];var name=3Dnew = RegExp('\\b'+s+'\\b');var elems=3Dthis.getElementsByTagName('*');for(var = i=3D0;i";}catch(e){}}};com.mtvi.logger=3D{url= :"http://viarnd.112.2o7.net/b/ss/viarnd/1/EMAIL?",send:function(msg){if(M= TVi.util.isDefined(msg)){var img=3Dnew = Image();img.src=3Dmsg;}},JsError:function(e){try{var = map=3D{message:'c21',name:'c22',stack:'c23'};var = msg=3Dthis.url+"pageName=3DJS_ER-"+window.location;if(!MTVi.util.isDefine= d(e.stack)){e.stack=3Dwindow.location.href;}=0A= for(var i in = map){if(MTVi.util.isDefined(e[i])){msg+=3D"&"+map[i]+"=3D"+e[i];}}=0A= this.send(msg);}catch(e){try{this.send(this.url+"pageName=3DJS_ER-"+"com.= mtvi.logger = error:"+e.message);}catch(e){}}}};com.mtvi.reporting.Widget=3Ds_gi('none'= );com.mtvi.reporting.Widget.setAttribute=3Dfunction(k,v){try{if(com.mtvi.= util.isDefined(k)){this[k]=3Dcom.mtvi.util.isDefined(v)?v:'';}}catch(e){}= };com.mtvi.reporting.Widget.getAttribute=3Dfunction(k){try{if(com.mtvi.ut= il.isDefined(k)){return = this[k];}else{return;}}catch(e){}};com.mtvi.reporting.Widget.setAccount=3D= function(v){try{this.setAttribute("un",v);}catch(e){}};com.mtvi.reporting= .Widget.getAccount=3Dfunction(v){try{this.getAttribute("un");}catch(e){}}= ;com.mtvi.reporting.Widget.appendCall=3Dfunction(s){try{document.write('<= div style=3D"display:none;">'+s+'
      ');}catch(e){}};var = s_objectID;function s_c2fe(f){var = x=3D'',s=3D0,e,a,b,c;while(1){e=3Df.indexOf('"',s);b=3Df.indexOf('\\',s);= c=3Df.indexOf("\n",s);if(e<0||(b>=3D0&&b=3D0&&c=3D0){x+=3D(e>s?f.substring(s,e):'')+(e=3D=3Dc?'\\n':'\\'+f.sub= string(e,e+1));s=3De+1}else return x=0A= +f.substring(s)}return f}function s_c2fa(f){var = s=3Df.indexOf('(')+1,e=3Df.indexOf(')'),a=3D'',c;while(s>=3D0&&s=3D0){= d=3D1;q=3D'';x=3D0;f=3Dc.substring(s);a=3Ds_c2fa(f);e=3Do=3Dc.indexOf('{'= ,s);e++;while(d>0){h=3Dc.substring(e,e+1);if(q){if(h=3D=3Dq&&!x)q=3D'';if= (h=3D=3D'\\')x=3Dx?0:1;else = x=3D0}else{if(h=3D=3D'"'||h=3D=3D"'")q=3Dh;if(h=3D=3D'{')d++;if(h=3D=3D'}= ')d--}if(d>0)e++}c=3Dc.substring(0,s)=0A= +'new Function('+(a?a+',':'')+'"'+s_c2fe(c.substring(o+1,e))+'")'=0A= +c.substring(e+1);s=3Dc.indexOf('function')}fc+=3Ds_c2fe(c)+';return = s");'=0A= eval(fc);return f}function s_gi(un,pg,ss){var c=3D"function s_c(un,pg,s"=0A= +"s){var s=3Dthis;s.wd=3Dwindow;if(!s.wd.s_c_in){s.wd.s_c_il=3Dnew = Array;s."=0A= +"wd.s_c_in=3D0;}s._il=3Ds.wd.s_c_il;s._in=3Ds.wd.s_c_in;s._il[s._in]=3Ds= ;s.w"=0A= +"d.s_c_in++;s.m=3Dfunction(m){return = (''+m).indexOf('{')<0};s.fl=3Dfunct"=0A= +"ion(x,l){return x?(''+x).substring(0,l):x};s.co=3Dfunction(o){if(!o)r"=0A= +"eturn o;var n=3Dnew Object,x;for(x in o)if(x.indexOf('select')<0&&x.i"=0A= +"ndexOf('filter')<0)n[x]=3Do[x];return = n};s.num=3Dfunction(x){x=3D''+x;for"=0A= +"(var p=3D0;p0?n.length:1;while(x&&i>=3D0){x=3Dx.substring(0,i)+n+x.substri= "=0A= +"ng(i+o.length);i=3Dx.indexOf(o,i+l)}return x};s.ape=3Dfunction(x){var = s"=0A= +"=3Dthis,i;x=3Dx?s.rep(escape(''+x),'+','%2B'):x;if(x&&s.charSet&&s.em=3D= =3D"=0A= +"1&&x.indexOf('%u')<0&&x.indexOf('%U')<0){i=3Dx.indexOf('%');while(i>=3D= "=0A= +"0){i++;if(('89ABCDEFabcdef').indexOf(x.substring(i,i+1))>=3D0)return "=0A= +"x.substring(0,i)+'u00'+x.substring(i);i=3Dx.indexOf('%',i)}}return x}"=0A= +";s.epa=3Dfunction(x){var s=3Dthis;return x?unescape(s.rep(''+x,'+',' = ')"=0A= +"):x};s.pt=3Dfunction(x,d,f,a){var = s=3Dthis,t=3Dx,z=3D0,y,r;while(t){y=3Dt.ind"=0A= +"exOf(d);y=3Dy<0?t.length:y;t=3Dt.substring(0,y);r=3Ds.m(f)?s[f](t,a):f(= t,"=0A= +"a);if(r)return = r;z+=3Dy+d.length;t=3Dx.substring(z,x.length);t=3Dz=3D0"=0A= +")a=3Da.substring(0,c);if(t.substring(0,2)=3D=3D's_')t=3Dt.substring(2);= retu"=0A= +"rn (t!=3D''&&t=3D=3Da)};s.fsf=3Dfunction(t,a){var = s=3Dthis;if(s.pt(a,',','isf"=0A= +"',t))s.fsg+=3D(s.fsg!=3D''?',':'')+t;return = 0};s.fs=3Dfunction(x,f){var s"=0A= +"=3Dthis;s.fsg=3D'';s.pt(x,',','fsf',f);return = s.fsg};s.c_d=3D'';s.c_gdf=3Df"=0A= +"unction(t,a){var s=3Dthis;if(!s.num(t))return 1;return = 0};s.c_gd=3Dfunc"=0A= +"tion(){var = s=3Dthis,d=3Ds.wd.location.hostname,n=3Ds.cookieDomainPeriods,"=0A= +"p;if(d&&!s.c_d){n=3Dn?parseInt(n):2;n=3Dn>2?n:2;p=3Dd.lastIndexOf('.');= wh"=0A= +"ile(p>=3D0&&n>1){p=3Dd.lastIndexOf('.',p-1);n--}s.c_d=3Dp>0&&s.pt(d,'.'= ,'"=0A= +"c_gdf',0)?d.substring(p):''}return s.c_d};s.c_r=3Dfunction(k){var = s=3Dt"=0A= +"his;k=3Ds.ape(k);var c=3D' '+s.d.cookie,i=3Dc.indexOf(' = '+k+'=3D'),e=3Di<0?i:"=0A= +"c.indexOf(';',i),v=3Di<0?'':s.epa(c.substring(i+2+k.length,e<0?c.leng"=0A= +"th:e));return v!=3D'[[B]]'?v:''};s.c_w=3Dfunction(k,v,e){var = s=3Dthis,d=3Ds"=0A= +".c_gd(),l=3Ds.cookieLifetime,t;v=3D''+v;l=3Dl?(''+l).toUpperCase():'';i= f("=0A= +"e&&l!=3D'SESSION'&&l!=3D'NONE'){t=3D(v!=3D''?parseInt(l?l:0):-60);if(t)= {e=3Dn"=0A= +"ew Date;e.setTime(e.getTime()+(t*1000))}}if(k&&l!=3D'NONE'){s.d.cooki"=0A= +"e=3Dk+'=3D'+s.ape(v!=3D''?v:'[[B]]')+'; = path=3D/;'+(e&&l!=3D'SESSION'?' expir"=0A= +"es=3D'+e.toGMTString()+';':'')+(d?' domain=3D'+d+';':'');return = s.c_r(k"=0A= +")=3D=3Dv}return 0};s.eh=3Dfunction(o,e,r,f){var = s=3Dthis,b=3D's_'+e+'_'+s._in"=0A= +",n=3D-1,l,i,x;if(!s.ehl)s.ehl=3Dnew = Array;l=3Ds.ehl;for(i=3D0;i=3D5)eval('try{r=3Ds.m(f)?s[f](a):f(a)}catch(e){r=3Ds.= m("=0A= +"t)?s[t](e):t(e)}');else{if(s.ismac&&s.u.indexOf('MSIE = 4')>=3D0)r=3Ds.m("=0A= +"b)?s[b](a):b(a);else{s.eh(s.wd,'onerror',0,o);r=3Ds.m(f)?s[f](a):f(a)"=0A= +";s.eh(s.wd,'onerror',1)}}return r};s.gtfset=3Dfunction(e){var = s=3Dthis;"=0A= +"return s.tfs};s.gtfsoe=3Dnew Function('e','var = s=3Ds_c_il['+s._in+'];s."=0A= +"eh(window,\"onerror\",1);s.etfs=3D1;var = c=3Ds.t();if(c)s.d.write(c);s.e"=0A= +"tfs=3D0;return true');s.gtfsfb=3Dfunction(a){return = window};s.gtfsf=3Dfun"=0A= +"ction(w){var = s=3Dthis,p=3Dw.parent,l=3Dw.location;s.tfs=3Dw;if(p&&p.locatio"=0A= +"n!=3Dl&&p.location.host=3D=3Dl.host){s.tfs=3Dp;return = s.gtfsf(s.tfs)}return"=0A= +" s.tfs};s.gtfs=3Dfunction(){var = s=3Dthis;if(!s.tfs){s.tfs=3Ds.wd;if(!s.et"=0A= +"fs)s.tfs=3Ds.cet('gtfsf',s.tfs,'gtfset',s.gtfsoe,'gtfsfb')}return s.t"=0A= +"fs};s.ca=3Dfunction(){var = s=3Dthis,imn=3D's_i_'+s.fun;if(s.d.images&&s.ap"=0A= +"v>=3D3&&!s.isopera&&(s.ns6<0||s.apv>=3D6.1)){s.ios=3D1;if(!s.d.images[i= mn"=0A= +"]&&(!s.isns||(s.apv<4||s.apv>=3D5))){s.d.write('
      ');if(!s.d.images[imn])s.ios"=0A= +"=3D0}}};s.mr=3Dfunction(sess,q,ta){var = s=3Dthis,ns=3Ds.visitorNamespace,unc"=0A= +"=3Ds.rep(s.fun,'_','-'),imn=3D's_i_'+s.fun,im,b,e,rs=3D'http'+(s.ssl?'s= ':"=0A= +"'')+'://'+(ns?ns:(s.ssl?'102':unc))+'.112.2O7.net/b/ss/'+s.un+'/1/H"=0A= +".1-pdv-2/'+sess+'?[AQB]&ndh=3D1'+(q?q:'')+(s.q?s.q:'')+'&[AQE]';if(s."=0A= +"isie&&!s.ismac){if(s.apv>5.5)rs=3Ds.fl(rs,4095);else = rs=3Ds.fl(rs,2047)"=0A= +"}if(s.ios){im=3Ds.wd[imn]?s.wd[imn]:s.d.images[imn];if(!im)im=3Ds.wd[im= "=0A= +"n]=3Dnew = Image;im.src=3Drs;if(rs.indexOf('&pe=3D')>=3D0&&(!ta||ta=3D=3D'_self'|"=0A= +"|ta=3D=3D'_top'||(s.wd.name&&ta=3D=3Ds.wd.name))){b=3De=3Dnew = Date;while(e.getT"=0A= +"ime()-b.getTime()<500)e=3Dnew Date}return ''}return ''};s.gg=3Dfunction(v){v"=0A= +"ar s=3Dthis;return = s.wd['s_'+v]};s.glf=3Dfunction(t,a){if(t.substring(0"=0A= +",2)=3D=3D's_')t=3Dt.substring(2);var = s=3Dthis,v=3Ds.gg(t);if(v)s[t]=3Dv};s.gl=3Df"=0A= +"unction(v){var s=3Dthis;s.pt(v,',','glf',0)};s.gv=3Dfunction(v){var = s=3Dt"=0A= +"his;return s['vpm_'+v]?s['vpv_'+v]:s[v]};s.havf=3Dfunction(t,a){var s"=0A= +"=3Dthis,b=3Dt.substring(0,4),x=3Dt.substring(4),n=3DparseInt(x),k=3D'g_= '+t,m=3D"=0A= +"'vpm_'+t,q=3Dt,v=3Ds.linkTrackVars,e=3Ds.linkTrackEvents;s[k]=3Ds.gv(t)= ;if("=0A= +"s.lnk||s.eo){v=3Dv?v+','+s.vl_l:'';if(v&&!s.pt(v,',','isf',t))s[k]=3D''= "=0A= +";if(t=3D=3D'events'&&e)s[k]=3Ds.fs(s[k],e)}s[m]=3D0;if(t=3D=3D'pageURL'= )q=3D'g';e"=0A= +"lse if(t=3D=3D'referrer')q=3D'r';else = if(t=3D=3D'charSet'){q=3D'ce';if(s[k]&&s."=0A= +"em=3D=3D2)s[k]=3D'UTF-8'}else = if(t=3D=3D'visitorNamespace')q=3D'ns';else if(t=3D=3D"=0A= +"'cookieDomainPeriods')q=3D'cdp';else = if(t=3D=3D'cookieLifetime')q=3D'cl';el"=0A= +"se if(t=3D=3D'visitVariableProvider')q=3D'vvp';else = if(t=3D=3D'currencyCode')"=0A= +"q=3D'cc';else if(t=3D=3D'channel')q=3D'ch';else = if(t=3D=3D'campaign')q=3D'v0';els"=0A= +"e if(s.num(x)) {if(b=3D=3D'prop')q=3D'c'+n;else = if(b=3D=3D'eVar')q=3D'v'+n;else"=0A= +" = if(b=3D=3D'hier'){q=3D'h'+n;s[k]=3Ds.fl(s[k],255)}}if(s[k]&&t!=3D'linkNam= e'&"=0A= +"&t!=3D'linkType')s.qav+=3D'&'+q+'=3D'+s.ape(s[k]);return = ''};s.hav=3Dfuncti"=0A= +"on(){var s=3Dthis;s.qav=3D'';s.pt(s.vl_t,',','havf',0);return = s.qav};s."=0A= +"lnf=3Dfunction(t,h){t=3Dt?t.toLowerCase():'';h=3Dh?h.toLowerCase():'';v= ar"=0A= +" = te=3Dt.indexOf('=3D');if(t&&te>0&&h.indexOf(t.substring(te+1))>=3D0)retu"=0A= +"rn t.substring(0,te);return ''};s.ln=3Dfunction(h){var = s=3Dthis,n=3Ds.lin"=0A= +"kNames;if(n)return s.pt(n,',','lnf',h);return ''};s.ltdf=3Dfunction(t"=0A= +",h){t=3Dt?t.toLowerCase():'';h=3Dh?h.toLowerCase():'';var = qi=3Dh.indexOf("=0A= +"'?');h=3Dqi>=3D0?h.substring(0,qi):h;if(t&&h.substring(h.length-(t.leng= "=0A= +"th+1))=3D=3D'.'+t)return 1;return = 0};s.ltef=3Dfunction(t,h){t=3Dt?t.toLower"=0A= +"Case():'';h=3Dh?h.toLowerCase():'';if(t&&h.indexOf(t)>=3D0)return = 1;ret"=0A= +"urn 0};s.lt=3Dfunction(h){var = s=3Dthis,lft=3Ds.linkDownloadFileTypes,lef=3D"=0A= +"s.linkExternalFilters,lif=3Ds.linkInternalFilters;lif=3Dlif?lif:s.wd.lo= "=0A= +"cation.hostname;h=3Dh.toLowerCase();if(s.trackDownloadLinks&&lft&&s.p"=0A= +"t(lft,',','ltdf',h))return 'd';if(s.trackExternalLinks&&(lef||lif)&"=0A= +"&(!lef||s.pt(lef,',','ltef',h))&&(!lif||!s.pt(lif,',','ltef',h)))re"=0A= +"turn 'e';return ''};s.lc=3Dnew Function('e','var = s=3Ds_c_il['+s._in+'],"=0A= +"b=3Ds.eh(this,\"onclick\");s.lnk=3Ds.co(this);s.t();s.lnk=3D0;if(b)retu= rn"=0A= +" this[b](e);return true');s.bc=3Dnew Function('e','var = s=3Ds_c_il['+s._"=0A= +"in+'];if(s.d&&s.d.all&&s.d.all.cppXYctnr)return;s.eo=3De.srcElement?e"=0A= +".srcElement:e.target;s.t();s.eo=3D0');s.ot=3Dfunction(o){var = a=3Do.type,b"=0A= +"=3Do.tagName;return (a&&a.toUpperCase?a:b&&b.toUpperCase?b:o.href?'A'"=0A= +":'').toUpperCase()};s.oid=3Dfunction(o){var = s=3Dthis,t=3Ds.ot(o),p=3Do.prot"=0A= +"ocol,c=3Do.onclick,n=3D'',x=3D0;if(!o.s_oid){if(o.href&&(t=3D=3D'A'||t=3D= =3D'AREA"=0A= +"')&&(!c||!p||p.toLowerCase().indexOf('javascript')<0))n=3Do.href;else"=0A= +" if(c){n=3Ds.rep(s.rep(s.rep(s.rep(''+c,\"\\r\",''),\"\\n\",''),\"\\t"=0A= +"\",''),' ','');x=3D2}else = if(o.value&&(t=3D=3D'INPUT'||t=3D=3D'SUBMIT')){n=3Do."=0A= +"value;x=3D3}else = if(o.src&&t=3D=3D'IMAGE')n=3Do.src;if(n){o.s_oid=3Ds.fl(n,10"=0A= +"0);o.s_oidt=3Dx}}return o.s_oid};s.rqf=3Dfunction(t,un){var = s=3Dthis,e=3Dt."=0A= +"indexOf('=3D'),u=3De>=3D0?','+t.substring(0,e)+',':'';return = u&&u.indexOf"=0A= +"(','+un+',')>=3D0?s.epa(t.substring(e+1)):''};s.rq=3Dfunction(un){var = s"=0A= +"=3Dthis,c=3Dun.indexOf(','),v=3Ds.c_r('s_sq'),q=3D'';if(c<0)return = s.pt(v,'"=0A= +"&','rqf',un);return s.pt(un,',','rq',0)};s.sqp=3Dfunction(t,a){var = s=3D"=0A= +"this,e=3Dt.indexOf('=3D'),q=3De<0?'':s.epa(t.substring(e+1));s.sqq[q]=3D= '';"=0A= +"if(e>=3D0)s.pt(t.substring(0,e),',','sqs',q);return = 0};s.sqs=3Dfunction"=0A= +"(un,q){var s=3Dthis;s.squ[un]=3Dq;return 0};s.sq=3Dfunction(q){var = s=3Dthis"=0A= +",k=3D's_sq',v=3Ds.c_r(k),x,c=3D0;s.sqq=3Dnew Object;s.squ=3Dnew = Object;s.sqq["=0A= +"q]=3D'';s.pt(v,'&','sqp',0);s.pt(s.un,',','sqs',q);v=3D'';for(x in = s.sq"=0A= +"u)s.sqq[s.squ[x]]+=3D(s.sqq[s.squ[x]]?',':'')+x;for(x in s.sqq)if(x&&"=0A= +"s.sqq[x]&&(x=3D=3Dq||c<2)){v+=3D(v?'&':'')+s.sqq[x]+'=3D'+s.ape(x);c++}= retu"=0A= +"rn s.c_w(k,v,0)};s.wdl=3Dnew Function('e','var = s=3Ds_c_il['+s._in+'],r=3D"=0A= +"true,b=3Ds.eh(s.wd,\"onload\"),i,o,oc;if(b)r=3Dthis[b](e);for(i=3D0;i=3D0)&&oc.indexOf"=0A= +"(\".tl(\")<0)s.eh(o,\"onclick\",0,s.lc);}return r');s.wds=3Dfunction("=0A= +"){var = s=3Dthis;if(s.apv>3&&(!s.isie||!s.ismac||s.apv>=3D5)){if(s.b&&s.b"=0A= +".attachEvent)s.b.attachEvent('onclick',s.bc);else if(s.b&&s.b.addEv"=0A= +"entListener)s.b.addEventListener('click',s.bc,false);else s.eh(s.wd"=0A= +",'onload',0,s.wdl)}};s.vs=3Dfunction(x){var = s=3Dthis,v=3Ds.visitorSamplin"=0A= +"g,g=3Ds.visitorSamplingGroup,k=3D's_vsn_'+s.un+(g?'_'+g:''),n=3Ds.c_r(k= ),"=0A= +"e=3Dnew = Date,y=3De.getYear();e.setYear(y+10+(y<1900?1900:0));if(v){v*=3D1"=0A= +"00;if(!n){if(!s.c_w(k,x,e))return 0;n=3Dx}if(n%10000>v)return 0}retur"=0A= +"n 1};s.dyasmf=3Dfunction(t,m){if(t&&m&&m.indexOf(t)>=3D0)return = 1;retur"=0A= +"n 0};s.dyasf=3Dfunction(t,m){var = s=3Dthis,i=3Dt?t.indexOf('=3D'):-1,n,x;if("=0A= +"i>=3D0&&m){var = n=3Dt.substring(0,i),x=3Dt.substring(i+1);if(s.pt(x,',','d"=0A= +"yasmf',m))return n}return 0};s.uns=3Dfunction(){var = s=3Dthis,x=3Ds.dynami"=0A= +"cAccountSelection,l=3Ds.dynamicAccountList,m=3Ds.dynamicAccountMatch,n,= "=0A= +"i;s.un.toLowerCase();if(x&&l){if(!m)m=3Ds.wd.location.host;if(!m.toLo"=0A= +"werCase)m=3D''+m;l=3Dl.toLowerCase();m=3Dm.toLowerCase();n=3Ds.pt(l,';'= ,'dy"=0A= +"asf',m);if(n)s.un=3Dn}i=3Ds.un.indexOf(',');s.fun=3Di<0?s.un:s.un.subst= ri"=0A= +"ng(0,i)};s.t=3Dfunction(){var s=3Dthis,trk=3D1,tm=3Dnew = Date,sed=3DMath&&Math"=0A= +".random?Math.floor(Math.random()*10000000000000):tm.getTime(),sess=3D"=0A= +"'s'+Math.floor(tm.getTime()/10800000)%10+sed,yr=3Dtm.getYear(),vt=3Dtm.= "=0A= +"getDate()+'/'+tm.getMonth()+'/'+(yr<1900?yr+1900:yr)+' '+tm.getHour"=0A= +"s()+':'+tm.getMinutes()+':'+tm.getSeconds()+' '+tm.getDay()+' '+tm."=0A= +"getTimezoneOffset(),tfs=3Ds.gtfs(),ta=3D'',q=3D'',qs=3D'';s.uns();if(!s= .q){"=0A= +"var = tl=3Dtfs.location,x=3D'',c=3D'',v=3D'',p=3D'',bw=3D'',bh=3D'',j=3D'1.0',k= =3Ds.c_w"=0A= +"('s_cc','true',0)?'Y':'N',hp=3D'',ct=3D'',pn=3D0,ps;if(s.apv>=3D4)x=3Ds= creen."=0A= +"width+'x'+screen.height;if(s.isns||s.isopera){if(s.apv>=3D3){j=3D'1.1';= "=0A= +"v=3Ds.n.javaEnabled()?'Y':'N';if(s.apv>=3D4){j=3D'1.2';c=3Dscreen.pixel= Dept"=0A= +"h;bw=3Ds.wd.innerWidth;bh=3Ds.wd.innerHeight;if(s.apv>=3D4.06)j=3D'1.3'= }}s."=0A= +"pl=3Ds.n.plugins}else = if(s.isie){if(s.apv>=3D4){v=3Ds.n.javaEnabled()?'Y'"=0A= +":'N';j=3D'1.2';c=3Dscreen.colorDepth;if(s.apv>=3D5){bw=3Ds.d.documentEl= emen"=0A= +"t.offsetWidth;bh=3Ds.d.documentElement.offsetHeight;j=3D'1.3';if(!s.ism= "=0A= +"ac&&s.b){s.b.addBehavior('#default#homePage');hp=3Ds.b.isHomePage(tl)"=0A= +"?\"Y\":\"N\";s.b.addBehavior('#default#clientCaps');ct=3Ds.b.connecti"=0A= +"onType}}}else = r=3D''}if(s.pl)while(pn=3D0&&oc.indexOf(\".s_"=0A= +"oc(\")<0)||oc.indexOf(\".tl(\")>=3D0)return = ''}ta=3Do.target;h=3Do.href?o"=0A= +".href:'';i=3Dh.indexOf('?');h=3Ds.linkLeaveQueryString||i<0?h:h.substri= "=0A= +"ng(0,i);l=3Ds.linkName?s.linkName:s.ln(h);t=3Ds.linkType?s.linkType.toL= "=0A= +"owerCase():s.lt(h);if(t&&(h||l))q+=3D'&pe=3Dlnk_'+(t=3D=3D'd'||t=3D=3D'= e'?s.ape"=0A= +"(t):'o')+(h?'&pev1=3D'+s.ape(h):'')+(l?'&pev2=3D'+s.ape(l):'');else = trk"=0A= +"=3D0;if(s.trackInlineStats){if(!p){p=3Ds.gv('pageURL');w=3D0}t=3Ds.ot(o= );i=3D"=0A= +"o.sourceIndex;if(s.gg('objectID')){n=3Ds.gg('objectID');x=3D1;i=3D1}if(= p&"=0A= +"&n&&t)qs=3D'&pid=3D'+s.ape(s.fl(p,255))+(w?'&pidt=3D'+w:'')+'&oid=3D'+s= .ape"=0A= +"(s.fl(n,100))+(x?'&oidt=3D'+x:'')+'&ot=3D'+s.ape(t)+(i?'&oi=3D'+i:'')}}= if"=0A= +"(!trk&&!qs)return '';var = code=3D'';if(trk&&s.vs(sed))code=3Ds.mr(sess,("=0A= +"vt?'&t=3D'+s.ape(vt):'')+s.hav()+q+(qs?qs:s.rq(s.un)),ta);s.sq(trk?''"=0A= +":qs);s.lnk=3Ds.eo=3Ds.linkName=3Ds.linkType=3Ds.wd.s_objectID=3D'';retu= rn cod"=0A= +"e};s.tl=3Dfunction(o,t,n){var = s=3Dthis;s.lnk=3Ds.co(o);s.linkType=3Dt;s.lin"=0A= +"kName=3Dn;s.t()};s.ssl=3D(s.wd.location.protocol.toLowerCase().indexOf(= "=0A= +"'https')>=3D0);s.d=3Ddocument;s.b=3Ds.d.body;s.n=3Dnavigator;s.u=3Ds.n.= userAg"=0A= +"ent;s.ns6=3Ds.u.indexOf('Netscape6/');var = apn=3Ds.n.appName,v=3Ds.n.appVe"=0A= +"rsion,ie=3Dv.indexOf('MSIE = '),i;if(v.indexOf('Opera')>=3D0||s.u.indexOf"=0A= +"('Opera')>=3D0)apn=3D'Opera';s.isie=3D(apn=3D=3D'Microsoft Internet = Explorer'"=0A= +");s.isns=3D(apn=3D=3D'Netscape');s.isopera=3D(apn=3D=3D'Opera');s.ismac= =3D(s.u.in"=0A= +"dexOf('Mac')>=3D0);if(ie>0){s.apv=3DparseInt(i=3Dv.substring(ie+5));if(= s."=0A= +"apv>3)s.apv=3DparseFloat(i)}else = if(s.ns6>0)s.apv=3DparseFloat(s.u.subs"=0A= +"tring(s.ns6+10));else = s.apv=3DparseFloat(v);s.em=3D0;if(String.fromChar"=0A= +"Code){i=3Descape(String.fromCharCode(256)).toUpperCase();s.em=3D(i=3D=3D= '%C"=0A= +"4%80'?2:(i=3D=3D'%U0100'?1:0))}s.un=3Dun;s.uns();s.vl_l=3D'charSet,visi= torN"=0A= +"amespace,cookieDomainPeriods,cookieLifetime,visitVariableProvider,p"=0A= +"ageName,pageURL,referrer,currencyCode,purchaseID';s.vl_t=3Ds.vl_l+',c"=0A= +"hannel,server,pageType,campaign,state,zip,events,products,linkName,"=0A= +"linkType';for(var = n=3D1;n<51;n++)s.vl_t+=3D',prop'+n+',eVar'+n+',hier'+"=0A= +"n;s.vl_g=3Ds.vl_t+',trackDownloadLinks,trackExternalLinks,trackInline"=0A= +"Stats,linkLeaveQueryString,linkDownloadFileTypes,linkExternalFilter"=0A= +"s,linkInternalFilters,linkNames';if(pg)s.gl(s.vl_g);if(!ss){s.wds()"=0A= +";s.ca()}}",l=3Dwindow.s_c_il,n=3Dnavigator,u=3Dn.userAgent,v=3Dn.appVer= sion,e=3Dv.indexOf('MSIE = '),m=3Du.indexOf('Netscape6/'),a,i,s;if(l)for(i=3D0;i0){a=3DparseInt(i=3Dv.substring(e=0A= +5));if(a>3)a=3DparseFloat(i)}else = if(m>0)a=3DparseFloat(u.substring(m+10));else = a=3DparseFloat(v);if(a>=3D5&&v.indexOf('Opera')<0&&u.indexOf('Opera')<0){= eval(c);return new s_c(un,pg,ss)}else s=3Ds_c2f(c);return = s(un,pg,ss)}com.mtvi.reporting.Dispatcher=3Dnew = function(){this.version=3D"2.0";try{this.widget=3Dcom.mtvi.reporting.Widg= et;}catch(e){}=0A= this.send=3Dfunction(){try{if(com.mtvi.util.isDefined(this.widget.un)){va= r = hcode=3Dthis.widget.t();}}catch(e){try{com.mtvi.logger.JsError(e);}catch(= e){}}};this.setAccountVars=3Dfunction(o){try{this.widget.setAccount(o.nam= e);this.widget.setAttribute("dynamicAccountSelection",o.dynamic);this.wid= get.setAttribute("dynamicAccountList",o.list);this.widget.setAttribute("l= inkInternalFilters",o.filters);}catch(e){}};this.setValues=3Dfunction(o){= try{for(var i in = o){this.widget.setAttribute(i,o[i]);}}catch(e){}};this.config=3Dfunction(= ){try{this.setAccountVars(com.mtvi.reporting.Account);}catch(e){}=0A= try{this.setValues(com.mtvi.reporting.Map());}catch(e){}};this.sendCall=3D= function(){try{this.setAccountVars(com.mtvi.reporting.Account);try{this.s= etValues(com.mtvi.reporting.Map());}catch(e){}=0A= try{this.setValues(com.mtvi.config.SectionSetup);}catch(e){}=0A= this.send();}catch(e){try{com.mtvi.logger.JsError(e);}catch(e){}}};this.s= etDefaultData=3Dfunction(){try{var = pn=3Dlocation.href;pn=3Dpn.replace(/^.*www\.(.*)\.com/g,"");pn=3Dpn.repla= ce(/^.*(.*)\.com/g,"");pn=3Dcom.mtvi.config.Get.channel+pn;this.widget.se= tAttribute("pageName","/"+pn);this.widget.setAttribute("hier1",pn);this.w= idget.setAttribute("channel",com.mtvi.config.Get.channel);this.widget.set= Attribute(com.mtvi.config.Get.site,com.mtvi.config.Get.channel);}catch(e)= {try{com.mtvi.logger.JsError(e);}catch(e){}}};this.sendThirdPartyCall=3Df= unction(){try{this.setAccountVars(com.mtvi.config.Get);this.setThirdParty= Data();try{this.setValues(com.mtvi.reporting.Map());}catch(e){}=0A= this.send();}catch(e){try{com.mtvi.logger.JsError(e);}catch(e){}}};this.s= endLinkEvent=3Dfunction(name){try{var = hier2=3Dthis.widget.getAttribute("hier2");this.widget=3Dcom.mtvi.reportin= g.Widget;this.config();this.setValues({linkType:"o",lnk:true,linkName:nam= e,hier2:""});this.send();this.widget.setAttribute("hier2",hier2);}catch(e= ){try{com.mtvi.logger.JsError(e);}catch(e){}}};this.getBaseUrl=3Dfunction= (){try{this.config();var = vendorUrl=3D".112.2o7.net/b/ss/";return("http"+(this.widget.ssl?'s':'')+"= ://"+this.widget.un+vendorUrl+this.widget.un+"/1/");}catch(e){try{com.mtv= i.logger.JsError(e);}catch(e){}}};this.sendFailedSearch=3Dfunction(v){try= {if(com.mtvi.util.isDefined(v)){var = aImg=3Ddocument.createElement('img');aImg.src=3Dthis.getBaseUrl()+"EMAIL?= pageName=3DFAILED+SEARCH&v4=3D"+v;aImg.id=3D"failedSearchCall";document.g= etElementsByTagName('body')[0].appendChild(aImg);}}catch(e){try{com.mtvi.= logger.JsError(e);}catch(e){}}};this.replacePathSection=3Dfunction(path,n= ewValue,replaceAt){try{var = pathParts=3D(path.charAt(0)!=3D"/")?path.split("/"):path.substring(1).spl= it("/");if(isNaN(replaceAt)||replaceAt>=3DpathParts.length)return = false;pathParts[replaceAt]=3DnewValue;var = newPath=3DpathParts.join("/");return = newPath;}catch(e){try{com.mtvi.logger.JsError(e);return = false}catch(e){return = false}}};this.deletePathSection=3Dfunction(path,removeAt){try{var = pathParts=3D(path.charAt(0)!=3D"/")?path.split("/"):path.substring(1).spl= it("/");if(isNaN(removeAt)||removeAt>=3DpathParts.length)return = false;pathParts.splice(removeAt,1);var = newPath=3DpathParts.join("/");return = newPath;}catch(e){try{com.mtvi.logger.JsError(e);return = false}catch(e){return = false}}};this.setAttribute=3Dfunction(k,v){this.widget.setAttribute(k,v);= };this.getAttribute=3Dfunction(k){return this.widget.getAttribute(k);};}; ------=_NextPart_000_0020_01C7A5EA.EA8F7930 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://media.collegepublisher.com/media/scripts/prototype.js /* Prototype JavaScript framework, version 1.5.0=0A= * (c) 2005-2007 Sam Stephenson=0A= *=0A= * Prototype is freely distributable under the terms of an MIT-style = license.=0A= * For details, see the Prototype web site: http://prototype.conio.net/=0A= *=0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= var Prototype =3D {=0A= Version: '1.5.0',=0A= BrowserFeatures: {=0A= XPath: !!document.evaluate=0A= },=0A= =0A= ScriptFragment: '(?:)((\n|\r|.)*?)(?:<\/script>)',=0A= emptyFunction: function() {},=0A= K: function(x) { return x }=0A= }=0A= =0A= var Class =3D {=0A= create: function() {=0A= return function() {=0A= this.initialize.apply(this, arguments);=0A= }=0A= }=0A= }=0A= =0A= var Abstract =3D new Object();=0A= =0A= Object.extend =3D function(destination, source) {=0A= for (var property in source) {=0A= destination[property] =3D source[property];=0A= }=0A= return destination;=0A= }=0A= =0A= Object.extend(Object, {=0A= inspect: function(object) {=0A= try {=0A= if (object =3D=3D=3D undefined) return 'undefined';=0A= if (object =3D=3D=3D null) return 'null';=0A= return object.inspect ? object.inspect() : object.toString();=0A= } catch (e) {=0A= if (e instanceof RangeError) return '...';=0A= throw e;=0A= }=0A= },=0A= =0A= keys: function(object) {=0A= var keys =3D [];=0A= for (var property in object)=0A= keys.push(property);=0A= return keys;=0A= },=0A= =0A= values: function(object) {=0A= var values =3D [];=0A= for (var property in object)=0A= values.push(object[property]);=0A= return values;=0A= },=0A= =0A= clone: function(object) {=0A= return Object.extend({}, object);=0A= }=0A= });=0A= =0A= Function.prototype.bind =3D function() {=0A= var __method =3D this, args =3D $A(arguments), object =3D args.shift();=0A= return function() {=0A= return __method.apply(object, args.concat($A(arguments)));=0A= }=0A= }=0A= =0A= Function.prototype.bindAsEventListener =3D function(object) {=0A= var __method =3D this, args =3D $A(arguments), object =3D args.shift();=0A= return function(event) {=0A= return __method.apply(object, [( event || = window.event)].concat(args).concat($A(arguments)));=0A= }=0A= }=0A= =0A= Object.extend(Number.prototype, {=0A= toColorPart: function() {=0A= var digits =3D this.toString(16);=0A= if (this < 16) return '0' + digits;=0A= return digits;=0A= },=0A= =0A= succ: function() {=0A= return this + 1;=0A= },=0A= =0A= times: function(iterator) {=0A= $R(0, this, true).each(iterator);=0A= return this;=0A= }=0A= });=0A= =0A= var Try =3D {=0A= these: function() {=0A= var returnValue;=0A= =0A= for (var i =3D 0, length =3D arguments.length; i < length; i++) {=0A= var lambda =3D arguments[i];=0A= try {=0A= returnValue =3D lambda();=0A= break;=0A= } catch (e) {}=0A= }=0A= =0A= return returnValue;=0A= }=0A= }=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= var PeriodicalExecuter =3D Class.create();=0A= PeriodicalExecuter.prototype =3D {=0A= initialize: function(callback, frequency) {=0A= this.callback =3D callback;=0A= this.frequency =3D frequency;=0A= this.currentlyExecuting =3D false;=0A= =0A= this.registerCallback();=0A= },=0A= =0A= registerCallback: function() {=0A= this.timer =3D setInterval(this.onTimerEvent.bind(this), = this.frequency * 1000);=0A= },=0A= =0A= stop: function() {=0A= if (!this.timer) return;=0A= clearInterval(this.timer);=0A= this.timer =3D null;=0A= },=0A= =0A= onTimerEvent: function() {=0A= if (!this.currentlyExecuting) {=0A= try {=0A= this.currentlyExecuting =3D true;=0A= this.callback(this);=0A= } finally {=0A= this.currentlyExecuting =3D false;=0A= }=0A= }=0A= }=0A= }=0A= String.interpret =3D function(value){=0A= return value =3D=3D null ? '' : String(value);=0A= }=0A= =0A= Object.extend(String.prototype, {=0A= gsub: function(pattern, replacement) {=0A= var result =3D '', source =3D this, match;=0A= replacement =3D arguments.callee.prepareReplacement(replacement);=0A= =0A= while (source.length > 0) {=0A= if (match =3D source.match(pattern)) {=0A= result +=3D source.slice(0, match.index);=0A= result +=3D String.interpret(replacement(match));=0A= source =3D source.slice(match.index + match[0].length);=0A= } else {=0A= result +=3D source, source =3D '';=0A= }=0A= }=0A= return result;=0A= },=0A= =0A= sub: function(pattern, replacement, count) {=0A= replacement =3D this.gsub.prepareReplacement(replacement);=0A= count =3D count =3D=3D=3D undefined ? 1 : count;=0A= =0A= return this.gsub(pattern, function(match) {=0A= if (--count < 0) return match[0];=0A= return replacement(match);=0A= });=0A= },=0A= =0A= scan: function(pattern, iterator) {=0A= this.gsub(pattern, iterator);=0A= return this;=0A= },=0A= =0A= truncate: function(length, truncation) {=0A= length =3D length || 30;=0A= truncation =3D truncation =3D=3D=3D undefined ? '...' : truncation;=0A= return this.length > length ?=0A= this.slice(0, length - truncation.length) + truncation : this;=0A= },=0A= =0A= strip: function() {=0A= return this.replace(/^\s+/, '').replace(/\s+$/, '');=0A= },=0A= =0A= stripTags: function() {=0A= return this.replace(/<\/?[^>]+>/gi, '');=0A= },=0A= =0A= stripScripts: function() {=0A= return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), '');=0A= },=0A= =0A= extractScripts: function() {=0A= var matchAll =3D new RegExp(Prototype.ScriptFragment, 'img');=0A= var matchOne =3D new RegExp(Prototype.ScriptFragment, 'im');=0A= return (this.match(matchAll) || []).map(function(scriptTag) {=0A= return (scriptTag.match(matchOne) || ['', ''])[1];=0A= });=0A= },=0A= =0A= evalScripts: function() {=0A= return this.extractScripts().map(function(script) { return = eval(script) });=0A= },=0A= =0A= escapeHTML: function() {=0A= var div =3D document.createElement('div');=0A= var text =3D document.createTextNode(this);=0A= div.appendChild(text);=0A= return div.innerHTML;=0A= },=0A= =0A= unescapeHTML: function() {=0A= var div =3D document.createElement('div');=0A= div.innerHTML =3D this.stripTags();=0A= return div.childNodes[0] ? (div.childNodes.length > 1 ?=0A= $A(div.childNodes).inject('',function(memo,node){ return = memo+node.nodeValue }) :=0A= div.childNodes[0].nodeValue) : '';=0A= },=0A= =0A= toQueryParams: function(separator) {=0A= var match =3D this.strip().match(/([^?#]*)(#.*)?$/);=0A= if (!match) return {};=0A= =0A= return match[1].split(separator || '&').inject({}, function(hash, = pair) {=0A= if ((pair =3D pair.split('=3D'))[0]) {=0A= var name =3D decodeURIComponent(pair[0]);=0A= var value =3D pair[1] ? decodeURIComponent(pair[1]) : undefined;=0A= =0A= if (hash[name] !=3D=3D undefined) {=0A= if (hash[name].constructor !=3D Array)=0A= hash[name] =3D [hash[name]];=0A= if (value) hash[name].push(value);=0A= }=0A= else hash[name] =3D value;=0A= }=0A= return hash;=0A= });=0A= },=0A= =0A= toArray: function() {=0A= return this.split('');=0A= },=0A= =0A= succ: function() {=0A= return this.slice(0, this.length - 1) +=0A= String.fromCharCode(this.charCodeAt(this.length - 1) + 1);=0A= },=0A= =0A= camelize: function() {=0A= var parts =3D this.split('-'), len =3D parts.length;=0A= if (len =3D=3D 1) return parts[0];=0A= =0A= var camelized =3D this.charAt(0) =3D=3D '-'=0A= ? parts[0].charAt(0).toUpperCase() + parts[0].substring(1)=0A= : parts[0];=0A= =0A= for (var i =3D 1; i < len; i++)=0A= camelized +=3D parts[i].charAt(0).toUpperCase() + = parts[i].substring(1);=0A= =0A= return camelized;=0A= },=0A= =0A= capitalize: function(){=0A= return this.charAt(0).toUpperCase() + = this.substring(1).toLowerCase();=0A= },=0A= =0A= underscore: function() {=0A= return this.gsub(/::/, = '/').gsub(/([A-Z]+)([A-Z][a-z])/,'#{1}_#{2}').gsub(/([a-z\d])([A-Z])/,'#{= 1}_#{2}').gsub(/-/,'_').toLowerCase();=0A= },=0A= =0A= dasherize: function() {=0A= return this.gsub(/_/,'-');=0A= },=0A= =0A= inspect: function(useDoubleQuotes) {=0A= var escapedString =3D this.replace(/\\/g, '\\\\');=0A= if (useDoubleQuotes)=0A= return '"' + escapedString.replace(/"/g, '\\"') + '"';=0A= else=0A= return "'" + escapedString.replace(/'/g, '\\\'') + "'";=0A= }=0A= });=0A= =0A= String.prototype.gsub.prepareReplacement =3D function(replacement) {=0A= if (typeof replacement =3D=3D 'function') return replacement;=0A= var template =3D new Template(replacement);=0A= return function(match) { return template.evaluate(match) };=0A= }=0A= =0A= String.prototype.parseQuery =3D String.prototype.toQueryParams;=0A= =0A= var Template =3D Class.create();=0A= Template.Pattern =3D /(^|.|\r|\n)(#\{(.*?)\})/;=0A= Template.prototype =3D {=0A= initialize: function(template, pattern) {=0A= this.template =3D template.toString();=0A= this.pattern =3D pattern || Template.Pattern;=0A= },=0A= =0A= evaluate: function(object) {=0A= return this.template.gsub(this.pattern, function(match) {=0A= var before =3D match[1];=0A= if (before =3D=3D '\\') return match[2];=0A= return before + String.interpret(object[match[3]]);=0A= });=0A= }=0A= }=0A= =0A= var $break =3D new Object();=0A= var $continue =3D new Object();=0A= =0A= var Enumerable =3D {=0A= each: function(iterator) {=0A= var index =3D 0;=0A= try {=0A= this._each(function(value) {=0A= try {=0A= iterator(value, index++);=0A= } catch (e) {=0A= if (e !=3D $continue) throw e;=0A= }=0A= });=0A= } catch (e) {=0A= if (e !=3D $break) throw e;=0A= }=0A= return this;=0A= },=0A= =0A= eachSlice: function(number, iterator) {=0A= var index =3D -number, slices =3D [], array =3D this.toArray();=0A= while ((index +=3D number) < array.length)=0A= slices.push(array.slice(index, index+number));=0A= return slices.map(iterator);=0A= },=0A= =0A= all: function(iterator) {=0A= var result =3D true;=0A= this.each(function(value, index) {=0A= result =3D result && !!(iterator || Prototype.K)(value, index);=0A= if (!result) throw $break;=0A= });=0A= return result;=0A= },=0A= =0A= any: function(iterator) {=0A= var result =3D false;=0A= this.each(function(value, index) {=0A= if (result =3D !!(iterator || Prototype.K)(value, index))=0A= throw $break;=0A= });=0A= return result;=0A= },=0A= =0A= collect: function(iterator) {=0A= var results =3D [];=0A= this.each(function(value, index) {=0A= results.push((iterator || Prototype.K)(value, index));=0A= });=0A= return results;=0A= },=0A= =0A= detect: function(iterator) {=0A= var result;=0A= this.each(function(value, index) {=0A= if (iterator(value, index)) {=0A= result =3D value;=0A= throw $break;=0A= }=0A= });=0A= return result;=0A= },=0A= =0A= findAll: function(iterator) {=0A= var results =3D [];=0A= this.each(function(value, index) {=0A= if (iterator(value, index))=0A= results.push(value);=0A= });=0A= return results;=0A= },=0A= =0A= grep: function(pattern, iterator) {=0A= var results =3D [];=0A= this.each(function(value, index) {=0A= var stringValue =3D value.toString();=0A= if (stringValue.match(pattern))=0A= results.push((iterator || Prototype.K)(value, index));=0A= })=0A= return results;=0A= },=0A= =0A= include: function(object) {=0A= var found =3D false;=0A= this.each(function(value) {=0A= if (value =3D=3D object) {=0A= found =3D true;=0A= throw $break;=0A= }=0A= });=0A= return found;=0A= },=0A= =0A= inGroupsOf: function(number, fillWith) {=0A= fillWith =3D fillWith =3D=3D=3D undefined ? null : fillWith;=0A= return this.eachSlice(number, function(slice) {=0A= while(slice.length < number) slice.push(fillWith);=0A= return slice;=0A= });=0A= },=0A= =0A= inject: function(memo, iterator) {=0A= this.each(function(value, index) {=0A= memo =3D iterator(memo, value, index);=0A= });=0A= return memo;=0A= },=0A= =0A= invoke: function(method) {=0A= var args =3D $A(arguments).slice(1);=0A= return this.map(function(value) {=0A= return value[method].apply(value, args);=0A= });=0A= },=0A= =0A= max: function(iterator) {=0A= var result;=0A= this.each(function(value, index) {=0A= value =3D (iterator || Prototype.K)(value, index);=0A= if (result =3D=3D undefined || value >=3D result)=0A= result =3D value;=0A= });=0A= return result;=0A= },=0A= =0A= min: function(iterator) {=0A= var result;=0A= this.each(function(value, index) {=0A= value =3D (iterator || Prototype.K)(value, index);=0A= if (result =3D=3D undefined || value < result)=0A= result =3D value;=0A= });=0A= return result;=0A= },=0A= =0A= partition: function(iterator) {=0A= var trues =3D [], falses =3D [];=0A= this.each(function(value, index) {=0A= ((iterator || Prototype.K)(value, index) ?=0A= trues : falses).push(value);=0A= });=0A= return [trues, falses];=0A= },=0A= =0A= pluck: function(property) {=0A= var results =3D [];=0A= this.each(function(value, index) {=0A= results.push(value[property]);=0A= });=0A= return results;=0A= },=0A= =0A= reject: function(iterator) {=0A= var results =3D [];=0A= this.each(function(value, index) {=0A= if (!iterator(value, index))=0A= results.push(value);=0A= });=0A= return results;=0A= },=0A= =0A= sortBy: function(iterator) {=0A= return this.map(function(value, index) {=0A= return {value: value, criteria: iterator(value, index)};=0A= }).sort(function(left, right) {=0A= var a =3D left.criteria, b =3D right.criteria;=0A= return a < b ? -1 : a > b ? 1 : 0;=0A= }).pluck('value');=0A= },=0A= =0A= toArray: function() {=0A= return this.map();=0A= },=0A= =0A= zip: function() {=0A= var iterator =3D Prototype.K, args =3D $A(arguments);=0A= if (typeof args.last() =3D=3D 'function')=0A= iterator =3D args.pop();=0A= =0A= var collections =3D [this].concat(args).map($A);=0A= return this.map(function(value, index) {=0A= return iterator(collections.pluck(index));=0A= });=0A= },=0A= =0A= size: function() {=0A= return this.toArray().length;=0A= },=0A= =0A= inspect: function() {=0A= return '#';=0A= }=0A= }=0A= =0A= Object.extend(Enumerable, {=0A= map: Enumerable.collect,=0A= find: Enumerable.detect,=0A= select: Enumerable.findAll,=0A= member: Enumerable.include,=0A= entries: Enumerable.toArray=0A= });=0A= var $A =3D Array.from =3D function(iterable) {=0A= if (!iterable) return [];=0A= if (iterable.toArray) {=0A= return iterable.toArray();=0A= } else {=0A= var results =3D [];=0A= for (var i =3D 0, length =3D iterable.length; i < length; i++)=0A= results.push(iterable[i]);=0A= return results;=0A= }=0A= }=0A= =0A= Object.extend(Array.prototype, Enumerable);=0A= =0A= if (!Array.prototype._reverse)=0A= Array.prototype._reverse =3D Array.prototype.reverse;=0A= =0A= Object.extend(Array.prototype, {=0A= _each: function(iterator) {=0A= for (var i =3D 0, length =3D this.length; i < length; i++)=0A= iterator(this[i]);=0A= },=0A= =0A= clear: function() {=0A= this.length =3D 0;=0A= return this;=0A= },=0A= =0A= first: function() {=0A= return this[0];=0A= },=0A= =0A= last: function() {=0A= return this[this.length - 1];=0A= },=0A= =0A= compact: function() {=0A= return this.select(function(value) {=0A= return value !=3D null;=0A= });=0A= },=0A= =0A= flatten: function() {=0A= return this.inject([], function(array, value) {=0A= return array.concat(value && value.constructor =3D=3D Array ?=0A= value.flatten() : [value]);=0A= });=0A= },=0A= =0A= without: function() {=0A= var values =3D $A(arguments);=0A= return this.select(function(value) {=0A= return !values.include(value);=0A= });=0A= },=0A= =0A= indexOf: function(object) {=0A= for (var i =3D 0, length =3D this.length; i < length; i++)=0A= if (this[i] =3D=3D object) return i;=0A= return -1;=0A= },=0A= =0A= reverse: function(inline) {=0A= return (inline !=3D=3D false ? this : this.toArray())._reverse();=0A= },=0A= =0A= reduce: function() {=0A= return this.length > 1 ? this : this[0];=0A= },=0A= =0A= uniq: function() {=0A= return this.inject([], function(array, value) {=0A= return array.include(value) ? array : array.concat([value]);=0A= });=0A= },=0A= =0A= clone: function() {=0A= return [].concat(this);=0A= },=0A= =0A= size: function() {=0A= return this.length;=0A= },=0A= =0A= inspect: function() {=0A= return '[' + this.map(Object.inspect).join(', ') + ']';=0A= }=0A= });=0A= =0A= Array.prototype.toArray =3D Array.prototype.clone;=0A= =0A= function $w(string){=0A= string =3D string.strip();=0A= return string ? string.split(/\s+/) : [];=0A= }=0A= =0A= if(window.opera){=0A= Array.prototype.concat =3D function(){=0A= var array =3D [];=0A= for(var i =3D 0, length =3D this.length; i < length; i++) = array.push(this[i]);=0A= for(var i =3D 0, length =3D arguments.length; i < length; i++) {=0A= if(arguments[i].constructor =3D=3D Array) {=0A= for(var j =3D 0, arrayLength =3D arguments[i].length; j < = arrayLength; j++)=0A= array.push(arguments[i][j]);=0A= } else {=0A= array.push(arguments[i]);=0A= }=0A= }=0A= return array;=0A= }=0A= }=0A= var Hash =3D function(obj) {=0A= Object.extend(this, obj || {});=0A= };=0A= =0A= Object.extend(Hash, {=0A= toQueryString: function(obj) {=0A= var parts =3D [];=0A= =0A= this.prototype._each.call(obj, function(pair) {=0A= if (!pair.key) return;=0A= =0A= if (pair.value && pair.value.constructor =3D=3D Array) {=0A= var values =3D pair.value.compact();=0A= if (values.length < 2) pair.value =3D values.reduce();=0A= else {=0A= key =3D encodeURIComponent(pair.key);=0A= values.each(function(value) {=0A= value =3D value !=3D undefined ? encodeURIComponent(value) : = '';=0A= parts.push(key + '=3D' + encodeURIComponent(value));=0A= });=0A= return;=0A= }=0A= }=0A= if (pair.value =3D=3D undefined) pair[1] =3D '';=0A= parts.push(pair.map(encodeURIComponent).join('=3D'));=0A= });=0A= =0A= return parts.join('&');=0A= }=0A= });=0A= =0A= Object.extend(Hash.prototype, Enumerable);=0A= Object.extend(Hash.prototype, {=0A= _each: function(iterator) {=0A= for (var key in this) {=0A= var value =3D this[key];=0A= if (value && value =3D=3D Hash.prototype[key]) continue;=0A= =0A= var pair =3D [key, value];=0A= pair.key =3D key;=0A= pair.value =3D value;=0A= iterator(pair);=0A= }=0A= },=0A= =0A= keys: function() {=0A= return this.pluck('key');=0A= },=0A= =0A= values: function() {=0A= return this.pluck('value');=0A= },=0A= =0A= merge: function(hash) {=0A= return $H(hash).inject(this, function(mergedHash, pair) {=0A= mergedHash[pair.key] =3D pair.value;=0A= return mergedHash;=0A= });=0A= },=0A= =0A= remove: function() {=0A= var result;=0A= for(var i =3D 0, length =3D arguments.length; i < length; i++) {=0A= var value =3D this[arguments[i]];=0A= if (value !=3D=3D undefined){=0A= if (result =3D=3D=3D undefined) result =3D value;=0A= else {=0A= if (result.constructor !=3D Array) result =3D [result];=0A= result.push(value)=0A= }=0A= }=0A= delete this[arguments[i]];=0A= }=0A= return result;=0A= },=0A= =0A= toQueryString: function() {=0A= return Hash.toQueryString(this);=0A= },=0A= =0A= inspect: function() {=0A= return '#';=0A= }=0A= });=0A= =0A= function $H(object) {=0A= if (object && object.constructor =3D=3D Hash) return object;=0A= return new Hash(object);=0A= };=0A= ObjectRange =3D Class.create();=0A= Object.extend(ObjectRange.prototype, Enumerable);=0A= Object.extend(ObjectRange.prototype, {=0A= initialize: function(start, end, exclusive) {=0A= this.start =3D start;=0A= this.end =3D end;=0A= this.exclusive =3D exclusive;=0A= },=0A= =0A= _each: function(iterator) {=0A= var value =3D this.start;=0A= while (this.include(value)) {=0A= iterator(value);=0A= value =3D value.succ();=0A= }=0A= },=0A= =0A= include: function(value) {=0A= if (value < this.start)=0A= return false;=0A= if (this.exclusive)=0A= return value < this.end;=0A= return value <=3D this.end;=0A= }=0A= });=0A= =0A= var $R =3D function(start, end, exclusive) {=0A= return new ObjectRange(start, end, exclusive);=0A= }=0A= =0A= var Ajax =3D {=0A= getTransport: function() {=0A= return Try.these(=0A= function() {return new XMLHttpRequest()},=0A= function() {return new ActiveXObject('Msxml2.XMLHTTP')},=0A= function() {return new ActiveXObject('Microsoft.XMLHTTP')}=0A= ) || false;=0A= },=0A= =0A= activeRequestCount: 0=0A= }=0A= =0A= Ajax.Responders =3D {=0A= responders: [],=0A= =0A= _each: function(iterator) {=0A= this.responders._each(iterator);=0A= },=0A= =0A= register: function(responder) {=0A= if (!this.include(responder))=0A= this.responders.push(responder);=0A= },=0A= =0A= unregister: function(responder) {=0A= this.responders =3D this.responders.without(responder);=0A= },=0A= =0A= dispatch: function(callback, request, transport, json) {=0A= this.each(function(responder) {=0A= if (typeof responder[callback] =3D=3D 'function') {=0A= try {=0A= responder[callback].apply(responder, [request, transport, = json]);=0A= } catch (e) {}=0A= }=0A= });=0A= }=0A= };=0A= =0A= Object.extend(Ajax.Responders, Enumerable);=0A= =0A= Ajax.Responders.register({=0A= onCreate: function() {=0A= Ajax.activeRequestCount++;=0A= },=0A= onComplete: function() {=0A= Ajax.activeRequestCount--;=0A= }=0A= });=0A= =0A= Ajax.Base =3D function() {};=0A= Ajax.Base.prototype =3D {=0A= setOptions: function(options) {=0A= this.options =3D {=0A= method: 'post',=0A= asynchronous: true,=0A= contentType: 'application/x-www-form-urlencoded',=0A= encoding: 'UTF-8',=0A= parameters: ''=0A= }=0A= Object.extend(this.options, options || {});=0A= =0A= this.options.method =3D this.options.method.toLowerCase();=0A= if (typeof this.options.parameters =3D=3D 'string')=0A= this.options.parameters =3D = this.options.parameters.toQueryParams();=0A= }=0A= }=0A= =0A= Ajax.Request =3D Class.create();=0A= Ajax.Request.Events =3D=0A= ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'];=0A= =0A= Ajax.Request.prototype =3D Object.extend(new Ajax.Base(), {=0A= _complete: false,=0A= =0A= initialize: function(url, options) {=0A= this.transport =3D Ajax.getTransport();=0A= this.setOptions(options);=0A= this.request(url);=0A= },=0A= =0A= request: function(url) {=0A= this.url =3D url;=0A= this.method =3D this.options.method;=0A= var params =3D this.options.parameters;=0A= =0A= if (!['get', 'post'].include(this.method)) {=0A= // simulate other verbs over post=0A= params['_method'] =3D this.method;=0A= this.method =3D 'post';=0A= }=0A= =0A= params =3D Hash.toQueryString(params);=0A= if (params && /Konqueror|Safari|KHTML/.test(navigator.userAgent)) = params +=3D '&_=3D'=0A= =0A= // when GET, append parameters to URL=0A= if (this.method =3D=3D 'get' && params)=0A= this.url +=3D (this.url.indexOf('?') > -1 ? '&' : '?') + params;=0A= =0A= try {=0A= Ajax.Responders.dispatch('onCreate', this, this.transport);=0A= =0A= this.transport.open(this.method.toUpperCase(), this.url,=0A= this.options.asynchronous);=0A= =0A= if (this.options.asynchronous)=0A= setTimeout(function() { this.respondToReadyState(1) = }.bind(this), 10);=0A= =0A= this.transport.onreadystatechange =3D = this.onStateChange.bind(this);=0A= this.setRequestHeaders();=0A= =0A= var body =3D this.method =3D=3D 'post' ? (this.options.postBody || = params) : null;=0A= =0A= this.transport.send(body);=0A= =0A= /* Force Firefox to handle ready state 4 for synchronous requests = */=0A= if (!this.options.asynchronous && this.transport.overrideMimeType)=0A= this.onStateChange();=0A= =0A= }=0A= catch (e) {=0A= this.dispatchException(e);=0A= }=0A= },=0A= =0A= onStateChange: function() {=0A= var readyState =3D this.transport.readyState;=0A= if (readyState > 1 && !((readyState =3D=3D 4) && this._complete))=0A= this.respondToReadyState(this.transport.readyState);=0A= },=0A= =0A= setRequestHeaders: function() {=0A= var headers =3D {=0A= 'X-Requested-With': 'XMLHttpRequest',=0A= 'X-Prototype-Version': Prototype.Version,=0A= 'Accept': 'text/javascript, text/html, application/xml, text/xml, = */*'=0A= };=0A= =0A= if (this.method =3D=3D 'post') {=0A= headers['Content-type'] =3D this.options.contentType +=0A= (this.options.encoding ? '; charset=3D' + this.options.encoding = : '');=0A= =0A= /* Force "Connection: close" for older Mozilla browsers to work=0A= * around a bug where XMLHttpRequest sends an incorrect=0A= * Content-length header. See Mozilla Bugzilla #246651.=0A= */=0A= if (this.transport.overrideMimeType &&=0A= (navigator.userAgent.match(/Gecko\/(\d{4})/) || [0,2005])[1] < = 2005)=0A= headers['Connection'] =3D 'close';=0A= }=0A= =0A= // user-defined headers=0A= if (typeof this.options.requestHeaders =3D=3D 'object') {=0A= var extras =3D this.options.requestHeaders;=0A= =0A= if (typeof extras.push =3D=3D 'function')=0A= for (var i =3D 0, length =3D extras.length; i < length; i +=3D 2)=0A= headers[extras[i]] =3D extras[i+1];=0A= else=0A= $H(extras).each(function(pair) { headers[pair.key] =3D = pair.value });=0A= }=0A= =0A= for (var name in headers)=0A= this.transport.setRequestHeader(name, headers[name]);=0A= },=0A= =0A= success: function() {=0A= return !this.transport.status=0A= || (this.transport.status >=3D 200 && this.transport.status < = 300);=0A= },=0A= =0A= respondToReadyState: function(readyState) {=0A= var state =3D Ajax.Request.Events[readyState];=0A= var transport =3D this.transport, json =3D this.evalJSON();=0A= =0A= if (state =3D=3D 'Complete') {=0A= try {=0A= this._complete =3D true;=0A= (this.options['on' + this.transport.status]=0A= || this.options['on' + (this.success() ? 'Success' : 'Failure')]=0A= || Prototype.emptyFunction)(transport, json);=0A= } catch (e) {=0A= this.dispatchException(e);=0A= }=0A= =0A= if ((this.getHeader('Content-type') || 'text/javascript').strip().=0A= match(/^(text|application)\/(x-)?(java|ecma)script(;.*)?$/i))=0A= this.evalResponse();=0A= }=0A= =0A= try {=0A= (this.options['on' + state] || Prototype.emptyFunction)(transport, = json);=0A= Ajax.Responders.dispatch('on' + state, this, transport, json);=0A= } catch (e) {=0A= this.dispatchException(e);=0A= }=0A= =0A= if (state =3D=3D 'Complete') {=0A= // avoid memory leak in MSIE: clean up=0A= this.transport.onreadystatechange =3D Prototype.emptyFunction;=0A= }=0A= },=0A= =0A= getHeader: function(name) {=0A= try {=0A= return this.transport.getResponseHeader(name);=0A= } catch (e) { return null }=0A= },=0A= =0A= evalJSON: function() {=0A= try {=0A= var json =3D this.getHeader('X-JSON');=0A= return json ? eval('(' + json + ')') : null;=0A= } catch (e) { return null }=0A= },=0A= =0A= evalResponse: function() {=0A= try {=0A= return eval(this.transport.responseText);=0A= } catch (e) {=0A= this.dispatchException(e);=0A= }=0A= },=0A= =0A= dispatchException: function(exception) {=0A= (this.options.onException || Prototype.emptyFunction)(this, = exception);=0A= Ajax.Responders.dispatch('onException', this, exception);=0A= }=0A= });=0A= =0A= Ajax.Updater =3D Class.create();=0A= =0A= Object.extend(Object.extend(Ajax.Updater.prototype, = Ajax.Request.prototype), {=0A= initialize: function(container, url, options) {=0A= this.container =3D {=0A= success: (container.success || container),=0A= failure: (container.failure || (container.success ? null : = container))=0A= }=0A= =0A= this.transport =3D Ajax.getTransport();=0A= this.setOptions(options);=0A= =0A= var onComplete =3D this.options.onComplete || = Prototype.emptyFunction;=0A= this.options.onComplete =3D (function(transport, param) {=0A= this.updateContent();=0A= onComplete(transport, param);=0A= }).bind(this);=0A= =0A= this.request(url);=0A= },=0A= =0A= updateContent: function() {=0A= var receiver =3D this.container[this.success() ? 'success' : = 'failure'];=0A= var response =3D this.transport.responseText;=0A= =0A= if (!this.options.evalScripts) response =3D response.stripScripts();=0A= =0A= if (receiver =3D $(receiver)) {=0A= if (this.options.insertion)=0A= new this.options.insertion(receiver, response);=0A= else=0A= receiver.update(response);=0A= }=0A= =0A= if (this.success()) {=0A= if (this.onComplete)=0A= setTimeout(this.onComplete.bind(this), 10);=0A= }=0A= }=0A= });=0A= =0A= Ajax.PeriodicalUpdater =3D Class.create();=0A= Ajax.PeriodicalUpdater.prototype =3D Object.extend(new Ajax.Base(), {=0A= initialize: function(container, url, options) {=0A= this.setOptions(options);=0A= this.onComplete =3D this.options.onComplete;=0A= =0A= this.frequency =3D (this.options.frequency || 2);=0A= this.decay =3D (this.options.decay || 1);=0A= =0A= this.updater =3D {};=0A= this.container =3D container;=0A= this.url =3D url;=0A= =0A= this.start();=0A= },=0A= =0A= start: function() {=0A= this.options.onComplete =3D this.updateComplete.bind(this);=0A= this.onTimerEvent();=0A= },=0A= =0A= stop: function() {=0A= this.updater.options.onComplete =3D undefined;=0A= clearTimeout(this.timer);=0A= (this.onComplete || Prototype.emptyFunction).apply(this, arguments);=0A= },=0A= =0A= updateComplete: function(request) {=0A= if (this.options.decay) {=0A= this.decay =3D (request.responseText =3D=3D this.lastText ?=0A= this.decay * this.options.decay : 1);=0A= =0A= this.lastText =3D request.responseText;=0A= }=0A= this.timer =3D setTimeout(this.onTimerEvent.bind(this),=0A= this.decay * this.frequency * 1000);=0A= },=0A= =0A= onTimerEvent: function() {=0A= this.updater =3D new Ajax.Updater(this.container, this.url, = this.options);=0A= }=0A= });=0A= function $(element) {=0A= if (arguments.length > 1) {=0A= for (var i =3D 0, elements =3D [], length =3D arguments.length; i < = length; i++)=0A= elements.push($(arguments[i]));=0A= return elements;=0A= }=0A= if (typeof element =3D=3D 'string')=0A= element =3D document.getElementById(element);=0A= return Element.extend(element);=0A= }=0A= =0A= if (Prototype.BrowserFeatures.XPath) {=0A= document._getElementsByXPath =3D function(expression, parentElement) {=0A= var results =3D [];=0A= var query =3D document.evaluate(expression, $(parentElement) || = document,=0A= null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);=0A= for (var i =3D 0, length =3D query.snapshotLength; i < length; i++)=0A= results.push(query.snapshotItem(i));=0A= return results;=0A= };=0A= }=0A= =0A= document.getElementsByClassName =3D function(className, parentElement) {=0A= if (Prototype.BrowserFeatures.XPath) {=0A= var q =3D ".//*[contains(concat(' ', @class, ' '), ' " + className + = " ')]";=0A= return document._getElementsByXPath(q, parentElement);=0A= } else {=0A= var children =3D ($(parentElement) || = document.body).getElementsByTagName('*');=0A= var elements =3D [], child;=0A= for (var i =3D 0, length =3D children.length; i < length; i++) {=0A= child =3D children[i];=0A= if (Element.hasClassName(child, className))=0A= elements.push(Element.extend(child));=0A= }=0A= return elements;=0A= }=0A= };=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= if (!window.Element)=0A= var Element =3D new Object();=0A= =0A= Element.extend =3D function(element) {=0A= if (!element || _nativeExtensions || element.nodeType =3D=3D 3) return = element;=0A= =0A= if (!element._extended && element.tagName && element !=3D window) {=0A= var methods =3D Object.clone(Element.Methods), cache =3D = Element.extend.cache;=0A= =0A= if (element.tagName =3D=3D 'FORM')=0A= Object.extend(methods, Form.Methods);=0A= if (['INPUT', 'TEXTAREA', 'SELECT'].include(element.tagName))=0A= Object.extend(methods, Form.Element.Methods);=0A= =0A= Object.extend(methods, Element.Methods.Simulated);=0A= =0A= for (var property in methods) {=0A= var value =3D methods[property];=0A= if (typeof value =3D=3D 'function' && !(property in element))=0A= element[property] =3D cache.findOrStore(value);=0A= }=0A= }=0A= =0A= element._extended =3D true;=0A= return element;=0A= };=0A= =0A= Element.extend.cache =3D {=0A= findOrStore: function(value) {=0A= return this[value] =3D this[value] || function() {=0A= return value.apply(null, [this].concat($A(arguments)));=0A= }=0A= }=0A= };=0A= =0A= Element.Methods =3D {=0A= visible: function(element) {=0A= return $(element).style.display !=3D 'none';=0A= },=0A= =0A= toggle: function(element) {=0A= element =3D $(element);=0A= Element[Element.visible(element) ? 'hide' : 'show'](element);=0A= return element;=0A= },=0A= =0A= hide: function(element) {=0A= $(element).style.display =3D 'none';=0A= return element;=0A= },=0A= =0A= show: function(element) {=0A= $(element).style.display =3D '';=0A= return element;=0A= },=0A= =0A= remove: function(element) {=0A= element =3D $(element);=0A= element.parentNode.removeChild(element);=0A= return element;=0A= },=0A= =0A= update: function(element, html) {=0A= html =3D typeof html =3D=3D 'undefined' ? '' : html.toString();=0A= $(element).innerHTML =3D html.stripScripts();=0A= setTimeout(function() {html.evalScripts()}, 10);=0A= return element;=0A= },=0A= =0A= replace: function(element, html) {=0A= element =3D $(element);=0A= html =3D typeof html =3D=3D 'undefined' ? '' : html.toString();=0A= if (element.outerHTML) {=0A= element.outerHTML =3D html.stripScripts();=0A= } else {=0A= var range =3D element.ownerDocument.createRange();=0A= range.selectNodeContents(element);=0A= element.parentNode.replaceChild(=0A= range.createContextualFragment(html.stripScripts()), element);=0A= }=0A= setTimeout(function() {html.evalScripts()}, 10);=0A= return element;=0A= },=0A= =0A= inspect: function(element) {=0A= element =3D $(element);=0A= var result =3D '<' + element.tagName.toLowerCase();=0A= $H({'id': 'id', 'className': 'class'}).each(function(pair) {=0A= var property =3D pair.first(), attribute =3D pair.last();=0A= var value =3D (element[property] || '').toString();=0A= if (value) result +=3D ' ' + attribute + '=3D' + = value.inspect(true);=0A= });=0A= return result + '>';=0A= },=0A= =0A= recursivelyCollect: function(element, property) {=0A= element =3D $(element);=0A= var elements =3D [];=0A= while (element =3D element[property])=0A= if (element.nodeType =3D=3D 1)=0A= elements.push(Element.extend(element));=0A= return elements;=0A= },=0A= =0A= ancestors: function(element) {=0A= return $(element).recursivelyCollect('parentNode');=0A= },=0A= =0A= descendants: function(element) {=0A= return $A($(element).getElementsByTagName('*'));=0A= },=0A= =0A= immediateDescendants: function(element) {=0A= if (!(element =3D $(element).firstChild)) return [];=0A= while (element && element.nodeType !=3D 1) element =3D = element.nextSibling;=0A= if (element) return [element].concat($(element).nextSiblings());=0A= return [];=0A= },=0A= =0A= previousSiblings: function(element) {=0A= return $(element).recursivelyCollect('previousSibling');=0A= },=0A= =0A= nextSiblings: function(element) {=0A= return $(element).recursivelyCollect('nextSibling');=0A= },=0A= =0A= siblings: function(element) {=0A= element =3D $(element);=0A= return = element.previousSiblings().reverse().concat(element.nextSiblings());=0A= },=0A= =0A= match: function(element, selector) {=0A= if (typeof selector =3D=3D 'string')=0A= selector =3D new Selector(selector);=0A= return selector.match($(element));=0A= },=0A= =0A= up: function(element, expression, index) {=0A= return Selector.findElement($(element).ancestors(), expression, = index);=0A= },=0A= =0A= down: function(element, expression, index) {=0A= return Selector.findElement($(element).descendants(), expression, = index);=0A= },=0A= =0A= previous: function(element, expression, index) {=0A= return Selector.findElement($(element).previousSiblings(), = expression, index);=0A= },=0A= =0A= next: function(element, expression, index) {=0A= return Selector.findElement($(element).nextSiblings(), expression, = index);=0A= },=0A= =0A= getElementsBySelector: function() {=0A= var args =3D $A(arguments), element =3D $(args.shift());=0A= return Selector.findChildElements(element, args);=0A= },=0A= =0A= getElementsByClassName: function(element, className) {=0A= return document.getElementsByClassName(className, element);=0A= },=0A= =0A= readAttribute: function(element, name) {=0A= element =3D $(element);=0A= if (document.all && !window.opera) {=0A= var t =3D Element._attributeTranslations;=0A= if (t.values[name]) return t.values[name](element, name);=0A= if (t.names[name]) name =3D t.names[name];=0A= var attribute =3D element.attributes[name];=0A= if(attribute) return attribute.nodeValue;=0A= }=0A= return element.getAttribute(name);=0A= },=0A= =0A= getHeight: function(element) {=0A= return $(element).getDimensions().height;=0A= },=0A= =0A= getWidth: function(element) {=0A= return $(element).getDimensions().width;=0A= },=0A= =0A= classNames: function(element) {=0A= return new Element.ClassNames(element);=0A= },=0A= =0A= hasClassName: function(element, className) {=0A= if (!(element =3D $(element))) return;=0A= var elementClassName =3D element.className;=0A= if (elementClassName.length =3D=3D 0) return false;=0A= if (elementClassName =3D=3D className ||=0A= elementClassName.match(new RegExp("(^|\\s)" + className + = "(\\s|$)")))=0A= return true;=0A= return false;=0A= },=0A= =0A= addClassName: function(element, className) {=0A= if (!(element =3D $(element))) return;=0A= Element.classNames(element).add(className);=0A= return element;=0A= },=0A= =0A= removeClassName: function(element, className) {=0A= if (!(element =3D $(element))) return;=0A= Element.classNames(element).remove(className);=0A= return element;=0A= },=0A= =0A= toggleClassName: function(element, className) {=0A= if (!(element =3D $(element))) return;=0A= Element.classNames(element)[element.hasClassName(className) ? = 'remove' : 'add'](className);=0A= return element;=0A= },=0A= =0A= observe: function() {=0A= Event.observe.apply(Event, arguments);=0A= return $A(arguments).first();=0A= },=0A= =0A= stopObserving: function() {=0A= Event.stopObserving.apply(Event, arguments);=0A= return $A(arguments).first();=0A= },=0A= =0A= // removes whitespace-only text node children=0A= cleanWhitespace: function(element) {=0A= element =3D $(element);=0A= var node =3D element.firstChild;=0A= while (node) {=0A= var nextNode =3D node.nextSibling;=0A= if (node.nodeType =3D=3D 3 && !/\S/.test(node.nodeValue))=0A= element.removeChild(node);=0A= node =3D nextNode;=0A= }=0A= return element;=0A= },=0A= =0A= empty: function(element) {=0A= return $(element).innerHTML.match(/^\s*$/);=0A= },=0A= =0A= descendantOf: function(element, ancestor) {=0A= element =3D $(element), ancestor =3D $(ancestor);=0A= while (element =3D element.parentNode)=0A= if (element =3D=3D ancestor) return true;=0A= return false;=0A= },=0A= =0A= scrollTo: function(element) {=0A= element =3D $(element);=0A= var pos =3D Position.cumulativeOffset(element);=0A= window.scrollTo(pos[0], pos[1]);=0A= return element;=0A= },=0A= =0A= getStyle: function(element, style) {=0A= element =3D $(element);=0A= if (['float','cssFloat'].include(style))=0A= style =3D (typeof element.style.styleFloat !=3D 'undefined' ? = 'styleFloat' : 'cssFloat');=0A= style =3D style.camelize();=0A= var value =3D element.style[style];=0A= if (!value) {=0A= if (document.defaultView && document.defaultView.getComputedStyle) = {=0A= var css =3D document.defaultView.getComputedStyle(element, null);=0A= value =3D css ? css[style] : null;=0A= } else if (element.currentStyle) {=0A= value =3D element.currentStyle[style];=0A= }=0A= }=0A= =0A= if((value =3D=3D 'auto') && ['width','height'].include(style) && = (element.getStyle('display') !=3D 'none'))=0A= value =3D element['offset'+style.capitalize()] + 'px';=0A= =0A= if (window.opera && ['left', 'top', 'right', = 'bottom'].include(style))=0A= if (Element.getStyle(element, 'position') =3D=3D 'static') value = =3D 'auto';=0A= if(style =3D=3D 'opacity') {=0A= if(value) return parseFloat(value);=0A= if(value =3D (element.getStyle('filter') || = '').match(/alpha\(opacity=3D(.*)\)/))=0A= if(value[1]) return parseFloat(value[1]) / 100;=0A= return 1.0;=0A= }=0A= return value =3D=3D 'auto' ? null : value;=0A= },=0A= =0A= setStyle: function(element, style) {=0A= element =3D $(element);=0A= for (var name in style) {=0A= var value =3D style[name];=0A= if(name =3D=3D 'opacity') {=0A= if (value =3D=3D 1) {=0A= value =3D (/Gecko/.test(navigator.userAgent) &&=0A= !/Konqueror|Safari|KHTML/.test(navigator.userAgent)) ? = 0.999999 : 1.0;=0A= if(/MSIE/.test(navigator.userAgent) && !window.opera)=0A= element.style.filter =3D = element.getStyle('filter').replace(/alpha\([^\)]*\)/gi,'');=0A= } else if(value =3D=3D=3D '') {=0A= if(/MSIE/.test(navigator.userAgent) && !window.opera)=0A= element.style.filter =3D = element.getStyle('filter').replace(/alpha\([^\)]*\)/gi,'');=0A= } else {=0A= if(value < 0.00001) value =3D 0;=0A= if(/MSIE/.test(navigator.userAgent) && !window.opera)=0A= element.style.filter =3D = element.getStyle('filter').replace(/alpha\([^\)]*\)/gi,'') +=0A= 'alpha(opacity=3D'+value*100+')';=0A= }=0A= } else if(['float','cssFloat'].include(name)) name =3D (typeof = element.style.styleFloat !=3D 'undefined') ? 'styleFloat' : 'cssFloat';=0A= element.style[name.camelize()] =3D value;=0A= }=0A= return element;=0A= },=0A= =0A= getDimensions: function(element) {=0A= element =3D $(element);=0A= var display =3D $(element).getStyle('display');=0A= if (display !=3D 'none' && display !=3D null) // Safari bug=0A= return {width: element.offsetWidth, height: element.offsetHeight};=0A= =0A= // All *Width and *Height properties give 0 on elements with display = none,=0A= // so enable the element temporarily=0A= var els =3D element.style;=0A= var originalVisibility =3D els.visibility;=0A= var originalPosition =3D els.position;=0A= var originalDisplay =3D els.display;=0A= els.visibility =3D 'hidden';=0A= els.position =3D 'absolute';=0A= els.display =3D 'block';=0A= var originalWidth =3D element.clientWidth;=0A= var originalHeight =3D element.clientHeight;=0A= els.display =3D originalDisplay;=0A= els.position =3D originalPosition;=0A= els.visibility =3D originalVisibility;=0A= return {width: originalWidth, height: originalHeight};=0A= },=0A= =0A= makePositioned: function(element) {=0A= element =3D $(element);=0A= var pos =3D Element.getStyle(element, 'position');=0A= if (pos =3D=3D 'static' || !pos) {=0A= element._madePositioned =3D true;=0A= element.style.position =3D 'relative';=0A= // Opera returns the offset relative to the positioning context, = when an=0A= // element is position relative but top and left have not been = defined=0A= if (window.opera) {=0A= element.style.top =3D 0;=0A= element.style.left =3D 0;=0A= }=0A= }=0A= return element;=0A= },=0A= =0A= undoPositioned: function(element) {=0A= element =3D $(element);=0A= if (element._madePositioned) {=0A= element._madePositioned =3D undefined;=0A= element.style.position =3D=0A= element.style.top =3D=0A= element.style.left =3D=0A= element.style.bottom =3D=0A= element.style.right =3D '';=0A= }=0A= return element;=0A= },=0A= =0A= makeClipping: function(element) {=0A= element =3D $(element);=0A= if (element._overflow) return element;=0A= element._overflow =3D element.style.overflow || 'auto';=0A= if ((Element.getStyle(element, 'overflow') || 'visible') !=3D = 'hidden')=0A= element.style.overflow =3D 'hidden';=0A= return element;=0A= },=0A= =0A= undoClipping: function(element) {=0A= element =3D $(element);=0A= if (!element._overflow) return element;=0A= element.style.overflow =3D element._overflow =3D=3D 'auto' ? '' : = element._overflow;=0A= element._overflow =3D null;=0A= return element;=0A= }=0A= };=0A= =0A= Object.extend(Element.Methods, {childOf: Element.Methods.descendantOf});=0A= =0A= Element._attributeTranslations =3D {};=0A= =0A= Element._attributeTranslations.names =3D {=0A= colspan: "colSpan",=0A= rowspan: "rowSpan",=0A= valign: "vAlign",=0A= datetime: "dateTime",=0A= accesskey: "accessKey",=0A= tabindex: "tabIndex",=0A= enctype: "encType",=0A= maxlength: "maxLength",=0A= readonly: "readOnly",=0A= longdesc: "longDesc"=0A= };=0A= =0A= Element._attributeTranslations.values =3D {=0A= _getAttr: function(element, attribute) {=0A= return element.getAttribute(attribute, 2);=0A= },=0A= =0A= _flag: function(element, attribute) {=0A= return $(element).hasAttribute(attribute) ? attribute : null;=0A= },=0A= =0A= style: function(element) {=0A= return element.style.cssText.toLowerCase();=0A= },=0A= =0A= title: function(element) {=0A= var node =3D element.getAttributeNode('title');=0A= return node.specified ? node.nodeValue : null;=0A= }=0A= };=0A= =0A= Object.extend(Element._attributeTranslations.values, {=0A= href: Element._attributeTranslations.values._getAttr,=0A= src: Element._attributeTranslations.values._getAttr,=0A= disabled: Element._attributeTranslations.values._flag,=0A= checked: Element._attributeTranslations.values._flag,=0A= readonly: Element._attributeTranslations.values._flag,=0A= multiple: Element._attributeTranslations.values._flag=0A= });=0A= =0A= Element.Methods.Simulated =3D {=0A= hasAttribute: function(element, attribute) {=0A= var t =3D Element._attributeTranslations;=0A= attribute =3D t.names[attribute] || attribute;=0A= return $(element).getAttributeNode(attribute).specified;=0A= }=0A= };=0A= =0A= // IE is missing .innerHTML support for TABLE-related elements=0A= if (document.all && !window.opera){=0A= Element.Methods.update =3D function(element, html) {=0A= element =3D $(element);=0A= html =3D typeof html =3D=3D 'undefined' ? '' : html.toString();=0A= var tagName =3D element.tagName.toUpperCase();=0A= if (['THEAD','TBODY','TR','TD'].include(tagName)) {=0A= var div =3D document.createElement('div');=0A= switch (tagName) {=0A= case 'THEAD':=0A= case 'TBODY':=0A= div.innerHTML =3D '' + html.stripScripts() + = '
      ';=0A= depth =3D 2;=0A= break;=0A= case 'TR':=0A= div.innerHTML =3D '' + html.stripScripts() = + '
      ';=0A= depth =3D 3;=0A= break;=0A= case 'TD':=0A= div.innerHTML =3D '
      ' + = html.stripScripts() + '
      ';=0A= depth =3D 4;=0A= }=0A= $A(element.childNodes).each(function(node){=0A= element.removeChild(node)=0A= });=0A= depth.times(function(){ div =3D div.firstChild });=0A= =0A= $A(div.childNodes).each(=0A= function(node){ element.appendChild(node) });=0A= } else {=0A= element.innerHTML =3D html.stripScripts();=0A= }=0A= setTimeout(function() {html.evalScripts()}, 10);=0A= return element;=0A= }=0A= };=0A= =0A= Object.extend(Element, Element.Methods);=0A= =0A= var _nativeExtensions =3D false;=0A= =0A= if(/Konqueror|Safari|KHTML/.test(navigator.userAgent))=0A= ['', 'Form', 'Input', 'TextArea', 'Select'].each(function(tag) {=0A= var className =3D 'HTML' + tag + 'Element';=0A= if(window[className]) return;=0A= var klass =3D window[className] =3D {};=0A= klass.prototype =3D document.createElement(tag ? tag.toLowerCase() : = 'div').__proto__;=0A= });=0A= =0A= Element.addMethods =3D function(methods) {=0A= Object.extend(Element.Methods, methods || {});=0A= =0A= function copy(methods, destination, onlyIfAbsent) {=0A= onlyIfAbsent =3D onlyIfAbsent || false;=0A= var cache =3D Element.extend.cache;=0A= for (var property in methods) {=0A= var value =3D methods[property];=0A= if (!onlyIfAbsent || !(property in destination))=0A= destination[property] =3D cache.findOrStore(value);=0A= }=0A= }=0A= =0A= if (typeof HTMLElement !=3D 'undefined') {=0A= copy(Element.Methods, HTMLElement.prototype);=0A= copy(Element.Methods.Simulated, HTMLElement.prototype, true);=0A= copy(Form.Methods, HTMLFormElement.prototype);=0A= [HTMLInputElement, HTMLTextAreaElement, = HTMLSelectElement].each(function(klass) {=0A= copy(Form.Element.Methods, klass.prototype);=0A= });=0A= _nativeExtensions =3D true;=0A= }=0A= }=0A= =0A= var Toggle =3D new Object();=0A= Toggle.display =3D Element.toggle;=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= Abstract.Insertion =3D function(adjacency) {=0A= this.adjacency =3D adjacency;=0A= }=0A= =0A= Abstract.Insertion.prototype =3D {=0A= initialize: function(element, content) {=0A= this.element =3D $(element);=0A= this.content =3D content.stripScripts();=0A= =0A= if (this.adjacency && this.element.insertAdjacentHTML) {=0A= try {=0A= this.element.insertAdjacentHTML(this.adjacency, this.content);=0A= } catch (e) {=0A= var tagName =3D this.element.tagName.toUpperCase();=0A= if (['TBODY', 'TR'].include(tagName)) {=0A= this.insertContent(this.contentFromAnonymousTable());=0A= } else {=0A= throw e;=0A= }=0A= }=0A= } else {=0A= this.range =3D this.element.ownerDocument.createRange();=0A= if (this.initializeRange) this.initializeRange();=0A= = this.insertContent([this.range.createContextualFragment(this.content)]);=0A= }=0A= =0A= setTimeout(function() {content.evalScripts()}, 10);=0A= },=0A= =0A= contentFromAnonymousTable: function() {=0A= var div =3D document.createElement('div');=0A= div.innerHTML =3D '' + this.content + = '
      ';=0A= return $A(div.childNodes[0].childNodes[0].childNodes);=0A= }=0A= }=0A= =0A= var Insertion =3D new Object();=0A= =0A= Insertion.Before =3D Class.create();=0A= Insertion.Before.prototype =3D Object.extend(new = Abstract.Insertion('beforeBegin'), {=0A= initializeRange: function() {=0A= this.range.setStartBefore(this.element);=0A= },=0A= =0A= insertContent: function(fragments) {=0A= fragments.each((function(fragment) {=0A= this.element.parentNode.insertBefore(fragment, this.element);=0A= }).bind(this));=0A= }=0A= });=0A= =0A= Insertion.Top =3D Class.create();=0A= Insertion.Top.prototype =3D Object.extend(new = Abstract.Insertion('afterBegin'), {=0A= initializeRange: function() {=0A= this.range.selectNodeContents(this.element);=0A= this.range.collapse(true);=0A= },=0A= =0A= insertContent: function(fragments) {=0A= fragments.reverse(false).each((function(fragment) {=0A= this.element.insertBefore(fragment, this.element.firstChild);=0A= }).bind(this));=0A= }=0A= });=0A= =0A= Insertion.Bottom =3D Class.create();=0A= Insertion.Bottom.prototype =3D Object.extend(new = Abstract.Insertion('beforeEnd'), {=0A= initializeRange: function() {=0A= this.range.selectNodeContents(this.element);=0A= this.range.collapse(this.element);=0A= },=0A= =0A= insertContent: function(fragments) {=0A= fragments.each((function(fragment) {=0A= this.element.appendChild(fragment);=0A= }).bind(this));=0A= }=0A= });=0A= =0A= Insertion.After =3D Class.create();=0A= Insertion.After.prototype =3D Object.extend(new = Abstract.Insertion('afterEnd'), {=0A= initializeRange: function() {=0A= this.range.setStartAfter(this.element);=0A= },=0A= =0A= insertContent: function(fragments) {=0A= fragments.each((function(fragment) {=0A= this.element.parentNode.insertBefore(fragment,=0A= this.element.nextSibling);=0A= }).bind(this));=0A= }=0A= });=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= Element.ClassNames =3D Class.create();=0A= Element.ClassNames.prototype =3D {=0A= initialize: function(element) {=0A= this.element =3D $(element);=0A= },=0A= =0A= _each: function(iterator) {=0A= this.element.className.split(/\s+/).select(function(name) {=0A= return name.length > 0;=0A= })._each(iterator);=0A= },=0A= =0A= set: function(className) {=0A= this.element.className =3D className;=0A= },=0A= =0A= add: function(classNameToAdd) {=0A= if (this.include(classNameToAdd)) return;=0A= this.set($A(this).concat(classNameToAdd).join(' '));=0A= },=0A= =0A= remove: function(classNameToRemove) {=0A= if (!this.include(classNameToRemove)) return;=0A= this.set($A(this).without(classNameToRemove).join(' '));=0A= },=0A= =0A= toString: function() {=0A= return $A(this).join(' ');=0A= }=0A= };=0A= =0A= Object.extend(Element.ClassNames.prototype, Enumerable);=0A= var Selector =3D Class.create();=0A= Selector.prototype =3D {=0A= initialize: function(expression) {=0A= this.params =3D {classNames: []};=0A= this.expression =3D expression.toString().strip();=0A= this.parseExpression();=0A= this.compileMatcher();=0A= },=0A= =0A= parseExpression: function() {=0A= function abort(message) { throw 'Parse error in selector: ' + = message; }=0A= =0A= if (this.expression =3D=3D '') abort('empty expression');=0A= =0A= var params =3D this.params, expr =3D this.expression, match, = modifier, clause, rest;=0A= while (match =3D = expr.match(/^(.*)\[([a-z0-9_:-]+?)(?:([~\|!]?=3D)(?:"([^"]*)"|([^\]\s]*))= )?\]$/i)) {=0A= params.attributes =3D params.attributes || [];=0A= params.attributes.push({name: match[2], operator: match[3], value: = match[4] || match[5] || ''});=0A= expr =3D match[1];=0A= }=0A= =0A= if (expr =3D=3D '*') return this.params.wildcard =3D true;=0A= =0A= while (match =3D expr.match(/^([^a-z0-9_-])?([a-z0-9_-]+)(.*)/i)) {=0A= modifier =3D match[1], clause =3D match[2], rest =3D match[3];=0A= switch (modifier) {=0A= case '#': params.id =3D clause; break;=0A= case '.': params.classNames.push(clause); break;=0A= case '':=0A= case undefined: params.tagName =3D clause.toUpperCase(); break;=0A= default: abort(expr.inspect());=0A= }=0A= expr =3D rest;=0A= }=0A= =0A= if (expr.length > 0) abort(expr.inspect());=0A= },=0A= =0A= buildMatchExpression: function() {=0A= var params =3D this.params, conditions =3D [], clause;=0A= =0A= if (params.wildcard)=0A= conditions.push('true');=0A= if (clause =3D params.id)=0A= conditions.push('element.readAttribute("id") =3D=3D ' + = clause.inspect());=0A= if (clause =3D params.tagName)=0A= conditions.push('element.tagName.toUpperCase() =3D=3D ' + = clause.inspect());=0A= if ((clause =3D params.classNames).length > 0)=0A= for (var i =3D 0, length =3D clause.length; i < length; i++)=0A= conditions.push('element.hasClassName(' + clause[i].inspect() + = ')');=0A= if (clause =3D params.attributes) {=0A= clause.each(function(attribute) {=0A= var value =3D 'element.readAttribute(' + = attribute.name.inspect() + ')';=0A= var splitValueBy =3D function(delimiter) {=0A= return value + ' && ' + value + '.split(' + = delimiter.inspect() + ')';=0A= }=0A= =0A= switch (attribute.operator) {=0A= case '=3D': conditions.push(value + ' =3D=3D ' + = attribute.value.inspect()); break;=0A= case '~=3D': conditions.push(splitValueBy(' ') + = '.include(' + attribute.value.inspect() + ')'); break;=0A= case '|=3D': conditions.push(=0A= splitValueBy('-') + '.first().toUpperCase() = =3D=3D ' + attribute.value.toUpperCase().inspect()=0A= ); break;=0A= case '!=3D': conditions.push(value + ' !=3D ' + = attribute.value.inspect()); break;=0A= case '':=0A= case undefined: conditions.push('element.hasAttribute(' + = attribute.name.inspect() + ')'); break;=0A= default: throw 'Unknown operator ' + attribute.operator = + ' in selector';=0A= }=0A= });=0A= }=0A= =0A= return conditions.join(' && ');=0A= },=0A= =0A= compileMatcher: function() {=0A= this.match =3D new Function('element', 'if (!element.tagName) return = false; \=0A= element =3D $(element); \=0A= return ' + this.buildMatchExpression());=0A= },=0A= =0A= findElements: function(scope) {=0A= var element;=0A= =0A= if (element =3D $(this.params.id))=0A= if (this.match(element))=0A= if (!scope || Element.childOf(element, scope))=0A= return [element];=0A= =0A= scope =3D (scope || = document).getElementsByTagName(this.params.tagName || '*');=0A= =0A= var results =3D [];=0A= for (var i =3D 0, length =3D scope.length; i < length; i++)=0A= if (this.match(element =3D scope[i]))=0A= results.push(Element.extend(element));=0A= =0A= return results;=0A= },=0A= =0A= toString: function() {=0A= return this.expression;=0A= }=0A= }=0A= =0A= Object.extend(Selector, {=0A= matchElements: function(elements, expression) {=0A= var selector =3D new Selector(expression);=0A= return = elements.select(selector.match.bind(selector)).map(Element.extend);=0A= },=0A= =0A= findElement: function(elements, expression, index) {=0A= if (typeof expression =3D=3D 'number') index =3D expression, = expression =3D false;=0A= return Selector.matchElements(elements, expression || '*')[index || = 0];=0A= },=0A= =0A= findChildElements: function(element, expressions) {=0A= return expressions.map(function(expression) {=0A= return = expression.match(/[^\s"]+(?:"[^"]*"[^\s"]+)*/g).inject([null], = function(results, expr) {=0A= var selector =3D new Selector(expr);=0A= return results.inject([], function(elements, result) {=0A= return elements.concat(selector.findElements(result || = element));=0A= });=0A= });=0A= }).flatten();=0A= }=0A= });=0A= =0A= function $$() {=0A= return Selector.findChildElements(document, $A(arguments));=0A= }=0A= var Form =3D {=0A= reset: function(form) {=0A= $(form).reset();=0A= return form;=0A= },=0A= =0A= serializeElements: function(elements, getHash) {=0A= var data =3D elements.inject({}, function(result, element) {=0A= if (!element.disabled && element.name) {=0A= var key =3D element.name, value =3D $(element).getValue();=0A= if (value !=3D undefined) {=0A= if (result[key]) {=0A= if (result[key].constructor !=3D Array) result[key] =3D = [result[key]];=0A= result[key].push(value);=0A= }=0A= else result[key] =3D value;=0A= }=0A= }=0A= return result;=0A= });=0A= =0A= return getHash ? data : Hash.toQueryString(data);=0A= }=0A= };=0A= =0A= Form.Methods =3D {=0A= serialize: function(form, getHash) {=0A= return Form.serializeElements(Form.getElements(form), getHash);=0A= },=0A= =0A= getElements: function(form) {=0A= return $A($(form).getElementsByTagName('*')).inject([],=0A= function(elements, child) {=0A= if (Form.Element.Serializers[child.tagName.toLowerCase()])=0A= elements.push(Element.extend(child));=0A= return elements;=0A= }=0A= );=0A= },=0A= =0A= getInputs: function(form, typeName, name) {=0A= form =3D $(form);=0A= var inputs =3D form.getElementsByTagName('input');=0A= =0A= if (!typeName && !name) return $A(inputs).map(Element.extend);=0A= =0A= for (var i =3D 0, matchingInputs =3D [], length =3D inputs.length; i = < length; i++) {=0A= var input =3D inputs[i];=0A= if ((typeName && input.type !=3D typeName) || (name && input.name = !=3D name))=0A= continue;=0A= matchingInputs.push(Element.extend(input));=0A= }=0A= =0A= return matchingInputs;=0A= },=0A= =0A= disable: function(form) {=0A= form =3D $(form);=0A= form.getElements().each(function(element) {=0A= element.blur();=0A= element.disabled =3D 'true';=0A= });=0A= return form;=0A= },=0A= =0A= enable: function(form) {=0A= form =3D $(form);=0A= form.getElements().each(function(element) {=0A= element.disabled =3D '';=0A= });=0A= return form;=0A= },=0A= =0A= findFirstElement: function(form) {=0A= return $(form).getElements().find(function(element) {=0A= return element.type !=3D 'hidden' && !element.disabled &&=0A= ['input', 'select', = 'textarea'].include(element.tagName.toLowerCase());=0A= });=0A= },=0A= =0A= focusFirstElement: function(form) {=0A= form =3D $(form);=0A= form.findFirstElement().activate();=0A= return form;=0A= }=0A= }=0A= =0A= Object.extend(Form, Form.Methods);=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= Form.Element =3D {=0A= focus: function(element) {=0A= $(element).focus();=0A= return element;=0A= },=0A= =0A= select: function(element) {=0A= $(element).select();=0A= return element;=0A= }=0A= }=0A= =0A= Form.Element.Methods =3D {=0A= serialize: function(element) {=0A= element =3D $(element);=0A= if (!element.disabled && element.name) {=0A= var value =3D element.getValue();=0A= if (value !=3D undefined) {=0A= var pair =3D {};=0A= pair[element.name] =3D value;=0A= return Hash.toQueryString(pair);=0A= }=0A= }=0A= return '';=0A= },=0A= =0A= getValue: function(element) {=0A= element =3D $(element);=0A= var method =3D element.tagName.toLowerCase();=0A= return Form.Element.Serializers[method](element);=0A= },=0A= =0A= clear: function(element) {=0A= $(element).value =3D '';=0A= return element;=0A= },=0A= =0A= present: function(element) {=0A= return $(element).value !=3D '';=0A= },=0A= =0A= activate: function(element) {=0A= element =3D $(element);=0A= element.focus();=0A= if (element.select && ( element.tagName.toLowerCase() !=3D 'input' ||=0A= !['button', 'reset', 'submit'].include(element.type) ) )=0A= element.select();=0A= return element;=0A= },=0A= =0A= disable: function(element) {=0A= element =3D $(element);=0A= element.disabled =3D true;=0A= return element;=0A= },=0A= =0A= enable: function(element) {=0A= element =3D $(element);=0A= element.blur();=0A= element.disabled =3D false;=0A= return element;=0A= }=0A= }=0A= =0A= Object.extend(Form.Element, Form.Element.Methods);=0A= var Field =3D Form.Element;=0A= var $F =3D Form.Element.getValue;=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= Form.Element.Serializers =3D {=0A= input: function(element) {=0A= switch (element.type.toLowerCase()) {=0A= case 'checkbox':=0A= case 'radio':=0A= return Form.Element.Serializers.inputSelector(element);=0A= default:=0A= return Form.Element.Serializers.textarea(element);=0A= }=0A= },=0A= =0A= inputSelector: function(element) {=0A= return element.checked ? element.value : null;=0A= },=0A= =0A= textarea: function(element) {=0A= return element.value;=0A= },=0A= =0A= select: function(element) {=0A= return this[element.type =3D=3D 'select-one' ?=0A= 'selectOne' : 'selectMany'](element);=0A= },=0A= =0A= selectOne: function(element) {=0A= var index =3D element.selectedIndex;=0A= return index >=3D 0 ? this.optionValue(element.options[index]) : = null;=0A= },=0A= =0A= selectMany: function(element) {=0A= var values, length =3D element.length;=0A= if (!length) return null;=0A= =0A= for (var i =3D 0, values =3D []; i < length; i++) {=0A= var opt =3D element.options[i];=0A= if (opt.selected) values.push(this.optionValue(opt));=0A= }=0A= return values;=0A= },=0A= =0A= optionValue: function(opt) {=0A= // extend element because hasAttribute may not be native=0A= return Element.extend(opt).hasAttribute('value') ? opt.value : = opt.text;=0A= }=0A= }=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= Abstract.TimedObserver =3D function() {}=0A= Abstract.TimedObserver.prototype =3D {=0A= initialize: function(element, frequency, callback) {=0A= this.frequency =3D frequency;=0A= this.element =3D $(element);=0A= this.callback =3D callback;=0A= =0A= this.lastValue =3D this.getValue();=0A= this.registerCallback();=0A= },=0A= =0A= registerCallback: function() {=0A= setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);=0A= },=0A= =0A= onTimerEvent: function() {=0A= var value =3D this.getValue();=0A= var changed =3D ('string' =3D=3D typeof this.lastValue && 'string' = =3D=3D typeof value=0A= ? this.lastValue !=3D value : String(this.lastValue) !=3D = String(value));=0A= if (changed) {=0A= this.callback(this.element, value);=0A= this.lastValue =3D value;=0A= }=0A= }=0A= }=0A= =0A= Form.Element.Observer =3D Class.create();=0A= Form.Element.Observer.prototype =3D Object.extend(new = Abstract.TimedObserver(), {=0A= getValue: function() {=0A= return Form.Element.getValue(this.element);=0A= }=0A= });=0A= =0A= Form.Observer =3D Class.create();=0A= Form.Observer.prototype =3D Object.extend(new Abstract.TimedObserver(), {=0A= getValue: function() {=0A= return Form.serialize(this.element);=0A= }=0A= });=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= Abstract.EventObserver =3D function() {}=0A= Abstract.EventObserver.prototype =3D {=0A= initialize: function(element, callback) {=0A= this.element =3D $(element);=0A= this.callback =3D callback;=0A= =0A= this.lastValue =3D this.getValue();=0A= if (this.element.tagName.toLowerCase() =3D=3D 'form')=0A= this.registerFormCallbacks();=0A= else=0A= this.registerCallback(this.element);=0A= },=0A= =0A= onElementEvent: function() {=0A= var value =3D this.getValue();=0A= if (this.lastValue !=3D value) {=0A= this.callback(this.element, value);=0A= this.lastValue =3D value;=0A= }=0A= },=0A= =0A= registerFormCallbacks: function() {=0A= = Form.getElements(this.element).each(this.registerCallback.bind(this));=0A= },=0A= =0A= registerCallback: function(element) {=0A= if (element.type) {=0A= switch (element.type.toLowerCase()) {=0A= case 'checkbox':=0A= case 'radio':=0A= Event.observe(element, 'click', = this.onElementEvent.bind(this));=0A= break;=0A= default:=0A= Event.observe(element, 'change', = this.onElementEvent.bind(this));=0A= break;=0A= }=0A= }=0A= }=0A= }=0A= =0A= Form.Element.EventObserver =3D Class.create();=0A= Form.Element.EventObserver.prototype =3D Object.extend(new = Abstract.EventObserver(), {=0A= getValue: function() {=0A= return Form.Element.getValue(this.element);=0A= }=0A= });=0A= =0A= Form.EventObserver =3D Class.create();=0A= Form.EventObserver.prototype =3D Object.extend(new = Abstract.EventObserver(), {=0A= getValue: function() {=0A= return Form.serialize(this.element);=0A= }=0A= });=0A= if (!window.Event) {=0A= var Event =3D new Object();=0A= }=0A= =0A= Object.extend(Event, {=0A= KEY_BACKSPACE: 8,=0A= KEY_TAB: 9,=0A= KEY_RETURN: 13,=0A= KEY_ESC: 27,=0A= KEY_LEFT: 37,=0A= KEY_UP: 38,=0A= KEY_RIGHT: 39,=0A= KEY_DOWN: 40,=0A= KEY_DELETE: 46,=0A= KEY_HOME: 36,=0A= KEY_END: 35,=0A= KEY_PAGEUP: 33,=0A= KEY_PAGEDOWN: 34,=0A= =0A= element: function(event) {=0A= return event.target || event.srcElement;=0A= },=0A= =0A= isLeftClick: function(event) {=0A= return (((event.which) && (event.which =3D=3D 1)) ||=0A= ((event.button) && (event.button =3D=3D 1)));=0A= },=0A= =0A= pointerX: function(event) {=0A= return event.pageX || (event.clientX +=0A= (document.documentElement.scrollLeft || document.body.scrollLeft));=0A= },=0A= =0A= pointerY: function(event) {=0A= return event.pageY || (event.clientY +=0A= (document.documentElement.scrollTop || document.body.scrollTop));=0A= },=0A= =0A= stop: function(event) {=0A= if (event.preventDefault) {=0A= event.preventDefault();=0A= event.stopPropagation();=0A= } else {=0A= event.returnValue =3D false;=0A= event.cancelBubble =3D true;=0A= }=0A= },=0A= =0A= // find the first node with the given tagName, starting from the=0A= // node the event was triggered on; traverses the DOM upwards=0A= findElement: function(event, tagName) {=0A= var element =3D Event.element(event);=0A= while (element.parentNode && (!element.tagName ||=0A= (element.tagName.toUpperCase() !=3D tagName.toUpperCase())))=0A= element =3D element.parentNode;=0A= return element;=0A= },=0A= =0A= observers: false,=0A= =0A= _observeAndCache: function(element, name, observer, useCapture) {=0A= if (!this.observers) this.observers =3D [];=0A= if (element.addEventListener) {=0A= this.observers.push([element, name, observer, useCapture]);=0A= element.addEventListener(name, observer, useCapture);=0A= } else if (element.attachEvent) {=0A= this.observers.push([element, name, observer, useCapture]);=0A= element.attachEvent('on' + name, observer);=0A= }=0A= },=0A= =0A= unloadCache: function() {=0A= if (!Event.observers) return;=0A= for (var i =3D 0, length =3D Event.observers.length; i < length; = i++) {=0A= Event.stopObserving.apply(this, Event.observers[i]);=0A= Event.observers[i][0] =3D null;=0A= }=0A= Event.observers =3D false;=0A= },=0A= =0A= observe: function(element, name, observer, useCapture) {=0A= element =3D $(element);=0A= useCapture =3D useCapture || false;=0A= =0A= if (name =3D=3D 'keypress' &&=0A= (navigator.appVersion.match(/Konqueror|Safari|KHTML/)=0A= || element.attachEvent))=0A= name =3D 'keydown';=0A= =0A= Event._observeAndCache(element, name, observer, useCapture);=0A= },=0A= =0A= stopObserving: function(element, name, observer, useCapture) {=0A= element =3D $(element);=0A= useCapture =3D useCapture || false;=0A= =0A= if (name =3D=3D 'keypress' &&=0A= (navigator.appVersion.match(/Konqueror|Safari|KHTML/)=0A= || element.detachEvent))=0A= name =3D 'keydown';=0A= =0A= if (element.removeEventListener) {=0A= element.removeEventListener(name, observer, useCapture);=0A= } else if (element.detachEvent) {=0A= try {=0A= element.detachEvent('on' + name, observer);=0A= } catch (e) {}=0A= }=0A= }=0A= });=0A= =0A= /* prevent memory leaks in IE */=0A= if (navigator.appVersion.match(/\bMSIE\b/))=0A= Event.observe(window, 'unload', Event.unloadCache, false);=0A= var Position =3D {=0A= // set to true if needed, warning: firefox performance problems=0A= // NOT neeeded for page scrolling, only if draggable contained in=0A= // scrollable elements=0A= includeScrollOffsets: false,=0A= =0A= // must be called before calling withinIncludingScrolloffset, every = time the=0A= // page is scrolled=0A= prepare: function() {=0A= this.deltaX =3D window.pageXOffset=0A= || document.documentElement.scrollLeft=0A= || document.body.scrollLeft=0A= || 0;=0A= this.deltaY =3D window.pageYOffset=0A= || document.documentElement.scrollTop=0A= || document.body.scrollTop=0A= || 0;=0A= },=0A= =0A= realOffset: function(element) {=0A= var valueT =3D 0, valueL =3D 0;=0A= do {=0A= valueT +=3D element.scrollTop || 0;=0A= valueL +=3D element.scrollLeft || 0;=0A= element =3D element.parentNode;=0A= } while (element);=0A= return [valueL, valueT];=0A= },=0A= =0A= cumulativeOffset: function(element) {=0A= var valueT =3D 0, valueL =3D 0;=0A= do {=0A= valueT +=3D element.offsetTop || 0;=0A= valueL +=3D element.offsetLeft || 0;=0A= element =3D element.offsetParent;=0A= } while (element);=0A= return [valueL, valueT];=0A= },=0A= =0A= positionedOffset: function(element) {=0A= var valueT =3D 0, valueL =3D 0;=0A= do {=0A= valueT +=3D element.offsetTop || 0;=0A= valueL +=3D element.offsetLeft || 0;=0A= element =3D element.offsetParent;=0A= if (element) {=0A= if(element.tagName=3D=3D'BODY') break;=0A= var p =3D Element.getStyle(element, 'position');=0A= if (p =3D=3D 'relative' || p =3D=3D 'absolute') break;=0A= }=0A= } while (element);=0A= return [valueL, valueT];=0A= },=0A= =0A= offsetParent: function(element) {=0A= if (element.offsetParent) return element.offsetParent;=0A= if (element =3D=3D document.body) return element;=0A= =0A= while ((element =3D element.parentNode) && element !=3D = document.body)=0A= if (Element.getStyle(element, 'position') !=3D 'static')=0A= return element;=0A= =0A= return document.body;=0A= },=0A= =0A= // caches x/y coordinate pair to use with overlap=0A= within: function(element, x, y) {=0A= if (this.includeScrollOffsets)=0A= return this.withinIncludingScrolloffsets(element, x, y);=0A= this.xcomp =3D x;=0A= this.ycomp =3D y;=0A= this.offset =3D this.cumulativeOffset(element);=0A= =0A= return (y >=3D this.offset[1] &&=0A= y < this.offset[1] + element.offsetHeight &&=0A= x >=3D this.offset[0] &&=0A= x < this.offset[0] + element.offsetWidth);=0A= },=0A= =0A= withinIncludingScrolloffsets: function(element, x, y) {=0A= var offsetcache =3D this.realOffset(element);=0A= =0A= this.xcomp =3D x + offsetcache[0] - this.deltaX;=0A= this.ycomp =3D y + offsetcache[1] - this.deltaY;=0A= this.offset =3D this.cumulativeOffset(element);=0A= =0A= return (this.ycomp >=3D this.offset[1] &&=0A= this.ycomp < this.offset[1] + element.offsetHeight &&=0A= this.xcomp >=3D this.offset[0] &&=0A= this.xcomp < this.offset[0] + element.offsetWidth);=0A= },=0A= =0A= // within must be called directly before=0A= overlap: function(mode, element) {=0A= if (!mode) return 0;=0A= if (mode =3D=3D 'vertical')=0A= return ((this.offset[1] + element.offsetHeight) - this.ycomp) /=0A= element.offsetHeight;=0A= if (mode =3D=3D 'horizontal')=0A= return ((this.offset[0] + element.offsetWidth) - this.xcomp) /=0A= element.offsetWidth;=0A= },=0A= =0A= page: function(forElement) {=0A= var valueT =3D 0, valueL =3D 0;=0A= =0A= var element =3D forElement;=0A= do {=0A= valueT +=3D element.offsetTop || 0;=0A= valueL +=3D element.offsetLeft || 0;=0A= =0A= // Safari fix=0A= if (element.offsetParent=3D=3Ddocument.body)=0A= if (Element.getStyle(element,'position')=3D=3D'absolute') break;=0A= =0A= } while (element =3D element.offsetParent);=0A= =0A= element =3D forElement;=0A= do {=0A= if (!window.opera || element.tagName=3D=3D'BODY') {=0A= valueT -=3D element.scrollTop || 0;=0A= valueL -=3D element.scrollLeft || 0;=0A= }=0A= } while (element =3D element.parentNode);=0A= =0A= return [valueL, valueT];=0A= },=0A= =0A= clone: function(source, target) {=0A= var options =3D Object.extend({=0A= setLeft: true,=0A= setTop: true,=0A= setWidth: true,=0A= setHeight: true,=0A= offsetTop: 0,=0A= offsetLeft: 0=0A= }, arguments[2] || {})=0A= =0A= // find page position of source=0A= source =3D $(source);=0A= var p =3D Position.page(source);=0A= =0A= // find coordinate system to use=0A= target =3D $(target);=0A= var delta =3D [0, 0];=0A= var parent =3D null;=0A= // delta [0,0] will do fine with position: fixed elements,=0A= // position:absolute needs offsetParent deltas=0A= if (Element.getStyle(target,'position') =3D=3D 'absolute') {=0A= parent =3D Position.offsetParent(target);=0A= delta =3D Position.page(parent);=0A= }=0A= =0A= // correct by body offsets (fixes Safari)=0A= if (parent =3D=3D document.body) {=0A= delta[0] -=3D document.body.offsetLeft;=0A= delta[1] -=3D document.body.offsetTop;=0A= }=0A= =0A= // set position=0A= if(options.setLeft) target.style.left =3D (p[0] - delta[0] + = options.offsetLeft) + 'px';=0A= if(options.setTop) target.style.top =3D (p[1] - delta[1] + = options.offsetTop) + 'px';=0A= if(options.setWidth) target.style.width =3D source.offsetWidth + = 'px';=0A= if(options.setHeight) target.style.height =3D source.offsetHeight + = 'px';=0A= },=0A= =0A= absolutize: function(element) {=0A= element =3D $(element);=0A= if (element.style.position =3D=3D 'absolute') return;=0A= Position.prepare();=0A= =0A= var offsets =3D Position.positionedOffset(element);=0A= var top =3D offsets[1];=0A= var left =3D offsets[0];=0A= var width =3D element.clientWidth;=0A= var height =3D element.clientHeight;=0A= =0A= element._originalLeft =3D left - parseFloat(element.style.left || = 0);=0A= element._originalTop =3D top - parseFloat(element.style.top || = 0);=0A= element._originalWidth =3D element.style.width;=0A= element._originalHeight =3D element.style.height;=0A= =0A= element.style.position =3D 'absolute';=0A= element.style.top =3D top + 'px';=0A= element.style.left =3D left + 'px';=0A= element.style.width =3D width + 'px';=0A= element.style.height =3D height + 'px';=0A= },=0A= =0A= relativize: function(element) {=0A= element =3D $(element);=0A= if (element.style.position =3D=3D 'relative') return;=0A= Position.prepare();=0A= =0A= element.style.position =3D 'relative';=0A= var top =3D parseFloat(element.style.top || 0) - = (element._originalTop || 0);=0A= var left =3D parseFloat(element.style.left || 0) - = (element._originalLeft || 0);=0A= =0A= element.style.top =3D top + 'px';=0A= element.style.left =3D left + 'px';=0A= element.style.height =3D element._originalHeight;=0A= element.style.width =3D element._originalWidth;=0A= }=0A= }=0A= =0A= // Safari returns margins on body which is incorrect if the child is = absolutely=0A= // positioned. For performance reasons, redefine = Position.cumulativeOffset for=0A= // KHTML/WebKit only.=0A= if (/Konqueror|Safari|KHTML/.test(navigator.userAgent)) {=0A= Position.cumulativeOffset =3D function(element) {=0A= var valueT =3D 0, valueL =3D 0;=0A= do {=0A= valueT +=3D element.offsetTop || 0;=0A= valueL +=3D element.offsetLeft || 0;=0A= if (element.offsetParent =3D=3D document.body)=0A= if (Element.getStyle(element, 'position') =3D=3D 'absolute') = break;=0A= =0A= element =3D element.offsetParent;=0A= } while (element);=0A= =0A= return [valueL, valueT];=0A= }=0A= }=0A= =0A= Element.addMethods(); ------=_NextPart_000_0020_01C7A5EA.EA8F7930 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://media.collegepublisher.com/media/scripts/global.js?14 function toggleLayer(whichLayer) { if (document.getElementById) { // this is the way the standards work var style2 =3D document.getElementById(whichLayer).style; style2.display =3D style2.display? "":"block"; } else if (document.all) { // this is the way old msie versions work var style2 =3D document.all[whichLayer].style; style2.display =3D style2.display? "":"block"; } else if (document.layers) { // this is the way nn4 works var style2 =3D document.layers[whichLayer].style; style2.display =3D style2.display? "":"block"; } } function popUp(URL,WIDTH,HEIGHT) { day =3D new Date(); id =3D day.getTime(); eval("page" + id + " =3D window.open(URL, '" + id + "', = 'toolbar=3D0,scrollbars=3D1,location=3D0,statusbar=3D1,menubar=3D0,resiza= ble=3D1,width=3D" + WIDTH + ",height=3D" + HEIGHT + "');"); } function successNotification(ID) { new Effect.Highlight(ID, {duration: 1, startcolor: '#ffff99', endcolor: = '#e7fbe7', restorecolor: '#e7fbe7'}); } function failureNotification(ID) { new Effect.Highlight(ID, {duration: 1, startcolor: '#ff0000', endcolor: = '#cc0000', restorecolor: '#cc0000'}); } // used for the 'X Close' button on Add/Edit story success function slideClosed(ID) { new Effect.toggle(ID,'appear', {duration: 1}); } // used for the 'What does this page do?' tabs function tabSlide(ID) { new Effect.toggle(ID,'slide', {duration: .5}); } // first used for 'add batch tags' in new photo manager function fadeIt(ID) { new Effect.Appear(ID); } // change from one background color to another, permandently function highlightIt(ID,start,end) { new = Effect.Highlight(ID,{startcolor:start,endcolor:end,restorecolor:end}); } // This is used for content swapping. Originally setup by Matt C. function displayBlocks() { allNodes =3D document.getElementsByClassName("cp_ajax"); for(i =3D 0; i < allNodes.length; i++) { var url =3D allNodes[i].href; allNodes[i].style.display =3D 'none'; var myAjax =3D new Ajax.Request (url,{method: 'get', onComplete: = showResponse}); } } function showResponse(originalRequest) { for(i =3D 0; i < allNodes.length; i++) { $(allNodes[i].title).innerHTML =3D originalRequest.responseText; } } // Grabs html for tooltips. function getTooltipText(id) { lasttooltipevent =3D 'mouseover'; var tooltipLocation =3D '/other/tooltips/?q=3D' + id; //var tooltipLocation =3D 'media/sample.xml'; xmlhttp.open("GET",tooltipLocation,true); xmlhttp.onreadystatechange=3Dfunction() { if (xmlhttp.readyState=3D=3D4) { if (lasttooltipevent=3D=3D'mouseover') { var response =3D xmlhttp.responseText; overlib(response, STICKY, CAPTION,'just ignore this but keep = it',CLOSECLICK, ABOVE, RIGHT, OFFSETY, -15, OFFSETX, 19); } } } xmlhttp.send(null); } /*var lasttooltipevent =3D '';*/ /* We remember the last tool tip event (Mouseout, mouseover) when deciding = to open the bubble info. */ function closeToolTip(id) { lasttooltipevent =3D 'mouseout'; cClick(); } // Create Ajax Popup Login Box function popup(url,ie5url,width,height) { // if a "closeable" boolean is passed, track it. It is the 4th item on = the index of arguments. if (arguments.length =3D=3D 5) { closeable =3D arguments[4]; } else { closeable =3D 0; } if (closeable =3D=3D 1) { url =3D url + '&closeable=3D1'; } if ((navigator.userAgent.indexOf("MSIE")!=3D-1) && = (navigator.userAgent.indexOf("Mac")!=3D-1)) { document.location.href =3D ie5url; =20 } else { var win =3D new Dialog.alert({url: url, options: {method: 'get'}}, = {windowParameters: {className: "popup", width: width, height: height, = zindex: 1500}, okLabel: "x", buttonClass: "hideClose"}); // To prevent ugliness, we hide all object tags (flash movies) document.getElementsByTagName("object").className =3D "hide"; document.getElementsByTagName("embed").className =3D "hide"; } } // Create Ajax Popup Login Box function popup_new(url,ie5url,width,height) { /* // if a "closeable" boolean is passed, track it. It is the 4th item on = the index of arguments. if (arguments.length =3D=3D 5) { closeable =3D arguments[4]; }=20 else { closeable =3D 0; } if (closeable =3D=3D 1) { url =3D url + '&closeable=3D1'; } if ((navigator.userAgent.indexOf("MSIE")!=3D-1) && = (navigator.userAgent.indexOf("Mac")!=3D-1)) { document.location.href =3D ie5url; =20 }=20 else { // Windows with an URL as content // We want this to not be resizable or draggable so we set those to = false // The dialog2 is the name of the class prefix for use in the style = sheets // Title sets the title of the window (this can be blank for the login = window) y2mcp_win2 =3D new Window('y2mcp_regdialog2', { bottom:0, left:0, width:width, height:height,=20 resizable: false, closable: closeable, minimizable: false, = maximizable: false, draggable: false,=20 url: url, showEffectOptions: {duration:0}, hideEffectOptions: = {duration:0}}) y2mcp_win2.setDestroyOnClose(); // We now set the window to show center and set modal to true y2mcp_win2.showCenter(true); } */ } function getCurrentDateTime(theFormat){ // // returns a nice date/time string for the current timestamp, depending = on what format you request // INPUT: date format - REQUIREd // formats: // 1 - US short date (mm/dd/yyyy): 01/01/2006 // 2 - long date: Monday, January 1, 2006 // 3 - long date and time (12-hour): Monday, January 1, 2006 9:00 = AM // 4 - time (12-hour): 9:00 AM // OUTPUT: formatted date/time string // // NOTES/CAVEATS/WARNINGS: // This function works with a local time string (not GMT/UTC) // var theReturnVal =3D ""; var today =3D new Date(); =09 var arDays =3D new Array('Sunday','Monday','Tuesday','Wednesday', 'Thursday','Friday','Saturday'); var arFullMonths =3D new Array('January','February','March','April', = 'May','June','July','August','September','October','November','December')= ; var Year =3D today.getFullYear(); var Month =3D leadingZero(today.getMonth()+1); var DayName =3D arDays[today.getDay()]; var MonthFullName =3D arFullMonths[today.getMonth()]; var Day =3D today.getDate(); var DayLeading =3D leadingZero(today.getDate()); var Hours =3D today.getHours(); var ampm =3D "AM"; =09 if (Hours =3D=3D 0) Hours =3D 12; if (Hours > 11) ampm =3D "PM"; if (Hours > 12) Hours -=3D 12; var HoursLeading =3D leadingZero(Hours); var Minutes =3D leadingZero(today.getMinutes()); var Seconds =3D leadingZero(today.getSeconds()); switch(theFormat){ case 1: theReturnVal =3D Month + '/' + Day + '/' + Year; break; case 2: theReturnVal =3D DayName + ', ' + MonthFullName + ' ' + Day + ', ' + = Year; break; case 3: theReturnVal =3D DayName + ', ' + MonthFullName + ' ' + Day + ', ' + = Year + ' ' + Hours + ':' + Minutes + ' ' + ampm; break; case 4: theReturnVal =3D Hours + ':' + Minutes + ' ' + ampm; break; default: theReturnVal =3D Month + '/' + Day + '/' + Year; } return theReturnVal; } function leadingZero(nr) { if (nr < 10){=20 nr =3D "0" + nr; } return nr; } function getCurrentIssue(theFormat) { // writes "Dayname Monthname DD, YYYY" // within div#cp_current_issue // // so if you're going to do some styling, use selectors as follows: // // #cp_current_issue .day {font-weight: bold;} // // formats: // 1 - US short date (mm/dd/yyyy): 01/01/2006 // spans: .day/.month/.year // 2 - long date: Monday January 1, 2006 // spans: .dayname .monthname .day, .year var openDiv =3D '
      '; var closeDiv =3D '
      '; var s =3D "/"; var n =3D " " function writeSpan(className,whichVar) { var spanWrap =3D '' + whichVar + = ''; return spanWrap; } switch(theFormat) { case 1:=20 thisIssue =3D writeSpan("day",currentissueday) + s + = writeSpan("month",currentissuemonth) + s + = writeSpan("year",currentissueyear); break; case 2: thisIssue =3D writeSpan("dayname",currentissuedayname) + n + = writeSpan("monthname",currentissuemonthname) + n + = writeSpan("day",currentissueday) + "," + n + = writeSpan("year",currentissueyear); break; default:=20 thisIssue =3D writeSpan("day",currentissueday) + s + = writeSpan("month",currentissuemonth) + s + = writeSpan("year",currentissueyear); } thisIssue =3D openDiv + thisIssue + closeDiv return thisIssue; } /* pullquote function by Roger Johansson, http://www.456bereastreet.com/ */ var cp_pullquote =3D { init : function() { // Check that the browser supports the methods used if (!document.getElementById || !document.createElement || = !document.appendChild) return false; var oElement, ocp_pullquote, ocp_pullquoteP, oQuoteContent, i, j; // Find all span elements with a class name of cp_pullquote var arrElements =3D document.getElementsByTagName('span'); var oRegExp =3D new RegExp("(^|\\s)cp_pullquote(\\s|$)"); for (i=3D0; i');=0A= },=0A= load: function() {=0A= if((typeof Prototype=3D=3D'undefined') || =0A= (typeof Element =3D=3D 'undefined') || =0A= (typeof Element.Methods=3D=3D'undefined') ||=0A= parseFloat(Prototype.Version.split(".")[0] + "." +=0A= Prototype.Version.split(".")[1]) < 1.5)=0A= throw("script.aculo.us requires the Prototype JavaScript = framework >=3D 1.5.0");=0A= =0A= $A(document.getElementsByTagName("script")).findAll( function(s) {=0A= return (s.src && s.src.match(/scriptaculous\.js(\?.*)?$/))=0A= }).each( function(s) {=0A= var path =3D s.src.replace(/scriptaculous\.js(\?.*)?$/,'');=0A= var includes =3D s.src.match(/\?.*load=3D([a-z,]*)/);=0A= (includes ? includes[1] : = 'builder,effects,dragdrop,controls,slider').split(',').each(=0A= function(include) { Scriptaculous.require(path+include+'.js') });=0A= });=0A= }=0A= }=0A= =0A= Scriptaculous.load(); ------=_NextPart_000_0020_01C7A5EA.EA8F7930 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://media.collegepublisher.com/media/scripts/window.js // Copyright (c) 2006 S=C3=A9bastien Gruhier (http://xilinus.com, = http://itseb.com)=0A= // =0A= // Permission is hereby granted, free of charge, to any person obtaining=0A= // a copy of this software and associated documentation files (the=0A= // "Software"), to deal in the Software without restriction, including=0A= // without limitation the rights to use, copy, modify, merge, publish,=0A= // distribute, sublicense, and/or sell copies of the Software, and to=0A= // permit persons to whom the Software is furnished to do so, subject to=0A= // the following conditions:=0A= // =0A= // The above copyright notice and this permission notice shall be=0A= // included in all copies or substantial portions of the Software.=0A= //=0A= // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,=0A= // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF=0A= // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND=0A= // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE=0A= // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION=0A= // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION=0A= // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.=0A= //=0A= // VERSION 0.96.2=0A= =0A= var Window =3D Class.create();=0A= Window.prototype =3D {=0A= // Constructor=0A= // Available parameters : className, title, minWidth, minHeight, = maxWidth, maxHeight, width, height, top, left, bottom, right, resizable, = zIndex, opacity, =0A= // hideEffect, showEffect, showEffectOptions, = hideEffectOptions, effectOptions, url, draggable, closable, minimizable, = maximizable, parent, onload=0A= initialize: function(id) {=0A= if ($(id))=0A= alert("Window " + id + " is already register is the DOM!!, be sure = to use setDestroyOnClose()")=0A= =0A= this.hasEffectLib =3D String.prototype.parseColor !=3D null;=0A= this.options =3D Object.extend({=0A= className: "dialog",=0A= minWidth: 100,=0A= minHeight: 20,=0A= resizable: true,=0A= closable: true,=0A= minimizable: true,=0A= maximizable: true,=0A= draggable: true,=0A= userData: null,=0A= showEffect: (this.hasEffectLib ? Effect.Appear : = Element.show),=0A= hideEffect: (this.hasEffectLib ? Effect.Fade : = Element.hide),=0A= showEffectOptions: {},=0A= hideEffectOptions: {},=0A= effectOptions: null,=0A= parent: document.getElementsByTagName("body").item(0),=0A= title: " ",=0A= url: null,=0A= onload: Prototype.emptyFunction,=0A= width: 200,=0A= height: 300,=0A= opacity: 1=0A= }, arguments[1] || {});=0A= =0A= if (this.options.effectOptions) {=0A= Object.extend(this.options.hideEffectOptions, = this.options.effectOptions);=0A= Object.extend(this.options.showEffectOptions, = this.options.effectOptions);=0A= }=0A= if (this.options.hideEffect =3D=3D Element.hide)=0A= this.options.hideEffect =3D function(){ Element.hide(this.element); = if (this.destroyOnClose) this.destroy(); }.bind(this)=0A= =0A= this.element =3D this._createWindow(id);=0A= =0A= // Bind event listener=0A= this.eventMouseDown =3D this._initDrag.bindAsEventListener(this);=0A= this.eventMouseUp =3D this._endDrag.bindAsEventListener(this);=0A= this.eventMouseMove =3D this._updateDrag.bindAsEventListener(this);=0A= this.eventKeyPress =3D this._keyPress.bindAsEventListener(this);=0A= this.eventOnLoad =3D = this._getWindowBorderSize.bindAsEventListener(this);=0A= this.eventMouseDownContent =3D = this.toFront.bindAsEventListener(this);=0A= this.eventResize =3D this._recenter.bindAsEventListener(this);=0A= =0A= this.topbar =3D $(this.element.id + "_top");=0A= this.bottombar =3D $(this.element.id + "_bottom");=0A= this.content =3D $(this.element.id + "_content");=0A= =0A= Event.observe(this.topbar, "mousedown", this.eventMouseDown);=0A= Event.observe(this.bottombar, "mousedown", this.eventMouseDown);=0A= Event.observe(this.content, "mousedown", this.eventMouseDownContent);=0A= Event.observe(window, "load", this.eventOnLoad);=0A= Event.observe(window, "resize", this.eventResize);=0A= Event.observe(window, "scroll", this.eventResize);=0A= =0A= if (this.options.draggable) {=0A= this.bottombar.addClassName("bottom_draggable");=0A= this.topbar.addClassName("top_draggable");=0A= } =0A= =0A= if (this.options.resizable) {=0A= this.sizer =3D $(this.element.id + "_sizer");=0A= Event.observe(this.sizer, "mousedown", this.eventMouseDown);=0A= } =0A= =0A= this.useLeft =3D null;=0A= this.useTop =3D null;=0A= if (arguments[1].left !=3D null) {=0A= this.element.setStyle({left: parseFloat(arguments[1].left) + 'px'});=0A= this.useLeft =3D true;=0A= }=0A= if (arguments[1].right !=3D null) {=0A= this.element.setStyle({right: parseFloat(arguments[1].right) + 'px'});=0A= this.useLeft =3D false;=0A= }=0A= if (this.useLeft =3D=3D null) {=0A= this.element.setStyle({left: "0px"});=0A= this.useLeft =3D true;=0A= }=0A= =0A= if (arguments[1].top !=3D null) {=0A= this.element.setStyle({top: parseFloat(arguments[1].top) + 'px'});=0A= this.useTop =3D true;=0A= }=0A= if (arguments[1].bottom !=3D null) {=0A= this.element.setStyle({bottom: parseFloat(arguments[1].bottom) + = 'px'}); =0A= this.useTop =3D false;=0A= }=0A= if (this.useTop =3D=3D null) {=0A= this.element.setStyle({top: "0px"});=0A= this.useTop =3D true;=0A= }=0A= =0A= this.storedLocation =3D null;=0A= =0A= this.setOpacity(this.options.opacity);=0A= if (this.options.zIndex)=0A= this.setZIndex(this.options.zIndex)=0A= =0A= this.destroyOnClose =3D false;=0A= =0A= this._getWindowBorderSize();=0A= this.width =3D this.options.width;=0A= this.height =3D this.options.height;=0A= =0A= if (this.width && this.height)=0A= this.setSize(this.options.width, this.options.height);=0A= this.setTitle(this.options.title)=0A= Windows.register(this); =0A= },=0A= =0A= // Destructor=0A= destroy: function() {=0A= Windows.notify("onDestroy", this);=0A= =0A= Event.stopObserving(this.topbar, "mousedown", this.eventMouseDown);=0A= Event.stopObserving(this.bottombar, "mousedown", this.eventMouseDown);=0A= Event.stopObserving(this.content, "mousedown", = this.eventMouseDownContent);=0A= =0A= Event.stopObserving(window, "load", this.eventOnLoad);=0A= Event.stopObserving(window, "resize", this.eventResize);=0A= Event.stopObserving(window, "scroll", this.eventResize);=0A= =0A= Event.stopObserving(this.content, "load", this.options.onload);=0A= =0A= if (this.sizer)=0A= Event.stopObserving(this.sizer, "mousedown", this.eventMouseDown);=0A= =0A= if (this.options.url)=0A= this.content.src =3D null=0A= =0A= if(this.iefix) =0A= Element.remove(this.iefix);=0A= =0A= Element.remove(this.element);=0A= Windows.unregister(this); =0A= },=0A= =0A= // Sets window deleagte, should have functions: "canClose(window)" =0A= setDelegate: function(delegate) {=0A= this.delegate =3D delegate=0A= },=0A= =0A= // Gets current window delegate=0A= getDelegate: function() {=0A= return this.delegate;=0A= },=0A= =0A= // Gets window content=0A= getContent: function () {=0A= return this.content;=0A= },=0A= =0A= // Sets the content with an element id=0A= setContent: function(id, autoresize, autoposition) {=0A= var d =3D null;=0A= var p =3D null;=0A= =0A= if (autoresize) =0A= d =3D Element.getDimensions(id);=0A= if (autoposition) =0A= p =3D Position.cumulativeOffset($(id));=0A= =0A= var content =3D this.getContent()=0A= content.appendChild($(id));=0A= $(id).show();=0A= if (autoresize) =0A= this.setSize(d.width, d.height);=0A= if (autoposition) =0A= this.setLocation(p[1] - this.heightN, p[0] - this.widthW); =0A= },=0A= =0A= setAjaxContent: function(url, options, showCentered, showModal) {=0A= this.showFunction =3D showCentered ? "showCenter" : "show";=0A= this.showModal =3D showModal || false;=0A= =0A= if (options =3D=3D null)=0A= options =3D {} =0A= this.onComplete =3D options.onComplete;=0A= options.onComplete =3D this._setAjaxContent.bind(this);=0A= =0A= new Ajax.Request(url, options);=0A= },=0A= =0A= _setAjaxContent: function(originalRequest) {=0A= this.getContent().innerHTML =3D originalRequest.responseText;=0A= if (this.onComplete)=0A= this.onComplete(originalRequest);=0A= this[this.showFunction](this.showModal)=0A= },=0A= =0A= // Stores position/size in a cookie, by default named with window id=0A= setCookie: function(name, expires, path, domain, secure) {=0A= name =3D name || this.element.id;=0A= this.cookie =3D [name, expires, path, domain, secure];=0A= =0A= // Get cookie=0A= var value =3D WindowUtilities.getCookie(name)=0A= // If exists=0A= if (value) {=0A= var values =3D value.split(',');=0A= var x =3D values[0].split(':');=0A= var y =3D values[1].split(':');=0A= =0A= var w =3D parseFloat(values[2]), h =3D parseFloat(values[3]);=0A= var mini =3D values[4];=0A= var maxi =3D values[5];=0A= =0A= this.setSize(w, h);=0A= if (mini =3D=3D "true")=0A= this.doMinimize =3D true; // Minimize will be done at onload = window event=0A= else if (maxi =3D=3D "true")=0A= this.doMaximize =3D true; // Maximize will be done at onload window = event=0A= =0A= this.useLeft =3D x[0] =3D=3D "l";=0A= this.useTop =3D y[0] =3D=3D "t";=0A= =0A= this.element.setStyle(this.useLeft ? {left: x[1]} : {right: x[1]});=0A= this.element.setStyle(this.useTop ? {top: y[1]} : {bottom: y[1]});=0A= }=0A= },=0A= =0A= // Gets window ID=0A= getId: function() {=0A= return this.element.id;=0A= },=0A= =0A= // Detroys itself when closing =0A= setDestroyOnClose: function() {=0A= Object.extend(this.options.hideEffectOptions, {afterFinish: = this.destroy.bind(this)});=0A= this.destroyOnClose =3D true;=0A= },=0A= =0A= // initDrag event=0A= _initDrag: function(event) {=0A= // Get pointer X,Y=0A= this.pointer =3D [Event.pointerX(event), Event.pointerY(event)];=0A= =0A= // Resize=0A= if (Event.element(event) =3D=3D this.sizer) {=0A= this.doResize =3D true;=0A= this.widthOrg =3D this.width;=0A= this.heightOrg =3D this.height;=0A= this.bottomOrg =3D parseFloat(this.element.getStyle('bottom'));=0A= this.rightOrg =3D parseFloat(this.element.getStyle('right'));=0A= Windows.notify("onStartResize", this);=0A= }=0A= else {=0A= this.doResize =3D false;=0A= =0A= // Check if click on close button, =0A= var closeButton =3D $(this.getId() + '_close');=0A= if (closeButton && Position.within(closeButton, this.pointer[0], = this.pointer[1])) =0A= return;=0A= =0A= this.toFront();=0A= =0A= if (! this.options.draggable) =0A= return;=0A= Windows.notify("onStartMove", this);=0A= } =0A= // Register global event to capture mouseUp and mouseMove=0A= Event.observe(document, "mouseup", this.eventMouseUp, false);=0A= Event.observe(document, "mousemove", this.eventMouseMove, false);=0A= =0A= // Add an invisible div to keep catching mouse event over iframes=0A= WindowUtilities.disableScreen('__invisible__', '__invisible__');=0A= =0A= // Stop selection while dragging=0A= document.body.ondrag =3D function () { return false; };=0A= document.body.onselectstart =3D function () { return false; };=0A= =0A= Event.stop(event);=0A= },=0A= =0A= // updateDrag event=0A= _updateDrag: function(event) {=0A= var pointer =3D [Event.pointerX(event), Event.pointerY(event)]; =0A= var dx =3D pointer[0] - this.pointer[0];=0A= var dy =3D pointer[1] - this.pointer[1];=0A= =0A= // Resize case, update width/height=0A= if (this.doResize) {=0A= this.setSize(this.widthOrg + dx , this.heightOrg + dy);=0A= =0A= dx =3D this.width - this.widthOrg=0A= dy =3D this.height - this.heightOrg=0A= =0A= // Check if it's a right position, update it to keep upper-left = corner at the same position=0A= if (! this.useLeft) =0A= this.element.setStyle({right: (this.rightOrg -dx) + 'px'});=0A= // Check if it's a bottom position, update it to keep upper-left = corner at the same position=0A= if (! this.useTop) =0A= this.element.setStyle({bottom: (this.bottomOrg -dy) + 'px'});=0A= }=0A= // Move case, update top/left=0A= else {=0A= this.pointer =3D pointer;=0A= =0A= if (this.useLeft) =0A= this.element.setStyle({left: = parseFloat(this.element.getStyle('left')) + dx + 'px'});=0A= else =0A= this.element.setStyle({right: = parseFloat(this.element.getStyle('right')) - dx + 'px'});=0A= =0A= if (this.useTop) =0A= this.element.setStyle({top: parseFloat(this.element.getStyle('top')) = + dy + 'px'});=0A= else =0A= this.element.setStyle({bottom: = parseFloat(this.element.getStyle('bottom')) - dy + 'px'});=0A= }=0A= if (this.iefix) =0A= this._fixIEOverlapping(); =0A= =0A= this._removeStoreLocation();=0A= Event.stop(event);=0A= },=0A= =0A= // endDrag callback=0A= _endDrag: function(event) {=0A= // Remove temporary div over iframes=0A= WindowUtilities.enableScreen('__invisible__');=0A= =0A= if (this.doResize)=0A= Windows.notify("onEndResize", this);=0A= else=0A= Windows.notify("onEndMove", this);=0A= =0A= // Release event observing=0A= Event.stopObserving(document, "mouseup", this.eventMouseUp,false);=0A= Event.stopObserving(document, "mousemove", this.eventMouseMove, = false);=0A= =0A= // Store new location/size if need be=0A= this._saveCookie()=0A= =0A= Event.stop(event);=0A= =0A= // Restore selection=0A= document.body.ondrag =3D null;=0A= document.body.onselectstart =3D null;=0A= },=0A= =0A= _keyPress: function(event) {=0A= //Dialog.cancelCallback();=0A= },=0A= =0A= // Creates HTML window code=0A= _createWindow: function(id) {=0A= var className =3D this.options.className;=0A= var win =3D document.createElement("div");=0A= win.setAttribute('id', id);=0A= win.className =3D "dialog";=0A= =0A= var content;=0A= if (this.options.url)=0A= content=3D "";=0A= else=0A= content =3D"
      ";=0A= =0A= var closeDiv =3D this.options.closable ? "
      " : "";=0A= var minDiv =3D this.options.minimizable ? "
      " : "";=0A= var maxDiv =3D this.options.maximizable ? "
      " : "";=0A= var seAttributes =3D this.options.resizable ? "class=3D'" + className = + "_sizer' id=3D'" + id + "_sizer'" : "class=3D'" + className + "_se'";=0A= =0A= win.innerHTML =3D closeDiv + minDiv + maxDiv + "\=0A= \=0A= \=0A= \=0A= \=0A= \=0A= \=0A=
       
      "+ this.options.title = +"
       
      \=0A= \=0A= \=0A= \=0A= \=0A= \=0A= \=0A=
      "+ content +"
      \=0A= \=0A= \=0A= \=0A= \=0A= \=0A= \=0A=
       
       
       
      \=0A= ";=0A= =0A= Element.hide(win);=0A= this.options.parent.insertBefore(win, this.options.parent.firstChild);=0A= Event.observe($(id + "_content"), "load", this.options.onload);=0A= return win;=0A= },=0A= =0A= // Sets window location=0A= setLocation: function(top, left) {=0A= if (top < 0)=0A= top =3D 0;=0A= if (left < 0)=0A= left=3D 0=0A= this.element.setStyle({top: top + 'px'});=0A= this.element.setStyle({left: left + 'px'});=0A= this.useLeft =3D true;=0A= this.useTop =3D true;=0A= },=0A= =0A= // Gets window size=0A= getSize: function() {=0A= return {width: this.width, height: this.height};=0A= },=0A= =0A= // Sets window size=0A= setSize: function(width, height) { =0A= width =3D parseFloat(width);=0A= height =3D parseFloat(height);=0A= =0A= // Check min and max size=0A= if (width < this.options.minWidth)=0A= width =3D this.options.minWidth;=0A= =0A= if (height < this.options.minHeight)=0A= height =3D this.options.minHeight;=0A= =0A= if (this.options. maxHeight && height > this.options. maxHeight)=0A= height =3D this.options. maxHeight;=0A= =0A= if (this.options. maxWidth && width > this.options. maxWidth)=0A= width =3D this.options. maxWidth;=0A= =0A= this.width =3D width;=0A= this.height =3D height;=0A= this.element.setStyle({width: width + this.widthW + this.widthE + = "px"})=0A= this.element.setStyle({height: height + this.heightN + this.heightS + = "px"})=0A= =0A= // Update content height=0A= var content =3D $(this.element.id + '_content')=0A= content.setStyle({height: height + 'px'});=0A= content.setStyle({width: width + 'px'});=0A= },=0A= =0A= updateHeight: function() {=0A= this.setSize(this.width, this.content.scrollHeight)=0A= },=0A= =0A= updateWidth: function() {=0A= this.setSize(this.content.scrollWidth, this.height)=0A= },=0A= =0A= // Brings window to front=0A= toFront: function() {=0A= this.setZIndex(Windows.maxZIndex + 20);=0A= Windows.notify("onFocus", this);=0A= },=0A= =0A= // Displays window modal state or not=0A= show: function(modal) {=0A= if (modal) {=0A= WindowUtilities.disableScreen(this.options.className, = 'overlay_modal', this.getId());=0A= this.modal =3D true; =0A= this.setZIndex(Windows.maxZIndex + 20);=0A= Windows.unsetOverflow(this);=0A= Event.observe(document, "keypress", this.eventKeyPress); =0A= }=0A= =0A= // To restore overflow if need be=0A= if (this.oldStyle)=0A= this.getContent().setStyle({overflow: this.oldStyle});=0A= =0A= if (! this.width || !this.height) {=0A= var size =3D WindowUtilities._computeSize(this.content.innerHTML, = this.content.id, this.width, this.height, 0)=0A= if (this.height)=0A= this.width =3D size + 5=0A= else=0A= this.height =3D size + 5=0A= }=0A= =0A= this.setSize(this.width, this.height);=0A= if (this.centered)=0A= this._center(this.centerTop, this.centerLeft); =0A= =0A= if (this.options.showEffect !=3D Element.show && = this.options.showEffectOptions )=0A= this.options.showEffect(this.element, = this.options.showEffectOptions); =0A= else=0A= this.options.showEffect(this.element); =0A= =0A= this._checkIEOverlapping();=0A= Windows.notify("onShow", this); =0A= },=0A= =0A= // Displays window modal state or not at the center of the page=0A= showCenter: function(modal, top, left) {=0A= this.centered =3D true;=0A= this.centerTop =3D top;=0A= this.centerLeft =3D left;=0A= =0A= this.show(modal);=0A= },=0A= =0A= isVisible: function() {=0A= return this.element.visible();=0A= },=0A= =0A= _center: function(top, left) {=0A= var windowScroll =3D WindowUtilities.getWindowScroll(); =0A= var pageSize =3D WindowUtilities.getPageSize(); =0A= =0A= if (!top)=0A= top =3D (pageSize.windowHeight - (this.height + this.heightN + = this.heightS))/2;=0A= top +=3D windowScroll.top=0A= =0A= if (!left)=0A= left =3D (pageSize.windowWidth - (this.width + this.widthW + = this.widthE))/2;=0A= left +=3D windowScroll.left =0A= =0A= this.setLocation(top, left);=0A= this.toFront();=0A= },=0A= =0A= _recenter: function(event) {=0A= if (this.modal) {=0A= var pageSize =3D WindowUtilities.getPageSize();=0A= // set height of Overlay to take up whole page and show=0A= if ($('overlay_modal')) {=0A= $('overlay_modal').style.height =3D (pageSize.pageHeight + 'px');=0A= $('overlay_modal').style.width =3D (pageSize.pageWidth + 'px');=0A= } =0A= if (this.centered)=0A= this._center(this.centerTop, this.centerLeft); =0A= }=0A= },=0A= =0A= // Hides window=0A= hide: function() {=0A= if (this.modal) {=0A= WindowUtilities.enableScreen();=0A= Windows.resetOverflow();=0A= Event.stopObserving(document, "keypress", this.eventKeyPress); =0A= }=0A= // To avoid bug on scrolling bar=0A= this.oldStyle =3D this.getContent().getStyle('overflow') || "auto"=0A= this.getContent().setStyle({overflow: "hidden"});=0A= =0A= this.options.hideEffect(this.element, this.options.hideEffectOptions); =0A= =0A= if(this.iefix) =0A= this.iefix.hide();=0A= Windows.notify("onHide", this);=0A= },=0A= =0A= minimize: function() {=0A= var r2 =3D $(this.getId() + "_row2");=0A= var dh =3D r2.getDimensions().height;=0A= =0A= if (r2.visible()) {=0A= var h =3D this.element.getHeight() - dh=0A= r2.hide()=0A= this.element.setStyle({height: h + "px"})=0A= if (! this.useTop) {=0A= var bottom =3D parseFloat(this.element.getStyle('bottom'));=0A= this.element.setStyle({bottom: (bottom + dh) + 'px'});=0A= }=0A= } =0A= else {=0A= var h =3D this.element.getHeight() + dh;=0A= this.element.setStyle({height: h + "px"})=0A= if (! this.useTop) {=0A= var bottom =3D parseFloat(this.element.getStyle('bottom'));=0A= this.element.setStyle({bottom: (bottom - dh) + 'px'});=0A= }=0A= r2.show();=0A= =0A= this.toFront();=0A= }=0A= Windows.notify("onMinimize", this);=0A= =0A= // Store new location/size if need be=0A= this._saveCookie()=0A= },=0A= =0A= maximize: function() {=0A= if (this.storedLocation !=3D null) {=0A= this._restoreLocation();=0A= if(this.iefix) =0A= this.iefix.hide();=0A= }=0A= else {=0A= this._storeLocation();=0A= Windows.unsetOverflow(this);=0A= =0A= var windowScroll =3D WindowUtilities.getWindowScroll();=0A= var pageSize =3D WindowUtilities.getPageSize(); =0A= =0A= this.element.setStyle(this.useLeft ? {left: windowScroll.left} : = {right: windowScroll.left});=0A= this.element.setStyle(this.useTop ? {top: windowScroll.top} : = {bottom: windowScroll.top});=0A= =0A= this.setSize(pageSize.windowWidth - this.widthW - this.widthE, = pageSize.windowHeight - this.heightN - this.heightS)=0A= this.toFront();=0A= if (this.iefix) =0A= this._fixIEOverlapping(); =0A= }=0A= Windows.notify("onMaximize", this);=0A= =0A= // Store new location/size if need be=0A= this._saveCookie()=0A= },=0A= =0A= isMinimized: function() {=0A= var r2 =3D $(this.getId() + "_row2");=0A= return !r2.visible();=0A= },=0A= =0A= isMaximized: function() {=0A= return (this.storedLocation !=3D null);=0A= },=0A= =0A= setOpacity: function(opacity) {=0A= if (Element.setOpacity)=0A= Element.setOpacity(this.element, opacity);=0A= },=0A= =0A= setZIndex: function(zindex) {=0A= this.element.setStyle({zIndex: zindex});=0A= Windows.updateZindex(zindex, this);=0A= },=0A= =0A= setTitle: function(newTitle) {=0A= if (!newTitle || newTitle =3D=3D "") =0A= newTitle =3D " ";=0A= =0A= Element.update(this.element.id + '_top', newTitle);=0A= },=0A= =0A= setStatusBar: function(element) {=0A= var statusBar =3D $(this.getId() + "_bottom");=0A= =0A= if (typeof(element) =3D=3D "object") {=0A= if (this.bottombar.firstChild)=0A= this.bottombar.replaceChild(element, this.bottombar.firstChild);=0A= else=0A= this.bottombar.appendChild(element);=0A= }=0A= else=0A= this.bottombar.innerHTML =3D element;=0A= },=0A= =0A= _checkIEOverlapping: function() {=0A= if(!this.iefix && (navigator.appVersion.indexOf('MSIE')>0) && = (navigator.userAgent.indexOf('Opera')<0) && = (this.element.getStyle('position')=3D=3D'absolute')) {=0A= new Insertion.After(this.element.id, '');=0A= this.iefix =3D $(this.element.id+'_iefix');=0A= }=0A= if(this.iefix) =0A= setTimeout(this._fixIEOverlapping.bind(this), 50);=0A= },=0A= =0A= _fixIEOverlapping: function() {=0A= Position.clone(this.element, this.iefix);=0A= this.iefix.style.zIndex =3D this.element.style.zIndex - 1;=0A= this.iefix.show();=0A= },=0A= =0A= _getWindowBorderSize: function(event) {=0A= // Hack to get real window border size!!=0A= var div =3D this._createHiddenDiv(this.options.className + "_n")=0A= this.heightN =3D Element.getDimensions(div).height; =0A= div.parentNode.removeChild(div)=0A= =0A= var div =3D this._createHiddenDiv(this.options.className + "_s")=0A= this.heightS =3D Element.getDimensions(div).height; =0A= div.parentNode.removeChild(div)=0A= =0A= var div =3D this._createHiddenDiv(this.options.className + "_e")=0A= this.widthE =3D Element.getDimensions(div).width; =0A= div.parentNode.removeChild(div)=0A= =0A= var div =3D this._createHiddenDiv(this.options.className + "_w")=0A= this.widthW =3D Element.getDimensions(div).width;=0A= div.parentNode.removeChild(div);=0A= // Safari size fix=0A= if (/Konqueror|Safari|KHTML/.test(navigator.userAgent))=0A= this.setSize(this.width, this.height);=0A= if (this.doMaximize)=0A= this.maximize();=0A= if (this.doMinimize)=0A= this.minimize();=0A= },=0A= =0A= _createHiddenDiv: function(className) {=0A= var objBody =3D document.getElementsByTagName("body").item(0);=0A= var win =3D document.createElement("div");=0A= win.setAttribute('id', this.element.id+ "_tmp");=0A= win.className =3D className;=0A= win.style.display =3D 'none'=0A= win.innerHTML =3D ''=0A= objBody.insertBefore(win, objBody.firstChild) =0A= return win=0A= },=0A= =0A= _storeLocation: function() {=0A= if (this.storedLocation =3D=3D null) {=0A= this.storedLocation =3D {useTop: this.useTop, useLeft: = this.useLeft, =0A= top: this.element.getStyle('top'), bottom: = this.element.getStyle('bottom'),=0A= left: this.element.getStyle('left'), right: = this.element.getStyle('right'),=0A= width: this.width, height: this.height };=0A= }=0A= },=0A= =0A= _restoreLocation: function() {=0A= if (this.storedLocation !=3D null) {=0A= this.useLeft =3D this.storedLocation.useLeft;=0A= this.useTop =3D this.storedLocation.useTop;=0A= =0A= this.element.setStyle(this.useLeft ? {left: = this.storedLocation.left} : {right: this.storedLocation.right});=0A= this.element.setStyle(this.useTop ? {top: this.storedLocation.top} : = {bottom: this.storedLocation.bottom});=0A= this.setSize(this.storedLocation.width, this.storedLocation.height);=0A= =0A= Windows.resetOverflow();=0A= this._removeStoreLocation();=0A= }=0A= },=0A= =0A= _removeStoreLocation: function() {=0A= this.storedLocation =3D null;=0A= },=0A= =0A= _saveCookie: function() {=0A= if (this.cookie) {=0A= var value =3D "";=0A= if (this.useLeft)=0A= value +=3D "l:" + (this.storedLocation ? this.storedLocation.left = : this.element.getStyle('left'))=0A= else=0A= value +=3D "r:" + (this.storedLocation ? this.storedLocation.right = : this.element.getStyle('right'))=0A= if (this.useTop)=0A= value +=3D ",t:" + (this.storedLocation ? this.storedLocation.top : = this.element.getStyle('top'))=0A= else=0A= value +=3D ",b:" + (this.storedLocation ? = this.storedLocation.bottom :this.element.getStyle('bottom'))=0A= =0A= value +=3D "," + (this.storedLocation ? this.storedLocation.width : = this.width);=0A= value +=3D "," + (this.storedLocation ? this.storedLocation.height : = this.height);=0A= value +=3D "," + this.isMinimized();=0A= value +=3D "," + this.isMaximized();=0A= WindowUtilities.setCookie(value, this.cookie)=0A= }=0A= }=0A= };=0A= =0A= // Windows containers, register all page windows=0A= var Windows =3D {=0A= windows: [],=0A= observers: [],=0A= focusedWindow: null,=0A= maxZIndex: 0,=0A= =0A= addObserver: function(observer) {=0A= this.removeObserver(observer);=0A= this.observers.push(observer);=0A= },=0A= =0A= removeObserver: function(observer) { =0A= this.observers =3D this.observers.reject( function(o) { return = o=3D=3Dobserver });=0A= },=0A= =0A= notify: function(eventName, win) { // onStartResize(), = onEndResize(), onStartMove(), onEndMove(), onClose(), onDestroy(), = onMinimize(), onMaximize(), onHide(), onShow(), onFocus()=0A= this.observers.each( function(o) {if(o[eventName]) = o[eventName](eventName, win);});=0A= },=0A= =0A= // Gets window from its id=0A= getWindow: function(id) {=0A= return this.windows.detect(function(d) { return d.getId() =3D=3Did });=0A= },=0A= =0A= // Gets the last focused window=0A= getFocusedWindow: function() {=0A= return this.focusedWindow;=0A= },=0A= =0A= // Registers a new window (called by Windows constructor)=0A= register: function(win) {=0A= this.windows.push(win);=0A= },=0A= =0A= // Unregisters a window (called by Windows destructor)=0A= unregister: function(win) {=0A= this.windows =3D this.windows.reject(function(d) { return d=3D=3Dwin = });=0A= }, =0A= =0A= // Closes a window with its id=0A= close: function(id) {=0A= var win =3D this.getWindow(id);=0A= // Asks delegate if exists=0A= if (win) {=0A= if (win.getDelegate() && ! win.getDelegate().canClose(win)) =0A= return;=0A= if ($(id + "_close"))=0A= $(id + "_close").onclick =3D null;=0A= if ($(id + "_minimize"))=0A= $(id + "_minimize").onclick =3D null; =0A= if ($(id + "_maximize"))=0A= $(id + "_maximize").onclick =3D null; =0A= =0A= this.notify("onClose", win);=0A= win.hide();=0A= }=0A= },=0A= =0A= // Closes all windows=0A= closeAll: function() { =0A= this.windows.each( function(w) {Windows.close(w.getId())} );=0A= },=0A= =0A= // Minimizes a window with its id=0A= minimize: function(id) {=0A= var win =3D this.getWindow(id)=0A= if (win)=0A= win.minimize();=0A= },=0A= =0A= // Maximizes a window with its id=0A= maximize: function(id) {=0A= var win =3D this.getWindow(id)=0A= if (win)=0A= win.maximize();=0A= },=0A= =0A= unsetOverflow: function(except) { =0A= this.windows.each(function(d) { d.oldOverflow =3D = d.getContent().getStyle("overflow") || "auto" ; = d.getContent().setStyle({overflow: "hidden"}) });=0A= if (except && except.oldOverflow)=0A= except.getContent().setStyle({overflow: except.oldOverflow});=0A= },=0A= =0A= resetOverflow: function() {=0A= this.windows.each(function(d) { if (d.oldOverflow) = d.getContent().setStyle({overflow: d.oldOverflow}) });=0A= },=0A= =0A= updateZindex: function(zindex, win) {=0A= if (zindex > this.maxZIndex)=0A= this.maxZIndex =3D zindex;=0A= this.focusedWindow =3D win;=0A= }=0A= };=0A= =0A= var Dialog =3D {=0A= dialogId: null,=0A= win: null,=0A= onCompleteFunc: null,=0A= callFunc: null, =0A= parameters: null, =0A= =0A= confirm: function(content, parameters) {=0A= // Get Ajax return before=0A= if (typeof content !=3D "string") {=0A= Dialog._runAjaxRequest(content, parameters, Dialog.confirm);=0A= return =0A= }=0A= =0A= parameters =3D parameters || {};=0A= var okLabel =3D parameters.okLabel ? parameters.okLabel : "Ok";=0A= var cancelLabel =3D parameters.cancelLabel ? parameters.cancelLabel : = "Cancel";=0A= =0A= var windowParam =3D parameters.windowParameters || {};=0A= windowParam.className =3D windowParam.className || "alert";=0A= =0A= okButtonClass =3D "class =3D'" + (parameters.buttonClass ? = parameters.buttonClass + " " : "") + " ok_button'" =0A= cancelButtonClass =3D "class =3D'" + (parameters.buttonClass ? = parameters.buttonClass + " " : "") + " cancel_button'" =0A= var content =3D "\=0A=
      " + content + = "
      \=0A=
      \=0A= \=0A= \=0A=
      \=0A= ";=0A= this._openDialog(content, parameters)=0A= return this.win=0A= },=0A= =0A= alert: function(content, parameters) {=0A= // Get Ajax return before=0A= if (typeof content !=3D "string") {=0A= Dialog._runAjaxRequest(content, parameters, Dialog.alert);=0A= return =0A= }=0A= =0A= parameters =3D parameters || {};=0A= var okLabel =3D parameters.okLabel ? parameters.okLabel : "Ok";=0A= =0A= var windowParam =3D parameters.windowParameters || {};=0A= windowParam.className =3D windowParam.className || "alert";=0A= =0A= okButtonClass =3D "class =3D'" + (parameters.buttonClass ? = parameters.buttonClass + " " : "") + " ok_button'" =0A= var content =3D "\=0A=
      " + content + = "
      \=0A=
      \=0A= \=0A=
      ";=0A= return this._openDialog(content, parameters)=0A= },=0A= =0A= info: function(content, parameters) { =0A= // Get Ajax return before=0A= if (typeof content !=3D "string") {=0A= Dialog._runAjaxRequest(content, parameters, Dialog.info);=0A= return =0A= }=0A= =0A= parameters =3D parameters || {};=0A= parameters.windowParameters =3D parameters.windowParameters || {};=0A= =0A= var className =3D parameters.windowParameters.className || "alert";=0A= =0A= var content =3D "
      " + content + "
      ";=0A= if (parameters.showProgress)=0A= content +=3D "
      ";=0A= =0A= parameters.windowParameters.ok =3D null;=0A= parameters.windowParameters.cancel =3D null;=0A= parameters.windowParameters.className =3D className;=0A= =0A= return this._openDialog(content, parameters)=0A= },=0A= =0A= setInfoMessage: function(message) {=0A= $('modal_dialog_message').update(message);=0A= },=0A= =0A= closeInfo: function() {=0A= Windows.close(this.dialogId);=0A= },=0A= =0A= _openDialog: function(content, parameters) {=0A= // remove old dialog=0A= if (this.win) =0A= this.win.destroy();=0A= =0A= if (! parameters.windowParameters.height && ! = parameters.windowParameters.width) {=0A= parameters.windowParameters.width =3D = WindowUtilities.getPageSize().pageWidth / 2;=0A= }=0A= this.dialogId =3D parameters.id ? parameters.id : 'modal_dialog'=0A= =0A= // compute height or width if need be=0A= if (! parameters.windowParameters.height || ! = parameters.windowParameters.width) {=0A= var size =3D WindowUtilities._computeSize(content, this.dialogId, = parameters.windowParameters.width, parameters.windowParameters.height)=0A= if (parameters.windowParameters.height)=0A= parameters.windowParameters.width =3D size + 5=0A= else=0A= parameters.windowParameters.height =3D size + 5=0A= }=0A= var windowParam =3D parameters && parameters.windowParameters ? = parameters.windowParameters : {};=0A= windowParam.resizable =3D windowParam.resizable || false;=0A= =0A= windowParam.effectOptions =3D windowParam.effectOptions || {duration: = 1};=0A= windowParam.minimizable =3D false;=0A= windowParam.maximizable =3D false;=0A= windowParam.closable =3D false;=0A= this.win =3D new Window(this.dialogId, windowParam);=0A= this.win.getContent().innerHTML =3D content;=0A= this.win.showCenter(true, parameters.top, parameters.left); =0A= =0A= this.win.cancelCallback =3D parameters.cancel;=0A= this.win.okCallback =3D parameters.ok;=0A= =0A= return this.win; =0A= },=0A= =0A= _getAjaxContent: function(originalRequest) {=0A= Dialog.callFunc(originalRequest.responseText, Dialog.parameters)=0A= },=0A= =0A= _runAjaxRequest: function(message, parameters, callFunc) {=0A= if (message.options =3D=3D null)=0A= message.options =3D{} =0A= Dialog.onCompleteFunc =3D message.options.onComplete;=0A= Dialog.parameters =3D parameters;=0A= Dialog.callFunc =3D callFunc;=0A= =0A= message.options.onComplete =3D Dialog._getAjaxContent;=0A= new Ajax.Request(message.url, message.options);=0A= },=0A= =0A= okCallback: function() {=0A= if (!this.win.okCallback || this.win.okCallback(this.win))=0A= this.win.hide();=0A= },=0A= =0A= cancelCallback: function() {=0A= this.win.hide();=0A= if (this.win.cancelCallback)=0A= this.win.cancelCallback(this.win);=0A= }=0A= }=0A= /*=0A= Based on Lightbox JS: Fullsize Image Overlays =0A= by Lokesh Dhakar - http://www.huddletogether.com=0A= =0A= For more information on this script, visit:=0A= http://huddletogether.com/projects/lightbox/=0A= =0A= Licensed under the Creative Commons Attribution 2.5 License - = http://creativecommons.org/licenses/by/2.5/=0A= (basically, do anything you want, just leave my name and link)=0A= */=0A= =0A= var isIE =3D navigator.appVersion.match(/MSIE/) =3D=3D "MSIE";=0A= =0A= var WindowUtilities =3D {=0A= // From script.aculo.us=0A= getWindowScroll: function() {=0A= var w =3D window;=0A= var T, L, W, H;=0A= with (w.document) {=0A= if (w.document.documentElement && documentElement.scrollTop) {=0A= T =3D documentElement.scrollTop;=0A= L =3D documentElement.scrollLeft;=0A= } else if (w.document.body) {=0A= T =3D body.scrollTop;=0A= L =3D body.scrollLeft;=0A= }=0A= if (w.innerWidth) {=0A= W =3D w.innerWidth;=0A= H =3D w.innerHeight;=0A= } else if (w.document.documentElement && = documentElement.clientWidth) {=0A= W =3D documentElement.clientWidth;=0A= H =3D documentElement.clientHeight;=0A= } else {=0A= W =3D body.offsetWidth;=0A= H =3D body.offsetHeight=0A= }=0A= }=0A= return { top: T, left: L, width: W, height: H };=0A= =0A= }, =0A= //=0A= // getPageSize()=0A= // Returns array with page width, height and window width, height=0A= // Core code from - quirksmode.org=0A= // Edit for Firefox by pHaez=0A= //=0A= getPageSize: function(){=0A= var xScroll, yScroll;=0A= =0A= if (window.innerHeight && window.scrollMaxY) { =0A= xScroll =3D document.body.scrollWidth;=0A= yScroll =3D window.innerHeight + window.scrollMaxY;=0A= } else if (document.body.scrollHeight > document.body.offsetHeight){ = // all but Explorer Mac=0A= xScroll =3D document.body.scrollWidth;=0A= yScroll =3D document.body.scrollHeight;=0A= } else { // Explorer Mac...would also work in Explorer 6 Strict, = Mozilla and Safari=0A= xScroll =3D document.body.offsetWidth;=0A= yScroll =3D document.body.offsetHeight;=0A= }=0A= =0A= var windowWidth, windowHeight;=0A= =0A= if (self.innerHeight) { // all except Explorer=0A= windowWidth =3D self.innerWidth;=0A= windowHeight =3D self.innerHeight;=0A= } else if (document.documentElement && = document.documentElement.clientHeight) { // Explorer 6 Strict Mode=0A= windowWidth =3D document.documentElement.clientWidth;=0A= windowHeight =3D document.documentElement.clientHeight;=0A= } else if (document.body) { // other Explorers=0A= windowWidth =3D document.body.clientWidth;=0A= windowHeight =3D document.body.clientHeight;=0A= } =0A= var pageHeight, pageWidth;=0A= =0A= // for small pages with total height less then height of the viewport=0A= if(yScroll < windowHeight){=0A= pageHeight =3D windowHeight;=0A= } else { =0A= pageHeight =3D yScroll;=0A= }=0A= =0A= // for small pages with total width less then width of the viewport=0A= if(xScroll < windowWidth){ =0A= pageWidth =3D windowWidth;=0A= } else {=0A= pageWidth =3D xScroll;=0A= }=0A= =0A= return {pageWidth: pageWidth ,pageHeight: pageHeight , windowWidth: = windowWidth, windowHeight: windowHeight};=0A= },=0A= =0A= disableScreen: function(className, overlayId, contentId) {=0A= WindowUtilities.initLightbox(overlayId, className);=0A= var objBody =3D document.getElementsByTagName("body").item(0);=0A= =0A= // prep objects=0A= var objOverlay =3D $(overlayId);=0A= =0A= var pageSize =3D WindowUtilities.getPageSize();=0A= =0A= // Hide select boxes as they will 'peek' through the image in IE=0A= if (contentId && isIE) {=0A= $$('select').each(function(element) {element.style.visibility =3D = "hidden"});=0A= $$('#'+contentId+' select').each(function(element) = {element.style.visibility =3D "visible"});=0A= } =0A= =0A= // set height of Overlay to take up whole page and show=0A= objOverlay.style.height =3D (pageSize.pageHeight + 'px');=0A= objOverlay.style.width =3D (pageSize.windowWidth + 'px');=0A= objOverlay.style.display =3D 'block'; =0A= },=0A= =0A= enableScreen: function(id) {=0A= id =3D id || 'overlay_modal'=0A= var objOverlay =3D $(id);=0A= if (objOverlay) {=0A= // hide lightbox and overlay=0A= objOverlay.style.display =3D 'none';=0A= =0A= // make select boxes visible=0A= if (isIE) {=0A= $$('select').each(function(element) {element.style.visibility = =3D "visible"});=0A= }=0A= objOverlay.parentNode.removeChild(objOverlay);=0A= }=0A= },=0A= =0A= // initLightbox()=0A= // Function runs on window load, going through link tags looking for = rel=3D"lightbox".=0A= // These links receive onclick events that enable the lightbox display = for their targets.=0A= // The function also inserts html markup at the top of the page which = will be used as a=0A= // container for the overlay pattern and the inline image.=0A= initLightbox: function(id, className) {=0A= // Already done, just update zIndex=0A= if ($(id)) {=0A= Element.setStyle(id, {zIndex: Windows.maxZIndex + 10});=0A= }=0A= // create overlay div and hardcode some functional styles (aesthetic = styles are in CSS file)=0A= else {=0A= var objBody =3D document.getElementsByTagName("body").item(0);=0A= var objOverlay =3D document.createElement("div");=0A= objOverlay.setAttribute('id', id);=0A= objOverlay.className =3D "overlay_" + className=0A= objOverlay.style.display =3D 'none';=0A= objOverlay.style.position =3D 'absolute';=0A= objOverlay.style.top =3D '0';=0A= objOverlay.style.left =3D '0';=0A= objOverlay.style.zIndex =3D Windows.maxZIndex + 10;=0A= objOverlay.style.width =3D '100%';=0A= objBody.insertBefore(objOverlay, objBody.firstChild);=0A= }=0A= },=0A= =0A= setCookie: function(value, parameters) {=0A= document.cookie=3D parameters[0] + "=3D" + escape(value) +=0A= ((parameters[1]) ? "; expires=3D" + parameters[1].toGMTString() : = "") +=0A= ((parameters[2]) ? "; path=3D" + parameters[2] : "") +=0A= ((parameters[3]) ? "; domain=3D" + parameters[3] : "") +=0A= ((parameters[4]) ? "; secure" : "");=0A= },=0A= =0A= getCookie: function(name) {=0A= var dc =3D document.cookie;=0A= var prefix =3D name + "=3D";=0A= var begin =3D dc.indexOf("; " + prefix);=0A= if (begin =3D=3D -1) {=0A= begin =3D dc.indexOf(prefix);=0A= if (begin !=3D 0) return null;=0A= } else {=0A= begin +=3D 2;=0A= }=0A= var end =3D document.cookie.indexOf(";", begin);=0A= if (end =3D=3D -1) {=0A= end =3D dc.length;=0A= }=0A= return unescape(dc.substring(begin + prefix.length, end));=0A= },=0A= =0A= _computeSize: function(content, id, width, height, margin) {=0A= if (margin =3D=3D null)=0A= margin =3D 5;=0A= =0A= var objBody =3D document.getElementsByTagName("body").item(0);=0A= var tmpObj =3D document.createElement("div");=0A= tmpObj.setAttribute('id', id);=0A= =0A= if (height)=0A= tmpObj.style.height =3D height + "px"=0A= else=0A= tmpObj.style.width =3D width + "px"=0A= =0A= tmpObj.style.position =3D 'absolute';=0A= tmpObj.style.top =3D '0';=0A= tmpObj.style.left =3D '0';=0A= tmpObj.style.display =3D 'none';=0A= =0A= tmpObj.innerHTML =3D content;=0A= objBody.insertBefore(tmpObj, objBody.firstChild);=0A= =0A= var size;=0A= if (height)=0A= size =3D $(id).getDimensions().width + margin;=0A= else=0A= size =3D $(id).getDimensions().height + margin;=0A= objBody.removeChild(tmpObj);=0A= =0A= return size;=0A= } =0A= }=0A= =0A= =0A= ------=_NextPart_000_0020_01C7A5EA.EA8F7930 Content-Type: application/octet-stream Content-Transfer-Encoding: 7bit Content-Location: http://media.collegepublisher.com/media/scripts/youarehere.js YouAreHere = function(element) { var login = document.getElementById('cp_tab_login'); var verify = document.getElementById('cp_tab_verify'); var loginBox = document.getElementById('cp_box_login'); var verifyBox = document.getElementById('cp_box_verify'); var tabHeader = document.getElementById('cp_tab_header'); var emailBox = document.getElementById('email'); var usernameBox = document.getElementById('username'); if (element == 'cp_tab_login') { login.className = 'cp_active'; verify.className = ''; loginBox.className = 'cp_show'; verifyBox.className = 'cp_hide'; usernameBox.focus(); } if (element == 'cp_tab_verify') { verify.className = 'cp_active'; login.className = ''; loginBox.className = 'cp_hide'; verifyBox.className = 'cp_show'; emailBox.focus(); } } function greyoutbox(theformbutton) { theformbutton.disabled = 1; } ------=_NextPart_000_0020_01C7A5EA.EA8F7930 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://media.collegepublisher.com/media/scripts/spry/xpath.js /* xpath.js - Revision: Spry Preview Release 1.3 */ // Copyright (c) 2005, Google Inc. // All rights reserved. //=20 // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions = are // met: // =20 // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. //=20 // * Redistributions in binary form must reproduce the above copyright // notice, this list of conditions and the following disclaimer in = the // documentation and/or other materials provided with the // distribution. //=20 // * Neither the name of Google Inc. nor the names of its contributors // may be used to endorse or promote products derived from this // software without specific prior written permission. //=20 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // // An XPath parser and evaluator written in JavaScript. The // implementation is complete except for functions handling // namespaces. // // Reference: [XPATH] XPath Specification // . // // // The API of the parser has several parts: // // 1. The parser function xpathParse() that takes a string and returns // an expession object. // // 2. The expression object that has an evaluate() method to evaluate = the // XPath expression it represents. (It is actually a hierarchy of // objects that resembles the parse tree, but an application will call // evaluate() only on the top node of this hierarchy.) // // 3. The context object that is passed as an argument to the evaluate() // method, which represents the DOM context in which the expression is // evaluated. // // 4. The value object that is returned from evaluate() and represents // values of the different types that are defined by XPath (number, // string, boolean, and node-set), and allows to convert between them. // // These parts are near the top of the file, the functions and data // that are used internally follow after them. // // // TODO(mesch): add jsdoc comments. Use more coherent naming. // // // Author: Steffen Meschkat // The entry point for the parser. // // @param expr a string that contains an XPath expression. // @return an expression object that can be evaluated with an // expression context. function xpathParse(expr) { if (xpathdebug) { Log.write('XPath parse ' + expr); } xpathParseInit(); var cached =3D xpathCacheLookup(expr); if (cached) { if (xpathdebug) { Log.write(' ... cached'); } return cached; } // Optimize for a few common cases: simple attribute node tests // (@id), simple element node tests (page), variable references // ($address), numbers (4), multi-step path expressions where each // step is a plain element node test // (page/overlay/locations/location). =20 if (expr.match(/^(\$|@)?\w+$/i)) { var ret =3D makeSimpleExpr(expr); xpathParseCache[expr] =3D ret; if (xpathdebug) { Log.write(' ... simple'); } return ret; } if (expr.match(/^\w+(\/\w+)*$/i)) { var ret =3D makeSimpleExpr2(expr); xpathParseCache[expr] =3D ret; if (xpathdebug) { Log.write(' ... simple 2'); } return ret; } var cachekey =3D expr; // expr is modified during parse if (xpathdebug) { Timer.start('XPath parse', cachekey); } var stack =3D []; var ahead =3D null; var previous =3D null; var done =3D false; var parse_count =3D 0; var lexer_count =3D 0; var reduce_count =3D 0; =20 while (!done) { parse_count++; expr =3D expr.replace(/^\s*/, ''); previous =3D ahead; ahead =3D null; var rule =3D null; var match =3D ''; for (var i =3D 0; i < xpathTokenRules.length; ++i) { var result =3D xpathTokenRules[i].re.exec(expr); lexer_count++; if (result && result.length > 0 && result[0].length > = match.length) { rule =3D xpathTokenRules[i]; match =3D result[0]; break; } } // Special case: allow operator keywords to be element and // variable names. // NOTE(mesch): The parser resolves conflicts by looking ahead, // and this is the only case where we look back to // disambiguate. So this is indeed something different, and // looking back is usually done in the lexer (via states in the // general case, called "start conditions" in flex(1)). Also,the // conflict resolution in the parser is not as robust as it could // be, so I'd like to keep as much off the parser as possible (all // these precedence values should be computed from the grammar // rules and possibly associativity declarations, as in bison(1), // and not explicitly set. if (rule && (rule =3D=3D TOK_DIV ||=20 rule =3D=3D TOK_MOD || rule =3D=3D TOK_AND ||=20 rule =3D=3D TOK_OR) && (!previous ||=20 previous.tag =3D=3D TOK_AT ||=20 previous.tag =3D=3D TOK_DSLASH ||=20 previous.tag =3D=3D TOK_SLASH || previous.tag =3D=3D TOK_AXIS ||=20 previous.tag =3D=3D TOK_DOLLAR)) { rule =3D TOK_QNAME; } if (rule) { expr =3D expr.substr(match.length); if (xpathdebug) { Log.write('token: ' + match + ' -- ' + rule.label); } ahead =3D { tag: rule, match: match, prec: rule.prec ? rule.prec : 0, // || 0 is removed by the = compiler expr: makeTokenExpr(match) }; } else { if (xpathdebug) { Log.write('DONE'); } done =3D true; } while (xpathReduce(stack, ahead)) { reduce_count++; if (xpathdebug) { Log.write('stack: ' + stackToString(stack)); } } } if (xpathdebug) { Log.write(stackToString(stack)); } if (stack.length !=3D 1) { throw 'XPath parse error ' + cachekey + ':\n' + = stackToString(stack); } var result =3D stack[0].expr; xpathParseCache[cachekey] =3D result; if (xpathdebug) { Timer.end('XPath parse', cachekey); } if (xpathdebug) { Log.write('XPath parse: ' + parse_count + ' / ' +=20 lexer_count + ' / ' + reduce_count); } return result; } var xpathParseCache =3D {}; function xpathCacheLookup(expr) { return xpathParseCache[expr]; } function xpathReduce(stack, ahead) { var cand =3D null; if (stack.length > 0) { var top =3D stack[stack.length-1]; var ruleset =3D xpathRules[top.tag.key]; if (ruleset) { for (var i =3D 0; i < ruleset.length; ++i) { var rule =3D ruleset[i]; var match =3D xpathMatchStack(stack, rule[1]); if (match.length) { cand =3D { tag: rule[0], rule: rule, match: match }; cand.prec =3D xpathGrammarPrecedence(cand); break; } } } } var ret; if (cand && (!ahead || cand.prec > ahead.prec ||=20 (ahead.tag.left && cand.prec >=3D ahead.prec))) { for (var i =3D 0; i < cand.match.matchlength; ++i) { stack.pop(); } if (xpathdebug) { Log.write('reduce ' + cand.tag.label + ' ' + cand.prec + ' ahead ' + (ahead ? ahead.tag.label + ' ' + ahead.prec = +=20 (ahead.tag.left ? ' left' : '') : ' none ')); } var matchexpr =3D mapExpr(cand.match, function(m) { return m.expr; = }); cand.expr =3D cand.rule[3].apply(null, matchexpr); stack.push(cand); ret =3D true; } else { if (ahead) { if (xpathdebug) { Log.write('shift ' + ahead.tag.label + ' ' + ahead.prec +=20 (ahead.tag.left ? ' left' : '') + ' over ' + (cand ? cand.tag.label + ' ' +=20 cand.prec : ' none')); } stack.push(ahead); } ret =3D false; } return ret; } function xpathMatchStack(stack, pattern) { // NOTE(mesch): The stack matches for variable cardinality are // greedy but don't do backtracking. This would be an issue only // with rules of the form A* A, i.e. with an element with variable // cardinality followed by the same element. Since that doesn't // occur in the grammar at hand, all matches on the stack are // unambiguous. var S =3D stack.length; var P =3D pattern.length; var p, s; var match =3D []; match.matchlength =3D 0; var ds =3D 0; for (p =3D P - 1, s =3D S - 1; p >=3D 0 && s >=3D 0; --p, s -=3D ds) { ds =3D 0; var qmatch =3D []; if (pattern[p] =3D=3D Q_MM) { p -=3D 1; match.push(qmatch); while (s - ds >=3D 0 && stack[s - ds].tag =3D=3D pattern[p]) { qmatch.push(stack[s - ds]); ds +=3D 1; match.matchlength +=3D 1; } } else if (pattern[p] =3D=3D Q_01) { p -=3D 1; match.push(qmatch); while (s - ds >=3D 0 && ds < 2 && stack[s - ds].tag =3D=3D = pattern[p]) { qmatch.push(stack[s - ds]); ds +=3D 1; match.matchlength +=3D 1; } } else if (pattern[p] =3D=3D Q_1M) { p -=3D 1; match.push(qmatch); if (stack[s].tag =3D=3D pattern[p]) { while (s - ds >=3D 0 && stack[s - ds].tag =3D=3D pattern[p]) { qmatch.push(stack[s - ds]); ds +=3D 1; match.matchlength +=3D 1; } } else { return []; } } else if (stack[s].tag =3D=3D pattern[p]) { match.push(stack[s]); ds +=3D 1; match.matchlength +=3D 1; } else { return []; } reverseInplace(qmatch); qmatch.expr =3D mapExpr(qmatch, function(m) { return m.expr; }); } reverseInplace(match); if (p =3D=3D -1) { return match; } else { return []; } } function xpathTokenPrecedence(tag) { return tag.prec || 2; } function xpathGrammarPrecedence(frame) { var ret =3D 0; if (frame.rule) { /* normal reduce */ if (frame.rule.length >=3D 3 && frame.rule[2] >=3D 0) { ret =3D frame.rule[2]; } else { for (var i =3D 0; i < frame.rule[1].length; ++i) { var p =3D xpathTokenPrecedence(frame.rule[1][i]); ret =3D Math.max(ret, p); } } } else if (frame.tag) { /* TOKEN match */ ret =3D xpathTokenPrecedence(frame.tag); } else if (frame.length) { /* Q_ match */ for (var j =3D 0; j < frame.length; ++j) { var p =3D xpathGrammarPrecedence(frame[j]); ret =3D Math.max(ret, p); } } return ret; } function stackToString(stack) { var ret =3D ''; for (var i =3D 0; i < stack.length; ++i) { if (ret) { ret +=3D '\n'; } ret +=3D stack[i].tag.label; } return ret; } // XPath expression evaluation context. An XPath context consists of a // DOM node, a list of DOM nodes that contains this node, a number // that represents the position of the single node in the list, and a // current set of variable bindings. (See XPath spec.) // // The interface of the expression context: // // Constructor -- gets the node, its position, the node set it // belongs to, and a parent context as arguments. The parent context // is used to implement scoping rules for variables: if a variable // is not found in the current context, it is looked for in the // parent context, recursively. Except for node, all arguments have // default values: default position is 0, default node set is the // set that contains only the node, and the default parent is null. // // Notice that position starts at 0 at the outside interface; // inside XPath expressions this shows up as position()=3D1. // // clone() -- creates a new context with the current context as // parent. If passed as argument to clone(), the new context has a // different node, position, or node set. What is not passed is // inherited from the cloned context. // // setVariable(name, expr) -- binds given XPath expression to the // name. // // getVariable(name) -- what the name says. // // setNode(node, position) -- sets the context to the new node and // its corresponding position. Needed to implement scoping rules for // variables in XPath. (A variable is visible to all subsequent // siblings, not only to its children.) function ExprContext(node, position, nodelist, parent) { this.node =3D node; this.position =3D position || 0; this.nodelist =3D nodelist || [ node ]; this.variables =3D {}; this.parent =3D parent || null; this.root =3D parent ? parent.root : node.ownerDocument; } ExprContext.prototype.clone =3D function(node, position, nodelist) { return new ExprContext(node || this.node, typeof position !=3D 'undefined' ? position : = this.position, nodelist || this.nodelist, this); }; ExprContext.prototype.setVariable =3D function(name, value) { this.variables[name] =3D value; }; ExprContext.prototype.getVariable =3D function(name) { if (typeof this.variables[name] !=3D 'undefined') { return this.variables[name]; } else if (this.parent) { return this.parent.getVariable(name); } else { return null; } } ExprContext.prototype.setNode =3D function(node, position) { this.node =3D node; this.position =3D position; } // XPath expression values. They are what XPath expressions evaluate // to. Strangely, the different value types are not specified in the // XPath syntax, but only in the semantics, so they don't show up as // nonterminals in the grammar. Yet, some expressions are required to // evaluate to particular types, and not every type can be coerced // into every other type. Although the types of XPath values are // similar to the types present in JavaScript, the type coercion rules // are a bit peculiar, so we explicitly model XPath types instead of // mapping them onto JavaScript types. (See XPath spec.) // // The four types are: // // StringValue // // NumberValue // // BooleanValue // // NodeSetValue // // The common interface of the value classes consists of methods that // implement the XPath type coercion rules: // // stringValue() -- returns the value as a JavaScript String, // // numberValue() -- returns the value as a JavaScript Number, // // booleanValue() -- returns the value as a JavaScript Boolean, // // nodeSetValue() -- returns the value as a JavaScript Array of DOM // Node objects. // function StringValue(value) { this.value =3D value; this.type =3D 'string'; } StringValue.prototype.stringValue =3D function() { return this.value; } StringValue.prototype.booleanValue =3D function() { return this.value.length > 0; } StringValue.prototype.numberValue =3D function() { return this.value - 0; } StringValue.prototype.nodeSetValue =3D function() { throw this + ' ' + Error().stack; } function BooleanValue(value) { this.value =3D value; this.type =3D 'boolean'; } BooleanValue.prototype.stringValue =3D function() { return '' + this.value; } BooleanValue.prototype.booleanValue =3D function() { return this.value; } BooleanValue.prototype.numberValue =3D function() { return this.value ? 1 : 0; } BooleanValue.prototype.nodeSetValue =3D function() { throw this + ' ' + Error().stack; } function NumberValue(value) { this.value =3D value; this.type =3D 'number'; } NumberValue.prototype.stringValue =3D function() { return '' + this.value; } NumberValue.prototype.booleanValue =3D function() { return !!this.value; } NumberValue.prototype.numberValue =3D function() { return this.value - 0; } NumberValue.prototype.nodeSetValue =3D function() { throw this + ' ' + Error().stack; } function NodeSetValue(value) { this.value =3D value; this.type =3D 'node-set'; } NodeSetValue.prototype.stringValue =3D function() { if (this.value.length =3D=3D 0) { return ''; } else { return xmlValue(this.value[0]); } } NodeSetValue.prototype.booleanValue =3D function() { return this.value.length > 0; } NodeSetValue.prototype.numberValue =3D function() { return this.stringValue() - 0; } NodeSetValue.prototype.nodeSetValue =3D function() { return this.value; }; // XPath expressions. They are used as nodes in the parse tree and // possess an evaluate() method to compute an XPath value given an XPath // context. Expressions are returned from the parser. Teh set of // expression classes closely mirrors the set of non terminal symbols // in the grammar. Every non trivial nonterminal symbol has a // corresponding expression class. // // The common expression interface consists of the following methods: // // evaluate(context) -- evaluates the expression, returns a value. // // toString() -- returns the XPath text representation of the // expression (defined in xsltdebug.js). // // parseTree(indent) -- returns a parse tree representation of the // expression (defined in xsltdebug.js). function TokenExpr(m) { this.value =3D m; } TokenExpr.prototype.evaluate =3D function() { return new StringValue(this.value); }; function LocationExpr() { this.absolute =3D false; this.steps =3D []; } LocationExpr.prototype.appendStep =3D function(s) { this.steps.push(s); } LocationExpr.prototype.prependStep =3D function(s) { var steps0 =3D this.steps; this.steps =3D [ s ]; for (var i =3D 0; i < steps0.length; ++i) { this.steps.push(steps0[i]); } }; LocationExpr.prototype.evaluate =3D function(ctx) { var start; if (this.absolute) { start =3D ctx.root; } else { start =3D ctx.node; } var nodes =3D []; xPathStep(nodes, this.steps, 0, start, ctx); return new NodeSetValue(nodes); }; function xPathStep(nodes, steps, step, input, ctx) { var s =3D steps[step]; var ctx2 =3D ctx.clone(input); var nodelist =3D s.evaluate(ctx2).nodeSetValue(); for (var i =3D 0; i < nodelist.length; ++i) { if (step =3D=3D steps.length - 1) { nodes.push(nodelist[i]); } else { xPathStep(nodes, steps, step + 1, nodelist[i], ctx); } } } function StepExpr(axis, nodetest, predicate) { this.axis =3D axis; this.nodetest =3D nodetest; this.predicate =3D predicate || []; } StepExpr.prototype.appendPredicate =3D function(p) { this.predicate.push(p); } StepExpr.prototype.evaluate =3D function(ctx) { var input =3D ctx.node; var nodelist =3D []; // NOTE(mesch): When this was a switch() statement, it didn't work // in Safari/2.0. Not sure why though; it resulted in the JavaScript // console output "undefined" (without any line number or so). if (this.axis =3D=3D xpathAxis.ANCESTOR_OR_SELF) { nodelist.push(input); for (var n =3D input.parentNode; n; n =3D input.parentNode) { nodelist.push(n); } } else if (this.axis =3D=3D xpathAxis.ANCESTOR) { for (var n =3D input.parentNode; n; n =3D input.parentNode) { nodelist.push(n); } } else if (this.axis =3D=3D xpathAxis.ATTRIBUTE) { copyArray(nodelist, input.attributes); } else if (this.axis =3D=3D xpathAxis.CHILD) { copyArray(nodelist, input.childNodes); } else if (this.axis =3D=3D xpathAxis.DESCENDANT_OR_SELF) { nodelist.push(input); xpathCollectDescendants(nodelist, input); } else if (this.axis =3D=3D xpathAxis.DESCENDANT) { xpathCollectDescendants(nodelist, input); } else if (this.axis =3D=3D xpathAxis.FOLLOWING) { for (var n =3D input.parentNode; n; n =3D n.parentNode) { for (var nn =3D n.nextSibling; nn; nn =3D nn.nextSibling) { nodelist.push(nn); xpathCollectDescendants(nodelist, nn); } } } else if (this.axis =3D=3D xpathAxis.FOLLOWING_SIBLING) { for (var n =3D input.nextSibling; n; n =3D input.nextSibling) { nodelist.push(n); } } else if (this.axis =3D=3D xpathAxis.NAMESPACE) { alert('not implemented: axis namespace'); } else if (this.axis =3D=3D xpathAxis.PARENT) { if (input.parentNode) { nodelist.push(input.parentNode); } } else if (this.axis =3D=3D xpathAxis.PRECEDING) { for (var n =3D input.parentNode; n; n =3D n.parentNode) { for (var nn =3D n.previousSibling; nn; nn =3D nn.previousSibling) = { nodelist.push(nn); xpathCollectDescendantsReverse(nodelist, nn); } } } else if (this.axis =3D=3D xpathAxis.PRECEDING_SIBLING) { for (var n =3D input.previousSibling; n; n =3D = input.previousSibling) { nodelist.push(n); } } else if (this.axis =3D=3D xpathAxis.SELF) { nodelist.push(input); } else { throw 'ERROR -- NO SUCH AXIS: ' + this.axis; } // process node test var nodelist0 =3D nodelist; nodelist =3D []; for (var i =3D 0; i < nodelist0.length; ++i) { var n =3D nodelist0[i]; if (this.nodetest.evaluate(ctx.clone(n, i, = nodelist0)).booleanValue()) { nodelist.push(n); } } // process predicates for (var i =3D 0; i < this.predicate.length; ++i) { var nodelist0 =3D nodelist; nodelist =3D []; for (var ii =3D 0; ii < nodelist0.length; ++ii) { var n =3D nodelist0[ii]; if (this.predicate[i].evaluate(ctx.clone(n, ii, = nodelist0)).booleanValue()) { nodelist.push(n); } } } return new NodeSetValue(nodelist); }; function NodeTestAny() { this.value =3D new BooleanValue(true); } NodeTestAny.prototype.evaluate =3D function(ctx) { return this.value; }; function NodeTestElement() {} NodeTestElement.prototype.evaluate =3D function(ctx) { return new BooleanValue(ctx.node.nodeType =3D=3D DOM_ELEMENT_NODE); } function NodeTestText() {} NodeTestText.prototype.evaluate =3D function(ctx) { return new BooleanValue(ctx.node.nodeType =3D=3D DOM_TEXT_NODE); } function NodeTestComment() {} NodeTestComment.prototype.evaluate =3D function(ctx) { return new BooleanValue(ctx.node.nodeType =3D=3D DOM_COMMENT_NODE); } function NodeTestPI(target) { this.target =3D target; } NodeTestPI.prototype.evaluate =3D function(ctx) { return new BooleanValue(ctx.node.nodeType =3D=3D DOM_PROCESSING_INSTRUCTION_NODE = && (!this.target || ctx.node.nodeName =3D=3D this.target)); } function NodeTestNC(nsprefix) { this.regex =3D new RegExp("^" + nsprefix + ":"); this.nsprefix =3D nsprefix; } NodeTestNC.prototype.evaluate =3D function(ctx) { var n =3D ctx.node; return new BooleanValue(this.regex.match(n.nodeName)); } function NodeTestName(name) { this.name =3D name; } NodeTestName.prototype.evaluate =3D function(ctx) { var n =3D ctx.node; return new BooleanValue(n.nodeName =3D=3D this.name); } function PredicateExpr(expr) { this.expr =3D expr; } PredicateExpr.prototype.evaluate =3D function(ctx) { var v =3D this.expr.evaluate(ctx); if (v.type =3D=3D 'number') { // NOTE(mesch): Internally, position is represented starting with // 0, however in XPath position starts with 1. See functions // position() and last(). return new BooleanValue(ctx.position =3D=3D v.numberValue() - 1); } else { return new BooleanValue(v.booleanValue()); } }; function FunctionCallExpr(name) { this.name =3D name; this.args =3D []; } FunctionCallExpr.prototype.appendArg =3D function(arg) { this.args.push(arg); }; FunctionCallExpr.prototype.evaluate =3D function(ctx) { var fn =3D '' + this.name.value; var f =3D this.xpathfunctions[fn]; if (f) { return f.call(this, ctx); } else { Log.write('XPath NO SUCH FUNCTION ' + fn); return new BooleanValue(false); } }; FunctionCallExpr.prototype.xpathfunctions =3D { 'last': function(ctx) { assert(this.args.length =3D=3D 0); // NOTE(mesch): XPath position starts at 1. return new NumberValue(ctx.nodelist.length); }, 'position': function(ctx) { assert(this.args.length =3D=3D 0); // NOTE(mesch): XPath position starts at 1. return new NumberValue(ctx.position + 1); }, 'count': function(ctx) { assert(this.args.length =3D=3D 1); var v =3D this.args[0].evaluate(ctx); return new NumberValue(v.nodeSetValue().length); }, 'id': function(ctx) { assert(this.args.length =3D=3D 1); var e =3D this.args.evaluate(ctx); var ret =3D []; var ids; if (e.type =3D=3D 'node-set') { ids =3D []; for (var i =3D 0; i < e.length; ++i) { var v =3D xmlValue(e[i]).split(/\s+/); for (var ii =3D 0; ii < v.length; ++ii) { ids.push(v[ii]); } } } else { ids =3D e.split(/\s+/); } var d =3D ctx.node.ownerDocument; for (var i =3D 0; i < ids.length; ++i) { var n =3D d.getElementById(ids[i]); if (n) { ret.push(n); } } return new NodeSetValue(ret); }, 'local-name': function(ctx) { alert('not implmented yet: XPath function local-name()'); }, 'namespace-uri': function(ctx) { alert('not implmented yet: XPath function namespace-uri()'); }, 'name': function(ctx) { assert(this.args.length =3D=3D 1 || this.args.length =3D=3D 0); var n; if (this.args.length =3D=3D 0) { n =3D [ ctx.node ]; } else { n =3D this.args[0].evaluate(ctx).nodeSetValue(); } if (n.length =3D=3D 0) { return new StringValue(''); } else { return new StringValue(n[0].nodeName); } }, 'string': function(ctx) { assert(this.args.length =3D=3D 1 || this.args.length =3D=3D 0); if (this.args.length =3D=3D 0) { return new StringValue(new NodeSetValue([ ctx.node = ]).stringValue()); } else { return new StringValue(this.args[0].evaluate(ctx).stringValue()); } }, 'concat': function(ctx) { var ret =3D ''; for (var i =3D 0; i < this.args.length; ++i) { ret +=3D this.args[i].evaluate(ctx).stringValue(); } return new StringValue(ret); }, 'starts-with': function(ctx) { assert(this.args.length =3D=3D 2); var s0 =3D this.args[0].evaluate(ctx).stringValue(); var s1 =3D this.args[1].evaluate(ctx).stringValue(); return new BooleanValue(s0.indexOf(s1) =3D=3D 0); }, 'contains': function(ctx) { assert(this.args.length =3D=3D 2); var s0 =3D this.args[0].evaluate(ctx).stringValue(); var s1 =3D this.args[1].evaluate(ctx).stringValue(); return new BooleanValue(s0.indexOf(s1) !=3D -1); }, 'substring-before': function(ctx) { assert(this.args.length =3D=3D 2); var s0 =3D this.args[0].evaluate(ctx).stringValue(); var s1 =3D this.args[1].evaluate(ctx).stringValue(); var i =3D s0.indexOf(s1); var ret; if (i =3D=3D -1) { ret =3D ''; } else { ret =3D s0.substr(0,i); } return new StringValue(ret); }, 'substring-after': function(ctx) { assert(this.args.length =3D=3D 2); var s0 =3D this.args[0].evaluate(ctx).stringValue(); var s1 =3D this.args[1].evaluate(ctx).stringValue(); var i =3D s0.indexOf(s1); var ret; if (i =3D=3D -1) { ret =3D ''; } else { ret =3D s0.substr(i + s1.length); } return new StringValue(ret); }, 'substring': function(ctx) { // NOTE: XPath defines the position of the first character in a // string to be 1, in JavaScript this is 0 ([XPATH] Section 4.2). assert(this.args.length =3D=3D 2 || this.args.length =3D=3D 3); var s0 =3D this.args[0].evaluate(ctx).stringValue(); var s1 =3D this.args[1].evaluate(ctx).numberValue(); var ret; if (this.args.length =3D=3D 2) { var i1 =3D Math.max(0, Math.round(s1) - 1); ret =3D s0.substr(i1); } else { var s2 =3D this.args[2].evaluate(ctx).numberValue(); var i0 =3D Math.round(s1) - 1; var i1 =3D Math.max(0, i0); var i2 =3D Math.round(s2) - Math.max(0, -i0); ret =3D s0.substr(i1, i2); } return new StringValue(ret); }, 'string-length': function(ctx) { var s; if (this.args.length > 0) { s =3D this.args[0].evaluate(ctx).stringValue(); } else { s =3D new NodeSetValue([ ctx.node ]).stringValue(); } return new NumberValue(s.length); }, 'normalize-space': function(ctx) { var s; if (this.args.length > 0) { s =3D this.args[0].evaluate(ctx).stringValue(); } else { s =3D new NodeSetValue([ ctx.node ]).stringValue(); } s =3D s.replace(/^\s*/,'').replace(/\s*$/,'').replace(/\s+/g, ' '); return new StringValue(s); }, 'translate': function(ctx) { assert(this.args.length =3D=3D 3); var s0 =3D this.args[0].evaluate(ctx).stringValue(); var s1 =3D this.args[1].evaluate(ctx).stringValue(); var s2 =3D this.args[2].evaluate(ctx).stringValue(); for (var i =3D 0; i < s1.length; ++i) { s0 =3D s0.replace(new RegExp(s1.charAt(i), 'g'), s2.charAt(i)); } return new StringValue(s0); }, 'boolean': function(ctx) { assert(this.args.length =3D=3D 1); return new BooleanValue(this.args[0].evaluate(ctx).booleanValue()); }, 'not': function(ctx) { assert(this.args.length =3D=3D 1); var ret =3D !this.args[0].evaluate(ctx).booleanValue(); return new BooleanValue(ret); }, 'true': function(ctx) { assert(this.args.length =3D=3D 0); return new BooleanValue(true); }, 'false': function(ctx) { assert(this.args.length =3D=3D 0); return new BooleanValue(false); }, 'lang': function(ctx) { assert(this.args.length =3D=3D 1); var lang =3D this.args[0].evaluate(ctx).stringValue(); var xmllang; var n =3D ctx.node; while (n && n !=3D n.parentNode /* just in case ... */) { xmllang =3D n.getAttribute('xml:lang'); if (xmllang) { break; } n =3D n.parentNode; } if (!xmllang) { return new BooleanValue(false); } else { var re =3D new RegExp('^' + lang + '$', 'i'); return new BooleanValue(xmllang.match(re) || xmllang.replace(/_.*$/,'').match(re)); } }, 'number': function(ctx) { assert(this.args.length =3D=3D 1 || this.args.length =3D=3D 0); if (this.args.length =3D=3D 1) { return new NumberValue(this.args[0].evaluate(ctx).numberValue()); } else { return new NumberValue(new NodeSetValue([ ctx.node = ]).numberValue()); } }, 'sum': function(ctx) { assert(this.args.length =3D=3D 1); var n =3D this.args[0].evaluate(ctx).nodeSetValue(); var sum =3D 0; for (var i =3D 0; i < n.length; ++i) { sum +=3D xmlValue(n[i]) - 0; } return new NumberValue(sum); }, 'floor': function(ctx) { assert(this.args.length =3D=3D 1); var num =3D this.args[0].evaluate(ctx).numberValue(); return new NumberValue(Math.floor(num)); }, 'ceiling': function(ctx) { assert(this.args.length =3D=3D 1); var num =3D this.args[0].evaluate(ctx).numberValue(); return new NumberValue(Math.ceil(num)); }, 'round': function(ctx) { assert(this.args.length =3D=3D 1); var num =3D this.args[0].evaluate(ctx).numberValue(); return new NumberValue(Math.round(num)); }, // TODO(mesch): The following functions are custom. There is a // standard that defines how to add functions, which should be // applied here. 'ext-join': function(ctx) { assert(this.args.length =3D=3D 2); var nodes =3D this.args[0].evaluate(ctx).nodeSetValue(); var delim =3D this.args[1].evaluate(ctx).stringValue(); var ret =3D ''; for (var i =3D 0; i < nodes.length; ++i) { if (ret) { ret +=3D delim; } ret +=3D xmlValue(nodes[i]); } return new StringValue(ret); }, // ext-if() evaluates and returns its second argument, if the // boolean value of its first argument is true, otherwise it // evaluates and returns its third argument. 'ext-if': function(ctx) { assert(this.args.length =3D=3D 3); if (this.args[0].evaluate(ctx).booleanValue()) { return this.args[1].evaluate(ctx); } else { return this.args[2].evaluate(ctx); } }, 'ext-sprintf': function(ctx) { assert(this.args.length >=3D 1); var args =3D []; for (var i =3D 0; i < this.args.length; ++i) { args.push(this.args[i].evaluate(ctx).stringValue()); } return new StringValue(sprintf.apply(null, args)); }, // ext-cardinal() evaluates its single argument as a number, and // returns the current node that many times. It can be used in the // select attribute to iterate over an integer range. =20 'ext-cardinal': function(ctx) { assert(this.args.length >=3D 1); var c =3D this.args[0].evaluate(ctx).numberValue(); var ret =3D []; for (var i =3D 0; i < c; ++i) { ret.push(ctx.node); } return new NodeSetValue(ret); } }; function UnionExpr(expr1, expr2) { this.expr1 =3D expr1; this.expr2 =3D expr2; } UnionExpr.prototype.evaluate =3D function(ctx) { var nodes1 =3D this.expr1.evaluate(ctx).nodeSetValue(); var nodes2 =3D this.expr2.evaluate(ctx).nodeSetValue(); var I1 =3D nodes1.length; for (var i2 =3D 0; i2 < nodes2.length; ++i2) { for (var i1 =3D 0; i1 < I1; ++i1) { if (nodes1[i1] =3D=3D nodes2[i2]) { // break inner loop and continue outer loop, labels confuse // the js compiler, so we don't use them here. i1 =3D I1; } } nodes1.push(nodes2[i2]); } return new NodeSetValue(nodes2); }; function PathExpr(filter, rel) { this.filter =3D filter; this.rel =3D rel; } PathExpr.prototype.evaluate =3D function(ctx) { var nodes =3D this.filter.evaluate(ctx).nodeSetValue(); var nodes1 =3D []; for (var i =3D 0; i < nodes.length; ++i) { var nodes0 =3D this.rel.evaluate(ctx.clone(nodes[i], i, = nodes)).nodeSetValue(); for (var ii =3D 0; ii < nodes0.length; ++ii) { nodes1.push(nodes0[ii]); } } return new NodeSetValue(nodes1); }; function FilterExpr(expr, predicate) { this.expr =3D expr; this.predicate =3D predicate; } FilterExpr.prototype.evaluate =3D function(ctx) { var nodes =3D this.expr.evaluate(ctx).nodeSetValue(); for (var i =3D 0; i < this.predicate.length; ++i) { var nodes0 =3D nodes; nodes =3D []; for (var j =3D 0; j < nodes0.length; ++j) { var n =3D nodes0[j]; if (this.predicate[i].evaluate(ctx.clone(n, j, = nodes0)).booleanValue()) { nodes.push(n); } } } return new NodeSetValue(nodes); } function UnaryMinusExpr(expr) { this.expr =3D expr; } UnaryMinusExpr.prototype.evaluate =3D function(ctx) { return new NumberValue(-this.expr.evaluate(ctx).numberValue()); }; function BinaryExpr(expr1, op, expr2) { this.expr1 =3D expr1; this.expr2 =3D expr2; this.op =3D op; } BinaryExpr.prototype.evaluate =3D function(ctx) { var ret; switch (this.op.value) { case 'or': ret =3D new BooleanValue(this.expr1.evaluate(ctx).booleanValue() = || this.expr2.evaluate(ctx).booleanValue()); break; case 'and': ret =3D new BooleanValue(this.expr1.evaluate(ctx).booleanValue() = && this.expr2.evaluate(ctx).booleanValue()); break; case '+': ret =3D new NumberValue(this.expr1.evaluate(ctx).numberValue() + this.expr2.evaluate(ctx).numberValue()); break; case '-': ret =3D new NumberValue(this.expr1.evaluate(ctx).numberValue() - this.expr2.evaluate(ctx).numberValue()); break; case '*': ret =3D new NumberValue(this.expr1.evaluate(ctx).numberValue() * this.expr2.evaluate(ctx).numberValue()); break; case 'mod': ret =3D new NumberValue(this.expr1.evaluate(ctx).numberValue() % this.expr2.evaluate(ctx).numberValue()); break; case 'div': ret =3D new NumberValue(this.expr1.evaluate(ctx).numberValue() / this.expr2.evaluate(ctx).numberValue()); break; case '=3D': ret =3D this.compare(ctx, function(x1, x2) { return x1 =3D=3D x2; = }); break; case '!=3D': ret =3D this.compare(ctx, function(x1, x2) { return x1 !=3D x2; = }); break; case '<': ret =3D this.compare(ctx, function(x1, x2) { return x1 < x2; }); break; case '<=3D': ret =3D this.compare(ctx, function(x1, x2) { return x1 <=3D x2; = }); break; case '>': ret =3D this.compare(ctx, function(x1, x2) { return x1 > x2; }); break; case '>=3D': ret =3D this.compare(ctx, function(x1, x2) { return x1 >=3D x2; = }); break; default: alert('BinaryExpr.evaluate: ' + this.op.value); } return ret; }; BinaryExpr.prototype.compare =3D function(ctx, cmp) { var v1 =3D this.expr1.evaluate(ctx); var v2 =3D this.expr2.evaluate(ctx); var ret; if (v1.type =3D=3D 'node-set' && v2.type =3D=3D 'node-set') { var n1 =3D v1.nodeSetValue(); var n2 =3D v2.nodeSetValue(); ret =3D false; for (var i1 =3D 0; i1 < n1.length; ++i1) { for (var i2 =3D 0; i2 < n2.length; ++i2) { if (cmp(xmlValue(n1[i1]), xmlValue(n2[i2]))) { ret =3D true; // Break outer loop. Labels confuse the jscompiler and we // don't use them. i2 =3D n2.length; i1 =3D n1.length; } } } } else if (v1.type =3D=3D 'node-set' || v2.type =3D=3D 'node-set') { if (v1.type =3D=3D 'number') { var s =3D v1.numberValue(); var n =3D v2.nodeSetValue(); ret =3D false; for (var i =3D 0; i < n.length; ++i) { var nn =3D xmlValue(n[i]) - 0; if (cmp(s, nn)) { ret =3D true; break; } } } else if (v2.type =3D=3D 'number') { var n =3D v1.nodeSetValue(); var s =3D v2.numberValue(); ret =3D false; for (var i =3D 0; i < n.length; ++i) { var nn =3D xmlValue(n[i]) - 0; if (cmp(nn, s)) { ret =3D true; break; } } } else if (v1.type =3D=3D 'string') { var s =3D v1.stringValue(); var n =3D v2.nodeSetValue(); ret =3D false; for (var i =3D 0; i < n.length; ++i) { var nn =3D xmlValue(n[i]); if (cmp(s, nn)) { ret =3D true; break; } } } else if (v2.type =3D=3D 'string') { var n =3D v1.nodeSetValue(); var s =3D v2.stringValue(); ret =3D false; for (var i =3D 0; i < n.length; ++i) { var nn =3D xmlValue(n[i]); if (cmp(nn, s)) { ret =3D true; break; } } } else { ret =3D cmp(v1.booleanValue(), v2.booleanValue()); } } else if (v1.type =3D=3D 'boolean' || v2.type =3D=3D 'boolean') { ret =3D cmp(v1.booleanValue(), v2.booleanValue()); } else if (v1.type =3D=3D 'number' || v2.type =3D=3D 'number') { ret =3D cmp(v1.numberValue(), v2.numberValue()); } else { ret =3D cmp(v1.stringValue(), v2.stringValue()); } return new BooleanValue(ret); } function LiteralExpr(value) { this.value =3D value; } LiteralExpr.prototype.evaluate =3D function(ctx) { return new StringValue(this.value); }; function NumberExpr(value) { this.value =3D value; } NumberExpr.prototype.evaluate =3D function(ctx) { return new NumberValue(this.value); }; function VariableExpr(name) { this.name =3D name; } VariableExpr.prototype.evaluate =3D function(ctx) { return ctx.getVariable(this.name); } // Factory functions for semantic values (i.e. Expressions) of the // productions in the grammar. When a production is matched to reduce // the current parse state stack, the function is called with the // semantic values of the matched elements as arguments, and returns // another semantic value. The semantic value is a node of the parse // tree, an expression object with an evaluate() method that evaluates = the // expression in an actual context. These factory functions are used // in the specification of the grammar rules, below. function makeTokenExpr(m) { return new TokenExpr(m); } function passExpr(e) { return e; } function makeLocationExpr1(slash, rel) { rel.absolute =3D true; return rel; } function makeLocationExpr2(dslash, rel) { rel.absolute =3D true; rel.prependStep(makeAbbrevStep(dslash.value)); return rel; } function makeLocationExpr3(slash) { var ret =3D new LocationExpr(); ret.appendStep(makeAbbrevStep('.')); ret.absolute =3D true; return ret; } function makeLocationExpr4(dslash) { var ret =3D new LocationExpr(); ret.absolute =3D true; ret.appendStep(makeAbbrevStep(dslash.value)); return ret; } function makeLocationExpr5(step) { var ret =3D new LocationExpr(); ret.appendStep(step); return ret; } function makeLocationExpr6(rel, slash, step) { rel.appendStep(step); return rel; } function makeLocationExpr7(rel, dslash, step) { rel.appendStep(makeAbbrevStep(dslash.value)); return rel; } function makeStepExpr1(dot) { return makeAbbrevStep(dot.value); } function makeStepExpr2(ddot) { return makeAbbrevStep(ddot.value); } function makeStepExpr3(axisname, axis, nodetest) { return new StepExpr(axisname.value, nodetest); } function makeStepExpr4(at, nodetest) { return new StepExpr('attribute', nodetest); } function makeStepExpr5(nodetest) { return new StepExpr('child', nodetest); } function makeStepExpr6(step, predicate) { step.appendPredicate(predicate); return step; } function makeAbbrevStep(abbrev) { switch (abbrev) { case '//': return new StepExpr('descendant-or-self', new NodeTestAny); case '.': return new StepExpr('self', new NodeTestAny); case '..': return new StepExpr('parent', new NodeTestAny); } } function makeNodeTestExpr1(asterisk) { return new NodeTestElement; } function makeNodeTestExpr2(ncname, colon, asterisk) { return new NodeTestNC(ncname.value); } function makeNodeTestExpr3(qname) { return new NodeTestName(qname.value); } function makeNodeTestExpr4(typeo, parenc) { var type =3D typeo.value.replace(/\s*\($/, ''); switch(type) { case 'node': return new NodeTestAny; case 'text': return new NodeTestText; case 'comment': return new NodeTestComment; case 'processing-instruction': return new NodeTestPI; } } function makeNodeTestExpr5(typeo, target, parenc) { var type =3D typeo.replace(/\s*\($/, ''); if (type !=3D 'processing-instruction') { throw type + ' ' + Error().stack; } return new NodeTestPI(target.value); } function makePredicateExpr(pareno, expr, parenc) { return new PredicateExpr(expr); } function makePrimaryExpr(pareno, expr, parenc) { return expr; } function makeFunctionCallExpr1(name, pareno, parenc) { return new FunctionCallExpr(name); } function makeFunctionCallExpr2(name, pareno, arg1, args, parenc) { var ret =3D new FunctionCallExpr(name); ret.appendArg(arg1); for (var i =3D 0; i < args.length; ++i) { ret.appendArg(args[i]); } return ret; } function makeArgumentExpr(comma, expr) { return expr; } function makeUnionExpr(expr1, pipe, expr2) { return new UnionExpr(expr1, expr2); } function makePathExpr1(filter, slash, rel) { return new PathExpr(filter, rel); } function makePathExpr2(filter, dslash, rel) { rel.prependStep(makeAbbrevStep(dslash.value)); return new PathExpr(filter, rel); } function makeFilterExpr(expr, predicates) { if (predicates.length > 0) { return new FilterExpr(expr, predicates); } else { return expr; } } function makeUnaryMinusExpr(minus, expr) { return new UnaryMinusExpr(expr); } function makeBinaryExpr(expr1, op, expr2) { return new BinaryExpr(expr1, op, expr2); } function makeLiteralExpr(token) { // remove quotes from the parsed value: var value =3D token.value.substring(1, token.value.length - 1); return new LiteralExpr(value); } function makeNumberExpr(token) { return new NumberExpr(token.value); } function makeVariableReference(dollar, name) { return new VariableExpr(name.value); } // Used before parsing for optimization of common simple cases. See // the begin of xpathParse() for which they are. function makeSimpleExpr(expr) { if (expr.charAt(0) =3D=3D '$') { return new VariableExpr(expr.substr(1)); } else if (expr.charAt(0) =3D=3D '@') { var a =3D new NodeTestName(expr.substr(1)); var b =3D new StepExpr('attribute', a); var c =3D new LocationExpr(); c.appendStep(b); return c; } else if (expr.match(/^[0-9]+$/)) { return new NumberExpr(expr); } else { var a =3D new NodeTestName(expr); var b =3D new StepExpr('child', a); var c =3D new LocationExpr(); c.appendStep(b); return c; } } function makeSimpleExpr2(expr) { var steps =3D expr.split('/'); var c =3D new LocationExpr(); for (var i =3D 0; i < steps.length; i++) { var a =3D new NodeTestName(steps[i]); var b =3D new StepExpr('child', a); c.appendStep(b); } return c; } // The axes of XPath expressions. var xpathAxis =3D { ANCESTOR_OR_SELF: 'ancestor-or-self', ANCESTOR: 'ancestor', ATTRIBUTE: 'attribute', CHILD: 'child', DESCENDANT_OR_SELF: 'descendant-or-self', DESCENDANT: 'descendant', FOLLOWING_SIBLING: 'following-sibling', FOLLOWING: 'following', NAMESPACE: 'namespace', PARENT: 'parent', PRECEDING_SIBLING: 'preceding-sibling', PRECEDING: 'preceding', SELF: 'self' }; var xpathAxesRe =3D [ xpathAxis.ANCESTOR_OR_SELF, xpathAxis.ANCESTOR, xpathAxis.ATTRIBUTE, xpathAxis.CHILD, xpathAxis.DESCENDANT_OR_SELF, xpathAxis.DESCENDANT, xpathAxis.FOLLOWING_SIBLING, xpathAxis.FOLLOWING, xpathAxis.NAMESPACE, xpathAxis.PARENT, xpathAxis.PRECEDING_SIBLING, xpathAxis.PRECEDING, xpathAxis.SELF ].join('|'); // The tokens of the language. The label property is just used for // generating debug output. The prec property is the precedence used // for shift/reduce resolution. Default precedence is 0 as a lookahead // token and 2 on the stack. TODO(mesch): this is certainly not // necessary and too complicated. Simplify this! // NOTE: tabular formatting is the big exception, but here it should // be OK. var TOK_PIPE =3D { label: "|", prec: 17, re: new RegExp("^\\|") }; var TOK_DSLASH =3D { label: "//", prec: 19, re: new RegExp("^//") }; var TOK_SLASH =3D { label: "/", prec: 30, re: new RegExp("^/") }; var TOK_AXIS =3D { label: "::", prec: 20, re: new RegExp("^::") }; var TOK_COLON =3D { label: ":", prec: 1000, re: new RegExp("^:") }; var TOK_AXISNAME =3D { label: "[axis]", re: new RegExp('^(' + = xpathAxesRe + ')') }; var TOK_PARENO =3D { label: "(", prec: 34, re: new RegExp("^\\(") }; var TOK_PARENC =3D { label: ")", re: new RegExp("^\\)") }; var TOK_DDOT =3D { label: "..", prec: 34, re: new RegExp("^\\.\\.") = }; var TOK_DOT =3D { label: ".", prec: 34, re: new RegExp("^\\.") }; var TOK_AT =3D { label: "@", prec: 34, re: new RegExp("^@") }; var TOK_COMMA =3D { label: ",", re: new RegExp("^,") }; var TOK_OR =3D { label: "or", prec: 10, re: new RegExp("^or\\b") = }; var TOK_AND =3D { label: "and", prec: 11, re: new RegExp("^and\\b") = }; var TOK_EQ =3D { label: "=3D", prec: 12, re: new RegExp("^=3D") = }; var TOK_NEQ =3D { label: "!=3D", prec: 12, re: new RegExp("^!=3D") = }; var TOK_GE =3D { label: ">=3D", prec: 13, re: new RegExp("^>=3D") = }; var TOK_GT =3D { label: ">", prec: 13, re: new RegExp("^>") }; var TOK_LE =3D { label: "<=3D", prec: 13, re: new RegExp("^<=3D") = }; var TOK_LT =3D { label: "<", prec: 13, re: new RegExp("^<") }; var TOK_PLUS =3D { label: "+", prec: 14, re: new RegExp("^\\+"), = left: true }; var TOK_MINUS =3D { label: "-", prec: 14, re: new RegExp("^\\-"), = left: true }; var TOK_DIV =3D { label: "div", prec: 15, re: new = RegExp("^div\\b"), left: true }; var TOK_MOD =3D { label: "mod", prec: 15, re: new = RegExp("^mod\\b"), left: true }; var TOK_BRACKO =3D { label: "[", prec: 32, re: new RegExp("^\\[") }; var TOK_BRACKC =3D { label: "]", re: new RegExp("^\\]") }; var TOK_DOLLAR =3D { label: "$", re: new RegExp("^\\$") }; var TOK_NCNAME =3D { label: "[ncname]", re: new = RegExp('^[a-z][-\\w]*','i') }; var TOK_ASTERISK =3D { label: "*", prec: 15, re: new RegExp("^\\*"), = left: true }; var TOK_LITERALQ =3D { label: "[litq]", prec: 20, re: new = RegExp("^'[^\\']*'") }; var TOK_LITERALQQ =3D { label: "[litqq]", prec: 20, re: new RegExp('^"[^\\"]*"') }; var TOK_NUMBER =3D { label: "[number]", prec: 35, re: new RegExp('^\\d+(\\.\\d*)?') }; var TOK_QNAME =3D { label: "[qname]", re: new RegExp('^([a-z][-\\w]*:)?[a-z][-\\w]*','i') }; var TOK_NODEO =3D { label: "[nodetest-start]", re: new RegExp('^(processing-instruction|comment|text|node)\\(') }; // The table of the tokens of our grammar, used by the lexer: first // column the tag, second column a regexp to recognize it in the // input, third column the precedence of the token, fourth column a // factory function for the semantic value of the token. // // NOTE: order of this list is important, because the first match // counts. Cf. DDOT and DOT, and AXIS and COLON. var xpathTokenRules =3D [ TOK_DSLASH, TOK_SLASH, TOK_DDOT, TOK_DOT, TOK_AXIS, TOK_COLON, TOK_AXISNAME, TOK_NODEO, TOK_PARENO, TOK_PARENC, TOK_BRACKO, TOK_BRACKC, TOK_AT, TOK_COMMA, TOK_OR, TOK_AND, TOK_NEQ, TOK_EQ, TOK_GE, TOK_GT, TOK_LE, TOK_LT, TOK_PLUS, TOK_MINUS, TOK_ASTERISK, TOK_PIPE, TOK_MOD, TOK_DIV, TOK_LITERALQ, TOK_LITERALQQ, TOK_NUMBER, TOK_QNAME, TOK_NCNAME, TOK_DOLLAR ]; // All the nonterminals of the grammar. The nonterminal objects are // identified by object identity; the labels are used in the debug // output only. var XPathLocationPath =3D { label: "LocationPath" }; var XPathRelativeLocationPath =3D { label: "RelativeLocationPath" }; var XPathAbsoluteLocationPath =3D { label: "AbsoluteLocationPath" }; var XPathStep =3D { label: "Step" }; var XPathNodeTest =3D { label: "NodeTest" }; var XPathPredicate =3D { label: "Predicate" }; var XPathLiteral =3D { label: "Literal" }; var XPathExpr =3D { label: "Expr" }; var XPathPrimaryExpr =3D { label: "PrimaryExpr" }; var XPathVariableReference =3D { label: "Variablereference" }; var XPathNumber =3D { label: "Number" }; var XPathFunctionCall =3D { label: "FunctionCall" }; var XPathArgumentRemainder =3D { label: "ArgumentRemainder" }; var XPathPathExpr =3D { label: "PathExpr" }; var XPathUnionExpr =3D { label: "UnionExpr" }; var XPathFilterExpr =3D { label: "FilterExpr" }; var XPathDigits =3D { label: "Digits" }; var xpathNonTerminals =3D [ XPathLocationPath, XPathRelativeLocationPath, XPathAbsoluteLocationPath, XPathStep, XPathNodeTest, XPathPredicate, XPathLiteral, XPathExpr, XPathPrimaryExpr, XPathVariableReference, XPathNumber, XPathFunctionCall, XPathArgumentRemainder, XPathPathExpr, XPathUnionExpr, XPathFilterExpr, XPathDigits ]; // Quantifiers that are used in the productions of the grammar. var Q_01 =3D { label: "?" }; var Q_MM =3D { label: "*" }; var Q_1M =3D { label: "+" }; // Tag for left associativity (right assoc is implied by undefined). var ASSOC_LEFT =3D true; // The productions of the grammar. Columns of the table: // // - target nonterminal, // - pattern, // - precedence, // - semantic value factory // // The semantic value factory is a function that receives parse tree // nodes from the stack frames of the matched symbols as arguments and // returns an a node of the parse tree. The node is stored in the top // stack frame along with the target object of the rule. The node in // the parse tree is an expression object that has an evaluate() method // and thus evaluates XPath expressions. // // The precedence is used to decide between reducing and s